sliccy 6.148.6 → 6.149.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 (176) hide show
  1. package/README.md +1 -0
  2. package/dist/node-server/_shared/transcript-redaction.d.ts +12 -1
  3. package/dist/node-server/_shared/transcript-redaction.d.ts.map +1 -1
  4. package/dist/node-server/_shared/transcript-redaction.js +5 -5
  5. package/dist/node-server/_shared/transcript-redaction.js.map +1 -1
  6. package/dist/ui/.vite/manifest.json +186 -172
  7. package/dist/ui/assets/CLAUDE-C2sAF3Q0.js +1 -0
  8. package/dist/ui/assets/DREAMING-DKcamfu0.js +74 -0
  9. package/dist/ui/assets/GELATIERE-BnNVlnMz.js +1 -0
  10. package/dist/ui/assets/{MEMORY-BEEBDXkY.js → MEMORY-1jIGxLn4.js} +12 -3
  11. package/dist/ui/assets/SKILL-C9vwCrkC.js +1 -0
  12. package/dist/ui/assets/SKILL-Cc0Ep86w.js +1 -0
  13. package/dist/ui/assets/{SKILL-2Mi1pQ3F.js → SKILL-DJtLE66_.js} +5 -3
  14. package/dist/ui/assets/SKILL-DvHAkJSI.js +117 -0
  15. package/dist/ui/assets/SKILL-UcxSfshP.js +66 -0
  16. package/dist/ui/assets/WIKI-DoBxwf2u.js +1 -0
  17. package/dist/ui/assets/{account-store-CxhEKTWa.js → account-store-CA1A4MNg.js} +1 -1
  18. package/dist/ui/assets/{account-store-CSvfMN0q.js → account-store-D5-EuwRH.js} +1 -1
  19. package/dist/ui/assets/{adobe-CkbPEFWB.js → adobe-DV-vFrsP.js} +1 -1
  20. package/dist/ui/assets/{adobe-DwR2UBAP.js → adobe-DtbhCwKF.js} +1 -1
  21. package/dist/ui/assets/{agent-bridge-_io6UvbS.js → agent-bridge-Bk8XJ8b8.js} +8 -8
  22. package/dist/ui/assets/{agent-panels-DCYDDalu.js → agent-panels-DKzja1c3.js} +1 -1
  23. package/dist/ui/assets/{apply-layout-CUKNJsnM.js → apply-layout-y9wx9NT9.js} +1 -1
  24. package/dist/ui/assets/{approver-agent-O_C8F_lu.js → approver-agent-BA3dC9Lg.js} +1 -1
  25. package/dist/ui/assets/{apps-DmBDvKqA.js → apps-yQbw27PS.js} +1 -1
  26. package/dist/ui/assets/archive-redaction-ByV7X5fs.js +1 -0
  27. package/dist/ui/assets/{azure-openai-BqeIibmb.js → azure-openai-DHtO2E0K.js} +1 -1
  28. package/dist/ui/assets/{azure-openai-hucQjFkk.js → azure-openai-yibXp_Bz.js} +1 -1
  29. package/dist/ui/assets/{budget-usage-source-B7HIa-K7.js → budget-usage-source-CsYOdKgf.js} +1 -1
  30. package/dist/ui/assets/{cdp-fnaJdghg.js → cdp-DvBgKWeM.js} +1 -1
  31. package/dist/ui/assets/{cerebras-Cp_tyicG.js → cerebras-CS6Db07O.js} +1 -1
  32. package/dist/ui/assets/{cerebras-D4eNW8Dz.js → cerebras-CaDy2asW.js} +1 -1
  33. package/dist/ui/assets/{composer-speech-Y9nFpucg.js → composer-speech-DPiVvFU6.js} +1 -1
  34. package/dist/ui/assets/cone-memory-budget-ieIsscyt.js +15 -0
  35. package/dist/ui/assets/{connect-surface-DE9AvQcr.js → connect-surface-DZZV0bKb.js} +1 -1
  36. package/dist/ui/assets/descriptor-D-6Koktu.js +1 -0
  37. package/dist/ui/assets/{directed-approval-B64z8WXS.js → directed-approval-zgdk1qJY.js} +1 -1
  38. package/dist/ui/assets/feature-flags-BX-OhLDm.js +1 -0
  39. package/dist/ui/assets/feature-flags-CYCRk6Dq.js +1 -0
  40. package/dist/ui/assets/frozen-archive-writer--a4fMghf.js +8 -0
  41. package/dist/ui/assets/{fs-CIkDZ_Dd.js → fs-CeHAWOzG.js} +2 -2
  42. package/dist/ui/assets/{fs-Bdk6lf_I.js → fs-ZsGKH6_S.js} +1 -1
  43. package/dist/ui/assets/gelatiere-constants-BYJlhm8R.js +1 -0
  44. package/dist/ui/assets/gelatiere-store-D36IMluj.js +1 -0
  45. package/dist/ui/assets/gelatiere-unit-7xZALH_i.js +1 -0
  46. package/dist/ui/assets/{github-D62L-Qj4.js → github-CaKl6IqQ.js} +1 -1
  47. package/dist/ui/assets/{github-7zGAPnOR.js → github-EHGL5L1f.js} +2 -2
  48. package/dist/ui/assets/{github-copilot-DTqmEBkZ.js → github-copilot-BHsKQLD0.js} +1 -1
  49. package/dist/ui/assets/{github-copilot-K4pi5pmY.js → github-copilot-Cjxeuomt.js} +1 -1
  50. package/dist/ui/assets/{github-install-DW9eSCWK.js → github-install-CZ0EukOV.js} +1 -1
  51. package/dist/ui/assets/{github-zip-D5pmGz48.js → github-zip-CS4YNRru.js} +1 -1
  52. package/dist/ui/assets/{hear-C_o9CbL8.js → hear-Cbevfmh3.js} +1 -1
  53. package/dist/ui/assets/{help-lfImwIAI.js → help-B7QDR4Te.js} +1 -1
  54. package/dist/ui/assets/instruction-frontmatter-Bk64dayp.js +3 -0
  55. package/dist/ui/assets/{js-realm-worker-CuwcQntH.js → js-realm-worker-8iSCqCPx.js} +1 -1
  56. package/dist/ui/assets/{kernel-worker-ESg7BZtf.js → kernel-worker-C_WWxLV9.js} +648 -662
  57. package/dist/ui/assets/key-DExP84Xm.js +1 -0
  58. package/dist/ui/assets/lick-target-env-8JxfVcIV.js +1 -0
  59. package/dist/ui/assets/{live-session-snapshot-BnA6Mq0G.js → live-session-snapshot-CpwRZg6K.js} +1 -1
  60. package/dist/ui/assets/{local-llm-BIkUvHqY.js → local-llm-0LkBgtj2.js} +1 -1
  61. package/dist/ui/assets/{local-llm-D_T0EnaA.js → local-llm-Dr2UbIXv.js} +1 -1
  62. package/dist/ui/assets/log-DEDI5t_h.js +1 -0
  63. package/dist/ui/assets/{main-B6EOlFVs.js → main-BAC0OCne.js} +3 -3
  64. package/dist/ui/assets/{main-cherry-Dn_p-eb4.js → main-cherry-CewPDwbT.js} +1 -1
  65. package/dist/ui/assets/manager-CstXzWYQ.js +1 -0
  66. package/dist/ui/assets/memory-budget-CIVoqHgl.js +1 -0
  67. package/dist/ui/assets/memory-curation-seam-Dhr-Lh0Q.js +1 -0
  68. package/dist/ui/assets/memory-health-MhSOmzAf.js +1 -0
  69. package/dist/ui/assets/memory-v2-flag-D50hE5F1.js +1 -0
  70. package/dist/ui/assets/{mount-PrIS1Sa3.js → mount-BLSZhkn-.js} +3 -3
  71. package/dist/ui/assets/{mount-a6GiK5eK.js → mount-C-ANRQIp.js} +1 -1
  72. package/dist/ui/assets/{mount-recovery-B_EuFRnE.js → mount-recovery-DUczfSWq.js} +1 -1
  73. package/dist/ui/assets/new-session-BoS7dRsh.js +2 -0
  74. package/dist/ui/assets/{oauth-bootstrap-97a5ChZn.js → oauth-bootstrap-Bxgy2Cqv.js} +2 -2
  75. package/dist/ui/assets/{onboarding-orchestrator-xYbh_T_5.js → onboarding-orchestrator-Dk1ohi_0.js} +1 -1
  76. package/dist/ui/assets/{openai-codex-C1-zR0yq.js → openai-codex-BknfgoBF.js} +1 -1
  77. package/dist/ui/assets/{openai-codex-BOoUGfZo.js → openai-codex-DMzQdrNm.js} +1 -1
  78. package/dist/ui/assets/{openrouter-DQfvvYij.js → openrouter-CQPRB3mI.js} +1 -1
  79. package/dist/ui/assets/{openrouter-DoxfEMdx.js → openrouter-CRaR6ORa.js} +1 -1
  80. package/dist/ui/assets/{openrouter-free-GMWxIUhh.js → openrouter-free-BCZac4lk.js} +1 -1
  81. package/dist/ui/assets/{openrouter-free-DDqDQdRp.js → openrouter-free-CKjfWow9.js} +1 -1
  82. package/dist/ui/assets/{openrouter-oauth-CEDhl0OZ.js → openrouter-oauth-DQ6_4qbW.js} +1 -1
  83. package/dist/ui/assets/{openrouter-oauth-sMAXA75w.js → openrouter-oauth-DZ-Abl0n.js} +1 -1
  84. package/dist/ui/assets/{panel-rpc-handlers-r2ejq7DG.js → panel-rpc-handlers-l_wby7rY.js} +2 -2
  85. package/dist/ui/assets/{panelize-shell-BgsRRYSF.js → panelize-shell-BExnoycZ.js} +1 -1
  86. package/dist/ui/assets/{provider-DBzel_xl.js → provider-CHJuS3Eo.js} +2 -2
  87. package/dist/ui/assets/{provider-C9ruriwF.js → provider-Ccwke1Gk.js} +1 -1
  88. package/dist/ui/assets/provider-settings-C9aYrpFT.js +1 -0
  89. package/dist/ui/assets/provider-store-access-Bvoy_8oD.js +1 -0
  90. package/dist/ui/assets/provider-store-access-C2g47uIb.js +1 -0
  91. package/dist/ui/assets/{providers-BecFVHcB.js → providers-BYl2eNQm.js} +1 -1
  92. package/dist/ui/assets/{providers-Bk7_R6-e.js → providers-Dx2Bx5aE.js} +2 -2
  93. package/dist/ui/assets/{quick-llm-B8jKq4iQ.js → quick-llm-DT2lt16M.js} +1 -1
  94. package/dist/ui/assets/{recovery-screen-C8SMqbts.js → recovery-screen-BjiUo-AL.js} +1 -1
  95. package/dist/ui/assets/run-BY9if0Td.js +42 -0
  96. package/dist/ui/assets/{run-Cu2b1qXL.js → run-BtmtVfUW.js} +1 -1
  97. package/dist/ui/assets/{run-DLmWyiS5.js → run-BxzwgwS3.js} +2 -2
  98. package/dist/ui/assets/{run-CRtbfNhS.js → run-DLgsQ07W.js} +1 -1
  99. package/dist/ui/assets/run-tBUQGAj8.js +50 -0
  100. package/dist/ui/assets/{session-command-memory-Bh_U73Lu.js → session-command-memory-BTDKlIRk.js} +4 -3
  101. package/dist/ui/assets/session-jsonl-BigzXvfg.js +11 -0
  102. package/dist/ui/assets/{session-jsonl-BxhPJRfn.js → session-jsonl-eMNv3Qki.js} +1 -1
  103. package/dist/ui/assets/session-search-index-D2VtAM_Q.js +3 -0
  104. package/dist/ui/assets/{setup-feature-flags-remote-DTWNUOEW.js → setup-feature-flags-remote-Ca2-hqlo.js} +1 -1
  105. package/dist/ui/assets/sidecar-repair-wcIxeWMP.js +1 -0
  106. package/dist/ui/assets/{silent-renew-backoff-7OJRYyhc.js → silent-renew-backoff-BHjNTQU2.js} +1 -1
  107. package/dist/ui/assets/{skills-59WNpYyE.js → skills-CJ8qNnZs.js} +1 -1
  108. package/dist/ui/assets/slicc-version-PYnMeU2R.js +1 -0
  109. package/dist/ui/assets/{snapshot-BNRtY2CJ.js → snapshot-DGK3m0L_.js} +1 -1
  110. package/dist/ui/assets/{snapshot-features-DVnp1w2e.js → snapshot-features-DluhSLEH.js} +1 -1
  111. package/dist/ui/assets/{soundscape-9bfPI94m.js → soundscape-BK9WmnUG.js} +1 -1
  112. package/dist/ui/assets/{speak-BaQH0gYp.js → speak-DZISsPxk.js} +1 -1
  113. package/dist/ui/assets/sprinkle-manager-BCrGJ7_g.js +1 -0
  114. package/dist/ui/assets/{sprinkle-renderer-BaQcBKrt.js → sprinkle-renderer-D-1PliuW.js} +1 -1
  115. package/dist/ui/assets/{state-XwTXvaim.js → state-KlJITKEj.js} +1 -1
  116. package/dist/ui/assets/{store-DR4bp0Ym.js → store-Bfm_2de6.js} +1 -1
  117. package/dist/ui/assets/{store-CJgEv6ac.js → store-C4pwV1r3.js} +1 -1
  118. package/dist/ui/assets/{sudo-XxCuOTwL.js → sudo-ClTWT5F4.js} +1 -1
  119. package/dist/ui/assets/suggestions-CFQTt8oo.js +329 -0
  120. package/dist/ui/assets/{sync-dialog-DifyU9Wz.js → sync-dialog-Dlmp9or_.js} +1 -1
  121. package/dist/ui/assets/{transformers-env-0DWpJU1C.js → transformers-env-CKztDfUT.js} +1 -1
  122. package/dist/ui/assets/{tray-sidecar-BEYI1163.js → tray-sidecar-izQ2ZF5D.js} +1 -1
  123. package/dist/ui/assets/{upgrade-detection-BDZBbbdQ.js → upgrade-detection-CNPzRkE7.js} +1 -1
  124. package/dist/ui/assets/{voice-reply-DToO6RTd.js → voice-reply-JlXeQN7_.js} +1 -1
  125. package/dist/ui/assets/{wc-attach-4VTzCaDp.js → wc-attach-Cl4Hwieg.js} +2 -2
  126. package/dist/ui/assets/{wc-extension-D0bVp8vB.js → wc-extension-ChMc6MeX.js} +2 -2
  127. package/dist/ui/assets/wc-follower-CvdBVpCG.js +17 -0
  128. package/dist/ui/assets/wc-follower-oauth-C83SZJty.js +5 -0
  129. package/dist/ui/assets/wc-gelatiere-3y6MXjH6.js +1 -0
  130. package/dist/ui/assets/wc-live-xtrWHFoh.js +406 -0
  131. package/dist/ui/assets/{wc-nav-D-p0rPR_.js → wc-nav-CDS_UeWj.js} +2 -2
  132. package/dist/ui/assets/wc-onboarding-DqB8019g.js +2 -0
  133. package/dist/ui/assets/{wc-placeholder-Db-RyktI.js → wc-placeholder-CZw2rZaI.js} +3 -3
  134. package/dist/ui/assets/{wc-secret-request-BIFBoH1h.js → wc-secret-request-CP500uCX.js} +1 -1
  135. package/dist/ui/assets/{wc-settings-C7ARFKxx.js → wc-settings-yS0Tn1rR.js} +3 -3
  136. package/dist/ui/assets/wc-shell-CuK7bTlD.js +125 -0
  137. package/dist/ui/assets/{wc-shortcut-config-DiZwCi5M.js → wc-shortcut-config-C-lIC8ic.js} +1 -1
  138. package/dist/ui/assets/{wc-shortcuts--04PLpy8.js → wc-shortcuts-DsrVa-7o.js} +192 -190
  139. package/dist/ui/assets/wc-sprinkles-CWvQ1c_3.js +2 -0
  140. package/dist/ui/assets/{wc-transcript-export-BCJ5AJA8.js → wc-transcript-export-BIlHmS1O.js} +2 -2
  141. package/dist/ui/assets/wc-tray-PhDRuhzo.js +5 -0
  142. package/dist/ui/assets/{welcome-CyCMJDqG.js → welcome-BzW33ZtP.js} +10 -9
  143. package/dist/ui/assets/welcome-detection-DocFcHWj.js +1 -0
  144. package/dist/ui/assets/{whisper-session-Dl9qamsc.js → whisper-session-B0UflXuX.js} +2 -2
  145. package/dist/ui/assets/wiki-BXN4hgmw.js +7 -0
  146. package/dist/ui/assets/wiki-DA0qKUVC.js +307 -0
  147. package/dist/ui/assets/{xai-grok-SveZvKuJ.js → xai-grok-C_IBpHs8.js} +1 -1
  148. package/dist/ui/assets/{xai-grok-exJQ7ID9.js → xai-grok-k1KZairZ.js} +1 -1
  149. package/dist/ui/index.html +4 -4
  150. package/dist/ui/packages/webapp/index.html +4 -4
  151. package/package.json +1 -1
  152. package/dist/ui/assets/CLAUDE-DM1onrcU.js +0 -1
  153. package/dist/ui/assets/SKILL-D40-t9w0.js +0 -57
  154. package/dist/ui/assets/descriptor-DObnXZNI.js +0 -1
  155. package/dist/ui/assets/feature-flags-COdcJUhl.js +0 -1
  156. package/dist/ui/assets/feature-flags-a-IfHs0F.js +0 -1
  157. package/dist/ui/assets/frozen-archive-writer-cEYcj5un.js +0 -8
  158. package/dist/ui/assets/key-MwVo0KUb.js +0 -1
  159. package/dist/ui/assets/memory-v2-flag-C1duOEOb.js +0 -1
  160. package/dist/ui/assets/new-session-0QEsz4J9.js +0 -2
  161. package/dist/ui/assets/provider-settings-BYSP7NWc.js +0 -1
  162. package/dist/ui/assets/provider-store-access-Csl5Rhtr.js +0 -1
  163. package/dist/ui/assets/provider-store-access-bV6_bNHG.js +0 -1
  164. package/dist/ui/assets/session-jsonl-DvUI4M0M.js +0 -11
  165. package/dist/ui/assets/session-search-index-CYtd-I68.js +0 -3
  166. package/dist/ui/assets/sidecar-repair-WrV53KRw.js +0 -1
  167. package/dist/ui/assets/slicc-version-DEC4XjJk.js +0 -1
  168. package/dist/ui/assets/sprinkle-manager-CxTROBQi.js +0 -1
  169. package/dist/ui/assets/wc-follower-DUW9NJ1s.js +0 -17
  170. package/dist/ui/assets/wc-follower-oauth-C-tQshgH.js +0 -5
  171. package/dist/ui/assets/wc-live-DD50Wcz1.js +0 -399
  172. package/dist/ui/assets/wc-onboarding-DONgW5bd.js +0 -2
  173. package/dist/ui/assets/wc-shell-Q2g5GEE1.js +0 -125
  174. package/dist/ui/assets/wc-sprinkles-x7qO5aBO.js +0 -2
  175. package/dist/ui/assets/wc-tray-N6BbXJYM.js +0 -5
  176. package/dist/ui/assets/welcome-detection-CJv2bH67.js +0 -1
@@ -1,6 +1,8 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-kBT87Ea7.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/preload-helper-Czpn1I53.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKTWa.js";import{t}from"./preload-helper-Czpn1I53.js";import{n}from"./runtime-env-Dlaokqg1.js";import{n as r,t as i}from"./icons-Df1OSRR-.js";function a(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n>=10||r===0?Math.round(n):Math.round(n*10)/10} ${t[r]}`}function o(e){let t=e.mimeType||`application/octet-stream`;return`${e.name} (${t}, ${a(e.size)})`}function s(e,t=`The original file lives on a remote runtime and is not accessible here.`){return e?.length?e.map(e=>{if(!e.path)return{...e};let{path:n,...r}=e;return e.kind===`image`&&e.data||e.kind===`text`&&e.text!==void 0?r:{...r,error:r.error??t}}):[]}function c(e,t){let r=n(),i=`/preview${e}${t?`?projectRoot=${encodeURIComponent(t)}`:``}`;if(r){let e=globalThis.chrome?.runtime?.getURL;if(e)return e(i)}let a=`http://localhost:5710`;return typeof window<`u`&&window.location?.origin?a=window.location.origin:typeof self<`u`&&self.location?.origin&&(a=self.location.origin),`${a}${i}`}var l={camera:`Camera`,microphone:`Microphone`};function u(e,t,n){return(e??``).trim()||`${l[n]} ${t+1}`}function d(e,t){return e.map((e,n)=>({deviceId:e.deviceId,label:u(e.label,n,t)}))}function f(e){return e.length>=2}function p(e){if(e.length===0)return null;let t=e.find(e=>e.deviceId==="default");if(t)return t.deviceId;let n=e.find(e=>(e.label??``).trim().toLowerCase().startsWith(`default`));return n?n.deviceId:e[0].deviceId}function m(){if(typeof window>`u`)return null;let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}var h=3e3,g={engine:`builtin`,state:`idle`};function _(){return{async permission(){try{return(await navigator.permissions.query({name:`microphone`})).state}catch{return`prompt`}},async requestPermission(){if(!navigator.mediaDevices?.getUserMedia)return!1;try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop();return!0}catch{return!1}},async microphones(){if(!navigator.mediaDevices?.enumerateDevices)return[];try{return d((await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`),`microphone`)}catch{return[]}},async start(e){let t=m();if(!t)throw Error(`Speech recognition is not supported in this browser.`);let n=new t;n.continuous=!0,n.interimResults=!0,e.lang&&(n.lang=e.lang);let r=``,i=``,a=!1,o=[],s=()=>{a=!0;let e=o;o=[];for(let t of e)t()};n.onresult=t=>{i=``;for(let e=t.resultIndex;e<t.results.length;e++){let n=t.results[e];n.isFinal?r+=n[0].transcript:i+=n[0].transcript}let n=`${r}${i}`.trim();n&&e.onPartial?.(n)},n.onerror=t=>{t.error!==`no-speech`&&t.error!==`aborted`&&e.onError?.(`Speech recognition error: ${t.error}`)},n.onend=s,n.start();let c=()=>`${r}${i}`.trim();return{stop(){return a?Promise.resolve(c()):new Promise(e=>{let t=setTimeout(()=>e(c()),h);o.push(()=>{clearTimeout(t),e(c())});try{n.stop()}catch{clearTimeout(t),e(c())}})},cancel(){n.onresult=null,n.onerror=null,n.onend=null;try{(n.abort??n.stop).call(n)}catch{}s()}}},status(){return g},onStatus(e){return e(g),()=>{}},warmup(){}}}var v=e({applyDictationMarkers:()=>te,consumeDictationFirst:()=>re,parseReplyLang:()=>T,resetDictationPriming:()=>ie,stripDictationMarkers:()=>w,stripReplyLangMarker:()=>ne}),y=`◁This message has been sent through text to speech, consider possible phonetic alternatives and transcription errors. Future dictated messages will have the 🎙️ emoji appended. Your responses to dictated messages will be read out loud, avoid urls, acronyms, numbers, formatting. Begin every reply with the language you are replying in as a hidden HTML comment, e.g. <!--lang:en--> for English or <!--lang:de--> for German; it stays hidden from the user and selects a matching voice▷`,b=/\uD83C\uDF99\uFE0F?/g,x=/\u25C1[\s\S]*?\u25B7/g,S=/<!--\s*lang:\s*([A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*)\s*-->/i,C=/<!--\s*lang:\s*[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*\s*-->/gi,ee=!0;function te(e,t){let n=e.endsWith(` `)?e:`${e} `;return t?`${n}\uD83C\uDF99\uFE0F${y}`:`${n}\uD83C\uDF99\uFE0F`}function w(e){return e.replace(x,``).replace(b,``).replace(/[ \t]+$/g,``).trimEnd()}function T(e){return S.exec(e)?.[1]}function ne(e){return e.replace(C,``)}function re(){return ee?(ee=!1,!0):!1}function ie(){ee=!0}var ae={sent:{freq:660,freqSlideTo:990,duration:.12,peakGain:.06,type:`sine`},"tool-start":{freq:520,freq2:780,duration:.07,peakGain:.04,type:`triangle`},"tool-finish":{freq:880,freq2:1320,duration:.07,peakGain:.04,type:`sine`}};function E(e,t){let n=ae[t],r=e.currentTime,i=r+n.duration,a=e.createGain();a.gain.setValueAtTime(1e-4,r),a.gain.exponentialRampToValueAtTime(n.peakGain,r+n.duration*.2),a.gain.exponentialRampToValueAtTime(1e-4,i),a.connect(e.destination);let o=e.createOscillator();if(o.type=n.type,o.frequency.setValueAtTime(n.freq,r),n.freqSlideTo!==void 0&&o.frequency.linearRampToValueAtTime(n.freqSlideTo,i),o.connect(a),o.start(r),o.stop(i),n.freq2!==void 0){let t=e.createOscillator();t.type=n.type,t.frequency.setValueAtTime(n.freq2,r),t.connect(a),t.start(r),t.stop(i)}}function oe(e){let t=/^\[@[^\]\s]+ (completed|idle)\]/.exec(e);return t?t[1]===`idle`?`scoop-idle`:`scoop-notify`:/^\[@[^\]\s]+ sudo-request\]/.test(e)?`sudo-request`:/^\[scoop_wait [^\]]+\]/.test(e)?`scoop-wait`:e.startsWith(`[Session Reload]`)?`session-reload`:null}var D=e({applyTimestampVisibility:()=>me,formatMessageTimestamp:()=>ge,getShowTimestamps:()=>fe,initTimestampPreference:()=>he,setShowTimestamps:()=>pe}),se=`slicc_show_timestamps`,ce=`slicc-show-timestamps`,le=`slicc-timestamp-visibility`,ue=!1;function de(e){if(e.getElementById(le))return;let t=e.createElement(`style`);t.id=le,t.textContent=[`slicc-user-message::part(timestamp),`,`slicc-agent-message .msg-ts {`,` display: none;`,`}`,`.${ce} slicc-user-message::part(timestamp),`,`.${ce} slicc-agent-message .msg-ts {`,` display: block;`,`}`].join(`
3
- `),e.head.appendChild(t)}function fe(){if(typeof localStorage>`u`||typeof localStorage?.getItem!=`function`)return!0;let e=localStorage.getItem(se);return e===null||e===`true`}function pe(e){typeof localStorage<`u`&&typeof localStorage?.setItem==`function`&&localStorage.setItem(se,String(e)),me()}function me(e){if(typeof document>`u`)return;de(document);let t=e===void 0?fe():e;document.documentElement.classList.toggle(ce,t),ue=!0}function he(){ue||me()}function ge(e){return e?new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}):null}var _e=[`top`,`right`,`bottom`,`left`,`center`];function ve(e){return e!=null&&_e.includes(e)}function ye(e){let t=e?.panelMeta;return t&&typeof t.id==`string`?t:void 0}var be=new Map,xe=new EventTarget;function Se(e,t){xe.dispatchEvent(new CustomEvent(`panel-registry-change`,{detail:{id:e,change:t}}))}function Ce(e){let{id:t}=e.meta,n=be.has(t);return be.set(t,e),Se(t,`registered`),!n}function we(e){return be.delete(e)?(Se(e,`unregistered`),!0):!1}function Te(){return[...be.values()]}function Ee(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}var De=`.dock-tree__parking, .slicc-layout__parking`;function Oe(e,t){let n=e.querySelector(`[surface-id="${Ee(t)}"]`);return!n||n.closest(De)?!1:(n.requestFullscreen?.()?.catch(()=>{}),!0)}var ke=e({DEFAULT_ZONE_AXIS:()=>Me,LAYOUT_SCHEMA_VERSION:()=>1,ZONE_NAMES:()=>je,cloneLayout:()=>k,emptyLayout:()=>O,isPanelLocked:()=>Ue,isSplitNode:()=>Pe,layoutPanelIds:()=>Ie,moveToZone:()=>Re,parseLayoutDocument:()=>Ke,removeFromZones:()=>ze,resolveLayout:()=>He,sizeToFlex:()=>Ge,variantMatches:()=>Fe,walkCenter:()=>Ve,zoneAxis:()=>Ne,zoneOfPanel:()=>Le,zonesFromCenter:()=>Be}),Ae=1,je=[`top`,`left`,`center`,`right`,`bottom`],Me={top:`row`,bottom:`row`,left:`col`,right:`col`,center:`col`};function Ne(e,t){return e.axes?.[t]??Me[t]}function O(e=`empty`){return{version:1,id:e,base:{}}}function k(e){return JSON.parse(JSON.stringify(e))}function Pe(e){return`split`in e}function Fe(e,t){return!(e.minWidth!=null&&t.width<e.minWidth||e.maxWidth!=null&&t.width>e.maxWidth||e.minHeight!=null&&t.height<e.minHeight||e.maxHeight!=null&&t.height>e.maxHeight||e.orientation!=null&&(t.width>=t.height?`landscape`:`portrait`)!==e.orientation||e.platform!=null&&t.platform!=null&&e.platform!==t.platform)}function Ie(e){let t=[],n=new Set,r=e=>{n.has(e)||(n.add(e),t.push(e))};for(let t of e.docks)for(let e of t.panels)r(e);if(e.zones)for(let t of je)for(let n of e.zones[t]??[])r(n);else e.center&&Ve(e.center,e=>r(e.panel));for(let t of e.floating)r(t.panel);return t}function Le(e,t){for(let n of je)if((e[n]??[]).includes(t))return n;return null}function Re(e,t,n){if(Le(e,t)===n)return e;let r=k(e);for(let e of je){let n=r[e];n&&(r[e]=n.filter(e=>e!==t))}return r[n]=[...r[n]??[],t],r}function ze(e,t){let n=k(e);for(let e of je){let r=n[e];r&&(n[e]=r.filter(e=>e!==t))}return n}function Be(e){let t=[];return e&&Ve(e,e=>t.push(e.panel)),{center:t}}function Ve(e,t){if(!Pe(e)){t(e);return}for(let n of e.children)Ve(n,t)}function He(e,t){let n={id:e.id,locked:e.locked===!0,docks:k(e.base.docks??[]),zones:k(e.base.zones??null),center:k(e.base.center??null),floating:k(e.base.floating??[]),panels:k(e.panels??{}),appliedVariants:[]};return(e.variants??[]).forEach((e,r)=>{if(Fe(e.when,t)){n.appliedVariants.push(r),e.docks!==void 0&&(n.docks=k(e.docks)),e.zones!==void 0&&(n.zones=k(e.zones)),e.center!==void 0&&(n.center=k(e.center)),e.floating!==void 0&&(n.floating=k(e.floating));for(let[t,r]of Object.entries(e.panels??{}))n.panels[t]={...n.panels[t],...r}}}),n}function Ue(e,t){if(e.locked||e.panels[t]?.locked===!0)return!0;for(let n of e.docks)if(n.panels.includes(t))return n.locked===!0;for(let n of e.floating)if(n.panel===t)return n.locked===!0;if(e.zones){let n=Le(e.zones,t);return n?(e.zones.locked??[]).includes(n):!1}return e.center?We(e.center,t,!1):!1}function We(e,t,n){let r=n||e.locked===!0;return Pe(e)?e.children.some(e=>We(e,t,r)):e.panel===t&&r}function Ge(e){if(e==null)return`1 1 auto`;if(typeof e==`number`)return`${e} 1 0`;let t=e.trim(),n=/^([\d.]+)fr$/.exec(t);return n?`${n[1]} 1 0`:/^[\d.]+$/.test(t)?`${t} 1 0`:`0 0 ${t}`}function Ke(e){if(!e||typeof e!=`object`)return{error:`layout must be an object`};let t=e;if(typeof t.id!=`string`||t.id.trim()===``)return{error:`layout.id must be a non-empty string`};if(typeof t.version!=`number`)return{error:`layout.version must be a number`};if(t.version>1)return{error:`layout.version ${t.version} is newer than supported (1)`};if(!t.base||typeof t.base!=`object`)return{error:`layout.base must be an object`};for(let e of t.base.docks??[]){if(!qe(e?.edge))return{error:`invalid dock edge: ${String(e?.edge)}`};if(!Array.isArray(e.panels))return{error:`dock.${e.edge}.panels must be an array`}}if(t.base.center!=null){let e=Je(t.base.center);if(e)return{error:e}}return t}function qe(e){return e===`top`||e===`right`||e===`bottom`||e===`left`}function Je(e){if(!e||typeof e!=`object`)return`center node must be an object`;let t=e;if(typeof t.panel==`string`)return null;if(t.split!==`row`&&t.split!==`col`)return'center node needs a `panel` string or a `split` of "row"/"col"';if(!Array.isArray(t.children)||t.children.length===0)return"a split node needs a non-empty `children` array";for(let e of t.children){let t=Je(e);if(t)return t}return null}var Ye=[`top-left`,`top-right`,`bottom-left`,`bottom-right`,`top`,`right`,`bottom`,`left`],Xe=`top-right`,Ze=`slicc-launcher-corner`,Qe=[`disconnected`,`connected`,`error`],A=`disconnected`,j=`follower-status`,$e=new Set(Ye),et=new Set(Qe);function tt(e,t=Xe){return e&&$e.has(e)?e:t}function nt(e,t=A){return e&&et.has(e)?e:t}function rt(e){return e>=6}function it({clientX:e,clientY:t,viewportWidth:n,viewportHeight:r,velocityXPxPerMs:i=0,velocityYPxPerMs:a=0,flickProjectionMs:o=180}){let s=at(e+i*o,0,n),c=at(t+a*o,0,r),l=s/n,u=c/r,d=l>1/3&&l<2/3,f=u>1/3&&u<2/3;if(d&&f){let e=u,t=1-u,n=l,r=1-l,i=Math.min(e,t,n,r);return i===e?`top`:i===t?`bottom`:i===n?`left`:`right`}return d?u<.5?`top`:`bottom`:f?l<.5?`left`:`right`:`${u<.5?`top`:`bottom`}-${l<.5?`left`:`right`}`}function at(e,t,n){return Math.min(Math.max(e,t),n)}var ot=`<?xml version="1.0" encoding="UTF-8"?>
2
+ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CA1A4MNg.js";import{t}from"./preload-helper-Czpn1I53.js";import{t as n}from"./logger-DDBAeTLF.js";import{n as r}from"./runtime-env-Dlaokqg1.js";import{n as i,t as a}from"./icons-Df1OSRR-.js";function o(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n>=10||r===0?Math.round(n):Math.round(n*10)/10} ${t[r]}`}function s(e){let t=e.mimeType||`application/octet-stream`;return`${e.name} (${t}, ${o(e.size)})`}function c(e,t=`The original file lives on a remote runtime and is not accessible here.`){return e?.length?e.map(e=>{if(!e.path)return{...e};let{path:n,...r}=e;return e.kind===`image`&&e.data||e.kind===`text`&&e.text!==void 0?r:{...r,error:r.error??t}}):[]}var l='---\nintervalHours: 24\nnightly: \'0 3 * * *\'\nmaxSuggestions: 5\n---\n\n# Gelatiere pass\n\nYou are the gelatiere, SLICC\'s resident advisor. A lick just asked you for a pass: a nightly `[Cron Event: gelatiere-nightly]`, a `[Sprinkle Event: gelatiere]` because a session ended or someone ran `gelatiere run`, or a direct request. Your job is to look at how this person actually uses SLICC and come back with a handful of concrete, well-grounded suggestions — skills to install, use cases they have not tried, habits that would make their sessions go better — then hand them to the cones.\n\n**Work fast: a pass should take a few minutes, not many.** Mine the signals below, cross them with what is available, write the candidates file, and finish with the two commands at the end. Never install anything, never edit memory files yourself (the nightly\'s `memory dream` delegates that to sandboxed dreamer scoops), never message a cone by any other means than `gelatiere deliver`.\n\n## Nightly only: start the dreaming pass\n\nWhen this pass is the nightly (`[Cron Event: gelatiere-nightly]`), start the memory-dreaming pass first, before anything else, and do not wait for it:\n\n```bash\nmemory dream --all\n```\n\nThat spawns one sandboxed memory-dreamer per cone to consolidate its memory file — merge duplicates, drop superseded facts, land under budget. It runs detached; carry on with your own pass immediately and never read or edit the memory files it is working on beyond the signal-mining below. Skip this step entirely on session-end and on-demand passes.\n\n## What the user has done\n\nRead these in order; each one is cheap. Start with `date -u +%Y-%m-%d` so your evidence carries today\'s date.\n\n1. **Profile** — who they said they are on first run: `cat /home/*/.welcome.json 2>/dev/null` (`purpose`, `role`, `tasks`, `apps`, `company`).\n2. **Durable memory** — what earlier sessions already established (preferences, projects, pitfalls): `cat /workspace/CLAUDE.md`, and `cat /cones/*/CLAUDE.md 2>/dev/null` for the other cones.\n3. **Session index** — titles, dates, cones: `jq -r \'.[] | "\\(.frozenAt[0:10]) \\(.cone // "cone") \\(.title)"\' /sessions/index.json | tail -30`.\n4. **Recent archives** — the newest few sessions: `ls -t /sessions/*.md | grep -v agent- | head -5`.\n5. **Your own notes** — what you concluded last time: `cat /shared/.gelatiere/notes.md 2>/dev/null`.\n\n**Never `cat` an archive.** They reach several megabytes and the `<!-- slicc:session-data ... -->` block is one JSON line holding the whole session. Pull the three signals separately, each on the prose half only:\n\n```bash\n# What the user asked for, in their words.\nsed \'/^<!-- slicc:session-data$/,/^-->$/d\' ARCHIVE | awk \'/^## User/{p=1;next} /^## (Assistant|Summary)/{p=0} /^### Tool/{p=0} p\' | head -80\n\n# Which commands and tools the sessions lean on.\nsed \'/^<!-- slicc:session-data$/,/^-->$/d\' ARCHIVE | grep -o \'^### Tool: [a-z_]*\' | sort | uniq -c | sort -rn\nsed \'/^<!-- slicc:session-data$/,/^-->$/d\' ARCHIVE | grep -oE \'^\\$? ?[a-z][a-z0-9-]+ \' | sort | uniq -c | sort -rn | head -20\n\n# What broke — the strongest signal for a missing skill.\nsed \'/^<!-- slicc:session-data$/,/^-->$/d\' ARCHIVE | grep -B4 \'^Result:.*\\(rror\\|not found\\|failed\\|denied\\|ENOENT\\)\' | cut -c1-160 | head -60\n```\n\n6. **What is already installed** — never suggest a duplicate: `upskill list`.\n7. **What you already suggested** — `/shared/.gelatiere/suggestions.json` holds every earlier suggestion with its `dismissedAt`. Do not repeat an id that is still open, and do not resurrect a dismissed one unless the sessions show a new, strong reason: `jq -r \'.[] | "\\(.id)\\t\\(.kind)\\t\\(.dismissedAt // "open")\\t\\(.title)"\' /shared/.gelatiere/suggestions.json 2>/dev/null`.\n\n## What is available\n\nCross the signals above with what SLICC can offer. Spend one command on each; do not browse further.\n\n```bash\n# The skill catalog: name, description, the tasks / roles / apps each skill fits, and WHERE it\n# lives (repo, path, skill, installAll) — the install command is built from those last four.\ngelatiere catalog | jq -r \'.data[] | "\\(.name)\\t\\(.description)\\ttasks=\\(.tasks) role=\\(.role) apps=\\(.apps)\\trepo=\\(.repo) path=\\(.path) skill=\\(.skill) installAll=\\(.installAll)"\'\n\n# Every shell command SLICC ships, one man page each — the use-case surface.\ngelatiere commands\n\n# The community skills repo, when the catalog looks thin for this user.\nupskill ai-ecoverse/skills\n```\n\nRead a man page only when you are about to recommend that command and need to be sure it does what you think: `gelatiere man <command> | head -60`. You have no `curl` and need none — `gelatiere catalog`, `gelatiere commands` and `gelatiere man` are your whole web surface.\n\n## What to suggest\n\nAt most the `maxSuggestions` from the config block above, best first. Fewer, sharper suggestions beat a full list; an empty list is a fine outcome when nothing is genuinely worth the user\'s attention. Every suggestion must be traceable to something you saw:\n\n| kind | when | required fields |\n| ---------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |\n| `skill` | a catalog or repo skill matches a recurring task, app, or failure in the sessions | `skill`, and `install` — the exact `upskill` command (see below) |\n| `use-case` | a SLICC capability (shell command, scoops, sprinkles, mounts, automation) fits work the user does by hand or not at all | `prompt` — a message the user could send verbatim |\n| `tip` | a habit that would have avoided a failure or a repeated detour in the sessions | `body` explains what to do differently |\n\nThe `install` command is built from the catalog row, never from the bare name — `upskill <name>` alone searches the public registries and does not find catalog skills:\n\n| catalog row | `install` |\n| ------------------------------------------------- | -------------------------------------------- |\n| `repo=o/r skill=x` (path empty) | `upskill o/r --skill x` |\n| `repo=o/r path=skills/ skill=x` | `upskill o/r --path skills/ --skill x` |\n| `repo=o/r path=skills/migration/ installAll=true` | `upskill o/r --path skills/migration/ --all` |\n| a skill from `upskill ai-ecoverse/skills` output | `upskill ai-ecoverse/skills --skill <name>` |\n\nRules:\n\n- `id` is a stable slug (`skill-github`, `use-case-fswatch-deploy`, `tip-mount-once`) so a repeat pass recognises it.\n- Speak to the user as "you" in every field — never about them in the third person ("Lars builds…" is wrong; "You build…" is right).\n- The card shows exactly two things — WHAT to do and WHY — so write the fields that way:\n - `title` is the WHAT: a short imperative, eight words or fewer, sentence case — "Install the GitHub skill", "Script your build–serve–screenshot loop". No benefit clause bolted on ("…to manage repos and pull requests from chat" belongs in the why, if anywhere).\n - `body` is the WHY: one or two sentences, grounded in what you actually saw, that tell the story of the change — what you watched the user do by hand, and what gets better. "You ran the build–serve–screenshot loop 80+ times by hand in your bakery session; a workflow file replays it as one command." It must not restate the title, list features, or repeat `evidence` word for word.\n- `evidence` is one friendly sentence, spoken to the user, saying what you saw that led here — "You told the welcome wizard you\'re a developer who lives in GitHub". It rides the lick for the cones; the card does not render it, so do not lean on it to justify the suggestion — the why lives in `body`. Never a field dump like `role=developer, tasks=[…]`.\n- `url` is optional: the skill page or the man page.\n- Never suggest what `upskill list` already shows installed, and never invent a skill or command that is not in the catalog, the repo listing, or the sitemap.\n\n## Finish\n\nWrite the candidates as JSON — `{ "suggestions": [ { "id", "kind", "title", "body", "skill", "install", "prompt", "url", "evidence" } ] }` — to `$TMPDIR/candidates.json`, then run exactly:\n\n```bash\ngelatiere suggest "$TMPDIR/candidates.json" && gelatiere deliver\n```\n\n`suggest` validates and folds the candidates into the store (known ids are kept, dismissed ones stay dismissed); `deliver` licks every other cone with what is new. Then update `/shared/.gelatiere/notes.md` with two or three lines on what you looked at and what you decided against — that file, not your reply, is your memory across passes. Reply with one short line.\n\n<!-- How to customize\nAdd instructions above, for example: prefer skills from a company repo, or always check a team\nwiki at /mnt/kb before suggesting. The config block sets `intervalHours` (minimum hours between\nsession-end passes; the nightly pass ignores it), `nightly` (a 5-field cron expression, registered\nby `gelatiere init` as the `gelatiere-nightly` crontask) and `maxSuggestions` (capped at 10).\n\nThe gelatiere is a persistent scoop no cone owns (folder `gelatiere`); its own conversation is\ncompacted while it idles. Dismissed suggestions are kept with a dismissedAt stamp so the next pass does not\nrepeat them. `gelatiere run` from any cone\'s shell asks for a pass now.\n-->\n';function u(e,t){let n=e.replace(/^\uFEFF/,``).replace(/\r\n?/g,`
3
+ `).match(/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/);if(!n?.[2].trim())throw Error(`${t} requires frontmatter and a prompt`);return{frontmatter:n[1],body:n[2].trim()}}function d(e,t){let n={},r=e.split(`
4
+ `);for(let e=0;e<r.length;e+=1){let i=r[e];if(!i.trim()||i.trimStart().startsWith(`#`))continue;let a=i.match(/^([A-Za-z][A-Za-z0-9]*):\s*(.*)$/);if(!a)throw Error(`Invalid frontmatter line: ${i}`);let[,o,s]=a;if(t.arrayKeys.has(o)){let t=f(r,e,s);n[o]=t.value,e=t.lastIndex}else if(t.scalarKeys.has(o)&&s.trim())n[o]=h(s);else throw Error(`Unsupported or empty frontmatter field: ${o}`)}return n}function f(e,t,n){if(n.trim()){let e=n.trim();if(!e.startsWith(`[`)||!e.endsWith(`]`))throw Error(`Expected an array`);let r=e.slice(1,-1).trim();return{value:r?p(r):[],lastIndex:t}}let r=[],i=t;for(let n=t+1;n<e.length;n+=1){let t=e[n].match(/^\s+-\s+(.+)$/);if(!t)break;r.push(h(m(t[1]))),i=n}return{value:r,lastIndex:i}}function p(e){let t=[],n=0,r;for(let i=0;i<e.length;i+=1){let a=e[i];a===`"`||a===`'`?r=r===a?void 0:r??a:a===`,`&&!r&&(t.push(h(e.slice(n,i))),n=i+1)}if(r)throw Error(`Unclosed quoted value`);return t.push(h(e.slice(n))),t}function m(e){let t;for(let n=0;n<e.length;n+=1){let r=e[n];if(r===`"`||r===`'`)t=t===r?void 0:t??r;else if(r===`#`&&!t&&(n===0||/\s/.test(e[n-1])))return e.slice(0,n).trimEnd()}return e}function h(e){let t=e.trim();if(!t)throw Error(`Empty frontmatter value`);let n=t[0];if((n===`"`||n===`'`)&&t.at(-1)===n)return t.slice(1,-1);if(n===`"`||n===`'`)throw Error(`Unclosed quoted value`);return t}function g(e,t,n){let r=e[t];if(r===void 0)return[...n];if(!Array.isArray(r)||r.some(e=>!e))throw Error(`${t} is invalid`);return[...r]}function _(e,t){if(e!==void 0){if(typeof e!=`string`||!e)throw Error(`${t} is invalid`);return e}}function v(e,t,n){if(e===void 0)return t;if(typeof e!=`string`)throw Error(`timeoutSeconds is invalid`);let r=Number(e);if(!Number.isFinite(r)||r<=0)throw Error(`timeoutSeconds must be positive`);return Math.min(r,n)}function y(e,t){if(e.some(e=>!e.startsWith(`/`)||e.includes(`\0`)||t===`writablePaths`&&e===`/`))throw Error(`${t} must contain absolute VFS paths`)}var b=`gelatiere`,x=`gelatiere`,S=`gelatiere-nightly`,C=`system:gelatiere`;function ee(e){return e.parentJid===`system:gelatiere`&&e.folder===`gelatiere`}var te=e({DEFAULT_GELATIERE_INTERVAL_HOURS:()=>24,DEFAULT_GELATIERE_MD:()=>l,DEFAULT_GELATIERE_NIGHTLY_CRON:()=>oe,DEFAULT_MAX_SUGGESTIONS:()=>5,GELATIERE_DIR:()=>T,GELATIERE_FOLDER:()=>b,GELATIERE_INSTRUCTIONS_PATH:()=>w,GELATIERE_NIGHTLY_CRON_NAME:()=>S,GELATIERE_OWNER_JID:()=>C,GELATIERE_SKILL_PATH:()=>E,GELATIERE_SPRINKLE_NAME:()=>x,GELATIERE_STATE_PATH:()=>ie,GELATIERE_SUGGESTIONS_ACTION:()=>ae,GELATIERE_SUGGESTIONS_PATH:()=>re,LICK_SUGGESTION_LIMIT:()=>5,MAX_STORED_SUGGESTIONS:()=>40,MAX_SUGGESTIONS_PER_PASS:()=>10,buildGelatiereLickBody:()=>Ie,coerceSuggestions:()=>Ne,describeGelatiereLick:()=>Re,dismissGelatiereSuggestion:()=>Se,isGelatiereUnit:()=>ee,isPassDue:()=>_e,loadGelatiereConfig:()=>ue,mergeSuggestions:()=>O,openSuggestions:()=>ye,parseGelatiereDocument:()=>ce,readGelatiereState:()=>he,readGelatiereSuggestions:()=>pe,recordGelatiereTrigger:()=>ve,recordPass:()=>Fe,suggestionsSince:()=>xe,takeGelatiereSuggestion:()=>Ce,takenSuggestions:()=>be,writeGelatiereState:()=>ge,writeGelatiereSuggestions:()=>me}),ne=n(`gelatiere-store`),w=`/shared/GELATIERE.md`,T=`/shared/.gelatiere`,re=`${T}/suggestions.json`,ie=`${T}/state.json`,ae=`gelatiere-suggestions`,E=`/workspace/skills/gelatiere/SKILL.md`,oe=`0 3 * * *`,D={arrayKeys:new Set,scalarKeys:new Set([`intervalHours`,`nightly`,`maxSuggestions`])},se=new Set([`skill`,`use-case`,`tip`]);function ce(e){let t=u(e,`GELATIERE.md`),n=d(t.frontmatter,D),r=_(n.nightly,`nightly`)??`0 3 * * *`;if(r.trim().split(/\s+/).length!==5)throw Error(`nightly must be a 5-field cron expression`);return{intervalHours:le(n.intervalHours,`intervalHours`,24),nightly:r.trim(),maxSuggestions:Math.min(10,le(n.maxSuggestions,`maxSuggestions`,5)),instructions:t.body}}function le(e,t,n){if(e===void 0)return n;if(typeof e!=`string`)throw Error(`${t} is invalid`);let r=Number(e);if(!Number.isFinite(r)||r<=0)throw Error(`${t} must be positive`);return r}async function ue(e){try{return ce(await de(e,w))}catch(e){return ne.warn(`Could not load valid GELATIERE.md; using built-in default`,{error:Le(e)}),ce(l)}}async function de(e,t){let n=await e.readFile(t,{encoding:`utf-8`});return typeof n==`string`?n:new TextDecoder().decode(n)}async function fe(e,t){try{return JSON.parse(await de(e,t))}catch{return}}async function pe(e){let t=await fe(e,re);if(!Array.isArray(t))return[];let n=[];for(let e of t){let t=Me(e,null);if(!t)continue;let{dismissedAt:r,takenAt:i}=e;typeof r==`string`&&r&&(t.dismissedAt=r),typeof i==`string`&&i&&(t.takenAt=i),n.push(t)}return n}async function me(e,t){await e.mkdir(T,{recursive:!0}),await e.writeFile(re,`${JSON.stringify(t,null,2)}\n`)}async function he(e){let t=await fe(e,ie);if(!t||typeof t!=`object`)return{passes:0};let n=t;return{passes:typeof n.passes==`number`&&n.passes>=0?n.passes:0,...typeof n.lastPassAt==`string`?{lastPassAt:n.lastPassAt}:{},...typeof n.lastTriggeredAt==`string`?{lastTriggeredAt:n.lastTriggeredAt}:{},...typeof n.lastDeliveredAt==`string`?{lastDeliveredAt:n.lastDeliveredAt}:{}}}async function ge(e,t){await e.mkdir(T,{recursive:!0}),await e.writeFile(ie,`${JSON.stringify(t,null,2)}\n`)}function _e(e,t,n){let r=Math.max(...[e.lastPassAt,e.lastTriggeredAt].map(e=>e?Date.parse(e):NaN).filter(e=>!Number.isNaN(e)));return!Number.isFinite(r)||t.getTime()-r>=n*36e5}async function ve(e,t=new Date){await ge(e,{...await he(e),lastTriggeredAt:t.toISOString()})}function ye(e){return e.filter(e=>!e.dismissedAt&&!e.takenAt)}function be(e){return e.filter(e=>!!e.takenAt)}function xe(e,t){let n=ye(e);if(!t)return n;let r=Date.parse(t);return Number.isNaN(r)?n:n.filter(e=>{let t=Date.parse(e.createdAt);return Number.isNaN(t)||t>r})}async function Se(e,t,n=new Date){return Te(e,t,`dismissedAt`,n)}async function Ce(e,t,n=new Date){return Te(e,t,`takenAt`,n)}var we=Promise.resolve();function Te(e,t,n,r){let i=async()=>{let i=await pe(e),a=i.find(e=>e.id===t&&!e.dismissedAt&&!e.takenAt);return a?(a[n]=r.toISOString(),await me(e,i),!0):!1},a=we.then(i,i);return we=a.catch(()=>!1),a}var Ee=/[^a-z0-9]+/g;function De(e){return e.toLowerCase().replace(Ee,`-`).replace(/^-+|-+$/g,``).slice(0,60)}function Oe(e,t){if(typeof e!=`string`)return;let n=e.trim();return n?n.slice(0,t):void 0}function ke(e){if(e)try{let t=new URL(e).protocol;return t===`http:`||t===`https:`?e:void 0}catch{return}}var Ae=/^[A-Za-z0-9@._/:=-]+$/;function je(e){if(!e)return;let t=e.split(/\s+/);if(!(t[0]!==`upskill`||t.length<2))return t.slice(1).every(e=>Ae.test(e))?e:void 0}function Me(e,t){if(!e||typeof e!=`object`)return null;let n=e,r=typeof n.kind==`string`?n.kind:``,i=Oe(n.title,200),a=Oe(n.body,1e3);if(!se.has(r)||!i||!a)return null;let o=De(Oe(n.id,80)??`${r}-${i}`)||De(`${r}-${i}`);if(!o)return null;let s=t??Oe(n.createdAt,40)??``,c=n.skill===void 0?void 0:Oe(n.skill,120),l=n.install===void 0?void 0:je(Oe(n.install,300)),u=n.prompt===void 0?void 0:Oe(n.prompt,1e3);return r===`skill`&&(!c||!l)||r===`use-case`&&!u?null:{id:o,kind:r,title:i,body:a,...n.skill===void 0?{}:{skill:c},...n.install===void 0?{}:{install:l},...n.prompt===void 0?{}:{prompt:u},...n.url===void 0?{}:{url:ke(Oe(n.url,500))},...n.evidence===void 0?{}:{evidence:Oe(n.evidence,500)},createdAt:s}}function Ne(e,t,n=10){let r=Array.isArray(e)?e:e&&typeof e==`object`&&Array.isArray(e.suggestions)?e.suggestions??[]:[],i=new Set,a=[];for(let e of r){let r=Me(e,t);if(!(!r||i.has(r.id))&&(i.add(r.id),a.push(r),a.length>=n))break}return a}function O(e,t,n=40){let r=new Set(e.map(e=>e.id)),i=t.filter(e=>!r.has(e.id)),a=[...i,...e];for(;a.length>n;){let e=Pe(a,e=>!!e.dismissedAt),t=e>=0?e:Pe(a,e=>!!e.takenAt);a.splice(t>=0?t:a.length-1,1)}return{merged:a,added:i}}function Pe(e,t){for(let n=e.length-1;n>=0;--n)if(t(e[n]))return n;return-1}async function Fe(e,t,n=new Date){let r=await ue(e),i=Ne(t,n.toISOString(),r.maxSuggestions),{merged:a,added:o}=O(await pe(e),i);await me(e,a);let s=await he(e);return await ge(e,{...s,passes:s.passes+1,lastPassAt:n.toISOString()}),{added:o,open:ye(a)}}function Ie(e,t){return{action:ae,data:{added:e.length,open:t.length,suggestions:t.slice(0,5),path:re,skill:E}}}function Le(e){return e instanceof Error?e.message:String(e)}function Re(e){let t=ze(e);if(!t)return null;let{action:n,bag:r}=t;return n===`gelatiere-suggestions`?Be(n,r):n===`session-settled`?He(n,r):n===`run`?Ue(n,r):{action:n,headline:`gelatiere: ${n}`,titles:[]}}function ze(e){let t=e.indexOf(`{`),n=e.lastIndexOf(`}`);if(t<0||n<=t)return null;let r;try{r=JSON.parse(e.slice(t,n+1))}catch{return null}if(!r||typeof r!=`object`)return null;let{action:i,data:a}=r;return typeof i==`string`?{action:i,bag:a&&typeof a==`object`?a:{}}:null}function Be(e,t){let n=Ve(t.suggestions),r=typeof t.added==`number`?t.added:n.length,i=typeof t.open==`number`?t.open:n.length;return{action:e,headline:r===0?`Nothing new — ${i} open ${i===1?`suggestion`:`suggestions`} in the suggestions card.`:`${r} new ${r===1?`suggestion`:`suggestions`} (${i} open) — the cards are in the suggestions sprinkle.`,titles:n}}function Ve(e){return Array.isArray(e)?e.map(e=>e&&typeof e==`object`?e.title:void 0).filter(e=>typeof e==`string`&&e.length>0):[]}function He(e,t){let n=typeof t.cone==`string`?t.cone:void 0;return{action:e,headline:n?`A session ended in ${n} — time for a pass.`:`A session ended — time for a pass.`,titles:[]}}function Ue(e,t){let n=typeof t.requestedBy==`string`?t.requestedBy:void 0;return{action:e,headline:n?`${n} asked for a pass now.`:`Someone asked for a pass now.`,titles:[]}}function We(e,t){let n=r(),i=`/preview${e}${t?`?projectRoot=${encodeURIComponent(t)}`:``}`;if(n){let e=globalThis.chrome?.runtime?.getURL;if(e)return e(i)}let a=`http://localhost:5710`;return typeof window<`u`&&window.location?.origin?a=window.location.origin:typeof self<`u`&&self.location?.origin&&(a=self.location.origin),`${a}${i}`}var Ge={camera:`Camera`,microphone:`Microphone`};function Ke(e,t,n){return(e??``).trim()||`${Ge[n]} ${t+1}`}function qe(e,t){return e.map((e,n)=>({deviceId:e.deviceId,label:Ke(e.label,n,t)}))}function Je(e){return e.length>=2}function Ye(e){if(e.length===0)return null;let t=e.find(e=>e.deviceId==="default");if(t)return t.deviceId;let n=e.find(e=>(e.label??``).trim().toLowerCase().startsWith(`default`));return n?n.deviceId:e[0].deviceId}function Xe(){if(typeof window>`u`)return null;let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}var Ze=3e3,Qe={engine:`builtin`,state:`idle`};function $e(){return{async permission(){try{return(await navigator.permissions.query({name:`microphone`})).state}catch{return`prompt`}},async requestPermission(){if(!navigator.mediaDevices?.getUserMedia)return!1;try{let e=await navigator.mediaDevices.getUserMedia({audio:!0});for(let t of e.getTracks())t.stop();return!0}catch{return!1}},async microphones(){if(!navigator.mediaDevices?.enumerateDevices)return[];try{return qe((await navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`),`microphone`)}catch{return[]}},async start(e){let t=Xe();if(!t)throw Error(`Speech recognition is not supported in this browser.`);let n=new t;n.continuous=!0,n.interimResults=!0,e.lang&&(n.lang=e.lang);let r=``,i=``,a=!1,o=[],s=()=>{a=!0;let e=o;o=[];for(let t of e)t()};n.onresult=t=>{i=``;for(let e=t.resultIndex;e<t.results.length;e++){let n=t.results[e];n.isFinal?r+=n[0].transcript:i+=n[0].transcript}let n=`${r}${i}`.trim();n&&e.onPartial?.(n)},n.onerror=t=>{t.error!==`no-speech`&&t.error!==`aborted`&&e.onError?.(`Speech recognition error: ${t.error}`)},n.onend=s,n.start();let c=()=>`${r}${i}`.trim();return{stop(){return a?Promise.resolve(c()):new Promise(e=>{let t=setTimeout(()=>e(c()),Ze);o.push(()=>{clearTimeout(t),e(c())});try{n.stop()}catch{clearTimeout(t),e(c())}})},cancel(){n.onresult=null,n.onerror=null,n.onend=null;try{(n.abort??n.stop).call(n)}catch{}s()}}},status(){return Qe},onStatus(e){return e(Qe),()=>{}},warmup(){}}}var et=e({applyDictationMarkers:()=>st,consumeDictationFirst:()=>dt,parseReplyLang:()=>lt,resetDictationPriming:()=>ft,stripDictationMarkers:()=>ct,stripReplyLangMarker:()=>ut}),tt=`◁This message has been sent through text to speech, consider possible phonetic alternatives and transcription errors. Future dictated messages will have the 🎙️ emoji appended. Your responses to dictated messages will be read out loud, avoid urls, acronyms, numbers, formatting. Begin every reply with the language you are replying in as a hidden HTML comment, e.g. <!--lang:en--> for English or <!--lang:de--> for German; it stays hidden from the user and selects a matching voice▷`,nt=/\uD83C\uDF99\uFE0F?/g,rt=/\u25C1[\s\S]*?\u25B7/g,it=/<!--\s*lang:\s*([A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*)\s*-->/i,at=/<!--\s*lang:\s*[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*\s*-->/gi,ot=!0;function st(e,t){let n=e.endsWith(` `)?e:`${e} `;return t?`${n}\uD83C\uDF99\uFE0F${tt}`:`${n}\uD83C\uDF99\uFE0F`}function ct(e){return e.replace(rt,``).replace(nt,``).replace(/[ \t]+$/g,``).trimEnd()}function lt(e){return it.exec(e)?.[1]}function ut(e){return e.replace(at,``)}function dt(){return ot?(ot=!1,!0):!1}function ft(){ot=!0}var pt={sent:{freq:660,freqSlideTo:990,duration:.12,peakGain:.06,type:`sine`},"tool-start":{freq:520,freq2:780,duration:.07,peakGain:.04,type:`triangle`},"tool-finish":{freq:880,freq2:1320,duration:.07,peakGain:.04,type:`sine`}};function mt(e,t){let n=pt[t],r=e.currentTime,i=r+n.duration,a=e.createGain();a.gain.setValueAtTime(1e-4,r),a.gain.exponentialRampToValueAtTime(n.peakGain,r+n.duration*.2),a.gain.exponentialRampToValueAtTime(1e-4,i),a.connect(e.destination);let o=e.createOscillator();if(o.type=n.type,o.frequency.setValueAtTime(n.freq,r),n.freqSlideTo!==void 0&&o.frequency.linearRampToValueAtTime(n.freqSlideTo,i),o.connect(a),o.start(r),o.stop(i),n.freq2!==void 0){let t=e.createOscillator();t.type=n.type,t.frequency.setValueAtTime(n.freq2,r),t.connect(a),t.start(r),t.stop(i)}}function ht(e){let t=/^\[@[^\]\s]+ (completed|idle)\]/.exec(e);return t?t[1]===`idle`?`scoop-idle`:`scoop-notify`:/^\[@[^\]\s]+ sudo-request\]/.test(e)?`sudo-request`:/^\[scoop_wait [^\]]+\]/.test(e)?`scoop-wait`:e.startsWith(`[Session Reload]`)?`session-reload`:null}var k=e({applyTimestampVisibility:()=>St,formatMessageTimestamp:()=>wt,getShowTimestamps:()=>bt,initTimestampPreference:()=>Ct,setShowTimestamps:()=>xt}),A=`slicc_show_timestamps`,gt=`slicc-show-timestamps`,_t=`slicc-timestamp-visibility`,vt=!1;function yt(e){if(e.getElementById(_t))return;let t=e.createElement(`style`);t.id=_t,t.textContent=[`slicc-user-message::part(timestamp),`,`slicc-agent-message .msg-ts {`,` display: none;`,`}`,`.${gt} slicc-user-message::part(timestamp),`,`.${gt} slicc-agent-message .msg-ts {`,` display: block;`,`}`].join(`
5
+ `),e.head.appendChild(t)}function bt(){if(typeof localStorage>`u`||typeof localStorage?.getItem!=`function`)return!0;let e=localStorage.getItem(A);return e===null||e===`true`}function xt(e){typeof localStorage<`u`&&typeof localStorage?.setItem==`function`&&localStorage.setItem(A,String(e)),St()}function St(e){if(typeof document>`u`)return;yt(document);let t=e===void 0?bt():e;document.documentElement.classList.toggle(gt,t),vt=!0}function Ct(){vt||St()}function wt(e){return e?new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}):null}var j=[`top`,`right`,`bottom`,`left`,`center`];function Tt(e){return e!=null&&j.includes(e)}function M(e){let t=e?.panelMeta;return t&&typeof t.id==`string`?t:void 0}var Et=new Map,Dt=new EventTarget;function Ot(e,t){Dt.dispatchEvent(new CustomEvent(`panel-registry-change`,{detail:{id:e,change:t}}))}function kt(e){let{id:t}=e.meta,n=Et.has(t);return Et.set(t,e),Ot(t,`registered`),!n}function At(e){return Et.delete(e)?(Ot(e,`unregistered`),!0):!1}function jt(){return[...Et.values()]}function Mt(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}var Nt=`.dock-tree__parking, .slicc-layout__parking`;function Pt(e,t){let n=e.querySelector(`[surface-id="${Mt(t)}"]`);return!n||n.closest(Nt)?!1:(n.requestFullscreen?.()?.catch(()=>{}),!0)}var Ft=e({DEFAULT_ZONE_AXIS:()=>Rt,LAYOUT_SCHEMA_VERSION:()=>1,ZONE_NAMES:()=>Lt,cloneLayout:()=>N,emptyLayout:()=>Bt,isPanelLocked:()=>Xt,isSplitNode:()=>Vt,layoutPanelIds:()=>Ut,moveToZone:()=>Gt,parseLayoutDocument:()=>$t,removeFromZones:()=>Kt,resolveLayout:()=>Yt,sizeToFlex:()=>Qt,variantMatches:()=>Ht,walkCenter:()=>Jt,zoneAxis:()=>zt,zoneOfPanel:()=>Wt,zonesFromCenter:()=>qt}),It=1,Lt=[`top`,`left`,`center`,`right`,`bottom`],Rt={top:`row`,bottom:`row`,left:`col`,right:`col`,center:`col`};function zt(e,t){return e.axes?.[t]??Rt[t]}function Bt(e=`empty`){return{version:1,id:e,base:{}}}function N(e){return JSON.parse(JSON.stringify(e))}function Vt(e){return`split`in e}function Ht(e,t){return!(e.minWidth!=null&&t.width<e.minWidth||e.maxWidth!=null&&t.width>e.maxWidth||e.minHeight!=null&&t.height<e.minHeight||e.maxHeight!=null&&t.height>e.maxHeight||e.orientation!=null&&(t.width>=t.height?`landscape`:`portrait`)!==e.orientation||e.platform!=null&&t.platform!=null&&e.platform!==t.platform)}function Ut(e){let t=[],n=new Set,r=e=>{n.has(e)||(n.add(e),t.push(e))};for(let t of e.docks)for(let e of t.panels)r(e);if(e.zones)for(let t of Lt)for(let n of e.zones[t]??[])r(n);else e.center&&Jt(e.center,e=>r(e.panel));for(let t of e.floating)r(t.panel);return t}function Wt(e,t){for(let n of Lt)if((e[n]??[]).includes(t))return n;return null}function Gt(e,t,n){if(Wt(e,t)===n)return e;let r=N(e);for(let e of Lt){let n=r[e];n&&(r[e]=n.filter(e=>e!==t))}return r[n]=[...r[n]??[],t],r}function Kt(e,t){let n=N(e);for(let e of Lt){let r=n[e];r&&(n[e]=r.filter(e=>e!==t))}return n}function qt(e){let t=[];return e&&Jt(e,e=>t.push(e.panel)),{center:t}}function Jt(e,t){if(!Vt(e)){t(e);return}for(let n of e.children)Jt(n,t)}function Yt(e,t){let n={id:e.id,locked:e.locked===!0,docks:N(e.base.docks??[]),zones:N(e.base.zones??null),center:N(e.base.center??null),floating:N(e.base.floating??[]),panels:N(e.panels??{}),appliedVariants:[]};return(e.variants??[]).forEach((e,r)=>{if(Ht(e.when,t)){n.appliedVariants.push(r),e.docks!==void 0&&(n.docks=N(e.docks)),e.zones!==void 0&&(n.zones=N(e.zones)),e.center!==void 0&&(n.center=N(e.center)),e.floating!==void 0&&(n.floating=N(e.floating));for(let[t,r]of Object.entries(e.panels??{}))n.panels[t]={...n.panels[t],...r}}}),n}function Xt(e,t){if(e.locked||e.panels[t]?.locked===!0)return!0;for(let n of e.docks)if(n.panels.includes(t))return n.locked===!0;for(let n of e.floating)if(n.panel===t)return n.locked===!0;if(e.zones){let n=Wt(e.zones,t);return n?(e.zones.locked??[]).includes(n):!1}return e.center?Zt(e.center,t,!1):!1}function Zt(e,t,n){let r=n||e.locked===!0;return Vt(e)?e.children.some(e=>Zt(e,t,r)):e.panel===t&&r}function Qt(e){if(e==null)return`1 1 auto`;if(typeof e==`number`)return`${e} 1 0`;let t=e.trim(),n=/^([\d.]+)fr$/.exec(t);return n?`${n[1]} 1 0`:/^[\d.]+$/.test(t)?`${t} 1 0`:`0 0 ${t}`}function $t(e){if(!e||typeof e!=`object`)return{error:`layout must be an object`};let t=e;if(typeof t.id!=`string`||t.id.trim()===``)return{error:`layout.id must be a non-empty string`};if(typeof t.version!=`number`)return{error:`layout.version must be a number`};if(t.version>1)return{error:`layout.version ${t.version} is newer than supported (1)`};if(!t.base||typeof t.base!=`object`)return{error:`layout.base must be an object`};for(let e of t.base.docks??[]){if(!en(e?.edge))return{error:`invalid dock edge: ${String(e?.edge)}`};if(!Array.isArray(e.panels))return{error:`dock.${e.edge}.panels must be an array`}}if(t.base.center!=null){let e=tn(t.base.center);if(e)return{error:e}}return t}function en(e){return e===`top`||e===`right`||e===`bottom`||e===`left`}function tn(e){if(!e||typeof e!=`object`)return`center node must be an object`;let t=e;if(typeof t.panel==`string`)return null;if(t.split!==`row`&&t.split!==`col`)return'center node needs a `panel` string or a `split` of "row"/"col"';if(!Array.isArray(t.children)||t.children.length===0)return"a split node needs a non-empty `children` array";for(let e of t.children){let t=tn(e);if(t)return t}return null}var nn=[`top-left`,`top-right`,`bottom-left`,`bottom-right`,`top`,`right`,`bottom`,`left`],rn=`top-right`,an=`slicc-launcher-corner`,on=[`disconnected`,`connected`,`error`],sn=`disconnected`,cn=`follower-status`,ln=new Set(nn),un=new Set(on);function dn(e,t=rn){return e&&ln.has(e)?e:t}function fn(e,t=sn){return e&&un.has(e)?e:t}function pn(e){return e>=6}function mn({clientX:e,clientY:t,viewportWidth:n,viewportHeight:r,velocityXPxPerMs:i=0,velocityYPxPerMs:a=0,flickProjectionMs:o=180}){let s=hn(e+i*o,0,n),c=hn(t+a*o,0,r),l=s/n,u=c/r,d=l>1/3&&l<2/3,f=u>1/3&&u<2/3;if(d&&f){let e=u,t=1-u,n=l,r=1-l,i=Math.min(e,t,n,r);return i===e?`top`:i===t?`bottom`:i===n?`left`:`right`}return d?u<.5?`top`:`bottom`:f?l<.5?`left`:`right`:`${u<.5?`top`:`bottom`}-${l<.5?`left`:`right`}`}function hn(e,t,n){return Math.min(Math.max(e,t),n)}var gn=`<?xml version="1.0" encoding="UTF-8"?>
4
6
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(151.53125, -171.3125) scale(1.25)"><g transform="translate(0, 21)"><g id="Cone">
5
7
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: rgb(34, 34, 34); stroke: rgb(255, 255, 255); stroke-linejoin: round; stroke-width: 20px;"></path>
6
8
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -27,7 +29,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
27
29
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: rgb(0, 0, 0); stroke: rgb(255, 255, 255); stroke-miterlimit: 10; stroke-width: 6px;"></circle>
28
30
 
29
31
  </g><g><line x1="351.01" y1="183.73000000000002" x2="415.78999999999996" y2="248.51" stroke="#fff" stroke-width="15" stroke-linecap="round"></line><line x1="351.01" y1="248.51" x2="415.78999999999996" y2="183.73000000000002" stroke="#fff" stroke-width="15" stroke-linecap="round"></line></g><g><line x1="142.70999999999998" y1="217.95" x2="207.49" y2="282.73" stroke="#fff" stroke-width="15" stroke-linecap="round"></line><line x1="142.70999999999998" y1="282.73" x2="207.49" y2="217.95" stroke="#fff" stroke-width="15" stroke-linecap="round"></line></g></g></g></svg>
30
- `,st=`<?xml version="1.0" encoding="UTF-8"?>
32
+ `,_n=`<?xml version="1.0" encoding="UTF-8"?>
31
33
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(151.53125, -171.3125) scale(1.25)"><g transform="translate(0, 21)"><g id="Cone">
32
34
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: #fff; stroke: #000; stroke-linejoin: round; stroke-width: 20px;"></path>
33
35
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -54,7 +56,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
54
56
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: #fff; stroke: #000; stroke-miterlimit: 10; stroke-width: 6px;"></circle>
55
57
 
56
58
  </g><g><line x1="351.01" y1="183.73000000000002" x2="415.78999999999996" y2="248.51" stroke="#000" stroke-width="15" stroke-linecap="round"></line><line x1="351.01" y1="248.51" x2="415.78999999999996" y2="183.73000000000002" stroke="#000" stroke-width="15" stroke-linecap="round"></line></g><g><line x1="142.70999999999998" y1="217.95" x2="207.49" y2="282.73" stroke="#000" stroke-width="15" stroke-linecap="round"></line><line x1="142.70999999999998" y1="282.73" x2="207.49" y2="217.95" stroke="#000" stroke-width="15" stroke-linecap="round"></line></g></g></g></svg>
57
- `,ct=`<?xml version="1.0" encoding="UTF-8"?>
59
+ `,vn=`<?xml version="1.0" encoding="UTF-8"?>
58
60
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(151.53125, -171.3125) scale(1.25)"><g transform="translate(0, 21)"><g id="Cone">
59
61
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: rgb(34, 34, 34); stroke: rgb(255, 255, 255); stroke-linejoin: round; stroke-width: 20px;"/>
60
62
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -80,7 +82,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
80
82
  </g><g id="Left_Eye" data-name="Left Eye">
81
83
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: rgb(0, 0, 0); stroke: rgb(255, 255, 255); stroke-miterlimit: 10; stroke-width: 6px;"/>
82
84
  <path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(255, 255, 255);"/>
83
- </g></g></g></svg>`,lt=`<?xml version="1.0" encoding="UTF-8"?>
85
+ </g></g></g></svg>`,yn=`<?xml version="1.0" encoding="UTF-8"?>
84
86
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(191.47118749999993, 12.583024999999978) scale(1.1115000000000002)"><g transform="translate(0, 0)"><g id="Cone">
85
87
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: rgb(34, 34, 34); stroke: rgb(255, 255, 255); stroke-linejoin: round; stroke-width: 20px;"/>
86
88
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -106,7 +108,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
106
108
  </g><g id="Left_Eye" data-name="Left Eye">
107
109
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: rgb(0, 0, 0); stroke: rgb(255, 255, 255); stroke-miterlimit: 10; stroke-width: 6px;"/>
108
110
  <path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(255, 255, 255);"/>
109
- </g></g></g></svg>`,ut=`<?xml version="1.0" encoding="UTF-8"?>
111
+ </g></g></g></svg>`,bn=`<?xml version="1.0" encoding="UTF-8"?>
110
112
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(151.53125, -171.3125) scale(1.25)"><g transform="translate(0, 21)"><g id="Cone">
111
113
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: #fff; stroke: #000; stroke-linejoin: round; stroke-width: 20px;"/>
112
114
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -132,7 +134,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
132
134
  </g><g id="Left_Eye" data-name="Left Eye">
133
135
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: #fff; stroke: #000; stroke-miterlimit: 10; stroke-width: 6px;"/>
134
136
  <path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(0, 0, 0);"/>
135
- </g></g></g></svg>`,dt=`<?xml version="1.0" encoding="UTF-8"?>
137
+ </g></g></g></svg>`,xn=`<?xml version="1.0" encoding="UTF-8"?>
136
138
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="100%" height="100%"><g transform="translate(191.47118749999993, 12.583024999999978) scale(1.1115000000000002)"><g transform="translate(0, 0)"><g id="Cone">
137
139
  <path id="Cone_Bottom" data-name="Cone Bottom" d="M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z" style="fill: #fff; stroke: #000; stroke-linejoin: round; stroke-width: 20px;"/>
138
140
  <g id="Waffle_Cross-Hatch" data-name="Waffle Cross-Hatch">
@@ -158,7 +160,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
158
160
  </g><g id="Left_Eye" data-name="Left Eye">
159
161
  <circle id="Right_Eye_Outline" data-name="Right Eye Outline" cx="175.1" cy="250.34" r="64.78" style="fill: #fff; stroke: #000; stroke-miterlimit: 10; stroke-width: 6px;"/>
160
162
  <path id="Left_Pupil" data-name="Left Pupil" d="M213.74,233.23c-.13,1.98-.7,3.97-1.76,5.81-3.71,6.43-11.93,8.63-18.36,4.92-6.43-3.71-8.63-11.93-4.92-18.36,2.32-4.02,6.4-6.38,10.7-6.69-3.8-1.78-8.03-2.8-12.51-2.8-16.37,0-29.64,13.27-29.64,29.64s13.27,29.64,29.64,29.64,29.64-13.27,29.64-29.64c0-4.48-1.02-8.72-2.81-12.53Z" style="fill: rgb(0, 0, 0);"/>
161
- </g></g></g></svg>`;function ft(e,t){typeof customElements>`u`||customElements==null||customElements.get(e)||customElements.define(e,t)}function M(e,t){for(let n of t)n!=null&&n!==!1&&e.append(typeof n==`string`||typeof n==`number`?document.createTextNode(String(n)):n)}function N(e,t,...n){let r=document.createElement(e);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==!1&&(e===`class`?r.className=String(n):r.setAttribute(e,n===!0?``:String(n)));return M(r,n),r}function pt(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var mt=pt(`
163
+ </g></g></g></svg>`;function Sn(e,t){typeof customElements>`u`||customElements==null||customElements.get(e)||customElements.define(e,t)}function Cn(e,t){for(let n of t)n!=null&&n!==!1&&e.append(typeof n==`string`||typeof n==`number`?document.createTextNode(String(n)):n)}function P(e,t,...n){let r=document.createElement(e);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==!1&&(e===`class`?r.className=String(n):r.setAttribute(e,n===!0?``:String(n)));return Cn(r,n),r}function wn(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var Tn=wn(`
162
164
  :host {
163
165
  all: initial;
164
166
  position: fixed;
@@ -215,10 +217,10 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
215
217
  .logo-icon { width: 32px; height: 32px; display: block; }
216
218
  .logo-icon svg { width: 100%; height: 100%; display: block; }
217
219
  .logo-state { display: none; }
218
- :host(:not([${j}])) .logo-state-disconnected,
219
- :host([${j}="disconnected"]) .logo-state-disconnected,
220
- :host([${j}="connected"]) .logo-state-connected,
221
- :host([${j}="error"]) .logo-state-error { display: contents; }
220
+ :host(:not([${cn}])) .logo-state-disconnected,
221
+ :host([${cn}="disconnected"]) .logo-state-disconnected,
222
+ :host([${cn}="connected"]) .logo-state-connected,
223
+ :host([${cn}="error"]) .logo-state-error { display: contents; }
222
224
  .logo-for-dark { display: block; }
223
225
  .logo-for-light { display: none; }
224
226
  @media (prefers-color-scheme: light) {
@@ -321,7 +323,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
321
323
  @media (prefers-reduced-motion: reduce) {
322
324
  .launcher, .sidebar, .backdrop { transition: none; }
323
325
  }
324
- `);function ht(e){let t=e.replace(/<\?xml[^?]*\?>\s*/i,``),n=new DOMParser().parseFromString(t,`image/svg+xml`);return document.importNode(n.documentElement,!0)}var gt=[{state:`disconnected`,darkSvg:ct,lightSvg:ut},{state:`connected`,darkSvg:lt,lightSvg:dt},{state:`error`,darkSvg:ot,lightSvg:st}];function _t(){let e=N(`span`,{class:`logo`,part:`logo`});for(let{state:t,darkSvg:n,lightSvg:r}of gt){let i=N(`div`,{class:`logo-icon logo-for-dark`});i.appendChild(ht(n));let a=N(`div`,{class:`logo-icon logo-for-light`});a.appendChild(ht(r));let o=N(`span`,{class:`logo-state logo-state-${t}`,"aria-hidden":`true`},i,a);e.appendChild(o)}return e}function vt(e,t,n){return Math.min(Math.max(e,t),n)}function yt(e,t){try{e.setPointerCapture(t)}catch{}}function bt(e,t){try{e.hasPointerCapture(t)&&e.releasePointerCapture(t)}catch{}}function xt(e){try{return tt(e?.localStorage.getItem(Ze))}catch{return Xe}}function P(e,t){try{e?.localStorage.setItem(Ze,t)}catch{}}var St=`Set the app-url attribute to load SLICC.`;ft(`slicc-launcher`,class extends HTMLElement{static observedAttributes=[`open`,`corner`,`app-url`,`status-message`,j];#e;#t;#n;#r;#i;#a;#o=``;#s=null;#c=!1;#l=!1;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[mt],this.#u()}connectedCallback(){if(!this.hasAttribute(`corner`)){let e=xt(this.ownerDocument.defaultView);this.#l=!0,this.setAttribute(`corner`,e),this.#l=!1}this.#f(),this.#p()}attributeChangedCallback(e){if(!this.#l&&(e===`app-url`&&this.#f(),e===`status-message`&&this.#p(),e===`corner`&&P(this.ownerDocument.defaultView,this.corner),e===`follower-status`)){let e=this.getAttribute(j);if(e!==null){let t=nt(e);t!==e&&(this.#l=!0,this.setAttribute(j,t),this.#l=!1)}}}get open(){return this.hasAttribute(`open`)}set open(e){this.open!==e&&(this.toggleAttribute(`open`,e),this.#d())}get corner(){return tt(this.getAttribute(`corner`))}set corner(e){let t=tt(e);this.corner===t&&this.hasAttribute(`corner`)||this.setAttribute(`corner`,t)}get appUrl(){return this.getAttribute(`app-url`)?.trim()??``}set appUrl(e){let t=(e??``).trim();t?this.setAttribute(`app-url`,t):this.removeAttribute(`app-url`)}get statusMessage(){return this.getAttribute(`status-message`)??``}set statusMessage(e){let t=e??``;t?this.setAttribute(`status-message`,t):this.removeAttribute(`status-message`)}get followerStatus(){return nt(this.getAttribute(j))}set followerStatus(e){if(e==null){this.removeAttribute(j);return}let t=nt(e);this.getAttribute(`follower-status`)!==t&&this.setAttribute(j,t)}show(){this.open=!0}hide(){this.open=!1}toggle(){this.open=!this.open}#u(){this.#t=N(`button`,{class:`launcher`,part:`launcher`,type:`button`,"aria-label":`Toggle SLICC`},_t(),N(`span`,{class:`tab-label`,part:`tab-label`},`SLICC`)),this.#t.addEventListener(`click`,e=>{if(this.#c){this.#c=!1,e.preventDefault(),e.stopImmediatePropagation();return}this.toggle()}),this.#t.addEventListener(`dblclick`,e=>{e.preventDefault(),this.dispatchEvent(new CustomEvent(`slicc-launcher-focus`,{bubbles:!0,composed:!0}))}),this.#t.addEventListener(`pointerdown`,this.#m),this.#t.addEventListener(`pointermove`,this.#h),this.#t.addEventListener(`pointerup`,this.#g),this.#t.addEventListener(`pointercancel`,this.#_),this.#n=N(`div`,{class:`backdrop`,part:`backdrop`}),this.#n.addEventListener(`click`,()=>this.hide()),this.#i=N(`iframe`,{title:`SLICC overlay`}),this.#a=N(`div`,{class:`empty`},St);let e=N(`div`,{class:`viewport`},this.#i,this.#a);this.#r=N(`aside`,{class:`sidebar`,part:`sidebar`,"aria-label":`SLICC launcher sidebar`},e),this.#e.replaceChildren(this.#n,this.#r,this.#t)}#d(){this.dispatchEvent(new CustomEvent(`slicc-launcher-toggle`,{detail:{open:this.open},bubbles:!0,composed:!0}))}#f(){let e=this.appUrl;if(this.#a.toggleAttribute(`hidden`,!!e),!e){this.#o&&(this.#o=``,this.#i.removeAttribute(`src`));return}e!==this.#o&&(this.#o=e,this.#i.src=e)}#p(){this.#a.textContent=this.statusMessage||St}#m=e=>{if(!e.isPrimary||e.button!==0)return;let t=this.#t.getBoundingClientRect();this.#s={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,startLeft:t.left,startTop:t.top,width:t.width,height:t.height,lastX:e.clientX,lastY:e.clientY,lastTimestamp:e.timeStamp,velocityX:0,velocityY:0,dragging:!1},this.#c=!1,e.preventDefault(),yt(this.#t,e.pointerId)};#h=e=>{let t=this.#s;if(!t||e.pointerId!==t.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY,i=Math.hypot(n,r);!t.dragging&&rt(i)&&(t.dragging=!0,this.setAttribute(`dragging`,``));let a=Math.max(e.timeStamp-t.lastTimestamp,1),o=(e.clientX-t.lastX)/a,s=(e.clientY-t.lastY)/a;if(t.velocityX=t.velocityX===0?o:t.velocityX*.35+o*.65,t.velocityY=t.velocityY===0?s:t.velocityY*.35+s*.65,t.lastX=e.clientX,t.lastY=e.clientY,t.lastTimestamp=e.timeStamp,!t.dragging)return;let c=Math.max(18,window.innerWidth-t.width-18),l=Math.max(18,window.innerHeight-t.height-18),u=vt(t.startLeft+n,18,c),d=vt(t.startTop+r,18,l);this.#t.style.left=`${u}px`,this.#t.style.top=`${d}px`,this.#t.style.right=`auto`,this.#t.style.bottom=`auto`,e.preventDefault()};#g=e=>{this.#v(e,!0)};#_=e=>{this.#v(e,!1)};#v(e,t){let n=this.#s;if(!n||e.pointerId!==n.pointerId)return;let r=Math.hypot(e.clientX-n.startX,e.clientY-n.startY);if(t&&(n.dragging||rt(r))){let t=it({clientX:e.clientX,clientY:e.clientY,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,velocityXPxPerMs:n.velocityX,velocityYPxPerMs:n.velocityY});this.corner=t,this.dispatchEvent(new CustomEvent(`slicc-launcher-move`,{detail:{corner:t},bubbles:!0,composed:!0})),this.#c=!0,e.preventDefault()}bt(this.#t,e.pointerId),this.#s=null,this.removeAttribute(`dragging`),this.#t.style.left=``,this.#t.style.top=``,this.#t.style.right=``,this.#t.style.bottom=``}});function F(e,t){typeof customElements>`u`||customElements==null||customElements.get(e)||customElements.define(e,t)}function I(e,t){for(let n of t)n!=null&&n!==!1&&e.append(typeof n==`string`||typeof n==`number`?document.createTextNode(String(n)):n)}function L(e,t,...n){let r=document.createElement(e);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==!1&&(e===`class`?r.className=String(n):r.setAttribute(e,n===!0?``:String(n)));return I(r,n),r}function R(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var Ct=20,wt=16,Tt=18,Et=R(`
326
+ `);function En(e){let t=e.replace(/<\?xml[^?]*\?>\s*/i,``),n=new DOMParser().parseFromString(t,`image/svg+xml`);return document.importNode(n.documentElement,!0)}var Dn=[{state:`disconnected`,darkSvg:vn,lightSvg:bn},{state:`connected`,darkSvg:yn,lightSvg:xn},{state:`error`,darkSvg:gn,lightSvg:_n}];function On(){let e=P(`span`,{class:`logo`,part:`logo`});for(let{state:t,darkSvg:n,lightSvg:r}of Dn){let i=P(`div`,{class:`logo-icon logo-for-dark`});i.appendChild(En(n));let a=P(`div`,{class:`logo-icon logo-for-light`});a.appendChild(En(r));let o=P(`span`,{class:`logo-state logo-state-${t}`,"aria-hidden":`true`},i,a);e.appendChild(o)}return e}function kn(e,t,n){return Math.min(Math.max(e,t),n)}function An(e,t){try{e.setPointerCapture(t)}catch{}}function jn(e,t){try{e.hasPointerCapture(t)&&e.releasePointerCapture(t)}catch{}}function Mn(e){try{return dn(e?.localStorage.getItem(an))}catch{return rn}}function Nn(e,t){try{e?.localStorage.setItem(an,t)}catch{}}var Pn=`Set the app-url attribute to load SLICC.`;Sn(`slicc-launcher`,class extends HTMLElement{static observedAttributes=[`open`,`corner`,`app-url`,`status-message`,cn];#e;#t;#n;#r;#i;#a;#o=``;#s=null;#c=!1;#l=!1;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Tn],this.#u()}connectedCallback(){if(!this.hasAttribute(`corner`)){let e=Mn(this.ownerDocument.defaultView);this.#l=!0,this.setAttribute(`corner`,e),this.#l=!1}this.#f(),this.#p()}attributeChangedCallback(e){if(!this.#l&&(e===`app-url`&&this.#f(),e===`status-message`&&this.#p(),e===`corner`&&Nn(this.ownerDocument.defaultView,this.corner),e===`follower-status`)){let e=this.getAttribute(cn);if(e!==null){let t=fn(e);t!==e&&(this.#l=!0,this.setAttribute(cn,t),this.#l=!1)}}}get open(){return this.hasAttribute(`open`)}set open(e){this.open!==e&&(this.toggleAttribute(`open`,e),this.#d())}get corner(){return dn(this.getAttribute(`corner`))}set corner(e){let t=dn(e);this.corner===t&&this.hasAttribute(`corner`)||this.setAttribute(`corner`,t)}get appUrl(){return this.getAttribute(`app-url`)?.trim()??``}set appUrl(e){let t=(e??``).trim();t?this.setAttribute(`app-url`,t):this.removeAttribute(`app-url`)}get statusMessage(){return this.getAttribute(`status-message`)??``}set statusMessage(e){let t=e??``;t?this.setAttribute(`status-message`,t):this.removeAttribute(`status-message`)}get followerStatus(){return fn(this.getAttribute(cn))}set followerStatus(e){if(e==null){this.removeAttribute(cn);return}let t=fn(e);this.getAttribute(`follower-status`)!==t&&this.setAttribute(cn,t)}show(){this.open=!0}hide(){this.open=!1}toggle(){this.open=!this.open}#u(){this.#t=P(`button`,{class:`launcher`,part:`launcher`,type:`button`,"aria-label":`Toggle SLICC`},On(),P(`span`,{class:`tab-label`,part:`tab-label`},`SLICC`)),this.#t.addEventListener(`click`,e=>{if(this.#c){this.#c=!1,e.preventDefault(),e.stopImmediatePropagation();return}this.toggle()}),this.#t.addEventListener(`dblclick`,e=>{e.preventDefault(),this.dispatchEvent(new CustomEvent(`slicc-launcher-focus`,{bubbles:!0,composed:!0}))}),this.#t.addEventListener(`pointerdown`,this.#m),this.#t.addEventListener(`pointermove`,this.#h),this.#t.addEventListener(`pointerup`,this.#g),this.#t.addEventListener(`pointercancel`,this.#_),this.#n=P(`div`,{class:`backdrop`,part:`backdrop`}),this.#n.addEventListener(`click`,()=>this.hide()),this.#i=P(`iframe`,{title:`SLICC overlay`}),this.#a=P(`div`,{class:`empty`},Pn);let e=P(`div`,{class:`viewport`},this.#i,this.#a);this.#r=P(`aside`,{class:`sidebar`,part:`sidebar`,"aria-label":`SLICC launcher sidebar`},e),this.#e.replaceChildren(this.#n,this.#r,this.#t)}#d(){this.dispatchEvent(new CustomEvent(`slicc-launcher-toggle`,{detail:{open:this.open},bubbles:!0,composed:!0}))}#f(){let e=this.appUrl;if(this.#a.toggleAttribute(`hidden`,!!e),!e){this.#o&&(this.#o=``,this.#i.removeAttribute(`src`));return}e!==this.#o&&(this.#o=e,this.#i.src=e)}#p(){this.#a.textContent=this.statusMessage||Pn}#m=e=>{if(!e.isPrimary||e.button!==0)return;let t=this.#t.getBoundingClientRect();this.#s={pointerId:e.pointerId,startX:e.clientX,startY:e.clientY,startLeft:t.left,startTop:t.top,width:t.width,height:t.height,lastX:e.clientX,lastY:e.clientY,lastTimestamp:e.timeStamp,velocityX:0,velocityY:0,dragging:!1},this.#c=!1,e.preventDefault(),An(this.#t,e.pointerId)};#h=e=>{let t=this.#s;if(!t||e.pointerId!==t.pointerId)return;let n=e.clientX-t.startX,r=e.clientY-t.startY,i=Math.hypot(n,r);!t.dragging&&pn(i)&&(t.dragging=!0,this.setAttribute(`dragging`,``));let a=Math.max(e.timeStamp-t.lastTimestamp,1),o=(e.clientX-t.lastX)/a,s=(e.clientY-t.lastY)/a;if(t.velocityX=t.velocityX===0?o:t.velocityX*.35+o*.65,t.velocityY=t.velocityY===0?s:t.velocityY*.35+s*.65,t.lastX=e.clientX,t.lastY=e.clientY,t.lastTimestamp=e.timeStamp,!t.dragging)return;let c=Math.max(18,window.innerWidth-t.width-18),l=Math.max(18,window.innerHeight-t.height-18),u=kn(t.startLeft+n,18,c),d=kn(t.startTop+r,18,l);this.#t.style.left=`${u}px`,this.#t.style.top=`${d}px`,this.#t.style.right=`auto`,this.#t.style.bottom=`auto`,e.preventDefault()};#g=e=>{this.#v(e,!0)};#_=e=>{this.#v(e,!1)};#v(e,t){let n=this.#s;if(!n||e.pointerId!==n.pointerId)return;let r=Math.hypot(e.clientX-n.startX,e.clientY-n.startY);if(t&&(n.dragging||pn(r))){let t=mn({clientX:e.clientX,clientY:e.clientY,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,velocityXPxPerMs:n.velocityX,velocityYPxPerMs:n.velocityY});this.corner=t,this.dispatchEvent(new CustomEvent(`slicc-launcher-move`,{detail:{corner:t},bubbles:!0,composed:!0})),this.#c=!0,e.preventDefault()}jn(this.#t,e.pointerId),this.#s=null,this.removeAttribute(`dragging`),this.#t.style.left=``,this.#t.style.top=``,this.#t.style.right=``,this.#t.style.bottom=``}});function F(e,t){typeof customElements>`u`||customElements==null||customElements.get(e)||customElements.define(e,t)}function Fn(e,t){for(let n of t)n!=null&&n!==!1&&e.append(typeof n==`string`||typeof n==`number`?document.createTextNode(String(n)):n)}function I(e,t,...n){let r=document.createElement(e);if(t)for(let[e,n]of Object.entries(t))n!=null&&n!==!1&&(e===`class`?r.className=String(n):r.setAttribute(e,n===!0?``:String(n)));return Fn(r,n),r}function L(e){let t=new CSSStyleSheet;return t.replaceSync(e),t}var In=20,Ln=16,Rn=18,zn=L(`
325
327
  :host{display:block;width:100%;
326
328
  --am-accent:var(--accent,#3b63fb);
327
329
  --am-accent-subtle:color-mix(in oklab,var(--am-accent) 12%,var(--canvas,#fff));
@@ -377,7 +379,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
377
379
  .sep{height:1px;background:var(--line,#e1e1e1);margin:6px 4px;}
378
380
  .drop{position:absolute;inset:0;border-radius:10px;display:none;align-items:center;justify-content:center;text-align:center;background:var(--am-accent-subtle);border:2px dashed var(--am-accent);color:var(--am-accent);font-size:13px;font-weight:600;pointer-events:none;}
379
381
  :host([data-dropping]) .drop{display:flex;}
380
- `),Dt=[{kind:`file`,label:`Files`,icon:`file`,entries:[{id:`/workspace/README.md`,label:`README.md`,sub:`/workspace`},{id:`/workspace/src/main.ts`,label:`main.ts`,sub:`/workspace/src`},{id:`/workspace/src/orchestrator.ts`,label:`orchestrator.ts`,sub:`/workspace/src`},{id:`/workspace/notes/launch-plan.md`,label:`launch-plan.md`,sub:`/workspace/notes`},{id:`/shared/CLAUDE.md`,label:`CLAUDE.md`,sub:`/shared`},{id:`/tmp/screenshot-3.png`,label:`screenshot-3.png`,sub:`/tmp`}]},{kind:`skill`,label:`Skills`,icon:`sparkles`,entries:[{id:`slicc-handoff`,label:`slicc-handoff`,sub:`Continue work in the SLICC browser agent`},{id:`playwright-cli`,label:`playwright-cli`,sub:`Automate browser interactions`},{id:`mixtape`,label:`mixtape`,sub:`Curate themed music playlists`},{id:`wavespeed`,label:`wavespeed`,sub:`Generate images, video and speech`},{id:`save-the-cat`,label:`save-the-cat`,sub:`Screenwriting beat sheets`}]},{kind:`conversation`,label:`Conversations`,icon:`message-square`,entries:[{id:`c1`,label:`Dark mode toggle`,sub:`Frozen · 2h ago`},{id:`c2`,label:`Refactor the mount backend`,sub:`Frozen · yesterday`},{id:`c3`,label:`Add slash menu (declined)`,sub:`Frozen · 3 days ago`},{id:`c4`,label:`WebGL shader walkthrough`,sub:`Frozen · last week`}]}],Ot=[{kind:`upload`,icon:`upload`,label:`Upload from this computer`,sub:`Drag & drop or click to browse`,quick:!0},{kind:`capture`,mode:`photo`,icon:`image`,label:`Take a photo`,quick:!0},{kind:`capture`,mode:`screenshot`,icon:`monitor`,label:`Take a screenshot`,quick:!0}],kt={kind:`secret`,icon:`key-round`,label:`Share secret securely`,sub:`The agent only sees a masked value`,quick:!0};function At(e){return e.kind===`upload`?{kind:`upload`,name:``,size:0}:e.kind===`secret`?{kind:`secret`,label:e.label}:{kind:`capture`,mode:e.mode??`photo`,label:e.label}}F(`slicc-add-menu`,class extends HTMLElement{static observedAttributes=[`theme`,`global-drop`,`no-camera`,`secret-action`];#e;#t=null;#n=null;#r=!1;#i=``;#a=0;#o=[];#s=0;#c;#l;#u;#d;#f;#p;#m=e=>{this.#r&&!this.contains(e.target)&&this.close()};#h=!1;#g=0;#_=!1;#v(e){let t=e.dataTransfer?.types;return!!t&&Array.from(t).includes(`Files`)}#y(){this.#r||(this.#_=!0,this.open()),this.setAttribute(`data-dropping`,``)}#b(){this.#g=0,this.removeAttribute(`data-dropping`),this.#_&&(this.#_=!1,this.close())}#x=e=>{this.#v(e)&&(e.preventDefault(),this.#g++,!e.composedPath().includes(this.#u)&&this.#y())};#S=e=>{this.#v(e)&&e.preventDefault()};#C=e=>{this.#v(e)&&(this.#g=Math.max(0,this.#g-1),this.#g===0&&this.#b())};#w=e=>{if(!this.#v(e))return;if(e.preventDefault(),this.#g=0,e.composedPath().includes(this.#u)){this.#_=!1;return}this.removeAttribute(`data-dropping`),this.#_=!1;let t=e.dataTransfer?.files;if(t?.length)for(let e of Array.from(t))this.#B({kind:`upload`,name:e.name,size:e.size,file:e});this.close()};#T(){this.isConnected&&this.hasAttribute(`global-drop`)?this.#E():this.#D()}#E(){if(this.#h)return;this.#h=!0;let e=this.ownerDocument;e.addEventListener(`dragenter`,this.#x),e.addEventListener(`dragover`,this.#S),e.addEventListener(`dragleave`,this.#C),e.addEventListener(`drop`,this.#w)}#D(){if(!this.#h)return;this.#h=!1;let e=this.ownerDocument;e.removeEventListener(`dragenter`,this.#x),e.removeEventListener(`dragover`,this.#S),e.removeEventListener(`dragleave`,this.#C),e.removeEventListener(`drop`,this.#w),this.#g=0,this.#_=!1}constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Et]}connectedCallback(){this.#k(),this.#T()}disconnectedCallback(){document.removeEventListener(`mousedown`,this.#m),this.#D()}attributeChangedCallback(e){e===`global-drop`?this.#T():(e===`no-camera`||e===`secret-action`)&&this.#r&&this.#P()}#O(){let e=this.hasAttribute(`no-camera`)?Ot.filter(e=>e.kind!==`capture`||e.mode!==`photo`):Ot;return this.hasAttribute(`secret-action`)?[...e,kt]:e}get results(){return this.#t}set results(e){this.#t=e,this.#r&&this.#P()}get provider(){return this.#n}set provider(e){this.#n=e,this.#r&&this.#P()}get isOpen(){return this.#r}#k(){let e=L(`input`,{type:`file`,multiple:!0,hidden:!0}),t=L(`div`,{class:`body`}),n=L(`div`,{class:`results`,part:`results`,role:`listbox`},t,L(`div`,{class:`drop`},`Drop files to add`)),i=L(`span`,{class:`ti`},r(`plus`,{size:Ct})),a=L(`button`,{class:`trigger`,part:`trigger`,"aria-haspopup":`true`,"aria-expanded":`false`,title:`Add to prompt`},i),o=L(`input`,{type:`text`,placeholder:`Search files, skills, conversations…`}),s=L(`div`,{class:`wrap`,part:`wrap`},n,L(`div`,{class:`row`},a,L(`div`,{class:`searchbox`},L(`span`,{class:`si`},r(`search`,{size:wt})),o)));this.#e.replaceChildren(e,s),this.#c=a,this.#l=i,this.#u=s,this.#d=o,this.#f=t,this.#p=e,this.#A(),this.#P()}#A(){this.#c.addEventListener(`click`,()=>this.toggle()),this.#d.addEventListener(`input`,()=>{this.#i=this.#d.value,this.#a=0,this.#P()}),this.#d.addEventListener(`keydown`,e=>this.#R(e)),this.#p.addEventListener(`change`,()=>{for(let e of Array.from(this.#p.files??[]))this.#B({kind:`upload`,name:e.name,size:e.size,file:e});this.#p.value=``,this.close()});for(let e of[`dragenter`,`dragover`])this.#u.addEventListener(e,e=>{e.preventDefault(),this.#r||this.open(),this.setAttribute(`data-dropping`,``)});for(let e of[`dragleave`,`drop`])this.#u.addEventListener(e,t=>{t.preventDefault();let n=t;e===`dragleave`&&this.#u.contains(n.relatedTarget)||this.removeAttribute(`data-dropping`)});this.#u.addEventListener(`drop`,e=>{let t=e.dataTransfer?.files;if(t?.length){for(let e of Array.from(t))this.#B({kind:`upload`,name:e.name,size:e.size,file:e});this.close()}})}toggle(){this.#r?this.close():this.open()}#j(e){this.#l.replaceChildren(r(e?`x`:`plus`,{size:Ct}))}open(){this.#r||(this.#r=!0,this.setAttribute(`data-open`,``),this.#c.setAttribute(`aria-expanded`,`true`),this.#j(!0),document.addEventListener(`mousedown`,this.#m),this.#i=``,this.#d.value=``,this.#a=0,this.#P(),requestAnimationFrame(()=>this.#d.focus()))}close(){this.#r&&(this.#r=!1,this.removeAttribute(`data-open`),this.removeAttribute(`data-dropping`),this.#c.setAttribute(`aria-expanded`,`false`),this.#j(!1),document.removeEventListener(`mousedown`,this.#m))}async#M(e){if(this.#n){let t=await this.#n(e);if(t)return t}return this.#t??Dt}#N(e){let t=this.#i.trim().toLowerCase(),n=e=>!t||`${e.label} ${e.sub??``}`.toLowerCase().includes(t),r=[],i=this.#O();if(!t)for(let e of i)r.push({type:`quick`,data:e});else if(`upload take a photo screenshot share secret securely`.includes(t))for(let e of i)e.label.toLowerCase().includes(t)&&r.push({type:`quick`,data:e});for(let i of e){let e=i.entries.filter(n).slice(0,t?8:4);if(e.length){r.push({type:`sec`,label:i.label});for(let t of e)r.push({type:`row`,section:i,data:t})}}return r}async#P(){let e=++this.#s,t=await this.#M(this.#i.trim().toLowerCase());if(e!==this.#s)return;let n=this.#N(t);this.#o=[];let i=[],a=!1;for(let e of n)if(e.type===`sec`)a&&i.push(L(`div`,{class:`sep`})),i.push(L(`div`,{class:`sec`},e.label)),a=!1;else if(e.type===`quick`){let t=this.#o.length;this.#o.push(At(e.data));let n=L(`span`,{class:`tx`},L(`div`,{class:`lb`},e.data.label));e.data.sub&&n.append(L(`div`,{class:`sb`},e.data.sub)),i.push(L(`div`,{class:`item quick`,"data-i":t},L(`span`,{class:`ic`},r(e.data.icon,{size:Tt})),n)),a=!0}else{let t=this.#o.length;this.#o.push({kind:e.section.kind,id:e.data.id,label:e.data.label}),i.push(L(`div`,{class:`item`,"data-i":t},L(`span`,{class:`ic`},r(e.section.icon,{size:Tt})),L(`span`,{class:`tx`},L(`div`,{class:`lb`},e.data.label),L(`div`,{class:`sb`},e.data.sub??``))))}i.length?this.#f.replaceChildren(...i):this.#f.replaceChildren(L(`div`,{class:`empty`},`No matches for “${this.#i}”.`));for(let e of Array.from(this.#f.querySelectorAll(`.item`))){let t=Number(e.dataset.i);e.addEventListener(`mouseenter`,()=>this.#I(t)),e.addEventListener(`click`,()=>this.#z(t))}this.#a>=this.#o.length&&(this.#a=0),this.#F()}#F(){for(let e of Array.from(this.#f.querySelectorAll(`.item`)))e.classList.toggle(`active`,Number(e.dataset.i)===this.#a)}#I(e){this.#a=e,this.#F()}#L(e){if(!this.#o.length)return;this.#a=(this.#a+e+this.#o.length)%this.#o.length,this.#F();let t=this.#f.querySelector(`.item[data-i="${this.#a}"]`);t&&t.scrollIntoView({block:`nearest`})}#R(e){e.key===`ArrowDown`?(e.preventDefault(),this.#L(1)):e.key===`ArrowUp`?(e.preventDefault(),this.#L(-1)):e.key===`Enter`?(e.preventDefault(),this.#z(this.#a)):e.key===`Escape`&&(e.preventDefault(),this.close(),this.#c.focus())}#z(e){let t=this.#o[e];if(t){if(t.kind===`upload`){this.#p.click();return}this.#B(t),this.close()}}#B(e){this.dispatchEvent(new CustomEvent(`slicc-add`,{detail:e,bubbles:!0,composed:!0}))}});var jt=R(`
382
+ `),Bn=[{kind:`file`,label:`Files`,icon:`file`,entries:[{id:`/workspace/README.md`,label:`README.md`,sub:`/workspace`},{id:`/workspace/src/main.ts`,label:`main.ts`,sub:`/workspace/src`},{id:`/workspace/src/orchestrator.ts`,label:`orchestrator.ts`,sub:`/workspace/src`},{id:`/workspace/notes/launch-plan.md`,label:`launch-plan.md`,sub:`/workspace/notes`},{id:`/shared/CLAUDE.md`,label:`CLAUDE.md`,sub:`/shared`},{id:`/tmp/screenshot-3.png`,label:`screenshot-3.png`,sub:`/tmp`}]},{kind:`skill`,label:`Skills`,icon:`sparkles`,entries:[{id:`slicc-handoff`,label:`slicc-handoff`,sub:`Continue work in the SLICC browser agent`},{id:`playwright-cli`,label:`playwright-cli`,sub:`Automate browser interactions`},{id:`mixtape`,label:`mixtape`,sub:`Curate themed music playlists`},{id:`wavespeed`,label:`wavespeed`,sub:`Generate images, video and speech`},{id:`save-the-cat`,label:`save-the-cat`,sub:`Screenwriting beat sheets`}]},{kind:`conversation`,label:`Conversations`,icon:`message-square`,entries:[{id:`c1`,label:`Dark mode toggle`,sub:`Frozen · 2h ago`},{id:`c2`,label:`Refactor the mount backend`,sub:`Frozen · yesterday`},{id:`c3`,label:`Add slash menu (declined)`,sub:`Frozen · 3 days ago`},{id:`c4`,label:`WebGL shader walkthrough`,sub:`Frozen · last week`}]}],Vn=[{kind:`upload`,icon:`upload`,label:`Upload from this computer`,sub:`Drag & drop or click to browse`,quick:!0},{kind:`capture`,mode:`photo`,icon:`image`,label:`Take a photo`,quick:!0},{kind:`capture`,mode:`screenshot`,icon:`monitor`,label:`Take a screenshot`,quick:!0}],Hn={kind:`secret`,icon:`key-round`,label:`Share secret securely`,sub:`The agent only sees a masked value`,quick:!0};function Un(e){return e.kind===`upload`?{kind:`upload`,name:``,size:0}:e.kind===`secret`?{kind:`secret`,label:e.label}:{kind:`capture`,mode:e.mode??`photo`,label:e.label}}F(`slicc-add-menu`,class extends HTMLElement{static observedAttributes=[`theme`,`global-drop`,`no-camera`,`secret-action`];#e;#t=null;#n=null;#r=!1;#i=``;#a=0;#o=[];#s=0;#c;#l;#u;#d;#f;#p;#m=e=>{this.#r&&!this.contains(e.target)&&this.close()};#h=!1;#g=0;#_=!1;#v(e){let t=e.dataTransfer?.types;return!!t&&Array.from(t).includes(`Files`)}#y(){this.#r||(this.#_=!0,this.open()),this.setAttribute(`data-dropping`,``)}#b(){this.#g=0,this.removeAttribute(`data-dropping`),this.#_&&(this.#_=!1,this.close())}#x=e=>{this.#v(e)&&(e.preventDefault(),this.#g++,!e.composedPath().includes(this.#u)&&this.#y())};#S=e=>{this.#v(e)&&e.preventDefault()};#C=e=>{this.#v(e)&&(this.#g=Math.max(0,this.#g-1),this.#g===0&&this.#b())};#w=e=>{if(!this.#v(e))return;if(e.preventDefault(),this.#g=0,e.composedPath().includes(this.#u)){this.#_=!1;return}this.removeAttribute(`data-dropping`),this.#_=!1;let t=e.dataTransfer?.files;if(t?.length)for(let e of Array.from(t))this.#B({kind:`upload`,name:e.name,size:e.size,file:e});this.close()};#T(){this.isConnected&&this.hasAttribute(`global-drop`)?this.#E():this.#D()}#E(){if(this.#h)return;this.#h=!0;let e=this.ownerDocument;e.addEventListener(`dragenter`,this.#x),e.addEventListener(`dragover`,this.#S),e.addEventListener(`dragleave`,this.#C),e.addEventListener(`drop`,this.#w)}#D(){if(!this.#h)return;this.#h=!1;let e=this.ownerDocument;e.removeEventListener(`dragenter`,this.#x),e.removeEventListener(`dragover`,this.#S),e.removeEventListener(`dragleave`,this.#C),e.removeEventListener(`drop`,this.#w),this.#g=0,this.#_=!1}constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[zn]}connectedCallback(){this.#k(),this.#T()}disconnectedCallback(){document.removeEventListener(`mousedown`,this.#m),this.#D()}attributeChangedCallback(e){e===`global-drop`?this.#T():(e===`no-camera`||e===`secret-action`)&&this.#r&&this.#P()}#O(){let e=this.hasAttribute(`no-camera`)?Vn.filter(e=>e.kind!==`capture`||e.mode!==`photo`):Vn;return this.hasAttribute(`secret-action`)?[...e,Hn]:e}get results(){return this.#t}set results(e){this.#t=e,this.#r&&this.#P()}get provider(){return this.#n}set provider(e){this.#n=e,this.#r&&this.#P()}get isOpen(){return this.#r}#k(){let e=I(`input`,{type:`file`,multiple:!0,hidden:!0}),t=I(`div`,{class:`body`}),n=I(`div`,{class:`results`,part:`results`,role:`listbox`},t,I(`div`,{class:`drop`},`Drop files to add`)),r=I(`span`,{class:`ti`},i(`plus`,{size:In})),a=I(`button`,{class:`trigger`,part:`trigger`,"aria-haspopup":`true`,"aria-expanded":`false`,title:`Add to prompt`},r),o=I(`input`,{type:`text`,placeholder:`Search files, skills, conversations…`}),s=I(`div`,{class:`wrap`,part:`wrap`},n,I(`div`,{class:`row`},a,I(`div`,{class:`searchbox`},I(`span`,{class:`si`},i(`search`,{size:Ln})),o)));this.#e.replaceChildren(e,s),this.#c=a,this.#l=r,this.#u=s,this.#d=o,this.#f=t,this.#p=e,this.#A(),this.#P()}#A(){this.#c.addEventListener(`click`,()=>this.toggle()),this.#d.addEventListener(`input`,()=>{this.#i=this.#d.value,this.#a=0,this.#P()}),this.#d.addEventListener(`keydown`,e=>this.#R(e)),this.#p.addEventListener(`change`,()=>{for(let e of Array.from(this.#p.files??[]))this.#B({kind:`upload`,name:e.name,size:e.size,file:e});this.#p.value=``,this.close()});for(let e of[`dragenter`,`dragover`])this.#u.addEventListener(e,e=>{e.preventDefault(),this.#r||this.open(),this.setAttribute(`data-dropping`,``)});for(let e of[`dragleave`,`drop`])this.#u.addEventListener(e,t=>{t.preventDefault();let n=t;e===`dragleave`&&this.#u.contains(n.relatedTarget)||this.removeAttribute(`data-dropping`)});this.#u.addEventListener(`drop`,e=>{let t=e.dataTransfer?.files;if(t?.length){for(let e of Array.from(t))this.#B({kind:`upload`,name:e.name,size:e.size,file:e});this.close()}})}toggle(){this.#r?this.close():this.open()}#j(e){this.#l.replaceChildren(i(e?`x`:`plus`,{size:In}))}open(){this.#r||(this.#r=!0,this.setAttribute(`data-open`,``),this.#c.setAttribute(`aria-expanded`,`true`),this.#j(!0),document.addEventListener(`mousedown`,this.#m),this.#i=``,this.#d.value=``,this.#a=0,this.#P(),requestAnimationFrame(()=>this.#d.focus()))}close(){this.#r&&(this.#r=!1,this.removeAttribute(`data-open`),this.removeAttribute(`data-dropping`),this.#c.setAttribute(`aria-expanded`,`false`),this.#j(!1),document.removeEventListener(`mousedown`,this.#m))}async#M(e){if(this.#n){let t=await this.#n(e);if(t)return t}return this.#t??Bn}#N(e){let t=this.#i.trim().toLowerCase(),n=e=>!t||`${e.label} ${e.sub??``}`.toLowerCase().includes(t),r=[],i=this.#O();if(!t)for(let e of i)r.push({type:`quick`,data:e});else if(`upload take a photo screenshot share secret securely`.includes(t))for(let e of i)e.label.toLowerCase().includes(t)&&r.push({type:`quick`,data:e});for(let i of e){let e=i.entries.filter(n).slice(0,t?8:4);if(e.length){r.push({type:`sec`,label:i.label});for(let t of e)r.push({type:`row`,section:i,data:t})}}return r}async#P(){let e=++this.#s,t=await this.#M(this.#i.trim().toLowerCase());if(e!==this.#s)return;let n=this.#N(t);this.#o=[];let r=[],a=!1;for(let e of n)if(e.type===`sec`)a&&r.push(I(`div`,{class:`sep`})),r.push(I(`div`,{class:`sec`},e.label)),a=!1;else if(e.type===`quick`){let t=this.#o.length;this.#o.push(Un(e.data));let n=I(`span`,{class:`tx`},I(`div`,{class:`lb`},e.data.label));e.data.sub&&n.append(I(`div`,{class:`sb`},e.data.sub)),r.push(I(`div`,{class:`item quick`,"data-i":t},I(`span`,{class:`ic`},i(e.data.icon,{size:Rn})),n)),a=!0}else{let t=this.#o.length;this.#o.push({kind:e.section.kind,id:e.data.id,label:e.data.label}),r.push(I(`div`,{class:`item`,"data-i":t},I(`span`,{class:`ic`},i(e.section.icon,{size:Rn})),I(`span`,{class:`tx`},I(`div`,{class:`lb`},e.data.label),I(`div`,{class:`sb`},e.data.sub??``))))}r.length?this.#f.replaceChildren(...r):this.#f.replaceChildren(I(`div`,{class:`empty`},`No matches for “${this.#i}”.`));for(let e of Array.from(this.#f.querySelectorAll(`.item`))){let t=Number(e.dataset.i);e.addEventListener(`mouseenter`,()=>this.#I(t)),e.addEventListener(`click`,()=>this.#z(t))}this.#a>=this.#o.length&&(this.#a=0),this.#F()}#F(){for(let e of Array.from(this.#f.querySelectorAll(`.item`)))e.classList.toggle(`active`,Number(e.dataset.i)===this.#a)}#I(e){this.#a=e,this.#F()}#L(e){if(!this.#o.length)return;this.#a=(this.#a+e+this.#o.length)%this.#o.length,this.#F();let t=this.#f.querySelector(`.item[data-i="${this.#a}"]`);t&&t.scrollIntoView({block:`nearest`})}#R(e){e.key===`ArrowDown`?(e.preventDefault(),this.#L(1)):e.key===`ArrowUp`?(e.preventDefault(),this.#L(-1)):e.key===`Enter`?(e.preventDefault(),this.#z(this.#a)):e.key===`Escape`&&(e.preventDefault(),this.close(),this.#c.focus())}#z(e){let t=this.#o[e];if(t){if(t.kind===`upload`){this.#p.click();return}this.#B(t),this.close()}}#B(e){this.dispatchEvent(new CustomEvent(`slicc-add`,{detail:e,bubbles:!0,composed:!0}))}});var Wn=L(`
381
383
  :host {
382
384
  display: inline-grid;
383
385
  grid-auto-flow: column;
@@ -411,7 +413,7 @@ import{n as e}from"./rolldown-runtime-Dd_uD5pT.js";import"./account-store-CxhEKT
411
413
  .glyph { display: grid; place-items: center; pointer-events: none; }
412
414
  .glyph svg { display: block; }
413
415
  .label { pointer-events: none; }
414
- `),Mt=[{cue:`sent`,label:`Sent`,icon:`send`},{cue:`tool-start`,label:`Tool start`,icon:`play`},{cue:`tool-finish`,label:`Tool finish`,icon:`check`}],Nt=14;F(`slicc-soundboard`,class extends HTMLElement{#e;#t=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[jt]}connectedCallback(){this.#i()}get audioContext(){return this.#t}#n(){return typeof AudioContext>`u`?null:((!this.#t||this.#t.state===`closed`)&&(this.#t=new AudioContext),this.#t)}#r(e){let t=this.#n();t&&(t.state===`suspended`&&t.resume(),E(t,e))}#i(){let e=Mt.map(({cue:e,label:t,icon:n})=>{let i=r(n,{size:Nt,part:`icon`}),a=L(`button`,{type:`button`,class:`cue`,part:`button`,"data-cue":e,"aria-label":`Play ${t} cue`,title:`Play ${t} cue`},L(`span`,{class:`glyph`},i),L(`span`,{class:`label`,part:`label`},t));return a.addEventListener(`click`,()=>this.#r(e)),a});this.#e.replaceChildren(...e)}});var Pt=`
416
+ `),Gn=[{cue:`sent`,label:`Sent`,icon:`send`},{cue:`tool-start`,label:`Tool start`,icon:`play`},{cue:`tool-finish`,label:`Tool finish`,icon:`check`}],Kn=14;F(`slicc-soundboard`,class extends HTMLElement{#e;#t=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Wn]}connectedCallback(){this.#i()}get audioContext(){return this.#t}#n(){return typeof AudioContext>`u`?null:((!this.#t||this.#t.state===`closed`)&&(this.#t=new AudioContext),this.#t)}#r(e){let t=this.#n();t&&(t.state===`suspended`&&t.resume(),mt(t,e))}#i(){let e=Gn.map(({cue:e,label:t,icon:n})=>{let r=i(n,{size:Kn,part:`icon`}),a=I(`button`,{type:`button`,class:`cue`,part:`button`,"data-cue":e,"aria-label":`Play ${t} cue`,title:`Play ${t} cue`},I(`span`,{class:`glyph`},r),I(`span`,{class:`label`,part:`label`},t));return a.addEventListener(`click`,()=>this.#r(e)),a});this.#e.replaceChildren(...e)}});var qn=`
415
417
  slicc-action-card { display: block; }
416
418
 
417
419
  /* in-chat tool / terminal / git card (.tcard) */
@@ -529,7 +531,7 @@ slicc-action-card .prcard .pmeta {
529
531
  slicc-action-card .prcard .pmeta b { color: var(--ink); }
530
532
  slicc-action-card .prcard .pmeta .add { color: #1a7f37; }
531
533
  slicc-action-card .prcard .pmeta .del { color: #cf222e; }
532
- `,Ft=`slicc-action-card-style`;function It(e){if(e.getElementById(Ft))return;let t=e.createElement(`style`);t.id=Ft,t.textContent=Pt,(e.head??e.documentElement).appendChild(t)}var Lt=new Set([`tool`,`light`,`pr`]),Rt=new Set([`ink`,`cy`,`vi`,`am`,`gh`]);F(`slicc-action-card`,class extends HTMLElement{static observedAttributes=[`variant`,`glyph`,`tone`,`title`,`badge`,`number`,`status`,`branch`,`files`,`add`,`del`,`checks`];#e=[];#t=!1;connectedCallback(){It(this.ownerDocument),this.classList.add(`slicc-action-card`),this.#a(),this.#n()}attributeChangedCallback(e,t,n){!this.isConnected||t===n||(this.#n(),e===`variant`&&this.dispatchEvent(new CustomEvent(`slicc-action-card-change`,{bubbles:!0,composed:!0,detail:{variant:this.variant}})))}get variant(){let e=this.getAttribute(`variant`);return e&&Lt.has(e)?e:`tool`}set variant(e){this.setAttribute(`variant`,Lt.has(e)?e:`tool`)}get glyph(){return this.getAttribute(`glyph`)}set glyph(e){e==null?this.removeAttribute(`glyph`):this.setAttribute(`glyph`,e)}get tone(){let e=this.getAttribute(`tone`);return e&&Rt.has(e)?e:`ink`}set tone(e){this.setAttribute(`tone`,Rt.has(e)?e:`ink`)}get title(){return this.getAttribute(`title`)??``}set title(e){e==null?this.removeAttribute(`title`):this.setAttribute(`title`,e)}get badge(){return this.getAttribute(`badge`)}set badge(e){e==null?this.removeAttribute(`badge`):this.setAttribute(`badge`,e)}get number(){return this.getAttribute(`number`)}set number(e){e==null?this.removeAttribute(`number`):this.setAttribute(`number`,e)}get status(){return this.getAttribute(`status`)}set status(e){e==null?this.removeAttribute(`status`):this.setAttribute(`status`,e)}get branch(){return this.getAttribute(`branch`)}set branch(e){e==null?this.removeAttribute(`branch`):this.setAttribute(`branch`,e)}get files(){return this.getAttribute(`files`)}set files(e){e==null?this.removeAttribute(`files`):this.setAttribute(`files`,e)}get add(){return this.getAttribute(`add`)}set add(e){e==null?this.removeAttribute(`add`):this.setAttribute(`add`,e)}get del(){return this.getAttribute(`del`)}set del(e){e==null?this.removeAttribute(`del`):this.setAttribute(`del`,e)}get checks(){return this.getAttribute(`checks`)}set checks(e){e==null?this.removeAttribute(`checks`):this.setAttribute(`checks`,e)}#n(){let e=this.variant;e===`pr`?this.#i():this.#r(e===`light`)}#r(e){let t=this.glyph,n=this.tone,r=this.title,i=this.badge,a=n===`ink`?`ic`:`ic ${n}`,o=L(`div`,{class:`th`,part:`header`});I(o,[L(`span`,{class:a,part:`icon`},t??null),` `,L(`span`,{class:`nm`,part:`title`},r),i==null?null:L(`span`,{class:`badge`,part:`badge`},i)]);let s=L(`div`,{class:`tb`,part:`body`});s.append(...this.#e);let c=L(`div`,{class:e?`tcard light`:`tcard`,part:`card`},o,s);this.replaceChildren(c)}#i(){let e=this.title,t=this.number,n=this.status??`Open`,r=this.branch,i=this.files,a=this.add,o=this.del,s=this.checks,c=L(`div`,{class:`ph`,part:`header`});I(c,[L(`span`,{class:`gi`,part:`icon`},`⎇`),L(`span`,{class:`pt`,part:`title`},e),t==null?null:L(`span`,{class:`pn`,part:`number`},t),L(`span`,{class:`open`,part:`status`},n)]);let l=L(`div`,{class:`pmeta`,part:`meta`}),u=this.#e.filter(e=>e instanceof HTMLElement&&e.getAttribute(`slot`)===`meta`);u.length>0?l.append(...u):I(l,[r==null?null:L(`span`,null,r),i==null?null:L(`span`,null,L(`b`,null,i),` files`),a==null?null:L(`span`,{class:`add`},`+${a}`),o==null?null:L(`span`,{class:`del`},`−${o}`),s==null?null:L(`span`,null,`checks `,L(`b`,{style:`color:#1a7f37`},s))]);let d=L(`div`,{class:`prcard`,part:`card`},c,l);this.replaceChildren(d)}#a(){this.#t||(this.#t=!0,this.#e=Array.from(this.childNodes))}});var zt=`
534
+ `,Jn=`slicc-action-card-style`;function Yn(e){if(e.getElementById(Jn))return;let t=e.createElement(`style`);t.id=Jn,t.textContent=qn,(e.head??e.documentElement).appendChild(t)}var Xn=new Set([`tool`,`light`,`pr`]),Zn=new Set([`ink`,`cy`,`vi`,`am`,`gh`]);F(`slicc-action-card`,class extends HTMLElement{static observedAttributes=[`variant`,`glyph`,`tone`,`title`,`badge`,`number`,`status`,`branch`,`files`,`add`,`del`,`checks`];#e=[];#t=!1;connectedCallback(){Yn(this.ownerDocument),this.classList.add(`slicc-action-card`),this.#a(),this.#n()}attributeChangedCallback(e,t,n){!this.isConnected||t===n||(this.#n(),e===`variant`&&this.dispatchEvent(new CustomEvent(`slicc-action-card-change`,{bubbles:!0,composed:!0,detail:{variant:this.variant}})))}get variant(){let e=this.getAttribute(`variant`);return e&&Xn.has(e)?e:`tool`}set variant(e){this.setAttribute(`variant`,Xn.has(e)?e:`tool`)}get glyph(){return this.getAttribute(`glyph`)}set glyph(e){e==null?this.removeAttribute(`glyph`):this.setAttribute(`glyph`,e)}get tone(){let e=this.getAttribute(`tone`);return e&&Zn.has(e)?e:`ink`}set tone(e){this.setAttribute(`tone`,Zn.has(e)?e:`ink`)}get title(){return this.getAttribute(`title`)??``}set title(e){e==null?this.removeAttribute(`title`):this.setAttribute(`title`,e)}get badge(){return this.getAttribute(`badge`)}set badge(e){e==null?this.removeAttribute(`badge`):this.setAttribute(`badge`,e)}get number(){return this.getAttribute(`number`)}set number(e){e==null?this.removeAttribute(`number`):this.setAttribute(`number`,e)}get status(){return this.getAttribute(`status`)}set status(e){e==null?this.removeAttribute(`status`):this.setAttribute(`status`,e)}get branch(){return this.getAttribute(`branch`)}set branch(e){e==null?this.removeAttribute(`branch`):this.setAttribute(`branch`,e)}get files(){return this.getAttribute(`files`)}set files(e){e==null?this.removeAttribute(`files`):this.setAttribute(`files`,e)}get add(){return this.getAttribute(`add`)}set add(e){e==null?this.removeAttribute(`add`):this.setAttribute(`add`,e)}get del(){return this.getAttribute(`del`)}set del(e){e==null?this.removeAttribute(`del`):this.setAttribute(`del`,e)}get checks(){return this.getAttribute(`checks`)}set checks(e){e==null?this.removeAttribute(`checks`):this.setAttribute(`checks`,e)}#n(){let e=this.variant;e===`pr`?this.#i():this.#r(e===`light`)}#r(e){let t=this.glyph,n=this.tone,r=this.title,i=this.badge,a=n===`ink`?`ic`:`ic ${n}`,o=I(`div`,{class:`th`,part:`header`});Fn(o,[I(`span`,{class:a,part:`icon`},t??null),` `,I(`span`,{class:`nm`,part:`title`},r),i==null?null:I(`span`,{class:`badge`,part:`badge`},i)]);let s=I(`div`,{class:`tb`,part:`body`});s.append(...this.#e);let c=I(`div`,{class:e?`tcard light`:`tcard`,part:`card`},o,s);this.replaceChildren(c)}#i(){let e=this.title,t=this.number,n=this.status??`Open`,r=this.branch,i=this.files,a=this.add,o=this.del,s=this.checks,c=I(`div`,{class:`ph`,part:`header`});Fn(c,[I(`span`,{class:`gi`,part:`icon`},`⎇`),I(`span`,{class:`pt`,part:`title`},e),t==null?null:I(`span`,{class:`pn`,part:`number`},t),I(`span`,{class:`open`,part:`status`},n)]);let l=I(`div`,{class:`pmeta`,part:`meta`}),u=this.#e.filter(e=>e instanceof HTMLElement&&e.getAttribute(`slot`)===`meta`);u.length>0?l.append(...u):Fn(l,[r==null?null:I(`span`,null,r),i==null?null:I(`span`,null,I(`b`,null,i),` files`),a==null?null:I(`span`,{class:`add`},`+${a}`),o==null?null:I(`span`,{class:`del`},`−${o}`),s==null?null:I(`span`,null,`checks `,I(`b`,{style:`color:#1a7f37`},s))]);let d=I(`div`,{class:`prcard`,part:`card`},c,l);this.replaceChildren(d)}#a(){this.#t||(this.#t=!0,this.#e=Array.from(this.childNodes))}});var Qn=`
533
535
  slicc-action-row {
534
536
  display: block;
535
537
  margin: -2px 0 16px;
@@ -629,7 +631,7 @@ slicc-action-row .vlink {
629
631
  slicc-action-row .vlink:hover {
630
632
  border-bottom-style: solid;
631
633
  }
632
- `,Bt=`slicc-action-row-style`;function Vt(e){if(e.getElementById(Bt))return;let t=e.createElement(`style`);t.id=Bt,t.textContent=zt,(e.head??e.documentElement).appendChild(t)}var Ht=new Set([`ink`,`vi`,`am`,`cy`,`gh`]);F(`slicc-action-row`,class extends HTMLElement{static observedAttributes=[`open`,`icon`,`tone`,`label`,`result`];#e;#t;#n;#r;#i;#a=!1;#o=()=>this.#s();connectedCallback(){Vt(this.ownerDocument),this.#c(),this.#l(),this.#e?.addEventListener(`click`,this.#o)}disconnectedCallback(){this.#e?.removeEventListener(`click`,this.#o)}attributeChangedCallback(e,t,n){t===n||!this.#a||(e===`open`?(this.#e.setAttribute(`aria-expanded`,String(n!==null)),this.dispatchEvent(new CustomEvent(`slicc-action-row-toggle`,{bubbles:!0,composed:!0,detail:{open:n!==null}}))):this.#l())}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get icon(){return this.getAttribute(`icon`)}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get tone(){let e=this.getAttribute(`tone`);return e&&Ht.has(e)?e:`ink`}set tone(e){this.setAttribute(`tone`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get result(){return this.getAttribute(`result`)}set result(e){e==null?this.removeAttribute(`result`):this.setAttribute(`result`,e)}#s(){this.open=!this.open}#c(){if(this.#a)return;this.#a=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`slicc-act__head`))&&!(e instanceof HTMLElement&&e.classList.contains(`slicc-act__body`)));this.#e=this.ownerDocument.createElement(`button`),this.#e.type=`button`,this.#e.className=`slicc-act__head`,this.#e.setAttribute(`part`,`head`),this.#t=L(`span`,{class:`slicc-act__ic`,part:`icon`}),this.#n=L(`span`,{class:`slicc-act__label`,part:`label`}),this.#r=L(`span`,{class:`slicc-act__badge`,part:`badge`}),I(this.#e,[this.#t,this.#n,this.#r,L(`span`,{class:`slicc-act__chev`,part:`chevron`,"aria-hidden":`true`},`▸`)]),this.#i=this.ownerDocument.createElement(`div`),this.#i.className=`slicc-act__body`,this.#i.setAttribute(`part`,`body`);for(let t of e)t instanceof HTMLElement&&t.getAttribute(`slot`)===`body`?this.#i.appendChild(t):this.#n.appendChild(t);this.replaceChildren(this.#e,this.#i),this.#e.addEventListener(`click`,this.#o)}#l(){if(!this.#a)return;let e=this.tone;this.#t.className=`slicc-act__ic${e===`ink`?``:` ${e}`}`;let t=this.icon??``;t&&i(t)?this.#t.replaceChildren(r(t,{size:12})):this.#t.textContent=t;let n=this.label;n!=null&&(this.#n.textContent=n),this.#e.setAttribute(`aria-expanded`,String(this.open)),this.#r.textContent=this.result??``}});var Ut=`
634
+ `,$n=`slicc-action-row-style`;function er(e){if(e.getElementById($n))return;let t=e.createElement(`style`);t.id=$n,t.textContent=Qn,(e.head??e.documentElement).appendChild(t)}var tr=new Set([`ink`,`vi`,`am`,`cy`,`gh`]);F(`slicc-action-row`,class extends HTMLElement{static observedAttributes=[`open`,`icon`,`tone`,`label`,`result`];#e;#t;#n;#r;#i;#a=!1;#o=()=>this.#s();connectedCallback(){er(this.ownerDocument),this.#c(),this.#l(),this.#e?.addEventListener(`click`,this.#o)}disconnectedCallback(){this.#e?.removeEventListener(`click`,this.#o)}attributeChangedCallback(e,t,n){t===n||!this.#a||(e===`open`?(this.#e.setAttribute(`aria-expanded`,String(n!==null)),this.dispatchEvent(new CustomEvent(`slicc-action-row-toggle`,{bubbles:!0,composed:!0,detail:{open:n!==null}}))):this.#l())}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get icon(){return this.getAttribute(`icon`)}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get tone(){let e=this.getAttribute(`tone`);return e&&tr.has(e)?e:`ink`}set tone(e){this.setAttribute(`tone`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get result(){return this.getAttribute(`result`)}set result(e){e==null?this.removeAttribute(`result`):this.setAttribute(`result`,e)}#s(){this.open=!this.open}#c(){if(this.#a)return;this.#a=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`slicc-act__head`))&&!(e instanceof HTMLElement&&e.classList.contains(`slicc-act__body`)));this.#e=this.ownerDocument.createElement(`button`),this.#e.type=`button`,this.#e.className=`slicc-act__head`,this.#e.setAttribute(`part`,`head`),this.#t=I(`span`,{class:`slicc-act__ic`,part:`icon`}),this.#n=I(`span`,{class:`slicc-act__label`,part:`label`}),this.#r=I(`span`,{class:`slicc-act__badge`,part:`badge`}),Fn(this.#e,[this.#t,this.#n,this.#r,I(`span`,{class:`slicc-act__chev`,part:`chevron`,"aria-hidden":`true`},`▸`)]),this.#i=this.ownerDocument.createElement(`div`),this.#i.className=`slicc-act__body`,this.#i.setAttribute(`part`,`body`);for(let t of e)t instanceof HTMLElement&&t.getAttribute(`slot`)===`body`?this.#i.appendChild(t):this.#n.appendChild(t);this.replaceChildren(this.#e,this.#i),this.#e.addEventListener(`click`,this.#o)}#l(){if(!this.#a)return;let e=this.tone;this.#t.className=`slicc-act__ic${e===`ink`?``:` ${e}`}`;let t=this.icon??``;t&&a(t)?this.#t.replaceChildren(i(t,{size:12})):this.#t.textContent=t;let n=this.label;n!=null&&(this.#n.textContent=n),this.#e.setAttribute(`aria-expanded`,String(this.open)),this.#r.textContent=this.result??``}});var nr=`
633
635
  slicc-agent-message { display: block; margin-bottom: 18px; font-size: 15px; line-height: 1.5; --accent: color-mix(in srgb, var(--ctx) 55%, var(--ink)); }
634
636
  slicc-agent-message .msg-ts { font-family: var(--ui); font-size: 10px; color: var(--txt-3); opacity: .7; margin-bottom: 2px; font-variant-numeric: tabular-nums; }
635
637
  /* Same containment the user bubble needs, for the same reason: an unbroken run
@@ -728,7 +730,7 @@ slicc-agent-message .dots i:nth-child(3) { animation-delay: .32s; }
728
730
  @keyframes slicc-am-bdot { 0%, 75%, 100% { transform: translateY(0); opacity: .45; } 38% { transform: translateY(-8px); opacity: 1; } }
729
731
  slicc-agent-message .tw-caret { display: inline-block; width: 2px; height: 1.05em; vertical-align: -2px; margin-left: 1px; background: var(--ink); animation: slicc-am-cblink .9s steps(1) infinite; }
730
732
  @keyframes slicc-am-cblink { 50% { opacity: 0; } }
731
- `,Wt=`slicc-agent-message-style`;function Gt(e){if(e.getElementById(Wt))return;let t=e.createElement(`style`);t.id=Wt,t.textContent=Ut,(e.head??e.documentElement).appendChild(t)}var Kt=[`#f43f5e`,`#06b6d4`,`#8b5cf6`],qt=new Set([``,`r`,`cy`,`vi`,`am`]);function Jt(){let e=L(`div`,{class:`dots`,part:`dots`,"aria-hidden":`true`});for(let t of Kt)e.append(L(`i`,{style:`--d:${t}`}));return e}function Yt(e){let t=L(`ul`,{class:`plan`,part:`plan`});for(let n of e)t.append(L(`li`,null,n));return t}function Xt(e){let t=L(`ul`,{class:`check`,part:`check`});for(let n of e){let e=n.variant&&qt.has(n.variant)?n.variant:``,r=e?`ck ${e}`:`ck`,i=n.glyph??`✓`;t.append(L(`li`,null,L(`span`,{class:r},i),L(`span`,{class:`ctext`},n.text)))}return t}F(`slicc-agent-message`,class extends HTMLElement{static observedAttributes=[`thinking`,`streaming`,`progress`,`timestamp`];#e;#t=null;#n=null;#r=null;#i=!1;connectedCallback(){Gt(this.ownerDocument),this.#o(),this.#s(),this.#l()}attributeChangedCallback(e,t,n){t===n||!this.isConnected||(e===`thinking`?(this.#s(),this.dispatchEvent(new CustomEvent(`slicc-agent-message-thinking`,{bubbles:!0,composed:!0,detail:{thinking:n!==null}}))):e===`progress`?this.#c():e===`streaming`?(this.#l(),this.dispatchEvent(new CustomEvent(`slicc-agent-message-streaming`,{bubbles:!0,composed:!0,detail:{streaming:n!==null}}))):e===`timestamp`&&this.#u())}get thinking(){return this.hasAttribute(`thinking`)}set thinking(e){e?this.setAttribute(`thinking`,``):this.removeAttribute(`thinking`)}get streaming(){return this.hasAttribute(`streaming`)}set streaming(e){e?this.setAttribute(`streaming`,``):this.removeAttribute(`streaming`)}get progress(){return this.getAttribute(`progress`)}set progress(e){e==null?this.removeAttribute(`progress`):this.setAttribute(`progress`,e)}get body(){return this.#o(),this.#e}setBodyHtml(e){this.#o();let t=this.ownerDocument.createRange();t.selectNodeContents(this.#e),this.#a(t.createContextualFragment(e))}setPlan(e){this.#a(Yt(e))}setCheck(e){this.#a(Xt(e))}#a(e){this.#o(),this.#e.replaceChildren(e),this.#l()}#o(){if(this.#i)return;this.#i=!0,this.classList.add(`msg`,`bot`);let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`body`))),t=this.getAttribute(`timestamp`);if(t){let e=this.ownerDocument.createElement(`span`);e.className=`msg-ts`,e.setAttribute(`part`,`timestamp`),e.textContent=t,this.appendChild(e)}this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`body`,this.#e.setAttribute(`part`,`body`);for(let t of e)this.#e.appendChild(t);this.appendChild(this.#e)}#s(){let e=this.thinking;this.classList.toggle(`thinkrow`,e),e?(this.#e.style.display=`none`,this.#t||(this.#t=this.ownerDocument.createElement(`div`),this.#t.className=`thinkrow-row`,this.#t.appendChild(Jt()),this.insertBefore(this.#t,this.#e)),this.#c()):(this.#e.style.removeProperty(`display`),this.#t&&(this.#t.remove(),this.#t=null,this.#n=null))}#c(){if(!this.#t)return;let e=this.progress;e?(this.#n||(this.#n=this.ownerDocument.createElement(`span`),this.#n.className=`progress`,this.#n.setAttribute(`part`,`progress`),this.#n.setAttribute(`aria-live`,`polite`),this.#t.appendChild(this.#n)),this.#n.textContent=e):this.#n&&=(this.#n.remove(),null)}#l(){this.streaming?this.#r?.isConnected?this.#e.appendChild(this.#r):(this.#r=this.ownerDocument.createElement(`span`),this.#r.className=`tw-caret`,this.#r.setAttribute(`part`,`caret`),this.#r.setAttribute(`aria-hidden`,`true`),this.#e.appendChild(this.#r)):this.#r&&=(this.#r.remove(),null)}#u(){let e=this.querySelector(`.msg-ts`),t=this.getAttribute(`timestamp`);if(t){if(e)e.textContent=t;else{let e=this.ownerDocument.createElement(`span`);e.className=`msg-ts`,e.setAttribute(`part`,`timestamp`),e.textContent=t,this.insertBefore(e,this.#e)}}else e?.remove()}});var Zt=`
733
+ `,rr=`slicc-agent-message-style`;function ir(e){if(e.getElementById(rr))return;let t=e.createElement(`style`);t.id=rr,t.textContent=nr,(e.head??e.documentElement).appendChild(t)}var ar=[`#f43f5e`,`#06b6d4`,`#8b5cf6`],or=new Set([``,`r`,`cy`,`vi`,`am`]);function sr(){let e=I(`div`,{class:`dots`,part:`dots`,"aria-hidden":`true`});for(let t of ar)e.append(I(`i`,{style:`--d:${t}`}));return e}function cr(e){let t=I(`ul`,{class:`plan`,part:`plan`});for(let n of e)t.append(I(`li`,null,n));return t}function lr(e){let t=I(`ul`,{class:`check`,part:`check`});for(let n of e){let e=n.variant&&or.has(n.variant)?n.variant:``,r=e?`ck ${e}`:`ck`,i=n.glyph??`✓`;t.append(I(`li`,null,I(`span`,{class:r},i),I(`span`,{class:`ctext`},n.text)))}return t}F(`slicc-agent-message`,class extends HTMLElement{static observedAttributes=[`thinking`,`streaming`,`progress`,`timestamp`];#e;#t=null;#n=null;#r=null;#i=!1;connectedCallback(){ir(this.ownerDocument),this.#o(),this.#s(),this.#l()}attributeChangedCallback(e,t,n){t===n||!this.isConnected||(e===`thinking`?(this.#s(),this.dispatchEvent(new CustomEvent(`slicc-agent-message-thinking`,{bubbles:!0,composed:!0,detail:{thinking:n!==null}}))):e===`progress`?this.#c():e===`streaming`?(this.#l(),this.dispatchEvent(new CustomEvent(`slicc-agent-message-streaming`,{bubbles:!0,composed:!0,detail:{streaming:n!==null}}))):e===`timestamp`&&this.#u())}get thinking(){return this.hasAttribute(`thinking`)}set thinking(e){e?this.setAttribute(`thinking`,``):this.removeAttribute(`thinking`)}get streaming(){return this.hasAttribute(`streaming`)}set streaming(e){e?this.setAttribute(`streaming`,``):this.removeAttribute(`streaming`)}get progress(){return this.getAttribute(`progress`)}set progress(e){e==null?this.removeAttribute(`progress`):this.setAttribute(`progress`,e)}get body(){return this.#o(),this.#e}setBodyHtml(e){this.#o();let t=this.ownerDocument.createRange();t.selectNodeContents(this.#e),this.#a(t.createContextualFragment(e))}setPlan(e){this.#a(cr(e))}setCheck(e){this.#a(lr(e))}#a(e){this.#o(),this.#e.replaceChildren(e),this.#l()}#o(){if(this.#i)return;this.#i=!0,this.classList.add(`msg`,`bot`);let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`body`))),t=this.getAttribute(`timestamp`);if(t){let e=this.ownerDocument.createElement(`span`);e.className=`msg-ts`,e.setAttribute(`part`,`timestamp`),e.textContent=t,this.appendChild(e)}this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`body`,this.#e.setAttribute(`part`,`body`);for(let t of e)this.#e.appendChild(t);this.appendChild(this.#e)}#s(){let e=this.thinking;this.classList.toggle(`thinkrow`,e),e?(this.#e.style.display=`none`,this.#t||(this.#t=this.ownerDocument.createElement(`div`),this.#t.className=`thinkrow-row`,this.#t.appendChild(sr()),this.insertBefore(this.#t,this.#e)),this.#c()):(this.#e.style.removeProperty(`display`),this.#t&&(this.#t.remove(),this.#t=null,this.#n=null))}#c(){if(!this.#t)return;let e=this.progress;e?(this.#n||(this.#n=this.ownerDocument.createElement(`span`),this.#n.className=`progress`,this.#n.setAttribute(`part`,`progress`),this.#n.setAttribute(`aria-live`,`polite`),this.#t.appendChild(this.#n)),this.#n.textContent=e):this.#n&&=(this.#n.remove(),null)}#l(){this.streaming?this.#r?.isConnected?this.#e.appendChild(this.#r):(this.#r=this.ownerDocument.createElement(`span`),this.#r.className=`tw-caret`,this.#r.setAttribute(`part`,`caret`),this.#r.setAttribute(`aria-hidden`,`true`),this.#e.appendChild(this.#r)):this.#r&&=(this.#r.remove(),null)}#u(){let e=this.querySelector(`.msg-ts`),t=this.getAttribute(`timestamp`);if(t){if(e)e.textContent=t;else{let e=this.ownerDocument.createElement(`span`);e.className=`msg-ts`,e.setAttribute(`part`,`timestamp`),e.textContent=t,this.insertBefore(e,this.#e)}}else e?.remove()}});var ur=`
732
734
  slicc-chat-table { display: block; }
733
735
  slicc-chat-table > .ctable {
734
736
  width: 100%;
@@ -769,7 +771,7 @@ slicc-chat-table > .ctable code {
769
771
  overflow-wrap: anywhere;
770
772
  word-break: break-word;
771
773
  }
772
- `,Qt=`slicc-chat-table-style`;function $t(e){if(e.getElementById(Qt))return;let t=e.createElement(`style`);t.id=Qt,t.textContent=Zt,(e.head??e.documentElement).appendChild(t)}function en(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}F(`slicc-chat-table`,class extends HTMLElement{static observedAttributes=[`headers`];#e;#t;#n;#r=!1;connectedCallback(){$t(this.ownerDocument),this.#i()}attributeChangedCallback(e,t,n){e===`headers`&&t!==n&&(this.#r&&this.#a(),this.isConnected&&this.dispatchEvent(new CustomEvent(`slicc-chat-table-change`,{bubbles:!0,composed:!0,detail:{headers:this.headers}})))}get headers(){let e=this.getAttribute(`headers`);return e?en(e):[]}set headers(e){e==null?this.removeAttribute(`headers`):Array.isArray(e)?this.setAttribute(`headers`,e.join(`,`)):this.setAttribute(`headers`,e)}#i(){if(this.#r)return;this.#r=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLTableElement&&e.classList.contains(`ctable`)));this.#e=this.ownerDocument.createElement(`table`),this.#e.className=`ctable`,this.#e.setAttribute(`part`,`table`),this.#t=this.ownerDocument.createElement(`thead`),this.#t.setAttribute(`part`,`head`),this.#n=this.ownerDocument.createElement(`tbody`),this.#n.setAttribute(`part`,`body`),this.#e.append(this.#t,this.#n);for(let t of e)t instanceof HTMLElement&&t.getAttribute(`slot`)===`head`?this.#t.appendChild(t):this.#n.appendChild(t);this.#a(),this.appendChild(this.#e)}#a(){if(!this.#r)return;let e=this.#t.querySelector(`tr`);if(e&&!e.hasAttribute(`data-slicc-generated`))return;let t=this.headers;if(t.length===0){this.#t.replaceChildren();return}let n=L(`tr`,{"data-slicc-generated":``});for(let e of t)n.append(L(`th`,null,e));this.#t.replaceChildren(n)}});function tn(e){if(typeof window>`u`||!window.location)return null;try{return new URLSearchParams(window.location.search).get(e)}catch{return null}}function nn(e,t,n={}){if(!(typeof window>`u`||!window.history?.replaceState))try{let r=new URL(window.location.href),i=r.searchParams.get(e);if(i===t||i===null&&(t===null||t===``))return;t==null||t===``?r.searchParams.delete(e):r.searchParams.set(e,t),n.push?window.history.pushState(window.history.state,``,r):window.history.replaceState(window.history.state,``,r)}catch{}}var rn=`
774
+ `,dr=`slicc-chat-table-style`;function fr(e){if(e.getElementById(dr))return;let t=e.createElement(`style`);t.id=dr,t.textContent=ur,(e.head??e.documentElement).appendChild(t)}function pr(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}F(`slicc-chat-table`,class extends HTMLElement{static observedAttributes=[`headers`];#e;#t;#n;#r=!1;connectedCallback(){fr(this.ownerDocument),this.#i()}attributeChangedCallback(e,t,n){e===`headers`&&t!==n&&(this.#r&&this.#a(),this.isConnected&&this.dispatchEvent(new CustomEvent(`slicc-chat-table-change`,{bubbles:!0,composed:!0,detail:{headers:this.headers}})))}get headers(){let e=this.getAttribute(`headers`);return e?pr(e):[]}set headers(e){e==null?this.removeAttribute(`headers`):Array.isArray(e)?this.setAttribute(`headers`,e.join(`,`)):this.setAttribute(`headers`,e)}#i(){if(this.#r)return;this.#r=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLTableElement&&e.classList.contains(`ctable`)));this.#e=this.ownerDocument.createElement(`table`),this.#e.className=`ctable`,this.#e.setAttribute(`part`,`table`),this.#t=this.ownerDocument.createElement(`thead`),this.#t.setAttribute(`part`,`head`),this.#n=this.ownerDocument.createElement(`tbody`),this.#n.setAttribute(`part`,`body`),this.#e.append(this.#t,this.#n);for(let t of e)t instanceof HTMLElement&&t.getAttribute(`slot`)===`head`?this.#t.appendChild(t):this.#n.appendChild(t);this.#a(),this.appendChild(this.#e)}#a(){if(!this.#r)return;let e=this.#t.querySelector(`tr`);if(e&&!e.hasAttribute(`data-slicc-generated`))return;let t=this.headers;if(t.length===0){this.#t.replaceChildren();return}let n=I(`tr`,{"data-slicc-generated":``});for(let e of t)n.append(I(`th`,null,e));this.#t.replaceChildren(n)}});function mr(e){if(typeof window>`u`||!window.location)return null;try{return new URLSearchParams(window.location.search).get(e)}catch{return null}}function hr(e,t,n={}){if(!(typeof window>`u`||!window.history?.replaceState))try{let r=new URL(window.location.href),i=r.searchParams.get(e);if(i===t||i===null&&(t===null||t===``))return;t==null||t===``?r.searchParams.delete(e):r.searchParams.set(e,t),n.push?window.history.pushState(window.history.state,``,r):window.history.replaceState(window.history.state,``,r)}catch{}}var gr=`
773
775
  slicc-chat-thread {
774
776
  flex: 1 1 auto;
775
777
  display: block;
@@ -867,7 +869,7 @@ slicc-chat-thread[open] > .slicc-thread__inner {
867
869
  padding: 16px 14px;
868
870
  }
869
871
  }
870
- `,an=`slicc-chat-thread-style`,on=120;function sn(e){if(e.getElementById(an))return;let t=e.createElement(`style`);t.id=an,t.textContent=rn,(e.head??e.documentElement).appendChild(t)}F(`slicc-chat-thread`,class e extends HTMLElement{static observedAttributes=[`open`,`context`,`accent`,`url-state`];#e;#t=!1;#n=null;#r=null;#i=null;#a=!1;#o=!1;#s=0;#c=null;#l=null;#u=null;#d=null;#f=null;#p=()=>{this.#d=null,this.#f=performance.now(),nn(`at`,String(Math.round(this.scrollTop)))};#m=()=>{if(!this.urlState)return;let e=this.#f==null?on:performance.now()-this.#f;if(e>=on){this.#d!=null&&clearTimeout(this.#d),this.#p();return}this.#d??=setTimeout(this.#p,on-e)};#h=()=>{if(!this.urlState)return;let e=tn(`ctx`);if(e&&e!==this.context)this.dispatchEvent(new CustomEvent(`slicc-url-context`,{bubbles:!0,composed:!0,detail:{context:e}}));else{let e=tn(`at`);e!=null&&(this.scrollTop=Number.parseInt(e,10)||0)}};#g=null;#_=new Map;connectedCallback(){sn(this.ownerDocument),this.#E(),this.#T(),this.#b(),this.scrollToBottom(),this.urlState&&(this.#r=tn(`at`),this.#i=tn(`ctx`),this.addEventListener(`scroll`,this.#m,{passive:!0}),window.addEventListener(`popstate`,this.#h))}disconnectedCallback(){this.#n&&=(this.#e?.removeEventListener(`click`,this.#n),null),this.removeEventListener(`scroll`,this.#m),window.removeEventListener(`popstate`,this.#h),this.#d!=null&&(clearTimeout(this.#d),this.#d=null),this.#f=null,this.#u?.disconnect(),this.#u=null,this.#C()}attributeChangedCallback(e,t,n){t!==n&&(e===`accent`&&this.#t&&this.#T(),e===`open`&&this.#t&&this.isConnected&&this.#x(),e===`context`&&this.urlState&&n!=null&&this.isConnected&&(n!==this.#i&&(this.#r=null),nn(`ctx`,n,{push:!0})))}get urlState(){return this.hasAttribute(`url-state`)}set urlState(e){this.toggleAttribute(`url-state`,e)}get urlContext(){return this.urlState?tn(`ctx`):null}get open(){return this.hasAttribute(`open`)}set open(e){e?this.setAttribute(`open`,``):this.removeAttribute(`open`)}get context(){return this.getAttribute(`context`)}set context(e){e==null?this.removeAttribute(`context`):this.setAttribute(`context`,e)}get accent(){return this.getAttribute(`accent`)}set accent(e){e==null?this.removeAttribute(`accent`):this.setAttribute(`accent`,e)}get inner(){return this.#E(),this.#e}switchContext(e){this.#E();let t=this.context;if(e===t)return;t!=null&&this.#_.set(t,this.#w());let n=this.#_.get(e);this.#e.replaceChildren(...n?Array.from(n.cloneNode(!0).childNodes):[]),this.context=e,this.removeAttribute(`has-new`),this.dispatchEvent(new CustomEvent(`slicc-context-change`,{bubbles:!0,composed:!0,detail:{context:e,previous:t}})),this.scrollToBottom()}append(...e){this.#E(),e.length>0&&(this.#r=null),this.#e.append(...e),this.requestFollow()}static FOLLOW_SLACK=80;#v(){return this.scrollHeight-this.scrollTop-this.clientHeight<=e.FOLLOW_SLACK}requestFollow(){this.#E(),this.#a?(this.#S(this.scrollHeight),this.removeAttribute(`has-new`)):this.setAttribute(`has-new`,``)}#y=()=>{if(this.#o&&Math.abs(this.scrollTop-this.#s)<=1){this.#C();return}this.#C(),this.#a=this.#v(),this.#a&&this.removeAttribute(`has-new`)};replaceContent(...e){this.#E(),this.#e.replaceChildren(...e),this.removeAttribute(`has-new`),this.scrollToBottom();let t=this.#r;t!=null&&e.length>0&&requestAnimationFrame(()=>{this.#r===t&&(this.#a=!1,this.#S(Number.parseInt(t,10)||0),this.#a=this.#v())})}scrollToBottom(){this.#a=!0,this.removeAttribute(`has-new`),this.#S(this.scrollHeight)}#b(){this.#u?.disconnect(),typeof ResizeObserver==`function`&&(this.#u=new ResizeObserver(()=>this.#x()),this.#u.observe(this.#e))}#x(){if(!this.#a)return;let t=this.#s-this.scrollTop;this.#o&&t>e.FOLLOW_SLACK||this.#S(this.scrollHeight)}#S(e){this.#o=!0,this.scrollTop=e,this.#s=this.scrollTop,this.#c!=null&&cancelAnimationFrame(this.#c),this.#l!=null&&clearTimeout(this.#l),`onscrollend`in HTMLElement.prototype?this.#l=setTimeout(()=>this.#C(),100):this.#c=requestAnimationFrame(()=>this.#C())}#C(){this.#o=!1,this.#c!=null&&cancelAnimationFrame(this.#c),this.#c=null,this.#l!=null&&clearTimeout(this.#l),this.#l=null}#w(){let e=this.ownerDocument.createDocumentFragment();for(let t of Array.from(this.#e.childNodes))e.appendChild(t.cloneNode(!0));return e}#T(){let e=this.accent;e?this.style.setProperty(`--ctx`,e):this.style.removeProperty(`--ctx`)}#E(){if(this.#t)return;this.#t=!0;let e=this.querySelector(`:scope > .slicc-thread__inner`);if(e instanceof HTMLElement)this.#e=e;else{let e=Array.from(this.childNodes);this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`slicc-thread__inner`,this.#e.setAttribute(`part`,`inner`);for(let t of e)this.#e.appendChild(t);this.appendChild(this.#e)}this.#g=this.ownerDocument.createElement(`div`),this.#g.className=`slicc-thread__follow`;let t=this.ownerDocument.createElement(`button`);t.type=`button`;let n=r(`chevron-down`,{size:14,strokeWidth:2});t.append(`New messages`,n),t.addEventListener(`click`,()=>{this.scrollToBottom()}),this.#g.append(t),this.appendChild(this.#g),this.addEventListener(`scroll`,this.#y,{passive:!0}),this.addEventListener(`scrollend`,()=>this.#C(),{passive:!0}),this.#n=e=>{let t=e.target;t instanceof HTMLElement&&this.dispatchEvent(new CustomEvent(`slicc-thread-action`,{bubbles:!0,composed:!0,detail:{target:t}}))},this.#e.addEventListener(`click`,this.#n)}});var cn=R(`
872
+ `,_r=`slicc-chat-thread-style`,vr=120;function yr(e){if(e.getElementById(_r))return;let t=e.createElement(`style`);t.id=_r,t.textContent=gr,(e.head??e.documentElement).appendChild(t)}F(`slicc-chat-thread`,class e extends HTMLElement{static observedAttributes=[`open`,`context`,`accent`,`url-state`];#e;#t=!1;#n=null;#r=null;#i=null;#a=!1;#o=!1;#s=0;#c=null;#l=null;#u=null;#d=null;#f=null;#p=()=>{this.#d=null,this.#f=performance.now(),hr(`at`,String(Math.round(this.scrollTop)))};#m=()=>{if(!this.urlState)return;let e=this.#f==null?vr:performance.now()-this.#f;if(e>=vr){this.#d!=null&&clearTimeout(this.#d),this.#p();return}this.#d??=setTimeout(this.#p,vr-e)};#h=()=>{if(!this.urlState)return;let e=mr(`ctx`);if(e&&e!==this.context)this.dispatchEvent(new CustomEvent(`slicc-url-context`,{bubbles:!0,composed:!0,detail:{context:e}}));else{let e=mr(`at`);e!=null&&(this.scrollTop=Number.parseInt(e,10)||0)}};#g=null;#_=new Map;connectedCallback(){yr(this.ownerDocument),this.#E(),this.#T(),this.#b(),this.scrollToBottom(),this.urlState&&(this.#r=mr(`at`),this.#i=mr(`ctx`),this.addEventListener(`scroll`,this.#m,{passive:!0}),window.addEventListener(`popstate`,this.#h))}disconnectedCallback(){this.#n&&=(this.#e?.removeEventListener(`click`,this.#n),null),this.removeEventListener(`scroll`,this.#m),window.removeEventListener(`popstate`,this.#h),this.#d!=null&&(clearTimeout(this.#d),this.#d=null),this.#f=null,this.#u?.disconnect(),this.#u=null,this.#C()}attributeChangedCallback(e,t,n){t!==n&&(e===`accent`&&this.#t&&this.#T(),e===`open`&&this.#t&&this.isConnected&&this.#x(),e===`context`&&this.urlState&&n!=null&&this.isConnected&&(n!==this.#i&&(this.#r=null),hr(`ctx`,n,{push:!0})))}get urlState(){return this.hasAttribute(`url-state`)}set urlState(e){this.toggleAttribute(`url-state`,e)}get urlContext(){return this.urlState?mr(`ctx`):null}get open(){return this.hasAttribute(`open`)}set open(e){e?this.setAttribute(`open`,``):this.removeAttribute(`open`)}get context(){return this.getAttribute(`context`)}set context(e){e==null?this.removeAttribute(`context`):this.setAttribute(`context`,e)}get accent(){return this.getAttribute(`accent`)}set accent(e){e==null?this.removeAttribute(`accent`):this.setAttribute(`accent`,e)}get inner(){return this.#E(),this.#e}switchContext(e){this.#E();let t=this.context;if(e===t)return;t!=null&&this.#_.set(t,this.#w());let n=this.#_.get(e);this.#e.replaceChildren(...n?Array.from(n.cloneNode(!0).childNodes):[]),this.context=e,this.removeAttribute(`has-new`),this.dispatchEvent(new CustomEvent(`slicc-context-change`,{bubbles:!0,composed:!0,detail:{context:e,previous:t}})),this.scrollToBottom()}append(...e){this.#E(),e.length>0&&(this.#r=null),this.#e.append(...e),this.requestFollow()}static FOLLOW_SLACK=80;#v(){return this.scrollHeight-this.scrollTop-this.clientHeight<=e.FOLLOW_SLACK}requestFollow(){this.#E(),this.#a?(this.#S(this.scrollHeight),this.removeAttribute(`has-new`)):this.setAttribute(`has-new`,``)}#y=()=>{if(this.#o&&Math.abs(this.scrollTop-this.#s)<=1){this.#C();return}this.#C(),this.#a=this.#v(),this.#a&&this.removeAttribute(`has-new`)};replaceContent(...e){this.#E(),this.#e.replaceChildren(...e),this.removeAttribute(`has-new`),this.scrollToBottom();let t=this.#r;t!=null&&e.length>0&&requestAnimationFrame(()=>{this.#r===t&&(this.#a=!1,this.#S(Number.parseInt(t,10)||0),this.#a=this.#v())})}scrollToBottom(){this.#a=!0,this.removeAttribute(`has-new`),this.#S(this.scrollHeight)}#b(){this.#u?.disconnect(),typeof ResizeObserver==`function`&&(this.#u=new ResizeObserver(()=>this.#x()),this.#u.observe(this.#e))}#x(){if(!this.#a)return;let t=this.#s-this.scrollTop;this.#o&&t>e.FOLLOW_SLACK||this.#S(this.scrollHeight)}#S(e){this.#o=!0,this.scrollTop=e,this.#s=this.scrollTop,this.#c!=null&&cancelAnimationFrame(this.#c),this.#l!=null&&clearTimeout(this.#l),`onscrollend`in HTMLElement.prototype?this.#l=setTimeout(()=>this.#C(),100):this.#c=requestAnimationFrame(()=>this.#C())}#C(){this.#o=!1,this.#c!=null&&cancelAnimationFrame(this.#c),this.#c=null,this.#l!=null&&clearTimeout(this.#l),this.#l=null}#w(){let e=this.ownerDocument.createDocumentFragment();for(let t of Array.from(this.#e.childNodes))e.appendChild(t.cloneNode(!0));return e}#T(){let e=this.accent;e?this.style.setProperty(`--ctx`,e):this.style.removeProperty(`--ctx`)}#E(){if(this.#t)return;this.#t=!0;let e=this.querySelector(`:scope > .slicc-thread__inner`);if(e instanceof HTMLElement)this.#e=e;else{let e=Array.from(this.childNodes);this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`slicc-thread__inner`,this.#e.setAttribute(`part`,`inner`);for(let t of e)this.#e.appendChild(t);this.appendChild(this.#e)}this.#g=this.ownerDocument.createElement(`div`),this.#g.className=`slicc-thread__follow`;let t=this.ownerDocument.createElement(`button`);t.type=`button`;let n=i(`chevron-down`,{size:14,strokeWidth:2});t.append(`New messages`,n),t.addEventListener(`click`,()=>{this.scrollToBottom()}),this.#g.append(t),this.appendChild(this.#g),this.addEventListener(`scroll`,this.#y,{passive:!0}),this.addEventListener(`scrollend`,()=>this.#C(),{passive:!0}),this.#n=e=>{let t=e.target;t instanceof HTMLElement&&this.dispatchEvent(new CustomEvent(`slicc-thread-action`,{bubbles:!0,composed:!0,detail:{target:t}}))},this.#e.addEventListener(`click`,this.#n)}});var br=L(`
871
873
  :host {
872
874
  display: flex;
873
875
  align-items: center;
@@ -956,7 +958,7 @@ slicc-chat-thread[open] > .slicc-thread__inner {
956
958
  opacity: .8;
957
959
  }
958
960
  .path:hover, .path:focus-visible { opacity: 1; }
959
- `),ln=[`threshold`,`overflow`,`idle`],un=[`summarizing`,`summarized`,`fallback`],dn={summarizing:`loader`,summarized:`archive`,fallback:`triangle-alert`},fn={summarizing:{idle:`Idle — compacting history in the background`,threshold:`Context filling up — compacting history`,overflow:`Context overflowed — compacting history`},summarized:{idle:`Compacted while idle`,threshold:`History compacted`,overflow:`Context overflowed — history compacted`},fallback:{idle:`Summary unavailable — older messages truncated`,threshold:`Summary unavailable — older messages truncated`,overflow:`Summary unavailable — older messages truncated`}};function pn(e){return ln.includes(e??``)?e:`threshold`}function mn(e){return un.includes(e??``)?e:`summarized`}function hn(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}F(`slicc-compaction-marker`,class extends HTMLElement{static observedAttributes=[`trigger`,`state`,`transcript`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[cn]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get trigger(){return pn(this.getAttribute(`trigger`))}set trigger(e){this.setAttribute(`trigger`,pn(e))}get state(){return mn(this.getAttribute(`state`))}set state(e){this.setAttribute(`state`,mn(e))}get transcript(){return this.getAttribute(`transcript`)}set transcript(e){e==null?this.removeAttribute(`transcript`):this.setAttribute(`transcript`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.state,t=this.trigger;this.getAttribute(`state`)!==e&&this.setAttribute(`state`,e),this.getAttribute(`trigger`)!==t&&this.setAttribute(`trigger`,t);let n=this.label??fn[e][t],i=L(`span`,{class:`chip`,part:`chip`},L(`span`,{class:`glyph`,part:`glyph`},r(dn[e],{size:12})),L(`span`,{class:`label`,part:`label`},n)),a=this.transcript;if(a){let e=L(`button`,{class:`path`,part:`path`,type:`button`,title:a,"aria-label":`Open the pre-compaction transcript ${a}`},hn(a));e.addEventListener(`click`,()=>{this.dispatchEvent(new CustomEvent(`slicc-compaction-transcript`,{detail:{path:a},bubbles:!0,composed:!0}))}),i.append(e)}this.#e.replaceChildren(i),this.hasAttribute(`role`)||this.setAttribute(`role`,`status`)}});var gn=R(`
961
+ `),xr=[`threshold`,`overflow`,`idle`],Sr=[`summarizing`,`summarized`,`fallback`],Cr={summarizing:`loader`,summarized:`archive`,fallback:`triangle-alert`},wr={summarizing:{idle:`Idle — compacting history in the background`,threshold:`Context filling up — compacting history`,overflow:`Context overflowed — compacting history`},summarized:{idle:`Compacted while idle`,threshold:`History compacted`,overflow:`Context overflowed — history compacted`},fallback:{idle:`Summary unavailable — older messages truncated`,threshold:`Summary unavailable — older messages truncated`,overflow:`Summary unavailable — older messages truncated`}};function Tr(e){return xr.includes(e??``)?e:`threshold`}function Er(e){return Sr.includes(e??``)?e:`summarized`}function Dr(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n===-1?t:t.slice(n+1)}F(`slicc-compaction-marker`,class extends HTMLElement{static observedAttributes=[`trigger`,`state`,`transcript`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[br]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get trigger(){return Tr(this.getAttribute(`trigger`))}set trigger(e){this.setAttribute(`trigger`,Tr(e))}get state(){return Er(this.getAttribute(`state`))}set state(e){this.setAttribute(`state`,Er(e))}get transcript(){return this.getAttribute(`transcript`)}set transcript(e){e==null?this.removeAttribute(`transcript`):this.setAttribute(`transcript`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.state,t=this.trigger;this.getAttribute(`state`)!==e&&this.setAttribute(`state`,e),this.getAttribute(`trigger`)!==t&&this.setAttribute(`trigger`,t);let n=this.label??wr[e][t],r=I(`span`,{class:`chip`,part:`chip`},I(`span`,{class:`glyph`,part:`glyph`},i(Cr[e],{size:12})),I(`span`,{class:`label`,part:`label`},n)),a=this.transcript;if(a){let e=I(`button`,{class:`path`,part:`path`,type:`button`,title:a,"aria-label":`Open the pre-compaction transcript ${a}`},Dr(a));e.addEventListener(`click`,()=>{this.dispatchEvent(new CustomEvent(`slicc-compaction-transcript`,{detail:{path:a},bubbles:!0,composed:!0}))}),r.append(e)}this.#e.replaceChildren(r),this.hasAttribute(`role`)||this.setAttribute(`role`,`status`)}});var Or=L(`
960
962
  :host {
961
963
  display: flex;
962
964
  align-items: center;
@@ -994,7 +996,7 @@ code {
994
996
  overflow-wrap: anywhere;
995
997
  word-break: break-word;
996
998
  }
997
- `),_n=[`feed`,`scoop`,`drop`,`sprinkle`],vn={feed:`arrow-right`,scoop:`circle-plus`,drop:`circle-check`,sprinkle:`sparkles`},yn={feed:`Delegated to`,scoop:`Spun up`,drop:`Wrapped up`,sprinkle:``},bn={feed_scoop:`Delegated to`,scoop_scoop:`Spun up`,drop_scoop:`Wrapped up`,"sprinkle-opened":`Opened`};function xn(e){return bn[e]??e}function Sn(e){return _n.includes(e??``)?e:`feed`}function Cn(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}F(`slicc-delegation-line`,class extends HTMLElement{static observedAttributes=[`kind`,`hue`,`verb`,`scoop`,`label`,`args`,`source`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[gn]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get kind(){return Sn(this.getAttribute(`kind`))}set kind(e){this.setAttribute(`kind`,Sn(e))}get hue(){return this.getAttribute(`hue`)}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get verb(){return this.getAttribute(`verb`)}set verb(e){e==null?this.removeAttribute(`verb`):this.setAttribute(`verb`,e)}get scoop(){return this.getAttribute(`scoop`)}set scoop(e){e==null?this.removeAttribute(`scoop`):this.setAttribute(`scoop`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get args(){return this.getAttribute(`args`)}set args(e){e==null?this.removeAttribute(`args`):this.setAttribute(`args`,e)}get source(){return this.hasAttribute(`source`)}set source(e){this.toggleAttribute(`source`,e)}#t(){let e=this.kind,t=this.hue,n=this.verb,i=n==null?yn[e]:xn(n),a=this.scoop,o=this.label,s=this.args?Cn(this.args):[];t?this.style.setProperty(`--c`,t):this.style.removeProperty(`--c`);let c=L(`span`,{class:`darrow`,part:`arrow`},L(`slot`,{name:`arrow`},r(vn[e],{size:13}))),l=L(`slot`,{name:`label`});i&&l.append(L(`span`,{class:`verb`},i)),a&&l.append(L(`b`,{class:`scoop`,part:`scoop`,style:t?`color:${t}`:void 0},a)),o&&l.append(L(`span`,{class:`prose`},o));let u=L(`span`,{class:`label`,part:`label`},l),d=L(`slot`,{name:`args`});for(let e of s)d.append(L(`code`,{part:`code`},e));this.#e.replaceChildren(c,u,d)}});var wn=R(`
999
+ `),kr=[`feed`,`scoop`,`drop`,`sprinkle`],Ar={feed:`arrow-right`,scoop:`circle-plus`,drop:`circle-check`,sprinkle:`sparkles`},jr={feed:`Delegated to`,scoop:`Spun up`,drop:`Wrapped up`,sprinkle:``},Mr={feed_scoop:`Delegated to`,scoop_scoop:`Spun up`,drop_scoop:`Wrapped up`,"sprinkle-opened":`Opened`};function Nr(e){return Mr[e]??e}function Pr(e){return kr.includes(e??``)?e:`feed`}function Fr(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}F(`slicc-delegation-line`,class extends HTMLElement{static observedAttributes=[`kind`,`hue`,`verb`,`scoop`,`label`,`args`,`source`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Or]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get kind(){return Pr(this.getAttribute(`kind`))}set kind(e){this.setAttribute(`kind`,Pr(e))}get hue(){return this.getAttribute(`hue`)}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get verb(){return this.getAttribute(`verb`)}set verb(e){e==null?this.removeAttribute(`verb`):this.setAttribute(`verb`,e)}get scoop(){return this.getAttribute(`scoop`)}set scoop(e){e==null?this.removeAttribute(`scoop`):this.setAttribute(`scoop`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get args(){return this.getAttribute(`args`)}set args(e){e==null?this.removeAttribute(`args`):this.setAttribute(`args`,e)}get source(){return this.hasAttribute(`source`)}set source(e){this.toggleAttribute(`source`,e)}#t(){let e=this.kind,t=this.hue,n=this.verb,r=n==null?jr[e]:Nr(n),a=this.scoop,o=this.label,s=this.args?Fr(this.args):[];t?this.style.setProperty(`--c`,t):this.style.removeProperty(`--c`);let c=I(`span`,{class:`darrow`,part:`arrow`},I(`slot`,{name:`arrow`},i(Ar[e],{size:13}))),l=I(`slot`,{name:`label`});r&&l.append(I(`span`,{class:`verb`},r)),a&&l.append(I(`b`,{class:`scoop`,part:`scoop`,style:t?`color:${t}`:void 0},a)),o&&l.append(I(`span`,{class:`prose`},o));let u=I(`span`,{class:`label`,part:`label`},l),d=I(`slot`,{name:`args`});for(let e of s)d.append(I(`code`,{part:`code`},e));this.#e.replaceChildren(c,u,d)}});var Ir=L(`
998
1000
  :host {
999
1001
  display: block;
1000
1002
  border: 1px solid var(--line);
@@ -1020,7 +1022,7 @@ code {
1020
1022
  /* palette chips carry inline-style light backgrounds — tone them down for dark mode */
1021
1023
  :host-context(.dark) .ch,
1022
1024
  :host-context([data-theme="dark"]) .ch { filter: brightness(.55) saturate(.85); }
1023
- `);F(`slicc-palette-cell`,class extends HTMLElement{static observedAttributes=[`color`,`label`,`group`,`selected`];#e;#t=null;#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[wn]}connectedCallback(){this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.setAttribute(`role`,`button`),this.#o(),this.#i()}disconnectedCallback(){this.#a()}attributeChangedCallback(){this.isConnected&&this.#o()}get color(){return this.getAttribute(`color`)}set color(e){e==null?this.removeAttribute(`color`):this.setAttribute(`color`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get group(){return this.getAttribute(`group`)}set group(e){e==null?this.removeAttribute(`group`):this.setAttribute(`group`,e)}get selected(){return this.hasAttribute(`selected`)}set selected(e){this.toggleAttribute(`selected`,e)}select(){this.#r(),this.selected=!0,this.dispatchEvent(new CustomEvent(`palette-select`,{bubbles:!0,composed:!0,detail:{color:this.color,label:this.label,group:this.group}}))}#r(){let e=this.group;if(!e)return;let t=this.getRootNode().querySelectorAll(`slicc-palette-cell[group="${CSS.escape(e)}"][selected]`);for(let e of t)e!==this&&(e.selected=!1)}#i(){this.#t||(this.#t=()=>this.select(),this.#n=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.select())},this.addEventListener(`click`,this.#t),this.addEventListener(`keydown`,this.#n))}#a(){this.#t&&this.removeEventListener(`click`,this.#t),this.#n&&this.removeEventListener(`keydown`,this.#n),this.#t=null,this.#n=null}#o(){this.setAttribute(`aria-pressed`,this.selected?`true`:`false`);let e=this.color??`transparent`,t=this.label,n=L(`div`,{class:`ch`,part:`chip`,style:`background:${e}`}),r=L(`div`,{class:`cl`,part:`label`},t??L(`slot`));this.#e.replaceChildren(n,r)}});var Tn=[`#f43f5e`,`#f59e0b`,`#06b6d4`,`#8b5cf6`,`#ec4899`,`#22c55e`],En=46,Dn=72,On=6.283185;function kn(e,t){return e+Math.random()*(t-e)}var An=[{color:`#faf6f1`,label:`paper`},{color:`#fff7ed`,label:`cream`},{color:`#f5f3ff`,label:`lilac`},{color:`#fef2f2`,label:`blush`}],jn=[{color:`#8b5cf6`,label:`violet`},{color:`#f43f5e`,label:`rose`},{color:`#06b6d4`,label:`cyan`},{color:`#ef7000`,label:`cone`}],Mn=0,Nn=R(`
1025
+ `);F(`slicc-palette-cell`,class extends HTMLElement{static observedAttributes=[`color`,`label`,`group`,`selected`];#e;#t=null;#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ir]}connectedCallback(){this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.setAttribute(`role`,`button`),this.#o(),this.#i()}disconnectedCallback(){this.#a()}attributeChangedCallback(){this.isConnected&&this.#o()}get color(){return this.getAttribute(`color`)}set color(e){e==null?this.removeAttribute(`color`):this.setAttribute(`color`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get group(){return this.getAttribute(`group`)}set group(e){e==null?this.removeAttribute(`group`):this.setAttribute(`group`,e)}get selected(){return this.hasAttribute(`selected`)}set selected(e){this.toggleAttribute(`selected`,e)}select(){this.#r(),this.selected=!0,this.dispatchEvent(new CustomEvent(`palette-select`,{bubbles:!0,composed:!0,detail:{color:this.color,label:this.label,group:this.group}}))}#r(){let e=this.group;if(!e)return;let t=this.getRootNode().querySelectorAll(`slicc-palette-cell[group="${CSS.escape(e)}"][selected]`);for(let e of t)e!==this&&(e.selected=!1)}#i(){this.#t||(this.#t=()=>this.select(),this.#n=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.select())},this.addEventListener(`click`,this.#t),this.addEventListener(`keydown`,this.#n))}#a(){this.#t&&this.removeEventListener(`click`,this.#t),this.#n&&this.removeEventListener(`keydown`,this.#n),this.#t=null,this.#n=null}#o(){this.setAttribute(`aria-pressed`,this.selected?`true`:`false`);let e=this.color??`transparent`,t=this.label,n=I(`div`,{class:`ch`,part:`chip`,style:`background:${e}`}),r=I(`div`,{class:`cl`,part:`label`},t??I(`slot`));this.#e.replaceChildren(n,r)}});var Lr=[`#f43f5e`,`#f59e0b`,`#06b6d4`,`#8b5cf6`,`#ec4899`,`#22c55e`],Rr=46,zr=72,Br=6.283185;function Vr(e,t){return e+Math.random()*(t-e)}var Hr=[{color:`#faf6f1`,label:`paper`},{color:`#fff7ed`,label:`cream`},{color:`#f5f3ff`,label:`lilac`},{color:`#fef2f2`,label:`blush`}],Ur=[{color:`#8b5cf6`,label:`violet`},{color:`#f43f5e`,label:`rose`},{color:`#06b6d4`,label:`cyan`},{color:`#ef7000`,label:`cone`}],Wr=0,Gr=L(`
1024
1026
  :host {
1025
1027
  position: relative;
1026
1028
  display: block;
@@ -1107,7 +1109,7 @@ canvas.sprk {
1107
1109
  @media (prefers-reduced-motion: reduce) {
1108
1110
  canvas.sprk { display: none; }
1109
1111
  }
1110
- `);F(`slicc-dip`,class extends HTMLElement{static observedAttributes=[`name`,`hue`,`prompt`];#e;#t=`d${++Mn}`;#n=null;#r=null;#i=0;#a=null;#o=[];#s=0;#c=0;#l=-999;#u=-999;#d=null;#f=null;#p=null;#m=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Nn]}connectedCallback(){this.#v(),this.#b(),this.#w()}disconnectedCallback(){this.#T(),this.#x()}attributeChangedCallback(){this.isConnected&&(this.#v(),this.#b(),this.#w())}get name(){return this.getAttribute(`name`)??`palette.shtml`}set name(e){e==null?this.removeAttribute(`name`):this.setAttribute(`name`,e)}get hue(){return this.getAttribute(`hue`)}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get prompt(){return this.getAttribute(`prompt`)}set prompt(e){e==null?this.removeAttribute(`prompt`):this.setAttribute(`prompt`,e)}get selectedCanvas(){return this.#h(`canvas:${this.#t}`)}get selectedAccent(){return this.#h(`accent:${this.#t}`)}#h(e){let t=this.querySelector(`slicc-palette-cell[group="${CSS.escape(e)}"][selected]`);return t?{color:t.getAttribute(`color`)??``,label:t.getAttribute(`label`)??``}:null}#g(e,t,n){let r=e.startsWith(`canvas`)?`canvas`:`accent`;if(!this.querySelector(`slicc-palette-cell[slot="${r}"]`))for(let i of t){let t=this.ownerDocument.createElement(`slicc-palette-cell`);t.setAttribute(`slot`,r),t.setAttribute(`color`,i.color),t.setAttribute(`label`,i.label),t.setAttribute(`group`,e),i.label===n&&t.setAttribute(`selected`,``),this.appendChild(t)}}#_(){return[document.createTextNode(`Tune the hero’s `),L(`b`,null,`canvas`),document.createTextNode(` & `),L(`b`,null,`accent`),document.createTextNode(`, then apply:`)]}#v(){let e=this.hue,t=e?`--c:${e}`:void 0,n=L(`slot`,{name:`prompt`});this.prompt?n.append(this.prompt):n.append(...this.#_()),this.#e.replaceChildren(L(`canvas`,{class:`sprk`,part:`field`,"aria-hidden":`true`}),L(`div`,{class:`dh`,part:`header`,style:t},L(`span`,{class:`sg`,part:`glyph`},r(`sparkles`,{size:12})),L(`span`,{class:`nm`,part:`name`},this.name),L(`span`,{class:`tag`,part:`tag`},`sprinkle · dip`)),L(`div`,{class:`dbody`,part:`body`,style:t},L(`p`,{class:`dprompt`,part:`prompt`},n),L(`div`,{class:`pgrid canvas`,part:`grid-canvas`},L(`slot`,{name:`canvas`})),L(`div`,{class:`pgrid accent`,part:`grid-accent`},L(`slot`,{name:`accent`})),L(`div`,{class:`dfoot`},L(`button`,{class:`dapply`,part:`apply`,type:`button`},`Apply to hero →`),L(`span`,{class:`dnote`,part:`note`})))),this.#g(`canvas:${this.#t}`,An,`paper`),this.#g(`accent:${this.#t}`,jn,`cone`),this.#y()}#y(){let e=this.#e.querySelector(`.dnote`);e&&(e.textContent=`${this.selectedCanvas?.label??`paper`} · ${this.selectedAccent?.label??`violet`}`)}#b(){this.#p||(this.#p=()=>this.#y(),this.addEventListener(`palette-select`,this.#p)),this.#m||=()=>this.#S(),this.#e.querySelector(`.dapply`)?.addEventListener(`click`,this.#m)}#x(){this.#p&&=(this.removeEventListener(`palette-select`,this.#p),null),this.#m=null}#S(){this.#y(),this.dispatchEvent(new CustomEvent(`slicc-dip-apply`,{bubbles:!0,composed:!0,detail:{canvas:this.selectedCanvas,accent:this.selectedAccent}}))}#C(){return typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches}#w(){if(this.#T(),this.#C())return;let e=this.#e.querySelector(`canvas.sprk`),t=e?.getContext(`2d`)??null;!e||!t||(this.#n=e,this.#r=t,this.#o=[],this.#E(),typeof ResizeObserver==`function`&&(this.#a=new ResizeObserver(()=>this.#E()),this.#a.observe(this)),this.#d=e=>{let t=this.getBoundingClientRect();this.#l=e.clientX-t.left,this.#u=e.clientY-t.top},this.#f=()=>{this.#l=-999,this.#u=-999},this.addEventListener(`pointermove`,this.#d),this.addEventListener(`pointerleave`,this.#f),this.#i=requestAnimationFrame(()=>this.#O()))}#T(){this.#i&&cancelAnimationFrame(this.#i),this.#i=0,this.#a?.disconnect(),this.#a=null,this.#d&&this.removeEventListener(`pointermove`,this.#d),this.#f&&this.removeEventListener(`pointerleave`,this.#f),this.#d=null,this.#f=null}#E(){let e=this.#n,t=this.#r;if(!e||!t)return;let n=this.getBoundingClientRect(),r=Math.min(typeof devicePixelRatio==`number`?devicePixelRatio:1,2);if(this.#s=n.width,this.#c=n.height||90,e.width=Math.max(1,Math.round(this.#s*r)),e.height=Math.max(1,Math.round(this.#c*r)),t.setTransform(r,0,0,r,0,0),!this.#o.length)for(let e=0;e<En;e++)this.#o.push({x:kn(0,this.#s),y:kn(0,this.#c),vx:kn(-.1,.1),vy:kn(-.08,.08),rot:kn(0,On),rv:kn(-.014,.014),s:kn(1.2,2.2),col:Tn[e%Tn.length]})}#D(e,t,n,r,i){let a=this.#r;a&&(a.roundRect?(a.beginPath(),a.roundRect(e,t,n,r,i)):(a.beginPath(),a.moveTo(e+i,t),a.arcTo(e+n,t,e+n,t+r,i),a.arcTo(e+n,t+r,e,t+r,i),a.arcTo(e,t+r,e,t,i),a.arcTo(e,t,e+n,t,i),a.closePath()))}#O(){let e=this.#r;if(e){e.clearRect(0,0,this.#s,this.#c);for(let t of this.#o){let n=t.x-this.#l,r=t.y-this.#u,i=n*n+r*r;if(i<5184){let e=Math.sqrt(i)||1,a=(Dn-e)/Dn*.5;t.vx+=n/e*a,t.vy+=r/e*a}t.vx*=.95,t.vy*=.95,t.x+=t.vx+.04,t.y+=t.vy,t.rot+=t.rv,t.x<-6&&(t.x=this.#s+6),t.x>this.#s+6&&(t.x=-6),t.y<-6&&(t.y=this.#c+6),t.y>this.#c+6&&(t.y=-6);let a=t.s*4,o=t.s*1.55;e.save(),e.translate(t.x,t.y),e.rotate(t.rot),e.globalAlpha=.5,e.fillStyle=t.col,this.#D(-a/2,-o/2,a,o,o/2),e.fill(),e.globalAlpha=.85,e.fillStyle=`#fff`,this.#D(-a/2+o*.3,-o*.34,a-o*.6,o*.3,o*.15),e.fill(),e.restore(),e.globalAlpha=1}this.#i=requestAnimationFrame(()=>this.#O())}}});var Pn=14,Fn=12,In=`Something went wrong`,Ln={retry:`Try again`,settings:`Open Settings`,"change-model":`Change model`,login:`Log in again`},Rn={retry:`rotate-ccw`,settings:`settings`,"change-model":`sparkles`,login:`log-in`},zn=R(`
1112
+ `);F(`slicc-dip`,class extends HTMLElement{static observedAttributes=[`name`,`hue`,`prompt`];#e;#t=`d${++Wr}`;#n=null;#r=null;#i=0;#a=null;#o=[];#s=0;#c=0;#l=-999;#u=-999;#d=null;#f=null;#p=null;#m=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Gr]}connectedCallback(){this.#v(),this.#b(),this.#w()}disconnectedCallback(){this.#T(),this.#x()}attributeChangedCallback(){this.isConnected&&(this.#v(),this.#b(),this.#w())}get name(){return this.getAttribute(`name`)??`palette.shtml`}set name(e){e==null?this.removeAttribute(`name`):this.setAttribute(`name`,e)}get hue(){return this.getAttribute(`hue`)}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get prompt(){return this.getAttribute(`prompt`)}set prompt(e){e==null?this.removeAttribute(`prompt`):this.setAttribute(`prompt`,e)}get selectedCanvas(){return this.#h(`canvas:${this.#t}`)}get selectedAccent(){return this.#h(`accent:${this.#t}`)}#h(e){let t=this.querySelector(`slicc-palette-cell[group="${CSS.escape(e)}"][selected]`);return t?{color:t.getAttribute(`color`)??``,label:t.getAttribute(`label`)??``}:null}#g(e,t,n){let r=e.startsWith(`canvas`)?`canvas`:`accent`;if(!this.querySelector(`slicc-palette-cell[slot="${r}"]`))for(let i of t){let t=this.ownerDocument.createElement(`slicc-palette-cell`);t.setAttribute(`slot`,r),t.setAttribute(`color`,i.color),t.setAttribute(`label`,i.label),t.setAttribute(`group`,e),i.label===n&&t.setAttribute(`selected`,``),this.appendChild(t)}}#_(){return[document.createTextNode(`Tune the hero’s `),I(`b`,null,`canvas`),document.createTextNode(` & `),I(`b`,null,`accent`),document.createTextNode(`, then apply:`)]}#v(){let e=this.hue,t=e?`--c:${e}`:void 0,n=I(`slot`,{name:`prompt`});this.prompt?n.append(this.prompt):n.append(...this.#_()),this.#e.replaceChildren(I(`canvas`,{class:`sprk`,part:`field`,"aria-hidden":`true`}),I(`div`,{class:`dh`,part:`header`,style:t},I(`span`,{class:`sg`,part:`glyph`},i(`sparkles`,{size:12})),I(`span`,{class:`nm`,part:`name`},this.name),I(`span`,{class:`tag`,part:`tag`},`sprinkle · dip`)),I(`div`,{class:`dbody`,part:`body`,style:t},I(`p`,{class:`dprompt`,part:`prompt`},n),I(`div`,{class:`pgrid canvas`,part:`grid-canvas`},I(`slot`,{name:`canvas`})),I(`div`,{class:`pgrid accent`,part:`grid-accent`},I(`slot`,{name:`accent`})),I(`div`,{class:`dfoot`},I(`button`,{class:`dapply`,part:`apply`,type:`button`},`Apply to hero →`),I(`span`,{class:`dnote`,part:`note`})))),this.#g(`canvas:${this.#t}`,Hr,`paper`),this.#g(`accent:${this.#t}`,Ur,`cone`),this.#y()}#y(){let e=this.#e.querySelector(`.dnote`);e&&(e.textContent=`${this.selectedCanvas?.label??`paper`} · ${this.selectedAccent?.label??`violet`}`)}#b(){this.#p||(this.#p=()=>this.#y(),this.addEventListener(`palette-select`,this.#p)),this.#m||=()=>this.#S(),this.#e.querySelector(`.dapply`)?.addEventListener(`click`,this.#m)}#x(){this.#p&&=(this.removeEventListener(`palette-select`,this.#p),null),this.#m=null}#S(){this.#y(),this.dispatchEvent(new CustomEvent(`slicc-dip-apply`,{bubbles:!0,composed:!0,detail:{canvas:this.selectedCanvas,accent:this.selectedAccent}}))}#C(){return typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches}#w(){if(this.#T(),this.#C())return;let e=this.#e.querySelector(`canvas.sprk`),t=e?.getContext(`2d`)??null;!e||!t||(this.#n=e,this.#r=t,this.#o=[],this.#E(),typeof ResizeObserver==`function`&&(this.#a=new ResizeObserver(()=>this.#E()),this.#a.observe(this)),this.#d=e=>{let t=this.getBoundingClientRect();this.#l=e.clientX-t.left,this.#u=e.clientY-t.top},this.#f=()=>{this.#l=-999,this.#u=-999},this.addEventListener(`pointermove`,this.#d),this.addEventListener(`pointerleave`,this.#f),this.#i=requestAnimationFrame(()=>this.#O()))}#T(){this.#i&&cancelAnimationFrame(this.#i),this.#i=0,this.#a?.disconnect(),this.#a=null,this.#d&&this.removeEventListener(`pointermove`,this.#d),this.#f&&this.removeEventListener(`pointerleave`,this.#f),this.#d=null,this.#f=null}#E(){let e=this.#n,t=this.#r;if(!e||!t)return;let n=this.getBoundingClientRect(),r=Math.min(typeof devicePixelRatio==`number`?devicePixelRatio:1,2);if(this.#s=n.width,this.#c=n.height||90,e.width=Math.max(1,Math.round(this.#s*r)),e.height=Math.max(1,Math.round(this.#c*r)),t.setTransform(r,0,0,r,0,0),!this.#o.length)for(let e=0;e<Rr;e++)this.#o.push({x:Vr(0,this.#s),y:Vr(0,this.#c),vx:Vr(-.1,.1),vy:Vr(-.08,.08),rot:Vr(0,Br),rv:Vr(-.014,.014),s:Vr(1.2,2.2),col:Lr[e%Lr.length]})}#D(e,t,n,r,i){let a=this.#r;a&&(a.roundRect?(a.beginPath(),a.roundRect(e,t,n,r,i)):(a.beginPath(),a.moveTo(e+i,t),a.arcTo(e+n,t,e+n,t+r,i),a.arcTo(e+n,t+r,e,t+r,i),a.arcTo(e,t+r,e,t,i),a.arcTo(e,t,e+n,t,i),a.closePath()))}#O(){let e=this.#r;if(e){e.clearRect(0,0,this.#s,this.#c);for(let t of this.#o){let n=t.x-this.#l,r=t.y-this.#u,i=n*n+r*r;if(i<5184){let e=Math.sqrt(i)||1,a=(zr-e)/zr*.5;t.vx+=n/e*a,t.vy+=r/e*a}t.vx*=.95,t.vy*=.95,t.x+=t.vx+.04,t.y+=t.vy,t.rot+=t.rv,t.x<-6&&(t.x=this.#s+6),t.x>this.#s+6&&(t.x=-6),t.y<-6&&(t.y=this.#c+6),t.y>this.#c+6&&(t.y=-6);let a=t.s*4,o=t.s*1.55;e.save(),e.translate(t.x,t.y),e.rotate(t.rot),e.globalAlpha=.5,e.fillStyle=t.col,this.#D(-a/2,-o/2,a,o,o/2),e.fill(),e.globalAlpha=.85,e.fillStyle=`#fff`,this.#D(-a/2+o*.3,-o*.34,a-o*.6,o*.3,o*.15),e.fill(),e.restore(),e.globalAlpha=1}this.#i=requestAnimationFrame(()=>this.#O())}}});var Kr=14,qr=12,Jr=`Something went wrong`,Yr={retry:`Try again`,settings:`Open Settings`,"change-model":`Change model`,login:`Log in again`},Xr={retry:`rotate-ccw`,settings:`settings`,"change-model":`sparkles`,login:`log-in`},Zr=L(`
1111
1113
  :host{
1112
1114
  /* Error cards sit in the assistant column (left-aligned). Tokens default to
1113
1115
  the light palette and flip in dark mode via the library's outer scopes
@@ -1182,7 +1184,7 @@ canvas.sprk {
1182
1184
  .retry.ghost:focus-visible{outline-color:var(--err-head);}
1183
1185
  .retry:focus-visible{outline:2px solid color-mix(in srgb,var(--err-btn-bg) 60%,var(--ink));outline-offset:2px;}
1184
1186
  .retry svg{display:block;}
1185
- `);F(`slicc-error-card`,class extends HTMLElement{static observedAttributes=[`label`,`message`,`button-label`,`secondary-button-label`,`message-id`,`action`,`secondary-action`,`no-action`,`theme`];#e;#t=null;#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[zn]}connectedCallback(){this.#i()}disconnectedCallback(){this.#o()}attributeChangedCallback(){this.isConnected&&this.#i()}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get message(){return this.getAttribute(`message`)}set message(e){e==null?this.removeAttribute(`message`):this.setAttribute(`message`,e)}get buttonLabel(){return this.getAttribute(`button-label`)}set buttonLabel(e){e==null?this.removeAttribute(`button-label`):this.setAttribute(`button-label`,e)}get secondaryButtonLabel(){return this.getAttribute(`secondary-button-label`)}set secondaryButtonLabel(e){e==null?this.removeAttribute(`secondary-button-label`):this.setAttribute(`secondary-button-label`,e)}get messageId(){return this.getAttribute(`message-id`)}set messageId(e){e==null?this.removeAttribute(`message-id`):this.setAttribute(`message-id`,e)}get action(){let e=this.getAttribute(`action`);return e===`settings`||e===`change-model`||e===`login`?e:`retry`}set action(e){e==null?this.removeAttribute(`action`):this.setAttribute(`action`,e)}get secondaryAction(){let e=this.getAttribute(`secondary-action`);return e===`settings`||e===`change-model`||e===`login`||e===`retry`?e:null}set secondaryAction(e){e==null?this.removeAttribute(`secondary-action`):this.setAttribute(`secondary-action`,e)}get noAction(){return this.hasAttribute(`no-action`)}set noAction(e){this.toggleAttribute(`no-action`,e)}get theme(){let e=this.getAttribute(`theme`);return e===`light`||e===`dark`?e:null}set theme(e){e==null?this.removeAttribute(`theme`):this.setAttribute(`theme`,e)}retry(){this.dispatchEvent(new CustomEvent(`slicc-error-retry`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}openSettings(){this.dispatchEvent(new CustomEvent(`slicc-error-open-settings`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}changeModel(){this.dispatchEvent(new CustomEvent(`slicc-error-change-model`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}login(){this.dispatchEvent(new CustomEvent(`slicc-error-login`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}#r(e){e===`settings`?this.openSettings():e===`change-model`?this.changeModel():e===`login`?this.login():this.retry()}#i(){let e=this.action,t=this.label??In,n=this.message,i=this.buttonLabel??Ln[e],a=Rn[e],o=L(`span`,{class:`ic`,part:`icon`,"aria-hidden":!0});o.append(r(`triangle-alert`,{size:Pn}));let s=L(`div`,{class:`eh`,part:`header`},o,L(`span`,{class:`lbl`,part:`label`},t)),c=L(`div`,{class:`eb`,part:`body`},n??L(`slot`)),l=L(`button`,{type:`button`,class:`retry`,part:`button`,"aria-label":i},r(a,{size:Fn}),i),u=this.secondaryAction,d=u?this.secondaryButtonLabel??Ln[u]:null,f=u&&d!=null?L(`button`,{type:`button`,class:`retry ghost`,part:`secondary-button`,"aria-label":d},r(Rn[u],{size:Fn}),d):null,p=[s,c];if(!this.noAction){let e=L(`div`,{class:`foot`});f&&e.append(f),e.append(l),p.push(e)}let m=L(`div`,{class:`err`,part:`card`},...p);this.#e.replaceChildren(m),this.#a()}#a(){this.#o();let e=this.#e.querySelector(`.retry:not(.ghost)`);if(e){let t=this.action;this.#t=()=>this.#r(t),e.addEventListener(`click`,this.#t)}let t=this.#e.querySelector(`.retry.ghost`),n=this.secondaryAction;t&&n&&(this.#n=()=>this.#r(n),t.addEventListener(`click`,this.#n))}#o(){let e=this.#e.querySelector(`.retry:not(.ghost)`);e&&this.#t&&e.removeEventListener(`click`,this.#t),this.#t=null;let t=this.#e.querySelector(`.retry.ghost`);t&&this.#n&&t.removeEventListener(`click`,this.#n),this.#n=null}});var Bn=9,Vn=3,Hn=45,Un=R(`
1187
+ `);F(`slicc-error-card`,class extends HTMLElement{static observedAttributes=[`label`,`message`,`button-label`,`secondary-button-label`,`message-id`,`action`,`secondary-action`,`no-action`,`theme`];#e;#t=null;#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Zr]}connectedCallback(){this.#i()}disconnectedCallback(){this.#o()}attributeChangedCallback(){this.isConnected&&this.#i()}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get message(){return this.getAttribute(`message`)}set message(e){e==null?this.removeAttribute(`message`):this.setAttribute(`message`,e)}get buttonLabel(){return this.getAttribute(`button-label`)}set buttonLabel(e){e==null?this.removeAttribute(`button-label`):this.setAttribute(`button-label`,e)}get secondaryButtonLabel(){return this.getAttribute(`secondary-button-label`)}set secondaryButtonLabel(e){e==null?this.removeAttribute(`secondary-button-label`):this.setAttribute(`secondary-button-label`,e)}get messageId(){return this.getAttribute(`message-id`)}set messageId(e){e==null?this.removeAttribute(`message-id`):this.setAttribute(`message-id`,e)}get action(){let e=this.getAttribute(`action`);return e===`settings`||e===`change-model`||e===`login`?e:`retry`}set action(e){e==null?this.removeAttribute(`action`):this.setAttribute(`action`,e)}get secondaryAction(){let e=this.getAttribute(`secondary-action`);return e===`settings`||e===`change-model`||e===`login`||e===`retry`?e:null}set secondaryAction(e){e==null?this.removeAttribute(`secondary-action`):this.setAttribute(`secondary-action`,e)}get noAction(){return this.hasAttribute(`no-action`)}set noAction(e){this.toggleAttribute(`no-action`,e)}get theme(){let e=this.getAttribute(`theme`);return e===`light`||e===`dark`?e:null}set theme(e){e==null?this.removeAttribute(`theme`):this.setAttribute(`theme`,e)}retry(){this.dispatchEvent(new CustomEvent(`slicc-error-retry`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}openSettings(){this.dispatchEvent(new CustomEvent(`slicc-error-open-settings`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}changeModel(){this.dispatchEvent(new CustomEvent(`slicc-error-change-model`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}login(){this.dispatchEvent(new CustomEvent(`slicc-error-login`,{detail:{messageId:this.getAttribute(`message-id`)??null},bubbles:!0,composed:!0}))}#r(e){e===`settings`?this.openSettings():e===`change-model`?this.changeModel():e===`login`?this.login():this.retry()}#i(){let e=this.action,t=this.label??Jr,n=this.message,r=this.buttonLabel??Yr[e],a=Xr[e],o=I(`span`,{class:`ic`,part:`icon`,"aria-hidden":!0});o.append(i(`triangle-alert`,{size:Kr}));let s=I(`div`,{class:`eh`,part:`header`},o,I(`span`,{class:`lbl`,part:`label`},t)),c=I(`div`,{class:`eb`,part:`body`},n??I(`slot`)),l=I(`button`,{type:`button`,class:`retry`,part:`button`,"aria-label":r},i(a,{size:qr}),r),u=this.secondaryAction,d=u?this.secondaryButtonLabel??Yr[u]:null,f=u&&d!=null?I(`button`,{type:`button`,class:`retry ghost`,part:`secondary-button`,"aria-label":d},i(Xr[u],{size:qr}),d):null,p=[s,c];if(!this.noAction){let e=I(`div`,{class:`foot`});f&&e.append(f),e.append(l),p.push(e)}let m=I(`div`,{class:`err`,part:`card`},...p);this.#e.replaceChildren(m),this.#a()}#a(){this.#o();let e=this.#e.querySelector(`.retry:not(.ghost)`);if(e){let t=this.action;this.#t=()=>this.#r(t),e.addEventListener(`click`,this.#t)}let t=this.#e.querySelector(`.retry.ghost`),n=this.secondaryAction;t&&n&&(this.#n=()=>this.#r(n),t.addEventListener(`click`,this.#n))}#o(){let e=this.#e.querySelector(`.retry:not(.ghost)`);e&&this.#t&&e.removeEventListener(`click`,this.#t),this.#t=null;let t=this.#e.querySelector(`.retry.ghost`);t&&this.#n&&t.removeEventListener(`click`,this.#n),this.#n=null}});var Qr=9,$r=3,ei=45,ti=L(`
1186
1188
  :host {
1187
1189
  display: inline-flex;
1188
1190
  align-items: center;
@@ -1263,7 +1265,7 @@ canvas.sprk {
1263
1265
  @media (prefers-reduced-motion: reduce) {
1264
1266
  :host([blink]) .eye { animation: none; }
1265
1267
  }
1266
- `);F(`slicc-googly-eyes`,class extends HTMLElement{static observedAttributes=[`inverted`,`tracking`,`blink`,`eyes`,`size`];#e;#t=[];#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Un]}connectedCallback(){this.#r(),this.#i()}disconnectedCallback(){this.#o()}attributeChangedCallback(e,t,n){this.isConnected&&(e===`size`||e===`eyes`?(this.#r(),this.#i()):e===`tracking`&&this.#i())}get inverted(){return this.hasAttribute(`inverted`)}set inverted(e){this.toggleAttribute(`inverted`,e)}get tracking(){return this.getAttribute(`tracking`)!==`off`}set tracking(e){e?this.setAttribute(`tracking`,`on`):this.setAttribute(`tracking`,`off`)}get blink(){return this.hasAttribute(`blink`)}set blink(e){this.toggleAttribute(`blink`,e)}get eyes(){return this.getAttribute(`eyes`)===`dead`?`dead`:`open`}set eyes(e){this.setAttribute(`eyes`,e===`dead`?`dead`:`open`)}get size(){let e=Number.parseFloat(this.getAttribute(`size`)??``);return Number.isFinite(e)&&e>0?e:Bn}set size(e){this.setAttribute(`size`,String(e))}#r(){let e=this.size,t=1.3/Bn*e,n=this.eyes===`dead`,r=e=>L(`span`,{class:`eye`,part:e},n?L(`span`,{class:`x`,"aria-hidden":`true`},`×`):null),i=L(`span`,{class:`eyes`,part:`eyes`,style:`--_eye:${e}px;--_border:${t}px`,role:`img`,"aria-label":n?`dead eyes`:`googly eyes`},r(`eye eye-left`),L(`slot`),r(`eye eye-right`));this.#e.replaceChildren(i),this.#t=Array.from(this.#e.querySelectorAll(`.eye`)),this.#s()}#i(){this.tracking&&this.eyes===`open`?this.#a():(this.#o(),this.#s())}#a(){this.#n||(this.#n=e=>this.#c(e),document.addEventListener(`mousemove`,this.#n))}#o(){this.#n&&=(document.removeEventListener(`mousemove`,this.#n),null)}#s(){for(let e of this.#t)e.style.setProperty(`--px`,`0px`),e.style.setProperty(`--py`,`0px`)}#c(e){for(let t of this.#t){let n=t.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2,a=Math.atan2(e.clientY-i,e.clientX-r),o=Math.min(Vn,Math.hypot(e.clientX-r,e.clientY-i)/Hn);t.style.setProperty(`--px`,`${(Math.cos(a)*o).toFixed(2)}px`),t.style.setProperty(`--py`,`${(Math.sin(a)*o).toFixed(2)}px`)}}});var Wn=R(`
1268
+ `);F(`slicc-googly-eyes`,class extends HTMLElement{static observedAttributes=[`inverted`,`tracking`,`blink`,`eyes`,`size`];#e;#t=[];#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ti]}connectedCallback(){this.#r(),this.#i()}disconnectedCallback(){this.#o()}attributeChangedCallback(e,t,n){this.isConnected&&(e===`size`||e===`eyes`?(this.#r(),this.#i()):e===`tracking`&&this.#i())}get inverted(){return this.hasAttribute(`inverted`)}set inverted(e){this.toggleAttribute(`inverted`,e)}get tracking(){return this.getAttribute(`tracking`)!==`off`}set tracking(e){e?this.setAttribute(`tracking`,`on`):this.setAttribute(`tracking`,`off`)}get blink(){return this.hasAttribute(`blink`)}set blink(e){this.toggleAttribute(`blink`,e)}get eyes(){return this.getAttribute(`eyes`)===`dead`?`dead`:`open`}set eyes(e){this.setAttribute(`eyes`,e===`dead`?`dead`:`open`)}get size(){let e=Number.parseFloat(this.getAttribute(`size`)??``);return Number.isFinite(e)&&e>0?e:Qr}set size(e){this.setAttribute(`size`,String(e))}#r(){let e=this.size,t=1.3/Qr*e,n=this.eyes===`dead`,r=e=>I(`span`,{class:`eye`,part:e},n?I(`span`,{class:`x`,"aria-hidden":`true`},`×`):null),i=I(`span`,{class:`eyes`,part:`eyes`,style:`--_eye:${e}px;--_border:${t}px`,role:`img`,"aria-label":n?`dead eyes`:`googly eyes`},r(`eye eye-left`),I(`slot`),r(`eye eye-right`));this.#e.replaceChildren(i),this.#t=Array.from(this.#e.querySelectorAll(`.eye`)),this.#s()}#i(){this.tracking&&this.eyes===`open`?this.#a():(this.#o(),this.#s())}#a(){this.#n||(this.#n=e=>this.#c(e),document.addEventListener(`mousemove`,this.#n))}#o(){this.#n&&=(document.removeEventListener(`mousemove`,this.#n),null)}#s(){for(let e of this.#t)e.style.setProperty(`--px`,`0px`),e.style.setProperty(`--py`,`0px`)}#c(e){for(let t of this.#t){let n=t.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2,a=Math.atan2(e.clientY-i,e.clientX-r),o=Math.min($r,Math.hypot(e.clientX-r,e.clientY-i)/ei);t.style.setProperty(`--px`,`${(Math.cos(a)*o).toFixed(2)}px`),t.style.setProperty(`--py`,`${(Math.sin(a)*o).toFixed(2)}px`)}}});var ni=L(`
1267
1269
  :host{display:block;font-family:var(--ui);}
1268
1270
  :host([hidden]){display:none;}
1269
1271
  .handoff{border:1px solid var(--line);border-radius:13px;padding:13px 15px;margin:2px 0 18px;}
@@ -1283,7 +1285,7 @@ canvas.sprk {
1283
1285
  .opened .sg{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:#fff;background:var(--rainbow);flex:0 0 auto;}
1284
1286
  .opened .sg svg{display:block;}
1285
1287
  .opened b{color:var(--ink);font-weight:600;}
1286
- `),Gn=`Handoff request from`;F(`slicc-handoff-card`,class extends HTMLElement{static observedAttributes=[`variant`,`name`,`pre`,`text`,`eyes`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Wn]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get variant(){return this.getAttribute(`variant`)===`opened`?`opened`:`handoff`}set variant(e){this.setAttribute(`variant`,e===`opened`?`opened`:`handoff`)}get name(){return this.getAttribute(`name`)}set name(e){e==null?this.removeAttribute(`name`):this.setAttribute(`name`,e)}get pre(){return this.getAttribute(`pre`)}set pre(e){e==null?this.removeAttribute(`pre`):this.setAttribute(`pre`,e)}get text(){return this.getAttribute(`text`)}set text(e){e==null?this.removeAttribute(`text`):this.setAttribute(`text`,e)}get eyes(){return this.getAttribute(`eyes`)===`dead`?`dead`:`open`}set eyes(e){this.setAttribute(`eyes`,e===`dead`?`dead`:`open`)}#t(){this.variant===`opened`?this.#i():this.#r()}#n(){let e=this.text;return e==null?L(`slot`):document.createTextNode(e)}#r(){let e=this.pre??Gn,t=this.name,n=L(`slicc-googly-eyes`,{class:`eyes`});this.eyes===`dead`&&n.setAttribute(`eyes`,`dead`);let i=L(`div`,{class:`top`,part:`top`},L(`span`,{class:`av`,part:`avatar`},n),L(`span`,{class:`lbl2`,part:`label`},L(`span`,{class:`hand`,part:`hand`,"aria-hidden":`true`},r(`hand`,{size:13})),L(`span`,{class:`pre`},e),` `,t==null?null:L(`b`,{part:`name`},t))),a=L(`p`,{part:`text`},this.#n());this.#e.replaceChildren(L(`div`,{class:`handoff`,part:`card`},i,a))}#i(){let e=this.name,t=L(`span`,{class:`sg`,part:`glyph`,"aria-hidden":`true`},r(`sparkles`,{size:12})),n=L(`span`,{part:`text`},e==null?null:L(`b`,{part:`name`},e),e==null?null:` `,this.#n());this.#e.replaceChildren(L(`div`,{class:`opened`,part:`card`},t,n))}});var Kn=14,qn=`event`,Jn={webhook:`webhook`,cron:`clock`,workflow:`workflow`,bash:`square-terminal`,"session-reload":`rotate-ccw`,navigate:`compass`,discovery:`radar`,upgrade:`circle-arrow-up`,sprinkle:`sparkles`,fswatch:`eye`,"scoop-notify":`bell-ring`,"scoop-idle":`moon`,"scoop-wait":`hourglass`,"sudo-request":`key-round`},Yn=`bell`;function Xn(e){return e&&Jn[e.toLowerCase()]||Yn}var Zn={confirmed:`circle-check`,dismissed:`circle-x`},Qn=R(`
1288
+ `),ri=`Handoff request from`;F(`slicc-handoff-card`,class extends HTMLElement{static observedAttributes=[`variant`,`name`,`pre`,`text`,`eyes`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ni]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get variant(){return this.getAttribute(`variant`)===`opened`?`opened`:`handoff`}set variant(e){this.setAttribute(`variant`,e===`opened`?`opened`:`handoff`)}get name(){return this.getAttribute(`name`)}set name(e){e==null?this.removeAttribute(`name`):this.setAttribute(`name`,e)}get pre(){return this.getAttribute(`pre`)}set pre(e){e==null?this.removeAttribute(`pre`):this.setAttribute(`pre`,e)}get text(){return this.getAttribute(`text`)}set text(e){e==null?this.removeAttribute(`text`):this.setAttribute(`text`,e)}get eyes(){return this.getAttribute(`eyes`)===`dead`?`dead`:`open`}set eyes(e){this.setAttribute(`eyes`,e===`dead`?`dead`:`open`)}#t(){this.variant===`opened`?this.#i():this.#r()}#n(){let e=this.text;return e==null?I(`slot`):document.createTextNode(e)}#r(){let e=this.pre??ri,t=this.name,n=I(`slicc-googly-eyes`,{class:`eyes`});this.eyes===`dead`&&n.setAttribute(`eyes`,`dead`);let r=I(`div`,{class:`top`,part:`top`},I(`span`,{class:`av`,part:`avatar`},n),I(`span`,{class:`lbl2`,part:`label`},I(`span`,{class:`hand`,part:`hand`,"aria-hidden":`true`},i(`hand`,{size:13})),I(`span`,{class:`pre`},e),` `,t==null?null:I(`b`,{part:`name`},t))),a=I(`p`,{part:`text`},this.#n());this.#e.replaceChildren(I(`div`,{class:`handoff`,part:`card`},r,a))}#i(){let e=this.name,t=I(`span`,{class:`sg`,part:`glyph`,"aria-hidden":`true`},i(`sparkles`,{size:12})),n=I(`span`,{part:`text`},e==null?null:I(`b`,{part:`name`},e),e==null?null:` `,this.#n());this.#e.replaceChildren(I(`div`,{class:`opened`,part:`card`},t,n))}});var ii=14,ai=`event`,oi={webhook:`webhook`,cron:`clock`,workflow:`workflow`,bash:`square-terminal`,"session-reload":`rotate-ccw`,navigate:`compass`,discovery:`radar`,upgrade:`circle-arrow-up`,sprinkle:`sparkles`,gelatiere:`ice-cream-cone`,fswatch:`eye`,"scoop-notify":`bell-ring`,"scoop-idle":`moon`,"scoop-wait":`hourglass`,"sudo-request":`key-round`},si=`bell`;function ci(e){return e&&oi[e.toLowerCase()]||si}var li={confirmed:`circle-check`,dismissed:`circle-x`},ui=L(`
1287
1289
  :host{
1288
1290
  /* Licks are right-aligned in the chat column (mirroring the lickIn slide-in
1289
1291
  from the right): the host is a full-width flex row that pushes the card to
@@ -1390,7 +1392,7 @@ canvas.sprk {
1390
1392
  :host([collapsed]) .lb{display:none;}
1391
1393
 
1392
1394
  @keyframes lickIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
1393
- `),$n=`
1395
+ `),di=`
1394
1396
  slicc-lick-card pre{
1395
1397
  white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;
1396
1398
  max-width:100%;overflow-x:auto;margin:6px 0;
@@ -1401,7 +1403,7 @@ slicc-lick-card a{overflow-wrap:anywhere;}
1401
1403
  slicc-lick-card img{max-width:100%;height:auto;}
1402
1404
  slicc-lick-card table{display:block;max-width:100%;width:fit-content;overflow-x:auto;}
1403
1405
  slicc-lick-card > *{min-width:0;max-width:100%;}
1404
- `,er=`slicc-lick-card-slotted-style`;function tr(e){if(e.getElementById(er))return;let t=e.createElement(`style`);t.id=er,t.textContent=$n,(e.head??e.documentElement).appendChild(t)}var nr=`·`;F(`slicc-lick-card`,class extends HTMLElement{static observedAttributes=[`kind`,`event-label`,`body`,`count`,`no-animate`,`collapsible`,`collapsed`,`theme`,`hue`,`state`];#e;#t=null;#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Qn]}connectedCallback(){tr(this.ownerDocument),this.#r()}disconnectedCallback(){this.#a()}attributeChangedCallback(){this.isConnected&&this.#r()}get kind(){return this.getAttribute(`kind`)}set kind(e){e==null?this.removeAttribute(`kind`):this.setAttribute(`kind`,e)}get eventLabel(){return this.getAttribute(`event-label`)}set eventLabel(e){e==null?this.removeAttribute(`event-label`):this.setAttribute(`event-label`,e)}get body(){return this.getAttribute(`body`)}set body(e){e==null?this.removeAttribute(`body`):this.setAttribute(`body`,e)}get count(){let e=Number.parseInt(this.getAttribute(`count`)??``,10);return Number.isFinite(e)&&e>0?e:1}set count(e){e>1?this.setAttribute(`count`,String(e)):this.removeAttribute(`count`)}get noAnimate(){return this.hasAttribute(`no-animate`)}set noAnimate(e){this.toggleAttribute(`no-animate`,e)}get collapsible(){return this.hasAttribute(`collapsible`)}set collapsible(e){this.toggleAttribute(`collapsible`,e)}get collapsed(){return this.hasAttribute(`collapsed`)}set collapsed(e){this.toggleAttribute(`collapsed`,e)}get theme(){let e=this.getAttribute(`theme`);return e===`light`||e===`dark`?e:null}set theme(e){e==null?this.removeAttribute(`theme`):this.setAttribute(`theme`,e)}get state(){let e=this.getAttribute(`state`);return e===`confirmed`||e===`dismissed`?e:`pending`}set state(e){e==null||e===`pending`?this.removeAttribute(`state`):this.setAttribute(`state`,e)}toggle(){this.collapsible&&(this.collapsed=!this.collapsed,this.dispatchEvent(new CustomEvent(`slicc-lick-toggle`,{detail:{collapsed:this.collapsed},bubbles:!0,composed:!0})))}#r(){let e=this.kind??``,t=this.count,n=this.getAttribute(`hue`);n?(this.style.setProperty(`--lick-pill`,n),this.style.setProperty(`--lick-pill-ink`,`#fff`)):(this.style.removeProperty(`--lick-pill`),this.style.removeProperty(`--lick-pill-ink`));let i=this.eventLabel??qn,a=t>1?`${i} ×${t}`:i,o=this.body,s=this.collapsible,c=e?`lick ${nr} ${e}`:`lick ${nr}`,l=L(`span`,{class:`bell`,part:`bell`,"aria-hidden":!0});l.append(r(Xn(e),{size:Kn}));let u={class:`lh`,part:`header`};s&&(u.tabindex=`0`,u.role=`button`,u[`aria-expanded`]=this.collapsed?`false`:`true`);let d=L(`div`,u,l,` `,L(`span`,{class:`kind`,part:`kind`},`${c} `),L(`span`,{class:`lk`,part:`event`},a)),f=this.state;if(f!==`pending`){let e=L(`span`,{class:`status`,part:`status`,"aria-hidden":!0});e.append(r(Zn[f],{size:Kn})),d.append(e)}let p=L(`div`,{class:`lick`,part:`card`},d,L(`div`,{class:`lb`,part:`body`},o??L(`slot`)));this.#e.replaceChildren(p),this.#i()}#i(){if(this.#a(),!this.collapsible)return;let e=this.#e.querySelector(`.lh`);e&&(this.#t=()=>this.toggle(),this.#n=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.toggle())},e.addEventListener(`click`,this.#t),e.addEventListener(`keydown`,this.#n))}#a(){let e=this.#e.querySelector(`.lh`);e&&this.#t&&e.removeEventListener(`click`,this.#t),e&&this.#n&&e.removeEventListener(`keydown`,this.#n),this.#t=null,this.#n=null}});var rr=`
1406
+ `,fi=`slicc-lick-card-slotted-style`;function pi(e){if(e.getElementById(fi))return;let t=e.createElement(`style`);t.id=fi,t.textContent=di,(e.head??e.documentElement).appendChild(t)}var mi=`·`;F(`slicc-lick-card`,class extends HTMLElement{static observedAttributes=[`kind`,`event-label`,`body`,`count`,`no-animate`,`collapsible`,`collapsed`,`theme`,`hue`,`state`];#e;#t=null;#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ui]}connectedCallback(){pi(this.ownerDocument),this.#r()}disconnectedCallback(){this.#a()}attributeChangedCallback(){this.isConnected&&this.#r()}get kind(){return this.getAttribute(`kind`)}set kind(e){e==null?this.removeAttribute(`kind`):this.setAttribute(`kind`,e)}get eventLabel(){return this.getAttribute(`event-label`)}set eventLabel(e){e==null?this.removeAttribute(`event-label`):this.setAttribute(`event-label`,e)}get body(){return this.getAttribute(`body`)}set body(e){e==null?this.removeAttribute(`body`):this.setAttribute(`body`,e)}get count(){let e=Number.parseInt(this.getAttribute(`count`)??``,10);return Number.isFinite(e)&&e>0?e:1}set count(e){e>1?this.setAttribute(`count`,String(e)):this.removeAttribute(`count`)}get noAnimate(){return this.hasAttribute(`no-animate`)}set noAnimate(e){this.toggleAttribute(`no-animate`,e)}get collapsible(){return this.hasAttribute(`collapsible`)}set collapsible(e){this.toggleAttribute(`collapsible`,e)}get collapsed(){return this.hasAttribute(`collapsed`)}set collapsed(e){this.toggleAttribute(`collapsed`,e)}get theme(){let e=this.getAttribute(`theme`);return e===`light`||e===`dark`?e:null}set theme(e){e==null?this.removeAttribute(`theme`):this.setAttribute(`theme`,e)}get state(){let e=this.getAttribute(`state`);return e===`confirmed`||e===`dismissed`?e:`pending`}set state(e){e==null||e===`pending`?this.removeAttribute(`state`):this.setAttribute(`state`,e)}toggle(){this.collapsible&&(this.collapsed=!this.collapsed,this.dispatchEvent(new CustomEvent(`slicc-lick-toggle`,{detail:{collapsed:this.collapsed},bubbles:!0,composed:!0})))}#r(){let e=this.kind??``,t=this.count,n=this.getAttribute(`hue`);n?(this.style.setProperty(`--lick-pill`,n),this.style.setProperty(`--lick-pill-ink`,`#fff`)):(this.style.removeProperty(`--lick-pill`),this.style.removeProperty(`--lick-pill-ink`));let r=this.eventLabel??ai,a=t>1?`${r} ×${t}`:r,o=this.body,s=this.collapsible,c=e?`lick ${mi} ${e}`:`lick ${mi}`,l=I(`span`,{class:`bell`,part:`bell`,"aria-hidden":!0});l.append(i(ci(e),{size:ii}));let u={class:`lh`,part:`header`};s&&(u.tabindex=`0`,u.role=`button`,u[`aria-expanded`]=this.collapsed?`false`:`true`);let d=I(`div`,u,l,` `,I(`span`,{class:`kind`,part:`kind`},`${c} `),I(`span`,{class:`lk`,part:`event`},a)),f=this.state;if(f!==`pending`){let e=I(`span`,{class:`status`,part:`status`,"aria-hidden":!0});e.append(i(li[f],{size:ii})),d.append(e)}let p=I(`div`,{class:`lick`,part:`card`},d,I(`div`,{class:`lb`,part:`body`},o??I(`slot`)));this.#e.replaceChildren(p),this.#i()}#i(){if(this.#a(),!this.collapsible)return;let e=this.#e.querySelector(`.lh`);e&&(this.#t=()=>this.toggle(),this.#n=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.toggle())},e.addEventListener(`click`,this.#t),e.addEventListener(`keydown`,this.#n))}#a(){let e=this.#e.querySelector(`.lh`);e&&this.#t&&e.removeEventListener(`click`,this.#t),e&&this.#n&&e.removeEventListener(`keydown`,this.#n),this.#t=null,this.#n=null}});var hi=`
1405
1407
  slicc-tool-cluster {
1406
1408
  display: block;
1407
1409
  margin: -2px 0 16px;
@@ -1477,7 +1479,7 @@ slicc-tool-cluster[open] .slicc-cluster__body {
1477
1479
  slicc-tool-cluster .slicc-cluster__body slicc-action-row {
1478
1480
  margin-bottom: 4px;
1479
1481
  }
1480
- `,ir=`slicc-tool-cluster-style`;function ar(e){if(e.getElementById(ir))return;let t=e.createElement(`style`);t.id=ir,t.textContent=rr,(e.head??e.documentElement).appendChild(t)}var or=`A few quick steps`;F(`slicc-tool-cluster`,class extends HTMLElement{static observedAttributes=[`open`,`label`,`count`];#e;#t;#n;#r;#i=!1;#a=()=>{this.open=!this.open};connectedCallback(){ar(this.ownerDocument),this.#o(),this.#s(),this.#e?.addEventListener(`click`,this.#a)}disconnectedCallback(){this.#e?.removeEventListener(`click`,this.#a)}attributeChangedCallback(e,t,n){t===n||!this.#i||(e===`open`?(this.#e.setAttribute(`aria-expanded`,String(n!==null)),this.dispatchEvent(new CustomEvent(`slicc-tool-cluster-toggle`,{bubbles:!0,composed:!0,detail:{open:n!==null}}))):this.#s())}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get label(){return this.getAttribute(`label`)??or}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get count(){let e=Number.parseInt(this.getAttribute(`count`)??``,10);return Number.isFinite(e)&&e>0?e:0}set count(e){e>0?this.setAttribute(`count`,String(e)):this.removeAttribute(`count`)}get body(){return this.#o(),this.#r}append(...e){this.#o(),this.#r.append(...e),this.#s()}#o(){if(this.#i)return;this.#i=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`slicc-cluster__head`))&&!(e instanceof HTMLElement&&e.classList.contains(`slicc-cluster__body`)));this.#e=this.ownerDocument.createElement(`button`),this.#e.type=`button`,this.#e.className=`slicc-cluster__head`,this.#e.setAttribute(`part`,`head`),this.#t=L(`span`,{class:`slicc-cluster__label`,part:`label`}),this.#n=L(`span`,{class:`slicc-cluster__count`,part:`count`}),I(this.#e,[L(`span`,{class:`slicc-cluster__ic`,part:`icon`},r(`layers`,{size:12})),this.#t,this.#n,L(`span`,{class:`slicc-cluster__chev`,part:`chevron`,"aria-hidden":`true`},`▸`)]),this.#r=this.ownerDocument.createElement(`div`),this.#r.className=`slicc-cluster__body`,this.#r.setAttribute(`part`,`body`);for(let t of e)this.#r.appendChild(t);this.replaceChildren(this.#e,this.#r),this.#e.addEventListener(`click`,this.#a)}#s(){if(!this.#i)return;this.#t.textContent=this.label;let e=this.count||this.#r.children.length;this.#n.textContent=e>0?`${e} steps`:``,this.#e.setAttribute(`aria-expanded`,String(this.open))}});var sr=400,cr=R(`
1482
+ `,gi=`slicc-tool-cluster-style`;function _i(e){if(e.getElementById(gi))return;let t=e.createElement(`style`);t.id=gi,t.textContent=hi,(e.head??e.documentElement).appendChild(t)}var vi=`A few quick steps`;F(`slicc-tool-cluster`,class extends HTMLElement{static observedAttributes=[`open`,`label`,`count`];#e;#t;#n;#r;#i=!1;#a=()=>{this.open=!this.open};connectedCallback(){_i(this.ownerDocument),this.#o(),this.#s(),this.#e?.addEventListener(`click`,this.#a)}disconnectedCallback(){this.#e?.removeEventListener(`click`,this.#a)}attributeChangedCallback(e,t,n){t===n||!this.#i||(e===`open`?(this.#e.setAttribute(`aria-expanded`,String(n!==null)),this.dispatchEvent(new CustomEvent(`slicc-tool-cluster-toggle`,{bubbles:!0,composed:!0,detail:{open:n!==null}}))):this.#s())}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get label(){return this.getAttribute(`label`)??vi}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get count(){let e=Number.parseInt(this.getAttribute(`count`)??``,10);return Number.isFinite(e)&&e>0?e:0}set count(e){e>0?this.setAttribute(`count`,String(e)):this.removeAttribute(`count`)}get body(){return this.#o(),this.#r}append(...e){this.#o(),this.#r.append(...e),this.#s()}#o(){if(this.#i)return;this.#i=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`slicc-cluster__head`))&&!(e instanceof HTMLElement&&e.classList.contains(`slicc-cluster__body`)));this.#e=this.ownerDocument.createElement(`button`),this.#e.type=`button`,this.#e.className=`slicc-cluster__head`,this.#e.setAttribute(`part`,`head`),this.#t=I(`span`,{class:`slicc-cluster__label`,part:`label`}),this.#n=I(`span`,{class:`slicc-cluster__count`,part:`count`}),Fn(this.#e,[I(`span`,{class:`slicc-cluster__ic`,part:`icon`},i(`layers`,{size:12})),this.#t,this.#n,I(`span`,{class:`slicc-cluster__chev`,part:`chevron`,"aria-hidden":`true`},`▸`)]),this.#r=this.ownerDocument.createElement(`div`),this.#r.className=`slicc-cluster__body`,this.#r.setAttribute(`part`,`body`);for(let t of e)this.#r.appendChild(t);this.replaceChildren(this.#e,this.#r),this.#e.addEventListener(`click`,this.#a)}#s(){if(!this.#i)return;this.#t.textContent=this.label;let e=this.count||this.#r.children.length;this.#n.textContent=e>0?`${e} steps`:``,this.#e.setAttribute(`aria-expanded`,String(this.open))}});var yi=400,bi=L(`
1481
1483
  :host{position:fixed;inset:0;z-index:1000;display:none;}
1482
1484
  :host([open]){display:block;}
1483
1485
  .overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;cursor:pointer;}
@@ -1485,7 +1487,7 @@ slicc-tool-cluster .slicc-cluster__body slicc-action-row {
1485
1487
  .overlay.visible .backdrop{opacity:1;}
1486
1488
  .overlay.closing .backdrop{opacity:0;}
1487
1489
  .image{position:absolute;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.4),0 8px 20px rgba(0,0,0,.3);max-width:90vw;max-height:90vh;object-fit:contain;transform-origin:center center;will-change:transform;transition:transform .35s cubic-bezier(.2,0,.13,1),border-radius .35s cubic-bezier(.2,0,.13,1);}
1488
- `),lr=null,ur=class extends HTMLElement{#e;#t=null;#n=null;#r=null;#i=null;#a=!1;#o=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[cr]}disconnectedCallback(){this.#l(),lr===this&&(lr=null)}get src(){return this.getAttribute(`src`)}set src(e){e==null?this.removeAttribute(`src`):this.setAttribute(`src`,e)}get isOpen(){return this.hasAttribute(`open`)}open(e,t){lr&&lr!==this&&lr.#s(),this.#l(),this.#a=!1,this.src=e,this.setAttribute(`open`,``),lr=this,this.#r=t??this;let n=document.createElement(`div`);n.className=`overlay`,n.setAttribute(`part`,`overlay`);let r=document.createElement(`div`);r.className=`backdrop`,r.setAttribute(`part`,`backdrop`),n.appendChild(r);let i=document.createElement(`img`);i.className=`image`,i.setAttribute(`part`,`image`),i.src=e,i.alt=`Image preview`,n.appendChild(i),this.#e.appendChild(n),this.#t=n,this.#n=i;let a=this.#r.getBoundingClientRect(),o=()=>{let e=window.innerWidth,t=window.innerHeight,r=e*.9,o=t*.9,s=i.naturalWidth||a.width*4,c=i.naturalHeight||a.height*4,l=Math.min(r/s,o/c,1),u=s*l,d=c*l,f=(e-u)/2,p=(t-d)/2,m=a.width/u,h=a.height/d,g=a.left+a.width/2,_=a.top+a.height/2,v=f+u/2,y=p+d/2,b=g-v,x=_-y;i.style.position=`absolute`,i.style.width=`${u}px`,i.style.height=`${d}px`,i.style.left=`${f}px`,i.style.top=`${p}px`,i.style.transform=`translate(${b}px, ${x}px) scale(${m}, ${h})`,i.style.borderRadius=`${6/Math.min(m,h)}px`,requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.style.transform=`translate(0, 0) scale(1, 1)`,i.style.borderRadius=`6px`,n.classList.add(`visible`)})})};i.complete&&i.naturalWidth>0?o():(i.onload=()=>o(),i.onerror=()=>this.#s()),this.#i=e=>{e.key===`Escape`&&this.close()},n.addEventListener(`click`,()=>this.close()),document.addEventListener(`keydown`,this.#i),this.dispatchEvent(new CustomEvent(`slicc-image-preview-open`,{bubbles:!0,composed:!0,detail:{src:e}}))}close(){let e=this.#t,t=this.#n;if(this.#a||!e||!t||lr!==this)return;this.#a=!0,e.classList.add(`closing`),e.classList.remove(`visible`);let n=this.#r,r=n?n.getBoundingClientRect():null;if(r&&r.width>0&&r.height>0){let e=t.getBoundingClientRect(),n=r.width/e.width,i=r.height/e.height,a=r.left+r.width/2,o=r.top+r.height/2,s=e.left+e.width/2,c=e.top+e.height/2,l=a-s,u=o-c;t.style.transform=`translate(${l}px, ${u}px) scale(${n}, ${i})`,t.style.borderRadius=`${6/Math.min(n,i)}px`}this.dispatchEvent(new CustomEvent(`slicc-image-preview-close`,{bubbles:!0,composed:!0,detail:{src:this.src}}));let i=()=>this.#c();this.#o=setTimeout(i,sr),e.addEventListener(`transitionend`,e=>{e.propertyName===`transform`&&(this.#o&&clearTimeout(this.#o),i())})}#s(){this.#l()}#c(){this.#l()}#l(){this.#o&&=(clearTimeout(this.#o),null),this.#i&&=(document.removeEventListener(`keydown`,this.#i),null),this.#t&&=(this.#t.remove(),null),this.#n=null,this.#r=null,this.removeAttribute(`open`),this.removeAttribute(`src`),lr===this&&(lr=null)}static show(e,t){let n=document.querySelector(`slicc-image-preview[data-shared]`);return n||(n=document.createElement(`slicc-image-preview`),n.setAttribute(`data-shared`,``),document.body.appendChild(n)),n.open(e,t),()=>n.close()}};F(`slicc-image-preview`,ur);var dr=R(`
1490
+ `),xi=null,Si=class extends HTMLElement{#e;#t=null;#n=null;#r=null;#i=null;#a=!1;#o=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[bi]}disconnectedCallback(){this.#l(),xi===this&&(xi=null)}get src(){return this.getAttribute(`src`)}set src(e){e==null?this.removeAttribute(`src`):this.setAttribute(`src`,e)}get isOpen(){return this.hasAttribute(`open`)}open(e,t){xi&&xi!==this&&xi.#s(),this.#l(),this.#a=!1,this.src=e,this.setAttribute(`open`,``),xi=this,this.#r=t??this;let n=document.createElement(`div`);n.className=`overlay`,n.setAttribute(`part`,`overlay`);let r=document.createElement(`div`);r.className=`backdrop`,r.setAttribute(`part`,`backdrop`),n.appendChild(r);let i=document.createElement(`img`);i.className=`image`,i.setAttribute(`part`,`image`),i.src=e,i.alt=`Image preview`,n.appendChild(i),this.#e.appendChild(n),this.#t=n,this.#n=i;let a=this.#r.getBoundingClientRect(),o=()=>{let e=window.innerWidth,t=window.innerHeight,r=e*.9,o=t*.9,s=i.naturalWidth||a.width*4,c=i.naturalHeight||a.height*4,l=Math.min(r/s,o/c,1),u=s*l,d=c*l,f=(e-u)/2,p=(t-d)/2,m=a.width/u,h=a.height/d,g=a.left+a.width/2,_=a.top+a.height/2,v=f+u/2,y=p+d/2,b=g-v,x=_-y;i.style.position=`absolute`,i.style.width=`${u}px`,i.style.height=`${d}px`,i.style.left=`${f}px`,i.style.top=`${p}px`,i.style.transform=`translate(${b}px, ${x}px) scale(${m}, ${h})`,i.style.borderRadius=`${6/Math.min(m,h)}px`,requestAnimationFrame(()=>{requestAnimationFrame(()=>{i.style.transform=`translate(0, 0) scale(1, 1)`,i.style.borderRadius=`6px`,n.classList.add(`visible`)})})};i.complete&&i.naturalWidth>0?o():(i.onload=()=>o(),i.onerror=()=>this.#s()),this.#i=e=>{e.key===`Escape`&&this.close()},n.addEventListener(`click`,()=>this.close()),document.addEventListener(`keydown`,this.#i),this.dispatchEvent(new CustomEvent(`slicc-image-preview-open`,{bubbles:!0,composed:!0,detail:{src:e}}))}close(){let e=this.#t,t=this.#n;if(this.#a||!e||!t||xi!==this)return;this.#a=!0,e.classList.add(`closing`),e.classList.remove(`visible`);let n=this.#r,r=n?n.getBoundingClientRect():null;if(r&&r.width>0&&r.height>0){let e=t.getBoundingClientRect(),n=r.width/e.width,i=r.height/e.height,a=r.left+r.width/2,o=r.top+r.height/2,s=e.left+e.width/2,c=e.top+e.height/2,l=a-s,u=o-c;t.style.transform=`translate(${l}px, ${u}px) scale(${n}, ${i})`,t.style.borderRadius=`${6/Math.min(n,i)}px`}this.dispatchEvent(new CustomEvent(`slicc-image-preview-close`,{bubbles:!0,composed:!0,detail:{src:this.src}}));let i=()=>this.#c();this.#o=setTimeout(i,yi),e.addEventListener(`transitionend`,e=>{e.propertyName===`transform`&&(this.#o&&clearTimeout(this.#o),i())})}#s(){this.#l()}#c(){this.#l()}#l(){this.#o&&=(clearTimeout(this.#o),null),this.#i&&=(document.removeEventListener(`keydown`,this.#i),null),this.#t&&=(this.#t.remove(),null),this.#n=null,this.#r=null,this.removeAttribute(`open`),this.removeAttribute(`src`),xi===this&&(xi=null)}static show(e,t){let n=document.querySelector(`slicc-image-preview[data-shared]`);return n||(n=document.createElement(`slicc-image-preview`),n.setAttribute(`data-shared`,``),document.body.appendChild(n)),n.open(e,t),()=>n.close()}};F(`slicc-image-preview`,Si);var Ci=L(`
1489
1491
  :host{display:block;margin-bottom:18px;font-family:var(--ui);font-size:15px;line-height:1.5;}
1490
1492
  :host([hidden]){display:none;}
1491
1493
  .msg{display:flex;justify-content:flex-end;}
@@ -1533,7 +1535,7 @@ slicc-tool-cluster .slicc-cluster__body slicc-action-row {
1533
1535
  :host([queued]) .b{opacity:.62;}
1534
1536
  .queued-tag{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;color:var(--txt-3);}
1535
1537
  .queued-tag svg{display:block;}
1536
- `),fr={image:`image`,text:`file-text`,file:`file`};function pr(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}F(`slicc-user-message`,class extends HTMLElement{static observedAttributes=[`text`,`queued`,`timestamp`];#e;#t=null;#n=[];constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[dr]}connectedCallback(){this.#a()}attributeChangedCallback(){this.isConnected&&this.#a()}get text(){return this.getAttribute(`text`)}set text(e){e==null?this.removeAttribute(`text`):this.setAttribute(`text`,e)}get queued(){return this.hasAttribute(`queued`)}set queued(e){this.toggleAttribute(`queued`,e)}setBodyHtml(e){this.#t=e,this.#a()}setAttachments(e){this.#n=e.slice(),this.#a()}#r(){if(this.#t!=null)return this.ownerDocument.createRange().createContextualFragment(this.#t);let e=this.text;return e==null?L(`slot`):this.ownerDocument.createTextNode(e)}#i(e){let t=e.kind??`file`,n=L(`span`,{class:`attachment-chip__visual`});if(t===`image`&&e.src){let t=L(`img`,{src:e.src,alt:e.name||`Attached image`});t.addEventListener(`click`,n=>{n.stopPropagation(),ur.show(e.src,t)}),n.append(t)}else n.append(r(fr[t],{size:16}));let i=e.size==null?e.mime:`${e.mime||`file`} · ${pr(e.size)}`,a=L(`span`,{class:`attachment-chip__body`},L(`span`,{class:`attachment-chip__name`},e.name),i?L(`span`,{class:`attachment-chip__meta`},i):null);return L(`div`,{class:`attachment-chip attachment-chip--${t}`},n,a)}#a(){let e=this.#n.length>0,t=this.text!=null||this.#t!=null,n=this.childNodes.length>0,i=t||n||!e,a=L(`div`,{class:`stack`,part:`stack`}),o=this.getAttribute(`timestamp`);if(o&&a.append(L(`span`,{class:`ts`,part:`timestamp`},o)),e){let e=L(`div`,{class:`attachments`,part:`attachments`});for(let t of this.#n)e.append(this.#i(t));a.append(e)}i&&a.append(L(`div`,{class:`b`,part:`bubble`},this.#r())),this.queued&&a.append(L(`span`,{class:`queued-tag`,part:`queued`},r(`clock`,{size:11}),`queued`));let s=L(`div`,{class:`msg user`,part:`message`},a);this.#e.replaceChildren(s)}});var mr=`
1538
+ `),wi={image:`image`,text:`file-text`,file:`file`};function Ti(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}F(`slicc-user-message`,class extends HTMLElement{static observedAttributes=[`text`,`queued`,`timestamp`];#e;#t=null;#n=[];constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ci]}connectedCallback(){this.#a()}attributeChangedCallback(){this.isConnected&&this.#a()}get text(){return this.getAttribute(`text`)}set text(e){e==null?this.removeAttribute(`text`):this.setAttribute(`text`,e)}get queued(){return this.hasAttribute(`queued`)}set queued(e){this.toggleAttribute(`queued`,e)}setBodyHtml(e){this.#t=e,this.#a()}setAttachments(e){this.#n=e.slice(),this.#a()}#r(){if(this.#t!=null)return this.ownerDocument.createRange().createContextualFragment(this.#t);let e=this.text;return e==null?I(`slot`):this.ownerDocument.createTextNode(e)}#i(e){let t=e.kind??`file`,n=I(`span`,{class:`attachment-chip__visual`});if(t===`image`&&e.src){let t=I(`img`,{src:e.src,alt:e.name||`Attached image`});t.addEventListener(`click`,n=>{n.stopPropagation(),Si.show(e.src,t)}),n.append(t)}else n.append(i(wi[t],{size:16}));let r=e.size==null?e.mime:`${e.mime||`file`} · ${Ti(e.size)}`,a=I(`span`,{class:`attachment-chip__body`},I(`span`,{class:`attachment-chip__name`},e.name),r?I(`span`,{class:`attachment-chip__meta`},r):null);return I(`div`,{class:`attachment-chip attachment-chip--${t}`},n,a)}#a(){let e=this.#n.length>0,t=this.text!=null||this.#t!=null,n=this.childNodes.length>0,r=t||n||!e,a=I(`div`,{class:`stack`,part:`stack`}),o=this.getAttribute(`timestamp`);if(o&&a.append(I(`span`,{class:`ts`,part:`timestamp`},o)),e){let e=I(`div`,{class:`attachments`,part:`attachments`});for(let t of this.#n)e.append(this.#i(t));a.append(e)}r&&a.append(I(`div`,{class:`b`,part:`bubble`},this.#r())),this.queued&&a.append(I(`span`,{class:`queued-tag`,part:`queued`},i(`clock`,{size:11}),`queued`));let s=I(`div`,{class:`msg user`,part:`message`},a);this.#e.replaceChildren(s)}});var Ei=`
1537
1539
  slicc-composer {
1538
1540
  flex: 0 0 auto;
1539
1541
  display: block;
@@ -1887,7 +1889,7 @@ slicc-composer .slicc-composer__ptt.is-picking {
1887
1889
  animation-name: none;
1888
1890
  }
1889
1891
  }
1890
- `,hr=`slicc-composer-style`;function gr(e){if(e.getElementById(hr))return;let t=e.createElement(`style`);t.id=hr,t.textContent=mr,(e.head??e.documentElement).appendChild(t)}var _r=1e3,vr=60,yr=1e4,br=45e3,xr=1500;function Sr(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>i(n),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e instanceof Error?e:Error(String(e)))})})}var Cr=`slicc-composer:mic-device`;function wr(){try{return typeof localStorage>`u`?null:localStorage.getItem(Cr)}catch{return null}}function Tr(e){try{if(typeof localStorage>`u`)return;e?localStorage.setItem(Cr,e):localStorage.removeItem(Cr)}catch{}}function Er(e){return e==null||!Number.isFinite(e)?``:e<60?`~${Math.max(1,Math.round(e))}s`:`~${Math.floor(e/60)}m ${Math.round(e%60)}s`}F(`slicc-composer`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=!1;#n=null;#r=`idle`;#i=!1;#a=0;#o=null;#s=null;#c=!1;#l=null;#u=null;#d=null;#f=`unknown`;#p=wr();#m=null;#h=null;#g=null;#_=null;#v=null;#y=null;#b=null;#x=null;#S=null;#C=null;#w=null;#T=[];connectedCallback(){gr(this.ownerDocument),this.#E(),this.addEventListener(`pointerdown`,this.#D)}disconnectedCallback(){this.removeEventListener(`pointerdown`,this.#D),this.#l?.cancel(),this.#l=null,this.#N(),this.#i=!1,this.#o=null,this.#a++,this.#V(),this.#z(),this.#h&&clearTimeout(this.#h),this.#h=null,this.#B(),this.#q(),this.#ne()}attributeChangedCallback(){}get open(){return this.hasAttribute(`open`)}set open(e){e?this.setAttribute(`open`,``):this.removeAttribute(`open`)}get speech(){return this.#d??=_(),this.#d}set speech(e){this.#d=e,this.#f=`unknown`}get device(){return this.#p}set device(e){this.#p=e,Tr(e)}get inner(){return this.#E(),this.#e}append(...e){this.#E(),this.#e.append(...e)}#E(){if(this.#t)return;this.#t=!0;let e=this.querySelector(`:scope > .slicc-composer__inner`);if(e instanceof HTMLElement){this.#e=e;return}let t=Array.from(this.childNodes);this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`slicc-composer__inner`,this.#e.setAttribute(`part`,`inner`);for(let e of t)this.#e.appendChild(e);this.appendChild(this.#e)}#D=e=>{if(!this.hasAttribute(`ptt`)||!e.isPrimary||this.#i||e.button!==0||this.#r===`finalizing`||this.#r===`picking`)return;let t=e.target?.closest?.(`textarea`);if(!(t instanceof HTMLTextAreaElement)||!this.contains(t)||t.value!==``)return;this.#i=!0,this.#a++,this.#o=t,this.#s=e.pointerId;try{this.setPointerCapture(e.pointerId)}catch{}let n=this.ownerDocument;n.addEventListener(`pointerup`,this.#P),this.addEventListener(`pointercancel`,this.#F),n.addEventListener(`selectionchange`,this.#k);let r=this.#a;this.#g=setTimeout(()=>{this.#z(),this.#A(this.speech,r)},400)};toggleHandsFree(){return this.#i?(this.#c&&this.#I(!0),!1):this.#O()}#O(){if(!this.hasAttribute(`ptt`)||this.#r===`finalizing`||this.#r===`picking`)return!1;let e=this.querySelector(`textarea`);return!(e instanceof HTMLTextAreaElement)||e.value!==``?!1:(this.#i=!0,this.#c=!0,this.#a++,this.#o=e,this.#A(this.speech,this.#a),!0)}#k=()=>{if(!this.#g)return;let e=this.ownerDocument.getSelection();!e||e.isCollapsed||e.toString()===``||(this.#i=!1,this.#a++,this.#o=null,this.#z(),this.#V(),this.#B())};async#A(e,t){let n=await Promise.race([e.permission().then(e=>(this.#f=e,e)),new Promise(e=>setTimeout(()=>e(`pending`),vr))]);if(!(t!==this.#a||!this.#i)){if(n===`granted`){this.#M(e,t);return}if(n===`denied`){this.#Y(`denied`);return}this.#Y(`enable`),this.#h=setTimeout(()=>{this.#h=null,this.#j(e,t)},_r),n===`pending`&&e.permission().then(n=>{this.#f=n,!(t!==this.#a||!this.#i||this.#r!==`enable`)&&(n===`granted`?(this.#R(),this.#M(e,t)):n===`denied`&&(this.#R(),this.#Y(`denied`)))})}}#j(e,t){t!==this.#a||!this.#i||this.#r!==`enable`||(this.#y=null,this.#Y(`prompting`),Sr(e.requestPermission(),yr,Error(`Microphone didn't respond. Check your mic, then hold again.`)).then(n=>{this.#f=n?`granted`:`denied`,n&&e.warmup(),t===this.#a&&(n&&this.#i?this.#M(e,t):n?this.#ne():this.#i?this.#Y(`denied`):this.#ne())}).catch(e=>{this.#f=`denied`,t===this.#a&&(this.#i?(this.#y=e instanceof Error?e.message:String(e),this.#Y(`denied`)):this.#ne())}))}#M(e,t){this.#r=`recording`,this.#Y(`recording`),e.warmup(),this.#_?.(),this.#_=e.onStatus(e=>{this.#v=e,this.#ee()});let n=e.microphones();n.then(e=>{t===this.#a&&(this.#p??(this.#m=p(e)),f(e)&&this.#te(e))}).catch(()=>{});let r=(this.#p==null?Sr(n,xr,Error(`microphone enumeration timed out`)).then(e=>p(e)).catch(()=>null):Promise.resolve(this.#p)).then(n=>e.start({deviceId:n??void 0,onPartial:e=>{t===this.#a&&this.#$(e)},onError:e=>{t===this.#a&&this.#$(e,!0)}}));this.#u=r,r.then(e=>{if(this.#u===r){if(this.#u=null,t!==this.#a||this.#r!==`recording`){e.cancel();return}this.#l=e}}).catch(e=>{this.#u===r&&(this.#u=null,t===this.#a&&this.#$(e instanceof Error?e.message:String(e),!0))})}#N(){let e=this.#u;this.#u=null,e!==null&&e.then(e=>e.cancel(),()=>{})}#P=e=>{if(!this.#i||this.#s!=null&&e.pointerId!==this.#s)return;let t=this.#C,n=!1;if(this.#r===`recording`&&t&&!t.hidden){if(e.composedPath().includes(t))n=!0;else{let r=this.ownerDocument.elementFromPoint(e.clientX,e.clientY);n=r!=null&&t.contains(r)}}if(n){this.#i=!1,this.#V(),this.#B(),this.#l?.cancel(),this.#l=null,this.#N(),this.#o=null,this.#H();return}this.#I(!0)};#F=e=>{(this.#s==null||e.pointerId===this.#s)&&this.#I(!1)};#I(e){if(!this.#i)return;switch(this.#i=!1,this.#c=!1,this.#z(),this.#V(),this.#B(),this.#r){case`enable`:this.#R(),this.#o=null,this.#ne();return;case`prompting`:this.#o=null;return;case`denied`:this.#o=null,this.#ne();return;case`recording`:break;default:this.#o=null,this.#ne();return}let t=this.#l;this.#l=null;let n=this.#u;if(this.#u=null,!e){t?.cancel(),n!==null&&n.then(e=>e.cancel(),()=>{}),this.#o=null,this.#ne();return}if(!t&&n===null){this.#o=null,this.#ne();return}this.#r=`finalizing`,this.#$(`Transcribing…`);let r=this.#a;Sr((t?Promise.resolve(t):n).then(e=>e.stop()),br,Error(`finalize timed out`)).then(e=>{r===this.#a&&(this.#ne(),this.#L(e))}).catch(()=>{r===this.#a&&(this.#ne(),this.#o=null)})}#L(e){let t=this.#o;if(this.#o=null,!t)return;let n=e.trim();if(!n){t.focus();return}t.value=t.value?/\s$/.test(t.value)?t.value+n:`${t.value} ${n}`:n,t.dispatchEvent(new Event(`input`,{bubbles:!0})),t.focus();let r=t.closest(`slicc-input-card`);r&&typeof r.submit==`function`?r.submit(`dictation`):t.dispatchEvent(new CustomEvent(`submit`,{bubbles:!0,composed:!0,detail:{value:t.value,source:`dictation`}}))}#R(){this.#h&&clearTimeout(this.#h),this.#h=null}#z(){this.#g&&clearTimeout(this.#g),this.#g=null,this.ownerDocument.removeEventListener(`selectionchange`,this.#k)}#B(){this.ownerDocument.removeEventListener(`pointerup`,this.#P),this.removeEventListener(`pointercancel`,this.#F)}#V(){let e=this.#s;if(this.#s=null,e!=null)try{this.releasePointerCapture(e)}catch{}}#H(){this.#r=`picking`,this.#Q(`picking`),this.#b&&(this.#b.textContent=`Choose a microphone`),this.#x&&(this.#x.hidden=!0),this.#U();let e=this.ownerDocument;e.addEventListener(`pointerdown`,this.#G,!0),e.addEventListener(`keydown`,this.#K,!0)}#U(){let e=this.#C;if(!e||this.#w)return;let t=L(`div`,{class:`slicc-composer__ptt-device-menu`,role:`menu`}),n=null,i=this.#p??this.#m;for(let e of this.#T){let a=e.deviceId===i,o=L(`button`,{type:`button`,class:`slicc-composer__ptt-device-item`,role:`menuitemradio`,"aria-checked":a?`true`:`false`,"data-device-id":e.deviceId},e.label,L(`span`,{class:`tick`},r(`check`,{size:14})));o.addEventListener(`click`,()=>{this.device=e.deviceId,this.#J()}),(a||!n)&&(n=o),t.appendChild(o)}this.#w=t,e.appendChild(t),this.#W(t,e),n?.focus()}#W(e,t){let n=t.getBoundingClientRect(),r=(window.innerHeight||document.documentElement.clientHeight)-n.bottom-6-8,i=n.top-6-8,a=e.offsetHeight>r&&i>r;e.classList.toggle(`slicc-composer__ptt-device-menu--up`,a);let o=Math.max(a?i:r,0);e.style.maxHeight=`${Math.min(320,o)}px`}#G=e=>{this.#C&&e.composedPath().includes(this.#C)||this.#J()};#K=e=>{e.key===`Escape`&&(e.stopPropagation(),this.#J())};#q(){let e=this.ownerDocument;e.removeEventListener(`pointerdown`,this.#G,!0),e.removeEventListener(`keydown`,this.#K,!0)}#J(){this.#q(),this.#ne()}#Y(e){switch(this.#r=e,this.#n||(this.#n=L(`div`,{class:`slicc-composer__ptt`,"data-ptt":!0,role:`button`}),this.appendChild(this.#n)),this.#Q(e),e){case`enable`:{let e=this.#c?`Enabling push to talk`:`Hold to enable push to talk`;this.#X(r(`mic`,{size:28}),e,this.#Z(`Requesting microphone access when the bar fills`)),this.#n.setAttribute(`aria-label`,e);break}case`prompting`:this.#X(r(`mic`,{size:28}),`Allow microphone access in the browser prompt`,this.#Z(`Waiting for permission…`)),this.#n.setAttribute(`aria-label`,`Waiting for microphone permission`);break;case`denied`:{let e=this.#y?`Microphone unavailable`:`Microphone access is blocked`,t=this.#y??`Enable the microphone for this site in your browser settings, then hold again.`;this.#X(r(`mic-off`,{size:28}),e,L(`div`,{class:`slicc-composer__ptt-load-text`},t)),this.#n.setAttribute(`aria-label`,e);break}case`recording`:{this.#C=L(`div`,{class:`slicc-composer__ptt-device`,hidden:!0}),this.#x=L(`div`,{class:`slicc-composer__ptt-caption`,"aria-live":`polite`,hidden:!0}),this.#S=L(`div`,{class:`slicc-composer__ptt-status`,hidden:!0});let e=L(`div`,{class:`slicc-composer__ptt-microw`},L(`div`,{class:`slicc-composer__ptt-mic`},r(`mic`,{size:28})),this.#C),t=this.#c?`Listening — press again to send`:`Listening — release to send`;this.#b=L(`div`,{class:`slicc-composer__ptt-label`},t),this.#n.replaceChildren(e,this.#b,this.#x,this.#S),this.#n.setAttribute(`aria-label`,t),this.#ee();break}}}#X(e,t,n){this.#n&&(this.#b=L(`div`,{class:`slicc-composer__ptt-label`},t),this.#x=null,this.#S=null,this.#C=null,this.#w=null,this.#T=[],this.#n.replaceChildren(L(`div`,{class:`slicc-composer__ptt-mic`},e),this.#b,n))}#Z(e){return L(`div`,{class:`slicc-composer__ptt-load`},L(`span`,{class:`slicc-composer__ptt-load-text`},e),L(`div`,{class:`slicc-composer__ptt-bar`},L(`div`,{class:`slicc-composer__ptt-bar-fill`})))}#Q(e){this.#n&&(this.#n.classList.remove(`is-enable`,`is-prompting`,`is-denied`,`is-recording`,`is-finalizing`,`is-picking`),e!==`idle`&&this.#n.classList.add(`is-${e}`))}#$(e,t=!1){let n=this.#x;if(!n)return;let r=e.trim().split(/\s+/).filter(Boolean);if(r.length===0){n.hidden=!0;return}n.textContent=r.slice(-8).join(` `),n.classList.toggle(`is-error`,t),n.hidden=!1}#ee(){let e=this.#S;if(!e)return;let t=this.#v;if(t?.state===`downloading`){if(t.download){let n=Er(t.download.etaSeconds??null);e.textContent=n?`Better speech recognition downloading · ready in ${n}`:`Better speech recognition downloading…`}else e.textContent=`Preparing enhanced speech…`;e.classList.remove(`is-error`),e.hidden=!1}else t?.state===`ready`&&t.engine===`enhanced`?(e.textContent=`Enhanced speech recognition`,e.classList.remove(`is-error`),e.hidden=!1):t?.state===`unavailable`&&t.message?(e.textContent=t.message,e.classList.add(`is-error`),e.hidden=!1):(e.classList.remove(`is-error`),e.hidden=!0)}#te(e){let t=this.#C;if(!t)return;this.#T=e;let n=L(`button`,{type:`button`,class:`slicc-composer__ptt-device-btn`,"aria-label":`Choose a microphone`,"aria-haspopup":`menu`,title:`Choose a microphone`},r(`chevron-down`,{size:12}));n.addEventListener(`pointerdown`,e=>e.stopPropagation()),t.replaceChildren(n),t.hidden=!1}#ne(){this.#_?.(),this.#_=null,this.#n?.remove(),this.#n=null,this.#b=null,this.#x=null,this.#S=null,this.#C=null,this.#w=null,this.#T=[],this.#m=null,this.#y=null,this.#r=`idle`}});var Dr=`
1892
+ `,Di=`slicc-composer-style`;function Oi(e){if(e.getElementById(Di))return;let t=e.createElement(`style`);t.id=Di,t.textContent=Ei,(e.head??e.documentElement).appendChild(t)}var ki=1e3,Ai=60,ji=1e4,Mi=45e3,Ni=1500;function Pi(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>i(n),t);e.then(e=>{clearTimeout(a),r(e)},e=>{clearTimeout(a),i(e instanceof Error?e:Error(String(e)))})})}var Fi=`slicc-composer:mic-device`;function Ii(){try{return typeof localStorage>`u`?null:localStorage.getItem(Fi)}catch{return null}}function Li(e){try{if(typeof localStorage>`u`)return;e?localStorage.setItem(Fi,e):localStorage.removeItem(Fi)}catch{}}function Ri(e){return e==null||!Number.isFinite(e)?``:e<60?`~${Math.max(1,Math.round(e))}s`:`~${Math.floor(e/60)}m ${Math.round(e%60)}s`}F(`slicc-composer`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=!1;#n=null;#r=`idle`;#i=!1;#a=0;#o=null;#s=null;#c=!1;#l=null;#u=null;#d=null;#f=`unknown`;#p=Ii();#m=null;#h=null;#g=null;#_=null;#v=null;#y=null;#b=null;#x=null;#S=null;#C=null;#w=null;#T=[];connectedCallback(){Oi(this.ownerDocument),this.#E(),this.addEventListener(`pointerdown`,this.#D)}disconnectedCallback(){this.removeEventListener(`pointerdown`,this.#D),this.#l?.cancel(),this.#l=null,this.#N(),this.#i=!1,this.#o=null,this.#a++,this.#V(),this.#z(),this.#h&&clearTimeout(this.#h),this.#h=null,this.#B(),this.#q(),this.#ne()}attributeChangedCallback(){}get open(){return this.hasAttribute(`open`)}set open(e){e?this.setAttribute(`open`,``):this.removeAttribute(`open`)}get speech(){return this.#d??=$e(),this.#d}set speech(e){this.#d=e,this.#f=`unknown`}get device(){return this.#p}set device(e){this.#p=e,Li(e)}get inner(){return this.#E(),this.#e}append(...e){this.#E(),this.#e.append(...e)}#E(){if(this.#t)return;this.#t=!0;let e=this.querySelector(`:scope > .slicc-composer__inner`);if(e instanceof HTMLElement){this.#e=e;return}let t=Array.from(this.childNodes);this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`slicc-composer__inner`,this.#e.setAttribute(`part`,`inner`);for(let e of t)this.#e.appendChild(e);this.appendChild(this.#e)}#D=e=>{if(!this.hasAttribute(`ptt`)||!e.isPrimary||this.#i||e.button!==0||this.#r===`finalizing`||this.#r===`picking`)return;let t=e.target?.closest?.(`textarea`);if(!(t instanceof HTMLTextAreaElement)||!this.contains(t)||t.value!==``)return;this.#i=!0,this.#a++,this.#o=t,this.#s=e.pointerId;try{this.setPointerCapture(e.pointerId)}catch{}let n=this.ownerDocument;n.addEventListener(`pointerup`,this.#P),this.addEventListener(`pointercancel`,this.#F),n.addEventListener(`selectionchange`,this.#k);let r=this.#a;this.#g=setTimeout(()=>{this.#z(),this.#A(this.speech,r)},400)};toggleHandsFree(){return this.#i?(this.#c&&this.#I(!0),!1):this.#O()}#O(){if(!this.hasAttribute(`ptt`)||this.#r===`finalizing`||this.#r===`picking`)return!1;let e=this.querySelector(`textarea`);return!(e instanceof HTMLTextAreaElement)||e.value!==``?!1:(this.#i=!0,this.#c=!0,this.#a++,this.#o=e,this.#A(this.speech,this.#a),!0)}#k=()=>{if(!this.#g)return;let e=this.ownerDocument.getSelection();!e||e.isCollapsed||e.toString()===``||(this.#i=!1,this.#a++,this.#o=null,this.#z(),this.#V(),this.#B())};async#A(e,t){let n=await Promise.race([e.permission().then(e=>(this.#f=e,e)),new Promise(e=>setTimeout(()=>e(`pending`),Ai))]);if(!(t!==this.#a||!this.#i)){if(n===`granted`){this.#M(e,t);return}if(n===`denied`){this.#Y(`denied`);return}this.#Y(`enable`),this.#h=setTimeout(()=>{this.#h=null,this.#j(e,t)},ki),n===`pending`&&e.permission().then(n=>{this.#f=n,!(t!==this.#a||!this.#i||this.#r!==`enable`)&&(n===`granted`?(this.#R(),this.#M(e,t)):n===`denied`&&(this.#R(),this.#Y(`denied`)))})}}#j(e,t){t!==this.#a||!this.#i||this.#r!==`enable`||(this.#y=null,this.#Y(`prompting`),Pi(e.requestPermission(),ji,Error(`Microphone didn't respond. Check your mic, then hold again.`)).then(n=>{this.#f=n?`granted`:`denied`,n&&e.warmup(),t===this.#a&&(n&&this.#i?this.#M(e,t):n?this.#ne():this.#i?this.#Y(`denied`):this.#ne())}).catch(e=>{this.#f=`denied`,t===this.#a&&(this.#i?(this.#y=e instanceof Error?e.message:String(e),this.#Y(`denied`)):this.#ne())}))}#M(e,t){this.#r=`recording`,this.#Y(`recording`),e.warmup(),this.#_?.(),this.#_=e.onStatus(e=>{this.#v=e,this.#ee()});let n=e.microphones();n.then(e=>{t===this.#a&&(this.#p??(this.#m=Ye(e)),Je(e)&&this.#te(e))}).catch(()=>{});let r=(this.#p==null?Pi(n,Ni,Error(`microphone enumeration timed out`)).then(e=>Ye(e)).catch(()=>null):Promise.resolve(this.#p)).then(n=>e.start({deviceId:n??void 0,onPartial:e=>{t===this.#a&&this.#$(e)},onError:e=>{t===this.#a&&this.#$(e,!0)}}));this.#u=r,r.then(e=>{if(this.#u===r){if(this.#u=null,t!==this.#a||this.#r!==`recording`){e.cancel();return}this.#l=e}}).catch(e=>{this.#u===r&&(this.#u=null,t===this.#a&&this.#$(e instanceof Error?e.message:String(e),!0))})}#N(){let e=this.#u;this.#u=null,e!==null&&e.then(e=>e.cancel(),()=>{})}#P=e=>{if(!this.#i||this.#s!=null&&e.pointerId!==this.#s)return;let t=this.#C,n=!1;if(this.#r===`recording`&&t&&!t.hidden){if(e.composedPath().includes(t))n=!0;else{let r=this.ownerDocument.elementFromPoint(e.clientX,e.clientY);n=r!=null&&t.contains(r)}}if(n){this.#i=!1,this.#V(),this.#B(),this.#l?.cancel(),this.#l=null,this.#N(),this.#o=null,this.#H();return}this.#I(!0)};#F=e=>{(this.#s==null||e.pointerId===this.#s)&&this.#I(!1)};#I(e){if(!this.#i)return;switch(this.#i=!1,this.#c=!1,this.#z(),this.#V(),this.#B(),this.#r){case`enable`:this.#R(),this.#o=null,this.#ne();return;case`prompting`:this.#o=null;return;case`denied`:this.#o=null,this.#ne();return;case`recording`:break;default:this.#o=null,this.#ne();return}let t=this.#l;this.#l=null;let n=this.#u;if(this.#u=null,!e){t?.cancel(),n!==null&&n.then(e=>e.cancel(),()=>{}),this.#o=null,this.#ne();return}if(!t&&n===null){this.#o=null,this.#ne();return}this.#r=`finalizing`,this.#$(`Transcribing…`);let r=this.#a;Pi((t?Promise.resolve(t):n).then(e=>e.stop()),Mi,Error(`finalize timed out`)).then(e=>{r===this.#a&&(this.#ne(),this.#L(e))}).catch(()=>{r===this.#a&&(this.#ne(),this.#o=null)})}#L(e){let t=this.#o;if(this.#o=null,!t)return;let n=e.trim();if(!n){t.focus();return}t.value=t.value?/\s$/.test(t.value)?t.value+n:`${t.value} ${n}`:n,t.dispatchEvent(new Event(`input`,{bubbles:!0})),t.focus();let r=t.closest(`slicc-input-card`);r&&typeof r.submit==`function`?r.submit(`dictation`):t.dispatchEvent(new CustomEvent(`submit`,{bubbles:!0,composed:!0,detail:{value:t.value,source:`dictation`}}))}#R(){this.#h&&clearTimeout(this.#h),this.#h=null}#z(){this.#g&&clearTimeout(this.#g),this.#g=null,this.ownerDocument.removeEventListener(`selectionchange`,this.#k)}#B(){this.ownerDocument.removeEventListener(`pointerup`,this.#P),this.removeEventListener(`pointercancel`,this.#F)}#V(){let e=this.#s;if(this.#s=null,e!=null)try{this.releasePointerCapture(e)}catch{}}#H(){this.#r=`picking`,this.#Q(`picking`),this.#b&&(this.#b.textContent=`Choose a microphone`),this.#x&&(this.#x.hidden=!0),this.#U();let e=this.ownerDocument;e.addEventListener(`pointerdown`,this.#G,!0),e.addEventListener(`keydown`,this.#K,!0)}#U(){let e=this.#C;if(!e||this.#w)return;let t=I(`div`,{class:`slicc-composer__ptt-device-menu`,role:`menu`}),n=null,r=this.#p??this.#m;for(let e of this.#T){let a=e.deviceId===r,o=I(`button`,{type:`button`,class:`slicc-composer__ptt-device-item`,role:`menuitemradio`,"aria-checked":a?`true`:`false`,"data-device-id":e.deviceId},e.label,I(`span`,{class:`tick`},i(`check`,{size:14})));o.addEventListener(`click`,()=>{this.device=e.deviceId,this.#J()}),(a||!n)&&(n=o),t.appendChild(o)}this.#w=t,e.appendChild(t),this.#W(t,e),n?.focus()}#W(e,t){let n=t.getBoundingClientRect(),r=(window.innerHeight||document.documentElement.clientHeight)-n.bottom-6-8,i=n.top-6-8,a=e.offsetHeight>r&&i>r;e.classList.toggle(`slicc-composer__ptt-device-menu--up`,a);let o=Math.max(a?i:r,0);e.style.maxHeight=`${Math.min(320,o)}px`}#G=e=>{this.#C&&e.composedPath().includes(this.#C)||this.#J()};#K=e=>{e.key===`Escape`&&(e.stopPropagation(),this.#J())};#q(){let e=this.ownerDocument;e.removeEventListener(`pointerdown`,this.#G,!0),e.removeEventListener(`keydown`,this.#K,!0)}#J(){this.#q(),this.#ne()}#Y(e){switch(this.#r=e,this.#n||(this.#n=I(`div`,{class:`slicc-composer__ptt`,"data-ptt":!0,role:`button`}),this.appendChild(this.#n)),this.#Q(e),e){case`enable`:{let e=this.#c?`Enabling push to talk`:`Hold to enable push to talk`;this.#X(i(`mic`,{size:28}),e,this.#Z(`Requesting microphone access when the bar fills`)),this.#n.setAttribute(`aria-label`,e);break}case`prompting`:this.#X(i(`mic`,{size:28}),`Allow microphone access in the browser prompt`,this.#Z(`Waiting for permission…`)),this.#n.setAttribute(`aria-label`,`Waiting for microphone permission`);break;case`denied`:{let e=this.#y?`Microphone unavailable`:`Microphone access is blocked`,t=this.#y??`Enable the microphone for this site in your browser settings, then hold again.`;this.#X(i(`mic-off`,{size:28}),e,I(`div`,{class:`slicc-composer__ptt-load-text`},t)),this.#n.setAttribute(`aria-label`,e);break}case`recording`:{this.#C=I(`div`,{class:`slicc-composer__ptt-device`,hidden:!0}),this.#x=I(`div`,{class:`slicc-composer__ptt-caption`,"aria-live":`polite`,hidden:!0}),this.#S=I(`div`,{class:`slicc-composer__ptt-status`,hidden:!0});let e=I(`div`,{class:`slicc-composer__ptt-microw`},I(`div`,{class:`slicc-composer__ptt-mic`},i(`mic`,{size:28})),this.#C),t=this.#c?`Listening — press again to send`:`Listening — release to send`;this.#b=I(`div`,{class:`slicc-composer__ptt-label`},t),this.#n.replaceChildren(e,this.#b,this.#x,this.#S),this.#n.setAttribute(`aria-label`,t),this.#ee();break}}}#X(e,t,n){this.#n&&(this.#b=I(`div`,{class:`slicc-composer__ptt-label`},t),this.#x=null,this.#S=null,this.#C=null,this.#w=null,this.#T=[],this.#n.replaceChildren(I(`div`,{class:`slicc-composer__ptt-mic`},e),this.#b,n))}#Z(e){return I(`div`,{class:`slicc-composer__ptt-load`},I(`span`,{class:`slicc-composer__ptt-load-text`},e),I(`div`,{class:`slicc-composer__ptt-bar`},I(`div`,{class:`slicc-composer__ptt-bar-fill`})))}#Q(e){this.#n&&(this.#n.classList.remove(`is-enable`,`is-prompting`,`is-denied`,`is-recording`,`is-finalizing`,`is-picking`),e!==`idle`&&this.#n.classList.add(`is-${e}`))}#$(e,t=!1){let n=this.#x;if(!n)return;let r=e.trim().split(/\s+/).filter(Boolean);if(r.length===0){n.hidden=!0;return}n.textContent=r.slice(-8).join(` `),n.classList.toggle(`is-error`,t),n.hidden=!1}#ee(){let e=this.#S;if(!e)return;let t=this.#v;if(t?.state===`downloading`){if(t.download){let n=Ri(t.download.etaSeconds??null);e.textContent=n?`Better speech recognition downloading · ready in ${n}`:`Better speech recognition downloading…`}else e.textContent=`Preparing enhanced speech…`;e.classList.remove(`is-error`),e.hidden=!1}else t?.state===`ready`&&t.engine===`enhanced`?(e.textContent=`Enhanced speech recognition`,e.classList.remove(`is-error`),e.hidden=!1):t?.state===`unavailable`&&t.message?(e.textContent=t.message,e.classList.add(`is-error`),e.hidden=!1):(e.classList.remove(`is-error`),e.hidden=!0)}#te(e){let t=this.#C;if(!t)return;this.#T=e;let n=I(`button`,{type:`button`,class:`slicc-composer__ptt-device-btn`,"aria-label":`Choose a microphone`,"aria-haspopup":`menu`,title:`Choose a microphone`},i(`chevron-down`,{size:12}));n.addEventListener(`pointerdown`,e=>e.stopPropagation()),t.replaceChildren(n),t.hidden=!1}#ne(){this.#_?.(),this.#_=null,this.#n?.remove(),this.#n=null,this.#b=null,this.#x=null,this.#S=null,this.#C=null,this.#w=null,this.#T=[],this.#m=null,this.#y=null,this.#r=`idle`}});var zi=`
1891
1893
  slicc-composer-capture {
1892
1894
  position: relative;
1893
1895
  display: block;
@@ -2091,7 +2093,7 @@ slicc-composer-capture .slicc-capture__timer {
2091
2093
  slicc-composer-capture .slicc-capture__timer[hidden] {
2092
2094
  display: none;
2093
2095
  }
2094
- `,Or=`slicc-composer-capture-style`;function kr(e){if(e.getElementById(Or))return;let t=e.createElement(`style`);t.id=Or,t.textContent=Dr,(e.head??e.documentElement).appendChild(t)}var Ar=`photo`,jr=[`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`,`video/webm`];function Mr(){if(typeof MediaRecorder>`u`)return`video/webm`;for(let e of jr)if(MediaRecorder.isTypeSupported?.(e))return e;return`video/webm`}function Nr(e){let t=Math.max(0,Math.floor(e/1e3)),n=Math.floor(t/60),r=t%60;return`${n}:${String(r).padStart(2,`0`)}`}F(`slicc-composer-capture`,class extends HTMLElement{static observedAttributes=[`mode`,`preferred-device`,`preferred-audio-device`];media=null;recorderFactory=null;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=!1;#u=null;#d=null;#f=null;#p=[];#m=0;#h=null;#g=null;#_=e=>{e.key===`Escape`&&this.#g&&this.#L()};connectedCallback(){kr(this.ownerDocument),this.#H(),this.ownerDocument.addEventListener(`keydown`,this.#_)}disconnectedCallback(){if(this.ownerDocument.removeEventListener(`keydown`,this.#_),this.#N(),this.#P(),this.#I(),this.#g){let e=this.#g;this.#g=null,e(null)}}attributeChangedCallback(e,t,n){e===`mode`&&this.#l&&this.#z(n??Ar)}get mode(){return this.getAttribute(`mode`)===`video`?`video`:`photo`}set mode(e){e==null?this.removeAttribute(`mode`):this.setAttribute(`mode`,e)}get preferredDevice(){return this.getAttribute(`preferred-device`)}set preferredDevice(e){e==null?this.removeAttribute(`preferred-device`):this.setAttribute(`preferred-device`,e)}get preferredAudioDevice(){return this.getAttribute(`preferred-audio-device`)}set preferredAudioDevice(e){e==null?this.removeAttribute(`preferred-audio-device`):this.setAttribute(`preferred-audio-device`,e)}#v(){return this.media??(typeof navigator<`u`?navigator.mediaDevices:null)??null}#y(e,t){return this.recorderFactory?this.recorderFactory(e,t):new MediaRecorder(e,t)}async open(e){this.#H(),e&&(this.mode=e),this.#z(this.mode);let t=this.#v();if(!t)return null;try{this.#u=await this.#b(t,this.preferredDevice,this.preferredAudioDevice,this.mode)}catch{return null}return this.#S(),this.#C(this.#u),await this.#w(t),await this.#T(t),this.hidden=!1,new Promise(e=>{this.#g=e})}async#b(e,t,n,r){let i=await this.#x(e,n,r);if(t)try{return await e.getUserMedia({video:{deviceId:{exact:t}},audio:i})}catch{}try{return await e.getUserMedia({video:!0,audio:i})}catch(t){if(i===!1)throw t;return this.#r.textContent=`Microphone unavailable — recording video only.`,e.getUserMedia({video:!0,audio:!1})}}async#x(e,t,n){if(n!==`video`)return!1;if(t)return{deviceId:{exact:t}};let r=[];try{r=(await e.enumerateDevices()).filter(e=>e.kind===`audioinput`)}catch{r=[]}let i=p(d(r,`microphone`));return!i||{deviceId:{exact:i}}}#S(){this.#d=this.#u?.getAudioTracks()[0]??null}#C(e){this.#e.srcObject=e,this.#e.muted=!0,this.#e.play?.()?.catch(()=>void 0);let t=e.getVideoTracks()[0]?.getSettings?.().facingMode;this.#e.toggleAttribute(`data-mirrored`,t!==`environment`)}async#w(e){let t=[];try{t=(await e.enumerateDevices()).filter(e=>e.kind===`videoinput`)}catch{t=[]}let n=d(t,`camera`);this.#t.replaceChildren(...n.map(e=>L(`option`,{value:e.deviceId},e.label)));let r=this.#u?.getVideoTracks()[0]?.getSettings?.().deviceId;r&&(this.#t.value=r),this.#t.toggleAttribute(`hidden`,!f(n))}async#T(e){let t=[];try{t=(await e.enumerateDevices()).filter(e=>e.kind===`audioinput`)}catch{t=[]}let n=d(t,`microphone`);this.#n.replaceChildren(...n.map(e=>L(`option`,{value:e.deviceId},e.label)));let r=this.#d?.getSettings?.().deviceId??this.preferredAudioDevice??p(n);r&&n.some(e=>e.deviceId===r)&&(this.#n.value=r),this.#E()}#E(){if(!this.#n)return;let e=this.#n.options.length>=2,t=this.mode===`video`&&e;this.#n.toggleAttribute(`hidden`,!t)}async#D(e){let t=this.#v();if(t){this.#r.textContent=``;try{let n=await t.getUserMedia({video:{deviceId:{exact:e}}});this.#F();let r=n;if(this.mode===`video`&&this.#d&&this.#d.readyState===`live`)r.addTrack(this.#d);else if(this.mode===`video`)try{let e=await t.getUserMedia({audio:await this.#x(t,this.preferredAudioDevice,`video`)});for(let t of e.getAudioTracks())this.#d=t,r.addTrack(t)}catch{this.#r.textContent=`Microphone unavailable — recording video only.`}this.#u=r,this.#C(r),this.dispatchEvent(new CustomEvent(`slicc-capture-device-change`,{detail:{deviceId:e,kind:`camera`},bubbles:!0,composed:!0}))}catch{this.#r.textContent=`Could not switch camera — keeping the current one.`}}}async#O(e){let t=this.#v();if(!t||!this.#u)return;this.#r.textContent=``;let n;try{n=await t.getUserMedia({audio:{deviceId:{exact:e}}})}catch{this.#r.textContent=`Could not switch microphone — keeping the current one.`;return}let r=n.getAudioTracks()[0];if(!r){this.#r.textContent=`Could not switch microphone — keeping the current one.`;return}if(this.#d){try{this.#u.removeTrack(this.#d)}catch{}this.#d.stop()}this.#u.addTrack(r),this.#d=r,this.preferredAudioDevice=e,this.dispatchEvent(new CustomEvent(`slicc-capture-device-change`,{detail:{deviceId:e,kind:`microphone`},bubbles:!0,composed:!0}))}#k(){let e=this.ownerDocument.createElement(`canvas`);if(e.width=this.#e.videoWidth,e.height=this.#e.videoHeight,e.width===0||e.height===0){this.#r.textContent=`No frame yet — give the camera a moment.`;return}e.getContext(`2d`)?.drawImage(this.#e,0,0);let t=`image/png`,n=e.toDataURL(t);this.#R({kind:`image`,dataUrl:n,mimeType:t,width:e.width,height:e.height})}#A(){if(!this.#u||this.#f)return;this.#p=[];let e=Mr(),t;try{t=this.#y(this.#u,{mimeType:e})}catch{this.#r.textContent=`Recording is not supported in this browser.`;return}t.ondataavailable=e=>{e.data&&e.data.size>0&&this.#p.push(e.data)},t.onstop=()=>this.#M(e);try{t.start()}catch{this.#r.textContent=`Could not start recording.`;return}this.#f=t,this.#m=Date.now(),this.#n.disabled=!0,this.#t.disabled=!0,this.#i.hidden=!1,this.#i.textContent=Nr(0),this.#h=setInterval(()=>{this.#i.textContent=Nr(Date.now()-this.#m)},250),this.#B()}#j(){let e=this.#f;if(e)try{e.state!==`inactive`&&e.stop()}catch{this.#M(e.mimeType||`video/webm`)}}#M(e){let t=this.#m?Date.now()-this.#m:0;this.#N();let n=this.#f?.mimeType||e||`video/webm`,r=new Blob(this.#p,{type:n});this.#p=[],this.#f=null,this.#n&&(this.#n.disabled=!1),this.#t&&(this.#t.disabled=!1);let i=typeof URL<`u`?URL.createObjectURL(r):void 0;this.#R({kind:`video`,blob:r,dataUrl:i,mimeType:n,width:this.#e.videoWidth,height:this.#e.videoHeight,durationMs:t})}#N(){this.#h!=null&&(clearInterval(this.#h),this.#h=null),this.#i.hidden=!0,this.#i.textContent=``,this.#m=0}#P(){let e=this.#f;if(this.#f=null,this.#p=[],this.#n&&(this.#n.disabled=!1),this.#t&&(this.#t.disabled=!1),e){e.ondataavailable=null,e.onstop=null;try{e.state!==`inactive`&&e.stop()}catch{}}}#F(){for(let e of this.#u?.getVideoTracks()??[])e.stop()}#I(){for(let e of this.#u?.getTracks()??[])e.stop();this.#u=null,this.#d=null,this.#e&&(this.#e.srcObject=null)}#L(){this.dispatchEvent(new CustomEvent(`slicc-capture-cancel`,{bubbles:!0,composed:!0})),this.#R(null)}#R(e){e&&this.dispatchEvent(new CustomEvent(`slicc-capture`,{detail:e,bubbles:!0,composed:!0})),this.#N(),this.#P(),this.#I();let t=this.#g;this.#g=null,this.hidden=!0,t?.(e)}#z(e){let t=e===`video`;this.#s.setAttribute(`aria-pressed`,String(!t)),this.#c.setAttribute(`aria-pressed`,String(t)),this.#r.textContent=t?`Mic on — video will record audio.`:``,this.#B(),this.#E()}#B(){let e=this.#a;if(e.replaceChildren(),this.mode===`photo`){e.className=`slicc-capture__btn slicc-capture__btn--primary`,e.setAttribute(`part`,`snap`),e.setAttribute(`aria-label`,`Snap photo`),e.append(r(`camera`,{size:14}),document.createTextNode(` Snap`));return}this.#f?(e.className=`slicc-capture__btn slicc-capture__btn--rec`,e.setAttribute(`part`,`stop`),e.setAttribute(`aria-label`,`Stop recording`),e.append(L(`span`,{class:`slicc-capture__square`}),document.createTextNode(` Stop`))):(e.className=`slicc-capture__btn slicc-capture__btn--rec`,e.setAttribute(`part`,`record`),e.setAttribute(`aria-label`,`Start recording`),e.append(L(`span`,{class:`slicc-capture__dot`}),document.createTextNode(` Record`)))}#V(){if(this.mode===`photo`){this.#k();return}this.#f?this.#j():this.#A()}#H(){if(this.#l)return;this.#l=!0,this.#e=L(`video`,{class:`slicc-capture__video`,part:`video`,autoplay:!0,muted:!0,playsinline:!0}),this.#e.muted=!0,this.#r=L(`div`,{class:`slicc-capture__status`}),this.#t=L(`select`,{class:`slicc-capture__select`,part:`picker`,"aria-label":`Camera`,hidden:!0}),this.#t.addEventListener(`change`,()=>{this.#D(this.#t.value)}),this.#n=L(`select`,{class:`slicc-capture__select`,part:`audio-picker`,"aria-label":`Microphone`,hidden:!0}),this.#n.addEventListener(`change`,()=>{this.#O(this.#n.value)}),this.#s=L(`button`,{type:`button`,class:`slicc-capture__mode-btn`,part:`mode`,"aria-pressed":`true`,"aria-label":`Photo`},r(`image`,{size:14})),this.#s.addEventListener(`click`,()=>{this.mode=`photo`}),this.#c=L(`button`,{type:`button`,class:`slicc-capture__mode-btn`,part:`mode`,"aria-pressed":`false`,"aria-label":`Video`},r(`video`,{size:14})),this.#c.addEventListener(`click`,()=>{this.#U()});let e=L(`div`,{class:`slicc-capture__mode`,role:`group`,"aria-label":`Capture mode`},this.#s,this.#c);this.#i=L(`span`,{class:`slicc-capture__timer`,hidden:!0}),this.#o=L(`button`,{type:`button`,class:`slicc-capture__close`,part:`cancel`,"aria-label":`Cancel`},r(`x`,{size:14})),this.#o.addEventListener(`click`,()=>this.#L()),this.#a=L(`button`,{type:`button`,class:`slicc-capture__btn slicc-capture__btn--primary`,part:`snap`,"aria-label":`Snap photo`}),this.#a.addEventListener(`click`,()=>this.#V());let t=L(`div`,{class:`slicc-capture__bar`},this.#t,this.#n,L(`span`,{class:`slicc-capture__spacer`}),this.#i,this.#a,e);this.replaceChildren(this.#e,this.#r,t,this.#o),this.#z(this.mode)}async#U(){if(this.mode=`video`,!this.#u||this.#u.getAudioTracks().length>0)return;let e=this.#v();if(!e)return;let t=this.#u.getVideoTracks()[0]?.getSettings?.().deviceId??this.preferredDevice??null,n=await this.#x(e,this.preferredAudioDevice,`video`);try{let r=t?await e.getUserMedia({video:{deviceId:{exact:t}},audio:n}):await e.getUserMedia({video:!0,audio:n});this.#I(),this.#u=r,this.#S(),this.#C(r),await this.#T(e)}catch{this.#r.textContent=`Microphone unavailable — recording video only.`}}});var Pr=[`off`,`low`,`medium`,`high`,`xhigh`,`max`],Fr={off:{label:`Secco`,gloss:`bone dry — not a drop (ask any prosecco)`,tint:`var(--txt-3)`},low:{label:`Goccia`,gloss:`one drop — bar-speak: «macchiato, solo una goccia»`,tint:`color-mix(in srgb, var(--violet) 20%, var(--txt-3))`},medium:{label:`Bagnato`,gloss:`properly wet`,tint:`color-mix(in srgb, var(--violet) 40%, var(--txt-3))`},high:{label:`Affogato`,gloss:`drowned — the menu item itself`,tint:`color-mix(in srgb, var(--violet) 60%, var(--txt-3))`},xhigh:{label:`Inzuppato`,gloss:`soaked through, biscotto-style`,tint:`color-mix(in srgb, var(--violet) 80%, var(--txt-3))`},max:{label:`Sprofondato`,gloss:`sunk to the bottom`,tint:`var(--violet)`}},Ir=`max`,Lr=`Opus 4.8`,Rr=[{name:`Opus 4.8`,provider:`Anthropic`,id:`claude-opus-4-8`},{name:`Sonnet 4.6`,provider:`Anthropic`,id:`claude-sonnet-4-6`},{name:`Haiku 4.5`,provider:`Anthropic`,id:`claude-haiku-4-5`}],zr=8;function Br(e){let t=typeof e==`string`?{name:e}:e;return{...t,name:t.name,id:t.id??t.name}}var Vr=`max`,Hr=13;function Ur(){return r(`sparkles`,{size:Hr,class:`ic`,part:`model-icon`})}function Wr(){return r(`brain`,{size:Hr,class:`brain`,part:`brain`})}function Gr(){return r(`chevron-down`,{size:11,part:`caret`})}var Kr=`http://www.w3.org/2000/svg`;function qr(){let e=document.createElementNS(Kr,`svg`);e.setAttribute(`width`,`0`),e.setAttribute(`height`,`0`),e.setAttribute(`aria-hidden`,`true`),e.setAttribute(`style`,`position:absolute`);let t=document.createElementNS(Kr,`defs`),n=document.createElementNS(Kr,`linearGradient`);n.setAttribute(`id`,`meta-rainbow`),n.setAttribute(`x1`,`0`),n.setAttribute(`y1`,`0`),n.setAttribute(`x2`,`1`),n.setAttribute(`y2`,`0`);for(let[e,t]of[[`0%`,`#f43f5e`],[`28%`,`#f59e0b`],[`64%`,`#06b6d4`],[`100%`,`#8b5cf6`]]){let r=document.createElementNS(Kr,`stop`);r.setAttribute(`offset`,e),r.setAttribute(`stop-color`,t),n.appendChild(r)}return t.appendChild(n),e.appendChild(t),e}var Jr=R(`
2096
+ `,Bi=`slicc-composer-capture-style`;function Vi(e){if(e.getElementById(Bi))return;let t=e.createElement(`style`);t.id=Bi,t.textContent=zi,(e.head??e.documentElement).appendChild(t)}var Hi=`photo`,Ui=[`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`,`video/webm`];function Wi(){if(typeof MediaRecorder>`u`)return`video/webm`;for(let e of Ui)if(MediaRecorder.isTypeSupported?.(e))return e;return`video/webm`}function Gi(e){let t=Math.max(0,Math.floor(e/1e3)),n=Math.floor(t/60),r=t%60;return`${n}:${String(r).padStart(2,`0`)}`}F(`slicc-composer-capture`,class extends HTMLElement{static observedAttributes=[`mode`,`preferred-device`,`preferred-audio-device`];media=null;recorderFactory=null;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=!1;#u=null;#d=null;#f=null;#p=[];#m=0;#h=null;#g=null;#_=e=>{e.key===`Escape`&&this.#g&&this.#L()};connectedCallback(){Vi(this.ownerDocument),this.#H(),this.ownerDocument.addEventListener(`keydown`,this.#_)}disconnectedCallback(){if(this.ownerDocument.removeEventListener(`keydown`,this.#_),this.#N(),this.#P(),this.#I(),this.#g){let e=this.#g;this.#g=null,e(null)}}attributeChangedCallback(e,t,n){e===`mode`&&this.#l&&this.#z(n??Hi)}get mode(){return this.getAttribute(`mode`)===`video`?`video`:`photo`}set mode(e){e==null?this.removeAttribute(`mode`):this.setAttribute(`mode`,e)}get preferredDevice(){return this.getAttribute(`preferred-device`)}set preferredDevice(e){e==null?this.removeAttribute(`preferred-device`):this.setAttribute(`preferred-device`,e)}get preferredAudioDevice(){return this.getAttribute(`preferred-audio-device`)}set preferredAudioDevice(e){e==null?this.removeAttribute(`preferred-audio-device`):this.setAttribute(`preferred-audio-device`,e)}#v(){return this.media??(typeof navigator<`u`?navigator.mediaDevices:null)??null}#y(e,t){return this.recorderFactory?this.recorderFactory(e,t):new MediaRecorder(e,t)}async open(e){this.#H(),e&&(this.mode=e),this.#z(this.mode);let t=this.#v();if(!t)return null;try{this.#u=await this.#b(t,this.preferredDevice,this.preferredAudioDevice,this.mode)}catch{return null}return this.#S(),this.#C(this.#u),await this.#w(t),await this.#T(t),this.hidden=!1,new Promise(e=>{this.#g=e})}async#b(e,t,n,r){let i=await this.#x(e,n,r);if(t)try{return await e.getUserMedia({video:{deviceId:{exact:t}},audio:i})}catch{}try{return await e.getUserMedia({video:!0,audio:i})}catch(t){if(i===!1)throw t;return this.#r.textContent=`Microphone unavailable — recording video only.`,e.getUserMedia({video:!0,audio:!1})}}async#x(e,t,n){if(n!==`video`)return!1;if(t)return{deviceId:{exact:t}};let r=[];try{r=(await e.enumerateDevices()).filter(e=>e.kind===`audioinput`)}catch{r=[]}let i=Ye(qe(r,`microphone`));return!i||{deviceId:{exact:i}}}#S(){this.#d=this.#u?.getAudioTracks()[0]??null}#C(e){this.#e.srcObject=e,this.#e.muted=!0,this.#e.play?.()?.catch(()=>void 0);let t=e.getVideoTracks()[0]?.getSettings?.().facingMode;this.#e.toggleAttribute(`data-mirrored`,t!==`environment`)}async#w(e){let t=[];try{t=(await e.enumerateDevices()).filter(e=>e.kind===`videoinput`)}catch{t=[]}let n=qe(t,`camera`);this.#t.replaceChildren(...n.map(e=>I(`option`,{value:e.deviceId},e.label)));let r=this.#u?.getVideoTracks()[0]?.getSettings?.().deviceId;r&&(this.#t.value=r),this.#t.toggleAttribute(`hidden`,!Je(n))}async#T(e){let t=[];try{t=(await e.enumerateDevices()).filter(e=>e.kind===`audioinput`)}catch{t=[]}let n=qe(t,`microphone`);this.#n.replaceChildren(...n.map(e=>I(`option`,{value:e.deviceId},e.label)));let r=this.#d?.getSettings?.().deviceId??this.preferredAudioDevice??Ye(n);r&&n.some(e=>e.deviceId===r)&&(this.#n.value=r),this.#E()}#E(){if(!this.#n)return;let e=this.#n.options.length>=2,t=this.mode===`video`&&e;this.#n.toggleAttribute(`hidden`,!t)}async#D(e){let t=this.#v();if(t){this.#r.textContent=``;try{let n=await t.getUserMedia({video:{deviceId:{exact:e}}});this.#F();let r=n;if(this.mode===`video`&&this.#d&&this.#d.readyState===`live`)r.addTrack(this.#d);else if(this.mode===`video`)try{let e=await t.getUserMedia({audio:await this.#x(t,this.preferredAudioDevice,`video`)});for(let t of e.getAudioTracks())this.#d=t,r.addTrack(t)}catch{this.#r.textContent=`Microphone unavailable — recording video only.`}this.#u=r,this.#C(r),this.dispatchEvent(new CustomEvent(`slicc-capture-device-change`,{detail:{deviceId:e,kind:`camera`},bubbles:!0,composed:!0}))}catch{this.#r.textContent=`Could not switch camera — keeping the current one.`}}}async#O(e){let t=this.#v();if(!t||!this.#u)return;this.#r.textContent=``;let n;try{n=await t.getUserMedia({audio:{deviceId:{exact:e}}})}catch{this.#r.textContent=`Could not switch microphone — keeping the current one.`;return}let r=n.getAudioTracks()[0];if(!r){this.#r.textContent=`Could not switch microphone — keeping the current one.`;return}if(this.#d){try{this.#u.removeTrack(this.#d)}catch{}this.#d.stop()}this.#u.addTrack(r),this.#d=r,this.preferredAudioDevice=e,this.dispatchEvent(new CustomEvent(`slicc-capture-device-change`,{detail:{deviceId:e,kind:`microphone`},bubbles:!0,composed:!0}))}#k(){let e=this.ownerDocument.createElement(`canvas`);if(e.width=this.#e.videoWidth,e.height=this.#e.videoHeight,e.width===0||e.height===0){this.#r.textContent=`No frame yet — give the camera a moment.`;return}e.getContext(`2d`)?.drawImage(this.#e,0,0);let t=`image/png`,n=e.toDataURL(t);this.#R({kind:`image`,dataUrl:n,mimeType:t,width:e.width,height:e.height})}#A(){if(!this.#u||this.#f)return;this.#p=[];let e=Wi(),t;try{t=this.#y(this.#u,{mimeType:e})}catch{this.#r.textContent=`Recording is not supported in this browser.`;return}t.ondataavailable=e=>{e.data&&e.data.size>0&&this.#p.push(e.data)},t.onstop=()=>this.#M(e);try{t.start()}catch{this.#r.textContent=`Could not start recording.`;return}this.#f=t,this.#m=Date.now(),this.#n.disabled=!0,this.#t.disabled=!0,this.#i.hidden=!1,this.#i.textContent=Gi(0),this.#h=setInterval(()=>{this.#i.textContent=Gi(Date.now()-this.#m)},250),this.#B()}#j(){let e=this.#f;if(e)try{e.state!==`inactive`&&e.stop()}catch{this.#M(e.mimeType||`video/webm`)}}#M(e){let t=this.#m?Date.now()-this.#m:0;this.#N();let n=this.#f?.mimeType||e||`video/webm`,r=new Blob(this.#p,{type:n});this.#p=[],this.#f=null,this.#n&&(this.#n.disabled=!1),this.#t&&(this.#t.disabled=!1);let i=typeof URL<`u`?URL.createObjectURL(r):void 0;this.#R({kind:`video`,blob:r,dataUrl:i,mimeType:n,width:this.#e.videoWidth,height:this.#e.videoHeight,durationMs:t})}#N(){this.#h!=null&&(clearInterval(this.#h),this.#h=null),this.#i.hidden=!0,this.#i.textContent=``,this.#m=0}#P(){let e=this.#f;if(this.#f=null,this.#p=[],this.#n&&(this.#n.disabled=!1),this.#t&&(this.#t.disabled=!1),e){e.ondataavailable=null,e.onstop=null;try{e.state!==`inactive`&&e.stop()}catch{}}}#F(){for(let e of this.#u?.getVideoTracks()??[])e.stop()}#I(){for(let e of this.#u?.getTracks()??[])e.stop();this.#u=null,this.#d=null,this.#e&&(this.#e.srcObject=null)}#L(){this.dispatchEvent(new CustomEvent(`slicc-capture-cancel`,{bubbles:!0,composed:!0})),this.#R(null)}#R(e){e&&this.dispatchEvent(new CustomEvent(`slicc-capture`,{detail:e,bubbles:!0,composed:!0})),this.#N(),this.#P(),this.#I();let t=this.#g;this.#g=null,this.hidden=!0,t?.(e)}#z(e){let t=e===`video`;this.#s.setAttribute(`aria-pressed`,String(!t)),this.#c.setAttribute(`aria-pressed`,String(t)),this.#r.textContent=t?`Mic on — video will record audio.`:``,this.#B(),this.#E()}#B(){let e=this.#a;if(e.replaceChildren(),this.mode===`photo`){e.className=`slicc-capture__btn slicc-capture__btn--primary`,e.setAttribute(`part`,`snap`),e.setAttribute(`aria-label`,`Snap photo`),e.append(i(`camera`,{size:14}),document.createTextNode(` Snap`));return}this.#f?(e.className=`slicc-capture__btn slicc-capture__btn--rec`,e.setAttribute(`part`,`stop`),e.setAttribute(`aria-label`,`Stop recording`),e.append(I(`span`,{class:`slicc-capture__square`}),document.createTextNode(` Stop`))):(e.className=`slicc-capture__btn slicc-capture__btn--rec`,e.setAttribute(`part`,`record`),e.setAttribute(`aria-label`,`Start recording`),e.append(I(`span`,{class:`slicc-capture__dot`}),document.createTextNode(` Record`)))}#V(){if(this.mode===`photo`){this.#k();return}this.#f?this.#j():this.#A()}#H(){if(this.#l)return;this.#l=!0,this.#e=I(`video`,{class:`slicc-capture__video`,part:`video`,autoplay:!0,muted:!0,playsinline:!0}),this.#e.muted=!0,this.#r=I(`div`,{class:`slicc-capture__status`}),this.#t=I(`select`,{class:`slicc-capture__select`,part:`picker`,"aria-label":`Camera`,hidden:!0}),this.#t.addEventListener(`change`,()=>{this.#D(this.#t.value)}),this.#n=I(`select`,{class:`slicc-capture__select`,part:`audio-picker`,"aria-label":`Microphone`,hidden:!0}),this.#n.addEventListener(`change`,()=>{this.#O(this.#n.value)}),this.#s=I(`button`,{type:`button`,class:`slicc-capture__mode-btn`,part:`mode`,"aria-pressed":`true`,"aria-label":`Photo`},i(`image`,{size:14})),this.#s.addEventListener(`click`,()=>{this.mode=`photo`}),this.#c=I(`button`,{type:`button`,class:`slicc-capture__mode-btn`,part:`mode`,"aria-pressed":`false`,"aria-label":`Video`},i(`video`,{size:14})),this.#c.addEventListener(`click`,()=>{this.#U()});let e=I(`div`,{class:`slicc-capture__mode`,role:`group`,"aria-label":`Capture mode`},this.#s,this.#c);this.#i=I(`span`,{class:`slicc-capture__timer`,hidden:!0}),this.#o=I(`button`,{type:`button`,class:`slicc-capture__close`,part:`cancel`,"aria-label":`Cancel`},i(`x`,{size:14})),this.#o.addEventListener(`click`,()=>this.#L()),this.#a=I(`button`,{type:`button`,class:`slicc-capture__btn slicc-capture__btn--primary`,part:`snap`,"aria-label":`Snap photo`}),this.#a.addEventListener(`click`,()=>this.#V());let t=I(`div`,{class:`slicc-capture__bar`},this.#t,this.#n,I(`span`,{class:`slicc-capture__spacer`}),this.#i,this.#a,e);this.replaceChildren(this.#e,this.#r,t,this.#o),this.#z(this.mode)}async#U(){if(this.mode=`video`,!this.#u||this.#u.getAudioTracks().length>0)return;let e=this.#v();if(!e)return;let t=this.#u.getVideoTracks()[0]?.getSettings?.().deviceId??this.preferredDevice??null,n=await this.#x(e,this.preferredAudioDevice,`video`);try{let r=t?await e.getUserMedia({video:{deviceId:{exact:t}},audio:n}):await e.getUserMedia({video:!0,audio:n});this.#I(),this.#u=r,this.#S(),this.#C(r),await this.#T(e)}catch{this.#r.textContent=`Microphone unavailable — recording video only.`}}});var Ki=[`off`,`low`,`medium`,`high`,`xhigh`,`max`],qi={off:{label:`Secco`,gloss:`bone dry — not a drop (ask any prosecco)`,tint:`var(--txt-3)`},low:{label:`Goccia`,gloss:`one drop — bar-speak: «macchiato, solo una goccia»`,tint:`color-mix(in srgb, var(--violet) 20%, var(--txt-3))`},medium:{label:`Bagnato`,gloss:`properly wet`,tint:`color-mix(in srgb, var(--violet) 40%, var(--txt-3))`},high:{label:`Affogato`,gloss:`drowned — the menu item itself`,tint:`color-mix(in srgb, var(--violet) 60%, var(--txt-3))`},xhigh:{label:`Inzuppato`,gloss:`soaked through, biscotto-style`,tint:`color-mix(in srgb, var(--violet) 80%, var(--txt-3))`},max:{label:`Sprofondato`,gloss:`sunk to the bottom`,tint:`var(--violet)`}},Ji=`max`,Yi=`Opus 4.8`,Xi=[{name:`Opus 4.8`,provider:`Anthropic`,id:`claude-opus-4-8`},{name:`Sonnet 4.6`,provider:`Anthropic`,id:`claude-sonnet-4-6`},{name:`Haiku 4.5`,provider:`Anthropic`,id:`claude-haiku-4-5`}],Zi=8;function Qi(e){let t=typeof e==`string`?{name:e}:e;return{...t,name:t.name,id:t.id??t.name}}var $i=`max`,ea=13;function ta(){return i(`sparkles`,{size:ea,class:`ic`,part:`model-icon`})}function na(){return i(`brain`,{size:ea,class:`brain`,part:`brain`})}function ra(){return i(`chevron-down`,{size:11,part:`caret`})}var ia=`http://www.w3.org/2000/svg`;function aa(){let e=document.createElementNS(ia,`svg`);e.setAttribute(`width`,`0`),e.setAttribute(`height`,`0`),e.setAttribute(`aria-hidden`,`true`),e.setAttribute(`style`,`position:absolute`);let t=document.createElementNS(ia,`defs`),n=document.createElementNS(ia,`linearGradient`);n.setAttribute(`id`,`meta-rainbow`),n.setAttribute(`x1`,`0`),n.setAttribute(`y1`,`0`),n.setAttribute(`x2`,`1`),n.setAttribute(`y2`,`0`);for(let[e,t]of[[`0%`,`#f43f5e`],[`28%`,`#f59e0b`],[`64%`,`#06b6d4`],[`100%`,`#8b5cf6`]]){let r=document.createElementNS(ia,`stop`);r.setAttribute(`offset`,e),r.setAttribute(`stop-color`,t),n.appendChild(r)}return t.appendChild(n),e.appendChild(t),e}var oa=L(`
2095
2097
  :host{display:block;}
2096
2098
  *{box-sizing:border-box;}
2097
2099
  .meta{display:flex;align-items:center;gap:8px;max-width:680px;margin:11px auto 0;font-family:var(--ui);}
@@ -2148,7 +2150,7 @@ slicc-composer-capture .slicc-capture__timer[hidden] {
2148
2150
  /* Narrow / extension-sidebar: the ⏎ / ⇧⏎ keyboard hints don't fit (and touch
2149
2151
  users have no keyboard) — drop them regardless of the narrow-chat attribute. */
2150
2152
  @media (max-width: 560px){ .hint{display:none;} }
2151
- `);F(`slicc-composer-meta`,class extends HTMLElement{static observedAttributes=[`model`,`thinking`,`narrow`,`no-thinking`];#e;#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=null;#c=null;#l=null;#u=!1;#d=!1;#f=``;#p=e=>{let t=e.composedPath();this.#u&&!t.includes(this)&&this.#C(),this.#d&&!t.includes(this)&&this.#O()};#m=e=>{e.key===`Escape`&&(this.#u&&(e.stopPropagation(),this.#C(),this.#r?.focus()),this.#d&&(e.stopPropagation(),this.#O(),this.#i?.focus()))};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Jr]}connectedCallback(){this.#_()}disconnectedCallback(){this.#b(),document.removeEventListener(`mousedown`,this.#p),document.removeEventListener(`keydown`,this.#m,!0)}attributeChangedCallback(){this.isConnected&&this.#_()}get model(){return this.getAttribute(`model`)??Lr}set model(e){e==null?this.removeAttribute(`model`):this.setAttribute(`model`,e)}get selectedModelId(){return this.#l}set selectedModelId(e){this.#l=e??null}get models(){return(this.#c??[...Rr]).map(e=>typeof e==`string`?e:{...e})}set models(e){this.#c=Array.isArray(e)?e.slice():null,this.isConnected&&this.#_()}get#h(){return(this.#c??Rr).map(Br)}get#g(){return this.#c!==null&&this.#c.length===0}get thinking(){let e=this.getAttribute(`thinking`);return Pr.includes(e??``)?e:Vr}set thinking(e){this.setAttribute(`thinking`,e)}get narrow(){return this.hasAttribute(`narrow`)}set narrow(e){this.toggleAttribute(`narrow`,e)}get noThinking(){return this.hasAttribute(`no-thinking`)}set noThinking(e){this.toggleAttribute(`no-thinking`,e)}get accented(){return this.thinking===Ir}#_(){this.#b();let e=this.model,t=this.thinking,n=Fr[t],i=t===Ir,a=this.#g,o=a?L(`button`,{type:`button`,class:`ctl msel`,part:`model`},Ur(),` `,`Add AI`):L(`button`,{type:`button`,class:`ctl msel`,part:`model`,"aria-haspopup":`menu`,"aria-expanded":`false`},Ur(),` `,e,` `,L(`span`,{class:`cx`},Gr())),s=L(`div`,{class:`menu`,part:`model-menu`,role:`menu`});if(this.#h.length>zr){let e=L(`input`,{class:`msearch`,part:`model-search`,type:`text`,placeholder:`Search models…`,"aria-label":`Search models`});e.value=this.#f,e.addEventListener(`input`,()=>{this.#f=e.value,this.#v()}),e.addEventListener(`click`,e=>e.stopPropagation()),s.append(e)}this.#s=L(`div`,{class:`mlist`,role:`none`}),s.append(this.#s);let c=L(`div`,{class:`mwrap`},o,s),l=!this.noThinking&&!a,u=null;if(l){let e=Wr();e.style.color=n.tint;let a=L(`button`,{type:`button`,class:`ctl tsel${i?` x`:``}`,part:`thinking`,title:n.gloss,"aria-haspopup":`menu`,"aria-expanded":`false`},e,` `,L(`span`,{class:`tlabel`},n.label),` `,L(`span`,{class:`cx`},Gr()));a.style.setProperty(`--tw`,n.tint);let o=L(`div`,{class:`menu tmenu`,part:`thinking-menu`,role:`menu`}),s=L(`div`,{class:`mlist`,role:`none`});for(let e of Pr){let n=Fr[e],i=L(`button`,{type:`button`,class:`mitem titem`,role:`menuitemradio`,"data-level":e,"aria-selected":e===t?`true`:`false`,title:n.gloss},L(`span`,{class:`mname`},n.label),L(`span`,{class:`tick`},r(`check`,{size:14})));i.addEventListener(`click`,()=>this.#A(e)),s.append(i)}o.append(s),u=L(`div`,{class:`twrap`},a,o)}let d=L(`slot`,{name:`hint`});I(d,[L(`span`,{class:`kbd`},`⏎`),` send `,L(`span`,{class:`sep`}),` `,L(`span`,{class:`kbd`},`⇧⏎`),` newline`]);let f=L(`div`,{class:`meta`,part:`meta`},c,u??!1,L(`div`,{class:`mspacer`}),L(`span`,{class:`hint`,part:`hint`},d));this.#e.replaceChildren(qr(),f),this.#a=c,this.#o=this.#e.querySelector(`.twrap`),this.#r=this.#e.querySelector(`.msel`),this.#i=this.#e.querySelector(`.tsel`),this.#v(),this.#w(),this.#k(),this.#y()}#v(){let e=this.#s;if(!e)return;let t=this.#f.trim().toLowerCase(),n=this.#h.filter(e=>!t||`${e.name} ${e.provider??``}`.toLowerCase().includes(t)),i=this.model,a=[];for(let e of n){let t=this.#l?e.id===this.#l:e.name===i,n=L(`button`,{type:`button`,class:`mitem`,role:`menuitemradio`,"data-id":e.id,"aria-selected":t?`true`:`false`},L(`span`,{class:`mname`},e.name),e.provider?L(`span`,{class:`mprov`},e.provider):!1,L(`span`,{class:`tick`},r(`check`,{size:14})));n.addEventListener(`click`,()=>this.#T(e.id)),a.push(n)}e.replaceChildren(...a.length?a:[L(`div`,{class:`mempty`},`No models match.`)])}#y(){this.#r&&(this.#t=e=>{if(e.stopPropagation(),this.#g){this.dispatchEvent(new CustomEvent(`add-ai`,{bubbles:!0,composed:!0}));return}this.#x()},this.#r.addEventListener(`click`,this.#t)),this.#i&&(this.#n=()=>this.#E(),this.#i.addEventListener(`click`,this.#n))}#b(){this.#r&&this.#t&&this.#r.removeEventListener(`click`,this.#t),this.#i&&this.#n&&this.#i.removeEventListener(`click`,this.#n),this.#t=null,this.#n=null,this.#r=null,this.#i=null,this.#a=null,this.#o=null,this.#s=null}get menuOpen(){return this.#u}openMenu(){this.#g||this.#S()}cycleModel(){if(this.#g)return;let e=this.#h;if(e.length===0)return;let t=this.#l?e.findIndex(e=>e.id===this.#l):-1;t<0&&(t=e.findIndex(e=>e.name===this.model));let n=e[(t+1)%e.length];n&&this.#T(n.id)}cycleThinking(){if(this.noThinking)return;let e=Pr[(Pr.indexOf(this.thinking)+1)%Pr.length];e&&this.#A(e)}#x(){this.#u?this.#C():this.#S()}#S(){if(this.#u)return;this.#O(),this.#u=!0,this.#f=``,this.#v(),this.#w();let e=this.#e.querySelector(`.msearch`);e&&(e.value=``,requestAnimationFrame(()=>e.focus())),document.addEventListener(`mousedown`,this.#p),document.addEventListener(`keydown`,this.#m,!0)}#C(){this.#u&&(this.#u=!1,this.#w(),this.#d||(document.removeEventListener(`mousedown`,this.#p),document.removeEventListener(`keydown`,this.#m,!0)))}#w(){this.#a?.classList.toggle(`open`,this.#u),this.#r?.setAttribute(`aria-expanded`,this.#u?`true`:`false`)}#T(e){let t=this.#h.find(t=>t.id===e)??{name:e,id:e,provider:void 0};this.#l=t.id,this.#C(),t.name!==this.model&&(this.model=t.name),this.dispatchEvent(new CustomEvent(`model-change`,{detail:{model:t.name,provider:t.provider,id:t.id},bubbles:!0,composed:!0}))}#E(){this.#d?this.#O():this.#D()}#D(){this.#d||(this.#C(),this.#d=!0,this.#k(),document.addEventListener(`mousedown`,this.#p),document.addEventListener(`keydown`,this.#m,!0))}#O(){this.#d&&(this.#d=!1,this.#k(),this.#u||(document.removeEventListener(`mousedown`,this.#p),document.removeEventListener(`keydown`,this.#m,!0)))}#k(){this.#o?.classList.toggle(`open`,this.#d),this.#i?.setAttribute(`aria-expanded`,this.#d?`true`:`false`)}#A(e){this.#O(),this.thinking=e,this.dispatchEvent(new CustomEvent(`thinking-change`,{detail:{thinking:e,label:Fr[e].label,accented:e===Ir},bubbles:!0,composed:!0}))}});async function Yr(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}async function Xr(e,t={}){let n=(e??``).trim().toLowerCase();if(n===``)return null;let r=await Yr(n),i=t.size??80,a=t.fallback??`mp`;return`https://www.gravatar.com/avatar/${r}?s=${i}&d=${encodeURIComponent(a)}`}var Zr=R(`
2153
+ `);F(`slicc-composer-meta`,class extends HTMLElement{static observedAttributes=[`model`,`thinking`,`narrow`,`no-thinking`];#e;#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=null;#c=null;#l=null;#u=!1;#d=!1;#f=``;#p=e=>{let t=e.composedPath();this.#u&&!t.includes(this)&&this.#C(),this.#d&&!t.includes(this)&&this.#O()};#m=e=>{e.key===`Escape`&&(this.#u&&(e.stopPropagation(),this.#C(),this.#r?.focus()),this.#d&&(e.stopPropagation(),this.#O(),this.#i?.focus()))};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[oa]}connectedCallback(){this.#_()}disconnectedCallback(){this.#b(),document.removeEventListener(`mousedown`,this.#p),document.removeEventListener(`keydown`,this.#m,!0)}attributeChangedCallback(){this.isConnected&&this.#_()}get model(){return this.getAttribute(`model`)??Yi}set model(e){e==null?this.removeAttribute(`model`):this.setAttribute(`model`,e)}get selectedModelId(){return this.#l}set selectedModelId(e){this.#l=e??null}get models(){return(this.#c??[...Xi]).map(e=>typeof e==`string`?e:{...e})}set models(e){this.#c=Array.isArray(e)?e.slice():null,this.isConnected&&this.#_()}get#h(){return(this.#c??Xi).map(Qi)}get#g(){return this.#c!==null&&this.#c.length===0}get thinking(){let e=this.getAttribute(`thinking`);return Ki.includes(e??``)?e:$i}set thinking(e){this.setAttribute(`thinking`,e)}get narrow(){return this.hasAttribute(`narrow`)}set narrow(e){this.toggleAttribute(`narrow`,e)}get noThinking(){return this.hasAttribute(`no-thinking`)}set noThinking(e){this.toggleAttribute(`no-thinking`,e)}get accented(){return this.thinking===Ji}#_(){this.#b();let e=this.model,t=this.thinking,n=qi[t],r=t===Ji,a=this.#g,o=a?I(`button`,{type:`button`,class:`ctl msel`,part:`model`},ta(),` `,`Add AI`):I(`button`,{type:`button`,class:`ctl msel`,part:`model`,"aria-haspopup":`menu`,"aria-expanded":`false`},ta(),` `,e,` `,I(`span`,{class:`cx`},ra())),s=I(`div`,{class:`menu`,part:`model-menu`,role:`menu`});if(this.#h.length>Zi){let e=I(`input`,{class:`msearch`,part:`model-search`,type:`text`,placeholder:`Search models…`,"aria-label":`Search models`});e.value=this.#f,e.addEventListener(`input`,()=>{this.#f=e.value,this.#v()}),e.addEventListener(`click`,e=>e.stopPropagation()),s.append(e)}this.#s=I(`div`,{class:`mlist`,role:`none`}),s.append(this.#s);let c=I(`div`,{class:`mwrap`},o,s),l=!this.noThinking&&!a,u=null;if(l){let e=na();e.style.color=n.tint;let a=I(`button`,{type:`button`,class:`ctl tsel${r?` x`:``}`,part:`thinking`,title:n.gloss,"aria-haspopup":`menu`,"aria-expanded":`false`},e,` `,I(`span`,{class:`tlabel`},n.label),` `,I(`span`,{class:`cx`},ra()));a.style.setProperty(`--tw`,n.tint);let o=I(`div`,{class:`menu tmenu`,part:`thinking-menu`,role:`menu`}),s=I(`div`,{class:`mlist`,role:`none`});for(let e of Ki){let n=qi[e],r=I(`button`,{type:`button`,class:`mitem titem`,role:`menuitemradio`,"data-level":e,"aria-selected":e===t?`true`:`false`,title:n.gloss},I(`span`,{class:`mname`},n.label),I(`span`,{class:`tick`},i(`check`,{size:14})));r.addEventListener(`click`,()=>this.#A(e)),s.append(r)}o.append(s),u=I(`div`,{class:`twrap`},a,o)}let d=I(`slot`,{name:`hint`});Fn(d,[I(`span`,{class:`kbd`},`⏎`),` send `,I(`span`,{class:`sep`}),` `,I(`span`,{class:`kbd`},`⇧⏎`),` newline`]);let f=I(`div`,{class:`meta`,part:`meta`},c,u??!1,I(`div`,{class:`mspacer`}),I(`span`,{class:`hint`,part:`hint`},d));this.#e.replaceChildren(aa(),f),this.#a=c,this.#o=this.#e.querySelector(`.twrap`),this.#r=this.#e.querySelector(`.msel`),this.#i=this.#e.querySelector(`.tsel`),this.#v(),this.#w(),this.#k(),this.#y()}#v(){let e=this.#s;if(!e)return;let t=this.#f.trim().toLowerCase(),n=this.#h.filter(e=>!t||`${e.name} ${e.provider??``}`.toLowerCase().includes(t)),r=this.model,a=[];for(let e of n){let t=this.#l?e.id===this.#l:e.name===r,n=I(`button`,{type:`button`,class:`mitem`,role:`menuitemradio`,"data-id":e.id,"aria-selected":t?`true`:`false`},I(`span`,{class:`mname`},e.name),e.provider?I(`span`,{class:`mprov`},e.provider):!1,I(`span`,{class:`tick`},i(`check`,{size:14})));n.addEventListener(`click`,()=>this.#T(e.id)),a.push(n)}e.replaceChildren(...a.length?a:[I(`div`,{class:`mempty`},`No models match.`)])}#y(){this.#r&&(this.#t=e=>{if(e.stopPropagation(),this.#g){this.dispatchEvent(new CustomEvent(`add-ai`,{bubbles:!0,composed:!0}));return}this.#x()},this.#r.addEventListener(`click`,this.#t)),this.#i&&(this.#n=()=>this.#E(),this.#i.addEventListener(`click`,this.#n))}#b(){this.#r&&this.#t&&this.#r.removeEventListener(`click`,this.#t),this.#i&&this.#n&&this.#i.removeEventListener(`click`,this.#n),this.#t=null,this.#n=null,this.#r=null,this.#i=null,this.#a=null,this.#o=null,this.#s=null}get menuOpen(){return this.#u}openMenu(){this.#g||this.#S()}cycleModel(){if(this.#g)return;let e=this.#h;if(e.length===0)return;let t=this.#l?e.findIndex(e=>e.id===this.#l):-1;t<0&&(t=e.findIndex(e=>e.name===this.model));let n=e[(t+1)%e.length];n&&this.#T(n.id)}cycleThinking(){if(this.noThinking)return;let e=Ki[(Ki.indexOf(this.thinking)+1)%Ki.length];e&&this.#A(e)}#x(){this.#u?this.#C():this.#S()}#S(){if(this.#u)return;this.#O(),this.#u=!0,this.#f=``,this.#v(),this.#w();let e=this.#e.querySelector(`.msearch`);e&&(e.value=``,requestAnimationFrame(()=>e.focus())),document.addEventListener(`mousedown`,this.#p),document.addEventListener(`keydown`,this.#m,!0)}#C(){this.#u&&(this.#u=!1,this.#w(),this.#d||(document.removeEventListener(`mousedown`,this.#p),document.removeEventListener(`keydown`,this.#m,!0)))}#w(){this.#a?.classList.toggle(`open`,this.#u),this.#r?.setAttribute(`aria-expanded`,this.#u?`true`:`false`)}#T(e){let t=this.#h.find(t=>t.id===e)??{name:e,id:e,provider:void 0};this.#l=t.id,this.#C(),t.name!==this.model&&(this.model=t.name),this.dispatchEvent(new CustomEvent(`model-change`,{detail:{model:t.name,provider:t.provider,id:t.id},bubbles:!0,composed:!0}))}#E(){this.#d?this.#O():this.#D()}#D(){this.#d||(this.#C(),this.#d=!0,this.#k(),document.addEventListener(`mousedown`,this.#p),document.addEventListener(`keydown`,this.#m,!0))}#O(){this.#d&&(this.#d=!1,this.#k(),this.#u||(document.removeEventListener(`mousedown`,this.#p),document.removeEventListener(`keydown`,this.#m,!0)))}#k(){this.#o?.classList.toggle(`open`,this.#d),this.#i?.setAttribute(`aria-expanded`,this.#d?`true`:`false`)}#A(e){this.#O(),this.thinking=e,this.dispatchEvent(new CustomEvent(`thinking-change`,{detail:{thinking:e,label:qi[e].label,accented:e===Ji},bubbles:!0,composed:!0}))}});async function sa(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}async function ca(e,t={}){let n=(e??``).trim().toLowerCase();if(n===``)return null;let r=await sa(n),i=t.size??80,a=t.fallback??`mp`;return`https://www.gravatar.com/avatar/${r}?s=${i}&d=${encodeURIComponent(a)}`}var la=L(`
2152
2154
  :host { display: inline-flex; }
2153
2155
  :host([hidden]) { display: none; }
2154
2156
 
@@ -2351,7 +2353,7 @@ slicc-composer-capture .slicc-capture__timer[hidden] {
2351
2353
  }
2352
2354
  .glyph.is-press { transform: none; }
2353
2355
  }
2354
- `),Qr=18,$r=72,ei=`http://www.w3.org/2000/svg`,ti=15,ni=.25;function ri(e){let t=document.createElementNS(ei,`svg`);t.setAttribute(`width`,`36`),t.setAttribute(`height`,`36`),t.setAttribute(`viewBox`,`0 0 36 36`),t.setAttribute(`fill`,`none`),t.setAttribute(`aria-hidden`,`true`);let n=2*Math.PI*ti,r=e=>{let t=document.createElementNS(ei,`circle`);return t.setAttribute(`cx`,`18`),t.setAttribute(`cy`,`18`),t.setAttribute(`r`,String(ti)),t.setAttribute(`fill`,`none`),t.setAttribute(`stroke-width`,`2.5`),t.setAttribute(`stroke-linecap`,`round`),t.setAttribute(`class`,e),t};t.appendChild(r(`ring-track`));let i=r(`ring-arc`),a=e==null?ni:Math.max(0,Math.min(1,e));return i.setAttribute(`stroke-dasharray`,`${n*a} ${n}`),e!=null&&i.setAttribute(`transform`,`rotate(-90 18 18)`),t.appendChild(i),t}function ii(e){return e===`tool`?`tool`:`thinking`}function ai(e){if(e==null||e.trim()===``)return null;let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(1,t)):null}F(`slicc-send-button`,class extends HTMLElement{static observedAttributes=[`disabled`,`busy`,`phase`,`progress`,`email`,`src`,`label`];#e;#t=null;#n=0;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Zr]}connectedCallback(){this.#d()}attributeChangedCallback(){this.isConnected&&this.#d()}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){this.toggleAttribute(`disabled`,!!e)}get busy(){return this.hasAttribute(`busy`)}set busy(e){this.toggleAttribute(`busy`,!!e)}get phase(){return ii(this.getAttribute(`phase`))}set phase(e){this.setAttribute(`phase`,ii(e))}get progress(){return ai(this.getAttribute(`progress`))}set progress(e){e==null?this.removeAttribute(`progress`):this.setAttribute(`progress`,String(e))}get email(){return this.getAttribute(`email`)}set email(e){e==null?this.removeAttribute(`email`):this.setAttribute(`email`,e)}get src(){return this.getAttribute(`src`)}set src(e){e==null?this.removeAttribute(`src`):this.setAttribute(`src`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#r=()=>{if(!this.disabled){if(this.busy){this.dispatchEvent(new CustomEvent(`stop`,{bubbles:!0,composed:!0}));return}this.#l(),this.dispatchEvent(new CustomEvent(`send`,{bubbles:!0,composed:!0}))}};#i(){return this.#e.querySelector(`.glyph`)}#a=()=>{this.disabled||this.busy||this.#i()?.classList.add(`is-hover`)};#o=()=>{this.#i()?.classList.remove(`is-hover`,`is-press`)};#s=()=>{if(this.disabled||this.busy)return;let e=this.#i();e?.classList.add(`is-press`),e?.classList.remove(`is-hover`)};#c=()=>{this.#i()?.classList.remove(`is-press`)};#l(){let e=this.#e.querySelector(`.glyph`);e&&(e.classList.remove(`is-whoosh`),e.offsetWidth,e.classList.add(`is-whoosh`),e.addEventListener(`animationend`,()=>e.classList.remove(`is-whoosh`),{once:!0}))}#u(){let e=++this.#n;if(!this.#t)return;let t=t=>{if(e!==this.#n)return;let n=this.#t;if(n){if(n.querySelector(`.face`)?.remove(),t){let e=document.createElement(`img`);e.className=`face`,e.setAttribute(`part`,`face`),e.alt=``,e.src=t,n.prepend(e),n.classList.add(`has-face`)}else n.classList.remove(`has-face`)}},n=this.src;if(n){t(n);return}let r=this.email;if(!r||r.trim()===``){t(null);return}t(null),Xr(r,{size:$r}).then(t).catch(()=>t(null))}#d(){let e=this.busy,t=this.disabled,n=e&&this.phase===`tool`,i=this.label??(e?`Stop`:`Send`),a;if(n){let e=this.progress,t=e==null;a=L(`slot`,{name:`busy`},L(`span`,{class:`stop`,part:`stop`},r(`square`,{size:Qr})),L(`span`,{class:`spinner${t?` is-indeterminate`:``}`,part:`spinner`},ri(e)))}else a=e?L(`slot`,{name:`busy`},L(`span`,{class:`stop`,part:`stop`},r(`square`,{size:Qr}),L(`span`,{class:`stop-fill`},r(`square`,{size:Qr})))):L(`slot`,null,L(`span`,{class:`glyph`,part:`glyph`},r(`arrow-up`,{size:Qr})));let o=L(`button`,{part:`button`,class:`send${e?` is-busy`:``}${n?` is-tool`:``}`,type:`button`,title:i,"aria-label":i,disabled:t||void 0},a);this.#e.replaceChildren(o),this.#t=o,this.#t.addEventListener(`click`,this.#r),this.#t.addEventListener(`pointerenter`,this.#a),this.#t.addEventListener(`pointerleave`,this.#o),this.#t.addEventListener(`pointerdown`,this.#s),this.#t.addEventListener(`pointerup`,this.#c),this.#u()}});var oi=`
2356
+ `),ua=18,da=72,fa=`http://www.w3.org/2000/svg`,pa=15,ma=.25;function ha(e){let t=document.createElementNS(fa,`svg`);t.setAttribute(`width`,`36`),t.setAttribute(`height`,`36`),t.setAttribute(`viewBox`,`0 0 36 36`),t.setAttribute(`fill`,`none`),t.setAttribute(`aria-hidden`,`true`);let n=2*Math.PI*pa,r=e=>{let t=document.createElementNS(fa,`circle`);return t.setAttribute(`cx`,`18`),t.setAttribute(`cy`,`18`),t.setAttribute(`r`,String(pa)),t.setAttribute(`fill`,`none`),t.setAttribute(`stroke-width`,`2.5`),t.setAttribute(`stroke-linecap`,`round`),t.setAttribute(`class`,e),t};t.appendChild(r(`ring-track`));let i=r(`ring-arc`),a=e==null?ma:Math.max(0,Math.min(1,e));return i.setAttribute(`stroke-dasharray`,`${n*a} ${n}`),e!=null&&i.setAttribute(`transform`,`rotate(-90 18 18)`),t.appendChild(i),t}function ga(e){return e===`tool`?`tool`:`thinking`}function _a(e){if(e==null||e.trim()===``)return null;let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.min(1,t)):null}F(`slicc-send-button`,class extends HTMLElement{static observedAttributes=[`disabled`,`busy`,`phase`,`progress`,`email`,`src`,`label`];#e;#t=null;#n=0;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[la]}connectedCallback(){this.#d()}attributeChangedCallback(){this.isConnected&&this.#d()}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){this.toggleAttribute(`disabled`,!!e)}get busy(){return this.hasAttribute(`busy`)}set busy(e){this.toggleAttribute(`busy`,!!e)}get phase(){return ga(this.getAttribute(`phase`))}set phase(e){this.setAttribute(`phase`,ga(e))}get progress(){return _a(this.getAttribute(`progress`))}set progress(e){e==null?this.removeAttribute(`progress`):this.setAttribute(`progress`,String(e))}get email(){return this.getAttribute(`email`)}set email(e){e==null?this.removeAttribute(`email`):this.setAttribute(`email`,e)}get src(){return this.getAttribute(`src`)}set src(e){e==null?this.removeAttribute(`src`):this.setAttribute(`src`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#r=()=>{if(!this.disabled){if(this.busy){this.dispatchEvent(new CustomEvent(`stop`,{bubbles:!0,composed:!0}));return}this.#l(),this.dispatchEvent(new CustomEvent(`send`,{bubbles:!0,composed:!0}))}};#i(){return this.#e.querySelector(`.glyph`)}#a=()=>{this.disabled||this.busy||this.#i()?.classList.add(`is-hover`)};#o=()=>{this.#i()?.classList.remove(`is-hover`,`is-press`)};#s=()=>{if(this.disabled||this.busy)return;let e=this.#i();e?.classList.add(`is-press`),e?.classList.remove(`is-hover`)};#c=()=>{this.#i()?.classList.remove(`is-press`)};#l(){let e=this.#e.querySelector(`.glyph`);e&&(e.classList.remove(`is-whoosh`),e.offsetWidth,e.classList.add(`is-whoosh`),e.addEventListener(`animationend`,()=>e.classList.remove(`is-whoosh`),{once:!0}))}#u(){let e=++this.#n;if(!this.#t)return;let t=t=>{if(e!==this.#n)return;let n=this.#t;if(n){if(n.querySelector(`.face`)?.remove(),t){let e=document.createElement(`img`);e.className=`face`,e.setAttribute(`part`,`face`),e.alt=``,e.src=t,n.prepend(e),n.classList.add(`has-face`)}else n.classList.remove(`has-face`)}},n=this.src;if(n){t(n);return}let r=this.email;if(!r||r.trim()===``){t(null);return}t(null),ca(r,{size:da}).then(t).catch(()=>t(null))}#d(){let e=this.busy,t=this.disabled,n=e&&this.phase===`tool`,r=this.label??(e?`Stop`:`Send`),a;if(n){let e=this.progress,t=e==null;a=I(`slot`,{name:`busy`},I(`span`,{class:`stop`,part:`stop`},i(`square`,{size:ua})),I(`span`,{class:`spinner${t?` is-indeterminate`:``}`,part:`spinner`},ha(e)))}else a=e?I(`slot`,{name:`busy`},I(`span`,{class:`stop`,part:`stop`},i(`square`,{size:ua}),I(`span`,{class:`stop-fill`},i(`square`,{size:ua})))):I(`slot`,null,I(`span`,{class:`glyph`,part:`glyph`},i(`arrow-up`,{size:ua})));let o=I(`button`,{part:`button`,class:`send${e?` is-busy`:``}${n?` is-tool`:``}`,type:`button`,title:r,"aria-label":r,disabled:t||void 0},a);this.#e.replaceChildren(o),this.#t=o,this.#t.addEventListener(`click`,this.#r),this.#t.addEventListener(`pointerenter`,this.#a),this.#t.addEventListener(`pointerleave`,this.#o),this.#t.addEventListener(`pointerdown`,this.#s),this.#t.addEventListener(`pointerup`,this.#c),this.#u()}});var va=`
2355
2357
  slicc-input-card {
2356
2358
  display: block;
2357
2359
  }
@@ -2405,7 +2407,7 @@ slicc-input-card .toolbar slicc-add-menu {
2405
2407
  flex: 1;
2406
2408
  min-width: 0;
2407
2409
  }
2408
- `,si=`slicc-input-card-style`;function ci(e){if(e.getElementById(si))return;let t=e.createElement(`style`);t.id=si,t.textContent=oi,(e.head??e.documentElement).appendChild(t)}var li=`Ask sliccy, or describe a change…`;F(`slicc-input-card`,class extends HTMLElement{static observedAttributes=[`value`,`placeholder`,`suggestion`,`disabled`];#e;#t;#n;#r=!1;connectedCallback(){ci(this.ownerDocument),this.#i(),this.#a(),this.#u()}attributeChangedCallback(e,t,n){!this.#r||t===n||(this.#a(),e===`value`&&this.#u())}get value(){return this.#r?this.#t.value:this.getAttribute(`value`)??``}set value(e){let t=e??``;this.#r&&(this.#t.value=t,this.#u()),t===``?this.removeAttribute(`value`):this.setAttribute(`value`,t)}get placeholder(){return this.getAttribute(`placeholder`)??li}set placeholder(e){e==null?this.removeAttribute(`placeholder`):this.setAttribute(`placeholder`,e)}get suggestion(){return this.getAttribute(`suggestion`)}set suggestion(e){e==null||e===``?this.removeAttribute(`suggestion`):this.setAttribute(`suggestion`,e)}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){this.toggleAttribute(`disabled`,!!e)}focus(e){this.#i(),this.#t.focus(e)}clear(){this.value=``}#i(){if(this.#r)return;this.#r=!0;let e=this.ownerDocument,t=Array.from(this.children).filter(e=>e.getAttribute(`slot`)===`toolbar`);if(this.replaceChildren(),this.#e=e.createElement(`div`),this.#e.className=`slicc-input-card__card`,this.#e.setAttribute(`part`,`card`),this.#t=e.createElement(`textarea`),this.#t.className=`ta`,this.#t.setAttribute(`part`,`textarea`),this.#t.rows=1,this.#n=e.createElement(`div`),this.#n.className=`toolbar`,this.#n.setAttribute(`part`,`toolbar`),t.length>0)for(let e of t)this.#n.appendChild(e);else this.#n.append(L(`slicc-add-menu`),L(`slicc-send-button`));this.#e.append(this.#t,this.#n),this.appendChild(this.#e),this.#t.addEventListener(`input`,this.#o),this.#t.addEventListener(`keydown`,this.#s),this.#n.addEventListener(`send`,this.#c)}#a(){if(!this.#r)return;let e=this.#t;e.placeholder=this.suggestion??this.placeholder,e.disabled=this.disabled;let t=this.getAttribute(`value`)??``;e.value!==t&&(e.value=t)}#o=e=>{e.stopPropagation();let t=this.#t.value;t===``?this.removeAttribute(`value`):this.setAttribute(`value`,t),this.#u(),this.dispatchEvent(new CustomEvent(`input`,{bubbles:!0,composed:!0,detail:{value:t}}))};#s=e=>{if(e.isComposing)return;if(e.key===`Enter`&&!e.shiftKey&&!e.altKey){e.preventDefault(),this.#l(void 0,e.ctrlKey||e.metaKey);return}if(e.key===`Tab`&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey){let t=this.suggestion;if(t&&this.#t.value===``){e.preventDefault(),this.removeAttribute(`suggestion`);let n=this.#t;n.value=t,n.setSelectionRange(t.length,t.length),n.dispatchEvent(new Event(`input`,{bubbles:!0}))}return}let t=this.#t,n=t.selectionStart===t.selectionEnd;e.key===`ArrowUp`&&n&&t.selectionStart===0?(e.preventDefault(),this.dispatchEvent(new CustomEvent(`history-up`,{bubbles:!0,composed:!0}))):e.key===`ArrowDown`&&n&&t.selectionStart===t.value.length&&this.dispatchEvent(new CustomEvent(`history-down`,{bubbles:!0,composed:!0}))};#c=e=>{e.stopPropagation(),this.#l()};submit(e){this.#i(),this.#l(e)}focusEnd(){if(!this.#r)return;let e=this.#t;e.focus();let t=e.value.length;e.setSelectionRange(t,t)}#l(e,t){if(this.disabled)return;let n=this.#t.value;n.trim()!==``&&(this.removeAttribute(`suggestion`),this.dispatchEvent(new CustomEvent(`submit`,{bubbles:!0,composed:!0,detail:{value:n,...e?{source:e}:{},...t?{steer:!0}:{}}})))}#u(){if(!this.#r)return;let e=this.#t;e.style.height=`auto`;let t=e.scrollHeight;e.style.height=`${Math.min(t,140)}px`,e.style.overflowY=t>140?`auto`:`hidden`}});var ui={"⏎":`corner-down-left`,"↵":`corner-down-left`,Enter:`corner-down-left`,"←":`arrow-left`,"→":`arrow-right`,"↑":`arrow-up`,"↓":`arrow-down`,"⇥":`arrow-right-to-line`},di=`slicc-key-hud`,fi=4,pi=1600,mi=`[?] help · [i] or [⏎] to type`;function hi(e,t){let n=ui[e],a=L(`kbd`,{class:t?`cap cap-hint`:`cap`,part:`cap`,...n?{"aria-label":e}:{}});return n&&i(n)?a.append(r(n,{size:t?11:12,strokeWidth:2.2})):a.textContent=e,a}function gi(e){return e.split(/(\[[^\]]+\])/).filter(e=>e!==``).map(e=>e.startsWith(`[`)&&e.endsWith(`]`)?hi(e.slice(1,-1),!0):e)}var _i=R(`
2410
+ `,ya=`slicc-input-card-style`;function ba(e){if(e.getElementById(ya))return;let t=e.createElement(`style`);t.id=ya,t.textContent=va,(e.head??e.documentElement).appendChild(t)}var xa=`Ask sliccy, or describe a change…`;F(`slicc-input-card`,class extends HTMLElement{static observedAttributes=[`value`,`placeholder`,`suggestion`,`disabled`];#e;#t;#n;#r=!1;connectedCallback(){ba(this.ownerDocument),this.#i(),this.#a(),this.#u()}attributeChangedCallback(e,t,n){!this.#r||t===n||(this.#a(),e===`value`&&this.#u())}get value(){return this.#r?this.#t.value:this.getAttribute(`value`)??``}set value(e){let t=e??``;this.#r&&(this.#t.value=t,this.#u()),t===``?this.removeAttribute(`value`):this.setAttribute(`value`,t)}get placeholder(){return this.getAttribute(`placeholder`)??xa}set placeholder(e){e==null?this.removeAttribute(`placeholder`):this.setAttribute(`placeholder`,e)}get suggestion(){return this.getAttribute(`suggestion`)}set suggestion(e){e==null||e===``?this.removeAttribute(`suggestion`):this.setAttribute(`suggestion`,e)}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){this.toggleAttribute(`disabled`,!!e)}focus(e){this.#i(),this.#t.focus(e)}clear(){this.value=``}#i(){if(this.#r)return;this.#r=!0;let e=this.ownerDocument,t=Array.from(this.children).filter(e=>e.getAttribute(`slot`)===`toolbar`);if(this.replaceChildren(),this.#e=e.createElement(`div`),this.#e.className=`slicc-input-card__card`,this.#e.setAttribute(`part`,`card`),this.#t=e.createElement(`textarea`),this.#t.className=`ta`,this.#t.setAttribute(`part`,`textarea`),this.#t.rows=1,this.#n=e.createElement(`div`),this.#n.className=`toolbar`,this.#n.setAttribute(`part`,`toolbar`),t.length>0)for(let e of t)this.#n.appendChild(e);else this.#n.append(I(`slicc-add-menu`),I(`slicc-send-button`));this.#e.append(this.#t,this.#n),this.appendChild(this.#e),this.#t.addEventListener(`input`,this.#o),this.#t.addEventListener(`keydown`,this.#s),this.#n.addEventListener(`send`,this.#c)}#a(){if(!this.#r)return;let e=this.#t;e.placeholder=this.suggestion??this.placeholder,e.disabled=this.disabled;let t=this.getAttribute(`value`)??``;e.value!==t&&(e.value=t)}#o=e=>{e.stopPropagation();let t=this.#t.value;t===``?this.removeAttribute(`value`):this.setAttribute(`value`,t),this.#u(),this.dispatchEvent(new CustomEvent(`input`,{bubbles:!0,composed:!0,detail:{value:t}}))};#s=e=>{if(e.isComposing)return;if(e.key===`Enter`&&!e.shiftKey&&!e.altKey){e.preventDefault(),this.#l(void 0,e.ctrlKey||e.metaKey);return}if(e.key===`Tab`&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey){let t=this.suggestion;if(t&&this.#t.value===``){e.preventDefault(),this.removeAttribute(`suggestion`);let n=this.#t;n.value=t,n.setSelectionRange(t.length,t.length),n.dispatchEvent(new Event(`input`,{bubbles:!0}))}return}let t=this.#t,n=t.selectionStart===t.selectionEnd;e.key===`ArrowUp`&&n&&t.selectionStart===0?(e.preventDefault(),this.dispatchEvent(new CustomEvent(`history-up`,{bubbles:!0,composed:!0}))):e.key===`ArrowDown`&&n&&t.selectionStart===t.value.length&&this.dispatchEvent(new CustomEvent(`history-down`,{bubbles:!0,composed:!0}))};#c=e=>{e.stopPropagation(),this.#l()};submit(e){this.#i(),this.#l(e)}focusEnd(){if(!this.#r)return;let e=this.#t;e.focus();let t=e.value.length;e.setSelectionRange(t,t)}#l(e,t){if(this.disabled)return;let n=this.#t.value;n.trim()!==``&&(this.removeAttribute(`suggestion`),this.dispatchEvent(new CustomEvent(`submit`,{bubbles:!0,composed:!0,detail:{value:n,...e?{source:e}:{},...t?{steer:!0}:{}}})))}#u(){if(!this.#r)return;let e=this.#t;e.style.height=`auto`;let t=e.scrollHeight;e.style.height=`${Math.min(t,140)}px`,e.style.overflowY=t>140?`auto`:`hidden`}});var Sa={"⏎":`corner-down-left`,"↵":`corner-down-left`,Enter:`corner-down-left`,"←":`arrow-left`,"→":`arrow-right`,"↑":`arrow-up`,"↓":`arrow-down`,"⇥":`arrow-right-to-line`},Ca=`slicc-key-hud`,wa=4,Ta=1600,Ea=`[?] help · [i] or [⏎] to type`;function Da(e,t){let n=Sa[e],r=I(`kbd`,{class:t?`cap cap-hint`:`cap`,part:`cap`,...n?{"aria-label":e}:{}});return n&&a(n)?r.append(i(n,{size:t?11:12,strokeWidth:2.2})):r.textContent=e,r}function Oa(e){return e.split(/(\[[^\]]+\])/).filter(e=>e!==``).map(e=>e.startsWith(`[`)&&e.endsWith(`]`)?Da(e.slice(1,-1),!0):e)}var ka=L(`
2409
2411
  :host{display:block;font-family:var(--ui);color:var(--ink);}
2410
2412
  :host([hidden]){display:none;}
2411
2413
  .hud{display:flex;align-items:center;gap:8px;font:600 11.5px/1 var(--ui);}
@@ -2455,9 +2457,9 @@ slicc-input-card .toolbar slicc-add-menu {
2455
2457
  .pressanimation:$PREFIX-press-in .12s ease-out;
2456
2458
  .hudanimation:$PREFIX-band-in .14s ease-out;
2457
2459
  }
2458
- @keyframes ${di}-press-in{from{opacity:0;transform:translateY(2px) scale(.94);}to{opacity:1;transform:none;}}
2459
- @keyframes ${di}-band-in{from{opacity:0;}to{opacity:1;}}
2460
- `);F(di,class extends HTMLElement{static observedAttributes=[`label`,`hint`];#e;#t=[];#n=null;#r=null;#i=null;#a=null;#o=null;#s=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[_i]}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`status`),this.hasAttribute(`aria-live`)||this.setAttribute(`aria-live`,`polite`),this.#f(),this.#l()}disconnectedCallback(){this.#u()}attributeChangedCallback(){this.#i&&this.#p()}get label(){return this.getAttribute(`label`)??`Keyboard mode`}set label(e){this.setAttribute(`label`,e)}get hint(){return this.getAttribute(`hint`)??mi}set hint(e){this.setAttribute(`hint`,e)}get depth(){let e=Number.parseInt(this.getAttribute(`depth`)??``,10);return Number.isFinite(e)&&e>0?e:fi}set depth(e){this.setAttribute(`depth`,String(e))}get linger(){let e=Number.parseInt(this.getAttribute(`linger`)??``,10);return Number.isFinite(e)&&e>0?e:pi}set linger(e){this.setAttribute(`linger`,String(e))}get presses(){return this.#t.map(e=>({...e,caps:[...e.caps]}))}set presses(e){this.#t=(Array.isArray(e)?e:[]).filter(e=>Array.isArray(e?.caps)).map(e=>({bound:e.bound!==!1,caps:[...e.caps]})),this.#u(),this.#r=null,this.#d(),this.#p()}record(e,t=!0){this.#t.push({caps:[...e],bound:t}),this.#d(),this.#p(),this.#c(this.linger)}clear(){this.#u(),this.#r=null,this.#t=[],this.#p()}#c(e){this.#u(),this.#r=Date.now()+e,this.#n=setTimeout(()=>{this.#n=null,this.clear()},e)}#l(){if(this.#r===null||this.#t.length===0)return;let e=this.#r-Date.now();e<=0?this.clear():this.#c(e)}#u(){this.#n!==null&&(clearTimeout(this.#n),this.#n=null)}#d(){let e=this.#t.length-this.depth;e>0&&this.#t.splice(0,e)}#f(){this.#a=L(`span`,{class:`label`,part:`label`}),this.#o=L(`span`,{class:`hint`,part:`hint`}),this.#s=L(`div`,{class:`keys`,part:`keys`,"aria-hidden":`true`}),this.#i=L(`div`,{class:`hud`,part:`hud`},r(`keyboard`,{size:15,strokeWidth:1.9,class:`icon`,part:`icon`}),this.#a,this.#o,this.#s),this.#e.replaceChildren(this.#i),this.#p()}#p(){!this.#a||!this.#o||!this.#s||(this.#a.textContent=this.label,this.#o.replaceChildren(),I(this.#o,gi(this.hint)),this.#o.hidden=this.hint===``||this.#t.length>0,this.#s.replaceChildren(...this.#t.map((e,t)=>L(`span`,{class:`press`,"data-bound":String(e.bound!==!1),...t<this.#t.length-1?{"data-age":`stale`}:{}},...e.caps.map(e=>hi(e,!1))))))}});var vi=R(`
2460
+ @keyframes ${Ca}-press-in{from{opacity:0;transform:translateY(2px) scale(.94);}to{opacity:1;transform:none;}}
2461
+ @keyframes ${Ca}-band-in{from{opacity:0;}to{opacity:1;}}
2462
+ `);F(Ca,class extends HTMLElement{static observedAttributes=[`label`,`hint`];#e;#t=[];#n=null;#r=null;#i=null;#a=null;#o=null;#s=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ka]}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`status`),this.hasAttribute(`aria-live`)||this.setAttribute(`aria-live`,`polite`),this.#f(),this.#l()}disconnectedCallback(){this.#u()}attributeChangedCallback(){this.#i&&this.#p()}get label(){return this.getAttribute(`label`)??`Keyboard mode`}set label(e){this.setAttribute(`label`,e)}get hint(){return this.getAttribute(`hint`)??Ea}set hint(e){this.setAttribute(`hint`,e)}get depth(){let e=Number.parseInt(this.getAttribute(`depth`)??``,10);return Number.isFinite(e)&&e>0?e:wa}set depth(e){this.setAttribute(`depth`,String(e))}get linger(){let e=Number.parseInt(this.getAttribute(`linger`)??``,10);return Number.isFinite(e)&&e>0?e:Ta}set linger(e){this.setAttribute(`linger`,String(e))}get presses(){return this.#t.map(e=>({...e,caps:[...e.caps]}))}set presses(e){this.#t=(Array.isArray(e)?e:[]).filter(e=>Array.isArray(e?.caps)).map(e=>({bound:e.bound!==!1,caps:[...e.caps]})),this.#u(),this.#r=null,this.#d(),this.#p()}record(e,t=!0){this.#t.push({caps:[...e],bound:t}),this.#d(),this.#p(),this.#c(this.linger)}clear(){this.#u(),this.#r=null,this.#t=[],this.#p()}#c(e){this.#u(),this.#r=Date.now()+e,this.#n=setTimeout(()=>{this.#n=null,this.clear()},e)}#l(){if(this.#r===null||this.#t.length===0)return;let e=this.#r-Date.now();e<=0?this.clear():this.#c(e)}#u(){this.#n!==null&&(clearTimeout(this.#n),this.#n=null)}#d(){let e=this.#t.length-this.depth;e>0&&this.#t.splice(0,e)}#f(){this.#a=I(`span`,{class:`label`,part:`label`}),this.#o=I(`span`,{class:`hint`,part:`hint`}),this.#s=I(`div`,{class:`keys`,part:`keys`,"aria-hidden":`true`}),this.#i=I(`div`,{class:`hud`,part:`hud`},i(`keyboard`,{size:15,strokeWidth:1.9,class:`icon`,part:`icon`}),this.#a,this.#o,this.#s),this.#e.replaceChildren(this.#i),this.#p()}#p(){!this.#a||!this.#o||!this.#s||(this.#a.textContent=this.label,this.#o.replaceChildren(),Fn(this.#o,Oa(this.hint)),this.#o.hidden=this.hint===``||this.#t.length>0,this.#s.replaceChildren(...this.#t.map((e,t)=>I(`span`,{class:`press`,"data-bound":String(e.bound!==!1),...t<this.#t.length-1?{"data-age":`stale`}:{}},...e.caps.map(e=>Da(e,!1))))))}});var Aa=L(`
2461
2463
  :host{display:block;font-family:var(--ui);}
2462
2464
  :host(:not([count])),:host([count="0"]),:host([count="-0"]){display:none;}
2463
2465
  .wrap{display:flex;flex-direction:column;align-items:stretch;gap:6px;}
@@ -2478,7 +2480,7 @@ slicc-input-card .toolbar slicc-add-menu {
2478
2480
  :host-context(body.dark) .dismiss:hover,:host-context(body.dark) .dismiss:focus-visible,
2479
2481
  :host-context(.dark) .dismiss:hover,:host-context(.dark) .dismiss:focus-visible,
2480
2482
  :host-context([data-theme="dark"]) .dismiss:hover,:host-context([data-theme="dark"]) .dismiss:focus-visible{background:color-mix(in srgb,#0a0a0a 14%,transparent);}
2481
- `),yi=[{rot:0,x:0,y:0},{rot:-2,x:-3,y:-2},{rot:2,x:3,y:-4},{rot:-3,x:-5,y:-6},{rot:3,x:5,y:-8},{rot:-1,x:-2,y:-10},{rot:1,x:2,y:-12}];function bi(e){return yi[Math.min(e,yi.length-1)]??yi[0]}F(`slicc-queued-stack`,class extends HTMLElement{#e;#t=[];constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[vi]}connectedCallback(){this.#i()}get count(){return this.#t.length}setMessages(e){this.#t=e.slice(),this.setAttribute(`count`,String(this.#t.length)),this.#i()}#n(e){this.dispatchEvent(new CustomEvent(`slicc-queued-remove`,{detail:{id:e},bubbles:!0,composed:!0}))}#r(e,t,n,i){let{rot:a,x:o,y:s}=bi(t),c=n?`none`:`translate(${o}px, ${s}px) rotate(${a}deg)`,l=`card${n?` is-front`:``}${t===0?``:t===1?` is-back`:` is-deep`}`,u=n?`card front`:`card`,d=`transform:${c};z-index:${i};`,f=[L(`span`,{class:`bubble`},e.text)];if(e.attachments&&e.attachments>0&&f.push(L(`span`,{class:`attach`},`+${e.attachments}`)),n){let t=L(`button`,{type:`button`,class:`dismiss`,part:`dismiss`,"aria-label":`Remove queued message`},r(`x`,{size:14}));t.addEventListener(`click`,t=>{t.stopPropagation(),this.#n(e.id)}),f.push(t)}return L(`div`,{class:l,part:u,style:d},...f)}#i(){if(this.#t.length===0){this.#e.replaceChildren();return}let e=this.#t.length,t=[];for(let n=e-1;n>=0;n--){let r=e-1-n,i=r===0,a=n+1,o=this.#t[n];o&&t.push(this.#r(o,r,i,a))}let n=L(`div`,{class:`stack`,part:`stack`},...t),i=L(`div`,{class:`wrap`},L(`span`,{class:`badge`,part:`badge`},r(`clock`,{size:11}),`${e} queued`),n);this.#e.replaceChildren(i)}});var xi=1e3;function Si(e,t){let n=t.longPressMs??1e3,r=t.modifierClickAsLongPress??!0,i=null,a=!1,o=()=>{t.onPressEnd?.()},s=()=>{i!==null&&(clearTimeout(i),i=null),o()},c=e=>{e.button===0&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(a=!1,s(),t.onPressStart?.(e),i=setTimeout(()=>{a=!0,o(),i=null,t.onLongPress()},n)))},l=()=>s(),u=()=>s(),d=()=>s(),f=()=>s(),p=e=>{if(a){a=!1,e.preventDefault();return}if((e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)&&r){e.preventDefault(),t.onLongPress();return}t.onShortClick(e)};return e.addEventListener(`mousedown`,c),e.addEventListener(`mouseup`,l),e.addEventListener(`mouseleave`,u),e.addEventListener(`blur`,d),e.addEventListener(`contextmenu`,f),e.addEventListener(`click`,p),{destroy:()=>{s(),e.removeEventListener(`mousedown`,c),e.removeEventListener(`mouseup`,l),e.removeEventListener(`mouseleave`,u),e.removeEventListener(`blur`,d),e.removeEventListener(`contextmenu`,f),e.removeEventListener(`click`,p)}}}var Ci=R(`
2483
+ `),ja=[{rot:0,x:0,y:0},{rot:-2,x:-3,y:-2},{rot:2,x:3,y:-4},{rot:-3,x:-5,y:-6},{rot:3,x:5,y:-8},{rot:-1,x:-2,y:-10},{rot:1,x:2,y:-12}];function Ma(e){return ja[Math.min(e,ja.length-1)]??ja[0]}F(`slicc-queued-stack`,class extends HTMLElement{#e;#t=[];constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Aa]}connectedCallback(){this.#i()}get count(){return this.#t.length}setMessages(e){this.#t=e.slice(),this.setAttribute(`count`,String(this.#t.length)),this.#i()}#n(e){this.dispatchEvent(new CustomEvent(`slicc-queued-remove`,{detail:{id:e},bubbles:!0,composed:!0}))}#r(e,t,n,r){let{rot:a,x:o,y:s}=Ma(t),c=n?`none`:`translate(${o}px, ${s}px) rotate(${a}deg)`,l=`card${n?` is-front`:``}${t===0?``:t===1?` is-back`:` is-deep`}`,u=n?`card front`:`card`,d=`transform:${c};z-index:${r};`,f=[I(`span`,{class:`bubble`},e.text)];if(e.attachments&&e.attachments>0&&f.push(I(`span`,{class:`attach`},`+${e.attachments}`)),n){let t=I(`button`,{type:`button`,class:`dismiss`,part:`dismiss`,"aria-label":`Remove queued message`},i(`x`,{size:14}));t.addEventListener(`click`,t=>{t.stopPropagation(),this.#n(e.id)}),f.push(t)}return I(`div`,{class:l,part:u,style:d},...f)}#i(){if(this.#t.length===0){this.#e.replaceChildren();return}let e=this.#t.length,t=[];for(let n=e-1;n>=0;n--){let r=e-1-n,i=r===0,a=n+1,o=this.#t[n];o&&t.push(this.#r(o,r,i,a))}let n=I(`div`,{class:`stack`,part:`stack`},...t),r=I(`div`,{class:`wrap`},I(`span`,{class:`badge`,part:`badge`},i(`clock`,{size:11}),`${e} queued`),n);this.#e.replaceChildren(r)}});var Na=1e3;function Pa(e,t){let n=t.longPressMs??1e3,r=t.modifierClickAsLongPress??!0,i=null,a=!1,o=()=>{t.onPressEnd?.()},s=()=>{i!==null&&(clearTimeout(i),i=null),o()},c=e=>{e.button===0&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(a=!1,s(),t.onPressStart?.(e),i=setTimeout(()=>{a=!0,o(),i=null,t.onLongPress()},n)))},l=()=>s(),u=()=>s(),d=()=>s(),f=()=>s(),p=e=>{if(a){a=!1,e.preventDefault();return}if((e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)&&r){e.preventDefault(),t.onLongPress();return}t.onShortClick(e)};return e.addEventListener(`mousedown`,c),e.addEventListener(`mouseup`,l),e.addEventListener(`mouseleave`,u),e.addEventListener(`blur`,d),e.addEventListener(`contextmenu`,f),e.addEventListener(`click`,p),{destroy:()=>{s(),e.removeEventListener(`mousedown`,c),e.removeEventListener(`mouseup`,l),e.removeEventListener(`mouseleave`,u),e.removeEventListener(`blur`,d),e.removeEventListener(`contextmenu`,f),e.removeEventListener(`click`,p)}}}var Fa=L(`
2482
2484
  :host { display: inline-grid; }
2483
2485
  :host([hidden]) { display: none; }
2484
2486
 
@@ -2560,7 +2562,7 @@ slicc-input-card .toolbar slicc-add-menu {
2560
2562
 
2561
2563
  .glyph { display: grid; place-items: center; line-height: 1; }
2562
2564
  .glyph svg { display: block; }
2563
- `),wi=`square`,Ti=18;F(`slicc-dock-item`,class extends HTMLElement{static observedAttributes=[`item-id`,`kind`,`hue`,`icon`,`tip`,`active`,`lit`];#e;#t=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ci]}disconnectedCallback(){this.#t?.destroy(),this.#t=null}connectedCallback(){this.#n()}attributeChangedCallback(){this.isConnected&&this.#n()}get itemId(){return this.getAttribute(`item-id`)}set itemId(e){e==null?this.removeAttribute(`item-id`):this.setAttribute(`item-id`,e)}get kind(){return this.getAttribute(`kind`)===`sprinkle`?`sprinkle`:`tool`}set kind(e){this.setAttribute(`kind`,e===`sprinkle`?`sprinkle`:`tool`)}get hue(){return this.getAttribute(`hue`)}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get icon(){return this.getAttribute(`icon`)??wi}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get tip(){return this.getAttribute(`tip`)}set tip(e){e==null?this.removeAttribute(`tip`):this.setAttribute(`tip`,e)}get active(){return this.hasAttribute(`active`)}set active(e){this.toggleAttribute(`active`,!!e)}get lit(){return this.hasAttribute(`lit`)}set lit(e){this.toggleAttribute(`lit`,!!e)}#n(){let e=[`di`];this.kind===`sprinkle`&&e.push(`sp`),this.active&&e.push(`on`),this.lit&&e.push(`lit`);let t=this.tip,n=r(this.icon,{size:Ti,part:`icon`}),i=t??this.itemId??`dock item`,a=L(`button`,{type:`button`,part:`button`,class:e.join(` `),"aria-label":i,"aria-pressed":this.active?`true`:`false`},L(`span`,{class:`glyph`,part:`glyph`},L(`slot`,null,n)),t?L(`span`,{class:`tip`,part:`tip`},t):null),o=this.hue;o&&a.style.setProperty(`--h`,o),this.#t?.destroy(),this.#t=Si(a,{onShortClick:this.#r,onLongPress:()=>this.#i(`longpress`)}),this.#e.replaceChildren(a)}#r=()=>{this.#i(this.active?`collapse`:`select`)};#i(e){this.dispatchEvent(new CustomEvent(e,{detail:{id:this.itemId},bubbles:!0,composed:!0}))}});var Ei=[{id:`browser`,icon:`globe`,label:`Browser · CDP`,kind:`tool`},{id:`files`,icon:`folder`,label:`Files · VFS`,kind:`tool`},{id:`term`,icon:`square-terminal`,label:`Terminal`,kind:`tool`},{id:`memory`,icon:`brain`,label:`Memory`,kind:`tool`},{id:`monitor`,icon:`activity`,label:`Monitor`,kind:`tool`}],Di=`
2565
+ `),Ia=`square`,La=18;F(`slicc-dock-item`,class extends HTMLElement{static observedAttributes=[`item-id`,`kind`,`hue`,`icon`,`tip`,`active`,`lit`];#e;#t=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Fa]}disconnectedCallback(){this.#t?.destroy(),this.#t=null}connectedCallback(){this.#n()}attributeChangedCallback(){this.isConnected&&this.#n()}get itemId(){return this.getAttribute(`item-id`)}set itemId(e){e==null?this.removeAttribute(`item-id`):this.setAttribute(`item-id`,e)}get kind(){return this.getAttribute(`kind`)===`sprinkle`?`sprinkle`:`tool`}set kind(e){this.setAttribute(`kind`,e===`sprinkle`?`sprinkle`:`tool`)}get hue(){return this.getAttribute(`hue`)}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get icon(){return this.getAttribute(`icon`)??Ia}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get tip(){return this.getAttribute(`tip`)}set tip(e){e==null?this.removeAttribute(`tip`):this.setAttribute(`tip`,e)}get active(){return this.hasAttribute(`active`)}set active(e){this.toggleAttribute(`active`,!!e)}get lit(){return this.hasAttribute(`lit`)}set lit(e){this.toggleAttribute(`lit`,!!e)}#n(){let e=[`di`];this.kind===`sprinkle`&&e.push(`sp`),this.active&&e.push(`on`),this.lit&&e.push(`lit`);let t=this.tip,n=i(this.icon,{size:La,part:`icon`}),r=t??this.itemId??`dock item`,a=I(`button`,{type:`button`,part:`button`,class:e.join(` `),"aria-label":r,"aria-pressed":this.active?`true`:`false`},I(`span`,{class:`glyph`,part:`glyph`},I(`slot`,null,n)),t?I(`span`,{class:`tip`,part:`tip`},t):null),o=this.hue;o&&a.style.setProperty(`--h`,o),this.#t?.destroy(),this.#t=Pa(a,{onShortClick:this.#r,onLongPress:()=>this.#i(`longpress`)}),this.#e.replaceChildren(a)}#r=()=>{this.#i(this.active?`collapse`:`select`)};#i(e){this.dispatchEvent(new CustomEvent(e,{detail:{id:this.itemId},bubbles:!0,composed:!0}))}});var Ra=[{id:`browser`,icon:`globe`,label:`Browser · CDP`,kind:`tool`},{id:`files`,icon:`folder`,label:`Files · VFS`,kind:`tool`},{id:`term`,icon:`square-terminal`,label:`Terminal`,kind:`tool`},{id:`memory`,icon:`brain`,label:`Memory`,kind:`tool`},{id:`monitor`,icon:`activity`,label:`Monitor`,kind:`tool`}],za=`
2564
2566
  .slicc-dock {
2565
2567
  flex: 0 0 48px;
2566
2568
  box-sizing: border-box;
@@ -2581,7 +2583,7 @@ slicc-input-card .toolbar slicc-add-menu {
2581
2583
  margin: 2px 0;
2582
2584
  }
2583
2585
  .slicc-dock .grow { flex: 1; }
2584
- `,Oi=`slicc-dock-style`;function ki(e){if(e.getElementById(Oi))return;let t=e.createElement(`style`);t.id=Oi,t.textContent=Di,(e.head??e.documentElement).appendChild(t)}function Ai(e){return e===`sprinkle`?`sprinkle`:`tool`}F(`slicc-dock`,class extends HTMLElement{static get observedAttributes(){return[`active`,`system-tools`]}#e=[];#t=null;#n=null;#r=null;#i=!1;connectedCallback(){ki(this.ownerDocument),this.classList.add(`slicc-dock`),this.setAttribute(`part`,`rail`),this.setAttribute(`role`,`toolbar`),this.setAttribute(`aria-orientation`,`vertical`),this.#i||=(this.#a(),!0),this.#t||(this.#t=e=>this.#u(e),this.#n=e=>this.#d(e),this.#r=e=>this.#f(e),this.addEventListener(`select`,this.#t),this.addEventListener(`collapse`,this.#n),this.addEventListener(`longpress`,this.#r)),this.#c()}disconnectedCallback(){this.#t&&=(this.removeEventListener(`select`,this.#t),null),this.#n&&=(this.removeEventListener(`collapse`,this.#n),null),this.#r&&=(this.removeEventListener(`longpress`,this.#r),null)}attributeChangedCallback(e){this.#i&&(e===`active`?this.#l():e===`system-tools`&&this.#c())}get items(){return this.#e.map(e=>({...e}))}set items(e){this.#e=Array.isArray(e)?e.map(e=>({...e})):[],this.#i&&this.isConnected&&this.#c()}get active(){return this.getAttribute(`active`)}set active(e){e==null?this.removeAttribute(`active`):this.setAttribute(`active`,e)}get systemTools(){return this.hasAttribute(`system-tools`)}set systemTools(e){this.toggleAttribute(`system-tools`,!!e)}selectItem(e){this.active=e,this.dispatchEvent(new CustomEvent(`slicc-dock-select`,{detail:{id:e,kind:this.#o(e)},bubbles:!0,composed:!0}))}clearActive(){this.active=null}collapse(){let e=this.active;this.active=null,e!=null&&this.dispatchEvent(new CustomEvent(`slicc-dock-collapse`,{detail:{id:e},bubbles:!0,composed:!0}))}#a(){let e=[...this.querySelectorAll(`slicc-dock-item`)];if(e.length===0)return;let t=[];for(let n of e){let e=Ai(n.getAttribute(`kind`)),r=n.getAttribute(`item-id`)??n.dataset.t??n.getAttribute(`tip`)??``;e!==`tool`&&r!==``&&t.push({id:r,icon:n.getAttribute(`icon`)??void 0,label:n.getAttribute(`tip`)??void 0,kind:`sprinkle`,hue:n.getAttribute(`hue`)??void 0})}for(let t of e)t.remove();this.#e.length===0&&(this.#e=t)}#o(e){return Ei.some(t=>t.id===e)?`tool`:this.#e.find(t=>t.id===e)?.kind??`tool`}#s(e,t){let n=e.id,r=Ai(e.kind),i=e.icon??``,a=e.label??n,o=t!=null&&t===n,s=e.hue;return L(`slicc-dock-item`,{"data-t":n,"item-id":n,kind:r,icon:i||!1,tip:a,hue:s||!1,active:o})}#c(){let e=this.active,t=[];for(let n of this.#e)Ai(n.kind)===`sprinkle`&&t.push(this.#s(n,e));if(t.push(L(`div`,{class:`grow`})),this.systemTools){t.push(L(`div`,{class:`div`}));for(let n of Ei)t.push(this.#s(n,e))}this.replaceChildren(),I(this,t)}#l(){let e=this.active;for(let t of this.querySelectorAll(`slicc-dock-item`))t.toggleAttribute(`active`,t.dataset.t===e)}#u(e){let t=this.#p(e);t!=null&&(e.stopPropagation(),this.selectItem(t))}#d(e){let t=this.#p(e);t!=null&&(e.stopPropagation(),this.active!==t&&(this.active=t),this.collapse())}#f(e){let t=this.#p(e);t!=null&&(e.stopPropagation(),this.active!==t&&this.selectItem(t),this.dispatchEvent(new CustomEvent(`slicc-dock-longpress`,{detail:{id:t,kind:this.#o(t)},bubbles:!0,composed:!0})))}#p(e){let t=e.detail;if(t&&typeof t.id==`string`)return t.id;let n=e.target?.closest(`slicc-dock-item`);return n&&this.contains(n)?n.dataset.t??null:null}});var ji=R(`
2586
+ `,Ba=`slicc-dock-style`;function Va(e){if(e.getElementById(Ba))return;let t=e.createElement(`style`);t.id=Ba,t.textContent=za,(e.head??e.documentElement).appendChild(t)}function Ha(e){return e===`sprinkle`?`sprinkle`:`tool`}F(`slicc-dock`,class extends HTMLElement{static get observedAttributes(){return[`active`,`system-tools`]}#e=[];#t=null;#n=null;#r=null;#i=!1;connectedCallback(){Va(this.ownerDocument),this.classList.add(`slicc-dock`),this.setAttribute(`part`,`rail`),this.setAttribute(`role`,`toolbar`),this.setAttribute(`aria-orientation`,`vertical`),this.#i||=(this.#a(),!0),this.#t||(this.#t=e=>this.#u(e),this.#n=e=>this.#d(e),this.#r=e=>this.#f(e),this.addEventListener(`select`,this.#t),this.addEventListener(`collapse`,this.#n),this.addEventListener(`longpress`,this.#r)),this.#c()}disconnectedCallback(){this.#t&&=(this.removeEventListener(`select`,this.#t),null),this.#n&&=(this.removeEventListener(`collapse`,this.#n),null),this.#r&&=(this.removeEventListener(`longpress`,this.#r),null)}attributeChangedCallback(e){this.#i&&(e===`active`?this.#l():e===`system-tools`&&this.#c())}get items(){return this.#e.map(e=>({...e}))}set items(e){this.#e=Array.isArray(e)?e.map(e=>({...e})):[],this.#i&&this.isConnected&&this.#c()}get active(){return this.getAttribute(`active`)}set active(e){e==null?this.removeAttribute(`active`):this.setAttribute(`active`,e)}get systemTools(){return this.hasAttribute(`system-tools`)}set systemTools(e){this.toggleAttribute(`system-tools`,!!e)}selectItem(e){this.active=e,this.dispatchEvent(new CustomEvent(`slicc-dock-select`,{detail:{id:e,kind:this.#o(e)},bubbles:!0,composed:!0}))}clearActive(){this.active=null}collapse(){let e=this.active;this.active=null,e!=null&&this.dispatchEvent(new CustomEvent(`slicc-dock-collapse`,{detail:{id:e},bubbles:!0,composed:!0}))}#a(){let e=[...this.querySelectorAll(`slicc-dock-item`)];if(e.length===0)return;let t=[];for(let n of e){let e=Ha(n.getAttribute(`kind`)),r=n.getAttribute(`item-id`)??n.dataset.t??n.getAttribute(`tip`)??``;e!==`tool`&&r!==``&&t.push({id:r,icon:n.getAttribute(`icon`)??void 0,label:n.getAttribute(`tip`)??void 0,kind:`sprinkle`,hue:n.getAttribute(`hue`)??void 0})}for(let t of e)t.remove();this.#e.length===0&&(this.#e=t)}#o(e){return Ra.some(t=>t.id===e)?`tool`:this.#e.find(t=>t.id===e)?.kind??`tool`}#s(e,t){let n=e.id,r=Ha(e.kind),i=e.icon??``,a=e.label??n,o=t!=null&&t===n,s=e.hue;return I(`slicc-dock-item`,{"data-t":n,"item-id":n,kind:r,icon:i||!1,tip:a,hue:s||!1,active:o})}#c(){let e=this.active,t=[];for(let n of this.#e)Ha(n.kind)===`sprinkle`&&t.push(this.#s(n,e));if(t.push(I(`div`,{class:`grow`})),this.systemTools){t.push(I(`div`,{class:`div`}));for(let n of Ra)t.push(this.#s(n,e))}this.replaceChildren(),Fn(this,t)}#l(){let e=this.active;for(let t of this.querySelectorAll(`slicc-dock-item`))t.toggleAttribute(`active`,t.dataset.t===e)}#u(e){let t=this.#p(e);t!=null&&(e.stopPropagation(),this.selectItem(t))}#d(e){let t=this.#p(e);t!=null&&(e.stopPropagation(),this.active!==t&&(this.active=t),this.collapse())}#f(e){let t=this.#p(e);t!=null&&(e.stopPropagation(),this.active!==t&&this.selectItem(t),this.dispatchEvent(new CustomEvent(`slicc-dock-longpress`,{detail:{id:t,kind:this.#o(t)},bubbles:!0,composed:!0})))}#p(e){let t=e.detail;if(t&&typeof t.id==`string`)return t.id;let n=e.target?.closest(`slicc-dock-item`);return n&&this.contains(n)?n.dataset.t??null:null}});var Ua=L(`
2585
2587
  :host { display: none; }
2586
2588
  :host([open]) { display: block; }
2587
2589
  .overlay {
@@ -2685,7 +2687,7 @@ slicc-input-card .toolbar slicc-add-menu {
2685
2687
  color: rgba(255,255,255,.7); font-family: var(--ui); font-size: 14px;
2686
2688
  }
2687
2689
  @media (prefers-reduced-motion: reduce) { .overlay, .card { transition: none; } }
2688
- `);function Mi(e,t){let n=e===t-1?9:e<8?e+1:null;return n===null?null:L(`span`,{class:`num`,part:`number`},String(n))}var Ni=3e3,Pi=`Open tabs`;F(`slicc-tab-overlay`,class extends HTMLElement{static observedAttributes=[`open`,`heading`];#e;#t=[];#n=null;#r=null;#i=!1;#a=null;#o=null;#s=e=>{if(!this.open)return;if(e.key===`Escape`){e.stopPropagation(),this.#_(`escape`);return}if(e.ctrlKey||e.metaKey||e.altKey||e.isComposing)return;let t=/^Digit([1-9])$/.exec(e.code??``)?.[1]??/^[1-9]$/.exec(e.key)?.[0];if(t){e.stopPropagation(),e.preventDefault(),this.#c(Number(t));return}(e.key===`p`||e.key===`P`)&&!this.hasAttribute(`no-peek`)&&(e.stopPropagation(),e.preventDefault(),this.peeking=!this.#i)};#c(e){if(this.#t.length===0){this.#l(e);return}let t=e===9?this.#t.length-1:e-1,n=t>=0?this.#t[t]:void 0;n&&this.#d(n.id)}#l(e){this.#u(),this.#a=e,this.#o=setTimeout(()=>this.#u(),Ni)}#u(){this.#o&&clearTimeout(this.#o),this.#o=null,this.#a=null}constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ji]}connectedCallback(){this.#m(),this.#h()}disconnectedCallback(){document.removeEventListener(`keydown`,this.#s,!0)}attributeChangedCallback(e){this.isConnected&&(e===`open`?this.#h():this.#m())}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,!!e)}get heading(){return this.getAttribute(`heading`)??Pi}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get tabs(){return this.#t.map(e=>({...e}))}set tabs(e){this.#t=Array.isArray(e)?e.map(e=>({...e})):[],this.isConnected&&this.#m();let t=this.#a;t!==null&&this.#t.length>0&&(this.#u(),this.#c(t))}show(){this.open||=!0}get peeking(){return this.#i}set peeking(e){this.#i=e&&!this.hasAttribute(`no-peek`),this.toggleAttribute(`data-peek`,this.#i)}#d(e){this.#g(this.#i?`tab-peek`:`tab-activate`,e)}hide(){this.open&&this.#_(`api`)}#f(){let e=L(`button`,{class:`close`,part:`close`,type:`button`,"aria-label":`Close tabs overlay`},r(`x`,{size:18}));return e.addEventListener(`click`,()=>this.#_(`close-button`)),e}#p(e,t){let n=e.title??e.id,i=e.screenshot?L(`img`,{class:`shot`,part:`shot`,src:e.screenshot,alt:n,loading:`lazy`}):L(`div`,{class:`shot ph`,part:`shot`},r(`globe`,{size:28})),a=L(`button`,{class:`x`,part:`card-close`,type:`button`,"aria-label":`Close ${n}`},r(`x`,{size:14}));a.addEventListener(`click`,t=>{t.stopPropagation(),this.#g(`tab-close`,e.id)});let o=L(`div`,{class:`label`},L(`span`,{class:`name`,part:`title`},n),e.url?L(`span`,{class:`url`},e.url):null),s=L(`div`,{class:e.active?`card on`:`card`,part:`card`,role:`button`,tabindex:`0`,"data-tab-id":e.id,"aria-label":n,"aria-current":e.active?`true`:!1},Mi(t,this.#t.length),i,L(`div`,{class:`meta`},o,a));return s.addEventListener(`click`,()=>this.#d(e.id)),s.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),this.#d(e.id))}),s}#m(){let e=L(`div`,{class:`bar`,part:`bar`},L(`span`,{class:`title`},this.heading),L(`span`,{class:`count`},String(this.#t.length)),L(`span`,{class:`peek`},`Peek · comes back`),L(`span`,{class:`grow`}),this.#f()),t;this.#t.length===0?t=L(`div`,{class:`empty`},`No open tabs.`):(t=L(`div`,{class:`grid`,part:`grid`,role:`list`}),this.#t.forEach((e,n)=>{t.appendChild(this.#p(e,n))})),this.#n=L(`div`,{class:`overlay`,part:`overlay`},e,t),this.#n.addEventListener(`mousedown`,e=>{e.target===this.#n&&this.#_(`backdrop`)}),this.#e.replaceChildren(this.#n)}#h(){this.open||(this.peeking=!1,this.#u()),this.open?(this.#r=this.getRootNode().activeElement,document.addEventListener(`keydown`,this.#s,!0),requestAnimationFrame(()=>this.#n?.querySelector(`.close`)?.focus())):(document.removeEventListener(`keydown`,this.#s,!0),this.#r?.focus?.(),this.#r=null)}#g(e,t){this.dispatchEvent(new CustomEvent(e,{detail:{id:t},bubbles:!0,composed:!0}))}#_(e){this.open=!1,this.dispatchEvent(new CustomEvent(`overlay-close`,{detail:{reason:e},bubbles:!0,composed:!0}))}});var Fi=`#3b6cb2`,Ii=`
2690
+ `);function Wa(e,t){let n=e===t-1?9:e<8?e+1:null;return n===null?null:I(`span`,{class:`num`,part:`number`},String(n))}var Ga=3e3,Ka=`Open tabs`;F(`slicc-tab-overlay`,class extends HTMLElement{static observedAttributes=[`open`,`heading`];#e;#t=[];#n=null;#r=null;#i=!1;#a=null;#o=null;#s=e=>{if(!this.open)return;if(e.key===`Escape`){e.stopPropagation(),this.#_(`escape`);return}if(e.ctrlKey||e.metaKey||e.altKey||e.isComposing)return;let t=/^Digit([1-9])$/.exec(e.code??``)?.[1]??/^[1-9]$/.exec(e.key)?.[0];if(t){e.stopPropagation(),e.preventDefault(),this.#c(Number(t));return}(e.key===`p`||e.key===`P`)&&!this.hasAttribute(`no-peek`)&&(e.stopPropagation(),e.preventDefault(),this.peeking=!this.#i)};#c(e){if(this.#t.length===0){this.#l(e);return}let t=e===9?this.#t.length-1:e-1,n=t>=0?this.#t[t]:void 0;n&&this.#d(n.id)}#l(e){this.#u(),this.#a=e,this.#o=setTimeout(()=>this.#u(),Ga)}#u(){this.#o&&clearTimeout(this.#o),this.#o=null,this.#a=null}constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ua]}connectedCallback(){this.#m(),this.#h()}disconnectedCallback(){document.removeEventListener(`keydown`,this.#s,!0)}attributeChangedCallback(e){this.isConnected&&(e===`open`?this.#h():this.#m())}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,!!e)}get heading(){return this.getAttribute(`heading`)??Ka}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get tabs(){return this.#t.map(e=>({...e}))}set tabs(e){this.#t=Array.isArray(e)?e.map(e=>({...e})):[],this.isConnected&&this.#m();let t=this.#a;t!==null&&this.#t.length>0&&(this.#u(),this.#c(t))}show(){this.open||=!0}get peeking(){return this.#i}set peeking(e){this.#i=e&&!this.hasAttribute(`no-peek`),this.toggleAttribute(`data-peek`,this.#i)}#d(e){this.#g(this.#i?`tab-peek`:`tab-activate`,e)}hide(){this.open&&this.#_(`api`)}#f(){let e=I(`button`,{class:`close`,part:`close`,type:`button`,"aria-label":`Close tabs overlay`},i(`x`,{size:18}));return e.addEventListener(`click`,()=>this.#_(`close-button`)),e}#p(e,t){let n=e.title??e.id,r=e.screenshot?I(`img`,{class:`shot`,part:`shot`,src:e.screenshot,alt:n,loading:`lazy`}):I(`div`,{class:`shot ph`,part:`shot`},i(`globe`,{size:28})),a=I(`button`,{class:`x`,part:`card-close`,type:`button`,"aria-label":`Close ${n}`},i(`x`,{size:14}));a.addEventListener(`click`,t=>{t.stopPropagation(),this.#g(`tab-close`,e.id)});let o=I(`div`,{class:`label`},I(`span`,{class:`name`,part:`title`},n),e.url?I(`span`,{class:`url`},e.url):null),s=I(`div`,{class:e.active?`card on`:`card`,part:`card`,role:`button`,tabindex:`0`,"data-tab-id":e.id,"aria-label":n,"aria-current":e.active?`true`:!1},Wa(t,this.#t.length),r,I(`div`,{class:`meta`},o,a));return s.addEventListener(`click`,()=>this.#d(e.id)),s.addEventListener(`keydown`,t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),this.#d(e.id))}),s}#m(){let e=I(`div`,{class:`bar`,part:`bar`},I(`span`,{class:`title`},this.heading),I(`span`,{class:`count`},String(this.#t.length)),I(`span`,{class:`peek`},`Peek · comes back`),I(`span`,{class:`grow`}),this.#f()),t;this.#t.length===0?t=I(`div`,{class:`empty`},`No open tabs.`):(t=I(`div`,{class:`grid`,part:`grid`,role:`list`}),this.#t.forEach((e,n)=>{t.appendChild(this.#p(e,n))})),this.#n=I(`div`,{class:`overlay`,part:`overlay`},e,t),this.#n.addEventListener(`mousedown`,e=>{e.target===this.#n&&this.#_(`backdrop`)}),this.#e.replaceChildren(this.#n)}#h(){this.open||(this.peeking=!1,this.#u()),this.open?(this.#r=this.getRootNode().activeElement,document.addEventListener(`keydown`,this.#s,!0),requestAnimationFrame(()=>this.#n?.querySelector(`.close`)?.focus())):(document.removeEventListener(`keydown`,this.#s,!0),this.#r?.focus?.(),this.#r=null)}#g(e,t){this.dispatchEvent(new CustomEvent(e,{detail:{id:t},bubbles:!0,composed:!0}))}#_(e){this.open=!1,this.dispatchEvent(new CustomEvent(`overlay-close`,{detail:{reason:e},bubbles:!0,composed:!0}))}});var qa=`#3b6cb2`,Ja=`
2689
2691
  .slicc-freezer {
2690
2692
  position: fixed;
2691
2693
  left: 0;
@@ -2787,12 +2789,12 @@ slicc-input-card .toolbar slicc-add-menu {
2787
2789
 
2788
2790
  /* ice-blue accent while a freezer context is active (prototype _ctxAccent) —
2789
2791
  tints the toggle + the new-chat icon; cards keep their snow palette. */
2790
- .slicc-freezer[ctx] .fztgl { color: var(--fz-ctx, ${Fi}); border-color: color-mix(in srgb, var(--fz-ctx, ${Fi}) 40%, var(--line)); }
2792
+ .slicc-freezer[ctx] .fztgl { color: var(--fz-ctx, ${qa}); border-color: color-mix(in srgb, var(--fz-ctx, ${qa}) 40%, var(--line)); }
2791
2793
  .slicc-freezer[ctx] ::part(new-icon),
2792
2794
  .slicc-freezer[ctx] slicc-freezer-new::part(new-icon) {
2793
- background: color-mix(in srgb, var(--fz-ctx, ${Fi}) 14%, var(--canvas));
2794
- border-color: color-mix(in srgb, var(--fz-ctx, ${Fi}) 40%, var(--line));
2795
- color: var(--fz-ctx, ${Fi});
2795
+ background: color-mix(in srgb, var(--fz-ctx, ${qa}) 14%, var(--canvas));
2796
+ border-color: color-mix(in srgb, var(--fz-ctx, ${qa}) 40%, var(--line));
2797
+ color: var(--fz-ctx, ${qa});
2796
2798
  }
2797
2799
 
2798
2800
  /* match-hidden: search filtered a session row out (only meaningful when open,
@@ -2800,7 +2802,7 @@ slicc-input-card .toolbar slicc-add-menu {
2800
2802
  prototype .fzcard row. */
2801
2803
  .slicc-freezer[open] slicc-freezer-card.match-hidden,
2802
2804
  .slicc-freezer[open] .fzcard.match-hidden { display: none; }
2803
- `,Li=`slicc-freezer-style`;function Ri(e){if(e.getElementById(Li))return;let t=e.createElement(`style`);t.id=Li,t.textContent=Ii,(e.head??e.documentElement).appendChild(t)}var zi=`http://www.w3.org/2000/svg`;function Bi(){let e=document.createElementNS(zi,`svg`);for(let[t,n]of[[`width`,`14`],[`height`,`14`],[`viewBox`,`0 0 16 16`],[`fill`,`none`],[`stroke`,`currentColor`],[`stroke-width`,`1.6`],[`stroke-linecap`,`round`],[`stroke-linejoin`,`round`],[`aria-hidden`,`true`]])e.setAttribute(t,n);let t=document.createElementNS(zi,`rect`);for(let[e,n]of[[`x`,`2.5`],[`y`,`3.5`],[`width`,`11`],[`height`,`9`],[`rx`,`1.5`]])t.setAttribute(e,n);let n=document.createElementNS(zi,`line`);for(let[e,t]of[[`x1`,`6`],[`y1`,`3.5`],[`x2`,`6`],[`y2`,`12.5`]])n.setAttribute(e,t);let r=document.createElementNS(zi,`polyline`);return r.setAttribute(`points`,`9,6.5 10.5,8 9,9.5`),e.append(t,n,r),e}F(`slicc-freezer`,class extends HTMLElement{static observedAttributes=[`open`,`ctx`,`search-placeholder`];#e;#t;#n;#r;#i=!1;#a=null;#o=null;connectedCallback(){Ri(this.ownerDocument),this.classList.add(`slicc-freezer`),this.setAttribute(`part`,`freezer`),this.hasAttribute(`aria-label`)||this.setAttribute(`aria-label`,`Past sessions (freezer)`),this.#s(),this.#l(),this.#u()}disconnectedCallback(){this.#a&&this.#t&&(this.#t.removeEventListener(`click`,this.#a),this.#a=null),this.#o&&this.#n&&(this.#n.removeEventListener(`input`,this.#o),this.#o=null)}attributeChangedCallback(e,t,n){this.#i&&(e===`open`?(this.#l(),this.#u()):e===`search-placeholder`&&(this.#n.placeholder=n??`search past sessions`))}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get ctx(){return this.hasAttribute(`ctx`)}set ctx(e){this.toggleAttribute(`ctx`,e)}get searchPlaceholder(){return this.getAttribute(`search-placeholder`)??`search past sessions`}set searchPlaceholder(e){e==null?this.removeAttribute(`search-placeholder`):this.setAttribute(`search-placeholder`,e)}get query(){return this.#i?this.#n.value:``}set query(e){this.#s(),this.#n.value=e,this.#d()}get rail(){return this.#s(),this.#r}toggle(e){let t=e??!this.open;t===this.open&&this.#l(),this.open=t,this.#l(),this.#u(),this.dispatchEvent(new CustomEvent(`freezer-toggle`,{detail:{open:t},bubbles:!0,composed:!0}))}append(...e){this.#s(),this.#r.append(...e),this.#u()}#s(){if(this.#i)return;let e=this.querySelector(`:scope > .fzh`),t=this.querySelector(`:scope > .fzrail`);if(e instanceof HTMLElement&&t instanceof HTMLElement){this.#c(e,t);return}let n=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&(e.classList.contains(`fzh`)||e.classList.contains(`fzrail`)))),r=this.ownerDocument,i=r.createElement(`div`);i.className=`fzh`,i.setAttribute(`part`,`header`);let a=r.createElement(`button`);a.className=`fztgl`,a.type=`button`,a.setAttribute(`part`,`toggle`),a.setAttribute(`aria-label`,`Toggle freezer`),a.append(Bi());let o=r.createElement(`input`);o.className=`fzsearch`,o.type=`text`,o.setAttribute(`part`,`search`),o.placeholder=this.searchPlaceholder,o.setAttribute(`aria-label`,`Search past sessions`),i.append(a,o);let s=r.createElement(`div`);s.className=`fzrail`,s.setAttribute(`part`,`rail`);for(let e of n)s.appendChild(e);this.replaceChildren(i,s),this.#c(i,s)}#c(e,t){this.#i=!0,this.#e=e,this.#r=t;let n=e.querySelector(`.fztgl`),r=e.querySelector(`.fzsearch`);n&&(this.#t=n),r&&(this.#n=r),this.#t&&!this.#a&&(this.#a=()=>this.toggle(),this.#t.addEventListener(`click`,this.#a)),this.#n&&!this.#o&&(this.#o=()=>this.#d(),this.#n.addEventListener(`input`,this.#o))}#l(){if(!this.#t)return;let e=this.open;this.#t.setAttribute(`aria-expanded`,e?`true`:`false`),this.#t.title=e?`Collapse freezer`:`Expand freezer`}#u(){if(!this.#i)return;let e=this.open,t=this.#r.querySelectorAll(`slicc-freezer-card, slicc-freezer-new`);for(let n of t)n.toggleAttribute(`expanded`,e)}#d(){let e=this.#n.value.trim().toLowerCase(),t=this.#r.querySelectorAll(`slicc-freezer-card, .fzcard`);for(let n of t){let t=(n.textContent??``).toLowerCase();n.classList.toggle(`match-hidden`,e.length>0&&!t.includes(e))}}});var Vi=14,Hi=R(`
2805
+ `,Ya=`slicc-freezer-style`;function Xa(e){if(e.getElementById(Ya))return;let t=e.createElement(`style`);t.id=Ya,t.textContent=Ja,(e.head??e.documentElement).appendChild(t)}var Za=`http://www.w3.org/2000/svg`;function Qa(){let e=document.createElementNS(Za,`svg`);for(let[t,n]of[[`width`,`14`],[`height`,`14`],[`viewBox`,`0 0 16 16`],[`fill`,`none`],[`stroke`,`currentColor`],[`stroke-width`,`1.6`],[`stroke-linecap`,`round`],[`stroke-linejoin`,`round`],[`aria-hidden`,`true`]])e.setAttribute(t,n);let t=document.createElementNS(Za,`rect`);for(let[e,n]of[[`x`,`2.5`],[`y`,`3.5`],[`width`,`11`],[`height`,`9`],[`rx`,`1.5`]])t.setAttribute(e,n);let n=document.createElementNS(Za,`line`);for(let[e,t]of[[`x1`,`6`],[`y1`,`3.5`],[`x2`,`6`],[`y2`,`12.5`]])n.setAttribute(e,t);let r=document.createElementNS(Za,`polyline`);return r.setAttribute(`points`,`9,6.5 10.5,8 9,9.5`),e.append(t,n,r),e}F(`slicc-freezer`,class extends HTMLElement{static observedAttributes=[`open`,`ctx`,`search-placeholder`];#e;#t;#n;#r;#i=!1;#a=null;#o=null;connectedCallback(){Xa(this.ownerDocument),this.classList.add(`slicc-freezer`),this.setAttribute(`part`,`freezer`),this.hasAttribute(`aria-label`)||this.setAttribute(`aria-label`,`Past sessions (freezer)`),this.#s(),this.#l(),this.#u()}disconnectedCallback(){this.#a&&this.#t&&(this.#t.removeEventListener(`click`,this.#a),this.#a=null),this.#o&&this.#n&&(this.#n.removeEventListener(`input`,this.#o),this.#o=null)}attributeChangedCallback(e,t,n){this.#i&&(e===`open`?(this.#l(),this.#u()):e===`search-placeholder`&&(this.#n.placeholder=n??`search past sessions`))}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get ctx(){return this.hasAttribute(`ctx`)}set ctx(e){this.toggleAttribute(`ctx`,e)}get searchPlaceholder(){return this.getAttribute(`search-placeholder`)??`search past sessions`}set searchPlaceholder(e){e==null?this.removeAttribute(`search-placeholder`):this.setAttribute(`search-placeholder`,e)}get query(){return this.#i?this.#n.value:``}set query(e){this.#s(),this.#n.value=e,this.#d()}get rail(){return this.#s(),this.#r}toggle(e){let t=e??!this.open;t===this.open&&this.#l(),this.open=t,this.#l(),this.#u(),this.dispatchEvent(new CustomEvent(`freezer-toggle`,{detail:{open:t},bubbles:!0,composed:!0}))}append(...e){this.#s(),this.#r.append(...e),this.#u()}#s(){if(this.#i)return;let e=this.querySelector(`:scope > .fzh`),t=this.querySelector(`:scope > .fzrail`);if(e instanceof HTMLElement&&t instanceof HTMLElement){this.#c(e,t);return}let n=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&(e.classList.contains(`fzh`)||e.classList.contains(`fzrail`)))),r=this.ownerDocument,i=r.createElement(`div`);i.className=`fzh`,i.setAttribute(`part`,`header`);let a=r.createElement(`button`);a.className=`fztgl`,a.type=`button`,a.setAttribute(`part`,`toggle`),a.setAttribute(`aria-label`,`Toggle freezer`),a.append(Qa());let o=r.createElement(`input`);o.className=`fzsearch`,o.type=`text`,o.setAttribute(`part`,`search`),o.placeholder=this.searchPlaceholder,o.setAttribute(`aria-label`,`Search past sessions`),i.append(a,o);let s=r.createElement(`div`);s.className=`fzrail`,s.setAttribute(`part`,`rail`);for(let e of n)s.appendChild(e);this.replaceChildren(i,s),this.#c(i,s)}#c(e,t){this.#i=!0,this.#e=e,this.#r=t;let n=e.querySelector(`.fztgl`),r=e.querySelector(`.fzsearch`);n&&(this.#t=n),r&&(this.#n=r),this.#t&&!this.#a&&(this.#a=()=>this.toggle(),this.#t.addEventListener(`click`,this.#a)),this.#n&&!this.#o&&(this.#o=()=>this.#d(),this.#n.addEventListener(`input`,this.#o))}#l(){if(!this.#t)return;let e=this.open;this.#t.setAttribute(`aria-expanded`,e?`true`:`false`),this.#t.title=e?`Collapse freezer`:`Expand freezer`}#u(){if(!this.#i)return;let e=this.open,t=this.#r.querySelectorAll(`slicc-freezer-card, slicc-freezer-new`);for(let n of t)n.toggleAttribute(`expanded`,e)}#d(){let e=this.#n.value.trim().toLowerCase(),t=this.#r.querySelectorAll(`slicc-freezer-card, .fzcard`);for(let n of t){let t=(n.textContent??``).toLowerCase();n.classList.toggle(`match-hidden`,e.length>0&&!t.includes(e))}}});var $a=14,eo=L(`
2804
2806
  :host {
2805
2807
  display: inline-grid;
2806
2808
  place-items: center;
@@ -2836,7 +2838,7 @@ slicc-input-card .toolbar slicc-add-menu {
2836
2838
  nothing is slotted */
2837
2839
  ::slotted(*), .ic { line-height: 1; }
2838
2840
  .ic { display: block; }
2839
- `);F(`slicc-snowflake`,class extends HTMLElement{static observedAttributes=[`thawed`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Hi];let e=L(`span`,{class:`snow`,part:`badge`},L(`slot`,null,r(`snowflake`,{size:Vi,part:`glyph`,class:`ic`})));this.#e.replaceChildren(e)}get thawed(){return this.hasAttribute(`thawed`)}set thawed(e){this.toggleAttribute(`thawed`,e)}});var Ui=`
2841
+ `);F(`slicc-snowflake`,class extends HTMLElement{static observedAttributes=[`thawed`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[eo];let e=I(`span`,{class:`snow`,part:`badge`},I(`slot`,null,i(`snowflake`,{size:$a,part:`glyph`,class:`ic`})));this.#e.replaceChildren(e)}get thawed(){return this.hasAttribute(`thawed`)}set thawed(e){this.toggleAttribute(`thawed`,e)}});var to=`
2840
2842
  slicc-freezer-card {
2841
2843
  position: relative;
2842
2844
  display: flex;
@@ -2929,7 +2931,7 @@ slicc-freezer-card .slicc-fzcard__meta {
2929
2931
  slicc-freezer-card[thawed] {
2930
2932
  background: color-mix(in srgb, var(--rose) 12%, transparent);
2931
2933
  }
2932
- `,Wi=`slicc-freezer-card-style`;function Gi(e){if(e.getElementById(Wi))return;let t=e.createElement(`style`);t.id=Wi,t.textContent=Ui,(e.head??e.documentElement).appendChild(t)}var Ki=1400,qi=14;F(`slicc-freezer-card`,class extends HTMLElement{static observedAttributes=[`title`,`meta`,`slug`,`icon`,`thawed`];#e;#t;#n;#r;#i=null;#a=null;#o=!1;#s=null;#c=()=>this.#u();#l=()=>{if(!this.#i)return;let e=this.getBoundingClientRect();this.#i.style.setProperty(`--tip-x`,`${e.right+8}px`),this.#i.style.setProperty(`--tip-y`,`${e.top+e.height/2}px`)};connectedCallback(){Gi(this.ownerDocument),this.#d(),this.#f()}disconnectedCallback(){this.removeEventListener(`click`,this.#c),this.removeEventListener(`pointerenter`,this.#l),this.removeEventListener(`focusin`,this.#l),this.#s!=null&&(clearTimeout(this.#s),this.#s=null)}attributeChangedCallback(e,t,n){t===n||!this.#o||(e===`thawed`?this.#e.toggleAttribute(`thawed`,n!==null):e===`icon`?this.#p():this.#f())}get title(){return this.getAttribute(`title`)??``}set title(e){e==null?this.removeAttribute(`title`):this.setAttribute(`title`,e)}get meta(){return this.getAttribute(`meta`)??``}set meta(e){e==null?this.removeAttribute(`meta`):this.setAttribute(`meta`,e)}get slug(){return this.getAttribute(`slug`)??``}set slug(e){e==null?this.removeAttribute(`slug`):this.setAttribute(`slug`,e)}get icon(){return this.getAttribute(`icon`)}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get expanded(){return this.hasAttribute(`expanded`)}set expanded(e){this.toggleAttribute(`expanded`,e)}get thawed(){return this.hasAttribute(`thawed`)}set thawed(e){this.toggleAttribute(`thawed`,e)}get hidden(){return this.hasAttribute(`hidden`)}set hidden(e){this.toggleAttribute(`hidden`,e)}get badge(){return this.#d(),this.#e}#u(){this.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:this.slug}})),this.flashThaw()}flashThaw(e=Ki){this.#s!=null&&clearTimeout(this.#s),this.thawed=!0,this.#s=setTimeout(()=>{this.thawed=!1,this.#s=null},e)}#d(){if(this.#o)return;this.#o=!0;let e=this.querySelector(`:scope > .slicc-fzcard__text`);if(e instanceof HTMLElement){this.#t=e,this.#n=e.querySelector(`.slicc-fzcard__title`),this.#r=e.querySelector(`.slicc-fzcard__meta`),this.#e=this.querySelector(`:scope > slicc-snowflake`),this.#i=this.querySelector(`:scope > .slicc-fzcard__tip`),this.addEventListener(`click`,this.#c),this.addEventListener(`pointerenter`,this.#l),this.addEventListener(`focusin`,this.#l);return}let t=Array.from(this.childNodes);this.#e=this.ownerDocument.createElement(`slicc-snowflake`),this.#e.setAttribute(`part`,`badge`),this.#n=L(`div`,{class:`slicc-fzcard__title`,part:`title`}),this.#r=L(`div`,{class:`slicc-fzcard__meta`,part:`meta`}),this.#t=L(`div`,{class:`slicc-fzcard__text`,part:`text`},this.#n,this.#r);for(let e of t)this.#n.appendChild(e);this.#i=L(`span`,{class:`slicc-fzcard__tip`,part:`tip`,"aria-hidden":`true`}),this.replaceChildren(this.#e,this.#t,this.#i),this.addEventListener(`click`,this.#c),this.addEventListener(`pointerenter`,this.#l),this.addEventListener(`focusin`,this.#l)}#f(){if(!this.#o)return;let e=this.getAttribute(`title`);e!=null&&(this.#n.textContent=e),this.#r.textContent=this.meta,this.#i&&(this.#i.textContent=e??(this.#n.textContent||``)),this.#e.toggleAttribute(`thawed`,this.thawed),this.#p()}#p(){if(!this.#o)return;let e=this.getAttribute(`icon`);if(e){let t=r(e,{size:qi,class:`ic`,part:`icon`});this.#a?this.#a.replaceWith(t):this.#e.appendChild(t),this.#a=t}else this.#a&&=(this.#a.remove(),null)}});var Ji=`square-pen`,Yi=`loader-circle`,Xi=16,Zi=`New chat`,Qi=350,$i=[[`new-chat-save`,`square-pen`,`New chat — save & extract memories`],[`new-chat-skip`,`fast-forward`,`New chat, fast — memories extracted later`],[`new-chat-erase`,`trash-2`,`Discard this chat — no freezer, no memories`],[`new-cone`,`plus`,`New cone — keep this chat, start another cone`],[`drop-cone`,`circle-minus`,`Drop this cone — freeze its chat, no memories`]],ea=R(`
2934
+ `,no=`slicc-freezer-card-style`;function ro(e){if(e.getElementById(no))return;let t=e.createElement(`style`);t.id=no,t.textContent=to,(e.head??e.documentElement).appendChild(t)}var io=1400,ao=14;F(`slicc-freezer-card`,class extends HTMLElement{static observedAttributes=[`title`,`meta`,`slug`,`icon`,`thawed`];#e;#t;#n;#r;#i=null;#a=null;#o=!1;#s=null;#c=()=>this.#u();#l=()=>{if(!this.#i)return;let e=this.getBoundingClientRect();this.#i.style.setProperty(`--tip-x`,`${e.right+8}px`),this.#i.style.setProperty(`--tip-y`,`${e.top+e.height/2}px`)};connectedCallback(){ro(this.ownerDocument),this.#d(),this.#f()}disconnectedCallback(){this.removeEventListener(`click`,this.#c),this.removeEventListener(`pointerenter`,this.#l),this.removeEventListener(`focusin`,this.#l),this.#s!=null&&(clearTimeout(this.#s),this.#s=null)}attributeChangedCallback(e,t,n){t===n||!this.#o||(e===`thawed`?this.#e.toggleAttribute(`thawed`,n!==null):e===`icon`?this.#p():this.#f())}get title(){return this.getAttribute(`title`)??``}set title(e){e==null?this.removeAttribute(`title`):this.setAttribute(`title`,e)}get meta(){return this.getAttribute(`meta`)??``}set meta(e){e==null?this.removeAttribute(`meta`):this.setAttribute(`meta`,e)}get slug(){return this.getAttribute(`slug`)??``}set slug(e){e==null?this.removeAttribute(`slug`):this.setAttribute(`slug`,e)}get icon(){return this.getAttribute(`icon`)}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get expanded(){return this.hasAttribute(`expanded`)}set expanded(e){this.toggleAttribute(`expanded`,e)}get thawed(){return this.hasAttribute(`thawed`)}set thawed(e){this.toggleAttribute(`thawed`,e)}get hidden(){return this.hasAttribute(`hidden`)}set hidden(e){this.toggleAttribute(`hidden`,e)}get badge(){return this.#d(),this.#e}#u(){this.dispatchEvent(new CustomEvent(`freezer-card-select`,{bubbles:!0,composed:!0,detail:{slug:this.slug}})),this.flashThaw()}flashThaw(e=io){this.#s!=null&&clearTimeout(this.#s),this.thawed=!0,this.#s=setTimeout(()=>{this.thawed=!1,this.#s=null},e)}#d(){if(this.#o)return;this.#o=!0;let e=this.querySelector(`:scope > .slicc-fzcard__text`);if(e instanceof HTMLElement){this.#t=e,this.#n=e.querySelector(`.slicc-fzcard__title`),this.#r=e.querySelector(`.slicc-fzcard__meta`),this.#e=this.querySelector(`:scope > slicc-snowflake`),this.#i=this.querySelector(`:scope > .slicc-fzcard__tip`),this.addEventListener(`click`,this.#c),this.addEventListener(`pointerenter`,this.#l),this.addEventListener(`focusin`,this.#l);return}let t=Array.from(this.childNodes);this.#e=this.ownerDocument.createElement(`slicc-snowflake`),this.#e.setAttribute(`part`,`badge`),this.#n=I(`div`,{class:`slicc-fzcard__title`,part:`title`}),this.#r=I(`div`,{class:`slicc-fzcard__meta`,part:`meta`}),this.#t=I(`div`,{class:`slicc-fzcard__text`,part:`text`},this.#n,this.#r);for(let e of t)this.#n.appendChild(e);this.#i=I(`span`,{class:`slicc-fzcard__tip`,part:`tip`,"aria-hidden":`true`}),this.replaceChildren(this.#e,this.#t,this.#i),this.addEventListener(`click`,this.#c),this.addEventListener(`pointerenter`,this.#l),this.addEventListener(`focusin`,this.#l)}#f(){if(!this.#o)return;let e=this.getAttribute(`title`);e!=null&&(this.#n.textContent=e),this.#r.textContent=this.meta,this.#i&&(this.#i.textContent=e??(this.#n.textContent||``)),this.#e.toggleAttribute(`thawed`,this.thawed),this.#p()}#p(){if(!this.#o)return;let e=this.getAttribute(`icon`);if(e){let t=i(e,{size:ao,class:`ic`,part:`icon`});this.#a?this.#a.replaceWith(t):this.#e.appendChild(t),this.#a=t}else this.#a&&=(this.#a.remove(),null)}});var oo=`square-pen`,so=`loader-circle`,co=16,lo=`New chat`,uo=350,fo=[[`new-chat-save`,`square-pen`,`New chat — save & extract memories`],[`new-chat-skip`,`fast-forward`,`New chat, fast — memories extracted later`],[`new-chat-erase`,`trash-2`,`Discard this chat — no freezer, no memories`],[`new-cone`,`plus`,`New cone — keep this chat, start another cone`],[`drop-cone`,`circle-minus`,`Drop this cone — freeze its chat, no memories`]],po=L(`
2933
2935
  :host { display: block; }
2934
2936
  :host([hidden]) { display: none; }
2935
2937
  *{ box-sizing: border-box; }
@@ -3075,18 +3077,18 @@ slicc-freezer-card[thawed] {
3075
3077
  .fznew, .nlbl { transition: none; }
3076
3078
  .fznew-spinner svg { animation: none; }
3077
3079
  }
3078
- `);F(`slicc-freezer-new`,class extends HTMLElement{static observedAttributes=[`expanded`,`label`,`busy`,`progress`,`no-skip`,`cones`];#e;#t=null;#n=null;#r=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ea]}connectedCallback(){this.#a()}disconnectedCallback(){this.#n?.destroy(),this.#n=null,this.#l()}attributeChangedCallback(e){e===`progress`&&this.#i()||this.isConnected&&this.#a()}get expanded(){return this.hasAttribute(`expanded`)}set expanded(e){this.toggleAttribute(`expanded`,e)}get label(){return this.getAttribute(`label`)??Zi}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get noSkip(){return this.hasAttribute(`no-skip`)}set noSkip(e){this.toggleAttribute(`no-skip`,e)}get cones(){let e=this.getAttribute(`cones`);if(e==null)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>=0?t:null}set cones(e){e==null?this.removeAttribute(`cones`):this.setAttribute(`cones`,String(Math.max(0,Math.floor(e))))}get busy(){return this.hasAttribute(`busy`)}set busy(e){this.toggleAttribute(`busy`,e)}get progress(){let e=this.getAttribute(`progress`);if(e==null)return null;let t=Number.parseFloat(e);return Number.isFinite(t)?Math.min(1,Math.max(0,t)):null}set progress(e){e==null?this.removeAttribute(`progress`):this.setAttribute(`progress`,String(Math.min(1,Math.max(0,e))))}#i(){let e=this.#e.querySelector(`.fznew-ring`);return!e||!this.busy||!this.hasAttribute(`progress`)?!1:(e.style.setProperty(`--fznew-progress`,String(this.progress??0)),!0)}#a(){let e=this.label,t=this.busy,n=t&&this.hasAttribute(`progress`),i=L(`span`,{class:`nico`,part:`badge`},t?L(`span`,{class:`fznew-spinner`,part:`spinner`},n?L(`span`,{class:`fznew-ring`,part:`ring`,style:`--fznew-progress:${this.progress??0}`}):null,r(Yi,{size:Xi,part:`icon`})):L(`slot`,{name:`icon`},r(Ji,{size:Xi,part:`icon`}))),a=L(`span`,{class:`nlbl`,part:`label`},L(`slot`,null,e)),o=L(`button`,{class:`fznew`,part:`button`,type:`button`,"aria-label":e,title:e,"aria-busy":t?`true`:void 0},i,a);this.#t=o,this.#c(o),this.#e.replaceChildren(o,this.#o(t,n))}#o(e,t){let n=L(`div`,{class:`fznew-row`,part:`row`,role:`group`,"aria-label":this.label});for(let[i,a,o]of this.#s()){let s=i===`new-chat-save`,c=s&&e?L(`span`,{class:`fznew-spinner`},t?L(`span`,{class:`fznew-ring`,style:`--fznew-progress:${this.progress??0}`}):null,r(Yi,{size:Xi})):r(a,{size:Xi}),l=L(`button`,{class:`fznew-act fznew-act--${i}`,part:`action-${i}`,type:`button`,title:o,"aria-label":o,"aria-busy":s&&e?`true`:void 0},c);l.disabled=e,l.addEventListener(`click`,()=>{this.busy||this.#u(i)}),n.appendChild(l)}return n}#s(){let e=this.cones;return $i.filter(([t])=>t===`new-chat-skip`?!this.noSkip:t===`new-cone`?e!==null:t!==`drop-cone`||e!==null&&e>1)}#c(e){this.#n?.destroy(),this.#l(),this.#n=Si(e,{onLongPress:()=>{if(this.#r!==null){this.#l(),this.#u(`new-chat-skip`);return}this.#u(`new-chat-erase`)},onShortClick:()=>{if(this.noSkip){this.#u(`new-chat-save`);return}if(this.#r!==null){this.#l(),this.#u(`new-chat-skip`);return}this.#r=setTimeout(()=>{this.#r=null,this.#u(`new-chat-save`)},Qi)}})}#l(){this.#r!==null&&(clearTimeout(this.#r),this.#r=null)}#u(e){e===`new-chat-save`&&(this.busy=!0),this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0}))}});var ta=1e3/15;function na(e,t,n){return n?!0:e-t>=62.66666666666667}function ra(e,t,n){if(n||!Number.isFinite(t))return e;let r=t+ta;return e-r>66.66666666666667?e:r}var ia=`attribute vec2 a_pos; void main(){ gl_Position = vec4(a_pos,0.0,1.0); }`,aa=`precision highp float;
3080
+ `);F(`slicc-freezer-new`,class extends HTMLElement{static observedAttributes=[`expanded`,`label`,`busy`,`progress`,`no-skip`,`cones`];#e;#t=null;#n=null;#r=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[po]}connectedCallback(){this.#a()}disconnectedCallback(){this.#n?.destroy(),this.#n=null,this.#l()}attributeChangedCallback(e){e===`progress`&&this.#i()||this.isConnected&&this.#a()}get expanded(){return this.hasAttribute(`expanded`)}set expanded(e){this.toggleAttribute(`expanded`,e)}get label(){return this.getAttribute(`label`)??lo}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get noSkip(){return this.hasAttribute(`no-skip`)}set noSkip(e){this.toggleAttribute(`no-skip`,e)}get cones(){let e=this.getAttribute(`cones`);if(e==null)return null;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>=0?t:null}set cones(e){e==null?this.removeAttribute(`cones`):this.setAttribute(`cones`,String(Math.max(0,Math.floor(e))))}get busy(){return this.hasAttribute(`busy`)}set busy(e){this.toggleAttribute(`busy`,e)}get progress(){let e=this.getAttribute(`progress`);if(e==null)return null;let t=Number.parseFloat(e);return Number.isFinite(t)?Math.min(1,Math.max(0,t)):null}set progress(e){e==null?this.removeAttribute(`progress`):this.setAttribute(`progress`,String(Math.min(1,Math.max(0,e))))}#i(){let e=this.#e.querySelector(`.fznew-ring`);return!e||!this.busy||!this.hasAttribute(`progress`)?!1:(e.style.setProperty(`--fznew-progress`,String(this.progress??0)),!0)}#a(){let e=this.label,t=this.busy,n=t&&this.hasAttribute(`progress`),r=I(`span`,{class:`nico`,part:`badge`},t?I(`span`,{class:`fznew-spinner`,part:`spinner`},n?I(`span`,{class:`fznew-ring`,part:`ring`,style:`--fznew-progress:${this.progress??0}`}):null,i(so,{size:co,part:`icon`})):I(`slot`,{name:`icon`},i(oo,{size:co,part:`icon`}))),a=I(`span`,{class:`nlbl`,part:`label`},I(`slot`,null,e)),o=I(`button`,{class:`fznew`,part:`button`,type:`button`,"aria-label":e,title:e,"aria-busy":t?`true`:void 0},r,a);this.#t=o,this.#c(o),this.#e.replaceChildren(o,this.#o(t,n))}#o(e,t){let n=I(`div`,{class:`fznew-row`,part:`row`,role:`group`,"aria-label":this.label});for(let[r,a,o]of this.#s()){let s=r===`new-chat-save`,c=s&&e?I(`span`,{class:`fznew-spinner`},t?I(`span`,{class:`fznew-ring`,style:`--fznew-progress:${this.progress??0}`}):null,i(so,{size:co})):i(a,{size:co}),l=I(`button`,{class:`fznew-act fznew-act--${r}`,part:`action-${r}`,type:`button`,title:o,"aria-label":o,"aria-busy":s&&e?`true`:void 0},c);l.disabled=e,l.addEventListener(`click`,()=>{this.busy||this.#u(r)}),n.appendChild(l)}return n}#s(){let e=this.cones;return fo.filter(([t])=>t===`new-chat-skip`?!this.noSkip:t===`new-cone`?e!==null:t!==`drop-cone`||e!==null&&e>1)}#c(e){this.#n?.destroy(),this.#l(),this.#n=Pa(e,{onLongPress:()=>{if(this.#r!==null){this.#l(),this.#u(`new-chat-skip`);return}this.#u(`new-chat-erase`)},onShortClick:()=>{if(this.noSkip){this.#u(`new-chat-save`);return}if(this.#r!==null){this.#l(),this.#u(`new-chat-skip`);return}this.#r=setTimeout(()=>{this.#r=null,this.#u(`new-chat-save`)},uo)}})}#l(){this.#r!==null&&(clearTimeout(this.#r),this.#r=null)}#u(e){e===`new-chat-save`&&(this.busy=!0),this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0}))}});var mo=1e3/15;function ho(e,t,n){return n?!0:e-t>=62.66666666666667}function go(e,t,n){if(n||!Number.isFinite(t))return e;let r=t+mo;return e-r>66.66666666666667?e:r}var _o=`attribute vec2 a_pos; void main(){ gl_Position = vec4(a_pos,0.0,1.0); }`,vo=`precision highp float;
3079
3081
  uniform vec2 u_res; uniform float u_time; uniform float u_energy;
3080
3082
  uniform vec2 u_center; uniform vec3 u_evt; uniform float u_freeze; uniform float u_dark;
3081
3083
  uniform float u_falloff; uniform float u_life; uniform vec3 u_tint; uniform float u_scroll;
3082
3084
  uniform float u_brightness; uniform float u_contrast; uniform float u_noise; uniform float u_blur;
3083
- vec3 themeBg(){ return mix(vec3(0.97,0.95,0.89), vec3(0.09,0.08,0.06), u_dark); }`,oa=`
3085
+ vec3 themeBg(){ return mix(vec3(0.97,0.95,0.89), vec3(0.09,0.08,0.06), u_dark); }`,yo=`
3084
3086
  float hash21(vec2 p){ p=fract(p*vec2(123.34,456.21)); p+=dot(p,p+45.32); return fract(p.x*p.y); }
3085
3087
  float vnoise(vec2 p){ vec2 i=floor(p),f=fract(p);
3086
3088
  float a=hash21(i),b=hash21(i+vec2(1.,0.)),c=hash21(i+vec2(0.,1.)),d=hash21(i+vec2(1.,1.));
3087
3089
  vec2 u=f*f*(3.-2.*f); return mix(mix(a,b,u.x),mix(c,d,u.x),u.y); }
3088
3090
  float fbm(vec2 p){ float v=0.,a=0.5; for(int i=0;i<5;i++){ v+=a*vnoise(p); p=p*2.02+vec2(7.1,3.7); a*=0.5;} return v; }
3089
- vec2 warp(vec2 p, float t){ float a=fbm(p+vec2(0.0,1.7)+t*0.10); float b=fbm(p+vec2(5.2,1.3)-t*0.08); return p+0.85*vec2(a,b); }`,sa=`${aa}${oa}
3091
+ vec2 warp(vec2 p, float t){ float a=fbm(p+vec2(0.0,1.7)+t*0.10); float b=fbm(p+vec2(5.2,1.3)-t*0.08); return p+0.85*vec2(a,b); }`,bo=`${vo}${yo}
3090
3092
  vec3 pal(float t){ vec3 strawberry=vec3(1.0,0.45,0.62); vec3 vanilla=vec3(1.0,0.95,0.82);
3091
3093
  vec3 pistachio=vec3(0.60,0.86,0.52);
3092
3094
  vec3 col=mix(strawberry,vanilla,smoothstep(0.0,0.5,t)); col=mix(col,pistachio,smoothstep(0.5,1.0,t)); return col; }
@@ -3105,7 +3107,7 @@ void main(){
3105
3107
  ice*=0.95+0.08*sin(u_time*0.4); float mask=smoothstep(0.62,0.0,r);
3106
3108
  vec3 col=mix(bg,ice,clamp(mask,0.0,1.0)*0.80); col+=ice*mask*hl*0.12;
3107
3109
  gl_FragColor=vec4(col,1.0);
3108
- }`,ca=`${aa}${oa}
3110
+ }`,xo=`${vo}${yo}
3109
3111
  /* Inside-of-a-freezer ground: icy WHITE in light mode (never the warm theme
3110
3112
  canvas — blue-on-beige read as sand, not frost), cold blue-black in dark. */
3111
3113
  vec3 freezerBg(){ return mix(vec3(0.965,0.98,1.0), vec3(0.05,0.08,0.13), u_dark); }
@@ -3132,7 +3134,7 @@ void main(){
3132
3134
  deviation budget the cone glass uses. */
3133
3135
  col=mix(freezerBg(),col,0.22);
3134
3136
  gl_FragColor=vec4(col,1.0);
3135
- }`,la=`${aa}${oa}
3137
+ }`,So=`${vo}${yo}
3136
3138
  uniform float u_speed;
3137
3139
  vec2 sugarHash(vec2 p){ p=vec2(dot(p,vec2(127.1,311.7)),dot(p,vec2(269.5,183.3))); return fract(sin(p)*43758.5453123); }
3138
3140
  vec3 sugarVoronoi(vec2 p,float t){
@@ -3211,19 +3213,19 @@ void main(){
3211
3213
  col+=u_noise*grain; col=(col-0.5)*u_contrast+0.5; col*=u_brightness; col=clamp(col,0.0,1.0);
3212
3214
  col=clamp(col,max(bg-vec3(0.20),vec3(0.0)),min(bg+vec3(0.20),vec3(1.0)));
3213
3215
  gl_FragColor=vec4(col,1.0);
3214
- }`,ua={caramel:{mode:`cone`,tint:`#d08a3c`,brightness:1.1,contrast:1.1,noise:.025,blur:.14,coverage:.28,speed:.0625},"caramel-soft":{mode:`cone`,tint:`#d08a3c`,brightness:1.2,contrast:.75,noise:.025,blur:.14,coverage:.28,speed:1},frosted:{mode:`cone`,tint:`#ead9bd`,brightness:1,contrast:.55,noise:.005,blur:.9,coverage:.08,speed:1},brittle:{mode:`cone`,tint:`#ffd089`,brightness:.96,contrast:1.2,noise:.055,blur:.02,coverage:.68,speed:1},"waffle-glass":{mode:`cone`,tint:`#d3a15f`,brightness:1,contrast:.9,noise:.02,blur:.08,coverage:.9,speed:1}},da={cone:la,scoop:sa,freezer:ca},fa=new Set([`cone`,`scoop`,`freezer`]),pa={cone:`radial-gradient(120% 120% at 35% 45%, color-mix(in srgb,#d08a3c 20%,var(--bg)) 0%, var(--bg) 70%)`,scoop:`radial-gradient(120% 120% at 40% 50%, color-mix(in srgb,#ff9bc0 40%,var(--bg)) 0%, var(--bg) 62%)`,freezer:`radial-gradient(120% 120% at 0% 100%, color-mix(in srgb,#7fb0e6 55%,var(--bg)) 0%, var(--bg) 70%)`},ma=R(`
3216
+ }`,Co={caramel:{mode:`cone`,tint:`#d08a3c`,brightness:1.1,contrast:1.1,noise:.025,blur:.14,coverage:.28,speed:.0625},"caramel-soft":{mode:`cone`,tint:`#d08a3c`,brightness:1.2,contrast:.75,noise:.025,blur:.14,coverage:.28,speed:1},frosted:{mode:`cone`,tint:`#ead9bd`,brightness:1,contrast:.55,noise:.005,blur:.9,coverage:.08,speed:1},brittle:{mode:`cone`,tint:`#ffd089`,brightness:.96,contrast:1.2,noise:.055,blur:.02,coverage:.68,speed:1},"waffle-glass":{mode:`cone`,tint:`#d3a15f`,brightness:1,contrast:.9,noise:.02,blur:.08,coverage:.9,speed:1}},wo={cone:So,scoop:bo,freezer:xo},To=new Set([`cone`,`scoop`,`freezer`]),Eo={cone:`radial-gradient(120% 120% at 35% 45%, color-mix(in srgb,#d08a3c 20%,var(--bg)) 0%, var(--bg) 70%)`,scoop:`radial-gradient(120% 120% at 40% 50%, color-mix(in srgb,#ff9bc0 40%,var(--bg)) 0%, var(--bg) 62%)`,freezer:`radial-gradient(120% 120% at 0% 100%, color-mix(in srgb,#7fb0e6 55%,var(--bg)) 0%, var(--bg) 70%)`},Do=L(`
3215
3217
  :host { position: relative; display: block; pointer-events: none; }
3216
3218
  .canvas, .fallback { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
3217
3219
  .fallback { display: none; }
3218
3220
  :host([no-webgl]) .canvas { display: none; }
3219
- :host([no-webgl]) .fallback { display: block; }`),ha=1,ga=.5,_a=2,va=.35,ya=3e3,ba=[`u_res`,`u_scroll`,`u_time`,`u_energy`,`u_center`,`u_evt`,`u_freeze`,`u_dark`,`u_falloff`,`u_life`,`u_tint`,`u_brightness`,`u_contrast`,`u_noise`,`u_blur`,`u_speed`];function xa(e,t,n,r){return Number.isFinite(e)?Math.max(t,Math.min(n,e)):r}function Sa(e,t){if(!e||typeof getComputedStyle!=`function`)return t;let n=document.createElement(`span`);n.style.color=e,n.style.display=`none`,document.body.appendChild(n);let r=getComputedStyle(n).color;n.remove();let i=r.match(/[\d.]+/g)?.map(Number);return!i||i.length<3?t:[i[0]/255,i[1]/255,i[2]/255]}var Ca=class extends HTMLElement{static observedAttributes=[`mode`,`tint`,`coverage`,`intensity`,`scroll`,`brightness`,`contrast`,`noise`,`blur`,`speed`,`dpr`];#e;#t=null;#n=null;#r=null;#i={};#a=null;#o={};#s=-1;#c=0;#l=0;#u=0;#d=-1/0;#f=0;#p=!1;#m=0;#h=null;#g=!1;#_=[.816,.541,.235];#v=[.957,.247,.369];#y=0;#b=null;#x=null;#S=null;#C=null;#w=null;#T=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ma];let e=L(`canvas`,{class:`canvas`,part:`canvas`}),t=L(`div`,{class:`fallback`,part:`fallback`,"aria-hidden":`true`});this.#e.replaceChildren(e,t),this.#t=e}connectedCallback(){if(this.#g=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches,this.#E(),!this.#P()){this.setAttribute(`no-webgl`,``);return}if(this.removeAttribute(`no-webgl`),typeof ResizeObserver<`u`){let e=!0;this.#h=new ResizeObserver(()=>{let t=e;e=!1,this.#G({burst:!t})}),this.#h.observe(this)}this.#D(),this.#O(),this.#l=performance.now()/1e3,this.#d=-1/0,this.#p=!1,this.#z(),this.#G()}disconnectedCallback(){this.#q(),this.#h?.disconnect(),this.#h=null,this.#b?.disconnect(),this.#b=null,this.#x&&this.#S&&this.#x.removeEventListener(`change`,this.#S),this.#x=null,this.#S=null,this.#J()}attributeChangedCallback(e){if(this.isConnected){if((e===`tint`||e===`mode`)&&this.#D(),e===`mode`&&this.#n&&this.mode!==this.#C){if(this.#j()){this.#U(),this.#d=performance.now(),this.#E(),this.#G();return}console.error(`[slicc-shader] mode switch failed to link program`)}this.#E(),this.#G({burst:!0})}}get mode(){let e=this.getAttribute(`mode`);return e&&fa.has(e)?e:`cone`}set mode(e){this.setAttribute(`mode`,e)}get coverage(){let e=this.mode===`cone`?ua.caramel.coverage:.66;return xa(Number.parseFloat(this.getAttribute(`coverage`)??``),0,1,e)}set coverage(e){this.setAttribute(`coverage`,String(e))}get intensity(){return xa(Number.parseFloat(this.getAttribute(`intensity`)??``),0,4,1)}set intensity(e){this.setAttribute(`intensity`,String(e))}get scrollOffset(){let e=Number.parseFloat(this.getAttribute(`scroll`)??``);return Number.isFinite(e)?e:0}set scrollOffset(e){this.setAttribute(`scroll`,String(e))}get brightness(){return xa(Number.parseFloat(this.getAttribute(`brightness`)??``),.5,1.5,ua.caramel.brightness)}set brightness(e){this.setAttribute(`brightness`,String(e))}get contrast(){return xa(Number.parseFloat(this.getAttribute(`contrast`)??``),.5,2,ua.caramel.contrast)}set contrast(e){this.setAttribute(`contrast`,String(e))}get noise(){return xa(Number.parseFloat(this.getAttribute(`noise`)??``),0,.3,ua.caramel.noise)}set noise(e){this.setAttribute(`noise`,String(e))}get blurAmount(){return xa(Number.parseFloat(this.getAttribute(`blur`)??``),0,1,ua.caramel.blur)}set blurAmount(e){this.setAttribute(`blur`,String(e))}get speed(){return xa(Number.parseFloat(this.getAttribute(`speed`)??``),0,2,ua.caramel.speed)}set speed(e){this.setAttribute(`speed`,String(e))}get dpr(){return xa(Number.parseFloat(this.getAttribute(`dpr`)??``),ga,_a,ha)}set dpr(e){this.setAttribute(`dpr`,String(e))}get noWebgl(){return this.hasAttribute(`no-webgl`)}pulse(e=1){Number.isFinite(e)&&(this.#u=Math.min(1.4,Math.max(0,this.#u+e)),this.#G({burst:!0}))}#E(){let e=this.#e.querySelector(`.fallback`);e&&(e.style.background=pa[this.mode])}#D(){let e=this.getAttribute(`tint`)??(this.mode===`cone`?ua.caramel.tint:``);this.#_=Sa(e,[.545,.361,.965]),this.#v=Sa(e,[.957,.247,.369]),this.#y=this.#H()}#O(){let e=()=>{this.#D(),this.#G({burst:!0})};if(typeof MutationObserver<`u`){this.#b=new MutationObserver(e);for(let e of[document.documentElement,document.body])e&&this.#b.observe(e,{attributes:!0,attributeFilter:[`class`,`data-theme`]})}typeof matchMedia==`function`&&(this.#x=matchMedia(`(prefers-color-scheme: dark)`),this.#S=e,this.#x.addEventListener(`change`,this.#S))}#k(e,t,n){let r=e.createShader(t);return r?(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(e.deleteShader(r),null)):null}#A(e){let t=this.#n;if(!t)return null;let n=this.#k(t,t.VERTEX_SHADER,ia),r=this.#k(t,t.FRAGMENT_SHADER,da[e]);if(!n||!r)return n&&t.deleteShader(n),r&&t.deleteShader(r),null;let i=t.createProgram();if(!i)return t.deleteShader(n),t.deleteShader(r),null;if(t.attachShader(i,n),t.attachShader(i,r),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS))return t.deleteProgram(i),t.deleteShader(n),t.deleteShader(r),null;let a=t.getAttribLocation(i,`a_pos`),o={};for(let e of ba)o[e]=t.getUniformLocation(i,e);return{program:i,vs:n,fs:r,aPos:a,loc:o}}#j(){let e=this.#n;if(!e)return!1;let t=this.mode,n=this.#i[t];if(!n){let e=this.#A(t);if(!e)return!1;this.#i[t]=e,n=e}return this.#r=n.program,this.#s=n.aPos,this.#o=n.loc,e.useProgram(n.program),this.#C=t,!0}#M(e){let t={premultipliedAlpha:!0,alpha:!0,antialias:!0};try{return e.getContext(`webgl`,t)??e.getContext(`experimental-webgl`,t)}catch{return null}}#N(e){this.#L(e);let t=L(`canvas`,{class:`canvas`,part:`canvas`});return e.parentNode?e.replaceWith(t):this.#e.prepend(t),this.#t=t,t}#P(){let e=this.#t;if(!e)return!1;let t=this.#M(e);return t?.isContextLost()&&(e=this.#N(e),t=this.#M(e)),!t||t.isContextLost()?!1:(this.#n=t,this.#I(e),this.#F()?!0:(this.#J(),!1))}#F(){let e=this.#n;if(!e||!this.#j())return!1;let t=e.createBuffer();return t?(this.#a=t,e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),e.STATIC_DRAW),!0):!1}#I(e){this.#L(e),this.#w=e=>{e.preventDefault(),this.#p=!0,this.#q(),this.#i={},this.#r=null,this.#C=null,this.#o={},this.#a=null,console.warn(`[slicc-shader] WebGL context lost; waiting for restore`),this.#R()},this.#T=()=>{if(this.#z(),!(!this.isConnected||!this.#n)){if(this.#i={},!this.#F()){this.#B(`GL restore failed; falling back to CSS gradient`);return}this.#p=!1,this.#l=performance.now()/1e3,this.#d=-1/0,this.#G()}},e.addEventListener(`webglcontextlost`,this.#w,!1),e.addEventListener(`webglcontextrestored`,this.#T,!1)}#L(e){this.#w&&e.removeEventListener(`webglcontextlost`,this.#w),this.#T&&e.removeEventListener(`webglcontextrestored`,this.#T),this.#w=null,this.#T=null}#R(){this.#z(),this.#m=window.setTimeout(()=>{this.#m=0,!(!this.isConnected||!this.#p)&&this.#B(`WebGL context not restored; falling back to CSS gradient`)},ya)}#z(){this.#m&&=(clearTimeout(this.#m),0)}#B(e){this.#z(),this.#p=!1,console.error(`[slicc-shader] ${e}`),this.setAttribute(`no-webgl`,``);let t=this.#t;t&&this.#N(t),this.#J()}#V(){let e=this.#t;if(!e)return;let t=Math.min(this.dpr,typeof window<`u`&&window.devicePixelRatio||1),n=Math.max(1,e.clientWidth*t|0),r=Math.max(1,e.clientHeight*t|0);(e.width!==n||e.height!==r)&&(e.width=n,e.height=r)}#H(){if(typeof getComputedStyle!=`function`)return 0;let e=getComputedStyle(this).getPropertyValue(`--ink`).trim();if(!e)return 0;let[t,n,r]=Sa(e,[0,0,0]);return+(.2126*t+.7152*n+.0722*r>.5)}#U(){let e=this.#n,t=this.#t,n=this.#r;if(!e||!t||!n||!this.#a)return;this.#V();let r=performance.now()/1e3-this.#l,i=.5+.5*Math.sin(r*.12),a=.5+.5*Math.sin(r*.097+1),o=.2*(1-i)+.46*i,s=.74*(1-a)+.3*a,c=this.#y,l=this.#_,u=this.#v;e.viewport(0,0,t.width,t.height),e.useProgram(n),e.bindBuffer(e.ARRAY_BUFFER,this.#a),e.enableVertexAttribArray(this.#s),e.vertexAttribPointer(this.#s,2,e.FLOAT,!1,0,0);let d=this.#o;e.uniform2f(d.u_res??null,t.width,t.height),e.uniform1f(d.u_time??null,r),e.uniform1f(d.u_energy??null,this.#u),e.uniform2f(d.u_center??null,o,s),e.uniform3f(d.u_evt??null,u[0],u[1],u[2]),e.uniform1f(d.u_freeze??null,xa(this.coverage*this.intensity,0,1,.66)*2.2),e.uniform1f(d.u_dark??null,c),e.uniform1f(d.u_scroll??null,this.scrollOffset*va/Math.max(1,t.clientHeight||t.height)),e.uniform1f(d.u_falloff??null,.3),e.uniform1f(d.u_life??null,.35),e.uniform3f(d.u_tint??null,l[0],l[1],l[2]),e.uniform1f(d.u_brightness??null,this.brightness),e.uniform1f(d.u_contrast??null,this.contrast),e.uniform1f(d.u_noise??null,this.noise),e.uniform1f(d.u_blur??null,this.blurAmount),e.uniform1f(d.u_speed??null,this.speed),e.drawArrays(e.TRIANGLES,0,3),this.#u*=.95,this.#u<.001&&(this.#u=0)}#W(){return!(this.#g||this.mode===`cone`&&this.speed===0)}#G(e={}){e.burst&&(this.#f=performance.now()+800),!(this.#c||!this.#n||this.#p)&&(this.#c=requestAnimationFrame(this.#K))}#K=e=>{this.#c=0;let t=e<this.#f||this.#u>0;na(e,this.#d,t)&&(this.#d=ra(e,this.#d,t),this.#U()),!(this.#g||!this.#W()&&this.#u===0)&&(this.#c=requestAnimationFrame(this.#K))};#q(){this.#c&&cancelAnimationFrame(this.#c),this.#c=0}#J(){this.#z();let e=this.#n,t=this.#t;if(t&&this.#L(t),e){this.#a&&e.deleteBuffer(this.#a);for(let t of Object.values(this.#i))t&&(e.deleteProgram(t.program),e.deleteShader(t.vs),e.deleteShader(t.fs));e.getExtension(`WEBGL_lose_context`)?.loseContext()}this.#n=null,this.#r=null,this.#i={},this.#o={},this.#a=null,this.#C=null}};F(`slicc-shader`,Ca),F(`slicc-frost-shader`,class extends Ca{connectedCallback(){this.getAttribute(`mode`)!==`freezer`&&this.setAttribute(`mode`,`freezer`),super.connectedCallback()}});var wa=`# Memory
3221
+ :host([no-webgl]) .fallback { display: block; }`),Oo=1,ko=.5,Ao=2,jo=.35,Mo=3e3,No=[`u_res`,`u_scroll`,`u_time`,`u_energy`,`u_center`,`u_evt`,`u_freeze`,`u_dark`,`u_falloff`,`u_life`,`u_tint`,`u_brightness`,`u_contrast`,`u_noise`,`u_blur`,`u_speed`];function Po(e,t,n,r){return Number.isFinite(e)?Math.max(t,Math.min(n,e)):r}function Fo(e,t){if(!e||typeof getComputedStyle!=`function`)return t;let n=document.createElement(`span`);n.style.color=e,n.style.display=`none`,document.body.appendChild(n);let r=getComputedStyle(n).color;n.remove();let i=r.match(/[\d.]+/g)?.map(Number);return!i||i.length<3?t:[i[0]/255,i[1]/255,i[2]/255]}var Io=class extends HTMLElement{static observedAttributes=[`mode`,`tint`,`coverage`,`intensity`,`scroll`,`brightness`,`contrast`,`noise`,`blur`,`speed`,`dpr`];#e;#t=null;#n=null;#r=null;#i={};#a=null;#o={};#s=-1;#c=0;#l=0;#u=0;#d=-1/0;#f=0;#p=!1;#m=0;#h=null;#g=!1;#_=[.816,.541,.235];#v=[.957,.247,.369];#y=0;#b=null;#x=null;#S=null;#C=null;#w=null;#T=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Do];let e=I(`canvas`,{class:`canvas`,part:`canvas`}),t=I(`div`,{class:`fallback`,part:`fallback`,"aria-hidden":`true`});this.#e.replaceChildren(e,t),this.#t=e}connectedCallback(){if(this.#g=typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches,this.#E(),!this.#P()){this.setAttribute(`no-webgl`,``);return}if(this.removeAttribute(`no-webgl`),typeof ResizeObserver<`u`){let e=!0;this.#h=new ResizeObserver(()=>{let t=e;e=!1,this.#G({burst:!t})}),this.#h.observe(this)}this.#D(),this.#O(),this.#l=performance.now()/1e3,this.#d=-1/0,this.#p=!1,this.#z(),this.#G()}disconnectedCallback(){this.#q(),this.#h?.disconnect(),this.#h=null,this.#b?.disconnect(),this.#b=null,this.#x&&this.#S&&this.#x.removeEventListener(`change`,this.#S),this.#x=null,this.#S=null,this.#J()}attributeChangedCallback(e){if(this.isConnected){if((e===`tint`||e===`mode`)&&this.#D(),e===`mode`&&this.#n&&this.mode!==this.#C){if(this.#j()){this.#U(),this.#d=performance.now(),this.#E(),this.#G();return}console.error(`[slicc-shader] mode switch failed to link program`)}this.#E(),this.#G({burst:!0})}}get mode(){let e=this.getAttribute(`mode`);return e&&To.has(e)?e:`cone`}set mode(e){this.setAttribute(`mode`,e)}get coverage(){let e=this.mode===`cone`?Co.caramel.coverage:.66;return Po(Number.parseFloat(this.getAttribute(`coverage`)??``),0,1,e)}set coverage(e){this.setAttribute(`coverage`,String(e))}get intensity(){return Po(Number.parseFloat(this.getAttribute(`intensity`)??``),0,4,1)}set intensity(e){this.setAttribute(`intensity`,String(e))}get scrollOffset(){let e=Number.parseFloat(this.getAttribute(`scroll`)??``);return Number.isFinite(e)?e:0}set scrollOffset(e){this.setAttribute(`scroll`,String(e))}get brightness(){return Po(Number.parseFloat(this.getAttribute(`brightness`)??``),.5,1.5,Co.caramel.brightness)}set brightness(e){this.setAttribute(`brightness`,String(e))}get contrast(){return Po(Number.parseFloat(this.getAttribute(`contrast`)??``),.5,2,Co.caramel.contrast)}set contrast(e){this.setAttribute(`contrast`,String(e))}get noise(){return Po(Number.parseFloat(this.getAttribute(`noise`)??``),0,.3,Co.caramel.noise)}set noise(e){this.setAttribute(`noise`,String(e))}get blurAmount(){return Po(Number.parseFloat(this.getAttribute(`blur`)??``),0,1,Co.caramel.blur)}set blurAmount(e){this.setAttribute(`blur`,String(e))}get speed(){return Po(Number.parseFloat(this.getAttribute(`speed`)??``),0,2,Co.caramel.speed)}set speed(e){this.setAttribute(`speed`,String(e))}get dpr(){return Po(Number.parseFloat(this.getAttribute(`dpr`)??``),ko,Ao,Oo)}set dpr(e){this.setAttribute(`dpr`,String(e))}get noWebgl(){return this.hasAttribute(`no-webgl`)}pulse(e=1){Number.isFinite(e)&&(this.#u=Math.min(1.4,Math.max(0,this.#u+e)),this.#G({burst:!0}))}#E(){let e=this.#e.querySelector(`.fallback`);e&&(e.style.background=Eo[this.mode])}#D(){let e=this.getAttribute(`tint`)??(this.mode===`cone`?Co.caramel.tint:``);this.#_=Fo(e,[.545,.361,.965]),this.#v=Fo(e,[.957,.247,.369]),this.#y=this.#H()}#O(){let e=()=>{this.#D(),this.#G({burst:!0})};if(typeof MutationObserver<`u`){this.#b=new MutationObserver(e);for(let e of[document.documentElement,document.body])e&&this.#b.observe(e,{attributes:!0,attributeFilter:[`class`,`data-theme`]})}typeof matchMedia==`function`&&(this.#x=matchMedia(`(prefers-color-scheme: dark)`),this.#S=e,this.#x.addEventListener(`change`,this.#S))}#k(e,t,n){let r=e.createShader(t);return r?(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(e.deleteShader(r),null)):null}#A(e){let t=this.#n;if(!t)return null;let n=this.#k(t,t.VERTEX_SHADER,_o),r=this.#k(t,t.FRAGMENT_SHADER,wo[e]);if(!n||!r)return n&&t.deleteShader(n),r&&t.deleteShader(r),null;let i=t.createProgram();if(!i)return t.deleteShader(n),t.deleteShader(r),null;if(t.attachShader(i,n),t.attachShader(i,r),t.linkProgram(i),!t.getProgramParameter(i,t.LINK_STATUS))return t.deleteProgram(i),t.deleteShader(n),t.deleteShader(r),null;let a=t.getAttribLocation(i,`a_pos`),o={};for(let e of No)o[e]=t.getUniformLocation(i,e);return{program:i,vs:n,fs:r,aPos:a,loc:o}}#j(){let e=this.#n;if(!e)return!1;let t=this.mode,n=this.#i[t];if(!n){let e=this.#A(t);if(!e)return!1;this.#i[t]=e,n=e}return this.#r=n.program,this.#s=n.aPos,this.#o=n.loc,e.useProgram(n.program),this.#C=t,!0}#M(e){let t={premultipliedAlpha:!0,alpha:!0,antialias:!0};try{return e.getContext(`webgl`,t)??e.getContext(`experimental-webgl`,t)}catch{return null}}#N(e){this.#L(e);let t=I(`canvas`,{class:`canvas`,part:`canvas`});return e.parentNode?e.replaceWith(t):this.#e.prepend(t),this.#t=t,t}#P(){let e=this.#t;if(!e)return!1;let t=this.#M(e);return t?.isContextLost()&&(e=this.#N(e),t=this.#M(e)),!t||t.isContextLost()?!1:(this.#n=t,this.#I(e),this.#F()?!0:(this.#J(),!1))}#F(){let e=this.#n;if(!e||!this.#j())return!1;let t=e.createBuffer();return t?(this.#a=t,e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),e.STATIC_DRAW),!0):!1}#I(e){this.#L(e),this.#w=e=>{e.preventDefault(),this.#p=!0,this.#q(),this.#i={},this.#r=null,this.#C=null,this.#o={},this.#a=null,console.warn(`[slicc-shader] WebGL context lost; waiting for restore`),this.#R()},this.#T=()=>{if(this.#z(),!(!this.isConnected||!this.#n)){if(this.#i={},!this.#F()){this.#B(`GL restore failed; falling back to CSS gradient`);return}this.#p=!1,this.#l=performance.now()/1e3,this.#d=-1/0,this.#G()}},e.addEventListener(`webglcontextlost`,this.#w,!1),e.addEventListener(`webglcontextrestored`,this.#T,!1)}#L(e){this.#w&&e.removeEventListener(`webglcontextlost`,this.#w),this.#T&&e.removeEventListener(`webglcontextrestored`,this.#T),this.#w=null,this.#T=null}#R(){this.#z(),this.#m=window.setTimeout(()=>{this.#m=0,!(!this.isConnected||!this.#p)&&this.#B(`WebGL context not restored; falling back to CSS gradient`)},Mo)}#z(){this.#m&&=(clearTimeout(this.#m),0)}#B(e){this.#z(),this.#p=!1,console.error(`[slicc-shader] ${e}`),this.setAttribute(`no-webgl`,``);let t=this.#t;t&&this.#N(t),this.#J()}#V(){let e=this.#t;if(!e)return;let t=Math.min(this.dpr,typeof window<`u`&&window.devicePixelRatio||1),n=Math.max(1,e.clientWidth*t|0),r=Math.max(1,e.clientHeight*t|0);(e.width!==n||e.height!==r)&&(e.width=n,e.height=r)}#H(){if(typeof getComputedStyle!=`function`)return 0;let e=getComputedStyle(this).getPropertyValue(`--ink`).trim();if(!e)return 0;let[t,n,r]=Fo(e,[0,0,0]);return+(.2126*t+.7152*n+.0722*r>.5)}#U(){let e=this.#n,t=this.#t,n=this.#r;if(!e||!t||!n||!this.#a)return;this.#V();let r=performance.now()/1e3-this.#l,i=.5+.5*Math.sin(r*.12),a=.5+.5*Math.sin(r*.097+1),o=.2*(1-i)+.46*i,s=.74*(1-a)+.3*a,c=this.#y,l=this.#_,u=this.#v;e.viewport(0,0,t.width,t.height),e.useProgram(n),e.bindBuffer(e.ARRAY_BUFFER,this.#a),e.enableVertexAttribArray(this.#s),e.vertexAttribPointer(this.#s,2,e.FLOAT,!1,0,0);let d=this.#o;e.uniform2f(d.u_res??null,t.width,t.height),e.uniform1f(d.u_time??null,r),e.uniform1f(d.u_energy??null,this.#u),e.uniform2f(d.u_center??null,o,s),e.uniform3f(d.u_evt??null,u[0],u[1],u[2]),e.uniform1f(d.u_freeze??null,Po(this.coverage*this.intensity,0,1,.66)*2.2),e.uniform1f(d.u_dark??null,c),e.uniform1f(d.u_scroll??null,this.scrollOffset*jo/Math.max(1,t.clientHeight||t.height)),e.uniform1f(d.u_falloff??null,.3),e.uniform1f(d.u_life??null,.35),e.uniform3f(d.u_tint??null,l[0],l[1],l[2]),e.uniform1f(d.u_brightness??null,this.brightness),e.uniform1f(d.u_contrast??null,this.contrast),e.uniform1f(d.u_noise??null,this.noise),e.uniform1f(d.u_blur??null,this.blurAmount),e.uniform1f(d.u_speed??null,this.speed),e.drawArrays(e.TRIANGLES,0,3),this.#u*=.95,this.#u<.001&&(this.#u=0)}#W(){return!(this.#g||this.mode===`cone`&&this.speed===0)}#G(e={}){e.burst&&(this.#f=performance.now()+800),!(this.#c||!this.#n||this.#p)&&(this.#c=requestAnimationFrame(this.#K))}#K=e=>{this.#c=0;let t=e<this.#f||this.#u>0;ho(e,this.#d,t)&&(this.#d=go(e,this.#d,t),this.#U()),!(this.#g||!this.#W()&&this.#u===0)&&(this.#c=requestAnimationFrame(this.#K))};#q(){this.#c&&cancelAnimationFrame(this.#c),this.#c=0}#J(){this.#z();let e=this.#n,t=this.#t;if(t&&this.#L(t),e){this.#a&&e.deleteBuffer(this.#a);for(let t of Object.values(this.#i))t&&(e.deleteProgram(t.program),e.deleteShader(t.vs),e.deleteShader(t.fs));e.getExtension(`WEBGL_lose_context`)?.loseContext()}this.#n=null,this.#r=null,this.#i={},this.#o={},this.#a=null,this.#C=null}};F(`slicc-shader`,Io),F(`slicc-frost-shader`,class extends Io{connectedCallback(){this.getAttribute(`mode`)!==`freezer`&&this.setAttribute(`mode`,`freezer`),super.connectedCallback()}});var Lo=`# Memory
3220
3222
 
3221
- `,Ta=[`**Evidence first:** inspect the smallest relevant surface before editing and record the observed state.`,`**Narrow plans:** keep one measurable outcome, one implementation pass, and one verification pass.`,`**Runtime state:** prefer browser-owned storage and keep the relay stateless whenever practical.`,`**Failure boundaries:** external work needs a timeout, a useful error category, and an explicit retry decision.`,"**Keyboard parity:** interactive rows remain focusable and respond to both `Enter` and `Space`.",`**Memory rendering:** preserve Markdown meaning while sanitizing untrusted tags at the DOM boundary.`,`**Cross-runtime parity:** shared events need matching page, worker, extension, and follower handling.`,`**Verification records:** report the exact command, outcome, and scope instead of writing only “tests pass”.`,`**Synthetic data:** use neutral paths, reserved domains, and conspicuously invented identifiers in fixtures.`,`**Collaboration:** coordinate public-barrel edits before overlapping with another active implementation.`],Ea=["Keep the durable rule beside `packages/example.ts` so later work can reproduce the decision without a transcript.",`Preserve selection, expansion, and scroll state when a refresh replaces visible children.`,`Run the focused regression first; broaden to package and repository gates only after the hypothesis holds.`,'Treat A & B, “quoted labels”, arrows →, and `<preview mode="safe">` as text rather than executable markup.',`Prefer a reversible patch over a destructive command when the target was inferred rather than supplied.`,`Stop exploring when another read no longer changes the hypothesis; switch to a test or focused question.`,`Document the invalidation trigger when cached data can become stale, and retain a correctness bypass.`,`Release every listener, timer, observer, channel, and object URL during the matching teardown path.`,`Keep logs to operation name, duration, status, and a synthetic correlation label; omit payload contents.`],Da=Ta.flatMap(e=>Ea.map(t=>`- ${e} ${t}`)),Oa=[`- Keep diffs small.`,`- Prefer native APIs.`,`- Ship docs with code.`,`- No surprise deploys.`,"- **Continuation stress:** preserve one logical memory across source lines,\n carrying `inline-code`, emphasis, and an arrow → without creating another row.",'- **Escaping stress:** render `<preview mode="safe">`, A & B, “quotes”, and `score > threshold` as inert content.',`- **Reserved link:** [the synthetic reference](https://example.invalid/memory) exists only to exercise link rendering.`,`- **Medium tail:** before rebuilding a filtered collection, capture the query, focused control, selected row, group expansion, and scroll anchor; restore only state that still refers to surviving items.`,`- **Long tail:** ${`A long-lived panel decision was reviewed in sequence: a compact sample initially hid scale problems; a larger dataset exposed discarded provenance and summaries cut mid-phrase; Markdown stress then revealed literal markers; keyboard review found pointer-only activation; narrow layouts showed metadata competing with the primary text; refresh testing exposed lost search, focus, expansion, and scroll state; cross-runtime review found a missing follower path; failure testing identified an unbounded request; cleanup testing found a retained observer; and final verification required the focused test, package suite, coverage gate, and build. `.repeat(2).trim()}`,`- **Folded long tail:** a remote action keeps one event contract and preserves error categories across serialization,
3223
+ `,Ro=[`**Evidence first:** inspect the smallest relevant surface before editing and record the observed state.`,`**Narrow plans:** keep one measurable outcome, one implementation pass, and one verification pass.`,`**Runtime state:** prefer browser-owned storage and keep the relay stateless whenever practical.`,`**Failure boundaries:** external work needs a timeout, a useful error category, and an explicit retry decision.`,"**Keyboard parity:** interactive rows remain focusable and respond to both `Enter` and `Space`.",`**Memory rendering:** preserve Markdown meaning while sanitizing untrusted tags at the DOM boundary.`,`**Cross-runtime parity:** shared events need matching page, worker, extension, and follower handling.`,`**Verification records:** report the exact command, outcome, and scope instead of writing only “tests pass”.`,`**Synthetic data:** use neutral paths, reserved domains, and conspicuously invented identifiers in fixtures.`,`**Collaboration:** coordinate public-barrel edits before overlapping with another active implementation.`],zo=["Keep the durable rule beside `packages/example.ts` so later work can reproduce the decision without a transcript.",`Preserve selection, expansion, and scroll state when a refresh replaces visible children.`,`Run the focused regression first; broaden to package and repository gates only after the hypothesis holds.`,'Treat A & B, “quoted labels”, arrows →, and `<preview mode="safe">` as text rather than executable markup.',`Prefer a reversible patch over a destructive command when the target was inferred rather than supplied.`,`Stop exploring when another read no longer changes the hypothesis; switch to a test or focused question.`,`Document the invalidation trigger when cached data can become stale, and retain a correctness bypass.`,`Release every listener, timer, observer, channel, and object URL during the matching teardown path.`,`Keep logs to operation name, duration, status, and a synthetic correlation label; omit payload contents.`],Bo=Ro.flatMap(e=>zo.map(t=>`- ${e} ${t}`)),Vo=[`- Keep diffs small.`,`- Prefer native APIs.`,`- Ship docs with code.`,`- No surprise deploys.`,"- **Continuation stress:** preserve one logical memory across source lines,\n carrying `inline-code`, emphasis, and an arrow → without creating another row.",'- **Escaping stress:** render `<preview mode="safe">`, A & B, “quotes”, and `score > threshold` as inert content.',`- **Reserved link:** [the synthetic reference](https://example.invalid/memory) exists only to exercise link rendering.`,`- **Medium tail:** before rebuilding a filtered collection, capture the query, focused control, selected row, group expansion, and scroll anchor; restore only state that still refers to surviving items.`,`- **Long tail:** ${`A long-lived panel decision was reviewed in sequence: a compact sample initially hid scale problems; a larger dataset exposed discarded provenance and summaries cut mid-phrase; Markdown stress then revealed literal markers; keyboard review found pointer-only activation; narrow layouts showed metadata competing with the primary text; refresh testing exposed lost search, focus, expansion, and scroll state; cross-runtime review found a missing follower path; failure testing identified an unbounded request; cleanup testing found a retained observer; and final verification required the focused test, package suite, coverage gate, and build. `.repeat(2).trim()}`,`- **Folded long tail:** a remote action keeps one event contract and preserves error categories across serialization,
3222
3224
  terminates pending requests on disconnect, and verifies timeout plus malformed-response behavior,
3223
- while this third source line remains part of the same bullet and contains “quotes”, A & B, and <angle brackets>.`],ka=[...Da,...Oa],Aa=[[`2099-01-03`,`compaction`],[`2099-01-10`,`new-session`],[`2099-01-18`,`compaction`],[`2099-02-02`,`pending-enrichment`],[`2099-02-14`,`new-session`],[`2099-03-01`,`compaction`],[`2099-03-21`,`pending-enrichment`],[`2099-04-05`,`compaction`],[`2099-04-19`,`new-session`],[`2099-05-07`,`compaction`]];function ja(e,t,n){return`## Auto-extracted (${e}, ${t})\n\n${n.join(`
3224
- `)}\n`}wa+Aa.map(([e,t],n)=>ja(e,t,ka.slice(n*10,n*10+10))).join(`
3225
- `),`${wa}${ka.join(`
3226
- `)}`;var Ma=new Set([`user`,`feedback`,`project`]),Na={user:{hue:`--rose`,label:`user`},feedback:{hue:`--cyan`,label:`feedback`},project:{hue:`--violet`,label:`project`}};function Pa(e){return e===`feedback`||e===`project`?e:`user`}var Fa=R(`
3225
+ while this third source line remains part of the same bullet and contains “quotes”, A & B, and <angle brackets>.`],Ho=[...Bo,...Vo],Uo=[[`2099-01-03`,`compaction`],[`2099-01-10`,`new-session`],[`2099-01-18`,`compaction`],[`2099-02-02`,`pending-enrichment`],[`2099-02-14`,`new-session`],[`2099-03-01`,`compaction`],[`2099-03-21`,`pending-enrichment`],[`2099-04-05`,`compaction`],[`2099-04-19`,`new-session`],[`2099-05-07`,`compaction`]];function Wo(e,t,n){return`## Auto-extracted (${e}, ${t})\n\n${n.join(`
3226
+ `)}\n`}Lo+Uo.map(([e,t],n)=>Wo(e,t,Ho.slice(n*10,n*10+10))).join(`
3227
+ `),`${Lo}${Ho.join(`
3228
+ `)}`;var Go=new Set([`user`,`feedback`,`project`]),Ko={user:{hue:`--rose`,label:`user`},feedback:{hue:`--cyan`,label:`feedback`},project:{hue:`--violet`,label:`project`}};function qo(e){return e===`feedback`||e===`project`?e:`user`}var Jo=L(`
3227
3229
  :host {
3228
3230
  display: inline-flex;
3229
3231
  vertical-align: middle;
@@ -3245,13 +3247,13 @@ void main(){
3245
3247
  background: color-mix(in srgb, var(--mtag-hue, var(--rose)) var(--mtag-fill), var(--canvas));
3246
3248
  border: 1px solid color-mix(in srgb, var(--mtag-hue, var(--rose)) var(--mtag-border), var(--line));
3247
3249
  }
3248
- `),Ia=`slicc-memtag-dark`,La=`
3250
+ `),Yo=`slicc-memtag-dark`,Xo=`
3249
3251
  .dark slicc-memtag,
3250
3252
  [data-theme="dark"] slicc-memtag {
3251
3253
  --mtag-fill: 22%;
3252
3254
  --mtag-border: 38%;
3253
3255
  }
3254
- `;function Ra(e){if(e.getElementById(Ia))return;let t=e.createElement(`style`);t.id=Ia,t.textContent=La,(e.head??e.documentElement).appendChild(t)}F(`slicc-memtag`,class extends HTMLElement{static observedAttributes=[`type`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Fa]}connectedCallback(){Ra(this.ownerDocument),this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get type(){return Pa(this.getAttribute(`type`))}set type(e){this.setAttribute(`type`,Ma.has(e)?e:`user`)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let{hue:e,label:t}=Na[this.type],n=this.label??L(`slot`,null,t),r=L(`span`,{class:`mtag`,part:`tag`,style:`--mtag-hue:var(${e})`},n);this.#e.replaceChildren(r)}});var za=`
3256
+ `;function Zo(e){if(e.getElementById(Yo))return;let t=e.createElement(`style`);t.id=Yo,t.textContent=Xo,(e.head??e.documentElement).appendChild(t)}F(`slicc-memtag`,class extends HTMLElement{static observedAttributes=[`type`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Jo]}connectedCallback(){Zo(this.ownerDocument),this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get type(){return qo(this.getAttribute(`type`))}set type(e){this.setAttribute(`type`,Go.has(e)?e:`user`)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let{hue:e,label:t}=Ko[this.type],n=this.label??I(`slot`,null,t),r=I(`span`,{class:`mtag`,part:`tag`,style:`--mtag-hue:var(${e})`},n);this.#e.replaceChildren(r)}});var Qo=`
3255
3257
  slicc-memrow {
3256
3258
  display: block;
3257
3259
  border: 1px solid var(--line);
@@ -3358,9 +3360,9 @@ slicc-memrow.fresh {
3358
3360
  background: color-mix(in srgb, var(--violet) 22%, var(--canvas));
3359
3361
  border-color: color-mix(in srgb, var(--violet) 38%, var(--line));
3360
3362
  }
3361
- `,Ba=`slicc-memrow-style`,Va=96,Ha=12;function Ua(e,t){if(e.length<=Va)return{heading:e,summary:t};let n=e.slice(0,97).lastIndexOf(` `),r=n>=Ha?n:Va,i=e.slice(r).trim();return{heading:e.slice(0,r).trim(),summary:[i,t].filter(Boolean).join(` `)}}function Wa(e){if(e.getElementById(Ba))return;let t=e.createElement(`style`);t.id=Ba,t.textContent=za,(e.head??e.documentElement).appendChild(t)}function Ga(e){return e===`feedback`||e===`project`?e:`user`}F(`slicc-memrow`,class extends HTMLElement{static get observedAttributes(){return[`heading`,`summary`,`tag`,`fresh`,`expanded`]}#e=!1;#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=0;#c=!1;#l=!1;#u=null;#d=null;#f=null;connectedCallback(){Wa(this.ownerDocument),this.#e||this.#p(),this.#m(),this.#y(),this.#h()}disconnectedCallback(){this.#b(),this.#o?.disconnect(),this.#o=null,this.#s&&cancelAnimationFrame(this.#s),this.#s=0}attributeChangedCallback(){this.#e&&this.#m()}get heading(){return this.getAttribute(`heading`)??``}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get summary(){return this.getAttribute(`summary`)??``}set summary(e){e==null?this.removeAttribute(`summary`):this.setAttribute(`summary`,e)}get tag(){return Ga(this.getAttribute(`tag`))}set tag(e){this.setAttribute(`tag`,e)}get fresh(){return this.hasAttribute(`fresh`)}set fresh(e){this.toggleAttribute(`fresh`,e)}get expanded(){return this.hasAttribute(`expanded`)}set expanded(e){this.toggleAttribute(`expanded`,e)}setHeadingContent(e){this.#c=!0,this.#n?this.#n.replaceChildren(e):this.#u=e}setBodyContent(e){this.#l=!0,this.#i?this.#i.replaceChildren(e):this.#d=e,this.#g()}#p(){this.#e=!0;let e=this.ownerDocument.createElement(`button`);e.className=`mt`,e.type=`button`;let t=this.ownerDocument.createElement(`b`),n=this.ownerDocument.createElement(`slicc-memtag`);e.append(t,n);let r=this.ownerDocument.createElement(`div`);for(r.className=`ms`;this.firstChild;)r.appendChild(this.firstChild);this.#u&&t.replaceChildren(this.#u),this.#d&&r.replaceChildren(this.#d),this.#u=null,this.#d=null,this.append(e,r),this.#t=e,this.#n=t,this.#r=n,this.#i=r}#m(){let e=this.#n,t=this.#r,n=this.#i;if(!e||!t||!n)return;let r=Ua(this.heading,this.summary);this.#c||(e.textContent=r.heading);let i=this.tag;if(t.className=``,t.hidden=!this.hasAttribute(`tag`),t.setAttribute(`type`,i),t.textContent=``,!this.#l){let e=n.firstChild,t=r.summary;e&&e.nodeType===Node.TEXT_NODE?e.textContent=t:t&&n.insertBefore(this.ownerDocument.createTextNode(t),e)}this.classList.toggle(`fresh`,this.fresh),this.#v(),this.#g()}#h(){let e=this.#i;!e||this.#o||(this.#o=new ResizeObserver(()=>this.#g()),this.#o.observe(e),this.#g())}#g(){!this.isConnected||this.expanded||(this.#s&&cancelAnimationFrame(this.#s),this.#s=requestAnimationFrame(()=>{this.#s=0;let e=this.#i;!e||this.expanded||(e.scrollHeight>e.clientHeight+1?this.#_():this.#a?.remove(),this.#v())}))}#_(){if(!this.#a){let e=this.ownerDocument.createElement(`button`);e.className=`mexpand`,e.type=`button`,e.addEventListener(`click`,e=>{e.stopPropagation(),this.expanded=!this.expanded}),this.#a=e}this.#a.isConnected||this.append(this.#a)}#v(){let e=this.#a;if(!e?.isConnected)return;let t=this.expanded;e.textContent=t?`Show less`:`Show more`,e.setAttribute(`aria-expanded`,String(t))}#y(){this.#f||(this.#f=e=>this.#x(e),this.addEventListener(`click`,this.#f))}#b(){this.#f&&=(this.removeEventListener(`click`,this.#f),null)}#x(e){this.dispatchEvent(new CustomEvent(`select`,{bubbles:!0,composed:!0,detail:{heading:this.heading,summary:this.summary,tag:this.tag,sourceEvent:e}}))}});var Ka=64,qa=12,Ja=/\b(feedback|reviews?|corrections?|learnings?|observations?|testing|verification)\b/i,Ya=/\b(user|preferences?|identit(?:y|ies)|accounts?|personal|interface|working rhythm|keyboard|accessibility)\b/i,Xa=/^Auto-extracted \(/;function Za(e){let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}function Qa(e,t){return(Za(t(e)).textContent??``).replace(/\s+/g,` `).trim()}function $a(e,t){let n=Qa(e,t);if(n.length<=Ka)return{title:n,summary:``,titleEnd:n.length,summaryStart:n.length};let r=[];for(let e of n.matchAll(/[.!?](?:[*_`'")\]]*)\s+|\s+[—–]\s+|[:;](?:[*_`]*)\s+|,\s+(?=(?:and|but|because|while|when|then|so)\b)/g)){let t=/^\s+[—–]|^[:;]/.test(e[0]),i=e.index+(t?0:e[0].trimEnd().length),a=e.index+e[0].length;n.slice(0,i).trim().length>=qa&&i<=96&&n.slice(a).trim()&&r.push({titleEnd:i,summaryStart:a})}let i=r.sort((e,t)=>Math.abs(e.titleEnd-Ka)-Math.abs(t.titleEnd-Ka))[0];if(i)return{title:n.slice(0,i.titleEnd).trim(),summary:n.slice(i.summaryStart).trim(),titleEnd:i.titleEnd,summaryStart:i.summaryStart};let a=n.slice(0,97).lastIndexOf(` `),o=a>=qa?a:96,s=n.slice(o).trim();return{title:n.slice(0,o).trim(),summary:s,titleEnd:o,summaryStart:n.indexOf(s,o)}}function eo(e,t,n){let r=Qa(e,n),i=Xa.test(t),a=i?r:`${t} ${r}`;return Ja.test(a)?`feedback`:Ya.test(a)?`user`:i?null:`project`}function to(e,t,n){let r=$a(e,n);return{title:r.title,summary:r.summary,section:t,tag:eo(e,t,n),bodyHtml:n(e),titleEnd:r.titleEnd,summaryStart:r.summaryStart}}function no(e,t){let n=[],r=`Memory`,i=``,a=``,o=null,s=()=>[i||r,a].filter(Boolean).join(` / `),c=()=>{if(!o)return;let e=o.lines.join(` `).trim();e&&n.push(to(e,o.section,t)),o=null};for(let n of e.split(`
3362
- `)){let e=/^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(n.trim());if(e){c();let n=Qa(e[2],t);e[1].length===1?(r=n||r,i=``,a=``):e[1].length===2?(i=n,a=``):e[1].length===3&&(a=n);continue}let l=/^\s*[-*]\s+(.*)$/.exec(n);l?(c(),o={lines:[l[1]],section:s()}):n.trim()?o?o.lines.push(n.trim()):o={lines:[n.trim()],section:s()}:c()}return c(),n}function ro(e,t){let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=0,i=!1,a=!1,o=null,s=n.nextNode();for(;s;){for(let e=0;e<s.data.length;e+=1){if(/\s/.test(s.data[e])){i&&!a&&(a=!0,o={node:s,offset:e});continue}if(a){if(r===t)return o;r+=1}if(a=!1,o=null,r===t)return{node:s,offset:e};r+=1,i=!0}s=n.nextNode()}return r===t?{node:e,offset:e.childNodes.length}:null}function io(e,t,n){let r=Za(e),i=ro(r,t),a=n==null?{node:r,offset:r.childNodes.length}:ro(r,n);if(!i||!a)return document.createDocumentFragment();let o=document.createRange();o.setStart(i.node,i.offset),o.setEnd(a.node,a.offset);let s=o.cloneContents();for(let e of[...s.childNodes])e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim()&&e.remove();let c=s.childNodes.length===1?s.firstChild:null;if(!(c instanceof HTMLParagraphElement))return s;let l=document.createDocumentFragment();return l.append(...c.childNodes),l}function ao(e,t){return no(e,t).map(e=>{let t=document.createElement(`slicc-memrow`);return t.setAttribute(`heading`,e.title),e.summary&&t.setAttribute(`summary`,e.summary),t.setAttribute(`section`,e.section),e.tag&&t.setAttribute(`tag`,e.tag),t.setHeadingContent(io(e.bodyHtml,0,e.titleEnd)),e.summary&&t.setBodyContent(io(e.bodyHtml,e.summaryStart,null)),t})}[`# Project Northstar`,``,`Role: Kestrel (primary engineering agent)`,`Workspace: /workspaces/northstar`,`Snapshot: 2032-04-18T14:15:51.712Z`,``,`## Operating agreements`,"- **Keep Northstar changes reviewable:** issue #501 requires one concern per branch in `packages/northstar-shell/src/` with fixtures under `/workspaces/northstar/testdata/`; run `keel verify --scope shell` before asking Mina Kestrel for `review_ready` status. The branch note in `packages/northstar-shell/reviews/` explains the user-visible outcome, the measured baseline, and the exact rollback point so another engineer can judge the change without reconstructing the session.","- **Prefer evidence before edits:** issue #502 starts with traces from `packages/telemetry/src/` and a reproduction in `/workspaces/northstar/repros/`; record the failing `trace_id` and the smallest useful `fixture_seed` before changing code. The supporting report in `packages/telemetry/reports/` separates observed behavior from a proposed cause and includes the command, expected result, actual result, and environment assumptions.","- **Use the native release path:** issue #503 sends text-only patches through `packages/release-tools/src/` and stores large binary fixtures in `/workspaces/northstar/artifacts/`; invoke `keel publish --dry-run` and confirm `release_manifest_v3` before upload. The release record in `packages/release-tools/records/` names every artifact, its content digest, the verification run that produced it, and the person who approved promotion.","- **Never merge on assumption:** issue #504 leaves the candidate in `packages/change-gate/src/` until `/workspaces/northstar/reviews/` contains an explicit approval; use `keel review status` and preserve the requested `merge_strategy`. The decision log in `packages/change-gate/decisions/` states whether history must remain linear and whether a reviewer requested a merge commit for audit context.",``,`## Repository and release workflow`,"- **Branch from the verified base:** issue #505 creates work in `packages/release-tools/branches/` and writes the base proof to `/workspaces/northstar/checkpoints/`; `keel branch create` must report the expected `base_oid`. The branch receipt in `packages/release-tools/receipts/` also captures the remote name and fetch time, which makes stale-base failures obvious during review.","- **Rebase only when linear history is required:** issue #506 keeps merge-preserving work in `packages/change-gate/policies/` and conflict notes in `/workspaces/northstar/reviews/`; choose `merge_commit` or `linear_rebase` from the recorded policy, never from habit. Guidance under packages/change-gate/guides/rebase/ requires a fresh verification run after conflict resolution because a clean textual rebase does not prove unchanged behavior.","- **Treat remote deletion as a gated operation:** issue #507 resolves the exact ref through `packages/release-tools/refs/` and snapshots it in `/workspaces/northstar/checkpoints/`; call `keel ref delete --confirm` only after `ref_guard` matches. The recovery note under packages/release-tools/guides/restore/ retains the deleted object identifier and a tested restore command until the review window closes.",``,`## Aurora renderer bootstrap — desktop preview (Session April 02)`,"- **Create the preview shell:** issue #508 keeps the host in `packages/aurora-preview/src/` and its deterministic scene data in `/workspaces/northstar/fixtures/aurora/`; start `keel preview aurora` with `scene_seed_2048`. A walkthrough under packages/aurora-preview/guides/startup/ lists the expected loading, ready, degraded, and failed states so reviewers know whether the shell or renderer owns a defect.","- **Load the renderer through its public package:** issue #509 imports `@northstar/aurora` from `/workspaces/northstar/apps/desktop/` and pins `aurora_protocol_v6`; the preview must not reach the private `renderer_singleton`. Contract notes under packages/aurora-preview/guides/contracts/ describe the mount lifecycle and require the host to release observers, workers, and object URLs during teardown.","- **Keep browser and desktop entry points equivalent:** issue #510 compares `packages/aurora-preview/browser/` with `/workspaces/northstar/apps/desktop/`; both expose `mountAuroraPreview` and accept `preview_transport`. Parity evidence under packages/aurora-preview/reviews/parity/ records the same scene, viewport, theme, keyboard path, and frame checksum for each host.","- **Pass viewer identity without personal data:** issue #511 reads `packages/aurora-preview/config/` and `/workspaces/northstar/fixtures/viewers/`; use `viewer_alpha` plus `tenant_sandbox`, never an account copied from production. The fixture catalog under packages/aurora-preview/fixtures/viewers/ explains each synthetic role and deliberately omits names, credentials, message history, and customer content.","- **Document the development-only compositor:** the guide in `packages/aurora-preview/docs/` points to `/workspaces/northstar/examples/compositor/`; `keel preview --inspect` exposes `frame_budget_ms` for local diagnosis. The inspector reports dropped frames, long tasks, active workers, and selected fallback mode without changing the scheduling decisions being measured.","- **Bundle Aurora without runtime network fetches:** build `packages/aurora-preview/bundle/` into `/workspaces/northstar/artifacts/aurora/` with `rook bundle --target desktop`; the output registers `aurora_bundle_hash` and embeds shader tables, icon atlases, locale data, fallback fonts, protocol schemas, worker bootstrap code, source labels, feature defaults, accessibility metadata, safe demo accounts, and the exact scene seed used by review. The host imports one local module, validates the manifest before evaluation, rejects unknown capabilities, records a structured startup trace, and keeps every optional adapter behind a capability check. When the packager rewrites an external import, inspect the emitted dependency map rather than adding a global shim. The accepted bundle must boot with the network disabled, survive a renderer restart, restore the selected scene, preserve focus order, report missing GPU features as a visible diagnostic, and produce the same frame checksum in Chromium and the desktop shell. Store the checksum beside the manifest, not in application code, so a fixture update is reviewable without touching runtime behavior.","- **Aurora offline recovery drill for the desktop preview** uses `packages/aurora-preview/fallback/` and `/workspaces/northstar/apps/desktop/assets/` with `aurora_fallback_entry` after `gpu_probe_result` records unsupported adapter evidence then the host verifies the local manifest restores the selected scene preserves keyboard focus retains the review viewport loads bundled fonts rejects network requests emits a visible diagnostic stores the frame checksum beside the artifact compares browser and desktop output keeps the original trace identifier and leaves the normal renderer untouched for the next controlled restart",``,`## Signal audio service — capture and transcription pipeline`,"- **Keep voice fixtures synthetic:** write generated samples to `packages/signal-audio/fixtures/` and metadata to `/workspaces/northstar/testdata/audio/`; select `signal_voice_cedar` with `sample_rate_24000`. The catalog under packages/signal-audio/guides/fixtures/ states how each sample was generated and which timing, silence, overlap, and clipping cases it is meant to exercise.","- **Resolve credentials through the fixture broker:** configure `packages/signal-audio/auth/` from `/workspaces/northstar/config/local/`; `keel secret lease signal` returns `signal_lease_ref` without exposing token material. The runbook under packages/signal-audio/guides/auth/ distinguishes a missing lease, an expired lease, provider denial, and an unavailable broker so recovery remains specific.","- **Use the streaming endpoint for long utterances:** send chunks from `packages/signal-audio/stream/` through `/workspaces/northstar/repros/audio/`; the client tracks `utterance_seq` and rejects a stale `transcript_epoch`. Evidence under packages/signal-audio/reviews/streaming/ includes chunk timing and final ordering, making dropped, duplicated, and late frames visible without retaining spoken content.","- **Preserve binary audio until decoding succeeds:** `packages/signal-audio/codecs/` writes to `/workspaces/northstar/artifacts/audio/`; `signal_decode_pcm` returns `decoded_frame_count` before text normalization. Notes under packages/signal-audio/guides/codecs/ require the original byte length, channel count, sample rate, and decoder warning before any waveform is discarded.",``,`## Harbor control-plane CLI (Session April 05, #401)`,"- **Define Harbor as a thin API client:** keep commands in `packages/harbor-cli/src/` and contract fixtures in `/workspaces/northstar/testdata/harbor/`; `harbor project list` emits `harbor_result_v2`. This boundary keeps command behavior easy to inspect, lets the service remain the source of truth, and gives every failure one clear place for diagnosis.","- **Store only a broker reference:** `packages/harbor-cli/auth/` reads `/workspaces/northstar/config/local/`; `harbor auth login` persists `credential_handle`, never a bearer value. A later command can ask the broker for a short lease while the terminal, history, trace, and saved configuration remain free of secret material.","- **Normalize boolean flags at the boundary:** `packages/harbor-cli/args/` tests `/workspaces/northstar/repros/harbor/`; `--include-paused=false` becomes `include_paused` rather than a truthy string. The same rule covers an omitted flag, an explicit true value, and a false value so script behavior does not depend on parser accident.","- **Do not edit remote files with shell redirection:** fetch through `packages/harbor-cli/files/` into `/workspaces/northstar/checkpoints/`; `harbor file replace` validates `remote_etag` before committing. The client first writes a complete local draft, shows a compact difference, and sends the whole document only after the expected revision still matches.","- **Read structured responses before printing:** `packages/harbor-cli/output/` stores schemas under `/workspaces/northstar/testdata/schemas/`; `harbor --format json` preserves `error_code` and nested causes. Human output may become shorter, but machine output must retain every field needed for retry, support, audit, and a later automated decision.","- **Refresh expired leases once:** `packages/harbor-cli/retry/` records attempts in `/workspaces/northstar/traces/`; `harbor_lease_expired` may trigger one `credential_refresh`, not a loop. A second denial is returned with the first request identity and lease age so the operator sees a stable failure rather than repeated login work.","- **Map provider failures to actionable hints:** `packages/harbor-cli/errors/` uses `/workspaces/northstar/docs/runbooks/`; `deployment_policy_denied` points to `harbor deployment inspect`. Each hint names the blocked resource, the required capability, and a safe read-only command that can confirm policy state before any new request.",``,`## Atlas runtime and plugin packaging (Session April 07, #418)`,"- **Build Atlas from a readable entry module:** `packages/atlas-runtime/src/` produces `/workspaces/northstar/artifacts/atlas/`; `rook build atlas` keeps `atlas_entrypoint` stable. The entry names each adapter and capability in one visible table, which makes bundle review possible without following generated glue across many small files.","- **Install plugins into an isolated sandbox:** `packages/atlas-runtime/plugins/` expands under `/workspaces/northstar/sandboxes/atlas/`; `atlas plugin inspect` verifies `plugin_manifest_v4`. Extraction rejects parent traversal, absolute names, duplicate entries, and unsupported links before any plugin code can observe the host or write outside its assigned directory.","- **Share filesystem adapters across hosts:** `packages/atlas-runtime/adapters/` is tested against `/workspaces/northstar/testdata/files/`; `atlas_read_bytes` and `atlas_write_atomic` retain binary data. Browser and desktop implementations must agree on path normalization, missing file behavior, atomic replacement, permission denial, and the byte count returned after a write.","- **Externalize host-owned modules:** `packages/atlas-runtime/build/` writes `/workspaces/northstar/artifacts/maps/`; `rook bundle --external host` marks `host_module_table` in the manifest. The loader resolves only names declared by that table and reports an absent host module before plugin startup rather than after partial state has changed.","- **Preserve integer field types during schema conversion:** `packages/atlas-runtime/schema/` compares `/workspaces/northstar/testdata/events/`; `packet_sequence` stays numeric in `atlas_event_v3`. The conversion test also covers zero, the largest safe value, a missing optional field, and an invalid string so type loss cannot hide in ordinary data.","- **Treat unknown extensions as data:** `packages/atlas-runtime/loader/` copies `/workspaces/northstar/fixtures/plugins/`; `atlas_load_module` uses `declared_media_type` instead of filename guessing. This permits a host to choose the correct evaluator while an untrusted plugin cannot change execution mode by selecting a familiar suffix.","- **Verify large artifacts through content hashes:** `packages/atlas-runtime/cache/` indexes `/workspaces/northstar/artifacts/atlas/`; `atlas artifact verify` checks `sha256_digest` before activation. Size and digest are checked after download and again before load, with one clear error that names which step observed an unexpected value.","- **Detect build drift against one canonical artifact:** `packages/atlas-runtime/ci/` reads `/workspaces/northstar/checkpoints/builds/`; `keel drift atlas` compares `canonical_bundle_id` rather than tool banners. A green result means the committed artifact matches the verified build output, not merely that two tools printed a similar version name.",``,`## Relay deployment automation (Session April 09, #433)`,"- **Acquire deployment credentials per operation:** `packages/relay-deploy/auth/` resolves `/workspaces/northstar/config/relay/`; `relay credential lease` returns `relay_lease_id`. The lease is bound to one provider and action, expires quickly, and can be revoked without changing local configuration or any unrelated deployment session.","- **Use immutable release descriptors:** `packages/relay-deploy/manifests/` publishes `/workspaces/northstar/artifacts/releases/`; `relay deploy plan` pins `release_descriptor_sha`. Review therefore covers the exact image, configuration, migration, and rollback input that promotion will consume rather than a mutable branch or floating tag.","- **Model provider capabilities explicitly:** `packages/relay-deploy/providers/` tests `/workspaces/northstar/testdata/providers/`; `provider_capability_set` prevents unsupported preview creation. A plan can explain which feature is absent and offer a compatible path before it asks a remote service to begin work.","- **Write remote documents atomically:** `packages/relay-deploy/files/` stages `/workspaces/northstar/checkpoints/remote/`; `relay file put` requires `expected_revision`. This prevents a short replacement from leaving stale tail content and prevents a concurrent operator from losing a newer remote change.","- **Keep retry policy narrow:** `packages/relay-deploy/retry/` reads `/workspaces/northstar/docs/runbooks/`; `relay_retryable_error` excludes policy denials and invalid manifests. Delay includes a firm attempt limit and a stable request identity so a temporary transport fault cannot become duplicate provider work.","- **Promote the artifact already tested:** `packages/relay-deploy/promote/` selects `/workspaces/northstar/artifacts/releases/`; `relay promote` verifies `tested_artifact_sha`. The command refuses a rebuild during promotion because even an equivalent source revision can yield a different dependency graph or bundle digest.",``,`## Orbit browser collaboration (Session April 11, #447)`,"- **Represent each shared tab as an Orbit room:** `packages/orbit-collab/rooms/` persists `/workspaces/northstar/testdata/orbit/`; `orbit room create` returns `room_epoch` and `participant_slot`. Room identity stays stable across transport replacement, while a new epoch makes every participant reject late state from a connection that no longer owns the session.","- **Send cursor updates as replaceable state:** `packages/orbit-collab/presence/` replays `/workspaces/northstar/fixtures/presence/`; `orbit_presence_v5` coalesces superseded coordinates. Presence may be lost without harming the document because the next update replaces it, which keeps interaction smooth under delay without building an unbounded queue.","- **Keep durable messages separate from presence:** `packages/orbit-collab/messages/` writes `/workspaces/northstar/checkpoints/orbit/`; `orbit message append` assigns `message_sequence`. A message is acknowledged only after durable storage, and replay begins after the highest sequence already seen so reconnect cannot create a duplicate conversation entry.","- **Recover from a stale browser execution context:** `packages/orbit-collab/browser/` logs `/workspaces/northstar/traces/orbit/`; `orbit context renew` increments `context_generation`. The old context is detached before a new observer is added, preventing both generations from sending navigation and focus events for the same visible tab.","- **Capture collaboration evidence through the public surface:** `packages/orbit-collab/qa/` stores `/workspaces/northstar/artifacts/screens/`; `keel orbit snapshot` records `active_room_id`. Review uses the same controls available to a person, then records visible member state, selected room, pending draft, and transport health beside the image.","- **Preserve pending input during reconnect:** `packages/orbit-collab/drafts/` tests `/workspaces/northstar/repros/reconnect/`; `draft_revision` survives one `transport_rebind`. The draft remains local until send succeeds, and a successful acknowledgement clears only the revision that was actually delivered rather than newer text still being edited.",``,`## Incident review — reconnect storm (Session April 12)`,"- **Root cause was competing transport owners:** `packages/orbit-collab/transport/` and `/workspaces/northstar/repros/reconnect/` both advanced `room_epoch`; the fix elects one `transport_owner`. The incident began when a browser wake event and a network return event each created a connection before either could observe the other.","- **The retry loop hid the first useful error:** `packages/orbit-collab/retry/` now records `/workspaces/northstar/traces/incidents/`; `first_failure_code` is retained in `reconnect_report`. Later timeout noise remains available in the trace, but the summary leads with the event that first moved the room away from healthy state.","- **Recovery must preserve the draft and selected room:** `packages/orbit-collab/state/` replays `/workspaces/northstar/fixtures/recovery/`; `orbit_recover_state` restores `active_room_id`. The acceptance check covers unsent text, keyboard focus, scroll position, participant order, and exactly one successful delivery after transport recovery.",``,`## Mobile companion sync (Session April 14, #462)`,"- **Pair the companion with an ephemeral code:** `packages/mobile-sync/pairing/` verifies `/workspaces/northstar/testdata/pairing/`; `mobile_pair_code` expires with `pairing_epoch`. Approval shows the synthetic device name and requested capability before either side accepts, and cancellation invalidates the code immediately rather than waiting for normal expiry.","- `packages/mobile-sync/outbox/` mirrors `/workspaces/northstar/fixtures/offline/`; `mobile_outbox_flush` preserves ordering after a network transition. Each item carries a local sequence and stable identity, so a retry can continue after the last acknowledgement without losing or repeating an action.","- `packages/mobile-sync/media/` writes `/workspaces/northstar/artifacts/mobile/`; `mobile_media_chunk` carries a checksum before upload. The receiver verifies every chunk before assembly and reports the first damaged range, which permits a narrow retry instead of sending the complete recording again.","- `packages/mobile-sync/notifications/` reads `/workspaces/northstar/testdata/push/`; `notification_dedupe_key` prevents duplicate alerts after resume. Foreground delivery updates visible state without another banner, while background delivery presents one alert that opens the exact room named by the event.","- `packages/mobile-sync/state/` compares `/workspaces/northstar/checkpoints/mobile/`; `mobile_state_merge` rejects an older `device_epoch`. Merge keeps local draft content, accepts newer durable state, and records a conflict when both sides changed the same preference after their common revision.","- `packages/mobile-sync/diagnostics/` exports `/workspaces/northstar/traces/mobile/`; `mobile_diag_bundle` removes payload text but keeps timing. The bundle includes version, platform, connection change, queue depth, retry count, and state generation so support can reason about order without reading user content.","- `packages/mobile-sync/accessibility/` tests `/workspaces/northstar/fixtures/a11y/`; `focus_restore_target` survives a view rebuild. The check follows pairing, room choice, draft entry, send, background, and resume with a keyboard so focus order is verified through a complete task.","- `packages/mobile-sync/release/` stages `/workspaces/northstar/artifacts/mobile/`; `mobile_release_channel` defaults to the review track. Promotion requires the same signed archive that passed device smoke review, with no rebuild or configuration change between approval and publication.","- `packages/mobile-sync/qa/` records `/workspaces/northstar/reviews/mobile/`; `mobile_smoke_matrix` covers offline launch, resume, and re-pairing. Each case states the initial network and account state, the exact action, the visible result, and the durable state expected after another launch.",``,`## Release readiness (Session April 16)`,"- `packages/release-checks/lint/` scans `/workspaces/northstar/checkpoints/release/`; `keel verify lint` writes `lint_run_id` for the candidate. Review links that identity rather than a copied summary so any warning, formatter change, or excluded file remains visible in its original context.","- `packages/release-checks/types/` scans `/workspaces/northstar/checkpoints/release/`; `keel verify types` records `type_graph_hash`. A later source or dependency change invalidates that graph and requires another check before the candidate can share the earlier result.","- `packages/release-checks/tests/` reads `/workspaces/northstar/testdata/`; `keel verify tests` stores `test_matrix_id`. The matrix names every package, host, browser, and fixture group that ran, making an omitted surface as visible as a failed assertion.","- `packages/release-checks/coverage/` reads `/workspaces/northstar/artifacts/coverage/`; `keel verify coverage` compares `coverage_floor_set`.","- `packages/release-checks/build/` emits `/workspaces/northstar/artifacts/builds/`; `keel verify build` stamps `bundle_manifest_sha`.","- `packages/release-checks/smoke/` stores `/workspaces/northstar/reviews/smoke/`; `keel verify smoke` requires `reviewer_ack`.",``,`## Durable project reference`,``,`### People and product context`,"- Mina Kestrel leads Northstar product engineering; the synthetic team directory lives in `packages/project-context/people/` and uses `mina_kestrel` plus `product_lead`.","- Oren Vale owns the Aurora renderer; notes in `packages/project-context/people/` use `oren_vale` and `rendering_owner`.","- Jules Rowan owns Harbor and Relay; entries in `packages/project-context/people/` use `jules_rowan` and `control_plane_owner`.","- Nia Ember owns Signal audio; records in `packages/project-context/people/` use `nia_ember` and `audio_owner`.","- Kestrel is the primary engineering agent; `/workspaces/northstar/agents/` maps `agent_kestrel` to `northstar_generalist`.","- Northstar is a fictional collaborative desktop environment; `/workspaces/northstar/docs/` defines `northstar_product` and `desktop_collaboration`.","- Aurora renders local workspaces and review scenes; `/workspaces/northstar/docs/` defines `aurora_renderer` and `scene_protocol_v6`.","- Atlas hosts sandboxed extensions; `/workspaces/northstar/docs/` defines `atlas_runtime` and `plugin_manifest_v4`.","- Harbor manages control-plane resources; `/workspaces/northstar/docs/` defines `harbor_cli` and `harbor_result_v2`.","- Relay promotes verified artifacts; `/workspaces/northstar/docs/` defines `relay_deploy` and `release_descriptor_sha`.","- Orbit synchronizes shared browser state; `/workspaces/northstar/docs/` defines `orbit_collab` and `room_epoch`.","- Signal captures and transcribes synthetic audio; `/workspaces/northstar/docs/` defines `signal_audio` and `utterance_seq`.","- Keel is the repository and verification CLI; `/workspaces/northstar/docs/` defines `keel_cli` and `verification_run`.","- Rook is the deterministic package builder; `/workspaces/northstar/docs/` defines `rook_builder` and `bundle_manifest`.","- The demo tenant is always synthetic; `/workspaces/northstar/fixtures/` uses `tenant_sandbox` and `viewer_alpha`.","- Review accounts use the reserved invalid domain; `/workspaces/northstar/fixtures/` stores `mina@example.invalid` and `oren@example.invalid`.","- Dates and identifiers describe an invented future project; `/workspaces/northstar/docs/` labels `fixture_provenance` and `synthetic_only`.","- Product decisions favor understandable failure states; `/workspaces/northstar/docs/` records `visible_diagnostics` and `recoverable_actions`.",``,`### Engineering preferences`,"- Keep each review branch narrow; `/workspaces/northstar/reviews/` records `change_scope` and `review_owner`.","- Prefer native text patches for source changes; `/workspaces/northstar/checkpoints/` records `patch_digest` and `base_oid`.","- Wait on CI through the supported command; `/workspaces/northstar/checkpoints/` stores `verification_run` and `final_status`.","- Never commit credential material; `/workspaces/northstar/config/` contains `credential_handle` and `lease_expiry` only.","- Require explicit confirmation before production promotion; `/workspaces/northstar/reviews/` stores `promotion_approval` and `rollback_plan`.","- Reproduce failures before changing a workaround; `/workspaces/northstar/repros/` stores `fixture_seed` and `first_failure_code`.","- Diagnose invisible failures with traffic and state metrics; `/workspaces/northstar/traces/` tracks `request_count` and `state_generation`.","- Use exact units instead of ambiguous shorthand; `/workspaces/northstar/docs/` prefers `approximately` and `milliseconds`.","- Keep secrets inside the broker boundary; `/workspaces/northstar/config/` exposes `credential_handle` and `provider_scope`.","- Report regressions with measured before and after values; `/workspaces/northstar/reviews/` records `baseline_metric` and `candidate_metric`.",``,`### Repository and verification map`,"- The monorepo root is `/workspaces/northstar/`; `packages/northstar-shell` contains the desktop host and `keel verify shell` is its focused gate.","- Aurora lives in `/workspaces/northstar/packages/`; `@northstar/aurora` is the public package and `aurora_protocol_v6` is the renderer contract.","- Atlas lives in `/workspaces/northstar/packages/`; `@northstar/atlas-runtime` owns plugin loading and `plugin_manifest_v4` is its schema.","- Harbor and Relay live in `/workspaces/northstar/packages/`; `@northstar/harbor-cli` owns commands and `release_descriptor_sha` identifies promotion input.","- Orbit and Signal live in `/workspaces/northstar/packages/`; `@northstar/orbit-collab` owns shared state and `utterance_seq` orders audio text.","- All synthetic fixtures live in `/workspaces/northstar/testdata/`; `keel verify fixtures` checks privacy and `fixture_provenance` marks their source.",``,`### Infrastructure and operations`,"- The local control plane uses `/workspaces/northstar/config/`; `harbor_local_profile` selects the sandbox and `credential_handle` references broker state.","- Preview artifacts use `/workspaces/northstar/artifacts/`; `aurora_bundle_hash` identifies the renderer and `canonical_bundle_id` drives drift checks.","- Deployment manifests use `/workspaces/northstar/artifacts/`; `release_descriptor_sha` pins content and `tested_artifact_sha` gates promotion.","- Collaboration traces use `/workspaces/northstar/traces/`; `room_epoch` identifies a session and `context_generation` identifies browser renewal.","- Mobile diagnostics use `/workspaces/northstar/traces/`; `mobile_diag_bundle` strips content and `device_epoch` orders state.","- Incident runbooks use `/workspaces/northstar/docs/`; `first_failure_code` names the initiating fault and `rollback_plan` names recovery.","- Review evidence uses `/workspaces/northstar/reviews/`; `baseline_metric` and `candidate_metric` keep UI judgments quantitative.","- Production promotion remains disabled in this fixture; `/workspaces/northstar/config/` sets `production_enabled` false and `tenant_sandbox` as the only tenant."].join(`
3363
- `)+``;var oo=`
3363
+ `,$o=`slicc-memrow-style`,es=96,ts=12;function ns(e,t){if(e.length<=es)return{heading:e,summary:t};let n=e.slice(0,97).lastIndexOf(` `),r=n>=ts?n:es,i=e.slice(r).trim();return{heading:e.slice(0,r).trim(),summary:[i,t].filter(Boolean).join(` `)}}function rs(e){if(e.getElementById($o))return;let t=e.createElement(`style`);t.id=$o,t.textContent=Qo,(e.head??e.documentElement).appendChild(t)}function is(e){return e===`feedback`||e===`project`?e:`user`}F(`slicc-memrow`,class extends HTMLElement{static get observedAttributes(){return[`heading`,`summary`,`tag`,`fresh`,`expanded`]}#e=!1;#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=0;#c=!1;#l=!1;#u=null;#d=null;#f=null;connectedCallback(){rs(this.ownerDocument),this.#e||this.#p(),this.#m(),this.#y(),this.#h()}disconnectedCallback(){this.#b(),this.#o?.disconnect(),this.#o=null,this.#s&&cancelAnimationFrame(this.#s),this.#s=0}attributeChangedCallback(){this.#e&&this.#m()}get heading(){return this.getAttribute(`heading`)??``}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get summary(){return this.getAttribute(`summary`)??``}set summary(e){e==null?this.removeAttribute(`summary`):this.setAttribute(`summary`,e)}get tag(){return is(this.getAttribute(`tag`))}set tag(e){this.setAttribute(`tag`,e)}get fresh(){return this.hasAttribute(`fresh`)}set fresh(e){this.toggleAttribute(`fresh`,e)}get expanded(){return this.hasAttribute(`expanded`)}set expanded(e){this.toggleAttribute(`expanded`,e)}setHeadingContent(e){this.#c=!0,this.#n?this.#n.replaceChildren(e):this.#u=e}setBodyContent(e){this.#l=!0,this.#i?this.#i.replaceChildren(e):this.#d=e,this.#g()}#p(){this.#e=!0;let e=this.ownerDocument.createElement(`button`);e.className=`mt`,e.type=`button`;let t=this.ownerDocument.createElement(`b`),n=this.ownerDocument.createElement(`slicc-memtag`);e.append(t,n);let r=this.ownerDocument.createElement(`div`);for(r.className=`ms`;this.firstChild;)r.appendChild(this.firstChild);this.#u&&t.replaceChildren(this.#u),this.#d&&r.replaceChildren(this.#d),this.#u=null,this.#d=null,this.append(e,r),this.#t=e,this.#n=t,this.#r=n,this.#i=r}#m(){let e=this.#n,t=this.#r,n=this.#i;if(!e||!t||!n)return;let r=ns(this.heading,this.summary);this.#c||(e.textContent=r.heading);let i=this.tag;if(t.className=``,t.hidden=!this.hasAttribute(`tag`),t.setAttribute(`type`,i),t.textContent=``,!this.#l){let e=n.firstChild,t=r.summary;e&&e.nodeType===Node.TEXT_NODE?e.textContent=t:t&&n.insertBefore(this.ownerDocument.createTextNode(t),e)}this.classList.toggle(`fresh`,this.fresh),this.#v(),this.#g()}#h(){let e=this.#i;!e||this.#o||(this.#o=new ResizeObserver(()=>this.#g()),this.#o.observe(e),this.#g())}#g(){!this.isConnected||this.expanded||(this.#s&&cancelAnimationFrame(this.#s),this.#s=requestAnimationFrame(()=>{this.#s=0;let e=this.#i;!e||this.expanded||(e.scrollHeight>e.clientHeight+1?this.#_():this.#a?.remove(),this.#v())}))}#_(){if(!this.#a){let e=this.ownerDocument.createElement(`button`);e.className=`mexpand`,e.type=`button`,e.addEventListener(`click`,e=>{e.stopPropagation(),this.expanded=!this.expanded}),this.#a=e}this.#a.isConnected||this.append(this.#a)}#v(){let e=this.#a;if(!e?.isConnected)return;let t=this.expanded;e.textContent=t?`Show less`:`Show more`,e.setAttribute(`aria-expanded`,String(t))}#y(){this.#f||(this.#f=e=>this.#x(e),this.addEventListener(`click`,this.#f))}#b(){this.#f&&=(this.removeEventListener(`click`,this.#f),null)}#x(e){this.dispatchEvent(new CustomEvent(`select`,{bubbles:!0,composed:!0,detail:{heading:this.heading,summary:this.summary,tag:this.tag,sourceEvent:e}}))}});var as=64,os=12,ss=/\b(feedback|reviews?|corrections?|learnings?|observations?|testing|verification)\b/i,cs=/\b(user|preferences?|identit(?:y|ies)|accounts?|personal|interface|working rhythm|keyboard|accessibility)\b/i,ls=/^Auto-extracted \(/;function us(e){let t=document.createRange();return t.selectNodeContents(document.body),t.createContextualFragment(e)}function ds(e,t){return(us(t(e)).textContent??``).replace(/\s+/g,` `).trim()}function fs(e,t){let n=ds(e,t);if(n.length<=as)return{title:n,summary:``,titleEnd:n.length,summaryStart:n.length};let r=[];for(let e of n.matchAll(/[.!?](?:[*_`'")\]]*)\s+|\s+[—–]\s+|[:;](?:[*_`]*)\s+|,\s+(?=(?:and|but|because|while|when|then|so)\b)/g)){let t=/^\s+[—–]|^[:;]/.test(e[0]),i=e.index+(t?0:e[0].trimEnd().length),a=e.index+e[0].length;n.slice(0,i).trim().length>=os&&i<=96&&n.slice(a).trim()&&r.push({titleEnd:i,summaryStart:a})}let i=r.sort((e,t)=>Math.abs(e.titleEnd-as)-Math.abs(t.titleEnd-as))[0];if(i)return{title:n.slice(0,i.titleEnd).trim(),summary:n.slice(i.summaryStart).trim(),titleEnd:i.titleEnd,summaryStart:i.summaryStart};let a=n.slice(0,97).lastIndexOf(` `),o=a>=os?a:96,s=n.slice(o).trim();return{title:n.slice(0,o).trim(),summary:s,titleEnd:o,summaryStart:n.indexOf(s,o)}}function ps(e,t,n){let r=ds(e,n),i=ls.test(t),a=i?r:`${t} ${r}`;return ss.test(a)?`feedback`:cs.test(a)?`user`:i?null:`project`}function ms(e,t,n){let r=fs(e,n);return{title:r.title,summary:r.summary,section:t,tag:ps(e,t,n),bodyHtml:n(e),titleEnd:r.titleEnd,summaryStart:r.summaryStart}}function hs(e,t){let n=[],r=`Memory`,i=``,a=``,o=null,s=()=>[i||r,a].filter(Boolean).join(` / `),c=()=>{if(!o)return;let e=o.lines.join(` `).trim();e&&n.push(ms(e,o.section,t)),o=null};for(let n of e.split(`
3364
+ `)){let e=/^(#{1,6})\s+(.+?)\s*#*\s*$/.exec(n.trim());if(e){c();let n=ds(e[2],t);e[1].length===1?(r=n||r,i=``,a=``):e[1].length===2?(i=n,a=``):e[1].length===3&&(a=n);continue}let l=/^\s*[-*]\s+(.*)$/.exec(n);l?(c(),o={lines:[l[1]],section:s()}):n.trim()?o?o.lines.push(n.trim()):o={lines:[n.trim()],section:s()}:c()}return c(),n}function gs(e,t){let n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=0,i=!1,a=!1,o=null,s=n.nextNode();for(;s;){for(let e=0;e<s.data.length;e+=1){if(/\s/.test(s.data[e])){i&&!a&&(a=!0,o={node:s,offset:e});continue}if(a){if(r===t)return o;r+=1}if(a=!1,o=null,r===t)return{node:s,offset:e};r+=1,i=!0}s=n.nextNode()}return r===t?{node:e,offset:e.childNodes.length}:null}function _s(e,t,n){let r=us(e),i=gs(r,t),a=n==null?{node:r,offset:r.childNodes.length}:gs(r,n);if(!i||!a)return document.createDocumentFragment();let o=document.createRange();o.setStart(i.node,i.offset),o.setEnd(a.node,a.offset);let s=o.cloneContents();for(let e of[...s.childNodes])e.nodeType===Node.TEXT_NODE&&!e.textContent?.trim()&&e.remove();let c=s.childNodes.length===1?s.firstChild:null;if(!(c instanceof HTMLParagraphElement))return s;let l=document.createDocumentFragment();return l.append(...c.childNodes),l}function vs(e,t){return hs(e,t).map(e=>{let t=document.createElement(`slicc-memrow`);return t.setAttribute(`heading`,e.title),e.summary&&t.setAttribute(`summary`,e.summary),t.setAttribute(`section`,e.section),e.tag&&t.setAttribute(`tag`,e.tag),t.setHeadingContent(_s(e.bodyHtml,0,e.titleEnd)),e.summary&&t.setBodyContent(_s(e.bodyHtml,e.summaryStart,null)),t})}[`# Project Northstar`,``,`Role: Kestrel (primary engineering agent)`,`Workspace: /workspaces/northstar`,`Snapshot: 2032-04-18T14:15:51.712Z`,``,`## Operating agreements`,"- **Keep Northstar changes reviewable:** issue #501 requires one concern per branch in `packages/northstar-shell/src/` with fixtures under `/workspaces/northstar/testdata/`; run `keel verify --scope shell` before asking Mina Kestrel for `review_ready` status. The branch note in `packages/northstar-shell/reviews/` explains the user-visible outcome, the measured baseline, and the exact rollback point so another engineer can judge the change without reconstructing the session.","- **Prefer evidence before edits:** issue #502 starts with traces from `packages/telemetry/src/` and a reproduction in `/workspaces/northstar/repros/`; record the failing `trace_id` and the smallest useful `fixture_seed` before changing code. The supporting report in `packages/telemetry/reports/` separates observed behavior from a proposed cause and includes the command, expected result, actual result, and environment assumptions.","- **Use the native release path:** issue #503 sends text-only patches through `packages/release-tools/src/` and stores large binary fixtures in `/workspaces/northstar/artifacts/`; invoke `keel publish --dry-run` and confirm `release_manifest_v3` before upload. The release record in `packages/release-tools/records/` names every artifact, its content digest, the verification run that produced it, and the person who approved promotion.","- **Never merge on assumption:** issue #504 leaves the candidate in `packages/change-gate/src/` until `/workspaces/northstar/reviews/` contains an explicit approval; use `keel review status` and preserve the requested `merge_strategy`. The decision log in `packages/change-gate/decisions/` states whether history must remain linear and whether a reviewer requested a merge commit for audit context.",``,`## Repository and release workflow`,"- **Branch from the verified base:** issue #505 creates work in `packages/release-tools/branches/` and writes the base proof to `/workspaces/northstar/checkpoints/`; `keel branch create` must report the expected `base_oid`. The branch receipt in `packages/release-tools/receipts/` also captures the remote name and fetch time, which makes stale-base failures obvious during review.","- **Rebase only when linear history is required:** issue #506 keeps merge-preserving work in `packages/change-gate/policies/` and conflict notes in `/workspaces/northstar/reviews/`; choose `merge_commit` or `linear_rebase` from the recorded policy, never from habit. Guidance under packages/change-gate/guides/rebase/ requires a fresh verification run after conflict resolution because a clean textual rebase does not prove unchanged behavior.","- **Treat remote deletion as a gated operation:** issue #507 resolves the exact ref through `packages/release-tools/refs/` and snapshots it in `/workspaces/northstar/checkpoints/`; call `keel ref delete --confirm` only after `ref_guard` matches. The recovery note under packages/release-tools/guides/restore/ retains the deleted object identifier and a tested restore command until the review window closes.",``,`## Aurora renderer bootstrap — desktop preview (Session April 02)`,"- **Create the preview shell:** issue #508 keeps the host in `packages/aurora-preview/src/` and its deterministic scene data in `/workspaces/northstar/fixtures/aurora/`; start `keel preview aurora` with `scene_seed_2048`. A walkthrough under packages/aurora-preview/guides/startup/ lists the expected loading, ready, degraded, and failed states so reviewers know whether the shell or renderer owns a defect.","- **Load the renderer through its public package:** issue #509 imports `@northstar/aurora` from `/workspaces/northstar/apps/desktop/` and pins `aurora_protocol_v6`; the preview must not reach the private `renderer_singleton`. Contract notes under packages/aurora-preview/guides/contracts/ describe the mount lifecycle and require the host to release observers, workers, and object URLs during teardown.","- **Keep browser and desktop entry points equivalent:** issue #510 compares `packages/aurora-preview/browser/` with `/workspaces/northstar/apps/desktop/`; both expose `mountAuroraPreview` and accept `preview_transport`. Parity evidence under packages/aurora-preview/reviews/parity/ records the same scene, viewport, theme, keyboard path, and frame checksum for each host.","- **Pass viewer identity without personal data:** issue #511 reads `packages/aurora-preview/config/` and `/workspaces/northstar/fixtures/viewers/`; use `viewer_alpha` plus `tenant_sandbox`, never an account copied from production. The fixture catalog under packages/aurora-preview/fixtures/viewers/ explains each synthetic role and deliberately omits names, credentials, message history, and customer content.","- **Document the development-only compositor:** the guide in `packages/aurora-preview/docs/` points to `/workspaces/northstar/examples/compositor/`; `keel preview --inspect` exposes `frame_budget_ms` for local diagnosis. The inspector reports dropped frames, long tasks, active workers, and selected fallback mode without changing the scheduling decisions being measured.","- **Bundle Aurora without runtime network fetches:** build `packages/aurora-preview/bundle/` into `/workspaces/northstar/artifacts/aurora/` with `rook bundle --target desktop`; the output registers `aurora_bundle_hash` and embeds shader tables, icon atlases, locale data, fallback fonts, protocol schemas, worker bootstrap code, source labels, feature defaults, accessibility metadata, safe demo accounts, and the exact scene seed used by review. The host imports one local module, validates the manifest before evaluation, rejects unknown capabilities, records a structured startup trace, and keeps every optional adapter behind a capability check. When the packager rewrites an external import, inspect the emitted dependency map rather than adding a global shim. The accepted bundle must boot with the network disabled, survive a renderer restart, restore the selected scene, preserve focus order, report missing GPU features as a visible diagnostic, and produce the same frame checksum in Chromium and the desktop shell. Store the checksum beside the manifest, not in application code, so a fixture update is reviewable without touching runtime behavior.","- **Aurora offline recovery drill for the desktop preview** uses `packages/aurora-preview/fallback/` and `/workspaces/northstar/apps/desktop/assets/` with `aurora_fallback_entry` after `gpu_probe_result` records unsupported adapter evidence then the host verifies the local manifest restores the selected scene preserves keyboard focus retains the review viewport loads bundled fonts rejects network requests emits a visible diagnostic stores the frame checksum beside the artifact compares browser and desktop output keeps the original trace identifier and leaves the normal renderer untouched for the next controlled restart",``,`## Signal audio service — capture and transcription pipeline`,"- **Keep voice fixtures synthetic:** write generated samples to `packages/signal-audio/fixtures/` and metadata to `/workspaces/northstar/testdata/audio/`; select `signal_voice_cedar` with `sample_rate_24000`. The catalog under packages/signal-audio/guides/fixtures/ states how each sample was generated and which timing, silence, overlap, and clipping cases it is meant to exercise.","- **Resolve credentials through the fixture broker:** configure `packages/signal-audio/auth/` from `/workspaces/northstar/config/local/`; `keel secret lease signal` returns `signal_lease_ref` without exposing token material. The runbook under packages/signal-audio/guides/auth/ distinguishes a missing lease, an expired lease, provider denial, and an unavailable broker so recovery remains specific.","- **Use the streaming endpoint for long utterances:** send chunks from `packages/signal-audio/stream/` through `/workspaces/northstar/repros/audio/`; the client tracks `utterance_seq` and rejects a stale `transcript_epoch`. Evidence under packages/signal-audio/reviews/streaming/ includes chunk timing and final ordering, making dropped, duplicated, and late frames visible without retaining spoken content.","- **Preserve binary audio until decoding succeeds:** `packages/signal-audio/codecs/` writes to `/workspaces/northstar/artifacts/audio/`; `signal_decode_pcm` returns `decoded_frame_count` before text normalization. Notes under packages/signal-audio/guides/codecs/ require the original byte length, channel count, sample rate, and decoder warning before any waveform is discarded.",``,`## Harbor control-plane CLI (Session April 05, #401)`,"- **Define Harbor as a thin API client:** keep commands in `packages/harbor-cli/src/` and contract fixtures in `/workspaces/northstar/testdata/harbor/`; `harbor project list` emits `harbor_result_v2`. This boundary keeps command behavior easy to inspect, lets the service remain the source of truth, and gives every failure one clear place for diagnosis.","- **Store only a broker reference:** `packages/harbor-cli/auth/` reads `/workspaces/northstar/config/local/`; `harbor auth login` persists `credential_handle`, never a bearer value. A later command can ask the broker for a short lease while the terminal, history, trace, and saved configuration remain free of secret material.","- **Normalize boolean flags at the boundary:** `packages/harbor-cli/args/` tests `/workspaces/northstar/repros/harbor/`; `--include-paused=false` becomes `include_paused` rather than a truthy string. The same rule covers an omitted flag, an explicit true value, and a false value so script behavior does not depend on parser accident.","- **Do not edit remote files with shell redirection:** fetch through `packages/harbor-cli/files/` into `/workspaces/northstar/checkpoints/`; `harbor file replace` validates `remote_etag` before committing. The client first writes a complete local draft, shows a compact difference, and sends the whole document only after the expected revision still matches.","- **Read structured responses before printing:** `packages/harbor-cli/output/` stores schemas under `/workspaces/northstar/testdata/schemas/`; `harbor --format json` preserves `error_code` and nested causes. Human output may become shorter, but machine output must retain every field needed for retry, support, audit, and a later automated decision.","- **Refresh expired leases once:** `packages/harbor-cli/retry/` records attempts in `/workspaces/northstar/traces/`; `harbor_lease_expired` may trigger one `credential_refresh`, not a loop. A second denial is returned with the first request identity and lease age so the operator sees a stable failure rather than repeated login work.","- **Map provider failures to actionable hints:** `packages/harbor-cli/errors/` uses `/workspaces/northstar/docs/runbooks/`; `deployment_policy_denied` points to `harbor deployment inspect`. Each hint names the blocked resource, the required capability, and a safe read-only command that can confirm policy state before any new request.",``,`## Atlas runtime and plugin packaging (Session April 07, #418)`,"- **Build Atlas from a readable entry module:** `packages/atlas-runtime/src/` produces `/workspaces/northstar/artifacts/atlas/`; `rook build atlas` keeps `atlas_entrypoint` stable. The entry names each adapter and capability in one visible table, which makes bundle review possible without following generated glue across many small files.","- **Install plugins into an isolated sandbox:** `packages/atlas-runtime/plugins/` expands under `/workspaces/northstar/sandboxes/atlas/`; `atlas plugin inspect` verifies `plugin_manifest_v4`. Extraction rejects parent traversal, absolute names, duplicate entries, and unsupported links before any plugin code can observe the host or write outside its assigned directory.","- **Share filesystem adapters across hosts:** `packages/atlas-runtime/adapters/` is tested against `/workspaces/northstar/testdata/files/`; `atlas_read_bytes` and `atlas_write_atomic` retain binary data. Browser and desktop implementations must agree on path normalization, missing file behavior, atomic replacement, permission denial, and the byte count returned after a write.","- **Externalize host-owned modules:** `packages/atlas-runtime/build/` writes `/workspaces/northstar/artifacts/maps/`; `rook bundle --external host` marks `host_module_table` in the manifest. The loader resolves only names declared by that table and reports an absent host module before plugin startup rather than after partial state has changed.","- **Preserve integer field types during schema conversion:** `packages/atlas-runtime/schema/` compares `/workspaces/northstar/testdata/events/`; `packet_sequence` stays numeric in `atlas_event_v3`. The conversion test also covers zero, the largest safe value, a missing optional field, and an invalid string so type loss cannot hide in ordinary data.","- **Treat unknown extensions as data:** `packages/atlas-runtime/loader/` copies `/workspaces/northstar/fixtures/plugins/`; `atlas_load_module` uses `declared_media_type` instead of filename guessing. This permits a host to choose the correct evaluator while an untrusted plugin cannot change execution mode by selecting a familiar suffix.","- **Verify large artifacts through content hashes:** `packages/atlas-runtime/cache/` indexes `/workspaces/northstar/artifacts/atlas/`; `atlas artifact verify` checks `sha256_digest` before activation. Size and digest are checked after download and again before load, with one clear error that names which step observed an unexpected value.","- **Detect build drift against one canonical artifact:** `packages/atlas-runtime/ci/` reads `/workspaces/northstar/checkpoints/builds/`; `keel drift atlas` compares `canonical_bundle_id` rather than tool banners. A green result means the committed artifact matches the verified build output, not merely that two tools printed a similar version name.",``,`## Relay deployment automation (Session April 09, #433)`,"- **Acquire deployment credentials per operation:** `packages/relay-deploy/auth/` resolves `/workspaces/northstar/config/relay/`; `relay credential lease` returns `relay_lease_id`. The lease is bound to one provider and action, expires quickly, and can be revoked without changing local configuration or any unrelated deployment session.","- **Use immutable release descriptors:** `packages/relay-deploy/manifests/` publishes `/workspaces/northstar/artifacts/releases/`; `relay deploy plan` pins `release_descriptor_sha`. Review therefore covers the exact image, configuration, migration, and rollback input that promotion will consume rather than a mutable branch or floating tag.","- **Model provider capabilities explicitly:** `packages/relay-deploy/providers/` tests `/workspaces/northstar/testdata/providers/`; `provider_capability_set` prevents unsupported preview creation. A plan can explain which feature is absent and offer a compatible path before it asks a remote service to begin work.","- **Write remote documents atomically:** `packages/relay-deploy/files/` stages `/workspaces/northstar/checkpoints/remote/`; `relay file put` requires `expected_revision`. This prevents a short replacement from leaving stale tail content and prevents a concurrent operator from losing a newer remote change.","- **Keep retry policy narrow:** `packages/relay-deploy/retry/` reads `/workspaces/northstar/docs/runbooks/`; `relay_retryable_error` excludes policy denials and invalid manifests. Delay includes a firm attempt limit and a stable request identity so a temporary transport fault cannot become duplicate provider work.","- **Promote the artifact already tested:** `packages/relay-deploy/promote/` selects `/workspaces/northstar/artifacts/releases/`; `relay promote` verifies `tested_artifact_sha`. The command refuses a rebuild during promotion because even an equivalent source revision can yield a different dependency graph or bundle digest.",``,`## Orbit browser collaboration (Session April 11, #447)`,"- **Represent each shared tab as an Orbit room:** `packages/orbit-collab/rooms/` persists `/workspaces/northstar/testdata/orbit/`; `orbit room create` returns `room_epoch` and `participant_slot`. Room identity stays stable across transport replacement, while a new epoch makes every participant reject late state from a connection that no longer owns the session.","- **Send cursor updates as replaceable state:** `packages/orbit-collab/presence/` replays `/workspaces/northstar/fixtures/presence/`; `orbit_presence_v5` coalesces superseded coordinates. Presence may be lost without harming the document because the next update replaces it, which keeps interaction smooth under delay without building an unbounded queue.","- **Keep durable messages separate from presence:** `packages/orbit-collab/messages/` writes `/workspaces/northstar/checkpoints/orbit/`; `orbit message append` assigns `message_sequence`. A message is acknowledged only after durable storage, and replay begins after the highest sequence already seen so reconnect cannot create a duplicate conversation entry.","- **Recover from a stale browser execution context:** `packages/orbit-collab/browser/` logs `/workspaces/northstar/traces/orbit/`; `orbit context renew` increments `context_generation`. The old context is detached before a new observer is added, preventing both generations from sending navigation and focus events for the same visible tab.","- **Capture collaboration evidence through the public surface:** `packages/orbit-collab/qa/` stores `/workspaces/northstar/artifacts/screens/`; `keel orbit snapshot` records `active_room_id`. Review uses the same controls available to a person, then records visible member state, selected room, pending draft, and transport health beside the image.","- **Preserve pending input during reconnect:** `packages/orbit-collab/drafts/` tests `/workspaces/northstar/repros/reconnect/`; `draft_revision` survives one `transport_rebind`. The draft remains local until send succeeds, and a successful acknowledgement clears only the revision that was actually delivered rather than newer text still being edited.",``,`## Incident review — reconnect storm (Session April 12)`,"- **Root cause was competing transport owners:** `packages/orbit-collab/transport/` and `/workspaces/northstar/repros/reconnect/` both advanced `room_epoch`; the fix elects one `transport_owner`. The incident began when a browser wake event and a network return event each created a connection before either could observe the other.","- **The retry loop hid the first useful error:** `packages/orbit-collab/retry/` now records `/workspaces/northstar/traces/incidents/`; `first_failure_code` is retained in `reconnect_report`. Later timeout noise remains available in the trace, but the summary leads with the event that first moved the room away from healthy state.","- **Recovery must preserve the draft and selected room:** `packages/orbit-collab/state/` replays `/workspaces/northstar/fixtures/recovery/`; `orbit_recover_state` restores `active_room_id`. The acceptance check covers unsent text, keyboard focus, scroll position, participant order, and exactly one successful delivery after transport recovery.",``,`## Mobile companion sync (Session April 14, #462)`,"- **Pair the companion with an ephemeral code:** `packages/mobile-sync/pairing/` verifies `/workspaces/northstar/testdata/pairing/`; `mobile_pair_code` expires with `pairing_epoch`. Approval shows the synthetic device name and requested capability before either side accepts, and cancellation invalidates the code immediately rather than waiting for normal expiry.","- `packages/mobile-sync/outbox/` mirrors `/workspaces/northstar/fixtures/offline/`; `mobile_outbox_flush` preserves ordering after a network transition. Each item carries a local sequence and stable identity, so a retry can continue after the last acknowledgement without losing or repeating an action.","- `packages/mobile-sync/media/` writes `/workspaces/northstar/artifacts/mobile/`; `mobile_media_chunk` carries a checksum before upload. The receiver verifies every chunk before assembly and reports the first damaged range, which permits a narrow retry instead of sending the complete recording again.","- `packages/mobile-sync/notifications/` reads `/workspaces/northstar/testdata/push/`; `notification_dedupe_key` prevents duplicate alerts after resume. Foreground delivery updates visible state without another banner, while background delivery presents one alert that opens the exact room named by the event.","- `packages/mobile-sync/state/` compares `/workspaces/northstar/checkpoints/mobile/`; `mobile_state_merge` rejects an older `device_epoch`. Merge keeps local draft content, accepts newer durable state, and records a conflict when both sides changed the same preference after their common revision.","- `packages/mobile-sync/diagnostics/` exports `/workspaces/northstar/traces/mobile/`; `mobile_diag_bundle` removes payload text but keeps timing. The bundle includes version, platform, connection change, queue depth, retry count, and state generation so support can reason about order without reading user content.","- `packages/mobile-sync/accessibility/` tests `/workspaces/northstar/fixtures/a11y/`; `focus_restore_target` survives a view rebuild. The check follows pairing, room choice, draft entry, send, background, and resume with a keyboard so focus order is verified through a complete task.","- `packages/mobile-sync/release/` stages `/workspaces/northstar/artifacts/mobile/`; `mobile_release_channel` defaults to the review track. Promotion requires the same signed archive that passed device smoke review, with no rebuild or configuration change between approval and publication.","- `packages/mobile-sync/qa/` records `/workspaces/northstar/reviews/mobile/`; `mobile_smoke_matrix` covers offline launch, resume, and re-pairing. Each case states the initial network and account state, the exact action, the visible result, and the durable state expected after another launch.",``,`## Release readiness (Session April 16)`,"- `packages/release-checks/lint/` scans `/workspaces/northstar/checkpoints/release/`; `keel verify lint` writes `lint_run_id` for the candidate. Review links that identity rather than a copied summary so any warning, formatter change, or excluded file remains visible in its original context.","- `packages/release-checks/types/` scans `/workspaces/northstar/checkpoints/release/`; `keel verify types` records `type_graph_hash`. A later source or dependency change invalidates that graph and requires another check before the candidate can share the earlier result.","- `packages/release-checks/tests/` reads `/workspaces/northstar/testdata/`; `keel verify tests` stores `test_matrix_id`. The matrix names every package, host, browser, and fixture group that ran, making an omitted surface as visible as a failed assertion.","- `packages/release-checks/coverage/` reads `/workspaces/northstar/artifacts/coverage/`; `keel verify coverage` compares `coverage_floor_set`.","- `packages/release-checks/build/` emits `/workspaces/northstar/artifacts/builds/`; `keel verify build` stamps `bundle_manifest_sha`.","- `packages/release-checks/smoke/` stores `/workspaces/northstar/reviews/smoke/`; `keel verify smoke` requires `reviewer_ack`.",``,`## Durable project reference`,``,`### People and product context`,"- Mina Kestrel leads Northstar product engineering; the synthetic team directory lives in `packages/project-context/people/` and uses `mina_kestrel` plus `product_lead`.","- Oren Vale owns the Aurora renderer; notes in `packages/project-context/people/` use `oren_vale` and `rendering_owner`.","- Jules Rowan owns Harbor and Relay; entries in `packages/project-context/people/` use `jules_rowan` and `control_plane_owner`.","- Nia Ember owns Signal audio; records in `packages/project-context/people/` use `nia_ember` and `audio_owner`.","- Kestrel is the primary engineering agent; `/workspaces/northstar/agents/` maps `agent_kestrel` to `northstar_generalist`.","- Northstar is a fictional collaborative desktop environment; `/workspaces/northstar/docs/` defines `northstar_product` and `desktop_collaboration`.","- Aurora renders local workspaces and review scenes; `/workspaces/northstar/docs/` defines `aurora_renderer` and `scene_protocol_v6`.","- Atlas hosts sandboxed extensions; `/workspaces/northstar/docs/` defines `atlas_runtime` and `plugin_manifest_v4`.","- Harbor manages control-plane resources; `/workspaces/northstar/docs/` defines `harbor_cli` and `harbor_result_v2`.","- Relay promotes verified artifacts; `/workspaces/northstar/docs/` defines `relay_deploy` and `release_descriptor_sha`.","- Orbit synchronizes shared browser state; `/workspaces/northstar/docs/` defines `orbit_collab` and `room_epoch`.","- Signal captures and transcribes synthetic audio; `/workspaces/northstar/docs/` defines `signal_audio` and `utterance_seq`.","- Keel is the repository and verification CLI; `/workspaces/northstar/docs/` defines `keel_cli` and `verification_run`.","- Rook is the deterministic package builder; `/workspaces/northstar/docs/` defines `rook_builder` and `bundle_manifest`.","- The demo tenant is always synthetic; `/workspaces/northstar/fixtures/` uses `tenant_sandbox` and `viewer_alpha`.","- Review accounts use the reserved invalid domain; `/workspaces/northstar/fixtures/` stores `mina@example.invalid` and `oren@example.invalid`.","- Dates and identifiers describe an invented future project; `/workspaces/northstar/docs/` labels `fixture_provenance` and `synthetic_only`.","- Product decisions favor understandable failure states; `/workspaces/northstar/docs/` records `visible_diagnostics` and `recoverable_actions`.",``,`### Engineering preferences`,"- Keep each review branch narrow; `/workspaces/northstar/reviews/` records `change_scope` and `review_owner`.","- Prefer native text patches for source changes; `/workspaces/northstar/checkpoints/` records `patch_digest` and `base_oid`.","- Wait on CI through the supported command; `/workspaces/northstar/checkpoints/` stores `verification_run` and `final_status`.","- Never commit credential material; `/workspaces/northstar/config/` contains `credential_handle` and `lease_expiry` only.","- Require explicit confirmation before production promotion; `/workspaces/northstar/reviews/` stores `promotion_approval` and `rollback_plan`.","- Reproduce failures before changing a workaround; `/workspaces/northstar/repros/` stores `fixture_seed` and `first_failure_code`.","- Diagnose invisible failures with traffic and state metrics; `/workspaces/northstar/traces/` tracks `request_count` and `state_generation`.","- Use exact units instead of ambiguous shorthand; `/workspaces/northstar/docs/` prefers `approximately` and `milliseconds`.","- Keep secrets inside the broker boundary; `/workspaces/northstar/config/` exposes `credential_handle` and `provider_scope`.","- Report regressions with measured before and after values; `/workspaces/northstar/reviews/` records `baseline_metric` and `candidate_metric`.",``,`### Repository and verification map`,"- The monorepo root is `/workspaces/northstar/`; `packages/northstar-shell` contains the desktop host and `keel verify shell` is its focused gate.","- Aurora lives in `/workspaces/northstar/packages/`; `@northstar/aurora` is the public package and `aurora_protocol_v6` is the renderer contract.","- Atlas lives in `/workspaces/northstar/packages/`; `@northstar/atlas-runtime` owns plugin loading and `plugin_manifest_v4` is its schema.","- Harbor and Relay live in `/workspaces/northstar/packages/`; `@northstar/harbor-cli` owns commands and `release_descriptor_sha` identifies promotion input.","- Orbit and Signal live in `/workspaces/northstar/packages/`; `@northstar/orbit-collab` owns shared state and `utterance_seq` orders audio text.","- All synthetic fixtures live in `/workspaces/northstar/testdata/`; `keel verify fixtures` checks privacy and `fixture_provenance` marks their source.",``,`### Infrastructure and operations`,"- The local control plane uses `/workspaces/northstar/config/`; `harbor_local_profile` selects the sandbox and `credential_handle` references broker state.","- Preview artifacts use `/workspaces/northstar/artifacts/`; `aurora_bundle_hash` identifies the renderer and `canonical_bundle_id` drives drift checks.","- Deployment manifests use `/workspaces/northstar/artifacts/`; `release_descriptor_sha` pins content and `tested_artifact_sha` gates promotion.","- Collaboration traces use `/workspaces/northstar/traces/`; `room_epoch` identifies a session and `context_generation` identifies browser renewal.","- Mobile diagnostics use `/workspaces/northstar/traces/`; `mobile_diag_bundle` strips content and `device_epoch` orders state.","- Incident runbooks use `/workspaces/northstar/docs/`; `first_failure_code` names the initiating fault and `rollback_plan` names recovery.","- Review evidence uses `/workspaces/northstar/reviews/`; `baseline_metric` and `candidate_metric` keep UI judgments quantitative.","- Production promotion remains disabled in this fixture; `/workspaces/northstar/config/` sets `production_enabled` false and `tenant_sandbox` as the only tenant."].join(`
3365
+ `)+``;var ys=`
3364
3366
  slicc-memory-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--canvas);color:var(--ink);font-family:var(--ui)}
3365
3367
  slicc-memory-panel .mp-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--canvas) 94%,var(--violet))}
3366
3368
  slicc-memory-panel .mp-search{display:flex;align-items:center;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--canvas);padding:0 10px}
@@ -3393,7 +3395,7 @@ slicc-memory-panel .mp-rows{padding:0;border-top:0}
3393
3395
  slicc-memory-panel slicc-memrow{border:0;border-radius:0;border-top:1px solid var(--line);margin:0;padding:7px 12px}
3394
3396
  slicc-memory-panel slicc-memrow .mt b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
3395
3397
  slicc-memory-panel slicc-memrow .ms{-webkit-line-clamp:1;margin-top:2px;font-size:11px}
3396
- `,so=`slicc-memory-panel-style`;function co(e){if(e.getElementById(so))return;let t=e.createElement(`style`);t.id=so,t.textContent=oo,(e.head??e.documentElement).append(t)}function lo(e){return e.getAttribute(`section`)?.trim()||`General`}function uo(e){let t=new Map;for(let n of e){let e=lo(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}var fo=2,po=[`user`,`feedback`,`project`];function mo(e){for(let t of po)if(e.filter(e=>e.getAttribute(`tag`)===t).length*2>e.length)return t;return null}function ho(e,t){let n=mo(t);n&&e.setAttribute(`data-suppress-${n}`,``)}function go(e){let t=/^Auto-extracted \((?:(\d{4})-(\d{2})-(\d{2}),\s*)?([^)]+)\)$/.exec(e);if(!t){let t=/\(([^)]*\bsessions?\b[^)]*)\)/i.exec(e);return t?{name:`${e.slice(0,t.index)} ${e.slice(t.index+t[0].length)}`.replace(/\s+[—–-]\s*$/,``).replace(/\s+/g,` `).trim()||`Session memory`,source:t[1]}:{name:e,source:``}}let[,n,r,i,a]=t;if(!n||!r||!i)return{name:`Auto-extracted`,source:a};let o=new Date(Date.UTC(Number(n),Number(r)-1,Number(i)));return{name:new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`,timeZone:`UTC`}).format(o),source:a.replaceAll(`-`,` `)}}F(`slicc-memory-panel`,class extends HTMLElement{#e=[];#t=null;#n=null;#r=null;#i=null;#a=``;#o=`all`;#s=new Set;#c=!1;connectedCallback(){co(this.ownerDocument),this.#c||this.#u(),this.#h()}setRows(e){let t=new Set(uo(this.#e).keys());this.#e=e.filter(e=>e.matches(`slicc-memrow`)),this.#l();let n=[...uo(this.#e).keys()],r=new Set;for(let e of n)(!t.has(e)||this.#s.has(e))&&r.add(e);this.#s=r,this.#c&&this.#h()}#l(){let e=this.#i;if(e){for(let t of e.options){if(t.value===`all`)continue;let e=!this.#e.some(e=>e.getAttribute(`tag`)===t.value);t.hidden=e,t.disabled=e}e.value=this.#o}}#u(){this.#c=!0;let e=L(`input`,{type:`search`,placeholder:`Search memories…`,"aria-label":`Search memories`}),t=L(`select`,{class:`mp-filter`,"aria-label":`Filter memories by tag`},L(`option`,{value:`all`},`All tags`),L(`option`,{value:`user`},`User`),L(`option`,{value:`feedback`},`Feedback`),L(`option`,{value:`project`},`Project`)),n=L(`div`,{class:`mp-count`,role:`status`,"aria-live":`polite`}),r=L(`div`,{class:`mp-toolbar`},L(`label`,{class:`mp-search`},e),t,n),i=L(`div`,{class:`mp-body`});e.addEventListener(`input`,()=>{this.#a=e.value.trim().toLowerCase(),this.#h()}),t.addEventListener(`change`,()=>{this.#o=t.value,this.#h()}),this.replaceChildren(r,i),this.#t=i,this.#n=n,this.#r=e,this.#i=t,this.#l()}#d(){return this.#e.filter(e=>this.#o!==`all`&&e.getAttribute(`tag`)!==this.#o?!1:!this.#a||[e.getAttribute(`heading`),e.getAttribute(`summary`),e.getAttribute(`section`),e.getAttribute(`tag`),e.textContent].filter(Boolean).join(` `).toLowerCase().includes(this.#a))}#f(e){return L(`div`,{class:`mp-empty`},L(`strong`,null,e?`No matching memories`:`No memories yet`),L(`span`,null,e?`Try a different search or tag.`:`Memories extracted from conversations will appear here.`))}#p(e,t){let n=go(e),r=L(`details`,{class:`mp-group`},L(`summary`,{class:`mp-section`},L(`span`,{class:`mp-section-name`},n.name),...n.source?[L(`span`,{class:`mp-section-source`},n.source)]:[],L(`span`,{class:`mp-section-count`},`${t.length}`)),L(`div`,{class:`mp-rows`},...t));return r.open=this.#a?!0:this.#s.has(e),r.addEventListener(`toggle`,()=>{r.open?this.#s.add(e):this.#s.delete(e)}),ho(r,t),r}#m(e){let t=L(`div`,{class:`mp-flat`},...e);return ho(t,e),t}#h(){let e=this.#t;if(!e)return;let t=this.#d();if(this.#r&&(this.#r.placeholder=`Search ${this.#e.length} memories…`),this.#n&&(this.#n.textContent=`${t.length} of ${this.#e.length} memories`),this.#e.length===0){e.replaceChildren(this.#f(!1));return}if(t.length===0){e.replaceChildren(this.#f(!0));return}let n=uo(t);if(n.size<fo){e.replaceChildren(this.#m(t));return}e.replaceChildren(...[...n].map(([e,t])=>this.#p(e,t)))}});var _o=`
3398
+ `,bs=`slicc-memory-panel-style`;function xs(e){if(e.getElementById(bs))return;let t=e.createElement(`style`);t.id=bs,t.textContent=ys,(e.head??e.documentElement).append(t)}function Ss(e){return e.getAttribute(`section`)?.trim()||`General`}function Cs(e){let t=new Map;for(let n of e){let e=Ss(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return t}var ws=2,Ts=[`user`,`feedback`,`project`];function Es(e){for(let t of Ts)if(e.filter(e=>e.getAttribute(`tag`)===t).length*2>e.length)return t;return null}function Ds(e,t){let n=Es(t);n&&e.setAttribute(`data-suppress-${n}`,``)}function Os(e){let t=/^Auto-extracted \((?:(\d{4})-(\d{2})-(\d{2}),\s*)?([^)]+)\)$/.exec(e);if(!t){let t=/\(([^)]*\bsessions?\b[^)]*)\)/i.exec(e);return t?{name:`${e.slice(0,t.index)} ${e.slice(t.index+t[0].length)}`.replace(/\s+[—–-]\s*$/,``).replace(/\s+/g,` `).trim()||`Session memory`,source:t[1]}:{name:e,source:``}}let[,n,r,i,a]=t;if(!n||!r||!i)return{name:`Auto-extracted`,source:a};let o=new Date(Date.UTC(Number(n),Number(r)-1,Number(i)));return{name:new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`,timeZone:`UTC`}).format(o),source:a.replaceAll(`-`,` `)}}F(`slicc-memory-panel`,class extends HTMLElement{#e=[];#t=null;#n=null;#r=null;#i=null;#a=``;#o=`all`;#s=new Set;#c=!1;connectedCallback(){xs(this.ownerDocument),this.#c||this.#u(),this.#h()}setRows(e){let t=new Set(Cs(this.#e).keys());this.#e=e.filter(e=>e.matches(`slicc-memrow`)),this.#l();let n=[...Cs(this.#e).keys()],r=new Set;for(let e of n)(!t.has(e)||this.#s.has(e))&&r.add(e);this.#s=r,this.#c&&this.#h()}#l(){let e=this.#i;if(e){for(let t of e.options){if(t.value===`all`)continue;let e=!this.#e.some(e=>e.getAttribute(`tag`)===t.value);t.hidden=e,t.disabled=e}e.value=this.#o}}#u(){this.#c=!0;let e=I(`input`,{type:`search`,placeholder:`Search memories…`,"aria-label":`Search memories`}),t=I(`select`,{class:`mp-filter`,"aria-label":`Filter memories by tag`},I(`option`,{value:`all`},`All tags`),I(`option`,{value:`user`},`User`),I(`option`,{value:`feedback`},`Feedback`),I(`option`,{value:`project`},`Project`)),n=I(`div`,{class:`mp-count`,role:`status`,"aria-live":`polite`}),r=I(`div`,{class:`mp-toolbar`},I(`label`,{class:`mp-search`},e),t,n),i=I(`div`,{class:`mp-body`});e.addEventListener(`input`,()=>{this.#a=e.value.trim().toLowerCase(),this.#h()}),t.addEventListener(`change`,()=>{this.#o=t.value,this.#h()}),this.replaceChildren(r,i),this.#t=i,this.#n=n,this.#r=e,this.#i=t,this.#l()}#d(){return this.#e.filter(e=>this.#o!==`all`&&e.getAttribute(`tag`)!==this.#o?!1:!this.#a||[e.getAttribute(`heading`),e.getAttribute(`summary`),e.getAttribute(`section`),e.getAttribute(`tag`),e.textContent].filter(Boolean).join(` `).toLowerCase().includes(this.#a))}#f(e){return I(`div`,{class:`mp-empty`},I(`strong`,null,e?`No matching memories`:`No memories yet`),I(`span`,null,e?`Try a different search or tag.`:`Memories extracted from conversations will appear here.`))}#p(e,t){let n=Os(e),r=I(`details`,{class:`mp-group`},I(`summary`,{class:`mp-section`},I(`span`,{class:`mp-section-name`},n.name),...n.source?[I(`span`,{class:`mp-section-source`},n.source)]:[],I(`span`,{class:`mp-section-count`},`${t.length}`)),I(`div`,{class:`mp-rows`},...t));return r.open=this.#a?!0:this.#s.has(e),r.addEventListener(`toggle`,()=>{r.open?this.#s.add(e):this.#s.delete(e)}),Ds(r,t),r}#m(e){let t=I(`div`,{class:`mp-flat`},...e);return Ds(t,e),t}#h(){let e=this.#t;if(!e)return;let t=this.#d();if(this.#r&&(this.#r.placeholder=`Search ${this.#e.length} memories…`),this.#n&&(this.#n.textContent=`${t.length} of ${this.#e.length} memories`),this.#e.length===0){e.replaceChildren(this.#f(!1));return}if(t.length===0){e.replaceChildren(this.#f(!0));return}let n=Cs(t);if(n.size<ws){e.replaceChildren(this.#m(t));return}e.replaceChildren(...[...n].map(([e,t])=>this.#p(e,t)))}});var ks=`
3397
3399
  slicc-palette-grid {
3398
3400
  display: block;
3399
3401
  flex: 1;
@@ -3412,7 +3414,7 @@ slicc-palette-grid .palgrid {
3412
3414
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
3413
3415
  gap: 10px;
3414
3416
  }
3415
- `,vo=`slicc-palette-grid-style`;function yo(e){if(e.getElementById(vo))return;let t=e.createElement(`style`);t.id=vo,t.textContent=_o,(e.head??e.documentElement).appendChild(t)}var bo=[{label:`canvas #faf6f1`,color:`#faf6f1`},{label:`cone #ef7000`,color:`#ef7000`},{label:`scoop #8b5cf6`,color:`#8b5cf6`},{label:`scoop #06b6d4`,color:`#06b6d4`},{label:`scoop #f43f5e`,color:`#f43f5e`},{label:`ink #0a0a0a`,color:`#0a0a0a`}],xo=`brand palette · tokens`;F(`slicc-palette-grid`,class extends HTMLElement{static get observedAttributes(){return[`heading`]}#e=!1;#t=null;#n=null;#r=[];#i=null;#a=null;connectedCallback(){yo(this.ownerDocument),this.#e||this.#o(),this.#s(),this.#l()}disconnectedCallback(){this.#u()}attributeChangedCallback(){this.#e&&this.#s()}get heading(){return this.getAttribute(`heading`)??xo}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get tokens(){return(this.#i??bo).map(e=>({...e}))}set tokens(e){this.#i=Array.isArray(e)?e.map(e=>({label:String(e.label??``),color:String(e.color??``)})):null,this.#e&&this.#c()}#o(){for(this.#e=!0,this.#r=[];this.firstChild;)this.#r.push(this.firstChild),this.removeChild(this.firstChild);let e=this.ownerDocument.createElement(`h4`),t=this.ownerDocument.createElement(`div`);t.className=`palgrid`,this.append(e,t),this.#t=e,this.#n=t,this.#c()}#s(){this.#t&&(this.#t.textContent=this.heading)}#c(){let e=this.#n;if(e){e.replaceChildren();for(let t of this.#r)e.appendChild(t);for(let t of this.tokens){let n=this.ownerDocument.createElement(`slicc-palette-cell`);n.setAttribute(`color`,t.color),n.setAttribute(`label`,t.label),e.appendChild(n)}}}#l(){this.#a||(this.#a=e=>{let t=e.detail??{};this.dispatchEvent(new CustomEvent(`select`,{bubbles:!0,composed:!0,detail:{label:t.label??``,color:t.color??``,sourceEvent:e}}))},this.addEventListener(`palette-select`,this.#a))}#u(){this.#a&&=(this.removeEventListener(`palette-select`,this.#a),null)}});var So=R(`
3417
+ `,As=`slicc-palette-grid-style`;function js(e){if(e.getElementById(As))return;let t=e.createElement(`style`);t.id=As,t.textContent=ks,(e.head??e.documentElement).appendChild(t)}var Ms=[{label:`canvas #faf6f1`,color:`#faf6f1`},{label:`cone #ef7000`,color:`#ef7000`},{label:`scoop #8b5cf6`,color:`#8b5cf6`},{label:`scoop #06b6d4`,color:`#06b6d4`},{label:`scoop #f43f5e`,color:`#f43f5e`},{label:`ink #0a0a0a`,color:`#0a0a0a`}],Ns=`brand palette · tokens`;F(`slicc-palette-grid`,class extends HTMLElement{static get observedAttributes(){return[`heading`]}#e=!1;#t=null;#n=null;#r=[];#i=null;#a=null;connectedCallback(){js(this.ownerDocument),this.#e||this.#o(),this.#s(),this.#l()}disconnectedCallback(){this.#u()}attributeChangedCallback(){this.#e&&this.#s()}get heading(){return this.getAttribute(`heading`)??Ns}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get tokens(){return(this.#i??Ms).map(e=>({...e}))}set tokens(e){this.#i=Array.isArray(e)?e.map(e=>({label:String(e.label??``),color:String(e.color??``)})):null,this.#e&&this.#c()}#o(){for(this.#e=!0,this.#r=[];this.firstChild;)this.#r.push(this.firstChild),this.removeChild(this.firstChild);let e=this.ownerDocument.createElement(`h4`),t=this.ownerDocument.createElement(`div`);t.className=`palgrid`,this.append(e,t),this.#t=e,this.#n=t,this.#c()}#s(){this.#t&&(this.#t.textContent=this.heading)}#c(){let e=this.#n;if(e){e.replaceChildren();for(let t of this.#r)e.appendChild(t);for(let t of this.tokens){let n=this.ownerDocument.createElement(`slicc-palette-cell`);n.setAttribute(`color`,t.color),n.setAttribute(`label`,t.label),e.appendChild(n)}}}#l(){this.#a||(this.#a=e=>{let t=e.detail??{};this.dispatchEvent(new CustomEvent(`select`,{bubbles:!0,composed:!0,detail:{label:t.label??``,color:t.color??``,sourceEvent:e}}))},this.addEventListener(`palette-select`,this.#a))}#u(){this.#a&&=(this.removeEventListener(`palette-select`,this.#a),null)}});var Ps=L(`
3416
3418
  :host { display: inline-block; position: relative; font-family: var(--ui); }
3417
3419
  .trigger {
3418
3420
  display: inline-flex; align-items: center; justify-content: center;
@@ -3453,7 +3455,7 @@ slicc-palette-grid .palgrid {
3453
3455
  .item .ic { flex: 0 0 auto; display: flex; color: var(--txt-2, #505050); }
3454
3456
  .item.danger .ic { color: var(--rose, #f43f5e); }
3455
3457
  @media (prefers-reduced-motion: reduce) { .pop { transition: none; } }
3456
- `);F(`slicc-avatar-menu`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t;#n;#r=[];#i=null;#a=e=>{this.open&&!e.composedPath().includes(this)&&this.hide()};#o=e=>{e.key===`Escape`&&this.open&&(this.hide(),this.#t.focus())};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[So],this.#t=L(`button`,{class:`trigger`,part:`trigger`,type:`button`,"aria-haspopup":`menu`,"aria-expanded":`false`},L(`slot`)),this.#n=L(`div`,{class:`pop`,part:`popover`,role:`menu`}),this.#e.replaceChildren(this.#t,this.#n),this.#t.addEventListener(`click`,()=>this.toggle())}connectedCallback(){this.#c()}disconnectedCallback(){document.removeEventListener(`mousedown`,this.#a),document.removeEventListener(`keydown`,this.#o)}attributeChangedCallback(e){if(e===`open`){let e=this.open;this.#t.setAttribute(`aria-expanded`,e?`true`:`false`),e?(document.addEventListener(`mousedown`,this.#a),document.addEventListener(`keydown`,this.#o)):(document.removeEventListener(`mousedown`,this.#a),document.removeEventListener(`keydown`,this.#o))}}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get user(){return this.#i}set user(e){this.#i=e,this.#c()}get items(){return this.#r.map(e=>({...e}))}set items(e){this.#r=Array.isArray(e)?e.map(e=>({...e})):[],this.#c()}show(){this.open||(this.open=!0,this.#s())}hide(){this.open&&(this.open=!1,this.#s())}toggle(){this.open?this.hide():this.show()}#s(){this.dispatchEvent(new CustomEvent(`slicc-avatar-menu-toggle`,{detail:{open:this.open},bubbles:!0,composed:!0}))}#c(){let e=[];if(this.#i){let t=L(`div`,{class:`user`},L(`div`,{class:`name`},this.#i.name));this.#i.provider&&t.append(L(`div`,{class:`prov`},this.#i.provider)),e.push(t)}for(let t of this.#r)if(t.kind===`separator`)e.push(L(`div`,{class:`sep`,role:`separator`}));else if(t.kind===`caption`)e.push(L(`div`,{class:`cap`},t.label??``));else{let n=L(`button`,{class:`item${t.danger?` danger`:``}`,part:`item`,type:`button`,role:`menuitem`,"data-id":t.id??``,disabled:t.disabled?!0:void 0});t.icon&&n.append(L(`span`,{class:`ic`},r(t.icon,{size:16}))),n.append(L(`span`,{class:`lb`},t.label??``)),t.disabled||n.addEventListener(`click`,()=>this.#l(t.id??``)),e.push(n)}this.#n.replaceChildren(...e)}#l(e){this.dispatchEvent(new CustomEvent(`slicc-avatar-action`,{detail:{id:e},bubbles:!0,composed:!0})),this.hide()}});var Co=`
3458
+ `);F(`slicc-avatar-menu`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t;#n;#r=[];#i=null;#a=e=>{this.open&&!e.composedPath().includes(this)&&this.hide()};#o=e=>{e.key===`Escape`&&this.open&&(this.hide(),this.#t.focus())};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ps],this.#t=I(`button`,{class:`trigger`,part:`trigger`,type:`button`,"aria-haspopup":`menu`,"aria-expanded":`false`},I(`slot`)),this.#n=I(`div`,{class:`pop`,part:`popover`,role:`menu`}),this.#e.replaceChildren(this.#t,this.#n),this.#t.addEventListener(`click`,()=>this.toggle())}connectedCallback(){this.#c()}disconnectedCallback(){document.removeEventListener(`mousedown`,this.#a),document.removeEventListener(`keydown`,this.#o)}attributeChangedCallback(e){if(e===`open`){let e=this.open;this.#t.setAttribute(`aria-expanded`,e?`true`:`false`),e?(document.addEventListener(`mousedown`,this.#a),document.addEventListener(`keydown`,this.#o)):(document.removeEventListener(`mousedown`,this.#a),document.removeEventListener(`keydown`,this.#o))}}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get user(){return this.#i}set user(e){this.#i=e,this.#c()}get items(){return this.#r.map(e=>({...e}))}set items(e){this.#r=Array.isArray(e)?e.map(e=>({...e})):[],this.#c()}show(){this.open||(this.open=!0,this.#s())}hide(){this.open&&(this.open=!1,this.#s())}toggle(){this.open?this.hide():this.show()}#s(){this.dispatchEvent(new CustomEvent(`slicc-avatar-menu-toggle`,{detail:{open:this.open},bubbles:!0,composed:!0}))}#c(){let e=[];if(this.#i){let t=I(`div`,{class:`user`},I(`div`,{class:`name`},this.#i.name));this.#i.provider&&t.append(I(`div`,{class:`prov`},this.#i.provider)),e.push(t)}for(let t of this.#r)if(t.kind===`separator`)e.push(I(`div`,{class:`sep`,role:`separator`}));else if(t.kind===`caption`)e.push(I(`div`,{class:`cap`},t.label??``));else{let n=I(`button`,{class:`item${t.danger?` danger`:``}`,part:`item`,type:`button`,role:`menuitem`,"data-id":t.id??``,disabled:t.disabled?!0:void 0});t.icon&&n.append(I(`span`,{class:`ic`},i(t.icon,{size:16}))),n.append(I(`span`,{class:`lb`},t.label??``)),t.disabled||n.addEventListener(`click`,()=>this.#l(t.id??``)),e.push(n)}this.#n.replaceChildren(...e)}#l(e){this.dispatchEvent(new CustomEvent(`slicc-avatar-action`,{detail:{id:e},bubbles:!0,composed:!0})),this.hide()}});var Fs=`
3457
3459
  .slicc-nav {
3458
3460
  display: flex;
3459
3461
  align-items: center;
@@ -3483,7 +3485,7 @@ slicc-palette-grid .palgrid {
3483
3485
  width, not the viewport, so embedded and Storybook frames behave like the
3484
3486
  real sidebar. */
3485
3487
  .slicc-nav[data-narrow] { gap: 8px; padding: 0 10px; }
3486
- `,wo=`slicc-nav-style`;function To(e){if(e.getElementById(wo))return;let t=e.createElement(`style`);t.id=wo,t.textContent=Co,(e.head??e.documentElement).appendChild(t)}F(`slicc-nav`,class extends HTMLElement{static observedAttributes=[`accent`];#e=!1;#t=null;connectedCallback(){To(this.ownerDocument),this.classList.add(`slicc-nav`),this.setAttribute(`part`,`bar`),this.#n(),this.#r(this.getAttribute(`accent`)),typeof ResizeObserver<`u`&&(this.#t=new ResizeObserver(()=>this.#i()),this.#t.observe(this)),this.#i()}disconnectedCallback(){this.#t?.disconnect(),this.#t=null}attributeChangedCallback(e,t,n){e===`accent`&&t!==n&&this.isConnected&&(this.#r(n),this.dispatchEvent(new CustomEvent(`slicc-nav-accent-change`,{detail:{accent:n},bubbles:!0,composed:!0})))}get accent(){return this.getAttribute(`accent`)}set accent(e){e==null?this.removeAttribute(`accent`):this.setAttribute(`accent`,e)}get spacer(){return this.#n(),this.querySelector(`:scope > .slicc-nav__spacer, :scope > .spacer`)}#n(){if(this.#e||(this.#e=!0,this.querySelector(`:scope > .slicc-nav__spacer, :scope > .spacer`)))return;let e=this.ownerDocument.createElement(`div`);e.className=`slicc-nav__spacer`,e.setAttribute(`part`,`spacer`),e.setAttribute(`aria-hidden`,`true`);let t=this.querySelector(`:scope > slicc-floatbar, :scope > slicc-theme-toggle, :scope > slicc-avatar`);t?this.insertBefore(e,t):this.appendChild(e)}#r(e){e==null||e.trim()===``?this.style.removeProperty(`--ctx`):this.style.setProperty(`--ctx`,e)}#i(){this.toggleAttribute(`data-narrow`,this.getBoundingClientRect().width<=560)}});var Eo=R(`
3488
+ `,Is=`slicc-nav-style`;function Ls(e){if(e.getElementById(Is))return;let t=e.createElement(`style`);t.id=Is,t.textContent=Fs,(e.head??e.documentElement).appendChild(t)}F(`slicc-nav`,class extends HTMLElement{static observedAttributes=[`accent`];#e=!1;#t=null;connectedCallback(){Ls(this.ownerDocument),this.classList.add(`slicc-nav`),this.setAttribute(`part`,`bar`),this.#n(),this.#r(this.getAttribute(`accent`)),typeof ResizeObserver<`u`&&(this.#t=new ResizeObserver(()=>this.#i()),this.#t.observe(this)),this.#i()}disconnectedCallback(){this.#t?.disconnect(),this.#t=null}attributeChangedCallback(e,t,n){e===`accent`&&t!==n&&this.isConnected&&(this.#r(n),this.dispatchEvent(new CustomEvent(`slicc-nav-accent-change`,{detail:{accent:n},bubbles:!0,composed:!0})))}get accent(){return this.getAttribute(`accent`)}set accent(e){e==null?this.removeAttribute(`accent`):this.setAttribute(`accent`,e)}get spacer(){return this.#n(),this.querySelector(`:scope > .slicc-nav__spacer, :scope > .spacer`)}#n(){if(this.#e||(this.#e=!0,this.querySelector(`:scope > .slicc-nav__spacer, :scope > .spacer`)))return;let e=this.ownerDocument.createElement(`div`);e.className=`slicc-nav__spacer`,e.setAttribute(`part`,`spacer`),e.setAttribute(`aria-hidden`,`true`);let t=this.querySelector(`:scope > slicc-floatbar, :scope > slicc-theme-toggle, :scope > slicc-avatar`);t?this.insertBefore(e,t):this.appendChild(e)}#r(e){e==null||e.trim()===``?this.style.removeProperty(`--ctx`):this.style.setProperty(`--ctx`,e)}#i(){this.toggleAttribute(`data-narrow`,this.getBoundingClientRect().width<=560)}});var Rs=L(`
3487
3489
  :host {
3488
3490
  position: fixed;
3489
3491
  z-index: 110;
@@ -3521,7 +3523,7 @@ slicc-palette-grid .palgrid {
3521
3523
  .item.destructive {
3522
3524
  color: var(--red, #e53e3e);
3523
3525
  }
3524
- `),Do=null,Oo=null,ko=null,Ao=class e extends HTMLElement{#e;#t=void 0;#n=null;#r=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Eo]}connectedCallback(){this.#e.addEventListener(`click`,this.#i)}disconnectedCallback(){this.#e.removeEventListener(`click`,this.#i)}#i=t=>{let n=t.target.closest(`[data-action]`);if(!n)return;let r=n.dataset.action;(this.#r??this.#n??this).dispatchEvent(new CustomEvent(`overflow-action`,{bubbles:!0,composed:!0,detail:{action:r,context:this.#t}})),e.hide()};static show(t){e.hide();let n=document.createElement(`slicc-overflow-menu`);n.#t=t.context,n.#n=t.anchor,n.#r=t.dispatchTarget??null;let i=t.items.filter(e=>e.visible!==!1),a=L(`div`,{class:`menu`});for(let e of i){let t=e.destructive?`item destructive`:`item`,n=[];e.icon&&n.push(r(e.icon,{size:14})),n.push(e.label);let i=L(`button`,{class:t,"data-action":e.id},...n);a.appendChild(i)}n.#e.appendChild(a),document.body.appendChild(n),Do=n;let o=t.anchor.getBoundingClientRect(),s=n.getBoundingClientRect(),c=o.bottom+4;c+s.height>window.innerHeight&&(c=o.top-s.height-4);let l=o.right-s.width;l<4&&(l=o.left),n.style.top=`${c}px`,n.style.left=`${l}px`,Oo=t=>{t.key===`Escape`&&e.hide()},ko=r=>{let i=r.composedPath();!i.includes(n)&&!i.includes(t.anchor)&&e.hide()},document.addEventListener(`keydown`,Oo),document.addEventListener(`pointerdown`,ko,{capture:!0})}static hide(){Do&&=(Do.remove(),null),Oo&&=(document.removeEventListener(`keydown`,Oo),null),ko&&=(document.removeEventListener(`pointerdown`,ko,{capture:!0}),null)}};F(`slicc-overflow-menu`,Ao);var jo=R(`
3526
+ `),zs=null,Bs=null,Vs=null,Hs=class e extends HTMLElement{#e;#t=void 0;#n=null;#r=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Rs]}connectedCallback(){this.#e.addEventListener(`click`,this.#i)}disconnectedCallback(){this.#e.removeEventListener(`click`,this.#i)}#i=t=>{let n=t.target.closest(`[data-action]`);if(!n)return;let r=n.dataset.action;(this.#r??this.#n??this).dispatchEvent(new CustomEvent(`overflow-action`,{bubbles:!0,composed:!0,detail:{action:r,context:this.#t}})),e.hide()};static show(t){e.hide();let n=document.createElement(`slicc-overflow-menu`);n.#t=t.context,n.#n=t.anchor,n.#r=t.dispatchTarget??null;let r=t.items.filter(e=>e.visible!==!1),a=I(`div`,{class:`menu`});for(let e of r){let t=e.destructive?`item destructive`:`item`,n=[];e.icon&&n.push(i(e.icon,{size:14})),n.push(e.label);let r=I(`button`,{class:t,"data-action":e.id},...n);a.appendChild(r)}n.#e.appendChild(a),document.body.appendChild(n),zs=n;let o=t.anchor.getBoundingClientRect(),s=n.getBoundingClientRect(),c=o.bottom+4;c+s.height>window.innerHeight&&(c=o.top-s.height-4);let l=o.right-s.width;l<4&&(l=o.left),n.style.top=`${c}px`,n.style.left=`${l}px`,Bs=t=>{t.key===`Escape`&&e.hide()},Vs=r=>{let i=r.composedPath();!i.includes(n)&&!i.includes(t.anchor)&&e.hide()},document.addEventListener(`keydown`,Bs),document.addEventListener(`pointerdown`,Vs,{capture:!0})}static hide(){zs&&=(zs.remove(),null),Bs&&=(document.removeEventListener(`keydown`,Bs),null),Vs&&=(document.removeEventListener(`pointerdown`,Vs,{capture:!0}),null)}};F(`slicc-overflow-menu`,Hs);var Us=L(`
3525
3527
  :host { display: none; }
3526
3528
  :host([open]) { display: block; }
3527
3529
  .overlay {
@@ -3568,7 +3570,7 @@ slicc-palette-grid .palgrid {
3568
3570
  @media (prefers-reduced-motion: reduce) {
3569
3571
  .overlay, .dialog { transition: none; }
3570
3572
  }
3571
- `);F(`slicc-dialog`,class extends HTMLElement{static observedAttributes=[`open`,`heading`,`description`,`no-close-button`];#e;#t;#n;#r;#i;#a;#o=null;#s=e=>{e.key===`Escape`&&this.open&&(e.stopPropagation(),this.#c(`escape`))};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[jo],this.#r=L(`div`,{class:`title`,part:`title`,id:`slicc-dialog-title`}),this.#i=L(`div`,{class:`desc`,part:`description`}),this.#a=L(`button`,{class:`x`,part:`close`,type:`button`,"aria-label":`Close`},r(`x`,{size:18}));let e=L(`div`,{class:`body`},L(`slot`)),t=L(`div`,{class:`footer`},L(`slot`,{name:`footer`}));this.#n=L(`div`,{class:`dialog`,part:`dialog`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`slicc-dialog-title`,tabindex:`-1`},this.#a,this.#r,this.#i,e,t),this.#t=L(`div`,{class:`overlay`,part:`overlay`},this.#n),this.#e.replaceChildren(this.#t),this.#a.addEventListener(`click`,()=>this.#c(`close-button`)),this.#t.addEventListener(`mousedown`,e=>{e.target===this.#t&&!this.persistent&&this.#c(`backdrop`)})}connectedCallback(){this.#u()}disconnectedCallback(){document.removeEventListener(`keydown`,this.#s,!0)}attributeChangedCallback(e){e===`open`?this.#u():this.#l()}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get heading(){return this.getAttribute(`heading`)}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get description(){return this.getAttribute(`description`)}set description(e){e==null?this.removeAttribute(`description`):this.setAttribute(`description`,e)}get persistent(){return this.hasAttribute(`persistent`)}set persistent(e){this.toggleAttribute(`persistent`,e)}show(){this.open||=!0}hide(){this.open&&this.#c(`api`)}#c(e){this.open=!1,this.dispatchEvent(new CustomEvent(`slicc-dialog-close`,{detail:{reason:e},bubbles:!0,composed:!0}))}#l(){this.#r.textContent=this.heading??``,this.#r.style.display=this.heading?``:`none`,this.#i.textContent=this.description??``,this.#i.style.display=this.description?``:`none`,this.#a.style.display=this.hasAttribute(`no-close-button`)?`none`:``}#u(){this.#l(),this.open?(this.#o=this.getRootNode().activeElement,document.addEventListener(`keydown`,this.#s,!0),requestAnimationFrame(()=>this.#n.focus())):(document.removeEventListener(`keydown`,this.#s,!0),this.#o?.focus?.(),this.#o=null)}});var Mo=`
3573
+ `);F(`slicc-dialog`,class extends HTMLElement{static observedAttributes=[`open`,`heading`,`description`,`no-close-button`];#e;#t;#n;#r;#i;#a;#o=null;#s=e=>{e.key===`Escape`&&this.open&&(e.stopPropagation(),this.#c(`escape`))};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Us],this.#r=I(`div`,{class:`title`,part:`title`,id:`slicc-dialog-title`}),this.#i=I(`div`,{class:`desc`,part:`description`}),this.#a=I(`button`,{class:`x`,part:`close`,type:`button`,"aria-label":`Close`},i(`x`,{size:18}));let e=I(`div`,{class:`body`},I(`slot`)),t=I(`div`,{class:`footer`},I(`slot`,{name:`footer`}));this.#n=I(`div`,{class:`dialog`,part:`dialog`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`slicc-dialog-title`,tabindex:`-1`},this.#a,this.#r,this.#i,e,t),this.#t=I(`div`,{class:`overlay`,part:`overlay`},this.#n),this.#e.replaceChildren(this.#t),this.#a.addEventListener(`click`,()=>this.#c(`close-button`)),this.#t.addEventListener(`mousedown`,e=>{e.target===this.#t&&!this.persistent&&this.#c(`backdrop`)})}connectedCallback(){this.#u()}disconnectedCallback(){document.removeEventListener(`keydown`,this.#s,!0)}attributeChangedCallback(e){e===`open`?this.#u():this.#l()}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}get heading(){return this.getAttribute(`heading`)}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get description(){return this.getAttribute(`description`)}set description(e){e==null?this.removeAttribute(`description`):this.setAttribute(`description`,e)}get persistent(){return this.hasAttribute(`persistent`)}set persistent(e){this.toggleAttribute(`persistent`,e)}show(){this.open||=!0}hide(){this.open&&this.#c(`api`)}#c(e){this.open=!1,this.dispatchEvent(new CustomEvent(`slicc-dialog-close`,{detail:{reason:e},bubbles:!0,composed:!0}))}#l(){this.#r.textContent=this.heading??``,this.#r.style.display=this.heading?``:`none`,this.#i.textContent=this.description??``,this.#i.style.display=this.description?``:`none`,this.#a.style.display=this.hasAttribute(`no-close-button`)?`none`:``}#u(){this.#l(),this.open?(this.#o=this.getRootNode().activeElement,document.addEventListener(`keydown`,this.#s,!0),requestAnimationFrame(()=>this.#n.focus())):(document.removeEventListener(`keydown`,this.#s,!0),this.#o?.focus?.(),this.#o=null)}});var Ws=`
3572
3574
  slicc-camera-dialog slicc-dialog::part(dialog) {
3573
3575
  width: min(560px, 92vw);
3574
3576
  }
@@ -3635,7 +3637,7 @@ slicc-camera-dialog .slicc-camera__btn--snap {
3635
3637
  slicc-camera-dialog .slicc-camera__btn--snap:hover {
3636
3638
  background: color-mix(in srgb, var(--ink) 85%, var(--canvas));
3637
3639
  }
3638
- `,No=`slicc-camera-dialog-style`;function Po(e){if(e.getElementById(No))return;let t=e.createElement(`style`);t.id=No,t.textContent=Mo,(e.head??e.documentElement).appendChild(t)}var Fo=`Take a photo`;F(`slicc-camera-dialog`,class extends HTMLElement{static observedAttributes=[`heading`,`preferred-device`];media=null;#e;#t;#n;#r;#i=!1;#a=null;#o=null;connectedCallback(){Po(this.ownerDocument),this.#h()}disconnectedCallback(){this.#m()}attributeChangedCallback(e){e===`heading`&&this.#i&&this.#e.setAttribute(`heading`,this.heading)}get heading(){return this.getAttribute(`heading`)??Fo}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get preferredDevice(){return this.getAttribute(`preferred-device`)}set preferredDevice(e){e==null?this.removeAttribute(`preferred-device`):this.setAttribute(`preferred-device`,e)}#s(){return this.media??(typeof navigator<`u`?navigator.mediaDevices:null)??null}async open(){this.#h();let e=this.#s();if(!e)return null;try{this.#a=await this.#c(e,this.preferredDevice)}catch{return null}return this.#l(this.#a),await this.#u(e),this.#e.setAttribute(`heading`,this.heading),this.#e.show?.(),new Promise(e=>{this.#o=e})}async#c(e,t){if(t)try{return await e.getUserMedia({video:{deviceId:{exact:t}}})}catch{}return e.getUserMedia({video:!0})}#l(e){this.#t.srcObject=e,this.#t.play?.()?.catch(()=>void 0);let t=e.getVideoTracks()[0]?.getSettings?.().facingMode;this.#t.toggleAttribute(`data-mirrored`,t!==`environment`)}async#u(e){let t=[];try{t=(await e.enumerateDevices()).filter(e=>e.kind===`videoinput`)}catch{t=[]}this.#n.replaceChildren(...t.map((e,t)=>L(`option`,{value:e.deviceId},e.label||`Camera ${t+1}`)));let n=this.#a?.getVideoTracks()[0]?.getSettings?.().deviceId;n&&(this.#n.value=n),this.#n.toggleAttribute(`hidden`,t.length<2)}async#d(e){let t=this.#s();if(t){this.#r.textContent=``;try{let n=await t.getUserMedia({video:{deviceId:{exact:e}}});this.#m(),this.#a=n,this.#l(n),this.dispatchEvent(new CustomEvent(`slicc-camera-device-change`,{detail:{deviceId:e},bubbles:!0,composed:!0}))}catch{this.#r.textContent=`Could not switch camera — keeping the current one.`}}}#f(){let e=this.ownerDocument.createElement(`canvas`);if(e.width=this.#t.videoWidth,e.height=this.#t.videoHeight,e.width===0||e.height===0){this.#r.textContent=`No frame yet — give the camera a moment.`;return}e.getContext(`2d`)?.drawImage(this.#t,0,0);let t=e.toDataURL(`image/png`);this.dispatchEvent(new CustomEvent(`slicc-camera-capture`,{detail:{dataUrl:t},bubbles:!0,composed:!0})),this.#p(t)}#p(e){this.#m();let t=this.#o;this.#o=null,this.#e.hide?.(),t?.(e)}#m(){for(let e of this.#a?.getTracks()??[])e.stop();this.#a=null,this.#t&&(this.#t.srcObject=null)}#h(){if(this.#i)return;this.#i=!0,this.#t=L(`video`,{class:`slicc-camera__video`,part:`video`,autoplay:!0,muted:!0,playsinline:!0}),this.#n=L(`select`,{class:`slicc-camera__select`,part:`picker`,"aria-label":`Camera`,hidden:!0}),this.#n.addEventListener(`change`,()=>{this.#d(this.#n.value)}),this.#r=L(`div`,{class:`slicc-camera__status`});let e=L(`button`,{type:`button`,class:`slicc-camera__btn`,part:`cancel`,slot:`footer`},`Cancel`);e.addEventListener(`click`,()=>this.#p(null));let t=L(`button`,{type:`button`,class:`slicc-camera__btn slicc-camera__btn--snap`,part:`snap`,slot:`footer`},r(`camera`,{size:14}),` Snap`);t.addEventListener(`click`,()=>this.#f());let n=L(`div`,{class:`slicc-camera__body`},this.#t,this.#n,this.#r);this.#e=this.ownerDocument.createElement(`slicc-dialog`),this.#e.setAttribute(`heading`,this.heading),this.#e.append(n,e,t),this.#e.addEventListener(`slicc-dialog-close`,()=>{this.#o&&this.#p(null)}),this.append(this.#e)}});var Io={debug(e,t){t===void 0?console.debug(`[slicc-permissions] ${e}`):console.debug(`[slicc-permissions] ${e}`,t)},error(e,t){t===void 0?console.error(`[slicc-permissions] ${e}`):console.error(`[slicc-permissions] ${e}`,t)}},Lo=new Set([`microphone`,`camera`]);function Ro(e){return typeof navigator>`u`||!navigator.permissions?.query?Promise.resolve(`prompt`):navigator.permissions.query({name:e}).then(e=>e.state)}var zo=`
3640
+ `,Gs=`slicc-camera-dialog-style`;function Ks(e){if(e.getElementById(Gs))return;let t=e.createElement(`style`);t.id=Gs,t.textContent=Ws,(e.head??e.documentElement).appendChild(t)}var qs=`Take a photo`;F(`slicc-camera-dialog`,class extends HTMLElement{static observedAttributes=[`heading`,`preferred-device`];media=null;#e;#t;#n;#r;#i=!1;#a=null;#o=null;connectedCallback(){Ks(this.ownerDocument),this.#h()}disconnectedCallback(){this.#m()}attributeChangedCallback(e){e===`heading`&&this.#i&&this.#e.setAttribute(`heading`,this.heading)}get heading(){return this.getAttribute(`heading`)??qs}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get preferredDevice(){return this.getAttribute(`preferred-device`)}set preferredDevice(e){e==null?this.removeAttribute(`preferred-device`):this.setAttribute(`preferred-device`,e)}#s(){return this.media??(typeof navigator<`u`?navigator.mediaDevices:null)??null}async open(){this.#h();let e=this.#s();if(!e)return null;try{this.#a=await this.#c(e,this.preferredDevice)}catch{return null}return this.#l(this.#a),await this.#u(e),this.#e.setAttribute(`heading`,this.heading),this.#e.show?.(),new Promise(e=>{this.#o=e})}async#c(e,t){if(t)try{return await e.getUserMedia({video:{deviceId:{exact:t}}})}catch{}return e.getUserMedia({video:!0})}#l(e){this.#t.srcObject=e,this.#t.play?.()?.catch(()=>void 0);let t=e.getVideoTracks()[0]?.getSettings?.().facingMode;this.#t.toggleAttribute(`data-mirrored`,t!==`environment`)}async#u(e){let t=[];try{t=(await e.enumerateDevices()).filter(e=>e.kind===`videoinput`)}catch{t=[]}this.#n.replaceChildren(...t.map((e,t)=>I(`option`,{value:e.deviceId},e.label||`Camera ${t+1}`)));let n=this.#a?.getVideoTracks()[0]?.getSettings?.().deviceId;n&&(this.#n.value=n),this.#n.toggleAttribute(`hidden`,t.length<2)}async#d(e){let t=this.#s();if(t){this.#r.textContent=``;try{let n=await t.getUserMedia({video:{deviceId:{exact:e}}});this.#m(),this.#a=n,this.#l(n),this.dispatchEvent(new CustomEvent(`slicc-camera-device-change`,{detail:{deviceId:e},bubbles:!0,composed:!0}))}catch{this.#r.textContent=`Could not switch camera — keeping the current one.`}}}#f(){let e=this.ownerDocument.createElement(`canvas`);if(e.width=this.#t.videoWidth,e.height=this.#t.videoHeight,e.width===0||e.height===0){this.#r.textContent=`No frame yet — give the camera a moment.`;return}e.getContext(`2d`)?.drawImage(this.#t,0,0);let t=e.toDataURL(`image/png`);this.dispatchEvent(new CustomEvent(`slicc-camera-capture`,{detail:{dataUrl:t},bubbles:!0,composed:!0})),this.#p(t)}#p(e){this.#m();let t=this.#o;this.#o=null,this.#e.hide?.(),t?.(e)}#m(){for(let e of this.#a?.getTracks()??[])e.stop();this.#a=null,this.#t&&(this.#t.srcObject=null)}#h(){if(this.#i)return;this.#i=!0,this.#t=I(`video`,{class:`slicc-camera__video`,part:`video`,autoplay:!0,muted:!0,playsinline:!0}),this.#n=I(`select`,{class:`slicc-camera__select`,part:`picker`,"aria-label":`Camera`,hidden:!0}),this.#n.addEventListener(`change`,()=>{this.#d(this.#n.value)}),this.#r=I(`div`,{class:`slicc-camera__status`});let e=I(`button`,{type:`button`,class:`slicc-camera__btn`,part:`cancel`,slot:`footer`},`Cancel`);e.addEventListener(`click`,()=>this.#p(null));let t=I(`button`,{type:`button`,class:`slicc-camera__btn slicc-camera__btn--snap`,part:`snap`,slot:`footer`},i(`camera`,{size:14}),` Snap`);t.addEventListener(`click`,()=>this.#f());let n=I(`div`,{class:`slicc-camera__body`},this.#t,this.#n,this.#r);this.#e=this.ownerDocument.createElement(`slicc-dialog`),this.#e.setAttribute(`heading`,this.heading),this.#e.append(n,e,t),this.#e.addEventListener(`slicc-dialog-close`,()=>{this.#o&&this.#p(null)}),this.append(this.#e)}});var Js={debug(e,t){t===void 0?console.debug(`[slicc-permissions] ${e}`):console.debug(`[slicc-permissions] ${e}`,t)},error(e,t){t===void 0?console.error(`[slicc-permissions] ${e}`):console.error(`[slicc-permissions] ${e}`,t)}},Ys=new Set([`microphone`,`camera`]);function Xs(e){return typeof navigator>`u`||!navigator.permissions?.query?Promise.resolve(`prompt`):navigator.permissions.query({name:e}).then(e=>e.state)}var Zs=`
3639
3641
  slicc-permissions {
3640
3642
  /* Invisible host by default — only the drop overlay paints, and only
3641
3643
  while a folder drag is in flight. Hosts can give the element a fixed
@@ -3806,7 +3808,7 @@ slicc-permissions .slicc-permissions__prompt-btn:disabled {
3806
3808
  transform: translateX(-50%) translateY(0);
3807
3809
  }
3808
3810
  }
3809
- `,Bo=`slicc-permissions-style`;function Vo(e){if(e.getElementById(Bo))return;let t=e.createElement(`style`);t.id=Bo,t.textContent=zo,(e.head??e.documentElement).appendChild(t)}function Ho(e){let t=e.dataTransfer?.types;if(!t)return!1;for(let e=0;e<t.length;e++)if(t[e]===`Files`)return!0;return!1}var Uo=class extends HTMLElement{providers={};permissionQuery=null;#e;#t=!1;#n=0;#r=null;connectedCallback(){Vo(this.ownerDocument),this.#C();let e=this.ownerDocument;e.addEventListener(`dragenter`,this.#v),e.addEventListener(`dragover`,this.#y),e.addEventListener(`dragleave`,this.#b),e.addEventListener(`drop`,this.#x)}disconnectedCallback(){let e=this.ownerDocument;e.removeEventListener(`dragenter`,this.#v),e.removeEventListener(`dragover`,this.#y),e.removeEventListener(`dragleave`,this.#b),e.removeEventListener(`drop`,this.#x),this.#n=0,this.removeAttribute(`data-dropping`),this.#r&&this.#r.cancel()}async request(e,t){switch(e){case`camera`:return this.#o(t);case`microphone`:return this.#s(t);case`screenshare`:return this.#l(t);case`usb`:return this.#u(t);case`hid`:return this.#d(t);case`serial`:return this.#f(t);case`filesystem`:return this.#p();case`popup`:return this.#m(t);default:return null}}async prompt(e){if(!e.kinds.length)return{status:`granted`,grants:[]};if(e.skipIfGranted){let t=await this.#i(e);if(t)return t}return this.#r&&this.#r.cancel(),new Promise(t=>{this.#w(e,t)})}async#i(e){if(!e.kinds.every(e=>Lo.has(e)))return Io.debug(`prompt: showing dialog (a gesture-bound kind was requested)`,{kinds:e.kinds}),null;let t=this.permissionQuery??Ro,n;try{n=await Promise.all(e.kinds.map(e=>t(e)))}catch(e){return Io.error(`prompt: permission query threw; showing dialog`,e),null}if(Io.debug(`prompt: queried permission state`,{kinds:e.kinds,states:n}),!n.every(e=>e===`granted`))return Io.debug(`prompt: not all kinds granted; showing dialog`),null;let r=[];for(let t of e.kinds){let n=await this.request(t,e.requestOptions?.[t]);if(!n)return Io.error(`prompt: acquisition failed after granted state`,{kind:t}),{status:`error`,grants:r,reason:`error`};r.push(n)}return Io.debug(`prompt: short-circuited dialog (already granted)`,{kinds:e.kinds}),{status:`granted`,grants:r}}#a(){return this.providers.media??(typeof navigator<`u`?navigator.mediaDevices:null)??null}async#o(e){let t=this.#a();if(!t)return this.#g(`camera`,`unavailable`,`mediaDevices unavailable`);try{let n=await t.getUserMedia(e?.constraints??{video:!0});return this.#h({kind:`camera`,stream:n})}catch(e){return this.#_(`camera`,e)}}async#s(e){let t=this.#a();if(!t)return this.#g(`microphone`,`unavailable`,`mediaDevices unavailable`);try{let n=await t.getUserMedia(e?.constraints??{audio:!0});return this.#h({kind:`microphone`,stream:n})}catch(e){return this.#_(`microphone`,e)}}#c(){if(this.providers.screenshare)return this.providers.screenshare;let e=typeof navigator<`u`?navigator.mediaDevices:void 0;return e&&typeof e.getDisplayMedia==`function`?{getDisplayMedia:t=>e.getDisplayMedia(t)}:null}async#l(e){let t=this.#c();if(!t)return this.#g(`screenshare`,`unavailable`,`getDisplayMedia unavailable`);try{let n=await t.getDisplayMedia(e?.constraints??{video:!0});return this.#h({kind:`screenshare`,stream:n})}catch(e){return this.#_(`screenshare`,e)}}async#u(e){let t=this.providers.usb??globalThis.navigator?.usb??null;if(!t?.requestDevice)return this.#g(`usb`,`unavailable`,`WebUSB unavailable`);try{let n=await t.requestDevice({filters:e?.filters??[]});return n?this.#h({kind:`usb`,device:n}):this.#g(`usb`,`cancelled`)}catch(e){return this.#_(`usb`,e)}}async#d(e){let t=this.providers.hid??globalThis.navigator?.hid??null;if(!t?.requestDevice)return this.#g(`hid`,`unavailable`,`WebHID unavailable`);try{let n=await t.requestDevice({filters:e?.filters??[]}),r=Array.isArray(n)?n:n?[n]:[];return r.length===0?this.#g(`hid`,`cancelled`):this.#h({kind:`hid`,device:r[0],devices:r})}catch(e){return this.#_(`hid`,e)}}async#f(e){let t=this.providers.serial??globalThis.navigator?.serial??null;if(!t?.requestPort)return this.#g(`serial`,`unavailable`,`Web Serial unavailable`);try{let n=await t.requestPort(e?.filters?.length?{filters:e.filters}:{});return n?this.#h({kind:`serial`,port:n}):this.#g(`serial`,`cancelled`)}catch(e){return this.#_(`serial`,e)}}async#p(){let e=this.providers.filesystem??(typeof window<`u`&&`showDirectoryPicker`in window&&window||null);if(!e?.showDirectoryPicker)return this.#g(`filesystem`,`unavailable`,`showDirectoryPicker unavailable`);try{let t=await e.showDirectoryPicker({mode:`readwrite`});return this.#h({kind:`filesystem`,handle:t,source:`picker`,permission:`granted`})}catch(e){return this.#_(`filesystem`,e)}}#m(e){let t=e?.url;if(!t)return this.#g(`popup`,`error`,`popup request missing url`);let n=e?.features??`width=500,height=700,popup=yes`,r=this.providers.popup??(typeof window<`u`?{open:(e,t)=>window.open(e,`_blank`,t)}:null);if(!r)return this.#g(`popup`,`unavailable`,`window.open unavailable`);let i;try{i=r.open(t,n)}catch(e){return this.#_(`popup`,e)}return i?this.#h({kind:`popup`,window:i}):this.#g(`popup`,`error`,`window.open returned null (popup blocked?)`)}#h(e){return this.dispatchEvent(new CustomEvent(`slicc-permission-grant`,{detail:e,bubbles:!0,composed:!0})),e}#g(e,t,n){return this.dispatchEvent(new CustomEvent(`slicc-permission-deny`,{detail:{kind:e,reason:t,message:n},bubbles:!0,composed:!0})),null}#_(e,t){return t instanceof Error&&(t.name===`AbortError`||t.name===`NotFoundError`)?this.#g(e,`cancelled`):this.#g(e,`error`,t instanceof Error?t.message:String(t))}#v=e=>{Ho(e)&&(e.preventDefault(),this.#n++,this.setAttribute(`data-dropping`,``))};#y=e=>{Ho(e)&&e.preventDefault()};#b=e=>{Ho(e)&&(this.#n=Math.max(0,this.#n-1),this.#n===0&&this.removeAttribute(`data-dropping`))};#x=e=>{if(!Ho(e))return;e.preventDefault(),this.#n=0,this.removeAttribute(`data-dropping`);let t=e.dataTransfer?.items;if(!t?.length)return;let n=[];for(let e=0;e<t.length;e++){let r=t[e];r.kind===`file`&&typeof r.getAsFileSystemHandle==`function`&&n.push(r.getAsFileSystemHandle())}n.length!==0&&this.#S(n)};async#S(e){let t;try{t=await Promise.all(e)}catch(e){this.#g(`filesystem`,`error`,e instanceof Error?e.message:String(e));return}let n=t.find(e=>e?.kind===`directory`);if(!n){this.#g(`filesystem`,`cancelled`,`no directory in drop`);return}let r=n,i;if(r.requestPermission)try{i=await r.requestPermission({mode:`readwrite`})}catch(e){this.#g(`filesystem`,`error`,e instanceof Error?e.message:String(e));return}else i=`granted`;if(i!==`granted`){this.#g(`filesystem`,`cancelled`,`permission ${i}`);return}this.#h({kind:`filesystem`,handle:n,source:`drop`,permission:i})}#C(){if(this.#t)return;this.#t=!0;let e=L(`div`,{class:`slicc-permissions__drop-inner`},r(`folder-up`,{size:32}),L(`div`,null,`Drop a folder to mount it (read-write)`));this.#e=L(`div`,{class:`slicc-permissions__drop`,part:`drop`,"aria-hidden":`true`},e),this.append(this.#e)}#w(e,t){let n=e.heading??Ko(e.kinds),i=e.grantLabel??`Allow`,a=e.cancelLabel??`Cancel`,o=`slicc-permissions__heading-${Math.random().toString(36).slice(2,8)}`,s=`slicc-permissions__desc-${Math.random().toString(36).slice(2,8)}`,c=L(`button`,{type:`button`,class:`slicc-permissions__prompt-btn`,"data-variant":`ghost`,part:`prompt-cancel`},a),l=L(`button`,{type:`button`,class:`slicc-permissions__prompt-btn`,"data-variant":`primary`,part:`prompt-grant`},i),u=L(`div`,{class:`slicc-permissions__prompt-icons`,"aria-hidden":`true`},...e.kinds.map(e=>L(`span`,{class:`slicc-permissions__prompt-icon`},r(Wo(e),{size:22})))),d=L(`div`,{class:`slicc-permissions__prompt`,part:`prompt`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":o,"aria-describedby":s,tabindex:`-1`,popover:`manual`},u,L(`h2`,{class:`slicc-permissions__prompt-heading`,id:o},n),L(`p`,{class:`slicc-permissions__prompt-desc`,id:s},e.description),L(`div`,{class:`slicc-permissions__prompt-actions`},c,l));this.append(d);let f=d;if(typeof f.showPopover==`function`)try{f.showPopover()}catch{}let p=!1,m=this.ownerDocument.activeElement??null,h=()=>{if(d.removeEventListener(`keydown`,_),d.remove(),m&&typeof m.focus==`function`)try{m.focus()}catch{}this.#r=null},g=(n,r)=>{if(!p){p=!0;for(let t of e.kinds)this.#g(t,n,r);h(),t({status:`cancelled`,grants:[],reason:n,message:r})}},_=e=>{if(e.key===`Escape`){e.preventDefault(),g(`cancelled`);return}if(e.key===`Tab`){let t=[c,l],n=this.ownerDocument.activeElement,r=t.indexOf(n);if(r===-1){t[0].focus(),e.preventDefault();return}(e.shiftKey?t[(r-1+t.length)%t.length]:t[(r+1)%t.length]).focus(),e.preventDefault()}};c.addEventListener(`click`,()=>g(`cancelled`)),l.addEventListener(`click`,async()=>{if(p)return;p=!0,l.disabled=!0,c.disabled=!0;let n=[],r=null;for(let t of e.kinds){let i=await this.request(t,e.requestOptions?.[t]);if(i)n.push(i);else{r={kind:t,reason:`cancelled`};break}}let i=r?e.kinds.indexOf(r.kind):-1;if(r&&i>=0)for(let t=i+1;t<e.kinds.length;t++)this.#g(e.kinds[t],`cancelled`);h(),t(r?{status:`cancelled`,grants:n,reason:`cancelled`}:{status:`granted`,grants:n})}),d.addEventListener(`keydown`,_),this.#r={cancel:()=>g(`cancelled`)},requestAnimationFrame(()=>{d.setAttribute(`data-open`,``),l.focus()})}};function Wo(e){switch(e){case`camera`:return`camera`;case`microphone`:return`mic`;case`screenshare`:return`monitor-up`;case`usb`:return`usb`;case`hid`:return`keyboard`;case`serial`:return`cable`;case`filesystem`:return`folder`;case`popup`:return`external-link`}}function Go(e){switch(e){case`camera`:return`camera`;case`microphone`:return`microphone`;case`screenshare`:return`screen`;case`usb`:return`USB device`;case`hid`:return`HID device`;case`serial`:return`serial port`;case`filesystem`:return`folder`;case`popup`:return`sign-in window`}}function Ko(e){if(e.length===1)return`Allow access to your ${Go(e[0])}?`;let t=e.map(Go),n=t.pop();return`Allow access to your ${t.join(`, `)} and ${n}?`}F(`slicc-permissions`,Uo);var qo=`*`,Jo=`Share a secret securely`,Yo=`the model`;function Xo(e){return`Secure secrets cannot be read by ${e}, and work only on the domains you specify.`}var Zo=/^[A-Za-z_][A-Za-z0-9_]*$/,Qo=/^[A-Za-z0-9_.-]+$/,$o=`
3811
+ `,Qs=`slicc-permissions-style`;function $s(e){if(e.getElementById(Qs))return;let t=e.createElement(`style`);t.id=Qs,t.textContent=Zs,(e.head??e.documentElement).appendChild(t)}function ec(e){let t=e.dataTransfer?.types;if(!t)return!1;for(let e=0;e<t.length;e++)if(t[e]===`Files`)return!0;return!1}var tc=class extends HTMLElement{providers={};permissionQuery=null;#e;#t=!1;#n=0;#r=null;connectedCallback(){$s(this.ownerDocument),this.#C();let e=this.ownerDocument;e.addEventListener(`dragenter`,this.#v),e.addEventListener(`dragover`,this.#y),e.addEventListener(`dragleave`,this.#b),e.addEventListener(`drop`,this.#x)}disconnectedCallback(){let e=this.ownerDocument;e.removeEventListener(`dragenter`,this.#v),e.removeEventListener(`dragover`,this.#y),e.removeEventListener(`dragleave`,this.#b),e.removeEventListener(`drop`,this.#x),this.#n=0,this.removeAttribute(`data-dropping`),this.#r&&this.#r.cancel()}async request(e,t){switch(e){case`camera`:return this.#o(t);case`microphone`:return this.#s(t);case`screenshare`:return this.#l(t);case`usb`:return this.#u(t);case`hid`:return this.#d(t);case`serial`:return this.#f(t);case`filesystem`:return this.#p();case`popup`:return this.#m(t);default:return null}}async prompt(e){if(!e.kinds.length)return{status:`granted`,grants:[]};if(e.skipIfGranted){let t=await this.#i(e);if(t)return t}return this.#r&&this.#r.cancel(),new Promise(t=>{this.#w(e,t)})}async#i(e){if(!e.kinds.every(e=>Ys.has(e)))return Js.debug(`prompt: showing dialog (a gesture-bound kind was requested)`,{kinds:e.kinds}),null;let t=this.permissionQuery??Xs,n;try{n=await Promise.all(e.kinds.map(e=>t(e)))}catch(e){return Js.error(`prompt: permission query threw; showing dialog`,e),null}if(Js.debug(`prompt: queried permission state`,{kinds:e.kinds,states:n}),!n.every(e=>e===`granted`))return Js.debug(`prompt: not all kinds granted; showing dialog`),null;let r=[];for(let t of e.kinds){let n=await this.request(t,e.requestOptions?.[t]);if(!n)return Js.error(`prompt: acquisition failed after granted state`,{kind:t}),{status:`error`,grants:r,reason:`error`};r.push(n)}return Js.debug(`prompt: short-circuited dialog (already granted)`,{kinds:e.kinds}),{status:`granted`,grants:r}}#a(){return this.providers.media??(typeof navigator<`u`?navigator.mediaDevices:null)??null}async#o(e){let t=this.#a();if(!t)return this.#g(`camera`,`unavailable`,`mediaDevices unavailable`);try{let n=await t.getUserMedia(e?.constraints??{video:!0});return this.#h({kind:`camera`,stream:n})}catch(e){return this.#_(`camera`,e)}}async#s(e){let t=this.#a();if(!t)return this.#g(`microphone`,`unavailable`,`mediaDevices unavailable`);try{let n=await t.getUserMedia(e?.constraints??{audio:!0});return this.#h({kind:`microphone`,stream:n})}catch(e){return this.#_(`microphone`,e)}}#c(){if(this.providers.screenshare)return this.providers.screenshare;let e=typeof navigator<`u`?navigator.mediaDevices:void 0;return e&&typeof e.getDisplayMedia==`function`?{getDisplayMedia:t=>e.getDisplayMedia(t)}:null}async#l(e){let t=this.#c();if(!t)return this.#g(`screenshare`,`unavailable`,`getDisplayMedia unavailable`);try{let n=await t.getDisplayMedia(e?.constraints??{video:!0});return this.#h({kind:`screenshare`,stream:n})}catch(e){return this.#_(`screenshare`,e)}}async#u(e){let t=this.providers.usb??globalThis.navigator?.usb??null;if(!t?.requestDevice)return this.#g(`usb`,`unavailable`,`WebUSB unavailable`);try{let n=await t.requestDevice({filters:e?.filters??[]});return n?this.#h({kind:`usb`,device:n}):this.#g(`usb`,`cancelled`)}catch(e){return this.#_(`usb`,e)}}async#d(e){let t=this.providers.hid??globalThis.navigator?.hid??null;if(!t?.requestDevice)return this.#g(`hid`,`unavailable`,`WebHID unavailable`);try{let n=await t.requestDevice({filters:e?.filters??[]}),r=Array.isArray(n)?n:n?[n]:[];return r.length===0?this.#g(`hid`,`cancelled`):this.#h({kind:`hid`,device:r[0],devices:r})}catch(e){return this.#_(`hid`,e)}}async#f(e){let t=this.providers.serial??globalThis.navigator?.serial??null;if(!t?.requestPort)return this.#g(`serial`,`unavailable`,`Web Serial unavailable`);try{let n=await t.requestPort(e?.filters?.length?{filters:e.filters}:{});return n?this.#h({kind:`serial`,port:n}):this.#g(`serial`,`cancelled`)}catch(e){return this.#_(`serial`,e)}}async#p(){let e=this.providers.filesystem??(typeof window<`u`&&`showDirectoryPicker`in window&&window||null);if(!e?.showDirectoryPicker)return this.#g(`filesystem`,`unavailable`,`showDirectoryPicker unavailable`);try{let t=await e.showDirectoryPicker({mode:`readwrite`});return this.#h({kind:`filesystem`,handle:t,source:`picker`,permission:`granted`})}catch(e){return this.#_(`filesystem`,e)}}#m(e){let t=e?.url;if(!t)return this.#g(`popup`,`error`,`popup request missing url`);let n=e?.features??`width=500,height=700,popup=yes`,r=this.providers.popup??(typeof window<`u`?{open:(e,t)=>window.open(e,`_blank`,t)}:null);if(!r)return this.#g(`popup`,`unavailable`,`window.open unavailable`);let i;try{i=r.open(t,n)}catch(e){return this.#_(`popup`,e)}return i?this.#h({kind:`popup`,window:i}):this.#g(`popup`,`error`,`window.open returned null (popup blocked?)`)}#h(e){return this.dispatchEvent(new CustomEvent(`slicc-permission-grant`,{detail:e,bubbles:!0,composed:!0})),e}#g(e,t,n){return this.dispatchEvent(new CustomEvent(`slicc-permission-deny`,{detail:{kind:e,reason:t,message:n},bubbles:!0,composed:!0})),null}#_(e,t){return t instanceof Error&&(t.name===`AbortError`||t.name===`NotFoundError`)?this.#g(e,`cancelled`):this.#g(e,`error`,t instanceof Error?t.message:String(t))}#v=e=>{ec(e)&&(e.preventDefault(),this.#n++,this.setAttribute(`data-dropping`,``))};#y=e=>{ec(e)&&e.preventDefault()};#b=e=>{ec(e)&&(this.#n=Math.max(0,this.#n-1),this.#n===0&&this.removeAttribute(`data-dropping`))};#x=e=>{if(!ec(e))return;e.preventDefault(),this.#n=0,this.removeAttribute(`data-dropping`);let t=e.dataTransfer?.items;if(!t?.length)return;let n=[];for(let e=0;e<t.length;e++){let r=t[e];r.kind===`file`&&typeof r.getAsFileSystemHandle==`function`&&n.push(r.getAsFileSystemHandle())}n.length!==0&&this.#S(n)};async#S(e){let t;try{t=await Promise.all(e)}catch(e){this.#g(`filesystem`,`error`,e instanceof Error?e.message:String(e));return}let n=t.find(e=>e?.kind===`directory`);if(!n){this.#g(`filesystem`,`cancelled`,`no directory in drop`);return}let r=n,i;if(r.requestPermission)try{i=await r.requestPermission({mode:`readwrite`})}catch(e){this.#g(`filesystem`,`error`,e instanceof Error?e.message:String(e));return}else i=`granted`;if(i!==`granted`){this.#g(`filesystem`,`cancelled`,`permission ${i}`);return}this.#h({kind:`filesystem`,handle:n,source:`drop`,permission:i})}#C(){if(this.#t)return;this.#t=!0;let e=I(`div`,{class:`slicc-permissions__drop-inner`},i(`folder-up`,{size:32}),I(`div`,null,`Drop a folder to mount it (read-write)`));this.#e=I(`div`,{class:`slicc-permissions__drop`,part:`drop`,"aria-hidden":`true`},e),this.append(this.#e)}#w(e,t){let n=e.heading??ic(e.kinds),r=e.grantLabel??`Allow`,a=e.cancelLabel??`Cancel`,o=`slicc-permissions__heading-${Math.random().toString(36).slice(2,8)}`,s=`slicc-permissions__desc-${Math.random().toString(36).slice(2,8)}`,c=I(`button`,{type:`button`,class:`slicc-permissions__prompt-btn`,"data-variant":`ghost`,part:`prompt-cancel`},a),l=I(`button`,{type:`button`,class:`slicc-permissions__prompt-btn`,"data-variant":`primary`,part:`prompt-grant`},r),u=I(`div`,{class:`slicc-permissions__prompt-icons`,"aria-hidden":`true`},...e.kinds.map(e=>I(`span`,{class:`slicc-permissions__prompt-icon`},i(nc(e),{size:22})))),d=I(`div`,{class:`slicc-permissions__prompt`,part:`prompt`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":o,"aria-describedby":s,tabindex:`-1`,popover:`manual`},u,I(`h2`,{class:`slicc-permissions__prompt-heading`,id:o},n),I(`p`,{class:`slicc-permissions__prompt-desc`,id:s},e.description),I(`div`,{class:`slicc-permissions__prompt-actions`},c,l));this.append(d);let f=d;if(typeof f.showPopover==`function`)try{f.showPopover()}catch{}let p=!1,m=this.ownerDocument.activeElement??null,h=()=>{if(d.removeEventListener(`keydown`,_),d.remove(),m&&typeof m.focus==`function`)try{m.focus()}catch{}this.#r=null},g=(n,r)=>{if(!p){p=!0;for(let t of e.kinds)this.#g(t,n,r);h(),t({status:`cancelled`,grants:[],reason:n,message:r})}},_=e=>{if(e.key===`Escape`){e.preventDefault(),g(`cancelled`);return}if(e.key===`Tab`){let t=[c,l],n=this.ownerDocument.activeElement,r=t.indexOf(n);if(r===-1){t[0].focus(),e.preventDefault();return}(e.shiftKey?t[(r-1+t.length)%t.length]:t[(r+1)%t.length]).focus(),e.preventDefault()}};c.addEventListener(`click`,()=>g(`cancelled`)),l.addEventListener(`click`,async()=>{if(p)return;p=!0,l.disabled=!0,c.disabled=!0;let n=[],r=null;for(let t of e.kinds){let i=await this.request(t,e.requestOptions?.[t]);if(i)n.push(i);else{r={kind:t,reason:`cancelled`};break}}let i=r?e.kinds.indexOf(r.kind):-1;if(r&&i>=0)for(let t=i+1;t<e.kinds.length;t++)this.#g(e.kinds[t],`cancelled`);h(),t(r?{status:`cancelled`,grants:n,reason:`cancelled`}:{status:`granted`,grants:n})}),d.addEventListener(`keydown`,_),this.#r={cancel:()=>g(`cancelled`)},requestAnimationFrame(()=>{d.setAttribute(`data-open`,``),l.focus()})}};function nc(e){switch(e){case`camera`:return`camera`;case`microphone`:return`mic`;case`screenshare`:return`monitor-up`;case`usb`:return`usb`;case`hid`:return`keyboard`;case`serial`:return`cable`;case`filesystem`:return`folder`;case`popup`:return`external-link`}}function rc(e){switch(e){case`camera`:return`camera`;case`microphone`:return`microphone`;case`screenshare`:return`screen`;case`usb`:return`USB device`;case`hid`:return`HID device`;case`serial`:return`serial port`;case`filesystem`:return`folder`;case`popup`:return`sign-in window`}}function ic(e){if(e.length===1)return`Allow access to your ${rc(e[0])}?`;let t=e.map(rc),n=t.pop();return`Allow access to your ${t.join(`, `)} and ${n}?`}F(`slicc-permissions`,tc);var ac=`*`,oc=`Share a secret securely`,sc=`the model`;function cc(e){return`Secure secrets cannot be read by ${e}, and work only on the domains you specify.`}var lc=/^[A-Za-z_][A-Za-z0-9_]*$/,uc=/^[A-Za-z0-9_.-]+$/,dc=`
3810
3812
  slicc-secret-dialog slicc-dialog::part(dialog) {
3811
3813
  width: min(480px, 92vw);
3812
3814
  }
@@ -3979,7 +3981,7 @@ slicc-secret-dialog .slicc-secret__btn[disabled] {
3979
3981
  opacity: .55;
3980
3982
  cursor: default;
3981
3983
  }
3982
- `,es=`slicc-secret-dialog-style`;function ts(e){if(e.getElementById(es))return;let t=e.createElement(`style`);t.id=es,t.textContent=$o,(e.head??e.documentElement).appendChild(t)}function ns(e){return e.split(/[,\s]+/).map(e=>e.trim()).filter(e=>e.length>0)}var rs=class extends HTMLElement{static observedAttributes=[`heading`,`secret-name`,`domain`,`provider`,`persist-default`];submitHandler=null;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f=!1;#p=!1;#m=null;connectedCallback(){this.#O()}attributeChangedCallback(e){this.#f&&(e===`heading`?this.#e.setAttribute(`heading`,this.heading):e===`secret-name`?this.#t.value=this.getAttribute(`secret-name`)??``:e===`domain`?this.#b(ns(this.getAttribute(`domain`)??``)):e===`provider`?this.#e.setAttribute(`description`,Xo(this.provider)):e===`persist-default`&&(this.#a.checked=this.persistDefault))}get provider(){return this.getAttribute(`provider`)||Yo}set provider(e){e==null?this.removeAttribute(`provider`):this.setAttribute(`provider`,e)}get heading(){return this.getAttribute(`heading`)??Jo}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get persistDefault(){return this.hasAttribute(`persist-default`)}set persistDefault(e){this.toggleAttribute(`persist-default`,e)}open(e={}){return this.#O(),e.heading&&(this.heading=e.heading),e.provider&&(this.provider=e.provider),this.#e.setAttribute(`heading`,this.heading),this.#e.setAttribute(`description`,is(e,this.provider)),this.#t.value=e.name??this.getAttribute(`secret-name`)??``,this.#b(e.domains??ns(this.getAttribute(`domain`)??``)),this.#a.checked=e.persist??this.persistDefault,this.#n.value=``,this.#g(!1),this.#l.textContent=``,this.#h(!1),this.#c.open=!0,this.#_(),this.#e.show?.(),requestAnimationFrame(()=>(this.#t.value?this.#n:this.#t).focus()),new Promise(e=>{this.#m=e})}setError(e){this.#O(),this.#l.textContent=e,this.#h(!1)}#h(e){this.#p=e,this.#o.disabled=e,this.#o.textContent=e?`Storing…`:`Store secret`,this.#s.disabled=e}#g(e){this.#n.type=e?`text`:`password`,this.#r.setAttribute(`aria-pressed`,String(e)),this.#r.setAttribute(`aria-label`,e?`Hide secret`:`Show secret`),this.#r.replaceChildren(r(e?`eye-off`:`eye`,{size:16}))}#_(){let e=this.#t.value.trim(),t=!e||Zo.test(e);this.#u.textContent=t?``:`Not a shell name — no $${e} in the shell.`,this.#u.toggleAttribute(`hidden`,t);let n=this.#v().includes(qo);this.#d.textContent=n?`* allows any domain. Narrow it to the API host.`:``,this.#d.toggleAttribute(`hidden`,!n)}#v(){return this.#y().flatMap(e=>ns(e.value))}#y(){return Array.from(this.#i.querySelectorAll(`[part="domain"]`))}#b(e){let t=e.length>0?e:[``];this.#i.replaceChildren(...t.map(e=>this.#x(e))),this.#C()}#x(e){let t=L(`input`,{type:`text`,class:`slicc-secret__input`,part:`domain`,spellcheck:`false`,autocomplete:`off`,placeholder:`api.github.com`,"aria-label":`Allowed domain`});t.value=e,t.addEventListener(`input`,()=>this.#_());let n=L(`div`,{class:`slicc-secret__row`},t,this.#S(`minus`,`Remove this domain`,`domain-remove`,()=>{n.remove(),this.#C(),this.#_()}),this.#S(`plus`,`Add another domain`,`domain-add`,()=>{let e=this.#x(``);n.after(e),this.#C(),e.querySelector(`[part="domain"]`)?.focus()}));return n}#S(e,t,n,i){let a=L(`button`,{type:`button`,class:`slicc-secret__row-btn`,part:n,"aria-label":t,title:t},r(e,{size:14}));return a.addEventListener(`click`,i),a}#C(){let e=Array.from(this.#i.children);for(let t of e){let n=t.querySelector(`[part="domain-remove"]`);n&&(n.disabled=e.length===1)}}#w(){let e=this.#t.value.trim();if(!e)return`Give the secret a name.`;if(!Qo.test(e))return`Use letters, digits, and . _ - in the name.`;let t=this.#n.value;if(!t)return`Paste the secret value.`;let n=this.#v();return n.length===0?`Every secret needs at least one allowed domain.`:{name:e,value:t,domains:n,persist:this.#a.checked}}async#T(){if(this.#p)return;let e=this.#w();if(typeof e==`string`){this.#l.textContent=e;return}if(this.#l.textContent=``,this.submitHandler){this.#h(!0);let t;try{t=await this.submitHandler(e)}catch(e){t=e instanceof Error?e.message:String(e)}if(t){this.setError(t);return}this.#h(!1)}let{name:t,domains:n,persist:r}=e;this.dispatchEvent(new CustomEvent(`slicc-secret-submit`,{detail:{name:t,domains:n,persist:r},bubbles:!0,composed:!0})),this.#E(e)}#E(e){if(this.#p&&!e)return;let t=this.#m;this.#m=null,this.#e.hide?.(),this.#n.value=``,this.#g(!1),this.#h(!1),e||this.dispatchEvent(new CustomEvent(`slicc-secret-cancel`,{bubbles:!0,composed:!0})),t?.(e)}#D(){this.#i=L(`div`,{class:`slicc-secret__rows`}),this.#b(ns(this.getAttribute(`domain`)??``)),this.#a=L(`input`,{type:`checkbox`,part:`persist`}),this.#a.checked=this.persistDefault,this.#c=L(`details`,{class:`slicc-secret__options`},L(`summary`,{class:`slicc-secret__summary`},r(`sliders-horizontal`,{size:14}),`Additional options`),L(`div`,{class:`slicc-secret__opts-body`},L(`div`,{class:`slicc-secret__field`},L(`label`,{class:`slicc-secret__label`},`Domains`),this.#i,L(`div`,{class:`slicc-secret__hint`},`Globs allowed: *.github.com`),this.#d),L(`label`,{class:`slicc-secret__check`},this.#a,L(`span`,{},`Keep after this session ends`,L(`div`,{class:`slicc-secret__hint`},`Off: this session only.`)))))}#O(){if(this.#f)return;this.#f=!0,ts(this.ownerDocument),this.#t=L(`input`,{type:`text`,class:`slicc-secret__input`,part:`name`,spellcheck:`false`,autocomplete:`off`,placeholder:`GITHUB_TOKEN`,"aria-label":`Secret name`}),this.#t.value=this.getAttribute(`secret-name`)??``,this.#t.addEventListener(`input`,()=>this.#_()),this.#n=L(`input`,{type:`password`,class:`slicc-secret__input slicc-secret__input--value`,part:`value`,spellcheck:`false`,autocomplete:`off`,placeholder:`Paste the value`,"aria-label":`Secret value`}),this.#n.addEventListener(`paste`,e=>{let t=e.clipboardData?.getData(`text`)??``;/[\r\n]/.test(t.trim())&&(this.#l.textContent=`That value spans multiple lines and was joined into one. Secrets must be single-line — base64-encode it first (base64 -w0 key.pem).`)}),this.#n.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.preventDefault(),this.#T())}),this.#r=L(`button`,{type:`button`,class:`slicc-secret__reveal`,part:`reveal`}),this.#r.addEventListener(`click`,()=>this.#g(this.#n.type===`password`)),this.#u=L(`div`,{class:`slicc-secret__hint`,hidden:!0}),this.#d=L(`div`,{class:`slicc-secret__hint`,hidden:!0}),this.#D(),this.#l=L(`div`,{class:`slicc-secret__error`,role:`alert`,"aria-live":`polite`}),this.#s=L(`button`,{type:`button`,class:`slicc-secret__btn`,part:`cancel`,slot:`footer`},`Cancel`),this.#s.addEventListener(`click`,()=>this.#E(null)),this.#o=L(`button`,{type:`button`,class:`slicc-secret__btn slicc-secret__btn--save`,part:`save`,slot:`footer`},`Store secret`),this.#o.addEventListener(`click`,()=>void this.#T());let e=L(`div`,{class:`slicc-secret__body`},L(`div`,{class:`slicc-secret__field`},L(`label`,{class:`slicc-secret__label`},`Name`),this.#t,this.#u),L(`div`,{class:`slicc-secret__field`},L(`label`,{class:`slicc-secret__label`},`Value`),L(`div`,{class:`slicc-secret__value-wrap`},this.#n,this.#r),L(`div`,{class:`slicc-secret__hint`},`Single line. Stays in this tab.`)),this.#c,this.#l);this.#g(!1),this.#e=this.ownerDocument.createElement(`slicc-dialog`),this.#e.setAttribute(`heading`,this.heading),this.#e.setAttribute(`description`,Xo(this.provider)),this.#e.setAttribute(`persistent`,``),this.#e.append(e,this.#s,this.#o),this.#e.addEventListener(`slicc-dialog-close`,()=>{this.#m&&this.#E(null)}),this.append(this.#e),this.#_()}};function is(e,t){let n=Xo(t);return e.reason?`${e.requester?`${e.requester}: `:``}${/[.!?]$/.test(e.reason.trim())?e.reason.trim():`${e.reason.trim()}.`} ${n}`:n}F(`slicc-secret-dialog`,rs);var as=new Set([`top`,`bottom`,`left`,`right`]),os=R(`
3984
+ `,fc=`slicc-secret-dialog-style`;function pc(e){if(e.getElementById(fc))return;let t=e.createElement(`style`);t.id=fc,t.textContent=dc,(e.head??e.documentElement).appendChild(t)}function mc(e){return e.split(/[,\s]+/).map(e=>e.trim()).filter(e=>e.length>0)}var hc=class extends HTMLElement{static observedAttributes=[`heading`,`secret-name`,`domain`,`provider`,`persist-default`];submitHandler=null;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d;#f=!1;#p=!1;#m=null;connectedCallback(){this.#O()}attributeChangedCallback(e){this.#f&&(e===`heading`?this.#e.setAttribute(`heading`,this.heading):e===`secret-name`?this.#t.value=this.getAttribute(`secret-name`)??``:e===`domain`?this.#b(mc(this.getAttribute(`domain`)??``)):e===`provider`?this.#e.setAttribute(`description`,cc(this.provider)):e===`persist-default`&&(this.#a.checked=this.persistDefault))}get provider(){return this.getAttribute(`provider`)||sc}set provider(e){e==null?this.removeAttribute(`provider`):this.setAttribute(`provider`,e)}get heading(){return this.getAttribute(`heading`)??oc}set heading(e){e==null?this.removeAttribute(`heading`):this.setAttribute(`heading`,e)}get persistDefault(){return this.hasAttribute(`persist-default`)}set persistDefault(e){this.toggleAttribute(`persist-default`,e)}open(e={}){return this.#O(),e.heading&&(this.heading=e.heading),e.provider&&(this.provider=e.provider),this.#e.setAttribute(`heading`,this.heading),this.#e.setAttribute(`description`,gc(e,this.provider)),this.#t.value=e.name??this.getAttribute(`secret-name`)??``,this.#b(e.domains??mc(this.getAttribute(`domain`)??``)),this.#a.checked=e.persist??this.persistDefault,this.#n.value=``,this.#g(!1),this.#l.textContent=``,this.#h(!1),this.#c.open=!0,this.#_(),this.#e.show?.(),requestAnimationFrame(()=>(this.#t.value?this.#n:this.#t).focus()),new Promise(e=>{this.#m=e})}setError(e){this.#O(),this.#l.textContent=e,this.#h(!1)}#h(e){this.#p=e,this.#o.disabled=e,this.#o.textContent=e?`Storing…`:`Store secret`,this.#s.disabled=e}#g(e){this.#n.type=e?`text`:`password`,this.#r.setAttribute(`aria-pressed`,String(e)),this.#r.setAttribute(`aria-label`,e?`Hide secret`:`Show secret`),this.#r.replaceChildren(i(e?`eye-off`:`eye`,{size:16}))}#_(){let e=this.#t.value.trim(),t=!e||lc.test(e);this.#u.textContent=t?``:`Not a shell name — no $${e} in the shell.`,this.#u.toggleAttribute(`hidden`,t);let n=this.#v().includes(ac);this.#d.textContent=n?`* allows any domain. Narrow it to the API host.`:``,this.#d.toggleAttribute(`hidden`,!n)}#v(){return this.#y().flatMap(e=>mc(e.value))}#y(){return Array.from(this.#i.querySelectorAll(`[part="domain"]`))}#b(e){let t=e.length>0?e:[``];this.#i.replaceChildren(...t.map(e=>this.#x(e))),this.#C()}#x(e){let t=I(`input`,{type:`text`,class:`slicc-secret__input`,part:`domain`,spellcheck:`false`,autocomplete:`off`,placeholder:`api.github.com`,"aria-label":`Allowed domain`});t.value=e,t.addEventListener(`input`,()=>this.#_());let n=I(`div`,{class:`slicc-secret__row`},t,this.#S(`minus`,`Remove this domain`,`domain-remove`,()=>{n.remove(),this.#C(),this.#_()}),this.#S(`plus`,`Add another domain`,`domain-add`,()=>{let e=this.#x(``);n.after(e),this.#C(),e.querySelector(`[part="domain"]`)?.focus()}));return n}#S(e,t,n,r){let a=I(`button`,{type:`button`,class:`slicc-secret__row-btn`,part:n,"aria-label":t,title:t},i(e,{size:14}));return a.addEventListener(`click`,r),a}#C(){let e=Array.from(this.#i.children);for(let t of e){let n=t.querySelector(`[part="domain-remove"]`);n&&(n.disabled=e.length===1)}}#w(){let e=this.#t.value.trim();if(!e)return`Give the secret a name.`;if(!uc.test(e))return`Use letters, digits, and . _ - in the name.`;let t=this.#n.value;if(!t)return`Paste the secret value.`;let n=this.#v();return n.length===0?`Every secret needs at least one allowed domain.`:{name:e,value:t,domains:n,persist:this.#a.checked}}async#T(){if(this.#p)return;let e=this.#w();if(typeof e==`string`){this.#l.textContent=e;return}if(this.#l.textContent=``,this.submitHandler){this.#h(!0);let t;try{t=await this.submitHandler(e)}catch(e){t=e instanceof Error?e.message:String(e)}if(t){this.setError(t);return}this.#h(!1)}let{name:t,domains:n,persist:r}=e;this.dispatchEvent(new CustomEvent(`slicc-secret-submit`,{detail:{name:t,domains:n,persist:r},bubbles:!0,composed:!0})),this.#E(e)}#E(e){if(this.#p&&!e)return;let t=this.#m;this.#m=null,this.#e.hide?.(),this.#n.value=``,this.#g(!1),this.#h(!1),e||this.dispatchEvent(new CustomEvent(`slicc-secret-cancel`,{bubbles:!0,composed:!0})),t?.(e)}#D(){this.#i=I(`div`,{class:`slicc-secret__rows`}),this.#b(mc(this.getAttribute(`domain`)??``)),this.#a=I(`input`,{type:`checkbox`,part:`persist`}),this.#a.checked=this.persistDefault,this.#c=I(`details`,{class:`slicc-secret__options`},I(`summary`,{class:`slicc-secret__summary`},i(`sliders-horizontal`,{size:14}),`Additional options`),I(`div`,{class:`slicc-secret__opts-body`},I(`div`,{class:`slicc-secret__field`},I(`label`,{class:`slicc-secret__label`},`Domains`),this.#i,I(`div`,{class:`slicc-secret__hint`},`Globs allowed: *.github.com`),this.#d),I(`label`,{class:`slicc-secret__check`},this.#a,I(`span`,{},`Keep after this session ends`,I(`div`,{class:`slicc-secret__hint`},`Off: this session only.`)))))}#O(){if(this.#f)return;this.#f=!0,pc(this.ownerDocument),this.#t=I(`input`,{type:`text`,class:`slicc-secret__input`,part:`name`,spellcheck:`false`,autocomplete:`off`,placeholder:`GITHUB_TOKEN`,"aria-label":`Secret name`}),this.#t.value=this.getAttribute(`secret-name`)??``,this.#t.addEventListener(`input`,()=>this.#_()),this.#n=I(`input`,{type:`password`,class:`slicc-secret__input slicc-secret__input--value`,part:`value`,spellcheck:`false`,autocomplete:`off`,placeholder:`Paste the value`,"aria-label":`Secret value`}),this.#n.addEventListener(`paste`,e=>{let t=e.clipboardData?.getData(`text`)??``;/[\r\n]/.test(t.trim())&&(this.#l.textContent=`That value spans multiple lines and was joined into one. Secrets must be single-line — base64-encode it first (base64 -w0 key.pem).`)}),this.#n.addEventListener(`keydown`,e=>{e.key===`Enter`&&(e.preventDefault(),this.#T())}),this.#r=I(`button`,{type:`button`,class:`slicc-secret__reveal`,part:`reveal`}),this.#r.addEventListener(`click`,()=>this.#g(this.#n.type===`password`)),this.#u=I(`div`,{class:`slicc-secret__hint`,hidden:!0}),this.#d=I(`div`,{class:`slicc-secret__hint`,hidden:!0}),this.#D(),this.#l=I(`div`,{class:`slicc-secret__error`,role:`alert`,"aria-live":`polite`}),this.#s=I(`button`,{type:`button`,class:`slicc-secret__btn`,part:`cancel`,slot:`footer`},`Cancel`),this.#s.addEventListener(`click`,()=>this.#E(null)),this.#o=I(`button`,{type:`button`,class:`slicc-secret__btn slicc-secret__btn--save`,part:`save`,slot:`footer`},`Store secret`),this.#o.addEventListener(`click`,()=>void this.#T());let e=I(`div`,{class:`slicc-secret__body`},I(`div`,{class:`slicc-secret__field`},I(`label`,{class:`slicc-secret__label`},`Name`),this.#t,this.#u),I(`div`,{class:`slicc-secret__field`},I(`label`,{class:`slicc-secret__label`},`Value`),I(`div`,{class:`slicc-secret__value-wrap`},this.#n,this.#r),I(`div`,{class:`slicc-secret__hint`},`Single line. Stays in this tab.`)),this.#c,this.#l);this.#g(!1),this.#e=this.ownerDocument.createElement(`slicc-dialog`),this.#e.setAttribute(`heading`,this.heading),this.#e.setAttribute(`description`,cc(this.provider)),this.#e.setAttribute(`persistent`,``),this.#e.append(e,this.#s,this.#o),this.#e.addEventListener(`slicc-dialog-close`,()=>{this.#m&&this.#E(null)}),this.append(this.#e),this.#_()}};function gc(e,t){let n=cc(t);return e.reason?`${e.requester?`${e.requester}: `:``}${/[.!?]$/.test(e.reason.trim())?e.reason.trim():`${e.reason.trim()}.`} ${n}`:n}F(`slicc-secret-dialog`,hc);var _c=new Set([`top`,`bottom`,`left`,`right`]),vc=L(`
3983
3985
  :host { position: relative; display: inline-flex; }
3984
3986
  :host([hidden]) { display: none; }
3985
3987
  .tip {
@@ -4004,7 +4006,7 @@ slicc-secret-dialog .slicc-secret__btn[disabled] {
4004
4006
  :host(:hover) .tip[data-p="right"], :host(:focus-within) .tip[data-p="right"], :host([open]) .tip[data-p="right"] { transform: translate(0, -50%); }
4005
4007
  .tip:empty { display: none; }
4006
4008
  @media (prefers-reduced-motion: reduce) { .tip { transition: none; } }
4007
- `);F(`slicc-tooltip`,class extends HTMLElement{static observedAttributes=[`label`,`placement`];#e;#t;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[os],this.#t=L(`span`,{class:`tip`,part:`tip`,role:`tooltip`,"aria-hidden":`true`}),this.#e.replaceChildren(L(`slot`),this.#t)}connectedCallback(){this.#n()}attributeChangedCallback(){this.#n()}get label(){return this.getAttribute(`label`)??``}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get placement(){let e=this.getAttribute(`placement`);return e&&as.has(e)?e:`top`}set placement(e){this.setAttribute(`placement`,e)}#n(){this.#t.textContent=this.label,this.#t.setAttribute(`data-p`,this.placement)}});function ss(e,t){let n=e.base;for(let r of e.variants??[])Fe(r.when,t)&&(r.zones!==void 0||r.center!==void 0)&&(n=r);return n}var cs=.02,ls=48,us={top:`Top`,left:`Left`,center:`Center`,right:`Right`,bottom:`Bottom`},ds=class{#e;#t;#n;#r=null;constructor(e){this.#e=e,this.#t=fs(`slicc-layout__ghost`),this.#n=fs(`slicc-layout__targets`)}overlays(){return[this.#n,this.#t]}cancel(){window.removeEventListener(`pointermove`,this.#l),window.removeEventListener(`pointerup`,this.#d),this.#r=null,this.#t.classList.remove(`slicc-layout__ghost--active`),this.#n.replaceChildren(),this.#n.classList.remove(`slicc-layout__targets--active`)}decorateSlot(e,t){if(this.#e.isLocked(t))return;let n=document.createElement(`button`);n.type=`button`,n.className=`slicc-layout__move`,n.title=`Move ${t}`,n.setAttribute(`aria-label`,`Move ${t}`),n.dataset.panelId=t,n.appendChild(r(`grip-vertical`,{size:13})),n.addEventListener(`pointerdown`,e=>this.#a(e,t)),e.appendChild(n)}buildZonePanelDivider(e,t,n,r){if(r)return null;let i=t===`row`,a=fs(`slicc-layout__divider slicc-layout__divider--${i?`h`:`v`}`);return a.dataset.zone=e,a.addEventListener(`pointerdown`,t=>{this.#f(t,e,i,n)}),a}buildZoneDivider(e,t,n,r,i){if(i)return null;let a=fs(`slicc-layout__divider slicc-layout__divider--zone slicc-layout__divider--${n?`h`:`v`}`);return a.dataset.zoneBefore=e,a.dataset.zoneAfter=t,a.addEventListener(`pointerdown`,i=>{this.#i(i,e,t,n,r)}),a}#i(e,t,n,r,i){e.preventDefault();let a=t===`center`?n:t,o=a===t?1:-1,s=i.querySelector(`:scope > [data-zone="${a}"]`);if(!(s instanceof HTMLElement))return;this.#e.setPointerCapture(e.pointerId);let c=s.getBoundingClientRect(),l=r?c.width:c.height,u=r?e.clientX:e.clientY,d=i.getBoundingClientRect(),f=r?d.width:d.height,p=0;for(let e of Array.from(i.children)){if(!(e instanceof HTMLElement)||e===s)continue;let t=e.getBoundingClientRect(),n=r?t.width:t.height,i=e.dataset.zone===`center`||e.classList.contains(`slicc-layout__work-row`);p+=i?ls:n}let m=Math.max(ls,f-p),h=l,g=e=>{let t=r?e.clientX:e.clientY;h=Math.max(ls,Math.min(m,l+(t-u)*o)),this.#e.applyZoneResize(a,`${Math.round(h)}px`),this.#e.rerender()},_=()=>{window.removeEventListener(`pointermove`,g),window.removeEventListener(`pointerup`,_),window.removeEventListener(`pointercancel`,_),this.#e.hasPointerCapture(e.pointerId)&&this.#e.releasePointerCapture(e.pointerId),this.#e.applyZoneResize(a,`${Math.round(h)}px`),this.#e.commitResize()};window.addEventListener(`pointermove`,g),window.addEventListener(`pointerup`,_),window.addEventListener(`pointercancel`,_)}#a(e,t){this.#e.isLocked(t)||(e.preventDefault(),this.#r={panelId:t,zone:null},this.#t.textContent=t,this.#t.classList.add(`slicc-layout__ghost--active`),this.#c(e),this.#o(),window.addEventListener(`pointermove`,this.#l),window.addEventListener(`pointerup`,this.#d))}#o(){let e=this.#e.querySelector(`.slicc-layout__work`);if(!(e instanceof HTMLElement))return;let t=e.getBoundingClientRect();for(let e of je)this.#n.appendChild(gs(e,t));this.#n.classList.add(`slicc-layout__targets--active`)}#s(e){for(let t of Array.from(this.#n.children))t.classList.toggle(`slicc-layout__target--hot`,t===e)}#c(e){this.#t.style.left=`${e.clientX}px`,this.#t.style.top=`${e.clientY}px`}#l=e=>{let t=this.#r;if(!t)return;this.#c(e),t.zone=null;let n=document.elementFromPoint(e.clientX,e.clientY),r=n?.closest(`.slicc-layout__target`);if(r instanceof HTMLElement){let e=r.dataset.zone;if(e){t.zone=e,this.#s(r);return}}let i=n?.closest(`.slicc-layout__zone`),a=i instanceof HTMLElement?i.dataset.zone:null;t.zone=a,this.#s(a?this.#u(a):null)};#u(e){return this.#n.querySelector(`.slicc-layout__target[data-zone="${e}"]`)}#d=()=>{let e=this.#r;this.cancel(),e?.zone&&this.#e.applyMove(e.panelId,e.zone)};#f(e,t,n,r){e.preventDefault();let i=e.currentTarget,a=Array.from(r.querySelectorAll(`:scope > .slicc-layout__slot`)),o=Array.from(r.children).slice(0,Array.from(r.children).indexOf(i)).filter(e=>e.classList.contains(`slicc-layout__slot`)).length;if(o<1||o>=a.length)return;this.#e.setPointerCapture(e.pointerId);let s=a.map(e=>{let t=e.getBoundingClientRect();return Math.max(1,n?t.width:t.height)}),c=s.reduce((e,t)=>e+t,0),l=s.map(e=>e/c*s.length),u=r.getBoundingClientRect(),d=n?u.width:u.height,f=n?e.clientX:e.clientY,p=l.reduce((e,t)=>e+t,0),m=l[o-1]+l[o],h=m*cs,g=l[o-1],_=l,v=e=>{let r=n?e.clientX:e.clientY,i=d>0?(r-f)/d*p:0,a=Math.max(h,Math.min(m-h,g+i));_=[...l],_[o-1]=a,_[o]=m-a,this.#e.applyResize(t,_),this.#e.rerender()},y=()=>{window.removeEventListener(`pointermove`,v),window.removeEventListener(`pointerup`,y),window.removeEventListener(`pointercancel`,y),this.#e.hasPointerCapture(e.pointerId)&&this.#e.releasePointerCapture(e.pointerId),this.#e.applyResize(t,_),this.#e.commitResize()};window.addEventListener(`pointermove`,v),window.addEventListener(`pointerup`,y),window.addEventListener(`pointercancel`,y)}};function fs(e){let t=document.createElement(`div`);return t.className=e,t}var ps={top:`arrow-up`,bottom:`arrow-down`,left:`arrow-left`,right:`arrow-right`,center:`square`},ms=56,hs=16;function gs(e,t){let n=fs(`slicc-layout__target slicc-layout__target--${e}`);n.dataset.zone=e,n.title=`Move to ${us[e]}`,n.appendChild(r(ps[e],{size:20}));let i=fs(`slicc-layout__target-label`);i.textContent=us[e],n.appendChild(i);let a=t.left+t.width/2-ms/2,o=t.top+t.height/2-ms/2,[s,c]={center:[a,o],top:[a,t.top+hs],bottom:[a,t.bottom-ms-hs],left:[t.left+hs,o],right:[t.right-ms-hs,o]}[e];return n.style.left=`${s}px`,n.style.top=`${c}px`,n}var _s=`
4009
+ `);F(`slicc-tooltip`,class extends HTMLElement{static observedAttributes=[`label`,`placement`];#e;#t;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[vc],this.#t=I(`span`,{class:`tip`,part:`tip`,role:`tooltip`,"aria-hidden":`true`}),this.#e.replaceChildren(I(`slot`),this.#t)}connectedCallback(){this.#n()}attributeChangedCallback(){this.#n()}get label(){return this.getAttribute(`label`)??``}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get placement(){let e=this.getAttribute(`placement`);return e&&_c.has(e)?e:`top`}set placement(e){this.setAttribute(`placement`,e)}#n(){this.#t.textContent=this.label,this.#t.setAttribute(`data-p`,this.placement)}});function yc(e,t){let n=e.base;for(let r of e.variants??[])Ht(r.when,t)&&(r.zones!==void 0||r.center!==void 0)&&(n=r);return n}var bc=.02,xc=48,Sc={top:`Top`,left:`Left`,center:`Center`,right:`Right`,bottom:`Bottom`},Cc=class{#e;#t;#n;#r=null;constructor(e){this.#e=e,this.#t=wc(`slicc-layout__ghost`),this.#n=wc(`slicc-layout__targets`)}overlays(){return[this.#n,this.#t]}cancel(){window.removeEventListener(`pointermove`,this.#l),window.removeEventListener(`pointerup`,this.#d),this.#r=null,this.#t.classList.remove(`slicc-layout__ghost--active`),this.#n.replaceChildren(),this.#n.classList.remove(`slicc-layout__targets--active`)}decorateSlot(e,t){if(this.#e.isLocked(t))return;let n=document.createElement(`button`);n.type=`button`,n.className=`slicc-layout__move`,n.title=`Move ${t}`,n.setAttribute(`aria-label`,`Move ${t}`),n.dataset.panelId=t,n.appendChild(i(`grip-vertical`,{size:13})),n.addEventListener(`pointerdown`,e=>this.#a(e,t)),e.appendChild(n)}buildZonePanelDivider(e,t,n,r){if(r)return null;let i=t===`row`,a=wc(`slicc-layout__divider slicc-layout__divider--${i?`h`:`v`}`);return a.dataset.zone=e,a.addEventListener(`pointerdown`,t=>{this.#f(t,e,i,n)}),a}buildZoneDivider(e,t,n,r,i){if(i)return null;let a=wc(`slicc-layout__divider slicc-layout__divider--zone slicc-layout__divider--${n?`h`:`v`}`);return a.dataset.zoneBefore=e,a.dataset.zoneAfter=t,a.addEventListener(`pointerdown`,i=>{this.#i(i,e,t,n,r)}),a}#i(e,t,n,r,i){e.preventDefault();let a=t===`center`?n:t,o=a===t?1:-1,s=i.querySelector(`:scope > [data-zone="${a}"]`);if(!(s instanceof HTMLElement))return;this.#e.setPointerCapture(e.pointerId);let c=s.getBoundingClientRect(),l=r?c.width:c.height,u=r?e.clientX:e.clientY,d=i.getBoundingClientRect(),f=r?d.width:d.height,p=0;for(let e of Array.from(i.children)){if(!(e instanceof HTMLElement)||e===s)continue;let t=e.getBoundingClientRect(),n=r?t.width:t.height,i=e.dataset.zone===`center`||e.classList.contains(`slicc-layout__work-row`);p+=i?xc:n}let m=Math.max(xc,f-p),h=l,g=e=>{let t=r?e.clientX:e.clientY;h=Math.max(xc,Math.min(m,l+(t-u)*o)),this.#e.applyZoneResize(a,`${Math.round(h)}px`),this.#e.rerender()},_=()=>{window.removeEventListener(`pointermove`,g),window.removeEventListener(`pointerup`,_),window.removeEventListener(`pointercancel`,_),this.#e.hasPointerCapture(e.pointerId)&&this.#e.releasePointerCapture(e.pointerId),this.#e.applyZoneResize(a,`${Math.round(h)}px`),this.#e.commitResize()};window.addEventListener(`pointermove`,g),window.addEventListener(`pointerup`,_),window.addEventListener(`pointercancel`,_)}#a(e,t){this.#e.isLocked(t)||(e.preventDefault(),this.#r={panelId:t,zone:null},this.#t.textContent=t,this.#t.classList.add(`slicc-layout__ghost--active`),this.#c(e),this.#o(),window.addEventListener(`pointermove`,this.#l),window.addEventListener(`pointerup`,this.#d))}#o(){let e=this.#e.querySelector(`.slicc-layout__work`);if(!(e instanceof HTMLElement))return;let t=e.getBoundingClientRect();for(let e of Lt)this.#n.appendChild(Oc(e,t));this.#n.classList.add(`slicc-layout__targets--active`)}#s(e){for(let t of Array.from(this.#n.children))t.classList.toggle(`slicc-layout__target--hot`,t===e)}#c(e){this.#t.style.left=`${e.clientX}px`,this.#t.style.top=`${e.clientY}px`}#l=e=>{let t=this.#r;if(!t)return;this.#c(e),t.zone=null;let n=document.elementFromPoint(e.clientX,e.clientY),r=n?.closest(`.slicc-layout__target`);if(r instanceof HTMLElement){let e=r.dataset.zone;if(e){t.zone=e,this.#s(r);return}}let i=n?.closest(`.slicc-layout__zone`),a=i instanceof HTMLElement?i.dataset.zone:null;t.zone=a,this.#s(a?this.#u(a):null)};#u(e){return this.#n.querySelector(`.slicc-layout__target[data-zone="${e}"]`)}#d=()=>{let e=this.#r;this.cancel(),e?.zone&&this.#e.applyMove(e.panelId,e.zone)};#f(e,t,n,r){e.preventDefault();let i=e.currentTarget,a=Array.from(r.querySelectorAll(`:scope > .slicc-layout__slot`)),o=Array.from(r.children).slice(0,Array.from(r.children).indexOf(i)).filter(e=>e.classList.contains(`slicc-layout__slot`)).length;if(o<1||o>=a.length)return;this.#e.setPointerCapture(e.pointerId);let s=a.map(e=>{let t=e.getBoundingClientRect();return Math.max(1,n?t.width:t.height)}),c=s.reduce((e,t)=>e+t,0),l=s.map(e=>e/c*s.length),u=r.getBoundingClientRect(),d=n?u.width:u.height,f=n?e.clientX:e.clientY,p=l.reduce((e,t)=>e+t,0),m=l[o-1]+l[o],h=m*bc,g=l[o-1],_=l,v=e=>{let r=n?e.clientX:e.clientY,i=d>0?(r-f)/d*p:0,a=Math.max(h,Math.min(m-h,g+i));_=[...l],_[o-1]=a,_[o]=m-a,this.#e.applyResize(t,_),this.#e.rerender()},y=()=>{window.removeEventListener(`pointermove`,v),window.removeEventListener(`pointerup`,y),window.removeEventListener(`pointercancel`,y),this.#e.hasPointerCapture(e.pointerId)&&this.#e.releasePointerCapture(e.pointerId),this.#e.applyResize(t,_),this.#e.commitResize()};window.addEventListener(`pointermove`,v),window.addEventListener(`pointerup`,y),window.addEventListener(`pointercancel`,y)}};function wc(e){let t=document.createElement(`div`);return t.className=e,t}var Tc={top:`arrow-up`,bottom:`arrow-down`,left:`arrow-left`,right:`arrow-right`,center:`square`},Ec=56,Dc=16;function Oc(e,t){let n=wc(`slicc-layout__target slicc-layout__target--${e}`);n.dataset.zone=e,n.title=`Move to ${Sc[e]}`,n.appendChild(i(Tc[e],{size:20}));let r=wc(`slicc-layout__target-label`);r.textContent=Sc[e],n.appendChild(r);let a=t.left+t.width/2-Ec/2,o=t.top+t.height/2-Ec/2,[s,c]={center:[a,o],top:[a,t.top+Dc],bottom:[a,t.bottom-Ec-Dc],left:[t.left+Dc,o],right:[t.right-Ec-Dc,o]}[e];return n.style.left=`${s}px`,n.style.top=`${c}px`,n}var kc=`
4008
4010
  /* The corner grip: hidden until the slot is hovered, mirroring the dock-tree's
4009
4011
  (and slicc-file-tree's) hover-reveal action pattern — a persistent title bar on
4010
4012
  every panel was the thing the redesign set out to remove. */
@@ -4110,7 +4112,7 @@ slicc-layout .slicc-layout__target--hot {
4110
4112
  color: #fff;
4111
4113
  transform: scale(1.12);
4112
4114
  }
4113
- `,vs=`
4115
+ `,Ac=`
4114
4116
  [data-slicc-panel] {
4115
4117
  display: flex;
4116
4118
  flex-direction: column;
@@ -4149,7 +4151,7 @@ slicc-layout .slicc-layout__target--hot {
4149
4151
  [data-slicc-panel][presentation="floating"][anchor="center"] {
4150
4152
  top: 50%; left: 50%; transform: translate(-50%, -50%);
4151
4153
  }
4152
- `,ys=`slicc-panel-style`;function bs(e){if(e.getElementById(ys))return;let t=e.createElement(`style`);t.id=ys,t.textContent=vs,(e.head??e.documentElement).appendChild(t)}var xs=`data-slicc-panel`;F(`slicc-panel`,class extends HTMLElement{static observedAttributes=[`panel-id`,`hidden`,`locked`,`presentation`,`anchor`];static panelMeta;#e=null;connectedCallback(){bs(this.ownerDocument),this.setAttribute(xs,``),this.setAttribute(`part`,`panel`),this.hasAttribute(`presentation`)||this.setAttribute(`presentation`,this.presentation),!this.hasAttribute(`anchor`)&&this.anchor&&this.setAttribute(`anchor`,this.anchor),this.#t(),this.visible&&this.onPanelShow?.()}disconnectedCallback(){this.#e?.disconnect(),this.#e=null}attributeChangedCallback(e,t,n){if(!this.isConnected||t===n||e!==`hidden`)return;let r=this.visible;r?this.onPanelShow?.():this.onPanelHide?.(),this.dispatchEvent(new CustomEvent(`slicc-panel-visibility`,{bubbles:!0,composed:!0,detail:{panelId:this.panelId,visible:r}}))}get panelId(){return this.getAttribute(`panel-id`)??ye(this.constructor)?.id??null}set panelId(e){e==null?this.removeAttribute(`panel-id`):this.setAttribute(`panel-id`,e)}get visible(){return!this.hasAttribute(`hidden`)}set visible(e){this.toggleAttribute(`hidden`,!e)}get locked(){return this.hasAttribute(`locked`)}set locked(e){this.toggleAttribute(`locked`,e)}get presentation(){let e=this.getAttribute(`presentation`);return e===`floating`||e===`docked`?e:ye(this.constructor)?.presentation??`docked`}set presentation(e){this.setAttribute(`presentation`,e)}get anchor(){let e=this.getAttribute(`anchor`);return ve(e)?e:ye(this.constructor)?.anchor??null}set anchor(e){e==null?this.removeAttribute(`anchor`):this.setAttribute(`anchor`,e)}get meta(){return ye(this.constructor)}#t(){!this.onPanelResize||typeof ResizeObserver>`u`||(this.#e=new ResizeObserver(e=>{let t=e[0]?.contentRect;t&&this.onPanelResize?.(t)}),this.#e.observe(this))}});var Ss=`
4154
+ `,jc=`slicc-panel-style`;function Mc(e){if(e.getElementById(jc))return;let t=e.createElement(`style`);t.id=jc,t.textContent=Ac,(e.head??e.documentElement).appendChild(t)}var Nc=`data-slicc-panel`;F(`slicc-panel`,class extends HTMLElement{static observedAttributes=[`panel-id`,`hidden`,`locked`,`presentation`,`anchor`];static panelMeta;#e=null;connectedCallback(){Mc(this.ownerDocument),this.setAttribute(Nc,``),this.setAttribute(`part`,`panel`),this.hasAttribute(`presentation`)||this.setAttribute(`presentation`,this.presentation),!this.hasAttribute(`anchor`)&&this.anchor&&this.setAttribute(`anchor`,this.anchor),this.#t(),this.visible&&this.onPanelShow?.()}disconnectedCallback(){this.#e?.disconnect(),this.#e=null}attributeChangedCallback(e,t,n){if(!this.isConnected||t===n||e!==`hidden`)return;let r=this.visible;r?this.onPanelShow?.():this.onPanelHide?.(),this.dispatchEvent(new CustomEvent(`slicc-panel-visibility`,{bubbles:!0,composed:!0,detail:{panelId:this.panelId,visible:r}}))}get panelId(){return this.getAttribute(`panel-id`)??M(this.constructor)?.id??null}set panelId(e){e==null?this.removeAttribute(`panel-id`):this.setAttribute(`panel-id`,e)}get visible(){return!this.hasAttribute(`hidden`)}set visible(e){this.toggleAttribute(`hidden`,!e)}get locked(){return this.hasAttribute(`locked`)}set locked(e){this.toggleAttribute(`locked`,e)}get presentation(){let e=this.getAttribute(`presentation`);return e===`floating`||e===`docked`?e:M(this.constructor)?.presentation??`docked`}set presentation(e){this.setAttribute(`presentation`,e)}get anchor(){let e=this.getAttribute(`anchor`);return Tt(e)?e:M(this.constructor)?.anchor??null}set anchor(e){e==null?this.removeAttribute(`anchor`):this.setAttribute(`anchor`,e)}get meta(){return M(this.constructor)}#t(){!this.onPanelResize||typeof ResizeObserver>`u`||(this.#e=new ResizeObserver(e=>{let t=e[0]?.contentRect;t&&this.onPanelResize?.(t)}),this.#e.observe(this))}});var Pc=`
4153
4155
  slicc-layout {
4154
4156
  display: flex;
4155
4157
  flex-direction: column;
@@ -4248,7 +4250,7 @@ slicc-layout .slicc-layout__zone {
4248
4250
  sit side by side or stacked — see zoneAxis(). */
4249
4251
  slicc-layout .slicc-layout__zone[data-axis='row'] { flex-direction: row; }
4250
4252
  slicc-layout .slicc-layout__zone[data-axis='col'] { flex-direction: column; }
4251
- ${_s}`,Cs=`slicc-layout-style`;function ws(e){if(e.getElementById(Cs))return;let t=e.createElement(`style`);t.id=Cs,t.textContent=Ss,(e.head??e.documentElement).appendChild(t)}function Ts(e,t){let n=document.createElement(e);return n.className=t,n}var Es=class extends HTMLElement{static observedAttributes=[`platform`];#e=O();#t=null;#n=!1;#r=Ts(`div`,`slicc-layout__root`);#i=Ts(`div`,`slicc-layout__parking`);#a=new Set;#o=null;#s=null;#c=0;#l=new MutationObserver(()=>this.#f());#u=new ds(this);connectedCallback(){ws(this.ownerDocument),this.#n=!0,this.#r.parentElement!==this&&this.append(this.#r),this.#i.parentElement!==this&&this.append(this.#i);for(let e of this.#u.overlays())e.parentElement!==this&&this.append(e);this.#v(),this.#f(),this.#l.observe(this,{childList:!0})}disconnectedCallback(){this.#n=!1,this.#l.disconnect(),this.#u.cancel(),this.#s?.disconnect(),this.#s=null,this.#c&&cancelAnimationFrame(this.#c),this.#c=0}attributeChangedCallback(e,t,n){e!==`platform`||t===n||!this.#n||this.#f(`environment`)}setLayout(e){this.#e=e?k(e):O(),this.#n&&this.#f(`set`)}getLayout(){return k(this.#e)}getResolved(){return this.#t?k(this.#t):null}getPlacedPanelIds(){return this.#t?Ie(this.#t).filter(e=>this.#a.has(e)):[]}isLocked(e){let t=this.#o??this.#t;return t?Ue(t,e):!1}environment(){let e=this.getBoundingClientRect(),t=this.getAttribute(`platform`);return{width:e.width,height:e.height,platform:t===`web`||t===`extension`||t===`electron`?t:void 0}}#d(){let e=new Map;for(let t of Array.from(this.querySelectorAll(`[${xs}]`))){if(!(t instanceof HTMLElement)||t.parentElement?.closest(`[data-slicc-panel]`))continue;let n=t.getAttribute(`panel-id`);n&&e.set(n,t)}return e}#f(e=`set`,t){let n=He(this.#e,this.environment());this.#o=n;let r=this.#d(),i=new Set,a=e=>this.#p(n,e,r,i),o=Ts(`div`,`slicc-layout__row`),s=a(`left`),c=a(`right`);s&&o.appendChild(s);let l=this.#m(n,r,i);l.style.flex=`1 1 0`,o.appendChild(l),c&&o.appendChild(c);let u=[],d=a(`top`);d&&u.push(d),u.push(o);let f=a(`bottom`);f&&u.push(f);let p=this.#g(n,r,i);p&&u.push(p);for(let[e,t]of r)i.has(e)||t.parentElement!==this.#i&&this.#i.appendChild(t);this.#r.replaceChildren(...u),this.#l.takeRecords(),this.#t=n,this.#a=i,this.#o=null,!t?.silent&&this.dispatchEvent(new CustomEvent(`slicc-layout-change`,{bubbles:!0,composed:!0,detail:{layout:k(n),reason:e}}))}#p(e,t,n,r){let i=e.docks.filter(e=>e.edge===t);if(i.length===0)return null;let a=[];for(let o of i){let i=Ts(`div`,`slicc-layout__dock slicc-layout__dock--${t}`);i.dataset.edge=t;let s=!1;for(let t of o.panels){let a=n.get(t);!a||e.panels[t]?.visible===!1||(this.#_(a,e,t),i.appendChild(a),r.add(t),s=!0)}s&&(i.style.flex=o.size==null?`0 0 auto`:Ge(o.size),a.push(i))}if(a.length===0)return null;if(a.length===1)return a[0];let o=Ts(`div`,`slicc-layout__dockstack slicc-layout__dockstack--${t}`);return o.dataset.edge=t,o.append(...a),o.style.flex=`0 0 auto`,o}#m(e,t,n){let r=e.zones??(e.center?Be(e.center):{}),i=Ts(`div`,`slicc-layout__work`),a=i=>{let a=e.locked||(r.locked??[]).includes(i),o=(r[i]??[]).map(r=>this.#h(r,i,e,t,n)).filter(e=>e!==null);if(o.length===0)return null;let s=Ts(`div`,`slicc-layout__zone slicc-layout__zone--${i}`);s.dataset.zone=i;let c=Ne(r,i);s.dataset.axis=c,o.forEach((e,t)=>{if(t>0){let e=this.#u.buildZonePanelDivider(i,c,s,a);e&&s.appendChild(e)}s.appendChild(e)});let l=r.sizes?.[i];return s.style.flex=i===`center`?`1 1 0`:Ge(l??void 0),s},o=(t,n,i)=>{let o=n.map(e=>({zone:e,element:a(e)})).filter(e=>!!e.element);o.forEach((n,a)=>{if(a>0){let s=o[a-1].zone,c=e.locked||(r.locked??[]).includes(s)||(r.locked??[]).includes(n.zone),l=this.#u.buildZoneDivider(s,n.zone,i,t,c);l&&t.appendChild(l)}t.appendChild(n.element)})},s=Ts(`div`,`slicc-layout__work-row`);o(s,[`left`,`center`,`right`],!0);let c=a(`top`),l=a(`bottom`),u=[];return c&&u.push({zone:`top`,element:c}),u.push({zone:`center`,element:s}),l&&u.push({zone:`bottom`,element:l}),u.forEach((t,n)=>{if(n>0){let a=u[n-1].zone,o=e.locked||(r.locked??[]).includes(a)||(r.locked??[]).includes(t.zone),s=this.#u.buildZoneDivider(a,t.zone,!1,i,o);s&&i.appendChild(s)}i.appendChild(t.element)}),i}#h(e,t,n,r,i){let a=r.get(e);if(!a||n.panels[e]?.visible===!1)return null;let o=Ts(`div`,`slicc-layout__slot`);return o.dataset.panelId=e,o.dataset.zone=t,o.style.flex=Ge(n.panels[e]?.size??void 0),this.#_(a,n,e),o.appendChild(a),this.#u.decorateSlot(o,e),i.add(e),o}applyMove(e,t){if(this.isLocked(e))return;let n=ss(this.#e,this.environment()),r=n.zones??Be(n.center??null),i=Re(r,e,t);i===r&&n.zones||(n.zones=i,n.center=null,this.#f(`rearrange`))}applyResize(e,t){let n=ss(this.#e,this.environment()).zones,r=n?.[e];if(!n||!r||r.length!==t.length)return;let i={...this.#e.panels??{}};r.forEach((e,n)=>{i[e]={...i[e],size:t[n]}}),this.#e.panels=i}applyZoneResize(e,t){let n=ss(this.#e,this.environment());n.zones&&(n.zones.sizes={...n.zones.sizes,[e]:t})}rerender(){this.#f(`resize`,{silent:!0})}commitResize(){this.#f(`resize`)}#g(e,t,n){if(e.floating.length===0)return null;let r=Ts(`div`,`slicc-layout__floating`),i=!1;for(let a of e.floating){let o=t.get(a.panel);!o||e.panels[a.panel]?.visible===!1||(this.#_(o,e,a.panel),o.setAttribute(`presentation`,`floating`),a.anchor&&o.setAttribute(`anchor`,a.anchor),a.width!=null&&(o.style.width=Ds(a.width)),a.height!=null&&(o.style.height=Ds(a.height)),r.appendChild(o),n.add(a.panel),i=!0)}return i?r:null}#_(e,t,n){e.toggleAttribute(`locked`,Ue(t,n)),e.removeAttribute(`hidden`),e.setAttribute(`presentation`,`docked`),e.removeAttribute(`anchor`),e.style.removeProperty(`width`),e.style.removeProperty(`height`)}#v(){typeof ResizeObserver>`u`||(this.#s=new ResizeObserver(()=>{this.#e.variants?.length&&(this.#c||=requestAnimationFrame(()=>{this.#c=0;let e=He(this.#e,this.environment()),t=this.#t?.appliedVariants.join(`,`)??``;e.appliedVariants.join(`,`)!==t&&this.#f(`viewport`)}))}),this.#s.observe(this))}};function Ds(e){return typeof e==`number`?`${e}px`:e}F(`slicc-layout`,Es);var Os=`weekly`;function ks(e){return e.status===`rate-limited`||e.percent>=95?`critical`:e.percent>=80?`warn`:`ok`}function As(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e/100)):0}function js(e){if(!Number.isFinite(e))return`0`;let t=Math.max(0,e);return String(t<10?Number(t.toFixed(1)):Math.round(t))}function Ms(e){return`${js(e)}%`}function Ns(e){return`${e.window??Os} budget`}function Ps(e){let t=[`${Ms(e.percent)} of ${Ns(e)} used`];return e.status===`rate-limited`&&t.push(`rate-limited`),e.resets&&t.push(e.resets),t}function Fs(e){return e===`critical`?`var(--rose)`:e===`warn`?`var(--waffle)`:`var(--green)`}var Is={offline:`#94a3b8`,connecting:`#f59e0b`,live:`#22c55e`,stalled:`#eab308`,reconnecting:`#f97316`,error:`#ef4444`},Ls={offline:`color-mix(in srgb, #94a3b8 18%, transparent)`,connecting:`color-mix(in srgb, #f59e0b 28%, transparent)`,live:`color-mix(in srgb, #22c55e 22%, transparent)`,stalled:`color-mix(in srgb, #eab308 26%, transparent)`,reconnecting:`color-mix(in srgb, #f97316 28%, transparent)`,error:`color-mix(in srgb, #ef4444 24%, transparent)`},Rs={offline:`offline`,connecting:`connecting`,live:`live`,stalled:`leader busy`,reconnecting:`reconnecting`,error:`connection error`},zs={npx:`terminal`,sliccstart:`monitor`,extension:`blocks`,standalone:`monitor`,cherry:`frame`,electron:`laptop`,hosted:`cloud`},Bs={npx:`npx`,sliccstart:`sliccstart`,extension:`extension`,standalone:`standalone`,cherry:`cherry`,electron:`electron`,hosted:`hosted`},Vs={leader:`crown`,follower:`radio`},Hs={none:`local`,leader:`leading tray`,follower:`following tray`};function Us(e){return zs[e]}function Ws(e){return Bs[e]}function Gs(e){return Is[e]}function Ks(e){return Ls[e]}function qs(e){return Rs[e]}function Js(e){return e===`none`?null:Vs[e]}function Ys(e){return Hs[e]}function Xs(e){return e===`connecting`||e===`reconnecting`}function Zs(){return{connection:`offline`,floatKind:`standalone`,trayRole:`none`}}function Qs(e){return[Ws(e.floatKind),Ys(e.trayRole),qs(e.connection)].join(` · `)}var $s=R(`
4253
+ ${kc}`,Fc=`slicc-layout-style`;function Ic(e){if(e.getElementById(Fc))return;let t=e.createElement(`style`);t.id=Fc,t.textContent=Pc,(e.head??e.documentElement).appendChild(t)}function Lc(e,t){let n=document.createElement(e);return n.className=t,n}var Rc=class extends HTMLElement{static observedAttributes=[`platform`];#e=Bt();#t=null;#n=!1;#r=Lc(`div`,`slicc-layout__root`);#i=Lc(`div`,`slicc-layout__parking`);#a=new Set;#o=null;#s=null;#c=0;#l=new MutationObserver(()=>this.#f());#u=new Cc(this);connectedCallback(){Ic(this.ownerDocument),this.#n=!0,this.#r.parentElement!==this&&this.append(this.#r),this.#i.parentElement!==this&&this.append(this.#i);for(let e of this.#u.overlays())e.parentElement!==this&&this.append(e);this.#v(),this.#f(),this.#l.observe(this,{childList:!0})}disconnectedCallback(){this.#n=!1,this.#l.disconnect(),this.#u.cancel(),this.#s?.disconnect(),this.#s=null,this.#c&&cancelAnimationFrame(this.#c),this.#c=0}attributeChangedCallback(e,t,n){e!==`platform`||t===n||!this.#n||this.#f(`environment`)}setLayout(e){this.#e=e?N(e):Bt(),this.#n&&this.#f(`set`)}getLayout(){return N(this.#e)}getResolved(){return this.#t?N(this.#t):null}getPlacedPanelIds(){return this.#t?Ut(this.#t).filter(e=>this.#a.has(e)):[]}isLocked(e){let t=this.#o??this.#t;return t?Xt(t,e):!1}environment(){let e=this.getBoundingClientRect(),t=this.getAttribute(`platform`);return{width:e.width,height:e.height,platform:t===`web`||t===`extension`||t===`electron`?t:void 0}}#d(){let e=new Map;for(let t of Array.from(this.querySelectorAll(`[${Nc}]`))){if(!(t instanceof HTMLElement)||t.parentElement?.closest(`[data-slicc-panel]`))continue;let n=t.getAttribute(`panel-id`);n&&e.set(n,t)}return e}#f(e=`set`,t){let n=Yt(this.#e,this.environment());this.#o=n;let r=this.#d(),i=new Set,a=e=>this.#p(n,e,r,i),o=Lc(`div`,`slicc-layout__row`),s=a(`left`),c=a(`right`);s&&o.appendChild(s);let l=this.#m(n,r,i);l.style.flex=`1 1 0`,o.appendChild(l),c&&o.appendChild(c);let u=[],d=a(`top`);d&&u.push(d),u.push(o);let f=a(`bottom`);f&&u.push(f);let p=this.#g(n,r,i);p&&u.push(p);for(let[e,t]of r)i.has(e)||t.parentElement!==this.#i&&this.#i.appendChild(t);this.#r.replaceChildren(...u),this.#l.takeRecords(),this.#t=n,this.#a=i,this.#o=null,!t?.silent&&this.dispatchEvent(new CustomEvent(`slicc-layout-change`,{bubbles:!0,composed:!0,detail:{layout:N(n),reason:e}}))}#p(e,t,n,r){let i=e.docks.filter(e=>e.edge===t);if(i.length===0)return null;let a=[];for(let o of i){let i=Lc(`div`,`slicc-layout__dock slicc-layout__dock--${t}`);i.dataset.edge=t;let s=!1;for(let t of o.panels){let a=n.get(t);!a||e.panels[t]?.visible===!1||(this.#_(a,e,t),i.appendChild(a),r.add(t),s=!0)}s&&(i.style.flex=o.size==null?`0 0 auto`:Qt(o.size),a.push(i))}if(a.length===0)return null;if(a.length===1)return a[0];let o=Lc(`div`,`slicc-layout__dockstack slicc-layout__dockstack--${t}`);return o.dataset.edge=t,o.append(...a),o.style.flex=`0 0 auto`,o}#m(e,t,n){let r=e.zones??(e.center?qt(e.center):{}),i=Lc(`div`,`slicc-layout__work`),a=i=>{let a=e.locked||(r.locked??[]).includes(i),o=(r[i]??[]).map(r=>this.#h(r,i,e,t,n)).filter(e=>e!==null);if(o.length===0)return null;let s=Lc(`div`,`slicc-layout__zone slicc-layout__zone--${i}`);s.dataset.zone=i;let c=zt(r,i);s.dataset.axis=c,o.forEach((e,t)=>{if(t>0){let e=this.#u.buildZonePanelDivider(i,c,s,a);e&&s.appendChild(e)}s.appendChild(e)});let l=r.sizes?.[i];return s.style.flex=i===`center`?`1 1 0`:Qt(l??void 0),s},o=(t,n,i)=>{let o=n.map(e=>({zone:e,element:a(e)})).filter(e=>!!e.element);o.forEach((n,a)=>{if(a>0){let s=o[a-1].zone,c=e.locked||(r.locked??[]).includes(s)||(r.locked??[]).includes(n.zone),l=this.#u.buildZoneDivider(s,n.zone,i,t,c);l&&t.appendChild(l)}t.appendChild(n.element)})},s=Lc(`div`,`slicc-layout__work-row`);o(s,[`left`,`center`,`right`],!0);let c=a(`top`),l=a(`bottom`),u=[];return c&&u.push({zone:`top`,element:c}),u.push({zone:`center`,element:s}),l&&u.push({zone:`bottom`,element:l}),u.forEach((t,n)=>{if(n>0){let a=u[n-1].zone,o=e.locked||(r.locked??[]).includes(a)||(r.locked??[]).includes(t.zone),s=this.#u.buildZoneDivider(a,t.zone,!1,i,o);s&&i.appendChild(s)}i.appendChild(t.element)}),i}#h(e,t,n,r,i){let a=r.get(e);if(!a||n.panels[e]?.visible===!1)return null;let o=Lc(`div`,`slicc-layout__slot`);return o.dataset.panelId=e,o.dataset.zone=t,o.style.flex=Qt(n.panels[e]?.size??void 0),this.#_(a,n,e),o.appendChild(a),this.#u.decorateSlot(o,e),i.add(e),o}applyMove(e,t){if(this.isLocked(e))return;let n=yc(this.#e,this.environment()),r=n.zones??qt(n.center??null),i=Gt(r,e,t);i===r&&n.zones||(n.zones=i,n.center=null,this.#f(`rearrange`))}applyResize(e,t){let n=yc(this.#e,this.environment()).zones,r=n?.[e];if(!n||!r||r.length!==t.length)return;let i={...this.#e.panels??{}};r.forEach((e,n)=>{i[e]={...i[e],size:t[n]}}),this.#e.panels=i}applyZoneResize(e,t){let n=yc(this.#e,this.environment());n.zones&&(n.zones.sizes={...n.zones.sizes,[e]:t})}rerender(){this.#f(`resize`,{silent:!0})}commitResize(){this.#f(`resize`)}#g(e,t,n){if(e.floating.length===0)return null;let r=Lc(`div`,`slicc-layout__floating`),i=!1;for(let a of e.floating){let o=t.get(a.panel);!o||e.panels[a.panel]?.visible===!1||(this.#_(o,e,a.panel),o.setAttribute(`presentation`,`floating`),a.anchor&&o.setAttribute(`anchor`,a.anchor),a.width!=null&&(o.style.width=zc(a.width)),a.height!=null&&(o.style.height=zc(a.height)),r.appendChild(o),n.add(a.panel),i=!0)}return i?r:null}#_(e,t,n){e.toggleAttribute(`locked`,Xt(t,n)),e.removeAttribute(`hidden`),e.setAttribute(`presentation`,`docked`),e.removeAttribute(`anchor`),e.style.removeProperty(`width`),e.style.removeProperty(`height`)}#v(){typeof ResizeObserver>`u`||(this.#s=new ResizeObserver(()=>{this.#e.variants?.length&&(this.#c||=requestAnimationFrame(()=>{this.#c=0;let e=Yt(this.#e,this.environment()),t=this.#t?.appliedVariants.join(`,`)??``;e.appliedVariants.join(`,`)!==t&&this.#f(`viewport`)}))}),this.#s.observe(this))}};function zc(e){return typeof e==`number`?`${e}px`:e}F(`slicc-layout`,Rc);var Bc=`weekly`;function Vc(e){return e.status===`rate-limited`||e.percent>=95?`critical`:e.percent>=80?`warn`:`ok`}function Hc(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e/100)):0}function Uc(e){if(!Number.isFinite(e))return`0`;let t=Math.max(0,e);return String(t<10?Number(t.toFixed(1)):Math.round(t))}function Wc(e){return`${Uc(e)}%`}function Gc(e){return`${e.window??Bc} budget`}function Kc(e){let t=[`${Wc(e.percent)} of ${Gc(e)} used`];return e.status===`rate-limited`&&t.push(`rate-limited`),e.resets&&t.push(e.resets),t}function qc(e){return e===`critical`?`var(--rose)`:e===`warn`?`var(--waffle)`:`var(--green)`}var Jc={offline:`#94a3b8`,connecting:`#f59e0b`,live:`#22c55e`,stalled:`#eab308`,reconnecting:`#f97316`,error:`#ef4444`},Yc={offline:`color-mix(in srgb, #94a3b8 18%, transparent)`,connecting:`color-mix(in srgb, #f59e0b 28%, transparent)`,live:`color-mix(in srgb, #22c55e 22%, transparent)`,stalled:`color-mix(in srgb, #eab308 26%, transparent)`,reconnecting:`color-mix(in srgb, #f97316 28%, transparent)`,error:`color-mix(in srgb, #ef4444 24%, transparent)`},Xc={offline:`offline`,connecting:`connecting`,live:`live`,stalled:`leader busy`,reconnecting:`reconnecting`,error:`connection error`},Zc={npx:`terminal`,sliccstart:`monitor`,extension:`blocks`,standalone:`monitor`,cherry:`frame`,electron:`laptop`,hosted:`cloud`},Qc={npx:`npx`,sliccstart:`sliccstart`,extension:`extension`,standalone:`standalone`,cherry:`cherry`,electron:`electron`,hosted:`hosted`},$c={leader:`crown`,follower:`radio`},el={none:`local`,leader:`leading tray`,follower:`following tray`};function tl(e){return Zc[e]}function nl(e){return Qc[e]}function rl(e){return Jc[e]}function il(e){return Yc[e]}function al(e){return Xc[e]}function ol(e){return e===`none`?null:$c[e]}function sl(e){return el[e]}function cl(e){return e===`connecting`||e===`reconnecting`}function ll(){return{connection:`offline`,floatKind:`standalone`,trayRole:`none`}}function ul(e){return[nl(e.floatKind),sl(e.trayRole),al(e.connection)].join(` · `)}var dl=L(`
4252
4254
  :host {
4253
4255
  display: inline-grid;
4254
4256
  place-items: center;
@@ -4295,7 +4297,7 @@ ${_s}`,Cs=`slicc-layout-style`;function ws(e){if(e.getElementById(Cs))return;let
4295
4297
  object-fit: cover;
4296
4298
  display: block;
4297
4299
  }
4298
- `),ec=class extends HTMLElement{static observedAttributes=[`initials`,`name`,`src`,`email`,`size`,`label`];#e;#t=0;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[$s],this.addEventListener(`click`,this.#i),this.addEventListener(`keydown`,this.#a)}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.#o()}disconnectedCallback(){this.#t++}attributeChangedCallback(e,t,n){e===`size`&&this.#r(n),this.isConnected&&this.#o()}get initials(){return this.getAttribute(`initials`)}set initials(e){e==null?this.removeAttribute(`initials`):this.setAttribute(`initials`,e)}get name(){return this.getAttribute(`name`)}set name(e){e==null?this.removeAttribute(`name`):this.setAttribute(`name`,e)}get src(){return this.getAttribute(`src`)}set src(e){e==null?this.removeAttribute(`src`):this.setAttribute(`src`,e)}get email(){return this.getAttribute(`email`)}set email(e){e==null?this.removeAttribute(`email`):this.setAttribute(`email`,e)}get size(){return this.getAttribute(`size`)}set size(e){e==null?this.removeAttribute(`size`):this.setAttribute(`size`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get resolvedInitials(){let e=this.initials;return e!=null&&e.trim()!==``?e.trim().slice(0,2).toUpperCase():nc(this.name)||`?`}async gravatarUrl(e=this.email){let t=e?.trim().toLowerCase();return t?`https://www.gravatar.com/avatar/${await tc(t)}?s=${this.#n()}&d=404`:null}#n(){let e=this.getBoundingClientRect().width;return Math.max(1,Math.round((e>0?e:30)*2))}#r(e){e==null||e.trim()===``?this.style.removeProperty(`--avatar-size`):this.style.setProperty(`--avatar-size`,e)}#i=()=>{this.dispatchEvent(new CustomEvent(`slicc-avatar-click`,{bubbles:!0,composed:!0}))};#a=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.click())};#o(){let e=++this.#t,t=this.src,n=this.email,r=this.resolvedInitials,i=this.label??this.name??(r===`?`?`Account`:r);this.setAttribute(`aria-label`,i);let a=[L(`span`,{class:`ini`,part:`initials`},r)];if(t){let n=L(`img`,{class:`img`,part:`image`,src:t,alt:i});n.addEventListener(`load`,()=>{e===this.#t&&this.#e.querySelector(`.me`)?.classList.add(`has-img`)}),n.addEventListener(`error`,()=>{e===this.#t&&(n.remove(),this.#e.querySelector(`.me`)?.classList.remove(`has-img`))}),a.push(n)}let o=L(`div`,{class:`me`,part:`avatar`},L(`slot`,null,...a));this.#e.replaceChildren(o),!t&&n&&this.#s(n,e)}#s(e,t){this.gravatarUrl(e).then(e=>{if(!e||t!==this.#t)return;let n=new Image;n.onload=()=>{if(t!==this.#t||!this.isConnected)return;let n=this.#e.querySelector(`.me`);n&&(n.style.backgroundImage=`url("${e}")`,n.classList.add(`has-img`))},n.src=e}).catch(()=>{})}};async function tc(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function nc(e){if(!e)return``;let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?``:t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}F(`slicc-avatar`,ec);var rc=R(`
4300
+ `),fl=class extends HTMLElement{static observedAttributes=[`initials`,`name`,`src`,`email`,`size`,`label`];#e;#t=0;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[dl],this.addEventListener(`click`,this.#i),this.addEventListener(`keydown`,this.#a)}connectedCallback(){this.hasAttribute(`role`)||this.setAttribute(`role`,`button`),this.hasAttribute(`tabindex`)||this.setAttribute(`tabindex`,`0`),this.#o()}disconnectedCallback(){this.#t++}attributeChangedCallback(e,t,n){e===`size`&&this.#r(n),this.isConnected&&this.#o()}get initials(){return this.getAttribute(`initials`)}set initials(e){e==null?this.removeAttribute(`initials`):this.setAttribute(`initials`,e)}get name(){return this.getAttribute(`name`)}set name(e){e==null?this.removeAttribute(`name`):this.setAttribute(`name`,e)}get src(){return this.getAttribute(`src`)}set src(e){e==null?this.removeAttribute(`src`):this.setAttribute(`src`,e)}get email(){return this.getAttribute(`email`)}set email(e){e==null?this.removeAttribute(`email`):this.setAttribute(`email`,e)}get size(){return this.getAttribute(`size`)}set size(e){e==null?this.removeAttribute(`size`):this.setAttribute(`size`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get resolvedInitials(){let e=this.initials;return e!=null&&e.trim()!==``?e.trim().slice(0,2).toUpperCase():ml(this.name)||`?`}async gravatarUrl(e=this.email){let t=e?.trim().toLowerCase();return t?`https://www.gravatar.com/avatar/${await pl(t)}?s=${this.#n()}&d=404`:null}#n(){let e=this.getBoundingClientRect().width;return Math.max(1,Math.round((e>0?e:30)*2))}#r(e){e==null||e.trim()===``?this.style.removeProperty(`--avatar-size`):this.style.setProperty(`--avatar-size`,e)}#i=()=>{this.dispatchEvent(new CustomEvent(`slicc-avatar-click`,{bubbles:!0,composed:!0}))};#a=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),this.click())};#o(){let e=++this.#t,t=this.src,n=this.email,r=this.resolvedInitials,i=this.label??this.name??(r===`?`?`Account`:r);this.setAttribute(`aria-label`,i);let a=[I(`span`,{class:`ini`,part:`initials`},r)];if(t){let n=I(`img`,{class:`img`,part:`image`,src:t,alt:i});n.addEventListener(`load`,()=>{e===this.#t&&this.#e.querySelector(`.me`)?.classList.add(`has-img`)}),n.addEventListener(`error`,()=>{e===this.#t&&(n.remove(),this.#e.querySelector(`.me`)?.classList.remove(`has-img`))}),a.push(n)}let o=I(`div`,{class:`me`,part:`avatar`},I(`slot`,null,...a));this.#e.replaceChildren(o),!t&&n&&this.#s(n,e)}#s(e,t){this.gravatarUrl(e).then(e=>{if(!e||t!==this.#t)return;let n=new Image;n.onload=()=>{if(t!==this.#t||!this.isConnected)return;let n=this.#e.querySelector(`.me`);n&&(n.style.backgroundImage=`url("${e}")`,n.classList.add(`has-img`))},n.src=e}).catch(()=>{})}};async function pl(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}function ml(e){if(!e)return``;let t=e.trim().split(/\s+/).filter(Boolean);return t.length===0?``:t.length===1?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}F(`slicc-avatar`,fl);var hl=L(`
4299
4301
  :host{display:inline-flex;vertical-align:baseline;max-width:100%;}
4300
4302
  :host([hidden]){display:none;}
4301
4303
  button{
@@ -4323,7 +4325,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
4323
4325
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
4324
4326
  font-variant-numeric:tabular-nums;
4325
4327
  }
4326
- `),ic=`file`;F(`slicc-blob-chip`,class extends HTMLElement{static observedAttributes=[`label`,`icon`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[rc]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get label(){return this.getAttribute(`label`)??``}set label(e){this.setAttribute(`label`,e)}get icon(){return this.getAttribute(`icon`)??ic}set icon(e){this.setAttribute(`icon`,e)}#t(){let e=L(`button`,{class:`chip`,part:`chip`});e.type=`button`,e.append(r(this.icon,{size:13,class:`icon`,part:`icon`}),L(`span`,{class:`label`,part:`label`},this.label)),this.#e.replaceChildren(e)}});var ac=5,oc=1;function sc(e){return e.replace(`claude-`,``)}function cc(e){return e==null||e===0?``:e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}K`:String(e)}function lc(e){if(e.length<=ac)return{individuals:e,buckets:[]};let t=[...e].sort((e,t)=>t.cost-e.cost),n=t.slice(0,ac),r=[],i={count:0,cost:0};for(let e of t.slice(ac))i.count+=1,i.cost+=e.cost,i.cost>=oc&&(r.push(i),i={count:0,cost:0});if(i.count>0){let e=r.at(-1);e?(e.count+=i.count,e.cost+=i.cost):r.push(i)}return{individuals:n,buckets:r}}var uc=R(`
4328
+ `),gl=`file`;F(`slicc-blob-chip`,class extends HTMLElement{static observedAttributes=[`label`,`icon`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[hl]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get label(){return this.getAttribute(`label`)??``}set label(e){this.setAttribute(`label`,e)}get icon(){return this.getAttribute(`icon`)??gl}set icon(e){this.setAttribute(`icon`,e)}#t(){let e=I(`button`,{class:`chip`,part:`chip`});e.type=`button`,e.append(i(this.icon,{size:13,class:`icon`,part:`icon`}),I(`span`,{class:`label`,part:`label`},this.label)),this.#e.replaceChildren(e)}});var _l=5,vl=1;function yl(e){return e.replace(`claude-`,``)}function bl(e){return e==null||e===0?``:e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(0)}K`:String(e)}function xl(e){if(e.length<=_l)return{individuals:e,buckets:[]};let t=[...e].sort((e,t)=>t.cost-e.cost),n=t.slice(0,_l),r=[],i={count:0,cost:0};for(let e of t.slice(_l))i.count+=1,i.cost+=e.cost,i.cost>=vl&&(r.push(i),i={count:0,cost:0});if(i.count>0){let e=r.at(-1);e?(e.count+=i.count,e.cost+=i.cost):r.push(i)}return{individuals:n,buckets:r}}var Sl=L(`
4327
4329
  :host {
4328
4330
  position: absolute;
4329
4331
  top: calc(100% + 8px);
@@ -4512,7 +4514,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
4512
4514
  font-variant-numeric: tabular-nums;
4513
4515
  color: var(--ink);
4514
4516
  }
4515
- `);F(`slicc-cost-overlay`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=[];#n=[];#r=null;#i=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[uc]}connectedCallback(){this.#o()}attributeChangedCallback(){this.isConnected&&this.#o()}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,!!e)}get models(){return this.#t}set models(e){this.#t=e,this.isConnected&&this.#o()}get scoops(){return this.#n}set scoops(e){this.#n=e,this.isConnected&&this.#o()}get total(){return this.#r}set total(e){this.#r=e!=null&&Number.isFinite(e)?e:null,this.isConnected&&this.#o()}get budget(){return this.#i}set budget(e){this.#i=e&&Number.isFinite(e.percent)?e:null,this.isConnected&&this.#o()}#a(e){let t=ks(e),n=Fs(t),i=e.status===`rate-limited`;return L(`div`,{class:`section budget`,part:`budget`,"data-budget-level":t,"data-budget-status":e.status??`ok`,style:`--budget-hue:${n}`},L(`div`,{class:`section-title`},Ns(e).toUpperCase()),L(`div`,{class:`budget-head`},L(`span`,{class:`budget-figure`},Ms(e.percent)),L(`span`,{class:`budget-used`},`used`)),L(`span`,{class:`budget-meter`},L(`span`,{class:`budget-meter__fill`,style:`width:${(As(e.percent)*100).toFixed(1)}%`})),L(`div`,{class:`budget-foot`},L(`span`,{class:`budget-resets`},e.resets??``),i?L(`span`,{class:`budget-flag`},r(`octagon-alert`,{size:11}),`rate-limited`):!1))}#o(){let e=[];if(this.#i&&e.push(this.#a(this.#i)),this.#t.length>0){let t=this.#t.map(e=>{let t=cc(e.tokens);return L(`div`,{class:`model-row`},L(`span`,{class:`model-name`},sc(e.model)),t?L(`span`,{class:`model-tokens`},t):!1,L(`span`,{class:`model-cost`},`$${e.cost.toFixed(2)}`))});e.push(L(`div`,{class:`section section--models`},L(`div`,{class:`section-title`},`BY MODEL`),...t))}if(this.#n.length>0){let t=lc(this.#n),n=t.individuals.map(e=>L(`div`,{class:`scoop-row`},L(`span`,{class:`scoop-name`},e.name),L(`span`,{class:`scoop-cost`},`$${e.cost.toFixed(2)}`))),r=t.buckets.map(e=>L(`div`,{class:`bucket-row`,part:`bucket`},`${e.count} ${e.count===1?`agent`:`agents`} · $${e.cost.toFixed(2)}`));e.push(L(`div`,{class:`section section--scoops`},L(`div`,{class:`section-title`},`BY AGENT`),...n,...r))}let t=this.#r??this.#t.reduce((e,t)=>e+t.cost,0);e.push(L(`div`,{class:`total-row`},L(`span`,{class:`total-label`},this.#i?`This session`:`Total`),L(`span`,{class:`total-cost`},`$${t.toFixed(2)}`)));let n=L(`div`,{class:`card`},...e);this.#e.replaceChildren(n)}});var dc=R(`
4517
+ `);F(`slicc-cost-overlay`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=[];#n=[];#r=null;#i=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Sl]}connectedCallback(){this.#o()}attributeChangedCallback(){this.isConnected&&this.#o()}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,!!e)}get models(){return this.#t}set models(e){this.#t=e,this.isConnected&&this.#o()}get scoops(){return this.#n}set scoops(e){this.#n=e,this.isConnected&&this.#o()}get total(){return this.#r}set total(e){this.#r=e!=null&&Number.isFinite(e)?e:null,this.isConnected&&this.#o()}get budget(){return this.#i}set budget(e){this.#i=e&&Number.isFinite(e.percent)?e:null,this.isConnected&&this.#o()}#a(e){let t=Vc(e),n=qc(t),r=e.status===`rate-limited`;return I(`div`,{class:`section budget`,part:`budget`,"data-budget-level":t,"data-budget-status":e.status??`ok`,style:`--budget-hue:${n}`},I(`div`,{class:`section-title`},Gc(e).toUpperCase()),I(`div`,{class:`budget-head`},I(`span`,{class:`budget-figure`},Wc(e.percent)),I(`span`,{class:`budget-used`},`used`)),I(`span`,{class:`budget-meter`},I(`span`,{class:`budget-meter__fill`,style:`width:${(Hc(e.percent)*100).toFixed(1)}%`})),I(`div`,{class:`budget-foot`},I(`span`,{class:`budget-resets`},e.resets??``),r?I(`span`,{class:`budget-flag`},i(`octagon-alert`,{size:11}),`rate-limited`):!1))}#o(){let e=[];if(this.#i&&e.push(this.#a(this.#i)),this.#t.length>0){let t=this.#t.map(e=>{let t=bl(e.tokens);return I(`div`,{class:`model-row`},I(`span`,{class:`model-name`},yl(e.model)),t?I(`span`,{class:`model-tokens`},t):!1,I(`span`,{class:`model-cost`},`$${e.cost.toFixed(2)}`))});e.push(I(`div`,{class:`section section--models`},I(`div`,{class:`section-title`},`BY MODEL`),...t))}if(this.#n.length>0){let t=xl(this.#n),n=t.individuals.map(e=>I(`div`,{class:`scoop-row`},I(`span`,{class:`scoop-name`},e.name),I(`span`,{class:`scoop-cost`},`$${e.cost.toFixed(2)}`))),r=t.buckets.map(e=>I(`div`,{class:`bucket-row`,part:`bucket`},`${e.count} ${e.count===1?`agent`:`agents`} · $${e.cost.toFixed(2)}`));e.push(I(`div`,{class:`section section--scoops`},I(`div`,{class:`section-title`},`BY AGENT`),...n,...r))}let t=this.#r??this.#t.reduce((e,t)=>e+t.cost,0);e.push(I(`div`,{class:`total-row`},I(`span`,{class:`total-label`},this.#i?`This session`:`Total`),I(`span`,{class:`total-cost`},`$${t.toFixed(2)}`)));let n=I(`div`,{class:`card`},...e);this.#e.replaceChildren(n)}});var Cl=L(`
4516
4518
  :host {
4517
4519
  display: flex;
4518
4520
  align-items: center;
@@ -4541,7 +4543,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
4541
4543
  min-width: 0;
4542
4544
  background: var(--line, #e5e5e5);
4543
4545
  }
4544
- `);F(`slicc-day-separator`,class extends HTMLElement{static observedAttributes=[`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[dc]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.label??L(`slot`);this.#e.replaceChildren(L(`span`,{class:`label`,part:`label`},e))}});var fc=R(`
4546
+ `);F(`slicc-day-separator`,class extends HTMLElement{static observedAttributes=[`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Cl]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.label??I(`slot`);this.#e.replaceChildren(I(`span`,{class:`label`,part:`label`},e))}});var wl=L(`
4545
4547
  :host {
4546
4548
  position: absolute;
4547
4549
  top: calc(100% + 8px);
@@ -4659,7 +4661,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
4659
4661
  color: var(--txt-2);
4660
4662
  font-size: 11px;
4661
4663
  }
4662
- `);F(`slicc-follower-hud`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=[];#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[fc]}connectedCallback(){this.#r()}attributeChangedCallback(){this.isConnected&&this.#r()}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,!!e)}get rows(){return this.#t}set rows(e){this.#t=e,this.isConnected&&this.#r()}get hint(){return this.#n}set hint(e){this.#n=e&&e.trim()!==``?e:null,this.isConnected&&this.#r()}#r(){let e=this.#t.length,t=[];if(e===0)t.push(L(`div`,{class:`empty`},`No followers connected.`));else{let n=this.#t.map(e=>L(`div`,{class:`row`,part:`row`},r(e.icon,{size:14}),L(`div`,{class:`row-main`},L(`span`,{class:`row-title`},e.title),e.detail?L(`span`,{class:`row-detail`},e.detail):!1,e.chips&&e.chips.length>0?L(`div`,{class:`chips`},...e.chips.map(e=>L(`span`,{class:`chip`},e))):!1),L(`div`,{class:`row-state`},L(`span`,{class:`sdot`,"data-state":e.state}),e.stateText)));t.push(L(`div`,{class:`section`},L(`div`,{class:`section-title`},`${e} ${e===1?`follower`:`followers`}`),...n))}this.#n&&t.push(L(`div`,{class:`hint`},this.#n)),this.#e.replaceChildren(L(`div`,{class:`card`,part:`card`},...t))}});var pc=`CLI float`;function mc(e){if(e==null)return null;let t=e.trim();if(t===``)return null;let n=Number.parseFloat(t.replace(/^\$/,``));return Number.isFinite(n)?n:null}function hc(e){let t=mc(e);return t==null?null:`$${t.toFixed(2)}`}function gc(e){return`${hc(e)??`$0.00`}/h`}var _c=720,vc=R(`
4664
+ `);F(`slicc-follower-hud`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=[];#n=null;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[wl]}connectedCallback(){this.#r()}attributeChangedCallback(){this.isConnected&&this.#r()}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,!!e)}get rows(){return this.#t}set rows(e){this.#t=e,this.isConnected&&this.#r()}get hint(){return this.#n}set hint(e){this.#n=e&&e.trim()!==``?e:null,this.isConnected&&this.#r()}#r(){let e=this.#t.length,t=[];if(e===0)t.push(I(`div`,{class:`empty`},`No followers connected.`));else{let n=this.#t.map(e=>I(`div`,{class:`row`,part:`row`},i(e.icon,{size:14}),I(`div`,{class:`row-main`},I(`span`,{class:`row-title`},e.title),e.detail?I(`span`,{class:`row-detail`},e.detail):!1,e.chips&&e.chips.length>0?I(`div`,{class:`chips`},...e.chips.map(e=>I(`span`,{class:`chip`},e))):!1),I(`div`,{class:`row-state`},I(`span`,{class:`sdot`,"data-state":e.state}),e.stateText)));t.push(I(`div`,{class:`section`},I(`div`,{class:`section-title`},`${e} ${e===1?`follower`:`followers`}`),...n))}this.#n&&t.push(I(`div`,{class:`hint`},this.#n)),this.#e.replaceChildren(I(`div`,{class:`card`,part:`card`},...t))}});var Tl=`CLI float`;function El(e){if(e==null)return null;let t=e.trim();if(t===``)return null;let n=Number.parseFloat(t.replace(/^\$/,``));return Number.isFinite(n)?n:null}function Dl(e){let t=El(e);return t==null?null:`$${t.toFixed(2)}`}function Ol(e){return`${Dl(e)??`$0.00`}/h`}var kl=720,Al=L(`
4663
4665
  :host {
4664
4666
  position: relative;
4665
4667
  display: inline-flex;
@@ -4879,7 +4881,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
4879
4881
  .tip { transition: none; }
4880
4882
  .beacon[data-pulse] .beacon__ring { animation: none; }
4881
4883
  }
4882
- `);F(`slicc-floatbar`,class extends HTMLElement{static observedAttributes=[`label`,`linked`,`connection`,`float-kind`,`tray-role`,`rate`,`spent`,`budget-percent`,`budget-status`,`budget-window`,`budget-resets`];#e;#t=null;#n=null;#r=[];#i=[];#a;#o=[];#s=null;#c;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[vc]}connectedCallback(){this.#p();let e=this.closest(`slicc-nav`);e&&typeof ResizeObserver<`u`&&(this.#t=new ResizeObserver(()=>this.#f()),this.#t.observe(e))}disconnectedCallback(){this.#t?.disconnect(),this.#t=null,clearTimeout(this.#a),clearTimeout(this.#c)}attributeChangedCallback(e,t,n){t!==n&&this.isConnected&&this.#p()}get label(){return this.getAttribute(`label`)??pc}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get linked(){return this.hasAttribute(`linked`)}set linked(e){this.toggleAttribute(`linked`,!!e)}get connection(){let e=this.getAttribute(`connection`);return e===`connecting`||e===`live`||e===`stalled`||e===`reconnecting`||e===`error`?e:`offline`}set connection(e){e==null?this.removeAttribute(`connection`):this.setAttribute(`connection`,e)}get floatKind(){let e=this.getAttribute(`float-kind`);return e===`npx`||e===`sliccstart`||e===`extension`||e===`standalone`||e===`cherry`||e===`electron`||e===`hosted`?e:Zs().floatKind}set floatKind(e){e==null?this.removeAttribute(`float-kind`):this.setAttribute(`float-kind`,e)}get trayRole(){let e=this.getAttribute(`tray-role`);return e===`leader`||e===`follower`?e:`none`}set trayRole(e){e==null||e===`none`?this.removeAttribute(`tray-role`):this.setAttribute(`tray-role`,e)}get status(){return{connection:this.connection,floatKind:this.floatKind,trayRole:this.trayRole}}set status(e){this.connection=e.connection,this.floatKind=e.floatKind,this.trayRole=e.trayRole}get spent(){return this.getAttribute(`spent`)}set spent(e){e==null?this.removeAttribute(`spent`):this.setAttribute(`spent`,String(e))}get rate(){return this.getAttribute(`rate`)}set rate(e){e==null?this.removeAttribute(`rate`):this.setAttribute(`rate`,String(e))}get budgetPercent(){let e=this.getAttribute(`budget-percent`);if(e==null||e.trim()===``)return null;let t=Number.parseFloat(e.replace(/%$/,``));return Number.isFinite(t)?t:null}set budgetPercent(e){e==null?this.removeAttribute(`budget-percent`):this.setAttribute(`budget-percent`,String(e))}get budgetStatus(){return this.getAttribute(`budget-status`)===`rate-limited`?`rate-limited`:`ok`}set budgetStatus(e){e==null||e===`ok`?this.removeAttribute(`budget-status`):this.setAttribute(`budget-status`,e)}get budgetWindow(){return this.getAttribute(`budget-window`)}set budgetWindow(e){e==null?this.removeAttribute(`budget-window`):this.setAttribute(`budget-window`,e)}get budgetResets(){return this.getAttribute(`budget-resets`)}set budgetResets(e){e==null?this.removeAttribute(`budget-resets`):this.setAttribute(`budget-resets`,e)}get budget(){let e=this.budgetPercent;if(e==null)return null;let t={percent:e,status:this.budgetStatus},n=this.budgetWindow;n&&(t.window=n);let r=this.budgetResets;return r&&(t.resets=r),t}set budget(e){this.budgetPercent=e?e.percent:null,this.budgetStatus=e?.status??null,this.budgetWindow=e?.window??null,this.budgetResets=e?.resets??null}get costModels(){return this.#r}set costModels(e){this.#r=e,this.#n&&(this.#n.models=e)}get followers(){return this.#o}set followers(e){this.#o=e,e.length>0?this.setAttribute(`follower-count`,String(e.length)):this.removeAttribute(`follower-count`),this.isConnected?this.#p():this.#s&&(this.#s.rows=e)}get costScoops(){return this.#i}set costScoops(e){this.#i=e,this.#n&&(this.#n.scoops=e)}#l(){let e=[this.label,Qs(this.status)],t=this.#o.length;t>0&&e.push(`${t} ${t===1?`follower`:`followers`}`);let n=this.budget;if(n){e.push(...Ps(n));let t=hc(this.spent);t&&e.push(`${t} this session`)}else e.push(gc(this.rate)),e.push(`recency-weighted session avg`);return e.join(` · `)}#u(e){let t=ks(e),n=e.status===`rate-limited`?`octagon-alert`:`gauge`;return L(`span`,{class:`spent spent--budget`,part:`spent rate budget`,"data-budget-level":t,"data-budget-status":e.status??`ok`,"aria-label":Ps(e).join(` · `)},r(n,{size:12}),L(`span`,{class:`amount`},Ms(e.percent)))}#d(e){let{connection:t,floatKind:n,trayRole:i}=e,a=L(`span`,{class:`beacon__ring`,part:`beacon-ring`,style:`--beacon-fill:${Gs(t)};--beacon-glow:${Ks(t)}`}),o=L(`span`,{class:`beacon__icon`,part:`beacon-icon`},r(Us(n),{size:9,strokeWidth:2.25})),s={class:`beacon`,part:`beacon dot`,"data-connection":t,"data-float-kind":n,"aria-label":Qs({connection:t,floatKind:n,trayRole:i})};i!==`none`&&(s[`data-tray-role`]=i),Xs(t)&&(s[`data-pulse`]=``);let c=[a,o],l=Js(i);return l&&c.push(L(`span`,{class:`beacon__role`,part:`beacon-role`,"aria-hidden":`true`},r(l,{size:5,strokeWidth:2.5}))),L(`span`,s,...c)}#f(){let e=this.closest(`slicc-nav`),t=e?getComputedStyle(e):null;(e?e.clientWidth-Number.parseFloat(t?.paddingLeft??`0`)-Number.parseFloat(t?.paddingRight??`0`):1/0)<=_c?this.setAttribute(`title`,this.#l()):this.removeAttribute(`title`)}#p(){let e=[];e.push(this.#d(this.status));let[t,...n]=this.label.split(` · `),i=[L(`span`,{class:`runtime`},t)];n.length>0&&i.push(L(`span`,{class:`detail`},` · ${n.join(` · `)}`)),e.push(L(`span`,{class:`label`,part:`label`},L(`slot`,null,...i))),this.#o.length>0&&(e.push(L(`span`,{class:`sep sep--followers`,part:`sep`})),e.push(this.#m(this.#o.length))),e.push(L(`span`,{class:`sep sep--spent`,part:`sep`}));let a=this.budget,o=a?this.#u(a):L(`span`,{class:`spent`,part:`spent rate`},r(`circle-dollar-sign`,{size:12}),L(`span`,{class:`amount`},gc(this.rate)));o.addEventListener(`mouseenter`,()=>this.#v()),o.addEventListener(`mouseleave`,()=>this.#y()),e.push(o),e.push(L(`span`,{class:`tip`,part:`tip`,"aria-hidden":`true`},this.#l()));let s=this.#s?.hasAttribute(`open`)&&this.#o.length>0?this.#s:null;this.#n=null,this.#s=s,this.#e.replaceChildren(...e),s&&(s.rows=this.#o,this.#e.appendChild(s)),this.#f()}#m(e){let t=L(`button`,{class:`followers`,part:`followers`,type:`button`,"aria-haspopup":`dialog`,"aria-label":`${`${e} ${e===1?`follower`:`followers`}`} connected — open session sharing`},r(`users`,{size:12}),L(`span`,{class:`follower-count`},String(e)));return t.addEventListener(`mouseenter`,()=>this.#h()),t.addEventListener(`mouseleave`,()=>this.#g()),t.addEventListener(`focus`,()=>this.#h()),t.addEventListener(`blur`,()=>this.#g()),t.addEventListener(`keydown`,e=>{e.key===`Escape`&&this.#_()}),t.addEventListener(`click`,()=>{this.#_(),this.dispatchEvent(new CustomEvent(`slicc-followers-click`,{bubbles:!0,composed:!0}))}),t}#h(){if(clearTimeout(this.#c),!this.#s){let e=document.createElement(`slicc-follower-hud`);e.rows=this.#o,e.hint=`Click for sharing options.`,e.addEventListener(`mouseenter`,()=>this.#h()),e.addEventListener(`mouseleave`,()=>this.#g()),this.#e.appendChild(e),this.#s=e}this.#s.toggleAttribute(`open`,!0)}#g(){this.#c=setTimeout(()=>this.#_(),150)}#_(){clearTimeout(this.#c),this.#s?.removeAttribute(`open`)}#v(){if(clearTimeout(this.#a),!this.#n){let e=document.createElement(`slicc-cost-overlay`);e.models=this.#r,e.scoops=this.#i,e.total=mc(this.spent),e.budget=this.budget,e.addEventListener(`mouseenter`,()=>this.#v()),e.addEventListener(`mouseleave`,()=>this.#y()),this.#e.appendChild(e),this.#n=e}this.#n.toggleAttribute(`open`,!0)}#y(){this.#a=setTimeout(()=>{this.#n&&this.#n.removeAttribute(`open`)},150)}});var yc=R(`
4884
+ `);F(`slicc-floatbar`,class extends HTMLElement{static observedAttributes=[`label`,`linked`,`connection`,`float-kind`,`tray-role`,`rate`,`spent`,`budget-percent`,`budget-status`,`budget-window`,`budget-resets`];#e;#t=null;#n=null;#r=[];#i=[];#a;#o=[];#s=null;#c;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Al]}connectedCallback(){this.#p();let e=this.closest(`slicc-nav`);e&&typeof ResizeObserver<`u`&&(this.#t=new ResizeObserver(()=>this.#f()),this.#t.observe(e))}disconnectedCallback(){this.#t?.disconnect(),this.#t=null,clearTimeout(this.#a),clearTimeout(this.#c)}attributeChangedCallback(e,t,n){t!==n&&this.isConnected&&this.#p()}get label(){return this.getAttribute(`label`)??Tl}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get linked(){return this.hasAttribute(`linked`)}set linked(e){this.toggleAttribute(`linked`,!!e)}get connection(){let e=this.getAttribute(`connection`);return e===`connecting`||e===`live`||e===`stalled`||e===`reconnecting`||e===`error`?e:`offline`}set connection(e){e==null?this.removeAttribute(`connection`):this.setAttribute(`connection`,e)}get floatKind(){let e=this.getAttribute(`float-kind`);return e===`npx`||e===`sliccstart`||e===`extension`||e===`standalone`||e===`cherry`||e===`electron`||e===`hosted`?e:ll().floatKind}set floatKind(e){e==null?this.removeAttribute(`float-kind`):this.setAttribute(`float-kind`,e)}get trayRole(){let e=this.getAttribute(`tray-role`);return e===`leader`||e===`follower`?e:`none`}set trayRole(e){e==null||e===`none`?this.removeAttribute(`tray-role`):this.setAttribute(`tray-role`,e)}get status(){return{connection:this.connection,floatKind:this.floatKind,trayRole:this.trayRole}}set status(e){this.connection=e.connection,this.floatKind=e.floatKind,this.trayRole=e.trayRole}get spent(){return this.getAttribute(`spent`)}set spent(e){e==null?this.removeAttribute(`spent`):this.setAttribute(`spent`,String(e))}get rate(){return this.getAttribute(`rate`)}set rate(e){e==null?this.removeAttribute(`rate`):this.setAttribute(`rate`,String(e))}get budgetPercent(){let e=this.getAttribute(`budget-percent`);if(e==null||e.trim()===``)return null;let t=Number.parseFloat(e.replace(/%$/,``));return Number.isFinite(t)?t:null}set budgetPercent(e){e==null?this.removeAttribute(`budget-percent`):this.setAttribute(`budget-percent`,String(e))}get budgetStatus(){return this.getAttribute(`budget-status`)===`rate-limited`?`rate-limited`:`ok`}set budgetStatus(e){e==null||e===`ok`?this.removeAttribute(`budget-status`):this.setAttribute(`budget-status`,e)}get budgetWindow(){return this.getAttribute(`budget-window`)}set budgetWindow(e){e==null?this.removeAttribute(`budget-window`):this.setAttribute(`budget-window`,e)}get budgetResets(){return this.getAttribute(`budget-resets`)}set budgetResets(e){e==null?this.removeAttribute(`budget-resets`):this.setAttribute(`budget-resets`,e)}get budget(){let e=this.budgetPercent;if(e==null)return null;let t={percent:e,status:this.budgetStatus},n=this.budgetWindow;n&&(t.window=n);let r=this.budgetResets;return r&&(t.resets=r),t}set budget(e){this.budgetPercent=e?e.percent:null,this.budgetStatus=e?.status??null,this.budgetWindow=e?.window??null,this.budgetResets=e?.resets??null}get costModels(){return this.#r}set costModels(e){this.#r=e,this.#n&&(this.#n.models=e)}get followers(){return this.#o}set followers(e){this.#o=e,e.length>0?this.setAttribute(`follower-count`,String(e.length)):this.removeAttribute(`follower-count`),this.isConnected?this.#p():this.#s&&(this.#s.rows=e)}get costScoops(){return this.#i}set costScoops(e){this.#i=e,this.#n&&(this.#n.scoops=e)}#l(){let e=[this.label,ul(this.status)],t=this.#o.length;t>0&&e.push(`${t} ${t===1?`follower`:`followers`}`);let n=this.budget;if(n){e.push(...Kc(n));let t=Dl(this.spent);t&&e.push(`${t} this session`)}else e.push(Ol(this.rate)),e.push(`recency-weighted session avg`);return e.join(` · `)}#u(e){let t=Vc(e),n=e.status===`rate-limited`?`octagon-alert`:`gauge`;return I(`span`,{class:`spent spent--budget`,part:`spent rate budget`,"data-budget-level":t,"data-budget-status":e.status??`ok`,"aria-label":Kc(e).join(` · `)},i(n,{size:12}),I(`span`,{class:`amount`},Wc(e.percent)))}#d(e){let{connection:t,floatKind:n,trayRole:r}=e,a=I(`span`,{class:`beacon__ring`,part:`beacon-ring`,style:`--beacon-fill:${rl(t)};--beacon-glow:${il(t)}`}),o=I(`span`,{class:`beacon__icon`,part:`beacon-icon`},i(tl(n),{size:9,strokeWidth:2.25})),s={class:`beacon`,part:`beacon dot`,"data-connection":t,"data-float-kind":n,"aria-label":ul({connection:t,floatKind:n,trayRole:r})};r!==`none`&&(s[`data-tray-role`]=r),cl(t)&&(s[`data-pulse`]=``);let c=[a,o],l=ol(r);return l&&c.push(I(`span`,{class:`beacon__role`,part:`beacon-role`,"aria-hidden":`true`},i(l,{size:5,strokeWidth:2.5}))),I(`span`,s,...c)}#f(){let e=this.closest(`slicc-nav`),t=e?getComputedStyle(e):null;(e?e.clientWidth-Number.parseFloat(t?.paddingLeft??`0`)-Number.parseFloat(t?.paddingRight??`0`):1/0)<=kl?this.setAttribute(`title`,this.#l()):this.removeAttribute(`title`)}#p(){let e=[];e.push(this.#d(this.status));let[t,...n]=this.label.split(` · `),r=[I(`span`,{class:`runtime`},t)];n.length>0&&r.push(I(`span`,{class:`detail`},` · ${n.join(` · `)}`)),e.push(I(`span`,{class:`label`,part:`label`},I(`slot`,null,...r))),this.#o.length>0&&(e.push(I(`span`,{class:`sep sep--followers`,part:`sep`})),e.push(this.#m(this.#o.length))),e.push(I(`span`,{class:`sep sep--spent`,part:`sep`}));let a=this.budget,o=a?this.#u(a):I(`span`,{class:`spent`,part:`spent rate`},i(`circle-dollar-sign`,{size:12}),I(`span`,{class:`amount`},Ol(this.rate)));o.addEventListener(`mouseenter`,()=>this.#v()),o.addEventListener(`mouseleave`,()=>this.#y()),e.push(o),e.push(I(`span`,{class:`tip`,part:`tip`,"aria-hidden":`true`},this.#l()));let s=this.#s?.hasAttribute(`open`)&&this.#o.length>0?this.#s:null;this.#n=null,this.#s=s,this.#e.replaceChildren(...e),s&&(s.rows=this.#o,this.#e.appendChild(s)),this.#f()}#m(e){let t=I(`button`,{class:`followers`,part:`followers`,type:`button`,"aria-haspopup":`dialog`,"aria-label":`${`${e} ${e===1?`follower`:`followers`}`} connected — open session sharing`},i(`users`,{size:12}),I(`span`,{class:`follower-count`},String(e)));return t.addEventListener(`mouseenter`,()=>this.#h()),t.addEventListener(`mouseleave`,()=>this.#g()),t.addEventListener(`focus`,()=>this.#h()),t.addEventListener(`blur`,()=>this.#g()),t.addEventListener(`keydown`,e=>{e.key===`Escape`&&this.#_()}),t.addEventListener(`click`,()=>{this.#_(),this.dispatchEvent(new CustomEvent(`slicc-followers-click`,{bubbles:!0,composed:!0}))}),t}#h(){if(clearTimeout(this.#c),!this.#s){let e=document.createElement(`slicc-follower-hud`);e.rows=this.#o,e.hint=`Click for sharing options.`,e.addEventListener(`mouseenter`,()=>this.#h()),e.addEventListener(`mouseleave`,()=>this.#g()),this.#e.appendChild(e),this.#s=e}this.#s.toggleAttribute(`open`,!0)}#g(){this.#c=setTimeout(()=>this.#_(),150)}#_(){clearTimeout(this.#c),this.#s?.removeAttribute(`open`)}#v(){if(clearTimeout(this.#a),!this.#n){let e=document.createElement(`slicc-cost-overlay`);e.models=this.#r,e.scoops=this.#i,e.total=El(this.spent),e.budget=this.budget,e.addEventListener(`mouseenter`,()=>this.#v()),e.addEventListener(`mouseleave`,()=>this.#y()),this.#e.appendChild(e),this.#n=e}this.#n.toggleAttribute(`open`,!0)}#y(){this.#a=setTimeout(()=>{this.#n&&this.#n.removeAttribute(`open`)},150)}});var jl=L(`
4883
4885
  :host { display: inline-grid; }
4884
4886
  :host([hidden]) { display: none; }
4885
4887
  .iconbtn {
@@ -4908,7 +4910,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
4908
4910
  .iconbtn:disabled:hover { background: var(--canvas); color: var(--txt-2); }
4909
4911
  .icon { display: grid; place-items: center; pointer-events: none; }
4910
4912
  .icon svg { display: block; }
4911
- `),bc=`plus`,xc=16;F(`slicc-icon-button`,class extends HTMLElement{static observedAttributes=[`icon`,`disabled`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[yc]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get icon(){return this.getAttribute(`icon`)??bc}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){e?this.setAttribute(`disabled`,``):this.removeAttribute(`disabled`)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.label,t=L(`slot`,null,L(`span`,{class:`icon`},r(this.icon,{size:xc,part:`icon`}))),n=L(`button`,{type:`button`,class:`iconbtn`,part:`button`,"aria-label":e??void 0,title:e??void 0,disabled:this.disabled},t);this.#e.replaceChildren(n)}});var Sc=new Set([`chiclet`,`deck`,`holo`]),Cc=new Set([`top-end`,`top-start`,`bottom-end`,`bottom-start`,`end`,`start`]),z=`slicc-keycap`,wc=R(`
4913
+ `),Ml=`plus`,Nl=16;F(`slicc-icon-button`,class extends HTMLElement{static observedAttributes=[`icon`,`disabled`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[jl]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get icon(){return this.getAttribute(`icon`)??Ml}set icon(e){e==null?this.removeAttribute(`icon`):this.setAttribute(`icon`,e)}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){e?this.setAttribute(`disabled`,``):this.removeAttribute(`disabled`)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.label,t=I(`slot`,null,I(`span`,{class:`icon`},i(this.icon,{size:Nl,part:`icon`}))),n=I(`button`,{type:`button`,class:`iconbtn`,part:`button`,"aria-label":e??void 0,title:e??void 0,disabled:this.disabled},t);this.#e.replaceChildren(n)}});var Pl=new Set([`chiclet`,`deck`,`holo`]),Fl=new Set([`top-end`,`top-start`,`bottom-end`,`bottom-start`,`end`,`start`]),R=`slicc-keycap`,Il=L(`
4912
4914
  /*
4913
4915
  * The cap floats OVER its target: it pins to the nearest positioned ancestor,
4914
4916
  * which the host makes the target's own box (dock item, tab, toolbar button)
@@ -5110,29 +5112,29 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
5110
5112
  pushed in from above and rebounds, the glass swings in edge-on. The
5111
5113
  stagger makes a screenful land as a sweep across the shell. */
5112
5114
  :host([variant='chiclet']) .cap,:host(:not([variant])) .cap{
5113
- animation:${z}-drop .34s cubic-bezier(.2,1.5,.4,1) both var(--lag);
5115
+ animation:${R}-drop .34s cubic-bezier(.2,1.5,.4,1) both var(--lag);
5114
5116
  }
5115
5117
  :host([variant='deck']) .cap{
5116
- animation:${z}-punch .42s cubic-bezier(.16,1.44,.36,1) both var(--lag);
5118
+ animation:${R}-punch .42s cubic-bezier(.16,1.44,.36,1) both var(--lag);
5117
5119
  }
5118
5120
  :host([variant='holo']) .cap{
5119
- animation:${z}-swing .46s cubic-bezier(.2,1.1,.3,1) both var(--lag);
5121
+ animation:${R}-swing .46s cubic-bezier(.2,1.1,.3,1) both var(--lag);
5120
5122
  }
5121
5123
 
5122
5124
  /* Idle. Only the two weightless variants keep moving; the deck is a moulded
5123
5125
  lump of plastic and floating it would be a lie about what it is. */
5124
5126
  :host([variant='chiclet']) .key,:host(:not([variant])) .key{
5125
- animation:${z}-bob 3.6s ease-in-out infinite alternate;
5127
+ animation:${R}-bob 3.6s ease-in-out infinite alternate;
5126
5128
  animation-delay:calc(var(--i) * -280ms);
5127
5129
  }
5128
5130
  :host([variant='holo']) .key{
5129
- animation:${z}-sway 5.2s ease-in-out infinite alternate;
5131
+ animation:${R}-sway 5.2s ease-in-out infinite alternate;
5130
5132
  animation-delay:calc(var(--i) * -420ms);
5131
5133
  }
5132
5134
  /* Held still on the resting frame while nothing sweeps, so a rail of caps
5133
5135
  is not a rail of blinking lights. */
5134
5136
  :host([variant='holo']) .key::after{
5135
- animation:${z}-sheen 3.4s ease-in-out infinite;
5137
+ animation:${R}-sheen 3.4s ease-in-out infinite;
5136
5138
  animation-delay:calc(var(--i) * 180ms);
5137
5139
  }
5138
5140
 
@@ -5146,41 +5148,41 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
5146
5148
  the key stops bobbing for the length of the press and picks it back up
5147
5149
  after — which is also why every press ENDS on the idle resting frame. */
5148
5150
  :host([hot][variant='chiclet']) .key,:host([hot]:not([variant])) .key{
5149
- animation:${z}-press .42s cubic-bezier(.3,1.3,.5,1) both;
5151
+ animation:${R}-press .42s cubic-bezier(.3,1.3,.5,1) both;
5150
5152
  }
5151
5153
  :host([hot][variant='deck']) .key{
5152
- animation:${z}-press-deck .38s cubic-bezier(.3,1.2,.5,1) both;
5154
+ animation:${R}-press-deck .38s cubic-bezier(.3,1.2,.5,1) both;
5153
5155
  }
5154
5156
  :host([hot][variant='holo']) .key{
5155
- animation:${z}-press-holo .5s ease-out both;
5157
+ animation:${R}-press-holo .5s ease-out both;
5156
5158
  }
5157
5159
  :host([hot][variant='holo']) .key::after{
5158
- animation:${z}-sheen .5s ease-out both;
5160
+ animation:${R}-sheen .5s ease-out both;
5159
5161
  }
5160
5162
  }
5161
5163
 
5162
- @keyframes ${z}-drop{
5164
+ @keyframes ${R}-drop{
5163
5165
  from{opacity:0;transform:translate3d(0,-7px,0) scale(.82);}
5164
5166
  to{opacity:1;transform:none;}
5165
5167
  }
5166
- @keyframes ${z}-punch{
5168
+ @keyframes ${R}-punch{
5167
5169
  0%{opacity:0;transform:translate3d(0,-14px,0) rotateX(-34deg) scale(1.14);}
5168
5170
  62%{opacity:1;transform:translate3d(0,2px,0) rotateX(6deg) scale(.97);}
5169
5171
  100%{opacity:1;transform:rotateY(4deg);}
5170
5172
  }
5171
- @keyframes ${z}-swing{
5173
+ @keyframes ${R}-swing{
5172
5174
  from{opacity:0;transform:rotateY(-96deg) translate3d(6px,0,0);}
5173
5175
  to{opacity:1;transform:none;}
5174
5176
  }
5175
- @keyframes ${z}-bob{
5177
+ @keyframes ${R}-bob{
5176
5178
  from{transform:rotateX(16deg) translateY(0);}
5177
5179
  to{transform:rotateX(16deg) translateY(-1.6px);}
5178
5180
  }
5179
- @keyframes ${z}-sway{
5181
+ @keyframes ${R}-sway{
5180
5182
  from{transform:rotateY(-14deg);}
5181
5183
  to{transform:rotateY(-2deg) translateY(-1.4px);}
5182
5184
  }
5183
- @keyframes ${z}-sheen{
5185
+ @keyframes ${R}-sheen{
5184
5186
  0%,58%,100%{background-position:0% 0;opacity:0;}
5185
5187
  62%{opacity:.62;}
5186
5188
  92%{background-position:100% 0;opacity:0;}
@@ -5195,7 +5197,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
5195
5197
  * Every stop carries all four shadows in the same order so the list
5196
5198
  * interpolates; a keyframe that dropped one would snap.
5197
5199
  */
5198
- @keyframes ${z}-press{
5200
+ @keyframes ${R}-press{
5199
5201
  0%{
5200
5202
  transform:rotateX(16deg) translateY(0) rotate(0deg);
5201
5203
  box-shadow:
@@ -5241,7 +5243,7 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
5241
5243
  /* The deck has five layers of extrusion to fall into, so its press is the
5242
5244
  travel down that stack and back — no wobble, because a mechanical key on a
5243
5245
  stem does not swing sideways. */
5244
- @keyframes ${z}-press-deck{
5246
+ @keyframes ${R}-press-deck{
5245
5247
  0%,100%{transform:rotateX(20deg) rotateY(-13deg) translateY(0) scale(1);}
5246
5248
  34%{transform:rotateX(27deg) rotateY(-13deg) translateY(4px) scale(.96);}
5247
5249
  70%{transform:rotateX(18deg) rotateY(-13deg) translateY(-1.2px) scale(1.02);}
@@ -5249,12 +5251,12 @@ button:active{background:color-mix(in srgb,currentColor 26%,transparent);}
5249
5251
 
5250
5252
  /* Glass has nothing to bottom out on, so it answers with light: the cap turns
5251
5253
  to face you and the sheen wipes across on cue. */
5252
- @keyframes ${z}-press-holo{
5254
+ @keyframes ${R}-press-holo{
5253
5255
  0%{transform:rotateY(-16deg) scale(1);}
5254
5256
  40%{transform:rotateY(-2deg) scale(1.09);}
5255
5257
  100%{transform:rotateY(-16deg) scale(1);}
5256
5258
  }
5257
- `);function Tc(e){let t=e.trim();return t===``?e===``?[]:[e]:t.split(/\s+/)}F(`slicc-keycap`,class extends HTMLElement{static observedAttributes=[`cap`,`variant`,`placement`,`stagger`];#e;#t=null;#n=null;#r=()=>{this.toggleAttribute(`hot`,!0)};#i=()=>{this.toggleAttribute(`hot`,!1)};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[wc]}connectedCallback(){this.hasAttribute(`aria-hidden`)||this.setAttribute(`aria-hidden`,`true`),this.#s(),this.#a()}disconnectedCallback(){this.#o(),this.removeAttribute(`hot`)}attributeChangedCallback(){this.isConnected&&this.#s()}#a(){let e=this.#n??this.parentElement;!e||e===this.#t||(this.#o(),this.#t=e,e.addEventListener(`pointerenter`,this.#r),e.addEventListener(`pointerleave`,this.#i))}#o(){this.#t?.removeEventListener(`pointerenter`,this.#r),this.#t?.removeEventListener(`pointerleave`,this.#i),this.#t=null}get cap(){return this.getAttribute(`cap`)??``}set cap(e){this.setAttribute(`cap`,e)}get variant(){let e=this.getAttribute(`variant`);return e&&Sc.has(e)?e:`chiclet`}set variant(e){this.setAttribute(`variant`,e)}get placement(){let e=this.getAttribute(`placement`);return e&&Cc.has(e)?e:`top-end`}set placement(e){this.setAttribute(`placement`,e)}get dim(){return this.hasAttribute(`dim`)}set dim(e){this.toggleAttribute(`dim`,e)}get anchor(){return this.#n}set anchor(e){e!==this.#n&&(this.#n=e,this.#o(),this.removeAttribute(`hot`),this.isConnected&&this.#a())}#s(){let e=Number.parseInt(this.getAttribute(`stagger`)??``,10);this.style.setProperty(`--i`,String(Number.isFinite(e)?e:0));let t=L(`span`,{class:`cap`,part:`cap`});for(let e of Tc(this.cap)){let n=L(`kbd`,{class:`key`,part:`key`}),a=ui[e];a&&i(a)?n.append(r(a,{size:12,strokeWidth:2.4})):n.textContent=e,t.append(n)}this.#e.replaceChildren(t)}});var Ec=`
5259
+ `);function Ll(e){let t=e.trim();return t===``?e===``?[]:[e]:t.split(/\s+/)}F(`slicc-keycap`,class extends HTMLElement{static observedAttributes=[`cap`,`variant`,`placement`,`stagger`];#e;#t=null;#n=null;#r=()=>{this.toggleAttribute(`hot`,!0)};#i=()=>{this.toggleAttribute(`hot`,!1)};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Il]}connectedCallback(){this.hasAttribute(`aria-hidden`)||this.setAttribute(`aria-hidden`,`true`),this.#s(),this.#a()}disconnectedCallback(){this.#o(),this.removeAttribute(`hot`)}attributeChangedCallback(){this.isConnected&&this.#s()}#a(){let e=this.#n??this.parentElement;!e||e===this.#t||(this.#o(),this.#t=e,e.addEventListener(`pointerenter`,this.#r),e.addEventListener(`pointerleave`,this.#i))}#o(){this.#t?.removeEventListener(`pointerenter`,this.#r),this.#t?.removeEventListener(`pointerleave`,this.#i),this.#t=null}get cap(){return this.getAttribute(`cap`)??``}set cap(e){this.setAttribute(`cap`,e)}get variant(){let e=this.getAttribute(`variant`);return e&&Pl.has(e)?e:`chiclet`}set variant(e){this.setAttribute(`variant`,e)}get placement(){let e=this.getAttribute(`placement`);return e&&Fl.has(e)?e:`top-end`}set placement(e){this.setAttribute(`placement`,e)}get dim(){return this.hasAttribute(`dim`)}set dim(e){this.toggleAttribute(`dim`,e)}get anchor(){return this.#n}set anchor(e){e!==this.#n&&(this.#n=e,this.#o(),this.removeAttribute(`hot`),this.isConnected&&this.#a())}#s(){let e=Number.parseInt(this.getAttribute(`stagger`)??``,10);this.style.setProperty(`--i`,String(Number.isFinite(e)?e:0));let t=I(`span`,{class:`cap`,part:`cap`});for(let e of Ll(this.cap)){let n=I(`kbd`,{class:`key`,part:`key`}),r=Sa[e];r&&a(r)?n.append(i(r,{size:12,strokeWidth:2.4})):n.textContent=e,t.append(n)}this.#e.replaceChildren(t)}});var Rl=`
5258
5260
  slicc-pane {
5259
5261
  display: flex;
5260
5262
  flex-direction: column;
@@ -5293,7 +5295,7 @@ slicc-pane .slicc-pane__body {
5293
5295
  min-height: 0;
5294
5296
  overflow: auto;
5295
5297
  }
5296
- `,Dc=`slicc-pane-style`;function Oc(e){if(e.getElementById(Dc))return;let t=e.createElement(`style`);t.id=Dc,t.textContent=Ec,(e.head??e.documentElement).appendChild(t)}F(`slicc-pane`,class extends HTMLElement{static observedAttributes=[`elevated`];#e;#t;#n=!1;connectedCallback(){Oc(this.ownerDocument),this.#r()}attributeChangedCallback(e,t,n){e===`elevated`&&t!==n&&this.isConnected&&this.dispatchEvent(new CustomEvent(`slicc-pane-change`,{bubbles:!0,composed:!0,detail:{elevated:n!==null}}))}get elevated(){return this.hasAttribute(`elevated`)}set elevated(e){e?this.setAttribute(`elevated`,``):this.removeAttribute(`elevated`)}#r(){if(this.#n)return;this.#n=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`slicc-pane__surface`))),t=this.ownerDocument.createElement(`div`);t.className=`slicc-pane__surface`,t.setAttribute(`part`,`surface`),this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`slicc-pane__header`,this.#e.setAttribute(`part`,`header`),this.#t=this.ownerDocument.createElement(`div`),this.#t.className=`slicc-pane__body`,this.#t.setAttribute(`part`,`body`),t.append(this.#e,this.#t);for(let t of e)t instanceof HTMLElement&&t.getAttribute(`slot`)===`header`?this.#e.appendChild(t):this.#t.appendChild(t);this.appendChild(t)}});var kc=`
5298
+ `,zl=`slicc-pane-style`;function Bl(e){if(e.getElementById(zl))return;let t=e.createElement(`style`);t.id=zl,t.textContent=Rl,(e.head??e.documentElement).appendChild(t)}F(`slicc-pane`,class extends HTMLElement{static observedAttributes=[`elevated`];#e;#t;#n=!1;connectedCallback(){Bl(this.ownerDocument),this.#r()}attributeChangedCallback(e,t,n){e===`elevated`&&t!==n&&this.isConnected&&this.dispatchEvent(new CustomEvent(`slicc-pane-change`,{bubbles:!0,composed:!0,detail:{elevated:n!==null}}))}get elevated(){return this.hasAttribute(`elevated`)}set elevated(e){e?this.setAttribute(`elevated`,``):this.removeAttribute(`elevated`)}#r(){if(this.#n)return;this.#n=!0;let e=Array.from(this.childNodes).filter(e=>!(e instanceof HTMLElement&&e.classList.contains(`slicc-pane__surface`))),t=this.ownerDocument.createElement(`div`);t.className=`slicc-pane__surface`,t.setAttribute(`part`,`surface`),this.#e=this.ownerDocument.createElement(`div`),this.#e.className=`slicc-pane__header`,this.#e.setAttribute(`part`,`header`),this.#t=this.ownerDocument.createElement(`div`),this.#t.className=`slicc-pane__body`,this.#t.setAttribute(`part`,`body`),t.append(this.#e,this.#t);for(let t of e)t instanceof HTMLElement&&t.getAttribute(`slot`)===`header`?this.#e.appendChild(t):this.#t.appendChild(t);this.appendChild(t)}});var Vl=`
5297
5299
  slicc-press-button {
5298
5300
  display: inline-flex;
5299
5301
  }
@@ -5385,7 +5387,7 @@ slicc-press-button {
5385
5387
  animation: none;
5386
5388
  }
5387
5389
  }
5388
- `,Ac=`slicc-press-button-style`;function jc(e){if(e.getElementById(Ac))return;let t=e.createElement(`style`);t.id=Ac,t.textContent=kc,(e.head??e.documentElement).appendChild(t)}var Mc=`slicc-press-btn`,Nc=`is-squish`,Pc=`is-wobble`;F(`slicc-press-button`,class extends HTMLElement{static get observedAttributes(){return[`label`,`tooltip`,`tooltip-pos`,`disabled`]}innerBtn=null;pressLayer=null;handle=null;initialized=!1;pendingShortTimer=null;pendingShortEvent=null;animEndListener=null;connectedCallback(){jc(this.ownerDocument),this.initialized?this.handle===null&&this.attachGesture():this.initialize(),this.syncAttributes()}disconnectedCallback(){this.handle?.destroy(),this.handle=null,this.clearPendingShort(),this.clearRipple(),this.clearAnimation()}attributeChangedCallback(){this.initialized&&this.syncAttributes()}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){this.toggleAttribute(`disabled`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get tooltip(){return this.getAttribute(`tooltip`)}set tooltip(e){e==null?this.removeAttribute(`tooltip`):this.setAttribute(`tooltip`,e)}setIcon(e){this.initialized||this.initialize();let t=this.innerBtn,n=this.pressLayer;for(let e of Array.from(t.childNodes))e!==n&&e.remove();let r=new DOMParser().parseFromString(e,`text/html`).body;for(;r.firstChild;)t.appendChild(r.firstChild)}focus(e){this.initialized||this.initialize(),this.innerBtn?.focus(e)}initialize(){this.initialized=!0;let e=L(`span`,{class:`${Mc}__press-layer`,part:`press-layer`}),t=L(`button`,{type:`button`,class:`${Mc}__btn`,part:`button`},e);for(;this.firstChild;)t.appendChild(this.firstChild);this.appendChild(t),this.innerBtn=t,this.pressLayer=e,this.attachGesture()}syncAttributes(){let e=this.innerBtn;if(!e)return;let t=this.getAttribute(`label`);t==null?e.removeAttribute(`aria-label`):e.setAttribute(`aria-label`,t);let n=this.getAttribute(`tooltip`);n==null?delete e.dataset.tooltip:e.dataset.tooltip=n;let r=this.getAttribute(`tooltip-pos`);r==null?delete e.dataset.tooltipPos:e.dataset.tooltipPos=r,this.hasAttribute(`disabled`)?e.setAttribute(`disabled`,``):e.removeAttribute(`disabled`)}longPressMs(){let e=this.getAttribute(`long-press-ms`);if(e==null)return xi;let t=Number(e);return Number.isFinite(t)&&t>0?t:xi}doubleClickMs(){let e=this.getAttribute(`double-click-ms`);if(e==null)return 350;let t=Number(e);return Number.isFinite(t)&&t>0?t:350}doubleClickDisabled(){return this.hasAttribute(`disable-double-click`)}emit(e,t){e===`short-click`?this.playAnimation(Nc):e===`double-click`&&this.playAnimation(Pc);let n=t?{sourceEvent:t}:{};this.dispatchEvent(new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n}))}playAnimation(e){let t=this.innerBtn;if(!t)return;this.clearAnimation(),t.offsetWidth,t.classList.add(e);let n=e=>{e.target===t&&this.clearAnimation()};this.animEndListener=n,t.addEventListener(`animationend`,n)}clearAnimation(){let e=this.innerBtn;e&&(this.animEndListener&&=(e.removeEventListener(`animationend`,this.animEndListener),null),e.classList.remove(Nc,Pc))}clearPendingShort(){this.pendingShortTimer!==null&&(clearTimeout(this.pendingShortTimer),this.pendingShortTimer=null),this.pendingShortEvent=null}attachGesture(){this.handle=Si(this,{longPressMs:this.longPressMs(),onPressStart:e=>this.paintRipple(e),onPressEnd:()=>this.clearRipple(),onLongPress:()=>{if(this.pendingShortTimer!==null){this.clearPendingShort(),this.emit(`double-click`);return}this.emit(`long-press`)},onShortClick:e=>{if(this.doubleClickDisabled()){this.emit(`short-click`,e);return}if(this.pendingShortTimer!==null){this.clearPendingShort(),this.emit(`double-click`,e);return}this.pendingShortEvent=e,this.pendingShortTimer=setTimeout(()=>{this.pendingShortTimer=null;let e=this.pendingShortEvent;this.pendingShortEvent=null,this.emit(`short-click`,e??void 0)},this.doubleClickMs())}})}paintRipple(e){this.clearRipple();let t=this.pressLayer;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=Math.max(r,n.width-r),o=Math.max(i,n.height-i),s=Math.ceil(Math.hypot(a,o))+2,c=this.ownerDocument.createElement(`span`);c.className=`${Mc}__press`,c.style.left=`${r}px`,c.style.top=`${i}px`,c.style.width=`0px`,c.style.height=`0px`,c.style.transitionDuration=`${this.longPressMs()}ms`,t.appendChild(c),requestAnimationFrame(()=>{c.isConnected&&(c.style.width=`${s*2}px`,c.style.height=`${s*2}px`)})}clearRipple(){let e=this.pressLayer;if(e)for(;e.firstChild;)e.firstChild.remove()}});var Fc=R(`
5390
+ `,Hl=`slicc-press-button-style`;function Ul(e){if(e.getElementById(Hl))return;let t=e.createElement(`style`);t.id=Hl,t.textContent=Vl,(e.head??e.documentElement).appendChild(t)}var Wl=`slicc-press-btn`,Gl=`is-squish`,Kl=`is-wobble`;F(`slicc-press-button`,class extends HTMLElement{static get observedAttributes(){return[`label`,`tooltip`,`tooltip-pos`,`disabled`]}innerBtn=null;pressLayer=null;handle=null;initialized=!1;pendingShortTimer=null;pendingShortEvent=null;animEndListener=null;connectedCallback(){Ul(this.ownerDocument),this.initialized?this.handle===null&&this.attachGesture():this.initialize(),this.syncAttributes()}disconnectedCallback(){this.handle?.destroy(),this.handle=null,this.clearPendingShort(),this.clearRipple(),this.clearAnimation()}attributeChangedCallback(){this.initialized&&this.syncAttributes()}get disabled(){return this.hasAttribute(`disabled`)}set disabled(e){this.toggleAttribute(`disabled`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get tooltip(){return this.getAttribute(`tooltip`)}set tooltip(e){e==null?this.removeAttribute(`tooltip`):this.setAttribute(`tooltip`,e)}setIcon(e){this.initialized||this.initialize();let t=this.innerBtn,n=this.pressLayer;for(let e of Array.from(t.childNodes))e!==n&&e.remove();let r=new DOMParser().parseFromString(e,`text/html`).body;for(;r.firstChild;)t.appendChild(r.firstChild)}focus(e){this.initialized||this.initialize(),this.innerBtn?.focus(e)}initialize(){this.initialized=!0;let e=I(`span`,{class:`${Wl}__press-layer`,part:`press-layer`}),t=I(`button`,{type:`button`,class:`${Wl}__btn`,part:`button`},e);for(;this.firstChild;)t.appendChild(this.firstChild);this.appendChild(t),this.innerBtn=t,this.pressLayer=e,this.attachGesture()}syncAttributes(){let e=this.innerBtn;if(!e)return;let t=this.getAttribute(`label`);t==null?e.removeAttribute(`aria-label`):e.setAttribute(`aria-label`,t);let n=this.getAttribute(`tooltip`);n==null?delete e.dataset.tooltip:e.dataset.tooltip=n;let r=this.getAttribute(`tooltip-pos`);r==null?delete e.dataset.tooltipPos:e.dataset.tooltipPos=r,this.hasAttribute(`disabled`)?e.setAttribute(`disabled`,``):e.removeAttribute(`disabled`)}longPressMs(){let e=this.getAttribute(`long-press-ms`);if(e==null)return Na;let t=Number(e);return Number.isFinite(t)&&t>0?t:Na}doubleClickMs(){let e=this.getAttribute(`double-click-ms`);if(e==null)return 350;let t=Number(e);return Number.isFinite(t)&&t>0?t:350}doubleClickDisabled(){return this.hasAttribute(`disable-double-click`)}emit(e,t){e===`short-click`?this.playAnimation(Gl):e===`double-click`&&this.playAnimation(Kl);let n=t?{sourceEvent:t}:{};this.dispatchEvent(new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n}))}playAnimation(e){let t=this.innerBtn;if(!t)return;this.clearAnimation(),t.offsetWidth,t.classList.add(e);let n=e=>{e.target===t&&this.clearAnimation()};this.animEndListener=n,t.addEventListener(`animationend`,n)}clearAnimation(){let e=this.innerBtn;e&&(this.animEndListener&&=(e.removeEventListener(`animationend`,this.animEndListener),null),e.classList.remove(Gl,Kl))}clearPendingShort(){this.pendingShortTimer!==null&&(clearTimeout(this.pendingShortTimer),this.pendingShortTimer=null),this.pendingShortEvent=null}attachGesture(){this.handle=Pa(this,{longPressMs:this.longPressMs(),onPressStart:e=>this.paintRipple(e),onPressEnd:()=>this.clearRipple(),onLongPress:()=>{if(this.pendingShortTimer!==null){this.clearPendingShort(),this.emit(`double-click`);return}this.emit(`long-press`)},onShortClick:e=>{if(this.doubleClickDisabled()){this.emit(`short-click`,e);return}if(this.pendingShortTimer!==null){this.clearPendingShort(),this.emit(`double-click`,e);return}this.pendingShortEvent=e,this.pendingShortTimer=setTimeout(()=>{this.pendingShortTimer=null;let e=this.pendingShortEvent;this.pendingShortEvent=null,this.emit(`short-click`,e??void 0)},this.doubleClickMs())}})}paintRipple(e){this.clearRipple();let t=this.pressLayer;if(!t)return;let n=t.getBoundingClientRect(),r=e.clientX-n.left,i=e.clientY-n.top,a=Math.max(r,n.width-r),o=Math.max(i,n.height-i),s=Math.ceil(Math.hypot(a,o))+2,c=this.ownerDocument.createElement(`span`);c.className=`${Wl}__press`,c.style.left=`${r}px`,c.style.top=`${i}px`,c.style.width=`0px`,c.style.height=`0px`,c.style.transitionDuration=`${this.longPressMs()}ms`,t.appendChild(c),requestAnimationFrame(()=>{c.isConnected&&(c.style.width=`${s*2}px`,c.style.height=`${s*2}px`)})}clearRipple(){let e=this.pressLayer;if(e)for(;e.firstChild;)e.firstChild.remove()}});var ql=L(`
5389
5391
  :host { display: inline-flex; }
5390
5392
  :host([hidden]) { display: none; }
5391
5393
 
@@ -5415,7 +5417,7 @@ slicc-press-button {
5415
5417
  outline: 2px solid var(--violet);
5416
5418
  outline-offset: 2px;
5417
5419
  }
5418
- `);F(`slicc-swatch`,class extends HTMLElement{static observedAttributes=[`color`,`hue`,`selected`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Fc]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get color(){return this.getAttribute(`color`)}set color(e){e==null?this.removeAttribute(`color`):this.setAttribute(`color`,e)}get hue(){return this.hasAttribute(`hue`)}set hue(e){this.toggleAttribute(`hue`,!!e)}get selected(){return this.hasAttribute(`selected`)}set selected(e){this.toggleAttribute(`selected`,!!e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.color,t=[`sw`];this.hue&&t.push(`hue`),this.selected&&t.push(`on`);let n=L(`button`,{type:`button`,part:`button`,class:t.join(` `),"aria-pressed":this.selected?`true`:`false`,"aria-label":this.label??e??`color swatch`},L(`slot`));e&&n.style.setProperty(`--swatch-color`,e),n.addEventListener(`click`,this.#n),this.#e.replaceChildren(n)}#n=()=>{this.selected=!0,this.dispatchEvent(new CustomEvent(`select`,{detail:{color:this.color},bubbles:!0,composed:!0}))}});var Ic=new Set([`rose`,`cyan`,`violet`,`amber`,`waffle`,`green`]),Lc=R(`
5420
+ `);F(`slicc-swatch`,class extends HTMLElement{static observedAttributes=[`color`,`hue`,`selected`,`label`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[ql]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get color(){return this.getAttribute(`color`)}set color(e){e==null?this.removeAttribute(`color`):this.setAttribute(`color`,e)}get hue(){return this.hasAttribute(`hue`)}set hue(e){this.toggleAttribute(`hue`,!!e)}get selected(){return this.hasAttribute(`selected`)}set selected(e){this.toggleAttribute(`selected`,!!e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}#t(){let e=this.color,t=[`sw`];this.hue&&t.push(`hue`),this.selected&&t.push(`on`);let n=I(`button`,{type:`button`,part:`button`,class:t.join(` `),"aria-pressed":this.selected?`true`:`false`,"aria-label":this.label??e??`color swatch`},I(`slot`));e&&n.style.setProperty(`--swatch-color`,e),n.addEventListener(`click`,this.#n),this.#e.replaceChildren(n)}#n=()=>{this.selected=!0,this.dispatchEvent(new CustomEvent(`select`,{detail:{color:this.color},bubbles:!0,composed:!0}))}});var Jl=new Set([`rose`,`cyan`,`violet`,`amber`,`waffle`,`green`]),Yl=L(`
5419
5421
  :host {
5420
5422
  display: inline-flex;
5421
5423
  vertical-align: middle;
@@ -5475,7 +5477,7 @@ slicc-press-button {
5475
5477
  :host-context(.dark)[hue="amber"] .tag, :host-context([data-theme="dark"])[hue="amber"] .tag { background: color-mix(in srgb, var(--amber) 22%, var(--canvas)); border-color: color-mix(in srgb, var(--amber) 38%, var(--line)); }
5476
5478
  :host-context(.dark)[hue="waffle"] .tag, :host-context([data-theme="dark"])[hue="waffle"] .tag { background: color-mix(in srgb, var(--waffle) 22%, var(--canvas)); border-color: color-mix(in srgb, var(--waffle) 38%, var(--line)); }
5477
5479
  :host-context(.dark)[hue="green"] .tag, :host-context([data-theme="dark"])[hue="green"] .tag { background: color-mix(in srgb, var(--green) 22%, var(--canvas)); border-color: color-mix(in srgb, var(--green) 38%, var(--line)); }
5478
- `);F(`slicc-tag`,class extends HTMLElement{static observedAttributes=[`hue`,`label`,`dot`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Lc]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get hue(){let e=this.getAttribute(`hue`);return e&&Ic.has(e)?e:null}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get dot(){return this.hasAttribute(`dot`)}set dot(e){e?this.setAttribute(`dot`,``):this.removeAttribute(`dot`)}#t(){let e=this.label??L(`slot`),t=L(`span`,{class:`tag`,part:`tag`},this.dot?L(`span`,{class:`dot`,part:`dot`}):null,L(`span`,{class:`label`,part:`label`},e));this.#e.replaceChildren(t)}});var Rc=`binary`;function zc(e){let t=e.split(`;`,1)[0]?.trim()??e;return t===`application/octet-stream`||t.length===0?Rc:t.slice(t.indexOf(`/`)+1).replace(/^x-/,``).replace(/\+.*$/,``)}var Bc=R(`
5480
+ `);F(`slicc-tag`,class extends HTMLElement{static observedAttributes=[`hue`,`label`,`dot`];#e;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Yl]}connectedCallback(){this.#t()}attributeChangedCallback(){this.isConnected&&this.#t()}get hue(){let e=this.getAttribute(`hue`);return e&&Jl.has(e)?e:null}set hue(e){e==null?this.removeAttribute(`hue`):this.setAttribute(`hue`,e)}get label(){return this.getAttribute(`label`)}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get dot(){return this.hasAttribute(`dot`)}set dot(e){e?this.setAttribute(`dot`,``):this.removeAttribute(`dot`)}#t(){let e=this.label??I(`slot`),t=I(`span`,{class:`tag`,part:`tag`},this.dot?I(`span`,{class:`dot`,part:`dot`}):null,I(`span`,{class:`label`,part:`label`},e));this.#e.replaceChildren(t)}});var Xl=`binary`;function Zl(e){let t=e.split(`;`,1)[0]?.trim()??e;return t===`application/octet-stream`||t.length===0?Xl:t.slice(t.indexOf(`/`)+1).replace(/^x-/,``).replace(/\+.*$/,``)}var Ql=L(`
5479
5481
  :host {
5480
5482
  position: fixed;
5481
5483
  inset: 0;
@@ -5663,7 +5665,7 @@ iframe {
5663
5665
  font-size: 13px;
5664
5666
  }
5665
5667
  .fallback code { font-family: var(--mono, monospace); font-size: 12px; }
5666
- `),Vc={rendered:`Preview`,file:`Source`,diff:`Diff`};function Hc(e){let t=[];return e.rendered&&t.push(`rendered`),Kc(e)&&t.push(`file`),e.baseContent!==void 0&&t.push(`diff`),t}function Uc(e){return e.rendered?`rendered`:e.baseContent===void 0?`file`:`diff`}var Wc=null,Gc=null;function Kc(e){if(e.text===!0)return!0;let t=e.mimeType.split(`;`,1)[0]?.trim()??e.mimeType;return t.startsWith(`text/`)?!0:t===`application/json`||t===`application/xml`||t===`application/javascript`||t===`image/svg+xml`||t.endsWith(`+json`)||t.endsWith(`+xml`)}function qc(e){return typeof e==`string`?e:new TextDecoder().decode(e)}function Jc(e,t){let n=typeof e==`string`?new TextEncoder().encode(e):e;return new Blob([n],{type:t})}var Yc=!1;function Xc(e){if(!Yc){Yc=!0;for(let t of[`jsh`,`bsh`])try{e.setCustomExtension(t,`zsh`)}catch{}}}function Zc(e,t){let n=`<style>:root{color-scheme:${t};}html{background:Canvas;color:CanvasText;}</style>`,r=/^\s*<!doctype[^>]*>/i.exec(e);return r?e.slice(0,r[0].length)+n+e.slice(r[0].length):n+e}function Qc(){let e=document.documentElement,t=e.dataset.theme??e.getAttribute(`data-theme`)??``;return t.includes(`dark`)?`dark`:t.includes(`light`)?`light`:globalThis.matchMedia?.(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}var $c=class e extends HTMLElement{#e;#t=[];#n=0;#r=null;#i=null;#a=`file`;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Bc]}disconnectedCallback(){for(let e of this.#t)URL.revokeObjectURL(e);this.#t.length=0,Wc===this&&(Wc=null)}static open(t){e.close();let n=document.createElement(`slicc-quick-look`);n.#r=t,n.#n+=1,n.#a=Uc(t);let i=t.path.split(`/`).pop()||t.path,a=t.path.slice(0,t.path.length-i.length),o=L(`div`,{class:`backdrop`}),s=L(`button`,{class:`x`});s.setAttribute(`aria-label`,`Close preview`),s.appendChild(r(`x`,{size:14}));let c=L(`div`,{class:`header`},L(`div`,{class:`name`},L(`span`,{class:`dir`},a),i));c.appendChild(L(`span`,{class:`chip`},zc(t.mimeType))),t.gitStatus&&c.appendChild(L(`span`,{class:`chip chip--git`},t.gitStatus));let l=Hc(t);l.length>1&&c.appendChild(n.#o(l)),c.appendChild(s);let u=L(`div`,{class:`content`});n.#i=u,n.#s();let d=L(`div`,{class:`panel`},c,u);d.tabIndex=-1,n.#e.append(o,d),document.body.appendChild(n),Wc=n,d.focus(),o.addEventListener(`click`,()=>n.#l(`backdrop`)),s.addEventListener(`click`,()=>n.#l(`close-button`)),Gc&&document.removeEventListener(`keydown`,Gc),Gc=e=>{e.key===`Escape`&&n.#l(`escape`)},document.addEventListener(`keydown`,Gc)}static close(){if(Wc){for(let e of Wc.#t)URL.revokeObjectURL(e);Wc.remove(),Wc=null}Gc&&=(document.removeEventListener(`keydown`,Gc),null)}#o(e){let t=e.map(e=>L(`button`,{type:`button`},Vc[e])),n=()=>{for(let[n,r]of e.entries())t[n]?.setAttribute(`aria-pressed`,String(this.#a===r))};n();for(let[r,i]of e.entries())t[r]?.addEventListener(`click`,()=>{this.#a!==i&&(this.#a=i,n(),this.#s())});return L(`div`,{class:`toggle`},...t)}#s(){let e=this.#r,t=this.#i;!e||!t||(t.replaceChildren(this.#d(e)),t.classList.toggle(`content--rich`,this.#a===`rendered`&&e.rendered?.mount===`sandbox`),this.#a!==`rendered`&&Kc(e)&&this.#u(this.#n))}#c(e){let t=e.rendered;if(!t)return L(`pre`,null,qc(e.content));if(t.mount===`sandbox`){let n=document.createElement(`iframe`);return n.setAttribute(`sandbox`,``),n.srcdoc=Zc(t.html,Qc()),n.title=`${e.path.split(`/`).pop()||e.path} preview`,n.className=`rendered-frame`,n}let n=L(`div`,{class:`rendered`}),r=this.ownerDocument.createRange();return r.selectNodeContents(n),n.appendChild(r.createContextualFragment(t.html)),n}#l(t){this.dispatchEvent(new CustomEvent(`quick-look-close`,{bubbles:!0,composed:!0,detail:{reason:t}})),e.close()}async#u(e){let n=this.#r,r=this.#i;if(!n||!r)return;let i;try{i=await t(()=>import(`./dist-kBT87Ea7.js`).then(e=>e.t),__vite__mapDeps([0,1,2]))}catch{return}if(Xc(i),e!==this.#n||!this.isConnected)return;let a=n.path.split(`/`).pop()||n.path,o=qc(n.content),s={themeType:Qc(),theme:{dark:`github-dark`,light:`github-light`},stickyHeader:!1,disableFileHeader:!0},c=L(`div`);try{if(this.#a===`diff`&&n.baseContent!==void 0){let e=new i.FileDiff({...s,diffStyle:`unified`});e.render({oldFile:{name:a,contents:n.baseContent},newFile:{name:a,contents:o},containerWrapper:c}),n.line!==void 0&&e.setSelectedLines({start:n.line,end:n.line,side:`additions`})}else{let e=new i.File(s);e.render({file:{name:a,contents:o},containerWrapper:c}),n.line!==void 0&&e.setSelectedLines({start:n.line,end:n.line})}}catch{return}e!==this.#n||!this.isConnected||(r.classList.add(`content--rich`),r.replaceChildren(c))}#d(e){let t=e.mimeType;if(this.#a===`rendered`)return this.#c(e);if(Kc(e))return L(`pre`,null,qc(e.content));if(t.startsWith(`image/`)){let n=document.createElement(`img`);return n.src=this.#f(e.content,t),n.alt=e.path.split(`/`).pop()||``,n}if(t.startsWith(`audio/`)){let n=document.createElement(`audio`);return n.controls=!0,n.src=this.#f(e.content,t),n}if(t.startsWith(`video/`)){let n=document.createElement(`video`);return n.controls=!0,n.src=this.#f(e.content,t),n}if(t===`application/pdf`){let n=document.createElement(`iframe`);return n.src=this.#f(e.content,t),n.title=e.path.split(`/`).pop()||`PDF preview`,n}return L(`div`,{class:`fallback`},L(`div`,null,`Preview not available for this file type (${el(typeof e.content==`string`?e.content.length:e.content.byteLength)})`),L(`div`,{style:`margin-top:6px;`},L(`code`,null,t)))}#f(e,t){let n=URL.createObjectURL(Jc(e,t));return this.#t.push(n),n}};function el(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}F(`slicc-quick-look`,$c);var tl=`
5668
+ `),$l={rendered:`Preview`,file:`Source`,diff:`Diff`};function eu(e){let t=[];return e.rendered&&t.push(`rendered`),iu(e)&&t.push(`file`),e.baseContent!==void 0&&t.push(`diff`),t}function tu(e){return e.rendered?`rendered`:e.baseContent===void 0?`file`:`diff`}var nu=null,ru=null;function iu(e){if(e.text===!0)return!0;let t=e.mimeType.split(`;`,1)[0]?.trim()??e.mimeType;return t.startsWith(`text/`)?!0:t===`application/json`||t===`application/xml`||t===`application/javascript`||t===`image/svg+xml`||t.endsWith(`+json`)||t.endsWith(`+xml`)}function au(e){return typeof e==`string`?e:new TextDecoder().decode(e)}function ou(e,t){let n=typeof e==`string`?new TextEncoder().encode(e):e;return new Blob([n],{type:t})}var su=!1;function cu(e){if(!su){su=!0;for(let t of[`jsh`,`bsh`])try{e.setCustomExtension(t,`zsh`)}catch{}}}function lu(e,t){let n=`<style>:root{color-scheme:${t};}html{background:Canvas;color:CanvasText;}</style>`,r=/^\s*<!doctype[^>]*>/i.exec(e);return r?e.slice(0,r[0].length)+n+e.slice(r[0].length):n+e}function uu(){let e=document.documentElement,t=e.dataset.theme??e.getAttribute(`data-theme`)??``;return t.includes(`dark`)?`dark`:t.includes(`light`)?`light`:globalThis.matchMedia?.(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}var du=class e extends HTMLElement{#e;#t=[];#n=0;#r=null;#i=null;#a=`file`;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ql]}disconnectedCallback(){for(let e of this.#t)URL.revokeObjectURL(e);this.#t.length=0,nu===this&&(nu=null)}static open(t){e.close();let n=document.createElement(`slicc-quick-look`);n.#r=t,n.#n+=1,n.#a=tu(t);let r=t.path.split(`/`).pop()||t.path,a=t.path.slice(0,t.path.length-r.length),o=I(`div`,{class:`backdrop`}),s=I(`button`,{class:`x`});s.setAttribute(`aria-label`,`Close preview`),s.appendChild(i(`x`,{size:14}));let c=I(`div`,{class:`header`},I(`div`,{class:`name`},I(`span`,{class:`dir`},a),r));c.appendChild(I(`span`,{class:`chip`},Zl(t.mimeType))),t.gitStatus&&c.appendChild(I(`span`,{class:`chip chip--git`},t.gitStatus));let l=eu(t);l.length>1&&c.appendChild(n.#o(l)),c.appendChild(s);let u=I(`div`,{class:`content`});n.#i=u,n.#s();let d=I(`div`,{class:`panel`},c,u);d.tabIndex=-1,n.#e.append(o,d),document.body.appendChild(n),nu=n,d.focus(),o.addEventListener(`click`,()=>n.#l(`backdrop`)),s.addEventListener(`click`,()=>n.#l(`close-button`)),ru&&document.removeEventListener(`keydown`,ru),ru=e=>{e.key===`Escape`&&n.#l(`escape`)},document.addEventListener(`keydown`,ru)}static close(){if(nu){for(let e of nu.#t)URL.revokeObjectURL(e);nu.remove(),nu=null}ru&&=(document.removeEventListener(`keydown`,ru),null)}#o(e){let t=e.map(e=>I(`button`,{type:`button`},$l[e])),n=()=>{for(let[n,r]of e.entries())t[n]?.setAttribute(`aria-pressed`,String(this.#a===r))};n();for(let[r,i]of e.entries())t[r]?.addEventListener(`click`,()=>{this.#a!==i&&(this.#a=i,n(),this.#s())});return I(`div`,{class:`toggle`},...t)}#s(){let e=this.#r,t=this.#i;!e||!t||(t.replaceChildren(this.#d(e)),t.classList.toggle(`content--rich`,this.#a===`rendered`&&e.rendered?.mount===`sandbox`),this.#a!==`rendered`&&iu(e)&&this.#u(this.#n))}#c(e){let t=e.rendered;if(!t)return I(`pre`,null,au(e.content));if(t.mount===`sandbox`){let n=document.createElement(`iframe`);return n.setAttribute(`sandbox`,``),n.srcdoc=lu(t.html,uu()),n.title=`${e.path.split(`/`).pop()||e.path} preview`,n.className=`rendered-frame`,n}let n=I(`div`,{class:`rendered`}),r=this.ownerDocument.createRange();return r.selectNodeContents(n),n.appendChild(r.createContextualFragment(t.html)),n}#l(t){this.dispatchEvent(new CustomEvent(`quick-look-close`,{bubbles:!0,composed:!0,detail:{reason:t}})),e.close()}async#u(e){let n=this.#r,r=this.#i;if(!n||!r)return;let i;try{i=await t(()=>import(`./dist-kBT87Ea7.js`).then(e=>e.t),__vite__mapDeps([0,1,2]))}catch{return}if(cu(i),e!==this.#n||!this.isConnected)return;let a=n.path.split(`/`).pop()||n.path,o=au(n.content),s={themeType:uu(),theme:{dark:`github-dark`,light:`github-light`},stickyHeader:!1,disableFileHeader:!0},c=I(`div`);try{if(this.#a===`diff`&&n.baseContent!==void 0){let e=new i.FileDiff({...s,diffStyle:`unified`});e.render({oldFile:{name:a,contents:n.baseContent},newFile:{name:a,contents:o},containerWrapper:c}),n.line!==void 0&&e.setSelectedLines({start:n.line,end:n.line,side:`additions`})}else{let e=new i.File(s);e.render({file:{name:a,contents:o},containerWrapper:c}),n.line!==void 0&&e.setSelectedLines({start:n.line,end:n.line})}}catch{return}e!==this.#n||!this.isConnected||(r.classList.add(`content--rich`),r.replaceChildren(c))}#d(e){let t=e.mimeType;if(this.#a===`rendered`)return this.#c(e);if(iu(e))return I(`pre`,null,au(e.content));if(t.startsWith(`image/`)){let n=document.createElement(`img`);return n.src=this.#f(e.content,t),n.alt=e.path.split(`/`).pop()||``,n}if(t.startsWith(`audio/`)){let n=document.createElement(`audio`);return n.controls=!0,n.src=this.#f(e.content,t),n}if(t.startsWith(`video/`)){let n=document.createElement(`video`);return n.controls=!0,n.src=this.#f(e.content,t),n}if(t===`application/pdf`){let n=document.createElement(`iframe`);return n.src=this.#f(e.content,t),n.title=e.path.split(`/`).pop()||`PDF preview`,n}return I(`div`,{class:`fallback`},I(`div`,null,`Preview not available for this file type (${fu(typeof e.content==`string`?e.content.length:e.content.byteLength)})`),I(`div`,{style:`margin-top:6px;`},I(`code`,null,t)))}#f(e,t){let n=URL.createObjectURL(ou(e,t));return this.#t.push(n),n}};function fu(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}F(`slicc-quick-look`,du);var pu=`
5667
5669
  .slicc-chatpane {
5668
5670
  flex: 1 1 0;
5669
5671
  width: 100%;
@@ -5710,7 +5712,7 @@ iframe {
5710
5712
  -webkit-mask-image: none;
5711
5713
  mask-image: none;
5712
5714
  }
5713
- `,nl=`slicc-chatpane-style`;function rl(e){if(e.getElementById(nl))return;let t=e.createElement(`style`);t.id=nl,t.textContent=tl,(e.head??e.documentElement).appendChild(t)}var il=[`slicc-chat-thread`,`slicc-composer`];F(`slicc-chatpane`,class extends HTMLElement{static observedAttributes=[`narrow`];#e=null;#t=!1;connectedCallback(){rl(this.ownerDocument),this.classList.add(`slicc-chatpane`),this.setAttribute(`part`,`pane`),this.#t=!0,this.#n(),this.#r()}disconnectedCallback(){this.#e?.disconnect(),this.#e=null}attributeChangedCallback(e,t,n){e===`narrow`&&t!==n&&this.isConnected&&(this.#n(),this.dispatchEvent(new CustomEvent(`slicc-chatpane-narrow-change`,{detail:{narrow:this.narrow},bubbles:!0,composed:!0})))}get narrow(){return this.hasAttribute(`narrow`)}set narrow(e){e?this.setAttribute(`narrow`,``):this.removeAttribute(`narrow`)}get nav(){return this.querySelector(`:scope > slicc-nav`)}get thread(){return this.querySelector(`:scope > slicc-chat-thread`)}get composer(){return this.querySelector(`:scope > slicc-composer`)}#n(){if(!this.#t)return;let e=this.narrow;for(let t of il)for(let n of this.querySelectorAll(`:scope > ${t}`))e?n.setAttribute(`open`,``):n.removeAttribute(`open`)}#r(){this.#e||(this.#e=new MutationObserver(()=>this.#n()),this.#e.observe(this,{childList:!0}))}});var al=`
5715
+ `,mu=`slicc-chatpane-style`;function hu(e){if(e.getElementById(mu))return;let t=e.createElement(`style`);t.id=mu,t.textContent=pu,(e.head??e.documentElement).appendChild(t)}var gu=[`slicc-chat-thread`,`slicc-composer`];F(`slicc-chatpane`,class extends HTMLElement{static observedAttributes=[`narrow`];#e=null;#t=!1;connectedCallback(){hu(this.ownerDocument),this.classList.add(`slicc-chatpane`),this.setAttribute(`part`,`pane`),this.#t=!0,this.#n(),this.#r()}disconnectedCallback(){this.#e?.disconnect(),this.#e=null}attributeChangedCallback(e,t,n){e===`narrow`&&t!==n&&this.isConnected&&(this.#n(),this.dispatchEvent(new CustomEvent(`slicc-chatpane-narrow-change`,{detail:{narrow:this.narrow},bubbles:!0,composed:!0})))}get narrow(){return this.hasAttribute(`narrow`)}set narrow(e){e?this.setAttribute(`narrow`,``):this.removeAttribute(`narrow`)}get nav(){return this.querySelector(`:scope > slicc-nav`)}get thread(){return this.querySelector(`:scope > slicc-chat-thread`)}get composer(){return this.querySelector(`:scope > slicc-composer`)}#n(){if(!this.#t)return;let e=this.narrow;for(let t of gu)for(let n of this.querySelectorAll(`:scope > ${t}`))e?n.setAttribute(`open`,``):n.removeAttribute(`open`)}#r(){this.#e||(this.#e=new MutationObserver(()=>this.#n()),this.#e.observe(this,{childList:!0}))}});var _u=`
5714
5716
  .slicc-shell { display: flex; flex: 1; min-height: 0; }
5715
5717
  .slicc-shell > slicc-dock-tree,
5716
5718
  .slicc-shell > .dock-tree {
@@ -5726,7 +5728,7 @@ iframe {
5726
5728
  and blur the rail's own opaque strip. */
5727
5729
  .slicc-shell > slicc-dock,
5728
5730
  .slicc-shell > .dock { flex: 0 0 48px; position: relative; z-index: 3; }
5729
- `,ol=`slicc-shell-style`;function sl(e){if(e.getElementById(ol))return;let t=e.createElement(`style`);t.id=ol,t.textContent=al,(e.head??e.documentElement).appendChild(t)}var cl=`chat`;F(`slicc-shell`,class extends HTMLElement{#e=e=>{let t=e.detail?.placed;if(!Array.isArray(t))return;let n=t.some(e=>e!==cl);this.querySelector(`slicc-chatpane`)?.toggleAttribute(`narrow`,n)};connectedCallback(){sl(this.ownerDocument),this.classList.add(`slicc-shell`),this.setAttribute(`part`,`shell`),this.addEventListener(`dock-tree-render`,this.#e)}disconnectedCallback(){this.removeEventListener(`dock-tree-render`,this.#e)}get dockTree(){return this.querySelector(`:scope > slicc-dock-tree, :scope > .dock-tree`)}get dock(){return this.querySelector(`:scope > slicc-dock, :scope > .dock`)}});var ll=[`idle`,`thinking`,`working`,`awaiting`],ul=.22,dl=.08,fl=3400,pl=4600,ml=.38,hl=2600,gl=.22,_l=1e3,vl=.1,yl=.55,bl=.16,xl={left:{raise:-9,tilt:-10},right:{raise:2,tilt:6}},Sl=[{x:45,y:-15},{x:150,y:-10},{x:95,y:-25},{x:160,y:-30},{x:40,y:-28}],Cl=1300,wl=[{x:70,y:60},{x:130,y:40},{x:100,y:72},{x:55,y:30},{x:148,y:62}],Tl=4100,El=2.2,Dl={x:100,y:66};function Ol(e,t,n){return e+(t-e)*n}function kl(e,t,n,r){return e+(t-e)*Math.min(1,n*r)}function Al(e){return e===null?null:ll.includes(e)?e:`idle`}function jl(e){let t=Number.parseFloat(e??``);return Number.isFinite(t)&&t>=0?t:90}function Ml(e){return+(e===`working`)}function Nl(e){return Ol(38,10,e)}function Pl(e,t){return Ol(e,e*ul,t)}function Fl(e){return e<=50?1:e>=85?2.2:1+(e-50)/35*1.2}function Il(e){return e<=0?1:1+bl*Math.min(1,e/350)}function Ll(e){return Math.max(2,Math.min(16,38-e-4))}function Rl(e){return e>.001?12+e*2*38:9}function zl(e){return e>.001?88-e*2*38:91}function Bl(e,t){let n=e-50;return Ol(Math.sqrt(Math.max(0,1444-n*n)),36,t)}function Vl(e,t){return e<=t?vl:Ol(vl,yl,Math.min(1,(e-t)/12))}function Hl(e){return e.left.raise<0}function Ul(e,t=Math.random){let n=t()<.65?!Hl(e):Hl(e),r={raise:-(7+t()*5),tilt:7+t()*5},i={raise:1+t()*2,tilt:4+t()*3};return n?{left:{raise:r.raise,tilt:-r.tilt},right:i}:{left:{raise:i.raise,tilt:-i.tilt},right:r}}function Wl(e,t,n){return t<2?0:(e+1+Math.floor(n()*(t-1)))%t}var Gl=`http://www.w3.org/2000/svg`,Kl={cx:55,cy:50,r:38},ql={cx:145,cy:50,r:38},Jl=1,Yl=12,Xl=.72,Zl=[.08,.36,.68,.94],Ql=1372365086,$l=2654435769,eu=2246822507,tu=Date.UTC(2001,0,1),nu=500,ru={cone:{vb:`70 330 440 570`,eyes:{top:-18.5,left:17,width:70,height:44},zoom:3,glyph:96},scoop:{vb:`0 0 580 470`,eyes:{top:30,left:15,width:70,height:45},zoom:2.65,glyph:96}},iu={cone:`#D2691E`,scoop:`#FFB6C1`},au=R(`
5731
+ `,vu=`slicc-shell-style`;function yu(e){if(e.getElementById(vu))return;let t=e.createElement(`style`);t.id=vu,t.textContent=_u,(e.head??e.documentElement).appendChild(t)}var bu=`chat`;F(`slicc-shell`,class extends HTMLElement{#e=e=>{let t=e.detail?.placed;if(!Array.isArray(t))return;let n=t.some(e=>e!==bu);this.querySelector(`slicc-chatpane`)?.toggleAttribute(`narrow`,n)};connectedCallback(){yu(this.ownerDocument),this.classList.add(`slicc-shell`),this.setAttribute(`part`,`shell`),this.addEventListener(`dock-tree-render`,this.#e)}disconnectedCallback(){this.removeEventListener(`dock-tree-render`,this.#e)}get dockTree(){return this.querySelector(`:scope > slicc-dock-tree, :scope > .dock-tree`)}get dock(){return this.querySelector(`:scope > slicc-dock, :scope > .dock`)}});var xu=[`idle`,`thinking`,`working`,`awaiting`],Su=.22,Cu=.08,wu=3400,Tu=4600,Eu=.38,Du=2600,Ou=.22,ku=1e3,Au=.1,ju=.55,Mu=.16,Nu={left:{raise:-9,tilt:-10},right:{raise:2,tilt:6}},Pu=[{x:45,y:-15},{x:150,y:-10},{x:95,y:-25},{x:160,y:-30},{x:40,y:-28}],Fu=1300,Iu=[{x:70,y:60},{x:130,y:40},{x:100,y:72},{x:55,y:30},{x:148,y:62}],Lu=4100,Ru=2.2,zu={x:100,y:66};function Bu(e,t,n){return e+(t-e)*n}function Vu(e,t,n,r){return e+(t-e)*Math.min(1,n*r)}function Hu(e){return e===null?null:xu.includes(e)?e:`idle`}function Uu(e){let t=Number.parseFloat(e??``);return Number.isFinite(t)&&t>=0?t:90}function Wu(e){return+(e===`working`)}function Gu(e){return Bu(38,10,e)}function Ku(e,t){return Bu(e,e*Su,t)}function qu(e){return e<=50?1:e>=85?2.2:1+(e-50)/35*1.2}function Ju(e){return e<=0?1:1+Mu*Math.min(1,e/350)}function Yu(e){return Math.max(2,Math.min(16,38-e-4))}function Xu(e){return e>.001?12+e*2*38:9}function Zu(e){return e>.001?88-e*2*38:91}function Qu(e,t){let n=e-50;return Bu(Math.sqrt(Math.max(0,1444-n*n)),36,t)}function $u(e,t){return e<=t?Au:Bu(Au,ju,Math.min(1,(e-t)/12))}function ed(e){return e.left.raise<0}function td(e,t=Math.random){let n=t()<.65?!ed(e):ed(e),r={raise:-(7+t()*5),tilt:7+t()*5},i={raise:1+t()*2,tilt:4+t()*3};return n?{left:{raise:r.raise,tilt:-r.tilt},right:i}:{left:{raise:i.raise,tilt:-i.tilt},right:r}}function nd(e,t,n){return t<2?0:(e+1+Math.floor(n()*(t-1)))%t}var rd=`http://www.w3.org/2000/svg`,id={cx:55,cy:50,r:38},ad={cx:145,cy:50,r:38},od=1,sd=12,cd=.72,ld=[.08,.36,.68,.94],ud=1372365086,dd=2654435769,fd=2246822507,pd=Date.UTC(2001,0,1),md=500,hd={cone:{vb:`70 330 440 570`,eyes:{top:-18.5,left:17,width:70,height:44},zoom:3,glyph:96},scoop:{vb:`0 0 580 470`,eyes:{top:30,left:15,width:70,height:45},zoom:2.65,glyph:96}},gd={cone:`#D2691E`,scoop:`#FFB6C1`},_d=L(`
5730
5732
  :host{display:block;width:26px;height:26px;pointer-events:none;}
5731
5733
  /* The tile itself no longer clips: .crop owns the roundrect so the brows can
5732
5734
  break out of it (see .brow-layer). Everything else still paints inside. */
@@ -5741,14 +5743,14 @@ iframe {
5741
5743
  .eyes{position:absolute;pointer-events:none;}
5742
5744
  .eyes-svg,.brows-svg{display:block;overflow:visible;}
5743
5745
  .eye-blink,.eye-frozen{transform-box:view-box;}
5744
- @keyframes slicc-agent-avatar-blink{0%,92%,100%{transform:scaleY(1);}96%{transform:scaleY(${dl});}}
5746
+ @keyframes slicc-agent-avatar-blink{0%,92%,100%{transform:scaleY(1);}96%{transform:scaleY(${Cu});}}
5745
5747
  :host([blink]) .eye-blink{animation:slicc-agent-avatar-blink 3.4s ease-in-out infinite;}
5746
5748
  :host([blink]) .eye-r{animation-duration:4.6s;}
5747
5749
  /* The engine drives blinks itself so it can commit shape changes at the apex. */
5748
5750
  .avatar[data-expressive] .eye-blink{animation:none;}
5749
5751
  .brow{transition:opacity 350ms ease,transform 350ms ease;}
5750
5752
  @media (prefers-reduced-motion:reduce){:host([blink]) .eye-blink{animation:none;}.brow{transition:none;}}
5751
- `);function B(e,t,...n){let r=document.createElementNS(Gl,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}function ou(e,t,n){e&&e.getAttribute(t)!==n&&e.setAttribute(t,n)}function su(e,t,n){ou(e,t,n.toFixed(2))}function cu(e,t){let n=e.replace(`#`,``),r=n.length===3?[...n].map(e=>`${e}${e}`).join(``):n,i=Number.parseInt(r,16);if(!Number.isFinite(i))return e;let a=t<0?0:255,o=e=>Math.round(e+(a-e)*Math.abs(t)).toString(16).padStart(2,`0`);return`#${o(i>>16&255)}${o(i>>8&255)}${o(i&255)}`}function lu(e,t,n){let r=[[`path`,{d:`M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z`,fill:e,stroke:t,"stroke-linejoin":`round`,"stroke-width":20}],[`path`,{d:`M261.93,482.48h0c15.03-15.03,4.46-40.72-16.79-40.83h0c-21.37-.11-32.14,25.72-17.03,40.83h0c9.34,9.34,24.48,9.34,33.82,0Z`,fill:n}],[`path`,{d:`M384.85,527.49l-51.82,51.82c-2.24,2.24-2.24,5.86,0,8.1l55.71,55.71c2.24,2.24,5.86,2.24,8.1,0h0c.62-.62,1.08-1.36,1.37-2.19l26.52-77.11c.71-2.07.18-4.36-1.37-5.91l-30.41-30.41c-2.24-2.24-5.86-2.24-8.1,0Z`,fill:n}],[`path`,{d:`M371.7,684.58l-25.94,25.94c-2.24,2.24-2.24,5.86,0,8.1l12.67,12.67c2.99,2.99,8.09,1.82,9.46-2.19l13.28-38.61c1.97-5.74-5.17-10.2-9.46-5.91Z`,fill:n}],[`path`,{d:`M159.42,564.14l2.73,6.83c1.52,3.82,6.46,4.83,9.37,1.93l2.05-2.05c2.24-2.24,2.24-5.86,0-8.1l-4.78-4.78c-4.4-4.4-11.67.39-9.37,6.17Z`,fill:n}],[`path`,{d:`M243.92,633.11l-48.65-48.65c-5.24-5.24-13.74-5.24-18.99,0h0c-3.8,3.8-4.97,9.49-2.98,14.47l27.77,69.54c3.58,8.95,15.14,11.33,21.96,4.51l20.89-20.89c5.24-5.24,5.24-13.74,0-18.99Z`,fill:n}],[`path`,{d:`M211.32,533.1h0c14.11-14.11,14.11-36.98,0-51.08l-34.94-34.94c-.72-.72-.72-1.89,0-2.62h0c1.16-1.16.34-3.15-1.3-3.16l-11.23-.06c-25.62-.13-43.23,25.72-33.73,49.51l5.37,13.45c1.82,4.55,4.54,8.68,8,12.15l16.74,16.74c14.11,14.11,36.98,14.11,51.08,0Z`,fill:n}],[`path`,{d:`M263.74,792.53h0c-5.69,5.69-7.45,14.23-4.46,21.71l22.5,56.36c6.92,17.34,31.68,16.74,37.75-.92l8.66-25.2c2.5-7.28.64-15.35-4.8-20.79l-31.17-31.17c-7.87-7.87-20.62-7.87-28.48,0Z`,fill:n}],[`path`,{d:`M392.94,503.07l40.81-40.81c2.24-2.24,5.86-2.24,8.1,0l.06.06c2.24,2.24,2.24,5.86,0,8.1l-40.81,40.81c-2.24,2.24-2.24,5.86,0,8.1l22.48,22.48c2.99,2.99,8.09,1.82,9.46-2.19l30.71-89.32c1.27-3.71-1.47-7.57-5.39-7.59l-120.63-.6c-5.11-.03-7.69,6.16-4.08,9.77l51.18,51.18c2.24,2.24,5.86,2.24,8.1,0Z`,fill:n}]],i=[[274.59,463.59,84.73,95.66,42.36,`translate(-268.79 373.91) rotate(-45)`],[291.06,603.84,72.24,90.24,36.12,`translate(-363.06 421.43) rotate(-45)`],[217.18,527.25,72.24,95.66,36.12,`translate(-332.45 347.55) rotate(-45)`],[236.26,661.25,67.04,90.24,33.52,`translate(-420.46 397.65) rotate(-45)`]],a=r.map(([e,t])=>B(e,t));return a.push(...i.map(([e,t,r,i,a,o])=>B(`rect`,{x:e,y:t,width:r,height:i,rx:a,ry:a,transform:o,fill:n})),B(`ellipse`,{cx:288.37,cy:404.38,rx:182.34,ry:67.01,fill:e,stroke:t,"stroke-miterlimit":10,"stroke-width":20})),a}function uu(e,t){return[B(`path`,{d:`M566.75,340.67c0-29.85-12.97-56.87-33.96-76.47,4.8-9.98,7.44-20.71,7.44-31.9,0-38.29-30.62-71.33-74.92-86.77.33-3.07.51-6.17.51-9.3,0-69.72-84.29-126.24-188.26-126.24s-188.26,56.52-188.26,126.24c0,4,.29,7.95.83,11.86-34.94,15.4-58.48,44.25-58.48,77.34,0,18.21,7.15,34.25,19.39,49.26-25.1,19.88-41.05,49.47-41.05,82.54,0,59.85,52.15,108.37,116.49,108.37,10.83,0,21.3-1.4,31.26-3.98,31.42,41.91,83.55,69.34,142.55,69.34,64.73,0,121.2-33,151.11-81.94,63.8-.57,115.34-48.85,115.34-108.34Z`,fill:e,stroke:t,"stroke-width":20})]}function du(e,t,n,r){return B(`rect`,{x:e-t,y:50-t,width:t*2,height:t*2,rx:n,...r})}function fu(e,t,n,r){return B(`g`,{class:`pupil pupil-${t}`},du(e,n,Pl(n,r),{fill:`#000`}),B(`circle`,{cx:e-n*.3,cy:50-n*.35,r:n*.4,fill:`#fff`}))}function pu(e,t){return B(`line`,{class:`lid-line lid-${t}`,x1:e-38,y1:50,x2:e+38,y2:50,stroke:`#000`,"stroke-width":4,"stroke-linecap":`round`,display:`none`})}function mu(e,t){let n=B(`line`,{class:`brow brow-${t}`,x1:e-22,y1:2,x2:e+22,y2:2,stroke:`#000`,"stroke-width":8,"stroke-linecap":`round`,opacity:0});return n.style.transformBox=`fill-box`,n.style.transformOrigin=`center`,n}function hu(e){return L(`span`,{class:`eyes`,style:`top:${e.eyes.top}%;left:${e.eyes.left}%;width:${e.eyes.width}%;height:${e.eyes.height}%`})}function gu(e,t,n){let r=B(`g`,{class:`${n} eye-${t}`});return r.style.transformOrigin=`${e}px 50px`,r}function _u(e,t,n){let r=`slicc-agent-avatar-noise-${t}`;return B(`g`,{class:`eye-static eye-body-${t}`},B(`defs`,{},B(`clipPath`,{id:r},du(e,38,n,{class:`noise-clip`}))),du(e,38,n,{class:`socket`,fill:`#fff`}),B(`g`,{class:`noise noise-${t}`,"clip-path":`url(#${r})`,"data-cell-size":Jl}),du(e,38,n,{class:`eye-outline`,fill:`none`,stroke:`#000`,"stroke-width":4}))}function vu(e){return e^=e<<13,e^=e>>>17,e^=e<<5,e>>>0}function yu(e){return(Ql^Math.imul(e,eu))>>>0}function bu(e,t){return(yu(e)^Math.imul(t,$l))>>>0}function xu(){return Math.floor((Date.now()-tu)/1e3*Yl)>>>0}function Su(e){return[B(`circle`,{cx:e,cy:50,r:38,fill:`#fff`,stroke:`#000`,"stroke-width":4}),B(`line`,{x1:e-15,y1:35,x2:e+15,y2:65,stroke:`#000`,"stroke-width":8,"stroke-linecap":`round`}),B(`line`,{x1:e+15,y1:35,x2:e-15,y2:65,stroke:`#000`,"stroke-width":8,"stroke-linecap":`round`})]}function Cu(e,t,n,r,i){let a=n-t,o=r-50,s=Math.hypot(a,o),c=Math.min(s,i),l=s>0?a/s*c:0,u=s>0?o/s*c:0;e.setAttribute(`transform`,`translate(${l.toFixed(2)},${u.toFixed(2)})`)}var wu={now:()=>performance.now(),requestFrame:e=>window.requestAnimationFrame(e),cancelFrame:e=>window.cancelAnimationFrame(e),delay:(e,t)=>window.setTimeout(e,t),cancelDelay:e=>window.clearTimeout(e),repeat:(e,t)=>window.setInterval(e,t),cancelRepeat:e=>window.clearInterval(e)};F(`slicc-agent-avatar`,class extends HTMLElement{static observedAttributes=[`type`,`color`,`eyes`,`fill`,`connection`,`activity`,`gaze-target`,`drowse-delay`];#e;#t=e=>this.#ke(e);#n=()=>{this.#V(),this.#q(),this.#U()===`static`&&this.#we()};#r=null;#i=null;#a=null;#o=null;#s=[];#c=null;#l=16;#u=!1;#d=null;#f=!1;#p=!1;#m=0;#h=0;#g=!1;#_=0;#v=0;#y=xl;#b={x:100,y:50};#x=0;#S=0;#C=18;#w=null;#T=0;#E=0;#D=0;#O=null;#k=0;#A=[];#j=null;#M=[];#N=Dl;#P=null;#F=wu;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[au]}connectedCallback(){this.#r=window.matchMedia(`(prefers-reduced-motion: reduce)`),this.#r.addEventListener(`change`,this.#n),this.#L(),this.#V(),this.#q()}disconnectedCallback(){this.#H(),this.#De(),this.#Q(),this.#r?.removeEventListener(`change`,this.#n),this.#r=null,this.#p=!1}attributeChangedCallback(e){if(this.isConnected){if(e===`activity`||e===`gaze-target`||e===`drowse-delay`){this.#K();return}this.#L(),this.#V(),this.#q()}}get activity(){return Al(this.getAttribute(`activity`))}set activity(e){e===null?this.removeAttribute(`activity`):this.setAttribute(`activity`,e)}get gazeTarget(){return this.getAttribute(`gaze-target`)}set gazeTarget(e){e===null?this.removeAttribute(`gaze-target`):this.setAttribute(`gaze-target`,e)}get drowseDelay(){return jl(this.getAttribute(`drowse-delay`))}set drowseDelay(e){this.setAttribute(`drowse-delay`,String(e))}get clock(){return this.#F}set clock(e){if(e===this.#F)return;this.#Q(),this.#F=e;let t=e.now();this.#k=t,this.#w!==null&&(this.#w=t),this.#T=0,this.#E=0,this.#D=0,this.#P=null,this.isConnected&&this.#q()}get expression(){return Object.freeze({activity:this.#d,shape:this.#m,lidTop:this.#_,lidBottom:this.#v,pupilRadius:this.#C,gaze:{...this.#b},brows:this.#y,browsVisible:this.#_e()})}wake(){let e=this.#F.now();this.#w=e,this.#W()||(this.#D=e+350,this.#ce()),this.#Y()}scrutinize(){this.#E=this.#F.now()+_l,this.#Y()}glower(){this.#T=this.#F.now()+hl,this.#Y()}resetExpression(){this.#se();let e=this.#F.now();this.#T=0,this.#E=0,this.#D=0,this.#_=0,this.#v=0,this.#y=xl,this.#N=Dl,this.#P=null,this.#S=0,this.#w=this.#d===`awaiting`?e:null,this.#g=!1,this.#h=Ml(this.#d),this.#m=this.#h,this.#k=e,this.#I()&&this.isConnected&&(this.#ve(),this.#q())}#I(){return this.hasAttribute(`activity`)||this.#f}#L(){this.#De(),this.#s=[];let e=this.getAttribute(`type`)===`cone`?`cone`:`scoop`,t=ru[e],n=this.getAttribute(`color`)??iu[e],r=this.#I();this.#d=Al(this.getAttribute(`activity`)),this.#d===`awaiting`&&this.#w===null&&(this.#w=this.#F.now()),this.#p||=(this.#m=this.#h=Ml(this.#d),!0);let i=B(`svg`,{class:`glyph`,viewBox:t.vb,preserveAspectRatio:`xMidYMid meet`,style:`--g:${t.glyph}%`},...e===`cone`?lu(n,cu(n,-.38),cu(n,.3)):uu(n,cu(n,-.32)));this.#o=B(`svg`,{class:`eyes-svg`,viewBox:`0 0 200 100`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`},...this.#R(r));let a=hu(t);a.append(this.#o);let o=`--tx:${((.5-t.zoom*((t.eyes.left+t.eyes.width/2)/100))*100).toFixed(2)}%;--ty:${((.5-t.zoom*((t.eyes.top+t.eyes.height/2)/100))*100).toFixed(2)}%;--zoom:${t.zoom}`,s=L(`span`,{class:`icon-inner`,style:o},i,a),c=this.#z(r),l=null;if(c){let e=hu(t);e.append(c),l=L(`span`,{class:`icon-inner brow-layer`,style:o},e)}this.#e.replaceChildren(L(`span`,{class:`avatar`,"aria-hidden":`true`,"data-expressive":r||null},L(`span`,{class:`crop`},s),l)),this.#i=this.#e.querySelector(`.pupil-l`),this.#a=this.#e.querySelector(`.pupil-r`),this.#U()===`static`&&this.#we(),r&&this.#ve()}#R(e){let t=this.#U();if(t===`none`)return[];if(t===`dead`)return[...Su(Kl.cx),...Su(ql.cx)];this.#C=this.#B(),this.#l=Ll(this.#C);let n=Nl(this.#m);return[Kl.cx,ql.cx].map((r,i)=>{let a=i===0?`l`:`r`,o=t===`static`,s=gu(r,a,o?`eye-frozen`:`eye-blink`),c=o?_u(r,a,n):B(`g`,{class:`eye-body eye-body-${a}`},du(r,38,n,{class:`socket`,fill:`#fff`,stroke:`#000`,"stroke-width":4}),fu(r,a,this.#C,this.#m));if(s.append(c),!e)return s;let l=`slicc-agent-avatar-lid-${a}`;return s.append(B(`defs`,{},B(`clipPath`,{id:l},B(`rect`,{class:`lid-clip`,x:r-38-3,y:9,width:82,height:82}))),pu(r,`top`),pu(r,`bottom`)),c.setAttribute(`clip-path`,`url(#${l})`),s})}#z(e){let t=this.#U();return!e||t===`none`||t===`dead`?null:B(`svg`,{class:`brows-svg`,viewBox:`0 0 200 100`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`},...[Kl.cx,ql.cx].map((e,t)=>{let n=t===0?`l`:`r`,r=B(`g`,{class:`brow-group brow-group-${n}`});return r.style.transformBox=`view-box`,r.style.transformOrigin=`${e}px 50px`,r.append(mu(e,n)),r}))}#B(){return 18*Fl(Math.max(0,Math.min(100,Number.parseFloat(this.getAttribute(`fill`)??`0`)||0)))}#V(){let e=this.#U()===`open`&&!this.#r?.matches&&(this.#d===null||this.#d===`working`);e&&!this.#u?(this.ownerDocument.addEventListener(`pointermove`,this.#t),this.#u=!0):e||(this.#H(),(this.#d===null||this.#d===`working`)&&this.#Oe())}#H(){this.#u&&=(this.ownerDocument.removeEventListener(`pointermove`,this.#t),!1)}#U(){let e=this.getAttribute(`connection`);if(e!==null&&e!==`connected`)return`static`;let t=this.getAttribute(`eyes`);return t===`dead`||t===`none`||t===`static`?t:`open`}#W(){return this.#r?.matches===!0||this.#U()!==`open`||!this.isConnected||!this.#p}#G(){return this.#U()!==`open`}#K(){let e=Al(this.getAttribute(`activity`)),t=this.#e.querySelector(`.avatar[data-expressive]`)!==null;e===`awaiting`&&this.#d!==`awaiting`?this.#w=this.#F.now():e!==`awaiting`&&(this.#w=null),this.#P=null,this.#d=e,this.#I()!==t&&this.#L(),this.#V(),this.#q()}#q(){if(!this.#I()||!this.isConnected){this.#Q();return}if(this.#G()||this.#r?.matches){this.#Z(),this.#J(),this.#te();return}this.#ue(),this.#X()}#J(){for(let e of this.#M)this.#F.cancelRepeat(e);this.#M=[]}#Y(){this.#I()||(this.#f=!0,this.isConnected&&this.#L()),this.#q()}#X(){this.#O===null&&(this.#k=this.#F.now(),this.#O=this.#F.requestFrame(this.#$))}#Z(){this.#O!==null&&(this.#F.cancelFrame(this.#O),this.#O=null)}#Q(){this.#Z();for(let e of this.#A)this.#F.cancelDelay(e);this.#A=[],this.#j!==null&&this.#F.cancelDelay(this.#j),this.#j=null;for(let e of this.#M)this.#F.cancelRepeat(e);this.#M=[]}#$=e=>{this.#O=this.#F.requestFrame(this.#$);let t=Math.min(.05,Math.max(0,(e-this.#k)/1e3));this.#k=e,this.#ee(e,t),this.#ve()};#ee(e,t){let n=Ml(this.#d);n!==this.#h&&!this.#g&&this.#ae(n),this.#m=kl(this.#m,this.#h,6,t),this.#_=kl(this.#_,this.#re(e,!1),5,t),this.#v=kl(this.#v,this.#ie(e),5,t),this.#pe(e,t)}#te(){let e=this.#F.now();this.#G()||(this.#h=this.#m=Ml(this.#d),this.#_=this.#re(e,!0),this.#v=this.#ie(e),this.#me()),this.#ve(),this.#ne(e)}#ne(e){if(this.#j!==null&&this.#F.cancelDelay(this.#j),this.#j=null,this.#G())return;let t=this.#d===`awaiting`&&this.#w!==null?this.#w+this.drowseDelay*1e3:1/0,n=Math.min(this.#T>e?this.#T:1/0,this.#E>e?this.#E:1/0,t>e?t:1/0);Number.isFinite(n)&&(this.#j=this.#F.delay(()=>this.#te(),Math.max(0,n-e)+1))}#re(e,t){let n=this.#T>e?ml:0;if(this.#d!==`awaiting`)return n;let r=this.#w===null?0:(e-this.#w)/1e3,i=this.drowseDelay;return Math.max(n,Vl(t&&r>i?i+12:r,i))}#ie(e){return this.#E>e?gl:0}#ae(e){if(this.#W()){this.#h=this.#m=e;return}this.#g=!0,this.#ce(()=>{this.#h=this.#m=e,this.#g=!1})}#oe(){return[...this.#e.querySelectorAll(`.eye-blink`)]}#se(){for(let e of this.#A)this.#F.cancelDelay(e);this.#A=[];for(let e of this.#oe())e.style.transition=`none`,e.style.transform=`scaleY(1)`}#ce(e){let t=this.#oe();if(t.length===0){e?.();return}t.forEach((t,n)=>{this.#le(t,n===0?e:void 0)})}#le(e,t){e.style.transition=`transform 110ms ease-in`,e.style.transform=`scaleY(${dl})`,this.#A.push(this.#F.delay(()=>{t?.(),this.#d===`thinking`&&!this.#G()&&(this.#y=Ul(this.#y)),e.style.transition=`transform 130ms ease-out`,e.style.transform=`scaleY(1)`},120))}#ue(){this.#M.length>0||this.#W()||this.#G()||[fl,pl].forEach((e,t)=>{this.#M.push(this.#F.repeat(()=>{let e=this.#oe()[t];e&&this.hasAttribute(`blink`)&&!this.#G()&&this.#le(e)},e))})}#de(e){return this.#d===`thinking`?{target:this.#fe(e,Sl,Cl),rate:9}:this.#d===`idle`?{target:this.#fe(e,wl,Tl),rate:El}:this.#d===`awaiting`?{target:this.#ge(e),rate:6}:null}#fe(e,t,n){return e-this.#S>n&&(this.#S=e,this.#x=Wl(this.#x,t.length,Math.random)),t[this.#x]??Dl}#pe(e,t){let n=this.#de(e);n&&(this.#b={x:kl(this.#b.x,n.target.x,n.rate,t),y:kl(this.#b.y,n.target.y,n.rate,t)},this.#he())}#me(){this.#d===`awaiting`?(this.#b=this.#ge(this.#F.now()),this.#he()):(this.#d===`thinking`||this.#d===`idle`)&&this.#Oe()}#he(){this.#i&&Cu(this.#i,Kl.cx,this.#b.x,this.#b.y,this.#l),this.#a&&Cu(this.#a,ql.cx,this.#b.x,this.#b.y,this.#l)}#ge(e){if(this.#P!==null&&e-this.#P<nu)return this.#N;this.#P=e;let t=this.getAttribute(`gaze-target`),n=t?this.ownerDocument.querySelector(t):null,r=this.#o?.getBoundingClientRect();if(!n||!r?.width||!r.height)return this.#N=Dl,this.#N;let i=n.getBoundingClientRect();return this.#N={x:(i.left+i.width/2-r.left)*(200/r.width),y:(i.top+i.height/2-r.top)*(100/r.height)},this.#N}#_e(){return this.#d===`thinking`}#ve(){let e=this.#F.now(),t=this.#m,n=Nl(t),r=this.#B()*Il(this.#D-e);this.#C=r,this.#l=Ll(r);for(let[e,i]of[`l`,`r`].entries()){let a=e===0?Kl.cx:ql.cx;this.#ye(i,n),this.#be(i,a,r,t),this.#xe(i,a,t),this.#Ce(i)}}#ye(e,t){for(let n of this.#e.querySelectorAll(`.eye-body-${e} .socket, .eye-body-${e} .eye-outline, .eye-body-${e} .noise-clip`))su(n,`rx`,t)}#be(e,t,n,r){let i=this.#e.querySelector(`.pupil-${e} rect`);if(!i)return;su(i,`x`,t-n),su(i,`y`,50-n),su(i,`width`,n*2),su(i,`height`,n*2),su(i,`rx`,Pl(n,r));let a=this.#e.querySelector(`.pupil-${e} circle`);su(a,`cx`,t-n*.3),su(a,`cy`,50-n*.35),su(a,`r`,n*.4)}#xe(e,t,n){let r=this.#e.querySelector(`.eye-${e} .lid-clip`);if(!r)return;let i=Rl(this.#_),a=zl(this.#v);su(r,`y`,i),su(r,`height`,Math.max(0,a-i)),this.#Se(`.eye-${e} .lid-top`,t,i,n,this.#_),this.#Se(`.eye-${e} .lid-bottom`,t,a,n,this.#v)}#Se(e,t,n,r,i){let a=this.#e.querySelector(e);if(!a)return;let o=Bl(n,r);su(a,`x1`,t-o),su(a,`x2`,t+o),su(a,`y1`,n),su(a,`y2`,n),ou(a,`display`,i>.02?`inline`:`none`)}#Ce(e){let t=this.#e.querySelector(`.brow-${e}`);if(!t)return;let n=this.#_e(),r=e===`l`?this.#y.left:this.#y.right;ou(t,`opacity`,n?`1`:`0`),t.style.transform=n?`translateY(${r.raise.toFixed(2)}px) rotate(${r.tilt.toFixed(2)}deg)`:`translateY(6px)`}#we(){if(this.#De(),this.#s.length===0&&this.#Te(),this.#r?.matches){this.#Ee(null);return}this.#Ee(xu()),this.#c=window.setInterval(()=>{this.#Ee(xu())},1e3/Yl)}#Te(){let e=this.#o?.getBoundingClientRect(),t=e?Math.min(e.width/200,e.height/100):0,n=Jl/(t>0?t:.25);this.#s=[...this.#e.querySelectorAll(`.noise`)].map((e,t)=>{let r=t===0?Kl.cx:ql.cx,i=[],a=r-Kl.r,o=r+Kl.r,s=50-Kl.r,c=50+Kl.r;for(let e=s;e<c;e+=n)for(let t=a;t<o;t+=n){let r=B(`rect`,{x:t,y:e,width:Math.min(n,o-t),height:Math.min(n,c-e),opacity:Xl});i.push(r)}return e.replaceChildren(...i),i})}#Ee(e){this.#s.forEach((t,n)=>{let r=e===null?yu(n):bu(n,e),i=r===0?Ql:r;(t[0]?.parentElement)?.setAttribute(`data-seed`,String(i));for(let e of t){i=vu(i);let t=`${Zl[i%Zl.length]*100}%`;e.setAttribute(`fill`,`rgb(${t} ${t} ${t})`)}})}#De(){this.#c!==null&&(window.clearInterval(this.#c),this.#c=null)}#Oe(){this.#i?.setAttribute(`transform`,`translate(0,0)`),this.#a?.setAttribute(`transform`,`translate(0,0)`)}#ke(e){if(!this.#o||!this.#i||!this.#a)return;let t=this.#o.getBoundingClientRect();!t.width||!t.height||(this.#b={x:(e.clientX-t.left)*(200/t.width),y:(e.clientY-t.top)*(100/t.height)},this.#he())}});var Tu=R(`
5753
+ `);function z(e,t,...n){let r=document.createElementNS(rd,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}function vd(e,t,n){e&&e.getAttribute(t)!==n&&e.setAttribute(t,n)}function yd(e,t,n){vd(e,t,n.toFixed(2))}function bd(e,t){let n=e.replace(`#`,``),r=n.length===3?[...n].map(e=>`${e}${e}`).join(``):n,i=Number.parseInt(r,16);if(!Number.isFinite(i))return e;let a=t<0?0:255,o=e=>Math.round(e+(a-e)*Math.abs(t)).toString(16).padStart(2,`0`);return`#${o(i>>16&255)}${o(i>>8&255)}${o(i&255)}`}function xd(e,t,n){let r=[[`path`,{d:`M108.22,414.88l189.84,460.03c1.36,3.3,6.09,3.16,7.25-.22l159.34-463.34c.87-2.53-1.03-5.16-3.7-5.13l-349.18,3.32c-2.74.03-4.59,2.82-3.55,5.35Z`,fill:e,stroke:t,"stroke-linejoin":`round`,"stroke-width":20}],[`path`,{d:`M261.93,482.48h0c15.03-15.03,4.46-40.72-16.79-40.83h0c-21.37-.11-32.14,25.72-17.03,40.83h0c9.34,9.34,24.48,9.34,33.82,0Z`,fill:n}],[`path`,{d:`M384.85,527.49l-51.82,51.82c-2.24,2.24-2.24,5.86,0,8.1l55.71,55.71c2.24,2.24,5.86,2.24,8.1,0h0c.62-.62,1.08-1.36,1.37-2.19l26.52-77.11c.71-2.07.18-4.36-1.37-5.91l-30.41-30.41c-2.24-2.24-5.86-2.24-8.1,0Z`,fill:n}],[`path`,{d:`M371.7,684.58l-25.94,25.94c-2.24,2.24-2.24,5.86,0,8.1l12.67,12.67c2.99,2.99,8.09,1.82,9.46-2.19l13.28-38.61c1.97-5.74-5.17-10.2-9.46-5.91Z`,fill:n}],[`path`,{d:`M159.42,564.14l2.73,6.83c1.52,3.82,6.46,4.83,9.37,1.93l2.05-2.05c2.24-2.24,2.24-5.86,0-8.1l-4.78-4.78c-4.4-4.4-11.67.39-9.37,6.17Z`,fill:n}],[`path`,{d:`M243.92,633.11l-48.65-48.65c-5.24-5.24-13.74-5.24-18.99,0h0c-3.8,3.8-4.97,9.49-2.98,14.47l27.77,69.54c3.58,8.95,15.14,11.33,21.96,4.51l20.89-20.89c5.24-5.24,5.24-13.74,0-18.99Z`,fill:n}],[`path`,{d:`M211.32,533.1h0c14.11-14.11,14.11-36.98,0-51.08l-34.94-34.94c-.72-.72-.72-1.89,0-2.62h0c1.16-1.16.34-3.15-1.3-3.16l-11.23-.06c-25.62-.13-43.23,25.72-33.73,49.51l5.37,13.45c1.82,4.55,4.54,8.68,8,12.15l16.74,16.74c14.11,14.11,36.98,14.11,51.08,0Z`,fill:n}],[`path`,{d:`M263.74,792.53h0c-5.69,5.69-7.45,14.23-4.46,21.71l22.5,56.36c6.92,17.34,31.68,16.74,37.75-.92l8.66-25.2c2.5-7.28.64-15.35-4.8-20.79l-31.17-31.17c-7.87-7.87-20.62-7.87-28.48,0Z`,fill:n}],[`path`,{d:`M392.94,503.07l40.81-40.81c2.24-2.24,5.86-2.24,8.1,0l.06.06c2.24,2.24,2.24,5.86,0,8.1l-40.81,40.81c-2.24,2.24-2.24,5.86,0,8.1l22.48,22.48c2.99,2.99,8.09,1.82,9.46-2.19l30.71-89.32c1.27-3.71-1.47-7.57-5.39-7.59l-120.63-.6c-5.11-.03-7.69,6.16-4.08,9.77l51.18,51.18c2.24,2.24,5.86,2.24,8.1,0Z`,fill:n}]],i=[[274.59,463.59,84.73,95.66,42.36,`translate(-268.79 373.91) rotate(-45)`],[291.06,603.84,72.24,90.24,36.12,`translate(-363.06 421.43) rotate(-45)`],[217.18,527.25,72.24,95.66,36.12,`translate(-332.45 347.55) rotate(-45)`],[236.26,661.25,67.04,90.24,33.52,`translate(-420.46 397.65) rotate(-45)`]],a=r.map(([e,t])=>z(e,t));return a.push(...i.map(([e,t,r,i,a,o])=>z(`rect`,{x:e,y:t,width:r,height:i,rx:a,ry:a,transform:o,fill:n})),z(`ellipse`,{cx:288.37,cy:404.38,rx:182.34,ry:67.01,fill:e,stroke:t,"stroke-miterlimit":10,"stroke-width":20})),a}function Sd(e,t){return[z(`path`,{d:`M566.75,340.67c0-29.85-12.97-56.87-33.96-76.47,4.8-9.98,7.44-20.71,7.44-31.9,0-38.29-30.62-71.33-74.92-86.77.33-3.07.51-6.17.51-9.3,0-69.72-84.29-126.24-188.26-126.24s-188.26,56.52-188.26,126.24c0,4,.29,7.95.83,11.86-34.94,15.4-58.48,44.25-58.48,77.34,0,18.21,7.15,34.25,19.39,49.26-25.1,19.88-41.05,49.47-41.05,82.54,0,59.85,52.15,108.37,116.49,108.37,10.83,0,21.3-1.4,31.26-3.98,31.42,41.91,83.55,69.34,142.55,69.34,64.73,0,121.2-33,151.11-81.94,63.8-.57,115.34-48.85,115.34-108.34Z`,fill:e,stroke:t,"stroke-width":20})]}function Cd(e,t,n,r){return z(`rect`,{x:e-t,y:50-t,width:t*2,height:t*2,rx:n,...r})}function wd(e,t,n,r){return z(`g`,{class:`pupil pupil-${t}`},Cd(e,n,Ku(n,r),{fill:`#000`}),z(`circle`,{cx:e-n*.3,cy:50-n*.35,r:n*.4,fill:`#fff`}))}function Td(e,t){return z(`line`,{class:`lid-line lid-${t}`,x1:e-38,y1:50,x2:e+38,y2:50,stroke:`#000`,"stroke-width":4,"stroke-linecap":`round`,display:`none`})}function Ed(e,t){let n=z(`line`,{class:`brow brow-${t}`,x1:e-22,y1:2,x2:e+22,y2:2,stroke:`#000`,"stroke-width":8,"stroke-linecap":`round`,opacity:0});return n.style.transformBox=`fill-box`,n.style.transformOrigin=`center`,n}function Dd(e){return I(`span`,{class:`eyes`,style:`top:${e.eyes.top}%;left:${e.eyes.left}%;width:${e.eyes.width}%;height:${e.eyes.height}%`})}function Od(e,t,n){let r=z(`g`,{class:`${n} eye-${t}`});return r.style.transformOrigin=`${e}px 50px`,r}function kd(e,t,n){let r=`slicc-agent-avatar-noise-${t}`;return z(`g`,{class:`eye-static eye-body-${t}`},z(`defs`,{},z(`clipPath`,{id:r},Cd(e,38,n,{class:`noise-clip`}))),Cd(e,38,n,{class:`socket`,fill:`#fff`}),z(`g`,{class:`noise noise-${t}`,"clip-path":`url(#${r})`,"data-cell-size":od}),Cd(e,38,n,{class:`eye-outline`,fill:`none`,stroke:`#000`,"stroke-width":4}))}function Ad(e){return e^=e<<13,e^=e>>>17,e^=e<<5,e>>>0}function jd(e){return(ud^Math.imul(e,fd))>>>0}function Md(e,t){return(jd(e)^Math.imul(t,dd))>>>0}function Nd(){return Math.floor((Date.now()-pd)/1e3*sd)>>>0}function Pd(e){return[z(`circle`,{cx:e,cy:50,r:38,fill:`#fff`,stroke:`#000`,"stroke-width":4}),z(`line`,{x1:e-15,y1:35,x2:e+15,y2:65,stroke:`#000`,"stroke-width":8,"stroke-linecap":`round`}),z(`line`,{x1:e+15,y1:35,x2:e-15,y2:65,stroke:`#000`,"stroke-width":8,"stroke-linecap":`round`})]}function Fd(e,t,n,r,i){let a=n-t,o=r-50,s=Math.hypot(a,o),c=Math.min(s,i),l=s>0?a/s*c:0,u=s>0?o/s*c:0;e.setAttribute(`transform`,`translate(${l.toFixed(2)},${u.toFixed(2)})`)}var Id={now:()=>performance.now(),requestFrame:e=>window.requestAnimationFrame(e),cancelFrame:e=>window.cancelAnimationFrame(e),delay:(e,t)=>window.setTimeout(e,t),cancelDelay:e=>window.clearTimeout(e),repeat:(e,t)=>window.setInterval(e,t),cancelRepeat:e=>window.clearInterval(e)};F(`slicc-agent-avatar`,class extends HTMLElement{static observedAttributes=[`type`,`color`,`eyes`,`fill`,`connection`,`activity`,`gaze-target`,`drowse-delay`];#e;#t=e=>this.#ke(e);#n=()=>{this.#V(),this.#q(),this.#U()===`static`&&this.#we()};#r=null;#i=null;#a=null;#o=null;#s=[];#c=null;#l=16;#u=!1;#d=null;#f=!1;#p=!1;#m=0;#h=0;#g=!1;#_=0;#v=0;#y=Nu;#b={x:100,y:50};#x=0;#S=0;#C=18;#w=null;#T=0;#E=0;#D=0;#O=null;#k=0;#A=[];#j=null;#M=[];#N=zu;#P=null;#F=Id;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[_d]}connectedCallback(){this.#r=window.matchMedia(`(prefers-reduced-motion: reduce)`),this.#r.addEventListener(`change`,this.#n),this.#L(),this.#V(),this.#q()}disconnectedCallback(){this.#H(),this.#De(),this.#Q(),this.#r?.removeEventListener(`change`,this.#n),this.#r=null,this.#p=!1}attributeChangedCallback(e){if(this.isConnected){if(e===`activity`||e===`gaze-target`||e===`drowse-delay`){this.#K();return}this.#L(),this.#V(),this.#q()}}get activity(){return Hu(this.getAttribute(`activity`))}set activity(e){e===null?this.removeAttribute(`activity`):this.setAttribute(`activity`,e)}get gazeTarget(){return this.getAttribute(`gaze-target`)}set gazeTarget(e){e===null?this.removeAttribute(`gaze-target`):this.setAttribute(`gaze-target`,e)}get drowseDelay(){return Uu(this.getAttribute(`drowse-delay`))}set drowseDelay(e){this.setAttribute(`drowse-delay`,String(e))}get clock(){return this.#F}set clock(e){if(e===this.#F)return;this.#Q(),this.#F=e;let t=e.now();this.#k=t,this.#w!==null&&(this.#w=t),this.#T=0,this.#E=0,this.#D=0,this.#P=null,this.isConnected&&this.#q()}get expression(){return Object.freeze({activity:this.#d,shape:this.#m,lidTop:this.#_,lidBottom:this.#v,pupilRadius:this.#C,gaze:{...this.#b},brows:this.#y,browsVisible:this.#_e()})}wake(){let e=this.#F.now();this.#w=e,this.#W()||(this.#D=e+350,this.#ce()),this.#Y()}scrutinize(){this.#E=this.#F.now()+ku,this.#Y()}glower(){this.#T=this.#F.now()+Du,this.#Y()}resetExpression(){this.#se();let e=this.#F.now();this.#T=0,this.#E=0,this.#D=0,this.#_=0,this.#v=0,this.#y=Nu,this.#N=zu,this.#P=null,this.#S=0,this.#w=this.#d===`awaiting`?e:null,this.#g=!1,this.#h=Wu(this.#d),this.#m=this.#h,this.#k=e,this.#I()&&this.isConnected&&(this.#ve(),this.#q())}#I(){return this.hasAttribute(`activity`)||this.#f}#L(){this.#De(),this.#s=[];let e=this.getAttribute(`type`)===`cone`?`cone`:`scoop`,t=hd[e],n=this.getAttribute(`color`)??gd[e],r=this.#I();this.#d=Hu(this.getAttribute(`activity`)),this.#d===`awaiting`&&this.#w===null&&(this.#w=this.#F.now()),this.#p||=(this.#m=this.#h=Wu(this.#d),!0);let i=z(`svg`,{class:`glyph`,viewBox:t.vb,preserveAspectRatio:`xMidYMid meet`,style:`--g:${t.glyph}%`},...e===`cone`?xd(n,bd(n,-.38),bd(n,.3)):Sd(n,bd(n,-.32)));this.#o=z(`svg`,{class:`eyes-svg`,viewBox:`0 0 200 100`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`},...this.#R(r));let a=Dd(t);a.append(this.#o);let o=`--tx:${((.5-t.zoom*((t.eyes.left+t.eyes.width/2)/100))*100).toFixed(2)}%;--ty:${((.5-t.zoom*((t.eyes.top+t.eyes.height/2)/100))*100).toFixed(2)}%;--zoom:${t.zoom}`,s=I(`span`,{class:`icon-inner`,style:o},i,a),c=this.#z(r),l=null;if(c){let e=Dd(t);e.append(c),l=I(`span`,{class:`icon-inner brow-layer`,style:o},e)}this.#e.replaceChildren(I(`span`,{class:`avatar`,"aria-hidden":`true`,"data-expressive":r||null},I(`span`,{class:`crop`},s),l)),this.#i=this.#e.querySelector(`.pupil-l`),this.#a=this.#e.querySelector(`.pupil-r`),this.#U()===`static`&&this.#we(),r&&this.#ve()}#R(e){let t=this.#U();if(t===`none`)return[];if(t===`dead`)return[...Pd(id.cx),...Pd(ad.cx)];this.#C=this.#B(),this.#l=Yu(this.#C);let n=Gu(this.#m);return[id.cx,ad.cx].map((r,i)=>{let a=i===0?`l`:`r`,o=t===`static`,s=Od(r,a,o?`eye-frozen`:`eye-blink`),c=o?kd(r,a,n):z(`g`,{class:`eye-body eye-body-${a}`},Cd(r,38,n,{class:`socket`,fill:`#fff`,stroke:`#000`,"stroke-width":4}),wd(r,a,this.#C,this.#m));if(s.append(c),!e)return s;let l=`slicc-agent-avatar-lid-${a}`;return s.append(z(`defs`,{},z(`clipPath`,{id:l},z(`rect`,{class:`lid-clip`,x:r-38-3,y:9,width:82,height:82}))),Td(r,`top`),Td(r,`bottom`)),c.setAttribute(`clip-path`,`url(#${l})`),s})}#z(e){let t=this.#U();return!e||t===`none`||t===`dead`?null:z(`svg`,{class:`brows-svg`,viewBox:`0 0 200 100`,width:`100%`,height:`100%`,preserveAspectRatio:`xMidYMid meet`},...[id.cx,ad.cx].map((e,t)=>{let n=t===0?`l`:`r`,r=z(`g`,{class:`brow-group brow-group-${n}`});return r.style.transformBox=`view-box`,r.style.transformOrigin=`${e}px 50px`,r.append(Ed(e,n)),r}))}#B(){return 18*qu(Math.max(0,Math.min(100,Number.parseFloat(this.getAttribute(`fill`)??`0`)||0)))}#V(){let e=this.#U()===`open`&&!this.#r?.matches&&(this.#d===null||this.#d===`working`);e&&!this.#u?(this.ownerDocument.addEventListener(`pointermove`,this.#t),this.#u=!0):e||(this.#H(),(this.#d===null||this.#d===`working`)&&this.#Oe())}#H(){this.#u&&=(this.ownerDocument.removeEventListener(`pointermove`,this.#t),!1)}#U(){let e=this.getAttribute(`connection`);if(e!==null&&e!==`connected`)return`static`;let t=this.getAttribute(`eyes`);return t===`dead`||t===`none`||t===`static`?t:`open`}#W(){return this.#r?.matches===!0||this.#U()!==`open`||!this.isConnected||!this.#p}#G(){return this.#U()!==`open`}#K(){let e=Hu(this.getAttribute(`activity`)),t=this.#e.querySelector(`.avatar[data-expressive]`)!==null;e===`awaiting`&&this.#d!==`awaiting`?this.#w=this.#F.now():e!==`awaiting`&&(this.#w=null),this.#P=null,this.#d=e,this.#I()!==t&&this.#L(),this.#V(),this.#q()}#q(){if(!this.#I()||!this.isConnected){this.#Q();return}if(this.#G()||this.#r?.matches){this.#Z(),this.#J(),this.#te();return}this.#ue(),this.#X()}#J(){for(let e of this.#M)this.#F.cancelRepeat(e);this.#M=[]}#Y(){this.#I()||(this.#f=!0,this.isConnected&&this.#L()),this.#q()}#X(){this.#O===null&&(this.#k=this.#F.now(),this.#O=this.#F.requestFrame(this.#$))}#Z(){this.#O!==null&&(this.#F.cancelFrame(this.#O),this.#O=null)}#Q(){this.#Z();for(let e of this.#A)this.#F.cancelDelay(e);this.#A=[],this.#j!==null&&this.#F.cancelDelay(this.#j),this.#j=null;for(let e of this.#M)this.#F.cancelRepeat(e);this.#M=[]}#$=e=>{this.#O=this.#F.requestFrame(this.#$);let t=Math.min(.05,Math.max(0,(e-this.#k)/1e3));this.#k=e,this.#ee(e,t),this.#ve()};#ee(e,t){let n=Wu(this.#d);n!==this.#h&&!this.#g&&this.#ae(n),this.#m=Vu(this.#m,this.#h,6,t),this.#_=Vu(this.#_,this.#re(e,!1),5,t),this.#v=Vu(this.#v,this.#ie(e),5,t),this.#pe(e,t)}#te(){let e=this.#F.now();this.#G()||(this.#h=this.#m=Wu(this.#d),this.#_=this.#re(e,!0),this.#v=this.#ie(e),this.#me()),this.#ve(),this.#ne(e)}#ne(e){if(this.#j!==null&&this.#F.cancelDelay(this.#j),this.#j=null,this.#G())return;let t=this.#d===`awaiting`&&this.#w!==null?this.#w+this.drowseDelay*1e3:1/0,n=Math.min(this.#T>e?this.#T:1/0,this.#E>e?this.#E:1/0,t>e?t:1/0);Number.isFinite(n)&&(this.#j=this.#F.delay(()=>this.#te(),Math.max(0,n-e)+1))}#re(e,t){let n=this.#T>e?Eu:0;if(this.#d!==`awaiting`)return n;let r=this.#w===null?0:(e-this.#w)/1e3,i=this.drowseDelay;return Math.max(n,$u(t&&r>i?i+12:r,i))}#ie(e){return this.#E>e?Ou:0}#ae(e){if(this.#W()){this.#h=this.#m=e;return}this.#g=!0,this.#ce(()=>{this.#h=this.#m=e,this.#g=!1})}#oe(){return[...this.#e.querySelectorAll(`.eye-blink`)]}#se(){for(let e of this.#A)this.#F.cancelDelay(e);this.#A=[];for(let e of this.#oe())e.style.transition=`none`,e.style.transform=`scaleY(1)`}#ce(e){let t=this.#oe();if(t.length===0){e?.();return}t.forEach((t,n)=>{this.#le(t,n===0?e:void 0)})}#le(e,t){e.style.transition=`transform 110ms ease-in`,e.style.transform=`scaleY(${Cu})`,this.#A.push(this.#F.delay(()=>{t?.(),this.#d===`thinking`&&!this.#G()&&(this.#y=td(this.#y)),e.style.transition=`transform 130ms ease-out`,e.style.transform=`scaleY(1)`},120))}#ue(){this.#M.length>0||this.#W()||this.#G()||[wu,Tu].forEach((e,t)=>{this.#M.push(this.#F.repeat(()=>{let e=this.#oe()[t];e&&this.hasAttribute(`blink`)&&!this.#G()&&this.#le(e)},e))})}#de(e){return this.#d===`thinking`?{target:this.#fe(e,Pu,Fu),rate:9}:this.#d===`idle`?{target:this.#fe(e,Iu,Lu),rate:Ru}:this.#d===`awaiting`?{target:this.#ge(e),rate:6}:null}#fe(e,t,n){return e-this.#S>n&&(this.#S=e,this.#x=nd(this.#x,t.length,Math.random)),t[this.#x]??zu}#pe(e,t){let n=this.#de(e);n&&(this.#b={x:Vu(this.#b.x,n.target.x,n.rate,t),y:Vu(this.#b.y,n.target.y,n.rate,t)},this.#he())}#me(){this.#d===`awaiting`?(this.#b=this.#ge(this.#F.now()),this.#he()):(this.#d===`thinking`||this.#d===`idle`)&&this.#Oe()}#he(){this.#i&&Fd(this.#i,id.cx,this.#b.x,this.#b.y,this.#l),this.#a&&Fd(this.#a,ad.cx,this.#b.x,this.#b.y,this.#l)}#ge(e){if(this.#P!==null&&e-this.#P<md)return this.#N;this.#P=e;let t=this.getAttribute(`gaze-target`),n=t?this.ownerDocument.querySelector(t):null,r=this.#o?.getBoundingClientRect();if(!n||!r?.width||!r.height)return this.#N=zu,this.#N;let i=n.getBoundingClientRect();return this.#N={x:(i.left+i.width/2-r.left)*(200/r.width),y:(i.top+i.height/2-r.top)*(100/r.height)},this.#N}#_e(){return this.#d===`thinking`}#ve(){let e=this.#F.now(),t=this.#m,n=Gu(t),r=this.#B()*Ju(this.#D-e);this.#C=r,this.#l=Yu(r);for(let[e,i]of[`l`,`r`].entries()){let a=e===0?id.cx:ad.cx;this.#ye(i,n),this.#be(i,a,r,t),this.#xe(i,a,t),this.#Ce(i)}}#ye(e,t){for(let n of this.#e.querySelectorAll(`.eye-body-${e} .socket, .eye-body-${e} .eye-outline, .eye-body-${e} .noise-clip`))yd(n,`rx`,t)}#be(e,t,n,r){let i=this.#e.querySelector(`.pupil-${e} rect`);if(!i)return;yd(i,`x`,t-n),yd(i,`y`,50-n),yd(i,`width`,n*2),yd(i,`height`,n*2),yd(i,`rx`,Ku(n,r));let a=this.#e.querySelector(`.pupil-${e} circle`);yd(a,`cx`,t-n*.3),yd(a,`cy`,50-n*.35),yd(a,`r`,n*.4)}#xe(e,t,n){let r=this.#e.querySelector(`.eye-${e} .lid-clip`);if(!r)return;let i=Xu(this.#_),a=Zu(this.#v);yd(r,`y`,i),yd(r,`height`,Math.max(0,a-i)),this.#Se(`.eye-${e} .lid-top`,t,i,n,this.#_),this.#Se(`.eye-${e} .lid-bottom`,t,a,n,this.#v)}#Se(e,t,n,r,i){let a=this.#e.querySelector(e);if(!a)return;let o=Qu(n,r);yd(a,`x1`,t-o),yd(a,`x2`,t+o),yd(a,`y1`,n),yd(a,`y2`,n),vd(a,`display`,i>.02?`inline`:`none`)}#Ce(e){let t=this.#e.querySelector(`.brow-${e}`);if(!t)return;let n=this.#_e(),r=e===`l`?this.#y.left:this.#y.right;vd(t,`opacity`,n?`1`:`0`),t.style.transform=n?`translateY(${r.raise.toFixed(2)}px) rotate(${r.tilt.toFixed(2)}deg)`:`translateY(6px)`}#we(){if(this.#De(),this.#s.length===0&&this.#Te(),this.#r?.matches){this.#Ee(null);return}this.#Ee(Nd()),this.#c=window.setInterval(()=>{this.#Ee(Nd())},1e3/sd)}#Te(){let e=this.#o?.getBoundingClientRect(),t=e?Math.min(e.width/200,e.height/100):0,n=od/(t>0?t:.25);this.#s=[...this.#e.querySelectorAll(`.noise`)].map((e,t)=>{let r=t===0?id.cx:ad.cx,i=[],a=r-id.r,o=r+id.r,s=50-id.r,c=50+id.r;for(let e=s;e<c;e+=n)for(let t=a;t<o;t+=n){let r=z(`rect`,{x:t,y:e,width:Math.min(n,o-t),height:Math.min(n,c-e),opacity:cd});i.push(r)}return e.replaceChildren(...i),i})}#Ee(e){this.#s.forEach((t,n)=>{let r=e===null?jd(n):Md(n,e),i=r===0?ud:r;(t[0]?.parentElement)?.setAttribute(`data-seed`,String(i));for(let e of t){i=Ad(i);let t=`${ld[i%ld.length]*100}%`;e.setAttribute(`fill`,`rgb(${t} ${t} ${t})`)}})}#De(){this.#c!==null&&(window.clearInterval(this.#c),this.#c=null)}#Oe(){this.#i?.setAttribute(`transform`,`translate(0,0)`),this.#a?.setAttribute(`transform`,`translate(0,0)`)}#ke(e){if(!this.#o||!this.#i||!this.#a)return;let t=this.#o.getBoundingClientRect();!t.width||!t.height||(this.#b={x:(e.clientX-t.left)*(200/t.width),y:(e.clientY-t.top)*(100/t.height)},this.#he())}});var Ld=L(`
5752
5754
  :host{display:inline-block;}
5753
5755
  .switcher-more{position:relative;}
5754
5756
  .morebtn{position:relative;display:none;font:inherit;font-size:13px;font-weight:600;color:var(--txt-2);background:transparent;border:1px solid var(--line);border-radius:9999px;height:var(--ctl-h,30px);padding:0 11px;cursor:pointer;line-height:1;align-items:center;}
@@ -5787,14 +5789,14 @@ iframe {
5787
5789
  @keyframes scoopReveal{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}
5788
5790
  @keyframes scoopArc{from{transform:rotate(-90deg);}to{transform:rotate(270deg);}}
5789
5791
  @media (prefers-reduced-motion:reduce){.popup-row{animation:none;}.popup-row[data-state="working"] .glyph-arc{animation:none;transform:rotate(-90deg);}}
5790
- `),Eu=[4,5,3,7,1,6,2,0,8],Du=`http://www.w3.org/2000/svg`,Ou=5,ku=2*Math.PI*Ou;function Au(e,t,...n){let r=document.createElementNS(Du,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}function ju(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function Mu(e){return e.state??`idle`}function Nu(e){return(90+ju(e)*2.7)/360*ku}function Pu(e,t,n=0){let r=[];return e===`initializing`?r.push(Au(`circle`,{class:`initializing-ring`,cx:7,cy:7,r:Ou,"stroke-width":1.7})):r.push(Au(`circle`,{class:`glyph-base`,cx:7,cy:7,r:Ou,"stroke-width":1.5})),(e===`working`||e===`idle`)&&r.push(Au(`circle`,{class:`glyph-arc`,cx:7,cy:7,r:Ou,"stroke-width":2,"stroke-dasharray":`${Nu(t).toFixed(3)} ${ku.toFixed(3)}`,"stroke-dashoffset":0})),e===`working`&&r.push(Au(`circle`,{class:`glyph-pin`,cx:7,cy:7,r:1.25})),e===`broken`&&r.push(Au(`line`,{class:`broken-x`,x1:4.8,y1:4.8,x2:9.2,y2:9.2,"stroke-width":1.8}),Au(`line`,{class:`broken-x`,x1:9.2,y1:4.8,x2:4.8,y2:9.2,"stroke-width":1.8})),n>0&&r.push(Au(`circle`,{class:`glyph-unread`,cx:10.89,cy:3.11,r:2.4,"stroke-width":1.5})),Au(`svg`,{class:`status-glyph`,viewBox:`0 0 14 14`,width:14,height:14,"aria-hidden":`true`},...r)}function Fu(e){return typeof e.unread==`number`&&Number.isFinite(e.unread)?Math.max(0,Math.floor(e.unread)):0}function Iu(e){return e.state===`broken`?`broken`:(e.fill??0)>=75?`near-limit`:e.state===`working`?`working`:`idle`}function Lu(e){return e===`broken`?3:e===`near-limit`?2:+(e===`working`)}function Ru(e){let t=e.reduce((e,t)=>{let n=Iu(t);return Lu(n)>Lu(e)?n:e},`idle`),n=t===`near-limit`?`near context limit`:t,r=e.reduce((e,t)=>e+Fu(t),0),i=r>0?`; ${r} unread message${r===1?``:`s`}`:``;return`${e.length} hidden scoop${e.length===1?``:`s`}; worst state ${n}${i}`}function zu(e,t=!1){if(t)return L(`span`,{class:`overflow-grid-cell overflow-grid-cell--plus`,"aria-hidden":`true`},L(`span`,{class:`overflow-plus-bar overflow-plus-bar--horizontal`}),L(`span`,{class:`overflow-plus-bar overflow-plus-bar--vertical`}));let n={class:`overflow-grid-cell`,"aria-hidden":`true`};return e&&(n[`data-dot-state`]=e),L(`span`,n)}function Bu(e){let t=e.map((e,t)=>({order:t,state:Iu(e)})).sort((e,t)=>Lu(t.state)-Lu(e.state)||e.order-t.order).slice(0,e.length>9?8:9),n=Array.from({length:Eu.length},()=>zu());return t.forEach((e,t)=>{n[Eu[t]]=zu(e.state)}),e.length>9&&(n[Eu.at(-1)]=zu(void 0,!0)),L(`span`,{class:`overflow-grid`,role:`img`,"aria-label":Ru(e),"data-hidden-count":String(e.length)},...n)}F(`slicc-scoop-overflow`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=[];#n;#r;#i;#a;#o=e=>{this.open&&!this.contains(e.target)&&this.close()};#s=e=>{!this.open||e.key!==`Escape`||(e.preventDefault(),this.close(),this.#r.focus())};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Tu]}connectedCallback(){this.#c()}disconnectedCallback(){document.removeEventListener(`click`,this.#o),document.removeEventListener(`keydown`,this.#s)}attributeChangedCallback(e){e===`open`&&this.#n&&this.#u()}get items(){return this.#t}set items(e){this.#t=Array.isArray(e)?e:[],this.isConnected&&this.#l()}get count(){return this.#t.length}get hasOverflow(){return this.#t.length>0}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}show(){this.open||=!0}close(){this.open&&=!1}toggle(){this.open=!this.open}#c(){this.#i=L(`slot`,{name:`more`},Bu(this.#t)),this.#r=L(`button`,{class:`morebtn`,part:`more`,type:`button`,title:`More scoops`,"aria-haspopup":`true`,"aria-expanded":`false`},this.#i),this.#a=L(`div`,{class:`pop`,part:`pop`,role:`menu`}),this.#n=L(`div`,{class:`switcher-more`,part:`wrap`},this.#r,this.#a),this.#r.addEventListener(`click`,e=>{e.stopPropagation(),this.toggle()}),this.#e.replaceChildren(this.#n),this.#l(),this.#u()}#l(){let e=this.#t.length;e>0?this.setAttribute(`count`,String(e)):this.removeAttribute(`count`),this.#n.classList.toggle(`has-overflow`,e>0),this.#r.setAttribute(`aria-haspopup`,`true`);let t=Ru(this.#t);this.#r.setAttribute(`aria-label`,`${t}. Show hidden scoops`);let n=this.#t.reduce((e,t)=>e+Fu(t),0);if(n>0?this.#r.setAttribute(`data-unread`,String(n)):this.#r.removeAttribute(`data-unread`),this.#i.replaceChildren(Bu(this.#t)),e===0){this.#a.replaceChildren(L(`slot`,{name:`empty`})),this.open&&this.close();return}let r=[];this.#t.forEach((e,t)=>{let n=e.id,i=e.label??e.id,a=Mu(e),o=ju(e.fill),s=Fu(e),c=L(`button`,{class:`popup-row`,part:`row`,type:`button`,role:`menuitem`,"aria-label":`${i}: ${a}, ${o}% context fill${s>0?`, ${s} unread message${s===1?``:`s`}`:``}`,"data-state":a,"data-k":n,...s>0?{"data-unread":String(s)}:{},style:`--hue:${e.color??`var(--rose)`};--i:${t}`},Pu(a,o,s),L(`span`,{class:`popup-label`},i),L(`span`,{class:`popup-state`},`${a} · ${o}%`));c.addEventListener(`click`,()=>{let e=c.dataset.k??``,t=this.#t.find(t=>t.id===e);this.#d(e,t?.label??e)}),r.push(c)}),this.#a.replaceChildren(...r)}#u(){let e=this.open;this.#n.classList.toggle(`open`,e),this.#r.setAttribute(`aria-expanded`,e?`true`:`false`),document.removeEventListener(`click`,this.#o),document.removeEventListener(`keydown`,this.#s),e&&(document.addEventListener(`click`,this.#o),document.addEventListener(`keydown`,this.#s))}#d(e,t){this.dispatchEvent(new CustomEvent(`slicc-scoop-select`,{detail:{id:e,key:e,label:t},bubbles:!0,composed:!0})),this.close()}});var Vu={cx:10.89,cy:3.11,r:2.4,halo:1.5},V=`slicc-agent-tabs`,Hu=`${V}-style`,Uu=`http://www.w3.org/2000/svg`,Wu=5,Gu=2*Math.PI*Wu,Ku=26,qu=8,Ju=6,Yu=39,Xu=`sliccy`,Zu=14,Qu=5,$u=16,ed=4,td=65,nd={cone:`var(--waffle)`,researcher:`var(--cyan)`,designer:`var(--violet)`,tester:`var(--amber)`,triage:`var(--green)`},rd=`
5791
- .slicc-agent-tabs{display:flex;align-items:center;gap:${qu}px;min-width:0;overflow:visible;color:var(--ink);font-family:var(--ui);}
5792
+ `),Rd=[4,5,3,7,1,6,2,0,8],zd=`http://www.w3.org/2000/svg`,Bd=5,Vd=2*Math.PI*Bd;function Hd(e,t,...n){let r=document.createElementNS(zd,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}function Ud(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function Wd(e){return e.state??`idle`}function Gd(e){return(90+Ud(e)*2.7)/360*Vd}function Kd(e,t,n=0){let r=[];return e===`initializing`?r.push(Hd(`circle`,{class:`initializing-ring`,cx:7,cy:7,r:Bd,"stroke-width":1.7})):r.push(Hd(`circle`,{class:`glyph-base`,cx:7,cy:7,r:Bd,"stroke-width":1.5})),(e===`working`||e===`idle`)&&r.push(Hd(`circle`,{class:`glyph-arc`,cx:7,cy:7,r:Bd,"stroke-width":2,"stroke-dasharray":`${Gd(t).toFixed(3)} ${Vd.toFixed(3)}`,"stroke-dashoffset":0})),e===`working`&&r.push(Hd(`circle`,{class:`glyph-pin`,cx:7,cy:7,r:1.25})),e===`broken`&&r.push(Hd(`line`,{class:`broken-x`,x1:4.8,y1:4.8,x2:9.2,y2:9.2,"stroke-width":1.8}),Hd(`line`,{class:`broken-x`,x1:9.2,y1:4.8,x2:4.8,y2:9.2,"stroke-width":1.8})),n>0&&r.push(Hd(`circle`,{class:`glyph-unread`,cx:10.89,cy:3.11,r:2.4,"stroke-width":1.5})),Hd(`svg`,{class:`status-glyph`,viewBox:`0 0 14 14`,width:14,height:14,"aria-hidden":`true`},...r)}function qd(e){return typeof e.unread==`number`&&Number.isFinite(e.unread)?Math.max(0,Math.floor(e.unread)):0}function Jd(e){return e.state===`broken`?`broken`:(e.fill??0)>=75?`near-limit`:e.state===`working`?`working`:`idle`}function Yd(e){return e===`broken`?3:e===`near-limit`?2:+(e===`working`)}function Xd(e){let t=e.reduce((e,t)=>{let n=Jd(t);return Yd(n)>Yd(e)?n:e},`idle`),n=t===`near-limit`?`near context limit`:t,r=e.reduce((e,t)=>e+qd(t),0),i=r>0?`; ${r} unread message${r===1?``:`s`}`:``;return`${e.length} hidden scoop${e.length===1?``:`s`}; worst state ${n}${i}`}function Zd(e,t=!1){if(t)return I(`span`,{class:`overflow-grid-cell overflow-grid-cell--plus`,"aria-hidden":`true`},I(`span`,{class:`overflow-plus-bar overflow-plus-bar--horizontal`}),I(`span`,{class:`overflow-plus-bar overflow-plus-bar--vertical`}));let n={class:`overflow-grid-cell`,"aria-hidden":`true`};return e&&(n[`data-dot-state`]=e),I(`span`,n)}function Qd(e){let t=e.map((e,t)=>({order:t,state:Jd(e)})).sort((e,t)=>Yd(t.state)-Yd(e.state)||e.order-t.order).slice(0,e.length>9?8:9),n=Array.from({length:Rd.length},()=>Zd());return t.forEach((e,t)=>{n[Rd[t]]=Zd(e.state)}),e.length>9&&(n[Rd.at(-1)]=Zd(void 0,!0)),I(`span`,{class:`overflow-grid`,role:`img`,"aria-label":Xd(e),"data-hidden-count":String(e.length)},...n)}F(`slicc-scoop-overflow`,class extends HTMLElement{static observedAttributes=[`open`];#e;#t=[];#n;#r;#i;#a;#o=e=>{this.open&&!this.contains(e.target)&&this.close()};#s=e=>{!this.open||e.key!==`Escape`||(e.preventDefault(),this.close(),this.#r.focus())};constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ld]}connectedCallback(){this.#c()}disconnectedCallback(){document.removeEventListener(`click`,this.#o),document.removeEventListener(`keydown`,this.#s)}attributeChangedCallback(e){e===`open`&&this.#n&&this.#u()}get items(){return this.#t}set items(e){this.#t=Array.isArray(e)?e:[],this.isConnected&&this.#l()}get count(){return this.#t.length}get hasOverflow(){return this.#t.length>0}get open(){return this.hasAttribute(`open`)}set open(e){this.toggleAttribute(`open`,e)}show(){this.open||=!0}close(){this.open&&=!1}toggle(){this.open=!this.open}#c(){this.#i=I(`slot`,{name:`more`},Qd(this.#t)),this.#r=I(`button`,{class:`morebtn`,part:`more`,type:`button`,title:`More scoops`,"aria-haspopup":`true`,"aria-expanded":`false`},this.#i),this.#a=I(`div`,{class:`pop`,part:`pop`,role:`menu`}),this.#n=I(`div`,{class:`switcher-more`,part:`wrap`},this.#r,this.#a),this.#r.addEventListener(`click`,e=>{e.stopPropagation(),this.toggle()}),this.#e.replaceChildren(this.#n),this.#l(),this.#u()}#l(){let e=this.#t.length;e>0?this.setAttribute(`count`,String(e)):this.removeAttribute(`count`),this.#n.classList.toggle(`has-overflow`,e>0),this.#r.setAttribute(`aria-haspopup`,`true`);let t=Xd(this.#t);this.#r.setAttribute(`aria-label`,`${t}. Show hidden scoops`);let n=this.#t.reduce((e,t)=>e+qd(t),0);if(n>0?this.#r.setAttribute(`data-unread`,String(n)):this.#r.removeAttribute(`data-unread`),this.#i.replaceChildren(Qd(this.#t)),e===0){this.#a.replaceChildren(I(`slot`,{name:`empty`})),this.open&&this.close();return}let r=[];this.#t.forEach((e,t)=>{let n=e.id,i=e.label??e.id,a=Wd(e),o=Ud(e.fill),s=qd(e),c=I(`button`,{class:`popup-row`,part:`row`,type:`button`,role:`menuitem`,"aria-label":`${i}: ${a}, ${o}% context fill${s>0?`, ${s} unread message${s===1?``:`s`}`:``}`,"data-state":a,"data-k":n,...s>0?{"data-unread":String(s)}:{},style:`--hue:${e.color??`var(--rose)`};--i:${t}`},Kd(a,o,s),I(`span`,{class:`popup-label`},i),I(`span`,{class:`popup-state`},`${a} · ${o}%`));c.addEventListener(`click`,()=>{let e=c.dataset.k??``,t=this.#t.find(t=>t.id===e);this.#d(e,t?.label??e)}),r.push(c)}),this.#a.replaceChildren(...r)}#u(){let e=this.open;this.#n.classList.toggle(`open`,e),this.#r.setAttribute(`aria-expanded`,e?`true`:`false`),document.removeEventListener(`click`,this.#o),document.removeEventListener(`keydown`,this.#s),e&&(document.addEventListener(`click`,this.#o),document.addEventListener(`keydown`,this.#s))}#d(e,t){this.dispatchEvent(new CustomEvent(`slicc-scoop-select`,{detail:{id:e,key:e,label:t},bubbles:!0,composed:!0})),this.close()}});var $d={cx:10.89,cy:3.11,r:2.4,halo:1.5},B=`slicc-agent-tabs`,ef=`${B}-style`,tf=`http://www.w3.org/2000/svg`,nf=5,rf=2*Math.PI*nf,af=26,of=8,sf=6,cf=39,lf=`sliccy`,uf=14,df=5,ff=16,pf=4,mf=65,hf={cone:`var(--waffle)`,researcher:`var(--cyan)`,designer:`var(--violet)`,tester:`var(--amber)`,triage:`var(--green)`},gf=`
5793
+ .slicc-agent-tabs{display:flex;align-items:center;gap:${of}px;min-width:0;overflow:visible;color:var(--ink);font-family:var(--ui);}
5792
5794
  .slicc-agent-tabs *{box-sizing:border-box;}
5793
- .slicc-agent-tabs__focus-avatar{display:block;flex:0 0 ${Ku}px;width:${Ku}px;height:${Ku}px;pointer-events:none;}
5795
+ .slicc-agent-tabs__focus-avatar{display:block;flex:0 0 ${af}px;width:${af}px;height:${af}px;pointer-events:none;}
5794
5796
  .slicc-agent-tabs__track-frame{position:relative;flex:0 1 auto;min-width:0;height:var(--ctl-h,30px);overflow:visible;border:1px solid var(--line);border-radius:9px;background:var(--ghost);}
5795
5797
  .slicc-agent-tabs__track{display:flex;align-items:center;min-width:0;height:100%;padding:2px;overflow:hidden;}
5796
5798
  .slicc-agent-tabs.has-overflow .slicc-agent-tabs__track{padding-right:41px;}
5797
- .slicc-agent-tabs__segment{position:relative;display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;gap:${Qu}px;width:max-content;min-width:var(--slicc-agent-tabs-segment-floor,${td}px);max-width:160px;height:24px;padding:0 8px;overflow:hidden;color:var(--txt-2);font:500 11px/1 var(--ui);white-space:nowrap;border:0;border-radius:6px;background:transparent;cursor:pointer;}
5799
+ .slicc-agent-tabs__segment{position:relative;display:inline-flex;flex:0 1 auto;align-items:center;justify-content:center;gap:${df}px;width:max-content;min-width:var(--slicc-agent-tabs-segment-floor,${mf}px);max-width:160px;height:24px;padding:0 8px;overflow:hidden;color:var(--txt-2);font:500 11px/1 var(--ui);white-space:nowrap;border:0;border-radius:6px;background:transparent;cursor:pointer;}
5798
5800
  .slicc-agent-tabs__segment:hover{color:var(--ink);}
5799
5801
  .slicc-agent-tabs__segment[aria-selected='true']{color:var(--ink);background:var(--canvas);box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 12%,transparent);}
5800
5802
  .slicc-agent-tabs__segment.hide{display:none;}
@@ -5831,7 +5833,7 @@ iframe {
5831
5833
  .slicc-agent-tabs slicc-scoop-overflow::part(pop){right:0;left:auto;}
5832
5834
  @keyframes slicc-agent-tabs-arc{from{transform:rotate(-90deg);}to{transform:rotate(270deg);}}
5833
5835
  @media (prefers-reduced-motion:reduce){.slicc-agent-tabs__glyph-arc{animation:none;transform:rotate(-90deg);}.slicc-agent-tabs__glyph-glow{transition:none;}}
5834
- `;function id(e){if(e.getElementById(Hu))return;let t=e.createElement(`style`);t.id=Hu,t.textContent=rd,(e.head??e.documentElement).append(t)}function ad(e,t,...n){let r=document.createElementNS(Uu,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}function od(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function sd(e){let t=e.ownerDocument.createElement(`canvas`).getContext(`2d`),n=e.ownerDocument.defaultView?.getComputedStyle(e);return!t||!n?td:(t.font=n.font,Math.ceil(t.measureText(Xu).width+Zu+Qu+$u)+ed)}function cd(e){return(90+od(e)*2.7)/360*Gu}function ld(e,t){return t===`working`?e.phase===`tool`?`tool`:`thinking`:null}function ud(e,t){return t===`working`?ld(e,t)===`tool`?`working`:`thinking`:t===`idle`?e.awaiting?`awaiting`:`idle`:null}function dd(e,t){return t||typeof e.unread!=`number`||!Number.isFinite(e.unread)?0:Math.max(0,Math.floor(e.unread))}function fd(e,t){return e.state?e.state:e.eyes===`dead`?`broken`:t===e.key?`working`:`idle`}function pd(e){return e.type===`cone`||e.key===`cone`?`cone`:`scoop`}function md(e){return e.eyes??`open`}function hd(e){return nd[e.key]??e.color??`var(--rose)`}function gd(e){let t=[ad(`circle`,{class:`${V}__glyph-glow`,cx:7,cy:7,r:Wu,"stroke-width":1.5}),ad(`circle`,{class:`${V}__glyph-base`,cx:7,cy:7,r:Wu,"stroke-width":1.5}),ad(`circle`,{class:`${V}__glyph-arc`,cx:7,cy:7,r:Wu,"stroke-width":2,"stroke-dasharray":`${cd(od(e.fill)).toFixed(3)} ${Gu.toFixed(3)}`,"stroke-dashoffset":0}),ad(`circle`,{class:`${V}__glyph-pin`,cx:7,cy:7,r:1.25}),ad(`rect`,{class:`${V}__glyph-pin-square`,x:5.5,y:5.5,width:3,height:3,rx:.15}),ad(`line`,{class:`${V}__broken-x`,x1:4.8,y1:4.8,x2:9.2,y2:9.2,"stroke-width":1.8}),ad(`line`,{class:`${V}__broken-x`,x1:9.2,y1:4.8,x2:4.8,y2:9.2,"stroke-width":1.8}),ad(`circle`,{class:`${V}__initializing-ring`,cx:7,cy:7,r:Wu,"stroke-width":1.7}),ad(`circle`,{class:`${V}__glyph-unread`,cx:Vu.cx,cy:Vu.cy,r:Vu.r,"stroke-width":Vu.halo})];return ad(`svg`,{class:`${V}__status-glyph`,viewBox:`0 0 14 14`,width:14,height:14,"aria-hidden":`true`},...t)}F(`slicc-agent-tabs`,class extends HTMLElement{static observedAttributes=[`active`,`attention`,`connection`,`gaze-target`,`drowse-delay`];#e=[];#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=!1;#c=null;#l=!1;#u=null;#d=e=>this.#w(e);#f=e=>this.#T(e);connectedCallback(){id(this.ownerDocument),this.classList.add(V),this.setAttribute(`part`,`row`),this.#l||=!0,this.addEventListener(`click`,this.#d),this.addEventListener(`keydown`,this.#f),this.#m(),this.#k(),requestAnimationFrame(()=>this.reflow())}disconnectedCallback(){this.#o?.disconnect(),this.#o=null,this.#c!==null&&cancelAnimationFrame(this.#c),this.#c=null,this.removeEventListener(`click`,this.#d),this.removeEventListener(`keydown`,this.#f)}attributeChangedCallback(e,t,n){!this.#l||!this.isConnected||(this.#m(),this.reflow(),e===`active`&&n!==null&&n!==t&&this.#E(n))}get scoops(){return this.#e.map(e=>({...e}))}set scoops(e){let t=new Map;if(Array.isArray(e))for(let n of e)t.has(n.key)||t.set(n.key,{...n});this.#e=[...t.values()],this.#l&&this.isConnected&&(this.#m(),this.reflow())}get attention(){return this.getAttribute(`attention`)}set attention(e){e==null?this.removeAttribute(`attention`):this.setAttribute(`attention`,e)}get active(){return this.getAttribute(`active`)}set active(e){e==null?this.removeAttribute(`active`):this.setAttribute(`active`,e)}get connection(){return this.getAttribute(`connection`)===`disconnected`?`disconnected`:`connected`}set connection(e){this.setAttribute(`connection`,e)}get gazeTarget(){return this.getAttribute(`gaze-target`)}set gazeTarget(e){e==null?this.removeAttribute(`gaze-target`):this.setAttribute(`gaze-target`,e)}get arrowKeys(){return this.getAttribute(`arrow-keys`)===`off`?`off`:`on`}set arrowKeys(e){e===`off`?this.setAttribute(`arrow-keys`,`off`):this.removeAttribute(`arrow-keys`)}get drowseDelay(){let e=this.getAttribute(`drowse-delay`);if(e===null)return null;let t=Number.parseFloat(e);return Number.isFinite(t)?t:null}set drowseDelay(e){e==null?this.removeAttribute(`drowse-delay`):this.setAttribute(`drowse-delay`,String(e))}scrutinize(){this.#t?.scrutinize()}glower(){this.#t?.glower()}wake(){this.#t?.wake()}select(e){this.active=e;let t=this.#e.find(t=>t.key===e)?.label??e;this.dispatchEvent(new CustomEvent(`slicc-scoop-select`,{detail:{id:e,key:e,label:t},bubbles:!0,composed:!0}))}reflow(){if(!(!this.isConnected||this.#s)){this.#s=!0;try{this.#p()}finally{this.#s=!1}}}#p(){let e=[...this.querySelectorAll(`.${V}__segment`)];for(let t of e)t.classList.remove(`hide`);if(this.classList.remove(`has-overflow`),e.length===0){this.#C([]);return}this.#u===null&&(this.#u=sd(e[0]),this.style.setProperty(`--slicc-agent-tabs-segment-floor`,`${this.#u}px`));let t=this.clientWidth;if(t<=0){this.#C([]),requestAnimationFrame(()=>{this.isConnected&&this.clientWidth>0&&this.reflow()});return}let n=Math.max(0,t-Ku-qu-Ju),r=e.map(e=>e.offsetWidth),i=r.reduce((e,t)=>e+t,0),a=e.length>1&&i>n+1;this.classList.toggle(`has-overflow`,a);let o=a?e.map(e=>e.offsetWidth):r,s=Math.max(0,n-(a?Yu:0));if(!a){this.#C([]);return}let c=[],l=0;e.forEach((e,t)=>{t===0||c.length===0&&l+o[t]<=s?l+=o[t]:(e.classList.add(`hide`),c.push(e))}),this.#C(c)}#m(){let e=this.#D(),t=this.#e.find(e=>e.key===this.active)??this.#e.at(0)??null;this.#h(),this.#v(t),this.#x(t?.key??null),e!=null&&!this.#e.some(t=>t.key===e)&&this.#O(t?.key??null)?.focus()}#h(){if(this.#r&&this.#i&&this.#a&&this.contains(this.#i))return;this.#r=L(`div`,{class:`${V}__track`,part:`track`,role:`tablist`,"aria-label":`Agents`});let e=this.ownerDocument.createElement(`slicc-scoop-overflow`);e.setAttribute(`part`,`overflow`),e.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.id;typeof t==`string`&&(e.stopPropagation(),this.select(t))}),this.#a=e,this.#i=L(`div`,{class:`${V}__track-frame`,part:`track-frame`},this.#r,e),this.replaceChildren(this.#i)}#g(e){let t=L(`slicc-agent-avatar`,{class:`${V}__focus-avatar`,part:`avatar`,role:`img`});return this.#_(t,e),t}#_(e,t){let n=fd(t,this.attention);this.#S(e,`type`,pd(t)),this.#S(e,`color`,t.color??null),this.#S(e,`eyes`,md(t)),this.#S(e,`connection`,this.getAttribute(`connection`)),this.#S(e,`fill`,String(Math.round(od(t.fill)))),this.#S(e,`blink`,n===`working`),this.#S(e,`activity`,ud(t,n)),this.#S(e,`gaze-target`,this.getAttribute(`gaze-target`)),this.#S(e,`drowse-delay`,this.getAttribute(`drowse-delay`)),this.#S(e,`aria-label`,`${t.label??t.key} focused agent`),e.style.setProperty(`--slicc-agent-tabs-hue`,hd(t))}#v(e){if(!e){this.#t?.remove(),this.#t=null,this.#n=null;return}let t=this.#t??this.#g(e);this.#t=t;let n=this.#n!==null&&this.#n!==e.key;this.#n=e.key,this.#_(t,e),n&&t.resetExpression(),(t.parentElement!==this||t.nextElementSibling!==this.#i)&&this.insertBefore(t,this.#i)}#y(e,t){let n=L(`button`,{part:`segment`,type:`button`,role:`tab`},gd(e),L(`span`,{class:`${V}__label`},e.label??e.key));return this.#b(n,e,t),n}#b(e,t,n){let r=fd(t,this.attention),i=ld(t,r),a=od(t.fill),o=this.attention===t.key,s=dd(t,t.key===n);e.className=`${V}__segment${t.ephemeral?` ephemeral`:``}`,e.setAttribute(`aria-selected`,String(t.key===n)),e.tabIndex=t.key===n?0:-1;let c=i===`tool`?` (running a tool)`:i?` (thinking)`:``,l=s>0?`, ${s} unread message${s===1?``:`s`}`:``;e.setAttribute(`aria-label`,`${t.label??t.key}: ${r}${c}, ${Math.round(a)}% context fill${o?`, spoke most recently`:``}${l}`),e.dataset.k=t.key,e.dataset.state=r,this.#S(e,`data-phase`,i),this.#S(e,`data-attention`,o?`true`:null),e.style.setProperty(`--slicc-agent-tabs-hue`,hd(t)),this.#S(e,`data-unread`,s>0?String(s):null);let u=e.querySelector(`.${V}__label`);u&&(u.textContent=t.label??t.key),e.querySelector(`.${V}__glyph-arc`)?.setAttribute(`stroke-dasharray`,`${cd(a).toFixed(3)} ${Gu.toFixed(3)}`)}#x(e){if(!this.#r)return;let t=new Map;for(let e of this.#r.querySelectorAll(`:scope > .${V}__segment`)){let n=e.dataset.k??``;t.has(n)?e.remove():t.set(n,e)}let n=this.#e.map(n=>{let r=t.get(n.key)??this.#y(n,e);return t.delete(n.key),this.#b(r,n,e),r});for(let e of t.values())e.remove();n.forEach((e,t)=>{let n=this.#r?.children.item(t)??null;n!==e&&this.#r?.insertBefore(e,n)})}#S(e,t,n){n===null||n===!1?e.hasAttribute(t)&&e.removeAttribute(t):n===!0?e.hasAttribute(t)||e.setAttribute(t,``):e.getAttribute(t)!==n&&e.setAttribute(t,n)}#C(e){if(!this.#a)return;let t=e.map(e=>{let t=e.dataset.k??``,n=this.#e.find(e=>e.key===t)??{key:t};return{id:t,label:n.label??t,type:pd(n),color:n.color,eyes:md(n),state:fd(n,this.attention),fill:od(n.fill),unread:Number(e.dataset.unread??0)}});this.#a.items=t}#w(e){let t=e.target?.closest(`.${V}__segment`);t&&this.contains(t)&&t.dataset.k&&this.select(t.dataset.k)}#T(e){let t=e.target?.closest(`.${V}__segment`);if(!t||!this.contains(t))return;if(e.key===`Enter`||e.key===` `){if(!t.dataset.k)return;e.preventDefault(),this.select(t.dataset.k);return}if((e.key===`ArrowLeft`||e.key===`ArrowRight`)&&this.arrowKeys===`off`)return;let n=[...this.querySelectorAll(`.${V}__segment:not(.hide)`)].filter(e=>!e.disabled),r=n.indexOf(t);if(r<0||n.length===0)return;let i;if(e.key===`ArrowLeft`)i=n[(r-1+n.length)%n.length];else if(e.key===`ArrowRight`)i=n[(r+1)%n.length];else if(e.key===`Home`)i=n[0];else if(e.key===`End`)i=n.at(-1);else return;e.preventDefault(),i?.focus()}#E(e){let t=this.#D();t!==null&&t!==e&&this.#O(e)?.focus()}#D(){let e=this.ownerDocument.activeElement;return!(e instanceof Element)||!this.contains(e)?null:e.closest(`.${V}__segment`)?.dataset.k??null}#O(e){return e==null?null:[...this.querySelectorAll(`.${V}__segment`)].find(t=>t.dataset.k===e)??null}#k(){this.#o||typeof ResizeObserver>`u`||(this.#o=new ResizeObserver(()=>{this.#c===null&&(this.#c=requestAnimationFrame(()=>{this.#c=null,this.reflow()}))}),this.#o.observe(this),this.parentElement&&this.#o.observe(this.parentElement))}});var _d=`/**
5836
+ `;function _f(e){if(e.getElementById(ef))return;let t=e.createElement(`style`);t.id=ef,t.textContent=gf,(e.head??e.documentElement).append(t)}function vf(e,t,...n){let r=document.createElementNS(tf,e);for(let[e,n]of Object.entries(t))r.setAttribute(e,String(n));return r.append(...n),r}function yf(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function bf(e){let t=e.ownerDocument.createElement(`canvas`).getContext(`2d`),n=e.ownerDocument.defaultView?.getComputedStyle(e);return!t||!n?mf:(t.font=n.font,Math.ceil(t.measureText(lf).width+uf+df+ff)+pf)}function xf(e){return(90+yf(e)*2.7)/360*rf}function Sf(e,t){return t===`working`?e.phase===`tool`?`tool`:`thinking`:null}function Cf(e,t){return t===`working`?Sf(e,t)===`tool`?`working`:`thinking`:t===`idle`?e.awaiting?`awaiting`:`idle`:null}function wf(e,t){return t||typeof e.unread!=`number`||!Number.isFinite(e.unread)?0:Math.max(0,Math.floor(e.unread))}function Tf(e,t){return e.state?e.state:e.eyes===`dead`?`broken`:t===e.key?`working`:`idle`}function Ef(e){return e.type===`cone`||e.key===`cone`?`cone`:`scoop`}function Df(e){return e.eyes??`open`}function Of(e){return hf[e.key]??e.color??`var(--rose)`}function kf(e){let t=[vf(`circle`,{class:`${B}__glyph-glow`,cx:7,cy:7,r:nf,"stroke-width":1.5}),vf(`circle`,{class:`${B}__glyph-base`,cx:7,cy:7,r:nf,"stroke-width":1.5}),vf(`circle`,{class:`${B}__glyph-arc`,cx:7,cy:7,r:nf,"stroke-width":2,"stroke-dasharray":`${xf(yf(e.fill)).toFixed(3)} ${rf.toFixed(3)}`,"stroke-dashoffset":0}),vf(`circle`,{class:`${B}__glyph-pin`,cx:7,cy:7,r:1.25}),vf(`rect`,{class:`${B}__glyph-pin-square`,x:5.5,y:5.5,width:3,height:3,rx:.15}),vf(`line`,{class:`${B}__broken-x`,x1:4.8,y1:4.8,x2:9.2,y2:9.2,"stroke-width":1.8}),vf(`line`,{class:`${B}__broken-x`,x1:9.2,y1:4.8,x2:4.8,y2:9.2,"stroke-width":1.8}),vf(`circle`,{class:`${B}__initializing-ring`,cx:7,cy:7,r:nf,"stroke-width":1.7}),vf(`circle`,{class:`${B}__glyph-unread`,cx:$d.cx,cy:$d.cy,r:$d.r,"stroke-width":$d.halo})];return vf(`svg`,{class:`${B}__status-glyph`,viewBox:`0 0 14 14`,width:14,height:14,"aria-hidden":`true`},...t)}F(`slicc-agent-tabs`,class extends HTMLElement{static observedAttributes=[`active`,`attention`,`connection`,`gaze-target`,`drowse-delay`];#e=[];#t=null;#n=null;#r=null;#i=null;#a=null;#o=null;#s=!1;#c=null;#l=!1;#u=null;#d=e=>this.#w(e);#f=e=>this.#T(e);connectedCallback(){_f(this.ownerDocument),this.classList.add(B),this.setAttribute(`part`,`row`),this.#l||=!0,this.addEventListener(`click`,this.#d),this.addEventListener(`keydown`,this.#f),this.#m(),this.#k(),requestAnimationFrame(()=>this.reflow())}disconnectedCallback(){this.#o?.disconnect(),this.#o=null,this.#c!==null&&cancelAnimationFrame(this.#c),this.#c=null,this.removeEventListener(`click`,this.#d),this.removeEventListener(`keydown`,this.#f)}attributeChangedCallback(e,t,n){!this.#l||!this.isConnected||(this.#m(),this.reflow(),e===`active`&&n!==null&&n!==t&&this.#E(n))}get scoops(){return this.#e.map(e=>({...e}))}set scoops(e){let t=new Map;if(Array.isArray(e))for(let n of e)t.has(n.key)||t.set(n.key,{...n});this.#e=[...t.values()],this.#l&&this.isConnected&&(this.#m(),this.reflow())}get attention(){return this.getAttribute(`attention`)}set attention(e){e==null?this.removeAttribute(`attention`):this.setAttribute(`attention`,e)}get active(){return this.getAttribute(`active`)}set active(e){e==null?this.removeAttribute(`active`):this.setAttribute(`active`,e)}get connection(){return this.getAttribute(`connection`)===`disconnected`?`disconnected`:`connected`}set connection(e){this.setAttribute(`connection`,e)}get gazeTarget(){return this.getAttribute(`gaze-target`)}set gazeTarget(e){e==null?this.removeAttribute(`gaze-target`):this.setAttribute(`gaze-target`,e)}get arrowKeys(){return this.getAttribute(`arrow-keys`)===`off`?`off`:`on`}set arrowKeys(e){e===`off`?this.setAttribute(`arrow-keys`,`off`):this.removeAttribute(`arrow-keys`)}get drowseDelay(){let e=this.getAttribute(`drowse-delay`);if(e===null)return null;let t=Number.parseFloat(e);return Number.isFinite(t)?t:null}set drowseDelay(e){e==null?this.removeAttribute(`drowse-delay`):this.setAttribute(`drowse-delay`,String(e))}scrutinize(){this.#t?.scrutinize()}glower(){this.#t?.glower()}wake(){this.#t?.wake()}select(e){this.active=e;let t=this.#e.find(t=>t.key===e)?.label??e;this.dispatchEvent(new CustomEvent(`slicc-scoop-select`,{detail:{id:e,key:e,label:t},bubbles:!0,composed:!0}))}reflow(){if(!(!this.isConnected||this.#s)){this.#s=!0;try{this.#p()}finally{this.#s=!1}}}#p(){let e=[...this.querySelectorAll(`.${B}__segment`)];for(let t of e)t.classList.remove(`hide`);if(this.classList.remove(`has-overflow`),e.length===0){this.#C([]);return}this.#u===null&&(this.#u=bf(e[0]),this.style.setProperty(`--slicc-agent-tabs-segment-floor`,`${this.#u}px`));let t=this.clientWidth;if(t<=0){this.#C([]),requestAnimationFrame(()=>{this.isConnected&&this.clientWidth>0&&this.reflow()});return}let n=Math.max(0,t-af-of-sf),r=e.map(e=>e.offsetWidth),i=r.reduce((e,t)=>e+t,0),a=e.length>1&&i>n+1;this.classList.toggle(`has-overflow`,a);let o=a?e.map(e=>e.offsetWidth):r,s=Math.max(0,n-(a?cf:0));if(!a){this.#C([]);return}let c=[],l=0;e.forEach((e,t)=>{t===0||c.length===0&&l+o[t]<=s?l+=o[t]:(e.classList.add(`hide`),c.push(e))}),this.#C(c)}#m(){let e=this.#D(),t=this.#e.find(e=>e.key===this.active)??this.#e.at(0)??null;this.#h(),this.#v(t),this.#x(t?.key??null),e!=null&&!this.#e.some(t=>t.key===e)&&this.#O(t?.key??null)?.focus()}#h(){if(this.#r&&this.#i&&this.#a&&this.contains(this.#i))return;this.#r=I(`div`,{class:`${B}__track`,part:`track`,role:`tablist`,"aria-label":`Agents`});let e=this.ownerDocument.createElement(`slicc-scoop-overflow`);e.setAttribute(`part`,`overflow`),e.addEventListener(`slicc-scoop-select`,e=>{let t=e.detail?.id;typeof t==`string`&&(e.stopPropagation(),this.select(t))}),this.#a=e,this.#i=I(`div`,{class:`${B}__track-frame`,part:`track-frame`},this.#r,e),this.replaceChildren(this.#i)}#g(e){let t=I(`slicc-agent-avatar`,{class:`${B}__focus-avatar`,part:`avatar`,role:`img`});return this.#_(t,e),t}#_(e,t){let n=Tf(t,this.attention);this.#S(e,`type`,Ef(t)),this.#S(e,`color`,t.color??null),this.#S(e,`eyes`,Df(t)),this.#S(e,`connection`,this.getAttribute(`connection`)),this.#S(e,`fill`,String(Math.round(yf(t.fill)))),this.#S(e,`blink`,n===`working`),this.#S(e,`activity`,Cf(t,n)),this.#S(e,`gaze-target`,this.getAttribute(`gaze-target`)),this.#S(e,`drowse-delay`,this.getAttribute(`drowse-delay`)),this.#S(e,`aria-label`,`${t.label??t.key} focused agent`),e.style.setProperty(`--slicc-agent-tabs-hue`,Of(t))}#v(e){if(!e){this.#t?.remove(),this.#t=null,this.#n=null;return}let t=this.#t??this.#g(e);this.#t=t;let n=this.#n!==null&&this.#n!==e.key;this.#n=e.key,this.#_(t,e),n&&t.resetExpression(),(t.parentElement!==this||t.nextElementSibling!==this.#i)&&this.insertBefore(t,this.#i)}#y(e,t){let n=I(`button`,{part:`segment`,type:`button`,role:`tab`},kf(e),I(`span`,{class:`${B}__label`},e.label??e.key));return this.#b(n,e,t),n}#b(e,t,n){let r=Tf(t,this.attention),i=Sf(t,r),a=yf(t.fill),o=this.attention===t.key,s=wf(t,t.key===n);e.className=`${B}__segment${t.ephemeral?` ephemeral`:``}`,e.setAttribute(`aria-selected`,String(t.key===n)),e.tabIndex=t.key===n?0:-1;let c=i===`tool`?` (running a tool)`:i?` (thinking)`:``,l=s>0?`, ${s} unread message${s===1?``:`s`}`:``;e.setAttribute(`aria-label`,`${t.label??t.key}: ${r}${c}, ${Math.round(a)}% context fill${o?`, spoke most recently`:``}${l}`),e.dataset.k=t.key,e.dataset.state=r,this.#S(e,`data-phase`,i),this.#S(e,`data-attention`,o?`true`:null),e.style.setProperty(`--slicc-agent-tabs-hue`,Of(t)),this.#S(e,`data-unread`,s>0?String(s):null);let u=e.querySelector(`.${B}__label`);u&&(u.textContent=t.label??t.key),e.querySelector(`.${B}__glyph-arc`)?.setAttribute(`stroke-dasharray`,`${xf(a).toFixed(3)} ${rf.toFixed(3)}`)}#x(e){if(!this.#r)return;let t=new Map;for(let e of this.#r.querySelectorAll(`:scope > .${B}__segment`)){let n=e.dataset.k??``;t.has(n)?e.remove():t.set(n,e)}let n=this.#e.map(n=>{let r=t.get(n.key)??this.#y(n,e);return t.delete(n.key),this.#b(r,n,e),r});for(let e of t.values())e.remove();n.forEach((e,t)=>{let n=this.#r?.children.item(t)??null;n!==e&&this.#r?.insertBefore(e,n)})}#S(e,t,n){n===null||n===!1?e.hasAttribute(t)&&e.removeAttribute(t):n===!0?e.hasAttribute(t)||e.setAttribute(t,``):e.getAttribute(t)!==n&&e.setAttribute(t,n)}#C(e){if(!this.#a)return;let t=e.map(e=>{let t=e.dataset.k??``,n=this.#e.find(e=>e.key===t)??{key:t};return{id:t,label:n.label??t,type:Ef(n),color:n.color,eyes:Df(n),state:Tf(n,this.attention),fill:yf(n.fill),unread:Number(e.dataset.unread??0)}});this.#a.items=t}#w(e){let t=e.target?.closest(`.${B}__segment`);t&&this.contains(t)&&t.dataset.k&&this.select(t.dataset.k)}#T(e){let t=e.target?.closest(`.${B}__segment`);if(!t||!this.contains(t))return;if(e.key===`Enter`||e.key===` `){if(!t.dataset.k)return;e.preventDefault(),this.select(t.dataset.k);return}if((e.key===`ArrowLeft`||e.key===`ArrowRight`)&&this.arrowKeys===`off`)return;let n=[...this.querySelectorAll(`.${B}__segment:not(.hide)`)].filter(e=>!e.disabled),r=n.indexOf(t);if(r<0||n.length===0)return;let i;if(e.key===`ArrowLeft`)i=n[(r-1+n.length)%n.length];else if(e.key===`ArrowRight`)i=n[(r+1)%n.length];else if(e.key===`Home`)i=n[0];else if(e.key===`End`)i=n.at(-1);else return;e.preventDefault(),i?.focus()}#E(e){let t=this.#D();t!==null&&t!==e&&this.#O(e)?.focus()}#D(){let e=this.ownerDocument.activeElement;return!(e instanceof Element)||!this.contains(e)?null:e.closest(`.${B}__segment`)?.dataset.k??null}#O(e){return e==null?null:[...this.querySelectorAll(`.${B}__segment`)].find(t=>t.dataset.k===e)??null}#k(){this.#o||typeof ResizeObserver>`u`||(this.#o=new ResizeObserver(()=>{this.#c===null&&(this.#c=requestAnimationFrame(()=>{this.#c=null,this.reflow()}))}),this.#o.observe(this),this.parentElement&&this.#o.observe(this.parentElement))}});var Af=`/**
5835
5837
  * SLICC design tokens — lifted verbatim from the prototype
5836
5838
  * (proto/StellarRubySwift.html :root + body.dark). Light is the default; dark is
5837
5839
  * opt-in. Per project decision the prototype's token vocabulary and light-default
@@ -5895,7 +5897,7 @@ iframe {
5895
5897
  --shaderbg: #171410;
5896
5898
  --shadow-pane: rgba(0, 0, 0, 0.35) 0 8px 26px -10px;
5897
5899
  }
5898
- `,vd=`slicc-tokens`;function yd(e=document){if(e.getElementById(vd))return;let t=e.createElement(`style`);t.id=vd,t.textContent=_d,(e.head??e.documentElement).appendChild(t)}function bd(e,t=document.body){t.classList.toggle(`dark`,e===`dark`),t.setAttribute(`data-theme`,e)}function xd(e=document.body){if(typeof window>`u`||typeof window.matchMedia!=`function`)return()=>{};let t=window.matchMedia(`(prefers-color-scheme: dark)`),n=()=>bd(t.matches?`dark`:`light`,e);return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}var Sd=R(`
5900
+ `,jf=`slicc-tokens`;function Mf(e=document){if(e.getElementById(jf))return;let t=e.createElement(`style`);t.id=jf,t.textContent=Af,(e.head??e.documentElement).appendChild(t)}function Nf(e,t=document.body){t.classList.toggle(`dark`,e===`dark`),t.setAttribute(`data-theme`,e)}function Pf(e=document.body){if(typeof window>`u`||typeof window.matchMedia!=`function`)return()=>{};let t=window.matchMedia(`(prefers-color-scheme: dark)`),n=()=>Nf(t.matches?`dark`:`light`,e);return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}var Ff=L(`
5899
5901
  :host { display: inline-flex; flex: 0 0 auto; }
5900
5902
  .themetgl {
5901
5903
  font: inherit; font-family: var(--ui); font-size: 14px; line-height: 1;
@@ -5907,7 +5909,7 @@ iframe {
5907
5909
  }
5908
5910
  .themetgl:hover { background: color-mix(in srgb, var(--ink) 8%, var(--ghost)); }
5909
5911
  .themetgl svg { display: block; }
5910
- `),Cd=16,wd={light:`moon`,dark:`sun`},Td={light:`Switch to dark mode`,dark:`Switch to light mode`};F(`slicc-theme-toggle`,class extends HTMLElement{static observedAttributes=[`theme`];#e;#t=null;#n=!1;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Sd];let e=L(`button`,{class:`themetgl`,part:`button`,type:`button`,"aria-pressed":`false`},L(`slot`,{name:`glyph-light`},r(wd.light,{size:Cd})),L(`slot`,{name:`glyph-dark`,hidden:!0},r(wd.dark,{size:Cd})));this.#e.replaceChildren(e),this.#t=e}connectedCallback(){this.#t?.addEventListener(`click`,this.#i),this.#a(this.theme??`light`,{silent:!0})}disconnectedCallback(){this.#t?.removeEventListener(`click`,this.#i)}attributeChangedCallback(e,t,n){e===`theme`&&t!==n&&(this.#n||this.isConnected&&this.#a(this.#r(n)??`light`,{silent:!0}))}get theme(){return this.#r(this.getAttribute(`theme`))}set theme(e){this.#a(e===`dark`?`dark`:`light`,{silent:!0})}get pressed(){return this.theme===`dark`}#r(e){return e===`dark`?`dark`:e===`light`?`light`:null}#i=()=>{this.#a(this.theme===`dark`?`light`:`dark`)};#a(e,t={}){this.#n=!0;try{if(bd(e),this.getAttribute(`theme`)!==e&&this.setAttribute(`theme`,e),this.#t){this.#t.setAttribute(`aria-pressed`,e===`dark`?`true`:`false`),this.#t.title=Td[e];let t=this.#e.querySelector(`slot[name="glyph-light"]`),n=this.#e.querySelector(`slot[name="glyph-dark"]`);t?.toggleAttribute(`hidden`,e===`dark`),n?.toggleAttribute(`hidden`,e===`light`)}for(let t of document.querySelectorAll(`slicc-add-menu`))t.setAttribute(`theme`,e)}finally{this.#n=!1}t.silent||this.dispatchEvent(new CustomEvent(`slicc-theme-change`,{detail:{theme:e},bubbles:!0,composed:!0}))}}),F(`slicc-theme`,class extends HTMLElement{static observedAttributes=[`theme`];connectedCallback(){yd(this.ownerDocument),this.classList.add(`slicc-theme`),this.#e()}attributeChangedCallback(e,t,n){e===`theme`&&t!==n&&this.isConnected&&this.#e()}get theme(){return this.getAttribute(`theme`)===`dark`?`dark`:`light`}set theme(e){this.setAttribute(`theme`,e===`dark`?`dark`:`light`)}#e(){let e=this.theme;bd(e,this),this.dispatchEvent(new CustomEvent(`slicc-theme-change`,{detail:{theme:e},bubbles:!0,composed:!0}))}});var Ed=`
5912
+ `),If=16,Lf={light:`moon`,dark:`sun`},Rf={light:`Switch to dark mode`,dark:`Switch to light mode`};F(`slicc-theme-toggle`,class extends HTMLElement{static observedAttributes=[`theme`];#e;#t=null;#n=!1;constructor(){super(),this.#e=this.attachShadow({mode:`open`}),this.#e.adoptedStyleSheets=[Ff];let e=I(`button`,{class:`themetgl`,part:`button`,type:`button`,"aria-pressed":`false`},I(`slot`,{name:`glyph-light`},i(Lf.light,{size:If})),I(`slot`,{name:`glyph-dark`,hidden:!0},i(Lf.dark,{size:If})));this.#e.replaceChildren(e),this.#t=e}connectedCallback(){this.#t?.addEventListener(`click`,this.#i),this.#a(this.theme??`light`,{silent:!0})}disconnectedCallback(){this.#t?.removeEventListener(`click`,this.#i)}attributeChangedCallback(e,t,n){e===`theme`&&t!==n&&(this.#n||this.isConnected&&this.#a(this.#r(n)??`light`,{silent:!0}))}get theme(){return this.#r(this.getAttribute(`theme`))}set theme(e){this.#a(e===`dark`?`dark`:`light`,{silent:!0})}get pressed(){return this.theme===`dark`}#r(e){return e===`dark`?`dark`:e===`light`?`light`:null}#i=()=>{this.#a(this.theme===`dark`?`light`:`dark`)};#a(e,t={}){this.#n=!0;try{if(Nf(e),this.getAttribute(`theme`)!==e&&this.setAttribute(`theme`,e),this.#t){this.#t.setAttribute(`aria-pressed`,e===`dark`?`true`:`false`),this.#t.title=Rf[e];let t=this.#e.querySelector(`slot[name="glyph-light"]`),n=this.#e.querySelector(`slot[name="glyph-dark"]`);t?.toggleAttribute(`hidden`,e===`dark`),n?.toggleAttribute(`hidden`,e===`light`)}for(let t of document.querySelectorAll(`slicc-add-menu`))t.setAttribute(`theme`,e)}finally{this.#n=!1}t.silent||this.dispatchEvent(new CustomEvent(`slicc-theme-change`,{detail:{theme:e},bubbles:!0,composed:!0}))}}),F(`slicc-theme`,class extends HTMLElement{static observedAttributes=[`theme`];connectedCallback(){Mf(this.ownerDocument),this.classList.add(`slicc-theme`),this.#e()}attributeChangedCallback(e,t,n){e===`theme`&&t!==n&&this.isConnected&&this.#e()}get theme(){return this.getAttribute(`theme`)===`dark`?`dark`:`light`}set theme(e){this.setAttribute(`theme`,e===`dark`?`dark`:`light`)}#e(){let e=this.theme;Nf(e,this),this.dispatchEvent(new CustomEvent(`slicc-theme-change`,{detail:{theme:e},bubbles:!0,composed:!0}))}});var zf=`
5911
5913
  slicc-dock-tree {
5912
5914
  display: block;
5913
5915
  /* Fill the parent shell's flex column. Without this the host collapses to
@@ -6130,7 +6132,7 @@ slicc-dock-tree .dock-tree__preview {
6130
6132
  slicc-dock-tree .dock-tree__preview--active {
6131
6133
  display: block;
6132
6134
  }
6133
- `,Dd=`slicc-dock-tree-style`;function Od(e){if(e.getElementById(Dd))return;let t=e.createElement(`style`);t.id=Dd,t.textContent=Ed,(e.head??e.documentElement).appendChild(t)}var kd=`slicc-surface`,Ad=`chat`,jd=`sprinkle:`;function Md(e){return typeof e==`string`&&e.trim().toLowerCase()===`false`}function Nd(e){return e===`chat`?`Chat`:e.startsWith(jd)?e.slice(9):e}var Pd=[`top`,`left`,`middle`,`right`,`bottom`],Fd=[`left`,`middle`,`right`],Id=[`top`,`center`,`bottom`],Ld=.02;function Rd(){return{zones:{top:null,left:null,middle:null,right:null,bottom:null},rowFr:{top:1,center:1,bottom:1},colFr:{left:1,middle:1,right:1}}}function zd(e){return JSON.parse(JSON.stringify(e))}function Bd(e,t){if(e.type===`leaf`){t.push(e.surfaceId);return}for(let n of e.children)Bd(n,t)}function Vd(e,t){if(e.type===`leaf`)return e.surfaceId===t?e:null;for(let n of e.children){let e=Vd(n,t);if(e)return e}return null}function Hd(e,t,n){if(n)return!0;function r(e,n){let i=n||e.locked===!0;if(e===t)return i;if(e.type!==`split`)return null;for(let t of e.children){let e=r(t,i);if(e!=null)return e}return null}return r(e,!1)??!1}function Ud(e){return e.locked===!0||e.type===`split`&&e.children.some(Ud)}function Wd(e){return e.getAttribute(`surface-id`)||e.getAttribute(`data-s`)||e.id||null}function Gd(e){e.style.position=`relative`,e.style.inset=`auto`,e.style.display=`flex`,e.style.flex=`1 1 auto`,e.style.minWidth=`0`,e.style.minHeight=`0`}function Kd(e){e.style.removeProperty(`position`),e.style.removeProperty(`inset`),e.style.removeProperty(`flex`),e.style.removeProperty(`min-width`),e.style.removeProperty(`min-height`),e.style.display=`none`}function qd(e,t){return{type:`split`,dir:e,children:t,sizes:t.map(()=>1)}}function Jd(e,t,n){e.type===`split`&&e.children.forEach((r,i)=>{r===t?n(e,i):Jd(r,t,n)})}function Yd(e,t){if(e.type!==`split`)return null;for(let n=0;n<e.children.length;n++){let r=e.children[n];if(r===t)return{parent:e,index:n};let i=Yd(r,t);if(i)return i}return null}function Xd(e){if(!e)return null;if(e.type!==`split`)return e;e.children=e.children.map(Xd).filter(e=>e!=null);let t=[],n=[];return e.children.forEach((r,i)=>{r.type===`split`&&r.dir===e.dir?r.children.forEach((a,o)=>{t.push(a),n.push((e.sizes[i]||1)*(r.sizes[o]||1))}):(t.push(r),n.push(e.sizes[i]||1))}),e.children=t,e.sizes=n,e.children.length===0?null:e.children.length===1?e.children[0]:e}function Zd(e,t,n){let r=e[t];if(r){if(r===n){e[t]=null;return}Jd(r,n,(e,t)=>{e.children.splice(t,1),e.sizes.splice(t,1)}),e[t]=Xd(r)}}function Qd(e,t,n,r){if(e[t]===n){e[t]=r;return}let i=e[t];i&&Jd(i,n,(e,t)=>{e.children[t]=r})}function $d(e,t,n){let r=t.reduce((e,t)=>e+t,0)-e;if(r<=0)return null;let i=Math.min(.98,Math.max(Ld,n));return i*r/(1-i)}function ef(e,t,n){let r=(t-e.left)/e.width,i=(n-e.top)/e.height;if(r>.34&&r<.66&&i>.34&&i<.66)return`center`;let a={n:i,s:1-i,w:r,e:1-r},o=Object.entries(a);return o.sort((e,t)=>e[1]-t[1]),o[0][0]}function tf(e){let t=document.createElement(`div`);return t.className=`dock-tree__divider dock-tree__divider--${e}`,t}function nf(){let e=document.createElement(`div`);return e.className=`dock-tree__root`,e}function rf(){let e=document.createElement(`div`);return e.className=`dock-tree__parking`,e.hidden=!0,e}function af(){let e=document.createElement(`div`);return e.className=`dock-tree__ghost`,e}function of(){let e=document.createElement(`div`);return e.className=`dock-tree__preview`,e}F(`slicc-dock-tree`,class extends HTMLElement{static observedAttributes=[`tiles-movable`];#e=Rd();#t=!1;#n=!1;#r=new Set;#i=null;#a=null;#o=new WeakMap;#s=new Set;#c=nf();#l=rf();#u=af();#d=of();#f=new MutationObserver(()=>this.#x());connectedCallback(){Od(this.ownerDocument),this.#n=!0,this.#c.parentElement!==this&&this.append(this.#c),this.#l.parentElement!==this&&this.append(this.#l),this.#u.parentElement!==this&&this.append(this.#u),this.#d.parentElement!==this&&this.append(this.#d),this.#x(),this.#f.observe(this,{childList:!0})}disconnectedCallback(){this.#n=!1,this.#f.disconnect(),this.#L()}attributeChangedCallback(e,t,n){e!==`tiles-movable`||t===n||!this.#n||(this.tilesMovable||this.#L(),this.#x())}get tilesMovable(){let e=this.getAttribute(`tiles-movable`);return e!==null&&!Md(e)}set tilesMovable(e){this.toggleAttribute(`tiles-movable`,!!e&&!Md(e))}setTree(e){this.#e=e?zd(e):Rd(),this.#n&&this.#x()}getTree(){return zd(this.#e)}setPinned(e){this.#r=new Set(e)}getSurfaceIds(){let e=[];for(let t of Pd){let n=this.#e.zones[t];n&&Bd(n,e)}return e}#p(e){return this.#e.zones[e]!=null||this.#t}#m(e,t){let n=this.#e.zones[t];return n?Hd(n,e,this.#e.locked===!0):!1}#h(e){if(this.#e.locked===!0)return!0;let t=this.#e.zones[e];return t!=null&&Ud(t)}#g(e){return this.#e.locked===!0?!0:e===`center`?Fd.some(e=>this.#h(e)):this.#h(e)}placeSurface(e,t){if(this.getSurfaceIds().includes(e))return;let n={type:`leaf`,surfaceId:e},r=this.#e.zones[t];this.#e.zones[t]=r==null?n:Xd(qd(`col`,[r,n])),this.#n&&this.#x(),this.#R()}removeSurface(e){if(!this.#r.has(e))for(let t of Pd){let n=this.#e.zones[t];if(!n)continue;let r=Vd(n,e);if(r){if(this.#m(r,t))return;Zd(this.#e.zones,t,r),this.#n&&this.#x(),this.#R();return}}}moveSurfaceToZone(e,t){let n=!1;for(let r of Pd){let i=this.#e.zones[r];if(!i)continue;let a=Vd(i,e);if(a){if(n=!0,this.#m(a,r)||r===t&&i===a)return;Zd(this.#e.zones,r,a);break}}if(!n){this.placeSurface(e,t);return}let r={type:`leaf`,surfaceId:e};this.#e.zones[t]=r,this.#n&&this.#x(),this.#R()}setSurfaceSize(e,t){let n=this.#_(e);if(!n)return!1;let r=this.#z().get(e)??null,i=r?.getBoundingClientRect()??null,a=r?.closest(`.dock-tree__leaf`)?.getBoundingClientRect()??i,o=!1;if(n.width&&(t.widthPx!=null||t.widthPercent!=null)){let e=a&&i?Math.max(0,a.width-i.width):0;o=this.#b(n.width,t.widthPx==null?void 0:t.widthPx+e,t.widthPercent,a?.width)||o}if(n.height&&(t.heightPx!=null||t.heightPercent!=null)){let e=a&&i?Math.max(0,a.height-i.height):0;o=this.#b(n.height,t.heightPx==null?void 0:t.heightPx+e,t.heightPercent,a?.height)||o}return o&&(this.#x(),this.#k()),o}#_(e){for(let t of Pd){let n=this.#e.zones[t];if(!n)continue;let r=Vd(n,e);if(!r)continue;if(this.#m(r,t))return{width:null,height:null};let i=Yd(n,r);if(i){let{parent:e,index:t}=i,n={currentFr:e.sizes[t]??1,groupFr:e.sizes,apply:n=>{e.sizes[t]=n}};return{width:e.dir===`row`?n:null,height:e.dir===`col`?n:null}}let a=t===`left`||t===`middle`||t===`right`,o=null;if(a){let e=t,n=this.#y();o={currentFr:this.#e.colFr[e],groupFr:n.map(e=>this.#e.colFr[e]),apply:t=>{this.#e.colFr[e]=t}}}let s=a?`center`:t,c=this.#v(),l={currentFr:this.#e.rowFr[s],groupFr:c.map(e=>this.#e.rowFr[e]),apply:e=>{this.#e.rowFr[s]=e}};return{width:o,height:l}}return null}#v(){let e=[];return this.#p(`top`)&&e.push(`top`),Fd.some(e=>this.#p(e))&&e.push(`center`),this.#p(`bottom`)&&e.push(`bottom`),e}#y(){return Fd.filter(e=>this.#p(e))}#b(e,t,n,r){let i=null;if(n!=null)i=n/100;else if(t!=null&&r!=null&&r>0&&e.currentFr>0){let n=r*e.groupFr.reduce((e,t)=>e+t,0)/e.currentFr;n>0&&(i=t/n)}if(i==null)return!1;let a=$d(e.currentFr,e.groupFr,i);return a!=null&&(e.apply(a),!0)}#x(){let e=this.#e,t=this.#z(),n=new Set(this.getSurfaceIds()),r=this.#S(e,t),i=[];if(this.#p(`top`)){let n=this.#C(`top`,t);n.style.flex=`${e.rowFr.top} 1 0`,i.push({key:`top`,el:n})}if(r&&i.push({key:`center`,el:r}),this.#p(`bottom`)){let n=this.#C(`bottom`,t);n.style.flex=`${e.rowFr.bottom} 1 0`,i.push({key:`bottom`,el:n})}let a=[];i.forEach((t,n)=>{a.push(t.el),n<i.length-1&&!this.#g(t.key)&&!this.#g(i[n+1].key)&&a.push(this.#E(`v`,t.key,i[n+1].key,this.#c,e.rowFr,Id))}),this.#c.replaceChildren(...a);for(let[e,r]of t)n.has(e)||(Kd(r),r.parentElement!==this.#l&&this.#l.appendChild(r));this.#s=n,this.dispatchEvent(new CustomEvent(`dock-tree-render`,{detail:{placed:[...n]},bubbles:!0,composed:!0}))}#S(e,t){let n=Fd.filter(e=>this.#p(e));if(n.length===0)return null;let r=document.createElement(`div`);return r.className=`dock-tree__row`,r.style.flex=`${e.rowFr.center} 1 0`,n.forEach((i,a)=>{let o=this.#C(i,t);o.style.flex=`${e.colFr[i]} 1 0`,r.appendChild(o),a<n.length-1&&!this.#h(i)&&!this.#h(n[a+1])&&r.appendChild(this.#E(`h`,i,n[a+1],r,e.colFr,Fd))}),r}#C(e,t){let n=document.createElement(`div`);n.className=`dock-tree__zone`,this.#t&&n.classList.add(`dock-tree__zone--droppable`),n.dataset.zone=e;let r=this.#e.zones[e];if(r==null){let t=document.createElement(`div`);return t.className=`dock-tree__empty`,t.textContent=`${e} (drop here)`,n.appendChild(t),n}let i=this.#w(r,t,e);return i.style.flex=`1 1 0`,n.appendChild(i),n}#w(e,t,n){if(e.type===`leaf`){let r=document.createElement(`div`);r.className=`dock-tree__leaf`;let i=t.get(e.surfaceId);return i&&r.appendChild(this.#T(e,n,e.surfaceId,i)),r}let r=document.createElement(`div`);r.className=`dock-tree__split dock-tree__split--${e.dir}`;let i=this.#e.locked===!0||e.locked===!0;return e.children.forEach((a,o)=>{let s=this.#w(a,t,n);s.style.flex=`${e.sizes[o]??1} 1 0`,r.appendChild(s),o<e.children.length-1&&!i&&r.appendChild(this.#D(e,o,r))}),r}#T(e,t,n,i){let a=document.createElement(`div`);if(a.className=`dock-tree__tile`,n!==`chat`&&(a.classList.add(`dock-tree__tile--chrome`),this.#s.has(n)||a.classList.add(`dock-tree__tile--enter`)),this.tilesMovable&&!this.#m(e,t)){let i=Nd(n),o=document.createElement(`button`);o.type=`button`,o.className=`dock-tree__tile-move`,o.setAttribute(`aria-label`,`Move ${i}`),o.title=i,o.appendChild(r(`grip-vertical`,{size:13})),o.addEventListener(`pointerdown`,n=>this.#A(n,e,t)),a.appendChild(o)}let o=document.createElement(`div`);return o.className=`dock-tree__tile-body`,Gd(i),o.appendChild(i),a.appendChild(o),this.#o.set(a,e),a}#E(e,t,n,r,i,a){let o=tf(e);return this.#O(o,e===`h`,r,()=>i[t]??1,()=>i[n]??1,(e,r)=>{i[t]=e,i[n]=r},()=>a.reduce((e,t)=>e+(i[t]??1),0)),o}#D(e,t,n){let r=e.dir===`row`,i=tf(r?`h`:`v`);return this.#O(i,r,n,()=>e.sizes[t]??1,()=>e.sizes[t+1]??1,(n,r)=>{e.sizes[t]=n,e.sizes[t+1]=r},()=>e.sizes.reduce((e,t)=>e+(t??1),0)),i}#O(e,t,n,r,i,a,o){e.addEventListener(`pointerdown`,e=>{e.preventDefault(),this.setPointerCapture(e.pointerId);let s=n.getBoundingClientRect(),c=r()+i(),l=c*Ld,u=o(),d=t?s.width:s.height,f=t?e.clientX:e.clientY,p=r(),m=e=>{let n=t?e.clientX:e.clientY,r=d>0?(n-f)/d*u:0,i=Math.max(l,Math.min(c-l,p+r));a(i,c-i),this.#x()},h=()=>{window.removeEventListener(`pointermove`,m),window.removeEventListener(`pointerup`,h),window.removeEventListener(`pointercancel`,h),this.hasPointerCapture(e.pointerId)&&this.releasePointerCapture(e.pointerId),this.#k()};window.addEventListener(`pointermove`,m),window.addEventListener(`pointerup`,h),window.addEventListener(`pointercancel`,h)})}#k(){this.dispatchEvent(new CustomEvent(`dock-tree-resize`,{detail:{tree:this.getTree()},bubbles:!0,composed:!0}))}#A(e,t,n){!this.tilesMovable||this.#m(t,n)||(e.preventDefault(),this.#j({kind:`internal`,node:t,fromZone:n},t.type===`leaf`?t.surfaceId:`panel`),this.#M(e))}beginExternalDrag(e,t){this.tilesMovable&&this.#j({kind:`external`,surfaceId:e},e)}#j(e,t){this.#i=e,this.#a=null,this.#t=!0,this.#x(),this.#u.textContent=t,this.#u.classList.add(`dock-tree__ghost--active`),window.addEventListener(`pointermove`,this.#N),window.addEventListener(`pointerup`,this.#I)}#M(e){this.#u.style.left=`${e.clientX}px`,this.#u.style.top=`${e.clientY}px`}#N=e=>{this.#M(e),this.#a=null,this.#d.classList.remove(`dock-tree__preview--active`);for(let e of Array.from(this.querySelectorAll(`.dock-tree__zone--hot`)))e.classList.remove(`dock-tree__zone--hot`);let t=this.#i;if(!t)return;let n=document.elementFromPoint(e.clientX,e.clientY);if(!n)return;let r=n.closest(`.dock-tree__zone`);if(!(r instanceof HTMLElement))return;let i=r.dataset.zone;if(!i)return;r.classList.add(`dock-tree__zone--hot`);let a=n.closest(`.dock-tree__tile`),o=a instanceof HTMLElement?this.#o.get(a):void 0,s=t.kind===`internal`&&o===t.node,c=!!o&&this.#m(o,i);if(a instanceof HTMLElement&&o&&!s&&!c){let t=a.getBoundingClientRect(),n=ef(t,e.clientX,e.clientY);this.#a={zone:i,leaf:o,region:n},this.#P(t,n)}else a||(this.#a={zone:i,empty:!0},this.#F(r.getBoundingClientRect()))};#P(e,t){let{left:n,top:r,width:i,height:a}=e;t===`n`?a=e.height/2:t===`s`?(r=e.top+e.height/2,a=e.height/2):t===`w`?i=e.width/2:t===`e`&&(n=e.left+e.width/2,i=e.width/2),this.#F(new DOMRect(n,r,i,a))}#F(e){this.#d.style.left=`${e.left}px`,this.#d.style.top=`${e.top}px`,this.#d.style.width=`${e.width}px`,this.#d.style.height=`${e.height}px`,this.#d.classList.add(`dock-tree__preview--active`)}#I=()=>{window.removeEventListener(`pointermove`,this.#N),window.removeEventListener(`pointerup`,this.#I),this.#u.classList.remove(`dock-tree__ghost--active`),this.#d.classList.remove(`dock-tree__preview--active`);for(let e of Array.from(this.querySelectorAll(`.dock-tree__zone--hot`)))e.classList.remove(`dock-tree__zone--hot`);let e=this.#a,t=this.#i;this.#a=null,this.#i=null,this.#t=!1;let n=!!t&&t.kind===`internal`&&!!e&&!e.empty&&e.leaf===t.node,r=!!t&&t.kind===`external`&&this.getSurfaceIds().includes(t.surfaceId);if(!t||!e||n||r){this.#x();return}let i;if(t.kind===`internal`?(Zd(this.#e.zones,t.fromZone,t.node),i=t.node):i={type:`leaf`,surfaceId:t.surfaceId},e.empty||this.#e.zones[e.zone]==null)this.#e.zones[e.zone]=i;else{let{region:t,leaf:n}=e,r=qd(t===`e`||t===`w`?`row`:`col`,t===`n`||t===`w`?[i,n]:[n,i]);Qd(this.#e.zones,e.zone,n,r),this.#e.zones[e.zone]=Xd(this.#e.zones[e.zone])}this.#x(),this.#R()};#L(){this.#i&&(window.removeEventListener(`pointermove`,this.#N),window.removeEventListener(`pointerup`,this.#I),this.#i=null,this.#a=null,this.#t=!1,this.#u.classList.remove(`dock-tree__ghost--active`),this.#d.classList.remove(`dock-tree__preview--active`))}#R(){this.dispatchEvent(new CustomEvent(`dock-tree-change`,{detail:{tree:this.getTree()},bubbles:!0,composed:!0}))}#z(){let e=new Map;for(let t of Array.from(this.querySelectorAll(kd))){if(!(t instanceof HTMLElement)||t.parentElement?.closest(kd))continue;let n=Wd(t);n&&e.set(n,t)}return e}});var sf=`<svg data-icon-sprite aria-hidden="true" width="0" height="0">
6135
+ `,Bf=`slicc-dock-tree-style`;function Vf(e){if(e.getElementById(Bf))return;let t=e.createElement(`style`);t.id=Bf,t.textContent=zf,(e.head??e.documentElement).appendChild(t)}var Hf=`slicc-surface`,Uf=`chat`,Wf=`sprinkle:`;function Gf(e){return typeof e==`string`&&e.trim().toLowerCase()===`false`}function Kf(e){return e===`chat`?`Chat`:e.startsWith(Wf)?e.slice(9):e}var qf=[`top`,`left`,`middle`,`right`,`bottom`],Jf=[`left`,`middle`,`right`],Yf=[`top`,`center`,`bottom`],Xf=.02;function Zf(){return{zones:{top:null,left:null,middle:null,right:null,bottom:null},rowFr:{top:1,center:1,bottom:1},colFr:{left:1,middle:1,right:1}}}function Qf(e){return JSON.parse(JSON.stringify(e))}function $f(e,t){if(e.type===`leaf`){t.push(e.surfaceId);return}for(let n of e.children)$f(n,t)}function ep(e,t){if(e.type===`leaf`)return e.surfaceId===t?e:null;for(let n of e.children){let e=ep(n,t);if(e)return e}return null}function tp(e,t,n){if(n)return!0;function r(e,n){let i=n||e.locked===!0;if(e===t)return i;if(e.type!==`split`)return null;for(let t of e.children){let e=r(t,i);if(e!=null)return e}return null}return r(e,!1)??!1}function np(e){return e.locked===!0||e.type===`split`&&e.children.some(np)}function rp(e){return e.getAttribute(`surface-id`)||e.getAttribute(`data-s`)||e.id||null}function ip(e){e.style.position=`relative`,e.style.inset=`auto`,e.style.display=`flex`,e.style.flex=`1 1 auto`,e.style.minWidth=`0`,e.style.minHeight=`0`}function ap(e){e.style.removeProperty(`position`),e.style.removeProperty(`inset`),e.style.removeProperty(`flex`),e.style.removeProperty(`min-width`),e.style.removeProperty(`min-height`),e.style.display=`none`}function op(e,t){return{type:`split`,dir:e,children:t,sizes:t.map(()=>1)}}function sp(e,t,n){e.type===`split`&&e.children.forEach((r,i)=>{r===t?n(e,i):sp(r,t,n)})}function cp(e,t){if(e.type!==`split`)return null;for(let n=0;n<e.children.length;n++){let r=e.children[n];if(r===t)return{parent:e,index:n};let i=cp(r,t);if(i)return i}return null}function lp(e){if(!e)return null;if(e.type!==`split`)return e;e.children=e.children.map(lp).filter(e=>e!=null);let t=[],n=[];return e.children.forEach((r,i)=>{r.type===`split`&&r.dir===e.dir?r.children.forEach((a,o)=>{t.push(a),n.push((e.sizes[i]||1)*(r.sizes[o]||1))}):(t.push(r),n.push(e.sizes[i]||1))}),e.children=t,e.sizes=n,e.children.length===0?null:e.children.length===1?e.children[0]:e}function up(e,t,n){let r=e[t];if(r){if(r===n){e[t]=null;return}sp(r,n,(e,t)=>{e.children.splice(t,1),e.sizes.splice(t,1)}),e[t]=lp(r)}}function dp(e,t,n,r){if(e[t]===n){e[t]=r;return}let i=e[t];i&&sp(i,n,(e,t)=>{e.children[t]=r})}function fp(e,t,n){let r=t.reduce((e,t)=>e+t,0)-e;if(r<=0)return null;let i=Math.min(.98,Math.max(Xf,n));return i*r/(1-i)}function pp(e,t,n){let r=(t-e.left)/e.width,i=(n-e.top)/e.height;if(r>.34&&r<.66&&i>.34&&i<.66)return`center`;let a={n:i,s:1-i,w:r,e:1-r},o=Object.entries(a);return o.sort((e,t)=>e[1]-t[1]),o[0][0]}function mp(e){let t=document.createElement(`div`);return t.className=`dock-tree__divider dock-tree__divider--${e}`,t}function hp(){let e=document.createElement(`div`);return e.className=`dock-tree__root`,e}function gp(){let e=document.createElement(`div`);return e.className=`dock-tree__parking`,e.hidden=!0,e}function _p(){let e=document.createElement(`div`);return e.className=`dock-tree__ghost`,e}function vp(){let e=document.createElement(`div`);return e.className=`dock-tree__preview`,e}F(`slicc-dock-tree`,class extends HTMLElement{static observedAttributes=[`tiles-movable`];#e=Zf();#t=!1;#n=!1;#r=new Set;#i=null;#a=null;#o=new WeakMap;#s=new Set;#c=hp();#l=gp();#u=_p();#d=vp();#f=new MutationObserver(()=>this.#x());connectedCallback(){Vf(this.ownerDocument),this.#n=!0,this.#c.parentElement!==this&&this.append(this.#c),this.#l.parentElement!==this&&this.append(this.#l),this.#u.parentElement!==this&&this.append(this.#u),this.#d.parentElement!==this&&this.append(this.#d),this.#x(),this.#f.observe(this,{childList:!0})}disconnectedCallback(){this.#n=!1,this.#f.disconnect(),this.#L()}attributeChangedCallback(e,t,n){e!==`tiles-movable`||t===n||!this.#n||(this.tilesMovable||this.#L(),this.#x())}get tilesMovable(){let e=this.getAttribute(`tiles-movable`);return e!==null&&!Gf(e)}set tilesMovable(e){this.toggleAttribute(`tiles-movable`,!!e&&!Gf(e))}setTree(e){this.#e=e?Qf(e):Zf(),this.#n&&this.#x()}getTree(){return Qf(this.#e)}setPinned(e){this.#r=new Set(e)}getSurfaceIds(){let e=[];for(let t of qf){let n=this.#e.zones[t];n&&$f(n,e)}return e}#p(e){return this.#e.zones[e]!=null||this.#t}#m(e,t){let n=this.#e.zones[t];return n?tp(n,e,this.#e.locked===!0):!1}#h(e){if(this.#e.locked===!0)return!0;let t=this.#e.zones[e];return t!=null&&np(t)}#g(e){return this.#e.locked===!0?!0:e===`center`?Jf.some(e=>this.#h(e)):this.#h(e)}placeSurface(e,t){if(this.getSurfaceIds().includes(e))return;let n={type:`leaf`,surfaceId:e},r=this.#e.zones[t];this.#e.zones[t]=r==null?n:lp(op(`col`,[r,n])),this.#n&&this.#x(),this.#R()}removeSurface(e){if(!this.#r.has(e))for(let t of qf){let n=this.#e.zones[t];if(!n)continue;let r=ep(n,e);if(r){if(this.#m(r,t))return;up(this.#e.zones,t,r),this.#n&&this.#x(),this.#R();return}}}moveSurfaceToZone(e,t){let n=!1;for(let r of qf){let i=this.#e.zones[r];if(!i)continue;let a=ep(i,e);if(a){if(n=!0,this.#m(a,r)||r===t&&i===a)return;up(this.#e.zones,r,a);break}}if(!n){this.placeSurface(e,t);return}let r={type:`leaf`,surfaceId:e};this.#e.zones[t]=r,this.#n&&this.#x(),this.#R()}setSurfaceSize(e,t){let n=this.#_(e);if(!n)return!1;let r=this.#z().get(e)??null,i=r?.getBoundingClientRect()??null,a=r?.closest(`.dock-tree__leaf`)?.getBoundingClientRect()??i,o=!1;if(n.width&&(t.widthPx!=null||t.widthPercent!=null)){let e=a&&i?Math.max(0,a.width-i.width):0;o=this.#b(n.width,t.widthPx==null?void 0:t.widthPx+e,t.widthPercent,a?.width)||o}if(n.height&&(t.heightPx!=null||t.heightPercent!=null)){let e=a&&i?Math.max(0,a.height-i.height):0;o=this.#b(n.height,t.heightPx==null?void 0:t.heightPx+e,t.heightPercent,a?.height)||o}return o&&(this.#x(),this.#k()),o}#_(e){for(let t of qf){let n=this.#e.zones[t];if(!n)continue;let r=ep(n,e);if(!r)continue;if(this.#m(r,t))return{width:null,height:null};let i=cp(n,r);if(i){let{parent:e,index:t}=i,n={currentFr:e.sizes[t]??1,groupFr:e.sizes,apply:n=>{e.sizes[t]=n}};return{width:e.dir===`row`?n:null,height:e.dir===`col`?n:null}}let a=t===`left`||t===`middle`||t===`right`,o=null;if(a){let e=t,n=this.#y();o={currentFr:this.#e.colFr[e],groupFr:n.map(e=>this.#e.colFr[e]),apply:t=>{this.#e.colFr[e]=t}}}let s=a?`center`:t,c=this.#v(),l={currentFr:this.#e.rowFr[s],groupFr:c.map(e=>this.#e.rowFr[e]),apply:e=>{this.#e.rowFr[s]=e}};return{width:o,height:l}}return null}#v(){let e=[];return this.#p(`top`)&&e.push(`top`),Jf.some(e=>this.#p(e))&&e.push(`center`),this.#p(`bottom`)&&e.push(`bottom`),e}#y(){return Jf.filter(e=>this.#p(e))}#b(e,t,n,r){let i=null;if(n!=null)i=n/100;else if(t!=null&&r!=null&&r>0&&e.currentFr>0){let n=r*e.groupFr.reduce((e,t)=>e+t,0)/e.currentFr;n>0&&(i=t/n)}if(i==null)return!1;let a=fp(e.currentFr,e.groupFr,i);return a!=null&&(e.apply(a),!0)}#x(){let e=this.#e,t=this.#z(),n=new Set(this.getSurfaceIds()),r=this.#S(e,t),i=[];if(this.#p(`top`)){let n=this.#C(`top`,t);n.style.flex=`${e.rowFr.top} 1 0`,i.push({key:`top`,el:n})}if(r&&i.push({key:`center`,el:r}),this.#p(`bottom`)){let n=this.#C(`bottom`,t);n.style.flex=`${e.rowFr.bottom} 1 0`,i.push({key:`bottom`,el:n})}let a=[];i.forEach((t,n)=>{a.push(t.el),n<i.length-1&&!this.#g(t.key)&&!this.#g(i[n+1].key)&&a.push(this.#E(`v`,t.key,i[n+1].key,this.#c,e.rowFr,Yf))}),this.#c.replaceChildren(...a);for(let[e,r]of t)n.has(e)||(ap(r),r.parentElement!==this.#l&&this.#l.appendChild(r));this.#s=n,this.dispatchEvent(new CustomEvent(`dock-tree-render`,{detail:{placed:[...n]},bubbles:!0,composed:!0}))}#S(e,t){let n=Jf.filter(e=>this.#p(e));if(n.length===0)return null;let r=document.createElement(`div`);return r.className=`dock-tree__row`,r.style.flex=`${e.rowFr.center} 1 0`,n.forEach((i,a)=>{let o=this.#C(i,t);o.style.flex=`${e.colFr[i]} 1 0`,r.appendChild(o),a<n.length-1&&!this.#h(i)&&!this.#h(n[a+1])&&r.appendChild(this.#E(`h`,i,n[a+1],r,e.colFr,Jf))}),r}#C(e,t){let n=document.createElement(`div`);n.className=`dock-tree__zone`,this.#t&&n.classList.add(`dock-tree__zone--droppable`),n.dataset.zone=e;let r=this.#e.zones[e];if(r==null){let t=document.createElement(`div`);return t.className=`dock-tree__empty`,t.textContent=`${e} (drop here)`,n.appendChild(t),n}let i=this.#w(r,t,e);return i.style.flex=`1 1 0`,n.appendChild(i),n}#w(e,t,n){if(e.type===`leaf`){let r=document.createElement(`div`);r.className=`dock-tree__leaf`;let i=t.get(e.surfaceId);return i&&r.appendChild(this.#T(e,n,e.surfaceId,i)),r}let r=document.createElement(`div`);r.className=`dock-tree__split dock-tree__split--${e.dir}`;let i=this.#e.locked===!0||e.locked===!0;return e.children.forEach((a,o)=>{let s=this.#w(a,t,n);s.style.flex=`${e.sizes[o]??1} 1 0`,r.appendChild(s),o<e.children.length-1&&!i&&r.appendChild(this.#D(e,o,r))}),r}#T(e,t,n,r){let a=document.createElement(`div`);if(a.className=`dock-tree__tile`,n!==`chat`&&(a.classList.add(`dock-tree__tile--chrome`),this.#s.has(n)||a.classList.add(`dock-tree__tile--enter`)),this.tilesMovable&&!this.#m(e,t)){let r=Kf(n),o=document.createElement(`button`);o.type=`button`,o.className=`dock-tree__tile-move`,o.setAttribute(`aria-label`,`Move ${r}`),o.title=r,o.appendChild(i(`grip-vertical`,{size:13})),o.addEventListener(`pointerdown`,n=>this.#A(n,e,t)),a.appendChild(o)}let o=document.createElement(`div`);return o.className=`dock-tree__tile-body`,ip(r),o.appendChild(r),a.appendChild(o),this.#o.set(a,e),a}#E(e,t,n,r,i,a){let o=mp(e);return this.#O(o,e===`h`,r,()=>i[t]??1,()=>i[n]??1,(e,r)=>{i[t]=e,i[n]=r},()=>a.reduce((e,t)=>e+(i[t]??1),0)),o}#D(e,t,n){let r=e.dir===`row`,i=mp(r?`h`:`v`);return this.#O(i,r,n,()=>e.sizes[t]??1,()=>e.sizes[t+1]??1,(n,r)=>{e.sizes[t]=n,e.sizes[t+1]=r},()=>e.sizes.reduce((e,t)=>e+(t??1),0)),i}#O(e,t,n,r,i,a,o){e.addEventListener(`pointerdown`,e=>{e.preventDefault(),this.setPointerCapture(e.pointerId);let s=n.getBoundingClientRect(),c=r()+i(),l=c*Xf,u=o(),d=t?s.width:s.height,f=t?e.clientX:e.clientY,p=r(),m=e=>{let n=t?e.clientX:e.clientY,r=d>0?(n-f)/d*u:0,i=Math.max(l,Math.min(c-l,p+r));a(i,c-i),this.#x()},h=()=>{window.removeEventListener(`pointermove`,m),window.removeEventListener(`pointerup`,h),window.removeEventListener(`pointercancel`,h),this.hasPointerCapture(e.pointerId)&&this.releasePointerCapture(e.pointerId),this.#k()};window.addEventListener(`pointermove`,m),window.addEventListener(`pointerup`,h),window.addEventListener(`pointercancel`,h)})}#k(){this.dispatchEvent(new CustomEvent(`dock-tree-resize`,{detail:{tree:this.getTree()},bubbles:!0,composed:!0}))}#A(e,t,n){!this.tilesMovable||this.#m(t,n)||(e.preventDefault(),this.#j({kind:`internal`,node:t,fromZone:n},t.type===`leaf`?t.surfaceId:`panel`),this.#M(e))}beginExternalDrag(e,t){this.tilesMovable&&this.#j({kind:`external`,surfaceId:e},e)}#j(e,t){this.#i=e,this.#a=null,this.#t=!0,this.#x(),this.#u.textContent=t,this.#u.classList.add(`dock-tree__ghost--active`),window.addEventListener(`pointermove`,this.#N),window.addEventListener(`pointerup`,this.#I)}#M(e){this.#u.style.left=`${e.clientX}px`,this.#u.style.top=`${e.clientY}px`}#N=e=>{this.#M(e),this.#a=null,this.#d.classList.remove(`dock-tree__preview--active`);for(let e of Array.from(this.querySelectorAll(`.dock-tree__zone--hot`)))e.classList.remove(`dock-tree__zone--hot`);let t=this.#i;if(!t)return;let n=document.elementFromPoint(e.clientX,e.clientY);if(!n)return;let r=n.closest(`.dock-tree__zone`);if(!(r instanceof HTMLElement))return;let i=r.dataset.zone;if(!i)return;r.classList.add(`dock-tree__zone--hot`);let a=n.closest(`.dock-tree__tile`),o=a instanceof HTMLElement?this.#o.get(a):void 0,s=t.kind===`internal`&&o===t.node,c=!!o&&this.#m(o,i);if(a instanceof HTMLElement&&o&&!s&&!c){let t=a.getBoundingClientRect(),n=pp(t,e.clientX,e.clientY);this.#a={zone:i,leaf:o,region:n},this.#P(t,n)}else a||(this.#a={zone:i,empty:!0},this.#F(r.getBoundingClientRect()))};#P(e,t){let{left:n,top:r,width:i,height:a}=e;t===`n`?a=e.height/2:t===`s`?(r=e.top+e.height/2,a=e.height/2):t===`w`?i=e.width/2:t===`e`&&(n=e.left+e.width/2,i=e.width/2),this.#F(new DOMRect(n,r,i,a))}#F(e){this.#d.style.left=`${e.left}px`,this.#d.style.top=`${e.top}px`,this.#d.style.width=`${e.width}px`,this.#d.style.height=`${e.height}px`,this.#d.classList.add(`dock-tree__preview--active`)}#I=()=>{window.removeEventListener(`pointermove`,this.#N),window.removeEventListener(`pointerup`,this.#I),this.#u.classList.remove(`dock-tree__ghost--active`),this.#d.classList.remove(`dock-tree__preview--active`);for(let e of Array.from(this.querySelectorAll(`.dock-tree__zone--hot`)))e.classList.remove(`dock-tree__zone--hot`);let e=this.#a,t=this.#i;this.#a=null,this.#i=null,this.#t=!1;let n=!!t&&t.kind===`internal`&&!!e&&!e.empty&&e.leaf===t.node,r=!!t&&t.kind===`external`&&this.getSurfaceIds().includes(t.surfaceId);if(!t||!e||n||r){this.#x();return}let i;if(t.kind===`internal`?(up(this.#e.zones,t.fromZone,t.node),i=t.node):i={type:`leaf`,surfaceId:t.surfaceId},e.empty||this.#e.zones[e.zone]==null)this.#e.zones[e.zone]=i;else{let{region:t,leaf:n}=e,r=op(t===`e`||t===`w`?`row`:`col`,t===`n`||t===`w`?[i,n]:[n,i]);dp(this.#e.zones,e.zone,n,r),this.#e.zones[e.zone]=lp(this.#e.zones[e.zone])}this.#x(),this.#R()};#L(){this.#i&&(window.removeEventListener(`pointermove`,this.#N),window.removeEventListener(`pointerup`,this.#I),this.#i=null,this.#a=null,this.#t=!1,this.#u.classList.remove(`dock-tree__ghost--active`),this.#d.classList.remove(`dock-tree__preview--active`))}#R(){this.dispatchEvent(new CustomEvent(`dock-tree-change`,{detail:{tree:this.getTree()},bubbles:!0,composed:!0}))}#z(){let e=new Map;for(let t of Array.from(this.querySelectorAll(Hf))){if(!(t instanceof HTMLElement)||t.parentElement?.closest(Hf))continue;let n=rp(t);n&&e.set(n,t)}return e}});var yp=`<svg data-icon-sprite aria-hidden="true" width="0" height="0">
6134
6136
  <symbol id="file-tree-icon-chevron" viewBox="0 0 16 16">
6135
6137
  <path d="M12.4697 5.46973C12.7626 5.17684 13.2374 5.17684 13.5303 5.46973C13.8232 5.76262 13.8232 6.23738 13.5303 6.53028L8.53028 11.5303C8.23738 11.8232 7.76262 11.8232 7.46973 11.5303L2.46973 6.53028C2.17684 6.23738 2.17684 5.76262 2.46973 5.46973C2.76262 5.17684 3.23738 5.17684 3.53028 5.46973L8 9.93946L12.4697 5.46973Z" fill="currentcolor"/>
6136
6138
  </symbol>
@@ -6147,72 +6149,72 @@ slicc-dock-tree .dock-tree__preview--active {
6147
6149
  <symbol id="file-tree-icon-ellipsis" viewBox="0 0 16 16">
6148
6150
  <path d="M5 8.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0M9.5 8.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0M14 8.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0" />
6149
6151
  </symbol>
6150
- </svg>`,cf=`<symbol id="file-tree-builtin-astro" viewBox="0 0 16 16">
6152
+ </svg>`,bp=`<symbol id="file-tree-builtin-astro" viewBox="0 0 16 16">
6151
6153
  <path fill="currentColor" d="M6.08 13.92c-.63-.57-.81-1.79-.55-2.67.45.56 1.08.73 1.73.83 1 .15 1.99.1 2.92-.37l.32-.19q.13.38.08.78a2.1 2.1 0 0 1-.9 1.5q-.3.24-.61.43c-.64.44-.81.95-.57 1.69l.02.08a1.7 1.7 0 0 1-.74-.64 2 2 0 0 1-.3-.98q0-.27-.02-.52-.07-.61-.61-.62a.7.7 0 0 0-.75.6z" class="bg" opacity=".6"/>
6152
6154
  <path fill="currentColor" d="M2.5 11.1s1.86-.9 3.72-.9l1.4-4.39c.05-.21.2-.36.38-.36s.33.15.38.36l1.4 4.38c2.2 0 3.72.92 3.72.92l-3.16-8.69q-.13-.4-.45-.42H6.11q-.3.02-.45.42z" class="fg"/>
6153
- </symbol>`,lf=`<symbol id="file-tree-builtin-babel" viewBox="0 0 16 16">
6155
+ </symbol>`,xp=`<symbol id="file-tree-builtin-babel" viewBox="0 0 16 16">
6154
6156
  <path fill="currentColor" fill-rule="evenodd" d="M9.49.5q1.92.05 2.66.54 1.27.6 1.35 1.52v.23a4 4 0 0 1-.53 1.9l-1.38 1.24q-.74.38-.72.63c.77.82 1.33 1.29.85 2.42q-.47 1.1-2.04 2.28c-.5.32-1.88 1.35-2.96 1.86-1.64.77-3.1 1.4-4.65 1.89-.51.16-1.5.16-1.5.16L.5 15A76 76 0 0 0 5.76 3.49q-.1-.08-.1-.2.1 0 .32-.35l-.03-.09q-1.17.39-2.38 1.3l-.13.03q0-.1-.21-.16-.46.31-.82.7l-.13-.19.16-.06-.03-.16-.34.29L2 4.5q.36-.48.72-.54l.04-.1V3.8q.16 0 .15-.06l.13-.06a6 6 0 0 0 1.13-.9v-.03H4.1l-.12.07q0-.1-.1-.1l-.15.07-.04-.1q.93-.52 1.63-1.05Q7.89.65 9.5.5M8.46 7.83l-.32.04c-1.31.54-2.31.82-2.91.88a71 71 0 0 0-2.2 4.54h.07q.58-.04 3.04-1.42.13 0 1.66-1.05L9.18 9.7v.03q.45-.2.81-1.3v-.2q-.5-.46-1.53-.4m.28-5.75c-.5.1-.75.19-.72.38l-1.16 2.6q-.17.1-.34.95-.3.48-.25.77v.1l.22.05A15 15 0 0 1 8.86 6c1.1-.71 2.12-1.38 2.8-2.54q.24-.33.21-.54-.02-.33-.4-.54c-.54 0-1.07-.34-1.63-.28l-.94-.03z" clip-rule="evenodd"/>
6155
- </symbol>`,uf=`<symbol id="file-tree-builtin-bash" viewBox="0 0 16 16">
6157
+ </symbol>`,Sp=`<symbol id="file-tree-builtin-bash" viewBox="0 0 16 16">
6156
6158
  <path fill="currentColor" d="M8 1C2.24 1 1 2.24 1 8s1.24 7 7 7 7-1.24 7-7-1.24-7-7-7" class="bg" opacity=".2"/>
6157
6159
  <path fill="currentColor" d="M11.5 11a.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1zM7 6.75C7 6.42 6.64 6 6 6s-1 .42-1 .75q-.01.25.22.41.26.21.89.35.74.14 1.28.53c.37.29.61.7.61 1.21 0 .87-.68 1.5-1.5 1.7v.55a.5.5 0 0 1-1 0v-.56c-.82-.18-1.5-.82-1.5-1.69a.5.5 0 0 1 1 0c0 .33.36.75 1 .75s1-.42 1-.75q.01-.25-.22-.41a2 2 0 0 0-.89-.35q-.74-.14-1.28-.53A1.5 1.5 0 0 1 4 6.75c0-.87.68-1.5 1.5-1.7V4.5a.5.5 0 0 1 1 0v.56c.82.18 1.5.82 1.5 1.69a.5.5 0 0 1-1 0" class="fg-stroke"/>
6158
- </symbol>`,df=`<symbol id="file-tree-builtin-biome" viewBox="0 0 16 16">
6160
+ </symbol>`,Cp=`<symbol id="file-tree-builtin-biome" viewBox="0 0 16 16">
6159
6161
  <path fill="currentColor" d="M8 2 4.88 7.35a7 7 0 0 1 3.7-.13l1.04.25-.99 4.16-1.05-.25a2.7 2.7 0 0 0-3.07 1.45l-.98-.47a4 4 0 0 1 1.07-1.31 3.8 3.8 0 0 1 3.23-.71l.5-2.08a6 6 0 0 0-5.07 1.12A5.9 5.9 0 0 0 1 14h14z"/>
6160
- </symbol>`,ff=`<symbol id="file-tree-builtin-bootstrap" viewBox="0 0 16 16">
6162
+ </symbol>`,wp=`<symbol id="file-tree-builtin-bootstrap" viewBox="0 0 16 16">
6161
6163
  <path fill="currentColor" fill-rule="evenodd" d="M11.72 1.5A2.5 2.5 0 0 1 14.2 4q.02 1.08.3 2.09c.22.73.56 1.24 1.08 1.45.22.08.4.27.4.5s-.18.43-.4.51q-.76.34-1.08 1.45c-.2.65-.27 1.32-.3 2a2.5 2.5 0 0 1-2.48 2.5H4.25A2.6 2.6 0 0 1 1.7 12c-.04-.85-.1-1.68-.22-2.04C1.26 9.23.92 8.7.4 8.5.18 8.42 0 8.23 0 8s.18-.42.4-.5q.77-.35 1.09-1.46c.1-.36.17-1.19.2-2.04a2.6 2.6 0 0 1 2.56-2.5z" class="bg" clip-rule="evenodd" opacity=".2"/>
6162
6164
  <path fill="currentColor" fill-rule="evenodd" d="M8.47 4.54c1.23 0 2.04.68 2.04 1.73 0 .73-.55 1.39-1.24 1.5v.04c.94.1 1.58.77 1.58 1.7 0 1.2-.9 1.95-2.37 1.95H5.97a.3.3 0 0 1-.2-.08.3.3 0 0 1-.08-.2V4.82a.3.3 0 0 1 .08-.2.3.3 0 0 1 .2-.08zm-1.7 6.04h1.49q1.47-.01 1.49-1.15Q9.74 8.31 8.2 8.3H6.77zm0-5.16v2.06h1.21c.93 0 1.45-.38 1.45-1.06 0-.65-.44-1-1.22-1z" class="fg" clip-rule="evenodd"/>
6163
- </symbol>`,pf=`<symbol id="file-tree-builtin-browserslist" viewBox="0 0 16 16">
6165
+ </symbol>`,Tp=`<symbol id="file-tree-builtin-browserslist" viewBox="0 0 16 16">
6164
6166
  <path fill="currentColor" d="M8.88 6.96c0 3.82 3.72 4.7 5.7 3.74-.23.9-1.04 1.67-2.35 1.93-.02.4.42 1.28.82 1.63-.9.35-1.94-.12-2.51-.48a5 5 0 0 0-.32 1.87c-.68 0-1.57-1-1.8-1.37-.3.18-.85 1.15-.96 1.72a2.4 2.4 0 0 1-.81-.86 2.4 2.4 0 0 1-.3-1.15c-.38.27-1.48.95-1.99 1.18-.25-.58-.15-1.3 0-2.06-.21.12-1.8.27-2.43.12.32-.36.75-1.19.94-1.57A4.5 4.5 0 0 1 .44 10.6c.48-.22.97-.53 1.49-1.06C1.26 9.17.24 8.64 0 7.7a6 6 0 0 0 1.79-.32C1.28 7.08.44 6.15.6 5.01c.42.21 1.3.37 1.73.3a3.4 3.4 0 0 1-.25-2.75 5 5 0 0 0 1.48 1c-.08-.8.3-2.31.8-2.71.2.46.73 1.21 1.08 1.4.09-.61.87-2.06 1.57-2.25 0 .5.27 1.4.5 1.67.51-.54 2.25-1.44 3.64-1.13-.43.45-.75.61-.86.98 1.05 0 2.78.34 4.27 1.93-2.34-.89-5.69.56-5.69 3.5" class="bg" opacity=".5"/>
6165
6167
  <path fill="currentColor" d="M11.21 3.59a4.1 4.1 0 0 0 2.47 2.89c.24-.22.61-.38.95-.19.76.44.2 1.26-.34 1.66l-.07.06a13 13 0 0 1-4.49 1.61l-.3-.43a10.5 10.5 0 0 0 4.13-1.31 1 1 0 0 0 .23-.25.5.5 0 0 0-.21-.69l-.15-.06a4.5 4.5 0 0 1-1.77-1.31 4.5 4.5 0 0 1-.88-1.77q.2-.12.43-.21"/>
6166
6168
  <path fill="currentColor" d="M10.36 5.18a.4.4 0 0 0-.03.38c.09.2.3.3.46.23s.24-.3.15-.5l-.01-.02q.23.13.34.39a.83.83 0 0 1-.43 1.08.8.8 0 0 1-1.08-.43.83.83 0 0 1 .6-1.13"/>
6167
- </symbol>`,mf=`<symbol id="file-tree-builtin-bun" viewBox="0 0 16 16">
6169
+ </symbol>`,Ep=`<symbol id="file-tree-builtin-bun" viewBox="0 0 16 16">
6168
6170
  <path fill="currentColor" d="M8 14c3.87 0 7-2.46 7-5.49 0-1.88-1.2-3.53-3.04-4.52q-1.1-.61-1.84-1.07C9.2 2.35 8.64 2 8 2s-1.36.45-2.31 1.03A29 29 0 0 1 4.04 4C2.2 4.98 1 6.63 1 8.51 1 11.54 4.13 14 8 14M7.18 3.88q.3-.66.3-1.37c0-.08.11-.1.13-.01.38 1.57-.53 2.35-1.2 2.61-.08.03-.12-.07-.06-.12a3 3 0 0 0 .83-1.12m1.2-.05a3 3 0 0 0-.45-1.3V2.5c-.04-.07.05-.15.1-.1 1.15 1.2.77 2.3.33 2.87-.05.05-.13 0-.11-.08q.21-.67.13-1.37m1.04-.32a3 3 0 0 0-.94-1.02v-.01c-.06-.05-.01-.16.07-.12 1.51.61 1.61 1.8 1.43 2.5l-.03.03a.07.07 0 0 1-.1-.06 3 3 0 0 0-.43-1.32m-2.97.32c-.36.3-.74.43-1.2.56q-.11 0-.1-.1a3.5 3.5 0 0 0 1.76-1.57s.09-.07.1.04c0 .18-.2.76-.56 1.07m2.89 6.36q-.13.52-.55.88a1.3 1.3 0 0 1-.75.35 1.3 1.3 0 0 1-.77-.35 1.7 1.7 0 0 1-.54-.88.13.13 0 0 1 .15-.15h2.31a.14.14 0 0 1 .15.15M6.15 8.95a1.1 1.1 0 0 1-1.39-.14A1.1 1.1 0 0 1 5.12 7a1.1 1.1 0 0 1 1.2.25 1.1 1.1 0 0 1-.17 1.69m4.96 0a1.1 1.1 0 0 1-1.4-.14 1.1 1.1 0 0 1 .37-1.8 1.1 1.1 0 0 1 1.2.25 1.1 1.1 0 0 1 .24 1.2 1 1 0 0 1-.41.5"/>
6169
- </symbol>`,hf=`<symbol id="file-tree-builtin-c" viewBox="0 0 16 16">
6171
+ </symbol>`,Dp=`<symbol id="file-tree-builtin-c" viewBox="0 0 16 16">
6170
6172
  <path fill="currentColor" fill-rule="evenodd" d="M8 1q.084 0 .166.021.098.023.186.075c1.055.624 4.22 2.486 5.277 3.11.085.05.15.112.209.192h-.002l.028.037a.5.5 0 0 1 .103.21q.031.102.033.21v6.29a.71.71 0 0 1-.347.616l-5.307 3.144a.68.68 0 0 1-.693 0l-5.307-3.144A.72.72 0 0 1 2 11.145V4.832a.71.71 0 0 1 .346-.612l5.288-3.126A.7.7 0 0 1 7.992 1zm2.901 4.349a3.75 3.75 0 1 0 0 5.302l-1.06-1.06a2.25 2.25 0 1 1 0-3.182z" clip-rule="evenodd"/>
6171
- </symbol>`,gf=`<symbol id="file-tree-builtin-claude" viewBox="0 0 16 16">
6173
+ </symbol>`,Op=`<symbol id="file-tree-builtin-claude" viewBox="0 0 16 16">
6172
6174
  <path fill="currentColor" d="M3.75 10.31 6.5 8.77l.04-.14-.04-.07h-.14l-.46-.03-1.57-.04-1.38-.07-1.33-.07-.34-.07L1 7.86l.03-.21.28-.18.4.03.89.07 1.33.08.97.06 1.43.16h.22l.03-.1-.07-.05-.06-.06-1.39-.92-1.48-.98-.79-.57-.42-.28-.2-.28-.1-.6.39-.41.52.04.12.03.52.4 1.12.86L6.2 6.04l.2.17.09-.06.01-.04-.1-.15-.76-1.46-.85-1.46-.37-.6-.1-.36a1 1 0 0 1-.06-.42l.42-.59.25-.07.6.08.22.2.36.84.58 1.3.9 1.77.29.53.14.47.04.14h.1v-.07l.07-1 .14-1.22.14-1.57.04-.45.23-.53.42-.28.36.15.28.41-.04.25-.16 1.08-.36 1.7-.21 1.14h.12l.14-.15.58-.76.97-1.2.42-.5.5-.51.32-.25h.6l.44.66-.2.68-.61.79-.52.65-.74 1-.45.8.04.05h.1l1.68-.36.9-.16 1.06-.18.5.23.05.22-.2.48-1.15.28-1.34.28-2 .46-.04.01.03.04.9.09.4.03h.94l1.77.14.46.28.27.37-.04.28-.72.37-.95-.23-2.24-.53-.76-.18h-.11v.06l.64.63L12 10.86l1.48 1.35.07.34-.18.28-.2-.03-1.29-.98-.5-.42-1.12-.95h-.07v.1l.25.38 1.37 2.05.07.63-.1.2-.36.14-.38-.08-.8-1.12-.85-1.26-.66-1.15-.07.05-.4 4.23-.19.21-.42.17-.35-.28-.2-.42.2-.87.23-1.12.18-.9.17-1.1.1-.36v-.03h-.1l-.84 1.16-1.27 1.72-1 1.07-.24.1-.42-.22.04-.39.22-.32 1.4-1.8.84-1.1.57-.64-.02-.07h-.04l-3.7 2.4-.66.09-.28-.28.03-.42.14-.14 1.12-.77z"/>
6173
- </symbol>`,_f=`<symbol id="file-tree-builtin-cpp" viewBox="0 0 16 16">
6175
+ </symbol>`,kp=`<symbol id="file-tree-builtin-cpp" viewBox="0 0 16 16">
6174
6176
  <path fill="currentColor" fill-rule="evenodd" d="M8 1q.084 0 .166.021.098.023.186.075c1.055.624 4.22 2.486 5.277 3.11.085.05.15.112.209.192h-.002l.028.037a.5.5 0 0 1 .103.21q.031.102.033.21v6.29a.71.71 0 0 1-.347.616l-5.307 3.144a.68.68 0 0 1-.693 0l-5.307-3.144A.72.72 0 0 1 2 11.145V4.832a.71.71 0 0 1 .346-.612l5.288-3.126A.7.7 0 0 1 7.992 1zm2.901 4.349a3.75 3.75 0 1 0 0 5.302l-1.06-1.06a2.25 2.25 0 1 1 0-3.182z" clip-rule="evenodd"/>
6175
- </symbol>`,vf=`<symbol id="file-tree-builtin-css" viewBox="0 0 16 16">
6177
+ </symbol>`,Ap=`<symbol id="file-tree-builtin-css" viewBox="0 0 16 16">
6176
6178
  <path fill="currentColor" d="M8 15c-5.76 0-7-1.24-7-7V2a1 1 0 0 1 1-1h6c5.77 0 7 1.24 7 7s-1.24 7-7 7" class="vector" opacity=".2"/>
6177
6179
  <path fill="currentColor" d="M10.1 9.19h.73c.03.49.22.6 1 .6.76 0 .93-.12.93-.68 0-.52-.17-.67-.94-.85-1.38-.3-1.68-.56-1.68-1.47 0-1.05.3-1.29 1.67-1.29 1.29 0 1.57.2 1.6 1.13h-.74c-.01-.34-.17-.42-.85-.42-.77 0-.94.1-.94.58 0 .42.17.55.96.73 1.36.3 1.66.58 1.66 1.59 0 1.14-.31 1.39-1.73 1.39-1.39 0-1.69-.24-1.67-1.31m-3.9 0h.74c.03.49.21.6.99.6.76 0 .93-.12.93-.68 0-.52-.17-.67-.93-.85-1.39-.3-1.69-.56-1.69-1.47 0-1.05.3-1.29 1.67-1.29 1.3 0 1.58.2 1.6 1.13h-.73c-.02-.34-.18-.42-.85-.42-.78 0-.95.1-.95.58 0 .42.17.55.96.73 1.37.3 1.67.58 1.67 1.59 0 1.14-.32 1.39-1.74 1.39-1.38 0-1.68-.24-1.66-1.31m-1.22 0h.75c-.09 1.07-.37 1.31-1.56 1.31-1.37 0-1.68-.45-1.68-2.5 0-1.96.36-2.5 1.68-2.5 1.16 0 1.44.25 1.52 1.35h-.76c-.08-.52-.22-.64-.76-.64-.74 0-.9.33-.9 1.78 0 1.47.16 1.8.9 1.8.58 0 .74-.11.8-.6"/>
6178
- </symbol>`,yf=`<symbol id="file-tree-builtin-database" viewBox="0 0 16 16">
6180
+ </symbol>`,jp=`<symbol id="file-tree-builtin-database" viewBox="0 0 16 16">
6179
6181
  <path fill="currentColor" d="M14.953 9.733a12.4 12.4 0 0 1-.244 1.936c-.207.933-.532 1.58-.996 2.044s-1.11.789-2.044.996C10.73 14.918 9.533 15 8 15s-2.73-.082-3.669-.291c-.933-.207-1.58-.532-2.044-.996s-.789-1.11-.996-2.044c-.122-.547-.2-1.182-.244-1.92q.23.364.532.667c.64.639 1.482 1.031 2.533 1.265 1.046.232 2.33.315 3.884.315 1.555 0 2.838-.083 3.884-.315 1.051-.234 1.893-.626 2.532-1.265a4 4 0 0 0 .541-.683"/>
6180
6182
  <path fill="currentColor" d="M14.93 5.924c-.046.663-.118 1.24-.23 1.743-.207.932-.532 1.579-.995 2.042s-1.11.789-2.042.996c-.938.209-2.135.291-3.667.291-1.531 0-2.729-.082-3.667-.29-.932-.208-1.579-.534-2.042-.997s-.789-1.11-.996-2.042a12 12 0 0 1-.227-1.683l.016-.188a4 4 0 0 0 .5.62c.638.639 1.48 1.031 2.532 1.265 1.046.232 2.33.315 3.884.315 1.555 0 2.838-.083 3.884-.315 1.051-.234 1.893-.626 2.532-1.265.192-.192.357-.404.506-.633z"/>
6181
6183
  <path fill="currentColor" d="M8 1c1.533 0 2.73.082 3.669.291.933.207 1.58.533 2.044.996.403.404.904.944.91 1.695.004.764-.509 1.318-.918 1.727-.463.463-1.11.789-2.042.996-.938.209-2.135.291-3.667.291-1.531 0-2.729-.082-3.667-.29-.932-.208-1.579-.534-2.042-.997-.406-.406-.915-.953-.915-1.71 0-.758.509-1.305.915-1.712.464-.463 1.11-.789 2.044-.996C5.27 1.082 6.467 1 8 1"/>
6182
- </symbol>`,bf=`<symbol id="file-tree-builtin-default" viewBox="0 0 16 16">
6184
+ </symbol>`,Mp=`<symbol id="file-tree-builtin-default" viewBox="0 0 16 16">
6183
6185
  <path fill="currentColor" d="M8 1v3a3 3 0 0 0 3 3h3v5.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 2 12.5v-9A2.5 2.5 0 0 1 4.5 1z" class="bg" opacity=".4"/>
6184
6186
  <path fill="currentColor" d="M9.5 1a.5.5 0 0 1 .354.146l4 4A.5.5 0 0 1 14 5.5V6h-3a2 2 0 0 1-2-2V1z" class="fg"/>
6185
- </symbol>`,xf=`<symbol id="file-tree-builtin-docker" viewBox="0 0 16 16">
6187
+ </symbol>`,Np=`<symbol id="file-tree-builtin-docker" viewBox="0 0 16 16">
6186
6188
  <path fill="currentColor" d="M15.85 6.54c-.05-.04-.45-.36-1.31-.36q-.34 0-.68.06a2.7 2.7 0 0 0-1.14-1.79l-.23-.14-.15.23a3 3 0 0 0-.4 1q-.24 1.01.26 1.84c-.4.24-1.03.3-1.17.3H.5a.5.5 0 0 0-.5.52q-.01 1.46.46 2.83.55 1.5 1.6 2.18c.79.5 2.08.79 3.54.79q.96 0 1.94-.18a8 8 0 0 0 2.55-.97 7 7 0 0 0 1.73-1.5 10 10 0 0 0 1.7-3.06h.15a2.4 2.4 0 0 0 1.8-.7 2 2 0 0 0 .47-.74l.06-.2z"/>
6187
6189
  <path fill="currentColor" d="M1.48 7.36h1.4a.14.14 0 0 0 .14-.13V5.91q-.01-.12-.13-.14H1.48a.13.13 0 0 0-.13.14v1.32q.02.13.13.13m1.94 0h1.41a.14.14 0 0 0 .13-.13V5.91q-.01-.12-.13-.14h-1.4a.13.13 0 0 0-.13.14v1.32q0 .13.12.13m1.98 0h1.4q.13 0 .14-.13V5.91a.13.13 0 0 0-.14-.14H5.4q-.1.01-.12.14v1.32q0 .13.12.13m1.95 0h1.42q.1 0 .12-.13V5.91q0-.12-.12-.14H7.35q-.1.01-.12.14v1.32q.01.13.12.13M3.42 5.5h1.41c.07 0 .13-.08.13-.15V4.03a.13.13 0 0 0-.13-.14h-1.4q-.12 0-.13.14v1.31q0 .13.12.15m1.98 0h1.4c.08 0 .14-.08.14-.15V4.03q0-.13-.14-.14H5.4q-.1 0-.12.14v1.31q0 .13.12.15m1.95 0h1.42c.06 0 .12-.08.12-.15V4.03q-.01-.13-.12-.14H7.35q-.1 0-.12.14v1.31q.01.13.12.15m0-1.9h1.42q.1-.02.12-.14v-1.3Q8.88 2 8.77 2H7.35q-.1 0-.12.14v1.3q.01.13.12.14m1.97 3.78h1.4a.13.13 0 0 0 .14-.13V5.91q-.01-.12-.13-.14H9.32q-.1.01-.12.14v1.32q.01.13.12.13" opacity=".5"/>
6188
- </symbol>`,Sf=`<symbol id="file-tree-builtin-eslint" viewBox="0 0 16 16">
6190
+ </symbol>`,Pp=`<symbol id="file-tree-builtin-eslint" viewBox="0 0 16 16">
6189
6191
  <path fill="currentColor" d="M11.16 6.1 8.12 4.35a.3.3 0 0 0-.24 0L4.84 6.1a.3.3 0 0 0-.12.2v3.5q0 .14.12.22l3.04 1.74q.12.08.24 0l3.04-1.74a.2.2 0 0 0 .13-.22V6.3a.3.3 0 0 0-.13-.2" opacity=".5"/>
6190
6192
  <path fill="currentColor" d="m.1 7.69 3.63-6.3A.8.8 0 0 1 4.37 1h7.26c.26 0 .5.17.64.4l3.63 6.27a.8.8 0 0 1 0 .75l-3.63 6.24a.7.7 0 0 1-.64.34H4.37a.7.7 0 0 1-.64-.34L.1 8.41a.7.7 0 0 1 0-.72m3 3.02q.01.15.14.23l4.63 2.66q.13.06.26 0l4.63-2.66a.3.3 0 0 0 .14-.23V5.4a.3.3 0 0 0-.14-.23L8.13 2.52a.3.3 0 0 0-.26 0L3.24 5.17a.3.3 0 0 0-.14.23z"/>
6191
- </symbol>`,Cf=`<symbol id="file-tree-builtin-font" viewBox="0 0 16 16">
6193
+ </symbol>`,Fp=`<symbol id="file-tree-builtin-font" viewBox="0 0 16 16">
6192
6194
  <path fill="currentColor" d="M12.3 13c-1.59 0-2.68-.99-2.68-2.5 0-1.43 1-2.34 2.88-2.35h2.16v-.83c0-1.08-.62-1.68-1.73-1.68-1.05 0-1.66.54-1.73 1.36H9.93c.09-1.43 1.06-2.48 3.05-2.48 1.75 0 3.02.95 3.02 2.68v5.66h-1.29v-1.02h-.04c-.41.66-1.16 1.16-2.37 1.16m.36-1.12c1.14 0 2-.72 2-1.74v-.96H12.6c-1.12 0-1.6.54-1.6 1.28 0 .97.8 1.42 1.66 1.42m-11.24.98H0L3.8 2h1.39l3.8 10.86H7.54l-1.08-3.2H2.5zm3.09-9.25h-.04l-1.6 4.95H6.1z"/>
6193
- </symbol>`,wf=`<symbol id="file-tree-builtin-git" viewBox="0 0 16 16">
6195
+ </symbol>`,Ip=`<symbol id="file-tree-builtin-git" viewBox="0 0 16 16">
6194
6196
  <path fill="currentColor" d="M14.74 7.38 8.62 1.26a.9.9 0 0 0-1.27 0L6.08 2.53l1.61 1.61a1.07 1.07 0 0 1 1.36 1.37l1.55 1.55a1.07 1.07 0 0 1 1.1 1.77 1.07 1.07 0 0 1-1.74-1.16L8.5 6.22v3.8a1.07 1.07 0 1 1-.89-.02V6.15a1.07 1.07 0 0 1-.58-1.4l-1.58-1.6-4.2 4.2a.9.9 0 0 0 0 1.27l6.12 6.12a.9.9 0 0 0 1.27 0l6.09-6.09a.9.9 0 0 0 0-1.27"/>
6195
- </symbol>`,Tf=`<symbol id="file-tree-builtin-go" viewBox="0 0 16 16">
6197
+ </symbol>`,Lp=`<symbol id="file-tree-builtin-go" viewBox="0 0 16 16">
6196
6198
  <path fill="currentColor" fill-rule="evenodd" d="M4.41 4.57A3.2 3.2 0 0 1 6.87 5q.74.49 1.08 1.29.08.12-.1.16l-1.55.4c-.14.03-.15.04-.27-.1a1 1 0 0 0-.44-.34 1.6 1.6 0 0 0-1.68.14q-.95.61-.94 1.73c0 .73.52 1.33 1.25 1.43q.95.1 1.58-.6l.25-.34h-1.8c-.19 0-.24-.12-.17-.27.12-.28.34-.76.47-1a.3.3 0 0 1 .24-.14h2.98a4 4 0 0 1 .64-1.19 4 4 0 0 1 2.6-1.52 3.5 3.5 0 0 1 2.64.46q1.13.73 1.31 2.04a3.5 3.5 0 0 1-1.06 3.09q-.93.92-2.23 1.17l-.74.08a3.5 3.5 0 0 1-2.27-.8 3 3 0 0 1-.93-1.42 4 4 0 0 1-.39.61 4 4 0 0 1-2.64 1.56 3.3 3.3 0 0 1-2.5-.6 3 3 0 0 1-1.18-2.03 3.5 3.5 0 0 1 .8-2.67 4 4 0 0 1 2.6-1.58M13.1 7.5a1.53 1.53 0 0 0-1.9-1.21q-1.3.3-1.62 1.59a1.5 1.5 0 0 0 .85 1.72q.77.33 1.52-.05a2 2 0 0 0 1.18-1.74q0-.17-.03-.3" clip-rule="evenodd"/>
6197
- </symbol>`,Ef=`<symbol id="file-tree-builtin-graphql" viewBox="0 0 16 16">
6199
+ </symbol>`,Rp=`<symbol id="file-tree-builtin-graphql" viewBox="0 0 16 16">
6198
6200
  <path fill="currentColor" fill-rule="evenodd" d="M8 1a1.25 1.25 0 0 1 1.18 1.65l2.8 1.61q.33-.25.77-.26a1.25 1.25 0 0 1 .48 2.4v3.2a1.25 1.25 0 1 1-1.25 2.13l-2.8 1.62A1.25 1.25 0 0 1 8 15a1.25 1.25 0 0 1-1.18-1.65l-2.8-1.62q-.33.26-.77.27a1.25 1.25 0 0 1-.48-2.4V6.4a1.25 1.25 0 1 1 1.25-2.14l2.8-1.61A1.25 1.25 0 0 1 8 1M4.44 11.14l-.06.13 2.75 1.58a1.25 1.25 0 0 1 1.74 0l2.74-1.58-.05-.13zm3.89-7.68a1.3 1.3 0 0 1-.66 0L4.03 9.77q.37.3.45.78h7.04q.08-.48.45-.78zM4.38 4.73a1.24 1.24 0 0 1-1.02 1.76v3.02l.13.01 3.67-6.35-.03-.02zm4.46-1.56 3.67 6.35.13-.01V6.49a1.25 1.25 0 0 1-1.03-1.76L8.87 3.15z" clip-rule="evenodd"/>
6199
- </symbol>`,Df=`<symbol id="file-tree-builtin-html" viewBox="0 0 16 16">
6201
+ </symbol>`,zp=`<symbol id="file-tree-builtin-html" viewBox="0 0 16 16">
6200
6202
  <path fill="currentColor" d="M8 1C2.24 1 1 2.24 1 8s1.24 7 7 7 7-1.24 7-7-1.24-7-7-7" class="bg" opacity=".2"/>
6201
6203
  <path fill="currentColor" d="M10.48 3.76a.5.5 0 0 1 .4.58L10.6 5.8h1.14a.5.5 0 0 1 0 1h-1.32L10 9.2h1.08a.5.5 0 0 1 0 1H9.8l-.3 1.64a.5.5 0 1 1-.98-.18l.27-1.46H6.4l-.3 1.64a.5.5 0 1 1-.98-.18l.27-1.46H4.25a.5.5 0 0 1 0-1h1.32L6 6.8H4.93a.5.5 0 0 1 0-1H6.2l.3-1.64a.5.5 0 1 1 .98.18L7.2 5.8h2.4l.3-1.64a.5.5 0 0 1 .58-.4M6.58 9.2h2.4l.44-2.4h-2.4z" class="fg"/>
6202
- </symbol>`,Of=`<symbol id="file-tree-builtin-image" viewBox="0 0 16 16">
6204
+ </symbol>`,Bp=`<symbol id="file-tree-builtin-image" viewBox="0 0 16 16">
6203
6205
  <path fill="currentColor" d="M12.5 2A2.5 2.5 0 0 1 15 4.5v4.67l-4.05-3.54-4.08 4.08-3-2L1 10.6V4.5A2.5 2.5 0 0 1 3.5 2z" opacity=".3"/>
6204
6206
  <path fill="currentColor" d="M15 10.5v1a2.5 2.5 0 0 1-2.5 2.5h-9a2.5 2.5 0 0 1-2.46-2.04L4 9l3 2 4-4zm-7-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0"/>
6205
- </symbol>`,kf=`<symbol id="file-tree-builtin-javascript" viewBox="0 0 16 16">
6207
+ </symbol>`,Vp=`<symbol id="file-tree-builtin-javascript" viewBox="0 0 16 16">
6206
6208
  <path fill="currentColor" d="M8 1C2.24 1 1 2.24 1 8s1.24 7 7 7 7-1.24 7-7-1.24-7-7-7" class="bg" opacity=".2"/>
6207
6209
  <path fill="currentColor" d="M8.1 9.64h.95c.04.62.28.76 1.28.76s1.2-.14 1.2-.85c0-.66-.2-.85-1.2-1.07-1.79-.38-2.18-.7-2.18-1.86C8.15 5.3 8.54 5 10.31 5c1.67 0 2.04.26 2.07 1.42h-.95c-.02-.43-.23-.53-1.1-.53-1 0-1.22.14-1.22.74 0 .52.22.7 1.24.92 1.76.38 2.15.73 2.15 2 0 1.44-.4 1.75-2.24 1.75-1.8 0-2.18-.3-2.15-1.66M3.5 9.5h.98c0 .76.15.92.85.92.77 0 .94-.18.94-1.02V5.1h1v4.34c0 1.54-.35 1.87-1.92 1.87-1.55 0-1.89-.32-1.86-1.8"/>
6208
- </symbol>`,Af=`<symbol id="file-tree-builtin-json" viewBox="0 0 16 16">
6210
+ </symbol>`,Hp=`<symbol id="file-tree-builtin-json" viewBox="0 0 16 16">
6209
6211
  <path fill="currentColor" d="M13.25 11.5V9.75a.5.5 0 0 1 .36-.48l.55-.15a1.16 1.16 0 0 0 0-2.24l-.55-.15a.5.5 0 0 1-.36-.48V4.5a2.5 2.5 0 0 0-2.5-2.5h-.25a.5.5 0 0 0 0 1h.25a1.5 1.5 0 0 1 1.5 1.5v1.75a1.5 1.5 0 0 0 1.09 1.44l.54.15a.16.16 0 0 1 0 .32l-.54.15a1.5 1.5 0 0 0-1.09 1.44v1.75a1.5 1.5 0 0 1-1.5 1.5h-.25a.5.5 0 0 0 0 1h.25a2.5 2.5 0 0 0 2.5-2.5m-10.5 0V9.75a.5.5 0 0 0-.36-.48l-.55-.15a1.16 1.16 0 0 1 0-2.24l.55-.15a.5.5 0 0 0 .36-.48V4.5A2.5 2.5 0 0 1 5.25 2h.25a.5.5 0 0 1 0 1h-.25a1.5 1.5 0 0 0-1.5 1.5v1.75a1.5 1.5 0 0 1-1.09 1.44l-.54.15a.16.16 0 0 0 0 .32l.54.15a1.5 1.5 0 0 1 1.09 1.45v1.74a1.5 1.5 0 0 0 1.5 1.5h.25a.5.5 0 0 1 0 1h-.25a2.5 2.5 0 0 1-2.5-2.5"/>
6210
- </symbol>`,jf=`<symbol id="file-tree-builtin-markdown" viewBox="0 0 16 16">
6212
+ </symbol>`,Up=`<symbol id="file-tree-builtin-markdown" viewBox="0 0 16 16">
6211
6213
  <path fill="currentColor" d="M1 12V4h2l2 2.5L7 4h2v8H7V7.5l-2 2-2-2V12zm9-3 3 3.5L16 9h-2V4h-2v5z"/>
6212
- </symbol>`,Mf=`<symbol id="file-tree-builtin-mcp" viewBox="0 0 16 16">
6214
+ </symbol>`,Wp=`<symbol id="file-tree-builtin-mcp" viewBox="0 0 16 16">
6213
6215
  <path fill="currentColor" d="M9.26-.04a3 3 0 0 1 2 .82 2.8 2.8 0 0 1 .8 2.35 2.9 2.9 0 0 1 2.41.8l.03.02a2.74 2.74 0 0 1 0 3.94l-5.8 5.69-.04.06-.02.07q0 .04.02.07.01.04.04.06l1.2 1.17a.55.55 0 0 1 0 .79.6.6 0 0 1-.81 0l-1.2-1.17a1.3 1.3 0 0 1 0-1.84L13.7 7.1a1.65 1.65 0 0 0 .37-1.82 2 2 0 0 0-.37-.54l-.03-.03a1.73 1.73 0 0 0-2.4 0L6.47 9.4l-.07.06a.58.58 0 0 1-.92-.18.6.6 0 0 1 .12-.6l4.85-4.76a1.65 1.65 0 0 0 0-2.36 1.73 1.73 0 0 0-2.4 0l-6.43 6.3a.6.6 0 0 1-.8 0 .55.55 0 0 1 0-.8L7.25.79a3 3 0 0 1 2-.82"/>
6214
6216
  <path fill="currentColor" d="M9.26 2.19a.6.6 0 0 1 .52.34.6.6 0 0 1 0 .43l-.12.18L4.9 7.79a1.65 1.65 0 0 0 0 2.36 1.73 1.73 0 0 0 2.4 0l4.75-4.66a.58.58 0 0 1 .93.18.6.6 0 0 1-.12.61l-4.75 4.66a2.9 2.9 0 0 1-4.01 0 2.75 2.75 0 0 1-.62-3.04A3 3 0 0 1 4.1 7l4.74-4.65a.6.6 0 0 1 .4-.16"/>
6215
- </symbol>`,Nf=`<symbol id="file-tree-builtin-nextjs" viewBox="0 0 16 16">
6217
+ </symbol>`,Gp=`<symbol id="file-tree-builtin-nextjs" viewBox="0 0 16 16">
6216
6218
  <defs>
6217
6219
  <linearGradient id="a" x1="4.522" x2="14" y1="3.943" y2="16" gradientUnits="userSpaceOnUse">
6218
6220
  <stop stop-color="currentColor"/>
@@ -6222,82 +6224,82 @@ slicc-dock-tree .dock-tree__preview--active {
6222
6224
  <path fill="currentColor" d="M3 2h1.522v9.09H3z"/>
6223
6225
  <path fill="url(#a)" d="M4.903 2 15 15.075q-.565.5-1.195.925L4.522 3.943z"/>
6224
6226
  <path fill="currentColor" d="M12.172 2h-1.508v9.094h1.508z"/>
6225
- </symbol>`,Pf=`<symbol id="file-tree-builtin-npm" viewBox="0 0 16 16">
6227
+ </symbol>`,Kp=`<symbol id="file-tree-builtin-npm" viewBox="0 0 16 16">
6226
6228
  <path fill="currentColor" d="M2 1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1z" class="vector" opacity=".2"/>
6227
6229
  <path fill="currentColor" d="M10.5 13H13V3H3v10h5V5.5h2.5z"/>
6228
- </symbol>`,Ff=`<symbol id="file-tree-builtin-oxc" viewBox="0 0 16 16">
6230
+ </symbol>`,qp=`<symbol id="file-tree-builtin-oxc" viewBox="0 0 16 16">
6229
6231
  <path fill="currentColor" d="M9.5 1a.5.5 0 0 1 .5.5V3h3.5a.5.5 0 0 1 .38.83L10.5 7.69v1.44q.41.04.95-.16a4 4 0 0 0 .72-.35l.04-.03h.01a.5.5 0 0 1 .67.1l2 2.5a.5.5 0 0 1 0 .62c-.76.96-3.14 2.69-6.89 2.69s-6.13-1.73-6.89-2.69a.5.5 0 0 1 0-.62l2-2.5a.5.5 0 0 1 .67-.1l.05.03.16.09q.22.13.56.26.54.2.95.16V7.69L2.12 3.83A.5.5 0 0 1 2.5 3H6V1.5a.5.5 0 0 1 .5-.5zM7 3.5a.5.5 0 0 1-.5.5H3.6l2.78 3.17a.5.5 0 0 1 .12.33v2a.5.5 0 0 1-.28.45c-.7.35-1.5.15-2.02-.05a5 5 0 0 1-.58-.26l-1.46 1.84c.82.78 2.8 2.02 5.84 2.02s5.02-1.24 5.84-2.02l-1.46-1.83a5 5 0 0 1-.58.26c-.52.2-1.33.39-2.02.04a.5.5 0 0 1-.28-.45v-2a.5.5 0 0 1 .12-.33L12.4 4H9.5a.5.5 0 0 1-.5-.5V2H7z"/>
6230
- </symbol>`,If=`<symbol id="file-tree-builtin-postcss" viewBox="0 0 16 16">
6232
+ </symbol>`,Jp=`<symbol id="file-tree-builtin-postcss" viewBox="0 0 16 16">
6231
6233
  <path fill="currentColor" d="M14.5 8a6.5 6.5 0 0 0-5.9-6.47l5.42 8.93A7 7 0 0 0 14.5 8M2.88 12A6.5 6.5 0 0 0 8 14.5c2.08 0 3.93-.98 5.12-2.5zm8.62-1h1.68L11.5 8.24zm-1-.55a4 4 0 0 1-.7.55h.7zM8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M5.5 11h.7a4 4 0 0 1-.7-.55zm-2.68 0H4.5V8.24zm3.76-6.2A4 4 0 0 1 8 4.5q.76 0 1.42.3L8 2.46zM1.5 8q0 1.31.48 2.46L7.4 1.53A6.5 6.5 0 0 0 1.5 8m14 0a7.5 7.5 0 0 1-.99 3.72l-.01.03-.02.03A7.5 7.5 0 0 1 8 15.5a7.5 7.5 0 0 1-6.5-3.75l-.01-.03A7.5 7.5 0 1 1 15.5 8"/>
6232
- </symbol>`,Lf=`<symbol id="file-tree-builtin-prettier" viewBox="0 0 16 16">
6234
+ </symbol>`,Yp=`<symbol id="file-tree-builtin-prettier" viewBox="0 0 16 16">
6233
6235
  <path fill="currentColor" d="M6 12v1H4.93v-1zm1-2v1H2v-1zm6-4v1h-3V6zm-1-4v1H9V2z"/>
6234
6236
  <path fill="currentColor" d="M11.5 10v1H8v-1zM5 6v1H2V6zm5-2v1H9V4z" opacity=".8"/>
6235
6237
  <path fill="currentColor" d="M6 14v1H2v-1zm-.5-6v1H2V8zM13 4v1h-3V4zM4.93 2v1H2V2z" opacity=".6"/>
6236
6238
  <path fill="currentColor" d="M4.93 12v1H2v-1zM13 8v1H9V8zM5.5 4v1H2V4zM9 2v1H4.93V2z" opacity=".4"/>
6237
- </symbol>`,Rf=`<symbol id="file-tree-builtin-python" viewBox="0 0 16 16">
6239
+ </symbol>`,Xp=`<symbol id="file-tree-builtin-python" viewBox="0 0 16 16">
6238
6240
  <path fill="currentColor" d="M8.33 8.4H10c1.16 0 1.9-.73 1.9-1.86V5.08q0-.24.25-.24h.74c.75 0 1.33.32 1.66.97q.4.73.41 1.46c.09.9.09 1.78-.24 2.67-.25.73-.75 1.3-1.58 1.46h-4.8c-.08 0-.25 0-.25.08v.4s.17.09.25.09h2.82q.34-.02.33.32v1.06c0 .56-.25.97-.75 1.13-.41.16-.83.33-1.24.4a7 7 0 0 1-2.98-.07 3 3 0 0 1-1.16-.49c-.33-.32-.58-.65-.5-1.14v-2.91c0-1.13.67-1.78 1.82-1.78q.89-.1 1.66-.08m2.32 4.86a.65.65 0 0 0-.66-.65c-.34 0-.67.33-.67.65s.33.57.67.65a.65.65 0 0 0 .66-.65" class="bg" opacity=".8"/>
6239
6241
  <path fill="currentColor" d="M7.67 7.6H6c-1.16 0-1.9.73-1.9 1.86v1.46q0 .24-.25.24h-.74c-.75 0-1.33-.32-1.66-.97a3 3 0 0 1-.41-1.46 6 6 0 0 1 .24-2.67c.25-.73.75-1.3 1.58-1.46h4.8c.08 0 .25 0 .25-.08v-.4s-.17-.09-.25-.09H4.85c-.24 0-.33-.08-.33-.32V2.65c0-.56.25-.97.75-1.13.41-.16.83-.33 1.24-.4a7 7 0 0 1 2.98.07c.41.09.83.25 1.16.49.33.32.58.65.5 1.13v2.92c0 1.14-.67 1.78-1.82 1.78-.58.08-1.16.08-1.66.08M5.35 2.73c0 .33.25.65.66.65.33 0 .66-.32.66-.65 0-.32-.33-.56-.66-.64a.65.65 0 0 0-.66.64" class="fg"/>
6240
- </symbol>`,zf=`<symbol id="file-tree-builtin-react" viewBox="0 0 16 16">
6242
+ </symbol>`,Zp=`<symbol id="file-tree-builtin-react" viewBox="0 0 16 16">
6241
6243
  <path fill="currentColor" d="M8 6.65c.73 0 1.31.6 1.31 1.35S8.73 9.35 8 9.35 6.69 8.75 6.69 8 7.27 6.65 8 6.65"/>
6242
6244
  <path fill="currentColor" fill-rule="evenodd" d="M8 2.55c1.3-.99 2.59-1.34 3.5-.8.92.55 1.27 1.87 1.08 3.53C14.06 5.94 15 6.9 15 8s-.94 2.06-2.42 2.72c.19 1.65-.16 2.98-1.08 3.52-.91.55-2.2.2-3.5-.8-1.3 1-2.58 1.35-3.5.8-.91-.54-1.27-1.87-1.08-3.52C1.94 10.06 1 9.1 1 8s.94-2.06 2.42-2.72c-.19-1.66.17-2.98 1.08-3.52s2.2-.2 3.5.8M4.26 11.2c-.08 1.34.28 2.03.68 2.26s1.15.22 2.25-.52l.11-.09a12 12 0 0 1-1.24-1.39 11 11 0 0 1-1.8-.41zm7.47-.15q-.83.27-1.79.41-.6.8-1.24 1.4l.11.08c1.1.74 1.86.76 2.25.52.4-.23.76-.92.68-2.26zm-3.04.54a14 14 0 0 1-1.38 0q.34.38.69.7.35-.32.7-.7M8 5.29q-.76 0-1.47.1A13 13 0 0 0 5.07 8a14 14 0 0 0 1.46 2.62 13 13 0 0 0 2.94 0A13 13 0 0 0 10.93 8a14 14 0 0 0-1.46-2.62A13 13 0 0 0 8 5.3M4.64 9.18q-.15.5-.25.96.44.16.94.27a15 15 0 0 1-.7-1.23m6.73 0a15 15 0 0 1-.7 1.23q.5-.11.95-.27a10 10 0 0 0-.25-.96M3.44 6.26C2.27 6.86 1.87 7.53 1.87 8s.4 1.14 1.57 1.74l.13.07q.18-.88.55-1.81a12 12 0 0 1-.55-1.8q-.07.02-.13.06m8.99-.07A12 12 0 0 1 11.88 8q.36.94.55 1.8l.13-.06c1.17-.6 1.56-1.27 1.56-1.74s-.39-1.14-1.56-1.74zm-7.1-.6q-.5.11-.94.27.1.46.25.96a15 15 0 0 1 .69-1.23m5.34 0a15 15 0 0 1 .7 1.23q.14-.5.24-.96-.44-.15-.94-.27M7.18 3.06c-1.09-.74-1.85-.76-2.24-.52s-.76.92-.69 2.26l.01.15a11 11 0 0 1 1.8-.41q.6-.8 1.24-1.4zm3.88-.52c-.4-.24-1.15-.22-2.25.52l-.12.08q.65.6 1.25 1.4.96.15 1.8.41v-.14c.08-1.35-.28-2.04-.68-2.27M8 3.7a10 10 0 0 0-.7.7 14 14 0 0 1 1.4 0 10 10 0 0 0-.7-.7" clip-rule="evenodd"/>
6243
- </symbol>`,Bf=`<symbol id="file-tree-builtin-ruby" viewBox="0 0 16 16">
6245
+ </symbol>`,Qp=`<symbol id="file-tree-builtin-ruby" viewBox="0 0 16 16">
6244
6246
  <path fill="currentColor" fill-rule="evenodd" d="M11.04 2c.48 0 .92.23 1.18.6l2.54 3.65c.37.52.3 1.23-.15 1.69l-5.58 5.64a1.47 1.47 0 0 1-2.06 0L1.39 7.94a1.3 1.3 0 0 1-.15-1.7l2.54-3.63q.2-.3.5-.45.33-.16.68-.16zm.84 2.17a.5.5 0 0 0-.7-.05L8 6.84 4.83 4.12a.5.5 0 0 0-.65.76L6.65 7H3.5a.5.5 0 0 0 0 1h9a.5.5 0 0 0 0-1H9.35l2.48-2.12a.5.5 0 0 0 .05-.7" clip-rule="evenodd"/>
6245
- </symbol>`,Vf=`<symbol id="file-tree-builtin-rust" viewBox="0 0 16 16">
6247
+ </symbol>`,$p=`<symbol id="file-tree-builtin-rust" viewBox="0 0 16 16">
6246
6248
  <path fill="currentColor" fill-rule="evenodd" d="M8 .8a.2.2 0 0 1 .18.1l.38.6.16.02.5-.53.01-.01a.2.2 0 0 1 .33.08l.25.68.16.05.59-.43h.02a.2.2 0 0 1 .3.14l.12.71.15.08.65-.3a.2.2 0 0 1 .2.02.2.2 0 0 1 .1.18l-.03.72.12.1.71-.16a.2.2 0 0 1 .25.25l-.17.7q.06.06.1.13l.73-.03A.2.2 0 0 1 14 4a.2.2 0 0 1 .02.2l-.3.66.08.14.71.12a.2.2 0 0 1 .14.32l-.43.59.05.16.68.25a.2.2 0 0 1 .07.35l-.53.49.01.16.62.38a.2.2 0 0 1 0 .36l-.62.38-.01.16.53.5a.2.2 0 0 1-.07.34l-.68.25-.05.16.43.59a.2.2 0 0 1-.14.32l-.72.12-.07.15.3.65a.2.2 0 0 1-.02.2.2.2 0 0 1-.18.1l-.72-.03-.1.13.16.7a.2.2 0 0 1-.25.25l-.7-.17-.13.1.03.73a.2.2 0 0 1-.1.18.2.2 0 0 1-.2.02l-.66-.3-.14.08-.12.71a.2.2 0 0 1-.32.14l-.59-.43-.16.05-.25.68a.2.2 0 0 1-.34.07l-.5-.53-.16.01-.38.62a.2.2 0 0 1-.36 0l-.38-.62-.16-.01-.5.53a.2.2 0 0 1-.34-.07l-.25-.68-.16-.05-.59.43a.2.2 0 0 1-.32-.14L5 13.78l-.15-.07-.65.3a.2.2 0 0 1-.2-.02.2.2 0 0 1-.1-.18l.03-.72-.13-.1-.7.16a.2.2 0 0 1-.25-.25l.17-.7-.1-.13-.73.03a.2.2 0 0 1-.2-.3l.3-.66-.08-.14-.71-.12a.2.2 0 0 1-.14-.32l.43-.59-.05-.16-.68-.25A.2.2 0 0 1 1 9.22l.53-.5-.02-.16-.6-.38A.2.2 0 0 1 .8 8a.2.2 0 0 1 .1-.18l.6-.38.02-.16-.53-.5a.2.2 0 0 1 .07-.34l.68-.25.05-.16-.43-.59a.2.2 0 0 1 .14-.32L2.2 5l.08-.15L2 4.2a.2.2 0 0 1 .2-.3l.72.03.1-.13-.16-.7a.2.2 0 0 1 .25-.25l.7.16.13-.1-.03-.72A.2.2 0 0 1 4 2a.2.2 0 0 1 .2-.02l.65.3L5 2.2l.12-.71v-.03a.2.2 0 0 1 .32-.1l.59.41.16-.04.25-.68.01-.02A.2.2 0 0 1 6.8.99l.49.53.16-.02.38-.61.02-.02A.2.2 0 0 1 8 .79M6.8 9.45h1.26l.06.01q.03.01.03.05v1.52q0 .07-.09.06h-4.5A5.4 5.4 0 0 0 8 13.42a5.4 5.4 0 0 0 4.45-2.33h-2.42c-.36 0-.68-.5-.77-.75-.08-.22-.2-.91-.25-1.12-.15-.61-.59-.71-.78-.73H6.8zM8 2.58a5.4 5.4 0 0 0-4.07 1.85h5.74l.17.02c.23.03.6.12.96.35.34.23.83.68.83 1.4 0 .66-.55 1.16-1.08 1.5.42.33.7.53.86 1.44.04.17.34.32.62.29.29-.03.62-.16.62-.75v-.24q0-.1.07-.1h.68A5.43 5.43 0 0 0 8 2.59M2.96 6.03a5.4 5.4 0 0 0-.19 3.37h1.66V6.03zM6.8 7.06h1.66c.35 0 .77-.12.77-.47 0-.42-.55-.53-.65-.53H6.8z" clip-rule="evenodd"/>
6247
- </symbol>`,Hf=`<symbol id="file-tree-builtin-sass" viewBox="0 0 16 16">
6249
+ </symbol>`,em=`<symbol id="file-tree-builtin-sass" viewBox="0 0 16 16">
6248
6250
  <path fill="currentColor" fill-rule="evenodd" d="M8.08 1.44c2.41-.91 4.96-.37 5.35 1.27.39 1.62-.92 3.56-2.6 4.25a5 5 0 0 1-3.26.35c-.58-.2-.92-.62-1-.85-.03-.09-.09-.24 0-.3.05-.03.08-.02.22.15s.7.6 1.75.48c2.78-.34 4.45-2.64 3.92-3.88-.37-.87-2.5-1.26-5.18.16C4.03 4.81 3.85 6.24 3.82 6.8c-.08 1.5 1.73 2.28 2.7 3.4q.04.03.07.08c.3-.12.7-.19 1.35-.2 1.58-.03 2.47 1.08 2.43 2.08-.03.78-.7 1.1-.82 1.13-.1.01-.14.02-.15-.06q-.03-.06.13-.15c.16-.09.42-.3.48-.72.05-.43-.24-1.44-1.76-1.63a3 3 0 0 0-1.33.08c.27.62.32 1.87-.29 2.83-.63 1-1.8 1.61-2.93 1.27-.37-.1-.93-.92-.45-2.05.46-1.07 2.4-2.12 2.66-2.26-.9-.83-3.08-1.95-3.4-3.65-.08-.49.13-1.65 1.46-2.98a12 12 0 0 1 4.11-2.52m-1.88 9.7c-.01.01-.9.47-1.52 1.17-.59.66-.75 1.48-.43 1.69.3.18 1-.04 1.51-.62a3 3 0 0 0 .5-.9q.2-.64.02-1.39z" clip-rule="evenodd"/>
6249
- </symbol>`,Uf=`<symbol id="file-tree-builtin-stylelint" viewBox="0 0 16 16">
6251
+ </symbol>`,tm=`<symbol id="file-tree-builtin-stylelint" viewBox="0 0 16 16">
6250
6252
  <path fill="currentColor" d="M4 3v3.5l1.5-1L7 15 .5 6l1-1.5L0 3l2.5-2h1zm12 0-1.5 1.5 1 1.5L9 15l1.5-9.5 1.5 1V3l.5-2h1zm-8 8.5a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1m0-3a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1m0-3a.5.5 0 1 1 0 1 .5.5 0 0 1 0-1"/>
6251
6253
  <path fill="currentColor" d="M6.5 2.5V4l-2 1.5v-4zm5 3L9.5 4V2.5l2-1zM9 4H7V2.5h2z"/>
6252
- </symbol>`,Wf=`<symbol id="file-tree-builtin-svelte" viewBox="0 0 16 16">
6254
+ </symbol>`,nm=`<symbol id="file-tree-builtin-svelte" viewBox="0 0 16 16">
6253
6255
  <path fill="currentColor" d="m3.98 3.7 3.36-2.08a4.5 4.5 0 0 1 5.9 1.23 4 4 0 0 1 .7 3.02q-.16.75-.58 1.4c.42.77.56 1.66.4 2.52a3.7 3.7 0 0 1-1.57 2.4l-.17.1-3.36 2.09a4.5 4.5 0 0 1-5.9-1.23 4 4 0 0 1-.66-1.44 4 4 0 0 1-.04-1.58 4 4 0 0 1 .58-1.4 4 4 0 0 1-.4-2.52 3.7 3.7 0 0 1 1.57-2.4zl3.36-2.08zm7.87 0a2.7 2.7 0 0 0-1.26-.95 2.7 2.7 0 0 0-1.6-.07 3 3 0 0 0-.52.2l-.16.09-3.36 2.08a2 2 0 0 0-.69.64 2 2 0 0 0-.36.86 2.3 2.3 0 0 0 .42 1.81A2.7 2.7 0 0 0 7.18 9.4q.28-.06.53-.2l.16-.09 1.28-.79.2-.09a.8.8 0 0 1 .87.31.7.7 0 0 1 .13.55.7.7 0 0 1-.24.4l-.08.05-3.36 2.08-.2.09a1 1 0 0 1-.49-.02 1 1 0 0 1-.38-.3 1 1 0 0 1-.13-.37v-.1l.01-.13-.13-.03a4 4 0 0 1-1.1-.5l-.2-.14-.18-.12-.07.18-.08.3a2.3 2.3 0 0 0 .43 1.82q.45.64 1.19.93.73.28 1.51.14l.16-.04q.27-.07.52-.2l.16-.09 3.36-2.08q.4-.25.69-.64.27-.4.36-.86a2.3 2.3 0 0 0-.42-1.82 2.7 2.7 0 0 0-1.27-.95 2.7 2.7 0 0 0-1.6-.08q-.27.07-.52.2l-.16.1-1.28.79-.2.09a1 1 0 0 1-.49-.03 1 1 0 0 1-.38-.29.7.7 0 0 1-.13-.54.7.7 0 0 1 .24-.4l.08-.06L9.33 4.4l.2-.1a.8.8 0 0 1 .87.32 1 1 0 0 1 .13.38v.22l.11.04q.6.18 1.12.5l.2.14.17.12.06-.19.08-.3a2.3 2.3 0 0 0-.42-1.81z"/>
6254
- </symbol>`,Gf=`<symbol id="file-tree-builtin-svg" viewBox="0 0 16 16">
6256
+ </symbol>`,rm=`<symbol id="file-tree-builtin-svg" viewBox="0 0 16 16">
6255
6257
  <path fill="currentColor" d="M5 7a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z"/>
6256
6258
  <path fill="currentColor" d="M6 1a5 5 0 0 1 4.58 3H7a3 3 0 0 0-3 3v3.58A5 5 0 0 1 6 1" opacity=".5"/>
6257
- </symbol>`,Kf=`<symbol id="file-tree-builtin-svgo" viewBox="0 0 16 16">
6259
+ </symbol>`,im=`<symbol id="file-tree-builtin-svgo" viewBox="0 0 16 16">
6258
6260
  <path fill="currentColor" d="M9.43 4.8A.6.6 0 1 1 9.19 6l-.56.96a1.2 1.2 0 0 1 .32 1.58l.7.53a.89.89 0 1 1-.17.22l-.7-.52a1.2 1.2 0 0 1-1.4.25l-.56.87a.75.75 0 1 1-.57-.2 1 1 0 0 1 .32.05l.56-.87a1.2 1.2 0 0 1-.4-1.24l-1.2-.47a.56.56 0 1 1 .1-.28v.02l1.2.47a1.2 1.2 0 0 1 1.56-.55l.56-.97a.6.6 0 0 1-.15-.64.6.6 0 0 1 .63-.4"/>
6259
6261
  <path fill="currentColor" fill-rule="evenodd" d="M9.17 1q.16.63.27 1.26a6 6 0 0 1 1.61.67q.52-.38 1.08-.71l1.65 1.64q-.32.56-.68 1.05.48.78.72 1.67.6.09 1.18.25v2.32q-.55.15-1.11.24a6 6 0 0 1-.7 1.82q.31.44.59.91l-1.65 1.65-.85-.55a6 6 0 0 1-1.9.83q-.08.47-.2.95H6.84q-.12-.46-.2-.93a6 6 0 0 1-1.96-.81q-.39.27-.8.51l-1.65-1.65q.25-.43.53-.84a6 6 0 0 1-.75-1.9L1 9.16V6.83q.54-.14 1.09-.24a6 6 0 0 1 .77-1.74q-.33-.47-.63-.98l1.65-1.65q.54.32 1.03.68a6 6 0 0 1 1.66-.66q.1-.61.26-1.24zM7.96 3.73a4 4 0 0 0-1.74.36 4.5 4.5 0 0 0-2.3 2.3 4.4 4.4 0 0 0-.1 3.29l.03.06a4.4 4.4 0 0 0 2.4 2.47 4.4 4.4 0 0 0 3.48-.02l.03-.02a4.4 4.4 0 0 0 2.3-2.42l.06-.14a4.4 4.4 0 0 0-.2-3.4 4.4 4.4 0 0 0-2.13-2.07L9.47 4a4 4 0 0 0-1.51-.27" clip-rule="evenodd"/>
6260
- </symbol>`,qf=`<symbol id="file-tree-builtin-swift" viewBox="0 0 16 16">
6262
+ </symbol>`,am=`<symbol id="file-tree-builtin-swift" viewBox="0 0 16 16">
6261
6263
  <path fill="currentColor" d="M9.63 1c6.15 4.35 4.16 9.15 4.16 9.15s1.75 2.05 1.04 3.85c0 0-.72-1.26-1.93-1.26-1.17 0-1.85 1.26-4.2 1.26C3.47 14 1 9.46 1 9.46c4.71 3.22 7.93.94 7.93.94C6.8 9.12 2.29 3 2.29 3c3.93 3.47 5.63 4.39 5.63 4.39-1.01-.87-3.86-5.13-3.86-5.13C6.34 4.66 10.86 8 10.86 8c1.28-3.7-1.23-7-1.23-7"/>
6262
- </symbol>`,Jf=`<symbol id="file-tree-builtin-table" viewBox="0 0 16 16">
6264
+ </symbol>`,om=`<symbol id="file-tree-builtin-table" viewBox="0 0 16 16">
6263
6265
  <path fill="currentColor" d="M8 4a3 3 0 0 0 3 3h3v5.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 2 12.5v-9A2.5 2.5 0 0 1 4.5 1H8z" class="bg" opacity=".4"/>
6264
6266
  <path fill="currentColor" d="M11.5 8a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5v-4a.5.5 0 0 1 .5-.5zM5 12h2.5v-1H5zm3.5 0H11v-1H8.5zM5 10h2.5V9H5zm3.5 0H11V9H8.5zm1-9a.5.5 0 0 1 .354.146l4 4A.5.5 0 0 1 14 5.5V6h-3a2 2 0 0 1-2-2V1z" class="fg"/>
6265
- </symbol>`,Yf=`<symbol id="file-tree-builtin-tailwind" viewBox="0 0 16 16">
6267
+ </symbol>`,sm=`<symbol id="file-tree-builtin-tailwind" viewBox="0 0 16 16">
6266
6268
  <path fill="currentColor" fill-rule="evenodd" d="M8 4Q5.2 4 4.5 6.67q1.05-1.34 2.45-1c.53.12.91.5 1.33.9C8.98 7.23 9.77 8 11.5 8q2.8 0 3.5-2.67-1.05 1.34-2.45 1c-.53-.12-.91-.5-1.33-.9C10.52 4.77 9.73 4 8 4M4.5 8Q1.7 8 1 10.67q1.05-1.34 2.45-1c.53.12.91.5 1.33.9C5.48 11.23 6.26 12 8 12q2.8 0 3.5-2.67-1.05 1.34-2.45 1c-.53-.12-.91-.5-1.33-.9C7.02 8.77 6.24 8 4.5 8" clip-rule="evenodd"/>
6267
- </symbol>`,Xf=`<symbol id="file-tree-builtin-terraform" viewBox="0 0 16 16">
6269
+ </symbol>`,cm=`<symbol id="file-tree-builtin-terraform" viewBox="0 0 16 16">
6268
6270
  <path fill="currentColor" d="M1 0v5.05l4.35 2.53V2.53zm9.18 5.34L5.83 2.82v5.05l4.35 2.53zm.47 5.06V5.34L15 2.82v5.05zm-.48 5.6-4.35-2.53V8.42l4.35 2.53z"/>
6269
- </symbol>`,Zf=`<symbol id="file-tree-builtin-text" viewBox="0 0 16 16">
6271
+ </symbol>`,lm=`<symbol id="file-tree-builtin-text" viewBox="0 0 16 16">
6270
6272
  <path fill="currentColor" fill-rule="evenodd" d="M8 4a3 3 0 0 0 3 3h3v5.5a2.5 2.5 0 0 1-2.5 2.5h-7A2.5 2.5 0 0 1 2 12.5v-9A2.5 2.5 0 0 1 4.5 1H8z" class="bg" clip-rule="evenodd" opacity=".4"/>
6271
6273
  <path fill="currentColor" d="M8.5 11a.5.5 0 0 1 0 1h-3a.5.5 0 0 1 0-1zm2-2a.5.5 0 0 1 0 1h-5a.5.5 0 0 1 0-1zm-1-8a.5.5 0 0 1 .354.146l4 4A.5.5 0 0 1 14 5.5V6h-3a2 2 0 0 1-2-2V1z"/>
6272
- </symbol>`,Qf=`<symbol id="file-tree-builtin-typescript" viewBox="0 0 16 16">
6274
+ </symbol>`,um=`<symbol id="file-tree-builtin-typescript" viewBox="0 0 16 16">
6273
6275
  <path fill="currentColor" d="M8 1C2.24 1 1 2.24 1 8s1.24 7 7 7 7-1.24 7-7-1.24-7-7-7" class="bg" opacity=".2"/>
6274
6276
  <path fill="currentColor" d="M8.1 9.64h.95c.04.62.28.76 1.28.76s1.2-.14 1.2-.85c0-.66-.2-.85-1.2-1.07-1.79-.38-2.18-.7-2.18-1.86C8.15 5.3 8.54 5 10.31 5c1.67 0 2.04.26 2.07 1.42h-.95c-.02-.43-.23-.53-1.1-.53-1 0-1.22.14-1.22.74 0 .52.22.7 1.24.92 1.76.38 2.15.73 2.15 2 0 1.44-.4 1.75-2.24 1.75-1.8 0-2.18-.3-2.15-1.66m-3 1.57V5.99H3.5v-.9h4.21v.9H6.1v5.22z"/>
6275
- </symbol>`,$f=`<symbol id="file-tree-builtin-vite" viewBox="0 0 16 16">
6277
+ </symbol>`,dm=`<symbol id="file-tree-builtin-vite" viewBox="0 0 16 16">
6276
6278
  <path fill="currentColor" d="M8.57 14.87c-.18.26-.55.11-.55-.22v-3.18l-.05-.27-.13-.22-.2-.15-.24-.06H4.29c-.26 0-.4-.32-.26-.55L6.08 7c.3-.46 0-1.1-.5-1.1H1.8c-.25 0-.4-.32-.25-.56l2.65-4.2A.3.3 0 0 1 4.46 1h7.9c.26 0 .4.32.26.55l-2.05 3.23c-.29.46 0 1.1.5 1.1h3.12c.26 0 .4.34.24.57z"/>
6277
- </symbol>`,ep=`<symbol id="file-tree-builtin-vscode" viewBox="0 0 16 16">
6279
+ </symbol>`,fm=`<symbol id="file-tree-builtin-vscode" viewBox="0 0 16 16">
6278
6280
  <path fill="currentColor" d="m5.11 9.68-2.4 1.84a.6.6 0 0 1-.75-.04l-.77-.7a.6.6 0 0 1 0-.87L3.28 8zm5.52-8.42a.51.51 0 0 1 .87.36V4.8L7.32 8 5.1 6.32z" opacity=".75"/>
6279
6281
  <path fill="currentColor" d="M11.1 14.99h.03zM1.96 4.52a.6.6 0 0 1 .75-.04l8.8 6.71v3.19a.51.51 0 0 1-.88.36L1.19 6.1a.6.6 0 0 1 0-.87z" opacity=".65"/>
6280
6282
  <path fill="currentColor" d="M11.62 14.91a.9.9 0 0 1-1-.17.51.51 0 0 0 .88-.36V1.62a.51.51 0 0 0-.87-.36.9.9 0 0 1 1-.17l2.87 1.39a.9.9 0 0 1 .5.8v9.44a.9.9 0 0 1-.5.8z"/>
6281
- </symbol>`,tp=`<symbol id="file-tree-builtin-vue" viewBox="0 0 16 16">
6283
+ </symbol>`,pm=`<symbol id="file-tree-builtin-vue" viewBox="0 0 16 16">
6282
6284
  <path fill="currentColor" d="M9.62 2.25 8 5.02 6.38 2.25H1l7 12 7-12z" opacity=".5"/>
6283
6285
  <path fill="currentColor" d="M9.54 2.25 8 4.95l-1.54-2.7H4l4 7 4-7z"/>
6284
- </symbol>`,np=`<symbol id="file-tree-builtin-wasm" viewBox="0 0 16 16">
6286
+ </symbol>`,mm=`<symbol id="file-tree-builtin-wasm" viewBox="0 0 16 16">
6285
6287
  <path fill="currentColor" d="M13 1a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h3a2 2 0 1 0 4 0z" class="subtract" opacity=".2"/>
6286
6288
  <path fill="currentColor" d="M4.64 11.4h.02l.8-3.4h.91l.73 3.45L7.88 8h.96l-1.25 5h-.97L5.9 9.6 5.1 13h-1L3 8h.98z"/>
6287
6289
  <path fill="currentColor" fill-rule="evenodd" d="M13 13h-1.02l-.33-1.11H9.9L9.64 13h-.97l1.26-5h1.54zm-2.49-3.77-.42 1.84h1.32l-.49-1.84z" clip-rule="evenodd"/>
6288
- </symbol>`,rp=`<symbol id="file-tree-builtin-webpack" viewBox="0 0 16 16">
6290
+ </symbol>`,hm=`<symbol id="file-tree-builtin-webpack" viewBox="0 0 16 16">
6289
6291
  <path fill="currentColor" d="M14.1 11.79 8.26 15v-2.5l3.64-1.94zm.4-.35V4.73l-2.14 1.2v4.3zm-12.6.35L7.74 15v-2.5L4.1 10.56zm-.4-.35V4.73l2.14 1.2v4.3zm.25-7.15 6-3.29v2.42L3.9 5.47l-.03.01zm12.5 0L8.25 1v2.42l3.85 2.05.03.01z" class="bg" opacity=".4"/>
6290
6292
  <path fill="currentColor" d="m7.74 11.93-3.59-1.92v-3.8l3.6 2.02zm.52 0 3.59-1.92v-3.8l-3.6 2.02zM4.4 5.77 8 3.85l3.6 1.93L8 7.8z" class="fg"/>
6291
- </symbol>`,ip=`<symbol id="file-tree-builtin-yml" viewBox="0 0 16 16">
6293
+ </symbol>`,gm=`<symbol id="file-tree-builtin-yml" viewBox="0 0 16 16">
6292
6294
  <path fill="currentColor" d="M7.5 2A1.5 1.5 0 0 1 9 3.5v3A1.5 1.5 0 0 1 7.5 8h-2v2A1.5 1.5 0 0 0 7 11.5v-1A1.5 1.5 0 0 1 8.5 9h5a1.5 1.5 0 0 1 1.5 1.5v3a1.5 1.5 0 0 1-1.5 1.5h-5A1.5 1.5 0 0 1 7 13.5v-1A2.5 2.5 0 0 1 4.5 10V8h-2A1.5 1.5 0 0 1 1 6.5v-3A1.5 1.5 0 0 1 2.5 2zm1 8a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5zm-6-7a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h5a.5.5 0 0 0 .5-.5v-3a.5.5 0 0 0-.5-.5z"/>
6293
- </symbol>`,ap=`<symbol id="file-tree-builtin-zig" viewBox="0 0 16 16">
6295
+ </symbol>`,_m=`<symbol id="file-tree-builtin-zig" viewBox="0 0 16 16">
6294
6296
  <path fill="currentColor" d="m14.73 1.5-7.29 8.82h4.17l-1.73 2.04H5.76L1.27 14.5l7.3-8.91H4.39l1.73-2.05h4.12z"/>
6295
6297
  <path fill="currentColor" d="M5.21 3.54 3.56 5.6h-.55v4.73h.83L2.1 12.36H1V3.54zm9.79 0v8.82h-4.3l1.74-2.04h.55V5.68h-.83l1.74-2.14z"/>
6296
- </symbol>`,op=[uf,hf,_f,vf,yf,bf,Cf,wf,Tf,Df,Of,kf,Af,jf,Mf,Rf,Bf,Vf,qf,Jf,Zf,Qf,`<symbol id="file-tree-builtin-zip" viewBox="0 0 16 16">
6298
+ </symbol>`,vm=[Sp,Dp,kp,Ap,jp,Mp,Fp,Ip,Lp,zp,Bp,Vp,Hp,Up,Wp,Xp,Qp,$p,am,om,lm,um,`<symbol id="file-tree-builtin-zip" viewBox="0 0 16 16">
6297
6299
  <path fill="currentColor" d="M4.585 2a2 2 0 0 1 1.028.285l1.788 1.072a1 1 0 0 0 .514.143H12A2 2 0 0 1 13.935 5H0V4a2 2 0 0 1 2-2z" class="bg" opacity=".5"/>
6298
6300
  <path fill="currentColor" fill-rule="evenodd" d="M14 12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2v-1.25h1v-1H0V6h14zM9.9 8.25c-.883 0-1.9.5-1.9.5H7v1h1v1s1.017.5 1.9.5c.884 0 1.6-.672 1.6-1.5s-.716-1.5-1.6-1.5M2 9.75v1h1v-1zm2 0v1h1v-1zm2 0v1h1v-1zm-5-1v1h1v-1zm2 0v1h1v-1zm2 0v1h1v-1z" class="fg" clip-rule="evenodd"/>
6299
- </symbol>`],sp=[cf,lf,df,ff,pf,mf,gf,xf,Sf,Ef,Nf,Pf,Ff,If,Lf,zf,Hf,Uf,Wf,Gf,Kf,Yf,Xf,$f,ep,tp,np,rp,ip,ap];function cp(e,t){return t.length===0?e:e.replace(`</svg>`,`\n ${t.join(`
6300
- `)}\n</svg>`)}var lp=cp(sf,op),up={minimal:sf,standard:lp,complete:cp(lp,sp)},dp={".babelrc":`babel`,".babelrc.json":`babel`,".bash_profile":`bash`,".bashrc":`bash`,".browserslistrc":`browserslist`,".dockerignore":`docker`,".eslintignore":`eslint`,".eslintrc":`eslint`,".eslintrc.cjs":`eslint`,".eslintrc.js":`eslint`,".eslintrc.json":`eslint`,".eslintrc.yaml":`eslint`,".eslintrc.yml":`eslint`,".gitattributes":`git`,".gitignore":`git`,".gitkeep":`git`,".gitmodules":`git`,".oxlintrc.json":`oxc`,".postcssrc":`postcss`,".postcssrc.json":`postcss`,".postcssrc.yaml":`postcss`,".postcssrc.yml":`postcss`,".prettierignore":`prettier`,".prettierrc":`prettier`,".prettierrc.cjs":`prettier`,".prettierrc.js":`prettier`,".prettierrc.json":`prettier`,".prettierrc.mjs":`prettier`,".prettierrc.toml":`prettier`,".prettierrc.yaml":`prettier`,".prettierrc.yml":`prettier`,".stylelintignore":`stylelint`,".stylelintrc":`stylelint`,".stylelintrc.cjs":`stylelint`,".stylelintrc.js":`stylelint`,".stylelintrc.json":`stylelint`,".stylelintrc.mjs":`stylelint`,".stylelintrc.yaml":`stylelint`,".stylelintrc.yml":`stylelint`,".terraform.lock.hcl":`terraform`,".zprofile":`bash`,".zshenv":`bash`,".zshrc":`bash`,"babel.config.cjs":`babel`,"babel.config.js":`babel`,"babel.config.json":`babel`,"babel.config.mjs":`babel`,"biome.json":`biome`,"biome.jsonc":`biome`,"bootstrap.bundle.js":`bootstrap`,"bootstrap.bundle.min.js":`bootstrap`,"bootstrap.css":`bootstrap`,"bootstrap.js":`bootstrap`,"bootstrap.min.css":`bootstrap`,"bootstrap.min.js":`bootstrap`,"bun.lock":`bun`,"bun.lockb":`bun`,"bunfig.toml":`bun`,"claude.md":`claude`,"compose.yaml":`docker`,"compose.yml":`docker`,"docker-compose.override.yml":`docker`,"docker-compose.yaml":`docker`,"docker-compose.yml":`docker`,dockerfile:`docker`,"eslint.config.cjs":`eslint`,"eslint.config.js":`eslint`,"eslint.config.mjs":`eslint`,"eslint.config.mts":`eslint`,"eslint.config.ts":`eslint`,gemfile:`ruby`,"next.config.js":`nextjs`,"next.config.mjs":`nextjs`,"next.config.mts":`nextjs`,"next.config.ts":`nextjs`,"postcss.config.cjs":`postcss`,"postcss.config.js":`postcss`,"postcss.config.mjs":`postcss`,"postcss.config.ts":`postcss`,"prettier.config.cjs":`prettier`,"prettier.config.js":`prettier`,"prettier.config.mjs":`prettier`,rakefile:`ruby`,"readme.md":`markdown`,"stylelint.config.cjs":`stylelint`,"stylelint.config.js":`stylelint`,"stylelint.config.mjs":`stylelint`,"svgo.config.cjs":`svgo`,"svgo.config.js":`svgo`,"svgo.config.mjs":`svgo`,"svgo.config.ts":`svgo`,"tailwind.config.cjs":`tailwind`,"tailwind.config.js":`tailwind`,"tailwind.config.mjs":`tailwind`,"tailwind.config.ts":`tailwind`,"vite.config.js":`vite`,"vite.config.mjs":`vite`,"vite.config.mts":`vite`,"vite.config.ts":`vite`,"webpack.config.babel.js":`webpack`,"webpack.config.cjs":`webpack`,"webpack.config.js":`webpack`,"webpack.config.mjs":`webpack`,"webpack.config.ts":`webpack`},fp={"7z":`zip`,astro:`astro`,AUTHORS:`text`,avif:`image`,bash:`bash`,bmp:`image`,bz2:`zip`,c:`c`,cc:`cpp`,cfg:`text`,CHANGELOG:`text`,cjs:`javascript`,"code-workspace":`vscode`,conf:`text`,CONTRIBUTORS:`text`,cpp:`cpp`,csh:`bash`,css:`css`,csv:`table`,cts:`typescript`,cxx:`cpp`,db:`database`,editorconfig:`text`,env:`text`,"env.development":`text`,"env.local":`text`,"env.production":`text`,eot:`font`,erb:`ruby`,fish:`bash`,gemspec:`ruby`,gif:`image`,go:`go`,gql:`graphql`,graphql:`graphql`,gz:`zip`,h:`c`,hh:`cpp`,hpp:`cpp`,htm:`html`,html:`html`,hxx:`cpp`,icns:`image`,ico:`image`,ini:`text`,inl:`cpp`,jar:`zip`,jpeg:`image`,jpg:`image`,js:`javascript`,json:`json`,json5:`json`,jsonc:`json`,jsonl:`json`,jsx:`javascript`,ksh:`bash`,less:`css`,LICENSE:`text`,log:`text`,markdown:`markdown`,mcp:`mcp`,md:`markdown`,mdx:`markdown`,"mdx.tsx":`markdown`,mjs:`javascript`,mm:`cpp`,mts:`typescript`,ods:`table`,otf:`font`,png:`image`,postcss:`css`,py:`python`,pyi:`python`,pyw:`python`,pyx:`python`,rake:`ruby`,rar:`zip`,rb:`ruby`,rs:`rust`,rst:`text`,rtf:`text`,sass:`css`,scss:`css`,sh:`bash`,sql:`database`,sqlite:`database`,sqlite3:`database`,styl:`css`,svelte:`svelte`,svg:`svg`,swift:`swift`,tar:`zip`,tf:`terraform`,tfstate:`terraform`,tfvars:`terraform`,tgz:`zip`,tif:`image`,tiff:`image`,ts:`typescript`,tsv:`table`,tsx:`typescript`,ttf:`font`,txt:`text`,vue:`vue`,war:`zip`,wasm:`wasm`,wast:`wasm`,wat:`wasm`,webp:`image`,woff:`font`,woff2:`font`,xhtml:`html`,xls:`table`,xlsx:`table`,xz:`zip`,yaml:`yml`,yml:`yml`,zig:`zig`,zip:`zip`,zsh:`bash`},pp={jsx:`react`,sass:`sass`,scss:`sass`,tsx:`react`},mp=new Set([`bash`,`c`,`cpp`,`css`,`database`,`default`,`font`,`git`,`go`,`html`,`image`,`javascript`,`json`,`markdown`,`mcp`,`python`,`ruby`,`rust`,`swift`,`table`,`text`,`typescript`,`zip`]),hp=new Set([`complete`]);function gp(e){return up[e===`none`?`minimal`:e]}function _p(e){return`file-tree-builtin-${e}`}function vp(e){return e!==`none`&&hp.has(e)}function yp(e,t,n){if(e===`minimal`||e===`none`)return;let r=e===`complete`,i=dp[t.toLowerCase()];if(i!=null&&(r||mp.has(i)))return i;for(let e of n){if(r){let t=pp[e];if(t!=null)return t}let t=fp[e];if(t!=null&&(r||mp.has(t)))return t}return`default`}var bp=`file-tree-container`,xp=`data-file-tree-style`,Sp=`data-file-tree-unsafe-css`,Cp=`data-file-tree-scrollbar-measure`,wp=`data-file-tree-scrollbar-gutter-measured`,Tp=`--trees-scrollbar-gutter-measured`,Ep=`header`,Dp=`context-menu`,Op=`context-menu-trigger`;function kp(e){return e.spriteSheet!=null||e.remap!=null||e.byFileName!=null||e.byFileExtension!=null||e.byFileNameContains!=null}function Ap(e){return e==null?{set:`complete`,colored:!0}:typeof e==`string`?{set:e,colored:!0}:{...e,set:e.set??(kp(e)?`none`:`complete`),colored:e.colored??!0}}var jp=e=>e.trim().toLowerCase(),Mp=e=>e.split(`/`).at(-1)??e,Np=e=>{let t=e.toLowerCase().split(`.`),n=[];for(let e=1;e<t.length;e+=1)n.push(t.slice(e).join(`.`));return n};function Pp(e,t){return typeof e==`string`?{name:e,remappedFrom:t}:{...e,remappedFrom:t}}function Fp(e){let t=Ap(e),n=t.remap,r=new Map;for(let[e,n]of Object.entries(t.byFileName??{}))r.set(e.toLowerCase(),n);let i=new Map;for(let[e,n]of Object.entries(t.byFileExtension??{}))i.set(jp(e),n);let a=Object.entries(t.byFileNameContains??{}).map(([e,t])=>[e.toLowerCase(),t]);return{resolveIcon:(e,o)=>{if(e===`file-tree-icon-file`&&o!=null){let s=Mp(o),c=s.toLowerCase(),l=r.get(c);if(l!=null)return Pp(l,e);for(let[t,n]of a)if(c.includes(t))return Pp(n,e);let u=Np(s);for(let t of u){let n=i.get(t);if(n!=null)return Pp(n,e)}let d=yp(t.set,s,u);if(d!=null&&t.set!==`none`){if(d==="default"){let t=n?.[e];if(t!=null)return Pp(t,e)}return{name:_p(d),remappedFrom:e,token:d}}}let s=n?.[e];return s==null?{name:e}:Pp(s,e)}}}var Ip=5,Lp=32,Rp=128;function zp(){return{childIdByNameId:new Map,childIds:[],childPositionById:new Map,childVisibleChunkSums:null,totalChildSubtreeNodeCount:0,totalChildVisibleSubtreeCount:0}}function Bp(){return{childIdByNameId:null,childIds:[],childPositionById:null,childVisibleChunkSums:null,totalChildSubtreeNodeCount:0,totalChildVisibleSubtreeCount:0}}function Vp(e,t){if(t.childIdByNameId!=null)return t.childIdByNameId;let n=new Map;for(let r of t.childIds){let t=e[r];t!=null&&n.set(t.nameId,r)}return t.childIdByNameId=n,n}function Hp(e){if(e.childPositionById!=null)return e.childPositionById;let t=new Map;for(let n=0;n<e.childIds.length;n++){let r=e.childIds[n];r!=null&&t.set(r,n)}return e.childPositionById=t,t}function Up(e,t){e.childPositionById!=null&&e.childPositionById.set(t,e.childIds.length),e.childIds.push(t)}function Wp(e,t){if(e.childPositionById!=null)for(let n=t;n<e.childIds.length;n++){let t=e.childIds[n];t!=null&&e.childPositionById.set(t,n)}}function Gp(e,t){let n=0,r=0;for(let i of t.childIds){let t=e[i];t!=null&&(n+=t.subtreeNodeCount,r+=t.visibleSubtreeCount)}t.totalChildSubtreeNodeCount=n,t.totalChildVisibleSubtreeCount=r,Yp(e,t)}function Kp(e,t,n,r){if(e.totalChildSubtreeNodeCount+=n,e.totalChildVisibleSubtreeCount+=r,e.childVisibleChunkSums==null||r===0)return;let i=Hp(e).get(t);if(i===void 0)return;let a=i>>Ip;e.childVisibleChunkSums[a]+=r}function qp(e,t,n){let r=t.childVisibleChunkSums;if(r!=null){let i=n,a=0;for(let o of r){if(i<o){let r=Xp(e,t,a,i);return{...r,childVisibleIndex:n-r.localVisibleIndex}}i-=o,a+=Lp}throw Error(`Visible child index ${String(n)} is out of range`)}let i=n;for(let r=0;r<t.childIds.length;r++){let a=t.childIds[r];if(a==null)continue;let o=e[a];if(o!=null){if(i<o.visibleSubtreeCount)return{childIndex:r,childVisibleIndex:n-i,localVisibleIndex:i};i-=o.visibleSubtreeCount}}throw Error(`Visible child index ${String(n)} is out of range`)}function Jp(e,t,n){let r=0,i=t.childVisibleChunkSums,a=0;if(i!=null){let e=n>>Ip;for(let t=0;t<e;t+=1)r+=i[t]??0;a=e<<Ip}for(let i=a;i<n;i+=1){let n=t.childIds[i];if(n==null)continue;let a=e[n];a!=null&&(r+=a.visibleSubtreeCount)}return r}function Yp(e,t){if(t.childIds.length<Rp){t.childVisibleChunkSums=null;return}let n=Math.ceil(t.childIds.length/Lp),r=new Int32Array(n);for(let n=0;n<t.childIds.length;n++){let i=t.childIds[n];if(i==null)continue;let a=e[i];a!=null&&(r[n>>Ip]+=a.visibleSubtreeCount)}t.childVisibleChunkSums=r}function Xp(e,t,n,r){let i=Math.min(t.childIds.length,n+Lp),a=r;for(let r=n;r<i;r++){let n=t.childIds[r];if(n==null)continue;let i=e[n];if(i!=null){if(a<i.visibleSubtreeCount)return{childIndex:r,localVisibleIndex:a};a-=i.visibleSubtreeCount}}throw Error(`Visible child index ${String(r)} is out of range`)}var Zp=7,Qp=3,$p=8,em=4;function tm(e,t,n=0){return e<<em|n<<Qp|t}function nm(e){return e.depthAndFlags>>>em}function rm(e){return(e.depthAndFlags&$p)>>Qp}function H(e){return(e.depthAndFlags&$p)!==0}function im(e){return e.depthAndFlags&Zp}function U(e,t){return(im(e)&t)!==0}function am(e,t){e.depthAndFlags|=t}function om(e,t){e.depthAndFlags=tm(t,im(e),rm(e))}var sm=Symbol(`benchmarkInstrumentation`);function cm(e,t){return t==null||Object.defineProperty(e,sm,{configurable:!0,enumerable:!1,value:t,writable:!1}),e}function lm(e){return e==null?null:e[sm]??null}function W(e,t,n){return e==null?n():e.measurePhase(t,n)}function um(e,t,n){!Number.isFinite(n)||e==null||e.setCounter(t,n)}function dm(e){return e>=48&&e<=57}function fm(e){let t=[],n=0,r=0;for(;r<e.length;){for(;r<e.length&&!dm(e.charCodeAt(r));)r+=1;if(r>=e.length)break;r>n&&t.push(e.slice(n,r));let i=0;for(;r<e.length&&dm(e.charCodeAt(r));)i=i*10+(e.charCodeAt(r)-48),r+=1;t.push(i),n=r}return(n<e.length||t.length===0)&&t.push(e.slice(n)),t}function pm(e){let t=e.toLowerCase();return{lowerValue:t,tokens:fm(t)}}function mm(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){let n=e[r],i=t[r];if(n===i)continue;if(typeof n==`number`&&typeof i==`number`)return n<i?-1:1;let a=String(n),o=String(i);if(a!==o)return a<o?-1:1}return e.length===t.length?0:e.length<t.length?-1:1}function hm(e,t){if(e.tokens.length===1&&t.tokens.length===1&&typeof e.tokens[0]==`string`&&typeof t.tokens[0]==`string`)return e.lowerValue===t.lowerValue?0:e.lowerValue<t.lowerValue?-1:1;let n=mm(e.tokens,t.tokens);return n===0?e.lowerValue===t.lowerValue?0:e.lowerValue<t.lowerValue?-1:1:n}function gm(e,t,n){let r=hm(n(e),n(t));return r===0?e===t?0:e<t?-1:1:r}function _m(e,t){return gm(e,t,pm)}function vm(e,t){return t===e.segments.length-1?+!!e.isDirectory:1}function ym(e,t){let n=Math.min(e.segments.length,t.segments.length);for(let r=0;r<n;r++){let n=e.segments[r],i=t.segments[r];if(n===i)continue;let a=vm(e,r);return a===vm(t,r)?_m(n,i):a===1?-1:1}return e.segments.length===t.segments.length?e.isDirectory===t.isDirectory?0:e.isDirectory?-1:1:e.segments.length<t.segments.length?-1:1}function bm(e,t){return ym(e,t)}function xm(e,t,n){let r=e=>{let t=n.get(e);if(t!=null)return t;let r=pm(e);return n.set(e,r),r},i=Math.min(e.segments.length,t.segments.length);for(let n=0;n<i;n++){let i=e.segments[n],a=t.segments[n];if(i===a)continue;let o=vm(e,n);return o===vm(t,n)?gm(i,a,r):o===1?-1:1}return e.segments.length===t.segments.length?e.isDirectory===t.isDirectory?0:e.isDirectory?-1:1:e.segments.length<t.segments.length?-1:1}function Sm(e,t){let n=e.sortKeyById[t];if(n!==void 0)return n;let r=e.valueById[t],i=pm(r);return e.sortKeyById[t]=i,i}function Cm(e={}){return{flattenEmptyDirectories:e.flattenEmptyDirectories!==!1,sort:e.sort??`default`}}function wm(e){let t=e.length>0&&e.charCodeAt(e.length-1)===47,n=t?e.length-1:e.length,r=[],i=0;for(let t=0;t<n;t++)e.charCodeAt(t)===47&&(r.push(e.slice(i,t)),i=t+1);return r.push(e.slice(i,n)),{hasTrailingSlash:t,segments:r}}function Tm(e){let{hasTrailingSlash:t,segments:n}=wm(e);return{basename:n[n.length-1]??``,isDirectory:t,path:e,segments:n}}function Em(e){if(e.length===0)return{requiresDirectory:!1,segments:[]};let{hasTrailingSlash:t,segments:n}=wm(e);return{requiresDirectory:t,segments:n}}function Dm(){let e=new Map;return e.set(``,0),{idByValue:e,valueById:[``],sortKeyById:[pm(``)]}}function Om(e,t){let n=e.idByValue.get(t);if(n!==void 0)return n;let r=e.valueById.length;return e.idByValue.set(t,r),e.valueById.push(t),r}function km(e,t){let n=e.valueById[t];if(n===void 0)throw Error(`Unknown segment ID: ${String(t)}`);return n}var Am=Symbol(`pathStorePreparedInputKind`);function jm(e,t){return e[Am]=t,e}function Mm(e){return{basename:e.basename,depth:e.segments.length,isDirectory:e.isDirectory,path:e.path,segments:e.segments}}function Nm(e,t,n){return n==="default"?bm(e,t):n(Mm(e),Mm(t))}function Pm(){return{depthAndFlags:tm(0,3,1),nameId:0,parentId:0,subtreeNodeCount:1,visibleSubtreeCount:1}}function Fm(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!==t[r])return r;return n}function Im(e){return e.isDirectory?e.segments.length:e.segments.length-1}function Lm(e){return Array.isArray(e)&&e.every(e=>typeof e==`object`&&!!e&&typeof e.path==`string`&&Array.isArray(e.segments)&&typeof e.basename==`string`&&typeof e.isDirectory==`boolean`)}function Rm(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function zm(e,t={}){return Gm(e,t).map(e=>e.path)}function Bm(e,t={}){let n=Gm(e,t);return jm({paths:n.map(e=>e.path),preparedPaths:n},`prepared`)}function Vm(e){let t=e.length,n=!1;for(let r=0;r<t;r+=1){let t=e[r];if(t.length>0&&t.charCodeAt(t.length-1)===47){n=!0;break}}return jm({paths:e,presortedPaths:e,presortedPathsContainDirectories:n},`presorted`)}function Hm(e){let t=e,n=t.preparedPaths;if(t[Am]===`prepared`&&n!=null)return n;if(!Lm(n))throw Error(`preparedInput must come from PathStore.prepareInput()`);return n}function Um(e){let t=e;return t[Am]===`presorted`&&t.presortedPaths!=null||Rm(t.presortedPaths)?t.presortedPaths:null}function Wm(e){let t=e;return typeof t.presortedPathsContainDirectories==`boolean`?t.presortedPathsContainDirectories:null}function Gm(e,t={}){let n=Cm(t),r=lm(t);um(r,`workload.inputFiles`,e.length);let i=W(r,`store.preparePathEntries.parse`,()=>e.map(e=>Tm(e)));return W(r,`store.preparePathEntries.sort`,()=>i.sort((e,t)=>Nm(e,t,n.sort))),i}var Km=class{directories=new Map;directoryStack=[0];presortedDirectoryNodeIds=[];initialExpandedPathSet;createdDirectoriesAllExpanded=!1;createdDirectoryCount=0;lastPreparedPath=null;nodes=[Pm()];options;instrumentation;segmentSortKeyCache=new Map;segmentTable=Dm();hasDeferredDirectoryIndexes=!1;constructor(e={}){this.instrumentation=lm(e),this.options=Cm(e);let t=e.initialExpandedPaths??null;if(t==null||t.length===0)this.initialExpandedPathSet=null;else{let e=new Set,n=t.length;for(let r=0;r<n;r+=1){let n=t[r],i=n.length;e.add(i>0&&n.charCodeAt(i-1)===47?n.slice(0,i-1):n)}this.initialExpandedPathSet=e,this.createdDirectoriesAllExpanded=!0}this.directories.set(0,zp())}appendPaths(e){return W(this.instrumentation,`store.builder.appendPaths.parse`,()=>this.appendPreparedPaths(e.map(e=>Tm(e))))}appendPreparedPaths(e,t=!0){return this.createdDirectoriesAllExpanded=!1,W(this.instrumentation,`store.builder.appendPreparedPaths`,()=>{for(let n of e)this.appendPreparedPath(n,t)}),this}appendPresortedPaths(e,t=null){return W(this.instrumentation,`store.builder.appendPresortedPaths`,()=>{if(t===!1){this.appendPresortedFilePaths(e);return}this.createdDirectoriesAllExpanded=!1;let n=null,r=0,i=this.nodes,a=this.segmentTable,o=a.idByValue,s=a.valueById,c=this.directoryStack,l=0,u=``,d=0;for(let t of e){if(n===t)throw Error(`Duplicate path: "${t}"`);let e=t.length>0&&t.charCodeAt(t.length-1)===47,a=e?t.length-1:t.length,f=0,p=0;if(n!=null){if(u.length>0&&t.length>u.length&&t.startsWith(u))f=d,p=u.length;else{let r=Math.min(a,n.length),i=!0;for(let e=0;e<r;e++){let r=t.charCodeAt(e);if(r!==n.charCodeAt(e)){i=!1;break}r===47&&(f++,p=e+1)}i&&e&&r===a&&n.length>a&&n.charCodeAt(a)===47&&(f++,p=a+1)}}l=f,r=f;let m=p,h=t.indexOf(`/`,m);for(;h>=0&&h<a;){let e=c[l];if(e===void 0)throw Error(`Directory stack underflow while building the path store`);r++;let n=t.slice(m,h),a=o.get(n);a===void 0&&(a=s.length,o.set(n,a),s.push(n));let u=i.length;i.push({depthAndFlags:tm(r,0,1),nameId:a,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),this.recordCreatedDirectoryPath(t.slice(0,h)),l++,c[l]=u,m=h+1,h=t.indexOf(`/`,m)}if(e){if(m<a){let e=c[l];if(e===void 0)throw Error(`Unable to resolve directory parent for "${t}"`);r++;let n=t.slice(m,a),u=o.get(n);u===void 0&&(u=s.length,o.set(n,u),s.push(n));let d=i.length;i.push({depthAndFlags:tm(r,0,1),nameId:u,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),l++,c[l]=d,m=a+1}let e=c[l];if(e===void 0)throw Error(`Unable to resolve directory node for "${t}"`);this.promoteDirectoryToExplicit(e,t)}else{let e=c[l];if(e===void 0)throw Error(`Unable to resolve file parent for "${t}"`);let n=t.slice(m),a=o.get(n);a===void 0&&(a=s.length,o.set(n,a),s.push(n)),i.push({depthAndFlags:tm(r+1,0),nameId:a,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1})}m!==u.length&&(u=t.substring(0,m),d=r),n=t}c.length=l+1,n!=null&&(this.lastPreparedPath=Tm(n)),this.hasDeferredDirectoryIndexes=!0}),this}appendPresortedFilePaths(e){let t=null,n=0,r=this.nodes,i=this.segmentTable,a=i.idByValue,o=i.valueById,s=this.directoryStack,c=0,l=``,u=0;for(let i of e){if(t===i)throw Error(`Duplicate path: "${i}"`);let e=i.length,d=0,f=0;if(t!=null){if(l.length>0&&i.length>l.length&&i.startsWith(l))d=u,f=l.length;else{let n=Math.min(e,t.length);for(let e=0;e<n;e++){let n=i.charCodeAt(e);if(n!==t.charCodeAt(e))break;n===47&&(d++,f=e+1)}}}c=d,n=d;let p=f,m=i.indexOf(`/`,p);for(;m>=0;){let e=s[c];if(e===void 0)throw Error(`Directory stack underflow while building the path store`);n++;let t=i.slice(p,m),l=a.get(t);l===void 0&&(l=o.length,a.set(t,l),o.push(t));let u=r.length;r.push({depthAndFlags:tm(n,0,1),nameId:l,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),this.recordCreatedDirectoryPath(i.slice(0,m)),this.presortedDirectoryNodeIds.push(u),c++,s[c]=u,p=m+1,m=i.indexOf(`/`,p)}let h=s[c];if(h===void 0)throw Error(`Unable to resolve file parent for "${i}"`);let g=i.slice(p),_=a.get(g);_===void 0&&(_=o.length,a.set(g,_),o.push(g)),r.push({depthAndFlags:tm(n+1,0),nameId:_,parentId:h,subtreeNodeCount:1,visibleSubtreeCount:1}),p!==l.length&&(l=i.substring(0,p),u=n),t=i}s.length=c+1,t!=null&&(this.lastPreparedPath=Tm(t)),this.hasDeferredDirectoryIndexes=!0}finish(e={}){let t=e.skipSubtreeCountPass===!0;return this.hasDeferredDirectoryIndexes?(W(this.instrumentation,`store.builder.buildDirectoryIndexes`,()=>this.buildPresortedFinish(t)),this.hasDeferredDirectoryIndexes=!1):t||W(this.instrumentation,`store.builder.computeSubtreeCounts`,()=>this.computeSubtreeCounts(0)),{directories:this.directories,nodes:this.nodes,options:this.options,rootId:0,segmentTable:this.segmentTable,presortedDirectoryNodeIds:this.presortedDirectoryNodeIds.length>0?this.presortedDirectoryNodeIds:null}}didMatchAllInitialExpandedPaths(){return this.createdDirectoriesAllExpanded&&this.initialExpandedPathSet!=null&&this.createdDirectoryCount===this.initialExpandedPathSet.size}appendPreparedPath(e,t){if(this.hasDeferredDirectoryIndexes&&=(this.buildDirectoryIndexes(),!1),this.lastPreparedPath!=null){if(e.path===this.lastPreparedPath.path)throw Error(`Duplicate path: "${e.path}"`);if(t&&(this.options.sort==="default"?xm(this.lastPreparedPath,e,this.segmentSortKeyCache):Nm(this.lastPreparedPath,e,this.options.sort))>0)throw Error(`Builder input must be sorted before appendPaths(): "${e.path}"`)}let n=this.lastPreparedPath,r=Im(e),i=n==null?0:Im(n),a=n==null?0:Fm(n.segments,e.segments),o=Math.min(a,r,i);this.directoryStack.length=o+1;for(let n=o;n<r;n++){let r=this.directoryStack[this.directoryStack.length-1];if(r===void 0)throw Error(`Directory stack underflow while building the path store`);let i=t?this.getOrCreateDirectoryChild(r,e.segments[n]):this.createDirectoryChild(r,e.segments[n]);this.directoryStack.push(i)}if(e.isDirectory){let t=this.directoryStack[this.directoryStack.length-1];if(t===void 0)throw Error(`Unable to resolve directory node for "${e.path}"`);this.promoteDirectoryToExplicit(t,e.path),this.lastPreparedPath=e;return}let s=this.directoryStack[this.directoryStack.length-1];if(s===void 0)throw Error(`Unable to resolve file parent for "${e.path}"`);t?this.createFileChild(s,e.basename,e.path):this.createFileChildUnchecked(s,e.basename),this.lastPreparedPath=e}recordCreatedDirectoryPath(e){!this.createdDirectoriesAllExpanded||this.initialExpandedPathSet==null||(this.createdDirectoryCount+=1,this.initialExpandedPathSet.has(e)||(this.createdDirectoriesAllExpanded=!1))}createFileChild(e,t,n){let r=Om(this.segmentTable,t),i=this.getDirectoryIndex(e),a=i.childIdByNameId;if(a!=null&&a.get(r)!==void 0)throw Error(`Path collides with an existing entry: "${n}"`);let o=this.nodes[e];if(o===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let s=this.nodes.length;return this.nodes.push({depthAndFlags:tm(nm(o)+1,0),nameId:r,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),a?.set(r,s),Up(i,s),s}createFileChildUnchecked(e,t){let n=Om(this.segmentTable,t),r=this.getDirectoryIndex(e),i=this.nodes[e];if(i===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let a=this.nodes.length;return this.nodes.push({depthAndFlags:tm(nm(i)+1,0),nameId:n,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),r.childIdByNameId!=null&&r.childIdByNameId.set(n,a),Up(r,a),a}getOrCreateDirectoryChild(e,t){let n=Om(this.segmentTable,t),r=this.getDirectoryIndex(e);if(r.childIdByNameId!=null){let e=r.childIdByNameId.get(n);if(e!==void 0){let n=this.nodes[e];if(n!=null&&!H(n))throw Error(`Path collides with an existing file while creating directory "${t}"`);return e}}let i=this.nodes[e];if(i===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let a=this.nodes.length;return this.nodes.push({depthAndFlags:tm(nm(i)+1,0,1),nameId:n,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),r.childIdByNameId!=null&&r.childIdByNameId.set(n,a),Up(r,a),this.directories.set(a,zp()),a}createDirectoryChild(e,t){let n=Om(this.segmentTable,t),r=this.getDirectoryIndex(e),i=this.nodes[e];if(i===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let a=this.nodes.length;return this.nodes.push({depthAndFlags:tm(nm(i)+1,0,1),nameId:n,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),r.childIdByNameId!=null&&r.childIdByNameId.set(n,a),Up(r,a),this.directories.set(a,zp()),a}promoteDirectoryToExplicit(e,t){let n=this.nodes[e];if(n===void 0)throw Error(`Unknown directory node ID: ${String(e)}`);if(!H(n))throw Error(`Path is not a directory: "${t}"`);if(U(n,1))throw Error(`Duplicate path: "${t}"`);am(n,1)}getDirectoryIndex(e){let t=this.directories.get(e);if(t!==void 0)return t;throw Error(`Unknown directory child index for node ${String(e)}`)}buildPresortedFinish(e){let t=this.nodes,n=this.directories;n.set(0,Bp());let r=-1,i=null;for(let e=1;e<t.length;e++){let a=t[e];if(a==null)continue;if(H(a)){let t=Bp();n.set(e,t),r=e,i=t}let o;a.parentId===r?o=i:(o=n.get(a.parentId),r=a.parentId,i=o??null),o?.childIds.push(e)}if(!e)for(let e=t.length-1;e>=1;e--){let n=t[e];if(n==null)continue;let r=t[n.parentId];r!=null&&(r.subtreeNodeCount+=n.subtreeNodeCount,r.visibleSubtreeCount+=n.visibleSubtreeCount)}}buildDirectoryIndexes(){let e=this.nodes;for(let t=1;t<e.length;t++){let n=e[t];if(n==null)continue;H(n)&&this.directories.set(t,zp());let r=this.directories.get(n.parentId);r!=null&&(r.childIdByNameId!=null&&r.childIdByNameId.set(n.nameId,t),Up(r,t))}}computeSubtreeCounts(e){let t=this.nodes[e];if(t===void 0)throw Error(`Unknown node ID: ${String(e)}`);if(!H(t))return t.subtreeNodeCount=1,t.visibleSubtreeCount=1,1;let n=this.getDirectoryIndex(e),r=1;for(let e of n.childIds)r+=this.computeSubtreeCounts(e);return Gp(this.nodes,n),t.subtreeNodeCount=r,t.visibleSubtreeCount=r,r}};function qm(e,t=`closed`,n=null){let r=Ym(t);return{activeNodeCount:e.nodes.length-1,collapsedDirectoryIds:new Set,collapseNewDirectoriesByDefault:!1,defaultExpansion:r,directoriesOpenByDefault:r===`open`,hasCollapsedDirectoryOverrides:!1,directoryLoadInfoById:new Map,expandedDirectoryIds:new Set,instrumentation:n,listeners:new Map,pathCacheByNodeId:new Map([[e.rootId,{path:``,version:0}]]),pathCacheVersion:0,snapshot:e,transactionStack:[]}}function Jm(){return{affectedAncestorIds:new Set,affectedNodeIds:new Set,events:[]}}function Ym(e){if(typeof e!=`number`)return e;if(!Number.isInteger(e)||e<0)throw Error(`initialExpansion must be "open", "closed", or a non-negative integer depth. Received: ${String(e)}`);return e}function Xm(e,t){return U(t,2)||e.defaultExpansion===`open`?!0:e.defaultExpansion!==`closed`&&nm(t)<=e.defaultExpansion}function Zm(e,t,n=e.snapshot.nodes[t]){return n==null||!H(n)?!1:e.directoriesOpenByDefault&&!e.hasCollapsedDirectoryOverrides?!0:e.collapsedDirectoryIds.has(t)?!1:e.expandedDirectoryIds.has(t)?!0:Xm(e,n)}function Qm(e,t,n,r=e.snapshot.nodes[t]){if(r==null||!H(r))return;let i=Xm(e,r);if(n){if(i){e.collapsedDirectoryIds.delete(t),e.hasCollapsedDirectoryOverrides=e.collapsedDirectoryIds.size>0;return}e.expandedDirectoryIds.add(t);return}if(i){e.collapsedDirectoryIds.add(t),e.hasCollapsedDirectoryOverrides=!0;return}e.expandedDirectoryIds.delete(t)}function $m(e,t){let n=e.directoryLoadInfoById.get(t);if(n!=null)return n;let r={activeAttemptId:null,errorMessage:null,nextAttemptId:1,state:`loaded`};return e.directoryLoadInfoById.set(t,r),r}function eh(e,t){return e.directoryLoadInfoById.get(t)?.state??`loaded`}function th(e,t){let n=$m(e,t);if(n.state===`loading`&&n.activeAttemptId!=null)return{attemptId:n.activeAttemptId,nodeId:t,reused:!0};let r=n.nextAttemptId;return n.activeAttemptId=r,n.errorMessage=null,n.nextAttemptId+=1,n.state=`loading`,{attemptId:r,nodeId:t,reused:!1}}function nh(e,t){let n=$m(e,t);n.activeAttemptId=null,n.errorMessage=null,n.state=`unloaded`}function rh(e,t,n){let r=e.directoryLoadInfoById.get(t);return r==null||r.activeAttemptId!==n?!1:(r.activeAttemptId=null,r.errorMessage=null,r.state=`loaded`,!0)}function ih(e,t,n){return e.directoryLoadInfoById.get(t)?.activeAttemptId===n}function ah(e,t,n,r){let i=e.directoryLoadInfoById.get(t);return i==null||i.activeAttemptId!==n?!1:(i.activeAttemptId=null,i.errorMessage=r??null,i.state=`error`,!0)}function oh(e,t){e.directoryLoadInfoById.delete(t)}function sh(e,t,n){let r=n,i=e.listeners.get(t);return i==null?e.listeners.set(t,new Set([r])):i.add(r),()=>{let n=e.listeners.get(t);n!=null&&(n.delete(r),n.size===0&&e.listeners.delete(t))}}function ch(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!0,operation:`add`,path:e.path,projectionChanged:e.projectionChanged,visibleCountDelta:null}}function lh(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!0,operation:`remove`,path:e.path,projectionChanged:e.projectionChanged,recursive:e.recursive,visibleCountDelta:null}}function uh(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!0,from:e.from,operation:`move`,projectionChanged:e.projectionChanged,to:e.to,visibleCountDelta:null}}function dh(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!1,operation:`expand`,path:e.path,projectionChanged:!0,visibleCountDelta:null}}function fh(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!1,operation:`collapse`,path:e.path,projectionChanged:!0,visibleCountDelta:null}}function ph(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!1,operation:`mark-directory-unloaded`,path:e.path,projectionChanged:e.projectionChanged,visibleCountDelta:null}}function mh(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:!1,operation:`begin-child-load`,path:e.path,projectionChanged:e.projectionChanged,reused:e.reused,visibleCountDelta:null}}function hh(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:e.childEvents.some(e=>e.canonicalChanged),childEvents:e.childEvents,operation:`apply-child-patch`,path:e.path,projectionChanged:e.projectionChanged,visibleCountDelta:null}}function gh(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:!1,operation:`complete-child-load`,path:e.path,projectionChanged:e.projectionChanged,stale:e.stale,visibleCountDelta:null}}function _h(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:!1,errorMessage:e.errorMessage,operation:`fail-child-load`,path:e.path,projectionChanged:e.projectionChanged,stale:e.stale,visibleCountDelta:null}}function vh(e){return{activeNodeCountAfter:e.activeNodeCountAfter,activeNodeCountBefore:e.activeNodeCountBefore,affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],cachedPathEntryCountAfter:e.cachedPathEntryCountAfter,cachedPathEntryCountBefore:e.cachedPathEntryCountBefore,canonicalChanged:!1,idsPreserved:e.idsPreserved,loadInfoEntryCountAfter:e.loadInfoEntryCountAfter,loadInfoEntryCountBefore:e.loadInfoEntryCountBefore,mode:e.mode,operation:`cleanup`,projectionChanged:e.projectionChanged,reclaimedCachedPathEntryCount:e.reclaimedCachedPathEntryCount,reclaimedLoadInfoEntryCount:e.reclaimedLoadInfoEntryCount,reclaimedNodeSlotCount:e.reclaimedNodeSlotCount,reclaimedSegmentCount:e.reclaimedSegmentCount,segmentCountAfter:e.segmentCountAfter,segmentCountBefore:e.segmentCountBefore,totalNodeSlotCountAfter:e.totalNodeSlotCountAfter,totalNodeSlotCountBefore:e.totalNodeSlotCountBefore,visibleCountDelta:null}}function yh(e,t,n){return{...n,visibleCountDelta:Ah(e)-t}}function bh(e,t){let n=Ah(e),r=Jm();e.transactionStack.push(r);try{t()}catch(t){throw Ch(e,r,!1),t}Ch(e,r,!0,Ah(e)-n)}function xh(e,t){let n=e.instrumentation;if(n==null){Sh(e,t);return}W(n,`store.events.record`,()=>Sh(e,t))}function Sh(e,t){let n=e.transactionStack[e.transactionStack.length-1]??null;if(n==null){Oh(e,t);return}n.events.push(t),Dh(n,t)}function Ch(e,t,n,r=null){if(e.transactionStack.pop()!==t)throw Error(`Transaction stack underflow`);if(!n)return;let i=e.transactionStack[e.transactionStack.length-1]??null;if(i!=null){let n=e.instrumentation;n==null?Eh(i,t):W(n,`store.events.batch.merge`,()=>Eh(i,t));return}let a=wh(t,r),o=e.instrumentation;if(o==null){Oh(e,a);return}W(o,`store.events.batch.commit`,()=>Oh(e,a))}function wh(e,t){return{affectedAncestorIds:[...e.affectedAncestorIds],affectedNodeIds:[...e.affectedNodeIds],canonicalChanged:e.events.some(e=>e.canonicalChanged),events:[...e.events],operation:`batch`,projectionChanged:e.events.some(e=>e.projectionChanged),visibleCountDelta:t}}function Th(e,t){for(let n of t.affectedAncestorIds)e.affectedAncestorIds.add(n);for(let n of t.affectedNodeIds)e.affectedNodeIds.add(n)}function Eh(e,t){for(let n of t.events)e.events.push(n);Th(e,t)}function Dh(e,t){for(let n of t.affectedNodeIds)e.affectedNodeIds.add(n);for(let n of t.affectedAncestorIds)e.affectedAncestorIds.add(n)}function Oh(e,t){let n=e.instrumentation;if(n==null){kh(e,t);return}W(n,`store.events.emit`,()=>kh(e,t))}function kh(e,t){e.listeners.get(t.operation)?.forEach(e=>e(t)),e.listeners.get(`*`)?.forEach(e=>e(t))}function Ah(e){return e.snapshot.nodes[e.snapshot.rootId]?.visibleSubtreeCount??0}function jh(e,t){if(e.snapshot.options.flattenEmptyDirectories!==!0)return null;let n=e.snapshot.nodes[t];if(n==null||!H(n)||U(n,2))return null;let r=e.snapshot.directories.get(t);if(r==null||r.childIds.length!==1)return null;let i=r.childIds[0];if(i==null)return null;let a=e.snapshot.nodes[i];return a==null||!H(a)?null:i}function Mh(e,t){let n=t;for(;;){let t=jh(e,n);if(t==null)return n;n=t}}function Nh(e,t){let n=[t],r=t;for(;;){let t=jh(e,r);if(t==null)return n;n.push(t),r=t}}function Ph(e,t){let n=t==null?e.snapshot.rootId:Uh(e,t);return n==null?[]:Gh(e,n)}function Fh(e,t){let n=Tm(t),r=n.isDirectory?n.segments:n.segments.slice(0,-1),i=og(e,ag(e,r)),{createdNodeIds:a,directoryId:o}=Kh(e,r),s=new Set(a),c=o;if(n.isDirectory){let n=q(e,o);if(U(n,1))throw Error(`Path already exists: "${t}"`);am(n,1),e.pathCacheByNodeId.set(o,{path:t,version:e.pathCacheVersion}),s.add(o)}else c=Jh(e,o,n.basename),s.add(c);Bh(e,o);let l=og(e,o);return ch({affectedAncestorIds:Hh(e,c),affectedNodeIds:[...s],path:t,projectionChanged:sg(i,l)})}function Ih(e,t,n){let r=Uh(e,t);if(r==null)throw Error(`Path does not exist: "${t}"`);let i=q(e,r);if(U(i,2))throw Error(`The root node cannot be removed`);if(H(i)&&K(e,r).childIds.length>0&&n.recursive!==!0)throw Error(`Cannot remove a non-empty directory without recursive: "${t}"`);let a=i.parentId,o=og(e,a),s=rg(e,r);Zh(e,a,r,i.nameId),ig(e,a),Bh(e,a);let c=og(e,a);return lh({affectedAncestorIds:Hh(e,a),affectedNodeIds:s,path:t,projectionChanged:sg(o,c),recursive:n.recursive===!0})}function Lh(e,t,n,r){let i=Uh(e,t);if(i==null)throw Error(`Source path does not exist: "${t}"`);let a=q(e,i);if(U(a,2))throw Error(`The root node cannot be moved`);let o=r.collision??`error`,s=tg(e,i,n),c=og(e,a.parentId),l=og(e,s.parentId),u=km(e.snapshot.segmentTable,a.nameId),d=Om(e.snapshot.segmentTable,s.basename);if(s.parentId===a.parentId&&u===s.basename)return null;if(H(a)&&dg(e,i,s.parentId))throw Error(`Cannot move a directory into one of its descendants`);let f=Vp(e.snapshot.nodes,K(e,s.parentId)).get(d),p=s.existingNodeId??f??null;if(p!=null&&p!==i&&ng(e,p,o,rm(a))===`skip`)return null;let m=a.parentId;Zh(e,m,i,a.nameId),a.parentId=s.parentId,a.nameId=d,e.pathCacheByNodeId.delete(i),ug(e,i),Xh(e,s.parentId,i),ig(e,m),e.pathCacheVersion++,Bh(e,m),s.parentId!==m&&Bh(e,s.parentId);let h=og(e,m),g=og(e,s.parentId);return uh({affectedAncestorIds:[...new Set([...Hh(e,m),...Hh(e,s.parentId)])],affectedNodeIds:[i],from:t,projectionChanged:cg([c,l],[h,g]),to:G(e,i)})}function Rh(e,t){let n=e.pathCacheByNodeId.get(t);return n!=null&&n.version===e.pathCacheVersion?n.path:null}function zh(e,t,n){return e.pathCacheByNodeId.set(t,{path:n,version:e.pathCacheVersion}),n}function G(e,t){let n=q(e,t),r=Rh(e,t);if(r!=null)return r;if(U(n,2))return zh(e,t,``);let i=G(e,n.parentId),a=km(e.snapshot.segmentTable,n.nameId),o=i.length===0?a:`${i}${a}`;return zh(e,t,H(n)?`${o}/`:o)}function Bh(e,t){let n=e.instrumentation;if(n==null){pg(e,t);return}W(n,`store.recomputeCountsUpwardFrom`,()=>pg(e,t))}function Vh(e,t){let n=[[t,0]],{nodes:r,directories:i}=e.snapshot;for(;n.length>0;){let t=n[n.length-1],a=t[0],o=r[a];if(o==null||!H(o)){fg(e,a,o,!0),n.pop();continue}let s=i.get(a);if(s==null||t[1]>=s.childIds.length){fg(e,a,o,!0),n.pop();continue}let c=s.childIds[t[1]++];n.push([c,0])}}function Hh(e,t){let n=[],r=t;for(;r!=null;){let t=q(e,r);if(n.push(r),r===e.snapshot.rootId)break;r=t.parentId}return n}function Uh(e,t){if(t.length===0)return e.snapshot.rootId;let n=Em(t);return Wh(e,n.segments,n.requiresDirectory)}function Wh(e,t,n){let r=e.snapshot.rootId;for(let n of t){let t=e.snapshot.segmentTable.idByValue.get(n);if(t===void 0)return null;let i=K(e,r),a=Vp(e.snapshot.nodes,i).get(t);if(a===void 0)return null;r=a}let i=q(e,r);return n&&!H(i)?null:r}function K(e,t){let n=e.snapshot.directories.get(t);if(n===void 0)throw Error(`Unknown directory child index for node ${String(t)}`);return n}function q(e,t){let n=e.snapshot.nodes[t];if(n===void 0||U(n,4))throw Error(`Unknown node ID: ${String(t)}`);return n}function Gh(e,t){let n=e.snapshot.nodes[t];if(n===void 0||U(n,4))return[];if(!H(n))return[G(e,t)];if(K(e,t).childIds.length===0)return U(n,1)&&!U(n,2)?[G(e,t)]:[];let r=[],i=[{childIndex:0,nodeId:t}];for(;i.length>0;){let t=i[i.length-1];if(t==null)break;let n=e.snapshot.nodes[t.nodeId];if(n===void 0||U(n,4)){i.pop();continue}if(!H(n)){r.push(G(e,t.nodeId)),i.pop();continue}let a=K(e,t.nodeId);if(a.childIds.length===0){U(n,1)&&!U(n,2)&&r.push(G(e,t.nodeId)),i.pop();continue}let o=a.childIds[t.childIndex];if(o==null){i.pop();continue}t.childIndex++,i.push({childIndex:0,nodeId:o})}return r}function Kh(e,t){let n=[],r=e.snapshot.rootId;for(let i of t){let t=Om(e.snapshot.segmentTable,i),a=K(e,r),o=Vp(e.snapshot.nodes,a).get(t);if(o!==void 0){if(!H(q(e,o)))throw Error(`Cannot create a directory that collides with an existing file: "${i}"`);r=o;continue}r=qh(e,r,t),n.push(r)}return{createdNodeIds:n,directoryId:r}}function qh(e,t,n){let r=q(e,t),i=e.snapshot.nodes.length;return e.snapshot.nodes.push({depthAndFlags:tm(nm(r)+1,0,1),nameId:n,parentId:t,subtreeNodeCount:1,visibleSubtreeCount:1}),e.snapshot.directories.set(i,zp()),Xh(e,t,i),e.collapseNewDirectoriesByDefault&&(e.collapsedDirectoryIds.add(i),e.hasCollapsedDirectoryOverrides=!0),e.activeNodeCount++,i}function Jh(e,t,n){let r=Om(e.snapshot.segmentTable,n),i=K(e,t);if(Vp(e.snapshot.nodes,i).has(r))throw Error(`Path already exists: "${hg(e,t,n)}"`);let a=q(e,t),o=e.snapshot.nodes.length;return e.snapshot.nodes.push({depthAndFlags:tm(nm(a)+1,0),nameId:r,parentId:t,subtreeNodeCount:1,visibleSubtreeCount:1}),Xh(e,t,o),e.activeNodeCount++,o}function Yh(e,t,n){let r=0,i=t.childIds.length;for(;r<i;){let a=r+i>>>1,o=t.childIds[a];if(o==null){i=a;continue}Qh(e,n,o)<0?i=a:r=a+1}return r}function Xh(e,t,n){let r=K(e,t),i=q(e,n);Vp(e.snapshot.nodes,r).set(i.nameId,n),Kp(r,n,i.subtreeNodeCount,i.visibleSubtreeCount);let a=Yh(e,r,n);r.childIds.splice(a,0,n),Wp(r,a),Yp(e.snapshot.nodes,r)}function Zh(e,t,n,r){let i=K(e,t),a=Hp(i),o=a.get(n)??-1;Vp(e.snapshot.nodes,i).delete(r),a.delete(n);let s=e.snapshot.nodes[n];s!=null&&Kp(i,n,-s.subtreeNodeCount,-s.visibleSubtreeCount),o>=0&&(i.childIds.splice(o,1),Wp(i,o),Yp(e.snapshot.nodes,i))}function Qh(e,t,n){let r=e.snapshot.options.sort;return r==="default"?$h(e,t,n):r(eg(e,t),eg(e,n))}function $h(e,t,n){let r=q(e,t),i=q(e,n),a=H(r);if(a!==H(i))return a?-1:1;let o=hm(Sm(e.snapshot.segmentTable,r.nameId),Sm(e.snapshot.segmentTable,i.nameId));if(o!==0)return o;let s=km(e.snapshot.segmentTable,r.nameId),c=km(e.snapshot.segmentTable,i.nameId);return s===c?t<n?-1:1:s<c?-1:1}function eg(e,t){let n=q(e,t),r=G(e,t),i=H(n),a=i?r.slice(0,-1):r;return{basename:km(e.snapshot.segmentTable,n.nameId),depth:nm(n),isDirectory:i,path:r,segments:a.length===0?[]:a.split(`/`)}}function tg(e,t,n){let r=q(e,t),i=Uh(e,n);if(i!=null){let t=q(e,i);if(H(t))return{basename:km(e.snapshot.segmentTable,r.nameId),existingNodeId:null,parentId:i};let a=Em(n).segments;return{basename:a[a.length-1]??``,existingNodeId:i,parentId:t.parentId}}let a=Em(n),o=a.segments[a.segments.length-1]??``,s=a.segments.slice(0,-1),c=s.length===0?e.snapshot.rootId:Wh(e,s,!0);if(c==null)throw Error(`Destination parent does not exist: "${n}"`);return{basename:o,existingNodeId:null,parentId:c}}function ng(e,t,n,r){if(n===`skip`)return`skip`;if(n===`error`)throw Error(`Destination already exists: "${G(e,t)}"`);let i=q(e,t);if(rm(i)!==r)throw Error(`replace collision requires the same source and destination kinds`);if(H(i)&&K(e,t).childIds.length>0)throw Error(`replace collision does not support non-empty directories`);let a=i.parentId,o=i.nameId;return rg(e,t),Zh(e,a,t,o),ig(e,a),Bh(e,a),`handled`}function rg(e,t){let n=[],r=[{nodeId:t,visitedChildren:!1}];for(;r.length>0;){let t=r.pop();if(t==null)break;let i=q(e,t.nodeId);if(t.visitedChildren||!H(i)){H(i)&&e.snapshot.directories.delete(t.nodeId),am(i,4),e.pathCacheByNodeId.delete(t.nodeId),e.collapsedDirectoryIds.delete(t.nodeId)&&(e.hasCollapsedDirectoryOverrides=e.collapsedDirectoryIds.size>0),e.expandedDirectoryIds.delete(t.nodeId),oh(e,t.nodeId),e.activeNodeCount--,n.push(t.nodeId);continue}r.push({nodeId:t.nodeId,visitedChildren:!0});let a=K(e,t.nodeId);for(let e=a.childIds.length-1;e>=0;e--){let t=a.childIds[e];t!=null&&r.push({nodeId:t,visitedChildren:!1})}}return n}function ig(e,t){let n=t;for(;n!=null;){let t=q(e,n);if(!H(t)||U(t,2)||K(e,n).childIds.length>0)return;am(t,1),n=t.parentId===n?null:t.parentId}}function ag(e,t){let n=e.snapshot.rootId;for(let r of t){let t=e.snapshot.segmentTable.idByValue.get(r);if(t==null)break;let i=Vp(e.snapshot.nodes,K(e,n)).get(t);if(i==null||!H(q(e,i)))break;n=i}return n}function og(e,t){let n=lg(e,t);if(n==null)return null;let r=Mh(e,n),i=q(e,r),a=n===r?null:Nh(e,n).map(t=>G(e,t));return JSON.stringify({flattenedSegmentPaths:a,hasChildren:K(e,r).childIds.length>0,path:G(e,r),terminalKind:rm(i)})}function sg(e,t){return cg([e],[t])}function cg(e,t){for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(r==null||i==null||r!==i)return!0}return!1}function lg(e,t){let n=t;for(;n!=null;){let t=q(e,n);if(!H(t)||U(t,2))return null;if(!Zm(e,n,t))return n;n=t.parentId}return null}function ug(e,t){let n=q(e,t);if(om(n,(t===e.snapshot.rootId?-1:nm(q(e,n.parentId)))+1),!H(n))return;let r=K(e,t);for(let t of r.childIds)ug(e,t)}function dg(e,t,n){let r=n;for(;r!=null;){if(r===t)return!0;let n=q(e,r);if(r===e.snapshot.rootId)return!1;r=n.parentId}return!1}function fg(e,t,n=q(e,t),r=!1){let i=e.instrumentation;if(i==null){mg(e,t,n,r);return}W(i,`store.recomputeNodeCounts`,()=>mg(e,t,n,r))}function pg(e,t){let n=t;for(;n!=null;){let t=q(e,n),r=t.subtreeNodeCount,i=t.visibleSubtreeCount;if(fg(e,n,t),n===e.snapshot.rootId)return;let a=t.subtreeNodeCount-r,o=t.visibleSubtreeCount-i,s=t.parentId;(a!==0||o!==0)&&Kp(K(e,s),n,a,o),n=s}}function mg(e,t,n,r){if(!H(n)){n.subtreeNodeCount=1,n.visibleSubtreeCount=1;return}let i=K(e,t);if(r){let t=e.instrumentation;t==null?Gp(e.snapshot.nodes,i):W(t,`store.recomputeNodeCounts.rebuildChildAggregates`,()=>Gp(e.snapshot.nodes,i))}let a=1+i.totalChildSubtreeNodeCount,o=i.totalChildVisibleSubtreeCount;if(n.subtreeNodeCount=a,U(n,2)){n.visibleSubtreeCount=o;return}n.visibleSubtreeCount=jh(e,t)==null?Zm(e,t,n)?1+o:1:o}function hg(e,t,n){let r=G(e,t);return r.length===0?n:`${r}${n}`}function gg(e){return e!=null&&!U(e,4)}function _g(e,t){let n=e.snapshot.nodes[t];return!gg(n)||!H(n)||U(n,2)?null:n}function vg(e){let t=0;for(let[n,r]of e.pathCacheByNodeId)r.version===e.pathCacheVersion&&gg(e.snapshot.nodes[n])&&(t+=1);return t}function yg(e){return Math.max(0,e.valueById.length-1)}function bg(e){return{activeNodeCount:e.activeNodeCount,cachedPathEntryCount:vg(e),loadInfoEntryCount:e.directoryLoadInfoById.size,segmentCount:yg(e.snapshot.segmentTable),totalNodeSlotCount:Math.max(0,e.snapshot.nodes.length-1)}}function xg(e,t,n,r){return{activeNodeCountAfter:r.activeNodeCount,activeNodeCountBefore:n.activeNodeCount,cachedPathEntryCountAfter:r.cachedPathEntryCount,cachedPathEntryCountBefore:n.cachedPathEntryCount,idsPreserved:t,loadInfoEntryCountAfter:r.loadInfoEntryCount,loadInfoEntryCountBefore:n.loadInfoEntryCount,mode:e,reclaimedCachedPathEntryCount:n.cachedPathEntryCount-r.cachedPathEntryCount,reclaimedLoadInfoEntryCount:n.loadInfoEntryCount-r.loadInfoEntryCount,reclaimedNodeSlotCount:n.totalNodeSlotCount-r.totalNodeSlotCount,reclaimedSegmentCount:n.segmentCount-r.segmentCount,segmentCountAfter:r.segmentCount,segmentCountBefore:n.segmentCount,totalNodeSlotCountAfter:r.totalNodeSlotCount,totalNodeSlotCountBefore:n.totalNodeSlotCount}}function Sg(e){let t=[],n=[];for(let n of e.collapsedDirectoryIds)_g(e,n)!=null&&t.push(G(e,n));for(let t of e.expandedDirectoryIds)_g(e,t)!=null&&n.push(G(e,t));return{collapsedPaths:t,expandedPaths:n}}function Cg(e){let t=[];for(let[n,r]of e.directoryLoadInfoById)_g(e,n)!=null&&eh(e,n)!==`loaded`&&t.push({info:{activeAttemptId:null,errorMessage:r.errorMessage,nextAttemptId:r.nextAttemptId,state:r.state},path:G(e,n)});return t}function wg(e,t){e.collapsedDirectoryIds.clear(),e.hasCollapsedDirectoryOverrides=!1,e.expandedDirectoryIds.clear();for(let n of t.expandedPaths){let t=Uh(e,n);t!=null&&Qm(e,t,!0,q(e,t))}for(let n of t.collapsedPaths){let t=Uh(e,n);t!=null&&Qm(e,t,!1,q(e,t))}}function Tg(e,t){e.directoryLoadInfoById.clear();for(let n of t){let t=Uh(e,n.path);t!=null&&_g(e,t)!=null&&e.directoryLoadInfoById.set(t,{activeAttemptId:null,errorMessage:n.info.errorMessage,nextAttemptId:n.info.nextAttemptId,state:n.info.state})}}function Eg(e){e.pathCacheVersion+=1,e.pathCacheByNodeId.clear(),e.pathCacheByNodeId.set(e.snapshot.rootId,{path:``,version:e.pathCacheVersion})}function Dg(e){let t=e.snapshot.segmentTable,n=Dm();for(let r of e.snapshot.nodes)if(gg(r)){if(U(r,2)){r.nameId=0;continue}r.nameId=Om(n,km(t,r.nameId))}e.snapshot.segmentTable=n}function Og(e){for(let[t,n]of e.snapshot.directories){let r=e.snapshot.nodes[t];if(!gg(r)||!H(r)){e.snapshot.directories.delete(t);continue}let i=n.childIds.filter(n=>{let r=e.snapshot.nodes[n];return gg(r)&&r.parentId===t});n.childIds=i,n.childIdByNameId=new Map(i.map(t=>[q(e,t).nameId,t])),n.childPositionById=new Map(i.map((e,t)=>[e,t])),Gp(e.snapshot.nodes,n)}}function kg(e){let t=e.snapshot.nodes.length-1;for(;t>e.snapshot.rootId;){let n=e.snapshot.nodes[t];if(gg(n))break;--t}e.snapshot.nodes.length=t+1}function Ag(e){let t=Sg(e),n=Cg(e);W(e.instrumentation,`store.cleanup.stable.clearPathCaches`,()=>Eg(e)),W(e.instrumentation,`store.cleanup.stable.rebuildSegmentTable`,()=>Dg(e)),W(e.instrumentation,`store.cleanup.stable.rebuildDirectoryIndexes`,()=>Og(e)),W(e.instrumentation,`store.cleanup.stable.trimTrailingRemovedNodeSlots`,()=>kg(e)),W(e.instrumentation,`store.cleanup.stable.restoreExpansionOverrides`,()=>wg(e,t)),W(e.instrumentation,`store.cleanup.stable.restoreDirectoryLoadInfos`,()=>Tg(e,n)),W(e.instrumentation,`store.cleanup.stable.recomputeCounts`,()=>Vh(e,e.snapshot.rootId))}function jg(e){let t=Sg(e),n=Cg(e),r=W(e.instrumentation,`store.cleanup.aggressive.listPaths`,()=>Ph(e)),i=cm({...e.snapshot.options},e.instrumentation),a=W(e.instrumentation,`store.cleanup.aggressive.rebuildSnapshot`,()=>{let e=new Km(i);return e.appendPaths(r),e.finish()});e.snapshot=a,e.activeNodeCount=a.nodes.length-1,e.pathCacheByNodeId=new Map([[a.rootId,{path:``,version:0}]]),e.pathCacheVersion=0,W(e.instrumentation,`store.cleanup.aggressive.restoreExpansionOverrides`,()=>wg(e,t)),W(e.instrumentation,`store.cleanup.aggressive.restoreDirectoryLoadInfos`,()=>Tg(e,n)),W(e.instrumentation,`store.cleanup.aggressive.recomputeCounts`,()=>Vh(e,e.snapshot.rootId))}function Mg(e){for(let t of e.directoryLoadInfoById.values())if(t.state===`loading`&&t.activeAttemptId!=null)return!0;return!1}function Ng(e,t){let n=bg(e);t===`stable`?W(e.instrumentation,`store.cleanup.stable`,()=>Ag(e)):W(e.instrumentation,`store.cleanup.aggressive`,()=>jg(e));let r=bg(e);return xg(t,t===`stable`,n,r)}var Pg=64;function Fg(e,t){let n=t+2;if(n<=e.length)return e;let r=e.length;for(;r<n;)r*=2;let i=new Int32Array(r);return i.fill(-1),i.set(e),i}function J(e){return q(e,e.snapshot.rootId).visibleSubtreeCount}function Ig(e,t,n,r){let i=q(e,t.terminalNodeId),a=Math.max(1,i.visibleSubtreeCount);return Math.min(r-1,n+a-1)}function Lg(e,t,n,r){return{ancestorPaths:r,index:t.index,posInSet:t.posInSet,row:n_(e,t.cursor),setSize:t.setSize,subtreeEndIndex:Ig(e,t.cursor,t.index,n)}}function Rg(e,t,n,r,i,a){let o=K(e,t),{childIndex:s,childVisibleIndex:c,localVisibleIndex:l}=qp(e.snapshot.nodes,o,n),u=o.childIds[s];if(u==null)throw Error(`Visible index ${String(n)} is out of range`);return zg(e,u,l,r+c,i+1,s,o.childIds.length,a)}function zg(e,t,n,r,i,a,o,s){if(!H(q(e,t))){if(n===0)return{ancestors:s,cursor:{headNodeId:t,terminalNodeId:t,visibleDepth:i},index:r,posInSet:a,setSize:o};throw Error(`Visible index ${String(n)} is out of range for file`)}let c=Xg(e,t,i);if(n===0)return{ancestors:s,cursor:c,index:r,posInSet:a,setSize:o};let l=q(e,c.terminalNodeId);if(!H(l)||!Zm(e,c.terminalNodeId,l))throw Error(`Visible index ${String(n)} is out of range for collapsed directory`);return Rg(e,c.terminalNodeId,n-1,r+1,c.visibleDepth,[...s,{cursor:c,index:r,posInSet:a,setSize:o}])}function Bg(e,t){let n=J(e);if(t<0||t>=n)return null;let r=Rg(e,e.snapshot.rootId,t,0,-1,[]),i=r.ancestors.map(t=>G(e,t.cursor.terminalNodeId)),a=null;return{ancestorPaths:i,get ancestorRows(){if(a!=null)return a;let t=[],i=[];for(let a of r.ancestors){let r=Lg(e,a,n,[...i]);t.push(r),i.push(r.row.path)}return a=t,a},index:r.index,posInSet:r.posInSet,row:n_(e,r.cursor),setSize:r.setSize,subtreeEndIndex:Ig(e,r.cursor,r.index,n)}}function Vg(e,t,n){let r=e.instrumentation,i=J(e);if(i<=0||n<t)return[];let a=Math.max(0,Math.min(t,i-1)),o=Math.max(a,Math.min(n,i-1));if(r==null){if(a===0)return t_(e,o+1);let t=[],n=qg(e,a);for(let r=a;r<=o&&n!=null;r++){let r=n_(e,n);t.push(r),n=Qg(e,n)}return t}let s=[],c=0,l=0,u=W(r,`store.getVisibleSlice.selectFirstRow`,()=>qg(e,a));for(let t=a;t<=o&&u!=null;t++){let t=W(r,`store.getVisibleSlice.materializeRow`,()=>n_(e,u));s.push(t),t.isFlattened&&(c++,l+=t.flattenedSegments?.length??0),u=W(r,`store.getVisibleSlice.advanceCursor`,()=>Qg(e,u))}return um(r,`workload.visibleRowsRead`,s.length),um(r,`workload.flattenedRowsRead`,c),um(r,`workload.flattenedSegmentsRead`,l),s}function Hg(e,t=J(e)){let n=e.instrumentation;return n==null?e_(e,t):W(n,`store.getVisibleTreeProjection`,()=>e_(e,t))}function Ug(e){return $g(Hg(e))}function Wg(e,t){let n=Uh(e,t);if(n==null||n===e.snapshot.rootId||H(q(e,n))&&Mh(e,n)!==n)return null;let r=0,i=n,{nodes:a,rootId:o}=e.snapshot;for(;i!==o;){let t=q(e,i).parentId,n=K(e,t),s=Hp(n).get(i);if(s==null)throw Error(`Child ${String(i)} was not found in its parent index`);if(r+=Jp(a,n,s),t!==o){let n=q(e,t),a=jh(e,t);if(!Zm(e,t,n)&&a!==i)return null;Mh(e,t)===t&&(r+=1)}i=t}return r}function Gg(e,t){let n=Uh(e,t);if(n==null)throw Error(`Path does not exist: "${t}"`);let r=q(e,n);if(!H(r))throw Error(`Path is not a directory: "${t}"`);return Zm(e,n,r)?null:(Qm(e,n,!0,r),Bh(e,n),dh({affectedAncestorIds:Hh(e,n),affectedNodeIds:[n],path:t,projectionChanged:!0}))}function Kg(e,t){let n=Uh(e,t);if(n==null)throw Error(`Path does not exist: "${t}"`);let r=q(e,n);if(!H(r))throw Error(`Path is not a directory: "${t}"`);return Zm(e,n,r)?(Qm(e,n,!1,r),Bh(e,n),fh({affectedAncestorIds:Hh(e,n),affectedNodeIds:[n],path:t,projectionChanged:!0})):null}function qg(e,t){return t<0||t>=J(e)?null:Jg(e,e.snapshot.rootId,t,-1)}function Jg(e,t,n,r){let i=K(e,t),a=e.instrumentation,{childIndex:o,localVisibleIndex:s}=a==null?qp(e.snapshot.nodes,i,n):W(a,`store.getVisibleSlice.selectChildIndex`,()=>qp(e.snapshot.nodes,i,n)),c=i.childIds[o];if(c!=null)return Yg(e,c,s,r+1);throw Error(`Visible index ${String(n)} is out of range`)}function Yg(e,t,n,r){if(!H(q(e,t))){if(n===0)return{headNodeId:t,terminalNodeId:t,visibleDepth:r};throw Error(`Visible index ${String(n)} is out of range for file`)}let i=Xg(e,t,r);if(n===0)return i;let a=q(e,i.terminalNodeId);if(!H(a)||!Zm(e,i.terminalNodeId,a))throw Error(`Visible index ${String(n)} is out of range for collapsed directory`);return Jg(e,i.terminalNodeId,n-1,i.visibleDepth)}function Xg(e,t,n){return H(q(e,t))?e.instrumentation==null?{headNodeId:t,terminalNodeId:Mh(e,t),visibleDepth:n}:{headNodeId:t,terminalNodeId:W(e.instrumentation,`store.getVisibleSlice.flatten.resolveTerminalDirectory`,()=>Mh(e,t)),visibleDepth:n}:{headNodeId:t,terminalNodeId:t,visibleDepth:n}}function Zg(e,t){let n=q(e,t);if(!H(n))return!0;let r=n.parentId;return r===e.snapshot.rootId||jh(e,r)!==t}function Qg(e,t){let n=q(e,t.terminalNodeId);if(H(n)){let r=K(e,t.terminalNodeId);if(Zm(e,t.terminalNodeId,n)&&r.childIds.length>0){let n=r.childIds[0];return n==null?null:Yg(e,n,0,t.visibleDepth+1)}}let r=t.terminalNodeId,i=t.visibleDepth;for(;;){let t=q(e,r);if(r===e.snapshot.rootId)return null;let n=t.parentId,a=K(e,n),o=Hp(a).get(r)??-1;if(o<0)throw Error(`Child ${String(r)} was not found in its parent index`);let s=a.childIds[o+1]??null;if(s!=null)return Yg(e,s,0,i);Zg(e,r)&&i--,r=n}}function $g(e){let t=e.paths.length,n=Array(t);for(let r=0;r<t;r+=1){let t=e.getParentIndex(r);n[r]={index:r,parentPath:t>=0?e.paths[t]??null:null,path:e.paths[r]??``,posInSet:e.posInSetByIndex[r]??0,setSize:e.setSizeByIndex[r]??0}}return{getParentIndex:e.getParentIndex,rows:n,get visibleIndexByPath(){return e.visibleIndexByPath}}}function e_(e,t){let n=Array(t),r=new Int32Array(t),i=new Int32Array(t),a=new Int32Array(t),o=new Int32Array(Pg);o.fill(-1);let s=0,{nodes:c,directories:l,segmentTable:u}=e.snapshot,d=[[l.get(e.snapshot.rootId),0,-1,``]],f=e.snapshot.options.flattenEmptyDirectories,p=e.pathCacheByNodeId,m=e.pathCacheVersion,h=u.valueById;for(;d.length>0&&s<t;){let t=d[d.length-1],u=t[0];if(t[1]>=u.childIds.length){d.pop();continue}let g=t[1],_=u.childIds[t[1]++],v=c[_],y=t[2]+1,b=t[3];o=Fg(o,y);let x,S=_;if(H(v))S=f?Mh(e,_):_,x=S===_?`${b}${h[v.nameId]}/`:G(e,S);else{let e=p.get(_);x=e!=null&&e.version===m?e.path:`${b}${h[v.nameId]}`}r[s]=o[y],n[s]=x,i[s]=g,a[s]=u.childIds.length,o[y+1]=s,s+=1;let C=c[S];C!=null&&H(C)&&Zm(e,S,C)&&d.push([l.get(S),0,y,x])}s<t&&(n.length=s);let g=r.subarray(0,s),_=i.subarray(0,s),v=a.subarray(0,s),y=null;return{getParentIndex(e){return e<0||e>=s?-1:g[e]??-1},paths:n,posInSetByIndex:_,setSizeByIndex:v,get visibleIndexByPath(){if(y==null){y=new Map;for(let e=0;e<s;e+=1)y.set(n[e]??``,e)}return y}}}function t_(e,t){let n=Array(t),r=0,{nodes:i,directories:a,segmentTable:o}=e.snapshot,s=[[a.get(e.snapshot.rootId),0,-1]],c=o.valueById,l=e.snapshot.options.flattenEmptyDirectories,u=e.pathCacheByNodeId,d=e.pathCacheVersion;for(;s.length>0&&r<t;){let t=s[s.length-1],o=t[0];if(t[1]>=o.childIds.length){s.pop();continue}let f=o.childIds[t[1]++],p=i[f],m=t[2]+1;if(!H(p)){let t=u.get(f);n[r++]={depth:m,flattenedSegments:void 0,hasChildren:!1,id:f,isExpanded:!1,isFlattened:!1,isLoading:!1,kind:`file`,loadState:void 0,name:c[p.nameId],path:t!=null&&t.version===d?t.path:G(e,f)};continue}let h=l?Mh(e,f):f,g={headNodeId:f,terminalNodeId:h,visibleDepth:m};n[r++]=n_(e,g);let _=i[h];_!=null&&H(_)&&Zm(e,h,_)&&s.push([a.get(h),0,m])}return r<t&&(n.length=r),n}function n_(e,t){let n=q(e,t.terminalNodeId),r=H(n)?r_(e,t):null,i=G(e,t.terminalNodeId),a=km(e.snapshot.segmentTable,n.nameId),o=H(n)&&K(e,t.terminalNodeId).childIds.length>0,s=t.headNodeId!==t.terminalNodeId,c=e.instrumentation,l=s?c==null?Nh(e,t.headNodeId).map(n=>{let r=q(e,n);return{isTerminal:n===t.terminalNodeId,name:km(e.snapshot.segmentTable,r.nameId),nodeId:n,path:G(e,n)}}):W(c,`store.getVisibleSlice.flatten.collectSegments`,()=>Nh(e,t.headNodeId).map(n=>{let r=q(e,n);return{isTerminal:n===t.terminalNodeId,name:km(e.snapshot.segmentTable,r.nameId),nodeId:n,path:G(e,n)}})):void 0;return{depth:t.visibleDepth,flattenedSegments:l,hasChildren:o,id:t.terminalNodeId,isExpanded:H(n)&&Zm(e,t.terminalNodeId,n),isFlattened:s,isLoading:r===`loading`,kind:H(n)?`directory`:`file`,loadState:r==null||r===`loaded`?void 0:r,name:a,path:i}}function r_(e,t){if(t.headNodeId===t.terminalNodeId)return eh(e,t.terminalNodeId);let n=Nh(e,t.headNodeId),r=!1,i=!1;for(let t of n){let n=eh(e,t);if(n===`loading`)return`loading`;if(n===`error`){i=!0;continue}n===`unloaded`&&(r=!0)}return i?`error`:r?`unloaded`:`loaded`}var i_=8;function a_(e){let{nodes:t,directories:n,rootId:r,options:i}=e,a=t.length,o=new Int32Array(a),s=new Int32Array(a),c=new Int32Array(a),l=new Int32Array(a),u=new Int32Array(a),d=new Int32Array(a),f=new Int32Array(a);for(let e=0;e<a;e+=1){let n=t[e];n!=null&&(o[e]=n.parentId,s[e]=n.nameId,c[e]=n.depthAndFlags,l[e]=n.subtreeNodeCount,u[e]=n.visibleSubtreeCount)}let p=0;for(let e of n.values())p+=e.childIds.length;let m=new Int32Array(p),h=0;for(let[e,t]of n){let n=t.childIds;d[e]=h,f[e]=n.length;for(let e=0;e<n.length;e+=1)m[h]=n[e],h+=1}return{nodeCount:a,rootId:r,flattenEmptyDirectories:i.flattenEmptyDirectories===!0,parentId:o,nameId:s,depthAndFlags:c,subtreeNodeCount:l,visibleSubtreeCount:u,childStart:d,childCount:f,childIdsFlat:m}}function o_(e){let{nodeCount:t,rootId:n,flattenEmptyDirectories:r,depthAndFlags:i,subtreeNodeCount:a,visibleSubtreeCount:o,childStart:s,childCount:c,childIdsFlat:l}=e;for(let e=t-1;e>=1;--e){if((i[e]&i_)===0)continue;let t=s[e],n=c[e],u=0,d=0;for(let e=0;e<n;e+=1){let n=l[t+e];u+=a[n],d+=o[n]}a[e]=1+u;let f;f=r&&n===1?(i[l[t]]&i_)===0?1+d:d:1+d,o[e]=f}let u=s[n],d=c[n],f=0,p=0;for(let e=0;e<d;e+=1){let t=l[u+e];f+=a[t],p+=o[t]}a[n]=1+f,o[n]=p}function s_(e){let{directories:t,nodes:n,options:r,rootId:i,presortedDirectoryNodeIds:a}=e.snapshot,o=r.flattenEmptyDirectories===!0,s=e=>{let r=n[e];if(r==null||!H(r))return;let i=t.get(e);if(i==null)throw Error(`Unknown directory child index for node ${String(e)}`);let a=i.childIds,s=a.length,c=0,l=0;for(let e=0;e<s;e++){let t=a[e];if(t==null)continue;let r=n[t];c+=r.subtreeNodeCount,l+=r.visibleSubtreeCount}i.totalChildSubtreeNodeCount=c,i.totalChildVisibleSubtreeCount=l,s>=128&&Yp(n,i),r.subtreeNodeCount=1+c;let u;if(o&&s===1){let e=n[a[0]];u=e!=null&&H(e)?l:1+l}else u=1+l;r.visibleSubtreeCount=u};if(a!=null)for(let e=a.length-1;e>=0;e--)s(a[e]);else for(let e=n.length-1;e>=1;e--)s(e);let c=n[i],l=t.get(i);if(c==null||l==null)return;let u=l.childIds,d=0,f=0;for(let e=0;e<u.length;e++){let t=u[e];if(t==null)continue;let r=n[t];d+=r.subtreeNodeCount,f+=r.visibleSubtreeCount}l.totalChildSubtreeNodeCount=d,l.totalChildVisibleSubtreeCount=f,Yp(n,l),c.subtreeNodeCount=1+d,c.visibleSubtreeCount=f}function c_(e){let{directories:t,nodes:n,rootId:r}=e.snapshot,i=a_(e.snapshot);o_(i);let a=i.subtreeNodeCount,o=i.visibleSubtreeCount;for(let e=0;e<n.length;e+=1){let t=n[e];t!=null&&(t.subtreeNodeCount=a[e],t.visibleSubtreeCount=o[e])}for(let[e,i]of t){let t=i.childIds,a=t.length,o=0,s=0;for(let e=0;e<a;e++){let r=t[e];if(r==null)continue;let i=n[r];o+=i.subtreeNodeCount,s+=i.visibleSubtreeCount}i.totalChildSubtreeNodeCount=o,i.totalChildVisibleSubtreeCount=s,(e===r||a>=128)&&Yp(n,i)}}function l_(e){return e.initialExpansion===`open`&&(e.initialExpandedPaths==null||e.initialExpandedPaths.length===0)}var u_=class e{#e;constructor(e={}){let t=lm(e),n=W(t,`store.builder.create`,()=>new Km(e));if(e.preparedInput!=null){let t=Um(e.preparedInput);t==null?n.appendPreparedPaths(Hm(e.preparedInput),!1):n.appendPresortedPaths(t,Wm(e.preparedInput))}else{let r=e.paths??[];e.presorted===!0?n.appendPaths(r):n.appendPreparedPaths(W(t,`store.preparePathEntries`,()=>Gm(r,e)))}let r=W(t,`store.builder.finish`,()=>n.finish({skipSubtreeCountPass:!0})),i=W(t,`store.state.detectAllDirectoriesExpanded`,()=>(e.initialExpansion??`closed`)===`closed`&&n.didMatchAllInitialExpandedPaths());this.#e=W(t,`store.state.create`,()=>qm(r,i?`open`:e.initialExpansion??`closed`,t)),i&&(this.#e.collapseNewDirectoriesByDefault=!0);let a=i?this.#e.snapshot.directories.size-1:W(t,`store.state.initializeExpandedPaths`,()=>this.initializeExpandedPaths(e.initialExpandedPaths));i||l_(e)||(e.initialExpansion??`closed`)===`closed`&&a===this.#e.snapshot.directories.size-1||(e.initialExpandedPaths?.length??0)>0&&W(t,`store.state.checkAllDirectoriesExpanded`,()=>this.hasAllDirectoriesExpanded())?e.useSoaCountSweep===!0?W(t,`store.state.initializeOpenVisibleCountsViaSoa`,()=>c_(this.#e)):W(t,`store.state.initializeOpenVisibleCounts`,()=>s_(this.#e)):W(t,`store.state.recomputeCounts`,()=>Vh(this.#e,this.#e.snapshot.rootId))}static preparePaths(e,t={}){return zm(e,t)}static prepareInput(e,t={}){return Bm(e,t)}static preparePresortedInput(e){return Vm(e)}list(e){return W(this.#e.instrumentation,`store.list`,()=>Ph(this.#e,e))}add(e){W(this.#e.instrumentation,`store.add`,()=>{let t=J(this.#e);xh(this.#e,yh(this.#e,t,Fh(this.#e,e)))})}remove(e,t={}){W(this.#e.instrumentation,`store.remove`,()=>{let n=J(this.#e);xh(this.#e,yh(this.#e,n,Ih(this.#e,e,t)))})}move(e,t,n={}){W(this.#e.instrumentation,`store.move`,()=>{let r=J(this.#e),i=Lh(this.#e,e,t,n);i!=null&&xh(this.#e,yh(this.#e,r,i))})}batch(e){bh(this.#e,()=>{if(typeof e==`function`){e(this);return}for(let t of e)switch(t.type){case`add`:this.add(t.path);break;case`remove`:this.remove(t.path,{recursive:t.recursive});break;case`move`:this.move(t.from,t.to,{collision:t.collision});break}})}getVisibleCount(){return W(this.#e.instrumentation,`store.getVisibleCount`,()=>J(this.#e))}getVisibleSlice(e,t){return W(this.#e.instrumentation,`store.getVisibleSlice`,()=>Vg(this.#e,e,t))}getVisibleRowContext(e){return W(this.#e.instrumentation,`store.getVisibleRowContext`,()=>Bg(this.#e,e))}getVisibleTreeProjection(){return Ug(this.#e)}getVisibleTreeProjectionData(e){return Hg(this.#e,e)}getVisibleIndex(e){return W(this.#e.instrumentation,`store.getVisibleIndex`,()=>Wg(this.#e,e))}getPathInfo(e){return W(this.#e.instrumentation,`store.getPathInfo`,()=>{let t=Uh(this.#e,e);if(t==null)return null;let n=q(this.#e,t);return{depth:nm(n),kind:H(n)?`directory`:`file`,path:G(this.#e,t)}})}isExpanded(e){return W(this.#e.instrumentation,`store.isExpanded`,()=>{let t=this.requireDirectoryNodeId(e),n=q(this.#e,t);return Zm(this.#e,t,n)})}expand(e){W(this.#e.instrumentation,`store.expand`,()=>{let t=J(this.#e),n=Gg(this.#e,e);n!=null&&xh(this.#e,yh(this.#e,t,n))})}collapse(e){W(this.#e.instrumentation,`store.collapse`,()=>{let t=J(this.#e),n=Kg(this.#e,e);n!=null&&xh(this.#e,yh(this.#e,t,n))})}on(e,t){return sh(this.#e,e,t)}getDirectoryLoadState(e){let t=this.requireDirectoryNodeId(e);return eh(this.#e,t)}markDirectoryUnloaded(e){W(this.#e.instrumentation,`store.markDirectoryUnloaded`,()=>{let t=this.requireDirectoryNodeId(e);if(K(this.#e,t).childIds.length>0)throw Error(`Cannot mark a directory with known children as unloaded: "${e}"`);let n=J(this.#e);nh(this.#e,t),xh(this.#e,yh(this.#e,n,ph({affectedAncestorIds:Hh(this.#e,t),affectedNodeIds:[t],path:e,projectionChanged:this.isDirectoryProjectionVisible(t)})))})}beginChildLoad(e){return W(this.#e.instrumentation,`store.beginChildLoad`,()=>{let t=this.requireDirectoryNodeId(e),n=J(this.#e),r=th(this.#e,t);return xh(this.#e,yh(this.#e,n,mh({affectedAncestorIds:Hh(this.#e,t),affectedNodeIds:[t],attemptId:r.attemptId,path:e,projectionChanged:this.isDirectoryProjectionVisible(t),reused:r.reused}))),r})}applyChildPatch(e,t){return W(this.#e.instrumentation,`store.applyChildPatch`,()=>{let n=this.resolveActiveDirectoryNodeId(e.nodeId);if(n==null||eh(this.#e,n)!==`loading`||!ih(this.#e,n,e.attemptId))return!1;let r=G(this.#e,n);this.validateChildPatch(r,t);let i=J(this.#e),a=[];for(let e of t.operations){d_(r,e);let t=J(this.#e);switch(e.type){case`add`:a.push(yh(this.#e,t,Fh(this.#e,e.path)));break;case`remove`:a.push(yh(this.#e,t,Ih(this.#e,e.path,{recursive:e.recursive})));break;case`move`:{let n=Lh(this.#e,e.from,e.to,{collision:e.collision});n!=null&&a.push(yh(this.#e,t,n));break}}}let o=a.some(e=>e.projectionChanged)||this.isDirectoryProjectionVisible(n);return xh(this.#e,yh(this.#e,i,hh({affectedAncestorIds:Hh(this.#e,n),affectedNodeIds:[n],attemptId:e.attemptId,childEvents:a,path:G(this.#e,n),projectionChanged:o}))),!0})}completeChildLoad(e){return W(this.#e.instrumentation,`store.completeChildLoad`,()=>{let t=this.resolveActiveDirectoryNodeId(e.nodeId);if(t==null)return!1;let n=J(this.#e),r=rh(this.#e,t,e.attemptId);return xh(this.#e,yh(this.#e,n,gh({affectedAncestorIds:Hh(this.#e,t),affectedNodeIds:[t],attemptId:e.attemptId,path:G(this.#e,t),projectionChanged:this.isDirectoryProjectionVisible(t),stale:!r}))),r})}failChildLoad(e,t){return W(this.#e.instrumentation,`store.failChildLoad`,()=>{let n=this.resolveActiveDirectoryNodeId(e.nodeId);if(n==null)return!1;let r=J(this.#e),i=ah(this.#e,n,e.attemptId,t);return xh(this.#e,yh(this.#e,r,_h({affectedAncestorIds:Hh(this.#e,n),affectedNodeIds:[n],attemptId:e.attemptId,errorMessage:t,path:G(this.#e,n),projectionChanged:this.isDirectoryProjectionVisible(n),stale:!i}))),i})}cleanup(e={}){return W(this.#e.instrumentation,`store.cleanup`,()=>{if(this.#e.transactionStack.length>0)throw Error(`Cleanup cannot run during an open batch or transaction.`);if(Mg(this.#e))throw Error(`Cleanup cannot run while directory loads are active.`);let t=J(this.#e),n=Ng(this.#e,e.mode??`stable`);return xh(this.#e,yh(this.#e,t,vh({...n,affectedAncestorIds:[],affectedNodeIds:[],projectionChanged:n.idsPreserved===!1}))),n})}getNodeCount(){return this.#e.activeNodeCount}initializeExpandedPaths(e){if(e==null||e.length===0)return 0;let t=0,n=[],r=[],i=0,a=null,o=this.#e.snapshot.segmentTable,s=o.valueById,c=this.#e.snapshot.nodes,l=new Map;for(let u of e){a!=null&&u<a&&(a=null,i=0,n.length=0,r.length=0);let e=u.length>0&&u.charCodeAt(u.length-1)===47?u.length-1:u.length;if(e===0){a=u,i=e,n.length=0,r.length=0;continue}let d=0,f=0;if(a!=null){let t=Math.min(e,i),n=!0;for(let e=0;e<t;e+=1){let t=u.charCodeAt(e);if(t!==a.charCodeAt(e)){n=!1;break}t===47&&(d+=1,f=e+1)}n&&(t===i&&e>t&&u.charCodeAt(t)===47?(d+=1,f=t+1):t===e&&i>t&&a.charCodeAt(t)===47&&(d+=1,f=e+1)),d=Math.min(d,r.length)}let p=d===0?this.#e.snapshot.rootId:r[d-1]??this.#e.snapshot.rootId,m=d,h=!0,g=f;for(;g<=e;){let t=u.indexOf(`/`,g),i=t===-1||t>e?e:t,a=u.slice(g,i),f=K(this.#e,p).childIds,_=m===d?n[m]??0:0,v=_,y,b=l.get(a)??pm(a);l.set(a,b);let x=(e,t)=>{for(v=e;v<t;v+=1){let e=f[v],t=c[e],n=s[t.nameId];if(n===a)return y=e,!0;let r=hm(Sm(o,t.nameId),b);if(r>0||r===0&&n>a)return!1}return!1};if(!x(_,f.length)&&_>0&&x(0,_),y===void 0){h=!1;break}if(!H(q(this.#e,y))){h=!1;break}if(n[m]=v,r[m]=y,p=y,m+=1,i===e)break;g=i+1}if(a=u,i=e,n.length=m,r.length=m,!h){a=null,i=0,n.length=0,r.length=0;continue}for(let e=d;e<m;e+=1){let n=r[e];if(n==null)continue;let i=q(this.#e,n);Zm(this.#e,n,i)||(Qm(this.#e,n,!0,i),t+=1)}}return t}hasAllDirectoriesExpanded(){for(let e of this.#e.snapshot.directories.keys()){if(e===this.#e.snapshot.rootId)continue;let t=q(this.#e,e);if(!Zm(this.#e,e,t))return!1}return!0}requireDirectoryNodeId(e){let t=Uh(this.#e,e);if(t==null)throw Error(`Path does not exist: "${e}"`);if(!H(q(this.#e,t)))throw Error(`Path is not a directory: "${e}"`);return t}resolveActiveDirectoryNodeId(e){try{if(!H(q(this.#e,e)))throw Error(`Node is not a directory: ${String(e)}`);return e}catch{return null}}isDirectoryProjectionVisible(e){let t=e;for(;t!==this.#e.snapshot.rootId;){let e=q(this.#e,t).parentId;if(e!==this.#e.snapshot.rootId){let n=q(this.#e,e),r=jh(this.#e,e);if(!Zm(this.#e,e,n)&&r!==t)return!1}t=e}return!0}validateChildPatch(t,n){new e({paths:this.list(t),presorted:!0,sort:this.#e.snapshot.options.sort}).batch(n.operations)}};function d_(e,t){switch(t.type){case`add`:case`remove`:if(!t.path.startsWith(e)||t.path===e)throw Error(`Child patch operation must stay within ${e}: "${t.path}"`);break;case`move`:if(!t.from.startsWith(e)||!t.to.startsWith(e)||t.from===e||t.to===e)throw Error(`Child patch move must stay within ${e}: "${t.from}" -> "${t.to}"`)}}function f_(e,t={}){return u_.prepareInput(e,t)}var p_={compact:{itemHeight:24,factor:.8},default:{itemHeight:30,factor:1},relaxed:{itemHeight:36,factor:1.2}};function m_(e,t){if(typeof e==`number`)return{itemHeight:t??p_.default.itemHeight,factor:e};let n=p_[e??`default`];return{itemHeight:t??n.itemHeight,factor:n.factor}}var h_=p_.default.itemHeight,g_=`@layer base {
6301
+ </symbol>`],ym=[bp,xp,Cp,wp,Tp,Ep,Op,Np,Pp,Rp,Gp,Kp,qp,Jp,Yp,Zp,em,tm,nm,rm,im,sm,cm,dm,fm,pm,mm,hm,gm,_m];function bm(e,t){return t.length===0?e:e.replace(`</svg>`,`\n ${t.join(`
6302
+ `)}\n</svg>`)}var xm=bm(yp,vm),Sm={minimal:yp,standard:xm,complete:bm(xm,ym)},Cm={".babelrc":`babel`,".babelrc.json":`babel`,".bash_profile":`bash`,".bashrc":`bash`,".browserslistrc":`browserslist`,".dockerignore":`docker`,".eslintignore":`eslint`,".eslintrc":`eslint`,".eslintrc.cjs":`eslint`,".eslintrc.js":`eslint`,".eslintrc.json":`eslint`,".eslintrc.yaml":`eslint`,".eslintrc.yml":`eslint`,".gitattributes":`git`,".gitignore":`git`,".gitkeep":`git`,".gitmodules":`git`,".oxlintrc.json":`oxc`,".postcssrc":`postcss`,".postcssrc.json":`postcss`,".postcssrc.yaml":`postcss`,".postcssrc.yml":`postcss`,".prettierignore":`prettier`,".prettierrc":`prettier`,".prettierrc.cjs":`prettier`,".prettierrc.js":`prettier`,".prettierrc.json":`prettier`,".prettierrc.mjs":`prettier`,".prettierrc.toml":`prettier`,".prettierrc.yaml":`prettier`,".prettierrc.yml":`prettier`,".stylelintignore":`stylelint`,".stylelintrc":`stylelint`,".stylelintrc.cjs":`stylelint`,".stylelintrc.js":`stylelint`,".stylelintrc.json":`stylelint`,".stylelintrc.mjs":`stylelint`,".stylelintrc.yaml":`stylelint`,".stylelintrc.yml":`stylelint`,".terraform.lock.hcl":`terraform`,".zprofile":`bash`,".zshenv":`bash`,".zshrc":`bash`,"babel.config.cjs":`babel`,"babel.config.js":`babel`,"babel.config.json":`babel`,"babel.config.mjs":`babel`,"biome.json":`biome`,"biome.jsonc":`biome`,"bootstrap.bundle.js":`bootstrap`,"bootstrap.bundle.min.js":`bootstrap`,"bootstrap.css":`bootstrap`,"bootstrap.js":`bootstrap`,"bootstrap.min.css":`bootstrap`,"bootstrap.min.js":`bootstrap`,"bun.lock":`bun`,"bun.lockb":`bun`,"bunfig.toml":`bun`,"claude.md":`claude`,"compose.yaml":`docker`,"compose.yml":`docker`,"docker-compose.override.yml":`docker`,"docker-compose.yaml":`docker`,"docker-compose.yml":`docker`,dockerfile:`docker`,"eslint.config.cjs":`eslint`,"eslint.config.js":`eslint`,"eslint.config.mjs":`eslint`,"eslint.config.mts":`eslint`,"eslint.config.ts":`eslint`,gemfile:`ruby`,"next.config.js":`nextjs`,"next.config.mjs":`nextjs`,"next.config.mts":`nextjs`,"next.config.ts":`nextjs`,"postcss.config.cjs":`postcss`,"postcss.config.js":`postcss`,"postcss.config.mjs":`postcss`,"postcss.config.ts":`postcss`,"prettier.config.cjs":`prettier`,"prettier.config.js":`prettier`,"prettier.config.mjs":`prettier`,rakefile:`ruby`,"readme.md":`markdown`,"stylelint.config.cjs":`stylelint`,"stylelint.config.js":`stylelint`,"stylelint.config.mjs":`stylelint`,"svgo.config.cjs":`svgo`,"svgo.config.js":`svgo`,"svgo.config.mjs":`svgo`,"svgo.config.ts":`svgo`,"tailwind.config.cjs":`tailwind`,"tailwind.config.js":`tailwind`,"tailwind.config.mjs":`tailwind`,"tailwind.config.ts":`tailwind`,"vite.config.js":`vite`,"vite.config.mjs":`vite`,"vite.config.mts":`vite`,"vite.config.ts":`vite`,"webpack.config.babel.js":`webpack`,"webpack.config.cjs":`webpack`,"webpack.config.js":`webpack`,"webpack.config.mjs":`webpack`,"webpack.config.ts":`webpack`},wm={"7z":`zip`,astro:`astro`,AUTHORS:`text`,avif:`image`,bash:`bash`,bmp:`image`,bz2:`zip`,c:`c`,cc:`cpp`,cfg:`text`,CHANGELOG:`text`,cjs:`javascript`,"code-workspace":`vscode`,conf:`text`,CONTRIBUTORS:`text`,cpp:`cpp`,csh:`bash`,css:`css`,csv:`table`,cts:`typescript`,cxx:`cpp`,db:`database`,editorconfig:`text`,env:`text`,"env.development":`text`,"env.local":`text`,"env.production":`text`,eot:`font`,erb:`ruby`,fish:`bash`,gemspec:`ruby`,gif:`image`,go:`go`,gql:`graphql`,graphql:`graphql`,gz:`zip`,h:`c`,hh:`cpp`,hpp:`cpp`,htm:`html`,html:`html`,hxx:`cpp`,icns:`image`,ico:`image`,ini:`text`,inl:`cpp`,jar:`zip`,jpeg:`image`,jpg:`image`,js:`javascript`,json:`json`,json5:`json`,jsonc:`json`,jsonl:`json`,jsx:`javascript`,ksh:`bash`,less:`css`,LICENSE:`text`,log:`text`,markdown:`markdown`,mcp:`mcp`,md:`markdown`,mdx:`markdown`,"mdx.tsx":`markdown`,mjs:`javascript`,mm:`cpp`,mts:`typescript`,ods:`table`,otf:`font`,png:`image`,postcss:`css`,py:`python`,pyi:`python`,pyw:`python`,pyx:`python`,rake:`ruby`,rar:`zip`,rb:`ruby`,rs:`rust`,rst:`text`,rtf:`text`,sass:`css`,scss:`css`,sh:`bash`,sql:`database`,sqlite:`database`,sqlite3:`database`,styl:`css`,svelte:`svelte`,svg:`svg`,swift:`swift`,tar:`zip`,tf:`terraform`,tfstate:`terraform`,tfvars:`terraform`,tgz:`zip`,tif:`image`,tiff:`image`,ts:`typescript`,tsv:`table`,tsx:`typescript`,ttf:`font`,txt:`text`,vue:`vue`,war:`zip`,wasm:`wasm`,wast:`wasm`,wat:`wasm`,webp:`image`,woff:`font`,woff2:`font`,xhtml:`html`,xls:`table`,xlsx:`table`,xz:`zip`,yaml:`yml`,yml:`yml`,zig:`zig`,zip:`zip`,zsh:`bash`},Tm={jsx:`react`,sass:`sass`,scss:`sass`,tsx:`react`},Em=new Set([`bash`,`c`,`cpp`,`css`,`database`,`default`,`font`,`git`,`go`,`html`,`image`,`javascript`,`json`,`markdown`,`mcp`,`python`,`ruby`,`rust`,`swift`,`table`,`text`,`typescript`,`zip`]),Dm=new Set([`complete`]);function Om(e){return Sm[e===`none`?`minimal`:e]}function km(e){return`file-tree-builtin-${e}`}function Am(e){return e!==`none`&&Dm.has(e)}function jm(e,t,n){if(e===`minimal`||e===`none`)return;let r=e===`complete`,i=Cm[t.toLowerCase()];if(i!=null&&(r||Em.has(i)))return i;for(let e of n){if(r){let t=Tm[e];if(t!=null)return t}let t=wm[e];if(t!=null&&(r||Em.has(t)))return t}return`default`}var Mm=`file-tree-container`,Nm=`data-file-tree-style`,Pm=`data-file-tree-unsafe-css`,Fm=`data-file-tree-scrollbar-measure`,Im=`data-file-tree-scrollbar-gutter-measured`,Lm=`--trees-scrollbar-gutter-measured`,Rm=`header`,zm=`context-menu`,Bm=`context-menu-trigger`;function Vm(e){return e.spriteSheet!=null||e.remap!=null||e.byFileName!=null||e.byFileExtension!=null||e.byFileNameContains!=null}function Hm(e){return e==null?{set:`complete`,colored:!0}:typeof e==`string`?{set:e,colored:!0}:{...e,set:e.set??(Vm(e)?`none`:`complete`),colored:e.colored??!0}}var Um=e=>e.trim().toLowerCase(),Wm=e=>e.split(`/`).at(-1)??e,Gm=e=>{let t=e.toLowerCase().split(`.`),n=[];for(let e=1;e<t.length;e+=1)n.push(t.slice(e).join(`.`));return n};function Km(e,t){return typeof e==`string`?{name:e,remappedFrom:t}:{...e,remappedFrom:t}}function qm(e){let t=Hm(e),n=t.remap,r=new Map;for(let[e,n]of Object.entries(t.byFileName??{}))r.set(e.toLowerCase(),n);let i=new Map;for(let[e,n]of Object.entries(t.byFileExtension??{}))i.set(Um(e),n);let a=Object.entries(t.byFileNameContains??{}).map(([e,t])=>[e.toLowerCase(),t]);return{resolveIcon:(e,o)=>{if(e===`file-tree-icon-file`&&o!=null){let s=Wm(o),c=s.toLowerCase(),l=r.get(c);if(l!=null)return Km(l,e);for(let[t,n]of a)if(c.includes(t))return Km(n,e);let u=Gm(s);for(let t of u){let n=i.get(t);if(n!=null)return Km(n,e)}let d=jm(t.set,s,u);if(d!=null&&t.set!==`none`){if(d==="default"){let t=n?.[e];if(t!=null)return Km(t,e)}return{name:km(d),remappedFrom:e,token:d}}}let s=n?.[e];return s==null?{name:e}:Km(s,e)}}}var Jm=5,Ym=32,Xm=128;function Zm(){return{childIdByNameId:new Map,childIds:[],childPositionById:new Map,childVisibleChunkSums:null,totalChildSubtreeNodeCount:0,totalChildVisibleSubtreeCount:0}}function Qm(){return{childIdByNameId:null,childIds:[],childPositionById:null,childVisibleChunkSums:null,totalChildSubtreeNodeCount:0,totalChildVisibleSubtreeCount:0}}function $m(e,t){if(t.childIdByNameId!=null)return t.childIdByNameId;let n=new Map;for(let r of t.childIds){let t=e[r];t!=null&&n.set(t.nameId,r)}return t.childIdByNameId=n,n}function eh(e){if(e.childPositionById!=null)return e.childPositionById;let t=new Map;for(let n=0;n<e.childIds.length;n++){let r=e.childIds[n];r!=null&&t.set(r,n)}return e.childPositionById=t,t}function th(e,t){e.childPositionById!=null&&e.childPositionById.set(t,e.childIds.length),e.childIds.push(t)}function nh(e,t){if(e.childPositionById!=null)for(let n=t;n<e.childIds.length;n++){let t=e.childIds[n];t!=null&&e.childPositionById.set(t,n)}}function rh(e,t){let n=0,r=0;for(let i of t.childIds){let t=e[i];t!=null&&(n+=t.subtreeNodeCount,r+=t.visibleSubtreeCount)}t.totalChildSubtreeNodeCount=n,t.totalChildVisibleSubtreeCount=r,sh(e,t)}function ih(e,t,n,r){if(e.totalChildSubtreeNodeCount+=n,e.totalChildVisibleSubtreeCount+=r,e.childVisibleChunkSums==null||r===0)return;let i=eh(e).get(t);if(i===void 0)return;let a=i>>Jm;e.childVisibleChunkSums[a]+=r}function ah(e,t,n){let r=t.childVisibleChunkSums;if(r!=null){let i=n,a=0;for(let o of r){if(i<o){let r=ch(e,t,a,i);return{...r,childVisibleIndex:n-r.localVisibleIndex}}i-=o,a+=Ym}throw Error(`Visible child index ${String(n)} is out of range`)}let i=n;for(let r=0;r<t.childIds.length;r++){let a=t.childIds[r];if(a==null)continue;let o=e[a];if(o!=null){if(i<o.visibleSubtreeCount)return{childIndex:r,childVisibleIndex:n-i,localVisibleIndex:i};i-=o.visibleSubtreeCount}}throw Error(`Visible child index ${String(n)} is out of range`)}function oh(e,t,n){let r=0,i=t.childVisibleChunkSums,a=0;if(i!=null){let e=n>>Jm;for(let t=0;t<e;t+=1)r+=i[t]??0;a=e<<Jm}for(let i=a;i<n;i+=1){let n=t.childIds[i];if(n==null)continue;let a=e[n];a!=null&&(r+=a.visibleSubtreeCount)}return r}function sh(e,t){if(t.childIds.length<Xm){t.childVisibleChunkSums=null;return}let n=Math.ceil(t.childIds.length/Ym),r=new Int32Array(n);for(let n=0;n<t.childIds.length;n++){let i=t.childIds[n];if(i==null)continue;let a=e[i];a!=null&&(r[n>>Jm]+=a.visibleSubtreeCount)}t.childVisibleChunkSums=r}function ch(e,t,n,r){let i=Math.min(t.childIds.length,n+Ym),a=r;for(let r=n;r<i;r++){let n=t.childIds[r];if(n==null)continue;let i=e[n];if(i!=null){if(a<i.visibleSubtreeCount)return{childIndex:r,localVisibleIndex:a};a-=i.visibleSubtreeCount}}throw Error(`Visible child index ${String(r)} is out of range`)}var lh=7,uh=3,dh=8,fh=4;function ph(e,t,n=0){return e<<fh|n<<uh|t}function mh(e){return e.depthAndFlags>>>fh}function hh(e){return(e.depthAndFlags&dh)>>uh}function V(e){return(e.depthAndFlags&dh)!==0}function gh(e){return e.depthAndFlags&lh}function H(e,t){return(gh(e)&t)!==0}function _h(e,t){e.depthAndFlags|=t}function vh(e,t){e.depthAndFlags=ph(t,gh(e),hh(e))}var yh=Symbol(`benchmarkInstrumentation`);function bh(e,t){return t==null||Object.defineProperty(e,yh,{configurable:!0,enumerable:!1,value:t,writable:!1}),e}function xh(e){return e==null?null:e[yh]??null}function U(e,t,n){return e==null?n():e.measurePhase(t,n)}function Sh(e,t,n){!Number.isFinite(n)||e==null||e.setCounter(t,n)}function Ch(e){return e>=48&&e<=57}function wh(e){let t=[],n=0,r=0;for(;r<e.length;){for(;r<e.length&&!Ch(e.charCodeAt(r));)r+=1;if(r>=e.length)break;r>n&&t.push(e.slice(n,r));let i=0;for(;r<e.length&&Ch(e.charCodeAt(r));)i=i*10+(e.charCodeAt(r)-48),r+=1;t.push(i),n=r}return(n<e.length||t.length===0)&&t.push(e.slice(n)),t}function Th(e){let t=e.toLowerCase();return{lowerValue:t,tokens:wh(t)}}function Eh(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){let n=e[r],i=t[r];if(n===i)continue;if(typeof n==`number`&&typeof i==`number`)return n<i?-1:1;let a=String(n),o=String(i);if(a!==o)return a<o?-1:1}return e.length===t.length?0:e.length<t.length?-1:1}function Dh(e,t){if(e.tokens.length===1&&t.tokens.length===1&&typeof e.tokens[0]==`string`&&typeof t.tokens[0]==`string`)return e.lowerValue===t.lowerValue?0:e.lowerValue<t.lowerValue?-1:1;let n=Eh(e.tokens,t.tokens);return n===0?e.lowerValue===t.lowerValue?0:e.lowerValue<t.lowerValue?-1:1:n}function Oh(e,t,n){let r=Dh(n(e),n(t));return r===0?e===t?0:e<t?-1:1:r}function kh(e,t){return Oh(e,t,Th)}function Ah(e,t){return t===e.segments.length-1?+!!e.isDirectory:1}function jh(e,t){let n=Math.min(e.segments.length,t.segments.length);for(let r=0;r<n;r++){let n=e.segments[r],i=t.segments[r];if(n===i)continue;let a=Ah(e,r);return a===Ah(t,r)?kh(n,i):a===1?-1:1}return e.segments.length===t.segments.length?e.isDirectory===t.isDirectory?0:e.isDirectory?-1:1:e.segments.length<t.segments.length?-1:1}function Mh(e,t){return jh(e,t)}function Nh(e,t,n){let r=e=>{let t=n.get(e);if(t!=null)return t;let r=Th(e);return n.set(e,r),r},i=Math.min(e.segments.length,t.segments.length);for(let n=0;n<i;n++){let i=e.segments[n],a=t.segments[n];if(i===a)continue;let o=Ah(e,n);return o===Ah(t,n)?Oh(i,a,r):o===1?-1:1}return e.segments.length===t.segments.length?e.isDirectory===t.isDirectory?0:e.isDirectory?-1:1:e.segments.length<t.segments.length?-1:1}function Ph(e,t){let n=e.sortKeyById[t];if(n!==void 0)return n;let r=e.valueById[t],i=Th(r);return e.sortKeyById[t]=i,i}function Fh(e={}){return{flattenEmptyDirectories:e.flattenEmptyDirectories!==!1,sort:e.sort??`default`}}function Ih(e){let t=e.length>0&&e.charCodeAt(e.length-1)===47,n=t?e.length-1:e.length,r=[],i=0;for(let t=0;t<n;t++)e.charCodeAt(t)===47&&(r.push(e.slice(i,t)),i=t+1);return r.push(e.slice(i,n)),{hasTrailingSlash:t,segments:r}}function Lh(e){let{hasTrailingSlash:t,segments:n}=Ih(e);return{basename:n[n.length-1]??``,isDirectory:t,path:e,segments:n}}function Rh(e){if(e.length===0)return{requiresDirectory:!1,segments:[]};let{hasTrailingSlash:t,segments:n}=Ih(e);return{requiresDirectory:t,segments:n}}function zh(){let e=new Map;return e.set(``,0),{idByValue:e,valueById:[``],sortKeyById:[Th(``)]}}function Bh(e,t){let n=e.idByValue.get(t);if(n!==void 0)return n;let r=e.valueById.length;return e.idByValue.set(t,r),e.valueById.push(t),r}function Vh(e,t){let n=e.valueById[t];if(n===void 0)throw Error(`Unknown segment ID: ${String(t)}`);return n}var Hh=Symbol(`pathStorePreparedInputKind`);function Uh(e,t){return e[Hh]=t,e}function Wh(e){return{basename:e.basename,depth:e.segments.length,isDirectory:e.isDirectory,path:e.path,segments:e.segments}}function Gh(e,t,n){return n==="default"?Mh(e,t):n(Wh(e),Wh(t))}function Kh(){return{depthAndFlags:ph(0,3,1),nameId:0,parentId:0,subtreeNodeCount:1,visibleSubtreeCount:1}}function qh(e,t){let n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!==t[r])return r;return n}function Jh(e){return e.isDirectory?e.segments.length:e.segments.length-1}function Yh(e){return Array.isArray(e)&&e.every(e=>typeof e==`object`&&!!e&&typeof e.path==`string`&&Array.isArray(e.segments)&&typeof e.basename==`string`&&typeof e.isDirectory==`boolean`)}function Xh(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function Zh(e,t={}){return rg(e,t).map(e=>e.path)}function Qh(e,t={}){let n=rg(e,t);return Uh({paths:n.map(e=>e.path),preparedPaths:n},`prepared`)}function $h(e){let t=e.length,n=!1;for(let r=0;r<t;r+=1){let t=e[r];if(t.length>0&&t.charCodeAt(t.length-1)===47){n=!0;break}}return Uh({paths:e,presortedPaths:e,presortedPathsContainDirectories:n},`presorted`)}function eg(e){let t=e,n=t.preparedPaths;if(t[Hh]===`prepared`&&n!=null)return n;if(!Yh(n))throw Error(`preparedInput must come from PathStore.prepareInput()`);return n}function tg(e){let t=e;return t[Hh]===`presorted`&&t.presortedPaths!=null||Xh(t.presortedPaths)?t.presortedPaths:null}function ng(e){let t=e;return typeof t.presortedPathsContainDirectories==`boolean`?t.presortedPathsContainDirectories:null}function rg(e,t={}){let n=Fh(t),r=xh(t);Sh(r,`workload.inputFiles`,e.length);let i=U(r,`store.preparePathEntries.parse`,()=>e.map(e=>Lh(e)));return U(r,`store.preparePathEntries.sort`,()=>i.sort((e,t)=>Gh(e,t,n.sort))),i}var ig=class{directories=new Map;directoryStack=[0];presortedDirectoryNodeIds=[];initialExpandedPathSet;createdDirectoriesAllExpanded=!1;createdDirectoryCount=0;lastPreparedPath=null;nodes=[Kh()];options;instrumentation;segmentSortKeyCache=new Map;segmentTable=zh();hasDeferredDirectoryIndexes=!1;constructor(e={}){this.instrumentation=xh(e),this.options=Fh(e);let t=e.initialExpandedPaths??null;if(t==null||t.length===0)this.initialExpandedPathSet=null;else{let e=new Set,n=t.length;for(let r=0;r<n;r+=1){let n=t[r],i=n.length;e.add(i>0&&n.charCodeAt(i-1)===47?n.slice(0,i-1):n)}this.initialExpandedPathSet=e,this.createdDirectoriesAllExpanded=!0}this.directories.set(0,Zm())}appendPaths(e){return U(this.instrumentation,`store.builder.appendPaths.parse`,()=>this.appendPreparedPaths(e.map(e=>Lh(e))))}appendPreparedPaths(e,t=!0){return this.createdDirectoriesAllExpanded=!1,U(this.instrumentation,`store.builder.appendPreparedPaths`,()=>{for(let n of e)this.appendPreparedPath(n,t)}),this}appendPresortedPaths(e,t=null){return U(this.instrumentation,`store.builder.appendPresortedPaths`,()=>{if(t===!1){this.appendPresortedFilePaths(e);return}this.createdDirectoriesAllExpanded=!1;let n=null,r=0,i=this.nodes,a=this.segmentTable,o=a.idByValue,s=a.valueById,c=this.directoryStack,l=0,u=``,d=0;for(let t of e){if(n===t)throw Error(`Duplicate path: "${t}"`);let e=t.length>0&&t.charCodeAt(t.length-1)===47,a=e?t.length-1:t.length,f=0,p=0;if(n!=null){if(u.length>0&&t.length>u.length&&t.startsWith(u))f=d,p=u.length;else{let r=Math.min(a,n.length),i=!0;for(let e=0;e<r;e++){let r=t.charCodeAt(e);if(r!==n.charCodeAt(e)){i=!1;break}r===47&&(f++,p=e+1)}i&&e&&r===a&&n.length>a&&n.charCodeAt(a)===47&&(f++,p=a+1)}}l=f,r=f;let m=p,h=t.indexOf(`/`,m);for(;h>=0&&h<a;){let e=c[l];if(e===void 0)throw Error(`Directory stack underflow while building the path store`);r++;let n=t.slice(m,h),a=o.get(n);a===void 0&&(a=s.length,o.set(n,a),s.push(n));let u=i.length;i.push({depthAndFlags:ph(r,0,1),nameId:a,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),this.recordCreatedDirectoryPath(t.slice(0,h)),l++,c[l]=u,m=h+1,h=t.indexOf(`/`,m)}if(e){if(m<a){let e=c[l];if(e===void 0)throw Error(`Unable to resolve directory parent for "${t}"`);r++;let n=t.slice(m,a),u=o.get(n);u===void 0&&(u=s.length,o.set(n,u),s.push(n));let d=i.length;i.push({depthAndFlags:ph(r,0,1),nameId:u,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),l++,c[l]=d,m=a+1}let e=c[l];if(e===void 0)throw Error(`Unable to resolve directory node for "${t}"`);this.promoteDirectoryToExplicit(e,t)}else{let e=c[l];if(e===void 0)throw Error(`Unable to resolve file parent for "${t}"`);let n=t.slice(m),a=o.get(n);a===void 0&&(a=s.length,o.set(n,a),s.push(n)),i.push({depthAndFlags:ph(r+1,0),nameId:a,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1})}m!==u.length&&(u=t.substring(0,m),d=r),n=t}c.length=l+1,n!=null&&(this.lastPreparedPath=Lh(n)),this.hasDeferredDirectoryIndexes=!0}),this}appendPresortedFilePaths(e){let t=null,n=0,r=this.nodes,i=this.segmentTable,a=i.idByValue,o=i.valueById,s=this.directoryStack,c=0,l=``,u=0;for(let i of e){if(t===i)throw Error(`Duplicate path: "${i}"`);let e=i.length,d=0,f=0;if(t!=null){if(l.length>0&&i.length>l.length&&i.startsWith(l))d=u,f=l.length;else{let n=Math.min(e,t.length);for(let e=0;e<n;e++){let n=i.charCodeAt(e);if(n!==t.charCodeAt(e))break;n===47&&(d++,f=e+1)}}}c=d,n=d;let p=f,m=i.indexOf(`/`,p);for(;m>=0;){let e=s[c];if(e===void 0)throw Error(`Directory stack underflow while building the path store`);n++;let t=i.slice(p,m),l=a.get(t);l===void 0&&(l=o.length,a.set(t,l),o.push(t));let u=r.length;r.push({depthAndFlags:ph(n,0,1),nameId:l,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),this.recordCreatedDirectoryPath(i.slice(0,m)),this.presortedDirectoryNodeIds.push(u),c++,s[c]=u,p=m+1,m=i.indexOf(`/`,p)}let h=s[c];if(h===void 0)throw Error(`Unable to resolve file parent for "${i}"`);let g=i.slice(p),_=a.get(g);_===void 0&&(_=o.length,a.set(g,_),o.push(g)),r.push({depthAndFlags:ph(n+1,0),nameId:_,parentId:h,subtreeNodeCount:1,visibleSubtreeCount:1}),p!==l.length&&(l=i.substring(0,p),u=n),t=i}s.length=c+1,t!=null&&(this.lastPreparedPath=Lh(t)),this.hasDeferredDirectoryIndexes=!0}finish(e={}){let t=e.skipSubtreeCountPass===!0;return this.hasDeferredDirectoryIndexes?(U(this.instrumentation,`store.builder.buildDirectoryIndexes`,()=>this.buildPresortedFinish(t)),this.hasDeferredDirectoryIndexes=!1):t||U(this.instrumentation,`store.builder.computeSubtreeCounts`,()=>this.computeSubtreeCounts(0)),{directories:this.directories,nodes:this.nodes,options:this.options,rootId:0,segmentTable:this.segmentTable,presortedDirectoryNodeIds:this.presortedDirectoryNodeIds.length>0?this.presortedDirectoryNodeIds:null}}didMatchAllInitialExpandedPaths(){return this.createdDirectoriesAllExpanded&&this.initialExpandedPathSet!=null&&this.createdDirectoryCount===this.initialExpandedPathSet.size}appendPreparedPath(e,t){if(this.hasDeferredDirectoryIndexes&&=(this.buildDirectoryIndexes(),!1),this.lastPreparedPath!=null){if(e.path===this.lastPreparedPath.path)throw Error(`Duplicate path: "${e.path}"`);if(t&&(this.options.sort==="default"?Nh(this.lastPreparedPath,e,this.segmentSortKeyCache):Gh(this.lastPreparedPath,e,this.options.sort))>0)throw Error(`Builder input must be sorted before appendPaths(): "${e.path}"`)}let n=this.lastPreparedPath,r=Jh(e),i=n==null?0:Jh(n),a=n==null?0:qh(n.segments,e.segments),o=Math.min(a,r,i);this.directoryStack.length=o+1;for(let n=o;n<r;n++){let r=this.directoryStack[this.directoryStack.length-1];if(r===void 0)throw Error(`Directory stack underflow while building the path store`);let i=t?this.getOrCreateDirectoryChild(r,e.segments[n]):this.createDirectoryChild(r,e.segments[n]);this.directoryStack.push(i)}if(e.isDirectory){let t=this.directoryStack[this.directoryStack.length-1];if(t===void 0)throw Error(`Unable to resolve directory node for "${e.path}"`);this.promoteDirectoryToExplicit(t,e.path),this.lastPreparedPath=e;return}let s=this.directoryStack[this.directoryStack.length-1];if(s===void 0)throw Error(`Unable to resolve file parent for "${e.path}"`);t?this.createFileChild(s,e.basename,e.path):this.createFileChildUnchecked(s,e.basename),this.lastPreparedPath=e}recordCreatedDirectoryPath(e){!this.createdDirectoriesAllExpanded||this.initialExpandedPathSet==null||(this.createdDirectoryCount+=1,this.initialExpandedPathSet.has(e)||(this.createdDirectoriesAllExpanded=!1))}createFileChild(e,t,n){let r=Bh(this.segmentTable,t),i=this.getDirectoryIndex(e),a=i.childIdByNameId;if(a!=null&&a.get(r)!==void 0)throw Error(`Path collides with an existing entry: "${n}"`);let o=this.nodes[e];if(o===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let s=this.nodes.length;return this.nodes.push({depthAndFlags:ph(mh(o)+1,0),nameId:r,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),a?.set(r,s),th(i,s),s}createFileChildUnchecked(e,t){let n=Bh(this.segmentTable,t),r=this.getDirectoryIndex(e),i=this.nodes[e];if(i===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let a=this.nodes.length;return this.nodes.push({depthAndFlags:ph(mh(i)+1,0),nameId:n,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),r.childIdByNameId!=null&&r.childIdByNameId.set(n,a),th(r,a),a}getOrCreateDirectoryChild(e,t){let n=Bh(this.segmentTable,t),r=this.getDirectoryIndex(e);if(r.childIdByNameId!=null){let e=r.childIdByNameId.get(n);if(e!==void 0){let n=this.nodes[e];if(n!=null&&!V(n))throw Error(`Path collides with an existing file while creating directory "${t}"`);return e}}let i=this.nodes[e];if(i===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let a=this.nodes.length;return this.nodes.push({depthAndFlags:ph(mh(i)+1,0,1),nameId:n,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),r.childIdByNameId!=null&&r.childIdByNameId.set(n,a),th(r,a),this.directories.set(a,Zm()),a}createDirectoryChild(e,t){let n=Bh(this.segmentTable,t),r=this.getDirectoryIndex(e),i=this.nodes[e];if(i===void 0)throw Error(`Unknown parent node ID: ${String(e)}`);let a=this.nodes.length;return this.nodes.push({depthAndFlags:ph(mh(i)+1,0,1),nameId:n,parentId:e,subtreeNodeCount:1,visibleSubtreeCount:1}),r.childIdByNameId!=null&&r.childIdByNameId.set(n,a),th(r,a),this.directories.set(a,Zm()),a}promoteDirectoryToExplicit(e,t){let n=this.nodes[e];if(n===void 0)throw Error(`Unknown directory node ID: ${String(e)}`);if(!V(n))throw Error(`Path is not a directory: "${t}"`);if(H(n,1))throw Error(`Duplicate path: "${t}"`);_h(n,1)}getDirectoryIndex(e){let t=this.directories.get(e);if(t!==void 0)return t;throw Error(`Unknown directory child index for node ${String(e)}`)}buildPresortedFinish(e){let t=this.nodes,n=this.directories;n.set(0,Qm());let r=-1,i=null;for(let e=1;e<t.length;e++){let a=t[e];if(a==null)continue;if(V(a)){let t=Qm();n.set(e,t),r=e,i=t}let o;a.parentId===r?o=i:(o=n.get(a.parentId),r=a.parentId,i=o??null),o?.childIds.push(e)}if(!e)for(let e=t.length-1;e>=1;e--){let n=t[e];if(n==null)continue;let r=t[n.parentId];r!=null&&(r.subtreeNodeCount+=n.subtreeNodeCount,r.visibleSubtreeCount+=n.visibleSubtreeCount)}}buildDirectoryIndexes(){let e=this.nodes;for(let t=1;t<e.length;t++){let n=e[t];if(n==null)continue;V(n)&&this.directories.set(t,Zm());let r=this.directories.get(n.parentId);r!=null&&(r.childIdByNameId!=null&&r.childIdByNameId.set(n.nameId,t),th(r,t))}}computeSubtreeCounts(e){let t=this.nodes[e];if(t===void 0)throw Error(`Unknown node ID: ${String(e)}`);if(!V(t))return t.subtreeNodeCount=1,t.visibleSubtreeCount=1,1;let n=this.getDirectoryIndex(e),r=1;for(let e of n.childIds)r+=this.computeSubtreeCounts(e);return rh(this.nodes,n),t.subtreeNodeCount=r,t.visibleSubtreeCount=r,r}};function ag(e,t=`closed`,n=null){let r=sg(t);return{activeNodeCount:e.nodes.length-1,collapsedDirectoryIds:new Set,collapseNewDirectoriesByDefault:!1,defaultExpansion:r,directoriesOpenByDefault:r===`open`,hasCollapsedDirectoryOverrides:!1,directoryLoadInfoById:new Map,expandedDirectoryIds:new Set,instrumentation:n,listeners:new Map,pathCacheByNodeId:new Map([[e.rootId,{path:``,version:0}]]),pathCacheVersion:0,snapshot:e,transactionStack:[]}}function og(){return{affectedAncestorIds:new Set,affectedNodeIds:new Set,events:[]}}function sg(e){if(typeof e!=`number`)return e;if(!Number.isInteger(e)||e<0)throw Error(`initialExpansion must be "open", "closed", or a non-negative integer depth. Received: ${String(e)}`);return e}function cg(e,t){return H(t,2)||e.defaultExpansion===`open`?!0:e.defaultExpansion!==`closed`&&mh(t)<=e.defaultExpansion}function lg(e,t,n=e.snapshot.nodes[t]){return n==null||!V(n)?!1:e.directoriesOpenByDefault&&!e.hasCollapsedDirectoryOverrides?!0:e.collapsedDirectoryIds.has(t)?!1:e.expandedDirectoryIds.has(t)?!0:cg(e,n)}function ug(e,t,n,r=e.snapshot.nodes[t]){if(r==null||!V(r))return;let i=cg(e,r);if(n){if(i){e.collapsedDirectoryIds.delete(t),e.hasCollapsedDirectoryOverrides=e.collapsedDirectoryIds.size>0;return}e.expandedDirectoryIds.add(t);return}if(i){e.collapsedDirectoryIds.add(t),e.hasCollapsedDirectoryOverrides=!0;return}e.expandedDirectoryIds.delete(t)}function dg(e,t){let n=e.directoryLoadInfoById.get(t);if(n!=null)return n;let r={activeAttemptId:null,errorMessage:null,nextAttemptId:1,state:`loaded`};return e.directoryLoadInfoById.set(t,r),r}function fg(e,t){return e.directoryLoadInfoById.get(t)?.state??`loaded`}function pg(e,t){let n=dg(e,t);if(n.state===`loading`&&n.activeAttemptId!=null)return{attemptId:n.activeAttemptId,nodeId:t,reused:!0};let r=n.nextAttemptId;return n.activeAttemptId=r,n.errorMessage=null,n.nextAttemptId+=1,n.state=`loading`,{attemptId:r,nodeId:t,reused:!1}}function mg(e,t){let n=dg(e,t);n.activeAttemptId=null,n.errorMessage=null,n.state=`unloaded`}function hg(e,t,n){let r=e.directoryLoadInfoById.get(t);return r==null||r.activeAttemptId!==n?!1:(r.activeAttemptId=null,r.errorMessage=null,r.state=`loaded`,!0)}function gg(e,t,n){return e.directoryLoadInfoById.get(t)?.activeAttemptId===n}function _g(e,t,n,r){let i=e.directoryLoadInfoById.get(t);return i==null||i.activeAttemptId!==n?!1:(i.activeAttemptId=null,i.errorMessage=r??null,i.state=`error`,!0)}function vg(e,t){e.directoryLoadInfoById.delete(t)}function yg(e,t,n){let r=n,i=e.listeners.get(t);return i==null?e.listeners.set(t,new Set([r])):i.add(r),()=>{let n=e.listeners.get(t);n!=null&&(n.delete(r),n.size===0&&e.listeners.delete(t))}}function bg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!0,operation:`add`,path:e.path,projectionChanged:e.projectionChanged,visibleCountDelta:null}}function xg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!0,operation:`remove`,path:e.path,projectionChanged:e.projectionChanged,recursive:e.recursive,visibleCountDelta:null}}function Sg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!0,from:e.from,operation:`move`,projectionChanged:e.projectionChanged,to:e.to,visibleCountDelta:null}}function Cg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!1,operation:`expand`,path:e.path,projectionChanged:!0,visibleCountDelta:null}}function wg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!1,operation:`collapse`,path:e.path,projectionChanged:!0,visibleCountDelta:null}}function Tg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],canonicalChanged:!1,operation:`mark-directory-unloaded`,path:e.path,projectionChanged:e.projectionChanged,visibleCountDelta:null}}function Eg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:!1,operation:`begin-child-load`,path:e.path,projectionChanged:e.projectionChanged,reused:e.reused,visibleCountDelta:null}}function Dg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:e.childEvents.some(e=>e.canonicalChanged),childEvents:e.childEvents,operation:`apply-child-patch`,path:e.path,projectionChanged:e.projectionChanged,visibleCountDelta:null}}function Og(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:!1,operation:`complete-child-load`,path:e.path,projectionChanged:e.projectionChanged,stale:e.stale,visibleCountDelta:null}}function kg(e){return{affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],attemptId:e.attemptId,canonicalChanged:!1,errorMessage:e.errorMessage,operation:`fail-child-load`,path:e.path,projectionChanged:e.projectionChanged,stale:e.stale,visibleCountDelta:null}}function Ag(e){return{activeNodeCountAfter:e.activeNodeCountAfter,activeNodeCountBefore:e.activeNodeCountBefore,affectedAncestorIds:e.affectedAncestorIds??[],affectedNodeIds:e.affectedNodeIds??[],cachedPathEntryCountAfter:e.cachedPathEntryCountAfter,cachedPathEntryCountBefore:e.cachedPathEntryCountBefore,canonicalChanged:!1,idsPreserved:e.idsPreserved,loadInfoEntryCountAfter:e.loadInfoEntryCountAfter,loadInfoEntryCountBefore:e.loadInfoEntryCountBefore,mode:e.mode,operation:`cleanup`,projectionChanged:e.projectionChanged,reclaimedCachedPathEntryCount:e.reclaimedCachedPathEntryCount,reclaimedLoadInfoEntryCount:e.reclaimedLoadInfoEntryCount,reclaimedNodeSlotCount:e.reclaimedNodeSlotCount,reclaimedSegmentCount:e.reclaimedSegmentCount,segmentCountAfter:e.segmentCountAfter,segmentCountBefore:e.segmentCountBefore,totalNodeSlotCountAfter:e.totalNodeSlotCountAfter,totalNodeSlotCountBefore:e.totalNodeSlotCountBefore,visibleCountDelta:null}}function jg(e,t,n){return{...n,visibleCountDelta:Hg(e)-t}}function Mg(e,t){let n=Hg(e),r=og();e.transactionStack.push(r);try{t()}catch(t){throw Fg(e,r,!1),t}Fg(e,r,!0,Hg(e)-n)}function Ng(e,t){let n=e.instrumentation;if(n==null){Pg(e,t);return}U(n,`store.events.record`,()=>Pg(e,t))}function Pg(e,t){let n=e.transactionStack[e.transactionStack.length-1]??null;if(n==null){Bg(e,t);return}n.events.push(t),zg(n,t)}function Fg(e,t,n,r=null){if(e.transactionStack.pop()!==t)throw Error(`Transaction stack underflow`);if(!n)return;let i=e.transactionStack[e.transactionStack.length-1]??null;if(i!=null){let n=e.instrumentation;n==null?Rg(i,t):U(n,`store.events.batch.merge`,()=>Rg(i,t));return}let a=Ig(t,r),o=e.instrumentation;if(o==null){Bg(e,a);return}U(o,`store.events.batch.commit`,()=>Bg(e,a))}function Ig(e,t){return{affectedAncestorIds:[...e.affectedAncestorIds],affectedNodeIds:[...e.affectedNodeIds],canonicalChanged:e.events.some(e=>e.canonicalChanged),events:[...e.events],operation:`batch`,projectionChanged:e.events.some(e=>e.projectionChanged),visibleCountDelta:t}}function Lg(e,t){for(let n of t.affectedAncestorIds)e.affectedAncestorIds.add(n);for(let n of t.affectedNodeIds)e.affectedNodeIds.add(n)}function Rg(e,t){for(let n of t.events)e.events.push(n);Lg(e,t)}function zg(e,t){for(let n of t.affectedNodeIds)e.affectedNodeIds.add(n);for(let n of t.affectedAncestorIds)e.affectedAncestorIds.add(n)}function Bg(e,t){let n=e.instrumentation;if(n==null){Vg(e,t);return}U(n,`store.events.emit`,()=>Vg(e,t))}function Vg(e,t){e.listeners.get(t.operation)?.forEach(e=>e(t)),e.listeners.get(`*`)?.forEach(e=>e(t))}function Hg(e){return e.snapshot.nodes[e.snapshot.rootId]?.visibleSubtreeCount??0}function Ug(e,t){if(e.snapshot.options.flattenEmptyDirectories!==!0)return null;let n=e.snapshot.nodes[t];if(n==null||!V(n)||H(n,2))return null;let r=e.snapshot.directories.get(t);if(r==null||r.childIds.length!==1)return null;let i=r.childIds[0];if(i==null)return null;let a=e.snapshot.nodes[i];return a==null||!V(a)?null:i}function Wg(e,t){let n=t;for(;;){let t=Ug(e,n);if(t==null)return n;n=t}}function Gg(e,t){let n=[t],r=t;for(;;){let t=Ug(e,r);if(t==null)return n;n.push(t),r=t}}function Kg(e,t){let n=t==null?e.snapshot.rootId:t_(e,t);return n==null?[]:r_(e,n)}function qg(e,t){let n=Lh(t),r=n.isDirectory?n.segments:n.segments.slice(0,-1),i=v_(e,__(e,r)),{createdNodeIds:a,directoryId:o}=i_(e,r),s=new Set(a),c=o;if(n.isDirectory){let n=K(e,o);if(H(n,1))throw Error(`Path already exists: "${t}"`);_h(n,1),e.pathCacheByNodeId.set(o,{path:t,version:e.pathCacheVersion}),s.add(o)}else c=o_(e,o,n.basename),s.add(c);Qg(e,o);let l=v_(e,o);return bg({affectedAncestorIds:e_(e,c),affectedNodeIds:[...s],path:t,projectionChanged:y_(i,l)})}function Jg(e,t,n){let r=t_(e,t);if(r==null)throw Error(`Path does not exist: "${t}"`);let i=K(e,r);if(H(i,2))throw Error(`The root node cannot be removed`);if(V(i)&&G(e,r).childIds.length>0&&n.recursive!==!0)throw Error(`Cannot remove a non-empty directory without recursive: "${t}"`);let a=i.parentId,o=v_(e,a),s=h_(e,r);l_(e,a,r,i.nameId),g_(e,a),Qg(e,a);let c=v_(e,a);return xg({affectedAncestorIds:e_(e,a),affectedNodeIds:s,path:t,projectionChanged:y_(o,c),recursive:n.recursive===!0})}function Yg(e,t,n,r){let i=t_(e,t);if(i==null)throw Error(`Source path does not exist: "${t}"`);let a=K(e,i);if(H(a,2))throw Error(`The root node cannot be moved`);let o=r.collision??`error`,s=p_(e,i,n),c=v_(e,a.parentId),l=v_(e,s.parentId),u=Vh(e.snapshot.segmentTable,a.nameId),d=Bh(e.snapshot.segmentTable,s.basename);if(s.parentId===a.parentId&&u===s.basename)return null;if(V(a)&&C_(e,i,s.parentId))throw Error(`Cannot move a directory into one of its descendants`);let f=$m(e.snapshot.nodes,G(e,s.parentId)).get(d),p=s.existingNodeId??f??null;if(p!=null&&p!==i&&m_(e,p,o,hh(a))===`skip`)return null;let m=a.parentId;l_(e,m,i,a.nameId),a.parentId=s.parentId,a.nameId=d,e.pathCacheByNodeId.delete(i),S_(e,i),c_(e,s.parentId,i),g_(e,m),e.pathCacheVersion++,Qg(e,m),s.parentId!==m&&Qg(e,s.parentId);let h=v_(e,m),g=v_(e,s.parentId);return Sg({affectedAncestorIds:[...new Set([...e_(e,m),...e_(e,s.parentId)])],affectedNodeIds:[i],from:t,projectionChanged:b_([c,l],[h,g]),to:W(e,i)})}function Xg(e,t){let n=e.pathCacheByNodeId.get(t);return n!=null&&n.version===e.pathCacheVersion?n.path:null}function Zg(e,t,n){return e.pathCacheByNodeId.set(t,{path:n,version:e.pathCacheVersion}),n}function W(e,t){let n=K(e,t),r=Xg(e,t);if(r!=null)return r;if(H(n,2))return Zg(e,t,``);let i=W(e,n.parentId),a=Vh(e.snapshot.segmentTable,n.nameId),o=i.length===0?a:`${i}${a}`;return Zg(e,t,V(n)?`${o}/`:o)}function Qg(e,t){let n=e.instrumentation;if(n==null){T_(e,t);return}U(n,`store.recomputeCountsUpwardFrom`,()=>T_(e,t))}function $g(e,t){let n=[[t,0]],{nodes:r,directories:i}=e.snapshot;for(;n.length>0;){let t=n[n.length-1],a=t[0],o=r[a];if(o==null||!V(o)){w_(e,a,o,!0),n.pop();continue}let s=i.get(a);if(s==null||t[1]>=s.childIds.length){w_(e,a,o,!0),n.pop();continue}let c=s.childIds[t[1]++];n.push([c,0])}}function e_(e,t){let n=[],r=t;for(;r!=null;){let t=K(e,r);if(n.push(r),r===e.snapshot.rootId)break;r=t.parentId}return n}function t_(e,t){if(t.length===0)return e.snapshot.rootId;let n=Rh(t);return n_(e,n.segments,n.requiresDirectory)}function n_(e,t,n){let r=e.snapshot.rootId;for(let n of t){let t=e.snapshot.segmentTable.idByValue.get(n);if(t===void 0)return null;let i=G(e,r),a=$m(e.snapshot.nodes,i).get(t);if(a===void 0)return null;r=a}let i=K(e,r);return n&&!V(i)?null:r}function G(e,t){let n=e.snapshot.directories.get(t);if(n===void 0)throw Error(`Unknown directory child index for node ${String(t)}`);return n}function K(e,t){let n=e.snapshot.nodes[t];if(n===void 0||H(n,4))throw Error(`Unknown node ID: ${String(t)}`);return n}function r_(e,t){let n=e.snapshot.nodes[t];if(n===void 0||H(n,4))return[];if(!V(n))return[W(e,t)];if(G(e,t).childIds.length===0)return H(n,1)&&!H(n,2)?[W(e,t)]:[];let r=[],i=[{childIndex:0,nodeId:t}];for(;i.length>0;){let t=i[i.length-1];if(t==null)break;let n=e.snapshot.nodes[t.nodeId];if(n===void 0||H(n,4)){i.pop();continue}if(!V(n)){r.push(W(e,t.nodeId)),i.pop();continue}let a=G(e,t.nodeId);if(a.childIds.length===0){H(n,1)&&!H(n,2)&&r.push(W(e,t.nodeId)),i.pop();continue}let o=a.childIds[t.childIndex];if(o==null){i.pop();continue}t.childIndex++,i.push({childIndex:0,nodeId:o})}return r}function i_(e,t){let n=[],r=e.snapshot.rootId;for(let i of t){let t=Bh(e.snapshot.segmentTable,i),a=G(e,r),o=$m(e.snapshot.nodes,a).get(t);if(o!==void 0){if(!V(K(e,o)))throw Error(`Cannot create a directory that collides with an existing file: "${i}"`);r=o;continue}r=a_(e,r,t),n.push(r)}return{createdNodeIds:n,directoryId:r}}function a_(e,t,n){let r=K(e,t),i=e.snapshot.nodes.length;return e.snapshot.nodes.push({depthAndFlags:ph(mh(r)+1,0,1),nameId:n,parentId:t,subtreeNodeCount:1,visibleSubtreeCount:1}),e.snapshot.directories.set(i,Zm()),c_(e,t,i),e.collapseNewDirectoriesByDefault&&(e.collapsedDirectoryIds.add(i),e.hasCollapsedDirectoryOverrides=!0),e.activeNodeCount++,i}function o_(e,t,n){let r=Bh(e.snapshot.segmentTable,n),i=G(e,t);if($m(e.snapshot.nodes,i).has(r))throw Error(`Path already exists: "${D_(e,t,n)}"`);let a=K(e,t),o=e.snapshot.nodes.length;return e.snapshot.nodes.push({depthAndFlags:ph(mh(a)+1,0),nameId:r,parentId:t,subtreeNodeCount:1,visibleSubtreeCount:1}),c_(e,t,o),e.activeNodeCount++,o}function s_(e,t,n){let r=0,i=t.childIds.length;for(;r<i;){let a=r+i>>>1,o=t.childIds[a];if(o==null){i=a;continue}u_(e,n,o)<0?i=a:r=a+1}return r}function c_(e,t,n){let r=G(e,t),i=K(e,n);$m(e.snapshot.nodes,r).set(i.nameId,n),ih(r,n,i.subtreeNodeCount,i.visibleSubtreeCount);let a=s_(e,r,n);r.childIds.splice(a,0,n),nh(r,a),sh(e.snapshot.nodes,r)}function l_(e,t,n,r){let i=G(e,t),a=eh(i),o=a.get(n)??-1;$m(e.snapshot.nodes,i).delete(r),a.delete(n);let s=e.snapshot.nodes[n];s!=null&&ih(i,n,-s.subtreeNodeCount,-s.visibleSubtreeCount),o>=0&&(i.childIds.splice(o,1),nh(i,o),sh(e.snapshot.nodes,i))}function u_(e,t,n){let r=e.snapshot.options.sort;return r==="default"?d_(e,t,n):r(f_(e,t),f_(e,n))}function d_(e,t,n){let r=K(e,t),i=K(e,n),a=V(r);if(a!==V(i))return a?-1:1;let o=Dh(Ph(e.snapshot.segmentTable,r.nameId),Ph(e.snapshot.segmentTable,i.nameId));if(o!==0)return o;let s=Vh(e.snapshot.segmentTable,r.nameId),c=Vh(e.snapshot.segmentTable,i.nameId);return s===c?t<n?-1:1:s<c?-1:1}function f_(e,t){let n=K(e,t),r=W(e,t),i=V(n),a=i?r.slice(0,-1):r;return{basename:Vh(e.snapshot.segmentTable,n.nameId),depth:mh(n),isDirectory:i,path:r,segments:a.length===0?[]:a.split(`/`)}}function p_(e,t,n){let r=K(e,t),i=t_(e,n);if(i!=null){let t=K(e,i);if(V(t))return{basename:Vh(e.snapshot.segmentTable,r.nameId),existingNodeId:null,parentId:i};let a=Rh(n).segments;return{basename:a[a.length-1]??``,existingNodeId:i,parentId:t.parentId}}let a=Rh(n),o=a.segments[a.segments.length-1]??``,s=a.segments.slice(0,-1),c=s.length===0?e.snapshot.rootId:n_(e,s,!0);if(c==null)throw Error(`Destination parent does not exist: "${n}"`);return{basename:o,existingNodeId:null,parentId:c}}function m_(e,t,n,r){if(n===`skip`)return`skip`;if(n===`error`)throw Error(`Destination already exists: "${W(e,t)}"`);let i=K(e,t);if(hh(i)!==r)throw Error(`replace collision requires the same source and destination kinds`);if(V(i)&&G(e,t).childIds.length>0)throw Error(`replace collision does not support non-empty directories`);let a=i.parentId,o=i.nameId;return h_(e,t),l_(e,a,t,o),g_(e,a),Qg(e,a),`handled`}function h_(e,t){let n=[],r=[{nodeId:t,visitedChildren:!1}];for(;r.length>0;){let t=r.pop();if(t==null)break;let i=K(e,t.nodeId);if(t.visitedChildren||!V(i)){V(i)&&e.snapshot.directories.delete(t.nodeId),_h(i,4),e.pathCacheByNodeId.delete(t.nodeId),e.collapsedDirectoryIds.delete(t.nodeId)&&(e.hasCollapsedDirectoryOverrides=e.collapsedDirectoryIds.size>0),e.expandedDirectoryIds.delete(t.nodeId),vg(e,t.nodeId),e.activeNodeCount--,n.push(t.nodeId);continue}r.push({nodeId:t.nodeId,visitedChildren:!0});let a=G(e,t.nodeId);for(let e=a.childIds.length-1;e>=0;e--){let t=a.childIds[e];t!=null&&r.push({nodeId:t,visitedChildren:!1})}}return n}function g_(e,t){let n=t;for(;n!=null;){let t=K(e,n);if(!V(t)||H(t,2)||G(e,n).childIds.length>0)return;_h(t,1),n=t.parentId===n?null:t.parentId}}function __(e,t){let n=e.snapshot.rootId;for(let r of t){let t=e.snapshot.segmentTable.idByValue.get(r);if(t==null)break;let i=$m(e.snapshot.nodes,G(e,n)).get(t);if(i==null||!V(K(e,i)))break;n=i}return n}function v_(e,t){let n=x_(e,t);if(n==null)return null;let r=Wg(e,n),i=K(e,r),a=n===r?null:Gg(e,n).map(t=>W(e,t));return JSON.stringify({flattenedSegmentPaths:a,hasChildren:G(e,r).childIds.length>0,path:W(e,r),terminalKind:hh(i)})}function y_(e,t){return b_([e],[t])}function b_(e,t){for(let n=0;n<e.length;n+=1){let r=e[n],i=t[n];if(r==null||i==null||r!==i)return!0}return!1}function x_(e,t){let n=t;for(;n!=null;){let t=K(e,n);if(!V(t)||H(t,2))return null;if(!lg(e,n,t))return n;n=t.parentId}return null}function S_(e,t){let n=K(e,t);if(vh(n,(t===e.snapshot.rootId?-1:mh(K(e,n.parentId)))+1),!V(n))return;let r=G(e,t);for(let t of r.childIds)S_(e,t)}function C_(e,t,n){let r=n;for(;r!=null;){if(r===t)return!0;let n=K(e,r);if(r===e.snapshot.rootId)return!1;r=n.parentId}return!1}function w_(e,t,n=K(e,t),r=!1){let i=e.instrumentation;if(i==null){E_(e,t,n,r);return}U(i,`store.recomputeNodeCounts`,()=>E_(e,t,n,r))}function T_(e,t){let n=t;for(;n!=null;){let t=K(e,n),r=t.subtreeNodeCount,i=t.visibleSubtreeCount;if(w_(e,n,t),n===e.snapshot.rootId)return;let a=t.subtreeNodeCount-r,o=t.visibleSubtreeCount-i,s=t.parentId;(a!==0||o!==0)&&ih(G(e,s),n,a,o),n=s}}function E_(e,t,n,r){if(!V(n)){n.subtreeNodeCount=1,n.visibleSubtreeCount=1;return}let i=G(e,t);if(r){let t=e.instrumentation;t==null?rh(e.snapshot.nodes,i):U(t,`store.recomputeNodeCounts.rebuildChildAggregates`,()=>rh(e.snapshot.nodes,i))}let a=1+i.totalChildSubtreeNodeCount,o=i.totalChildVisibleSubtreeCount;if(n.subtreeNodeCount=a,H(n,2)){n.visibleSubtreeCount=o;return}n.visibleSubtreeCount=Ug(e,t)==null?lg(e,t,n)?1+o:1:o}function D_(e,t,n){let r=W(e,t);return r.length===0?n:`${r}${n}`}function O_(e){return e!=null&&!H(e,4)}function k_(e,t){let n=e.snapshot.nodes[t];return!O_(n)||!V(n)||H(n,2)?null:n}function A_(e){let t=0;for(let[n,r]of e.pathCacheByNodeId)r.version===e.pathCacheVersion&&O_(e.snapshot.nodes[n])&&(t+=1);return t}function j_(e){return Math.max(0,e.valueById.length-1)}function M_(e){return{activeNodeCount:e.activeNodeCount,cachedPathEntryCount:A_(e),loadInfoEntryCount:e.directoryLoadInfoById.size,segmentCount:j_(e.snapshot.segmentTable),totalNodeSlotCount:Math.max(0,e.snapshot.nodes.length-1)}}function N_(e,t,n,r){return{activeNodeCountAfter:r.activeNodeCount,activeNodeCountBefore:n.activeNodeCount,cachedPathEntryCountAfter:r.cachedPathEntryCount,cachedPathEntryCountBefore:n.cachedPathEntryCount,idsPreserved:t,loadInfoEntryCountAfter:r.loadInfoEntryCount,loadInfoEntryCountBefore:n.loadInfoEntryCount,mode:e,reclaimedCachedPathEntryCount:n.cachedPathEntryCount-r.cachedPathEntryCount,reclaimedLoadInfoEntryCount:n.loadInfoEntryCount-r.loadInfoEntryCount,reclaimedNodeSlotCount:n.totalNodeSlotCount-r.totalNodeSlotCount,reclaimedSegmentCount:n.segmentCount-r.segmentCount,segmentCountAfter:r.segmentCount,segmentCountBefore:n.segmentCount,totalNodeSlotCountAfter:r.totalNodeSlotCount,totalNodeSlotCountBefore:n.totalNodeSlotCount}}function P_(e){let t=[],n=[];for(let n of e.collapsedDirectoryIds)k_(e,n)!=null&&t.push(W(e,n));for(let t of e.expandedDirectoryIds)k_(e,t)!=null&&n.push(W(e,t));return{collapsedPaths:t,expandedPaths:n}}function F_(e){let t=[];for(let[n,r]of e.directoryLoadInfoById)k_(e,n)!=null&&fg(e,n)!==`loaded`&&t.push({info:{activeAttemptId:null,errorMessage:r.errorMessage,nextAttemptId:r.nextAttemptId,state:r.state},path:W(e,n)});return t}function I_(e,t){e.collapsedDirectoryIds.clear(),e.hasCollapsedDirectoryOverrides=!1,e.expandedDirectoryIds.clear();for(let n of t.expandedPaths){let t=t_(e,n);t!=null&&ug(e,t,!0,K(e,t))}for(let n of t.collapsedPaths){let t=t_(e,n);t!=null&&ug(e,t,!1,K(e,t))}}function L_(e,t){e.directoryLoadInfoById.clear();for(let n of t){let t=t_(e,n.path);t!=null&&k_(e,t)!=null&&e.directoryLoadInfoById.set(t,{activeAttemptId:null,errorMessage:n.info.errorMessage,nextAttemptId:n.info.nextAttemptId,state:n.info.state})}}function R_(e){e.pathCacheVersion+=1,e.pathCacheByNodeId.clear(),e.pathCacheByNodeId.set(e.snapshot.rootId,{path:``,version:e.pathCacheVersion})}function z_(e){let t=e.snapshot.segmentTable,n=zh();for(let r of e.snapshot.nodes)if(O_(r)){if(H(r,2)){r.nameId=0;continue}r.nameId=Bh(n,Vh(t,r.nameId))}e.snapshot.segmentTable=n}function B_(e){for(let[t,n]of e.snapshot.directories){let r=e.snapshot.nodes[t];if(!O_(r)||!V(r)){e.snapshot.directories.delete(t);continue}let i=n.childIds.filter(n=>{let r=e.snapshot.nodes[n];return O_(r)&&r.parentId===t});n.childIds=i,n.childIdByNameId=new Map(i.map(t=>[K(e,t).nameId,t])),n.childPositionById=new Map(i.map((e,t)=>[e,t])),rh(e.snapshot.nodes,n)}}function V_(e){let t=e.snapshot.nodes.length-1;for(;t>e.snapshot.rootId;){let n=e.snapshot.nodes[t];if(O_(n))break;--t}e.snapshot.nodes.length=t+1}function H_(e){let t=P_(e),n=F_(e);U(e.instrumentation,`store.cleanup.stable.clearPathCaches`,()=>R_(e)),U(e.instrumentation,`store.cleanup.stable.rebuildSegmentTable`,()=>z_(e)),U(e.instrumentation,`store.cleanup.stable.rebuildDirectoryIndexes`,()=>B_(e)),U(e.instrumentation,`store.cleanup.stable.trimTrailingRemovedNodeSlots`,()=>V_(e)),U(e.instrumentation,`store.cleanup.stable.restoreExpansionOverrides`,()=>I_(e,t)),U(e.instrumentation,`store.cleanup.stable.restoreDirectoryLoadInfos`,()=>L_(e,n)),U(e.instrumentation,`store.cleanup.stable.recomputeCounts`,()=>$g(e,e.snapshot.rootId))}function U_(e){let t=P_(e),n=F_(e),r=U(e.instrumentation,`store.cleanup.aggressive.listPaths`,()=>Kg(e)),i=bh({...e.snapshot.options},e.instrumentation),a=U(e.instrumentation,`store.cleanup.aggressive.rebuildSnapshot`,()=>{let e=new ig(i);return e.appendPaths(r),e.finish()});e.snapshot=a,e.activeNodeCount=a.nodes.length-1,e.pathCacheByNodeId=new Map([[a.rootId,{path:``,version:0}]]),e.pathCacheVersion=0,U(e.instrumentation,`store.cleanup.aggressive.restoreExpansionOverrides`,()=>I_(e,t)),U(e.instrumentation,`store.cleanup.aggressive.restoreDirectoryLoadInfos`,()=>L_(e,n)),U(e.instrumentation,`store.cleanup.aggressive.recomputeCounts`,()=>$g(e,e.snapshot.rootId))}function W_(e){for(let t of e.directoryLoadInfoById.values())if(t.state===`loading`&&t.activeAttemptId!=null)return!0;return!1}function G_(e,t){let n=M_(e);t===`stable`?U(e.instrumentation,`store.cleanup.stable`,()=>H_(e)):U(e.instrumentation,`store.cleanup.aggressive`,()=>U_(e));let r=M_(e);return N_(t,t===`stable`,n,r)}var K_=64;function q_(e,t){let n=t+2;if(n<=e.length)return e;let r=e.length;for(;r<n;)r*=2;let i=new Int32Array(r);return i.fill(-1),i.set(e),i}function q(e){return K(e,e.snapshot.rootId).visibleSubtreeCount}function J_(e,t,n,r){let i=K(e,t.terminalNodeId),a=Math.max(1,i.visibleSubtreeCount);return Math.min(r-1,n+a-1)}function Y_(e,t,n,r){return{ancestorPaths:r,index:t.index,posInSet:t.posInSet,row:mv(e,t.cursor),setSize:t.setSize,subtreeEndIndex:J_(e,t.cursor,t.index,n)}}function X_(e,t,n,r,i,a){let o=G(e,t),{childIndex:s,childVisibleIndex:c,localVisibleIndex:l}=ah(e.snapshot.nodes,o,n),u=o.childIds[s];if(u==null)throw Error(`Visible index ${String(n)} is out of range`);return Z_(e,u,l,r+c,i+1,s,o.childIds.length,a)}function Z_(e,t,n,r,i,a,o,s){if(!V(K(e,t))){if(n===0)return{ancestors:s,cursor:{headNodeId:t,terminalNodeId:t,visibleDepth:i},index:r,posInSet:a,setSize:o};throw Error(`Visible index ${String(n)} is out of range for file`)}let c=cv(e,t,i);if(n===0)return{ancestors:s,cursor:c,index:r,posInSet:a,setSize:o};let l=K(e,c.terminalNodeId);if(!V(l)||!lg(e,c.terminalNodeId,l))throw Error(`Visible index ${String(n)} is out of range for collapsed directory`);return X_(e,c.terminalNodeId,n-1,r+1,c.visibleDepth,[...s,{cursor:c,index:r,posInSet:a,setSize:o}])}function Q_(e,t){let n=q(e);if(t<0||t>=n)return null;let r=X_(e,e.snapshot.rootId,t,0,-1,[]),i=r.ancestors.map(t=>W(e,t.cursor.terminalNodeId)),a=null;return{ancestorPaths:i,get ancestorRows(){if(a!=null)return a;let t=[],i=[];for(let a of r.ancestors){let r=Y_(e,a,n,[...i]);t.push(r),i.push(r.row.path)}return a=t,a},index:r.index,posInSet:r.posInSet,row:mv(e,r.cursor),setSize:r.setSize,subtreeEndIndex:J_(e,r.cursor,r.index,n)}}function $_(e,t,n){let r=e.instrumentation,i=q(e);if(i<=0||n<t)return[];let a=Math.max(0,Math.min(t,i-1)),o=Math.max(a,Math.min(n,i-1));if(r==null){if(a===0)return pv(e,o+1);let t=[],n=av(e,a);for(let r=a;r<=o&&n!=null;r++){let r=mv(e,n);t.push(r),n=uv(e,n)}return t}let s=[],c=0,l=0,u=U(r,`store.getVisibleSlice.selectFirstRow`,()=>av(e,a));for(let t=a;t<=o&&u!=null;t++){let t=U(r,`store.getVisibleSlice.materializeRow`,()=>mv(e,u));s.push(t),t.isFlattened&&(c++,l+=t.flattenedSegments?.length??0),u=U(r,`store.getVisibleSlice.advanceCursor`,()=>uv(e,u))}return Sh(r,`workload.visibleRowsRead`,s.length),Sh(r,`workload.flattenedRowsRead`,c),Sh(r,`workload.flattenedSegmentsRead`,l),s}function ev(e,t=q(e)){let n=e.instrumentation;return n==null?fv(e,t):U(n,`store.getVisibleTreeProjection`,()=>fv(e,t))}function tv(e){return dv(ev(e))}function nv(e,t){let n=t_(e,t);if(n==null||n===e.snapshot.rootId||V(K(e,n))&&Wg(e,n)!==n)return null;let r=0,i=n,{nodes:a,rootId:o}=e.snapshot;for(;i!==o;){let t=K(e,i).parentId,n=G(e,t),s=eh(n).get(i);if(s==null)throw Error(`Child ${String(i)} was not found in its parent index`);if(r+=oh(a,n,s),t!==o){let n=K(e,t),a=Ug(e,t);if(!lg(e,t,n)&&a!==i)return null;Wg(e,t)===t&&(r+=1)}i=t}return r}function rv(e,t){let n=t_(e,t);if(n==null)throw Error(`Path does not exist: "${t}"`);let r=K(e,n);if(!V(r))throw Error(`Path is not a directory: "${t}"`);return lg(e,n,r)?null:(ug(e,n,!0,r),Qg(e,n),Cg({affectedAncestorIds:e_(e,n),affectedNodeIds:[n],path:t,projectionChanged:!0}))}function iv(e,t){let n=t_(e,t);if(n==null)throw Error(`Path does not exist: "${t}"`);let r=K(e,n);if(!V(r))throw Error(`Path is not a directory: "${t}"`);return lg(e,n,r)?(ug(e,n,!1,r),Qg(e,n),wg({affectedAncestorIds:e_(e,n),affectedNodeIds:[n],path:t,projectionChanged:!0})):null}function av(e,t){return t<0||t>=q(e)?null:ov(e,e.snapshot.rootId,t,-1)}function ov(e,t,n,r){let i=G(e,t),a=e.instrumentation,{childIndex:o,localVisibleIndex:s}=a==null?ah(e.snapshot.nodes,i,n):U(a,`store.getVisibleSlice.selectChildIndex`,()=>ah(e.snapshot.nodes,i,n)),c=i.childIds[o];if(c!=null)return sv(e,c,s,r+1);throw Error(`Visible index ${String(n)} is out of range`)}function sv(e,t,n,r){if(!V(K(e,t))){if(n===0)return{headNodeId:t,terminalNodeId:t,visibleDepth:r};throw Error(`Visible index ${String(n)} is out of range for file`)}let i=cv(e,t,r);if(n===0)return i;let a=K(e,i.terminalNodeId);if(!V(a)||!lg(e,i.terminalNodeId,a))throw Error(`Visible index ${String(n)} is out of range for collapsed directory`);return ov(e,i.terminalNodeId,n-1,i.visibleDepth)}function cv(e,t,n){return V(K(e,t))?e.instrumentation==null?{headNodeId:t,terminalNodeId:Wg(e,t),visibleDepth:n}:{headNodeId:t,terminalNodeId:U(e.instrumentation,`store.getVisibleSlice.flatten.resolveTerminalDirectory`,()=>Wg(e,t)),visibleDepth:n}:{headNodeId:t,terminalNodeId:t,visibleDepth:n}}function lv(e,t){let n=K(e,t);if(!V(n))return!0;let r=n.parentId;return r===e.snapshot.rootId||Ug(e,r)!==t}function uv(e,t){let n=K(e,t.terminalNodeId);if(V(n)){let r=G(e,t.terminalNodeId);if(lg(e,t.terminalNodeId,n)&&r.childIds.length>0){let n=r.childIds[0];return n==null?null:sv(e,n,0,t.visibleDepth+1)}}let r=t.terminalNodeId,i=t.visibleDepth;for(;;){let t=K(e,r);if(r===e.snapshot.rootId)return null;let n=t.parentId,a=G(e,n),o=eh(a).get(r)??-1;if(o<0)throw Error(`Child ${String(r)} was not found in its parent index`);let s=a.childIds[o+1]??null;if(s!=null)return sv(e,s,0,i);lv(e,r)&&i--,r=n}}function dv(e){let t=e.paths.length,n=Array(t);for(let r=0;r<t;r+=1){let t=e.getParentIndex(r);n[r]={index:r,parentPath:t>=0?e.paths[t]??null:null,path:e.paths[r]??``,posInSet:e.posInSetByIndex[r]??0,setSize:e.setSizeByIndex[r]??0}}return{getParentIndex:e.getParentIndex,rows:n,get visibleIndexByPath(){return e.visibleIndexByPath}}}function fv(e,t){let n=Array(t),r=new Int32Array(t),i=new Int32Array(t),a=new Int32Array(t),o=new Int32Array(K_);o.fill(-1);let s=0,{nodes:c,directories:l,segmentTable:u}=e.snapshot,d=[[l.get(e.snapshot.rootId),0,-1,``]],f=e.snapshot.options.flattenEmptyDirectories,p=e.pathCacheByNodeId,m=e.pathCacheVersion,h=u.valueById;for(;d.length>0&&s<t;){let t=d[d.length-1],u=t[0];if(t[1]>=u.childIds.length){d.pop();continue}let g=t[1],_=u.childIds[t[1]++],v=c[_],y=t[2]+1,b=t[3];o=q_(o,y);let x,S=_;if(V(v))S=f?Wg(e,_):_,x=S===_?`${b}${h[v.nameId]}/`:W(e,S);else{let e=p.get(_);x=e!=null&&e.version===m?e.path:`${b}${h[v.nameId]}`}r[s]=o[y],n[s]=x,i[s]=g,a[s]=u.childIds.length,o[y+1]=s,s+=1;let C=c[S];C!=null&&V(C)&&lg(e,S,C)&&d.push([l.get(S),0,y,x])}s<t&&(n.length=s);let g=r.subarray(0,s),_=i.subarray(0,s),v=a.subarray(0,s),y=null;return{getParentIndex(e){return e<0||e>=s?-1:g[e]??-1},paths:n,posInSetByIndex:_,setSizeByIndex:v,get visibleIndexByPath(){if(y==null){y=new Map;for(let e=0;e<s;e+=1)y.set(n[e]??``,e)}return y}}}function pv(e,t){let n=Array(t),r=0,{nodes:i,directories:a,segmentTable:o}=e.snapshot,s=[[a.get(e.snapshot.rootId),0,-1]],c=o.valueById,l=e.snapshot.options.flattenEmptyDirectories,u=e.pathCacheByNodeId,d=e.pathCacheVersion;for(;s.length>0&&r<t;){let t=s[s.length-1],o=t[0];if(t[1]>=o.childIds.length){s.pop();continue}let f=o.childIds[t[1]++],p=i[f],m=t[2]+1;if(!V(p)){let t=u.get(f);n[r++]={depth:m,flattenedSegments:void 0,hasChildren:!1,id:f,isExpanded:!1,isFlattened:!1,isLoading:!1,kind:`file`,loadState:void 0,name:c[p.nameId],path:t!=null&&t.version===d?t.path:W(e,f)};continue}let h=l?Wg(e,f):f,g={headNodeId:f,terminalNodeId:h,visibleDepth:m};n[r++]=mv(e,g);let _=i[h];_!=null&&V(_)&&lg(e,h,_)&&s.push([a.get(h),0,m])}return r<t&&(n.length=r),n}function mv(e,t){let n=K(e,t.terminalNodeId),r=V(n)?hv(e,t):null,i=W(e,t.terminalNodeId),a=Vh(e.snapshot.segmentTable,n.nameId),o=V(n)&&G(e,t.terminalNodeId).childIds.length>0,s=t.headNodeId!==t.terminalNodeId,c=e.instrumentation,l=s?c==null?Gg(e,t.headNodeId).map(n=>{let r=K(e,n);return{isTerminal:n===t.terminalNodeId,name:Vh(e.snapshot.segmentTable,r.nameId),nodeId:n,path:W(e,n)}}):U(c,`store.getVisibleSlice.flatten.collectSegments`,()=>Gg(e,t.headNodeId).map(n=>{let r=K(e,n);return{isTerminal:n===t.terminalNodeId,name:Vh(e.snapshot.segmentTable,r.nameId),nodeId:n,path:W(e,n)}})):void 0;return{depth:t.visibleDepth,flattenedSegments:l,hasChildren:o,id:t.terminalNodeId,isExpanded:V(n)&&lg(e,t.terminalNodeId,n),isFlattened:s,isLoading:r===`loading`,kind:V(n)?`directory`:`file`,loadState:r==null||r===`loaded`?void 0:r,name:a,path:i}}function hv(e,t){if(t.headNodeId===t.terminalNodeId)return fg(e,t.terminalNodeId);let n=Gg(e,t.headNodeId),r=!1,i=!1;for(let t of n){let n=fg(e,t);if(n===`loading`)return`loading`;if(n===`error`){i=!0;continue}n===`unloaded`&&(r=!0)}return i?`error`:r?`unloaded`:`loaded`}var gv=8;function _v(e){let{nodes:t,directories:n,rootId:r,options:i}=e,a=t.length,o=new Int32Array(a),s=new Int32Array(a),c=new Int32Array(a),l=new Int32Array(a),u=new Int32Array(a),d=new Int32Array(a),f=new Int32Array(a);for(let e=0;e<a;e+=1){let n=t[e];n!=null&&(o[e]=n.parentId,s[e]=n.nameId,c[e]=n.depthAndFlags,l[e]=n.subtreeNodeCount,u[e]=n.visibleSubtreeCount)}let p=0;for(let e of n.values())p+=e.childIds.length;let m=new Int32Array(p),h=0;for(let[e,t]of n){let n=t.childIds;d[e]=h,f[e]=n.length;for(let e=0;e<n.length;e+=1)m[h]=n[e],h+=1}return{nodeCount:a,rootId:r,flattenEmptyDirectories:i.flattenEmptyDirectories===!0,parentId:o,nameId:s,depthAndFlags:c,subtreeNodeCount:l,visibleSubtreeCount:u,childStart:d,childCount:f,childIdsFlat:m}}function vv(e){let{nodeCount:t,rootId:n,flattenEmptyDirectories:r,depthAndFlags:i,subtreeNodeCount:a,visibleSubtreeCount:o,childStart:s,childCount:c,childIdsFlat:l}=e;for(let e=t-1;e>=1;--e){if((i[e]&gv)===0)continue;let t=s[e],n=c[e],u=0,d=0;for(let e=0;e<n;e+=1){let n=l[t+e];u+=a[n],d+=o[n]}a[e]=1+u;let f;f=r&&n===1?(i[l[t]]&gv)===0?1+d:d:1+d,o[e]=f}let u=s[n],d=c[n],f=0,p=0;for(let e=0;e<d;e+=1){let t=l[u+e];f+=a[t],p+=o[t]}a[n]=1+f,o[n]=p}function yv(e){let{directories:t,nodes:n,options:r,rootId:i,presortedDirectoryNodeIds:a}=e.snapshot,o=r.flattenEmptyDirectories===!0,s=e=>{let r=n[e];if(r==null||!V(r))return;let i=t.get(e);if(i==null)throw Error(`Unknown directory child index for node ${String(e)}`);let a=i.childIds,s=a.length,c=0,l=0;for(let e=0;e<s;e++){let t=a[e];if(t==null)continue;let r=n[t];c+=r.subtreeNodeCount,l+=r.visibleSubtreeCount}i.totalChildSubtreeNodeCount=c,i.totalChildVisibleSubtreeCount=l,s>=128&&sh(n,i),r.subtreeNodeCount=1+c;let u;if(o&&s===1){let e=n[a[0]];u=e!=null&&V(e)?l:1+l}else u=1+l;r.visibleSubtreeCount=u};if(a!=null)for(let e=a.length-1;e>=0;e--)s(a[e]);else for(let e=n.length-1;e>=1;e--)s(e);let c=n[i],l=t.get(i);if(c==null||l==null)return;let u=l.childIds,d=0,f=0;for(let e=0;e<u.length;e++){let t=u[e];if(t==null)continue;let r=n[t];d+=r.subtreeNodeCount,f+=r.visibleSubtreeCount}l.totalChildSubtreeNodeCount=d,l.totalChildVisibleSubtreeCount=f,sh(n,l),c.subtreeNodeCount=1+d,c.visibleSubtreeCount=f}function bv(e){let{directories:t,nodes:n,rootId:r}=e.snapshot,i=_v(e.snapshot);vv(i);let a=i.subtreeNodeCount,o=i.visibleSubtreeCount;for(let e=0;e<n.length;e+=1){let t=n[e];t!=null&&(t.subtreeNodeCount=a[e],t.visibleSubtreeCount=o[e])}for(let[e,i]of t){let t=i.childIds,a=t.length,o=0,s=0;for(let e=0;e<a;e++){let r=t[e];if(r==null)continue;let i=n[r];o+=i.subtreeNodeCount,s+=i.visibleSubtreeCount}i.totalChildSubtreeNodeCount=o,i.totalChildVisibleSubtreeCount=s,(e===r||a>=128)&&sh(n,i)}}function xv(e){return e.initialExpansion===`open`&&(e.initialExpandedPaths==null||e.initialExpandedPaths.length===0)}var Sv=class e{#e;constructor(e={}){let t=xh(e),n=U(t,`store.builder.create`,()=>new ig(e));if(e.preparedInput!=null){let t=tg(e.preparedInput);t==null?n.appendPreparedPaths(eg(e.preparedInput),!1):n.appendPresortedPaths(t,ng(e.preparedInput))}else{let r=e.paths??[];e.presorted===!0?n.appendPaths(r):n.appendPreparedPaths(U(t,`store.preparePathEntries`,()=>rg(r,e)))}let r=U(t,`store.builder.finish`,()=>n.finish({skipSubtreeCountPass:!0})),i=U(t,`store.state.detectAllDirectoriesExpanded`,()=>(e.initialExpansion??`closed`)===`closed`&&n.didMatchAllInitialExpandedPaths());this.#e=U(t,`store.state.create`,()=>ag(r,i?`open`:e.initialExpansion??`closed`,t)),i&&(this.#e.collapseNewDirectoriesByDefault=!0);let a=i?this.#e.snapshot.directories.size-1:U(t,`store.state.initializeExpandedPaths`,()=>this.initializeExpandedPaths(e.initialExpandedPaths));i||xv(e)||(e.initialExpansion??`closed`)===`closed`&&a===this.#e.snapshot.directories.size-1||(e.initialExpandedPaths?.length??0)>0&&U(t,`store.state.checkAllDirectoriesExpanded`,()=>this.hasAllDirectoriesExpanded())?e.useSoaCountSweep===!0?U(t,`store.state.initializeOpenVisibleCountsViaSoa`,()=>bv(this.#e)):U(t,`store.state.initializeOpenVisibleCounts`,()=>yv(this.#e)):U(t,`store.state.recomputeCounts`,()=>$g(this.#e,this.#e.snapshot.rootId))}static preparePaths(e,t={}){return Zh(e,t)}static prepareInput(e,t={}){return Qh(e,t)}static preparePresortedInput(e){return $h(e)}list(e){return U(this.#e.instrumentation,`store.list`,()=>Kg(this.#e,e))}add(e){U(this.#e.instrumentation,`store.add`,()=>{let t=q(this.#e);Ng(this.#e,jg(this.#e,t,qg(this.#e,e)))})}remove(e,t={}){U(this.#e.instrumentation,`store.remove`,()=>{let n=q(this.#e);Ng(this.#e,jg(this.#e,n,Jg(this.#e,e,t)))})}move(e,t,n={}){U(this.#e.instrumentation,`store.move`,()=>{let r=q(this.#e),i=Yg(this.#e,e,t,n);i!=null&&Ng(this.#e,jg(this.#e,r,i))})}batch(e){Mg(this.#e,()=>{if(typeof e==`function`){e(this);return}for(let t of e)switch(t.type){case`add`:this.add(t.path);break;case`remove`:this.remove(t.path,{recursive:t.recursive});break;case`move`:this.move(t.from,t.to,{collision:t.collision});break}})}getVisibleCount(){return U(this.#e.instrumentation,`store.getVisibleCount`,()=>q(this.#e))}getVisibleSlice(e,t){return U(this.#e.instrumentation,`store.getVisibleSlice`,()=>$_(this.#e,e,t))}getVisibleRowContext(e){return U(this.#e.instrumentation,`store.getVisibleRowContext`,()=>Q_(this.#e,e))}getVisibleTreeProjection(){return tv(this.#e)}getVisibleTreeProjectionData(e){return ev(this.#e,e)}getVisibleIndex(e){return U(this.#e.instrumentation,`store.getVisibleIndex`,()=>nv(this.#e,e))}getPathInfo(e){return U(this.#e.instrumentation,`store.getPathInfo`,()=>{let t=t_(this.#e,e);if(t==null)return null;let n=K(this.#e,t);return{depth:mh(n),kind:V(n)?`directory`:`file`,path:W(this.#e,t)}})}isExpanded(e){return U(this.#e.instrumentation,`store.isExpanded`,()=>{let t=this.requireDirectoryNodeId(e),n=K(this.#e,t);return lg(this.#e,t,n)})}expand(e){U(this.#e.instrumentation,`store.expand`,()=>{let t=q(this.#e),n=rv(this.#e,e);n!=null&&Ng(this.#e,jg(this.#e,t,n))})}collapse(e){U(this.#e.instrumentation,`store.collapse`,()=>{let t=q(this.#e),n=iv(this.#e,e);n!=null&&Ng(this.#e,jg(this.#e,t,n))})}on(e,t){return yg(this.#e,e,t)}getDirectoryLoadState(e){let t=this.requireDirectoryNodeId(e);return fg(this.#e,t)}markDirectoryUnloaded(e){U(this.#e.instrumentation,`store.markDirectoryUnloaded`,()=>{let t=this.requireDirectoryNodeId(e);if(G(this.#e,t).childIds.length>0)throw Error(`Cannot mark a directory with known children as unloaded: "${e}"`);let n=q(this.#e);mg(this.#e,t),Ng(this.#e,jg(this.#e,n,Tg({affectedAncestorIds:e_(this.#e,t),affectedNodeIds:[t],path:e,projectionChanged:this.isDirectoryProjectionVisible(t)})))})}beginChildLoad(e){return U(this.#e.instrumentation,`store.beginChildLoad`,()=>{let t=this.requireDirectoryNodeId(e),n=q(this.#e),r=pg(this.#e,t);return Ng(this.#e,jg(this.#e,n,Eg({affectedAncestorIds:e_(this.#e,t),affectedNodeIds:[t],attemptId:r.attemptId,path:e,projectionChanged:this.isDirectoryProjectionVisible(t),reused:r.reused}))),r})}applyChildPatch(e,t){return U(this.#e.instrumentation,`store.applyChildPatch`,()=>{let n=this.resolveActiveDirectoryNodeId(e.nodeId);if(n==null||fg(this.#e,n)!==`loading`||!gg(this.#e,n,e.attemptId))return!1;let r=W(this.#e,n);this.validateChildPatch(r,t);let i=q(this.#e),a=[];for(let e of t.operations){Cv(r,e);let t=q(this.#e);switch(e.type){case`add`:a.push(jg(this.#e,t,qg(this.#e,e.path)));break;case`remove`:a.push(jg(this.#e,t,Jg(this.#e,e.path,{recursive:e.recursive})));break;case`move`:{let n=Yg(this.#e,e.from,e.to,{collision:e.collision});n!=null&&a.push(jg(this.#e,t,n));break}}}let o=a.some(e=>e.projectionChanged)||this.isDirectoryProjectionVisible(n);return Ng(this.#e,jg(this.#e,i,Dg({affectedAncestorIds:e_(this.#e,n),affectedNodeIds:[n],attemptId:e.attemptId,childEvents:a,path:W(this.#e,n),projectionChanged:o}))),!0})}completeChildLoad(e){return U(this.#e.instrumentation,`store.completeChildLoad`,()=>{let t=this.resolveActiveDirectoryNodeId(e.nodeId);if(t==null)return!1;let n=q(this.#e),r=hg(this.#e,t,e.attemptId);return Ng(this.#e,jg(this.#e,n,Og({affectedAncestorIds:e_(this.#e,t),affectedNodeIds:[t],attemptId:e.attemptId,path:W(this.#e,t),projectionChanged:this.isDirectoryProjectionVisible(t),stale:!r}))),r})}failChildLoad(e,t){return U(this.#e.instrumentation,`store.failChildLoad`,()=>{let n=this.resolveActiveDirectoryNodeId(e.nodeId);if(n==null)return!1;let r=q(this.#e),i=_g(this.#e,n,e.attemptId,t);return Ng(this.#e,jg(this.#e,r,kg({affectedAncestorIds:e_(this.#e,n),affectedNodeIds:[n],attemptId:e.attemptId,errorMessage:t,path:W(this.#e,n),projectionChanged:this.isDirectoryProjectionVisible(n),stale:!i}))),i})}cleanup(e={}){return U(this.#e.instrumentation,`store.cleanup`,()=>{if(this.#e.transactionStack.length>0)throw Error(`Cleanup cannot run during an open batch or transaction.`);if(W_(this.#e))throw Error(`Cleanup cannot run while directory loads are active.`);let t=q(this.#e),n=G_(this.#e,e.mode??`stable`);return Ng(this.#e,jg(this.#e,t,Ag({...n,affectedAncestorIds:[],affectedNodeIds:[],projectionChanged:n.idsPreserved===!1}))),n})}getNodeCount(){return this.#e.activeNodeCount}initializeExpandedPaths(e){if(e==null||e.length===0)return 0;let t=0,n=[],r=[],i=0,a=null,o=this.#e.snapshot.segmentTable,s=o.valueById,c=this.#e.snapshot.nodes,l=new Map;for(let u of e){a!=null&&u<a&&(a=null,i=0,n.length=0,r.length=0);let e=u.length>0&&u.charCodeAt(u.length-1)===47?u.length-1:u.length;if(e===0){a=u,i=e,n.length=0,r.length=0;continue}let d=0,f=0;if(a!=null){let t=Math.min(e,i),n=!0;for(let e=0;e<t;e+=1){let t=u.charCodeAt(e);if(t!==a.charCodeAt(e)){n=!1;break}t===47&&(d+=1,f=e+1)}n&&(t===i&&e>t&&u.charCodeAt(t)===47?(d+=1,f=t+1):t===e&&i>t&&a.charCodeAt(t)===47&&(d+=1,f=e+1)),d=Math.min(d,r.length)}let p=d===0?this.#e.snapshot.rootId:r[d-1]??this.#e.snapshot.rootId,m=d,h=!0,g=f;for(;g<=e;){let t=u.indexOf(`/`,g),i=t===-1||t>e?e:t,a=u.slice(g,i),f=G(this.#e,p).childIds,_=m===d?n[m]??0:0,v=_,y,b=l.get(a)??Th(a);l.set(a,b);let x=(e,t)=>{for(v=e;v<t;v+=1){let e=f[v],t=c[e],n=s[t.nameId];if(n===a)return y=e,!0;let r=Dh(Ph(o,t.nameId),b);if(r>0||r===0&&n>a)return!1}return!1};if(!x(_,f.length)&&_>0&&x(0,_),y===void 0){h=!1;break}if(!V(K(this.#e,y))){h=!1;break}if(n[m]=v,r[m]=y,p=y,m+=1,i===e)break;g=i+1}if(a=u,i=e,n.length=m,r.length=m,!h){a=null,i=0,n.length=0,r.length=0;continue}for(let e=d;e<m;e+=1){let n=r[e];if(n==null)continue;let i=K(this.#e,n);lg(this.#e,n,i)||(ug(this.#e,n,!0,i),t+=1)}}return t}hasAllDirectoriesExpanded(){for(let e of this.#e.snapshot.directories.keys()){if(e===this.#e.snapshot.rootId)continue;let t=K(this.#e,e);if(!lg(this.#e,e,t))return!1}return!0}requireDirectoryNodeId(e){let t=t_(this.#e,e);if(t==null)throw Error(`Path does not exist: "${e}"`);if(!V(K(this.#e,t)))throw Error(`Path is not a directory: "${e}"`);return t}resolveActiveDirectoryNodeId(e){try{if(!V(K(this.#e,e)))throw Error(`Node is not a directory: ${String(e)}`);return e}catch{return null}}isDirectoryProjectionVisible(e){let t=e;for(;t!==this.#e.snapshot.rootId;){let e=K(this.#e,t).parentId;if(e!==this.#e.snapshot.rootId){let n=K(this.#e,e),r=Ug(this.#e,e);if(!lg(this.#e,e,n)&&r!==t)return!1}t=e}return!0}validateChildPatch(t,n){new e({paths:this.list(t),presorted:!0,sort:this.#e.snapshot.options.sort}).batch(n.operations)}};function Cv(e,t){switch(t.type){case`add`:case`remove`:if(!t.path.startsWith(e)||t.path===e)throw Error(`Child patch operation must stay within ${e}: "${t.path}"`);break;case`move`:if(!t.from.startsWith(e)||!t.to.startsWith(e)||t.from===e||t.to===e)throw Error(`Child patch move must stay within ${e}: "${t.from}" -> "${t.to}"`)}}function wv(e,t={}){return Sv.prepareInput(e,t)}var Tv={compact:{itemHeight:24,factor:.8},default:{itemHeight:30,factor:1},relaxed:{itemHeight:36,factor:1.2}};function Ev(e,t){if(typeof e==`number`)return{itemHeight:t??Tv.default.itemHeight,factor:e};let n=Tv[e??`default`];return{itemHeight:t??n.itemHeight,factor:n.factor}}var Dv=Tv.default.itemHeight,Ov=`@layer base {
6301
6303
  :host {
6302
6304
  --trees-accent: var(--trees-accent-override, #009fff);
6303
6305
  --trees-fg: var(--trees-fg-override, var(--trees-theme-sidebar-fg, light-dark(#6c6c71, #adadb1)));
@@ -7389,13 +7391,13 @@ slicc-dock-tree .dock-tree__preview--active {
7389
7391
  }
7390
7392
 
7391
7393
  @layer theme, unsafe;
7392
- `,__=`@layer base, unsafe;`;function v_(e){return`${__}
7394
+ `,kv=`@layer base, unsafe;`;function Av(e){return`${kv}
7393
7395
  @layer base {
7394
7396
  ${e}
7395
- }`}function y_(e){return`${__}
7397
+ }`}function jv(e){return`${kv}
7396
7398
  @layer unsafe {
7397
7399
  ${e}
7398
- }`}var b_=new WeakMap;function x_(e){let t=b_.get(e);if(t!=null)return t;let n=document.createElement(`div`);n.setAttribute(Cp,`true`);let r=document.createElement(`div`);r.style.position=`relative`,r.style.height=`200%`,n.appendChild(r),e.appendChild(n);let i=Math.max(n.offsetWidth-n.clientWidth,0);return n.remove(),b_.set(e,i),i}function S_(e,t){if(!e.isConnected)return;let n=x_(t);if(n==null)return;let r=t.querySelector(`style[${wp}]`),i=r instanceof HTMLStyleElement?r:document.createElement(`style`);r instanceof HTMLStyleElement||(i.setAttribute(wp,``),t.appendChild(i)),i.textContent=`:host { ${Tp}: ${n}px; }`}var C_;function w_(e){if(typeof CSSStyleSheet<`u`&&typeof CSSStyleSheet.prototype.replaceSync==`function`&&`adoptedStyleSheets`in e){C_??(C_=new CSSStyleSheet,C_.replaceSync(v_(g_)));let t=!1;try{e.adoptedStyleSheets=[C_],t=!0}catch{}if(t){e.querySelector(`style[${xp}]`)?.remove();return}}if(e.querySelector(`style[data-file-tree-style]`)==null){let t=document.createElement(`style`);t.setAttribute(xp,``),t.textContent=v_(g_),e.prepend(t)}}function T_(e,t){E_(e,t),w_(t),S_(e,t)}function E_(e,t){let n=e.querySelector(`template[shadowrootmode="open"], template[data-file-tree-shadowrootmode="open"]`);n instanceof HTMLTemplateElement&&(t.childNodes.length>0||(t.appendChild(n.content.cloneNode(!0)),n.hasAttribute(`shadowrootmode`)&&n.remove()))}if(typeof HTMLElement<`u`&&customElements.get(`file-tree-container`)==null){class e extends HTMLElement{constructor(){super()}connectedCallback(){let e=this.shadowRoot??this.attachShadow({mode:`open`});T_(this,e)}}if(customElements.define(bp,e),typeof document<`u`)for(let e of Array.from(document.querySelectorAll(bp)))e instanceof HTMLElement&&T_(e,e.shadowRoot??e.attachShadow({mode:`open`}))}var D_=e=>e.startsWith(`f::`)?e.slice(3):e;function O_(e){let t=e.lastIndexOf(`/`);return t<0?{parentPath:``,baseName:e}:{parentPath:e.slice(0,t),baseName:e.slice(t+1)}}function k_(e,t){return e===``?t:`${e}/${t}`}function A_({files:e,path:t,isFolder:n,nextBasename:r}){let i=D_(t),a=r.trim();if(a.length===0)return{error:`Name cannot be empty.`};if(a.includes(`/`))return{error:`Name cannot include "/".`};let{parentPath:o,baseName:s}=O_(i);if(a===s)return{nextFiles:e,sourcePath:i,destinationPath:i,isFolder:n};let c=k_(o,a),l=Array(e.length),u=new Set;if(!n){let t=`${c}/`,r=!1;for(let n=0;n<e.length;n++){let a=e[n];if(a!==i&&a.startsWith(t))return{error:`"${c}" already exists.`};let o=a===i?c:a;if(u.has(o))return{error:`"${c}" already exists.`};u.add(o),l[n]=o,a===i&&(r=!0)}return r?{nextFiles:l,sourcePath:i,destinationPath:c,isFolder:n}:{error:`Could not find the selected file to rename.`}}let d=`${i}/`,f=`${c}/`,p=0;for(let t=0;t<e.length;t++){let n=e[t],r=n===i||n.startsWith(d);if(!r&&(n===c||n.startsWith(f)))return{error:`"${c}" already exists.`};let a=r?`${c}${n.slice(i.length)}`:n;if(u.has(a))return{error:`"${c}" already exists.`};u.add(a),l[t]=a,r&&p++}return p===0?{error:`Could not find the selected folder to rename.`}:{nextFiles:l,sourcePath:i,destinationPath:c,isFolder:n}}function j_(e){return e.endsWith(`/`)}function M_(e){let t=e.endsWith(`/`)?e.slice(0,-1):e,n=t.lastIndexOf(`/`),r=n<0?t:t.slice(n+1);return e.endsWith(`/`)?`${r}/`:r}function N_(e){let t=[],n=new Set;for(let r of e)n.has(r)||(n.add(r),t.push(r));let r=new Set;for(let e of t.toSorted((e,t)=>e.length===t.length?e.localeCompare(t):e.length-t.length)){let t=(e.endsWith(`/`)?e.slice(0,-1):e).split(`/`),n=!1;for(let e=0;e<t.length-1;e+=1){let i=`${t.slice(0,e+1).join(`/`)}/`;if(r.has(i)){n=!0;break}}n||r.add(e)}return t.filter(e=>r.has(e))}function P_(e,t){return t.includes(e)?N_(t):[e]}function F_(e,t){return e===t?!0:e==null||t==null?!1:e.kind===t.kind&&e.directoryPath===t.directoryPath&&e.flattenedSegmentPath===t.flattenedSegmentPath&&e.hoveredPath===t.hoveredPath}function I_(e,t){return{draggedPaths:e,target:t}}function L_(e,t){if(t.kind!==`directory`||t.directoryPath==null)return!1;for(let n of e)if(j_(n)&&(t.directoryPath===n||t.directoryPath.startsWith(n)))return!0;return!1}function R_(e,t){return t.kind===`root`||t.directoryPath==null?M_(e):t.directoryPath}function z_(e,t){let n=e.map(e=>{let n=R_(e,t);return n===e?null:{from:e,to:n,type:`move`}}).filter(e=>e!=null);return n.length===0?null:{operations:n,result:{draggedPaths:e,operation:n.length===1?`move`:`batch`,target:t}}}function B_(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function V_(e,t,n){let{paths:r,preparedInput:i}=e;if(i==null){if(r==null)throw Error(`FileTree requires paths or preparedInput`);return{paths:r,preparedInput:void 0}}let a=i.paths;if(r==null)return{paths:a,preparedInput:i};if(!B_(u_.preparePaths(r,n==null?{}:{sort:n}),a))throw Error(`FileTree ${t} received paths and preparedInput for different path lists`);return{paths:a,preparedInput:i}}function H_(e){return e.operation===`add`||e.operation===`remove`||e.operation===`move`||e.operation===`batch`}function U_(e,t,n){if(e===t)return n;let r=t.endsWith(`/`)?t:`${t}/`;return e.startsWith(r)?`${n.endsWith(`/`)?n:`${n}/`}${e.slice(r.length)}`:e}function W_(e,t){if(e===t)return!0;let n=t.endsWith(`/`)?t:`${t}/`;return e.startsWith(n)}function G_(e,t,n=!1){if(e==null)return null;switch(t.operation){case`add`:case`expand`:case`collapse`:case`mark-directory-unloaded`:case`begin-child-load`:case`apply-child-patch`:case`complete-child-load`:case`fail-child-load`:case`cleanup`:return e;case`remove`:return W_(e,t.path)?n?e:null:e;case`move`:return U_(e,t.from,t.to);case`batch`:{let r=e;for(let e of t.events)if(r=G_(r,e,n),r==null)return null;return r}}}function K_(e){return{canonicalChanged:e.canonicalChanged,projectionChanged:e.projectionChanged,visibleCountDelta:e.visibleCountDelta}}function q_(e){switch(e.operation){case`add`:return{...K_(e),operation:`add`,path:e.path};case`remove`:return{...K_(e),operation:`remove`,path:e.path,recursive:e.recursive};case`move`:return{...K_(e),from:e.from,operation:`move`,to:e.to}}}function J_(e){return{...K_(e),events:e.events.filter(e=>e.operation===`add`||e.operation===`remove`||e.operation===`move`).map(e=>q_(e)),operation:`batch`}}function Y_(e){switch(e.operation){case`add`:case`remove`:case`move`:return q_(e);case`batch`:return J_(e);default:return null}}function X_(e,t){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}function Z_(e){let t=e.endsWith(`/`)?e.slice(0,-1):e;if(t.length===0)return[];let n=t.split(`/`);return n.slice(0,-1).map((e,t)=>`${n.slice(0,t+1).join(`/`)}/`)}function Q_(e){return Z_(e).at(-1)??null}function $_(e,t){return t==null?e:e.startsWith(t)?e.slice(t.length):e}function ev(e){return e.endsWith(`/`)}var tv=e=>e.toLowerCase();function nv(e){let t=e.endsWith(`/`)?e.slice(0,-1):e,n=t.lastIndexOf(`/`);return n<0?t:t.slice(n+1)}function rv(e){return e.endsWith(`/`)?e.slice(0,-1):e}function iv(e,t){return t&&!e.endsWith(`/`)?`${e}/`:e}var av=e=>{let t=e.trim();return t.length===0?``:(t.includes(`\\`)?t.replaceAll(`\\`,`/`):t).toLowerCase()},ov=Symbol(`FILE_TREE_RENAME_VIEW`),sv=512,cv=512;function lv(e){return e===`top`||e===`center`?e:`nearest`}function uv(e,t,n){if(e===0)return-1;if(n!=null){let e=t(n);if(e!=null)return e;let r=Z_(n);for(let e=r.length-1;e>=0;--e){let n=r[e];if(n==null)continue;let i=t(n);if(i!=null)return i}}return 0}function dv(e,t,n){if(e.paths.length===0)return{focusedIndex:-1,getParentIndex:e.getParentIndex,paths:e.paths,posInSetByIndex:e.posInSetByIndex,setSizeByIndex:e.setSizeByIndex};if(t==null)return{focusedIndex:0,getParentIndex:e.getParentIndex,paths:e.paths,posInSetByIndex:e.posInSetByIndex,setSizeByIndex:e.setSizeByIndex};let r=n??(t=>e.visibleIndexByPath.get(t)??null);return{focusedIndex:uv(e.paths.length,r,t),getParentIndex:e.getParentIndex,paths:e.paths,posInSetByIndex:e.posInSetByIndex,setSizeByIndex:e.setSizeByIndex}}var fv=class e{static{Object.defineProperty(e.prototype,ov,{configurable:!0,value(){return{cancel:()=>{this.#q()},commit:()=>{this.#J()},getPath:()=>this.#T,getValue:()=>this.#E,isActive:()=>this.#T!=null,setValue:e=>{this.#Y(e)}}},writable:!0})}#e;#t=new Set;#n=new Map;#r=null;#i=null;#a=new Map;#o=new Map;#s=-1;#c=null;#l=!1;#u=e=>-1;#d=new Map;#f=null;#p=null;#m=null;#h=null;#g=null;#_;#v;#y;#b=[];#x=new Int32Array;#S=new Int32Array;#C=void 0;#w=!1;#T=null;#E=``;#D=!1;#O=new Set;#k=[];#A;#j=null;#M=null;#N=null;#P=null;#F=null;#I=null;#L=null;#R=0;#z=null;#B=new Set;#V=0;#H;#U=0;#W=!1;#G=0;#K;constructor(e){let{dragAndDrop:t,fileTreeSearchMode:n,initialSearchQuery:r,initialSelectedPaths:i,renaming:a,onSearchChange:o,paths:s,preparedInput:c,...l}=e,u=V_({paths:s,preparedInput:c},`constructor`,l.sort);this.#e=l,t!=null&&t!==!1&&(this.#r=t===!0?{}:t),this.#w=a!=null&&a!==!1,a!=null&&a!==!1&&a!==!0&&(this.#C=a.canRename,this.#v=a.onError,this.#_=a.onRename),this.#y=o,this.#A=n??`hide-non-matches`,this.#H=this.#le(u.paths,u.preparedInput);let d=i?.map(e=>this.#Ne(e)).filter(e=>e!=null)??[],f=d.at(-1)??null;d.length>0&&(this.#B=new Set(d),this.#z=f,this.#V=1),this.#je(f,!1),r!=null&&this.#Te(r,!1),this.#K=this.#Re()}destroy(){this.#K?.(),this.#K=null,this.#n.clear(),this.#t.clear(),this.#d.clear(),this.#i=null,this.#he()}focusFirstItem(){this.#be().length>0&&this.#Fe(0)}focusLastItem(){this.#G<=0||(this.#Ie(),this.#Fe(this.#G-1))}focusNextItem(){this.#Ae(1)}focusParentItem(){if(this.#c==null)return;let e=Q_(this.#c);if(e==null)return;let t=this.#Z(e);t>=0&&this.#Fe(t)}focusPath(e){let t=this.#H.getPathInfo(e)?.path??null;if(t==null)return;this.#Ie();let n=this.#Z(t);n>=0&&this.#Fe(n)}scrollToPath(e,t){let n=this.#H.getPathInfo(e)?.path??null;if(n==null)return;this.#Ie();let r=this.#xe(n);r<0||this.#Me(r)!=null&&(t?.focus!==!1&&this.#Fe(r,!1),this.#L={id:this.#R+=1,offset:lv(t?.offset),visibleIndex:r},this.#De())}focusMountedPathFromInput(e){let t=this.#H.getPathInfo(e)?.path??null;if(t==null)return;let n=this.#Z(t);n>=0&&this.#Fe(n)}focusNearestPath(e){let t=this.resolveNearestVisiblePath(e);if(t==null)return null;let n=this.#Z(t);return n>=0?(this.#Fe(n),this.#be()[n]??t):null}focusPreviousItem(){this.#Ae(-1)}getFocusedIndex(){return this.#s}getFocusedItem(){return this.#c==null?null:this.#Q(this.#c)}getFocusedPath(){return this.#c}getScrollRequest(){return this.#L}clearScrollRequest(e){this.#L?.id===e&&(this.#L=null)}resolveNearestVisiblePath(e){let t=this.#be();if(this.#G===0)return null;if(e==null)return this.#c??t[0]??null;let n=this.#H.getPathInfo(e)?.path??e,r=this.#Z(n);return r>=0?t[r]??n:this.#X(n)??this.#c??t[0]??null}getSelectedPaths(){return[...this.#B]}getSelectionVersion(){return this.#V}getVisibleCount(){return this.#G}getVisibleRows(e,t){if(t<e||this.#G===0)return[];let n=Math.max(0,e),r=Math.min(this.#G-1,t);if(r<n)return[];let i=r-n+1;if(this.#F==null&&!this.#l&&r>=this.#b.length&&i<=cv){let e=[];for(let t=n;t<=r;t+=1){let n=this.#H.getVisibleRowContext(t);if(n==null)break;e.push(this.#ee(n))}return e}if(!this.#l&&r>=this.#b.length&&this.#Ie(),this.#F!=null){let e=Array.from({length:r-n+1},(e,t)=>this.#Se(n+t)),t=new Map,i=e[0]??-1,a=i;for(let n=1;n<=e.length;n+=1){let r=e[n];if(r!=null&&r===a+1){a=r;continue}if(i>=0&&this.#H.getVisibleSlice(i,a).forEach((e,n)=>{t.set(i+n,e)}),r==null){i=-1,a=-1;continue}i=r,a=r}return Array.from({length:r-n+1},(e,r)=>{let i=n+r,a=this.#Se(i),o=t.get(a),s=this.#b[a];if(o==null||s==null)throw Error(`Missing projection row for filtered visible index ${String(i)}`);return this.#$(o,i,a,{ancestorPaths:this.#re(a),path:s})})}return this.#H.getVisibleSlice(n,r).map((e,t)=>{let r=n+t,i=this.#b[r];if(i==null)throw Error(`Missing projection path for visible index ${String(r)}`);return this.#$(e,r,r,{ancestorPaths:this.#re(r),path:i})})}getStickyRowCandidates(e,t){if(this.#F!=null)return null;if(this.#G===0||e<=0||t<=0)return[];let n=[];for(let r=0;r<this.#G;r+=1){let i=e+r*t,a=Math.min(this.#G-1,Math.floor(i/t)),o=this.#te(a,r)??(a>0?this.#te(a-1,r):void 0);if(o==null)break;n.push({row:this.#ee(o),subtreeEndIndex:o.subtreeEndIndex})}return n}getItem(e){let t=this.#H.getPathInfo(e);return t==null?null:this.#Q(t.path,t)}resolveMountedDirectoryPathFromInput(e){let t=this.#H.getPathInfo(e);return t?.kind===`directory`?t.path:null}toggleMountedDirectoryFromInput(e){let t=this.resolveMountedDirectoryPathFromInput(e);t!=null&&this.#ze(t)}selectAllVisiblePaths(){this.#Ie();let e=[...this.#be()];this.#ae(e,this.#c??this.#z)}selectOnlyPath(e){let t=this.#Ne(e);t!=null&&this.#ae([t],t)}selectOnlyMountedPathFromInput(e){this.#ae([e],e)}selectPath(e){let t=this.#Ne(e);t==null||this.#B.has(t)||this.#ae([...this.#B,t])}deselectPath(e){let t=this.#Ne(e);t==null||!this.#B.has(t)||this.#ae([...this.#B].filter(e=>e!==t))}toggleFocusedSelection(){this.#c!=null&&this.togglePathSelectionFromInput(this.#c)}togglePathSelection(e){let t=this.#Ne(e);if(t!=null){if(this.#B.has(t)){this.deselectPath(t);return}this.selectPath(t)}}togglePathSelectionFromInput(e){let t=this.#Ne(e);if(t!=null){if(this.#B.has(t)){this.#ae([...this.#B].filter(e=>e!==t),t);return}this.#ae([...this.#B,t],t)}}selectPathRange(e,t){let n=this.#Ne(e);if(n==null)return;this.#Ie();let r=this.#z,i=r==null?-1:this.#Ce(r),a=this.#Ce(n);if(i===-1||a===-1){let e=t?[...this.#B,n]:[n];this.#ae(e,n);return}let[o,s]=i<=a?[i,a]:[a,i],c=this.#be().slice(o,s+1),l=t?[...this.#B,...c]:c;this.#ae(l,r)}extendSelectionFromFocused(e){if(this.#c==null)return;let t=this.#s;if(t===-1)return;let n=Math.min(this.#G-1,Math.max(0,t+e));if(n===t)return;!this.#l&&n>=this.#b.length&&this.#Ie();let r=this.#be(),i=r[t]??null,a=r[n]??null;if(i==null||a==null)return;let o=new Set(this.#B);o.has(i)&&o.has(a)?o.delete(i):o.add(a),this.#ae([...o],this.#z??i,!1),this.#Fe(n)}getDragAndDropConfig(){return this.#r}isDragAndDropEnabled(){return this.#r!=null}getDragSession(){return this.#i==null?null:{draggedPaths:[...this.#i.draggedPaths],primaryPath:this.#i.primaryPath,target:this.#i.target==null?null:{...this.#i.target}}}startDrag(e){if(this.#r==null)return!1;let t=this.#Ne(e);if(t==null||this.#M!=null&&this.#M.length>0)return!1;let n=this.getSelectedPaths(),r=P_(t,n);return this.#r.canDrag?.(r)!==!1&&(n.includes(t)||this.#ae([t],t,!1),this.#Pe(t),this.#i={draggedPaths:r,primaryPath:t,target:null},this.#De(),!0)}setDragTarget(e){let t=this.#i;if(t==null)return;let n=e;if(n!=null){let e=I_(t.draggedPaths,n);(L_(t.draggedPaths,n)||this.#r?.canDrop?.(e)===!1)&&(n=null)}F_(t.target,n)||(this.#i={...t,target:n},this.#De())}cancelDrag(){this.#i!=null&&(this.#i=null,this.#De())}completeDrag(){let e=this.#i;if(e==null)return!1;this.#i=null;let t=e.target==null?null:{...e.target};if(t==null)return this.#De(),!1;let n=I_(e.draggedPaths,t);if(L_(e.draggedPaths,t)||this.#r?.canDrop?.(n)===!1)return this.#De(),!1;let r=z_(e.draggedPaths,t);if(r==null)return this.#De(),!1;try{if(r.operations.length===1){let e=r.operations[0];if(e==null||e.type!==`move`)throw Error(`Expected a single move operation for one-item drops`);this.#H.move(e.from,e.to,{collision:e.collision})}else this.#ce(r.operations),this.#H.batch(r.operations)}catch(e){return this.#De(),this.#r?.onDropError?.(e instanceof Error?e.message:String(e),n),!1}return this.#r?.onDropComplete?.(r.result),!0}subscribe(e){return this.#t.add(e),e(),()=>{this.#t.delete(e)}}add(e){this.#H.add(e)}remove(e,t={}){this.#H.remove(e,t)}move(e,t,n={}){this.#H.move(e,t,n)}batch(e){this.#H.batch(e)}onMutation(e,t){let n=e,r=t,i=this.#n.get(n);return i??(i=new Set,this.#n.set(n,i)),i.add(r),()=>{let e=this.#n.get(n);e?.delete(r),e?.size===0&&this.#n.delete(n)}}setSearch(e){this.#Te(e,!0)}openSearch(e=``){this.#Te(e,!0)}closeSearch(){this.#Te(null,!0)}isSearchOpen(){return this.#M!==null}getSearchValue(){return this.#M??``}getSearchMatchingPaths(){return this.#k}focusNextSearchMatch(){this.#we(1)}focusPreviousSearchMatch(){this.#we(-1)}startRenaming(e=this.#c??``,t={}){if(!this.#w)return!1;let n=this.#H.getPathInfo(e);if(n==null)return!1;let r=n.path,i=ev(r),a=rv(r);if(this.#C?.({isFolder:i,path:a})===!1)return!1;for(let e of Z_(r))this.#H.isExpanded(e)||this.#H.expand(e);return this.#ae([r],r,!1),this.#M!=null&&(this.#Te(null,!1),this.#y?.(this.#M)),this.#Pe(r),this.#T=r,this.#E=nv(r),this.#D=t.removeIfCanceled??!1,this.#De(),!0}#q(){if(this.#T==null)return;let e=this.#T,t=this.#D;if(this.#T=null,this.#E=``,this.#D=!1,t){this.remove(e,ev(e)?{recursive:!0}:void 0);return}this.#Pe(e),this.#De()}#J(){let e=this.#T;if(e==null)return;if(this.#D&&this.#E.trim().length===0){this.#T=null,this.#E=``,this.#D=!1,this.remove(e,ev(e)?{recursive:!0}:void 0);return}let t=ev(e),n=A_({files:this.#H.list(),isFolder:t,nextBasename:this.#E,path:rv(e)});if(this.#T=null,this.#E=``,this.#D=!1,`error`in n){this.#Pe(e),this.#v?.(n.error),this.#De();return}if(n.sourcePath===n.destinationPath){this.#Pe(e),this.#De();return}this.#_?.({destinationPath:n.destinationPath,isFolder:n.isFolder,sourcePath:n.sourcePath}),this.move(iv(n.sourcePath,t),iv(n.destinationPath,t))}#Y(e){this.#T!=null&&this.#E!==e&&(this.#E=e,this.#De())}resetPaths(e,t={}){let n=!Array.isArray(e),r=n?void 0:e,i=n?e:t,a=this.#H.list().length,o=this.#G,s=V_({paths:r,preparedInput:i.preparedInput},`resetPaths`,this.#e.sort),c=this.#le(s.paths,s.preparedInput,i.initialExpandedPaths),l=this.#c,u=this.#T,d=this.getSelectedPaths(),f=this.#z;this.#K?.(),this.#H=c,this.#d.clear(),this.#he();let p=d.map(e=>c.getPathInfo(e)?.path??null).filter(e=>e!=null),m=!X_(this.#B,p);this.#B=new Set(p),m&&(this.#V+=1),this.#z=f==null?null:c.getPathInfo(f)?.path??null,this.#T=u==null?null:c.getPathInfo(u)?.path??null,this.#T??(this.#E=``,this.#D=!1),this.#je(l,l!=null||p.length>0||this.#z!=null),this.#K=this.#Re(),this.#De(),this.#Oe({canonicalChanged:!0,operation:`reset`,pathCountAfter:s.paths.length,pathCountBefore:a,projectionChanged:!0,usedPreparedInput:i.preparedInput!=null,visibleCountDelta:this.#G-o})}#X(e){this.#Ie();let t=Q_(e),n=$_(e,t),r=null,i=null;for(let e of this.#be()){if(Q_(e)!==t)continue;let a=$_(e,t);if(a<n){r=e;continue}if(a>n){i=e;break}}return r??i}#Z(e){let t=this.#Ce(e);if(t!==-1)return t;let n=Z_(e);for(let e=n.length-1;e>=0;--e){let t=n[e];if(t==null)continue;let r=this.#Ce(t);if(r!==-1)return r}return this.#be().length>0?0:-1}#Q(e,t){let n=this.#d.get(e);if(n!=null)return n;let r=t??this.#H.getPathInfo(e);if(r==null)return null;let i=r.kind===`directory`?this.#oe(r.path):this.#se(r.path);return this.#d.set(r.path,i),i}#$(e,t,n,r){return{ancestorPaths:r.ancestorPaths,depth:e.depth,flattenedSegments:e.flattenedSegments?.map(e=>({isTerminal:e.isTerminal,name:e.name,path:e.path})),hasChildren:e.hasChildren,index:t,isExpanded:e.isExpanded,isFlattened:e.isFlattened,isFocused:r.path===this.#c,isSelected:this.#B.has(r.path),kind:e.kind,level:e.depth,name:e.name,path:r.path,posInSet:r.posInSet??this.#x[n]??0,setSize:r.setSize??this.#S[n]??0}}#ee(e){return this.#$(e.row,e.index,e.index,{ancestorPaths:e.ancestorPaths,path:e.row.path,posInSet:e.posInSet,setSize:e.setSize})}#te(e,t){let n=this.#H.getVisibleRowContext(e);return n==null?void 0:n.ancestorRows[t]??(t===n.ancestorRows.length&&n.row.kind===`directory`&&n.row.isExpanded?n:void 0)}#ne(e){let t=this.#a.get(e);if(t!=null)return t;let n=this.#u(e),r=n<0?[]:[...this.#ne(n),n];return this.#a.set(e,r),r}#re(e){let t=this.#o.get(e);if(t!=null)return t;let n=this.#ne(e).map(e=>this.#b[e]??``).filter(e=>e!==``);return this.#o.set(e,n),n}#ie(e){this.#H.collapse(e)}#ae(e,t=this.#z,n=!0){let r=[...new Set(e)],i=!X_(this.#B,r),a=this.#z!==t;!i&&!a||(this.#B=new Set(r),this.#z=t,i&&(this.#V+=1),n&&this.#De())}#oe(e){return{collapse:()=>{this.#ie(e)},deselect:()=>{this.deselectPath(e)},expand:()=>{this.#ke(e)},focus:()=>{this.focusPath(e)},getPath:()=>e,isDirectory:()=>!0,isExpanded:()=>this.#H.isExpanded(e),isFocused:()=>this.#c===e,isSelected:()=>this.#B.has(e),select:()=>{this.selectPath(e)},toggleSelect:()=>{this.togglePathSelection(e)},toggle:()=>{this.#ze(e)}}}#se(e){return{deselect:()=>{this.deselectPath(e)},focus:()=>{this.focusPath(e)},getPath:()=>e,isDirectory:()=>!1,isFocused:()=>this.#c===e,isSelected:()=>this.#B.has(e),select:()=>{this.selectPath(e)},toggleSelect:()=>{this.togglePathSelection(e)}}}#ce(e){let t=this.#H.list();this.#le(t).batch(e)}#le(e,t,n){return new u_({...this.#e,paths:e,preparedInput:t??void 0,...n===void 0?{}:{initialExpandedPaths:n}})}#ue(){return this.#h??=this.#H.list(),this.#h}#de(){if(this.#m!=null)return this.#m;let e=new Set;for(let t of this.#ue()){e.add(t);for(let n of Z_(t))e.add(n)}return this.#m=[...e].sort(),this.#m}#fe(){return this.#g??=this.#ue().map(tv),this.#g}#pe(){return this.#f??=this.#de().filter(e=>e.endsWith(`/`)),this.#f}#me(){return this.#p??=this.#pe().map(tv),this.#p}#he(){this.#f=null,this.#p=null,this.#m=null,this.#h=null,this.#g=null}#ge(){return this.#pe().filter(e=>this.#H.isExpanded(e))}#_e(e){let t=new Set(this.#j??[]);if(e)for(let e of this.#B)for(let n of Z_(e))t.add(n);this.#ve(t)}#ve(e){this.#W=!0;try{for(let t of this.#pe()){let n=e.has(t),r=this.#H.isExpanded(t);n&&!r?this.#H.expand(t):!n&&r&&this.#H.collapse(t)}}finally{this.#W=!1}}#ye(){if(this.#M==null||this.#M.length===0){this.#k=[],this.#F=null,this.#I=null,this.#P=null,this.#G=this.#U;return}let e=this.#b;if(this.#k=e.filter(e=>this.#O.has(e)),this.#A!==`hide-non-matches`||this.#O.size===0){this.#F=null,this.#I=null,this.#P=null,this.#G=this.#U;return}let t=[],n=[],r=new Map;for(let[i,a]of e.entries())this.#N?.has(a)===!0&&(r.set(a,n.length),t.push(i),n.push(a));this.#F=t,this.#I=n,this.#P=r,this.#G=n.length}#be(){return this.#I??this.#b}#xe(e){return this.#I==null?this.#H.getVisibleIndex(e)??-1:this.#P?.get(e)??-1}#Se(e){return this.#F?.[e]??e}#Ce(e){return this.#P?.get(e)??this.#H.getVisibleIndex(e)??-1}#we(e){let t=this.#k;if(t.length===0)return;let n=this.#c,r=n==null?-1:t.indexOf(n),i=t[r<0?e>0?0:t.length-1:Math.min(t.length-1,Math.max(0,r+e))];i!=null&&this.focusPath(i)}#Te(e,t){let n=e==null?null:av(e),r=this.#M;if(r!==n){if(r==null&&n!=null&&(this.#j=this.#ge()),this.#M=n,n==null)this.#_e(!0),this.#j=null,this.#O.clear(),this.#N=null,this.#je(this.#c,!0);else if(n.length===0)this.#_e(!1),this.#O.clear(),this.#N=null,this.#je(this.#c,!0);else{let e=this.#Ee();this.#je(e,!0)}t&&(this.#y?.(this.#M),this.#De())}}#Ee(){if(this.#M==null||this.#M.length===0)return this.#O.clear(),this.#c;let e=this.#M,t=this.#ue(),n=this.#fe(),r=[],i=new Set,a=null;for(let o=0;o<t.length;o+=1){if(!n[o].includes(e))continue;let s=t[o];r.push(s),i.add(s),a??=s}let o=this.#pe(),s=this.#me();for(let t=0;t<o.length;t+=1){if(!s[t].includes(e))continue;let n=o[t];i.has(n)||(r.push(n),i.add(n),a??=n)}this.#O=i;let c=this.#A===`hide-non-matches`&&r.length>0?new Set:null;this.#N=c;let l=this.#A===`expand-matches`?new Set(this.#j??[]):new Set;for(let e of r){c?.add(e),e.endsWith(`/`)&&l.add(e);for(let t of Z_(e))l.add(t),c?.add(t)}return this.#ve(l),a??this.#c}#De(){for(let e of this.#t)e()}#Oe(e){this.#n.get(e.operation)?.forEach(t=>{t(e)}),this.#n.get(`*`)?.forEach(t=>{t(e)})}#ke(e){for(let t of Z_(e))this.#H.isExpanded(t)||this.#H.expand(t);this.#H.isExpanded(e)||this.#H.expand(e)}#Ae(e){let t=this.#G;if(t===0)return;let n=this.#s===-1?0:this.#s,r=Math.min(t-1,Math.max(0,n+e));(r!==n||this.#s===-1)&&(!this.#l&&this.#F==null&&r>=this.#b.length&&this.#Ie(),this.#Fe(r))}#je(e,t=!0){let n=this.#H.getVisibleCount();this.#U=n;let r=dv(this.#H.getVisibleTreeProjectionData(t?void 0:Math.min(n,sv)),e,t?e=>this.#H.getVisibleIndex(e):void 0);this.#a.clear(),this.#o.clear(),this.#l=r.paths.length>=n,this.#u=r.getParentIndex,this.#b=r.paths,this.#x=r.posInSetByIndex,this.#S=r.setSizeByIndex,this.#ye(),this.#s=e==null?this.#be().length>0?0:-1:this.#Z(e),this.#c=this.#s<0?null:this.#Me(this.#s)}#Me(e){return this.#be()[e]??(this.#F==null?this.#H.getVisibleRowContext(e)?.row.path??null:null)}#Ne(e){return this.#H.getPathInfo(e)?.path??null}#Pe(e){if(e==null)return;let t=this.#Z(e);t>=0&&this.#Fe(t,!1)}#Fe(e,t=!0){let n=this.#Me(e);n!=null&&(this.#s!==e||this.#c!==n)&&(this.#s=e,this.#c=n,t&&this.#De())}#Ie(){this.#l||this.#je(this.#c,!0)}#Le(e){let t=G_(this.#T,e);t==null&&this.#T!=null&&(this.#E=``),this.#T=t;let n=G_(this.#c,e,!0),r=[...this.#B].map(t=>G_(t,e)).filter(e=>e!=null).map(e=>this.#H.getPathInfo(e)?.path??null).filter(e=>e!=null),i=G_(this.#z,e),a=i==null?null:this.#H.getPathInfo(i)?.path??null,o=[...new Set(r)];return X_(this.#B,o)||(this.#B=new Set(o),this.#V+=1),this.#z=a,n}#Re(){return this.#H.on(`*`,e=>{if(this.#W)return;e.canonicalChanged&&(this.#d.clear(),this.#he()),this.#i!=null&&H_(e)&&(this.#i=null);let t=H_(e)?this.#Le(e):this.#c,n=this.#M!=null&&this.#M.length>0?this.#Ee():this.#M===``?this.#c:t,r=this.#M!=null||e.operation!==`expand`&&e.operation!==`collapse`;this.#je(n,r),this.#De();let i=Y_(e);i!=null&&this.#Oe(i)})}#ze(e){if(this.#H.isExpanded(e)){this.#ie(e);return}this.#ke(e)}},pv=e=>{if(e==null||e.length===0)return`0`;let t=`${e.length}`;for(let n of e)t+=`\0${n.path}\0${n.status}`;return t};function mv(e){let t=e.endsWith(`/`),n=``,r=-1;for(let t=0;t<=e.length;t+=1){if(e[t]!==`/`&&t!==e.length){r===-1&&(r=t);continue}r!==-1&&(n!==``&&(n+=`/`),n+=e.slice(r,t),r=-1)}return n===``?null:{isDirectory:t,path:n}}function hv(e){let t=e.endsWith(`/`)?e.slice(0,-1):e;if(t.length===0)return[];let n=[],r=0;for(;;){let e=t.indexOf(`/`,r);if(e===-1)break;n.push(t.slice(0,e+1)),r=e+1}return n}function gv(e,t){return t?`${e}/`:e}function _v(e,t=null){let n=pv(e==null?void 0:[...e]);if(n===`0`)return null;if(t?.signature===n)return t;let r=new Map,i=new Set,a=new Set,o=new Map;for(let t of e??[]){let e=yv(t);e!=null&&Sv({canonicalPath:e.canonicalPath,changeCountByDirectoryPath:o,directoriesWithChanges:i,ignoredDirectoryPaths:a,isDirectory:e.isDirectory,status:t.status,statusByPath:r})}return r.size===0?null:{changeCountByDirectoryPath:o,directoriesWithChanges:i,ignoredDirectoryPaths:a,signature:n,statusByPath:r}}function vv(e,t){let n=t?.remove??[],r=t?.set??[];if(n.length===0&&r.length===0)return e;let i=new Map(e?.statusByPath),a=new Set(e?.directoriesWithChanges),o=new Set(e?.ignoredDirectoryPaths),s=new Map(e?.changeCountByDirectoryPath),c=!1;for(let e of n){let t=bv(e);t!=null&&(c=xv({canonicalPath:t.canonicalPath,changeCountByDirectoryPath:s,directoriesWithChanges:a,ignoredDirectoryPaths:o,statusByPath:i})||c)}for(let e of r){let t=yv(e);t!=null&&(c=Sv({canonicalPath:t.canonicalPath,changeCountByDirectoryPath:s,directoriesWithChanges:a,ignoredDirectoryPaths:o,isDirectory:t.isDirectory,status:e.status,statusByPath:i})||c)}return c?i.size===0?null:{changeCountByDirectoryPath:s,directoriesWithChanges:a,ignoredDirectoryPaths:o,signature:Tv(i),statusByPath:i}:e}function yv(e){return bv(e.path)}function bv(e){let t=mv(e);if(t!=null)return{canonicalPath:gv(t.path,t.isDirectory),isDirectory:t.isDirectory}}function xv({canonicalPath:e,changeCountByDirectoryPath:t,directoriesWithChanges:n,ignoredDirectoryPaths:r,statusByPath:i}){let a=i.get(e);return a!=null&&(i.delete(e),a===`ignored`&&e.endsWith(`/`)&&r.delete(e),wv(t,n,e),!0)}function Sv({canonicalPath:e,changeCountByDirectoryPath:t,directoriesWithChanges:n,ignoredDirectoryPaths:r,isDirectory:i,status:a,statusByPath:o}){let s=o.get(e);return s!==a&&(s??Cv(t,n,e),o.set(e,a),a===`ignored`&&i?r.add(e):i&&r.delete(e),!0)}function Cv(e,t,n){for(let r of hv(n))e.set(r,(e.get(r)??0)+1),t.add(r)}function wv(e,t,n){for(let r of hv(n)){let n=(e.get(r)??0)-1;n>0?e.set(r,n):(e.delete(r),t.delete(r))}}function Tv(e){let t=`${e.size}`;for(let[n,r]of e)t+=`\0${n}\0${r}`;return t}var Y,Ev,Dv,Ov,kv,Av,jv,Mv,Nv,Pv,Fv={},Iv=[],Lv=Array.isArray,Rv=Iv.slice,zv=Object.assign;function Bv(e){e&&e.parentNode&&e.remove()}function Vv(e,t,n){var r,i,a,o={};for(a in t)a==`key`?r=t[a]:a==`ref`&&typeof e!=`function`?i=t[a]:o[a]=t[a];return arguments.length>2&&(o.children=arguments.length>3?Rv.call(arguments,2):n),Hv(e,o,r,i,null)}function Hv(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Ev,__i:-1,__u:0};return i==null&&Y.vnode!=null&&Y.vnode(a),a}function Uv(e){return e.children}function Wv(e,t){this.props=e,this.context=t,this.__g=0}function Gv(e,t){if(t==null)return e.__?Gv(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==`function`?Gv(e):null}function Kv(e){var t,n;if((e=e.__)!=null&&e.__c!=null){for(e.__e=null,t=0;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null){e.__e=n.__e;break}return Kv(e)}}function qv(e){(8&e.__g||!(e.__g|=8)||!Dv.push(e)||kv++)&&Ov==Y.debounceRendering||((Ov=Y.debounceRendering)||queueMicrotask)(Jv)}function Jv(){for(var e,t,n,r,i,a,o,s,c=1;Dv.length;)Dv.length>c&&Dv.sort(Av),e=Dv.shift(),c=Dv.length,8&e.__g&&(n=void 0,i=(r=(t=e).__v).__e,a=[],o=[],(s=t.__P)&&((n=zv({},r)).__v=r.__v+1,Y.vnode&&Y.vnode(n),ny(s,n,r,t.__n,s.namespaceURI,32&r.__u?[i]:null,a,i??Gv(r),!!(32&r.__u),o,s.ownerDocument),n.__v=r.__v,n.__.__k[n.__i]=n,iy(a,n,o),n.__e!=i&&Kv(n)));kv=0}function Yv(e,t,n,r,i,a,o,s,c,l,u,d){var f,p,m,h,g,_,v,y=r&&r.__k||Iv,b=t.length;for(c=Xv(n,t,y,c,b),f=0;f<b;f++)(m=n.__k[f])!=null&&(p=m.__i==-1?Fv:y[m.__i]||Fv,m.__i=f,_=ny(e,m,p,i,a,o,s,c,l,u,d),h=m.__e,m.ref&&p.ref!=m.ref&&(p.ref&&sy(p.ref,null,m),u.push(m.ref,m.__c||h,m)),g==null&&h!=null&&(g=h),(v=!!(4&m.__u))||p.__k===m.__k?c=Zv(m,c,e,v):typeof m.type==`function`&&_!==void 0?c=_:h&&(c=h.nextSibling),m.__u&=-7);return n.__e=g,c}function Xv(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(c=a+f,(o=e.__k[a]=typeof o==`string`||typeof o==`number`||typeof o==`bigint`||o.constructor==String?Hv(null,o,null,null,null):Lv(o)?Hv(Uv,{children:o},null,null,null):o.constructor==null&&o.__b>0?Hv(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=e,o.__b=e.__b+1,s=null,(l=o.__i=Qv(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=`function`&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=Gv(s)),cy(s,s));return r}function Zv(e,t,n,r){var i,a;if(typeof e.type==`function`){for(i=e.__k,a=0;i&&a<i.length;a++)i[a]&&(i[a].__=e,t=Zv(i[a],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=Gv(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t&&=t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Qv(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&!(2&l.__u);if(l===null&&e.key==null||u&&s==l.key&&c==l.type)return n;if(r>+!!u){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function $v(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n??``}function ey(e,t,n,r,i){var a;n:if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||$v(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||$v(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(jv,`$1`)),(t=t.slice(2))[0].toLowerCase()!=t[0]&&(t=t.toLowerCase()),e.__l||={},e.__l[t+a]=n,n?r?n.l=r.l:(n.l=Mv,e.addEventListener(t,a?Pv:Nv,a)):e.removeEventListener(t,a?Pv:Nv,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function ty(e){return function(t){if(this.__l){var n=this.__l[t.type+e];if(t.u==null)t.u=Mv++;else if(t.u<n.l)return;return n(Y.event?Y.event(t):t)}}}function ny(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h,g,_,v,y,b,x,S,C,ee,te,w,T,ne,re,ie,ae,E=t.type;if(t.constructor!=null)return null;128&n.__u&&(c=!!(32&n.__u),n.__c.__z&&(s=t.__e=n.__e=(a=n.__c.__z)[0],n.__c.__z=null)),(d=Y.__b)&&d(t);n:if(typeof E==`function`)try{if(v=t.props,y=`prototype`in E&&E.prototype.render,b=(d=E.contextType)&&r[d.__c],x=d?b?b.props.value:d.__:r,n.__c?2&(f=t.__c=n.__c).__g&&(f.__g|=1,_=!0):(y?t.__c=f=new E(v,x):(t.__c=f=new Wv(v,x),f.constructor=E,f.render=ly),b&&b.sub(f),f.props=v,f.state||(f.state={}),f.context=x,f.__n=r,p=!0,f.__g|=8,f.__h=[],f._sb=[]),y&&f.__s==null&&(f.__s=f.state),y&&E.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=zv({},f.__s)),zv(f.__s,E.getDerivedStateFromProps(v,f.__s))),m=f.props,h=f.state,f.__v=t,p)y&&E.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),y&&f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(y&&E.getDerivedStateFromProps==null&&v!==m&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(v,x),!(4&f.__g)&&f.shouldComponentUpdate!=null&&!1===f.shouldComponentUpdate(v,f.__s,x)||t.__v==n.__v){for(t.__v!=n.__v&&(f.props=v,f.state=f.__s,f.__g&=-9),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),S=0;S<f._sb.length;S++)f.__h.push(f._sb[S]);f._sb=[],f.__h.length&&o.push(f);break n}f.componentWillUpdate!=null&&f.componentWillUpdate(v,f.__s,x),y&&f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(m,h,g)})}if(f.context=x,f.props=v,f.__P=e,f.__g&=-5,C=Y.__r,ee=0,y){for(f.state=f.__s,f.__g&=-9,C&&C(t),d=f.render(f.props,f.state,f.context),te=0;te<f._sb.length;te++)f.__h.push(f._sb[te]);f._sb=[]}else do f.__g&=-9,C&&C(t),d=f.render(f.props,f.state,f.context),f.state=f.__s;while(8&f.__g&&++ee<25);f.state=f.__s,f.getChildContext!=null&&(r=zv({},r,f.getChildContext())),y&&!p&&f.getSnapshotBeforeUpdate!=null&&(g=f.getSnapshotBeforeUpdate(m,h)),w=d,d!=null&&d.type===Uv&&d.key==null&&(w=ay(d.props.children)),s=Yv(e,Lv(w)?w:[w],t,n,r,i,a,o,s,c,l,u),t.__u&=-161,f.__h.length&&o.push(f),_&&(f.__g&=-4)}catch(e){if(t.__v=null,c||a!=null){if(e.then){for(T=0,ne=!1,t.__u|=c?160:128,t.__c.__z=[],re=0;re<a.length;re++)(ie=a[re])==null||ne||(ie.nodeType==8&&ie.data==`$s`?(T>0&&t.__c.__z.push(ie),T++,a[re]=null):ie.nodeType==8&&ie.data==`/$s`?(--T>0&&t.__c.__z.push(ie),ne=T===0,s=a[re],a[re]=null):T>0&&(t.__c.__z.push(ie),a[re]=null));if(!ne){for(;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;a[a.indexOf(s)]=null,t.__c.__z=[s]}t.__e=s}else{for(ae=a.length;ae--;)Bv(a[ae]);ry(t)}}else t.__e=n.__e,t.__k=n.__k,e.then||ry(t);Y.__e(e,t,n)}else s=t.__e=oy(n.__e,t,n,r,i,a,o,c,l,u);return(d=Y.diffed)&&d(t),128&t.__u?void 0:s}function ry(e){e&&e.__c&&(e.__c.__g|=4),e&&e.__k&&e.__k.forEach(ry)}function iy(e,t,n){for(var r=0;r<n.length;r++)sy(n[r],n[++r],n[++r]);Y.__c&&Y.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){Y.__e(e,t.__v)}})}function ay(e){return typeof e!=`object`||!e||e.__b&&e.__b>0?e:Lv(e)?e.map(ay):zv({},e)}function oy(e,t,n,r,i,a,o,s,c,l){var u,d,f,p,m,h,g,_,v=n.props,y=t.props,b=t.type;if(b==`svg`?i=`http://www.w3.org/2000/svg`:b==`math`?i=`http://www.w3.org/1998/Math/MathML`:i||=`http://www.w3.org/1999/xhtml`,a!=null){for(u=0;u<a.length;u++)if((m=a[u])&&`setAttribute`in m==!!b&&(b?m.localName==b:m.nodeType==3)){e=m,a[u]=null;break}}if(e==null){if(b==null)return l.createTextNode(y);e=l.createElementNS(i,b,y.is&&y),s&&=(Y.__m&&Y.__m(t,a),!1),a=null}if(b==null)v===y||s&&e.data==y||(e.data=y);else{if(a&&=Rv.call(e.childNodes),v=n.props||Fv,!s&&a!=null)for(v={},u=0;u<e.attributes.length;u++)v[(m=e.attributes[u]).name]=m.value;for(u in v)if(m=v[u],u!=`children`){if(u==`dangerouslySetInnerHTML`)f=m;else if(!(u in y)){if(u==`value`&&`defaultValue`in y||u==`checked`&&`defaultChecked`in y)continue;ey(e,u,null,m,i)}}for(u in _=1&n.__u,y)m=y[u],u==`children`?p=m:u==`dangerouslySetInnerHTML`?d=m:u==`value`?h=m:u==`checked`?g=m:s&&typeof m!=`function`||v[u]===m&&!_||ey(e,u,m,v[u],i);if(d)s||f&&(d.__html==f.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(f&&(e.innerHTML=``),Yv(b==`template`?e.content:e,Lv(p)?p:[p],t,n,r,b==`foreignObject`?`http://www.w3.org/1999/xhtml`:i,a,o,a?a[0]:n.__k&&Gv(n,0),s,c,l),a!=null)for(u=a.length;u--;)Bv(a[u]);s||(u=`value`,b==`progress`&&h==null?e.removeAttribute(`value`):h==null||h===e[u]&&(b!==`progress`||h)||ey(e,u,h,v[u],i),u=`checked`,g!=null&&g!=e[u]&&ey(e,u,g,v[u],i))}return e}function sy(e,t,n){try{if(typeof e==`function`){var r=typeof e.__u==`function`;r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(e){Y.__e(e,n)}}function cy(e,t,n){var r,i;if(Y.unmount&&Y.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||sy(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){Y.__e(e,t)}r.__P=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&cy(r[i],t,n||typeof e.type!=`function`);n||Bv(e.__e),e.__e&&e.__e.__l&&(e.__e.__l=null),e.__e=e.__c=e.__=null}function ly(e,t,n){return this.constructor(e,n)}function uy(e,t){var n,r,i,a;t==document&&(t=document.documentElement),Y.__&&Y.__(e,t),r=(n=!!(e&&32&e.__u))?null:t.__k,e=t.__k=Vv(Uv,null,[e]),i=[],a=[],ny(t,e,r||Fv,Fv,t.namespaceURI,r?null:t.firstChild?Rv.call(t.childNodes):null,i,r?r.__e:t.firstChild,n,a,t.ownerDocument),iy(i,e,a)}function dy(e,t){e.__u|=32,uy(e,t)}Y={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=8&i.__g),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=8&i.__g),o)return void(i.__g|=2)}catch(t){e=t}}throw kv=0,e}},Ev=0,Wv.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=zv({},this.state);typeof e==`function`&&(e=e(zv({},n),this.props)),e&&zv(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),qv(this))},Wv.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),qv(this))},Wv.prototype.render=Uv,Dv=[],kv=0,Av=function(e,t){return e.__v.__b-t.__v.__b},jv=/(PointerCapture)$|Capture$/i,Mv=0,Nv=ty(!1),Pv=ty(!0);var fy=0;Array.isArray;function X(e,t,n,r,i,a){t||={};var o,s,c=t;if(`ref`in c&&typeof e!=`function`)for(s in c={},t)s==`ref`?o=t[s]:c[s]=t[s];var l={type:e,props:c,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--fy,__i:-1,__u:0,__source:i,__self:a};return Y.vnode&&Y.vnode(l),l}var py=16,my=16,hy={};function gy({name:e,remappedFrom:t,token:n,width:r,height:i,viewBox:a,label:o,alignCapitals:s=!1}){"use no memo";let c=`#${e.replace(/^#/,``)}`,{width:l,height:u,viewBox:d}=hy[e]??{width:py,height:my},f=r??l,p=i??u,m=a??d??`0 0 ${l} ${u}`;return X(`svg`,{"data-icon-name":t??e,"data-icon-token":n,"data-align-capitals":s,...o==null?{"aria-hidden":!0}:{"aria-label":o,role:`img`},viewBox:m,width:f,height:p,children:X(`use`,{href:c})})}var _y=e=>e!==void 0&&/\s/.test(e),vy=(e,t)=>{let n=t=>_y(e[t-1])||_y(e[t]);if(!n(t))return t;for(let r=1;r<e.length;r++){let i=t-r;if(i>0&&!n(i))return i;let a=t+r;if(a<e.length&&!n(a))return a}return t},yy=e=>vy(e,Math.ceil(e.length/2)),by=e=>{if(e.length<2)return[e,``];let t=yy(e);return[e.slice(0,t),e.slice(t)]},xy=e=>{if(e.length<4)return[e,``];let t=e.lastIndexOf(`.`)+1,n=e.length-t>10,r=t>=1&&!n?t:yy(e);return[e.slice(0,r),e.slice(r)]},Sy=e=>{if(e.length<4)return[e,``];let t=e.lastIndexOf(`/`)+1,n=e.length-t>25,r=t>=1&&!n?t:Math.ceil(e.length/2);return[e.slice(0,r),e.slice(r)]},Cy=(e,{splitIndex:t}={})=>{if(typeof t!=`number`){let t=Math.ceil(e.length/2);return[e.slice(0,t),e.slice(t)]}return[e.slice(0,t),e.slice(t)]},wy=(e,{splitOffset:t}={})=>{if(typeof t!=`number`||t<=0||t>=e.length){let t=Math.ceil(e.length/2);return[e.slice(0,t),e.slice(t)]}let n=e.length-t;return[e.slice(0,n),e.slice(n)]},Ty=(e,{splitOffset:t}={})=>{if(typeof t!=`number`||t<=0||t>=e.length){let t=Math.ceil(e.length/2);return[e.slice(0,t),e.slice(t)]}let n=t;return[e.slice(0,n),e.slice(n)]};function Ey({children:e,marker:t,variant:n=`default`}){"use no memo";return X(`div`,{"aria-hidden":!0,"data-truncate-marker-cell":!0,children:X(`div`,{"data-truncate-marker":!0,children:typeof t==`function`?t({children:e}):n===`fade`?X(`span`,{"data-truncate-fade":!0}):t})})}function Dy(e){"use no memo";let{mode:t,children:n}=e;return X(`div`,{children:[X(`div`,{"data-truncate-content":`visible`,children:t===`fruncate`?X(`span`,{children:n}):n}),X(`div`,{"data-truncate-content":`overflow`,"aria-hidden":!0,children:t===`fruncate`?X(`span`,{children:n}):n})]})}function Oy({children:e,mode:t=`truncate`,marker:n=`…`,variant:r=`default`,...i}){"use no memo";let a=X(Dy,{mode:t,children:e},`content`),o=X(Ey,{marker:n,mode:t,variant:r},`marker`),s=X(`div`,{"data-truncate-fill":!0},`fill`);return X(`div`,{"data-truncate-container":t,"data-truncate-variant":r,...i,children:X(`div`,{"data-truncate-grid":!0,children:t===`truncate`?[a,o]:[o,a,s]})})}function ky({children:e,...t}){"use no memo";return X(Oy,{mode:`truncate`,...t,children:e})}function Ay({children:e,...t}){"use no memo";return X(Oy,{mode:`fruncate`,...t,children:e})}function jy({children:e,contents:t,priority:n=`end`,split:r=`center`,minimumLength:i=12,className:a,style:o,...s}){"use no memo";let c=null,l=null;if(Array.isArray(t)){if(t.length!==2)return console.error(`MiddleTruncate: contents must be an array of two items`),null;c=X(ky,{...s,children:t[0]}),l=X(Ay,{...s,children:t[1]})}else{if(typeof e!=`string`)return console.error(`MiddleTruncate: children must be a string`),null;if(e.length===0)return X(`div`,{className:a,style:o});if(e.length<i)return X(n===`end`?Ay:ky,{...s,className:a,style:o,children:e});let t=null,u=null,d=null;if(typeof r==`string`)r===`center`?t=by:r===`extension`?t=xy:r===`leaf-path`&&(t=Sy);else if(typeof r==`number`)t=Cy,u=r;else if(Array.isArray(r)){let[e,n]=r;d=n,e===`last`?t=wy:e===`first`&&(t=Ty)}else typeof r==`function`&&(t=r);t??=by;let[f,p]=t(e,{priority:n,variant:s.variant,splitIndex:typeof u==`number`?u:void 0,splitOffset:typeof d==`number`?d:void 0}),m=f.length>=p.length,h=n===`equal`&&!m,g=n===`equal`&&m,_={},v={};h&&(_.marker=``),g&&(v.marker=``),c=X(ky,{...s,..._,children:f}),l=X(Ay,{...s,...v,children:p})}return X(`div`,{"data-truncate-group-container":`middle`,className:a,style:o,children:[X(`div`,{"data-truncate-segment-priority":n===`start`||n===`equal`?`1`:`2`,children:c}),X(`div`,{"data-truncate-segment-priority":n===`end`||n===`equal`?`1`:`2`,children:l})]})}var My={endIndex:-1,startIndex:-1};function Ny(e,t,n){return Math.min(Math.max(e,t),n)}function Py(e,t){return e<0||t<e?My:{endIndex:t,startIndex:e}}function Fy(e){return e.startIndex<0||e.endIndex<e.startIndex}function Iy(e,t){return Fy(e)?0:(e.endIndex-e.startIndex+1)*t}function Ly(e,t,n){if(t<=0)return-1;let r=t*n;return e<=0?0:e>=r?t:Math.floor(e/n)}function Ry(e,t,n){return t<=0||e<=0?-1:e>=t*n?t-1:Math.ceil(e/n)-1}function zy(e){let t=new Map;return e.forEach((e,n)=>{if(e.kind!==`directory`||!e.isExpanded)return;let r=e.ancestorPaths.length,i=t.get(r);if(i==null){t.set(r,[n]);return}i.push(n)}),t}function By(e,t){let n=0,r=e.length-1,i=-1;for(;n<=r;){let a=Math.floor((n+r)/2),o=e[a];if(o==null)break;if(o<=t){i=a,n=a+1;continue}r=a-1}return i}function Vy(e){let t=new Map,n=[];for(let r=0;r<e.length;r+=1){let i=e[r];if(i==null)continue;let a=i.kind===`directory`&&i.isExpanded?[...i.ancestorPaths,i.path]:i.ancestorPaths,o=0;for(;o<n.length&&o<a.length&&n[o]===a[o];)o+=1;for(let e=n.length-1;e>=o;--e){let i=n[e];i!=null&&t.set(i,r-1)}n.length=o;for(let e=o;e<a.length;e+=1){let t=a[e];t!=null&&n.push(t)}}let r=e.length-1;for(let e of n)t.set(e,r);return t}function Hy(e,t,n){if(e.length===0||t<=0)return[];let r=Vy(e),i=zy(e),a=[];for(let r=0;r<e.length;r+=1){let o=i.get(r);if(o==null||o.length===0)break;let s=t+r*n,c=By(o,Math.min(e.length-1,Math.floor(s/n))),l=null;for(;c>=0;){let t=o[c],n=t==null?null:e[t]??null;if(n!=null&&(r===0||n.ancestorPaths[r-1]===a[r-1]?.path)){l=n;break}--c}if(l==null)break;a.push(l)}return a.map((i,a)=>{let o=a*n,s=(r.get(i.path)??e.length-1)+1;if(s>=e.length)return{row:i,top:o};let c=s*n-t;return{row:i,top:Math.min(o,c-n)}}).filter(e=>e.top+n>0)}function Uy(e,t){let n=t.totalRowCount??e.length,r=n*t.itemHeight,i=Math.max(0,t.viewportHeight),a=Math.max(0,Math.floor(t.overscan)),o=Math.max(0,r-i),s=Ny(t.scrollTop,0,o),c=t.stickyRows??Hy(e,s,t.itemHeight),l=c.reduce((e,n)=>Math.max(e,n.top+t.itemHeight),0),u=Math.min(r,s+l),d=Math.max(0,i-l),f=Math.max(0,r-u),p=Ly(s,n,t.itemHeight),m=Ly(u,n,t.itemHeight),h=l<=0||p<0||p>=n?-1:p,g=h===-1?-1:Math.min(n-1,m-1),_=h===-1||g<h?0:g-h+1,v=d<=0||m>=n?My:Py(m,Ry(u+d,n,t.itemHeight)),y=g+1,b=Fy(v)?My:Py(Math.max(y,v.startIndex-a),Math.min(n-1,v.endIndex+a)),x=Iy(b,t.itemHeight);return{occlusion:{firstOccludedIndex:h,lastOccludedIndex:g,occludedCount:_},physical:{itemHeight:t.itemHeight,maxScrollTop:o,overscan:a,scrollTop:s,totalHeight:r,totalRowCount:n,viewportHeight:i},projected:{contentHeight:f,paneHeight:d,paneTop:u},sticky:{height:l,rows:c},visible:v,window:{endIndex:b.endIndex,height:x,offsetTop:Fy(b)?0:b.startIndex*t.itemHeight,startIndex:b.startIndex}}}var Wy={added:`A`,deleted:`D`,ignored:null,modified:`M`,renamed:`R`,untracked:`U`},Gy={added:`Git status: added`,deleted:`Git status: deleted`,ignored:`Git status: ignored`,modified:`Git status: modified`,renamed:`Git status: renamed`,untracked:`Git status: untracked`},Ky=`Contains git status items`;function qy(e){return e.current?!0:(e.current=!0,!1)}function Jy(e){let{currentScrollTop:t,focusedIndex:n,itemHeight:r,topInset:i=0,viewportHeight:a}=e;if(n<0)return null;let o=Math.max(0,i),s=n*r,c=s+r;if(s<t+o){let e=Math.max(0,s-o);return e===t?null:e}if(c>t+a){let e=c-a;return e===t?null:e}return null}function Yy(e){let{currentScrollTop:t,focusedIndex:n,itemHeight:r,offset:i,topInset:a=0,totalHeight:o,viewportHeight:s}=e;if(i===`nearest`)return Jy({currentScrollTop:t,focusedIndex:n,itemHeight:r,topInset:a,viewportHeight:s});if(n<0)return null;let c=Math.max(0,a),l=n*r,u=Math.max(0,s-c),d=i===`center`?c+Math.max(0,(u-r)/2):c,f=Math.max(0,o-s),p=Math.max(0,Math.min(l-d,f));return p===t?null:p}function Xy(e){let{currentScrollTop:t,focusedIndex:n,itemHeight:r,targetViewportOffset:i,totalHeight:a,viewportHeight:o}=e;if(n<0)return null;let s=Math.max(0,i),c=n*r,l=c+r,u=t+s,d=t+o;if(c>=u&&l<=d)return null;let f=Math.max(0,a-o),p=Math.max(0,Math.min(c-s,f));return p===t?null:p}function Zy(e){if(e==null||!e.isConnected||e===document.body||e===document.documentElement)return!1;e.focus({preventScroll:!0});let t=e.getRootNode();return t instanceof ShadowRoot?t.activeElement===e:document.activeElement===e}function Qy(e){let t=e.getRootNode();if(t instanceof ShadowRoot){let e=t.activeElement;return e instanceof HTMLElement?e:null}let n=document.activeElement;return n instanceof HTMLElement&&e.contains(n)?n:null}function $y(e,t){if(e==null)return t;let n=e.getBoundingClientRect().height;return n>0?n:e.clientHeight>0?e.clientHeight:t}function eb(e,t){return e!=null&&e>0?e:t}function tb(e){let t=e.borderBoxSize,n=Array.isArray(t)?t[0]:t;return n!=null&&Number.isFinite(n.blockSize)&&n.blockSize>0?n.blockSize:e.contentRect.height>0?e.contentRect.height:null}function nb(e,t,n,r,i=0){let a=Jy({currentScrollTop:e.scrollTop,focusedIndex:t,itemHeight:n,topInset:i,viewportHeight:r});return a!=null&&(e.scrollTop=a,!0)}function rb(e,t,n,r,i,a,o=0){let s=Yy({currentScrollTop:e.scrollTop,focusedIndex:t,itemHeight:n,offset:a,topInset:o,totalHeight:i,viewportHeight:r});return s!=null&&(e.scrollTop=s,!0)}function ib(e,t,n,r,i,a){let o=Xy({currentScrollTop:e.scrollTop,focusedIndex:t,itemHeight:n,targetViewportOffset:a,totalHeight:i,viewportHeight:r});return o!=null&&(e.scrollTop=o,!0)}function ab(e,t,n,r){return n.end<n.start?null:e<n.start?-t:e>n.end?r:null}function ob(e){let{renamingPath:t,previousRenamingPath:n,hasRenderedInput:r}=e;return t==null?`reset`:r?n===t?`ignore`:`focus-input`:`reveal-canonical`}function sb({ariaLabel:e,isFlattened:t=!1,ref:n,value:r,onBlur:i,onInput:a}){return X(`input`,{ref:n,"data-item-rename-input":!0,...t?{"data-item-flattened-rename-input":!0}:{},"aria-label":e,value:r,onBlur:i,onInput:a,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation()})}function cb(e){let{row:t,mode:n,targetPath:r,ariaLabel:i,domId:a,isParked:o,itemHeight:s,features:c,state:l,extraStyle:u}=e,d=n===`sticky`,f=t.ancestorPaths.at(-1)??``,p={};return l.isFocusRinged&&(p[`data-item-focused`]=!0),t.isSelected&&(p[`data-item-selected`]=!0),l.isContextHovered&&(p[`data-item-context-hover`]=`true`),l.isDragTarget&&(p[`data-item-drag-target`]=!0),l.isDragging&&(p[`data-item-dragging`]=!0),l.effectiveGitStatus!=null&&(p[`data-item-git-status`]=l.effectiveGitStatus),l.containsGitChange&&(p[`data-item-contains-git-change`]=`true`),{"aria-expanded":!d&&t.kind===`directory`?t.isExpanded:void 0,"aria-haspopup":c.contextMenuEnabled?`menu`:void 0,"aria-label":i,"aria-level":d?void 0:t.level+1,"aria-posinset":d?void 0:t.posInSet+1,"aria-selected":d?void 0:t.isSelected?`true`:`false`,"aria-setsize":d?void 0:t.setSize,"data-file-tree-sticky-path":d?r:void 0,"data-file-tree-sticky-row":d?`true`:void 0,"data-item-context-menu-button-visibility":c.actionLaneEnabled?c.contextMenuButtonVisibility:void 0,"data-item-context-menu-trigger-mode":c.contextMenuEnabled?c.contextMenuTriggerMode:void 0,"data-item-has-context-menu-action-lane":c.actionLaneEnabled?`true`:void 0,"data-item-has-git-lane":c.gitLaneActive?`true`:void 0,"data-item-parent-path":f.length>0?f:void 0,"data-item-parked":o?`true`:void 0,"data-item-path":r,"data-item-type":t.kind===`directory`?`folder`:`file`,"data-type":`item`,id:d?void 0:a,role:d?void 0:`treeitem`,style:{minHeight:`${s}px`,...u},tabIndex:!d&&t.isFocused?0:-1,...p}}function lb(e){let{event:t,mode:n,isSearchOpen:r,isDirectory:i}=e,a=t.ctrlKey||t.metaKey,o=t.shiftKey||a,s=t.shiftKey?{additive:a,kind:`range`}:a?{kind:`toggle`}:{kind:`single`};return{closeSearch:r,revealCanonical:n===`sticky`,selection:s,toggleDirectory:!o&&i}}var ub,Z,db,fb,pb=Object.is,mb=0,hb=[],Q=Y,gb=Q.__b,_b=Q.__r,vb=Q.diffed,yb=Q.__c,bb=Q.unmount,xb=Q.__;function Sb(e,t){Q.__h&&Q.__h(Z,e,mb||t),mb=0;var n=Z.__H||(Z.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Cb(e){return mb=1,wb(Fb,e)}function wb(e,t,n){var r=Sb(ub++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Fb(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);pb(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=Z,!Z.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(e){return!!e.__c});if(i.every(function(e){return!e.__N}))return!a||a.call(this,e,t,n);var o=r.__c.props!==e;return i.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,pb(t,e.__[0])||(o=!0)}}),a&&a.call(this,e,t,n)||o};Z.__f=!0;var a=Z.shouldComponentUpdate,o=Z.componentWillUpdate;Z.componentWillUpdate=function(e,t,n){if(4&this.__g){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},Z.shouldComponentUpdate=i}return r.__N||r.__}function Tb(e,t){var n=Sb(ub++,3);!Q.__s&&Pb(n.__H,t)&&(n.__=e,n.u=t,Z.__H.__h.push(n))}function Eb(e,t){var n=Sb(ub++,4);!Q.__s&&Pb(n.__H,t)&&(n.__=e,n.u=t,Z.__h.push(n))}function $(e){return mb=5,Db(function(){return{current:e}},[])}function Db(e,t){var n=Sb(ub++,7);return Pb(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Ob(e,t){return mb=8,Db(function(){return e},t)}function kb(){for(var e;e=hb.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Mb),e.__H.__h.forEach(Nb),e.__H.__h=[]}catch(t){e.__H.__h=[],Q.__e(t,e.__v)}}Q.__b=function(e){Z=null,gb&&gb(e)},Q.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),xb&&xb(e,t)},Q.__r=function(e){_b&&_b(e),ub=0;var t=(Z=e.__c).__H;t&&(db===Z?(t.__h=[],Z.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Mb),t.__h.forEach(Nb),t.__h=[],ub=0)),db=Z},Q.diffed=function(e){vb&&vb(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(hb.push(t)!==1&&fb===Q.requestAnimationFrame||((fb=Q.requestAnimationFrame)||jb)(kb)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),db=Z=null},Q.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Mb),e.__h=e.__h.filter(function(e){return!e.__||Nb(e)})}catch(n){t.some(function(e){e.__h&&=[]}),t=[],Q.__e(n,e.__v)}}),yb&&yb(e,t)},Q.unmount=function(e){bb&&bb(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Mb(e)}catch(e){t=e}}),n.__H=void 0,t&&Q.__e(t,n.__v))};var Ab=typeof requestAnimationFrame==`function`;function jb(e){var t,n=function(){clearTimeout(r),Ab&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Ab&&(t=requestAnimationFrame(n))}function Mb(e){var t=Z,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),Z=t}function Nb(e){var t=Z;e.__c=e.__(),Z=t}function Pb(e,t){return!e||e.length!==t.length||t.some(function(t,n){return!pb(t,e[n])})}function Fb(e,t){return typeof t==`function`?t(e):t}function Ib(e,t=null,n=null){"use no memo";let r=e.flattenedSegments;return r==null||r.length===0?t??e.name:X(`span`,{"data-item-flattened-subitems":!0,children:r.map((e,i)=>{let a=i===r.length-1;return X(Uv,{children:[X(`span`,{"data-item-flattened-subitem":e.path,"data-item-flattened-subitem-drag-target":n===e.path?`true`:void 0,children:a&&t!=null?t:X(ky,{children:e.name})}),i<r.length-1?` / `:``]},e.path)})})}function Lb(e){return e.isFlattened?e.flattenedSegments?.findLast(e=>e.isTerminal)?.path??e.path:e.path}function Rb(e){let t=e.flattenedSegments;return t==null||t.length===0?e.name:t.map(e=>e.name).join(` / `)}function zb(e,t,n,r){return e.map((e,i)=>{let a=i*n,o=e.subtreeEndIndex+1;if(o>=r)return{row:e.row,top:a};let s=o*n-t;return{row:e.row,top:Math.min(a,s-n)}}).filter(e=>e.top+n>0)}function Bb({controller:e,itemHeight:t,overscan:n,scrollTop:r,stickyFolders:i,viewportHeight:a}){let o=e.getVisibleCount(),s=i&&o>0?e.getStickyRowCandidates(r,t):[],c=s==null&&i&&o>0?e.getVisibleRows(0,o-1):[],l=Uy(c,{itemHeight:t,overscan:n,scrollTop:r,stickyRows:s==null?void 0:zb(s,r,t,o),totalRowCount:o,viewportHeight:a}),u=i&&r<=0&&o>0?e.getStickyRowCandidates(1,t):[],d=u!=null&&r<=0?zb(u,1,t,o):i&&r<=0&&c.length>0?Hy(c,1,t):l.sticky.rows;return{overlayHeight:d.reduce((e,n)=>Math.max(e,n.top+t),0),overlayRows:d,snapshot:l,visibleRows:c}}var Vb=400,Hb=40,Ub=18;function Wb(e,t,n){let r=e,i=document.elementFromPoint?.bind(document)??null,a=r.elementFromPoint?.(t,n)??i?.(t,n)??null;return e instanceof ShadowRoot&&(a==null||!e.contains(a))?Gb(e,t,n):a instanceof HTMLElement?a:null}function Gb(e,t,n){let r=Array.from(e.querySelectorAll(`[data-type="item"], [data-item-flattened-subitem]`));for(let e=r.length-1;e>=0;e--){let i=r[e],a=i.getBoundingClientRect();if(t>=a.left&&t<=a.right&&n>=a.top&&n<=a.bottom)return i}return null}function Kb(e){let t=e?.closest?.(`[data-type="item"]`);if(!(t instanceof HTMLElement))return null;let n=t.dataset.itemPath??null;if(n==null)return null;let r=e?.closest?.(`[data-item-flattened-subitem]`),i=r instanceof HTMLElement?r.getAttribute(`data-item-flattened-subitem`)??null:null;if(i!=null&&i.endsWith(`/`))return{directoryPath:i,flattenedSegmentPath:i,hoveredPath:n,kind:`directory`};if(t.dataset.itemType===`folder`)return{directoryPath:n,flattenedSegmentPath:null,hoveredPath:n,kind:`directory`};let a=t.dataset.itemParentPath??null;return a==null||a.length===0?{directoryPath:null,flattenedSegmentPath:null,hoveredPath:n,kind:`root`}:{directoryPath:a,flattenedSegmentPath:null,hoveredPath:n,kind:`directory`}}function qb(e){let t=e.cloneNode(!0);return t.removeAttribute(`id`),t.dataset.fileTreeDragPreview=`true`,t.setAttribute(`aria-hidden`,`true`),t.tabIndex=-1,Object.assign(t.style,{boxShadow:`0 4px 12px rgba(0, 0, 0, 0.15)`,left:`0px`,margin:`0`,pointerEvents:`none`,position:`fixed`,top:`0px`,willChange:`transform`,zIndex:`10000`}),t}function Jb(){return navigator.vendor!==`Apple Computer, Inc.`}function Yb(e,t){let n=e-t.top;if(n<Hb)return-Math.ceil((Hb-Math.max(0,n))/Hb*Ub);let r=t.bottom-e;return r<Hb?Math.ceil((Hb-Math.max(0,r))/Hb*Ub):0}function Xb(e,t){if(e!=null){let t=Wy[e];return t==null?null:{text:t,title:Gy[e]}}return t?{icon:{name:`file-tree-icon-dot`,width:6,height:6},title:Ky}:null}function Zb(e,t,n){if(t==null||t.size===0)return null;let r=[];for(let i=e.length-1;i>=0;--i){let a=e[i],o=n.get(a);if(o!=null){for(let e of r)n.set(e,o);return o?`ignored`:null}if(t.has(a)){n.set(a,!0);for(let e of r)n.set(e,!0);return`ignored`}r.push(a)}for(let e of r)n.set(e,!1);return null}function Qb(e){return e!=null&&`toggle`in e}function $b(e){return e.code===`Space`||e.key===` `||e.key===`Spacebar`}function ex(e){return e.key.length===1&&/^[\p{L}\p{N}]$/u.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey}function tx(e){return e==null?``:`[data-item-section="spacing-item"][data-ancestor-path="${e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`)}"] { opacity: 1; }`}function nx(e){return e.shiftKey&&e.key===`F10`||e.key===`ContextMenu`}function rx(e,t){return t&&nx(e)||(e.ctrlKey||e.metaKey)&&$b(e)?!0:e.key===`ArrowDown`||e.key===`ArrowLeft`||e.key===`ArrowRight`||e.key===`ArrowUp`}var ix=new Set([`ArrowDown`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`End`,`Home`,`PageDown`,`PageUp`]);function ax(e){for(let t of e.composedPath())if(t instanceof HTMLElement&&(t.dataset.fileTreeContextMenuRoot===`true`||t.dataset.type===`context-menu-anchor`||t.dataset.type===`context-menu-trigger`||t.getAttribute(`slot`)===`context-menu`))return!0;return!1}function ox(e){return{bottom:e.bottom,height:e.height,left:e.left,right:e.right,top:e.top,width:e.width,x:e.x,y:e.y}}function sx(e,t){return{bottom:t,height:0,left:e,right:e,top:t,width:0,x:e,y:t}}function cx(e,t){if(e==null)return t.offsetTop;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();return n.top-r.top}function lx(e,t,n){if(n==null){e.delete(t);return}e.set(t,n)}function ux(e,t,n){if(e==null)return null;let r=t.get(e)??null;if(r!=null)return r;let i=n.get(e)??null;return i?.dataset.itemParked===`true`?null:i}function dx(e){if(e==null)return[];let t=[];for(let n of e.querySelectorAll(`button[data-file-tree-sticky-row="true"]`)){if(!(n instanceof HTMLElement))continue;let e=n.dataset.fileTreeStickyPath;e!=null&&t.push(e)}return t}function fx(e,t){if(e==null||t==null)return null;for(let n of e.querySelectorAll(`button[data-item-focused="true"][data-item-parked="true"]`))if(n instanceof HTMLElement&&n.dataset.itemPath===t)return n;return null}function px(e,t,n,r,i,a,o){let s=Math.max(0,a-i),c=t?.getBoundingClientRect()??null,l=c==null||n==null?null:n.getBoundingClientRect().top-c.top,u=fx(e,r),d=c==null||u==null?null:u.getBoundingClientRect().top-c.top;return Math.max(0,Math.min(d??Math.max(l??0,s),Math.max(0,o-i)))}function mx(e,t){return{kind:e.kind,name:Rb(e),path:t}}function hx(e){return e==null?void 0:`${e}__tree`}function gx(e,t,n){if(e!=null)return`${e}__focused-item-${encodeURIComponent(t)}${n?`__parked`:``}`}function _x(e){return e===`file-tree-icon-chevron`||e===`file-tree-icon-dot`||e===`file-tree-icon-file`||e===`file-tree-icon-lock`}function vx(e,t){if(e==null)return null;if(`text`in e)return e.parts==null?X(`span`,{title:e.title,children:e.text}):X(`span`,{title:e.title,children:e.parts.map((e,t)=>X(`span`,{style:{color:e.color},children:e.text},t))});let n=typeof e.icon==`string`?_x(e.icon)?t(e.icon):{name:e.icon}:_x(e.icon.name)?(()=>{let n=t(e.icon.name),{name:r,...i}=e.icon;return{...n,...i}})():e.icon;return X(`span`,{title:e.title,children:X(gy,{...n})})}function yx(e){e!=null&&Zy(e.querySelector([`button:not([disabled])`,`[href]`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`, `))??e)}function bx(e,t,{actionLaneEnabled:n=!1,customDecoration:r=null,decorationLaneEnabled:i=!1,dragTargetFlattenedSegmentPath:a=null,gitDecoration:o=null,gitLaneActive:s=!1,renameInput:c=null,showDecorativeActionAffordance:l=!1}={}){let u=Lb(e);return X(Uv,{children:[e.depth>0?X(`div`,{"data-item-section":`spacing`,children:Array.from({length:e.depth}).map((t,n)=>X(`div`,{"data-item-section":`spacing-item`,"data-ancestor-path":e.ancestorPaths[n]},n))}):null,X(`div`,{"data-item-section":`icon`,children:e.kind===`directory`?X(gy,{...t(`file-tree-icon-chevron`)}):X(gy,{...t(`file-tree-icon-file`,u)})}),X(`div`,{"data-item-section":`content`,children:e.isFlattened?Ib(e,c,a):c??X(jy,{minimumLength:5,split:`extension`,children:e.name})}),i?X(`div`,{"data-item-section":`decoration`,children:r==null?null:vx(r,t)}):null,s?X(`div`,{"data-item-section":`git`,children:vx(o,t)}):null,n?X(`div`,{"data-item-section":`action`,children:l?X(`span`,{"aria-hidden":`true`,"data-item-action-affordance":`decorative`,children:X(gy,{...t(`file-tree-icon-ellipsis`)})}):null}):null]})}function xx(e,t,n,r={}){let{controller:i,renameView:a,visualFocusPath:o,contextHoverPath:s,draggedPathSet:c,dragTarget:l,dragAndDropEnabled:u,shouldSuppressContextMenu:d,handleRowDragStart:f,handleRowDragEnd:p,handleRowTouchStart:m,instanceId:h,itemHeight:g,gitStatusByPath:_,ignoredGitDirectories:v,ignoredInheritanceCache:y,directoriesWithGitChanges:b,gitLaneActive:x,contextMenuEnabled:S,contextMenuTriggerMode:C,contextMenuButtonTriggerEnabled:ee,contextMenuButtonVisibility:te,contextMenuRightClickEnabled:w,registerRenameInput:T,registerButton:ne,resolveIcon:re,renderDecorationForRow:ie,openContextMenuForRow:ae,onRowClick:E,onKeyDown:oe}=e,D=Lb(t),{isParked:se=!1,mode:ce=`flow`,style:le}=r,ue=ce===`sticky`,de=_?.get(D)??null??Zb(t.ancestorPaths,v,y),fe=t.kind===`directory`&&(b?.has(D)??!1),pe=ie(t,D),me=Xb(de,fe),he=S&&ee,ge=pe!=null||x||he,_e=he&&te===`always`,ve=a.getPath()===D,ye=ve?a.getValue():``,be=ue||!ve?null:X(sb,{ref:T,ariaLabel:`Rename ${Rb(t)}`,isFlattened:t.isFlattened,value:ye,onBlur:()=>{a.commit()},onInput:e=>{a.setValue(e.currentTarget.value)}}),xe=bx(t,re,{actionLaneEnabled:he,customDecoration:pe,decorationLaneEnabled:ge,dragTargetFlattenedSegmentPath:l?.flattenedSegmentPath??null,gitDecoration:me,gitLaneActive:x,renameInput:be,showDecorativeActionAffordance:_e}),Se={...cb({ariaLabel:Rb(t),domId:t.isFocused?gx(h,D,se):void 0,extraStyle:le,features:{actionLaneEnabled:he,contextMenuButtonVisibility:he?te:null,contextMenuEnabled:S,contextMenuTriggerMode:S?C:null,gitLaneActive:x},isParked:se,itemHeight:g,mode:ce,row:t,state:{containsGitChange:fe,effectiveGitStatus:de,isContextHovered:s===D,isDragTarget:l?.kind===`directory`&&l.directoryPath===D,isDragging:c?.has(D)===!0,isFocusRinged:t.isFocused&&o===D},targetPath:D}),key:n,onContextMenu:S||u?e=>{if(d()){e.preventDefault();return}S&&(e.preventDefault(),w&&(i.focusMountedPathFromInput(D),ae(t,D,{anchorRect:sx(e.clientX,e.clientY),source:`right-click`})))}:void 0,onFocus:ue?void 0:()=>{i.focusMountedPathFromInput(D)},onKeyDown:ue?void 0:oe,ref:e=>{ne(D,e)}};return!ue&&ve?X(`div`,{...Se,children:xe}):X(`button`,{...Se,type:`button`,draggable:u&&!se,onDragEnd:u&&!se?p:void 0,onDragStart:u&&!se?e=>{f(e,t,D)}:void 0,onMouseDown:e=>{if(ue){e.preventDefault();return}i.isSearchOpen()&&e.preventDefault()},onTouchStart:u&&!se?e=>{m(e,t,D)}:void 0,onClick:e=>{E(e,t,D,ce)},children:xe})}function Sx(e,t,n){return t.end<t.start?[]:e.controller.getVisibleRows(t.start,t.end).filter(e=>!n.has(Lb(e))).map((n,r)=>xx(e,n,t.start+r))}function Cx({composition:e,controller:t,gitStatusByPath:n,ignoredGitDirectories:r,directoriesWithGitChanges:i,icons:a,instanceId:o,itemHeight:s=h_,overscan:c=10,renamingEnabled:l=!1,renderRowDecoration:u,searchBlurBehavior:d=`close`,searchEnabled:f=!1,searchFakeFocus:p=!1,slotHost:m,stickyFolders:h=!1,initialViewportHeight:g=420}){"use no memo";let _=$(null),v=$(null),y=$(!1),b=$(null),x=$(null),S=$(null),C=$(null),ee=$(null),te=$(new Map),w=$(new Map),T=$(()=>{}),ne=$(null),re=$(0),ie=$(!1),ae=$(null);ae.current!==t&&(ie.current=!1,ae.current=t);let E=$(!1),oe=$(null),D=$(null),se=$(!1),ce=$(null),le=$(null),ue=$(null),de=$(null),fe=$(null),pe=$(null),me=$(null),he=$(null),ge=$(!1),_e=$(null),ve=$(null),ye=$(null),be=$(null),xe=Db(()=>new Map,[]),[,Se]=Cb(0),Ce=$(!1),[we,Te]=Cb(null),[Ee,De]=Cb(null),[Oe,ke]=Cb(null),[Ae,je]=Cb(null),[Me,Ne]=Cb(0),[O,k]=Cb(null),Pe=$(O);Pe.current=O;let Fe=$(null),Ie=$(null),Le=$(null),Re=$(null),ze=$(null),Be=$(!1),Ve=()=>{Ie.current=null,Le.current=null,Re.current=null},He=(e,t)=>{Ie.current=e,Le.current=null,Re.current=t==null?null:{path:e,scrollTop:t}},Ue=(e,t)=>{Ie.current=null,Le.current={path:e,viewportOffset:t},Re.current=null},We=$(d===`retain`&&t.isSearchOpen()),[Ge,Ke]=Cb(p);Tb(()=>{p||Ke(!1)},[p]);let qe=$(!1),Je=Ob(()=>{qe.current=!0,Ke(e=>e&&!1)},[]),[Ye,Xe]=Cb(()=>Bb({controller:t,itemHeight:s,overscan:c,scrollTop:0,stickyFolders:h,viewportHeight:g})),[Ze,Qe]=Cb(!1);Tb(()=>{Qe(!0)},[]);let A=e?.contextMenu?.enabled===!0||e?.contextMenu?.render!=null||e?.contextMenu?.onOpen!=null||e?.contextMenu?.onClose!=null,j=e?.contextMenu?.triggerMode??(A?`right-click`:`both`),$e=j===`both`||j===`button`,et=e?.contextMenu?.buttonVisibility??`when-needed`,tt=j===`both`||j===`right-click`;Eb(()=>{let e=S.current;if(e==null)return;let t=e=>{if(!(e instanceof CustomEvent))return;let t=e.detail?.path??null;ze.current=t,De(t),je(t==null?null:`pointer`)},n=e=>{e instanceof CustomEvent&&(Be.current=e.detail?.disabled===!0)};return e.addEventListener(`file-tree-debug-set-context-menu-trigger`,t),e.addEventListener(`file-tree-debug-set-scroll-suppression`,n),()=>{e.removeEventListener(`file-tree-debug-set-context-menu-trigger`,t),e.removeEventListener(`file-tree-debug-set-scroll-suppression`,n)}},[]);let nt=Ob((e,t)=>{lx(te.current,e,t)},[]),rt=Ob((e,t)=>{lx(w.current,e,t)},[]),it=Ob(e=>{x.current=e},[]),at=Ob(e=>ux(e,w.current,te.current),[]),ot=n!=null||r!=null||i!=null,{resolveIcon:st}=Db(()=>Fp(a),[a]),ct=t[ov](),lt=ct.getPath(),ut=lt!=null,dt=t.isSearchOpen(),ft=t.getSearchValue(),M=t.getFocusedPath(),N=t.getFocusedIndex(),pt=t.getScrollRequest(),mt=t.isDragAndDropEnabled(),ht=t.getDragSession(),gt=Db(()=>ht==null?null:new Set(ht.draggedPaths),[ht]),_t=ht?.target??null,vt=ht?.primaryPath??null,yt=hx(o),{overlayHeight:bt,overlayRows:xt,snapshot:P,visibleRows:St}=Ye,F=P.physical.viewportHeight,I=Db(()=>({end:P.window.endIndex,start:P.window.startIndex}),[P.window.endIndex,P.window.startIndex]),L=xt,R=P.sticky.rows,Ct=P.physical.totalHeight,wt=P.sticky.height,Tt=Db(()=>new Set(R.map(e=>Lb(e.row))),[R]),Et=N>=0&&N>=I.start&&N<=I.end,Dt=Ob((e,t)=>u?.({item:mx(e,t),row:e})??null,[u]),Ot=Ob(e=>Zy(e==null?null:te.current.get(e)??null)?!0:Zy(S.current),[]),kt=Ob(e=>{Ot(t.focusNearestPath(e))},[t,Ot]),At=$(kt);At.current=kt;let jt=$(!0),Mt=$(()=>{}),Nt=Ob((t=!0)=>{let n=Pe.current;n!=null&&(jt.current=jt.current&&t,k(null),e?.contextMenu?.onClose?.(),jt.current&&kt(n.path))},[e?.contextMenu,kt]);Mt.current=Nt;let Pt=Ob(e=>{let t=e==null?null:cx(S.current,e);ke(e=>e===t?e:t)},[]),Ft=Ob((e,n,r)=>{let i=t.getItem(n);if(i==null)return;let a=at(n);if(a?.dataset.fileTreeStickyRow===`true`){let e=C.current;He(n,e?.scrollTop??null),E.current=!0,Te(e=>e===n?e:n)}i.focus(),Pt(a),jt.current=!0,k({anchorRect:r?.anchorRect??null,item:mx(e,n),path:n,source:r?.source??`keyboard`})},[t,at,Pt]),It=Ob(e=>{if(l){if(t.isSearchOpen()){let e=C.current,t=$y(e,F);ce.current=N<0||e==null?null:Math.max(0,Math.min(N*s-e.scrollTop,Math.max(0,t-s))),se.current=!0}t.startRenaming(e)!==!1&&(je(`focus`),Se(e=>e+1))}},[t,N,s,l,F]),Lt=Ob((e,{restoreTreeFocus:n=!0,targetOffset:r=`live-overlay`}={})=>{let i=C.current;if(i==null)return!1;t.focusPath(e);let a=t.getFocusedIndex();if(a<0)return!1;let o=t.getVisibleRows(a,a)[0]??null;if(o==null)return!1;let l=$y(i,F),u=t.getVisibleCount()*s,d=r===`sticky-parents`?o.ancestorPaths.length*s:Bb({controller:t,itemHeight:s,overscan:c,scrollTop:i.scrollTop,stickyFolders:h,viewportHeight:l}).snapshot.sticky.height;return E.current=!0,ib(i,a,s,l,u,d),T.current(),Fe.current=n?e:null,!0},[t,s,c,F,h]),Rt=()=>y.current===!0||be.current!=null||ge.current===!0,zt=e=>typeof window.requestAnimationFrame==`function`?window.requestAnimationFrame(()=>{e()}):window.setTimeout(e,16),Bt=e=>{if(e!=null){if(typeof window.cancelAnimationFrame==`function`){window.cancelAnimationFrame(e);return}window.clearTimeout(e)}},Vt=()=>{de.current!=null&&(clearTimeout(de.current),de.current=null),ue.current=null},Ht=()=>{pe.current?.remove(),pe.current=null},Ut=()=>{Bt(le.current),le.current=null,fe.current=null},Wt=e=>{let t=S.current?.getRootNode();if(t instanceof ShadowRoot){t.append(e);return}document.body.append(e)},Gt=()=>{he.current?.(),he.current=null,be.current!=null&&(clearTimeout(be.current),be.current=null),ge.current=!1,_e.current=null,ye.current=null,ve.current!=null&&(ve.current.setAttribute(`draggable`,`true`),ve.current.style.removeProperty(`touch-action`),ve.current=null),Ht(),Vt(),Ut(),me.current=null},Kt=(e,n)=>{let r=S.current?.getRootNode(),i=Kb(Wb(r instanceof ShadowRoot?r:document,e,n));return t.setDragTarget(i),t.getDragSession()?.target??null},qt=e=>{let n=t.getDragAndDropConfig()?.openOnDropDelay??800;if(e==null||e.kind!==`directory`||e.directoryPath==null||n<=0){Vt();return}let r=t.getItem(e.directoryPath),i=Qb(r)?r:null;if(i==null||i.isExpanded()){Vt();return}let a=`${e.directoryPath}::${e.flattenedSegmentPath??``}`;ue.current!==a&&(Vt(),ue.current=a,de.current=setTimeout(()=>{let n=t.getDragSession()?.target;n?.kind===`directory`&&n.directoryPath===e.directoryPath&&n.flattenedSegmentPath===e.flattenedSegmentPath&&i.expand()},n))},Jt=()=>{le.current=null;let e=fe.current,n=C.current;if(e==null||n==null||t.getDragSession()==null)return;let r=n.getBoundingClientRect(),i=Yb(e.clientY,r);if(i===0)return;let a=Math.max(0,n.scrollHeight-n.clientHeight),o=Math.max(0,Math.min(a,n.scrollTop+i));o!==n.scrollTop&&(n.scrollTop=o,T.current()),qt(Kt(e.clientX,e.clientY)),le.current=zt(Jt)},Yt=(e,t)=>{fe.current={clientX:e,clientY:t},le.current??=zt(Jt)},Xt=(e,n,r)=>{let i=e.currentTarget;if(i!=null){if(Gt(),Ht(),Vt(),Ut(),t.startDrag(r)===!1){e.preventDefault();return}if(me.current=n,e.dataTransfer!=null&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.dropEffect=`move`,e.dataTransfer.setData(`text/plain`,r),Jb())){let t=qb(i),n=i.getBoundingClientRect();Object.assign(t.style,{height:`${n.height}px`,opacity:`0.85`,transform:`translate3d(-9999px, 0px, 0)`,width:`${n.width}px`}),Wt(t),pe.current=t,e.dataTransfer.setDragImage(t,Math.max(0,e.clientX-n.left),Math.max(0,e.clientY-n.top))}}},Zt=()=>{Ht(),Vt(),Ut(),me.current=null,t.cancelDrag()},Qt=(e,n,r)=>{if(be.current!=null||ge.current)return;let i=e.touches[0],a=e.currentTarget;if(i==null||a==null)return;ye.current={clientX:i.clientX,clientY:i.clientY},ve.current=a,a.setAttribute(`draggable`,`false`);let o=(e={})=>{let t=e.restoreNativeDraggable??!ge.current;be.current!=null&&(clearTimeout(be.current),be.current=null),document.removeEventListener(`touchmove`,s),document.removeEventListener(`touchend`,c),document.removeEventListener(`touchcancel`,c),he.current===o&&(he.current=null),t&&(a.setAttribute(`draggable`,`true`),ve.current===a&&(ve.current=null),ye.current=null)},s=e=>{let t=e.touches[0],n=ye.current;if(t==null||n==null)return;let r=t.clientX-n.clientX,i=t.clientY-n.clientY;r*r+i*i<=100||o()},c=()=>{o()};document.addEventListener(`touchmove`,s,{passive:!0}),document.addEventListener(`touchend`,c),document.addEventListener(`touchcancel`,c),he.current=o,be.current=setTimeout(()=>{if(o({restoreNativeDraggable:!1}),t.startDrag(r)===!1){a.setAttribute(`draggable`,`true`),ve.current===a&&(ve.current=null),ye.current=null;return}ge.current=!0,ve.current=a,a.setAttribute(`draggable`,`false`),a.style.setProperty(`touch-action`,`none`),me.current=n;let e=a.getBoundingClientRect(),s=qb(a);Object.assign(s.style,{height:`${e.height}px`,opacity:`0.85`,transform:`translate3d(${e.left}px, ${e.top}px, 0)`,width:`${e.width}px`}),Wt(s),pe.current=s,_e.current={x:i.clientX-e.left,y:i.clientY-e.top};let c=e=>{let t=e.touches[0];if(t==null)return;e.preventDefault();let n=_e.current;n!=null&&pe.current!=null&&(pe.current.style.transform=`translate3d(${t.clientX-n.x}px, ${t.clientY-n.y}px, 0)`),qt(Kt(t.clientX,t.clientY)),Yt(t.clientX,t.clientY)},l=e=>{let n=e.changedTouches[0];n!=null&&Kt(n.clientX,n.clientY),t.completeDrag(),Gt()},u=()=>{t.cancelDrag(),Gt()};he.current=()=>{document.removeEventListener(`touchmove`,c),document.removeEventListener(`touchend`,l),document.removeEventListener(`touchcancel`,u)},document.addEventListener(`touchmove`,c,{passive:!1}),document.addEventListener(`touchend`,l),document.addEventListener(`touchcancel`,u)},Vb)},$t=e=>{if(O!=null){if(e.key===`Escape`){Nt(),e.preventDefault(),e.stopPropagation();return}ix.has(e.key)&&(e.preventDefault(),e.stopPropagation());return}if(ct.isActive()){if(e.isComposing||e.keyCode===229)return;if(e.key===`Escape`)ct.cancel();else if(e.key===`Enter`)ct.commit();else return;je(`focus`),Se(e=>e+1),e.preventDefault(),e.stopPropagation();return}if(l&&e.key===`F2`){It(M??void 0),e.preventDefault(),e.stopPropagation();return}if(dt){if(e.key===`Escape`)se.current=!1,ce.current=null,t.closeSearch();else if(e.key===`Enter`){let e=t.getFocusedPath();e!=null&&t.selectOnlyPath(e);let n=C.current,r=$y(n,F);ce.current=N<0||n==null?null:Math.max(0,Math.min(N*s-n.scrollTop,Math.max(0,r-s))),se.current=!0,t.closeSearch()}else if(e.key===`ArrowDown`)t.focusNextSearchMatch();else if(e.key===`ArrowUp`)t.focusPreviousSearchMatch();else return;je(`focus`),Se(e=>e+1),e.preventDefault(),e.stopPropagation();return}if(f&&ex(e)){t.openSearch(e.key),Se(e=>e+1),e.preventDefault(),e.stopPropagation();return}let n=A&&nx(e),r=rx(e,A),i=r&&S.current!=null?Qy(S.current):null,a=r?new Set(dx(S.current)):new Set,o=i?.dataset.fileTreeStickyPath??null,c=i?.dataset.fileTreeStickyRow===`true`&&o!=null;if(c&&o!==M&&a.has(o)){let e=C.current;He(o,e?.scrollTop??null),t.focusPath(o)}let u=t.getFocusedPath(),d=t.getFocusedIndex(),p=t.getFocusedItem();if(p==null)return;let m=Qb(p)?p:null,h=u!=null&&(Tt.has(u)||c&&o===u&&a.has(u)),g=e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`ArrowRight`&&m!=null&&m.isExpanded(),_=e.key===`ArrowLeft`&&h&&m!=null&&m.isExpanded(),v=C.current,y=!0;if(e.shiftKey&&e.key===`ArrowDown`)t.extendSelectionFromFocused(1);else if(e.shiftKey&&e.key===`ArrowUp`)t.extendSelectionFromFocused(-1);else if(n&&u!=null&&d>=0){let e=t.getVisibleRows(d,d)[0]??null,n=ux(u,w.current,te.current);e==null||n==null?y=!1:Ft(e,u)}else if((e.ctrlKey||e.metaKey)&&$b(e))t.toggleFocusedSelection();else if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`a`)t.selectAllVisiblePaths();else switch(e.key){case`ArrowDown`:t.focusNextItem();break;case`ArrowUp`:t.focusPreviousItem();break;case`ArrowRight`:m==null||m.isExpanded()?t.focusNextItem():m.expand();break;case`ArrowLeft`:m!=null&&m.isExpanded()?m.collapse():t.focusParentItem();break;case`Home`:t.focusFirstItem();break;case`End`:t.focusLastItem();break;default:y=!1}if(!y)return;je(`focus`);let b=t.getFocusedPath(),x=b!=null&&(Tt.has(b)||a.has(b)),ee=g&&b!==u,T=n&&c&&o===u&&b===u;if((h||T)&&b!=null&&(ee&&x||T))He(b,v?.scrollTop??null),E.current=!0,Te(e=>e===b?e:b);else{let t=e.key===`ArrowUp`&&h&&b!==u;b!=null&&(t||_&&b===u)?(Ue(b,px(S.current,v,i,u,s,wt,F)),E.current=!0,Te(e=>e===b?e:b)):Ve()}Se(e=>e+1),e.preventDefault(),e.stopPropagation()};Eb(()=>{if(!(!f||!dt)){if(We.current){We.current=!1;return}Zy(ee.current)}},[dt,f]),Eb(()=>{let e=x.current;switch(ob({hasRenderedInput:e!=null,previousRenamingPath:D.current,renamingPath:lt})){case`reset`:D.current=null;return;case`reveal-canonical`:lt!=null&&Lt(lt,{restoreTreeFocus:!1,targetOffset:`live-overlay`});return;case`ignore`:return;case`focus-input`:e!=null&&(Fe.current=null,D.current=lt,Zy(e),e.select());return}},[I.end,I.start,lt,Lt,Tt]),Eb(()=>{let e=S.current;if(e==null)return;let t=null,n=()=>{t!=null&&(clearTimeout(t),t=null)},r=()=>{let t=Qy(e)?.dataset.itemPath??null;Te(e=>e===t?e:t)},i=()=>{n(),E.current=!0,r()},a=i=>{let a=i.relatedTarget;if(a==null){n(),t=setTimeout(()=>{if(t=null,Qy(e)!=null){r();return}E.current=!1,Te(null)},0);return}if(!(a instanceof Node)||!e.contains(a)){n(),E.current=!1,Te(null);return}let o=a instanceof HTMLElement?a.dataset.itemPath??null:null;Te(e=>e===o?e:o)};return e.addEventListener(`focusin`,i),e.addEventListener(`focusout`,a),()=>{n(),e.removeEventListener(`focusin`,i),e.removeEventListener(`focusout`,a)}},[]),Eb(()=>{let e=S.current;e!=null&&(P.physical.scrollTop<=0?e.dataset.scrollAtTop=`true`:delete e.dataset.scrollAtTop)},[P.physical.scrollTop]),Eb(()=>{let e=null,n=C.current,r=b.current,i=S.current;if(n==null)return;ne.current=$y(n,g);let a=()=>{let e=t.getVisibleCount(),r=eb(ne.current,g),i=Math.max(0,e*s-r);n.scrollTop>i&&(n.scrollTop=i),Xe(Bb({controller:t,itemHeight:s,overscan:c,scrollTop:Math.min(n.scrollTop,i),stickyFolders:h,viewportHeight:r}))};if(!ie.current){ie.current=!0;let e=t.getFocusedIndex();if(e>=0){let r=eb(ne.current,g),i=t.getVisibleRows(e,e)[0]??null;nb(n,e,s,r,h&&i!=null?Math.max(0,Math.min(i.ancestorPaths.length*s,Math.max(0,r-s))):0)}}T.current=a;let o=t.subscribe(()=>{qy(Ce)&&Se(e=>e+1),a()}),l=()=>{Be.current!==!0&&(r!=null&&(r.dataset.isScrolling??=``),i!=null&&(i.dataset.isScrolling??=``),y.current=!0,e!=null&&clearTimeout(e),e=setTimeout(()=>{r!=null&&delete r.dataset.isScrolling,i!=null&&delete i.dataset.isScrolling,y.current=!1,Ne(e=>e+1),e=null},50))},u=null,d=()=>{i!=null&&delete i.dataset.overlayReveal,u!=null&&(clearTimeout(u),u=null)},f=()=>{i!=null&&Be.current!==!0&&(n.scrollTop>0||(i.dataset.overlayReveal=`true`,u!=null&&clearTimeout(u),u=setTimeout(()=>{d()},200)))},p=()=>{if(a(),n.scrollTop>0&&d(),Pe.current!=null&&y.current&&Mt.current(),Be.current===!0){y.current=!1;return}De(e=>e==null?e:null),l()},m=()=>{l(),f()},_=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`,` `,`Spacebar`]),v=e=>{_.has(e.key)&&m()};n.addEventListener(`scroll`,p,{passive:!0}),n.addEventListener(`wheel`,m,{passive:!0}),n.addEventListener(`touchmove`,m,{passive:!0}),n.addEventListener(`keydown`,v);let x=typeof ResizeObserver<`u`?new ResizeObserver(e=>{ne.current=(e[0]==null?null:tb(e[0]))??$y(n,g),a()}):null;return x?.observe(n),()=>{T.current=()=>{},o(),n.removeEventListener(`scroll`,p),n.removeEventListener(`wheel`,m),n.removeEventListener(`touchmove`,m),n.removeEventListener(`keydown`,v),e!=null&&clearTimeout(e),u!=null&&clearTimeout(u),r!=null&&delete r.dataset.isScrolling,i!=null&&(delete i.dataset.isScrolling,delete i.dataset.overlayReveal),y.current=!1,ne.current=null,x?.disconnect()}},[t,g,s,c,h]),Eb(()=>{A||O==null||Nt(!1)},[Nt,A,O]);let en=Db(()=>O==null?null:`${O.path}::${O.source}`,[O]);Eb(()=>{if(en==null){m?.clearSlotContent(Dp);return}let t=Pe.current;if(t==null)return;let n=v.current??_.current;if(n==null)return;let r={anchorElement:n,anchorRect:t.anchorRect??ox(n.getBoundingClientRect()),close:e=>{Mt.current(e?.restoreFocus??!0)},restoreFocus:()=>{jt.current&&At.current(Pe.current?.path??null)}},i=e?.contextMenu?.render?.(t.item,r)??null;return m?.setSlotContent(Dp,i),e?.contextMenu?.onOpen?.(t.item,r),yx(i),queueMicrotask(()=>{i==null||!i.isConnected||document.activeElement===i&&yx(i)}),()=>{m?.clearSlotContent(Dp)}},[en,e?.contextMenu,m]),Eb(()=>{O!=null&&t.getItem(O.path)==null&&Nt()},[Nt,O,t]),Eb(()=>{if(O==null)return;let e=S.current?.getRootNode(),t=e instanceof ShadowRoot?e.host:S.current,n=e=>{let n=e.target;n instanceof Node&&(ax(e)||_.current?.contains(n)!==!0&&t?.contains(n)!==!0&&Nt())},r=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),Nt())};return document.addEventListener(`mousedown`,n,!0),document.addEventListener(`keydown`,r,!0),()=>{document.removeEventListener(`mousedown`,n,!0),document.removeEventListener(`keydown`,r,!0)}},[Nt,O]),Eb(()=>{let e=C.current,n=S.current;if(e==null||n==null){oe.current=M;return}let r=M==null?null:te.current.get(M)??null,i=Qy(n),a=i?.dataset.itemPath??null,o=ut&&x.current===i,c=f&&ee.current===i,l=se.current&&!dt,u=ce.current??0,d=Fe.current,p=Ie.current,m=Le.current,g=Re.current,_=i!=null,v=E.current||_,y=oe.current!==M,b=p!=null&&p===M&&M!=null,w=!1,ne=!1;if(pt!=null&&pt.id!==re.current){re.current=pt.id;let n=pt.visibleIndex,r=t.getVisibleRows(n,n)[0]??null;if(r!=null){let t=h?Math.max(0,Math.min(r.ancestorPaths.length*s,Math.max(0,F-s))):wt;w=!0,ne=rb(e,n,s,F,Ct,pt.offset,t)}t.clearScrollRequest(pt.id)}let ie=!w&&l&&ib(e,N,s,F,Ct,u),ae=!w&&d!=null&&d===M&&ib(e,N,s,F,Ct,wt),D=!w&&m!=null&&m.path===M&&ib(e,N,s,F,Ct,m.viewportOffset),le=!w&&g!=null&&g.path===M&&e.scrollTop!==g.scrollTop;if(le&&(e.scrollTop=g.scrollTop),(le||ne||ae||D||ie||v&&y&&d!==M&&!b&&nb(e,N,s,F,wt))&&T.current(),w){oe.current=M;return}if(!v){oe.current=M;return}if(o){oe.current=M;return}if(c&&!l){oe.current=M;return}if(r==null){l&&N>=0&&(ib(e,N,s,F,Ct,u),T.current()),oe.current=M;return}(y||l||d===M||p===M||m?.path===M||g?.path===M||a==null||a!==M)&&(Zy(r),d===M&&(Fe.current=null),p===M&&(Ie.current=null),m?.path===M&&(Le.current=null),g?.path===M&&(Re.current=null),se.current=!1,ce.current=null),oe.current=M},[t,N,M,Et,s,ut,dt,I,F,f,pt,h,wt,Ct,St]);let tn=N>=0&&N>=P.visible.startIndex&&N<=P.visible.endIndex,nn=M!=null&&L.some(e=>Lb(e.row)===M),rn=tn||nn,an=$e&&E.current===!0&&rn?M:null,on=Ae===`pointer`?Ee:null,sn=O?.path??ze.current??on??an??Ee,cn=O?.source===`right-click`;Eb(()=>{y.current&&O==null||Pt(at(sn))},[O,at,I,F,Me,L,sn,Pt,St]);let ln=Ob(e=>{if(y.current||ax(e))return;let t=e.target;if(!(t instanceof HTMLElement)||t.closest?.(`[data-type="context-menu-trigger"]`)!=null)return;let n=t.closest?.(`[data-file-tree-sticky-row="true"]`),r=t.closest?.(`[data-type="item"]`),i=n instanceof HTMLElement?n.dataset.fileTreeStickyPath??null:r instanceof HTMLElement?r.dataset.itemPath??null:null;i!=null&&je(e=>e===`pointer`?e:`pointer`),De(e=>e===i?e:i)},[]),un=Ob(()=>{De(null)},[]);Eb(()=>{if(!mt)return;let e=()=>{Gt(),t.cancelDrag()};return window.addEventListener(`dragend`,e),()=>{window.removeEventListener(`dragend`,e),Gt(),t.cancelDrag()}},[t,mt]);let dn=e=>{if(!mt||t.getDragSession()==null||ge.current)return;let n=Kb(e.target instanceof HTMLElement?e.target:null);t.setDragTarget(n),qt(t.getDragSession()?.target??null),Yt(e.clientX,e.clientY),e.dataTransfer!=null&&(e.dataTransfer.dropEffect=`move`),e.preventDefault()},fn=e=>{if(!mt||t.getDragSession()==null||ge.current)return;let n=e.relatedTarget;n instanceof Node&&S.current?.contains(n)===!0||(Vt(),Ut(),t.setDragTarget(null))},pn=e=>{!mt||t.getDragSession()==null||ge.current||(e.preventDefault(),Kt(e.clientX,e.clientY),t.completeDrag(),Ht(),Vt(),Ut(),me.current=null)},mn=P.window.height,hn=P.window.offsetTop,gn=Math.min(0,F-mn),_n=Math.min(0,F-mn-wt),vn=we===M||se.current,yn=M!=null&&vn&&!Et&&N>=0?St[N]??t.getVisibleRows(N,N)[0]??null:null,bn=yn==null?null:ab(N,s,I,mn),xn=me.current,Sn=vt!=null&&xn!=null&&xn.path===vt&&xn.index>=I.start&&xn.index<=I.end,Cn=vt!=null&&xn!=null&&xn.path===vt&&!Sn&&xn.path!==yn?.path?xn:null,wn=Cn==null?null:ab(Cn.index,s,I,mn),Tn=tx((N>=0?St[N]??t.getVisibleRows(N,N)[0]??null:null)?.ancestorPaths.at(-1)??null),En=dt&&M!=null?gx(o,M,!Et):void 0,Dn=O?.path??(dt?M:we),On=O?.path??Ee,kn=at(sn),An=A&&$e&&!cn&&!ut&&kn!=null&&Oe!=null&&sn!=null,jn=A&&(An||O!=null),Mn=O?.anchorRect,Nn=Mn==null&&kn!=null&&Oe!=null&&(O!=null||An)?Oe:null,Pn=Mn==null?Nn==null?void 0:{top:`${Nn}px`}:{left:`${Mn.left}px`,position:`fixed`,right:`auto`,top:`${Mn.top}px`},Fn=cn?{opacity:`0`}:void 0,In=Ob((e,n,r,i)=>{let a=lb({event:{ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey},isDirectory:n.kind===`directory`,isSearchOpen:dt,mode:i}),o=a.toggleDirectory&&n.kind===`directory`,s=o?t.resolveMountedDirectoryPathFromInput(r):null;if(o&&s==null)return;let c=s??r;switch(a.selection.kind){case`range`:t.selectPathRange(c,a.selection.additive);break;case`toggle`:t.togglePathSelectionFromInput(c);break;case`single`:t.selectOnlyMountedPathFromInput(c)}let l=e.currentTarget instanceof HTMLElement?e.currentTarget:null,u=n.index>=P.visible.startIndex&&n.index<=P.visible.endIndex,d=i===`flow`&&u&&l!=null&&l.dataset.itemParked!==`true`;t.focusMountedPathFromInput(c),d&&(E.current=!0,Te(e=>e===c?e:c),je(`focus`)),o&&t.toggleMountedDirectoryFromInput(c),a.closeSearch&&t.closeSearch(),a.revealCanonical&&Lt(c,{targetOffset:`sticky-parents`})},[t,dt,P.visible.endIndex,P.visible.startIndex,Lt]),Ln=()=>{if(y.current||!$e||sn==null||kn==null)return;let e=t.getItem(sn);e!=null&&(Pt(kn),jt.current=!0,k({anchorRect:null,item:{kind:e.isDirectory()?`directory`:`file`,name:kn.getAttribute(`aria-label`)??sn,path:e.getPath()},path:e.getPath(),source:`button`}))},Rn={contextHoverPath:On,contextMenuButtonTriggerEnabled:$e,contextMenuButtonVisibility:et,contextMenuEnabled:A,contextMenuRightClickEnabled:tt,contextMenuTriggerMode:j,controller:t,directoriesWithGitChanges:i,dragAndDropEnabled:mt,draggedPathSet:gt,dragTarget:_t,gitLaneActive:ot,gitStatusByPath:n,handleRowDragEnd:Zt,handleRowDragStart:Xt,handleRowTouchStart:Qt,ignoredGitDirectories:r,ignoredInheritanceCache:xe,instanceId:o,itemHeight:s,onKeyDown:$t,onRowClick:In,openContextMenuForRow:Ft,registerButton:nt,registerRenameInput:it,renameView:ct,renderDecorationForRow:Dt,resolveIcon:st,shouldSuppressContextMenu:Rt,visualFocusPath:Dn},zn={...Rn,registerButton:rt};return X(`div`,{ref:S,id:yt,"data-file-tree-context-menu-button-visibility":A&&$e?et:void 0,"data-file-tree-context-menu-trigger-mode":A?j:void 0,"data-file-tree-has-context-menu-action-lane":A&&$e?`true`:void 0,"data-file-tree-has-git-lane":ot?`true`:void 0,"data-file-tree-virtualized-root":`true`,onDragLeave:mt?fn:void 0,onDragOver:mt?dn:void 0,onDrop:mt?pn:void 0,onKeyDown:$t,onPointerLeave:A?un:void 0,onPointerOver:A?ln:void 0,role:`tree`,tabIndex:-1,style:{outline:`none`,position:`relative`},children:[X(`style`,{"data-file-tree-guide-style":`true`,dangerouslySetInnerHTML:{__html:Tn}}),X(`slot`,{name:Ep,"data-type":`header-slot`}),f?X(`div`,{"data-file-tree-search-container":!0,"data-open":dt?`true`:`false`,children:X(`input`,{ref:ee,"aria-activedescendant":En,"aria-controls":yt,placeholder:`Search…`,"data-file-tree-search-input":!0,"data-file-tree-search-input-fake-focus":Ge?`true`:void 0,value:ft,onBlur:()=>{d===`retain`&&!qe.current||t.closeSearch()},onFocus:Je,onPointerDown:Je,onInput:e=>{Je();let n=e.currentTarget;t.setSearch(n.value)}})}):null,X(`div`,{ref:C,"data-file-tree-virtualized-scroll":`true`,children:[h&&Ze&&L.length>0?X(`div`,{"aria-hidden":`true`,"data-file-tree-sticky-overlay":`true`,children:X(`div`,{"data-file-tree-sticky-overlay-content":`true`,style:{height:`${bt}px`},children:L.map((e,t)=>xx(zn,e.row,`sticky:${Lb(e.row)}`,{mode:`sticky`,style:{left:`0`,position:`absolute`,right:`0`,top:`${e.top}px`,zIndex:`${L.length-t}`}}))})}):null,X(`div`,{ref:b,"data-file-tree-virtualized-list":`true`,style:{height:`${Ct}px`},children:[X(`div`,{"data-file-tree-virtualized-sticky-offset":`true`,"aria-hidden":`true`,style:{height:`${hn}px`}}),X(`div`,{"data-file-tree-virtualized-sticky":`true`,style:{height:`${mn}px`,top:`${gn}px`,bottom:`${_n}px`},children:[Sx(Rn,I,Tt),yn!=null&&bn!=null?xx(Rn,yn,`parked:${yn.path}`,{isParked:!0,style:{left:`0`,opacity:`0`,pointerEvents:vt===yn.path?`none`:void 0,position:`absolute`,right:`0`,top:`${bn}px`}}):null,Cn!=null&&wn!=null?xx(Rn,Cn,`parked-drag:${Cn.path}`,{isParked:!0,style:{left:`0`,opacity:`0`,pointerEvents:`none`,position:`absolute`,right:`0`,top:`${wn}px`}}):null]})]})]}),A?X(`div`,{ref:_,"data-type":`context-menu-anchor`,"data-visible":jn?`true`:`false`,style:Pn,children:[X(`button`,{ref:v,type:`button`,"data-type":Op,"aria-label":`Options`,"aria-haspopup":`menu`,"aria-expanded":O==null?`false`:`true`,"data-visible":An?`true`:`false`,onMouseDown:e=>{e.preventDefault()},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),O!=null){Nt();return}Ln()},tabIndex:-1,style:Fn,children:X(gy,{...st(`file-tree-icon-ellipsis`)})}),O==null?null:X(`slot`,{name:Dp})]}):null,O==null?null:X(`div`,{"data-type":`context-menu-wash`,"aria-hidden":`true`,onMouseDownCapture:e=>{e.preventDefault(),Nt()},onTouchStartCapture:e=>{e.preventDefault(),e.stopPropagation(),Nt()},onTouchMoveCapture:e=>{e.preventDefault(),e.stopPropagation()},onWheelCapture:e=>{e.preventDefault(),e.stopPropagation()}})]})}var wx={hydrateRoot:(e,t)=>{dy(Vv(Cx,t),e)},renderRoot:(e,t)=>{uy(Vv(Cx,t),e)},unmountRoot:e=>{uy(null,e)}};function Tx(e,t){wx.renderRoot(e,t)}function Ex(e,t){wx.hydrateRoot(e,t)}function Dx(e){wx.unmountRoot(e)}var Ox=class{#e=new Map;#t=null;clearAll(){for(let e of this.#e.values())e.remove();this.#e.clear()}clearSlotContent(e){let t=this.#n(e);t!=null&&(t.remove(),this.#e.delete(e))}setHost(e){if(this.#t=e,e!=null){this.#i(e);for(let[e,t]of this.#e)this.#r(e,t)}}setSlotContent(e,t){let n=this.#n(e);if(n===t){t!=null&&(this.#e.set(e,t),this.#r(e,t));return}if(n?.remove(),t==null){this.#e.delete(e);return}this.#e.set(e,t),this.#r(e,t)}setSlotHtml(e,t){let n=t?.trim()??``;if(n.length===0){this.setSlotContent(e,null);return}let r=this.#n(e);if(r!=null&&r.innerHTML===n){this.#e.set(e,r),this.#r(e,r);return}let i=document.createElement(`div`);i.innerHTML=n,this.setSlotContent(e,i)}#n(e){let t=this.#e.get(e)??null;if(t!=null)return t;let n=this.#t;if(n==null)return null;for(let t of Array.from(n.children))if(t instanceof HTMLElement&&t.dataset.fileTreeManagedSlot===e)return t;return null}#r(e,t){t.slot=e,t.dataset.fileTreeManagedSlot=e,this.#t!=null&&t.parentNode!==this.#t&&this.#t.appendChild(t)}#i(e){for(let t of Array.from(e.children)){if(!(t instanceof HTMLElement))continue;let e=t.dataset.fileTreeManagedSlot;e==null||this.#e.has(e)||this.#e.set(e,t)}}};Array.isArray;var kx=0;function Ax(e){return e!=null&&e.length>0?e:(kx+=1,`pst_ft_${kx}`)}function jx({initialVisibleRowCount:e,itemHeight:t}){return e==null?420:Math.max(0,e)*(t??h_)}function Mx(e){if(typeof document>`u`)return;let t=document.createElement(`div`);t.innerHTML=e;let n=t.querySelector(`svg`);return n instanceof SVGElement?n:void 0}function Nx(e){return e.querySelector(`#file-tree-icon-chevron`)instanceof SVGElement&&e.querySelector(`#file-tree-icon-file`)instanceof SVGElement&&e.querySelector(`#file-tree-icon-dot`)instanceof SVGElement&&e.querySelector(`#file-tree-icon-lock`)instanceof SVGElement}function Px(e){return Array.from(e.children).filter(e=>e instanceof SVGElement)}var Fx=class{static LoadedCustomComponent=!0;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=new Ox;#u;#d;#f;#p;#m;#h;#g;#_;#v;#y=null;#b;#x=!1;#S=!1;constructor(e){let{composition:t,density:n,fileTreeSearchMode:r,gitStatus:i,id:a,initialSearchQuery:o,icons:s,itemHeight:c,onSearchChange:l,onSelectionChange:u,overscan:d,renderRowDecoration:f,renaming:p,search:m,searchBlurBehavior:h,searchFakeFocus:g,stickyFolders:_,unsafeCSS:v,initialVisibleRowCount:y,...b}=e;this.#e=t,this.#n=Ax(a),this.#p=_v(i),this.#m=s,this.#h=v,this.#r=u,this.#i=f,this.#a=p!=null&&p!==!1,this.#o=h,this.#s=m===!0,this.#c=g===!0,this.#u=m_(n,c),this.#d={itemHeight:this.#u.itemHeight,overscan:d,stickyFolders:_,initialVisibleRowCount:y},this.#t=new fv({...b,fileTreeSearchMode:r,initialSearchQuery:o,onSearchChange:l,renaming:p}),this.#v=this.#t.getSelectionVersion(),this.#y=this.#r==null?null:this.subscribe(()=>{this.#D()})}unmount(){this.#b!=null&&(Dx(this.#b),delete this.#b.dataset.fileTreeVirtualizedWrapper,this.#b=void 0),this.#l.clearAll(),this.#l.setHost(null),this.#f!=null&&(delete this.#f.dataset.fileTreeVirtualized,this.#I(this.#f),this.#f=void 0)}cleanUp(){this.unmount(),this.#y?.(),this.#y=null,this.#t.destroy()}getFileTreeContainer(){return this.#f}getItem(e){return this.#t.getItem(e)}getFocusedItem(){return this.#t.getFocusedItem()}getFocusedPath(){return this.#t.getFocusedPath()}getFocusedIndex(){return this.#t.getFocusedIndex()}getVisibleCount(){return this.#t.getVisibleCount()}getVisibleRows(e,t){return this.#t.getVisibleRows(e,t)}getSelectedPaths(){return this.#t.getSelectedPaths()}getComposition(){return this.#e}getItemHeight(){return this.#u.itemHeight}getDensityFactor(){return this.#u.factor}subscribe(e){let t=!1;return this.#t.subscribe(()=>{if(!t){t=!0;return}e()})}focusPath(e){this.#t.focusPath(e)}focusFirstItem(){this.#t.focusFirstItem()}focusLastItem(){this.#t.focusLastItem()}focusNextItem(){this.#t.focusNextItem()}focusPreviousItem(){this.#t.focusPreviousItem()}focusParentItem(){this.#t.focusParentItem()}scrollToPath(e,t){this.#t.scrollToPath(e,t)}focusNearestPath(e){return this.#t.focusNearestPath(e)}add(e){this.#t.add(e)}batch(e){this.#t.batch(e)}applyGitStatusPatch(e){let t=vv(this.#p,e);if(t===this.#p)return;this.#p=t;let n=this.#T();n!=null&&Tx(n.wrapper,this.#w())}move(e,t,n){this.#t.move(e,t,n)}onMutation(e,t){return this.#t.onMutation(e,t)}setSearch(e){this.#t.setSearch(e)}openSearch(e){this.#t.openSearch(e)}closeSearch(){this.#t.closeSearch()}isSearchOpen(){return this.#t.isSearchOpen()}getSearchValue(){return this.#t.getSearchValue()}getSearchMatchingPaths(){return this.#t.getSearchMatchingPaths()}focusNextSearchMatch(){this.#t.focusNextSearchMatch()}focusPreviousSearchMatch(){this.#t.focusPreviousSearchMatch()}startRenaming(e,t){return this.#t.startRenaming(e,t)}remove(e,t){this.#t.remove(e,t)}resetPaths(e,t){Array.isArray(e)?this.#t.resetPaths(e,t):this.#t.resetPaths(e)}setComposition(e){this.#e=e;let t=this.#T();t!=null&&(this.#O(),Tx(t.wrapper,this.#w()))}setGitStatus(e){let t=_v(e,this.#p);if(t===this.#p)return;this.#p=t;let n=this.#T();n!=null&&Tx(n.wrapper,this.#w())}setIcons(e){this.#m=e;let t=this.#T();t!=null&&(this.#E(t.host,t.wrapper),Tx(t.wrapper,this.#w()))}hydrate({fileTreeContainer:e}){let t=this.#P(e),n=this.#N(t);this.#O(),Ex(n,this.#w())}render({containerWrapper:e,fileTreeContainer:t}){let n=this.#P(t??this.#f,e),r=this.#N(n);this.#O(),Tx(r,this.#w())}#C(){return{initialViewportHeight:jx({initialVisibleRowCount:this.#d.initialVisibleRowCount,itemHeight:this.#d.itemHeight}),itemHeight:this.#d.itemHeight,overscan:this.#d.overscan,stickyFolders:this.#d.stickyFolders}}#w(){return{composition:this.#e,controller:this.#t,gitStatusByPath:this.#p?.statusByPath,ignoredGitDirectories:this.#p?.ignoredDirectoryPaths,directoriesWithGitChanges:this.#p?.directoriesWithChanges,icons:this.#m,instanceId:this.#n,renamingEnabled:this.#a,renderRowDecoration:this.#i,searchBlurBehavior:this.#o,searchEnabled:this.#s,searchFakeFocus:this.#c,slotHost:this.#l,...this.#C()}}#T(){let e=this.#f,t=this.#b;return e==null||t==null?null:{host:e,wrapper:t}}#E(e,t){let n=e.shadowRoot;n!=null&&(this.#k(n),this.#A(n)),this.#j(t)}#D(){let e=this.#r;if(e==null)return;let t=this.#t.getSelectionVersion();t!==this.#v&&(this.#v=t,e(this.#t.getSelectedPaths()))}#O(){let e=this.#e?.header?.render;if(e!=null){this.#l.setSlotContent(Ep,e());return}this.#l.setSlotHtml(Ep,this.#e?.header?.html??null)}#k(e){let t=Px(e).find(e=>Nx(e)),n=Mx(gp(Ap(this.#m).set));n!=null&&(t==null||t.outerHTML!==n.outerHTML)&&(t==null?e.prepend(n):t.replaceWith(n))}#A(e){let t=Px(e),n=t.find(e=>Nx(e)),r=t.filter(e=>e!==n),i=Ap(this.#m).spriteSheet?.trim()??``;if(i.length===0){for(let e of r)e.remove();return}let a=Mx(i);if(a==null){for(let e of r)e.remove();return}if(r.length!==1||r[0].outerHTML!==a.outerHTML){for(let e of r)e.remove();e.appendChild(a)}}#j(e){let t=Ap(this.#m);t.colored&&vp(t.set)?e.dataset.fileTreeColoredIcons=`true`:delete e.dataset.fileTreeColoredIcons}#M(e){let t=e.querySelector(`style[${Sp}]`);if(this.#g==null&&t instanceof HTMLStyleElement&&(this.#g=t),this.#h==null||this.#h===``){this.#g?.remove(),this.#g=void 0,this.#_=void 0;return}(this.#g?.parentNode!==e||this.#_!==this.#h)&&(this.#g??=document.createElement(`style`),this.#g.setAttribute(Sp,``),this.#g.parentNode!==e&&e.appendChild(this.#g),this.#g.textContent=y_(this.#h),this.#_=this.#h)}#N(e){if(this.#b!=null)return this.#b;let t=e.shadowRoot;if(t==null)throw Error(`FileTree requires a shadow root`);let n=Array.from(t.children).filter(e=>e instanceof HTMLDivElement&&typeof e.dataset.fileTreeId==`string`&&e.dataset.fileTreeId.length>0),r=n.find(e=>e.dataset.fileTreeId===this.#n)??n[0];return r!=null&&(this.#n=r.dataset.fileTreeId??this.#n),this.#b=r??document.createElement(`div`),this.#b.dataset.fileTreeId=this.#n,this.#b.dataset.fileTreeVirtualizedWrapper=`true`,this.#E(e,this.#b),this.#b.parentNode!==t&&t.appendChild(this.#b),this.#b}#P(e,t){let n=e??this.#f??document.createElement(`file-tree-container`);t!=null&&n.parentNode!==t&&t.appendChild(n);let r=n.shadowRoot??n.attachShadow({mode:`open`});return T_(n,r),this.#M(r),n.dataset.fileTreeVirtualized=`true`,n.style.display=`flex`,this.#F(n),this.#l.setHost(n),this.#f=n,n}#F(e){e.style.getPropertyValue(`--trees-item-height`)===``&&(e.style.setProperty(`--trees-item-height`,`${String(this.#u.itemHeight)}px`),this.#x=!0),e.style.getPropertyValue(`--trees-density-override`)===``&&(e.style.setProperty(`--trees-density-override`,String(this.#u.factor)),this.#S=!0)}#I(e){this.#x&&=(e.style.removeProperty(`--trees-item-height`),!1),this.#S&&=(e.style.removeProperty(`--trees-density-override`),!1)}},Ix=`
7400
+ }`}var Mv=new WeakMap;function Nv(e){let t=Mv.get(e);if(t!=null)return t;let n=document.createElement(`div`);n.setAttribute(Fm,`true`);let r=document.createElement(`div`);r.style.position=`relative`,r.style.height=`200%`,n.appendChild(r),e.appendChild(n);let i=Math.max(n.offsetWidth-n.clientWidth,0);return n.remove(),Mv.set(e,i),i}function Pv(e,t){if(!e.isConnected)return;let n=Nv(t);if(n==null)return;let r=t.querySelector(`style[${Im}]`),i=r instanceof HTMLStyleElement?r:document.createElement(`style`);r instanceof HTMLStyleElement||(i.setAttribute(Im,``),t.appendChild(i)),i.textContent=`:host { ${Lm}: ${n}px; }`}var Fv;function Iv(e){if(typeof CSSStyleSheet<`u`&&typeof CSSStyleSheet.prototype.replaceSync==`function`&&`adoptedStyleSheets`in e){Fv??(Fv=new CSSStyleSheet,Fv.replaceSync(Av(Ov)));let t=!1;try{e.adoptedStyleSheets=[Fv],t=!0}catch{}if(t){e.querySelector(`style[${Nm}]`)?.remove();return}}if(e.querySelector(`style[data-file-tree-style]`)==null){let t=document.createElement(`style`);t.setAttribute(Nm,``),t.textContent=Av(Ov),e.prepend(t)}}function Lv(e,t){Rv(e,t),Iv(t),Pv(e,t)}function Rv(e,t){let n=e.querySelector(`template[shadowrootmode="open"], template[data-file-tree-shadowrootmode="open"]`);n instanceof HTMLTemplateElement&&(t.childNodes.length>0||(t.appendChild(n.content.cloneNode(!0)),n.hasAttribute(`shadowrootmode`)&&n.remove()))}if(typeof HTMLElement<`u`&&customElements.get(`file-tree-container`)==null){class e extends HTMLElement{constructor(){super()}connectedCallback(){let e=this.shadowRoot??this.attachShadow({mode:`open`});Lv(this,e)}}if(customElements.define(Mm,e),typeof document<`u`)for(let e of Array.from(document.querySelectorAll(Mm)))e instanceof HTMLElement&&Lv(e,e.shadowRoot??e.attachShadow({mode:`open`}))}var zv=e=>e.startsWith(`f::`)?e.slice(3):e;function Bv(e){let t=e.lastIndexOf(`/`);return t<0?{parentPath:``,baseName:e}:{parentPath:e.slice(0,t),baseName:e.slice(t+1)}}function Vv(e,t){return e===``?t:`${e}/${t}`}function Hv({files:e,path:t,isFolder:n,nextBasename:r}){let i=zv(t),a=r.trim();if(a.length===0)return{error:`Name cannot be empty.`};if(a.includes(`/`))return{error:`Name cannot include "/".`};let{parentPath:o,baseName:s}=Bv(i);if(a===s)return{nextFiles:e,sourcePath:i,destinationPath:i,isFolder:n};let c=Vv(o,a),l=Array(e.length),u=new Set;if(!n){let t=`${c}/`,r=!1;for(let n=0;n<e.length;n++){let a=e[n];if(a!==i&&a.startsWith(t))return{error:`"${c}" already exists.`};let o=a===i?c:a;if(u.has(o))return{error:`"${c}" already exists.`};u.add(o),l[n]=o,a===i&&(r=!0)}return r?{nextFiles:l,sourcePath:i,destinationPath:c,isFolder:n}:{error:`Could not find the selected file to rename.`}}let d=`${i}/`,f=`${c}/`,p=0;for(let t=0;t<e.length;t++){let n=e[t],r=n===i||n.startsWith(d);if(!r&&(n===c||n.startsWith(f)))return{error:`"${c}" already exists.`};let a=r?`${c}${n.slice(i.length)}`:n;if(u.has(a))return{error:`"${c}" already exists.`};u.add(a),l[t]=a,r&&p++}return p===0?{error:`Could not find the selected folder to rename.`}:{nextFiles:l,sourcePath:i,destinationPath:c,isFolder:n}}function Uv(e){return e.endsWith(`/`)}function Wv(e){let t=e.endsWith(`/`)?e.slice(0,-1):e,n=t.lastIndexOf(`/`),r=n<0?t:t.slice(n+1);return e.endsWith(`/`)?`${r}/`:r}function Gv(e){let t=[],n=new Set;for(let r of e)n.has(r)||(n.add(r),t.push(r));let r=new Set;for(let e of t.toSorted((e,t)=>e.length===t.length?e.localeCompare(t):e.length-t.length)){let t=(e.endsWith(`/`)?e.slice(0,-1):e).split(`/`),n=!1;for(let e=0;e<t.length-1;e+=1){let i=`${t.slice(0,e+1).join(`/`)}/`;if(r.has(i)){n=!0;break}}n||r.add(e)}return t.filter(e=>r.has(e))}function Kv(e,t){return t.includes(e)?Gv(t):[e]}function qv(e,t){return e===t?!0:e==null||t==null?!1:e.kind===t.kind&&e.directoryPath===t.directoryPath&&e.flattenedSegmentPath===t.flattenedSegmentPath&&e.hoveredPath===t.hoveredPath}function Jv(e,t){return{draggedPaths:e,target:t}}function Yv(e,t){if(t.kind!==`directory`||t.directoryPath==null)return!1;for(let n of e)if(Uv(n)&&(t.directoryPath===n||t.directoryPath.startsWith(n)))return!0;return!1}function Xv(e,t){return t.kind===`root`||t.directoryPath==null?Wv(e):t.directoryPath}function Zv(e,t){let n=e.map(e=>{let n=Xv(e,t);return n===e?null:{from:e,to:n,type:`move`}}).filter(e=>e!=null);return n.length===0?null:{operations:n,result:{draggedPaths:e,operation:n.length===1?`move`:`batch`,target:t}}}function Qv(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0}function $v(e,t,n){let{paths:r,preparedInput:i}=e;if(i==null){if(r==null)throw Error(`FileTree requires paths or preparedInput`);return{paths:r,preparedInput:void 0}}let a=i.paths;if(r==null)return{paths:a,preparedInput:i};if(!Qv(Sv.preparePaths(r,n==null?{}:{sort:n}),a))throw Error(`FileTree ${t} received paths and preparedInput for different path lists`);return{paths:a,preparedInput:i}}function ey(e){return e.operation===`add`||e.operation===`remove`||e.operation===`move`||e.operation===`batch`}function ty(e,t,n){if(e===t)return n;let r=t.endsWith(`/`)?t:`${t}/`;return e.startsWith(r)?`${n.endsWith(`/`)?n:`${n}/`}${e.slice(r.length)}`:e}function ny(e,t){if(e===t)return!0;let n=t.endsWith(`/`)?t:`${t}/`;return e.startsWith(n)}function ry(e,t,n=!1){if(e==null)return null;switch(t.operation){case`add`:case`expand`:case`collapse`:case`mark-directory-unloaded`:case`begin-child-load`:case`apply-child-patch`:case`complete-child-load`:case`fail-child-load`:case`cleanup`:return e;case`remove`:return ny(e,t.path)?n?e:null:e;case`move`:return ty(e,t.from,t.to);case`batch`:{let r=e;for(let e of t.events)if(r=ry(r,e,n),r==null)return null;return r}}}function iy(e){return{canonicalChanged:e.canonicalChanged,projectionChanged:e.projectionChanged,visibleCountDelta:e.visibleCountDelta}}function ay(e){switch(e.operation){case`add`:return{...iy(e),operation:`add`,path:e.path};case`remove`:return{...iy(e),operation:`remove`,path:e.path,recursive:e.recursive};case`move`:return{...iy(e),from:e.from,operation:`move`,to:e.to}}}function oy(e){return{...iy(e),events:e.events.filter(e=>e.operation===`add`||e.operation===`remove`||e.operation===`move`).map(e=>ay(e)),operation:`batch`}}function sy(e){switch(e.operation){case`add`:case`remove`:case`move`:return ay(e);case`batch`:return oy(e);default:return null}}function cy(e,t){if(e.size!==t.length)return!1;for(let n of t)if(!e.has(n))return!1;return!0}function ly(e){let t=e.endsWith(`/`)?e.slice(0,-1):e;if(t.length===0)return[];let n=t.split(`/`);return n.slice(0,-1).map((e,t)=>`${n.slice(0,t+1).join(`/`)}/`)}function uy(e){return ly(e).at(-1)??null}function dy(e,t){return t==null?e:e.startsWith(t)?e.slice(t.length):e}function fy(e){return e.endsWith(`/`)}var py=e=>e.toLowerCase();function my(e){let t=e.endsWith(`/`)?e.slice(0,-1):e,n=t.lastIndexOf(`/`);return n<0?t:t.slice(n+1)}function hy(e){return e.endsWith(`/`)?e.slice(0,-1):e}function gy(e,t){return t&&!e.endsWith(`/`)?`${e}/`:e}var _y=e=>{let t=e.trim();return t.length===0?``:(t.includes(`\\`)?t.replaceAll(`\\`,`/`):t).toLowerCase()},vy=Symbol(`FILE_TREE_RENAME_VIEW`),yy=512,by=512;function xy(e){return e===`top`||e===`center`?e:`nearest`}function Sy(e,t,n){if(e===0)return-1;if(n!=null){let e=t(n);if(e!=null)return e;let r=ly(n);for(let e=r.length-1;e>=0;--e){let n=r[e];if(n==null)continue;let i=t(n);if(i!=null)return i}}return 0}function Cy(e,t,n){if(e.paths.length===0)return{focusedIndex:-1,getParentIndex:e.getParentIndex,paths:e.paths,posInSetByIndex:e.posInSetByIndex,setSizeByIndex:e.setSizeByIndex};if(t==null)return{focusedIndex:0,getParentIndex:e.getParentIndex,paths:e.paths,posInSetByIndex:e.posInSetByIndex,setSizeByIndex:e.setSizeByIndex};let r=n??(t=>e.visibleIndexByPath.get(t)??null);return{focusedIndex:Sy(e.paths.length,r,t),getParentIndex:e.getParentIndex,paths:e.paths,posInSetByIndex:e.posInSetByIndex,setSizeByIndex:e.setSizeByIndex}}var wy=class e{static{Object.defineProperty(e.prototype,vy,{configurable:!0,value(){return{cancel:()=>{this.#q()},commit:()=>{this.#J()},getPath:()=>this.#T,getValue:()=>this.#E,isActive:()=>this.#T!=null,setValue:e=>{this.#Y(e)}}},writable:!0})}#e;#t=new Set;#n=new Map;#r=null;#i=null;#a=new Map;#o=new Map;#s=-1;#c=null;#l=!1;#u=e=>-1;#d=new Map;#f=null;#p=null;#m=null;#h=null;#g=null;#_;#v;#y;#b=[];#x=new Int32Array;#S=new Int32Array;#C=void 0;#w=!1;#T=null;#E=``;#D=!1;#O=new Set;#k=[];#A;#j=null;#M=null;#N=null;#P=null;#F=null;#I=null;#L=null;#R=0;#z=null;#B=new Set;#V=0;#H;#U=0;#W=!1;#G=0;#K;constructor(e){let{dragAndDrop:t,fileTreeSearchMode:n,initialSearchQuery:r,initialSelectedPaths:i,renaming:a,onSearchChange:o,paths:s,preparedInput:c,...l}=e,u=$v({paths:s,preparedInput:c},`constructor`,l.sort);this.#e=l,t!=null&&t!==!1&&(this.#r=t===!0?{}:t),this.#w=a!=null&&a!==!1,a!=null&&a!==!1&&a!==!0&&(this.#C=a.canRename,this.#v=a.onError,this.#_=a.onRename),this.#y=o,this.#A=n??`hide-non-matches`,this.#H=this.#le(u.paths,u.preparedInput);let d=i?.map(e=>this.#Ne(e)).filter(e=>e!=null)??[],f=d.at(-1)??null;d.length>0&&(this.#B=new Set(d),this.#z=f,this.#V=1),this.#je(f,!1),r!=null&&this.#Te(r,!1),this.#K=this.#Re()}destroy(){this.#K?.(),this.#K=null,this.#n.clear(),this.#t.clear(),this.#d.clear(),this.#i=null,this.#he()}focusFirstItem(){this.#be().length>0&&this.#Fe(0)}focusLastItem(){this.#G<=0||(this.#Ie(),this.#Fe(this.#G-1))}focusNextItem(){this.#Ae(1)}focusParentItem(){if(this.#c==null)return;let e=uy(this.#c);if(e==null)return;let t=this.#Z(e);t>=0&&this.#Fe(t)}focusPath(e){let t=this.#H.getPathInfo(e)?.path??null;if(t==null)return;this.#Ie();let n=this.#Z(t);n>=0&&this.#Fe(n)}scrollToPath(e,t){let n=this.#H.getPathInfo(e)?.path??null;if(n==null)return;this.#Ie();let r=this.#xe(n);r<0||this.#Me(r)!=null&&(t?.focus!==!1&&this.#Fe(r,!1),this.#L={id:this.#R+=1,offset:xy(t?.offset),visibleIndex:r},this.#De())}focusMountedPathFromInput(e){let t=this.#H.getPathInfo(e)?.path??null;if(t==null)return;let n=this.#Z(t);n>=0&&this.#Fe(n)}focusNearestPath(e){let t=this.resolveNearestVisiblePath(e);if(t==null)return null;let n=this.#Z(t);return n>=0?(this.#Fe(n),this.#be()[n]??t):null}focusPreviousItem(){this.#Ae(-1)}getFocusedIndex(){return this.#s}getFocusedItem(){return this.#c==null?null:this.#Q(this.#c)}getFocusedPath(){return this.#c}getScrollRequest(){return this.#L}clearScrollRequest(e){this.#L?.id===e&&(this.#L=null)}resolveNearestVisiblePath(e){let t=this.#be();if(this.#G===0)return null;if(e==null)return this.#c??t[0]??null;let n=this.#H.getPathInfo(e)?.path??e,r=this.#Z(n);return r>=0?t[r]??n:this.#X(n)??this.#c??t[0]??null}getSelectedPaths(){return[...this.#B]}getSelectionVersion(){return this.#V}getVisibleCount(){return this.#G}getVisibleRows(e,t){if(t<e||this.#G===0)return[];let n=Math.max(0,e),r=Math.min(this.#G-1,t);if(r<n)return[];let i=r-n+1;if(this.#F==null&&!this.#l&&r>=this.#b.length&&i<=by){let e=[];for(let t=n;t<=r;t+=1){let n=this.#H.getVisibleRowContext(t);if(n==null)break;e.push(this.#ee(n))}return e}if(!this.#l&&r>=this.#b.length&&this.#Ie(),this.#F!=null){let e=Array.from({length:r-n+1},(e,t)=>this.#Se(n+t)),t=new Map,i=e[0]??-1,a=i;for(let n=1;n<=e.length;n+=1){let r=e[n];if(r!=null&&r===a+1){a=r;continue}if(i>=0&&this.#H.getVisibleSlice(i,a).forEach((e,n)=>{t.set(i+n,e)}),r==null){i=-1,a=-1;continue}i=r,a=r}return Array.from({length:r-n+1},(e,r)=>{let i=n+r,a=this.#Se(i),o=t.get(a),s=this.#b[a];if(o==null||s==null)throw Error(`Missing projection row for filtered visible index ${String(i)}`);return this.#$(o,i,a,{ancestorPaths:this.#re(a),path:s})})}return this.#H.getVisibleSlice(n,r).map((e,t)=>{let r=n+t,i=this.#b[r];if(i==null)throw Error(`Missing projection path for visible index ${String(r)}`);return this.#$(e,r,r,{ancestorPaths:this.#re(r),path:i})})}getStickyRowCandidates(e,t){if(this.#F!=null)return null;if(this.#G===0||e<=0||t<=0)return[];let n=[];for(let r=0;r<this.#G;r+=1){let i=e+r*t,a=Math.min(this.#G-1,Math.floor(i/t)),o=this.#te(a,r)??(a>0?this.#te(a-1,r):void 0);if(o==null)break;n.push({row:this.#ee(o),subtreeEndIndex:o.subtreeEndIndex})}return n}getItem(e){let t=this.#H.getPathInfo(e);return t==null?null:this.#Q(t.path,t)}resolveMountedDirectoryPathFromInput(e){let t=this.#H.getPathInfo(e);return t?.kind===`directory`?t.path:null}toggleMountedDirectoryFromInput(e){let t=this.resolveMountedDirectoryPathFromInput(e);t!=null&&this.#ze(t)}selectAllVisiblePaths(){this.#Ie();let e=[...this.#be()];this.#ae(e,this.#c??this.#z)}selectOnlyPath(e){let t=this.#Ne(e);t!=null&&this.#ae([t],t)}selectOnlyMountedPathFromInput(e){this.#ae([e],e)}selectPath(e){let t=this.#Ne(e);t==null||this.#B.has(t)||this.#ae([...this.#B,t])}deselectPath(e){let t=this.#Ne(e);t==null||!this.#B.has(t)||this.#ae([...this.#B].filter(e=>e!==t))}toggleFocusedSelection(){this.#c!=null&&this.togglePathSelectionFromInput(this.#c)}togglePathSelection(e){let t=this.#Ne(e);if(t!=null){if(this.#B.has(t)){this.deselectPath(t);return}this.selectPath(t)}}togglePathSelectionFromInput(e){let t=this.#Ne(e);if(t!=null){if(this.#B.has(t)){this.#ae([...this.#B].filter(e=>e!==t),t);return}this.#ae([...this.#B,t],t)}}selectPathRange(e,t){let n=this.#Ne(e);if(n==null)return;this.#Ie();let r=this.#z,i=r==null?-1:this.#Ce(r),a=this.#Ce(n);if(i===-1||a===-1){let e=t?[...this.#B,n]:[n];this.#ae(e,n);return}let[o,s]=i<=a?[i,a]:[a,i],c=this.#be().slice(o,s+1),l=t?[...this.#B,...c]:c;this.#ae(l,r)}extendSelectionFromFocused(e){if(this.#c==null)return;let t=this.#s;if(t===-1)return;let n=Math.min(this.#G-1,Math.max(0,t+e));if(n===t)return;!this.#l&&n>=this.#b.length&&this.#Ie();let r=this.#be(),i=r[t]??null,a=r[n]??null;if(i==null||a==null)return;let o=new Set(this.#B);o.has(i)&&o.has(a)?o.delete(i):o.add(a),this.#ae([...o],this.#z??i,!1),this.#Fe(n)}getDragAndDropConfig(){return this.#r}isDragAndDropEnabled(){return this.#r!=null}getDragSession(){return this.#i==null?null:{draggedPaths:[...this.#i.draggedPaths],primaryPath:this.#i.primaryPath,target:this.#i.target==null?null:{...this.#i.target}}}startDrag(e){if(this.#r==null)return!1;let t=this.#Ne(e);if(t==null||this.#M!=null&&this.#M.length>0)return!1;let n=this.getSelectedPaths(),r=Kv(t,n);return this.#r.canDrag?.(r)!==!1&&(n.includes(t)||this.#ae([t],t,!1),this.#Pe(t),this.#i={draggedPaths:r,primaryPath:t,target:null},this.#De(),!0)}setDragTarget(e){let t=this.#i;if(t==null)return;let n=e;if(n!=null){let e=Jv(t.draggedPaths,n);(Yv(t.draggedPaths,n)||this.#r?.canDrop?.(e)===!1)&&(n=null)}qv(t.target,n)||(this.#i={...t,target:n},this.#De())}cancelDrag(){this.#i!=null&&(this.#i=null,this.#De())}completeDrag(){let e=this.#i;if(e==null)return!1;this.#i=null;let t=e.target==null?null:{...e.target};if(t==null)return this.#De(),!1;let n=Jv(e.draggedPaths,t);if(Yv(e.draggedPaths,t)||this.#r?.canDrop?.(n)===!1)return this.#De(),!1;let r=Zv(e.draggedPaths,t);if(r==null)return this.#De(),!1;try{if(r.operations.length===1){let e=r.operations[0];if(e==null||e.type!==`move`)throw Error(`Expected a single move operation for one-item drops`);this.#H.move(e.from,e.to,{collision:e.collision})}else this.#ce(r.operations),this.#H.batch(r.operations)}catch(e){return this.#De(),this.#r?.onDropError?.(e instanceof Error?e.message:String(e),n),!1}return this.#r?.onDropComplete?.(r.result),!0}subscribe(e){return this.#t.add(e),e(),()=>{this.#t.delete(e)}}add(e){this.#H.add(e)}remove(e,t={}){this.#H.remove(e,t)}move(e,t,n={}){this.#H.move(e,t,n)}batch(e){this.#H.batch(e)}onMutation(e,t){let n=e,r=t,i=this.#n.get(n);return i??(i=new Set,this.#n.set(n,i)),i.add(r),()=>{let e=this.#n.get(n);e?.delete(r),e?.size===0&&this.#n.delete(n)}}setSearch(e){this.#Te(e,!0)}openSearch(e=``){this.#Te(e,!0)}closeSearch(){this.#Te(null,!0)}isSearchOpen(){return this.#M!==null}getSearchValue(){return this.#M??``}getSearchMatchingPaths(){return this.#k}focusNextSearchMatch(){this.#we(1)}focusPreviousSearchMatch(){this.#we(-1)}startRenaming(e=this.#c??``,t={}){if(!this.#w)return!1;let n=this.#H.getPathInfo(e);if(n==null)return!1;let r=n.path,i=fy(r),a=hy(r);if(this.#C?.({isFolder:i,path:a})===!1)return!1;for(let e of ly(r))this.#H.isExpanded(e)||this.#H.expand(e);return this.#ae([r],r,!1),this.#M!=null&&(this.#Te(null,!1),this.#y?.(this.#M)),this.#Pe(r),this.#T=r,this.#E=my(r),this.#D=t.removeIfCanceled??!1,this.#De(),!0}#q(){if(this.#T==null)return;let e=this.#T,t=this.#D;if(this.#T=null,this.#E=``,this.#D=!1,t){this.remove(e,fy(e)?{recursive:!0}:void 0);return}this.#Pe(e),this.#De()}#J(){let e=this.#T;if(e==null)return;if(this.#D&&this.#E.trim().length===0){this.#T=null,this.#E=``,this.#D=!1,this.remove(e,fy(e)?{recursive:!0}:void 0);return}let t=fy(e),n=Hv({files:this.#H.list(),isFolder:t,nextBasename:this.#E,path:hy(e)});if(this.#T=null,this.#E=``,this.#D=!1,`error`in n){this.#Pe(e),this.#v?.(n.error),this.#De();return}if(n.sourcePath===n.destinationPath){this.#Pe(e),this.#De();return}this.#_?.({destinationPath:n.destinationPath,isFolder:n.isFolder,sourcePath:n.sourcePath}),this.move(gy(n.sourcePath,t),gy(n.destinationPath,t))}#Y(e){this.#T!=null&&this.#E!==e&&(this.#E=e,this.#De())}resetPaths(e,t={}){let n=!Array.isArray(e),r=n?void 0:e,i=n?e:t,a=this.#H.list().length,o=this.#G,s=$v({paths:r,preparedInput:i.preparedInput},`resetPaths`,this.#e.sort),c=this.#le(s.paths,s.preparedInput,i.initialExpandedPaths),l=this.#c,u=this.#T,d=this.getSelectedPaths(),f=this.#z;this.#K?.(),this.#H=c,this.#d.clear(),this.#he();let p=d.map(e=>c.getPathInfo(e)?.path??null).filter(e=>e!=null),m=!cy(this.#B,p);this.#B=new Set(p),m&&(this.#V+=1),this.#z=f==null?null:c.getPathInfo(f)?.path??null,this.#T=u==null?null:c.getPathInfo(u)?.path??null,this.#T??(this.#E=``,this.#D=!1),this.#je(l,l!=null||p.length>0||this.#z!=null),this.#K=this.#Re(),this.#De(),this.#Oe({canonicalChanged:!0,operation:`reset`,pathCountAfter:s.paths.length,pathCountBefore:a,projectionChanged:!0,usedPreparedInput:i.preparedInput!=null,visibleCountDelta:this.#G-o})}#X(e){this.#Ie();let t=uy(e),n=dy(e,t),r=null,i=null;for(let e of this.#be()){if(uy(e)!==t)continue;let a=dy(e,t);if(a<n){r=e;continue}if(a>n){i=e;break}}return r??i}#Z(e){let t=this.#Ce(e);if(t!==-1)return t;let n=ly(e);for(let e=n.length-1;e>=0;--e){let t=n[e];if(t==null)continue;let r=this.#Ce(t);if(r!==-1)return r}return this.#be().length>0?0:-1}#Q(e,t){let n=this.#d.get(e);if(n!=null)return n;let r=t??this.#H.getPathInfo(e);if(r==null)return null;let i=r.kind===`directory`?this.#oe(r.path):this.#se(r.path);return this.#d.set(r.path,i),i}#$(e,t,n,r){return{ancestorPaths:r.ancestorPaths,depth:e.depth,flattenedSegments:e.flattenedSegments?.map(e=>({isTerminal:e.isTerminal,name:e.name,path:e.path})),hasChildren:e.hasChildren,index:t,isExpanded:e.isExpanded,isFlattened:e.isFlattened,isFocused:r.path===this.#c,isSelected:this.#B.has(r.path),kind:e.kind,level:e.depth,name:e.name,path:r.path,posInSet:r.posInSet??this.#x[n]??0,setSize:r.setSize??this.#S[n]??0}}#ee(e){return this.#$(e.row,e.index,e.index,{ancestorPaths:e.ancestorPaths,path:e.row.path,posInSet:e.posInSet,setSize:e.setSize})}#te(e,t){let n=this.#H.getVisibleRowContext(e);return n==null?void 0:n.ancestorRows[t]??(t===n.ancestorRows.length&&n.row.kind===`directory`&&n.row.isExpanded?n:void 0)}#ne(e){let t=this.#a.get(e);if(t!=null)return t;let n=this.#u(e),r=n<0?[]:[...this.#ne(n),n];return this.#a.set(e,r),r}#re(e){let t=this.#o.get(e);if(t!=null)return t;let n=this.#ne(e).map(e=>this.#b[e]??``).filter(e=>e!==``);return this.#o.set(e,n),n}#ie(e){this.#H.collapse(e)}#ae(e,t=this.#z,n=!0){let r=[...new Set(e)],i=!cy(this.#B,r),a=this.#z!==t;!i&&!a||(this.#B=new Set(r),this.#z=t,i&&(this.#V+=1),n&&this.#De())}#oe(e){return{collapse:()=>{this.#ie(e)},deselect:()=>{this.deselectPath(e)},expand:()=>{this.#ke(e)},focus:()=>{this.focusPath(e)},getPath:()=>e,isDirectory:()=>!0,isExpanded:()=>this.#H.isExpanded(e),isFocused:()=>this.#c===e,isSelected:()=>this.#B.has(e),select:()=>{this.selectPath(e)},toggleSelect:()=>{this.togglePathSelection(e)},toggle:()=>{this.#ze(e)}}}#se(e){return{deselect:()=>{this.deselectPath(e)},focus:()=>{this.focusPath(e)},getPath:()=>e,isDirectory:()=>!1,isFocused:()=>this.#c===e,isSelected:()=>this.#B.has(e),select:()=>{this.selectPath(e)},toggleSelect:()=>{this.togglePathSelection(e)}}}#ce(e){let t=this.#H.list();this.#le(t).batch(e)}#le(e,t,n){return new Sv({...this.#e,paths:e,preparedInput:t??void 0,...n===void 0?{}:{initialExpandedPaths:n}})}#ue(){return this.#h??=this.#H.list(),this.#h}#de(){if(this.#m!=null)return this.#m;let e=new Set;for(let t of this.#ue()){e.add(t);for(let n of ly(t))e.add(n)}return this.#m=[...e].sort(),this.#m}#fe(){return this.#g??=this.#ue().map(py),this.#g}#pe(){return this.#f??=this.#de().filter(e=>e.endsWith(`/`)),this.#f}#me(){return this.#p??=this.#pe().map(py),this.#p}#he(){this.#f=null,this.#p=null,this.#m=null,this.#h=null,this.#g=null}#ge(){return this.#pe().filter(e=>this.#H.isExpanded(e))}#_e(e){let t=new Set(this.#j??[]);if(e)for(let e of this.#B)for(let n of ly(e))t.add(n);this.#ve(t)}#ve(e){this.#W=!0;try{for(let t of this.#pe()){let n=e.has(t),r=this.#H.isExpanded(t);n&&!r?this.#H.expand(t):!n&&r&&this.#H.collapse(t)}}finally{this.#W=!1}}#ye(){if(this.#M==null||this.#M.length===0){this.#k=[],this.#F=null,this.#I=null,this.#P=null,this.#G=this.#U;return}let e=this.#b;if(this.#k=e.filter(e=>this.#O.has(e)),this.#A!==`hide-non-matches`||this.#O.size===0){this.#F=null,this.#I=null,this.#P=null,this.#G=this.#U;return}let t=[],n=[],r=new Map;for(let[i,a]of e.entries())this.#N?.has(a)===!0&&(r.set(a,n.length),t.push(i),n.push(a));this.#F=t,this.#I=n,this.#P=r,this.#G=n.length}#be(){return this.#I??this.#b}#xe(e){return this.#I==null?this.#H.getVisibleIndex(e)??-1:this.#P?.get(e)??-1}#Se(e){return this.#F?.[e]??e}#Ce(e){return this.#P?.get(e)??this.#H.getVisibleIndex(e)??-1}#we(e){let t=this.#k;if(t.length===0)return;let n=this.#c,r=n==null?-1:t.indexOf(n),i=t[r<0?e>0?0:t.length-1:Math.min(t.length-1,Math.max(0,r+e))];i!=null&&this.focusPath(i)}#Te(e,t){let n=e==null?null:_y(e),r=this.#M;if(r!==n){if(r==null&&n!=null&&(this.#j=this.#ge()),this.#M=n,n==null)this.#_e(!0),this.#j=null,this.#O.clear(),this.#N=null,this.#je(this.#c,!0);else if(n.length===0)this.#_e(!1),this.#O.clear(),this.#N=null,this.#je(this.#c,!0);else{let e=this.#Ee();this.#je(e,!0)}t&&(this.#y?.(this.#M),this.#De())}}#Ee(){if(this.#M==null||this.#M.length===0)return this.#O.clear(),this.#c;let e=this.#M,t=this.#ue(),n=this.#fe(),r=[],i=new Set,a=null;for(let o=0;o<t.length;o+=1){if(!n[o].includes(e))continue;let s=t[o];r.push(s),i.add(s),a??=s}let o=this.#pe(),s=this.#me();for(let t=0;t<o.length;t+=1){if(!s[t].includes(e))continue;let n=o[t];i.has(n)||(r.push(n),i.add(n),a??=n)}this.#O=i;let c=this.#A===`hide-non-matches`&&r.length>0?new Set:null;this.#N=c;let l=this.#A===`expand-matches`?new Set(this.#j??[]):new Set;for(let e of r){c?.add(e),e.endsWith(`/`)&&l.add(e);for(let t of ly(e))l.add(t),c?.add(t)}return this.#ve(l),a??this.#c}#De(){for(let e of this.#t)e()}#Oe(e){this.#n.get(e.operation)?.forEach(t=>{t(e)}),this.#n.get(`*`)?.forEach(t=>{t(e)})}#ke(e){for(let t of ly(e))this.#H.isExpanded(t)||this.#H.expand(t);this.#H.isExpanded(e)||this.#H.expand(e)}#Ae(e){let t=this.#G;if(t===0)return;let n=this.#s===-1?0:this.#s,r=Math.min(t-1,Math.max(0,n+e));(r!==n||this.#s===-1)&&(!this.#l&&this.#F==null&&r>=this.#b.length&&this.#Ie(),this.#Fe(r))}#je(e,t=!0){let n=this.#H.getVisibleCount();this.#U=n;let r=Cy(this.#H.getVisibleTreeProjectionData(t?void 0:Math.min(n,yy)),e,t?e=>this.#H.getVisibleIndex(e):void 0);this.#a.clear(),this.#o.clear(),this.#l=r.paths.length>=n,this.#u=r.getParentIndex,this.#b=r.paths,this.#x=r.posInSetByIndex,this.#S=r.setSizeByIndex,this.#ye(),this.#s=e==null?this.#be().length>0?0:-1:this.#Z(e),this.#c=this.#s<0?null:this.#Me(this.#s)}#Me(e){return this.#be()[e]??(this.#F==null?this.#H.getVisibleRowContext(e)?.row.path??null:null)}#Ne(e){return this.#H.getPathInfo(e)?.path??null}#Pe(e){if(e==null)return;let t=this.#Z(e);t>=0&&this.#Fe(t,!1)}#Fe(e,t=!0){let n=this.#Me(e);n!=null&&(this.#s!==e||this.#c!==n)&&(this.#s=e,this.#c=n,t&&this.#De())}#Ie(){this.#l||this.#je(this.#c,!0)}#Le(e){let t=ry(this.#T,e);t==null&&this.#T!=null&&(this.#E=``),this.#T=t;let n=ry(this.#c,e,!0),r=[...this.#B].map(t=>ry(t,e)).filter(e=>e!=null).map(e=>this.#H.getPathInfo(e)?.path??null).filter(e=>e!=null),i=ry(this.#z,e),a=i==null?null:this.#H.getPathInfo(i)?.path??null,o=[...new Set(r)];return cy(this.#B,o)||(this.#B=new Set(o),this.#V+=1),this.#z=a,n}#Re(){return this.#H.on(`*`,e=>{if(this.#W)return;e.canonicalChanged&&(this.#d.clear(),this.#he()),this.#i!=null&&ey(e)&&(this.#i=null);let t=ey(e)?this.#Le(e):this.#c,n=this.#M!=null&&this.#M.length>0?this.#Ee():this.#M===``?this.#c:t,r=this.#M!=null||e.operation!==`expand`&&e.operation!==`collapse`;this.#je(n,r),this.#De();let i=sy(e);i!=null&&this.#Oe(i)})}#ze(e){if(this.#H.isExpanded(e)){this.#ie(e);return}this.#ke(e)}},Ty=e=>{if(e==null||e.length===0)return`0`;let t=`${e.length}`;for(let n of e)t+=`\0${n.path}\0${n.status}`;return t};function Ey(e){let t=e.endsWith(`/`),n=``,r=-1;for(let t=0;t<=e.length;t+=1){if(e[t]!==`/`&&t!==e.length){r===-1&&(r=t);continue}r!==-1&&(n!==``&&(n+=`/`),n+=e.slice(r,t),r=-1)}return n===``?null:{isDirectory:t,path:n}}function Dy(e){let t=e.endsWith(`/`)?e.slice(0,-1):e;if(t.length===0)return[];let n=[],r=0;for(;;){let e=t.indexOf(`/`,r);if(e===-1)break;n.push(t.slice(0,e+1)),r=e+1}return n}function Oy(e,t){return t?`${e}/`:e}function ky(e,t=null){let n=Ty(e==null?void 0:[...e]);if(n===`0`)return null;if(t?.signature===n)return t;let r=new Map,i=new Set,a=new Set,o=new Map;for(let t of e??[]){let e=jy(t);e!=null&&Py({canonicalPath:e.canonicalPath,changeCountByDirectoryPath:o,directoriesWithChanges:i,ignoredDirectoryPaths:a,isDirectory:e.isDirectory,status:t.status,statusByPath:r})}return r.size===0?null:{changeCountByDirectoryPath:o,directoriesWithChanges:i,ignoredDirectoryPaths:a,signature:n,statusByPath:r}}function Ay(e,t){let n=t?.remove??[],r=t?.set??[];if(n.length===0&&r.length===0)return e;let i=new Map(e?.statusByPath),a=new Set(e?.directoriesWithChanges),o=new Set(e?.ignoredDirectoryPaths),s=new Map(e?.changeCountByDirectoryPath),c=!1;for(let e of n){let t=My(e);t!=null&&(c=Ny({canonicalPath:t.canonicalPath,changeCountByDirectoryPath:s,directoriesWithChanges:a,ignoredDirectoryPaths:o,statusByPath:i})||c)}for(let e of r){let t=jy(e);t!=null&&(c=Py({canonicalPath:t.canonicalPath,changeCountByDirectoryPath:s,directoriesWithChanges:a,ignoredDirectoryPaths:o,isDirectory:t.isDirectory,status:e.status,statusByPath:i})||c)}return c?i.size===0?null:{changeCountByDirectoryPath:s,directoriesWithChanges:a,ignoredDirectoryPaths:o,signature:Ly(i),statusByPath:i}:e}function jy(e){return My(e.path)}function My(e){let t=Ey(e);if(t!=null)return{canonicalPath:Oy(t.path,t.isDirectory),isDirectory:t.isDirectory}}function Ny({canonicalPath:e,changeCountByDirectoryPath:t,directoriesWithChanges:n,ignoredDirectoryPaths:r,statusByPath:i}){let a=i.get(e);return a!=null&&(i.delete(e),a===`ignored`&&e.endsWith(`/`)&&r.delete(e),Iy(t,n,e),!0)}function Py({canonicalPath:e,changeCountByDirectoryPath:t,directoriesWithChanges:n,ignoredDirectoryPaths:r,isDirectory:i,status:a,statusByPath:o}){let s=o.get(e);return s!==a&&(s??Fy(t,n,e),o.set(e,a),a===`ignored`&&i?r.add(e):i&&r.delete(e),!0)}function Fy(e,t,n){for(let r of Dy(n))e.set(r,(e.get(r)??0)+1),t.add(r)}function Iy(e,t,n){for(let r of Dy(n)){let n=(e.get(r)??0)-1;n>0?e.set(r,n):(e.delete(r),t.delete(r))}}function Ly(e){let t=`${e.size}`;for(let[n,r]of e)t+=`\0${n}\0${r}`;return t}var J,Ry,zy,By,Vy,Hy,Uy,Wy,Gy,Ky,qy={},Jy=[],Yy=Array.isArray,Xy=Jy.slice,Zy=Object.assign;function Qy(e){e&&e.parentNode&&e.remove()}function $y(e,t,n){var r,i,a,o={};for(a in t)a==`key`?r=t[a]:a==`ref`&&typeof e!=`function`?i=t[a]:o[a]=t[a];return arguments.length>2&&(o.children=arguments.length>3?Xy.call(arguments,2):n),eb(e,o,r,i,null)}function eb(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++Ry,__i:-1,__u:0};return i==null&&J.vnode!=null&&J.vnode(a),a}function tb(e){return e.children}function nb(e,t){this.props=e,this.context=t,this.__g=0}function rb(e,t){if(t==null)return e.__?rb(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type==`function`?rb(e):null}function ib(e){var t,n;if((e=e.__)!=null&&e.__c!=null){for(e.__e=null,t=0;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null){e.__e=n.__e;break}return ib(e)}}function ab(e){(8&e.__g||!(e.__g|=8)||!zy.push(e)||Vy++)&&By==J.debounceRendering||((By=J.debounceRendering)||queueMicrotask)(ob)}function ob(){for(var e,t,n,r,i,a,o,s,c=1;zy.length;)zy.length>c&&zy.sort(Hy),e=zy.shift(),c=zy.length,8&e.__g&&(n=void 0,i=(r=(t=e).__v).__e,a=[],o=[],(s=t.__P)&&((n=Zy({},r)).__v=r.__v+1,J.vnode&&J.vnode(n),mb(s,n,r,t.__n,s.namespaceURI,32&r.__u?[i]:null,a,i??rb(r),!!(32&r.__u),o,s.ownerDocument),n.__v=r.__v,n.__.__k[n.__i]=n,gb(a,n,o),n.__e!=i&&ib(n)));Vy=0}function sb(e,t,n,r,i,a,o,s,c,l,u,d){var f,p,m,h,g,_,v,y=r&&r.__k||Jy,b=t.length;for(c=cb(n,t,y,c,b),f=0;f<b;f++)(m=n.__k[f])!=null&&(p=m.__i==-1?qy:y[m.__i]||qy,m.__i=f,_=mb(e,m,p,i,a,o,s,c,l,u,d),h=m.__e,m.ref&&p.ref!=m.ref&&(p.ref&&yb(p.ref,null,m),u.push(m.ref,m.__c||h,m)),g==null&&h!=null&&(g=h),(v=!!(4&m.__u))||p.__k===m.__k?c=lb(m,c,e,v):typeof m.type==`function`&&_!==void 0?c=_:h&&(c=h.nextSibling),m.__u&=-7);return n.__e=g,c}function cb(e,t,n,r,i){var a,o,s,c,l,u=n.length,d=u,f=0;for(e.__k=Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(c=a+f,(o=e.__k[a]=typeof o==`string`||typeof o==`number`||typeof o==`bigint`||o.constructor==String?eb(null,o,null,null,null):Yy(o)?eb(tb,{children:o},null,null,null):o.constructor==null&&o.__b>0?eb(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=e,o.__b=e.__b+1,s=null,(l=o.__i=ub(o,n,c,d))!=-1&&(d--,(s=n[l])&&(s.__u|=2)),s==null||s.__v==null?(l==-1&&(i>u?f--:i<u&&f++),typeof o.type!=`function`&&(o.__u|=4)):l!=c&&(l==c-1?f--:l==c+1?f++:(l>c?f--:f++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&!(2&s.__u)&&(s.__e==r&&(r=rb(s)),bb(s,s));return r}function lb(e,t,n,r){var i,a;if(typeof e.type==`function`){for(i=e.__k,a=0;i&&a<i.length;a++)i[a]&&(i[a].__=e,t=lb(i[a],t,n,r));return t}e.__e!=t&&(r&&(t&&e.type&&!t.parentNode&&(t=rb(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t&&=t.nextSibling;while(t!=null&&t.nodeType==8);return t}function ub(e,t,n,r){var i,a,o,s=e.key,c=e.type,l=t[n],u=l!=null&&!(2&l.__u);if(l===null&&e.key==null||u&&s==l.key&&c==l.type)return n;if(r>+!!u){for(i=n-1,a=n+1;i>=0||a<t.length;)if((l=t[o=i>=0?i--:a++])!=null&&!(2&l.__u)&&s==l.key&&c==l.type)return o}return-1}function db(e,t,n){t[0]==`-`?e.setProperty(t,n??``):e[t]=n??``}function fb(e,t,n,r,i){var a;n:if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||db(e.style,t,``);if(n)for(t in n)r&&n[t]==r[t]||db(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)a=t!=(t=t.replace(Uy,`$1`)),(t=t.slice(2))[0].toLowerCase()!=t[0]&&(t=t.toLowerCase()),e.__l||={},e.__l[t+a]=n,n?r?n.l=r.l:(n.l=Wy,e.addEventListener(t,a?Ky:Gy,a)):e.removeEventListener(t,a?Ky:Gy,a);else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n??``;break n}catch{}typeof n==`function`||(n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n))}}function pb(e){return function(t){if(this.__l){var n=this.__l[t.type+e];if(t.u==null)t.u=Wy++;else if(t.u<n.l)return;return n(J.event?J.event(t):t)}}}function mb(e,t,n,r,i,a,o,s,c,l,u){var d,f,p,m,h,g,_,v,y,b,x,S,C,ee,te,ne,w,T,re,ie,ae,E=t.type;if(t.constructor!=null)return null;128&n.__u&&(c=!!(32&n.__u),n.__c.__z&&(s=t.__e=n.__e=(a=n.__c.__z)[0],n.__c.__z=null)),(d=J.__b)&&d(t);n:if(typeof E==`function`)try{if(v=t.props,y=`prototype`in E&&E.prototype.render,b=(d=E.contextType)&&r[d.__c],x=d?b?b.props.value:d.__:r,n.__c?2&(f=t.__c=n.__c).__g&&(f.__g|=1,_=!0):(y?t.__c=f=new E(v,x):(t.__c=f=new nb(v,x),f.constructor=E,f.render=xb),b&&b.sub(f),f.props=v,f.state||(f.state={}),f.context=x,f.__n=r,p=!0,f.__g|=8,f.__h=[],f._sb=[]),y&&f.__s==null&&(f.__s=f.state),y&&E.getDerivedStateFromProps!=null&&(f.__s==f.state&&(f.__s=Zy({},f.__s)),Zy(f.__s,E.getDerivedStateFromProps(v,f.__s))),m=f.props,h=f.state,f.__v=t,p)y&&E.getDerivedStateFromProps==null&&f.componentWillMount!=null&&f.componentWillMount(),y&&f.componentDidMount!=null&&f.__h.push(f.componentDidMount);else{if(y&&E.getDerivedStateFromProps==null&&v!==m&&f.componentWillReceiveProps!=null&&f.componentWillReceiveProps(v,x),!(4&f.__g)&&f.shouldComponentUpdate!=null&&!1===f.shouldComponentUpdate(v,f.__s,x)||t.__v==n.__v){for(t.__v!=n.__v&&(f.props=v,f.state=f.__s,f.__g&=-9),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),S=0;S<f._sb.length;S++)f.__h.push(f._sb[S]);f._sb=[],f.__h.length&&o.push(f);break n}f.componentWillUpdate!=null&&f.componentWillUpdate(v,f.__s,x),y&&f.componentDidUpdate!=null&&f.__h.push(function(){f.componentDidUpdate(m,h,g)})}if(f.context=x,f.props=v,f.__P=e,f.__g&=-5,C=J.__r,ee=0,y){for(f.state=f.__s,f.__g&=-9,C&&C(t),d=f.render(f.props,f.state,f.context),te=0;te<f._sb.length;te++)f.__h.push(f._sb[te]);f._sb=[]}else do f.__g&=-9,C&&C(t),d=f.render(f.props,f.state,f.context),f.state=f.__s;while(8&f.__g&&++ee<25);f.state=f.__s,f.getChildContext!=null&&(r=Zy({},r,f.getChildContext())),y&&!p&&f.getSnapshotBeforeUpdate!=null&&(g=f.getSnapshotBeforeUpdate(m,h)),ne=d,d!=null&&d.type===tb&&d.key==null&&(ne=_b(d.props.children)),s=sb(e,Yy(ne)?ne:[ne],t,n,r,i,a,o,s,c,l,u),t.__u&=-161,f.__h.length&&o.push(f),_&&(f.__g&=-4)}catch(e){if(t.__v=null,c||a!=null){if(e.then){for(w=0,T=!1,t.__u|=c?160:128,t.__c.__z=[],re=0;re<a.length;re++)(ie=a[re])==null||T||(ie.nodeType==8&&ie.data==`$s`?(w>0&&t.__c.__z.push(ie),w++,a[re]=null):ie.nodeType==8&&ie.data==`/$s`?(--w>0&&t.__c.__z.push(ie),T=w===0,s=a[re],a[re]=null):w>0&&(t.__c.__z.push(ie),a[re]=null));if(!T){for(;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;a[a.indexOf(s)]=null,t.__c.__z=[s]}t.__e=s}else{for(ae=a.length;ae--;)Qy(a[ae]);hb(t)}}else t.__e=n.__e,t.__k=n.__k,e.then||hb(t);J.__e(e,t,n)}else s=t.__e=vb(n.__e,t,n,r,i,a,o,c,l,u);return(d=J.diffed)&&d(t),128&t.__u?void 0:s}function hb(e){e&&e.__c&&(e.__c.__g|=4),e&&e.__k&&e.__k.forEach(hb)}function gb(e,t,n){for(var r=0;r<n.length;r++)yb(n[r],n[++r],n[++r]);J.__c&&J.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){J.__e(e,t.__v)}})}function _b(e){return typeof e!=`object`||!e||e.__b&&e.__b>0?e:Yy(e)?e.map(_b):Zy({},e)}function vb(e,t,n,r,i,a,o,s,c,l){var u,d,f,p,m,h,g,_,v=n.props,y=t.props,b=t.type;if(b==`svg`?i=`http://www.w3.org/2000/svg`:b==`math`?i=`http://www.w3.org/1998/Math/MathML`:i||=`http://www.w3.org/1999/xhtml`,a!=null){for(u=0;u<a.length;u++)if((m=a[u])&&`setAttribute`in m==!!b&&(b?m.localName==b:m.nodeType==3)){e=m,a[u]=null;break}}if(e==null){if(b==null)return l.createTextNode(y);e=l.createElementNS(i,b,y.is&&y),s&&=(J.__m&&J.__m(t,a),!1),a=null}if(b==null)v===y||s&&e.data==y||(e.data=y);else{if(a&&=Xy.call(e.childNodes),v=n.props||qy,!s&&a!=null)for(v={},u=0;u<e.attributes.length;u++)v[(m=e.attributes[u]).name]=m.value;for(u in v)if(m=v[u],u!=`children`){if(u==`dangerouslySetInnerHTML`)f=m;else if(!(u in y)){if(u==`value`&&`defaultValue`in y||u==`checked`&&`defaultChecked`in y)continue;fb(e,u,null,m,i)}}for(u in _=1&n.__u,y)m=y[u],u==`children`?p=m:u==`dangerouslySetInnerHTML`?d=m:u==`value`?h=m:u==`checked`?g=m:s&&typeof m!=`function`||v[u]===m&&!_||fb(e,u,m,v[u],i);if(d)s||f&&(d.__html==f.__html||d.__html==e.innerHTML)||(e.innerHTML=d.__html),t.__k=[];else if(f&&(e.innerHTML=``),sb(b==`template`?e.content:e,Yy(p)?p:[p],t,n,r,b==`foreignObject`?`http://www.w3.org/1999/xhtml`:i,a,o,a?a[0]:n.__k&&rb(n,0),s,c,l),a!=null)for(u=a.length;u--;)Qy(a[u]);s||(u=`value`,b==`progress`&&h==null?e.removeAttribute(`value`):h==null||h===e[u]&&(b!==`progress`||h)||fb(e,u,h,v[u],i),u=`checked`,g!=null&&g!=e[u]&&fb(e,u,g,v[u],i))}return e}function yb(e,t,n){try{if(typeof e==`function`){var r=typeof e.__u==`function`;r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(e){J.__e(e,n)}}function bb(e,t,n){var r,i;if(J.unmount&&J.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||yb(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){J.__e(e,t)}r.__P=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&bb(r[i],t,n||typeof e.type!=`function`);n||Qy(e.__e),e.__e&&e.__e.__l&&(e.__e.__l=null),e.__e=e.__c=e.__=null}function xb(e,t,n){return this.constructor(e,n)}function Sb(e,t){var n,r,i,a;t==document&&(t=document.documentElement),J.__&&J.__(e,t),r=(n=!!(e&&32&e.__u))?null:t.__k,e=t.__k=$y(tb,null,[e]),i=[],a=[],mb(t,e,r||qy,qy,t.namespaceURI,r?null:t.firstChild?Xy.call(t.childNodes):null,i,r?r.__e:t.firstChild,n,a,t.ownerDocument),gb(i,e,a)}function Cb(e,t){e.__u|=32,Sb(e,t)}J={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=8&i.__g),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=8&i.__g),o)return void(i.__g|=2)}catch(t){e=t}}throw Vy=0,e}},Ry=0,nb.prototype.setState=function(e,t){var n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Zy({},this.state);typeof e==`function`&&(e=e(Zy({},n),this.props)),e&&Zy(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),ab(this))},nb.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),ab(this))},nb.prototype.render=tb,zy=[],Vy=0,Hy=function(e,t){return e.__v.__b-t.__v.__b},Uy=/(PointerCapture)$|Capture$/i,Wy=0,Gy=pb(!1),Ky=pb(!0);var wb=0;Array.isArray;function Y(e,t,n,r,i,a){t||={};var o,s,c=t;if(`ref`in c&&typeof e!=`function`)for(s in c={},t)s==`ref`?o=t[s]:c[s]=t[s];var l={type:e,props:c,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--wb,__i:-1,__u:0,__source:i,__self:a};return J.vnode&&J.vnode(l),l}var Tb=16,Eb=16,Db={};function Ob({name:e,remappedFrom:t,token:n,width:r,height:i,viewBox:a,label:o,alignCapitals:s=!1}){"use no memo";let c=`#${e.replace(/^#/,``)}`,{width:l,height:u,viewBox:d}=Db[e]??{width:Tb,height:Eb},f=r??l,p=i??u,m=a??d??`0 0 ${l} ${u}`;return Y(`svg`,{"data-icon-name":t??e,"data-icon-token":n,"data-align-capitals":s,...o==null?{"aria-hidden":!0}:{"aria-label":o,role:`img`},viewBox:m,width:f,height:p,children:Y(`use`,{href:c})})}var kb=e=>e!==void 0&&/\s/.test(e),Ab=(e,t)=>{let n=t=>kb(e[t-1])||kb(e[t]);if(!n(t))return t;for(let r=1;r<e.length;r++){let i=t-r;if(i>0&&!n(i))return i;let a=t+r;if(a<e.length&&!n(a))return a}return t},jb=e=>Ab(e,Math.ceil(e.length/2)),Mb=e=>{if(e.length<2)return[e,``];let t=jb(e);return[e.slice(0,t),e.slice(t)]},Nb=e=>{if(e.length<4)return[e,``];let t=e.lastIndexOf(`.`)+1,n=e.length-t>10,r=t>=1&&!n?t:jb(e);return[e.slice(0,r),e.slice(r)]},Pb=e=>{if(e.length<4)return[e,``];let t=e.lastIndexOf(`/`)+1,n=e.length-t>25,r=t>=1&&!n?t:Math.ceil(e.length/2);return[e.slice(0,r),e.slice(r)]},Fb=(e,{splitIndex:t}={})=>{if(typeof t!=`number`){let t=Math.ceil(e.length/2);return[e.slice(0,t),e.slice(t)]}return[e.slice(0,t),e.slice(t)]},Ib=(e,{splitOffset:t}={})=>{if(typeof t!=`number`||t<=0||t>=e.length){let t=Math.ceil(e.length/2);return[e.slice(0,t),e.slice(t)]}let n=e.length-t;return[e.slice(0,n),e.slice(n)]},Lb=(e,{splitOffset:t}={})=>{if(typeof t!=`number`||t<=0||t>=e.length){let t=Math.ceil(e.length/2);return[e.slice(0,t),e.slice(t)]}let n=t;return[e.slice(0,n),e.slice(n)]};function Rb({children:e,marker:t,variant:n=`default`}){"use no memo";return Y(`div`,{"aria-hidden":!0,"data-truncate-marker-cell":!0,children:Y(`div`,{"data-truncate-marker":!0,children:typeof t==`function`?t({children:e}):n===`fade`?Y(`span`,{"data-truncate-fade":!0}):t})})}function zb(e){"use no memo";let{mode:t,children:n}=e;return Y(`div`,{children:[Y(`div`,{"data-truncate-content":`visible`,children:t===`fruncate`?Y(`span`,{children:n}):n}),Y(`div`,{"data-truncate-content":`overflow`,"aria-hidden":!0,children:t===`fruncate`?Y(`span`,{children:n}):n})]})}function Bb({children:e,mode:t=`truncate`,marker:n=`…`,variant:r=`default`,...i}){"use no memo";let a=Y(zb,{mode:t,children:e},`content`),o=Y(Rb,{marker:n,mode:t,variant:r},`marker`),s=Y(`div`,{"data-truncate-fill":!0},`fill`);return Y(`div`,{"data-truncate-container":t,"data-truncate-variant":r,...i,children:Y(`div`,{"data-truncate-grid":!0,children:t===`truncate`?[a,o]:[o,a,s]})})}function Vb({children:e,...t}){"use no memo";return Y(Bb,{mode:`truncate`,...t,children:e})}function Hb({children:e,...t}){"use no memo";return Y(Bb,{mode:`fruncate`,...t,children:e})}function Ub({children:e,contents:t,priority:n=`end`,split:r=`center`,minimumLength:i=12,className:a,style:o,...s}){"use no memo";let c=null,l=null;if(Array.isArray(t)){if(t.length!==2)return console.error(`MiddleTruncate: contents must be an array of two items`),null;c=Y(Vb,{...s,children:t[0]}),l=Y(Hb,{...s,children:t[1]})}else{if(typeof e!=`string`)return console.error(`MiddleTruncate: children must be a string`),null;if(e.length===0)return Y(`div`,{className:a,style:o});if(e.length<i)return Y(n===`end`?Hb:Vb,{...s,className:a,style:o,children:e});let t=null,u=null,d=null;if(typeof r==`string`)r===`center`?t=Mb:r===`extension`?t=Nb:r===`leaf-path`&&(t=Pb);else if(typeof r==`number`)t=Fb,u=r;else if(Array.isArray(r)){let[e,n]=r;d=n,e===`last`?t=Ib:e===`first`&&(t=Lb)}else typeof r==`function`&&(t=r);t??=Mb;let[f,p]=t(e,{priority:n,variant:s.variant,splitIndex:typeof u==`number`?u:void 0,splitOffset:typeof d==`number`?d:void 0}),m=f.length>=p.length,h=n===`equal`&&!m,g=n===`equal`&&m,_={},v={};h&&(_.marker=``),g&&(v.marker=``),c=Y(Vb,{...s,..._,children:f}),l=Y(Hb,{...s,...v,children:p})}return Y(`div`,{"data-truncate-group-container":`middle`,className:a,style:o,children:[Y(`div`,{"data-truncate-segment-priority":n===`start`||n===`equal`?`1`:`2`,children:c}),Y(`div`,{"data-truncate-segment-priority":n===`end`||n===`equal`?`1`:`2`,children:l})]})}var Wb={endIndex:-1,startIndex:-1};function Gb(e,t,n){return Math.min(Math.max(e,t),n)}function Kb(e,t){return e<0||t<e?Wb:{endIndex:t,startIndex:e}}function qb(e){return e.startIndex<0||e.endIndex<e.startIndex}function Jb(e,t){return qb(e)?0:(e.endIndex-e.startIndex+1)*t}function Yb(e,t,n){if(t<=0)return-1;let r=t*n;return e<=0?0:e>=r?t:Math.floor(e/n)}function Xb(e,t,n){return t<=0||e<=0?-1:e>=t*n?t-1:Math.ceil(e/n)-1}function Zb(e){let t=new Map;return e.forEach((e,n)=>{if(e.kind!==`directory`||!e.isExpanded)return;let r=e.ancestorPaths.length,i=t.get(r);if(i==null){t.set(r,[n]);return}i.push(n)}),t}function Qb(e,t){let n=0,r=e.length-1,i=-1;for(;n<=r;){let a=Math.floor((n+r)/2),o=e[a];if(o==null)break;if(o<=t){i=a,n=a+1;continue}r=a-1}return i}function $b(e){let t=new Map,n=[];for(let r=0;r<e.length;r+=1){let i=e[r];if(i==null)continue;let a=i.kind===`directory`&&i.isExpanded?[...i.ancestorPaths,i.path]:i.ancestorPaths,o=0;for(;o<n.length&&o<a.length&&n[o]===a[o];)o+=1;for(let e=n.length-1;e>=o;--e){let i=n[e];i!=null&&t.set(i,r-1)}n.length=o;for(let e=o;e<a.length;e+=1){let t=a[e];t!=null&&n.push(t)}}let r=e.length-1;for(let e of n)t.set(e,r);return t}function ex(e,t,n){if(e.length===0||t<=0)return[];let r=$b(e),i=Zb(e),a=[];for(let r=0;r<e.length;r+=1){let o=i.get(r);if(o==null||o.length===0)break;let s=t+r*n,c=Qb(o,Math.min(e.length-1,Math.floor(s/n))),l=null;for(;c>=0;){let t=o[c],n=t==null?null:e[t]??null;if(n!=null&&(r===0||n.ancestorPaths[r-1]===a[r-1]?.path)){l=n;break}--c}if(l==null)break;a.push(l)}return a.map((i,a)=>{let o=a*n,s=(r.get(i.path)??e.length-1)+1;if(s>=e.length)return{row:i,top:o};let c=s*n-t;return{row:i,top:Math.min(o,c-n)}}).filter(e=>e.top+n>0)}function tx(e,t){let n=t.totalRowCount??e.length,r=n*t.itemHeight,i=Math.max(0,t.viewportHeight),a=Math.max(0,Math.floor(t.overscan)),o=Math.max(0,r-i),s=Gb(t.scrollTop,0,o),c=t.stickyRows??ex(e,s,t.itemHeight),l=c.reduce((e,n)=>Math.max(e,n.top+t.itemHeight),0),u=Math.min(r,s+l),d=Math.max(0,i-l),f=Math.max(0,r-u),p=Yb(s,n,t.itemHeight),m=Yb(u,n,t.itemHeight),h=l<=0||p<0||p>=n?-1:p,g=h===-1?-1:Math.min(n-1,m-1),_=h===-1||g<h?0:g-h+1,v=d<=0||m>=n?Wb:Kb(m,Xb(u+d,n,t.itemHeight)),y=g+1,b=qb(v)?Wb:Kb(Math.max(y,v.startIndex-a),Math.min(n-1,v.endIndex+a)),x=Jb(b,t.itemHeight);return{occlusion:{firstOccludedIndex:h,lastOccludedIndex:g,occludedCount:_},physical:{itemHeight:t.itemHeight,maxScrollTop:o,overscan:a,scrollTop:s,totalHeight:r,totalRowCount:n,viewportHeight:i},projected:{contentHeight:f,paneHeight:d,paneTop:u},sticky:{height:l,rows:c},visible:v,window:{endIndex:b.endIndex,height:x,offsetTop:qb(b)?0:b.startIndex*t.itemHeight,startIndex:b.startIndex}}}var nx={added:`A`,deleted:`D`,ignored:null,modified:`M`,renamed:`R`,untracked:`U`},rx={added:`Git status: added`,deleted:`Git status: deleted`,ignored:`Git status: ignored`,modified:`Git status: modified`,renamed:`Git status: renamed`,untracked:`Git status: untracked`},ix=`Contains git status items`;function ax(e){return e.current?!0:(e.current=!0,!1)}function ox(e){let{currentScrollTop:t,focusedIndex:n,itemHeight:r,topInset:i=0,viewportHeight:a}=e;if(n<0)return null;let o=Math.max(0,i),s=n*r,c=s+r;if(s<t+o){let e=Math.max(0,s-o);return e===t?null:e}if(c>t+a){let e=c-a;return e===t?null:e}return null}function sx(e){let{currentScrollTop:t,focusedIndex:n,itemHeight:r,offset:i,topInset:a=0,totalHeight:o,viewportHeight:s}=e;if(i===`nearest`)return ox({currentScrollTop:t,focusedIndex:n,itemHeight:r,topInset:a,viewportHeight:s});if(n<0)return null;let c=Math.max(0,a),l=n*r,u=Math.max(0,s-c),d=i===`center`?c+Math.max(0,(u-r)/2):c,f=Math.max(0,o-s),p=Math.max(0,Math.min(l-d,f));return p===t?null:p}function cx(e){let{currentScrollTop:t,focusedIndex:n,itemHeight:r,targetViewportOffset:i,totalHeight:a,viewportHeight:o}=e;if(n<0)return null;let s=Math.max(0,i),c=n*r,l=c+r,u=t+s,d=t+o;if(c>=u&&l<=d)return null;let f=Math.max(0,a-o),p=Math.max(0,Math.min(c-s,f));return p===t?null:p}function lx(e){if(e==null||!e.isConnected||e===document.body||e===document.documentElement)return!1;e.focus({preventScroll:!0});let t=e.getRootNode();return t instanceof ShadowRoot?t.activeElement===e:document.activeElement===e}function ux(e){let t=e.getRootNode();if(t instanceof ShadowRoot){let e=t.activeElement;return e instanceof HTMLElement?e:null}let n=document.activeElement;return n instanceof HTMLElement&&e.contains(n)?n:null}function dx(e,t){if(e==null)return t;let n=e.getBoundingClientRect().height;return n>0?n:e.clientHeight>0?e.clientHeight:t}function fx(e,t){return e!=null&&e>0?e:t}function px(e){let t=e.borderBoxSize,n=Array.isArray(t)?t[0]:t;return n!=null&&Number.isFinite(n.blockSize)&&n.blockSize>0?n.blockSize:e.contentRect.height>0?e.contentRect.height:null}function mx(e,t,n,r,i=0){let a=ox({currentScrollTop:e.scrollTop,focusedIndex:t,itemHeight:n,topInset:i,viewportHeight:r});return a!=null&&(e.scrollTop=a,!0)}function hx(e,t,n,r,i,a,o=0){let s=sx({currentScrollTop:e.scrollTop,focusedIndex:t,itemHeight:n,offset:a,topInset:o,totalHeight:i,viewportHeight:r});return s!=null&&(e.scrollTop=s,!0)}function gx(e,t,n,r,i,a){let o=cx({currentScrollTop:e.scrollTop,focusedIndex:t,itemHeight:n,targetViewportOffset:a,totalHeight:i,viewportHeight:r});return o!=null&&(e.scrollTop=o,!0)}function _x(e,t,n,r){return n.end<n.start?null:e<n.start?-t:e>n.end?r:null}function vx(e){let{renamingPath:t,previousRenamingPath:n,hasRenderedInput:r}=e;return t==null?`reset`:r?n===t?`ignore`:`focus-input`:`reveal-canonical`}function yx({ariaLabel:e,isFlattened:t=!1,ref:n,value:r,onBlur:i,onInput:a}){return Y(`input`,{ref:n,"data-item-rename-input":!0,...t?{"data-item-flattened-rename-input":!0}:{},"aria-label":e,value:r,onBlur:i,onInput:a,onClick:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation()})}function bx(e){let{row:t,mode:n,targetPath:r,ariaLabel:i,domId:a,isParked:o,itemHeight:s,features:c,state:l,extraStyle:u}=e,d=n===`sticky`,f=t.ancestorPaths.at(-1)??``,p={};return l.isFocusRinged&&(p[`data-item-focused`]=!0),t.isSelected&&(p[`data-item-selected`]=!0),l.isContextHovered&&(p[`data-item-context-hover`]=`true`),l.isDragTarget&&(p[`data-item-drag-target`]=!0),l.isDragging&&(p[`data-item-dragging`]=!0),l.effectiveGitStatus!=null&&(p[`data-item-git-status`]=l.effectiveGitStatus),l.containsGitChange&&(p[`data-item-contains-git-change`]=`true`),{"aria-expanded":!d&&t.kind===`directory`?t.isExpanded:void 0,"aria-haspopup":c.contextMenuEnabled?`menu`:void 0,"aria-label":i,"aria-level":d?void 0:t.level+1,"aria-posinset":d?void 0:t.posInSet+1,"aria-selected":d?void 0:t.isSelected?`true`:`false`,"aria-setsize":d?void 0:t.setSize,"data-file-tree-sticky-path":d?r:void 0,"data-file-tree-sticky-row":d?`true`:void 0,"data-item-context-menu-button-visibility":c.actionLaneEnabled?c.contextMenuButtonVisibility:void 0,"data-item-context-menu-trigger-mode":c.contextMenuEnabled?c.contextMenuTriggerMode:void 0,"data-item-has-context-menu-action-lane":c.actionLaneEnabled?`true`:void 0,"data-item-has-git-lane":c.gitLaneActive?`true`:void 0,"data-item-parent-path":f.length>0?f:void 0,"data-item-parked":o?`true`:void 0,"data-item-path":r,"data-item-type":t.kind===`directory`?`folder`:`file`,"data-type":`item`,id:d?void 0:a,role:d?void 0:`treeitem`,style:{minHeight:`${s}px`,...u},tabIndex:!d&&t.isFocused?0:-1,...p}}function xx(e){let{event:t,mode:n,isSearchOpen:r,isDirectory:i}=e,a=t.ctrlKey||t.metaKey,o=t.shiftKey||a,s=t.shiftKey?{additive:a,kind:`range`}:a?{kind:`toggle`}:{kind:`single`};return{closeSearch:r,revealCanonical:n===`sticky`,selection:s,toggleDirectory:!o&&i}}var Sx,X,Cx,wx,Tx=Object.is,Ex=0,Dx=[],Z=J,Ox=Z.__b,kx=Z.__r,Ax=Z.diffed,jx=Z.__c,Mx=Z.unmount,Nx=Z.__;function Px(e,t){Z.__h&&Z.__h(X,e,Ex||t),Ex=0;var n=X.__H||(X.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function Fx(e){return Ex=1,Ix(Kx,e)}function Ix(e,t,n){var r=Px(Sx++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Kx(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);Tx(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=X,!X.__f)){var i=function(e,t,n){if(!r.__c.__H)return!0;var i=r.__c.__H.__.filter(function(e){return!!e.__c});if(i.every(function(e){return!e.__N}))return!a||a.call(this,e,t,n);var o=r.__c.props!==e;return i.forEach(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,Tx(t,e.__[0])||(o=!0)}}),a&&a.call(this,e,t,n)||o};X.__f=!0;var a=X.shouldComponentUpdate,o=X.componentWillUpdate;X.componentWillUpdate=function(e,t,n){if(4&this.__g){var r=a;a=void 0,i(e,t,n),a=r}o&&o.call(this,e,t,n)},X.shouldComponentUpdate=i}return r.__N||r.__}function Lx(e,t){var n=Px(Sx++,3);!Z.__s&&Gx(n.__H,t)&&(n.__=e,n.u=t,X.__H.__h.push(n))}function Rx(e,t){var n=Px(Sx++,4);!Z.__s&&Gx(n.__H,t)&&(n.__=e,n.u=t,X.__h.push(n))}function Q(e){return Ex=5,zx(function(){return{current:e}},[])}function zx(e,t){var n=Px(Sx++,7);return Gx(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function $(e,t){return Ex=8,zx(function(){return e},t)}function Bx(){for(var e;e=Dx.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Ux),e.__H.__h.forEach(Wx),e.__H.__h=[]}catch(t){e.__H.__h=[],Z.__e(t,e.__v)}}Z.__b=function(e){X=null,Ox&&Ox(e)},Z.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Nx&&Nx(e,t)},Z.__r=function(e){kx&&kx(e),Sx=0;var t=(X=e.__c).__H;t&&(Cx===X?(t.__h=[],X.__h=[],t.__.forEach(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})):(t.__h.forEach(Ux),t.__h.forEach(Wx),t.__h=[],Sx=0)),Cx=X},Z.diffed=function(e){Ax&&Ax(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Dx.push(t)!==1&&wx===Z.requestAnimationFrame||((wx=Z.requestAnimationFrame)||Hx)(Bx)),t.__H.__.forEach(function(e){e.u&&(e.__H=e.u),e.u=void 0})),Cx=X=null},Z.__c=function(e,t){t.some(function(e){try{e.__h.forEach(Ux),e.__h=e.__h.filter(function(e){return!e.__||Wx(e)})}catch(n){t.some(function(e){e.__h&&=[]}),t=[],Z.__e(n,e.__v)}}),jx&&jx(e,t)},Z.unmount=function(e){Mx&&Mx(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach(function(e){try{Ux(e)}catch(e){t=e}}),n.__H=void 0,t&&Z.__e(t,n.__v))};var Vx=typeof requestAnimationFrame==`function`;function Hx(e){var t,n=function(){clearTimeout(r),Vx&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);Vx&&(t=requestAnimationFrame(n))}function Ux(e){var t=X,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),X=t}function Wx(e){var t=X;e.__c=e.__(),X=t}function Gx(e,t){return!e||e.length!==t.length||t.some(function(t,n){return!Tx(t,e[n])})}function Kx(e,t){return typeof t==`function`?t(e):t}function qx(e,t=null,n=null){"use no memo";let r=e.flattenedSegments;return r==null||r.length===0?t??e.name:Y(`span`,{"data-item-flattened-subitems":!0,children:r.map((e,i)=>{let a=i===r.length-1;return Y(tb,{children:[Y(`span`,{"data-item-flattened-subitem":e.path,"data-item-flattened-subitem-drag-target":n===e.path?`true`:void 0,children:a&&t!=null?t:Y(Vb,{children:e.name})}),i<r.length-1?` / `:``]},e.path)})})}function Jx(e){return e.isFlattened?e.flattenedSegments?.findLast(e=>e.isTerminal)?.path??e.path:e.path}function Yx(e){let t=e.flattenedSegments;return t==null||t.length===0?e.name:t.map(e=>e.name).join(` / `)}function Xx(e,t,n,r){return e.map((e,i)=>{let a=i*n,o=e.subtreeEndIndex+1;if(o>=r)return{row:e.row,top:a};let s=o*n-t;return{row:e.row,top:Math.min(a,s-n)}}).filter(e=>e.top+n>0)}function Zx({controller:e,itemHeight:t,overscan:n,scrollTop:r,stickyFolders:i,viewportHeight:a}){let o=e.getVisibleCount(),s=i&&o>0?e.getStickyRowCandidates(r,t):[],c=s==null&&i&&o>0?e.getVisibleRows(0,o-1):[],l=tx(c,{itemHeight:t,overscan:n,scrollTop:r,stickyRows:s==null?void 0:Xx(s,r,t,o),totalRowCount:o,viewportHeight:a}),u=i&&r<=0&&o>0?e.getStickyRowCandidates(1,t):[],d=u!=null&&r<=0?Xx(u,1,t,o):i&&r<=0&&c.length>0?ex(c,1,t):l.sticky.rows;return{overlayHeight:d.reduce((e,n)=>Math.max(e,n.top+t),0),overlayRows:d,snapshot:l,visibleRows:c}}var Qx=400,$x=40,eS=18;function tS(e,t,n){let r=e,i=document.elementFromPoint?.bind(document)??null,a=r.elementFromPoint?.(t,n)??i?.(t,n)??null;return e instanceof ShadowRoot&&(a==null||!e.contains(a))?nS(e,t,n):a instanceof HTMLElement?a:null}function nS(e,t,n){let r=Array.from(e.querySelectorAll(`[data-type="item"], [data-item-flattened-subitem]`));for(let e=r.length-1;e>=0;e--){let i=r[e],a=i.getBoundingClientRect();if(t>=a.left&&t<=a.right&&n>=a.top&&n<=a.bottom)return i}return null}function rS(e){let t=e?.closest?.(`[data-type="item"]`);if(!(t instanceof HTMLElement))return null;let n=t.dataset.itemPath??null;if(n==null)return null;let r=e?.closest?.(`[data-item-flattened-subitem]`),i=r instanceof HTMLElement?r.getAttribute(`data-item-flattened-subitem`)??null:null;if(i!=null&&i.endsWith(`/`))return{directoryPath:i,flattenedSegmentPath:i,hoveredPath:n,kind:`directory`};if(t.dataset.itemType===`folder`)return{directoryPath:n,flattenedSegmentPath:null,hoveredPath:n,kind:`directory`};let a=t.dataset.itemParentPath??null;return a==null||a.length===0?{directoryPath:null,flattenedSegmentPath:null,hoveredPath:n,kind:`root`}:{directoryPath:a,flattenedSegmentPath:null,hoveredPath:n,kind:`directory`}}function iS(e){let t=e.cloneNode(!0);return t.removeAttribute(`id`),t.dataset.fileTreeDragPreview=`true`,t.setAttribute(`aria-hidden`,`true`),t.tabIndex=-1,Object.assign(t.style,{boxShadow:`0 4px 12px rgba(0, 0, 0, 0.15)`,left:`0px`,margin:`0`,pointerEvents:`none`,position:`fixed`,top:`0px`,willChange:`transform`,zIndex:`10000`}),t}function aS(){return navigator.vendor!==`Apple Computer, Inc.`}function oS(e,t){let n=e-t.top;if(n<$x)return-Math.ceil(($x-Math.max(0,n))/$x*eS);let r=t.bottom-e;return r<$x?Math.ceil(($x-Math.max(0,r))/$x*eS):0}function sS(e,t){if(e!=null){let t=nx[e];return t==null?null:{text:t,title:rx[e]}}return t?{icon:{name:`file-tree-icon-dot`,width:6,height:6},title:ix}:null}function cS(e,t,n){if(t==null||t.size===0)return null;let r=[];for(let i=e.length-1;i>=0;--i){let a=e[i],o=n.get(a);if(o!=null){for(let e of r)n.set(e,o);return o?`ignored`:null}if(t.has(a)){n.set(a,!0);for(let e of r)n.set(e,!0);return`ignored`}r.push(a)}for(let e of r)n.set(e,!1);return null}function lS(e){return e!=null&&`toggle`in e}function uS(e){return e.code===`Space`||e.key===` `||e.key===`Spacebar`}function dS(e){return e.key.length===1&&/^[\p{L}\p{N}]$/u.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey}function fS(e){return e==null?``:`[data-item-section="spacing-item"][data-ancestor-path="${e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`)}"] { opacity: 1; }`}function pS(e){return e.shiftKey&&e.key===`F10`||e.key===`ContextMenu`}function mS(e,t){return t&&pS(e)||(e.ctrlKey||e.metaKey)&&uS(e)?!0:e.key===`ArrowDown`||e.key===`ArrowLeft`||e.key===`ArrowRight`||e.key===`ArrowUp`}var hS=new Set([`ArrowDown`,`ArrowLeft`,`ArrowRight`,`ArrowUp`,`End`,`Home`,`PageDown`,`PageUp`]);function gS(e){for(let t of e.composedPath())if(t instanceof HTMLElement&&(t.dataset.fileTreeContextMenuRoot===`true`||t.dataset.type===`context-menu-anchor`||t.dataset.type===`context-menu-trigger`||t.getAttribute(`slot`)===`context-menu`))return!0;return!1}function _S(e){return{bottom:e.bottom,height:e.height,left:e.left,right:e.right,top:e.top,width:e.width,x:e.x,y:e.y}}function vS(e,t){return{bottom:t,height:0,left:e,right:e,top:t,width:0,x:e,y:t}}function yS(e,t){if(e==null)return t.offsetTop;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();return n.top-r.top}function bS(e,t,n){if(n==null){e.delete(t);return}e.set(t,n)}function xS(e,t,n){if(e==null)return null;let r=t.get(e)??null;if(r!=null)return r;let i=n.get(e)??null;return i?.dataset.itemParked===`true`?null:i}function SS(e){if(e==null)return[];let t=[];for(let n of e.querySelectorAll(`button[data-file-tree-sticky-row="true"]`)){if(!(n instanceof HTMLElement))continue;let e=n.dataset.fileTreeStickyPath;e!=null&&t.push(e)}return t}function CS(e,t){if(e==null||t==null)return null;for(let n of e.querySelectorAll(`button[data-item-focused="true"][data-item-parked="true"]`))if(n instanceof HTMLElement&&n.dataset.itemPath===t)return n;return null}function wS(e,t,n,r,i,a,o){let s=Math.max(0,a-i),c=t?.getBoundingClientRect()??null,l=c==null||n==null?null:n.getBoundingClientRect().top-c.top,u=CS(e,r),d=c==null||u==null?null:u.getBoundingClientRect().top-c.top;return Math.max(0,Math.min(d??Math.max(l??0,s),Math.max(0,o-i)))}function TS(e,t){return{kind:e.kind,name:Yx(e),path:t}}function ES(e){return e==null?void 0:`${e}__tree`}function DS(e,t,n){if(e!=null)return`${e}__focused-item-${encodeURIComponent(t)}${n?`__parked`:``}`}function OS(e){return e===`file-tree-icon-chevron`||e===`file-tree-icon-dot`||e===`file-tree-icon-file`||e===`file-tree-icon-lock`}function kS(e,t){if(e==null)return null;if(`text`in e)return e.parts==null?Y(`span`,{title:e.title,children:e.text}):Y(`span`,{title:e.title,children:e.parts.map((e,t)=>Y(`span`,{style:{color:e.color},children:e.text},t))});let n=typeof e.icon==`string`?OS(e.icon)?t(e.icon):{name:e.icon}:OS(e.icon.name)?(()=>{let n=t(e.icon.name),{name:r,...i}=e.icon;return{...n,...i}})():e.icon;return Y(`span`,{title:e.title,children:Y(Ob,{...n})})}function AS(e){e!=null&&lx(e.querySelector([`button:not([disabled])`,`[href]`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`, `))??e)}function jS(e,t,{actionLaneEnabled:n=!1,customDecoration:r=null,decorationLaneEnabled:i=!1,dragTargetFlattenedSegmentPath:a=null,gitDecoration:o=null,gitLaneActive:s=!1,renameInput:c=null,showDecorativeActionAffordance:l=!1}={}){let u=Jx(e);return Y(tb,{children:[e.depth>0?Y(`div`,{"data-item-section":`spacing`,children:Array.from({length:e.depth}).map((t,n)=>Y(`div`,{"data-item-section":`spacing-item`,"data-ancestor-path":e.ancestorPaths[n]},n))}):null,Y(`div`,{"data-item-section":`icon`,children:e.kind===`directory`?Y(Ob,{...t(`file-tree-icon-chevron`)}):Y(Ob,{...t(`file-tree-icon-file`,u)})}),Y(`div`,{"data-item-section":`content`,children:e.isFlattened?qx(e,c,a):c??Y(Ub,{minimumLength:5,split:`extension`,children:e.name})}),i?Y(`div`,{"data-item-section":`decoration`,children:r==null?null:kS(r,t)}):null,s?Y(`div`,{"data-item-section":`git`,children:kS(o,t)}):null,n?Y(`div`,{"data-item-section":`action`,children:l?Y(`span`,{"aria-hidden":`true`,"data-item-action-affordance":`decorative`,children:Y(Ob,{...t(`file-tree-icon-ellipsis`)})}):null}):null]})}function MS(e,t,n,r={}){let{controller:i,renameView:a,visualFocusPath:o,contextHoverPath:s,draggedPathSet:c,dragTarget:l,dragAndDropEnabled:u,shouldSuppressContextMenu:d,handleRowDragStart:f,handleRowDragEnd:p,handleRowTouchStart:m,instanceId:h,itemHeight:g,gitStatusByPath:_,ignoredGitDirectories:v,ignoredInheritanceCache:y,directoriesWithGitChanges:b,gitLaneActive:x,contextMenuEnabled:S,contextMenuTriggerMode:C,contextMenuButtonTriggerEnabled:ee,contextMenuButtonVisibility:te,contextMenuRightClickEnabled:ne,registerRenameInput:w,registerButton:T,resolveIcon:re,renderDecorationForRow:ie,openContextMenuForRow:ae,onRowClick:E,onKeyDown:oe}=e,D=Jx(t),{isParked:se=!1,mode:ce=`flow`,style:le}=r,ue=ce===`sticky`,de=_?.get(D)??null??cS(t.ancestorPaths,v,y),fe=t.kind===`directory`&&(b?.has(D)??!1),pe=ie(t,D),me=sS(de,fe),he=S&&ee,ge=pe!=null||x||he,_e=he&&te===`always`,ve=a.getPath()===D,ye=ve?a.getValue():``,be=ue||!ve?null:Y(yx,{ref:w,ariaLabel:`Rename ${Yx(t)}`,isFlattened:t.isFlattened,value:ye,onBlur:()=>{a.commit()},onInput:e=>{a.setValue(e.currentTarget.value)}}),xe=jS(t,re,{actionLaneEnabled:he,customDecoration:pe,decorationLaneEnabled:ge,dragTargetFlattenedSegmentPath:l?.flattenedSegmentPath??null,gitDecoration:me,gitLaneActive:x,renameInput:be,showDecorativeActionAffordance:_e}),Se={...bx({ariaLabel:Yx(t),domId:t.isFocused?DS(h,D,se):void 0,extraStyle:le,features:{actionLaneEnabled:he,contextMenuButtonVisibility:he?te:null,contextMenuEnabled:S,contextMenuTriggerMode:S?C:null,gitLaneActive:x},isParked:se,itemHeight:g,mode:ce,row:t,state:{containsGitChange:fe,effectiveGitStatus:de,isContextHovered:s===D,isDragTarget:l?.kind===`directory`&&l.directoryPath===D,isDragging:c?.has(D)===!0,isFocusRinged:t.isFocused&&o===D},targetPath:D}),key:n,onContextMenu:S||u?e=>{if(d()){e.preventDefault();return}S&&(e.preventDefault(),ne&&(i.focusMountedPathFromInput(D),ae(t,D,{anchorRect:vS(e.clientX,e.clientY),source:`right-click`})))}:void 0,onFocus:ue?void 0:()=>{i.focusMountedPathFromInput(D)},onKeyDown:ue?void 0:oe,ref:e=>{T(D,e)}};return!ue&&ve?Y(`div`,{...Se,children:xe}):Y(`button`,{...Se,type:`button`,draggable:u&&!se,onDragEnd:u&&!se?p:void 0,onDragStart:u&&!se?e=>{f(e,t,D)}:void 0,onMouseDown:e=>{if(ue){e.preventDefault();return}i.isSearchOpen()&&e.preventDefault()},onTouchStart:u&&!se?e=>{m(e,t,D)}:void 0,onClick:e=>{E(e,t,D,ce)},children:xe})}function NS(e,t,n){return t.end<t.start?[]:e.controller.getVisibleRows(t.start,t.end).filter(e=>!n.has(Jx(e))).map((n,r)=>MS(e,n,t.start+r))}function PS({composition:e,controller:t,gitStatusByPath:n,ignoredGitDirectories:r,directoriesWithGitChanges:i,icons:a,instanceId:o,itemHeight:s=Dv,overscan:c=10,renamingEnabled:l=!1,renderRowDecoration:u,searchBlurBehavior:d=`close`,searchEnabled:f=!1,searchFakeFocus:p=!1,slotHost:m,stickyFolders:h=!1,initialViewportHeight:g=420}){"use no memo";let _=Q(null),v=Q(null),y=Q(!1),b=Q(null),x=Q(null),S=Q(null),C=Q(null),ee=Q(null),te=Q(new Map),ne=Q(new Map),w=Q(()=>{}),T=Q(null),re=Q(0),ie=Q(!1),ae=Q(null);ae.current!==t&&(ie.current=!1,ae.current=t);let E=Q(!1),oe=Q(null),D=Q(null),se=Q(!1),ce=Q(null),le=Q(null),ue=Q(null),de=Q(null),fe=Q(null),pe=Q(null),me=Q(null),he=Q(null),ge=Q(!1),_e=Q(null),ve=Q(null),ye=Q(null),be=Q(null),xe=zx(()=>new Map,[]),[,Se]=Fx(0),Ce=Q(!1),[we,Te]=Fx(null),[Ee,De]=Fx(null),[Oe,ke]=Fx(null),[Ae,je]=Fx(null),[Me,Ne]=Fx(0),[O,Pe]=Fx(null),Fe=Q(O);Fe.current=O;let Ie=Q(null),Le=Q(null),Re=Q(null),ze=Q(null),Be=Q(null),Ve=Q(!1),He=()=>{Le.current=null,Re.current=null,ze.current=null},Ue=(e,t)=>{Le.current=e,Re.current=null,ze.current=t==null?null:{path:e,scrollTop:t}},We=(e,t)=>{Le.current=null,Re.current={path:e,viewportOffset:t},ze.current=null},Ge=Q(d===`retain`&&t.isSearchOpen()),[Ke,qe]=Fx(p);Lx(()=>{p||qe(!1)},[p]);let Je=Q(!1),Ye=$(()=>{Je.current=!0,qe(e=>e&&!1)},[]),[Xe,Ze]=Fx(()=>Zx({controller:t,itemHeight:s,overscan:c,scrollTop:0,stickyFolders:h,viewportHeight:g})),[Qe,$e]=Fx(!1);Lx(()=>{$e(!0)},[]);let et=e?.contextMenu?.enabled===!0||e?.contextMenu?.render!=null||e?.contextMenu?.onOpen!=null||e?.contextMenu?.onClose!=null,tt=e?.contextMenu?.triggerMode??(et?`right-click`:`both`),nt=tt===`both`||tt===`button`,rt=e?.contextMenu?.buttonVisibility??`when-needed`,it=tt===`both`||tt===`right-click`;Rx(()=>{let e=S.current;if(e==null)return;let t=e=>{if(!(e instanceof CustomEvent))return;let t=e.detail?.path??null;Be.current=t,De(t),je(t==null?null:`pointer`)},n=e=>{e instanceof CustomEvent&&(Ve.current=e.detail?.disabled===!0)};return e.addEventListener(`file-tree-debug-set-context-menu-trigger`,t),e.addEventListener(`file-tree-debug-set-scroll-suppression`,n),()=>{e.removeEventListener(`file-tree-debug-set-context-menu-trigger`,t),e.removeEventListener(`file-tree-debug-set-scroll-suppression`,n)}},[]);let at=$((e,t)=>{bS(te.current,e,t)},[]),ot=$((e,t)=>{bS(ne.current,e,t)},[]),st=$(e=>{x.current=e},[]),ct=$(e=>xS(e,ne.current,te.current),[]),lt=n!=null||r!=null||i!=null,{resolveIcon:ut}=zx(()=>qm(a),[a]),dt=t[vy](),ft=dt.getPath(),pt=ft!=null,mt=t.isSearchOpen(),ht=t.getSearchValue(),k=t.getFocusedPath(),A=t.getFocusedIndex(),gt=t.getScrollRequest(),_t=t.isDragAndDropEnabled(),vt=t.getDragSession(),yt=zx(()=>vt==null?null:new Set(vt.draggedPaths),[vt]),bt=vt?.target??null,xt=vt?.primaryPath??null,St=ES(o),{overlayHeight:Ct,overlayRows:wt,snapshot:j,visibleRows:Tt}=Xe,M=j.physical.viewportHeight,Et=zx(()=>({end:j.window.endIndex,start:j.window.startIndex}),[j.window.endIndex,j.window.startIndex]),Dt=wt,Ot=j.sticky.rows,kt=j.physical.totalHeight,At=j.sticky.height,jt=zx(()=>new Set(Ot.map(e=>Jx(e.row))),[Ot]),Mt=A>=0&&A>=Et.start&&A<=Et.end,Nt=$((e,t)=>u?.({item:TS(e,t),row:e})??null,[u]),Pt=$(e=>lx(e==null?null:te.current.get(e)??null)?!0:lx(S.current),[]),Ft=$(e=>{Pt(t.focusNearestPath(e))},[t,Pt]),It=Q(Ft);It.current=Ft;let Lt=Q(!0),Rt=Q(()=>{}),zt=$((t=!0)=>{let n=Fe.current;n!=null&&(Lt.current=Lt.current&&t,Pe(null),e?.contextMenu?.onClose?.(),Lt.current&&Ft(n.path))},[e?.contextMenu,Ft]);Rt.current=zt;let Bt=$(e=>{let t=e==null?null:yS(S.current,e);ke(e=>e===t?e:t)},[]),N=$((e,n,r)=>{let i=t.getItem(n);if(i==null)return;let a=ct(n);if(a?.dataset.fileTreeStickyRow===`true`){let e=C.current;Ue(n,e?.scrollTop??null),E.current=!0,Te(e=>e===n?e:n)}i.focus(),Bt(a),Lt.current=!0,Pe({anchorRect:r?.anchorRect??null,item:TS(e,n),path:n,source:r?.source??`keyboard`})},[t,ct,Bt]),Vt=$(e=>{if(l){if(t.isSearchOpen()){let e=C.current,t=dx(e,M);ce.current=A<0||e==null?null:Math.max(0,Math.min(A*s-e.scrollTop,Math.max(0,t-s))),se.current=!0}t.startRenaming(e)!==!1&&(je(`focus`),Se(e=>e+1))}},[t,A,s,l,M]),Ht=$((e,{restoreTreeFocus:n=!0,targetOffset:r=`live-overlay`}={})=>{let i=C.current;if(i==null)return!1;t.focusPath(e);let a=t.getFocusedIndex();if(a<0)return!1;let o=t.getVisibleRows(a,a)[0]??null;if(o==null)return!1;let l=dx(i,M),u=t.getVisibleCount()*s,d=r===`sticky-parents`?o.ancestorPaths.length*s:Zx({controller:t,itemHeight:s,overscan:c,scrollTop:i.scrollTop,stickyFolders:h,viewportHeight:l}).snapshot.sticky.height;return E.current=!0,gx(i,a,s,l,u,d),w.current(),Ie.current=n?e:null,!0},[t,s,c,M,h]),Ut=()=>y.current===!0||be.current!=null||ge.current===!0,Wt=e=>typeof window.requestAnimationFrame==`function`?window.requestAnimationFrame(()=>{e()}):window.setTimeout(e,16),Gt=e=>{if(e!=null){if(typeof window.cancelAnimationFrame==`function`){window.cancelAnimationFrame(e);return}window.clearTimeout(e)}},Kt=()=>{de.current!=null&&(clearTimeout(de.current),de.current=null),ue.current=null},qt=()=>{pe.current?.remove(),pe.current=null},Jt=()=>{Gt(le.current),le.current=null,fe.current=null},Yt=e=>{let t=S.current?.getRootNode();if(t instanceof ShadowRoot){t.append(e);return}document.body.append(e)},Xt=()=>{he.current?.(),he.current=null,be.current!=null&&(clearTimeout(be.current),be.current=null),ge.current=!1,_e.current=null,ye.current=null,ve.current!=null&&(ve.current.setAttribute(`draggable`,`true`),ve.current.style.removeProperty(`touch-action`),ve.current=null),qt(),Kt(),Jt(),me.current=null},Zt=(e,n)=>{let r=S.current?.getRootNode(),i=rS(tS(r instanceof ShadowRoot?r:document,e,n));return t.setDragTarget(i),t.getDragSession()?.target??null},Qt=e=>{let n=t.getDragAndDropConfig()?.openOnDropDelay??800;if(e==null||e.kind!==`directory`||e.directoryPath==null||n<=0){Kt();return}let r=t.getItem(e.directoryPath),i=lS(r)?r:null;if(i==null||i.isExpanded()){Kt();return}let a=`${e.directoryPath}::${e.flattenedSegmentPath??``}`;ue.current!==a&&(Kt(),ue.current=a,de.current=setTimeout(()=>{let n=t.getDragSession()?.target;n?.kind===`directory`&&n.directoryPath===e.directoryPath&&n.flattenedSegmentPath===e.flattenedSegmentPath&&i.expand()},n))},$t=()=>{le.current=null;let e=fe.current,n=C.current;if(e==null||n==null||t.getDragSession()==null)return;let r=n.getBoundingClientRect(),i=oS(e.clientY,r);if(i===0)return;let a=Math.max(0,n.scrollHeight-n.clientHeight),o=Math.max(0,Math.min(a,n.scrollTop+i));o!==n.scrollTop&&(n.scrollTop=o,w.current()),Qt(Zt(e.clientX,e.clientY)),le.current=Wt($t)},en=(e,t)=>{fe.current={clientX:e,clientY:t},le.current??=Wt($t)},tn=(e,n,r)=>{let i=e.currentTarget;if(i!=null){if(Xt(),qt(),Kt(),Jt(),t.startDrag(r)===!1){e.preventDefault();return}if(me.current=n,e.dataTransfer!=null&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.dropEffect=`move`,e.dataTransfer.setData(`text/plain`,r),aS())){let t=iS(i),n=i.getBoundingClientRect();Object.assign(t.style,{height:`${n.height}px`,opacity:`0.85`,transform:`translate3d(-9999px, 0px, 0)`,width:`${n.width}px`}),Yt(t),pe.current=t,e.dataTransfer.setDragImage(t,Math.max(0,e.clientX-n.left),Math.max(0,e.clientY-n.top))}}},nn=()=>{qt(),Kt(),Jt(),me.current=null,t.cancelDrag()},rn=(e,n,r)=>{if(be.current!=null||ge.current)return;let i=e.touches[0],a=e.currentTarget;if(i==null||a==null)return;ye.current={clientX:i.clientX,clientY:i.clientY},ve.current=a,a.setAttribute(`draggable`,`false`);let o=(e={})=>{let t=e.restoreNativeDraggable??!ge.current;be.current!=null&&(clearTimeout(be.current),be.current=null),document.removeEventListener(`touchmove`,s),document.removeEventListener(`touchend`,c),document.removeEventListener(`touchcancel`,c),he.current===o&&(he.current=null),t&&(a.setAttribute(`draggable`,`true`),ve.current===a&&(ve.current=null),ye.current=null)},s=e=>{let t=e.touches[0],n=ye.current;if(t==null||n==null)return;let r=t.clientX-n.clientX,i=t.clientY-n.clientY;r*r+i*i<=100||o()},c=()=>{o()};document.addEventListener(`touchmove`,s,{passive:!0}),document.addEventListener(`touchend`,c),document.addEventListener(`touchcancel`,c),he.current=o,be.current=setTimeout(()=>{if(o({restoreNativeDraggable:!1}),t.startDrag(r)===!1){a.setAttribute(`draggable`,`true`),ve.current===a&&(ve.current=null),ye.current=null;return}ge.current=!0,ve.current=a,a.setAttribute(`draggable`,`false`),a.style.setProperty(`touch-action`,`none`),me.current=n;let e=a.getBoundingClientRect(),s=iS(a);Object.assign(s.style,{height:`${e.height}px`,opacity:`0.85`,transform:`translate3d(${e.left}px, ${e.top}px, 0)`,width:`${e.width}px`}),Yt(s),pe.current=s,_e.current={x:i.clientX-e.left,y:i.clientY-e.top};let c=e=>{let t=e.touches[0];if(t==null)return;e.preventDefault();let n=_e.current;n!=null&&pe.current!=null&&(pe.current.style.transform=`translate3d(${t.clientX-n.x}px, ${t.clientY-n.y}px, 0)`),Qt(Zt(t.clientX,t.clientY)),en(t.clientX,t.clientY)},l=e=>{let n=e.changedTouches[0];n!=null&&Zt(n.clientX,n.clientY),t.completeDrag(),Xt()},u=()=>{t.cancelDrag(),Xt()};he.current=()=>{document.removeEventListener(`touchmove`,c),document.removeEventListener(`touchend`,l),document.removeEventListener(`touchcancel`,u)},document.addEventListener(`touchmove`,c,{passive:!1}),document.addEventListener(`touchend`,l),document.addEventListener(`touchcancel`,u)},Qx)},an=e=>{if(O!=null){if(e.key===`Escape`){zt(),e.preventDefault(),e.stopPropagation();return}hS.has(e.key)&&(e.preventDefault(),e.stopPropagation());return}if(dt.isActive()){if(e.isComposing||e.keyCode===229)return;if(e.key===`Escape`)dt.cancel();else if(e.key===`Enter`)dt.commit();else return;je(`focus`),Se(e=>e+1),e.preventDefault(),e.stopPropagation();return}if(l&&e.key===`F2`){Vt(k??void 0),e.preventDefault(),e.stopPropagation();return}if(mt){if(e.key===`Escape`)se.current=!1,ce.current=null,t.closeSearch();else if(e.key===`Enter`){let e=t.getFocusedPath();e!=null&&t.selectOnlyPath(e);let n=C.current,r=dx(n,M);ce.current=A<0||n==null?null:Math.max(0,Math.min(A*s-n.scrollTop,Math.max(0,r-s))),se.current=!0,t.closeSearch()}else if(e.key===`ArrowDown`)t.focusNextSearchMatch();else if(e.key===`ArrowUp`)t.focusPreviousSearchMatch();else return;je(`focus`),Se(e=>e+1),e.preventDefault(),e.stopPropagation();return}if(f&&dS(e)){t.openSearch(e.key),Se(e=>e+1),e.preventDefault(),e.stopPropagation();return}let n=et&&pS(e),r=mS(e,et),i=r&&S.current!=null?ux(S.current):null,a=r?new Set(SS(S.current)):new Set,o=i?.dataset.fileTreeStickyPath??null,c=i?.dataset.fileTreeStickyRow===`true`&&o!=null;if(c&&o!==k&&a.has(o)){let e=C.current;Ue(o,e?.scrollTop??null),t.focusPath(o)}let u=t.getFocusedPath(),d=t.getFocusedIndex(),p=t.getFocusedItem();if(p==null)return;let m=lS(p)?p:null,h=u!=null&&(jt.has(u)||c&&o===u&&a.has(u)),g=e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`ArrowRight`&&m!=null&&m.isExpanded(),_=e.key===`ArrowLeft`&&h&&m!=null&&m.isExpanded(),v=C.current,y=!0;if(e.shiftKey&&e.key===`ArrowDown`)t.extendSelectionFromFocused(1);else if(e.shiftKey&&e.key===`ArrowUp`)t.extendSelectionFromFocused(-1);else if(n&&u!=null&&d>=0){let e=t.getVisibleRows(d,d)[0]??null,n=xS(u,ne.current,te.current);e==null||n==null?y=!1:N(e,u)}else if((e.ctrlKey||e.metaKey)&&uS(e))t.toggleFocusedSelection();else if((e.ctrlKey||e.metaKey)&&e.key.toLowerCase()===`a`)t.selectAllVisiblePaths();else switch(e.key){case`ArrowDown`:t.focusNextItem();break;case`ArrowUp`:t.focusPreviousItem();break;case`ArrowRight`:m==null||m.isExpanded()?t.focusNextItem():m.expand();break;case`ArrowLeft`:m!=null&&m.isExpanded()?m.collapse():t.focusParentItem();break;case`Home`:t.focusFirstItem();break;case`End`:t.focusLastItem();break;default:y=!1}if(!y)return;je(`focus`);let b=t.getFocusedPath(),x=b!=null&&(jt.has(b)||a.has(b)),ee=g&&b!==u,w=n&&c&&o===u&&b===u;if((h||w)&&b!=null&&(ee&&x||w))Ue(b,v?.scrollTop??null),E.current=!0,Te(e=>e===b?e:b);else{let t=e.key===`ArrowUp`&&h&&b!==u;b!=null&&(t||_&&b===u)?(We(b,wS(S.current,v,i,u,s,At,M)),E.current=!0,Te(e=>e===b?e:b)):He()}Se(e=>e+1),e.preventDefault(),e.stopPropagation()};Rx(()=>{if(!(!f||!mt)){if(Ge.current){Ge.current=!1;return}lx(ee.current)}},[mt,f]),Rx(()=>{let e=x.current;switch(vx({hasRenderedInput:e!=null,previousRenamingPath:D.current,renamingPath:ft})){case`reset`:D.current=null;return;case`reveal-canonical`:ft!=null&&Ht(ft,{restoreTreeFocus:!1,targetOffset:`live-overlay`});return;case`ignore`:return;case`focus-input`:e!=null&&(Ie.current=null,D.current=ft,lx(e),e.select());return}},[Et.end,Et.start,ft,Ht,jt]),Rx(()=>{let e=S.current;if(e==null)return;let t=null,n=()=>{t!=null&&(clearTimeout(t),t=null)},r=()=>{let t=ux(e)?.dataset.itemPath??null;Te(e=>e===t?e:t)},i=()=>{n(),E.current=!0,r()},a=i=>{let a=i.relatedTarget;if(a==null){n(),t=setTimeout(()=>{if(t=null,ux(e)!=null){r();return}E.current=!1,Te(null)},0);return}if(!(a instanceof Node)||!e.contains(a)){n(),E.current=!1,Te(null);return}let o=a instanceof HTMLElement?a.dataset.itemPath??null:null;Te(e=>e===o?e:o)};return e.addEventListener(`focusin`,i),e.addEventListener(`focusout`,a),()=>{n(),e.removeEventListener(`focusin`,i),e.removeEventListener(`focusout`,a)}},[]),Rx(()=>{let e=S.current;e!=null&&(j.physical.scrollTop<=0?e.dataset.scrollAtTop=`true`:delete e.dataset.scrollAtTop)},[j.physical.scrollTop]),Rx(()=>{let e=null,n=C.current,r=b.current,i=S.current;if(n==null)return;T.current=dx(n,g);let a=()=>{let e=t.getVisibleCount(),r=fx(T.current,g),i=Math.max(0,e*s-r);n.scrollTop>i&&(n.scrollTop=i),Ze(Zx({controller:t,itemHeight:s,overscan:c,scrollTop:Math.min(n.scrollTop,i),stickyFolders:h,viewportHeight:r}))};if(!ie.current){ie.current=!0;let e=t.getFocusedIndex();if(e>=0){let r=fx(T.current,g),i=t.getVisibleRows(e,e)[0]??null;mx(n,e,s,r,h&&i!=null?Math.max(0,Math.min(i.ancestorPaths.length*s,Math.max(0,r-s))):0)}}w.current=a;let o=t.subscribe(()=>{ax(Ce)&&Se(e=>e+1),a()}),l=()=>{Ve.current!==!0&&(r!=null&&(r.dataset.isScrolling??=``),i!=null&&(i.dataset.isScrolling??=``),y.current=!0,e!=null&&clearTimeout(e),e=setTimeout(()=>{r!=null&&delete r.dataset.isScrolling,i!=null&&delete i.dataset.isScrolling,y.current=!1,Ne(e=>e+1),e=null},50))},u=null,d=()=>{i!=null&&delete i.dataset.overlayReveal,u!=null&&(clearTimeout(u),u=null)},f=()=>{i!=null&&Ve.current!==!0&&(n.scrollTop>0||(i.dataset.overlayReveal=`true`,u!=null&&clearTimeout(u),u=setTimeout(()=>{d()},200)))},p=()=>{if(a(),n.scrollTop>0&&d(),Fe.current!=null&&y.current&&Rt.current(),Ve.current===!0){y.current=!1;return}De(e=>e==null?e:null),l()},m=()=>{l(),f()},_=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`,` `,`Spacebar`]),v=e=>{_.has(e.key)&&m()};n.addEventListener(`scroll`,p,{passive:!0}),n.addEventListener(`wheel`,m,{passive:!0}),n.addEventListener(`touchmove`,m,{passive:!0}),n.addEventListener(`keydown`,v);let x=typeof ResizeObserver<`u`?new ResizeObserver(e=>{T.current=(e[0]==null?null:px(e[0]))??dx(n,g),a()}):null;return x?.observe(n),()=>{w.current=()=>{},o(),n.removeEventListener(`scroll`,p),n.removeEventListener(`wheel`,m),n.removeEventListener(`touchmove`,m),n.removeEventListener(`keydown`,v),e!=null&&clearTimeout(e),u!=null&&clearTimeout(u),r!=null&&delete r.dataset.isScrolling,i!=null&&(delete i.dataset.isScrolling,delete i.dataset.overlayReveal),y.current=!1,T.current=null,x?.disconnect()}},[t,g,s,c,h]),Rx(()=>{et||O==null||zt(!1)},[zt,et,O]);let on=zx(()=>O==null?null:`${O.path}::${O.source}`,[O]);Rx(()=>{if(on==null){m?.clearSlotContent(zm);return}let t=Fe.current;if(t==null)return;let n=v.current??_.current;if(n==null)return;let r={anchorElement:n,anchorRect:t.anchorRect??_S(n.getBoundingClientRect()),close:e=>{Rt.current(e?.restoreFocus??!0)},restoreFocus:()=>{Lt.current&&It.current(Fe.current?.path??null)}},i=e?.contextMenu?.render?.(t.item,r)??null;return m?.setSlotContent(zm,i),e?.contextMenu?.onOpen?.(t.item,r),AS(i),queueMicrotask(()=>{i==null||!i.isConnected||document.activeElement===i&&AS(i)}),()=>{m?.clearSlotContent(zm)}},[on,e?.contextMenu,m]),Rx(()=>{O!=null&&t.getItem(O.path)==null&&zt()},[zt,O,t]),Rx(()=>{if(O==null)return;let e=S.current?.getRootNode(),t=e instanceof ShadowRoot?e.host:S.current,n=e=>{let n=e.target;n instanceof Node&&(gS(e)||_.current?.contains(n)!==!0&&t?.contains(n)!==!0&&zt())},r=e=>{e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),zt())};return document.addEventListener(`mousedown`,n,!0),document.addEventListener(`keydown`,r,!0),()=>{document.removeEventListener(`mousedown`,n,!0),document.removeEventListener(`keydown`,r,!0)}},[zt,O]),Rx(()=>{let e=C.current,n=S.current;if(e==null||n==null){oe.current=k;return}let r=k==null?null:te.current.get(k)??null,i=ux(n),a=i?.dataset.itemPath??null,o=pt&&x.current===i,c=f&&ee.current===i,l=se.current&&!mt,u=ce.current??0,d=Ie.current,p=Le.current,m=Re.current,g=ze.current,_=i!=null,v=E.current||_,y=oe.current!==k,b=p!=null&&p===k&&k!=null,ne=!1,T=!1;if(gt!=null&&gt.id!==re.current){re.current=gt.id;let n=gt.visibleIndex,r=t.getVisibleRows(n,n)[0]??null;if(r!=null){let t=h?Math.max(0,Math.min(r.ancestorPaths.length*s,Math.max(0,M-s))):At;ne=!0,T=hx(e,n,s,M,kt,gt.offset,t)}t.clearScrollRequest(gt.id)}let ie=!ne&&l&&gx(e,A,s,M,kt,u),ae=!ne&&d!=null&&d===k&&gx(e,A,s,M,kt,At),D=!ne&&m!=null&&m.path===k&&gx(e,A,s,M,kt,m.viewportOffset),le=!ne&&g!=null&&g.path===k&&e.scrollTop!==g.scrollTop;if(le&&(e.scrollTop=g.scrollTop),(le||T||ae||D||ie||v&&y&&d!==k&&!b&&mx(e,A,s,M,At))&&w.current(),ne){oe.current=k;return}if(!v){oe.current=k;return}if(o){oe.current=k;return}if(c&&!l){oe.current=k;return}if(r==null){l&&A>=0&&(gx(e,A,s,M,kt,u),w.current()),oe.current=k;return}(y||l||d===k||p===k||m?.path===k||g?.path===k||a==null||a!==k)&&(lx(r),d===k&&(Ie.current=null),p===k&&(Le.current=null),m?.path===k&&(Re.current=null),g?.path===k&&(ze.current=null),se.current=!1,ce.current=null),oe.current=k},[t,A,k,Mt,s,pt,mt,Et,M,f,gt,h,At,kt,Tt]);let sn=A>=0&&A>=j.visible.startIndex&&A<=j.visible.endIndex,cn=k!=null&&Dt.some(e=>Jx(e.row)===k),ln=sn||cn,un=nt&&E.current===!0&&ln?k:null,dn=Ae===`pointer`?Ee:null,fn=O?.path??Be.current??dn??un??Ee,pn=O?.source===`right-click`;Rx(()=>{y.current&&O==null||Bt(ct(fn))},[O,ct,Et,M,Me,Dt,fn,Bt,Tt]);let mn=$(e=>{if(y.current||gS(e))return;let t=e.target;if(!(t instanceof HTMLElement)||t.closest?.(`[data-type="context-menu-trigger"]`)!=null)return;let n=t.closest?.(`[data-file-tree-sticky-row="true"]`),r=t.closest?.(`[data-type="item"]`),i=n instanceof HTMLElement?n.dataset.fileTreeStickyPath??null:r instanceof HTMLElement?r.dataset.itemPath??null:null;i!=null&&je(e=>e===`pointer`?e:`pointer`),De(e=>e===i?e:i)},[]),hn=$(()=>{De(null)},[]);Rx(()=>{if(!_t)return;let e=()=>{Xt(),t.cancelDrag()};return window.addEventListener(`dragend`,e),()=>{window.removeEventListener(`dragend`,e),Xt(),t.cancelDrag()}},[t,_t]);let gn=e=>{if(!_t||t.getDragSession()==null||ge.current)return;let n=rS(e.target instanceof HTMLElement?e.target:null);t.setDragTarget(n),Qt(t.getDragSession()?.target??null),en(e.clientX,e.clientY),e.dataTransfer!=null&&(e.dataTransfer.dropEffect=`move`),e.preventDefault()},_n=e=>{if(!_t||t.getDragSession()==null||ge.current)return;let n=e.relatedTarget;n instanceof Node&&S.current?.contains(n)===!0||(Kt(),Jt(),t.setDragTarget(null))},vn=e=>{!_t||t.getDragSession()==null||ge.current||(e.preventDefault(),Zt(e.clientX,e.clientY),t.completeDrag(),qt(),Kt(),Jt(),me.current=null)},yn=j.window.height,bn=j.window.offsetTop,xn=Math.min(0,M-yn),Sn=Math.min(0,M-yn-At),Cn=we===k||se.current,P=k!=null&&Cn&&!Mt&&A>=0?Tt[A]??t.getVisibleRows(A,A)[0]??null:null,wn=P==null?null:_x(A,s,Et,yn),Tn=me.current,En=xt!=null&&Tn!=null&&Tn.path===xt&&Tn.index>=Et.start&&Tn.index<=Et.end,Dn=xt!=null&&Tn!=null&&Tn.path===xt&&!En&&Tn.path!==P?.path?Tn:null,On=Dn==null?null:_x(Dn.index,s,Et,yn),kn=fS((A>=0?Tt[A]??t.getVisibleRows(A,A)[0]??null:null)?.ancestorPaths.at(-1)??null),An=mt&&k!=null?DS(o,k,!Mt):void 0,jn=O?.path??(mt?k:we),Mn=O?.path??Ee,Nn=ct(fn),Pn=et&&nt&&!pn&&!pt&&Nn!=null&&Oe!=null&&fn!=null,F=et&&(Pn||O!=null),Fn=O?.anchorRect,I=Fn==null&&Nn!=null&&Oe!=null&&(O!=null||Pn)?Oe:null,L=Fn==null?I==null?void 0:{top:`${I}px`}:{left:`${Fn.left}px`,position:`fixed`,right:`auto`,top:`${Fn.top}px`},In=pn?{opacity:`0`}:void 0,Ln=$((e,n,r,i)=>{let a=xx({event:{ctrlKey:e.ctrlKey,metaKey:e.metaKey,shiftKey:e.shiftKey},isDirectory:n.kind===`directory`,isSearchOpen:mt,mode:i}),o=a.toggleDirectory&&n.kind===`directory`,s=o?t.resolveMountedDirectoryPathFromInput(r):null;if(o&&s==null)return;let c=s??r;switch(a.selection.kind){case`range`:t.selectPathRange(c,a.selection.additive);break;case`toggle`:t.togglePathSelectionFromInput(c);break;case`single`:t.selectOnlyMountedPathFromInput(c)}let l=e.currentTarget instanceof HTMLElement?e.currentTarget:null,u=n.index>=j.visible.startIndex&&n.index<=j.visible.endIndex,d=i===`flow`&&u&&l!=null&&l.dataset.itemParked!==`true`;t.focusMountedPathFromInput(c),d&&(E.current=!0,Te(e=>e===c?e:c),je(`focus`)),o&&t.toggleMountedDirectoryFromInput(c),a.closeSearch&&t.closeSearch(),a.revealCanonical&&Ht(c,{targetOffset:`sticky-parents`})},[t,mt,j.visible.endIndex,j.visible.startIndex,Ht]),Rn=()=>{if(y.current||!nt||fn==null||Nn==null)return;let e=t.getItem(fn);e!=null&&(Bt(Nn),Lt.current=!0,Pe({anchorRect:null,item:{kind:e.isDirectory()?`directory`:`file`,name:Nn.getAttribute(`aria-label`)??fn,path:e.getPath()},path:e.getPath(),source:`button`}))},zn={contextHoverPath:Mn,contextMenuButtonTriggerEnabled:nt,contextMenuButtonVisibility:rt,contextMenuEnabled:et,contextMenuRightClickEnabled:it,contextMenuTriggerMode:tt,controller:t,directoriesWithGitChanges:i,dragAndDropEnabled:_t,draggedPathSet:yt,dragTarget:bt,gitLaneActive:lt,gitStatusByPath:n,handleRowDragEnd:nn,handleRowDragStart:tn,handleRowTouchStart:rn,ignoredGitDirectories:r,ignoredInheritanceCache:xe,instanceId:o,itemHeight:s,onKeyDown:an,onRowClick:Ln,openContextMenuForRow:N,registerButton:at,registerRenameInput:st,renameView:dt,renderDecorationForRow:Nt,resolveIcon:ut,shouldSuppressContextMenu:Ut,visualFocusPath:jn},Bn={...zn,registerButton:ot};return Y(`div`,{ref:S,id:St,"data-file-tree-context-menu-button-visibility":et&&nt?rt:void 0,"data-file-tree-context-menu-trigger-mode":et?tt:void 0,"data-file-tree-has-context-menu-action-lane":et&&nt?`true`:void 0,"data-file-tree-has-git-lane":lt?`true`:void 0,"data-file-tree-virtualized-root":`true`,onDragLeave:_t?_n:void 0,onDragOver:_t?gn:void 0,onDrop:_t?vn:void 0,onKeyDown:an,onPointerLeave:et?hn:void 0,onPointerOver:et?mn:void 0,role:`tree`,tabIndex:-1,style:{outline:`none`,position:`relative`},children:[Y(`style`,{"data-file-tree-guide-style":`true`,dangerouslySetInnerHTML:{__html:kn}}),Y(`slot`,{name:Rm,"data-type":`header-slot`}),f?Y(`div`,{"data-file-tree-search-container":!0,"data-open":mt?`true`:`false`,children:Y(`input`,{ref:ee,"aria-activedescendant":An,"aria-controls":St,placeholder:`Search…`,"data-file-tree-search-input":!0,"data-file-tree-search-input-fake-focus":Ke?`true`:void 0,value:ht,onBlur:()=>{d===`retain`&&!Je.current||t.closeSearch()},onFocus:Ye,onPointerDown:Ye,onInput:e=>{Ye();let n=e.currentTarget;t.setSearch(n.value)}})}):null,Y(`div`,{ref:C,"data-file-tree-virtualized-scroll":`true`,children:[h&&Qe&&Dt.length>0?Y(`div`,{"aria-hidden":`true`,"data-file-tree-sticky-overlay":`true`,children:Y(`div`,{"data-file-tree-sticky-overlay-content":`true`,style:{height:`${Ct}px`},children:Dt.map((e,t)=>MS(Bn,e.row,`sticky:${Jx(e.row)}`,{mode:`sticky`,style:{left:`0`,position:`absolute`,right:`0`,top:`${e.top}px`,zIndex:`${Dt.length-t}`}}))})}):null,Y(`div`,{ref:b,"data-file-tree-virtualized-list":`true`,style:{height:`${kt}px`},children:[Y(`div`,{"data-file-tree-virtualized-sticky-offset":`true`,"aria-hidden":`true`,style:{height:`${bn}px`}}),Y(`div`,{"data-file-tree-virtualized-sticky":`true`,style:{height:`${yn}px`,top:`${xn}px`,bottom:`${Sn}px`},children:[NS(zn,Et,jt),P!=null&&wn!=null?MS(zn,P,`parked:${P.path}`,{isParked:!0,style:{left:`0`,opacity:`0`,pointerEvents:xt===P.path?`none`:void 0,position:`absolute`,right:`0`,top:`${wn}px`}}):null,Dn!=null&&On!=null?MS(zn,Dn,`parked-drag:${Dn.path}`,{isParked:!0,style:{left:`0`,opacity:`0`,pointerEvents:`none`,position:`absolute`,right:`0`,top:`${On}px`}}):null]})]})]}),et?Y(`div`,{ref:_,"data-type":`context-menu-anchor`,"data-visible":F?`true`:`false`,style:L,children:[Y(`button`,{ref:v,type:`button`,"data-type":Bm,"aria-label":`Options`,"aria-haspopup":`menu`,"aria-expanded":O==null?`false`:`true`,"data-visible":Pn?`true`:`false`,onMouseDown:e=>{e.preventDefault()},onClick:e=>{if(e.preventDefault(),e.stopPropagation(),O!=null){zt();return}Rn()},tabIndex:-1,style:In,children:Y(Ob,{...ut(`file-tree-icon-ellipsis`)})}),O==null?null:Y(`slot`,{name:zm})]}):null,O==null?null:Y(`div`,{"data-type":`context-menu-wash`,"aria-hidden":`true`,onMouseDownCapture:e=>{e.preventDefault(),zt()},onTouchStartCapture:e=>{e.preventDefault(),e.stopPropagation(),zt()},onTouchMoveCapture:e=>{e.preventDefault(),e.stopPropagation()},onWheelCapture:e=>{e.preventDefault(),e.stopPropagation()}})]})}var FS={hydrateRoot:(e,t)=>{Cb($y(PS,t),e)},renderRoot:(e,t)=>{Sb($y(PS,t),e)},unmountRoot:e=>{Sb(null,e)}};function IS(e,t){FS.renderRoot(e,t)}function LS(e,t){FS.hydrateRoot(e,t)}function RS(e){FS.unmountRoot(e)}var zS=class{#e=new Map;#t=null;clearAll(){for(let e of this.#e.values())e.remove();this.#e.clear()}clearSlotContent(e){let t=this.#n(e);t!=null&&(t.remove(),this.#e.delete(e))}setHost(e){if(this.#t=e,e!=null){this.#i(e);for(let[e,t]of this.#e)this.#r(e,t)}}setSlotContent(e,t){let n=this.#n(e);if(n===t){t!=null&&(this.#e.set(e,t),this.#r(e,t));return}if(n?.remove(),t==null){this.#e.delete(e);return}this.#e.set(e,t),this.#r(e,t)}setSlotHtml(e,t){let n=t?.trim()??``;if(n.length===0){this.setSlotContent(e,null);return}let r=this.#n(e);if(r!=null&&r.innerHTML===n){this.#e.set(e,r),this.#r(e,r);return}let i=document.createElement(`div`);i.innerHTML=n,this.setSlotContent(e,i)}#n(e){let t=this.#e.get(e)??null;if(t!=null)return t;let n=this.#t;if(n==null)return null;for(let t of Array.from(n.children))if(t instanceof HTMLElement&&t.dataset.fileTreeManagedSlot===e)return t;return null}#r(e,t){t.slot=e,t.dataset.fileTreeManagedSlot=e,this.#t!=null&&t.parentNode!==this.#t&&this.#t.appendChild(t)}#i(e){for(let t of Array.from(e.children)){if(!(t instanceof HTMLElement))continue;let e=t.dataset.fileTreeManagedSlot;e==null||this.#e.has(e)||this.#e.set(e,t)}}};Array.isArray;var BS=0;function VS(e){return e!=null&&e.length>0?e:(BS+=1,`pst_ft_${BS}`)}function HS({initialVisibleRowCount:e,itemHeight:t}){return e==null?420:Math.max(0,e)*(t??Dv)}function US(e){if(typeof document>`u`)return;let t=document.createElement(`div`);t.innerHTML=e;let n=t.querySelector(`svg`);return n instanceof SVGElement?n:void 0}function WS(e){return e.querySelector(`#file-tree-icon-chevron`)instanceof SVGElement&&e.querySelector(`#file-tree-icon-file`)instanceof SVGElement&&e.querySelector(`#file-tree-icon-dot`)instanceof SVGElement&&e.querySelector(`#file-tree-icon-lock`)instanceof SVGElement}function GS(e){return Array.from(e.children).filter(e=>e instanceof SVGElement)}var KS=class{static LoadedCustomComponent=!0;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l=new zS;#u;#d;#f;#p;#m;#h;#g;#_;#v;#y=null;#b;#x=!1;#S=!1;constructor(e){let{composition:t,density:n,fileTreeSearchMode:r,gitStatus:i,id:a,initialSearchQuery:o,icons:s,itemHeight:c,onSearchChange:l,onSelectionChange:u,overscan:d,renderRowDecoration:f,renaming:p,search:m,searchBlurBehavior:h,searchFakeFocus:g,stickyFolders:_,unsafeCSS:v,initialVisibleRowCount:y,...b}=e;this.#e=t,this.#n=VS(a),this.#p=ky(i),this.#m=s,this.#h=v,this.#r=u,this.#i=f,this.#a=p!=null&&p!==!1,this.#o=h,this.#s=m===!0,this.#c=g===!0,this.#u=Ev(n,c),this.#d={itemHeight:this.#u.itemHeight,overscan:d,stickyFolders:_,initialVisibleRowCount:y},this.#t=new wy({...b,fileTreeSearchMode:r,initialSearchQuery:o,onSearchChange:l,renaming:p}),this.#v=this.#t.getSelectionVersion(),this.#y=this.#r==null?null:this.subscribe(()=>{this.#D()})}unmount(){this.#b!=null&&(RS(this.#b),delete this.#b.dataset.fileTreeVirtualizedWrapper,this.#b=void 0),this.#l.clearAll(),this.#l.setHost(null),this.#f!=null&&(delete this.#f.dataset.fileTreeVirtualized,this.#I(this.#f),this.#f=void 0)}cleanUp(){this.unmount(),this.#y?.(),this.#y=null,this.#t.destroy()}getFileTreeContainer(){return this.#f}getItem(e){return this.#t.getItem(e)}getFocusedItem(){return this.#t.getFocusedItem()}getFocusedPath(){return this.#t.getFocusedPath()}getFocusedIndex(){return this.#t.getFocusedIndex()}getVisibleCount(){return this.#t.getVisibleCount()}getVisibleRows(e,t){return this.#t.getVisibleRows(e,t)}getSelectedPaths(){return this.#t.getSelectedPaths()}getComposition(){return this.#e}getItemHeight(){return this.#u.itemHeight}getDensityFactor(){return this.#u.factor}subscribe(e){let t=!1;return this.#t.subscribe(()=>{if(!t){t=!0;return}e()})}focusPath(e){this.#t.focusPath(e)}focusFirstItem(){this.#t.focusFirstItem()}focusLastItem(){this.#t.focusLastItem()}focusNextItem(){this.#t.focusNextItem()}focusPreviousItem(){this.#t.focusPreviousItem()}focusParentItem(){this.#t.focusParentItem()}scrollToPath(e,t){this.#t.scrollToPath(e,t)}focusNearestPath(e){return this.#t.focusNearestPath(e)}add(e){this.#t.add(e)}batch(e){this.#t.batch(e)}applyGitStatusPatch(e){let t=Ay(this.#p,e);if(t===this.#p)return;this.#p=t;let n=this.#T();n!=null&&IS(n.wrapper,this.#w())}move(e,t,n){this.#t.move(e,t,n)}onMutation(e,t){return this.#t.onMutation(e,t)}setSearch(e){this.#t.setSearch(e)}openSearch(e){this.#t.openSearch(e)}closeSearch(){this.#t.closeSearch()}isSearchOpen(){return this.#t.isSearchOpen()}getSearchValue(){return this.#t.getSearchValue()}getSearchMatchingPaths(){return this.#t.getSearchMatchingPaths()}focusNextSearchMatch(){this.#t.focusNextSearchMatch()}focusPreviousSearchMatch(){this.#t.focusPreviousSearchMatch()}startRenaming(e,t){return this.#t.startRenaming(e,t)}remove(e,t){this.#t.remove(e,t)}resetPaths(e,t){Array.isArray(e)?this.#t.resetPaths(e,t):this.#t.resetPaths(e)}setComposition(e){this.#e=e;let t=this.#T();t!=null&&(this.#O(),IS(t.wrapper,this.#w()))}setGitStatus(e){let t=ky(e,this.#p);if(t===this.#p)return;this.#p=t;let n=this.#T();n!=null&&IS(n.wrapper,this.#w())}setIcons(e){this.#m=e;let t=this.#T();t!=null&&(this.#E(t.host,t.wrapper),IS(t.wrapper,this.#w()))}hydrate({fileTreeContainer:e}){let t=this.#P(e),n=this.#N(t);this.#O(),LS(n,this.#w())}render({containerWrapper:e,fileTreeContainer:t}){let n=this.#P(t??this.#f,e),r=this.#N(n);this.#O(),IS(r,this.#w())}#C(){return{initialViewportHeight:HS({initialVisibleRowCount:this.#d.initialVisibleRowCount,itemHeight:this.#d.itemHeight}),itemHeight:this.#d.itemHeight,overscan:this.#d.overscan,stickyFolders:this.#d.stickyFolders}}#w(){return{composition:this.#e,controller:this.#t,gitStatusByPath:this.#p?.statusByPath,ignoredGitDirectories:this.#p?.ignoredDirectoryPaths,directoriesWithGitChanges:this.#p?.directoriesWithChanges,icons:this.#m,instanceId:this.#n,renamingEnabled:this.#a,renderRowDecoration:this.#i,searchBlurBehavior:this.#o,searchEnabled:this.#s,searchFakeFocus:this.#c,slotHost:this.#l,...this.#C()}}#T(){let e=this.#f,t=this.#b;return e==null||t==null?null:{host:e,wrapper:t}}#E(e,t){let n=e.shadowRoot;n!=null&&(this.#k(n),this.#A(n)),this.#j(t)}#D(){let e=this.#r;if(e==null)return;let t=this.#t.getSelectionVersion();t!==this.#v&&(this.#v=t,e(this.#t.getSelectedPaths()))}#O(){let e=this.#e?.header?.render;if(e!=null){this.#l.setSlotContent(Rm,e());return}this.#l.setSlotHtml(Rm,this.#e?.header?.html??null)}#k(e){let t=GS(e).find(e=>WS(e)),n=US(Om(Hm(this.#m).set));n!=null&&(t==null||t.outerHTML!==n.outerHTML)&&(t==null?e.prepend(n):t.replaceWith(n))}#A(e){let t=GS(e),n=t.find(e=>WS(e)),r=t.filter(e=>e!==n),i=Hm(this.#m).spriteSheet?.trim()??``;if(i.length===0){for(let e of r)e.remove();return}let a=US(i);if(a==null){for(let e of r)e.remove();return}if(r.length!==1||r[0].outerHTML!==a.outerHTML){for(let e of r)e.remove();e.appendChild(a)}}#j(e){let t=Hm(this.#m);t.colored&&Am(t.set)?e.dataset.fileTreeColoredIcons=`true`:delete e.dataset.fileTreeColoredIcons}#M(e){let t=e.querySelector(`style[${Pm}]`);if(this.#g==null&&t instanceof HTMLStyleElement&&(this.#g=t),this.#h==null||this.#h===``){this.#g?.remove(),this.#g=void 0,this.#_=void 0;return}(this.#g?.parentNode!==e||this.#_!==this.#h)&&(this.#g??=document.createElement(`style`),this.#g.setAttribute(Pm,``),this.#g.parentNode!==e&&e.appendChild(this.#g),this.#g.textContent=jv(this.#h),this.#_=this.#h)}#N(e){if(this.#b!=null)return this.#b;let t=e.shadowRoot;if(t==null)throw Error(`FileTree requires a shadow root`);let n=Array.from(t.children).filter(e=>e instanceof HTMLDivElement&&typeof e.dataset.fileTreeId==`string`&&e.dataset.fileTreeId.length>0),r=n.find(e=>e.dataset.fileTreeId===this.#n)??n[0];return r!=null&&(this.#n=r.dataset.fileTreeId??this.#n),this.#b=r??document.createElement(`div`),this.#b.dataset.fileTreeId=this.#n,this.#b.dataset.fileTreeVirtualizedWrapper=`true`,this.#E(e,this.#b),this.#b.parentNode!==t&&t.appendChild(this.#b),this.#b}#P(e,t){let n=e??this.#f??document.createElement(`file-tree-container`);t!=null&&n.parentNode!==t&&t.appendChild(n);let r=n.shadowRoot??n.attachShadow({mode:`open`});return Lv(n,r),this.#M(r),n.dataset.fileTreeVirtualized=`true`,n.style.display=`flex`,this.#F(n),this.#l.setHost(n),this.#f=n,n}#F(e){e.style.getPropertyValue(`--trees-item-height`)===``&&(e.style.setProperty(`--trees-item-height`,`${String(this.#u.itemHeight)}px`),this.#x=!0),e.style.getPropertyValue(`--trees-density-override`)===``&&(e.style.setProperty(`--trees-density-override`,String(this.#u.factor)),this.#S=!0)}#I(e){this.#x&&=(e.style.removeProperty(`--trees-item-height`),!1),this.#S&&=(e.style.removeProperty(`--trees-density-override`),!1)}},qS=`
7399
7401
  :host {
7400
7402
  --file-tree-font-family: var(--ui, system-ui, sans-serif);
7401
7403
  --file-tree-font-size: 12.5px;
@@ -7411,7 +7413,7 @@ slicc-dock-tree .dock-tree__preview--active {
7411
7413
  --file-tree-git-deleted-color: var(--rose, #d1242f);
7412
7414
  --file-tree-git-untracked-color: var(--txt-3, #717171);
7413
7415
  }
7414
- `,Lx=`
7416
+ `,JS=`
7415
7417
  slicc-file-tree {
7416
7418
  display: block;
7417
7419
  box-sizing: border-box;
@@ -7424,7 +7426,7 @@ slicc-file-tree {
7424
7426
  font-family: var(--ui);
7425
7427
  font-size: 13px;
7426
7428
  }
7427
- `,Rx=`slicc-file-tree-style`;function zx(e){if(e.getElementById(Rx))return;let t=e.createElement(`style`);t.id=Rx,t.textContent=Lx,(e.head??e.documentElement).appendChild(t)}function Bx(e){return e?.isDirectory()?e:null}function Vx(e){return e.replace(/^\/+/,``)}function Hx(e){return e<1024?`${e}B`:e<1048576?`${Math.round(e/1024)}K`:e<1073741824?`${(e/1048576).toFixed(1)}M`:`${(e/1073741824).toFixed(1)}G`}function Ux(e){let t=[],n=new Map,r=[],i=e=>{for(let a of e){if(a.kind===`group`)continue;let e=Vx(a.id);if(a.kind===`dir`){n.set(e,{id:a.id,path:a.path??a.id,kind:`directory`}),a.open&&r.push(e),a.children.length===0?t.push(e):i(a.children);continue}t.push(e),n.set(e,{id:a.id,path:a.path??a.label,kind:`file`,...a.size===void 0?{}:{size:a.size}})}};return i(e),{paths:t,meta:n,initiallyOpen:r}}F(`slicc-file-tree`,class extends HTMLElement{#e=[];#t=new Map;#n=null;#r=null;#i=[];#a=null;#o=!1;#s=null;#c=null;static get observedAttributes(){return[`selected`]}connectedCallback(){zx(this.ownerDocument),this.#r||(this.#r=document.createElement(`div`),this.#r.style.cssText=`display:flex;flex-direction:column;height:100%;min-height:0;`,this.appendChild(this.#r)),this.#f()}disconnectedCallback(){this.#n?.unmount(),this.#n=null,this.#c=null}attributeChangedCallback(e,t,n){e===`selected`&&n!==this.#a&&(this.#a=n,this.#d())}get items(){return this.#e.slice()}set items(e){this.#e=Array.isArray(e)?e.slice():[],this.#f()}get gitStatus(){return this.#i.slice()}set gitStatus(e){this.#i=Array.isArray(e)?e.slice():[],this.#f()}get selected(){return this.#a}set selected(e){e===null?this.removeAttribute(`selected`):this.setAttribute(`selected`,e)}selectFile(e){let t=this.#t.get(Vx(e));if(t){this.#o=!0;try{this.selected=e}finally{this.#o=!1}this.#d(),this.#l(`file-select`,{id:e,path:t.path})}}visibleIds(){let e=this.#n;if(!e)return[];let t=e.getVisibleCount();return t===0?[]:e.getVisibleRows(0,t).map(e=>this.#t.get(e.path.replace(/\/$/,``))?.id).filter(e=>typeof e==`string`)}toggleDir(e){let t=Bx(this.#n?.getItem(Vx(e)));t&&(t.toggle(),this.#l(`dir-toggle`,{id:e,open:t.isExpanded()}))}isDirOpen(e){return Bx(this.#n?.getItem(Vx(e)))?.isExpanded()===!0}previewFile(e){let t=this.#t.get(Vx(e));t?.kind===`file`&&this.#l(`file-preview`,{id:e,path:t.path})}#l(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}#u(){let e=this.#n;if(!e)return;let t=e.getVisibleCount();if(t===0)return;let n=e.getVisibleRows(0,t);this.#s=n.filter(e=>e.isExpanded).map(e=>e.path)}#d(){let e=this.#a;if(!(!e||!this.#n)){this.#o=!0;try{this.#n.getItem(Vx(e))?.select()}finally{this.#o=!1}}}#f(){if(!this.isConnected||!this.#r)return;let{paths:e,meta:t,initiallyOpen:n}=Ux(this.#e);this.#t=t,this.#u();let r=this.#s??n;if(this.#n&&e.length>0){this.#n.resetPaths({preparedInput:f_(e),initialExpandedPaths:r}),this.#n.setGitStatus(this.#i),this.#p();return}if(this.#n?.unmount(),this.#r.replaceChildren(),this.#c=null,e.length===0){this.#n=null;return}let i=new Fx({preparedInput:f_(e),gitStatus:this.#i,search:!0,initialVisibleRowCount:40,renaming:!1,dragAndDrop:!1,unsafeCSS:Ix,initialExpandedPaths:r,...this.#a?{initialSelectedPaths:[Vx(this.#a)]}:{},onSelectionChange:e=>{if(this.#o)return;let t=e[0];if(t===void 0)return;let n=this.#t.get(t);n&&(this.#a=n.id,this.setAttribute(`selected`,n.id),this.#l(`file-select`,{id:n.id,path:n.path}))},renderRowDecoration:({row:e})=>{let t=this.#t.get(e.path);return!t||t.size===void 0?null:{text:Hx(t.size)}},composition:{contextMenu:{enabled:!0,triggerMode:`both`,buttonVisibility:`when-needed`,onOpen:(e,t)=>{let n=this.#t.get(e.path);t.close({restoreFocus:!1}),this.#l(`file-overflow`,{id:n?.id??e.path,path:n?.path??e.path,anchor:t.anchorElement,kind:e.kind})}}}});i.render({containerWrapper:this.#r}),this.#n=i,this.#p()}#p(){let e=this.#n?.getFileTreeContainer();if(!e||e===this.#c)return;this.#c=e;let t=()=>{let e=this.#n?.getFocusedPath()??this.#n?.getSelectedPaths()[0],t=e==null?null:this.#t.get(e);t&&this.previewFile(t.id)};e.addEventListener(`dblclick`,t),e.addEventListener(`keydown`,e=>{e.key===`Enter`&&t()})}});var Wx=`
7429
+ `,YS=`slicc-file-tree-style`;function XS(e){if(e.getElementById(YS))return;let t=e.createElement(`style`);t.id=YS,t.textContent=JS,(e.head??e.documentElement).appendChild(t)}function ZS(e){return e?.isDirectory()?e:null}function QS(e){return e.replace(/^\/+/,``)}function $S(e){return e<1024?`${e}B`:e<1048576?`${Math.round(e/1024)}K`:e<1073741824?`${(e/1048576).toFixed(1)}M`:`${(e/1073741824).toFixed(1)}G`}function eC(e){let t=[],n=new Map,r=[],i=e=>{for(let a of e){if(a.kind===`group`)continue;let e=QS(a.id);if(a.kind===`dir`){n.set(e,{id:a.id,path:a.path??a.id,kind:`directory`}),a.open&&r.push(e),a.children.length===0?t.push(e):i(a.children);continue}t.push(e),n.set(e,{id:a.id,path:a.path??a.label,kind:`file`,...a.size===void 0?{}:{size:a.size}})}};return i(e),{paths:t,meta:n,initiallyOpen:r}}F(`slicc-file-tree`,class extends HTMLElement{#e=[];#t=new Map;#n=null;#r=null;#i=[];#a=null;#o=!1;#s=null;#c=null;static get observedAttributes(){return[`selected`]}connectedCallback(){XS(this.ownerDocument),this.#r||(this.#r=document.createElement(`div`),this.#r.style.cssText=`display:flex;flex-direction:column;height:100%;min-height:0;`,this.appendChild(this.#r)),this.#f()}disconnectedCallback(){this.#n?.unmount(),this.#n=null,this.#c=null}attributeChangedCallback(e,t,n){e===`selected`&&n!==this.#a&&(this.#a=n,this.#d())}get items(){return this.#e.slice()}set items(e){this.#e=Array.isArray(e)?e.slice():[],this.#f()}get gitStatus(){return this.#i.slice()}set gitStatus(e){this.#i=Array.isArray(e)?e.slice():[],this.#f()}get selected(){return this.#a}set selected(e){e===null?this.removeAttribute(`selected`):this.setAttribute(`selected`,e)}selectFile(e){let t=this.#t.get(QS(e));if(t){this.#o=!0;try{this.selected=e}finally{this.#o=!1}this.#d(),this.#l(`file-select`,{id:e,path:t.path})}}visibleIds(){let e=this.#n;if(!e)return[];let t=e.getVisibleCount();return t===0?[]:e.getVisibleRows(0,t).map(e=>this.#t.get(e.path.replace(/\/$/,``))?.id).filter(e=>typeof e==`string`)}toggleDir(e){let t=ZS(this.#n?.getItem(QS(e)));t&&(t.toggle(),this.#l(`dir-toggle`,{id:e,open:t.isExpanded()}))}isDirOpen(e){return ZS(this.#n?.getItem(QS(e)))?.isExpanded()===!0}previewFile(e){let t=this.#t.get(QS(e));t?.kind===`file`&&this.#l(`file-preview`,{id:e,path:t.path})}#l(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}#u(){let e=this.#n;if(!e)return;let t=e.getVisibleCount();if(t===0)return;let n=e.getVisibleRows(0,t);this.#s=n.filter(e=>e.isExpanded).map(e=>e.path)}#d(){let e=this.#a;if(!(!e||!this.#n)){this.#o=!0;try{this.#n.getItem(QS(e))?.select()}finally{this.#o=!1}}}#f(){if(!this.isConnected||!this.#r)return;let{paths:e,meta:t,initiallyOpen:n}=eC(this.#e);this.#t=t,this.#u();let r=this.#s??n;if(this.#n&&e.length>0){this.#n.resetPaths({preparedInput:wv(e),initialExpandedPaths:r}),this.#n.setGitStatus(this.#i),this.#p();return}if(this.#n?.unmount(),this.#r.replaceChildren(),this.#c=null,e.length===0){this.#n=null;return}let i=new KS({preparedInput:wv(e),gitStatus:this.#i,search:!0,initialVisibleRowCount:40,renaming:!1,dragAndDrop:!1,unsafeCSS:qS,initialExpandedPaths:r,...this.#a?{initialSelectedPaths:[QS(this.#a)]}:{},onSelectionChange:e=>{if(this.#o)return;let t=e[0];if(t===void 0)return;let n=this.#t.get(t);n&&(this.#a=n.id,this.setAttribute(`selected`,n.id),this.#l(`file-select`,{id:n.id,path:n.path}))},renderRowDecoration:({row:e})=>{let t=this.#t.get(e.path);return!t||t.size===void 0?null:{text:$S(t.size)}},composition:{contextMenu:{enabled:!0,triggerMode:`both`,buttonVisibility:`when-needed`,onOpen:(e,t)=>{let n=this.#t.get(e.path);t.close({restoreFocus:!1}),this.#l(`file-overflow`,{id:n?.id??e.path,path:n?.path??e.path,anchor:t.anchorElement,kind:e.kind})}}}});i.render({containerWrapper:this.#r}),this.#n=i,this.#p()}#p(){let e=this.#n?.getFileTreeContainer();if(!e||e===this.#c)return;this.#c=e;let t=()=>{let e=this.#n?.getFocusedPath()??this.#n?.getSelectedPaths()[0],t=e==null?null:this.#t.get(e);t&&this.previewFile(t.id)};e.addEventListener(`dblclick`,t),e.addEventListener(`keydown`,e=>{e.key===`Enter`&&t()})}});var tC=`
7428
7430
  slicc-surface {
7429
7431
  position: absolute;
7430
7432
  inset: 0;
@@ -7456,7 +7458,7 @@ slicc-surface:fullscreen {
7456
7458
  background: var(--canvas, #fff);
7457
7459
  position: fixed;
7458
7460
  }
7459
- `,Gx=`slicc-surface-style`;function Kx(e){if(e.getElementById(Gx))return;let t=e.createElement(`style`);t.id=Gx,t.textContent=Wx,(e.head??e.documentElement).appendChild(t)}function qx(e){return e===`block`||e===`column`?e:`flex`}F(`slicc-surface`,class extends HTMLElement{static observedAttributes=[`surface-id`,`active`,`layout`];connectedCallback(){Kx(this.ownerDocument),this.#e()}attributeChangedCallback(e,t,n){this.isConnected&&(e===`surface-id`?this.#e():e===`active`&&t!==n&&this.dispatchEvent(new CustomEvent(`surface-toggle`,{bubbles:!0,composed:!0,detail:{surfaceId:this.surfaceId,active:this.active,layout:this.layout}})))}get surfaceId(){return this.getAttribute(`surface-id`)}set surfaceId(e){e==null?this.removeAttribute(`surface-id`):this.setAttribute(`surface-id`,e)}get active(){return this.hasAttribute(`active`)}set active(e){this.toggleAttribute(`active`,e)}get layout(){return qx(this.getAttribute(`layout`))}set layout(e){this.setAttribute(`layout`,qx(e))}#e(){let e=this.surfaceId;e==null?delete this.dataset.s:this.dataset.s=e}});var Jx=`/**
7461
+ `,nC=`slicc-surface-style`;function rC(e){if(e.getElementById(nC))return;let t=e.createElement(`style`);t.id=nC,t.textContent=tC,(e.head??e.documentElement).appendChild(t)}function iC(e){return e===`block`||e===`column`?e:`flex`}F(`slicc-surface`,class extends HTMLElement{static observedAttributes=[`surface-id`,`active`,`layout`];connectedCallback(){rC(this.ownerDocument),this.#e()}attributeChangedCallback(e,t,n){this.isConnected&&(e===`surface-id`?this.#e():e===`active`&&t!==n&&this.dispatchEvent(new CustomEvent(`surface-toggle`,{bubbles:!0,composed:!0,detail:{surfaceId:this.surfaceId,active:this.active,layout:this.layout}})))}get surfaceId(){return this.getAttribute(`surface-id`)}set surfaceId(e){e==null?this.removeAttribute(`surface-id`):this.setAttribute(`surface-id`,e)}get active(){return this.hasAttribute(`active`)}set active(e){this.toggleAttribute(`active`,e)}get layout(){return iC(this.getAttribute(`layout`))}set layout(e){this.setAttribute(`layout`,iC(e))}#e(){let e=this.surfaceId;e==null?delete this.dataset.s:this.dataset.s=e}});var aC=`/**
7460
7462
  * Copyright (c) 2014 The xterm.js authors. All rights reserved.
7461
7463
  * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
7462
7464
  * https://github.com/chjj/term.js
@@ -7741,7 +7743,7 @@ slicc-surface:fullscreen {
7741
7743
  .xterm .xterm-scrollable-element > .shadow.top.left {
7742
7744
  box-shadow: var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset;
7743
7745
  }
7744
- `,Yx={background:`#0c0c0e`,foreground:`#e7e7ea`,cursor:`#e7e7ea`,cursorAccent:`#0c0c0e`,selectionBackground:`#8b5cf64d`,selectionForeground:`#ffffff`,black:`#0c0c0e`,red:`#f43f5e`,green:`#5bd17b`,yellow:`#f59e0b`,blue:`#3b82f6`,magenta:`#8b5cf6`,cyan:`#06b6d4`,white:`#e7e7ea`,brightBlack:`#8a8a93`,brightRed:`#fb7185`,brightGreen:`#86efac`,brightYellow:`#fbbf24`,brightBlue:`#60a5fa`,brightMagenta:`#a78bfa`,brightCyan:`#22d3ee`,brightWhite:`#ffffff`},Xx=`
7746
+ `,oC={background:`#0c0c0e`,foreground:`#e7e7ea`,cursor:`#e7e7ea`,cursorAccent:`#0c0c0e`,selectionBackground:`#8b5cf64d`,selectionForeground:`#ffffff`,black:`#0c0c0e`,red:`#f43f5e`,green:`#5bd17b`,yellow:`#f59e0b`,blue:`#3b82f6`,magenta:`#8b5cf6`,cyan:`#06b6d4`,white:`#e7e7ea`,brightBlack:`#8a8a93`,brightRed:`#fb7185`,brightGreen:`#86efac`,brightYellow:`#fbbf24`,brightBlue:`#60a5fa`,brightMagenta:`#a78bfa`,brightCyan:`#22d3ee`,brightWhite:`#ffffff`},sC=`
7745
7747
  :host {
7746
7748
  display: flex;
7747
7749
  flex-direction: column;
@@ -7782,7 +7784,7 @@ slicc-surface:fullscreen {
7782
7784
  /* xterm.js wants its container to size the canvas; let it fill. */
7783
7785
  .host .xterm { height: 100%; }
7784
7786
  .host .xterm-viewport { overflow-y: auto; }
7785
- `,Zx=null;function Qx(){return Zx||=[R(Jx),R(Xx)],Zx}var $x=class extends HTMLElement{static observedAttributes=[`label`,`hide-header`];#e;#t=null;#n=null;#r=null;#i=null;#a=[];#o=!1;constructor(){super(),this.#e=this.attachShadow({mode:`open`})}connectedCallback(){this.#o=!1,this.#s(),this.#c()}disconnectedCallback(){this.#l()}attributeChangedCallback(e){if(this.isConnected&&e===`label`){let e=this.#e.querySelector(`.title`);e&&(e.textContent=this.label)}}get label(){return this.getAttribute(`label`)??`Terminal`}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get hideHeader(){return this.hasAttribute(`hide-header`)}set hideHeader(e){this.toggleAttribute(`hide-header`,e)}get terminal(){return this.#n}write(e){this.#n?this.#n.write(e):this.#a.push(e)}writeln(e){this.#n?this.#n.writeln(e):this.#a.push(`${e}\r\n`)}clear(){this.#n?this.#n.clear():this.#a.length=0}focus(){this.#n?.focus()}fit(){this.#r?.fit()}#s(){if(this.#t)return;this.#e.adoptedStyleSheets=Qx();let e=L(`div`,{class:`hd`,part:`header`},r(`terminal`,{size:14}),L(`span`,{class:`title`},this.label),L(`span`,{class:`spacer`})),t=L(`div`,{class:`host`,part:`host`});this.#e.replaceChildren(e,t),this.#t=t}async#c(){if(this.#n||this.#o)return;let[{Terminal:e},{FitAddon:n}]=await Promise.all([t(()=>import(`./xterm-C3BHN0de.js`),[]),t(()=>import(`./addon-fit-DIOBYJe3.js`),[])]);if(this.#o||!this.#t)return;let r=new e({cursorBlink:!eS(),fontSize:12,lineHeight:1.25,fontFamily:`'IBM Plex Mono', 'Source Code Pro', 'JetBrains Mono', ui-monospace, monospace`,theme:Yx,convertEol:!0,scrollback:2e3}),i=new n;if(r.loadAddon(i),r.open(this.#t),r.onData(e=>{this.dispatchEvent(new CustomEvent(`terminal-data`,{detail:e,bubbles:!0,composed:!0}))}),this.#n=r,this.#r=i,i.fit(),this.#a.length){for(let e of this.#a)r.write(e);this.#a.length=0}typeof ResizeObserver==`function`&&(this.#i=new ResizeObserver(()=>this.#r?.fit()),this.#i.observe(this.#t))}#l(){this.#o=!0,this.#i?.disconnect(),this.#i=null,this.#n?.dispose(),this.#n=null,this.#r=null,this.#a.length=0}};function eS(){return typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches}F(`slicc-terminal`,$x);var tS=`slicc_monitor_collapsed`;function nS(){try{let e=localStorage.getItem(tS);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function rS(e){try{localStorage.setItem(tS,JSON.stringify([...e]))}catch{}}var iS=`
7787
+ `,cC=null;function lC(){return cC||=[L(aC),L(sC)],cC}var uC=class extends HTMLElement{static observedAttributes=[`label`,`hide-header`];#e;#t=null;#n=null;#r=null;#i=null;#a=[];#o=!1;constructor(){super(),this.#e=this.attachShadow({mode:`open`})}connectedCallback(){this.#o=!1,this.#s(),this.#c()}disconnectedCallback(){this.#l()}attributeChangedCallback(e){if(this.isConnected&&e===`label`){let e=this.#e.querySelector(`.title`);e&&(e.textContent=this.label)}}get label(){return this.getAttribute(`label`)??`Terminal`}set label(e){e==null?this.removeAttribute(`label`):this.setAttribute(`label`,e)}get hideHeader(){return this.hasAttribute(`hide-header`)}set hideHeader(e){this.toggleAttribute(`hide-header`,e)}get terminal(){return this.#n}write(e){this.#n?this.#n.write(e):this.#a.push(e)}writeln(e){this.#n?this.#n.writeln(e):this.#a.push(`${e}\r\n`)}clear(){this.#n?this.#n.clear():this.#a.length=0}focus(){this.#n?.focus()}fit(){this.#r?.fit()}#s(){if(this.#t)return;this.#e.adoptedStyleSheets=lC();let e=I(`div`,{class:`hd`,part:`header`},i(`terminal`,{size:14}),I(`span`,{class:`title`},this.label),I(`span`,{class:`spacer`})),t=I(`div`,{class:`host`,part:`host`});this.#e.replaceChildren(e,t),this.#t=t}async#c(){if(this.#n||this.#o)return;let[{Terminal:e},{FitAddon:n}]=await Promise.all([t(()=>import(`./xterm-C3BHN0de.js`),[]),t(()=>import(`./addon-fit-DIOBYJe3.js`),[])]);if(this.#o||!this.#t)return;let r=new e({cursorBlink:!dC(),fontSize:12,lineHeight:1.25,fontFamily:`'IBM Plex Mono', 'Source Code Pro', 'JetBrains Mono', ui-monospace, monospace`,theme:oC,convertEol:!0,scrollback:2e3}),i=new n;if(r.loadAddon(i),r.open(this.#t),r.onData(e=>{this.dispatchEvent(new CustomEvent(`terminal-data`,{detail:e,bubbles:!0,composed:!0}))}),this.#n=r,this.#r=i,i.fit(),this.#a.length){for(let e of this.#a)r.write(e);this.#a.length=0}typeof ResizeObserver==`function`&&(this.#i=new ResizeObserver(()=>this.#r?.fit()),this.#i.observe(this.#t))}#l(){this.#o=!0,this.#i?.disconnect(),this.#i=null,this.#n?.dispose(),this.#n=null,this.#r=null,this.#a.length=0}};function dC(){return typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches}F(`slicc-terminal`,uC);var fC=`slicc_monitor_collapsed`;function pC(){try{let e=localStorage.getItem(fC);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function mC(e){try{localStorage.setItem(fC,JSON.stringify([...e]))}catch{}}var hC=`
7786
7788
  slicc-monitor {
7787
7789
  display: block;
7788
7790
  box-sizing: border-box;
@@ -8359,7 +8361,7 @@ slicc-monitor {
8359
8361
  .monitor-row,
8360
8362
  .monitor-btn { transition-duration: 0.01ms; }
8361
8363
  }
8362
- `,aS=`slicc-monitor-style`;function oS(e){if(e.getElementById(aS))return;let t=e.createElement(`style`);t.id=aS,t.textContent=iS,(e.head??e.documentElement).appendChild(t)}var sS={error:3,warn:2,active:1,idle:0},cS={active:`circle-check`,warn:`triangle-alert`,error:`octagon-x`,idle:`circle`},lS={active:`Healthy`,warn:`Attention`,error:`Failing`,idle:`Idle`};function uS(e){return e.status?e.status:e.error?`error`:e.active?`active`:`idle`}function dS(e){if(e.status)return e.status;let t=`idle`;for(let n of e.rows){let e=uS(n);sS[e]>sS[t]&&(t=e)}return t}function fS(e){return L(`span`,{class:`monitor-glyph monitor-glyph--${e}`},r(cS[e],{size:14}))}var pS={rose:`var(--rose)`,cyan:`var(--cyan)`,violet:`var(--violet)`,amber:`var(--amber)`,waffle:`var(--waffle)`,green:`var(--green)`};function mS(e){return e?pS[e]:`var(--ctx)`}var hS=`http://www.w3.org/2000/svg`;function gS(e,t){let n=document.createElementNS(hS,e);for(let[e,r]of Object.entries(t))n.setAttribute(e,String(r));return n}var _S=2,vS=_S/2,yS=4,bS=5;function xS(e,t,n){let r=e.points,i=r.map(e=>e.value),a=Math.min(...i),o=Math.max(...i)-a||1,s=t-vS,c=Math.max(0,t-2),l=r[r.length-1].at,u=e.windowMs>0?e.windowMs:1,d=l-r[0].at>0;return r.map((e,t)=>({x:d?Math.max(vS,s-Math.min(1,(l-e.at)/u)*c):vS+t/(r.length-1)*c,y:n-bS-(e.value-a)/o*(n-10)}))}function SS(e,t,n,r){let i=xS(e,n,r),a=i.map(e=>`${e.x.toFixed(1)},${e.y.toFixed(1)}`).join(` `),o=i[i.length-1],s=i[0],c=gS(`svg`,{width:n,height:r,viewBox:`0 0 ${n} ${r}`,"aria-hidden":`true`});return c.append(gS(`polygon`,{points:`${a} ${o.x.toFixed(1)},${r} ${s.x.toFixed(1)},${r}`,fill:t,"fill-opacity":`0.1`}),gS(`polyline`,{points:a,fill:`none`,stroke:t,"stroke-width":String(_S),"stroke-linejoin":`round`,"stroke-linecap":`round`}),gS(`circle`,{cx:o.x.toFixed(1),cy:o.y.toFixed(1),r:String(yS),fill:t,stroke:`var(--canvas)`,"stroke-width":String(_S)})),c}var CS={hero:{w:300,h:56},tile:{w:132,h:34}};function wS(e,t,n,r){let i=L(`div`,{class:`monitor-tile__plot`}),a=0,o=r=>{let o=Math.round(r);o<=0||o===a||(a=o,i.replaceChildren(SS(e,t,o,n.h)))};if(o(n.w),typeof ResizeObserver==`function`){let e=new ResizeObserver(e=>{for(let t of e)o(t.contentRect.width)});e.observe(i),r.push(e)}return i}function TS(e,t){let n=mS(e.accent);return e.series&&e.series.points.length>1?wS(e.series,n,e.hero?CS.hero:CS.tile,t):typeof e.ratio==`number`?L(`div`,{class:`monitor-tile__plot`},L(`span`,{class:`monitor-meter`,style:`--monitor-hue:${n}`},L(`span`,{class:`monitor-meter__track`},OS(e.ratio)),AS(e.markers))):null}function ES(e){return Math.max(0,Math.min(1,e))}function DS(e){return`${(ES(e)*100).toFixed(1)}%`}function OS(e){return L(`span`,{class:`monitor-meter__fill`,style:`width:${DS(e)}`})}function kS(e){return e.label??`${Math.round(ES(e.ratio)*100)}%`}function AS(e){if(!e||e.length===0)return null;let t=[...e].sort((e,t)=>e.ratio-t.ratio);return L(`span`,{class:`monitor-meter__marks`,role:`img`,"aria-label":[...t].reverse().map(kS).join(`, `)},...t.map(e=>L(`span`,{class:`monitor-meter__mark`,"data-mark":e.id,style:`left:${DS(e.ratio)};--mark-color:${e.color}`,title:e.label??null,"aria-hidden":`true`})))}function jS(e,t){let n=L(`section`,{class:`monitor-tile${e.hero?` monitor-tile--hero`:``}`,"data-vital":e.id});return I(n,[L(`span`,{class:`monitor-tile__label`},e.label),L(`div`,{class:`monitor-tile__figure`},L(`span`,{class:`monitor-tile__value`},e.value),e.unit?L(`span`,{class:`monitor-tile__unit`},e.unit):null),e.delta?L(`span`,{class:`monitor-tile__delta`},e.delta):null,TS(e,t),e.foot?L(`span`,{class:`monitor-tile__foot`},e.foot):null]),n}function MS(e,t){return L(`div`,{class:`monitor-vitals`},...e.map(e=>jS(e,t)))}function NS(e){return L(`li`,{class:`monitor-alert`,"data-severity":e.severity,"data-alert":e.id},L(`span`,{class:`monitor-alert__icon monitor-glyph--${e.severity}`},r(e.icon??cS[e.severity===`error`?`error`:`warn`],{size:16})),L(`span`,{class:`monitor-alert__copy`},L(`span`,{class:`monitor-alert__title`},e.title),e.detail?L(`span`,{class:`monitor-alert__detail`},e.detail):null),e.age?L(`span`,{class:`monitor-alert__age`},e.age):null)}function PS(){return L(`div`,{class:`monitor-clear`,role:`status`},fS(`active`),L(`span`,{class:`monitor-clear__title`},`All clear`),L(`span`,{class:`monitor-clear__text`},`Nothing is stalled, expired, or failing.`))}function FS(e){let t=e.some(e=>e.severity===`error`)?`error`:e.length>0?`warn`:`ok`;return L(`section`,{class:`monitor-block`,"data-block":`attention`},L(`div`,{class:`monitor-block__head`},L(`h3`,{class:`monitor-block__title`},`Needs attention`),L(`span`,{class:`monitor-pill monitor-pill--${t}`},String(e.length))),e.length===0?PS():L(`ul`,{class:`monitor-alerts`},...e.map(NS)))}function IS(e){let t=uS(e),n=L(`span`,{class:`monitor-child__headline`},L(`span`,{class:`monitor-child__name`},e.name));for(let t of e.badges??[])n.appendChild(L(`span`,{class:`monitor-badge`},t));let r=L(`span`,{class:`monitor-child__copy`},n);return e.sublabel&&r.appendChild(L(`span`,{class:`monitor-child__sublabel`},e.sublabel)),L(`li`,{class:`monitor-child`,"data-status":t,style:`padding-left:${28+(e.depth??0)*18}px`},fS(t),r,L(`span`,{class:`monitor-child__meta`},e.meta))}function LS(e){return L(`div`,{class:`monitor-empty`,role:`status`},L(`span`,{class:`monitor-empty__title`},`No ${e.label.toLocaleLowerCase()} yet`),L(`span`,{class:`monitor-empty__text`},e.emptyText??`${e.label} will appear here when available.`))}function RS(e,t,n,i,a){let o=dS(e),s=o===`warn`||o===`error`,c=n.has(e.id)?!0:!t.has(e.id)&&s&&e.rows.length>0,l=L(`ul`,{class:`monitor-children`,id:a});e.rows.length===0?l.replaceChildren(LS(e)):l.append(...e.rows.map(IS)),c||l.setAttribute(`hidden`,``);let u=L(`button`,{class:`monitor-row`,type:`button`},L(`span`,{class:`monitor-row__chev`,"aria-hidden":`true`},r(c?`chevron-down`:`chevron-right`,{size:15})),L(`span`,{class:`monitor-row__icon`},r(e.icon??`box`,{size:16})),L(`span`,{class:`monitor-row__name`},e.label),L(`span`,{class:`monitor-row__summary`},e.meta??`${e.count}`),L(`span`,{class:`monitor-row__state monitor-glyph--${o}`},fS(o),lS[o]));return u.setAttribute(`aria-expanded`,String(c)),u.setAttribute(`aria-controls`,a),u.addEventListener(`click`,()=>i(e.id,c)),L(`div`,{class:`monitor-group`,"data-section":e.id,"data-status":o,"data-accent":e.accent??`neutral`},u,l)}var zS=[`pid`,`ppid`,`state`,`started`,`elapsed`,`scoop`,`command`],BS=new Set([`R`,`S`]);function VS(e,t){if(t===`state`)return L(`td`,{class:`monitor-td monitor-td--state`},L(`span`,{class:`monitor-statcell`},L(`span`,{class:`monitor-stat-tag monitor-stat-tag--${e.state}`},e.state),L(`span`,{class:`monitor-stat-word`},e.status)));let n=e[t];return L(`td`,{class:`monitor-td monitor-td--${t}`},n==null?`—`:String(n))}function HS(e){return L(`tr`,{class:`monitor-tr`,"data-pid":String(e.pid),"data-live":String(BS.has(e.state))},...zS.map(t=>VS(e,t)))}function US(e,t,n){return[...e].sort((e,r)=>{let i=e[t],a=r[t],o=typeof i==`number`&&typeof a==`number`?i-a:String(i??``).localeCompare(String(a??``));return n?-o:o})}function WS(e,t){return L(`tr`,null,...zS.map(n=>{let i=e.sort===n,a=L(`th`,{class:`monitor-th monitor-td--${n}`,scope:`col`},L(`span`,{class:`monitor-th__label`},n.toUpperCase()),i?r(e.descending?`chevron-down`:`chevron-up`,{size:12}):null);return a.setAttribute(`aria-sort`,i?e.descending?`descending`:`ascending`:`none`),a.addEventListener(`click`,()=>{e.descending=e.sort===n&&!e.descending,e.sort=n,t()}),a}))}function GS(e,t){return!t||e.command.toLowerCase().includes(t)||(e.scoop??``).toLowerCase().includes(t)||String(e.pid).includes(t)}function KS(e){let t={sort:`pid`,descending:!1,query:``},n=L(`input`,{class:`monitor-input`,type:`search`,"aria-label":`Filter processes`,placeholder:`Filter command, scoop, or pid…`}),r=L(`thead`),i=L(`tbody`),a=L(`span`,{class:`monitor-block__hint`}),o=()=>{let n=US(e.rows,t.sort,t.descending).filter(e=>GS(e,t.query));if(r.replaceChildren(WS(t,o)),n.length===0){let e=L(`td`,{class:`monitor-td monitor-empty-cell`,colspan:zS.length});e.textContent=t.query?`No live process matches “${t.query}”.`:`No processes running.`,i.replaceChildren(L(`tr`,{class:`monitor-tr`},e))}else i.replaceChildren(...n.map(HS));let s=e.terminated>0?` · ${e.terminated.toLocaleString()} exited this session`:``;a.replaceChildren(document.createTextNode(`${e.rows.length} live${s}`))};return n.addEventListener(`input`,()=>{t.query=n.value.trim().toLowerCase(),o()}),o(),L(`section`,{class:`monitor-block`,"data-block":`processes`},L(`div`,{class:`monitor-block__head`},L(`h3`,{class:`monitor-block__title`},`Processes`),a),L(`div`,{class:`monitor-toolbar`},n),L(`div`,{class:`monitor-tablewrap`},L(`table`,{class:`monitor-table`},r,i)))}function qS(e){return{...e,rows:e.rows.map(e=>({...e,badges:e.badges?.slice()}))}}var JS=0;F(`slicc-monitor`,class extends HTMLElement{#e={};#t=new Set;#n=new Set;#r=!1;#i=++JS;#a=[];connectedCallback(){oS(this.ownerDocument),this.#r||=(this.#t=nS(),!0),this.#u()}disconnectedCallback(){this.#o()}#o(){for(let e of this.#a)e.disconnect();this.#a=[]}get model(){return{...this.#e,vitals:this.#e.vitals?.map(e=>({...e,series:e.series?{...e.series,points:e.series.points.map(e=>({...e}))}:e.series,markers:e.markers?e.markers.map(e=>({...e})):e.markers})),alerts:this.#e.alerts?.map(e=>({...e})),sections:this.#e.sections?.map(qS),processes:this.#e.processes?{...this.#e.processes,rows:this.#e.processes.rows.map(e=>({...e}))}:this.#e.processes}}set model(e){this.#e=e??{},this.isConnected&&this.#u()}get sections(){return(this.#e.sections??[]).map(qS)}set sections(e){this.#e={...this.#e,sections:Array.isArray(e)?e.map(qS):[]},this.isConnected&&this.#u()}#s(){let e=L(`button`,{class:`monitor-btn`,type:`button`,"aria-label":`Re-sync monitor data`},r(`refresh-cw`,{size:14}),L(`span`,null,`Re-sync`));return e.addEventListener(`click`,()=>{this.dispatchEvent(new CustomEvent(`slicc-monitor-refresh`,{bubbles:!0,composed:!0}))}),L(`header`,{class:`monitor-head`},L(`span`,{class:`monitor-head__mark`},r(`activity`,{size:18})),L(`div`,{class:`monitor-head__copy`},L(`h2`,{class:`monitor-head__title`},`Live monitor`),L(`p`,{class:`monitor-head__sub`},this.#e.updated??`Streaming`)),e)}#c(e){let t=L(`div`,{class:`monitor-groups`});for(let n of e){let e=n.id.replace(/[^a-z0-9_-]/gi,`-`);t.appendChild(RS(n,this.#t,this.#n,(e,t)=>this.#l(e,t),`monitor-${this.#i}-${e}`))}return L(`section`,{class:`monitor-block`,"data-block":`topology`},L(`div`,{class:`monitor-block__head`},L(`h3`,{class:`monitor-block__title`},`Topology`),L(`span`,{class:`monitor-block__hint`},`healthy groups stay collapsed`)),t)}#l(e,t){t?(this.#n.delete(e),this.#t.add(e)):(this.#t.delete(e),this.#n.add(e)),rS(this.#t),this.#u()}#u(){let{vitals:e=[],alerts:t,sections:n=[],processes:r}=this.#e;this.#o();let i=L(`div`,{class:`monitor`});I(i,[this.#s(),e.length>0?MS(e,this.#a):null,t?FS(t):null,n.length>0?this.#c(n):null,r?KS(r):null]),this.replaceChildren(i)}});var YS=e({BUDGET_CRITICAL_PERCENT:()=>95,BUDGET_WARN_PERCENT:()=>80,CHAT_SURFACE_ID:()=>Ad,DEFAULT_LAUNCHER_CORNER:()=>Xe,DEFAULT_LAUNCHER_FOLLOWER_STATUS:()=>A,HOLD_TO_ENABLE_MS:()=>_r,LAUNCHER_FOLLOWER_STATUS_ATTR:()=>j,LAYOUT_SCHEMA_VERSION:()=>1,MACHINE_WRITTEN_MEMORY_PATH:()=>MACHINE_WRITTEN_MEMORY_PATH,MEMORY_TITLE_MAX:()=>96,PANEL_MARKER_ATTR:()=>xs,REDACTED_REAL_WORLD_MEMORY_PATH:()=>REDACTED_REAL_WORLD_MEMORY_PATH,SYNTHETIC_MEMORY_PATH:()=>SYNTHETIC_MEMORY_PATH,SliccImagePreview:()=>ur,TOKENS_CSS:()=>_d,ensureGlobalTokens:()=>yd,followSystemTheme:()=>xd,setTheme:()=>bd}),XS=`wcui-panel-host`,ZS=`wcui-trusted-layer`,QS=[`.${XS}{position:absolute;inset:0;isolation:isolate;`,`display:flex;flex-direction:column;min-width:0;min-height:0;}`,`.${ZS}{position:absolute;inset:0;pointer-events:none;`,`display:flex;flex-direction:column;}`,`.${ZS}>*{pointer-events:auto;}`].join(``);function $S(e=document){let t=e.createElement(`div`);t.className=XS;let n=e.createElement(`div`);return n.className=ZS,n.setAttribute(`data-slicc-trusted`,``),{panelHost:t,trustedLayer:n}}function eC(e,t=document){let n=t.querySelector(`.${ZS}`);if(!n)throw Error(`trusted layer not found — approval chrome must not fall back to document.body (it would be occludable by a panel; see trusted-layer.ts)`);n.appendChild(e)}var tC=`auto`;function nC(e){if(e===null)return null;if(e===`auto`||e===`esc`)return e}var rC=`slicc-shortcuts-style`,iC=`
8364
+ `,gC=`slicc-monitor-style`;function _C(e){if(e.getElementById(gC))return;let t=e.createElement(`style`);t.id=gC,t.textContent=hC,(e.head??e.documentElement).appendChild(t)}var vC={error:3,warn:2,active:1,idle:0},yC={active:`circle-check`,warn:`triangle-alert`,error:`octagon-x`,idle:`circle`},bC={active:`Healthy`,warn:`Attention`,error:`Failing`,idle:`Idle`};function xC(e){return e.status?e.status:e.error?`error`:e.active?`active`:`idle`}function SC(e){if(e.status)return e.status;let t=`idle`;for(let n of e.rows){let e=xC(n);vC[e]>vC[t]&&(t=e)}return t}function CC(e){return I(`span`,{class:`monitor-glyph monitor-glyph--${e}`},i(yC[e],{size:14}))}var wC={rose:`var(--rose)`,cyan:`var(--cyan)`,violet:`var(--violet)`,amber:`var(--amber)`,waffle:`var(--waffle)`,green:`var(--green)`};function TC(e){return e?wC[e]:`var(--ctx)`}var EC=`http://www.w3.org/2000/svg`;function DC(e,t){let n=document.createElementNS(EC,e);for(let[e,r]of Object.entries(t))n.setAttribute(e,String(r));return n}var OC=2,kC=OC/2,AC=4,jC=5;function MC(e,t,n){let r=e.points,i=r.map(e=>e.value),a=Math.min(...i),o=Math.max(...i)-a||1,s=t-kC,c=Math.max(0,t-2),l=r[r.length-1].at,u=e.windowMs>0?e.windowMs:1,d=l-r[0].at>0;return r.map((e,t)=>({x:d?Math.max(kC,s-Math.min(1,(l-e.at)/u)*c):kC+t/(r.length-1)*c,y:n-jC-(e.value-a)/o*(n-10)}))}function NC(e,t,n,r){let i=MC(e,n,r),a=i.map(e=>`${e.x.toFixed(1)},${e.y.toFixed(1)}`).join(` `),o=i[i.length-1],s=i[0],c=DC(`svg`,{width:n,height:r,viewBox:`0 0 ${n} ${r}`,"aria-hidden":`true`});return c.append(DC(`polygon`,{points:`${a} ${o.x.toFixed(1)},${r} ${s.x.toFixed(1)},${r}`,fill:t,"fill-opacity":`0.1`}),DC(`polyline`,{points:a,fill:`none`,stroke:t,"stroke-width":String(OC),"stroke-linejoin":`round`,"stroke-linecap":`round`}),DC(`circle`,{cx:o.x.toFixed(1),cy:o.y.toFixed(1),r:String(AC),fill:t,stroke:`var(--canvas)`,"stroke-width":String(OC)})),c}var PC={hero:{w:300,h:56},tile:{w:132,h:34}};function FC(e,t,n,r){let i=I(`div`,{class:`monitor-tile__plot`}),a=0,o=r=>{let o=Math.round(r);o<=0||o===a||(a=o,i.replaceChildren(NC(e,t,o,n.h)))};if(o(n.w),typeof ResizeObserver==`function`){let e=new ResizeObserver(e=>{for(let t of e)o(t.contentRect.width)});e.observe(i),r.push(e)}return i}function IC(e,t){let n=TC(e.accent);return e.series&&e.series.points.length>1?FC(e.series,n,e.hero?PC.hero:PC.tile,t):typeof e.ratio==`number`?I(`div`,{class:`monitor-tile__plot`},I(`span`,{class:`monitor-meter`,style:`--monitor-hue:${n}`},I(`span`,{class:`monitor-meter__track`},zC(e.ratio)),VC(e.markers))):null}function LC(e){return Math.max(0,Math.min(1,e))}function RC(e){return`${(LC(e)*100).toFixed(1)}%`}function zC(e){return I(`span`,{class:`monitor-meter__fill`,style:`width:${RC(e)}`})}function BC(e){return e.label??`${Math.round(LC(e.ratio)*100)}%`}function VC(e){if(!e||e.length===0)return null;let t=[...e].sort((e,t)=>e.ratio-t.ratio);return I(`span`,{class:`monitor-meter__marks`,role:`img`,"aria-label":[...t].reverse().map(BC).join(`, `)},...t.map(e=>I(`span`,{class:`monitor-meter__mark`,"data-mark":e.id,style:`left:${RC(e.ratio)};--mark-color:${e.color}`,title:e.label??null,"aria-hidden":`true`})))}function HC(e,t){let n=I(`section`,{class:`monitor-tile${e.hero?` monitor-tile--hero`:``}`,"data-vital":e.id});return Fn(n,[I(`span`,{class:`monitor-tile__label`},e.label),I(`div`,{class:`monitor-tile__figure`},I(`span`,{class:`monitor-tile__value`},e.value),e.unit?I(`span`,{class:`monitor-tile__unit`},e.unit):null),e.delta?I(`span`,{class:`monitor-tile__delta`},e.delta):null,IC(e,t),e.foot?I(`span`,{class:`monitor-tile__foot`},e.foot):null]),n}function UC(e,t){return I(`div`,{class:`monitor-vitals`},...e.map(e=>HC(e,t)))}function WC(e){return I(`li`,{class:`monitor-alert`,"data-severity":e.severity,"data-alert":e.id},I(`span`,{class:`monitor-alert__icon monitor-glyph--${e.severity}`},i(e.icon??yC[e.severity===`error`?`error`:`warn`],{size:16})),I(`span`,{class:`monitor-alert__copy`},I(`span`,{class:`monitor-alert__title`},e.title),e.detail?I(`span`,{class:`monitor-alert__detail`},e.detail):null),e.age?I(`span`,{class:`monitor-alert__age`},e.age):null)}function GC(){return I(`div`,{class:`monitor-clear`,role:`status`},CC(`active`),I(`span`,{class:`monitor-clear__title`},`All clear`),I(`span`,{class:`monitor-clear__text`},`Nothing is stalled, expired, or failing.`))}function KC(e){let t=e.some(e=>e.severity===`error`)?`error`:e.length>0?`warn`:`ok`;return I(`section`,{class:`monitor-block`,"data-block":`attention`},I(`div`,{class:`monitor-block__head`},I(`h3`,{class:`monitor-block__title`},`Needs attention`),I(`span`,{class:`monitor-pill monitor-pill--${t}`},String(e.length))),e.length===0?GC():I(`ul`,{class:`monitor-alerts`},...e.map(WC)))}function qC(e){let t=xC(e),n=I(`span`,{class:`monitor-child__headline`},I(`span`,{class:`monitor-child__name`},e.name));for(let t of e.badges??[])n.appendChild(I(`span`,{class:`monitor-badge`},t));let r=I(`span`,{class:`monitor-child__copy`},n);return e.sublabel&&r.appendChild(I(`span`,{class:`monitor-child__sublabel`},e.sublabel)),I(`li`,{class:`monitor-child`,"data-status":t,style:`padding-left:${28+(e.depth??0)*18}px`},CC(t),r,I(`span`,{class:`monitor-child__meta`},e.meta))}function JC(e){return I(`div`,{class:`monitor-empty`,role:`status`},I(`span`,{class:`monitor-empty__title`},`No ${e.label.toLocaleLowerCase()} yet`),I(`span`,{class:`monitor-empty__text`},e.emptyText??`${e.label} will appear here when available.`))}function YC(e,t,n,r,a){let o=SC(e),s=o===`warn`||o===`error`,c=n.has(e.id)?!0:!t.has(e.id)&&s&&e.rows.length>0,l=I(`ul`,{class:`monitor-children`,id:a});e.rows.length===0?l.replaceChildren(JC(e)):l.append(...e.rows.map(qC)),c||l.setAttribute(`hidden`,``);let u=I(`button`,{class:`monitor-row`,type:`button`},I(`span`,{class:`monitor-row__chev`,"aria-hidden":`true`},i(c?`chevron-down`:`chevron-right`,{size:15})),I(`span`,{class:`monitor-row__icon`},i(e.icon??`box`,{size:16})),I(`span`,{class:`monitor-row__name`},e.label),I(`span`,{class:`monitor-row__summary`},e.meta??`${e.count}`),I(`span`,{class:`monitor-row__state monitor-glyph--${o}`},CC(o),bC[o]));return u.setAttribute(`aria-expanded`,String(c)),u.setAttribute(`aria-controls`,a),u.addEventListener(`click`,()=>r(e.id,c)),I(`div`,{class:`monitor-group`,"data-section":e.id,"data-status":o,"data-accent":e.accent??`neutral`},u,l)}var XC=[`pid`,`ppid`,`state`,`started`,`elapsed`,`scoop`,`command`],ZC=new Set([`R`,`S`]);function QC(e,t){if(t===`state`)return I(`td`,{class:`monitor-td monitor-td--state`},I(`span`,{class:`monitor-statcell`},I(`span`,{class:`monitor-stat-tag monitor-stat-tag--${e.state}`},e.state),I(`span`,{class:`monitor-stat-word`},e.status)));let n=e[t];return I(`td`,{class:`monitor-td monitor-td--${t}`},n==null?`—`:String(n))}function $C(e){return I(`tr`,{class:`monitor-tr`,"data-pid":String(e.pid),"data-live":String(ZC.has(e.state))},...XC.map(t=>QC(e,t)))}function ew(e,t,n){return[...e].sort((e,r)=>{let i=e[t],a=r[t],o=typeof i==`number`&&typeof a==`number`?i-a:String(i??``).localeCompare(String(a??``));return n?-o:o})}function tw(e,t){return I(`tr`,null,...XC.map(n=>{let r=e.sort===n,a=I(`th`,{class:`monitor-th monitor-td--${n}`,scope:`col`},I(`span`,{class:`monitor-th__label`},n.toUpperCase()),r?i(e.descending?`chevron-down`:`chevron-up`,{size:12}):null);return a.setAttribute(`aria-sort`,r?e.descending?`descending`:`ascending`:`none`),a.addEventListener(`click`,()=>{e.descending=e.sort===n&&!e.descending,e.sort=n,t()}),a}))}function nw(e,t){return!t||e.command.toLowerCase().includes(t)||(e.scoop??``).toLowerCase().includes(t)||String(e.pid).includes(t)}function rw(e){let t={sort:`pid`,descending:!1,query:``},n=I(`input`,{class:`monitor-input`,type:`search`,"aria-label":`Filter processes`,placeholder:`Filter command, scoop, or pid…`}),r=I(`thead`),i=I(`tbody`),a=I(`span`,{class:`monitor-block__hint`}),o=()=>{let n=ew(e.rows,t.sort,t.descending).filter(e=>nw(e,t.query));if(r.replaceChildren(tw(t,o)),n.length===0){let e=I(`td`,{class:`monitor-td monitor-empty-cell`,colspan:XC.length});e.textContent=t.query?`No live process matches “${t.query}”.`:`No processes running.`,i.replaceChildren(I(`tr`,{class:`monitor-tr`},e))}else i.replaceChildren(...n.map($C));let s=e.terminated>0?` · ${e.terminated.toLocaleString()} exited this session`:``;a.replaceChildren(document.createTextNode(`${e.rows.length} live${s}`))};return n.addEventListener(`input`,()=>{t.query=n.value.trim().toLowerCase(),o()}),o(),I(`section`,{class:`monitor-block`,"data-block":`processes`},I(`div`,{class:`monitor-block__head`},I(`h3`,{class:`monitor-block__title`},`Processes`),a),I(`div`,{class:`monitor-toolbar`},n),I(`div`,{class:`monitor-tablewrap`},I(`table`,{class:`monitor-table`},r,i)))}function iw(e){return{...e,rows:e.rows.map(e=>({...e,badges:e.badges?.slice()}))}}var aw=0;F(`slicc-monitor`,class extends HTMLElement{#e={};#t=new Set;#n=new Set;#r=!1;#i=++aw;#a=[];connectedCallback(){_C(this.ownerDocument),this.#r||=(this.#t=pC(),!0),this.#u()}disconnectedCallback(){this.#o()}#o(){for(let e of this.#a)e.disconnect();this.#a=[]}get model(){return{...this.#e,vitals:this.#e.vitals?.map(e=>({...e,series:e.series?{...e.series,points:e.series.points.map(e=>({...e}))}:e.series,markers:e.markers?e.markers.map(e=>({...e})):e.markers})),alerts:this.#e.alerts?.map(e=>({...e})),sections:this.#e.sections?.map(iw),processes:this.#e.processes?{...this.#e.processes,rows:this.#e.processes.rows.map(e=>({...e}))}:this.#e.processes}}set model(e){this.#e=e??{},this.isConnected&&this.#u()}get sections(){return(this.#e.sections??[]).map(iw)}set sections(e){this.#e={...this.#e,sections:Array.isArray(e)?e.map(iw):[]},this.isConnected&&this.#u()}#s(){let e=I(`button`,{class:`monitor-btn`,type:`button`,"aria-label":`Re-sync monitor data`},i(`refresh-cw`,{size:14}),I(`span`,null,`Re-sync`));return e.addEventListener(`click`,()=>{this.dispatchEvent(new CustomEvent(`slicc-monitor-refresh`,{bubbles:!0,composed:!0}))}),I(`header`,{class:`monitor-head`},I(`span`,{class:`monitor-head__mark`},i(`activity`,{size:18})),I(`div`,{class:`monitor-head__copy`},I(`h2`,{class:`monitor-head__title`},`Live monitor`),I(`p`,{class:`monitor-head__sub`},this.#e.updated??`Streaming`)),e)}#c(e){let t=I(`div`,{class:`monitor-groups`});for(let n of e){let e=n.id.replace(/[^a-z0-9_-]/gi,`-`);t.appendChild(YC(n,this.#t,this.#n,(e,t)=>this.#l(e,t),`monitor-${this.#i}-${e}`))}return I(`section`,{class:`monitor-block`,"data-block":`topology`},I(`div`,{class:`monitor-block__head`},I(`h3`,{class:`monitor-block__title`},`Topology`),I(`span`,{class:`monitor-block__hint`},`healthy groups stay collapsed`)),t)}#l(e,t){t?(this.#n.delete(e),this.#t.add(e)):(this.#t.delete(e),this.#n.add(e)),mC(this.#t),this.#u()}#u(){let{vitals:e=[],alerts:t,sections:n=[],processes:r}=this.#e;this.#o();let i=I(`div`,{class:`monitor`});Fn(i,[this.#s(),e.length>0?UC(e,this.#a):null,t?KC(t):null,n.length>0?this.#c(n):null,r?rw(r):null]),this.replaceChildren(i)}});var ow=e({BUDGET_CRITICAL_PERCENT:()=>95,BUDGET_WARN_PERCENT:()=>80,CHAT_SURFACE_ID:()=>Uf,DEFAULT_LAUNCHER_CORNER:()=>rn,DEFAULT_LAUNCHER_FOLLOWER_STATUS:()=>sn,HOLD_TO_ENABLE_MS:()=>ki,LAUNCHER_FOLLOWER_STATUS_ATTR:()=>cn,LAYOUT_SCHEMA_VERSION:()=>1,MACHINE_WRITTEN_MEMORY_PATH:()=>MACHINE_WRITTEN_MEMORY_PATH,MEMORY_TITLE_MAX:()=>96,PANEL_MARKER_ATTR:()=>Nc,REDACTED_REAL_WORLD_MEMORY_PATH:()=>REDACTED_REAL_WORLD_MEMORY_PATH,SYNTHETIC_MEMORY_PATH:()=>SYNTHETIC_MEMORY_PATH,SliccImagePreview:()=>Si,TOKENS_CSS:()=>Af,ensureGlobalTokens:()=>Mf,followSystemTheme:()=>Pf,setTheme:()=>Nf}),sw=`wcui-panel-host`,cw=`wcui-trusted-layer`,lw=[`.${sw}{position:absolute;inset:0;isolation:isolate;`,`display:flex;flex-direction:column;min-width:0;min-height:0;}`,`.${cw}{position:absolute;inset:0;pointer-events:none;`,`display:flex;flex-direction:column;}`,`.${cw}>*{pointer-events:auto;}`].join(``);function uw(e=document){let t=e.createElement(`div`);t.className=sw;let n=e.createElement(`div`);return n.className=cw,n.setAttribute(`data-slicc-trusted`,``),{panelHost:t,trustedLayer:n}}function dw(e,t=document){let n=t.querySelector(`.${cw}`);if(!n)throw Error(`trusted layer not found — approval chrome must not fall back to document.body (it would be occludable by a panel; see trusted-layer.ts)`);n.appendChild(e)}var fw=`auto`;function pw(e){if(e===null)return null;if(e===`auto`||e===`esc`)return e}var mw=`slicc-shortcuts-style`,hw=`
8363
8365
  /* The sheet grows a column at a time as the viewport allows, and the dialog
8364
8366
  grows with it — one alphabetical column of thirty-odd rows is a reference
8365
8367
  you read; three short labelled ones are a cheat sheet you scan. Capped at
@@ -8399,4 +8401,4 @@ slicc-dialog.wcsc-dialog::part(dialog){width:min(460px,92vw);}
8399
8401
  .wcsc__group--yours .wcsc__title{color:color-mix(in srgb,var(--ctx) 55%,var(--ink));}
8400
8402
  .wcsc__group--yours .wcsc__row{border-bottom-color:color-mix(in srgb,var(--ctx) 16%,var(--line));}
8401
8403
  .wcsc__count{font:500 10.5px/1 var(--ui);color:var(--txt-3);flex:0 0 auto;}
8402
- `;function aC(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.tagName==`string`?t.tagName.toUpperCase():``;if(n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable===!0)return!0;let r=t.closest?.(`[contenteditable]`);return!!r&&r.getAttribute(`contenteditable`)!==`false`}function oC(e){return(typeof e.composedPath==`function`?e.composedPath():[])[0]??e.target}function sC(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}function cC(e,t){if(!e||!t)return!1;let n=t;for(;n;){if(n===e)return!0;if(typeof ShadowRoot<`u`&&n instanceof ShadowRoot){n=n.host;continue}let t=n.parentNode;if(t){n=t;continue}let r=n.assignedSlot;if(r){n=r;continue}break}return!1}function lC(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.tagName==`string`?t.tagName.toUpperCase():``;return n===`IFRAME`||n===`FRAME`||n===`OBJECT`||n===`EMBED`}function uC(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.tagName==`string`?t.tagName.toUpperCase():``;if(n===`BUTTON`||n===`SUMMARY`||n===`OPTION`||n===`A`&&t.hasAttribute?.(`href`)===!0)return!0;let r=t.getAttribute?.(`role`)??``;return[`button`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`tab`,`switch`,`checkbox`,`radio`].includes(r)}function dC(e){return!!e.querySelector(`slicc-quick-look, slicc-dialog[open], slicc-tab-overlay[open], .slicc-permissions__prompt[data-open]`)}function fC(e){let t=/^Digit([1-9])$/.exec(e.code??``);return t?Number(t[1]):/^[1-9]$/.test(e.key)?Number(e.key):null}function pC(e,t){if(e<=0)return null;let n=t===9?e-1:t-1;return n<e?n:null}function mC(e,t){let n=pC(e.length,t);return n===null?null:e[n]??null}function hC(e,t){return mC(e.map(e=>e.key),t)}function gC(e,t){return e.length===0?null:e[((t===null?-1:e.indexOf(t))+1)%e.length]??null}function _C(e,t){if(e.length===0)return null;let n=t===null?-1:e.indexOf(t);return e[((n===-1?0:n)-1+e.length)%e.length]??null}function vC(e){return e.items.filter(e=>e.kind===`sprinkle`).map(e=>e.id)}var yC=[`Getting around`,`Agents`,`The turn`,`Panels`,`Settings`];function bC(e,t){if(e!==`sprinkles`)return t.lists?.[e]??null;let n=t.dock;return n?{size:()=>vC(n).length,selectAt:e=>{let t=vC(n)[e];t&&n.selectItem(t)}}:null}function xC(e,t,n){return{holdsMode:!!n,description:t,group:`Panels`,surfaceId:e,...n?{list:n}:{},run:({deps:t,state:n})=>{n.lastDockSurface=e,t.dock?.selectItem(e)}}}function SC(e,t){return{holdsMode:!1,description:t,group:`Agents`,run:({deps:t})=>{t.freezer?.dispatchEvent(new CustomEvent(e,{bubbles:!0}))}}}var CC={nextAgent:{holdsMode:!0,group:`Agents`,description:`Next agent, looping`,run:({deps:e})=>{let t=gC(e.switcher.scoops.map(e=>e.key),e.switcher.active);t&&e.switcher.select(t)}},prevAgent:{holdsMode:!0,group:`Agents`,description:`Previous agent, looping`,run:({deps:e})=>{let t=_C(e.switcher.scoops.map(e=>e.key),e.switcher.active);t&&e.switcher.select(t)}},composer:{holdsMode:!1,group:`Getting around`,description:`Back to the composer`,run:({deps:e})=>e.focusComposer?.()},stop:{holdsMode:!0,group:`The turn`,description:`Stop the running turn`,run:({deps:e})=>e.stopTurn?.()},approvals:{holdsMode:!0,group:`The turn`,description:`Go to the pending approval`,run:({deps:e})=>e.focusApproval?.()},attach:{holdsMode:!1,group:`The turn`,description:`Attach a file or skill`,run:({deps:e})=>e.openAttachMenu?.()},copyReply:{holdsMode:!0,group:`The turn`,description:`Copy the last reply`,run:({deps:e})=>e.copyReply?.()},copyChat:{holdsMode:!0,group:`The turn`,description:`Copy the whole chat`,run:({deps:e})=>e.copyChat?.()},voice:{holdsMode:!0,group:`The turn`,description:`Dictate — again to send`,run:({deps:e})=>e.toggleVoice?.()},nextItem:{holdsMode:!0,group:`Getting around`,description:`Next message — or, after a list key, the next entry`,run:e=>tw(e,1)},prevItem:{holdsMode:!0,group:`Getting around`,description:`Previous message — or the previous entry`,run:e=>tw(e,-1)},newConversation:{holdsMode:!1,group:`Agents`,description:`New conversation`,run:({deps:e})=>{e.freezer?.dispatchEvent(new CustomEvent(`new-chat-save`,{bubbles:!0}))}},newConversationErase:SC(`new-chat-erase`,`New conversation, erasing this one`),newCone:SC(`new-cone`,`New cone`),dropCone:SC(`drop-cone`,`Drop this cone`),sessions:{holdsMode:!0,group:`Agents`,description:`Archived chats (with 1-9 / j / k: restore that one)`,list:`sessions`,run:({deps:e})=>e.freezer?.toggle(!0)},leftRail:{holdsMode:!0,group:`Getting around`,description:`Toggle the left rail`,run:({deps:e})=>e.freezer?.toggle()},rightRail:{holdsMode:!0,group:`Getting around`,description:`Toggle the right panel`,run:({deps:e,state:t})=>{let n=e.dock;if(n){if(n.active){t.lastDockSurface=n.active,n.collapse();return}n.selectItem(t.lastDockSurface)}}},files:xC(`files`,`File browser (with 1-9 / j / k: open that row)`,`files`),tabs:xC(`browser`,`Browser tabs (then 1-9 to switch)`),peek:{holdsMode:!0,group:`Panels`,description:`Peek a tab (then 1-9: show it and come back)`,run:({deps:e})=>e.peekTabs?.()},terminal:xC(`term`,`Terminal`),memory:xC(`memory`,`Memory (with 1-9 / j / k: open that entry)`,`memory`),monitor:xC(`monitor`,`Monitor`),sprinkles:{holdsMode:!0,group:`Panels`,description:`Sprinkles (with 1-9 / j / k: open that one)`,list:`sprinkles`,run:({deps:e,state:t})=>{let n=e.dock;if(!n)return;let r=vC(n);if(r.length!==0)return t.lastDockSurface=r[0],n.selectItem(r[0]),0}},zoom:{holdsMode:!0,group:`Getting around`,description:`Full screen the open panel`,run:({deps:e})=>e.zoomSurface?.()},model:{holdsMode:!1,group:`Settings`,description:`Model picker`,run:({deps:e,actions:t})=>{let n=e.composerMeta;if(n){if(n.models.length===0){t.accounts?.();return}n.openMenu()}}},cycleModel:{holdsMode:!0,group:`Settings`,description:`Next model`,run:({deps:e,actions:t})=>{let n=e.composerMeta;if(n){if(n.models.length===0){t.accounts?.();return}n.cycleModel?.()}}},cycleThinking:{holdsMode:!0,group:`Settings`,description:`Next thinking level`,run:({deps:e})=>e.composerMeta?.cycleThinking?.()},accounts:{holdsMode:!1,group:`Settings`,description:`Accounts`,run:({actions:e})=>e.accounts?.()},help:{holdsMode:!0,group:`Getting around`,description:`This help`,run:e=>e.toggleHelp()}},wC=Object.keys(CC);function TC(e){return typeof e==`string`&&Object.hasOwn(CC,e)}function EC(e){return CC[e].surfaceId??null}function DC(e){return wC.find(t=>CC[t].surfaceId===e)??null}var OC=[`Escape`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],kC={i:`composer`,Enter:`composer`,"?":`help`,ArrowRight:`nextAgent`,ArrowLeft:`prevAgent`,n:`newConversation`,N:`newConversationErase`,c:`newCone`,C:`dropCone`,r:`sessions`,s:`stop`,a:`approvals`,u:`attach`,y:`copyReply`,Y:`copyChat`,v:`voice`,j:`nextItem`,k:`prevItem`,f:`files`,t:`terminal`,b:`tabs`,m:`memory`,g:`monitor`,e:`sprinkles`,p:`peek`,"[":`leftRail`,"]":`rightRail`,z:`zoom`,l:`model`,L:`cycleModel`,h:`cycleThinking`,",":`accounts`},AC={d:`nextAgent`,c:`composer`,Enter:`composer`,n:`newConversation`,b:`leftRail`,x:`rightRail`,f:`files`,t:`tabs`,e:`terminal`,m:`memory`,s:`sprinkles`,l:`model`,a:`accounts`,h:`help`,"?":`help`,"/":`help`};function jC(e){return GC[e]??e}function MC(e,t){let n=Object.keys(e).find(n=>e[n]===t);return n===void 0?null:jC(n)}function NC(e){return MC(e,`help`)}function PC(e){let t=NC(e),n=Object.keys(e).filter(t=>e[t]===`composer`).map(e=>`[${jC(e)}]`);return[t===null?null:`[${t}] help`,n.length===0?null:`${n.join(` or `)} to type`].filter(e=>e!==null).join(` · `)}function FC(e=kC){let t=new Map;for(let[n,r]of Object.entries(e))t.set(r,[...t.get(r)??[],jC(n)]);return[{keys:[`Esc`],description:`Leave the composer for keyboard mode (again: exit full screen)`,group:`Getting around`},{keys:[`1 – 9`],description:`Switch to that agent in the tab strip (9 = last)`,group:`Agents`},...wC.filter(e=>t.has(e)).map(e=>({keys:t.get(e)??[],description:CC[e].description,group:CC[e].group,id:e}))]}function IC(e){if(e.getElementById(rC))return;let t=e.createElement(`style`);t.id=rC,t.textContent=iC,(e.head??e.documentElement)?.append(t)}var LC=5;function RC(e,t){let n=e.createElement(`div`);n.className=`wcsc__keys`;for(let r of t.keys){let t=e.createElement(`kbd`);t.className=`wcsc__key`,t.textContent=r,n.append(t)}return n}function zC(e,t,n=!1){let r=e.createElement(`div`);r.className=`wcsc__row`,t.count>0&&(r.dataset.used=String(t.count));let i=e.createElement(`div`);if(i.className=`wcsc__desc`,i.textContent=t.description,r.append(i),n){let n=e.createElement(`div`);n.className=`wcsc__count`,n.textContent=`×${t.count}`,r.append(n)}return r.append(RC(e,t)),r}function BC(e,t,n){let r=e.createElement(`div`);r.className=`wcsc__group`;let i=e.createElement(`div`);i.className=`wcsc__title`,i.textContent=t,r.append(i);for(let t of n)r.append(zC(e,t));return r}function VC(e,t){let n=t.filter(e=>e.count>0).sort((e,t)=>t.count-e.count).slice(0,LC);if(n.length===0)return null;let r=e.createElement(`div`);r.className=`wcsc__group wcsc__group--yours`;let i=e.createElement(`div`);i.className=`wcsc__title`,i.textContent=`Your frequent actions`,r.append(i);for(let t of n)r.append(zC(e,t,!0));return r}function HC(e,t,n,r){let i=e.createElement(`div`);i.className=`wcsc`;let a=e.createElement(`div`);a.className=`wcsc__note`,a.textContent=n===null?`Keyboard mode is off. Turn it on in Theme settings (Esc or Auto).`:n===`esc`?`Press Esc to enter keyboard mode. Put the caret back in the composer to type — nothing is intercepted there.`:`Keyboard mode is on whenever nothing is focused for typing (and you are not clicking composer chrome), so these keys are live by default. Put the caret back in the composer to type — nothing is intercepted there.`,i.append(a);let o=new Map((r?.ranked()??[]).map(e=>[e.id,e.count])),s=t.map(e=>({...e,count:(e.id===void 0?void 0:o.get(e.id))??0})),c=e.createElement(`div`);c.className=`wcsc__cols`;let l=VC(e,s);l&&c.append(l);for(let t of yC){let n=s.filter(e=>e.group===t);n.length>0&&c.append(BC(e,t,n))}return i.append(c),i}var UC=1600,WC=UC,GC={Escape:`Esc`,Enter:`⏎`," ":`Space`,Tab:`⇥`,Backspace:`⌫`,ArrowUp:`↑`,ArrowDown:`↓`,ArrowLeft:`←`,ArrowRight:`→`};function KC(e){let t=[];return e.ctrlKey&&t.push(`⌃`),e.altKey&&t.push(`⌥`),e.metaKey&&t.push(`⌘`),e.shiftKey&&e.key.length>1&&t.push(`⇧`),t.push(GC[e.key]??e.key),t}function qC(e,t,n){let r=e.createElement(`slicc-key-hud`);return r.dataset.wcShortcuts=`hud`,r.setAttribute(`hint`,PC(n)),r.setAttribute(`linger`,String(UC)),t.append(r),{record:(e,t)=>r.record?.(e,t),destroy:()=>r.remove()}}function JC(e,t,n,r){let i=null,a=()=>{if(!i)return;let e=i;i=null,e.hide?.(),e.remove()},o=()=>{if(i)return;IC(e);let a=e.createElement(`slicc-dialog`);a.className=`wcsc-dialog`,a.setAttribute(`heading`,`Keyboard mode`),a.dataset.wcShortcuts=`help`,a.append(HC(e,FC(t()),n(),r)),a.addEventListener(`slicc-dialog-close`,()=>{i=null,a.remove()}),e.body.append(a),i=a,a.show?.()};return{show:o,hide:a,toggle:()=>i?a():o(),element:()=>i}}function YC(e){let t=e.defaultView?.navigator?.keyboard;t&&(e.fullscreenElement?t.lock([`Escape`]).catch(()=>void 0):t.unlock())}function XC(e,t,n,r,i){let a=!1,o=null;return{on:()=>a,record:(e,t)=>o?.record(e,t),set:s=>{if(s===a)return;if(a=s,e.documentElement.toggleAttribute(`data-slicc-keyboard-mode`,s),i(s),!s){o?.destroy(),o=null,r?.hide();return}IC(e),o=qC(e,n(),t()),r?.show(t());let c=e.activeElement;aC(c)&&c?.blur()}}}function ZC(e){if(e.ctrlKey||e.metaKey||e.altKey)return!0;let t=oC(e);return aC(t)?!0:(e.key===`Enter`||e.key===` `)&&uC(t)}function QC(e,t,n,r,i){if(e===null){r.set(!1),n&&t&&i(`composer`);return}if(e===`esc`){t&&(r.set(!1),n&&i(`composer`));return}r.set(!t),n&&i(t?`composer`:`keyboard`)}function $C(e,t,n,r,i){let a=e.defaultView,o=a?.setTimeout.bind(a)??setTimeout,s=a?.clearTimeout.bind(a)??clearTimeout,c=n.composerAvailable??(()=>!!n.focusComposer),l,u=`composer`,d=!1,f=null,p=null,m=()=>{p?.disconnect(),p=null,f=null},h=t=>{if(f===t)return;m();let n=a?.MutationObserver??globalThis.MutationObserver;n&&(f=t,p=new n(()=>{t.isConnected||(m(),v())}),p.observe(e.documentElement,{childList:!0,subtree:!0}))},g=()=>{d||=t.on(),t.set(!1)},_=()=>{if(dC(e)||typeof e.hasFocus==`function`&&!e.hasFocus())return;let a=sC(e);if(lC(a)){h(a),g();return}m();let o=aC(a)||cC(n.composerBand,a)||!!i?.();d&&(d=!1,!o&&r()===`esc`&&t.set(!0)),QC(r(),o,c(),t,e=>{u=e})},v=()=>{l===void 0&&(l=o(()=>{l=void 0,_()},0))};return{schedule:v,restore:()=>{if(dC(e))return;let i=r();u===`composer`&&c()?(t.set(!1),n.focusComposer?.()):i===null?t.set(!1):t.set(!0),v()},choose:e=>{u=e},suspend:g,dropSuspension:()=>{d=!1},intent:()=>u,dispose:()=>{l!==void 0&&s(l),l=void 0,m()}}}function ew(e,t,n){let r=e.nodeType===1?e:null,i=t.defaultView?.MutationObserver??globalThis.MutationObserver;if(!r||!i)return()=>void 0;let a=e.active,o=new i(()=>{let t=e.active;t!==a&&(a=t,n())});return o.observe(r,{attributes:!0,attributeFilter:[`active`]}),()=>o.disconnect()}function tw(e,t){let n=e.armed;if(!n){e.deps.scrollMessage?.(t);return}let r=bC(n.list,e.deps),i=r?.size()??0;if(!r||i===0)return;let a=n.index===null?t>0?0:i-1:(n.index+t+i)%i;return r.selectAt(a),a}function nw(e,t,n){let r=bC(t,e),i=r?pC(r.size(),n):null;return i===null||!r?null:(r.selectAt(i),i)}function rw(e,t,n,r,i){n.preventDefault(),i.deps.usage?.record?.(t),e.holdsMode||i.mode.set(!1);let a=e.run({deps:i.deps,actions:i.actions,state:i.state,toggleHelp:i.toggleHelp,armed:r}),o=e.list??(typeof a==`number`?r?.list:void 0);o&&i.chord.arm(o,typeof a==`number`?a:null),e.holdsMode||i.settler.schedule()}function iw(e,t,n,r,i){if(dC(t))return;if(!n.on()){if(i===null)return;e.preventDefault(),n.set(!0),r.choose(`keyboard`),n.record(KC(e),!0);return}let a=!!t.fullscreenElement;n.record(KC(e),a),a&&t.exitFullscreen?.().catch(()=>void 0)}function aw(e,t,n){return dC(e)&&!(t===CC.help&&n)}function ow(e,t,n){if(t){let r=nw(e,t.list,n);return{hit:r!==null,index:r}}let r=hC(e.switcher.scoops,n);return r!==null&&e.switcher.select(r),{hit:r!==null,index:null}}function sw(e){let t=e.defaultView,n=t?.setTimeout.bind(t)??setTimeout,r=t?.clearTimeout.bind(t)??clearTimeout,i=null,a=()=>{i&&=(r(i.timer),null)};return{take:()=>{if(!i)return null;let{list:e,index:t}=i;return a(),{list:e,index:t}},arm:(e,t)=>{a(),i={list:e,index:t,timer:n(a,WC)}},clear:a}}var cw=new WeakMap;function lw(e,t){if(e.defaultPrevented||e.isComposing)return;if(e.key===`Escape`){t.chord.clear(),iw(e,t.doc,t.mode,t.settler,t.trigger);return}if(!t.mode.on()||ZC(e))return;let n=t.chord.take(),r=t.commandIdFor(e.key),i=r?CC[r]:void 0;if(aw(t.doc,i,t.helpOpen())){t.mode.record(KC(e),!1);return}let a=fC(e);if(a!==null){let{hit:r,index:i}=ow(t.deps,n,a);if(t.mode.record(KC(e),r),!r)return;e.preventDefault(),n&&i!==null&&t.chord.arm(n.list,i);return}t.mode.record(KC(e),!!i),i&&r&&rw(i,r,e,n,t.dispatch)}function uw(e,t,n,r){let i=e.defaultView,a=i?.setTimeout.bind(i)??setTimeout,o=i?.clearTimeout.bind(i)??clearTimeout,s,c=i=>{r.value&&s===void 0&&(s=a(()=>{if(s=void 0,r.value=!1,i){let n=sC(e);!dC(e)&&!aC(n)&&!cC(t.composerBand,n)&&t.focusComposer?.()}n.schedule()},0))},l=e=>{if(cC(t.composerBand,oC(e))){r.value=!0;return}r.value&&c(!1)},u=()=>c(!0),d=()=>c(!1);return e.addEventListener(`pointerdown`,l,!0),e.addEventListener(`mousedown`,l,!0),e.addEventListener(`pointerup`,u,!0),e.addEventListener(`mouseup`,u,!0),e.addEventListener(`pointercancel`,d,!0),t.composerBand?.addEventListener(`lostpointercapture`,d),i?.addEventListener(`blur`,d),()=>{e.removeEventListener(`pointerdown`,l,!0),e.removeEventListener(`mousedown`,l,!0),e.removeEventListener(`pointerup`,u,!0),e.removeEventListener(`mouseup`,u,!0),e.removeEventListener(`pointercancel`,d,!0),t.composerBand?.removeEventListener(`lostpointercapture`,d),i?.removeEventListener(`blur`,d),s!==void 0&&o(s)}}function dw(e){let t=e.doc??e.switcher?.ownerDocument;if(!t)throw Error(`wireKeyboardShortcuts: no document`);cw.get(t)?.dispose();let n={},r=kC,i=tC,a=e.usage,o=JC(t,()=>r,()=>i,a),s=XC(t,()=>r,()=>e.hudHost??t.body,e.caps,t=>{e.switcher.arrowKeys=t?`off`:`on`,e.composerBand?.toggleAttribute(`keys`,t)}),c={lastDockSurface:`files`},l=e=>r[e],u={value:!1},d=$C(t,s,e,()=>i,()=>u.value),f=uw(t,e,d,u),p=sw(t),m={deps:e,actions:n,state:c,mode:s,settler:d,chord:p,toggleHelp:()=>o.toggle()},h=n=>lw(n,{doc:t,mode:s,settler:d,chord:p,helpOpen:()=>!!o.element(),deps:e,dispatch:m,commandIdFor:l,trigger:i}),g=t=>{let n=oC(t);s.on()&&lC(n)?d.suspend():s.on()&&(aC(n)||cC(e.composerBand,n))&&s.set(!1),d.schedule()},_=()=>d.schedule(),v=()=>YC(t),y=()=>d.schedule(),b=()=>d.suspend(),x=ew(e.switcher,t,d.restore),S=t.defaultView;t.addEventListener(`keydown`,h),t.addEventListener(`focusin`,g),t.addEventListener(`focusout`,_),t.addEventListener(`fullscreenchange`,v),S?.addEventListener(`focus`,y),S?.addEventListener(`blur`,b),YC(t),d.schedule();let C={dispose:()=>{t.removeEventListener(`keydown`,h),t.removeEventListener(`focusin`,g),t.removeEventListener(`focusout`,_),t.removeEventListener(`fullscreenchange`,v),S?.removeEventListener(`focus`,y),S?.removeEventListener(`blur`,b),f(),x(),d.dispose(),p.clear(),s.set(!1),o.hide(),e.caps?.destroy(),cw.get(t)===C&&cw.delete(t)},showHelp:o.show,hideHelp:o.hide,helpOverlay:o.element,active:s.on,setActive:s.set,intent:d.intent,setAction:(e,t)=>{n[e]=t},setKeymap:e=>{r={...e}},keymap:()=>r,trigger:()=>i,setTrigger:e=>{i=e,(e===null||e===`esc`)&&s.set(!1),d.dropSuspension(),d.schedule()}};return cw.set(t,C),C}export{Te as A,E as B,Ae as C,Le as D,Ke as E,fe as F,w as G,re as H,he as I,c as J,ne as K,pe as L,Ce as M,we as N,Be as O,ge as P,D as R,ao as S,Re as T,v as U,te as V,T as W,o as X,a as Y,s as Z,$c as _,DC as a,ss as b,TC as c,QS as d,$S as f,xd as g,yd as h,AC as i,xe as j,Oe as k,nC as l,YS as m,tC as n,MC as o,eC as p,_ as q,OC as r,EC as s,kC as t,dw as u,zc as v,ke as w,Ao as x,Ws as y,oe as z};
8404
+ `;function gw(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.tagName==`string`?t.tagName.toUpperCase():``;if(n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t.isContentEditable===!0)return!0;let r=t.closest?.(`[contenteditable]`);return!!r&&r.getAttribute(`contenteditable`)!==`false`}function _w(e){return(typeof e.composedPath==`function`?e.composedPath():[])[0]??e.target}function vw(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}function yw(e,t){if(!e||!t)return!1;let n=t;for(;n;){if(n===e)return!0;if(typeof ShadowRoot<`u`&&n instanceof ShadowRoot){n=n.host;continue}let t=n.parentNode;if(t){n=t;continue}let r=n.assignedSlot;if(r){n=r;continue}break}return!1}function bw(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.tagName==`string`?t.tagName.toUpperCase():``;return n===`IFRAME`||n===`FRAME`||n===`OBJECT`||n===`EMBED`}function xw(e){if(!e||typeof e!=`object`)return!1;let t=e,n=typeof t.tagName==`string`?t.tagName.toUpperCase():``;if(n===`BUTTON`||n===`SUMMARY`||n===`OPTION`||n===`A`&&t.hasAttribute?.(`href`)===!0)return!0;let r=t.getAttribute?.(`role`)??``;return[`button`,`link`,`menuitem`,`menuitemcheckbox`,`menuitemradio`,`option`,`tab`,`switch`,`checkbox`,`radio`].includes(r)}function Sw(e){return!!e.querySelector(`slicc-quick-look, slicc-dialog[open], slicc-tab-overlay[open], .slicc-permissions__prompt[data-open]`)}function Cw(e){let t=/^Digit([1-9])$/.exec(e.code??``);return t?Number(t[1]):/^[1-9]$/.test(e.key)?Number(e.key):null}function ww(e,t){if(e<=0)return null;let n=t===9?e-1:t-1;return n<e?n:null}function Tw(e,t){let n=ww(e.length,t);return n===null?null:e[n]??null}function Ew(e,t){return Tw(e.map(e=>e.key),t)}function Dw(e,t){return e.length===0?null:e[((t===null?-1:e.indexOf(t))+1)%e.length]??null}function Ow(e,t){if(e.length===0)return null;let n=t===null?-1:e.indexOf(t);return e[((n===-1?0:n)-1+e.length)%e.length]??null}function kw(e){return e.items.filter(e=>e.kind===`sprinkle`).map(e=>e.id)}var Aw=[`Getting around`,`Agents`,`The turn`,`Panels`,`Settings`];function jw(e,t){if(e!==`sprinkles`)return t.lists?.[e]??null;let n=t.dock;return n?{size:()=>kw(n).length,selectAt:e=>{let t=kw(n)[e];t&&n.selectItem(t)}}:null}function Mw(e,t,n){return{holdsMode:!!n,description:t,group:`Panels`,surfaceId:e,...n?{list:n}:{},run:({deps:t,state:n})=>{n.lastDockSurface=e,t.dock?.selectItem(e)}}}function Nw(e,t){return{holdsMode:!1,description:t,group:`Agents`,run:({deps:t})=>{t.freezer?.dispatchEvent(new CustomEvent(e,{bubbles:!0}))}}}var Pw={nextAgent:{holdsMode:!0,group:`Agents`,description:`Next agent, looping`,run:({deps:e})=>{let t=Dw(e.switcher.scoops.map(e=>e.key),e.switcher.active);t&&e.switcher.select(t)}},prevAgent:{holdsMode:!0,group:`Agents`,description:`Previous agent, looping`,run:({deps:e})=>{let t=Ow(e.switcher.scoops.map(e=>e.key),e.switcher.active);t&&e.switcher.select(t)}},composer:{holdsMode:!1,group:`Getting around`,description:`Back to the composer`,run:({deps:e})=>e.focusComposer?.()},stop:{holdsMode:!0,group:`The turn`,description:`Stop the running turn`,run:({deps:e})=>e.stopTurn?.()},approvals:{holdsMode:!0,group:`The turn`,description:`Go to the pending approval`,run:({deps:e})=>e.focusApproval?.()},attach:{holdsMode:!1,group:`The turn`,description:`Attach a file or skill`,run:({deps:e})=>e.openAttachMenu?.()},copyReply:{holdsMode:!0,group:`The turn`,description:`Copy the last reply`,run:({deps:e})=>e.copyReply?.()},copyChat:{holdsMode:!0,group:`The turn`,description:`Copy the whole chat`,run:({deps:e})=>e.copyChat?.()},voice:{holdsMode:!0,group:`The turn`,description:`Dictate — again to send`,run:({deps:e})=>e.toggleVoice?.()},nextItem:{holdsMode:!0,group:`Getting around`,description:`Next message — or, after a list key, the next entry`,run:e=>fT(e,1)},prevItem:{holdsMode:!0,group:`Getting around`,description:`Previous message — or the previous entry`,run:e=>fT(e,-1)},newConversation:{holdsMode:!1,group:`Agents`,description:`New conversation`,run:({deps:e})=>{e.freezer?.dispatchEvent(new CustomEvent(`new-chat-save`,{bubbles:!0}))}},newConversationErase:Nw(`new-chat-erase`,`New conversation, erasing this one`),newCone:Nw(`new-cone`,`New cone`),dropCone:Nw(`drop-cone`,`Drop this cone`),sessions:{holdsMode:!0,group:`Agents`,description:`Archived chats (with 1-9 / j / k: restore that one)`,list:`sessions`,run:({deps:e})=>e.freezer?.toggle(!0)},leftRail:{holdsMode:!0,group:`Getting around`,description:`Toggle the left rail`,run:({deps:e})=>e.freezer?.toggle()},rightRail:{holdsMode:!0,group:`Getting around`,description:`Toggle the right panel`,run:({deps:e,state:t})=>{let n=e.dock;if(n){if(n.active){t.lastDockSurface=n.active,n.collapse();return}n.selectItem(t.lastDockSurface)}}},files:Mw(`files`,`File browser (with 1-9 / j / k: open that row)`,`files`),tabs:Mw(`browser`,`Browser tabs (then 1-9 to switch)`),peek:{holdsMode:!0,group:`Panels`,description:`Peek a tab (then 1-9: show it and come back)`,run:({deps:e})=>e.peekTabs?.()},terminal:Mw(`term`,`Terminal`),memory:Mw(`memory`,`Memory (with 1-9 / j / k: open that entry)`,`memory`),monitor:Mw(`monitor`,`Monitor`),sprinkles:{holdsMode:!0,group:`Panels`,description:`Sprinkles (with 1-9 / j / k: open that one)`,list:`sprinkles`,run:({deps:e,state:t})=>{let n=e.dock;if(!n)return;let r=kw(n);if(r.length!==0)return t.lastDockSurface=r[0],n.selectItem(r[0]),0}},zoom:{holdsMode:!0,group:`Getting around`,description:`Full screen the open panel`,run:({deps:e})=>e.zoomSurface?.()},model:{holdsMode:!1,group:`Settings`,description:`Model picker`,run:({deps:e,actions:t})=>{let n=e.composerMeta;if(n){if(n.models.length===0){t.accounts?.();return}n.openMenu()}}},cycleModel:{holdsMode:!0,group:`Settings`,description:`Next model`,run:({deps:e,actions:t})=>{let n=e.composerMeta;if(n){if(n.models.length===0){t.accounts?.();return}n.cycleModel?.()}}},cycleThinking:{holdsMode:!0,group:`Settings`,description:`Next thinking level`,run:({deps:e})=>e.composerMeta?.cycleThinking?.()},accounts:{holdsMode:!1,group:`Settings`,description:`Accounts`,run:({actions:e})=>e.accounts?.()},help:{holdsMode:!0,group:`Getting around`,description:`This help`,run:e=>e.toggleHelp()}},Fw=Object.keys(Pw);function Iw(e){return typeof e==`string`&&Object.hasOwn(Pw,e)}function Lw(e){return Pw[e].surfaceId??null}function Rw(e){return Fw.find(t=>Pw[t].surfaceId===e)??null}var zw=[`Escape`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],Bw={i:`composer`,Enter:`composer`,"?":`help`,ArrowRight:`nextAgent`,ArrowLeft:`prevAgent`,n:`newConversation`,N:`newConversationErase`,c:`newCone`,C:`dropCone`,r:`sessions`,s:`stop`,a:`approvals`,u:`attach`,y:`copyReply`,Y:`copyChat`,v:`voice`,j:`nextItem`,k:`prevItem`,f:`files`,t:`terminal`,b:`tabs`,m:`memory`,g:`monitor`,e:`sprinkles`,p:`peek`,"[":`leftRail`,"]":`rightRail`,z:`zoom`,l:`model`,L:`cycleModel`,h:`cycleThinking`,",":`accounts`},Vw={d:`nextAgent`,c:`composer`,Enter:`composer`,n:`newConversation`,b:`leftRail`,x:`rightRail`,f:`files`,t:`tabs`,e:`terminal`,m:`memory`,s:`sprinkles`,l:`model`,a:`accounts`,h:`help`,"?":`help`,"/":`help`};function Hw(e){return nT[e]??e}function Uw(e,t){let n=Object.keys(e).find(n=>e[n]===t);return n===void 0?null:Hw(n)}function Ww(e){return Uw(e,`help`)}function Gw(e){let t=Ww(e),n=Object.keys(e).filter(t=>e[t]===`composer`).map(e=>`[${Hw(e)}]`);return[t===null?null:`[${t}] help`,n.length===0?null:`${n.join(` or `)} to type`].filter(e=>e!==null).join(` · `)}function Kw(e=Bw){let t=new Map;for(let[n,r]of Object.entries(e))t.set(r,[...t.get(r)??[],Hw(n)]);return[{keys:[`Esc`],description:`Leave the composer for keyboard mode (again: exit full screen)`,group:`Getting around`},{keys:[`1 – 9`],description:`Switch to that agent in the tab strip (9 = last)`,group:`Agents`},...Fw.filter(e=>t.has(e)).map(e=>({keys:t.get(e)??[],description:Pw[e].description,group:Pw[e].group,id:e}))]}function qw(e){if(e.getElementById(mw))return;let t=e.createElement(`style`);t.id=mw,t.textContent=hw,(e.head??e.documentElement)?.append(t)}var Jw=5;function Yw(e,t){let n=e.createElement(`div`);n.className=`wcsc__keys`;for(let r of t.keys){let t=e.createElement(`kbd`);t.className=`wcsc__key`,t.textContent=r,n.append(t)}return n}function Xw(e,t,n=!1){let r=e.createElement(`div`);r.className=`wcsc__row`,t.count>0&&(r.dataset.used=String(t.count));let i=e.createElement(`div`);if(i.className=`wcsc__desc`,i.textContent=t.description,r.append(i),n){let n=e.createElement(`div`);n.className=`wcsc__count`,n.textContent=`×${t.count}`,r.append(n)}return r.append(Yw(e,t)),r}function Zw(e,t,n){let r=e.createElement(`div`);r.className=`wcsc__group`;let i=e.createElement(`div`);i.className=`wcsc__title`,i.textContent=t,r.append(i);for(let t of n)r.append(Xw(e,t));return r}function Qw(e,t){let n=t.filter(e=>e.count>0).sort((e,t)=>t.count-e.count).slice(0,Jw);if(n.length===0)return null;let r=e.createElement(`div`);r.className=`wcsc__group wcsc__group--yours`;let i=e.createElement(`div`);i.className=`wcsc__title`,i.textContent=`Your frequent actions`,r.append(i);for(let t of n)r.append(Xw(e,t,!0));return r}function $w(e,t,n,r){let i=e.createElement(`div`);i.className=`wcsc`;let a=e.createElement(`div`);a.className=`wcsc__note`,a.textContent=n===null?`Keyboard mode is off. Turn it on in Theme settings (Esc or Auto).`:n===`esc`?`Press Esc to enter keyboard mode. Put the caret back in the composer to type — nothing is intercepted there.`:`Keyboard mode is on whenever nothing is focused for typing (and you are not clicking composer chrome), so these keys are live by default. Put the caret back in the composer to type — nothing is intercepted there.`,i.append(a);let o=new Map((r?.ranked()??[]).map(e=>[e.id,e.count])),s=t.map(e=>({...e,count:(e.id===void 0?void 0:o.get(e.id))??0})),c=e.createElement(`div`);c.className=`wcsc__cols`;let l=Qw(e,s);l&&c.append(l);for(let t of Aw){let n=s.filter(e=>e.group===t);n.length>0&&c.append(Zw(e,t,n))}return i.append(c),i}var eT=1600,tT=eT,nT={Escape:`Esc`,Enter:`⏎`," ":`Space`,Tab:`⇥`,Backspace:`⌫`,ArrowUp:`↑`,ArrowDown:`↓`,ArrowLeft:`←`,ArrowRight:`→`};function rT(e){let t=[];return e.ctrlKey&&t.push(`⌃`),e.altKey&&t.push(`⌥`),e.metaKey&&t.push(`⌘`),e.shiftKey&&e.key.length>1&&t.push(`⇧`),t.push(nT[e.key]??e.key),t}function iT(e,t,n){let r=e.createElement(`slicc-key-hud`);return r.dataset.wcShortcuts=`hud`,r.setAttribute(`hint`,Gw(n)),r.setAttribute(`linger`,String(eT)),t.append(r),{record:(e,t)=>r.record?.(e,t),destroy:()=>r.remove()}}function aT(e,t,n,r){let i=null,a=()=>{if(!i)return;let e=i;i=null,e.hide?.(),e.remove()},o=()=>{if(i)return;qw(e);let a=e.createElement(`slicc-dialog`);a.className=`wcsc-dialog`,a.setAttribute(`heading`,`Keyboard mode`),a.dataset.wcShortcuts=`help`,a.append($w(e,Kw(t()),n(),r)),a.addEventListener(`slicc-dialog-close`,()=>{i=null,a.remove()}),e.body.append(a),i=a,a.show?.()};return{show:o,hide:a,toggle:()=>i?a():o(),element:()=>i}}function oT(e){let t=e.defaultView?.navigator?.keyboard;t&&(e.fullscreenElement?t.lock([`Escape`]).catch(()=>void 0):t.unlock())}function sT(e,t,n,r,i){let a=!1,o=null;return{on:()=>a,record:(e,t)=>o?.record(e,t),set:s=>{if(s===a)return;if(a=s,e.documentElement.toggleAttribute(`data-slicc-keyboard-mode`,s),i(s),!s){o?.destroy(),o=null,r?.hide();return}qw(e),o=iT(e,n(),t()),r?.show(t());let c=e.activeElement;gw(c)&&c?.blur()}}}function cT(e){if(e.ctrlKey||e.metaKey||e.altKey)return!0;let t=_w(e);return gw(t)?!0:(e.key===`Enter`||e.key===` `)&&xw(t)}function lT(e,t,n,r,i){if(e===null){r.set(!1),n&&t&&i(`composer`);return}if(e===`esc`){t&&(r.set(!1),n&&i(`composer`));return}r.set(!t),n&&i(t?`composer`:`keyboard`)}function uT(e,t,n,r,i){let a=e.defaultView,o=a?.setTimeout.bind(a)??setTimeout,s=a?.clearTimeout.bind(a)??clearTimeout,c=n.composerAvailable??(()=>!!n.focusComposer),l,u=`composer`,d=!1,f=null,p=null,m=()=>{p?.disconnect(),p=null,f=null},h=t=>{if(f===t)return;m();let n=a?.MutationObserver??globalThis.MutationObserver;n&&(f=t,p=new n(()=>{t.isConnected||(m(),v())}),p.observe(e.documentElement,{childList:!0,subtree:!0}))},g=()=>{d||=t.on(),t.set(!1)},_=()=>{if(Sw(e)||typeof e.hasFocus==`function`&&!e.hasFocus())return;let a=vw(e);if(bw(a)){h(a),g();return}m();let o=gw(a)||yw(n.composerBand,a)||!!i?.();d&&(d=!1,!o&&r()===`esc`&&t.set(!0)),lT(r(),o,c(),t,e=>{u=e})},v=()=>{l===void 0&&(l=o(()=>{l=void 0,_()},0))};return{schedule:v,restore:()=>{if(Sw(e))return;let i=r();u===`composer`&&c()?(t.set(!1),n.focusComposer?.()):i===null?t.set(!1):t.set(!0),v()},choose:e=>{u=e},suspend:g,dropSuspension:()=>{d=!1},intent:()=>u,dispose:()=>{l!==void 0&&s(l),l=void 0,m()}}}function dT(e,t,n){let r=e.nodeType===1?e:null,i=t.defaultView?.MutationObserver??globalThis.MutationObserver;if(!r||!i)return()=>void 0;let a=e.active,o=new i(()=>{let t=e.active;t!==a&&(a=t,n())});return o.observe(r,{attributes:!0,attributeFilter:[`active`]}),()=>o.disconnect()}function fT(e,t){let n=e.armed;if(!n){e.deps.scrollMessage?.(t);return}let r=jw(n.list,e.deps),i=r?.size()??0;if(!r||i===0)return;let a=n.index===null?t>0?0:i-1:(n.index+t+i)%i;return r.selectAt(a),a}function pT(e,t,n){let r=jw(t,e),i=r?ww(r.size(),n):null;return i===null||!r?null:(r.selectAt(i),i)}function mT(e,t,n,r,i){n.preventDefault(),i.deps.usage?.record?.(t),e.holdsMode||i.mode.set(!1);let a=e.run({deps:i.deps,actions:i.actions,state:i.state,toggleHelp:i.toggleHelp,armed:r}),o=e.list??(typeof a==`number`?r?.list:void 0);o&&i.chord.arm(o,typeof a==`number`?a:null),e.holdsMode||i.settler.schedule()}function hT(e,t,n,r,i){if(Sw(t))return;if(!n.on()){if(i===null)return;e.preventDefault(),n.set(!0),r.choose(`keyboard`),n.record(rT(e),!0);return}let a=!!t.fullscreenElement;n.record(rT(e),a),a&&t.exitFullscreen?.().catch(()=>void 0)}function gT(e,t,n){return Sw(e)&&!(t===Pw.help&&n)}function _T(e,t,n){if(t){let r=pT(e,t.list,n);return{hit:r!==null,index:r}}let r=Ew(e.switcher.scoops,n);return r!==null&&e.switcher.select(r),{hit:r!==null,index:null}}function vT(e){let t=e.defaultView,n=t?.setTimeout.bind(t)??setTimeout,r=t?.clearTimeout.bind(t)??clearTimeout,i=null,a=()=>{i&&=(r(i.timer),null)};return{take:()=>{if(!i)return null;let{list:e,index:t}=i;return a(),{list:e,index:t}},arm:(e,t)=>{a(),i={list:e,index:t,timer:n(a,tT)}},clear:a}}var yT=new WeakMap;function bT(e,t){if(e.defaultPrevented||e.isComposing)return;if(e.key===`Escape`){t.chord.clear(),hT(e,t.doc,t.mode,t.settler,t.trigger);return}if(!t.mode.on()||cT(e))return;let n=t.chord.take(),r=t.commandIdFor(e.key),i=r?Pw[r]:void 0;if(gT(t.doc,i,t.helpOpen())){t.mode.record(rT(e),!1);return}let a=Cw(e);if(a!==null){let{hit:r,index:i}=_T(t.deps,n,a);if(t.mode.record(rT(e),r),!r)return;e.preventDefault(),n&&i!==null&&t.chord.arm(n.list,i);return}t.mode.record(rT(e),!!i),i&&r&&mT(i,r,e,n,t.dispatch)}function xT(e,t,n,r){let i=e.defaultView,a=i?.setTimeout.bind(i)??setTimeout,o=i?.clearTimeout.bind(i)??clearTimeout,s,c=i=>{r.value&&s===void 0&&(s=a(()=>{if(s=void 0,r.value=!1,i){let n=vw(e);!Sw(e)&&!gw(n)&&!yw(t.composerBand,n)&&t.focusComposer?.()}n.schedule()},0))},l=e=>{if(yw(t.composerBand,_w(e))){r.value=!0;return}r.value&&c(!1)},u=()=>c(!0),d=()=>c(!1);return e.addEventListener(`pointerdown`,l,!0),e.addEventListener(`mousedown`,l,!0),e.addEventListener(`pointerup`,u,!0),e.addEventListener(`mouseup`,u,!0),e.addEventListener(`pointercancel`,d,!0),t.composerBand?.addEventListener(`lostpointercapture`,d),i?.addEventListener(`blur`,d),()=>{e.removeEventListener(`pointerdown`,l,!0),e.removeEventListener(`mousedown`,l,!0),e.removeEventListener(`pointerup`,u,!0),e.removeEventListener(`mouseup`,u,!0),e.removeEventListener(`pointercancel`,d,!0),t.composerBand?.removeEventListener(`lostpointercapture`,d),i?.removeEventListener(`blur`,d),s!==void 0&&o(s)}}function ST(e){let t=e.doc??e.switcher?.ownerDocument;if(!t)throw Error(`wireKeyboardShortcuts: no document`);yT.get(t)?.dispose();let n={},r=Bw,i=fw,a=e.usage,o=aT(t,()=>r,()=>i,a),s=sT(t,()=>r,()=>e.hudHost??t.body,e.caps,t=>{e.switcher.arrowKeys=t?`off`:`on`,e.composerBand?.toggleAttribute(`keys`,t)}),c={lastDockSurface:`files`},l=e=>r[e],u={value:!1},d=uT(t,s,e,()=>i,()=>u.value),f=xT(t,e,d,u),p=vT(t),m={deps:e,actions:n,state:c,mode:s,settler:d,chord:p,toggleHelp:()=>o.toggle()},h=n=>bT(n,{doc:t,mode:s,settler:d,chord:p,helpOpen:()=>!!o.element(),deps:e,dispatch:m,commandIdFor:l,trigger:i}),g=t=>{let n=_w(t);s.on()&&bw(n)?d.suspend():s.on()&&(gw(n)||yw(e.composerBand,n))&&s.set(!1),d.schedule()},_=()=>d.schedule(),v=()=>oT(t),y=()=>d.schedule(),b=()=>d.suspend(),x=dT(e.switcher,t,d.restore),S=t.defaultView;t.addEventListener(`keydown`,h),t.addEventListener(`focusin`,g),t.addEventListener(`focusout`,_),t.addEventListener(`fullscreenchange`,v),S?.addEventListener(`focus`,y),S?.addEventListener(`blur`,b),oT(t),d.schedule();let C={dispose:()=>{t.removeEventListener(`keydown`,h),t.removeEventListener(`focusin`,g),t.removeEventListener(`focusout`,_),t.removeEventListener(`fullscreenchange`,v),S?.removeEventListener(`focus`,y),S?.removeEventListener(`blur`,b),f(),x(),d.dispose(),p.clear(),s.set(!1),o.hide(),e.caps?.destroy(),yT.get(t)===C&&yT.delete(t)},showHelp:o.show,hideHelp:o.hide,helpOverlay:o.element,active:s.on,setActive:s.set,intent:d.intent,setAction:(e,t)=>{n[e]=t},setKeymap:e=>{r={...e}},keymap:()=>r,trigger:()=>i,setTrigger:e=>{i=e,(e===null||e===`esc`)&&s.set(!1),d.dropSuspension(),d.schedule()}};return yT.set(t,C),C}export{he as $,jt as A,mt as B,It as C,Wt as D,$t as E,bt as F,ct as G,dt as H,Ct as I,We as J,ut as K,xt as L,kt as M,At as N,qt as O,wt as P,ue as Q,k as R,vs as S,Gt as T,et as U,st as V,lt as W,te as X,Re as Y,_e as Z,du as _,Rw as a,v as at,yc as b,Iw as c,y as ct,lw as d,c as dt,ve as et,uw as f,Pf as g,Mf as h,Vw as i,g as it,Dt as j,Pt as k,pw as l,o as lt,ow as m,fw as n,ee as nt,Uw as o,_ as ot,dw as p,$e as q,zw as r,d as rt,Lw as s,u as st,Bw as t,x as tt,ST as u,s as ut,Zl as v,Ft as w,Hs as x,nl as y,ht as z};