pi-roundtable-web 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +4 -4
  3. package/dist/chunk-account-9616x405.js +1 -0
  4. package/dist/{chunk-action-menu-qpp9bdxh.js → chunk-action-menu-q5y7xpry.js} +1 -1
  5. package/dist/chunk-agent-x74xezyt.js +1 -0
  6. package/dist/{chunk-arranged-rooms-6rdkk8t1.js → chunk-arranged-rooms-9prq46vh.js} +1 -1
  7. package/dist/chunk-bulk-actions-5dc4m9ad.js +1 -0
  8. package/dist/chunk-character-creator-wf02eg0h.js +1 -0
  9. package/dist/{chunk-codeeditor-jgj32247.js → chunk-codeeditor-239ss6a2.js} +2 -2
  10. package/dist/chunk-confirm-bhrx9195.js +1 -0
  11. package/dist/chunk-connectors-k77pd9by.js +37 -0
  12. package/dist/{chunk-conversations-fb071rez.js → chunk-conversations-ftcpaqw1.js} +1 -1
  13. package/dist/chunk-council-sheet-a5e6tspr.js +2 -0
  14. package/dist/chunk-council-view-6593rqbr.js +1 -0
  15. package/dist/{chunk-drag-04qfef58.js → chunk-drag-7873fvzw.js} +1 -1
  16. package/dist/{chunk-entry-mws704mc.js → chunk-entry-5zmjxadx.js} +1 -1
  17. package/dist/chunk-folder-list-h9hmbm8e.js +1 -0
  18. package/dist/chunk-folds-vxq86t1s.js +1 -0
  19. package/dist/{chunk-gate-vxetvn8t.js → chunk-gate-fa6za28z.js} +1 -1
  20. package/dist/chunk-host-icons-y6frbzqt.js +1 -0
  21. package/dist/chunk-host-picture-fqg55rbr.js +1 -0
  22. package/dist/chunk-host-state-65tdhkyq.js +1 -0
  23. package/dist/{chunk-host-ui-pc9r24e3.js → chunk-host-ui-233kz7qp.js} +1 -1
  24. package/dist/{chunk-index-5hbq6g2e.css → chunk-index-1652v386.css} +1 -1
  25. package/dist/chunk-index-2c00zf3z.js +2 -0
  26. package/dist/chunk-index-2dhrqvba.js +2 -0
  27. package/dist/chunk-index-2s4bkrz3.js +2 -0
  28. package/dist/{chunk-index-v8mma5np.js → chunk-index-2ypaqwjy.js} +2 -2
  29. package/dist/{chunk-index-7qd604rq.js → chunk-index-35zqk1zr.js} +2 -2
  30. package/dist/chunk-index-39qq37j5.js +2 -0
  31. package/dist/{chunk-index-2hvn2kte.js → chunk-index-3tjmyd1h.js} +2 -2
  32. package/dist/{chunk-index-2tr41qht.js → chunk-index-4eag6s50.js} +2 -2
  33. package/dist/{chunk-index-2y8r4s4f.js → chunk-index-4jnn2g09.js} +2 -2
  34. package/dist/{chunk-index-q5fyrtx4.js → chunk-index-4krm48hm.js} +1 -1
  35. package/dist/{chunk-index-zj0gjcvr.js → chunk-index-4re5prfp.js} +2 -2
  36. package/dist/chunk-index-57teqgct.js +2 -0
  37. package/dist/{chunk-index-e2gy763y.js → chunk-index-5ssncptg.js} +2 -2
  38. package/dist/{chunk-index-20xgx0k2.js → chunk-index-7c9fn21n.js} +2 -2
  39. package/dist/{chunk-index-p7jkr7gv.js → chunk-index-7k5895sn.js} +5 -5
  40. package/dist/chunk-index-93f3e06v.js +2 -0
  41. package/dist/chunk-index-9m9v1p7s.js +2 -0
  42. package/dist/{chunk-index-3yy10a5h.js → chunk-index-a8c0ap8g.js} +2 -2
  43. package/dist/chunk-index-a8nqn3y0.js +3 -0
  44. package/dist/chunk-index-am7ghh75.js +120 -0
  45. package/dist/{chunk-index-rgf4rvns.js → chunk-index-amspdq2j.js} +3 -3
  46. package/dist/{chunk-index-s53bxwkk.js → chunk-index-aycxt14t.js} +2 -2
  47. package/dist/{chunk-index-jc3r4qam.js → chunk-index-bjeg3e2j.js} +2 -2
  48. package/dist/chunk-index-cttrqfm8.js +2 -0
  49. package/dist/chunk-index-dajanzxc.js +1 -0
  50. package/dist/chunk-index-e2eeckhh.js +2 -0
  51. package/dist/{chunk-index-rsd8rftk.js → chunk-index-e46652wf.js} +2 -2
  52. package/dist/chunk-index-ek98d2rn.js +2 -0
  53. package/dist/{chunk-index-n0cmnwd2.js → chunk-index-en5dm1zv.js} +2 -2
  54. package/dist/{chunk-index-zcfr8jdv.js → chunk-index-evhaaqzk.js} +12 -12
  55. package/dist/{chunk-index-2syyyjnq.js → chunk-index-f4gqzfkv.js} +2 -2
  56. package/dist/{chunk-index-3gfbhmpb.js → chunk-index-gj3n4dh5.js} +2 -2
  57. package/dist/chunk-index-gp4chnp3.js +2 -0
  58. package/dist/{chunk-index-v9gbt5tz.js → chunk-index-h2a42p6s.js} +3 -3
  59. package/dist/{chunk-index-zt19fdmc.js → chunk-index-haac6nbt.js} +2 -2
  60. package/dist/{chunk-index-gwkhs8s3.js → chunk-index-hef4gwtb.js} +2 -2
  61. package/dist/chunk-index-mg96sqpk.js +2 -0
  62. package/dist/chunk-index-nsya88fn.js +1 -0
  63. package/dist/{chunk-index-6cg8xp1c.js → chunk-index-ntt3em2k.js} +1 -1
  64. package/dist/chunk-index-pcbkp62w.js +2 -0
  65. package/dist/{chunk-index-5t2jkecy.js → chunk-index-pfs6rm6w.js} +2 -2
  66. package/dist/{chunk-index-x60n1me6.js → chunk-index-pgxgq61x.js} +2 -2
  67. package/dist/{chunk-index-s9p27f9b.js → chunk-index-q33ppq0j.js} +3 -3
  68. package/dist/{chunk-index-fepsbhr6.js → chunk-index-r0hk9kyd.js} +2 -2
  69. package/dist/{chunk-index-2822z600.js → chunk-index-rr73h4kc.js} +3 -3
  70. package/dist/{chunk-index-e35v554x.js → chunk-index-rtz4936v.js} +1 -1
  71. package/dist/chunk-index-smz90j6p.js +2 -0
  72. package/dist/{chunk-index-c7dbvkrq.js → chunk-index-teyx2hz7.js} +2 -2
  73. package/dist/{chunk-index-4t6vnwap.js → chunk-index-v6h43553.js} +2 -2
  74. package/dist/chunk-index-vzqwn3wp.js +2 -0
  75. package/dist/chunk-index-wt2asefx.js +50 -0
  76. package/dist/chunk-index-x4tq9btg.js +2 -0
  77. package/dist/chunk-index-y6p8j3zv.js +2 -0
  78. package/dist/chunk-index-yvcdg5hh.js +2 -0
  79. package/dist/{chunk-index-m81362sc.js → chunk-index-zdzzf3fp.js} +1 -1
  80. package/dist/chunk-index-zeqfnkty.js +2 -0
  81. package/dist/chunk-index-zpwb8mkk.js +2 -0
  82. package/dist/chunk-lang-css-avzhvm72.js +1 -0
  83. package/dist/{chunk-lang-dockerfile-n4bt8jbt.js → chunk-lang-dockerfile-2p7e3ssz.js} +1 -1
  84. package/dist/{chunk-lang-go-9k4y107e.js → chunk-lang-go-zxp9k517.js} +3 -3
  85. package/dist/chunk-lang-html-red02gep.js +1 -0
  86. package/dist/chunk-lang-javascript-n33kmjcx.js +1 -0
  87. package/dist/{chunk-lang-json-hr12bzs1.js → chunk-lang-json-zmym50rg.js} +1 -1
  88. package/dist/{chunk-lang-markdown-ttzcpgkg.js → chunk-lang-markdown-ww2kcs85.js} +4 -4
  89. package/dist/{chunk-lang-python-ntj8maem.js → chunk-lang-python-ng1zdtd4.js} +2 -2
  90. package/dist/{chunk-lang-rust-gv8y859d.js → chunk-lang-rust-6ynhxjdd.js} +1 -1
  91. package/dist/{chunk-lang-shell-5zzs09b7.js → chunk-lang-shell-39t9bz2s.js} +1 -1
  92. package/dist/{chunk-lang-sql-6vmze4pg.js → chunk-lang-sql-w875ejpg.js} +2 -2
  93. package/dist/{chunk-lang-toml-tt0d4rw9.js → chunk-lang-toml-b8ckgkg5.js} +1 -1
  94. package/dist/chunk-lang-typescript-qf8acbb2.js +1 -0
  95. package/dist/{chunk-lang-xml-r2sbqnjv.js → chunk-lang-xml-bz91cjp1.js} +1 -1
  96. package/dist/{chunk-lang-yaml-ex31qbph.js → chunk-lang-yaml-g9zy0tdv.js} +1 -1
  97. package/dist/chunk-layout-actions-fyzzzeyp.js +1 -0
  98. package/dist/chunk-menu-items-yvnk3vds.js +1 -0
  99. package/dist/chunk-mode-toggle-ccv271hm.js +1 -0
  100. package/dist/{chunk-note-row-40ypghn9.js → chunk-note-row-314py1pp.js} +3 -3
  101. package/dist/{chunk-notes-a8nqffbf.js → chunk-notes-4rnrddzw.js} +1 -1
  102. package/dist/{chunk-notice-bell-rdnfmtf2.js → chunk-notice-bell-z9wgamnz.js} +1 -1
  103. package/dist/{chunk-notices-tefx93s6.js → chunk-notices-mtn7pg1z.js} +1 -1
  104. package/dist/{chunk-onboarding-wvh0s3vg.js → chunk-onboarding-f3hhxgg4.js} +1 -1
  105. package/dist/{chunk-overview-zrx3bpwf.js → chunk-overview-qmepntrr.js} +1 -1
  106. package/dist/chunk-palette-edkn1ypq.js +1 -0
  107. package/dist/chunk-placement-items-trsa5t23.js +1 -0
  108. package/dist/{chunk-profile-tyb48b79.js → chunk-profile-pwfq0wns.js} +1 -1
  109. package/dist/chunk-prompt-history-xp9hmeqt.js +1 -0
  110. package/dist/chunk-prompts-a56qvytg.js +1 -0
  111. package/dist/chunk-room-confirms-gqpkz4h0.js +1 -0
  112. package/dist/{chunk-room-menu-ha1evv71.js → chunk-room-menu-1m2c2ekt.js} +1 -1
  113. package/dist/chunk-rooms-menu-button-tcvda1gq.js +1 -0
  114. package/dist/{chunk-schedules-a5pewkhd.js → chunk-schedules-kwnw7p8v.js} +1 -1
  115. package/dist/{chunk-seat-menu-eh3ymmks.js → chunk-seat-menu-m2n9nvv0.js} +1 -1
  116. package/dist/chunk-sheet-hosts-pr8xktyq.js +29 -0
  117. package/dist/{chunk-shortcut-help-bh9ntk9s.js → chunk-shortcut-help-sbvrds1m.js} +2 -2
  118. package/dist/{chunk-shortcuts-6em0atk9.js → chunk-shortcuts-8705p7q3.js} +1 -1
  119. package/dist/{chunk-skill-editor-e43mwz01.js → chunk-skill-editor-7xy09sq1.js} +2 -2
  120. package/dist/chunk-skills-cnc25x7q.js +1 -0
  121. package/dist/{chunk-start-over-line-xd1v2p0g.js → chunk-start-over-line-97zdd9pb.js} +2 -2
  122. package/dist/{chunk-switcher-list-dtfh87zy.js → chunk-switcher-list-ehsn2wsk.js} +1 -1
  123. package/dist/{chunk-tab-dot-qd640mjr.js → chunk-tab-dot-gkpe06q8.js} +1 -1
  124. package/dist/chunk-table-av3kh3tt.js +1 -0
  125. package/dist/{chunk-table2d-5nrhfwft.js → chunk-table2d-5x3jptp9.js} +1 -1
  126. package/dist/{chunk-table3d-5cb66d99.js → chunk-table3d-rsvajx7r.js} +172 -172
  127. package/dist/chunk-thread-actions-7xtkegwm.js +1 -0
  128. package/dist/{chunk-thread-cards-kgt22sbp.js → chunk-thread-cards-grzszfha.js} +1 -1
  129. package/dist/{chunk-thread-list-j2v1pqkz.js → chunk-thread-list-9bjjac3j.js} +2 -2
  130. package/dist/{chunk-transcript-a0p3vwh6.js → chunk-transcript-t5szb8r0.js} +1 -1
  131. package/dist/{chunk-waiting-chip-58ttx9av.js → chunk-waiting-chip-d8b6a0p8.js} +2 -2
  132. package/dist/chunk-waiting-ts3kxjvv.js +1 -0
  133. package/dist/chunk-where-3d3ncsa5.js +1 -0
  134. package/dist/{chunk-workspace-d34njy4p.js → chunk-workspace-ct6hvn0z.js} +2 -2
  135. package/dist/chunk-zh-tw-v9v1eerm.js +1 -0
  136. package/dist/index.html +1 -1
  137. package/dist/sw.js +1 -1
  138. package/package.json +3 -3
  139. package/src/api-types.ts +39 -0
  140. package/src/app/rooms.ts +30 -2
  141. package/src/app/routes.ts +26 -2
  142. package/src/app/skill-group-routes.ts +126 -0
  143. package/src/authz.ts +1 -0
  144. package/src/i18n/zh-tw.ts +31 -2
  145. package/src/push/channel.ts +1 -0
  146. package/src/web-plugin.ts +1 -0
  147. package/dist/chunk-account-678dgbww.js +0 -1
  148. package/dist/chunk-agent-x0yvvdq2.js +0 -1
  149. package/dist/chunk-bulk-actions-zbwdaxtc.js +0 -1
  150. package/dist/chunk-character-creator-215psy17.js +0 -1
  151. package/dist/chunk-confirm-2pzrt272.js +0 -1
  152. package/dist/chunk-connectors-zha2d834.js +0 -37
  153. package/dist/chunk-council-sheet-k5fycefd.js +0 -2
  154. package/dist/chunk-folder-list-qxhmczwv.js +0 -1
  155. package/dist/chunk-folds-b7asegfs.js +0 -1
  156. package/dist/chunk-group-scene-63yhh1mh.js +0 -1
  157. package/dist/chunk-group-table-zy4hmgk3.js +0 -1
  158. package/dist/chunk-host-icons-tyktazzz.js +0 -1
  159. package/dist/chunk-host-picture-ebhejn2k.js +0 -1
  160. package/dist/chunk-host-state-wajep0yr.js +0 -1
  161. package/dist/chunk-index-1af8vsyb.js +0 -2
  162. package/dist/chunk-index-254701sm.js +0 -3
  163. package/dist/chunk-index-31m1b2f5.js +0 -2
  164. package/dist/chunk-index-5vatmakn.js +0 -2
  165. package/dist/chunk-index-6yra9kdq.js +0 -2
  166. package/dist/chunk-index-9bdstf8t.js +0 -2
  167. package/dist/chunk-index-acj4xxgq.js +0 -100
  168. package/dist/chunk-index-aexy023z.js +0 -2
  169. package/dist/chunk-index-bef0fc2m.js +0 -2
  170. package/dist/chunk-index-c6tphrjr.js +0 -1
  171. package/dist/chunk-index-cn49mawx.js +0 -50
  172. package/dist/chunk-index-gcmmwh8t.js +0 -2
  173. package/dist/chunk-index-h2vhv4kh.js +0 -2
  174. package/dist/chunk-index-h9ccz1r3.js +0 -2
  175. package/dist/chunk-index-n0ejy0wd.js +0 -2
  176. package/dist/chunk-index-nkdg1dfz.js +0 -7
  177. package/dist/chunk-index-qxynr1hf.js +0 -2
  178. package/dist/chunk-index-r7fdgzy1.js +0 -2
  179. package/dist/chunk-index-sdcpf5dp.js +0 -2
  180. package/dist/chunk-index-sm7kfb07.js +0 -2
  181. package/dist/chunk-index-sw9r4aa4.js +0 -2
  182. package/dist/chunk-index-t5bmsqqd.js +0 -1
  183. package/dist/chunk-index-vsfsv8hd.js +0 -2
  184. package/dist/chunk-index-wxft0aqb.js +0 -2
  185. package/dist/chunk-index-zvvwxkev.js +0 -2
  186. package/dist/chunk-lang-css-7q1dtpgm.js +0 -1
  187. package/dist/chunk-lang-html-xgvba8rn.js +0 -1
  188. package/dist/chunk-lang-javascript-vgxmgd0a.js +0 -1
  189. package/dist/chunk-lang-typescript-2v652sh5.js +0 -1
  190. package/dist/chunk-layout-actions-bfqtg71d.js +0 -1
  191. package/dist/chunk-menu-items-rztgekfj.js +0 -1
  192. package/dist/chunk-mode-toggle-m5kgb7c7.js +0 -1
  193. package/dist/chunk-palette-5xtdvy9a.js +0 -1
  194. package/dist/chunk-placement-items-rgyrktvy.js +0 -1
  195. package/dist/chunk-prompt-history-wv0vdsjv.js +0 -1
  196. package/dist/chunk-prompts-75hgb0t0.js +0 -1
  197. package/dist/chunk-room-confirms-bcvhpcry.js +0 -1
  198. package/dist/chunk-rooms-menu-button-ej3a2hyc.js +0 -1
  199. package/dist/chunk-sheet-hosts-d5zbwbbr.js +0 -29
  200. package/dist/chunk-skills-vp107wrp.js +0 -1
  201. package/dist/chunk-table-svb2xhfd.js +0 -1
  202. package/dist/chunk-thread-actions-926eab0w.js +0 -1
  203. package/dist/chunk-waiting-cdyz7r1g.js +0 -1
  204. package/dist/chunk-where-9jp6g029.js +0 -1
  205. package/dist/chunk-zh-tw-y3jb20wc.js +0 -1
