pi-roundtable-web 0.26.1 → 0.26.3

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 (212) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +25 -6
  3. package/dist/chunk-account-hck7mhf8.js +1 -0
  4. package/dist/chunk-action-menu-beqh40k6.js +1 -0
  5. package/dist/{chunk-agent-rdv7ekrt.js → chunk-agent-znnth24t.js} +1 -1
  6. package/dist/chunk-arranged-rooms-wfakrddk.js +1 -0
  7. package/dist/chunk-bulk-actions-c4tkvk9g.js +1 -0
  8. package/dist/chunk-character-creator-qwcsdytw.js +1 -0
  9. package/dist/{chunk-codeeditor-ajhgd33t.js → chunk-codeeditor-6xavqntt.js} +2 -2
  10. package/dist/chunk-confirm-z95j9jt3.js +1 -0
  11. package/dist/chunk-connectors-7xqsg5q5.js +1 -0
  12. package/dist/chunk-conversations-zc4mv6vj.js +1 -0
  13. package/dist/{chunk-drag-peyb8t0k.js → chunk-drag-0mefcvp3.js} +1 -1
  14. package/dist/chunk-entry-hrt97qed.js +1 -0
  15. package/dist/chunk-folder-list-nemtqbnc.js +1 -0
  16. package/dist/chunk-folds-xpg9qcwf.js +1 -0
  17. package/dist/chunk-gate-86r8a2vf.js +1 -0
  18. package/dist/chunk-group-scene-g24kxz6f.js +1 -0
  19. package/dist/chunk-group-table-851jm8ef.js +1 -0
  20. package/dist/chunk-host-icons-23zhqpmc.js +1 -0
  21. package/dist/chunk-host-picture-8tnh2wam.js +1 -0
  22. package/dist/chunk-host-state-j41sp065.js +1 -0
  23. package/dist/chunk-host-ui-cje7a9t9.js +1 -0
  24. package/dist/chunk-index-1fn8q4ps.js +2 -0
  25. package/dist/{chunk-index-73gh7kgr.js → chunk-index-30vw4nhh.js} +35 -3
  26. package/dist/{chunk-index-k7t14rwa.js → chunk-index-3aa5czxj.js} +2 -2
  27. package/dist/chunk-index-3k7sdph2.js +1 -0
  28. package/dist/{chunk-index-w31c4yjv.js → chunk-index-3wbyq10m.js} +2 -2
  29. package/dist/{chunk-index-vcyzwtk2.js → chunk-index-47yspxa4.js} +2 -2
  30. package/dist/chunk-index-4jf4jvfd.css +1 -0
  31. package/dist/chunk-index-4s1qj9we.js +2 -0
  32. package/dist/chunk-index-5fz5e1ct.js +2 -0
  33. package/dist/{chunk-index-5yzfrf7b.js → chunk-index-67p2sc14.js} +3 -3
  34. package/dist/{chunk-index-gyary7np.js → chunk-index-6c8mewwy.js} +12 -12
  35. package/dist/{chunk-index-yzsgsvnp.js → chunk-index-84wbc80d.js} +2 -2
  36. package/dist/{chunk-index-snzzfhk3.js → chunk-index-8eexybcx.js} +2 -2
  37. package/dist/{chunk-index-pk1yxkv4.js → chunk-index-agrvqf5b.js} +2 -2
  38. package/dist/chunk-index-azrnzgev.js +2 -0
  39. package/dist/{chunk-index-0xh24y25.js → chunk-index-c2ag3qw2.js} +2 -2
  40. package/dist/{chunk-index-kwcx62wb.js → chunk-index-e90kztkx.js} +3 -3
  41. package/dist/chunk-index-efgm0066.js +2 -0
  42. package/dist/{chunk-index-w2j3njb6.js → chunk-index-eh0wb6g0.js} +2 -2
  43. package/dist/{chunk-index-z9x4cnzf.js → chunk-index-eyc2rkq5.js} +2 -2
  44. package/dist/chunk-index-fe0m5mht.js +2 -0
  45. package/dist/{chunk-index-2yebd9tb.js → chunk-index-gt42wjby.js} +4 -4
  46. package/dist/{chunk-index-cvbdf2ca.js → chunk-index-hc0dgmrs.js} +2 -2
  47. package/dist/{chunk-index-eg55mqqe.js → chunk-index-hczrjnky.js} +1 -1
  48. package/dist/chunk-index-hrtyanda.js +2 -0
  49. package/dist/chunk-index-j479p62w.js +2 -0
  50. package/dist/chunk-index-jq970hsd.js +42 -0
  51. package/dist/chunk-index-kankja6p.js +50 -0
  52. package/dist/chunk-index-kb44jp50.js +2 -0
  53. package/dist/{chunk-index-m7fvw92f.js → chunk-index-m65cv329.js} +2 -2
  54. package/dist/chunk-index-mnwdbb4n.js +2 -0
  55. package/dist/chunk-index-n6zrc05a.js +2 -0
  56. package/dist/chunk-index-n93wqszt.js +8 -0
  57. package/dist/{chunk-index-zrvg23jd.js → chunk-index-nrexxkar.js} +2 -2
  58. package/dist/chunk-index-pgxgq61x.js +2 -0
  59. package/dist/chunk-index-q5vzjqr5.js +2 -0
  60. package/dist/chunk-index-qqwk157d.js +2 -0
  61. package/dist/{chunk-index-czdketze.js → chunk-index-r1v895tj.js} +2 -2
  62. package/dist/chunk-index-r3tqhew8.js +2 -0
  63. package/dist/chunk-index-raf772z6.js +2 -0
  64. package/dist/{chunk-index-dt9775ka.js → chunk-index-rcxz5w5d.js} +5 -5
  65. package/dist/chunk-index-rg9vh59e.js +1 -0
  66. package/dist/chunk-index-sxq69p1f.js +2 -0
  67. package/dist/chunk-index-taq2psr6.js +2 -0
  68. package/dist/{chunk-index-rmxbdmn2.js → chunk-index-tsxsy4qs.js} +2 -2
  69. package/dist/chunk-index-wc83vb0a.js +2 -0
  70. package/dist/chunk-index-xbs8q4kn.js +2 -0
  71. package/dist/chunk-index-xxbveevc.js +2 -0
  72. package/dist/{chunk-index-0fmmvgee.js → chunk-index-zx6yka30.js} +2 -2
  73. package/dist/chunk-lang-css-yrc25qk9.js +1 -0
  74. package/dist/{chunk-lang-dockerfile-k728ewsf.js → chunk-lang-dockerfile-tjxsnhr9.js} +1 -1
  75. package/dist/{chunk-lang-go-wjwgay4v.js → chunk-lang-go-drmfa25k.js} +3 -3
  76. package/dist/chunk-lang-html-rwe8epvf.js +1 -0
  77. package/dist/chunk-lang-javascript-d6x6qjtg.js +1 -0
  78. package/dist/{chunk-lang-json-7gd89mvs.js → chunk-lang-json-790swysy.js} +1 -1
  79. package/dist/{chunk-lang-markdown-b6qbe8bt.js → chunk-lang-markdown-483dkxcq.js} +5 -5
  80. package/dist/{chunk-lang-python-3v56y31b.js → chunk-lang-python-v9s40bzj.js} +2 -2
  81. package/dist/{chunk-lang-rust-kh0z74d1.js → chunk-lang-rust-z4gry1bf.js} +1 -1
  82. package/dist/{chunk-lang-shell-9zv0zvbx.js → chunk-lang-shell-egsvk8rj.js} +1 -1
  83. package/dist/{chunk-lang-sql-yw6bf3t7.js → chunk-lang-sql-75j3denr.js} +2 -2
  84. package/dist/{chunk-lang-toml-tg1r96nq.js → chunk-lang-toml-7dbjvhex.js} +1 -1
  85. package/dist/chunk-lang-typescript-1rv9vdcz.js +1 -0
  86. package/dist/{chunk-lang-xml-ev1mndd4.js → chunk-lang-xml-jg1sv4h2.js} +1 -1
  87. package/dist/{chunk-lang-yaml-fz5qpb3r.js → chunk-lang-yaml-g3v7s5je.js} +1 -1
  88. package/dist/chunk-layout-actions-6assr93n.js +1 -0
  89. package/dist/chunk-menu-items-9szcza00.js +2 -0
  90. package/dist/chunk-mode-toggle-bzbq7ycq.js +1 -0
  91. package/dist/{chunk-note-row-kd0fy7ee.js → chunk-note-row-g20h11pm.js} +2 -2
  92. package/dist/chunk-notes-gc8bssxn.js +1 -0
  93. package/dist/chunk-notice-bell-jehad6sx.js +1 -0
  94. package/dist/chunk-notices-prqkv7ge.js +1 -0
  95. package/dist/chunk-onboarding-mdtc2mb7.js +1 -0
  96. package/dist/chunk-overview-2j1s6kqg.js +1 -0
  97. package/dist/chunk-palette-4qt6ewem.js +1 -0
  98. package/dist/chunk-placement-items-2eect825.js +1 -0
  99. package/dist/chunk-profile-pfzyc04p.js +1 -0
  100. package/dist/chunk-prompt-history-2bcp2rky.js +1 -0
  101. package/dist/chunk-prompts-052mb05y.js +1 -0
  102. package/dist/chunk-room-confirms-asvmjh5s.js +1 -0
  103. package/dist/chunk-room-menu-dm2r2hk6.js +1 -0
  104. package/dist/chunk-rooms-menu-button-32hemzxc.js +1 -0
  105. package/dist/chunk-schedules-64h9gfwn.js +1 -0
  106. package/dist/{chunk-seat-menu-ys5v9abz.js → chunk-seat-menu-vrpc40v9.js} +1 -1
  107. package/dist/chunk-sheet-hosts-jaqx490x.js +1 -0
  108. package/dist/chunk-shortcut-help-bdbkdcs9.js +26 -0
  109. package/dist/chunk-shortcuts-qft33r8t.js +1 -0
  110. package/dist/chunk-skill-editor-z3dx2895.js +8 -0
  111. package/dist/chunk-skills-4jfcv39n.js +1 -0
  112. package/dist/chunk-switcher-list-xysjd4tw.js +1 -0
  113. package/dist/{chunk-tab-dot-r6brdbmw.js → chunk-tab-dot-1p68ybf8.js} +1 -1
  114. package/dist/chunk-table-0v4q4dx3.js +1 -0
  115. package/dist/chunk-table-seats-f683hx8k.js +1 -0
  116. package/dist/chunk-table2d-1a6atjhj.js +1 -0
  117. package/dist/chunk-table3d-k0ffeffj.js +4220 -0
  118. package/dist/chunk-thread-actions-4rpfg4fq.js +1 -0
  119. package/dist/chunk-thread-cards-t794fp4d.js +1 -0
  120. package/dist/chunk-thread-list-1pcygpka.js +1 -0
  121. package/dist/chunk-transcript-km4e3aey.js +1 -0
  122. package/dist/chunk-where-phjwqggy.js +1 -0
  123. package/dist/chunk-workspace-d064v56e.js +578 -0
  124. package/dist/chunk-zh-tw-qf18hcxc.js +1 -0
  125. package/dist/index.html +1 -2
  126. package/dist/sw.js +1 -1
  127. package/package.json +2 -2
  128. package/src/api-types.ts +27 -0
  129. package/src/app/api-http.ts +1 -1
  130. package/src/app/routes.ts +158 -3
  131. package/src/app/surface-threads.ts +1 -1
  132. package/src/app/surface.ts +2 -1
  133. package/src/app/threads.ts +31 -0
  134. package/src/auth/authenticator.ts +8 -1
  135. package/src/auth/sessions.ts +10 -3
  136. package/src/host/host-app.ts +15 -1
  137. package/src/host/read-all.ts +80 -0
  138. package/src/host/reads.ts +67 -0
  139. package/src/i18n/zh-tw.ts +110 -79
  140. package/src/options.ts +1 -1
  141. package/src/web-plugin.ts +12 -1
  142. package/dist/chunk-account-ghq105t4.js +0 -1
  143. package/dist/chunk-action-menu-me0g9qsc.js +0 -1
  144. package/dist/chunk-arranged-rooms-81rqhx9x.js +0 -1
  145. package/dist/chunk-character-creator-bd426yjw.js +0 -1
  146. package/dist/chunk-confirm-p3mts8mx.js +0 -1
  147. package/dist/chunk-connectors-bkv3xn83.js +0 -1
  148. package/dist/chunk-conversations-0e0vbxwr.js +0 -1
  149. package/dist/chunk-entry-mv7q8br0.js +0 -1
  150. package/dist/chunk-folder-list-era3tksh.js +0 -1
  151. package/dist/chunk-folds-hvws0bd5.js +0 -1
  152. package/dist/chunk-gate-hc7dd0fx.js +0 -1
  153. package/dist/chunk-group-scene-dkbpmbh5.js +0 -1
  154. package/dist/chunk-group-table-fqmxgdfw.js +0 -1
  155. package/dist/chunk-host-icons-4xde9ntk.js +0 -1
  156. package/dist/chunk-host-picture-014yzk20.js +0 -1
  157. package/dist/chunk-host-state-t56e5sdy.js +0 -1
  158. package/dist/chunk-host-ui-p1zy9nmp.js +0 -1
  159. package/dist/chunk-index-4t0r3t3b.js +0 -2
  160. package/dist/chunk-index-6twb7ccd.js +0 -2
  161. package/dist/chunk-index-7xffskfa.js +0 -8
  162. package/dist/chunk-index-aqw7cy5j.js +0 -1
  163. package/dist/chunk-index-b6ca02e8.js +0 -2
  164. package/dist/chunk-index-b8nvhcx5.js +0 -2
  165. package/dist/chunk-index-gr6e0hse.js +0 -2
  166. package/dist/chunk-index-j214tczc.js +0 -1
  167. package/dist/chunk-index-jd6632ef.js +0 -2
  168. package/dist/chunk-index-jw7dtshr.js +0 -2
  169. package/dist/chunk-index-mmg788a1.js +0 -2
  170. package/dist/chunk-index-mq0dacwr.js +0 -2
  171. package/dist/chunk-index-p53ak25v.js +0 -2
  172. package/dist/chunk-index-rbcz9jd4.css +0 -1
  173. package/dist/chunk-index-rnxj3z8k.js +0 -2
  174. package/dist/chunk-index-v3bmr0nw.js +0 -2
  175. package/dist/chunk-index-wrm8w165.js +0 -2
  176. package/dist/chunk-index-xh0mg9cw.js +0 -2
  177. package/dist/chunk-index-ybtvvx85.js +0 -2
  178. package/dist/chunk-index-zynq0b0w.js +0 -50
  179. package/dist/chunk-lang-css-88v3hp3d.js +0 -1
  180. package/dist/chunk-lang-html-07d47es4.js +0 -1
  181. package/dist/chunk-lang-javascript-fmhhgzwd.js +0 -1
  182. package/dist/chunk-lang-typescript-etjjvr2g.js +0 -1
  183. package/dist/chunk-layout-actions-48ecgtkg.js +0 -1
  184. package/dist/chunk-menu-items-1epy3h0t.js +0 -2
  185. package/dist/chunk-mode-toggle-fxmfxsa4.js +0 -1
  186. package/dist/chunk-notes-yb8f057c.js +0 -1
  187. package/dist/chunk-notice-bell-wr4f1rph.js +0 -1
  188. package/dist/chunk-notices-x07da5bb.js +0 -1
  189. package/dist/chunk-onboarding-csrkbh9z.js +0 -1
  190. package/dist/chunk-overview-avc2d30t.js +0 -1
  191. package/dist/chunk-palette-9nhp95bz.js +0 -1
  192. package/dist/chunk-placement-items-q694dpgk.js +0 -1
  193. package/dist/chunk-profile-6qemf3m7.js +0 -1
  194. package/dist/chunk-prompt-history-7enzp2p3.js +0 -1
  195. package/dist/chunk-prompts-nv6mrn0q.js +0 -1
  196. package/dist/chunk-room-confirms-zz7n61y7.js +0 -1
  197. package/dist/chunk-room-menu-rr6nzap1.js +0 -1
  198. package/dist/chunk-rooms-menu-button-zbtwj47d.js +0 -1
  199. package/dist/chunk-schedules-rw57nr0m.js +0 -1
  200. package/dist/chunk-sheet-hosts-jhvaacst.js +0 -1
  201. package/dist/chunk-skill-editor-sz8an8qr.js +0 -8
  202. package/dist/chunk-skills-tnr1h16h.js +0 -1
  203. package/dist/chunk-switcher-list-17enhrse.js +0 -1
  204. package/dist/chunk-table-r12cja6p.js +0 -1
  205. package/dist/chunk-table-seats-g3t392zz.js +0 -1
  206. package/dist/chunk-table2d-p3ezsdcj.js +0 -1
  207. package/dist/chunk-table3d-4x2n2b00.js +0 -4220
  208. package/dist/chunk-thread-actions-qc6ezkha.js +0 -1
  209. package/dist/chunk-transcript-n2s6dher.js +0 -1
  210. package/dist/chunk-where-f3scdydc.js +0 -1
  211. package/dist/chunk-workspace-xs023bxm.js +0 -1
  212. package/dist/chunk-zh-tw-efvmk3fd.js +0 -1
