pi-roundtable-web 0.29.0 → 0.29.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 (219) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/chunk-account-66e6ezdq.js +1 -0
  3. package/dist/{chunk-action-menu-q5y7xpry.js → chunk-action-menu-ap5xn7bf.js} +1 -1
  4. package/dist/{chunk-agent-x74xezyt.js → chunk-agent-sapt5qhn.js} +1 -1
  5. package/dist/chunk-arranged-rooms-n6bk696f.js +1 -0
  6. package/dist/chunk-attachments-p5v9gqyt.js +102 -0
  7. package/dist/chunk-bulk-actions-aze4ewc4.js +1 -0
  8. package/dist/chunk-character-creator-m7tw20ef.js +225 -0
  9. package/dist/{chunk-codeeditor-239ss6a2.js → chunk-codeeditor-yy6pq8mv.js} +2 -2
  10. package/dist/chunk-confirm-0cajsfhk.js +1 -0
  11. package/dist/chunk-connectors-tw0tbm21.js +37 -0
  12. package/dist/chunk-conversations-wkm23m5r.js +1 -0
  13. package/dist/{chunk-council-sheet-a5e6tspr.js → chunk-council-sheet-mz7s23nq.js} +2 -2
  14. package/dist/chunk-council-view-zgvzxtgn.js +1 -0
  15. package/dist/{chunk-drag-7873fvzw.js → chunk-drag-d1bpy8w6.js} +1 -1
  16. package/dist/{chunk-entry-5zmjxadx.js → chunk-entry-7zr5b1fp.js} +1 -1
  17. package/dist/{chunk-folder-list-h9hmbm8e.js → chunk-folder-list-bs4eh3g9.js} +1 -1
  18. package/dist/chunk-folds-eez1q41c.js +1 -0
  19. package/dist/{chunk-gate-fa6za28z.js → chunk-gate-dt91egcd.js} +1 -1
  20. package/dist/chunk-host-icons-nfe2t8tk.js +1 -0
  21. package/dist/chunk-host-picture-4rtswxwa.js +1 -0
  22. package/dist/chunk-host-state-1vxzmmq6.js +1 -0
  23. package/dist/chunk-host-ui-x38bf0et.js +1 -0
  24. package/dist/{chunk-index-4re5prfp.js → chunk-index-0h99xcs3.js} +2 -2
  25. package/dist/{chunk-index-5ssncptg.js → chunk-index-1kb8tv4v.js} +2 -2
  26. package/dist/chunk-index-24cggw6k.js +50 -0
  27. package/dist/chunk-index-2g8xtwqg.js +2 -0
  28. package/dist/chunk-index-3n38xe7m.js +2 -0
  29. package/dist/{chunk-index-en5dm1zv.js → chunk-index-3tksdmx7.js} +2 -2
  30. package/dist/{chunk-index-rr73h4kc.js → chunk-index-4a1tdadd.js} +3 -3
  31. package/dist/{chunk-index-f4gqzfkv.js → chunk-index-53fwc7sc.js} +2 -2
  32. package/dist/chunk-index-55ps4x5n.js +2 -0
  33. package/dist/{chunk-index-4krm48hm.js → chunk-index-5j1v2q7w.js} +1 -1
  34. package/dist/chunk-index-5w6tb7p0.js +2 -0
  35. package/dist/{chunk-index-y6p8j3zv.js → chunk-index-6btdp13p.js} +1 -1
  36. package/dist/chunk-index-6m7dwsmv.js +1 -0
  37. package/dist/{chunk-index-7c9fn21n.js → chunk-index-6rdywten.js} +2 -2
  38. package/dist/{chunk-index-gj3n4dh5.js → chunk-index-6s2pqwna.js} +2 -2
  39. package/dist/{chunk-index-r0hk9kyd.js → chunk-index-7mrkq793.js} +2 -2
  40. package/dist/chunk-index-7xcbpeqz.js +2 -0
  41. package/dist/chunk-index-88wh5eyj.js +2 -0
  42. package/dist/{chunk-index-ntt3em2k.js → chunk-index-8pbwr3rs.js} +1 -1
  43. package/dist/{chunk-index-bjeg3e2j.js → chunk-index-8wpvj7k5.js} +2 -2
  44. package/dist/chunk-index-97dcp1vh.js +1 -0
  45. package/dist/chunk-index-a7e6rhxy.js +2 -0
  46. package/dist/{chunk-index-4eag6s50.js → chunk-index-bxf8eq1s.js} +2 -2
  47. package/dist/chunk-index-c8gm1crh.js +120 -0
  48. package/dist/{chunk-index-4jnn2g09.js → chunk-index-ce7hsda9.js} +2 -2
  49. package/dist/chunk-index-cfesmk1f.js +2 -0
  50. package/dist/{chunk-index-zdzzf3fp.js → chunk-index-cmzvq3nf.js} +1 -1
  51. package/dist/{chunk-index-35zqk1zr.js → chunk-index-d4mx2vvf.js} +2 -2
  52. package/dist/chunk-index-d74tpnkd.js +2 -0
  53. package/dist/chunk-index-d941ae7c.js +2 -0
  54. package/dist/{chunk-index-rtz4936v.js → chunk-index-dr0jr7d3.js} +3 -3
  55. package/dist/{chunk-index-pcbkp62w.js → chunk-index-en728705.js} +2 -2
  56. package/dist/chunk-index-fb3kzyyp.js +2 -0
  57. package/dist/{chunk-index-a8c0ap8g.js → chunk-index-ffnd0jcj.js} +2 -2
  58. package/dist/chunk-index-fn6305vn.js +3 -0
  59. package/dist/{chunk-index-evhaaqzk.js → chunk-index-gdh7wsd5.js} +11 -11
  60. package/dist/{chunk-index-3tjmyd1h.js → chunk-index-m76gdwnk.js} +1 -1
  61. package/dist/chunk-index-mr391t49.js +2 -0
  62. package/dist/chunk-index-n3khm9fq.js +2 -0
  63. package/dist/{chunk-index-93f3e06v.js → chunk-index-nn4w6a04.js} +2 -2
  64. package/dist/{chunk-index-hef4gwtb.js → chunk-index-nr275sa7.js} +2 -2
  65. package/dist/{chunk-index-cttrqfm8.js → chunk-index-prq011b6.js} +1 -1
  66. package/dist/{chunk-index-h2a42p6s.js → chunk-index-q4k9vk04.js} +17 -1
  67. package/dist/chunk-index-rgdaec7y.js +2 -0
  68. package/dist/chunk-index-rjs1can6.js +2 -0
  69. package/dist/chunk-index-s4a8e4qm.js +2 -0
  70. package/dist/{chunk-index-q33ppq0j.js → chunk-index-sz381vda.js} +3 -3
  71. package/dist/{chunk-index-1652v386.css → chunk-index-t7csmbpy.css} +1 -1
  72. package/dist/{chunk-index-amspdq2j.js → chunk-index-v9jqyr1f.js} +1 -1
  73. package/dist/{chunk-index-e46652wf.js → chunk-index-vpq2cj14.js} +1 -1
  74. package/dist/chunk-index-vsaggfns.js +2 -0
  75. package/dist/{chunk-index-7k5895sn.js → chunk-index-w17wgjby.js} +3 -3
  76. package/dist/{chunk-index-teyx2hz7.js → chunk-index-wgrx2ybn.js} +2 -2
  77. package/dist/chunk-index-wsv46y9p.js +2 -0
  78. package/dist/{chunk-index-v6h43553.js → chunk-index-xbj816p0.js} +2 -2
  79. package/dist/{chunk-index-aycxt14t.js → chunk-index-yr758n6t.js} +2 -2
  80. package/dist/{chunk-index-pfs6rm6w.js → chunk-index-ysv36nbk.js} +2 -2
  81. package/dist/{chunk-index-haac6nbt.js → chunk-index-ze9p4npm.js} +2 -2
  82. package/dist/chunk-index-zfdvyrjt.js +2 -0
  83. package/dist/chunk-lang-css-3h22se37.js +1 -0
  84. package/dist/{chunk-lang-dockerfile-2p7e3ssz.js → chunk-lang-dockerfile-y24eejnh.js} +1 -1
  85. package/dist/{chunk-lang-go-zxp9k517.js → chunk-lang-go-qzgv1161.js} +2 -2
  86. package/dist/chunk-lang-html-9rvrmmpg.js +1 -0
  87. package/dist/chunk-lang-javascript-4kv8s3tk.js +1 -0
  88. package/dist/{chunk-lang-json-zmym50rg.js → chunk-lang-json-99v80v88.js} +1 -1
  89. package/dist/{chunk-lang-markdown-ww2kcs85.js → chunk-lang-markdown-gn8he877.js} +4 -4
  90. package/dist/{chunk-lang-python-ng1zdtd4.js → chunk-lang-python-prsw4p4k.js} +2 -2
  91. package/dist/{chunk-lang-rust-6ynhxjdd.js → chunk-lang-rust-g6xqta16.js} +1 -1
  92. package/dist/{chunk-lang-shell-39t9bz2s.js → chunk-lang-shell-dmpnzc6w.js} +1 -1
  93. package/dist/{chunk-lang-sql-w875ejpg.js → chunk-lang-sql-wz7ca27b.js} +2 -2
  94. package/dist/{chunk-lang-toml-b8ckgkg5.js → chunk-lang-toml-160prtq4.js} +1 -1
  95. package/dist/chunk-lang-typescript-mp0yw903.js +1 -0
  96. package/dist/{chunk-lang-xml-bz91cjp1.js → chunk-lang-xml-9htkz2dd.js} +1 -1
  97. package/dist/{chunk-lang-yaml-g9zy0tdv.js → chunk-lang-yaml-08749wd5.js} +1 -1
  98. package/dist/chunk-layout-actions-tdx896xf.js +1 -0
  99. package/dist/chunk-menu-items-trhybv1g.js +1 -0
  100. package/dist/chunk-mode-toggle-4dtfphq4.js +1 -0
  101. package/dist/chunk-note-row-28e5x7n8.js +233 -0
  102. package/dist/chunk-notes-5nkayhw8.js +1 -0
  103. package/dist/chunk-notice-bell-xz8a04am.js +1 -0
  104. package/dist/{chunk-notices-mtn7pg1z.js → chunk-notices-d0cwvk27.js} +1 -1
  105. package/dist/{chunk-onboarding-f3hhxgg4.js → chunk-onboarding-zs4rtea9.js} +1 -1
  106. package/dist/{chunk-overview-qmepntrr.js → chunk-overview-9sb3ywa8.js} +1 -1
  107. package/dist/{chunk-palette-edkn1ypq.js → chunk-palette-5sfhrv4x.js} +1 -1
  108. package/dist/chunk-placement-items-e2neja55.js +1 -0
  109. package/dist/{chunk-profile-pwfq0wns.js → chunk-profile-jffhtpqf.js} +1 -1
  110. package/dist/{chunk-prompt-history-xp9hmeqt.js → chunk-prompt-history-1jz2gk3v.js} +1 -1
  111. package/dist/{chunk-prompts-a56qvytg.js → chunk-prompts-0t30ttd0.js} +1 -1
  112. package/dist/chunk-room-confirms-6595921h.js +1 -0
  113. package/dist/{chunk-room-menu-1m2c2ekt.js → chunk-room-menu-hwkjyxwe.js} +1 -1
  114. package/dist/chunk-rooms-menu-button-k0eq1tcr.js +1 -0
  115. package/dist/{chunk-schedules-kwnw7p8v.js → chunk-schedules-e12y8fw2.js} +1 -1
  116. package/dist/{chunk-seat-menu-m2n9nvv0.js → chunk-seat-menu-n2bcw0mf.js} +1 -1
  117. package/dist/chunk-sheet-hosts-myvm2vhd.js +29 -0
  118. package/dist/chunk-shortcut-help-434sqnxc.js +26 -0
  119. package/dist/chunk-shortcuts-mjxph0g7.js +1 -0
  120. package/dist/chunk-skill-editor-98492yrt.js +8 -0
  121. package/dist/chunk-skills-mfv8ppfh.js +1 -0
  122. package/dist/chunk-start-over-line-m526193z.js +16 -0
  123. package/dist/{chunk-switcher-list-ehsn2wsk.js → chunk-switcher-list-5ngjar24.js} +1 -1
  124. package/dist/{chunk-tab-dot-gkpe06q8.js → chunk-tab-dot-tzjkahj5.js} +1 -1
  125. package/dist/{chunk-table-av3kh3tt.js → chunk-table-xbtbex2z.js} +1 -1
  126. package/dist/{chunk-table2d-5x3jptp9.js → chunk-table2d-61bvrykm.js} +1 -1
  127. package/dist/{chunk-table3d-rsvajx7r.js → chunk-table3d-5a7vbgyj.js} +24 -24
  128. package/dist/chunk-thread-actions-bf6vf2mt.js +1 -0
  129. package/dist/{chunk-thread-cards-grzszfha.js → chunk-thread-cards-n0n603vf.js} +1 -1
  130. package/dist/chunk-thread-list-7bkdn51x.js +227 -0
  131. package/dist/{chunk-transcript-t5szb8r0.js → chunk-transcript-8ztrkt6g.js} +1 -1
  132. package/dist/chunk-waiting-chip-y83c90v3.js +32 -0
  133. package/dist/chunk-waiting-s273kcgz.js +1 -0
  134. package/dist/chunk-where-jr791gzj.js +1 -0
  135. package/dist/chunk-workspace-dw71mshw.js +586 -0
  136. package/dist/chunk-zh-tw-vm5d0w6j.js +1 -0
  137. package/dist/index.html +1 -1
  138. package/dist/sw.js +1 -1
  139. package/package.json +2 -2
  140. package/src/api-types.ts +12 -0
  141. package/src/app/app.ts +7 -0
  142. package/src/app/card-log.ts +10 -2
  143. package/src/app/protocol.ts +18 -0
  144. package/src/app/queued-delivery.ts +107 -0
  145. package/src/app/queued-frames.ts +115 -0
  146. package/src/app/room-log.ts +39 -7
  147. package/src/app/routes.ts +97 -5
  148. package/src/app/socket.ts +12 -2
  149. package/src/app/surface.ts +37 -6
  150. package/src/app/zip.ts +124 -0
  151. package/src/auth/sessions.ts +9 -1
  152. package/src/host/cards.ts +10 -3
  153. package/src/host/stored-json.ts +23 -0
  154. package/src/i18n/zh-tw.ts +14 -0
  155. package/src/notices/mount.ts +1 -0
  156. package/src/notices/store.ts +9 -1
  157. package/src/web-plugin.ts +4 -1
  158. package/dist/chunk-account-9616x405.js +0 -1
  159. package/dist/chunk-arranged-rooms-9prq46vh.js +0 -1
  160. package/dist/chunk-bulk-actions-5dc4m9ad.js +0 -1
  161. package/dist/chunk-character-creator-wf02eg0h.js +0 -1
  162. package/dist/chunk-confirm-bhrx9195.js +0 -1
  163. package/dist/chunk-connectors-k77pd9by.js +0 -37
  164. package/dist/chunk-conversations-ftcpaqw1.js +0 -1
  165. package/dist/chunk-council-view-6593rqbr.js +0 -1
  166. package/dist/chunk-folds-vxq86t1s.js +0 -1
  167. package/dist/chunk-host-icons-y6frbzqt.js +0 -1
  168. package/dist/chunk-host-picture-fqg55rbr.js +0 -1
  169. package/dist/chunk-host-state-65tdhkyq.js +0 -1
  170. package/dist/chunk-host-ui-233kz7qp.js +0 -1
  171. package/dist/chunk-index-2c00zf3z.js +0 -2
  172. package/dist/chunk-index-2dhrqvba.js +0 -2
  173. package/dist/chunk-index-2s4bkrz3.js +0 -2
  174. package/dist/chunk-index-2ypaqwjy.js +0 -2
  175. package/dist/chunk-index-39qq37j5.js +0 -2
  176. package/dist/chunk-index-57teqgct.js +0 -2
  177. package/dist/chunk-index-9m9v1p7s.js +0 -2
  178. package/dist/chunk-index-a8nqn3y0.js +0 -3
  179. package/dist/chunk-index-am7ghh75.js +0 -120
  180. package/dist/chunk-index-amxa2bn3.js +0 -2
  181. package/dist/chunk-index-dajanzxc.js +0 -1
  182. package/dist/chunk-index-e2eeckhh.js +0 -2
  183. package/dist/chunk-index-ek98d2rn.js +0 -2
  184. package/dist/chunk-index-gp4chnp3.js +0 -2
  185. package/dist/chunk-index-mg96sqpk.js +0 -2
  186. package/dist/chunk-index-nsya88fn.js +0 -1
  187. package/dist/chunk-index-smz90j6p.js +0 -2
  188. package/dist/chunk-index-vzqwn3wp.js +0 -2
  189. package/dist/chunk-index-wt2asefx.js +0 -50
  190. package/dist/chunk-index-x4tq9btg.js +0 -2
  191. package/dist/chunk-index-yvcdg5hh.js +0 -2
  192. package/dist/chunk-index-zeqfnkty.js +0 -2
  193. package/dist/chunk-index-zpwb8mkk.js +0 -2
  194. package/dist/chunk-lang-css-avzhvm72.js +0 -1
  195. package/dist/chunk-lang-html-red02gep.js +0 -1
  196. package/dist/chunk-lang-javascript-n33kmjcx.js +0 -1
  197. package/dist/chunk-lang-typescript-qf8acbb2.js +0 -1
  198. package/dist/chunk-layout-actions-fyzzzeyp.js +0 -1
  199. package/dist/chunk-menu-items-yvnk3vds.js +0 -1
  200. package/dist/chunk-mode-toggle-ccv271hm.js +0 -1
  201. package/dist/chunk-note-row-314py1pp.js +0 -204
  202. package/dist/chunk-notes-4rnrddzw.js +0 -1
  203. package/dist/chunk-notice-bell-z9wgamnz.js +0 -1
  204. package/dist/chunk-placement-items-trsa5t23.js +0 -1
  205. package/dist/chunk-room-confirms-gqpkz4h0.js +0 -1
  206. package/dist/chunk-rooms-menu-button-tcvda1gq.js +0 -1
  207. package/dist/chunk-sheet-hosts-pr8xktyq.js +0 -29
  208. package/dist/chunk-shortcut-help-sbvrds1m.js +0 -26
  209. package/dist/chunk-shortcuts-8705p7q3.js +0 -1
  210. package/dist/chunk-skill-editor-7xy09sq1.js +0 -8
  211. package/dist/chunk-skills-cnc25x7q.js +0 -1
  212. package/dist/chunk-start-over-line-97zdd9pb.js +0 -16
  213. package/dist/chunk-thread-actions-7xtkegwm.js +0 -1
  214. package/dist/chunk-thread-list-9bjjac3j.js +0 -217
  215. package/dist/chunk-waiting-chip-d8b6a0p8.js +0 -28
  216. package/dist/chunk-waiting-ts3kxjvv.js +0 -1
  217. package/dist/chunk-where-3d3ncsa5.js +0 -1
  218. package/dist/chunk-workspace-ct6hvn0z.js +0 -578
  219. package/dist/chunk-zh-tw-v9v1eerm.js +0 -1
