@rubytech/create-realagent 1.0.713 → 1.0.715
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/package.json +1 -1
- package/payload/platform/plugins/docs/references/graph.md +25 -0
- package/payload/server/public/assets/{Checkbox-Dr9MqNdk.js → Checkbox-DzNre1pt.js} +1 -1
- package/payload/server/public/assets/{admin-CZ1QdDIj.js → admin-BtlXk1uc.js} +1 -1
- package/payload/server/public/assets/{data-KcxxS-x3.js → data-BTKZGy84.js} +1 -1
- package/payload/server/public/assets/{file-KlvYstdJ.js → file-DTW7TZ7G.js} +1 -1
- package/payload/server/public/assets/{graph-BjGlgDDX.js → graph-CkcuUDtA.js} +2 -2
- package/payload/server/public/assets/{house-CyE0Xd3r.js → house-DKctRD9t.js} +1 -1
- package/payload/server/public/assets/{jsx-runtime-CPtXdEwZ.css → jsx-runtime-97_Z_wBZ.css} +1 -1
- package/payload/server/public/assets/{public-C1gnzTxk.js → public-CYQSF6Xf.js} +1 -1
- package/payload/server/public/assets/{share-2-Q9lo8ZrW.js → share-2--beVI26B.js} +1 -1
- package/payload/server/public/assets/{useVoiceRecorder-BH8HP7l_.js → useVoiceRecorder-CACPhPdW.js} +1 -1
- package/payload/server/public/assets/{x-BwY4lg-U.js → x-DGk8kvbj.js} +1 -1
- package/payload/server/public/data.html +6 -6
- package/payload/server/public/graph.html +7 -7
- package/payload/server/public/index.html +8 -8
- package/payload/server/public/public.html +5 -5
- /package/payload/server/public/assets/{jsx-runtime-BKpb2FvO.js → jsx-runtime-C-H-0vwA.js} +0 -0
package/package.json
CHANGED
|
@@ -29,6 +29,31 @@ Hovering a node still shows the full 5-line tooltip (display name, labels,
|
|
|
29
29
|
id, created at, updated at). Clicking a Conversation opens the side panel
|
|
30
30
|
with the full property table — zoom-tier changes never alter these paths.
|
|
31
31
|
|
|
32
|
+
The side panel carries a **Trash** button for live nodes and a **Restore**
|
|
33
|
+
button for trashed nodes. Soft-delete is reversible: trashed nodes
|
|
34
|
+
remain in the graph and reappear when **Show trashed** is on.
|
|
35
|
+
|
|
36
|
+
## Deleting a node
|
|
37
|
+
|
|
38
|
+
Two surfaces, same outcome:
|
|
39
|
+
|
|
40
|
+
- **Mouse (desktop):** drag a node to the dashed Trash zone in the upper-
|
|
41
|
+
right corner of the canvas.
|
|
42
|
+
- **Touch (mobile/tablet):** the dashed Trash zone is hidden because
|
|
43
|
+
vis-network's drag hit-test never fires on touch. Tap the node to open
|
|
44
|
+
the side panel, then tap **Trash**.
|
|
45
|
+
|
|
46
|
+
Both paths POST to the same soft-delete endpoint; the operator-side
|
|
47
|
+
behaviour is identical.
|
|
48
|
+
|
|
49
|
+
## Mobile layout
|
|
50
|
+
|
|
51
|
+
Below 640px viewport width the toolbar wraps: the search input claims
|
|
52
|
+
its own row, the search-result slider claims its own row (full-width with
|
|
53
|
+
an enlarged thumb for touch), and the Filter button + node count share
|
|
54
|
+
the bottom row. The "← Back" control collapses to a left-arrow icon to
|
|
55
|
+
preserve toolbar space at depth.
|
|
56
|
+
|
|
32
57
|
## Trashed conversations
|
|
33
58
|
|
|
34
59
|
Trashed Conversation nodes are hidden by default. Toggle **Show trashed** in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-
|
|
1
|
+
import{t as e}from"./jsx-runtime-C-H-0vwA.js";var t=e();function n({checked:e,onChange:n,label:r,disabled:i}){return(0,t.jsxs)(`label`,{className:`maxy-checkbox${i?` maxy-checkbox--disabled`:``}`,children:[(0,t.jsx)(`input`,{type:`checkbox`,checked:e,onChange:e=>n(e.target.checked),disabled:i}),(0,t.jsx)(`span`,{className:`maxy-checkbox__box`,children:`✱`}),r&&(0,t.jsx)(`span`,{className:`maxy-checkbox__label`,children:r})]})}export{n as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,t}from"./chunk-DD-I1_y5.js";import{a as n,i as r,n as i,o as a,r as o,t as s}from"./jsx-runtime-BKpb2FvO.js";import{A as c,C as l,D as u,E as d,M as f,N as p,O as m,P as h,S as g,T as _,a as v,b as y,c as b,d as x,f as S,g as C,h as w,i as T,j as E,k as D,l as O,m as k,n as A,o as j,p as M,r as N,s as P,t as ee,u as te,v as F,w as ne,x as re,y as ie}from"./useVoiceRecorder-BH8HP7l_.js";import{a as ae,i as oe,n as se,o as ce,r as le,t as ue}from"./share-2-Q9lo8ZrW.js";import{n as de,t as fe}from"./file-KlvYstdJ.js";import{n as pe,t as me}from"./x-BwY4lg-U.js";import{t as he}from"./Checkbox-Dr9MqNdk.js";var ge=o(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),_e=o(`asterisk`,[[`path`,{d:`M12 6v12`,key:`1vza4d`}],[`path`,{d:`M17.196 9 6.804 15`,key:`1ah31z`}],[`path`,{d:`m6.804 9 10.392 6`,key:`1b6pxd`}]]),ve=o(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),ye=o(`bot-off`,[[`path`,{d:`M13.67 8H18a2 2 0 0 1 2 2v4.33`,key:`7az073`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M22 22 2 2`,key:`1r8tn9`}],[`path`,{d:`M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586`,key:`s09a7a`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}],[`path`,{d:`M9.67 4H12v2.33`,key:`110xot`}]]),be=o(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),xe=o(`calendar-days`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,key:`1hopcy`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M16 14h.01`,key:`1gbofw`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M16 18h.01`,key:`kzsmim`}]]),Se=o(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),I=o(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Ce=o(`circle-plus`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),L=o(`clipboard-list`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`M12 11h4`,key:`1jrz19`}],[`path`,{d:`M12 16h4`,key:`n85exb`}],[`path`,{d:`M8 11h.01`,key:`1dfujw`}],[`path`,{d:`M8 16h.01`,key:`18s6g9`}]]),we=o(`clipboard-plus`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`M9 14h6`,key:`159ibu`}],[`path`,{d:`M12 17v-6`,key:`1y8rbf`}]]),Te=o(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),Ee=o(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),De=o(`database-zap`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`,key:`14ibmq`}],[`path`,{d:`M21 5V8`,key:`1marbg`}],[`path`,{d:`M21 12L18 17H22L19 22`,key:`zafso`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`,key:`1y4wr8`}]]),Oe=o(`database-search`,[[`path`,{d:`M21 11.693V5`,key:`175m1t`}],[`path`,{d:`m22 22-1.875-1.875`,key:`13zax7`}],[`path`,{d:`M3 12a9 3 0 0 0 8.697 2.998`,key:`151u9p`}],[`path`,{d:`M3 5v14a9 3 0 0 0 9.28 2.999`,key:`q2rs2p`}],[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}]]),ke=o(`dot`,[[`circle`,{cx:`12.1`,cy:`12.1`,r:`1`,key:`18d7e5`}]]),Ae=o(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),je=o(`file-archive`,[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]),Me=o(`file-down`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}],[`path`,{d:`m9 15 3 3 3-3`,key:`1npd3o`}]]),Ne=o(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),Pe=o(`file-pen-line`,[[`path`,{d:`m18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351`,key:`1k2beg`}],[`path`,{d:`M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z`,key:`2t3380`}],[`path`,{d:`M8 18h1`,key:`13wk12`}]]),Fe=o(`file-plus-corner`,[[`path`,{d:`M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35`,key:`17jvcc`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 19h6`,key:`bvotb8`}],[`path`,{d:`M17 16v6`,key:`18yu1i`}]]),Ie=o(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),Le=o(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),Re=o(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),ze=o(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),Be=o(`lightbulb-off`,[[`path`,{d:`M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5`,key:`1fkcox`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5`,key:`10m8kw`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]),Ve=o(`lightbulb`,[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,key:`1gvzjb`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]),He=o(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),Ue=o(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),We=o(`loader`,[[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m16.2 7.8 2.9-2.9`,key:`r700ao`}],[`path`,{d:`M18 12h4`,key:`wj9ykh`}],[`path`,{d:`m16.2 16.2 2.9 2.9`,key:`1bxg5t`}],[`path`,{d:`M12 18v4`,key:`jadmvz`}],[`path`,{d:`m4.9 19.1 2.9-2.9`,key:`bwix9q`}],[`path`,{d:`M2 12h4`,key:`j09sii`}],[`path`,{d:`m4.9 4.9 2.9 2.9`,key:`giyufr`}]]),Ge=o(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Ke=o(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),qe=o(`messages-square`,[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`,key:`1n2ejm`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`,key:`1qfcsi`}]]),Je=o(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Ye=o(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),Xe=o(`monitor-smartphone`,[[`path`,{d:`M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8`,key:`10dyio`}],[`path`,{d:`M10 19v-3.96 3.15`,key:`1irgej`}],[`path`,{d:`M7 19h5`,key:`qswx4l`}],[`rect`,{width:`6`,height:`10`,x:`16`,y:`12`,rx:`2`,key:`1egngj`}]]),Ze=o(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Qe=o(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),$e=o(`scroll-text`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),et=o(`sparkle`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}]]),tt=o(`square-arrow-down-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`m16 8-8 8`,key:`166keh`}],[`path`,{d:`M16 16H8V8`,key:`1w2ppm`}]]),nt=o(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),rt=o(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),it=o(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),at=o(`user-plus`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}],[`line`,{x1:`19`,x2:`19`,y1:`8`,y2:`14`,key:`1bvyxn`}],[`line`,{x1:`22`,x2:`16`,y1:`11`,y2:`11`,key:`1shjgl`}]]),ot=o(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),st=o(`zap`,[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]]),ct=r(),R=e(a(),1);function lt(){(0,R.useEffect)(()=>{function e(e){e.data?.type===`vnc-clipboard`&&typeof e.data.text==`string`&&re(e.data.text)}window.addEventListener(`message`,e);let t=null;return typeof BroadcastChannel<`u`&&(t=new BroadcastChannel(`maxy-vnc-clipboard`),t.onmessage=e=>{typeof e.data==`string`&&re(e.data)}),()=>{window.removeEventListener(`message`,e),t?.close()}},[])}function ut(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n>0?`${t}m ${n}s`:`${t}m`}function dt(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function ft(){let[e,t]=(0,R.useState)(0),n=(0,R.useRef)(0),r=(0,R.useRef)(0),i=(0,R.useRef)(null),[a,o]=(0,R.useState)(0),s=(0,R.useRef)(0),c=(0,R.useRef)(null),l=(0,R.useRef)(null);return{elapsedSeconds:e,sessionElapsed:a,sessionTurnStart:l,pausedElapsedRef:r,startElapsedTimer:(0,R.useCallback)((e=0)=>{l.current=Date.now(),c.current=setInterval(()=>{let e=s.current+(Date.now()-(l.current??Date.now()));o(Math.floor(e/1e3))},1e3),n.current=e,t(e),i.current=setInterval(()=>{n.current+=1,t(n.current)},1e3)},[]),stopElapsedTimer:(0,R.useCallback)(e=>{i.current&&=(clearInterval(i.current),null),c.current&&=(clearInterval(c.current),null),l.current&&(s.current+=Date.now()-l.current,l.current=null,o(Math.floor(s.current/1e3))),r.current=n.current;let t=n.current;e(e=>{let n=[...e].map((e,t)=>({m:e,i:t})).reverse().find(({m:e})=>e.role===`maxy`)?.i;if(n===void 0)return e;let r=[...e];return r[n]={...r[n],elapsedSeconds:t},r})},[]),resetTimerState:(0,R.useCallback)(()=>{s.current=0,o(0)},[])}}var pt=`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv,text/html,text/calendar,application/zip,application/x-zip-compressed`,mt=new Set(pt.split(`,`)),ht=20*1024*1024,gt=new Set([`action-list`,`document-editor`,`rich-content-editor`,`grid-editor`]);function _t(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}function vt(){let[e,t]=(0,R.useState)(`loading`),[n,r]=(0,R.useState)(``),[i,a]=(0,R.useState)(``),[o,s]=(0,R.useState)(``),[c,l]=(0,R.useState)(!1),[u,d]=(0,R.useState)(!1),[f,p]=(0,R.useState)(!1),[m,h]=(0,R.useState)(!1),[g,_]=(0,R.useState)(!1),[v,y]=(0,R.useState)(null),[b,x]=(0,R.useState)(null),[S,C]=(0,R.useState)(!1),[w,T]=(0,R.useState)(!1),[E,D]=(0,R.useState)(void 0),[O,k]=(0,R.useState)(void 0),[A,j]=(0,R.useState)(null),[M,N]=(0,R.useState)([]),[P,ee]=(0,R.useState)(!1),[te,F]=(0,R.useState)(void 0),ne=(0,R.useRef)(void 0),re=(0,R.useRef)(null),ie=(0,R.useRef)(null),ae=(0,R.useRef)(null);(0,R.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let n=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(n.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!n.ok)return!1;let r=await n.json();y(r.session_key),j(r.conversationId??null),D(r.onboardingComplete),k(r.businessName);let i=_t(r.thinkingView);return ne.current=i,F(i),t(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function n(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check returned ${i.status} after retries`),t(`set-pin`);return}let a=await i.json();if(!a.pin_configured){t(`set-pin`);return}if(a.onboarding_complete===!1){t(`onboarding-choice`);return}if(!a.claude_authenticated){t(`connect-claude`);return}if(await e())return;t(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check failed:`,e),t(`set-pin`)}}n()},[]),(0,R.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,R.useEffect)(()=>{if(e!==`chat`)return;let n=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(!e.ok)return;let n=await e.json();(n.auth_status===`dead`||n.auth_status===`missing`)&&t(`connect-claude`)}catch{}},300*1e3);return()=>clearInterval(n)},[e]),(0,R.useEffect)(()=>{e===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&t(`enter-pin`)}).catch(()=>{})},[e]);async function oe(e,n){d(!0);try{let i=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...n?{accountId:n}:{}})});if(!i.ok){s((await i.json().catch(()=>({}))).error||`Invalid PIN`);return}let o=await i.json();if(o.accounts&&!o.session_key){console.log(`[admin] account picker shown: userId=${o.userId} accountCount=${o.accounts.length}`),N(o.accounts),t(`account-picker`);return}y(o.session_key),j(o.conversationId??null),D(o.onboardingComplete??!0),k(o.businessName);let c=_t(o.thinkingView);if(ne.current=c,F(c),n)try{sessionStorage.setItem(`maxy-account-id`,n)}catch{}try{sessionStorage.setItem(`maxy-admin-session-key`,o.session_key)}catch{}r(``),a(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1),ee(!1)}}let se=(0,R.useCallback)(async e=>{if(e.preventDefault(),u)return;if(s(``),n.length<4){s(`PIN must be at least 4 characters.`);return}if(n!==i){s(`PINs do not match.`);return}let o=n;d(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:o})});if(!e.ok){let n=await e.json().catch(()=>({}));if(e.status===409){console.log(`[admin] PIN already configured — re-checking health`);try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?t(`enter-pin`):r.pin_configured?t(`connect-claude`):s(n.error||`Failed to set PIN.`)}else t(`enter-pin`)}catch{t(`enter-pin`)}return}s(n.error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`),i=n.ok?await n.json():null;if(i?.onboarding_complete===!1){r(``),a(``),t(`onboarding-choice`);return}if(i?.claude_authenticated){await oe(o);return}r(``),a(``),t(`onboarding-choice`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,i,u]),ce=(0,R.useCallback)(async e=>{e.preventDefault(),s(``),await oe(n)},[n]),le=(0,R.useCallback)(async()=>{if(!v||!b?.contextMode||S)return;let e=b.contextMode,t=e===`claude-code`?`managed`:`claude-code`;C(!0),x({...b,contextMode:t}),T(!0);let n=setTimeout(()=>T(!1),3e3);try{let r=await fetch(`/api/admin/account`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:v,contextMode:t})});r.ok||(console.error(`[context-mode-toggle] failed: ${r.status}`),x({...b,contextMode:e}),clearTimeout(n),T(!1))}catch(t){console.error(`[context-mode-toggle] error:`,t),x({...b,contextMode:e}),clearTimeout(n),T(!1)}finally{C(!1)}},[v,b,S]),ue=(0,R.useCallback)(async()=>{_(!0),await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}t(`connect-claude`)},[]),de=(0,R.useCallback)(()=>{y(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}r(``),a(``),s(``),t(`enter-pin`)},[]);return{appState:e,setAppState:t,pin:n,setPin:r,confirmPin:i,setConfirmPin:a,pinError:o,setPinError:s,showPin:c,setShowPin:l,pinLoading:u,authPolling:f,setAuthPolling:p,authLoading:m,setAuthLoading:h,disconnecting:g,sessionKey:v,setSessionKey:y,claudeInfo:b,setClaudeInfo:x,togglingContextMode:S,contextModeHint:w,onboardingComplete:E,setOnboardingComplete:D,businessName:O,conversationId:A,setConversationId:j,accounts:M,accountPickerLoading:P,expandAll:te,setExpandAll:F,expandAllDefaultRef:ne,pinInputRef:re,confirmPinInputRef:ie,setPinFormRef:ae,handleSetPin:se,handleLogin:ce,handleAccountSelect:(0,R.useCallback)(async e=>{ee(!0),s(``),await oe(n,e)},[n]),handleContextModeToggle:le,handleDisconnect:ue,handleLogout:de,handleChangePin:(0,R.useCallback)(async()=>{if(!n){s(`Enter your current PIN first.`);return}d(!0),s(``);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPin:n})});if(!e.ok){s((await e.json().catch(()=>({error:`Incorrect PIN.`}))).error||`Incorrect PIN.`);return}r(``),a(``),s(``),t(`set-pin`)}catch(e){console.error(`[admin-auth] change pin failed:`,e),s(e instanceof Error?e.message:String(e))}finally{d(!1)}},[n])}}var yt={active:!1,heldMessage:null,existingTopic:null,confidence:0};function bt(){let[e,t]=(0,R.useState)(yt),n=(0,R.useRef)(!1);return{offer:e,handleOfferEvent:(0,R.useCallback)((e,n,r)=>{t({active:!0,heldMessage:e,existingTopic:n,confidence:r})},[]),consumeOffer:(0,R.useCallback)(r=>{if(!e.active||!e.heldMessage||n.current)return null;n.current=!0;let i={heldMessage:e.heldMessage,action:r};return t(yt),setTimeout(()=>{n.current=!1},0),i},[e]),dismissAndGetHeldMessage:(0,R.useCallback)(()=>{if(!e.active||!e.heldMessage)return null;let n=e.heldMessage;return t(yt),n},[e])}}var xt=`maxy-admin-draft`,St=[500,1e3,2e3,4e3,8e3,1e4,1e4],Ct=3e4;function wt(e){if(e instanceof TypeError){let t=e.message||``;return/network|failed to fetch|load failed/i.test(t)}return!1}async function Tt(){let e=Date.now()+Ct;for(let t=0;t<St.length;t++){let n=St[t];if(await new Promise(e=>setTimeout(e,n)),Date.now()>e)return!1;try{if((await fetch(`/api/health`,{cache:`no-store`,signal:AbortSignal.timeout(3e3)})).ok)return!0}catch{}}return!1}function Et(e){let{sessionKey:t,setSessionKey:n,setAppState:r,setConversationId:i,startElapsedTimer:a,stopElapsedTimer:o,resetTimerState:s,pausedElapsedRef:c,expandAllDefaultRef:l,setExpandAll:u,getPendingFiles:d,clearPendingFiles:f,inputRef:p}=e,[m,h]=(0,R.useState)([]),[g,_]=(0,R.useState)(()=>{try{return localStorage.getItem(xt)??``}catch{return``}}),v=(0,R.useRef)(null),[b,x]=(0,R.useState)(!1),[S,C]=(0,R.useState)([]),w=(0,R.useRef)([]),[T,E]=(0,R.useState)(!1),[D,O]=(0,R.useState)(!1),k=(0,R.useRef)(!1),[A,j]=(0,R.useState)(0),[M,N]=(0,R.useState)(!1),P=(0,R.useRef)(null),ee=(0,R.useRef)(()=>{}),[te,F]=(0,R.useState)(new Set),ne=bt();function re(e){w.current=e,C(e)}(0,R.useEffect)(()=>(v.current=setTimeout(()=>{try{g?localStorage.setItem(xt,g):localStorage.removeItem(xt)}catch{}},300),()=>{v.current&&clearTimeout(v.current)}),[g]);function ie(){v.current&&clearTimeout(v.current);try{localStorage.removeItem(xt)}catch{}}function ae(e){P.current?.abort(),N(e)}async function oe(e){if(b||!t)return;N(!1),a(),x(!0);let s=new AbortController;P.current=s,h([{role:`maxy`,events:[],timestamp:Date.now()}]);try{let a=await fetch(`/api/admin/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e,session_key:t}),signal:s.signal});if(!a.ok){if(a.status===401){(await a.json().catch(()=>({}))).error===`auth_expired`?r(`connect-claude`):(n(null),r(`enter-pin`));return}let e=await a.json().catch(()=>({}));throw Error(typeof e.error==`string`?e.error:`Request failed (${a.status})`)}let o=!1;for await(let e of y(a)){if(e.type===`session_reset`){k.current=!0,P.current?.abort();break}if(e.type===`server_shutdown`){o=!0,h(e=>{let t=[...e];return t[0]?.role===`maxy`&&(t[0]={...t[0],events:[...t[0].events??[],{type:`text`,content:`Server is restarting — reconnect will happen automatically.`}]}),t});continue}if(e.type===`conversation_attributed`){let t=e.conversationId;typeof t==`string`&&t.length>0&&i(t);continue}if(e.type===`done`||e.type===`session_init`)continue;let t=e;h(e=>{let n=[...e];return n[0]?.role===`maxy`&&(n[0]={...n[0],events:[...n[0].events??[],t]}),n})}o&&Tt()}catch(e){if(!(e instanceof DOMException&&e.name===`AbortError`)){console.error(`[chat] admin sendMessage failed:`,e);let t=e instanceof Error?e.message:String(e),n=wt(e);h(e=>{let r=[...e],i=r[0];if(i?.role===`maxy`){let e=n?`Server is restarting — reconnect will happen automatically.`:`Error: ${t}`;r[0]={...i,events:[...i.events??[],{type:`text`,content:e}]}}else r.push({role:`maxy`,events:[{type:`text`,content:`Error: ${t}`}],timestamp:Date.now()});return r}),n&&Tt()}}finally{o(h),x(!1),k.current?(k.current=!1,se()):p.current?.focus()}}function se(){h([]),O(!1),s(),F(new Set),u(l.current),re([]),_(``),ie(),f(),N(!1),j(e=>e+1)}async function ce(){if(b||T||!t){console.warn(`[chat] startNewConversation blocked: streaming=${b} compacting=${T} sessionKey=${!!t}`);return}se();try{let e=await fetch(`/api/admin/sessions/new?session_key=${encodeURIComponent(t)}`,{method:`POST`});if(e.ok){let t=await e.json();t.session_key&&n(t.session_key),t.conversationId&&i(t.conversationId)}else console.error(`[chat] new conversation failed: ${e.status}`),h([{role:`maxy`,events:[{type:`text`,content:`Could not start a new conversation. Please try again.`}],timestamp:Date.now()}])}catch(e){console.error(`[chat] new conversation failed:`,e),h([{role:`maxy`,events:[{type:`text`,content:`Could not start a new conversation. Please try again.`}],timestamp:Date.now()}])}}function le(e,n,r,i){try{let e=JSON.parse(r);if(e._lifecycle&&t){fetch(`/api/admin/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:r,session_key:t})}).catch(()=>{});return}if(e.action===`save`)return}catch{}gt.has(i??``)||F(t=>new Set(t).add(`${e}_${n}`)),de(i?JSON.stringify({_componentDone:!0,component:i,payload:r}):r,void 0,void 0,!0)}let ue=(0,R.useMemo)(()=>{let e=new Set(te),t=[];for(let e=0;e<m.length;e++){let n=m[e];if(!(n.role!==`maxy`||!n.events))for(let e=0;e<n.events.length;e++){let r=n.events[e];r.type===`component`&&r.name===`browser-viewer`&&t.push({key:`${n.timestamp}_${e}`})}}for(let n=0;n<t.length-1;n++)e.add(t[n].key);return e},[m,te]);async function de(e,s,l,u,g){if(!e&&(s??d()).length===0&&!M||b||!t)return;if(ne.offer.active&&!g){let t=ne.dismissAndGetHeldMessage();if(t)return re([...w.current,{text:e,files:s??[],timestamp:l??Date.now()}]),de(t,void 0,void 0,!0,{topicChangeAction:`continue`,heldMessage:t})}let v=M;N(!1),O(!1);let S=s??[...d()],C=S.map(e=>({attachmentId:``,filename:e.name,mimeType:e.type})),T={role:`admin`,content:e,attachments:C.length>0?C:void 0,timestamp:l??Date.now(),hidden:u||void 0},E=m.length;h(e=>[...e,T]),_(``),ie(),s||f(),a(v?c.current:0),x(!0);let D=new AbortController;P.current=D;let A={role:`maxy`,events:[],timestamp:Date.now()};h(e=>[...e,A]);let j=E+1;try{let a,o={},s=l?new Date(l).toISOString():void 0;if(S.length>0){let n=new FormData;n.append(`message`,e),n.append(`session_key`,t),s&&n.append(`timestamp`,s);for(let e of S)n.append(`attachments`,e);a=n}else a=JSON.stringify({message:e,session_key:t,...s&&{timestamp:s},...g&&{topicChangeAction:g.topicChangeAction,heldMessage:g.heldMessage}}),o={"Content-Type":`application/json`};let c=await fetch(`/api/admin/chat`,{method:`POST`,headers:o,body:a,signal:D.signal});if(!c.ok){if(c.status===401){(await c.json().catch(()=>({}))).error===`auth_expired`?r(`connect-claude`):(n(null),r(`enter-pin`));return}let e=await c.json().catch(()=>({}));throw Error(typeof e.error==`string`?e.error:`Request failed (${c.status})`)}let u=!1;for await(let e of y(c)){if(e.type===`session_reset`){k.current=!0;continue}if(e.type===`topic_change_offer`){ne.handleOfferEvent(e.heldMessage,e.existingTopic,e.confidence);continue}if(e.type===`conversation_attributed`){let t=e.conversationId;typeof t==`string`&&t.length>0&&i(t);continue}if(e.type===`server_shutdown`){u=!0,h(e=>{let t=[...e],n=t[j];return n&&n.role===`maxy`&&(t[j]={...n,events:[...n.events??[],{type:`text`,content:`Server is restarting — reconnect will happen automatically.`}]}),t});continue}if(e.type===`done`||e.type===`session_init`)continue;let t=e;h(e=>{let n=[...e],r=n[j];if(r&&r.role===`maxy`){let i=r.events??[];if(t.type===`component`&&i.some(e=>e.type===`component`&&e.name===t.name&&JSON.stringify(e.data)===JSON.stringify(t.data)))return e;n[j]={...r,events:[...i,t]}}return n})}u&&Tt()}catch(e){if(!(e instanceof DOMException&&e.name===`AbortError`)){console.error(`[chat] admin sendMessage failed:`,e);let t=e instanceof Error?e.message:String(e),n=wt(e);h(e=>{let r=[...e],i=r[j];if(i&&i.role===`maxy`){let e=n?`Server is restarting — reconnect will happen automatically.`:`Error: ${t}`;r[j]={...i,events:[...i.events??[],{type:`text`,content:e}]}}return r}),n&&Tt()}}finally{if(o(h),x(!1),k.current)k.current=!1,se();else{let e=w.current;if(e.length>0){let[t,...n]=e;re(n),ee.current(t.text,t.files,t.timestamp)}else p.current?.focus()}}}ee.current=de;let fe=(0,R.useCallback)(async()=>{if(!(!t||b||T)){E(!0);try{let e=await fetch(`/api/admin/compact`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:t})});for await(let t of y(e))if(t.type===`status`&&t.message){let e=t.message;h(t=>{let n=[...t],r=n[n.length-1];return r?.role===`maxy`&&(n[n.length-1]={...r,events:[...r.events??[],{type:`status`,message:e}]}),n})}else t.type===`done`&&t.ok&&O(!0)}finally{E(!1)}}},[t,b,T]);async function pe(){let e=ne.consumeOffer(`fresh`);e&&(await ce(),ee.current(e.heldMessage))}function me(){let e=ne.consumeOffer(`continue`);e&&de(e.heldMessage,void 0,void 0,!0,{topicChangeAction:`continue`,heldMessage:e.heldMessage})}return{messages:m,setMessages:h,input:g,setInput:_,isStreaming:b,messageQueue:S,messageQueueRef:w,setQueue:re,isCompacting:T,conversationCompacted:D,greetingGeneration:A,wasPaused:M,sendMessageRef:ee,submittedComponents:te,effectiveSubmitted:ue,stopStreaming:ae,sendSystemPrompt:oe,sendMessage:de,resetConversation:se,startNewConversation:ce,handleComponentSubmit:le,handleCompactNow:fe,topicChangeOffer:ne.offer,handleTopicFreshStart:pe,handleTopicContinue:me}}function Dt(){let[e,t]=(0,R.useState)([]),[n,r]=(0,R.useState)(!1),[i,a]=(0,R.useState)(null),o=(0,R.useRef)(null),s=(0,R.useCallback)(e=>{a(null);let n=e.find(e=>!mt.has(e.type));if(n){a(`Unsupported file type: "${n.type}". Supported: images, PDF, plain text, markdown, CSV, calendar, zip.`);return}let r=e.find(e=>e.size>ht);if(r){a(`"${r.name}" exceeds the 20 MB limit.`);return}t(t=>[...t,...e].slice(0,5))},[]);return{pendingFiles:e,setPendingFiles:t,isDragOver:n,attachError:i,setAttachError:a,fileInputRef:o,addFiles:s,clearFiles:(0,R.useCallback)(()=>{t([]),a(null)},[]),removeFile:(0,R.useCallback)(e=>{t(t=>t.filter((t,n)=>n!==e))},[]),onDragOver:(0,R.useCallback)(e=>{e.preventDefault(),r(!0)},[]),onDragLeave:(0,R.useCallback)(()=>{r(!1)},[]),onDrop:(0,R.useCallback)(e=>{e.preventDefault(),r(!1),s([...e.dataTransfer.files])},[s])}}var z=s();function Ot({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,R.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,z.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,z.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function kt(e){let{pin:t,setPin:n,confirmPin:r,setConfirmPin:i,showPin:a,setShowPin:o,pinLoading:s,pinError:c,pinInputRef:l,confirmPinInputRef:u,setPinFormRef:d,onSubmit:f}=e;return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,C.productName]}),(0,z.jsx)(`p`,{className:`connect-subtitle`,children:`Choose a PIN to secure your admin access.`}),(0,z.jsxs)(`form`,{ref:d,onSubmit:f,className:`connect-pin-form`,children:[(0,z.jsxs)(`div`,{className:`pin-input-row`,children:[(0,z.jsx)(Ot,{inputRef:l,value:t,onChange:n,onComplete:()=>u.current?.focus(),showPin:a,autoFocus:!0}),(0,z.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,z.jsxs)(`div`,{className:`pin-input-row`,children:[(0,z.jsx)(Ot,{inputRef:u,value:r,onChange:i,onComplete:()=>{},showPin:a}),(0,z.jsx)(w,{variant:`send`,type:`submit`,disabled:!t||!r,loading:s,"aria-label":`Set PIN`,children:(0,z.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,z.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,z.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,z.jsx)(he,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})]}),c&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function At(e){let{pin:t,setPin:n,showPin:r,setShowPin:i,pinLoading:a,pinError:o,pinInputRef:s,onSubmit:c,onChangePin:l}=e;return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`h1`,{className:`connect-title`,children:C.productName}),(0,z.jsxs)(`form`,{onSubmit:c,className:`connect-pin-form`,children:[(0,z.jsxs)(`div`,{className:`pin-input-row`,children:[(0,z.jsx)(Ot,{inputRef:s,value:t,onChange:n,onComplete:()=>{},showPin:r,autoFocus:!0}),(0,z.jsx)(w,{variant:`send`,type:`submit`,disabled:!t,loading:a,children:(0,z.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,z.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,z.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,z.jsxs)(`div`,{className:`pin-options`,children:[(0,z.jsx)(he,{checked:r,onChange:()=>i(e=>!e),label:`Show PIN`}),(0,z.jsx)(w,{type:`button`,variant:`ghost`,onClick:l,children:`Change PIN`})]})]}),o&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:o})]})})}function jt(e){let{accounts:t,loading:n,error:r,onSelect:i}=e;return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`h1`,{className:`connect-title`,children:C.productName}),(0,z.jsx)(`p`,{className:`connect-subtitle`,children:`Select an account`}),(0,z.jsx)(`div`,{className:`account-picker-list`,children:t.map(e=>(0,z.jsxs)(`button`,{className:`account-picker-card`,onClick:()=>i(e.accountId),disabled:n,type:`button`,children:[(0,z.jsx)(`span`,{className:`account-picker-name`,children:e.businessName||e.accountId}),(0,z.jsx)(`span`,{className:`account-picker-role`,children:e.role}),n&&(0,z.jsx)(ae,{className:`account-picker-spinner`,size:16})]},e.accountId))}),r&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:r})]})})}function Mt(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:s}=e,[c,l]=(0,R.useState)(!1),[u,d]=(0,R.useState)(!1);async function f(){d(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?l(!0):e.error&&o(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),o(`Could not launch browser.`)}d(!1)}async function p(){i(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){n(!0),l(!0),i(!1);for(let e=0;e<120;e++)if(await new Promise(e=>setTimeout(e,2e3)),(await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json()).authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),s(`enter-pin`);return}o(`Timed out waiting for sign-in. Try again.`),n(!1)}else e.error&&o(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),o(`Could not start auth flow.`)}i(!1)}async function m(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),n(!1),o(``)}return t||c?(0,z.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,z.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,z.jsx)(`button`,{onClick:m,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,z.jsx)(`button`,{onClick:()=>l(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,z.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,z.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,z.jsx)(`div`,{style:{marginTop:`12px`},children:(0,z.jsx)(w,{variant:`primary`,onClick:p,disabled:r,children:r?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,z.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,z.jsx)(`iframe`,{src:`/vnc-viewer.html`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,z.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsxs)(`div`,{className:`connect-logos`,children:[(0,z.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,z.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,z.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,z.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`span`,{className:`connect-logo-label`,children:C.productName})]})]}),(0,z.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,C.productName]}),(0,z.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,z.jsx)(w,{variant:`primary`,onClick:p,disabled:r,children:r?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,z.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,z.jsx)(`button`,{onClick:f,disabled:u,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:u?`Launching…`:`Open browser first`}),a&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}function Nt({setAppState:e,setOnboardingComplete:t}){let[n,r]=(0,R.useState)(!1),[i,a]=(0,R.useState)(``);async function o(n){r(!0),a(``);try{let r=await fetch(`/api/onboarding/skip`,{method:`POST`,headers:n===`minimal`?{"Content-Type":`application/json`}:{},body:n===`minimal`?JSON.stringify({minimal:!0}):void 0});if(!r.ok){a((await r.json().catch(()=>({}))).error||`Failed to apply defaults.`);return}t(!0),e(`connect-claude`)}catch(e){console.error(`[admin] skip onboarding error:`,e),a(`Could not apply defaults.`)}finally{r(!1)}}function s(){e(`connect-claude`)}return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`span`,{className:`connect-logo-label`,children:C.productName})]}),(0,z.jsx)(`h1`,{className:`connect-title`,children:`How would you like to get started?`}),(0,z.jsx)(`p`,{className:`connect-subtitle`,style:{fontSize:`0.8rem`,maxWidth:`320px`},children:`Defaults: core plugins only, auto-detected timezone, concise output style, and a minimal personality. No WiFi or optional plugins. Minimal also skips remote access, public-agent API key, and business profile.`}),(0,z.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`,width:`100%`,maxWidth:`320px`,alignItems:`center`},children:[(0,z.jsx)(w,{variant:`primary`,onClick:()=>o(`default`),disabled:n,children:n?`Applying defaults…`:`Use defaults`}),(0,z.jsx)(`button`,{onClick:s,disabled:n,style:{background:`none`,border:`none`,padding:`8px`,cursor:`pointer`,fontSize:`0.95rem`,color:`var(--text-secondary, #666)`,textDecoration:`none`},children:`Guided setup`}),(0,z.jsx)(`button`,{onClick:()=>o(`minimal`),disabled:n,style:{background:`none`,border:`none`,padding:`8px`,cursor:`pointer`,fontSize:`0.95rem`,color:`var(--text-secondary, #666)`,textDecoration:`none`},children:`Minimal`})]}),(0,z.jsx)(`p`,{className:`connect-subtitle`,style:{marginTop:`12px`},children:`You can change any setting later through conversation.`}),i&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:i})]})})}function Pt({data:e,onSubmit:t,submitted:n}){let r=e,[i,a]=(0,R.useState)(`Submitted`);return r?.title?(0,z.jsx)(O,{submitted:n,submittedLabel:i,actions:[{label:r.rejectLabel??`Reject`,variant:`ghost`,onClick:()=>{n||(a(`Rejected`),t(r.rejectMessage??`Rejected: ${r.title}`))}},{label:r.confirmLabel??`Approve`,variant:`primary`,onClick:()=>{n||(a(`Approved`),t(r.confirmMessage??`Approved: ${r.title}`))}}],children:(0,z.jsxs)(`div`,{className:`confirm`,children:[(0,z.jsx)(`div`,{className:`confirm__title`,children:r.title}),r.description&&(0,z.jsx)(`div`,{className:`confirm__desc`,children:r.description}),r.items&&r.items.length>0&&(0,z.jsx)(`div`,{className:`confirm__items`,children:r.items.map((e,t)=>(0,z.jsxs)(`div`,{className:`confirm__item`,children:[(0,z.jsx)(`span`,{className:`confirm__item-label`,children:e.label}),(0,z.jsx)(`span`,{className:`confirm__item-value`,children:e.value})]},t))})]})}):null}function Ft({data:e,onSubmit:t,submitted:n}){let r=e,i=(0,R.useRef)(!1),a=!!(r?.title&&Array.isArray(r?.fields)&&r.fields.length>0),o=r?.actions&&r.actions.length>0;return(0,R.useEffect)(()=>{a&&!o&&!n&&!i.current&&(i.current=!0,t(``))},[a,o,n,t]),a?(0,z.jsx)(O,{submitted:n,submittedLabel:`Done`,actions:o?r.actions.map(e=>({label:e.label,variant:e.variant,onClick:()=>{n||t(e.message)}})):[],children:(0,z.jsxs)(`div`,{className:`info-card`,children:[(0,z.jsxs)(`div`,{className:`info-card__header`,children:[(0,z.jsx)(`div`,{className:`info-card__title`,children:r.title}),r.subtitle&&(0,z.jsx)(`div`,{className:`info-card__subtitle`,children:r.subtitle})]}),(0,z.jsx)(`div`,{className:`info-card__fields`,children:r.fields.map((e,t)=>(0,z.jsxs)(`div`,{className:`info-card__field`,children:[(0,z.jsx)(`span`,{className:`info-card__field-label`,children:e.label}),(0,z.jsx)(`span`,{className:`info-card__field-value${e.type===`status`?` info-card__field-value--status`:``}`,children:e.type===`link`?(0,z.jsx)(`a`,{href:e.value,target:`_blank`,rel:`noopener noreferrer`,children:e.value}):e.value})]},t))})]})}):null}function It({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.items)?r.items:[],[a,o]=(0,R.useState)(new Set),[s,c]=(0,R.useState)(!1),[l,u]=(0,R.useState)(`Done`);if(i.length===0)return null;let d=n||s,f=(e,n)=>{d||a.has(e)||(o(t=>new Set(t).add(e)),t(n))};return(0,z.jsx)(O,{submitted:d,submittedLabel:l,actions:[{label:`Done`,variant:`primary`,onClick:()=>{d||(c(!0),u(`Done`),t(r?.doneMessage??`Done`))}}],children:(0,z.jsxs)(`div`,{className:`action-list`,children:[r?.title&&(0,z.jsx)(`div`,{className:`action-list__title`,children:r.title}),(0,z.jsx)(`div`,{className:`action-list__items`,children:i.map(e=>(0,z.jsxs)(`div`,{className:`action-list__item${a.has(e.id)?` action-list__item--acted`:``}`,children:[(0,z.jsxs)(`div`,{className:`action-list__item-info`,children:[(0,z.jsx)(`span`,{className:`action-list__item-label`,children:e.label}),e.description&&(0,z.jsx)(`span`,{className:`action-list__item-desc`,children:e.description})]}),(0,z.jsxs)(`div`,{className:`action-list__item-right`,children:[e.status&&(0,z.jsx)(`span`,{className:`action-list__item-status`,children:e.status}),(0,z.jsx)(`div`,{className:`action-list__item-actions`,children:e.actions.map((t,n)=>(0,z.jsx)(w,{variant:t.variant===`danger`?`danger`:t.variant===`ghost`?`ghost`:`primary`,size:`sm`,disabled:d||a.has(e.id),onClick:n=>{n.stopPropagation(),f(e.id,t.message)},children:t.label},n))})]})]},e.id))})]})})}function Lt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.fields)?r.fields:[],[a,o]=(0,R.useState)({}),[s,c]=(0,R.useState)({}),[l,u]=(0,R.useState)({}),[d,f]=(0,R.useState)(`Submitted`);if((0,R.useEffect)(()=>{i.length!==0&&(o(e=>{let t={...e};return i.forEach(e=>{e.type!==`list`&&(e.name in t||(t[e.name]=e.defaultValue??(e.type===`checkbox`?!1:``)))}),t}),c(e=>{let t={...e};return i.forEach(e=>{e.type===`list`&&(e.name in t||(t[e.name]=Array.isArray(e.defaultValue)?e.defaultValue:[]))}),t}))},[i]),i.length===0)return null;let p=(e,t)=>{n||o(n=>({...n,[e]:t}))},m=i.filter(e=>e.required&&e.type!==`list`).every(e=>{let t=a[e.name];return e.type===`checkbox`?t===!0:typeof t==`string`&&t.trim()!==``}),h=()=>{if(!m||n)return;f(`Submitted`);let e=r?.submitMessage??`Form submitted: {{json}}`,i=JSON.stringify(a),o=e;for(let[e,t]of Object.entries(a))o=o.replace(`{{${e}}}`,()=>String(t));o=o.replace(`{{json}}`,()=>i),o=o.replace(`{{values}}`,()=>i),t(o)},g=e=>e.description?`${e.label} — ${e.description}`:e.label,_=e=>{let r=(l[e.name]??``).trim();!r||n||(c(t=>({...t,[e.name]:[...t[e.name]??[],r]})),u(t=>({...t,[e.name]:``})),e.addMessage&&t(e.addMessage.replace(`{{value}}`,r)))},v=(e,r)=>{n||(c(t=>({...t,[e.name]:(t[e.name]??[]).filter(e=>e!==r)})),e.removeMessage&&t(e.removeMessage.replace(`{{value}}`,r)))};return(0,z.jsx)(O,{submitted:n,submittedLabel:d,actions:[{label:r?.submitLabel??`Submit`,variant:`primary`,disabled:!m,onClick:h}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[r?.title&&(0,z.jsx)(`div`,{className:`form-input__title`,children:r.title}),r?.description&&(0,z.jsx)(`div`,{className:`form-input__desc`,children:r.description}),(0,z.jsx)(`div`,{className:`form-input__fields`,children:i.map(e=>(0,z.jsx)(`div`,{className:`form-input__field`,children:e.type===`checkbox`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(he,{checked:a[e.name]===!0,onChange:t=>p(e.name,t),label:e.label,disabled:n}),e.description&&(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:e.description})]}):e.type===`list`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`label`,{className:`form-input__label`,children:e.label}),e.description&&(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:e.description}),(0,z.jsxs)(`div`,{className:`form-input__list`,children:[(s[e.name]??[]).map(t=>(0,z.jsxs)(`div`,{className:`form-input__list-item`,children:[(0,z.jsx)(`span`,{className:`form-input__list-item-text`,children:t}),(0,z.jsx)(`button`,{type:`button`,className:`form-input__list-item-remove`,onClick:()=>v(e,t),disabled:n,"aria-label":`Remove ${t}`,children:`×`})]},t)),(0,z.jsxs)(`div`,{className:`form-input__list-add`,children:[(0,z.jsx)(`input`,{className:`form-input__input`,type:`text`,placeholder:e.addPlaceholder??``,value:l[e.name]??``,onChange:t=>u(n=>({...n,[e.name]:t.target.value})),onKeyDown:t=>{t.key===`Enter`&&(t.preventDefault(),_(e))},disabled:n}),(0,z.jsx)(`button`,{type:`button`,className:`form-input__list-add-btn`,onClick:()=>_(e),disabled:n||!(l[e.name]??``).trim(),children:`Add`})]})]})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`form-${e.name}`,children:[e.label,e.required&&(0,z.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),e.description&&(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:e.description}),e.type===`textarea`?(0,z.jsx)(`textarea`,{id:`form-${e.name}`,className:`form-input__textarea`,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>p(e.name,t.target.value),disabled:n,rows:3}):e.type===`select`?(0,z.jsxs)(`select`,{id:`form-${e.name}`,className:`form-input__select`,value:a[e.name]??``,onChange:t=>p(e.name,t.target.value),disabled:n,children:[(0,z.jsx)(`option`,{value:``,children:e.placeholder??`Select...`}),e.options?.map(e=>(0,z.jsx)(`option`,{value:e.value,children:g(e)},e.value))]}):(0,z.jsx)(`input`,{id:`form-${e.name}`,className:`form-input__input`,type:e.type,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>p(e.name,t.target.value),disabled:n})]})},e.name))})]})})}var Rt={pending:`○`,active:`◉`,completed:`✓`,failed:`✗`,skipped:`–`};function zt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.steps)?r.steps:[],a=(0,R.useRef)(!1),o=i.length>0&&i.every(e=>e.status===`completed`||e.status===`failed`||e.status===`skipped`);return(0,R.useEffect)(()=>{o&&!n&&!a.current&&(a.current=!0,t(r?.completedMessage??`All steps completed`))},[o,n,t,r?.completedMessage]),i.length===0?null:(0,z.jsxs)(`div`,{className:`progress-tracker${n?` progress-tracker--submitted`:``}`,children:[r?.title&&(0,z.jsx)(`div`,{className:`progress-tracker__title`,children:r.title}),(0,z.jsx)(`div`,{className:`progress-tracker__steps`,children:i.map((e,t)=>(0,z.jsxs)(`div`,{className:`progress-tracker__step progress-tracker__step--${e.status}`,children:[(0,z.jsx)(`span`,{className:`progress-tracker__icon`,children:Rt[e.status]??`○`}),(0,z.jsxs)(`div`,{className:`progress-tracker__step-info`,children:[(0,z.jsx)(`span`,{className:`progress-tracker__step-label`,children:e.label}),e.description&&(0,z.jsx)(`span`,{className:`progress-tracker__step-desc`,children:e.description})]})]},t))})]})}function Bt({handlePopout:e,disabled:t=!1}){let n=(0,R.useCallback)(()=>{delete document.body.dataset.dragPopoutActive},[]);(0,R.useEffect)(()=>()=>n(),[n]);let r=(0,R.useCallback)(e=>{if(t){e.preventDefault();return}let n=e.target;if(n.closest(`.editor-base__actions`)||n.closest(`.browser-viewer__actions`)){e.preventDefault();return}if(!document.querySelector(`.chat-messages`)){e.preventDefault();return}e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,``),document.body.dataset.dragPopoutActive=`true`},[t,n]),i=(0,R.useCallback)(t=>{if(n(),t.clientX===0&&t.clientY===0)return;let r=document.querySelector(`.chat-messages`);if(!r)return;let i=r.getBoundingClientRect();(t.clientX<i.left||t.clientX>i.right||t.clientY<i.top||t.clientY>i.bottom)&&e()},[e,n]);return t?{draggable:!1,onDragStart:()=>{},onDragEnd:()=>{}}:{draggable:!0,onDragStart:r,onDragEnd:i}}function Vt({data:e,onSubmit:t,submitted:n,isStreaming:r}){lt();let{title:i}=e??{},[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(!1),[l,u]=(0,R.useState)(!1),d=(0,R.useRef)(null),f=(0,R.useRef)(null),p=i??C.productName,m=(0,R.useCallback)(()=>{f.current&&=(clearInterval(f.current),null),d.current&&!d.current.closed&&d.current.close(),d.current=null,c(!1)},[]),h=(0,R.useCallback)(()=>{o(!1),u(!1);let e=`/vnc-popout.html?title=${encodeURIComponent(p)}`,t=window.open(e,`maxy-vnc-popout`,`width=1024,height=768`);t&&(d.current=t,c(!0),f.current=setInterval(()=>{d.current?.closed&&(m(),u(!0))},500))},[p,m]),g=(0,R.useCallback)(()=>{m(),o(!1),u(!0)},[m]),_=(0,R.useCallback)(()=>{m(),u(!1)},[m]),v=(0,R.useCallback)(()=>{u(!1)},[]),y=(0,R.useCallback)(()=>{m(),u(!1),o(!0)},[m]),b=(0,R.useCallback)(()=>o(!1),[]);(0,R.useEffect)(()=>{if(!a)return;let e=e=>{e.key===`Escape`&&b()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,b]),(0,R.useEffect)(()=>()=>m(),[m]);let x=Bt({handlePopout:h,disabled:s||a});if(n)return null;let S=`/vnc-viewer.html`;return a?(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:p}),(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ae,onClick:h,"aria-label":`Pop out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Je,onClick:b,"aria-label":`Exit full screen`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ye,onClick:g,"aria-label":`Minimise`})]})]}),(0,z.jsx)(`iframe`,{src:S,className:`browser-viewer-fullscreen__iframe`,title:p})]}):s?(0,z.jsx)(`div`,{className:`browser-viewer browser-viewer--popout`,children:(0,z.jsxs)(`div`,{className:`browser-viewer__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:p}),(0,z.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,z.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:tt,onClick:_,"aria-label":`Pop back in`})]})]})}):l?(0,z.jsxs)(`div`,{className:`browser-viewer browser-viewer--minimised`,onClick:v,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&v(),children:[(0,z.jsxs)(`div`,{className:`browser-viewer__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:p}),(0,z.jsxs)(`div`,{className:`browser-viewer__actions`,onClick:e=>e.stopPropagation(),children:[(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ae,onClick:h,"aria-label":`Pop out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ge,onClick:y,"aria-label":`Full screen`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Qe,onClick:v,"aria-label":`Expand`})]})]}),(0,z.jsx)(`iframe`,{src:S,className:`browser-viewer__iframe`,title:p,"aria-hidden":`true`})]}):(0,z.jsxs)(`div`,{className:`browser-viewer`,children:[(0,z.jsxs)(`div`,{className:`browser-viewer__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),i&&(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:i}),(0,z.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ae,onClick:h,"aria-label":`Pop out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ge,onClick:y,"aria-label":`Full screen`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ye,onClick:g,"aria-label":`Minimise`})]})]}),(0,z.jsx)(`iframe`,{src:S,className:`browser-viewer__iframe`,title:p})]})}var Ht=t((e=>{var t=a();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),a=r[0].inst,l=r[1];return s(function(){a.value=n,a.getSnapshot=t,u(a)&&l({inst:a})},[e,n,t]),o(function(){return u(a)&&l({inst:a}),e(function(){u(a)&&l({inst:a})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Ut=t(((e,t)=>{t.exports=Ht()})),Wt=Ut(),Gt=e(n(),1);function Kt(e){this.content=e}Kt.prototype={constructor:Kt,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new Kt(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new Kt(n)},addToStart:function(e,t){return new Kt([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new Kt(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new Kt(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=Kt.from(e),e.size?new Kt(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=Kt.from(e),e.size?new Kt(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=Kt.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},Kt.from=function(e){if(e instanceof Kt)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new Kt(t)};function qt(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=qt(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Jt(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;e<t&&o.text[o.text.length-e-1]==s.text[s.text.length-e-1];)e++,n--,r--;return{a:n,b:r}}if(o.content.size||s.content.size){let e=Jt(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var B=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return qt(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Jt(this,e,t,n)}findIndex(e){if(e==0)return Xt(0,e);if(e==this.size)return Xt(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?Xt(t+1,i):Xt(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return new e(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};B.empty=new B([],0);var Yt={index:0,offset:0};function Xt(e,t){return Yt.index=e,Yt.offset=t,Yt}function Zt(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!Zt(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Zt(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var V=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Zt(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};V.none=[];var Qt=class extends Error{},H=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=en(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e($t(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(B.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};H.empty=new H(B.empty,0,0);function $t(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy($t(a.content,t-i-1,n-i-1)))}function en(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let s=en(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function tn(e,t,n){if(n.openStart>e.depth)throw new Qt(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new Qt(`Inconsistent open depths`);return nn(e,t,n,0)}function nn(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=nn(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return cn(a,un(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return cn(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=dn(n,e);return cn(a,ln(e,i,o,t,r))}}function rn(e,t){if(!t.type.compatibleContent(e.type))throw new Qt(`Cannot join `+t.type.name+` onto `+e.type.name)}function an(e,t,n){let r=e.node(n);return rn(r,t.node(n)),r}function on(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function sn(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(on(e.nodeAfter,r),a++));for(let e=a;e<o;e++)on(i.child(e),r);t&&t.depth==n&&t.textOffset&&on(t.nodeBefore,r)}function cn(e,t){return e.type.checkContent(t),e.copy(t)}function ln(e,t,n,r,i){let a=e.depth>i&&an(e,t,i+1),o=r.depth>i&&an(n,r,i+1),s=[];return sn(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(rn(a,o),on(cn(a,ln(e,t,n,r,i+1)),s)):(a&&on(cn(a,un(e,t,i+1)),s),sn(t,n,i,s),o&&on(cn(o,un(n,r,i+1)),s)),sn(r,null,i,s),new B(s)}function un(e,t,n){let r=[];return sn(null,e,n,r),e.depth>n&&on(cn(an(e,t,n+1),un(e,t,n+1)),r),sn(t,null,n,r),new B(r)}function dn(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(B.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var fn=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return V.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new gn(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=hn.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else hn.set(t,r=new pn);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%mn,i}},pn=class{constructor(){this.elts=[],this.i=0}},mn=12,hn=new WeakMap,gn=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},_n=Object.create(null),vn=class e{constructor(e,t,n,r=V.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||B.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&Zt(this.attrs,t||e.defaultAttrs||_n)&&V.sameSet(this.marks,n||V.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return H.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new H(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return tn(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return fn.resolveCached(this,e)}resolveNoCache(e){return fn.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),bn(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=B.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=V.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!V.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=B.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};vn.prototype.text=void 0;var yn=class e extends vn{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):bn(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function bn(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var xn=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Sn(t,n);if(r.next==null)return e.empty;let i=Cn(r);r.next&&r.err(`Unexpected trailing text`);let a=Nn(An(i));return Pn(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return B.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
1
|
+
import{o as e,t}from"./chunk-DD-I1_y5.js";import{a as n,i as r,n as i,o as a,r as o,t as s}from"./jsx-runtime-C-H-0vwA.js";import{A as c,C as l,D as u,E as d,M as f,N as p,O as m,P as h,S as g,T as _,a as v,b as y,c as b,d as x,f as S,g as C,h as w,i as T,j as E,k as D,l as O,m as k,n as A,o as j,p as M,r as N,s as P,t as ee,u as te,v as F,w as ne,x as re,y as ie}from"./useVoiceRecorder-CACPhPdW.js";import{a as ae,i as oe,n as se,o as ce,r as le,t as ue}from"./share-2--beVI26B.js";import{n as de,t as fe}from"./file-DTW7TZ7G.js";import{n as pe,t as me}from"./x-DGk8kvbj.js";import{t as he}from"./Checkbox-DzNre1pt.js";var ge=o(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),_e=o(`asterisk`,[[`path`,{d:`M12 6v12`,key:`1vza4d`}],[`path`,{d:`M17.196 9 6.804 15`,key:`1ah31z`}],[`path`,{d:`m6.804 9 10.392 6`,key:`1b6pxd`}]]),ve=o(`bold`,[[`path`,{d:`M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8`,key:`mg9rjx`}]]),ye=o(`bot-off`,[[`path`,{d:`M13.67 8H18a2 2 0 0 1 2 2v4.33`,key:`7az073`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M22 22 2 2`,key:`1r8tn9`}],[`path`,{d:`M8 8H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 1.414-.586`,key:`s09a7a`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}],[`path`,{d:`M9.67 4H12v2.33`,key:`110xot`}]]),be=o(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),xe=o(`calendar-days`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,key:`1hopcy`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M16 14h.01`,key:`1gbofw`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M16 18h.01`,key:`kzsmim`}]]),Se=o(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),I=o(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Ce=o(`circle-plus`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),L=o(`clipboard-list`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`M12 11h4`,key:`1jrz19`}],[`path`,{d:`M12 16h4`,key:`n85exb`}],[`path`,{d:`M8 11h.01`,key:`1dfujw`}],[`path`,{d:`M8 16h.01`,key:`18s6g9`}]]),we=o(`clipboard-plus`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`M9 14h6`,key:`159ibu`}],[`path`,{d:`M12 17v-6`,key:`1y8rbf`}]]),Te=o(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),Ee=o(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),De=o(`database-zap`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 15 21.84`,key:`14ibmq`}],[`path`,{d:`M21 5V8`,key:`1marbg`}],[`path`,{d:`M21 12L18 17H22L19 22`,key:`zafso`}],[`path`,{d:`M3 12A9 3 0 0 0 14.59 14.87`,key:`1y4wr8`}]]),Oe=o(`database-search`,[[`path`,{d:`M21 11.693V5`,key:`175m1t`}],[`path`,{d:`m22 22-1.875-1.875`,key:`13zax7`}],[`path`,{d:`M3 12a9 3 0 0 0 8.697 2.998`,key:`151u9p`}],[`path`,{d:`M3 5v14a9 3 0 0 0 9.28 2.999`,key:`q2rs2p`}],[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}]]),ke=o(`dot`,[[`circle`,{cx:`12.1`,cy:`12.1`,r:`1`,key:`18d7e5`}]]),Ae=o(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),je=o(`file-archive`,[[`path`,{d:`M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5`,key:`4pqfef`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 12v-1`,key:`1ej8lb`}],[`path`,{d:`M8 18v-2`,key:`qcmpov`}],[`path`,{d:`M8 7V6`,key:`1nbb54`}],[`circle`,{cx:`8`,cy:`20`,r:`2`,key:`ckkr5m`}]]),Me=o(`file-down`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 18v-6`,key:`17g6i2`}],[`path`,{d:`m9 15 3 3 3-3`,key:`1npd3o`}]]),Ne=o(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),Pe=o(`file-pen-line`,[[`path`,{d:`m18.226 5.226-2.52-2.52A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-.351`,key:`1k2beg`}],[`path`,{d:`M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z`,key:`2t3380`}],[`path`,{d:`M8 18h1`,key:`13wk12`}]]),Fe=o(`file-plus-corner`,[[`path`,{d:`M11.35 22H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v5.35`,key:`17jvcc`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 19h6`,key:`bvotb8`}],[`path`,{d:`M17 16v6`,key:`18yu1i`}]]),Ie=o(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),Le=o(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),Re=o(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),ze=o(`italic`,[[`line`,{x1:`19`,x2:`10`,y1:`4`,y2:`4`,key:`15jd3p`}],[`line`,{x1:`14`,x2:`5`,y1:`20`,y2:`20`,key:`bu0au3`}],[`line`,{x1:`15`,x2:`9`,y1:`4`,y2:`20`,key:`uljnxc`}]]),Be=o(`lightbulb-off`,[[`path`,{d:`M16.8 11.2c.8-.9 1.2-2 1.2-3.2a6 6 0 0 0-9.3-5`,key:`1fkcox`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M6.3 6.3a4.67 4.67 0 0 0 1.2 5.2c.7.7 1.3 1.5 1.5 2.5`,key:`10m8kw`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]),Ve=o(`lightbulb`,[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,key:`1gvzjb`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]),He=o(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),Ue=o(`list`,[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]),We=o(`loader`,[[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m16.2 7.8 2.9-2.9`,key:`r700ao`}],[`path`,{d:`M18 12h4`,key:`wj9ykh`}],[`path`,{d:`m16.2 16.2 2.9 2.9`,key:`1bxg5t`}],[`path`,{d:`M12 18v4`,key:`jadmvz`}],[`path`,{d:`m4.9 19.1 2.9-2.9`,key:`bwix9q`}],[`path`,{d:`M2 12h4`,key:`j09sii`}],[`path`,{d:`m4.9 4.9 2.9 2.9`,key:`giyufr`}]]),Ge=o(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Ke=o(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),qe=o(`messages-square`,[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`,key:`1n2ejm`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`,key:`1qfcsi`}]]),Je=o(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),Ye=o(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),Xe=o(`monitor-smartphone`,[[`path`,{d:`M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8`,key:`10dyio`}],[`path`,{d:`M10 19v-3.96 3.15`,key:`1irgej`}],[`path`,{d:`M7 19h5`,key:`qswx4l`}],[`rect`,{width:`6`,height:`10`,x:`16`,y:`12`,rx:`2`,key:`1egngj`}]]),Ze=o(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Qe=o(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),$e=o(`scroll-text`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),et=o(`sparkle`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}]]),tt=o(`square-arrow-down-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`m16 8-8 8`,key:`166keh`}],[`path`,{d:`M16 16H8V8`,key:`1w2ppm`}]]),nt=o(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),rt=o(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),it=o(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),at=o(`user-plus`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}],[`line`,{x1:`19`,x2:`19`,y1:`8`,y2:`14`,key:`1bvyxn`}],[`line`,{x1:`22`,x2:`16`,y1:`11`,y2:`11`,key:`1shjgl`}]]),ot=o(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),st=o(`zap`,[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]]),ct=r(),R=e(a(),1);function lt(){(0,R.useEffect)(()=>{function e(e){e.data?.type===`vnc-clipboard`&&typeof e.data.text==`string`&&re(e.data.text)}window.addEventListener(`message`,e);let t=null;return typeof BroadcastChannel<`u`&&(t=new BroadcastChannel(`maxy-vnc-clipboard`),t.onmessage=e=>{typeof e.data==`string`&&re(e.data)}),()=>{window.removeEventListener(`message`,e),t?.close()}},[])}function ut(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n>0?`${t}m ${n}s`:`${t}m`}function dt(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function ft(){let[e,t]=(0,R.useState)(0),n=(0,R.useRef)(0),r=(0,R.useRef)(0),i=(0,R.useRef)(null),[a,o]=(0,R.useState)(0),s=(0,R.useRef)(0),c=(0,R.useRef)(null),l=(0,R.useRef)(null);return{elapsedSeconds:e,sessionElapsed:a,sessionTurnStart:l,pausedElapsedRef:r,startElapsedTimer:(0,R.useCallback)((e=0)=>{l.current=Date.now(),c.current=setInterval(()=>{let e=s.current+(Date.now()-(l.current??Date.now()));o(Math.floor(e/1e3))},1e3),n.current=e,t(e),i.current=setInterval(()=>{n.current+=1,t(n.current)},1e3)},[]),stopElapsedTimer:(0,R.useCallback)(e=>{i.current&&=(clearInterval(i.current),null),c.current&&=(clearInterval(c.current),null),l.current&&(s.current+=Date.now()-l.current,l.current=null,o(Math.floor(s.current/1e3))),r.current=n.current;let t=n.current;e(e=>{let n=[...e].map((e,t)=>({m:e,i:t})).reverse().find(({m:e})=>e.role===`maxy`)?.i;if(n===void 0)return e;let r=[...e];return r[n]={...r[n],elapsedSeconds:t},r})},[]),resetTimerState:(0,R.useCallback)(()=>{s.current=0,o(0)},[])}}var pt=`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv,text/html,text/calendar,application/zip,application/x-zip-compressed`,mt=new Set(pt.split(`,`)),ht=20*1024*1024,gt=new Set([`action-list`,`document-editor`,`rich-content-editor`,`grid-editor`]);function _t(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}function vt(){let[e,t]=(0,R.useState)(`loading`),[n,r]=(0,R.useState)(``),[i,a]=(0,R.useState)(``),[o,s]=(0,R.useState)(``),[c,l]=(0,R.useState)(!1),[u,d]=(0,R.useState)(!1),[f,p]=(0,R.useState)(!1),[m,h]=(0,R.useState)(!1),[g,_]=(0,R.useState)(!1),[v,y]=(0,R.useState)(null),[b,x]=(0,R.useState)(null),[S,C]=(0,R.useState)(!1),[w,T]=(0,R.useState)(!1),[E,D]=(0,R.useState)(void 0),[O,k]=(0,R.useState)(void 0),[A,j]=(0,R.useState)(null),[M,N]=(0,R.useState)([]),[P,ee]=(0,R.useState)(!1),[te,F]=(0,R.useState)(void 0),ne=(0,R.useRef)(void 0),re=(0,R.useRef)(null),ie=(0,R.useRef)(null),ae=(0,R.useRef)(null);(0,R.useEffect)(()=>{async function e(){let e=null;try{e=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!e)return!1;try{let n=await fetch(`/api/admin/session?session_key=${encodeURIComponent(e)}`);if(n.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}return!1}if(!n.ok)return!1;let r=await n.json();y(r.session_key),j(r.conversationId??null),D(r.onboardingComplete),k(r.businessName);let i=_t(r.thinkingView);return ne.current=i,F(i),t(`chat`),!0}catch(e){return console.error(`[admin] session restore failed:`,e),!1}}async function n(r=2){try{let i=await fetch(`/api/health`);if(!i.ok){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check returned ${i.status} after retries`),t(`set-pin`);return}let a=await i.json();if(!a.pin_configured){t(`set-pin`);return}if(a.onboarding_complete===!1){t(`onboarding-choice`);return}if(!a.claude_authenticated){t(`connect-claude`);return}if(await e())return;t(`enter-pin`)}catch(e){if(r>0)return await new Promise(e=>setTimeout(e,1500)),n(r-1);console.error(`[admin] health check failed:`,e),t(`set-pin`)}}n()},[]),(0,R.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,R.useEffect)(()=>{if(e!==`chat`)return;let n=setInterval(async()=>{try{let e=await fetch(`/api/health`);if(!e.ok)return;let n=await e.json();(n.auth_status===`dead`||n.auth_status===`missing`)&&t(`connect-claude`)}catch{}},300*1e3);return()=>clearInterval(n)},[e]),(0,R.useEffect)(()=>{e===`connect-claude`&&fetch(`/api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.claude_authenticated&&t(`enter-pin`)}).catch(()=>{})},[e]);async function oe(e,n){d(!0);try{let i=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e,...n?{accountId:n}:{}})});if(!i.ok){s((await i.json().catch(()=>({}))).error||`Invalid PIN`);return}let o=await i.json();if(o.accounts&&!o.session_key){console.log(`[admin] account picker shown: userId=${o.userId} accountCount=${o.accounts.length}`),N(o.accounts),t(`account-picker`);return}y(o.session_key),j(o.conversationId??null),D(o.onboardingComplete??!0),k(o.businessName);let c=_t(o.thinkingView);if(ne.current=c,F(c),n)try{sessionStorage.setItem(`maxy-account-id`,n)}catch{}try{sessionStorage.setItem(`maxy-admin-session-key`,o.session_key)}catch{}r(``),a(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1),ee(!1)}}let se=(0,R.useCallback)(async e=>{if(e.preventDefault(),u)return;if(s(``),n.length<4){s(`PIN must be at least 4 characters.`);return}if(n!==i){s(`PINs do not match.`);return}let o=n;d(!0);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:o})});if(!e.ok){let n=await e.json().catch(()=>({}));if(e.status===409){console.log(`[admin] PIN already configured — re-checking health`);try{let e=await fetch(`/api/health`);if(e.ok){let r=await e.json();r.pin_configured&&r.claude_authenticated?t(`enter-pin`):r.pin_configured?t(`connect-claude`):s(n.error||`Failed to set PIN.`)}else t(`enter-pin`)}catch{t(`enter-pin`)}return}s(n.error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`),i=n.ok?await n.json():null;if(i?.onboarding_complete===!1){r(``),a(``),t(`onboarding-choice`);return}if(i?.claude_authenticated){await oe(o);return}r(``),a(``),t(`onboarding-choice`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,i,u]),ce=(0,R.useCallback)(async e=>{e.preventDefault(),s(``),await oe(n)},[n]),le=(0,R.useCallback)(async()=>{if(!v||!b?.contextMode||S)return;let e=b.contextMode,t=e===`claude-code`?`managed`:`claude-code`;C(!0),x({...b,contextMode:t}),T(!0);let n=setTimeout(()=>T(!1),3e3);try{let r=await fetch(`/api/admin/account`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:v,contextMode:t})});r.ok||(console.error(`[context-mode-toggle] failed: ${r.status}`),x({...b,contextMode:e}),clearTimeout(n),T(!1))}catch(t){console.error(`[context-mode-toggle] error:`,t),x({...b,contextMode:e}),clearTimeout(n),T(!1)}finally{C(!1)}},[v,b,S]),ue=(0,R.useCallback)(async()=>{_(!0),await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}t(`connect-claude`)},[]),de=(0,R.useCallback)(()=>{y(null);try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}r(``),a(``),s(``),t(`enter-pin`)},[]);return{appState:e,setAppState:t,pin:n,setPin:r,confirmPin:i,setConfirmPin:a,pinError:o,setPinError:s,showPin:c,setShowPin:l,pinLoading:u,authPolling:f,setAuthPolling:p,authLoading:m,setAuthLoading:h,disconnecting:g,sessionKey:v,setSessionKey:y,claudeInfo:b,setClaudeInfo:x,togglingContextMode:S,contextModeHint:w,onboardingComplete:E,setOnboardingComplete:D,businessName:O,conversationId:A,setConversationId:j,accounts:M,accountPickerLoading:P,expandAll:te,setExpandAll:F,expandAllDefaultRef:ne,pinInputRef:re,confirmPinInputRef:ie,setPinFormRef:ae,handleSetPin:se,handleLogin:ce,handleAccountSelect:(0,R.useCallback)(async e=>{ee(!0),s(``),await oe(n,e)},[n]),handleContextModeToggle:le,handleDisconnect:ue,handleLogout:de,handleChangePin:(0,R.useCallback)(async()=>{if(!n){s(`Enter your current PIN first.`);return}d(!0),s(``);try{let e=await fetch(`/api/onboarding/set-pin`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({currentPin:n})});if(!e.ok){s((await e.json().catch(()=>({error:`Incorrect PIN.`}))).error||`Incorrect PIN.`);return}r(``),a(``),s(``),t(`set-pin`)}catch(e){console.error(`[admin-auth] change pin failed:`,e),s(e instanceof Error?e.message:String(e))}finally{d(!1)}},[n])}}var yt={active:!1,heldMessage:null,existingTopic:null,confidence:0};function bt(){let[e,t]=(0,R.useState)(yt),n=(0,R.useRef)(!1);return{offer:e,handleOfferEvent:(0,R.useCallback)((e,n,r)=>{t({active:!0,heldMessage:e,existingTopic:n,confidence:r})},[]),consumeOffer:(0,R.useCallback)(r=>{if(!e.active||!e.heldMessage||n.current)return null;n.current=!0;let i={heldMessage:e.heldMessage,action:r};return t(yt),setTimeout(()=>{n.current=!1},0),i},[e]),dismissAndGetHeldMessage:(0,R.useCallback)(()=>{if(!e.active||!e.heldMessage)return null;let n=e.heldMessage;return t(yt),n},[e])}}var xt=`maxy-admin-draft`,St=[500,1e3,2e3,4e3,8e3,1e4,1e4],Ct=3e4;function wt(e){if(e instanceof TypeError){let t=e.message||``;return/network|failed to fetch|load failed/i.test(t)}return!1}async function Tt(){let e=Date.now()+Ct;for(let t=0;t<St.length;t++){let n=St[t];if(await new Promise(e=>setTimeout(e,n)),Date.now()>e)return!1;try{if((await fetch(`/api/health`,{cache:`no-store`,signal:AbortSignal.timeout(3e3)})).ok)return!0}catch{}}return!1}function Et(e){let{sessionKey:t,setSessionKey:n,setAppState:r,setConversationId:i,startElapsedTimer:a,stopElapsedTimer:o,resetTimerState:s,pausedElapsedRef:c,expandAllDefaultRef:l,setExpandAll:u,getPendingFiles:d,clearPendingFiles:f,inputRef:p}=e,[m,h]=(0,R.useState)([]),[g,_]=(0,R.useState)(()=>{try{return localStorage.getItem(xt)??``}catch{return``}}),v=(0,R.useRef)(null),[b,x]=(0,R.useState)(!1),[S,C]=(0,R.useState)([]),w=(0,R.useRef)([]),[T,E]=(0,R.useState)(!1),[D,O]=(0,R.useState)(!1),k=(0,R.useRef)(!1),[A,j]=(0,R.useState)(0),[M,N]=(0,R.useState)(!1),P=(0,R.useRef)(null),ee=(0,R.useRef)(()=>{}),[te,F]=(0,R.useState)(new Set),ne=bt();function re(e){w.current=e,C(e)}(0,R.useEffect)(()=>(v.current=setTimeout(()=>{try{g?localStorage.setItem(xt,g):localStorage.removeItem(xt)}catch{}},300),()=>{v.current&&clearTimeout(v.current)}),[g]);function ie(){v.current&&clearTimeout(v.current);try{localStorage.removeItem(xt)}catch{}}function ae(e){P.current?.abort(),N(e)}async function oe(e){if(b||!t)return;N(!1),a(),x(!0);let s=new AbortController;P.current=s,h([{role:`maxy`,events:[],timestamp:Date.now()}]);try{let a=await fetch(`/api/admin/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e,session_key:t}),signal:s.signal});if(!a.ok){if(a.status===401){(await a.json().catch(()=>({}))).error===`auth_expired`?r(`connect-claude`):(n(null),r(`enter-pin`));return}let e=await a.json().catch(()=>({}));throw Error(typeof e.error==`string`?e.error:`Request failed (${a.status})`)}let o=!1;for await(let e of y(a)){if(e.type===`session_reset`){k.current=!0,P.current?.abort();break}if(e.type===`server_shutdown`){o=!0,h(e=>{let t=[...e];return t[0]?.role===`maxy`&&(t[0]={...t[0],events:[...t[0].events??[],{type:`text`,content:`Server is restarting — reconnect will happen automatically.`}]}),t});continue}if(e.type===`conversation_attributed`){let t=e.conversationId;typeof t==`string`&&t.length>0&&i(t);continue}if(e.type===`done`||e.type===`session_init`)continue;let t=e;h(e=>{let n=[...e];return n[0]?.role===`maxy`&&(n[0]={...n[0],events:[...n[0].events??[],t]}),n})}o&&Tt()}catch(e){if(!(e instanceof DOMException&&e.name===`AbortError`)){console.error(`[chat] admin sendMessage failed:`,e);let t=e instanceof Error?e.message:String(e),n=wt(e);h(e=>{let r=[...e],i=r[0];if(i?.role===`maxy`){let e=n?`Server is restarting — reconnect will happen automatically.`:`Error: ${t}`;r[0]={...i,events:[...i.events??[],{type:`text`,content:e}]}}else r.push({role:`maxy`,events:[{type:`text`,content:`Error: ${t}`}],timestamp:Date.now()});return r}),n&&Tt()}}finally{o(h),x(!1),k.current?(k.current=!1,se()):p.current?.focus()}}function se(){h([]),O(!1),s(),F(new Set),u(l.current),re([]),_(``),ie(),f(),N(!1),j(e=>e+1)}async function ce(){if(b||T||!t){console.warn(`[chat] startNewConversation blocked: streaming=${b} compacting=${T} sessionKey=${!!t}`);return}se();try{let e=await fetch(`/api/admin/sessions/new?session_key=${encodeURIComponent(t)}`,{method:`POST`});if(e.ok){let t=await e.json();t.session_key&&n(t.session_key),t.conversationId&&i(t.conversationId)}else console.error(`[chat] new conversation failed: ${e.status}`),h([{role:`maxy`,events:[{type:`text`,content:`Could not start a new conversation. Please try again.`}],timestamp:Date.now()}])}catch(e){console.error(`[chat] new conversation failed:`,e),h([{role:`maxy`,events:[{type:`text`,content:`Could not start a new conversation. Please try again.`}],timestamp:Date.now()}])}}function le(e,n,r,i){try{let e=JSON.parse(r);if(e._lifecycle&&t){fetch(`/api/admin/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:r,session_key:t})}).catch(()=>{});return}if(e.action===`save`)return}catch{}gt.has(i??``)||F(t=>new Set(t).add(`${e}_${n}`)),de(i?JSON.stringify({_componentDone:!0,component:i,payload:r}):r,void 0,void 0,!0)}let ue=(0,R.useMemo)(()=>{let e=new Set(te),t=[];for(let e=0;e<m.length;e++){let n=m[e];if(!(n.role!==`maxy`||!n.events))for(let e=0;e<n.events.length;e++){let r=n.events[e];r.type===`component`&&r.name===`browser-viewer`&&t.push({key:`${n.timestamp}_${e}`})}}for(let n=0;n<t.length-1;n++)e.add(t[n].key);return e},[m,te]);async function de(e,s,l,u,g){if(!e&&(s??d()).length===0&&!M||b||!t)return;if(ne.offer.active&&!g){let t=ne.dismissAndGetHeldMessage();if(t)return re([...w.current,{text:e,files:s??[],timestamp:l??Date.now()}]),de(t,void 0,void 0,!0,{topicChangeAction:`continue`,heldMessage:t})}let v=M;N(!1),O(!1);let S=s??[...d()],C=S.map(e=>({attachmentId:``,filename:e.name,mimeType:e.type})),T={role:`admin`,content:e,attachments:C.length>0?C:void 0,timestamp:l??Date.now(),hidden:u||void 0},E=m.length;h(e=>[...e,T]),_(``),ie(),s||f(),a(v?c.current:0),x(!0);let D=new AbortController;P.current=D;let A={role:`maxy`,events:[],timestamp:Date.now()};h(e=>[...e,A]);let j=E+1;try{let a,o={},s=l?new Date(l).toISOString():void 0;if(S.length>0){let n=new FormData;n.append(`message`,e),n.append(`session_key`,t),s&&n.append(`timestamp`,s);for(let e of S)n.append(`attachments`,e);a=n}else a=JSON.stringify({message:e,session_key:t,...s&&{timestamp:s},...g&&{topicChangeAction:g.topicChangeAction,heldMessage:g.heldMessage}}),o={"Content-Type":`application/json`};let c=await fetch(`/api/admin/chat`,{method:`POST`,headers:o,body:a,signal:D.signal});if(!c.ok){if(c.status===401){(await c.json().catch(()=>({}))).error===`auth_expired`?r(`connect-claude`):(n(null),r(`enter-pin`));return}let e=await c.json().catch(()=>({}));throw Error(typeof e.error==`string`?e.error:`Request failed (${c.status})`)}let u=!1;for await(let e of y(c)){if(e.type===`session_reset`){k.current=!0;continue}if(e.type===`topic_change_offer`){ne.handleOfferEvent(e.heldMessage,e.existingTopic,e.confidence);continue}if(e.type===`conversation_attributed`){let t=e.conversationId;typeof t==`string`&&t.length>0&&i(t);continue}if(e.type===`server_shutdown`){u=!0,h(e=>{let t=[...e],n=t[j];return n&&n.role===`maxy`&&(t[j]={...n,events:[...n.events??[],{type:`text`,content:`Server is restarting — reconnect will happen automatically.`}]}),t});continue}if(e.type===`done`||e.type===`session_init`)continue;let t=e;h(e=>{let n=[...e],r=n[j];if(r&&r.role===`maxy`){let i=r.events??[];if(t.type===`component`&&i.some(e=>e.type===`component`&&e.name===t.name&&JSON.stringify(e.data)===JSON.stringify(t.data)))return e;n[j]={...r,events:[...i,t]}}return n})}u&&Tt()}catch(e){if(!(e instanceof DOMException&&e.name===`AbortError`)){console.error(`[chat] admin sendMessage failed:`,e);let t=e instanceof Error?e.message:String(e),n=wt(e);h(e=>{let r=[...e],i=r[j];if(i&&i.role===`maxy`){let e=n?`Server is restarting — reconnect will happen automatically.`:`Error: ${t}`;r[j]={...i,events:[...i.events??[],{type:`text`,content:e}]}}return r}),n&&Tt()}}finally{if(o(h),x(!1),k.current)k.current=!1,se();else{let e=w.current;if(e.length>0){let[t,...n]=e;re(n),ee.current(t.text,t.files,t.timestamp)}else p.current?.focus()}}}ee.current=de;let fe=(0,R.useCallback)(async()=>{if(!(!t||b||T)){E(!0);try{let e=await fetch(`/api/admin/compact`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:t})});for await(let t of y(e))if(t.type===`status`&&t.message){let e=t.message;h(t=>{let n=[...t],r=n[n.length-1];return r?.role===`maxy`&&(n[n.length-1]={...r,events:[...r.events??[],{type:`status`,message:e}]}),n})}else t.type===`done`&&t.ok&&O(!0)}finally{E(!1)}}},[t,b,T]);async function pe(){let e=ne.consumeOffer(`fresh`);e&&(await ce(),ee.current(e.heldMessage))}function me(){let e=ne.consumeOffer(`continue`);e&&de(e.heldMessage,void 0,void 0,!0,{topicChangeAction:`continue`,heldMessage:e.heldMessage})}return{messages:m,setMessages:h,input:g,setInput:_,isStreaming:b,messageQueue:S,messageQueueRef:w,setQueue:re,isCompacting:T,conversationCompacted:D,greetingGeneration:A,wasPaused:M,sendMessageRef:ee,submittedComponents:te,effectiveSubmitted:ue,stopStreaming:ae,sendSystemPrompt:oe,sendMessage:de,resetConversation:se,startNewConversation:ce,handleComponentSubmit:le,handleCompactNow:fe,topicChangeOffer:ne.offer,handleTopicFreshStart:pe,handleTopicContinue:me}}function Dt(){let[e,t]=(0,R.useState)([]),[n,r]=(0,R.useState)(!1),[i,a]=(0,R.useState)(null),o=(0,R.useRef)(null),s=(0,R.useCallback)(e=>{a(null);let n=e.find(e=>!mt.has(e.type));if(n){a(`Unsupported file type: "${n.type}". Supported: images, PDF, plain text, markdown, CSV, calendar, zip.`);return}let r=e.find(e=>e.size>ht);if(r){a(`"${r.name}" exceeds the 20 MB limit.`);return}t(t=>[...t,...e].slice(0,5))},[]);return{pendingFiles:e,setPendingFiles:t,isDragOver:n,attachError:i,setAttachError:a,fileInputRef:o,addFiles:s,clearFiles:(0,R.useCallback)(()=>{t([]),a(null)},[]),removeFile:(0,R.useCallback)(e=>{t(t=>t.filter((t,n)=>n!==e))},[]),onDragOver:(0,R.useCallback)(e=>{e.preventDefault(),r(!0)},[]),onDragLeave:(0,R.useCallback)(()=>{r(!1)},[]),onDrop:(0,R.useCallback)(e=>{e.preventDefault(),r(!1),s([...e.dataTransfer.files])},[s])}}var z=s();function Ot({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,R.useRef)([]);function s(e,r){r.key===`Backspace`?(r.preventDefault(),t[e]?n(t.slice(0,e)+t.slice(e+1)):e>0&&(n(t.slice(0,e-1)+t.slice(e)),o.current[e-1]?.focus())):r.key===`ArrowLeft`&&e>0?o.current[e-1]?.focus():r.key===`ArrowRight`&&e<5?o.current[e+1]?.focus():r.key===`Enter`&&(r.preventDefault(),r.currentTarget.form?.requestSubmit())}function c(e,i){let a=i.nativeEvent.data;if(!a||!/^\d$/.test(a))return;let s=t.split(``);for(s[e]=a;s.length<e;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);n(c),c.length===6?r?.(c):e<5&&o.current[e+1]?.focus()}function l(e){e.preventDefault();let t=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);t&&(n(t),t.length===6?r?.(t):o.current[t.length]?.focus())}return(0,z.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,z.jsx)(`input`,{ref:t=>{o.current[r]=t,r===0&&e&&(e.current=t)},type:`text`,inputMode:`numeric`,className:`pin-box${t[r]?` pin-box-filled`:``}`,value:t[r]?i?t[r]:`•`:``,onKeyDown:e=>s(r,e),onInput:e=>c(r,e),onPaste:l,onFocus:e=>e.target.select(),autoFocus:a&&r===0,autoComplete:`off`,maxLength:1,"aria-label":`PIN digit ${r+1}`},r))})}function kt(e){let{pin:t,setPin:n,confirmPin:r,setConfirmPin:i,showPin:a,setShowPin:o,pinLoading:s,pinError:c,pinInputRef:l,confirmPinInputRef:u,setPinFormRef:d,onSubmit:f}=e;return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,C.productName]}),(0,z.jsx)(`p`,{className:`connect-subtitle`,children:`Choose a PIN to secure your admin access.`}),(0,z.jsxs)(`form`,{ref:d,onSubmit:f,className:`connect-pin-form`,children:[(0,z.jsxs)(`div`,{className:`pin-input-row`,children:[(0,z.jsx)(Ot,{inputRef:l,value:t,onChange:n,onComplete:()=>u.current?.focus(),showPin:a,autoFocus:!0}),(0,z.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,z.jsxs)(`div`,{className:`pin-input-row`,children:[(0,z.jsx)(Ot,{inputRef:u,value:r,onChange:i,onComplete:()=>{},showPin:a}),(0,z.jsx)(w,{variant:`send`,type:`submit`,disabled:!t||!r,loading:s,"aria-label":`Set PIN`,children:(0,z.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,z.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,z.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,z.jsx)(he,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})]}),c&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function At(e){let{pin:t,setPin:n,showPin:r,setShowPin:i,pinLoading:a,pinError:o,pinInputRef:s,onSubmit:c,onChangePin:l}=e;return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`h1`,{className:`connect-title`,children:C.productName}),(0,z.jsxs)(`form`,{onSubmit:c,className:`connect-pin-form`,children:[(0,z.jsxs)(`div`,{className:`pin-input-row`,children:[(0,z.jsx)(Ot,{inputRef:s,value:t,onChange:n,onComplete:()=>{},showPin:r,autoFocus:!0}),(0,z.jsx)(w,{variant:`send`,type:`submit`,disabled:!t,loading:a,children:(0,z.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,z.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,z.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,z.jsxs)(`div`,{className:`pin-options`,children:[(0,z.jsx)(he,{checked:r,onChange:()=>i(e=>!e),label:`Show PIN`}),(0,z.jsx)(w,{type:`button`,variant:`ghost`,onClick:l,children:`Change PIN`})]})]}),o&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:o})]})})}function jt(e){let{accounts:t,loading:n,error:r,onSelect:i}=e;return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`h1`,{className:`connect-title`,children:C.productName}),(0,z.jsx)(`p`,{className:`connect-subtitle`,children:`Select an account`}),(0,z.jsx)(`div`,{className:`account-picker-list`,children:t.map(e=>(0,z.jsxs)(`button`,{className:`account-picker-card`,onClick:()=>i(e.accountId),disabled:n,type:`button`,children:[(0,z.jsx)(`span`,{className:`account-picker-name`,children:e.businessName||e.accountId}),(0,z.jsx)(`span`,{className:`account-picker-role`,children:e.role}),n&&(0,z.jsx)(ae,{className:`account-picker-spinner`,size:16})]},e.accountId))}),r&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:r})]})})}function Mt(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:s}=e,[c,l]=(0,R.useState)(!1),[u,d]=(0,R.useState)(!1);async function f(){d(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`launch-browser`})})).json();e.launched?l(!0):e.error&&o(e.error)}catch(e){console.error(`[admin] browser launch error:`,e),o(`Could not launch browser.`)}d(!1)}async function p(){i(!0),o(``);try{let e=await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`})).json();if(e.started){n(!0),l(!0),i(!1);for(let e=0;e<120;e++)if(await new Promise(e=>setTimeout(e,2e3)),(await(await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`wait`})})).json()).authenticated){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),s(`enter-pin`);return}o(`Timed out waiting for sign-in. Try again.`),n(!1)}else e.error&&o(e.error)}catch(e){console.error(`[admin] auth flow error:`,e),o(`Could not start auth flow.`)}i(!1)}async function m(){await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`stop`})}),n(!1),o(``)}return t||c?(0,z.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,z.jsxs)(`header`,{className:`chat-header`,style:{paddingBottom:`12px`,flexShrink:0,position:`relative`,maxWidth:`680px`,width:`100%`,margin:`0 auto`,padding:`24px 20px 12px`},children:[t?(0,z.jsx)(`button`,{onClick:m,style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Cancel`,children:`✕`}):(0,z.jsx)(`button`,{onClick:()=>l(!1),style:{position:`absolute`,top:`12px`,right:`12px`,background:`none`,border:`none`,color:`#999`,fontSize:`13px`,cursor:`pointer`,padding:`4px 8px`},"aria-label":`Close browser`,children:`✕`}),(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,z.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,z.jsx)(`p`,{className:`chat-intro`,children:t?`Sign in and authorize in the browser below.`:`Open your email or prepare your accounts, then sign in.`}),!t&&(0,z.jsx)(`div`,{style:{marginTop:`12px`},children:(0,z.jsx)(w,{variant:`primary`,onClick:p,disabled:r,children:r?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,z.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,z.jsx)(`iframe`,{src:`/vnc-viewer.html`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,z.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsxs)(`div`,{className:`connect-logos`,children:[(0,z.jsx)(`div`,{className:`connect-logo-wrap`,children:(0,z.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`})}),(0,z.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,z.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,z.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`span`,{className:`connect-logo-label`,children:C.productName})]})]}),(0,z.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,C.productName]}),(0,z.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,z.jsx)(w,{variant:`primary`,onClick:p,disabled:r,children:r?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,z.jsx)(`p`,{style:{marginTop:`6px`,fontSize:`11px`,color:`#999`,maxWidth:`300px`,textAlign:`center`,lineHeight:`1.4`},children:`First time? You may need to sign into your email and Anthropic account in the browser before connecting.`}),(0,z.jsx)(`button`,{onClick:f,disabled:u,style:{marginTop:`12px`,background:`none`,border:`none`,color:`var(--color-primary, #666)`,fontSize:`13px`,cursor:`pointer`,textDecoration:`underline`,textUnderlineOffset:`3px`},children:u?`Launching…`:`Open browser first`}),a&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}function Nt({setAppState:e,setOnboardingComplete:t}){let[n,r]=(0,R.useState)(!1),[i,a]=(0,R.useState)(``);async function o(n){r(!0),a(``);try{let r=await fetch(`/api/onboarding/skip`,{method:`POST`,headers:n===`minimal`?{"Content-Type":`application/json`}:{},body:n===`minimal`?JSON.stringify({minimal:!0}):void 0});if(!r.ok){a((await r.json().catch(()=>({}))).error||`Failed to apply defaults.`);return}t(!0),e(`connect-claude`)}catch(e){console.error(`[admin] skip onboarding error:`,e),a(`Could not apply defaults.`)}finally{r(!1)}}function s(){e(`connect-claude`)}return(0,z.jsx)(`div`,{className:`connect-page`,children:(0,z.jsxs)(`div`,{className:`connect-content`,children:[(0,z.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,z.jsx)(`img`,{src:ie,alt:C.productName,className:`connect-logo connect-logo--maxy`}),!C.logoContainsName&&(0,z.jsx)(`span`,{className:`connect-logo-label`,children:C.productName})]}),(0,z.jsx)(`h1`,{className:`connect-title`,children:`How would you like to get started?`}),(0,z.jsx)(`p`,{className:`connect-subtitle`,style:{fontSize:`0.8rem`,maxWidth:`320px`},children:`Defaults: core plugins only, auto-detected timezone, concise output style, and a minimal personality. No WiFi or optional plugins. Minimal also skips remote access, public-agent API key, and business profile.`}),(0,z.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`10px`,width:`100%`,maxWidth:`320px`,alignItems:`center`},children:[(0,z.jsx)(w,{variant:`primary`,onClick:()=>o(`default`),disabled:n,children:n?`Applying defaults…`:`Use defaults`}),(0,z.jsx)(`button`,{onClick:s,disabled:n,style:{background:`none`,border:`none`,padding:`8px`,cursor:`pointer`,fontSize:`0.95rem`,color:`var(--text-secondary, #666)`,textDecoration:`none`},children:`Guided setup`}),(0,z.jsx)(`button`,{onClick:()=>o(`minimal`),disabled:n,style:{background:`none`,border:`none`,padding:`8px`,cursor:`pointer`,fontSize:`0.95rem`,color:`var(--text-secondary, #666)`,textDecoration:`none`},children:`Minimal`})]}),(0,z.jsx)(`p`,{className:`connect-subtitle`,style:{marginTop:`12px`},children:`You can change any setting later through conversation.`}),i&&(0,z.jsx)(`p`,{className:`admin-pin-error`,children:i})]})})}function Pt({data:e,onSubmit:t,submitted:n}){let r=e,[i,a]=(0,R.useState)(`Submitted`);return r?.title?(0,z.jsx)(O,{submitted:n,submittedLabel:i,actions:[{label:r.rejectLabel??`Reject`,variant:`ghost`,onClick:()=>{n||(a(`Rejected`),t(r.rejectMessage??`Rejected: ${r.title}`))}},{label:r.confirmLabel??`Approve`,variant:`primary`,onClick:()=>{n||(a(`Approved`),t(r.confirmMessage??`Approved: ${r.title}`))}}],children:(0,z.jsxs)(`div`,{className:`confirm`,children:[(0,z.jsx)(`div`,{className:`confirm__title`,children:r.title}),r.description&&(0,z.jsx)(`div`,{className:`confirm__desc`,children:r.description}),r.items&&r.items.length>0&&(0,z.jsx)(`div`,{className:`confirm__items`,children:r.items.map((e,t)=>(0,z.jsxs)(`div`,{className:`confirm__item`,children:[(0,z.jsx)(`span`,{className:`confirm__item-label`,children:e.label}),(0,z.jsx)(`span`,{className:`confirm__item-value`,children:e.value})]},t))})]})}):null}function Ft({data:e,onSubmit:t,submitted:n}){let r=e,i=(0,R.useRef)(!1),a=!!(r?.title&&Array.isArray(r?.fields)&&r.fields.length>0),o=r?.actions&&r.actions.length>0;return(0,R.useEffect)(()=>{a&&!o&&!n&&!i.current&&(i.current=!0,t(``))},[a,o,n,t]),a?(0,z.jsx)(O,{submitted:n,submittedLabel:`Done`,actions:o?r.actions.map(e=>({label:e.label,variant:e.variant,onClick:()=>{n||t(e.message)}})):[],children:(0,z.jsxs)(`div`,{className:`info-card`,children:[(0,z.jsxs)(`div`,{className:`info-card__header`,children:[(0,z.jsx)(`div`,{className:`info-card__title`,children:r.title}),r.subtitle&&(0,z.jsx)(`div`,{className:`info-card__subtitle`,children:r.subtitle})]}),(0,z.jsx)(`div`,{className:`info-card__fields`,children:r.fields.map((e,t)=>(0,z.jsxs)(`div`,{className:`info-card__field`,children:[(0,z.jsx)(`span`,{className:`info-card__field-label`,children:e.label}),(0,z.jsx)(`span`,{className:`info-card__field-value${e.type===`status`?` info-card__field-value--status`:``}`,children:e.type===`link`?(0,z.jsx)(`a`,{href:e.value,target:`_blank`,rel:`noopener noreferrer`,children:e.value}):e.value})]},t))})]})}):null}function It({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.items)?r.items:[],[a,o]=(0,R.useState)(new Set),[s,c]=(0,R.useState)(!1),[l,u]=(0,R.useState)(`Done`);if(i.length===0)return null;let d=n||s,f=(e,n)=>{d||a.has(e)||(o(t=>new Set(t).add(e)),t(n))};return(0,z.jsx)(O,{submitted:d,submittedLabel:l,actions:[{label:`Done`,variant:`primary`,onClick:()=>{d||(c(!0),u(`Done`),t(r?.doneMessage??`Done`))}}],children:(0,z.jsxs)(`div`,{className:`action-list`,children:[r?.title&&(0,z.jsx)(`div`,{className:`action-list__title`,children:r.title}),(0,z.jsx)(`div`,{className:`action-list__items`,children:i.map(e=>(0,z.jsxs)(`div`,{className:`action-list__item${a.has(e.id)?` action-list__item--acted`:``}`,children:[(0,z.jsxs)(`div`,{className:`action-list__item-info`,children:[(0,z.jsx)(`span`,{className:`action-list__item-label`,children:e.label}),e.description&&(0,z.jsx)(`span`,{className:`action-list__item-desc`,children:e.description})]}),(0,z.jsxs)(`div`,{className:`action-list__item-right`,children:[e.status&&(0,z.jsx)(`span`,{className:`action-list__item-status`,children:e.status}),(0,z.jsx)(`div`,{className:`action-list__item-actions`,children:e.actions.map((t,n)=>(0,z.jsx)(w,{variant:t.variant===`danger`?`danger`:t.variant===`ghost`?`ghost`:`primary`,size:`sm`,disabled:d||a.has(e.id),onClick:n=>{n.stopPropagation(),f(e.id,t.message)},children:t.label},n))})]})]},e.id))})]})})}function Lt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.fields)?r.fields:[],[a,o]=(0,R.useState)({}),[s,c]=(0,R.useState)({}),[l,u]=(0,R.useState)({}),[d,f]=(0,R.useState)(`Submitted`);if((0,R.useEffect)(()=>{i.length!==0&&(o(e=>{let t={...e};return i.forEach(e=>{e.type!==`list`&&(e.name in t||(t[e.name]=e.defaultValue??(e.type===`checkbox`?!1:``)))}),t}),c(e=>{let t={...e};return i.forEach(e=>{e.type===`list`&&(e.name in t||(t[e.name]=Array.isArray(e.defaultValue)?e.defaultValue:[]))}),t}))},[i]),i.length===0)return null;let p=(e,t)=>{n||o(n=>({...n,[e]:t}))},m=i.filter(e=>e.required&&e.type!==`list`).every(e=>{let t=a[e.name];return e.type===`checkbox`?t===!0:typeof t==`string`&&t.trim()!==``}),h=()=>{if(!m||n)return;f(`Submitted`);let e=r?.submitMessage??`Form submitted: {{json}}`,i=JSON.stringify(a),o=e;for(let[e,t]of Object.entries(a))o=o.replace(`{{${e}}}`,()=>String(t));o=o.replace(`{{json}}`,()=>i),o=o.replace(`{{values}}`,()=>i),t(o)},g=e=>e.description?`${e.label} — ${e.description}`:e.label,_=e=>{let r=(l[e.name]??``).trim();!r||n||(c(t=>({...t,[e.name]:[...t[e.name]??[],r]})),u(t=>({...t,[e.name]:``})),e.addMessage&&t(e.addMessage.replace(`{{value}}`,r)))},v=(e,r)=>{n||(c(t=>({...t,[e.name]:(t[e.name]??[]).filter(e=>e!==r)})),e.removeMessage&&t(e.removeMessage.replace(`{{value}}`,r)))};return(0,z.jsx)(O,{submitted:n,submittedLabel:d,actions:[{label:r?.submitLabel??`Submit`,variant:`primary`,disabled:!m,onClick:h}],children:(0,z.jsxs)(`div`,{className:`form-input`,children:[r?.title&&(0,z.jsx)(`div`,{className:`form-input__title`,children:r.title}),r?.description&&(0,z.jsx)(`div`,{className:`form-input__desc`,children:r.description}),(0,z.jsx)(`div`,{className:`form-input__fields`,children:i.map(e=>(0,z.jsx)(`div`,{className:`form-input__field`,children:e.type===`checkbox`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(he,{checked:a[e.name]===!0,onChange:t=>p(e.name,t),label:e.label,disabled:n}),e.description&&(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:e.description})]}):e.type===`list`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`label`,{className:`form-input__label`,children:e.label}),e.description&&(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:e.description}),(0,z.jsxs)(`div`,{className:`form-input__list`,children:[(s[e.name]??[]).map(t=>(0,z.jsxs)(`div`,{className:`form-input__list-item`,children:[(0,z.jsx)(`span`,{className:`form-input__list-item-text`,children:t}),(0,z.jsx)(`button`,{type:`button`,className:`form-input__list-item-remove`,onClick:()=>v(e,t),disabled:n,"aria-label":`Remove ${t}`,children:`×`})]},t)),(0,z.jsxs)(`div`,{className:`form-input__list-add`,children:[(0,z.jsx)(`input`,{className:`form-input__input`,type:`text`,placeholder:e.addPlaceholder??``,value:l[e.name]??``,onChange:t=>u(n=>({...n,[e.name]:t.target.value})),onKeyDown:t=>{t.key===`Enter`&&(t.preventDefault(),_(e))},disabled:n}),(0,z.jsx)(`button`,{type:`button`,className:`form-input__list-add-btn`,onClick:()=>_(e),disabled:n||!(l[e.name]??``).trim(),children:`Add`})]})]})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`label`,{className:`form-input__label`,htmlFor:`form-${e.name}`,children:[e.label,e.required&&(0,z.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),e.description&&(0,z.jsx)(`div`,{className:`form-input__field-desc`,children:e.description}),e.type===`textarea`?(0,z.jsx)(`textarea`,{id:`form-${e.name}`,className:`form-input__textarea`,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>p(e.name,t.target.value),disabled:n,rows:3}):e.type===`select`?(0,z.jsxs)(`select`,{id:`form-${e.name}`,className:`form-input__select`,value:a[e.name]??``,onChange:t=>p(e.name,t.target.value),disabled:n,children:[(0,z.jsx)(`option`,{value:``,children:e.placeholder??`Select...`}),e.options?.map(e=>(0,z.jsx)(`option`,{value:e.value,children:g(e)},e.value))]}):(0,z.jsx)(`input`,{id:`form-${e.name}`,className:`form-input__input`,type:e.type,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>p(e.name,t.target.value),disabled:n})]})},e.name))})]})})}var Rt={pending:`○`,active:`◉`,completed:`✓`,failed:`✗`,skipped:`–`};function zt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.steps)?r.steps:[],a=(0,R.useRef)(!1),o=i.length>0&&i.every(e=>e.status===`completed`||e.status===`failed`||e.status===`skipped`);return(0,R.useEffect)(()=>{o&&!n&&!a.current&&(a.current=!0,t(r?.completedMessage??`All steps completed`))},[o,n,t,r?.completedMessage]),i.length===0?null:(0,z.jsxs)(`div`,{className:`progress-tracker${n?` progress-tracker--submitted`:``}`,children:[r?.title&&(0,z.jsx)(`div`,{className:`progress-tracker__title`,children:r.title}),(0,z.jsx)(`div`,{className:`progress-tracker__steps`,children:i.map((e,t)=>(0,z.jsxs)(`div`,{className:`progress-tracker__step progress-tracker__step--${e.status}`,children:[(0,z.jsx)(`span`,{className:`progress-tracker__icon`,children:Rt[e.status]??`○`}),(0,z.jsxs)(`div`,{className:`progress-tracker__step-info`,children:[(0,z.jsx)(`span`,{className:`progress-tracker__step-label`,children:e.label}),e.description&&(0,z.jsx)(`span`,{className:`progress-tracker__step-desc`,children:e.description})]})]},t))})]})}function Bt({handlePopout:e,disabled:t=!1}){let n=(0,R.useCallback)(()=>{delete document.body.dataset.dragPopoutActive},[]);(0,R.useEffect)(()=>()=>n(),[n]);let r=(0,R.useCallback)(e=>{if(t){e.preventDefault();return}let n=e.target;if(n.closest(`.editor-base__actions`)||n.closest(`.browser-viewer__actions`)){e.preventDefault();return}if(!document.querySelector(`.chat-messages`)){e.preventDefault();return}e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,``),document.body.dataset.dragPopoutActive=`true`},[t,n]),i=(0,R.useCallback)(t=>{if(n(),t.clientX===0&&t.clientY===0)return;let r=document.querySelector(`.chat-messages`);if(!r)return;let i=r.getBoundingClientRect();(t.clientX<i.left||t.clientX>i.right||t.clientY<i.top||t.clientY>i.bottom)&&e()},[e,n]);return t?{draggable:!1,onDragStart:()=>{},onDragEnd:()=>{}}:{draggable:!0,onDragStart:r,onDragEnd:i}}function Vt({data:e,onSubmit:t,submitted:n,isStreaming:r}){lt();let{title:i}=e??{},[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(!1),[l,u]=(0,R.useState)(!1),d=(0,R.useRef)(null),f=(0,R.useRef)(null),p=i??C.productName,m=(0,R.useCallback)(()=>{f.current&&=(clearInterval(f.current),null),d.current&&!d.current.closed&&d.current.close(),d.current=null,c(!1)},[]),h=(0,R.useCallback)(()=>{o(!1),u(!1);let e=`/vnc-popout.html?title=${encodeURIComponent(p)}`,t=window.open(e,`maxy-vnc-popout`,`width=1024,height=768`);t&&(d.current=t,c(!0),f.current=setInterval(()=>{d.current?.closed&&(m(),u(!0))},500))},[p,m]),g=(0,R.useCallback)(()=>{m(),o(!1),u(!0)},[m]),_=(0,R.useCallback)(()=>{m(),u(!1)},[m]),v=(0,R.useCallback)(()=>{u(!1)},[]),y=(0,R.useCallback)(()=>{m(),u(!1),o(!0)},[m]),b=(0,R.useCallback)(()=>o(!1),[]);(0,R.useEffect)(()=>{if(!a)return;let e=e=>{e.key===`Escape`&&b()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,b]),(0,R.useEffect)(()=>()=>m(),[m]);let x=Bt({handlePopout:h,disabled:s||a});if(n)return null;let S=`/vnc-viewer.html`;return a?(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:p}),(0,z.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ae,onClick:h,"aria-label":`Pop out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Je,onClick:b,"aria-label":`Exit full screen`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ye,onClick:g,"aria-label":`Minimise`})]})]}),(0,z.jsx)(`iframe`,{src:S,className:`browser-viewer-fullscreen__iframe`,title:p})]}):s?(0,z.jsx)(`div`,{className:`browser-viewer browser-viewer--popout`,children:(0,z.jsxs)(`div`,{className:`browser-viewer__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:p}),(0,z.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,z.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:tt,onClick:_,"aria-label":`Pop back in`})]})]})}):l?(0,z.jsxs)(`div`,{className:`browser-viewer browser-viewer--minimised`,onClick:v,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&v(),children:[(0,z.jsxs)(`div`,{className:`browser-viewer__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:p}),(0,z.jsxs)(`div`,{className:`browser-viewer__actions`,onClick:e=>e.stopPropagation(),children:[(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ae,onClick:h,"aria-label":`Pop out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ge,onClick:y,"aria-label":`Full screen`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Qe,onClick:v,"aria-label":`Expand`})]})]}),(0,z.jsx)(`iframe`,{src:S,className:`browser-viewer__iframe`,title:p,"aria-hidden":`true`})]}):(0,z.jsxs)(`div`,{className:`browser-viewer`,children:[(0,z.jsxs)(`div`,{className:`browser-viewer__bar`,...x,children:[(0,z.jsx)(D,{className:`browser-viewer__icon`}),i&&(0,z.jsx)(`span`,{className:`browser-viewer__title`,children:i}),(0,z.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ae,onClick:h,"aria-label":`Pop out`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ge,onClick:y,"aria-label":`Full screen`}),(0,z.jsx)(w,{variant:`ghost`,size:`sm`,icon:Ye,onClick:g,"aria-label":`Minimise`})]})]}),(0,z.jsx)(`iframe`,{src:S,className:`browser-viewer__iframe`,title:p})]})}var Ht=t((e=>{var t=a();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),a=r[0].inst,l=r[1];return s(function(){a.value=n,a.getSnapshot=t,u(a)&&l({inst:a})},[e,n,t]),o(function(){return u(a)&&l({inst:a}),e(function(){u(a)&&l({inst:a})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Ut=t(((e,t)=>{t.exports=Ht()})),Wt=Ut(),Gt=e(n(),1);function Kt(e){this.content=e}Kt.prototype={constructor:Kt,find:function(e){for(var t=0;t<this.content.length;t+=2)if(this.content[t]===e)return t;return-1},get:function(e){var t=this.find(e);return t==-1?void 0:this.content[t+1]},update:function(e,t,n){var r=n&&n!=e?this.remove(n):this,i=r.find(e),a=r.content.slice();return i==-1?a.push(n||e,t):(a[i+1]=t,n&&(a[i]=n)),new Kt(a)},remove:function(e){var t=this.find(e);if(t==-1)return this;var n=this.content.slice();return n.splice(t,2),new Kt(n)},addToStart:function(e,t){return new Kt([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new Kt(n)},addBefore:function(e,t,n){var r=this.remove(t),i=r.content.slice(),a=r.find(e);return i.splice(a==-1?i.length:a,0,t,n),new Kt(i)},forEach:function(e){for(var t=0;t<this.content.length;t+=2)e(this.content[t],this.content[t+1])},prepend:function(e){return e=Kt.from(e),e.size?new Kt(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=Kt.from(e),e.size?new Kt(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=Kt.from(e);for(var n=0;n<e.content.length;n+=2)t=t.remove(e.content[n]);return t},toObject:function(){var e={};return this.forEach(function(t,n){e[t]=n}),e},get size(){return this.content.length>>1}},Kt.from=function(e){if(e instanceof Kt)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new Kt(t)};function qt(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let e=0;i.text[e]==a.text[e];e++)n++;return n}if(i.content.size||a.content.size){let e=qt(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Jt(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),s=t.child(--a),c=o.nodeSize;if(o==s){n-=c,r-=c;continue}if(!o.sameMarkup(s))return{a:n,b:r};if(o.isText&&o.text!=s.text){let e=0,t=Math.min(o.text.length,s.text.length);for(;e<t&&o.text[o.text.length-e-1]==s.text[s.text.length-e-1];)e++,n--,r--;return{a:n,b:r}}if(o.content.size||s.content.size){let e=Jt(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var B=class e{constructor(e,t){if(this.content=e,this.size=t||0,t==null)for(let t=0;t<e.length;t++)this.size+=e[t].nodeSize}nodesBetween(e,t,n,r=0,i){for(let a=0,o=0;o<t;a++){let s=this.content[a],c=o+s.nodeSize;if(c>e&&n(s,r+o,i||null,a)!==!1&&s.content.size){let i=o+1;s.nodesBetween(Math.max(0,e-i),Math.min(s.content.size,t-i),n,r+i)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i=``,a=!0;return this.nodesBetween(e,t,(o,s)=>{let c=o.isText?o.text.slice(Math.max(e,s)-s,t-s):o.isLeaf?r?typeof r==`function`?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):``:``;o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&n&&(a?a=!1:i+=n),i+=c},0),i}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);a<t.content.length;a++)i.push(t.content[a]);return new e(i,this.size+t.size)}cut(t,n=this.size){if(t==0&&n==this.size)return this;let r=[],i=0;if(n>t)for(let e=0,a=0;a<n;e++){let o=this.content[e],s=a+o.nodeSize;s>t&&((a<t||s>n)&&(o=o.isText?o.cut(Math.max(0,t-a),Math.min(o.text.length,n-a)):o.cut(Math.max(0,t-a-1),Math.min(o.content.size,n-a-1))),r.push(o),i+=o.nodeSize),a=s}return new e(r,i)}cutByIndex(t,n){return t==n?e.empty:t==0&&n==this.content.length?this:new e(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new e(i,a)}addToStart(t){return new e([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new e(this.content.concat(t),this.size+t.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;t<this.content.length;t++)if(!this.content[t].eq(e.content[t]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let t=this.content[e];if(!t)throw RangeError(`Index `+e+` out of range for `+this);return t}maybeChild(e){return this.content[e]||null}forEach(e){for(let t=0,n=0;t<this.content.length;t++){let r=this.content[t];e(r,n,t),n+=r.nodeSize}}findDiffStart(e,t=0){return qt(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Jt(this,e,t,n)}findIndex(e){if(e==0)return Xt(0,e);if(e==this.size)return Xt(this.content.length,e);if(e>this.size||e<0)throw RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=this.child(t),i=n+r.nodeSize;if(i>=e)return i==e?Xt(t+1,i):Xt(t,n);n=i}}toString(){return`<`+this.toStringInner()+`>`}toStringInner(){return this.content.join(`, `)}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(t,n){if(!n)return e.empty;if(!Array.isArray(n))throw RangeError(`Invalid input for Fragment.fromJSON`);return new e(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return e.empty;let n,r=0;for(let e=0;e<t.length;e++){let i=t[e];r+=i.nodeSize,e&&i.isText&&t[e-1].sameMarkup(i)?(n||=t.slice(0,e),n[n.length-1]=i.withText(n[n.length-1].text+i.text)):n&&n.push(i)}return new e(n||t,r)}static from(t){if(!t)return e.empty;if(t instanceof e)return t;if(Array.isArray(t))return this.fromArray(t);if(t.attrs)return new e([t],t.nodeSize);throw RangeError(`Can not convert `+t+` to a Fragment`+(t.nodesBetween?` (looks like multiple versions of prosemirror-model were loaded)`:``))}};B.empty=new B([],0);var Yt={index:0,offset:0};function Xt(e,t){return Yt.index=e,Yt.offset=t,Yt}function Zt(e,t){if(e===t)return!0;if(!(e&&typeof e==`object`)||!(t&&typeof t==`object`))return!1;let n=Array.isArray(e);if(Array.isArray(t)!=n)return!1;if(n){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!Zt(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Zt(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var V=class e{constructor(e,t){this.type=e,this.attrs=t}addToSet(e){let t,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(this.eq(i))return e;if(this.type.excludes(i.type))t||=e.slice(0,r);else if(i.type.excludes(this.type))return e;else !n&&i.type.rank>this.type.rank&&(t||=e.slice(0,r),t.push(this),n=!0),t&&t.push(i)}return t||=e.slice(),n||t.push(this),t}removeFromSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return e.slice(0,t).concat(e.slice(t+1));return e}isInSet(e){for(let t=0;t<e.length;t++)if(this.eq(e[t]))return!0;return!1}eq(e){return this==e||this.type==e.type&&Zt(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Mark.fromJSON`);let n=e.marks[t.type];if(!n)throw RangeError(`There is no mark type ${t.type} in this schema`);let r=n.create(t.attrs);return n.checkAttrs(r.attrs),r}static sameSet(e,t){if(e==t)return!0;if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].eq(t[n]))return!1;return!0}static setFrom(t){if(!t||Array.isArray(t)&&t.length==0)return e.none;if(t instanceof e)return[t];let n=t.slice();return n.sort((e,t)=>e.type.rank-t.type.rank),n}};V.none=[];var Qt=class extends Error{},H=class e{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=en(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e($t(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+`(`+this.openStart+`,`+this.openEnd+`)`}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(t,n){if(!n)return e.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!=`number`||typeof i!=`number`)throw RangeError(`Invalid input for Slice.fromJSON`);return new e(B.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let e=t.firstChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.firstChild)r++;for(let e=t.lastChild;e&&!e.isLeaf&&(n||!e.type.spec.isolating);e=e.lastChild)i++;return new e(t,r,i)}};H.empty=new H(B.empty,0,0);function $t(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:s}=e.findIndex(n);if(i==t||a.isText){if(s!=n&&!e.child(o).isText)throw RangeError(`Removing non-flat range`);return e.cut(0,t).append(e.cut(n))}if(r!=o)throw RangeError(`Removing non-flat range`);return e.replaceChild(r,a.copy($t(a.content,t-i-1,n-i-1)))}function en(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let s=en(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function tn(e,t,n){if(n.openStart>e.depth)throw new Qt(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new Qt(`Inconsistent open depths`);return nn(e,t,n,0)}function nn(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r<e.depth-n.openStart){let o=nn(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return cn(a,un(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return cn(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=dn(n,e);return cn(a,ln(e,i,o,t,r))}}function rn(e,t){if(!t.type.compatibleContent(e.type))throw new Qt(`Cannot join `+t.type.name+` onto `+e.type.name)}function an(e,t,n){let r=e.node(n);return rn(r,t.node(n)),r}function on(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function sn(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(on(e.nodeAfter,r),a++));for(let e=a;e<o;e++)on(i.child(e),r);t&&t.depth==n&&t.textOffset&&on(t.nodeBefore,r)}function cn(e,t){return e.type.checkContent(t),e.copy(t)}function ln(e,t,n,r,i){let a=e.depth>i&&an(e,t,i+1),o=r.depth>i&&an(n,r,i+1),s=[];return sn(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(rn(a,o),on(cn(a,ln(e,t,n,r,i+1)),s)):(a&&on(cn(a,un(e,t,i+1)),s),sn(t,n,i,s),o&&on(cn(o,un(n,r,i+1)),s)),sn(r,null,i,s),new B(s)}function un(e,t,n){let r=[];return sn(null,e,n,r),e.depth>n&&on(cn(an(e,t,n+1),un(e,t,n+1)),r),sn(t,null,n,r),new B(r)}function dn(e,t){let n=t.depth-e.openStart,r=t.node(n).copy(e.content);for(let e=n-1;e>=0;e--)r=t.node(e).copy(B.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var fn=class e{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position before the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw RangeError(`There is no position after the top-level node`);return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):e==0?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[t*3],r=t==0?0:this.path[t*3-1]+1;for(let t=0;t<e;t++)r+=n.child(t).nodeSize;return r}marks(){let e=this.parent,t=this.index();if(e.content.size==0)return V.none;if(this.textOffset)return e.child(t).marks;let n=e.maybeChild(t-1),r=e.maybeChild(t);if(!n){let e=n;n=r,r=e}let i=n.marks;for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}marksAcross(e){let t=this.parent.maybeChild(this.index());if(!t||!t.isInline)return null;let n=t.marks,r=e.parent.maybeChild(e.index());for(var i=0;i<n.length;i++)n[i].type.spec.inclusive===!1&&(!r||!n[i].isInSet(r.marks))&&(n=n[i--].removeFromSet(n));return n}sharedDepth(e){for(let t=this.depth;t>0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos<this.pos)return e.blockRange(this);for(let n=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);n>=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new gn(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e=``;for(let t=1;t<=this.depth;t++)e+=(e?`/`:``)+this.node(t).type.name+`_`+this.index(t-1);return e+`:`+this.parentOffset}static resolve(t,n){if(!(n>=0&&n<=t.content.size))throw RangeError(`Position `+n+` out of range`);let r=[],i=0,a=n;for(let e=t;;){let{index:t,offset:n}=e.content.findIndex(a),o=a-n;if(r.push(e,t,i+n),!o||(e=e.child(t),e.isText))break;a=o-1,i+=n+1}return new e(n,r,a)}static resolveCached(t,n){let r=hn.get(t);if(r)for(let e=0;e<r.elts.length;e++){let t=r.elts[e];if(t.pos==n)return t}else hn.set(t,r=new pn);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%mn,i}},pn=class{constructor(){this.elts=[],this.i=0}},mn=12,hn=new WeakMap,gn=class{constructor(e,t,n){this.$from=e,this.$to=t,this.depth=n}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}},_n=Object.create(null),vn=class e{constructor(e,t,n,r=V.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||B.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,t,n,r=0){this.content.nodesBetween(e,t,n,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,``)}textBetween(e,t,n,r){return this.content.textBetween(e,t,n,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,t,n){return this.type==e&&Zt(this.attrs,t||e.defaultAttrs||_n)&&V.sameSet(this.marks,n||V.none)}copy(t=null){return t==this.content?this:new e(this.type,this.attrs,t,this.marks)}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.content,t)}cut(e,t=this.content.size){return e==0&&t==this.content.size?this:this.copy(this.content.cut(e,t))}slice(e,t=this.content.size,n=!1){if(e==t)return H.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new H(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return tn(this.resolve(e),this.resolve(t),n)}nodeAt(e){for(let t=this;;){let{index:n,offset:r}=t.content.findIndex(e);if(t=t.maybeChild(n),!t)return null;if(r==e||t.isText)return t;e-=r+1}}childAfter(e){let{index:t,offset:n}=this.content.findIndex(e);return{node:this.content.maybeChild(t),index:t,offset:n}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:t,offset:n}=this.content.findIndex(e);if(n<e)return{node:this.content.child(t),index:t,offset:n};let r=this.content.child(t-1);return{node:r,index:t-1,offset:n-r.nodeSize}}resolve(e){return fn.resolveCached(this,e)}resolveNoCache(e){return fn.resolve(this,e)}rangeHasMark(e,t,n){let r=!1;return t>e&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+=`(`+this.content.toStringInner()+`)`),bn(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw Error(`Called contentMatchAt on a node with invalid content`);return t}canReplace(e,t,n=B.empty,r=0,i=n.childCount){let a=this.contentMatchAt(e).matchFragment(n,r,i),o=a&&a.matchFragment(this.content,t);if(!o||!o.validEnd)return!1;for(let e=r;e<i;e++)if(!this.type.allowsMarks(n.child(e).marks))return!1;return!0}canReplaceWith(e,t,n,r){if(r&&!this.type.allowsMarks(r))return!1;let i=this.contentMatchAt(e).matchType(n),a=i&&i.matchFragment(this.content,t);return a?a.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=V.none;for(let t=0;t<this.marks.length;t++){let n=this.marks[t];n.type.checkAttrs(n.attrs),e=n.addToSet(e)}if(!V.sameSet(e,this.marks))throw RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(e=>e.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw RangeError(`Invalid input for Node.fromJSON`);let n;if(t.marks){if(!Array.isArray(t.marks))throw RangeError(`Invalid mark data for Node.fromJSON`);n=t.marks.map(e.markFromJSON)}if(t.type==`text`){if(typeof t.text!=`string`)throw RangeError(`Invalid text node in JSON`);return e.text(t.text,n)}let r=B.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};vn.prototype.text=void 0;var yn=class e extends vn{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw RangeError(`Empty text nodes are not allowed`);this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):bn(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new e(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new e(this.type,this.attrs,t,this.marks)}cut(e=0,t=this.text.length){return e==0&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}};function bn(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var xn=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Sn(t,n);if(r.next==null)return e.empty;let i=Cn(r);r.next&&r.err(`Unexpected trailing text`);let a=Nn(An(i));return Pn(a,r),a}matchType(e){for(let t=0;t<this.next.length;t++)if(this.next[t].type==e)return this.next[t].next;return null}matchFragment(e,t=0,n=e.childCount){let r=this;for(let i=t;r&&i<n;i++)r=r.matchType(e.child(i).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:t}=this.next[e];if(!(t.isText||t.hasRequiredAttrs()))return t}return null}compatible(e){for(let t=0;t<this.next.length;t++)for(let n=0;n<e.next.length;n++)if(this.next[t].type==e.next[n].type)return!0;return!1}fillBefore(e,t=!1,n=0){let r=[this];function i(a,o){let s=a.matchFragment(e,n);if(s&&(!t||s.validEnd))return B.from(o.map(e=>e.createAndFill()));for(let e=0;e<a.next.length;e++){let{type:t,next:n}=a.next[e];if(!(t.isText||t.hasRequiredAttrs())&&r.indexOf(n)==-1){r.push(n);let e=i(n,o.concat(t));if(e)return e}}return null}return i(this,[])}findWrapping(e){for(let t=0;t<this.wrapCache.length;t+=2)if(this.wrapCache[t]==e)return this.wrapCache[t+1];let t=this.computeWrapping(e);return this.wrapCache.push(e,t),t}computeWrapping(e){let t=Object.create(null),n=[{match:this,type:null,via:null}];for(;n.length;){let r=n.shift(),i=r.match;if(i.matchType(e)){let e=[];for(let t=r;t.type;t=t.via)e.push(t.type);return e.reverse()}for(let e=0;e<i.next.length;e++){let{type:a,next:o}=i.next[e];!a.isLeaf&&!a.hasRequiredAttrs()&&!(a.name in t)&&(!r.type||o.validEnd)&&(n.push({match:a.contentMatch,type:a,via:r}),t[a.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function t(n){e.push(n);for(let r=0;r<n.next.length;r++)e.indexOf(n.next[r].next)==-1&&t(n.next[r].next)}return t(this),e.map((t,n)=>{let r=n+(t.validEnd?`*`:` `)+` `;for(let n=0;n<t.next.length;n++)r+=(n?`, `:``)+t.next[n].type.name+`->`+e.indexOf(t.next[n].next);return r}).join(`
|
|
2
2
|
`)}};xn.empty=new xn(!0);var Sn=class{constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==``&&this.tokens.pop(),this.tokens[0]==``&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw SyntaxError(e+` (in content expression '`+this.string+`')`)}};function Cn(e){let t=[];do t.push(wn(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function wn(e){let t=[];do t.push(Tn(e));while(e.next&&e.next!=`)`&&e.next!=`|`);return t.length==1?t[0]:{type:`seq`,exprs:t}}function Tn(e){let t=kn(e);for(;;)if(e.eat(`+`))t={type:`plus`,expr:t};else if(e.eat(`*`))t={type:`star`,expr:t};else if(e.eat(`?`))t={type:`opt`,expr:t};else if(e.eat(`{`))t=Dn(e,t);else break;return t}function En(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function Dn(e,t){let n=En(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:En(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function On(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let e in n){let r=n[e];r.isInGroup(t)&&i.push(r)}return i.length==0&&e.err(`No node type or group '`+t+`' found`),i}function kn(e){if(e.eat(`(`)){let t=Cn(e);return e.eat(`)`)||e.err(`Missing closing paren`),t}else if(/\W/.test(e.next))e.err(`Unexpected token '`+e.next+`'`);else{let t=On(e,e.next).map(t=>(e.inline==null?e.inline=t.isInline:e.inline!=t.isInline&&e.err(`Mixing inline and block content`),{type:`name`,value:t}));return e.pos++,t.length==1?t[0]:{type:`choice`,exprs:t}}}function An(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(e,n,r){let i={term:r,to:n};return t[e].push(i),i}function i(e,t){e.forEach(e=>e.to=t)}function a(e,t){if(e.type==`choice`)return e.exprs.reduce((e,n)=>e.concat(a(n,t)),[]);if(e.type==`seq`)for(let r=0;;r++){let o=a(e.exprs[r],t);if(r==e.exprs.length-1)return o;i(o,t=n())}else if(e.type==`star`){let o=n();return r(t,o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`plus`){let o=n();return i(a(e.expr,t),o),i(a(e.expr,o),o),[r(o)]}else if(e.type==`opt`)return[r(t)].concat(a(e.expr,t));else if(e.type==`range`){let o=t;for(let t=0;t<e.min;t++){let t=n();i(a(e.expr,o),t),o=t}if(e.max==-1)i(a(e.expr,o),o);else for(let t=e.min;t<e.max;t++){let t=n();r(o,t),i(a(e.expr,o),t),o=t}return[r(o)]}else if(e.type==`name`)return[r(t,void 0,e.value)];else throw Error(`Unknown expr type`)}}function jn(e,t){return t-e}function Mn(e,t){let n=[];return r(t),n.sort(jn);function r(t){let i=e[t];if(i.length==1&&!i[0].term)return r(i[0].to);n.push(t);for(let e=0;e<i.length;e++){let{term:t,to:a}=i[e];!t&&n.indexOf(a)==-1&&r(a)}}}function Nn(e){let t=Object.create(null);return n(Mn(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e<i.length;e++)i[e][0]==t&&(r=i[e][1]);Mn(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new xn(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(jn);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function Pn(e,t){for(let n=0,r=[e];n<r.length;n++){let e=r[n],i=!e.validEnd,a=[];for(let t=0;t<e.next.length;t++){let{type:n,next:o}=e.next[t];a.push(n.name),i&&!(n.isText||n.hasRequiredAttrs())&&(i=!1),r.indexOf(o)==-1&&r.push(o)}i&&t.err(`Only non-generatable nodes (`+a.join(`, `)+`) in a required position (see https://prosemirror.net/docs/guide/#generatable)`)}}function Fn(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function In(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let t=e[r];if(t.hasDefault)i=t.default;else throw RangeError(`No value supplied for attribute `+r)}n[r]=i}return n}function Ln(e,t,n,r){for(let r in t)if(!(r in e))throw RangeError(`Unsupported attribute ${r} for ${n} of type ${r}`);for(let n in e){let r=e[n];r.validate&&r.validate(t[n])}}function Rn(e,t){let n=Object.create(null);if(t)for(let r in t)n[r]=new Vn(e,r,t[r]);return n}var zn=class e{constructor(e,t,n){this.name=e,this.schema=t,this.spec=n,this.markSet=null,this.groups=n.group?n.group.split(` `):[],this.attrs=Rn(e,n.attrs),this.defaultAttrs=Fn(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(n.inline||e==`text`),this.isText=e==`text`}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==xn.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?`pre`:`normal`)}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:In(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new vn(this,this.computeAttrs(e),B.from(t),V.setFrom(n))}createChecked(e=null,t,n){return t=B.from(t),this.checkContent(t),new vn(this,this.computeAttrs(e),t,V.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=B.from(t),t.size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),i=r&&r.fillBefore(B.empty,!0);return i?new vn(this,e,t.append(i),V.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let t=0;t<e.childCount;t++)if(!this.allowsMarks(e.child(t).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){Ln(this.attrs,e,`node`,this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let t=0;t<e.length;t++)if(!this.allowsMarkType(e[t].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let t;for(let n=0;n<e.length;n++)this.allowsMarkType(e[n].type)?t&&t.push(e[n]):t||=e.slice(0,n);return t?t.length?t:V.none:e}static compile(t,n){let r=Object.create(null);t.forEach((t,i)=>r[t]=new e(t,n,i));let i=n.spec.topNode||`doc`;if(!r[i])throw RangeError(`Schema is missing its top node type ('`+i+`')`);if(!r.text)throw RangeError(`Every schema needs a 'text' type`);for(let e in r.text.attrs)throw RangeError(`The text node type should not have attributes`);return r}};function Bn(e,t,n){let r=n.split(`|`);return n=>{let i=n===null?`null`:typeof n;if(r.indexOf(i)<0)throw RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}var Vn=class{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,`default`),this.default=n.default,this.validate=typeof n.validate==`string`?Bn(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},Hn=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=Rn(e,r.attrs),this.excluded=null;let i=Fn(this.attrs);this.instance=i?new V(this,i):null}create(e=null){return!e&&this.instance?this.instance:new V(this,In(this.attrs,e))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((t,a)=>r[t]=new e(t,i++,n,a)),r}removeFromSet(e){for(var t=0;t<e.length;t++)e[t].type==this&&(e=e.slice(0,t).concat(e.slice(t+1)),t--);return e}isInSet(e){for(let t=0;t<e.length;t++)if(e[t].type==this)return e[t]}checkAttrs(e){Ln(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},Un=class{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let t=this.spec={};for(let n in e)t[n]=e[n];t.nodes=Kt.from(e.nodes),t.marks=Kt.from(e.marks||{}),this.nodes=zn.compile(this.spec.nodes,this),this.marks=Hn.compile(this.spec.marks,this);let n=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw RangeError(e+` can not be both a node and a mark`);let t=this.nodes[e],r=t.spec.content||``,i=t.spec.marks;if(t.contentMatch=n[r]||(n[r]=xn.parse(r,this.nodes)),t.inlineContent=t.contentMatch.inlineContent,t.spec.linebreakReplacement){if(this.linebreakReplacement)throw RangeError(`Multiple linebreak nodes defined`);if(!t.isInline||!t.isLeaf)throw RangeError(`Linebreak replacement nodes must be inline leaf nodes`);this.linebreakReplacement=t}t.markSet=i==`_`?null:i?Wn(this,i.split(` `)):i==``||!t.inlineContent?[]:null}for(let e in this.marks){let t=this.marks[e],n=t.spec.excludes;t.excluded=n==null?[t]:n==``?[]:Wn(this,n.split(` `))}this.nodeFromJSON=e=>vn.fromJSON(this,e),this.markFromJSON=e=>V.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||`doc`],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if(typeof e==`string`)e=this.nodeType(e);else if(!(e instanceof zn))throw RangeError(`Invalid node type: `+e);else if(e.schema!=this)throw RangeError(`Node type from different schema used (`+e.name+`)`);return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new yn(n,n.defaultAttrs,e,V.setFrom(t))}mark(e,t){return typeof e==`string`&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw RangeError(`Unknown node type: `+e);return t}};function Wn(e,t){let n=[];for(let r=0;r<t.length;r++){let i=t[r],a=e.marks[i],o=a;if(a)n.push(a);else for(let t in e.marks){let r=e.marks[t];(i==`_`||r.spec.group&&r.spec.group.split(` `).indexOf(i)>-1)&&n.push(o=r)}if(!o)throw SyntaxError(`Unknown mark type: '`+t[r]+`'`)}return n}function Gn(e){return e.tag!=null}function Kn(e){return e.style!=null}var qn=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(Gn(e))this.tags.push(e);else if(Kn(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new nr(this,t,!1);return n.addAll(e,V.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new nr(this,t,!0);return n.addAll(e,V.none,t.from,t.to),H.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;r<this.tags.length;r++){let n=this.tags[r];if(ir(e,n.tag)&&(n.namespace===void 0||e.namespaceURI==n.namespace)&&(!n.context||t.matchesContext(n.context))){if(n.getAttrs){let t=n.getAttrs(e);if(t===!1)continue;n.attrs=t||void 0}return n}}}matchStyle(e,t,n,r){for(let i=r?this.styles.indexOf(r)+1:0;i<this.styles.length;i++){let r=this.styles[i],a=r.style;if(!(a.indexOf(e)!=0||r.context&&!n.matchesContext(r.context)||a.length>e.length&&(a.charCodeAt(e.length)!=61||a.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(e===!1)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=e.priority==null?50:e.priority,r=0;for(;r<t.length;r++){let e=t[r];if((e.priority==null?50:e.priority)<n)break}t.splice(r,0,e)}for(let t in e.marks){let r=e.marks[t].spec.parseDOM;r&&r.forEach(e=>{n(e=ar(e)),e.mark||e.ignore||e.clearMark||(e.mark=t)})}for(let t in e.nodes){let r=e.nodes[t].spec.parseDOM;r&&r.forEach(e=>{n(e=ar(e)),e.node||e.ignore||e.mark||(e.node=t)})}return t}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new e(t,e.schemaRules(t)))}},Jn={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Yn={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Xn={ol:!0,ul:!0},Zn=1,Qn=2,$n=4;function er(e,t,n){return t==null?e&&e.whitespace==`pre`?Zn|Qn:n&~$n:(t?Zn:0)|(t===`full`?Qn:0)}var tr=class{constructor(e,t,n,r,i,a){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=a,this.content=[],this.activeMarks=V.none,this.match=i||(a&$n?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(B.from(e));if(t)this.match=this.type.contentMatch.matchFragment(t);else{let t=this.type.contentMatch,n;return(n=t.findWrapping(e.type))?(this.match=t,n):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&Zn)){let e=this.content[this.content.length-1],t;if(e&&e.isText&&(t=/[ \t\r\n\u000c]+$/.exec(e.text))){let n=e;e.text.length==t[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-t[0].length))}}let t=B.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(B.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!Jn.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},nr=class{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r=t.topNode,i,a=er(null,t.preserveWhitespace,0)|(n?$n:0);i=r?new tr(r.type,r.attrs,V.none,!0,t.topMatch||r.type.contentMatch,a):n?new tr(null,null,V.none,!0,null,a):new tr(e.schema.topNodeType,null,V.none,!0,null,a),this.nodes=[i],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){e.nodeType==3?this.addTextNode(e,t):e.nodeType==1&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=r.options&Qn?`full`:this.localPreserveWS||(r.options&Zn)>0,{schema:a}=this.parser;if(i===`full`||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(!i){if(n=n.replace(/[ \t\r\n\u000c]+/g,` `),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let t=r.content[r.content.length-1],i=e.previousSibling;(!t||i&&i.nodeName==`BR`||t.isText&&/[ \t\r\n\u000c]$/.test(t.text))&&(n=n.slice(1))}}else if(i===`full`)n=n.replace(/\r\n?/g,`
|
|
3
3
|
`);else if(a.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(a.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n<e.length;n++)n&&this.insertNode(a.linebreakReplacement.create(),t,!0),e[n]&&this.insertNode(a.text(e[n]),t,!/\S/.test(e[n]));n=``}else n=n.replace(/\r?\n|\r/g,` `);n&&this.insertNode(a.text(n),t,!/\S/.test(n)),this.findInText(e)}else this.findInside(e)}addElement(e,t,n){let r=this.localPreserveWS,i=this.top;(e.tagName==`PRE`||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let a=e.nodeName.toLowerCase(),o;Xn.hasOwnProperty(a)&&this.parser.normalizeLists&&rr(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:Yn.hasOwnProperty(a))this.findInside(e),this.ignoreFallback(e,t);else if(!s||s.skip||s.closeParent){s&&s.closeParent?this.open=Math.max(0,this.open-1):s&&s.skip.nodeType&&(e=s.skip);let n,r=this.needsBlock;if(Jn.hasOwnProperty(a))i.content.length&&i.content[0].isInline&&this.open&&(this.open--,i=this.top),n=!0,i.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,t);break out}let o=s&&s.skip?t:this.readStyles(e,t);o&&this.addAll(e,o),n&&this.sync(i),this.needsBlock=r}else{let n=this.readStyles(e,t);n&&this.addElementByRule(e,s,n,s.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,t){e.nodeName==`BR`&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
|
|
4
4
|
`),t)}ignoreFallback(e,t){e.nodeName==`BR`&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text(`-`),t,!0)}readStyles(e,t){let n=e.style;if(n&&n.length)for(let e=0;e<this.parser.matchedStyles.length;e++){let r=this.parser.matchedStyles[e],i=n.getPropertyValue(r);if(i)for(let e;;){let n=this.parser.matchStyle(r,i,this,e);if(!n)break;if(n.ignore)return null;if(t=n.clearMark?t.filter(e=>!n.clearMark(e)):t.concat(this.parser.schema.marks[n.mark].create(n.attrs)),n.consuming===!1)e=n;else break}}return t}addElementByRule(e,t,n,r){let i,a;if(t.node)if(a=this.parser.schema.nodes[t.node],a.isLeaf)this.insertNode(a.create(t.attrs),n,e.nodeName==`BR`)||this.leafFallback(e,n);else{let e=this.enter(a,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let o=this.top;if(a&&a.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;typeof t.contentElement==`string`?r=e.querySelector(t.contentElement):typeof t.contentElement==`function`?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(o)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let a=n?e.childNodes[n]:e.firstChild,o=r==null?null:e.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(a,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let t=this.open,a=0;t>=0;t--){let o=this.nodes[t],s=o.findWrapping(e);if(s&&(!r||r.length>s.length+a)&&(r=s,i=o,!s.length))break;if(o.solid){if(n)break;a+=2}}if(!r)return null;this.sync(i);for(let e=0;e<r.length;e++)t=this.enterInner(r[e],null,t,!1);return t}insertNode(e,t,n){if(e.isInline&&this.needsBlock&&!this.top.type){let e=this.textblockFromContext();e&&(t=this.enterInner(e,null,t))}let r=this.findPlace(e,t,n);if(r){this.closeExtra();let t=this.top;t.match&&=t.match.matchType(e.type);let n=V.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):or(i.type,e.type))&&(n=i.addToSet(n));return t.content.push(e.mark(n)),!0}return!1}enter(e,t,n,r){let i=this.findPlace(e.create(t),n,!1);return i&&=this.enterInner(e,t,n,!0,r),i}enterInner(e,t,n,r=!1,i){this.closeExtra();let a=this.top;a.match=a.match&&a.match.matchType(e);let o=er(e,i,a.options);a.options&$n&&a.content.length==0&&(o|=$n);let s=V.none;return n=n.filter(t=>(a.type?a.type.allowsMarkType(t.type):or(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new tr(e,t,s,r,null,o)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--)if(this.nodes[t]==e)return this.open=t,!0;else this.localPreserveWS&&(this.nodes[t].options|=Zn);return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&this.find[n].offset==t&&(this.find[n].pos=this.currentPos)}findInside(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].pos==null&&e.nodeType==1&&e.contains(this.find[t].node)&&(this.find[t].pos=this.currentPos)}findAround(e,t,n){if(e!=t&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&t.compareDocumentPosition(this.find[r].node)&(n?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let t=0;t<this.find.length;t++)this.find[t].node==e&&(this.find[t].pos=this.currentPos-(e.nodeValue.length-this.find[t].offset))}matchesContext(e){if(e.indexOf(`|`)>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split(`/`),n=this.options.context,r=!this.isOpen&&(!n||n.parent.type==this.nodes[0].type),i=-(n?n.depth+1:0)+(r?0:1),a=(e,o)=>{for(;e>=0;e--){let s=t[e];if(s==``){if(e==t.length-1||e==0)continue;for(;o>=i;o--)if(a(e-1,o))return!0;return!1}else{let e=o>0||o==0&&r?this.nodes[o].type:n&&o>=i?n.node(o-i).type:null;if(!e||e.name!=s&&!e.isInGroup(s))return!1;o--}}return!0};return a(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let e in this.parser.schema.nodes){let t=this.parser.schema.nodes[e];if(t.isTextblock&&t.defaultAttrs)return t}}};function rr(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&Xn.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function ir(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function ar(e){let t={};for(let n in e)t[n]=e[n];return t}function or(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=e=>{a.push(e);for(let n=0;n<e.edgeCount;n++){let{type:r,next:i}=e.edge(n);if(r==t||a.indexOf(i)<0&&o(i))return!0}};if(o(i.contentMatch))return!0}}var sr=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=lr(t).createDocumentFragment();let r=n,i=[];return e.forEach(e=>{if(i.length||e.marks.length){let n=0,a=0;for(;n<i.length&&a<e.marks.length;){let t=e.marks[a];if(!this.marks[t.type.name]){a++;continue}if(!t.eq(i[n][0])||t.type.spec.spanning===!1)break;n++,a++}for(;n<i.length;)r=i.pop()[1];for(;a<e.marks.length;){let n=e.marks[a++],o=this.serializeMark(n,e.isInline,t);o&&(i.push([n,r]),r.appendChild(o.dom),r=o.contentDOM||o.dom)}}r.appendChild(this.serializeNodeInner(e,t))}),n}serializeNodeInner(e,t){let{dom:n,contentDOM:r}=pr(lr(t),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw RangeError(`Content hole not allowed in a leaf node spec`);this.serializeFragment(e.content,t,r)}return n}serializeNode(e,t={}){let n=this.serializeNodeInner(e,t);for(let r=e.marks.length-1;r>=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&pr(lr(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return pr(e,t,n,r)}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new e(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(e){let t=cr(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return cr(e.marks)}};function cr(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function lr(e){return e.document||window.document}var ur=new WeakMap;function dr(e){let t=ur.get(e);return t===void 0&&ur.set(e,t=fr(e)),t}function fr(e){let t=null;function n(e){if(e&&typeof e==`object`)if(Array.isArray(e))if(typeof e[0]==`string`)t||=[],t.push(e);else for(let t=0;t<e.length;t++)n(e[t]);else for(let t in e)n(e[t])}return n(e),t}function pr(e,t,n,r){if(typeof t==`string`)return{dom:e.createTextNode(t)};if(t.nodeType!=null)return{dom:t};if(t.dom&&t.dom.nodeType!=null)return t;let i=t[0],a;if(typeof i!=`string`)throw RangeError(`Invalid array passed to renderSpec`);if(r&&(a=dr(r))&&a.indexOf(t)>-1)throw RangeError(`Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.`);let o=i.indexOf(` `);o>0&&(n=i.slice(0,o),i=i.slice(o+1));let s,c=n?e.createElementNS(n,i):e.createElement(i),l=t[1],u=1;if(l&&typeof l==`object`&&l.nodeType==null&&!Array.isArray(l)){u=2;for(let e in l)if(l[e]!=null){let t=e.indexOf(` `);t>0?c.setAttributeNS(e.slice(0,t),e.slice(t+1),l[e]):e==`style`&&c.style?c.style.cssText=l[e]:c.setAttribute(e,l[e])}}for(let i=u;i<t.length;i++){let a=t[i];if(a===0){if(i<t.length-1||i>u)throw RangeError(`Content hole must be the only child of its parent node`);return{dom:c,contentDOM:c}}else{let{dom:t,contentDOM:i}=pr(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var mr=65535,hr=2**16;function gr(e,t){return e+t*hr}function _r(e){return e&mr}function vr(e){return(e-(e&mr))/hr}var yr=1,br=2,xr=4,Sr=8,Cr=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&Sr)>0}get deletedBefore(){return(this.delInfo&(yr|xr))>0}get deletedAfter(){return(this.delInfo&(br|xr))>0}get deletedAcross(){return(this.delInfo&xr)>0}},wr=class e{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&e.empty)return e.empty}recover(e){let t=0,n=_r(e);if(!this.inverted)for(let e=0;e<n;e++)t+=this.ranges[e*3+2]-this.ranges[e*3+1];return this.ranges[n*3]+t+vr(e)}mapResult(e,t=1){return this._map(e,t,!1)}map(e,t=1){return this._map(e,t,!0)}_map(e,t,n){let r=0,i=this.inverted?2:1,a=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let s=this.ranges[o]-(this.inverted?r:0);if(s>e)break;let c=this.ranges[o+i],l=this.ranges[o+a],u=s+c;if(e<=u){let i=c?e==s?-1:e==u?1:t:t,a=s+r+(i<0?0:l);if(n)return a;let d=e==(t<0?s:u)?null:gr(o/3,e-s),f=e==s?br:e==u?yr:xr;return(t<0?e!=s:e!=u)&&(f|=Sr),new Cr(a,f,d)}r+=l-c}return n?e+r:new Cr(e+r,0,null)}touches(e,t){let n=0,r=_r(t),i=this.inverted?2:1,a=this.inverted?1:2;for(let t=0;t<this.ranges.length;t+=3){let o=this.ranges[t]-(this.inverted?n:0);if(o>e)break;let s=this.ranges[t+i];if(e<=o+s&&t==r*3)return!0;n+=this.ranges[t+a]-s}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r<this.ranges.length;r+=3){let a=this.ranges[r],o=a-(this.inverted?i:0),s=a+(this.inverted?0:i),c=this.ranges[r+t],l=this.ranges[r+n];e(o,o+c,s,s+l),i+=l-c}}invert(){return new e(this.ranges,!this.inverted)}toString(){return(this.inverted?`-`:``)+JSON.stringify(this.ranges)}static offset(t){return t==0?e.empty:new e(t<0?[0,-t,0]:[0,0,t])}};wr.empty=new wr([]);var Tr=class e{constructor(e,t,n=0,r=e?e.length:0){this.mirror=t,this.from=n,this.to=r,this._maps=e||[],this.ownData=!(e||t)}get maps(){return this._maps}slice(t=0,n=this.maps.length){return new e(this._maps,this.mirror,t,n)}appendMap(e,t){this.ownData||=(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),!0),this.to=this._maps.push(e),t!=null&&this.setMirror(this._maps.length-1,t)}appendMapping(e){for(let t=0,n=this._maps.length;t<e._maps.length;t++){let r=e.getMirror(t);this.appendMap(e._maps[t],r!=null&&r<t?n+r:void 0)}}getMirror(e){if(this.mirror){for(let t=0;t<this.mirror.length;t++)if(this.mirror[t]==e)return this.mirror[t+(t%2?-1:1)]}}setMirror(e,t){this.mirror||=[],this.mirror.push(e,t)}appendMappingInverted(e){for(let t=e.maps.length-1,n=this._maps.length+e._maps.length;t>=0;t--){let r=e.getMirror(t);this.appendMap(e._maps[t].invert(),r!=null&&r>t?n-r-1:void 0)}}invert(){let t=new e;return t.appendMappingInverted(this),t}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;n<this.to;n++)e=this._maps[n].map(e,t);return e}mapResult(e,t=1){return this._map(e,t,!1)}_map(e,t,n){let r=0;for(let n=this.from;n<this.to;n++){let i=this._maps[n].mapResult(e,t);if(i.recover!=null){let t=this.getMirror(n);if(t!=null&&t>n&&t<this.to){n=t,e=this._maps[t].recover(i.recover);continue}}r|=i.delInfo,e=i.pos}return n?e:new Cr(e,r,null)}},Er=Object.create(null),Dr=class{getMap(){return wr.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=Er[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Er)throw RangeError(`Duplicate use of step JSON ID `+e);return Er[e]=t,t.prototype.jsonID=e,t}},Or=class e{constructor(e,t){this.doc=e,this.failed=t}static ok(t){return new e(t,null)}static fail(t){return new e(null,t)}static fromReplace(t,n,r,i){try{return e.ok(t.replace(n,r,i))}catch(t){if(t instanceof Qt)return e.fail(t.message);throw t}}};function kr(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(kr(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return B.fromArray(r)}var Ar=class e extends Dr{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=e.resolve(this.from),r=n.node(n.sharedDepth(this.to)),i=new H(kr(t.content,(e,t)=>!e.isAtom||!t.type.allowsMarkType(this.mark.type)?e:e.mark(this.mark.addToSet(e.marks)),r),t.openStart,t.openEnd);return Or.fromReplace(e,this.from,this.to,i)}invert(){return new jr(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`addMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for AddMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};Dr.jsonID(`addMark`,Ar);var jr=class e extends Dr{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new H(kr(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return Or.fromReplace(e,this.from,this.to,n)}invert(){return new Ar(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new e(n.pos,r.pos,this.mark)}merge(t){return t instanceof e&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new e(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:`removeMark`,mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for RemoveMarkStep.fromJSON`);return new e(n.from,n.to,t.markFromJSON(n.mark))}};Dr.jsonID(`removeMark`,jr);var Mr=class e extends Dr{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Or.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return Or.fromReplace(e,this.pos,this.pos+1,new H(B.from(n),0,t.isLeaf?0:1))}invert(t){let n=t.nodeAt(this.pos);if(n){let t=this.mark.addToSet(n.marks);if(t.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(t))return new e(this.pos,n.marks[r]);return new e(this.pos,this.mark)}}return new Nr(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`addNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for AddNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};Dr.jsonID(`addNodeMark`,Mr);var Nr=class e extends Dr{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return Or.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return Or.fromReplace(e,this.pos,this.pos+1,new H(B.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new Mr(this.pos,this.mark)}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new e(n.pos,this.mark)}toJSON(){return{stepType:`removeNodeMark`,pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for RemoveNodeMarkStep.fromJSON`);return new e(n.pos,t.markFromJSON(n.mark))}};Dr.jsonID(`removeNodeMark`,Nr);var Pr=class e extends Dr{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&Ir(e,this.from,this.to)?Or.fail(`Structure replace would overwrite content`):Or.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new wr([this.from,this.to-this.from,this.slice.size])}invert(t){return new e(this.from,this.from+this.slice.size,t.slice(this.from,this.to))}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deletedAcross&&r.deletedAcross?null:new e(n.pos,Math.max(n.pos,r.pos),this.slice,this.structure)}merge(t){if(!(t instanceof e)||t.structure||this.structure)return null;if(this.from+this.slice.size==t.from&&!this.slice.openEnd&&!t.slice.openStart){let n=this.slice.size+t.slice.size==0?H.empty:new H(this.slice.content.append(t.slice.content),this.slice.openStart,t.slice.openEnd);return new e(this.from,this.to+(t.to-t.from),n,this.structure)}else if(t.to==this.from&&!this.slice.openStart&&!t.slice.openEnd){let n=this.slice.size+t.slice.size==0?H.empty:new H(t.slice.content.append(this.slice.content),t.slice.openStart,this.slice.openEnd);return new e(t.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:`replace`,from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`)throw RangeError(`Invalid input for ReplaceStep.fromJSON`);return new e(n.from,n.to,H.fromJSON(t,n.slice),!!n.structure)}};Dr.jsonID(`replace`,Pr);var Fr=class e extends Dr{constructor(e,t,n,r,i,a,o=!1){super(),this.from=e,this.to=t,this.gapFrom=n,this.gapTo=r,this.slice=i,this.insert=a,this.structure=o}apply(e){if(this.structure&&(Ir(e,this.from,this.gapFrom)||Ir(e,this.gapTo,this.to)))return Or.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return Or.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?Or.fromReplace(e,this.from,this.to,n):Or.fail(`Content does not fit in gap`)}getMap(){return new wr([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(t){let n=this.gapTo-this.gapFrom;return new e(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,t.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1),i=this.from==this.gapFrom?n.pos:t.map(this.gapFrom,-1),a=this.to==this.gapTo?r.pos:t.map(this.gapTo,1);return n.deletedAcross&&r.deletedAcross||i<n.pos||a>r.pos?null:new e(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:`replaceAround`,from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(t,n){if(typeof n.from!=`number`||typeof n.to!=`number`||typeof n.gapFrom!=`number`||typeof n.gapTo!=`number`||typeof n.insert!=`number`)throw RangeError(`Invalid input for ReplaceAroundStep.fromJSON`);return new e(n.from,n.to,n.gapFrom,n.gapTo,H.fromJSON(t,n.slice),n.insert,!!n.structure)}};Dr.jsonID(`replaceAround`,Fr);function Ir(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let e=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function Lr(e,t,n,r){let i=[],a=[],o,s;e.doc.nodesBetween(t,n,(e,c,l)=>{if(!e.isInline)return;let u=e.marks;if(!r.isInSet(u)&&l.type.allowsMarkType(r.type)){let l=Math.max(c,t),d=Math.min(c+e.nodeSize,n),f=r.addToSet(u);for(let e=0;e<u.length;e++)u[e].isInSet(f)||(o&&o.to==l&&o.mark.eq(u[e])?o.to=d:i.push(o=new jr(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new Ar(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function Rr(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(e,o)=>{if(!e.isInline)return;a++;let s=null;if(r instanceof Hn){let t=e.marks,n;for(;n=r.isInSet(t);)(s||=[]).push(n),t=n.removeFromSet(t)}else r?r.isInSet(e.marks)&&(s=[r]):s=e.marks;if(s&&s.length){let r=Math.min(o+e.nodeSize,n);for(let e=0;e<s.length;e++){let n=s[e],c;for(let e=0;e<i.length;e++){let t=i[e];t.step==a-1&&n.eq(i[e].style)&&(c=t)}c?(c.to=r,c.step=a):i.push({style:n,from:Math.max(o,t),to:r,step:a})}}}),i.forEach(t=>e.step(new jr(t.from,t.to,t.style)))}function zr(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],s=t+1;for(let t=0;t<a.childCount;t++){let c=a.child(t),l=s+c.nodeSize,u=r.matchType(c.type);if(!u)o.push(new Pr(s,l,H.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new jr(s,l,c.marks[t]));if(i&&c.isText&&n.whitespace!=`pre`){let e,t=/\r?\n|\r/g,r;for(;e=t.exec(c.text);)r||=new H(B.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new Pr(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(B.empty,!0);e.replace(s,s,new H(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function Br(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function Vr(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth,r=0,i=0;;--n){let a=e.$from.node(n),o=e.$from.index(n)+r,s=e.$to.indexAfter(n)-i;if(n<e.depth&&a.canReplace(o,s,t))return n;if(n==0||a.type.spec.isolating||!Br(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function Hr(e,t,n){let{$from:r,$to:i,depth:a}=t,o=r.before(a+1),s=i.after(a+1),c=o,l=s,u=B.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=B.from(r.node(e).copy(u)),d++):c--;let f=B.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=B.from(i.node(e).copy(f)),p++):l++;e.step(new Fr(c,l,o,s,new H(u.append(f),d,p),u.size-d,!0))}function Ur(e,t,n=null,r=e){let i=Gr(e,t),a=i&&Kr(r,t);return a?i.map(Wr).concat({type:t,attrs:n}).concat(a.map(Wr)):null}function Wr(e){return{type:e,attrs:null}}function Gr(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.contentMatchAt(r).findWrapping(t);if(!a)return null;let o=a.length?a[0]:t;return n.canReplaceWith(r,i,o)?a:null}function Kr(e,t){let{parent:n,startIndex:r,endIndex:i}=e,a=n.child(r),o=t.contentMatch.findWrapping(a.type);if(!o)return null;let s=(o.length?o[o.length-1]:t).contentMatch;for(let e=r;s&&e<i;e++)s=s.matchType(n.child(e).type);return!s||!s.validEnd?null:o}function qr(e,t,n){let r=B.empty;for(let e=n.length-1;e>=0;e--){if(r.size){let t=n[e].type.contentMatch.matchFragment(r);if(!t||!t.validEnd)throw RangeError(`Wrapper type given to Transform.wrap does not form valid content of its parent wrapper`)}r=B.from(n[e].type.create(n[e].attrs,r))}let i=t.start,a=t.end;e.step(new Fr(i,a,i,a,new H(r,0,0),n.length,!0))}function Jr(e,t,n,r,i){if(!r.isTextblock)throw RangeError(`Type given to setBlockType should be a textblock`);let a=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let o=typeof i==`function`?i(t):i;if(t.isTextblock&&!t.hasMarkup(r,o)&&Zr(e.doc,e.mapping.slice(a).map(n),r)){let i=null;if(r.schema.linebreakReplacement){let e=r.whitespace==`pre`,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?i=!1:!e&&t&&(i=!0)}i===!1&&Xr(e,t,n,a),zr(e,e.mapping.slice(a).map(n,1),r,void 0,i===null);let s=e.mapping.slice(a),c=s.map(n,1),l=s.map(n+t.nodeSize,1);return e.step(new Fr(c,l,c+1,l-1,new H(B.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&Yr(e,t,n,a),!1}})}function Yr(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,s=/\r?\n|\r/g;for(;o=s.exec(i.text);){let i=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Xr(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+a);e.replaceWith(i,i+1,t.type.schema.text(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-DD-I1_y5.js";import{i as t,n,o as r,r as i,t as a}from"./jsx-runtime-BKpb2FvO.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./share-2-Q9lo8ZrW.js";import{n as f,t as p}from"./file-KlvYstdJ.js";import{t as m}from"./house-CyE0Xd3r.js";var h=i(`circle-arrow-up`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 12-4-4-4 4`,key:`177agl`}],[`path`,{d:`M12 16V8`,key:`1sbj14`}]]),g=i(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),_=i(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),v=t(),y=e(r(),1),b=a();function x(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!n){t(null),r(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(i=>{if(!e){if(i.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`;return}t(n),r(!0)}}).catch(()=>{e||(t(n),r(!0))}),()=>{e=!0}},[]),n?e?(0,b.jsxs)(`div`,{className:`data-page`,children:[(0,b.jsxs)(`header`,{className:`data-header`,children:[(0,b.jsxs)(`h1`,{className:`data-title`,children:[(0,b.jsx)(l,{size:18}),` Data`]}),(0,b.jsx)(S,{})]}),(0,b.jsxs)(`main`,{className:`data-main`,children:[(0,b.jsx)(C,{sessionKey:e}),(0,b.jsx)(O,{sessionKey:e})]})]}):(0,b.jsxs)(`div`,{className:`data-page`,children:[(0,b.jsx)(`header`,{className:`data-header`,children:(0,b.jsxs)(`h1`,{className:`data-title`,children:[(0,b.jsx)(l,{size:18}),` Data`]})}),(0,b.jsxs)(`div`,{className:`data-empty`,children:[(0,b.jsx)(`p`,{children:`You are not signed in.`}),(0,b.jsxs)(`p`,{children:[`Open the `,(0,b.jsx)(`a`,{href:`/`,className:`data-link`,children:`main admin page`}),` and log in, then return here.`]})]})]}):(0,b.jsx)(`div`,{className:`data-page`,children:(0,b.jsxs)(`div`,{className:`data-loading`,children:[(0,b.jsx)(o,{size:18,className:`spin`}),` Loading…`]})})}function S(){let[e,t]=(0,y.useState)(!1),n=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!e)return;let r=e=>{n.current&&(n.current.contains(e.target)||t(!1))},i=e=>{e.key===`Escape`&&t(!1)};return document.addEventListener(`mousedown`,r),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`keydown`,i)}},[e]);let r=(0,y.useCallback)(()=>{try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`},[]);return(0,b.jsxs)(`div`,{className:`chat-burger-wrap`,ref:n,children:[(0,b.jsx)(`button`,{type:`button`,className:`chat-burger`,onClick:()=>t(e=>!e),"aria-label":`Menu`,"aria-haspopup":`true`,"aria-expanded":e,children:(0,b.jsx)(u,{size:20})}),e&&(0,b.jsxs)(`div`,{className:`chat-menu`,children:[(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),window.location.href=`/`},children:[(0,b.jsx)(m,{size:14}),` Chat`]}),(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),window.location.href=`/graph`},children:[(0,b.jsx)(d,{size:14}),` Graph`]}),(0,b.jsx)(`div`,{className:`chat-menu-divider`}),(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),r()},children:[(0,b.jsx)(s,{size:14}),` Log out`]})]})]})}function C({sessionKey:e}){let[t,n]=(0,y.useState)(``),[r,i]=(0,y.useState)(``),[a,s]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let e=t.trim();if(!e){i(``),s(null);return}let n=setTimeout(()=>i(e),300);return()=>clearTimeout(n)},[t]),(0,y.useEffect)(()=>{if(!r)return;let t=!1;u(!0),f(null);let n=`/api/admin/graph-search?session_key=${encodeURIComponent(e)}&q=${encodeURIComponent(r)}&limit=20`;return fetch(n).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{t||s(e.results)}).catch(e=>{t||f(e instanceof Error?e.message:String(e))}).finally(()=>{t||u(!1)}),()=>{t=!0}},[r,e]),(0,b.jsxs)(`section`,{className:`data-panel`,children:[(0,b.jsx)(`h2`,{className:`data-panel-title`,children:`Search`}),(0,b.jsx)(`p`,{className:`data-panel-subtitle`,children:`Find anything in your knowledge base by keyword.`}),(0,b.jsxs)(`div`,{className:`data-search-input`,children:[(0,b.jsx)(c,{size:14}),(0,b.jsx)(`input`,{type:`text`,placeholder:`Search your knowledge…`,value:t,onChange:e=>n(e.target.value),autoFocus:!0,autoComplete:`off`,spellCheck:!1}),l&&(0,b.jsx)(o,{size:14,className:`spin`})]}),d&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Search failed: `,d]}),a&&!l&&(0,b.jsxs)(`div`,{className:`data-results-meta`,children:[a.length,` result`,a.length===1?``:`s`]}),a&&a.length===0&&!l&&(0,b.jsx)(`div`,{className:`data-empty-results`,children:`No matches. Try a different keyword.`}),a&&a.length>0&&(0,b.jsx)(`ul`,{className:`data-results`,children:a.map(e=>(0,b.jsx)(w,{hit:e},e.nodeId))})]})}function w({hit:e}){let t=E(e.properties),n=D(e.properties),r=T(e.labels),[i,a]=(0,y.useState)(!1),o=n&&n.length>280,s=i||!o?n:n?.slice(0,280)+`…`;return(0,b.jsxs)(`li`,{className:`data-result`,children:[r&&(0,b.jsx)(`div`,{className:`data-result-header`,children:(0,b.jsx)(`span`,{className:`data-result-labels`,children:r})}),t&&(0,b.jsx)(`div`,{className:`data-result-title`,children:t}),n&&(0,b.jsx)(`pre`,{className:`data-result-body`,children:s}),o&&(0,b.jsx)(`button`,{type:`button`,className:`data-result-toggle`,onClick:()=>a(e=>!e),children:i?`Show less`:`Show more`})]})}function T(e){if(e.length===0)return null;let t=e[0].replace(/([a-z])([A-Z])/g,`$1 $2`);return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}function E(e){for(let t of[`title`,`name`,`summary`,`headline`]){let n=e[t];if(typeof n==`string`&&n.length>0)return n.length>140?n.slice(0,140)+`…`:n}return null}function D(e){for(let t of[`content`,`summary`,`body`,`description`,`text`]){let n=e[t];if(typeof n==`string`&&n.length>0)return n}return null}function O({sessionKey:e}){let[t,r]=(0,y.useState)(`.`),[i,a]=(0,y.useState)(null),[s,c]=(0,y.useState)([]),[l,u]=(0,y.useState)(!1),[d,m]=(0,y.useState)(null),[v,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),[O,j]=(0,y.useState)(null),M=(0,y.useRef)(null),[N,P]=(0,y.useState)(0);(0,y.useEffect)(()=>{let n=!1;u(!0),m(null);let r=`/api/admin/files?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(t===`.`?``:t)}`;return fetch(r).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{n||(a(e.entries),c(e.displayPath??[]))}).catch(e=>{n||(a([]),c([]),m(e instanceof Error?e.message:String(e)))}).finally(()=>{n||u(!1)}),()=>{n=!0}},[e,t,N]);let F=(0,y.useCallback)(e=>{r(e)},[]),I=(0,y.useCallback)(()=>{if(t===`.`||t===``)return;let e=t.split(`/`).filter(Boolean);e.pop(),r(e.length===0?`.`:e.join(`/`))},[t]),L=(0,y.useCallback)(n=>{let r=t===`.`?n.name:`${t}/${n.name}`,i=`/api/admin/files/download?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(r)}`,a=document.createElement(`a`);a.href=i,a.rel=`noopener noreferrer`,document.body.appendChild(a),a.click(),a.remove()},[t,e]),R=(0,y.useCallback)(()=>{M.current?.click()},[]),z=(0,y.useCallback)(e=>{T(null),j(e.name)},[]),B=(0,y.useCallback)(()=>{j(null)},[]),V=(0,y.useCallback)(async n=>{let r=t===`.`?n.name:`${t}/${n.name}`;T(null),j(null),D(n.name);try{let t=`/api/admin/files?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(r)}`,n=await fetch(t,{method:`DELETE`}),i=await n.json().catch(()=>({error:`HTTP ${n.status}`}));if(!n.ok)throw Error(i.error??`HTTP ${n.status}`);P(e=>e+1)}catch(e){T(e instanceof Error?e.message:String(e))}finally{D(null)}},[t,e]);(0,y.useEffect)(()=>{if(!O)return;let e=e=>{e.key===`Escape`&&j(null)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[O]);let H=(0,y.useCallback)(async t=>{C(null),x(!0);try{let n=new FormData;n.append(`session_key`,e),n.append(`file`,t);let i=await fetch(`/api/admin/files/upload`,{method:`POST`,body:n}),a=await i.json().catch(()=>({error:`HTTP ${i.status}`}));if(!i.ok)throw Error(a.error??`HTTP ${i.status}`);r(a.path.split(`/`).slice(0,-1).join(`/`)||`.`),P(e=>e+1)}catch(e){C(e instanceof Error?e.message:String(e))}finally{x(!1),M.current&&(M.current.value=``)}},[e]);return(0,b.jsxs)(`section`,{className:`data-panel`,children:[(0,b.jsxs)(`div`,{className:`data-panel-heading`,children:[(0,b.jsx)(`h2`,{className:`data-panel-title`,children:`Files`}),(0,b.jsxs)(`div`,{className:`data-file-actions`,children:[(0,b.jsxs)(`button`,{type:`button`,className:`data-btn`,onClick:R,disabled:v,children:[v?(0,b.jsx)(o,{size:14,className:`spin`}):(0,b.jsx)(_,{size:14}),` Upload`]}),(0,b.jsx)(`input`,{type:`file`,ref:M,hidden:!0,onChange:e=>{let t=e.target.files?.[0];t&&H(t)}})]})]}),(0,b.jsxs)(`p`,{className:`data-panel-subtitle`,children:[`Everything under your install's `,(0,b.jsx)(`code`,{children:`data/`}),` directory. Click a folder to open it, a file to download it. Uploads go to `,(0,b.jsx)(`code`,{children:`data/uploads/`}),`.`]}),(0,b.jsxs)(`div`,{className:`data-breadcrumbs`,children:[(0,b.jsx)(`button`,{type:`button`,className:`data-crumb`,onClick:()=>F(`.`),children:`data`}),s.map((e,t)=>{let n=s.slice(0,t+1).map(e=>e.name).join(`/`);return(0,b.jsxs)(`span`,{className:`data-crumb-wrap`,children:[(0,b.jsx)(`span`,{className:`data-crumb-sep`,children:`/`}),(0,b.jsx)(`button`,{type:`button`,className:`data-crumb`,onClick:()=>F(n),title:e.name,children:e.displayName??e.name})]},n)}),t!==`.`&&(0,b.jsxs)(`button`,{type:`button`,className:`data-btn data-btn-ghost data-up-btn`,onClick:I,children:[(0,b.jsx)(h,{size:14}),` Up`]})]}),S&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Upload failed: `,S]}),w&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Delete failed: `,w]}),d&&(0,b.jsx)(`div`,{className:`data-error`,children:d}),l&&(0,b.jsxs)(`div`,{className:`data-loading`,children:[(0,b.jsx)(o,{size:14,className:`spin`}),` Loading…`]}),!l&&i&&i.length===0&&!d&&(0,b.jsx)(`div`,{className:`data-empty-results`,children:`Empty directory.`}),!l&&i&&i.length>0&&(0,b.jsx)(`ul`,{className:`data-entries`,children:i.map(e=>{let r=e.displayName??e.name,i=E===e.name,a=O===e.name;return(0,b.jsx)(`li`,{className:`data-entry`,children:e.kind===`directory`?(0,b.jsxs)(`button`,{type:`button`,className:`data-entry-btn`,onClick:()=>F(t===`.`?e.name:`${t}/${e.name}`),children:[(0,b.jsx)(g,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,title:e.name,children:r})]}):e.kind===`file`?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`button`,{type:`button`,className:`data-entry-btn`,onClick:()=>L(e),title:`Download ${r}`,disabled:a,children:[(0,b.jsx)(p,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,title:e.name,children:r}),(0,b.jsxs)(`span`,{className:`data-entry-meta`,title:`Modified ${A(e.modifiedAt)}`,children:[k(e.sizeBytes),` · `,A(e.modifiedAt)]}),(0,b.jsx)(f,{size:12,className:`data-entry-download-icon`})]}),a?(0,b.jsxs)(`div`,{className:`data-entry-confirm`,role:`group`,"aria-label":`Confirm delete ${r}`,children:[(0,b.jsx)(`span`,{className:`data-entry-confirm-label`,children:`Delete?`}),(0,b.jsx)(`button`,{type:`button`,className:`data-entry-confirm-yes`,onClick:()=>V(e),autoFocus:!0,children:`Yes`}),(0,b.jsx)(`button`,{type:`button`,className:`data-entry-confirm-no`,onClick:B,children:`No`})]}):(0,b.jsx)(`button`,{type:`button`,className:`data-entry-delete`,onClick:()=>z(e),disabled:i,title:`Delete ${r}`,"aria-label":`Delete ${r}`,children:i?(0,b.jsx)(o,{size:14,className:`spin`}):(0,b.jsx)(n,{size:14})})]}):(0,b.jsxs)(`div`,{className:`data-entry-btn data-entry-disabled`,children:[(0,b.jsx)(p,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,children:r}),(0,b.jsx)(`span`,{className:`data-entry-meta`,children:`special`})]})},e.name)})})]})}function k(e){return e==null?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${(e/1024/1024/1024).toFixed(1)} GB`}function A(e){try{let t=new Date(e);if(isNaN(t.getTime()))return`—`;let n=typeof navigator<`u`?navigator.languages&&navigator.languages.length>0?[...navigator.languages]:[navigator.language]:void 0;return t.toLocaleString(n,{dateStyle:`medium`,timeStyle:`short`})}catch{return`—`}}(0,v.createRoot)(document.getElementById(`root`)).render((0,b.jsx)(x,{}));
|
|
1
|
+
import{o as e}from"./chunk-DD-I1_y5.js";import{i as t,n,o as r,r as i,t as a}from"./jsx-runtime-C-H-0vwA.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./share-2--beVI26B.js";import{n as f,t as p}from"./file-DTW7TZ7G.js";import{t as m}from"./house-DKctRD9t.js";var h=i(`circle-arrow-up`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 12-4-4-4 4`,key:`177agl`}],[`path`,{d:`M12 16V8`,key:`1sbj14`}]]),g=i(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),_=i(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),v=t(),y=e(r(),1),b=a();function x(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{let e=!1,n=null;try{n=sessionStorage.getItem(`maxy-admin-session-key`)}catch{}if(!n){t(null),r(!0);return}return fetch(`/api/admin/session?session_key=${encodeURIComponent(n)}`).then(i=>{if(!e){if(i.status===401){try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`;return}t(n),r(!0)}}).catch(()=>{e||(t(n),r(!0))}),()=>{e=!0}},[]),n?e?(0,b.jsxs)(`div`,{className:`data-page`,children:[(0,b.jsxs)(`header`,{className:`data-header`,children:[(0,b.jsxs)(`h1`,{className:`data-title`,children:[(0,b.jsx)(l,{size:18}),` Data`]}),(0,b.jsx)(S,{})]}),(0,b.jsxs)(`main`,{className:`data-main`,children:[(0,b.jsx)(C,{sessionKey:e}),(0,b.jsx)(O,{sessionKey:e})]})]}):(0,b.jsxs)(`div`,{className:`data-page`,children:[(0,b.jsx)(`header`,{className:`data-header`,children:(0,b.jsxs)(`h1`,{className:`data-title`,children:[(0,b.jsx)(l,{size:18}),` Data`]})}),(0,b.jsxs)(`div`,{className:`data-empty`,children:[(0,b.jsx)(`p`,{children:`You are not signed in.`}),(0,b.jsxs)(`p`,{children:[`Open the `,(0,b.jsx)(`a`,{href:`/`,className:`data-link`,children:`main admin page`}),` and log in, then return here.`]})]})]}):(0,b.jsx)(`div`,{className:`data-page`,children:(0,b.jsxs)(`div`,{className:`data-loading`,children:[(0,b.jsx)(o,{size:18,className:`spin`}),` Loading…`]})})}function S(){let[e,t]=(0,y.useState)(!1),n=(0,y.useRef)(null);(0,y.useEffect)(()=>{if(!e)return;let r=e=>{n.current&&(n.current.contains(e.target)||t(!1))},i=e=>{e.key===`Escape`&&t(!1)};return document.addEventListener(`mousedown`,r),document.addEventListener(`keydown`,i),()=>{document.removeEventListener(`mousedown`,r),document.removeEventListener(`keydown`,i)}},[e]);let r=(0,y.useCallback)(()=>{try{sessionStorage.removeItem(`maxy-admin-session-key`)}catch{}window.location.href=`/`},[]);return(0,b.jsxs)(`div`,{className:`chat-burger-wrap`,ref:n,children:[(0,b.jsx)(`button`,{type:`button`,className:`chat-burger`,onClick:()=>t(e=>!e),"aria-label":`Menu`,"aria-haspopup":`true`,"aria-expanded":e,children:(0,b.jsx)(u,{size:20})}),e&&(0,b.jsxs)(`div`,{className:`chat-menu`,children:[(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),window.location.href=`/`},children:[(0,b.jsx)(m,{size:14}),` Chat`]}),(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),window.location.href=`/graph`},children:[(0,b.jsx)(d,{size:14}),` Graph`]}),(0,b.jsx)(`div`,{className:`chat-menu-divider`}),(0,b.jsxs)(`button`,{type:`button`,className:`chat-menu-item`,onClick:()=>{t(!1),r()},children:[(0,b.jsx)(s,{size:14}),` Log out`]})]})]})}function C({sessionKey:e}){let[t,n]=(0,y.useState)(``),[r,i]=(0,y.useState)(``),[a,s]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let e=t.trim();if(!e){i(``),s(null);return}let n=setTimeout(()=>i(e),300);return()=>clearTimeout(n)},[t]),(0,y.useEffect)(()=>{if(!r)return;let t=!1;u(!0),f(null);let n=`/api/admin/graph-search?session_key=${encodeURIComponent(e)}&q=${encodeURIComponent(r)}&limit=20`;return fetch(n).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{t||s(e.results)}).catch(e=>{t||f(e instanceof Error?e.message:String(e))}).finally(()=>{t||u(!1)}),()=>{t=!0}},[r,e]),(0,b.jsxs)(`section`,{className:`data-panel`,children:[(0,b.jsx)(`h2`,{className:`data-panel-title`,children:`Search`}),(0,b.jsx)(`p`,{className:`data-panel-subtitle`,children:`Find anything in your knowledge base by keyword.`}),(0,b.jsxs)(`div`,{className:`data-search-input`,children:[(0,b.jsx)(c,{size:14}),(0,b.jsx)(`input`,{type:`text`,placeholder:`Search your knowledge…`,value:t,onChange:e=>n(e.target.value),autoFocus:!0,autoComplete:`off`,spellCheck:!1}),l&&(0,b.jsx)(o,{size:14,className:`spin`})]}),d&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Search failed: `,d]}),a&&!l&&(0,b.jsxs)(`div`,{className:`data-results-meta`,children:[a.length,` result`,a.length===1?``:`s`]}),a&&a.length===0&&!l&&(0,b.jsx)(`div`,{className:`data-empty-results`,children:`No matches. Try a different keyword.`}),a&&a.length>0&&(0,b.jsx)(`ul`,{className:`data-results`,children:a.map(e=>(0,b.jsx)(w,{hit:e},e.nodeId))})]})}function w({hit:e}){let t=E(e.properties),n=D(e.properties),r=T(e.labels),[i,a]=(0,y.useState)(!1),o=n&&n.length>280,s=i||!o?n:n?.slice(0,280)+`…`;return(0,b.jsxs)(`li`,{className:`data-result`,children:[r&&(0,b.jsx)(`div`,{className:`data-result-header`,children:(0,b.jsx)(`span`,{className:`data-result-labels`,children:r})}),t&&(0,b.jsx)(`div`,{className:`data-result-title`,children:t}),n&&(0,b.jsx)(`pre`,{className:`data-result-body`,children:s}),o&&(0,b.jsx)(`button`,{type:`button`,className:`data-result-toggle`,onClick:()=>a(e=>!e),children:i?`Show less`:`Show more`})]})}function T(e){if(e.length===0)return null;let t=e[0].replace(/([a-z])([A-Z])/g,`$1 $2`);return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}function E(e){for(let t of[`title`,`name`,`summary`,`headline`]){let n=e[t];if(typeof n==`string`&&n.length>0)return n.length>140?n.slice(0,140)+`…`:n}return null}function D(e){for(let t of[`content`,`summary`,`body`,`description`,`text`]){let n=e[t];if(typeof n==`string`&&n.length>0)return n}return null}function O({sessionKey:e}){let[t,r]=(0,y.useState)(`.`),[i,a]=(0,y.useState)(null),[s,c]=(0,y.useState)([]),[l,u]=(0,y.useState)(!1),[d,m]=(0,y.useState)(null),[v,x]=(0,y.useState)(!1),[S,C]=(0,y.useState)(null),[w,T]=(0,y.useState)(null),[E,D]=(0,y.useState)(null),[O,j]=(0,y.useState)(null),M=(0,y.useRef)(null),[N,P]=(0,y.useState)(0);(0,y.useEffect)(()=>{let n=!1;u(!0),m(null);let r=`/api/admin/files?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(t===`.`?``:t)}`;return fetch(r).then(async e=>{let t=await e.json().catch(()=>({error:`HTTP ${e.status}`}));if(!e.ok)throw Error(t.error??`HTTP ${e.status}`);return t}).then(e=>{n||(a(e.entries),c(e.displayPath??[]))}).catch(e=>{n||(a([]),c([]),m(e instanceof Error?e.message:String(e)))}).finally(()=>{n||u(!1)}),()=>{n=!0}},[e,t,N]);let F=(0,y.useCallback)(e=>{r(e)},[]),I=(0,y.useCallback)(()=>{if(t===`.`||t===``)return;let e=t.split(`/`).filter(Boolean);e.pop(),r(e.length===0?`.`:e.join(`/`))},[t]),L=(0,y.useCallback)(n=>{let r=t===`.`?n.name:`${t}/${n.name}`,i=`/api/admin/files/download?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(r)}`,a=document.createElement(`a`);a.href=i,a.rel=`noopener noreferrer`,document.body.appendChild(a),a.click(),a.remove()},[t,e]),R=(0,y.useCallback)(()=>{M.current?.click()},[]),z=(0,y.useCallback)(e=>{T(null),j(e.name)},[]),B=(0,y.useCallback)(()=>{j(null)},[]),V=(0,y.useCallback)(async n=>{let r=t===`.`?n.name:`${t}/${n.name}`;T(null),j(null),D(n.name);try{let t=`/api/admin/files?session_key=${encodeURIComponent(e)}&path=${encodeURIComponent(r)}`,n=await fetch(t,{method:`DELETE`}),i=await n.json().catch(()=>({error:`HTTP ${n.status}`}));if(!n.ok)throw Error(i.error??`HTTP ${n.status}`);P(e=>e+1)}catch(e){T(e instanceof Error?e.message:String(e))}finally{D(null)}},[t,e]);(0,y.useEffect)(()=>{if(!O)return;let e=e=>{e.key===`Escape`&&j(null)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[O]);let H=(0,y.useCallback)(async t=>{C(null),x(!0);try{let n=new FormData;n.append(`session_key`,e),n.append(`file`,t);let i=await fetch(`/api/admin/files/upload`,{method:`POST`,body:n}),a=await i.json().catch(()=>({error:`HTTP ${i.status}`}));if(!i.ok)throw Error(a.error??`HTTP ${i.status}`);r(a.path.split(`/`).slice(0,-1).join(`/`)||`.`),P(e=>e+1)}catch(e){C(e instanceof Error?e.message:String(e))}finally{x(!1),M.current&&(M.current.value=``)}},[e]);return(0,b.jsxs)(`section`,{className:`data-panel`,children:[(0,b.jsxs)(`div`,{className:`data-panel-heading`,children:[(0,b.jsx)(`h2`,{className:`data-panel-title`,children:`Files`}),(0,b.jsxs)(`div`,{className:`data-file-actions`,children:[(0,b.jsxs)(`button`,{type:`button`,className:`data-btn`,onClick:R,disabled:v,children:[v?(0,b.jsx)(o,{size:14,className:`spin`}):(0,b.jsx)(_,{size:14}),` Upload`]}),(0,b.jsx)(`input`,{type:`file`,ref:M,hidden:!0,onChange:e=>{let t=e.target.files?.[0];t&&H(t)}})]})]}),(0,b.jsxs)(`p`,{className:`data-panel-subtitle`,children:[`Everything under your install's `,(0,b.jsx)(`code`,{children:`data/`}),` directory. Click a folder to open it, a file to download it. Uploads go to `,(0,b.jsx)(`code`,{children:`data/uploads/`}),`.`]}),(0,b.jsxs)(`div`,{className:`data-breadcrumbs`,children:[(0,b.jsx)(`button`,{type:`button`,className:`data-crumb`,onClick:()=>F(`.`),children:`data`}),s.map((e,t)=>{let n=s.slice(0,t+1).map(e=>e.name).join(`/`);return(0,b.jsxs)(`span`,{className:`data-crumb-wrap`,children:[(0,b.jsx)(`span`,{className:`data-crumb-sep`,children:`/`}),(0,b.jsx)(`button`,{type:`button`,className:`data-crumb`,onClick:()=>F(n),title:e.name,children:e.displayName??e.name})]},n)}),t!==`.`&&(0,b.jsxs)(`button`,{type:`button`,className:`data-btn data-btn-ghost data-up-btn`,onClick:I,children:[(0,b.jsx)(h,{size:14}),` Up`]})]}),S&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Upload failed: `,S]}),w&&(0,b.jsxs)(`div`,{className:`data-error`,children:[`Delete failed: `,w]}),d&&(0,b.jsx)(`div`,{className:`data-error`,children:d}),l&&(0,b.jsxs)(`div`,{className:`data-loading`,children:[(0,b.jsx)(o,{size:14,className:`spin`}),` Loading…`]}),!l&&i&&i.length===0&&!d&&(0,b.jsx)(`div`,{className:`data-empty-results`,children:`Empty directory.`}),!l&&i&&i.length>0&&(0,b.jsx)(`ul`,{className:`data-entries`,children:i.map(e=>{let r=e.displayName??e.name,i=E===e.name,a=O===e.name;return(0,b.jsx)(`li`,{className:`data-entry`,children:e.kind===`directory`?(0,b.jsxs)(`button`,{type:`button`,className:`data-entry-btn`,onClick:()=>F(t===`.`?e.name:`${t}/${e.name}`),children:[(0,b.jsx)(g,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,title:e.name,children:r})]}):e.kind===`file`?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`button`,{type:`button`,className:`data-entry-btn`,onClick:()=>L(e),title:`Download ${r}`,disabled:a,children:[(0,b.jsx)(p,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,title:e.name,children:r}),(0,b.jsxs)(`span`,{className:`data-entry-meta`,title:`Modified ${A(e.modifiedAt)}`,children:[k(e.sizeBytes),` · `,A(e.modifiedAt)]}),(0,b.jsx)(f,{size:12,className:`data-entry-download-icon`})]}),a?(0,b.jsxs)(`div`,{className:`data-entry-confirm`,role:`group`,"aria-label":`Confirm delete ${r}`,children:[(0,b.jsx)(`span`,{className:`data-entry-confirm-label`,children:`Delete?`}),(0,b.jsx)(`button`,{type:`button`,className:`data-entry-confirm-yes`,onClick:()=>V(e),autoFocus:!0,children:`Yes`}),(0,b.jsx)(`button`,{type:`button`,className:`data-entry-confirm-no`,onClick:B,children:`No`})]}):(0,b.jsx)(`button`,{type:`button`,className:`data-entry-delete`,onClick:()=>z(e),disabled:i,title:`Delete ${r}`,"aria-label":`Delete ${r}`,children:i?(0,b.jsx)(o,{size:14,className:`spin`}):(0,b.jsx)(n,{size:14})})]}):(0,b.jsxs)(`div`,{className:`data-entry-btn data-entry-disabled`,children:[(0,b.jsx)(p,{size:14}),(0,b.jsx)(`span`,{className:`data-entry-name`,children:r}),(0,b.jsx)(`span`,{className:`data-entry-meta`,children:`special`})]})},e.name)})})]})}function k(e){return e==null?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${(e/1024/1024/1024).toFixed(1)} GB`}function A(e){try{let t=new Date(e);if(isNaN(t.getTime()))return`—`;let n=typeof navigator<`u`?navigator.languages&&navigator.languages.length>0?[...navigator.languages]:[navigator.language]:void 0;return t.toLocaleString(n,{dateStyle:`medium`,timeStyle:`short`})}catch{return`—`}}(0,v.createRoot)(document.getElementById(`root`)).render((0,b.jsx)(x,{}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./jsx-runtime-
|
|
1
|
+
import{r as e}from"./jsx-runtime-C-H-0vwA.js";var t=e(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),n=e(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]);export{t as n,n as t};
|