pi-roundtable-web 0.27.0 → 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 +37 -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-g1awv7rk.js → chunk-index-20xgx0k2.js} +2 -2
- package/dist/chunk-index-254701sm.js +3 -0
- package/dist/{chunk-index-ffbrm6tr.js → chunk-index-2822z600.js} +3 -3
- package/dist/{chunk-index-2fdns8tn.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-zyvwhxga.js → chunk-index-6cg8xp1c.js} +1 -1
- package/dist/chunk-index-6yra9kdq.js +2 -0
- package/dist/{chunk-index-ac1ktr56.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-31x6krbs.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-kbrg32sx.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-0w4bfjb5.js → chunk-index-jc3r4qam.js} +2 -2
- package/dist/{chunk-index-8d81qy69.js → chunk-index-m81362sc.js} +2 -2
- package/dist/{chunk-index-xq84gg8w.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-e2dqjde8.js → chunk-index-q5fyrtx4.js} +1 -1
- package/dist/{chunk-index-jgzygbt8.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-rh0x9rzf.js → chunk-index-s53bxwkk.js} +2 -2
- package/dist/{chunk-index-xxeb2xp0.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-q7g62sgm.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-2t30xwed.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-fte9f196.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-r0k0eawr.js → chunk-seat-menu-eh3ymmks.js} +1 -1
- package/dist/chunk-sheet-hosts-d5zbwbbr.js +29 -0
- package/dist/{chunk-shortcut-help-a6pkjcq7.js → chunk-shortcut-help-bh9ntk9s.js} +2 -2
- package/dist/{chunk-shortcuts-cgt87jkz.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-vr11dfrw.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-c2mrp2gj.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-1ecx5kt7.js +0 -1
- package/dist/chunk-action-menu-zh2n0ahf.js +0 -1
- package/dist/chunk-agent-ynm2tcbx.js +0 -1
- package/dist/chunk-arranged-rooms-qnz8vese.js +0 -1
- package/dist/chunk-bulk-actions-pr0mw0kc.js +0 -1
- package/dist/chunk-character-creator-caj4pmg4.js +0 -1
- package/dist/chunk-codeeditor-dga6s78p.js +0 -2
- package/dist/chunk-confirm-g76v5d9r.js +0 -1
- package/dist/chunk-connectors-j79ze3j1.js +0 -1
- package/dist/chunk-conversations-2farn72g.js +0 -1
- package/dist/chunk-council-sheet-s9sz1bzf.js +0 -2
- package/dist/chunk-drag-45e8222r.js +0 -1
- package/dist/chunk-entry-q11n47h9.js +0 -1
- package/dist/chunk-folder-list-4gcj7g7h.js +0 -1
- package/dist/chunk-folds-ten4ykfw.js +0 -1
- package/dist/chunk-gate-kcv1a4t0.js +0 -1
- package/dist/chunk-group-scene-12ghcvzd.js +0 -1
- package/dist/chunk-group-table-t458kdgn.js +0 -1
- package/dist/chunk-host-icons-h1k9k96a.js +0 -1
- package/dist/chunk-host-picture-3p0wzn3v.js +0 -1
- package/dist/chunk-host-state-7mdve7cb.js +0 -1
- package/dist/chunk-host-ui-bdgwa6sf.js +0 -1
- package/dist/chunk-index-02vfshtt.js +0 -2
- package/dist/chunk-index-0a81da8z.js +0 -2
- package/dist/chunk-index-12zyshae.js +0 -2
- package/dist/chunk-index-18pgxxw3.js +0 -2
- package/dist/chunk-index-2e4am3hw.js +0 -50
- package/dist/chunk-index-5bfqek1d.js +0 -2
- package/dist/chunk-index-64rsz6pf.js +0 -2
- package/dist/chunk-index-6bkcq9ka.js +0 -2
- package/dist/chunk-index-92zgb7my.js +0 -2
- package/dist/chunk-index-aamhjg5n.js +0 -2
- package/dist/chunk-index-b73y2gc0.js +0 -47
- package/dist/chunk-index-b8cpvr7y.js +0 -2
- package/dist/chunk-index-bhqczxr3.js +0 -2
- package/dist/chunk-index-cbqhzf40.js +0 -13
- package/dist/chunk-index-cdctnw71.js +0 -2
- package/dist/chunk-index-dj0tbfyb.js +0 -2
- package/dist/chunk-index-dnjftvtq.js +0 -2
- package/dist/chunk-index-ebg48jgy.js +0 -2
- package/dist/chunk-index-ek5mek4j.js +0 -14
- package/dist/chunk-index-f6q0stqx.js +0 -2
- package/dist/chunk-index-g3wrs02w.js +0 -1
- package/dist/chunk-index-j0m16cj1.js +0 -2
- package/dist/chunk-index-j4kk1m59.js +0 -2
- package/dist/chunk-index-kb3w11mn.js +0 -7
- package/dist/chunk-index-msqhgvfx.js +0 -2
- package/dist/chunk-index-pefwfm26.js +0 -2
- package/dist/chunk-index-pyfx77cj.js +0 -2
- package/dist/chunk-index-qfgkfq86.js +0 -2
- package/dist/chunk-index-sv9qpmhv.js +0 -1
- package/dist/chunk-index-t998yg8y.js +0 -2
- package/dist/chunk-index-tk4se135.js +0 -4
- package/dist/chunk-index-v6smgw77.js +0 -2
- package/dist/chunk-index-x4enmj72.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-y73mpsh1.js +0 -1
- package/dist/chunk-menu-items-bza16bw6.js +0 -2
- package/dist/chunk-mode-toggle-nj9gnt3b.js +0 -1
- package/dist/chunk-note-row-6fmhrdng.js +0 -75
- package/dist/chunk-notes-wv0e6ssf.js +0 -1
- package/dist/chunk-notice-bell-9z27epd2.js +0 -1
- package/dist/chunk-onboarding-c5twahc3.js +0 -1
- package/dist/chunk-overview-k4ccprax.js +0 -1
- package/dist/chunk-palette-9rbp2fab.js +0 -1
- package/dist/chunk-placement-items-me598wsb.js +0 -1
- package/dist/chunk-profile-s7r7fcvz.js +0 -1
- package/dist/chunk-prompt-history-hf296e7v.js +0 -1
- package/dist/chunk-prompts-c8s0nhkm.js +0 -1
- package/dist/chunk-room-confirms-ga2sbvhc.js +0 -1
- package/dist/chunk-room-menu-7h4jym2b.js +0 -1
- package/dist/chunk-rooms-menu-button-pgtaanb6.js +0 -1
- package/dist/chunk-schedules-mbnwcxpc.js +0 -1
- package/dist/chunk-sheet-hosts-a5dfevy9.js +0 -1
- package/dist/chunk-skill-editor-67yk4x7t.js +0 -8
- package/dist/chunk-skills-rewemey4.js +0 -1
- package/dist/chunk-switcher-list-t8rbay2y.js +0 -1
- package/dist/chunk-table-52nh0azk.js +0 -1
- package/dist/chunk-table2d-g57vr6h0.js +0 -1
- package/dist/chunk-table3d-rp0w6kt4.js +0 -4220
- package/dist/chunk-thread-actions-qcxt1y1g.js +0 -1
- package/dist/chunk-thread-list-0071q455.js +0 -217
- package/dist/chunk-transcript-789yqysq.js +0 -1
- package/dist/chunk-where-hmwmme9e.js +0 -1
- package/dist/chunk-workspace-wr1qrtsh.js +0 -578
- package/dist/chunk-zh-tw-z5p5mpph.js +0 -1
package/src/i18n/zh-tw.ts
CHANGED
|
@@ -238,6 +238,9 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
238
238
|
|
|
239
239
|
// 訊息列
|
|
240
240
|
"Conversation started over": "對話已重新開始",
|
|
241
|
+
"View the archived conversation": "查看封存的對話",
|
|
242
|
+
"Archived conversation": "封存的對話",
|
|
243
|
+
"The archived conversation has no messages.": "封存的對話裡沒有訊息。",
|
|
241
244
|
Discard: "捨棄",
|
|
242
245
|
"Not sent yet": "尚未傳送",
|
|
243
246
|
"Not sent": "未傳送",
|
|
@@ -250,6 +253,7 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
250
253
|
"{count} approved": "已核准 {count} 項",
|
|
251
254
|
"Long-running mode is on: turns go on past their time limit.":
|
|
252
255
|
"長時間執行模式已開啟:回合可超過時間上限繼續進行。",
|
|
256
|
+
"Inherited from {name}": "沿用 {name} 的模式",
|
|
253
257
|
"Long-running on": "長時間執行已開啟",
|
|
254
258
|
"Turn off": "關閉",
|
|
255
259
|
"Yolo mode is on: held actions are approved without asking.":
|
|
@@ -294,8 +298,8 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
294
298
|
"The council is empty": "評議會沒有人了",
|
|
295
299
|
"Every member of this council is gone. Edit who sits.":
|
|
296
300
|
"這個評議會的成員都不在了。請重新選誰上桌。",
|
|
297
|
-
"A council is a group of up to {max} knights who answer in turn.
|
|
298
|
-
"評議會是最多 {max}
|
|
301
|
+
"A council is a group of up to {max} knights who answer in turn.":
|
|
302
|
+
"評議會是最多 {max} 位騎士組成的群組,他們輪流發言。",
|
|
299
303
|
"Edit this council": "編輯這個評議會",
|
|
300
304
|
"{count} of {max} picked": "已選 {count}/{max}",
|
|
301
305
|
"At most {max} knights": "最多 {max} 位",
|
|
@@ -377,6 +381,78 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
377
381
|
"騎士使用的上游 MCP 閘道與虛擬伺服器。",
|
|
378
382
|
"Used by": "使用者",
|
|
379
383
|
"Virtual servers": "虛擬伺服器",
|
|
384
|
+
"MCP connectors": "MCP 連接器",
|
|
385
|
+
"No connectors yet.": "還沒有連接器。",
|
|
386
|
+
"Tools unreadable": "讀不到工具",
|
|
387
|
+
"(the URL cannot be parsed)": "(無法解析網址)",
|
|
388
|
+
"Add connector": "新增連接器",
|
|
389
|
+
"Add an MCP connector": "新增 MCP 連接器",
|
|
390
|
+
"Edit purpose": "編輯用途",
|
|
391
|
+
"Edit purpose of {name}": "編輯 {name} 的用途",
|
|
392
|
+
"Remove connector": "移除連接器",
|
|
393
|
+
"Remove {name} and its token? From the next message on, the knights no longer use it.":
|
|
394
|
+
"要移除 {name} 和它的權杖嗎?從下一則訊息起,騎士不再使用它。",
|
|
395
|
+
"Removed {name}.": "已移除 {name}。",
|
|
396
|
+
"Added {name}.": "已新增 {name}。",
|
|
397
|
+
"Added {name}. Left out tools whose names are too long: {tools}":
|
|
398
|
+
"已新增 {name}。名稱太長而略過的工具:{tools}",
|
|
399
|
+
Purpose: "用途",
|
|
400
|
+
"Purpose updated.": "用途已更新。",
|
|
401
|
+
"From the next message on, the knights follow the new purpose.":
|
|
402
|
+
"從下一則訊息起,騎士會依照新的用途。",
|
|
403
|
+
"Lowercase letters, digits and -, up to 12; it becomes the prefix of its tool names.":
|
|
404
|
+
"小寫英文字母、數字和 -,最多 12 個字元;會成為它的工具名稱前綴。",
|
|
405
|
+
"MCP URL": "MCP 網址",
|
|
406
|
+
"A Streamable HTTP endpoint; one ending in /sse uses SSE. A credential may be part of the URL.":
|
|
407
|
+
"Streamable HTTP 端點;以 /sse 結尾的使用 SSE。憑證可以放在網址裡。",
|
|
408
|
+
"The knights decide from this text when to use the connector.":
|
|
409
|
+
"騎士依這段文字決定何時使用這個連接器。",
|
|
410
|
+
"Header name (optional)": "標頭名稱(選填)",
|
|
411
|
+
"Leave empty to send Authorization: Bearer <token>.":
|
|
412
|
+
"留空則送出 Authorization: Bearer <token>。",
|
|
413
|
+
"Token (optional)": "權杖(選填)",
|
|
414
|
+
"Stored encrypted by the gateway and never shown again; leave empty if the credential is in the URL.":
|
|
415
|
+
"由閘道加密保存,之後不會再顯示;憑證若在網址裡就留空。",
|
|
416
|
+
"MCP authorizations": "MCP 授權",
|
|
417
|
+
"Which channels outside AI clients may use through each bundle's MCP URL, and with which operations.":
|
|
418
|
+
"外部 AI 用戶端可以透過各組合的 MCP 網址使用哪些頻道,以及可做哪些操作。",
|
|
419
|
+
"Authorize a channel": "授權頻道",
|
|
420
|
+
"There are no authorizations yet.": "還沒有任何授權。",
|
|
421
|
+
"New URL": "換新網址",
|
|
422
|
+
"No channels": "沒有頻道",
|
|
423
|
+
"Not visible now": "目前看不到",
|
|
424
|
+
"No purpose set.": "未設定用途。",
|
|
425
|
+
"Allowed: {operations}": "允許:{operations}",
|
|
426
|
+
"Recent activity": "最近紀錄",
|
|
427
|
+
"Rename / purpose": "名稱/用途",
|
|
428
|
+
Revoke: "撤銷",
|
|
429
|
+
"Revoke the channel": "撤銷頻道",
|
|
430
|
+
"Revoked.": "已撤銷。",
|
|
431
|
+
"Remove {channel} from bundle {bundle}? Its other channels and its URL keep working; operations already sent are not undone.":
|
|
432
|
+
"要把 {channel} 從組合 {bundle} 移除嗎?它的其他頻道和網址照常運作;已送出的操作不會復原。",
|
|
433
|
+
"Replace the MCP URL": "更換 MCP 網址",
|
|
434
|
+
"Replace URL": "更換網址",
|
|
435
|
+
"Replace the URL of bundle {bundle}? The old URL stops working at once; every channel setting stays.":
|
|
436
|
+
"要更換組合 {bundle} 的網址嗎?舊網址立即失效;所有頻道設定都會保留。",
|
|
437
|
+
"MCP URL of {bundle}": "{bundle} 的 MCP 網址",
|
|
438
|
+
"This URL is the access credential and is shown only this once. Add a remote MCP server in the AI client and paste it; no separate token is needed.":
|
|
439
|
+
"這個網址就是存取憑證,只會顯示這一次。在 AI 用戶端新增遠端 MCP 伺服器並貼上它,不需要另外的權杖。",
|
|
440
|
+
"Allowed operations": "允許的操作",
|
|
441
|
+
"Authorized the channel in {bundle}.": "已在 {bundle} 授權這個頻道。",
|
|
442
|
+
Bundle: "組合",
|
|
443
|
+
"New bundle…": "新組合…",
|
|
444
|
+
"New bundle name": "新組合名稱",
|
|
445
|
+
"Channels in one bundle share one MCP URL.":
|
|
446
|
+
"同一組合的頻道共用一個 MCP 網址。",
|
|
447
|
+
Channel: "頻道",
|
|
448
|
+
"Name outside AI clients see (optional)": "外部 AI 用戶端看到的名稱(選填)",
|
|
449
|
+
"Name outside AI clients see": "外部 AI 用戶端看到的名稱",
|
|
450
|
+
"Purpose (optional)": "用途(選填)",
|
|
451
|
+
Authorize: "授權",
|
|
452
|
+
"Updated what outside AI clients see.": "已更新外部 AI 用戶端看到的內容。",
|
|
453
|
+
"What outside AI clients see": "外部 AI 用戶端看到的內容",
|
|
454
|
+
"The channel's name and topic on Discord stay as they are.":
|
|
455
|
+
"頻道在 Discord 上的名稱和主題維持不變。",
|
|
380
456
|
|
|
381
457
|
// 對話
|
|
382
458
|
"{count} archived": "已封存 {count} 筆",
|
|
@@ -525,6 +601,7 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
525
601
|
"Copy as Markdown": "複製為 Markdown",
|
|
526
602
|
"Quote reply": "引用回覆",
|
|
527
603
|
"Select text": "選取文字",
|
|
604
|
+
"Copy all": "全部複製",
|
|
528
605
|
Share: "分享",
|
|
529
606
|
"Knight profile": "騎士資料",
|
|
530
607
|
"Copy details": "複製細節",
|
|
@@ -612,6 +689,9 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
612
689
|
Yolo: "Yolo",
|
|
613
690
|
"{count} card waiting": "{count} 張卡片等待中",
|
|
614
691
|
"{count} cards waiting": "{count} 張卡片等待中",
|
|
692
|
+
"{count} card waiting for an answer": "{count} 張卡待回答",
|
|
693
|
+
"{count} cards waiting for an answer": "{count} 張卡待回答",
|
|
694
|
+
"Cards waiting": "待回答的卡片",
|
|
615
695
|
"{count} finished thread": "{count} 個已結束的討論串",
|
|
616
696
|
"{count} finished threads": "{count} 個已結束的討論串",
|
|
617
697
|
Clear: "清除",
|
|
@@ -727,8 +807,12 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
727
807
|
// 圓桌
|
|
728
808
|
"Reset view": "重設視角",
|
|
729
809
|
Log: "記錄",
|
|
730
|
-
"
|
|
731
|
-
"
|
|
810
|
+
"Show the council as": "評議會的顯示方式",
|
|
811
|
+
"Animation mode": "動畫模式",
|
|
812
|
+
"Chat mode": "聊天模式",
|
|
813
|
+
"Collapse dialogue": "收起對話",
|
|
814
|
+
"Expand dialogue": "展開對話",
|
|
815
|
+
"Waiting for your answer": "等你回覆",
|
|
732
816
|
"Back to the whole table": "回到整張圓桌",
|
|
733
817
|
You: "你",
|
|
734
818
|
"Tap to show the whole message": "點一下顯示整段訊息",
|
|
@@ -790,7 +874,11 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
790
874
|
"Method not allowed.": "不允許使用這個方法。",
|
|
791
875
|
"There is no such API.": "沒有這個 API。",
|
|
792
876
|
"before and limit must be whole numbers.": "before 與 limit 必須是整數。",
|
|
877
|
+
"before, limit and archive must be whole numbers.":
|
|
878
|
+
"before、limit 與 archive 必須是整數。",
|
|
793
879
|
"Give yolo or longRunning.": "請提供 yolo 或 longRunning。",
|
|
880
|
+
"This room follows the modes of the conversation that made it; switch them there.":
|
|
881
|
+
"這個房間沿用建立它的對話的模式;請到那個對話切換。",
|
|
794
882
|
"muted must be true or false.": "muted 必須是 true 或 false。",
|
|
795
883
|
// 分組與置頂
|
|
796
884
|
"Give the folder a name of 1 to 40 characters.": "分組名稱要 1 到 40 個字。",
|
|
@@ -873,6 +961,8 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
873
961
|
"The push endpoint must have no credentials, port or fragment.":
|
|
874
962
|
"推播端點不可包含帳密、連接埠或片段。",
|
|
875
963
|
"That push service is not allowed.": "不允許使用這個推播服務。",
|
|
964
|
+
"The MCP authorization service did not respond. Try again later.":
|
|
965
|
+
"MCP 授權服務沒有回應,請稍後再試。",
|
|
876
966
|
"The connector service did not respond. Try again later.":
|
|
877
967
|
"連接器服務沒有回應,請稍後再試。",
|
|
878
968
|
"The console could not complete the request.": "主控台無法完成這個請求。",
|
|
@@ -1082,6 +1172,16 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
1082
1172
|
"來自套件 {package};套件升級時才會改變。",
|
|
1083
1173
|
"Linked from {repo}; change it in its repository.":
|
|
1084
1174
|
"連結自 {repo};請到它的儲存庫修改。",
|
|
1175
|
+
"Delete this skill?": "要刪除這個技能嗎?",
|
|
1176
|
+
"Delete skill": "刪除技能",
|
|
1177
|
+
"{name} will be deleted and taken from the knights that carry it: {carriers}.":
|
|
1178
|
+
"{name} 會被刪除,並從攜帶它的騎士身上拿掉:{carriers}。",
|
|
1179
|
+
"{name} will be deleted. No knight carries it.":
|
|
1180
|
+
"{name} 會被刪除,目前沒有騎士攜帶它。",
|
|
1181
|
+
"It also leaves the skill groups {groups}.": "它也會離開技能群組 {groups}。",
|
|
1182
|
+
"This cannot be undone.": "這個動作無法復原。",
|
|
1183
|
+
"Skills ({count})": "技能({count})",
|
|
1184
|
+
"Choose the skills this knight carries.": "選擇這位騎士攜帶的技能。",
|
|
1085
1185
|
// 主要提示詞與技能內容的編輯:伺服器的拒絕訊息
|
|
1086
1186
|
"This host has no prompts to edit.": "這個主機沒有可編輯的提示詞。",
|
|
1087
1187
|
"There is no such prompt.": "沒有這份提示詞。",
|
|
@@ -1127,6 +1227,9 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
1127
1227
|
"Write an internal note…": "寫一則內部備註…",
|
|
1128
1228
|
"Ask AI…": "問 AI…",
|
|
1129
1229
|
"Internal note": "內部備註",
|
|
1230
|
+
"→ To {name}": "→ 給 {name}",
|
|
1231
|
+
"← From {name}": "← 來自 {name}",
|
|
1232
|
+
"No answer from {name}": "{name} 沒有回覆",
|
|
1130
1233
|
"Earlier cards ({count})": "先前的卡片({count})",
|
|
1131
1234
|
Replaced: "已被取代",
|
|
1132
1235
|
Image: "圖片",
|
package/src/web-plugin.ts
CHANGED
|
@@ -119,8 +119,13 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
119
119
|
typeof settings.features === "function"
|
|
120
120
|
? await settings.features(context)
|
|
121
121
|
: settings.features;
|
|
122
|
+
// The Connectors page also serves the MCP authorizations alone.
|
|
123
|
+
const served = {
|
|
124
|
+
skills: features?.skills,
|
|
125
|
+
connectors: features?.connectors ?? features?.mcpGrants,
|
|
126
|
+
};
|
|
122
127
|
for (const pane of ["skills", "connectors"] as const) {
|
|
123
|
-
if (settings.panes.includes(pane) && !
|
|
128
|
+
if (settings.panes.includes(pane) && !served[pane])
|
|
124
129
|
throw new Error(`web-console: the ${pane} pane needs its feature port`);
|
|
125
130
|
}
|
|
126
131
|
const rooms = settings.panes.includes("rooms");
|
|
@@ -274,6 +279,7 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
274
279
|
hosted,
|
|
275
280
|
sessionsDir: settings.sessionsDir,
|
|
276
281
|
...(team ? { team } : {}),
|
|
282
|
+
...(team && rooms ? { roomSurface: settings.surface } : {}),
|
|
277
283
|
queue,
|
|
278
284
|
...(connection
|
|
279
285
|
? { channelName: (id: string) => connection.channelInfo(id) }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h,Q,S,e,w}from"./chunk-index-2e4am3hw.js";var a={profile:S(()=>(h("s7r7fcvz"),import("./chunk-profile-s7r7fcvz.js")).then((o)=>({default:o.ProfilePage}))),notices:S(()=>(h("fte9f196"),import("./chunk-notices-fte9f196.js")).then((o)=>({default:o.NoticesPage}))),onboarding:S(()=>(h("c5twahc3"),import("./chunk-onboarding-c5twahc3.js")).then((o)=>({default:o.OnboardingPage})))};function n({pane:o}){let t=a[o];return t?e(Q,{fallback:e(w,{}),children:e(t,{})}):null}export{n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s,Qe,a,r,m,e,n,o,St,Xo}from"./chunk-index-2e4am3hw.js";import{L}from"./chunk-index-8d81qy69.js";var x=()=>typeof matchMedia==="function"&&matchMedia("(max-width: 719px)").matches,g={rtMenu:!0},H=()=>Boolean(window.history.state?.rtMenu),y=8,M=(t)=>t?.isConnected?t:null;function b(t){return t.items.map((i)=>n("button",{type:"button",role:i.checked===void 0?"menuitem":"menuitemcheckbox",...i.checked===void 0?{}:{"aria-checked":i.checked},className:"menu-item menu-link","data-tone":i.tone,onClick:()=>t.onChoose(i),children:[i.icon?e("span",{className:"menu-icon","data-tone":i.tone,children:e(o,{name:i.icon,size:18})}):null,e("span",{className:"menu-text",children:e("strong",{children:i.label})}),i.checked?e(o,{name:"check",size:18,className:"menu-check"}):null]},i.id))}function T({menu:t}){let i=a(void 0);if(t)i.current=t;let l=i.current,f=a(!1),v=a(void 0),h=t?.serial;return s(()=>{if(h===void 0)return;return window.history.pushState(g,"",window.location.href),f.current=!0,()=>{if(f.current)f.current=!1,window.history.back()}},[h]),s(()=>{let p=()=>{if(!f.current||H())return;f.current=!1,St();let E=v.current;v.current=void 0,E?.()};return window.addEventListener("popstate",p),()=>window.removeEventListener("popstate",p)},[]),e(L,{open:t!==void 0,title:l?.title??"",onClose:St,restoreFocus:()=>M(l?.source??null),children:l?e("div",{className:"menu action-items",role:"menu","aria-label":l.title,children:e(b,{items:l.items,onChoose:(p)=>{if(!f.current){St(),p.run();return}v.current=p.run,window.history.back()}})}):null})}function D({menu:t}){let i=a(null),[l,f]=r(t.at),{source:v}=t,h=(u)=>{M(v)?.focus(),St(),u?.()},p=a(h);p.current=h,Qe(()=>{let u=i.current;if(!u)return;let d={left:u.style.left,top:u.style.top};u.style.left="0px",u.style.top="0px";let c={width:u.offsetWidth,height:u.offsetHeight};u.style.left=d.left,u.style.top=d.top,f({x:Math.max(y,Math.min(t.at.x,window.innerWidth-c.width-y)),y:Math.max(y,Math.min(t.at.y,window.innerHeight-c.height-y))}),u.querySelector('[role^="menuitem"]')?.focus()},[t.serial]),s(()=>{let u=(c)=>{if(c.target instanceof Node&&i.current?.contains(c.target))return;St()},d=()=>St();return document.addEventListener("pointerdown",u,!0),document.addEventListener("wheel",u,{capture:!0,passive:!0}),document.addEventListener("touchmove",u,{capture:!0,passive:!0}),window.addEventListener("resize",d),()=>{document.removeEventListener("pointerdown",u,!0),document.removeEventListener("wheel",u,!0),document.removeEventListener("touchmove",u,!0),window.removeEventListener("resize",d)}},[]);let E=(u)=>{let d=[...i.current?.querySelectorAll('[role^="menuitem"]')??[]],c=d.indexOf(document.activeElement),w=(k)=>{u.preventDefault(),d[(k+d.length)%d.length]?.focus()};switch(u.key){case"Escape":u.preventDefault(),u.stopPropagation(),p.current();return;case"ArrowDown":return w(c+1);case"ArrowUp":return w(c<0?-1:c-1);case"Tab":return w(u.shiftKey?c<0?-1:c-1:c+1);case"Home":return w(0);case"End":return w(-1)}};return e("div",{ref:i,className:"action-popover",role:"menu","aria-label":t.title,tabIndex:-1,style:{left:`${l.x}px`,top:`${l.y}px`},onKeyDown:E,children:e(b,{items:t.items,onChoose:(u)=>h(u.run)})})}function O(){let t=Xo(),i=a(void 0);if(t&&i.current?.serial!==t.serial)i.current={serial:t.serial,sheet:x()};let l=Boolean(t&&i.current?.sheet);return n(m,{children:[e(T,{menu:l?t:void 0}),t&&!l?e(D,{menu:t},t.serial):null]})}export{O as ActionMenuHost};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s,e,D,u,w,rt}from"./chunk-index-2e4am3hw.js";function c({name:o}){let i=u((t)=>t.listed),r=u((t)=>Object.values(t.rooms).find((m)=>m.view?.kind==="agent"&&m.view.name===o)?.view?.key,o);return s(()=>{if(r)D("room",r,{replace:!0}),rt(o);else if(i)D("rooms",void 0,{replace:!0})},[r,i,o]),e("div",{className:"page",children:e(w,{})})}export{c as AgentPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h,Q,S,J,M,a,t,m,e,n,o,ke,u,_,k,pe,Wt,On,ne,Ji,yi,Mr,At,bi,Rr}from"./chunk-index-2e4am3hw.js";import{Ce}from"./chunk-index-j4kk1m59.js";import{si}from"./chunk-index-02vfshtt.js";import"./chunk-index-e2dqjde8.js";import"./chunk-index-kbrg32sx.js";import{Jn}from"./chunk-index-pefwfm26.js";import{ri,oi}from"./chunk-index-xxeb2xp0.js";import{Bt}from"./chunk-index-12zyshae.js";import"./chunk-index-b8cpvr7y.js";import"./chunk-index-rh0x9rzf.js";import{ot}from"./chunk-index-g1awv7rk.js";ri();var F=S(()=>(h("4gcj7g7h"),import("./chunk-folder-list-4gcj7g7h.js")).then((s)=>({default:s.FolderList}))),O=J(function(d){let{view:r}=d,p=Bt(()=>Wt(r.key),r.home?void 0:oi(r.key));return e(Mr,{...d,press:p,item:{...r.home?{}:{"data-drop-item":"","data-key":r.key},...d.arranging?{"data-arranging":""}:{}},after:d.arranging?e("button",{type:"button",className:"icon-button row-more","aria-haspopup":"menu","aria-label":t("Room menu"),onClick:(c)=>{let g=c.currentTarget;Wt(r.key).then((i)=>{if(!i)return;let y=g.getBoundingClientRect();pe({...i,at:{x:y.left,y:y.bottom},via:"key",source:g})},()=>{return})},children:e(o,{name:"more",size:18})}):null})});function L(s){let{now:d}=ne(),{timeZone:r}=k(),p=At(s.rooms);return e("ul",{className:"room-list",children:p.map(({key:c,...g})=>{let i=s.threads[c];return e(O,{...g,active:c===s.active,now:d,timeZone:r,arranging:s.arranging,...i?{threads:e(bi,{open:i.open,closed:i.closed,active:s.active,parent:c})}:{}},c)})})}function v(s){let r=At(s.rooms).length===0;if(r&&s.zone?.kind!=="pinned")return null;return n("section",{className:"stack",...r?{"data-empty":""}:{},...s.zone?{"data-drop-zone":s.zone.kind,"data-zone-id":s.zone.id}:{},children:[e("h2",{className:"section-title",children:s.title}),r?null:e(L,{rooms:s.rooms,threads:s.threads,active:s.active,arranging:s.arranging})]})}function re(s){let d=Boolean(k().kinds?.length),r=u((l)=>JSON.stringify({listed:l.listed,...ot(l,(K)=>ke(l,K))})),p=si(),c=a(r);if(!p)c.current=r;let g=c.current,{listed:i,...y}=M(()=>JSON.parse(g),[g]),{home:w,pinned:z,folders:N,restAgents:P,restGroups:T,rest:A,threads:C,orphans:f}=y,R=Ji(),D=w.length+z.length+A.length===0&&N.every((l)=>l.rooms.length===0)&&f.open.length+f.closed.length===0,b={threads:C,active:s.active,arranging:R};return n("div",{className:"page","data-column":s.active?"":void 0,"data-drop-root":"",children:[n("header",{className:"page-head",children:[e("h1",{children:t("Rooms")}),n("div",{className:"actions",children:[n("button",{type:"button",className:"header-button search-button",onClick:s.onSearch,children:[e(o,{name:"search",size:16}),e("span",{children:t("Find a room")}),e("kbd",{children:"⌘K"})]}),i?e("button",{type:"button",className:"header-button icon-button","aria-haspopup":"menu","aria-label":t("Folders and order"),onClick:(l)=>Jn(l.currentTarget),children:e(o,{name:"more",size:18})}):null,e("button",{type:"button",className:"header-button icon-button","aria-label":t("Add"),"aria-haspopup":"menu",onClick:(l)=>On(l.currentTarget),children:e(o,{name:"plus"})})]})]}),R?n("div",{className:"arrange-bar",children:[n("button",{type:"button",className:"secondary",onClick:()=>Ce({kind:"new"}),children:[e(o,{name:"plus",size:16}),e("span",{children:t("Add a folder")})]}),e("button",{type:"button",onClick:()=>yi(!1),children:t("Done")})]}):null,i&&D&&!d?e(_,{children:t("No rooms yet. Rooms appear when the team has a knight.")}):null,!i?n("div",{className:"stack","aria-busy":"true",children:[e("div",{className:"skeleton"}),e("div",{className:"skeleton"}),e("div",{className:"skeleton"})]}):null,e(v,{title:t("Home"),rooms:w,...b}),e(v,{title:t("Pinned"),rooms:z,zone:{kind:"pinned",id:"pinned"},...b}),N.length>0?e("div",{className:"stack folder-list","data-folder-list":"",children:e(Q,{fallback:e("div",{className:"skeleton","aria-busy":"true"}),children:e(F,{folders:N,active:s.active,listed:i,rooms:(l)=>e(L,{rooms:l,threads:C,active:s.active,arranging:R})})})}):null,N.length>0?e(v,{title:t("Ungrouped"),rooms:A,zone:{kind:"rest",id:"rest"},...b}):n(m,{children:[e(v,{title:t("Knights"),rooms:P,zone:{kind:"rest",id:"rest-agents"},...b}),e(v,{title:t("Groups"),rooms:T,zone:{kind:"rest",id:"rest-groups"},...b})]}),f.open.length+f.closed.length>0?n("section",{className:"stack",children:[e("h2",{className:"section-title",children:t("Dispatch threads")}),e(bi,{open:f.open,closed:f.closed,active:s.active})]}):null,e(Rr,{active:s.active})]})}export{re as ArrangedRoomsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t,te,y,d,f}from"./chunk-index-2e4am3hw.js";import{nn}from"./chunk-index-kbrg32sx.js";import"./chunk-index-e2dqjde8.js";import{Sn,Lr}from"./chunk-index-6bkcq9ka.js";import{ee}from"./chunk-index-cdctnw71.js";import{Wr}from"./chunk-index-b8cpvr7y.js";import"./chunk-index-rh0x9rzf.js";var s=500,c=(n)=>{let r=[];for(let e=0;e<n.length;e+=s)r.push(n.slice(e,e+s));return r},i=()=>y.dispatch({type:"changed"});async function P(n){let r=Wr(n),e=Object.keys(r);if(e.length===0)return;let a=[];try{for(let o of c(e))a.push(...(await Sn.readAll(o)).moved)}catch(o){f(d(o),"danger"),i();return}nn(Object.fromEntries(e.map((o)=>[o,0]))),f(te(e.length,"Marked {count} room as read","Marked {count} rooms as read"),"info",a.length?{label:t("Undo"),run:()=>void m(a,r)}:void 0)}async function m(n,r){try{for(let e of c(n)){let{restored:a}=await Sn.unreadAll(e);nn(Object.fromEntries(a.map((o)=>[o,r[o]??0])))}}catch(e){f(d(e),"danger")}i()}var R=(n)=>Lr(n);async function l(n){try{await Sn.restoreHelpers(n)}catch(r){f(d(r),"danger")}i()}async function T(n){let r;try{r=(await Sn.archiveFinishedHelpers(n)).archived.flatMap((a)=>a.names)}catch(e){f(d(e),"danger"),i();return}if(i(),r.length===0)return;f(te(r.length,"Archived {count} temp knight","Archived {count} temp knights"),"info",{label:t("Undo"),run:()=>void l(r)})}async function x(n,r){try{await ee.archiveAgent(n)}catch(e){f(d(e),"danger"),i();return}i(),f(t("Archived {name}",{name:r}),"info",{label:t("Undo"),run:()=>void l([n])})}export{x as archiveHelper,R as clearAllFinished,T as clearFinishedHelpers,P as markAllRead,l as putBackHelpers};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ze,Ht,G,vi,xn}from"./chunk-index-b73y2gc0.js";import{J,xr,s,N,M,a,r,t,c,m,e,n,di,ce,O,d,f,yn,ue,We,He}from"./chunk-index-2e4am3hw.js";import{K}from"./chunk-index-jgzygbt8.js";import{L}from"./chunk-index-8d81qy69.js";var fe={"hat.none":"No hat","hat.goggcap":"Leather cap","hat.tallcap":"Burgundian felt cap","hat.softcap":"Soft cap","hat.hardhat":"Iron skullcap","hat.fcap":"Hunter's cap","hat.winghelm":"Winged helm","hat.helm":"Helm","hat.mortar":"Biretta","hat.beret":"Chaperon","hat.goggles":"Pointed cap","hat.tricorn":"Pilgrim hat","hat.sailor":"Straw hat","hat.kettle":"Kettle hat","hat.cavalier":"Feathered hat","hat.toque":"Linen cook's cap","hair.none":"No hair","beard.none":"No beard","accessory.none":"No accessory","prop.beads":"Prayer beads","prop.marotte":"Marotte","prop.map":"Chart","prop.flask":"Alchemist's phial","prop.telescope":"Astrolabe","prop.wrench":"Dividers","outfit.surplice":"Surplice","outfit.overalls":"Work jerkin","outfit.armor":"Mail hauberk","outfit.apron":"Smith's apron","outfit.chef":"Cook's tunic","outfit.coat":"Doublet","outfit.vest":"Pourpoint","outfit.sailor":"Mariner's tunic","hair.bob":"Bob","hair.bun":"Bun","hair.ponytail":"Ponytail"},Y=(i)=>i.charAt(0).toUpperCase()+i.slice(1);function S(i,l){let b=`character.${i}.${l}`,g=t(b);if(g!==b)return g;if(i==="class")return G.classes[l]?.label??Y(l);return fe[`${i}.${l}`]??Y(l)}function Z(i){let l=`character.jobs.${i}`,b=t(l);return b!==l?b:G.classes[i]?.jobs??""}var z=[{field:"hat",title:c("Hat"),ids:G.hats},{field:"outfit",title:c("Outfit"),ids:G.outfits},{field:"prop",title:c("Prop"),ids:G.props},{field:"hair",title:c("Hair"),ids:G.hair},{field:"beard",title:c("Beard"),ids:["none",...G.beards]},{field:"accessory",title:c("Accessory"),ids:["none",...G.accessories]}],me=new Set(["class","colors","palette","build","skin","hairColor",...z.map((i)=>i.field)]),re=Object.keys(G.palettes),ee={idle:c("Idle"),thinking:c("Thinking"),working:c("Working"),waiting:c("Waiting for you"),done:c("Done"),error:c("Error"),sleepy:c("Sleepy")},he={slim:c("Slim"),regular:c("Regular"),stout:c("Stout")};function W(i){return{class:i.class,outfit:i.outfit,hat:i.hat,prop:i.prop,hair:i.hair,beard:i.beard,accessory:i.accessory,build:i.build,skin:i.skin,hairColor:i.hairColor,colors:{...i.colors}}}var te=(i)=>JSON.stringify(W(i)),k=(i)=>i[Math.floor(Math.random()*i.length)];function be(){return{class:k(Ze),outfit:k(G.outfits),hat:k(G.hats),prop:k(G.props),hair:k(G.hair),beard:k(["none",...G.beards]),accessory:k(["none",...G.accessories]),build:k(["slim","regular","stout"]),skin:k([0,1,2,3,4,5]),hairColor:k(G.hairColors),palette:k(re)}}var ie=J(function(l){return n("button",{type:"button",className:"creator-tile","aria-pressed":l.pressed,title:l.hint?`${l.label} — ${l.hint}`:l.label,onClick:l.onPick,...l.data,children:[e(ue,{spec:l.spec,size:l.size,live:!1}),e("span",{children:l.label})]})});function ge(i,l,b){let g=JSON.stringify({...i,[l]:0});return M(()=>b.map((u)=>({...i,[l]:u})),[g,l,b])}function pe(){let i=a(null),[l,b]=r();return s(()=>{let g=i.current;if(!g)return;let u=()=>{let v=g.scrollLeft>1,w=g.scrollLeft+g.clientWidth<g.scrollWidth-1;b(v&&w?"both":w?"end":v?"start":void 0)};u(),g.addEventListener("scroll",u,{passive:!0});let p=typeof ResizeObserver>"u"?void 0:new ResizeObserver(u);return p?.observe(g),()=>{g.removeEventListener("scroll",u),p?.disconnect()}},[]),[i,l]}function ye(i){let{part:l}=i,b=ge(i.shown,l.field,l.ids),[g,u]=pe();return e("div",{className:"creator-strip",ref:g,"data-more":u,children:l.ids.map((p,v)=>e(ie,{data:{[`data-${l.field}`]:p},spec:b[v],size:44,label:S(l.field,p),pressed:i.draft[l.field]===p,onPick:()=>i.onPick(p)},p))})}function H(i){return e("button",{type:"button",className:"creator-swatch","aria-pressed":i.pressed,"aria-label":i.label,title:i.label,style:{background:i.background},onClick:i.onPick,...i.data})}function P(i){return n("div",{className:"creator-field","data-field":i.field,children:[i.title?e("h3",{children:i.title}):null,i.children,i.error?e("p",{className:"field-error",role:"alert",children:i.error}):null]})}function Me(i){let[l,b]=r(i.character),g=xr(l),[u,p]=r({}),[v,w]=r(!1),[R,ne]=r("idle"),[U,T]=r(),[I,_]=r(),j=He("(max-width: 719px)"),V=a(null),D=N(),oe=We(l),se=yn(),A=te(l)!==te(i.character);s(()=>b(i.character),[i.character]),s(()=>{if(!A||i.onPick)return;let o=(y)=>y.preventDefault(),h=(y)=>{if(y.button!==0||y.metaKey||y.ctrlKey||y.shiftKey||y.altKey)return;let E=y.target instanceof Element?y.target.closest("a"):null;if(!E||E.target||E.hasAttribute("download"))return;if(V.current?.contains(E))return;y.preventDefault(),y.stopPropagation(),T({kind:"link",anchor:E})},B=di((y)=>T({kind:"navigate",proceed:y}));return window.addEventListener("beforeunload",o),document.addEventListener("click",h,!0),()=>{B(),window.removeEventListener("beforeunload",o),document.removeEventListener("click",h,!0)}},[A,i.onPick]);let C=(o)=>{p({}),b((h)=>vi(o,h))},le=async()=>{if(i.onPick){i.onPick(W(l),l);return}w(!0),p({});try{let o=await O.setCharacter(i.name,W(l));i.onSaved?.(o),f(t("Saved."))}catch(o){let h=o instanceof ce&&o.field?o.field.split(".")[0]:void 0,B=h&&me.has(h)?h:"*";p({[B]:d(o)})}finally{w(!1)}},de=async()=>{let o=U;if(b(i.character),p({}),o?.kind==="link")setTimeout(()=>o.anchor.click(),0);else if(o?.kind==="navigate")o.proceed()},q=e(P,{field:"class",title:t("Class"),error:u.class,children:e("div",{className:"creator-grid",children:Ze.map((o)=>e(ke,{id:o,base:g,pressed:l.class===o,onPick:()=>C({class:o,colors:l.colors})},o))})}),x=n(P,{field:"colors",title:t("Colors"),error:u.colors??u.palette,children:[n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Palette")}),re.map((o)=>{let h=G.palettes[o];return e(H,{data:{"data-palette":o},label:S("palette",o),pressed:l.palette===o,background:`linear-gradient(135deg, ${h.primary} 52%, ${h.trim} 52%)`,onPick:()=>C({palette:o})},o)})]}),e("div",{className:"creator-custom",children:["primary","secondary","trim"].map((o)=>n("label",{children:[e("span",{children:o==="primary"?t("Primary (the accent)"):o==="secondary"?t("Secondary"):t("Trim")}),e("input",{type:"color",value:l.colors[o],onChange:(h)=>C({colors:{[o]:h.target.value}})})]},o))})]}),Q=z.map((o)=>e(P,{field:o.field,title:t(o.title),error:u[o.field],children:e(ye,{part:o,draft:l,shown:g,onPick:(h)=>C({[o.field]:h})})},o.field)),X=n(m,{children:[e(P,{field:"build",title:t("Build"),error:u.build,children:n("fieldset",{className:"segmented",children:[e("legend",{className:"visually-hidden",children:t("Build")}),["slim","regular","stout"].map((o)=>n("label",{"data-checked":l.build===o,children:[e("input",{type:"radio",name:`${D}-build`,checked:l.build===o,onChange:()=>C({build:o})}),ae(o)]},o))]})}),e(P,{field:"skin",title:t("Skin tone"),error:u.skin,children:n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Skin tone")}),(se??G.skins).map((o,h)=>e(H,{data:{"data-skin":String(h)},label:t("Skin tone {n}",{n:h+1}),pressed:l.skin===h,background:o,onPick:()=>C({skin:h})},h))]})}),e(P,{field:"hairColor",title:t("Hair color"),error:u.hairColor,children:n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Hair color")}),G.hairColors.map((o,h)=>e(H,{data:{"data-hair-color":o},label:t("Hair color {n}",{n:h+1}),pressed:l.hairColor===o,background:o,onPick:()=>C({hairColor:o})},o)),e("input",{type:"color","aria-label":t("Hair color"),value:l.hairColor,onChange:(o)=>C({hairColor:o.target.value})})]})})]}),F=[{id:"class",title:t("Class"),summary:S("class",l.class),error:u.class,node:q},{id:"colors",title:t("Colors"),summary:l.palette?S("palette",l.palette):l.colors.primary,error:u.colors??u.palette,node:x},...z.map((o,h)=>({id:o.field,title:t(o.title),summary:S(o.field,l[o.field]),error:u[o.field],node:Q[h]})),{id:"body",title:t("Body"),summary:ae(l.build),error:u.build??u.skin??u.hairColor,node:X}];return n("form",{ref:V,className:"creator",style:oe,"aria-labelledby":D,onSubmit:(o)=>{if(o.preventDefault(),(A||i.onPick)&&!v)le()},children:[e("h2",{id:D,className:"visually-hidden",children:t("Character of {name}",{name:i.displayName})}),n("div",{className:"creator-preview",children:[e(ue,{spec:l,name:i.name,state:R,size:176,label:t("{name}, {state}",{name:i.displayName,state:t(ee[R])})}),e("button",{type:"button",className:"secondary","data-action":"cycle",onClick:()=>ne((o)=>Ht[(Ht.indexOf(o)+1)%Ht.length]??"idle"),children:t("Preview states")}),e("span",{className:"meta","aria-live":"polite",children:t(ee[R])})]}),n("div",{className:"creator-body",children:[u["*"]?e("p",{className:"field-error",role:"alert","data-field":"*",children:u["*"]}):null,j?e("ul",{className:"creator-sections",children:F.map((o)=>e("li",{children:n("button",{type:"button",className:"creator-section secondary",onClick:()=>_(o.id),children:[e("strong",{children:o.title}),e("span",{className:"meta",children:o.summary}),o.error?e("span",{className:"field-error",role:"alert",children:o.error}):null]})},o.id))}):n(m,{children:[q,x,Q,X]}),n("div",{className:"actions creator-actions",children:[e("button",{type:"button",className:"secondary","data-action":"suggest",onClick:()=>{p({}),b(xn({name:i.name,displayName:i.displayName,prompt:i.prompt}))},children:t("Suggest from role")}),e("button",{type:"button",className:"secondary","data-action":"randomize",onClick:()=>C(be()),children:t("Randomize")}),e("button",{type:"button",className:"secondary","data-action":"cancel",onClick:()=>{if(i.onCancel)i.onCancel();else if(A)T({kind:"cancel"})},children:t("Cancel")}),e("button",{type:"submit","data-action":"save",disabled:!A&&!i.onPick||v,children:v?t("Saving…"):i.onPick?t("Use this look"):t("Save")})]})]}),e(L,{open:j&&I!==void 0,title:F.find((o)=>o.id===I)?.title??"",onClose:()=>_(void 0),children:e("div",{className:"stack",children:F.find((o)=>o.id===I)?.node})}),e(K,{open:U!==void 0,title:t("Discard your changes?"),confirmLabel:t("Discard"),cancelLabel:t("Keep editing"),tone:"danger",onClose:()=>T(void 0),onConfirm:de,children:e("p",{children:t("The new look for {name} has not been saved.",{name:i.displayName})})})]})}var ae=(i)=>t(he[i]);function ke(i){let l=i.base.colors,b=M(()=>vi({class:i.id,colors:l}),[i.id,l]);return e(ie,{data:{"data-class":i.id},spec:b,size:56,label:S("class",i.id),hint:Z(i.id),pressed:i.pressed,onPick:i.onPick})}export{Me as CharacterCreator};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{q,me,Pi,so,Qi,ft,ge,l,x,we,ze,Xt,Ie,F,se,ae,U,yt,bt,De,Oe,C,ie,Pe,b,kt,ao,lo,co,Mi,Zn,uo,fo,ho,po,T,i,A,Je,Dt,Hn,ar,Tn,Pn,Oo,yo,pt}from"./chunk-index-cbqhzf40.js";import{h}from"./chunk-index-2e4am3hw.js";var nn=(e)=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=be(e.state,n.from);return r.line?rn(e):r.block?ln(e):!1};function ve(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let o=e(t,n);if(!o)return!1;return r(n.update(o)),!0}}var rn=ve(an,0);var on=ve(Ye,0);var ln=ve((e,t)=>Ye(e,t,cn(t)),0);function be(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}var G=50;function sn(e,{open:t,close:n},r,o){let s=e.sliceDoc(r-G,r),c=e.sliceDoc(o,o+G),a=/\s*$/.exec(s)[0].length,u=/^\s*/.exec(c)[0].length,d=s.length-a;if(s.slice(d-t.length,d)==t&&c.slice(u,u+n.length)==n)return{open:{pos:r-a,margin:a&&1},close:{pos:o+u,margin:u&&1}};let f,m;if(o-r<=2*G)f=m=e.sliceDoc(r,o);else f=e.sliceDoc(r,r+G),m=e.sliceDoc(o-G,o);let p=/^\s*/.exec(f)[0].length,E=/\s*$/.exec(m)[0].length,M=m.length-E-n.length;if(f.slice(p,p+t.length)==t&&m.slice(M,M+n.length)==n)return{open:{pos:r+p+t.length,margin:/\s/.test(f.charAt(p+t.length))?1:0},close:{pos:o-E-n.length,margin:/\s/.test(m.charAt(M-1))?1:0}};return null}function cn(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),o=n.to<=r.to?r:e.doc.lineAt(n.to);if(o.from>r.from&&o.from==n.to)o=n.to==r.to+1?r:e.doc.lineAt(n.to-1);let s=t.length-1;if(s>=0&&t[s].to>r.from)t[s].to=o.to;else t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:o.to})}return t}function Ye(e,t,n=t.selection.ranges){let r=n.map((s)=>be(t,s.from).block);if(!r.every((s)=>s))return null;let o=n.map((s,c)=>sn(t,r[c],s.from,s.to));if(e!=2&&!o.every((s)=>s))return{changes:t.changes(n.map((s,c)=>{if(o[c])return[];return[{from:s.from,insert:r[c].open+" "},{from:s.to,insert:" "+r[c].close}]}))};else if(e!=1&&o.some((s)=>s)){let s=[];for(let c=0,a;c<o.length;c++)if(a=o[c]){let u=r[c],{open:d,close:f}=a;s.push({from:d.pos-u.open.length,to:d.pos+d.margin},{from:f.pos-f.margin,to:f.pos+u.close.length})}return{changes:s}}return null}function an(e,t,n=t.selection.ranges){let r=[],o=-1;e:for(let{from:s,to:c}of n){let a=r.length,u=1e9,d;for(let f=s;f<=c;){let m=t.doc.lineAt(f);if(d==null){if(d=be(t,m.from).line,!d)continue e}if(m.from>o&&(s==c||c>m.from)){o=m.from;let p=/^\s*/.exec(m.text)[0].length,E=p==m.length,M=m.text.slice(p,p+d.length)==d?p:-1;if(p<m.text.length&&p<u)u=p;r.push({line:m,comment:M,token:d,indent:p,empty:E,single:!1})}f=m.to+1}if(u<1e9){for(let f=a;f<r.length;f++)if(r[f].indent<r[f].line.text.length)r[f].indent=u}if(r.length==a+1)r[a].single=!0}if(e!=2&&r.some((s)=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:a,token:u,indent:d,empty:f,single:m}of r)if(m||!f)s.push({from:a.from+d,insert:u+" "});let c=t.changes(s);return{changes:c,selection:t.selection.map(c,1)}}else if(e!=1&&r.some((s)=>s.comment>=0)){let s=[];for(let{line:c,comment:a,token:u}of r)if(a>=0){let d=c.from+a,f=d+u.length;if(c.text[f-c.from]==" ")f++;s.push({from:d,to:f})}return{changes:s}}return null}var xe=Ie.define(),un=Ie.define(),hn=x.define(),Ze=x.define({combine(e){return yt(e,{minDepth:100,newGroupDelay:500,joinToEvent:(t,n)=>n},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(t,n)=>(r,o)=>t(r,o)||n(r,o)})}}),et=we.define({create(){return D.empty},update(e,t){let n=t.state.facet(Ze),r=t.annotation(xe);if(r){let u=y.fromTransaction(t,r.selection),d=r.side,f=d==0?e.undone:e.done;if(u)f=Q(f,f.length,n.minDepth,u);else f=rt(f,t.startState.selection);return new D(d==0?r.rest:f,d==0?f:r.rest)}let o=t.annotation(un);if(o=="full"||o=="before")e=e.isolate();if(t.annotation(se.addToHistory)===!1)return!t.changes.empty?e.addMapping(t.changes.desc):e;let s=y.fromTransaction(t),c=t.annotation(se.time),a=t.annotation(se.userEvent);if(s)e=e.addChanges(s,c,a,n,t);else if(t.selection)e=e.addSelection(t.startState.selection,c,a,n.newGroupDelay);if(o=="full"||o=="after")e=e.isolate();return e},toJSON(e){return{done:e.done.map((t)=>t.toJSON()),undone:e.undone.map((t)=>t.toJSON())}},fromJSON(e){return new D(e.done.map(y.fromJSON),e.undone.map(y.fromJSON))}});function tt(e={}){return[et,Ze.of(e),b.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?X:t.inputType=="historyRedo"?z:null;if(!r)return!1;return t.preventDefault(),r(n)}})]}function j(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let o=n.field(et,!1);if(!o)return!1;let s=o.pop(e,n,t);if(!s)return!1;return r(s),!0}}var X=j(0,!1),z=j(1,!1),fn=j(0,!0),dn=j(1,!0);class y{constructor(e,t,n,r,o){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=o}setSelAfter(e){return new y(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((r)=>r.toJSON())}}static fromJSON(e){return new y(e.changes&&ge.fromJSON(e.changes),[],e.mapped&&ft.fromJSON(e.mapped),e.startSelection&&l.fromJSON(e.startSelection),e.selectionsAfter.map(l.fromJSON))}static fromTransaction(e,t){let n=k;for(let r of e.startState.facet(hn)){let o=r(e);if(o.length)n=n.concat(o)}if(!n.length&&e.changes.empty)return null;return new y(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,k)}static selection(e){return new y(void 0,k,void 0,void 0,e)}}function Q(e,t,n,r){let o=t+1>n+20?t-n-1:0,s=e.slice(o,t);return s.push(r),s}function mn(e,t){let n=[],r=!1;return e.iterChangedRanges((o,s)=>n.push(o,s)),t.iterChangedRanges((o,s,c,a)=>{for(let u=0;u<n.length;){let d=n[u++],f=n[u++];if(a>=d&&c<=f)r=!0}}),r}function pn(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function nt(e,t){return!e.length?t:!t.length?e:e.concat(t)}var k=[],gn=200;function rt(e,t){if(!e.length)return[y.selection([t])];else{let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-gn));if(r.length&&r[r.length-1].eq(t))return e;return r.push(t),Q(e,e.length-1,1e9,n.setSelAfter(r))}}function yn(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function ye(e,t){if(!e.length)return e;let n=e.length,r=k;while(n){let o=xn(e[n-1],t,r);if(o.changes&&!o.changes.empty||o.effects.length){let s=e.slice(0,n);return s[n-1]=o,s}else t=o.mapped,n--,r=o.selectionsAfter}return r.length?[y.selection(r)]:k}function xn(e,t,n){let r=nt(e.selectionsAfter.length?e.selectionsAfter.map((a)=>a.map(t)):k,n);if(!e.changes)return y.selection(r);let o=e.changes.map(t),s=t.mapDesc(e.changes,!0),c=e.mapped?e.mapped.composeDesc(s):s;return new y(o,F.mapEffects(e.effects,t),c,e.startSelection.map(s),r)}var Sn=/^(input\.type|delete)($|\.)/;class D{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new D(this.done,this.undone):this}addChanges(e,t,n,r,o){let s=this.done,c=s[s.length-1];if(c&&c.changes&&!c.changes.empty&&e.changes&&(!n||Sn.test(n))&&(!c.selectionsAfter.length&&t-this.prevTime<r.newGroupDelay&&r.joinToEvent(o,mn(c.changes,e.changes))||n=="input.type.compose"))s=Q(s,s.length-1,r.minDepth,new y(e.changes.compose(c.changes),nt(F.mapEffects(e.effects,c.changes),c.effects),c.mapped,c.startSelection,k));else s=Q(s,s.length,r.minDepth,e);return new D(s,k,t,n)}addSelection(e,t,n,r){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:k;if(o.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&pn(o[o.length-1],e))return this;return new D(rt(this.done,e),this.undone,t,n)}addMapping(e){return new D(ye(this.done,e),ye(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let o=r[r.length-1],s=o.selectionsAfter[0]||(o.startSelection?o.startSelection.map(o.changes.invertedDesc,1):t.selection);if(n&&o.selectionsAfter.length)return t.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:xe.of({side:e,rest:yn(r),selection:s}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});else if(!o.changes)return null;else{let c=r.length==1?k:r.slice(0,r.length-1);if(o.mapped)c=ye(c,o.mapped);return t.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:xe.of({side:e,rest:c,selection:s}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}}}D.empty=new D(k,k);var ot=[{key:"Mod-z",run:X,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:z,preventDefault:!0},{linux:"Ctrl-Shift-z",run:z,preventDefault:!0},{key:"Mod-u",run:fn,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:dn,preventDefault:!0}];function I(e,t){return l.create(e.ranges.map(t),e.mainIndex)}function L(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function B({state:e,dispatch:t},n){let r=I(e.selection,n);if(r.eq(e.selection,!0))return!1;return t(L(e,r)),!0}function Y(e,t){return l.cursor(t?e.to:e.from)}function lt(e,t){return B(e,(n)=>n.empty?e.moveByChar(n,t):Y(n,t))}function g(e){return e.textDirectionAt(e.state.selection.main.head)==ie.LTR}var it=(e)=>lt(e,!g(e)),st=(e)=>lt(e,g(e));function ct(e,t){return B(e,(n)=>n.empty?e.moveByGroup(n,t):Y(n,t))}var kn=(e)=>ct(e,!g(e)),vn=(e)=>ct(e,g(e));var Kr=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function bn(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function Z(e,t,n){let r=A(e).resolveInner(t.head),o=n?T.closedBy:T.openedBy;for(let u=t.head;;){let d=n?r.childAfter(u):r.childBefore(u);if(!d)break;if(bn(e,d,o))r=d;else u=n?d.to:d.from}let s=r.type.prop(o),c,a;if(s&&(c=n?pt(e,r.from,1):pt(e,r.to,-1))&&c.matched)a=n?c.end.to:c.end.from;else a=n?r.to:r.from;return l.cursor(a,n?-1:1)}var Cn=(e)=>B(e,(t)=>Z(e.state,t,!g(e))),Mn=(e)=>B(e,(t)=>Z(e.state,t,g(e)));function at(e,t){return B(e,(n)=>{if(!n.empty)return Y(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}var ut=(e)=>at(e,!1),ht=(e)=>at(e,!0);function dt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,o;if(t){for(let s of e.state.facet(b.scrollMargins)){let c=s(e);if(c===null||c===void 0?void 0:c.top)n=Math.max(c===null||c===void 0?void 0:c.top,n);if(c===null||c===void 0?void 0:c.bottom)r=Math.max(c===null||c===void 0?void 0:c.bottom,r)}o=e.scrollDOM.clientHeight-n-r}else o=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,o-5)}}function mt(e,t){let n=dt(e),{state:r}=e,o=I(r.selection,(c)=>c.empty?e.moveVertically(c,t,n.height):Y(c,t));if(o.eq(r.selection))return!1;let s;if(n.selfScroll){let c=e.coordsAtPos(r.selection.main.head),a=e.scrollDOM.getBoundingClientRect(),u=a.top+n.marginTop,d=a.bottom-n.marginBottom;if(c&&c.top>u&&c.bottom<d)s=b.scrollIntoView(o.main.head,{y:"start",yMargin:c.top-u})}return e.dispatch(L(r,o),{effects:s}),!0}var Ue=(e)=>mt(e,!1),Se=(e)=>mt(e,!0);function w(e,t,n){let r=e.lineBlockAt(t.head),o=e.moveToLineBoundary(t,n);if(o.head==t.head&&o.head!=(n?r.to:r.from))o=e.moveToLineBoundary(t,n,!1);if(!n&&o.head==r.from&&r.length){let s=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;if(s&&t.head!=r.from+s)o=l.cursor(r.from+s)}return o}var An=(e)=>B(e,(t)=>w(e,t,!0)),Ln=(e)=>B(e,(t)=>w(e,t,!1)),Bn=(e)=>B(e,(t)=>w(e,t,!g(e))),Dn=(e)=>B(e,(t)=>w(e,t,g(e))),En=(e)=>B(e,(t)=>e.moveToLineBoundary(t,!1,!1)),wn=(e)=>B(e,(t)=>e.moveToLineBoundary(t,!0,!1));function Wn(e,t,n){let r=!1,o=I(e.selection,(s)=>{let c=pt(e,s.head,-1)||pt(e,s.head,1)||s.head>0&&pt(e,s.head-1,1)||s.head<e.doc.length&&pt(e,s.head+1,-1);if(!c||!c.end)return s;r=!0;let a=c.start.from==s.head?c.end.to:c.end.from;return n?l.range(s.anchor,a):l.cursor(a)});if(!r)return!1;return t(L(e,o)),!0}var Rn=({state:e,dispatch:t})=>Wn(e,t,!1);function v(e,t,n){let r=I(e.state.selection,(o)=>{if(o.undirectional&&o.head>=o.anchor!=t)o=l.range(o.head,o.anchor);let s=n(o);return l.range(o.anchor,s.head,s.goalColumn,s.bidiLevel||void 0,s.assoc)});if(r.eq(e.state.selection))return!1;return e.dispatch(L(e.state,r)),!0}function gt(e,t){return v(e,t,(n)=>e.moveByChar(n,t))}var xt=(e)=>gt(e,!g(e)),St=(e)=>gt(e,g(e));function vt(e,t){return v(e,t,(n)=>e.moveByGroup(n,t))}var On=(e)=>vt(e,!g(e)),Fn=(e)=>vt(e,g(e));var In=(e)=>{let t=!g(e);return v(e,t,(n)=>Z(e.state,n,t))},Nn=(e)=>{let t=g(e);return v(e,t,(n)=>Z(e.state,n,t))};function Ct(e,t){return v(e,t,(n)=>e.moveVertically(n,t))}var Mt=(e)=>Ct(e,!1),At=(e)=>Ct(e,!0);function Lt(e,t){return v(e,t,(n)=>e.moveVertically(n,t,dt(e).height))}var _e=(e)=>Lt(e,!1),$e=(e)=>Lt(e,!0),qn=(e)=>v(e,!0,(t)=>w(e,t,!0)),Vn=(e)=>v(e,!1,(t)=>w(e,t,!1)),Gn=(e)=>{let t=!g(e);return v(e,t,(n)=>w(e,n,t))},Un=(e)=>{let t=g(e);return v(e,t,(n)=>w(e,n,t))},zn=(e)=>v(e,!1,(t)=>l.cursor(e.lineBlockAt(t.head).from)),_n=(e)=>v(e,!0,(t)=>l.cursor(e.lineBlockAt(t.head).to)),Ke=({state:e,dispatch:t})=>(t(L(e,{anchor:0})),!0),He=({state:e,dispatch:t})=>(t(L(e,{anchor:e.doc.length})),!0),Qe=({state:e,dispatch:t})=>(t(L(e,{anchor:e.selection.main.anchor,head:0})),!0),je=({state:e,dispatch:t})=>(t(L(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Jn=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),$n=({state:e,dispatch:t})=>{let n=ee(e).map(({from:r,to:o})=>l.undirectionalRange(r,Math.min(o+1,e.doc.length)));return t(e.update({selection:l.create(n),userEvent:"select"})),!0},Kn=({state:e,dispatch:t})=>{let n=I(e.selection,(r)=>{let o=A(e),s=o.resolveStack(r.from,1);if(r.empty){let c=o.resolveStack(r.from,-1);if(c.node.from>=s.node.from&&c.node.to<=s.node.to)s=c}for(let c=s;c;c=c.next){let{node:a}=c;if((a.from<r.from&&a.to>=r.to||a.to>r.to&&a.from<=r.from)&&c.next)return l.undirectionalRange(a.from,a.to)}return r});if(n.eq(e.selection))return!1;return t(L(e,n)),!0};function Bt(e,t){let{state:n}=e,r=n.selection,o=n.selection.ranges.slice();for(let s of n.selection.ranges){let c=n.doc.lineAt(s.head);if(t?c.to<e.state.doc.length:c.from>0)for(let a=s;;){let u=e.moveVertically(a,t);if(u.head<c.from||u.head>c.to){if(!o.some((d)=>d.head==u.head))o.push(u);break}else if(u.head==a.head)break;else a=u}}if(o.length==r.ranges.length)return!1;return e.dispatch(L(n,l.create(o,o.length-1))),!0}var Qn=(e)=>Bt(e,!1),jn=(e)=>Bt(e,!0),Xn=({state:e,dispatch:t})=>{let n=e.selection,r=null;if(n.ranges.length>1)r=l.create([n.main]);else if(!n.main.empty)r=l.create([l.cursor(n.main.head)]);if(!r)return!1;return t(L(e,r)),!0};function _(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:r}=e,o=r.changeByRange((s)=>{let{from:c,to:a}=s;if(c==a){let u=t(s);if(u<c)n="delete.backward",u=H(e,u,!1);else if(u>c)n="delete.forward",u=H(e,u,!0);c=Math.min(c,u),a=Math.max(a,u)}else c=H(e,c,!1),a=H(e,a,!0);return c==a?{range:s}:{changes:{from:c,to:a},range:l.cursor(c,c<s.head?-1:1)}});if(o.changes.empty)return!1;return e.dispatch(r.update(o,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?b.announce.of(r.phrase("Selection deleted")):void 0})),!0}function H(e,t,n){if(e instanceof b)for(let r of e.state.facet(b.atomicRanges).map((o)=>o(e)))r.between(t,t,(o,s)=>{if(o<t&&s>t)t=n?s:o});return t}var Et=(e,t,n)=>_(e,(r)=>{let o=r.from,{state:s}=e,c=s.doc.lineAt(o),a,u;if(n&&!t&&o>c.from&&o<c.from+200&&!/[^ \t]/.test(a=c.text.slice(0,o-c.from))){if(a[a.length-1]=="\t")return o-1;let d=De(a,s.tabSize),f=d%Dt(s)||Dt(s);for(let m=0;m<f&&a[a.length-1-m]==" ";m++)o--;u=o}else if(u=me(c.text,o-c.from,t,t)+c.from,u==o&&c.number!=(t?s.doc.lines:1))u+=t?1:-1;else if(!t&&/[\ufe00-\ufe0f]/.test(c.text.slice(u-c.from,o-c.from)))u=me(c.text,u-c.from,!1,!1)+c.from;return u}),ke=(e)=>Et(e,!1,!0);var Tt=(e)=>Et(e,!0,!1),wt=(e,t)=>_(e,(n)=>{let r=n.head,{state:o}=e,s=o.doc.lineAt(r),c=o.charCategorizer(r);for(let a=null;;){if(r==(t?s.to:s.from)){if(r==n.head&&s.number!=(t?o.doc.lines:1))r+=t?1:-1;break}let u=me(s.text,r-s.from,t)+s.from,d=s.text.slice(Math.min(r,u)-s.from,Math.max(r,u)-s.from),f=c(d);if(a!=null&&f!=a)break;if(d!=" "||r!=n.head)a=f;r=u}return r}),Wt=(e)=>wt(e,!1),Yn=(e)=>wt(e,!0);var er=(e)=>_(e,(t)=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)});var tr=(e)=>_(e,(t)=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),nr=(e)=>_(e,(t)=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)});var rr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((r)=>({changes:{from:r.from,to:r.to,insert:q.of(["",""])},range:l.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},or=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((r)=>{if(!r.empty||r.from==0||r.from==e.doc.length)return{range:r};let o=r.from,s=e.doc.lineAt(o),c=o==s.from?o-1:me(s.text,o-s.from,!1)+s.from,a=o==s.to?o+1:me(s.text,o-s.from,!0)+s.from;return{changes:{from:c,to:a,insert:e.doc.slice(o,a).append(e.doc.slice(c,o))},range:l.cursor(a)}});if(n.changes.empty)return!1;return t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0};function ee(e){let t=[],n=-1;for(let r of e.selection.ranges){let o=e.doc.lineAt(r.from),s=e.doc.lineAt(r.to);if(!r.empty&&r.to==s.from)s=e.doc.lineAt(r.to-1);if(n>=o.number){let c=t[t.length-1];c.to=s.to,c.ranges.push(r)}else t.push({from:o.from,to:s.to,ranges:[r]});n=s.number+1}return t}function Rt(e,t,n){if(e.readOnly)return!1;let r=[],o=[];for(let s of ee(e)){if(n?s.to==e.doc.length:s.from==0)continue;let c=e.doc.lineAt(n?s.to+1:s.from-1),a=c.length+1;if(n){r.push({from:s.to,to:c.to},{from:s.from,insert:c.text+e.lineBreak});for(let u of s.ranges)o.push(l.range(Math.min(e.doc.length,u.anchor+a),Math.min(e.doc.length,u.head+a)))}else{r.push({from:c.from,to:s.from},{from:s.to,insert:e.lineBreak+c.text});for(let u of s.ranges)o.push(l.range(u.anchor-a,u.head-a))}}if(!r.length)return!1;return t(e.update({changes:r,scrollIntoView:!0,selection:l.create(o,e.selection.mainIndex),userEvent:"move.line"})),!0}var lr=({state:e,dispatch:t})=>Rt(e,t,!1),ir=({state:e,dispatch:t})=>Rt(e,t,!0);function Ot(e,t,n){if(e.readOnly)return!1;let r=[];for(let s of ee(e))if(n)r.push({from:s.from,insert:e.doc.slice(s.from,s.to)+e.lineBreak});else r.push({from:s.to,insert:e.lineBreak+e.doc.slice(s.from,s.to)});let o=e.changes(r);return t(e.update({changes:o,selection:e.selection.map(o,n?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}var sr=({state:e,dispatch:t})=>Ot(e,t,!1),cr=({state:e,dispatch:t})=>Ot(e,t,!0),ur=(e)=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(ee(t).map(({from:o,to:s})=>{if(o>0)o--;else if(s<t.doc.length)s++;return{from:o,to:s}})),r=I(t.selection,(o)=>{let s=void 0;if(e.lineWrapping){let c=e.lineBlockAt(o.head),a=e.coordsAtPos(o.head,o.assoc||1);if(a)s=c.bottom+e.documentTop-a.bottom+e.defaultLineHeight/2}return e.moveVertically(o,!0,s)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0};function hr(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=A(e).resolveInner(t),r=n.childBefore(t),o=n.childAfter(t),s;if(r&&o&&r.to<=t&&o.from>=t&&(s=r.type.prop(T.closedBy))&&s.indexOf(o.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(o.from).from&&!/\S/.test(e.sliceDoc(r.to,o.from)))return{from:r.to,to:o.from};return null}var Xe=Ft(!1),fr=Ft(!0);function Ft(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange((o)=>{let{from:s,to:c}=o,a=t.doc.lineAt(s),u=!e&&s==c&&hr(t,s);if(e)s=c=(c<=a.to?a:t.doc.lineAt(c)).to;let d=new Tn(t,{simulateBreak:s,simulateDoubleBreak:!!u}),f=ar(d,s);if(f==null)f=De(/^\s*/.exec(t.doc.lineAt(s).text)[0],t.tabSize);while(c<a.to&&/\s/.test(a.text[c-a.from]))c++;if(u)({from:s,to:c}=u);else if(s>a.from&&s<a.from+100&&!/\S/.test(a.text.slice(0,s)))s=a.from;let m=["",Hn(t,f)];if(u)m.push(Hn(t,d.lineIndent(a.from,-1)));return{changes:{from:s,to:c,insert:q.of(m)},range:l.cursor(s+1+m[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function Ce(e,t){let n=-1;return e.changeByRange((r)=>{let o=[];for(let c=r.from;c<=r.to;){let a=e.doc.lineAt(c);if(a.number>n&&(r.empty||r.to>a.from))t(a,o,r),n=a.number;c=a.to+1}let s=e.changes(o);return{changes:o,range:l.range(s.mapPos(r.anchor,1),s.mapPos(r.head,1))}})}var dr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new Tn(e,{overrideIndentation:(s)=>{let c=n[s];return c==null?-1:c}}),o=Ce(e,(s,c,a)=>{let u=ar(r,s.from);if(u==null)return;if(!/\S/.test(s.text))u=0;let d=/^\s*/.exec(s.text)[0],f=Hn(e,u);if(d!=f||a.from<s.from+d.length)n[s.from]=u,c.push({from:s.from,to:s.from+d.length,insert:f})});if(!o.changes.empty)t(e.update(o,{userEvent:"indent"}));return!0},te=({state:e,dispatch:t})=>{if(e.readOnly)return!1;return t(e.update(Ce(e,(n,r)=>{r.push({from:n.from,insert:e.facet(Je)})}),{userEvent:"input.indent"})),!0},It=({state:e,dispatch:t})=>{if(e.readOnly)return!1;return t(e.update(Ce(e,(n,r)=>{let o=/^\s*/.exec(n.text)[0];if(!o)return;let s=De(o,e.tabSize),c=0,a=Hn(e,Math.max(0,s-Dt(e)));while(c<o.length&&c<a.length&&o.charCodeAt(c)==a.charCodeAt(c))c++;r.push({from:n.from+c,to:n.from+o.length,insert:a.slice(c)})}),{userEvent:"delete.dedent"})),!0},mr=(e)=>(e.setTabFocusMode(),!0);var pr=[{key:"Ctrl-b",run:it,shift:xt,preventDefault:!0},{key:"Ctrl-f",run:st,shift:St},{key:"Ctrl-p",run:ut,shift:Mt},{key:"Ctrl-n",run:ht,shift:At},{key:"Ctrl-a",run:En,shift:zn},{key:"Ctrl-e",run:wn,shift:_n},{key:"Ctrl-d",run:Tt},{key:"Ctrl-h",run:ke},{key:"Ctrl-k",run:er},{key:"Ctrl-Alt-h",run:Wt},{key:"Ctrl-o",run:rr},{key:"Ctrl-t",run:or},{key:"Ctrl-v",run:Se}],gr=[{key:"ArrowLeft",run:it,shift:xt,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:kn,shift:On,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:Bn,shift:Gn,preventDefault:!0},{key:"ArrowRight",run:st,shift:St,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:vn,shift:Fn,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Dn,shift:Un,preventDefault:!0},{key:"ArrowUp",run:ut,shift:Mt,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Ke,shift:Qe},{mac:"Ctrl-ArrowUp",run:Ue,shift:_e},{key:"ArrowDown",run:ht,shift:At,preventDefault:!0},{mac:"Cmd-ArrowDown",run:He,shift:je},{mac:"Ctrl-ArrowDown",run:Se,shift:$e},{key:"PageUp",run:Ue,shift:_e},{key:"PageDown",run:Se,shift:$e},{key:"Home",run:Ln,shift:Vn,preventDefault:!0},{key:"Mod-Home",run:Ke,shift:Qe},{key:"End",run:An,shift:qn,preventDefault:!0},{key:"Mod-End",run:He,shift:je},{key:"Enter",run:Xe,shift:Xe},{key:"Mod-a",run:Jn},{key:"Backspace",run:ke,shift:ke,preventDefault:!0},{key:"Delete",run:Tt,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Wt,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:Yn,preventDefault:!0},{mac:"Mod-Backspace",run:tr,preventDefault:!0},{mac:"Mod-Delete",run:nr,preventDefault:!0}].concat(pr.map((e)=>({mac:e.key,run:e.run,shift:e.shift}))),Pt=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Cn,shift:In},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Mn,shift:Nn},{key:"Alt-ArrowUp",run:lr},{key:"Shift-Alt-ArrowUp",run:sr},{key:"Alt-ArrowDown",run:ir},{key:"Shift-Alt-ArrowDown",run:cr},{key:"Mod-Alt-ArrowUp",run:Qn},{key:"Mod-Alt-ArrowDown",run:jn},{key:"Escape",run:Xn},{key:"Mod-Enter",run:fr},{key:"Alt-l",mac:"Ctrl-l",run:$n},{key:"Mod-i",run:Kn,preventDefault:!0},{key:"Mod-[",run:It},{key:"Mod-]",run:te},{key:"Mod-Alt-\\",run:dr},{key:"Shift-Mod-k",run:ur},{key:"Shift-Mod-\\",run:Rn},{key:"Mod-/",run:nn},{key:"Alt-A",mac:"Ctrl-A",run:on},{key:"Ctrl-m",mac:"Shift-Alt-m",run:mr}].concat(gr),Nt={key:"Tab",run:te,shift:It};var qt=typeof String.prototype.normalize=="function"?(e)=>e.normalize("NFKD"):(e)=>e;class R{constructor(e,t,n=0,r=e.length,o,s){this.test=s,this.value={from:0,to:0,precise:!1},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=o?(c)=>o(qt(c)):qt,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Pi(this.buffer,this.bufferPos)}next(){while(this.matches.length)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=so(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Qi(e);let r=this.normalize(t);if(r.length)for(let o=0,s=n,c=!0;;o++){let a=r.charCodeAt(o),u=this.match(a,s,c,this.bufferPos+this.bufferStart,o==r.length-1);if(u)return this.value=u,this;if(o==r.length-1)break;if(c&&o<t.length&&t.charCodeAt(o)==a)s++;else c=!1}}}match(e,t,n,r,o){let s=null;for(let c=0;c<this.matches.length;){let a=this.matches[c],u=!1;if(this.query.charCodeAt(a.index)==e)if(a.index==this.query.length-1)s={from:a.from,to:r,precise:o&&a.precise};else a.index++,u=!0;if(u)c++;else this.matches.splice(c,1)}if(this.query.charCodeAt(0)==e)if(this.query.length==1)s={from:t,to:r,precise:n&&o};else this.matches.push({from:t,index:1,precise:n});if(s&&this.test&&!this.test(s.from,s.to,this.buffer,this.bufferStart))s=null;return s}}if(typeof Symbol<"u")R.prototype[Symbol.iterator]=function(){return this};var Ut={from:-1,to:-1,match:/.*/.exec(""),precise:!0},Be="gm"+(/x/.unicode==null?"":"u");class Ee{constructor(e,t,n,r=0,o=e.length){if(this.text=e,this.to=o,this.curLine="",this.done=!1,this.value=Ut,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Te(e,t,n,r,o);this.re=new RegExp(t,Be+((n===null||n===void 0?void 0:n.ignoreCase)?"i":"")),this.test=n===null||n===void 0?void 0:n.test,this.iter=e.iter();let s=e.lineAt(r);this.curLineStart=s.from,this.matchPos=le(e,r),this.getLine(this.curLineStart)}getLine(e){if(this.iter.next(e),this.iter.lineBreak)this.curLine="";else{if(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to)this.curLine=this.curLine.slice(0,this.to-this.curLineStart);this.iter.next()}}nextLine(){if(this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to)this.curLine="";else this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=le(this.text,r+(n==r?1:0)),n==this.curLineStart+this.curLine.length)this.nextLine();if((n<r||n>this.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,precise:!0,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}var Me=new WeakMap;class V{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let r=Me.get(e);if(!r||r.from>=n||r.to<=t){let c=new V(t,e.sliceString(t,n));return Me.set(e,c),c}if(r.from==t&&r.to==n)return r;let{text:o,from:s}=r;if(s>t)o=e.sliceString(t,s)+o,s=t;if(r.to<n)o+=e.sliceString(r.to,n);return Me.set(e,new V(s,o)),new V(t,o.slice(t-s,n-s))}}class Te{constructor(e,t,n,r,o){this.text=e,this.to=o,this.done=!1,this.value=Ut,this.matchPos=le(e,r),this.re=new RegExp(t,Be+((n===null||n===void 0?void 0:n.ignoreCase)?"i":"")),this.test=n===null||n===void 0?void 0:n.test,this.flat=V.get(e,r,this.chunkEnd(r+5000))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e)this.re.lastIndex=e+1,t=this.re.exec(this.flat.text);if(t){let n=this.flat.from+t.index,r=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,precise:!0,match:t},this.matchPos=le(this.text,r+(n==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=V.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}if(typeof Symbol<"u")Ee.prototype[Symbol.iterator]=Te.prototype[Symbol.iterator]=function(){return this};function yr(e){try{return new RegExp(e,Be),!0}catch(t){return!1}}function le(e,t){if(t>=e.length)return t;let n=e.lineAt(t),r;while(t<n.to&&(r=n.text.charCodeAt(t-n.from))>=56320&&r<57344)t++;return t}var xr=(e)=>{let t=fo(e,"cm-goto-line");if(t){let c=t.dom.querySelector("input[type=text]");if(c)c.select();return!0}let{state:n}=e,r=String(n.doc.lineAt(e.state.selection.main.head).number),{close:o,result:s}=uo(e,{class:"cm-goto-line",label:n.phrase("Go to line"),input:{type:"text",name:"line",value:r},focus:!0,submitLabel:n.phrase("go")});return s.then((c)=>{let a=c&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(c.elements.line.value);if(!a){e.dispatch({effects:o});return}let u=n.doc.lineAt(n.selection.main.head),[,d,f,m,p]=a,E=m?+m.slice(1):0,M=f?+f:u.number;if(f&&p){let pe=M/100;if(d)pe=pe*(d=="-"?-1:1)+u.number/n.doc.lines;M=Math.round(n.doc.lines*pe)}else if(f&&d)M=M*(d=="-"?-1:1)+u.number;let Ve=n.doc.line(Math.max(1,Math.min(n.doc.lines,M))),Ge=l.cursor(Ve.from+Math.max(0,Math.min(E,Ve.length)));e.dispatch({effects:[o,b.scrollIntoView(Ge.from,{y:"center"})],selection:Ge})}),!0},Sr={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},zt=x.define({combine(e){return yt(e,Sr,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function _t(e){let t=[Mr,Cr];if(e)t.push(zt.of(e));return t}var kr=C.mark({class:"cm-selectionMatch"}),vr=C.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Vt(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=ae.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=ae.Word)}function br(e,t,n,r){return e(t.sliceDoc(n,n+1))==ae.Word&&e(t.sliceDoc(r-1,r))==ae.Word}var Cr=Pe.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){if(e.selectionSet||e.docChanged||e.viewportChanged)this.decorations=this.getDeco(e.view)}getDeco(e){let t=e.state.facet(zt),{state:n}=e,r=n.selection;if(r.ranges.length>1)return C.none;let o=r.main,s,c=null;if(o.empty){if(!t.highlightWordAroundCursor)return C.none;let u=n.wordAt(o.head);if(!u)return C.none;c=n.charCategorizer(o.head),s=n.sliceDoc(u.from,u.to)}else{let u=o.to-o.from;if(u<t.minSelectionLength||u>200)return C.none;if(t.wholeWords){if(s=n.sliceDoc(o.from,o.to),c=n.charCategorizer(o.head),!(Vt(c,n,o.from,o.to)&&br(c,n,o.from,o.to)))return C.none}else if(s=n.sliceDoc(o.from,o.to),!s)return C.none}let a=[];for(let u of e.visibleRanges){let d=new R(n.doc,s,u.from,u.to);while(!d.next().done){let{from:f,to:m}=d.value;if(!c||Vt(c,n,f,m)){if(o.empty&&f<=o.from&&m>=o.to)a.push(vr.range(f,m));else if(f>=o.to||m<=o.from)a.push(kr.range(f,m));if(a.length>t.maxMatches)return C.none}}}return C.set(a)}},{decorations:(e)=>e.decorations}),Mr=b.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Ar=({state:e,dispatch:t})=>{let{selection:n}=e,r=l.create(n.ranges.map((o)=>e.wordAt(o.head)||l.cursor(o.head)),n.mainIndex);if(r.eq(n))return!1;return t(e.update({selection:r})),!0};function Lr(e,t){let{main:n,ranges:r}=e.selection,o=e.wordAt(n.head),s=o&&o.from==n.from&&o.to==n.to;for(let c=!1,a=new R(e.doc,t,r[r.length-1].to);;)if(a.next(),a.done){if(c)return null;a=new R(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),c=!0}else{if(c&&r.some((u)=>u.from==a.value.from))continue;if(s){let u=e.wordAt(a.value.from);if(!u||u.from!=a.value.from||u.to!=a.value.to)continue}return a.value}}var Br=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some((s)=>s.from===s.to))return Ar({state:e,dispatch:t});let r=e.sliceDoc(n[0].from,n[0].to);if(e.selection.ranges.some((s)=>e.sliceDoc(s.from,s.to)!=r))return!1;let o=Lr(e,r);if(!o)return!1;return t(e.update({selection:e.selection.addRange(l.range(o.from,o.to),!1),effects:b.scrollIntoView(o.to)})),!0},O=x.define({combine(e){return yt(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:(t)=>new Zt(t),scrollToMatch:(t)=>b.scrollIntoView(t)})}});function Jt(e){return e?[O.of(e),Le]:Le}class We{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||yr(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
|
|
2
|
-
`:n=="r"?"\r":n=="t"?"\t":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new Kt(this):new $t(this)}getCursor(e,t=0,n){let r=e.doc?e:U.create({doc:e});if(n==null)n=r.doc.length;return this.regexp?N(this,r,t,n):P(this,r,t,n)}}class Re{constructor(e){this.spec=e}}function Dr(e,t,n){return(r,o,s,c)=>{if(n&&!n(r,o,s,c))return!1;let a=r>=c&&o<=c+s.length?s.slice(r-c,o-c):t.doc.sliceString(r,o);return e(a,t,r,o)}}function P(e,t,n,r){let o;if(e.wholeWord)o=Er(t.doc,t.charCategorizer(t.selection.main.head));if(e.test)o=Dr(e.test,t,o);return new R(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:(s)=>s.toLowerCase(),o)}function Er(e,t){return(n,r,o,s)=>{if(s>n||s+o.length<r)s=Math.max(0,n-2),o=e.sliceString(s,Math.min(e.length,r+2));return(t(ce(o,n-s))!=ae.Word||t(ue(o,n-s))!=ae.Word)&&(t(ue(o,r-s))!=ae.Word||t(ce(o,r-s))!=ae.Word)}}class $t extends Re{constructor(e){super(e)}nextMatch(e,t,n){let r=P(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let o=Math.min(e.doc.length,t+this.spec.unquoted.length);r=P(this.spec,e,0,o).nextOverlapping()}return r.done||r.value.from==t&&r.value.to==n?null:r.value}prevMatchInRange(e,t,n){for(let r=n;;){let o=Math.max(t,r-1e4-this.spec.unquoted.length),s=P(this.spec,e,o,r),c=null;while(!s.nextOverlapping().done)c=s.value;if(c)return c;if(o==t)return null;r-=1e4}}prevMatch(e,t,n){let r=this.prevMatchInRange(e,0,t);if(!r)r=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length);return r&&(r.from!=t||r.to!=n)?r:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=P(this.spec,e,0,e.doc.length),r=[];while(!n.next().done){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let o=P(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));while(!o.next().done)r(o.value.from,o.value.to)}}function Tr(e,t,n){return(r,o,s)=>(!n||n(r,o,s))&&e(s[0],t,r,o)}function N(e,t,n,r){let o;if(e.wholeWord)o=wr(t.charCategorizer(t.selection.main.head));if(e.test)o=Tr(e.test,t,o);return new Ee(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:o},n,r)}function ce(e,t){return e.slice(me(e,t,!1),t)}function ue(e,t){return e.slice(t,me(e,t))}function wr(e){return(t,n,r)=>!r[0].length||(e(ce(r.input,r.index))!=ae.Word||e(ue(r.input,r.index))!=ae.Word)&&(e(ue(r.input,r.index+r[0].length))!=ae.Word||e(ce(r.input,r.index+r[0].length))!=ae.Word)}class Kt extends Re{nextMatch(e,t,n){let r=N(this.spec,e,n,e.doc.length).next();if(r.done)r=N(this.spec,e,0,t).next();return r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let o=Math.max(t,n-r*1e4),s=N(this.spec,e,o,n),c=null;while(!s.next().done)c=s.value;if(c&&(o==t||c.from>o+10))return c;if(o==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let r=n.length;r>0;r--){let o=+n.slice(0,r);if(o>0&&o<e.match.length)return e.match[o]+n.slice(r)}return t})}matchAll(e,t){let n=N(this.spec,e,0,e.doc.length),r=[];while(!n.next().done){if(r.length>=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let o=N(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));while(!o.next().done)r(o.value.from,o.value.to)}}var J=F.define(),Fe=F.define(),W=we.define({create(e){return new oe(Ae(e).create(),null)},update(e,t){for(let n of t.effects)if(n.is(J))e=new oe(n.value.create(),e.panel);else if(n.is(Fe))e=new oe(e.query,n.value?Ne:null);return e},provide:(e)=>Zn.from(e,(t)=>t.panel)});class oe{constructor(e,t){this.query=e,this.panel=t}}var Wr=C.mark({class:"cm-searchMatch"}),Rr=C.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Or=Pe.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(W))}update(e){let t=e.state.field(W);if(t!=e.startState.field(W)||e.docChanged||e.selectionSet||e.viewportChanged)this.decorations=this.highlight(t)}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return C.none;let{view:n}=this,r=new bt;for(let o=0,s=n.visibleRanges,c=s.length;o<c;o++){let{from:a,to:u}=s[o];while(o<c-1&&u>s[o+1].from-500)u=s[++o].to;e.highlight(n.state,a,u,(d,f)=>{let m=n.state.selection.ranges.some((p)=>p.from==d&&p.to==f);r.add(d,f,m?Rr:Wr)})}return r.finish()}},{decorations:(e)=>e.decorations});function K(e){return(t)=>{let n=t.state.field(W,!1);return n&&n.query.spec.valid?e(t,n):de(t)}}var he=K((e,{query:t})=>{let{to:n}=e.state.selection.main,r=t.nextMatch(e.state,n,n);if(!r)return!1;let o=l.single(r.from,r.to),s=e.state.facet(O);return e.dispatch({selection:o,effects:[qe(e,r),s.scrollToMatch(o.main,e)],userEvent:"select.search"}),Qt(e),!0}),fe=K((e,{query:t})=>{let{state:n}=e,{from:r}=n.selection.main,o=t.prevMatch(n,r,r);if(!o)return!1;let s=l.single(o.from,o.to),c=e.state.facet(O);return e.dispatch({selection:s,effects:[qe(e,o),c.scrollToMatch(s.main,e)],userEvent:"select.search"}),Qt(e),!0}),Fr=K((e,{query:t})=>{let n=t.matchAll(e.state,1000);if(!n||!n.length)return!1;return e.dispatch({selection:l.create(n.map((r)=>l.range(r.from,r.to))),userEvent:"select.search.matches"}),!0}),Ir=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:r,to:o}=n.main,s=[],c=0;for(let a=new R(e.doc,e.sliceDoc(r,o));!a.next().done;){if(s.length>1000)return!1;if(a.value.from==r)c=s.length;s.push(l.range(a.value.from,a.value.to))}return t(e.update({selection:l.create(s,c),userEvent:"select.search.matches"})),!0},Gt=K((e,{query:t})=>{let{state:n}=e,{from:r,to:o}=n.selection.main;if(n.readOnly)return!1;let s=t.nextMatch(n,r,r);if(!s)return!1;let c=s,a=[],u,d,f=[];if(!c.precise)c=t.nextMatch(n,c.from,c.to);else if(c.from==r&&c.to==o)d=n.toText(t.getReplacement(c)),a.push({from:c.from,to:c.to,insert:d}),c=t.nextMatch(n,c.from,c.to),f.push(b.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."));let m=e.state.changes(a);if(c)u=l.single(c.from,c.to).map(m),f.push(qe(e,c)),f.push(n.facet(O).scrollToMatch(u.main,e));return e.dispatch({changes:m,selection:u,effects:f,userEvent:"input.replace"}),!0}),Pr=K((e,{query:t})=>{if(e.state.readOnly)return!1;let n=[];for(let o of t.matchAll(e.state,1e9)){let{from:s,to:c,precise:a}=o;if(a)n.push({from:s,to:c,insert:t.getReplacement(o)})}if(!n.length)return!1;let r=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:b.announce.of(r),userEvent:"input.replace.all"}),!0});function Ne(e){return e.state.facet(O).createPanel(e)}function Ae(e,t){var n,r,o,s,c;let a=e.selection.main,u=a.empty||a.to>a.from+100?"":e.sliceDoc(a.from,a.to);if(t&&!u)return t;let d=e.facet(O);return new We({search:((n=t===null||t===void 0?void 0:t.literal)!==null&&n!==void 0?n:d.literal)?u:u.replace(/\n/g,"\\n"),caseSensitive:(r=t===null||t===void 0?void 0:t.caseSensitive)!==null&&r!==void 0?r:d.caseSensitive,literal:(o=t===null||t===void 0?void 0:t.literal)!==null&&o!==void 0?o:d.literal,regexp:(s=t===null||t===void 0?void 0:t.regexp)!==null&&s!==void 0?s:d.regexp,wholeWord:(c=t===null||t===void 0?void 0:t.wholeWord)!==null&&c!==void 0?c:d.wholeWord})}function Ht(e){let t=Mi(e,Ne);return t&&t.dom.querySelector("[main-field]")}function Qt(e){let t=Ht(e);if(t&&t==e.root.activeElement)t.select()}var de=(e)=>{let t=e.state.field(W,!1);if(t&&t.panel){let n=Ht(e);if(n&&n!=e.root.activeElement){let r=Ae(e.state,t.query.spec);if(r.valid)e.dispatch({effects:J.of(r)});n.focus(),n.select()}}else e.dispatch({effects:[Fe.of(!0),t?J.of(Ae(e.state,t.query.spec)):F.appendConfig.of(Le)]});return!0},jt=(e)=>{let t=e.state.field(W,!1);if(!t||!t.panel)return!1;let n=Mi(e,Ne);if(n&&n.dom.contains(e.root.activeElement))e.focus();return e.dispatch({effects:Fe.of(!1)}),!0},Yt=[{key:"Mod-f",run:de,scope:"editor search-panel"},{key:"F3",run:he,shift:fe,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:he,shift:fe,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:jt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Ir},{key:"Mod-Alt-g",run:xr},{key:"Mod-d",run:Br,preventDefault:!0}];class Zt{constructor(e){this.view=e;let t=this.query=e.state.field(W).query.spec;this.commit=this.commit.bind(this),this.searchField=Oe("input",{value:t.search,placeholder:S(e,"Find"),"aria-label":S(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Oe("input",{value:t.replace,placeholder:S(e,"Replace"),"aria-label":S(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Oe("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Oe("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Oe("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(r,o,s){return Oe("button",{class:"cm-button",name:r,onclick:o,type:"button"},s)}this.dom=Oe("div",{onkeydown:(r)=>this.keydown(r),class:"cm-search"},[this.searchField,n("next",()=>he(e),[S(e,"next")]),n("prev",()=>fe(e),[S(e,"previous")]),n("select",()=>Fr(e),[S(e,"all")]),Oe("label",null,[this.caseField,S(e,"match case")]),Oe("label",null,[this.reField,S(e,"regexp")]),Oe("label",null,[this.wordField,S(e,"by word")]),...e.state.readOnly?[]:[Oe("br"),this.replaceField,n("replace",()=>Gt(e),[S(e,"replace")]),n("replaceAll",()=>Pr(e),[S(e,"replace all")])],Oe("button",{name:"close",onclick:()=>jt(e),"aria-label":S(e,"close"),type:"button"},["×"])])}commit(){let e=new We({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});if(!e.eq(this.query))this.query=e,this.view.dispatch({effects:J.of(e)})}keydown(e){if(ao(this.view,e,"search-panel"))e.preventDefault();else if(e.keyCode==13&&e.target==this.searchField)e.preventDefault(),(e.shiftKey?fe:he)(this.view);else if(e.keyCode==13&&e.target==this.replaceField)e.preventDefault(),Gt(this.view)}update(e){for(let t of e.transactions)for(let n of t.effects)if(n.is(J)&&!n.value.eq(this.query))this.setQuery(n.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(O).top}}function S(e,t){return e.state.phrase(t)}var ne=30,re=/[\s\.,:;?!]/;function qe(e,{from:t,to:n}){let r=e.state.doc.lineAt(t),o=e.state.doc.lineAt(n).to,s=Math.max(r.from,t-ne),c=Math.min(o,n+ne),a=e.state.sliceDoc(s,c);if(s!=r.from){for(let u=0;u<ne;u++)if(!re.test(a[u+1])&&re.test(a[u])){a=a.slice(u);break}}if(c!=o){for(let u=a.length-1;u>a.length-ne;u--)if(!re.test(a[u-1])&&re.test(a[u])){a=a.slice(0,u);break}}return b.announce.of(`${e.state.phrase("current match")}. ${a} ${e.state.phrase("on line")} ${r.number}.`)}var Nr=b.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Le=[W,ze.low(Or),Nr];var qr=b.theme({"&":{color:"var(--code-fg)",backgroundColor:"var(--code-bg)",height:"100%",fontSize:"var(--code-size, 13px)"},"&.cm-focused":{outline:"none"},".cm-scroller":{fontFamily:"var(--font-mono)",lineHeight:"1.55",overflow:"auto"},".cm-content":{caretColor:"var(--code-fg)",padding:"0.5rem 0"},".cm-line":{padding:"0 0.75rem"},".cm-cursor, .cm-dropCursor":{borderLeftColor:"var(--code-fg)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"var(--code-selection)"},".cm-activeLine":{backgroundColor:"var(--code-active-line)"},".cm-gutters":{backgroundColor:"var(--code-gutter-bg)",color:"var(--code-gutter)",border:"none",borderRight:"1px solid var(--border)"},".cm-activeLineGutter":{backgroundColor:"var(--code-active-line)",color:"var(--code-fg)"},".cm-lineNumbers .cm-gutterElement":{padding:"0 0.5rem 0 0.5rem",minWidth:"2.25rem"},".cm-matchingBracket, .cm-nonmatchingBracket":{backgroundColor:"var(--code-selection)",outline:"1px solid var(--border-strong)"},".cm-searchMatch":{backgroundColor:"var(--warn-soft)",outline:"1px solid var(--warn)"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"var(--accent-soft)",outline:"1px solid var(--accent)"},".cm-panels":{backgroundColor:"var(--surface-2)",color:"var(--text)",borderColor:"var(--border)",fontFamily:"var(--font)"},".cm-panels-top":{borderBottom:"1px solid var(--border)"},".cm-panel.cm-search":{padding:"0.5rem 2rem 0.5rem 0.5rem"},".cm-panel.cm-search input, .cm-panel.cm-search button, .cm-panel.cm-search label":{fontSize:"0.875rem"},".cm-panel.cm-search input[type=text]":{backgroundColor:"var(--surface)",color:"var(--text)",border:"1px solid var(--control-border)",borderRadius:"var(--radius-sm)",padding:"0.25rem 0.5rem"},".cm-panel.cm-search button":{backgroundColor:"var(--surface-3)",color:"var(--text)",border:"1px solid var(--border-strong)",borderRadius:"var(--radius-sm)",backgroundImage:"none",padding:"0.25rem 0.625rem"},".cm-panel.cm-search [name=close]":{color:"var(--muted)"}}),Vr=Pn.define([{tag:[i.keyword,i.modifier,i.operatorKeyword,i.controlKeyword],color:"var(--code-keyword)"},{tag:[i.string,i.regexp,i.special(i.string),i.inserted],color:"var(--code-string)"},{tag:[i.number,i.bool,i.null,i.atom,i.literal],color:"var(--code-number)"},{tag:[i.comment,i.lineComment,i.blockComment,i.docComment],color:"var(--code-comment)",fontStyle:"italic"},{tag:[i.typeName,i.className,i.namespace,i.tagName,i.standard(i.tagName)],color:"var(--code-type)"},{tag:[i.function(i.variableName),i.function(i.propertyName),i.definition(i.variableName),i.labelName],color:"var(--code-function)"},{tag:[i.meta,i.processingInstruction,i.annotation,i.attributeName,i.propertyName,i.heading],color:"var(--code-meta)"},{tag:i.heading,fontWeight:"bold"},{tag:i.strong,fontWeight:"bold"},{tag:i.emphasis,fontStyle:"italic"},{tag:i.strikethrough,textDecoration:"line-through"},{tag:i.link,color:"var(--code-function)",textDecoration:"underline"},{tag:i.url,color:"var(--code-function)"},{tag:i.invalid,color:"var(--danger)"},{tag:i.deleted,color:"var(--danger)"}]),en=[qr,Oo(Vr)];var Gr={typescript:()=>(h("y5w4tt4g"),import("./chunk-lang-typescript-y5w4tt4g.js")),javascript:()=>(h("1r6wd177"),import("./chunk-lang-javascript-1r6wd177.js")),json:()=>(h("dx56g11y"),import("./chunk-lang-json-dx56g11y.js")),markdown:()=>(h("fpcf2dfq"),import("./chunk-lang-markdown-fpcf2dfq.js")),css:()=>(h("y9133ktr"),import("./chunk-lang-css-y9133ktr.js")),html:()=>(h("r2xmryek"),import("./chunk-lang-html-r2xmryek.js")),python:()=>(h("zzp95955"),import("./chunk-lang-python-zzp95955.js")),yaml:()=>(h("jh56t3sv"),import("./chunk-lang-yaml-jh56t3sv.js")),go:()=>(h("yy6kgsxv"),import("./chunk-lang-go-yy6kgsxv.js")),rust:()=>(h("214fh7sp"),import("./chunk-lang-rust-214fh7sp.js")),sql:()=>(h("vvp46hpj"),import("./chunk-lang-sql-vvp46hpj.js")),xml:()=>(h("tbcqmedk"),import("./chunk-lang-xml-tbcqmedk.js")),shell:()=>(h("1rpgtepw"),import("./chunk-lang-shell-1rpgtepw.js")),toml:()=>(h("tbj7467c"),import("./chunk-lang-toml-tbj7467c.js")),dockerfile:()=>(h("cnwqn660"),import("./chunk-lang-dockerfile-cnwqn660.js"))};async function tn(e){if(e==="plain")return;try{return(await Gr[e]()).language()}catch(t){console.warn("a language for the editor failed to load",t);return}}function Ur(e){if(typeof e.attachShadow!=="function"||typeof CSSStyleSheet>"u"||!("adoptedStyleSheets"in Document.prototype))return{parent:e,root:void 0};let t=e.shadowRoot??e.attachShadow({mode:"open"}),n=new CSSStyleSheet;return n.replaceSync(":host{display:flex;flex-direction:column;min-height:0}.cm-editor{flex:1;min-height:0}"),t.adoptedStyleSheets=[...t.adoptedStyleSheets,n],{parent:t,root:t}}async function vo(e){let t=new Xt,n=new Xt,r=new Xt,o=await tn(e.language),s=(m)=>[U.readOnly.of(!m),b.editable.of(m)],c={editable:e.editable,wrap:e.wrap,language:o??[]},a,u=(m)=>[ho(),co(),po(),tt(),lo(),yo(),_t(),Jt({top:!0}),Je.of(" "),U.phrases.of(e.phrases),en,kt.of([{key:"Mod-s",preventDefault:!0,run:()=>(e.onSave(),!0)},{key:"Escape",run:()=>(e.onEscape(),!0)},Nt,...Yt,...ot,...Pt]),U.lineSeparator.of(m),t.of(s(c.editable)),n.of(c.wrap?b.lineWrapping:[]),r.of(c.language),b.updateListener.of((p)=>{if(p.docChanged)e.onChange()})],d=Ur(e.parent),f=new b({parent:d.parent,root:d.root,state:U.create({doc:e.text,extensions:u(e.eol)})});return a=f.state.doc,{text:()=>f.state.doc.sliceString(0,void 0,f.state.lineBreak),dirty:()=>a===void 0||!f.state.doc.eq(a),snapshot:()=>f.state.doc,markSaved:(m)=>{a=m??f.state.doc},replace:(m,p)=>{let E=f.scrollDOM.scrollTop;f.setState(U.create({doc:m,extensions:u(p)})),a=f.state.doc,f.scrollDOM.scrollTop=E},setEditable:(m)=>{c.editable=m,f.dispatch({effects:t.reconfigure(s(m))})},setWrap:(m)=>{c.wrap=m,f.dispatch({effects:n.reconfigure(m?b.lineWrapping:[])})},setLanguage:async(m)=>{c.language=await tn(m)??[],f.dispatch({effects:r.reconfigure(c.language)})},undo:()=>{X(f)},redo:()=>{z(f)},find:()=>{de(f)},tab:()=>{te(f)},focus:()=>f.focus(),scrollTop:()=>f.scrollDOM.scrollTop,scrollTo:(m)=>{f.scrollDOM.scrollTop=m},destroy:()=>f.destroy()}}export{vo as createEditor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K}from"./chunk-index-jgzygbt8.js";import"./chunk-index-8d81qy69.js";export{K as Confirm};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t,m,e,n,O,w,g,_,P,k}from"./chunk-index-2e4am3hw.js";import{be}from"./chunk-index-5bfqek1d.js";function p(){let{connectorAdminUrl:o}=k(),{data:r,error:s}=be(()=>O.connectors(),"connectors");return n("section",{className:"stack",children:[n("div",{className:"card-head",children:[n("div",{children:[e("h2",{children:t("Connectors")}),e("p",{className:"hint",children:t("Upstream MCP gateways and virtual servers used by the knights.")})]}),o?e("a",{href:o,target:"_blank",rel:"noreferrer",children:t("Open connector admin")}):null]}),s?e(g,{message:s}):null,!r&&!s?e(w,{}):null,r?n(m,{children:[e("h3",{children:t("Upstream gateways")}),r.gateways.length===0?e(_,{children:t("No gateways.")}):null,r.gateways.map((a)=>e("article",{className:"card",children:n("div",{className:"card-head",children:[e("strong",{children:a.name}),e(P,{children:a.enabled?t("Enabled"):t("Disabled")}),e(P,{tone:a.reachable?"plain":"warn",children:a.reachable?t("Reachable"):t("Unreachable")}),e(P,{children:t("{count} tools",{count:a.tools})})]})},a.name)),e("h3",{children:t("Virtual servers")}),r.servers.length===0?e(_,{children:t("No virtual servers.")}):null,r.servers.map((a)=>n("article",{className:"card",children:[n("div",{className:"card-head",children:[e("strong",{children:a.name}),e(P,{children:t("{count} tools",{count:a.tools.length})})]}),n("p",{children:[t("Used by"),": ",a.usedBy.join(", ")||t("None")]}),n("details",{children:[e("summary",{children:t("Tool list")}),e("ul",{children:a.tools.map((l)=>e("li",{children:l},l))})]})]},a.name))]}):null]})}export{p as ConnectorsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t,c,m,e,n,v,O,w,g,_,P,k,_e,re,Me,fn,mi,ne}from"./chunk-index-2e4am3hw.js";import{be}from"./chunk-index-5bfqek1d.js";var u=[{kind:"owner",title:c("Owner channels"),note:c("Direct messages and channels where the owner talks to a knight.")},{kind:"agent",title:c("Bot server channels"),note:c("The bot server's one-to-one channels.")},{kind:"group",title:c("Group channels"),note:c("The bot server's group channels.")},{kind:"outside",title:c("Outside AI clients"),note:c("Conversations an outside AI client holds over MCP.")},{kind:"plugin",title:c("Plugin conversations"),note:c("Conversations a plugin runs, such as a web chat, as the host recorded them.")}];function Z(){let{timeZone:o}=k(),{now:i}=ne(),{data:a,error:s}=be(()=>O.conversations(),"conversations"),d=a?.conversations;if(!d)return s?e(g,{message:s}):e(w,{});return n(m,{children:[s?e(g,{message:s}):null,u.map((r)=>{let h=d.filter((l)=>l.kind===r.kind);return n("section",{className:"stack",children:[e("h2",{children:t(r.title)}),e("p",{className:"hint",children:t(r.note)}),h.length===0?e(_,{children:t("None stored.")}):null,h.map((l)=>e(p,{item:l,now:i,timeZone:o},l.key))]},r.kind)})]})}function p(o){let{item:i}=o,a=fn(i.channel,i.id),s=mi(i);return n("a",{className:"card card-link",href:v("conversations",i.key),children:[n("div",{className:"card-head",children:[e("strong",{children:s}),i.busy>0?e(P,{tone:"busy",children:t("running")}):null,i.liveBytes===0?e(P,{children:t("archived only")}):null]}),n("p",{className:"meta",children:[(i.kind==="outside"||i.kind==="plugin")&&i.startedAt?`${t("Started")} ${re(i.startedAt,o.timeZone)} · `:a.detail?`${a.detail} · `:"",i.principal?`${i.visibility==="private"?t("Private to {name}",{name:i.principal.name}):t("Shared · {name}",{name:i.principal.name})} · `:"",t("Last active")," ",_e(i.lastActive,o.now,o.timeZone)," ·"," ",Me(i.liveBytes)," ·"," ",t("{count} archived",{count:i.archives})]})]})}export{Z as ConversationsPage};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{s,N,M,r,t,m,e,n,D,d,f,g,Xe}from"./chunk-index-2e4am3hw.js";import"./chunk-index-64rsz6pf.js";import"./chunk-index-2t30xwed.js";import"./chunk-index-18pgxxw3.js";import"./chunk-index-kbrg32sx.js";import{ti}from"./chunk-index-kb3w11mn.js";import{Ut}from"./chunk-index-xq84gg8w.js";import{L}from"./chunk-index-8d81qy69.js";import{Kt,Dn,qr,xi,ns,is,rs,os,ss}from"./chunk-index-dnjftvtq.js";import{ee,Te}from"./chunk-index-cdctnw71.js";function Q(i){let{view:a}=i;return e("li",{children:n("button",{type:"button",className:"menu-item council-row","aria-current":i.current||void 0,onClick:i.onPick,children:[e(Xe,{view:a,size:40}),n("span",{className:"menu-text",children:[e("strong",{children:a.displayName}),e("span",{className:"meta",children:t("{count} knights",{count:a.members?.length??0})})]})]})})}function W(i){let{council:a}=i,w=xi(),u=ti(),[v,A]=r([]),[y,O]=r(),[H,S]=r(""),[G,I]=r(!1),[P,j]=r(""),[p,C]=r(!1),[z,x]=r(),E=N(),R=a?.name,T=a?.members?.join(`
|
|
2
|
-
`);s(()=>{if(!i.open)return;if(x(void 0),I(a===void 0),j(""),C(!1),O(void 0),S(""),A(a?[...a.members??[]]:ns(u)),!R)return;let o=!0;return ee.group(R).then((l)=>{if(!o)return;O(l),S(l.host)},()=>{return}),()=>{o=!1}},[i.open,R,T]);let U=M(()=>new Set(u.map((o)=>o.name)),[u]),_=u.find((o)=>o.home)?.name,c=rs(v,(o)=>U.has(o)),b=os(c,H||void 0,_),X=(o)=>u.find((l)=>l.name===o)?.displayName??o,F=c.length>=Kt,k=c.length>=Dn,q=a===void 0||c.join(",")!==(a.members??[]).join(",")||y!==void 0&&b!==y.host,B=async(o)=>{C(!0),x(void 0);try{await o(),await Te()}catch(l){return x(d(l)),C(!1),!1}return C(!1),!0},J=async()=>{if(!a)return;if(!await B(async()=>{await ee.updateGroup(a.name,{...c.join(",")!==(a.members??[]).join(",")?{members:c}:{},...y&&b!==y.host?{host:b}:{}})}))return;f(t("Saved.")),i.onClose()},K=async()=>{let o=P.trim();if(o==="")return;let l=new Set([...u.map((V)=>V.name),...w.map((V)=>V.name)]),h;if(!await B(async()=>{h=await ee.createGroup({name:ss(o,l),displayName:o,members:c,host:b})})||!h)return;qr(h.room),D("table",h.name,{replace:!0}),f(t("Made {name}.",{name:h.displayName})),i.onClose()};return n("div",{className:"stack council-sheet",children:[w.length>0?n("section",{className:"stack","aria-label":t("Councils"),children:[e("h3",{children:t("Councils")}),e("ul",{className:"menu",children:w.map((o)=>e(Q,{view:o,current:o.key===a?.key,onPick:()=>{qr(o.key),D("table",o.name,{replace:!0}),i.onClose()}},o.key))})]}):null,n("fieldset",{className:"field council-pick",children:[e("legend",{children:a?t("Edit this council"):t("Pick who sits")}),n("span",{className:"meta council-count","aria-live":"polite",children:[t("{count} of {max} picked",{count:c.length,max:Kt}),F?` · ${t("At most {max} knights",{max:Kt})}`:""]}),e("ul",{className:"menu",children:u.map((o)=>{let l=v.includes(o.name);return e("li",{children:n("label",{className:"menu-item menu-toggle seat-row",children:[e("input",{type:"checkbox",checked:l,disabled:!l&&F,onChange:()=>A(is(v,o.name,Kt))}),e(Xe,{view:o,size:32}),e("span",{className:"menu-text",children:e("strong",{children:o.displayName})})]})},o.key)})})]}),k?e(Ut,{label:t("Host"),value:b,onChange:S,options:c.map((o)=>({value:o,label:X(o)}))}):e("span",{className:"meta",children:t("A council needs at least {min} knights.",{min:Dn})}),G?n("label",{htmlFor:E,children:[t("Council name"),e("input",{id:E,value:P,autoComplete:"off",onChange:(o)=>j(o.target.value)})]}):null,z?e(g,{message:z}):null,e("div",{className:"actions",children:a&&!G?n(m,{children:[e("button",{type:"button",className:"secondary",disabled:!k||p,onClick:()=>I(!0),children:t("Save as a new council")}),e("button",{type:"button",disabled:!k||!q||p,onClick:J,children:p?t("Saving…"):t("Done")})]}):e("button",{type:"button",disabled:!k||P.trim()===""||p,onClick:K,children:p?t("Saving…"):a?t("Save as a new council"):t("Make council")})})]})}function de(i){return e(L,{open:i.open,title:t("Council"),onClose:i.onClose,size:"default",children:e(W,{open:i.open,council:i.council,onClose:i.onClose})})}export{de as CouncilSheet};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Tr}from"./chunk-index-2e4am3hw.js";import{Or}from"./chunk-index-02vfshtt.js";import{Yo,jo,Ur,Vr,Ko,Jo}from"./chunk-index-qfgkfq86.js";var ne=Tr,re=(a)=>{for(let n=a;n;n=n.parentElement){let{overflowY:l}=getComputedStyle(n);if((l==="auto"||l==="scroll")&&n.scrollHeight>n.clientHeight)return n}return document.scrollingElement??document.documentElement};function se(a){let{item:n,root:l,key:u,mode:C}=a,c=re(l),O=c===document.scrollingElement||c===document.documentElement,k=()=>O?0:c.getBoundingClientRect().top,X=()=>O?window.innerHeight:c.clientHeight,x=(e)=>e-k()+c.scrollTop,p=(e)=>{let t=e.getBoundingClientRect();return{top:x(t.top),height:t.height}},y=document.createElement("div");y.className="drop-line",y.setAttribute("aria-hidden","true");let z=[],P=[],g=[],h=[],R=[],B={top:0,bottom:0},D=()=>{let e=[...l.querySelectorAll("[data-drop-item], [data-folder-block]")].map((t)=>[t,t.style.transform]);for(let[t]of e)t.style.removeProperty("transform");try{j()}finally{for(let[t,r]of e)if(r)t.style.transform=r}},j=()=>{if(C==="room"){P=[...l.querySelectorAll("[data-drop-zone]")],z=P.map((t)=>{let{top:r,height:H}=p(t);return{id:t.dataset.zoneId??"",kind:t.dataset.dropZone,...t.dataset.folder?{folder:t.dataset.folder}:{},top:r,bottom:r+H,items:t.dataset.collapsed===void 0?[...t.querySelectorAll("[data-drop-item]")].map((o)=>({key:o.dataset.key??"",...p(o)})):[]}});return}g=[...l.querySelectorAll(":scope > [data-folder-block]")],h=g.map((t)=>({key:t.dataset.key??"",...p(t)})),R=g.map((t)=>({key:t.dataset.key??"",...p(t.querySelector("[data-folder-head]")??t)}));let e=p(l);B={top:e.top,bottom:e.top+e.height}};Or(!0);let G=n.getBoundingClientRect().top;n.setAttribute("data-lifted",""),l.setAttribute("data-reordering","");let F=n.getBoundingClientRect().top-G;if(F)c.scrollTop+=F;D();let J=x(a.y),I={x:0,y:a.y},Z=!1,f=0,w,d,q={type:"cancel"};try{n.setPointerCapture(a.pointerId)}catch{}let _=()=>{f=0;let e=x(I.y),t=e-J;if(Math.abs(t)>ne)Z=!0;n.style.transform=`translate3d(0, ${t}px, 0)`;let r;if(C==="room"){let o=Yo(z,u,e);q=o?{type:"room",drop:o}:{type:"cancel"};let M=o?z.indexOf(o.zone):-1;r=P[M];let E=r?.contains(n)??!1,s=o?o.zone.items:[],m=E?[...r.querySelectorAll("[data-drop-item]")]:[],v=s.findIndex((i)=>i.key===u),W=o?Vr(s.map((i)=>i.key),u,o.before):0,ee=s.length>1?Math.max(0,(s[1]?.top??0)-(s[0]?.top??0)-(s[0]?.height??0)):0,U=E&&v>=0?Ur(s,v,W,ee):[];for(let i of document.querySelectorAll("[data-drop-item]:not([data-lifted])"))i.style.removeProperty("transform");if(m.forEach((i,A)=>{if(U[A])i.style.transform=`translate3d(0, ${U[A]}px, 0)`}),r&&o&&!E){let i=o.before===null?void 0:o.zone.items.find((oe)=>oe.key===o.before),A=p(r).top,te=i?i.top-A:o.zone.items.length?p(r).height:0;y.style.top=`${te}px`,r.append(y)}else y.remove();if(o?.zone.kind==="folder"&&o.zone.items.length===0&&r?.dataset.collapsed!==void 0){if(d?.zone!==o.zone.id){if(d)clearTimeout(d.timer);let i=o.zone.folder??"";d={zone:o.zone.id,timer:setTimeout(()=>{a.open(i),requestAnimationFrame(()=>requestAnimationFrame(()=>{D(),L()}))},Jo)}}}else if(d)clearTimeout(d.timer),d=void 0}else{let o=jo(R,B,u,e);q=o?{type:"folder",before:o.before}:{type:"cancel"};let M=h.findIndex((m)=>m.key===u),E=o?Vr(h.map((m)=>m.key),u,o.before):M,s=Ur(h,M,E,12);g.forEach((m,v)=>{if(m!==n)m.style.transform=s[v]?`translate3d(0, ${s[v]}px, 0)`:""})}if(r!==w)w?.removeAttribute("data-drop-target"),r?.setAttribute("data-drop-target",""),w=r;let H=Ko(I.y,k(),k()+X());if(H)c.scrollTop+=H,L()},L=()=>{if(!f)f=requestAnimationFrame(_)},b=(e)=>{Q(),a.done(e)},S=(e)=>e.pointerId===a.pointerId,K=(e)=>{if(!S(e))return;e.stopPropagation(),e.preventDefault(),I={x:e.clientX,y:e.clientY},L()},N=(e)=>{if(!S(e))return;if(e.stopPropagation(),f)cancelAnimationFrame(f),_();b(Z?q:{type:"tap"})},V=(e)=>{if(S(e))b({type:"cancel"})},Y=(e)=>{if(e.key!=="Escape")return;e.preventDefault(),e.stopPropagation(),b({type:"cancel"})},T=(e)=>e.preventDefault();function Q(){if(Or(!1),window.removeEventListener("pointermove",K,!0),window.removeEventListener("pointerup",N,!0),window.removeEventListener("pointercancel",V,!0),window.removeEventListener("keydown",Y,!0),window.removeEventListener("touchmove",T,!0),window.removeEventListener("contextmenu",T,!0),f)cancelAnimationFrame(f);if(d)clearTimeout(d.timer);w?.removeAttribute("data-drop-target"),y.remove(),n.removeAttribute("data-lifted"),n.style.removeProperty("transform"),l.removeAttribute("data-reordering");for(let e of l.querySelectorAll("[data-drop-item], [data-folder-block]"))e.style.removeProperty("transform");try{n.releasePointerCapture(a.pointerId)}catch{}}return window.addEventListener("pointermove",K,!0),window.addEventListener("pointerup",N,!0),window.addEventListener("pointercancel",V,!0),window.addEventListener("keydown",Y,!0),window.addEventListener("touchmove",T,{capture:!0,passive:!1}),window.addEventListener("contextmenu",T,!0),L(),()=>b({type:"cancel"})}export{se as lift};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Mt,Ft}from"./chunk-index-0a81da8z.js";import{h}from"./chunk-index-2e4am3hw.js";function H(){try{let r=document.createElement("canvas");return!!(r.getContext("webgl2")||r.getContext("webgl"))}catch{return!1}}function x(r,n){return[r,n.includes("?")?n.slice(n.indexOf("?")):""].some((c)=>{let d=new URLSearchParams(c).get("nogl");return d!==null&&d!=="0"&&d!=="false"})}async function I(r,n,S){let c=n.variant==="compact",d=n.labels??Ft,l=new Map,E=(e)=>{l.clear();for(let t of e)l.set(t.id,{...t})};E(n.seats);let m={t:n.theme,s:n.scheme},a=null,o=document.createElement("div");o.className="rt-table",o.dataset.variant=c?"compact":"full";let f=document.createElement("div");f.className="rt-table-stage",o.appendChild(f);let i=null,y=!1,A=()=>!c&&(Boolean(n.listBelow)||y);r.appendChild(o);let u=new Map,g=()=>{if(!A()){i?.remove(),i=null,u.clear(),delete o.dataset.list;return}if(!i)i=document.createElement("ul"),i.className="rt-table-list",i.setAttribute("aria-label",d.table),o.appendChild(i),o.dataset.list="";for(let e of[...u.keys()])if(!l.has(e))u.delete(e);for(let e of l.values()){let t=u.get(e.id);if(!t){t=document.createElement("button"),t.type="button",t.dataset.seat=e.id;let s=e.id;t.addEventListener("click",(p)=>{let b=l.get(s);if(b)n.onSeatClick({id:b.id,name:b.name,at:Mt(p,p.currentTarget)})}),u.set(e.id,t)}t.textContent=d.seat(e.name,e.state??"idle"),t.style.setProperty("--seat",e.color)}i.replaceChildren(...[...l.values()].map((e)=>{let t=document.createElement("li"),s=u.get(e.id);if(s)t.appendChild(s);return t}))};g();let w=(e)=>{y=!e,g(),n.onNames?.(e)},T=async()=>{let{createTable2D:e}=await (h("g57vr6h0"),import("./chunk-table2d-g57vr6h0.js"));a=e(f,{...n,theme:m.t,scheme:m.s,seats:[...l.values()]}),w(!0)},C=async()=>{let{createTable3D:e}=await (h("rp0w6kt4"),import("./chunk-table3d-rp0w6kt4.js"));a=e(f,{...n,theme:m.t,scheme:m.s,seats:[...l.values()],onNames:w},()=>{a?.dispose(),T()})};if(c||S==="svg"||S!=="webgl"&&(x(location.search,location.hash)||!H()))await T();else try{await C()}catch{await T()}let M,L=n.onSeatMenu;if(L&&!c){let{attachSeatMenu:e}=await (h("r0k0eawr"),import("./chunk-seat-menu-r0k0eawr.js"));M=e(o,(t,s,p)=>{let b=t instanceof Element?t.closest("[data-seat]")?.dataset.seat:void 0,v=l.get(b??a?.seatAt?.(s,p)??"");return v?{id:v.id,name:v.name}:void 0},L)}return{get kind(){return a.kind},setTheme(e,t){m={t:e,s:t},a.setTheme(e,t)},setSeats(e){E(e),g(),a.setSeats(e)},setState(e,t){let s=l.get(e);if(s)s.state=t;g(),a.setState(e,t)},setMark:(e,t)=>a.setMark(e,t),setAvatar(e,t){let s=l.get(e);if(s)s.avatarSvg=t;return a.setAvatar(e,t)},setReducedMotion:(e)=>a.setReducedMotion(e),resetCamera:()=>a.resetCamera(),focus:(e,t)=>a.focus(e,t),focused:()=>a.focused(),seatAt:(e,t)=>a.seatAt?.(e,t)??null,getStats:()=>a.getStats(),dispose(){M?.(),a?.dispose(),o.remove()}}}export{I as mountRoundTable};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h,s,N,t,te,m,e,n,o,gt,u,pe,Xe,In,vn}from"./chunk-index-2e4am3hw.js";import{dr,hr,pr,mr}from"./chunk-index-g3wrs02w.js";import"./chunk-index-e2dqjde8.js";import{Bt}from"./chunk-index-12zyshae.js";import{Ti}from"./chunk-index-g1awv7rk.js";var F=()=>(h("y73mpsh1"),import("./chunk-layout-actions-y73mpsh1.js")),y=(a)=>(h("me598wsb"),import("./chunk-placement-items-me598wsb.js")).then((r)=>r.folderMenu(a)),R=(a)=>({mode:"folder",key:a,item:(r)=>r.closest("[data-folder-block]"),root:(r)=>r.closest("[data-folder-block]")?.parentElement??null,onDrop:(r)=>{if(r.type==="folder")F().then((i)=>i.placeFolderBefore(a,r.before))},open:pr});function k(a){let{id:r,name:i}=a,d=dr().has(r),l=a.holdsActive||!d,c=N(),b=Bt(()=>y(r),R(r)),v=(f)=>{y(r).then((g)=>{if(!g)return;let p=f.getBoundingClientRect();pe({...g,at:{x:p.left,y:p.bottom},via:"key",source:f})},()=>{return})};return n("section",{className:"folder","aria-label":i,"data-folder-block":"","data-key":r,"data-drop-zone":"folder","data-zone-id":r,"data-folder":r,"data-collapsed":l?void 0:"",children:[n("header",{className:"folder-head","data-folder-head":"",...b,children:[n("button",{type:"button",className:"folder-toggle","aria-expanded":l,"aria-controls":c,"aria-label":l?t("Collapse {name}",{name:i}):t("Expand {name}",{name:i}),onClick:()=>hr(r),children:[e(o,{name:"chevron",size:16,className:"folder-chevron","data-open":l||void 0}),e("strong",{children:i}),e("span",{className:"meta",children:te(a.count,"{count} room","{count} rooms")}),l?null:a.stack]}),a.muted==="none"?null:e(o,{name:"bell-off",size:14,className:"muted-mark","data-partial":a.muted==="some"||void 0,role:"img","aria-hidden":!1,"aria-label":a.muted==="all"?t("Notifications are off"):t("Some notifications are off")}),l?null:a.summary,e("button",{type:"button",className:"icon-button folder-more","aria-haspopup":"menu","aria-label":t("Folder menu"),onClick:(f)=>v(f.currentTarget),children:e(o,{name:"more",size:18})})]}),e("div",{id:c,className:"folder-body",hidden:!l,children:l?a.count===0?e("p",{className:"meta folder-empty",children:t("No rooms in this folder yet.")}):a.children:null})]})}var S=4;function M(a){let r=a.rooms.slice(0,S),i=u((l)=>r.map((c)=>l.rooms[c]?.view),r.join(",")),d=a.rooms.length-r.length;return n("span",{className:"folder-stack","aria-hidden":"true",children:[i.map((l)=>l?e("span",{className:"folder-stack-item",children:e(Xe,{view:l,size:28})},l.key):null),d>0?n("span",{className:"folder-stack-more",children:["+",d]}):null]})}function w(a){let r=u((i)=>({waiting:a.rooms.reduce((d,l)=>d+gt(i,l),0),typing:a.rooms.some((d)=>i.rooms[d]?.typing)}),a.rooms.join(","));return n(m,{children:[r.typing?e(In,{}):null,r.waiting?e(vn,{count:r.waiting}):null]})}function C(a){return u((r)=>Ti(a,(i)=>r.rooms[i]?.view?.muted===!0),a.join(","))}function Q(a){let r=a.folders.map((i)=>i.id).join(",");return s(()=>{if(a.listed)mr(r?r.split(","):[])},[a.listed,r]),e(m,{children:a.folders.map((i)=>e(B,{folder:i,...a},i.id))})}function B(a){let{folder:r}=a,i=C(r.rooms);return e(k,{id:r.id,name:r.name,count:r.rooms.length,holdsActive:a.active!==void 0&&r.rooms.includes(a.active),muted:i,summary:e(w,{rooms:r.rooms}),stack:e(M,{rooms:r.rooms}),children:a.rooms(r.rooms)})}export{Q as FolderList};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{dr,fr,hr,pr,mr}from"./chunk-index-g3wrs02w.js";export{fr as collapsedNow,pr as expandFolder,mr as pruneCollapsed,hr as toggleCollapsed,dr as useCollapsed};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t,e,n,o,v}from"./chunk-index-2e4am3hw.js";import{En,sn}from"./chunk-index-0w4bfjb5.js";function l({steps:s}){return n("div",{className:"page",children:[e("header",{className:"page-head",children:e("h1",{children:t("Finish setting up")})}),e("p",{className:"meta",children:t("These steps come first. The rest of the app opens when they are done.")}),e("ul",{className:"menu",children:s.map((a)=>e("li",{children:n("a",{className:"menu-item menu-link",href:v(a.open.page),children:[n("span",{className:"menu-text",children:[e("strong",{children:En(a)}),sn(a)?e("span",{className:"meta",children:sn(a)}):null]}),e(o,{name:"chevron",size:16})]})},a.id))})]})}export{l as GatePage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ei,Ci,As}from"./chunk-index-t998yg8y.js";import"./chunk-index-kb3w11mn.js";import"./chunk-index-18pgxxw3.js";import"./chunk-index-2t30xwed.js";import"./chunk-index-8d81qy69.js";import"./chunk-index-64rsz6pf.js";import"./chunk-index-kbrg32sx.js";export{As as GroupScene,Ci as GroupStage,Ei as useGroupFocus};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Sr,t,m,e,n,o,u,it}from"./chunk-index-2e4am3hw.js";import"./chunk-index-2t30xwed.js";import"./chunk-index-18pgxxw3.js";import"./chunk-index-kbrg32sx.js";import{Vt}from"./chunk-index-kb3w11mn.js";import"./chunk-index-64rsz6pf.js";var s=(a,r)=>r?Sr(a,r):a;function T(a){let r=u((i)=>i.rooms[a.roomKey]?.view),l=it();if(!r||r.kind!=="group")return null;let c=r.members??[];return n(m,{children:[n("button",{type:"button",className:"icon-button group-table-button","aria-label":t("Table"),"aria-pressed":a.scene,onClick:()=>a.onScene(!a.scene),children:[e(o,{name:"table"}),e("span",{className:"group-table-label",children:t("Table")})]}),l==="camelot"&&!a.scene?s(e("div",{className:"group-strip",children:e(Vt,{members:c,groupRoom:a.roomKey,variant:"compact"})}),a.slot):null]})}export{T as GroupTable};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-index-zyvwhxga.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at}from"./chunk-index-q7g62sgm.js";export{at as HostPicture};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Hr,Ae,jr,Kr,Jr,eo,to,nn,nr,no,zs}from"./chunk-index-kbrg32sx.js";export{no as keepCards,nr as keepReads,to as noCards,eo as noReads,zs as onFrame,nn as seedUnread,Hr as subscribeHost,Kr as totalUnread,Jr as unreadCounts,jr as unreadOf,Ae as useHost};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{J,X,s,N,Qe,M,a,r,t,te,m,e,n,o,v,hi,y,u,ce,d,f,w,g,_,P,Gt,$n,Rt,k,kr,_e,Zt,Vi,hn,pn,Ct,ne,bn,He,Pr,Ee}from"./chunk-index-2e4am3hw.js";import{Rn}from"./chunk-index-2t30xwed.js";import{Ni,To,Be,Li}from"./chunk-index-18pgxxw3.js";import{K}from"./chunk-index-jgzygbt8.js";import{Ae,eo,to,nn,nr,no}from"./chunk-index-kbrg32sx.js";import{st,at}from"./chunk-index-q7g62sgm.js";import{ur}from"./chunk-index-ffbrm6tr.js";import"./chunk-index-zyvwhxga.js";import{qe}from"./chunk-index-31x6krbs.js";import{he}from"./chunk-index-v6smgw77.js";import"./chunk-index-8d81qy69.js";function Je(l){let i={};for(let c of l)if(c.type==="multiselect")i[c.name]=[...xe(c.initial)];else i[c.name]=xe(c.initial)[0]??"";return i}var xe=(l)=>l===void 0?[]:typeof l==="string"?[l]:[...l];function je(l,i){let c={};for(let p of l){let H=i[p.name];if(H===void 0||H===""||H.length===0)continue;c[p.name]=H}return c}function Ke(l){let{field:i,value:c}=l,[p,H]=r(""),A=i.search?i.options.filter((h)=>h.label.toLowerCase().includes(p.trim().toLowerCase())):i.options,E=i.search?e("input",{type:"search",value:p,placeholder:t("Search…"),"aria-label":t("Search {name}",{name:i.label}),onChange:(h)=>H(h.target.value)}):null;if(i.type==="select")return n(m,{children:[E,n(qe,{id:l.id,value:String(c),required:i.required===!0,"aria-describedby":l.described,...i.search?{size:6}:{},onChange:(h)=>l.onChange(h.target.value),children:[i.required?null:e("option",{value:"",children:t("None")}),A.map((h)=>e("option",{value:h.value,children:h.label},h.value))]})]});let b=new Set(Array.isArray(c)?c:[]);return n(m,{children:[E,e("fieldset",{"aria-describedby":l.described,children:A.map((h)=>n("label",{children:[e("input",{type:"checkbox",checked:b.has(h.value),onChange:(C)=>{let R=new Set(b);if(C.target.checked)R.add(h.value);else R.delete(h.value);l.onChange(i.options.filter((I)=>R.has(I.value)).map((I)=>I.value))}}),h.label]},h.value))})]})}function et(l){let{field:i,value:c}=l,p=N(),H="hint"in i?i.hint:void 0,A=l.error||H?`${p}-note`:void 0,E;if("options"in i)E=e(Ke,{field:i,id:p,value:c,described:A,onChange:l.onChange});else if(i.type==="textarea")E=e("textarea",{id:p,rows:5,value:String(c),maxLength:i.max??8000,required:i.required===!0,"aria-describedby":A,onChange:(b)=>l.onChange(b.target.value)});else E=e("input",{id:p,type:i.type==="url"?"url":"text",value:String(c),maxLength:i.max??500,required:i.required===!0,"aria-describedby":A,onChange:(b)=>l.onChange(b.target.value)});return n("div",{className:"host-field",children:[i.type==="multiselect"?e("span",{className:"field-label",children:i.label}):e("label",{htmlFor:p,children:i.label}),E,l.error||H?e("span",{id:`${p}-note`,className:l.error?"field-error":"hint",role:l.error?"alert":void 0,children:l.error??H}):null]})}function ue(l){let{spec:i}=l,[c,p]=r(()=>Je(i.fields)),[H,A]=r(!1),[E,b]=r();return n("form",{className:"host-form",onSubmit:async(C)=>{if(C.preventDefault(),H)return;A(!0),b(void 0);try{b(await l.onSubmit(je(i.fields,c)))}catch(R){b({error:d(R)})}finally{A(!1)}},children:[i.fields.map((C)=>e(et,{field:C,value:c[C.name]??"",error:E?.field===C.name?E.error:void 0,onChange:(R)=>p((I)=>({...I,[C.name]:R}))},C.name)),E&&!i.fields.some((C)=>C.name===E.field)?e(g,{message:E.error}):null,n("div",{className:"actions",children:[l.onCancel?e("button",{type:"button",className:"secondary",disabled:H,onClick:l.onCancel,children:t("Cancel")}):null,e("button",{type:"submit",disabled:H,children:i.submit})]})]})}function tt(l){if(!l.ok)return{error:Ni(l.error),...l.field?{field:l.field}:{}};if(l.notice)f(l.notice);if(l.open)Li(l.open);return}function re(l){let[i,c]=r(),[p,H]=r(!1),A=async(b,h)=>tt(await l.run(b,h)),E=async(b)=>{if(b.form||b.confirm){c(b);return}H(!0);try{let h=await A(b,{});if(h)f(h.error,"danger")}catch(h){f(d(h),"danger")}finally{H(!1)}};if(l.actions.length===0)return null;return n("div",{className:l.className??"host-actions",children:[l.actions.map((b)=>e("button",{type:"button",className:b.style==="danger"?"danger":b.style==="secondary"?"secondary":"",disabled:p,onClick:()=>E(b),children:b.label},b.id)),i?.form?e(he,{open:!0,title:i.form.title,onClose:()=>c(void 0),children:e(ue,{spec:i.form,onCancel:()=>c(void 0),onSubmit:async(b)=>{let h=await A(i,b);if(!h)c(void 0);return h}})}):i?e(K,{open:!0,title:i.label,confirmLabel:i.label,tone:i.style==="danger"?"danger":"primary",onConfirm:async()=>{let b=await A(i,{});if(b)throw Error(b.error)},onClose:()=>c(void 0),children:e("p",{children:i.confirm})}):null]})}var Ie=/^file:([A-Za-z0-9_-]{1,64})$/;function Ve(l){let i=URL.parse(l,document.baseURI);return i!==null&&i.origin===window.location.origin}function nt({id:l,alt:i}){return e("img",{className:"file-image",src:`api/files/${encodeURIComponent(l)}`,alt:i,loading:"lazy",decoding:"async",onError:(c)=>{let p=document.createElement("span");p.textContent=i||t("Image"),c.currentTarget.replaceWith(p)}})}var ee=J(function({source:i}){return e("div",{className:"prose",children:e(Gt,{remarkPlugins:[Rt],urlTransform:(c)=>Ie.test(c)?c:$n(c),components:{a:({href:c,children:p})=>c&&/^https?:\/\//.test(c)&&!Ve(c)?e("a",{href:c,target:"_blank",rel:"noreferrer noopener",children:p}):c&&Ve(c)?e("a",{href:c,children:p}):e("span",{children:p}),img:({src:c,alt:p})=>{let H=typeof c==="string"?Ie.exec(c):null;return H?.[1]?e(nt,{id:H[1],alt:p??""}):e("span",{children:p})},pre:kr,table:({children:c})=>e("div",{className:"table-wrap",children:e("table",{children:c})})},children:i})})});function rt(l){switch(l??"open"){case"working":return t("Working…");case"done":return t("Done");case"superseded":return t("Replaced");case"expired":return t("Expired");default:return""}}var we=(l)=>(l.state??"open")==="open";function ie(l){let{card:i}=l,c=rt(i.state);return n("article",{className:"host-card","data-tone":i.tone??"note","data-state":i.state??"open",children:[n("header",{children:[e("h3",{children:i.title}),c?e(P,{tone:i.state==="working"?"busy":"plain",children:c}):null]}),i.body?e(ee,{source:i.body}):null,i.links?.length?e("div",{className:"host-card-links",children:i.links.map((p)=>e("a",{href:p.url,...p.url.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:p.label},`${p.url}`))}):null,we(i)&&i.buttons?.length?e(re,{actions:i.buttons,run:l.run}):null]})}st();function ot(){let[l,i]=r(()=>Rn().toString());return s(()=>{let c=()=>i(Rn().toString());return window.addEventListener("popstate",c),window.addEventListener("hashchange",c),()=>{window.removeEventListener("popstate",c),window.removeEventListener("hashchange",c)}},[]),l}function it(l){if(!l.ok)return{error:Ni(l.error),...l.field?{field:l.field}:{}};if(l.notice)f(l.notice);if(l.open)Li(l.open);return}function lt(l){let{section:i}=l;switch(i.kind){case"markdown":return e(ee,{source:i.text});case"card":return e(ie,{card:i.card,run:l.run});case"form":return n("section",{className:"stack",children:[e("h2",{className:"section-title",children:i.form.title}),e(ue,{spec:i.form,onSubmit:(c)=>l.submit(i.action,c)})]});case"list":return n("section",{className:"stack",children:[i.title?e("h2",{className:"section-title",children:i.title}):null,i.rows.length===0?e(_,{children:t("Nothing here.")}):null,e("ul",{className:"host-list",children:dt(i.rows).map(([c,p])=>n("li",{children:[p.attention?e("span",{className:"attention-dot",role:"img","aria-label":t("Needs attention")}):null,n("div",{className:"host-list-main",children:[p.open?e("a",{href:p.open,...p.open.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:p.title}):e("strong",{children:p.title}),p.subtitle?e("span",{children:p.subtitle}):null]}),p.actions?.length?e(re,{actions:p.actions,run:l.run}):null]},c))})]})}}function ct({routeKey:l}){let i=l??"",c=ot(),p=Ae((R)=>R.pages[i]??0),[H,A]=r(0),[E,b]=r({});s(()=>{let R=!0;return Be.page(i,Object.fromEntries(new URLSearchParams(c))).then((I)=>R&&b({page:I}),(I)=>{if(!R)return;let V=I instanceof ce&&I.status===404;b((O)=>({...V||!O.page?{}:{page:O.page},error:d(I),gone:V}))}),()=>{R=!1}},[i,c,p,H]);let h=async(R,I)=>{let V=await Be.pageAct(i,{action:R,input:I}),O=it(V);if(!O)A((x)=>x+1);return O},C=async(R,I)=>{let V=await Be.pageAct(i,{action:R.id,input:I});if(V.ok)A((O)=>O+1);return V};if(E.gone)return e("div",{className:"page",children:e(_,{children:t("This page is not available.")})});if(!E.page)return e("div",{className:"page",children:E.error?e(g,{message:E.error}):e(w,{})});return n("div",{className:"page",children:[e("header",{className:"page-head",children:e("h1",{children:E.page.title})}),E.error?e(g,{message:E.error}):null,E.page.sections.map((R,I)=>e(lt,{section:R,run:C,submit:h},I))]})}function dt(l){let i=new Map;return l.map((c)=>{let p=i.get(c.title)??0;return i.set(c.title,p+1),[`${c.title}:${p}`,c]})}var ut=/https?:\/\/[^\s<>"']+/g,mt=/[.,;:!?)\]}\u3001\u3002\uff0c\uff1b\uff1a\uff01\uff1f\uff09\u300d\u300f]+$/;function ft(l){let i=l.replace(mt,""),c=URL.parse(i);return c&&(c.protocol==="https:"||c.protocol==="http:")?i:""}function Oe({text:l}){let i=[],c=0;for(let p of l.matchAll(ut)){let H=ft(p[0]);if(H==="")continue;let A=p.index;if(A>c)i.push(l.slice(c,A));i.push(e("a",{href:H,target:"_blank",rel:"noreferrer noopener",children:H},`${A}`)),c=A+H.length}if(c<l.length)i.push(l.slice(c));return e("span",{className:"plain",children:i})}var Pe=J(function(i){let{message:c}=i,p=c.authorKind??"external";if(p==="notice")return n("li",{className:"host-notice","data-mid":c.id,"data-highlight":i.highlighted||void 0,"data-enter":i.enter||void 0,children:[e(o,{name:"bell",size:14}),e(ee,{source:c.text}),e("time",{dateTime:c.at,children:Zt(c.at,i.timeZone)})]});let H=p==="member"&&c.principalId!==void 0&&c.principalId===i.me;return n("li",{className:"message","data-mid":c.id,"data-author":p,"data-mine":H||void 0,"data-header":i.header||void 0,"data-enter":i.enter||void 0,"data-unread":i.unread||void 0,"data-highlight":i.highlighted||void 0,children:[H?null:e("span",{className:"message-avatar",children:i.header?e(at,{picture:c.picture,name:c.author}):null}),n("div",{className:"message-main",children:[i.header?n("div",{className:"message-meta",children:[e("strong",{children:c.author}),c.authorLabel?e("span",{className:"label-chip",children:c.authorLabel}):null,e("time",{dateTime:c.at,children:Zt(c.at,i.timeZone)})]}):null,n("div",{className:"bubble",children:[c.text?p==="assistant"?e(ee,{source:c.text}):e(Oe,{text:c.text}):null,e(Ct,{files:c.files}),c.expiredFiles?e("p",{className:"message-expired",children:te(c.expiredFiles,"{count} file was removed","{count} files were removed")}):null]}),c.edited?e("span",{className:"message-edited",children:t("edited")}):null]})]})});var pt=1500,gt=96,me=new Set,ke=new Map;function ht(l){if(document.visibilityState!=="visible")return!1;return!l||l.scrollHeight-l.scrollTop-l.clientHeight<gt}function ze(l){if(!(l instanceof Element))return;let i=l.closest("[data-unread][data-mid]");return i?Number(i.dataset.mid):void 0}function De(l){let{room:i,scroller:c,messages:p,began:H,enterAfter:A,me:E,shared:b}=l,h=a({seen:void 0,watched:new Set}),[,C]=r(0),R=ke.get(i)??me;if(A!==void 0&&p){let T=h.current;T.seen??=A;let F=ht(c.current),U=T.seen;for(let L of p){if(L.id<=T.seen)continue;if(F)T.watched.add(L.id);U=Math.max(U,L.id)}T.seen=U}let I=M(()=>{if(H===void 0||A===void 0||!p)return me;let T=new Set;for(let F of p){if(F.id===0||F.id<=H)continue;if(F.kind==="system"||F.note)continue;if(F.authorKind==="notice")continue;if(F.principalId===void 0?F.kind==="owner"&&!b:F.principalId===E)continue;if(h.current.watched.has(F.id)||R.has(F.id))continue;T.add(F.id)}return T.size===0?me:T},[p,H,A,E,b,R]),V=X((T)=>{let F=ke.get(i)??me;if(F.has(T))return;ke.set(i,new Set(F).add(T)),C((U)=>U+1)},[i]),O=I.size>0;s(()=>{let T=c.current;if(!T||!O)return;let F=(L)=>{if(L.pointerType==="touch")return;let D=ze(L.target);if(D!==void 0)V(D)},U=(L)=>{let D=ze(L.target);if(D!==void 0)V(D)};return T.addEventListener("pointerover",F,{passive:!0}),T.addEventListener("focusin",U,{passive:!0}),T.addEventListener("click",U,{passive:!0}),()=>{T.removeEventListener("pointerover",F),T.removeEventListener("focusin",U),T.removeEventListener("click",U)}},[c,V,O]);let x=a(new Map),z=[...I].join(",");return s(()=>{let T=c.current,F=x.current;for(let[B,G]of F)if(!I.has(B))clearTimeout(G),F.delete(B);if(!T||!O||typeof IntersectionObserver!=="function"||!matchMedia("(pointer: coarse)").matches)return;let U=(B)=>{let G=F.get(B);if(G===void 0)return;clearTimeout(G),F.delete(B)},L=new IntersectionObserver((B)=>{for(let G of B){let j=Number(G.target.dataset.mid),ae=G.rootBounds;if(!(G.isIntersecting&&(G.intersectionRatio>=0.5||ae!==null&&G.intersectionRect.height>=ae.height*0.5))){U(j);continue}if(F.has(j))continue;F.set(j,setTimeout(()=>{if(F.delete(j),document.visibilityState==="visible")V(j)},pt))}},{root:T,threshold:[0,0.25,0.5,0.75,1]}),D=[...T.querySelectorAll("[data-unread][data-mid]")];for(let B of D)L.observe(B);let Q=()=>{if(document.visibilityState!=="visible")return;for(let B of D)L.unobserve(B),L.observe(B)};return document.addEventListener("visibilitychange",Q),()=>{document.removeEventListener("visibilitychange",Q),L.disconnect()}},[c,V,O,z]),s(()=>{let T=x.current;return()=>{for(let F of T.values())clearTimeout(F);T.clear()}},[]),I}st();var bt=3;function yt({marks:l}){let[i,c]=r(!1);return n("li",{className:"seen",children:[n("button",{type:"button",className:"seen-toggle","aria-expanded":i,onClick:()=>c((p)=>!p),children:[l.slice(0,bt).map((p)=>e(at,{picture:{principal:p.principal},name:p.name,size:16},p.principal)),e("span",{children:t("Seen by {count}",{count:l.length})})]}),i?e("span",{className:"seen-names",children:l.map((p)=>p.name).join(t(", "))}):null]})}function vt(l,i){let c=Ee(),p=u((H)=>H.connects);s(()=>{let H=i.current;if(!H)return;let A=0,E=0,b,h,C=()=>{if(h=void 0,document.visibilityState!=="visible")return;let V=H.getBoundingClientRect(),O=0;for(let z of H.querySelectorAll("[data-mid]")){let T=z.getBoundingClientRect();if(T.bottom>V.top&&T.top<V.bottom-4)O=Math.max(O,Number(z.dataset.mid))}if(O<=A)return;let x=E+1000-Date.now();if(x>0){clearTimeout(b),b=setTimeout(R,x);return}if(c.send({type:"read",room:l,upTo:O}))A=O,E=Date.now()},R=()=>{if(h===void 0)h=requestAnimationFrame(C)};H.addEventListener("scroll",R,{passive:!0}),document.addEventListener("visibilitychange",R),window.addEventListener("resize",R);let I=new MutationObserver(R);return I.observe(H,{childList:!0,subtree:!0}),R(),()=>{if(H.removeEventListener("scroll",R),document.removeEventListener("visibilitychange",R),window.removeEventListener("resize",R),I.disconnect(),clearTimeout(b),h!==void 0)cancelAnimationFrame(h)}},[c,l,i,p])}function fe(l){let{roomKey:i}=l;vt(i,l.scroller);let c=u((R)=>R.principal?.id),p=u((R)=>R.rooms[i]?.messages),H=Ae((R)=>R.reads[i]??eo),A=Ae((R)=>R.cursor[i]),E=a(void 0);if(E.current===void 0&&A!==void 0)E.current=A;let b=u((R)=>R.rooms[i]?.view?.notes===!0),h=De({room:i,scroller:l.scroller,messages:p,began:E.current,enterAfter:l.enterAfter,me:c,shared:l.host===!0||b}),C=M(()=>{let I=(p??[]).filter((x)=>x.kind!=="system"),V=E.current===void 0?void 0:I.find((x)=>x.id>(E.current??0)&&(x.principalId===void 0||x.principalId!==c))?.id,O=new Map;for(let x of H){if(x.principal===c)continue;let z=I.findLast((T)=>T.id<=x.upTo);if(z)O.set(z.id,[...O.get(z.id)??[],x])}return{before:(x)=>x.id===V?e("li",{className:"new-divider",children:e("span",{children:t("New messages")})}):null,after:(x)=>{let z=O.get(x.id);return z?e(yt,{marks:z}):null},unread:(x)=>h.has(x.id),...l.host?{message:(x,z)=>x.kind==="system"&&x.authorKind===void 0?void 0:e(Pe,{message:x,header:z.header,enter:z.enter,unread:z.unread,timeZone:z.timeZone,me:c,highlighted:l.highlight===x.id})}:{}}},[p,H,c,l.host,l.highlight,h]);return e(bn,{roomKey:i,enterAfter:l.enterAfter,quotable:l.quotable,decor:C})}st();var wt=20,kt=2600,Ue;function Nt(l,i,c){let p=u((b)=>b.connects),H=Ae((b)=>b.rooms[l]??0),[A,E]=r({view:void 0,error:void 0,gone:!1});return s(()=>{let b=!0;return Be.open(i,c).then((h)=>{if(!b)return;y.dispatch({type:"history_loaded",room:l,messages:h.messages,more:h.more,older:!1}),nr(l,h.reads,h.cursor),no(l,h.cards),E({view:h,error:void 0,gone:!1})},(h)=>{if(!b)return;let C=h instanceof ce&&h.status===404;E((R)=>({view:C?void 0:R.view,error:d(h),gone:C}))}),()=>{b=!1}},[l,i,c,p,H]),A}function Ht(l){let{header:i}=l;return n(m,{children:[i.banner?e("p",{className:"host-banner","data-tone":i.banner.tone,role:"status",children:i.banner.text}):null,i.fields.length?e("dl",{className:"host-head-fields",children:i.fields.map((c)=>n("div",{children:[e("dt",{children:c.label}),e("dd",{children:c.link?e("a",{href:c.link,...c.link.startsWith("/")?{}:{target:"_blank",rel:"noreferrer noopener"},children:c.value}):c.value})]},`${c.label}:${c.value}`))}):null,e(re,{className:"host-actions bar",actions:i.actions,run:l.run})]})}function At(l){let i=Ae((C)=>C.cards[l.room]??to),c=He("(min-width: 720px) and (min-height: 760px)"),[p,H]=r();if(i.length===0)return null;let A=i.filter((C)=>we(C)||C.state==="working"),E=i.filter((C)=>!A.includes(C)),b=p??(c&&A.length>0),h=A[0];return n("div",{className:"host-cards","data-open":b||void 0,children:[n("button",{type:"button",className:"host-cards-toggle","aria-expanded":b,onClick:()=>H(!b),children:[e(o,{name:"chevron",size:14}),h?n("span",{children:[e("strong",{children:te(A.length,"{count} card waiting","{count} cards waiting")}),`: ${h.title}`]}):e("span",{children:t("Earlier cards ({count})",{count:E.length})})]}),b?n("div",{className:"host-cards-body",children:[A.map((C)=>e(ie,{card:C,run:l.run(C.id)},C.id)),E.length?n("details",{className:"host-cards-older",children:[e("summary",{children:t("Earlier cards ({count})",{count:E.length})}),E.map((C)=>e(ie,{card:C,run:l.run(C.id)},C.id))]}):null]}):null]})}function Et({roomKey:l}){let i=Ee(),c=To(l),p=c?.kind??"",H=c?.id??"",{view:A,error:E,gone:b}=Nt(l,p,H),h=u((S)=>S.rooms[l]),C=u((S)=>S.limits),R=u((S)=>S.connects),I=u((S)=>S.connection==="open"),V=a(null),O=a(null),{away:x,onScroll:z,onGrow:T,toEnd:F}=Pr(V),[U,L]=r(!1),[D,Q]=r(),[B,G]=r(Ue),[j,ae]=r(!1),[Re,Se]=r(),ge=a(void 0),oe=a(void 0),W=A!==void 0;if(s(()=>{if(!c||b||!W)return;return i.send({type:"subscribe",room:l}),i.focus(l),()=>{i.focus(void 0),i.send({type:"unsubscribe",room:l})}},[i,l,R,b,W]),W&&ge.current===void 0)ge.current=h?.messages.at(-1)?.id??0;Qe(()=>{if(W)F(!1)},[W]),Qe(()=>{let S=V.current;if(S&&oe.current!==void 0)S.scrollTop+=S.scrollHeight-oe.current,oe.current=void 0},[h?.messages[0]?.id]),s(()=>{let S=O.current;if(!S||typeof ResizeObserver>"u")return;let q=new ResizeObserver(T);return q.observe(S),()=>q.disconnect()},[T]);let be=X(async()=>{let S=y.getState().rooms[l]?.messages[0];if(!S)return!1;let q=await Be.older(p,H,S.id,hi);return y.dispatch({type:"history_loaded",room:l,messages:q.messages,more:q.more,older:!0}),nr(l,q.reads,void 0),q.more},[l,p,H]),le=a(void 0);s(()=>{let S=()=>{let q=Number(Rn().get("message"));le.current=Number.isSafeInteger(q)&&q>0?q:void 0};return S(),window.addEventListener("popstate",S),()=>window.removeEventListener("popstate",S)},[]);let ye=h?.messages[0]?.id,Le=h?.more===!0;s(()=>{let S=le.current,q=V.current;if(!W||S===void 0||!q)return;let Z=q.querySelector(`[data-mid="${S}"]`);if(Z){le.current=void 0,Z.scrollIntoView({block:"center"}),Se(S),requestAnimationFrame(()=>q.dispatchEvent(new Event("scroll"))),setTimeout(()=>Se(void 0),kt);return}if(ye!==void 0&&S<ye&&Le){let se=0;(async()=>{if(se+=1,!await be().catch(()=>!1)||se>=wt)le.current=void 0})()}},[W,ye,Le,h?.messages.length,be]);let Ce=(S,q={},Z)=>Be.act(p,H,{action:S.id,...Z===void 0?{}:{card:Z},input:q}),We=(S,q)=>Ce(S,q),Ze=(S)=>(q,Z)=>Ce(q,Z,S);if(b||!W&&!E&&!c)return e("section",{className:"room",children:n("div",{className:"page",children:[e(_,{children:t("This room is not available.")}),e("a",{className:"back",href:v("rooms"),children:t("Back to rooms")})]})});let Y=A?.access.send??[],ve=Y.length>1,Te=ve&&j,Me=B&&Y.includes(B)?B:Y.includes("turn")?"turn":Y[0],Fe=Te||Me==="turn",Ye=Fe?A?.wording?.turn?.placeholder??t("Ask AI…"):A?.wording?.note?.placeholder??t("Write an internal note…"),de=A?.header.title??l,Xe=h?.messages??[];return n("section",{className:"room",onDragOver:(S)=>{if(Y.length&&S.dataTransfer.types.includes("Files"))S.preventDefault()},onDrop:(S)=>{if(!Y.length||!S.dataTransfer.files.length)return;S.preventDefault(),Q([...S.dataTransfer.files])},children:[n("header",{className:"room-head",children:[e("a",{className:"icon-button room-back",href:v("rooms"),"aria-label":t("Back to rooms"),children:e(o,{name:"back"})}),e(at,{name:de,size:40}),n("div",{className:"room-title",children:[e("h1",{children:de}),e("span",{className:"room-status","data-working":h?.typing||void 0,children:h?.typing?t("Working…"):t("Host room")})]})]}),!I?n("div",{className:"offline-banner",role:"status",children:[e("span",{className:"spinner","aria-hidden":"true"}),t("Reconnecting… messages wait here until it is back.")]}):null,A?e(Ht,{header:A.header,run:We}):null,e("div",{className:"room-scroll",ref:V,onScroll:z,children:n("div",{className:"room-content",ref:O,children:[E?e(g,{message:E}):null,!W&&!E?e(w,{}):null,h?.more?e("button",{type:"button",className:"secondary older",disabled:U,onClick:async()=>{L(!0),oe.current=V.current?.scrollHeight;try{await be()}catch(S){oe.current=void 0,f(d(S),"danger")}finally{L(!1)}},children:U?t("Loading…"):t("Load earlier messages")}):null,W&&Xe.length===0?e(_,{children:t("No messages yet.")}):null,e(fe,{roomKey:l,enterAfter:ge.current,quotable:!1,scroller:V,host:!0,highlight:Re}),h?.typing?e(pn,{name:de,progress:h.progress}):null]})}),x?n("button",{type:"button",className:"to-end",onClick:()=>F(!0),children:[e(o,{name:"send",size:16,style:{transform:"rotate(180deg)"}}),t("Latest")]}):null,A?e(At,{room:l,run:Ze}):null,A&&Y.length===0?e("p",{className:"room-note",children:t("You can read this room but not write in it.")}):null,A&&Y.length>0?e(m,{children:e(hn,{draftKey:l,name:de,placeholder:Ye,onAddressed:ae,...ve?{above:e(ur,{on:Fe,label:A?.wording?.turn?.label??t("@AI"),...Te?{locked:t("The message starts with @AI, so the knight answers.")}:{},onChange:(S)=>{let q=S?"turn":"note";Ue=q,G(q)}})}:{},limits:C,stoppable:Boolean(h?.stoppable),onSend:(S,q,Z)=>{if(ve&&Z){let se=Vi(S);i.say(l,se===""&&q.length===0?S:se,q,"turn")}else i.say(l,S,q,Me);F(!0)},onStop:()=>i.send({type:"stop",room:l}),...D?{incoming:D,onIncomingTaken:()=>Q(void 0)}:{}},l)}):null]})}st();function pe({room:l}){let i=Ae((c)=>c.unread[l]??0);if(i<=0)return null;return e("span",{className:"unread-mark",role:"img","aria-label":te(i,"{count} unread message","{count} unread messages"),children:i>99?"99+":i})}st();var St=6,Lt=250;function Ne(l){let{kind:i}=l,{timeZone:c}=k(),{now:p}=ne(),H=u((L)=>L.connects),A=Ae((L)=>L.lists[i]??0),[E,b]=r(""),[h,C]=r(""),[R,I]=r(),[V,O]=r(),[x,z]=r(),[T,F]=r(!1);s(()=>{let L=setTimeout(()=>C(E.trim()),Lt);return()=>clearTimeout(L)},[E]),s(()=>{let L=!0;return Be.list(i,h||void 0).then((D)=>{if(!L)return;nn(Object.fromEntries(D.rooms.map((Q)=>[Q.key,Q.unread??0]))),I(D.rooms),O(D.cursor),z(void 0)},(D)=>L&&z(d(D))),()=>{L=!1}},[i,h,H,A]);let U=async()=>{if(!V||T)return;F(!0);try{let L=await Be.list(i,h||void 0,V);nn(Object.fromEntries(L.rooms.map((D)=>[D.key,D.unread??0]))),I((D)=>[...D??[],...L.rooms]),O(L.cursor)}catch(L){z(d(L))}finally{F(!1)}};return n("section",{className:"stack",children:[n("h2",{className:"section-title",children:[l.icon?e(o,{name:l.icon,size:14,className:"section-icon"}):null,l.label]}),R&&(R.length>=St||h||E)?e("input",{type:"search",className:"kind-filter",value:E,placeholder:t("Search {name}",{name:l.label}),"aria-label":t("Search {name}",{name:l.label}),onChange:(L)=>b(L.target.value)}):null,x?e(g,{message:x}):null,!R&&!x?n("div",{className:"stack","aria-busy":"true",children:[e("div",{className:"skeleton"}),e("div",{className:"skeleton"})]}):null,R&&R.length===0?e(_,{children:h?t("Nothing matches."):t("No rooms yet.")}):null,R&&R.length>0?e("ul",{className:"room-list",children:R.map((L)=>e("li",{children:n("a",{className:"room-row",href:v("room",L.key),"aria-current":L.key===l.active?"page":void 0,children:[n("span",{className:"kind-row-picture",children:[e(at,{picture:L.picture,name:L.title,size:44}),L.attention?e("span",{className:"attention-dot",role:"img","aria-label":t("Needs attention")}):null]}),n("span",{className:"room-row-main",children:[n("span",{className:"room-row-top",children:[e("strong",{children:L.title}),e(pe,{room:L.key}),e("span",{className:"room-row-time",children:L.lastAt?_e(L.lastAt,p,c):""})]}),e("span",{className:"room-row-preview",children:e("span",{children:L.subtitle??""})})]}),e(o,{name:"chevron",size:16,className:"room-row-chevron"})]})},L.key))}):null,V?e("button",{type:"button",className:"secondary",disabled:T,onClick:U,children:T?t("Loading…"):t("Show more")}):null]})}function $e(l){return l.kinds.map((i)=>e(Ne,{kind:i.kind,label:i.label,...i.icon?{icon:i.icon}:{},active:l.active},i.kind))}function Ge(){let l=(k().pages??[]).filter((i)=>i.place==="settings");if(l.length===0)return null;return n("section",{className:"card stack",children:[e("h2",{children:t("More settings")}),l.map((i)=>n("a",{className:"menu-item menu-link",href:v("p",i.id),children:[e("span",{className:"menu-text",children:e("strong",{children:i.label})}),e(o,{name:"chevron",size:16})]},i.id))]})}export{$e as HostKinds,ct as HostPage,Et as HostRoomPage,Ge as HostSettingsPages,fe as ReadLog,pe as UnreadMark};
|