package/src/web-plugin.ts CHANGED
@@ -330,7 +330,18 @@ async function build(settings: ResolvedOptions, context: Context) {
330
330
  const authenticator = createAuthenticator({
331
331
  auth: settings.auth,
332
332
  identify,
333
- ...(oidc && sessions ? { oidc: { login: oidc, sessions } } : {}),
333
+ ...(oidc && sessions
334
+ ? {
335
+ oidc: {
336
+ login: oidc,
337
+ sessions,
338
+ reauthHours:
339
+ settings.auth.mode === "oidc"
340
+ ? settings.auth.reauthHours
341
+ : undefined,
342
+ },
343
+ }
344
+ : {}),
334
345
  origin: settings.origin,
335
346
  mount: settings.mount,
336
347
  title: settings.title,
@@ -1 +0,0 @@
1
- import{h,M,w,e,x}from"./chunk-index-zynq0b0w.js";var a={profile:w(()=>(h("6qemf3m7"),import("./chunk-profile-6qemf3m7.js")).then((o)=>({default:o.ProfilePage}))),notices:w(()=>(h("x07da5bb"),import("./chunk-notices-x07da5bb.js")).then((o)=>({default:o.NoticesPage}))),onboarding:w(()=>(h("csrkbh9z"),import("./chunk-onboarding-csrkbh9z.js")).then((o)=>({default:o.OnboardingPage})))};function n({pane:o}){let t=a[o];return t?e(M,{fallback:e(x,{}),children:e(t,{})}):null}export{n as default};
@@ -1 +0,0 @@
1
- import{a,yt,o,r,m,e,n,s,an,hs}from"./chunk-index-zynq0b0w.js";import{I}from"./chunk-index-vcyzwtk2.js";var k=()=>typeof matchMedia==="function"&&matchMedia("(max-width: 719px)").matches,x={rtMenu:!0},g=()=>Boolean(window.history.state?.rtMenu),E=8,y=(t)=>t?.isConnected?t:null;function b(t){return t.items.map((u)=>n("button",{type:"button",role:u.checked===void 0?"menuitem":"menuitemcheckbox",...u.checked===void 0?{}:{"aria-checked":u.checked},className:"menu-item menu-link","data-tone":u.tone,onClick:()=>t.onChoose(u),children:[u.icon?e("span",{className:"menu-icon","data-tone":u.tone,children:e(s,{name:u.icon,size:18})}):null,e("span",{className:"menu-text",children:e("strong",{children:u.label})}),u.checked?e(s,{name:"check",size:18,className:"menu-check"}):null]},u.id))}function H({menu:t}){let u=o(void 0);if(t)u.current=t;let c=u.current,f=o(!1),v=o(void 0),p=t?.serial;return a(()=>{if(p===void 0)return;return window.history.pushState(x,"",window.location.href),f.current=!0,()=>{if(f.current)f.current=!1,window.history.back()}},[p]),a(()=>{let h=()=>{if(!f.current||g())return;f.current=!1,an();let M=v.current;v.current=void 0,M?.()};return window.addEventListener("popstate",h),()=>window.removeEventListener("popstate",h)},[]),e(I,{open:t!==void 0,title:c?.title??"",onClose:an,restoreFocus:()=>y(c?.source??null),children:c?e("div",{className:"menu action-items",role:"menu","aria-label":c.title,children:e(b,{items:c.items,onChoose:(h)=>{if(!f.current){an(),h.run();return}v.current=h.run,window.history.back()}})}):null})}function T({menu:t}){let u=o(null),[c,f]=r(t.at),{source:v}=t,p=(i)=>{y(v)?.focus(),an(),i?.()},h=o(p);h.current=p,yt(()=>{let i=u.current;if(!i)return;let d=i.getBoundingClientRect();f({x:Math.max(E,Math.min(t.at.x,window.innerWidth-d.width-E)),y:Math.max(E,Math.min(t.at.y,window.innerHeight-d.height-E))}),i.querySelector('[role^="menuitem"]')?.focus()},[t.serial]),a(()=>{let i=(l)=>{if(l.target instanceof Node&&u.current?.contains(l.target))return;an()},d=()=>an();return document.addEventListener("pointerdown",i,!0),document.addEventListener("wheel",i,{capture:!0,passive:!0}),document.addEventListener("touchmove",i,{capture:!0,passive:!0}),window.addEventListener("resize",d),()=>{document.removeEventListener("pointerdown",i,!0),document.removeEventListener("wheel",i,!0),document.removeEventListener("touchmove",i,!0),window.removeEventListener("resize",d)}},[]);let M=(i)=>{let d=[...u.current?.querySelectorAll('[role^="menuitem"]')??[]],l=d.indexOf(document.activeElement),w=(L)=>{i.preventDefault(),d[(L+d.length)%d.length]?.focus()};switch(i.key){case"Escape":i.preventDefault(),i.stopPropagation(),h.current();return;case"ArrowDown":return w(l+1);case"ArrowUp":return w(l<0?-1:l-1);case"Tab":return w(i.shiftKey?l<0?-1:l-1:l+1);case"Home":return w(0);case"End":return w(-1)}};return e("div",{ref:u,className:"action-popover",role:"menu","aria-label":t.title,tabIndex:-1,style:{left:`${c.x}px`,top:`${c.y}px`},onKeyDown:M,children:e(b,{items:t.items,onChoose:(i)=>p(i.run)})})}function O(){let t=hs(),u=o(void 0);if(t&&u.current?.serial!==t.serial)u.current={serial:t.serial,sheet:k()};let c=Boolean(t&&u.current?.sheet);return n(m,{children:[e(H,{menu:c?t:void 0}),t&&!c?e(T,{menu:t},t.serial):null]})}export{O as ActionMenuHost};
@@ -1 +0,0 @@
1
- import{h,M,w,J,A,o,t,m,e,n,s,Ie,d,_,k,ye,Bt,ln,ne,Mi,Kn,ur,Tn,Jn,dr}from"./chunk-index-zynq0b0w.js";import{Me}from"./chunk-index-wrm8w165.js";import{In,Dn,Un,Xt}from"./chunk-index-2yebd9tb.js";import{Ln}from"./chunk-index-4t0r3t3b.js";import{Rt}from"./chunk-index-zrvg23jd.js";In();var O=w(()=>(h("era3tksh"),import("./chunk-folder-list-era3tksh.js")).then((a)=>({default:a.FolderList}))),Z=J(function(c){let{view:r}=c,p=Xt(()=>Bt(r.key),r.home?void 0:Dn(r.key));return e(ur,{...c,press:p,item:{...r.home?{}:{"data-drop-item":"","data-key":r.key},...c.arranging?{"data-arranging":""}:{}},after:c.arranging?e("button",{type:"button",className:"icon-button row-more","aria-haspopup":"menu","aria-label":t("Room menu"),onClick:(u)=>{let g=u.currentTarget;Bt(r.key).then((i)=>{if(!i)return;let y=g.getBoundingClientRect();ye({...i,at:{x:y.left,y:y.bottom},via:"key",source:g})},()=>{return})},children:e(s,{name:"more",size:18})}):null})});function P(a){let{now:c}=ne(),{timeZone:r}=k(),p=Tn(a.rooms);return e("ul",{className:"room-list",children:p.map(({key:u,...g})=>{let i=a.threads[u];return e(Z,{...g,active:u===a.active,now:c,timeZone:r,arranging:a.arranging,...i?{threads:e(Jn,{open:i.open,closed:i.closed,active:a.active,parent:u})}:{}},u)})})}function v(a){let r=Tn(a.rooms).length===0;if(r&&a.zone?.kind!=="pinned")return null;return n("section",{className:"stack",...r?{"data-empty":""}:{},...a.zone?{"data-drop-zone":a.zone.kind,"data-zone-id":a.zone.id}:{},children:[e("h2",{className:"section-title",children:a.title}),r?null:e(P,{rooms:a.rooms,threads:a.threads,active:a.active,arranging:a.arranging})]})}function re(a){let c=Boolean(k().kinds?.length),r=d((l)=>JSON.stringify({listed:l.listed,...Rt(l,(K)=>Ie(l,K))})),p=Un(),u=o(r);if(!p)u.current=r;let g=u.current,{listed:i,...y}=A(()=>JSON.parse(g),[g]),{home:z,pinned:S,folders:N,restAgents:T,restGroups:D,rest:C,threads:L,orphans:f}=y,R=Mi(),F=z.length+S.length+C.length===0&&N.every((l)=>l.rooms.length===0)&&f.open.length+f.closed.length===0,b={threads:L,active:a.active,arranging:R};return n("div",{className:"page","data-column":a.active?"":void 0,"data-drop-root":"",children:[n("header",{className:"page-head",children:[e("h1",{children:t("Rooms")}),n("div",{className:"actions",children:[n("button",{type:"button",className:"header-button search-button",onClick:a.onSearch,children:[e(s,{name:"search",size:16}),e("span",{children:t("Find a room")}),e("kbd",{children:"⌘K"})]}),i?e("button",{type:"button",className:"header-button icon-button","aria-haspopup":"menu","aria-label":t("Folders and order"),onClick:(l)=>Ln(l.currentTarget),children:e(s,{name:"more",size:18})}):null,e("button",{type:"button",className:"header-button icon-button","aria-label":t("Add"),"aria-haspopup":"menu",onClick:(l)=>ln(l.currentTarget),children:e(s,{name:"plus"})})]})]}),R?n("div",{className:"arrange-bar",children:[n("button",{type:"button",className:"secondary",onClick:()=>Me({kind:"new"}),children:[e(s,{name:"plus",size:16}),e("span",{children:t("Add a folder")})]}),e("button",{type:"button",onClick:()=>Kn(!1),children:t("Done")})]}):null,i&&F&&!c?e(_,{children:t("No rooms yet. Rooms appear when the team has an agent.")}):null,!i?n("div",{className:"stack","aria-busy":"true",children:[e("div",{className:"skeleton"}),e("div",{className:"skeleton"}),e("div",{className:"skeleton"})]}):null,e(v,{title:t("Home"),rooms:z,...b}),e(v,{title:t("Pinned"),rooms:S,zone:{kind:"pinned",id:"pinned"},...b}),N.length>0?e("div",{className:"stack folder-list","data-folder-list":"",children:e(M,{fallback:e("div",{className:"skeleton","aria-busy":"true"}),children:e(O,{folders:N,active:a.active,listed:i,rooms:(l)=>e(P,{rooms:l,threads:L,active:a.active,arranging:R})})})}):null,N.length>0?e(v,{title:t("Ungrouped"),rooms:C,zone:{kind:"rest",id:"rest"},...b}):n(m,{children:[e(v,{title:t("Agents"),rooms:T,zone:{kind:"rest",id:"rest-agents"},...b}),e(v,{title:t("Groups"),rooms:D,zone:{kind:"rest",id:"rest-groups"},...b})]}),f.open.length+f.closed.length>0?n("section",{className:"stack",children:[e("h2",{className:"section-title",children:t("Dispatch threads")}),e(Jn,{open:f.open,closed:f.closed,active:a.active})]}):null,e(dr,{active:a.active})]})}export{re as ArrangedRoomsPage};
@@ -1 +0,0 @@
1
- import{Ue,Ft,F,ei,dn}from"./chunk-index-z9x4cnzf.js";import{J,tr,a,D,A,o,r,t,c,m,e,n,Zn,oe,y,u,O,cn,de,Ve,Te}from"./chunk-index-zynq0b0w.js";import{j}from"./chunk-index-w31c4yjv.js";import{I}from"./chunk-index-vcyzwtk2.js";var fe={"hat.none":"No hat","hat.goggcap":"Leather cap","hat.tallcap":"Burgundian felt cap","hat.softcap":"Soft cap","hat.hardhat":"Iron skullcap","hat.fcap":"Hunter's cap","hat.winghelm":"Winged helm","hat.helm":"Helm","hat.mortar":"Biretta","hat.beret":"Chaperon","hat.goggles":"Pointed cap","hat.tricorn":"Pilgrim hat","hat.sailor":"Straw hat","hat.kettle":"Kettle hat","hat.cavalier":"Feathered hat","hat.toque":"Linen cook's cap","hair.none":"No hair","beard.none":"No beard","accessory.none":"No accessory","prop.beads":"Prayer beads","prop.marotte":"Marotte","prop.map":"Chart","prop.flask":"Alchemist's phial","prop.telescope":"Astrolabe","prop.wrench":"Dividers","outfit.surplice":"Surplice","outfit.overalls":"Work jerkin","outfit.armor":"Mail hauberk","outfit.apron":"Smith's apron","outfit.chef":"Cook's tunic","outfit.coat":"Doublet","outfit.vest":"Pourpoint","outfit.sailor":"Mariner's tunic","hair.bob":"Bob","hair.bun":"Bun","hair.ponytail":"Ponytail"},Y=(i)=>i.charAt(0).toUpperCase()+i.slice(1);function S(i,l){let h=`character.${i}.${l}`,b=t(h);if(b!==h)return b;if(i==="class")return F.classes[l]?.label??Y(l);return fe[`${i}.${l}`]??Y(l)}function Z(i){let l=`character.jobs.${i}`,h=t(l);return h!==l?h:F.classes[i]?.jobs??""}var z=[{field:"hat",title:c("Hat"),ids:F.hats},{field:"outfit",title:c("Outfit"),ids:F.outfits},{field:"prop",title:c("Prop"),ids:F.props},{field:"hair",title:c("Hair"),ids:F.hair},{field:"beard",title:c("Beard"),ids:["none",...F.beards]},{field:"accessory",title:c("Accessory"),ids:["none",...F.accessories]}],me=new Set(["class","colors","palette","build","skin","hairColor",...z.map((i)=>i.field)]),re=Object.keys(F.palettes),ee={idle:c("Idle"),thinking:c("Thinking"),working:c("Working"),waiting:c("Waiting for you"),done:c("Done"),error:c("Error"),sleepy:c("Sleepy")},he={slim:c("Slim"),regular:c("Regular"),stout:c("Stout")};function W(i){return{class:i.class,outfit:i.outfit,hat:i.hat,prop:i.prop,hair:i.hair,beard:i.beard,accessory:i.accessory,build:i.build,skin:i.skin,hairColor:i.hairColor,colors:{...i.colors}}}var te=(i)=>JSON.stringify(W(i)),k=(i)=>i[Math.floor(Math.random()*i.length)];function be(){return{class:k(Ue),outfit:k(F.outfits),hat:k(F.hats),prop:k(F.props),hair:k(F.hair),beard:k(["none",...F.beards]),accessory:k(["none",...F.accessories]),build:k(["slim","regular","stout"]),skin:k([0,1,2,3,4,5]),hairColor:k(F.hairColors),palette:k(re)}}var ie=J(function(l){return n("button",{type:"button",className:"creator-tile","aria-pressed":l.pressed,title:l.hint?`${l.label} — ${l.hint}`:l.label,onClick:l.onPick,...l.data,children:[e(de,{spec:l.spec,size:l.size,live:!1}),e("span",{children:l.label})]})});function ge(i,l,h){let b=JSON.stringify({...i,[l]:0});return A(()=>h.map((d)=>({...i,[l]:d})),[b,l,h])}function pe(){let i=o(null),[l,h]=r();return a(()=>{let b=i.current;if(!b)return;let d=()=>{let v=b.scrollLeft>1,P=b.scrollLeft+b.clientWidth<b.scrollWidth-1;h(v&&P?"both":P?"end":v?"start":void 0)};d(),b.addEventListener("scroll",d,{passive:!0});let g=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return g?.observe(b),()=>{b.removeEventListener("scroll",d),g?.disconnect()}},[]),[i,l]}function ye(i){let{part:l}=i,h=ge(i.shown,l.field,l.ids),[b,d]=pe();return e("div",{className:"creator-strip",ref:b,"data-more":d,children:l.ids.map((g,v)=>e(ie,{data:{[`data-${l.field}`]:g},spec:h[v],size:44,label:S(l.field,g),pressed:i.draft[l.field]===g,onPick:()=>i.onPick(g)},g))})}function M(i){return e("button",{type:"button",className:"creator-swatch","aria-pressed":i.pressed,"aria-label":i.label,title:i.label,style:{background:i.background},onClick:i.onPick,...i.data})}function N(i){return n("div",{className:"creator-field","data-field":i.field,children:[i.title?e("h3",{children:i.title}):null,i.children,i.error?e("p",{className:"field-error",role:"alert",children:i.error}):null]})}function Me(i){let[l,h]=r(i.character),b=tr(l),[d,g]=r({}),[v,P]=r(!1),[T,ne]=r("idle"),[U,E]=r(),[R,_]=r(),G=Te("(max-width: 719px)"),V=o(null),B=D(),se=Ve(l),le=cn(),L=te(l)!==te(i.character);a(()=>h(i.character),[i.character]),a(()=>{if(!L||i.onPick)return;let s=(p)=>p.preventDefault(),f=(p)=>{if(p.button!==0||p.metaKey||p.ctrlKey||p.shiftKey||p.altKey)return;let w=p.target instanceof Element?p.target.closest("a"):null;if(!w||w.target||w.hasAttribute("download"))return;if(V.current?.contains(w))return;p.preventDefault(),p.stopPropagation(),E({kind:"link",anchor:w})},K=Zn((p)=>E({kind:"navigate",proceed:p}));return window.addEventListener("beforeunload",s),document.addEventListener("click",f,!0),()=>{K(),window.removeEventListener("beforeunload",s),document.removeEventListener("click",f,!0)}},[L,i.onPick]);let C=(s)=>{g({}),h((f)=>ei(s,f))},ce=async()=>{if(i.onPick){i.onPick(W(l),l);return}P(!0),g({});try{let s=await y.setCharacter(i.name,W(l));i.onSaved?.(s),O(t("Saved."))}catch(s){let f=s instanceof oe&&s.field?s.field.split(".")[0]:void 0,K=f&&me.has(f)?f:"*";g({[K]:u(s)})}finally{P(!1)}},ue=async()=>{let s=U;if(h(i.character),g({}),s?.kind==="link")setTimeout(()=>s.anchor.click(),0);else if(s?.kind==="navigate")s.proceed()},q=e(N,{field:"class",title:t("Class"),error:d.class,children:e("div",{className:"creator-grid",children:Ue.map((s)=>e(ke,{id:s,base:b,pressed:l.class===s,onPick:()=>C({class:s,colors:l.colors})},s))})}),x=n(N,{field:"colors",title:t("Colors"),error:d.colors??d.palette,children:[n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Palette")}),re.map((s)=>{let f=F.palettes[s];return e(M,{data:{"data-palette":s},label:S("palette",s),pressed:l.palette===s,background:`linear-gradient(135deg, ${f.primary} 52%, ${f.trim} 52%)`,onPick:()=>C({palette:s})},s)})]}),e("div",{className:"creator-custom",children:["primary","secondary","trim"].map((s)=>n("label",{children:[e("span",{children:s==="primary"?t("Primary (the accent)"):s==="secondary"?t("Secondary"):t("Trim")}),e("input",{type:"color",value:l.colors[s],onChange:(f)=>C({colors:{[s]:f.target.value}})})]},s))})]}),Q=z.map((s)=>e(N,{field:s.field,title:t(s.title),error:d[s.field],children:e(ye,{part:s,draft:l,shown:b,onPick:(f)=>C({[s.field]:f})})},s.field)),X=n(m,{children:[e(N,{field:"build",title:t("Build"),error:d.build,children:n("fieldset",{className:"segmented",children:[e("legend",{className:"visually-hidden",children:t("Build")}),["slim","regular","stout"].map((s)=>n("label",{"data-checked":l.build===s,children:[e("input",{type:"radio",name:`${B}-build`,checked:l.build===s,onChange:()=>C({build:s})}),ae(s)]},s))]})}),e(N,{field:"skin",title:t("Skin tone"),error:d.skin,children:n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Skin tone")}),(le??F.skins).map((s,f)=>e(M,{data:{"data-skin":String(f)},label:t("Skin tone {n}",{n:f+1}),pressed:l.skin===f,background:s,onPick:()=>C({skin:f})},f))]})}),e(N,{field:"hairColor",title:t("Hair color"),error:d.hairColor,children:n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Hair color")}),F.hairColors.map((s,f)=>e(M,{data:{"data-hair-color":s},label:t("Hair color {n}",{n:f+1}),pressed:l.hairColor===s,background:s,onPick:()=>C({hairColor:s})},s)),e("input",{type:"color","aria-label":t("Hair color"),value:l.hairColor,onChange:(s)=>C({hairColor:s.target.value})})]})})]}),H=[{id:"class",title:t("Class"),summary:S("class",l.class),error:d.class,node:q},{id:"colors",title:t("Colors"),summary:l.palette?S("palette",l.palette):l.colors.primary,error:d.colors??d.palette,node:x},...z.map((s,f)=>({id:s.field,title:t(s.title),summary:S(s.field,l[s.field]),error:d[s.field],node:Q[f]})),{id:"body",title:t("Body"),summary:ae(l.build),error:d.build??d.skin??d.hairColor,node:X}];return n("form",{ref:V,className:"creator",style:se,"aria-labelledby":B,onSubmit:(s)=>{if(s.preventDefault(),(L||i.onPick)&&!v)ce()},children:[e("h2",{id:B,className:"visually-hidden",children:t("Character of {name}",{name:i.displayName})}),n("div",{className:"creator-preview",children:[e(de,{spec:l,name:i.name,state:T,size:176,label:t("{name}, {state}",{name:i.displayName,state:t(ee[T])})}),e("button",{type:"button",className:"secondary","data-action":"cycle",onClick:()=>ne((s)=>Ft[(Ft.indexOf(s)+1)%Ft.length]??"idle"),children:t("Preview states")}),e("span",{className:"meta","aria-live":"polite",children:t(ee[T])})]}),n("div",{className:"creator-body",children:[d["*"]?e("p",{className:"field-error",role:"alert","data-field":"*",children:d["*"]}):null,G?e("ul",{className:"creator-sections",children:H.map((s)=>e("li",{children:n("button",{type:"button",className:"creator-section secondary",onClick:()=>_(s.id),children:[e("strong",{children:s.title}),e("span",{className:"meta",children:s.summary}),s.error?e("span",{className:"field-error",role:"alert",children:s.error}):null]})},s.id))}):n(m,{children:[q,x,Q,X]}),n("div",{className:"actions creator-actions",children:[e("button",{type:"button",className:"secondary","data-action":"suggest",onClick:()=>{g({}),h(dn({name:i.name,displayName:i.displayName,prompt:i.prompt}))},children:t("Suggest from role")}),e("button",{type:"button",className:"secondary","data-action":"randomize",onClick:()=>C(be()),children:t("Randomize")}),e("button",{type:"button",className:"secondary","data-action":"cancel",onClick:()=>{if(i.onCancel)i.onCancel();else if(L)E({kind:"cancel"})},children:t("Cancel")}),e("button",{type:"submit","data-action":"save",disabled:!L&&!i.onPick||v,children:v?t("Saving…"):i.onPick?t("Use this look"):t("Save")})]})]}),e(I,{open:G&&R!==void 0,title:H.find((s)=>s.id===R)?.title??"",onClose:()=>_(void 0),children:e("div",{className:"stack",children:H.find((s)=>s.id===R)?.node})}),e(j,{open:U!==void 0,title:t("Discard your changes?"),confirmLabel:t("Discard"),cancelLabel:t("Keep editing"),tone:"danger",onClose:()=>E(void 0),onConfirm:ue,children:e("p",{children:t("The new look for {name} has not been saved.",{name:i.displayName})})})]})}var ae=(i)=>t(he[i]);function ke(i){let l=i.base.colors,h=A(()=>ei({class:i.id,colors:l}),[i.id,l]);return e(ie,{data:{"data-class":i.id},spec:h,size:56,label:S("class",i.id),hint:Z(i.id),pressed:i.pressed,onPick:i.onPick})}export{Me as CharacterCreator};
@@ -1 +0,0 @@
1
- import{j}from"./chunk-index-w31c4yjv.js";import"./chunk-index-vcyzwtk2.js";export{j as Confirm};
@@ -1 +0,0 @@
1
- import{t,m,e,n,y,x,p,_,P,k}from"./chunk-index-zynq0b0w.js";import{Oe}from"./chunk-index-gr6e0hse.js";function g(){let{connectorAdminUrl:o}=k(),{data:r,error:s}=Oe(()=>y.connectors(),"connectors");return n("section",{className:"stack",children:[n("div",{className:"card-head",children:[n("div",{children:[e("h2",{children:t("Connectors")}),e("p",{className:"hint",children:t("Upstream MCP gateways and virtual servers used by the assistant.")})]}),o?e("a",{href:o,target:"_blank",rel:"noreferrer",children:t("Open connector admin")}):null]}),s?e(p,{message:s}):null,!r&&!s?e(x,{}):null,r?n(m,{children:[e("h3",{children:t("Upstream gateways")}),r.gateways.length===0?e(_,{children:t("No gateways.")}):null,r.gateways.map((a)=>e("article",{className:"card",children:n("div",{className:"card-head",children:[e("strong",{children:a.name}),e(P,{children:a.enabled?t("Enabled"):t("Disabled")}),e(P,{tone:a.reachable?"plain":"warn",children:a.reachable?t("Reachable"):t("Unreachable")}),e(P,{children:t("{count} tools",{count:a.tools})})]})},a.name)),e("h3",{children:t("Virtual servers")}),r.servers.length===0?e(_,{children:t("No virtual servers.")}):null,r.servers.map((a)=>n("article",{className:"card",children:[n("div",{className:"card-head",children:[e("strong",{children:a.name}),e(P,{children:t("{count} tools",{count:a.tools.length})})]}),n("p",{children:[t("Used by"),": ",a.usedBy.join(", ")||t("None")]}),n("details",{children:[e("summary",{children:t("Tool list")}),e("ul",{children:a.tools.map((l)=>e("li",{children:l},l))})]})]},a.name))]}):null]})}export{g as ConnectorsPage};
@@ -1 +0,0 @@
1
- import{t,c,m,e,n,S,y,x,p,_,P,k,De,te,ke,tn,Hn,ne}from"./chunk-index-zynq0b0w.js";import{Oe}from"./chunk-index-gr6e0hse.js";var u=[{kind:"owner",title:c("Owner channels"),note:c("Direct messages and channels where the owner talks to the assistant.")},{kind:"agent",title:c("Agent channels"),note:c("The agent server's one-to-one channels.")},{kind:"group",title:c("Group channels"),note:c("The agent server's group channels.")},{kind:"outside",title:c("Outside agents"),note:c("Conversations an agent outside Discord holds over MCP.")},{kind:"plugin",title:c("Plugin conversations"),note:c("Conversations a plugin runs, such as a web chat, as the host recorded them.")}];function Z(){let{timeZone:o}=k(),{now:i}=ne(),{data:s,error:a}=Oe(()=>y.conversations(),"conversations"),d=s?.conversations;if(!d)return a?e(p,{message:a}):e(x,{});return n(m,{children:[a?e(p,{message:a}):null,u.map((r)=>{let h=d.filter((l)=>l.kind===r.kind);return n("section",{className:"stack",children:[e("h2",{children:t(r.title)}),e("p",{className:"hint",children:t(r.note)}),h.length===0?e(_,{children:t("None stored.")}):null,h.map((l)=>e(g,{item:l,now:i,timeZone:o},l.key))]},r.kind)})]})}function g(o){let{item:i}=o,s=tn(i.channel,i.id),a=Hn(i);return n("a",{className:"card card-link",href:S("conversations",i.key),children:[n("div",{className:"card-head",children:[e("strong",{children:a}),i.busy>0?e(P,{tone:"busy",children:t("running")}):null,i.liveBytes===0?e(P,{children:t("archived only")}):null]}),n("p",{className:"meta",children:[(i.kind==="outside"||i.kind==="plugin")&&i.startedAt?`${t("Started")} ${te(i.startedAt,o.timeZone)} · `:s.detail?`${s.detail} · `:"",i.principal?`${i.visibility==="private"?t("Private to {name}",{name:i.principal.name}):t("Shared · {name}",{name:i.principal.name})} · `:"",t("Last active")," ",De(i.lastActive,o.now,o.timeZone)," ·"," ",ke(i.liveBytes)," ·"," ",t("{count} archived",{count:i.archives})]})]})}export{Z as ConversationsPage};
@@ -1 +0,0 @@
1
- import{Dt}from"./chunk-index-jw7dtshr.js";import{h}from"./chunk-index-zynq0b0w.js";function H(){try{let c=document.createElement("canvas");return!!(c.getContext("webgl2")||c.getContext("webgl"))}catch{return!1}}function x(c,n){return[c,n.includes("?")?n.slice(n.indexOf("?")):""].some((r)=>{let d=new URLSearchParams(r).get("nogl");return d!==null&&d!=="0"&&d!=="false"})}async function I(c,n,g){let r=n.variant==="compact",d=n.labels??Dt,l=new Map,T=(e)=>{l.clear();for(let t of e)l.set(t.id,{...t})};T(n.seats);let m={t:n.theme,s:n.scheme},a=null,o=document.createElement("div");o.className="rt-table",o.dataset.variant=r?"compact":"full";let f=document.createElement("div");f.className="rt-table-stage",o.appendChild(f);let i=null,E=!1,M=()=>!r&&(Boolean(n.listBelow)||E);c.appendChild(o);let u=new Map,S=()=>{if(!M()){i?.remove(),i=null,u.clear(),delete o.dataset.list;return}if(!i)i=document.createElement("ul"),i.className="rt-table-list",i.setAttribute("aria-label",d.table),o.appendChild(i),o.dataset.list="";for(let e of[...u.keys()])if(!l.has(e))u.delete(e);for(let e of l.values()){let t=u.get(e.id);if(!t){t=document.createElement("button"),t.type="button",t.dataset.seat=e.id;let s=e.id;t.addEventListener("click",()=>{let b=l.get(s);if(b)n.onSeatClick({id:b.id,name:b.name})}),u.set(e.id,t)}t.textContent=d.seat(e.name,e.state??"idle"),t.style.setProperty("--seat",e.color)}i.replaceChildren(...[...l.values()].map((e)=>{let t=document.createElement("li"),s=u.get(e.id);if(s)t.appendChild(s);return t}))};S();let y=(e)=>{E=!e,S(),n.onNames?.(e)},p=async()=>{let{createTable2D:e}=await (h("p3ezsdcj"),import("./chunk-table2d-p3ezsdcj.js"));a=e(f,{...n,theme:m.t,scheme:m.s,seats:[...l.values()]}),y(!0)},A=async()=>{let{createTable3D:e}=await (h("4x2n2b00"),import("./chunk-table3d-4x2n2b00.js"));a=e(f,{...n,theme:m.t,scheme:m.s,seats:[...l.values()],onNames:y},()=>{a?.dispose(),p()})};if(r||g==="svg"||g!=="webgl"&&(x(location.search,location.hash)||!H()))await p();else try{await A()}catch{await p()}let w,L=n.onSeatMenu;if(L&&!r){let{attachSeatMenu:e}=await (h("ys5v9abz"),import("./chunk-seat-menu-ys5v9abz.js"));w=e(o,(t,s,b)=>{let C=t instanceof Element?t.closest("[data-seat]")?.dataset.seat:void 0,v=l.get(C??a?.seatAt?.(s,b)??"");return v?{id:v.id,name:v.name}:void 0},L)}return{get kind(){return a.kind},setTheme(e,t){m={t:e,s:t},a.setTheme(e,t)},setSeats(e){T(e),S(),a.setSeats(e)},setState(e,t){let s=l.get(e);if(s)s.state=t;S(),a.setState(e,t)},setAvatar(e,t){let s=l.get(e);if(s)s.avatarSvg=t;return a.setAvatar(e,t)},setReducedMotion:(e)=>a.setReducedMotion(e),resetCamera:()=>a.resetCamera(),focus:(e,t)=>a.focus(e,t),focused:()=>a.focused(),seatAt:(e,t)=>a.seatAt?.(e,t)??null,getStats:()=>a.getStats(),dispose(){w?.(),a?.dispose(),o.remove()}}}export{I as mountRoundTable};
@@ -1 +0,0 @@
1
- import{h,a,D,t,xe,m,e,n,s,dt,d,ye,vt,Ri,Ei}from"./chunk-index-zynq0b0w.js";import{qi,Bi,Fi,Gi}from"./chunk-index-j214tczc.js";import{Xt}from"./chunk-index-2yebd9tb.js";import{ni}from"./chunk-index-zrvg23jd.js";var v=()=>(h("48ecgtkg"),import("./chunk-layout-actions-48ecgtkg.js")),y=(r)=>(h("q694dpgk"),import("./chunk-placement-items-q694dpgk.js")).then((o)=>o.folderMenu(r)),F=(r)=>({mode:"folder",key:r,item:(o)=>o.closest("[data-folder-block]"),root:(o)=>o.closest("[data-folder-block]")?.parentElement??null,onDrop:(o)=>{if(o.type==="folder")v().then((i)=>i.placeFolderBefore(r,o.before))},open:Fi});function k(r){let{id:o,name:i}=r,c=qi().has(o),l=r.holdsActive||!c,u=D(),b=Xt(()=>y(o),F(o)),N=(f)=>{y(o).then((g)=>{if(!g)return;let p=f.getBoundingClientRect();ye({...g,at:{x:p.left,y:p.bottom},via:"key",source:f})},()=>{return})};return n("section",{className:"folder","aria-label":i,"data-folder-block":"","data-key":o,"data-drop-zone":"folder","data-zone-id":o,"data-folder":o,"data-collapsed":l?void 0:"",children:[n("header",{className:"folder-head","data-folder-head":"",...b,children:[n("button",{type:"button",className:"folder-toggle","aria-expanded":l,"aria-controls":u,"aria-label":l?t("Collapse {name}",{name:i}):t("Expand {name}",{name:i}),onClick:()=>Bi(o),children:[e(s,{name:"chevron",size:16,className:"folder-chevron","data-open":l||void 0}),e("strong",{children:i}),e("span",{className:"meta",children:xe(r.count,"{count} room","{count} rooms")}),l?null:r.stack]}),r.muted==="none"?null:e(s,{name:"bell-off",size:14,className:"muted-mark","data-partial":r.muted==="some"||void 0,role:"img","aria-hidden":!1,"aria-label":r.muted==="all"?t("Notifications are off"):t("Some notifications are off")}),l?null:r.summary,e("button",{type:"button",className:"icon-button folder-more","aria-haspopup":"menu","aria-label":t("Folder menu"),onClick:(f)=>N(f.currentTarget),children:e(s,{name:"more",size:18})})]}),e("div",{id:u,className:"folder-body",hidden:!l,children:l?r.count===0?e("p",{className:"meta folder-empty",children:t("No rooms in this folder yet.")}):r.children:null})]})}var R=4;function S(r){let o=r.rooms.slice(0,R),i=d((l)=>o.map((u)=>l.rooms[u]?.view),o.join(",")),c=r.rooms.length-o.length;return n("span",{className:"folder-stack","aria-hidden":"true",children:[i.map((l)=>l?e("span",{className:"folder-stack-item",children:e(vt,{view:l,size:28})},l.key):null),c>0?n("span",{className:"folder-stack-more",children:["+",c]}):null]})}function M(r){let o=d((i)=>({waiting:r.rooms.reduce((c,l)=>c+dt(i,l),0),typing:r.rooms.some((c)=>i.rooms[c]?.typing)}),r.rooms.join(","));return n(m,{children:[o.typing?e(Ri,{}):null,o.waiting?e(Ei,{count:o.waiting}):null]})}function w(r){return d((o)=>ni(r,(i)=>o.rooms[i]?.view?.muted===!0),r.join(","))}function Q(r){let o=r.folders.map((i)=>i.id).join(",");return a(()=>{if(r.listed)Gi(o?o.split(","):[])},[r.listed,o]),e(m,{children:r.folders.map((i)=>e(C,{folder:i,...r},i.id))})}function C(r){let{folder:o}=r,i=w(o.rooms);return e(k,{id:o.id,name:o.name,count:o.rooms.length,holdsActive:r.active!==void 0&&o.rooms.includes(r.active),muted:i,summary:e(M,{rooms:o.rooms}),stack:e(S,{rooms:o.rooms}),children:r.rooms(o.rooms)})}export{Q as FolderList};
@@ -1 +0,0 @@
1
- import{qi,Bi,Fi,Gi}from"./chunk-index-j214tczc.js";export{Fi as expandFolder,Gi as pruneCollapsed,Bi as toggleCollapsed,qi as useCollapsed};
@@ -1 +0,0 @@
1
- import{t,e,n,s,S}from"./chunk-index-zynq0b0w.js";import{On,Wt}from"./chunk-index-snzzfhk3.js";function l({steps:p}){return n("div",{className:"page",children:[e("header",{className:"page-head",children:e("h1",{children:t("Finish setting up")})}),e("p",{className:"meta",children:t("These steps come first. The rest of the app opens when they are done.")}),e("ul",{className:"menu",children:p.map((a)=>e("li",{children:n("a",{className:"menu-item menu-link",href:S(a.open.page),children:[n("span",{className:"menu-text",children:[e("strong",{children:On(a)}),Wt(a)?e("span",{className:"meta",children:Wt(a)}):null]}),e(s,{name:"chevron",size:16})]})},a.id))})]})}export{l as GatePage};
@@ -1 +0,0 @@
1
- import{r,e,n}from"./chunk-index-zynq0b0w.js";import"./chunk-index-yzsgsvnp.js";import"./chunk-index-0fmmvgee.js";import"./chunk-index-rnxj3z8k.js";import{Ut}from"./chunk-index-7xffskfa.js";import{qr,Br,Ui,Xn}from"./chunk-index-b6ca02e8.js";import"./chunk-index-vcyzwtk2.js";function b(i){let{roomKey:o,members:m}=i,{line:s}=Ui(o),[l,a]=r(),u=Br(qr(s,m),s?.id,l),t=(f)=>a({lineId:s?.id,member:f});return n("div",{className:"table-frame room-scene","data-focused":"",children:[e(Ut,{members:m,groupRoom:o,variant:"full",focus:u,onFocus:t,onSeat:t}),e(Xn,{roomKey:o,open:!0,streams:!1})]})}export{b as GroupScene};
@@ -1 +0,0 @@
1
- import{nr,t,m,e,n,s,d,We}from"./chunk-index-zynq0b0w.js";import"./chunk-index-yzsgsvnp.js";import"./chunk-index-0fmmvgee.js";import"./chunk-index-rnxj3z8k.js";import{Ut}from"./chunk-index-7xffskfa.js";var i=(o,a)=>a?nr(o,a):o;function T(o){let a=d((c)=>c.rooms[o.roomKey]?.view),r=We();if(!a||a.kind!=="group")return null;let l=a.members??[];return n(m,{children:[n("button",{type:"button",className:"icon-button group-table-button","aria-label":t("Table"),"aria-pressed":o.scene,onClick:()=>o.onScene(!o.scene),children:[e(s,{name:"table"}),e("span",{className:"group-table-label",children:t("Table")})]}),r==="camelot"&&!o.scene?i(e("div",{className:"group-strip",children:e(Ut,{members:l,groupRoom:o.roomKey,variant:"compact"})}),o.slot):null]})}export{T as GroupTable};
@@ -1 +0,0 @@
1
- import"./chunk-index-eg55mqqe.js";
@@ -1 +0,0 @@
1
- import{Ke}from"./chunk-index-73gh7kgr.js";export{Ke as HostPicture};
@@ -1 +0,0 @@
1
- import{fr,Qe,hr,pr,mr,Ci,Ai,Or,qs}from"./chunk-index-rnxj3z8k.js";export{Or as keepCards,Ai as keepReads,mr as noCards,pr as noReads,qs as onFrame,Ci as seedUnread,fr as subscribeHost,hr as totalUnread,Qe as useHost};
@@ -1 +0,0 @@
1
- import{J,X,a,D,yt,A,o,r,t,xe,m,e,n,s,S,Wn,b,d,oe,u,O,x,p,_,P,Vt,Sn,Pt,k,rr,De,qt,yi,rn,sn,Mt,ne,un,Te,lr,Pe}from"./chunk-index-zynq0b0w.js";import{vn}from"./chunk-index-yzsgsvnp.js";import{pi,cs,ze,mi}from"./chunk-index-0fmmvgee.js";import{j}from"./chunk-index-w31c4yjv.js";import{Qe,pr,mr,Ci,Ai,Or}from"./chunk-index-rnxj3z8k.js";import{je,Ke}from"./chunk-index-73gh7kgr.js";import{Vi}from"./chunk-index-5yzfrf7b.js";import"./chunk-index-eg55mqqe.js";import{ue}from"./chunk-index-ybtvvx85.js";import"./chunk-index-vcyzwtk2.js";function Be(l){let i={};for(let c of l)if(c.type==="multiselect")i[c.name]=[...He(c.initial)];else i[c.name]=He(c.initial)[0]??"";return i}var He=(l)=>l===void 0?[]:typeof l==="string"?[l]:[...l];function Ge(l,i){let c={};for(let f of l){let y=i[f.name];if(y===void 0||y===""||y.length===0)continue;c[f.name]=y}return c}function We(l){let{field:i,value:c}=l,[f,y]=r(""),w=i.search?i.options.filter((g)=>g.label.toLowerCase().includes(f.trim().toLowerCase())):i.options,v=i.search?e("input",{type:"search",value:f,placeholder:t("Search…"),"aria-label":t("Search {name}",{name:i.label}),onChange:(g)=>y(g.target.value)}):null;if(i.type==="select")return n(m,{children:[v,n("select",{id:l.id,value:String(c),required:i.required===!0,"aria-describedby":l.described,...i.search?{size:6}:{},onChange:(g)=>l.onChange(g.target.value),children:[i.required?null:e("option",{value:"",children:t("None")}),w.map((g)=>e("option",{value:g.value,children:g.label},g.value))]})]});let h=new Set(Array.isArray(c)?c:[]);return n(m,{children:[v,e("fieldset",{"aria-describedby":l.described,children:w.map((g)=>n("label",{children:[e("input",{type:"checkbox",checked:h.has(g.value),onChange:(R)=>{let H=new Set(h);if(R.target.checked)H.add(g.value);else H.delete(g.value);l.onChange(i.options.filter((F)=>H.has(F.value)).map((F)=>F.value))}}),g.label]},g.value))})]})}function Ze(l){let{field:i,value:c}=l,f=D(),y="hint"in i?i.hint:void 0,w=l.error||y?`${f}-note`:void 0,v;if("options"in i)v=e(We,{field:i,id:f,value:c,described:w,onChange:l.onChange});else if(i.type==="textarea")v=e("textarea",{id:f,rows:5,value:String(c),maxLength:i.max??8000,required:i.required===!0,"aria-describedby":w,onChange:(h)=>l.onChange(h.target.value)});else v=e("input",{id:f,type:i.type==="url"?"url":"text",value:String(c),maxLength:i.max??500,required:i.required===!0,"aria-describedby":w,onChange:(h)=>l.onChange(h.target.value)});return n("div",{className:"host-field",children:[i.type==="multiselect"?e("span",{className:"field-label",children:i.label}):e("label",{htmlFor:f,children:i.label}),v,l.error||y?e("span",{id:`${f}-note`,className:l.error?"field-error":"hint",role:l.error?"alert":void 0,children:l.error??y}):null]})}function ie(l){let{spec:i}=l,[c,f]=r(()=>Be(i.fields)),[y,w]=r(!1),[v,h]=r();return n("form",{className:"host-form",onSubmit:async(R)=>{if(R.preventDefault(),y)return;w(!0),h(void 0);try{h(await l.onSubmit(Ge(i.fields,c)))}catch(H){h({error:u(H)})}finally{w(!1)}},children:[i.fields.map((R)=>e(Ze,{field:R,value:c[R.name]??"",error:v?.field===R.name?v.error:void 0,onChange:(H)=>f((F)=>({...F,[R.name]:H}))},R.name)),v&&!i.fields.some((R)=>R.name===v.field)?e(p,{message:v.error}):null,n("div",{className:"actions",children:[l.onCancel?e("button",{type:"button",className:"secondary",disabled:y,onClick:l.onCancel,children:t("Cancel")}):null,e("button",{type:"submit",disabled:y,children:i.submit})]})]})}function Ye(l){if(!l.ok)return{error:pi(l.error),...l.field?{field:l.field}:{}};if(l.notice)O(l.notice);if(l.open)mi(l.open);return}function Z(l){let[i,c]=r(),[f,y]=r(!1),w=async(h,g)=>Ye(await l.run(h,g)),v=async(h)=>{if(h.form||h.confirm){c(h);return}y(!0);try{let g=await w(h,{});if(g)O(g.error,"danger")}catch(g){O(u(g),"danger")}finally{y(!1)}};if(l.actions.length===0)return null;return n("div",{className:l.className??"host-actions",children:[l.actions.map((h)=>e("button",{type:"button",className:h.style==="danger"?"danger":h.style==="secondary"?"secondary":"",disabled:f,onClick:()=>v(h),children:h.label},h.id)),i?.form?e(ue,{open:!0,title:i.form.title,onClose:()=>c(void 0),children:e(ie,{spec:i.form,onCancel:()=>c(void 0),onSubmit:async(h)=>{let g=await w(i,h);if(!g)c(void 0);return g}})}):i?e(j,{open:!0,title:i.label,confirmLabel:i.label,tone:i.style==="danger"?"danger":"primary",onConfirm:async()=>{let h=await w(i,{});if(h)throw Error(h.error)},onClose:()=>c(void 0),children:e("p",{children:i.confirm})}):null]})}var Re=/^file:([A-Za-z0-9_-]{1,64})$/;function Ae(l){let i=URL.parse(l,document.baseURI);return i!==null&&i.origin===window.location.origin}function Xe({id:l,alt:i}){return e("img",{className:"file-image",src:`api/files/${encodeURIComponent(l)}`,alt:i,loading:"lazy",decoding:"async",onError:(c)=>{let f=document.createElement("span");f.textContent=i||t("Image"),c.currentTarget.replaceWith(f)}})}var G=J(function({source:i}){return e("div",{className:"prose",children:e(Vt,{remarkPlugins:[Pt],urlTransform:(c)=>Re.test(c)?c:Sn(c),components:{a:({href:c,children:f})=>c&&/^https?:\/\//.test(c)&&!Ae(c)?e("a",{href:c,target:"_blank",rel:"noreferrer noopener",children:f}):c&&Ae(c)?e("a",{href:c,children:f}):e("span",{children:f}),img:({src:c,alt:f})=>{let y=typeof c==="string"?Re.exec(c):null;return y?.[1]?e(Xe,{id:y[1],alt:f??""}):e("span",{children:f})},pre:rr,table:({children:c})=>e("div",{className:"table-wrap",children:e("table",{children:c})})},children:i})})});function Je(l){switch(l??"open"){case"working":return t("Working…");case"done":return t("Done");case"superseded":return t("Replaced");case"expired":return t("Expired");default:return""}}var ge=(l)=>(l.state??"open")==="open";function ee(l){let{card:i}=l,c=Je(i.state);return n("article",{className:"host-card","data-tone":i.tone??"note","data-state":i.state??"open",children:[n("header",{children:[e("h3",{children:i.title}),c?e(P,{tone:i.state==="working"?"busy":"plain",children:c}):null]}),i.body?e(G,{source:i.body}):null,i.links?.length?e("div",{className:"host-card-links",children:i.links.map((f)=>e("a",{href:f.url,...f.url.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:f.label},`${f.url}`))}):null,ge(i)&&i.buttons?.length?e(Z,{actions:i.buttons,run:l.run}):null]})}je();function et(){let[l,i]=r(()=>vn().toString());return a(()=>{let c=()=>i(vn().toString());return window.addEventListener("popstate",c),window.addEventListener("hashchange",c),()=>{window.removeEventListener("popstate",c),window.removeEventListener("hashchange",c)}},[]),l}function tt(l){if(!l.ok)return{error:pi(l.error),...l.field?{field:l.field}:{}};if(l.notice)O(l.notice);if(l.open)mi(l.open);return}function nt(l){let{section:i}=l;switch(i.kind){case"markdown":return e(G,{source:i.text});case"card":return e(ee,{card:i.card,run:l.run});case"form":return n("section",{className:"stack",children:[e("h2",{className:"section-title",children:i.form.title}),e(ie,{spec:i.form,onSubmit:(c)=>l.submit(i.action,c)})]});case"list":return n("section",{className:"stack",children:[i.title?e("h2",{className:"section-title",children:i.title}):null,i.rows.length===0?e(_,{children:t("Nothing here.")}):null,e("ul",{className:"host-list",children:ot(i.rows).map(([c,f])=>n("li",{children:[f.attention?e("span",{className:"attention-dot",role:"img","aria-label":t("Needs attention")}):null,n("div",{className:"host-list-main",children:[f.open?e("a",{href:f.open,...f.open.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:f.title}):e("strong",{children:f.title}),f.subtitle?e("span",{children:f.subtitle}):null]}),f.actions?.length?e(Z,{actions:f.actions,run:l.run}):null]},c))})]})}}function rt({routeKey:l}){let i=l??"",c=et(),f=Qe((H)=>H.pages[i]??0),[y,w]=r(0),[v,h]=r({});a(()=>{let H=!0;return ze.page(i,Object.fromEntries(new URLSearchParams(c))).then((F)=>H&&h({page:F}),(F)=>{if(!H)return;let C=F instanceof oe&&F.status===404;h((L)=>({...C||!L.page?{}:{page:L.page},error:u(F),gone:C}))}),()=>{H=!1}},[i,c,f,y]);let g=async(H,F)=>{let C=await ze.pageAct(i,{action:H,input:F}),L=tt(C);if(!L)w((V)=>V+1);return L},R=async(H,F)=>{let C=await ze.pageAct(i,{action:H.id,input:F});if(C.ok)w((L)=>L+1);return C};if(v.gone)return e("div",{className:"page",children:e(_,{children:t("This page is not available.")})});if(!v.page)return e("div",{className:"page",children:v.error?e(p,{message:v.error}):e(x,{})});return n("div",{className:"page",children:[e("header",{className:"page-head",children:e("h1",{children:v.page.title})}),v.error?e(p,{message:v.error}):null,v.page.sections.map((H,F)=>e(nt,{section:H,run:R,submit:g},F))]})}function ot(l){let i=new Map;return l.map((c)=>{let f=i.get(c.title)??0;return i.set(c.title,f+1),[`${c.title}:${f}`,c]})}var st=/https?:\/\/[^\s<>"']+/g,it=/[.,;:!?)\]}\u3001\u3002\uff0c\uff1b\uff1a\uff01\uff1f\uff09\u300d\u300f]+$/;function at(l){let i=l.replace(it,""),c=URL.parse(i);return c&&(c.protocol==="https:"||c.protocol==="http:")?i:""}function Ce({text:l}){let i=[],c=0;for(let f of l.matchAll(st)){let y=at(f[0]);if(y==="")continue;let w=f.index;if(w>c)i.push(l.slice(c,w));i.push(e("a",{href:y,target:"_blank",rel:"noreferrer noopener",children:y},`${w}`)),c=w+y.length}if(c<l.length)i.push(l.slice(c));return e("span",{className:"plain",children:i})}var Se=J(function(i){let{message:c}=i,f=c.authorKind??"external";if(f==="notice")return n("li",{className:"host-notice","data-mid":c.id,"data-highlight":i.highlighted||void 0,"data-enter":i.enter||void 0,children:[e(s,{name:"bell",size:14}),e(G,{source:c.text}),e("time",{dateTime:c.at,children:qt(c.at,i.timeZone)})]});let y=f==="member"&&c.principalId!==void 0&&c.principalId===i.me;return n("li",{className:"message","data-mid":c.id,"data-author":f,"data-mine":y||void 0,"data-header":i.header||void 0,"data-enter":i.enter||void 0,"data-highlight":i.highlighted||void 0,children:[y?null:e("span",{className:"message-avatar",children:i.header?e(Ke,{picture:c.picture,name:c.author}):null}),n("div",{className:"message-main",children:[i.header?n("div",{className:"message-meta",children:[e("strong",{children:c.author}),c.authorLabel?e("span",{className:"label-chip",children:c.authorLabel}):null,e("time",{dateTime:c.at,children:qt(c.at,i.timeZone)})]}):null,n("div",{className:"bubble",children:[c.text?f==="assistant"?e(G,{source:c.text}):e(Ce,{text:c.text}):null,e(Mt,{files:c.files}),c.expiredFiles?e("p",{className:"message-expired",children:xe(c.expiredFiles,"{count} file was removed","{count} files were removed")}):null]}),c.edited?e("span",{className:"message-edited",children:t("edited")}):null]})]})});je();var lt=3;function ct({marks:l}){let[i,c]=r(!1);return n("li",{className:"seen",children:[n("button",{type:"button",className:"seen-toggle","aria-expanded":i,onClick:()=>c((f)=>!f),children:[l.slice(0,lt).map((f)=>e(Ke,{picture:{principal:f.principal},name:f.name,size:16},f.principal)),e("span",{children:t("Seen by {count}",{count:l.length})})]}),i?e("span",{className:"seen-names",children:l.map((f)=>f.name).join(t(", "))}):null]})}function dt(l,i){let c=Pe(),f=d((y)=>y.connects);a(()=>{let y=i.current;if(!y)return;let w=0,v=0,h,g,R=()=>{if(g=void 0,document.visibilityState!=="visible")return;let C=y.getBoundingClientRect(),L=0;for(let U of y.querySelectorAll("[data-mid]")){let q=U.getBoundingClientRect();if(q.bottom>C.top&&q.top<C.bottom-4)L=Math.max(L,Number(U.dataset.mid))}if(L<=w)return;let V=v+1000-Date.now();if(V>0){clearTimeout(h),h=setTimeout(H,V);return}if(c.send({type:"read",room:l,upTo:L}))w=L,v=Date.now()},H=()=>{if(g===void 0)g=requestAnimationFrame(R)};y.addEventListener("scroll",H,{passive:!0}),document.addEventListener("visibilitychange",H),window.addEventListener("resize",H);let F=new MutationObserver(H);return F.observe(y,{childList:!0,subtree:!0}),H(),()=>{if(y.removeEventListener("scroll",H),document.removeEventListener("visibilitychange",H),window.removeEventListener("resize",H),F.disconnect(),clearTimeout(h),g!==void 0)cancelAnimationFrame(g)}},[c,l,i,f])}function ae(l){let{roomKey:i}=l;dt(i,l.scroller);let c=d((g)=>g.principal?.id),f=d((g)=>g.rooms[i]?.messages),y=Qe((g)=>g.reads[i]??pr),w=Qe((g)=>g.cursor[i]),v=o(void 0);if(v.current===void 0&&w!==void 0)v.current=w;let h=A(()=>{let R=(f??[]).filter((C)=>C.kind!=="system"),H=v.current===void 0?void 0:R.find((C)=>C.id>(v.current??0)&&(C.principalId===void 0||C.principalId!==c))?.id,F=new Map;for(let C of y){if(C.principal===c)continue;let L=R.findLast((V)=>V.id<=C.upTo);if(L)F.set(L.id,[...F.get(L.id)??[],C])}return{before:(C)=>C.id===H?e("li",{className:"new-divider",children:e("span",{children:t("New messages")})}):null,after:(C)=>{let L=F.get(C.id);return L?e(ct,{marks:L}):null},...l.host?{message:(C,L)=>C.kind==="system"&&C.authorKind===void 0?void 0:e(Se,{message:C,header:L.header,enter:L.enter,timeZone:L.timeZone,me:c,highlighted:l.highlight===C.id})}:{}}},[f,y,c,l.host,l.highlight]);return e(un,{roomKey:i,enterAfter:l.enterAfter,quotable:l.quotable,decor:h})}je();var ut=20,mt=2600,Ee;function ft(l,i,c){let f=d((h)=>h.connects),y=Qe((h)=>h.rooms[l]??0),[w,v]=r({view:void 0,error:void 0,gone:!1});return a(()=>{let h=!0;return ze.open(i,c).then((g)=>{if(!h)return;b.dispatch({type:"history_loaded",room:l,messages:g.messages,more:g.more,older:!1}),Ai(l,g.reads,g.cursor),Or(l,g.cards),v({view:g,error:void 0,gone:!1})},(g)=>{if(!h)return;let R=g instanceof oe&&g.status===404;v((H)=>({view:R?void 0:H.view,error:u(g),gone:R}))}),()=>{h=!1}},[l,i,c,f,y]),w}function pt(l){let{header:i}=l;return n(m,{children:[i.banner?e("p",{className:"host-banner","data-tone":i.banner.tone,role:"status",children:i.banner.text}):null,i.fields.length?e("dl",{className:"host-head-fields",children:i.fields.map((c)=>n("div",{children:[e("dt",{children:c.label}),e("dd",{children:c.link?e("a",{href:c.link,...c.link.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:c.value}):c.value})]},`${c.label}:${c.value}`))}):null,e(Z,{className:"host-actions bar",actions:i.actions,run:l.run})]})}function gt(l){let i=Qe((R)=>R.cards[l.room]??mr),c=Te("(min-width: 720px) and (min-height: 760px)"),[f,y]=r();if(i.length===0)return null;let w=i.filter((R)=>ge(R)||R.state==="working"),v=i.filter((R)=>!w.includes(R)),h=f??(c&&w.length>0),g=w[0];return n("div",{className:"host-cards","data-open":h||void 0,children:[n("button",{type:"button",className:"host-cards-toggle","aria-expanded":h,onClick:()=>y(!h),children:[e(s,{name:"chevron",size:14}),g?n("span",{children:[e("strong",{children:xe(w.length,"{count} card waiting","{count} cards waiting")}),`: ${g.title}`]}):e("span",{children:t("Earlier cards ({count})",{count:v.length})})]}),h?n("div",{className:"host-cards-body",children:[w.map((R)=>e(ee,{card:R,run:l.run(R.id)},R.id)),v.length?n("details",{className:"host-cards-older",children:[e("summary",{children:t("Earlier cards ({count})",{count:v.length})}),v.map((R)=>e(ee,{card:R,run:l.run(R.id)},R.id))]}):null]}):null]})}function ht({roomKey:l}){let i=Pe(),c=cs(l),f=c?.kind??"",y=c?.id??"",{view:w,error:v,gone:h}=ft(l,f,y),g=d((N)=>N.rooms[l]),R=d((N)=>N.limits),H=d((N)=>N.connects),F=d((N)=>N.connection==="open"),C=o(null),L=o(null),{away:V,onScroll:U,onGrow:q,toEnd:W}=lr(C),[te,E]=r(!1),[M,Q]=r(),[ce,Me]=r(Ee),[Ve,Ie]=r(!1),[Oe,be]=r(),de=o(void 0),Y=o(void 0),I=w!==void 0;if(a(()=>{if(!c||h||!I)return;return i.send({type:"subscribe",room:l}),i.focus(l),()=>{i.focus(void 0),i.send({type:"unsubscribe",room:l})}},[i,l,H,h,I]),I&&de.current===void 0)de.current=g?.messages.at(-1)?.id??0;yt(()=>{if(I)W(!1)},[I]),yt(()=>{let N=C.current;if(N&&Y.current!==void 0)N.scrollTop+=N.scrollHeight-Y.current,Y.current=void 0},[g?.messages[0]?.id]),a(()=>{let N=L.current;if(!N||typeof ResizeObserver>"u")return;let T=new ResizeObserver(q);return T.observe(N),()=>T.disconnect()},[q]);let me=X(async()=>{let N=b.getState().rooms[l]?.messages[0];if(!N)return!1;let T=await ze.older(f,y,N.id,Wn);return b.dispatch({type:"history_loaded",room:l,messages:T.messages,more:T.more,older:!0}),Ai(l,T.reads,void 0),T.more},[l,f,y]),re=o(void 0);a(()=>{let N=()=>{let T=Number(vn().get("message"));re.current=Number.isSafeInteger(T)&&T>0?T:void 0};return N(),window.addEventListener("popstate",N),()=>window.removeEventListener("popstate",N)},[]);let fe=g?.messages[0]?.id,ye=g?.more===!0;a(()=>{let N=re.current,T=C.current;if(!I||N===void 0||!T)return;let z=T.querySelector(`[data-mid="${N}"]`);if(z){re.current=void 0,z.scrollIntoView({block:"center"}),be(N),requestAnimationFrame(()=>T.dispatchEvent(new Event("scroll"))),setTimeout(()=>be(void 0),mt);return}if(fe!==void 0&&N<fe&&ye){let K=0;(async()=>{if(K+=1,!await me().catch(()=>!1)||K>=ut)re.current=void 0})()}},[I,fe,ye,g?.messages.length,me]);let ve=(N,T={},z)=>ze.act(f,y,{action:N.id,...z===void 0?{}:{card:z},input:T}),qe=(N,T)=>ve(N,T),_e=(N)=>(T,z)=>ve(T,z,N);if(h||!I&&!v&&!c)return e("section",{className:"room",children:n("div",{className:"page",children:[e(_,{children:t("This room is not available.")}),e("a",{className:"back",href:S("rooms"),children:t("Back to rooms")})]})});let B=w?.access.send??[],pe=B.length>1,we=pe&&Ve,ke=ce&&B.includes(ce)?ce:B.includes("turn")?"turn":B[0],Ne=we||ke==="turn",Ue=Ne?w?.wording?.turn?.placeholder??t("Ask AI…"):w?.wording?.note?.placeholder??t("Write an internal note…"),se=w?.header.title??l,$e=g?.messages??[];return n("section",{className:"room",onDragOver:(N)=>{if(B.length&&N.dataTransfer.types.includes("Files"))N.preventDefault()},onDrop:(N)=>{if(!B.length||!N.dataTransfer.files.length)return;N.preventDefault(),Q([...N.dataTransfer.files])},children:[n("header",{className:"room-head",children:[e("a",{className:"icon-button room-back",href:S("rooms"),"aria-label":t("Back to rooms"),children:e(s,{name:"back"})}),e(Ke,{name:se,size:40}),n("div",{className:"room-title",children:[e("h1",{children:se}),e("span",{className:"room-status","data-working":g?.typing||void 0,children:g?.typing?t("Working…"):t("Host room")})]})]}),!F?n("div",{className:"offline-banner",role:"status",children:[e("span",{className:"spinner","aria-hidden":"true"}),t("Reconnecting… messages wait here until it is back.")]}):null,w?e(pt,{header:w.header,run:qe}):null,e("div",{className:"room-scroll",ref:C,onScroll:U,children:n("div",{className:"room-content",ref:L,children:[v?e(p,{message:v}):null,!I&&!v?e(x,{}):null,g?.more?e("button",{type:"button",className:"secondary older",disabled:te,onClick:async()=>{E(!0),Y.current=C.current?.scrollHeight;try{await me()}catch(N){Y.current=void 0,O(u(N),"danger")}finally{E(!1)}},children:te?t("Loading…"):t("Load earlier messages")}):null,I&&$e.length===0?e(_,{children:t("No messages yet.")}):null,e(ae,{roomKey:l,enterAfter:de.current,quotable:!1,scroller:C,host:!0,highlight:Oe}),g?.typing?e(sn,{name:se,progress:g.progress}):null]})}),V?n("button",{type:"button",className:"to-end",onClick:()=>W(!0),children:[e(s,{name:"send",size:16,style:{transform:"rotate(180deg)"}}),t("Latest")]}):null,w?e(gt,{room:l,run:_e}):null,w&&B.length===0?e("p",{className:"room-note",children:t("You can read this room but not write in it.")}):null,w&&B.length>0?e(m,{children:e(rn,{draftKey:l,name:se,placeholder:Ue,onAddressed:Ie,...pe?{above:e(Vi,{on:Ne,label:w?.wording?.turn?.label??t("@AI"),...we?{locked:t("The message starts with @AI, so the agent answers.")}:{},onChange:(N)=>{let T=N?"turn":"note";Ee=T,Me(T)}})}:{},limits:R,stoppable:Boolean(g?.stoppable),onSend:(N,T,z)=>{if(pe&&z){let K=yi(N);i.say(l,K===""&&T.length===0?N:K,T,"turn")}else i.say(l,N,T,ke);W(!0)},onStop:()=>i.send({type:"stop",room:l}),...M?{incoming:M,onIncomingTaken:()=>Q(void 0)}:{}},l)}):null]})}je();function le({room:l}){let i=Qe((c)=>c.unread[l]??0);if(i<=0)return null;return e("span",{className:"unread-mark",role:"img","aria-label":xe(i,"{count} unread message","{count} unread messages"),children:i>99?"99+":i})}je();var bt=6,vt=250;function he(l){let{kind:i}=l,{timeZone:c}=k(),{now:f}=ne(),y=d((E)=>E.connects),w=Qe((E)=>E.lists[i]??0),[v,h]=r(""),[g,R]=r(""),[H,F]=r(),[C,L]=r(),[V,U]=r(),[q,W]=r(!1);a(()=>{let E=setTimeout(()=>R(v.trim()),vt);return()=>clearTimeout(E)},[v]),a(()=>{let E=!0;return ze.list(i,g||void 0).then((M)=>{if(!E)return;Ci(Object.fromEntries(M.rooms.map((Q)=>[Q.key,Q.unread??0]))),F(M.rooms),L(M.cursor),U(void 0)},(M)=>E&&U(u(M))),()=>{E=!1}},[i,g,y,w]);let te=async()=>{if(!C||q)return;W(!0);try{let E=await ze.list(i,g||void 0,C);Ci(Object.fromEntries(E.rooms.map((M)=>[M.key,M.unread??0]))),F((M)=>[...M??[],...E.rooms]),L(E.cursor)}catch(E){U(u(E))}finally{W(!1)}};return n("section",{className:"stack",children:[n("h2",{className:"section-title",children:[l.icon?e(s,{name:l.icon,size:14,className:"section-icon"}):null,l.label]}),H&&(H.length>=bt||g||v)?e("input",{type:"search",className:"kind-filter",value:v,placeholder:t("Search {name}",{name:l.label}),"aria-label":t("Search {name}",{name:l.label}),onChange:(E)=>h(E.target.value)}):null,V?e(p,{message:V}):null,!H&&!V?n("div",{className:"stack","aria-busy":"true",children:[e("div",{className:"skeleton"}),e("div",{className:"skeleton"})]}):null,H&&H.length===0?e(_,{children:g?t("Nothing matches."):t("No rooms yet.")}):null,H&&H.length>0?e("ul",{className:"room-list",children:H.map((E)=>e("li",{children:n("a",{className:"room-row",href:S("room",E.key),"aria-current":E.key===l.active?"page":void 0,children:[n("span",{className:"kind-row-picture",children:[e(Ke,{picture:E.picture,name:E.title,size:44}),E.attention?e("span",{className:"attention-dot",role:"img","aria-label":t("Needs attention")}):null]}),n("span",{className:"room-row-main",children:[n("span",{className:"room-row-top",children:[e("strong",{children:E.title}),e(le,{room:E.key}),e("span",{className:"room-row-time",children:E.lastAt?De(E.lastAt,f,c):""})]}),e("span",{className:"room-row-preview",children:e("span",{children:E.subtitle??""})})]}),e(s,{name:"chevron",size:16,className:"room-row-chevron"})]})},E.key))}):null,C?e("button",{type:"button",className:"secondary",disabled:q,onClick:te,children:q?t("Loading…"):t("Show more")}):null]})}function Le(l){return l.kinds.map((i)=>e(he,{kind:i.kind,label:i.label,...i.icon?{icon:i.icon}:{},active:l.active},i.kind))}function Fe(){let l=(k().pages??[]).filter((i)=>i.place==="settings");if(l.length===0)return null;return n("section",{className:"card stack",children:[e("h2",{children:t("More settings")}),l.map((i)=>n("a",{className:"menu-item menu-link",href:S("p",i.id),children:[e("span",{className:"menu-text",children:e("strong",{children:i.label})}),e(s,{name:"chevron",size:16})]},i.id))]})}export{Le as HostKinds,rt as HostPage,ht as HostRoomPage,Fe as HostSettingsPages,ae as ReadLog,le as UnreadMark};
@@ -1,2 +0,0 @@
1
- import{Me}from"./chunk-index-wrm8w165.js";import{t,ye,Ss,Kn}from"./chunk-index-zynq0b0w.js";function Ln(e){let n=e.getBoundingClientRect(),o=Ss();ye({title:t("Rooms"),items:[{id:"new-folder",label:t("Add a folder"),icon:"plus",run:()=>Me({kind:"new"})},{id:"arrange",label:o?t("Done"):t("Arrange"),icon:o?"check":"list",run:()=>Kn(!o)}],at:{x:n.left,y:n.bottom},via:"key",source:e})}
2
- export{Ln};
@@ -1,2 +0,0 @@
1
- var x={bg:"#0a1130",ink:"#0b0f1e",stone:"#3c4a6d",stoneShade:"#2a3555",stoneJoint:"#1d2745",floor:"#2b3756",floorJoint:"#1b2442",rune:"#3fe6cb",runeGlow:0.9,wood:"#5b3a22",woodDark:"#3a2314",woodLight:"#7d5231",gold:"#e3b24b",goldDark:"#9a6c1d",banner:"#1b5160",bannerEdge:"#e3b24b",glass:"#2e53a3",glassLight:"#5f86d6",glassDark:"#1b2f66",sky:"#f6f3da",beam:"#9fb9ff",beamAlpha:0.14,flame:"#ffb23a",flameCore:"#fff0a8",ambient:"#6f86c9",ambientI:1.55,key:"#aebfff",keyI:1.4,plateInk:"#3a2410",paper:"#f4efe3",spot:"#ffe29a",night:!0,additive:!0,css:{bg:"#0a1130",floor:"#2b3756",ring:"#3fe6cb",text:"#f4efe3",plate:"#e3b24b"}},h={bg:"#e8dcc0",ink:"#2a2036",stone:"#b9ae9a",stoneShade:"#938873",stoneJoint:"#756b5a",floor:"#cfc2a6",floorJoint:"#a79a80",rune:"#1c9d8f",runeGlow:0.75,wood:"#8c5a33",woodDark:"#5d3a20",woodLight:"#ab7443",gold:"#e0a92f",goldDark:"#936718",banner:"#2c7283",bannerEdge:"#e0a92f",glass:"#8dbbe6",glassLight:"#c4e0f6",glassDark:"#5d8dc2",sky:"#ffe9a6",beam:"#fff0b4",beamAlpha:0.2,flame:"#ff9a2c",flameCore:"#ffe7a0",ambient:"#fff1d4",ambientI:2.1,key:"#ffe3b0",keyI:1.6,plateInk:"#3a2410",paper:"#fffaf0",spot:"#fff0b0",night:!1,additive:!1,css:{bg:"#e8dcc0",floor:"#cfc2a6",ring:"#1c9d8f",text:"#2a2036",plate:"#e0a92f"}},H={modern:{dark:{banner:x.banner,bannerEdge:x.gold,gold:x.gold,goldDark:x.goldDark},light:{banner:h.banner,bannerEdge:h.gold,gold:h.gold,goldDark:h.goldDark}},camelot:{dark:{banner:"#6b1f3f",bannerEdge:"#f0c35a",gold:"#f0c35a",goldDark:"#a8791f"},light:{banner:"#9b2a45",bannerEdge:"#e6b436",gold:"#e6b436",goldDark:"#9a6b14"}}},gn=(n,e)=>({...e==="dark"?x:h,...H[n][e]}),Wi={done:"#58c878",error:"#ee4b4b"};var z=(n)=>{let e=n.codePointAt(0)??0;return e>=11904&&e<=64255?1:e>=65280&&e<=65519?1:0.6};function M(n,e){if(e(n))return n;let t=Array.from(n);while(t.length>1){t.pop();let r=`${t.join("").trimEnd()}…`;if(e(r))return r}return"…"}function Yi(n,e){let t=(r)=>Array.from(r).reduce((a,o)=>a+z(o),0);return M(n,(r)=>t(r)<=e)}var _t='system-ui, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif',P=(n)=>`700 ${n}px ${_t}`;function L(n,e,t,r){let a=t*0.86,o=Math.round(r*0.56),s=Math.round(r*0.36),l=(i,c)=>(n.font=P(c),n.measureText(i).width);for(let i=o;i>=s;i-=2)if(l(e,i)<=a)return{text:e,px:i,font:P(i)};return{text:M(e,(i)=>l(i,s)<=a),px:s,font:P(s)}}function Wr(n,e,t,r,a){let o=Math.max(3,r*0.07);n.fillStyle=a.ink,n.fillRect(0,0,t,r);let s=n.createLinearGradient?.(0,0,0,r);if(s)s.addColorStop(0,a.gold),s.addColorStop(0.55,a.gold),s.addColorStop(1,a.goldDark),n.fillStyle=s;else n.fillStyle=a.gold;n.fillRect(o,o,t-o*2,r-o*2),n.strokeStyle=a.goldDark,n.lineWidth=Math.max(1,r*0.03),n.beginPath(),n.moveTo(o*2,o*2),n.lineTo(t-o*2,o*2),n.lineTo(t-o*2,r-o*2),n.lineTo(o*2,r-o*2),n.closePath(),n.stroke(),n.fillStyle=a.goldDark;for(let u of[o*3.4,t-o*3.4])n.beginPath(),n.arc(u,r/2,Math.max(1.4,r*0.04),0,Math.PI*2),n.fill();let l=L(n,e,t-o*4,r);return n.font=l.font,n.fillStyle=a.plateInk,n.textAlign="center",n.textBaseline="middle",n.fillText(l.text,t/2,r/2+r*0.03),l}var zt=Math.PI*2;function Yt(n){let e=((n+Math.PI)%zt+zt)%zt-Math.PI;return e===-Math.PI?Math.PI:e}var g=(n,e)=>Yt(e-n);function li(n){let e=Math.min(Math.max(n,0),12),t=Math.max(n-12,0);return{count:1+e+(t>0?1:0),seated:e,more:t}}var F=0.62,w=(n)=>Math.min(zt/Math.max(n,1),F),It=(n,e)=>n===0?0:Yt(Math.PI+(n-e/2)*w(e)),kt=(n)=>Math.max(4.2,2.6/(2*Math.sin(w(n)/2)));function O(n,e){let t=0,r=Number.POSITIVE_INFINITY;for(let a=0;a<e;a+=1){let o=Math.abs(g(n,It(a,e)));if(o<r-0.000000001)r=o,t=a}return t}var Hi=(n,e)=>It(O(n,e),e);function Yr(n,e){if(e.seated===0)return;let t=Yt(n+Math.PI),r,a=Number.POSITIVE_INFINITY;for(let o=1;o<=e.seated;o+=1){let s=Math.abs(g(t,It(o,e.count)));if(s<a-0.000000001)a=s,r=o}return r}var A=1.65,Y=1.06,G=44,X=390,W=4.8,S=0.07,y=3;function B(n,e,t){let{position:r,target:a}=ji(n),o=I([a[0]-r[0],a[1]-r[1],a[2]-r[2]]),s=I(E(o,[0,1,0])),l=E(s,o),u=[t[0]-r[0],t[1]-r[1],t[2]-r[2]],i=k(u,o),c=Math.tan(Ki(n.fov,e)*Math.PI/360),f=i>0.000001?i:Number.NaN;return{x:k(u,s)/(f*c*e),y:k(u,l)/(f*c),depth:i}}var k=(n,e)=>n[0]*e[0]+n[1]*e[1]+n[2]*e[2],E=(n,e)=>[n[1]*e[2]-n[2]*e[1],n[2]*e[0]-n[0]*e[2],n[0]*e[1]-n[1]*e[0]],I=(n)=>{let e=Math.hypot(n[0],n[1],n[2])||1;return[n[0]/e,n[1]/e,n[2]/e]};function J(n){let e=kt(n),t=[];for(let r=1;r<n;r+=1){let a=It(r,n),o=Math.cos(a),s=-Math.sin(a);for(let l of[-1,1])for(let u of[0,W])t.push([Math.sin(a)*e+o*l*A,u,Math.cos(a)*e+s*l*A])}return t}function T(n,e,t,r=S,a=r){let o=1-a,s=1-r;return t.every((l)=>{let u=B(n,e,l);return Math.abs(u.x)<=o&&Math.abs(u.y)<=s})}var lt=2.9,U=0.7,V=0.2,j=0.8;function Hr(n,e,t){let r=t[0]-n[0],a=t[2]-n[2],o=Math.hypot(r,a)||1,s=a/o,l=-r/o,u=lt*U/2,i=lt*e,c=n[1]+i/2-i*V,f=n[1]+i/2-i*j,p=[];for(let m of[-1,1])for(let C of[c,f])p.push([n[0]+s*m*u,C,n[2]+l*m*u]);return p}function K(n){let e=kt(n),t=[];for(let r=1;r<n;r+=1){let a=It(r,n);t.push([Math.sin(a)*e,Y,Math.cos(a)*e])}return t}function _(n,e){return{...n,r:n.lookR+(n.r-n.lookR)*e,y:n.lookY+(n.y-n.lookY)*e}}function yn(n,e,t=1.6,r=X){let a=kt(e),o={az:n,r:a+4.4,y:4.4+a*0.1,aim:0,lookR:-1.6,lookY:2.5,roll:0,fov:46};if(!(t>0))return o;let s=J(e),l=K(e),u=S+G/(Math.max(r,1)/2);for(let i=1;i<=y;i+=0.02){let c=_(o,i);if(T(c,t,s)&&T(c,t,l,S,u))return c}return _(o,y)}function jr(n,e){let t=kt(e),r=0.18;return{az:Yt(n+0.18),r:Math.max(t-3.9,0.5),y:1.8,aim:-0.18,lookR:t+0.1,lookY:1.7,roll:-0.16,fov:58}}var d=(n,e,t)=>n+(e-n)*t;function Kr(n,e,t){return{az:Yt(n.az+g(n.az,e.az)*t),r:d(n.r,e.r,t),y:d(n.y,e.y,t),aim:d(n.aim,e.aim,t),lookR:d(n.lookR,e.lookR,t),lookY:d(n.lookY,e.lookY,t),roll:d(n.roll,e.roll,t),fov:d(n.fov,e.fov,t)}}var ci=(n)=>{let e=Math.min(1,Math.max(0,n));return e<0.5?4*e*e*e:1-(-2*e+2)**3/2},v=450,Z=650;function Jr(n,e,t){if(t)return{ms:0,cut:!0};let r=Math.abs(g(n.az,e.az))/Math.PI;return{ms:Math.round(v+(Z-v)*r),cut:!1}}function ji(n){let e=n.az+n.aim;return{position:[Math.sin(n.az)*n.r,n.y,Math.cos(n.az)*n.r],target:[Math.sin(e)*n.lookR,n.lookY,Math.cos(e)*n.lookR]}}function es(n,e){let t=It(n,e),r=kt(e);return{x:Math.sin(t)*r,z:Math.cos(t)*r,yaw:t+Math.PI}}var ts=(n,e)=>-n/Math.max(e,1)*(Math.PI/2),D=32;function ns(n,e,t,r){let a=(o,s,l)=>o-s<D||l-o<D;return a(n,0,r.width)||a(e,0,r.height)||a(n,t.left,t.left+t.width)||a(e,t.top,t.top+t.height)}function is(n,e){if(Math.abs(n)<0.000001)return"none";if(n<0)return e?"none":"in";return e?"out":"none"}function Ki(n,e){if(!(e>0)||e>=1.2)return n;return Math.min(n*(1+(1.2-e)*0.55),95)}var Ht=720,R=260,q=380,N=600,jt=850,Tt=160,rs=4.2,Q=0.35;function qn(n,e,t){let r=new Set(n),a=new Set(e),o=n.filter((m)=>!a.has(m)),s=e.filter((m)=>!r.has(m)),l=e.filter((m)=>r.has(m)),u={leaving:o,joining:s,staying:l,swapAt:0,glideEnd:0,riseAt:0,riseEnd:0,total:0};if(o.length===0&&s.length===0)return{mode:"cut",...u};if(t)return{mode:"fade",...u,swapAt:Tt,glideEnd:Tt,riseAt:Tt,riseEnd:Tt,total:Tt*2};let i=o.length>0?q:0,c=i+N,f=c,p=s.length>0?f+jt:c;return{mode:"play",...u,swapAt:i,glideEnd:c,riseAt:f,riseEnd:p,total:Math.max(o.length>0?Ht:0,c,s.length>0?p:0)}}var b=(n,e=0,t=1)=>Math.min(t,Math.max(e,n));function ui(n){let e=b(n),t=1.70158;return 1+2.70158*(e-1)**3+1.70158*(e-1)**2}function ss(n){let e=Math.sin(Math.PI*b(n/R));return{scaleX:1+0.08*e,scaleY:1-0.14*e,gone:n>=R,puff:b(n/Ht)}}function di(n){if(n<0)return{shown:!1,depth:1,circle:0,light:0,spin:0,named:!1};let e=b(n/jt),t=b((e-0.25)/0.6),r=1-ui(t);return{shown:e>=0.25,depth:r,named:e>=0.25&&r<=Q,circle:b(e/0.25)*b((1-e)/0.2),light:Math.sin(Math.PI*b((e-0.2)/0.7)),spin:e*Math.PI*1.5}}var as=(n)=>ci(b(n/N)),os=(n,e,t)=>n+g(n,e)*t;
2
- export{gn,Wi,Yi,_t,Wr,zt,Yt,li,It,kt,Hi,Yr,lt,Hr,yn,jr,Kr,ci,Jr,ji,es,ts,ns,is,Ki,Ht,jt,Tt,rs,qn,ui,ss,di,as,os};
@@ -1,8 +0,0 @@
1
- import{h,ge,a,A,o,r,t,c,e,K,d,B,en,xn,Ge,We,wn,cn,ft,vs,Te,Pe}from"./chunk-index-zynq0b0w.js";import{ze}from"./chunk-index-0fmmvgee.js";import{Qe}from"./chunk-index-rnxj3z8k.js";var de=12,le={views:[],attention:{},loaded:!1},oe=le,{emit:fe,use:me}=B(),bn=()=>me(()=>oe);function fi(){let n=ge(Ge)?.tier;return n!==void 0&&n!=="owner"}function pe(n,f){return{key:n.key,kind:"agent",name:`${f}.${n.id}`,displayName:n.title,home:!1,readOnly:!1,mode:{yolo:!1,longRunning:!1},typing:!1,stoppable:!1}}var Se=(n)=>n.attention===!0,ye=(n,f)=>(f.lastAt??"").localeCompare(n.lastAt??"");async function he(n){let f=await Promise.allSettled(n.map((i)=>ze.list(i))),m=[];f.forEach((i,p)=>{let s=n[p];if(i.status!=="fulfilled"||s===void 0)return;for(let y of i.value.rooms)m.push({room:y,kind:s})}),m.sort((i,p)=>ye(i.room,p.room));let u={};for(let{room:i}of m)if(Se(i))u[i.key]=!0;return{views:m.map(({room:i,kind:p})=>pe(i,p)),attention:u,loaded:!0}}function ls(n){let f=Pe(),m=d((R)=>R.connects),u=Qe((R)=>R.lists),i=o(0),p=o(0),s=n.join(`
2
- `),{views:y}=bn();a(()=>{i.current+=1;let R=i.current,g=!0;return he(s===""?[]:s.split(`
3
- `)).then((T)=>{if(!g||R<p.current)return;p.current=R,oe=T,fe()}),()=>{g=!1}},[s,m,u]);let S=y.slice(0,de).map((R)=>R.key).join(`
4
- `);a(()=>{let R=S===""?[]:S.split(`
5
- `);for(let g of R)f.send({type:"subscribe",room:g});return()=>{for(let g of R)f.send({type:"unsubscribe",room:g})}},[f,S,m])}var re=(n)=>n.filter((f)=>f.muted!==!0),we=(n)=>n==="sleepy"?"idle":n;function se(n,f){let m={};for(let[u,i]of Object.entries(n))m[u]=we(i);for(let u of f){let i=u.agent;if(!u.typing||i===void 0||!(i in m))continue;let p=m[i];if(p==="waiting"||p==="error")continue;m[i]="speaking"}return m}function z(n,f){if(n==="speaking")return"happy";return(f?.STATE_EXPRESSION??Re)[n]}var Re={idle:"neutral",thinking:"thinking",working:"determined",waiting:"curious",done:"proud",error:"apologetic",sleepy:"sleepy"};function U(n,f){return`s${n}${f.toLowerCase().replace(/[^a-z0-9]/g,"")}`.slice(0,16)}var be={x:-7,y:-3,w:114,h:100},C=256;function W(n,f,m,u,i,p){let s=n.composeSvg(f,{bare:!0,look:m,expr:z(u,n),state:"idle",still:!0,size:C,uid:i,skins:p}),{x:y,y:S,w:R,h:g}=be;return s.replace('viewBox="0 0 100 100"',`viewBox="${y} ${S} ${R} ${g}"`).replace(`width="${C}" height="${C}"`,`width="${C}" height="${Math.round(C*g/R)}"`)}function ae(n){let f=n.delayMs??300,m=n.timers??{set:(s,y)=>setTimeout(s,y),clear:(s)=>clearTimeout(s)},u=new Map,i=new Map,p=(s)=>{let y=i.get(s);if(y===void 0)return;m.clear(y),i.delete(s)};return{seed(s,y){p(s),u.set(s,z(y))},update(s,y){let S=z(y);if(!u.has(s)){u.set(s,S);return}if(p(s),u.get(s)===S)return;i.set(s,m.set(()=>{i.delete(s),u.set(s,S),n.setAvatar(s,y)},f))},forget(s){p(s),u.delete(s)},dispose(){for(let s of[...i.keys()])p(s);u.clear()}}}var ke={idle:c("idle"),thinking:c("thinking"),working:c("working"),waiting:c("waiting"),speaking:c("speaking"),done:c("done"),error:c("error")},xe=()=>({table:t("Round table"),seat:(n,f)=>t("{name} ({state})",{name:n,state:t(ke[f])})}),ve=10;function hi(n,f={}){let m=f.all===!0,u=fi(),{views:i}=bn(),p=d((s)=>{let y=s.order.map((g)=>s.rooms[g]?.view).filter((g)=>g!==void 0&&g.kind==="agent"),S=n?n.map((g)=>y.find((T)=>T.name===g)).filter((g)=>g!==void 0):y;return[...n||m?S:re(S)].sort((g,T)=>Number(T.home)-Number(g.home))},`${m}
6
- ${n?.join(`
7
- `)??""}`);return u?i:p}var Bn=()=>hi(void 0,{all:!0});function Ee(n){return d((f)=>Object.values(f.rooms).filter((m)=>n?m.key===n:m.view?.kind==="group").map((m)=>({typing:m.typing,...m.agent===void 0?{}:{agent:m.agent}})),n??"")}function Ut(n){let{variant:f="full",onHandle:m}=n,u=xn(),i=We(),p=wn(),s=cn(),y=ft(),S=hi(n.members),R=vs(S.map((l)=>l.key)),g=Ee(n.groupRoom),T=bn().attention,ie=Te("(orientation: portrait)"),Y=f==="full"&&(n.list===!0||ie&&S.length>ve),O=A(()=>se(Object.fromEntries(S.map((l)=>{let w=R[l.key]??"idle";return[l.name,T[l.key]&&(w==="idle"||w==="sleepy")?"waiting":w]})),g),[S,R,g,T]),V=o(O);V.current=O;let v=A(()=>{if(!u)return[];return S.map((l,w)=>{let b=y[l.name]??l.character??en(u,l);return{id:l.name,name:l.displayName,color:u.accentOf(b,p.look),avatarSvg:W(u,b,p.look,V.current[l.name]??"idle",U(w,l.name),s)}})},[u,S,y,p.look,s]),j=o(v);j.current=v;let D=o(S);D.current=S;let F=o({look:i,scheme:p.scheme});F.current={look:i,scheme:p.scheme};let J=o(null),H=o(void 0),[L,ce]=r(0),P=o(void 0),Q=o(()=>{return});Q.current=(l)=>{let w=S.find((b)=>b.name===l);if(!u||!w)return;return y[l]??w.character??en(u,w)};let Z=o(p);Z.current=p;let ee=o(s);ee.current=s;let te=o(u);te.current=u;let X=o(m);X.current=m;let x=o(n);x.current=n;let ne=u!==void 0&&v.length>0;a(()=>{let l=J.current;if(!ne||!l)return;let w=!0,b,G=ae({setAvatar:(N,_)=>{let E=Q.current(N),k=te.current,M=D.current.findIndex((I)=>I.name===N);if(!E||!k||M<0)return;b?.setAvatar(N,W(k,E,Z.current.look,_,U(M,N),ee.current))}});return P.current=G,(async()=>{let{mountRoundTable:N}=await (h("mv7q8br0"),import("./chunk-entry-mv7q8br0.js")),_=j.current.map((k)=>({...k,state:V.current[k.id]??"idle"})),E=await N(l,{theme:F.current.look,scheme:F.current.scheme,seats:_,onSeatClick:({id:k})=>{let M=x.current.onSeat;if(M){M(k);return}let I=D.current.find((ue)=>ue.name===k);if(I)K("room",I.key)},...x.current.onSeatMenu?{onSeatMenu:(k)=>x.current.onSeatMenu?.(k)}:{},ownerName:x.current.ownerName??t("You"),focus:x.current.focus??null,onFocus:(k)=>x.current.onFocus?.(k),onMore:()=>x.current.onMore?.(),reducedMotion:"auto",lowPower:"auto",variant:f,listBelow:Y,labels:xe()});if(!w){E.dispose();return}b=E,H.current=E;for(let k of _)G.seed(k.id,k.state??"idle");X.current?.(E),ce((k)=>k+1)})(),()=>{w=!1,G.dispose(),P.current=void 0,H.current=void 0,X.current?.(void 0),b?.dispose()}},[ne,f,Y]);let q=n.focus??null;if(a(()=>{let l=H.current;if(l&&l.focused()!==q)l.focus(q)},[q,L]),a(()=>{let l=H.current;if(!l||v.length===0)return;let w=V.current;l.setSeats(v.map((b)=>({...b,state:w[b.id]??"idle"})));for(let b of v)P.current?.seed(b.id,w[b.id]??"idle")},[v,L]),a(()=>{let l=H.current;if(l)l.setTheme(i,p.scheme)},[i,p.scheme,L]),a(()=>{let l=H.current;if(!l)return;for(let w of j.current){let b=O[w.id]??"idle";l.setState(w.id,b),P.current?.update(w.id,b)}},[O,L]),S.length===0)return e("p",{className:"table-empty",children:t("No agents are seated yet.")});return e("section",{className:"table-host",ref:J,"aria-label":t("Round table")})}
8
- export{bn,fi,ls,hi,Bn,Ut};
@@ -1 +0,0 @@
1
- import{Ue,gr,Ft,yr,F,ie,ei,br,Xs,zs,vr,Is,Ds,Us,dn}from"./chunk-index-z9x4cnzf.js";export{Ft as AVATAR_STATES,F as CATALOG,Ue as CLASS_IDS,ie as CharacterError,zs as EAST_ASIAN_SKINS,gr as EXPRESSIONS,yr as STATE_EXPRESSION,Ds as accentOf,Us as characterCss,vr as checkSkins,Is as composeSvg,br as parseCharacter,Xs as readCharacter,ei as resolveCharacter,dn as suggestCharacter};
@@ -1,2 +0,0 @@
1
- import{a,Fn,o,r,t,m,e,n,s,ut,d,k,Ze,rn,sn,de,Mt,Ve,ft,xi,Si,wi,un,Pe}from"./chunk-index-zynq0b0w.js";import{I}from"./chunk-index-vcyzwtk2.js";function K(i,l,c,f){if(!i)return;let u=i.pending.at(-1);if(u&&!u.failed)return{id:`p${u.id}`,who:"owner",author:l,text:u.text,files:[],live:!1,pending:!0};if(i.typing&&i.progress.text!==""){let h=i.agent??f;return{id:`s${i.messages.at(-1)?.id??0}`,who:"agent",agent:h,author:c(h),text:i.progress.text,files:[],live:!0,pending:!1}}let p=i.live.at(-1);if(p)return{id:`l${p.live??p.id}`,who:"agent",agent:p.agent,author:p.author,text:p.text,files:p.files,live:!0,pending:!1};for(let h=i.messages.length-1;h>=0;h-=1){let g=i.messages[h];if(!g||g.kind==="system")continue;return{id:`m${g.id}`,who:g.kind==="owner"?"owner":"agent",agent:g.agent,author:g.author,text:g.text,files:g.files,live:!1,pending:!1}}return}function B(i,l,c){return i.cardOrder.map((u)=>({id:u,card:i.cards[u]})).filter((u)=>u.card?.room===l).filter((u)=>u.card.outcome===void 0||c===void 0||u.card.after>=c)}var Z=90;function j(i,l,c,f={}){if(f.instant)return l;let u=i+c/1000*(f.cps??Z);return Math.min(l,Math.max(i,u))}function O(){let i,l="",c=0,f=0;return{get shown(){return Math.floor(f)},get done(){return Math.floor(f)>=c},feed(u,p){if(u!==i){let h=l!==""&&(p.startsWith(l)||l.startsWith(p));if(i=u,!h)f=0}if(l=p,c=Array.from(p).length,f>c)f=c},step(u,p){f=j(f,c,u,{instant:p})},finish(){f=c}}}var F=(i,l)=>Array.from(i).slice(0,l).join("");function Vr(i,l){if(!i)return null;let c=l.find((f)=>f.name===i||f.key===i);return c?c.name:null}function qr(i,l){if(!i||i.who!=="agent"||i.agent===void 0)return null;return l.includes(i.agent)?i.agent:null}function Br(i,l,c){return c&&c.lineId===l?c.member:i}function z(i){let l=o(O()),[,c]=Fn((h)=>h+1,0),f=ut();l.current.feed(i?.id??"",i?.text??"");let u=i?.text??"",p=i?.id;return a(()=>{let h=l.current;if(f||u===""||p===void 0){h.finish(),c();return}let g=performance.now(),v=0,w=()=>{let x=performance.now();if(h.step(x-g,!1),g=x,c(),!h.done)v=requestAnimationFrame(w)};if(!h.done)v=requestAnimationFrame(w);return()=>cancelAnimationFrame(v)},[f,p,u]),{shown:l.current.shown,done:l.current.done,finish(){l.current.finish(),c()}}}function Ui(i){let l=d((g)=>g.rooms[i]),c=d((g)=>g.principal?.name)??t("You"),f=d((g)=>{let v={};for(let w of Object.values(g.rooms))if(w.view?.kind==="agent")v[w.view.name]=w.view.displayName;return v}),u=l?.view,h=K(l,c,(g)=>(g===void 0?void 0:f[g])??g??u?.displayName??i,u?.kind==="agent"?u.name:void 0);return{room:l,view:u,line:h}}function Y(i){let{loaded:l,error:c}=i,f=d((g)=>g.rooms[i.roomKey]),[u,p]=r(!1),h=o(null);return a(()=>{if(i.open&&l)h.current?.scrollTo({top:h.current.scrollHeight})},[i.open,l]),e(I,{open:i.open,title:`${i.name} · ${t("Log")}`,onClose:i.onClose,children:n("div",{className:"scene-log",ref:h,children:[c?e("p",{className:"failure-text",children:c}):null,f?.more?e("button",{type:"button",className:"secondary older",disabled:u,onClick:async()=>{p(!0),await wi(i.roomKey),p(!1)},children:u?t("Loading…"):t("Load earlier messages")}):null,e(un,{roomKey:i.roomKey,enterAfter:void 0,quotable:!0})]})})}function Xn(i){let{roomKey:l}=i,c=Pe(),f=k(),u=Si(l),p=i.streams!==!1;a(()=>{if(!p)return;return c.focus(l),()=>c.focus(void 0)},[c,l,p]);let h=d((y)=>y.limits),g=d((y)=>B(y,l,y.rooms[l]?.messages.at(-1)?.id)),v=ft(),{room:w,view:x,line:b}=Ui(l),C=x?.kind==="agent"?x:void 0,N=C?C.name:b?.who==="agent"?b.agent:void 0,E=Ve(N?v[N]:void 0),S=C?C.displayName:b?b.author:x?.displayName??l,{shown:D,done:M,finish:P}=z(b),[T,A]=r(!1),[R,H]=r(!1),q=b?.who==="owner"&&!C?{["--agent-accent"]:"var(--accent)"}:E,V=Boolean(w?.typing)&&(!b||b.who==="owner"),W=b?F(b.text,D):"";return n("section",{className:"scene-box","data-open":i.open||void 0,"data-collapsed":R||void 0,"data-who":b?.who,style:q,"aria-label":t("Log"),children:[n("header",{className:"scene-tab",children:[C||b?.who==="agent"?e("span",{className:"scene-chip",children:e(de,{spec:N?v[N]:void 0,name:N??S,size:34,live:!1})}):null,e("strong",{className:"scene-name",children:S}),n("span",{className:"scene-tools",children:[i.onBack?e("button",{type:"button",className:"icon-button","aria-label":t("Back to the whole table"),onClick:i.onBack,children:e(s,{name:"back"})}):null,i.onMenu?e("button",{type:"button",className:"icon-button scene-more","aria-label":t("More"),"aria-haspopup":"menu",onClick:(y)=>i.onMenu?.(y.currentTarget),children:e(s,{name:"more"})}):null,n("button",{type:"button",className:"icon-button scene-log-button","aria-label":t("Log"),"aria-haspopup":"dialog",onClick:()=>A(!0),children:[e(s,{name:"conversations"}),e("span",{children:t("Log")})]}),e("button",{type:"button",className:"icon-button scene-collapse","aria-label":R?t("Show the message box"):t("Hide the message box"),"aria-expanded":!R,onClick:()=>H((y)=>!y),children:e(s,{name:"menu"})})]})]}),n("div",{className:"scene-body",children:[e("div",{className:"scene-line","data-live":b?.live||void 0,"aria-live":"polite",...M?{}:{role:"button",tabIndex:0,title:t("Tap to show the whole message"),onClick:P,onKeyDown:(y)=>{if(y.key==="Enter"||y.key===" ")y.preventDefault(),P()}},children:b?n(m,{children:[C&&b.who==="owner"?e("span",{className:"scene-from",children:b.author}):null,e(Ze,{source:W}),M?e(Mt,{files:b.files}):null]}):null}),V&&w?e(sn,{name:S,progress:w.progress}):null,g.map(({id:y,card:L})=>e("div",{className:"scene-card",children:e(xi,{card:L,timeZone:f.timeZone})},y))]}),x?.readOnly?null:e("div",{className:"scene-composer",children:e(rn,{draftKey:l,name:x?.displayName??l,limits:h,stoppable:Boolean(w?.stoppable),onSend:(y,L)=>c.say(l,y,L),onStop:()=>c.send({type:"stop",room:l})},l)}),e(Y,{roomKey:l,open:T,loaded:u.loaded,error:u.error,name:x?.displayName??l,onClose:()=>A(!1)})]})}
2
- export{Vr,qr,Br,Ui,Xn};
@@ -1,2 +0,0 @@
1
- import{Ie,b}from"./chunk-index-zynq0b0w.js";import{Rt}from"./chunk-index-zrvg23jd.js";var Pr=()=>{let{pins:t,folders:o}=b.getState();return{pins:t,folders:o}};function fn(){let t=b.getState();return Rt(t,(o)=>Ie(t,o))}
2
- export{Pr,fn};
@@ -1,2 +0,0 @@
1
- import{a,r,u,ne}from"./chunk-index-zynq0b0w.js";function Oe(o,e){let{version:s}=ne(),[t,i]=r({data:void 0,error:void 0,subject:e});return a(()=>{let n=!0;return o().then((d)=>{if(n)i({data:d,error:void 0,subject:e})},(d)=>{if(n)i((f)=>({data:f.subject===e?f.data:void 0,error:u(d),subject:e}))}),()=>{n=!1}},[e,s]),t.subject===e?{data:t.data,error:t.error}:{data:void 0,error:void 0}}
2
- export{Oe};
@@ -1 +0,0 @@
1
- import{B}from"./chunk-index-zynq0b0w.js";var i="roundtable-console:folders-collapsed";function a(){try{let e=localStorage.getItem(i),t=e?JSON.parse(e):[];return new Set(Array.isArray(t)?t.filter((o)=>typeof o==="string"):[])}catch{return new Set}}var l,{emit:d,use:c}=B(),n=()=>(l??=a(),l);function s(e){l=e;try{localStorage.setItem(i,JSON.stringify([...e]))}catch{}d()}var qi=()=>c(n);function Bi(e){let t=new Set(n());if(!t.delete(e))t.add(e);s(t)}function Fi(e){if(!n().has(e))return;let t=new Set(n());t.delete(e),s(t)}function Gi(e){let t=new Set(e),o=n();if([...o].every((r)=>t.has(r)))return;s(new Set([...o].filter((r)=>t.has(r))))}export{qi,Bi,Fi,Gi};
@@ -1,2 +0,0 @@
1
- var Rs=40;class l extends Error{code;constructor(e){super(e);this.code=e;this.name="LayoutError"}}function Pn(e,n,r){if(r===n&&e.includes(n))return[...e];let t=e.filter((o)=>o!==n),i=r===null||r===void 0?-1:t.indexOf(r);if(i<0)return[...t,n];return[...t.slice(0,i),n,...t.slice(i)]}function qe(e,n,r){let t=e.indexOf(n);if(t<0)return;if(r==="up")return t===0?void 0:{before:e[t-1]??null};return t===e.length-1?void 0:{before:e[t+2]??null}}function Qr(e){let n=e.trim(),r=Array.from(n).length;if(r<1||r>40||/\p{Cc}/u.test(n))throw new l("bad-name");return n}var c=(e,n)=>e.toLocaleLowerCase()===n.toLocaleLowerCase();function u(e,n){let r=e.folders.findIndex((t)=>t.id===n);if(r<0)throw new l("no-folder");return r}var f=(e,n)=>({pins:e.pins,folders:n});function Es(e,n,r){let t=u(e,n),i=Qr(r);if(e.folders.some((o)=>o.id!==n&&c(o.name,i)))throw new l("duplicate");return f(e,e.folders.map((o,s)=>s===t?{...o,name:i}:o))}function Cs(e,n,r){let t=u(e,n),i=e.folders[t],o=Pn(e.folders.map((s)=>s.id),n,r);return f(e,o.map((s)=>s===n?i:e.folders.find((a)=>a.id===s)))}function As(e,n){return u(e,n),f(e,e.folders.filter((r)=>r.id!==n))}var d=(e,n)=>({pins:e.pins.filter((r)=>r!==n),folders:e.folders.map((r)=>r.rooms.includes(n)?{...r,rooms:r.rooms.filter((t)=>t!==n)}:r)});function $s(e,n,r,t){if(r!==null)u(e,r);let i=d(e,n);if(r===null)return i;return f(i,i.folders.map((o)=>o.id===r?{...o,rooms:Pn(o.rooms,n,t)}:o))}function Ns(e,n,r,t){let i=d(e,n);if(!r)return i;return{pins:Pn(e.pins.filter((o)=>o!==n),n,t),folders:i.folders}}
2
- export{Rs,Pn,qe,Qr,Es,Cs,As,$s,Ns};
@@ -1,2 +0,0 @@
1
- var Dt={table:"Round table",seat:(e,t)=>`${e} (${t})`};
2
- export{Dt};
@@ -1,2 +0,0 @@
1
- import{Pn}from"./chunk-index-jd6632ef.js";var f=12;function m(r,e){let t=r.find((u)=>e>=u.top&&e<=u.bottom);if(t)return t;let n,o=f+1;for(let u of r){let i=e<u.top?u.top-e:e-u.bottom;if(i<o)n=u,o=i}return n}function d(r,e,t){for(let n of r)if(n.key!==e&&n.top+n.height/2>t)return n.key;return null}function _s(r,e,t){let n=m(r,t);return n?{zone:n,before:d(n.items,e,t)}:void 0}function ks(r,e,t){let{zone:n,before:o}=t;if(n.kind==="rest")return r.kind==="rest"?void 0:{kind:"unplace"};if(n.kind==="pinned"&&r.kind==="pinned"||n.kind==="folder"&&r.kind==="folder"&&r.folder===n.folder){let i=r.siblings;if(Pn(i,e,o).every((s,l)=>s===i[l]))return}return n.kind==="pinned"?{kind:"pin",before:o}:{kind:"folder",folder:n.folder,before:o}}function Ts(r,e,t,n){if(n<e.top-f*3||n>e.bottom+f*3)return;return{before:d(r,t,n)}}function _r(r,e,t,n=0){let o=(r[e]?.height??0)+n;return r.map((u,i)=>{if(i===e)return 0;if(e<t&&i>e&&i<=t)return-o;if(e>t&&i>=t&&i<e)return o;return 0})}function kr(r,e,t){return Pn(r,e,t).indexOf(e)}function Ps(r,e,t,n=64,o=18){if(r<e+n)return-Math.min(1,(e+n-r)/n)*o;if(r>t-n)return Math.min(1,(r-(t-n))/n)*o;return 0}var Qs=600;
2
- export{_s,ks,Ts,_r,kr,Ps,Qs};
@@ -1,2 +0,0 @@
1
- import{b,y,u,O}from"./chunk-index-zynq0b0w.js";async function He(e,r){try{let t=await y.setMute(e,r);return b.dispatch({type:"room_muted",room:e,muted:t.muted}),!0}catch(t){return O(u(t),"danger"),!1}}
2
- export{He};
@@ -1,2 +0,0 @@
1
- import{b,f,u,O}from"./chunk-index-zynq0b0w.js";import{ks}from"./chunk-index-mmg788a1.js";import{Pr,fn}from"./chunk-index-b8nvhcx5.js";import{qe,Es,Cs,As,$s,Ns}from"./chunk-index-jd6632ef.js";import{Et}from"./chunk-index-zrvg23jd.js";var n={createFolder:(e)=>f("folders",{method:"POST",body:JSON.stringify({name:e})}),changeFolder:(e,t)=>f(`folders/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify(t)}),deleteFolder:(e)=>f(`folders/${encodeURIComponent(e)}`,{method:"DELETE"}),muteFolder:(e,t)=>f(`folders/${encodeURIComponent(e)}/mute`,{method:"PUT",body:JSON.stringify({muted:t})}),placeRoom:(e,t,o)=>f(`rooms/${encodeURIComponent(e)}/folder`,{method:"PUT",body:JSON.stringify({folder:t,before:o})}),pinRoom:(e,t,o)=>f(`rooms/${encodeURIComponent(e)}/pin`,{method:"PUT",body:JSON.stringify({pinned:t,before:o})})};var l=(e)=>O(e,"danger"),d=(e)=>b.dispatch({type:"layout_loaded",pins:e.pins,folders:e.folders});async function i(e,t,o=l){let r=Pr();try{d(e(r))}catch{}try{let s=await t();return d(s),s}catch(s){d(r),b.dispatch({type:"changed"}),o(u(s));return}}var ws=(e,t,o=null)=>i((r)=>Ns(r,e,t,o),()=>n.pinRoom(e,t,o)),Gt=(e,t,o=null)=>i((r)=>$s(r,e,t,o),()=>n.placeRoom(e,t,o));function $i(e,t){let o=Et(fn(),e);if(o.kind==="rest")return;let r=qe(o.siblings,e,t);if(!r)return;return o.kind==="pinned"?ws(e,!0,r.before):Gt(e,o.folder,r.before)}async function xr(e,t=l){try{let o=await n.createFolder(e);return d(o),o.folders.at(-1)?.id}catch(o){t(u(o));return}}var Sr=(e,t,o)=>i((r)=>Es(r,e,t),()=>n.changeFolder(e,{name:t}),o),Vs=(e,t)=>i((o)=>Cs(o,e,t),()=>n.changeFolder(e,{before:t}));function Bs(e,t){let o=qe(Pr().folders.map((r)=>r.id),e,t);return o?Vs(e,o.before):void 0}var wr=(e,t)=>i((o)=>As(o,e),()=>n.deleteFolder(e),t);async function Fs(e,t){try{let o=await n.muteFolder(e,t);for(let r of o.rooms)b.dispatch({type:"room_muted",room:r,muted:o.muted});return!0}catch(o){return l(u(o)),!1}}function Gs(e,t){let o=ks(Et(fn(),e),e,t);if(!o)return;if(o.kind==="pin")return ws(e,!0,o.before);if(o.kind==="folder")return Gt(e,o.folder,o.before);return Gt(e,null)}
2
- export{ws,Gt,$i,xr,Sr,Vs,Bs,wr,Fs,Gs};
@@ -1 +0,0 @@
1
- :root{--buncss-light:initial;--buncss-dark: ;color-scheme:light dark;--bg:var(--buncss-light,#f5f6f8)var(--buncss-dark,#0f1115);--surface:var(--buncss-light,#fff)var(--buncss-dark,#171a20);--surface-2:var(--buncss-light,#eef0f4)var(--buncss-dark,#1d2128);--surface-3:var(--buncss-light,#e4e7ee)var(--buncss-dark,#262b34);--raised:var(--buncss-light,#fff)var(--buncss-dark,#1c2027);--border:var(--buncss-light,#dfe2e8)var(--buncss-dark,#2a2f39);--border-strong:var(--buncss-light,#c4cad6)var(--buncss-dark,#3b414d);--control-border:var(--buncss-light,#7f8797)var(--buncss-dark,#69717f);--scrim:var(--buncss-light,#0f11156b)var(--buncss-dark,#0000009e);--text:var(--buncss-light,#16181d)var(--buncss-dark,#e9ebf0);--muted:var(--buncss-light,#5a6270)var(--buncss-dark,#a0a7b4);--on-accent:var(--buncss-light,#fff)var(--buncss-dark,#0c1230);--accent:var(--buncss-light,#3a5bd9)var(--buncss-dark,#8ea4ff);--accent-strong:var(--buncss-light,#2f4ac0)var(--buncss-dark,#a9b9ff);--accent-soft:var(--buncss-light,#e8edfd)var(--buncss-dark,#232c52);--accent-ink:var(--buncss-light,#2a47b8)var(--buncss-dark,#b6c4ff);--success:var(--buncss-light,#17703f)var(--buncss-dark,#5fd699);--success-soft:var(--buncss-light,#e3f4ea)var(--buncss-dark,#16301f);--warn:var(--buncss-light,#8a5a00)var(--buncss-dark,#f0b95b);--warn-soft:var(--buncss-light,#fdf1d8)var(--buncss-dark,#33270f);--danger:var(--buncss-light,#b42318)var(--buncss-dark,#ff8f85);--danger-soft:var(--buncss-light,#fde8e6)var(--buncss-dark,#3a1b19);--yolo:var(--buncss-light,#9a4608)var(--buncss-dark,#ffa664);--yolo-soft:var(--buncss-light,#fdebd9)var(--buncss-dark,#382314);--long:var(--buncss-light,#6d3fc0)var(--buncss-dark,#b99cf5);--long-soft:var(--buncss-light,#efe7fb)var(--buncss-dark,#2a2140);--code-bg:var(--buncss-light,#fbfbfd)var(--buncss-dark,#14171c);--code-fg:var(--buncss-light,#1d2129)var(--buncss-dark,#e6e8ee);--code-gutter-bg:var(--buncss-light,#f1f2f6)var(--buncss-dark,#191d23);--code-gutter:var(--buncss-light,#5c6372)var(--buncss-dark,#8b93a1);--code-selection:var(--buncss-light,#cfdcff)var(--buncss-dark,#2b3a66);--code-active-line:var(--buncss-light,#f0f2f8)var(--buncss-dark,#1a1f27);--code-keyword:var(--buncss-light,#a0267a)var(--buncss-dark,#f08bd0);--code-string:var(--buncss-light,#1a6a35)var(--buncss-dark,#7fd69a);--code-number:var(--buncss-light,#9a4a00)var(--buncss-dark,#ffb070);--code-comment:var(--buncss-light,#5f6878)var(--buncss-dark,#8e98aa);--code-type:var(--buncss-light,#0b6a8f)var(--buncss-dark,#6cc7e6);--code-function:var(--buncss-light,#3a4fc0)var(--buncss-dark,#9db2ff);--code-meta:var(--buncss-light,#7a5a00)var(--buncss-dark,#e0c070);--busy:var(--success);--accent-text:var(--on-accent);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-full:999px;--shadow-1:0 1px 2px var(--buncss-light,#1018280f)var(--buncss-dark,#0006);--shadow-2:0 4px 14px var(--buncss-light,#1018281a)var(--buncss-dark,#00000073);--shadow-3:0 18px 48px var(--buncss-light,#10182833)var(--buncss-dark,#0009);--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--leading-tight:1.25;--leading:1.5;--weight-medium:500;--weight-bold:650;--dur-fast:.12s;--dur:.2s;--dur-slow:.34s;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--rail-width:15rem;--tabbar-height:3.5rem;--touch:2.75rem;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);font-family:var(--font);font-size:16px;line-height:var(--leading);-webkit-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-color-scheme:dark){:root{--buncss-light: ;--buncss-dark:initial}}:root[data-theme=light]{--buncss-light:initial;--buncss-dark: ;color-scheme:light}:root[data-theme=dark]{--buncss-light: ;--buncss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--dur-fast:.01ms;--dur:.01ms;--dur-slow:.01ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.av{overflow:visible}.av .ov{opacity:0}.av .glow{opacity:.28}.av .ch,.av .prop,.av .eyes,.av .ov{transform-box:view-box}.av .ch{transform-origin:50px 94px}.av .eyes{transform-origin:50px 52px;animation:5.2s infinite av-blink}.av .o-wait,.av .o-done,.av .o-err{transform-origin:17px 19px}.av .o-think{transform-origin:50px 50px}.av [data-prop=staff]{transform-origin:73px 82px}.av [data-prop=shield]{transform-origin:27px 82px}.av [data-prop=scroll]{transform-origin:76px 76px}.av [data-prop=hammer]{transform-origin:79px 84px}.av [data-prop=bow]{transform-origin:78px 70px}.av [data-prop=lute]{transform-origin:75px 70px}.av [data-prop=flask]{transform-origin:73px 66px}.av [data-prop=quill]{transform-origin:72px 82px}.av [data-prop=tome]{transform-origin:78px 76px}.av [data-prop=bell]{transform-origin:76px 62px}.av [data-prop=keys]{transform-origin:78px 62px}.av [data-prop=map]{transform-origin:77px 58px}.av [data-prop=telescope]{transform-origin:76px 74px}.av [data-prop=wrench]{transform-origin:78px 86px}.av [data-prop=spade]{transform-origin:76px 60px}.av [data-prop=ladle]{transform-origin:78px 78px}.av [data-prop=lantern]{transform-origin:76px 62px}.av [data-prop=seal]{transform-origin:76px 66px}.av [data-prop=dagger]{transform-origin:78px 86px}.av [data-prop=beads]{transform-origin:78px 62px}.av [data-prop=bird]{transform-origin:78px 76px}.av [data-prop=anchor]{transform-origin:76px 76px}.av [data-prop=marotte]{transform-origin:76px 62px}.av [data-prop=sword]{transform-origin:76px 82px}:-webkit-any(.av,.av-host)[data-state=idle] .ch{animation:3.8s ease-in-out infinite av-breathe}:-moz-any(.av,.av-host)[data-state=idle] .ch{animation:3.8s ease-in-out infinite av-breathe}:is(.av,.av-host)[data-state=idle] .ch{animation:3.8s ease-in-out infinite av-breathe}:-webkit-any(.av,.av-host)[data-state=thinking] .ch{animation:3.2s ease-in-out infinite av-tilt}:-moz-any(.av,.av-host)[data-state=thinking] .ch{animation:3.2s ease-in-out infinite av-tilt}:is(.av,.av-host)[data-state=thinking] .ch{animation:3.2s ease-in-out infinite av-tilt}:-webkit-any(.av,.av-host)[data-state=thinking] .o-think{opacity:1;animation:2.6s linear infinite av-orbit}:-moz-any(.av,.av-host)[data-state=thinking] .o-think{opacity:1;animation:2.6s linear infinite av-orbit}:is(.av,.av-host)[data-state=thinking] .o-think{opacity:1;animation:2.6s linear infinite av-orbit}:-webkit-any(.av,.av-host)[data-state=working] .ch{animation:.56s ease-in-out infinite av-bob}:-moz-any(.av,.av-host)[data-state=working] .ch{animation:.56s ease-in-out infinite av-bob}:is(.av,.av-host)[data-state=working] .ch{animation:.56s ease-in-out infinite av-bob}:-webkit-any(.av,.av-host)[data-state=working] .prop{animation:.56s ease-in-out infinite alternate av-sweep}:-moz-any(.av,.av-host)[data-state=working] .prop{animation:.56s ease-in-out infinite alternate av-sweep}:is(.av,.av-host)[data-state=working] .prop{animation:.56s ease-in-out infinite alternate av-sweep}:-webkit-any(.av,.av-host)[data-state=working] .glow{animation:.56s ease-in-out infinite alternate av-glow}:-moz-any(.av,.av-host)[data-state=working] .glow{animation:.56s ease-in-out infinite alternate av-glow}:is(.av,.av-host)[data-state=working] .glow{animation:.56s ease-in-out infinite alternate av-glow}:-webkit-any(.av,.av-host)[data-state=waiting] .ch{animation:1.6s ease-in-out infinite av-lean}:-moz-any(.av,.av-host)[data-state=waiting] .ch{animation:1.6s ease-in-out infinite av-lean}:is(.av,.av-host)[data-state=waiting] .ch{animation:1.6s ease-in-out infinite av-lean}:-webkit-any(.av,.av-host)[data-state=waiting] .o-wait{opacity:1;animation:1.2s ease-in-out infinite av-badge}:-moz-any(.av,.av-host)[data-state=waiting] .o-wait{opacity:1;animation:1.2s ease-in-out infinite av-badge}:is(.av,.av-host)[data-state=waiting] .o-wait{opacity:1;animation:1.2s ease-in-out infinite av-badge}:-webkit-any(.av,.av-host)[data-state=waiting] .glow{animation:1.2s ease-in-out infinite alternate av-glow}:-moz-any(.av,.av-host)[data-state=waiting] .glow{animation:1.2s ease-in-out infinite alternate av-glow}:is(.av,.av-host)[data-state=waiting] .glow{animation:1.2s ease-in-out infinite alternate av-glow}:-webkit-any(.av,.av-host)[data-state=done] .ch{animation:.7s cubic-bezier(.3,1.6,.5,1) av-pop}:-moz-any(.av,.av-host)[data-state=done] .ch{animation:.7s cubic-bezier(.3,1.6,.5,1) av-pop}:is(.av,.av-host)[data-state=done] .ch{animation:.7s cubic-bezier(.3,1.6,.5,1) av-pop}:-webkit-any(.av,.av-host)[data-state=done] .o-done{opacity:1;animation:.5s ease-out av-badge-in}:-moz-any(.av,.av-host)[data-state=done] .o-done{opacity:1;animation:.5s ease-out av-badge-in}:is(.av,.av-host)[data-state=done] .o-done{opacity:1;animation:.5s ease-out av-badge-in}:-webkit-any(.av,.av-host)[data-state=done] .glow{opacity:.7}:-moz-any(.av,.av-host)[data-state=done] .glow{opacity:.7}:is(.av,.av-host)[data-state=done] .glow{opacity:.7}:-webkit-any(.av,.av-host)[data-state=error] .ch{animation:.5s ease-in-out 2 av-shake}:-moz-any(.av,.av-host)[data-state=error] .ch{animation:.5s ease-in-out 2 av-shake}:is(.av,.av-host)[data-state=error] .ch{animation:.5s ease-in-out 2 av-shake}:-webkit-any(.av,.av-host)[data-state=error] .o-err{opacity:1;animation:.3s ease-out av-badge-in}:-moz-any(.av,.av-host)[data-state=error] .o-err{opacity:1;animation:.3s ease-out av-badge-in}:is(.av,.av-host)[data-state=error] .o-err{opacity:1;animation:.3s ease-out av-badge-in}:-webkit-any(.av,.av-host)[data-state=error] .ring{stroke:#e5484d}:-moz-any(.av,.av-host)[data-state=error] .ring{stroke:#e5484d}:is(.av,.av-host)[data-state=error] .ring{stroke:#e5484d}:-webkit-any(.av,.av-host)[data-state=error] .glow{opacity:0}:-moz-any(.av,.av-host)[data-state=error] .glow{opacity:0}:is(.av,.av-host)[data-state=error] .glow{opacity:0}:-webkit-any(.av,.av-host)[data-state=sleepy] .ch{animation:6s ease-in-out infinite av-breathe}:-moz-any(.av,.av-host)[data-state=sleepy] .ch{animation:6s ease-in-out infinite av-breathe}:is(.av,.av-host)[data-state=sleepy] .ch{animation:6s ease-in-out infinite av-breathe}:-webkit-any(.av,.av-host)[data-state=sleepy] .o-zz{opacity:1;animation:3s ease-in-out infinite av-float}:-moz-any(.av,.av-host)[data-state=sleepy] .o-zz{opacity:1;animation:3s ease-in-out infinite av-float}:is(.av,.av-host)[data-state=sleepy] .o-zz{opacity:1;animation:3s ease-in-out infinite av-float}:-webkit-any(.av,.av-host)[data-state=sleepy] .glow{opacity:.08}:-moz-any(.av,.av-host)[data-state=sleepy] .glow{opacity:.08}:is(.av,.av-host)[data-state=sleepy] .glow{opacity:.08}@keyframes av-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.08)}}@keyframes av-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.012,1.03)}}@keyframes av-tilt{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes av-orbit{to{transform:rotate(360deg)}}@keyframes av-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.4px)}}@keyframes av-sweep{0%{transform:rotate(-9deg)}to{transform:rotate(9deg)}}@keyframes av-glow{0%{opacity:.2}to{opacity:.85}}@keyframes av-lean{0%,to{transform:rotate(-1deg)translateY(0)}50%{transform:rotate(-6deg)translateY(1px)}}@keyframes av-badge{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}@keyframes av-badge-in{0%{transform:scale(.2);opacity:0}to{transform:scale(1);opacity:1}}@keyframes av-pop{0%{transform:scale(1)}40%{transform:scale(1.1,.94)}70%{transform:scale(.97,1.05)}to{transform:scale(1)}}@keyframes av-shake{0%,to{transform:translate(0)}20%{transform:translate(-2.4px)}40%{transform:translate(2.4px)}60%{transform:translate(-1.6px)}80%{transform:translate(1.6px)}}@keyframes av-float{0%,to{transform:translateY(0);opacity:.35}50%{transform:translateY(-4px);opacity:1}}@media (prefers-reduced-motion:reduce){.av *{animation:none!important}.av .o-think{opacity:0!important}}.av.static *{animation:none!important}:root[data-look=camelot]{--bg:var(--buncss-light,#f4ead5)var(--buncss-dark,#0f1726);--surface:var(--buncss-light,#fbf5e6)var(--buncss-dark,#16213a);--surface-2:var(--buncss-light,#eee1c3)var(--buncss-dark,#1c2a47);--surface-3:var(--buncss-light,#e3d2a9)var(--buncss-dark,#243557);--raised:var(--buncss-light,#fffaf0)var(--buncss-dark,#1b2744);--border:var(--buncss-light,#dccb9f)var(--buncss-dark,#2c3c61);--border-strong:var(--buncss-light,#c2ad78)var(--buncss-dark,#41537f);--control-border:var(--buncss-light,#8a7650)var(--buncss-dark,#7e8db2);--scrim:var(--buncss-light,#2b211873)var(--buncss-dark,#03060eb3);--text:var(--buncss-light,#2b2118)var(--buncss-dark,#efe6d2);--muted:var(--buncss-light,#66543c)var(--buncss-dark,#bcb8ab);--on-accent:var(--buncss-light,#fff9ea)var(--buncss-dark,#1a1405);--accent:var(--buncss-light,#7a500a)var(--buncss-dark,#e6b94c);--accent-strong:var(--buncss-light,#5f3e07)var(--buncss-dark,#f2cd6c);--accent-soft:var(--buncss-light,#f0deb0)var(--buncss-dark,#2d3045);--accent-ink:var(--buncss-light,#553705)var(--buncss-dark,#f0cd78);--code-bg:var(--buncss-light,#fffaf0)var(--buncss-dark,#121c33);--code-fg:var(--buncss-light,#2b2118)var(--buncss-dark,#efe6d2);--code-gutter-bg:var(--buncss-light,#f1e5c6)var(--buncss-dark,#16213a);--code-gutter:var(--buncss-light,#66543c)var(--buncss-dark,#bcb8ab);--code-selection:var(--buncss-light,#ecd9a0)var(--buncss-dark,#31446e);--code-active-line:var(--buncss-light,#f6ecd2)var(--buncss-dark,#18243f);--code-keyword:var(--buncss-light,#7a500a)var(--buncss-dark,#e6b94c);--code-string:var(--buncss-light,#8a1c1c)var(--buncss-dark,#ff9a8f);--code-number:var(--buncss-light,#5f3d94)var(--buncss-dark,#c3a7f5);--code-comment:var(--buncss-light,#6a5a42)var(--buncss-dark,#b0ab9d);--code-type:var(--buncss-light,#26602d)var(--buncss-dark,#6fd49b);--code-function:var(--buncss-light,#1f4a80)var(--buncss-dark,#8fb4ff);--code-meta:var(--buncss-light,#764a07)var(--buncss-dark,#f0b95b);--gold:var(--buncss-light,#b98a2c)var(--buncss-dark,#e6b94c);--gold-soft:var(--buncss-light,#e9d29a)var(--buncss-dark,#3b4256);--gold-wash:var(--buncss-light,#f2e4bd)var(--buncss-dark,#222f4d);--success:var(--buncss-light,#26602d)var(--buncss-dark,#6fd49b);--success-soft:var(--buncss-light,#dfe9c9)var(--buncss-dark,#153027);--warn:var(--buncss-light,#764a07)var(--buncss-dark,#f0b95b);--warn-soft:var(--buncss-light,#f6e2b0)var(--buncss-dark,#3a2d12);--danger:var(--buncss-light,#a3281e)var(--buncss-dark,#ff9a8f);--danger-soft:var(--buncss-light,#f3d6cb)var(--buncss-dark,#3d1f2a);--yolo:var(--buncss-light,#96400a)var(--buncss-dark,#ffae72);--yolo-soft:var(--buncss-light,#f3dcc2)var(--buncss-dark,#3b2616);--long:var(--buncss-light,#5f3d94)var(--buncss-dark,#c3a7f5);--long-soft:var(--buncss-light,#e8ddee)var(--buncss-dark,#2c2547);--shadow-1:0 1px 2px var(--buncss-light,#4a340e1a)var(--buncss-dark,#00000073);--shadow-2:0 4px 14px var(--buncss-light,#4a340e24)var(--buncss-dark,#00000080);--shadow-3:0 18px 48px var(--buncss-light,#4a340e42)var(--buncss-dark,#000000a6);--font-heading:"Iowan Old Style",Palatino,"Songti TC","Noto Serif TC",Georgia,serif}[data-look=camelot] h1,[data-look=camelot] h2,[data-look=camelot] h3,[data-look=camelot] .page-bar strong,[data-look=camelot] .prompt-head strong{font-family:var(--font-heading);letter-spacing:0}[data-look=camelot] body{background:radial-gradient(60rem 36rem at 12% -8%,var(--buncss-light,#fffcf08c)var(--buncss-dark,#4660a029),transparent 70%),radial-gradient(48rem 30rem at 96% 108%,var(--buncss-light,#c8a05a33)var(--buncss-dark,#e6b94c0f),transparent 70%),radial-gradient(22rem 14rem at 70% 24%,var(--buncss-light,#b98a2c14)var(--buncss-dark,#788cd20d),transparent 70%),var(--bg)}[data-look=camelot] .topbar,[data-look=camelot] .tabbar{border-color:var(--gold-soft)}[data-look=camelot] .page-head{padding-bottom:var(--space-2);background:linear-gradient(90deg,var(--gold),transparent 70%)bottom/100% 1px no-repeat}[data-look=camelot] .room-head{position:relative;border-bottom-color:var(--gold-soft);box-shadow:0 1px 0 color-mix(in srgb,var(--gold)38%,transparent)}[data-look=camelot] .room-head:before,[data-look=camelot] .room-head:after{content:"";position:absolute;pointer-events:none;background:linear-gradient(var(--gold),var(--gold))bottom/100% 2px no-repeat,linear-gradient(var(--gold),var(--gold))var(--side)/2px 100% no-repeat;width:.75rem;height:.75rem;bottom:-1px}[data-look=camelot] .room-head:before{--side:left;left:0}[data-look=camelot] .room-head:after{--side:right;right:0}[data-look=camelot] .card,[data-look=camelot] .prompt,[data-look=camelot] .progress,[data-look=camelot] .bubble{border-color:color-mix(in srgb,var(--gold)34%,var(--border))}[data-look=camelot] .message[data-mine] .bubble{border-color:#0000}[data-look=camelot] .room-row[data-home],[data-look=camelot] .room-row[aria-current=page],[data-look=camelot] .creator-preview{background:var(--gold-wash)}[data-look=camelot] .prompt{position:relative;--seal-out:.9rem;--seal-in:.6rem}[data-look=camelot] .prompt[data-sealed]{padding-bottom:calc(var(--space-4) + var(--seal-in));margin-bottom:var(--seal-out)}.wax-seal{--seal-size:2.5rem;position:absolute;right:var(--space-4);bottom:calc(var(--seal-out)*-1);width:var(--seal-size);height:var(--seal-size);pointer-events:none;filter:drop-shadow(0 2px 2px #00000047);transform:rotate(-9deg)}.wax-seal[data-stamp]{animation-name:seal-stamp;animation-duration:.45s;animation-timing-function:var(--ease-spring);animation-fill-mode:both}.wax-seal svg{display:block;overflow:visible;width:100%;height:100%}.wax-seal .seal-body{fill:var(--agent-accent,var(--accent))}.wax-seal .seal-ring{fill:none;stroke:color-mix(in srgb,var(--agent-accent,var(--accent))62%,#000);stroke-width:1.6}.wax-seal .seal-mark{fill:none;stroke:color-mix(in srgb,var(--agent-accent,var(--accent))62%,#000);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}@keyframes seal-stamp{0%{opacity:0;transform:rotate(-9deg)scale(1.7)}60%{opacity:1;transform:rotate(-9deg)scale(.92)}to{opacity:1;transform:rotate(-9deg)scale(1)}}[data-look=camelot] .progress-bar{display:none}.candle-runes{display:inline-flex;align-items: center;gap:var(--space-2);flex:none}.candle{overflow:visible;width:.85rem;height:1.55rem}.candle .candle-wax{fill:var(--buncss-light,#f3e3b6)var(--buncss-dark,#d9cdb0);stroke:var(--gold);stroke-width:.6}.candle .candle-wick{stroke:var(--buncss-light,#4a3a28)var(--buncss-dark,#1a1405);stroke-width:.9}.candle .candle-flame{fill:var(--gold);transform-box:fill-box;transform-origin:50% 100%;animation:1.7s ease-in-out infinite candle-flicker}.runes{display:inline-flex;gap:.3rem}.rune{width:.55rem;height:.9rem}.rune path{fill:none;stroke:color-mix(in srgb,var(--gold)80%,var(--text));stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.rune{animation:2.4s ease-in-out infinite rune-shimmer}.rune[data-rune="1"]{animation-delay:.3s}.rune[data-rune="2"]{animation-delay:.6s}.rune[data-rune="3"]{animation-delay:.9s}.rune[data-rune="4"]{animation-delay:1.2s}.rune[data-rune="5"]{animation-delay:1.5s}@keyframes rune-shimmer{0%,to{opacity:.4}45%{opacity:1}}@keyframes candle-flicker{0%,to{opacity:1;transform:scale(1)rotate(0)}30%{opacity:.82;transform:scale(.92,1.08)rotate(-2deg)}65%{opacity:.94;transform:scale(1.06,.95)rotate(2deg)}}@media (prefers-reduced-motion:reduce){.wax-seal[data-stamp],.candle .candle-flame,.rune{animation-name:none}.rune{opacity:.85}}*{box-sizing:border-box}html{background:var(--bg);height:100%}body{overflow:hidden;background:var(--bg);color:var(--text);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;height:100%;margin:0}a{color:var(--accent)}h1,h2,h3{font-weight:var(--weight-bold);line-height:var(--leading-tight);letter-spacing:-.01em;margin:0}h1{font-size:var(--text-xl)}h2{font-size:var(--text-md)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{position:absolute;overflow:hidden;clip-path:inset(50%);white-space:nowrap;width:1px;height:1px}kbd{padding:0 var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted);font:inherit;font-size:var(--text-xs)}.app{position:fixed;left:0;right:0;top:var(--app-top,0px);height:var(--app-height,100dvh);display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)auto;background:var(--bg)}.stage{grid-row:1;display:flex;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-left:var(--safe-left);padding-right:var(--safe-right);flex-direction:column;min-width:0;min-height:0}.stage[data-fill]{overflow:hidden}.route{display:flex;flex-direction:column;flex:1;min-height:0}.no-vt .route{animation:route-in var(--dur-slow)var(--ease-out)both}@keyframes route-in{0%{opacity:0;transform:translateY(8px)}}.topbar{position:sticky;z-index:5;display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);padding:calc(var(--space-2) + var(--safe-top))var(--space-4)var(--space-2);background:color-mix(in srgb,var(--bg)88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);top:0}.topbar h1{font-size:var(--text-md)}.brand{display:flex;align-items: center;gap:var(--space-2);min-width:0}.brand-mark{display:grid;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent);overflow:hidden;flex:none;place-items: center;width:1.75rem;height:1.75rem}.brand-mark img{object-fit:cover;width:100%;height:100%}.brand h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-end,.rail-foot{display:flex;align-items: center;gap:var(--space-2)}.live-chip{display:inline-flex;align-items: center;gap:var(--space-2);font-size:var(--text-xs);color:var(--muted)}.live-chip:before{content:"";border-radius:var(--radius-full);background:var(--muted);width:.5rem;height:.5rem}.live-chip[data-on]:before{background:var(--success);box-shadow:0 0 0 0 var(--success);animation:pulse 2.4s var(--ease-out)infinite}@keyframes pulse{70%,to{box-shadow:0 0 0 6px #0000}}.rail{display:none}.tabbar{grid-row:2;display:flex;padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right);border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface)92%,transparent);backdrop-filter:blur(14px)}.tab{position:relative;display:flex;min-height:var(--tabbar-height);color:var(--muted);font-size:var(--text-xs);text-decoration:none;transition:color var(--dur)var(--ease-out);flex-direction:column;flex:1;justify-content:center;align-items: center;gap:2px}.tab[aria-current=page]{color:var(--accent)}.tab svg{transition:transform var(--dur)var(--ease-spring)}.tab[aria-current=page] svg{transform:translateY(-1px)scale(1.1)}.tab-badge{position:absolute;border-radius:var(--radius-full);background:var(--warn);color:var(--bg);font-size:.65rem;font-weight:var(--weight-bold);text-align:center;min-width:1.1rem;padding:0 .3rem;line-height:1.1rem;top:.35rem;left:calc(50% + .55rem)}.app[data-fill]{grid-template-rows:minmax(0,1fr)}.app[data-fill] .tabbar,.app[data-fill] .topbar{display:none}@media (min-width:720px){.app{grid-template-columns:var(--rail-width)minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.app[data-fill] .topbar,.topbar,.tabbar,.app[data-fill] .tabbar{display:none}.rail{grid-column:1;display:flex;gap:var(--space-4);padding:calc(var(--space-4) + var(--safe-top))var(--space-3)var(--space-3)calc(var(--space-3) + var(--safe-left));border-right:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:0}.stage{grid-column:2;padding-left:0}.rail-nav{display:flex;gap:var(--space-1);overflow-y:auto;flex-direction:column;flex:1}.rail-link{position:relative;display:flex;align-items: center;gap:var(--space-3);padding:0 var(--space-3);border-radius:var(--radius);color:var(--muted);font-weight:var(--weight-medium);text-decoration:none;transition:background-color var(--dur-fast)var(--ease-out),color var(--dur-fast)var(--ease-out);min-height:2.5rem}.rail-link:hover{background:var(--surface-2);color:var(--text)}.rail-link[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink)}.rail-link .tab-badge{position:static;margin-left:auto}.rail-foot{padding-left:var(--space-3)}}.page{display:flex;gap:var(--space-5);padding:var(--space-4)var(--space-4)calc(var(--space-8) + var(--safe-bottom));flex-direction:column;width:100%;max-width:60rem;margin:0 auto}@media (min-width:720px){.page{padding:var(--space-8)var(--space-8)var(--space-10)}}.page-head{min-height:var(--touch);display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);flex-wrap:wrap}.section-title{font-size:var(--text-xs);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.stack{display:flex;gap:var(--space-3);flex-direction:column}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)var(--space-4);box-shadow:var(--shadow-1)}.card-link{display:block;color:inherit;text-decoration:none;transition:border-color var(--dur-fast)var(--ease-out),transform var(--dur)var(--ease-out)}.card-link:hover{border-color:var(--accent)}.card-head{display:flex;justify-content:space-between;align-items: flex-start;gap:var(--space-2);flex-wrap:wrap}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:var(--space-2)var(--space-4);margin:var(--space-2)0 0}.facts dt{font-size:var(--text-xs);color:var(--muted)}.facts dd{overflow-wrap:anywhere;margin:0}.skill-meta{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--space-2)var(--space-4);margin:0}.skill-meta dt{font-size:var(--text-xs);color:var(--muted);padding-top:.15em}.skill-meta dd{overflow-wrap:anywhere;margin:0}.skill-document{display:flex;gap:var(--space-4);flex-direction:column}.skill-meta{padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.prose.document{line-height:1.65}.prose.document>:-webkit-any(p,ul,ol,blockquote,h1,h2,h3,h4){max-width:72ch}.prose.document>:-moz-any(p,ul,ol,blockquote,h1,h2,h3,h4){max-width:72ch}.prose.document>:is(p,ul,ol,blockquote,h1,h2,h3,h4){max-width:72ch}.meta,.hint,.empty{font-size:var(--text-sm);color:var(--muted);margin:0}.empty{padding:var(--space-6)var(--space-4);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius)}.text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.badge{display:inline-flex;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface-2);font-size:var(--text-xs);color:var(--muted);white-space:nowrap;align-items: center;gap:.25rem;line-height:1.3rem}.badge-busy{background:var(--success-soft);color:var(--success);border-color:#0000}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.badge-accent{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.badge-yolo{background:var(--yolo-soft);color:var(--yolo);border-color:#0000}.badge-long{background:var(--long-soft);color:var(--long);border-color:#0000}.failure{padding:var(--space-3)var(--space-4);border:1px solid var(--danger);border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);margin:0}.skeleton{border-radius:var(--radius);background:linear-gradient(100deg,var(--surface-2)30%,var(--surface-3)50%,var(--surface-2)70%);animation:1.4s linear infinite shimmer;background-size:300% 100%;height:4rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}button,input,select,textarea{font:inherit;color:inherit}button{display:inline-flex;justify-content:center;align-items: center;gap:var(--space-2);padding:0 var(--space-4);border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);font-weight:var(--weight-medium);cursor:pointer;touch-action:manipulation;transition:background-color var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out),transform var(--dur-fast)var(--ease-out),opacity var(--dur)var(--ease-out);min-height:2.5rem}button:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}button:active:not(:disabled){transform:scale(.97)}button.secondary,.tabs button{border-color:var(--control-border);color:var(--text);background:0 0}button.secondary:hover:not(:disabled),.tabs button:hover:not(:disabled){background:var(--surface-2);border-color:var(--control-border)}.tabs button[aria-selected=true],.tabs button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}button.danger{border-color:var(--danger);color:var(--danger);background:0 0}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}button:disabled{opacity:.55;cursor:default}.icon-button{display:inline-flex;width:var(--touch);min-width:var(--touch);height:var(--touch);min-height:var(--touch);color:var(--muted);background:0 0;border-color:#0000;justify-content:center;align-items: center;padding:0}.icon-button:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:#0000}.link-button{padding:0 var(--space-2);color:var(--accent);background:0 0;border-color:#0000;min-height:2rem}.link-button:hover:not(:disabled){background:var(--accent-soft);border-color:#0000}.danger-icon:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}input,select,textarea{padding:var(--space-2)var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius);background:var(--surface);transition:border-color var(--dur-fast)var(--ease-out);width:100%;min-height:2.5rem}input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}select:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}textarea{resize:vertical;line-height:var(--leading)}input[type=radio]:focus-visible{border-radius:50%}input[type=radio],input[type=checkbox]{accent-color:var(--accent);width:1.1rem;height:1.1rem;min-height:0}label{display:flex;gap:var(--space-1);font-size:var(--text-sm);color:var(--muted);flex-direction:column}label.inline{flex-direction:row;align-items: center}label.inline select{width:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--text);font-weight:var(--weight-medium);padding:0}.toolbar{display:flex;gap:var(--space-3);flex-wrap:wrap}.toolbar input{flex:1;width:auto;min-width:12rem}.tabs{display:flex;gap:var(--space-1)}.actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}.form{max-width:40rem}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-3)}.back{font-size:var(--text-sm);text-decoration:none}.page-bar{display:flex;align-items: center;gap:var(--space-2);margin:calc(var(--space-2)*-1)calc(var(--space-2)*-1)0}.page-bar strong{font-size:var(--text-md)}.crash{display:flex;align-items: center;gap:var(--space-3);margin:var(--space-10)auto 0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2);text-align:center;flex-direction:column;max-width:24rem}.crash p{color:var(--muted);margin:0}.crash-icon{display:grid;border-radius:var(--radius-full);background:var(--warn-soft);color:var(--warn);place-items: center;width:2.75rem;height:2.75rem}button.yolo-action{border-color:var(--yolo);background:var(--yolo);color:var(--bg)}button.yolo-action:hover:not(:disabled){border-color:var(--yolo);background:color-mix(in srgb,var(--yolo)88%,var(--text))}.switch{position:relative;border-color:var(--control-border);border-radius:var(--radius-full);background:var(--surface-3);transition:background-color var(--dur)var(--ease-out),border-color var(--dur)var(--ease-out);flex:none;width:2.75rem;min-width:2.75rem;height:1.65rem;min-height:1.65rem;padding:0}.switch:hover:not(:disabled){background:var(--border-strong);border-color:var(--control-border)}.switch-thumb{position:absolute;border-radius:var(--radius-full);background:var(--control-border);box-shadow:var(--shadow-1);transition:transform var(--dur)var(--ease-spring),background-color var(--dur)var(--ease-out);width:1.2rem;height:1.2rem;margin-top:-.6rem;top:50%;left:2px}.switch[aria-checked=true],.switch[aria-checked=true]:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.switch[aria-checked=true] .switch-thumb{background:var(--on-accent);transform:translate(1.1rem)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);gap:2px;padding:3px}.segmented-wide{display:flex}.segmented-wide label{flex:1}.segmented label{position:relative;justify-content:center;align-items: center;gap:var(--space-2);padding:0 var(--space-3);border-radius:calc(var(--radius) - 3px);color:var(--muted);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--dur)var(--ease-out),color var(--dur)var(--ease-out);flex-direction:row;min-height:2.25rem}.segmented label[data-checked=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1),inset 0 0 0 1px var(--border-strong)}.segmented input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%;inset:0}.segmented label:has(:focus-visible){outline:2px solid var(--accent)}.look-swatch{display:inline-flex;border:1px solid var(--control-border);border-radius:var(--radius-sm);gap:2px;padding:2px}.look-swatch i{display:block;border-radius:2px;width:.7rem;height:.9rem}.look-swatch[data-swatch=modern] i:first-child{background:var(--buncss-light,#f5f6f8)var(--buncss-dark,#0f1115)}.look-swatch[data-swatch=modern] i:nth-child(2){background:var(--buncss-light,#fff)var(--buncss-dark,#171a20)}.look-swatch[data-swatch=modern] i:nth-child(3){background:var(--buncss-light,#3a5bd9)var(--buncss-dark,#8ea4ff)}.look-swatch[data-swatch=camelot] i:first-child{background:var(--buncss-light,#f4ead5)var(--buncss-dark,#0f1726)}.look-swatch[data-swatch=camelot] i:nth-child(2){background:var(--buncss-light,#fbf5e6)var(--buncss-dark,#16213a)}.look-swatch[data-swatch=camelot] i:nth-child(3){background:var(--buncss-light,#b98a2c)var(--buncss-dark,#e6b94c)}.av-host{display:inline-block;user-select:none;flex:none;width:2.5rem;height:2.5rem;line-height:0}.av-host:empty{border-radius:var(--radius-full);background:var(--surface-3)}.av-host>svg{display:block;width:100%;height:100%}.av-host.static .av *{animation:none!important}.av-stack{position:relative;display:inline-block;flex:none}.av-stack-item{position:absolute;top:0}.toaster{position:fixed;z-index:50;left:0;right:0;bottom:calc(var(--tabbar-height) + var(--safe-bottom) + var(--space-3));display:flex;align-items: center;gap:var(--space-2);pointer-events:none;flex-direction:column}.app[data-fill]~.toaster{bottom:calc(5.5rem + var(--safe-bottom))}@media (min-width:720px){.toaster{bottom:var(--space-6)}}.toast{pointer-events:auto;display:flex;align-items: center;gap:var(--space-2);padding:var(--space-2)var(--space-2)var(--space-2)var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--raised);box-shadow:var(--shadow-2);font-size:var(--text-sm);animation:toast-in var(--dur-slow)var(--ease-spring)both;max-width:min(28rem,100vw - 2rem)}.toast[data-tone=danger]{border-color:var(--danger)}.toast .icon-button{width:2rem;min-width:2rem;height:2rem;min-height:2rem}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--raised);color:var(--text);box-shadow:var(--shadow-3);padding:0}dialog::backdrop{background:var(--scrim);opacity:var(--sheet-progress,1);transition:opacity var(--dur)var(--ease-out)}dialog.sheet{overflow:hidden;opacity:0;transition:transform var(--dur-slow)var(--ease-out),opacity var(--dur)var(--ease-out);width:min(32rem,100vw - 2rem);max-height:min(85dvh,48rem);margin:auto;transform:translateY(16px)scale(.98)}dialog.sheet[open]{display:flex;flex-direction:column}dialog.sheet[data-state=open]{opacity:1;transform:none}dialog.sheet[data-state=closing]{opacity:0;transition-duration:var(--dur);transform:translateY(16px)scale(.98)}dialog.sheet[data-state=opening]::backdrop{opacity:0}dialog.sheet[data-state=closing]::backdrop{opacity:0}dialog.sheet[data-dragging]{transition:none}.sheet-grab{display:none;padding:var(--space-2)0 var(--space-1);touch-action:none;justify-content:center}.sheet-handle{border-radius:var(--radius-full);background:var(--border-strong);width:2.5rem;height:.3rem}.sheet-body{position:relative;display:flex;gap:var(--space-3);overflow-y:auto;padding:var(--space-5)var(--space-5)calc(var(--space-5) + var(--safe-bottom));overscroll-behavior:contain;flex-direction:column;flex:auto;min-height:0}.sheet-head{display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);padding:var(--space-4)var(--space-4)var(--space-4)var(--space-5);border-bottom:1px solid var(--border);touch-action:none;flex:none}.sheet-head h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sheet-head button{touch-action:manipulation;flex:none}.sheet-head .icon-button{width:2.5rem;min-width:2.5rem;height:2.5rem;min-height:2.5rem}@media (min-width:720px){dialog.sheet.wide{width:min(56rem,100vw - 4rem)}}dialog.sheet.full{border:0;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0}@media (max-width:719px){dialog.sheet{border-radius:var(--radius-lg)var(--radius-lg)0 0;opacity:1;width:100%;max-width:none;margin:auto 0 0;transform:translateY(100%)}dialog.sheet[data-state=open]{transform:none}dialog.sheet[data-state=closing]{opacity:1;transform:translateY(100%)}.sheet-grab{display:flex}.sheet-head{padding:var(--space-3)var(--space-3)var(--space-3)var(--space-4)}.sheet-body{padding:var(--space-4)var(--space-4)calc(var(--space-4) + var(--safe-bottom))}}.menu{display:flex;list-style:none;flex-direction:column;margin:0;padding:0}.menu-item{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-1);border-radius:var(--radius);color:var(--text);text-align:left;text-decoration:none;font-weight:inherit;background:0 0;border:0;flex-direction:row;width:100%;min-height:3.5rem}.menu-link:hover,.menu-toggle:hover{background:var(--surface-2)}.menu-toggle{gap:var(--space-3);color:var(--text);font-size:var(--text-base);cursor:pointer;flex-direction:row}.menu-icon{display:grid;border-radius:var(--radius);background:var(--surface-2);color:var(--muted);flex:none;place-items: center;width:2.25rem;height:2.25rem}.menu-icon[data-tone=yolo]{background:var(--yolo-soft);color:var(--yolo)}.menu-icon[data-tone=long]{background:var(--long-soft);color:var(--long)}.menu-icon[data-tone=danger]{background:var(--danger-soft);color:var(--danger)}.menu-text{display:flex;flex-direction:column;flex:1;min-width:0}.menu-text .meta{font-weight:400}.more-list{display:flex;padding:var(--space-2);list-style:none;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;margin:0}.prose{overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose .code-block,.prose .table-wrap{margin:0 0 var(--space-3)}.prose ul,.prose ol{padding-left:1.4rem}.prose h1,.prose h2,.prose h3,.prose h4{margin:var(--space-4)0 var(--space-2);font-size:var(--text-md)}.prose blockquote{padding:0 var(--space-3);color:var(--muted);background:var(--surface-2);border-radius:var(--radius-sm)}.prose code{background:var(--surface-3);font-family:var(--font-mono);border-radius:4px;padding:.1em .35em;font-size:.88em}.code-block{position:relative}.code-block pre{padding:var(--space-3);overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm);margin:0}.code-block pre code{font-size:inherit;background:0 0;padding:0}.code-copy{position:absolute;opacity:0;transition:opacity var(--dur)var(--ease-out);width:2rem;min-width:2rem;height:2rem;min-height:2rem;top:.25rem;right:.25rem}.code-block:hover .code-copy{opacity:1}.code-copy:focus-visible{opacity:1}@media (hover:none){.code-copy{opacity:1}}.table-wrap{overflow-x:auto}.prose table{border-collapse:collapse;font-size:var(--text-sm)}.prose th,.prose td{padding:var(--space-1)var(--space-3);border:1px solid var(--border);text-align:left}.transcript{display:flex;gap:var(--space-3);list-style:none;flex-direction:column;margin:0;padding:0}.entry{padding:var(--space-3)var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.entry-user{background:var(--accent-soft)}.entry-compaction{color:var(--muted);border-style:dashed}.entry-tool{padding:var(--space-2)var(--space-4);font-size:var(--text-sm);background:0 0}.entry-tool summary{cursor:pointer;color:var(--muted)}.entry-tool pre{margin:var(--space-2)0 0;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;max-height:20rem}.entry-head{display:flex;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.role{font-size:var(--text-xs);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em}.call{display:block;margin-top:var(--space-2);font-size:var(--text-xs);color:var(--muted);overflow-wrap:anywhere}.theme-reveal::view-transition-old(root){animation:none;mix-blend-mode:normal}.theme-reveal::view-transition-new(root){animation:none;mix-blend-mode:normal}.theme-fade *,.theme-fade *:before,.theme-fade *:after{transition:background-color .24s var(--ease-out),color .24s var(--ease-out),border-color .24s var(--ease-out)!important}::view-transition-old(root){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-out)}@media (max-width:719px),(pointer:coarse){button,input,select,textarea{min-height:var(--touch)}input[type=radio],input[type=checkbox]{min-height:0}.switch{min-height:1.65rem}.link-button,.segmented label,.to-end,.prompt-details summary,.rail-link{min-height:var(--touch)}.prompt-details summary{display:flex;align-items: center}.code-copy,.toast .icon-button,.attached-chip .icon-button{width:var(--touch);min-width:var(--touch);height:var(--touch);min-height:var(--touch)}.back,.schedule a,.meta a{display:inline-flex;min-height:var(--touch);align-items: center}kbd{display:none}}.search-button{gap:var(--space-3);color:var(--muted)}.search-button span{display:none}@media (min-width:720px){.search-button span{display:inline}}.header-button{color:var(--text);background:0 0;border-color:#0000}.header-button:hover:not(:disabled){background:var(--surface-2);border-color:#0000}.switcher-search .switcher-add{margin-right:calc(var(--space-2)*-1);flex:none}.room-list{display:flex;gap:var(--space-2);list-style:none;flex-direction:column;margin:0;padding:0}.room-row{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);color:inherit;text-decoration:none;transition:transform var(--dur)var(--ease-out),border-color var(--dur-fast)var(--ease-out),box-shadow var(--dur)var(--ease-out);min-height:4.25rem}.room-row:hover{border-color:var(--agent-accent,var(--accent));box-shadow:var(--shadow-2)}.room-row[aria-current=page]{border-color:var(--agent-accent,var(--accent));background:color-mix(in srgb,var(--agent-accent,var(--accent))14%,var(--surface))}.room-row:active{transform:scale(.99)}.room-row[data-home]{padding:var(--space-4);background:color-mix(in srgb,var(--agent-accent,var(--accent))9%,var(--surface))}.room-row-main{display:flex;flex-direction:column;flex:1;gap:2px;min-width:0}.room-row-top{display:flex;align-items: center;gap:var(--space-2)}.room-row-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-row-time{font-size:var(--text-xs);color:var(--muted);flex:none;margin-left:auto}.room-row-preview{display:flex;align-items: center;gap:var(--space-2);color:var(--muted);font-size:var(--text-sm);min-width:0}.room-row-preview>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-row-badges{display:flex;gap:var(--space-1);empty-cells:hide;flex-wrap:wrap}.room-row-badges:empty{display:none}.room-row-chevron{color:var(--muted);transition:transform var(--dur)var(--ease-out);flex:none}.room-row:hover .room-row-chevron{transform:translate(3px)}.thread-group{display:flex;gap:var(--space-1);margin:var(--space-1)0 var(--space-2)var(--space-5);padding-left:var(--space-3);border-left:2px solid var(--border);flex-direction:column}.thread-list{display:flex;gap:var(--space-1);list-style:none;flex-direction:column;margin:0;padding:0}.thread-row{display:flex;align-items: center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-1)var(--space-3);border-radius:var(--radius);color:inherit;font-size:var(--text-sm);text-decoration:none;transition:background var(--dur-fast)var(--ease-out),border-color var(--dur-fast)var(--ease-out);border:1px solid #0000}.thread-row:hover{background:var(--surface);border-color:var(--border)}.thread-row[aria-current=page]{background:var(--accent-soft);border-color:var(--accent)}.thread-row[data-closed]{color:var(--muted)}.thread-row-icon{color:var(--muted);flex:none}.thread-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.thread-item{display:flex;align-items: center}.thread-item>.thread-row{flex:1;min-width:0}.thread-dismiss,.thread-clear{display:inline-flex;min-width:var(--touch);min-height:var(--touch);border-radius:var(--radius);color:var(--muted);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items: center}.thread-clear{padding:0 var(--space-3)}.thread-dismiss:hover,.thread-clear:hover{background:var(--surface);color:var(--text)}.thread-closed>summary{display:flex;min-height:var(--touch);padding:0 var(--space-3);color:var(--muted);font-size:var(--text-xs);cursor:pointer;list-style:none;align-items: center}.thread-closed>summary::-webkit-details-marker{display:none}.thread-closed>summary:before{content:"▸";margin-right:var(--space-2)}.thread-closed[open]>summary:before{content:"▾"}.thread-closed>summary:hover{color:var(--text)}.thread-closed[open]>summary{margin-bottom:var(--space-1)}.thread-link{font-weight:600}.line .prose{text-align:center;flex:0 auto}.line .prose p{margin:0}.typing{display:inline-flex;flex:none;gap:3px}.typing i{border-radius:var(--radius-full);background:var(--success);animation:bounce 1.1s var(--ease-in-out)infinite;width:5px;height:5px}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:none;opacity:.45}30%{transform:translateY(-4px);opacity:1}}.room{position:relative;display:flex;background:var(--bg);flex-direction:column;flex:1;min-height:0}.room-head{display:flex;align-items: center;gap:var(--space-3);padding:calc(var(--space-2) + var(--safe-top))var(--space-3)var(--space-2)var(--space-2);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface)92%,transparent);backdrop-filter:blur(14px);z-index:4}.room-title{display:flex;flex-direction:column;flex:1;min-width:0}.room-title h1{overflow:hidden;font-size:var(--text-md);text-overflow:ellipsis;white-space:nowrap}.room-status{font-size:var(--text-xs);color:var(--muted)}.room-status[data-working]{color:var(--success)}@media (min-width:720px){.room-back{display:none}.room-head{padding-left:var(--space-4)}}button.room-name{display:inline;border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;min-height:0;padding:0}button.room-name:hover:not(:disabled){text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:.2em;background:0 0}.room-muted,.muted-mark{margin-left:var(--space-2);vertical-align:-.1em;color:var(--muted);flex:none}button.room-picture{border-radius:var(--radius-full);background:0 0;border:0;flex:none;min-height:0;padding:0}button.room-picture:hover:not(:disabled){background:0 0}.switcher{position:fixed;z-index:30;--switcher-progress:0;visibility:hidden;pointer-events:none;transition:visibility 0s linear var(--dur-slow);inset:0}.switcher[data-state=open]{--switcher-progress:1}.switcher[data-state=open],.switcher[data-state=dragging]{visibility:visible;pointer-events:auto;transition:none}.switcher-scrim{position:absolute;background:var(--scrim);opacity:var(--switcher-progress);transition:opacity var(--dur-slow)var(--ease-out);touch-action:pan-y;inset:0}.switcher-panel{position:absolute;display:flex;padding:var(--safe-top)0 var(--safe-bottom)var(--safe-left);border-right:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-2);outline:none;transform:translate3d(calc((var(--switcher-progress) - 1)*100%),0,0);transition:transform var(--dur-slow)var(--ease-out);touch-action:pan-y;flex-direction:column;width:min(80vw,360px);inset:0 auto 0 0}.switcher[data-state=dragging] .switcher-scrim,.switcher[data-state=dragging] .switcher-panel{transition:none}.switcher-search{display:flex;align-items: center;gap:var(--space-2);margin:var(--space-3)var(--space-3)var(--space-1);padding:0 var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-full);background:var(--surface-2);color:var(--muted)}.switcher-search svg{flex:none}.switcher-search input{min-height:var(--touch);color:var(--text);outline:none;background:0 0;border:0;min-width:0;padding:0;font-size:1rem}.switcher-search:focus-within{border-color:var(--accent)}.switcher-scroll{overflow-y:auto;overscroll-behavior:contain;padding:0 var(--space-2)var(--space-3);flex:1;min-height:0}.switcher-heading{margin:var(--space-3)var(--space-2)var(--space-1);color:var(--muted);font-size:var(--text-xs);font-weight:var(--weight-medium)}.switcher-heading[data-waiting]{color:var(--warn)}.switcher-list{display:flex;list-style:none;flex-direction:column;gap:2px;margin:0;padding:0}.switcher-row{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-3);border-radius:var(--radius);color:inherit;text-decoration:none;min-height:3.5rem}.switcher-row:hover,.switcher-row:active{background:var(--surface-2)}.switcher-row[aria-current=page]{background:color-mix(in srgb,var(--agent-accent,var(--accent))14%,var(--surface))}.switcher-picture{position:relative;display:inline-flex;flex:none}.switcher-dot{position:absolute;border:2px solid var(--surface);border-radius:var(--radius-full);background:var(--warn);width:.7rem;height:.7rem;top:-1px;right:-1px}.switcher-name{display:flex;flex-direction:column;flex:1;min-width:0}.switcher-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-working{display:inline-flex;align-items: center;gap:var(--space-2);color:var(--success);font-size:var(--text-xs)}.switcher-mode{display:inline-flex;flex:none}.switcher-mode[data-mode=yolo]{color:var(--yolo)}.switcher-mode[data-mode=long]{color:var(--long)}.switcher-mode[data-mode=muted]{color:var(--muted)}.mode-banner{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-slow)var(--ease-out);z-index:3}.mode-banner[data-open=true]{grid-template-rows:1fr}.mode-banner-inner{overflow:hidden;min-height:0}.mode-lines{display:flex;flex-direction:column}.mode-line{display:flex;align-items: center;gap:var(--space-2);padding:0 var(--space-2)0 var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium)}.mode-line>span{flex:1}.mode-line[data-mode=yolo]{background:var(--yolo-soft);color:var(--yolo)}.mode-line[data-mode=long]{background:var(--long-soft);color:var(--long)}.mode-line .link-button{color:inherit;text-decoration:underline}.mode-line[data-mode=yolo] svg{animation:flash 2.6s var(--ease-in-out)infinite}@keyframes flash{50%{opacity:.45}}.room-scroll{overflow-anchor:auto;overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:var(--space-4);flex:1;min-height:0}.room-content{display:flex;gap:var(--space-3);padding:var(--space-4)var(--space-3);flex-direction:column;justify-content:flex-end;width:100%;max-width:52rem;min-height:100%;margin:0 auto}.older{align-self: center}.messages{display:flex;list-style:none;flex-direction:column;gap:2px;margin:0;padding:0}.message{display:flex;align-items: flex-end;gap:var(--space-2);content-visibility:auto;contain-intrinsic-size:auto 6rem}@supports not (overflow-anchor: auto){.message{content-visibility:visible}}.message[data-header]{margin-top:var(--space-3)}.message[data-mine]{justify-content:flex-end}.message[data-enter],.line[data-enter],.slot[data-enter]{animation:arrive var(--dur-slow)var(--ease-out)both}@keyframes arrive{0%{opacity:0;transform:translateY(10px)scale(.985)}}.message-avatar{flex:none;align-self: flex-start;width:32px}.message-main{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:min(40rem,86%)}.message[data-mine] .message-main{align-items: flex-end}.message-meta{display:flex;align-items:baseline;gap:var(--space-2);padding:0 var(--space-1);font-size:var(--text-xs);color:var(--muted)}.message-meta strong{color:var(--text);font-size:var(--text-sm)}.bubble{padding:var(--space-2)var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-1);min-width:0}.message[data-mine] .bubble{background:var(--accent);color:var(--on-accent);border-bottom-right-radius:var(--radius-sm);border-color:#0000}.message[data-mine] .bubble a,.message[data-mine] .bubble code{color:inherit}.message[data-mine] .prose code,.message[data-mine] .prose blockquote{background:#ffffff2e}.message[data-mine] .code-block pre{color:inherit;background:#0003;border-color:#0000}.message:not([data-mine]) .bubble{border-bottom-left-radius:var(--radius-sm)}.message[data-live] .bubble{border-style:dashed}.message[data-pending=sending] .bubble{opacity:.6}.message[data-pending=failed] .bubble{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.pending-actions{justify-content:flex-end}.failure-text{color:var(--danger)}.files{display:flex;gap:var(--space-2);margin:var(--space-2)0 0;list-style:none;flex-wrap:wrap;padding:0}.bubble>.files:first-child{margin-top:0}.file-image{display:block;border-radius:var(--radius);object-fit:cover;max-width:min(100%,22rem);max-height:18rem}.file-chip{display:inline-flex;align-items: center;gap:var(--space-2);padding:var(--space-1)var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text);font-size:var(--text-sm);text-decoration:none}.message[data-mine] .file-chip{color:inherit;background:#fff3}.line{display:flex;justify-content:center;align-items: center;gap:var(--space-2);margin:var(--space-2)0;font-size:var(--text-xs);color:var(--muted)}.day{display:flex;margin:var(--space-4)0 var(--space-1);font-size:var(--text-xs);color:var(--muted);justify-content:center}.day span{padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);line-height:1.5rem}.slot{list-style:none;margin:var(--space-2)0}.progress{display:flex;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);animation:arrive var(--dur-slow)var(--ease-out)both;flex-direction:column}.progress-head{display:flex;align-items: center;gap:var(--space-3);font-size:var(--text-sm);color:var(--muted)}.progress-label{flex:1}.progress-bar{position:relative;overflow:hidden;border-radius:var(--radius-full);background:var(--surface-3);width:2.5rem;height:.3rem}.progress-bar:after{content:"";position:absolute;border-radius:inherit;background:var(--agent-accent,var(--accent));animation:sweep 1.3s var(--ease-in-out)infinite;width:60%;inset:0}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(170%)}}.chips{display:flex;gap:var(--space-1);list-style:none;flex-wrap:wrap;margin:0;padding:0}.chip{display:inline-flex;align-items: center;gap:var(--space-2);padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);font-family:var(--font-mono);font-size:var(--text-xs);animation:chip-in var(--dur)var(--ease-spring)both;max-width:100%;line-height:1.6rem}@keyframes chip-in{0%{opacity:0;transform:scale(.85)}}.chip-more-item{display:contents}.chip-more{border:1px dashed var(--border);color:var(--muted);font:inherit;cursor:pointer;background:0 0;min-height:0}.chip-dot{border-radius:var(--radius-full);background:var(--muted);flex:none;width:.45rem;height:.45rem}.chip[data-status=running] .chip-dot{background:var(--accent);animation:pulse-dot 1s var(--ease-in-out)infinite}.chip[data-status=ok] .chip-dot{background:var(--success)}.chip[data-status=failed] .chip-dot,.chip[data-status=refused] .chip-dot{background:var(--danger)}@keyframes pulse-dot{50%{transform:scale(1.5);opacity:.5}}.chip-preview{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.progress-flow{display:block;text-align:left}.progress-text{overflow:hidden;color:var(--muted);font-size:var(--text-sm);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-mask-image:linear-gradient(#0000,#000 40%);mask-image:linear-gradient(#0000,#000 40%);display:flex;background:0 0;border:0;flex-direction:column;justify-content:flex-end;width:100%;min-height:0;max-height:4.6em;padding:0;font-weight:400;line-height:1.5}.progress-text:hover:not(:disabled){background:0 0;border:0}.progress-text[data-expanded=true]{overflow-y:auto;-webkit-mask-image:none;mask-image:none;max-height:40dvh}.caret{display:inline-block;vertical-align:text-bottom;background:var(--accent);animation:1s steps(2,start) infinite blink;width:.5ch;height:1.05em;margin-left:2px}@keyframes blink{to{visibility:hidden}}.to-end{position:absolute;right:var(--space-4);z-index:3;padding:0 var(--space-3);border-radius:var(--radius-full);box-shadow:var(--shadow-2);animation:toast-in var(--dur-slow)var(--ease-spring)both;min-height:2.25rem;bottom:5.5rem}.room-note,.offline-note{padding:var(--space-3)var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--muted);background:var(--surface);border-top:1px solid var(--border);margin:0}.offline-banner{display:flex;justify-content:center;align-items: center;gap:var(--space-2);padding:var(--space-2)var(--space-4);background:var(--warn-soft);color:var(--warn);font-size:var(--text-sm);font-weight:var(--weight-medium);animation:banner-in var(--dur-slow)var(--ease-out)both}@keyframes banner-in{0%{opacity:0;transform:translateY(-6px)}}.spinner{border-radius:var(--radius-full);animation:.8s linear infinite spin;border:2px solid;border-right-color:#0000;flex:none;width:.9rem;height:.9rem}@keyframes spin{to{transform:rotate(360deg)}}.pending-note{color:var(--muted)}.composer{display:flex;gap:var(--space-2);padding:var(--space-2)var(--space-3)calc(var(--space-2) + var(--safe-bottom));flex-direction:column;width:100%;max-width:52rem;margin:0 auto}.composer-row{display:flex;align-items: flex-end;gap:var(--space-1);padding:var(--space-1);border:1px solid var(--control-border);background:var(--surface);box-shadow:var(--shadow-1);transition:border-color var(--dur-fast)var(--ease-out),box-shadow var(--dur)var(--ease-out);border-radius:1.5rem}.composer-row:focus-within{border-color:var(--agent-accent,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb,var(--agent-accent,var(--accent))24%,transparent)}.composer textarea{min-height:var(--touch);padding:.7rem var(--space-2);resize:none;background:0 0;border:0;flex:1;max-height:200px;font-size:1rem}.composer textarea:focus-visible{outline:none}.composer-send{width:var(--touch);height:var(--touch);border-radius:var(--radius-full);flex:none;padding:0}.composer-send:disabled{background:var(--surface-3);color:var(--muted);border-color:#0000}.composer-stop{border-radius:var(--radius-full);background:var(--danger-soft);color:var(--danger);flex:none}.composer-stop:hover:not(:disabled){background:var(--danger-soft);color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.attached{display:flex;gap:var(--space-1);list-style:none;flex-wrap:wrap;margin:0;padding:0}.attached-chip{display:inline-flex;align-items: center;gap:var(--space-2);padding:0 0 0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);font-size:var(--text-sm);animation:chip-in var(--dur)var(--ease-spring)both;max-width:100%}.chip-body{display:flex;text-align:left;flex-direction:column;min-width:0}.chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.chip-body .meta{overflow:hidden;font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.chip-take{display:inline-flex;align-items: center;gap:var(--space-2);padding:var(--space-1)0;color:inherit;background:0 0;border:0;min-height:0;font-weight:400}.chip-take:hover:not(:disabled){color:var(--accent);background:0 0;border:0}.attached-chip[data-state=uploading]{opacity:.6}.attached-chip[data-state=failed]{border-color:var(--danger);color:var(--danger)}.attached-chip .icon-button{width:2rem;min-width:2rem;height:2rem;min-height:2rem}.prompt{display:flex;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2);transition:box-shadow var(--dur-slow)var(--ease-out),opacity var(--dur-slow)var(--ease-out);flex-direction:column}.prompt-action{background:linear-gradient(180deg,var(--accent-soft),var(--surface)3.5rem)}.prompt-timeout{background:linear-gradient(180deg,var(--warn-soft),var(--surface)3.5rem)}.prompt-ask{background:linear-gradient(180deg,var(--long-soft),var(--surface)3.5rem)}.prompt[data-ended]{box-shadow:var(--shadow-1);background:var(--surface)}.prompt-head{display:flex;align-items: center;gap:var(--space-2);flex-wrap:wrap}.prompt-icon{display:grid;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-ink);place-items: center;width:1.9rem;height:1.9rem}.prompt-timeout .prompt-icon{background:var(--warn-soft);color:var(--warn)}.prompt-ask .prompt-icon{background:var(--long-soft);color:var(--long)}.prompt-outcome{display:inline-flex;align-items: center;gap:var(--space-1);padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--surface-2);color:var(--muted);font-size:var(--text-xs);animation:chip-in var(--dur)var(--ease-spring)both;margin-left:auto;line-height:1.4rem}.prompt-outcome[data-outcome=approved],.prompt-outcome[data-outcome=answered]{background:var(--success-soft);color:var(--success)}.prompt-outcome[data-outcome=declined],.prompt-outcome[data-outcome=cancelled]{background:var(--danger-soft);color:var(--danger)}.prompt-meta{color:var(--muted);font-size:var(--text-xs);margin:0}.collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--dur-slow)var(--ease-out),opacity var(--dur)var(--ease-out)}.collapse[data-open=true]{grid-template-rows:1fr;opacity:1}.collapse-inner{display:flex;gap:var(--space-3);overflow:hidden;flex-direction:column;min-height:0;margin:-3px;padding:3px}.prompt-details{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm)}.prompt-details summary{padding:var(--space-2)var(--space-3);cursor:pointer;font-weight:var(--weight-medium)}.prompt-details>:not(summary){padding:0 var(--space-3)var(--space-3);margin:0}.prompt-input{overflow:auto;font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;overflow-wrap:anywhere;max-height:14rem}.prompt-files{list-style:none}.prompt-files li{display:flex;align-items: center;gap:var(--space-2)}.copy-action{align-self: flex-start}.field,.options{display:flex;gap:var(--space-2);flex-direction:column}.prompt textarea{resize:none}.prompt-answer{padding:var(--space-2)var(--space-3);border-radius:var(--radius);background:var(--surface-2);font-size:var(--text-sm);list-style:none;margin:0}.option{align-items: flex-start;gap:var(--space-3);min-height:var(--touch);padding:var(--space-2)var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--text-base);cursor:pointer;transition:border-color var(--dur-fast)var(--ease-out),background-color var(--dur-fast)var(--ease-out);flex-direction:row}.option:hover{border-color:var(--border-strong)}.option[data-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.option input{margin-top:.15rem}.option span{display:flex;flex-direction:column}.option-preview{padding:var(--space-3);overflow:auto;border-radius:var(--radius);background:var(--surface-2);font-family:var(--font-mono);font-size:var(--text-xs);white-space:pre-wrap;animation:arrive var(--dur)var(--ease-out)both;max-height:12rem;margin:0}dialog.palette{width:min(36rem,100vw - 1.5rem);max-height:min(70dvh,32rem);margin:12vh auto auto}dialog.palette .sheet-body{gap:0;padding:0}@media (max-width:719px){dialog.palette{margin:calc(var(--safe-top) + .5rem)auto auto;border-radius:var(--radius-lg);border-bottom:1px solid var(--border);opacity:0;width:calc(100vw - 1rem);transform:translateY(-12px)scale(.98)}dialog.palette[data-state=open]{opacity:1;transform:none}dialog.palette[data-state=closing]{opacity:0;transform:translateY(-12px)scale(.98)}dialog.palette .sheet-grab{display:none}}.palette-input{display:flex;align-items: center;gap:var(--space-3);padding:0 var(--space-4);border-bottom:1px solid var(--border);color:var(--muted)}.palette-input input{color:var(--text);background:0 0;border:0;min-height:3.25rem;font-size:1rem}.palette-input input:focus-visible{outline:none}.palette-list{padding:var(--space-2);overflow-y:auto;list-style:none;margin:0}.palette-list a{display:flex;align-items: center;gap:var(--space-3);min-height:var(--touch);padding:0 var(--space-3);border-radius:var(--radius);color:var(--text);text-decoration:none}.palette-list li[data-active] a,.palette-list a[aria-current=true]{background:var(--accent-soft);color:var(--accent-ink)}.palette-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.palette-icon{display:grid;border-radius:var(--radius-full);background:var(--surface-2);place-items: center;width:28px;height:28px}.palette-empty{padding:var(--space-4);text-align:center;color:var(--muted)}.profile-head{display:flex;align-items: center;gap:var(--space-4)}.profile-head>div{display:flex;gap:var(--space-2);flex-direction:column;align-items: flex-start}.schedule-list{display:flex;gap:var(--space-3);list-style:none;flex-direction:column;margin:0;padding:0}.schedule{display:flex;align-items: flex-start;gap:var(--space-3)}.schedule-main{display:flex;gap:var(--space-1);flex-direction:column;flex:1;min-width:0}.schedule-prompt{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;color:var(--text);overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:0}.split{display:grid;grid-template-columns:minmax(18rem,22rem)minmax(0,1fr);flex:1;min-height:0}.split-list{overflow-y:auto;border-right:1px solid var(--border);background:var(--bg);min-height:0}.split-list .page[data-column]{padding:var(--space-4);gap:var(--space-4);max-width:none}.split-list .search-button span{display:none}.split-detail{display:flex;min-width:0;min-height:0}.split-detail .room{min-width:0}.agent-sheet .form{max-width:none}.agent-sheet h3{font-size:var(--text-md)}.field-head{display:flex;justify-content:space-between;align-items: center;gap:var(--space-3)}.field-label,.agent-sheet legend{font-size:var(--text-sm);color:var(--muted);font-weight:var(--weight-medium)}button.compact{padding:0 var(--space-3);font-size:var(--text-sm);min-height:2rem}.option-chips{display:flex;gap:var(--space-2);overflow-y:auto;overscroll-behavior:contain;flex-wrap:wrap;max-height:10.5rem}button.option-chip{padding:0 var(--space-3);border-color:var(--control-border);border-radius:var(--radius-full);background:var(--surface);color:var(--text);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;min-height:2.25rem;font-weight:400}button.option-chip:hover:not(:disabled){border-color:var(--accent);background:var(--surface-2)}button.option-chip[aria-pressed=true],button.option-chip[aria-pressed=true]:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:var(--on-accent)}textarea.prompt-full{resize:none;font-family:var(--font-mono);font-size:var(--text-sm);flex:1;min-height:12rem}.review-fields{display:flex;gap:var(--space-2);list-style:none;flex-direction:column;margin:0;padding:0}.review-fields li{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);flex-wrap:wrap}.review-before{color:var(--muted);text-decoration:line-through}pre.diff{padding:var(--space-2)0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-family:var(--font-mono);font-size:var(--text-xs);max-height:18rem;margin:0;line-height:1.5}.diff-line{display:block;padding:0 var(--space-3)0 0;white-space:pre-wrap;overflow-wrap:anywhere}.diff-line[data-kind=add]{background:color-mix(in srgb,var(--success)16%,transparent)}.diff-line[data-kind=del]{background:color-mix(in srgb,var(--danger)16%,transparent)}.diff-mark{display:inline-block;text-align:center;color:var(--muted);user-select:none;width:1.5rem}.field-tools{display:inline-flex;align-items: center;gap:var(--space-2)}.sheet.full .field textarea.prompt-full{min-height:55vh}.sheet.full .sheet-body>.stack,.sheet.full .review,.sheet.full .review>.field{flex:1;min-height:0}.sheet.full .review pre.diff{flex:1;min-height:12rem;max-height:none}.skill-lock{display:flex;align-items: center;gap:var(--space-2)}.history .menu-item[aria-pressed=true]{background:var(--surface-2)}.creator{display:grid;gap:var(--space-5);align-items: start}@media (min-width:720px){.creator{grid-template-columns:13rem minmax(0,1fr)}.creator-preview{position:sticky;top:var(--space-4)}}.creator-preview{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--agent-accent,var(--accent))8%,var(--surface));flex-direction:column}.creator-body{display:flex;gap:var(--space-4);flex-direction:column;min-width:0}.creator-field{display:flex;gap:var(--space-2);flex-direction:column;min-width:0}.creator-field h3{font-size:var(--text-sm);color:var(--muted);font-weight:var(--weight-medium)}dialog.sheet dialog.sheet .creator-field>h3{display:none}.creator-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(4.5rem,1fr));gap:var(--space-2)}.creator-strip{display:flex;gap:var(--space-2);padding:3px 3px var(--space-1);overflow-x:auto;scroll-snap-type:x proximity}.creator-strip[data-more=end]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.creator-strip[data-more=start]{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 2.5rem),#0000)}.creator-strip[data-more=both]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}.creator-tile{display:flex;padding:var(--space-2)var(--space-1);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--text-xs);scroll-snap-align:start;flex-direction:column;flex:none;align-items: center;gap:2px;min-width:4.25rem}.creator-grid .creator-tile{min-width:0}.creator-tile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.creator-tile:hover{border-color:var(--control-border)}.creator-tile[aria-pressed=true],.creator-swatch[aria-pressed=true]{border-color:var(--agent-accent,var(--accent));background:color-mix(in srgb,var(--agent-accent,var(--accent))14%,var(--surface));box-shadow:0 0 0 2px var(--agent-accent,var(--accent))}.creator-swatches{display:flex;align-items: center;gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0}.creator-swatch{border:2px solid var(--surface);border-radius:var(--radius-full);box-shadow:0 0 0 1px var(--control-border);width:2.25rem;height:2.25rem;min-height:0;padding:0}.creator-custom{display:flex;gap:var(--space-4);flex-wrap:wrap}.creator-custom label{display:flex;align-items: flex-start;gap:var(--space-1);font-size:var(--text-sm);color:var(--muted);flex-direction:column}.creator-custom input[type=color],.creator-swatches input[type=color]{border:1px solid var(--control-border);border-radius:var(--radius-sm);background:0 0;width:2.25rem;height:2.25rem;padding:0}.field-error{color:var(--danger);font-size:var(--text-sm);margin:0}.creator-sections{display:flex;gap:var(--space-2);list-style:none;flex-direction:column;margin:0;padding:0}.creator-section{display:flex;justify-content:space-between;align-items: center;gap:var(--space-3);text-align:left;width:100%}.creator-actions{flex-wrap:wrap}[data-hold]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-hold=text] .bubble{-webkit-user-select:text;user-select:text}.message[data-hold]:focus-visible{outline:2px solid var(--focus,var(--accent));outline-offset:2px;border-radius:var(--radius-lg)}.action-popover{position:fixed;z-index:60;display:flex;overflow-y:auto;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-2);outline:none;animation:popover-in var(--dur)var(--ease-out)both;flex-direction:column;min-width:13rem;max-width:min(22rem,100vw - 16px);max-height:calc(100dvh - 16px)}@keyframes popover-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.action-popover .menu-item{padding:var(--space-1)var(--space-2);font-size:var(--text-sm);cursor:pointer;min-height:2.5rem}.action-popover .menu-icon{width:1.75rem;height:1.75rem}.action-items .menu-item{cursor:pointer}.action-items .menu-item:hover{background:var(--surface-2)}.action-items .menu-item:focus-visible{background:var(--surface-2)}.action-items .menu-item[data-tone=danger] strong{color:var(--danger)}.action-items .menu-check{color:var(--accent);flex:none;margin-left:auto}.action-popover .menu-item[role]{width:100%}.rt-table{position:relative;display:flex;aspect-ratio:10/11;flex-direction:column;width:100%;min-height:0;max-height:100%}.rt-table[data-variant=full]:not([data-list]){aspect-ratio:auto;flex:1 1 0;min-height:16rem}.rt-table[data-variant=compact]{aspect-ratio:auto;flex:none;height:120px}.rt-table-stage{position:relative;flex:1 1 0;min-height:0}.rt-table[data-list]{aspect-ratio:auto;height:100%}.rt-table[data-list] .rt-table-stage{aspect-ratio:10/11;flex:none;max-height:60%}.rt-table[data-list] .rt-table-stage>ul{display:none}.rt-table-list{overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));list-style:none;flex:auto;gap:.4rem;min-height:0;margin:0;padding:.5rem}.rt-table-list button{display:flex;color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:1px solid;border-radius:.5rem;align-items: center;gap:.5rem;width:100%;min-height:2.75rem;padding:.4rem .6rem}.rt-table-list button:before{content:"";background:var(--seat);border-radius:50%;flex:none;width:.75rem;height:.75rem}.t2d{position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;width:100%;height:100%}.t2d svg{display:block;width:100%;height:100%}.t2d .seat{cursor:pointer;outline:none}.t2d .seat:focus-visible .plate{stroke:currentColor;stroke-width:3}.t2d .seat .lift,.t2d .seat .halo,.t2d .seat .badge,.t2d .seat .orbit,.t2d .seat .beam{transform-box:fill-box;transform-origin:center}.t2d .seat .halo{opacity:0;transition:opacity .35s}.t2d .seat .badge{opacity:0;transition:opacity .25s,transform .35s cubic-bezier(.3,1.6,.5,1);transform:scale(.4)}.t2d .seat .orbit{opacity:0;transition:opacity .3s}.t2d .seat .beam{opacity:0;transition:opacity .35s}.t2d .seat:hover .halo{opacity:.35}.t2d.focus .seat:not([data-focus]) .lift{opacity:.7}.t2d .seat[data-focus] .lift{transform:scale(1.06)}.t2d.dim .seat:not([data-state=speaking]) .lift{opacity:.78}.t2d .seat[data-state=idle] .lift{animation:3.4s ease-in-out infinite t2d-breathe}.t2d .seat[data-state=thinking] .halo{opacity:.25}.t2d .seat[data-state=thinking] .orbit{opacity:1;animation:2.6s linear infinite t2d-spin}.t2d .seat[data-state=working] .halo{opacity:.7;animation:1.1s ease-in-out infinite t2d-pulse}.t2d .seat[data-state=working] .lift{animation:.55s ease-in-out infinite t2d-bob}.t2d .seat[data-state=waiting] .halo{opacity:.8;animation:1.7s ease-in-out infinite t2d-pulse}.t2d .seat[data-state=waiting] .badge{opacity:1;animation:1.6s ease-in-out infinite t2d-wave;transform:scale(1)}.t2d .seat[data-state=waiting] .lift{transform:translateY(2px)}.t2d .seat[data-state=speaking] .halo{opacity:.85}.t2d .seat[data-state=speaking] .beam{opacity:1}.t2d .seat[data-state=speaking] .lift{animation:.5s ease-in-out infinite t2d-talk}.t2d .seat[data-state=done] .badge{opacity:1;transform:scale(1)}.t2d .seat[data-state=done] .lift{animation:.6s ease-out t2d-pop}.t2d .seat[data-state=done] .halo{opacity:.4}.t2d .seat[data-state=error] .badge{opacity:1;transform:scale(1)}.t2d .seat[data-state=error] .lift{animation:.45s linear t2d-shake}.t2d .seat[data-state=error] .halo{opacity:.85;animation:.9s steps(2,end) 2 both t2d-flicker}@keyframes t2d-breathe{50%{transform:scaleY(1.02)}}@keyframes t2d-spin{to{transform:rotate(360deg)}}@keyframes t2d-pulse{50%{opacity:.35;transform:scale(1.08)}}@keyframes t2d-bob{50%{transform:translateY(-3px)}}@keyframes t2d-wave{50%{transform:scale(1.12)rotate(6deg)}}@keyframes t2d-talk{50%{transform:scale(1.025)}}@keyframes t2d-pop{40%{transform:scale(1.14)}}@keyframes t2d-shake{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes t2d-flicker{50%{opacity:.25}}.t2d.reduced .seat *{animation:none!important;transition:none!important}.t2d .seat-in{animation:.82s ease-out both t2d-in}.t2d .seat-out{pointer-events:none;animation:.64s ease-in both t2d-out}.t2d .seat-ring{fill:none;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:.82s ease-out both t2d-ring}.t2d .seat-out .puff{transform-box:fill-box;transform-origin:center;animation:.72s ease-out both t2d-puff}.t2d.reduced .seat-in,.t2d.reduced .seat-out{animation-duration:.16s}.t2d.reduced .seat-ring,.t2d.reduced .seat-out .puff{display:none}@keyframes t2d-in{0%{opacity:0}}@keyframes t2d-out{40%{opacity:1}to{opacity:0}}@keyframes t2d-ring{0%{opacity:0;transform:scale(.3)}40%{opacity:1}to{opacity:0;transform:scale(1.4)}}@keyframes t2d-puff{0%{opacity:1;transform:scale(.3)}50%{opacity:1}to{opacity:0;transform:translateY(-18px)scale(1.5)}}.t2d.reduced .seat[data-state=waiting] .halo,.t2d.reduced .seat[data-state=working] .halo{opacity:.6}.table-page{display:flex;gap:var(--space-2);padding:var(--space-3)var(--space-3)var(--space-2);flex-direction:column;flex:1;width:100%;min-height:0}@media (min-width:720px){.table-page{padding:var(--space-5)var(--space-6)var(--space-4)}}.table-frame{display:flex;flex-direction:column;flex:1;min-height:0}.table-host{display:flex;flex-direction:column;flex:1;justify-content:flex-start;align-items: center;width:100%;min-height:0}.table-empty{margin:var(--space-8)auto;color:var(--muted)}.table-empty-state{margin:var(--space-8)auto;display:flex;align-items: center;gap:var(--space-2);text-align:center;flex-direction:column;max-width:24rem}.table-empty-state p{margin:0}.table-tools{display:flex;align-items: center;gap:var(--space-2)}.seat-row .menu-text{flex:1;min-width:0}.room-table-slot{flex:none}.group-strip{border-bottom:1px solid var(--border);background:var(--surface)}.group-table-button{gap:var(--space-1);padding-inline:var(--space-2);width:auto}.group-table-label{font-size:var(--text-xs)}.rt-names{position:absolute;overflow:hidden;pointer-events:none;font-family:var(--rt-font,system-ui,sans-serif);inset:0}.rt-name{position:absolute;border:2px solid var(--rt-ink,#0b0f1e);background:linear-gradient(var(--rt-gold,#e3b24b),var(--rt-gold-dark,#9a6c1d));color:var(--rt-plate-ink,#3a2410);font:700 var(--rt-name-size,12px)/1.25 var(--rt-font,system-ui,sans-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;pointer-events:auto;visibility:hidden;will-change:transform;border-radius:.3em;max-width:12em;min-height:0;padding:.12em .7em .16em;top:0;left:0}.rt-name:focus-visible{outline:3px solid var(--accent,#3a5bd9);outline-offset:2px}.rt-speed{mix-blend-mode:screen}.table-frame{position:relative}.room-scene,.room-scene .table-host{flex:1;min-height:0}.scene-box{position:absolute;inset-inline:var(--space-3);bottom:var(--space-3);display:flex;border:3px solid var(--rt-ink,#0b0f1e);background:color-mix(in srgb,var(--surface)94%,transparent);transform:translateY(calc(100% + var(--space-4)));opacity:0;pointer-events:none;z-index:4;border-radius:1.1rem;flex-direction:column;max-width:46rem;max-height:62%;margin-inline-start:auto;margin-inline-end:auto;transition:transform .36s cubic-bezier(.2,.9,.25,1.05),opacity .2s ease-out;box-shadow:0 .6rem 2rem #00000073}.scene-box[data-open]{opacity:1;pointer-events:auto;transform:none}.scene-tab{display:flex;align-items: center;gap:var(--space-2);margin:-1.1rem var(--space-3)0;padding:.2rem var(--space-2).2rem .3rem;max-width:calc(100% - 2*var(--space-3));border:3px solid var(--rt-ink,#0b0f1e);background:var(--agent-accent,var(--accent));color:#fff;border-radius:.8rem;align-self: flex-start}.scene-chip{display:grid;border:3px solid var(--rt-ink,#0b0f1e);background:var(--surface);overflow:hidden;border-radius:50%;place-items: center;width:2.4rem;height:2.4rem;margin:-.9rem 0 -.3rem}.scene-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);text-shadow:0 1px #00000059;flex:0 auto;min-width:4ch}.scene-tools{display:flex;flex:none;align-items: center;gap:.15rem;margin-inline-start:var(--space-2)}.scene-tools .icon-button{color:inherit}.scene-log-button{gap:var(--space-1);padding-inline:var(--space-2);font-size:var(--text-xs);flex:none;width:auto}.scene-log-button span{white-space:nowrap}.scene-body{overflow:auto;padding:var(--space-2)var(--space-3)var(--space-1);flex:auto;min-height:0}.scene-line{overflow-wrap:anywhere;min-height:2.6rem;font-size:1.02rem;line-height:1.55}.scene-line[role=button]{cursor:pointer}.scene-line>:first-child{margin-top:0}.scene-from{display:block;color:var(--muted);font-size:var(--text-xs)}.scene-card{margin-top:var(--space-2)}.scene-composer{border-top:1px solid var(--border);flex:none}.scene-box[data-collapsed] .scene-body,.scene-box[data-collapsed] .scene-composer{display:none}.scene-log{overflow:auto;padding:var(--space-2)var(--space-3);max-height:70dvh}@media (max-width:719px){.scene-tools{margin-inline-start:var(--space-1)}.scene-tools .icon-button{width:2.5rem;min-width:2.5rem}.scene-tools .scene-log-button{padding-inline:var(--space-1);width:auto}}@media (max-width:719px) and (orientation:portrait){.table-frame[data-focused]{display:grid;grid-template-rows:55% minmax(0,1fr)}.table-frame[data-focused] .table-host{min-height:0}.table-frame[data-focused] .scene-box{position:relative;border-bottom:0;border-radius:1rem 1rem 0 0;max-width:none;min-height:0;max-height:none;margin:0;inset:auto}}@media (max-width:719px) and (orientation:landscape){.scene-box{inset-inline:var(--space-2);bottom:var(--space-1);max-width:none;max-height:38%}}@media (prefers-reduced-motion:reduce){.scene-box{transition:none}}.ws-page{display:flex;flex-direction:column;flex:1;min-height:0}.ws{height:100%}.ws-head{display:flex;align-items: center;gap:var(--space-2);min-height:var(--touch);padding:var(--space-1)var(--space-3);border-bottom:1px solid var(--border);background:var(--surface)}.ws-root-picker{flex:none;width:auto;min-width:9rem;max-width:14rem;min-height:2.25rem}.ws-crumbs{display:flex;align-items: center;gap:var(--space-1);overflow-x:auto;scrollbar-width:none;white-space:nowrap;font-size:var(--text-sm);-webkit-overflow-scrolling:touch;flex:1;min-width:0}.ws-crumbs::-webkit-scrollbar{display:none}.ws-crumbs a{display:inline-flex;padding:0 var(--space-3);border-radius:var(--radius-full);background:var(--surface-2);color:var(--text);text-decoration:none;overflow:hidden;text-overflow:ellipsis;flex:none;align-items: center;max-width:14rem;min-height:2rem}.ws-crumbs a[aria-current=page]{background:var(--accent-soft);color:var(--accent-ink);font-weight:var(--weight-medium)}.ws-crumbs a:hover{background:var(--surface-3)}.ws-crumbs a+a:before{content:"/";margin-right:var(--space-2);color:var(--muted)}.ws-head-actions{display:flex;flex:none;gap:0}.ws-body{display:flex;flex:1;min-height:0}.ws-main{display:flex;overflow:auto;flex-direction:column;flex:1;min-width:0;min-height:0}.ws-tree{width:var(--ws-tree,280px);overflow:auto;padding:var(--space-2)0;border-right:1px solid var(--border);background:var(--surface);font-size:var(--text-sm);flex:none}.ws-resizer{z-index:1;cursor:col-resize;touch-action:none;flex:none;width:6px;margin-left:-3px;margin-right:-3px}.ws-resizer:hover{background:var(--accent-soft);outline:none}.ws-resizer:focus-visible{background:var(--accent-soft);outline:none}.ws-tree-list{list-style:none;margin:0;padding:0}.ws-tree-row{display:flex;padding-right:var(--space-2);align-items: center;min-height:1.875rem}.ws-tree-row a,.ws-tree-off{display:flex;align-items: center;gap:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text);text-decoration:none;flex:1;min-width:0;min-height:1.75rem}.ws-tree-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-tree-row a:hover{background:var(--surface-2)}.ws-tree-row[data-selected] a{background:var(--accent-soft);color:var(--accent-ink)}.ws-tree-row[data-quiet]{opacity:.6}.ws-tree-off{color:var(--muted);cursor:not-allowed}.ws-tree-note{padding:var(--space-1)var(--space-3);color:var(--muted);font-size:var(--text-xs);margin:0}.ws-twist{display:inline-grid;color:var(--muted);background:0 0;border:none;flex:none;place-items: center;width:1.5rem;min-width:1.5rem;height:1.5rem;min-height:1.5rem;padding:0}.ws-twist svg{transition:transform var(--dur-fast)var(--ease-out)}.ws-twist[aria-expanded=true] svg{transform:rotate(90deg)}.ws-dir{padding:var(--space-2)var(--space-3)calc(var(--space-6) + var(--safe-bottom));display:flex;gap:var(--space-3);flex-direction:column}.ws-rows{list-style:none;display:flex;flex-direction:column;margin:0;padding:0}.ws-row{display:flex;border-bottom:1px solid var(--border);align-items: center}.ws-row[data-quiet]{opacity:.6}.ws-row-link{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-1);color:var(--text);text-decoration:none;flex:1;min-width:0;min-height:3rem}.ws-row-link[data-off]{color:var(--muted)}a.ws-row-link:hover{background:var(--surface-2)}.ws-row-icon{color:var(--muted);flex:none}.ws-row-main{display:flex;flex-direction:column;min-width:0}.ws-row-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--weight-medium)}.ws-file{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.ws-file-head{display:flex;align-items: center;gap:var(--space-3);padding:var(--space-2)var(--space-3);border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex:none}.ws-file-title{display:flex;flex-direction:column;flex:1;min-width:8rem}.ws-file-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-actions{display:flex;align-items: center;gap:var(--space-2);flex:none}.ws-banner{display:flex;align-items: center;gap:var(--space-2);padding:var(--space-2)var(--space-3);background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--warn);font-size:var(--text-sm);flex-wrap:wrap;flex:none}.ws-banner-text{flex:1;min-width:10rem}.ws-view,.ws-editor{display:flex;background:var(--code-bg);flex-direction:column;flex:1;min-height:0}.ws-editor .cm-editor{flex:1;min-height:0}.ws-editor{--code-size:16px}@media (min-width:720px){.ws-editor{--code-size:13px}}.ws-plain{padding:var(--space-3);overflow:auto;font-family:var(--font-mono);font-size:var(--code-size);color:var(--code-fg);tab-size:2;flex:1;margin:0;line-height:1.55}.ws-media{display:flex;flex-direction:column;flex:1;min-height:0}.ws-image{display:grid;padding:var(--space-4);overflow:auto;background-color:var(--surface-2);background-image:linear-gradient(45deg,var(--surface-3,var(--border))25%,transparent 25%,transparent 75%,var(--surface-3,var(--border))75%),linear-gradient(45deg,var(--surface-3,var(--border))25%,transparent 25%,transparent 75%,var(--surface-3,var(--border))75%);background-position:0 0,8px 8px;background-size:16px 16px;place-items: center}.ws-image-toggle{display:grid;cursor:zoom-in;background:0 0;border:0;place-items: center;max-width:100%;max-height:100%;padding:0}.ws-image[data-actual] .ws-image-toggle{cursor:zoom-out;max-width:none;max-height:none}.ws-image img{object-fit:contain;max-width:100%;max-height:100%}.ws-image[data-actual] img{max-width:none;max-height:none}.ws-pdf-frame{gap:var(--space-2)}.ws-pdf{background:var(--surface-2);border:0;flex:1;width:100%;min-height:0}.ws-media-actions{display:flex;gap:var(--space-3);padding:var(--space-2)var(--space-4);flex-wrap:wrap}.ws-sound,.ws-film{padding:var(--space-4);background:var(--surface-2);justify-content:center;align-items: center}.ws-sound audio,.ws-film video{width:100%;max-height:100%}.ws-card-icon{color:var(--muted,inherit)}.ws-card{margin:var(--space-4);display:flex;align-items: flex-start;gap:var(--space-3);flex-direction:column}.ws-card p{margin:0}.button-link{display:inline-flex;align-items: center;gap:var(--space-2);padding:0 var(--space-4);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:var(--weight-medium);min-height:2.5rem}.ws-editbar{display:flex;gap:var(--space-2);overflow-x:auto;padding:var(--space-2)var(--space-3)calc(var(--space-2) + var(--safe-bottom));border-top:1px solid var(--border);background:var(--surface);flex:none}.ws-editbar button{min-height:var(--touch);min-width:var(--touch);flex:none}[data-look=camelot] .ws-head,[data-look=camelot] .ws-file-head{border-bottom-color:var(--gold-soft);box-shadow:0 1px 0 color-mix(in srgb,var(--gold)38%,transparent)}[data-look=camelot] .ws-tree{background:var(--surface);border-right-color:var(--gold-soft)}[data-look=camelot] .ws-tree-row[data-selected] a{background:var(--gold-wash);color:var(--accent-ink)}[data-look=camelot] .ws-tree-row a svg,[data-look=camelot] .ws-row-icon{color:var(--gold)}[data-look=camelot] .ws-view{margin:var(--space-2)var(--space-3)var(--space-3);border:1px solid color-mix(in srgb,var(--gold)34%,var(--border));border-radius:var(--radius);overflow:hidden}[data-look=camelot] .ws-crumbs a[aria-current=page]{background:var(--gold-wash)}@media (prefers-reduced-motion:reduce){.ws-twist svg{transition:none}}
@@ -1,2 +0,0 @@
1
- import{b,B}from"./chunk-index-zynq0b0w.js";var t={unread:{},reads:{},cursor:{},cards:{},rooms:{},lists:{},pages:{}},{emit:R,use:f,subscribe:fr}=B();function s(e){t={...t,...e},R()}var Qe=(e)=>f(()=>e(t)),hr=()=>Object.values(t.unread).reduce((e,r)=>e+r,0),d=[],pr=d,mr=d;function l(e,r){return e.kind!=="system"&&e.id!==0&&(e.principalId===void 0||e.principalId!==r)}var y=(e)=>b.getState().focus===e&&document.visibilityState==="visible";function Ci(e){let r={...t.unread};for(let[n,o]of Object.entries(e))r[n]=o;s({unread:r})}var p=new WeakSet;function g(){let e;for(let[r,n]of Object.entries(b.getState().rooms)){let o=n.view;if(!o||p.has(o))continue;p.add(o),e??={...t.unread},e[r]=o.unread??0}if(e)s({unread:e})}b.subscribe(g);g();function Ai(e,r,n){let o={};if(r)o.reads={...t.reads,[e]:r};if(n!==void 0&&n>(t.cursor[e]??0))o.cursor={...t.cursor,[e]:n};if(o.reads||o.cursor)s(o)}function Or(e,r){s({cards:{...t.cards,[e]:r}})}var i=(e,r)=>({...e,[r]:(e[r]??0)+1});function qs(e){switch(e.type){case"message":case"host_message":{let r=b.getState().principal?.id;if(!l(e.message,r)||y(e.room))return;s({unread:{...t.unread,[e.room]:(t.unread[e.room]??0)+1}});return}case"read":{let{room:r,principal:n,upTo:o}=e;if(n===b.getState().principal?.id){let a=(b.getState().rooms[r]?.messages??[]).filter((u)=>u.id>o&&l(u,n)).length;s({unread:{...t.unread,[r]:a},cursor:{...t.cursor,[r]:Math.max(o,t.cursor[r]??0)}});return}let m=(t.reads[r]??d).filter((a)=>a.principal!==n),c=t.reads[r]?.find((a)=>a.principal===n);if(c&&c.upTo>=o)return;s({reads:{...t.reads,[r]:[...m,{principal:n,name:e.name,upTo:o,at:e.at}]}});return}case"host_card":{let r=(t.cards[e.room]??d).filter((n)=>n.id!==e.card.id);s({cards:{...t.cards,[e.room]:[...r,e.card].sort((n,o)=>n.at<o.at?-1:n.at>o.at?1:0)}});return}case"room_changed":s({rooms:i(t.rooms,e.room)});return;case"list_changed":s({lists:i(t.lists,e.kind)});return;case"page_changed":s({pages:i(t.pages,e.page)});return;default:return}}
2
- export{fr,Qe,hr,pr,mr,Ci,Ai,Or,qs};