wizards 0.2.22 → 0.2.24
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/apps/web/dist/assets/{Account-DBtSpuEQ.js → Account-thPW7H4A.js} +1 -1
- package/apps/web/dist/assets/{ChangelogDialog-BlFyzslp.js → ChangelogDialog-mCszGL5_.js} +1 -1
- package/apps/web/dist/assets/{CreditsDialog-CMa3Igqt.js → CreditsDialog-Com2Y3g8.js} +1 -1
- package/apps/web/dist/assets/{EditorPage-D2v_Levn.js → EditorPage-Dwg-K4UI.js} +2 -2
- package/apps/web/dist/assets/{FlowPreview-DkdzInU8.js → FlowPreview-CRsxtwhV.js} +1 -1
- package/apps/web/dist/assets/{Harness-Dkn6KCJV.js → Harness-CfgVRYpr.js} +1 -1
- package/apps/web/dist/assets/{HomePage-Dd-y_p7u.js → HomePage-DYKF3C1U.js} +1 -1
- package/apps/web/dist/assets/{ImportWizard-C3OT94hv.js → ImportWizard-BTp7XTsF.js} +1 -1
- package/apps/web/dist/assets/{LocalRuntime-BkRQm0GM.js → LocalRuntime-CYhPXwAv.js} +1 -1
- package/apps/web/dist/assets/{NewWizardPage--DdPF3l9.js → NewWizardPage-BgnrGN8A.js} +2 -2
- package/apps/web/dist/assets/ProjectPage-Cfco8MIG.js +5 -0
- package/apps/web/dist/assets/{PublicRunner-BVPl_WNQ.js → PublicRunner-ClB2-2EF.js} +1 -1
- package/apps/web/dist/assets/RunDrawer-B50sCUSw.js +1 -0
- package/apps/web/dist/assets/{RunnerView-C6mpXHeH.js → RunnerView-CFCmOmJI.js} +2 -2
- package/apps/web/dist/assets/{SettingsPage-BhM74zXG.js → SettingsPage-qDqiZ7th.js} +1 -1
- package/apps/web/dist/assets/{SetupPage-yfG5gOaZ.js → SetupPage-BeBReYLP.js} +1 -1
- package/apps/web/dist/assets/{SharePage-C5Vy5zJy.js → SharePage-Cv8toByB.js} +1 -1
- package/apps/web/dist/assets/{api-C-JIx8M5.js → api-rJBQEu1G.js} +1 -1
- package/apps/web/dist/assets/changelog-BmS3l433.js +1 -0
- package/apps/web/dist/assets/{esm-BpXlr_Mv.js → esm-DFNBMDKB.js} +1 -1
- package/apps/web/dist/assets/index-BZs1IxAk.css +1 -0
- package/apps/web/dist/assets/{index-Bb5l3tTJ.js → index-CoTWrikR.js} +3 -3
- package/apps/web/dist/assets/{meta-C-2h0-O5.js → meta-DJta2rA3.js} +1 -1
- package/apps/web/dist/assets/{settings-menu-DK8T02Tt.js → settings-menu-bsLDpw56.js} +1 -1
- package/apps/web/dist/assets/ui-DJOZSSKo.js +1 -0
- package/apps/web/dist/index.html +4 -4
- package/apps/web/dist/mcp/flow.html +3 -3
- package/package.json +1 -1
- package/apps/web/dist/assets/ChatPanel-ofw0p02m.js +0 -1
- package/apps/web/dist/assets/ProjectPage-CsoEkwhy.js +0 -5
- package/apps/web/dist/assets/changelog-CyoGUe5a.js +0 -1
- package/apps/web/dist/assets/index-Bwyehu0k.css +0 -1
- package/apps/web/dist/assets/ui-Djd0WhVb.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/qr-scanner.min-C_UI0gH-.js","assets/preload-helper-CNEI7N0N.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{a as r,c as i,d as a,n as o,s,t as c}from"./api-C-JIx8M5.js";import{t as l}from"./preload-helper-CNEI7N0N.js";import{t as u}from"./createLucideIcon-q3MZMmnf.js";import{n as d,t as f}from"./refresh-cw-BNtHis1x.js";import{t as p}from"./arrow-right-6FyN3e7D.js";import{t as m}from"./check-CUpby_J9.js";import{n as h,t as g}from"./plus-Du-Jx8aI.js";import{t as _}from"./external-link-MAL7vJYj.js";import{n as v,t as y}from"./trash-0IafyhZB.js";import{n as b,t as x}from"./video-9fDPRPCv.js";import{t as S}from"./pen-line-NK46C_nG.js";import{c as C,d as w,f as T,g as E,h as D,i as O,l as ee,m as te,n as ne,o as k,p as A,s as j,t as M,u as re,v as ie,x as N,y as ae}from"./ui-Djd0WhVb.js";import{B as P,R as oe,j as se,z as ce}from"./index-Bb5l3tTJ.js";import{d as le,f as ue,u as de}from"./definition-BznNdlhf.js";var fe={name:`arrow-down`,size:24,node:[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]};fe.node;var pe=u(fe),me={name:`arrow-up`,size:24,node:[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]};me.node;var F=u(me),he={name:`bell-ring`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]};he.node;var I=u(he),ge={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};ge.node;var _e=u(ge),ve={name:`camera`,size:24,node:[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]};ve.node;var ye=u(ve),be={name:`corner-down-left`,size:24,node:[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]};be.node;var xe=u(be),Se={name:`eraser`,size:24,node:[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]};Se.node;var Ce=u(Se),we={name:`file-headphone`,size:24,node:[[`path`,{d:`M4 6.835V4a2 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 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]],aliases:[`file-audio`,`file-audio-2`]};we.node;var Te=u(we),Ee={name:`film`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]};Ee.node;var De=u(Ee),Oe={name:`flashlight-off`,size:24,node:[[`path`,{d:`M11.652 6H18`,key:`voqkpr`}],[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V6`,key:`dzyf92`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M7.649 2H17a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8a4 4 0 0 0-.55 1.007`,key:`1hvcfn`}]]};Oe.node;var ke=u(Oe),Ae={name:`flashlight`,size:24,node:[[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M17 2a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8A4 4 0 0 0 16 12v8a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V3a1 1 0 0 1 1-1z`,key:`17vh7j`}],[`path`,{d:`M6 6h12`,key:`n6hhss`}]]};Ae.node;var je=u(Ae),Me={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};Me.node;var Ne=u(Me),Pe={name:`image-plus`,size:24,node:[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Pe.node;var Fe=u(Pe),Ie={name:`image-up`,size:24,node:[[`path`,{d:`M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21`,key:`9csbqa`}],[`path`,{d:`m14 19.5 3-3 3 3`,key:`9vmjn0`}],[`path`,{d:`M17 22v-5.5`,key:`1aa6fl`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Ie.node;var Le=u(Ie),Re={name:`locate-fixed`,size:24,node:[[`line`,{x1:`2`,x2:`5`,y1:`12`,y2:`12`,key:`bvdh0s`}],[`line`,{x1:`19`,x2:`22`,y1:`12`,y2:`12`,key:`1tbv5k`}],[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`5`,key:`11lu5j`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}],[`circle`,{cx:`12`,cy:`12`,r:`7`,key:`fim9np`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Re.node;var ze=u(Re),Be={name:`lock-keyhole`,size:24,node:[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]};Be.node;var Ve=u(Be),He={name:`mail`,size:24,node:[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`,key:`132q7q`}],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}]]};He.node;var Ue=u(He),We={name:`map-pin`,size:24,node:[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]};We.node;var Ge=u(We),Ke={name:`maximize-2`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]};Ke.node;var qe=u(Ke),Je={name:`paperclip`,size:24,node:[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]};Je.node;var L=u(Je),Ye={name:`pencil-line`,size:24,node:[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]};Ye.node;var Xe=u(Ye),Ze={name:`pencil`,size:24,node:[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]};Ze.node;var Qe=u(Ze),$e={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};$e.node;var et=u($e),tt={name:`scan-line`,size:24,node:[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`path`,{d:`M7 12h10`,key:`b7w52i`}]]};tt.node;var nt=u(tt),rt={name:`share-2`,size:24,node:[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]};rt.node;var it=u(rt),at={name:`share`,size:24,node:[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]};at.node;var R=u(at),ot={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};ot.node;var st=u(ot),ct={name:`sparkles`,size:24,node:[[`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`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};ct.node;var lt=u(ct),ut={name:`square`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]};ut.node;var dt=u(ut),ft={name:`switch-camera`,size:24,node:[[`path`,{d:`M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5`,key:`mtk2lu`}],[`path`,{d:`M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5`,key:`120jsl`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`m18 22-3-3 3-3`,key:`kgdoj7`}],[`path`,{d:`m6 2 3 3-3 3`,key:`1fnbkv`}]]};ft.node;var pt=u(ft),mt={name:`triangle-alert`,size:24,node:[[`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`}]],aliases:[`alert-triangle`]};mt.node;var ht=u(mt),gt={name:`unplug`,size:24,node:[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]};gt.node;var _t=u(gt),z=e(t(),1);function vt(){if(typeof window>`u`)return null;let e=window.engentyApp;return e&&typeof e.call==`function`&&Array.isArray(e.can)?e:null}var yt=vt(),bt=yt!==null||typeof window<`u`&&new URLSearchParams(window.location.search).get(`app`)===`1`;bt&&typeof document<`u`&&document.documentElement.classList.add(`in-app`);var B=e=>yt?.can.includes(e)===!0;function xt(e,t){return yt&&B(e)?yt.call(e,t):Promise.reject(Error(`the app cannot ${e}`))}function St(e,t){B(e)&&xt(e,t).catch(()=>void 0)}function Ct(e,t,n){return B(`download`)?(e.preventDefault(),xt(`download`,{url:new URL(t,window.location.href).href,filename:n}).catch(()=>void 0),!0):!1}var wt=e=>`engenty-wizards://w?url=${encodeURIComponent(e)}`,V=e(n(),1);function Tt(e,t){let n=encodeURIComponent(e),r=encodeURIComponent(t);return[{id:`mail`,label:N(`shareRun.email`),href:`mailto:?subject=${r}&body=${r}%0A%0A${n}`},{id:`x`,label:`X`,href:`https://x.com/intent/post?text=${r}&url=${n}`},{id:`linkedin`,label:`LinkedIn`,href:`https://www.linkedin.com/sharing/share-offsite/?url=${n}`},{id:`whatsapp`,label:`WhatsApp`,href:`https://wa.me/?text=${r}%20${n}`},{id:`facebook`,label:`Facebook`,href:`https://www.facebook.com/sharer/sharer.php?u=${n}`}]}var Et={x:`𝕏`,linkedin:`in`,whatsapp:`WA`,facebook:`f`};function Dt({runId:e,title:t,initial:n}){let[r,i]=(0,z.useState)(!1),[a,s]=(0,z.useState)(n),[c,l]=(0,z.useState)(!1),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(null),g=async()=>{if(i(!0),!a){l(!0),p(null);try{s(await o.post(`/api/runs/${e}/share`))}catch(e){p(e.message)}finally{l(!1)}}},_=async()=>{await o.del(`/api/runs/${e}/share`),s(null),i(!1)},y=()=>{a&&(navigator.clipboard.writeText(a.url),d(!0),setTimeout(()=>d(!1),1500))},b=B(`share`)||typeof navigator<`u`&&`share`in navigator,x=a?.expiresAt?new Intl.DateTimeFormat(ae,{dateStyle:`long`}).format(new Date(a.expiresAt)):null;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(M,{variant:`secondary`,onClick:()=>void g(),children:[(0,V.jsx)(it,{className:`size-4`}),` `,N(`shareRun.button`)]}),(0,V.jsx)(O,{open:r,onClose:()=>i(!1),title:N(`shareRun.title`),children:c?(0,V.jsx)(`div`,{className:`flex justify-center py-8 text-ink-4`,children:(0,V.jsx)(T,{})}):f?(0,V.jsx)(`p`,{className:`rounded-lg bg-rose-tint px-3 py-2 text-[0.875rem] text-rose`,children:f}):a?(0,V.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-paper-2 p-1.5 pl-3`,children:[(0,V.jsx)(v,{className:`size-4 shrink-0 text-ink-3`}),(0,V.jsx)(`input`,{readOnly:!0,value:a.url,onFocus:e=>e.target.select(),"aria-label":N(`share.link`),className:`min-w-0 flex-1 bg-transparent text-[0.875rem] outline-none coarse:h-11`}),(0,V.jsxs)(M,{size:`sm`,onClick:y,children:[u?(0,V.jsx)(m,{className:`size-3.5`}):(0,V.jsx)(h,{className:`size-3.5`}),N(u?`share.copied`:`share.copy`)]})]}),(0,V.jsxs)(`div`,{className:`grid grid-cols-3 gap-3 sm:grid-cols-6`,children:[Tt(a.url,t).map(e=>(0,V.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noreferrer`,className:`flex flex-col items-center gap-1.5 text-[0.75rem] text-ink-2 hover:text-ink`,children:[(0,V.jsx)(`span`,{className:`inline-flex size-12 items-center justify-center rounded-full bg-paper-2 font-semibold text-[0.9375rem] transition hover:bg-paper-3`,children:e.id===`mail`?(0,V.jsx)(Ue,{className:`size-5`}):Et[e.id]}),e.label]},e.id)),b?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>void(B(`share`)?xt(`share`,{link:a.url,title:t}):navigator.share({title:t,url:a.url})).catch(()=>void 0),className:`flex flex-col items-center gap-1.5 text-[0.75rem] text-ink-2 hover:text-ink`,children:[(0,V.jsx)(`span`,{className:`inline-flex size-12 items-center justify-center rounded-full bg-paper-2 transition hover:bg-paper-3`,children:(0,V.jsx)(it,{className:`size-5`})}),N(`shareRun.more`)]}):null]}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-[0.8125rem] text-ink-3`,children:[(0,V.jsx)(`span`,{children:x?N(`shareRun.until`,{date:x}):N(`shareRun.kept`)}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>void _(),className:`shrink-0 hover:text-rose coarse:min-h-11`,children:N(`shareRun.withdraw`)})]})]}):null})]})}function Ot({runId:e,ask:t}){return t.kind===`confirm`?(0,V.jsx)(kt,{runId:e,ask:t}):(0,V.jsx)(At,{runId:e,ask:t})}function kt({runId:e,ask:t}){let[n,r]=(0,z.useState)(!1),[i,a]=(0,z.useState)(!1),[s,c]=(0,z.useState)(null),l=async n=>{a(!0),c(null);try{await o.post(`/api/runs/${e}/ask/${t.id}`,n)}catch(e){c(e.message),a(!1)}},u=t.action.destructive?ht:Xe;return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,V.jsx)(`div`,{className:E(`flex size-10 shrink-0 items-center justify-center rounded-full`,t.action.destructive?`bg-rose-tint text-rose`:`bg-ember-tint text-ember-strong`),children:(0,V.jsx)(u,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:N(`ask.wants`,{service:t.service})}),(0,V.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason})]})]}),(0,V.jsx)(`pre`,{className:`max-h-72 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-paper-2 p-4 text-[0.8125rem] leading-relaxed ring-1 ring-border-soft`,children:t.input}),(0,V.jsxs)(`div`,{className:`mt-5 flex items-center gap-4`,children:[(0,V.jsx)(te,{checked:n,onChange:r,label:N(`ask.allowRest`)}),(0,V.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:N(`ask.allowRest`)})]}),s?(0,V.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:s}):null,(0,V.jsxs)(`div`,{className:`action-bar mt-6 flex items-center justify-between gap-3`,children:[(0,V.jsx)(M,{variant:`ghost`,disabled:i,onClick:()=>void l({type:`skip`}),children:N(`ask.deny`)}),(0,V.jsx)(M,{busy:i,onClick:()=>void l({type:`done`,remember:n}),children:N(`ask.allow`)})]})]})}function At({runId:e,ask:t}){let[n,r]=(0,z.useState)({}),[a,s]=(0,z.useState)(!1),[c,l]=(0,z.useState)(!1),[u,d]=(0,z.useState)(null),[f,p]=(0,z.useState)(0),[m,h]=(0,z.useState)(``),[g,_]=(0,z.useState)(!1),v=(0,z.useRef)(null),y=(0,z.useCallback)(()=>p(e=>e+1),[]);(0,z.useEffect)(()=>{let e=setInterval(y,2500);return()=>clearInterval(e)},[y]);let b=async n=>{l(!0),d(null);try{await o.post(`/api/runs/${e}/ask/${t.id}`,n)}catch(e){d(e.message),l(!1)}},x=async t=>{d(null);try{await o.post(`/api/runs/${e}/browser/act`,t)}catch(e){d(e.message)}y()},S=e=>{let t=v.current;if(!t?.naturalWidth)return;let n=t.getBoundingClientRect();x({type:`click`,x:Math.round((e.clientX-n.left)/n.width*t.naturalWidth),y:Math.round((e.clientY-n.top)/n.height*t.naturalHeight)})},w=t.fields.some(e=>n[e.id]);return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,V.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-ember-tint text-ember-strong`,children:(0,V.jsx)(Ve,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason}),(0,V.jsxs)(`p`,{className:`mt-0.5 truncate text-[0.8125rem] text-ink-3`,children:[t.site.host,t.site.title?` · ${t.site.title}`:``]})]})]}),(0,V.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-paper-2 ring-1 ring-border-soft`,children:[(0,V.jsx)(`img`,{ref:v,src:i(`/api/runs/${e}/browser/screen?t=${f}`),alt:t.site.host,onClick:S,className:`block w-full cursor-pointer`}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 border-border-soft border-t bg-card p-2`,children:[(0,V.jsx)(j,{type:g?`password`:`text`,autoComplete:`off`,value:m,placeholder:N(`ask.typeInto`),onChange:e=>h(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),x({type:`type`,text:m}).then(()=>h(``)))},autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:`send`,className:`h-9 min-w-[9rem] flex-1 basis-full text-[0.8125rem] sm:basis-0 coarse:h-11`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>_(e=>!e),className:E(`h-9 shrink-0 rounded-md px-2.5 text-[0.75rem] coarse:h-11 coarse:px-3.5`,g?`bg-ember-veil text-ink`:`text-ink-3 hover:bg-paper-2`),children:N(`ask.hide`)}),(0,V.jsx)(jt,{label:`Enter`,onClick:()=>void x({type:`key`,key:`Enter`}),children:(0,V.jsx)(xe,{className:`size-4`})}),(0,V.jsx)(jt,{label:N(`ask.up`),onClick:()=>void x({type:`scroll`,dy:-500}),children:(0,V.jsx)(F,{className:`size-4`})}),(0,V.jsx)(jt,{label:N(`ask.down`),onClick:()=>void x({type:`scroll`,dy:500}),children:(0,V.jsx)(pe,{className:`size-4`})})]})]}),(0,V.jsx)(`p`,{className:`mt-2 text-[0.75rem] text-ink-4`,children:N(`ask.pictureHint`)}),t.fields.length?(0,V.jsxs)(`form`,{className:`mt-5 flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),b({type:`fill`,values:n,remember:a})},children:[t.fields.map((e,i)=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(C,{children:e.label}),(0,V.jsx)(j,{autoFocus:i===0,type:e.secret?`password`:`text`,autoComplete:`off`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:i===t.fields.length-1?`go`:`next`,value:n[e.id]??``,onChange:t=>r(n=>({...n,[e.id]:t.target.value}))})]},e.id)),(0,V.jsx)(`button`,{type:`submit`,hidden:!0})]}):null,(0,V.jsxs)(`div`,{className:`mt-5 flex items-center justify-between gap-4`,children:[(0,V.jsx)(te,{checked:a,onChange:s,label:N(`ask.remember`)}),(0,V.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:N(`ask.remember`)})]}),(0,V.jsxs)(`p`,{className:`mt-3 flex items-start gap-2 text-[0.8125rem] text-ink-3`,children:[(0,V.jsx)(st,{className:`mt-0.5 size-4 shrink-0 text-moss`}),` `,N(`ask.private`)]}),u?(0,V.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:u}):null,(0,V.jsxs)(`div`,{className:`action-bar mt-6 flex flex-wrap items-center justify-between gap-3`,children:[(0,V.jsx)(M,{variant:`ghost`,disabled:c,onClick:()=>void b({type:`skip`}),children:N(`ask.skip`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.fields.length?(0,V.jsx)(M,{variant:`secondary`,disabled:c,onClick:()=>void b({type:`done`,remember:a}),children:N(`ask.done`)}):null,t.fields.length?(0,V.jsx)(M,{busy:c,disabled:!w,onClick:()=>void b({type:`fill`,values:n,remember:a}),children:N(`ask.signIn`)}):(0,V.jsx)(M,{busy:c,onClick:()=>void b({type:`done`,remember:a}),children:N(`ask.done`)})]})]})]})}function jt({label:e,onClick:t,children:n}){return(0,V.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:t,className:`flex size-9 shrink-0 items-center justify-center rounded-md text-ink-3 hover:bg-paper-2 hover:text-ink coarse:size-11`,children:n})}var Mt=typeof window<`u`&&window.matchMedia?.(`(pointer: coarse)`).matches===!0,Nt=typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia;function Pt(){(0,z.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=document.documentElement,n=()=>{let n=e.scale>1.01?0:window.innerHeight-e.height-e.offsetTop,r=n>80;t.style.setProperty(`--kb`,r?`${Math.round(n)}px`:`0px`),t.classList.toggle(`keyboard-open`,r)};return n(),e.addEventListener(`resize`,n),e.addEventListener(`scroll`,n),()=>{e.removeEventListener(`resize`,n),e.removeEventListener(`scroll`,n),t.style.removeProperty(`--kb`),t.classList.remove(`keyboard-open`)}},[])}function Ft(e){let[t,n]=(0,z.useState)(!1);return(0,z.useEffect)(()=>{if(e&&B(`keepAwake`))return St(`keepAwake`,!0),n(!0),()=>{St(`keepAwake`,!1),n(!1)};if(!e||!(`wakeLock`in navigator))return;let t=null,r=!1,i=async()=>{if(!(r||t||document.visibilityState!==`visible`))try{let e=await navigator.wakeLock.request(`screen`);if(r){e.release().catch(()=>void 0);return}t=e,n(!0),e.addEventListener(`release`,()=>{t===e&&(t=null,n(!1))})}catch{}};return i(),document.addEventListener(`visibilitychange`,i),()=>{r=!0,document.removeEventListener(`visibilitychange`,i),t?.release().catch(()=>void 0),t=null,n(!1)}},[e]),t}var It=`wz.notify`,Lt=new Set,Rt=null;function zt(){try{return localStorage.getItem(It)===`1`}catch{return!1}}function Bt(e){try{e?localStorage.setItem(It,`1`):localStorage.removeItem(It)}catch{}for(let e of Lt)e()}var Vt=typeof window<`u`&&`Notification`in window,Ht=null;function Ut(){return zt()?B(`notify`)?Ht===!1?`quiet`:`on`:Vt&&Notification.permission===`granted`?`on`:`quiet`:`off`}function Wt(){return(0,z.useSyncExternalStore)(e=>(Lt.add(e),()=>Lt.delete(e)),Ut,()=>`off`)}function Gt(){return B(`notify`)?Ht===!1:Vt&&Notification.permission===`denied`}async function Kt(){if(Bt(!0),B(`notify`)){Ht=!B(`notifyPermission`)||await xt(`notifyPermission`).catch(()=>!1);for(let e of Lt)e();return Ut()}try{Rt??=new AudioContext,Rt.resume()}catch{Rt=null}if(Vt&&Notification.permission==="default")try{await Notification.requestPermission()}catch{}Vt&&Notification.permission===`granted`&&await navigator.serviceWorker?.register(`${r}/sw.js`).catch(()=>void 0);for(let e of Lt)e();return Ut()}function qt(){Bt(!1)}function Jt(){let e=Rt;if(e?.state!==`running`)return;let t=e.currentTime;for(let[n,r]of[660,880].entries()){let i=e.createOscillator(),a=e.createGain();i.frequency.value=r,a.gain.setValueAtTime(0,t+n*.16),a.gain.linearRampToValueAtTime(.18,t+n*.16+.02),a.gain.exponentialRampToValueAtTime(.001,t+n*.16+.32),i.connect(a).connect(e.destination),i.start(t+n*.16),i.stop(t+n*.16+.34)}}async function Yt(e){if(!zt())return;if(B(`notify`)){St(`notify`,e);return}if(document.visibilityState===`visible`){Jt(),navigator.vibrate?.([120,60,120]);return}if(!Vt||Notification.permission!==`granted`)return;let t={body:e.body,tag:e.tag,icon:s(`icons/icon-192.png`),badge:s(`icons/icon-192.png`),data:{url:location.href}};try{let n=await navigator.serviceWorker?.getRegistration();if(n?.active){await n.showNotification(e.title,t);return}}catch{}try{new Notification(e.title,t)}catch{}}function Xt(){if(typeof navigator>`u`||!navigator.canShare)return!1;try{return navigator.canShare({files:[new File([`x`],`x.pdf`,{type:`application/pdf`})]})}catch{return!1}}var Zt=36e5,Qt=6e4,$t=1e3;function en(e){return e.fractionDigits===void 0?e.style===`integer`?0:2:e.fractionDigits}function tn(e,t,n=`en`){if(typeof e!=`number`||!Number.isFinite(e))return``;let r=en(t),i=t.grouping!==!1;return t.style===`percent`?new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,style:`percent`,useGrouping:i}).format(e):t.style===`currency`&&t.currency?new Intl.NumberFormat(n,{currency:t.currency,maximumFractionDigits:r,minimumFractionDigits:r,style:`currency`,useGrouping:i}).format(e):new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,useGrouping:i}).format(e)}function nn(e,t,n=`en`){if(typeof e!=`string`||e.length===0)return``;if(t.kind===`time`)return rn(e,t.timePrecision??`minutes`);if(t.dateStyle===`iso`)return t.kind===`date`?e.slice(0,10):e;let r=t.kind===`date`?new Date(`${e}T00:00:00`):new Date(e);if(Number.isNaN(r.getTime()))return e;let i=t.dateStyle??`medium`;if(t.kind===`date`)return new Intl.DateTimeFormat(n,{dateStyle:i}).format(r);let a=t.timePrecision??`minutes`;return new Intl.DateTimeFormat(n,{dateStyle:i,timeStyle:a===`hours`?`short`:`medium`}).format(r)}function rn(e,t){let[n=`0`,r=`00`,i=`00`]=e.split(`:`);return t===`hours`?`${n.padStart(2,`0`)}:00`:t===`minutes`?`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}`:`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}:${i.padStart(2,`0`)}`}function an(e,t){if(typeof e!=`number`||!Number.isFinite(e))return``;let n=Math.max(0,Math.round(e));if(t.display===`iso`)return on(n);if(t.display===`minutes`)return`${Math.round(n/Qt)} min`;if(t.display===`hours`)return`${(n/Zt).toFixed(2)} h`;if(t.display===`decimal-hours`)return(n/Zt).toFixed(2);let r=Math.floor(n/Zt),i=Math.floor(n%Zt/Qt),a=Math.floor(n%Qt/$t);return`${r}:${String(i).padStart(2,`0`)}:${String(a).padStart(2,`0`)}`}function on(e){let t=Math.floor(e/Zt),n=Math.floor(e%Zt/Qt),r=Math.floor(e%Qt/$t);return`${t>=24?`P${Math.floor(t/24)}D`:`P`}T${t%24}H${n}M${r}S`}function sn(e,t,n=`en`){if(t==null)return``;switch(e.type){case`number`:return tn(t,e.format,n);case`date`:return nn(t,e.format,n);case`duration`:return an(t,e.format);case`boolean`:return t===!0?`true`:t===!1?`false`:``;case`select`:return cn(e,t);default:return String(t)}}function cn(e,t){let n=Array.isArray(t)?t:[t],r=e.format.options.reduce((e,t)=>(e[t.id]=t.label,e),{});return n.filter(e=>typeof e==`string`&&e.length>0).map(e=>r[e]??e).join(`, `)}async function ln(e,t=2400){if(!/^image\/(jpeg|png|webp)$/.test(e.type)||e.size<12e5)return e;try{let n=await createImageBitmap(e),r=Math.min(1,t/Math.max(n.width,n.height)),i=document.createElement(`canvas`);i.width=Math.round(n.width*r),i.height=Math.round(n.height*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height);let a=await new Promise(e=>i.toBlob(e,`image/jpeg`,.86));return a&&a.size<e.size?new File([a],`${e.name.replace(/\.[^.]+$/,``)}.jpg`,{type:`image/jpeg`}):e}catch{return e}}function un(){return new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`)}function dn(e){let t=e?.name;return t===`NotFoundError`||t===`OverconstrainedError`?`missing`:t===`NotReadableError`||t===`AbortError`?`busy`:`denied`}function fn(e){return!!e?.getCapabilities?.()?.torch}function pn(e,t,n=!1){let r=(0,z.useRef)(null),[i,a]=(0,z.useState)(null),[o,s]=(0,z.useState)(null),[c,l]=(0,z.useState)(1),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(!1);return(0,z.useEffect)(()=>{if(!e)return;let r=null,i=!1;s(null),a(null),d(!1),p(!1);let o={facingMode:{ideal:t},width:{ideal:2560},height:{ideal:1440}};return(async()=>{if(!navigator.mediaDevices?.getUserMedia)throw new DOMException(`no camera api`,`NotAllowedError`);try{r=await navigator.mediaDevices.getUserMedia({video:o,audio:n})}catch(e){if(!n)throw e;r=await navigator.mediaDevices.getUserMedia({video:o})}if(i){for(let e of r.getTracks())e.stop();return}a(r);let e=r.getVideoTracks()[0],t=()=>!i&&d(fn(e));t(),setTimeout(t,600);let s=await navigator.mediaDevices.enumerateDevices().catch(()=>[]);i||l(s.filter(e=>e.kind===`videoinput`).length)})().catch(e=>!i&&s(dn(e))),()=>{i=!0;for(let e of r?.getTracks()??[])e.stop()}},[e,t,n]),(0,z.useEffect)(()=>{r.current&&i&&(r.current.srcObject=i)},[i]),{video:r,stream:i,error:o,cameras:c,torchable:u,torch:f,setTorch:async e=>{let t=i?.getVideoTracks()[0];try{await t?.applyConstraints({advanced:[{torch:e}]}),p(e)}catch{d(!1)}},mirrored:i?.getVideoTracks()[0]?.getSettings().facingMode===`user`}}function mn({open:e,onClose:t,label:n,children:r}){let i=(0,z.useRef)(null);return(0,z.useEffect)(()=>{let t=i.current;t&&(e&&!t.open?t.showModal():!e&&t.open&&t.close())},[e]),(0,V.jsx)(`dialog`,{ref:i,onClose:t,"aria-label":n,className:`media-sheet`,children:e?(0,V.jsx)(`div`,{className:`flex h-full flex-col`,children:r}):null})}function hn({label:e,onClick:t,active:n,children:r}){return(0,V.jsx)(`button`,{type:`button`,"aria-label":e,title:e,"aria-pressed":n,onClick:t,className:E(`flex size-11 shrink-0 items-center justify-center rounded-full transition`,n?`bg-white text-black`:`bg-white/12 text-white hover:bg-white/20`),children:r})}function gn({title:e,onClose:t,camera:n,onFlip:r}){return(0,V.jsx)(`div`,{className:`safe-top`,children:(0,V.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,V.jsx)(hn,{label:N(`common.close`),onClick:t,children:(0,V.jsx)(se,{className:`size-5`})}),(0,V.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-center font-medium text-[0.9375rem]`,children:e}),n.torchable?(0,V.jsx)(hn,{label:N(`camera.torch`),active:n.torch,onClick:()=>void n.setTorch(!n.torch),children:n.torch?(0,V.jsx)(je,{className:`size-5`}):(0,V.jsx)(ke,{className:`size-5`})}):null,n.stream&&(n.cameras>1||Mt)?(0,V.jsx)(hn,{label:N(`camera.flip`),onClick:r,children:(0,V.jsx)(pt,{className:`size-5`})}):(0,V.jsx)(`span`,{className:`size-11`})]})})}function _n({camera:e,asking:t,children:n,actions:r}){return(0,V.jsxs)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:[(0,V.jsx)(`video`,{ref:e.video,autoPlay:!0,playsInline:!0,muted:!0,className:E(`absolute inset-0 size-full object-contain`,e.mirrored&&`-scale-x-100`)}),e.error?(0,V.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-5 bg-black px-8 text-center`,children:[(0,V.jsx)(`p`,{className:`max-w-sm text-[0.9375rem] text-white/85 leading-relaxed`,children:N(`camera.${e.error}`)}),r]}):e.stream?n:(0,V.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-4 px-8 text-center text-white/75`,children:[(0,V.jsx)(T,{}),(0,V.jsx)(`p`,{className:`max-w-xs text-[0.875rem] leading-relaxed`,children:t})]})]})}var vn=30;function yn(){if(typeof MediaRecorder<`u`)return[`video/mp4;codecs=avc1.42E01E,mp4a.40.2`,`video/mp4`,`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`,`video/webm`].find(e=>MediaRecorder.isTypeSupported(e))}var bn=!!yn();function xn({open:e,multiple:t,video:n,onClose:r,onCapture:i,onNative:a}){let[o,s]=(0,z.useState)(`environment`),[c,l]=(0,z.useState)(`photo`),[u,d]=(0,z.useState)(0),[f,p]=(0,z.useState)(!1),[h,g]=(0,z.useState)(null),_=(0,z.useRef)(null),v=pn(e,o,c===`video`);(0,z.useEffect)(()=>{e&&(d(0),l(`photo`),g(null))},[e]);let y=async e=>{p(!0);try{await i(e),d(e=>e+1),t||r()}finally{p(!1)}},b=async()=>{let e=v.video.current;if(!e?.videoWidth)return;let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight,t.getContext(`2d`)?.drawImage(e,0,0);let n=await new Promise(e=>t.toBlob(e,`image/jpeg`,.9));n&&await y(new File([n],`foto-${un()}.jpg`,{type:`image/jpeg`}))},S=()=>{_.current?.state===`recording`&&_.current.stop()},C=()=>{let e=yn();if(!v.stream||!e)return;let t=[],n=new MediaRecorder(v.stream,{mimeType:e,videoBitsPerSecond:25e5,audioBitsPerSecond:96e3});n.ondataavailable=e=>e.data.size&&t.push(e.data),n.onstop=()=>{g(null),_.current=null;let n=e.split(`;`)[0];if(t.length){let e=n===`video/mp4`?`mp4`:`webm`;y(new File(t,`video-${un()}.${e}`,{type:n}))}},_.current=n,n.start(1e3),g(0)};(0,z.useEffect)(()=>{if(h===null)return;if(h>=vn){_.current?.state===`recording`&&_.current.stop();return}let e=setTimeout(()=>g(e=>e===null?null:e+1),1e3);return()=>clearTimeout(e)},[h]),(0,z.useEffect)(()=>{!e&&_.current&&(_.current.onstop=null,_.current.stop(),_.current=null)},[e]);let w=e=>`0:${String(e).padStart(2,`0`)}`;return(0,V.jsxs)(mn,{open:e,onClose:r,label:N(`camera.title`),children:[(0,V.jsx)(gn,{title:h===null?u?N(`camera.taken`,{n:u}):N(`camera.title`):`${w(h)} / ${w(vn)}`,onClose:r,camera:v,onFlip:()=>s(e=>e===`environment`?`user`:`environment`)}),(0,V.jsx)(_n,{camera:v,asking:N(`camera.asking`),actions:(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a?(0,V.jsxs)(Sn,{onClick:()=>{r(),a()},children:[(0,V.jsx)(ye,{className:`size-4`}),` `,N(Mt?`camera.native`:`camera.pick`)]}):null,(0,V.jsx)(Sn,{quiet:!0,onClick:r,children:N(`common.close`)})]})}),(0,V.jsxs)(`div`,{className:E(`safe-bottom px-4 pt-3`,v.error&&`invisible`),children:[n&&bn&&h===null?(0,V.jsx)(`div`,{className:`mb-3 flex justify-center gap-1 text-[0.8125rem]`,children:[`photo`,`video`].map(e=>(0,V.jsx)(`button`,{type:`button`,"aria-pressed":c===e,onClick:()=>l(e),className:E(`h-9 rounded-full px-4 font-medium transition`,c===e?`bg-white text-black`:`text-white/70 hover:text-white`),children:N(e===`photo`?`camera.photo`:`camera.video`)},e))}):null,(0,V.jsxs)(`div`,{className:`grid grid-cols-[1fr_auto_1fr] items-center gap-3`,children:[(0,V.jsx)(`span`,{className:`text-[0.8125rem] text-white/70 leading-snug`,children:h===null?c===`video`?N(`camera.clipHint`,{s:vn}):N(t?`camera.hintMany`:`camera.hint`):N(`camera.recording`)}),(0,V.jsx)(`button`,{type:`button`,"aria-label":N(c===`photo`?`camera.shoot`:h===null?`camera.record`:`camera.stop`),disabled:!v.stream||f,onClick:()=>c===`photo`?void b():h===null?C():S(),className:`flex size-[72px] items-center justify-center rounded-full border-4 border-white transition active:scale-95 disabled:opacity-40`,children:f?(0,V.jsx)(T,{className:`text-white`}):c===`photo`?(0,V.jsx)(`span`,{className:`size-[54px] rounded-full bg-white`}):h===null?(0,V.jsx)(`span`,{className:`flex size-[54px] items-center justify-center rounded-full bg-[#e5484d]`,children:(0,V.jsx)(x,{className:`size-6 text-white`})}):(0,V.jsx)(`span`,{className:`size-7 rounded-md bg-[#e5484d]`})}),(0,V.jsx)(`div`,{className:`flex justify-end`,children:t&&u&&h===null?(0,V.jsxs)(Sn,{onClick:r,children:[(0,V.jsx)(m,{className:`size-4`}),` `,N(`camera.done`)]}):null})]})]})]})}function Sn({onClick:e,quiet:t,children:n}){return(0,V.jsx)(`button`,{type:`button`,onClick:e,className:E(`inline-flex h-11 items-center justify-center gap-2 rounded-full px-5 font-medium text-[0.875rem] transition`,t?`text-white/75 hover:text-white`:`bg-white text-black hover:bg-white/90`),children:n})}var Cn=25,wn=9e3;function Tn(e){return e.code===e.PERMISSION_DENIED?`denied`:e.code===e.TIMEOUT?`timeout`:`unavailable`}function En({value:e,runId:t,placeholder:n,onChange:r,onBusy:i}){let a=le(e)?e:null,[s,c]=(0,z.useState)(!1),[l,u]=(0,z.useState)(null),d=(0,z.useRef)(null),f=(0,z.useRef)(!!a?.label),p=(0,z.useRef)(a);p.current=a;let m=a?.lat!==void 0&&a.lng!==void 0,h=typeof navigator<`u`&&`geolocation`in navigator,g=()=>{d.current!==null&&(navigator.geolocation.clearWatch(d.current),d.current=null),c(!1),i?.(!1)};(0,z.useEffect)(()=>()=>{d.current!==null&&navigator.geolocation.clearWatch(d.current)},[]);let v=async(e,n)=>{try{let{label:i}=await o.post(`/api/runs/${t}/geocode`,{lat:e,lng:n,language:ae}),a=p.current;i&&!f.current&&a?.lat===e&&a.lng===n&&r({...a,label:i})}catch{}},y=()=>{u(null),c(!0),i?.(!0);let e=Date.now(),t=1/0;d.current=navigator.geolocation.watchPosition(n=>{let{latitude:i,longitude:a,accuracy:o}=n.coords;if(o<t){t=o;let e=Math.round(i*1e6)/1e6,n=Math.round(a*1e6)/1e6,s=f.current?p.current?.label:void 0,c={lat:e,lng:n,accuracy:Math.round(o),...s?{label:s}:{}};p.current=c,r(c)}if(t<=Cn||Date.now()-e>wn){g();let e=p.current;e?.lat!==void 0&&e.lng!==void 0&&v(e.lat,e.lng)}},e=>{g(),t===1/0&&u(Tn(e))},{enableHighAccuracy:!0,timeout:15e3,maximumAge:1e4})},b=e=>{f.current=e.trim().length>0;let t={...m?a:{},label:e};r(m||e.trim()?t:void 0)};return(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[m?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,V.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-moss-tint text-moss`,children:(0,V.jsx)(Ge,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsxs)(`div`,{className:`truncate font-medium text-[0.9375rem] tabular-nums`,children:[a.lat?.toFixed(5),`, `,a.lng?.toFixed(5)]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 text-[0.8125rem] text-ink-3`,children:[(0,V.jsx)(`span`,{children:s?N(`location.refining`):a.accuracy?N(`location.accuracy`,{m:a.accuracy}):null}),(0,V.jsxs)(`a`,{href:`https://www.openstreetmap.org/?mlat=${a.lat}&mlon=${a.lng}#map=17/${a.lat}/${a.lng}`,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 underline-offset-2 hover:text-ink hover:underline coarse:-my-3 coarse:min-h-11 coarse:min-w-11`,children:[N(`location.map`),` `,(0,V.jsx)(_,{className:`size-3`})]})]})]}),(0,V.jsx)(k,{label:N(`location.remove`),onClick:()=>{g(),f.current=!1,r(void 0)},children:(0,V.jsx)(se,{className:`size-4`})})]}):h?(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(M,{variant:`secondary`,size:`lg`,busy:s,onClick:y,className:`w-full sm:w-auto`,children:[s?null:(0,V.jsx)(ze,{className:`size-4`}),N(s?`location.locating`:`location.use`)]}),l?(0,V.jsx)(`p`,{className:`mt-2 rounded-lg bg-amber-tint px-3 py-2 text-[0.8125rem] text-ink-2 leading-relaxed`,children:N(`location.${l}`)}):(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-ink-3 leading-relaxed`,children:N(`location.why`)})]}):null,(0,V.jsx)(j,{value:a?.label??``,placeholder:n??N(m?`location.label`:`location.manual`),autoComplete:`street-address`,enterKeyHint:`done`,"aria-label":N(`location.manual`),onChange:e=>b(e.target.value)})]})}var Dn=null;function On(){return Dn??=(async()=>{let e=window.BarcodeDetector;if(e)try{let t=await e.getSupportedFormats();if(t.includes(`qr_code`)){let n=new e({formats:t});return{qrOnly:!1,detect:async e=>(await n.detect(e))[0]?.rawValue||null}}}catch{}let{default:t}=await l(async()=>{let{default:e}=await import(`./qr-scanner.min-C_UI0gH-.js`);return{default:e}},__vite__mapDeps([0,1])),n=t.createQrEngine();return{qrOnly:!0,detect:async e=>{try{return(await t.scanImage(e,{qrEngine:n,returnDetailedScanResult:!0})).data||null}catch{return null}}}})(),Dn}function kn({open:e,onClose:t,onResult:n}){let r=(0,z.useRef)(n);r.current=n;let i=(0,z.useRef)(t);return i.current=t,(0,z.useEffect)(()=>{e&&xt(`scan`).then(e=>{e&&r.current(e)}).catch(()=>void 0).finally(()=>i.current())},[e]),null}function An(e){return B(`scan`)?(0,V.jsx)(kn,{...e}):(0,V.jsx)(jn,{...e})}function jn({open:e,onClose:t,onResult:n}){let[r,i]=(0,z.useState)(`environment`),[a,o]=(0,z.useState)(!1),[s,c]=(0,z.useState)(!1),l=(0,z.useRef)(null),u=pn(e,r),d=(0,z.useRef)(n);d.current=n;let f=(0,z.useRef)(t);f.current=t,(0,z.useEffect)(()=>{e&&(c(!1),On().then(e=>o(e.qrOnly)))},[e]),(0,z.useEffect)(()=>{if(!e||!u.stream)return;let t=!1,n,r=async()=>{let e=u.video.current;if(!t&&e&&e.readyState>=2&&e.videoWidth){let n=await(await On()).detect(e).catch(()=>null);if(n&&!t){navigator.vibrate?.(60),d.current(n),f.current();return}}t||(n=setTimeout(r,200))};return r(),()=>{t=!0,clearTimeout(n)}},[e,u.stream,u.video]);let p=async e=>{if(!e)return;c(!1);let r=await createImageBitmap(e).catch(()=>null),i=r?await(await On()).detect(r).catch(()=>null):null;i?(n(i),t()):c(!0)};return(0,V.jsxs)(mn,{open:e,onClose:t,label:N(`scan.title`),children:[(0,V.jsx)(gn,{title:N(`scan.title`),onClose:t,camera:u,onFlip:()=>i(e=>e===`environment`?`user`:`environment`)}),(0,V.jsx)(_n,{camera:u,asking:N(`scan.asking`),actions:(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,V.jsxs)(Sn,{onClick:()=>l.current?.click(),children:[(0,V.jsx)(Le,{className:`size-4`}),` `,N(`scan.fromPhoto`)]}),(0,V.jsx)(Sn,{quiet:!0,onClick:t,children:N(`scan.typeInstead`)})]}),children:(0,V.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,V.jsx)(`div`,{className:`aspect-square w-[min(68%,320px)] rounded-3xl border-2 border-white/90 shadow-[0_0_0_100vmax_rgb(0_0_0/0.35)]`})})}),(0,V.jsxs)(`div`,{className:`safe-bottom flex flex-col items-center gap-3 px-5 pt-3 text-center`,children:[(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-white/75 leading-snug`,children:N(s?`scan.miss`:a?`scan.hintQr`:`scan.hint`)}),u.stream?(0,V.jsxs)(Sn,{quiet:!0,onClick:()=>l.current?.click(),children:[(0,V.jsx)(Le,{className:`size-4`}),` `,N(`scan.fromPhoto`)]}):null]}),(0,V.jsx)(`input`,{ref:l,type:`file`,hidden:!0,accept:`image/*`,onChange:e=>{p(e.target.files?.[0]),e.target.value=``}})]})}var Mn=`#1d1a17`,Nn={width:1200,height:480};function Pn(e,t,n,r,i){e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=Mn,e.fillStyle=Mn,e.lineWidth=i;for(let a of t){if(a.length===1){e.beginPath(),e.arc(a[0].x*n,a[0].y*r,i/2,0,Math.PI*2),e.fill();continue}e.beginPath(),e.moveTo(a[0].x*n,a[0].y*r);for(let t=1;t<a.length-1;t++){let i=a[t],o=a[t+1];e.quadraticCurveTo(i.x*n,i.y*r,(i.x+o.x)/2*n,(i.y+o.y)/2*r)}let t=a[a.length-1];e.lineTo(t.x*n,t.y*r),e.stroke()}}function Fn({strokes:e,onStrokes:t}){let n=(0,z.useRef)(null),r=(0,z.useRef)(null),i=(0,z.useRef)(e);i.current=e;let a=()=>{let e=n.current,t=e?.getContext(`2d`);if(!e||!t)return;let a=window.devicePixelRatio||1,o=Math.round(e.clientWidth*a),s=Math.round(e.clientHeight*a);(e.width!==o||e.height!==s)&&(e.width=o,e.height=s),t.clearRect(0,0,o,s),Pn(t,r.current?[...i.current,r.current]:i.current,o,s,2.4*a)};(0,z.useEffect)(()=>{a();let e=n.current;if(!e)return;let t=new ResizeObserver(a);return t.observe(e),()=>t.disconnect()},[e]);let o=e=>{let t=e.currentTarget.getBoundingClientRect();return{x:Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)),y:Math.min(1,Math.max(0,(e.clientY-t.top)/t.height))}};return(0,V.jsxs)(`div`,{className:`relative overflow-hidden rounded-xl bg-white ring-1 ring-input`,children:[(0,V.jsx)(`canvas`,{ref:n,"aria-label":N(`sign.pad`),className:`block aspect-[5/2] w-full cursor-crosshair touch-none select-none`,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),r.current=[o(e)],a()},onPointerMove:e=>{r.current&&(r.current.push(o(e)),a())},onPointerUp:()=>{if(r.current){let e=r.current;r.current=null,t([...i.current,e])}},onPointerCancel:()=>{r.current=null,a()}}),(0,V.jsx)(`div`,{className:`pointer-events-none absolute inset-x-6 bottom-[22%] border-[#1d1a17]/25 border-b`}),e.length?null:(0,V.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center text-[#1d1a17]/40 text-[0.875rem]`,children:N(`sign.hint`)})]})}async function In(e){let t=document.createElement(`canvas`);t.width=Nn.width,t.height=Nn.height;let n=t.getContext(`2d`);if(!n)return null;Pn(n,e,Nn.width,Nn.height,7);let r=await new Promise(e=>t.toBlob(e,`image/png`));return r?new File([r],`unterschrift.png`,{type:`image/png`}):null}function Ln({label:e,value:t,runId:n,onChange:r}){let[a,s]=(0,z.useState)(!1),[c,l]=(0,z.useState)([]),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(null),m=typeof t==`string`&&t?t:null,h=async()=>{d(!0),p(null);try{let e=await In(c);if(!e)return;r((await o.upload(`/api/runs/${n}/uploads`,e)).id),s(!1)}catch(e){p(e.message)}finally{d(!1)}};return(0,V.jsxs)(`div`,{children:[m?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-2 ring-1 ring-input`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:()=>{l([]),s(!0)},className:`min-w-0 flex-1 rounded-lg bg-white px-3`,"aria-label":N(`sign.again`),children:(0,V.jsx)(`img`,{src:i(`/api/runs/${n}/assets/${m}`),alt:e,className:`mx-auto h-20 object-contain`})}),(0,V.jsx)(k,{label:N(`sign.remove`),onClick:()=>r(void 0),children:(0,V.jsx)(se,{className:`size-4`})})]}):(0,V.jsxs)(`button`,{type:`button`,onClick:()=>{l([]),s(!0)},className:`flex w-full flex-col items-center justify-center gap-2 rounded-xl border border-input border-dashed bg-card px-4 py-7 text-[0.875rem] text-ink-3 transition hover:border-ember hover:text-ink`,children:[(0,V.jsx)(S,{className:`size-6`}),N(`sign.open`)]}),(0,V.jsxs)(O,{open:a,onClose:()=>s(!1),title:e,wide:!0,children:[(0,V.jsx)(Fn,{strokes:c,onStrokes:l}),f?(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-rose`,children:f}):null,(0,V.jsxs)(`div`,{className:`mt-5 flex items-center justify-between gap-3`,children:[(0,V.jsxs)(M,{variant:`ghost`,disabled:!c.length||u,onClick:()=>l([]),children:[(0,V.jsx)(Ce,{className:`size-4`}),` `,N(`sign.clear`)]}),(0,V.jsx)(M,{busy:u,disabled:!c.length,onClick:()=>void h(),children:N(`sign.accept`)})]})]})]})}function Rn({runId:e,connectionId:t,connector:n,onCancel:r}){let[i,a]=(0,z.useState)({}),[s,c]=(0,z.useState)(!1),[l,u]=(0,z.useState)(null),d=async()=>{c(!0),u(null);try{await o.post(`/api/runs/${e}/connections/${t}/credentials/${n.id}`,{values:i})}catch(e){u(e.message)}finally{c(!1)}};return(0,V.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl bg-card p-4 ring-1 ring-input`,children:[(n.fields??[]).map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(C,{children:e.label}),(0,V.jsx)(j,{type:e.secret?`password`:`text`,autoComplete:`off`,value:i[e.key]??``,placeholder:e.placeholder,onChange:t=>a(n=>({...n,[e.key]:t.target.value})),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),d())}})]},e.key)),n.hint?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:n.hint}):null,l?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:l}):null,(0,V.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,V.jsx)(M,{variant:`ghost`,size:`sm`,onClick:r,children:N(`common.cancel`)}),(0,V.jsx)(M,{size:`sm`,busy:s,onClick:()=>void d(),children:N(`connect.go`)})]})]})}function zn({runId:e,connection:t}){let[n,r]=(0,z.useState)(null),[i,a]=(0,z.useState)(null),[s,c]=(0,z.useState)(null);if(!t)return null;if(t.account){let n=t.connectors.find(e=>e.id===t.account?.connector)?.name??``;return(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,V.jsx)(`div`,{className:`flex size-10 items-center justify-center rounded-full bg-moss-tint text-moss`,children:(0,V.jsx)(m,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`div`,{className:`truncate font-medium text-[0.9375rem]`,children:t.account.label}),(0,V.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:N(`connect.connected`,{name:n})})]}),(0,V.jsx)(k,{label:N(`connect.disconnect`),onClick:()=>void o.del(`/api/runs/${e}/connections/${t.id}`),children:(0,V.jsx)(_t,{className:`size-4`})})]})}let l=async n=>{if(c(null),a(null),B(`signIn`)){try{let{url:r}=await o.post(`/api/runs/${e}/connections/${t.id}/oauth/${n.id}`);await xt(`signIn`,{url:r})}catch(e){c(e.message)}return}let r=window.open(`about:blank`,`wizard-connect`,`width=540,height=700`);try{let{url:i}=await o.post(`/api/runs/${e}/connections/${t.id}/oauth/${n.id}`);r?r.location.replace(i):a(i)}catch(e){r?.close(),c(e.message)}},u=t.connectors.find(e=>e.id===n);return t.connectors.length?(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.connectors.map(e=>(0,V.jsxs)(`button`,{type:`button`,onClick:()=>e.auth===`oauth2`?void l(e):r(n===e.id?null:e.id),className:E(`inline-flex h-11 items-center gap-2 rounded-full px-4 font-medium text-[0.875rem] ring-1 transition`,n===e.id?`bg-ember-veil text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink hover:ring-ember`),children:[(0,V.jsx)(v,{className:`size-4`}),` `,e.name]},e.id))}),u?(0,V.jsx)(Rn,{runId:e,connectionId:t.id,connector:u,onCancel:()=>r(null)}):null,i?(0,V.jsx)(`a`,{href:i,target:`_blank`,rel:`noreferrer`,className:`text-[0.875rem] text-ember underline`,children:N(`connect.openLink`)}):null,s?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:s}):null]}):(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:N(`connect.none`)})}function Bn(e){return e==null?``:Array.isArray(e)?e.join(`, `):String(e)}function Vn(e,t){if(t.trim()===``)return null;if(e.type===`number`){let e=Number(t.replace(/\s/g,``).replace(`,`,`.`));return Number.isFinite(e)?e:t}return e.type===`boolean`?t===`true`:t}function Hn({column:e,value:t,boxed:n,onCommit:r}){let[i,a]=(0,z.useState)(Bn(t));(0,z.useEffect)(()=>a(Bn(t)),[t]);let o=E(`w-full min-w-0 rounded-md border border-transparent px-2 text-[0.8125rem] outline-none focus:border-ember focus:bg-card`,n?`h-11 bg-paper-2`:`h-9 bg-transparent hover:bg-paper-2 coarse:h-11`);return e.type===`boolean`?(0,V.jsx)(`label`,{className:`flex size-9 cursor-pointer items-center justify-center coarse:size-11`,children:(0,V.jsx)(`input`,{type:`checkbox`,"aria-label":e.name,checked:t===!0,onChange:e=>r(e.target.checked),className:`size-4 accent-[var(--ember)] coarse:size-6`})}):e.type===`select`&&!e.format.multiple&&!e.format.allowCustom?(0,V.jsxs)(`select`,{value:i,onChange:e=>r(e.target.value||null),className:o,children:[(0,V.jsx)(`option`,{value:``}),e.format.options.map(e=>(0,V.jsx)(`option`,{value:e.id,children:e.label},e.id))]}):(0,V.jsx)(`input`,{"aria-label":e.name,type:e.type===`date`&&e.format.kind===`date`?`date`:`text`,inputMode:e.type===`number`?`decimal`:void 0,enterKeyHint:`done`,autoComplete:`off`,value:i,onChange:e=>a(e.target.value),onBlur:()=>{i!==Bn(t)&&r(Vn(e,i))},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),e.target.blur())},className:E(o,e.type===`number`&&`text-right tabular-nums`)})}function Un({runId:e,list:t,editable:n}){let{def:r,rows:i}=t,[a,s]=(0,z.useState)(null),[l,u]=(0,z.useState)({}),d=`/api/runs/${e}/lists/${r.id}/rows`,f=async e=>{s(null);try{await e()}catch(e){s(e instanceof c?e.message:String(e))}},p=()=>f(async()=>{await o.post(d,{cells:l}),u({})}),m=Object.values(l).some(e=>e!=null&&e!==``);if(!i.length&&!n)return(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:N(`list.empty`)});let h=(e,t)=>t===0||e.type===`text`&&e.format?.style===`multiline`,_=(e,t,n)=>void f(()=>o.patch(`${d}/${e}`,{cells:{[t]:n}}));return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`flex flex-col gap-2 sm:hidden`,children:[i.map(e=>(0,V.jsxs)(`div`,{className:`rounded-lg bg-paper p-2 ring-1 ring-border-soft`,children:[(0,V.jsx)(`div`,{className:`grid grid-cols-2 gap-x-2 gap-y-1.5`,children:r.columns.map((t,r)=>(0,V.jsxs)(`div`,{className:E(`min-w-0`,h(t,r)&&`col-span-2`),children:[(0,V.jsx)(`div`,{className:`px-1 pb-0.5 text-[0.6875rem] text-ink-3`,children:t.name}),n?(0,V.jsx)(Hn,{boxed:!0,column:t,value:e.cells[t.id],onCommit:n=>_(e.id,t.id,n)}):(0,V.jsx)(`div`,{className:E(`break-words px-1 text-[0.875rem]`,t.type===`number`&&`tabular-nums`),children:sn(t,e.cells[t.id],ae)||`—`})]},t.id))}),n?(0,V.jsx)(`div`,{className:`mt-1 flex justify-end`,children:(0,V.jsx)(k,{label:N(`list.delete`),onClick:()=>void f(()=>o.del(`${d}/${e.id}`)),children:(0,V.jsx)(y,{className:`size-4`})})}):null]},e.id)),n?(0,V.jsxs)(`div`,{className:`rounded-lg border border-input border-dashed p-2`,children:[(0,V.jsx)(`div`,{className:`grid grid-cols-2 gap-x-2 gap-y-1.5`,children:r.columns.map((e,t)=>(0,V.jsxs)(`div`,{className:E(`min-w-0`,h(e,t)&&`col-span-2`),children:[(0,V.jsx)(`div`,{className:`px-1 pb-0.5 text-[0.6875rem] text-ink-3`,children:e.name}),(0,V.jsx)(Hn,{boxed:!0,column:e,value:l[e.id],onCommit:t=>u(n=>({...n,[e.id]:t}))})]},e.id))}),(0,V.jsx)(`div`,{className:`mt-2 flex justify-end`,children:(0,V.jsxs)(M,{variant:`secondary`,size:`sm`,onClick:()=>m?void p():void 0,children:[(0,V.jsx)(g,{className:`size-4`}),` `,N(`run.addRow`)]})})]}):null]}),(0,V.jsx)(`div`,{className:`hidden overflow-x-auto rounded-lg ring-1 ring-border-soft sm:block`,children:(0,V.jsxs)(`table`,{className:`w-full text-[0.8125rem]`,children:[(0,V.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,V.jsxs)(`tr`,{children:[r.columns.map(e=>(0,V.jsx)(`th`,{className:`whitespace-nowrap px-3 py-2 text-left font-medium`,children:e.name},e.id)),n?(0,V.jsx)(`th`,{className:`w-10`}):null]})}),(0,V.jsxs)(`tbody`,{children:[i.map(e=>(0,V.jsxs)(`tr`,{className:`border-border-soft border-t align-top`,children:[r.columns.map(t=>(0,V.jsx)(`td`,{className:E(`min-w-[7.5rem]`,n?`px-1 py-0.5`:`px-3 py-2`),children:n?(0,V.jsx)(Hn,{column:t,value:e.cells[t.id],onCommit:n=>_(e.id,t.id,n)}):(0,V.jsx)(`span`,{className:E(t.type===`number`&&`tabular-nums`),children:sn(t,e.cells[t.id],ae)})},t.id)),n?(0,V.jsx)(`td`,{className:`px-1 py-0.5`,children:(0,V.jsx)(k,{label:N(`list.delete`),className:`size-9`,onClick:()=>void f(()=>o.del(`${d}/${e.id}`)),children:(0,V.jsx)(y,{className:`size-3.5`})})}):null]},e.id)),n?(0,V.jsxs)(`tr`,{className:`border-border-soft border-t bg-paper`,children:[r.columns.map(e=>(0,V.jsx)(`td`,{className:`px-1 py-0.5`,children:(0,V.jsx)(Hn,{column:e,value:l[e.id],onCommit:t=>u(n=>({...n,[e.id]:t}))})},e.id)),(0,V.jsx)(`td`,{className:`px-1 py-0.5`,children:(0,V.jsx)(k,{label:N(`run.addRow`),className:`size-9`,onClick:()=>m?void p():void 0,children:(0,V.jsx)(g,{className:`size-4`})})})]}):null]})]})}),a?(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-rose`,children:a}):null]})}function Wn(e,t,n){let r=t.split(`/`).map(encodeURIComponent).join(`/`);return i(`/api/runs/${e}/store/files/${r}${n?`?inline=1`:``}`)}var Gn=[`bg-paper-3 text-ink-3`,`bg-moss-tint text-moss`,`bg-rose-tint text-rose`,`bg-ember-tint text-ember-strong`];function Kn({runId:e,list:t}){let{def:n,rows:r}=t,i=n.columns.find(e=>e.id===n.check?.file),a=n.columns.find(e=>e.id===n.check?.status),s=a?.type===`select`?a.format.options:[],l=s[0]?.id,u=e=>a?String(e.cells[a.id]??l??``):``,d=e=>!a||u(e)===l,[f,p]=(0,z.useState)(()=>(r.find(d)??r[0])?.id??null),[h,g]=(0,z.useState)(!1),[_,v]=(0,z.useState)(null),y=`/api/runs/${e}/lists/${n.id}/rows`,b=r.find(e=>e.id===f)??r[0],x=h?r.filter(e=>d(e)||e.id===b?.id):r,S=r.filter(e=>!d(e)).length,C=n.columns.filter(e=>e!==i&&e!==a),w=C.filter(e=>e.id!==n.key),T=w.find(e=>e.type===`text`)??w[0],D=w.filter(e=>e!==T),O=async(e,t)=>{v(null);try{await o.patch(`${y}/${e}`,{cells:t})}catch(e){v(e instanceof c?e.message:String(e))}},ee=e=>{let t=x.findIndex(e=>e.id===b?.id),n=x[Math.min(x.length-1,Math.max(0,t+e))];n&&p(n.id)},te=async e=>{if(!b||!a)return;let t=r.findIndex(e=>e.id===b.id),n=[...r.slice(t+1),...r.slice(0,t)].find(d);await O(b.id,{[a.id]:e}),n&&e!==l&&p(n.id)},ne=e=>{e.target.closest(`input, textarea, select`)||(e.key===`ArrowDown`||e.key===`ArrowUp`?(e.preventDefault(),ee(e.key===`ArrowDown`?1:-1)):/^[1-9]$/.test(e.key)&&s[Number(e.key)]&&(e.preventDefault(),te(s[Number(e.key)].id)))};if(!r.length)return(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:N(`list.empty`)});let k=i&&b?String(b.cells[i.id]??``).trim():``,A=k.split(`.`).pop()?.toLowerCase()??``,j=e=>Gn[Math.min(Math.max(0,s.findIndex(t=>t.id===u(e))),3)];return(0,V.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-[minmax(280px,360px)_minmax(0,1fr)]`,onKeyDown:ne,children:[(0,V.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,V.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,V.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3 tabular-nums`,children:N(`check.progress`,{done:S,total:r.length})}),a?(0,V.jsx)(`button`,{type:`button`,"aria-pressed":h,onClick:()=>g(e=>!e),className:E(`inline-flex h-8 items-center rounded-full px-3 text-[0.8125rem] ring-1 transition coarse:h-11`,h?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink`),children:N(`check.onlyOpen`)}):null]}),(0,V.jsx)(`ul`,{className:`flex max-h-[38vh] flex-col gap-1.5 overflow-y-auto p-0.5 pr-1 lg:max-h-[calc(100vh-15rem)]`,children:x.map(e=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`button`,{type:`button`,onClick:()=>p(e.id),"aria-current":e.id===b?.id,className:E(`flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left ring-1 transition`,e.id===b?.id?`bg-card shadow-soft ring-ember`:`bg-paper ring-border-soft hover:bg-card`),children:[(0,V.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`span`,{className:`block truncate font-medium text-[0.875rem]`,children:T&&sn(T,e.cells[T.id],ae)||`—`}),(0,V.jsx)(`span`,{className:`block truncate text-[0.75rem] text-ink-3 tabular-nums`,children:D.slice(0,2).map(t=>sn(t,e.cells[t.id],ae)).filter(Boolean).join(` · `)})]}),a?(0,V.jsx)(`span`,{className:E(`shrink-0 rounded-full px-2 py-0.5 font-medium text-[0.6875rem]`,j(e)),children:s.find(t=>t.id===u(e))?.label??u(e)}):null]})},e.id))})]}),b?(0,V.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[s.length>1?(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[s.slice(1).map((e,t)=>(0,V.jsxs)(M,{size:`md`,variant:u(b)===e.id?`primary`:`secondary`,onClick:()=>void te(e.id),children:[u(b)===e.id?(0,V.jsx)(m,{className:`size-4`}):null,e.label,(0,V.jsx)(`kbd`,{className:`ml-1 hidden rounded bg-black/10 px-1.5 text-[0.6875rem] lg:inline`,children:t+1})]},e.id)),u(b)===l?null:(0,V.jsx)(M,{size:`md`,variant:`ghost`,onClick:()=>void te(l??``),children:N(`check.reopen`)})]}):null,(0,V.jsx)(`div`,{className:`overflow-hidden rounded-lg bg-paper-2 ring-1 ring-border-soft`,children:k?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 border-border-soft border-b bg-card px-3 py-2 text-[0.8125rem]`,children:[(0,V.jsx)(oe,{className:`size-3.5 shrink-0 text-ink-3`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:k.split(`/`).pop()}),(0,V.jsx)(`a`,{href:Wn(e,k,A===`pdf`),target:`_blank`,rel:`noreferrer`,className:`shrink-0 text-ink-2 underline-offset-2 hover:text-ink hover:underline`,children:N(`run.openFull`)})]}),A===`pdf`?(0,V.jsx)(`iframe`,{title:k,src:`${Wn(e,k,!0)}#toolbar=0&navpanes=0&view=FitH`,className:`h-[46vh] w-full border-0 bg-white lg:h-[calc(100vh-27rem)] lg:min-h-[360px]`},k):[`png`,`jpg`,`jpeg`,`webp`].includes(A)?(0,V.jsx)(`div`,{className:`flex max-h-[46vh] justify-center overflow-auto bg-white lg:max-h-[calc(100vh-27rem)]`,children:(0,V.jsx)(`img`,{src:Wn(e,k,!0),alt:k,className:`max-w-full object-contain`},k)}):(0,V.jsx)(`p`,{className:`px-4 py-10 text-center text-[0.875rem] text-ink-3`,children:N(`check.noPreview`)})]}):(0,V.jsx)(`p`,{className:`px-4 py-14 text-center text-[0.875rem] text-ink-3`,children:N(`check.noFile`)})}),(0,V.jsx)(`div`,{className:`grid grid-cols-2 gap-x-3 gap-y-2 sm:grid-cols-3`,children:C.map(e=>(0,V.jsxs)(`div`,{className:E(`min-w-0`,e.type===`text`&&e.format?.style===`multiline`&&`col-span-full`),children:[(0,V.jsx)(`div`,{className:`px-1 pb-0.5 text-[0.6875rem] text-ink-3`,children:e.name}),(0,V.jsx)(Hn,{boxed:!0,column:e,value:b.cells[e.id],onCommit:t=>void O(b.id,{[e.id]:t})})]},e.id))}),_?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:_}):null]}):null]})}var qn={xlsx:`Excel`,csv:`CSV`,json:`JSON`,md:`Markdown`,zip:`ZIP`};function Jn({runId:e,list:t}){return(0,V.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.formats.map(n=>(0,V.jsx)(`a`,{href:i(`/api/runs/${e}/lists/${t.def.id}/download?format=${n}`),className:`inline-flex h-9 items-center rounded-full bg-paper-2 px-3.5 font-medium text-[0.8125rem] text-ink-2 transition hover:bg-paper-3 hover:text-ink coarse:h-11 coarse:px-4`,children:qn[n]??n},n))})}function Yn(e){return e>1e6?`${(e/1e6).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1e3))} KB`}function Xn({runId:e}){let[t,n]=(0,z.useState)(!1),[r,a]=(0,z.useState)(null),[s,c]=(0,z.useState)(!1);(0,z.useEffect)(()=>{t&&(c(!1),o.get(`/api/runs/${e}/store`).then(a))},[t,e]);let l=r&&!r.files.length&&!r.connections.length&&!r.keepsSignIns&&r.lists.every(e=>!e.rows);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>n(!0),className:`inline-flex items-center gap-1.5 text-[0.8125rem] text-ink-4 transition hover:text-ink-2 coarse:min-h-11`,children:[(0,V.jsx)(P,{className:`size-3.5`}),` `,N(`store.open`)]}),(0,V.jsx)(O,{open:t,onClose:()=>n(!1),title:N(`store.title`),wide:!0,children:r?(0,V.jsxs)(`div`,{className:`flex flex-col gap-5 text-[0.875rem]`,children:[(0,V.jsx)(`p`,{className:`text-ink-3`,children:N(`store.explain`)}),l?(0,V.jsx)(`p`,{className:`text-ink-2`,children:N(`store.empty`)}):null,r.lists.some(e=>e.rows)?(0,V.jsx)(`ul`,{className:`flex flex-col gap-1`,children:r.lists.filter(e=>e.rows).map(e=>(0,V.jsxs)(`li`,{className:`flex justify-between gap-3`,children:[(0,V.jsx)(`span`,{children:e.title}),(0,V.jsx)(`span`,{className:`text-ink-3 tabular-nums`,children:N(`store.rows`,{n:e.rows})})]},e.id))}):null,r.connections.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(v,{className:`size-4 text-ink-3`}),` `,e.account?.label]},e.id)),r.keepsSignIns?(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(m,{className:`size-4 text-ink-3`}),` `,N(`store.signIns`)]}):null,r.files.length?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`mb-1 text-ink-3`,children:N(`store.files`,{n:r.files.length,size:Yn(r.files.reduce((e,t)=>e+t.size,0))})}),(0,V.jsx)(`ul`,{className:`max-h-56 overflow-y-auto rounded-lg ring-1 ring-border-soft`,children:r.files.map(t=>(0,V.jsx)(`li`,{className:`border-border-soft border-b last:border-0`,children:(0,V.jsxs)(`a`,{href:i(`/api/runs/${e}/store/files/${t.path}`),className:`flex items-center gap-2 px-3 py-2 text-[0.8125rem] hover:bg-paper-2 coarse:min-h-11`,title:t.source??void 0,children:[(0,V.jsx)(oe,{className:`size-3.5 shrink-0 text-ink-3`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t.path}),(0,V.jsx)(`span`,{className:`text-ink-4 tabular-nums`,children:Yn(t.size)})]})},t.path))})]}):null,(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 pt-1`,children:[l?(0,V.jsx)(`span`,{}):s?(0,V.jsxs)(M,{variant:`secondary`,onClick:async()=>{await o.del(`/api/runs/${e}/store`),a(await o.get(`/api/runs/${e}/store`)),c(!1)},children:[(0,V.jsx)(y,{className:`size-4`}),` `,N(`store.confirmDelete`)]}):(0,V.jsxs)(M,{variant:`ghost`,onClick:()=>c(!0),children:[(0,V.jsx)(y,{className:`size-4`}),` `,N(`store.delete`)]}),(0,V.jsx)(M,{onClick:()=>n(!1),children:N(`common.close`)})]})]}):(0,V.jsx)(`div`,{className:`flex justify-center py-8 text-ink-4`,children:(0,V.jsx)(T,{})})})]})}var Zn=300;function Qn(){if(typeof MediaRecorder<`u`)return[`audio/webm;codecs=opus`,`audio/mp4`,`audio/webm`,`audio/ogg;codecs=opus`].find(e=>MediaRecorder.isTypeSupported(e))}function $n(e){return`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function er({value:e,runId:t,onChange:n,onBusy:r}){let i=de(e)?e:null,[a,s]=(0,z.useState)(null),[c,l]=(0,z.useState)(0),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(null),[m,h]=(0,z.useState)(!1),[g,_]=(0,z.useState)(null),v=(0,z.useRef)(null),y=(0,z.useRef)(null),x=Qn(),S=Nt&&!!x;(0,z.useEffect)(()=>()=>{v.current&&(v.current.recorder.onstop=null,v.current.stop())},[]),(0,z.useEffect)(()=>()=>{g&&URL.revokeObjectURL(g.url)},[g]);let C=async(e,i)=>{d(!0),r?.(!0),p(null);try{let r=await o.upload(`/api/runs/${t}/uploads`,e);_({asset:r.id,url:URL.createObjectURL(e)}),n({asset:r.id,...i===void 0?{}:{seconds:i}})}catch(e){p(e.message)}finally{d(!1),r?.(!1)}},w=async()=>{p(null),h(!1);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0}})}catch{h(!0);return}let t=[],n=new MediaRecorder(e,{mimeType:x,audioBitsPerSecond:48e3}),i=Date.now(),a=new AudioContext,o=a.createAnalyser();o.fftSize=256,a.createMediaStreamSource(e).connect(o);let c=new Uint8Array(o.fftSize),u=0,d=()=>{o.getByteTimeDomainData(c);let e=0;for(let t of c)e=Math.max(e,Math.abs(t-128));if(l(Math.min(1,e/64)),s((Date.now()-i)/1e3),(Date.now()-i)/1e3>=Zn){f();return}u=requestAnimationFrame(d)},f=()=>{cancelAnimationFrame(u),n.state!==`inactive`&&n.stop();for(let t of e.getTracks())t.stop();a.close().catch(()=>void 0),v.current=null,s(null),l(0)};n.ondataavailable=e=>e.data.size&&t.push(e.data),n.onstop=()=>{let e=(n.mimeType||x||`audio/webm`).split(`;`)[0],r=e===`audio/mp4`?`m4a`:e===`audio/ogg`?`ogg`:`webm`,a=Math.max(1,Math.round((Date.now()-i)/1e3));C(new File(t,`sprachnotiz-${un()}.${r}`,{type:e}),a)},v.current={recorder:n,stop:f},r?.(!0),n.start(1e3),u=requestAnimationFrame(d)},E=a!==null,D=(0,V.jsxs)(M,{variant:`secondary`,onClick:()=>y.current?.click(),children:[(0,V.jsx)(Te,{className:`size-4`}),` `,N(`voice.pick`)]});return(0,V.jsxs)(`div`,{children:[E?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-ember`,children:[(0,V.jsxs)(`span`,{className:`relative flex size-11 shrink-0 items-center justify-center`,children:[(0,V.jsx)(`span`,{className:`absolute inset-0 rounded-full bg-rose-tint transition-transform duration-75`,style:{transform:`scale(${.7+c*.5})`}}),(0,V.jsx)(`span`,{className:`relative size-3.5 animate-pulse-dot rounded-full bg-rose`})]}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`div`,{className:`font-medium text-[0.9375rem] tabular-nums`,children:$n(a)}),(0,V.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:a>270?N(`voice.left`,{s:Math.ceil(Zn-a)}):N(`voice.recording`)})]}),(0,V.jsxs)(M,{onClick:()=>v.current?.stop(),children:[(0,V.jsx)(dt,{className:`size-3.5 fill-current`}),` `,N(`voice.stop`)]})]}):u?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-4 text-[0.875rem] text-ink-3 ring-1 ring-input`,children:[(0,V.jsx)(T,{className:`size-4`}),` `,N(`run.uploading`)]}):i?(0,V.jsxs)(`div`,{className:`rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,V.jsx)(`audio`,{controls:!0,preload:`metadata`,src:g?.asset===i.asset?g.url:`/api/runs/${t}/assets/${i.asset}`,className:`h-11 w-full`}),i.transcript?(0,V.jsx)(`p`,{className:`mt-2 whitespace-pre-wrap px-1 text-[0.875rem] text-ink-2 leading-relaxed`,children:i.transcript}):null,(0,V.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center justify-between gap-2`,children:[(0,V.jsx)(`span`,{className:`px-1 text-[0.8125rem] text-ink-3`,children:i.seconds?$n(i.seconds):null}),(0,V.jsxs)(`div`,{className:`flex gap-1`,children:[S?(0,V.jsxs)(M,{variant:`ghost`,size:`sm`,onClick:()=>void w(),children:[(0,V.jsx)(et,{className:`size-3.5`}),` `,N(`voice.again`)]}):null,(0,V.jsx)(M,{variant:`ghost`,size:`sm`,onClick:()=>n(void 0),children:N(`voice.remove`)})]})]})]}):(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[S?(0,V.jsxs)(M,{variant:`secondary`,size:`lg`,onClick:()=>void w(),className:`w-full sm:w-auto`,children:[(0,V.jsx)(b,{className:`size-4`}),` `,N(`voice.start`)]}):D,S&&m?D:null]}),m?(0,V.jsx)(`p`,{className:`mt-2 rounded-lg bg-amber-tint px-3 py-2 text-[0.8125rem] text-ink-2 leading-relaxed`,children:N(`voice.denied`)}):(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-ink-3 leading-relaxed`,children:N(S?`voice.why`:`voice.noRecorder`)})]}),(0,V.jsx)(`input`,{ref:y,type:`file`,hidden:!0,accept:`audio/*`,capture:!0,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&C(t,void 0)}}),f?(0,V.jsx)(`div`,{className:`mt-2 text-[0.8125rem] text-rose`,children:f}):null]})}function tr(e,t){try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}function nr({field:e,value:t,values:n,onChange:r}){let i=e.columns??[],a=Array.isArray(t)&&t.length?t:[{}],o=ue(e,a,n),s=(e,t,n)=>{r(a.map((r,i)=>i===e?{...r,[t]:n}:r))},c=i.map(e=>e.kind===`text`&&e===i[0]?`minmax(0,3fr)`:`minmax(0,1fr)`).join(` `);return(0,V.jsxs)(`div`,{className:`rounded-xl bg-card p-2 ring-1 ring-input`,children:[(0,V.jsx)(`div`,{className:`hidden gap-2 px-2 pt-1 pb-2 text-[0.75rem] text-ink-3 sm:grid`,style:{gridTemplateColumns:`${c} 36px`},children:i.map(e=>(0,V.jsx)(`div`,{className:e.kind===`text`?``:`text-right`,children:e.label},e.id))}),(0,V.jsx)(`div`,{className:`flex flex-col gap-2`,children:a.map((e,t)=>(0,V.jsxs)(`div`,{className:`grid grid-cols-6 gap-2 rounded-lg bg-paper p-2 sm:bg-transparent sm:p-0 sm:[grid-template-columns:var(--cols)]`,style:{"--cols":`${c} 36px`},children:[i.map((n,r)=>(0,V.jsxs)(`label`,{className:E(`flex min-w-0 flex-col gap-1 sm:col-span-1`,r===0?`col-span-5`:i.length-1<=2?`col-span-3`:`col-span-2`),children:[(0,V.jsx)(`span`,{className:`px-0.5 text-[0.6875rem] text-ink-3 sm:hidden`,children:n.label}),(0,V.jsx)(`input`,{"aria-label":n.label,placeholder:n.label,inputMode:n.kind===`text`?`text`:`decimal`,autoComplete:`off`,value:String(e[n.id]??``),onChange:e=>s(t,n.id,e.target.value),className:E(`h-11 w-full min-w-0 rounded-md border border-transparent bg-paper-2 px-2.5 text-[0.875rem] outline-none placeholder:text-transparent focus:border-focus focus:bg-card sm:placeholder:text-ink-4`,n.kind!==`text`&&`text-right tabular-nums`)})]},n.id)),(0,V.jsx)(k,{label:N(`list.delete`),onClick:()=>r(a.filter((e,n)=>n!==t)),className:`order-first col-start-6 row-start-1 size-11 justify-self-end self-end sm:order-none sm:col-start-auto sm:row-start-auto`,children:(0,V.jsx)(y,{className:`size-4`})})]},t))}),(0,V.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-end justify-between gap-3 px-2 pb-1`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>r([...a,{}]),className:`inline-flex h-9 items-center gap-1.5 rounded-full px-3 text-[0.8125rem] text-ink-2 hover:bg-accent coarse:h-11`,children:[(0,V.jsx)(g,{className:`size-4`}),` `,N(`run.addRow`)]}),(0,V.jsxs)(`div`,{className:`text-right text-[0.8125rem] tabular-nums`,children:[(0,V.jsxs)(`div`,{className:`text-ink-3`,children:[N(`run.net`),` `,tr(o.net,o.currency)]}),o.vatRate?(0,V.jsxs)(`div`,{className:`text-ink-3`,children:[N(`run.vat`,{r:o.vatRate}),` `,tr(o.vat,o.currency)]}):null,(0,V.jsxs)(`div`,{className:`font-semibold text-[0.9375rem] text-ink`,children:[N(`run.total`),` `,tr(o.gross,o.currency)]})]})]})]})}function rr(e){return!!e?.closest(`input, textarea, [contenteditable='true']`)}function ir({field:e,value:t,runId:n,onChange:r,onBusy:a}){let s=(0,z.useRef)(null),c=(0,z.useRef)(null),l=(0,z.useRef)(null),u=(0,z.useRef)(null),[d,f]=(0,z.useState)(!1),[p,m]=(0,z.useState)({}),[h,g]=(0,z.useState)(null),[_,v]=(0,z.useState)(!1),[y,b]=(0,z.useState)(!1),[S,C]=(0,z.useState)(null),w=(0,z.useRef)(null),T=e=>{w.current=e,C(e)},D=e.kind===`image`,O=!!e.multiple,ee=O?e.max??30:1,te=D||!!e.camera||!!e.video,ne=!D&&!!e.video,A=Array.isArray(t)?t:typeof t==`string`&&t?[t]:[],j=(0,z.useRef)(A);j.current=A;let M=A.length<ee,re=async e=>{let t=(D?e.filter(e=>e.type.startsWith(`image/`)):e).sort((e,t)=>e.name.localeCompare(t.name,void 0,{numeric:!0}));if(!t.length)return;let i=ee-(O?j.current.length:0);f(!0),a?.(!0),g(t.length>i&&O?N(`run.maxFiles`,{n:ee}):null);try{for(let e of t.slice(0,Math.max(0,i))){let t=await ln(e),i=await o.upload(`/api/runs/${n}/uploads`,t);m(e=>({...e,[i.id]:{name:i.name,mime:i.mime}}));let a=O?[...j.current,i.id]:i.id;j.current=O?a:[i.id],r(a)}}catch(e){g(e.message)}finally{f(!1),a?.(!1)}},ie=(0,z.useRef)(re);ie.current=re;let ae=e=>{let t=A.filter(t=>t!==e);r(O?t:void 0)},P=(e,t)=>{let n=j.current.indexOf(e),i=Math.min(j.current.length-1,Math.max(0,t));if(n<0||n===i)return;let a=j.current.filter(t=>t!==e);a.splice(i,0,e),j.current=a,r(a)},oe=O&&A.length>1;(0,z.useEffect)(()=>{if(!M)return;let e=e=>{let t=Array.from(e.clipboardData?.files??[]),n=s.current;if(!t.length||!n||rr(document.activeElement))return;let r=document.querySelectorAll(`[data-upload-field]`);(n.matches(`:hover`)||n.contains(document.activeElement)||r.length===1)&&(e.preventDefault(),ie.current(t))};return document.addEventListener(`paste`,e),()=>document.removeEventListener(`paste`,e)},[M]);let ce=E(`flex flex-col items-center justify-center gap-2 rounded-xl border border-input border-dashed bg-card px-3 text-[0.875rem] text-ink-3 transition hover:border-ember hover:text-ink`,A.length?`py-4`:`py-8`);return(0,V.jsxs)(`div`,{ref:s,"data-upload-field":``,onDragOver:e=>{M&&(e.preventDefault(),b(!0))},onDragLeave:()=>b(!1),onDrop:e=>{b(!1),M&&(e.preventDefault(),re(Array.from(e.dataTransfer.files)))},children:[A.length?(0,V.jsx)(`div`,{className:`mb-2 flex flex-col gap-2`,children:A.map((e,t)=>{let r=p[e],a=r?.mime??(D?`image/`:``);return(0,V.jsxs)(`div`,{"data-file-id":e,className:E(`flex items-center gap-3 rounded-xl bg-card p-2 ring-1 ring-input transition-shadow`,S===e&&`relative z-10 shadow-elevated ring-2 ring-ember`),children:[oe?(0,V.jsxs)(`button`,{type:`button`,"aria-label":N(`run.moveFile`,{n:t+1}),title:N(`run.moveFileHint`),className:E(`-mr-1 flex h-14 w-9 shrink-0 touch-none flex-col items-center justify-center gap-0.5 rounded-lg text-ink-3 hover:bg-paper-2 hover:text-ink`,S===e?`cursor-grabbing`:`cursor-grab`),onPointerDown:t=>{try{t.currentTarget.setPointerCapture(t.pointerId)}catch{}T(e)},onPointerMove:t=>{if(w.current!==e)return;let n=document.elementFromPoint(t.clientX,t.clientY)?.closest(`[data-file-id]`),r=n?.getAttribute(`data-file-id`);r&&r!==e&&s.current?.contains(n??null)&&P(e,j.current.indexOf(r))},onPointerUp:()=>T(null),onPointerCancel:()=>T(null),onKeyDown:n=>{(n.key===`ArrowUp`||n.key===`ArrowDown`)&&(n.preventDefault(),P(e,t+(n.key===`ArrowUp`?-1:1)))},children:[(0,V.jsx)(`span`,{className:`font-medium text-[0.75rem] tabular-nums`,children:t+1}),(0,V.jsx)(Ne,{className:`size-4`})]}):null,a.startsWith(`image/`)?(0,V.jsx)(`img`,{src:i(`/api/runs/${n}/assets/${e}`),alt:``,className:`size-14 rounded-lg object-cover`}):(0,V.jsx)(`div`,{className:`flex size-12 shrink-0 items-center justify-center rounded-lg bg-paper-2`,children:a.startsWith(`video/`)?(0,V.jsx)(De,{className:`size-5 text-ink-3`}):(0,V.jsx)(L,{className:`size-5 text-ink-3`})}),(0,V.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-[0.875rem]`,children:r?.name??`✓`}),(0,V.jsx)(k,{label:N(`run.removeFile`),onClick:()=>ae(e),children:(0,V.jsx)(se,{className:`size-4`})})]},e)})}):null,M?(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>c.current?.click(),className:E(ce,`min-w-[9rem] flex-1 px-4`,y&&`border-ember text-ink`),children:[D?(0,V.jsx)(Fe,{className:`size-6`}):(0,V.jsx)(L,{className:`size-6`}),d?N(`run.uploading`):A.length?N(`run.uploadMore`):N(Mt?`run.uploadTouch`:`run.upload`)]}),te?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>Nt?v(!0):l.current?.click(),className:E(ce,`w-28`),children:[(0,V.jsx)(ye,{className:`size-6`}),N(`run.camera`)]}):null,ne&&!(Nt&&bn)?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>u.current?.click(),className:E(ce,`w-28`),children:[(0,V.jsx)(x,{className:`size-6`}),N(`camera.video`)]}):null]}):null,(0,V.jsx)(`input`,{ref:c,type:`file`,hidden:!0,multiple:O,accept:D?`image/*`:void 0,onChange:e=>{re(Array.from(e.target.files??[])),e.target.value=``}}),(0,V.jsx)(`input`,{ref:l,type:`file`,hidden:!0,accept:`image/*`,capture:`environment`,onChange:e=>{re(Array.from(e.target.files??[])),e.target.value=``}}),ne?(0,V.jsx)(`input`,{ref:u,type:`file`,hidden:!0,accept:`video/*`,capture:`environment`,onChange:e=>{re(Array.from(e.target.files??[])),e.target.value=``}}):null,(0,V.jsx)(xn,{open:_,multiple:O,video:ne,onClose:()=>v(!1),onCapture:e=>re([e]),onNative:()=>l.current?.click()}),O&&(e.min||e.max)?(0,V.jsx)(`div`,{className:`mt-2 text-[0.8125rem] text-ink-3 tabular-nums`,children:e.min&&A.length<e.min?N(`run.filesMin`,{n:A.length,min:e.min}):e.max?N(`run.filesOf`,{n:A.length,max:e.max}):null}):null,h?(0,V.jsx)(`div`,{className:`mt-2 text-[0.8125rem] text-rose`,children:h}):null]})}function ar(e){let t=`${e.id} ${e.label}`.toLowerCase();return/telefon|phone|handy|mobil(?!it)|\btel\b|rückruf/.test(t)?{type:`tel`,inputMode:`tel`,autoComplete:`tel`}:/\bplz\b|postleitzahl|postal|zip/.test(t)?{inputMode:`numeric`,autoComplete:`postal-code`}:/iban/.test(t)?{autoCapitalize:`characters`,autoCorrect:`off`,spellCheck:!1}:/vorname|first.?name/.test(t)?{autoComplete:`given-name`,autoCapitalize:`words`}:/nachname|last.?name|surname/.test(t)?{autoComplete:`family-name`,autoCapitalize:`words`}:/firma|unternehmen|company|organi[sz]ation/.test(t)?{autoComplete:`organization`,autoCapitalize:`words`}:/straße|strasse|street|anschrift|adresse|address/.test(t)?{autoComplete:`street-address`,autoCapitalize:`words`}:/\b(ort|stadt|city|town)\b/.test(t)?{autoComplete:`address-level2`,autoCapitalize:`words`}:/\bname\b|ansprechp/.test(t)?{autoComplete:`name`,autoCapitalize:`words`}:{autoCapitalize:`sentences`}}function or({field:e,value:t,onChange:n}){let[r,i]=(0,z.useState)(!1);return(0,V.jsxs)(`div`,{className:`flex gap-2`,children:[(0,V.jsx)(j,{value:t,placeholder:e.placeholder,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,onChange:e=>n(e.target.value)}),(0,V.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),className:`inline-flex h-11 shrink-0 items-center gap-2 rounded-lg border border-input bg-card px-3.5 font-medium text-[0.875rem] text-ink-2 transition hover:border-ember hover:text-ink`,children:[(0,V.jsx)(nt,{className:`size-4`}),` `,N(`scan.button`)]}),(0,V.jsx)(An,{open:r,onClose:()=>i(!1),onResult:n})]})}function sr({field:e,value:t,values:n,runId:r,view:i,onChange:a,onBusy:o,error:s,closed:c}){let l=t==null?``:String(t),u=new Set(c?.values.map(String)),d;switch(e.kind){case`textarea`:d=(0,V.jsx)(D,{value:l,placeholder:e.placeholder,autoCapitalize:`sentences`,enterKeyHint:`enter`,onChange:e=>a(e.target.value)});break;case`number`:d=(0,V.jsx)(j,{inputMode:`decimal`,autoComplete:`off`,value:l,placeholder:e.placeholder,onChange:e=>a(e.target.value)});break;case`select`:{let t=e.options??[];d=t.length<=5&&t.every(e=>e.length<=28)?(0,V.jsx)(re,{value:l,options:t,onChange:a,disabled:[...u]}):(0,V.jsx)(w,{value:l,placeholder:`—`,onChange:a,options:t.map(e=>({value:e,label:e,disabled:u.has(e)}))});break}case`multiselect`:d=(0,V.jsx)(re,{multi:!0,value:Array.isArray(t)?t:[],options:e.options??[],onChange:a});break;case`date`:d=(0,V.jsx)(j,{type:`date`,value:l,onChange:e=>a(e.target.value),className:`w-full sm:w-56`});break;case`email`:d=(0,V.jsx)(j,{type:`email`,inputMode:`email`,autoComplete:`email`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,value:l,placeholder:e.placeholder,onChange:e=>a(e.target.value)});break;case`url`:d=(0,V.jsx)(j,{type:`url`,inputMode:`url`,autoComplete:`url`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,value:l,placeholder:e.placeholder??`https://`,onChange:e=>a(e.target.value)});break;case`toggle`:d=(0,V.jsx)(te,{checked:t===!0,onChange:a,label:e.label,disabled:u.has(String(t!==!0))});break;case`color`:d=(0,V.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,V.jsx)(A,{value:l||`#e0531b`,onChange:e=>a(e.target.value)}),(0,V.jsx)(j,{value:l,placeholder:`#e0531b`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,onChange:e=>a(e.target.value),className:`w-36`})]});break;case`image`:case`file`:d=(0,V.jsx)(ir,{field:e,value:t,runId:r,onChange:a,onBusy:o});break;case`items`:d=(0,V.jsx)(nr,{field:e,value:t,values:n,onChange:a});break;case`connection`:d=(0,V.jsx)(zn,{runId:r,connection:i?.connections.find(t=>t.id===e.connection)});break;case`list`:{let t=i?.lists.find(t=>t.def.id===e.list);d=t?(0,V.jsx)(Un,{runId:r,list:t,editable:!0}):null;break}case`location`:d=(0,V.jsx)(En,{value:t,runId:r,placeholder:e.placeholder,onChange:a,onBusy:o});break;case`audio`:d=c?null:(0,V.jsx)(er,{value:t,runId:r,onChange:a,onBusy:o});break;case`signature`:d=(0,V.jsx)(Ln,{label:e.label,value:t,runId:r,onChange:a});break;default:d=e.scan?(0,V.jsx)(or,{field:e,value:l,onChange:a}):(0,V.jsx)(j,{...ar(e),value:l,placeholder:e.placeholder,onChange:e=>a(e.target.value)})}return(0,V.jsxs)(`div`,{children:[e.kind===`toggle`?(0,V.jsxs)(`div`,{className:`flex items-start justify-between gap-6`,children:[(0,V.jsx)(C,{hint:e.help,children:e.label}),d]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(C,{hint:e.help,required:e.required,children:e.label}),d]}),c?(0,V.jsx)(`div`,{className:`mt-1.5 text-[0.8125rem] text-ink-3`,children:N(`run.closed`,{list:c.classes.map(e=>N(`run.cls.${cr[e]}`)).join(`, `)})}):null,s?(0,V.jsx)(`div`,{className:`mt-1.5 text-[0.8125rem] text-rose`,children:s}):null]})}var cr={classifier:`text`,standard:`text`,high:`text`,highest:`text`,image:`image`,video:`video`,speech:`speech`,audio:`audio`};function lr(e,t){this.v=e,this.k=t}function ur(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function dr(e){if(Array.isArray(e))return e}function fr(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function pr(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
|
+
import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{a as r,c as i,d as a,n as o,s,t as c}from"./api-rJBQEu1G.js";import{t as l}from"./preload-helper-CNEI7N0N.js";import{t as u}from"./createLucideIcon-q3MZMmnf.js";import{n as d,t as f}from"./refresh-cw-BNtHis1x.js";import{t as p}from"./arrow-right-6FyN3e7D.js";import{t as m}from"./check-CUpby_J9.js";import{n as h,t as g}from"./plus-Du-Jx8aI.js";import{t as _}from"./external-link-MAL7vJYj.js";import{n as v,t as y}from"./trash-0IafyhZB.js";import{n as b,t as x}from"./video-9fDPRPCv.js";import{t as S}from"./pen-line-NK46C_nG.js";import{c as C,d as w,f as T,g as E,h as D,i as O,l as ee,m as te,n as ne,o as k,p as A,s as j,t as M,u as re,v as ie,x as N,y as ae}from"./ui-DJOZSSKo.js";import{B as P,R as oe,j as se,z as ce}from"./index-CoTWrikR.js";import{d as le,f as ue,u as de}from"./definition-BznNdlhf.js";var fe={name:`arrow-down`,size:24,node:[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]};fe.node;var pe=u(fe),me={name:`arrow-up`,size:24,node:[[`path`,{d:`m5 12 7-7 7 7`,key:`hav0vg`}],[`path`,{d:`M12 19V5`,key:`x0mq9r`}]]};me.node;var F=u(me),he={name:`bell-ring`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]]};he.node;var I=u(he),ge={name:`bell`,size:24,node:[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]};ge.node;var _e=u(ge),ve={name:`camera`,size:24,node:[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]};ve.node;var ye=u(ve),be={name:`corner-down-left`,size:24,node:[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]};be.node;var xe=u(be),Se={name:`eraser`,size:24,node:[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]};Se.node;var Ce=u(Se),we={name:`file-headphone`,size:24,node:[[`path`,{d:`M4 6.835V4a2 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 8v12a2 2 0 0 1-2 2h-.343`,key:`1vfytu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M2 19a2 2 0 0 1 4 0v1a2 2 0 0 1-4 0v-4a6 6 0 0 1 12 0v4a2 2 0 0 1-4 0v-1a2 2 0 0 1 4 0`,key:`1etmh7`}]],aliases:[`file-audio`,`file-audio-2`]};we.node;var Te=u(we),Ee={name:`film`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]};Ee.node;var De=u(Ee),Oe={name:`flashlight-off`,size:24,node:[[`path`,{d:`M11.652 6H18`,key:`voqkpr`}],[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M16 16v4a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V6`,key:`dzyf92`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M7.649 2H17a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8a4 4 0 0 0-.55 1.007`,key:`1hvcfn`}]]};Oe.node;var ke=u(Oe),Ae={name:`flashlight`,size:24,node:[[`path`,{d:`M12 13v1`,key:`176q98`}],[`path`,{d:`M17 2a1 1 0 0 1 1 1v4a3 3 0 0 1-.6 1.8l-.6.8A4 4 0 0 0 16 12v8a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2v-8a4 4 0 0 0-.8-2.4l-.6-.8A3 3 0 0 1 6 7V3a1 1 0 0 1 1-1z`,key:`17vh7j`}],[`path`,{d:`M6 6h12`,key:`n6hhss`}]]};Ae.node;var je=u(Ae),Me={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};Me.node;var Ne=u(Me),Pe={name:`image-plus`,size:24,node:[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Pe.node;var Fe=u(Pe),Ie={name:`image-up`,size:24,node:[[`path`,{d:`M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21`,key:`9csbqa`}],[`path`,{d:`m14 19.5 3-3 3 3`,key:`9vmjn0`}],[`path`,{d:`M17 22v-5.5`,key:`1aa6fl`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]};Ie.node;var Le=u(Ie),Re={name:`locate-fixed`,size:24,node:[[`line`,{x1:`2`,x2:`5`,y1:`12`,y2:`12`,key:`bvdh0s`}],[`line`,{x1:`19`,x2:`22`,y1:`12`,y2:`12`,key:`1tbv5k`}],[`line`,{x1:`12`,x2:`12`,y1:`2`,y2:`5`,key:`11lu5j`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}],[`circle`,{cx:`12`,cy:`12`,r:`7`,key:`fim9np`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]};Re.node;var ze=u(Re),Be={name:`lock-keyhole`,size:24,node:[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]};Be.node;var Ve=u(Be),He={name:`mail`,size:24,node:[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`,key:`132q7q`}],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}]]};He.node;var Ue=u(He),We={name:`map-pin`,size:24,node:[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]};We.node;var Ge=u(We),Ke={name:`maximize-2`,size:24,node:[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]};Ke.node;var qe=u(Ke),Je={name:`paperclip`,size:24,node:[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]};Je.node;var L=u(Je),Ye={name:`pencil-line`,size:24,node:[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]};Ye.node;var Xe=u(Ye),Ze={name:`pencil`,size:24,node:[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]};Ze.node;var Qe=u(Ze),$e={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};$e.node;var et=u($e),tt={name:`scan-line`,size:24,node:[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`path`,{d:`M7 12h10`,key:`b7w52i`}]]};tt.node;var nt=u(tt),rt={name:`share-2`,size:24,node:[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]};rt.node;var it=u(rt),at={name:`share`,size:24,node:[[`path`,{d:`M12 2v13`,key:`1km8f5`}],[`path`,{d:`m16 6-4-4-4 4`,key:`13yo43`}],[`path`,{d:`M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8`,key:`1b2hhj`}]]};at.node;var R=u(at),ot={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};ot.node;var st=u(ot),ct={name:`sparkles`,size:24,node:[[`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`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]],aliases:[`stars`]};ct.node;var lt=u(ct),ut={name:`square`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]};ut.node;var dt=u(ut),ft={name:`switch-camera`,size:24,node:[[`path`,{d:`M11 19H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h5`,key:`mtk2lu`}],[`path`,{d:`M13 5h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5`,key:`120jsl`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`path`,{d:`m18 22-3-3 3-3`,key:`kgdoj7`}],[`path`,{d:`m6 2 3 3-3 3`,key:`1fnbkv`}]]};ft.node;var pt=u(ft),mt={name:`triangle-alert`,size:24,node:[[`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`}]],aliases:[`alert-triangle`]};mt.node;var ht=u(mt),gt={name:`unplug`,size:24,node:[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]};gt.node;var _t=u(gt),z=e(t(),1);function vt(){if(typeof window>`u`)return null;let e=window.engentyApp;return e&&typeof e.call==`function`&&Array.isArray(e.can)?e:null}var yt=vt(),bt=yt!==null||typeof window<`u`&&new URLSearchParams(window.location.search).get(`app`)===`1`;bt&&typeof document<`u`&&document.documentElement.classList.add(`in-app`);var B=e=>yt?.can.includes(e)===!0;function xt(e,t){return yt&&B(e)?yt.call(e,t):Promise.reject(Error(`the app cannot ${e}`))}function St(e,t){B(e)&&xt(e,t).catch(()=>void 0)}function Ct(e,t,n){return B(`download`)?(e.preventDefault(),xt(`download`,{url:new URL(t,window.location.href).href,filename:n}).catch(()=>void 0),!0):!1}var wt=e=>`engenty-wizards://w?url=${encodeURIComponent(e)}`,V=e(n(),1);function Tt(e,t){let n=encodeURIComponent(e),r=encodeURIComponent(t);return[{id:`mail`,label:N(`shareRun.email`),href:`mailto:?subject=${r}&body=${r}%0A%0A${n}`},{id:`x`,label:`X`,href:`https://x.com/intent/post?text=${r}&url=${n}`},{id:`linkedin`,label:`LinkedIn`,href:`https://www.linkedin.com/sharing/share-offsite/?url=${n}`},{id:`whatsapp`,label:`WhatsApp`,href:`https://wa.me/?text=${r}%20${n}`},{id:`facebook`,label:`Facebook`,href:`https://www.facebook.com/sharer/sharer.php?u=${n}`}]}var Et={x:`𝕏`,linkedin:`in`,whatsapp:`WA`,facebook:`f`};function Dt({runId:e,title:t,initial:n}){let[r,i]=(0,z.useState)(!1),[a,s]=(0,z.useState)(n),[c,l]=(0,z.useState)(!1),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(null),g=async()=>{if(i(!0),!a){l(!0),p(null);try{s(await o.post(`/api/runs/${e}/share`))}catch(e){p(e.message)}finally{l(!1)}}},_=async()=>{await o.del(`/api/runs/${e}/share`),s(null),i(!1)},y=()=>{a&&(navigator.clipboard.writeText(a.url),d(!0),setTimeout(()=>d(!1),1500))},b=B(`share`)||typeof navigator<`u`&&`share`in navigator,x=a?.expiresAt?new Intl.DateTimeFormat(ae,{dateStyle:`long`}).format(new Date(a.expiresAt)):null;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(M,{variant:`secondary`,onClick:()=>void g(),children:[(0,V.jsx)(it,{className:`size-4`}),` `,N(`shareRun.button`)]}),(0,V.jsx)(O,{open:r,onClose:()=>i(!1),title:N(`shareRun.title`),children:c?(0,V.jsx)(`div`,{className:`flex justify-center py-8 text-ink-4`,children:(0,V.jsx)(T,{})}):f?(0,V.jsx)(`p`,{className:`rounded-lg bg-rose-tint px-3 py-2 text-[0.875rem] text-rose`,children:f}):a?(0,V.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-paper-2 p-1.5 pl-3`,children:[(0,V.jsx)(v,{className:`size-4 shrink-0 text-ink-3`}),(0,V.jsx)(`input`,{readOnly:!0,value:a.url,onFocus:e=>e.target.select(),"aria-label":N(`share.link`),className:`min-w-0 flex-1 bg-transparent text-[0.875rem] outline-none coarse:h-11`}),(0,V.jsxs)(M,{size:`sm`,onClick:y,children:[u?(0,V.jsx)(m,{className:`size-3.5`}):(0,V.jsx)(h,{className:`size-3.5`}),N(u?`share.copied`:`share.copy`)]})]}),(0,V.jsxs)(`div`,{className:`grid grid-cols-3 gap-3 sm:grid-cols-6`,children:[Tt(a.url,t).map(e=>(0,V.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noreferrer`,className:`flex flex-col items-center gap-1.5 text-[0.75rem] text-ink-2 hover:text-ink`,children:[(0,V.jsx)(`span`,{className:`inline-flex size-12 items-center justify-center rounded-full bg-paper-2 font-semibold text-[0.9375rem] transition hover:bg-paper-3`,children:e.id===`mail`?(0,V.jsx)(Ue,{className:`size-5`}):Et[e.id]}),e.label]},e.id)),b?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>void(B(`share`)?xt(`share`,{link:a.url,title:t}):navigator.share({title:t,url:a.url})).catch(()=>void 0),className:`flex flex-col items-center gap-1.5 text-[0.75rem] text-ink-2 hover:text-ink`,children:[(0,V.jsx)(`span`,{className:`inline-flex size-12 items-center justify-center rounded-full bg-paper-2 transition hover:bg-paper-3`,children:(0,V.jsx)(it,{className:`size-5`})}),N(`shareRun.more`)]}):null]}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-[0.8125rem] text-ink-3`,children:[(0,V.jsx)(`span`,{children:x?N(`shareRun.until`,{date:x}):N(`shareRun.kept`)}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>void _(),className:`shrink-0 hover:text-rose coarse:min-h-11`,children:N(`shareRun.withdraw`)})]})]}):null})]})}function Ot({runId:e,ask:t}){return t.kind===`confirm`?(0,V.jsx)(kt,{runId:e,ask:t}):(0,V.jsx)(At,{runId:e,ask:t})}function kt({runId:e,ask:t}){let[n,r]=(0,z.useState)(!1),[i,a]=(0,z.useState)(!1),[s,c]=(0,z.useState)(null),l=async n=>{a(!0),c(null);try{await o.post(`/api/runs/${e}/ask/${t.id}`,n)}catch(e){c(e.message),a(!1)}},u=t.action.destructive?ht:Xe;return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,V.jsx)(`div`,{className:E(`flex size-10 shrink-0 items-center justify-center rounded-full`,t.action.destructive?`bg-rose-tint text-rose`:`bg-ember-tint text-ember-strong`),children:(0,V.jsx)(u,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:N(`ask.wants`,{service:t.service})}),(0,V.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason})]})]}),(0,V.jsx)(`pre`,{className:`max-h-72 overflow-auto whitespace-pre-wrap break-words rounded-xl bg-paper-2 p-4 text-[0.8125rem] leading-relaxed ring-1 ring-border-soft`,children:t.input}),(0,V.jsxs)(`div`,{className:`mt-5 flex items-center gap-4`,children:[(0,V.jsx)(te,{checked:n,onChange:r,label:N(`ask.allowRest`)}),(0,V.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:N(`ask.allowRest`)})]}),s?(0,V.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:s}):null,(0,V.jsxs)(`div`,{className:`action-bar mt-6 flex items-center justify-between gap-3`,children:[(0,V.jsx)(M,{variant:`ghost`,disabled:i,onClick:()=>void l({type:`skip`}),children:N(`ask.deny`)}),(0,V.jsx)(M,{busy:i,onClick:()=>void l({type:`done`,remember:n}),children:N(`ask.allow`)})]})]})}function At({runId:e,ask:t}){let[n,r]=(0,z.useState)({}),[a,s]=(0,z.useState)(!1),[c,l]=(0,z.useState)(!1),[u,d]=(0,z.useState)(null),[f,p]=(0,z.useState)(0),[m,h]=(0,z.useState)(``),[g,_]=(0,z.useState)(!1),v=(0,z.useRef)(null),y=(0,z.useCallback)(()=>p(e=>e+1),[]);(0,z.useEffect)(()=>{let e=setInterval(y,2500);return()=>clearInterval(e)},[y]);let b=async n=>{l(!0),d(null);try{await o.post(`/api/runs/${e}/ask/${t.id}`,n)}catch(e){d(e.message),l(!1)}},x=async t=>{d(null);try{await o.post(`/api/runs/${e}/browser/act`,t)}catch(e){d(e.message)}y()},S=e=>{let t=v.current;if(!t?.naturalWidth)return;let n=t.getBoundingClientRect();x({type:`click`,x:Math.round((e.clientX-n.left)/n.width*t.naturalWidth),y:Math.round((e.clientY-n.top)/n.height*t.naturalHeight)})},w=t.fields.some(e=>n[e.id]);return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsxs)(`div`,{className:`mb-5 flex items-start gap-3`,children:[(0,V.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-ember-tint text-ember-strong`,children:(0,V.jsx)(Ve,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-snug tracking-tight`,children:t.reason}),(0,V.jsxs)(`p`,{className:`mt-0.5 truncate text-[0.8125rem] text-ink-3`,children:[t.site.host,t.site.title?` · ${t.site.title}`:``]})]})]}),(0,V.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-paper-2 ring-1 ring-border-soft`,children:[(0,V.jsx)(`img`,{ref:v,src:i(`/api/runs/${e}/browser/screen?t=${f}`),alt:t.site.host,onClick:S,className:`block w-full cursor-pointer`}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 border-border-soft border-t bg-card p-2`,children:[(0,V.jsx)(j,{type:g?`password`:`text`,autoComplete:`off`,value:m,placeholder:N(`ask.typeInto`),onChange:e=>h(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),x({type:`type`,text:m}).then(()=>h(``)))},autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:`send`,className:`h-9 min-w-[9rem] flex-1 basis-full text-[0.8125rem] sm:basis-0 coarse:h-11`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>_(e=>!e),className:E(`h-9 shrink-0 rounded-md px-2.5 text-[0.75rem] coarse:h-11 coarse:px-3.5`,g?`bg-ember-veil text-ink`:`text-ink-3 hover:bg-paper-2`),children:N(`ask.hide`)}),(0,V.jsx)(jt,{label:`Enter`,onClick:()=>void x({type:`key`,key:`Enter`}),children:(0,V.jsx)(xe,{className:`size-4`})}),(0,V.jsx)(jt,{label:N(`ask.up`),onClick:()=>void x({type:`scroll`,dy:-500}),children:(0,V.jsx)(F,{className:`size-4`})}),(0,V.jsx)(jt,{label:N(`ask.down`),onClick:()=>void x({type:`scroll`,dy:500}),children:(0,V.jsx)(pe,{className:`size-4`})})]})]}),(0,V.jsx)(`p`,{className:`mt-2 text-[0.75rem] text-ink-4`,children:N(`ask.pictureHint`)}),t.fields.length?(0,V.jsxs)(`form`,{className:`mt-5 flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),b({type:`fill`,values:n,remember:a})},children:[t.fields.map((e,i)=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(C,{children:e.label}),(0,V.jsx)(j,{autoFocus:i===0,type:e.secret?`password`:`text`,autoComplete:`off`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,enterKeyHint:i===t.fields.length-1?`go`:`next`,value:n[e.id]??``,onChange:t=>r(n=>({...n,[e.id]:t.target.value}))})]},e.id)),(0,V.jsx)(`button`,{type:`submit`,hidden:!0})]}):null,(0,V.jsxs)(`div`,{className:`mt-5 flex items-center justify-between gap-4`,children:[(0,V.jsx)(te,{checked:a,onChange:s,label:N(`ask.remember`)}),(0,V.jsx)(`span`,{className:`flex-1 text-[0.8125rem] text-ink-2`,children:N(`ask.remember`)})]}),(0,V.jsxs)(`p`,{className:`mt-3 flex items-start gap-2 text-[0.8125rem] text-ink-3`,children:[(0,V.jsx)(st,{className:`mt-0.5 size-4 shrink-0 text-moss`}),` `,N(`ask.private`)]}),u?(0,V.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:u}):null,(0,V.jsxs)(`div`,{className:`action-bar mt-6 flex flex-wrap items-center justify-between gap-3`,children:[(0,V.jsx)(M,{variant:`ghost`,disabled:c,onClick:()=>void b({type:`skip`}),children:N(`ask.skip`)}),(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[t.fields.length?(0,V.jsx)(M,{variant:`secondary`,disabled:c,onClick:()=>void b({type:`done`,remember:a}),children:N(`ask.done`)}):null,t.fields.length?(0,V.jsx)(M,{busy:c,disabled:!w,onClick:()=>void b({type:`fill`,values:n,remember:a}),children:N(`ask.signIn`)}):(0,V.jsx)(M,{busy:c,onClick:()=>void b({type:`done`,remember:a}),children:N(`ask.done`)})]})]})]})}function jt({label:e,onClick:t,children:n}){return(0,V.jsx)(`button`,{type:`button`,"aria-label":e,title:e,onClick:t,className:`flex size-9 shrink-0 items-center justify-center rounded-md text-ink-3 hover:bg-paper-2 hover:text-ink coarse:size-11`,children:n})}var Mt=typeof window<`u`&&window.matchMedia?.(`(pointer: coarse)`).matches===!0,Nt=typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia;function Pt(){(0,z.useEffect)(()=>{let e=window.visualViewport;if(!e)return;let t=document.documentElement,n=()=>{let n=e.scale>1.01?0:window.innerHeight-e.height-e.offsetTop,r=n>80;t.style.setProperty(`--kb`,r?`${Math.round(n)}px`:`0px`),t.classList.toggle(`keyboard-open`,r)};return n(),e.addEventListener(`resize`,n),e.addEventListener(`scroll`,n),()=>{e.removeEventListener(`resize`,n),e.removeEventListener(`scroll`,n),t.style.removeProperty(`--kb`),t.classList.remove(`keyboard-open`)}},[])}function Ft(e){let[t,n]=(0,z.useState)(!1);return(0,z.useEffect)(()=>{if(e&&B(`keepAwake`))return St(`keepAwake`,!0),n(!0),()=>{St(`keepAwake`,!1),n(!1)};if(!e||!(`wakeLock`in navigator))return;let t=null,r=!1,i=async()=>{if(!(r||t||document.visibilityState!==`visible`))try{let e=await navigator.wakeLock.request(`screen`);if(r){e.release().catch(()=>void 0);return}t=e,n(!0),e.addEventListener(`release`,()=>{t===e&&(t=null,n(!1))})}catch{}};return i(),document.addEventListener(`visibilitychange`,i),()=>{r=!0,document.removeEventListener(`visibilitychange`,i),t?.release().catch(()=>void 0),t=null,n(!1)}},[e]),t}var It=`wz.notify`,Lt=new Set,Rt=null;function zt(){try{return localStorage.getItem(It)===`1`}catch{return!1}}function Bt(e){try{e?localStorage.setItem(It,`1`):localStorage.removeItem(It)}catch{}for(let e of Lt)e()}var Vt=typeof window<`u`&&`Notification`in window,Ht=null;function Ut(){return zt()?B(`notify`)?Ht===!1?`quiet`:`on`:Vt&&Notification.permission===`granted`?`on`:`quiet`:`off`}function Wt(){return(0,z.useSyncExternalStore)(e=>(Lt.add(e),()=>Lt.delete(e)),Ut,()=>`off`)}function Gt(){return B(`notify`)?Ht===!1:Vt&&Notification.permission===`denied`}async function Kt(){if(Bt(!0),B(`notify`)){Ht=!B(`notifyPermission`)||await xt(`notifyPermission`).catch(()=>!1);for(let e of Lt)e();return Ut()}try{Rt??=new AudioContext,Rt.resume()}catch{Rt=null}if(Vt&&Notification.permission==="default")try{await Notification.requestPermission()}catch{}Vt&&Notification.permission===`granted`&&await navigator.serviceWorker?.register(`${r}/sw.js`).catch(()=>void 0);for(let e of Lt)e();return Ut()}function qt(){Bt(!1)}function Jt(){let e=Rt;if(e?.state!==`running`)return;let t=e.currentTime;for(let[n,r]of[660,880].entries()){let i=e.createOscillator(),a=e.createGain();i.frequency.value=r,a.gain.setValueAtTime(0,t+n*.16),a.gain.linearRampToValueAtTime(.18,t+n*.16+.02),a.gain.exponentialRampToValueAtTime(.001,t+n*.16+.32),i.connect(a).connect(e.destination),i.start(t+n*.16),i.stop(t+n*.16+.34)}}async function Yt(e){if(!zt())return;if(B(`notify`)){St(`notify`,e);return}if(document.visibilityState===`visible`){Jt(),navigator.vibrate?.([120,60,120]);return}if(!Vt||Notification.permission!==`granted`)return;let t={body:e.body,tag:e.tag,icon:s(`icons/icon-192.png`),badge:s(`icons/icon-192.png`),data:{url:location.href}};try{let n=await navigator.serviceWorker?.getRegistration();if(n?.active){await n.showNotification(e.title,t);return}}catch{}try{new Notification(e.title,t)}catch{}}function Xt(){if(typeof navigator>`u`||!navigator.canShare)return!1;try{return navigator.canShare({files:[new File([`x`],`x.pdf`,{type:`application/pdf`})]})}catch{return!1}}var Zt=36e5,Qt=6e4,$t=1e3;function en(e){return e.fractionDigits===void 0?e.style===`integer`?0:2:e.fractionDigits}function tn(e,t,n=`en`){if(typeof e!=`number`||!Number.isFinite(e))return``;let r=en(t),i=t.grouping!==!1;return t.style===`percent`?new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,style:`percent`,useGrouping:i}).format(e):t.style===`currency`&&t.currency?new Intl.NumberFormat(n,{currency:t.currency,maximumFractionDigits:r,minimumFractionDigits:r,style:`currency`,useGrouping:i}).format(e):new Intl.NumberFormat(n,{maximumFractionDigits:r,minimumFractionDigits:r,useGrouping:i}).format(e)}function nn(e,t,n=`en`){if(typeof e!=`string`||e.length===0)return``;if(t.kind===`time`)return rn(e,t.timePrecision??`minutes`);if(t.dateStyle===`iso`)return t.kind===`date`?e.slice(0,10):e;let r=t.kind===`date`?new Date(`${e}T00:00:00`):new Date(e);if(Number.isNaN(r.getTime()))return e;let i=t.dateStyle??`medium`;if(t.kind===`date`)return new Intl.DateTimeFormat(n,{dateStyle:i}).format(r);let a=t.timePrecision??`minutes`;return new Intl.DateTimeFormat(n,{dateStyle:i,timeStyle:a===`hours`?`short`:`medium`}).format(r)}function rn(e,t){let[n=`0`,r=`00`,i=`00`]=e.split(`:`);return t===`hours`?`${n.padStart(2,`0`)}:00`:t===`minutes`?`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}`:`${n.padStart(2,`0`)}:${r.padStart(2,`0`)}:${i.padStart(2,`0`)}`}function an(e,t){if(typeof e!=`number`||!Number.isFinite(e))return``;let n=Math.max(0,Math.round(e));if(t.display===`iso`)return on(n);if(t.display===`minutes`)return`${Math.round(n/Qt)} min`;if(t.display===`hours`)return`${(n/Zt).toFixed(2)} h`;if(t.display===`decimal-hours`)return(n/Zt).toFixed(2);let r=Math.floor(n/Zt),i=Math.floor(n%Zt/Qt),a=Math.floor(n%Qt/$t);return`${r}:${String(i).padStart(2,`0`)}:${String(a).padStart(2,`0`)}`}function on(e){let t=Math.floor(e/Zt),n=Math.floor(e%Zt/Qt),r=Math.floor(e%Qt/$t);return`${t>=24?`P${Math.floor(t/24)}D`:`P`}T${t%24}H${n}M${r}S`}function sn(e,t,n=`en`){if(t==null)return``;switch(e.type){case`number`:return tn(t,e.format,n);case`date`:return nn(t,e.format,n);case`duration`:return an(t,e.format);case`boolean`:return t===!0?`true`:t===!1?`false`:``;case`select`:return cn(e,t);default:return String(t)}}function cn(e,t){let n=Array.isArray(t)?t:[t],r=e.format.options.reduce((e,t)=>(e[t.id]=t.label,e),{});return n.filter(e=>typeof e==`string`&&e.length>0).map(e=>r[e]??e).join(`, `)}async function ln(e,t=2400){if(!/^image\/(jpeg|png|webp)$/.test(e.type)||e.size<12e5)return e;try{let n=await createImageBitmap(e),r=Math.min(1,t/Math.max(n.width,n.height)),i=document.createElement(`canvas`);i.width=Math.round(n.width*r),i.height=Math.round(n.height*r),i.getContext(`2d`)?.drawImage(n,0,0,i.width,i.height);let a=await new Promise(e=>i.toBlob(e,`image/jpeg`,.86));return a&&a.size<e.size?new File([a],`${e.name.replace(/\.[^.]+$/,``)}.jpg`,{type:`image/jpeg`}):e}catch{return e}}function un(){return new Date().toISOString().slice(0,19).replace(/[:T]/g,`-`)}function dn(e){let t=e?.name;return t===`NotFoundError`||t===`OverconstrainedError`?`missing`:t===`NotReadableError`||t===`AbortError`?`busy`:`denied`}function fn(e){return!!e?.getCapabilities?.()?.torch}function pn(e,t,n=!1){let r=(0,z.useRef)(null),[i,a]=(0,z.useState)(null),[o,s]=(0,z.useState)(null),[c,l]=(0,z.useState)(1),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(!1);return(0,z.useEffect)(()=>{if(!e)return;let r=null,i=!1;s(null),a(null),d(!1),p(!1);let o={facingMode:{ideal:t},width:{ideal:2560},height:{ideal:1440}};return(async()=>{if(!navigator.mediaDevices?.getUserMedia)throw new DOMException(`no camera api`,`NotAllowedError`);try{r=await navigator.mediaDevices.getUserMedia({video:o,audio:n})}catch(e){if(!n)throw e;r=await navigator.mediaDevices.getUserMedia({video:o})}if(i){for(let e of r.getTracks())e.stop();return}a(r);let e=r.getVideoTracks()[0],t=()=>!i&&d(fn(e));t(),setTimeout(t,600);let s=await navigator.mediaDevices.enumerateDevices().catch(()=>[]);i||l(s.filter(e=>e.kind===`videoinput`).length)})().catch(e=>!i&&s(dn(e))),()=>{i=!0;for(let e of r?.getTracks()??[])e.stop()}},[e,t,n]),(0,z.useEffect)(()=>{r.current&&i&&(r.current.srcObject=i)},[i]),{video:r,stream:i,error:o,cameras:c,torchable:u,torch:f,setTorch:async e=>{let t=i?.getVideoTracks()[0];try{await t?.applyConstraints({advanced:[{torch:e}]}),p(e)}catch{d(!1)}},mirrored:i?.getVideoTracks()[0]?.getSettings().facingMode===`user`}}function mn({open:e,onClose:t,label:n,children:r}){let i=(0,z.useRef)(null);return(0,z.useEffect)(()=>{let t=i.current;t&&(e&&!t.open?t.showModal():!e&&t.open&&t.close())},[e]),(0,V.jsx)(`dialog`,{ref:i,onClose:t,"aria-label":n,className:`media-sheet`,children:e?(0,V.jsx)(`div`,{className:`flex h-full flex-col`,children:r}):null})}function hn({label:e,onClick:t,active:n,children:r}){return(0,V.jsx)(`button`,{type:`button`,"aria-label":e,title:e,"aria-pressed":n,onClick:t,className:E(`flex size-11 shrink-0 items-center justify-center rounded-full transition`,n?`bg-white text-black`:`bg-white/12 text-white hover:bg-white/20`),children:r})}function gn({title:e,onClose:t,camera:n,onFlip:r}){return(0,V.jsx)(`div`,{className:`safe-top`,children:(0,V.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,V.jsx)(hn,{label:N(`common.close`),onClick:t,children:(0,V.jsx)(se,{className:`size-5`})}),(0,V.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-center font-medium text-[0.9375rem]`,children:e}),n.torchable?(0,V.jsx)(hn,{label:N(`camera.torch`),active:n.torch,onClick:()=>void n.setTorch(!n.torch),children:n.torch?(0,V.jsx)(je,{className:`size-5`}):(0,V.jsx)(ke,{className:`size-5`})}):null,n.stream&&(n.cameras>1||Mt)?(0,V.jsx)(hn,{label:N(`camera.flip`),onClick:r,children:(0,V.jsx)(pt,{className:`size-5`})}):(0,V.jsx)(`span`,{className:`size-11`})]})})}function _n({camera:e,asking:t,children:n,actions:r}){return(0,V.jsxs)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:[(0,V.jsx)(`video`,{ref:e.video,autoPlay:!0,playsInline:!0,muted:!0,className:E(`absolute inset-0 size-full object-contain`,e.mirrored&&`-scale-x-100`)}),e.error?(0,V.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-5 bg-black px-8 text-center`,children:[(0,V.jsx)(`p`,{className:`max-w-sm text-[0.9375rem] text-white/85 leading-relaxed`,children:N(`camera.${e.error}`)}),r]}):e.stream?n:(0,V.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-4 px-8 text-center text-white/75`,children:[(0,V.jsx)(T,{}),(0,V.jsx)(`p`,{className:`max-w-xs text-[0.875rem] leading-relaxed`,children:t})]})]})}var vn=30;function yn(){if(typeof MediaRecorder<`u`)return[`video/mp4;codecs=avc1.42E01E,mp4a.40.2`,`video/mp4`,`video/webm;codecs=vp9,opus`,`video/webm;codecs=vp8,opus`,`video/webm`].find(e=>MediaRecorder.isTypeSupported(e))}var bn=!!yn();function xn({open:e,multiple:t,video:n,onClose:r,onCapture:i,onNative:a}){let[o,s]=(0,z.useState)(`environment`),[c,l]=(0,z.useState)(`photo`),[u,d]=(0,z.useState)(0),[f,p]=(0,z.useState)(!1),[h,g]=(0,z.useState)(null),_=(0,z.useRef)(null),v=pn(e,o,c===`video`);(0,z.useEffect)(()=>{e&&(d(0),l(`photo`),g(null))},[e]);let y=async e=>{p(!0);try{await i(e),d(e=>e+1),t||r()}finally{p(!1)}},b=async()=>{let e=v.video.current;if(!e?.videoWidth)return;let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight,t.getContext(`2d`)?.drawImage(e,0,0);let n=await new Promise(e=>t.toBlob(e,`image/jpeg`,.9));n&&await y(new File([n],`foto-${un()}.jpg`,{type:`image/jpeg`}))},S=()=>{_.current?.state===`recording`&&_.current.stop()},C=()=>{let e=yn();if(!v.stream||!e)return;let t=[],n=new MediaRecorder(v.stream,{mimeType:e,videoBitsPerSecond:25e5,audioBitsPerSecond:96e3});n.ondataavailable=e=>e.data.size&&t.push(e.data),n.onstop=()=>{g(null),_.current=null;let n=e.split(`;`)[0];if(t.length){let e=n===`video/mp4`?`mp4`:`webm`;y(new File(t,`video-${un()}.${e}`,{type:n}))}},_.current=n,n.start(1e3),g(0)};(0,z.useEffect)(()=>{if(h===null)return;if(h>=vn){_.current?.state===`recording`&&_.current.stop();return}let e=setTimeout(()=>g(e=>e===null?null:e+1),1e3);return()=>clearTimeout(e)},[h]),(0,z.useEffect)(()=>{!e&&_.current&&(_.current.onstop=null,_.current.stop(),_.current=null)},[e]);let w=e=>`0:${String(e).padStart(2,`0`)}`;return(0,V.jsxs)(mn,{open:e,onClose:r,label:N(`camera.title`),children:[(0,V.jsx)(gn,{title:h===null?u?N(`camera.taken`,{n:u}):N(`camera.title`):`${w(h)} / ${w(vn)}`,onClose:r,camera:v,onFlip:()=>s(e=>e===`environment`?`user`:`environment`)}),(0,V.jsx)(_n,{camera:v,asking:N(`camera.asking`),actions:(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[a?(0,V.jsxs)(Sn,{onClick:()=>{r(),a()},children:[(0,V.jsx)(ye,{className:`size-4`}),` `,N(Mt?`camera.native`:`camera.pick`)]}):null,(0,V.jsx)(Sn,{quiet:!0,onClick:r,children:N(`common.close`)})]})}),(0,V.jsxs)(`div`,{className:E(`safe-bottom px-4 pt-3`,v.error&&`invisible`),children:[n&&bn&&h===null?(0,V.jsx)(`div`,{className:`mb-3 flex justify-center gap-1 text-[0.8125rem]`,children:[`photo`,`video`].map(e=>(0,V.jsx)(`button`,{type:`button`,"aria-pressed":c===e,onClick:()=>l(e),className:E(`h-9 rounded-full px-4 font-medium transition`,c===e?`bg-white text-black`:`text-white/70 hover:text-white`),children:N(e===`photo`?`camera.photo`:`camera.video`)},e))}):null,(0,V.jsxs)(`div`,{className:`grid grid-cols-[1fr_auto_1fr] items-center gap-3`,children:[(0,V.jsx)(`span`,{className:`text-[0.8125rem] text-white/70 leading-snug`,children:h===null?c===`video`?N(`camera.clipHint`,{s:vn}):N(t?`camera.hintMany`:`camera.hint`):N(`camera.recording`)}),(0,V.jsx)(`button`,{type:`button`,"aria-label":N(c===`photo`?`camera.shoot`:h===null?`camera.record`:`camera.stop`),disabled:!v.stream||f,onClick:()=>c===`photo`?void b():h===null?C():S(),className:`flex size-[72px] items-center justify-center rounded-full border-4 border-white transition active:scale-95 disabled:opacity-40`,children:f?(0,V.jsx)(T,{className:`text-white`}):c===`photo`?(0,V.jsx)(`span`,{className:`size-[54px] rounded-full bg-white`}):h===null?(0,V.jsx)(`span`,{className:`flex size-[54px] items-center justify-center rounded-full bg-[#e5484d]`,children:(0,V.jsx)(x,{className:`size-6 text-white`})}):(0,V.jsx)(`span`,{className:`size-7 rounded-md bg-[#e5484d]`})}),(0,V.jsx)(`div`,{className:`flex justify-end`,children:t&&u&&h===null?(0,V.jsxs)(Sn,{onClick:r,children:[(0,V.jsx)(m,{className:`size-4`}),` `,N(`camera.done`)]}):null})]})]})]})}function Sn({onClick:e,quiet:t,children:n}){return(0,V.jsx)(`button`,{type:`button`,onClick:e,className:E(`inline-flex h-11 items-center justify-center gap-2 rounded-full px-5 font-medium text-[0.875rem] transition`,t?`text-white/75 hover:text-white`:`bg-white text-black hover:bg-white/90`),children:n})}var Cn=25,wn=9e3;function Tn(e){return e.code===e.PERMISSION_DENIED?`denied`:e.code===e.TIMEOUT?`timeout`:`unavailable`}function En({value:e,runId:t,placeholder:n,onChange:r,onBusy:i}){let a=le(e)?e:null,[s,c]=(0,z.useState)(!1),[l,u]=(0,z.useState)(null),d=(0,z.useRef)(null),f=(0,z.useRef)(!!a?.label),p=(0,z.useRef)(a);p.current=a;let m=a?.lat!==void 0&&a.lng!==void 0,h=typeof navigator<`u`&&`geolocation`in navigator,g=()=>{d.current!==null&&(navigator.geolocation.clearWatch(d.current),d.current=null),c(!1),i?.(!1)};(0,z.useEffect)(()=>()=>{d.current!==null&&navigator.geolocation.clearWatch(d.current)},[]);let v=async(e,n)=>{try{let{label:i}=await o.post(`/api/runs/${t}/geocode`,{lat:e,lng:n,language:ae}),a=p.current;i&&!f.current&&a?.lat===e&&a.lng===n&&r({...a,label:i})}catch{}},y=()=>{u(null),c(!0),i?.(!0);let e=Date.now(),t=1/0;d.current=navigator.geolocation.watchPosition(n=>{let{latitude:i,longitude:a,accuracy:o}=n.coords;if(o<t){t=o;let e=Math.round(i*1e6)/1e6,n=Math.round(a*1e6)/1e6,s=f.current?p.current?.label:void 0,c={lat:e,lng:n,accuracy:Math.round(o),...s?{label:s}:{}};p.current=c,r(c)}if(t<=Cn||Date.now()-e>wn){g();let e=p.current;e?.lat!==void 0&&e.lng!==void 0&&v(e.lat,e.lng)}},e=>{g(),t===1/0&&u(Tn(e))},{enableHighAccuracy:!0,timeout:15e3,maximumAge:1e4})},b=e=>{f.current=e.trim().length>0;let t={...m?a:{},label:e};r(m||e.trim()?t:void 0)};return(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[m?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,V.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-full bg-moss-tint text-moss`,children:(0,V.jsx)(Ge,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsxs)(`div`,{className:`truncate font-medium text-[0.9375rem] tabular-nums`,children:[a.lat?.toFixed(5),`, `,a.lng?.toFixed(5)]}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 text-[0.8125rem] text-ink-3`,children:[(0,V.jsx)(`span`,{children:s?N(`location.refining`):a.accuracy?N(`location.accuracy`,{m:a.accuracy}):null}),(0,V.jsxs)(`a`,{href:`https://www.openstreetmap.org/?mlat=${a.lat}&mlon=${a.lng}#map=17/${a.lat}/${a.lng}`,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 underline-offset-2 hover:text-ink hover:underline coarse:-my-3 coarse:min-h-11 coarse:min-w-11`,children:[N(`location.map`),` `,(0,V.jsx)(_,{className:`size-3`})]})]})]}),(0,V.jsx)(k,{label:N(`location.remove`),onClick:()=>{g(),f.current=!1,r(void 0)},children:(0,V.jsx)(se,{className:`size-4`})})]}):h?(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(M,{variant:`secondary`,size:`lg`,busy:s,onClick:y,className:`w-full sm:w-auto`,children:[s?null:(0,V.jsx)(ze,{className:`size-4`}),N(s?`location.locating`:`location.use`)]}),l?(0,V.jsx)(`p`,{className:`mt-2 rounded-lg bg-amber-tint px-3 py-2 text-[0.8125rem] text-ink-2 leading-relaxed`,children:N(`location.${l}`)}):(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-ink-3 leading-relaxed`,children:N(`location.why`)})]}):null,(0,V.jsx)(j,{value:a?.label??``,placeholder:n??N(m?`location.label`:`location.manual`),autoComplete:`street-address`,enterKeyHint:`done`,"aria-label":N(`location.manual`),onChange:e=>b(e.target.value)})]})}var Dn=null;function On(){return Dn??=(async()=>{let e=window.BarcodeDetector;if(e)try{let t=await e.getSupportedFormats();if(t.includes(`qr_code`)){let n=new e({formats:t});return{qrOnly:!1,detect:async e=>(await n.detect(e))[0]?.rawValue||null}}}catch{}let{default:t}=await l(async()=>{let{default:e}=await import(`./qr-scanner.min-C_UI0gH-.js`);return{default:e}},__vite__mapDeps([0,1])),n=t.createQrEngine();return{qrOnly:!0,detect:async e=>{try{return(await t.scanImage(e,{qrEngine:n,returnDetailedScanResult:!0})).data||null}catch{return null}}}})(),Dn}function kn({open:e,onClose:t,onResult:n}){let r=(0,z.useRef)(n);r.current=n;let i=(0,z.useRef)(t);return i.current=t,(0,z.useEffect)(()=>{e&&xt(`scan`).then(e=>{e&&r.current(e)}).catch(()=>void 0).finally(()=>i.current())},[e]),null}function An(e){return B(`scan`)?(0,V.jsx)(kn,{...e}):(0,V.jsx)(jn,{...e})}function jn({open:e,onClose:t,onResult:n}){let[r,i]=(0,z.useState)(`environment`),[a,o]=(0,z.useState)(!1),[s,c]=(0,z.useState)(!1),l=(0,z.useRef)(null),u=pn(e,r),d=(0,z.useRef)(n);d.current=n;let f=(0,z.useRef)(t);f.current=t,(0,z.useEffect)(()=>{e&&(c(!1),On().then(e=>o(e.qrOnly)))},[e]),(0,z.useEffect)(()=>{if(!e||!u.stream)return;let t=!1,n,r=async()=>{let e=u.video.current;if(!t&&e&&e.readyState>=2&&e.videoWidth){let n=await(await On()).detect(e).catch(()=>null);if(n&&!t){navigator.vibrate?.(60),d.current(n),f.current();return}}t||(n=setTimeout(r,200))};return r(),()=>{t=!0,clearTimeout(n)}},[e,u.stream,u.video]);let p=async e=>{if(!e)return;c(!1);let r=await createImageBitmap(e).catch(()=>null),i=r?await(await On()).detect(r).catch(()=>null):null;i?(n(i),t()):c(!0)};return(0,V.jsxs)(mn,{open:e,onClose:t,label:N(`scan.title`),children:[(0,V.jsx)(gn,{title:N(`scan.title`),onClose:t,camera:u,onFlip:()=>i(e=>e===`environment`?`user`:`environment`)}),(0,V.jsx)(_n,{camera:u,asking:N(`scan.asking`),actions:(0,V.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,V.jsxs)(Sn,{onClick:()=>l.current?.click(),children:[(0,V.jsx)(Le,{className:`size-4`}),` `,N(`scan.fromPhoto`)]}),(0,V.jsx)(Sn,{quiet:!0,onClick:t,children:N(`scan.typeInstead`)})]}),children:(0,V.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,V.jsx)(`div`,{className:`aspect-square w-[min(68%,320px)] rounded-3xl border-2 border-white/90 shadow-[0_0_0_100vmax_rgb(0_0_0/0.35)]`})})}),(0,V.jsxs)(`div`,{className:`safe-bottom flex flex-col items-center gap-3 px-5 pt-3 text-center`,children:[(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-white/75 leading-snug`,children:N(s?`scan.miss`:a?`scan.hintQr`:`scan.hint`)}),u.stream?(0,V.jsxs)(Sn,{quiet:!0,onClick:()=>l.current?.click(),children:[(0,V.jsx)(Le,{className:`size-4`}),` `,N(`scan.fromPhoto`)]}):null]}),(0,V.jsx)(`input`,{ref:l,type:`file`,hidden:!0,accept:`image/*`,onChange:e=>{p(e.target.files?.[0]),e.target.value=``}})]})}var Mn=`#1d1a17`,Nn={width:1200,height:480};function Pn(e,t,n,r,i){e.lineCap=`round`,e.lineJoin=`round`,e.strokeStyle=Mn,e.fillStyle=Mn,e.lineWidth=i;for(let a of t){if(a.length===1){e.beginPath(),e.arc(a[0].x*n,a[0].y*r,i/2,0,Math.PI*2),e.fill();continue}e.beginPath(),e.moveTo(a[0].x*n,a[0].y*r);for(let t=1;t<a.length-1;t++){let i=a[t],o=a[t+1];e.quadraticCurveTo(i.x*n,i.y*r,(i.x+o.x)/2*n,(i.y+o.y)/2*r)}let t=a[a.length-1];e.lineTo(t.x*n,t.y*r),e.stroke()}}function Fn({strokes:e,onStrokes:t}){let n=(0,z.useRef)(null),r=(0,z.useRef)(null),i=(0,z.useRef)(e);i.current=e;let a=()=>{let e=n.current,t=e?.getContext(`2d`);if(!e||!t)return;let a=window.devicePixelRatio||1,o=Math.round(e.clientWidth*a),s=Math.round(e.clientHeight*a);(e.width!==o||e.height!==s)&&(e.width=o,e.height=s),t.clearRect(0,0,o,s),Pn(t,r.current?[...i.current,r.current]:i.current,o,s,2.4*a)};(0,z.useEffect)(()=>{a();let e=n.current;if(!e)return;let t=new ResizeObserver(a);return t.observe(e),()=>t.disconnect()},[e]);let o=e=>{let t=e.currentTarget.getBoundingClientRect();return{x:Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)),y:Math.min(1,Math.max(0,(e.clientY-t.top)/t.height))}};return(0,V.jsxs)(`div`,{className:`relative overflow-hidden rounded-xl bg-white ring-1 ring-input`,children:[(0,V.jsx)(`canvas`,{ref:n,"aria-label":N(`sign.pad`),className:`block aspect-[5/2] w-full cursor-crosshair touch-none select-none`,onPointerDown:e=>{e.currentTarget.setPointerCapture(e.pointerId),r.current=[o(e)],a()},onPointerMove:e=>{r.current&&(r.current.push(o(e)),a())},onPointerUp:()=>{if(r.current){let e=r.current;r.current=null,t([...i.current,e])}},onPointerCancel:()=>{r.current=null,a()}}),(0,V.jsx)(`div`,{className:`pointer-events-none absolute inset-x-6 bottom-[22%] border-[#1d1a17]/25 border-b`}),e.length?null:(0,V.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center text-[#1d1a17]/40 text-[0.875rem]`,children:N(`sign.hint`)})]})}async function In(e){let t=document.createElement(`canvas`);t.width=Nn.width,t.height=Nn.height;let n=t.getContext(`2d`);if(!n)return null;Pn(n,e,Nn.width,Nn.height,7);let r=await new Promise(e=>t.toBlob(e,`image/png`));return r?new File([r],`unterschrift.png`,{type:`image/png`}):null}function Ln({label:e,value:t,runId:n,onChange:r}){let[a,s]=(0,z.useState)(!1),[c,l]=(0,z.useState)([]),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(null),m=typeof t==`string`&&t?t:null,h=async()=>{d(!0),p(null);try{let e=await In(c);if(!e)return;r((await o.upload(`/api/runs/${n}/uploads`,e)).id),s(!1)}catch(e){p(e.message)}finally{d(!1)}};return(0,V.jsxs)(`div`,{children:[m?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-2 ring-1 ring-input`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:()=>{l([]),s(!0)},className:`min-w-0 flex-1 rounded-lg bg-white px-3`,"aria-label":N(`sign.again`),children:(0,V.jsx)(`img`,{src:i(`/api/runs/${n}/assets/${m}`),alt:e,className:`mx-auto h-20 object-contain`})}),(0,V.jsx)(k,{label:N(`sign.remove`),onClick:()=>r(void 0),children:(0,V.jsx)(se,{className:`size-4`})})]}):(0,V.jsxs)(`button`,{type:`button`,onClick:()=>{l([]),s(!0)},className:`flex w-full flex-col items-center justify-center gap-2 rounded-xl border border-input border-dashed bg-card px-4 py-7 text-[0.875rem] text-ink-3 transition hover:border-ember hover:text-ink`,children:[(0,V.jsx)(S,{className:`size-6`}),N(`sign.open`)]}),(0,V.jsxs)(O,{open:a,onClose:()=>s(!1),title:e,wide:!0,children:[(0,V.jsx)(Fn,{strokes:c,onStrokes:l}),f?(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-rose`,children:f}):null,(0,V.jsxs)(`div`,{className:`mt-5 flex items-center justify-between gap-3`,children:[(0,V.jsxs)(M,{variant:`ghost`,disabled:!c.length||u,onClick:()=>l([]),children:[(0,V.jsx)(Ce,{className:`size-4`}),` `,N(`sign.clear`)]}),(0,V.jsx)(M,{busy:u,disabled:!c.length,onClick:()=>void h(),children:N(`sign.accept`)})]})]})]})}function Rn({runId:e,connectionId:t,connector:n,onCancel:r}){let[i,a]=(0,z.useState)({}),[s,c]=(0,z.useState)(!1),[l,u]=(0,z.useState)(null),d=async()=>{c(!0),u(null);try{await o.post(`/api/runs/${e}/connections/${t}/credentials/${n.id}`,{values:i})}catch(e){u(e.message)}finally{c(!1)}};return(0,V.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl bg-card p-4 ring-1 ring-input`,children:[(n.fields??[]).map(e=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(C,{children:e.label}),(0,V.jsx)(j,{type:e.secret?`password`:`text`,autoComplete:`off`,value:i[e.key]??``,placeholder:e.placeholder,onChange:t=>a(n=>({...n,[e.key]:t.target.value})),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),d())}})]},e.key)),n.hint?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:n.hint}):null,l?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:l}):null,(0,V.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,V.jsx)(M,{variant:`ghost`,size:`sm`,onClick:r,children:N(`common.cancel`)}),(0,V.jsx)(M,{size:`sm`,busy:s,onClick:()=>void d(),children:N(`connect.go`)})]})]})}function zn({runId:e,connection:t}){let[n,r]=(0,z.useState)(null),[i,a]=(0,z.useState)(null),[s,c]=(0,z.useState)(null);if(!t)return null;if(t.account){let n=t.connectors.find(e=>e.id===t.account?.connector)?.name??``;return(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,V.jsx)(`div`,{className:`flex size-10 items-center justify-center rounded-full bg-moss-tint text-moss`,children:(0,V.jsx)(m,{className:`size-5`})}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`div`,{className:`truncate font-medium text-[0.9375rem]`,children:t.account.label}),(0,V.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:N(`connect.connected`,{name:n})})]}),(0,V.jsx)(k,{label:N(`connect.disconnect`),onClick:()=>void o.del(`/api/runs/${e}/connections/${t.id}`),children:(0,V.jsx)(_t,{className:`size-4`})})]})}let l=async n=>{if(c(null),a(null),B(`signIn`)){try{let{url:r}=await o.post(`/api/runs/${e}/connections/${t.id}/oauth/${n.id}`);await xt(`signIn`,{url:r})}catch(e){c(e.message)}return}let r=window.open(`about:blank`,`wizard-connect`,`width=540,height=700`);try{let{url:i}=await o.post(`/api/runs/${e}/connections/${t.id}/oauth/${n.id}`);r?r.location.replace(i):a(i)}catch(e){r?.close(),c(e.message)}},u=t.connectors.find(e=>e.id===n);return t.connectors.length?(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.connectors.map(e=>(0,V.jsxs)(`button`,{type:`button`,onClick:()=>e.auth===`oauth2`?void l(e):r(n===e.id?null:e.id),className:E(`inline-flex h-11 items-center gap-2 rounded-full px-4 font-medium text-[0.875rem] ring-1 transition`,n===e.id?`bg-ember-veil text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink hover:ring-ember`),children:[(0,V.jsx)(v,{className:`size-4`}),` `,e.name]},e.id))}),u?(0,V.jsx)(Rn,{runId:e,connectionId:t.id,connector:u,onCancel:()=>r(null)}):null,i?(0,V.jsx)(`a`,{href:i,target:`_blank`,rel:`noreferrer`,className:`text-[0.875rem] text-ember underline`,children:N(`connect.openLink`)}):null,s?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:s}):null]}):(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:N(`connect.none`)})}function Bn(e){return e==null?``:Array.isArray(e)?e.join(`, `):String(e)}function Vn(e,t){if(t.trim()===``)return null;if(e.type===`number`){let e=Number(t.replace(/\s/g,``).replace(`,`,`.`));return Number.isFinite(e)?e:t}return e.type===`boolean`?t===`true`:t}function Hn({column:e,value:t,boxed:n,onCommit:r}){let[i,a]=(0,z.useState)(Bn(t));(0,z.useEffect)(()=>a(Bn(t)),[t]);let o=E(`w-full min-w-0 rounded-md border border-transparent px-2 text-[0.8125rem] outline-none focus:border-ember focus:bg-card`,n?`h-11 bg-paper-2`:`h-9 bg-transparent hover:bg-paper-2 coarse:h-11`);return e.type===`boolean`?(0,V.jsx)(`label`,{className:`flex size-9 cursor-pointer items-center justify-center coarse:size-11`,children:(0,V.jsx)(`input`,{type:`checkbox`,"aria-label":e.name,checked:t===!0,onChange:e=>r(e.target.checked),className:`size-4 accent-[var(--ember)] coarse:size-6`})}):e.type===`select`&&!e.format.multiple&&!e.format.allowCustom?(0,V.jsxs)(`select`,{value:i,onChange:e=>r(e.target.value||null),className:o,children:[(0,V.jsx)(`option`,{value:``}),e.format.options.map(e=>(0,V.jsx)(`option`,{value:e.id,children:e.label},e.id))]}):(0,V.jsx)(`input`,{"aria-label":e.name,type:e.type===`date`&&e.format.kind===`date`?`date`:`text`,inputMode:e.type===`number`?`decimal`:void 0,enterKeyHint:`done`,autoComplete:`off`,value:i,onChange:e=>a(e.target.value),onBlur:()=>{i!==Bn(t)&&r(Vn(e,i))},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),e.target.blur())},className:E(o,e.type===`number`&&`text-right tabular-nums`)})}function Un({runId:e,list:t,editable:n}){let{def:r,rows:i}=t,[a,s]=(0,z.useState)(null),[l,u]=(0,z.useState)({}),d=`/api/runs/${e}/lists/${r.id}/rows`,f=async e=>{s(null);try{await e()}catch(e){s(e instanceof c?e.message:String(e))}},p=()=>f(async()=>{await o.post(d,{cells:l}),u({})}),m=Object.values(l).some(e=>e!=null&&e!==``);if(!i.length&&!n)return(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:N(`list.empty`)});let h=(e,t)=>t===0||e.type===`text`&&e.format?.style===`multiline`,_=(e,t,n)=>void f(()=>o.patch(`${d}/${e}`,{cells:{[t]:n}}));return(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`flex flex-col gap-2 sm:hidden`,children:[i.map(e=>(0,V.jsxs)(`div`,{className:`rounded-lg bg-paper p-2 ring-1 ring-border-soft`,children:[(0,V.jsx)(`div`,{className:`grid grid-cols-2 gap-x-2 gap-y-1.5`,children:r.columns.map((t,r)=>(0,V.jsxs)(`div`,{className:E(`min-w-0`,h(t,r)&&`col-span-2`),children:[(0,V.jsx)(`div`,{className:`px-1 pb-0.5 text-[0.6875rem] text-ink-3`,children:t.name}),n?(0,V.jsx)(Hn,{boxed:!0,column:t,value:e.cells[t.id],onCommit:n=>_(e.id,t.id,n)}):(0,V.jsx)(`div`,{className:E(`break-words px-1 text-[0.875rem]`,t.type===`number`&&`tabular-nums`),children:sn(t,e.cells[t.id],ae)||`—`})]},t.id))}),n?(0,V.jsx)(`div`,{className:`mt-1 flex justify-end`,children:(0,V.jsx)(k,{label:N(`list.delete`),onClick:()=>void f(()=>o.del(`${d}/${e.id}`)),children:(0,V.jsx)(y,{className:`size-4`})})}):null]},e.id)),n?(0,V.jsxs)(`div`,{className:`rounded-lg border border-input border-dashed p-2`,children:[(0,V.jsx)(`div`,{className:`grid grid-cols-2 gap-x-2 gap-y-1.5`,children:r.columns.map((e,t)=>(0,V.jsxs)(`div`,{className:E(`min-w-0`,h(e,t)&&`col-span-2`),children:[(0,V.jsx)(`div`,{className:`px-1 pb-0.5 text-[0.6875rem] text-ink-3`,children:e.name}),(0,V.jsx)(Hn,{boxed:!0,column:e,value:l[e.id],onCommit:t=>u(n=>({...n,[e.id]:t}))})]},e.id))}),(0,V.jsx)(`div`,{className:`mt-2 flex justify-end`,children:(0,V.jsxs)(M,{variant:`secondary`,size:`sm`,onClick:()=>m?void p():void 0,children:[(0,V.jsx)(g,{className:`size-4`}),` `,N(`run.addRow`)]})})]}):null]}),(0,V.jsx)(`div`,{className:`hidden overflow-x-auto rounded-lg ring-1 ring-border-soft sm:block`,children:(0,V.jsxs)(`table`,{className:`w-full text-[0.8125rem]`,children:[(0,V.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,V.jsxs)(`tr`,{children:[r.columns.map(e=>(0,V.jsx)(`th`,{className:`whitespace-nowrap px-3 py-2 text-left font-medium`,children:e.name},e.id)),n?(0,V.jsx)(`th`,{className:`w-10`}):null]})}),(0,V.jsxs)(`tbody`,{children:[i.map(e=>(0,V.jsxs)(`tr`,{className:`border-border-soft border-t align-top`,children:[r.columns.map(t=>(0,V.jsx)(`td`,{className:E(`min-w-[7.5rem]`,n?`px-1 py-0.5`:`px-3 py-2`),children:n?(0,V.jsx)(Hn,{column:t,value:e.cells[t.id],onCommit:n=>_(e.id,t.id,n)}):(0,V.jsx)(`span`,{className:E(t.type===`number`&&`tabular-nums`),children:sn(t,e.cells[t.id],ae)})},t.id)),n?(0,V.jsx)(`td`,{className:`px-1 py-0.5`,children:(0,V.jsx)(k,{label:N(`list.delete`),className:`size-9`,onClick:()=>void f(()=>o.del(`${d}/${e.id}`)),children:(0,V.jsx)(y,{className:`size-3.5`})})}):null]},e.id)),n?(0,V.jsxs)(`tr`,{className:`border-border-soft border-t bg-paper`,children:[r.columns.map(e=>(0,V.jsx)(`td`,{className:`px-1 py-0.5`,children:(0,V.jsx)(Hn,{column:e,value:l[e.id],onCommit:t=>u(n=>({...n,[e.id]:t}))})},e.id)),(0,V.jsx)(`td`,{className:`px-1 py-0.5`,children:(0,V.jsx)(k,{label:N(`run.addRow`),className:`size-9`,onClick:()=>m?void p():void 0,children:(0,V.jsx)(g,{className:`size-4`})})})]}):null]})]})}),a?(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-rose`,children:a}):null]})}function Wn(e,t,n){let r=t.split(`/`).map(encodeURIComponent).join(`/`);return i(`/api/runs/${e}/store/files/${r}${n?`?inline=1`:``}`)}var Gn=[`bg-paper-3 text-ink-3`,`bg-moss-tint text-moss`,`bg-rose-tint text-rose`,`bg-ember-tint text-ember-strong`];function Kn({runId:e,list:t}){let{def:n,rows:r}=t,i=n.columns.find(e=>e.id===n.check?.file),a=n.columns.find(e=>e.id===n.check?.status),s=a?.type===`select`?a.format.options:[],l=s[0]?.id,u=e=>a?String(e.cells[a.id]??l??``):``,d=e=>!a||u(e)===l,[f,p]=(0,z.useState)(()=>(r.find(d)??r[0])?.id??null),[h,g]=(0,z.useState)(!1),[_,v]=(0,z.useState)(null),y=`/api/runs/${e}/lists/${n.id}/rows`,b=r.find(e=>e.id===f)??r[0],x=h?r.filter(e=>d(e)||e.id===b?.id):r,S=r.filter(e=>!d(e)).length,C=n.columns.filter(e=>e!==i&&e!==a),w=C.filter(e=>e.id!==n.key),T=w.find(e=>e.type===`text`)??w[0],D=w.filter(e=>e!==T),O=async(e,t)=>{v(null);try{await o.patch(`${y}/${e}`,{cells:t})}catch(e){v(e instanceof c?e.message:String(e))}},ee=e=>{let t=x.findIndex(e=>e.id===b?.id),n=x[Math.min(x.length-1,Math.max(0,t+e))];n&&p(n.id)},te=async e=>{if(!b||!a)return;let t=r.findIndex(e=>e.id===b.id),n=[...r.slice(t+1),...r.slice(0,t)].find(d);await O(b.id,{[a.id]:e}),n&&e!==l&&p(n.id)},ne=e=>{e.target.closest(`input, textarea, select`)||(e.key===`ArrowDown`||e.key===`ArrowUp`?(e.preventDefault(),ee(e.key===`ArrowDown`?1:-1)):/^[1-9]$/.test(e.key)&&s[Number(e.key)]&&(e.preventDefault(),te(s[Number(e.key)].id)))};if(!r.length)return(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:N(`list.empty`)});let k=i&&b?String(b.cells[i.id]??``).trim():``,A=k.split(`.`).pop()?.toLowerCase()??``,j=e=>Gn[Math.min(Math.max(0,s.findIndex(t=>t.id===u(e))),3)];return(0,V.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-[minmax(280px,360px)_minmax(0,1fr)]`,onKeyDown:ne,children:[(0,V.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,V.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,V.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3 tabular-nums`,children:N(`check.progress`,{done:S,total:r.length})}),a?(0,V.jsx)(`button`,{type:`button`,"aria-pressed":h,onClick:()=>g(e=>!e),className:E(`inline-flex h-8 items-center rounded-full px-3 text-[0.8125rem] ring-1 transition coarse:h-11`,h?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink`),children:N(`check.onlyOpen`)}):null]}),(0,V.jsx)(`ul`,{className:`flex max-h-[38vh] flex-col gap-1.5 overflow-y-auto p-0.5 pr-1 lg:max-h-[calc(100vh-15rem)]`,children:x.map(e=>(0,V.jsx)(`li`,{children:(0,V.jsxs)(`button`,{type:`button`,onClick:()=>p(e.id),"aria-current":e.id===b?.id,className:E(`flex w-full items-center gap-3 rounded-lg px-3 py-2.5 text-left ring-1 transition`,e.id===b?.id?`bg-card shadow-soft ring-ember`:`bg-paper ring-border-soft hover:bg-card`),children:[(0,V.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`span`,{className:`block truncate font-medium text-[0.875rem]`,children:T&&sn(T,e.cells[T.id],ae)||`—`}),(0,V.jsx)(`span`,{className:`block truncate text-[0.75rem] text-ink-3 tabular-nums`,children:D.slice(0,2).map(t=>sn(t,e.cells[t.id],ae)).filter(Boolean).join(` · `)})]}),a?(0,V.jsx)(`span`,{className:E(`shrink-0 rounded-full px-2 py-0.5 font-medium text-[0.6875rem]`,j(e)),children:s.find(t=>t.id===u(e))?.label??u(e)}):null]})},e.id))})]}),b?(0,V.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[s.length>1?(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[s.slice(1).map((e,t)=>(0,V.jsxs)(M,{size:`md`,variant:u(b)===e.id?`primary`:`secondary`,onClick:()=>void te(e.id),children:[u(b)===e.id?(0,V.jsx)(m,{className:`size-4`}):null,e.label,(0,V.jsx)(`kbd`,{className:`ml-1 hidden rounded bg-black/10 px-1.5 text-[0.6875rem] lg:inline`,children:t+1})]},e.id)),u(b)===l?null:(0,V.jsx)(M,{size:`md`,variant:`ghost`,onClick:()=>void te(l??``),children:N(`check.reopen`)})]}):null,(0,V.jsx)(`div`,{className:`overflow-hidden rounded-lg bg-paper-2 ring-1 ring-border-soft`,children:k?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`flex items-center gap-2 border-border-soft border-b bg-card px-3 py-2 text-[0.8125rem]`,children:[(0,V.jsx)(oe,{className:`size-3.5 shrink-0 text-ink-3`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:k.split(`/`).pop()}),(0,V.jsx)(`a`,{href:Wn(e,k,A===`pdf`),target:`_blank`,rel:`noreferrer`,className:`shrink-0 text-ink-2 underline-offset-2 hover:text-ink hover:underline`,children:N(`run.openFull`)})]}),A===`pdf`?(0,V.jsx)(`iframe`,{title:k,src:`${Wn(e,k,!0)}#toolbar=0&navpanes=0&view=FitH`,className:`h-[46vh] w-full border-0 bg-white lg:h-[calc(100vh-27rem)] lg:min-h-[360px]`},k):[`png`,`jpg`,`jpeg`,`webp`].includes(A)?(0,V.jsx)(`div`,{className:`flex max-h-[46vh] justify-center overflow-auto bg-white lg:max-h-[calc(100vh-27rem)]`,children:(0,V.jsx)(`img`,{src:Wn(e,k,!0),alt:k,className:`max-w-full object-contain`},k)}):(0,V.jsx)(`p`,{className:`px-4 py-10 text-center text-[0.875rem] text-ink-3`,children:N(`check.noPreview`)})]}):(0,V.jsx)(`p`,{className:`px-4 py-14 text-center text-[0.875rem] text-ink-3`,children:N(`check.noFile`)})}),(0,V.jsx)(`div`,{className:`grid grid-cols-2 gap-x-3 gap-y-2 sm:grid-cols-3`,children:C.map(e=>(0,V.jsxs)(`div`,{className:E(`min-w-0`,e.type===`text`&&e.format?.style===`multiline`&&`col-span-full`),children:[(0,V.jsx)(`div`,{className:`px-1 pb-0.5 text-[0.6875rem] text-ink-3`,children:e.name}),(0,V.jsx)(Hn,{boxed:!0,column:e,value:b.cells[e.id],onCommit:t=>void O(b.id,{[e.id]:t})})]},e.id))}),_?(0,V.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:_}):null]}):null]})}var qn={xlsx:`Excel`,csv:`CSV`,json:`JSON`,md:`Markdown`,zip:`ZIP`};function Jn({runId:e,list:t}){return(0,V.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.formats.map(n=>(0,V.jsx)(`a`,{href:i(`/api/runs/${e}/lists/${t.def.id}/download?format=${n}`),className:`inline-flex h-9 items-center rounded-full bg-paper-2 px-3.5 font-medium text-[0.8125rem] text-ink-2 transition hover:bg-paper-3 hover:text-ink coarse:h-11 coarse:px-4`,children:qn[n]??n},n))})}function Yn(e){return e>1e6?`${(e/1e6).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1e3))} KB`}function Xn({runId:e}){let[t,n]=(0,z.useState)(!1),[r,a]=(0,z.useState)(null),[s,c]=(0,z.useState)(!1);(0,z.useEffect)(()=>{t&&(c(!1),o.get(`/api/runs/${e}/store`).then(a))},[t,e]);let l=r&&!r.files.length&&!r.connections.length&&!r.keepsSignIns&&r.lists.every(e=>!e.rows);return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>n(!0),className:`inline-flex items-center gap-1.5 text-[0.8125rem] text-ink-4 transition hover:text-ink-2 coarse:min-h-11`,children:[(0,V.jsx)(P,{className:`size-3.5`}),` `,N(`store.open`)]}),(0,V.jsx)(O,{open:t,onClose:()=>n(!1),title:N(`store.title`),wide:!0,children:r?(0,V.jsxs)(`div`,{className:`flex flex-col gap-5 text-[0.875rem]`,children:[(0,V.jsx)(`p`,{className:`text-ink-3`,children:N(`store.explain`)}),l?(0,V.jsx)(`p`,{className:`text-ink-2`,children:N(`store.empty`)}):null,r.lists.some(e=>e.rows)?(0,V.jsx)(`ul`,{className:`flex flex-col gap-1`,children:r.lists.filter(e=>e.rows).map(e=>(0,V.jsxs)(`li`,{className:`flex justify-between gap-3`,children:[(0,V.jsx)(`span`,{children:e.title}),(0,V.jsx)(`span`,{className:`text-ink-3 tabular-nums`,children:N(`store.rows`,{n:e.rows})})]},e.id))}):null,r.connections.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(v,{className:`size-4 text-ink-3`}),` `,e.account?.label]},e.id)),r.keepsSignIns?(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(m,{className:`size-4 text-ink-3`}),` `,N(`store.signIns`)]}):null,r.files.length?(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`mb-1 text-ink-3`,children:N(`store.files`,{n:r.files.length,size:Yn(r.files.reduce((e,t)=>e+t.size,0))})}),(0,V.jsx)(`ul`,{className:`max-h-56 overflow-y-auto rounded-lg ring-1 ring-border-soft`,children:r.files.map(t=>(0,V.jsx)(`li`,{className:`border-border-soft border-b last:border-0`,children:(0,V.jsxs)(`a`,{href:i(`/api/runs/${e}/store/files/${t.path}`),className:`flex items-center gap-2 px-3 py-2 text-[0.8125rem] hover:bg-paper-2 coarse:min-h-11`,title:t.source??void 0,children:[(0,V.jsx)(oe,{className:`size-3.5 shrink-0 text-ink-3`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t.path}),(0,V.jsx)(`span`,{className:`text-ink-4 tabular-nums`,children:Yn(t.size)})]})},t.path))})]}):null,(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 pt-1`,children:[l?(0,V.jsx)(`span`,{}):s?(0,V.jsxs)(M,{variant:`secondary`,onClick:async()=>{await o.del(`/api/runs/${e}/store`),a(await o.get(`/api/runs/${e}/store`)),c(!1)},children:[(0,V.jsx)(y,{className:`size-4`}),` `,N(`store.confirmDelete`)]}):(0,V.jsxs)(M,{variant:`ghost`,onClick:()=>c(!0),children:[(0,V.jsx)(y,{className:`size-4`}),` `,N(`store.delete`)]}),(0,V.jsx)(M,{onClick:()=>n(!1),children:N(`common.close`)})]})]}):(0,V.jsx)(`div`,{className:`flex justify-center py-8 text-ink-4`,children:(0,V.jsx)(T,{})})})]})}var Zn=300;function Qn(){if(typeof MediaRecorder<`u`)return[`audio/webm;codecs=opus`,`audio/mp4`,`audio/webm`,`audio/ogg;codecs=opus`].find(e=>MediaRecorder.isTypeSupported(e))}function $n(e){return`${Math.floor(e/60)}:${String(Math.floor(e%60)).padStart(2,`0`)}`}function er({value:e,runId:t,onChange:n,onBusy:r}){let i=de(e)?e:null,[a,s]=(0,z.useState)(null),[c,l]=(0,z.useState)(0),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)(null),[m,h]=(0,z.useState)(!1),[g,_]=(0,z.useState)(null),v=(0,z.useRef)(null),y=(0,z.useRef)(null),x=Qn(),S=Nt&&!!x;(0,z.useEffect)(()=>()=>{v.current&&(v.current.recorder.onstop=null,v.current.stop())},[]),(0,z.useEffect)(()=>()=>{g&&URL.revokeObjectURL(g.url)},[g]);let C=async(e,i)=>{d(!0),r?.(!0),p(null);try{let r=await o.upload(`/api/runs/${t}/uploads`,e);_({asset:r.id,url:URL.createObjectURL(e)}),n({asset:r.id,...i===void 0?{}:{seconds:i}})}catch(e){p(e.message)}finally{d(!1),r?.(!1)}},w=async()=>{p(null),h(!1);let e;try{e=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0}})}catch{h(!0);return}let t=[],n=new MediaRecorder(e,{mimeType:x,audioBitsPerSecond:48e3}),i=Date.now(),a=new AudioContext,o=a.createAnalyser();o.fftSize=256,a.createMediaStreamSource(e).connect(o);let c=new Uint8Array(o.fftSize),u=0,d=()=>{o.getByteTimeDomainData(c);let e=0;for(let t of c)e=Math.max(e,Math.abs(t-128));if(l(Math.min(1,e/64)),s((Date.now()-i)/1e3),(Date.now()-i)/1e3>=Zn){f();return}u=requestAnimationFrame(d)},f=()=>{cancelAnimationFrame(u),n.state!==`inactive`&&n.stop();for(let t of e.getTracks())t.stop();a.close().catch(()=>void 0),v.current=null,s(null),l(0)};n.ondataavailable=e=>e.data.size&&t.push(e.data),n.onstop=()=>{let e=(n.mimeType||x||`audio/webm`).split(`;`)[0],r=e===`audio/mp4`?`m4a`:e===`audio/ogg`?`ogg`:`webm`,a=Math.max(1,Math.round((Date.now()-i)/1e3));C(new File(t,`sprachnotiz-${un()}.${r}`,{type:e}),a)},v.current={recorder:n,stop:f},r?.(!0),n.start(1e3),u=requestAnimationFrame(d)},E=a!==null,D=(0,V.jsxs)(M,{variant:`secondary`,onClick:()=>y.current?.click(),children:[(0,V.jsx)(Te,{className:`size-4`}),` `,N(`voice.pick`)]});return(0,V.jsxs)(`div`,{children:[E?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-3 ring-1 ring-ember`,children:[(0,V.jsxs)(`span`,{className:`relative flex size-11 shrink-0 items-center justify-center`,children:[(0,V.jsx)(`span`,{className:`absolute inset-0 rounded-full bg-rose-tint transition-transform duration-75`,style:{transform:`scale(${.7+c*.5})`}}),(0,V.jsx)(`span`,{className:`relative size-3.5 animate-pulse-dot rounded-full bg-rose`})]}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`div`,{className:`font-medium text-[0.9375rem] tabular-nums`,children:$n(a)}),(0,V.jsx)(`div`,{className:`text-[0.8125rem] text-ink-3`,children:a>270?N(`voice.left`,{s:Math.ceil(Zn-a)}):N(`voice.recording`)})]}),(0,V.jsxs)(M,{onClick:()=>v.current?.stop(),children:[(0,V.jsx)(dt,{className:`size-3.5 fill-current`}),` `,N(`voice.stop`)]})]}):u?(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-card p-4 text-[0.875rem] text-ink-3 ring-1 ring-input`,children:[(0,V.jsx)(T,{className:`size-4`}),` `,N(`run.uploading`)]}):i?(0,V.jsxs)(`div`,{className:`rounded-xl bg-card p-3 ring-1 ring-input`,children:[(0,V.jsx)(`audio`,{controls:!0,preload:`metadata`,src:g?.asset===i.asset?g.url:`/api/runs/${t}/assets/${i.asset}`,className:`h-11 w-full`}),i.transcript?(0,V.jsx)(`p`,{className:`mt-2 whitespace-pre-wrap px-1 text-[0.875rem] text-ink-2 leading-relaxed`,children:i.transcript}):null,(0,V.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center justify-between gap-2`,children:[(0,V.jsx)(`span`,{className:`px-1 text-[0.8125rem] text-ink-3`,children:i.seconds?$n(i.seconds):null}),(0,V.jsxs)(`div`,{className:`flex gap-1`,children:[S?(0,V.jsxs)(M,{variant:`ghost`,size:`sm`,onClick:()=>void w(),children:[(0,V.jsx)(et,{className:`size-3.5`}),` `,N(`voice.again`)]}):null,(0,V.jsx)(M,{variant:`ghost`,size:`sm`,onClick:()=>n(void 0),children:N(`voice.remove`)})]})]})]}):(0,V.jsxs)(`div`,{children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[S?(0,V.jsxs)(M,{variant:`secondary`,size:`lg`,onClick:()=>void w(),className:`w-full sm:w-auto`,children:[(0,V.jsx)(b,{className:`size-4`}),` `,N(`voice.start`)]}):D,S&&m?D:null]}),m?(0,V.jsx)(`p`,{className:`mt-2 rounded-lg bg-amber-tint px-3 py-2 text-[0.8125rem] text-ink-2 leading-relaxed`,children:N(`voice.denied`)}):(0,V.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-ink-3 leading-relaxed`,children:N(S?`voice.why`:`voice.noRecorder`)})]}),(0,V.jsx)(`input`,{ref:y,type:`file`,hidden:!0,accept:`audio/*`,capture:!0,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&C(t,void 0)}}),f?(0,V.jsx)(`div`,{className:`mt-2 text-[0.8125rem] text-rose`,children:f}):null]})}function tr(e,t){try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(e)}catch{return`${e.toFixed(2)} ${t}`}}function nr({field:e,value:t,values:n,onChange:r}){let i=e.columns??[],a=Array.isArray(t)&&t.length?t:[{}],o=ue(e,a,n),s=(e,t,n)=>{r(a.map((r,i)=>i===e?{...r,[t]:n}:r))},c=i.map(e=>e.kind===`text`&&e===i[0]?`minmax(0,3fr)`:`minmax(0,1fr)`).join(` `);return(0,V.jsxs)(`div`,{className:`rounded-xl bg-card p-2 ring-1 ring-input`,children:[(0,V.jsx)(`div`,{className:`hidden gap-2 px-2 pt-1 pb-2 text-[0.75rem] text-ink-3 sm:grid`,style:{gridTemplateColumns:`${c} 36px`},children:i.map(e=>(0,V.jsx)(`div`,{className:e.kind===`text`?``:`text-right`,children:e.label},e.id))}),(0,V.jsx)(`div`,{className:`flex flex-col gap-2`,children:a.map((e,t)=>(0,V.jsxs)(`div`,{className:`grid grid-cols-6 gap-2 rounded-lg bg-paper p-2 sm:bg-transparent sm:p-0 sm:[grid-template-columns:var(--cols)]`,style:{"--cols":`${c} 36px`},children:[i.map((n,r)=>(0,V.jsxs)(`label`,{className:E(`flex min-w-0 flex-col gap-1 sm:col-span-1`,r===0?`col-span-5`:i.length-1<=2?`col-span-3`:`col-span-2`),children:[(0,V.jsx)(`span`,{className:`px-0.5 text-[0.6875rem] text-ink-3 sm:hidden`,children:n.label}),(0,V.jsx)(`input`,{"aria-label":n.label,placeholder:n.label,inputMode:n.kind===`text`?`text`:`decimal`,autoComplete:`off`,value:String(e[n.id]??``),onChange:e=>s(t,n.id,e.target.value),className:E(`h-11 w-full min-w-0 rounded-md border border-transparent bg-paper-2 px-2.5 text-[0.875rem] outline-none placeholder:text-transparent focus:border-focus focus:bg-card sm:placeholder:text-ink-4`,n.kind!==`text`&&`text-right tabular-nums`)})]},n.id)),(0,V.jsx)(k,{label:N(`list.delete`),onClick:()=>r(a.filter((e,n)=>n!==t)),className:`order-first col-start-6 row-start-1 size-11 justify-self-end self-end sm:order-none sm:col-start-auto sm:row-start-auto`,children:(0,V.jsx)(y,{className:`size-4`})})]},t))}),(0,V.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-end justify-between gap-3 px-2 pb-1`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>r([...a,{}]),className:`inline-flex h-9 items-center gap-1.5 rounded-full px-3 text-[0.8125rem] text-ink-2 hover:bg-accent coarse:h-11`,children:[(0,V.jsx)(g,{className:`size-4`}),` `,N(`run.addRow`)]}),(0,V.jsxs)(`div`,{className:`text-right text-[0.8125rem] tabular-nums`,children:[(0,V.jsxs)(`div`,{className:`text-ink-3`,children:[N(`run.net`),` `,tr(o.net,o.currency)]}),o.vatRate?(0,V.jsxs)(`div`,{className:`text-ink-3`,children:[N(`run.vat`,{r:o.vatRate}),` `,tr(o.vat,o.currency)]}):null,(0,V.jsxs)(`div`,{className:`font-semibold text-[0.9375rem] text-ink`,children:[N(`run.total`),` `,tr(o.gross,o.currency)]})]})]})]})}function rr(e){return!!e?.closest(`input, textarea, [contenteditable='true']`)}function ir({field:e,value:t,runId:n,onChange:r,onBusy:a}){let s=(0,z.useRef)(null),c=(0,z.useRef)(null),l=(0,z.useRef)(null),u=(0,z.useRef)(null),[d,f]=(0,z.useState)(!1),[p,m]=(0,z.useState)({}),[h,g]=(0,z.useState)(null),[_,v]=(0,z.useState)(!1),[y,b]=(0,z.useState)(!1),[S,C]=(0,z.useState)(null),w=(0,z.useRef)(null),T=e=>{w.current=e,C(e)},D=e.kind===`image`,O=!!e.multiple,ee=O?e.max??30:1,te=D||!!e.camera||!!e.video,ne=!D&&!!e.video,A=Array.isArray(t)?t:typeof t==`string`&&t?[t]:[],j=(0,z.useRef)(A);j.current=A;let M=A.length<ee,re=async e=>{let t=(D?e.filter(e=>e.type.startsWith(`image/`)):e).sort((e,t)=>e.name.localeCompare(t.name,void 0,{numeric:!0}));if(!t.length)return;let i=ee-(O?j.current.length:0);f(!0),a?.(!0),g(t.length>i&&O?N(`run.maxFiles`,{n:ee}):null);try{for(let e of t.slice(0,Math.max(0,i))){let t=await ln(e),i=await o.upload(`/api/runs/${n}/uploads`,t);m(e=>({...e,[i.id]:{name:i.name,mime:i.mime}}));let a=O?[...j.current,i.id]:i.id;j.current=O?a:[i.id],r(a)}}catch(e){g(e.message)}finally{f(!1),a?.(!1)}},ie=(0,z.useRef)(re);ie.current=re;let ae=e=>{let t=A.filter(t=>t!==e);r(O?t:void 0)},P=(e,t)=>{let n=j.current.indexOf(e),i=Math.min(j.current.length-1,Math.max(0,t));if(n<0||n===i)return;let a=j.current.filter(t=>t!==e);a.splice(i,0,e),j.current=a,r(a)},oe=O&&A.length>1;(0,z.useEffect)(()=>{if(!M)return;let e=e=>{let t=Array.from(e.clipboardData?.files??[]),n=s.current;if(!t.length||!n||rr(document.activeElement))return;let r=document.querySelectorAll(`[data-upload-field]`);(n.matches(`:hover`)||n.contains(document.activeElement)||r.length===1)&&(e.preventDefault(),ie.current(t))};return document.addEventListener(`paste`,e),()=>document.removeEventListener(`paste`,e)},[M]);let ce=E(`flex flex-col items-center justify-center gap-2 rounded-xl border border-input border-dashed bg-card px-3 text-[0.875rem] text-ink-3 transition hover:border-ember hover:text-ink`,A.length?`py-4`:`py-8`);return(0,V.jsxs)(`div`,{ref:s,"data-upload-field":``,onDragOver:e=>{M&&(e.preventDefault(),b(!0))},onDragLeave:()=>b(!1),onDrop:e=>{b(!1),M&&(e.preventDefault(),re(Array.from(e.dataTransfer.files)))},children:[A.length?(0,V.jsx)(`div`,{className:`mb-2 flex flex-col gap-2`,children:A.map((e,t)=>{let r=p[e],a=r?.mime??(D?`image/`:``);return(0,V.jsxs)(`div`,{"data-file-id":e,className:E(`flex items-center gap-3 rounded-xl bg-card p-2 ring-1 ring-input transition-shadow`,S===e&&`relative z-10 shadow-elevated ring-2 ring-ember`),children:[oe?(0,V.jsxs)(`button`,{type:`button`,"aria-label":N(`run.moveFile`,{n:t+1}),title:N(`run.moveFileHint`),className:E(`-mr-1 flex h-14 w-9 shrink-0 touch-none flex-col items-center justify-center gap-0.5 rounded-lg text-ink-3 hover:bg-paper-2 hover:text-ink`,S===e?`cursor-grabbing`:`cursor-grab`),onPointerDown:t=>{try{t.currentTarget.setPointerCapture(t.pointerId)}catch{}T(e)},onPointerMove:t=>{if(w.current!==e)return;let n=document.elementFromPoint(t.clientX,t.clientY)?.closest(`[data-file-id]`),r=n?.getAttribute(`data-file-id`);r&&r!==e&&s.current?.contains(n??null)&&P(e,j.current.indexOf(r))},onPointerUp:()=>T(null),onPointerCancel:()=>T(null),onKeyDown:n=>{(n.key===`ArrowUp`||n.key===`ArrowDown`)&&(n.preventDefault(),P(e,t+(n.key===`ArrowUp`?-1:1)))},children:[(0,V.jsx)(`span`,{className:`font-medium text-[0.75rem] tabular-nums`,children:t+1}),(0,V.jsx)(Ne,{className:`size-4`})]}):null,a.startsWith(`image/`)?(0,V.jsx)(`img`,{src:i(`/api/runs/${n}/assets/${e}`),alt:``,className:`size-14 rounded-lg object-cover`}):(0,V.jsx)(`div`,{className:`flex size-12 shrink-0 items-center justify-center rounded-lg bg-paper-2`,children:a.startsWith(`video/`)?(0,V.jsx)(De,{className:`size-5 text-ink-3`}):(0,V.jsx)(L,{className:`size-5 text-ink-3`})}),(0,V.jsx)(`div`,{className:`min-w-0 flex-1 truncate text-[0.875rem]`,children:r?.name??`✓`}),(0,V.jsx)(k,{label:N(`run.removeFile`),onClick:()=>ae(e),children:(0,V.jsx)(se,{className:`size-4`})})]},e)})}):null,M?(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,V.jsxs)(`button`,{type:`button`,onClick:()=>c.current?.click(),className:E(ce,`min-w-[9rem] flex-1 px-4`,y&&`border-ember text-ink`),children:[D?(0,V.jsx)(Fe,{className:`size-6`}):(0,V.jsx)(L,{className:`size-6`}),d?N(`run.uploading`):A.length?N(`run.uploadMore`):N(Mt?`run.uploadTouch`:`run.upload`)]}),te?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>Nt?v(!0):l.current?.click(),className:E(ce,`w-28`),children:[(0,V.jsx)(ye,{className:`size-6`}),N(`run.camera`)]}):null,ne&&!(Nt&&bn)?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>u.current?.click(),className:E(ce,`w-28`),children:[(0,V.jsx)(x,{className:`size-6`}),N(`camera.video`)]}):null]}):null,(0,V.jsx)(`input`,{ref:c,type:`file`,hidden:!0,multiple:O,accept:D?`image/*`:void 0,onChange:e=>{re(Array.from(e.target.files??[])),e.target.value=``}}),(0,V.jsx)(`input`,{ref:l,type:`file`,hidden:!0,accept:`image/*`,capture:`environment`,onChange:e=>{re(Array.from(e.target.files??[])),e.target.value=``}}),ne?(0,V.jsx)(`input`,{ref:u,type:`file`,hidden:!0,accept:`video/*`,capture:`environment`,onChange:e=>{re(Array.from(e.target.files??[])),e.target.value=``}}):null,(0,V.jsx)(xn,{open:_,multiple:O,video:ne,onClose:()=>v(!1),onCapture:e=>re([e]),onNative:()=>l.current?.click()}),O&&(e.min||e.max)?(0,V.jsx)(`div`,{className:`mt-2 text-[0.8125rem] text-ink-3 tabular-nums`,children:e.min&&A.length<e.min?N(`run.filesMin`,{n:A.length,min:e.min}):e.max?N(`run.filesOf`,{n:A.length,max:e.max}):null}):null,h?(0,V.jsx)(`div`,{className:`mt-2 text-[0.8125rem] text-rose`,children:h}):null]})}function ar(e){let t=`${e.id} ${e.label}`.toLowerCase();return/telefon|phone|handy|mobil(?!it)|\btel\b|rückruf/.test(t)?{type:`tel`,inputMode:`tel`,autoComplete:`tel`}:/\bplz\b|postleitzahl|postal|zip/.test(t)?{inputMode:`numeric`,autoComplete:`postal-code`}:/iban/.test(t)?{autoCapitalize:`characters`,autoCorrect:`off`,spellCheck:!1}:/vorname|first.?name/.test(t)?{autoComplete:`given-name`,autoCapitalize:`words`}:/nachname|last.?name|surname/.test(t)?{autoComplete:`family-name`,autoCapitalize:`words`}:/firma|unternehmen|company|organi[sz]ation/.test(t)?{autoComplete:`organization`,autoCapitalize:`words`}:/straße|strasse|street|anschrift|adresse|address/.test(t)?{autoComplete:`street-address`,autoCapitalize:`words`}:/\b(ort|stadt|city|town)\b/.test(t)?{autoComplete:`address-level2`,autoCapitalize:`words`}:/\bname\b|ansprechp/.test(t)?{autoComplete:`name`,autoCapitalize:`words`}:{autoCapitalize:`sentences`}}function or({field:e,value:t,onChange:n}){let[r,i]=(0,z.useState)(!1);return(0,V.jsxs)(`div`,{className:`flex gap-2`,children:[(0,V.jsx)(j,{value:t,placeholder:e.placeholder,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,onChange:e=>n(e.target.value)}),(0,V.jsxs)(`button`,{type:`button`,onClick:()=>i(!0),className:`inline-flex h-11 shrink-0 items-center gap-2 rounded-lg border border-input bg-card px-3.5 font-medium text-[0.875rem] text-ink-2 transition hover:border-ember hover:text-ink`,children:[(0,V.jsx)(nt,{className:`size-4`}),` `,N(`scan.button`)]}),(0,V.jsx)(An,{open:r,onClose:()=>i(!1),onResult:n})]})}function sr({field:e,value:t,values:n,runId:r,view:i,onChange:a,onBusy:o,error:s,closed:c}){let l=t==null?``:String(t),u=new Set(c?.values.map(String)),d;switch(e.kind){case`textarea`:d=(0,V.jsx)(D,{value:l,placeholder:e.placeholder,autoCapitalize:`sentences`,enterKeyHint:`enter`,onChange:e=>a(e.target.value)});break;case`number`:d=(0,V.jsx)(j,{inputMode:`decimal`,autoComplete:`off`,value:l,placeholder:e.placeholder,onChange:e=>a(e.target.value)});break;case`select`:{let t=e.options??[];d=t.length<=5&&t.every(e=>e.length<=28)?(0,V.jsx)(re,{value:l,options:t,onChange:a,disabled:[...u]}):(0,V.jsx)(w,{value:l,placeholder:`—`,onChange:a,options:t.map(e=>({value:e,label:e,disabled:u.has(e)}))});break}case`multiselect`:d=(0,V.jsx)(re,{multi:!0,value:Array.isArray(t)?t:[],options:e.options??[],onChange:a});break;case`date`:d=(0,V.jsx)(j,{type:`date`,value:l,onChange:e=>a(e.target.value),className:`w-full sm:w-56`});break;case`email`:d=(0,V.jsx)(j,{type:`email`,inputMode:`email`,autoComplete:`email`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,value:l,placeholder:e.placeholder,onChange:e=>a(e.target.value)});break;case`url`:d=(0,V.jsx)(j,{type:`url`,inputMode:`url`,autoComplete:`url`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,value:l,placeholder:e.placeholder??`https://`,onChange:e=>a(e.target.value)});break;case`toggle`:d=(0,V.jsx)(te,{checked:t===!0,onChange:a,label:e.label,disabled:u.has(String(t!==!0))});break;case`color`:d=(0,V.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,V.jsx)(A,{value:l||`#e0531b`,onChange:e=>a(e.target.value)}),(0,V.jsx)(j,{value:l,placeholder:`#e0531b`,autoCapitalize:`off`,autoCorrect:`off`,spellCheck:!1,onChange:e=>a(e.target.value),className:`w-36`})]});break;case`image`:case`file`:d=(0,V.jsx)(ir,{field:e,value:t,runId:r,onChange:a,onBusy:o});break;case`items`:d=(0,V.jsx)(nr,{field:e,value:t,values:n,onChange:a});break;case`connection`:d=(0,V.jsx)(zn,{runId:r,connection:i?.connections.find(t=>t.id===e.connection)});break;case`list`:{let t=i?.lists.find(t=>t.def.id===e.list);d=t?(0,V.jsx)(Un,{runId:r,list:t,editable:!0}):null;break}case`location`:d=(0,V.jsx)(En,{value:t,runId:r,placeholder:e.placeholder,onChange:a,onBusy:o});break;case`audio`:d=c?null:(0,V.jsx)(er,{value:t,runId:r,onChange:a,onBusy:o});break;case`signature`:d=(0,V.jsx)(Ln,{label:e.label,value:t,runId:r,onChange:a});break;default:d=e.scan?(0,V.jsx)(or,{field:e,value:l,onChange:a}):(0,V.jsx)(j,{...ar(e),value:l,placeholder:e.placeholder,onChange:e=>a(e.target.value)})}return(0,V.jsxs)(`div`,{children:[e.kind===`toggle`?(0,V.jsxs)(`div`,{className:`flex items-start justify-between gap-6`,children:[(0,V.jsx)(C,{hint:e.help,children:e.label}),d]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(C,{hint:e.help,required:e.required,children:e.label}),d]}),c?(0,V.jsx)(`div`,{className:`mt-1.5 text-[0.8125rem] text-ink-3`,children:N(`run.closed`,{list:c.classes.map(e=>N(`run.cls.${cr[e]}`)).join(`, `)})}):null,s?(0,V.jsx)(`div`,{className:`mt-1.5 text-[0.8125rem] text-rose`,children:s}):null]})}var cr={classifier:`text`,standard:`text`,high:`text`,highest:`text`,image:`image`,video:`video`,speech:`speech`,audio:`audio`};function lr(e,t){this.v=e,this.k=t}function ur(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function dr(e){if(Array.isArray(e))return e}function fr(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function pr(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
3
3
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mr(e,t){return dr(e)||fr(e,t)||hr(e,t)||pr()}function hr(e,t){if(e){if(typeof e==`string`)return ur(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ur(e,t):void 0}}function gr(e){var t,n;function r(t,n){try{var a=e[t](n),o=a.value,s=o instanceof lr;Promise.resolve(s?o.v:o).then(function(n){if(s){var c=t===`return`&&o.k?t:`next`;if(!o.k||n.done)return r(c,n);n=e[c](n).value}i(!!a.done,n)},function(e){r(`throw`,e)})}catch(e){i(2,e)}}function i(e,i){e===2?t.reject(i):t.resolve({value:i,done:e}),(t=t.next)?r(t.key,t.arg):n=null}this._invoke=function(e,i){return new Promise(function(a,o){var s={key:e,arg:i,resolve:a,reject:o,next:null};n?n=n.next=s:(t=n=s,r(e,i))})},typeof e.return!=`function`&&(this.return=void 0)}gr.prototype[typeof Symbol==`function`&&Symbol.asyncIterator||`@@asyncIterator`]=function(){return this},gr.prototype.next=function(e){return this._invoke(`next`,e)},gr.prototype.throw=function(e){return this._invoke(`throw`,e)},gr.prototype.return=function(e){return this._invoke(`return`,e)};var _r=Object.entries,vr=Object.setPrototypeOf,yr=Object.isFrozen,br=Object.getPrototypeOf,xr=Object.getOwnPropertyDescriptor,H=Object.freeze,U=Object.seal,Sr=Object.create,Cr=typeof Reflect<`u`&&Reflect,wr=Cr.apply,Tr=Cr.construct;H||=function(e){return e},U||=function(e){return e},wr||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},Tr||=function(e){return new e(...[...arguments].slice(1))};var Er=K(Array.prototype.forEach);Array.prototype.indexOf;var Dr=K(Array.prototype.lastIndexOf),Or=K(Array.prototype.pop),kr=K(Array.prototype.push);Array.prototype.slice;var Ar=K(Array.prototype.splice),jr=Array.isArray,Mr=K(String.prototype.toLowerCase),Nr=K(String.prototype.toString),Pr=K(String.prototype.match),Fr=K(String.prototype.replace),Ir=K(String.prototype.indexOf),Lr=K(String.prototype.trim),Rr=K(Number.prototype.toString),zr=K(Boolean.prototype.toString),Br=typeof BigInt>`u`?null:K(BigInt.prototype.toString),Vr=typeof Symbol>`u`?null:K(Symbol.prototype.toString),W=K(Object.prototype.hasOwnProperty),Hr=K(Object.prototype.toString),G=K(RegExp.prototype.test),Ur=Wr(TypeError);function K(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return wr(e,t,n)}}function Wr(e){return function(){return Tr(e,[...arguments])}}function q(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Mr;if(vr&&vr(e,null),!jr(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(yr(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Gr(e){for(let t=0;t<e.length;t++)W(e,t)||(e[t]=null);return e}function J(e){let t=Sr(null);for(let r of _r(e)){var n=mr(r,2);let i=n[0],a=n[1];W(e,i)&&(t[i]=jr(a)?Gr(a):a&&typeof a==`object`&&a.constructor===Object?J(a):a)}return t}function Kr(e){switch(typeof e){case`string`:return e;case`number`:return Rr(e);case`boolean`:return zr(e);case`bigint`:return Br?Br(e):`0`;case`symbol`:return Vr?Vr(e):`Symbol()`;case`undefined`:return Hr(e);case`function`:case`object`:{if(e===null)return Hr(e);let t=e,n=qr(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Hr(e)}return Hr(e)}default:return Hr(e)}}function qr(e,t){for(;e!==null;){let n=xr(e,t);if(n){if(n.get)return K(n.get);if(typeof n.value==`function`)return K(n.value)}e=br(e)}function n(){return null}return n}function Jr(e){try{return G(e,``),!0}catch{return!1}}var Yr=H(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),Xr=H(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),Zr=H([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),Qr=H([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),$r=H(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),ei=H([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),ti=H([`#text`]),ni=H(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),ri=H(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dominant-baseline.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.pointer-events.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-orientation.text-rendering.textlength.type.u1.u2.unicode.values.vector-effect.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),ii=H(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),ai=H([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),oi=U(/{{[\w\W]*|^[\w\W]*}}/g),si=U(/<%[\w\W]*|^[\w\W]*%>/g),ci=U(/\${[\w\W]*/g),li=U(/^data-[\-\w.\u00B7-\uFFFF]+$/),ui=U(/^aria-[\-\w]+$/),di=U(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),fi=U(/^(?:\w+script|data):/i),pi=U(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),mi=U(/^html$/i),hi=U(/^[a-z][.\w]*(-[.\w]+)+$/i),gi=U(/<[/\w!]/g),_i=U(/<[/\w]/g),vi=U(/<\/no(script|embed|frames)/i),yi=U(/\/>/i),Y={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},bi=[`style`,`script`,`xmp`,`iframe`,`noembed`,`noframes`,`plaintext`,`noscript`],xi=H(q({},bi)),Si=function(){let e={};return Er(bi,t=>{e[t]=U(RegExp(`</`+t+`(?=[\\t\\n\\f\\r />])`,`i`))}),H(e)}(),Ci=function(){return typeof window>`u`?null:window},wi=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Ti=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ei=function(e,t,n,r){return W(e,t)&&jr(e[t])?q(r.base?J(r.base):{},e[t],r.transform):n},Di=function(e,t,n){let r=W(e,t)?e[t]:void 0;return r&&typeof r==`object`?J(r):n()};function Oi(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ci(),t=e=>Oi(e);if(t.version=`3.4.16`,t.removed=[],!e||!e.document||e.document.nodeType!==Y.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=qr(d,`cloneNode`),p=qr(d,`remove`),m=qr(d,`removeAttributeNode`),h=qr(d,`nextSibling`),g=qr(d,`childNodes`),_=qr(d,`parentNode`),v=qr(d,`shadowRoot`),y=qr(d,`attributes`),b=o&&o.prototype?qr(o.prototype,`nodeType`):null,x=o&&o.prototype?qr(o.prototype,`nodeName`):null,S=o&&o.prototype?qr(o.prototype,`ownerDocument`):null,C=function(e){return b?b(e):e.nodeType},w=function(e){return x?x(e):e.nodeName};if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let T,E=``,D,O=!1,ee=0,te=function(){if(ee>0)throw Ur(`A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.`)},ne=function(e){te(),ee++;try{return T.createHTML(e)}finally{ee--}},k=function(e){te(),ee++;try{return T.createScriptURL(e)}finally{ee--}},A=function(){return O||=(D=wi(u,i),!0),D},j=n,M=j.implementation,re=j.createNodeIterator,ie=j.createDocumentFragment,N=j.getElementsByTagName,ae=r.importNode,P=Ti();t.isSupported=typeof _r==`function`&&typeof _==`function`&&M&&M.createHTMLDocument!==void 0;let oe=oi,se=si,ce=ci,le=li,ue=ui,de=fi,fe=pi,pe=hi,me=di,F=null,he=q({},[...Yr,...Xr,...Zr,...$r,...ti]),I=null,ge=q({},[...ni,...ri,...ii,...ai]),_e=Object.seal(Sr(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ve=null,ye=null,be=Object.seal(Sr(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),xe=!0,Se=!0,Ce=!1,we=!0,Te=!1,Ee=!0,De=!1,Oe=!1,ke=null,Ae=null,je=!1,Me=!1,Ne=!1,Pe=!1,Fe=!0,Ie=!1,Le=`user-content-`,Re=!0,ze=!1,Be={},Ve=null,He=q({},`annotation-xml.audio.colgroup.desc.foreignobject.head.iframe.math.mi.mn.mo.ms.mtext.noembed.noframes.noscript.plaintext.script.selectedcontent.style.svg.template.thead.title.video.xmp`.split(`.`)),Ue=null,We=q({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Ge=null,Ke=q({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),qe=`http://www.w3.org/1998/Math/MathML`,Je=`http://www.w3.org/2000/svg`,L=`http://www.w3.org/1999/xhtml`,Ye=L,Xe=!1,Ze=null,Qe=q({},[qe,Je,L],Nr),$e=H([`mi`,`mo`,`mn`,`ms`,`mtext`]),et=q({},$e),tt=H([`annotation-xml`]),nt=q({},tt),rt=q({},[`title`,`style`,`font`,`a`,`script`]),it=null,at=[`application/xhtml+xml`,`text/html`],R=null,ot=null,st=n.createElement(`form`),ct=function(e){return e instanceof RegExp||e instanceof Function},lt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(ot&&ot===e)return;(!e||typeof e!=`object`)&&(e={}),e=J(e),it=at.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,R=it===`application/xhtml+xml`?Nr:Mr,F=Ei(e,`ALLOWED_TAGS`,he,{transform:R}),I=Ei(e,`ALLOWED_ATTR`,ge,{transform:R}),Ze=Ei(e,`ALLOWED_NAMESPACES`,Qe,{transform:Nr}),Ge=Ei(e,`ADD_URI_SAFE_ATTR`,Ke,{transform:R,base:Ke}),Ue=Ei(e,`ADD_DATA_URI_TAGS`,We,{transform:R,base:We}),Ve=Ei(e,`FORBID_CONTENTS`,He,{transform:R}),ve=Ei(e,`FORBID_TAGS`,J({}),{transform:R}),ye=Ei(e,`FORBID_ATTR`,J({}),{transform:R}),Be=W(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?J(e.USE_PROFILES):e.USE_PROFILES:!1,xe=e.ALLOW_ARIA_ATTR!==!1,Se=e.ALLOW_DATA_ATTR!==!1,Ce=e.ALLOW_UNKNOWN_PROTOCOLS||!1,we=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Te=e.SAFE_FOR_TEMPLATES||!1,Ee=e.SAFE_FOR_XML!==!1,De=e.WHOLE_DOCUMENT||!1,Me=e.RETURN_DOM||!1,Ne=e.RETURN_DOM_FRAGMENT||!1,Pe=e.RETURN_TRUSTED_TYPE||!1,je=e.FORCE_BODY||!1,Fe=e.SANITIZE_DOM!==!1,Ie=e.SANITIZE_NAMED_PROPS||!1,Re=e.KEEP_CONTENT!==!1,ze=e.IN_PLACE||!1,me=Jr(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:di,Ye=typeof e.NAMESPACE==`string`?e.NAMESPACE:L,et=Di(e,`MATHML_TEXT_INTEGRATION_POINTS`,()=>q({},$e)),nt=Di(e,`HTML_INTEGRATION_POINTS`,()=>q({},tt));let t=Di(e,`CUSTOM_ELEMENT_HANDLING`,()=>Sr(null));if(_e=Sr(null),W(t,`tagNameCheck`)&&ct(t.tagNameCheck)&&(_e.tagNameCheck=t.tagNameCheck),W(t,`attributeNameCheck`)&&ct(t.attributeNameCheck)&&(_e.attributeNameCheck=t.attributeNameCheck),W(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(_e.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),U(_e),Te&&(Se=!1),Ne&&(Me=!0),Be&&(F=q({},ti),I=Sr(null),Be.html===!0&&(q(F,Yr),q(I,ni)),Be.svg===!0&&(q(F,Xr),q(I,ri),q(I,ai)),Be.svgFilters===!0&&(q(F,Zr),q(I,ri),q(I,ai)),Be.mathMl===!0&&(q(F,$r),q(I,ii),q(I,ai))),be.tagCheck=null,be.attributeCheck=null,W(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?be.tagCheck=e.ADD_TAGS:jr(e.ADD_TAGS)&&(F===he&&(F=J(F)),q(F,e.ADD_TAGS,R))),W(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?be.attributeCheck=e.ADD_ATTR:jr(e.ADD_ATTR)&&(I===ge&&(I=J(I)),q(I,e.ADD_ATTR,R))),W(e,`ADD_FORBID_CONTENTS`)&&jr(e.ADD_FORBID_CONTENTS)&&(Ve===He&&(Ve=J(Ve)),q(Ve,e.ADD_FORBID_CONTENTS,R)),Re&&(F[`#text`]=!0),De&&q(F,[`html`,`head`,`body`]),F.table&&(q(F,[`tbody`]),delete ve.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Ur(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Ur(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);let t=T;T=e.TRUSTED_TYPES_POLICY;try{E=ne(``)}catch(e){throw T=t,e}}else e.TRUSTED_TYPES_POLICY===null?(T=void 0,E=``):(T===void 0&&(T=A()),T&&typeof E==`string`&&(E=ne(``)));H&&H(e),ot=e},ut=q({},[...Xr,...Zr,...Qr]),dt=q({},[...$r,...ei]),ft=function(e,t,n){return t.namespaceURI===L?e===`svg`:t.namespaceURI===qe?e===`svg`&&(n===`annotation-xml`||et[n]):!!ut[e]},pt=function(e,t,n){return t.namespaceURI===L?e===`math`:t.namespaceURI===Je?e===`math`&&nt[n]:!!dt[e]},mt=function(e,t,n){return t.namespaceURI===Je&&!nt[n]||t.namespaceURI===qe&&!et[n]?!1:!dt[e]&&(rt[e]||!ut[e])},ht=function(e){let t=_(e);(!t||!t.tagName)&&(t={namespaceURI:Ye,tagName:`template`});let n=Mr(e.tagName),r=Mr(t.tagName);return Ze[e.namespaceURI]?e.namespaceURI===Je?ft(n,t,r):e.namespaceURI===qe?pt(n,t,r):e.namespaceURI===L?mt(n,t,r):!!(it===`application/xhtml+xml`&&Ze[e.namespaceURI]):!1},gt=function(e){kr(t.removed,{element:e});try{_(e).removeChild(e)}catch{if(p(e),!_(e))throw Ur(`a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place`)}},_t=function(e,t,n){try{m(e,t)}catch{try{e.removeAttribute(n)}catch{}}},z=function(e){bt(e);let t=g(e);if(t){let e=[];Er(t,t=>{kr(e,t)}),Er(e,e=>{try{p(e)}catch{}})}let n=y(e);if(n)for(let t=n.length-1;t>=0;--t){let r=n[t],i=r&&r.name;typeof i==`string`&&_t(e,r,i)}},vt=function(e,n,r){if(!r)try{r=n.getAttributeNode(e)}catch{r=null}kr(t.removed,{attribute:r||null,from:n});try{r?m(n,r):n.removeAttribute(e)}catch{try{n.removeAttribute(e)}catch{}}if(e===`is`){if(Me||Ne)try{gt(n)}catch{}else try{n.setAttribute(e,``)}catch{}}},yt=function(e){let t=y(e);if(t)for(let n=t.length-1;n>=0;--n){let r=t[n],i=r&&r.name;typeof i!=`string`||I[R(i)]||_t(e,r,i)}},bt=function(e){let t=[e];for(;t.length>0;){let e=t.pop();C(e)===Y.element&&yt(e);let n=g(e);if(n)for(let e=n.length-1;e>=0;--e)t.push(n[e])}},B=function(e,t){return Ee?e===`patchsrc`||e===`for`&&t!==`label`&&t!==`output`:!1},xt=function(e){if(!Ee)return;let t=[e];for(;t.length>0;){let e=t.pop(),n=C(e);if(n===Y.processingInstruction||n===Y.comment&&G(_i,e.data)){try{p(e)}catch{}continue}if(n===Y.element){let t=e,n=R(w(e));try{t.hasAttribute&&t.hasAttribute(`patchsrc`)&&t.removeAttribute(`patchsrc`),t.hasAttribute&&t.hasAttribute(`for`)&&B(`for`,n)&&t.removeAttribute(`for`)}catch{}}let r=g(e);if(r)for(let e=r.length-1;e>=0;--e)t.push(r[e])}},St=function(e){let t=null,r=null;if(je)e=`<remove></remove>`+e;else{let t=Pr(e,/^[\r\n\t ]+/);r=t&&t[0]}it===`application/xhtml+xml`&&Ye===L&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=T?ne(e):e;if(Ye===L)try{t=new l().parseFromString(i,it)}catch{}if(!t||!t.documentElement){t=M.createDocument(Ye,`template`,null);try{t.documentElement.innerHTML=Xe?E:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Ye===L?N.call(t,De?`html`:`body`)[0]:De?t.documentElement:a},Ct=function(e){let t=S?S(e):e.ownerDocument;return re.call(t||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},wt=function(e){return e=Fr(e,oe,` `),e=Fr(e,se,` `),e=Fr(e,ce,` `),e},V=function(e){e.normalize();let t=S?S(e):e.ownerDocument,n=re.call(t||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),r=n.nextNode();for(;r;)r.data=wt(r.data),r=n.nextNode();let i=e.querySelectorAll?.call(e,`template`);i&&Er(i,e=>{Et(e.content)&&V(e.content)})},Tt=function(e){let t=x?x(e):null;return typeof t!=`string`||R(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==y(e)||typeof e.removeAttribute!=`function`||typeof e.removeAttributeNode!=`function`||typeof e.getAttributeNode!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==b(e)||e.childNodes!==g(e)},Et=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return b(e)===Y.documentFragment}catch{return!1}},Dt=function(e){if(!b||typeof e!=`object`||!e)return!1;try{return typeof b(e)==`number`}catch{return!1}};function Ot(e,n,r){e.length!==0&&Er(e,e=>{e.call(t,n,r,ot)})}let kt=function(e,t){return!!(Ee&&e.hasChildNodes()&&!Dt(e.firstElementChild)&&G(gi,e.textContent)&&G(gi,e.innerHTML)||Ee&&e.namespaceURI===L&&xi[t]&&(Dt(e.firstElementChild)||typeof e.textContent==`string`&&G(Si[t],e.textContent))||e.nodeType===Y.processingInstruction||Ee&&e.nodeType===Y.comment&&G(_i,e.data))},At=function(e,t){return e instanceof RegExp?G(e,t):e instanceof Function&&!!e(t,...[...arguments].slice(2))},jt=function(e,t,n){if(!ve[t]&&Lt(t)&&At(_e.tagNameCheck,t))return!1;if(Re&&!Ve[t]){let t=_(e),r=g(e);if(r&&t){let i=r.length;for(let a=i-1;a>=0;--a){let i=e===n?f(r[a],!0):r[a];t.insertBefore(i,h(e))}}}return gt(e),!0},Mt=function(e,t,n,r){return e.length===0?t:t===n||t===r?J(t):t},Nt=function(e,t){return e===t||_(e)!==null?!1:(ze&&bt(e),!0)},Pt=function(e,n){if(Ot(P.beforeSanitizeElements,e,null),Nt(e,n))return!0;if(Tt(e))return gt(e),!0;let r=R(w(e));if(F=Mt(P.uponSanitizeElement,F,he,ke),Ot(P.uponSanitizeElement,e,{tagName:r,allowedTags:F}),Nt(e,n))return!0;if(kt(e,r))return gt(e),!0;if(ve[r]||!(be.tagCheck instanceof Function&&be.tagCheck(r))&&!F[r]){let t=jt(e,r,n);return t===!1&&(Ot(P.afterSanitizeElements,e,null),Nt(e,n))?!0:t}if(C(e)===Y.element&&!ht(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&G(vi,e.innerHTML))return gt(e),!0;if(Te&&e.nodeType===Y.text){let n=wt(e.textContent);e.textContent!==n&&(kr(t.removed,{element:e.cloneNode()}),e.textContent=n)}return Ot(P.afterSanitizeElements,e,null),Nt(e,n)},Ft=function(e,t,r){if(ye[t]||B(t,e)||Fe&&(t===`id`||t===`name`)&&(r in n||r in st))return!1;let i=I[t]||be.attributeCheck instanceof Function&&be.attributeCheck(t,e);return Se&&G(le,t)||xe&&G(ue,t)?!0:i?Ge[t]||G(me,Fr(r,fe,``))||(t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&Ir(r,`data:`)===0&&Ue[e]||Ce&&!G(de,Fr(r,fe,``))?!0:!r:Lt(e)&&At(_e.tagNameCheck,e)&&At(_e.attributeNameCheck,t,e)||t===`is`&&_e.allowCustomizedBuiltInElements&&At(_e.tagNameCheck,r)},It=q({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),Lt=function(e){return!It[Mr(e)]&&G(pe,e)},Rt=function(e,t,n,r){if(T&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!n)switch(u.getAttributeType(e,t)){case`TrustedHTML`:return ne(r);case`TrustedScriptURL`:return k(r)}return r},zt=function(e,t,n,r){try{return n?e.setAttributeNS(n,t,r):e.setAttribute(t,r),!Tt(e)||(gt(e),!1)}catch{return vt(t,e),!1}},Bt=function(e,n){if(Ot(P.beforeSanitizeAttributes,e,null),Nt(e,n))return;let r=e.attributes;if(!r||Tt(e))return;I=Mt(P.uponSanitizeAttribute,I,ge,Ae);let i={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:I,forceKeepAttr:void 0},a=r.length,o=R(e.nodeName);for(;a--;){let n=r[a],s=n.name,c=n.namespaceURI,l=n.value,u=R(s),d=l,f=s===`value`?d:Lr(d),p=!1;if(i.attrName=u,i.attrValue=f,i.keepAttr=!0,i.forceKeepAttr=void 0,Ot(P.uponSanitizeAttribute,e,i),f=i.attrValue,Ie&&(u===`id`||u===`name`)&&Ir(f,Le)!==0&&(vt(s,e,n),f=Le+f,p=!0),Ee&&G(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,f)){vt(s,e,n);continue}if(u===`attributename`&&Pr(f,`href`)){vt(s,e,n);continue}if(!i.forceKeepAttr){if(!i.keepAttr){vt(s,e,n);continue}if(!we&&G(yi,f)){vt(s,e,n);continue}if(Te&&(f=wt(f)),!Ft(o,u,f)){vt(s,e,n);continue}f=Rt(o,u,c,f),f!==d&&zt(e,s,c,f)&&p&&Or(t.removed)}}Ot(P.afterSanitizeAttributes,e,null),Nt(e,n)},Vt=function(e){let t=null,n=Ct(e);for(Ot(P.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(Ot(P.uponSanitizeShadowNode,t,null),Pt(t,e),Bt(t,e),Et(t.content)&&Vt(t.content),C(t)===Y.element){let e=v(t);Et(e)&&(Ht(e),Vt(e))}Ot(P.afterSanitizeShadowDOM,e,null)},Ht=function(e){let t=[{node:e,shadow:null}];for(;t.length>0;){let e=t.pop();if(e.shadow){Vt(e.shadow);continue}let n=e.node,r=C(n)===Y.element,i=g(n);if(i)for(let e=i.length-1;e>=0;--e)t.push({node:i[e],shadow:null});if(r){let e=x?x(n):null;if(typeof e==`string`&&R(e)===`template`){let e=n.content;Et(e)&&t.push({node:e,shadow:null})}}if(r){let e=v(n);Et(e)&&t.push({node:null,shadow:e},{node:e,shadow:null})}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Xe=!e,Xe&&(e=`<!-->`),typeof e!=`string`&&!Dt(e)&&(e=Kr(e),typeof e!=`string`))throw Ur(`dirty is not a string, aborting`);if(!t.isSupported)return e;Oe?(F=ke,I=Ae):lt(n),(P.uponSanitizeElement.length>0||P.uponSanitizeAttribute.length>0)&&(F=J(F)),P.uponSanitizeAttribute.length>0&&(I=J(I)),t.removed=[];let c=ze&&typeof e!=`string`&&Dt(e);if(c){xt(e);let t=w(e);if(typeof t==`string`){let n=R(t);if(!F[n]||ve[n])throw z(e),Ur(`root node is forbidden and cannot be sanitized in-place`)}if(Tt(e))throw z(e),Ur(`root node is clobbered and cannot be sanitized in-place`);try{Ht(e)}catch(t){throw z(e),t}}else if(Dt(e))i=St(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===Y.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),Ht(i);else{if(!Me&&!Te&&!De&&e.indexOf(`<`)===-1)return T&&Pe?ne(e):e;if(i=St(e),!i)return Me?null:Pe?E:``}i&&je&>(i.firstChild);let l=c?e:i;try{let e=Ct(l);for(;o=e.nextNode();)Pt(o,l),Bt(o,l),Et(o.content)&&Vt(o.content)}catch(n){throw c&&(z(e),Er(t.removed,e=>{e.element&&bt(e.element)})),n}if(c){let n=!1;if(Er(t.removed,t=>{t.element&&(t.element===e&&(n=!0),bt(t.element))}),n)throw Ur(`a node selected for removal could not be safely returned; refusing to sanitize in place`);return Te&&V(e),e}if(Me){if(Te&&V(i),Ne)for(s=ie.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(I.shadowroot||I.shadowrootmode)&&(s=ae.call(r,s,!0)),s}let u=De?i.outerHTML:i.innerHTML;return De&&F[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&G(mi,i.ownerDocument.doctype.name)&&(u=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
4
4
|
`+u),Te&&(u=wt(u)),T&&Pe?ne(u):u},t.setConfig=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};lt(e),Oe=!0,ke=F,Ae=I},t.clearConfig=function(){ot=null,Oe=!1,ke=null,Ae=null,T=D,E=``},t.isValidAttribute=function(e,t,n){ot||lt({});let r=R(e),i=R(t);return Ft(r,i,n)},t.addHook=function(e,t){typeof t==`function`&&W(P,e)&&kr(P[e],t)},t.removeHook=function(e,t){if(W(P,e)){if(t!==void 0){let n=Dr(P[e],t);return n===-1?void 0:Ar(P[e],n,1)[0]}return Or(P[e])}},t.removeHooks=function(e){W(P,e)&&(P[e]=[])},t.removeAllHooks=function(){P=Ti()},t}var ki=Oi();function Ai(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var ji=Ai();function Mi(e){ji=e}var Ni={exec:()=>null};function Pi(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function X(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(Z.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var Fi=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),Z={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Pi(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Pi(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:Pi(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:Pi(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:Pi(e=>RegExp(`^ {0,${e}}(?:</?(?:${Xi})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,`i`)),blockquoteBeginRegex:Pi(e=>RegExp(`^ {0,${e}}>`))},Ii=/^(?:[ \t]*(?:\n|$))+/,Li=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Ri=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,zi=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Bi=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Vi=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Hi=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Ui=X(Hi).replace(/bull/g,Vi).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),Wi=X(Hi).replace(/bull/g,Vi).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Gi=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,Ki=/^[^\n]+/,qi=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Ji=X(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,qi).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Yi=X(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,Vi).getRegex(),Xi=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,Zi=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Qi=X(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,Zi).replace(`tag`,Xi).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),$i=e=>X(Gi).replace(`hr`,zi).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Xi).getRegex(),ea=$i(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),ta=$i(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),na={blockquote:X(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,ta).getRegex(),code:Li,def:Ji,fences:Ri,heading:Bi,hr:zi,html:Qi,lheading:Ui,list:Yi,newline:Ii,paragraph:ea,table:Ni,text:Ki},ra=X(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,zi).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Xi).getRegex(),ia={...na,lheading:Wi,table:ra,paragraph:X(Gi).replace(`hr`,zi).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,ra).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,Xi).getRegex()},aa={...na,html:X(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,Zi).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ni,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:X(Gi).replace(`hr`,zi).replace(`heading`,` *#{1,6} *[^
|
|
5
5
|
]`).replace(`lheading`,Ui).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},oa=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,sa=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ca=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,la=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,ua=/[\p{P}\p{S}]/u,da=/[\s\p{P}\p{S}]/u,fa=/[^\s\p{P}\p{S}]/u,pa=X(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,da).getRegex(),ma=/[\p{Pi}\p{Ps}"']/u,ha=/(?!~)[\p{P}\p{S}]/u,ga=/(?!~)[\s\p{P}\p{S}]/u,_a=/(?:[^\s\p{P}\p{S}]|~)/u,va=X(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,Fi?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),ya=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,ba=X(ya,`u`).replace(/punct/g,ua).getRegex(),xa=X(ya,`u`).replace(/punct/g,ha).getRegex(),Sa=X(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,ma).replace(/punct/g,ua).getRegex(),Ca=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,wa=X(Ca,`gu`).replace(/notPunctSpace/g,fa).replace(/punctSpace/g,da).replace(/punct/g,ua).getRegex(),Ta=X(Ca,`gu`).replace(/notPunctSpace/g,_a).replace(/punctSpace/g,ga).replace(/punct/g,ha).getRegex(),Ea=X(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,fa).replace(/punctSpace/g,da).replace(/punct/g,ua).getRegex(),Da=X(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,fa).replace(/punctSpace/g,da).replace(/punct/g,ua).getRegex(),Oa=X(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,fa).replace(/punctSpace/g,da).replace(/punct/g,ua).getRegex(),ka=X(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,ua).getRegex(),Aa=X(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,fa).replace(/punctSpace/g,da).replace(/punct/g,ua).getRegex(),ja=X(/\\(punct)/,`gu`).replace(/punct/g,ua).getRegex(),Ma=X(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Na=X(Zi).replace(`(?:-->|$)`,`-->`).getRegex(),Pa=X(`^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,Na).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Fa=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,Ia=X(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,Fa).getRegex(),La=X(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,Ia).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ra=X(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Ia).replace(`ref`,qi).getRegex(),za=X(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,qi).getRegex(),Ba=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,Va=X(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace(`brackets`,Fa).getRegex(),Ha=X(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,X(/^!?\[(label)\]\[(ref)\]/).replace(`label`,Va).replace(`ref`,Ba).getRegex()).replace(`nolink`,X(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Ba).getRegex()).getRegex(),Ua=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Wa=X(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),Ga={_backpedal:Ni,anyPunctuation:ja,autolink:Ma,blockSkip:va,br:ca,code:sa,del:Ni,delLDelim:Ni,delRDelim:Ni,emStrongLDelim:ba,emStrongRDelimAst:wa,emStrongRDelimUnd:Da,escape:oa,link:La,nolink:za,punctuation:pa,reflink:Ra,reflinkSearch:Ha,tag:Pa,text:la,url:Ni},Ka={...Ga,emStrongLDelim:Sa,emStrongRDelimAst:Ea,emStrongRDelimUnd:Oa,link:X(/^!?\[(label)\]\((.*?)\)/).replace(`label`,Ia).getRegex(),reflink:X(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,Ia).getRegex()},qa={...Ga,emStrongRDelimAst:Ta,emStrongLDelim:xa,delLDelim:ka,delRDelim:Aa,url:X(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`emailProtocol`,Wa).replace(`protocol`,Ua).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:X(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace(`protocol`,Ua).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},Ja={...qa,br:X(ca).replace(`{2,}`,`*`).getRegex(),text:X(qa.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},Ya={normal:na,gfm:ia,pedantic:aa},Xa={normal:Ga,gfm:qa,breaks:Ja,pedantic:Ka},Za={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},Qa=e=>Za[e];function Q(e,t){if(t){if(Z.escapeTest.test(e))return e.replace(Z.escapeReplace,Qa)}else if(Z.escapeTestNoEncode.test(e))return e.replace(Z.escapeReplaceNoEncode,Qa);return e}function $a(e){return e.replace(Z.numericCharacterReference,(e,t,n)=>{let r=t===void 0?Number.parseInt(n,16):Number.parseInt(t,10);return r===0||r>1114111||r>=55296&&r<=57343?`�`:String.fromCodePoint(r)})}function eo(e){try{e=encodeURI(e).replace(Z.percentDecode,`%`)}catch{return null}return e}function to(e,t){let n=e.replace(Z.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(Z.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(Z.slashPipe,`|`);return n}function no(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function ro(e){let t=e.split(`
|
|
@@ -67,4 +67,4 @@ ${this.parser.parse(e)}</blockquote>
|
|
|
67
67
|
${e}</tr>
|
|
68
68
|
`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?`th`:`td`;return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
|
|
69
69
|
`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${Q(e,!0)}</code>`}br(e){return`<br>`}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,text:n,tokens:r,autolink:i}){let a=i?Q(n,!0):this.parser.parseInline(r),o=eo(e);if(o===null)return a;e=Q(o,i);let s=`<a href="`+e+`"`;return t&&(s+=` title="`+Q(t)+`"`),s+=`>`+a+`</a>`,s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=eo(e);if(i===null)return Q(n);e=i;let a=`<img src="${Q(e)}" alt="${Q(n)}"`;return t&&(a+=` title="${Q(t)}"`),a+=`>`,a}text(e){return`tokens`in e&&e.tokens?this.parser.parseInline(e.tokens):`escaped`in e&&e.escaped?e.text:Q(e.text)}},mo=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return``+e}image({text:e}){return``+e}br(){return``}checkbox({raw:e}){return e}},ho=class e{options;renderer;textRenderer;constructor(e){this.options=e||ji,this.options.renderer=this.options.renderer||new po,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new mo}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e){this.renderer.parser=this;let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let e=r,n=this.options.extensions.renderers[e.type].call({parser:this},e);if(n!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`checkbox`,`html`,`def`,`paragraph`,`text`].includes(e.type)){t+=n||``;continue}}let i=r;switch(i.type){case`space`:t+=this.renderer.space(i);break;case`hr`:t+=this.renderer.hr(i);break;case`heading`:t+=this.renderer.heading(i);break;case`code`:t+=this.renderer.code(i);break;case`table`:t+=this.renderer.table(i);break;case`blockquote`:t+=this.renderer.blockquote(i);break;case`list`:t+=this.renderer.list(i);break;case`checkbox`:t+=this.renderer.checkbox(i);break;case`html`:t+=this.renderer.html(i);break;case`def`:t+=this.renderer.def(i);break;case`paragraph`:t+=this.renderer.paragraph(i);break;case`text`:t+=this.renderer.text(i);break;default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`checkbox`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}let a=i;switch(a.type){case`escape`:n+=t.text(a);break;case`html`:n+=t.html(a);break;case`link`:n+=t.link(a);break;case`image`:n+=t.image(a);break;case`checkbox`:n+=t.checkbox(a);break;case`strong`:n+=t.strong(a);break;case`em`:n+=t.em(a);break;case`codespan`:n+=t.codespan(a);break;case`br`:n+=t.br(a);break;case`del`:n+=t.del(a);break;case`text`:n+=t.text(a);break;default:{let e=`Token with "`+a.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},go=class{options;block;constructor(e){this.options=e||ji}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`,`emStrongMask`]);static passThroughHooksRespectAsync=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?fo.lex:fo.lexInline}provideParser(e=this.block){return e?ho.parse:ho.parseInline}},_o=new class{defaults=Ai();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ho;Renderer=po;TextRenderer=mo;Lexer=fo;Tokenizer=uo;Hooks=go;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case`table`:{let e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new po(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if([`options`,`parser`].includes(n))continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new uo(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new go;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if([`options`,`block`].includes(n))continue;let r=n,i=e.hooks[r],a=t[r];t[r]=go.passThroughHooks.has(n)?e=>{if(this.defaults.async&&go.passThroughHooksRespectAsync.has(n))return(async()=>{let n=await i.call(t,e);return a.call(t,n)})();let r=i.call(t,e);return a.call(t,r)}:(...e)=>{if(this.defaults.async)return(async()=>{let n=await i.apply(t,e);return n===!1&&(n=await a.apply(t,e)),n})();let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return fo.lex(e,t??this.defaults)}parser(e,t){return ho.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(Error(`marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.`));if(typeof t>`u`||t===null)return a(Error(`marked(): input parameter is undefined or null`));if(typeof t!=`string`)return a(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(t)+`, string expected`));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let n=i.hooks?await i.hooks.preprocess(t):t,r=await(i.hooks?await i.hooks.provideLexer(e):e?fo.lex:fo.lexInline)(n,i),a=i.hooks?await i.hooks.processAllTokens(r):r;i.walkTokens&&await Promise.all(this.walkTokens(a,i.walkTokens));let o=await(i.hooks?await i.hooks.provideParser(e):e?ho.parse:ho.parseInline)(a,i);return i.hooks?await i.hooks.postprocess(o):o})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let n=(i.hooks?i.hooks.provideLexer(e):e?fo.lex:fo.lexInline)(t,i);i.hooks&&(n=i.hooks.processAllTokens(n)),i.walkTokens&&this.walkTokens(n,i.walkTokens);let r=(i.hooks?i.hooks.provideParser(e):e?ho.parse:ho.parseInline)(n,i);return i.hooks&&(r=i.hooks.postprocess(r)),r}catch(e){return a(e)}}}onError(e,t){return n=>{if(n.message+=`
|
|
70
|
-
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Q(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function $(e,t){return _o.parse(e,t)}$.options=$.setOptions=function(e){return _o.setOptions(e),$.defaults=_o.defaults,Mi($.defaults),$},$.getDefaults=Ai,$.defaults=ji;function vo(...e){return _o.use(...e),$.defaults=_o.defaults,Mi($.defaults),$}$.use=vo,$.walkTokens=function(e,t){return _o.walkTokens(e,t)},$.parseInline=_o.parseInline,$.Parser=ho,$.parser=ho.parse,$.Renderer=po,$.TextRenderer=mo,$.Lexer=fo,$.lexer=fo.lex,$.Tokenizer=uo,$.Hooks=go,$.parse=$,$.options,$.setOptions,$.walkTokens,$.parseInline,ho.parse,fo.lex;function yo({text:e,className:t}){let n=(0,z.useMemo)(()=>ki.sanitize($.parse(e,{async:!1})),[e]);return(0,V.jsx)(`div`,{className:E(`prose-zen`,t),dangerouslySetInnerHTML:{__html:n}})}function bo({src:e,page:t,height:n,fit:r}){let i=(0,z.useRef)(null),[a,o]=(0,z.useState)(0);(0,z.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(()=>o(e.clientWidth));return t.observe(e),o(e.clientWidth),()=>t.disconnect()},[]);let[s,c]=(0,z.useState)(null);(0,z.useEffect)(()=>{let t=!0;return fetch(e,{credentials:`include`}).then(e=>e.ok?e.text():``).then(n=>t&&c({src:e,text:n})),()=>{t=!1}},[e]);let l=t??Math.max(a,900),u=a?r?a/l:Math.min(1,a/l):1;return(0,V.jsxs)(`div`,{ref:i,className:`relative overflow-hidden rounded-lg bg-white ring-1 ring-border-soft`,style:{height:n*u},children:[s?.src===e?(0,V.jsx)(`iframe`,{title:`preview`,srcDoc:s.text,sandbox:`allow-scripts allow-popups allow-popups-to-escape-sandbox`,className:`absolute top-0 left-0 origin-top-left border-0`,style:{width:l,height:n,transform:`scale(${u})`}},e):(0,V.jsx)(`div`,{className:`absolute inset-0 animate-pulse bg-paper-2`}),(0,V.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`absolute top-3 right-3 inline-flex size-9 items-center justify-center rounded-full bg-card/90 text-ink-2 shadow-soft ring-1 ring-border-soft backdrop-blur hover:text-ink coarse:size-11`,"aria-label":N(`run.openFull`),children:(0,V.jsx)(qe,{className:`size-4`})})]})}var xo={disc:{file:`ai`,box:566.93,x:89.28,y:100.72,w:365.49,h:365.49},generated:{file:`ai-generated`,box:1789.84,x:207.3,y:144.36,w:1384.24,h:266.41},edited:{file:`ai-modified`,box:1700.79,x:231.11,y:144.36,w:1230.56,h:266.41}};function So({icon:e,tone:t,size:n,className:r}){let i=xo[e],a=n/i.h;return(0,V.jsx)(`img`,{src:s(`ai-labels/${i.file}-${t}.svg`),alt:``,draggable:!1,className:E(`pointer-events-none absolute max-w-none select-none`,r),style:{width:i.box*a,height:566.93*a,left:-i.x*a,top:-i.y*a}})}function Co({ai:e,className:t}){let[n,r]=(0,z.useState)(!1);if(!e)return null;let i=xo[e],a=t===`static`,o=a?[[`black`,`dark:hidden`],[`white`,`hidden dark:block`]]:[[`white`,``]];return(0,V.jsx)(`button`,{type:`button`,"aria-label":N(e===`edited`?`ai.modified`:`ai.generated`),"aria-expanded":n,"data-open":n,onClick:()=>r(e=>!e),className:E(`group block cursor-default overflow-hidden rounded-full backdrop-blur-md transition-[width] duration-200`,`w-[var(--ai-disc)] hover:w-[var(--ai-long)] focus-visible:w-[var(--ai-long)] data-[open=true]:w-[var(--ai-long)]`,a?`relative`:E(`absolute shadow-[0_1px_3px_rgba(0,0,0,0.25)]`,t??`bottom-2 left-2`)),style:{height:18,"--ai-disc":`18px`,"--ai-long":`${i.w/i.h*18}px`},children:o.map(([t,r])=>(0,V.jsxs)(`span`,{className:r,children:[(0,V.jsx)(So,{icon:`disc`,tone:t,size:18,className:E(`transition-opacity duration-200`,n?`opacity-0`:`opacity-100 group-hover:opacity-0 group-focus-visible:opacity-0`)}),(0,V.jsx)(So,{icon:e,tone:t,size:18,className:E(`transition-opacity duration-200`,n?`opacity-100`:`opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`)})]},t))})}function wo(e,t){return e.type===`agent`?e.output.fields?.find(e=>e.id===t)?.description??t:t}function To({step:e,json:t}){return!t||typeof t!=`object`?(0,V.jsx)(`pre`,{className:`text-[0.8125rem]`,children:JSON.stringify(t,null,2)}):(0,V.jsx)(`div`,{className:`flex flex-col gap-4`,children:Object.entries(t).map(([t,n])=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`mb-1 font-medium text-[0.75rem] text-ink-3 uppercase tracking-[0.06em]`,children:wo(e,t)}),typeof n==`boolean`?(0,V.jsx)(`div`,{className:`text-[0.9375rem]`,children:N(n?`run.yes`:`run.no`)}):typeof n==`string`||typeof n==`number`?(0,V.jsx)(`div`,{className:`whitespace-pre-wrap text-[0.9375rem]`,children:String(n)}):Array.isArray(n)&&n.every(e=>typeof e!=`object`)?(0,V.jsx)(`ul`,{className:`list-disc pl-5 text-[0.875rem]`,children:n.map((e,t)=>(0,V.jsx)(`li`,{className:`break-words`,children:String(e)},t))}):Array.isArray(n)&&n.length&&typeof n[0]==`object`?(0,V.jsx)(Eo,{rows:n}):(0,V.jsx)(`pre`,{className:`overflow-auto rounded-lg bg-paper-2 p-3 text-[0.75rem]`,children:JSON.stringify(n,null,2)})]},t))})}function Eo({rows:e}){let t=[...new Set(e.flatMap(e=>Object.keys(e)))];return(0,V.jsx)(`div`,{className:`overflow-x-auto rounded-lg ring-1 ring-border-soft`,children:(0,V.jsxs)(`table`,{className:`w-full text-[0.8125rem]`,children:[(0,V.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,V.jsx)(`tr`,{children:t.map(e=>(0,V.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:e},e))})}),(0,V.jsx)(`tbody`,{children:e.map((e,n)=>(0,V.jsx)(`tr`,{className:`border-border-soft border-t`,children:t.map(t=>(0,V.jsx)(`td`,{className:`px-3 py-2 tabular-nums`,children:e[t]===null||e[t]===void 0?``:String(e[t])},t))},n))})]})})}function Do({text:e}){let[t,n]=(0,z.useState)(!1);return(0,V.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[t?(0,V.jsx)(m,{className:`size-3.5`}):(0,V.jsx)(h,{className:`size-3.5`}),N(t?`share.copied`:`run.copy`)]})}function Oo({base:e,step:t,output:n,editable:r,draft:a,onDraft:o,picked:s,onPick:c}){if(!n)return null;let l=t=>i(`${e}/assets/${t}`);if(t.type===`widget`||t.type===`film`){let e=n.assets?.find(e=>e.kind===`video`);if(e){let r=n.assets?.find(e=>e.kind===`poster`),i=t.type===`film`?t.format===`9:16`:(t.size?.height??0)>(t.size?.width??1);return(0,V.jsxs)(`div`,{className:E(`relative mx-auto`,i?`w-fit`:`w-full`),children:[(0,V.jsx)(`video`,{src:l(e.id),poster:r?l(r.id):void 0,controls:!0,playsInline:!0,className:E(`rounded-lg bg-black ring-1 ring-border-soft`,i?`max-h-[76vh]`:`w-full`)}),(0,V.jsx)(Co,{ai:e.ai,className:`top-2 right-2`})]})}if(t.type===`film`)return null;let r=n.assets?.find(e=>e.mime===`text/html`),i=t.size??{width:1280,height:720};return r?(0,V.jsx)(bo,{src:l(r.id),page:i.width,height:i.height,fit:!0}):null}if(t.type===`generate`){let e=n.assets?.[0];if(!e)return null;if(t.asset===`voice`)return(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(`audio`,{src:l(e.id),controls:!0,className:`w-full`}),(0,V.jsx)(Co,{ai:e.ai,className:`static`}),n.text?(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-2 leading-relaxed`,children:n.text}):null]});if((n.assets?.length??0)>1&&(t.asset===`image`||t.asset===`video`)){let e=t.options?.aspectRatio===`9:16`||t.options?.aspectRatio===`2:3`;return(0,V.jsx)(`div`,{className:E(`grid gap-3`,e?`grid-cols-2 sm:grid-cols-3`:`sm:grid-cols-2`),children:n.assets?.map((e,n)=>{let r=s?.includes(n);return(0,V.jsxs)(`figure`,{className:E(`relative overflow-hidden rounded-lg bg-paper-2 ring-1 ring-border-soft`,r&&`ring-2 ring-ember`),children:[t.asset===`image`?(0,V.jsx)(`img`,{src:l(e.id),alt:`${t.title} ${n+1}`,className:`w-full`}):(0,V.jsx)(`video`,{src:l(e.id),controls:!0,playsInline:!0,loop:!0,className:`w-full`}),c?(0,V.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>c(n),className:E(`absolute top-2 left-2 inline-flex h-8 items-center gap-1.5 rounded-full px-3 font-medium text-[0.75rem] shadow-soft backdrop-blur coarse:h-11`,r?`bg-ember text-white`:`bg-card/90 text-ink-2 hover:text-ink`),children:[r?(0,V.jsx)(m,{className:`size-3.5`}):null,N(r?`run.pickedItem`:`run.pickItem`,{n:n+1})]}):(0,V.jsx)(`span`,{className:`absolute top-2 left-2 rounded-full bg-card/90 px-2.5 py-1 font-medium text-[0.75rem] text-ink-2`,children:n+1}),(0,V.jsx)(Co,{ai:e.ai,className:t.asset===`image`?`bottom-2 left-2`:`top-2 right-2`})]},e.id)})})}if(t.asset===`image`)return(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(`img`,{src:l(e.id),alt:t.title,className:`w-full rounded-lg bg-paper-2 ring-1 ring-border-soft`}),(0,V.jsx)(Co,{ai:e.ai})]});if(t.asset===`video`){let n=t.options?.aspectRatio===`9:16`;return(0,V.jsxs)(`div`,{className:E(`relative mx-auto`,n?`w-fit`:`w-full`),children:[(0,V.jsx)(`video`,{src:l(e.id),controls:!0,playsInline:!0,loop:!0,className:E(`rounded-lg bg-black ring-1 ring-border-soft`,n?`max-h-[70vh]`:`w-full`)}),(0,V.jsx)(Co,{ai:e.ai,className:`top-2 left-2`})]})}return t.asset===`document`?(0,V.jsx)(bo,{src:l(e.id),page:820,height:1100}):(0,V.jsx)(bo,{src:l(e.id),page:null,height:760})}if(t.type===`agent`){let e=n.assets?.filter(e=>e.kind!==`file`&&e.mime.startsWith(`image/`))??[],i=n.assets?.filter(e=>e.kind===`file`)??[];return(0,V.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[t.output.format===`json`&&n.json!==void 0?(0,V.jsx)(To,{step:t,json:n.json}):r?(0,V.jsx)(D,{value:a??n.text??``,onChange:e=>o?.(e.target.value),minRows:4,maxRows:24}):t.output.format===`markdown`?(0,V.jsx)(yo,{text:n.text??``}):(0,V.jsx)(`div`,{className:`whitespace-pre-wrap text-[1rem] leading-relaxed`,children:n.text}),e.map(e=>(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(`img`,{src:l(e.id),alt:``,className:`w-full rounded-lg ring-1 ring-border-soft`}),(0,V.jsx)(Co,{ai:e.ai})]},e.id)),i.length?(0,V.jsx)(`ul`,{className:`overflow-hidden rounded-lg ring-1 ring-border-soft`,children:i.map(e=>(0,V.jsx)(`li`,{className:`border-border-soft border-b last:border-0`,children:(0,V.jsxs)(`a`,{href:l(e.id),download:e.name,onClick:t=>Ct(t,l(e.id),e.name),className:`flex items-center gap-2 px-3 py-2 text-[0.8125rem] hover:bg-paper-2 coarse:min-h-11`,children:[(0,V.jsx)(oe,{className:`size-3.5 shrink-0 text-ink-3`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})]})},e.id))}):null,t.output.format!==`json`&&!r&&n.text?(0,V.jsx)(`div`,{children:(0,V.jsx)(Do,{text:n.text})}):null]})}return null}var ko={png:`PNG`,mp4:`MP4`,mp3:`MP3`,pdf:`PDF`,docx:`Word`,html:`HTML`,md:`Markdown`,txt:`Text`,csv:`CSV`,xlsx:`Excel`,json:`JSON`,zip:`ZIP`};function Ao(e,t){return(e.headers.get(`content-disposition`)??``).match(/filename="([^"]+)"/)?.[1]??t}function jo({url:e,format:t,title:n}){let[r,i]=(0,z.useState)(`idle`),a=(0,z.useRef)(null),o=async()=>{if(B(`share`)){i(`busy`),await xt(`share`,{url:new URL(e,location.href).href,title:n}).catch(()=>void 0),i(`idle`);return}try{if(!a.current){i(`busy`);let n=await fetch(e,{credentials:`include`});if(!n.ok)throw Error(String(n.status));let r=await n.blob();a.current=new File([r],Ao(n,`download.${t}`),{type:r.type.split(`;`)[0]})}let r={files:[a.current],title:n};if(!navigator.canShare(r)){location.href=e,i(`idle`);return}await navigator.share(r),i(`idle`)}catch(e){i(a.current&&e.name===`NotAllowedError`?`ready`:`idle`)}};return(0,V.jsxs)(`button`,{type:`button`,onClick:()=>void o(),disabled:r===`busy`,"aria-label":N(`run.shareFile`),title:N(`run.shareFile`),className:E(`inline-flex h-9 items-center gap-1.5 rounded-full px-3 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,r===`ready`?`bg-ember-tint text-ink ring-1 ring-ember`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),children:[r===`busy`?(0,V.jsx)(T,{className:`size-3.5`}):(0,V.jsx)(R,{className:`size-3.5`}),N(r===`ready`?`run.shareNow`:`run.share`)]})}var Mo=B(`share`)||Xt();function No({base:e,stepId:t,formats:n,title:r}){let a=n=>i(`${e}/steps/${t}/download?format=${n}`);return(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.map((e,t)=>(0,V.jsxs)(`a`,{href:a(e),onClick:t=>Ct(t,a(e)),className:E(`inline-flex h-9 items-center gap-1.5 rounded-full px-3.5 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,t===0?`bg-primary text-primary-foreground hover:brightness-105`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),children:[t===0?(0,V.jsx)(ce,{className:`size-3.5`}):null,ko[e]]},e)),Mo&&n.length?(0,V.jsx)(jo,{url:a(n[0]),format:n[0],title:r},a(n[0])):null]})}var Po=45e3;function Fo(e){let[t,n]=(0,z.useState)(null),[r,a]=(0,z.useState)(null),[s,l]=(0,z.useState)(!1),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)({});(0,z.useEffect)(()=>{if(n(null),l(!1),!e)return;let t=!1,r=0,a,s=null,u=Date.now(),d=()=>{t=!0,s?.close(),l(!0)},f=async()=>{try{let r=await o.get(`/api/runs/${e}`);t||n(r)}catch(e){e instanceof c&&e.status===404&&d()}},p=()=>{if(clearTimeout(a),s?.close(),t)return;let o=new EventSource(i(`/api/runs/${e}/stream`),{withCredentials:!0});s=o,u=Date.now(),o.addEventListener(`view`,e=>{r=0,u=Date.now(),n(JSON.parse(e.data))}),o.addEventListener(`ping`,()=>{u=Date.now()}),o.onerror=()=>{o.close(),!(t||s!==o)&&(s=null,f(),r=Math.min(r+1,6),a=setTimeout(p,500*2**r))}},m=()=>{t||document.visibilityState!==`visible`||(!s||s.readyState===EventSource.CLOSED||Date.now()-u>Po?(r=0,p()):f())},h=setInterval(()=>{!t&&s&&Date.now()-u>Po&&(r=0,p())},15e3);return p(),document.addEventListener(`visibilitychange`,m),window.addEventListener(`pageshow`,m),window.addEventListener(`online`,m),()=>{t=!0,clearTimeout(a),clearInterval(h),document.removeEventListener(`visibilitychange`,m),window.removeEventListener(`pageshow`,m),window.removeEventListener(`online`,m),s?.close()}},[e]);let m=(0,z.useCallback)(async(t,n)=>{if(!e)return!1;d(!0),a(null),p({});try{return await o.post(`/api/runs/${e}/${t}`,n),!0}catch(e){return e instanceof c&&e.status===422&&Array.isArray(e.body?.fields)&&p(Object.fromEntries(e.body.fields.map(e=>[e.field,e.message]))),a(e.message),!1}finally{d(!1)}},[e]);return{view:t,notFound:s,error:r,busy:u,fieldErrors:f,submitPage:(e,t)=>m(`pages/${e}`,{values:t}),accept:(e,t)=>m(`reviews/${e}`,{type:`accept`,edits:t}),regenerate:(e,t,n,r)=>m(`reviews/${e}`,{type:`regenerate`,target:t,note:n,items:r?.length?r:void 0}),back:()=>m(`back`),retry:()=>m(`retry`)}}function Io({view:e}){let t=Math.round(Math.min(e.progress.done,e.progress.total)/Math.max(1,e.progress.total)*100);return(0,V.jsx)(`div`,{className:`h-[3px] w-full bg-paper-2`,children:(0,V.jsx)(`div`,{className:`h-full bg-ember transition-[width] duration-700 ease-out`,style:{width:`${t}%`}})})}function Lo({title:e,description:t,kicker:n}){return(0,V.jsxs)(`div`,{className:`mb-8`,children:[n?(0,V.jsx)(`p`,{className:`mb-4 text-[0.9375rem] text-ink-2 leading-relaxed`,children:n}):null,(0,V.jsx)(`h1`,{className:`font-display font-semibold text-[1.75rem] leading-[1.15] tracking-tight sm:text-[2rem]`,children:e}),t?(0,V.jsx)(`p`,{className:`mt-2 text-[0.9375rem] text-ink-3 leading-relaxed`,children:t}):null]})}function Ro(e,t){let n={};for(let r of e.fields)n[r.id]=t.values[r.id]??t.prefill?.[r.id]??r.default??(r.kind===`multiselect`?[]:void 0);return n}function zo(e){return Array.from(e.querySelectorAll(`input:not([type="hidden"], [type="file"], [type="checkbox"], [type="color"], [type="range"], [disabled]), textarea:not([disabled])`)).filter(e=>!e.closest(`dialog`)&&e.offsetParent!==null)}function Bo({view:e,run:t,step:n}){let[r,i]=(0,z.useState)(()=>Ro(n,e)),[a,o]=(0,z.useState)(new Set),s=(0,z.useRef)(null),c=e.progress.done===0,l=()=>void t.submitPage(n.id,r);return(0,z.useEffect)(()=>{if(!s.current)return;let e=zo(s.current).filter(e=>e instanceof HTMLInputElement);for(let[t,n]of e.entries())(n.dataset.hint||!n.hasAttribute(`enterkeyhint`))&&(n.dataset.hint=`1`,n.setAttribute(`enterkeyhint`,t===e.length-1?`go`:`next`))}),(0,V.jsxs)(`form`,{ref:s,className:`animate-rise`,onSubmit:e=>{e.preventDefault(),a.size||l()},onKeyDown:e=>{let t=e.target;if(e.key!==`Enter`||e.defaultPrevented||e.nativeEvent.isComposing||!(t instanceof HTMLInputElement)||t.closest(`dialog`))return;let n=zo(e.currentTarget),r=n[n.indexOf(t)+1];r&&(e.preventDefault(),r.focus())},children:[(0,V.jsx)(Lo,{title:n.title,description:n.description,kicker:c?e.wizard.intro:null}),(0,V.jsx)(`div`,{className:`flex flex-col gap-7`,children:n.fields.map(n=>(0,V.jsx)(sr,{field:n,value:r[n.id],values:r,runId:e.id,view:e,error:t.fieldErrors[n.id],closed:e.closed?.[n.id],onChange:e=>i(t=>({...t,[n.id]:e})),onBusy:e=>o(t=>{if(t.has(n.id)===e)return t;let r=new Set(t);return e?r.add(n.id):r.delete(n.id),r})},n.id))}),(0,V.jsx)(Vo,{view:e,run:t,sticky:!0,children:(0,V.jsxs)(M,{type:`submit`,size:`lg`,busy:t.busy,disabled:a.size>0,children:[n.cta||N(`run.next`),` `,(0,V.jsx)(p,{className:`size-4`})]})})]})}function Vo({view:e,run:t,sticky:n,children:r}){return(0,V.jsxs)(`div`,{className:E(`mt-10 flex items-center justify-between gap-3`,n&&`action-bar`),children:[e.canBack?(0,V.jsxs)(M,{variant:`ghost`,onClick:()=>void t.back(),disabled:t.busy,children:[(0,V.jsx)(d,{className:`size-4`}),` `,N(`run.back`)]}):(0,V.jsx)(`span`,{}),r]})}function Ho(){let e=Wt(),[t,n]=(0,z.useState)(!1),r=e!==`off`;return(0,V.jsxs)(`div`,{className:`mt-6 flex flex-col items-center gap-2`,children:[(0,V.jsxs)(`button`,{type:`button`,"aria-pressed":r,disabled:t,onClick:async()=>{if(r){qt();return}n(!0),await Kt(),n(!1)},className:E(`inline-flex h-11 items-center gap-2 rounded-full px-4 font-medium text-[0.875rem] ring-1 transition`,r?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink hover:ring-ink-4`),children:[r?(0,V.jsx)(I,{className:`size-4 text-ember-strong`}):(0,V.jsx)(_e,{className:`size-4`}),N(r?`notify.on`:`notify.ask`)]}),(0,V.jsx)(`p`,{className:`max-w-xs text-[0.75rem] text-ink-4 leading-relaxed`,children:N(e===`off`?`notify.why`:e===`on`?`notify.onHint`:Gt()?`notify.blocked`:`notify.quiet`)})]})}function Uo({view:e,compact:t,awake:n}){let r=(0,z.useMemo)(()=>{let t=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id);return t?new Date(t.at).getTime():Date.now()},[e.events,e.step?.id]),[o,s]=(0,z.useState)(Date.now());(0,z.useEffect)(()=>{let e=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(e)},[]);let c=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id)?.message??e.step?.title??N(`run.working`),l=e.events.filter(e=>(e.type===`tool`||e.type===`info`)&&new Date(e.at).getTime()>=r-500),u=l.slice(-4),d=[...new Set(l.map(e=>e.asset).filter(e=>!!e))],f=[...l].reverse().find(e=>e.asset)?.asset;return(0,V.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-6 text-center`,children:[(0,V.jsx)(a,{kind:e.wizard.avatar,size:t?130:170,fluffy:!0}),(0,V.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem] tracking-tight`,children:c}),(0,V.jsx)(`div`,{className:`mt-1 text-[0.8125rem] text-ink-4 tabular-nums`,children:N(`run.elapsed`,{s:Math.max(0,Math.round((o-r)/1e3))})}),d.length?(0,V.jsx)(`div`,{className:`mt-5 flex max-w-full flex-wrap justify-center gap-2`,children:d.slice(-8).map(t=>(0,V.jsx)(`img`,{src:i(`/api/runs/${e.id}/assets/${t}`),alt:``,className:E(`size-16 animate-rise rounded-lg bg-paper-2 object-cover ring-1 ring-border-soft transition sm:size-20`,t===f?`ring-2 ring-ember`:`opacity-70`)},t))}):null,(0,V.jsx)(`div`,{className:`mt-6 flex min-h-[7rem] w-full max-w-sm flex-col gap-1.5`,children:u.map((e,t)=>(0,V.jsxs)(`div`,{className:E(`flex items-center justify-center gap-2 text-[0.8125rem] transition-opacity`,t===u.length-1?`text-ink-2`:`text-ink-4`),children:[t===u.length-1?(0,V.jsx)(lt,{className:`size-3.5 animate-breathe text-ember`}):null,(0,V.jsx)(`span`,{className:`truncate`,children:ie(e)})]},e.id))}),t?null:(0,V.jsx)(Ho,{}),n?(0,V.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-4`,children:N(`run.awake`)}):null]})}function Wo(e){let t=(0,z.useRef)({running:!1,since:0,ask:null});(0,z.useEffect)(()=>{if(!e)return;let n=t.current,r=e.status===`running`,i=r?n.running?n.since:Date.now():0,a=t=>{document.visibilityState!==`visible`&&!document.title.startsWith(`● `)&&(document.title=`● ${document.title}`),Yt({title:e.wizard.title,body:t,tag:e.id})};r&&e.ask&&e.ask.id!==n.ask?a(N(`notify.needsYou`)):!r&&n.running&&Date.now()-n.since>8e3&&a(e.status===`failed`?N(`run.failed`):e.status===`done`?N(`notify.done`):N(`notify.next`)),t.current={running:r,since:i,ask:e.ask?.id??null}},[e]),(0,z.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&document.title.startsWith(`● `)&&(document.title=document.title.slice(2))};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[])}function Go({view:e,run:t,step:n}){let[r,i]=(0,z.useState)({}),[a,o]=(0,z.useState)({}),[s,c]=(0,z.useState)(``),l=e.shown.filter(e=>e.output),[u,d]=(0,z.useState)(l.length===1?l[0].step.id:null),[m,h]=(0,z.useState)({}),g=(0,z.useRef)(null),_=l.find(e=>e.step.id===u),v=_?.step.type===`generate`&&(_.output?.assets?.length??0)>1,y=()=>{_&&s.trim()&&t.regenerate(n.id,_.step.id,s.trim(),m[_.step.id])};return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsx)(Lo,{title:n.title,description:n.description}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[e.shown.filter(e=>e.output).map(({step:t,output:s})=>{let c=!!n.edit&&t.type===`agent`&&t.output.format!==`json`;return(0,V.jsxs)(`section`,{children:[(0,V.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,V.jsx)(`h3`,{className:`font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.title}),(0,V.jsx)(`div`,{className:`flex items-center`,children:c&&!a[t.id]?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>({...e,[t.id]:!0})),className:`inline-flex h-8 items-center gap-1.5 rounded-full px-3 text-[0.8125rem] text-ink-2 hover:bg-accent hover:text-ink coarse:h-11`,children:[(0,V.jsx)(Qe,{className:`size-3.5`}),` `,N(`run.edit`)]}):null})]}),(0,V.jsx)(Oo,{base:`/api/runs/${e.id}`,step:t,output:s,editable:c&&a[t.id],draft:r[t.id],onDraft:e=>i(n=>({...n,[t.id]:e})),picked:m[t.id],onPick:n.regenerate?e=>{d(t.id),h(n=>{let r=n[t.id]??[];return{...n,[t.id]:r.includes(e)?r.filter(t=>t!==e):[...r,e]}}),g.current?.focus()}:void 0})]},t.id)}),e.lists.map(t=>(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`h3`,{className:`mb-2 font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.def.title}),t.def.check?(0,V.jsx)(Kn,{runId:e.id,list:t}):(0,V.jsx)(Un,{runId:e.id,list:t,editable:!0})]},t.def.id)),n.regenerate&&l.length?(0,V.jsxs)(ne,{className:`p-3`,children:[l.length>1?(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 pb-2`,children:[(0,V.jsx)(`span`,{className:`mr-1 text-[0.8125rem] text-ink-3`,children:N(`run.feedbackTarget`)}),l.map(({step:e})=>(0,V.jsx)(`button`,{type:`button`,"aria-pressed":u===e.id,onClick:()=>{d(e.id),g.current?.focus()},className:E(`inline-flex h-8 items-center rounded-full px-3 text-[0.8125rem] ring-1 transition coarse:h-11`,u===e.id?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink`),children:e.title},e.id))]}):null,(0,V.jsx)(D,{ref:g,minRows:2,maxRows:8,value:s,placeholder:N(`run.feedbackPlaceholder`),onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())},className:`border-0 bg-transparent shadow-none focus:ring-0`}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-1 pt-1`,children:[(0,V.jsx)(`span`,{className:`min-w-0 text-[0.75rem] text-ink-3`,children:v?m[_.step.id]?.length?N(`run.regeneratePicked`,{n:[...m[_.step.id]].sort((e,t)=>e-t).map(e=>e+1).join(`, `)}):N(`run.regenerateAll`):!_&&s.trim()?N(`run.feedbackPick`):null}),(0,V.jsxs)(M,{size:`sm`,variant:`secondary`,busy:t.busy,disabled:!s.trim()||!_,onClick:y,children:[(0,V.jsx)(f,{className:`size-3.5`}),` `,N(`run.regenerateGo`)]})]})]}):null]}),(0,V.jsx)(Vo,{view:e,run:t,sticky:!0,children:(0,V.jsxs)(M,{size:`lg`,busy:t.busy,onClick:()=>void t.accept(n.id,Object.keys(r).length?r:void 0),children:[N(`run.accept`),` `,(0,V.jsx)(p,{className:`size-4`})]})})]})}function Ko({view:e,run:t,step:n,onRestart:r}){let i=e.shown.filter(e=>e.output);return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsxs)(`div`,{className:`mb-8 flex flex-wrap items-center gap-x-4 gap-y-5`,children:[(0,V.jsx)(a,{kind:e.wizard.avatar,size:64}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1 basis-[12rem]`,children:[(0,V.jsx)(`h1`,{className:`text-balance font-display font-semibold text-[1.75rem] leading-tight tracking-tight sm:text-[2rem]`,children:n.title}),n.message?(0,V.jsx)(`p`,{className:`mt-1 text-[0.9375rem] text-ink-3`,children:n.message}):null]}),e.shown.some(e=>e.output)?(0,V.jsx)(`div`,{className:`max-sm:basis-full`,children:(0,V.jsx)(Dt,{runId:e.id,title:`${n.title} · ${e.wizard.title}`,initial:e.shareUrl?{url:e.shareUrl,expiresAt:e.expiresAt}:null})}):null]}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[i.map(({step:t,output:n,formats:r,label:i})=>(0,V.jsxs)(ne,{className:`p-4 sm:p-5`,children:[(0,V.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,V.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:i??t.title}),(0,V.jsx)(No,{base:`/api/runs/${e.id}`,stepId:t.id,formats:r,title:i??t.title})]}),(0,V.jsx)(Oo,{base:`/api/runs/${e.id}`,step:t,output:n}),n?.assets?.some(e=>e.ai)?(0,V.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-3 leading-relaxed`,children:N(`ai.publish`)}):null]},t.id)),e.lists.map(t=>(0,V.jsxs)(ne,{className:`p-4 sm:p-5`,children:[(0,V.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,V.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:t.label??t.def.title}),(0,V.jsx)(Jn,{runId:e.id,list:t})]}),(0,V.jsx)(Un,{runId:e.id,list:t,editable:!0})]},t.def.id))]}),(0,V.jsx)(Vo,{view:e,run:t,children:r?(0,V.jsxs)(M,{variant:`secondary`,onClick:r,children:[(0,V.jsx)(et,{className:`size-4`}),` `,N(`run.again`)]}):(0,V.jsx)(`span`,{})})]})}function qo({view:e,run:t}){return(0,V.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-8 text-center`,children:[(0,V.jsx)(a,{kind:e.wizard.avatar,size:90}),(0,V.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem]`,children:N(`run.failed`)}),(0,V.jsx)(`p`,{className:`mt-2 max-w-md text-[0.9375rem] text-ink-3`,children:(0,V.jsx)(ee,{text:e.error??``})}),(0,V.jsxs)(`div`,{className:`mt-8 flex gap-3`,children:[e.canBack?(0,V.jsxs)(M,{variant:`ghost`,onClick:()=>void t.back(),children:[(0,V.jsx)(d,{className:`size-4`}),` `,N(`run.back`)]}):null,(0,V.jsxs)(M,{onClick:()=>void t.retry(),busy:t.busy,children:[(0,V.jsx)(et,{className:`size-4`}),` `,N(`run.retry`)]})]})]})}function Jo({runId:e,compact:t,onRestart:n,onView:r,stickyProgress:i}){let a=Fo(e),{view:o}=a;(0,z.useEffect)(()=>{r?.(o)},[o,r]),Pt();let s=Ft(o?.status===`running`&&!o.ask);if(Wo(o),a.notFound)return(0,V.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:N(`run.notFound`)});if(!o)return(0,V.jsx)(`div`,{className:`flex justify-center py-24 text-ink-4`,children:(0,V.jsx)(T,{})});let c=o.step,l=null;if(o.status===`running`&&o.ask)l=(0,V.jsx)(Ot,{runId:o.id,ask:o.ask},o.ask.id);else if(o.status===`running`)l=(0,V.jsx)(Uo,{view:o,compact:t,awake:s});else if(o.status===`failed`)l=(0,V.jsx)(qo,{view:o,run:a});else if(o.status===`cancelled`)l=(0,V.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:N(`run.cancelled`)});else if(c?.type===`page`)l=(0,V.jsx)(Bo,{view:o,run:a,step:c},c.id);else if(c?.type===`review`){let e=o.shown.map(e=>e.output?.at??``).join(`|`);l=(0,V.jsx)(Go,{view:o,run:a,step:c},`${c.id}:${e}`)}else c?.type===`result`&&(l=(0,V.jsx)(Ko,{view:o,run:a,step:c,onRestart:n}));let u=c?.type===`review`&&o.status===`waiting_input`&&o.lists.some(e=>e.def.check);return(0,V.jsxs)(`div`,{className:`flex min-h-full flex-col`,children:[i?(0,V.jsx)(`div`,{className:`sticky top-0 z-10`,children:(0,V.jsx)(Io,{view:o})}):(0,V.jsx)(Io,{view:o}),(0,V.jsxs)(`div`,{className:E(`safe-x mx-auto w-full flex-1`,u?`max-w-[1240px] py-8`:t?`max-w-[620px] py-8`:`max-w-[640px] py-8 sm:py-16`),children:[l,a.error&&o.status!==`failed`?(0,V.jsx)(`div`,{className:`mt-4 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:a.error}):null,o.keeps&&o.status!==`running`?(0,V.jsx)(`div`,{className:`mt-10 flex justify-center`,children:(0,V.jsx)(Xn,{runId:o.id})}):null]})]})}export{pe as _,Oo as a,St as c,it as d,Qe as f,F as g,De as h,yo as i,dt as l,Ue as m,No as n,bt as o,L as p,bo as r,wt as s,Jo as t,lt as u};
|
|
70
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+Q(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function $(e,t){return _o.parse(e,t)}$.options=$.setOptions=function(e){return _o.setOptions(e),$.defaults=_o.defaults,Mi($.defaults),$},$.getDefaults=Ai,$.defaults=ji;function vo(...e){return _o.use(...e),$.defaults=_o.defaults,Mi($.defaults),$}$.use=vo,$.walkTokens=function(e,t){return _o.walkTokens(e,t)},$.parseInline=_o.parseInline,$.Parser=ho,$.parser=ho.parse,$.Renderer=po,$.TextRenderer=mo,$.Lexer=fo,$.lexer=fo.lex,$.Tokenizer=uo,$.Hooks=go,$.parse=$,$.options,$.setOptions,$.walkTokens,$.parseInline,ho.parse,fo.lex;function yo({text:e,className:t}){let n=(0,z.useMemo)(()=>ki.sanitize($.parse(e,{async:!1})),[e]);return(0,V.jsx)(`div`,{className:E(`prose-zen`,t),dangerouslySetInnerHTML:{__html:n}})}function bo({src:e,page:t,height:n,fit:r}){let i=(0,z.useRef)(null),[a,o]=(0,z.useState)(0);(0,z.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(()=>o(e.clientWidth));return t.observe(e),o(e.clientWidth),()=>t.disconnect()},[]);let[s,c]=(0,z.useState)(null);(0,z.useEffect)(()=>{let t=!0;return fetch(e,{credentials:`include`}).then(e=>e.ok?e.text():``).then(n=>t&&c({src:e,text:n})),()=>{t=!1}},[e]);let l=t??Math.max(a,900),u=a?r?a/l:Math.min(1,a/l):1;return(0,V.jsxs)(`div`,{ref:i,className:`relative overflow-hidden rounded-lg bg-white ring-1 ring-border-soft`,style:{height:n*u},children:[s?.src===e?(0,V.jsx)(`iframe`,{title:`preview`,srcDoc:s.text,sandbox:`allow-scripts allow-popups allow-popups-to-escape-sandbox`,className:`absolute top-0 left-0 origin-top-left border-0`,style:{width:l,height:n,transform:`scale(${u})`}},e):(0,V.jsx)(`div`,{className:`absolute inset-0 animate-pulse bg-paper-2`}),(0,V.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`absolute top-3 right-3 inline-flex size-9 items-center justify-center rounded-full bg-card/90 text-ink-2 shadow-soft ring-1 ring-border-soft backdrop-blur hover:text-ink coarse:size-11`,"aria-label":N(`run.openFull`),children:(0,V.jsx)(qe,{className:`size-4`})})]})}var xo={disc:{file:`ai`,box:566.93,x:89.28,y:100.72,w:365.49,h:365.49},generated:{file:`ai-generated`,box:1789.84,x:207.3,y:144.36,w:1384.24,h:266.41},edited:{file:`ai-modified`,box:1700.79,x:231.11,y:144.36,w:1230.56,h:266.41}};function So({icon:e,tone:t,size:n,className:r}){let i=xo[e],a=n/i.h;return(0,V.jsx)(`img`,{src:s(`ai-labels/${i.file}-${t}.svg`),alt:``,draggable:!1,className:E(`pointer-events-none absolute max-w-none select-none`,r),style:{width:i.box*a,height:566.93*a,left:-i.x*a,top:-i.y*a}})}function Co({ai:e,className:t}){let[n,r]=(0,z.useState)(!1);if(!e)return null;let i=xo[e],a=t===`static`,o=a?[[`black`,`dark:hidden`],[`white`,`hidden dark:block`]]:[[`white`,``]];return(0,V.jsx)(`button`,{type:`button`,"aria-label":N(e===`edited`?`ai.modified`:`ai.generated`),"aria-expanded":n,"data-open":n,onClick:()=>r(e=>!e),className:E(`group block cursor-default overflow-hidden rounded-full backdrop-blur-md transition-[width] duration-200`,`w-[var(--ai-disc)] hover:w-[var(--ai-long)] focus-visible:w-[var(--ai-long)] data-[open=true]:w-[var(--ai-long)]`,a?`relative`:E(`absolute shadow-[0_1px_3px_rgba(0,0,0,0.25)]`,t??`bottom-2 left-2`)),style:{height:18,"--ai-disc":`18px`,"--ai-long":`${i.w/i.h*18}px`},children:o.map(([t,r])=>(0,V.jsxs)(`span`,{className:r,children:[(0,V.jsx)(So,{icon:`disc`,tone:t,size:18,className:E(`transition-opacity duration-200`,n?`opacity-0`:`opacity-100 group-hover:opacity-0 group-focus-visible:opacity-0`)}),(0,V.jsx)(So,{icon:e,tone:t,size:18,className:E(`transition-opacity duration-200`,n?`opacity-100`:`opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100`)})]},t))})}function wo(e,t){return e.type===`agent`?e.output.fields?.find(e=>e.id===t)?.description??t:t}function To({step:e,json:t}){return!t||typeof t!=`object`?(0,V.jsx)(`pre`,{className:`text-[0.8125rem]`,children:JSON.stringify(t,null,2)}):(0,V.jsx)(`div`,{className:`flex flex-col gap-4`,children:Object.entries(t).map(([t,n])=>(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`div`,{className:`mb-1 font-medium text-[0.75rem] text-ink-3 uppercase tracking-[0.06em]`,children:wo(e,t)}),typeof n==`boolean`?(0,V.jsx)(`div`,{className:`text-[0.9375rem]`,children:N(n?`run.yes`:`run.no`)}):typeof n==`string`||typeof n==`number`?(0,V.jsx)(`div`,{className:`whitespace-pre-wrap text-[0.9375rem]`,children:String(n)}):Array.isArray(n)&&n.every(e=>typeof e!=`object`)?(0,V.jsx)(`ul`,{className:`list-disc pl-5 text-[0.875rem]`,children:n.map((e,t)=>(0,V.jsx)(`li`,{className:`break-words`,children:String(e)},t))}):Array.isArray(n)&&n.length&&typeof n[0]==`object`?(0,V.jsx)(Eo,{rows:n}):(0,V.jsx)(`pre`,{className:`overflow-auto rounded-lg bg-paper-2 p-3 text-[0.75rem]`,children:JSON.stringify(n,null,2)})]},t))})}function Eo({rows:e}){let t=[...new Set(e.flatMap(e=>Object.keys(e)))];return(0,V.jsx)(`div`,{className:`overflow-x-auto rounded-lg ring-1 ring-border-soft`,children:(0,V.jsxs)(`table`,{className:`w-full text-[0.8125rem]`,children:[(0,V.jsx)(`thead`,{className:`bg-paper-2 text-ink-2`,children:(0,V.jsx)(`tr`,{children:t.map(e=>(0,V.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:e},e))})}),(0,V.jsx)(`tbody`,{children:e.map((e,n)=>(0,V.jsx)(`tr`,{className:`border-border-soft border-t`,children:t.map(t=>(0,V.jsx)(`td`,{className:`px-3 py-2 tabular-nums`,children:e[t]===null||e[t]===void 0?``:String(e[t])},t))},n))})]})})}function Do({text:e}){let[t,n]=(0,z.useState)(!1);return(0,V.jsxs)(`button`,{type:`button`,onClick:()=>{navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1500)},className:`inline-flex h-8 items-center gap-1.5 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 hover:text-ink coarse:h-11 coarse:px-4`,children:[t?(0,V.jsx)(m,{className:`size-3.5`}):(0,V.jsx)(h,{className:`size-3.5`}),N(t?`share.copied`:`run.copy`)]})}function Oo({base:e,step:t,output:n,editable:r,draft:a,onDraft:o,picked:s,onPick:c}){if(!n)return null;let l=t=>i(`${e}/assets/${t}`);if(t.type===`widget`||t.type===`film`){let e=n.assets?.find(e=>e.kind===`video`);if(e){let r=n.assets?.find(e=>e.kind===`poster`),i=t.type===`film`?t.format===`9:16`:(t.size?.height??0)>(t.size?.width??1);return(0,V.jsxs)(`div`,{className:E(`relative mx-auto`,i?`w-fit`:`w-full`),children:[(0,V.jsx)(`video`,{src:l(e.id),poster:r?l(r.id):void 0,controls:!0,playsInline:!0,className:E(`rounded-lg bg-black ring-1 ring-border-soft`,i?`max-h-[76vh]`:`w-full`)}),(0,V.jsx)(Co,{ai:e.ai,className:`top-2 right-2`})]})}if(t.type===`film`)return null;let r=n.assets?.find(e=>e.mime===`text/html`),i=t.size??{width:1280,height:720};return r?(0,V.jsx)(bo,{src:l(r.id),page:i.width,height:i.height,fit:!0}):null}if(t.type===`generate`){let e=n.assets?.[0];if(!e)return null;if(t.asset===`voice`)return(0,V.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,V.jsx)(`audio`,{src:l(e.id),controls:!0,className:`w-full`}),(0,V.jsx)(Co,{ai:e.ai,className:`static`}),n.text?(0,V.jsx)(`p`,{className:`text-[0.875rem] text-ink-2 leading-relaxed`,children:n.text}):null]});if((n.assets?.length??0)>1&&(t.asset===`image`||t.asset===`video`)){let e=t.options?.aspectRatio===`9:16`||t.options?.aspectRatio===`2:3`;return(0,V.jsx)(`div`,{className:E(`grid gap-3`,e?`grid-cols-2 sm:grid-cols-3`:`sm:grid-cols-2`),children:n.assets?.map((e,n)=>{let r=s?.includes(n);return(0,V.jsxs)(`figure`,{className:E(`relative overflow-hidden rounded-lg bg-paper-2 ring-1 ring-border-soft`,r&&`ring-2 ring-ember`),children:[t.asset===`image`?(0,V.jsx)(`img`,{src:l(e.id),alt:`${t.title} ${n+1}`,className:`w-full`}):(0,V.jsx)(`video`,{src:l(e.id),controls:!0,playsInline:!0,loop:!0,className:`w-full`}),c?(0,V.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>c(n),className:E(`absolute top-2 left-2 inline-flex h-8 items-center gap-1.5 rounded-full px-3 font-medium text-[0.75rem] shadow-soft backdrop-blur coarse:h-11`,r?`bg-ember text-ember-on`:`bg-card/90 text-ink-2 hover:text-ink`),children:[r?(0,V.jsx)(m,{className:`size-3.5`}):null,N(r?`run.pickedItem`:`run.pickItem`,{n:n+1})]}):(0,V.jsx)(`span`,{className:`absolute top-2 left-2 rounded-full bg-card/90 px-2.5 py-1 font-medium text-[0.75rem] text-ink-2`,children:n+1}),(0,V.jsx)(Co,{ai:e.ai,className:t.asset===`image`?`bottom-2 left-2`:`top-2 right-2`})]},e.id)})})}if(t.asset===`image`)return(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(`img`,{src:l(e.id),alt:t.title,className:`w-full rounded-lg bg-paper-2 ring-1 ring-border-soft`}),(0,V.jsx)(Co,{ai:e.ai})]});if(t.asset===`video`){let n=t.options?.aspectRatio===`9:16`;return(0,V.jsxs)(`div`,{className:E(`relative mx-auto`,n?`w-fit`:`w-full`),children:[(0,V.jsx)(`video`,{src:l(e.id),controls:!0,playsInline:!0,loop:!0,className:E(`rounded-lg bg-black ring-1 ring-border-soft`,n?`max-h-[70vh]`:`w-full`)}),(0,V.jsx)(Co,{ai:e.ai,className:`top-2 left-2`})]})}return t.asset===`document`?(0,V.jsx)(bo,{src:l(e.id),page:820,height:1100}):(0,V.jsx)(bo,{src:l(e.id),page:null,height:760})}if(t.type===`agent`){let e=n.assets?.filter(e=>e.kind!==`file`&&e.mime.startsWith(`image/`))??[],i=n.assets?.filter(e=>e.kind===`file`)??[];return(0,V.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[t.output.format===`json`&&n.json!==void 0?(0,V.jsx)(To,{step:t,json:n.json}):r?(0,V.jsx)(D,{value:a??n.text??``,onChange:e=>o?.(e.target.value),minRows:4,maxRows:24}):t.output.format===`markdown`?(0,V.jsx)(yo,{text:n.text??``}):(0,V.jsx)(`div`,{className:`whitespace-pre-wrap text-[1rem] leading-relaxed`,children:n.text}),e.map(e=>(0,V.jsxs)(`div`,{className:`relative`,children:[(0,V.jsx)(`img`,{src:l(e.id),alt:``,className:`w-full rounded-lg ring-1 ring-border-soft`}),(0,V.jsx)(Co,{ai:e.ai})]},e.id)),i.length?(0,V.jsx)(`ul`,{className:`overflow-hidden rounded-lg ring-1 ring-border-soft`,children:i.map(e=>(0,V.jsx)(`li`,{className:`border-border-soft border-b last:border-0`,children:(0,V.jsxs)(`a`,{href:l(e.id),download:e.name,onClick:t=>Ct(t,l(e.id),e.name),className:`flex items-center gap-2 px-3 py-2 text-[0.8125rem] hover:bg-paper-2 coarse:min-h-11`,children:[(0,V.jsx)(oe,{className:`size-3.5 shrink-0 text-ink-3`}),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})]})},e.id))}):null,t.output.format!==`json`&&!r&&n.text?(0,V.jsx)(`div`,{children:(0,V.jsx)(Do,{text:n.text})}):null]})}return null}var ko={png:`PNG`,mp4:`MP4`,mp3:`MP3`,pdf:`PDF`,docx:`Word`,html:`HTML`,md:`Markdown`,txt:`Text`,csv:`CSV`,xlsx:`Excel`,json:`JSON`,zip:`ZIP`};function Ao(e,t){return(e.headers.get(`content-disposition`)??``).match(/filename="([^"]+)"/)?.[1]??t}function jo({url:e,format:t,title:n}){let[r,i]=(0,z.useState)(`idle`),a=(0,z.useRef)(null),o=async()=>{if(B(`share`)){i(`busy`),await xt(`share`,{url:new URL(e,location.href).href,title:n}).catch(()=>void 0),i(`idle`);return}try{if(!a.current){i(`busy`);let n=await fetch(e,{credentials:`include`});if(!n.ok)throw Error(String(n.status));let r=await n.blob();a.current=new File([r],Ao(n,`download.${t}`),{type:r.type.split(`;`)[0]})}let r={files:[a.current],title:n};if(!navigator.canShare(r)){location.href=e,i(`idle`);return}await navigator.share(r),i(`idle`)}catch(e){i(a.current&&e.name===`NotAllowedError`?`ready`:`idle`)}};return(0,V.jsxs)(`button`,{type:`button`,onClick:()=>void o(),disabled:r===`busy`,"aria-label":N(`run.shareFile`),title:N(`run.shareFile`),className:E(`inline-flex h-9 items-center gap-1.5 rounded-full px-3 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,r===`ready`?`bg-ember-tint text-ink ring-1 ring-ember`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),children:[r===`busy`?(0,V.jsx)(T,{className:`size-3.5`}):(0,V.jsx)(R,{className:`size-3.5`}),N(r===`ready`?`run.shareNow`:`run.share`)]})}var Mo=B(`share`)||Xt();function No({base:e,stepId:t,formats:n,title:r}){let a=n=>i(`${e}/steps/${t}/download?format=${n}`);return(0,V.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.map((e,t)=>(0,V.jsxs)(`a`,{href:a(e),onClick:t=>Ct(t,a(e)),className:E(`inline-flex h-9 items-center gap-1.5 rounded-full px-3.5 font-medium text-[0.8125rem] transition coarse:h-11 coarse:px-4`,t===0?`bg-primary text-primary-foreground hover:brightness-105`:`bg-paper-2 text-ink-2 hover:bg-paper-3 hover:text-ink`),children:[t===0?(0,V.jsx)(ce,{className:`size-3.5`}):null,ko[e]]},e)),Mo&&n.length?(0,V.jsx)(jo,{url:a(n[0]),format:n[0],title:r},a(n[0])):null]})}var Po=45e3;function Fo(e){let[t,n]=(0,z.useState)(null),[r,a]=(0,z.useState)(null),[s,l]=(0,z.useState)(!1),[u,d]=(0,z.useState)(!1),[f,p]=(0,z.useState)({});(0,z.useEffect)(()=>{if(n(null),l(!1),!e)return;let t=!1,r=0,a,s=null,u=Date.now(),d=()=>{t=!0,s?.close(),l(!0)},f=async()=>{try{let r=await o.get(`/api/runs/${e}`);t||n(r)}catch(e){e instanceof c&&e.status===404&&d()}},p=()=>{if(clearTimeout(a),s?.close(),t)return;let o=new EventSource(i(`/api/runs/${e}/stream`),{withCredentials:!0});s=o,u=Date.now(),o.addEventListener(`view`,e=>{r=0,u=Date.now(),n(JSON.parse(e.data))}),o.addEventListener(`ping`,()=>{u=Date.now()}),o.onerror=()=>{o.close(),!(t||s!==o)&&(s=null,f(),r=Math.min(r+1,6),a=setTimeout(p,500*2**r))}},m=()=>{t||document.visibilityState!==`visible`||(!s||s.readyState===EventSource.CLOSED||Date.now()-u>Po?(r=0,p()):f())},h=setInterval(()=>{!t&&s&&Date.now()-u>Po&&(r=0,p())},15e3);return p(),document.addEventListener(`visibilitychange`,m),window.addEventListener(`pageshow`,m),window.addEventListener(`online`,m),()=>{t=!0,clearTimeout(a),clearInterval(h),document.removeEventListener(`visibilitychange`,m),window.removeEventListener(`pageshow`,m),window.removeEventListener(`online`,m),s?.close()}},[e]);let m=(0,z.useCallback)(async(t,n)=>{if(!e)return!1;d(!0),a(null),p({});try{return await o.post(`/api/runs/${e}/${t}`,n),!0}catch(e){return e instanceof c&&e.status===422&&Array.isArray(e.body?.fields)&&p(Object.fromEntries(e.body.fields.map(e=>[e.field,e.message]))),a(e.message),!1}finally{d(!1)}},[e]);return{view:t,notFound:s,error:r,busy:u,fieldErrors:f,submitPage:(e,t)=>m(`pages/${e}`,{values:t}),accept:(e,t)=>m(`reviews/${e}`,{type:`accept`,edits:t}),regenerate:(e,t,n,r)=>m(`reviews/${e}`,{type:`regenerate`,target:t,note:n,items:r?.length?r:void 0}),back:()=>m(`back`),retry:()=>m(`retry`)}}function Io({view:e}){let t=Math.round(Math.min(e.progress.done,e.progress.total)/Math.max(1,e.progress.total)*100);return(0,V.jsx)(`div`,{className:`h-[3px] w-full bg-paper-2`,children:(0,V.jsx)(`div`,{className:`h-full bg-ember transition-[width] duration-700 ease-out`,style:{width:`${t}%`}})})}function Lo({title:e,description:t,kicker:n}){return(0,V.jsxs)(`div`,{className:`mb-8`,children:[n?(0,V.jsx)(`p`,{className:`mb-4 text-[0.9375rem] text-ink-2 leading-relaxed`,children:n}):null,(0,V.jsx)(`h1`,{className:`font-display font-semibold text-[1.75rem] leading-[1.15] tracking-tight sm:text-[2rem]`,children:e}),t?(0,V.jsx)(`p`,{className:`mt-2 text-[0.9375rem] text-ink-3 leading-relaxed`,children:t}):null]})}function Ro(e,t){let n={};for(let r of e.fields)n[r.id]=t.values[r.id]??t.prefill?.[r.id]??r.default??(r.kind===`multiselect`?[]:void 0);return n}function zo(e){return Array.from(e.querySelectorAll(`input:not([type="hidden"], [type="file"], [type="checkbox"], [type="color"], [type="range"], [disabled]), textarea:not([disabled])`)).filter(e=>!e.closest(`dialog`)&&e.offsetParent!==null)}function Bo({view:e,run:t,step:n}){let[r,i]=(0,z.useState)(()=>Ro(n,e)),[a,o]=(0,z.useState)(new Set),s=(0,z.useRef)(null),c=e.progress.done===0,l=()=>void t.submitPage(n.id,r);return(0,z.useEffect)(()=>{if(!s.current)return;let e=zo(s.current).filter(e=>e instanceof HTMLInputElement);for(let[t,n]of e.entries())(n.dataset.hint||!n.hasAttribute(`enterkeyhint`))&&(n.dataset.hint=`1`,n.setAttribute(`enterkeyhint`,t===e.length-1?`go`:`next`))}),(0,V.jsxs)(`form`,{ref:s,className:`animate-rise`,onSubmit:e=>{e.preventDefault(),a.size||l()},onKeyDown:e=>{let t=e.target;if(e.key!==`Enter`||e.defaultPrevented||e.nativeEvent.isComposing||!(t instanceof HTMLInputElement)||t.closest(`dialog`))return;let n=zo(e.currentTarget),r=n[n.indexOf(t)+1];r&&(e.preventDefault(),r.focus())},children:[(0,V.jsx)(Lo,{title:n.title,description:n.description,kicker:c?e.wizard.intro:null}),(0,V.jsx)(`div`,{className:`flex flex-col gap-7`,children:n.fields.map(n=>(0,V.jsx)(sr,{field:n,value:r[n.id],values:r,runId:e.id,view:e,error:t.fieldErrors[n.id],closed:e.closed?.[n.id],onChange:e=>i(t=>({...t,[n.id]:e})),onBusy:e=>o(t=>{if(t.has(n.id)===e)return t;let r=new Set(t);return e?r.add(n.id):r.delete(n.id),r})},n.id))}),(0,V.jsx)(Vo,{view:e,run:t,sticky:!0,children:(0,V.jsxs)(M,{type:`submit`,size:`lg`,busy:t.busy,disabled:a.size>0,children:[n.cta||N(`run.next`),` `,(0,V.jsx)(p,{className:`size-4`})]})})]})}function Vo({view:e,run:t,sticky:n,children:r}){return(0,V.jsxs)(`div`,{className:E(`mt-10 flex items-center justify-between gap-3`,n&&`action-bar`),children:[e.canBack?(0,V.jsxs)(M,{variant:`ghost`,onClick:()=>void t.back(),disabled:t.busy,children:[(0,V.jsx)(d,{className:`size-4`}),` `,N(`run.back`)]}):(0,V.jsx)(`span`,{}),r]})}function Ho(){let e=Wt(),[t,n]=(0,z.useState)(!1),r=e!==`off`;return(0,V.jsxs)(`div`,{className:`mt-6 flex flex-col items-center gap-2`,children:[(0,V.jsxs)(`button`,{type:`button`,"aria-pressed":r,disabled:t,onClick:async()=>{if(r){qt();return}n(!0),await Kt(),n(!1)},className:E(`inline-flex h-11 items-center gap-2 rounded-full px-4 font-medium text-[0.875rem] ring-1 transition`,r?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink hover:ring-ink-4`),children:[r?(0,V.jsx)(I,{className:`size-4 text-ember-strong`}):(0,V.jsx)(_e,{className:`size-4`}),N(r?`notify.on`:`notify.ask`)]}),(0,V.jsx)(`p`,{className:`max-w-xs text-[0.75rem] text-ink-4 leading-relaxed`,children:N(e===`off`?`notify.why`:e===`on`?`notify.onHint`:Gt()?`notify.blocked`:`notify.quiet`)})]})}function Uo({view:e,compact:t,awake:n}){let r=(0,z.useMemo)(()=>{let t=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id);return t?new Date(t.at).getTime():Date.now()},[e.events,e.step?.id]),[o,s]=(0,z.useState)(Date.now());(0,z.useEffect)(()=>{let e=setInterval(()=>s(Date.now()),1e3);return()=>clearInterval(e)},[]);let c=[...e.events].reverse().find(t=>t.type===`step_started`&&t.stepId===e.step?.id)?.message??e.step?.title??N(`run.working`),l=e.events.filter(e=>(e.type===`tool`||e.type===`info`)&&new Date(e.at).getTime()>=r-500),u=l.slice(-4),d=[...new Set(l.map(e=>e.asset).filter(e=>!!e))],f=[...l].reverse().find(e=>e.asset)?.asset;return(0,V.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-6 text-center`,children:[(0,V.jsx)(a,{kind:e.wizard.avatar,size:t?130:170,fluffy:!0}),(0,V.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem] tracking-tight`,children:c}),(0,V.jsx)(`div`,{className:`mt-1 text-[0.8125rem] text-ink-4 tabular-nums`,children:N(`run.elapsed`,{s:Math.max(0,Math.round((o-r)/1e3))})}),d.length?(0,V.jsx)(`div`,{className:`mt-5 flex max-w-full flex-wrap justify-center gap-2`,children:d.slice(-8).map(t=>(0,V.jsx)(`img`,{src:i(`/api/runs/${e.id}/assets/${t}`),alt:``,className:E(`size-16 animate-rise rounded-lg bg-paper-2 object-cover ring-1 ring-border-soft transition sm:size-20`,t===f?`ring-2 ring-ember`:`opacity-70`)},t))}):null,(0,V.jsx)(`div`,{className:`mt-6 flex min-h-[7rem] w-full max-w-sm flex-col gap-1.5`,children:u.map((e,t)=>(0,V.jsxs)(`div`,{className:E(`flex items-center justify-center gap-2 text-[0.8125rem] transition-opacity`,t===u.length-1?`text-ink-2`:`text-ink-4`),children:[t===u.length-1?(0,V.jsx)(lt,{className:`size-3.5 animate-breathe text-ember`}):null,(0,V.jsx)(`span`,{className:`truncate`,children:ie(e)})]},e.id))}),t?null:(0,V.jsx)(Ho,{}),n?(0,V.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-4`,children:N(`run.awake`)}):null]})}function Wo(e){let t=(0,z.useRef)({running:!1,since:0,ask:null});(0,z.useEffect)(()=>{if(!e)return;let n=t.current,r=e.status===`running`,i=r?n.running?n.since:Date.now():0,a=t=>{document.visibilityState!==`visible`&&!document.title.startsWith(`● `)&&(document.title=`● ${document.title}`),Yt({title:e.wizard.title,body:t,tag:e.id})};r&&e.ask&&e.ask.id!==n.ask?a(N(`notify.needsYou`)):!r&&n.running&&Date.now()-n.since>8e3&&a(e.status===`failed`?N(`run.failed`):e.status===`done`?N(`notify.done`):N(`notify.next`)),t.current={running:r,since:i,ask:e.ask?.id??null}},[e]),(0,z.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&document.title.startsWith(`● `)&&(document.title=document.title.slice(2))};return document.addEventListener(`visibilitychange`,e),()=>document.removeEventListener(`visibilitychange`,e)},[])}function Go({view:e,run:t,step:n}){let[r,i]=(0,z.useState)({}),[a,o]=(0,z.useState)({}),[s,c]=(0,z.useState)(``),l=e.shown.filter(e=>e.output),[u,d]=(0,z.useState)(l.length===1?l[0].step.id:null),[m,h]=(0,z.useState)({}),g=(0,z.useRef)(null),_=l.find(e=>e.step.id===u),v=_?.step.type===`generate`&&(_.output?.assets?.length??0)>1,y=()=>{_&&s.trim()&&t.regenerate(n.id,_.step.id,s.trim(),m[_.step.id])};return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsx)(Lo,{title:n.title,description:n.description}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[e.shown.filter(e=>e.output).map(({step:t,output:s})=>{let c=!!n.edit&&t.type===`agent`&&t.output.format!==`json`;return(0,V.jsxs)(`section`,{children:[(0,V.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,V.jsx)(`h3`,{className:`font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.title}),(0,V.jsx)(`div`,{className:`flex items-center`,children:c&&!a[t.id]?(0,V.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>({...e,[t.id]:!0})),className:`inline-flex h-8 items-center gap-1.5 rounded-full px-3 text-[0.8125rem] text-ink-2 hover:bg-accent hover:text-ink coarse:h-11`,children:[(0,V.jsx)(Qe,{className:`size-3.5`}),` `,N(`run.edit`)]}):null})]}),(0,V.jsx)(Oo,{base:`/api/runs/${e.id}`,step:t,output:s,editable:c&&a[t.id],draft:r[t.id],onDraft:e=>i(n=>({...n,[t.id]:e})),picked:m[t.id],onPick:n.regenerate?e=>{d(t.id),h(n=>{let r=n[t.id]??[];return{...n,[t.id]:r.includes(e)?r.filter(t=>t!==e):[...r,e]}}),g.current?.focus()}:void 0})]},t.id)}),e.lists.map(t=>(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`h3`,{className:`mb-2 font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.06em]`,children:t.def.title}),t.def.check?(0,V.jsx)(Kn,{runId:e.id,list:t}):(0,V.jsx)(Un,{runId:e.id,list:t,editable:!0})]},t.def.id)),n.regenerate&&l.length?(0,V.jsxs)(ne,{className:`p-3`,children:[l.length>1?(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-1 pb-2`,children:[(0,V.jsx)(`span`,{className:`mr-1 text-[0.8125rem] text-ink-3`,children:N(`run.feedbackTarget`)}),l.map(({step:e})=>(0,V.jsx)(`button`,{type:`button`,"aria-pressed":u===e.id,onClick:()=>{d(e.id),g.current?.focus()},className:E(`inline-flex h-8 items-center rounded-full px-3 text-[0.8125rem] ring-1 transition coarse:h-11`,u===e.id?`bg-ember-tint text-ink ring-ember`:`bg-card text-ink-2 ring-input hover:text-ink`),children:e.title},e.id))]}):null,(0,V.jsx)(D,{ref:g,minRows:2,maxRows:8,value:s,placeholder:N(`run.feedbackPlaceholder`),onChange:e=>c(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())},className:`border-0 bg-transparent shadow-none focus:ring-0`}),(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-1 pt-1`,children:[(0,V.jsx)(`span`,{className:`min-w-0 text-[0.75rem] text-ink-3`,children:v?m[_.step.id]?.length?N(`run.regeneratePicked`,{n:[...m[_.step.id]].sort((e,t)=>e-t).map(e=>e+1).join(`, `)}):N(`run.regenerateAll`):!_&&s.trim()?N(`run.feedbackPick`):null}),(0,V.jsxs)(M,{size:`sm`,variant:`secondary`,busy:t.busy,disabled:!s.trim()||!_,onClick:y,children:[(0,V.jsx)(f,{className:`size-3.5`}),` `,N(`run.regenerateGo`)]})]})]}):null]}),(0,V.jsx)(Vo,{view:e,run:t,sticky:!0,children:(0,V.jsxs)(M,{size:`lg`,busy:t.busy,onClick:()=>void t.accept(n.id,Object.keys(r).length?r:void 0),children:[N(`run.accept`),` `,(0,V.jsx)(p,{className:`size-4`})]})})]})}function Ko({view:e,run:t,step:n,onRestart:r}){let i=e.shown.filter(e=>e.output);return(0,V.jsxs)(`div`,{className:`animate-rise`,children:[(0,V.jsxs)(`div`,{className:`mb-8 flex flex-wrap items-center gap-x-4 gap-y-5`,children:[(0,V.jsx)(a,{kind:e.wizard.avatar,size:64}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1 basis-[12rem]`,children:[(0,V.jsx)(`h1`,{className:`text-balance font-display font-semibold text-[1.75rem] leading-tight tracking-tight sm:text-[2rem]`,children:n.title}),n.message?(0,V.jsx)(`p`,{className:`mt-1 text-[0.9375rem] text-ink-3`,children:n.message}):null]}),e.shown.some(e=>e.output)?(0,V.jsx)(`div`,{className:`max-sm:basis-full`,children:(0,V.jsx)(Dt,{runId:e.id,title:`${n.title} · ${e.wizard.title}`,initial:e.shareUrl?{url:e.shareUrl,expiresAt:e.expiresAt}:null})}):null]}),(0,V.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[i.map(({step:t,output:n,formats:r,label:i})=>(0,V.jsxs)(ne,{className:`p-4 sm:p-5`,children:[(0,V.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,V.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:i??t.title}),(0,V.jsx)(No,{base:`/api/runs/${e.id}`,stepId:t.id,formats:r,title:i??t.title})]}),(0,V.jsx)(Oo,{base:`/api/runs/${e.id}`,step:t,output:n}),n?.assets?.some(e=>e.ai)?(0,V.jsx)(`p`,{className:`mt-3 text-[0.75rem] text-ink-3 leading-relaxed`,children:N(`ai.publish`)}):null]},t.id)),e.lists.map(t=>(0,V.jsxs)(ne,{className:`p-4 sm:p-5`,children:[(0,V.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3`,children:[(0,V.jsx)(`h3`,{className:`font-display font-semibold text-[1.0625rem]`,children:t.label??t.def.title}),(0,V.jsx)(Jn,{runId:e.id,list:t})]}),(0,V.jsx)(Un,{runId:e.id,list:t,editable:!0})]},t.def.id))]}),(0,V.jsx)(Vo,{view:e,run:t,children:r?(0,V.jsxs)(M,{variant:`secondary`,onClick:r,children:[(0,V.jsx)(et,{className:`size-4`}),` `,N(`run.again`)]}):(0,V.jsx)(`span`,{})})]})}function qo({view:e,run:t}){return(0,V.jsxs)(`div`,{className:`flex animate-rise flex-col items-center pt-8 text-center`,children:[(0,V.jsx)(a,{kind:e.wizard.avatar,size:90}),(0,V.jsx)(`h2`,{className:`mt-4 font-display font-semibold text-[1.375rem]`,children:N(`run.failed`)}),(0,V.jsx)(`p`,{className:`mt-2 max-w-md text-[0.9375rem] text-ink-3`,children:(0,V.jsx)(ee,{text:e.error??``})}),(0,V.jsxs)(`div`,{className:`mt-8 flex gap-3`,children:[e.canBack?(0,V.jsxs)(M,{variant:`ghost`,onClick:()=>void t.back(),children:[(0,V.jsx)(d,{className:`size-4`}),` `,N(`run.back`)]}):null,(0,V.jsxs)(M,{onClick:()=>void t.retry(),busy:t.busy,children:[(0,V.jsx)(et,{className:`size-4`}),` `,N(`run.retry`)]})]})]})}function Jo({runId:e,compact:t,onRestart:n,onView:r,stickyProgress:i}){let a=Fo(e),{view:o}=a;(0,z.useEffect)(()=>{r?.(o)},[o,r]),Pt();let s=Ft(o?.status===`running`&&!o.ask);if(Wo(o),a.notFound)return(0,V.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:N(`run.notFound`)});if(!o)return(0,V.jsx)(`div`,{className:`flex justify-center py-24 text-ink-4`,children:(0,V.jsx)(T,{})});let c=o.step,l=null;if(o.status===`running`&&o.ask)l=(0,V.jsx)(Ot,{runId:o.id,ask:o.ask},o.ask.id);else if(o.status===`running`)l=(0,V.jsx)(Uo,{view:o,compact:t,awake:s});else if(o.status===`failed`)l=(0,V.jsx)(qo,{view:o,run:a});else if(o.status===`cancelled`)l=(0,V.jsx)(`div`,{className:`py-24 text-center text-ink-3`,children:N(`run.cancelled`)});else if(c?.type===`page`)l=(0,V.jsx)(Bo,{view:o,run:a,step:c},c.id);else if(c?.type===`review`){let e=o.shown.map(e=>e.output?.at??``).join(`|`);l=(0,V.jsx)(Go,{view:o,run:a,step:c},`${c.id}:${e}`)}else c?.type===`result`&&(l=(0,V.jsx)(Ko,{view:o,run:a,step:c,onRestart:n}));let u=c?.type===`review`&&o.status===`waiting_input`&&o.lists.some(e=>e.def.check);return(0,V.jsxs)(`div`,{className:`flex min-h-full flex-col`,children:[i?(0,V.jsx)(`div`,{className:`sticky top-0 z-10`,children:(0,V.jsx)(Io,{view:o})}):(0,V.jsx)(Io,{view:o}),(0,V.jsxs)(`div`,{className:E(`safe-x mx-auto w-full flex-1`,u?`max-w-[1240px] py-8`:t?`max-w-[620px] py-8`:`max-w-[640px] py-8 sm:py-16`),children:[l,a.error&&o.status!==`failed`?(0,V.jsx)(`div`,{className:`mt-4 rounded-lg bg-rose-tint px-4 py-3 text-[0.875rem] text-rose`,children:a.error}):null,o.keeps&&o.status!==`running`?(0,V.jsx)(`div`,{className:`mt-10 flex justify-center`,children:(0,V.jsx)(Xn,{runId:o.id})}):null]})]})}export{F as _,Oo as a,St as c,it as d,Qe as f,De as g,Ue as h,yo as i,dt as l,qe as m,No as n,bt as o,L as p,bo as r,wt as s,Jo as t,lt as u,pe as v};
|