pi-roundtable-web 0.26.0 → 0.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/README.md +23 -7
- package/dist/chunk-account-ghq105t4.js +1 -0
- package/dist/{chunk-action-menu-rm5cyqkj.js → chunk-action-menu-me0g9qsc.js} +1 -1
- package/dist/{chunk-agent-b017vswv.js → chunk-agent-rdv7ekrt.js} +1 -1
- package/dist/chunk-arranged-rooms-81rqhx9x.js +1 -0
- package/dist/chunk-character-creator-bd426yjw.js +1 -0
- package/dist/chunk-codeeditor-ajhgd33t.js +2 -0
- package/dist/chunk-confirm-p3mts8mx.js +1 -0
- package/dist/{chunk-connectors-hrm06nx8.js → chunk-connectors-bkv3xn83.js} +1 -1
- package/dist/{chunk-conversations-e26rrf01.js → chunk-conversations-0e0vbxwr.js} +1 -1
- package/dist/{chunk-drag-v41gx2mc.js → chunk-drag-peyb8t0k.js} +1 -1
- package/dist/{chunk-entry-jxxb3ath.js → chunk-entry-mv7q8br0.js} +1 -1
- package/dist/chunk-folder-list-era3tksh.js +1 -0
- package/dist/chunk-folds-hvws0bd5.js +1 -0
- package/dist/{chunk-gate-8k61stsc.js → chunk-gate-hc7dd0fx.js} +1 -1
- package/dist/chunk-group-scene-dkbpmbh5.js +1 -0
- package/dist/chunk-group-table-fqmxgdfw.js +1 -0
- package/dist/chunk-host-icons-4xde9ntk.js +1 -0
- package/dist/chunk-host-picture-014yzk20.js +1 -0
- package/dist/chunk-host-state-t56e5sdy.js +1 -0
- package/dist/chunk-host-ui-p1zy9nmp.js +1 -0
- package/dist/chunk-index-0fmmvgee.js +2 -0
- package/dist/chunk-index-0q15ysrb.js +1 -0
- package/dist/chunk-index-0xh24y25.js +2 -0
- package/dist/chunk-index-2yebd9tb.js +426 -0
- package/dist/chunk-index-4t0r3t3b.js +2 -0
- package/dist/chunk-index-5yzfrf7b.js +138 -0
- package/dist/{chunk-index-2d0kg096.js → chunk-index-6twb7ccd.js} +2 -2
- package/dist/chunk-index-73gh7kgr.js +920 -0
- package/dist/chunk-index-7xffskfa.js +8 -0
- package/dist/chunk-index-aqw7cy5j.js +1 -0
- package/dist/{chunk-index-d1prgfbp.js → chunk-index-b6ca02e8.js} +2 -2
- package/dist/chunk-index-b8nvhcx5.js +2 -0
- package/dist/{chunk-index-014rjv9k.js → chunk-index-cvbdf2ca.js} +2 -2
- package/dist/chunk-index-czdketze.js +2 -0
- package/dist/{chunk-index-y8rnq8zf.js → chunk-index-dt9775ka.js} +3 -3
- package/dist/chunk-index-eg55mqqe.js +1 -0
- package/dist/{chunk-index-xgkd15n3.js → chunk-index-gr6e0hse.js} +1 -1
- package/dist/chunk-index-gyary7np.js +13 -0
- package/dist/chunk-index-j214tczc.js +1 -0
- package/dist/chunk-index-jd6632ef.js +2 -0
- package/dist/chunk-index-jw7dtshr.js +2 -0
- package/dist/{chunk-index-wnjp6wv0.js → chunk-index-k7t14rwa.js} +2 -2
- package/dist/{chunk-index-c07p8k0x.js → chunk-index-kwcx62wb.js} +3 -3
- package/dist/{chunk-index-hby0ap91.js → chunk-index-m7fvw92f.js} +2 -2
- package/dist/chunk-index-mmg788a1.js +2 -0
- package/dist/chunk-index-mq0dacwr.js +2 -0
- package/dist/chunk-index-p53ak25v.js +2 -0
- package/dist/{chunk-index-rhtvcbsq.js → chunk-index-pk1yxkv4.js} +2 -2
- package/dist/{chunk-index-2stynxw6.css → chunk-index-rbcz9jd4.css} +1 -1
- package/dist/{chunk-index-km40bhsz.js → chunk-index-rmxbdmn2.js} +2 -2
- package/dist/chunk-index-rnxj3z8k.js +2 -0
- package/dist/{chunk-index-hssjbr1k.js → chunk-index-snzzfhk3.js} +2 -2
- package/dist/chunk-index-v3bmr0nw.js +2 -0
- package/dist/{chunk-index-awx6nnta.js → chunk-index-vcyzwtk2.js} +1 -1
- package/dist/{chunk-index-nqfkwkfp.js → chunk-index-w2j3njb6.js} +2 -2
- package/dist/{chunk-index-e5sd30xy.js → chunk-index-w31c4yjv.js} +2 -2
- package/dist/chunk-index-wrm8w165.js +2 -0
- package/dist/chunk-index-xh0mg9cw.js +2 -0
- package/dist/chunk-index-ybtvvx85.js +2 -0
- package/dist/{chunk-index-dhpt8qr9.js → chunk-index-yzsgsvnp.js} +2 -2
- package/dist/{chunk-index-66nskrdj.js → chunk-index-z9x4cnzf.js} +2 -2
- package/dist/chunk-index-zrvg23jd.js +2 -0
- package/dist/chunk-index-zynq0b0w.js +50 -0
- package/dist/chunk-lang-css-88v3hp3d.js +1 -0
- package/dist/{chunk-lang-dockerfile-hrav55t7.js → chunk-lang-dockerfile-k728ewsf.js} +1 -1
- package/dist/{chunk-lang-go-x9ahv6e5.js → chunk-lang-go-wjwgay4v.js} +2 -2
- package/dist/chunk-lang-html-07d47es4.js +1 -0
- package/dist/chunk-lang-javascript-fmhhgzwd.js +1 -0
- package/dist/{chunk-lang-json-hsemyd0r.js → chunk-lang-json-7gd89mvs.js} +1 -1
- package/dist/{chunk-lang-markdown-zkwb4c9n.js → chunk-lang-markdown-b6qbe8bt.js} +5 -5
- package/dist/{chunk-lang-python-tewx7006.js → chunk-lang-python-3v56y31b.js} +2 -2
- package/dist/{chunk-lang-rust-0ydx84s1.js → chunk-lang-rust-kh0z74d1.js} +1 -1
- package/dist/{chunk-lang-shell-gq1tmdz4.js → chunk-lang-shell-9zv0zvbx.js} +1 -1
- package/dist/{chunk-lang-sql-xt1qyycg.js → chunk-lang-sql-yw6bf3t7.js} +2 -2
- package/dist/{chunk-lang-toml-0hamc5fc.js → chunk-lang-toml-tg1r96nq.js} +1 -1
- package/dist/chunk-lang-typescript-etjjvr2g.js +1 -0
- package/dist/{chunk-lang-xml-wf6h5pt2.js → chunk-lang-xml-ev1mndd4.js} +1 -1
- package/dist/{chunk-lang-yaml-7vk521h1.js → chunk-lang-yaml-fz5qpb3r.js} +1 -1
- package/dist/chunk-layout-actions-48ecgtkg.js +1 -0
- package/dist/{chunk-menu-items-1n9qargb.js → chunk-menu-items-1epy3h0t.js} +2 -2
- package/dist/chunk-mode-toggle-fxmfxsa4.js +1 -0
- package/dist/chunk-note-row-kd0fy7ee.js +75 -0
- package/dist/{chunk-notes-t15bh04m.js → chunk-notes-yb8f057c.js} +1 -1
- package/dist/chunk-notice-bell-wr4f1rph.js +1 -0
- package/dist/chunk-notices-x07da5bb.js +1 -0
- package/dist/chunk-onboarding-csrkbh9z.js +1 -0
- package/dist/{chunk-overview-km5vq375.js → chunk-overview-avc2d30t.js} +1 -1
- package/dist/{chunk-palette-a8txdgd0.js → chunk-palette-9nhp95bz.js} +1 -1
- package/dist/chunk-placement-items-q694dpgk.js +1 -0
- package/dist/chunk-profile-6qemf3m7.js +1 -0
- package/dist/{chunk-prompt-history-wm9dsy6s.js → chunk-prompt-history-7enzp2p3.js} +1 -1
- package/dist/chunk-prompts-nv6mrn0q.js +1 -0
- package/dist/chunk-room-confirms-zz7n61y7.js +1 -0
- package/dist/{chunk-room-menu-2tm2xtfx.js → chunk-room-menu-rr6nzap1.js} +1 -1
- package/dist/{chunk-rooms-menu-button-wxnsxjwc.js → chunk-rooms-menu-button-zbtwj47d.js} +1 -1
- package/dist/chunk-schedules-rw57nr0m.js +1 -0
- package/dist/{chunk-seat-menu-d3npdtx1.js → chunk-seat-menu-ys5v9abz.js} +1 -1
- package/dist/chunk-sheet-hosts-jhvaacst.js +1 -0
- package/dist/chunk-skill-editor-sz8an8qr.js +8 -0
- package/dist/{chunk-skills-shkdwes8.js → chunk-skills-tnr1h16h.js} +1 -1
- package/dist/chunk-switcher-list-17enhrse.js +1 -0
- package/dist/chunk-tab-dot-r6brdbmw.js +1 -0
- package/dist/chunk-table-r12cja6p.js +1 -0
- package/dist/chunk-table-seats-g3t392zz.js +1 -0
- package/dist/{chunk-table2d-n26b7gd0.js → chunk-table2d-p3ezsdcj.js} +1 -1
- package/dist/{chunk-table3d-8aysyf56.js → chunk-table3d-4x2n2b00.js} +20 -20
- package/dist/chunk-thread-actions-qc6ezkha.js +1 -0
- package/dist/chunk-transcript-n2s6dher.js +1 -0
- package/dist/chunk-where-f3scdydc.js +1 -0
- package/dist/chunk-workspace-xs023bxm.js +1 -0
- package/dist/chunk-zh-tw-efvmk3fd.js +1 -0
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/package.json +2 -2
- package/src/api-types.ts +58 -3
- package/src/app/app.ts +5 -0
- package/src/app/room-log.ts +16 -4
- package/src/app/rooms.ts +39 -0
- package/src/app/routes.ts +44 -2
- package/src/app/socket.ts +45 -9
- package/src/app/threads.ts +31 -2
- package/src/auth/authenticator.ts +10 -4
- package/src/auth/login-page.ts +4 -2
- package/src/auth/oidc-pages.ts +2 -0
- package/src/auth/oidc.ts +39 -1
- package/src/authz.ts +2 -1
- package/src/console-server.ts +32 -6
- package/src/host/cards.ts +18 -5
- package/src/host/context.ts +72 -25
- package/src/host/forms.ts +3 -0
- package/src/host/frames.ts +8 -1
- package/src/host/host-app.ts +6 -4
- package/src/host/host-routes.ts +36 -3
- package/src/host/room-views.ts +6 -6
- package/src/host/rooms-service.ts +16 -1
- package/src/host/views.ts +3 -0
- package/src/i18n/zh-tw.ts +9 -2
- package/src/index.ts +15 -1
- package/src/options.ts +36 -0
- package/src/page-presentation.ts +47 -2
- package/src/pwa.ts +32 -4
- package/src/web-app.ts +47 -3
- package/src/web-plugin.ts +20 -9
- package/dist/chunk-account-hw49gd0d.js +0 -1
- package/dist/chunk-arranged-rooms-q5v3dm1r.js +0 -1
- package/dist/chunk-character-creator-5dxcvd16.js +0 -1
- package/dist/chunk-codeeditor-pyt09fwg.js +0 -2
- package/dist/chunk-confirm-521yqmta.js +0 -1
- package/dist/chunk-folder-list-b97xk12b.js +0 -1
- package/dist/chunk-folds-b8q7eags.js +0 -1
- package/dist/chunk-group-scene-dx6wt19m.js +0 -1
- package/dist/chunk-group-table-e4jr8r3a.js +0 -1
- package/dist/chunk-host-state-g7e7c0k5.js +0 -1
- package/dist/chunk-host-ui-x7k6n07v.js +0 -939
- package/dist/chunk-index-2qd81wbx.js +0 -2
- package/dist/chunk-index-459drsft.js +0 -2
- package/dist/chunk-index-4mfj596y.js +0 -2
- package/dist/chunk-index-bbsytycb.js +0 -2
- package/dist/chunk-index-cq1e9xdz.js +0 -2
- package/dist/chunk-index-g351921r.js +0 -1
- package/dist/chunk-index-k2qq1gdj.js +0 -2
- package/dist/chunk-index-ke9ynm0n.js +0 -2
- package/dist/chunk-index-kpscvg85.js +0 -2
- package/dist/chunk-index-m0d100mg.js +0 -2
- package/dist/chunk-index-mb72snk9.js +0 -2
- package/dist/chunk-index-mjqqver5.js +0 -4
- package/dist/chunk-index-nwqk447w.js +0 -2
- package/dist/chunk-index-pcfhpm8v.js +0 -302
- package/dist/chunk-index-q8h8xzbm.js +0 -2
- package/dist/chunk-index-r5vszgfs.js +0 -2
- package/dist/chunk-index-rjv7vrwd.js +0 -13
- package/dist/chunk-index-v23m38p6.js +0 -50
- package/dist/chunk-index-va0g7d88.js +0 -1
- package/dist/chunk-index-z3k18atc.js +0 -2
- package/dist/chunk-lang-css-6bepqpnx.js +0 -1
- package/dist/chunk-lang-html-8jc72zt4.js +0 -1
- package/dist/chunk-lang-javascript-2p2qtbnf.js +0 -1
- package/dist/chunk-lang-typescript-82xf7z2e.js +0 -1
- package/dist/chunk-layout-actions-zh7bezk7.js +0 -1
- package/dist/chunk-notice-bell-w3y0h0sr.js +0 -1
- package/dist/chunk-notices-fa3g7qze.js +0 -1
- package/dist/chunk-onboarding-34v3nr17.js +0 -1
- package/dist/chunk-placement-items-wgaxsbvs.js +0 -1
- package/dist/chunk-profile-ypxdbsk1.js +0 -1
- package/dist/chunk-prompts-7mhhq7zs.js +0 -1
- package/dist/chunk-room-confirms-t11a1gsw.js +0 -1
- package/dist/chunk-schedules-2ft6xxyw.js +0 -1
- package/dist/chunk-sheet-hosts-vngvp7wv.js +0 -1
- package/dist/chunk-skill-editor-65n2hsq4.js +0 -8
- package/dist/chunk-switcher-list-g6hhmr1t.js +0 -1
- package/dist/chunk-table-1b6bsq2y.js +0 -1
- package/dist/chunk-table-seats-vy1qhdks.js +0 -1
- package/dist/chunk-transcript-355faceq.js +0 -1
- package/dist/chunk-where-j5qdt8a4.js +0 -1
- package/dist/chunk-workspace-vrbs6zx1.js +0 -1
- package/dist/chunk-zh-tw-zeg600bk.js +0 -1
package/src/web-plugin.ts
CHANGED
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
SKILLS,
|
|
15
15
|
} from "pi-roundtable";
|
|
16
16
|
import { DISCORD } from "pi-roundtable/discord";
|
|
17
|
-
import type { PaneName } from "./api-types.ts";
|
|
17
|
+
import type { KindLinkView, PageLinkView, PaneName } from "./api-types.ts";
|
|
18
18
|
import { APP_MIGRATIONS, OwnerApp } from "./app/app.ts";
|
|
19
19
|
import { APP_PROTOCOL } from "./app/protocol.ts";
|
|
20
20
|
import { UPLOAD_FRAMING_BYTES } from "./app/uploads.ts";
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
} from "./options.ts";
|
|
45
45
|
import { loadVapid } from "./push/vapid.ts";
|
|
46
46
|
import { accessVisitors, consoleVisitors } from "./visitors.ts";
|
|
47
|
-
import { viewerOf, WEB_APP, WebAppRegistry } from "./web-app.ts";
|
|
47
|
+
import { hostIcon, viewerOf, WEB_APP, WebAppRegistry } from "./web-app.ts";
|
|
48
48
|
|
|
49
49
|
/** How often sessions past their limit are deleted: daily. */
|
|
50
50
|
const SESSION_SWEEP_MS = 86_400_000;
|
|
@@ -204,13 +204,14 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
204
204
|
// A broken page stops startup here, before anything connects.
|
|
205
205
|
const assets = loadAssets(settings.assetDir);
|
|
206
206
|
const gate = new Gate({ registry: webApp });
|
|
207
|
+
/** The `icon` of a link when the host named one of the console's icons. */
|
|
208
|
+
const iconOf = (name: unknown) => {
|
|
209
|
+
const icon = hostIcon(name);
|
|
210
|
+
return icon ? { icon } : {};
|
|
211
|
+
};
|
|
207
212
|
const hosted: ConsolePorts["hosted"] = async (visitor) => {
|
|
208
213
|
const viewer = viewerOf(visitor);
|
|
209
|
-
const pages:
|
|
210
|
-
id: string;
|
|
211
|
-
label: string;
|
|
212
|
-
place: "main" | "settings" | "hidden";
|
|
213
|
-
}[] = [];
|
|
214
|
+
const pages: PageLinkView[] = [];
|
|
214
215
|
for (const page of webApp.hostPages()) {
|
|
215
216
|
try {
|
|
216
217
|
if (await page.visible(viewer))
|
|
@@ -218,6 +219,7 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
218
219
|
id: page.id,
|
|
219
220
|
label: page.label,
|
|
220
221
|
place: page.place,
|
|
222
|
+
...iconOf(page.icon),
|
|
221
223
|
});
|
|
222
224
|
} catch (error) {
|
|
223
225
|
logger.warn(
|
|
@@ -226,11 +228,15 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
226
228
|
);
|
|
227
229
|
}
|
|
228
230
|
}
|
|
229
|
-
const kinds:
|
|
231
|
+
const kinds: KindLinkView[] = [];
|
|
230
232
|
for (const kind of webApp.kinds()) {
|
|
231
233
|
try {
|
|
232
234
|
if ((await kind.list(viewer, {})) !== undefined)
|
|
233
|
-
kinds.push({
|
|
235
|
+
kinds.push({
|
|
236
|
+
kind: kind.kind,
|
|
237
|
+
label: kind.label,
|
|
238
|
+
...iconOf(kind.icon),
|
|
239
|
+
});
|
|
234
240
|
} catch (error) {
|
|
235
241
|
logger.warn(
|
|
236
242
|
{ kind: kind.kind, err: error },
|
|
@@ -418,6 +424,8 @@ async function build(settings: ResolvedOptions, context: Context) {
|
|
|
418
424
|
authenticator,
|
|
419
425
|
pathRouting: settings.routing === "path",
|
|
420
426
|
title: settings.title,
|
|
427
|
+
origin: settings.origin,
|
|
428
|
+
...(settings.description ? { description: settings.description } : {}),
|
|
421
429
|
...(settings.iconsDir ? { iconsDir: settings.iconsDir } : {}),
|
|
422
430
|
look: settings.look,
|
|
423
431
|
...(settings.presentation ? { presentation: settings.presentation } : {}),
|
|
@@ -536,6 +544,9 @@ async function startOidc(
|
|
|
536
544
|
at: new Date(),
|
|
537
545
|
}),
|
|
538
546
|
onEnded: parts.ended,
|
|
547
|
+
...(auth.onSessionVerified
|
|
548
|
+
? { onSessionVerified: auth.onSessionVerified }
|
|
549
|
+
: {}),
|
|
539
550
|
logger,
|
|
540
551
|
});
|
|
541
552
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O,C,S,e,v}from"./chunk-index-v23m38p6.js";var a={profile:S(()=>(O("ypxdbsk1"),import("./chunk-profile-ypxdbsk1.js")).then((o)=>({default:o.ProfilePage}))),notices:S(()=>(O("fa3g7qze"),import("./chunk-notices-fa3g7qze.js")).then((o)=>({default:o.NoticesPage}))),onboarding:S(()=>(O("34v3nr17"),import("./chunk-onboarding-34v3nr17.js")).then((o)=>({default:o.OnboardingPage})))};function n({pane:o}){let t=a[o];return t?e(C,{fallback:e(v,{}),children:e(t,{})}):null}export{n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O,C,S,ee,A,o,t,p,e,n,s,d,_,k,ge,Lt,en,ne,yi,Gn,Wi,vn,Zn,Yi}from"./chunk-index-v23m38p6.js";import{Te}from"./chunk-index-nwqk447w.js";import{Cn,An,$n,Rt}from"./chunk-index-pcfhpm8v.js";import{En}from"./chunk-index-cq1e9xdz.js";import{It,_t}from"./chunk-index-459drsft.js";Cn();var M=S(()=>(O("b97xk12b"),import("./chunk-folder-list-b97xk12b.js")).then((a)=>({default:a.FolderList}))),Z=ee(function(l){let{view:r}=l,h=Rt(()=>Lt(r.key),r.home?void 0:An(r.key));return e(Wi,{...l,press:h,item:{...r.home?{}:{"data-drop-item":"","data-key":r.key},...l.arranging?{"data-arranging":""}:{}},after:l.arranging?e("button",{type:"button",className:"icon-button row-more","aria-haspopup":"menu","aria-label":t("Room menu"),onClick:(c)=>{let u=c.currentTarget;Lt(r.key).then((i)=>{if(!i)return;let v=u.getBoundingClientRect();ge({...i,at:{x:v.left,y:v.bottom},via:"key",source:u})},()=>{return})},children:e(s,{name:"more",size:18})}):null})});function P(a){let{now:l}=ne(),{timeZone:r}=k(),h=vn(a.rooms);return e("ul",{className:"room-list",children:h.map(({key:c,...u})=>{let i=a.threads[c];return e(Z,{...u,active:c===a.active,now:l,timeZone:r,arranging:a.arranging,...i?{threads:e(Zn,{open:i.open,closed:i.closed,active:a.active})}:{}},c)})})}function b(a){let r=vn(a.rooms).length===0;if(r&&a.zone?.kind!=="pinned")return null;return n("section",{className:"stack",...r?{"data-empty":""}:{},...a.zone?{"data-drop-zone":a.zone.kind,"data-zone-id":a.zone.id}:{},children:[e("h2",{className:"section-title",children:a.title}),r?null:e(P,{rooms:a.rooms,threads:a.threads,active:a.active,arranging:a.arranging})]})}function re(a){let l=Boolean(k().kinds?.length),r=d((m)=>JSON.stringify({listed:m.listed,...It(m,(K)=>_t(m,K))})),h=$n(),c=o(r);if(!h)c.current=r;let u=c.current,{listed:i,...v}=A(()=>JSON.parse(u),[u]),{home:R,pinned:w,folders:y,restAgents:T,restGroups:D,rest:z,threads:L,orphans:g}=v,N=yi(),F=R.length+w.length+z.length===0&&y.every((m)=>m.rooms.length===0)&&g.open.length+g.closed.length===0,f={threads:L,active:a.active,arranging:N};return n("div",{className:"page","data-column":a.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:a.onSearch,children:[e(s,{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:(m)=>En(m.currentTarget),children:e(s,{name:"more",size:18})}):null,e("button",{type:"button",className:"header-button icon-button","aria-label":t("Add"),"aria-haspopup":"menu",onClick:(m)=>en(m.currentTarget),children:e(s,{name:"plus"})})]})]}),N?n("div",{className:"arrange-bar",children:[n("button",{type:"button",className:"secondary",onClick:()=>Te({kind:"new"}),children:[e(s,{name:"plus",size:16}),e("span",{children:t("Add a folder")})]}),e("button",{type:"button",onClick:()=>Gn(!1),children:t("Done")})]}):null,i&&F&&!l?e(_,{children:t("No rooms yet. Rooms appear when the team has an agent.")}):null,!i?n("div",{className:"stack","aria-busy":"true",children:[e("div",{className:"skeleton"}),e("div",{className:"skeleton"}),e("div",{className:"skeleton"})]}):null,e(b,{title:t("Home"),rooms:R,...f}),e(b,{title:t("Pinned"),rooms:w,zone:{kind:"pinned",id:"pinned"},...f}),y.length>0?e("div",{className:"stack folder-list","data-folder-list":"",children:e(C,{fallback:e("div",{className:"skeleton","aria-busy":"true"}),children:e(M,{folders:y,active:a.active,listed:i,rooms:(m)=>e(P,{rooms:m,threads:L,active:a.active,arranging:N})})})}):null,y.length>0?e(b,{title:t("Ungrouped"),rooms:z,zone:{kind:"rest",id:"rest"},...f}):n(p,{children:[e(b,{title:t("Agents"),rooms:T,zone:{kind:"rest",id:"rest-agents"},...f}),e(b,{title:t("Groups"),rooms:D,zone:{kind:"rest",id:"rest-groups"},...f})]}),g.open.length+g.closed.length>0?n("section",{className:"stack",children:[e("h2",{className:"section-title",children:t("Dispatch threads")}),e(Zn,{open:g.open,closed:g.closed,active:a.active})]}):null,e(Yi,{active:a.active})]})}export{re as ArrangedRoomsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Le,Xt,B,Wn,sn}from"./chunk-index-66nskrdj.js";import{ee,Ii,a,D,A,o,r,t,c,p,e,n,Dn,oe,y,u,m,tn,de,ze,ke}from"./chunk-index-v23m38p6.js";import{H}from"./chunk-index-e5sd30xy.js";import{I}from"./chunk-index-awx6nnta.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"},X=(i)=>i.charAt(0).toUpperCase()+i.slice(1);function N(i,l){let h=`character.${i}.${l}`,b=t(h);if(b!==h)return b;if(i==="class")return B.classes[l]?.label??X(l);return fe[`${i}.${l}`]??X(l)}function Y(i){let l=`character.jobs.${i}`,h=t(l);return h!==l?h:B.classes[i]?.jobs??""}var W=[{field:"hat",title:c("Hat"),ids:B.hats},{field:"outfit",title:c("Outfit"),ids:B.outfits},{field:"prop",title:c("Prop"),ids:B.props},{field:"hair",title:c("Hair"),ids:B.hair},{field:"beard",title:c("Beard"),ids:["none",...B.beards]},{field:"accessory",title:c("Accessory"),ids:["none",...B.accessories]}],me=new Set(["class","colors","palette","build","skin","hairColor",...W.map((i)=>i.field)]),re=Object.keys(B.palettes),Z={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 U(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(U(i)),C=(i)=>i[Math.floor(Math.random()*i.length)];function be(){return{class:C(Le),outfit:C(B.outfits),hat:C(B.hats),prop:C(B.props),hair:C(B.hair),beard:C(["none",...B.beards]),accessory:C(["none",...B.accessories]),build:C(["slim","regular","stout"]),skin:C([0,1,2,3,4,5]),hairColor:C(B.hairColors),palette:C(re)}}var ie=ee(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(de,{spec:l.spec,size:l.size,live:!1}),e("span",{children:l.label})]})});function ge(i,l,h){let b=JSON.stringify({...i,[l]:0});return A(()=>h.map((d)=>({...i,[l]:d})),[b,l,h])}function pe(){let i=o(null),[l,h]=r();return a(()=>{let b=i.current;if(!b)return;let d=()=>{let S=b.scrollLeft>1,L=b.scrollLeft+b.clientWidth<b.scrollWidth-1;h(S&&L?"both":L?"end":S?"start":void 0)};d(),b.addEventListener("scroll",d,{passive:!0});let g=typeof ResizeObserver>"u"?void 0:new ResizeObserver(d);return g?.observe(b),()=>{b.removeEventListener("scroll",d),g?.disconnect()}},[]),[i,l]}function ye(i){let{part:l}=i,h=ge(i.shown,l.field,l.ids),[b,d]=pe();return e("div",{className:"creator-strip",ref:b,"data-more":d,children:l.ids.map((g,S)=>e(ie,{data:{[`data-${l.field}`]:g},spec:h[S],size:44,label:N(l.field,g),pressed:i.draft[l.field]===g,onPick:()=>i.onPick(g)},g))})}function z(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 Oe(i){let[l,h]=r(i.character),b=Ii(l),[d,g]=r({}),[S,L]=r(!1),[R,ne]=r("idle"),[_,T]=r(),[F,j]=r(),G=ke("(max-width: 719px)"),J=o(null),K=D(),se=ze(l),le=tn(),w=te(l)!==te(i.character);a(()=>h(i.character),[i.character]),a(()=>{if(!w||i.onPick)return;let s=(k)=>k.preventDefault(),f=(k)=>{if(k.button!==0||k.metaKey||k.ctrlKey||k.shiftKey||k.altKey)return;let E=k.target instanceof Element?k.target.closest("a"):null;if(!E||E.target||E.hasAttribute("download"))return;if(J.current?.contains(E))return;k.preventDefault(),k.stopPropagation(),T({kind:"link",anchor:E})},O=Dn((k)=>T({kind:"navigate",proceed:k}));return window.addEventListener("beforeunload",s),document.addEventListener("click",f,!0),()=>{O(),window.removeEventListener("beforeunload",s),document.removeEventListener("click",f,!0)}},[w,i.onPick]);let v=(s)=>{g({}),h((f)=>Wn(s,f))},ce=async()=>{if(i.onPick){i.onPick(U(l),l);return}L(!0),g({});try{let s=await y.setCharacter(i.name,U(l));i.onSaved?.(s),m(t("Saved."))}catch(s){let f=s instanceof oe&&s.field?s.field.split(".")[0]:void 0,O=f&&me.has(f)?f:"*";g({[O]:u(s)})}finally{L(!1)}},ue=async()=>{let s=_;if(h(i.character),g({}),s?.kind==="link")setTimeout(()=>s.anchor.click(),0);else if(s?.kind==="navigate")s.proceed()},V=e(P,{field:"class",title:t("Class"),error:d.class,children:e("div",{className:"creator-grid",children:Le.map((s)=>e(Ce,{id:s,base:b,pressed:l.class===s,onPick:()=>v({class:s,colors:l.colors})},s))})}),q=n(P,{field:"colors",title:t("Colors"),error:d.colors??d.palette,children:[n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Palette")}),re.map((s)=>{let f=B.palettes[s];return e(z,{data:{"data-palette":s},label:N("palette",s),pressed:l.palette===s,background:`linear-gradient(135deg, ${f.primary} 52%, ${f.trim} 52%)`,onPick:()=>v({palette:s})},s)})]}),e("div",{className:"creator-custom",children:["primary","secondary","trim"].map((s)=>n("label",{children:[e("span",{children:s==="primary"?t("Primary (the accent)"):s==="secondary"?t("Secondary"):t("Trim")}),e("input",{type:"color",value:l.colors[s],onChange:(f)=>v({colors:{[s]:f.target.value}})})]},s))})]}),x=W.map((s)=>e(P,{field:s.field,title:t(s.title),error:d[s.field],children:e(ye,{part:s,draft:l,shown:b,onPick:(f)=>v({[s.field]:f})})},s.field)),Q=n(p,{children:[e(P,{field:"build",title:t("Build"),error:d.build,children:n("fieldset",{className:"segmented",children:[e("legend",{className:"visually-hidden",children:t("Build")}),["slim","regular","stout"].map((s)=>n("label",{"data-checked":l.build===s,children:[e("input",{type:"radio",name:`${K}-build`,checked:l.build===s,onChange:()=>v({build:s})}),ae(s)]},s))]})}),e(P,{field:"skin",title:t("Skin tone"),error:d.skin,children:n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Skin tone")}),(le??B.skins).map((s,f)=>e(z,{data:{"data-skin":String(f)},label:t("Skin tone {n}",{n:f+1}),pressed:l.skin===f,background:s,onPick:()=>v({skin:f})},f))]})}),e(P,{field:"hairColor",title:t("Hair color"),error:d.hairColor,children:n("fieldset",{className:"creator-swatches",children:[e("legend",{className:"visually-hidden",children:t("Hair color")}),B.hairColors.map((s,f)=>e(z,{data:{"data-hair-color":s},label:t("Hair color {n}",{n:f+1}),pressed:l.hairColor===s,background:s,onPick:()=>v({hairColor:s})},s)),e("input",{type:"color","aria-label":t("Hair color"),value:l.hairColor,onChange:(s)=>v({hairColor:s.target.value})})]})})]}),M=[{id:"class",title:t("Class"),summary:N("class",l.class),error:d.class,node:V},{id:"colors",title:t("Colors"),summary:l.palette?N("palette",l.palette):l.colors.primary,error:d.colors??d.palette,node:q},...W.map((s,f)=>({id:s.field,title:t(s.title),summary:N(s.field,l[s.field]),error:d[s.field],node:x[f]})),{id:"body",title:t("Body"),summary:ae(l.build),error:d.build??d.skin??d.hairColor,node:Q}];return n("form",{ref:J,className:"creator",style:se,"aria-labelledby":K,onSubmit:(s)=>{if(s.preventDefault(),(w||i.onPick)&&!S)ce()},children:[e("h2",{id:K,className:"visually-hidden",children:t("Character of {name}",{name:i.displayName})}),n("div",{className:"creator-preview",children:[e(de,{spec:l,name:i.name,state:R,size:176,label:t("{name}, {state}",{name:i.displayName,state:t(Z[R])})}),e("button",{type:"button",className:"secondary","data-action":"cycle",onClick:()=>ne((s)=>Xt[(Xt.indexOf(s)+1)%Xt.length]??"idle"),children:t("Preview states")}),e("span",{className:"meta","aria-live":"polite",children:t(Z[R])})]}),n("div",{className:"creator-body",children:[d["*"]?e("p",{className:"field-error",role:"alert","data-field":"*",children:d["*"]}):null,G?e("ul",{className:"creator-sections",children:M.map((s)=>e("li",{children:n("button",{type:"button",className:"creator-section secondary",onClick:()=>j(s.id),children:[e("strong",{children:s.title}),e("span",{className:"meta",children:s.summary}),s.error?e("span",{className:"field-error",role:"alert",children:s.error}):null]})},s.id))}):n(p,{children:[V,q,x,Q]}),n("div",{className:"actions creator-actions",children:[e("button",{type:"button",className:"secondary","data-action":"suggest",onClick:()=>{g({}),h(sn({name:i.name,displayName:i.displayName,prompt:i.prompt}))},children:t("Suggest from role")}),e("button",{type:"button",className:"secondary","data-action":"randomize",onClick:()=>v(be()),children:t("Randomize")}),e("button",{type:"button",className:"secondary","data-action":"cancel",onClick:()=>{if(i.onCancel)i.onCancel();else if(w)T({kind:"cancel"})},children:t("Cancel")}),e("button",{type:"submit","data-action":"save",disabled:!w&&!i.onPick||S,children:S?t("Saving…"):i.onPick?t("Use this look"):t("Save")})]})]}),e(I,{open:G&&F!==void 0,title:M.find((s)=>s.id===F)?.title??"",onClose:()=>j(void 0),children:e("div",{className:"stack",children:M.find((s)=>s.id===F)?.node})}),e(H,{open:_!==void 0,title:t("Discard your changes?"),confirmLabel:t("Discard"),cancelLabel:t("Keep editing"),tone:"danger",onClose:()=>T(void 0),onConfirm:ue,children:e("p",{children:t("The new look for {name} has not been saved.",{name:i.displayName})})})]})}var ae=(i)=>t(he[i]);function Ce(i){let l=i.base.colors,h=A(()=>Wn({class:i.id,colors:l}),[i.id,l]);return e(ie,{data:{"data-class":i.id},spec:h,size:56,label:N("class",i.id),hint:Y(i.id),pressed:i.pressed,onPick:i.onPick})}export{Oe as CharacterCreator};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{U,fe,jn,Or,Kn,je,he,l,b,Se,Re,Tt,Ee,q,re,se,z,ot,lt,Ce,pe,R,J,we,g,pt,gr,yr,br,Jn,kn,vr,xr,Sr,wr,T,i,E,qe,Mt,Qn,Qi,on,ln,Tr,Pr,Je}from"./chunk-index-rjv7vrwd.js";import{O}from"./chunk-index-v23m38p6.js";var nn=(e)=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=Ae(e.state,n.from);return r.line?rn(e):r.block?cn(e):!1};function Me(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=Me(hn,0);var sn=Me(et,0);var cn=Me((e,t)=>et(e,t,un(t)),0);function Ae(e,t){let n=e.languageDataAt("commentTokens",t,1);return n.length?n[0]:{}}var V=50;function an(e,{open:t,close:n},r,o){let s=e.sliceDoc(r-V,r),c=e.sliceDoc(o,o+V),a=/\s*$/.exec(s)[0].length,u=/^\s*/.exec(c)[0].length,f=s.length-a;if(s.slice(f-t.length,f)==t&&c.slice(u,u+n.length)==n)return{open:{pos:r-a,margin:a&&1},close:{pos:o+u,margin:u&&1}};let h,d;if(o-r<=2*V)h=d=e.sliceDoc(r,o);else h=e.sliceDoc(r,r+V),d=e.sliceDoc(o-V,o);let m=/^\s*/.exec(h)[0].length,L=/\s*$/.exec(d)[0].length,v=d.length-L-n.length;if(h.slice(m,m+t.length)==t&&d.slice(v,v+n.length)==n)return{open:{pos:r+m+t.length,margin:/\s/.test(h.charAt(m+t.length))?1:0},close:{pos:o-L-n.length,margin:/\s/.test(d.charAt(v-1))?1:0}};return null}function un(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 et(e,t,n=t.selection.ranges){let r=n.map((s)=>Ae(t,s.from).block);if(!r.every((s)=>s))return null;let o=n.map((s,c)=>an(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:f,close:h}=a;s.push({from:f.pos-u.open.length,to:f.pos+f.margin},{from:h.pos-h.margin,to:h.pos+u.close.length})}return{changes:s}}return null}function hn(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,f;for(let h=s;h<=c;){let d=t.doc.lineAt(h);if(f==null){if(f=Ae(t,d.from).line,!f)continue e}if(d.from>o&&(s==c||c>d.from)){o=d.from;let m=/^\s*/.exec(d.text)[0].length,L=m==d.length,v=d.text.slice(m,m+f.length)==f?m:-1;if(m<d.text.length&&m<u)u=m;r.push({line:d,comment:v,token:f,indent:m,empty:L,single:!1})}h=d.to+1}if(u<1e9){for(let h=a;h<r.length;h++)if(r[h].indent<r[h].line.text.length)r[h].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:f,empty:h,single:d}of r)if(d||!h)s.push({from:a.from+f,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 f=c.from+a,h=f+u.length;if(c.text[h-c.from]==" ")h++;s.push({from:f,to:h})}return{changes:s}}return null}var ke=Ee.define(),fn=Ee.define(),dn=b.define(),tt=b.define({combine(e){return ot(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)})}}),nt=Se.define({create(){return A.empty},update(e,t){let n=t.state.facet(tt),r=t.annotation(ke);if(r){let u=y.fromTransaction(t,r.selection),f=r.side,h=f==0?e.undone:e.done;if(u)h=j(h,h.length,n.minDepth,u);else h=st(h,t.startState.selection);return new A(f==0?r.rest:h,f==0?h:r.rest)}let o=t.annotation(fn);if(o=="full"||o=="before")e=e.isolate();if(t.annotation(re.addToHistory)===!1)return!t.changes.empty?e.addMapping(t.changes.desc):e;let s=y.fromTransaction(t),c=t.annotation(re.time),a=t.annotation(re.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 A(e.done.map(y.fromJSON),e.undone.map(y.fromJSON))}});function rt(e={}){return[nt,tt.of(e),g.domEventHandlers({beforeinput(t,n){let r=t.inputType=="historyUndo"?Y:t.inputType=="historyRedo"?G:null;if(!r)return!1;return t.preventDefault(),r(n)}})]}function X(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let o=n.field(nt,!1);if(!o)return!1;let s=o.pop(e,n,t);if(!s)return!1;return r(s),!0}}var Y=X(0,!1),G=X(1,!1),mn=X(0,!0),pn=X(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&&he.fromJSON(e.changes),[],e.mapped&&je.fromJSON(e.mapped),e.startSelection&&l.fromJSON(e.startSelection),e.selectionsAfter.map(l.fromJSON))}static fromTransaction(e,t){let n=S;for(let r of e.startState.facet(dn)){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,S)}static selection(e){return new y(void 0,S,void 0,void 0,e)}}function j(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 gn(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 f=n[u++],h=n[u++];if(a>=f&&c<=h)r=!0}}),r}function yn(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((n,r)=>n.empty!=t.ranges[r].empty).length===0}function it(e,t){return!e.length?t:!t.length?e:e.concat(t)}var S=[],xn=200;function st(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-xn));if(r.length&&r[r.length-1].eq(t))return e;return r.push(t),j(e,e.length-1,1e9,n.setSelAfter(r))}}function Sn(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 xe(e,t){if(!e.length)return e;let n=e.length,r=S;while(n){let o=vn(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)]:S}function vn(e,t,n){let r=it(e.selectionsAfter.length?e.selectionsAfter.map((a)=>a.map(t)):S,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,q.mapEffects(e.effects,t),c,e.startSelection.map(s),r)}var bn=/^(input\.type|delete)($|\.)/;class A{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 A(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||bn.test(n))&&(!c.selectionsAfter.length&&t-this.prevTime<r.newGroupDelay&&r.joinToEvent(o,gn(c.changes,e.changes))||n=="input.type.compose"))s=j(s,s.length-1,r.minDepth,new y(e.changes.compose(c.changes),it(q.mapEffects(e.effects,c.changes),c.effects),c.mapped,c.startSelection,S));else s=j(s,s.length,r.minDepth,e);return new A(s,S,t,n)}addSelection(e,t,n,r){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:S;if(o.length>0&&t-this.prevTime<r&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&yn(o[o.length-1],e))return this;return new A(st(this.done,e),this.undone,t,n)}addMapping(e){return new A(xe(this.done,e),xe(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:ke.of({side:e,rest:Sn(r),selection:s}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});else if(!o.changes)return null;else{let c=r.length==1?S:r.slice(0,r.length-1);if(o.mapped)c=xe(c,o.mapped);return t.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:ke.of({side:e,rest:c,selection:s}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}}}A.empty=new A(S,S);var ct=[{key:"Mod-z",run:Y,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:G,preventDefault:!0},{linux:"Ctrl-Shift-z",run:G,preventDefault:!0},{key:"Mod-u",run:mn,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:pn,preventDefault:!0}];function F(e,t){return l.create(e.ranges.map(t),e.mainIndex)}function C(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function M({state:e,dispatch:t},n){let r=F(e.selection,n);if(r.eq(e.selection,!0))return!1;return t(C(e,r)),!0}function Z(e,t){return l.cursor(t?e.to:e.from)}function at(e,t){return M(e,(n)=>n.empty?e.moveByChar(n,t):Z(n,t))}function p(e){return e.textDirectionAt(e.state.selection.main.head)==J.LTR}var ut=(e)=>at(e,!p(e)),ht=(e)=>at(e,p(e));function ft(e,t){return M(e,(n)=>n.empty?e.moveByGroup(n,t):Z(n,t))}var Cn=(e)=>ft(e,!p(e)),Mn=(e)=>ft(e,p(e));var lo=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"word"}):null;function An(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 ee(e,t,n){let r=E(e).resolveInner(t.head),o=n?T.closedBy:T.openedBy;for(let u=t.head;;){let f=n?r.childAfter(u):r.childBefore(u);if(!f)break;if(An(e,f,o))r=f;else u=n?f.to:f.from}let s=r.type.prop(o),c,a;if(s&&(c=n?Je(e,r.from,1):Je(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 Ln=(e)=>M(e,(t)=>ee(e.state,t,!p(e))),Bn=(e)=>M(e,(t)=>ee(e.state,t,p(e)));function dt(e,t){return M(e,(n)=>{if(!n.empty)return Z(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)})}var mt=(e)=>dt(e,!1),gt=(e)=>dt(e,!0);function yt(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,o;if(t){for(let s of e.state.facet(g.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 xt(e,t){let n=yt(e),{state:r}=e,o=F(r.selection,(c)=>c.empty?e.moveVertically(c,t,n.height):Z(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,f=a.bottom-n.marginBottom;if(c&&c.top>u&&c.bottom<f)s=g.scrollIntoView(o.main.head,{y:"start",yMargin:c.top-u})}return e.dispatch(C(r,o),{effects:s}),!0}var _e=(e)=>xt(e,!1),ve=(e)=>xt(e,!0);function B(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 Dn=(e)=>M(e,(t)=>B(e,t,!0)),En=(e)=>M(e,(t)=>B(e,t,!1)),Tn=(e)=>M(e,(t)=>B(e,t,!p(e))),wn=(e)=>M(e,(t)=>B(e,t,p(e))),Wn=(e)=>M(e,(t)=>e.moveToLineBoundary(t,!1,!1)),Rn=(e)=>M(e,(t)=>e.moveToLineBoundary(t,!0,!1));function On(e,t,n){let r=!1,o=F(e.selection,(s)=>{let c=Je(e,s.head,-1)||Je(e,s.head,1)||s.head>0&&Je(e,s.head-1,1)||s.head<e.doc.length&&Je(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(C(e,o)),!0}var Fn=({state:e,dispatch:t})=>On(e,t,!1);function k(e,t,n){let r=F(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(C(e.state,r)),!0}function St(e,t){return k(e,t,(n)=>e.moveByChar(n,t))}var kt=(e)=>St(e,!p(e)),vt=(e)=>St(e,p(e));function bt(e,t){return k(e,t,(n)=>e.moveByGroup(n,t))}var In=(e)=>bt(e,!p(e)),Pn=(e)=>bt(e,p(e));var Nn=(e)=>{let t=!p(e);return k(e,t,(n)=>ee(e.state,n,t))},qn=(e)=>{let t=p(e);return k(e,t,(n)=>ee(e.state,n,t))};function Ct(e,t){return k(e,t,(n)=>e.moveVertically(n,t))}var At=(e)=>Ct(e,!1),Lt=(e)=>Ct(e,!0);function Bt(e,t){return k(e,t,(n)=>e.moveVertically(n,t,yt(e).height))}var $e=(e)=>Bt(e,!1),Ke=(e)=>Bt(e,!0),Vn=(e)=>k(e,!0,(t)=>B(e,t,!0)),Gn=(e)=>k(e,!1,(t)=>B(e,t,!1)),Un=(e)=>{let t=!p(e);return k(e,t,(n)=>B(e,n,t))},zn=(e)=>{let t=p(e);return k(e,t,(n)=>B(e,n,t))},_n=(e)=>k(e,!1,(t)=>l.cursor(e.lineBlockAt(t.head).from)),$n=(e)=>k(e,!0,(t)=>l.cursor(e.lineBlockAt(t.head).to)),He=({state:e,dispatch:t})=>(t(C(e,{anchor:0})),!0),Qe=({state:e,dispatch:t})=>(t(C(e,{anchor:e.doc.length})),!0),Xe=({state:e,dispatch:t})=>(t(C(e,{anchor:e.selection.main.anchor,head:0})),!0),Ye=({state:e,dispatch:t})=>(t(C(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Hn=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0),Xn=({state:e,dispatch:t})=>{let n=te(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},Yn=({state:e,dispatch:t})=>{let n=F(e.selection,(r)=>{let o=E(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(C(e,n)),!0};function Dt(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((f)=>f.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(C(n,l.create(o,o.length-1))),!0}var Zn=(e)=>Dt(e,!1),er=(e)=>Dt(e,!0),tr=({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(C(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=Q(e,u,!1);else if(u>c)n="delete.forward",u=Q(e,u,!0);c=Math.min(c,u),a=Math.max(a,u)}else c=Q(e,c,!1),a=Q(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"?g.announce.of(r.phrase("Selection deleted")):void 0})),!0}function Q(e,t,n){if(e instanceof g)for(let r of e.state.facet(g.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 f=Ce(a,s.tabSize),h=f%Mt(s)||Mt(s);for(let d=0;d<h&&a[a.length-1-d]==" ";d++)o--;u=o}else if(u=fe(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=fe(c.text,u-c.from,!1,!1)+c.from;return u}),be=(e)=>Et(e,!1,!0);var wt=(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=fe(s.text,r-s.from,t)+s.from,f=s.text.slice(Math.min(r,u)-s.from,Math.max(r,u)-s.from),h=c(f);if(a!=null&&h!=a)break;if(f!=" "||r!=n.head)a=h;r=u}return r}),Rt=(e)=>Wt(e,!1),nr=(e)=>Wt(e,!0);var rr=(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 or=(e)=>_(e,(t)=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),lr=(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 ir=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((r)=>({changes:{from:r.from,to:r.to,insert:U.of(["",""])},range:l.cursor(r.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},sr=({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:fe(s.text,o-s.from,!1)+s.from,a=o==s.to?o+1:fe(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 te(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 Ot(e,t,n){if(e.readOnly)return!1;let r=[],o=[];for(let s of te(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 cr=({state:e,dispatch:t})=>Ot(e,t,!1),ar=({state:e,dispatch:t})=>Ot(e,t,!0);function Ft(e,t,n){if(e.readOnly)return!1;let r=[];for(let s of te(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 ur=({state:e,dispatch:t})=>Ft(e,t,!1),hr=({state:e,dispatch:t})=>Ft(e,t,!0),fr=(e)=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(te(t).map(({from:o,to:s})=>{if(o>0)o--;else if(s<t.doc.length)s++;return{from:o,to:s}})),r=F(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 dr(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=E(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 Ze=It(!1),mr=It(!0);function It(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&&dr(t,s);if(e)s=c=(c<=a.to?a:t.doc.lineAt(c)).to;let f=new on(t,{simulateBreak:s,simulateDoubleBreak:!!u}),h=Qi(f,s);if(h==null)h=Ce(/^\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 d=["",Qn(t,h)];if(u)d.push(Qn(t,f.lineIndent(a.from,-1)));return{changes:{from:s,to:c,insert:U.of(d)},range:l.cursor(s+1+d[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:"input"})),!0}}function Le(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 pr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new on(e,{overrideIndentation:(s)=>{let c=n[s];return c==null?-1:c}}),o=Le(e,(s,c,a)=>{let u=Qi(r,s.from);if(u==null)return;if(!/\S/.test(s.text))u=0;let f=/^\s*/.exec(s.text)[0],h=Qn(e,u);if(f!=h||a.from<s.from+f.length)n[s.from]=u,c.push({from:s.from,to:s.from+f.length,insert:h})});if(!o.changes.empty)t(e.update(o,{userEvent:"indent"}));return!0},ne=({state:e,dispatch:t})=>{if(e.readOnly)return!1;return t(e.update(Le(e,(n,r)=>{r.push({from:n.from,insert:e.facet(qe)})}),{userEvent:"input.indent"})),!0},Pt=({state:e,dispatch:t})=>{if(e.readOnly)return!1;return t(e.update(Le(e,(n,r)=>{let o=/^\s*/.exec(n.text)[0];if(!o)return;let s=Ce(o,e.tabSize),c=0,a=Qn(e,Math.max(0,s-Mt(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},kr=(e)=>(e.setTabFocusMode(),!0);var Cr=[{key:"Ctrl-b",run:ut,shift:kt,preventDefault:!0},{key:"Ctrl-f",run:ht,shift:vt},{key:"Ctrl-p",run:mt,shift:At},{key:"Ctrl-n",run:gt,shift:Lt},{key:"Ctrl-a",run:Wn,shift:_n},{key:"Ctrl-e",run:Rn,shift:$n},{key:"Ctrl-d",run:wt},{key:"Ctrl-h",run:be},{key:"Ctrl-k",run:rr},{key:"Ctrl-Alt-h",run:Rt},{key:"Ctrl-o",run:ir},{key:"Ctrl-t",run:sr},{key:"Ctrl-v",run:ve}],Mr=[{key:"ArrowLeft",run:ut,shift:kt,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Cn,shift:In,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:Tn,shift:Un,preventDefault:!0},{key:"ArrowRight",run:ht,shift:vt,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:Mn,shift:Pn,preventDefault:!0},{mac:"Cmd-ArrowRight",run:wn,shift:zn,preventDefault:!0},{key:"ArrowUp",run:mt,shift:At,preventDefault:!0},{mac:"Cmd-ArrowUp",run:He,shift:Xe},{mac:"Ctrl-ArrowUp",run:_e,shift:$e},{key:"ArrowDown",run:gt,shift:Lt,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Qe,shift:Ye},{mac:"Ctrl-ArrowDown",run:ve,shift:Ke},{key:"PageUp",run:_e,shift:$e},{key:"PageDown",run:ve,shift:Ke},{key:"Home",run:En,shift:Gn,preventDefault:!0},{key:"Mod-Home",run:He,shift:Xe},{key:"End",run:Dn,shift:Vn,preventDefault:!0},{key:"Mod-End",run:Qe,shift:Ye},{key:"Enter",run:Ze,shift:Ze},{key:"Mod-a",run:Hn},{key:"Backspace",run:be,shift:be,preventDefault:!0},{key:"Delete",run:wt,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Rt,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:nr,preventDefault:!0},{mac:"Mod-Backspace",run:or,preventDefault:!0},{mac:"Mod-Delete",run:lr,preventDefault:!0}].concat(Cr.map((e)=>({mac:e.key,run:e.run,shift:e.shift}))),Nt=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:Ln,shift:Nn},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Bn,shift:qn},{key:"Alt-ArrowUp",run:cr},{key:"Shift-Alt-ArrowUp",run:ur},{key:"Alt-ArrowDown",run:ar},{key:"Shift-Alt-ArrowDown",run:hr},{key:"Mod-Alt-ArrowUp",run:Zn},{key:"Mod-Alt-ArrowDown",run:er},{key:"Escape",run:tr},{key:"Mod-Enter",run:mr},{key:"Alt-l",mac:"Ctrl-l",run:Xn},{key:"Mod-i",run:Yn,preventDefault:!0},{key:"Mod-[",run:Pt},{key:"Mod-]",run:ne},{key:"Mod-Alt-\\",run:pr},{key:"Shift-Mod-k",run:fr},{key:"Shift-Mod-\\",run:Fn},{key:"Mod-/",run:nn},{key:"Alt-A",mac:"Ctrl-A",run:sn},{key:"Ctrl-m",mac:"Shift-Alt-m",run:kr}].concat(Mr),qt={key:"Tab",run:ne,shift:Pt};var Vt=typeof String.prototype.normalize=="function"?(e)=>e.normalize("NFKD"):(e)=>e;class w{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(Vt(c)):Vt,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 jn(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=Or(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Kn(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")w.prototype[Symbol.iterator]=function(){return this};var zt={from:-1,to:-1,match:/.*/.exec(""),precise:!0},We="gm"+(/x/.unicode==null?"":"u");class Oe{constructor(e,t,n,r=0,o=e.length){if(this.text=e,this.to=o,this.curLine="",this.done=!1,this.value=zt,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new Fe(e,t,n,r,o);this.re=new RegExp(t,We+((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=ce(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=ce(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 Be=new WeakMap;class N{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let r=Be.get(e);if(!r||r.from>=n||r.to<=t){let c=new N(t,e.sliceString(t,n));return Be.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 Be.set(e,new N(s,o)),new N(t,o.slice(t-s,n-s))}}class Fe{constructor(e,t,n,r,o){this.text=e,this.to=o,this.done=!1,this.value=zt,this.matchPos=ce(e,r),this.re=new RegExp(t,We+((n===null||n===void 0?void 0:n.ignoreCase)?"i":"")),this.test=n===null||n===void 0?void 0:n.test,this.flat=N.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=ce(this.text,r+(n==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=N.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}if(typeof Symbol<"u")Oe.prototype[Symbol.iterator]=Fe.prototype[Symbol.iterator]=function(){return this};function Ar(e){try{return new RegExp(e,We),!0}catch(t){return!1}}function ce(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 Lr=(e)=>{let t=xr(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}=vr(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),[,f,h,d,m]=a,L=d?+d.slice(1):0,v=h?+h:u.number;if(h&&m){let ye=v/100;if(f)ye=ye*(f=="-"?-1:1)+u.number/n.doc.lines;v=Math.round(n.doc.lines*ye)}else if(h&&f)v=v*(f=="-"?-1:1)+u.number;let Ue=n.doc.line(Math.max(1,Math.min(n.doc.lines,v))),ze=l.cursor(Ue.from+Math.max(0,Math.min(L,Ue.length)));e.dispatch({effects:[o,g.scrollIntoView(ze.from,{y:"center"})],selection:ze})}),!0},Br={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},_t=b.define({combine(e){return ot(e,Br,{highlightWordAroundCursor:(t,n)=>t||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function Jt(e){let t=[Fr,Rr];if(e)t.push(_t.of(e));return t}var Dr=R.mark({class:"cm-selectionMatch"}),Er=R.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Gt(e,t,n,r){return(n==0||e(t.sliceDoc(n-1,n))!=se.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=se.Word)}function Wr(e,t,n,r){return e(t.sliceDoc(n,n+1))==se.Word&&e(t.sliceDoc(r-1,r))==se.Word}var Rr=we.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(_t),{state:n}=e,r=n.selection;if(r.ranges.length>1)return R.none;let o=r.main,s,c=null;if(o.empty){if(!t.highlightWordAroundCursor)return R.none;let u=n.wordAt(o.head);if(!u)return R.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 R.none;if(t.wholeWords){if(s=n.sliceDoc(o.from,o.to),c=n.charCategorizer(o.head),!(Gt(c,n,o.from,o.to)&&Wr(c,n,o.from,o.to)))return R.none}else if(s=n.sliceDoc(o.from,o.to),!s)return R.none}let a=[];for(let u of e.visibleRanges){let f=new w(n.doc,s,u.from,u.to);while(!f.next().done){let{from:h,to:d}=f.value;if(!c||Gt(c,n,h,d)){if(o.empty&&h<=o.from&&d>=o.to)a.push(Er.range(h,d));else if(h>=o.to||d<=o.from)a.push(Dr.range(h,d));if(a.length>t.maxMatches)return R.none}}}return R.set(a)}},{decorations:(e)=>e.decorations}),Fr=g.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Ir=({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 Nr(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 w(e.doc,t,r[r.length-1].to);;)if(a.next(),a.done){if(c)return null;a=new w(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 qr=({state:e,dispatch:t})=>{let{ranges:n}=e.selection;if(n.some((s)=>s.from===s.to))return Ir({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=Nr(e,r);if(!o)return!1;return t(e.update({selection:e.selection.addRange(l.range(o.from,o.to),!1),effects:g.scrollIntoView(o.to)})),!0},W=b.define({combine(e){return ot(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:(t)=>new Zt(t),scrollToMatch:(t)=>g.scrollIntoView(t)})}});function $t(e){return e?[W.of(e),Te]:Te}class Ie{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||Ar(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 Ht(this):new Kt(this)}getCursor(e,t=0,n){let r=e.doc?e:z.create({doc:e});if(n==null)n=r.doc.length;return this.regexp?P(this,r,t,n):I(this,r,t,n)}}class Pe{constructor(e){this.spec=e}}function Vr(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 I(e,t,n,r){let o;if(e.wholeWord)o=Gr(t.doc,t.charCategorizer(t.selection.main.head));if(e.test)o=Vr(e.test,t,o);return new w(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:(s)=>s.toLowerCase(),o)}function Gr(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(ae(o,n-s))!=se.Word||t(ue(o,n-s))!=se.Word)&&(t(ue(o,r-s))!=se.Word||t(ae(o,r-s))!=se.Word)}}class Kt extends Pe{constructor(e){super(e)}nextMatch(e,t,n){let r=I(this.spec,e,n,e.doc.length).nextOverlapping();if(r.done){let o=Math.min(e.doc.length,t+this.spec.unquoted.length);r=I(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=I(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=I(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=I(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 Ur(e,t,n){return(r,o,s)=>(!n||n(r,o,s))&&e(s[0],t,r,o)}function P(e,t,n,r){let o;if(e.wholeWord)o=zr(t.charCategorizer(t.selection.main.head));if(e.test)o=Ur(e.test,t,o);return new Oe(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:o},n,r)}function ae(e,t){return e.slice(fe(e,t,!1),t)}function ue(e,t){return e.slice(t,fe(e,t))}function zr(e){return(t,n,r)=>!r[0].length||(e(ae(r.input,r.index))!=se.Word||e(ue(r.input,r.index))!=se.Word)&&(e(ue(r.input,r.index+r[0].length))!=se.Word||e(ae(r.input,r.index+r[0].length))!=se.Word)}class Ht extends Pe{nextMatch(e,t,n){let r=P(this.spec,e,n,e.doc.length).next();if(r.done)r=P(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=P(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=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-250),Math.min(n+250,e.doc.length));while(!o.next().done)r(o.value.from,o.value.to)}}var K=q.define(),Ne=q.define(),D=Se.define({create(e){return new ie(De(e).create(),null)},update(e,t){for(let n of t.effects)if(n.is(K))e=new ie(n.value.create(),e.panel);else if(n.is(Ne))e=new ie(e.query,n.value?Ve:null);return e},provide:(e)=>kn.from(e,(t)=>t.panel)});class ie{constructor(e,t){this.query=e,this.panel=t}}var _r=R.mark({class:"cm-searchMatch"}),Jr=R.mark({class:"cm-searchMatch cm-searchMatch-selected"}),$r=we.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(D))}update(e){let t=e.state.field(D);if(t!=e.startState.field(D)||e.docChanged||e.selectionSet||e.viewportChanged)this.decorations=this.highlight(t)}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return R.none;let{view:n}=this,r=new lt;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,(f,h)=>{let d=n.state.selection.ranges.some((m)=>m.from==f&&m.to==h);r.add(f,h,d?Jr:_r)})}return r.finish()}},{decorations:(e)=>e.decorations});function H(e){return(t)=>{let n=t.state.field(D,!1);return n&&n.query.spec.valid?e(t,n):ge(t)}}var de=H((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(W);return e.dispatch({selection:o,effects:[Ge(e,r),s.scrollToMatch(o.main,e)],userEvent:"select.search"}),jt(e),!0}),me=H((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(W);return e.dispatch({selection:s,effects:[Ge(e,o),c.scrollToMatch(s.main,e)],userEvent:"select.search"}),jt(e),!0}),Kr=H((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}),Hr=({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 w(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},Ut=H((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,f,h=[];if(!c.precise)c=t.nextMatch(n,c.from,c.to);else if(c.from==r&&c.to==o)f=n.toText(t.getReplacement(c)),a.push({from:c.from,to:c.to,insert:f}),c=t.nextMatch(n,c.from,c.to),h.push(g.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."));let d=e.state.changes(a);if(c)u=l.single(c.from,c.to).map(d),h.push(Ge(e,c)),h.push(n.facet(W).scrollToMatch(u.main,e));return e.dispatch({changes:d,selection:u,effects:h,userEvent:"input.replace"}),!0}),Qr=H((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:g.announce.of(r),userEvent:"input.replace.all"}),!0});function Ve(e){return e.state.facet(W).createPanel(e)}function De(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 f=e.facet(W);return new Ie({search:((n=t===null||t===void 0?void 0:t.literal)!==null&&n!==void 0?n:f.literal)?u:u.replace(/\n/g,"\\n"),caseSensitive:(r=t===null||t===void 0?void 0:t.caseSensitive)!==null&&r!==void 0?r:f.caseSensitive,literal:(o=t===null||t===void 0?void 0:t.literal)!==null&&o!==void 0?o:f.literal,regexp:(s=t===null||t===void 0?void 0:t.regexp)!==null&&s!==void 0?s:f.regexp,wholeWord:(c=t===null||t===void 0?void 0:t.wholeWord)!==null&&c!==void 0?c:f.wholeWord})}function Qt(e){let t=Jn(e,Ve);return t&&t.dom.querySelector("[main-field]")}function jt(e){let t=Qt(e);if(t&&t==e.root.activeElement)t.select()}var ge=(e)=>{let t=e.state.field(D,!1);if(t&&t.panel){let n=Qt(e);if(n&&n!=e.root.activeElement){let r=De(e.state,t.query.spec);if(r.valid)e.dispatch({effects:K.of(r)});n.focus(),n.select()}}else e.dispatch({effects:[Ne.of(!0),t?K.of(De(e.state,t.query.spec)):q.appendConfig.of(Te)]});return!0},Xt=(e)=>{let t=e.state.field(D,!1);if(!t||!t.panel)return!1;let n=Jn(e,Ve);if(n&&n.dom.contains(e.root.activeElement))e.focus();return e.dispatch({effects:Ne.of(!1)}),!0},Yt=[{key:"Mod-f",run:ge,scope:"editor search-panel"},{key:"F3",run:de,shift:me,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:de,shift:me,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Xt,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Hr},{key:"Mod-Alt-g",run:Lr},{key:"Mod-d",run:qr,preventDefault:!0}];class Zt{constructor(e){this.view=e;let t=this.query=e.state.field(D).query.spec;this.commit=this.commit.bind(this),this.searchField=pe("input",{value:t.search,placeholder:x(e,"Find"),"aria-label":x(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=pe("input",{value:t.replace,placeholder:x(e,"Replace"),"aria-label":x(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=pe("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=pe("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=pe("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(r,o,s){return pe("button",{class:"cm-button",name:r,onclick:o,type:"button"},s)}this.dom=pe("div",{onkeydown:(r)=>this.keydown(r),class:"cm-search"},[this.searchField,n("next",()=>de(e),[x(e,"next")]),n("prev",()=>me(e),[x(e,"previous")]),n("select",()=>Kr(e),[x(e,"all")]),pe("label",null,[this.caseField,x(e,"match case")]),pe("label",null,[this.reField,x(e,"regexp")]),pe("label",null,[this.wordField,x(e,"by word")]),...e.state.readOnly?[]:[pe("br"),this.replaceField,n("replace",()=>Ut(e),[x(e,"replace")]),n("replaceAll",()=>Qr(e),[x(e,"replace all")])],pe("button",{name:"close",onclick:()=>Xt(e),"aria-label":x(e,"close"),type:"button"},["×"])])}commit(){let e=new Ie({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:K.of(e)})}keydown(e){if(gr(this.view,e,"search-panel"))e.preventDefault();else if(e.keyCode==13&&e.target==this.searchField)e.preventDefault(),(e.shiftKey?me:de)(this.view);else if(e.keyCode==13&&e.target==this.replaceField)e.preventDefault(),Ut(this.view)}update(e){for(let t of e.transactions)for(let n of t.effects)if(n.is(K)&&!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(W).top}}function x(e,t){return e.state.phrase(t)}var oe=30,le=/[\s\.,:;?!]/;function Ge(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-oe),c=Math.min(o,n+oe),a=e.state.sliceDoc(s,c);if(s!=r.from){for(let u=0;u<oe;u++)if(!le.test(a[u+1])&&le.test(a[u])){a=a.slice(u);break}}if(c!=o){for(let u=a.length-1;u>a.length-oe;u--)if(!le.test(a[u-1])&&le.test(a[u])){a=a.slice(0,u);break}}return g.announce.of(`${e.state.phrase("current match")}. ${a} ${e.state.phrase("on line")} ${r.number}.`)}var jr=g.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"}}),Te=[D,Re.low($r),jr];var Xr=g.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)"}}),Yr=ln.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=[Xr,Tr(Yr)];var Zr={typescript:()=>(O("82xf7z2e"),import("./chunk-lang-typescript-82xf7z2e.js")),javascript:()=>(O("2p2qtbnf"),import("./chunk-lang-javascript-2p2qtbnf.js")),json:()=>(O("hsemyd0r"),import("./chunk-lang-json-hsemyd0r.js")),markdown:()=>(O("zkwb4c9n"),import("./chunk-lang-markdown-zkwb4c9n.js")),css:()=>(O("6bepqpnx"),import("./chunk-lang-css-6bepqpnx.js")),html:()=>(O("8jc72zt4"),import("./chunk-lang-html-8jc72zt4.js")),python:()=>(O("tewx7006"),import("./chunk-lang-python-tewx7006.js")),yaml:()=>(O("7vk521h1"),import("./chunk-lang-yaml-7vk521h1.js")),go:()=>(O("x9ahv6e5"),import("./chunk-lang-go-x9ahv6e5.js")),rust:()=>(O("0ydx84s1"),import("./chunk-lang-rust-0ydx84s1.js")),sql:()=>(O("xt1qyycg"),import("./chunk-lang-sql-xt1qyycg.js")),xml:()=>(O("wf6h5pt2"),import("./chunk-lang-xml-wf6h5pt2.js")),shell:()=>(O("gq1tmdz4"),import("./chunk-lang-shell-gq1tmdz4.js")),toml:()=>(O("0hamc5fc"),import("./chunk-lang-toml-0hamc5fc.js")),dockerfile:()=>(O("hrav55t7"),import("./chunk-lang-dockerfile-hrav55t7.js"))};async function tn(e){if(e==="plain")return;try{return(await Zr[e]()).language()}catch(t){console.warn("a language for the editor failed to load",t);return}}function eo(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 Mo(e){let t=new Tt,n=new Tt,r=new Tt,o=await tn(e.language),s=(d)=>[z.readOnly.of(!d),g.editable.of(d)],c={editable:e.editable,wrap:e.wrap,language:o??[]},a,u=(d)=>[Sr(),br(),wr(),rt(),yr(),Pr(),Jt(),$t({top:!0}),qe.of(" "),z.phrases.of(e.phrases),en,pt.of([{key:"Mod-s",preventDefault:!0,run:()=>(e.onSave(),!0)},{key:"Escape",run:()=>(e.onEscape(),!0)},qt,...Yt,...ct,...Nt]),z.lineSeparator.of(d),t.of(s(c.editable)),n.of(c.wrap?g.lineWrapping:[]),r.of(c.language),g.updateListener.of((m)=>{if(m.docChanged)e.onChange()})],f=eo(e.parent),h=new g({parent:f.parent,root:f.root,state:z.create({doc:e.text,extensions:u(e.eol)})});return a=h.state.doc,{text:()=>h.state.doc.sliceString(0,void 0,h.state.lineBreak),dirty:()=>a===void 0||!h.state.doc.eq(a),snapshot:()=>h.state.doc,markSaved:(d)=>{a=d??h.state.doc},replace:(d,m)=>{let L=h.scrollDOM.scrollTop;h.setState(z.create({doc:d,extensions:u(m)})),a=h.state.doc,h.scrollDOM.scrollTop=L},setEditable:(d)=>{c.editable=d,h.dispatch({effects:t.reconfigure(s(d))})},setWrap:(d)=>{c.wrap=d,h.dispatch({effects:n.reconfigure(d?g.lineWrapping:[])})},setLanguage:async(d)=>{c.language=await tn(d)??[],h.dispatch({effects:r.reconfigure(c.language)})},undo:()=>{Y(h)},redo:()=>{G(h)},find:()=>{ge(h)},tab:()=>{ne(h)},focus:()=>h.focus(),scrollTop:()=>h.scrollDOM.scrollTop,scrollTo:(d)=>{h.scrollDOM.scrollTop=d},destroy:()=>h.destroy()}}export{Mo as createEditor};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{H}from"./chunk-index-e5sd30xy.js";import"./chunk-index-awx6nnta.js";export{H as Confirm};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O,a,D,t,ve,p,e,n,s,st,d,ge,bi,vi}from"./chunk-index-v23m38p6.js";import{lr,cr,ur,dr}from"./chunk-index-va0g7d88.js";import{Rt}from"./chunk-index-pcfhpm8v.js";import{Hn}from"./chunk-index-459drsft.js";var k=()=>(O("zh7bezk7"),import("./chunk-layout-actions-zh7bezk7.js")),y=(r)=>(O("wgaxsbvs"),import("./chunk-placement-items-wgaxsbvs.js")).then((o)=>o.folderMenu(r)),v=(r)=>({mode:"folder",key:r,item:(o)=>o.closest("[data-folder-block]"),root:(o)=>o.closest("[data-folder-block]")?.parentElement??null,onDrop:(o)=>{if(o.type==="folder")k().then((i)=>i.placeFolderBefore(r,o.before))},open:ur});function b(r){let{id:o,name:i}=r,m=lr().has(o),l=r.holdsActive||!m,f=D(),h=Rt(()=>y(o),v(o)),N=(c)=>{y(o).then((u)=>{if(!u)return;let g=c.getBoundingClientRect();ge({...u,at:{x:g.left,y:g.bottom},via:"key",source:c})},()=>{return})};return n("section",{className:"folder","aria-label":i,"data-folder-block":"","data-key":o,"data-drop-zone":"folder","data-zone-id":o,"data-folder":o,"data-collapsed":l?void 0:"",children:[n("header",{className:"folder-head","data-folder-head":"",...h,children:[n("button",{type:"button",className:"folder-toggle","aria-expanded":l,"aria-controls":f,"aria-label":l?t("Collapse {name}",{name:i}):t("Expand {name}",{name:i}),onClick:()=>cr(o),children:[e(s,{name:"chevron",size:16,className:"folder-chevron","data-open":l||void 0}),e(s,{name:"folder",size:18}),e("strong",{children:i}),e("span",{className:"meta",children:ve(r.count,"{count} room","{count} rooms")})]}),r.muted==="none"?null:e(s,{name:"bell-off",size:14,className:"muted-mark","data-partial":r.muted==="some"||void 0,role:"img","aria-hidden":!1,"aria-label":r.muted==="all"?t("Notifications are off"):t("Some notifications are off")}),l?null:r.summary,e("button",{type:"button",className:"icon-button folder-more","aria-haspopup":"menu","aria-label":t("Folder menu"),onClick:(c)=>N(c.currentTarget),children:e(s,{name:"more",size:18})})]}),e("div",{id:f,className:"folder-body",hidden:!l,children:l?r.count===0?e("p",{className:"meta folder-empty",children:t("No rooms in this folder yet.")}):r.children:null})]})}function F(r){let o=d((i)=>({waiting:r.rooms.reduce((m,l)=>m+st(i,l),0),typing:r.rooms.some((m)=>i.rooms[m]?.typing)}),r.rooms.join(","));return n(p,{children:[o.typing?e(bi,{}):null,o.waiting?e(vi,{count:o.waiting}):null]})}function M(r){return d((o)=>Hn(r,(i)=>o.rooms[i]?.view?.muted===!0),r.join(","))}function G(r){let o=r.folders.map((i)=>i.id).join(",");return a(()=>{if(r.listed)dr(o?o.split(","):[])},[r.listed,o]),e(p,{children:r.folders.map((i)=>e(R,{folder:i,...r},i.id))})}function R(r){let{folder:o}=r,i=M(o.rooms);return e(b,{id:o.id,name:o.name,count:o.rooms.length,holdsActive:r.active!==void 0&&o.rooms.includes(r.active),muted:i,summary:e(F,{rooms:o.rooms}),children:r.rooms(o.rooms)})}export{G as FolderList};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{lr,cr,ur,dr}from"./chunk-index-va0g7d88.js";export{ur as expandFolder,dr as pruneCollapsed,cr as toggleCollapsed,lr as useCollapsed};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r,e,n}from"./chunk-index-v23m38p6.js";import{$t}from"./chunk-index-mjqqver5.js";import{Fr,Gr,Xi,Xn}from"./chunk-index-d1prgfbp.js";import"./chunk-index-awx6nnta.js";function b(i){let{roomKey:o,members:m}=i,{line:s}=Xi(o),[l,a]=r(),u=Gr(Fr(s,m),s?.id,l),t=(f)=>a({lineId:s?.id,member:f});return n("div",{className:"table-frame room-scene","data-focused":"",children:[e($t,{members:m,groupRoom:o,variant:"full",focus:u,onFocus:t,onSeat:t}),e(Xn,{roomKey:o,open:!0,streams:!1})]})}export{b as GroupScene};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Di,t,p,e,n,s,d,Be}from"./chunk-index-v23m38p6.js";import{$t}from"./chunk-index-mjqqver5.js";var c=(o,a)=>a?Di(o,a):o;function T(o){let a=d((m)=>m.rooms[o.roomKey]?.view),r=Be();if(!a||a.kind!=="group")return null;let l=a.members??[];return n(p,{children:[n("button",{type:"button",className:"icon-button group-table-button","aria-label":t("Table"),"aria-pressed":o.scene,onClick:()=>o.onScene(!o.scene),children:[e(s,{name:"table"}),e("span",{className:"group-table-label",children:t("Table")})]}),r==="camelot"&&!o.scene?c(e("div",{className:"group-strip",children:e($t,{members:l,groupRoom:o.roomKey,variant:"compact"})}),o.slot):null]})}export{T as GroupTable};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{De,Hi,ji,xi,Si,Ki,Ts}from"./chunk-index-ke9ynm0n.js";export{Ki as keepCards,Si as keepReads,ji as noCards,Hi as noReads,Ts as onFrame,xi as seedUnread,De as useHost};
|