@@ -1,100 +0,0 @@
1
- import{o,$e,pi,a,r,t,g,e,n,s,Pe,l,M,_,Ye,wt,gn,fe,$t,et,Xe,Ji,er,tr,xn,we}from"./chunk-index-cn49mawx.js";import{Vo,En,qo,Or,Bt}from"./chunk-index-nkdg1dfz.js";import{se}from"./chunk-index-amxa2bn3.js";import{R}from"./chunk-index-m81362sc.js";function z(i,d,c,f){if(!i)return;let u=i.pending.at(-1);if(u&&!u.failed)return{id:`p${u.id}`,who:"owner",author:d,text:u.text,files:[],live:!1,pending:!0};if(i.typing&&i.progress.text!==""){let m=i.agent??f;return{id:`s${i.messages.at(-1)?.id??0}`,who:"agent",agent:m,author:c(m),text:i.progress.text,files:[],live:!0,pending:!1}}let h=i.live.at(-1);if(h)return{id:`l${h.live??h.id}`,who:"agent",agent:h.agent,author:h.author,text:h.text,files:h.files,live:!0,pending:!1};for(let m=i.messages.length-1;m>=0;m-=1){let p=i.messages[m];if(!p||p.kind==="system")continue;return{id:`m${p.id}`,who:p.kind==="owner"?"owner":"agent",agent:p.agent,author:p.author,text:p.text,files:p.files,live:!1,pending:!1}}return}function G(i,d,c){return i.cardOrder.map((u)=>({id:u,card:i.cards[u]})).filter((u)=>u.card?.room===d).filter((u)=>u.card.outcome===void 0||c===void 0||u.card.after>=c)}var he=90;function be(i,d,c,f={}){if(f.instant)return d;let u=i+c/1000*(f.cps??he);return Math.min(d,Math.max(i,u))}function j(){let i,d="",c=0,f=0;return{get shown(){return Math.floor(f)},get done(){return Math.floor(f)>=c},feed(u,h){if(u!==i){let m=d!==""&&(h.startsWith(d)||d.startsWith(h));if(i=u,!m)f=0}if(d=h,c=Array.from(h).length,f>c)f=c},step(u,h){f=be(f,c,u,{instant:h})},finish(){f=c}}}function Y(i,d,c){if(i?.who!=="agent")return;if(i.live&&c!==void 0)return c;return d?i.agent:void 0}function W(i,d=80){let c=i.split(`
2
- `).map((u)=>u.replace(/^\s*(?:#{1,6}\s|>\s?|[-*+]\s|\d+\.\s)+/,"").replace(/[*_`~]/g,"").replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\s+/g," ").trim()).find((u)=>u!=="")??"",f=Array.from(c);return f.length>d?`${f.slice(0,d-1).join("")}…`:c}var U=(i,d)=>Array.from(i).slice(0,d).join("");function Z(i,d){if(!i||i.who!=="agent"||i.agent===void 0)return null;return d.includes(i.agent)?i.agent:null}function J(i,d,c){return c&&c.lineId===d?c.member:i}var Q="roundtable-console:dialogue-folded",X="roundtable-console:table-mode",P=new Map,{emit:ve,use:ee}=M();function ne(i){let d=P.get(i);if(d!==void 0)return d;try{let c=globalThis.localStorage?.getItem(i)??void 0;if(c!==void 0)P.set(i,c);return c}catch{return}}function te(i,d){P.set(i,d);try{globalThis.localStorage?.setItem(i,d)}catch{}ve()}var ye=()=>ne(Q)==="1";function xe(i){te(Q,i?"1":"0")}var ke=()=>ne(X)==="chat"?"chat":"scene";function Se(i){te(X,i)}function T(){return[ee(ye),xe]}function Io(){return[ee(ke),Se]}var Ne=24;function oe(i,d,c){let f=a(!0);o(()=>{let u=i.current;if(!u)return;let h=()=>{f.current=u.scrollHeight-u.scrollTop-u.clientHeight<=Ne};return u.addEventListener("scroll",h,{passive:!0}),()=>u.removeEventListener("scroll",h)},[i]),$e(()=>{let u=i.current;if(!d){f.current=!0;return}if(u&&f.current)u.scrollTop=u.scrollHeight},[i,d,c])}var Re=`
3
- /* The box's fold button says what it does, in words beside its chevron. */
4
- .scene-collapse {
5
- width: auto;
6
- flex: none;
7
- gap: var(--space-1);
8
- padding-inline: var(--space-2);
9
- font-size: var(--text-xs);
10
- }
11
- .scene-collapse span {
12
- white-space: nowrap;
13
- }
14
- /* Folded, the box is one bar: who speaks, the start of their newest line, and the button that opens it. */
15
- .scene-bar {
16
- display: flex;
17
- align-items: center;
18
- gap: var(--space-2);
19
- min-height: var(--touch);
20
- padding: var(--space-1) var(--space-1) var(--space-1) var(--space-2);
21
- cursor: pointer;
22
- }
23
- .scene-bar .scene-chip {
24
- width: 2rem;
25
- height: 2rem;
26
- margin: 0;
27
- border-width: 2px;
28
- flex: none;
29
- }
30
- .scene-bar-name {
31
- flex: 0 1 auto;
32
- min-width: 3ch;
33
- max-width: 35%;
34
- overflow: hidden;
35
- text-overflow: ellipsis;
36
- white-space: nowrap;
37
- }
38
- .scene-bar-preview {
39
- flex: 1 1 0;
40
- min-width: 0;
41
- overflow: hidden;
42
- text-overflow: ellipsis;
43
- white-space: nowrap;
44
- color: var(--muted);
45
- font-size: var(--text-sm);
46
- }
47
- .scene-bar-asking {
48
- flex: none;
49
- padding: 0 var(--space-2);
50
- border-radius: var(--radius-full);
51
- background: color-mix(in srgb, var(--accent) 16%, transparent);
52
- font-size: var(--text-xs);
53
- white-space: nowrap;
54
- }
55
- .scene-composer[hidden] {
56
- display: none;
57
- }
58
-
59
- /* On a phone the tab's tools are narrow, but the fold button keeps its words. */
60
- @media (max-width: 719px) {
61
- .scene-tools .scene-collapse,
62
- .scene-bar .scene-collapse {
63
- width: auto;
64
- min-width: 0;
65
- padding-inline: var(--space-1);
66
- }
67
- }
68
- /* Phones held upright: folded, the box is only its bar and the scene takes the rest. */
69
- @media (max-width: 719px) and (orientation: portrait) {
70
- .table-frame[data-focused][data-folded] {
71
- grid-template-rows: minmax(0, 1fr) auto;
72
- }
73
- }
74
- `,Le=`
75
- /* The header's tools wrap under the title on a narrow screen rather than overflow it. */
76
- .table-tools {
77
- flex-wrap: wrap;
78
- justify-content: flex-end;
79
- }
80
- /* The switch between the scene and the chat: two short choices that sit beside the council chip. */
81
- .table-mode {
82
- flex: none;
83
- margin: 0;
84
- }
85
- .table-mode label {
86
- min-height: 2rem;
87
- padding: 0 var(--space-2);
88
- font-size: var(--text-sm);
89
- white-space: nowrap;
90
- }
91
- /* The council's messages as a chat fill the page under its header, like a room's own list. */
92
- .table-chat {
93
- position: relative;
94
- flex: 1;
95
- min-height: 0;
96
- display: flex;
97
- flex-direction: column;
98
- }
99
- `,re=()=>se("dialogue-fold",Re),Do=()=>se("table-page",Le);function Ce(i){if(i.ended==="limit")return t("Limit reached");if(i.ended==="stopped")return t("Round stopped");if(i.ended==="done")return t("{count} of {limit} replies",{count:i.replies,limit:i.limit});return t("Reply {n} of {limit}",{n:i.n,limit:i.limit})}var E=(i)=>Ce({...i,n:qo(i)});function ae(i){let d=l((m)=>m.rooms[i.roomKey]?.round),c=l((m)=>{let p={};for(let y of Object.values(m.rooms))if(y.view?.kind==="agent")p[y.view.name]=y.view.displayName;return p}),f=Xe();if(!d)return null;let u=Vo(d),h=(m)=>c[m]??m;return n("div",{className:"order-strip","data-state":d.state,children:[e("ol",{className:"order-faces","aria-label":t("Speaking order"),children:u.map((m,p)=>n("li",{className:"order-face","data-place":m.place,title:h(m.name),children:[e(fe,{spec:f[m.name],name:m.name,size:m.place==="current"?36:26,live:!1}),e("span",{className:"order-badge","aria-hidden":"true",children:m.place==="spoken"?"✓":m.place==="next"?m.order:null}),e("span",{className:"visually-hidden",children:`${h(m.name)}, ${m.place==="spoken"?t("has spoken"):m.place==="current"?t("speaking"):t("next")}`})]},`${m.name}:${p}`))}),e("span",{className:"order-chip","aria-live":"polite",children:E(d)}),d.state==="running"&&(d.queued??0)>0?e("span",{className:"order-queued",children:t("Your message waits for the next round")}):null]})}re();function Me(i){let d=a(j()),[,c]=pi((m)=>m+1,0),f=Pe();d.current.feed(i?.id??"",i?.text??"");let u=i?.text??"",h=i?.id;return o(()=>{let m=d.current;if(f||u===""||h===void 0){m.finish(),c();return}let p=performance.now(),y=0,w=()=>{let x=performance.now();if(m.step(x-p,!1),p=x,c(),!m.done)y=requestAnimationFrame(w)};if(!m.done)y=requestAnimationFrame(w);return()=>cancelAnimationFrame(y)},[f,h,u]),{shown:d.current.shown,done:d.current.done,finish(){d.current.finish(),c()}}}function A(i){let d=l((p)=>p.rooms[i]),c=l((p)=>p.principal?.name)??t("You"),f=l((p)=>{let y={};for(let w of Object.values(p.rooms))if(w.view?.kind==="agent")y[w.view.name]=w.view.displayName;return y}),u=d?.view,m=z(d,c,(p)=>(p===void 0?void 0:f[p])??p??u?.displayName??i,u?.kind==="agent"?u.name:void 0);return{room:d,view:u,line:m}}function Te(i){let{loaded:d,error:c}=i,f=l((p)=>p.rooms[i.roomKey]),[u,h]=r(!1),m=a(null);return o(()=>{if(i.open&&d)m.current?.scrollTo({top:m.current.scrollHeight})},[i.open,d]),e(R,{open:i.open,title:`${i.name} · ${t("Log")}`,onClose:i.onClose,children:n("div",{className:"scene-log",ref:m,children:[c?e("p",{className:"failure-text",children:c}):null,f?.more?e("button",{type:"button",className:"secondary older",disabled:u,onClick:async()=>{h(!0),await tr(i.roomKey),h(!1)},children:u?t("Loading…"):t("Load earlier messages")}):null,e(xn,{roomKey:i.roomKey,enterAfter:void 0,quotable:!0})]})})}function ie(i){let{roomKey:d}=i,c=we(),f=_(),u=er(d),h=i.streams!==!1;o(()=>{if(!h)return;return c.focus(d),()=>c.focus(void 0)},[c,d,h]);let m=l((v)=>v.limits),p=l((v)=>G(v,d,v.rooms[d]?.messages.at(-1)?.id)),y=Xe(),{room:w,view:x,line:b}=A(d),S=x?.kind==="agent"?x:void 0,N=S?S.name:b?.who==="agent"?b.agent:void 0,le=et(N?y[N]:void 0),L=S?S.displayName:b?b.author:x?.displayName??d,{shown:F,done:C,finish:K}=Me(b),de=Boolean(w?.typing&&w.progress.text!==""),D=Y(b,!C,de?En(w?.round)??b?.agent:void 0);o(()=>{Or(d,D)},[d,D]),o(()=>()=>Or(d,void 0),[d]);let H=a(null);oe(H,!C,F);let[ce,B]=r(!1),[k,I]=T(),ue=b?.who==="owner"&&!S?{["--agent-accent"]:"var(--accent)"}:le,me=Boolean(w?.typing)&&(!b||b.who==="owner"),pe=b?U(b.text,F):"",q=S||b?.who==="agent"?e("span",{className:"scene-chip",children:e(fe,{spec:N?y[N]:void 0,name:N??L,size:34,live:!1})}):null,ge=p.some(({card:v})=>v.outcome===void 0),V=n("button",{type:"button",className:"icon-button scene-collapse","aria-expanded":!k,onClick:(v)=>{v.stopPropagation(),I(!k)},children:[e(s,{name:"chevron",style:{rotate:k?"-90deg":"90deg"}}),e("span",{children:k?t("Expand dialogue"):t("Collapse dialogue")})]});return n("section",{className:"scene-box","data-open":i.open||void 0,"data-collapsed":k||void 0,"data-who":b?.who,style:ue,"aria-label":t("Log"),children:[k?n("div",{className:"scene-bar",onClick:()=>I(!1),children:[q,e("strong",{className:"scene-bar-name",children:L}),e("span",{className:"scene-bar-preview",children:b?W(b.text):w?.round?E(w.round):""}),ge?e("span",{className:"scene-bar-asking",children:t("Waiting for your answer")}):null,V]}):n("header",{className:"scene-tab",children:[q,e("strong",{className:"scene-name",children:L}),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:(v)=>i.onMenu?.(v.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:()=>B(!0),children:[e(s,{name:"conversations"}),e("span",{children:t("Log")})]}),V]})]}),k?null:i.strip,k?null:n("div",{className:"scene-body",ref:H,children:[e("div",{className:"scene-line","data-live":b?.live||void 0,"aria-live":"polite",...C?{}:{role:"button",tabIndex:0,title:t("Tap to show the whole message"),onClick:K,onKeyDown:(v)=>{if(v.key==="Enter"||v.key===" ")v.preventDefault(),K()}},children:b?n(g,{children:[S&&b.who==="owner"?e("span",{className:"scene-from",children:b.author}):null,e(Ye,{source:pe}),C?e($t,{files:b.files}):null]}):null}),me&&w?e(gn,{name:L,progress:w.progress}):null,p.map(({id:v,card:O})=>e("div",{className:"scene-card",children:e(Ji,{card:O,timeZone:f.timeZone})},v))]}),x?.readOnly?null:e("div",{className:"scene-composer",hidden:k,children:e(wt,{draftKey:d,name:x?.displayName??d,limits:m,stoppable:Boolean(w?.stoppable),blurAfterSend:i.blurAfterSend===!0,...x?.kind==="group"?{stopLabel:t("Stop the round")}:{},onSend:(v,O)=>c.say(d,v,O),onStop:()=>c.send({type:"stop",room:d})},d)}),e(Te,{roomKey:d,open:ce,loaded:u.loaded,error:u.error,name:x?.displayName??d,onClose:()=>B(!1)})]})}function Li(i,d){let{line:c}=A(i),f=l((x)=>En(x.rooms[i]?.round)),[u,h]=r(),m=`${c?.id??""}|${f??""}`,p=f!==void 0&&d.includes(f)?f:Z(c,d);return{focus:J(p,m,u),look:(x)=>h({lineId:m,member:x})}}function Xi(i){let{roomKey:d,members:c}=i,[f]=T();return n("div",{className:"table-frame room-scene","data-focused":"","data-folded":f||void 0,children:[e(Bt,{members:c,groupRoom:d,variant:"full",focus:i.focus,onFocus:i.onLook,onSeat:i.onLook,...i.onHandle?{onHandle:i.onHandle}:{},...i.onSeatMenu?{onSeatMenu:i.onSeatMenu}:{}}),e(ie,{roomKey:d,open:!0,streams:i.streams??!1,blurAfterSend:i.blurAfterSend===!0,strip:e(ae,{roomKey:d})})]})}function ra(i){let{focus:d,look:c}=Li(i.roomKey,i.members);return e(Xi,{roomKey:i.roomKey,members:i.members,focus:d,onLook:c})}
100
- export{Io,Do,Li,Xi,ra};
@@ -1,2 +0,0 @@
1
- import{O,y,d,f}from"./chunk-index-cn49mawx.js";async function tn(e,r){try{let t=await y.setMute(e,r);return O.dispatch({type:"room_muted",room:e,muted:t.muted}),!0}catch(t){return f(d(t),"danger"),!1}}
2
- export{tn};
@@ -1,2 +0,0 @@
1
- import{Re,O}from"./chunk-index-cn49mawx.js";import{at}from"./chunk-index-20xgx0k2.js";var vo=()=>{let{pins:t,folders:o}=O.getState();return{pins:t,folders:o}};function Pn(){let t=O.getState();return at(t,(o)=>Re(t,o))}
2
- export{vo,Pn};
@@ -1 +0,0 @@
1
- import{Ke,Fr,Kt,Gr,Z,ae,_i,Zr,Hs,js,Wr,Ks,Js,ea,wn}from"./chunk-index-fepsbhr6.js";export{Kt as AVATAR_STATES,Z as CATALOG,Ke as CLASS_IDS,ae as CharacterError,js as EAST_ASIAN_SKINS,Fr as EXPRESSIONS,Gr as STATE_EXPRESSION,Js as accentOf,ea as characterCss,Wr as checkSkins,Ks as composeSvg,Zr as parseCharacter,Hs as readCharacter,_i as resolveCharacter,wn as suggestCharacter};