@@ -1 +1 @@
1
- import{Nn,Mr,Rr,Mt,an,ln,mi,Zo}from"./chunk-index-4re5prfp.js";import"./chunk-index-zeqfnkty.js";import{Ct,Gt}from"./chunk-index-pgxgq61x.js";var pe="http://www.w3.org/2000/svg",t=(d,s={},y)=>{let k=document.createElementNS(pe,d);for(let[S,G]of Object.entries(s))k.setAttribute(S,String(G));return y?.appendChild(k),k},ne=(d)=>{let s=/<svg[^>]*\swidth=/.test(d)?d:d.replace("<svg",'<svg width="256" height="256"');return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`},ye=0;function xe(d,s){let y=s||d<=6?1:2;return{rows:y,perRow:Math.max(1,Math.ceil(d/y))}}function $e(d,s){let y=`t2d${++ye}`,k=window.matchMedia("(prefers-reduced-motion: reduce)"),S=s.reducedMotion==="auto"||s.reducedMotion===void 0?k.matches:s.reducedMotion,G=s.labels??Gt,{theme:z,scheme:q}=s,v=[],B=new Map,A=new Map,R=new Map,N=new Map,C=s.focus??null,E=document.createElement("div");E.className="t2d";let m=t("svg",{role:"group","aria-label":G.table});if(E.appendChild(m),getComputedStyle(d).position==="static")d.style.position="relative";d.appendChild(E);function ie(e,r,a){let o=Math.max(1.6,a*0.022),u=o+Math.max(1.2,a*0.014),l=t("filter",{id:`${y}-rim`,x:"-15%",y:"-15%",width:"130%",height:"130%"},e);t("feMorphology",{in:"SourceAlpha",operator:"dilate",radius:u,result:"far"},l),t("feFlood",{"flood-color":r.ink,result:"ink"},l),t("feComposite",{in:"ink",in2:"far",operator:"in",result:"line"},l),t("feMorphology",{in:"SourceAlpha",operator:"dilate",radius:o,result:"near"},l),t("feFlood",{"flood-color":r.paper,result:"paper"},l),t("feComposite",{in:"paper",in2:"near",operator:"in",result:"rim"},l);let c=t("feMerge",{},l);for(let b of["line","rim","SourceGraphic"])t("feMergeNode",{in:b},c)}function x(){let e=Nn(z,q);E.classList.toggle("reduced",S),E.classList.toggle("focus",C!==null),E.classList.toggle("dim",v.some((i)=>R.get(i.id)==="speaking"));let r=s.variant==="compact",a=Math.max(d.clientWidth,200),o=Math.max(d.clientHeight,r?60:200);m.setAttribute("viewBox",`0 0 ${a} ${o}`),m.replaceChildren();let u=Math.max(v.length,1),{rows:l,perRow:c}=xe(u,r);t("rect",{width:a,height:o,fill:e.css.bg},m);let b=t("defs",{},m),T=a/2,O=r?o*0.82:o*0.62;if(t("ellipse",{cx:T,cy:O,rx:a*0.47,ry:r?o*0.2:o*0.34,fill:e.css.floor,stroke:e.ink,"stroke-width":2},m),!r)t("ellipse",{cx:T,cy:O,rx:a*0.3,ry:o*0.2,fill:"none",stroke:e.css.ring,"stroke-width":3,opacity:e.night?0.9:0.7},m);let I=a/c,V=r?o*0.95:o/(l+0.6),g=Math.max(46,Math.min(I*0.94,132,V*1.05)),h=g*0.72,n=g*1.05;ie(b,e,n),v.forEach((i,w)=>{let M=t("radialGradient",{id:`${y}-h${w}`},b);t("stop",{offset:0,"stop-color":i.color,"stop-opacity":0.95},M),t("stop",{offset:1,"stop-color":i.color,"stop-opacity":0},M)});let se=(i)=>{if(r)return o*0.92;return l===1?o*0.62:o*(0.46+i*0.3)};if(v.forEach((i,w)=>{let M=Math.floor(w/c),ae=Math.min(c,u-M*c),le=w-M*c,ce=a/ae*(le+0.5),de=se(M),F=R.get(i.id)??"idle",f=t("g",{class:"seat","data-seat":i.id,"data-state":F,...C===i.id?{"data-focus":""}:{},transform:`translate(${ce.toFixed(1)} ${de.toFixed(1)})`,tabindex:s.listBelow?-1:0,role:"button","aria-label":G.seat(i.name,F),color:e.css.text,...s.listBelow?{"aria-hidden":"true"}:{}},m);t("ellipse",{cx:0,cy:3,rx:g*0.55,ry:g*0.1,fill:"#000",opacity:0.35},f),t("ellipse",{class:"halo",cx:0,cy:-h-n*0.35,rx:n*0.8,ry:n*0.8,fill:`url(#${y}-h${w})`},f),t("polygon",{class:"beam",points:`${-n*0.12},${-n*2.1} ${n*0.12},${-n*2.1} ${n*0.5},0 ${-n*0.5},0`,fill:i.color,opacity:0.2},f);let _=t("g",{class:"lift"},f),Z=B.get(i.id);if(Z){let p={x:-n/2,y:-h-n*0.78,width:n,height:n*0.88,filter:`url(#${y}-rim)`};t("image",{href:ne(Z),...p,...i.dim?{opacity:0.55}:{}},_);let oe=A.get(i.id);if(F==="speaking"&&oe&&!S){let ge=t("image",{class:"talk",href:ne(oe),...p,opacity:0},_),{frames:he,seconds:ue}=Zo(w);t("animate",{attributeName:"opacity",values:he.join(";"),dur:`${ue.toFixed(3)}s`,calcMode:"discrete",repeatCount:"indefinite"},ge)}}else{t("circle",{cx:0,cy:-h-n*0.3,r:n*0.3,fill:i.color,stroke:e.ink,"stroke-width":2},_);let p=t("text",{x:0,y:-h-n*0.3+n*0.1,"text-anchor":"middle","font-size":n*0.3,"font-weight":700,fill:"#fff","font-family":Mt},_);p.textContent=Array.from(i.name)[0]?.toUpperCase()??"?"}let J=h*0.22;t("path",{d:`M ${-g*0.5} ${-h} L ${g*0.5} ${-h} L ${g*0.42} 0 L ${-g*0.42} 0 Z`,fill:e.wood,stroke:e.ink,"stroke-width":2,"stroke-linejoin":"round"},f),t("rect",{x:-g*0.54,y:-h-J*0.2,width:g*1.08,height:J,rx:2,fill:e.woodLight,stroke:e.ink,"stroke-width":2},f);let L=Math.max(11,Math.min(15,g*0.14)),j=Math.min(Math.max(g*0.9,L*5.5+14),Math.max(g*0.9,i.name.length*L*0.62+18),I*0.98),fe=L+8;t("rect",{class:"plate",x:-j/2,y:-h*0.78,width:j,height:fe,rx:3,fill:e.gold,stroke:e.ink,"stroke-width":2},f);let me=t("text",{x:0,y:-h*0.78+L+1.5,"text-anchor":"middle","font-size":L,"font-weight":700,"font-family":Mt,fill:e.plateInk},f),Q=N.get(i.id);me.textContent=Rr(Q?`${Q} ${i.name}`:i.name,(j-8)/L);let ee=t("g",{class:"badge"},t("g",{transform:`translate(${n*0.4} ${-h-n*0.78})`},f)),D=F==="done",P=F==="error",U=e.gold;if(D)U=Mr.done;else if(P)U=Mr.error;t("circle",{r:n*0.15,fill:U,stroke:e.ink,"stroke-width":2},ee);let W=t("text",{x:0,y:n*0.06,"text-anchor":"middle","font-size":n*0.2,"font-weight":800,"font-family":Mt,fill:D||P?"#fff":e.ink},ee);if(W.textContent="!",D)W.textContent="✓";else if(P)W.textContent="✕";let te=t("g",{class:"orbit"},f);t("circle",{cx:n*0.4,cy:-h-n*0.5,r:n*0.05,fill:i.color},te),t("circle",{cx:-n*0.4,cy:-h-n*0.5,r:n*0.035,fill:i.color,opacity:0.6},te),f.addEventListener("click",(p)=>s.onSeatClick({id:i.id,name:i.name,at:Ct(p,f)})),f.addEventListener("keydown",(p)=>{if(p.key==="Enter"||p.key===" ")p.preventDefault(),s.onSeatClick({id:i.id,name:i.name,at:Ct({clientX:0,clientY:0,detail:0},f)})})}),!r){let i=Math.min(a*0.34,190),w=o-6;t("rect",{x:T-i/2,y:w-22,width:i,height:22,rx:4,fill:e.wood,stroke:e.ink,"stroke-width":2},m);let M=t("text",{x:T,y:w-7,"text-anchor":"middle","font-size":12,"font-weight":700,"font-family":Mt,fill:e.gold},m);M.textContent=Rr(s.ownerName??"You",12)}}let H=new Set,re=(e,r)=>{if(e.mode==="cut")return;let a=Nn(z,q),o=(u,l)=>{let c=setTimeout(()=>{H.delete(c),u()},l);H.add(c)};for(let u of e.joining){let l=[...m.querySelectorAll("g.seat[data-seat]")].find((c)=>c.getAttribute("data-seat")===u);if(!l)continue;l.classList.add("seat-in"),l.prepend(t("ellipse",{class:"seat-ring",rx:44,ry:12,cy:4,stroke:a.css.ring})),o(()=>{l.classList.remove("seat-in"),l.querySelector(".seat-ring")?.remove()},ln)}for(let u of e.leaving){let l=r.get(u);if(!l)continue;let c=l.cloneNode(!0);c.classList.add("seat-out");for(let b of["data-seat","tabindex","role","aria-label"])c.removeAttribute(b);c.setAttribute("aria-hidden","true");for(let[b,[T,O,I]]of[[-26,-24,20],[24,-20,22],[0,-52,24],[-4,-4,26]].entries()){let V=t("circle",{class:"puff",cx:T,cy:O,r:I,fill:a.paper,stroke:a.ink,"stroke-width":3},c);V.style.animationDelay=`${b*40}ms`}m.appendChild(c),o(()=>c.remove(),an)}},Y=new ResizeObserver(x);Y.observe(d);let X=()=>{if(s.reducedMotion==="auto"||s.reducedMotion===void 0)K.setReducedMotion(k.matches)};k.addEventListener("change",X);let K={kind:"svg",setTheme(e,r){z=e,q=r,x()},setSeats(e){let r=v.map((o)=>o.id),a=new Map([...m.querySelectorAll("g.seat[data-seat]")].map((o)=>[o.getAttribute("data-seat")??"",o]));v=e;for(let o of e){if(R.set(o.id,o.state??"idle"),o.avatarSvg)B.set(o.id,o.avatarSvg);if(o.talkSvg)A.set(o.id,o.talkSvg);else A.delete(o.id)}if(x(),r.length>0||a.size>0)re(mi(r,e.map((o)=>o.id),S),a)},setState(e,r){if(R.get(e)===r)return;R.set(e,r),x()},setMark(e,r){if((N.get(e)??null)===r)return;if(r===null)N.delete(e);else N.set(e,r);x()},setAvatar(e,r,a){if(B.set(e,r),a)A.set(e,a);else A.delete(e);return x(),Promise.resolve()},setReducedMotion(e){S=e,x()},resetCamera(){C=null,x(),s.onFocus?.(null)},focus(e){if(e===C)return;C=e,x()},focused:()=>C,getStats(){return{kind:"svg",fps:0,frameMs:0,frameMsMax:0,drawCalls:0,triangles:0,textures:0,geometries:0,dpr:1,lowPower:!1,reduced:S,loop:"idle",seats:v.length,renders:0}},dispose(){for(let e of H)clearTimeout(e);H.clear(),Y.disconnect(),k.removeEventListener("change",X),E.remove()}};return K.setSeats(s.seats),K}export{$e as createTable2D};
1
+ import{zn,Mr,Rr,Mt,un,dn,pi,os}from"./chunk-index-0h99xcs3.js";import"./chunk-index-rjs1can6.js";import{Ct,Gt}from"./chunk-index-pgxgq61x.js";var pe="http://www.w3.org/2000/svg",t=(d,s={},y)=>{let k=document.createElementNS(pe,d);for(let[S,G]of Object.entries(s))k.setAttribute(S,String(G));return y?.appendChild(k),k},ne=(d)=>{let s=/<svg[^>]*\swidth=/.test(d)?d:d.replace("<svg",'<svg width="256" height="256"');return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`},ye=0;function xe(d,s){let y=s||d<=6?1:2;return{rows:y,perRow:Math.max(1,Math.ceil(d/y))}}function $e(d,s){let y=`t2d${++ye}`,k=window.matchMedia("(prefers-reduced-motion: reduce)"),S=s.reducedMotion==="auto"||s.reducedMotion===void 0?k.matches:s.reducedMotion,G=s.labels??Gt,{theme:z,scheme:q}=s,v=[],B=new Map,A=new Map,R=new Map,N=new Map,C=s.focus??null,E=document.createElement("div");E.className="t2d";let m=t("svg",{role:"group","aria-label":G.table});if(E.appendChild(m),getComputedStyle(d).position==="static")d.style.position="relative";d.appendChild(E);function ie(e,r,a){let o=Math.max(1.6,a*0.022),u=o+Math.max(1.2,a*0.014),l=t("filter",{id:`${y}-rim`,x:"-15%",y:"-15%",width:"130%",height:"130%"},e);t("feMorphology",{in:"SourceAlpha",operator:"dilate",radius:u,result:"far"},l),t("feFlood",{"flood-color":r.ink,result:"ink"},l),t("feComposite",{in:"ink",in2:"far",operator:"in",result:"line"},l),t("feMorphology",{in:"SourceAlpha",operator:"dilate",radius:o,result:"near"},l),t("feFlood",{"flood-color":r.paper,result:"paper"},l),t("feComposite",{in:"paper",in2:"near",operator:"in",result:"rim"},l);let c=t("feMerge",{},l);for(let b of["line","rim","SourceGraphic"])t("feMergeNode",{in:b},c)}function x(){let e=zn(z,q);E.classList.toggle("reduced",S),E.classList.toggle("focus",C!==null),E.classList.toggle("dim",v.some((i)=>R.get(i.id)==="speaking"));let r=s.variant==="compact",a=Math.max(d.clientWidth,200),o=Math.max(d.clientHeight,r?60:200);m.setAttribute("viewBox",`0 0 ${a} ${o}`),m.replaceChildren();let u=Math.max(v.length,1),{rows:l,perRow:c}=xe(u,r);t("rect",{width:a,height:o,fill:e.css.bg},m);let b=t("defs",{},m),T=a/2,O=r?o*0.82:o*0.62;if(t("ellipse",{cx:T,cy:O,rx:a*0.47,ry:r?o*0.2:o*0.34,fill:e.css.floor,stroke:e.ink,"stroke-width":2},m),!r)t("ellipse",{cx:T,cy:O,rx:a*0.3,ry:o*0.2,fill:"none",stroke:e.css.ring,"stroke-width":3,opacity:e.night?0.9:0.7},m);let I=a/c,V=r?o*0.95:o/(l+0.6),g=Math.max(46,Math.min(I*0.94,132,V*1.05)),h=g*0.72,n=g*1.05;ie(b,e,n),v.forEach((i,w)=>{let M=t("radialGradient",{id:`${y}-h${w}`},b);t("stop",{offset:0,"stop-color":i.color,"stop-opacity":0.95},M),t("stop",{offset:1,"stop-color":i.color,"stop-opacity":0},M)});let se=(i)=>{if(r)return o*0.92;return l===1?o*0.62:o*(0.46+i*0.3)};if(v.forEach((i,w)=>{let M=Math.floor(w/c),ae=Math.min(c,u-M*c),le=w-M*c,ce=a/ae*(le+0.5),de=se(M),F=R.get(i.id)??"idle",f=t("g",{class:"seat","data-seat":i.id,"data-state":F,...C===i.id?{"data-focus":""}:{},transform:`translate(${ce.toFixed(1)} ${de.toFixed(1)})`,tabindex:s.listBelow?-1:0,role:"button","aria-label":G.seat(i.name,F),color:e.css.text,...s.listBelow?{"aria-hidden":"true"}:{}},m);t("ellipse",{cx:0,cy:3,rx:g*0.55,ry:g*0.1,fill:"#000",opacity:0.35},f),t("ellipse",{class:"halo",cx:0,cy:-h-n*0.35,rx:n*0.8,ry:n*0.8,fill:`url(#${y}-h${w})`},f),t("polygon",{class:"beam",points:`${-n*0.12},${-n*2.1} ${n*0.12},${-n*2.1} ${n*0.5},0 ${-n*0.5},0`,fill:i.color,opacity:0.2},f);let _=t("g",{class:"lift"},f),Z=B.get(i.id);if(Z){let p={x:-n/2,y:-h-n*0.78,width:n,height:n*0.88,filter:`url(#${y}-rim)`};t("image",{href:ne(Z),...p,...i.dim?{opacity:0.55}:{}},_);let oe=A.get(i.id);if(F==="speaking"&&oe&&!S){let ge=t("image",{class:"talk",href:ne(oe),...p,opacity:0},_),{frames:he,seconds:ue}=os(w);t("animate",{attributeName:"opacity",values:he.join(";"),dur:`${ue.toFixed(3)}s`,calcMode:"discrete",repeatCount:"indefinite"},ge)}}else{t("circle",{cx:0,cy:-h-n*0.3,r:n*0.3,fill:i.color,stroke:e.ink,"stroke-width":2},_);let p=t("text",{x:0,y:-h-n*0.3+n*0.1,"text-anchor":"middle","font-size":n*0.3,"font-weight":700,fill:"#fff","font-family":Mt},_);p.textContent=Array.from(i.name)[0]?.toUpperCase()??"?"}let J=h*0.22;t("path",{d:`M ${-g*0.5} ${-h} L ${g*0.5} ${-h} L ${g*0.42} 0 L ${-g*0.42} 0 Z`,fill:e.wood,stroke:e.ink,"stroke-width":2,"stroke-linejoin":"round"},f),t("rect",{x:-g*0.54,y:-h-J*0.2,width:g*1.08,height:J,rx:2,fill:e.woodLight,stroke:e.ink,"stroke-width":2},f);let L=Math.max(11,Math.min(15,g*0.14)),j=Math.min(Math.max(g*0.9,L*5.5+14),Math.max(g*0.9,i.name.length*L*0.62+18),I*0.98),fe=L+8;t("rect",{class:"plate",x:-j/2,y:-h*0.78,width:j,height:fe,rx:3,fill:e.gold,stroke:e.ink,"stroke-width":2},f);let me=t("text",{x:0,y:-h*0.78+L+1.5,"text-anchor":"middle","font-size":L,"font-weight":700,"font-family":Mt,fill:e.plateInk},f),Q=N.get(i.id);me.textContent=Rr(Q?`${Q} ${i.name}`:i.name,(j-8)/L);let ee=t("g",{class:"badge"},t("g",{transform:`translate(${n*0.4} ${-h-n*0.78})`},f)),D=F==="done",P=F==="error",U=e.gold;if(D)U=Mr.done;else if(P)U=Mr.error;t("circle",{r:n*0.15,fill:U,stroke:e.ink,"stroke-width":2},ee);let W=t("text",{x:0,y:n*0.06,"text-anchor":"middle","font-size":n*0.2,"font-weight":800,"font-family":Mt,fill:D||P?"#fff":e.ink},ee);if(W.textContent="!",D)W.textContent="✓";else if(P)W.textContent="✕";let te=t("g",{class:"orbit"},f);t("circle",{cx:n*0.4,cy:-h-n*0.5,r:n*0.05,fill:i.color},te),t("circle",{cx:-n*0.4,cy:-h-n*0.5,r:n*0.035,fill:i.color,opacity:0.6},te),f.addEventListener("click",(p)=>s.onSeatClick({id:i.id,name:i.name,at:Ct(p,f)})),f.addEventListener("keydown",(p)=>{if(p.key==="Enter"||p.key===" ")p.preventDefault(),s.onSeatClick({id:i.id,name:i.name,at:Ct({clientX:0,clientY:0,detail:0},f)})})}),!r){let i=Math.min(a*0.34,190),w=o-6;t("rect",{x:T-i/2,y:w-22,width:i,height:22,rx:4,fill:e.wood,stroke:e.ink,"stroke-width":2},m);let M=t("text",{x:T,y:w-7,"text-anchor":"middle","font-size":12,"font-weight":700,"font-family":Mt,fill:e.gold},m);M.textContent=Rr(s.ownerName??"You",12)}}let H=new Set,re=(e,r)=>{if(e.mode==="cut")return;let a=zn(z,q),o=(u,l)=>{let c=setTimeout(()=>{H.delete(c),u()},l);H.add(c)};for(let u of e.joining){let l=[...m.querySelectorAll("g.seat[data-seat]")].find((c)=>c.getAttribute("data-seat")===u);if(!l)continue;l.classList.add("seat-in"),l.prepend(t("ellipse",{class:"seat-ring",rx:44,ry:12,cy:4,stroke:a.css.ring})),o(()=>{l.classList.remove("seat-in"),l.querySelector(".seat-ring")?.remove()},dn)}for(let u of e.leaving){let l=r.get(u);if(!l)continue;let c=l.cloneNode(!0);c.classList.add("seat-out");for(let b of["data-seat","tabindex","role","aria-label"])c.removeAttribute(b);c.setAttribute("aria-hidden","true");for(let[b,[T,O,I]]of[[-26,-24,20],[24,-20,22],[0,-52,24],[-4,-4,26]].entries()){let V=t("circle",{class:"puff",cx:T,cy:O,r:I,fill:a.paper,stroke:a.ink,"stroke-width":3},c);V.style.animationDelay=`${b*40}ms`}m.appendChild(c),o(()=>c.remove(),un)}},Y=new ResizeObserver(x);Y.observe(d);let X=()=>{if(s.reducedMotion==="auto"||s.reducedMotion===void 0)K.setReducedMotion(k.matches)};k.addEventListener("change",X);let K={kind:"svg",setTheme(e,r){z=e,q=r,x()},setSeats(e){let r=v.map((o)=>o.id),a=new Map([...m.querySelectorAll("g.seat[data-seat]")].map((o)=>[o.getAttribute("data-seat")??"",o]));v=e;for(let o of e){if(R.set(o.id,o.state??"idle"),o.avatarSvg)B.set(o.id,o.avatarSvg);if(o.talkSvg)A.set(o.id,o.talkSvg);else A.delete(o.id)}if(x(),r.length>0||a.size>0)re(pi(r,e.map((o)=>o.id),S),a)},setState(e,r){if(R.get(e)===r)return;R.set(e,r),x()},setMark(e,r){if((N.get(e)??null)===r)return;if(r===null)N.delete(e);else N.set(e,r);x()},setAvatar(e,r,a){if(B.set(e,r),a)A.set(e,a);else A.delete(e);return x(),Promise.resolve()},setReducedMotion(e){S=e,x()},resetCamera(){C=null,x(),s.onFocus?.(null)},focus(e){if(e===C)return;C=e,x()},focused:()=>C,getStats(){return{kind:"svg",fps:0,frameMs:0,frameMsMax:0,drawCalls:0,triangles:0,textures:0,geometries:0,dpr:1,lowPower:!1,reduced:S,loop:"idle",seats:v.length,renders:0}},dispose(){for(let e of H)clearTimeout(e);H.clear(),Y.disconnect(),k.removeEventListener("change",X),E.remove()}};return K.setSeats(s.seats),K}export{$e as createTable2D};