pi-roundtable-web 0.26.0 → 0.26.1

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 (198) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +23 -7
  3. package/dist/chunk-account-ghq105t4.js +1 -0
  4. package/dist/{chunk-action-menu-rm5cyqkj.js → chunk-action-menu-me0g9qsc.js} +1 -1
  5. package/dist/{chunk-agent-b017vswv.js → chunk-agent-rdv7ekrt.js} +1 -1
  6. package/dist/chunk-arranged-rooms-81rqhx9x.js +1 -0
  7. package/dist/chunk-character-creator-bd426yjw.js +1 -0
  8. package/dist/chunk-codeeditor-ajhgd33t.js +2 -0
  9. package/dist/chunk-confirm-p3mts8mx.js +1 -0
  10. package/dist/{chunk-connectors-hrm06nx8.js → chunk-connectors-bkv3xn83.js} +1 -1
  11. package/dist/{chunk-conversations-e26rrf01.js → chunk-conversations-0e0vbxwr.js} +1 -1
  12. package/dist/{chunk-drag-v41gx2mc.js → chunk-drag-peyb8t0k.js} +1 -1
  13. package/dist/{chunk-entry-jxxb3ath.js → chunk-entry-mv7q8br0.js} +1 -1
  14. package/dist/chunk-folder-list-era3tksh.js +1 -0
  15. package/dist/chunk-folds-hvws0bd5.js +1 -0
  16. package/dist/{chunk-gate-8k61stsc.js → chunk-gate-hc7dd0fx.js} +1 -1
  17. package/dist/chunk-group-scene-dkbpmbh5.js +1 -0
  18. package/dist/chunk-group-table-fqmxgdfw.js +1 -0
  19. package/dist/chunk-host-icons-4xde9ntk.js +1 -0
  20. package/dist/chunk-host-picture-014yzk20.js +1 -0
  21. package/dist/chunk-host-state-t56e5sdy.js +1 -0
  22. package/dist/chunk-host-ui-p1zy9nmp.js +1 -0
  23. package/dist/chunk-index-0fmmvgee.js +2 -0
  24. package/dist/chunk-index-0q15ysrb.js +1 -0
  25. package/dist/chunk-index-0xh24y25.js +2 -0
  26. package/dist/chunk-index-2yebd9tb.js +426 -0
  27. package/dist/chunk-index-4t0r3t3b.js +2 -0
  28. package/dist/chunk-index-5yzfrf7b.js +138 -0
  29. package/dist/{chunk-index-2d0kg096.js → chunk-index-6twb7ccd.js} +2 -2
  30. package/dist/chunk-index-73gh7kgr.js +920 -0
  31. package/dist/chunk-index-7xffskfa.js +8 -0
  32. package/dist/chunk-index-aqw7cy5j.js +1 -0
  33. package/dist/{chunk-index-d1prgfbp.js → chunk-index-b6ca02e8.js} +2 -2
  34. package/dist/chunk-index-b8nvhcx5.js +2 -0
  35. package/dist/{chunk-index-014rjv9k.js → chunk-index-cvbdf2ca.js} +2 -2
  36. package/dist/chunk-index-czdketze.js +2 -0
  37. package/dist/{chunk-index-y8rnq8zf.js → chunk-index-dt9775ka.js} +3 -3
  38. package/dist/chunk-index-eg55mqqe.js +1 -0
  39. package/dist/{chunk-index-xgkd15n3.js → chunk-index-gr6e0hse.js} +1 -1
  40. package/dist/chunk-index-gyary7np.js +13 -0
  41. package/dist/chunk-index-j214tczc.js +1 -0
  42. package/dist/chunk-index-jd6632ef.js +2 -0
  43. package/dist/chunk-index-jw7dtshr.js +2 -0
  44. package/dist/{chunk-index-wnjp6wv0.js → chunk-index-k7t14rwa.js} +2 -2
  45. package/dist/{chunk-index-c07p8k0x.js → chunk-index-kwcx62wb.js} +3 -3
  46. package/dist/{chunk-index-hby0ap91.js → chunk-index-m7fvw92f.js} +2 -2
  47. package/dist/chunk-index-mmg788a1.js +2 -0
  48. package/dist/chunk-index-mq0dacwr.js +2 -0
  49. package/dist/chunk-index-p53ak25v.js +2 -0
  50. package/dist/{chunk-index-rhtvcbsq.js → chunk-index-pk1yxkv4.js} +2 -2
  51. package/dist/{chunk-index-2stynxw6.css → chunk-index-rbcz9jd4.css} +1 -1
  52. package/dist/{chunk-index-km40bhsz.js → chunk-index-rmxbdmn2.js} +2 -2
  53. package/dist/chunk-index-rnxj3z8k.js +2 -0
  54. package/dist/{chunk-index-hssjbr1k.js → chunk-index-snzzfhk3.js} +2 -2
  55. package/dist/chunk-index-v3bmr0nw.js +2 -0
  56. package/dist/{chunk-index-awx6nnta.js → chunk-index-vcyzwtk2.js} +1 -1
  57. package/dist/{chunk-index-nqfkwkfp.js → chunk-index-w2j3njb6.js} +2 -2
  58. package/dist/{chunk-index-e5sd30xy.js → chunk-index-w31c4yjv.js} +2 -2
  59. package/dist/chunk-index-wrm8w165.js +2 -0
  60. package/dist/chunk-index-xh0mg9cw.js +2 -0
  61. package/dist/chunk-index-ybtvvx85.js +2 -0
  62. package/dist/{chunk-index-dhpt8qr9.js → chunk-index-yzsgsvnp.js} +2 -2
  63. package/dist/{chunk-index-66nskrdj.js → chunk-index-z9x4cnzf.js} +2 -2
  64. package/dist/chunk-index-zrvg23jd.js +2 -0
  65. package/dist/chunk-index-zynq0b0w.js +50 -0
  66. package/dist/chunk-lang-css-88v3hp3d.js +1 -0
  67. package/dist/{chunk-lang-dockerfile-hrav55t7.js → chunk-lang-dockerfile-k728ewsf.js} +1 -1
  68. package/dist/{chunk-lang-go-x9ahv6e5.js → chunk-lang-go-wjwgay4v.js} +2 -2
  69. package/dist/chunk-lang-html-07d47es4.js +1 -0
  70. package/dist/chunk-lang-javascript-fmhhgzwd.js +1 -0
  71. package/dist/{chunk-lang-json-hsemyd0r.js → chunk-lang-json-7gd89mvs.js} +1 -1
  72. package/dist/{chunk-lang-markdown-zkwb4c9n.js → chunk-lang-markdown-b6qbe8bt.js} +5 -5
  73. package/dist/{chunk-lang-python-tewx7006.js → chunk-lang-python-3v56y31b.js} +2 -2
  74. package/dist/{chunk-lang-rust-0ydx84s1.js → chunk-lang-rust-kh0z74d1.js} +1 -1
  75. package/dist/{chunk-lang-shell-gq1tmdz4.js → chunk-lang-shell-9zv0zvbx.js} +1 -1
  76. package/dist/{chunk-lang-sql-xt1qyycg.js → chunk-lang-sql-yw6bf3t7.js} +2 -2
  77. package/dist/{chunk-lang-toml-0hamc5fc.js → chunk-lang-toml-tg1r96nq.js} +1 -1
  78. package/dist/chunk-lang-typescript-etjjvr2g.js +1 -0
  79. package/dist/{chunk-lang-xml-wf6h5pt2.js → chunk-lang-xml-ev1mndd4.js} +1 -1
  80. package/dist/{chunk-lang-yaml-7vk521h1.js → chunk-lang-yaml-fz5qpb3r.js} +1 -1
  81. package/dist/chunk-layout-actions-48ecgtkg.js +1 -0
  82. package/dist/{chunk-menu-items-1n9qargb.js → chunk-menu-items-1epy3h0t.js} +2 -2
  83. package/dist/chunk-mode-toggle-fxmfxsa4.js +1 -0
  84. package/dist/chunk-note-row-kd0fy7ee.js +75 -0
  85. package/dist/{chunk-notes-t15bh04m.js → chunk-notes-yb8f057c.js} +1 -1
  86. package/dist/chunk-notice-bell-wr4f1rph.js +1 -0
  87. package/dist/chunk-notices-x07da5bb.js +1 -0
  88. package/dist/chunk-onboarding-csrkbh9z.js +1 -0
  89. package/dist/{chunk-overview-km5vq375.js → chunk-overview-avc2d30t.js} +1 -1
  90. package/dist/{chunk-palette-a8txdgd0.js → chunk-palette-9nhp95bz.js} +1 -1
  91. package/dist/chunk-placement-items-q694dpgk.js +1 -0
  92. package/dist/chunk-profile-6qemf3m7.js +1 -0
  93. package/dist/{chunk-prompt-history-wm9dsy6s.js → chunk-prompt-history-7enzp2p3.js} +1 -1
  94. package/dist/chunk-prompts-nv6mrn0q.js +1 -0
  95. package/dist/chunk-room-confirms-zz7n61y7.js +1 -0
  96. package/dist/{chunk-room-menu-2tm2xtfx.js → chunk-room-menu-rr6nzap1.js} +1 -1
  97. package/dist/{chunk-rooms-menu-button-wxnsxjwc.js → chunk-rooms-menu-button-zbtwj47d.js} +1 -1
  98. package/dist/chunk-schedules-rw57nr0m.js +1 -0
  99. package/dist/{chunk-seat-menu-d3npdtx1.js → chunk-seat-menu-ys5v9abz.js} +1 -1
  100. package/dist/chunk-sheet-hosts-jhvaacst.js +1 -0
  101. package/dist/chunk-skill-editor-sz8an8qr.js +8 -0
  102. package/dist/{chunk-skills-shkdwes8.js → chunk-skills-tnr1h16h.js} +1 -1
  103. package/dist/chunk-switcher-list-17enhrse.js +1 -0
  104. package/dist/chunk-tab-dot-r6brdbmw.js +1 -0
  105. package/dist/chunk-table-r12cja6p.js +1 -0
  106. package/dist/chunk-table-seats-g3t392zz.js +1 -0
  107. package/dist/{chunk-table2d-n26b7gd0.js → chunk-table2d-p3ezsdcj.js} +1 -1
  108. package/dist/{chunk-table3d-8aysyf56.js → chunk-table3d-4x2n2b00.js} +20 -20
  109. package/dist/chunk-thread-actions-qc6ezkha.js +1 -0
  110. package/dist/chunk-transcript-n2s6dher.js +1 -0
  111. package/dist/chunk-where-f3scdydc.js +1 -0
  112. package/dist/chunk-workspace-xs023bxm.js +1 -0
  113. package/dist/chunk-zh-tw-efvmk3fd.js +1 -0
  114. package/dist/index.html +1 -1
  115. package/dist/sw.js +1 -1
  116. package/package.json +2 -2
  117. package/src/api-types.ts +58 -3
  118. package/src/app/app.ts +5 -0
  119. package/src/app/room-log.ts +16 -4
  120. package/src/app/rooms.ts +39 -0
  121. package/src/app/routes.ts +44 -2
  122. package/src/app/socket.ts +45 -9
  123. package/src/app/threads.ts +31 -2
  124. package/src/auth/authenticator.ts +10 -4
  125. package/src/auth/login-page.ts +4 -2
  126. package/src/auth/oidc-pages.ts +2 -0
  127. package/src/auth/oidc.ts +39 -1
  128. package/src/authz.ts +2 -1
  129. package/src/console-server.ts +32 -6
  130. package/src/host/cards.ts +18 -5
  131. package/src/host/context.ts +72 -25
  132. package/src/host/forms.ts +3 -0
  133. package/src/host/frames.ts +8 -1
  134. package/src/host/host-app.ts +6 -4
  135. package/src/host/host-routes.ts +36 -3
  136. package/src/host/room-views.ts +6 -6
  137. package/src/host/rooms-service.ts +16 -1
  138. package/src/host/views.ts +3 -0
  139. package/src/i18n/zh-tw.ts +9 -2
  140. package/src/index.ts +15 -1
  141. package/src/options.ts +36 -0
  142. package/src/page-presentation.ts +47 -2
  143. package/src/pwa.ts +32 -4
  144. package/src/web-app.ts +47 -3
  145. package/src/web-plugin.ts +20 -9
  146. package/dist/chunk-account-hw49gd0d.js +0 -1
  147. package/dist/chunk-arranged-rooms-q5v3dm1r.js +0 -1
  148. package/dist/chunk-character-creator-5dxcvd16.js +0 -1
  149. package/dist/chunk-codeeditor-pyt09fwg.js +0 -2
  150. package/dist/chunk-confirm-521yqmta.js +0 -1
  151. package/dist/chunk-folder-list-b97xk12b.js +0 -1
  152. package/dist/chunk-folds-b8q7eags.js +0 -1
  153. package/dist/chunk-group-scene-dx6wt19m.js +0 -1
  154. package/dist/chunk-group-table-e4jr8r3a.js +0 -1
  155. package/dist/chunk-host-state-g7e7c0k5.js +0 -1
  156. package/dist/chunk-host-ui-x7k6n07v.js +0 -939
  157. package/dist/chunk-index-2qd81wbx.js +0 -2
  158. package/dist/chunk-index-459drsft.js +0 -2
  159. package/dist/chunk-index-4mfj596y.js +0 -2
  160. package/dist/chunk-index-bbsytycb.js +0 -2
  161. package/dist/chunk-index-cq1e9xdz.js +0 -2
  162. package/dist/chunk-index-g351921r.js +0 -1
  163. package/dist/chunk-index-k2qq1gdj.js +0 -2
  164. package/dist/chunk-index-ke9ynm0n.js +0 -2
  165. package/dist/chunk-index-kpscvg85.js +0 -2
  166. package/dist/chunk-index-m0d100mg.js +0 -2
  167. package/dist/chunk-index-mb72snk9.js +0 -2
  168. package/dist/chunk-index-mjqqver5.js +0 -4
  169. package/dist/chunk-index-nwqk447w.js +0 -2
  170. package/dist/chunk-index-pcfhpm8v.js +0 -302
  171. package/dist/chunk-index-q8h8xzbm.js +0 -2
  172. package/dist/chunk-index-r5vszgfs.js +0 -2
  173. package/dist/chunk-index-rjv7vrwd.js +0 -13
  174. package/dist/chunk-index-v23m38p6.js +0 -50
  175. package/dist/chunk-index-va0g7d88.js +0 -1
  176. package/dist/chunk-index-z3k18atc.js +0 -2
  177. package/dist/chunk-lang-css-6bepqpnx.js +0 -1
  178. package/dist/chunk-lang-html-8jc72zt4.js +0 -1
  179. package/dist/chunk-lang-javascript-2p2qtbnf.js +0 -1
  180. package/dist/chunk-lang-typescript-82xf7z2e.js +0 -1
  181. package/dist/chunk-layout-actions-zh7bezk7.js +0 -1
  182. package/dist/chunk-notice-bell-w3y0h0sr.js +0 -1
  183. package/dist/chunk-notices-fa3g7qze.js +0 -1
  184. package/dist/chunk-onboarding-34v3nr17.js +0 -1
  185. package/dist/chunk-placement-items-wgaxsbvs.js +0 -1
  186. package/dist/chunk-profile-ypxdbsk1.js +0 -1
  187. package/dist/chunk-prompts-7mhhq7zs.js +0 -1
  188. package/dist/chunk-room-confirms-t11a1gsw.js +0 -1
  189. package/dist/chunk-schedules-2ft6xxyw.js +0 -1
  190. package/dist/chunk-sheet-hosts-vngvp7wv.js +0 -1
  191. package/dist/chunk-skill-editor-65n2hsq4.js +0 -8
  192. package/dist/chunk-switcher-list-g6hhmr1t.js +0 -1
  193. package/dist/chunk-table-1b6bsq2y.js +0 -1
  194. package/dist/chunk-table-seats-vy1qhdks.js +0 -1
  195. package/dist/chunk-transcript-355faceq.js +0 -1
  196. package/dist/chunk-where-j5qdt8a4.js +0 -1
  197. package/dist/chunk-workspace-vrbs6zx1.js +0 -1
  198. package/dist/chunk-zh-tw-zeg600bk.js +0 -1
