pi-roundtable-web 0.27.1 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/README.md +25 -9
- package/dist/chunk-account-9616x405.js +1 -0
- package/dist/chunk-action-menu-q5y7xpry.js +1 -0
- package/dist/chunk-agent-x74xezyt.js +1 -0
- package/dist/chunk-arranged-rooms-9prq46vh.js +1 -0
- package/dist/chunk-bulk-actions-5dc4m9ad.js +1 -0
- package/dist/chunk-character-creator-wf02eg0h.js +1 -0
- package/dist/chunk-codeeditor-239ss6a2.js +2 -0
- package/dist/chunk-confirm-bhrx9195.js +1 -0
- package/dist/chunk-connectors-k77pd9by.js +37 -0
- package/dist/chunk-conversations-ftcpaqw1.js +1 -0
- package/dist/chunk-council-sheet-a5e6tspr.js +2 -0
- package/dist/chunk-council-view-6593rqbr.js +1 -0
- package/dist/chunk-drag-7873fvzw.js +1 -0
- package/dist/chunk-entry-5zmjxadx.js +1 -0
- package/dist/chunk-folder-list-h9hmbm8e.js +1 -0
- package/dist/chunk-folds-vxq86t1s.js +1 -0
- package/dist/chunk-gate-fa6za28z.js +1 -0
- package/dist/chunk-host-icons-y6frbzqt.js +1 -0
- package/dist/chunk-host-picture-fqg55rbr.js +1 -0
- package/dist/chunk-host-state-65tdhkyq.js +1 -0
- package/dist/chunk-host-ui-233kz7qp.js +1 -0
- package/dist/{chunk-index-j4x9dq30.css → chunk-index-1652v386.css} +1 -1
- package/dist/chunk-index-2c00zf3z.js +2 -0
- package/dist/chunk-index-2dhrqvba.js +2 -0
- package/dist/chunk-index-2s4bkrz3.js +2 -0
- package/dist/chunk-index-2ypaqwjy.js +2 -0
- package/dist/{chunk-index-k0z507h3.js → chunk-index-35zqk1zr.js} +2 -2
- package/dist/chunk-index-39qq37j5.js +2 -0
- package/dist/{chunk-index-j7pgphx3.js → chunk-index-3tjmyd1h.js} +2 -2
- package/dist/chunk-index-4eag6s50.js +2 -0
- package/dist/chunk-index-4jnn2g09.js +2 -0
- package/dist/{chunk-index-y60x5jbh.js → chunk-index-4krm48hm.js} +1 -1
- package/dist/{chunk-index-w42rcbx1.js → chunk-index-4re5prfp.js} +2 -2
- package/dist/chunk-index-57teqgct.js +2 -0
- package/dist/{chunk-index-3d8s3565.js → chunk-index-5ssncptg.js} +2 -2
- package/dist/{chunk-index-yrmqcay4.js → chunk-index-7c9fn21n.js} +2 -2
- package/dist/chunk-index-7k5895sn.js +14 -0
- package/dist/chunk-index-93f3e06v.js +2 -0
- package/dist/chunk-index-9m9v1p7s.js +2 -0
- package/dist/chunk-index-a8c0ap8g.js +2 -0
- package/dist/chunk-index-a8nqn3y0.js +3 -0
- package/dist/chunk-index-am7ghh75.js +120 -0
- package/dist/chunk-index-amspdq2j.js +4 -0
- package/dist/chunk-index-amxa2bn3.js +2 -0
- package/dist/{chunk-index-nsvwbjfe.js → chunk-index-aycxt14t.js} +2 -2
- package/dist/{chunk-index-n05yw5wd.js → chunk-index-bjeg3e2j.js} +2 -2
- package/dist/chunk-index-cttrqfm8.js +2 -0
- package/dist/chunk-index-dajanzxc.js +1 -0
- package/dist/chunk-index-e2eeckhh.js +2 -0
- package/dist/chunk-index-e46652wf.js +2 -0
- package/dist/chunk-index-ek98d2rn.js +2 -0
- package/dist/{chunk-index-f500nw4w.js → chunk-index-en5dm1zv.js} +2 -2
- package/dist/chunk-index-evhaaqzk.js +13 -0
- package/dist/chunk-index-f4gqzfkv.js +2 -0
- package/dist/{chunk-index-ak6ecqy3.js → chunk-index-gj3n4dh5.js} +2 -2
- package/dist/chunk-index-gp4chnp3.js +2 -0
- package/dist/{chunk-index-af4ebmkr.js → chunk-index-h2a42p6s.js} +3 -3
- package/dist/{chunk-index-4z4chg7v.js → chunk-index-haac6nbt.js} +2 -2
- package/dist/{chunk-index-3pnvpppa.js → chunk-index-hef4gwtb.js} +2 -2
- package/dist/chunk-index-mg96sqpk.js +2 -0
- package/dist/chunk-index-nsya88fn.js +1 -0
- package/dist/{chunk-index-ben4gv45.js → chunk-index-ntt3em2k.js} +1 -1
- package/dist/chunk-index-pcbkp62w.js +2 -0
- package/dist/chunk-index-pfs6rm6w.js +2 -0
- package/dist/chunk-index-pgxgq61x.js +2 -0
- package/dist/{chunk-index-9z13jw6q.js → chunk-index-q33ppq0j.js} +3 -3
- package/dist/chunk-index-r0hk9kyd.js +47 -0
- package/dist/{chunk-index-0ye10vk3.js → chunk-index-rr73h4kc.js} +3 -3
- package/dist/{chunk-index-983dmeaa.js → chunk-index-rtz4936v.js} +3 -3
- package/dist/chunk-index-smz90j6p.js +2 -0
- package/dist/chunk-index-teyx2hz7.js +2 -0
- package/dist/{chunk-index-sm7m4fej.js → chunk-index-v6h43553.js} +2 -2
- package/dist/chunk-index-vzqwn3wp.js +2 -0
- package/dist/chunk-index-wt2asefx.js +50 -0
- package/dist/chunk-index-x4tq9btg.js +2 -0
- package/dist/chunk-index-y6p8j3zv.js +2 -0
- package/dist/chunk-index-yvcdg5hh.js +2 -0
- package/dist/{chunk-index-afrhnrxj.js → chunk-index-zdzzf3fp.js} +2 -2
- package/dist/chunk-index-zeqfnkty.js +2 -0
- package/dist/chunk-index-zpwb8mkk.js +2 -0
- package/dist/chunk-lang-css-avzhvm72.js +1 -0
- package/dist/{chunk-lang-dockerfile-cnwqn660.js → chunk-lang-dockerfile-2p7e3ssz.js} +1 -1
- package/dist/{chunk-lang-go-yy6kgsxv.js → chunk-lang-go-zxp9k517.js} +3 -3
- package/dist/chunk-lang-html-red02gep.js +1 -0
- package/dist/chunk-lang-javascript-n33kmjcx.js +1 -0
- package/dist/chunk-lang-json-zmym50rg.js +1 -0
- package/dist/chunk-lang-markdown-ww2kcs85.js +6 -0
- package/dist/chunk-lang-python-ng1zdtd4.js +3 -0
- package/dist/chunk-lang-rust-6ynhxjdd.js +1 -0
- package/dist/{chunk-lang-shell-1rpgtepw.js → chunk-lang-shell-39t9bz2s.js} +1 -1
- package/dist/chunk-lang-sql-w875ejpg.js +2 -0
- package/dist/{chunk-lang-toml-tbj7467c.js → chunk-lang-toml-b8ckgkg5.js} +1 -1
- package/dist/chunk-lang-typescript-qf8acbb2.js +1 -0
- package/dist/chunk-lang-xml-bz91cjp1.js +1 -0
- package/dist/chunk-lang-yaml-g9zy0tdv.js +1 -0
- package/dist/chunk-layout-actions-fyzzzeyp.js +1 -0
- package/dist/chunk-menu-items-yvnk3vds.js +1 -0
- package/dist/chunk-mode-toggle-ccv271hm.js +1 -0
- package/dist/chunk-note-row-314py1pp.js +204 -0
- package/dist/chunk-notes-4rnrddzw.js +1 -0
- package/dist/chunk-notice-bell-z9wgamnz.js +1 -0
- package/dist/chunk-notices-mtn7pg1z.js +1 -0
- package/dist/chunk-onboarding-f3hhxgg4.js +1 -0
- package/dist/chunk-overview-qmepntrr.js +1 -0
- package/dist/chunk-palette-edkn1ypq.js +1 -0
- package/dist/chunk-placement-items-trsa5t23.js +1 -0
- package/dist/chunk-profile-pwfq0wns.js +1 -0
- package/dist/chunk-prompt-history-xp9hmeqt.js +1 -0
- package/dist/chunk-prompts-a56qvytg.js +1 -0
- package/dist/chunk-room-confirms-gqpkz4h0.js +1 -0
- package/dist/chunk-room-menu-1m2c2ekt.js +1 -0
- package/dist/chunk-rooms-menu-button-tcvda1gq.js +1 -0
- package/dist/chunk-schedules-kwnw7p8v.js +1 -0
- package/dist/{chunk-seat-menu-kwtjnpjj.js → chunk-seat-menu-m2n9nvv0.js} +1 -1
- package/dist/chunk-sheet-hosts-pr8xktyq.js +29 -0
- package/dist/{chunk-shortcut-help-g5cpqjjj.js → chunk-shortcut-help-sbvrds1m.js} +2 -2
- package/dist/chunk-shortcuts-8705p7q3.js +1 -0
- package/dist/chunk-skill-editor-7xy09sq1.js +8 -0
- package/dist/chunk-skills-cnc25x7q.js +1 -0
- package/dist/chunk-start-over-line-97zdd9pb.js +16 -0
- package/dist/chunk-switcher-list-ehsn2wsk.js +1 -0
- package/dist/{chunk-tab-dot-yse6wcfp.js → chunk-tab-dot-gkpe06q8.js} +1 -1
- package/dist/chunk-table-av3kh3tt.js +1 -0
- package/dist/chunk-table2d-5x3jptp9.js +1 -0
- package/dist/chunk-table3d-rsvajx7r.js +4220 -0
- package/dist/chunk-thread-actions-7xtkegwm.js +1 -0
- package/dist/{chunk-thread-cards-36rckyg7.js → chunk-thread-cards-grzszfha.js} +1 -1
- package/dist/chunk-thread-list-9bjjac3j.js +217 -0
- package/dist/chunk-transcript-t5szb8r0.js +1 -0
- package/dist/chunk-waiting-chip-d8b6a0p8.js +28 -0
- package/dist/chunk-waiting-ts3kxjvv.js +1 -0
- package/dist/chunk-where-3d3ncsa5.js +1 -0
- package/dist/chunk-workspace-ct6hvn0z.js +578 -0
- package/dist/chunk-zh-tw-v9v1eerm.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 +137 -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 +45 -7
- package/src/app/routes.ts +86 -11
- package/src/app/skill-doc-routes.ts +12 -2
- package/src/app/skill-group-routes.ts +126 -0
- package/src/app/surface.ts +26 -2
- package/src/app/team-routes.ts +3 -7
- package/src/authz.ts +2 -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 +137 -5
- package/src/push/channel.ts +1 -0
- package/src/web-plugin.ts +8 -1
- package/dist/chunk-account-83crfbn4.js +0 -1
- package/dist/chunk-action-menu-qw7h03x0.js +0 -1
- package/dist/chunk-agent-t1632ktv.js +0 -1
- package/dist/chunk-arranged-rooms-sb6tbsxw.js +0 -1
- package/dist/chunk-bulk-actions-v1g2bzk7.js +0 -1
- package/dist/chunk-character-creator-ye69w0kx.js +0 -1
- package/dist/chunk-codeeditor-5j6abj8k.js +0 -2
- package/dist/chunk-confirm-x8w877bz.js +0 -1
- package/dist/chunk-connectors-t7qbc6nk.js +0 -1
- package/dist/chunk-conversations-kmt6qzym.js +0 -1
- package/dist/chunk-council-sheet-bxvn7vza.js +0 -2
- package/dist/chunk-drag-03zgvd66.js +0 -1
- package/dist/chunk-entry-y5vwp5e5.js +0 -1
- package/dist/chunk-folder-list-h3vnjzpb.js +0 -1
- package/dist/chunk-folds-a3e22m7x.js +0 -1
- package/dist/chunk-gate-qzephvdv.js +0 -1
- package/dist/chunk-group-scene-w1ycabrm.js +0 -1
- package/dist/chunk-group-table-9nvmja8w.js +0 -1
- package/dist/chunk-host-icons-fccg3b2d.js +0 -1
- package/dist/chunk-host-picture-jaqz127q.js +0 -1
- package/dist/chunk-host-state-r01v1ywg.js +0 -1
- package/dist/chunk-host-ui-n54mh5af.js +0 -1
- package/dist/chunk-index-0a81da8z.js +0 -2
- package/dist/chunk-index-1kwp3spy.js +0 -2
- package/dist/chunk-index-47vq85ye.js +0 -2
- package/dist/chunk-index-5zmswz4s.js +0 -2
- package/dist/chunk-index-64rsz6pf.js +0 -2
- package/dist/chunk-index-6vcs0h0m.js +0 -2
- package/dist/chunk-index-6xqz6mg2.js +0 -2
- package/dist/chunk-index-83v0c9x6.js +0 -2
- package/dist/chunk-index-8xd6anam.js +0 -2
- package/dist/chunk-index-b73y2gc0.js +0 -47
- package/dist/chunk-index-bhqczxr3.js +0 -2
- package/dist/chunk-index-c44p8q87.js +0 -2
- package/dist/chunk-index-cbqhzf40.js +0 -13
- package/dist/chunk-index-db8zh8e6.js +0 -2
- package/dist/chunk-index-dvfkb699.js +0 -2
- package/dist/chunk-index-e02ddp46.js +0 -1
- package/dist/chunk-index-ebg48jgy.js +0 -2
- package/dist/chunk-index-ek5mek4j.js +0 -14
- package/dist/chunk-index-em7vndrb.js +0 -2
- package/dist/chunk-index-eq161yvp.js +0 -4
- package/dist/chunk-index-f5x2srr0.js +0 -2
- package/dist/chunk-index-fg42egv9.js +0 -50
- package/dist/chunk-index-h3v1d3nt.js +0 -2
- package/dist/chunk-index-kbgykazq.js +0 -2
- package/dist/chunk-index-n8ghdvxb.js +0 -2
- package/dist/chunk-index-p5jcwjx8.js +0 -2
- package/dist/chunk-index-qfgkfq86.js +0 -2
- package/dist/chunk-index-rcwdqn50.js +0 -7
- package/dist/chunk-index-s72hmse6.js +0 -2
- package/dist/chunk-index-sv9qpmhv.js +0 -1
- package/dist/chunk-index-x4enmj72.js +0 -2
- package/dist/chunk-index-xevnf9ew.js +0 -2
- package/dist/chunk-index-xx8jq73q.js +0 -2
- package/dist/chunk-index-ypkgw7gq.js +0 -2
- package/dist/chunk-lang-css-y9133ktr.js +0 -1
- package/dist/chunk-lang-html-r2xmryek.js +0 -1
- package/dist/chunk-lang-javascript-1r6wd177.js +0 -1
- package/dist/chunk-lang-json-dx56g11y.js +0 -1
- package/dist/chunk-lang-markdown-fpcf2dfq.js +0 -6
- package/dist/chunk-lang-python-zzp95955.js +0 -3
- package/dist/chunk-lang-rust-214fh7sp.js +0 -1
- package/dist/chunk-lang-sql-vvp46hpj.js +0 -2
- package/dist/chunk-lang-typescript-y5w4tt4g.js +0 -1
- package/dist/chunk-lang-xml-tbcqmedk.js +0 -1
- package/dist/chunk-lang-yaml-jh56t3sv.js +0 -1
- package/dist/chunk-layout-actions-8dzvysym.js +0 -1
- package/dist/chunk-menu-items-3jhya205.js +0 -2
- package/dist/chunk-mode-toggle-js49gvpd.js +0 -1
- package/dist/chunk-note-row-kv061030.js +0 -75
- package/dist/chunk-notes-sdkqz5hr.js +0 -1
- package/dist/chunk-notice-bell-r012f2zy.js +0 -1
- package/dist/chunk-notices-h4rk1zxc.js +0 -1
- package/dist/chunk-onboarding-a18cvkph.js +0 -1
- package/dist/chunk-overview-ynaqn4fp.js +0 -1
- package/dist/chunk-palette-jm79gb5q.js +0 -1
- package/dist/chunk-placement-items-mwm9q1zn.js +0 -1
- package/dist/chunk-profile-ajw6pp4r.js +0 -1
- package/dist/chunk-prompt-history-zcfvr3r8.js +0 -1
- package/dist/chunk-prompts-m5rzdk24.js +0 -1
- package/dist/chunk-room-confirms-ftsj15ja.js +0 -1
- package/dist/chunk-room-menu-b9ktw9pw.js +0 -1
- package/dist/chunk-rooms-menu-button-qe62t6nx.js +0 -1
- package/dist/chunk-schedules-t8yxnf8q.js +0 -1
- package/dist/chunk-sheet-hosts-yj5wszgj.js +0 -1
- package/dist/chunk-shortcuts-9ft5sqdw.js +0 -1
- package/dist/chunk-skill-editor-xdfq2708.js +0 -8
- package/dist/chunk-skills-9wa4mwdc.js +0 -1
- package/dist/chunk-switcher-list-vpg6wvtw.js +0 -1
- package/dist/chunk-table-1y76m54h.js +0 -1
- package/dist/chunk-table2d-g57vr6h0.js +0 -1
- package/dist/chunk-table3d-cv6069hy.js +0 -4220
- package/dist/chunk-thread-actions-xjhpdjk7.js +0 -1
- package/dist/chunk-thread-list-fd6agz77.js +0 -217
- package/dist/chunk-transcript-5nfn3r35.js +0 -1
- package/dist/chunk-where-ha8pc3cg.js +0 -1
- package/dist/chunk-workspace-e85twv32.js +0 -578
- package/dist/chunk-zh-tw-z5p5mpph.js +0 -1
package/src/i18n/zh-tw.ts
CHANGED
|
@@ -234,10 +234,12 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
234
234
|
|
|
235
235
|
// 群組圓桌
|
|
236
236
|
Close: "關閉",
|
|
237
|
-
Table: "圓桌",
|
|
238
237
|
|
|
239
238
|
// 訊息列
|
|
240
239
|
"Conversation started over": "對話已重新開始",
|
|
240
|
+
"View the archived conversation": "查看封存的對話",
|
|
241
|
+
"Archived conversation": "封存的對話",
|
|
242
|
+
"The archived conversation has no messages.": "封存的對話裡沒有訊息。",
|
|
241
243
|
Discard: "捨棄",
|
|
242
244
|
"Not sent yet": "尚未傳送",
|
|
243
245
|
"Not sent": "未傳送",
|
|
@@ -250,6 +252,7 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
250
252
|
"{count} approved": "已核准 {count} 項",
|
|
251
253
|
"Long-running mode is on: turns go on past their time limit.":
|
|
252
254
|
"長時間執行模式已開啟:回合可超過時間上限繼續進行。",
|
|
255
|
+
"Inherited from {name}": "沿用 {name} 的模式",
|
|
253
256
|
"Long-running on": "長時間執行已開啟",
|
|
254
257
|
"Turn off": "關閉",
|
|
255
258
|
"Yolo mode is on: held actions are approved without asking.":
|
|
@@ -294,8 +297,8 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
294
297
|
"The council is empty": "評議會沒有人了",
|
|
295
298
|
"Every member of this council is gone. Edit who sits.":
|
|
296
299
|
"這個評議會的成員都不在了。請重新選誰上桌。",
|
|
297
|
-
"A council is a group of up to {max} knights who answer in turn.
|
|
298
|
-
"評議會是最多 {max}
|
|
300
|
+
"A council is a group of up to {max} knights who answer in turn.":
|
|
301
|
+
"評議會是最多 {max} 位騎士組成的群組,他們輪流發言。",
|
|
299
302
|
"Edit this council": "編輯這個評議會",
|
|
300
303
|
"{count} of {max} picked": "已選 {count}/{max}",
|
|
301
304
|
"At most {max} knights": "最多 {max} 位",
|
|
@@ -377,6 +380,78 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
377
380
|
"騎士使用的上游 MCP 閘道與虛擬伺服器。",
|
|
378
381
|
"Used by": "使用者",
|
|
379
382
|
"Virtual servers": "虛擬伺服器",
|
|
383
|
+
"MCP connectors": "MCP 連接器",
|
|
384
|
+
"No connectors yet.": "還沒有連接器。",
|
|
385
|
+
"Tools unreadable": "讀不到工具",
|
|
386
|
+
"(the URL cannot be parsed)": "(無法解析網址)",
|
|
387
|
+
"Add connector": "新增連接器",
|
|
388
|
+
"Add an MCP connector": "新增 MCP 連接器",
|
|
389
|
+
"Edit purpose": "編輯用途",
|
|
390
|
+
"Edit purpose of {name}": "編輯 {name} 的用途",
|
|
391
|
+
"Remove connector": "移除連接器",
|
|
392
|
+
"Remove {name} and its token? From the next message on, the knights no longer use it.":
|
|
393
|
+
"要移除 {name} 和它的權杖嗎?從下一則訊息起,騎士不再使用它。",
|
|
394
|
+
"Removed {name}.": "已移除 {name}。",
|
|
395
|
+
"Added {name}.": "已新增 {name}。",
|
|
396
|
+
"Added {name}. Left out tools whose names are too long: {tools}":
|
|
397
|
+
"已新增 {name}。名稱太長而略過的工具:{tools}",
|
|
398
|
+
Purpose: "用途",
|
|
399
|
+
"Purpose updated.": "用途已更新。",
|
|
400
|
+
"From the next message on, the knights follow the new purpose.":
|
|
401
|
+
"從下一則訊息起,騎士會依照新的用途。",
|
|
402
|
+
"Lowercase letters, digits and -, up to 12; it becomes the prefix of its tool names.":
|
|
403
|
+
"小寫英文字母、數字和 -,最多 12 個字元;會成為它的工具名稱前綴。",
|
|
404
|
+
"MCP URL": "MCP 網址",
|
|
405
|
+
"A Streamable HTTP endpoint; one ending in /sse uses SSE. A credential may be part of the URL.":
|
|
406
|
+
"Streamable HTTP 端點;以 /sse 結尾的使用 SSE。憑證可以放在網址裡。",
|
|
407
|
+
"The knights decide from this text when to use the connector.":
|
|
408
|
+
"騎士依這段文字決定何時使用這個連接器。",
|
|
409
|
+
"Header name (optional)": "標頭名稱(選填)",
|
|
410
|
+
"Leave empty to send Authorization: Bearer <token>.":
|
|
411
|
+
"留空則送出 Authorization: Bearer <token>。",
|
|
412
|
+
"Token (optional)": "權杖(選填)",
|
|
413
|
+
"Stored encrypted by the gateway and never shown again; leave empty if the credential is in the URL.":
|
|
414
|
+
"由閘道加密保存,之後不會再顯示;憑證若在網址裡就留空。",
|
|
415
|
+
"MCP authorizations": "MCP 授權",
|
|
416
|
+
"Which channels outside AI clients may use through each bundle's MCP URL, and with which operations.":
|
|
417
|
+
"外部 AI 用戶端可以透過各組合的 MCP 網址使用哪些頻道,以及可做哪些操作。",
|
|
418
|
+
"Authorize a channel": "授權頻道",
|
|
419
|
+
"There are no authorizations yet.": "還沒有任何授權。",
|
|
420
|
+
"New URL": "換新網址",
|
|
421
|
+
"No channels": "沒有頻道",
|
|
422
|
+
"Not visible now": "目前看不到",
|
|
423
|
+
"No purpose set.": "未設定用途。",
|
|
424
|
+
"Allowed: {operations}": "允許:{operations}",
|
|
425
|
+
"Recent activity": "最近紀錄",
|
|
426
|
+
"Rename / purpose": "名稱/用途",
|
|
427
|
+
Revoke: "撤銷",
|
|
428
|
+
"Revoke the channel": "撤銷頻道",
|
|
429
|
+
"Revoked.": "已撤銷。",
|
|
430
|
+
"Remove {channel} from bundle {bundle}? Its other channels and its URL keep working; operations already sent are not undone.":
|
|
431
|
+
"要把 {channel} 從組合 {bundle} 移除嗎?它的其他頻道和網址照常運作;已送出的操作不會復原。",
|
|
432
|
+
"Replace the MCP URL": "更換 MCP 網址",
|
|
433
|
+
"Replace URL": "更換網址",
|
|
434
|
+
"Replace the URL of bundle {bundle}? The old URL stops working at once; every channel setting stays.":
|
|
435
|
+
"要更換組合 {bundle} 的網址嗎?舊網址立即失效;所有頻道設定都會保留。",
|
|
436
|
+
"MCP URL of {bundle}": "{bundle} 的 MCP 網址",
|
|
437
|
+
"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.":
|
|
438
|
+
"這個網址就是存取憑證,只會顯示這一次。在 AI 用戶端新增遠端 MCP 伺服器並貼上它,不需要另外的權杖。",
|
|
439
|
+
"Allowed operations": "允許的操作",
|
|
440
|
+
"Authorized the channel in {bundle}.": "已在 {bundle} 授權這個頻道。",
|
|
441
|
+
Bundle: "組合",
|
|
442
|
+
"New bundle…": "新組合…",
|
|
443
|
+
"New bundle name": "新組合名稱",
|
|
444
|
+
"Channels in one bundle share one MCP URL.":
|
|
445
|
+
"同一組合的頻道共用一個 MCP 網址。",
|
|
446
|
+
Channel: "頻道",
|
|
447
|
+
"Name outside AI clients see (optional)": "外部 AI 用戶端看到的名稱(選填)",
|
|
448
|
+
"Name outside AI clients see": "外部 AI 用戶端看到的名稱",
|
|
449
|
+
"Purpose (optional)": "用途(選填)",
|
|
450
|
+
Authorize: "授權",
|
|
451
|
+
"Updated what outside AI clients see.": "已更新外部 AI 用戶端看到的內容。",
|
|
452
|
+
"What outside AI clients see": "外部 AI 用戶端看到的內容",
|
|
453
|
+
"The channel's name and topic on Discord stay as they are.":
|
|
454
|
+
"頻道在 Discord 上的名稱和主題維持不變。",
|
|
380
455
|
|
|
381
456
|
// 對話
|
|
382
457
|
"{count} archived": "已封存 {count} 筆",
|
|
@@ -525,6 +600,7 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
525
600
|
"Copy as Markdown": "複製為 Markdown",
|
|
526
601
|
"Quote reply": "引用回覆",
|
|
527
602
|
"Select text": "選取文字",
|
|
603
|
+
"Copy all": "全部複製",
|
|
528
604
|
Share: "分享",
|
|
529
605
|
"Knight profile": "騎士資料",
|
|
530
606
|
"Copy details": "複製細節",
|
|
@@ -612,6 +688,9 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
612
688
|
Yolo: "Yolo",
|
|
613
689
|
"{count} card waiting": "{count} 張卡片等待中",
|
|
614
690
|
"{count} cards waiting": "{count} 張卡片等待中",
|
|
691
|
+
"{count} card waiting for an answer": "{count} 張卡待回答",
|
|
692
|
+
"{count} cards waiting for an answer": "{count} 張卡待回答",
|
|
693
|
+
"Cards waiting": "待回答的卡片",
|
|
615
694
|
"{count} finished thread": "{count} 個已結束的討論串",
|
|
616
695
|
"{count} finished threads": "{count} 個已結束的討論串",
|
|
617
696
|
Clear: "清除",
|
|
@@ -727,8 +806,12 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
727
806
|
// 圓桌
|
|
728
807
|
"Reset view": "重設視角",
|
|
729
808
|
Log: "記錄",
|
|
730
|
-
"
|
|
731
|
-
"
|
|
809
|
+
"Show the council as": "評議會的顯示方式",
|
|
810
|
+
"Animation mode": "動畫模式",
|
|
811
|
+
"Chat mode": "聊天模式",
|
|
812
|
+
"Collapse dialogue": "收起對話",
|
|
813
|
+
"Expand dialogue": "展開對話",
|
|
814
|
+
"Waiting for your answer": "等你回覆",
|
|
732
815
|
"Back to the whole table": "回到整張圓桌",
|
|
733
816
|
You: "你",
|
|
734
817
|
"Tap to show the whole message": "點一下顯示整段訊息",
|
|
@@ -790,7 +873,11 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
790
873
|
"Method not allowed.": "不允許使用這個方法。",
|
|
791
874
|
"There is no such API.": "沒有這個 API。",
|
|
792
875
|
"before and limit must be whole numbers.": "before 與 limit 必須是整數。",
|
|
876
|
+
"before, limit and archive must be whole numbers.":
|
|
877
|
+
"before、limit 與 archive 必須是整數。",
|
|
793
878
|
"Give yolo or longRunning.": "請提供 yolo 或 longRunning。",
|
|
879
|
+
"This room follows the modes of the conversation that made it; switch them there.":
|
|
880
|
+
"這個房間沿用建立它的對話的模式;請到那個對話切換。",
|
|
794
881
|
"muted must be true or false.": "muted 必須是 true 或 false。",
|
|
795
882
|
// 分組與置頂
|
|
796
883
|
"Give the folder a name of 1 to 40 characters.": "分組名稱要 1 到 40 個字。",
|
|
@@ -873,6 +960,8 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
873
960
|
"The push endpoint must have no credentials, port or fragment.":
|
|
874
961
|
"推播端點不可包含帳密、連接埠或片段。",
|
|
875
962
|
"That push service is not allowed.": "不允許使用這個推播服務。",
|
|
963
|
+
"The MCP authorization service did not respond. Try again later.":
|
|
964
|
+
"MCP 授權服務沒有回應,請稍後再試。",
|
|
876
965
|
"The connector service did not respond. Try again later.":
|
|
877
966
|
"連接器服務沒有回應,請稍後再試。",
|
|
878
967
|
"The console could not complete the request.": "主控台無法完成這個請求。",
|
|
@@ -1082,6 +1171,45 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
1082
1171
|
"來自套件 {package};套件升級時才會改變。",
|
|
1083
1172
|
"Linked from {repo}; change it in its repository.":
|
|
1084
1173
|
"連結自 {repo};請到它的儲存庫修改。",
|
|
1174
|
+
"Delete this skill?": "要刪除這個技能嗎?",
|
|
1175
|
+
"Delete skill": "刪除技能",
|
|
1176
|
+
"{name} will be deleted and taken from the knights that carry it: {carriers}.":
|
|
1177
|
+
"{name} 會被刪除,並從攜帶它的騎士身上拿掉:{carriers}。",
|
|
1178
|
+
"{name} will be deleted. No knight carries it.":
|
|
1179
|
+
"{name} 會被刪除,目前沒有騎士攜帶它。",
|
|
1180
|
+
"It also leaves the skill groups {groups}.": "它也會離開技能組合 {groups}。",
|
|
1181
|
+
"This cannot be undone.": "這個動作無法復原。",
|
|
1182
|
+
"Skills ({count})": "技能({count})",
|
|
1183
|
+
"Choose the skills this knight carries.": "選擇這位騎士攜帶的技能。",
|
|
1184
|
+
"Skill groups": "技能組合",
|
|
1185
|
+
"A group lists skills to switch on for a knight in one step, from the knight's sheet. Knights carry the skills, not the group.":
|
|
1186
|
+
"技能組合列出一組技能,可在騎士的設定頁一次開啟。騎士攜帶的是技能,不是組合。",
|
|
1187
|
+
"No skill groups.": "還沒有技能組合。",
|
|
1188
|
+
"Edit {name}": "編輯 {name}",
|
|
1189
|
+
"New skill group": "新增技能組合",
|
|
1190
|
+
"Delete this skill group?": "要刪除這個技能組合嗎?",
|
|
1191
|
+
"Delete group": "刪除組合",
|
|
1192
|
+
"{name} will be deleted. Its skills stay, and so does every knight that carries them.":
|
|
1193
|
+
"{name} 會被刪除。其中的技能會保留,攜帶它們的騎士也不受影響。",
|
|
1194
|
+
"Saved {name}.": "已儲存 {name}。",
|
|
1195
|
+
"Lowercase letters, digits and single hyphens, up to 64.":
|
|
1196
|
+
"小寫字母、數字與單一連字號,最多 64 個字元。",
|
|
1197
|
+
Description: "描述",
|
|
1198
|
+
"Save group": "儲存組合",
|
|
1199
|
+
"Switching a group on switches on its skills this knight lacks; switching it off switches off its skills, built-in ones excepted.":
|
|
1200
|
+
"打開組合會開啟這位騎士還沒有的組合技能;關閉組合會關掉組合裡的技能,內建技能除外。",
|
|
1201
|
+
"Carries all of it.": "已攜帶全部技能。",
|
|
1202
|
+
"Lacks {count}: {skills}": "缺少 {count} 個:{skills}",
|
|
1203
|
+
"Skill group {name}": "技能組合 {name}",
|
|
1204
|
+
"Switch this skill group on?": "要打開這個技能組合嗎?",
|
|
1205
|
+
"Switch this skill group off?": "要關閉這個技能組合嗎?",
|
|
1206
|
+
"Switch on": "打開",
|
|
1207
|
+
"Switch off": "關閉",
|
|
1208
|
+
"Switched on: {skills}": "已開啟:{skills}",
|
|
1209
|
+
"Switched off: {skills}": "已關閉:{skills}",
|
|
1210
|
+
"Nothing changed for {name}.": "{name} 沒有變動。",
|
|
1211
|
+
"{agent} will also carry: {skills}.": "{agent} 將會再攜帶:{skills}。",
|
|
1212
|
+
"{agent} will no longer carry: {skills}.": "{agent} 將不再攜帶:{skills}。",
|
|
1085
1213
|
// 主要提示詞與技能內容的編輯:伺服器的拒絕訊息
|
|
1086
1214
|
"This host has no prompts to edit.": "這個主機沒有可編輯的提示詞。",
|
|
1087
1215
|
"There is no such prompt.": "沒有這份提示詞。",
|
|
@@ -1095,6 +1223,7 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
1095
1223
|
"baseHash 必須是讀取技能時的雜湊值。",
|
|
1096
1224
|
"This skill changed while you were editing it.":
|
|
1097
1225
|
"這個技能在你編輯時被更動了。",
|
|
1226
|
+
"There is no such skill group.": "沒有這個技能組合。",
|
|
1098
1227
|
// 成員、登入與設定關卡
|
|
1099
1228
|
Profile: "個人資料",
|
|
1100
1229
|
Owner: "擁有者",
|
|
@@ -1127,6 +1256,9 @@ export const ZH_TW: Readonly<Record<string, string>> = {
|
|
|
1127
1256
|
"Write an internal note…": "寫一則內部備註…",
|
|
1128
1257
|
"Ask AI…": "問 AI…",
|
|
1129
1258
|
"Internal note": "內部備註",
|
|
1259
|
+
"→ To {name}": "→ 給 {name}",
|
|
1260
|
+
"← From {name}": "← 來自 {name}",
|
|
1261
|
+
"No answer from {name}": "{name} 沒有回覆",
|
|
1130
1262
|
"Earlier cards ({count})": "先前的卡片({count})",
|
|
1131
1263
|
Replaced: "已被取代",
|
|
1132
1264
|
Image: "圖片",
|
package/src/push/channel.ts
CHANGED
|
@@ -30,6 +30,7 @@ export function webPushChannel(
|
|
|
30
30
|
(await identity.tierOf(principalId)) === "owner";
|
|
31
31
|
return {
|
|
32
32
|
name: `web:${options.surface}`,
|
|
33
|
+
surface: options.surface,
|
|
33
34
|
label: "a notice in the web app",
|
|
34
35
|
knows: async (principalId) =>
|
|
35
36
|
(await isOwner(principalId)) && home() !== undefined,
|
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");
|
|
@@ -193,6 +198,7 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
193
198
|
remove: readonly string[],
|
|
194
199
|
) => skillRegistry.attach(agent, add, remove),
|
|
195
200
|
documents: skillRegistry,
|
|
201
|
+
groups: skillRegistry,
|
|
196
202
|
}
|
|
197
203
|
: undefined;
|
|
198
204
|
// The prompts plugin is always on; a host that replaced it may leave it out.
|
|
@@ -274,6 +280,7 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
274
280
|
hosted,
|
|
275
281
|
sessionsDir: settings.sessionsDir,
|
|
276
282
|
...(team ? { team } : {}),
|
|
283
|
+
...(team && rooms ? { roomSurface: settings.surface } : {}),
|
|
277
284
|
queue,
|
|
278
285
|
...(connection
|
|
279
286
|
? { channelName: (id: string) => connection.channelInfo(id) }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{h,Q,S,e,w}from"./chunk-index-fg42egv9.js";var a={profile:S(()=>(h("ajw6pp4r"),import("./chunk-profile-ajw6pp4r.js")).then((o)=>({default:o.ProfilePage}))),notices:S(()=>(h("h4rk1zxc"),import("./chunk-notices-h4rk1zxc.js")).then((o)=>({default:o.NoticesPage}))),onboarding:S(()=>(h("a18cvkph"),import("./chunk-onboarding-a18cvkph.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-fg42egv9.js";import{L}from"./chunk-index-afrhnrxj.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-fg42egv9.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-fg42egv9.js";import{Ce}from"./chunk-index-6xqz6mg2.js";import{si}from"./chunk-index-83v0c9x6.js";import"./chunk-index-y60x5jbh.js";import"./chunk-index-3pnvpppa.js";import{Jn}from"./chunk-index-em7vndrb.js";import{ri,oi}from"./chunk-index-9z13jw6q.js";import{Bt}from"./chunk-index-f5x2srr0.js";import"./chunk-index-1kwp3spy.js";import"./chunk-index-nsvwbjfe.js";import{ot}from"./chunk-index-yrmqcay4.js";ri();var F=S(()=>(h("h3vnjzpb"),import("./chunk-folder-list-h3vnjzpb.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-fg42egv9.js";import{nn}from"./chunk-index-3pnvpppa.js";import"./chunk-index-y60x5jbh.js";import{Sn,Lr}from"./chunk-index-6vcs0h0m.js";import{ee}from"./chunk-index-5zmswz4s.js";import{Wr}from"./chunk-index-1kwp3spy.js";import"./chunk-index-nsvwbjfe.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-fg42egv9.js";import{K}from"./chunk-index-p5jcwjx8.js";import{L}from"./chunk-index-afrhnrxj.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-fg42egv9.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-p5jcwjx8.js";import"./chunk-index-afrhnrxj.js";export{K as Confirm};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t,m,e,n,O,w,g,_,P,k}from"./chunk-index-fg42egv9.js";import{be}from"./chunk-index-xevnf9ew.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-fg42egv9.js";import{be}from"./chunk-index-xevnf9ew.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-fg42egv9.js";import"./chunk-index-64rsz6pf.js";import"./chunk-index-4z4chg7v.js";import"./chunk-index-n8ghdvxb.js";import"./chunk-index-3pnvpppa.js";import{ti}from"./chunk-index-rcwdqn50.js";import{Ut}from"./chunk-index-f500nw4w.js";import{L}from"./chunk-index-afrhnrxj.js";import{Kt,Dn,qr,xi,ns,is,rs,os,ss}from"./chunk-index-dvfkb699.js";import{ee,Te}from"./chunk-index-5zmswz4s.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-fg42egv9.js";import{Or}from"./chunk-index-83v0c9x6.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-fg42egv9.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("cv6069hy"),import("./chunk-table3d-cv6069hy.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("kwtjnpjj"),import("./chunk-seat-menu-kwtjnpjj.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-fg42egv9.js";import{dr,hr,pr,mr}from"./chunk-index-e02ddp46.js";import"./chunk-index-y60x5jbh.js";import{Bt}from"./chunk-index-f5x2srr0.js";import{Ti}from"./chunk-index-yrmqcay4.js";var F=()=>(h("8dzvysym"),import("./chunk-layout-actions-8dzvysym.js")),y=(a)=>(h("mwm9q1zn"),import("./chunk-placement-items-mwm9q1zn.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-e02ddp46.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-fg42egv9.js";import{En,sn}from"./chunk-index-n05yw5wd.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-c44p8q87.js";import"./chunk-index-rcwdqn50.js";import"./chunk-index-n8ghdvxb.js";import"./chunk-index-4z4chg7v.js";import"./chunk-index-afrhnrxj.js";import"./chunk-index-64rsz6pf.js";import"./chunk-index-3pnvpppa.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-fg42egv9.js";import"./chunk-index-4z4chg7v.js";import"./chunk-index-n8ghdvxb.js";import"./chunk-index-3pnvpppa.js";import{Vt}from"./chunk-index-rcwdqn50.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-ben4gv45.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at}from"./chunk-index-af4ebmkr.js";export{at as HostPicture};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Hr,Ae,jr,Kr,Jr,eo,to,nn,nr,no,zs}from"./chunk-index-3pnvpppa.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};
|