pi-roundtable-web 0.27.1 → 0.28.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.
- package/CHANGELOG.md +31 -0
- package/README.md +23 -7
- package/dist/chunk-account-678dgbww.js +1 -0
- package/dist/chunk-action-menu-qpp9bdxh.js +1 -0
- package/dist/chunk-agent-x0yvvdq2.js +1 -0
- package/dist/chunk-arranged-rooms-6rdkk8t1.js +1 -0
- package/dist/chunk-bulk-actions-zbwdaxtc.js +1 -0
- package/dist/chunk-character-creator-215psy17.js +1 -0
- package/dist/chunk-codeeditor-jgj32247.js +2 -0
- package/dist/chunk-confirm-2pzrt272.js +1 -0
- package/dist/chunk-connectors-zha2d834.js +37 -0
- package/dist/chunk-conversations-fb071rez.js +1 -0
- package/dist/chunk-council-sheet-k5fycefd.js +2 -0
- package/dist/chunk-drag-04qfef58.js +1 -0
- package/dist/chunk-entry-mws704mc.js +1 -0
- package/dist/chunk-folder-list-qxhmczwv.js +1 -0
- package/dist/chunk-folds-b7asegfs.js +1 -0
- package/dist/chunk-gate-vxetvn8t.js +1 -0
- package/dist/chunk-group-scene-63yhh1mh.js +1 -0
- package/dist/chunk-group-table-zy4hmgk3.js +1 -0
- package/dist/chunk-host-icons-tyktazzz.js +1 -0
- package/dist/chunk-host-picture-ebhejn2k.js +1 -0
- package/dist/chunk-host-state-wajep0yr.js +1 -0
- package/dist/chunk-host-ui-pc9r24e3.js +1 -0
- package/dist/chunk-index-1af8vsyb.js +2 -0
- package/dist/{chunk-index-yrmqcay4.js → chunk-index-20xgx0k2.js} +2 -2
- package/dist/chunk-index-254701sm.js +3 -0
- package/dist/{chunk-index-0ye10vk3.js → chunk-index-2822z600.js} +3 -3
- package/dist/{chunk-index-j7pgphx3.js → chunk-index-2hvn2kte.js} +2 -2
- package/dist/chunk-index-2syyyjnq.js +2 -0
- package/dist/chunk-index-2tr41qht.js +2 -0
- package/dist/chunk-index-2y8r4s4f.js +2 -0
- package/dist/chunk-index-31m1b2f5.js +2 -0
- package/dist/{chunk-index-ak6ecqy3.js → chunk-index-3gfbhmpb.js} +2 -2
- package/dist/chunk-index-3yy10a5h.js +2 -0
- package/dist/{chunk-index-sm7m4fej.js → chunk-index-4t6vnwap.js} +2 -2
- package/dist/{chunk-index-j4x9dq30.css → chunk-index-5hbq6g2e.css} +1 -1
- package/dist/chunk-index-5t2jkecy.js +2 -0
- package/dist/chunk-index-5vatmakn.js +2 -0
- package/dist/{chunk-index-ben4gv45.js → chunk-index-6cg8xp1c.js} +1 -1
- package/dist/chunk-index-6yra9kdq.js +2 -0
- package/dist/{chunk-index-k0z507h3.js → chunk-index-7qd604rq.js} +2 -2
- package/dist/chunk-index-9bdstf8t.js +2 -0
- package/dist/chunk-index-acj4xxgq.js +100 -0
- package/dist/chunk-index-aexy023z.js +2 -0
- package/dist/chunk-index-amxa2bn3.js +2 -0
- package/dist/chunk-index-bef0fc2m.js +2 -0
- package/dist/chunk-index-c6tphrjr.js +1 -0
- package/dist/chunk-index-c7dbvkrq.js +2 -0
- package/dist/chunk-index-cn49mawx.js +50 -0
- package/dist/{chunk-index-3d8s3565.js → chunk-index-e2gy763y.js} +2 -2
- package/dist/{chunk-index-983dmeaa.js → chunk-index-e35v554x.js} +3 -3
- package/dist/chunk-index-fepsbhr6.js +47 -0
- package/dist/chunk-index-gcmmwh8t.js +2 -0
- package/dist/{chunk-index-3pnvpppa.js → chunk-index-gwkhs8s3.js} +2 -2
- package/dist/chunk-index-h2vhv4kh.js +2 -0
- package/dist/chunk-index-h9ccz1r3.js +2 -0
- package/dist/{chunk-index-n05yw5wd.js → chunk-index-jc3r4qam.js} +2 -2
- package/dist/{chunk-index-afrhnrxj.js → chunk-index-m81362sc.js} +2 -2
- package/dist/{chunk-index-f500nw4w.js → chunk-index-n0cmnwd2.js} +2 -2
- package/dist/chunk-index-n0ejy0wd.js +2 -0
- package/dist/chunk-index-nkdg1dfz.js +7 -0
- package/dist/chunk-index-p7jkr7gv.js +14 -0
- package/dist/{chunk-index-y60x5jbh.js → chunk-index-q5fyrtx4.js} +1 -1
- package/dist/{chunk-index-p5jcwjx8.js → chunk-index-qxynr1hf.js} +2 -2
- package/dist/chunk-index-r7fdgzy1.js +2 -0
- package/dist/chunk-index-rgf4rvns.js +4 -0
- package/dist/chunk-index-rsd8rftk.js +2 -0
- package/dist/{chunk-index-nsvwbjfe.js → chunk-index-s53bxwkk.js} +2 -2
- package/dist/{chunk-index-9z13jw6q.js → chunk-index-s9p27f9b.js} +3 -3
- package/dist/chunk-index-sdcpf5dp.js +2 -0
- package/dist/chunk-index-sm7kfb07.js +2 -0
- package/dist/chunk-index-sw9r4aa4.js +2 -0
- package/dist/chunk-index-t5bmsqqd.js +1 -0
- package/dist/chunk-index-v8mma5np.js +2 -0
- package/dist/{chunk-index-af4ebmkr.js → chunk-index-v9gbt5tz.js} +3 -3
- package/dist/chunk-index-vsfsv8hd.js +2 -0
- package/dist/chunk-index-wxft0aqb.js +2 -0
- package/dist/chunk-index-x60n1me6.js +2 -0
- package/dist/chunk-index-zcfr8jdv.js +13 -0
- package/dist/{chunk-index-w42rcbx1.js → chunk-index-zj0gjcvr.js} +2 -2
- package/dist/{chunk-index-4z4chg7v.js → chunk-index-zt19fdmc.js} +2 -2
- package/dist/chunk-index-zvvwxkev.js +2 -0
- package/dist/chunk-lang-css-7q1dtpgm.js +1 -0
- package/dist/{chunk-lang-dockerfile-cnwqn660.js → chunk-lang-dockerfile-n4bt8jbt.js} +1 -1
- package/dist/{chunk-lang-go-yy6kgsxv.js → chunk-lang-go-9k4y107e.js} +3 -3
- package/dist/chunk-lang-html-xgvba8rn.js +1 -0
- package/dist/chunk-lang-javascript-vgxmgd0a.js +1 -0
- package/dist/chunk-lang-json-hr12bzs1.js +1 -0
- package/dist/chunk-lang-markdown-ttzcpgkg.js +6 -0
- package/dist/chunk-lang-python-ntj8maem.js +3 -0
- package/dist/chunk-lang-rust-gv8y859d.js +1 -0
- package/dist/{chunk-lang-shell-1rpgtepw.js → chunk-lang-shell-5zzs09b7.js} +1 -1
- package/dist/chunk-lang-sql-6vmze4pg.js +2 -0
- package/dist/{chunk-lang-toml-tbj7467c.js → chunk-lang-toml-tt0d4rw9.js} +1 -1
- package/dist/chunk-lang-typescript-2v652sh5.js +1 -0
- package/dist/chunk-lang-xml-r2sbqnjv.js +1 -0
- package/dist/chunk-lang-yaml-ex31qbph.js +1 -0
- package/dist/chunk-layout-actions-bfqtg71d.js +1 -0
- package/dist/chunk-menu-items-rztgekfj.js +1 -0
- package/dist/chunk-mode-toggle-m5kgb7c7.js +1 -0
- package/dist/chunk-note-row-40ypghn9.js +204 -0
- package/dist/chunk-notes-a8nqffbf.js +1 -0
- package/dist/chunk-notice-bell-rdnfmtf2.js +1 -0
- package/dist/{chunk-notices-h4rk1zxc.js → chunk-notices-tefx93s6.js} +1 -1
- package/dist/chunk-onboarding-wvh0s3vg.js +1 -0
- package/dist/chunk-overview-zrx3bpwf.js +1 -0
- package/dist/chunk-palette-5xtdvy9a.js +1 -0
- package/dist/chunk-placement-items-rgyrktvy.js +1 -0
- package/dist/chunk-profile-tyb48b79.js +1 -0
- package/dist/chunk-prompt-history-wv0vdsjv.js +1 -0
- package/dist/chunk-prompts-75hgb0t0.js +1 -0
- package/dist/chunk-room-confirms-bcvhpcry.js +1 -0
- package/dist/chunk-room-menu-ha1evv71.js +1 -0
- package/dist/chunk-rooms-menu-button-ej3a2hyc.js +1 -0
- package/dist/chunk-schedules-a5pewkhd.js +1 -0
- package/dist/{chunk-seat-menu-kwtjnpjj.js → chunk-seat-menu-eh3ymmks.js} +1 -1
- package/dist/chunk-sheet-hosts-d5zbwbbr.js +29 -0
- package/dist/{chunk-shortcut-help-g5cpqjjj.js → chunk-shortcut-help-bh9ntk9s.js} +2 -2
- package/dist/{chunk-shortcuts-9ft5sqdw.js → chunk-shortcuts-6em0atk9.js} +1 -1
- package/dist/chunk-skill-editor-e43mwz01.js +8 -0
- package/dist/chunk-skills-vp107wrp.js +1 -0
- package/dist/chunk-start-over-line-xd1v2p0g.js +16 -0
- package/dist/chunk-switcher-list-dtfh87zy.js +1 -0
- package/dist/{chunk-tab-dot-yse6wcfp.js → chunk-tab-dot-qd640mjr.js} +1 -1
- package/dist/chunk-table-svb2xhfd.js +1 -0
- package/dist/chunk-table2d-5nrhfwft.js +1 -0
- package/dist/chunk-table3d-5cb66d99.js +4220 -0
- package/dist/chunk-thread-actions-926eab0w.js +1 -0
- package/dist/{chunk-thread-cards-36rckyg7.js → chunk-thread-cards-kgt22sbp.js} +1 -1
- package/dist/chunk-thread-list-j2v1pqkz.js +217 -0
- package/dist/chunk-transcript-a0p3vwh6.js +1 -0
- package/dist/chunk-waiting-cdyz7r1g.js +1 -0
- package/dist/chunk-waiting-chip-58ttx9av.js +28 -0
- package/dist/chunk-where-9jp6g029.js +1 -0
- package/dist/chunk-workspace-d34njy4p.js +578 -0
- package/dist/chunk-zh-tw-y3jb20wc.js +1 -0
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +3 -3
- package/src/api-types.ts +98 -1
- package/src/app/app.ts +4 -7
- package/src/app/desk.ts +19 -4
- package/src/app/room-log.ts +66 -18
- package/src/app/rooms.ts +15 -5
- package/src/app/routes.ts +60 -9
- package/src/app/skill-doc-routes.ts +12 -2
- package/src/app/surface.ts +26 -2
- package/src/app/team-routes.ts +3 -7
- package/src/authz.ts +1 -0
- package/src/cleanup-api.ts +9 -2
- package/src/connector-manage-api.ts +257 -0
- package/src/console-api.ts +60 -2
- package/src/features.ts +91 -0
- package/src/host/reads.ts +10 -1
- package/src/i18n/zh-tw.ts +107 -4
- package/src/web-plugin.ts +7 -1
- package/dist/chunk-account-83crfbn4.js +0 -1
- package/dist/chunk-action-menu-qw7h03x0.js +0 -1
- package/dist/chunk-agent-t1632ktv.js +0 -1
- package/dist/chunk-arranged-rooms-sb6tbsxw.js +0 -1
- package/dist/chunk-bulk-actions-v1g2bzk7.js +0 -1
- package/dist/chunk-character-creator-ye69w0kx.js +0 -1
- package/dist/chunk-codeeditor-5j6abj8k.js +0 -2
- package/dist/chunk-confirm-x8w877bz.js +0 -1
- package/dist/chunk-connectors-t7qbc6nk.js +0 -1
- package/dist/chunk-conversations-kmt6qzym.js +0 -1
- package/dist/chunk-council-sheet-bxvn7vza.js +0 -2
- package/dist/chunk-drag-03zgvd66.js +0 -1
- package/dist/chunk-entry-y5vwp5e5.js +0 -1
- package/dist/chunk-folder-list-h3vnjzpb.js +0 -1
- package/dist/chunk-folds-a3e22m7x.js +0 -1
- package/dist/chunk-gate-qzephvdv.js +0 -1
- package/dist/chunk-group-scene-w1ycabrm.js +0 -1
- package/dist/chunk-group-table-9nvmja8w.js +0 -1
- package/dist/chunk-host-icons-fccg3b2d.js +0 -1
- package/dist/chunk-host-picture-jaqz127q.js +0 -1
- package/dist/chunk-host-state-r01v1ywg.js +0 -1
- package/dist/chunk-host-ui-n54mh5af.js +0 -1
- package/dist/chunk-index-0a81da8z.js +0 -2
- package/dist/chunk-index-1kwp3spy.js +0 -2
- package/dist/chunk-index-47vq85ye.js +0 -2
- package/dist/chunk-index-5zmswz4s.js +0 -2
- package/dist/chunk-index-64rsz6pf.js +0 -2
- package/dist/chunk-index-6vcs0h0m.js +0 -2
- package/dist/chunk-index-6xqz6mg2.js +0 -2
- package/dist/chunk-index-83v0c9x6.js +0 -2
- package/dist/chunk-index-8xd6anam.js +0 -2
- package/dist/chunk-index-b73y2gc0.js +0 -47
- package/dist/chunk-index-bhqczxr3.js +0 -2
- package/dist/chunk-index-c44p8q87.js +0 -2
- package/dist/chunk-index-cbqhzf40.js +0 -13
- package/dist/chunk-index-db8zh8e6.js +0 -2
- package/dist/chunk-index-dvfkb699.js +0 -2
- package/dist/chunk-index-e02ddp46.js +0 -1
- package/dist/chunk-index-ebg48jgy.js +0 -2
- package/dist/chunk-index-ek5mek4j.js +0 -14
- package/dist/chunk-index-em7vndrb.js +0 -2
- package/dist/chunk-index-eq161yvp.js +0 -4
- package/dist/chunk-index-f5x2srr0.js +0 -2
- package/dist/chunk-index-fg42egv9.js +0 -50
- package/dist/chunk-index-h3v1d3nt.js +0 -2
- package/dist/chunk-index-kbgykazq.js +0 -2
- package/dist/chunk-index-n8ghdvxb.js +0 -2
- package/dist/chunk-index-qfgkfq86.js +0 -2
- package/dist/chunk-index-rcwdqn50.js +0 -7
- package/dist/chunk-index-s72hmse6.js +0 -2
- package/dist/chunk-index-sv9qpmhv.js +0 -1
- package/dist/chunk-index-x4enmj72.js +0 -2
- package/dist/chunk-index-xevnf9ew.js +0 -2
- package/dist/chunk-index-xx8jq73q.js +0 -2
- package/dist/chunk-index-ypkgw7gq.js +0 -2
- package/dist/chunk-lang-css-y9133ktr.js +0 -1
- package/dist/chunk-lang-html-r2xmryek.js +0 -1
- package/dist/chunk-lang-javascript-1r6wd177.js +0 -1
- package/dist/chunk-lang-json-dx56g11y.js +0 -1
- package/dist/chunk-lang-markdown-fpcf2dfq.js +0 -6
- package/dist/chunk-lang-python-zzp95955.js +0 -3
- package/dist/chunk-lang-rust-214fh7sp.js +0 -1
- package/dist/chunk-lang-sql-vvp46hpj.js +0 -2
- package/dist/chunk-lang-typescript-y5w4tt4g.js +0 -1
- package/dist/chunk-lang-xml-tbcqmedk.js +0 -1
- package/dist/chunk-lang-yaml-jh56t3sv.js +0 -1
- package/dist/chunk-layout-actions-8dzvysym.js +0 -1
- package/dist/chunk-menu-items-3jhya205.js +0 -2
- package/dist/chunk-mode-toggle-js49gvpd.js +0 -1
- package/dist/chunk-note-row-kv061030.js +0 -75
- package/dist/chunk-notes-sdkqz5hr.js +0 -1
- package/dist/chunk-notice-bell-r012f2zy.js +0 -1
- package/dist/chunk-onboarding-a18cvkph.js +0 -1
- package/dist/chunk-overview-ynaqn4fp.js +0 -1
- package/dist/chunk-palette-jm79gb5q.js +0 -1
- package/dist/chunk-placement-items-mwm9q1zn.js +0 -1
- package/dist/chunk-profile-ajw6pp4r.js +0 -1
- package/dist/chunk-prompt-history-zcfvr3r8.js +0 -1
- package/dist/chunk-prompts-m5rzdk24.js +0 -1
- package/dist/chunk-room-confirms-ftsj15ja.js +0 -1
- package/dist/chunk-room-menu-b9ktw9pw.js +0 -1
- package/dist/chunk-rooms-menu-button-qe62t6nx.js +0 -1
- package/dist/chunk-schedules-t8yxnf8q.js +0 -1
- package/dist/chunk-sheet-hosts-yj5wszgj.js +0 -1
- package/dist/chunk-skill-editor-xdfq2708.js +0 -8
- package/dist/chunk-skills-9wa4mwdc.js +0 -1
- package/dist/chunk-switcher-list-vpg6wvtw.js +0 -1
- package/dist/chunk-table-1y76m54h.js +0 -1
- package/dist/chunk-table2d-g57vr6h0.js +0 -1
- package/dist/chunk-table3d-cv6069hy.js +0 -4220
- package/dist/chunk-thread-actions-xjhpdjk7.js +0 -1
- package/dist/chunk-thread-list-fd6agz77.js +0 -217
- package/dist/chunk-transcript-5nfn3r35.js +0 -1
- package/dist/chunk-where-ha8pc3cg.js +0 -1
- package/dist/chunk-workspace-e85twv32.js +0 -578
- package/dist/chunk-zh-tw-z5p5mpph.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p,Q,S,Se,o,r,t,e,n,s,I,l,rt,wt,me,as,nr,Ce,we}from"./chunk-index-cn49mawx.js";import{Io,Do,Li,Xi}from"./chunk-index-acj4xxgq.js";import{Cn,ri,Uo,zi,oi,Bt}from"./chunk-index-nkdg1dfz.js";import"./chunk-index-zt19fdmc.js";import"./chunk-index-2y8r4s4f.js";import"./chunk-index-gwkhs8s3.js";import"./chunk-index-r7fdgzy1.js";import"./chunk-index-m81362sc.js";import{ys,Ti,bs}from"./chunk-index-9bdstf8t.js";Do();var O=S(()=>(p("k5fycefd"),import("./chunk-council-sheet-k5fycefd.js")).then((a)=>({default:a.CouncilSheet})));function F(a,c,u,d,f){as(a,c).then((b)=>{if(b)me({...b,at:u,via:d,source:f})},()=>{return})}function R(){let a=Ce("(max-width: 719px)"),c=Ce("(pointer: coarse)");return a||c}function G({roomKey:a,name:c}){let u=we(),d=R(),f=l((i)=>i.rooms[a]),b=l((i)=>i.limits);return o(()=>(u.focus(a),()=>u.focus(void 0)),[u,a]),e("div",{className:"table-chat",children:e(nr,{roomKey:a,name:c,composer:(i)=>f?.view?.readOnly?null:e(wt,{draftKey:a,name:c,limits:b,stoppable:Boolean(f?.stoppable),stopLabel:t("Stop the round"),blurAfterSend:d,onSend:(m,h)=>{u.say(a,m,h),i(!0)},onStop:()=>u.send({type:"stop",room:a})},a)})})}function z(a){let c=(u,d)=>n("label",{"data-checked":a.mode===u,children:[e("input",{type:"radio",name:"table-mode",value:u,checked:a.mode===u,onChange:()=>a.onMode(u)}),d]});return n("fieldset",{className:"segmented table-mode",children:[e("legend",{className:"visually-hidden",children:t("Show the council as")}),c("scene",t("Animation mode")),c("chat",t("Chat mode"))]})}function B(){return Uo((Se(rt)?.kinds??[]).map((a)=>a.kind)),null}function q({focus:a}){let[c,u]=r(),d=zi(void 0),f=Cn(),b=f.loaded&&d.length===0;return o(()=>{if(a&&f.loaded)I("table",void 0,{replace:!0})},[a,f.loaded]),n("div",{className:"table-page",children:[n("header",{className:"page-head",children:[e("h1",{children:t("Round table")}),n("div",{className:"table-tools",children:[c?.kind==="webgl"?e("button",{type:"button",className:"icon-button","aria-label":t("Reset view"),title:t("Reset view"),onClick:()=>c.focus(null),children:e(s,{name:"reset"})}):null,e("button",{type:"button",className:"secondary",onClick:()=>I("rooms"),children:t("All rooms")})]})]}),n("div",{className:"table-frame",children:[b?n("div",{className:"table-empty-state",children:[e("strong",{children:t("The table is empty")}),e("p",{className:"meta",children:t("There are no rooms to seat yet.")})]}):e(Bt,{onHandle:u,onSeat:(i)=>{let m=d.find((h)=>h.name===i);if(m)I("room",m.key)},onFocus:(i)=>{let m=d.find((h)=>h.name===i);if(m)I("room",m.key)}}),e(B,{})]})]})}function D({named:a}){let[c,u]=r(),d=Ti(),f=ys(),b=l((g)=>g.listed),i=bs(d,f,a),m=i?.members??[],h=zi(m),k=oi(),{focus:H,look:v}=Li(i?.key??"",m),[P,C]=r(!1),[N,A]=Io(),x=R(),[E,V]=r(!1),T=()=>{V(!0),C(!0)},M=a===void 0||d.some(J(a));o(()=>{if(a!==void 0&&b&&!M)I("table",void 0,{replace:!0})},[a,b,M]);let y=h.length>0;return n("div",{className:"table-page","data-focused":y||void 0,children:[n("header",{className:"page-head",children:[e("h1",{children:t("Round table")}),n("div",{className:"table-tools",children:[c?.kind==="webgl"?e("button",{type:"button",className:"icon-button","aria-label":t("Reset view"),title:t("Reset view"),onClick:()=>v(null),children:e(s,{name:"reset"})}):null,i&&y?e(z,{mode:N,onMode:A}):null,k.length>0?e("button",{type:"button",className:"secondary council-chip","aria-haspopup":"dialog",onClick:T,children:i?t("Council: {name} ▾",{name:i.displayName}):t("Pick who sits")}):null]})]}),i&&y&&N==="chat"?e(G,{roomKey:i.key,name:i.displayName}):i&&y?e(Xi,{roomKey:i.key,members:m,focus:H,onLook:v,streams:!0,blurAfterSend:x,onHandle:u,onSeatMenu:(g)=>{let w=h.find((L)=>L.name===g.id);if(w)F(w.key,i.key,g.at,g.via,g.source)}}):e("div",{className:"table-frame",children:n("div",{className:"table-empty-state",children:[e("strong",{children:i?t("The council is empty"):t("No council yet")}),e("p",{className:"meta",children:i?t("Every member of this council is gone. Edit who sits."):t("A council is a group of up to {max} knights who answer in turn.",{max:8})}),k.length>0?e("button",{type:"button",onClick:T,children:i?t("Edit this council"):t("Pick who sits")}):null]})}),E?e(Q,{fallback:null,children:e(O,{open:P,onClose:()=>C(!1),council:i})}):null]})}var J=(a)=>(c)=>c.key===a||c.name===a;function re({focus:a}){return ri()?e(q,{focus:a}):e(D,{named:a})}export{re as TablePage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{An,_r,Tr,Mt,an,ln,di,Yo}from"./chunk-index-zj0gjcvr.js";import"./chunk-index-r7fdgzy1.js";import{Ct,Zt}from"./chunk-index-x60n1me6.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??Zt,{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=An(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}=Yo(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=Tr(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=_r.done;else if(P)U=_r.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=Tr(s.ownerName??"You",12)}}let H=new Set,re=(e,r)=>{if(e.mode==="cut")return;let a=An(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(di(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};
|