@@ -1,2 +0,0 @@
1
- var ps=40;class l extends Error{code;constructor(e){super(e);this.code=e;this.name="LayoutError"}}function xn(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 Ue(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 pr(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 ms(e,n,r){let t=u(e,n),i=pr(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 Os(e,n,r){let t=u(e,n),i=e.folders[t],o=xn(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 gs(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 ys(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:xn(o.rooms,n,t)}:o))}function bs(e,n,r,t){let i=d(e,n);if(!r)return i;return{pins:xn(e.pins.filter((o)=>o!==n),n,t),folders:i.folders}}
2
- export{ps,xn,Ue,pr,ms,Os,gs,ys,bs};
@@ -1,2 +0,0 @@
1
- import{oi,w}from"./chunk-index-v23m38p6.js";function It(n,o){let s=new Map;for(let e of n.order){let t=n.rooms[e]?.view;if(t)s.set(e,t)}let l=(e)=>{let t=s.get(e);return t!==void 0&&t.kind!=="thread"&&!t.home},i=new Set,g=(e)=>e.filter((t)=>{if(!l(t)||i.has(t))return!1;return i.add(t),!0}),m=g(n.pins),u=n.folders.map((e)=>({id:e.id,name:e.name,rooms:g(e.rooms)})),a=[],y={},r={open:[],closed:[]},d=new Set([...s].filter(([,e])=>e.kind!=="thread").map(([e])=>e)),p=[],f=0;for(let[e,t]of s)if(f+=1,t.kind==="thread"){let h=r;if(t.parent&&d.has(t.parent))h=y[t.parent]??{open:[],closed:[]},y[t.parent]=h;(t.closed?h.closed:h.open).push(e)}else if(t.home)a.push(e);else if(!i.has(e))p.push({key:e,index:f,at:o(e)});p.sort((e,t)=>e.at===t.at?e.index-t.index:t.at-e.at);let c=p.map((e)=>e.key),k=(e)=>s.get(e)?.kind;return{home:a,pinned:m,folders:u,rest:c,restAgents:c.filter((e)=>k(e)==="agent"),restGroups:c.filter((e)=>k(e)==="group"),threads:y,orphans:r}}function ls(n,o,s,l=!1){let i=It(n,o),g=new Map(n.order.map((r,d)=>[r,d])),m=(r)=>[...r].sort((d,p)=>{let f=o(d),c=o(p);return f===c?(g.get(d)??0)-(g.get(p)??0):c-f}),u=m([...i.home,...i.pinned,...i.folders.flatMap((r)=>r.rooms),...i.rest].filter(s)),a=(r)=>r.filter((d)=>!u.includes(d));return[{id:"waiting",keys:u},{id:"home",keys:a(i.home)},{id:"pinned",keys:a(i.pinned)},...i.folders.map((r)=>({id:r.id,title:r.name,keys:a(r.rooms)})),{id:"rest",keys:a(m(i.rest))}].filter((r)=>r.keys.length>0||l&&r.id!=="waiting"&&r.id!=="home")}function wt(n,o){if(n.pinned.includes(o))return{kind:"pinned",siblings:n.pinned};let s=n.folders.find((l)=>l.rooms.includes(o));return s?{kind:"folder",folder:s.id,siblings:s.rooms}:{kind:"rest"}}function Hn(n,o){let s=n.filter(o).length;if(s===0)return"none";return s===n.length?"all":"some"}function _t(n,o){let s=Date.parse(oi(n,o)?.at??"");return Number.isNaN(s)?Number.NEGATIVE_INFINITY:s}var or=()=>{let{pins:n,folders:o}=w.getState();return{pins:n,folders:o}};function an(){let n=w.getState();return It(n,(o)=>_t(n,o))}
2
- export{It,ls,wt,Hn,_t,or,an};
@@ -1,2 +0,0 @@
1
- import{xn}from"./chunk-index-2qd81wbx.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 cs(r,e,t){let n=m(r,t);return n?{zone:n,before:d(n.items,e,t)}:void 0}function us(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(xn(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 ds(r,e,t,n){if(n<e.top-f*3||n>e.bottom+f*3)return;return{before:d(r,t,n)}}function fr(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 hr(r,e,t){return xn(r,e,t).indexOf(e)}function fs(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 hs=600;
2
- export{cs,us,ds,fr,hr,fs,hs};
@@ -1,2 +0,0 @@
1
- import{w,y,u,m}from"./chunk-index-v23m38p6.js";async function Ge(e,r){try{let t=await y.setMute(e,r);return w.dispatch({type:"room_muted",room:e,muted:t.muted}),!0}catch(t){return m(u(t),"danger"),!1}}
2
- export{Ge};
@@ -1,2 +0,0 @@
1
- import{Te}from"./chunk-index-nwqk447w.js";import{t,ge,ss,Gn}from"./chunk-index-v23m38p6.js";function En(e){let n=e.getBoundingClientRect(),o=ss();ge({title:t("Rooms"),items:[{id:"new-folder",label:t("Add a folder"),icon:"plus",run:()=>Te({kind:"new"})},{id:"arrange",label:o?t("Done"):t("Arrange"),icon:o?"check":"list",run:()=>Gn(!o)}],at:{x:n.left,y:n.bottom},via:"key",source:e})}
2
- export{En};
@@ -1 +0,0 @@
1
- import{Le,Ji,Xt,er,B,ie,Wn,tr,vs,xs,nr,Ss,ws,_s,sn}from"./chunk-index-66nskrdj.js";export{Xt as AVATAR_STATES,B as CATALOG,Le as CLASS_IDS,ie as CharacterError,xs as EAST_ASIAN_SKINS,Ji as EXPRESSIONS,er as STATE_EXPRESSION,ws as accentOf,_s as characterCss,nr as checkSkins,Ss as composeSvg,tr as parseCharacter,vs as readCharacter,Wn as resolveCharacter,sn as suggestCharacter};
@@ -1,2 +0,0 @@
1
- var At={table:"Round table",seat:(e,t)=>`${e} (${t})`};
2
- export{At};
@@ -1,2 +0,0 @@
1
- import{w,j}from"./chunk-index-v23m38p6.js";var o={unread:{},reads:{},cursor:{},cards:{},rooms:{},lists:{},pages:{}},{emit:R,use:f}=j();function s(e){o={...o,...e},R()}var De=(e)=>f(()=>e(o)),d=[],Hi=d,ji=d;function l(e,r){return e.kind!=="system"&&e.id!==0&&(e.principalId===void 0||e.principalId!==r)}var y=(e)=>w.getState().focus===e&&document.visibilityState==="visible";function xi(e){let r={...o.unread};for(let[n,t]of Object.entries(e))r[n]=t;s({unread:r})}var p=new WeakSet;function g(){let e;for(let[r,n]of Object.entries(w.getState().rooms)){let t=n.view;if(!t||p.has(t))continue;p.add(t),e??={...o.unread},e[r]=t.unread??0}if(e)s({unread:e})}w.subscribe(g);g();function Si(e,r,n){let t={};if(r)t.reads={...o.reads,[e]:r};if(n!==void 0&&n>(o.cursor[e]??0))t.cursor={...o.cursor,[e]:n};if(t.reads||t.cursor)s(t)}function Ki(e,r){s({cards:{...o.cards,[e]:r}})}var i=(e,r)=>({...e,[r]:(e[r]??0)+1});function Ts(e){switch(e.type){case"message":case"host_message":{let r=w.getState().principal?.id;if(!l(e.message,r)||y(e.room))return;s({unread:{...o.unread,[e.room]:(o.unread[e.room]??0)+1}});return}case"read":{let{room:r,principal:n,upTo:t}=e;if(n===w.getState().principal?.id){let a=(w.getState().rooms[r]?.messages??[]).filter((u)=>u.id>t&&l(u,n)).length;s({unread:{...o.unread,[r]:a},cursor:{...o.cursor,[r]:Math.max(t,o.cursor[r]??0)}});return}let m=(o.reads[r]??d).filter((a)=>a.principal!==n),c=o.reads[r]?.find((a)=>a.principal===n);if(c&&c.upTo>=t)return;s({reads:{...o.reads,[r]:[...m,{principal:n,name:e.name,upTo:t,at:e.at}]}});return}case"host_card":{let r=(o.cards[e.room]??d).filter((n)=>n.id!==e.card.id);s({cards:{...o.cards,[e.room]:[...r,e.card].sort((n,t)=>n.at<t.at?-1:n.at>t.at?1:0)}});return}case"room_changed":s({rooms:i(o.rooms,e.room)});return;case"list_changed":s({lists:i(o.lists,e.kind)});return;case"page_changed":s({pages:i(o.pages,e.page)});return;default:return}}
2
- export{De,Hi,ji,xi,Si,Ki,Ts};
@@ -1,2 +0,0 @@
1
- import{a,o,r,t,p,e,n,s,Wr,K,w,d,f,y,m,Jt,es,ts}from"./chunk-index-v23m38p6.js";import{H}from"./chunk-index-e5sd30xy.js";import{Te,Yn,os}from"./chunk-index-nwqk447w.js";import{zt,wi,ir,rr,sr}from"./chunk-index-z3k18atc.js";import{ue}from"./chunk-index-r5vszgfs.js";import{It,wt,_t}from"./chunk-index-459drsft.js";import{ps,Ue,pr}from"./chunk-index-2qd81wbx.js";var g=(i,l,u)=>f(i,{method:l,...u===void 0?{}:{body:JSON.stringify(u)}}),h=(i)=>encodeURIComponent(i),be={createAgent:(i)=>g("agents","POST",i),archiveAgent:(i)=>g(`agents/${h(i)}/archive`,"POST"),restoreAgent:(i)=>g(`agents/${h(i)}/restore`,"POST"),deleteAgent:(i)=>g(`agents/${h(i)}`,"DELETE"),skills:(i)=>f(`agents/${h(i)}/skills`),setSkills:(i,l)=>g(`agents/${h(i)}/skills`,"PUT",l),archive:()=>f("archive"),createGroup:(i)=>g("groups","POST",i),group:(i)=>f(`groups/${h(i)}`),updateGroup:(i,l)=>g(`groups/${h(i)}`,"PATCH",l),archiveGroup:(i)=>g(`groups/${h(i)}/archive`,"POST"),restoreGroup:(i)=>g(`groups/${h(i)}/restore`,"POST"),deleteGroup:(i)=>g(`groups/${h(i)}`,"DELETE")};async function dt(){let i=await y.rooms();w.dispatch({type:"rooms_loaded",rooms:i.rooms})}function E(i){let{room:l}=i,u=d((c)=>{let A=It(c,(N)=>_t(c,N)),k=wt(A,l),F=k.kind==="rest"?[]:k.siblings;return{name:c.rooms[l]?.view?.displayName??l,folder:k.kind==="folder"?k.folder:"",pinned:k.kind==="pinned",canUp:Ue(F,l,"up")!==void 0,canDown:Ue(F,l,"down")!==void 0}},l),v=d((c)=>c.folders),C=(c)=>{i.onClose(),zt(l,c)},b=u.folder===""&&!u.pinned;return n("div",{className:"stack",children:[e("p",{className:"meta",children:u.name}),n("fieldset",{children:[e("legend",{className:"visually-hidden",children:t("Move to folder…")}),n("ul",{className:"menu",children:[e("li",{children:n("label",{className:"menu-item menu-link",children:[e("input",{type:"radio",name:"move-folder",checked:b,onChange:()=>C(null)}),e("span",{className:"menu-icon",children:e(s,{name:"rooms",size:18})}),e("span",{className:"menu-text",children:e("strong",{children:t("Ungrouped")})})]})}),v.map((c)=>e("li",{children:n("label",{className:"menu-item menu-link",children:[e("input",{type:"radio",name:"move-folder",checked:u.folder===c.id,onChange:()=>C(c.id)}),e("span",{className:"menu-icon",children:e(s,{name:"folder",size:18})}),e("span",{className:"menu-text",children:e("strong",{children:c.name})})]})},c.id)),e("li",{children:n("button",{type:"button",className:"menu-item menu-link",onClick:()=>Te({kind:"new",room:l}),children:[e("span",{className:"menu-icon",children:e(s,{name:"plus",size:18})}),e("span",{className:"menu-text",children:e("strong",{children:t("New folder…")})})]})})]})]}),u.canUp||u.canDown?n("ul",{className:"menu",children:[u.canUp?e("li",{children:n("button",{type:"button",className:"menu-item menu-link",onClick:()=>{i.onClose(),wi(l,"up")},children:[e("span",{className:"menu-icon",children:e(s,{name:"up",size:18})}),e("span",{className:"menu-text",children:e("strong",{children:t("Move up")})})]})}):null,u.canDown?e("li",{children:n("button",{type:"button",className:"menu-item menu-link",onClick:()=>{i.onClose(),wi(l,"down")},children:[e("span",{className:"menu-icon",children:e(s,{name:"down",size:18})}),e("span",{className:"menu-text",children:e("strong",{children:t("Move down")})})]})}):null]}):null]})}function R(i){return e(ue,{open:i.open,title:t("Move to folder…"),onClose:i.onClose,children:e(E,{room:i.room,onClose:i.onClose})})}function G(i){let{ask:l}=i,[u,v]=r(l.kind==="rename"?l.name:""),[C,b]=r(),[c,A]=r(!1),k=o(null);return a(()=>k.current?.focus(),[]),n("form",{className:"stack",onSubmit:async(N)=>{N.preventDefault();let S;try{S=pr(u)}catch{b(t("Give the folder a name of 1 to 40 characters."));return}A(!0),b(void 0);let P;if(l.kind==="rename")P=await rr(l.id,S,b)!==void 0;else{let D=await ir(S,b);if(P=D!==void 0,D&&l.room)await zt(l.room,D)}if(A(!1),P)i.onClose()},children:[n("div",{className:"field",children:[e("label",{className:"field-label",htmlFor:"folder-name",children:t("Folder name")}),e("input",{id:"folder-name",type:"text",ref:k,value:u,autoComplete:"off",enterKeyHint:"done",maxLength:ps*2,"aria-invalid":C?!0:void 0,onChange:(N)=>v(N.target.value)}),C?e("p",{className:"field-error",role:"alert",children:C}):null]}),n("div",{className:"actions",children:[e("button",{type:"button",className:"secondary",disabled:c,onClick:i.onClose,children:t("Cancel")}),e("button",{type:"submit",disabled:c,children:l.kind==="rename"?t("Rename"):t("Create")})]})]})}function T(){let i=os(),l=o(void 0);if(i)l.current=i;let u=l.current;if(!u)return null;let v=u.kind==="new"||u.kind==="rename";return n(p,{children:[v?e(ue,{open:i?.kind==="new"||i?.kind==="rename",title:u.kind==="rename"?t("Rename folder"):t("Add a folder"),onClose:Yn,children:e(G,{ask:u,onClose:Yn})}):null,u.kind==="delete"?e(H,{open:i?.kind==="delete",title:t("Delete folder"),confirmLabel:t("Delete folder"),tone:"danger",onClose:Yn,onConfirm:async()=>{let C="";if(!await sr(u.id,(c)=>{C=c}))throw Error(C)},children:e("p",{children:t("Delete the folder {name}? Its rooms move to Ungrouped; no room is deleted.",{name:u.name})})}):null,u.kind==="move"?e(R,{open:i?.kind==="move",room:u.room,onClose:Yn}):null]})}function x(i){return n(H,{open:i.open,title:t("Turn on yolo mode?"),confirmLabel:t("Turn on yolo mode"),tone:"yolo",...i.restoreFocus?{restoreFocus:i.restoreFocus}:{},onClose:i.onClose,onConfirm:async()=>{await y.setMode(i.room,{yolo:!0})},children:[e("p",{children:t("In this room, the agent's held actions are approved for you, without a card, as soon as they come up.")}),e("p",{children:t("Risky classes still ask: running as another user, deleting files, force pushes, disk, service and firewall changes, and anything that names its own approvers. The host can add more.")}),e("p",{children:t("Every approval it makes is written into the conversation, and a banner stays up while yolo mode is on.")})]})}function O(i){return e(H,{open:i.open,title:t("Start over {name}?",{name:i.name}),confirmLabel:t("Start over"),tone:"danger",...i.restoreFocus?{restoreFocus:i.restoreFocus}:{},onClose:i.onClose,onConfirm:async()=>{await y.startRoomOver(i.room)},children:e("p",{children:t("The current conversation is archived and the next message begins a new one. Long-term memory is kept. A turn that is running finishes first.")})})}function V(i){return e(H,{open:i.open,title:t("Archive {name}?",{name:i.name}),confirmLabel:t("Archive"),tone:"danger",...i.restoreFocus?{restoreFocus:i.restoreFocus}:{},onClose:i.onClose,onConfirm:async()=>{let l=i.room.indexOf("."),u=i.room.slice(l+1);if(i.room.slice(0,l).endsWith(":group"))await be.archiveGroup(u);else await be.archiveAgent(u);if(Jt(),await dt(),m(t("Archived {name}.",{name:i.name})),Wr().key===i.room)K("rooms")},children:e("p",{children:t("{name} stops answering and its schedules are cancelled. A group loses it as a member. The history is kept, and Archived in the room list restores it.",{name:i.name})})})}function Mi(){return n(p,{children:[e(L,{}),e(T,{})]})}function L(){let i=ts(),l=o(void 0);if(i)l.current=i;let u=l.current;if(!u)return null;let v={room:u.room,name:u.name,restoreFocus:u.restoreFocus,onClose:es};return n(p,{children:[e(x,{open:i?.kind==="yolo",...v}),e(O,{open:i?.kind==="start-over",...v}),e(V,{open:i?.kind==="archive",...v})]})}
2
- export{be,dt,Mi};
@@ -1,2 +0,0 @@
1
- import{f}from"./chunk-index-v23m38p6.js";var i="./account-zk4efb87.css";if(typeof document<"u"&&!document.getElementById("account-styles")){let e=document.createElement("link");e.id="account-styles",e.rel="stylesheet",e.href=new URL(i,import.meta.url).href,document.head.append(e)}var le={pushTest:()=>f("push/test",{method:"POST"}),pushPrefs:()=>f("push/prefs"),setPushPrefs:(e)=>f("push/prefs",{method:"PUT",body:JSON.stringify({quiet:e})}),notices:()=>f("notices"),ackNotice:(e)=>f(`notices/${encodeURIComponent(e)}/ack`,{method:"POST"}),onboarding:()=>f("onboarding"),waive:(e)=>f(`onboarding/${encodeURIComponent(e)}/waive`,{method:"POST"}),profile:()=>f("profile"),chooseSource:(e)=>f("profile/source",{method:"PUT",body:JSON.stringify({provider:e})}),links:()=>f("links"),issueLink:(e)=>f(`links/${encodeURIComponent(e)}/issue`,{method:"POST"}),confirmLink:(e,t)=>f(`links/${encodeURIComponent(e)}/confirm`,{method:"POST",body:JSON.stringify({request:t})}),cancelLink:(e)=>f(`links/${encodeURIComponent(e)}/cancel`,{method:"POST"}),unlink:(e)=>f(`links/${encodeURIComponent(e)}`,{method:"DELETE"})};
2
- export{le};
@@ -1,2 +0,0 @@
1
- import{O,t,w}from"./chunk-index-v23m38p6.js";import{Te}from"./chunk-index-nwqk447w.js";import{wt,Hn,an}from"./chunk-index-459drsft.js";import{Ue}from"./chunk-index-2qd81wbx.js";var s=(e)=>e(),d=()=>(O("zh7bezk7"),import("./chunk-layout-actions-zh7bezk7.js"));function ar(e,u=s){let o=wt(an(),e),l=o.kind==="pinned",i=[{id:"pin",label:l?t("Unpin"):t("Pin"),icon:"pin",run:()=>{d().then((r)=>r.pinRoom(e,!l))}},{id:"move",label:t("Move to folder…"),icon:"folder",run:()=>u(()=>Te({kind:"move",room:e}))}];if(o.kind==="rest")return i;if(Ue(o.siblings,e,"up"))i.push({id:"up",label:t("Move up"),icon:"up",run:()=>{d().then((r)=>r.nudgeRoom(e,"up"))}});if(Ue(o.siblings,e,"down"))i.push({id:"down",label:t("Move down"),icon:"down",run:()=>{d().then((r)=>r.nudgeRoom(e,"down"))}});return i}function Rs(e){let u=w.getState(),o=u.folders.find((n)=>n.id===e);if(!o)return;let l=an().folders.find((n)=>n.id===e)?.rooms??[],i=Hn(l,(n)=>u.rooms[n]?.view?.muted===!0)==="all",r=u.folders.map((n)=>n.id),m=[{id:"rename",label:t("Rename"),icon:"edit",run:()=>Te({kind:"rename",id:e,name:o.name})}];if(l.length>0)m.push({id:"mute",label:i?t("Unmute the whole folder"):t("Mute the whole folder"),icon:i?"bell":"bell-off",run:()=>{d().then((n)=>n.muteFolder(e,!i))}});if(Ue(r,e,"up"))m.push({id:"up",label:t("Move up"),icon:"up",run:()=>{d().then((n)=>n.nudgeFolder(e,"up"))}});if(Ue(r,e,"down"))m.push({id:"down",label:t("Move down"),icon:"down",run:()=>{d().then((n)=>n.nudgeFolder(e,"down"))}});return m.push({id:"delete",label:t("Delete folder"),icon:"trash",tone:"danger",run:()=>Te({kind:"delete",id:e,name:o.name})}),{title:o.name,items:m}}
2
- export{ar,Rs};
@@ -1,4 +0,0 @@
1
- import{O,a,A,o,r,t,c,e,K,d,Zt,pn,Be,On,tn,at,rs,ke}from"./chunk-index-v23m38p6.js";var te=(n)=>n.filter((g)=>g.muted!==!0),ie=(n)=>n==="sleepy"?"idle":n;function ne(n,g){let f={};for(let[u,p]of Object.entries(n))f[u]=ie(p);for(let u of g){let p=u.agent;if(!u.typing||p===void 0||!(p in f))continue;let m=f[p];if(m==="waiting"||m==="error")continue;f[p]="speaking"}return f}function q(n,g){if(n==="speaking")return"happy";return(g?.STATE_EXPRESSION??ce)[n]}var ce={idle:"neutral",thinking:"thinking",working:"determined",waiting:"curious",done:"proud",error:"apologetic",sleepy:"sleepy"};function D(n,g){return`s${n}${g.toLowerCase().replace(/[^a-z0-9]/g,"")}`.slice(0,16)}var ue={x:-7,y:-3,w:114,h:100},N=256;function z(n,g,f,u,p,m){let s=n.composeSvg(g,{bare:!0,look:f,expr:q(u,n),state:"idle",still:!0,size:N,uid:p,skins:m}),{x:l,y:S,w:v,h:E}=ue;return s.replace('viewBox="0 0 100 100"',`viewBox="${l} ${S} ${v} ${E}"`).replace(`width="${N}" height="${N}"`,`width="${N}" height="${Math.round(N*E/v)}"`)}function re(n){let g=n.delayMs??300,f=n.timers??{set:(s,l)=>setTimeout(s,l),clear:(s)=>clearTimeout(s)},u=new Map,p=new Map,m=(s)=>{let l=p.get(s);if(l===void 0)return;f.clear(l),p.delete(s)};return{seed(s,l){m(s),u.set(s,q(l))},update(s,l){let S=q(l);if(!u.has(s)){u.set(s,S);return}if(m(s),u.get(s)===S)return;p.set(s,f.set(()=>{p.delete(s),u.set(s,S),n.setAvatar(s,l)},g))},forget(s){m(s),u.delete(s)},dispose(){for(let s of[...p.keys()])m(s);u.clear()}}}var de={idle:c("idle"),thinking:c("thinking"),working:c("working"),waiting:c("waiting"),speaking:c("speaking"),done:c("done"),error:c("error")},le=()=>({table:t("Round table"),seat:(n,g)=>t("{name} ({state})",{name:n,state:t(de[g])})}),fe=10;function si(n,g={}){let f=g.all===!0;return d((u)=>{let p=u.order.map((l)=>u.rooms[l]?.view).filter((l)=>l!==void 0&&l.kind==="agent"),m=n?n.map((l)=>p.find((S)=>S.name===l)).filter((l)=>l!==void 0):p;return[...n||f?m:te(m)].sort((l,S)=>Number(S.home)-Number(l.home))},`${f}
2
- ${n?.join(`
3
- `)??""}`)}var zn=()=>si(void 0,{all:!0});function pe(n){return d((g)=>Object.values(g.rooms).filter((f)=>n?f.key===n:f.view?.kind==="group").map((f)=>({typing:f.typing,...f.agent===void 0?{}:{agent:f.agent}})),n??"")}function $t(n){let{variant:g="full",onHandle:f}=n,u=pn(),p=Be(),m=On(),s=tn(),l=at(),S=si(n.members),v=rs(S.map((i)=>i.key)),E=pe(n.groupRoom),oe=ke("(orientation: portrait)"),U=g==="full"&&(n.list===!0||oe&&S.length>fe),L=A(()=>ne(Object.fromEntries(S.map((i)=>[i.name,v[i.key]??"idle"])),E),[S,v,E]),C=o(L);C.current=L;let w=A(()=>{if(!u)return[];return S.map((i,b)=>{let h=l[i.name]??i.character??Zt(u,i);return{id:i.name,name:i.displayName,color:u.accentOf(h,m.look),avatarSvg:z(u,h,m.look,C.current[i.name]??"idle",D(b,i.name),s)}})},[u,S,l,m.look,s]),I=o(w);I.current=w;let V=o(S);V.current=S;let F=o({look:p,scheme:m.scheme});F.current={look:p,scheme:m.scheme};let Y=o(null),k=o(void 0),[H,se]=r(0),P=o(void 0),J=o(()=>{return});J.current=(i)=>{let b=S.find((h)=>h.name===i);if(!u||!b)return;return l[i]??b.character??Zt(u,b)};let Q=o(m);Q.current=m;let W=o(s);W.current=s;let Z=o(u);Z.current=u;let X=o(f);X.current=f;let R=o(n);R.current=n;let ee=u!==void 0&&w.length>0;a(()=>{let i=Y.current;if(!ee||!i)return;let b=!0,h,j=re({setAvatar:(x,_)=>{let T=J.current(x),y=Z.current,M=V.current.findIndex((B)=>B.name===x);if(!T||!y||M<0)return;h?.setAvatar(x,z(y,T,Q.current.look,_,D(M,x),W.current))}});return P.current=j,(async()=>{let{mountRoundTable:x}=await (O("jxxb3ath"),import("./chunk-entry-jxxb3ath.js")),_=I.current.map((y)=>({...y,state:C.current[y.id]??"idle"})),T=await x(i,{theme:F.current.look,scheme:F.current.scheme,seats:_,onSeatClick:({id:y})=>{let M=R.current.onSeat;if(M){M(y);return}let B=V.current.find((ae)=>ae.name===y);if(B)K("room",B.key)},...R.current.onSeatMenu?{onSeatMenu:(y)=>R.current.onSeatMenu?.(y)}:{},ownerName:R.current.ownerName??t("You"),focus:R.current.focus??null,onFocus:(y)=>R.current.onFocus?.(y),onMore:()=>R.current.onMore?.(),reducedMotion:"auto",lowPower:"auto",variant:g,listBelow:U,labels:le()});if(!b){T.dispose();return}h=T,k.current=T;for(let y of _)j.seed(y.id,y.state??"idle");X.current?.(T),se((y)=>y+1)})(),()=>{b=!1,j.dispose(),P.current=void 0,k.current=void 0,X.current?.(void 0),h?.dispose()}},[ee,g,U]);let G=n.focus??null;if(a(()=>{let i=k.current;if(i&&i.focused()!==G)i.focus(G)},[G,H]),a(()=>{let i=k.current;if(!i||w.length===0)return;let b=C.current;i.setSeats(w.map((h)=>({...h,state:b[h.id]??"idle"})));for(let h of w)P.current?.seed(h.id,b[h.id]??"idle")},[w,H]),a(()=>{let i=k.current;if(i)i.setTheme(p,m.scheme)},[p,m.scheme,H]),a(()=>{let i=k.current;if(!i)return;for(let b of I.current){let h=L[b.id]??"idle";i.setState(b.id,h),P.current?.update(b.id,h)}},[L,H]),S.length===0)return e("p",{className:"table-empty",children:t("No agents are seated yet.")});return e("section",{className:"table-host",ref:Y,"aria-label":t("Round table")})}
4
- export{si,zn,$t};
@@ -1,2 +0,0 @@
1
- import{Zr,j}from"./chunk-index-v23m38p6.js";var i={pin:"M9 4h6l-1 6 3 3H7l3-3-1-6ZM12 13v7",folder:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z",up:"M6 15l6-6 6 6",down:"M6 9l6 6 6-6",edit:"M4 20h4L19 9l-4-4L4 16v4ZM13.5 6.5l4 4"};Zr(i);var o,{emit:e,use:r}=j();function Te(n){o=n,e()}function Yn(){if(!o)return;o=void 0,e()}var os=()=>r(()=>o);
2
- export{Te,Yn,os};
@@ -1,302 +0,0 @@
1
- import{O,o,j,ge,ui,Fi}from"./chunk-index-v23m38p6.js";var v=!1;function Cn(){if(v||typeof document>"u")return;if(v=!0,typeof CSSStyleSheet<"u"&&"adoptedStyleSheets"in Document.prototype)try{let t=new CSSStyleSheet;t.replaceSync(`
2
- .folder-body[hidden] {
3
- display: none;
4
- }
5
-
6
- /* An empty place to drop (the pinned list, a folder of the drawer) shows only while a row is lifted. */
7
- [data-empty] {
8
- display: none;
9
- }
10
-
11
- [data-reordering] [data-empty] {
12
- display: block;
13
- min-height: 2.75rem;
14
- }
15
-
16
- /* Folders of the room list, and the lifted row or folder while it is dragged. */
17
- .folder {
18
- display: flex;
19
- flex-direction: column;
20
- gap: var(--space-2);
21
- }
22
-
23
- .folder-head {
24
- display: flex;
25
- align-items: center;
26
- gap: var(--space-2);
27
- min-height: 2.75rem;
28
- padding: 0 var(--space-1) 0 var(--space-2);
29
- border: 1px solid var(--border);
30
- border-radius: var(--radius-lg);
31
- background: var(--surface-2);
32
- }
33
-
34
- .folder-toggle {
35
- display: flex;
36
- flex: 1;
37
- align-items: center;
38
- gap: var(--space-2);
39
- min-width: 0;
40
- min-height: 2.75rem;
41
- padding: 0;
42
- border: 0;
43
- background: transparent;
44
- color: inherit;
45
- text-align: left;
46
- }
47
-
48
- .folder-toggle strong {
49
- overflow: hidden;
50
- text-overflow: ellipsis;
51
- white-space: nowrap;
52
- }
53
-
54
- .folder-chevron {
55
- flex: none;
56
- transition: transform var(--dur-fast) var(--ease-out);
57
- }
58
-
59
- .folder-chevron[data-open] {
60
- transform: rotate(90deg);
61
- }
62
-
63
- .folder-head .muted-mark[data-partial] {
64
- opacity: 0.55;
65
- }
66
-
67
- .folder-more,
68
- .row-more {
69
- flex: none;
70
- }
71
-
72
- .folder-body {
73
- display: flex;
74
- flex-direction: column;
75
- gap: var(--space-2);
76
- }
77
-
78
- .folder-empty {
79
- margin: 0;
80
- padding: var(--space-2) var(--space-3);
81
- }
82
-
83
- .room-list > li {
84
- position: relative;
85
- }
86
-
87
- /* The menu button sits over the row's right edge: the row keeps that strip clear of its chevron and time. */
88
- .room-list > li[data-arranging] > .room-row {
89
- padding-right: 3.75rem;
90
- }
91
-
92
- .room-list .row-more {
93
- position: absolute;
94
- top: var(--space-2);
95
- right: var(--space-2);
96
- }
97
-
98
- .arrange-bar {
99
- display: flex;
100
- align-items: center;
101
- justify-content: space-between;
102
- gap: var(--space-3);
103
- }
104
-
105
- [data-drop-zone] {
106
- position: relative;
107
- }
108
-
109
- [data-lifted] {
110
- position: relative;
111
- z-index: 5;
112
- box-shadow: var(--shadow-3);
113
- transition: none;
114
- touch-action: none;
115
- }
116
-
117
- [data-reordering] {
118
- -webkit-user-select: none;
119
- user-select: none;
120
- }
121
-
122
- [data-reordering] [data-drop-item]:not([data-lifted]),
123
- [data-reordering] [data-folder-block]:not([data-lifted]) {
124
- transition: transform var(--dur-fast) var(--ease-out);
125
- }
126
-
127
- [data-drop-target] {
128
- outline: 2px dashed var(--accent);
129
- outline-offset: 4px;
130
- border-radius: var(--radius-lg);
131
- }
132
-
133
- .drop-line {
134
- position: absolute;
135
- left: 0;
136
- right: 0;
137
- height: 3px;
138
- margin-top: -2px;
139
- border-radius: 2px;
140
- background: var(--accent);
141
- pointer-events: none;
142
- }
143
-
144
- @media (prefers-reduced-motion: reduce) {
145
- .folder-chevron,
146
- [data-reordering] [data-drop-item]:not([data-lifted]),
147
- [data-reordering] [data-folder-block]:not([data-lifted]) {
148
- transition: none;
149
- }
150
- }
151
- `),document.adoptedStyleSheets=[...document.adoptedStyleSheets,t];return}catch{}let n=document.createElement("style");n.textContent=`
152
- .folder-body[hidden] {
153
- display: none;
154
- }
155
-
156
- /* An empty place to drop (the pinned list, a folder of the drawer) shows only while a row is lifted. */
157
- [data-empty] {
158
- display: none;
159
- }
160
-
161
- [data-reordering] [data-empty] {
162
- display: block;
163
- min-height: 2.75rem;
164
- }
165
-
166
- /* Folders of the room list, and the lifted row or folder while it is dragged. */
167
- .folder {
168
- display: flex;
169
- flex-direction: column;
170
- gap: var(--space-2);
171
- }
172
-
173
- .folder-head {
174
- display: flex;
175
- align-items: center;
176
- gap: var(--space-2);
177
- min-height: 2.75rem;
178
- padding: 0 var(--space-1) 0 var(--space-2);
179
- border: 1px solid var(--border);
180
- border-radius: var(--radius-lg);
181
- background: var(--surface-2);
182
- }
183
-
184
- .folder-toggle {
185
- display: flex;
186
- flex: 1;
187
- align-items: center;
188
- gap: var(--space-2);
189
- min-width: 0;
190
- min-height: 2.75rem;
191
- padding: 0;
192
- border: 0;
193
- background: transparent;
194
- color: inherit;
195
- text-align: left;
196
- }
197
-
198
- .folder-toggle strong {
199
- overflow: hidden;
200
- text-overflow: ellipsis;
201
- white-space: nowrap;
202
- }
203
-
204
- .folder-chevron {
205
- flex: none;
206
- transition: transform var(--dur-fast) var(--ease-out);
207
- }
208
-
209
- .folder-chevron[data-open] {
210
- transform: rotate(90deg);
211
- }
212
-
213
- .folder-head .muted-mark[data-partial] {
214
- opacity: 0.55;
215
- }
216
-
217
- .folder-more,
218
- .row-more {
219
- flex: none;
220
- }
221
-
222
- .folder-body {
223
- display: flex;
224
- flex-direction: column;
225
- gap: var(--space-2);
226
- }
227
-
228
- .folder-empty {
229
- margin: 0;
230
- padding: var(--space-2) var(--space-3);
231
- }
232
-
233
- .room-list > li {
234
- position: relative;
235
- }
236
-
237
- /* The menu button sits over the row's right edge: the row keeps that strip clear of its chevron and time. */
238
- .room-list > li[data-arranging] > .room-row {
239
- padding-right: 3.75rem;
240
- }
241
-
242
- .room-list .row-more {
243
- position: absolute;
244
- top: var(--space-2);
245
- right: var(--space-2);
246
- }
247
-
248
- .arrange-bar {
249
- display: flex;
250
- align-items: center;
251
- justify-content: space-between;
252
- gap: var(--space-3);
253
- }
254
-
255
- [data-drop-zone] {
256
- position: relative;
257
- }
258
-
259
- [data-lifted] {
260
- position: relative;
261
- z-index: 5;
262
- box-shadow: var(--shadow-3);
263
- transition: none;
264
- touch-action: none;
265
- }
266
-
267
- [data-reordering] {
268
- -webkit-user-select: none;
269
- user-select: none;
270
- }
271
-
272
- [data-reordering] [data-drop-item]:not([data-lifted]),
273
- [data-reordering] [data-folder-block]:not([data-lifted]) {
274
- transition: transform var(--dur-fast) var(--ease-out);
275
- }
276
-
277
- [data-drop-target] {
278
- outline: 2px dashed var(--accent);
279
- outline-offset: 4px;
280
- border-radius: var(--radius-lg);
281
- }
282
-
283
- .drop-line {
284
- position: absolute;
285
- left: 0;
286
- right: 0;
287
- height: 3px;
288
- margin-top: -2px;
289
- border-radius: 2px;
290
- background: var(--accent);
291
- pointer-events: none;
292
- }
293
-
294
- @media (prefers-reduced-motion: reduce) {
295
- .folder-chevron,
296
- [data-reordering] [data-drop-item]:not([data-lifted]),
297
- [data-reordering] [data-folder-block]:not([data-lifted]) {
298
- transition: none;
299
- }
300
- }
301
- `,document.head.append(n)}var w=()=>(O("zh7bezk7"),import("./chunk-layout-actions-zh7bezk7.js")),An=(n)=>({mode:"room",key:n,item:(t)=>t.closest("[data-drop-item]"),root:(t)=>t.closest("[data-drop-root]"),onDrop:(t)=>{if(t.type==="room")w().then((i)=>i.dropRoom(n,t.drop))},open:(t)=>void (O("b8q7eags"),import("./chunk-folds-b8q7eags.js")).then((i)=>i.expandFolder(t))});var m=!1,{emit:M,use:S}=j(),$n=()=>S(()=>m);function Ei(n){if(m===n)return;m=n,M()}var P=6,x=()=>(O("v41gx2mc"),import("./chunk-drag-v41gx2mc.js"));function Rt(n,t){let i=o(t);i.current=t;let a=o(void 0),u=o(void 0),c=o(!1),b=(e,r,l)=>n(e).then((s)=>{if(s)ge({...s,at:r,via:l,source:e})},()=>{return}),g=(e,r,l,s)=>{let p=i.current,h=p?.item(e),y=p?.root(e);if(!p||!h||!y)return!1;return u.current??=x(),u.current.then(({lift:E})=>{if(a.current?.id!==r)return s();E({mode:p.mode,key:p.key,item:h,root:y,pointerId:r,y:l(),open:p.open,done:(f)=>{if(f.type==="tap")s();else if(f.type!=="cancel")p.onDrop(f)}})},s),!0},d=ui((e)=>{let r=()=>b(e.source,e.at,e.via),l=a.current;if(!(e.via==="hold"||e.via==="contextmenu"&&l?.touch)||!l)return void r();if(!g(e.source,l.id,()=>l.y,r))return void r();if(e.via==="contextmenu")c.current=!0});return{...d,onPointerDown(e){if(c.current=!1,a.current={id:e.pointerId,x:e.clientX,y:e.clientY,touch:e.pointerType!=="mouse"},e.pointerType!=="mouse"&&Fi(e.clientX,window.innerWidth))a.current=void 0;else if(i.current)u.current??=x();d.onPointerDown(e)},onPointerMove(e){let r=a.current;if(r?.id===e.pointerId){if(e.pointerType==="mouse"&&e.buttons===1&&!c.current&&i.current&&Math.hypot(e.clientX-r.x,e.clientY-r.y)>P)c.current=g(e.currentTarget,e.pointerId,()=>e.clientY,()=>{return});r.y=e.clientY}d.onPointerMove(e)},onPointerUp(e){if(a.current?.id===e.pointerId)a.current=void 0;d.onPointerUp(e)},onPointerCancel(e){if(a.current?.id===e.pointerId)a.current=void 0;d.onPointerCancel(e)},onContextMenu:d.onContextMenu,onKeyDown:d.onKeyDown,onClickCapture(e){if(c.current){c.current=!1,e.preventDefault(),e.stopPropagation();return}d.onClickCapture(e)},onDragStart(e){e.preventDefault()}}}
302
- export{Cn,An,$n,Ei,Rt};
@@ -1,2 +0,0 @@
1
- import{it,x,w,Zi,mi}from"./chunk-index-v23m38p6.js";import{le}from"./chunk-index-m0d100mg.js";var o={notices:[],badge:0,known:!1},r=new Set,s=(e)=>{o=e;for(let t of r)t()};function f(e){let t=navigator;(e>0?t.setAppBadge?.(e):t.clearAppBadge?.())?.catch(()=>{return})}function u(e){if(e.type==="notice"){let t=o.notices.filter((i)=>i.tag!==e.notice.tag),n=o.notices.findIndex((i)=>i.tag===e.notice.tag),c=n>=0?o.notices[n]:void 0,p=c&&c.raisedAt!==e.notice.raisedAt,g=n>=0&&!p?o.notices.map((i)=>i.tag===e.notice.tag?e.notice:i):[e.notice,...t];s({...o,notices:g,known:!0})}else if(e.type==="notice_resolved")s({...o,notices:o.notices.filter((t)=>t.tag!==e.tag),known:!0});else if(e.type==="badge")s({...o,badge:e.count,known:!0}),f(e.count)}var a=w.getState().connects;w.subscribe(()=>{let e=w.getState().connects;if(e===a)return;a=e,s({...o,notices:[],known:!1})});for(let e of Zi.splice(0))u(e);mi.take=u;function d(){return o}function m(e){return r.add(e),()=>r.delete(e)}function Rn(){return it(m,d,d)}async function Qr(e){await le.ackNotice(e),s({...o,notices:o.notices.map((t)=>t.tag===e?{...t,acked:!0}:t),badge:Math.max(0,o.badge-(o.notices.some((t)=>t.tag===e&&t.ackable&&!t.acked)?1:0))})}function Mr(e){if(!e)return x("notices");if("room"in e){let c=x("room",e.room);return e.message===void 0?c:`${c}?message=${e.message}`}let t=x("p",e.page),n=new URLSearchParams(e.query??{}).toString();return n?`${t}?${n}`:t}
2
- export{Rn,Qr,Mr};
@@ -1,2 +0,0 @@
1
- import{e}from"./chunk-index-v23m38p6.js";import{I}from"./chunk-index-awx6nnta.js";function ue(t){return e(I,{open:t.open,title:t.title,onClose:t.onClose,...t.size&&t.size!=="default"?{size:t.size}:{},children:t.children})}
2
- export{ue};