@rubytech/create-realagent 1.0.431 → 1.0.433
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/maxy/public/assets/{ChatInput-BcuvuN5M.css → ChatInput-qaJ6-ih2.css} +1 -1
- package/payload/maxy/public/assets/{admin-UVNb2w2B.js → admin-KW1CBsie.js} +1 -1
- package/payload/maxy/public/assets/{public-CJdTPrH1.js → public-BtdmBNoS.js} +1 -1
- package/payload/maxy/public/brand-defaults.css +2 -2
- package/payload/maxy/public/index.html +3 -3
- package/payload/maxy/public/public.html +3 -3
- package/payload/maxy/server.js +1 -1
- package/payload/platform/config/brand.json +3 -3
- package/payload/platform/plugins/admin/mcp/dist/index.js +3 -1
- package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/anthropic/PLUGIN.md +13 -15
- package/payload/platform/plugins/anthropic/references/setup-guide.md +9 -88
- package/payload/platform/plugins/cloudflare/PLUGIN.md +2 -2
- package/payload/platform/plugins/cloudflare/mcp/dist/index.js +5 -5
- package/payload/platform/plugins/cloudflare/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/cloudflare/references/setup-guide.md +9 -6
- /package/payload/maxy/public/assets/{ChatInput-Bkvp46jn.js → ChatInput-D1ZgZMZz.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,n as _,o as v,p as y,r as b,s as x,t as S,u as C,v as w,w as T,x as E,y as D}from"./ChatInput-Bkvp46jn.js";var O=T(`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`}]]),k=T(`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`}]]),A=T(`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`}]]),j=T(`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`}]]),ee=T(`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`}]]),te=T(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),ne=T(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),re=T(`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`}]]),ie=T(`circle-plus`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),ae=T(`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`}]]),oe=T(`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`}]]),se=T(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),ce=T(`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`}]]),le=T(`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`}]]),M=T(`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`}]]),ue=T(`dot`,[[`circle`,{cx:`12.1`,cy:`12.1`,r:`1`,key:`18d7e5`}]]),N=T(`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`}]]),de=T(`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`}]]),P=T(`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`}]]),F=T(`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=T(`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`}]]),pe=T(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),me=T(`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`}]]),he=T(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),ge=T(`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`}]]),_e=T(`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=T(`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`}]]),ye=T(`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`}]]),be=T(`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`}]]),xe=T(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Se=T(`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`}]]),Ce=T(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),we=T(`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`}]]),Te=T(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ee=T(`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`}]]),De=T(`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`}]]),Oe=T(`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`}]]),ke=T(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),Ae=T(`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`}]]),je=T(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),Me=T(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Ne=T(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Pe=T(`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`}]]),Fe=T(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Ie=T(`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`}]]),Le=T(`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`}]]),Re=T(`square-check-big`,[[`path`,{d:`M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344`,key:`2acyp4`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),ze=T(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Be=T(`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`}]]),Ve=T(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),He=T(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Ue=T(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),We=T(`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`}]]),Ge=T(`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`}]]),Ke=T(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),qe=T(`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`}]]),Je=a(),I=h(t(),1);function Ye(){(0,I.useEffect)(()=>{function e(e){e.data?.type===`vnc-clipboard`&&typeof e.data.text==`string`&&o(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`&&o(e.data)}),()=>{window.removeEventListener(`message`,e),t?.close()}},[])}function Xe(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 Ze(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function Qe(){let[e,t]=(0,I.useState)(0),n=(0,I.useRef)(0),r=(0,I.useRef)(0),i=(0,I.useRef)(null),[a,o]=(0,I.useState)(0),s=(0,I.useRef)(0),c=(0,I.useRef)(null),l=(0,I.useRef)(null);return{elapsedSeconds:e,sessionElapsed:a,sessionTurnStart:l,pausedElapsedRef:r,startElapsedTimer:(0,I.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,I.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,I.useCallback)(()=>{s.current=0,o(0)},[])}}var $e=`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv`,et=new Set($e.split(`,`)),tt=20*1024*1024,nt=new Set([`action-list`,`document-editor`,`rich-content-editor`,`grid-editor`]);function rt(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}function it(){let[e,t]=(0,I.useState)(`loading`),[n,r]=(0,I.useState)(``),[i,a]=(0,I.useState)(``),[o,s]=(0,I.useState)(``),[c,l]=(0,I.useState)(!1),[u,d]=(0,I.useState)(!1),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(!1),[g,_]=(0,I.useState)(!1),[v,y]=(0,I.useState)(null),[b,x]=(0,I.useState)(null),[S,C]=(0,I.useState)(!1),[w,T]=(0,I.useState)(!1),[E,D]=(0,I.useState)(void 0),[O,k]=(0,I.useState)(void 0),A=(0,I.useRef)(void 0),j=(0,I.useRef)(null),ee=(0,I.useRef)(null),te=(0,I.useRef)(null);(0,I.useEffect)(()=>{async function e(n=2){try{let e=await fetch(`/api/health`);if(!e.ok){t(`set-pin`);return}let n=await e.json();n.pin_configured?n.claude_authenticated?t(`enter-pin`):t(`connect-claude`):t(`set-pin`)}catch(r){if(n>0)return await new Promise(e=>setTimeout(e,1500)),e(n-1);console.error(`[admin] health check failed:`,r),t(`set-pin`)}}e()},[]),(0,I.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,I.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,I.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 ne(e){d(!0);try{let n=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e})});if(!n.ok){s((await n.json().catch(()=>({}))).error||`Invalid PIN`);return}let i=await n.json();y(i.session_key),D(i.onboardingComplete??!0);let o=rt(i.thinkingView);A.current=o,k(o),r(``),a(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}}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,expandAll:O,setExpandAll:k,expandAllDefaultRef:A,pinInputRef:j,confirmPinInputRef:ee,setPinFormRef:te,handleSetPin:(0,I.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){s((await e.json().catch(()=>({}))).error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`);if((n.ok?await n.json():null)?.claude_authenticated){await ne(o);return}r(``),a(``),t(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,i,u]),handleLogin:(0,I.useCallback)(async e=>{e.preventDefault(),s(``),await ne(n)},[n]),handleContextModeToggle:(0,I.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]),handleDisconnect:(0,I.useCallback)(async()=>{_(!0),await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null),t(`connect-claude`)},[]),handleLogout:(0,I.useCallback)(()=>{y(null),r(``),a(``),s(``),t(`enter-pin`)},[]),handleChangePin:(0,I.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{s(`Could not connect.`)}finally{d(!1)}},[n])}}function at(e){let{sessionKey:t,setAppState:n,startElapsedTimer:r,stopElapsedTimer:i,resetTimerState:a,pausedElapsedRef:o,expandAllDefaultRef:s,setExpandAll:c,getPendingFiles:l,clearPendingFiles:u,inputRef:d}=e,[p,m]=(0,I.useState)([]),[h,g]=(0,I.useState)(``),[_,v]=(0,I.useState)(!1),[y,b]=(0,I.useState)([]),x=(0,I.useRef)([]),[S,C]=(0,I.useState)(!1),[w,T]=(0,I.useState)(!1),E=(0,I.useRef)(!1),[D,O]=(0,I.useState)(0),[k,A]=(0,I.useState)(!1),j=(0,I.useRef)(null),ee=(0,I.useRef)(()=>{}),[te,ne]=(0,I.useState)(new Set);function re(e){x.current=e,b(e)}function ie(e){j.current?.abort(),A(e)}async function ae(e){if(_||!t)return;A(!1),r(),v(!0);let a=new AbortController;j.current=a,m([{role:`maxy`,events:[],timestamp:Date.now()}]);try{let r=await fetch(`/api/admin/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e,session_key:t}),signal:a.signal});if(!r.ok){if(r.status===401&&(await r.json().catch(()=>({}))).error===`auth_expired`){n(`connect-claude`);return}throw Error(`Chat request failed`)}for await(let e of f(r)){if(e.type===`session_reset`){E.current=!0;continue}if(e.type===`done`||e.type===`session_init`)continue;let t=e;m(e=>{let n=[...e];return n[0]?.role===`maxy`&&(n[0]={...n[0],events:[...n[0].events??[],t]}),n})}}catch(e){e instanceof DOMException&&e.name===`AbortError`||(console.error(`[chat] admin sendMessage failed:`,e),m([{role:`maxy`,events:[{type:`text`,content:`Error: ${e instanceof Error?e.message:String(e)}`}],timestamp:Date.now()}]))}finally{i(m),v(!1),E.current?(E.current=!1,oe()):d.current?.focus()}}function oe(){m([]),T(!1),a(),ne(new Set),c(s.current),re([]),g(``),u(),A(!1),O(e=>e+1)}function se(){_||S||oe()}function ce(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{}nt.has(i??``)||ne(t=>new Set(t).add(`${e}_${n}`)),M(i?JSON.stringify({_componentDone:!0,component:i,payload:r}):r,void 0,void 0,!0)}let le=(0,I.useMemo)(()=>{let e=new Set(te),t=[];for(let e=0;e<p.length;e++){let n=p[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},[p,te]);async function M(e,a,s,c){if(!e&&(a??l()).length===0&&!k||_||!t)return;let h=k;A(!1),T(!1);let y=a??[...l()],b=y.map(e=>({attachmentId:``,filename:e.name,mimeType:e.type})),S={role:`admin`,content:e,attachments:b.length>0?b:void 0,timestamp:s??Date.now(),hidden:c||void 0},C=p.length;m(e=>[...e,S]),g(``),a||u(),r(h?o.current:0),v(!0);let w=new AbortController;j.current=w;let D={role:`maxy`,events:[],timestamp:Date.now()};m(e=>[...e,D]);let O=C+1;try{let r,i={};if(y.length>0){let n=new FormData;n.append(`message`,e),n.append(`session_key`,t);for(let e of y)n.append(`attachments`,e);r=n}else r=JSON.stringify({message:e,session_key:t}),i={"Content-Type":`application/json`};let a=await fetch(`/api/admin/chat`,{method:`POST`,headers:i,body:r,signal:w.signal});if(!a.ok){if(a.status===401&&(await a.json().catch(()=>({}))).error===`auth_expired`){n(`connect-claude`);return}throw Error(`Chat request failed`)}for await(let e of f(a)){if(e.type===`session_reset`){E.current=!0;continue}if(e.type===`done`||e.type===`session_init`)continue;let t=e;m(e=>{let n=[...e],r=n[O];if(r&&r.role===`maxy`){let i=r.events??[];if(t.type===`component`&&i.some(e=>e.type===`component`&&e.name===t.name))return e;n[O]={...r,events:[...i,t]}}return n})}}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);m(e=>{let n=[...e];return n[O]={role:`maxy`,events:[{type:`text`,content:`Error: ${t}`}],timestamp:Date.now()},n})}}finally{if(i(m),v(!1),E.current)E.current=!1,oe();else{let e=x.current;if(e.length>0){let[t,...n]=e;re(n),M(t.text,t.files,t.timestamp)}else d.current?.focus()}}}return ee.current=M,{messages:p,setMessages:m,input:h,setInput:g,isStreaming:_,messageQueue:y,messageQueueRef:x,setQueue:re,isCompacting:S,sessionCompacted:w,greetingGeneration:D,wasPaused:k,sendMessageRef:ee,submittedComponents:te,effectiveSubmitted:le,stopStreaming:ie,sendSystemPrompt:ae,sendMessage:M,resetSession:oe,startNewSession:se,handleComponentSubmit:ce,handleCompactNow:(0,I.useCallback)(async()=>{if(!(!t||_||S)){C(!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 f(e))if(t.type===`status`&&t.message){let e=t.message;m(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&&T(!0)}finally{C(!1)}}},[t,_,S])}}function ot(){let[e,t]=(0,I.useState)([]),[n,r]=(0,I.useState)(!1),[i,a]=(0,I.useState)(null),o=(0,I.useRef)(null),s=(0,I.useCallback)(e=>{a(null);let n=e.find(e=>!et.has(e.type));if(n){a(`Unsupported file type: "${n.type}". Supported: images, PDF, plain text, markdown, CSV.`);return}let r=e.find(e=>e.size>tt);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,I.useCallback)(()=>{t([]),a(null)},[]),removeFile:(0,I.useCallback)(e=>{t(t=>t.filter((t,n)=>n!==e))},[]),onDragOver:(0,I.useCallback)(e=>{e.preventDefault(),r(!0)},[]),onDragLeave:(0,I.useCallback)(()=>{r(!1)},[]),onDrop:(0,I.useCallback)(e=>{e.preventDefault(),r(!1),s([...e.dataTransfer.files])},[s])}}var L=d();function st({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,I.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()}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,L.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,L.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 ct(e){let{pin:t,setPin:n,confirmPin:r,setConfirmPin:i,showPin:a,setShowPin:o,pinLoading:s,pinError:c,pinInputRef:l,confirmPinInputRef:d,setPinFormRef:f,onSubmit:m}=e;return(0,L.jsx)(`div`,{className:`connect-page`,children:(0,L.jsxs)(`div`,{className:`connect-content`,children:[(0,L.jsx)(`img`,{src:p,alt:y.productName,className:`connect-logo connect-logo--maxy`}),(0,L.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,y.productName]}),(0,L.jsx)(`p`,{className:`connect-subtitle`,children:`Choose a PIN to secure your admin access.`}),(0,L.jsxs)(`form`,{ref:f,onSubmit:m,className:`connect-pin-form`,children:[(0,L.jsxs)(`div`,{className:`pin-input-row`,children:[(0,L.jsx)(st,{inputRef:l,value:t,onChange:n,onComplete:()=>d.current?.focus(),showPin:a,autoFocus:!0}),(0,L.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,L.jsxs)(`div`,{className:`pin-input-row`,children:[(0,L.jsx)(st,{inputRef:d,value:r,onChange:i,onComplete:()=>{},showPin:a}),(0,L.jsx)(C,{variant:`send`,type:`submit`,disabled:!t||!r,loading:s,"aria-label":`Set PIN`,children:(0,L.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,L.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,L.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,L.jsx)(u,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})]}),c&&(0,L.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function lt(e){let{pin:t,setPin:n,showPin:r,setShowPin:i,pinLoading:a,pinError:o,pinInputRef:s,onSubmit:c,onChangePin:l}=e;return(0,L.jsx)(`div`,{className:`connect-page`,children:(0,L.jsxs)(`div`,{className:`connect-content`,children:[(0,L.jsx)(`img`,{src:p,alt:y.productName,className:`connect-logo connect-logo--maxy`}),(0,L.jsx)(`h1`,{className:`connect-title`,children:y.productName}),(0,L.jsxs)(`form`,{onSubmit:c,className:`connect-pin-form`,children:[(0,L.jsxs)(`div`,{className:`pin-input-row`,children:[(0,L.jsx)(st,{inputRef:s,value:t,onChange:n,onComplete:()=>{},showPin:r,autoFocus:!0}),(0,L.jsx)(C,{variant:`send`,type:`submit`,disabled:!t,loading:a,children:(0,L.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,L.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,L.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,L.jsxs)(`div`,{className:`pin-options`,children:[(0,L.jsx)(u,{checked:r,onChange:()=>i(e=>!e),label:`Show PIN`}),(0,L.jsx)(C,{type:`button`,variant:`ghost`,onClick:l,children:`Change PIN`})]})]}),o&&(0,L.jsx)(`p`,{className:`admin-pin-error`,children:o})]})})}function ut(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:s}=e,[c,l]=(0,I.useState)(!1),[u,d]=(0,I.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 m(){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 h(){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,L.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,L.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,L.jsx)(`button`,{onClick:h,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,L.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,L.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,L.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,L.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,L.jsx)(`div`,{style:{marginTop:`12px`},children:(0,L.jsx)(C,{variant:`primary`,onClick:m,disabled:r,children:r?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,L.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,L.jsx)(`iframe`,{src:`/vnc-viewer.html?host=${window.location.hostname}&port=6080`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,L.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,L.jsx)(`div`,{className:`connect-page`,children:(0,L.jsxs)(`div`,{className:`connect-content`,children:[(0,L.jsxs)(`div`,{className:`connect-logos`,children:[(0,L.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,L.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`}),(0,L.jsx)(`span`,{className:`connect-logo-label`,children:`Claude`})]}),(0,L.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,L.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,L.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,L.jsx)(`img`,{src:p,alt:y.productName,className:`connect-logo connect-logo--maxy`}),(0,L.jsx)(`span`,{className:`connect-logo-label`,children:y.productName})]})]}),(0,L.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,y.productName]}),(0,L.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,L.jsx)(C,{variant:`primary`,onClick:m,disabled:r,children:r?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,L.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,L.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}function dt({data:e,onSubmit:t,submitted:n}){let r=e,[i,a]=(0,I.useState)(`Submitted`);return r?.title?(0,L.jsx)(v,{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,L.jsxs)(`div`,{className:`confirm`,children:[(0,L.jsx)(`div`,{className:`confirm__title`,children:r.title}),r.description&&(0,L.jsx)(`div`,{className:`confirm__desc`,children:r.description}),r.items&&r.items.length>0&&(0,L.jsx)(`div`,{className:`confirm__items`,children:r.items.map((e,t)=>(0,L.jsxs)(`div`,{className:`confirm__item`,children:[(0,L.jsx)(`span`,{className:`confirm__item-label`,children:e.label}),(0,L.jsx)(`span`,{className:`confirm__item-value`,children:e.value})]},t))})]})}):null}function ft({data:e,onSubmit:t,submitted:n}){let r=e,i=(0,I.useRef)(!1),a=!!(r?.title&&Array.isArray(r?.fields)&&r.fields.length>0),o=r?.actions&&r.actions.length>0;return(0,I.useEffect)(()=>{a&&!o&&!n&&!i.current&&(i.current=!0,t(``))},[a,o,n,t]),a?(0,L.jsx)(v,{submitted:n,submittedLabel:`Done`,actions:o?r.actions.map(e=>({label:e.label,variant:e.variant,onClick:()=>{n||t(e.message)}})):[],children:(0,L.jsxs)(`div`,{className:`info-card`,children:[(0,L.jsxs)(`div`,{className:`info-card__header`,children:[(0,L.jsx)(`div`,{className:`info-card__title`,children:r.title}),r.subtitle&&(0,L.jsx)(`div`,{className:`info-card__subtitle`,children:r.subtitle})]}),(0,L.jsx)(`div`,{className:`info-card__fields`,children:r.fields.map((e,t)=>(0,L.jsxs)(`div`,{className:`info-card__field`,children:[(0,L.jsx)(`span`,{className:`info-card__field-label`,children:e.label}),(0,L.jsx)(`span`,{className:`info-card__field-value${e.type===`status`?` info-card__field-value--status`:``}`,children:e.type===`link`?(0,L.jsx)(`a`,{href:e.value,target:`_blank`,rel:`noopener noreferrer`,children:e.value}):e.value})]},t))})]})}):null}function pt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.items)?r.items:[],[a,o]=(0,I.useState)(new Set),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.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,L.jsx)(v,{submitted:d,submittedLabel:l,actions:[{label:`Done`,variant:`primary`,onClick:()=>{d||(c(!0),u(`Done`),t(r?.doneMessage??`Done`))}}],children:(0,L.jsxs)(`div`,{className:`action-list`,children:[r?.title&&(0,L.jsx)(`div`,{className:`action-list__title`,children:r.title}),(0,L.jsx)(`div`,{className:`action-list__items`,children:i.map(e=>(0,L.jsxs)(`div`,{className:`action-list__item${a.has(e.id)?` action-list__item--acted`:``}`,children:[(0,L.jsxs)(`div`,{className:`action-list__item-info`,children:[(0,L.jsx)(`span`,{className:`action-list__item-label`,children:e.label}),e.description&&(0,L.jsx)(`span`,{className:`action-list__item-desc`,children:e.description})]}),(0,L.jsxs)(`div`,{className:`action-list__item-right`,children:[e.status&&(0,L.jsx)(`span`,{className:`action-list__item-status`,children:e.status}),(0,L.jsx)(`div`,{className:`action-list__item-actions`,children:e.actions.map((t,n)=>(0,L.jsx)(C,{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 mt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.fields)?r.fields:[],[a,o]=(0,I.useState)({}),[s,c]=(0,I.useState)(`Submitted`);if((0,I.useEffect)(()=>{i.length!==0&&o(e=>{let t={...e};return i.forEach(e=>{e.name in t||(t[e.name]=e.defaultValue??(e.type===`checkbox`?!1:``))}),t})},[i]),i.length===0)return null;let l=(e,t)=>{n||o(n=>({...n,[e]:t}))},d=i.filter(e=>e.required).every(e=>{let t=a[e.name];return e.type===`checkbox`?t===!0:typeof t==`string`&&t.trim()!==``}),f=()=>{if(!d||n)return;c(`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)},p=e=>e.description?`${e.label} — ${e.description}`:e.label;return(0,L.jsx)(v,{submitted:n,submittedLabel:s,actions:[{label:r?.submitLabel??`Submit`,variant:`primary`,disabled:!d,onClick:f}],children:(0,L.jsxs)(`div`,{className:`form-input`,children:[r?.title&&(0,L.jsx)(`div`,{className:`form-input__title`,children:r.title}),r?.description&&(0,L.jsx)(`div`,{className:`form-input__desc`,children:r.description}),(0,L.jsx)(`div`,{className:`form-input__fields`,children:i.map(e=>(0,L.jsx)(`div`,{className:`form-input__field`,children:e.type===`checkbox`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(u,{checked:a[e.name]===!0,onChange:t=>l(e.name,t),label:e.label,disabled:n}),e.description&&(0,L.jsx)(`div`,{className:`form-input__field-desc`,children:e.description})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`label`,{className:`form-input__label`,htmlFor:`form-${e.name}`,children:[e.label,e.required&&(0,L.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),e.description&&(0,L.jsx)(`div`,{className:`form-input__field-desc`,children:e.description}),e.type===`textarea`?(0,L.jsx)(`textarea`,{id:`form-${e.name}`,className:`form-input__textarea`,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>l(e.name,t.target.value),disabled:n,rows:3}):e.type===`select`?(0,L.jsxs)(`select`,{id:`form-${e.name}`,className:`form-input__select`,value:a[e.name]??``,onChange:t=>l(e.name,t.target.value),disabled:n,children:[(0,L.jsx)(`option`,{value:``,children:e.placeholder??`Select...`}),e.options?.map(e=>(0,L.jsx)(`option`,{value:e.value,children:p(e)},e.value))]}):(0,L.jsx)(`input`,{id:`form-${e.name}`,className:`form-input__input`,type:e.type,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>l(e.name,t.target.value),disabled:n})]})},e.name))})]})})}var ht={pending:`○`,active:`◉`,completed:`✓`,failed:`✗`,skipped:`–`};function gt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.steps)?r.steps:[],a=(0,I.useRef)(!1),o=i.length>0&&i.every(e=>e.status===`completed`||e.status===`failed`||e.status===`skipped`);return(0,I.useEffect)(()=>{o&&!n&&!a.current&&(a.current=!0,t(r?.completedMessage??`All steps completed`))},[o,n,t,r?.completedMessage]),i.length===0?null:(0,L.jsxs)(`div`,{className:`progress-tracker${n?` progress-tracker--submitted`:``}`,children:[r?.title&&(0,L.jsx)(`div`,{className:`progress-tracker__title`,children:r.title}),(0,L.jsx)(`div`,{className:`progress-tracker__steps`,children:i.map((e,t)=>(0,L.jsxs)(`div`,{className:`progress-tracker__step progress-tracker__step--${e.status}`,children:[(0,L.jsx)(`span`,{className:`progress-tracker__icon`,children:ht[e.status]??`○`}),(0,L.jsxs)(`div`,{className:`progress-tracker__step-info`,children:[(0,L.jsx)(`span`,{className:`progress-tracker__step-label`,children:e.label}),e.description&&(0,L.jsx)(`span`,{className:`progress-tracker__step-desc`,children:e.description})]})]},t))})]})}function _t({handlePopout:e,disabled:t=!1}){let n=(0,I.useCallback)(()=>{delete document.body.dataset.dragPopoutActive},[]);(0,I.useEffect)(()=>()=>n(),[n]);let r=(0,I.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,I.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}){Ye();let{title:i}=e??{},[a,o]=(0,I.useState)(!1),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(r===!1),d=(0,I.useRef)(null),f=(0,I.useRef)(null),p=(0,I.useRef)(r),m=i??`Browser`;(0,I.useEffect)(()=>{p.current===!0&&r===!1&&u(!0),p.current=r},[r]);let h=(0,I.useCallback)(()=>{f.current&&=(clearInterval(f.current),null),d.current&&!d.current.closed&&d.current.close(),d.current=null,c(!1)},[]),g=(0,I.useCallback)(()=>{o(!1),u(!1);let e=typeof window<`u`?window.location.hostname:``,t=`/vnc-popout.html?host=${encodeURIComponent(e)}&port=6080&title=${encodeURIComponent(m)}`,n=window.open(t,`maxy-vnc-popout`,`width=1024,height=768`);n&&(d.current=n,c(!0),f.current=setInterval(()=>{d.current?.closed&&(h(),u(!0))},500))},[m,h]),_=(0,I.useCallback)(()=>{h(),o(!1),u(!0)},[h]),v=(0,I.useCallback)(()=>{h(),u(!1)},[h]),y=(0,I.useCallback)(()=>{u(!1)},[]),b=(0,I.useCallback)(()=>{h(),u(!1),o(!0)},[h]),x=(0,I.useCallback)(()=>o(!1),[]);(0,I.useEffect)(()=>{if(!a)return;let e=e=>{e.key===`Escape`&&x()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,x]),(0,I.useEffect)(()=>()=>h(),[h]);let S=_t({handlePopout:g,disabled:s||a});if(n)return null;let w=`/vnc-viewer.html?host=${typeof window<`u`?window.location.hostname:``}&port=6080`;return a?(0,L.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,L.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),(0,L.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:m}),(0,L.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:de,onClick:g,"aria-label":`Pop out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:Oe,onClick:x,"aria-label":`Exit full screen`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:ke,onClick:_,"aria-label":`Minimise`})]})]}),(0,L.jsx)(`iframe`,{src:w,className:`browser-viewer-fullscreen__iframe`,title:m})]}):s?(0,L.jsx)(`div`,{className:`browser-viewer browser-viewer--popout`,children:(0,L.jsxs)(`div`,{className:`browser-viewer__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),(0,L.jsx)(`span`,{className:`browser-viewer__title`,children:m}),(0,L.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,L.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:Le,onClick:v,"aria-label":`Pop back in`})]})]})}):l?(0,L.jsxs)(`div`,{className:`browser-viewer browser-viewer--minimised`,onClick:y,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&y(),children:[(0,L.jsxs)(`div`,{className:`browser-viewer__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),(0,L.jsx)(`span`,{className:`browser-viewer__title`,children:m}),(0,L.jsxs)(`div`,{className:`browser-viewer__actions`,onClick:e=>e.stopPropagation(),children:[(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:de,onClick:g,"aria-label":`Pop out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:we,onClick:b,"aria-label":`Full screen`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:Ne,onClick:y,"aria-label":`Expand`})]})]}),(0,L.jsx)(`iframe`,{src:w,className:`browser-viewer__iframe`,title:m,"aria-hidden":`true`})]}):(0,L.jsxs)(`div`,{className:`browser-viewer`,children:[(0,L.jsxs)(`div`,{className:`browser-viewer__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),i&&(0,L.jsx)(`span`,{className:`browser-viewer__title`,children:i}),(0,L.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:de,onClick:g,"aria-label":`Pop out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:we,onClick:b,"aria-label":`Full screen`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:ke,onClick:_,"aria-label":`Minimise`})]})]}),(0,L.jsx)(`iframe`,{src:w,className:`browser-viewer__iframe`,title:m})]})}var yt=r((e=>{var n=t();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useState,o=n.useEffect,s=n.useLayoutEffect,c=n.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(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=n.useSyncExternalStore===void 0?f:n.useSyncExternalStore})),bt=r(((e,t)=>{t.exports=yt()})),xt=bt(),St=h(n(),1);function Ct(e){this.content=e}Ct.prototype={constructor:Ct,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 Ct(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 Ct(n)},addToStart:function(e,t){return new Ct([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new Ct(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 Ct(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=Ct.from(e),e.size?new Ct(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=Ct.from(e),e.size?new Ct(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=Ct.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}},Ct.from=function(e){if(e instanceof Ct)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new Ct(t)};function wt(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=wt(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Tt(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=Tt(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var R=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 wt(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Tt(this,e,t,n)}findIndex(e){if(e==0)return Dt(0,e);if(e==this.size)return Dt(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?Dt(t+1,i):Dt(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)`:``))}};R.empty=new R([],0);var Et={index:0,offset:0};function Dt(e,t){return Et.index=e,Et.offset=t,Et}function Ot(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(!Ot(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Ot(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var z=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&&Ot(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}};z.none=[];var kt=class extends Error{},B=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=jt(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(At(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(R.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)}};B.empty=new B(R.empty,0,0);function At(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(At(a.content,t-i-1,n-i-1)))}function jt(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=jt(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function Mt(e,t,n){if(n.openStart>e.depth)throw new kt(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new kt(`Inconsistent open depths`);return Nt(e,t,n,0)}function Nt(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=Nt(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return Rt(a,Bt(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return Rt(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=Vt(n,e);return Rt(a,zt(e,i,o,t,r))}}function Pt(e,t){if(!t.type.compatibleContent(e.type))throw new kt(`Cannot join `+t.type.name+` onto `+e.type.name)}function Ft(e,t,n){let r=e.node(n);return Pt(r,t.node(n)),r}function It(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 Lt(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&&(It(e.nodeAfter,r),a++));for(let e=a;e<o;e++)It(i.child(e),r);t&&t.depth==n&&t.textOffset&&It(t.nodeBefore,r)}function Rt(e,t){return e.type.checkContent(t),e.copy(t)}function zt(e,t,n,r,i){let a=e.depth>i&&Ft(e,t,i+1),o=r.depth>i&&Ft(n,r,i+1),s=[];return Lt(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(Pt(a,o),It(Rt(a,zt(e,t,n,r,i+1)),s)):(a&&It(Rt(a,Bt(e,t,i+1)),s),Lt(t,n,i,s),o&&It(Rt(o,Bt(n,r,i+1)),s)),Lt(r,null,i,s),new R(s)}function Bt(e,t,n){let r=[];return Lt(null,e,n,r),e.depth>n&&It(Rt(Ft(e,t,n+1),Bt(e,t,n+1)),r),Lt(t,null,n,r),new R(r)}function Vt(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(R.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var Ht=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 z.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 Kt(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=Gt.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 Gt.set(t,r=new Ut);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Wt,i}},Ut=class{constructor(){this.elts=[],this.i=0}},Wt=12,Gt=new WeakMap,Kt=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)}},qt=Object.create(null),Jt=class e{constructor(e,t,n,r=z.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||R.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&&Ot(this.attrs,t||e.defaultAttrs||qt)&&z.sameSet(this.marks,n||z.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 B.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new B(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return Mt(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 Ht.resolveCached(this,e)}resolveNoCache(e){return Ht.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()+`)`),Xt(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=R.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=z.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(!z.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=R.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};Jt.prototype.text=void 0;var Yt=class e extends Jt{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):Xt(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 Xt(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var Zt=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Qt(t,n);if(r.next==null)return e.empty;let i=$t(r);r.next&&r.err(`Unexpected trailing text`);let a=un(sn(i));return dn(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 R.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{C as e,D as t,E as n,O as r,S as i,T as a,_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,k as h,l as g,n as _,o as v,p as y,r as b,s as x,t as S,u as C,v as w,w as T,x as E,y as D}from"./ChatInput-D1ZgZMZz.js";var O=T(`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`}]]),k=T(`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`}]]),A=T(`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`}]]),j=T(`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`}]]),ee=T(`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`}]]),te=T(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),ne=T(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),re=T(`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`}]]),ie=T(`circle-plus`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]]),ae=T(`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`}]]),oe=T(`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`}]]),se=T(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),ce=T(`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`}]]),le=T(`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`}]]),M=T(`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`}]]),ue=T(`dot`,[[`circle`,{cx:`12.1`,cy:`12.1`,r:`1`,key:`18d7e5`}]]),N=T(`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`}]]),de=T(`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`}]]),P=T(`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`}]]),F=T(`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=T(`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`}]]),pe=T(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),me=T(`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`}]]),he=T(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),ge=T(`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`}]]),_e=T(`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=T(`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`}]]),ye=T(`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`}]]),be=T(`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`}]]),xe=T(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Se=T(`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`}]]),Ce=T(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),we=T(`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`}]]),Te=T(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ee=T(`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`}]]),De=T(`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`}]]),Oe=T(`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`}]]),ke=T(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]),Ae=T(`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`}]]),je=T(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),Me=T(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Ne=T(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Pe=T(`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`}]]),Fe=T(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Ie=T(`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`}]]),Le=T(`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`}]]),Re=T(`square-check-big`,[[`path`,{d:`M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344`,key:`2acyp4`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),ze=T(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),Be=T(`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`}]]),Ve=T(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),He=T(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Ue=T(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),We=T(`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`}]]),Ge=T(`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`}]]),Ke=T(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),qe=T(`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`}]]),Je=a(),I=h(t(),1);function Ye(){(0,I.useEffect)(()=>{function e(e){e.data?.type===`vnc-clipboard`&&typeof e.data.text==`string`&&o(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`&&o(e.data)}),()=>{window.removeEventListener(`message`,e),t?.close()}},[])}function Xe(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 Ze(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}function Qe(){let[e,t]=(0,I.useState)(0),n=(0,I.useRef)(0),r=(0,I.useRef)(0),i=(0,I.useRef)(null),[a,o]=(0,I.useState)(0),s=(0,I.useRef)(0),c=(0,I.useRef)(null),l=(0,I.useRef)(null);return{elapsedSeconds:e,sessionElapsed:a,sessionTurnStart:l,pausedElapsedRef:r,startElapsedTimer:(0,I.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,I.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,I.useCallback)(()=>{s.current=0,o(0)},[])}}var $e=`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv`,et=new Set($e.split(`,`)),tt=20*1024*1024,nt=new Set([`action-list`,`document-editor`,`rich-content-editor`,`grid-editor`]);function rt(e){switch(e){case`expanded`:return!0;case`collapsed`:return!1;default:return}}function it(){let[e,t]=(0,I.useState)(`loading`),[n,r]=(0,I.useState)(``),[i,a]=(0,I.useState)(``),[o,s]=(0,I.useState)(``),[c,l]=(0,I.useState)(!1),[u,d]=(0,I.useState)(!1),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(!1),[g,_]=(0,I.useState)(!1),[v,y]=(0,I.useState)(null),[b,x]=(0,I.useState)(null),[S,C]=(0,I.useState)(!1),[w,T]=(0,I.useState)(!1),[E,D]=(0,I.useState)(void 0),[O,k]=(0,I.useState)(void 0),A=(0,I.useRef)(void 0),j=(0,I.useRef)(null),ee=(0,I.useRef)(null),te=(0,I.useRef)(null);(0,I.useEffect)(()=>{async function e(n=2){try{let e=await fetch(`/api/health`);if(!e.ok){t(`set-pin`);return}let n=await e.json();n.pin_configured?n.claude_authenticated?t(`enter-pin`):t(`connect-claude`):t(`set-pin`)}catch(r){if(n>0)return await new Promise(e=>setTimeout(e,1500)),e(n-1);console.error(`[admin] health check failed:`,r),t(`set-pin`)}}e()},[]),(0,I.useEffect)(()=>{e===`chat`&&fetch(`/api/admin/claude-info`).then(e=>{if(e.ok)return e.json()}).then(e=>{e&&x(e)}).catch(()=>{})},[e]),(0,I.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,I.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 ne(e){d(!0);try{let n=await fetch(`/api/admin/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({pin:e})});if(!n.ok){s((await n.json().catch(()=>({}))).error||`Invalid PIN`);return}let i=await n.json();y(i.session_key),D(i.onboardingComplete??!0);let o=rt(i.thinkingView);A.current=o,k(o),r(``),a(``),t(`chat`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}}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,expandAll:O,setExpandAll:k,expandAllDefaultRef:A,pinInputRef:j,confirmPinInputRef:ee,setPinFormRef:te,handleSetPin:(0,I.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){s((await e.json().catch(()=>({}))).error||`Failed to set PIN.`);return}let n=await fetch(`/api/health`);if((n.ok?await n.json():null)?.claude_authenticated){await ne(o);return}r(``),a(``),t(`connect-claude`)}catch(e){console.error(`[admin] connection error:`,e),s(`Could not connect.`)}finally{d(!1)}},[n,i,u]),handleLogin:(0,I.useCallback)(async e=>{e.preventDefault(),s(``),await ne(n)},[n]),handleContextModeToggle:(0,I.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]),handleDisconnect:(0,I.useCallback)(async()=>{_(!0),await fetch(`/api/onboarding/claude-auth`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({action:`logout`})}),y(null),t(`connect-claude`)},[]),handleLogout:(0,I.useCallback)(()=>{y(null),r(``),a(``),s(``),t(`enter-pin`)},[]),handleChangePin:(0,I.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{s(`Could not connect.`)}finally{d(!1)}},[n])}}function at(e){let{sessionKey:t,setAppState:n,startElapsedTimer:r,stopElapsedTimer:i,resetTimerState:a,pausedElapsedRef:o,expandAllDefaultRef:s,setExpandAll:c,getPendingFiles:l,clearPendingFiles:u,inputRef:d}=e,[p,m]=(0,I.useState)([]),[h,g]=(0,I.useState)(``),[_,v]=(0,I.useState)(!1),[y,b]=(0,I.useState)([]),x=(0,I.useRef)([]),[S,C]=(0,I.useState)(!1),[w,T]=(0,I.useState)(!1),E=(0,I.useRef)(!1),[D,O]=(0,I.useState)(0),[k,A]=(0,I.useState)(!1),j=(0,I.useRef)(null),ee=(0,I.useRef)(()=>{}),[te,ne]=(0,I.useState)(new Set);function re(e){x.current=e,b(e)}function ie(e){j.current?.abort(),A(e)}async function ae(e){if(_||!t)return;A(!1),r(),v(!0);let a=new AbortController;j.current=a,m([{role:`maxy`,events:[],timestamp:Date.now()}]);try{let r=await fetch(`/api/admin/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({message:e,session_key:t}),signal:a.signal});if(!r.ok){if(r.status===401&&(await r.json().catch(()=>({}))).error===`auth_expired`){n(`connect-claude`);return}throw Error(`Chat request failed`)}for await(let e of f(r)){if(e.type===`session_reset`){E.current=!0,j.current?.abort();break}if(e.type===`done`||e.type===`session_init`)continue;let t=e;m(e=>{let n=[...e];return n[0]?.role===`maxy`&&(n[0]={...n[0],events:[...n[0].events??[],t]}),n})}}catch(e){e instanceof DOMException&&e.name===`AbortError`||(console.error(`[chat] admin sendMessage failed:`,e),m([{role:`maxy`,events:[{type:`text`,content:`Error: ${e instanceof Error?e.message:String(e)}`}],timestamp:Date.now()}]))}finally{i(m),v(!1),E.current?(E.current=!1,oe()):d.current?.focus()}}function oe(){m([]),T(!1),a(),ne(new Set),c(s.current),re([]),g(``),u(),A(!1),O(e=>e+1)}function se(){_||S||oe()}function ce(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{}nt.has(i??``)||ne(t=>new Set(t).add(`${e}_${n}`)),M(i?JSON.stringify({_componentDone:!0,component:i,payload:r}):r,void 0,void 0,!0)}let le=(0,I.useMemo)(()=>{let e=new Set(te),t=[];for(let e=0;e<p.length;e++){let n=p[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},[p,te]);async function M(e,a,s,c){if(!e&&(a??l()).length===0&&!k||_||!t)return;let h=k;A(!1),T(!1);let y=a??[...l()],b=y.map(e=>({attachmentId:``,filename:e.name,mimeType:e.type})),S={role:`admin`,content:e,attachments:b.length>0?b:void 0,timestamp:s??Date.now(),hidden:c||void 0},C=p.length;m(e=>[...e,S]),g(``),a||u(),r(h?o.current:0),v(!0);let w=new AbortController;j.current=w;let D={role:`maxy`,events:[],timestamp:Date.now()};m(e=>[...e,D]);let O=C+1;try{let r,i={};if(y.length>0){let n=new FormData;n.append(`message`,e),n.append(`session_key`,t);for(let e of y)n.append(`attachments`,e);r=n}else r=JSON.stringify({message:e,session_key:t}),i={"Content-Type":`application/json`};let a=await fetch(`/api/admin/chat`,{method:`POST`,headers:i,body:r,signal:w.signal});if(!a.ok){if(a.status===401&&(await a.json().catch(()=>({}))).error===`auth_expired`){n(`connect-claude`);return}throw Error(`Chat request failed`)}for await(let e of f(a)){if(e.type===`session_reset`){E.current=!0;continue}if(e.type===`done`||e.type===`session_init`)continue;let t=e;m(e=>{let n=[...e],r=n[O];if(r&&r.role===`maxy`){let i=r.events??[];if(t.type===`component`&&i.some(e=>e.type===`component`&&e.name===t.name))return e;n[O]={...r,events:[...i,t]}}return n})}}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);m(e=>{let n=[...e];return n[O]={role:`maxy`,events:[{type:`text`,content:`Error: ${t}`}],timestamp:Date.now()},n})}}finally{if(i(m),v(!1),E.current)E.current=!1,oe();else{let e=x.current;if(e.length>0){let[t,...n]=e;re(n),M(t.text,t.files,t.timestamp)}else d.current?.focus()}}}return ee.current=M,{messages:p,setMessages:m,input:h,setInput:g,isStreaming:_,messageQueue:y,messageQueueRef:x,setQueue:re,isCompacting:S,sessionCompacted:w,greetingGeneration:D,wasPaused:k,sendMessageRef:ee,submittedComponents:te,effectiveSubmitted:le,stopStreaming:ie,sendSystemPrompt:ae,sendMessage:M,resetSession:oe,startNewSession:se,handleComponentSubmit:ce,handleCompactNow:(0,I.useCallback)(async()=>{if(!(!t||_||S)){C(!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 f(e))if(t.type===`status`&&t.message){let e=t.message;m(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&&T(!0)}finally{C(!1)}}},[t,_,S])}}function ot(){let[e,t]=(0,I.useState)([]),[n,r]=(0,I.useState)(!1),[i,a]=(0,I.useState)(null),o=(0,I.useRef)(null),s=(0,I.useCallback)(e=>{a(null);let n=e.find(e=>!et.has(e.type));if(n){a(`Unsupported file type: "${n.type}". Supported: images, PDF, plain text, markdown, CSV.`);return}let r=e.find(e=>e.size>tt);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,I.useCallback)(()=>{t([]),a(null)},[]),removeFile:(0,I.useCallback)(e=>{t(t=>t.filter((t,n)=>n!==e))},[]),onDragOver:(0,I.useCallback)(e=>{e.preventDefault(),r(!0)},[]),onDragLeave:(0,I.useCallback)(()=>{r(!1)},[]),onDrop:(0,I.useCallback)(e=>{e.preventDefault(),r(!1),s([...e.dataTransfer.files])},[s])}}var L=d();function st({inputRef:e,value:t,onChange:n,onComplete:r,showPin:i,autoFocus:a}){let o=(0,I.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()}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,L.jsx)(`div`,{className:`pin-field`,children:Array.from({length:6}).map((n,r)=>(0,L.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 ct(e){let{pin:t,setPin:n,confirmPin:r,setConfirmPin:i,showPin:a,setShowPin:o,pinLoading:s,pinError:c,pinInputRef:l,confirmPinInputRef:d,setPinFormRef:f,onSubmit:m}=e;return(0,L.jsx)(`div`,{className:`connect-page`,children:(0,L.jsxs)(`div`,{className:`connect-content`,children:[(0,L.jsx)(`img`,{src:p,alt:y.productName,className:`connect-logo connect-logo--maxy`}),(0,L.jsxs)(`h1`,{className:`connect-title`,children:[`Welcome to `,y.productName]}),(0,L.jsx)(`p`,{className:`connect-subtitle`,children:`Choose a PIN to secure your admin access.`}),(0,L.jsxs)(`form`,{ref:f,onSubmit:m,className:`connect-pin-form`,children:[(0,L.jsxs)(`div`,{className:`pin-input-row`,children:[(0,L.jsx)(st,{inputRef:l,value:t,onChange:n,onComplete:()=>d.current?.focus(),showPin:a,autoFocus:!0}),(0,L.jsx)(`div`,{style:{width:38,flexShrink:0},"aria-hidden":`true`})]}),(0,L.jsxs)(`div`,{className:`pin-input-row`,children:[(0,L.jsx)(st,{inputRef:d,value:r,onChange:i,onComplete:()=>{},showPin:a}),(0,L.jsx)(C,{variant:`send`,type:`submit`,disabled:!t||!r,loading:s,"aria-label":`Set PIN`,children:(0,L.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,L.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,L.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,L.jsx)(u,{checked:a,onChange:()=>o(e=>!e),label:`Show PIN`})]}),c&&(0,L.jsx)(`p`,{className:`admin-pin-error`,children:c})]})})}function lt(e){let{pin:t,setPin:n,showPin:r,setShowPin:i,pinLoading:a,pinError:o,pinInputRef:s,onSubmit:c,onChangePin:l}=e;return(0,L.jsx)(`div`,{className:`connect-page`,children:(0,L.jsxs)(`div`,{className:`connect-content`,children:[(0,L.jsx)(`img`,{src:p,alt:y.productName,className:`connect-logo connect-logo--maxy`}),(0,L.jsx)(`h1`,{className:`connect-title`,children:y.productName}),(0,L.jsxs)(`form`,{onSubmit:c,className:`connect-pin-form`,children:[(0,L.jsxs)(`div`,{className:`pin-input-row`,children:[(0,L.jsx)(st,{inputRef:s,value:t,onChange:n,onComplete:()=>{},showPin:r,autoFocus:!0}),(0,L.jsx)(C,{variant:`send`,type:`submit`,disabled:!t,loading:a,children:(0,L.jsxs)(`svg`,{viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,L.jsx)(`line`,{x1:`5`,y1:`12`,x2:`19`,y2:`12`}),(0,L.jsx)(`polyline`,{points:`12 5 19 12 12 19`})]})})]}),(0,L.jsxs)(`div`,{className:`pin-options`,children:[(0,L.jsx)(u,{checked:r,onChange:()=>i(e=>!e),label:`Show PIN`}),(0,L.jsx)(C,{type:`button`,variant:`ghost`,onClick:l,children:`Change PIN`})]})]}),o&&(0,L.jsx)(`p`,{className:`admin-pin-error`,children:o})]})})}function ut(e){let{authPolling:t,setAuthPolling:n,authLoading:r,setAuthLoading:i,pinError:a,setPinError:o,setAppState:s}=e,[c,l]=(0,I.useState)(!1),[u,d]=(0,I.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 m(){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 h(){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,L.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100dvh`,overflow:`auto`},children:[(0,L.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,L.jsx)(`button`,{onClick:h,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,L.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,L.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`chat-logo`}),(0,L.jsx)(`h1`,{className:`chat-tagline`,children:`Connect Claude`}),(0,L.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,L.jsx)(`div`,{style:{marginTop:`12px`},children:(0,L.jsx)(C,{variant:`primary`,onClick:m,disabled:r,children:r?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`})})]}),(0,L.jsx)(`div`,{style:{flex:1,display:`flex`,flexDirection:`column`,minHeight:0,gap:`10px`,padding:`0 0 16px`},children:(0,L.jsx)(`iframe`,{src:`/vnc-viewer.html?host=${window.location.hostname}&port=6080`,style:{flex:1,width:`100%`,minHeight:0,border:`none`,background:`#111`,display:`block`},title:`Claude Sign-in`})}),a&&(0,L.jsx)(`p`,{className:`admin-pin-error`,style:{textAlign:`center`,padding:`0 20px 16px`},children:a})]}):(0,L.jsx)(`div`,{className:`connect-page`,children:(0,L.jsxs)(`div`,{className:`connect-content`,children:[(0,L.jsxs)(`div`,{className:`connect-logos`,children:[(0,L.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,L.jsx)(`img`,{src:`/brand/claude.png`,alt:`Claude`,className:`connect-logo`}),(0,L.jsx)(`span`,{className:`connect-logo-label`,children:`Claude`})]}),(0,L.jsx)(`svg`,{className:`connect-arrow`,viewBox:`0 0 48 24`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:(0,L.jsx)(`path`,{d:`M0 12h44m0 0l-8-8m8 8l-8 8`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})}),(0,L.jsxs)(`div`,{className:`connect-logo-wrap`,children:[(0,L.jsx)(`img`,{src:p,alt:y.productName,className:`connect-logo connect-logo--maxy`}),(0,L.jsx)(`span`,{className:`connect-logo-label`,children:y.productName})]})]}),(0,L.jsxs)(`h1`,{className:`connect-title`,children:[`Connect Claude to power `,y.productName]}),(0,L.jsx)(`p`,{className:`connect-subtitle`,children:`Sign in with your Anthropic account to get started.`}),(0,L.jsx)(C,{variant:`primary`,onClick:m,disabled:r,children:r?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{className:`spin`,style:{display:`inline-block`},children:`✱`}),` Connecting…`]}):`Sign in to Claude`}),(0,L.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,L.jsx)(`p`,{className:`admin-pin-error`,children:a})]})})}function dt({data:e,onSubmit:t,submitted:n}){let r=e,[i,a]=(0,I.useState)(`Submitted`);return r?.title?(0,L.jsx)(v,{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,L.jsxs)(`div`,{className:`confirm`,children:[(0,L.jsx)(`div`,{className:`confirm__title`,children:r.title}),r.description&&(0,L.jsx)(`div`,{className:`confirm__desc`,children:r.description}),r.items&&r.items.length>0&&(0,L.jsx)(`div`,{className:`confirm__items`,children:r.items.map((e,t)=>(0,L.jsxs)(`div`,{className:`confirm__item`,children:[(0,L.jsx)(`span`,{className:`confirm__item-label`,children:e.label}),(0,L.jsx)(`span`,{className:`confirm__item-value`,children:e.value})]},t))})]})}):null}function ft({data:e,onSubmit:t,submitted:n}){let r=e,i=(0,I.useRef)(!1),a=!!(r?.title&&Array.isArray(r?.fields)&&r.fields.length>0),o=r?.actions&&r.actions.length>0;return(0,I.useEffect)(()=>{a&&!o&&!n&&!i.current&&(i.current=!0,t(``))},[a,o,n,t]),a?(0,L.jsx)(v,{submitted:n,submittedLabel:`Done`,actions:o?r.actions.map(e=>({label:e.label,variant:e.variant,onClick:()=>{n||t(e.message)}})):[],children:(0,L.jsxs)(`div`,{className:`info-card`,children:[(0,L.jsxs)(`div`,{className:`info-card__header`,children:[(0,L.jsx)(`div`,{className:`info-card__title`,children:r.title}),r.subtitle&&(0,L.jsx)(`div`,{className:`info-card__subtitle`,children:r.subtitle})]}),(0,L.jsx)(`div`,{className:`info-card__fields`,children:r.fields.map((e,t)=>(0,L.jsxs)(`div`,{className:`info-card__field`,children:[(0,L.jsx)(`span`,{className:`info-card__field-label`,children:e.label}),(0,L.jsx)(`span`,{className:`info-card__field-value${e.type===`status`?` info-card__field-value--status`:``}`,children:e.type===`link`?(0,L.jsx)(`a`,{href:e.value,target:`_blank`,rel:`noopener noreferrer`,children:e.value}):e.value})]},t))})]})}):null}function pt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.items)?r.items:[],[a,o]=(0,I.useState)(new Set),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.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,L.jsx)(v,{submitted:d,submittedLabel:l,actions:[{label:`Done`,variant:`primary`,onClick:()=>{d||(c(!0),u(`Done`),t(r?.doneMessage??`Done`))}}],children:(0,L.jsxs)(`div`,{className:`action-list`,children:[r?.title&&(0,L.jsx)(`div`,{className:`action-list__title`,children:r.title}),(0,L.jsx)(`div`,{className:`action-list__items`,children:i.map(e=>(0,L.jsxs)(`div`,{className:`action-list__item${a.has(e.id)?` action-list__item--acted`:``}`,children:[(0,L.jsxs)(`div`,{className:`action-list__item-info`,children:[(0,L.jsx)(`span`,{className:`action-list__item-label`,children:e.label}),e.description&&(0,L.jsx)(`span`,{className:`action-list__item-desc`,children:e.description})]}),(0,L.jsxs)(`div`,{className:`action-list__item-right`,children:[e.status&&(0,L.jsx)(`span`,{className:`action-list__item-status`,children:e.status}),(0,L.jsx)(`div`,{className:`action-list__item-actions`,children:e.actions.map((t,n)=>(0,L.jsx)(C,{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 mt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.fields)?r.fields:[],[a,o]=(0,I.useState)({}),[s,c]=(0,I.useState)(`Submitted`);if((0,I.useEffect)(()=>{i.length!==0&&o(e=>{let t={...e};return i.forEach(e=>{e.name in t||(t[e.name]=e.defaultValue??(e.type===`checkbox`?!1:``))}),t})},[i]),i.length===0)return null;let l=(e,t)=>{n||o(n=>({...n,[e]:t}))},d=i.filter(e=>e.required).every(e=>{let t=a[e.name];return e.type===`checkbox`?t===!0:typeof t==`string`&&t.trim()!==``}),f=()=>{if(!d||n)return;c(`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)},p=e=>e.description?`${e.label} — ${e.description}`:e.label;return(0,L.jsx)(v,{submitted:n,submittedLabel:s,actions:[{label:r?.submitLabel??`Submit`,variant:`primary`,disabled:!d,onClick:f}],children:(0,L.jsxs)(`div`,{className:`form-input`,children:[r?.title&&(0,L.jsx)(`div`,{className:`form-input__title`,children:r.title}),r?.description&&(0,L.jsx)(`div`,{className:`form-input__desc`,children:r.description}),(0,L.jsx)(`div`,{className:`form-input__fields`,children:i.map(e=>(0,L.jsx)(`div`,{className:`form-input__field`,children:e.type===`checkbox`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(u,{checked:a[e.name]===!0,onChange:t=>l(e.name,t),label:e.label,disabled:n}),e.description&&(0,L.jsx)(`div`,{className:`form-input__field-desc`,children:e.description})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`label`,{className:`form-input__label`,htmlFor:`form-${e.name}`,children:[e.label,e.required&&(0,L.jsx)(`span`,{className:`form-input__required`,children:`*`})]}),e.description&&(0,L.jsx)(`div`,{className:`form-input__field-desc`,children:e.description}),e.type===`textarea`?(0,L.jsx)(`textarea`,{id:`form-${e.name}`,className:`form-input__textarea`,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>l(e.name,t.target.value),disabled:n,rows:3}):e.type===`select`?(0,L.jsxs)(`select`,{id:`form-${e.name}`,className:`form-input__select`,value:a[e.name]??``,onChange:t=>l(e.name,t.target.value),disabled:n,children:[(0,L.jsx)(`option`,{value:``,children:e.placeholder??`Select...`}),e.options?.map(e=>(0,L.jsx)(`option`,{value:e.value,children:p(e)},e.value))]}):(0,L.jsx)(`input`,{id:`form-${e.name}`,className:`form-input__input`,type:e.type,placeholder:e.placeholder,value:a[e.name]??``,onChange:t=>l(e.name,t.target.value),disabled:n})]})},e.name))})]})})}var ht={pending:`○`,active:`◉`,completed:`✓`,failed:`✗`,skipped:`–`};function gt({data:e,onSubmit:t,submitted:n}){let r=e,i=Array.isArray(r?.steps)?r.steps:[],a=(0,I.useRef)(!1),o=i.length>0&&i.every(e=>e.status===`completed`||e.status===`failed`||e.status===`skipped`);return(0,I.useEffect)(()=>{o&&!n&&!a.current&&(a.current=!0,t(r?.completedMessage??`All steps completed`))},[o,n,t,r?.completedMessage]),i.length===0?null:(0,L.jsxs)(`div`,{className:`progress-tracker${n?` progress-tracker--submitted`:``}`,children:[r?.title&&(0,L.jsx)(`div`,{className:`progress-tracker__title`,children:r.title}),(0,L.jsx)(`div`,{className:`progress-tracker__steps`,children:i.map((e,t)=>(0,L.jsxs)(`div`,{className:`progress-tracker__step progress-tracker__step--${e.status}`,children:[(0,L.jsx)(`span`,{className:`progress-tracker__icon`,children:ht[e.status]??`○`}),(0,L.jsxs)(`div`,{className:`progress-tracker__step-info`,children:[(0,L.jsx)(`span`,{className:`progress-tracker__step-label`,children:e.label}),e.description&&(0,L.jsx)(`span`,{className:`progress-tracker__step-desc`,children:e.description})]})]},t))})]})}function _t({handlePopout:e,disabled:t=!1}){let n=(0,I.useCallback)(()=>{delete document.body.dataset.dragPopoutActive},[]);(0,I.useEffect)(()=>()=>n(),[n]);let r=(0,I.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,I.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}){Ye();let{title:i}=e??{},[a,o]=(0,I.useState)(!1),[s,c]=(0,I.useState)(!1),[l,u]=(0,I.useState)(r===!1),d=(0,I.useRef)(null),f=(0,I.useRef)(null),p=(0,I.useRef)(r),m=i??`Browser`;(0,I.useEffect)(()=>{p.current===!0&&r===!1&&u(!0),p.current=r},[r]);let h=(0,I.useCallback)(()=>{f.current&&=(clearInterval(f.current),null),d.current&&!d.current.closed&&d.current.close(),d.current=null,c(!1)},[]),g=(0,I.useCallback)(()=>{o(!1),u(!1);let e=typeof window<`u`?window.location.hostname:``,t=`/vnc-popout.html?host=${encodeURIComponent(e)}&port=6080&title=${encodeURIComponent(m)}`,n=window.open(t,`maxy-vnc-popout`,`width=1024,height=768`);n&&(d.current=n,c(!0),f.current=setInterval(()=>{d.current?.closed&&(h(),u(!0))},500))},[m,h]),_=(0,I.useCallback)(()=>{h(),o(!1),u(!0)},[h]),v=(0,I.useCallback)(()=>{h(),u(!1)},[h]),y=(0,I.useCallback)(()=>{u(!1)},[]),b=(0,I.useCallback)(()=>{h(),u(!1),o(!0)},[h]),x=(0,I.useCallback)(()=>o(!1),[]);(0,I.useEffect)(()=>{if(!a)return;let e=e=>{e.key===`Escape`&&x()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,x]),(0,I.useEffect)(()=>()=>h(),[h]);let S=_t({handlePopout:g,disabled:s||a});if(n)return null;let w=`/vnc-viewer.html?host=${typeof window<`u`?window.location.hostname:``}&port=6080`;return a?(0,L.jsxs)(`div`,{className:`browser-viewer-fullscreen`,children:[(0,L.jsxs)(`div`,{className:`browser-viewer-fullscreen__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),(0,L.jsx)(`span`,{className:`browser-viewer-fullscreen__title`,children:m}),(0,L.jsxs)(`div`,{className:`browser-viewer-fullscreen__actions`,children:[(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:de,onClick:g,"aria-label":`Pop out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:Oe,onClick:x,"aria-label":`Exit full screen`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:ke,onClick:_,"aria-label":`Minimise`})]})]}),(0,L.jsx)(`iframe`,{src:w,className:`browser-viewer-fullscreen__iframe`,title:m})]}):s?(0,L.jsx)(`div`,{className:`browser-viewer browser-viewer--popout`,children:(0,L.jsxs)(`div`,{className:`browser-viewer__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),(0,L.jsx)(`span`,{className:`browser-viewer__title`,children:m}),(0,L.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,L.jsx)(`span`,{className:`browser-viewer__popout-label`,children:`Popped out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:Le,onClick:v,"aria-label":`Pop back in`})]})]})}):l?(0,L.jsxs)(`div`,{className:`browser-viewer browser-viewer--minimised`,onClick:y,role:`button`,tabIndex:0,onKeyDown:e=>e.key===`Enter`&&y(),children:[(0,L.jsxs)(`div`,{className:`browser-viewer__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),(0,L.jsx)(`span`,{className:`browser-viewer__title`,children:m}),(0,L.jsxs)(`div`,{className:`browser-viewer__actions`,onClick:e=>e.stopPropagation(),children:[(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:de,onClick:g,"aria-label":`Pop out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:we,onClick:b,"aria-label":`Full screen`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:Ne,onClick:y,"aria-label":`Expand`})]})]}),(0,L.jsx)(`iframe`,{src:w,className:`browser-viewer__iframe`,title:m,"aria-hidden":`true`})]}):(0,L.jsxs)(`div`,{className:`browser-viewer`,children:[(0,L.jsxs)(`div`,{className:`browser-viewer__bar`,...S,children:[(0,L.jsx)(pe,{className:`browser-viewer__icon`}),i&&(0,L.jsx)(`span`,{className:`browser-viewer__title`,children:i}),(0,L.jsxs)(`div`,{className:`browser-viewer__actions`,children:[(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:de,onClick:g,"aria-label":`Pop out`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:we,onClick:b,"aria-label":`Full screen`}),(0,L.jsx)(C,{variant:`ghost`,size:`sm`,icon:ke,onClick:_,"aria-label":`Minimise`})]})]}),(0,L.jsx)(`iframe`,{src:w,className:`browser-viewer__iframe`,title:m})]})}var yt=r((e=>{var n=t();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useState,o=n.useEffect,s=n.useLayoutEffect,c=n.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(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=n.useSyncExternalStore===void 0?f:n.useSyncExternalStore})),bt=r(((e,t)=>{t.exports=yt()})),xt=bt(),St=h(n(),1);function Ct(e){this.content=e}Ct.prototype={constructor:Ct,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 Ct(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 Ct(n)},addToStart:function(e,t){return new Ct([e,t].concat(this.remove(e).content))},addToEnd:function(e,t){var n=this.remove(e).content.slice();return n.push(e,t),new Ct(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 Ct(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=Ct.from(e),e.size?new Ct(e.content.concat(this.subtract(e).content)):this},append:function(e){return e=Ct.from(e),e.size?new Ct(this.subtract(e).content.concat(e.content)):this},subtract:function(e){var t=this;e=Ct.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}},Ct.from=function(e){if(e instanceof Ct)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new Ct(t)};function wt(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=wt(i.content,a.content,n+1);if(e!=null)return e}n+=i.nodeSize}}function Tt(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=Tt(o.content,s.content,n-1,r-1);if(e)return e}n-=c,r-=c}}var R=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 wt(this,e,t)}findDiffEnd(e,t=this.size,n=e.size){return Tt(this,e,t,n)}findIndex(e){if(e==0)return Dt(0,e);if(e==this.size)return Dt(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?Dt(t+1,i):Dt(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)`:``))}};R.empty=new R([],0);var Et={index:0,offset:0};function Dt(e,t){return Et.index=e,Et.offset=t,Et}function Ot(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(!Ot(e[n],t[n]))return!1}else{for(let n in e)if(!(n in t)||!Ot(e[n],t[n]))return!1;for(let n in t)if(!(n in e))return!1}return!0}var z=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&&Ot(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}};z.none=[];var kt=class extends Error{},B=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=jt(this.content,t+this.openStart,n);return r&&new e(r,this.openStart,this.openEnd)}removeBetween(t,n){return new e(At(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(R.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)}};B.empty=new B(R.empty,0,0);function At(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(At(a.content,t-i-1,n-i-1)))}function jt(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=jt(o.content,t-a-1,n,o);return s&&e.replaceChild(i,o.copy(s))}function Mt(e,t,n){if(n.openStart>e.depth)throw new kt(`Inserted content deeper than insertion position`);if(e.depth-n.openStart!=t.depth-n.openEnd)throw new kt(`Inconsistent open depths`);return Nt(e,t,n,0)}function Nt(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=Nt(e,t,n,r+1);return a.copy(a.content.replaceChild(i,o))}else if(!n.content.size)return Rt(a,Bt(e,t,r));else if(!n.openStart&&!n.openEnd&&e.depth==r&&t.depth==r){let r=e.parent,i=r.content;return Rt(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}else{let{start:i,end:o}=Vt(n,e);return Rt(a,zt(e,i,o,t,r))}}function Pt(e,t){if(!t.type.compatibleContent(e.type))throw new kt(`Cannot join `+t.type.name+` onto `+e.type.name)}function Ft(e,t,n){let r=e.node(n);return Pt(r,t.node(n)),r}function It(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 Lt(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&&(It(e.nodeAfter,r),a++));for(let e=a;e<o;e++)It(i.child(e),r);t&&t.depth==n&&t.textOffset&&It(t.nodeBefore,r)}function Rt(e,t){return e.type.checkContent(t),e.copy(t)}function zt(e,t,n,r,i){let a=e.depth>i&&Ft(e,t,i+1),o=r.depth>i&&Ft(n,r,i+1),s=[];return Lt(null,e,i,s),a&&o&&t.index(i)==n.index(i)?(Pt(a,o),It(Rt(a,zt(e,t,n,r,i+1)),s)):(a&&It(Rt(a,Bt(e,t,i+1)),s),Lt(t,n,i,s),o&&It(Rt(o,Bt(n,r,i+1)),s)),Lt(r,null,i,s),new R(s)}function Bt(e,t,n){let r=[];return Lt(null,e,n,r),e.depth>n&&It(Rt(Ft(e,t,n+1),Bt(e,t,n+1)),r),Lt(t,null,n,r),new R(r)}function Vt(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(R.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}var Ht=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 z.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 Kt(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=Gt.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 Gt.set(t,r=new Ut);let i=r.elts[r.i]=e.resolve(t,n);return r.i=(r.i+1)%Wt,i}},Ut=class{constructor(){this.elts=[],this.i=0}},Wt=12,Gt=new WeakMap,Kt=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)}},qt=Object.create(null),Jt=class e{constructor(e,t,n,r=z.none){this.type=e,this.attrs=t,this.marks=r,this.content=n||R.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&&Ot(this.attrs,t||e.defaultAttrs||qt)&&z.sameSet(this.marks,n||z.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 B.empty;let r=this.resolve(e),i=this.resolve(t),a=n?0:r.sharedDepth(t),o=r.start(a);return new B(r.node(a).content.cut(r.pos-o,i.pos-o),r.depth-a,i.depth-a)}replace(e,t,n){return Mt(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 Ht.resolveCached(this,e)}resolveNoCache(e){return Ht.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()+`)`),Xt(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=R.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=z.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(!z.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=R.fromJSON(e,t.content),i=e.nodeType(t.type).create(t.attrs,r,n);return i.type.checkAttrs(i.attrs),i}};Jt.prototype.text=void 0;var Yt=class e extends Jt{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):Xt(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 Xt(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+`(`+t+`)`;return t}var Zt=class e{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new Qt(t,n);if(r.next==null)return e.empty;let i=$t(r);r.next&&r.err(`Unexpected trailing text`);let a=un(sn(i));return dn(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 R.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
|
`)}};Zt.empty=new Zt(!0);var Qt=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 $t(e){let t=[];do t.push(en(e));while(e.eat(`|`));return t.length==1?t[0]:{type:`choice`,exprs:t}}function en(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=on(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=rn(e,t);else break;return t}function nn(e){/\D/.test(e.next)&&e.err(`Expected number, got '`+e.next+`'`);let t=Number(e.next);return e.pos++,t}function rn(e,t){let n=nn(e),r=n;return e.eat(`,`)&&(r=e.next==`}`?-1:nn(e)),e.eat(`}`)||e.err(`Unclosed braced range`),{type:`range`,min:n,max:r,expr:t}}function an(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 on(e){if(e.eat(`(`)){let t=$t(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=an(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 sn(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 cn(e,t){return t-e}function ln(e,t){let n=[];return r(t),n.sort(cn);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 un(e){let t=Object.create(null);return n(ln(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]);ln(e,n).forEach(e=>{r||i.push([t,r=[]]),r.indexOf(e)==-1&&r.push(e)})})});let a=t[r.join(`,`)]=new Zt(r.indexOf(e.length-1)>-1);for(let e=0;e<i.length;e++){let r=i[e][1].sort(cn);a.next.push({type:i[e][0],next:t[r.join(`,`)]||n(r)})}return a}}function dn(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 pn(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 mn(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 hn(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 gn=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=hn(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==Zt.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:pn(this.attrs,e)}create(e=null,t,n){if(this.isText)throw Error(`NodeType.create can't construct text nodes`);return new Jt(this,this.computeAttrs(e),R.from(t),z.setFrom(n))}createChecked(e=null,t,n){return t=R.from(t),this.checkContent(t),new Jt(this,this.computeAttrs(e),t,z.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),t=R.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(R.empty,!0);return i?new Jt(this,e,t.append(i),z.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){mn(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:z.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 _n(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`?_n(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}},yn=class e{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=hn(e,r.attrs),this.excluded=null;let i=fn(this.attrs);this.instance=i?new z(this,i):null}create(e=null){return!e&&this.instance?this.instance:new z(this,pn(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){mn(this.attrs,e,`mark`,this.name)}excludes(e){return this.excluded.indexOf(e)>-1}},bn=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=Ct.from(e.nodes),t.marks=Ct.from(e.marks||{}),this.nodes=gn.compile(this.spec.nodes,this),this.marks=yn.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]=Zt.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?xn(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==``?[]:xn(this,n.split(` `))}this.nodeFromJSON=e=>Jt.fromJSON(this,e),this.markFromJSON=e=>z.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 gn))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 Yt(n,n.defaultAttrs,e,z.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 xn(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 Sn(e){return e.tag!=null}function Cn(e){return e.style!=null}var wn=class e{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(Sn(e))this.tags.push(e);else if(Cn(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 Nn(this,t,!1);return n.addAll(e,z.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new Nn(this,t,!0);return n.addAll(e,z.none,t.from,t.to),B.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(Fn(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=In(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=In(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)))}},Tn={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},En={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},Dn={ol:!0,ul:!0},On=1,kn=2,An=4;function jn(e,t,n){return t==null?e&&e.whitespace==`pre`?On|kn:n&~An:(t?On:0)|(t===`full`?kn:0)}var Mn=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=z.none,this.match=i||(a&An?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(R.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&On)){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=R.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(R.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&&!Tn.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}},Nn=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=jn(null,t.preserveWhitespace,0)|(n?An:0);i=r?new Mn(r.type,r.attrs,z.none,!0,t.topMatch||r.type.contentMatch,a):n?new Mn(null,null,z.none,!0,null,a):new Mn(e.schema.topNodeType,null,z.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&kn?`full`:this.localPreserveWS||(r.options&On)>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;Dn.hasOwnProperty(a)&&this.parser.normalizeLists&&Pn(e);let s=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,n));out:if(s?s.ignore:En.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(Tn.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=z.none;for(let i of r.concat(e.marks))(t.type?t.type.allowsMarkType(i.type):Ln(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=jn(e,i,a.options);a.options&An&&a.content.length==0&&(o|=An);let s=z.none;return n=n.filter(t=>(a.type?a.type.allowsMarkType(t.type):Ln(t.type,e))?(s=t.addToSet(s),!1):!0),this.nodes.push(new Mn(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|=On);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 Pn(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let e=t.nodeType==1?t.nodeName.toLowerCase():null;e&&Dn.hasOwnProperty(e)&&n?(n.appendChild(t),t=n):e==`li`?n=t:e&&(n=null)}}function Fn(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function In(e){let t={};for(let n in e)t[n]=e[n];return t}function Ln(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 Rn=class e{constructor(e,t){this.nodes=e,this.marks=t}serializeFragment(e,t={},n){n||=Bn(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}=Wn(Bn(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&&Wn(Bn(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return Wn(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=zn(e.nodes);return t.text||=e=>e.text,t}static marksFromSchema(e){return zn(e.marks)}};function zn(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function Bn(e){return e.document||window.document}var Vn=new WeakMap;function Hn(e){let t=Vn.get(e);return t===void 0&&Vn.set(e,t=Un(e)),t}function Un(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 Wn(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=Hn(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}=Wn(e,a,n,r);if(c.appendChild(t),i){if(s)throw RangeError(`Multiple content holes`);s=i}}}return{dom:c,contentDOM:s}}var Gn=65535,Kn=2**16;function qn(e,t){return e+t*Kn}function Jn(e){return e&Gn}function Yn(e){return(e-(e&Gn))/Kn}var Xn=1,Zn=2,Qn=4,$n=8,er=class{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(this.delInfo&$n)>0}get deletedBefore(){return(this.delInfo&(Xn|Qn))>0}get deletedAfter(){return(this.delInfo&(Zn|Qn))>0}get deletedAcross(){return(this.delInfo&Qn)>0}},tr=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=Jn(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+Yn(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:qn(o/3,e-s),f=e==s?Zn:e==u?Xn:Qn;return(t<0?e!=s:e!=u)&&(f|=$n),new er(a,f,d)}r+=l-c}return n?e+r:new er(e+r,0,null)}touches(e,t){let n=0,r=Jn(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])}};tr.empty=new tr([]);var nr=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 er(e,r,null)}},rr=Object.create(null),ir=class{getMap(){return tr.empty}merge(e){return null}static fromJSON(e,t){if(!t||!t.stepType)throw RangeError(`Invalid input for Step.fromJSON`);let n=rr[t.stepType];if(!n)throw RangeError(`No step type ${t.stepType} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in rr)throw RangeError(`Duplicate use of step JSON ID `+e);return rr[e]=t,t.prototype.jsonID=e,t}},ar=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 kt)return e.fail(t.message);throw t}}};function or(e,t,n){let r=[];for(let i=0;i<e.childCount;i++){let a=e.child(i);a.content.size&&(a=a.copy(or(a.content,t,a))),a.isInline&&(a=t(a,n,i)),r.push(a)}return R.fromArray(r)}var sr=class e extends ir{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 B(or(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 ar.fromReplace(e,this.from,this.to,i)}invert(){return new cr(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))}};ir.jsonID(`addMark`,sr);var cr=class e extends ir{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 B(or(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return ar.fromReplace(e,this.from,this.to,n)}invert(){return new sr(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))}};ir.jsonID(`removeMark`,cr);var lr=class e extends ir{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return ar.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return ar.fromReplace(e,this.pos,this.pos+1,new B(R.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 ur(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))}};ir.jsonID(`addNodeMark`,lr);var ur=class e extends ir{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return ar.fail(`No node at mark step's position`);let n=t.type.create(t.attrs,null,this.mark.removeFromSet(t.marks));return ar.fromReplace(e,this.pos,this.pos+1,new B(R.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);return!t||!this.mark.isInSet(t.marks)?this:new lr(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))}};ir.jsonID(`removeNodeMark`,ur);var dr=class e extends ir{constructor(e,t,n,r=!1){super(),this.from=e,this.to=t,this.slice=n,this.structure=r}apply(e){return this.structure&&pr(e,this.from,this.to)?ar.fail(`Structure replace would overwrite content`):ar.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new tr([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?B.empty:new B(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?B.empty:new B(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,B.fromJSON(t,n.slice),!!n.structure)}};ir.jsonID(`replace`,dr);var fr=class e extends ir{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&&(pr(e,this.from,this.gapFrom)||pr(e,this.gapTo,this.to)))return ar.fail(`Structure gap-replace would overwrite content`);let t=e.slice(this.gapFrom,this.gapTo);if(t.openStart||t.openEnd)return ar.fail(`Gap is not a flat range`);let n=this.slice.insertAt(this.insert,t.content);return n?ar.fromReplace(e,this.from,this.to,n):ar.fail(`Content does not fit in gap`)}getMap(){return new tr([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,B.fromJSON(t,n.slice),n.insert,!!n.structure)}};ir.jsonID(`replaceAround`,fr);function pr(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 mr(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 cr(l,d,u[e])));s&&s.to==l?s.to=d:a.push(s=new sr(l,d,r))}}),i.forEach(t=>e.step(t)),a.forEach(t=>e.step(t))}function hr(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 yn){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 cr(t.from,t.to,t.style)))}function gr(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 dr(s,l,B.empty));else{r=u;for(let t=0;t<c.marks.length;t++)n.allowsMarkType(c.marks[t].type)||e.step(new cr(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 B(R.from(n.schema.text(` `,n.allowedMarks(c.marks))),0,0),o.push(new dr(s+e.index,s+e.index+e[0].length,r))}}s=l}if(!r.validEnd){let t=r.fillBefore(R.empty,!0);e.replace(s,s,new B(t,0,0))}for(let t=o.length-1;t>=0;t--)e.step(o[t])}function _r(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||!_r(a,o,s))break;o&&(r=1),s<a.childCount&&(i=1)}return null}function yr(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=R.empty,d=0;for(let e=a,t=!1;e>n;e--)t||r.index(e)>0?(t=!0,u=R.from(r.node(e).copy(u)),d++):c--;let f=R.empty,p=0;for(let e=a,t=!1;e>n;e--)t||i.after(e+1)<i.end(e)?(t=!0,f=R.from(i.node(e).copy(f)),p++):l++;e.step(new fr(c,l,o,s,new B(u.append(f),d,p),u.size-d,!0))}function br(e,t,n=null,r=e){let i=Sr(e,t),a=i&&Cr(r,t);return a?i.map(xr).concat({type:t,attrs:n}).concat(a.map(xr)):null}function xr(e){return{type:e,attrs:null}}function Sr(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 Cr(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 wr(e,t,n){let r=R.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=R.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 B(r,0,0),n.length,!0))}function Tr(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)&&Or(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&&Dr(e,t,n,a),gr(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 B(R.from(r.create(o,null,t.marks)),0,0),1,!0)),i===!0&&Er(e,t,n,a),!1}})}function Er(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 Dr(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,4 +1,4 @@
|
|
|
1
|
-
import{C as e,D as t,S as n,T as r,_ as i,a,b as o,d as s,f as c,g as l,h as u,i as d,k as f,m as p,n as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"./ChatInput-Bkvp46jn.js";var C=r(),w=f(t(),1),T=`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv`,E=new Set(T.split(`,`)),D=20*1024*1024,O=typeof window<`u`&&/^(localhost|127\.0\.0\.1|[a-z0-9-]+\.local)(:|$)/.test(window.location.hostname);function k(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function A(){let e=window.location.pathname.match(/^\/([a-z][a-z0-9-]{2,49})$/);return e?e[1]:void 0}function j(e){return[{key:`length`,label:`At least 8 characters`,met:e.length>=8},{key:`number`,label:`Contains a number`,met:/\d/.test(e)},{key:`special`,label:`Contains a special character`,met:/[^A-Za-z0-9]/.test(e)},{key:`whitespace`,label:`No leading or trailing spaces`,met:e.length>0&&e===e.trim()}]}function M(e,t){if(t===`phone`)return e.length>4?e.slice(0,e.length-4).replace(/\d/g,`•`)+` `+e.slice(-4):e;let n=e.indexOf(`@`);return n<=2?e:e.slice(0,2)+`•••`+e.slice(n)}function N(e){let[t,n]=(0,w.useState)(null),[r,i]=(0,w.useState)(null),[a,o]=(0,w.useState)(`loading`),[s,c]=(0,w.useState)(``),[l,u]=(0,w.useState)(null),d=(0,w.useMemo)(()=>A(),[]),f=(0,w.useRef)(d||``),p=(0,w.useRef)(null),m=(0,w.useRef)(null),h=(0,w.useRef)(!1),g=(0,w.useRef)(null),[_,v]=(0,w.useState)(`sign-in`),[y,b]=(0,w.useState)(null),x=(0,w.useRef)(null),S=(0,w.useRef)(null);(0,w.useEffect)(()=>{try{let e=sessionStorage.getItem(`maxy_session`);e&&(S.current=e)}catch{}},[]);let C=(0,w.useCallback)(t=>{p.current=t,n(t);try{sessionStorage.setItem(`maxy_session`,t)}catch{}o(`chat`),e(t)},[e]),T=(0,w.useCallback)(()=>{p.current=null;try{sessionStorage.removeItem(`maxy_session`)}catch{}n(null),o(`auth-required`),v(`sign-in`)},[]),E=(0,w.useCallback)(async e=>{try{let t=f.current,n=await fetch(`/api/access/verify-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,agentSlug:t})}),r=await n.json();n.ok?(x.current=r.session_key,b(r.grant),v(`set-password`),window.history.replaceState({},``,window.location.pathname)):v(`link-expired`)}catch{v(`sign-in`)}},[]);return{sessionId:t,sessionKeyRef:p,sessionError:r,pageState:a,setPageState:o,agentDisplayName:s,agentSlug:d,branding:l,resolvedSlugRef:f,ensureSession:(0,w.useCallback)(async()=>{if(p.current)return p.current;if(m.current)return m.current;let e=(async()=>{try{let e=S.current,t=await fetch(`/api/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_id:k(),...d?{agent:d}:{},...e?{session_key:e}:{}})});if(!t.ok){let e=await t.json().catch(()=>({error:``}));return O&&console.error(`[session] POST /api/session failed: ${t.status} ${t.statusText}`,e),t.status===404?i(e.error||`Agent not found`):t.status===503&&i(e.error||`Service unavailable`),null}let r=await t.json();if(r.auth_required){r.agent_id&&(f.current=r.agent_id),c(r.displayName||``),r.branding&&u(r.branding),o(`auth-required`);let e=new URLSearchParams(window.location.search).get(`token`);return e?E(e):v(`sign-in`),null}p.current=r.session_key,n(r.session_key),r.branding&&u(r.branding),o(`chat`),r.resumed&&r.messages&&(h.current=!0,g.current=r.messages);try{sessionStorage.setItem(`maxy_session`,r.session_key)}catch{}return r.session_key}catch(e){return O&&console.error(`[session] fetch /api/session threw:`,e),i(`Unable to connect. Please check your connection and try again.`),null}finally{m.current=null}})();return m.current=e,e},[d,E]),enterChat:C,enterGate:T,resumedRef:h,resumeMessagesRef:g,gateState:_,setGateState:v,grantInfo:y,setGrantInfo:b,gateSessionKeyRef:x}}function P({sessionKeyRef:e,ensureSession:t,sessionError:n,pageState:r,inputRef:i}){let[a,o]=(0,w.useState)([]),[s,c]=(0,w.useState)(!1),u=(0,w.useRef)(!1),d=e=>{u.current=e,c(e)},f=(0,w.useCallback)(async a=>{if(!u.current){d(!0),o([{role:`maxy`,content:``,timestamp:Date.now()}]);try{let n=await fetch(`/api/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({greeting:!0,session_key:a})});if(n.status===401){e.current=null;try{sessionStorage.removeItem(`maxy_session`)}catch{}O&&console.warn(`[greeting] stale session, retrying with fresh session`);let r=await t();if(!r)return;n=await fetch(`/api/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({greeting:!0,session_key:r})})}if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error||`Something went wrong`)}let r=``,i=``,s=()=>{i&&(r+=i,i=``,o(e=>{let t=[...e];return t[0]={...t[0],content:r},t}))},c=setInterval(s,60);try{for await(let e of l(n)){if(e.error)throw Object.assign(Error(e.error),{fromSSE:!0});e.text&&(i+=e.text),e.type===`component`&&(s(),o(t=>{let n=[...t],r={...n[0]},i=[...r.components||[]];return i.push({name:e.name,data:e.data,submitted:!1}),n[0]={...r,components:i},n}))}}finally{clearInterval(c),s()}}catch(e){if(O&&console.error(`[chat] greeting failed:`,e),r===`auth-required`)return;let t=e instanceof Error?e.message:String(e);o([{role:`maxy`,content:e instanceof Error&&e.fromSSE?t:n??`I'm having trouble connecting right now. Try refreshing the page.`,timestamp:Date.now()}])}finally{d(!1),r===`chat`&&i.current?.focus()}}},[e,t,n,r,i]),p=(0,w.useCallback)(async(a,s)=>{let c=s?.hidden??!1,f=s?.files??[];if(!a&&f.length===0||u.current)return;d(!0);let p=f.map(e=>({filename:e.name,mimeType:e.type})),m={role:`visitor`,content:a,attachments:p.length>0?p:void 0,timestamp:Date.now(),hidden:c},h;o(e=>{let t=[...e,m,{role:`maxy`,content:``,timestamp:Date.now()}];return h=t.length-1,t});try{let n=await t();if(!n)throw Error(`session`);let r=e=>{if(f.length>0){let t=new FormData;t.append(`message`,a),t.append(`session_key`,e);for(let e of f)t.append(`attachments`,e);return{body:t,headers:{}}}return{body:JSON.stringify({message:a,session_key:e}),headers:{"Content-Type":`application/json`}}},{body:i,headers:s}=r(n),c=await fetch(`/api/chat`,{method:`POST`,headers:s,body:i});if(c.status===401){e.current=null;try{sessionStorage.removeItem(`maxy_session`)}catch{}O&&console.warn(`[session-expired] stale key cleared, retrying with fresh session`);let n=await t();if(!n)throw Error(`session`);({body:i,headers:s}=r(n)),c=await fetch(`/api/chat`,{method:`POST`,headers:s,body:i})}if(!c.ok){let e=await c.json().catch(()=>({}));throw Error(e.error||`Something went wrong`)}let u=``,d=``,p=()=>{d&&(u+=d,d=``,o(e=>{let t=[...e];return t[h]={...t[h],content:u},t}))},m=setInterval(p,60);try{for await(let e of l(c)){if(e.error)throw Object.assign(Error(e.error),{fromSSE:!0});e.text&&(d+=e.text),e.type===`component`&&(p(),o(t=>{let n=[...t],r={...n[h]},i=[...r.components||[]];return i.push({name:e.name,data:e.data,submitted:!1}),n[h]={...r,components:i},n}))}}finally{clearInterval(m),p()}}catch(e){if(O&&console.error(`[chat] sendMessage failed:`,e),r===`auth-required`)return;let t=e instanceof Error?e.message:String(e),i=e instanceof Error&&e.fromSSE;o(e=>{let r=[...e];return r[h]={...r[h],content:i?t:t===`session`?n??`I'm having trouble connecting right now. Try refreshing the page.`:`Sorry, I hit a snag. Try again in a moment.`},r})}finally{d(!1),r===`chat`&&i.current?.focus()}},[e,t,n,r,i]);return{messages:a,setMessages:o,isStreaming:s,sendMessage:p,sendGreeting:f,handleComponentSubmit:(0,w.useCallback)((e,t,n)=>{o(n=>{let r=[...n],i={...r[e]},a=[...i.components||[]];return a[t]={...a[t],submitted:!0},r[e]={...i,components:a},r}),p(n,{hidden:!0})},[p])}}var F=c();function I({value:e,onChange:t,onComplete:n,disabled:r}){let i=(0,w.useRef)([]);function a(n,r){r.key===`Backspace`?(r.preventDefault(),e[n]?t(e.slice(0,n)+e.slice(n+1)):n>0&&(t(e.slice(0,n-1)+e.slice(n)),i.current[n-1]?.focus())):r.key===`ArrowLeft`&&n>0?i.current[n-1]?.focus():r.key===`ArrowRight`&&n<5&&i.current[n+1]?.focus()}function o(r,a){let o=a.nativeEvent.data;if(!o||!/^\d$/.test(o))return;let s=e.split(``);for(s[r]=o;s.length<r;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);t(c),c.length===6?n(c):r<5&&i.current[r+1]?.focus()}function s(e){e.preventDefault();let r=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);r&&(t(r),r.length===6?n(r):i.current[r.length]?.focus())}return(0,F.jsx)(`div`,{className:`gate-otp-field`,children:Array.from({length:6}).map((t,n)=>(0,F.jsx)(`input`,{ref:e=>{i.current[n]=e},type:`text`,inputMode:`numeric`,className:`pin-box${e[n]?` pin-box-filled`:``}`,value:e[n]||``,onKeyDown:e=>a(n,e),onInput:e=>o(n,e),onPaste:s,onFocus:e=>e.target.select(),autoFocus:n===0,autoComplete:`off`,maxLength:1,disabled:r,"aria-label":`Code digit ${n+1}`},n))})}function L({gateState:e,setGateState:t,grantInfo:n,setGrantInfo:r,gateSessionKeyRef:i,resolvedSlugRef:a,onAuthenticated:o}){let[c,l]=(0,w.useState)(``),[u,d]=(0,w.useState)(``),[f,p]=(0,w.useState)(``),[m,h]=(0,w.useState)(!1),[g,_]=(0,w.useState)(``),[v,b]=(0,w.useState)(``),[x,S]=(0,w.useState)(!1),[C,T]=(0,w.useState)(null),[E,D]=(0,w.useState)(null),[O,k]=(0,w.useState)(!1);async function A(e){if(e.preventDefault(),!O){T(null),k(!0);try{let e=a.current,n=await fetch(`/api/access/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({contact:c,password:u,agentSlug:e})}),i=await n.json();n.ok?o(i.session_key):n.status===401?i.error?.includes(`setup not complete`)||i.error?.includes(`invitation link`)?(t(`private-agent`),T(null)):T(i.error||`Invalid credentials`):n.status===403?(t(`access-expired`),i.expiresAt&&r(e=>e?{...e,expiresAt:i.expiresAt}:{displayName:null,contactValue:c,contactMethod:`email`,expiresAt:i.expiresAt,status:`expired`})):n.status===429?T(i.error||`Too many attempts. Please try again later.`):T(i.error||`Something went wrong`)}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}async function N(e){if(!O){T(null),k(!0);try{let n=a.current,o=await fetch(`/api/access/verify-otp`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({phone:v,code:e,agentSlug:n})}),s=await o.json();o.ok?(i.current=s.session_key,r(s.grant),t(`set-password`)):o.status===429?t(`otp-failed`):(T(s.error||`Invalid code`),_(``))}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}async function P(e){if(e.preventDefault(),!O){if(T(null),u!==f){T(`Passwords do not match`);return}if(!j(u).every(e=>e.met)){T(`Password does not meet requirements`);return}k(!0);try{let e=i.current;if(!e){T(`Session expired. Please use your invitation link again.`);return}let t=await fetch(`/api/access/create-credentials`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:e,password:u})}),n=await t.json();t.ok?o(n.session_key):t.status===400&&n.requirements?T(n.requirements.filter(e=>!e.met).map(e=>e.label).join(`, `)):T(n.error||`Something went wrong`)}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}async function L(e){if(e.preventDefault(),!(O||!c)){T(null),k(!0);try{let e=a.current,t=await fetch(`/api/access/forgot-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({contact:c,agentSlug:e})});t.status===429?T((await t.json()).error||`Too many attempts. Please try again later.`):(D(`If an account exists, a reset link has been sent.`),setTimeout(()=>{S(!1),D(null)},4e3))}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}switch(e){case`set-password`:{let e=j(u),t=e.every(e=>e.met),r=u===f,i=t&&r&&f.length>0;return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[n?.expiresAt&&(0,F.jsxs)(`div`,{className:`gate-expiry-badge`,children:[`Access until `,new Date(n.expiresAt).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`})]}),(0,F.jsxs)(`h2`,{className:`gate-title`,children:[`Welcome, `,n?.displayName||`there`]}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:`Create a password to access this agent in the future.`}),(0,F.jsxs)(`form`,{className:`gate-form`,onSubmit:P,children:[(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-display-name`,children:`Display name`}),(0,F.jsx)(`input`,{id:`gate-display-name`,type:`text`,value:n?.displayName||``,disabled:!0})]}),(0,F.jsxs)(`div`,{className:`gate-field gate-pw-row`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-pw`,children:`Password`}),(0,F.jsx)(`div`,{className:`gate-pw-toggle`,children:(0,F.jsx)(s,{checked:m,onChange:h,label:`Show`})}),(0,F.jsx)(`input`,{id:`gate-pw`,type:m?`text`:`password`,value:u,onChange:e=>d(e.target.value),placeholder:`Your password`,autoFocus:!0,autoComplete:`new-password`}),u.length>0&&(0,F.jsx)(`div`,{className:`gate-strength`,children:e.map(e=>(0,F.jsxs)(`span`,{className:`gate-strength-item${e.met?` met`:``}`,children:[e.met?`✓`:`○`,` `,e.label]},e.key))})]}),(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-pw-confirm`,children:`Confirm password`}),(0,F.jsx)(`input`,{id:`gate-pw-confirm`,type:m?`text`:`password`,value:f,onChange:e=>p(e.target.value),placeholder:`Confirm your password`,autoComplete:`new-password`}),f.length>0&&!r&&(0,F.jsx)(`div`,{className:`gate-error`,children:`Passwords do not match`})]}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),(0,F.jsx)(`div`,{className:`gate-submit`,children:(0,F.jsx)(y,{variant:`primary`,type:`submit`,fullWidth:!0,disabled:!i||O,loading:O,children:`Create account & enter chat`})})]})]})})}case`enter-otp`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`h2`,{className:`gate-title`,children:`Enter your code`}),(0,F.jsxs)(`p`,{className:`gate-subtitle`,children:[`Enter the 6-digit code sent to `,M(v,`phone`)]}),(0,F.jsx)(I,{value:g,onChange:_,onComplete:N,disabled:O}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),O&&(0,F.jsxs)(`div`,{className:`gate-loading`,children:[(0,F.jsx)(`span`,{className:`spinner`}),`Verifying...`]}),(0,F.jsx)(`div`,{className:`gate-resend`,children:(0,F.jsx)(`button`,{type:`button`,className:`gate-link`,onClick:()=>{t(`sign-in`),_(``),T(null)},children:`Use a different number`})})]})});case`sign-in`:case`private-agent`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`h2`,{className:`gate-title`,children:e===`private-agent`?`Private Agent`:`Welcome back`}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:e===`private-agent`?`This agent is invitation-only. If you have an account, sign in below.`:`Sign in to continue your conversation.`}),x?(0,F.jsxs)(`form`,{className:`gate-form`,onSubmit:L,children:[(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-forgot-contact`,children:`Email or phone`}),(0,F.jsx)(`input`,{id:`gate-forgot-contact`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`you@example.com`,autoFocus:!0,autoComplete:`email`})]}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),E&&(0,F.jsx)(`div`,{className:`gate-success`,children:E}),(0,F.jsx)(`div`,{className:`gate-submit`,children:(0,F.jsx)(y,{variant:`primary`,type:`submit`,fullWidth:!0,disabled:!c.trim()||O,loading:O,children:`Send reset link`})}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(`button`,{type:`button`,className:`gate-link`,onClick:()=>{S(!1),T(null),D(null)},children:`Back to sign in`})})]}):(0,F.jsxs)(`form`,{className:`gate-form`,onSubmit:A,children:[(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-contact`,children:`Email or phone`}),(0,F.jsx)(`input`,{id:`gate-contact`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`you@example.com`,autoFocus:!0,autoComplete:`email`})]}),(0,F.jsxs)(`div`,{className:`gate-field gate-pw-row`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-login-pw`,children:`Password`}),(0,F.jsx)(`div`,{className:`gate-pw-toggle`,children:(0,F.jsx)(s,{checked:m,onChange:h,label:`Show`})}),(0,F.jsx)(`input`,{id:`gate-login-pw`,type:m?`text`:`password`,value:u,onChange:e=>d(e.target.value),placeholder:`Your password`,autoComplete:`current-password`})]}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),(0,F.jsx)(`div`,{className:`gate-submit`,children:(0,F.jsx)(y,{variant:`primary`,type:`submit`,fullWidth:!0,disabled:!c.trim()||!u||O,loading:O,children:`Sign in`})}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(`button`,{type:`button`,className:`gate-link`,onClick:()=>{S(!0),T(null)},children:`Forgot password?`})})]}),e===`private-agent`&&(0,F.jsx)(`p`,{className:`gate-hint`,children:`No account? You need an invitation from the agent owner.`})]})});case`access-expired`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`div`,{className:`gate-icon`,children:`⏰`}),(0,F.jsx)(`h2`,{className:`gate-title`,children:`Access expired`}),(0,F.jsxs)(`p`,{className:`gate-subtitle`,children:[n?.expiresAt?`Your access expired on ${new Date(n.expiresAt).toLocaleDateString(`en-GB`,{day:`numeric`,month:`long`,year:`numeric`})}.`:`Your access to this agent has expired.`,` `,`Contact the agent owner to renew.`]}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(y,{variant:`secondary`,onClick:()=>{t(`sign-in`),T(null),d(``)},children:`Sign in with a different account`})})]})});case`link-expired`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`div`,{className:`gate-icon`,children:`⚠️`}),(0,F.jsx)(`h2`,{className:`gate-title`,children:`Link expired`}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:`This invitation link has expired or has already been used. If you already set your password, sign in below. Otherwise, ask the agent owner to send a new invitation.`}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(y,{variant:`primary`,onClick:()=>{t(`sign-in`),T(null)},children:`Go to sign in`})})]})});case`otp-failed`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`div`,{className:`gate-icon`,children:`⛔`}),(0,F.jsx)(`h2`,{className:`gate-title`,children:`Too many attempts`}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:`You've entered the wrong code too many times. Ask the agent owner to send a new code.`}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(y,{variant:`secondary`,onClick:()=>{t(`sign-in`),T(null),_(``)},children:`Back to sign in`})})]})})}}var R={"single-select":a,"multi-select":d};function z({name:e,data:t,onSubmit:n,submitted:r}){let i=R[e];return i?(0,F.jsx)(i,{data:t,onSubmit:n,submitted:r}):null}function B({messages:t,isStreaming:n,sessionError:r,selectionMode:i,selectedItems:a,longPressProps:c,toggleSelectItem:l,onComponentSubmit:u,remainingSuggestions:d,onSuggestionClick:f,isAtBottom:p,setIsAtBottom:m}){let[h,v]=(0,w.useState)(new Set),[b,S]=(0,w.useState)(new Set),C=(0,w.useRef)(null),T=(0,w.useRef)(null),E=(0,w.useRef)(null),D=(0,w.useRef)(!1),O=(0,w.useRef)(new Map);(0,w.useEffect)(()=>{if(!p){D.current=n;return}if(D.current&&!n&&E.current&&T.current){let e=E.current;if(e.offsetHeight>T.current.clientHeight){e.scrollIntoView({behavior:`smooth`,block:`start`}),D.current=n;return}}C.current?.scrollIntoView({behavior:`smooth`}),D.current=n},[t,p,n]),(0,w.useEffect)(()=>{let e=T.current;if(!e)return;let t=()=>{m(e.scrollHeight-e.scrollTop-e.clientHeight<80)};return e.addEventListener(`scroll`,t,{passive:!0}),t(),()=>e.removeEventListener(`scroll`,t)},[m]),(0,w.useEffect)(()=>{function e(){S(e=>{let t=new Set;return O.current.forEach((n,r)=>{n.isConnected&&(h.has(r)?e.has(r)&&t.add(r):n.scrollHeight>n.clientHeight+2&&t.add(r))}),e.size===t.size&&[...e].every(e=>t.has(e))?e:t})}e();let t=new ResizeObserver(e);return O.current.forEach(e=>t.observe(e)),()=>t.disconnect()},[t.length,h]);let k=t.reduce((e,t,n)=>t.role===`maxy`&&!t.hidden?n:e,-1);return(0,F.jsxs)(`div`,{className:`chat-messages-wrap`,children:[i&&(0,F.jsx)(`div`,{className:`selection-overlay-band`}),(0,F.jsxs)(`div`,{className:`chat-messages`,ref:T,children:[r&&t.length===0&&(0,F.jsx)(`div`,{className:`session-error`,children:(0,F.jsx)(`p`,{children:r})}),t.map((r,d)=>{if(r.hidden)return null;let f=n&&d===t.length-1,p=`${r.timestamp}_${r.role}`,m=a.has(p);return(0,F.jsxs)(`div`,{ref:d===k?E:void 0,className:`message ${r.role}${m?` selected`:``}`,...f?{}:c(p),children:[i&&!f&&(0,F.jsx)(`div`,{className:`message-select-check`,children:(0,F.jsx)(s,{checked:m,onChange:()=>l(p)})}),(0,F.jsxs)(`div`,{className:`bubble`,children:[r.role===`visitor`&&r.content?(()=>{let t=h.has(d),n=b.has(d);return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{ref:e=>{e?O.current.set(d,e):O.current.delete(d)},className:t?`bubble-content`:`bubble-content clamped${n?` overflowing`:``}`,children:r.content}),n&&(0,F.jsx)(`div`,{className:`bubble-expand`,children:(0,F.jsx)(y,{variant:`icon`,className:t?`expanded`:``,onClick:()=>v(e=>{let t=new Set(e);return t.has(d)?t.delete(d):t.add(d),t}),"aria-label":t?`Collapse message`:`Expand message`,children:(0,F.jsx)(e,{size:14})})})]})})():r.content?(0,F.jsx)(_,{content:r.content,timestamp:g(r.timestamp)}):(0,F.jsxs)(`span`,{className:`typing-indicator`,children:[(0,F.jsx)(`span`,{className:`typing-dot`}),(0,F.jsx)(`span`,{className:`typing-dot`}),(0,F.jsx)(`span`,{className:`typing-dot`})]}),r.attachments&&r.attachments.length>0&&(0,F.jsx)(`div`,{className:`message-attachments`,children:r.attachments.map((e,t)=>(0,F.jsxs)(`span`,{className:`message-attachment-chip no-action`,children:[e.mimeType===`application/pdf`?(0,F.jsx)(o,{size:12}):e.mimeType.startsWith(`text/`)?(0,F.jsx)(x,{size:12}):null,(0,F.jsx)(`span`,{children:e.filename})]},t))}),r.role===`visitor`&&(0,F.jsx)(`span`,{className:`message-timestamp`,children:g(r.timestamp)})]}),r.role===`maxy`&&r.components&&r.components.length>0&&(0,F.jsx)(`div`,{className:`public-components`,children:r.components.map((e,t)=>(0,F.jsx)(`div`,{className:`public-component-enter`,children:(0,F.jsx)(z,{name:e.name,data:e.data,onSubmit:e=>u(d,t,e),submitted:e.submitted})},t))})]},d)}),!n&&d.length>0&&(0,F.jsx)(`div`,{className:`chat-suggestions`,children:d.map(e=>(0,F.jsx)(y,{variant:`suggestion`,onClick:()=>f(e),children:e},e))}),(0,F.jsx)(`div`,{ref:C})]}),!p&&(0,F.jsx)(`button`,{className:`scroll-to-bottom`,onClick:()=>C.current?.scrollIntoView({behavior:`smooth`}),"aria-label":`Scroll to bottom`})]})}function V({selectedItems:e,messages:t,copySelected:r,exitSelection:a,showCopyToast:o}){let[s,c]=(0,w.useState)(!1),l=(0,w.useRef)(null),u=(0,w.useRef)(!1);function d(e){let n=e.lastIndexOf(`_`),r=e.slice(0,n),i=e.slice(n+1),a=parseInt(r,10);return t.find(e=>e.timestamp===a&&e.role===i)?.content??``}function f(e,t){return parseInt(e.slice(0,e.lastIndexOf(`_`)),10)-parseInt(t.slice(0,t.lastIndexOf(`_`)),10)}function p(){let e=[...t].sort((e,t)=>e.timestamp-t.timestamp),n=[];for(let t of e){if(t.hidden||!t.content)continue;let e=t.role===`visitor`?`Visitor`:`Maxy`;n.push(`${e}:\n${t.content}`)}return n.join(`
|
|
1
|
+
import{C as e,D as t,S as n,T as r,_ as i,a,b as o,d as s,f as c,g as l,h as u,i as d,k as f,m as p,n as m,p as h,r as g,s as _,t as v,u as y,v as b,x,y as S}from"./ChatInput-D1ZgZMZz.js";var C=r(),w=f(t(),1),T=`image/jpeg,image/png,image/gif,image/webp,application/pdf,text/plain,text/markdown,text/csv`,E=new Set(T.split(`,`)),D=20*1024*1024,O=typeof window<`u`&&/^(localhost|127\.0\.0\.1|[a-z0-9-]+\.local)(:|$)/.test(window.location.hostname);function k(){let e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function A(){let e=window.location.pathname.match(/^\/([a-z][a-z0-9-]{2,49})$/);return e?e[1]:void 0}function j(e){return[{key:`length`,label:`At least 8 characters`,met:e.length>=8},{key:`number`,label:`Contains a number`,met:/\d/.test(e)},{key:`special`,label:`Contains a special character`,met:/[^A-Za-z0-9]/.test(e)},{key:`whitespace`,label:`No leading or trailing spaces`,met:e.length>0&&e===e.trim()}]}function M(e,t){if(t===`phone`)return e.length>4?e.slice(0,e.length-4).replace(/\d/g,`•`)+` `+e.slice(-4):e;let n=e.indexOf(`@`);return n<=2?e:e.slice(0,2)+`•••`+e.slice(n)}function N(e){let[t,n]=(0,w.useState)(null),[r,i]=(0,w.useState)(null),[a,o]=(0,w.useState)(`loading`),[s,c]=(0,w.useState)(``),[l,u]=(0,w.useState)(null),d=(0,w.useMemo)(()=>A(),[]),f=(0,w.useRef)(d||``),p=(0,w.useRef)(null),m=(0,w.useRef)(null),h=(0,w.useRef)(!1),g=(0,w.useRef)(null),[_,v]=(0,w.useState)(`sign-in`),[y,b]=(0,w.useState)(null),x=(0,w.useRef)(null),S=(0,w.useRef)(null);(0,w.useEffect)(()=>{try{let e=sessionStorage.getItem(`maxy_session`);e&&(S.current=e)}catch{}},[]);let C=(0,w.useCallback)(t=>{p.current=t,n(t);try{sessionStorage.setItem(`maxy_session`,t)}catch{}o(`chat`),e(t)},[e]),T=(0,w.useCallback)(()=>{p.current=null;try{sessionStorage.removeItem(`maxy_session`)}catch{}n(null),o(`auth-required`),v(`sign-in`)},[]),E=(0,w.useCallback)(async e=>{try{let t=f.current,n=await fetch(`/api/access/verify-token`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,agentSlug:t})}),r=await n.json();n.ok?(x.current=r.session_key,b(r.grant),v(`set-password`),window.history.replaceState({},``,window.location.pathname)):v(`link-expired`)}catch{v(`sign-in`)}},[]);return{sessionId:t,sessionKeyRef:p,sessionError:r,pageState:a,setPageState:o,agentDisplayName:s,agentSlug:d,branding:l,resolvedSlugRef:f,ensureSession:(0,w.useCallback)(async()=>{if(p.current)return p.current;if(m.current)return m.current;let e=(async()=>{try{let e=S.current,t=await fetch(`/api/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_id:k(),...d?{agent:d}:{},...e?{session_key:e}:{}})});if(!t.ok){let e=await t.json().catch(()=>({error:``}));return O&&console.error(`[session] POST /api/session failed: ${t.status} ${t.statusText}`,e),t.status===404?i(e.error||`Agent not found`):t.status===503&&i(e.error||`Service unavailable`),null}let r=await t.json();if(r.auth_required){r.agent_id&&(f.current=r.agent_id),c(r.displayName||``),r.branding&&u(r.branding),o(`auth-required`);let e=new URLSearchParams(window.location.search).get(`token`);return e?E(e):v(`sign-in`),null}p.current=r.session_key,n(r.session_key),r.branding&&u(r.branding),o(`chat`),r.resumed&&r.messages&&(h.current=!0,g.current=r.messages);try{sessionStorage.setItem(`maxy_session`,r.session_key)}catch{}return r.session_key}catch(e){return O&&console.error(`[session] fetch /api/session threw:`,e),i(`Unable to connect. Please check your connection and try again.`),null}finally{m.current=null}})();return m.current=e,e},[d,E]),enterChat:C,enterGate:T,resumedRef:h,resumeMessagesRef:g,gateState:_,setGateState:v,grantInfo:y,setGrantInfo:b,gateSessionKeyRef:x}}function P({sessionKeyRef:e,ensureSession:t,sessionError:n,pageState:r,inputRef:i}){let[a,o]=(0,w.useState)([]),[s,c]=(0,w.useState)(!1),u=(0,w.useRef)(!1),d=e=>{u.current=e,c(e)},f=(0,w.useCallback)(async a=>{if(!u.current){d(!0),o([{role:`maxy`,content:``,timestamp:Date.now()}]);try{let n=await fetch(`/api/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({greeting:!0,session_key:a})});if(n.status===401){e.current=null;try{sessionStorage.removeItem(`maxy_session`)}catch{}O&&console.warn(`[greeting] stale session, retrying with fresh session`);let r=await t();if(!r)return;n=await fetch(`/api/chat`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({greeting:!0,session_key:r})})}if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error||`Something went wrong`)}let r=``,i=``,s=()=>{i&&(r+=i,i=``,o(e=>{let t=[...e];return t[0]={...t[0],content:r},t}))},c=setInterval(s,60);try{for await(let e of l(n)){if(e.error)throw Object.assign(Error(e.error),{fromSSE:!0});e.text&&(i+=e.text),e.type===`component`&&(s(),o(t=>{let n=[...t],r={...n[0]},i=[...r.components||[]];return i.push({name:e.name,data:e.data,submitted:!1}),n[0]={...r,components:i},n}))}}finally{clearInterval(c),s()}}catch(e){if(O&&console.error(`[chat] greeting failed:`,e),r===`auth-required`)return;let t=e instanceof Error?e.message:String(e);o([{role:`maxy`,content:e instanceof Error&&e.fromSSE?t:n??`I'm having trouble connecting right now. Try refreshing the page.`,timestamp:Date.now()}])}finally{d(!1),r===`chat`&&i.current?.focus()}}},[e,t,n,r,i]),p=(0,w.useCallback)(async(a,s)=>{let c=s?.hidden??!1,f=s?.files??[];if(!a&&f.length===0||u.current)return;d(!0);let p=f.map(e=>({filename:e.name,mimeType:e.type})),m={role:`visitor`,content:a,attachments:p.length>0?p:void 0,timestamp:Date.now(),hidden:c},h;o(e=>{let t=[...e,m,{role:`maxy`,content:``,timestamp:Date.now()}];return h=t.length-1,t});try{let n=await t();if(!n)throw Error(`session`);let r=e=>{if(f.length>0){let t=new FormData;t.append(`message`,a),t.append(`session_key`,e);for(let e of f)t.append(`attachments`,e);return{body:t,headers:{}}}return{body:JSON.stringify({message:a,session_key:e}),headers:{"Content-Type":`application/json`}}},{body:i,headers:s}=r(n),c=await fetch(`/api/chat`,{method:`POST`,headers:s,body:i});if(c.status===401){e.current=null;try{sessionStorage.removeItem(`maxy_session`)}catch{}O&&console.warn(`[session-expired] stale key cleared, retrying with fresh session`);let n=await t();if(!n)throw Error(`session`);({body:i,headers:s}=r(n)),c=await fetch(`/api/chat`,{method:`POST`,headers:s,body:i})}if(!c.ok){let e=await c.json().catch(()=>({}));throw Error(e.error||`Something went wrong`)}let u=``,d=``,p=()=>{d&&(u+=d,d=``,o(e=>{let t=[...e];return t[h]={...t[h],content:u},t}))},m=setInterval(p,60);try{for await(let e of l(c)){if(e.error)throw Object.assign(Error(e.error),{fromSSE:!0});e.text&&(d+=e.text),e.type===`component`&&(p(),o(t=>{let n=[...t],r={...n[h]},i=[...r.components||[]];return i.push({name:e.name,data:e.data,submitted:!1}),n[h]={...r,components:i},n}))}}finally{clearInterval(m),p()}}catch(e){if(O&&console.error(`[chat] sendMessage failed:`,e),r===`auth-required`)return;let t=e instanceof Error?e.message:String(e),i=e instanceof Error&&e.fromSSE;o(e=>{let r=[...e];return r[h]={...r[h],content:i?t:t===`session`?n??`I'm having trouble connecting right now. Try refreshing the page.`:`Sorry, I hit a snag. Try again in a moment.`},r})}finally{d(!1),r===`chat`&&i.current?.focus()}},[e,t,n,r,i]);return{messages:a,setMessages:o,isStreaming:s,sendMessage:p,sendGreeting:f,handleComponentSubmit:(0,w.useCallback)((e,t,n)=>{o(n=>{let r=[...n],i={...r[e]},a=[...i.components||[]];return a[t]={...a[t],submitted:!0},r[e]={...i,components:a},r}),p(n,{hidden:!0})},[p])}}var F=c();function I({value:e,onChange:t,onComplete:n,disabled:r}){let i=(0,w.useRef)([]);function a(n,r){r.key===`Backspace`?(r.preventDefault(),e[n]?t(e.slice(0,n)+e.slice(n+1)):n>0&&(t(e.slice(0,n-1)+e.slice(n)),i.current[n-1]?.focus())):r.key===`ArrowLeft`&&n>0?i.current[n-1]?.focus():r.key===`ArrowRight`&&n<5&&i.current[n+1]?.focus()}function o(r,a){let o=a.nativeEvent.data;if(!o||!/^\d$/.test(o))return;let s=e.split(``);for(s[r]=o;s.length<r;)s.push(``);let c=s.join(``).replace(/\D/g,``).slice(0,6);t(c),c.length===6?n(c):r<5&&i.current[r+1]?.focus()}function s(e){e.preventDefault();let r=e.clipboardData.getData(`text`).replace(/\D/g,``).slice(0,6);r&&(t(r),r.length===6?n(r):i.current[r.length]?.focus())}return(0,F.jsx)(`div`,{className:`gate-otp-field`,children:Array.from({length:6}).map((t,n)=>(0,F.jsx)(`input`,{ref:e=>{i.current[n]=e},type:`text`,inputMode:`numeric`,className:`pin-box${e[n]?` pin-box-filled`:``}`,value:e[n]||``,onKeyDown:e=>a(n,e),onInput:e=>o(n,e),onPaste:s,onFocus:e=>e.target.select(),autoFocus:n===0,autoComplete:`off`,maxLength:1,disabled:r,"aria-label":`Code digit ${n+1}`},n))})}function L({gateState:e,setGateState:t,grantInfo:n,setGrantInfo:r,gateSessionKeyRef:i,resolvedSlugRef:a,onAuthenticated:o}){let[c,l]=(0,w.useState)(``),[u,d]=(0,w.useState)(``),[f,p]=(0,w.useState)(``),[m,h]=(0,w.useState)(!1),[g,_]=(0,w.useState)(``),[v,b]=(0,w.useState)(``),[x,S]=(0,w.useState)(!1),[C,T]=(0,w.useState)(null),[E,D]=(0,w.useState)(null),[O,k]=(0,w.useState)(!1);async function A(e){if(e.preventDefault(),!O){T(null),k(!0);try{let e=a.current,n=await fetch(`/api/access/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({contact:c,password:u,agentSlug:e})}),i=await n.json();n.ok?o(i.session_key):n.status===401?i.error?.includes(`setup not complete`)||i.error?.includes(`invitation link`)?(t(`private-agent`),T(null)):T(i.error||`Invalid credentials`):n.status===403?(t(`access-expired`),i.expiresAt&&r(e=>e?{...e,expiresAt:i.expiresAt}:{displayName:null,contactValue:c,contactMethod:`email`,expiresAt:i.expiresAt,status:`expired`})):n.status===429?T(i.error||`Too many attempts. Please try again later.`):T(i.error||`Something went wrong`)}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}async function N(e){if(!O){T(null),k(!0);try{let n=a.current,o=await fetch(`/api/access/verify-otp`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({phone:v,code:e,agentSlug:n})}),s=await o.json();o.ok?(i.current=s.session_key,r(s.grant),t(`set-password`)):o.status===429?t(`otp-failed`):(T(s.error||`Invalid code`),_(``))}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}async function P(e){if(e.preventDefault(),!O){if(T(null),u!==f){T(`Passwords do not match`);return}if(!j(u).every(e=>e.met)){T(`Password does not meet requirements`);return}k(!0);try{let e=i.current;if(!e){T(`Session expired. Please use your invitation link again.`);return}let t=await fetch(`/api/access/create-credentials`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({session_key:e,password:u})}),n=await t.json();t.ok?o(n.session_key):t.status===400&&n.requirements?T(n.requirements.filter(e=>!e.met).map(e=>e.label).join(`, `)):T(n.error||`Something went wrong`)}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}async function L(e){if(e.preventDefault(),!(O||!c)){T(null),k(!0);try{let e=a.current,t=await fetch(`/api/access/forgot-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({contact:c,agentSlug:e})});t.status===429?T((await t.json()).error||`Too many attempts. Please try again later.`):(D(`If an account exists, a reset link has been sent.`),setTimeout(()=>{S(!1),D(null)},4e3))}catch{T(`Unable to connect. Please try again.`)}finally{k(!1)}}}switch(e){case`set-password`:{let e=j(u),t=e.every(e=>e.met),r=u===f,i=t&&r&&f.length>0;return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[n?.expiresAt&&(0,F.jsxs)(`div`,{className:`gate-expiry-badge`,children:[`Access until `,new Date(n.expiresAt).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`})]}),(0,F.jsxs)(`h2`,{className:`gate-title`,children:[`Welcome, `,n?.displayName||`there`]}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:`Create a password to access this agent in the future.`}),(0,F.jsxs)(`form`,{className:`gate-form`,onSubmit:P,children:[(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-display-name`,children:`Display name`}),(0,F.jsx)(`input`,{id:`gate-display-name`,type:`text`,value:n?.displayName||``,disabled:!0})]}),(0,F.jsxs)(`div`,{className:`gate-field gate-pw-row`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-pw`,children:`Password`}),(0,F.jsx)(`div`,{className:`gate-pw-toggle`,children:(0,F.jsx)(s,{checked:m,onChange:h,label:`Show`})}),(0,F.jsx)(`input`,{id:`gate-pw`,type:m?`text`:`password`,value:u,onChange:e=>d(e.target.value),placeholder:`Your password`,autoFocus:!0,autoComplete:`new-password`}),u.length>0&&(0,F.jsx)(`div`,{className:`gate-strength`,children:e.map(e=>(0,F.jsxs)(`span`,{className:`gate-strength-item${e.met?` met`:``}`,children:[e.met?`✓`:`○`,` `,e.label]},e.key))})]}),(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-pw-confirm`,children:`Confirm password`}),(0,F.jsx)(`input`,{id:`gate-pw-confirm`,type:m?`text`:`password`,value:f,onChange:e=>p(e.target.value),placeholder:`Confirm your password`,autoComplete:`new-password`}),f.length>0&&!r&&(0,F.jsx)(`div`,{className:`gate-error`,children:`Passwords do not match`})]}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),(0,F.jsx)(`div`,{className:`gate-submit`,children:(0,F.jsx)(y,{variant:`primary`,type:`submit`,fullWidth:!0,disabled:!i||O,loading:O,children:`Create account & enter chat`})})]})]})})}case`enter-otp`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`h2`,{className:`gate-title`,children:`Enter your code`}),(0,F.jsxs)(`p`,{className:`gate-subtitle`,children:[`Enter the 6-digit code sent to `,M(v,`phone`)]}),(0,F.jsx)(I,{value:g,onChange:_,onComplete:N,disabled:O}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),O&&(0,F.jsxs)(`div`,{className:`gate-loading`,children:[(0,F.jsx)(`span`,{className:`spinner`}),`Verifying...`]}),(0,F.jsx)(`div`,{className:`gate-resend`,children:(0,F.jsx)(`button`,{type:`button`,className:`gate-link`,onClick:()=>{t(`sign-in`),_(``),T(null)},children:`Use a different number`})})]})});case`sign-in`:case`private-agent`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`h2`,{className:`gate-title`,children:e===`private-agent`?`Private Agent`:`Welcome back`}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:e===`private-agent`?`This agent is invitation-only. If you have an account, sign in below.`:`Sign in to continue your conversation.`}),x?(0,F.jsxs)(`form`,{className:`gate-form`,onSubmit:L,children:[(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-forgot-contact`,children:`Email or phone`}),(0,F.jsx)(`input`,{id:`gate-forgot-contact`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`you@example.com`,autoFocus:!0,autoComplete:`email`})]}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),E&&(0,F.jsx)(`div`,{className:`gate-success`,children:E}),(0,F.jsx)(`div`,{className:`gate-submit`,children:(0,F.jsx)(y,{variant:`primary`,type:`submit`,fullWidth:!0,disabled:!c.trim()||O,loading:O,children:`Send reset link`})}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(`button`,{type:`button`,className:`gate-link`,onClick:()=>{S(!1),T(null),D(null)},children:`Back to sign in`})})]}):(0,F.jsxs)(`form`,{className:`gate-form`,onSubmit:A,children:[(0,F.jsxs)(`div`,{className:`gate-field`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-contact`,children:`Email or phone`}),(0,F.jsx)(`input`,{id:`gate-contact`,type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:`you@example.com`,autoFocus:!0,autoComplete:`email`})]}),(0,F.jsxs)(`div`,{className:`gate-field gate-pw-row`,children:[(0,F.jsx)(`label`,{htmlFor:`gate-login-pw`,children:`Password`}),(0,F.jsx)(`div`,{className:`gate-pw-toggle`,children:(0,F.jsx)(s,{checked:m,onChange:h,label:`Show`})}),(0,F.jsx)(`input`,{id:`gate-login-pw`,type:m?`text`:`password`,value:u,onChange:e=>d(e.target.value),placeholder:`Your password`,autoComplete:`current-password`})]}),C&&(0,F.jsx)(`div`,{className:`gate-error`,children:C}),(0,F.jsx)(`div`,{className:`gate-submit`,children:(0,F.jsx)(y,{variant:`primary`,type:`submit`,fullWidth:!0,disabled:!c.trim()||!u||O,loading:O,children:`Sign in`})}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(`button`,{type:`button`,className:`gate-link`,onClick:()=>{S(!0),T(null)},children:`Forgot password?`})})]}),e===`private-agent`&&(0,F.jsx)(`p`,{className:`gate-hint`,children:`No account? You need an invitation from the agent owner.`})]})});case`access-expired`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`div`,{className:`gate-icon`,children:`⏰`}),(0,F.jsx)(`h2`,{className:`gate-title`,children:`Access expired`}),(0,F.jsxs)(`p`,{className:`gate-subtitle`,children:[n?.expiresAt?`Your access expired on ${new Date(n.expiresAt).toLocaleDateString(`en-GB`,{day:`numeric`,month:`long`,year:`numeric`})}.`:`Your access to this agent has expired.`,` `,`Contact the agent owner to renew.`]}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(y,{variant:`secondary`,onClick:()=>{t(`sign-in`),T(null),d(``)},children:`Sign in with a different account`})})]})});case`link-expired`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`div`,{className:`gate-icon`,children:`⚠️`}),(0,F.jsx)(`h2`,{className:`gate-title`,children:`Link expired`}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:`This invitation link has expired or has already been used. If you already set your password, sign in below. Otherwise, ask the agent owner to send a new invitation.`}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(y,{variant:`primary`,onClick:()=>{t(`sign-in`),T(null)},children:`Go to sign in`})})]})});case`otp-failed`:return(0,F.jsx)(`div`,{className:`gate-wrap`,children:(0,F.jsxs)(`div`,{className:`gate-card`,children:[(0,F.jsx)(`div`,{className:`gate-icon`,children:`⛔`}),(0,F.jsx)(`h2`,{className:`gate-title`,children:`Too many attempts`}),(0,F.jsx)(`p`,{className:`gate-subtitle`,children:`You've entered the wrong code too many times. Ask the agent owner to send a new code.`}),(0,F.jsx)(`div`,{className:`gate-actions`,children:(0,F.jsx)(y,{variant:`secondary`,onClick:()=>{t(`sign-in`),T(null),_(``)},children:`Back to sign in`})})]})})}}var R={"single-select":a,"multi-select":d};function z({name:e,data:t,onSubmit:n,submitted:r}){let i=R[e];return i?(0,F.jsx)(i,{data:t,onSubmit:n,submitted:r}):null}function B({messages:t,isStreaming:n,sessionError:r,selectionMode:i,selectedItems:a,longPressProps:c,toggleSelectItem:l,onComponentSubmit:u,remainingSuggestions:d,onSuggestionClick:f,isAtBottom:p,setIsAtBottom:m}){let[h,v]=(0,w.useState)(new Set),[b,S]=(0,w.useState)(new Set),C=(0,w.useRef)(null),T=(0,w.useRef)(null),E=(0,w.useRef)(null),D=(0,w.useRef)(!1),O=(0,w.useRef)(new Map);(0,w.useEffect)(()=>{if(!p){D.current=n;return}if(D.current&&!n&&E.current&&T.current){let e=E.current;if(e.offsetHeight>T.current.clientHeight){e.scrollIntoView({behavior:`smooth`,block:`start`}),D.current=n;return}}C.current?.scrollIntoView({behavior:`smooth`}),D.current=n},[t,p,n]),(0,w.useEffect)(()=>{let e=T.current;if(!e)return;let t=()=>{m(e.scrollHeight-e.scrollTop-e.clientHeight<80)};return e.addEventListener(`scroll`,t,{passive:!0}),t(),()=>e.removeEventListener(`scroll`,t)},[m]),(0,w.useEffect)(()=>{function e(){S(e=>{let t=new Set;return O.current.forEach((n,r)=>{n.isConnected&&(h.has(r)?e.has(r)&&t.add(r):n.scrollHeight>n.clientHeight+2&&t.add(r))}),e.size===t.size&&[...e].every(e=>t.has(e))?e:t})}e();let t=new ResizeObserver(e);return O.current.forEach(e=>t.observe(e)),()=>t.disconnect()},[t.length,h]);let k=t.reduce((e,t,n)=>t.role===`maxy`&&!t.hidden?n:e,-1);return(0,F.jsxs)(`div`,{className:`chat-messages-wrap`,children:[i&&(0,F.jsx)(`div`,{className:`selection-overlay-band`}),(0,F.jsxs)(`div`,{className:`chat-messages`,ref:T,children:[r&&t.length===0&&(0,F.jsx)(`div`,{className:`session-error`,children:(0,F.jsx)(`p`,{children:r})}),t.map((r,d)=>{if(r.hidden)return null;let f=n&&d===t.length-1,p=`${r.timestamp}_${r.role}`,m=a.has(p);return(0,F.jsxs)(`div`,{ref:d===k?E:void 0,className:`message ${r.role}${m?` selected`:``}`,...f?{}:c(p),children:[i&&!f&&(0,F.jsx)(`div`,{className:`message-select-check`,children:(0,F.jsx)(s,{checked:m,onChange:()=>l(p)})}),(0,F.jsxs)(`div`,{className:`bubble`,children:[r.role===`visitor`&&r.content?(()=>{let t=h.has(d),n=b.has(d);return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{ref:e=>{e?O.current.set(d,e):O.current.delete(d)},className:t?`bubble-content`:`bubble-content clamped${n?` overflowing`:``}`,children:r.content}),n&&(0,F.jsx)(`div`,{className:`bubble-expand`,children:(0,F.jsx)(y,{variant:`icon`,className:t?`expanded`:``,onClick:()=>v(e=>{let t=new Set(e);return t.has(d)?t.delete(d):t.add(d),t}),"aria-label":t?`Collapse message`:`Expand message`,children:(0,F.jsx)(e,{size:14})})})]})})():r.content?(0,F.jsx)(_,{content:r.content,timestamp:g(r.timestamp)}):(0,F.jsxs)(`span`,{className:`typing-indicator`,children:[(0,F.jsx)(`span`,{className:`typing-dot`}),(0,F.jsx)(`span`,{className:`typing-dot`}),(0,F.jsx)(`span`,{className:`typing-dot`})]}),r.attachments&&r.attachments.length>0&&(0,F.jsx)(`div`,{className:`message-attachments`,children:r.attachments.map((e,t)=>(0,F.jsxs)(`span`,{className:`message-attachment-chip no-action`,children:[e.mimeType===`application/pdf`?(0,F.jsx)(o,{size:12}):e.mimeType.startsWith(`text/`)?(0,F.jsx)(x,{size:12}):null,(0,F.jsx)(`span`,{children:e.filename})]},t))}),r.role===`visitor`&&(0,F.jsx)(`span`,{className:`message-timestamp`,children:g(r.timestamp)})]}),r.role===`maxy`&&r.components&&r.components.length>0&&(0,F.jsx)(`div`,{className:`public-components`,children:r.components.map((e,t)=>(0,F.jsx)(`div`,{className:`public-component-enter`,children:(0,F.jsx)(z,{name:e.name,data:e.data,onSubmit:e=>u(d,t,e),submitted:e.submitted})},t))})]},d)}),!n&&d.length>0&&(0,F.jsx)(`div`,{className:`chat-suggestions`,children:d.map(e=>(0,F.jsx)(y,{variant:`suggestion`,onClick:()=>f(e),children:e},e))}),(0,F.jsx)(`div`,{ref:C})]}),!p&&(0,F.jsx)(`button`,{className:`scroll-to-bottom`,onClick:()=>C.current?.scrollIntoView({behavior:`smooth`}),"aria-label":`Scroll to bottom`})]})}function V({selectedItems:e,messages:t,copySelected:r,exitSelection:a,showCopyToast:o}){let[s,c]=(0,w.useState)(!1),l=(0,w.useRef)(null),u=(0,w.useRef)(!1);function d(e){let n=e.lastIndexOf(`_`),r=e.slice(0,n),i=e.slice(n+1),a=parseInt(r,10);return t.find(e=>e.timestamp===a&&e.role===i)?.content??``}function f(e,t){return parseInt(e.slice(0,e.lastIndexOf(`_`)),10)-parseInt(t.slice(0,t.lastIndexOf(`_`)),10)}function p(){let e=[...t].sort((e,t)=>e.timestamp-t.timestamp),n=[];for(let t of e){if(t.hidden||!t.content)continue;let e=t.role===`visitor`?`Visitor`:`Maxy`;n.push(`${e}:\n${t.content}`)}return n.join(`
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
--sage-hover: #6A7A62;
|
|
5
5
|
--sage-subtle: rgba(124, 140, 114, 0.08);
|
|
6
6
|
--sage-glow: rgba(124, 140, 114, 0.15);
|
|
7
|
-
--visitor-bubble: #
|
|
7
|
+
--visitor-bubble: #E8ECF0;
|
|
8
8
|
--bg: #FAFAF8;
|
|
9
|
-
--maxy-bubble: #
|
|
9
|
+
--maxy-bubble: #F5F2ED;
|
|
10
10
|
--font-display: 'Playfair Display', Georgia, serif;
|
|
11
11
|
--font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
12
12
|
}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Real Agent</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/admin-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/ChatInput-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/assets/ChatInput-
|
|
8
|
+
<script type="module" crossorigin src="/assets/admin-KW1CBsie.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/ChatInput-D1ZgZMZz.js">
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/assets/ChatInput-qaJ6-ih2.css">
|
|
11
11
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Real Agent</title>
|
|
7
7
|
<link rel="icon" href="/favicon.ico">
|
|
8
|
-
<script type="module" crossorigin src="/assets/public-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/ChatInput-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/assets/ChatInput-
|
|
8
|
+
<script type="module" crossorigin src="/assets/public-BtdmBNoS.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/ChatInput-D1ZgZMZz.js">
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/assets/ChatInput-qaJ6-ih2.css">
|
|
11
11
|
<link rel="stylesheet" href="/brand-defaults.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
package/payload/maxy/server.js
CHANGED
|
@@ -3613,7 +3613,7 @@ function deriveLabel(message) {
|
|
|
3613
3613
|
const trimmed = message.trim();
|
|
3614
3614
|
if (trimmed.length < 4) return null;
|
|
3615
3615
|
if (GENERIC_MESSAGE.test(trimmed)) return null;
|
|
3616
|
-
if (trimmed
|
|
3616
|
+
if (trimmed.startsWith("[New session.")) return null;
|
|
3617
3617
|
const firstSentence = trimmed.split(/[.!?\n]/)[0].trim();
|
|
3618
3618
|
if (firstSentence.length < 4) return null;
|
|
3619
3619
|
const words = firstSentence.split(/\s+/).slice(0, 8);
|