wizards 0.2.15 → 0.2.17
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/runtime/dist/credits/estimate.js +14 -8
- package/apps/runtime/dist/db/migrations/tenant/0008_run_event_note.sql +1 -0
- package/apps/runtime/dist/db/migrations/tenant/meta/0008_snapshot.json +2019 -0
- package/apps/runtime/dist/db/migrations/tenant/meta/_journal.json +7 -0
- package/apps/runtime/dist/db/schema.js +2 -0
- package/apps/runtime/dist/engine/events.js +14 -2
- package/apps/runtime/dist/engine/prepare.js +5 -2
- package/apps/runtime/dist/engine/requirements.js +248 -12
- package/apps/runtime/dist/engine/runner.js +28 -5
- package/apps/runtime/dist/engine/steps.js +18 -10
- package/apps/runtime/dist/engine/template.js +13 -10
- package/apps/runtime/dist/routes/studio.js +2 -2
- package/apps/runtime/dist/services/marketplace.js +34 -7
- package/apps/runtime/dist/tools/browser.js +12 -6
- package/apps/runtime/dist/tools/index.js +12 -6
- package/apps/runtime/dist/tools/mail.js +5 -2
- package/apps/runtime/dist/tools/pages.js +1 -1
- package/apps/runtime/dist/tools/project.js +5 -2
- package/apps/runtime/dist/tools/store.js +4 -4
- package/apps/runtime/dist/widgets/step.js +10 -4
- package/apps/web/dist/assets/{Account-B_FCuidz.js → Account-LVXhagaS.js} +1 -1
- package/apps/web/dist/assets/{ChangelogDialog-BKvNJIrA.js → ChangelogDialog-DM0KAoy6.js} +1 -1
- package/apps/web/dist/assets/ChatPanel-CxOQmtv-.js +1 -0
- package/apps/web/dist/assets/CreditsDialog-DkW3YT44.js +1 -0
- package/apps/web/dist/assets/EditorPage-hbisE1Wf.js +2 -0
- package/apps/web/dist/assets/{FlowPreview-De3ZyIer.js → FlowPreview-v7or29ku.js} +1 -1
- package/apps/web/dist/assets/{Harness-3kuJaJoj.js → Harness-RZF-bBmb.js} +2 -2
- package/apps/web/dist/assets/{HomePage-DWDT64vg.js → HomePage-mxG-a_KU.js} +1 -1
- package/apps/web/dist/assets/{ImportWizard-CTGmBDI8.js → ImportWizard-CiPyUt3E.js} +1 -1
- package/apps/web/dist/assets/LocalRuntime-Dqp9wkN3.js +1 -0
- package/apps/web/dist/assets/NewWizardPage-DHwRsi0_.js +2 -0
- package/apps/web/dist/assets/ProjectPage-Bb7jN_6n.js +4 -0
- package/apps/web/dist/assets/PublicRunner-TGkOwbAP.js +1 -0
- package/apps/web/dist/assets/RunnerView-DzHGshZj.js +70 -0
- package/apps/web/dist/assets/SettingsPage-CG3Xtfej.js +1 -0
- package/apps/web/dist/assets/{SetupPage-DHQYO7zB.js → SetupPage-O1GfPlqX.js} +1 -1
- package/apps/web/dist/assets/SharePage-CCNUhtry.js +1 -0
- package/apps/web/dist/assets/{api-RJbFM_oc.js → api-DB22_B7G.js} +2 -2
- package/apps/web/dist/assets/changelog-BkIJdZ7M.js +1 -0
- package/apps/web/dist/assets/{esm-CgnVZhIQ.js → esm-3TT9i_rv.js} +1 -1
- package/apps/web/dist/assets/{index-9maLuK9R.css → index-BPpKz65x.css} +1 -1
- package/apps/web/dist/assets/index-CLe9Wrpu.js +10 -0
- package/apps/web/dist/assets/{meta-CchZXdWH.js → meta-CEsBCPfA.js} +1 -1
- package/apps/web/dist/assets/{settings-menu-CrRWSrNL.js → settings-menu-pOcjznGJ.js} +1 -1
- package/apps/web/dist/assets/ui-I7QYMX0F.js +1 -0
- package/apps/web/dist/index.html +4 -4
- package/apps/web/dist/mcp/flow.html +54 -54
- package/node_modules/@engenty-wizards/shared/dist/definition.d.ts +11 -0
- package/node_modules/@engenty-wizards/shared/dist/definition.js +27 -2
- package/node_modules/@engenty-wizards/shared/dist/marketplace.d.ts +2 -0
- package/node_modules/@engenty-wizards/shared/dist/run.d.ts +150 -0
- package/node_modules/@engenty-wizards/shared/dist/run.js +72 -1
- package/package.json +1 -1
- package/apps/web/dist/assets/ChatPanel-CPgh0skF.js +0 -1
- package/apps/web/dist/assets/CreditsDialog-CbFq_7-m.js +0 -1
- package/apps/web/dist/assets/EditorPage-8liZwYCK.js +0 -2
- package/apps/web/dist/assets/LocalRuntime-CVdU8RtD.js +0 -1
- package/apps/web/dist/assets/NewWizardPage-CqFlo0b-.js +0 -2
- package/apps/web/dist/assets/ProjectPage-CDw2Jcxx.js +0 -4
- package/apps/web/dist/assets/PublicRunner-BYnX2OmB.js +0 -1
- package/apps/web/dist/assets/RunnerView-Civq59Tk.js +0 -70
- package/apps/web/dist/assets/SettingsPage-Bj0TxbiM.js +0 -1
- package/apps/web/dist/assets/SharePage-CY6bwfTI.js +0 -1
- package/apps/web/dist/assets/changelog-BWtvjeKs.js +0 -1
- package/apps/web/dist/assets/index-LmRYEd-y.js +0 -10
- package/apps/web/dist/assets/ui-HV_XbHjw.js +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{A as r,O as i,S as a,c as o,d as s,j as c,k as l,n as u,nt as d,t as f}from"./api-RJbFM_oc.js";import{t as p}from"./createLucideIcon-q3MZMmnf.js";import{_ as m,d as h,g,r as _,t as v}from"./RunnerView-Civq59Tk.js";import{n as ee,t as te}from"./refresh-cw-BNtHis1x.js";import{a as y,i as b,n as x,r as S,t as C}from"./meta-CchZXdWH.js";import{t as w}from"./check-CUpby_J9.js";import{t as ne}from"./chevron-down-DymW-2BP.js";import{n as re,r as ie,t as ae}from"./lock-DZL2N67v.js";import{i as oe,n as se,t as ce}from"./ChatPanel-CPgh0skF.js";import{t as le}from"./circle-alert-D2SCwFT-.js";import{t as ue}from"./upload-DNRENWzQ.js";import{n as de,t as T}from"./plus-Du-Jx8aI.js";import{t as fe}from"./external-link-MAL7vJYj.js";import{t as pe}from"./wand-sparkles-Clj3VRB5.js";import{n as E,r as me}from"./Account-B_FCuidz.js";import{t as he}from"./image-BShbErBm.js";import{t as D}from"./trash-0IafyhZB.js";import{_ as ge,a as _e,c as O,d as ve,h as k,i as A,l as j,m as M,o as N,p as P,r as F,s as I,t as L,u as R,y as z}from"./ui-HV_XbHjw.js";import{C as ye,D as be,F as xe,I as Se,O as Ce,P as we,R as Te,S as Ee,U as B,a as De,c as Oe,g as ke,j as Ae,k as je,l as Me,n as Ne,o as Pe,p as Fe,s as Ie,t as Le}from"./index-LmRYEd-y.js";import{c as Re,i as ze,l as Be,n as Ve,o as He,r as Ue,s as We,t as Ge}from"./definition-Dp0DR2D6.js";import{a as Ke,c as qe,i as Je,l as Ye,o as Xe,r as Ze,s as Qe,t as $e}from"./esm-CgnVZhIQ.js";import{n as et}from"./LocalRuntime-CVdU8RtD.js";var tt={name:`cloud-check`,size:24,node:[[`path`,{d:`m17 15-5.5 5.5L9 18`,key:`15q87x`}],[`path`,{d:`M5.516 16.07A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 3.501 7.327`,key:`1xtj56`}]]};tt.node;var nt=p(tt),rt={name:`cloud-upload`,size:24,node:[[`path`,{d:`M12 13v8`,key:`1l5pq0`}],[`path`,{d:`M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242`,key:`1pljnt`}],[`path`,{d:`m8 17 4-4 4 4`,key:`1quai1`}]],aliases:[`upload-cloud`]};rt.node;var it=p(rt),at={name:`code`,size:24,node:[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]};at.node;var ot=p(at),st={name:`file-braces`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]],aliases:[`file-json`]};st.node;var ct=p(st),lt={name:`file-code-corner`,size:24,node:[[`path`,{d:`M4 12.15V4a2 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-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]],aliases:[`file-code-2`]};lt.node;var ut=p(lt),dt={name:`git-merge`,size:24,node:[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]};dt.node;var ft=p(dt),pt={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};pt.node;var mt=p(pt),ht={name:`play`,size:24,node:[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]};ht.node;var gt=p(ht),_t={name:`qr-code`,size:24,node:[[`rect`,{width:`5`,height:`5`,x:`3`,y:`3`,rx:`1`,key:`1tu5fj`}],[`rect`,{width:`5`,height:`5`,x:`16`,y:`3`,rx:`1`,key:`1v8r4q`}],[`rect`,{width:`5`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`1x03jg`}],[`path`,{d:`M21 16h-3a2 2 0 0 0-2 2v3`,key:`177gqh`}],[`path`,{d:`M21 21v.01`,key:`ents32`}],[`path`,{d:`M12 7v3a2 2 0 0 1-2 2H7`,key:`8crl2c`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M12 3h.01`,key:`n36tog`}],[`path`,{d:`M12 16v.01`,key:`133mhm`}],[`path`,{d:`M16 12h1`,key:`1slzba`}],[`path`,{d:`M21 12v.01`,key:`1lwtk9`}],[`path`,{d:`M12 21v-1`,key:`1880an`}]]};_t.node;var vt=p(_t),yt={name:`scan`,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`}]]};yt.node;var bt=p(yt),V=e(t(),1),H=e(n(),1);function xt(e){return e.mime.startsWith(`image/`)?he:e.mime.includes(`json`)?ct:e.mime===`text/html`||e.mime.includes(`javascript`)||e.mime===`text/css`?ut:xe}function St(e){return e<1024?`${e} B`:e<1048576?`${Math.round(e/1024)} KB`:`${(e/1048576).toFixed(1)} MB`}function Ct({wizardId:e,files:t,readOnly:n}){let r=d(),i=(0,V.useRef)(null),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(!1),[l,f]=(0,V.useState)(null),p=`/api/studio/wizards/${e}/files`,m=()=>r.invalidateQueries({queryKey:[`wizard`,e]}),h=async e=>{if(e?.length){o(!0),f(null);try{for(let t of Array.from(e)){let e=await fetch(`${p}/${encodeURIComponent(t.name).replace(/%2F/g,`/`)}`,{method:`PUT`,credentials:`include`,headers:{"content-type":t.type||`application/octet-stream`},body:t});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??e.statusText)}}}catch(e){f(e.message)}finally{o(!1),await m()}}},g=async e=>{if(window.confirm(z(`files.confirmDelete`,{path:e}))){f(null);try{await u.del(`${p}/${e}`)}catch(e){f(e.message)}await m()}},_=t.reduce((e,t)=>e+t.size,0);return(0,H.jsxs)(`div`,{className:k(`flex min-h-full flex-col px-5 py-5`,s&&`bg-ember-veil`),onDragOver:e=>{e.preventDefault(),c(!n)},onDragLeave:()=>c(!1),onDrop:e=>{e.preventDefault(),c(!1),n||h(e.dataTransfer.files)},children:[n?null:(0,H.jsx)(`p`,{className:`mb-4 text-[0.8125rem] text-ink-3 leading-relaxed`,children:z(`files.explain`)}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n?null:(0,H.jsxs)(`button`,{type:`button`,onClick:()=>i.current?.click(),className:`inline-flex h-9 items-center gap-1.5 rounded-full bg-paper-2 px-3.5 font-medium text-[0.8125rem] text-ink-2 hover:bg-paper-3 hover:text-ink`,children:[a?(0,H.jsx)(ve,{className:`size-3.5`}):(0,H.jsx)(ue,{className:`size-3.5`}),z(`files.upload`)]}),(0,H.jsx)(`span`,{className:`ml-auto text-[0.75rem] text-ink-4`,children:z(`files.count`,{n:t.length,size:St(_)})}),(0,H.jsx)(`input`,{ref:i,type:`file`,multiple:!0,hidden:!0,onChange:e=>void h(e.target.files)})]}),l?(0,H.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-3 py-2 text-[0.8125rem] text-rose`,children:l}):null,(0,H.jsx)(`ul`,{className:`mt-4 flex flex-col`,children:t.map(e=>{let t=xt(e);return(0,H.jsxs)(`li`,{className:`group flex items-center gap-3 rounded-lg px-2 py-1.5 hover:bg-paper-2`,children:[(0,H.jsx)(t,{className:`size-4 shrink-0 text-ink-3`}),(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[0.75rem]`,children:e.path}),(0,H.jsx)(`span`,{className:`text-[0.75rem] text-ink-4 tabular-nums`,children:St(e.size)}),(0,H.jsx)(`a`,{href:`${p}/${e.path}`,className:`inline-flex size-8 items-center justify-center rounded-full text-ink-3 opacity-0 hover:text-ink group-hover:opacity-100`,"aria-label":z(`files.download`),children:(0,H.jsx)(Se,{className:`size-4`})}),n?null:(0,H.jsx)(N,{label:z(`files.delete`),className:`opacity-0 hover:text-rose group-hover:opacity-100`,onClick:()=>void g(e.path),children:(0,H.jsx)(D,{className:`size-4`})})]},e.path)})}),t.length===0?(0,H.jsx)(`div`,{className:`mt-6 rounded-xl border border-border border-dashed px-4 py-8 text-center text-[0.8125rem] text-ink-4`,children:z(n?`files.none`:`files.empty`)}):null]})}var wt=Object.defineProperty,Tt=(e,t,n)=>t in e?wt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Et=(e,t)=>{for(var n in t)wt(e,n,{get:t[n],enumerable:!0})},Dt=(e,t,n)=>Tt(e,typeof t==`symbol`?t:t+``,n),Ot={};Et(Ot,{Graph:()=>W,alg:()=>Bt});var kt=Object.defineProperty,At=(e,t)=>{for(var n in t)kt(e,n,{get:t[n],enumerable:!0})},jt=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected=`directed`in e?e.directed:!0,this._isMultigraph=`multigraph`in e&&e.multigraph,this._isCompound=`compound`in e&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children[`\0`]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return this._defaultNodeLabelFn=typeof e==`function`?e:()=>e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>Object.keys(this._in[e]).length===0)}sinks(){return this.nodes().filter(e=>Object.keys(this._out[e]).length===0)}setNodes(e,t){return e.forEach(e=>{t===void 0?this.setNode(e):this.setNode(e,t)}),this}setNode(e,t){return e in this._nodes?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=`\0`,this._children[e]={},this._children[`\0`][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(e=>{this.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error(`Cannot set parent in a non-compound graph`);if(t===void 0)t=`\0`;else{t+=``;for(let n=t;n!==void 0;n=this.parent(n))if(n===e)throw Error(`Setting `+t+` as parent of `+e+` would create a cycle`);this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if(t!==`\0`)return t}}children(e=`\0`){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if(e===`\0`)return this.nodes();if(this.hasNode(e))return[]}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t),r=this.successors(e);if(r)for(let e of r)n.add(e);return Array.from(n.values())}}isLeaf(e){let t;return t=this.isDirected()?this.successors(e):this.neighbors(e),(t?.length??0)===0}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([n,r])=>{e(n)&&t.setNode(n,r)}),Object.values(this._edgeObjs).forEach(e=>{t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,this.edge(e))});let n={},r=e=>{let i=this.parent(e);return!i||t.hasNode(i)?(n[e]=i,i):i in n?n[i]:r(i)};return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,r(e))),t}setDefaultEdgeLabel(e){return this._defaultEdgeLabelFn=typeof e==`function`?e:()=>e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((e,n)=>(t===void 0?this.setEdge(e,n):this.setEdge(e,n,t),n)),this}setEdge(e,t,n,r){let i,a,o,s,c=!1;typeof e==`object`&&e&&`v`in e?(i=e.v,a=e.w,o=e.name,arguments.length===2&&(s=t,c=!0)):(i=e,a=t,o=r,arguments.length>2&&(s=n,c=!0)),i=``+i,a=``+a,o!==void 0&&(o=``+o);let l=U(this._isDirected,i,a,o);if(l in this._edgeLabels)return c&&(this._edgeLabels[l]=s),this;if(o!==void 0&&!this._isMultigraph)throw Error(`Cannot set a named edge when isMultigraph = false`);this.setNode(i),this.setNode(a),this._edgeLabels[l]=c?s:this._defaultEdgeLabelFn(i,a,o);let u=Pt(this._isDirected,i,a,o);return i=u.v,a=u.w,Object.freeze(u),this._edgeObjs[l]=u,Mt(this._preds[a],i),Mt(this._sucs[i],a),this._in[a][l]=u,this._out[i][l]=u,this._edgeCount++,this}edge(e,t,n){let r=arguments.length===1?Ft(this._isDirected,e):U(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(e,t,n){let r=arguments.length===1?this.edge(e):this.edge(e,t,n);return typeof r!=`object`||!r?{label:r}:r}hasEdge(e,t,n){return(arguments.length===1?Ft(this._isDirected,e):U(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?Ft(this._isDirected,e):U(this._isDirected,e,t,n),i=this._edgeObjs[r];if(i){let e=i.v,t=i.w;delete this._edgeLabels[r],delete this._edgeObjs[r],Nt(this._preds[t],e),Nt(this._sucs[e],t),delete this._in[t][r],delete this._out[e][r],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let r=Object.values(e);return n?r.filter(e=>e.v===t&&e.w===n||e.v===n&&e.w===t):r}};function Mt(e,t){e[t]?e[t]++:e[t]=1}function Nt(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function U(e,t,n,r){let i=``+t,a=``+n;if(!e&&i>a){let e=i;i=a,a=e}return i+``+a+``+(r===void 0?`\0`:r)}function Pt(e,t,n,r){let i=``+t,a=``+n;if(!e&&i>a){let e=i;i=a,a=e}let o={v:i,w:a};return r&&(o.name=r),o}function Ft(e,t){return U(e,t.v,t.w,t.name)}At({},{read:()=>zt,write:()=>It});function It(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Lt(e),edges:Rt(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function Lt(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),i={v:t};return n!==void 0&&(i.value=n),r!==void 0&&(i.parent=r),i})}function Rt(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function zt(e){let t=new jt(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(e=>{t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(e=>{t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}var Bt={};At(Bt,{CycleException:()=>tn,bellmanFord:()=>Ht,components:()=>Wt,dijkstra:()=>qt,dijkstraAll:()=>Yt,findCycles:()=>Zt,floydWarshall:()=>$t,isAcyclic:()=>rn,postorder:()=>cn,preorder:()=>ln,prim:()=>un,shortestPaths:()=>dn,tarjan:()=>Xt,topsort:()=>nn});var Vt=()=>1;function Ht(e,t,n,r){return Ut(e,String(t),n||Vt,r||function(t){return e.outEdges(t)??[]})}function Ut(e,t,n,r){let i={},a,o=0,s=e.nodes(),c=function(e){let t=i[e.v],r=i[e.w];if(!t||!r)return;let o=n(e);t.distance+o<r.distance&&(i[e.w]={distance:t.distance+o,predecessor:e.v},a=!0)},l=function(){s.forEach(function(e){r(e).forEach(function(t){let n=t.v===e?t.v:t.w,r=n===t.v?t.w:t.v;c({v:n,w:r})})})};s.forEach(function(e){i[e]={distance:e===t?0:1/0,predecessor:``}});let u=s.length;for(let e=1;e<u&&(a=!1,o++,l(),a);e++);if(o===u-1&&(a=!1,l(),a))throw Error(`The graph contains a negative weight cycle`);return i}function Wt(e){let t={},n=[],r;function i(n){var a,o;n in t||(t[n]=!0,r.push(n),(a=e.successors(n))==null||a.forEach(i),(o=e.predecessors(n))==null||o.forEach(i))}return e.nodes().forEach(function(e){r=[],i(e),r.length&&n.push(r)}),n}var Gt=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw Error(`Queue underflow`);return this._arr[0].key}add(e,t){let n=this._keyIndices,r=String(e);if(!(r in n)){let e=this._arr,i=e.length;return n[r]=i,e.push({key:r,priority:t}),this._decrease(i),!0}return!1}removeMin(){if(this.size()===0)throw Error(`Queue underflow`);this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(n===void 0)throw Error(`Key not found: ${e}`);let r=this._arr[n].priority;if(t>r)throw Error(`New priority is greater than current priority. Key: ${e} Old: ${r} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,r=n+1,i=e;n<t.length&&(i=t[n].priority<t[i].priority?n:i,r<t.length&&(i=t[r].priority<t[i].priority?r:i),i!==e&&(this._swap(e,i),this._heapify(i)))}_decrease(e){let t=this._arr,n=t[e].priority,r;for(;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r}_swap(e,t){let n=this._arr,r=this._keyIndices,i=n[e],a=n[t];n[e]=a,n[t]=i,r[a.key]=e,r[i.key]=t}},Kt=()=>1;function qt(e,t,n,r){return Jt(e,String(t),n||Kt,r||function(t){return e.outEdges(t)??[]})}function Jt(e,t,n,r){let i={},a=new Gt,o,s,c=function(e){let t=e.v===o?e.w:e.v,r=i[t];if(!r)return;let c=n(e),l=s.distance+c;if(c<0)throw Error(`dijkstra does not allow negative edge weights. Bad edge: `+e+` Weight: `+c);l<r.distance&&(r.distance=l,r.predecessor=o,a.decrease(t,l))};for(e.nodes().forEach(function(e){let n=e===t?0:1/0;i[e]={distance:n,predecessor:``},a.add(e,n)});a.size()>0;){o=a.removeMin();let e=i[o];if(!e||e.distance===1/0)break;s=e,r(o).forEach(c)}return i}function Yt(e,t,n){return e.nodes().reduce(function(r,i){return r[i]=qt(e,i,t,n),r},{})}function Xt(e){let t=0,n=[],r={},i=[];function a(o){var s;let c=r[o]={onStack:!0,lowlink:t,index:t++};if(n.push(o),(s=e.successors(o))==null||s.forEach(function(e){if(e in r){let t=r[e];t!=null&&t.onStack&&(c.lowlink=Math.min(c.lowlink,t.index))}else{a(e);let t=r[e];t&&(c.lowlink=Math.min(c.lowlink,t.lowlink))}}),c.lowlink===c.index){let e=[],t;do{t=n.pop();let i=r[t];i&&(i.onStack=!1),e.push(t)}while(o!==t);i.push(e)}}return e.nodes().forEach(function(e){e in r||a(e)}),i}function Zt(e){return Xt(e).filter(function(t){let n=t[0];return n?t.length>1||t.length===1&&(e.outEdges(n,n)??[]).length>0:!1})}var Qt=()=>1;function $t(e,t,n){return en(e,t||Qt,n||function(t){return e.outEdges(t)??[]})}function en(e,t,n){let r={},i=e.nodes();return i.forEach(function(e){let a={};r[e]=a,a[e]={distance:0,predecessor:``},i.forEach(function(t){e!==t&&(a[t]={distance:1/0,predecessor:``})}),n(e).forEach(function(n){let r=n.v===e?n.w:n.v,i=t(n);a[r]={distance:i,predecessor:e}})}),i.forEach(function(e){let t=r[e];t&&i.forEach(function(n){let a=r[n];a&&i.forEach(function(n){let r=a[e],i=t[n],o=a[n];if(r&&i&&o){let e=r.distance+i.distance;e<o.distance&&(o.distance=e,o.predecessor=i.predecessor)}})})}),r}var tn=class extends Error{constructor(e){super(e),this.name=`CycleException`}};function nn(e){let t={},n={},r=[];function i(a){var o;if(a in n)throw new tn;a in t||(n[a]=!0,t[a]=!0,(o=e.predecessors(a))==null||o.forEach(i),delete n[a],r.push(a))}if(e.sinks().forEach(i),Object.keys(t).length!==e.nodeCount())throw new tn;return r}function rn(e){try{nn(e)}catch(e){if(e instanceof tn)return!1;throw e}return!0}function an(e,t,n,r,i){Array.isArray(t)||(t=[t]);let a=(t=>(e.isDirected()?e.successors(t):e.neighbors(t))??[]),o={};return t.forEach(function(t){if(!e.hasNode(t))throw Error(`Graph does not have node: `+t);i=on(e,t,n===`post`,o,a,r,i)}),i}function on(e,t,n,r,i,a,o){return t in r||(r[t]=!0,n||(o=a(o,t)),i(t).forEach(function(t){o=on(e,t,n,r,i,a,o)}),n&&(o=a(o,t))),o}function sn(e,t,n){return an(e,t,n,function(e,t){return e.push(t),e},[])}function cn(e,t){return sn(e,t,`post`)}function ln(e,t){return sn(e,t,`pre`)}function un(e,t){var n;let r=new jt,i={},a=new Gt,o;function s(e){let n=e.v===o?e.w:e.v,r=a.priority(n);if(r!==void 0){let s=t(e);s<r&&(i[n]=o,a.decrease(n,s))}}if(e.nodeCount()===0)return r;e.nodes().forEach(function(e){a.add(e,1/0),r.setNode(e)});let c=e.nodes()[0];c!==void 0&&a.decrease(c,0);let l=!1;for(;a.size()>0;){if(o=a.removeMin(),o in i)r.setEdge(o,i[o]);else{if(l)throw Error(`Input graph is not connected: `+e);l=!0}(n=e.nodeEdges(o))==null||n.forEach(s)}return r}function dn(e,t,n,r){return fn(e,t,n,r??(t=>e.outEdges(t)??[]))}function fn(e,t,n,r){if(n===void 0)return qt(e,t,n,r);let i=!1,a=e.nodes();for(let o=0;o<a.length;o++){let s=a[o];if(s===void 0)continue;let c=r(s);for(let e=0;e<c.length;e++){let t=c[e];if(!t)continue;let r=t.v===s?t.v:t.w;n({v:r,w:r===t.v?t.w:t.v})<0&&(i=!0)}if(i)return Ht(e,t,n,r)}return qt(e,t,n,r)}var W=jt;function G(e,t,n,r){let i=r;for(;e.hasNode(i);)i=Dn(r);return n.dummy=t,e.setNode(i,n),i}function pn(e){let t=new W().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},i=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function mn(e){let t=new W({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function hn(e,t){let n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2;if(!i&&!a)throw Error(`Not possible to find intersection inside of the rectangle`);let c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=s*i/a,l=s):(i<0&&(o=-o),c=o,l=o*a/i),{x:n+c,y:r+l}}function gn(e){let t=On(Sn(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),i=r.rank;i!==void 0&&(t[i]||(t[i]=[]),t[i][r.order]=n)}),t}function _n(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MAX_VALUE:n}),n=K(Math.min,t);e.nodes().forEach(t=>{let r=e.node(t);Object.hasOwn(r,`rank`)&&(r.rank-=n)})}function vn(e){let t=e.nodes().map(t=>e.node(t).rank).filter(e=>e!==void 0),n=K(Math.min,t),r=[];e.nodes().forEach(t=>{let i=e.node(t).rank-n;r[i]||(r[i]=[]),r[i].push(t)});let i=0,a=e.graph().nodeRankFactor;Array.from(r).forEach((t,n)=>{t===void 0&&n%a!==0?--i:t!==void 0&&i&&t.forEach(t=>e.node(t).rank+=i)})}function yn(e,t,n,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),G(e,`border`,i,t)}function bn(e,t=xn){let n=[];for(let r=0;r<e.length;r+=t){let i=e.slice(r,r+t);n.push(i)}return n}var xn=65535;function K(e,t){return t.length>xn?e(...bn(t).map(t=>e(...t))):e(...t)}function Sn(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MIN_VALUE:n});return K(Math.max,t)}function Cn(e,t){let n={lhs:[],rhs:[]};return e.forEach(e=>{t(e)?n.lhs.push(e):n.rhs.push(e)}),n}function wn(e,t){let n=Date.now();try{return t()}finally{console.log(e+` time: `+(Date.now()-n)+`ms`)}}function Tn(e,t){return t()}var En=0;function Dn(e){return e+(``+ ++En)}function On(e,t,n=1){t??(t=e,e=0);let r=e=>e<t;n<0&&(r=e=>t<e);let i=[];for(let t=e;r(t);t+=n)i.push(t);return i}function kn(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function An(e,t){let n;return n=typeof t==`string`?e=>e[t]:t,Object.entries(e).reduce((e,[t,r])=>(e[t]=n(r,t),e),{})}function jn(e,t){return e.reduce((e,n,r)=>(e[n]=t[r],e),{})}var Mn=`\0`;function Nn(e,t,n){if(!(e&&t&&n&&t.dummy===`edge`&&n.dummy===`edge`&&t.edgeObj&&n.edgeObj&&e[t.edgeObj.v]&&e[n.edgeObj.v]&&e[t.edgeObj.w]&&e[n.edgeObj.w]))return 0;let r=!0;t.edgeObj.w===n.edgeObj.w&&(r=!1);let i=r?e[t.edgeObj.v]?.rank??NaN:e[t.edgeObj.w]?.rank??NaN,a=Object.entries(e).find(e=>e[1].edgeObj?.v===t.edgeObj.v&&e[1].edgeObj?.w===t.edgeObj.w&&e[1].rank===i),o=Object.entries(e).find(e=>e[1].edgeObj?.v===n.edgeObj.v&&e[1].edgeObj?.w===n.edgeObj.w&&e[1].rank===i);if(!a||!o)return 0;let s=a[1].order??NaN,c=o[1].order??NaN;return isNaN(s-c)?0:s-c}var Pn=`3.1.1`,Fn=class{constructor(){Dt(this,`_sentinel`);let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return In(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&In(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,Ln)),n=n._prev;return`[`+e.join(`, `)+`]`}};function In(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Ln(e,t){if(e!==`_next`&&e!==`_prev`)return t}var Rn=Fn,zn=()=>1;function Bn(e,t){if(e.nodeCount()<=1)return[];let n=Un(e,t||zn);return Vn(n.graph,n.buckets,n.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w)||[])}function Vn(e,t,n){let r=[],i=t[t.length-1],a=t[0],o;for(;e.nodeCount();){for(;o=a.dequeue();)Hn(e,t,n,o);for(;o=i.dequeue();)Hn(e,t,n,o);if(e.nodeCount()){for(let i=t.length-2;i>0;--i)if(o=t[i]?.dequeue(),o){r=r.concat(Hn(e,t,n,o,!0)||[]);break}}}return r}function Hn(e,t,n,r,i){let a=[],o=i?a:void 0;return(e.inEdges(r.v)||[]).forEach(r=>{let o=e.edge(r),s=e.node(r.v);i&&a.push({v:r.v,w:r.w}),s.out-=o,Wn(t,n,s)}),(e.outEdges(r.v)||[]).forEach(r=>{let i=e.edge(r),a=r.w,o=e.node(a);o.in-=i,Wn(t,n,o)}),e.removeNode(r.v),o}function Un(e,t){let n=new W,r=0,i=0;e.nodes().forEach(e=>{n.setNode(e,{v:e,in:0,out:0})}),e.edges().forEach(e=>{let a=n.edge(e.v,e.w)||0,o=t(e),s=a+o;n.setEdge(e.v,e.w,s);let c=n.node(e.v),l=n.node(e.w);i=Math.max(i,c.out+=o),r=Math.max(r,l.in+=o)});let a=Gn(i+r+3).map(()=>new Rn),o=r+1;return n.nodes().forEach(e=>{Wn(a,o,n.node(e))}),{graph:n,buckets:a,zeroIdx:o}}function Wn(e,t,n){var r,i,a;n.out?n.in?(a=e[n.out-n.in+t])==null||a.enqueue(n):(i=e[e.length-1])==null||i.enqueue(n):(r=e[0])==null||r.enqueue(n)}function Gn(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function Kn(e,t){(e.graph().acyclicer===`greedy`?Bn(e,n(e)):qn(e,t??null)).forEach(t=>{let n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,Dn(`rev`))});function n(e){return t=>e.edge(t).weight}}function qn(e,t){let n=[],r={},i={};function a(t){Object.hasOwn(i,t)||(i[t]=!0,r[t]=!0,e.outEdges(t).forEach(e=>{Object.hasOwn(r,e.w)?n.push(e):a(e.w)}),delete r[t])}function o(a){var s;Object.hasOwn(i,a)||(i[a]=!0,r[a]=!0,(s=e.outEdges(a))==null||s.forEach(i=>{Object.hasOwn(r,i.w)||t.node(a)?.rank>t.node(i.w)?.rank&&Yn(e,i.w,i)?n.push(i):o(i.w)}),delete r[a])}let s=a;return t&&typeof t.node==`function`&&(s=o),e.sources().forEach(s),e.nodes().forEach(s),n}function Jn(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function Yn(e,t,n){let r=new Set;function i(t){if(e.sources().includes(t))return!0;r.add(t);for(let a of e.inEdges(t)??[])if((a.v!==n.v||a.w!==n.w)&&!r.has(a.v)&&i(a.v))return!0;return!1}return i(t)}function Xn(e){e.graph().dummyChains=[],e.edges().forEach(t=>Zn(e,t))}function Zn(e,t){let n=t.v,r=e.node(n).rank,i=t.w,a=e.node(i).rank,o=t.name,s=e.edge(t),c=s.labelRank;if(a===r+1)return;e.removeEdge(t);let l,u,d=0;for(++r;r<a;++d,++r)s.points=[],u={width:0,height:0,edgeLabel:s,edgeObj:t,rank:r},l=G(e,`edge`,u,`_d`),r===c&&(u.width=s.width,u.height=s.height,u.dummy=`edge-label`,u.labelpos=s.labelpos),e.setEdge(n,l,{weight:s.weight},o),d===0&&e.graph().dummyChains.push(l),n=l;e.setEdge(n,i,{weight:s.weight},o)}function Qn(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,i;for(e.setEdge(n.edgeObj,r);n.dummy;)i=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy===`edge-label`&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=i,n=e.node(t)})}function $n(e){let t={};function n(r){let i=e.node(r);if(Object.hasOwn(t,r))return i.rank;t[r]=!0;let a=e.outEdges(r),o=a?a.map(t=>t==null?1/0:n(t.w)-e.edge(t).minlen):[],s=K(Math.min,o);return s===1/0&&(s=0),i.rank=s}e.sources().forEach(n)}function q(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var er=tr;function tr(e){let t=new W({directed:!1}),n=e.nodes();if(n.length===0)throw Error(`Graph must have at least one node`);let r=n[0],i=e.nodeCount();t.setNode(r,{});let a,o;for(;nr(t,e)<i&&(a=rr(t,e),a);)o=t.hasNode(a.v)?q(e,a):-q(e,a),ir(t,e,o);return t}function nr(e,t){function n(r){let i=t.nodeEdges(r);i&&i.forEach(i=>{let a=i.v,o=r===a?i.w:a;!e.hasNode(o)&&!q(t,i)&&(e.setNode(o,{}),e.setEdge(r,o,{}),n(o))})}return e.nodes().forEach(n),e.nodeCount()}function rr(e,t){return t.edges().reduce((n,r)=>{let i=1/0;return e.hasNode(r.v)!==e.hasNode(r.w)&&(i=q(t,r)),i<n[0]?[i,r]:n},[1/0,null])[1]}function ir(e,t,n){e.nodes().forEach(e=>t.node(e).rank+=n)}var{preorder:ar,postorder:or}=Bt,sr=J;J.initLowLimValues=dr,J.initCutValues=cr,J.calcCutValue=ur,J.leaveEdge=pr,J.enterEdge=mr,J.exchangeEdges=hr;function J(e){e=pn(e),$n(e);let t=er(e);dr(t),cr(t,e);let n,r;for(;n=pr(t);)r=mr(t,e,n),hr(t,e,n,r)}function cr(e,t){let n=or(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(n=>lr(e,t,n))}function lr(e,t,n){let r=e.node(n).parent,i=e.edge(n,r);i.cutvalue=ur(e,t,n)}function ur(e,t,n){let r=e.node(n).parent,i=!0,a=t.edge(n,r),o=0;a||=(i=!1,t.edge(r,n)),o=a.weight;let s=t.nodeEdges(n);return s&&s.forEach(a=>{let s=a.v===n,c=s?a.w:a.v;if(c!==r){let r=s===i,l=t.edge(a).weight;if(o+=r?l:-l,_r(e,n,c)){let t=e.edge(n,c).cutvalue;o+=r?-t:t}}}),o}function dr(e,t){arguments.length<2&&(t=e.nodes()[0]),fr(e,{},1,t)}function fr(e,t,n,r,i){let a=n,o=e.node(r);t[r]=!0;let s=e.neighbors(r);return s&&s.forEach(i=>{Object.hasOwn(t,i)||(n=fr(e,t,n,i,r))}),o.low=a,o.lim=n++,i?o.parent=i:delete o.parent,n}function pr(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function mr(e,t,n){let r=n.v,i=n.w;t.hasEdge(r,i)||(r=n.w,i=n.v);let a=e.node(r),o=e.node(i),s=a,c=!1;return a.lim>o.lim&&(s=o,c=!0),t.edges().filter(t=>c===vr(e,e.node(t.v),s)&&c!==vr(e,e.node(t.w),s)).reduce((e,n)=>q(t,n)<q(t,e)?n:e)}function hr(e,t,n,r){let i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),dr(e),cr(e,t),gr(e,t)}function gr(e,t){let n=e.nodes().find(t=>!e.node(t).parent);if(!n)return;let r=ar(e,[n]);r=r.slice(1),r.forEach(n=>{let r=e.node(n).parent,i=t.edge(n,r),a=!1;i||(i=t.edge(r,n),a=!0),t.node(n).rank=t.node(r).rank+(a?i.minlen:-i.minlen)})}function _r(e,t,n){return e.hasEdge(t,n)}function vr(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var yr=br;function br(e){let t=e.graph().ranker;if(typeof t==`function`)return t(e);switch(t){case`network-simplex`:Cr(e);break;case`tight-tree`:Sr(e);break;case`longest-path`:xr(e);break;case`none`:break;default:Cr(e)}}var xr=$n;function Sr(e){$n(e),er(e)}function Cr(e){sr(e)}var wr=Tr;function Tr(e){let t=Dr(e),n=e.graph();Array.isArray(n.dummyChains)&&n.dummyChains.forEach(n=>{let r=e.node(n),i=r.edgeObj,a=Er(e,t,i.v,i.w),o=a.path,s=a.lca,c=0,l=o[c],u=!0;for(;n!==i.w;){if(r=e.node(n),u){for(;(l=o[c])!==s&&e.node(l).maxRank<r.rank;)c++;l===s&&(u=!1)}if(!u){for(;c<o.length-1&&e.node(o[c+1]).minRank<=r.rank;)c++;l=o[c]}l!==void 0&&e.setParent(n,l),n=e.successors(n)[0]}})}function Er(e,t,n,r){let i=[],a=[],o=Math.min(t[n].low,t[r].low),s=Math.max(t[n].lim,t[r].lim),c;c=n;do c=e.parent(c),i.push(c);while(c&&(t[c].low>o||s>t[c].lim));let l=c,u=r;for(;(u=e.parent(u))!==l;)a.push(u);return{path:i.concat(a.reverse()),lca:l}}function Dr(e){let t={},n=0;function r(i){let a=n;e.children(i).forEach(r),t[i]={low:a,lim:n++}}return e.children(Mn).forEach(r),t}function Or(e){let t=G(e,`root`,{},`_root`),n=Ar(e),r=Object.values(n),i=K(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=t,e.edges().forEach(t=>e.edge(t).minlen*=a);let o=jr(e)+1;e.children(Mn).forEach(r=>{kr(e,t,a,o,i,n,r)}),e.graph().nodeRankFactor=a}function kr(e,t,n,r,i,a,o){let s=e.children(o);if(!s.length){o!==t&&e.setEdge(t,o,{weight:0,minlen:n});return}let c=yn(e,`_bt`),l=yn(e,`_bb`),u=e.node(o);e.setParent(c,o),u.borderTop=c,e.setParent(l,o),u.borderBottom=l,s.forEach(s=>{kr(e,t,n,r,i,a,s);let u=e.node(s),d=u.borderTop?u.borderTop:s,f=u.borderBottom?u.borderBottom:s,p=u.borderTop?r:2*r,m=d===f?i-(a[o]??0)+1:1;e.setEdge(c,d,{weight:p,minlen:m,nestingEdge:!0}),e.setEdge(f,l,{weight:p,minlen:m,nestingEdge:!0})}),e.parent(o)||e.setEdge(t,c,{weight:0,minlen:i+(a[o]??0)})}function Ar(e){let t={};function n(r,i){let a=e.children(r);a&&a.length&&a.forEach(e=>n(e,i+1)),t[r]=i}return e.children(Mn).forEach(e=>n(e,1)),t}function jr(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function Mr(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}var Nr=Pr;function Pr(e){function t(n){let r=e.children(n),i=e.node(n);if(r.length&&r.forEach(t),i&&Object.hasOwn(i,`minRank`)){i.borderLeft=[],i.borderRight=[];for(let t=i.minRank,r=i.maxRank+1;t<r;++t)Fr(e,`borderLeft`,`_bl`,n,i,t),Fr(e,`borderRight`,`_br`,n,i,t)}}e.children(Mn).forEach(t)}function Fr(e,t,n,r,i,a){let o={width:0,height:0,rank:a,borderType:t},s=i[t][a-1],c=G(e,`border`,o,n);i[t][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}function Ir(e){let t=e.graph().rankdir?.toLowerCase();(t===`lr`||t===`rl`)&&Rr(e)}function Lr(e){let t=e.graph().rankdir?.toLowerCase();(t===`bt`||t===`rl`)&&Br(e),(t===`lr`||t===`rl`)&&(Hr(e),Rr(e))}function Rr(e){e.nodes().forEach(t=>zr(e.node(t))),e.edges().forEach(t=>zr(e.edge(t)))}function zr(e){let t=e.width;e.width=e.height,e.height=t}function Br(e){e.nodes().forEach(t=>Vr(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(Vr),Object.hasOwn(r,`y`)&&Vr(r)})}function Vr(e){e.y=-e.y}function Hr(e){e.nodes().forEach(t=>Ur(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(Ur),Object.hasOwn(r,`x`)&&Ur(r)})}function Ur(e){let t=e.x;e.x=e.y,e.y=t}function Wr(e,t=null){let n={},r=e.nodes().filter(t=>!e.children(t).length),i=r.map(t=>e.node(t).rank),a=On(K(Math.max,i)+1).map(()=>[]);function o(t){if(n[t])return;n[t]=!0;let r=e.node(t);a[r.rank].push(t);let i=e.successors(t);i&&[...i].sort((e,t)=>s(e,t)).forEach(o)}r.sort((t,n)=>e.node(t).rank-e.node(n).rank).forEach(o);function s(n,r){return Nn(t,e.node(n),e.node(r))}return a}function Gr(e,t){let n=0;for(let r=1;r<t.length;++r)n+=Kr(e,t[r-1],t[r]);return n}function Kr(e,t,n){let r=jn(n,n.map((e,t)=>t)),i=t.flatMap(t=>{let n=e.outEdges(t);return n?n.map(t=>({pos:r[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos):[]}),a=1;for(;a<n.length;)a<<=1;let o=2*a-1;--a;let s=Array(o).fill(0),c=0;return i.forEach(e=>{let t=e.pos+a;s[t]+=e.weight;let n=0;for(;t>0;)t%2&&(n+=s[t+1]),t=t-1>>1,s[t]+=e.weight;c+=e.weight*n}),c}function qr(e,t=[]){return t.map(t=>{let n=e.inEdges(t);if(!n||!n.length)return{v:t};{let r=n.reduce((t,n)=>{let r=e.edge(n),i=e.node(n.v);return{sum:t.sum+r.weight*i.order,weight:t.weight+r.weight}},{sum:0,weight:0});return{v:t,barycenter:r.sum/r.weight,weight:r.weight}}})}function Jr(e,t){let n={};return e.forEach((e,t)=>{let r={indegree:0,in:[],out:[],vs:[e.v],i:t};e.barycenter!==void 0&&(r.barycenter=e.barycenter,r.weight=e.weight),n[e.v]=r}),t.edges().forEach(e=>{let t=n[e.v],r=n[e.w];t!==void 0&&r!==void 0&&(r.indegree++,t.out.push(r))}),Yr(Object.values(n).filter(e=>!e.indegree))}function Yr(e){let t=[];function n(e){return t=>{t.merged||(t.barycenter===void 0||e.barycenter===void 0||t.barycenter>=e.barycenter)&&Xr(e,t)}}function r(t){return n=>{n.in.push(t),--n.indegree===0&&e.push(n)}}for(;e.length;){let i=e.pop();t.push(i),i.in.reverse().forEach(n(i)),i.out.forEach(r(i))}return t.filter(e=>!e.merged).map(e=>kn(e,[`vs`,`i`,`barycenter`,`weight`]))}function Xr(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function Zr(e,t,n,r,i){let a={},o=null,s=null,c=i;typeof t==`boolean`?(c=t,a={}):t&&(a=t,o=n??null,s=r??null);let l=Cn(e,e=>Object.hasOwn(e,`barycenter`)),u=l.lhs,d=l.rhs.sort((e,t)=>t.i-e.i),f=[],p=0,m=0,h=0;u.sort($r(s,o,!!c));for(let[e,t]of Object.entries(a)){let n=u.findIndex(t=>t.vs[0]===e);u.splice(n+1,0,t)}h=Qr(f,d,h),u.forEach(e=>{h+=e.vs.length,f.push(e.vs),p+=e.barycenter*e.weight,m+=e.weight,h=Qr(f,d,h)});let g={vs:f.flat(1)};return m&&(g.barycenter=p/m,g.weight=m),g}function Qr(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function $r(e,t,n){return(r,i)=>{if(r.barycenter<i.barycenter)return-1;if(r.barycenter>i.barycenter)return 1;if(e&&(typeof r.vs[0]==`string`||typeof i.vs[0]==`string`)){let n=Nn(t,e.node(r.vs[0]),e.node(i.vs[0]));if(n!==0)return n}return n?i.i-r.i:r.i-i.i}}function ei(e,t,n,r,i){var a,o;let s=null,c=i;typeof r==`boolean`?(c=r,s=null):r!==void 0&&(s=r);let l=e.children(t),u=e.node(t),d=u?u.borderLeft:void 0,f=u?u.borderRight:void 0,p={};d&&(l=l.filter(e=>e!==d&&e!==f));let m=qr(e,l);m.forEach(t=>{if(e.children(t.v).length){let{result:r}=ei(e,t.v,n,s,c);p[t.v]=r,Object.hasOwn(r,`barycenter`)&&ni(t,r)}});let h=Jr(m,n);ti(h,p);let g={},_=!1;for(let t=0;t<h.length;t++)for(let n=t+1;n<h.length;n++)if(h[t]&&h[n]&&(a=h[t])!=null&&a.barycenter&&(o=h[n])!=null&&o.barycenter&&h[t]?.barycenter===h[n].barycenter){let r=h[t]?.vs[0]??``,i=h[n]?.vs[0]??``,a=e.node(r),o=e.node(i);if(a.dummy===`edge`&&o.dummy===`edge`&&a.edgeObj?.v===o.edgeObj?.v&&a.edgeObj?.w===o.edgeObj?.w){if(a.edgeLabel.reversed){g[i]=h[t],h.splice(t,1),t--;break}g[r]=h[n],h.splice(n,1),n--}else _=!0}let v=Zr(h,g,s,e,c);if(d&&f){v.vs=[d,v.vs,f].flat(1);let t=e.predecessors(d);if(t&&t.length){let n=e.node(t[0]),r=e.predecessors(f),i=e.node(r[0]);Object.hasOwn(v,`barycenter`)||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+n.order+i.order)/(v.weight+2),v.weight+=2}}return Object.defineProperty(v,"result",{value:v,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(v,"usedBias",{value:_,enumerable:!1,configurable:!0,writable:!0}),v}function ti(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}function ni(e,t){e.barycenter===void 0?(e.barycenter=t.barycenter,e.weight=t.weight):(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight)}function ri(e,t,n,r){r||=e.nodes();let i=ii(e),a=new W({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(t=>e.node(t));return r.forEach(r=>{let o=e.node(r),s=e.parent(r);if(o.rank===t||o.minRank<=t&&t<=o.maxRank){a.setNode(r),a.setParent(r,s||i);let c=e[n](r);c&&c.forEach(t=>{let n=t.v===r?t.w:t.v,i=a.edge(n,r),o=i===void 0?0:i.weight;a.setEdge(n,r,{weight:e.edge(t).weight+o})}),Object.hasOwn(o,`minRank`)&&a.setNode(r,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]})}}),a}function ii(e){let t;for(;e.hasNode(t=Dn(`_root`)););return t}function ai(e,t,n){let r={},i;n.forEach(n=>{let a=e.parent(n),o,s;for(;a;){if(o=e.parent(a),o?(s=r[o],r[o]=a):(s=i,i=a),s&&s!==a){t.setEdge(s,a);return}a=o}})}function oi(e,t={},n=null){if(typeof t.customOrder==`function`){t.customOrder(e,oi);return}let r=Sn(e),i=si(e,On(1,r+1),`inEdges`),a=si(e,On(r-1,-1,-1),`outEdges`),o=Wr(e,n);if(li(e,o),t.disableOptimalOrderHeuristic)return;let s=1/0,c,l=t.constraints||[];for(let t=0,r=0;r<4;++t,++r){ci(t%2?i:a,t%4>=2,l,n),o=gn(e);let u=Gr(e,o);u<s?(r=0,c=Object.assign({},o),s=u):u===s&&(c=structuredClone(o))}li(e,c)}function si(e,t,n){let r=new Map,i=(e,t)=>{r.has(e)||r.set(e,[]),r.get(e).push(t)};for(let t of e.nodes()){let n=e.node(t);if(typeof n.rank==`number`&&i(n.rank,t),typeof n.minRank==`number`&&typeof n.maxRank==`number`)for(let e=n.minRank;e<=n.maxRank;e++)e!==n.rank&&i(e,t)}return t.map(function(t){return ri(e,t,n,r.get(t)||[])})}function ci(e,t,n,r){let i=!0,a=new W;e.forEach(function(e){n.forEach(e=>a.setEdge(e.left,e.right));let o=e.graph().root,{result:s,usedBias:c}=ei(e,o,a,r,i);t&&c&&(i=!i),s.vs.forEach((t,n)=>e.node(t).order=n),ai(e,a,s.vs)})}function li(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}function ui(e,t){let n={};function r(t,r){let i=0,a=0,o=t.length,s=r[r.length-1];return r.forEach((t,c)=>{let l=fi(e,t),u=l?e.node(l).order:o;(l||t===s)&&(r.slice(a,c+1).forEach(t=>{let r=e.predecessors(t);r&&r.forEach(r=>{let a=e.node(r),o=a.order;(o<i||u<o)&&!(a.dummy&&e.node(t).dummy)&&pi(n,r,t)})}),a=c+1,i=u)}),r}return t.length&&t.reduce(r),n}function di(e,t){let n={};function r(t,r,i,a,o){On(r,i).forEach(r=>{let i=t[r];if(i!==void 0&&e.node(i).dummy){let t=e.predecessors(i);t&&t.forEach(t=>{if(t===void 0)return;let r=e.node(t);r.dummy&&(r.order<a||r.order>o)&&pi(n,t,i)})}})}function i(t,n){let i=-1,a=-1,o=0;return n.forEach((s,c)=>{if(e.node(s).dummy===`border`){let t=e.predecessors(s);if(t&&t.length){let s=t[0];if(s===void 0)return;a=e.node(s).order,r(n,o,c,i,a),o=c,i=a}}r(n,o,n.length,a,t.length)}),n}return t.length&&t.reduce(i),n}function fi(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(t=>e.node(t).dummy)}}function pi(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];r||(e[t]=r={}),r[n]=!0}function mi(e,t,n){if(t>n){let e=t;t=n,n=e}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function hi(e,t,n,r,i){let a={},o={},s={};return t.forEach(e=>{e.forEach((e,t)=>{a[e]=e,o[e]=e,s[e]=t})}),t.forEach(t=>{let c=-1,l=-1,u=!1,d=t,f=t.findIndex(t=>i?.includes(t)||wi(t,e,i));f>0&&(d=[t[f],...t.slice(0,f),...t.slice(f+1)],u=!0),d.forEach(t=>{let d=r(t);if(d&&d.length){i!=null&&i.includes(t)&&(d=d.filter(t=>wi(t,e,i)));let r=d.sort((e,t)=>{let n=s[e],r=s[t];return(n===void 0?0:n)-(r===void 0?0:r)}),f=(r.length-1)/2;for(let e=Math.floor(f),i=Math.ceil(f);e<=i;++e){let i=r[e];if(i===void 0)continue;let d=s[i];if(d!==void 0&&o[t]===t&&c<d&&s[i]!==l&&!mi(n,t,i)){let e=a[i];e!==void 0&&(o[i]=t,o[t]=a[t]=e,c=d,u&&=(c=-1,l=s[i]??-1,!1))}}}})}),{root:a,align:o}}function gi(e,t,n,r,i=!1){let a={},o=_i(e,t,n,i),s=i?`borderLeft`:`borderRight`;function c(e,t){let n=o.nodes().slice(),r={},i=n.pop();for(;i;){if(r[i])e(i);else{r[i]=!0,n.push(i);for(let e of t(i))n.push(e)}i=n.pop()}}function l(e){let t=o.inEdges(e);t?a[e]=t.reduce((e,t)=>{let n=a[t.v]??0,r=o.edge(t);return Math.max(e,n+(r===void 0?0:r))},0):a[e]=0}function u(t){let n=o.outEdges(t),r=1/0;n&&(r=n.reduce((e,t)=>{let n=a[t.w],r=o.edge(t);return Math.min(e,(n===void 0?0:n)-(r===void 0?0:r))},1/0));let i=e.node(t);r!==1/0&&i.borderType!==s&&(a[t]=Math.max(a[t]===void 0?0:a[t],r))}function d(e){return o.predecessors(e)||[]}function f(e){return o.successors(e)||[]}return c(l,d),c(u,f),Object.keys(r).forEach(e=>{let t=n[e];t!==void 0&&(a[e]=a[t]??0)}),a}function _i(e,t,n,r){let i=new W,a=e.graph(),o=Si(a.nodesep,a.edgesep,r);return t.forEach(t=>{let r;t.forEach(t=>{let a=n[t];if(a!==void 0){if(i.setNode(a),r!==void 0){let s=n[r];if(s!==void 0){let n=i.edge(s,a);i.setEdge(s,a,Math.max(o(e,t,r),n||0))}}r=t}})}),i}function vi(e,t){return Object.values(t).reduce((t,n)=>{let r=-1/0,i=1/0;Object.entries(n).forEach(([t,n])=>{let a=Ci(e,t)/2;r=Math.max(n+a,r),i=Math.min(n-a,i)});let a=r-i;return a<t[0]&&(t=[a,n]),t},[1/0,null])[1]}function yi(e,t){let n=Object.values(t),r=K(Math.min,n),i=K(Math.max,n);[`u`,`d`].forEach(n=>{[`l`,`r`].forEach(a=>{let o=n+a,s=e[o];if(!s||s===t)return;let c=Object.values(s),l=r-K(Math.min,c);a!==`l`&&(l=i-K(Math.max,c)),l&&(e[o]=An(s,e=>e+l))})})}function bi(e,t=void 0){let n=e.ul;return n?An(n,(n,r)=>{if(t){let n=e[t.toLowerCase()];if(n&&n[r]!==void 0)return n[r]}let i=Object.values(e).map(e=>{let t=e[r];return t===void 0?0:t}).sort((e,t)=>e-t);return((i[1]??0)+(i[2]??0))/2}):{}}function xi(e,t){let n=gn(e),r=Object.assign(ui(e,n),di(e,n)),i={},a;return[`u`,`d`].forEach(o=>{a=o===`u`?n:Object.values(n).reverse(),[`l`,`r`].forEach(n=>{n===`r`&&(a=a.map(e=>Object.values(e).reverse()));let s=hi(e,a,r,t=>(o===`u`?e.predecessors(t):e.successors(t))||[],t),c=gi(e,a,s.root,s.align,n===`r`);n===`r`&&(c=An(c,e=>-e)),i[o+n]=c})}),yi(i,vi(e,i)),bi(i,e.graph().align)}function Si(e,t,n){return(r,i,a)=>{let o=r.node(i),s=r.node(a),c=0,l;if(c+=o.width/2,Object.hasOwn(o,`labelpos`))switch(o.labelpos.toLowerCase()){case`l`:l=-o.width/2;break;case`r`:l=o.width/2}if(l&&(c+=n?l:-l),l=void 0,c+=(o.dummy?t:e)/2,c+=(s.dummy?t:e)/2,c+=s.width/2,Object.hasOwn(s,`labelpos`))switch(s.labelpos.toLowerCase()){case`l`:l=s.width/2;break;case`r`:l=-s.width/2}return l&&(c+=n?l:-l),c}}function Ci(e,t){return e.node(t).width}function wi(e,t,n){if(!n)return!1;let r=t.node(e)?.edgeObj;if(!r||t.node(e).edgeLabel.reversed)return!1;let i=n.indexOf(r?.v),a=n.indexOf(r?.w);return i!==-1&&a!==-1&&i===(a+1)%n.length||i===(a-1)%n.length}function Ti(e,t){e=mn(e),Ei(e),Object.entries(xi(e,t)).forEach(([t,n])=>e.node(t).x=n)}function Ei(e){let t=gn(e),n=e.graph(),r=n.ranksep,i=n.rankalign,a=0;t.forEach(t=>{let n=t.reduce((t,n)=>{let r=e.node(n).height??0;return t>r?t:r},0);t.forEach(t=>{let r=e.node(t);r.y=i===`top`?a+r.height/2:i===`bottom`?a+n-r.height/2:a+n/2}),a+=n+r})}var Di=new WeakMap;function Oi(e,t={}){return Ai(e,Tn,t),e}function ki(e,t,n){let r=t;for(;r!==void 0;){let t=e.parent(r);if(t===n)return r;r=t}}function Ai(e,t,n){let r=e.nodes().filter(t=>e.children(t).length),i={};r.forEach(r=>{let a=e.node(r);if(a&&a.rankdir){let o=new W({multigraph:!0,compound:!0});o.setGraph({rankdir:a.rankdir});let s=e.children(r);s.forEach(t=>{let n={...e.node(t)};o.setNode(t,n);let i=e.parent(t);i&&i!==r&&s.includes(i)&&o.setParent(t,i)});let c=new Set;e.edges().forEach(t=>{let n=ki(e,t.v,r),i=ki(e,t.w,r);if(n&&i&&n!==i){let r=`${n}\0${i}`;c.has(r)||(c.add(r),o.setEdge(n,i,{...e.edge(t)}))}}),Ai(o,t,n);let l=Vi(o);ji(l,t,n,null),Mi(o,l);let u=1/0,d=1/0,f=-1/0,p=-1/0;o.nodes().forEach(e=>{if(e===r)return;let t=o.node(e);t&&typeof t.x==`number`&&typeof t.y==`number`&&typeof t.width==`number`&&typeof t.height==`number`&&(u=Math.min(u,t.x-t.width/2),f=Math.max(f,t.x+t.width/2),d=Math.min(d,t.y-t.height/2),p=Math.max(p,t.y+t.height/2))}),(!isFinite(u)||!isFinite(d)||!isFinite(f)||!isFinite(p))&&(u=d=0,f=p=0);let m=f-u,h=p-d;i[r]={minX:u,minY:d,maxX:f,maxY:p,width:m,height:h,offsetX:u,offsetY:d},a._dagreClusterSubgraph=o}});let a=[],o=t=>{let n=[],r=(e.children(t)||[]).filter(e=>e!==t);for(;r.length>0;){let t=r.shift();n.push(t),(e.children(t)||[]).filter(e=>e!==t).forEach(e=>r.push(e))}return n},s=new Map;r.forEach(t=>{let n=e.node(t);n&&n.rankdir&&i[t]&&s.set(t,(e.children(t)||[]).filter(e=>e!==t))});let c=new Set([...s.values()].flat()),l=new Map;s.forEach((e,t)=>{c.has(t)||l.set(t,o(t))});let u=new Set([...l.values()].flat()),d=e=>{for(let[t,n]of l)if(n.includes(e))return t;return e},f=[];e.edges().forEach(t=>{(u.has(t.v)||u.has(t.w))&&f.push({edge:t,label:e.edge(t)})});let p=new Map;u.forEach(t=>{let n=e.parent(t);p.set(t,typeof n==`string`?n:void 0)}),l.forEach((t,n)=>{let r=e.node(n),o=[];t.forEach(t=>{let n=e.node(t);n&&(o.push({id:t,node:n,parent:p.get(t)}),e.removeNode(t))});let s=f.filter(({edge:e})=>t.includes(e.v)||t.includes(e.w)),c=i[n];r&&(a.push({clusterId:n,subgraph:r._dagreClusterSubgraph,bounds:c,children:t,removedNodes:o,removedEdges:s}),r.width=c.width,r.height=c.height)});let m=new Set;f.forEach(({edge:t,label:n})=>{let r=d(t.v),i=d(t.w);if(r!==i&&e.hasNode(r)&&e.hasNode(i)){let t=`${r}\0${i}`;m.has(t)||(m.add(t),e.setEdge(r,i,{...n,width:0,height:0}))}});let h=Vi(e),g=ji(h,t,n,Di.get(e)??null);Di.set(e,g),Mi(e,h),m.forEach(t=>{let n=t.indexOf(`\0`),r=t.slice(0,n),i=t.slice(n+1);e.hasEdge(r,i)&&e.removeEdge(r,i)}),a.forEach(({clusterId:t,subgraph:n,bounds:r,removedNodes:i,removedEdges:a})=>{let o=e.node(t),s=o?.x??0,c=o?.y??0,l=(r.minX+r.maxX)/2,u=(r.minY+r.maxY)/2;i.forEach(({id:t,node:n,parent:r})=>{e.setNode(t,n),r!==void 0&&e.setParent(t,r)}),a.forEach(({edge:t,label:n})=>{e.setEdge(t,n)}),n.nodes().forEach(r=>{if(r===t)return;let i=n.node(r),a=e.node(r);a&&i&&typeof i.x==`number`&&typeof i.y==`number`&&(a.x=s+(i.x-l),a.y=c+(i.y-u))}),delete o._dagreClusterSubgraph}),r.forEach(t=>{let n=e.node(t),r=i[t];if(n&&n.rankdir&&n._dagreClusterSubgraph&&r){let i=n._dagreClusterSubgraph,a=n.x??0,o=n.y??0,s=(r.minX+r.maxX)/2,c=(r.minY+r.maxY)/2;i.nodes().forEach(n=>{if(n===t)return;let r=i.node(n),l=e.node(n);if(l&&r&&typeof r.x==`number`&&typeof r.y==`number`){let e=r.x-s,t=r.y-c;l.x=a+e,l.y=o+t}}),delete n._dagreClusterSubgraph}})}function ji(e,t,n,r=null){var i,a;let o=n?.useDynamic!==!1,s=o&&(i=r?.graph)!=null?i:null,c=o&&(a=r?.rawNodes)!=null?a:null;t(` makeSpaceForEdgeLabels`,()=>Hi(e)),t(` removeSelfEdges`,()=>Zi(e)),t(` acyclic`,()=>Kn(e,s)),t(` nestingGraph.run`,()=>Or(e)),t(` rank`,()=>yr(mn(e))),t(` injectEdgeLabelProxies`,()=>Ui(e)),t(` removeEmptyRanks`,()=>vn(e)),t(` nestingGraph.cleanup`,()=>Mr(e)),t(` normalizeRanks`,()=>_n(e)),t(` assignRankMinMax`,()=>Wi(e)),t(` removeEdgeLabelProxies`,()=>Gi(e)),t(` normalize.run`,()=>Xn(e)),t(` parentDummyChains`,()=>wr(e)),t(` addBorderSegments`,()=>Nr(e)),t(` order`,()=>oi(e,n,c)),t(` insertSelfEdges`,()=>Qi(e)),t(` adjustCoordinateSystem`,()=>Ir(e)),t(` position`,()=>Ti(e,n.corePath)),t(` positionSelfEdges`,()=>$i(e));let l=JSON.parse(JSON.stringify(e._nodes));return t(` removeBorderNodes`,()=>Xi(e)),t(` normalize.undo`,()=>Qn(e)),t(` fixupEdgeLabelCoords`,()=>Ji(e)),t(` undoCoordinateSystem`,()=>Lr(e)),t(` translateGraph`,()=>Ki(e)),t(` assignNodeIntersects`,()=>qi(e)),t(` reversePoints`,()=>Yi(e)),t(` acyclic.undo`,()=>Jn(e)),{graph:e,rawNodes:l}}function Mi(e,t){e.nodes().forEach(n=>{let r=e.node(n),i=t.node(n);r&&(r.x=i.x,r.y=i.y,r.order=i.order,r.rank=i.rank,t.children(n).length&&(r.width=i.width,r.height=i.height))}),e.edges().forEach(n=>{let r=e.edge(n),i=t.edge(n);r.points=i.points,Object.hasOwn(i,`x`)&&(r.x=i.x,r.y=i.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var Ni=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],Pi={ranksep:50,edgesep:20,nodesep:50,rankdir:`TB`,rankalign:`center`},Fi=[`acyclicer`,`ranker`,`rankdir`,`align`,`rankalign`],Ii=[`width`,`height`,`rank`],Li={width:0,height:0},Ri=[`minlen`,`weight`,`width`,`height`,`labeloffset`],zi={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},Bi=[`labelpos`];function Vi(e){let t=new W({multigraph:!0,compound:!0}),n=ta(e.graph());return t.setGraph(Object.assign({},Pi,ea(n,Ni),kn(n,Fi))),e.nodes().forEach(n=>{let r=ea(ta(e.node(n)),Ii);Object.keys(Li).forEach(e=>{r[e]===void 0&&(r[e]=Li[e])}),t.setNode(n,r);let i=e.parent(n);i!==void 0&&t.setParent(n,i)}),e.edges().forEach(n=>{let r=ta(e.edge(n));t.setEdge(n,Object.assign({},zi,ea(r,Ri),kn(r,Bi)))}),t}function Hi(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,(r.labelpos??`r`).toLowerCase()!==`c`&&(t.rankdir===`TB`||t.rankdir===`BT`?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function Ui(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let n=e.node(t.v);G(e,`edge-proxy`,{rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t},`_ep`)}})}function Wi(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function Gi(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy===`edge-proxy`){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function Ki(e){let t=1/0,n=0,r=1/0,i=0,a=e.graph(),o=a.marginx||0,s=a.marginy||0;function c(e){let a=e.x,o=e.y,s=e.width,c=e.height;t=Math.min(t,a-s/2),n=Math.max(n,a+s/2),r=Math.min(r,o-c/2),i=Math.max(i,o+c/2)}e.nodes().forEach(t=>c(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);Object.hasOwn(n,`x`)&&c(n)}),t-=o,r-=s,e.nodes().forEach(n=>{let i=e.node(n);i.x-=t,i.y-=r}),e.edges().forEach(n=>{let i=e.edge(n);i.points.forEach(e=>{e.x-=t,e.y-=r}),Object.hasOwn(i,`x`)&&(i.x-=t),Object.hasOwn(i,`y`)&&(i.y-=r)}),a.width=n-t+o,a.height=i-r+s}function qi(e){e.edges().forEach(t=>{if(t.v===t.w)return;let n=e.edge(t),r=e.node(t.v),i=e.node(t.w),a,o;n.points?(a=n.points[0],o=n.points[n.points.length-1]):(n.points=[],a=i,o=r),n.points.unshift(hn(r,a)),n.points.push(hn(i,o))})}function Ji(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,`x`))switch((n.labelpos===`l`||n.labelpos===`r`)&&(n.width-=n.labeloffset),n.labelpos){case`l`:n.x-=n.width/2+n.labeloffset;break;case`r`:n.x+=n.width/2+n.labeloffset}})}function Yi(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function Xi(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),i=e.node(n.borderBottom),a=e.node(n.borderLeft[n.borderLeft.length-1]),o=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(o.x-a.x),n.height=Math.abs(i.y-r.y),n.x=a.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy===`border`&&e.removeNode(t)})}function Zi(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||=[],n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function Qi(e){gn(e).forEach(t=>{let n=0;t.forEach((t,r)=>{let i=e.node(t);typeof i.rank!=`number`&&(i.rank=0),i.order=r+n,(i.selfEdges||[]).forEach(t=>{G(e,`selfedge`,{width:t.label.width,height:t.label.height,rank:i.rank,order:r+ ++n,e:t.e,edgeLabel:t.label},`_se`),(!Array.isArray(t.label.points)||t.label.points.length!==7)&&(t.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete i.selfEdges})})}function $i(e){e.nodes().forEach(t=>{let n=e.node(t),r=e=>typeof e==`number`&&isFinite(e);if(n.dummy===`selfedge`){let i=n,a=e.node(i.e.v),o=r(a?.x)?a.x:0,s=r(a?.y)?a.y:0,c=r(a?.width)?a.width:0,l=r(a?.height)?a.height:0,u=r(n.x)?n.x:o,d=r(n.y)?n.y:s,f=c/2,p=l/2;i.edgeLabel.points=[{x:u+f,y:d-p},{x:u+f,y:d-p},{x:u,y:d},{x:u-f,y:d+p},{x:u-f,y:d+p},{x:u,y:d},{x:u,y:d}],i.edgeLabel.x=u,i.edgeLabel.y=d,e.setEdge(i.e,i.edgeLabel),e.removeNode(t)}else n&&Array.isArray(n.selfEdges)&&n.selfEdges.forEach(e=>{if(!Array.isArray(e.label.points)||e.label.points.length!==7){let t=r(n.x)?n.x:0,i=r(n.y)?n.y:0,a=r(n.width)?n.width:0,o=r(n.height)?n.height:0,s=a/2,c=o/2;e.label.points=[{x:t+s,y:i-c},{x:t+s,y:i-c},{x:t,y:i},{x:t-s,y:i+c},{x:t-s,y:i+c},{x:t,y:i},{x:t,y:i}]}})})}function ea(e,t){return An(kn(e,t),Number)}function ta(e){let t={};return e&&Object.entries(e).forEach(([e,n])=>{typeof e==`string`&&(e=e.toLowerCase()),t[e]=n}),t}function na(e){let t=gn(e),n=new W({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(t=>{n.setNode(t,{label:t}),n.setParent(t,`layer`+e.node(t).rank)}),e.edges().forEach(e=>n.setEdge(e.v,e.w,{},e.name)),t.forEach((e,t)=>{let r=`layer`+t;n.setNode(r,{rank:`same`}),e.reduce((e,t)=>(n.setEdge(e,t,{style:`invis`}),t))}),n}var ra={graphlib:Ot,version:Pn,layout:Oi,debug:na,util:{time:wn,notime:Tn}};function ia(e,t){let n=t.steps.map(e=>e.type===`agent`?`${e.id}:${e.model??``}:${e.tools.join(`+`)}:${e.output.format}`:e.type===`generate`?`${e.id}:${e.asset}:${e.model??``}:${e.options?.duration??``}`:e.id).join(`|`);return c({queryKey:[`estimate`,e,n],queryFn:()=>u.get(`/api/studio/wizards/${e}/estimate`),staleTime:3e4,refetchOnMount:`always`})}var aa=e=>e<10?e.toLocaleString(void 0,{maximumFractionDigits:1}):Math.round(e).toLocaleString();function oa({estimate:e,stepId:t}){let n=e?.available?e.steps[t]:void 0;return n?(0,H.jsxs)(`p`,{className:`text-[0.75rem] text-ink-3 tabular-nums`,children:[z(`estimate.step`,{n:aa(n.credits),high:aa(n.high)}),` · `,n.measured?z(`estimate.measured`):z(`estimate.formula`)]}):null}function sa({model:e,effort:t,onChange:n}){let r=z(`class.effortAuto`);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(O,{children:z(`class.label`)}),(0,H.jsx)(R,{value:e??`high`,onChange:e=>n({model:e,effort:t}),options:He.map(e=>({value:e,label:z(`class.${e}`)}))}),(0,H.jsx)(`p`,{className:`text-[0.75rem] text-ink-3`,children:z(`class.${e??`high`}.hint`)}),(0,H.jsx)(O,{children:z(`class.effort`)}),(0,H.jsx)(j,{value:t?z(`class.effort.${t}`):r,options:[r,...Ve.map(e=>z(`class.effort.${e}`))],onChange:t=>n({model:e,effort:Ve.find(e=>z(`class.effort.${e}`)===t)})})]})}var ca=280,la=92;function ua({data:e}){let{step:t,selected:n,issue:r,active:i,pulse:a,cost:o,passed:s}=e,c=x(t);return(0,H.jsxs)(`div`,{className:k(`relative w-[280px] cursor-pointer rounded-xl bg-card px-4 py-3 text-left shadow-soft ring-1 transition`,n?`shadow-elevated ring-2 ring-ember`:i?`ring-2 ring-moss`:a?`ring-2 ring-ember/60`:`ring-border-soft hover:shadow-elevated`),children:[i?(0,H.jsx)(`span`,{className:`-top-1 -right-1 absolute size-3 animate-breathe rounded-full bg-moss`}):a?(0,H.jsx)(`span`,{className:`-top-1 -right-1 absolute size-3 animate-breathe rounded-full bg-ember`}):null,(0,H.jsx)(Ze,{type:`target`,position:qe.Top}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`span`,{className:k(`inline-flex size-6 items-center justify-center rounded-md`,C[t.type]),children:(0,H.jsx)(c,{className:`size-3.5`})}),(0,H.jsx)(`span`,{className:`font-medium text-[0.6875rem] text-ink-3 uppercase tracking-[0.07em]`,children:y(t)}),r?(0,H.jsx)(le,{className:`ml-auto size-4 text-rose`}):s&&!i?(0,H.jsx)(w,{className:`ml-auto size-4 text-moss`}):o===null?null:(0,H.jsxs)(`span`,{className:`ml-auto text-[0.6875rem] text-ink-3 tabular-nums`,children:[`≈`,` `,o<10?o.toLocaleString(void 0,{maximumFractionDigits:1}):Math.round(o),` `,`cr`]})]}),(0,H.jsx)(`div`,{className:`mt-1.5 truncate font-display font-semibold text-[0.9375rem] text-ink`,children:t.title}),(0,H.jsx)(`div`,{className:`truncate text-[0.75rem] text-ink-3`,children:S(t)||`\xA0`}),(0,H.jsx)(Ze,{type:`source`,position:qe.Bottom})]})}function da({data:e}){return(0,H.jsxs)(`div`,{className:k(`flex w-[280px] cursor-pointer items-center gap-3 rounded-full bg-paper-2 py-1.5 pr-5 pl-2 transition`,e.selected?`ring-2 ring-ember`:`hover:bg-paper-3`),children:[(0,H.jsx)(s,{kind:e.avatar,size:40,interactive:!1}),(0,H.jsx)(`span`,{className:`truncate font-display font-semibold text-[0.9375rem]`,children:e.title}),(0,H.jsx)(Ze,{type:`source`,position:qe.Bottom})]})}function fa(e){let{data:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s}=e,c={label:e.label,labelStyle:e.labelStyle,labelBgStyle:e.labelBgStyle,labelBgPadding:e.labelBgPadding,labelBgBorderRadius:e.labelBgBorderRadius,style:e.style,markerEnd:e.markerEnd};if(!t?.points.length){let[e,t,l]=Ye({sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s});return(0,H.jsx)($e,{path:e,labelX:t,labelY:l,...c})}let l=[{x:n,y:r},...t.points,{x:i,y:a}],u=l.map((e,t)=>{let n=l[t-1];if(!n)return`M ${e.x} ${e.y}`;let r=(n.y+e.y)/2;return`C ${n.x} ${r} ${e.x} ${r} ${e.x} ${e.y}`}).join(` `);return(0,H.jsx)($e,{path:u,labelX:t.labelX,labelY:t.labelY,...c})}var pa={step:ua,start:da},ma={branch:fa},ha=34,ga={};function _a(e){let t=Array.isArray(e.when.value)?e.when.value.join(` / `):String(e.when.value??``);switch(e.when.op){case`equals`:return`${e.when.field} = ${t}`;case`notEquals`:return`${e.when.field} ≠ ${t}`;case`in`:return`${e.when.field} ∈ ${t}`;case`notEmpty`:return z(`editor.whenFilled`,{field:e.when.field});case`empty`:return z(`editor.whenEmpty`,{field:e.when.field})}}function va(e,t,n,r,i,a,o){let s=new ra.graphlib.Graph;s.setGraph({rankdir:`TB`,nodesep:48,ranksep:46,marginx:20,marginy:20}),s.setDefaultEdgeLabel(()=>({})),s.setNode(`__start`,{width:ca,height:52});for(let t of e.steps)s.setNode(t.id,{width:ca,height:la});let c=[],l={markerEnd:{type:Qe.ArrowClosed,width:14,height:14,color:`var(--ink-4)`}};e.steps[0]&&(s.setEdge(`__start`,e.steps[0].id),c.push({id:`e-start`,source:`__start`,target:e.steps[0].id,...l})),e.steps.forEach((t,n)=>{let r=e.steps[n+1],i=new Map;for(let n of t.next??[])n.goto!==`end`&&e.steps.some(e=>e.id===n.goto)&&i.set(n.goto,[...i.get(n.goto)??[],_a(n)]);for(let[e,n]of i){let r=n.join(` · `),i=r.length>ha?`${r.slice(0,33)}…`:r;s.setEdge(t.id,e,{width:i.length*6.2+16,height:22,labelpos:`c`}),c.push({id:`b-${t.id}-${e}`,type:`branch`,source:t.id,target:e,label:i,labelStyle:{fontSize:11,fill:`var(--ink-2)`},labelBgStyle:{fill:`var(--paper-2)`},labelBgPadding:[6,3],labelBgBorderRadius:8,style:{strokeDasharray:`5 4`},...l})}r&&t.type!==`result`&&(s.hasEdge(t.id,r.id)||s.setEdge(t.id,r.id),c.push({id:`n-${t.id}`,source:t.id,target:r.id,...t.next?.length?{label:z(`editor.otherwise`),labelStyle:{fontSize:11,fill:`var(--ink-3)`},labelBgStyle:{fill:`var(--background)`}}:{},...l}))}),ra.layout(s);for(let e of c){if(e.type!==`branch`)continue;let t=s.edge(e.source,e.target),n=(t.points??[]).slice(1,-1);n.length&&t.x!==void 0&&t.y!==void 0&&(e.data={points:n,labelX:t.x,labelY:t.y})}return{nodes:[{id:`__start`,type:`start`,position:{x:s.node(`__start`).x-ca/2,y:s.node(`__start`).y-26},data:{title:e.title,avatar:e.avatar,selected:t===`__wizard`},draggable:!1},...e.steps.map((e,c)=>{let l=s.node(e.id);return{id:e.id,type:`step`,position:{x:l.x-ca/2,y:l.y-la/2},data:{step:e,selected:t===e.id,issue:n.has(e.id),index:c,active:r===e.id,pulse:i.includes(e.id),cost:a[e.id]?.credits??null,passed:o.has(e.id)},draggable:!1}})],edges:c}}function ya(){let e=Xe(),t=`inline-flex size-8 items-center justify-center rounded-full text-ink-3 hover:bg-accent hover:text-ink`;return(0,H.jsxs)(`div`,{className:`absolute bottom-4 left-4 z-10 flex items-center gap-0.5 rounded-full bg-card p-1 shadow-soft ring-1 ring-border-soft`,children:[(0,H.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.zoomOut(),"aria-label":`Zoom out`,children:(0,H.jsx)(mt,{className:`size-4`})}),(0,H.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.fitView({padding:.2,duration:300}),"aria-label":`Fit`,children:(0,H.jsx)(bt,{className:`size-4`})}),(0,H.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.zoomIn(),"aria-label":`Zoom in`,children:(0,H.jsx)(T,{className:`size-4`})})]})}var ba=.8,xa=new Set;function Sa({def:e,selected:t,onSelect:n,issueSteps:r,activeStep:i,pulse:a,costs:o=ga,passed:s=xa,minFitZoom:c=ba,fitKey:l}){let{nodes:u,edges:d}=(0,V.useMemo)(()=>va(e,t,r,i,a??[],o,s),[e,t,r,i,a,o,s]),f=Xe(),p=(0,V.useRef)(null),m=e.steps.map(e=>e.id).join(`|`);return(0,V.useEffect)(()=>{let e=requestAnimationFrame(()=>{let e=p.current;if(!e||!u.length)return;let t=u.map(e=>e.position.x),n=u.map(e=>e.position.y),r={x:Math.min(...t),y:Math.min(...n),width:Math.max(...t)+ca-Math.min(...t),height:Math.max(...n)+la-Math.min(...n)},i=Math.min(e.clientWidth/(r.width*1.2),e.clientHeight/(r.height*1.15),1),a=Math.max(i,c),o=(e.clientWidth-r.width*a)/2-r.x*a,s=i>=c?(e.clientHeight-r.height*a)/2-r.y*a:24-r.y*a;f.setViewport({x:o,y:s,zoom:a},{duration:400})});return()=>cancelAnimationFrame(e)},[m,l,f]),(0,H.jsx)(`div`,{ref:p,className:`h-full w-full`,children:(0,H.jsx)(Ke,{nodes:u,edges:d,nodeTypes:pa,edgeTypes:ma,onNodeClick:(e,t)=>n(t.id===`__start`?`__wizard`:t.id),onPaneClick:()=>n(null),nodesConnectable:!1,nodesDraggable:!1,elementsSelectable:!1,panOnScroll:!0,zoomOnScroll:!1,zoomOnPinch:!0,minZoom:.3,maxZoom:1.4,proOptions:{hideAttribution:!0},children:(0,H.jsx)(ya,{})})})}function Ca(e){return(0,H.jsx)(Je,{children:(0,H.jsx)(Sa,{...e})})}function wa({wizardId:e,...t}){let n=ia(e,t.def);return(0,H.jsx)(Ca,{...t,costs:n.data?.available?n.data.steps:ga})}var Ta={text:`Kurzer Text`,textarea:`Langer Text`,number:`Zahl`,select:`Auswahl`,multiselect:`Mehrfachauswahl`,date:`Datum`,email:`E-Mail`,url:`Link`,toggle:`Ja/Nein`,color:`Farbe`,image:`Bild-Upload`,file:`Datei-Upload`,items:`Positionen (Tabelle)`,connection:`Konto verbinden`,list:`Gespeicherte Liste`,location:`Standort`,audio:`Sprachnotiz`,signature:`Unterschrift`};function Ea(e,t){let n=t===`image`||t===`file`;return{...e,kind:t,multiple:n?e.multiple:void 0,camera:t===`file`?e.camera:void 0,video:t===`file`?e.video:void 0,scan:t===`text`?e.scan:void 0}}var Da=(0,V.createContext)(!1);function Oa({className:e,children:t}){return(0,V.useContext)(Da)?(0,H.jsx)(`fieldset`,{disabled:!0,className:k(`min-w-0`,e),children:t}):(0,H.jsx)(`div`,{className:e,children:t})}function Y({title:e,children:t,loose:n}){let r=`flex flex-col gap-4`;return(0,H.jsxs)(`div`,{className:`border-border-soft border-t px-5 py-5 first:border-t-0`,children:[e?(0,H.jsx)(`h4`,{className:`mb-3 font-medium text-[0.75rem] text-ink-3 uppercase tracking-[0.07em]`,children:e}):null,n?(0,H.jsx)(`div`,{className:r,children:t}):(0,H.jsx)(Oa,{className:r,children:t})]})}function ka(e,t){let n=new Set([...e.steps.map(e=>e.id),...e.steps.flatMap(e=>e.type===`page`?e.fields.map(e=>e.id):[])]),r=1,i=t;for(;n.has(i);)r+=1,i=`${t}${r}`;return i}function Aa({def:e,field:t,onChange:n,onRemove:r,onMove:i}){let[a,o]=(0,V.useState)(!1);return(0,H.jsxs)(`div`,{className:`rounded-lg bg-paper ring-1 ring-border-soft`,children:[(0,H.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`flex w-full items-center gap-2 px-3 py-2.5 text-left`,children:[(0,H.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-[0.875rem]`,children:[t.label,t.required?(0,H.jsx)(`span`,{className:`ml-1 text-ember`,children:`*`}):null]}),(0,H.jsx)(`span`,{className:`text-[0.75rem] text-ink-4`,children:Ta[t.kind]}),(0,H.jsx)(ne,{className:k(`size-4 text-ink-4 transition`,a&&`rotate-180`)})]}),a?(0,H.jsxs)(Oa,{className:`flex flex-col gap-3 border-border-soft border-t px-3 py-3`,children:[(0,H.jsx)(I,{value:t.label,onChange:e=>n({...t,label:e.target.value})}),(0,H.jsx)(R,{value:t.kind,onChange:e=>n(Ea(t,e)),options:ze.filter(e=>e!==`items`||t.kind===`items`).map(e=>({value:e,label:Ta[e]}))}),t.kind===`select`||t.kind===`multiselect`?(0,H.jsx)(I,{placeholder:`Option A, Option B, Option C`,value:(t.options??[]).join(`, `),onChange:e=>n({...t,options:e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean)})}):null,t.kind===`connection`?(0,H.jsx)(R,{value:t.connection??``,placeholder:`Welches Konto?`,onChange:e=>n({...t,connection:e}),options:(e.connections??[]).map(e=>({value:e.id,label:e.title??e.id}))}):null,t.kind===`list`?(0,H.jsx)(R,{value:t.list??``,placeholder:`Welche Liste?`,onChange:e=>n({...t,list:e}),options:(e.lists??[]).map(e=>({value:e.id,label:e.title}))}):null,t.kind===`image`||t.kind===`file`?(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:`Mehrere Dateien`}),(0,H.jsx)(P,{checked:!!t.multiple,onChange:e=>n({...t,multiple:e||void 0,...e?{}:{min:void 0,max:void 0}})})]}):null,(t.kind===`image`||t.kind===`file`)&&t.multiple?(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:`Wie viele?`}),(0,H.jsx)(`div`,{className:`flex items-center gap-1.5`,children:[`min`,`max`].map(e=>(0,H.jsx)(I,{type:`number`,min:1,max:30,"aria-label":e===`min`?`Mindestens`:`Höchstens`,placeholder:e===`min`?`min.`:`max.`,value:t[e]??``,onChange:r=>{let i=Math.round(Number(r.target.value));n({...t,[e]:r.target.value&&i>=1?Math.min(i,30):void 0})},className:`h-8 w-16 text-right`},e))})]}):null,t.kind===`file`?(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:`Auch mit der Kamera aufnehmen`}),(0,H.jsx)(P,{checked:!!t.camera,onChange:e=>n({...t,camera:e||void 0})})]}):null,t.kind===`file`?(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:`Kamera nimmt auch kurze Videos auf`}),(0,H.jsx)(P,{checked:!!t.video,onChange:e=>n({...t,video:e||void 0})})]}):null,t.kind===`text`?(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:`QR- oder Barcode scannen`}),(0,H.jsx)(P,{checked:!!t.scan,onChange:e=>n({...t,scan:e||void 0})})]}):null,[`text`,`textarea`,`number`,`email`,`url`,`location`].includes(t.kind)?(0,H.jsx)(I,{placeholder:`Platzhalter`,value:t.placeholder??``,onChange:e=>n({...t,placeholder:e.target.value||void 0})}):null,(0,H.jsx)(I,{placeholder:`Hilfetext`,value:t.help??``,onChange:e=>n({...t,help:e.target.value||void 0})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:z(`run.required`)}),(0,H.jsx)(P,{checked:!!t.required,onChange:e=>n({...t,required:e})})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`font-mono text-[0.6875rem] text-ink-4`,children:`{{${t.id}}}`}),(0,H.jsxs)(`div`,{className:`flex`,children:[(0,H.jsx)(N,{label:z(`editor.moveUp`),onClick:()=>i(-1),className:`size-8`,children:(0,H.jsx)(g,{className:`size-3.5`})}),(0,H.jsx)(N,{label:z(`editor.moveDown`),onClick:()=>i(1),className:`size-8`,children:(0,H.jsx)(m,{className:`size-3.5`})}),(0,H.jsx)(N,{label:`Entfernen`,onClick:r,className:`size-8 hover:text-rose`,children:(0,H.jsx)(D,{className:`size-3.5`})})]})]})]}):null]})}var ja=[{label:`16:9`,width:1280,height:720},{label:`1:1`,width:1080,height:1080},{label:`4:5`,width:1080,height:1350},{label:`9:16`,width:1080,height:1920}];function Ma(e,t){let n=[];for(let r of e.steps.slice(0,t))r.type===`page`?n.push(...r.fields.map(e=>e.id)):r.type===`agent`?n.push(`steps.${r.id}`,...(r.output.fields??[]).map(e=>`steps.${r.id}.${e.id}`)):(r.type===`generate`||r.type===`widget`)&&n.push(`steps.${r.id}`);return[...n,`brand.name`,`today`]}function Na({def:e,step:t,set:n,files:r,wizardId:i}){let a=r.filter(e=>e.mime===`text/html`),s=r.filter(e=>e.mime===`application/json`),c=t.size??ja[0],l=Ma(e,e.steps.indexOf(t)),u=Object.entries(t.data),d=e=>n({...t,data:Object.fromEntries(e)}),f=[r.find(e=>e.path===t.entry)?.hash.slice(0,8),r.find(e=>e.path===t.sample)?.hash.slice(0,8),c.width,c.height].join(`-`),p=r.some(e=>e.path===t.entry);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Y,{title:`Vorschau mit Beispieldaten`,children:p?(0,H.jsx)(_,{src:o(`/api/studio/wizards/${i}/widgets/${t.id}/preview?v=${f}`),page:c.width,height:c.height,fit:!0}):(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:`Das Widget ist noch nicht gebaut. Bitte im Gespräch darum – oder lade eine HTML-Datei unter „Dateien“ hoch.`})}),(0,H.jsxs)(Y,{title:`Widget`,children:[(0,H.jsx)(O,{children:`HTML-Datei`}),(0,H.jsx)(R,{value:t.entry,onChange:e=>n({...t,entry:e}),options:(a.some(e=>e.path===t.entry)?a:[{path:t.entry},...a]).map(e=>({value:e.path,label:e.path}))}),(0,H.jsx)(O,{children:`Beispieldaten`}),(0,H.jsx)(R,{value:t.sample??``,onChange:e=>n({...t,sample:e||void 0}),options:[{value:``,label:`keine`},...s.map(e=>({value:e.path,label:e.path}))]}),(0,H.jsx)(O,{children:`Größe`}),(0,H.jsx)(j,{value:ja.find(e=>e.width===c.width&&e.height===c.height)?.label??``,options:ja.map(e=>e.label),onChange:e=>{let r=ja.find(t=>t.label===e);r&&n({...t,size:{width:r.width,height:r.height}})}})]}),(0,H.jsxs)(Y,{title:`Daten für das Widget`,children:[(0,H.jsx)(`datalist`,{id:`sources-${t.id}`,children:l.map(e=>(0,H.jsx)(`option`,{value:e},e))}),u.map(([e,n],r)=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(I,{value:e,className:`w-28 font-mono text-[0.75rem]`,onChange:e=>d(u.map((t,n)=>n===r?[e.target.value,t[1]]:t))}),(0,H.jsx)(`span`,{className:`text-ink-4`,children:`←`}),(0,H.jsx)(I,{value:n,list:`sources-${t.id}`,className:`flex-1 font-mono text-[0.75rem]`,onChange:e=>d(u.map((t,n)=>n===r?[t[0],e.target.value]:t))}),(0,H.jsx)(N,{label:z(`editor.deleteStep`),onClick:()=>d(u.filter((e,t)=>t!==r)),children:(0,H.jsx)(D,{className:`size-4`})})]},r)),(0,H.jsxs)(`button`,{type:`button`,onClick:()=>d([...u,[`wert${u.length+1}`,l[0]??`today`]]),className:`inline-flex h-8 items-center gap-1 self-start rounded-full px-2.5 text-[0.75rem] text-ink-2 hover:bg-accent`,children:[(0,H.jsx)(T,{className:`size-3.5`}),` Wert`]})]})]})}function Pa({def:e,step:t,set:n,mcpServers:r,files:i,wizardId:a}){let o=e.steps.indexOf(t),s=(0,V.useContext)(Da),c=ke().plugins.flatMap(e=>e.tools),l=e.steps.slice(0,o).filter(e=>e.type===`agent`||e.type===`generate`||e.type===`widget`);switch(t.type){case`widget`:return(0,H.jsx)(Na,{def:e,step:t,set:n,files:i,wizardId:a});case`page`:return(0,H.jsxs)(Y,{title:`Fragen`,loose:!0,children:[(0,H.jsx)(`div`,{className:`flex flex-col gap-2`,children:t.fields.map((r,i)=>(0,H.jsx)(Aa,{def:e,field:r,onChange:e=>n({...t,fields:t.fields.map((t,n)=>n===i?e:t)}),onRemove:()=>t.fields.length>1&&n({...t,fields:t.fields.filter((e,t)=>t!==i)}),onMove:e=>{let r=i+e;if(r<0||r>=t.fields.length)return;let a=[...t.fields];[a[i],a[r]]=[a[r],a[i]],n({...t,fields:a})}},r.id))}),s?null:(0,H.jsxs)(`button`,{type:`button`,onClick:()=>n({...t,fields:[...t.fields,{id:ka(e,`frage`),label:`Neue Frage`,kind:`text`}]}),className:`inline-flex h-9 items-center gap-1.5 self-start rounded-full px-3 text-[0.8125rem] text-ink-2 hover:bg-accent`,children:[(0,H.jsx)(T,{className:`size-4`}),` Frage hinzufügen`]})]});case`agent`:return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(Y,{title:`Auftrag`,children:[(0,H.jsx)(M,{value:t.instructions,minRows:6,maxRows:20,onChange:e=>n({...t,instructions:e.target.value}),className:`text-[0.875rem]`}),(0,H.jsxs)(`p`,{className:`text-[0.75rem] text-ink-4`,children:[`Antworten einsetzen mit `,(0,H.jsx)(`code`,{className:`font-mono`,children:`{{feld}}`}),`, frühere Ergebnisse mit `,(0,H.jsx)(`code`,{className:`font-mono`,children:`{{steps.id}}`}),`.`]})]}),(0,H.jsxs)(Y,{title:`Werkzeuge`,children:[(0,H.jsx)(j,{multi:!0,value:t.tools,options:[...new Set([...We,...c.map(e=>e.id),...t.tools])],onChange:e=>n({...t,tools:e})}),(0,H.jsxs)(`div`,{className:`-mt-2 flex flex-wrap gap-x-3 text-[0.75rem] text-ink-4`,children:[We.map(e=>(0,H.jsxs)(`span`,{children:[e,` = `,b(e)]},e)),c.map(e=>(0,H.jsxs)(`span`,{children:[e.id,` = `,e.title]},e.id))]}),e.connections?.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(O,{hint:`Konten, die die Person im Durchlauf verbindet. Der Schritt liest darin, er schreibt nie.`,children:`Konten der Person`}),(0,H.jsx)(j,{multi:!0,value:t.connections??[],options:e.connections.map(e=>e.id),onChange:e=>n({...t,connections:e.length?e:void 0})})]}):null,r.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(O,{hint:`Nur freigegebene Systeme sind in diesem Schritt erreichbar.`,children:`Verbundene Systeme`}),(0,H.jsx)(j,{multi:!0,value:t.mcp??[],options:r.map(e=>e.id),onChange:e=>n({...t,mcp:e.length?e:void 0})})]}):null]}),(0,H.jsxs)(Y,{title:`Ergebnis`,children:[(0,H.jsx)(j,{value:t.output.format,options:[`text`,`markdown`,`json`],onChange:e=>n({...t,output:{...t.output,format:e}})}),(0,H.jsx)(sa,{model:t.model,effort:t.effort,onChange:e=>n({...t,...e})}),(0,H.jsx)(I,{placeholder:`Text während der Arbeit, z. B. „Recherchiert …“`,value:t.working??``,onChange:e=>n({...t,working:e.target.value||void 0})})]})]});case`generate`:return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(Y,{title:`Was wird erzeugt?`,children:[(0,H.jsx)(j,{value:t.asset,options:[`image`,`video`,`voice`,`document`,`dashboard`],onChange:e=>n({...t,asset:e})}),(0,H.jsx)(M,{value:t.prompt,minRows:5,maxRows:18,onChange:e=>n({...t,prompt:e.target.value}),className:`text-[0.875rem]`})]}),(0,H.jsxs)(Y,{title:`Optionen`,children:[t.asset===`document`||t.asset===`dashboard`?(0,H.jsx)(sa,{model:t.model,effort:t.effort,onChange:e=>n({...t,...e})}):null,t.asset===`image`||t.asset===`video`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(O,{children:`Format`}),(0,H.jsx)(j,{value:t.options?.aspectRatio??``,options:[...Ge],onChange:e=>n({...t,options:{...t.options,aspectRatio:e}})}),(0,H.jsx)(I,{placeholder:`Stil, z. B. „helle Fotografie, minimalistisch“`,value:t.options?.style??``,onChange:e=>n({...t,options:{...t.options,style:e.target.value||void 0}})})]}):null,t.asset===`video`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(O,{children:`Länge (Sekunden)`}),(0,H.jsx)(j,{value:String(t.options?.duration??8),options:[`4`,`6`,`8`,`10`],onChange:e=>n({...t,options:{...t.options,duration:Number(e)}})}),(0,H.jsx)(O,{children:`Auflösung`}),(0,H.jsx)(j,{value:t.options?.resolution??`720p`,options:[...Re],onChange:e=>n({...t,options:{...t.options,resolution:e}})})]}):null,t.asset===`document`?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(O,{children:`Vorlage`}),(0,H.jsx)(R,{value:t.options?.template??`free`,onChange:e=>n({...t,options:{...t.options,template:e}}),options:[`free`,`invoice`,`offer`,`briefing`,`letter`,`report`].map(e=>({value:e,label:e}))})]}):null]})]});case`review`:return(0,H.jsxs)(Y,{title:`Was wird gezeigt?`,children:[(0,H.jsx)(j,{multi:!0,value:t.show,options:l.map(e=>e.id),onChange:e=>e.length&&n({...t,show:e})}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:`Text direkt bearbeitbar`}),(0,H.jsx)(P,{checked:!!t.edit,onChange:e=>n({...t,edit:e})})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-2`,children:`Neue Variante anfordern`}),(0,H.jsx)(P,{checked:!!t.regenerate,onChange:e=>n({...t,regenerate:e})})]})]});case`result`:return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Y,{title:`Abschluss`,children:(0,H.jsx)(M,{minRows:2,placeholder:`Nachricht am Ende`,value:t.message??``,onChange:e=>n({...t,message:e.target.value||void 0})})}),(0,H.jsx)(Y,{title:`Downloads`,children:l.map(e=>{let r=t.deliverables.find(t=>t.from===e.id),i=Be(e);return(0,H.jsxs)(`div`,{className:`rounded-lg bg-paper p-3 ring-1 ring-border-soft`,children:[(0,H.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`truncate text-[0.875rem]`,children:e.title}),(0,H.jsx)(P,{checked:!!r,onChange:r=>n({...t,deliverables:r?[...t.deliverables,{from:e.id,label:e.title,formats:[i[0]]}]:t.deliverables.filter(t=>t.from!==e.id)})})]}),r?(0,H.jsx)(j,{multi:!0,value:r.formats,options:i,onChange:r=>r.length&&n({...t,deliverables:t.deliverables.map(t=>t.from===e.id?{...t,formats:r}:t)})}):null]},e.id)})})]})}}function Fa({def:e,update:t}){return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(Y,{children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(O,{children:`Titel`}),(0,H.jsx)(I,{value:e.title,onChange:n=>t({...e,title:n.target.value})})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(O,{children:`Beschreibung`}),(0,H.jsx)(M,{minRows:2,value:e.description,onChange:n=>t({...e,description:n.target.value})})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(O,{hint:`Steht über der ersten Seite.`,children:`Begrüßung`}),(0,H.jsx)(M,{minRows:2,value:e.intro??``,onChange:n=>t({...e,intro:n.target.value||void 0})})]})]}),(0,H.jsx)(Y,{title:`Avatar`,children:(0,H.jsx)(`div`,{className:`grid grid-cols-5 gap-2`,children:Ue.map(n=>(0,H.jsx)(`button`,{type:`button`,onClick:()=>t({...e,avatar:n}),className:k(`flex aspect-square items-center justify-center rounded-xl transition`,e.avatar===n?`bg-ember-tint ring-2 ring-ember`:`bg-paper hover:bg-paper-2`),"aria-label":n,children:(0,H.jsx)(s,{kind:n,size:44,interactive:!1})},n))})}),e.lists?.length||e.connections?.length?(0,H.jsxs)(Y,{title:`Merkt sich für jede Person`,children:[(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:`Bleibt zwischen den Durchläufen erhalten – getrennt für jede Person, die den Wizard nutzt. Ändern kannst du das im Gespräch.`}),(e.connections??[]).map(e=>(0,H.jsxs)(`div`,{className:`rounded-lg bg-paper px-3 py-2.5 ring-1 ring-border-soft`,children:[(0,H.jsx)(`div`,{className:`text-[0.875rem]`,children:e.title??e.id}),(0,H.jsxs)(`div`,{className:`text-[0.75rem] text-ink-4`,children:[`Konto · `,e.kind]})]},e.id)),(e.lists??[]).map(e=>(0,H.jsxs)(`div`,{className:`rounded-lg bg-paper px-3 py-2.5 ring-1 ring-border-soft`,children:[(0,H.jsx)(`div`,{className:`text-[0.875rem]`,children:e.title}),(0,H.jsxs)(`div`,{className:`text-[0.75rem] text-ink-4`,children:[`Liste · `,e.columns.map(e=>e.name).join(`, `)]}),(0,H.jsx)(`div`,{className:`mt-1 font-mono text-[0.6875rem] text-ink-4`,children:`{{lists.${e.id}}}`})]},e.id))]}):null]})}var Ia={page:e=>({id:e,type:`page`,title:`Neue Seite`,fields:[{id:`${e}Text`,label:`Neue Frage`,kind:`text`}]}),agent:e=>({id:e,type:`agent`,title:`KI-Schritt`,instructions:`Beschreibe die Aufgabe …`,tools:[],output:{format:`markdown`}}),generate:e=>({id:e,type:`generate`,title:`Bild erzeugen`,asset:`image`,prompt:`Beschreibe das Bild …`}),widget:e=>({id:e,type:`widget`,title:`Widget`,entry:`${e}/index.html`,data:{},sample:`${e}/sample.json`})},X=`__wizard`;function La({def:e,selected:t,onSelect:n,issues:r}){let i=[X,...e.steps.map(e=>e.id)],a=t?i.indexOf(t):-1,o=(0,V.useRef)(null);(0,V.useEffect)(()=>{o.current?.scrollIntoView({block:`nearest`,inline:`center`,behavior:`smooth`})},[t]);let s=e=>{let t=a===-1?e===1?1:i.length-1:a+e;t>=0&&t<i.length&&n(i[t])},c=(0,V.useRef)(s);c.current=s,(0,V.useEffect)(()=>{let e=e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.defaultPrevented||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||e.target?.closest(`input, textarea, select, [contenteditable=""], [contenteditable="true"], [role="separator"], [role="slider"], [role="dialog"], .react-flow`)||(e.preventDefault(),c.current(e.key===`ArrowLeft`?-1:1)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]);let l=`inline-flex size-8 shrink-0 items-center justify-center rounded-full transition`;return(0,H.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center gap-1 border-border-soft border-b bg-card/95 px-2 py-2 backdrop-blur`,children:[(0,H.jsx)(N,{label:z(`editor.prevStep`),className:`size-8 shrink-0`,disabled:a===0,onClick:()=>s(-1),children:(0,H.jsx)(ie,{className:`size-4`})}),(0,H.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center overflow-x-auto p-1 [scrollbar-width:none]`,children:[(0,H.jsx)(`button`,{ref:t===X?o:void 0,type:`button`,title:e.title,"aria-label":e.title,"aria-current":t===X?`step`:void 0,onClick:()=>n(X),className:k(l,`bg-paper-2 text-ink-2`,t===X?`ring-2 ring-ember`:`hover:ring-2 hover:ring-border-soft`),children:(0,H.jsx)(pe,{className:`size-4`})}),e.steps.map((e,i)=>{let a=x(e),s=e.id===t,c=r.some(t=>t.stepId===e.id);return(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center`,children:[(0,H.jsx)(`span`,{className:`h-px w-3 bg-border-soft`}),(0,H.jsxs)(`button`,{ref:s?o:void 0,type:`button`,title:`${i+1}. ${e.title}`,"aria-label":`${i+1}. ${e.title}`,"aria-current":s?`step`:void 0,onClick:()=>n(e.id),className:k(l,`relative`,C[e.type],s?`ring-2 ring-ember`:`opacity-70 hover:opacity-100`),children:[(0,H.jsx)(a,{className:`size-4`}),c?(0,H.jsx)(`span`,{className:`-top-0.5 -right-0.5 absolute size-2.5 rounded-full bg-rose ring-2 ring-card`}):null]})]},e.id)})]}),(0,H.jsx)(`span`,{className:`shrink-0 px-1 text-[0.75rem] text-ink-4 tabular-nums`,children:a>0?`${a} / ${e.steps.length}`:``}),(0,H.jsx)(N,{label:z(`editor.nextStep`),className:`size-8 shrink-0`,disabled:a===i.length-1,onClick:()=>s(1),children:(0,H.jsx)(re,{className:`size-4`})})]})}function Ra({def:e,onSelect:t,issues:n}){return(0,H.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:e.steps.map((e,r)=>{let i=x(e),a=n.some(t=>t.stepId===e.id);return(0,H.jsxs)(`button`,{type:`button`,onClick:()=>t(e.id),className:`flex items-center gap-3 rounded-lg px-3 py-2.5 text-left transition hover:bg-paper-2`,children:[(0,H.jsx)(`span`,{className:`w-4 text-right text-[0.75rem] text-ink-4 tabular-nums`,children:r+1}),(0,H.jsx)(`span`,{className:k(`inline-flex size-7 shrink-0 items-center justify-center rounded-md`,C[e.type]),children:(0,H.jsx)(i,{className:`size-4`})}),(0,H.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,H.jsx)(`span`,{className:`block truncate text-[0.875rem]`,children:e.title}),(0,H.jsx)(`span`,{className:`block text-[0.75rem] text-ink-4`,children:y(e)})]}),a?(0,H.jsx)(`span`,{className:`size-2 shrink-0 rounded-full bg-rose`}):null]},e.id)})})}function za(e){let{def:t,selected:n,onSelect:r,issues:i,readOnly:a=!1}=e,o=a?()=>{}:e.update,s=t.steps.find(e=>e.id===n);return(0,H.jsx)(Da,{value:a,children:(0,H.jsxs)(`div`,{children:[(0,H.jsx)(La,{def:t,selected:n,onSelect:r,issues:i}),n===X?(0,H.jsx)(Fa,{def:t,update:o}):s?(0,H.jsx)(Ba,{...e,update:o,step:s}):(0,H.jsx)(Ra,{def:t,onSelect:r,issues:i})]})})}function Ba({def:e,step:t,update:n,onSelect:r,issues:i,mcpServers:a,files:o,wizardId:s}){let c=e.steps.indexOf(t),l=x(t),u=r=>n({...e,steps:e.steps.map(e=>e.id===t.id?r:e)}),d=r=>{let i=c+r;if(i<0||i>=e.steps.length-(t.type===`result`?0:1)||e.steps[i].type===`result`)return;let a=[...e.steps];[a[c],a[i]]=[a[i],a[c]],n({...e,steps:a})},f=i=>{let a=ka(e,i===`page`?`seite`:i===`agent`?`ki`:i===`widget`?`widget`:`erzeugen`),o=[...e.steps];o.splice(t.type===`result`?c:c+1,0,Ia[i](a)),n({...e,steps:o}),r(a)},p=i.filter(e=>e.stepId===t.id),h=ia(s,e),_=(0,V.useContext)(Da);return(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-5 py-4`,children:[(0,H.jsx)(`span`,{className:k(`inline-flex size-7 items-center justify-center rounded-md`,C[t.type]),children:(0,H.jsx)(l,{className:`size-4`})}),(0,H.jsx)(`span`,{className:`font-medium text-[0.75rem] text-ink-3 uppercase tracking-[0.07em]`,children:y(t)}),(0,H.jsx)(`span`,{className:`ml-auto font-mono text-[0.6875rem] text-ink-4`,children:t.id})]}),p.length?(0,H.jsx)(`div`,{className:`mx-5 mb-4 rounded-lg bg-rose-tint px-3 py-2 text-[0.8125rem] text-rose`,children:p.map((e,t)=>(0,H.jsx)(`div`,{children:e.message},t))}):null,(0,H.jsxs)(Y,{children:[(0,H.jsx)(I,{value:t.title,onChange:e=>u({...t,title:e.target.value}),className:`font-display font-semibold text-[1rem]`}),t.type===`page`||t.type===`review`?(0,H.jsx)(M,{minRows:1,placeholder:`Erklärung unter dem Titel (optional)`,value:t.description??``,onChange:e=>u({...t,description:e.target.value||void 0})}):null,(0,H.jsx)(oa,{estimate:h.data,stepId:t.id})]}),(0,H.jsx)(Pa,{def:e,step:t,set:u,mcpServers:a,files:o,wizardId:s}),_?null:(0,H.jsx)(Y,{children:(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[t.type===`result`?null:(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(N,{label:z(`editor.moveUp`),onClick:()=>d(-1),children:(0,H.jsx)(g,{className:`size-4`})}),(0,H.jsx)(N,{label:z(`editor.moveDown`),onClick:()=>d(1),children:(0,H.jsx)(m,{className:`size-4`})}),(0,H.jsx)(N,{label:z(`editor.deleteStep`),className:`hover:text-rose`,onClick:()=>{n({...e,steps:e.steps.filter(e=>e.id!==t.id)}),r(null)},children:(0,H.jsx)(D,{className:`size-4`})})]}),(0,H.jsx)(`span`,{className:`ml-auto text-[0.75rem] text-ink-4`,children:`Danach einfügen:`}),[`page`,`agent`,`generate`,`widget`].map(e=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>f(e),className:`inline-flex h-8 items-center gap-1 rounded-full px-2.5 text-[0.75rem] text-ink-2 hover:bg-accent`,children:[(0,H.jsx)(T,{className:`size-3.5`}),` `,z(`type.${e}`)]},e))]})})]})}var Va={waiting_input:`wartet`,running:`läuft`,done:`fertig`,failed:`Fehler`,cancelled:`abgebrochen`};function Ha({wizardId:e,onOpen:t}){let n=c({queryKey:[`runs`,e],queryFn:()=>u.get(`/api/studio/wizards/${e}/runs`),refetchInterval:1e4});if(n.data&&!n.data.length)return(0,H.jsx)(_e,{children:z(`editor.noRuns`)});let r=new Intl.DateTimeFormat(ge,{dateStyle:`short`,timeStyle:`short`});return(0,H.jsx)(`div`,{className:`flex flex-col p-2`,children:n.data?.map(e=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>t(e.id),className:`flex items-center gap-3 rounded-lg px-3 py-3 text-left hover:bg-accent`,children:[(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 text-[0.875rem]`,children:[r.format(new Date(e.createdAt)),e.mode===`test`?(0,H.jsx)(F,{children:`Test`}):(0,H.jsxs)(F,{tone:`live`,children:[`Live v`,e.version]})]}),(0,H.jsxs)(`div`,{className:`truncate text-[0.75rem] text-ink-3`,children:[Va[e.status]??e.status,e.stepTitle&&e.status!==`done`?` · ${e.stepTitle}`:``]})]}),(0,H.jsxs)(`span`,{className:`text-[0.75rem] text-ink-4 tabular-nums`,children:[e.credits,` cr`]})]},e.id))})}var Z=(e=>(e[e.Border=-1]=`Border`,e[e.Data=0]=`Data`,e[e.Function=1]=`Function`,e[e.Position=2]=`Position`,e[e.Timing=3]=`Timing`,e[e.Alignment=4]=`Alignment`,e))(Z||{}),Ua=[0,1],Wa=[1,0],Ga=[2,3],Ka=[3,2],qa={L:Ua,M:Wa,Q:Ga,H:Ka},Ja=/^\d*$/,Ya=/^[A-Z0-9 $%*+./:-]*$/,Xa=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`,Za=1,Qa=40,$a=3,eo=3,to=40,no=10,ro=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],io=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],ao=class{constructor(e,t,n,r){if(this.version=e,this.ecc=t,e<Za||e>Qa)throw RangeError(`Version value out of range`);if(r<-1||r>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let i=Array.from({length:this.size}).fill(!1);for(let e=0;e<this.size;e++)this.modules.push(i.slice()),this.types.push(i.map(()=>0));this.drawFunctionPatterns();let a=this.addEccAndInterleave(n);if(this.drawCodewords(a),r===-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(r=t,e=n),this.applyMask(t)}}this.mask=r,this.applyMask(r),this.drawFormatBits(r)}size;mask;modules=[];types=[];getModule(e,t){return e>=0&&e<this.size&&t>=0&&t<this.size&&this.modules[t][e]}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0,Z.Timing),this.setFunctionModule(e,6,e%2==0,Z.Timing);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n===0&&r===0||n===0&&r===t-1||n===t-1&&r===0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.ecc[1]<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let r=(t<<10|n)^21522;for(let e=0;e<=5;e++)this.setFunctionModule(8,e,$(r,e));this.setFunctionModule(8,7,$(r,6)),this.setFunctionModule(8,8,$(r,7)),this.setFunctionModule(7,8,$(r,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,$(r,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,$(r,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,$(r,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;for(let e=0;e<18;e++){let n=$(t,e),r=this.size-11+e%3,i=Math.floor(e/3);this.setFunctionModule(r,i,n),this.setFunctionModule(i,r,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;a>=0&&a<this.size&&o>=0&&o<this.size&&this.setFunctionModule(a,o,i!==2&&i!==4,Z.Position)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!==1,Z.Alignment)}setFunctionModule(e,t,n,r=Z.Function){this.modules[t][e]=n,this.types[t][e]=r}addEccAndInterleave(e){let t=this.version,n=this.ecc;if(e.length!==xo(t,n))throw RangeError(`Invalid argument`);let r=io[n[0]][t],i=ro[n[0]][t],a=Math.floor(bo(t)/8),o=r-a%r,s=Math.floor(a/r),c=[],l=So(i);for(let t=0,n=0;t<r;t++){let r=e.slice(n,n+s-i+(t<o?0:1));n+=r.length;let a=Co(r,l);t<o&&r.push(0),c.push(r.concat(a))}let u=[];for(let e=0;e<c[0].length;e++)c.forEach((t,n)=>{(e!==s-i||n>=o)&&u.push(t[e])});return u}drawCodewords(e){if(e.length!==Math.floor(bo(this.version)/8))throw RangeError(`Invalid argument`);let t=0;for(let n=this.size-1;n>=1;n-=2){n===6&&(n=5);for(let r=0;r<this.size;r++)for(let i=0;i<2;i++){let a=n-i,o=n+1&2?r:this.size-1-r;!this.types[o][a]&&t<e.length*8&&(this.modules[o][a]=$(e[t>>>3],7-(t&7)),t++)}}}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.types[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let t=0;t<this.size;t++){let n=!1,r=0,i=[0,0,0,0,0,0,0];for(let a=0;a<this.size;a++)this.modules[t][a]===n?(r++,r===5?e+=$a:r>5&&e++):(this.finderPenaltyAddHistory(r,i),n||(e+=this.finderPenaltyCountPatterns(i)*to),n=this.modules[t][a],r=1);e+=this.finderPenaltyTerminateAndCount(n,r,i)*to}for(let t=0;t<this.size;t++){let n=!1,r=0,i=[0,0,0,0,0,0,0];for(let a=0;a<this.size;a++)this.modules[a][t]===n?(r++,r===5?e+=$a:r>5&&e++):(this.finderPenaltyAddHistory(r,i),n||(e+=this.finderPenaltyCountPatterns(i)*to),n=this.modules[a][t],r=1);e+=this.finderPenaltyTerminateAndCount(n,r,i)*to}for(let t=0;t<this.size-1;t++)for(let n=0;n<this.size-1;n++){let r=this.modules[t][n];r===this.modules[t][n+1]&&r===this.modules[t+1][n]&&r===this.modules[t+1][n+1]&&(e+=eo)}let t=0;for(let e of this.modules)t=e.reduce((e,t)=>e+ +!!t,t);let n=this.size*this.size,r=Math.ceil(Math.abs(t*20-n*10)/n)-1;return e+=r*no,e}getAlignmentPatternPositions(){if(this.version===1)return[];{let e=Math.floor(this.version/7)+2,t=this.version===32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}finderPenaltyCountPatterns(e){let t=e[1],n=t>0&&e[2]===t&&e[3]===t*3&&e[4]===t&&e[5]===t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]===0&&(e+=this.size),t.pop(),t.unshift(e)}};function Q(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function $(e,t){return!!(e>>>t&1)}var oo=class{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}getData(){return this.bitData.slice()}},so=[1,10,12,14],co=[2,9,11,13],lo=[4,8,16,16];function uo(e,t){return e[Math.floor((t+7)/17)+1]}function fo(e){let t=[];for(let n of e)Q(n,8,t);return new oo(lo,e.length,t)}function po(e){if(!go(e))throw RangeError(`String contains non-numeric characters`);let t=[];for(let n=0;n<e.length;){let r=Math.min(e.length-n,3);Q(Number.parseInt(e.substring(n,n+r),10),r*3+1,t),n+=r}return new oo(so,e.length,t)}function mo(e){if(!_o(e))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let t=[],n=0;for(;n+2<=e.length;n+=2){let r=Xa.indexOf(e.charAt(n))*45;r+=Xa.indexOf(e.charAt(n+1)),Q(r,11,t)}return n<e.length&&Q(Xa.indexOf(e.charAt(n)),6,t),new oo(co,e.length,t)}function ho(e){return e===``?[]:go(e)?[po(e)]:_o(e)?[mo(e)]:[fo(yo(e))]}function go(e){return Ja.test(e)}function _o(e){return Ya.test(e)}function vo(e,t){let n=0;for(let r of e){let e=uo(r.mode,t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}function yo(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)===`%`?(t.push(Number.parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}function bo(e){if(e<Za||e>Qa)throw RangeError(`Version number out of range`);let t=(16*e+128)*e+64;if(e>=2){let n=Math.floor(e/7)+2;t-=(25*n-10)*n-55,e>=7&&(t-=36)}return t}function xo(e,t){return Math.floor(bo(e)/8)-ro[t[0]][e]*io[t[0]][e]}function So(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let t=[];for(let n=0;n<e-1;n++)t.push(0);t.push(1);let n=1;for(let r=0;r<e;r++){for(let e=0;e<t.length;e++)t[e]=wo(t[e],n),e+1<t.length&&(t[e]^=t[e+1]);n=wo(n,2)}return t}function Co(e,t){let n=t.map(e=>0);for(let r of e){let e=r^n.shift();n.push(0),t.forEach((t,r)=>n[r]^=wo(t,e))}return n}function wo(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return n}function To(e,t,n=1,r=40,i=-1,a=!0){if(!(Za<=n&&n<=r&&r<=Qa)||i<-1||i>7)throw RangeError(`Invalid value`);let o,s;for(o=n;;o++){let n=xo(o,t)*8,i=vo(e,o);if(i<=n){s=i;break}if(o>=r)throw RangeError(`Data too long`)}for(let e of[Wa,Ga,Ka])a&&s<=xo(o,e)*8&&(t=e);let c=[];for(let t of e){Q(t.mode[0],4,c),Q(t.numChars,uo(t.mode,o),c);for(let e of t.getData())c.push(e)}let l=xo(o,t)*8;Q(0,Math.min(4,l-c.length),c),Q(0,(8-c.length%8)%8,c);for(let e=236;c.length<l;e^=253)Q(e,8,c);let u=Array.from({length:Math.ceil(c.length/8)},()=>0);return c.forEach((e,t)=>u[t>>>3]|=e<<7-(t&7)),new ao(o,t,u,i)}function Eo(e,t){let{ecc:n=`L`,boostEcc:r=!1,minVersion:i=1,maxVersion:a=40,maskPattern:o=-1,border:s=1}=t||{},c=typeof e==`string`?ho(e):Array.isArray(e)?[fo(e)]:void 0;if(!c)throw Error(`uqr only supports encoding string and binary data, but got: ${typeof e}`);let l=To(c,qa[n],i,a,o,r),u=Do({version:l.version,maskPattern:l.mask,size:l.size,data:l.modules,types:l.types},s);return t?.invert&&(u.data=u.data.map(e=>e.map(e=>!e))),t?.onEncoded?.(u),u}function Do(e,t=1){if(!t)return e;let{size:n}=e,r=n+t*2;e.size=r,e.data.forEach(e=>{for(let n=0;n<t;n++)e.unshift(!1),e.push(!1)});for(let n=0;n<t;n++)e.data.unshift(Array.from({length:r},e=>!1)),e.data.push(Array.from({length:r},e=>!1));let i=Z.Border;e.types.forEach(e=>{for(let n=0;n<t;n++)e.unshift(i),e.push(i)});for(let n=0;n<t;n++)e.types.unshift(Array.from({length:r},e=>i)),e.types.push(Array.from({length:r},e=>i));return e}function Oo(e){return e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`).replace(/>/g,`>`)}function ko(e,t={}){let n=Eo(e,t),{pixelSize:r=10,whiteColor:i=`white`,blackColor:a=`black`}=t,o=n.size*r,s=n.size*r,c=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${s} ${o}">`,l=[];for(let e=0;e<n.size;e++)for(let t=0;t<n.size;t++){let i=t*r,a=e*r;n.data[e][t]&&l.push(`M${i},${a}h${r}v${r}h-${r}z`)}return c+=`<rect fill="${Oo(i)}" width="${s}" height="${o}"/>`,c+=`<path fill="${Oo(a)}" d="${l.join(``)}"/>`,c+=`</svg>`,c}var Ao=e=>`${e.slice(0,4)} ${e.slice(4)}`;function jo(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.click(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}async function Mo(e,t){let n=new Image,r=URL.createObjectURL(new Blob([e],{type:`image/svg+xml`}));try{n.src=r,await n.decode();let e=document.createElement(`canvas`);e.width=1024,e.height=1024;let i=e.getContext(`2d`);if(!i)return;i.imageSmoothingEnabled=!1,i.drawImage(n,0,0,1024,1024);let a=await new Promise(t=>e.toBlob(t,`image/png`));a&&jo(a,t)}finally{URL.revokeObjectURL(r)}}function No({url:e,code:t,title:n}){let r=(0,V.useMemo)(()=>ko(e,{ecc:`M`,border:2,pixelSize:8}),[e]),i=(n.trim()||`wizard`).replace(/[^\p{L}\p{N}]+/gu,`-`).toLowerCase();return(0,H.jsxs)(`div`,{className:`flex gap-4`,children:[(0,H.jsx)(`div`,{role:`img`,"aria-label":z(`share.qr`),className:`size-28 shrink-0 overflow-hidden rounded-lg bg-white [&>svg]:size-full`,dangerouslySetInnerHTML:{__html:r}}),(0,H.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:z(`share.qrHint`)}),t?(0,H.jsxs)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:[z(`share.code`),` `,(0,H.jsx)(`span`,{className:`select-all font-mono text-[0.9375rem] text-ink tracking-wider`,children:Ao(t)})]}):null,(0,H.jsxs)(`div`,{className:`mt-auto flex gap-2`,children:[(0,H.jsxs)(L,{variant:`secondary`,size:`sm`,onClick:()=>void Mo(r,`${i}-qr.png`),children:[(0,H.jsx)(Se,{className:`size-3.5`}),` PNG`]}),(0,H.jsxs)(L,{variant:`secondary`,size:`sm`,onClick:()=>jo(new Blob([r],{type:`image/svg+xml`}),`${i}-qr.svg`),children:[(0,H.jsx)(Se,{className:`size-3.5`}),` SVG`]})]})]})]})}var Po=e=>e.replace(/&/g,`&`).replace(/"/g,`"`).replace(/</g,`<`),Fo=()=>new Intl.DateTimeFormat(ge,{timeStyle:`short`});function Io({url:e,title:t}){let[n,r]=(0,V.useState)(!1),[i,a]=(0,V.useState)(!1),[,o,s]=e.match(/^(.*)\/w\/([^/]+)$/)??[];if(!s)return null;let c=`<script async src="${o}/embed.js" data-wizard="${s}"${n?` data-mode="modal" data-label="${Po(t)}"`:``}><\/script>`,l=[z(`embed.inline`),z(`embed.modal`)];return(0,H.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:z(n?`embed.modalHint`:`embed.inlineHint`)}),(0,H.jsxs)(L,{variant:`secondary`,size:`sm`,onClick:()=>{navigator.clipboard.writeText(c),a(!0),setTimeout(()=>a(!1),1500)},children:[i?(0,H.jsx)(w,{className:`size-3.5`}):(0,H.jsx)(de,{className:`size-3.5`}),z(i?`share.copied`:`share.copy`)]})]}),(0,H.jsx)(j,{value:l[+!!n],onChange:e=>r(e===l[1]),options:l}),(0,H.jsx)(`pre`,{className:`select-all whitespace-pre-wrap break-all rounded-lg bg-paper-2 px-3 py-2.5 font-mono text-[0.75rem] text-ink-2 leading-relaxed`,children:c})]})}var Lo=e=>k(`inline-flex h-8 items-center gap-1.5 rounded-full px-3 font-medium text-[0.8125rem] transition`,e?`bg-paper-2 text-ink`:`text-ink-3 hover:text-ink`);function Ro({url:e,code:t,title:n}){let[r,i]=(0,V.useState)(!1),[a,o]=(0,V.useState)(null),s=e=>o(t=>t===e?null:e);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(I,{readOnly:!0,value:e,onFocus:e=>e.target.select(),className:`font-mono text-[0.8125rem]`}),(0,H.jsxs)(L,{variant:`secondary`,onClick:()=>{navigator.clipboard.writeText(e),i(!0),setTimeout(()=>i(!1),1500)},children:[r?(0,H.jsx)(w,{className:`size-4`}):(0,H.jsx)(de,{className:`size-4`}),z(r?`share.copied`:`share.copy`)]})]}),(0,H.jsxs)(`div`,{className:`-ml-3 flex flex-wrap gap-1`,children:[(0,H.jsxs)(`button`,{type:`button`,className:Lo(!1),onClick:()=>et(e),children:[(0,H.jsx)(fe,{className:`size-3.5`}),` `,z(`share.open`)]}),(0,H.jsxs)(`button`,{type:`button`,"aria-pressed":a===`website`,className:Lo(a===`website`),onClick:()=>s(`website`),children:[(0,H.jsx)(ot,{className:`size-3.5`}),` `,z(`share.website`)]}),(0,H.jsxs)(`button`,{type:`button`,"aria-pressed":a===`qr`,className:Lo(a===`qr`),onClick:()=>s(`qr`),children:[(0,H.jsx)(vt,{className:`size-3.5`}),` `,z(`share.qr`)]})]}),a===`website`?(0,H.jsx)(Io,{url:e,title:n}):null,a===`qr`?(0,H.jsx)(No,{url:e,code:t,title:n}):null]})}var zo={sandbox:`cloud.problem.sandbox`,mcp:`cloud.problem.mcp`,model:`cloud.problem.model`,connector:`cloud.problem.connector`,invalid:`cloud.problem.invalid`};function Bo({problems:e,quiet:t}){return(0,H.jsx)(`ul`,{className:k(`flex flex-col gap-2 text-[0.8125rem]`,t?`text-ink-3`:`text-ink-2`),children:e.map((e,n)=>(0,H.jsxs)(`li`,{children:[e.steps.length?(0,H.jsxs)(`span`,{className:k(`font-medium`,t?`text-ink-2`:`text-ink`),children:[e.steps.map(e=>z(`cloud.stepName`,{title:e.title})).join(`, `),`:`,` `]}):null,z(zo[e.code]??`cloud.problem.invalid`,{detail:e.detail}),e.detail&&e.code!==`mcp`&&e.code!==`sandbox`?(0,H.jsxs)(`details`,{className:`mt-0.5`,children:[(0,H.jsx)(`summary`,{className:`cursor-pointer text-[0.75rem] text-ink-4 hover:text-ink-3`,children:z(`share.details`)}),(0,H.jsx)(`span`,{className:`mt-0.5 block break-words font-mono text-[0.6875rem] text-ink-4`,children:e.detail})]}):null]},n))})}function Vo({error:e}){let t=d(),n=e.reason===`space_limit`,r=c({queryKey:[`cloud-spaces`],queryFn:()=>u.get(`/api/studio/cloud/spaces`),enabled:n,retry:!1}),i=B({mutationFn:()=>u.post(`/api/studio/cloud/replace`),onSettled:()=>Promise.all([t.invalidateQueries({queryKey:[`cloud`]}),t.invalidateQueries({queryKey:[`cloud-spaces`]}),t.invalidateQueries({queryKey:[`wizards`]})])});if(!n)return(0,H.jsxs)(`p`,{children:[e.message,` `,e.reason===`signed_out`?(0,H.jsx)(a,{to:`/settings/account`,className:`font-medium underline underline-offset-2`,children:z(`local.toAccount`)}):null,e.again?(0,H.jsx)(`span`,{className:`text-ink-3`,children:z(`cloud.again`,{when:Fo().format(new Date(e.again))})}):null]});let o=(r.data?.spaces??[]).map(e=>e.name);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`p`,{children:e.message}),(0,H.jsx)(`p`,{className:`text-ink-2`,children:z(`cloud.spaceLimit`)}),o.length?(0,H.jsx)(`ul`,{className:`list-disc pl-5`,children:o.map((e,t)=>(0,H.jsx)(`li`,{children:e},t))}):null,(0,H.jsx)(`div`,{children:(0,H.jsx)(L,{variant:`secondary`,size:`sm`,busy:i.isPending,onClick:()=>window.confirm(z(`cloud.replaceConfirm`))&&i.mutate(),children:z(`cloud.replace`)})}),i.error?(0,H.jsx)(`p`,{className:`text-rose`,children:i.error.message}):null]})}function Ho({wizard:e,where:t,me:n,cloud:r}){let i=d(),a=B({mutationFn:()=>u.post(`/api/studio/wizards/${e.id}/cloud`),onSuccess:t=>{i.setQueryData([`cloud`,e.id],t),i.invalidateQueries({queryKey:[`wizards`]})}}),o=`flex items-start gap-2 text-[0.875rem] text-ink-2`;switch(t.kind){case`draft`:return null;case`unknown`:return(0,H.jsx)(ve,{className:`size-4 text-ink-4`});case`here`:return(0,H.jsxs)(`p`,{className:o,children:[(0,H.jsx)(we,{className:`mt-0.5 size-4 shrink-0 text-ink-3`}),` `,z(`where.hereHint`)]});case`live`:return(0,H.jsxs)(`p`,{className:o,title:r?.copy?z(`cloud.sent`,{v:r.copy.version,when:new Intl.DateTimeFormat(ge,{dateStyle:`short`,timeStyle:`short`}).format(new Date(r.copy.syncedAt))}):void 0,children:[t.cloud?(0,H.jsx)(nt,{className:`mt-0.5 size-4 shrink-0 text-moss`}):(0,H.jsx)(`span`,{className:`mt-[7px] size-1.5 shrink-0 rounded-full bg-moss`}),t.cloud?z(`where.liveAt`,{host:Pe(n.account?.cloudUrl??``),v:t.runs}):z(`editor.published`,{v:t.runs})]})}let s=r?.copy??null,c=r?.error??null,l=s&&!s.runnable?s.problems.filter(e=>e.blocking):[],f=e.published&&(!s||s.version<(e.publishedVersion??0)||c)&&c?.reason!==`space_limit`&&c?.reason!==`signed_out`;return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg bg-amber-tint px-3 py-2.5 text-[0.875rem]`,children:[c?(0,H.jsx)(Vo,{error:c}):t.kind===`missing`?(0,H.jsx)(`p`,{children:t.why}):null,c&&t.runs!==null?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:z(`cloud.keepsRunning`,{v:t.runs})}):null,l.length?(0,H.jsx)(Bo,{problems:l}):null,f?(0,H.jsx)(`div`,{children:(0,H.jsxs)(L,{variant:`secondary`,size:`sm`,busy:a.isPending,onClick:()=>a.mutate(),children:[(0,H.jsx)(it,{className:`size-3.5`}),z(s||c?`cloud.resend`:`cloud.send`)]})}):null,a.error?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:a.error.message}):null]})}function Uo({wizard:e,cloud:t}){let n=t?.copy??null,r=e.publishedVersion,i=n!==null&&r!==null&&n.version<r,a=!n||e.dirty||i,o=c({queryKey:[`cloud-check`,e.id,e.revision],queryFn:()=>u.get(`/api/studio/wizards/${e.id}/cloud/check`),enabled:t?.linked===!0&&a,retry:!1,staleTime:3e4}),s=!a&&n?n.problems.filter(e=>!e.blocking):[],l=a?o.data?.problems??[]:[];return s.length||l.length||a&&o.data?.documents?(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[s.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:z(`cloud.notes`)}),(0,H.jsx)(Bo,{problems:s,quiet:!0})]}):null,l.length?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-2`,children:z(l.some(e=>e.blocking)?`cloud.checkBlocking`:`cloud.check`)}),(0,H.jsx)(Bo,{problems:l,quiet:!0})]}):null,a&&o.data?.documents?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:z(`cloud.documents`)}):null]}):a&&o.error&&!t?.error?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:o.error.message}):null}function Wo({way:e}){let t=i(),n=me(!1);return(0,H.jsxs)(`div`,{className:k(`flex flex-col gap-3`,e?`rounded-lg bg-cobalt-tint px-3 py-3`:`border-border-soft border-t pt-5`),children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`div`,{className:`font-medium text-[0.875rem]`,children:z(`share.others`)}),(0,H.jsx)(`p`,{className:`mt-1 text-[0.8125rem] text-ink-2 leading-relaxed`,children:z(e===`website`?`teaser.website`:e===`qr`?`teaser.qr`:`share.othersHint`)})]}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,H.jsx)(L,{size:`sm`,busy:n.link.isPending,onClick:()=>n.link.mutate({}),children:z(`account.signIn`)}),(0,H.jsx)(L,{size:`sm`,variant:`secondary`,onClick:()=>t(`/settings/account`),children:z(`account.create`)})]}),(0,H.jsx)(E,{...n})]})}function Go({wizard:e,cloud:t}){let n=d(),[r,i]=(0,V.useState)(!1),[a,o]=(0,V.useState)(String(e.dailyRunLimit)),s=()=>Promise.all([n.invalidateQueries({queryKey:[`wizard`,e.id]}),n.invalidateQueries({queryKey:[`wizards`]})]),c=B({mutationFn:t=>u.patch(`/api/studio/wizards/${e.id}`,t),onSuccess:s}),l=B({mutationFn:()=>u.post(`/api/studio/wizards/${e.id}/rotate-link`),onSuccess:({cloud:t})=>(t&&n.setQueryData([`cloud`,e.id],{linked:!0,...t}),s())}),f=e.readOnly,p=c.error??l.error,m=ia(e.id,e.draft),h=m.data?.available&&m.data.reserve>0?Math.round(m.data.reserve*e.dailyRunLimit):null,g=r||!!p;return(0,H.jsxs)(`div`,{className:`border-border-soft border-t pt-4`,children:[(0,H.jsxs)(`button`,{type:`button`,"aria-expanded":g,onClick:()=>i(e=>!e),className:`flex w-full items-center justify-between gap-4 text-left text-[0.875rem]`,children:[(0,H.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(re,{className:k(`size-4 text-ink-3 transition`,g&&`rotate-90`)}),z(`share.settings`)]}),(0,H.jsxs)(`span`,{className:`text-[0.8125rem] text-ink-3 tabular-nums`,children:[z(e.shareEnabled?`share.on`:`share.off`),` ·`,` `,z(`share.perDay`,{n:e.dailyRunLimit})]})]}),g?(0,H.jsxs)(`div`,{className:`mt-4 flex flex-col gap-5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`span`,{className:`text-[0.875rem]`,children:z(`share.enabled`)}),(0,H.jsx)(P,{checked:e.shareEnabled,disabled:f,onChange:e=>c.mutate({shareEnabled:e})})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsx)(`span`,{className:`whitespace-nowrap text-[0.875rem]`,children:z(`share.limit`)}),(0,H.jsx)(`div`,{className:`w-24`,children:(0,H.jsx)(I,{inputMode:`numeric`,className:`text-right`,disabled:f,value:a,onChange:e=>o(e.target.value.replace(/\D/g,``)),onBlur:()=>{let t=Number(a);t>=1&&t!==e.dailyRunLimit&&c.mutate({dailyRunLimit:t})}})})]}),h!==null&&m.data?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3 tabular-nums`,children:z(`estimate.share`,{run:Math.round(m.data.credits).toLocaleString(),day:h.toLocaleString()})}):null,(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3`,children:z(t?.copy?`share.rotateCloud`:`share.rotateHint`)}),(0,H.jsxs)(L,{variant:`ghost`,size:`sm`,busy:l.isPending,disabled:f,onClick:()=>l.mutate(),children:[(0,H.jsx)(te,{className:`size-3.5`}),` `,z(`share.rotate`)]})]}),p?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:p.message}):null]}):null,f?(0,H.jsx)(`p`,{className:`mt-3 text-[0.8125rem] text-ink-3`,children:z(`share.readOnly`)}):null]})}function Ko({wizard:e,open:t,onClose:n,publish:r}){let i=be(),a=i.data?.mode===`local`,o=a&&!!i.data?.account,s=ye(e.id,t&&o),l=i.data?Me(e,i.data,o?s.data:null):{kind:`unknown`},d=Oe(l),f=i.data?.mode===`managed`&&e.published,p=c({queryKey:[`wizard-code`,e.id,e.shareToken],queryFn:()=>u.get(`/api/studio/wizards/${e.id}/code`),enabled:t&&f}),m=!e.published||e.dirty&&!e.readOnly,[h,g]=(0,V.useState)(null);return(0,H.jsx)(A,{open:t,onClose:n,title:z(`share.title`),children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[m?(0,H.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-lg bg-amber-tint px-3 py-2.5`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,H.jsx)(`p`,{className:`text-[0.875rem]`,children:z(e.published?`share.unpublished`:`share.publishFirst`)}),r?(0,H.jsx)(L,{size:`sm`,busy:r.busy,disabled:r.disabled,onClick:r.run,children:z(`editor.publish`)}):null]}),o&&!e.published?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:z(`cloud.onPublish`)}):null]}):null,i.data&&e.published?(0,H.jsx)(Ho,{wizard:e,where:l,me:i.data,cloud:s.data}):null,s.isError?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-rose`,children:s.error.message}):null,d?(0,H.jsx)(Ro,{url:d,code:f?p.data?.code:s.data?.copy?.code,title:e.draft.title}):null,a&&!o&&e.published?(0,H.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(I,{readOnly:!0,value:Ie(e),onFocus:e=>e.target.select(),className:`font-mono text-[0.8125rem] text-ink-3`}),(0,H.jsxs)(L,{variant:`secondary`,onClick:()=>et(Ie(e)),children:[(0,H.jsx)(fe,{className:`size-4`}),` `,z(`share.open`)]})]}),Fe.account?(0,H.jsx)(`div`,{className:`-ml-3 flex flex-wrap gap-1`,children:[`website`,`qr`].map(e=>(0,H.jsxs)(`button`,{type:`button`,"aria-pressed":h===e,className:Lo(h===e),onClick:()=>g(t=>t===e?null:e),children:[e===`website`?(0,H.jsx)(ot,{className:`size-3.5`}):(0,H.jsx)(vt,{className:`size-3.5`}),z(e===`website`?`share.website`:`share.qr`),(0,H.jsx)(Te,{className:`size-3 text-cobalt`})]},e))}):null]}):null,o?(0,H.jsx)(Uo,{wizard:e,cloud:s.data}):null,a&&!o&&Fe.account?(0,H.jsx)(Wo,{way:h}):null,(0,H.jsx)(Go,{wizard:e,cloud:o?s.data:void 0}),o&&e.published?(0,H.jsxs)(`button`,{type:`button`,onClick:()=>et(Ie(e)),className:`inline-flex items-center gap-1.5 self-start text-[0.8125rem] text-ink-3 hover:text-ink`,children:[(0,H.jsx)(we,{className:`size-3.5`}),` `,z(`share.openHere`),(0,H.jsx)(fe,{className:`size-3`})]}):null]})})}var qo=[`title`,`description`,`avatar`,`intro`,`lists`,`connections`],Jo=(e,t)=>JSON.stringify(e)===JSON.stringify(t);function Yo(e,t,n){let r={...n};for(let n of qo)Jo(t[n],e[n])||Object.assign(r,{[n]:t[n]});let i=new Map(e.steps.map(e=>[e.id,e])),a=new Set(t.steps.map(e=>e.id)),o=n.steps.filter(e=>{let t=i.get(e.id);return a.has(e.id)||!t||!Jo(t,e)});return t.steps.forEach((e,n)=>{let r=i.get(e.id);if(r&&Jo(r,e))return;let a=o.findIndex(t=>t.id===e.id);if(a!==-1){o[a]=e;return}let s=t.steps.slice(0,n).reverse().find(e=>o.some(t=>t.id===e.id));o.splice(s?o.findIndex(e=>e.id===s.id)+1:0,0,e)}),{...r,steps:o}}function Xo(e){let t=d(),n=(0,V.useMemo)(()=>[`wizard`,e],[e]),r=`/api/studio/wizards/${e}`,i=(0,V.useRef)(null),a=(0,V.useRef)(Promise.resolve()),s=(0,V.useRef)(null),c=(0,V.useRef)(null),l=(0,V.useRef)(!1),[p,m]=(0,V.useState)(!1),[h,g]=(0,V.useState)(0),[_,v]=(0,V.useState)(null),[ee,te]=(0,V.useState)(null),y=(0,V.useCallback)(()=>!!(i.current||l.current||s.current),[]),b=(0,V.useCallback)(async()=>{let e=await u.get(r);t.setQueryData(n,t=>t&&y()?{...e,draft:t.draft,title:t.title,revision:t.revision,dirty:!0}:e)},[t,n,r,y]),x=(0,V.useCallback)(()=>{a.current=a.current.then(async()=>{let e=s.current,i=t.getQueryData(n);if(e&&i){s.current=null,l.current=!0,m(!0);try{let a=await u.put(`${r}/draft`,{definition:e,baseRevision:i.revision});c.current=s.current?e:null,t.setQueryData(n,e=>e&&{...e,revision:a.revision,issues:a.issues})}catch(i){let a=Ee(i);if(a){s.current=null,c.current=null,te(a);let e=await u.get(r).catch(()=>null);e&&t.setQueryData(n,e);return}if(!(i instanceof f&&i.status===409)){s.current??=e,console.error(`[draft] save failed`,i);return}let o=await u.get(r),l=Yo(c.current??o.draft,s.current??e,o.draft);c.current=o.draft,s.current=l,t.setQueryData(n,{...o,draft:l,title:l.title,dirty:!0}),g(Date.now()),x()}finally{l.current=!1,m(!1)}}})},[t,n,r]),S=(0,V.useCallback)(r=>{e&&(y()||(c.current=t.getQueryData(n)?.draft??null),s.current=r,t.setQueryData(n,e=>e&&{...e,draft:r,title:r.title,dirty:!0}),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{i.current=null,x()},600))},[t,n,e,y,x]);return(0,V.useEffect)(()=>{if(!e)return;let r=new EventSource(o(`/api/studio/wizards/${e}/stream`));return r.addEventListener(`change`,e=>{let r=JSON.parse(e.data),i=t.getQueryData(n);r.kind===`draft`&&i&&r.revision<=i.revision||(b(),r.kind===`draft`&&r.source===`mcp`&&v({client:r.client??`MCP`,steps:r.touched,at:Date.now()}))}),r.addEventListener(`hello`,e=>{let{revision:r}=JSON.parse(e.data),i=t.getQueryData(n);i&&r!==i.revision&&b()}),()=>r.close()},[t,n,e,b]),(0,V.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>v(null),6e3);return()=>clearTimeout(e)},[_]),(0,V.useEffect)(()=>{if(!h)return;let e=setTimeout(()=>g(0),4e3);return()=>clearTimeout(e)},[h]),{save:S,saving:p,remote:_,merged:h>0,refused:ee}}function Zo({remote:e,merged:t}){return e?(0,H.jsxs)(F,{tone:`ember`,children:[(0,H.jsx)(Ae,{className:`size-3`}),` `,z(`editor.changedVia`,{client:e.client})]}):t?(0,H.jsxs)(F,{children:[(0,H.jsx)(ft,{className:`size-3`}),` `,z(`editor.merged`)]}):null}var Qo=[...He,`image`,`video`],$o={chat:`editor.chat`,step:`editor.step`,files:`editor.files`,runs:`editor.runs`},es=`wizards.editor.pane`,ts=420,ns=340,rs=()=>Math.max(ns,window.innerWidth-480);function is(){try{let e=Number(localStorage.getItem(es));return e?Math.min(Math.max(e,ns),rs()):ts}catch{return ts}}function as(){let[e,t]=(0,V.useState)(is),n=(0,V.useCallback)(e=>{let n=Math.round(Math.min(Math.max(e,ns),rs()));t(n);try{localStorage.setItem(es,String(n))}catch{}},[]);return{width:e,onPointerDown:t=>{t.preventDefault();let r=t.clientX,i=e,a=e=>n(i+r-e.clientX),o=()=>{window.removeEventListener(`pointermove`,a),window.removeEventListener(`pointerup`,o),document.body.style.removeProperty(`cursor`),document.body.style.removeProperty(`user-select`)};document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,window.addEventListener(`pointermove`,a),window.addEventListener(`pointerup`,o)},onKeyDown:t=>{let r=t.shiftKey?64:16;t.key===`ArrowLeft`?(t.preventDefault(),n(e+r)):t.key===`ArrowRight`&&(t.preventDefault(),n(e-r))},reset:()=>n(ts)}}var os=`wizards.editor.sheet`,ss=55,cs=76,ls=96,us=6;function ds(){try{let e=localStorage.getItem(os),t=e===null?NaN:Number(e);return Number.isFinite(t)?Math.min(Math.max(t,0),100):ss}catch{return ss}}function fs(){let[e,t]=(0,V.useState)(ds),[n,r]=(0,V.useState)(!1),i=(0,V.useRef)(null),a=(0,V.useRef)(e||ss),o=(0,V.useCallback)((e,n=!0)=>{let r=Math.round(Math.min(Math.max(e,0),100)*10)/10;r>0&&n&&(a.current=r),t(r);try{localStorage.setItem(os,String(r))}catch{}},[]),s=e===0,c=()=>o(s?a.current:0);return{ref:i,percent:e,height:`clamp(${cs}px, ${e}%, calc(100% - ${ls}px))`,folded:s,dragging:n,unfold:()=>{s&&o(a.current)},onPointerDown:t=>{let n=i.current,a=n?.parentElement;if(!(n&&a)||t.button!==0)return;t.preventDefault();let s=t.clientY,l=n.getBoundingClientRect().height,u=a.getBoundingClientRect().height,d=!1,f=e,p=e=>{if(!d&&Math.abs(e.clientY-s)<us)return;d||(d=!0,r(!0));let t=Math.min(l+s-e.clientY,u-ls);f=t<92?0:t/u*100,o(f,!1)},m=e=>{window.removeEventListener(`pointermove`,p),window.removeEventListener(`pointerup`,m),window.removeEventListener(`pointercancel`,m),document.body.style.removeProperty(`cursor`),document.body.style.removeProperty(`user-select`),r(!1),d?o(f):e.type===`pointerup`&&c()};document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`,window.addEventListener(`pointermove`,p),window.addEventListener(`pointerup`,m),window.addEventListener(`pointercancel`,m)},onKeyDown:t=>{let n=t.shiftKey?25:10;t.key===`ArrowUp`?(t.preventDefault(),o(e+n)):t.key===`ArrowDown`?(t.preventDefault(),o(e-n<15?0:e-n)):(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),c())}}}function ps(){let{id:e}=l(),t=i(),n=d(),a=be(),[s,f]=r(),p=c({queryKey:[`wizard`,e],queryFn:()=>u.get(`/api/studio/wizards/${e}`),refetchOnWindowFocus:!1}),[m,g]=(0,V.useState)(null),[_,te]=(0,V.useState)(`chat`),y=as(),b=fs(),[x,S]=(0,V.useState)(!1),[C,w]=(0,V.useState)(null),[ne,re]=(0,V.useState)(null),ie=(0,V.useCallback)(e=>re(e&&e.status!==`done`?e.step?.id??null:null),[]),{save:le,saving:ue,remote:de,merged:T,refused:fe}=Xo(e),pe=Ce(),E=oe(p.data,(t,r)=>{n.setQueryData([`wizard`,e],e=>e&&{...e,draft:t,revision:r,title:t.title,blank:!1})}),me=(0,V.useRef)(!1);(0,V.useEffect)(()=>{let e=s.get(`prompt`);e&&p.data&&!me.current&&(me.current=!0,f({},{replace:!0}),E.send(e))},[s,p.data,E,f]);let he=c({queryKey:[`wizard-models`,e,p.data?.revision],queryFn:()=>u.get(`/api/studio/wizards/${e}/models`),enabled:!!p.data}).data?.missing??[],D=a.data?.mode===`local`&&!!a.data.account,ge=ye(e??``,!!e&&D),_e=he.some(e=>e.blocking),O=B({mutationFn:()=>u.post(`/api/studio/wizards/${e}/test-runs`),onSuccess:({runId:e})=>w(e)}),A=B({mutationFn:()=>u.post(`/api/studio/wizards/${e}/publish`),onSuccess:async({cloud:t})=>{t&&n.setQueryData([`cloud`,e],{linked:!0,...t}),await Promise.all([n.invalidateQueries({queryKey:[`wizard`,e]}),n.invalidateQueries({queryKey:[`cloud`,e]}),n.invalidateQueries({queryKey:[`wizards`]})]),S(!0)}}),j=(0,V.useMemo)(()=>new Set((p.data?.issues??[]).map(e=>e.stepId).filter(Boolean)),[p.data?.issues]);if(p.isLoading||!a.data)return(0,H.jsx)(`div`,{className:`flex min-h-dvh items-center justify-center text-ink-4`,children:(0,H.jsx)(ve,{})});if(!p.data)return(0,H.jsx)(`div`,{className:`p-10 text-center text-ink-3`,children:z(`run.notFound`)});let M=p.data,P=M.draft,I=E.phase!==`idle`&&M.blank,R=M.issues.length>0,xe=pe.data?.find(e=>e.id===M.projectId),we=xe?xe.origin===`local`:a.data.limits.build||pe.isLoading,Te=M.readOnly?z(we?`readonly.wizard`:`readonly.server`):null,Ee=a.data.mode===`local`&&Fe.account&&he.some(e=>Qo.includes(e.cls))?a.data.account?a.data.models?.source===`account`?null:`use`:`connect`:null,Oe=fe??(A.error?A.error.message:null),ke=e=>{g(e),e&&(te(`step`),b.unfold())};return(0,H.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[Te?(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-border-soft border-b bg-paper-2 px-4 py-2 text-[0.8125rem] text-ink-2 sm:px-6`,children:[(0,H.jsx)(ae,{className:`size-4 shrink-0 text-ink-3`}),(0,H.jsx)(`p`,{className:`min-w-0 flex-1`,children:Te})]}):null,Oe?(0,H.jsx)(`div`,{className:`shrink-0 bg-rose-tint px-4 py-2 text-[0.8125rem] text-rose sm:px-6`,children:Oe}):null,(0,H.jsxs)(`header`,{className:`flex h-16 shrink-0 items-center gap-2 px-3 sm:px-4`,children:[(0,H.jsx)(N,{label:`Zurück`,onClick:()=>t(`/`),children:(0,H.jsx)(ee,{className:`size-5`})}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>ke(`__wizard`),className:`min-w-0 truncate rounded-md px-2 py-1 text-left hover:bg-accent`,children:(0,H.jsx)(`span`,{className:`font-display font-semibold text-[1.0625rem] tracking-tight`,children:P.title})}),(0,H.jsx)(`span`,{className:`hidden sm:inline-flex`,children:M.published?M.dirty?(0,H.jsx)(F,{tone:`warn`,children:z(`editor.unpublishedChanges`)}):(0,H.jsx)(De,{where:Me(M,a.data,D?ge.data:null),me:a.data,version:M.publishedVersion}):(0,H.jsx)(F,{children:z(`editor.notPublished`)})}),ue?(0,H.jsx)(ve,{className:`size-4 text-ink-4`}):null,(0,H.jsx)(`span`,{className:`hidden md:inline-flex`,children:(0,H.jsx)(Zo,{remote:de,merged:T})}),(0,H.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,H.jsx)(`a`,{href:o(`/api/studio/wizards/${M.id}/export`),download:!0,"aria-label":z(`editor.export`),title:z(`editor.export`),className:`hidden size-9 shrink-0 items-center justify-center rounded-full text-ink-3 transition hover:bg-accent hover:text-ink sm:inline-flex`,children:(0,H.jsx)(Se,{className:`size-4`})}),(0,H.jsxs)(L,{variant:`secondary`,size:`sm`,disabled:R||I||_e,busy:O.isPending,onClick:()=>O.mutate(),children:[(0,H.jsx)(gt,{className:`size-3.5`}),` `,z(`editor.test`)]}),M.published&&(!M.dirty||M.readOnly)?(0,H.jsxs)(L,{size:`sm`,onClick:()=>S(!0),children:[(0,H.jsx)(h,{className:`size-3.5`}),` `,z(`editor.share`)]}):M.readOnly?null:(0,H.jsxs)(H.Fragment,{children:[D?(0,H.jsx)(N,{label:z(`editor.share`),className:`max-sm:hidden`,onClick:()=>S(!0),children:(0,H.jsx)(h,{className:`size-4`})}):null,(0,H.jsx)(L,{size:`sm`,disabled:R||I,busy:A.isPending,onClick:()=>A.mutate(),children:z(`editor.publish`)})]}),(0,H.jsx)(`span`,{className:`ml-2 hidden md:inline-flex`,children:(0,H.jsx)(Le,{me:a.data})}),(0,H.jsx)(`span`,{className:`hidden sm:inline-flex`,children:(0,H.jsx)(Ne,{me:a.data})})]})]}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col lg:flex-row`,children:[(0,H.jsxs)(`section`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:[R&&!I?(0,H.jsxs)(`div`,{className:`absolute top-3 right-3 left-3 z-10 mx-auto max-w-xl animate-rise rounded-xl bg-card p-4 shadow-elevated ring-1 ring-rose/30`,children:[(0,H.jsx)(`p`,{className:`text-[0.875rem]`,children:z(`editor.issues`)}),(0,H.jsx)(`ul`,{className:`mt-2 list-disc pl-5 text-[0.8125rem] text-ink-2`,children:M.issues.slice(0,4).map((e,t)=>(0,H.jsx)(`li`,{children:e.message},t))}),M.readOnly?null:(0,H.jsx)(L,{size:`sm`,variant:`quiet`,className:`mt-3`,disabled:E.phase!==`idle`,onClick:()=>{te(`chat`),E.send(`Bitte behebe diese Probleme im Wizard:\n${M.issues.map(e=>`- ${e.message}`).join(`
|
|
2
|
-
`)}`)},children:z(`editor.fixWithChat`)})]}):null,!R&&!I&&he.length?(0,H.jsxs)(`div`,{className:k(`absolute top-3 right-3 left-3 z-10 mx-auto max-w-xl animate-rise rounded-xl bg-card p-4 shadow-elevated ring-1`,_e?`ring-rose/30`:`ring-amber/30`),children:[(0,H.jsx)(`p`,{className:`text-[0.875rem]`,children:z(_e?`editor.models.blocking`:`editor.models.optional`)}),(0,H.jsx)(`ul`,{className:`mt-2 list-disc pl-5 text-[0.8125rem] text-ink-2`,children:he.map(e=>(0,H.jsxs)(`li`,{children:[(0,H.jsx)(`span`,{className:`text-ink`,children:z(`class.${e.cls}`)}),` (`,e.steps.map(e=>`„${e.title}“`).join(`, `),`): `,e.problem]},e.cls))}),(0,H.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-x-3 gap-y-2`,children:[(0,H.jsx)(L,{size:`sm`,variant:`quiet`,onClick:()=>t(`/settings/models`),children:z(`editor.models.settings`)}),Ee===`connect`?(0,H.jsxs)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:[z(`teaser.models`),` `,(0,H.jsx)(`button`,{type:`button`,className:`font-medium text-ink underline underline-offset-2`,onClick:()=>t(`/settings/account`),children:z(`teaser.connect`)})]}):Ee===`use`?(0,H.jsx)(`p`,{className:`text-[0.8125rem] text-ink-3`,children:z(`teaser.modelsLinked`)}):null]})]}):null,I?(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-[0.875rem] text-ink-3`,children:(0,H.jsx)(se,{chat:E,spinner:`size-4 text-ember`})}):(0,H.jsx)(wa,{def:P,selected:m,onSelect:ke,issueSteps:j,activeStep:C?ne:null,pulse:de?.steps,wizardId:M.id})]}),(0,H.jsxs)(`aside`,{ref:b.ref,className:k(`relative flex h-(--sheet) min-h-0 w-full shrink-0 flex-col rounded-t-3xl bg-card shadow-[0_0_0_1px_var(--border-soft)] lg:h-auto lg:w-(--pane) lg:rounded-tr-none`,!b.dragging&&`max-lg:motion-safe:transition-[height] max-lg:motion-safe:duration-200`),style:{"--pane":`${y.width}px`,"--sheet":b.height},children:[(0,H.jsx)(`div`,{role:`separator`,"aria-orientation":`horizontal`,"aria-label":z(`editor.resizeSheet`),"aria-valuenow":b.percent,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0,title:z(`editor.resizeSheet`),onPointerDown:b.onPointerDown,onKeyDown:b.onKeyDown,className:`group before:-top-4 relative z-10 flex h-7 shrink-0 cursor-row-resize touch-none select-none items-center justify-center outline-none before:absolute before:inset-x-0 before:h-4 lg:hidden`,children:(0,H.jsx)(`span`,{className:`h-1.5 w-10 rounded-full bg-ink-4/40 transition-all group-hover:bg-ember/70 group-focus-visible:bg-ember group-active:w-14 group-active:bg-ember`})}),(0,H.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":z(`editor.resize`),"aria-valuenow":y.width,tabIndex:0,title:z(`editor.resize`),onPointerDown:y.onPointerDown,onKeyDown:y.onKeyDown,onDoubleClick:y.reset,className:`group -left-1.5 absolute inset-y-0 z-10 hidden w-5 cursor-col-resize outline-none lg:block`,children:(0,H.jsx)(`span`,{className:`-translate-y-1/2 absolute top-1/2 left-[9px] h-12 w-1.5 rounded-full bg-ink-4/40 transition group-hover:bg-ember/70 group-focus-visible:bg-ember group-active:h-16 group-active:bg-ember`})}),(0,H.jsx)(`nav`,{className:`flex shrink-0 gap-1 px-3 lg:pt-3`,children:[`chat`,`step`,`files`,`runs`].map(e=>(0,H.jsx)(`button`,{type:`button`,onClick:()=>{te(e),b.unfold()},className:k(`h-9 rounded-full px-4 font-medium text-[0.8125rem] transition`,_===e?`bg-paper-2 text-ink`:`text-ink-3 hover:text-ink`),children:z($o[e])},e))}),(0,H.jsx)(`div`,{className:k(`min-h-0 flex-1 overflow-y-auto`,b.folded&&`max-lg:hidden`),children:_===`chat`?(0,H.jsx)(ce,{chat:E,avatar:P.avatar,closed:Te??void 0}):_===`step`?(0,H.jsx)(za,{def:P,selected:m,update:le,onSelect:ke,issues:M.issues,mcpServers:M.mcpServers,files:M.files,wizardId:M.id,readOnly:M.readOnly}):_===`files`?(0,H.jsx)(Ct,{wizardId:M.id,files:M.files,readOnly:M.readOnly}):(0,H.jsx)(Ha,{wizardId:M.id,onOpen:w})})]})]}),C?(0,H.jsx)(`div`,{className:`fixed inset-0 z-50 flex justify-end bg-[oklch(20%_0.01_60/0.22)] backdrop-blur-[1px]`,onClick:()=>w(null),children:(0,H.jsxs)(`div`,{className:`flex h-full w-full max-w-[680px] animate-rise flex-col bg-background shadow-overlay`,onClick:e=>e.stopPropagation(),children:[(0,H.jsxs)(`div`,{className:`flex h-14 shrink-0 items-center justify-between px-4`,children:[(0,H.jsx)(F,{children:`Test`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,H.jsx)(L,{variant:`ghost`,size:`sm`,busy:O.isPending,disabled:R,onClick:()=>O.mutate(),children:z(`editor.restart`)}),(0,H.jsx)(N,{label:z(`editor.close`),onClick:()=>w(null),children:(0,H.jsx)(je,{className:`size-5`})})]})]}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,H.jsx)(v,{runId:C,compact:!0,onRestart:()=>O.mutate(),onView:ie},C)})]})}):null,(0,H.jsx)(Ko,{wizard:M,open:x,onClose:()=>S(!1),publish:M.readOnly?void 0:{run:()=>A.mutate(),busy:A.isPending,disabled:R||I}})]})}export{ps as EditorPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{n as r,nt as i}from"./api-RJbFM_oc.js";import{t as a}from"./check-CUpby_J9.js";import{c as o,s,t as c,y as l}from"./ui-HV_XbHjw.js";import{U as u}from"./index-LmRYEd-y.js";import{a as d}from"./definition-Dp0DR2D6.js";var f=e(t(),1),p=e(n(),1);function m(e){let t=window.engentyDesktop;t?t.open(e):window.open(e,`_blank`,`noopener`)}var h={gateway:`Vercel AI Gateway`,anthropic:`Anthropic`,openai:`OpenAI`};function g({models:e}){let t=i(),[n,m]=(0,f.useState)({}),[g,_]=(0,f.useState)(e.bindings),[v,y]=(0,f.useState)(e.ollamaUrl),[b,x]=(0,f.useState)(!1),S=u({mutationFn:()=>r.put(`/api/studio/local/models`,{keys:n,bindings:g,ollamaUrl:v}),onSuccess:async()=>{m({}),x(!0),setTimeout(()=>x(!1),1500),await t.invalidateQueries({queryKey:[`me`]})}});return(0,p.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(o,{children:l(`local.keys`)}),(0,p.jsx)(`p`,{className:`mb-3 text-[0.8125rem] text-ink-3`,children:l(`local.keysHint`)}),(0,p.jsx)(`div`,{className:`flex flex-col gap-2`,children:Object.keys(h).map(i=>(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,p.jsx)(`span`,{className:`w-40 text-[0.875rem] text-ink-2`,children:h[i]}),(0,p.jsx)(s,{type:`password`,autoComplete:`off`,className:`min-w-0 flex-1 font-mono text-[0.8125rem]`,placeholder:e.keys[i]?l(`local.keySet`):l(`local.keyEmpty`),value:n[i]??``,onChange:e=>m({...n,[i]:e.target.value})}),e.keys[i]?(0,p.jsx)(c,{variant:`ghost`,size:`sm`,onClick:()=>{m({...n,[i]:``}),r.put(`/api/studio/local/models`,{keys:{[i]:``}}).then(()=>t.invalidateQueries({queryKey:[`me`]}))},children:l(`local.keyRemove`)}):null]},i))})]}),(0,p.jsxs)(`div`,{children:[(0,p.jsx)(o,{children:l(`local.classes`)}),(0,p.jsx)(`p`,{className:`mb-3 text-[0.8125rem] text-ink-3`,children:l(`local.classesHint`)}),(0,p.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[d.map(e=>(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,p.jsx)(`span`,{className:`w-40 text-[0.875rem] text-ink-2`,children:l(`class.${e}`)}),(0,p.jsx)(s,{className:`min-w-0 flex-1 font-mono text-[0.8125rem]`,value:g[e]??``,onChange:t=>_({...g,[e]:t.target.value})})]},e)),(0,p.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,p.jsx)(`span`,{className:`w-40 text-[0.875rem] text-ink-2`,children:`Ollama`}),(0,p.jsx)(s,{className:`min-w-0 flex-1 font-mono text-[0.8125rem]`,value:v,onChange:e=>y(e.target.value)})]})]})]}),(0,p.jsx)(`div`,{children:(0,p.jsxs)(c,{variant:`secondary`,busy:S.isPending,onClick:()=>S.mutate(),children:[b?(0,p.jsx)(a,{className:`size-4`}):null,l(b?`local.saved`:`local.save`)]})})]})}export{m as n,g as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FlowPreview-De3ZyIer.js","assets/jsx-runtime-D3jfb0Ew.js","assets/ui-HV_XbHjw.js","assets/esm-CgnVZhIQ.js","assets/index-LmRYEd-y.js","assets/api-RJbFM_oc.js","assets/preload-helper-CNEI7N0N.js","assets/createLucideIcon-q3MZMmnf.js","assets/engenty-Cm8yZLON.js","assets/index-9maLuK9R.css"])))=>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,F as i,I as a,K as o,M as s,N as c,O as l,d as u,g as d,j as f,n as p,nt as m,w as h}from"./api-RJbFM_oc.js";import{t as g}from"./preload-helper-CNEI7N0N.js";import{t as _}from"./createLucideIcon-q3MZMmnf.js";import{t as v}from"./arrow-right-6FyN3e7D.js";import{o as y,s as b,t as ee}from"./meta-CchZXdWH.js";import{t as x}from"./check-CUpby_J9.js";import{t as S}from"./chevron-down-DymW-2BP.js";import{n as C,r as w,t as T}from"./volume-2-Bp2tyaKE.js";import{n as te,r as E}from"./upload-DNRENWzQ.js";import{n as ne,t as re}from"./wand-sparkles-Clj3VRB5.js";import{t as D}from"./image-BShbErBm.js";import{n as ie,t as O}from"./video-9fDPRPCv.js";import{t as ae}from"./pen-line-NK46C_nG.js";import{n as k,t as oe}from"./table-2-BdDuBcF2.js";import{l as se,u as ce}from"./engenty-Cm8yZLON.js";import{_ as A,d as j,h as M,i as le,m as ue,n as de,r as fe,t as N,y as P}from"./ui-HV_XbHjw.js";import{A as pe,B as F,E as me,F as I,N as he,U as L,V as ge,j as _e,k as R,w as ve,z as ye}from"./index-LmRYEd-y.js";import{t as be}from"./ImportWizard-CTGmBDI8.js";var xe=class extends c{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:o,isRefetching:s,isError:c,isRefetchError:l}=r,u=n.fetchMeta?.fetchMore?.direction,d=c&&u===`forward`,f=o&&u===`forward`,p=c&&u===`backward`,m=o&&u===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:i(t,n.data),hasPreviousPage:a(t,n.data),isFetchNextPageError:d,isFetchingNextPage:f,isFetchPreviousPageError:p,isFetchingPreviousPage:m,isRefetchError:l&&!d&&!p,isRefetching:s&&!f&&!m}}};function Se(e,t){return s(e,xe,t)}var z={name:`audio-lines`,size:24,node:[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]};z.node;var Ce=_(z),B={name:`chart-column`,size:24,node:[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M18 17V9`,key:`2bz60n`}],[`path`,{d:`M13 17V5`,key:`1frdt8`}],[`path`,{d:`M8 17v-3`,key:`17ska0`}]],aliases:[`bar-chart-3`]};B.node;var V=_(B),we={name:`circle-dollar-sign`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8`,key:`1h4pet`}],[`path`,{d:`M12 18V6`,key:`zqpxq5`}]]};we.node;var Te=_(we),Ee={name:`circle-euro`,size:24,node:[[`path`,{d:`M15 9.4a4 4 0 1 0 0 5.2`,key:`1makmb`}],[`path`,{d:`M7 12h5`,key:`gblrwe`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]};Ee.node;var De=_(Ee),Oe={name:`mouse-pointer-click`,size:24,node:[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]};Oe.node;var ke=_(Oe),Ae={name:`scan-text`,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 8h8`,key:`1jbsf9`}],[`path`,{d:`M7 12h10`,key:`b7w52i`}],[`path`,{d:`M7 16h6`,key:`1vyc9m`}]]};Ae.node;var je=_(Ae),Me={name:`terminal`,size:24,node:[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]};Me.node;var Ne=_(Me),H=e(t(),1),U={text:{de:`Text`,en:`Text`},document:{de:`Dokument (PDF, Word)`,en:`Document (PDF, Word)`},table:{de:`Tabelle`,en:`Table`},image:{de:`Bild`,en:`Image`},video:{de:`Video`,en:`Video`},audio:{de:`Audio`,en:`Audio`},dashboard:{de:`Dashboard`,en:`Dashboard`}},Pe={any:{de:`Jede Branche`,en:`Any industry`},trades:{de:`Handwerk`,en:`Trades`},gastronomy:{de:`Gastronomie`,en:`Food service`},hospitality:{de:`Hotel & Tourismus`,en:`Hotels & tourism`},realEstate:{de:`Immobilien`,en:`Real estate`},retail:{de:`Handel`,en:`Retail`},health:{de:`Gesundheit`,en:`Health`},professional:{de:`Kanzlei & Beratung`,en:`Professional services`},agency:{de:`Agentur & Marketing`,en:`Agency & marketing`},events:{de:`Veranstaltungen`,en:`Events`},publicSector:{de:`Vereine & Öffentliches`,en:`Associations & public sector`}},Fe={marketing:{de:`Marketing & Social Media`,en:`Marketing & social media`},sales:{de:`Angebote & Verkauf`,en:`Offers & sales`},accounting:{de:`Buchhaltung & Belege`,en:`Accounting & receipts`},service:{de:`Kundenservice`,en:`Customer service`},research:{de:`Recherche & Analyse`,en:`Research & analysis`},hr:{de:`Personal & Bewerbungen`,en:`HR & applications`},operations:{de:`Planung & Abläufe`,en:`Planning & operations`},website:{de:`Helfer für die Website`,en:`Website helpers`}},W={text:{de:`Text schreiben`,en:`Writes text`},web:{de:`Websuche`,en:`Web search`},browser:{de:`Browser bedienen`,en:`Drives a browser`},documents:{de:`Dokumente & Fotos lesen`,en:`Reads documents & photos`},image:{de:`Bilder erzeugen`,en:`Makes images`},video:{de:`Videos erzeugen`,en:`Makes video`},speech:{de:`Sprachausgabe`,en:`Speech output`},listening:{de:`Sprachnotizen verstehen`,en:`Understands voice notes`},code:{de:`Code ausführen`,en:`Runs code`},connectors:{de:`Verbundene Konten & Systeme`,en:`Connected accounts & systems`}},Ie={low:{de:`günstig`,en:`low cost`},medium:{de:`mittel`,en:`medium cost`},high:{de:`teuer`,en:`high cost`}},G=e=>Object.keys(e);G(U),G(Pe),G(Fe),G(W);var K=e(n(),1),Le=(0,H.lazy)(()=>g(()=>import(`./FlowPreview-De3ZyIer.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]))),Re={useCase:``,industry:``,format:``,capability:``},q=(e,t)=>e[t]?.[A]??t;function ze(e){if(e<1)return 1;let t=10**Math.floor(Math.log10(e));return Math.round(e/t)*t}function Be(e){return e.credits?P(`market.credits`,{n:ze(e.credits.credits)}):Ie[e.costTier][A]}var Ve={text:pe,document:I,table:oe,image:D,video:O,audio:Ce,dashboard:V};function J({format:e,className:t}){let n=Ve[e],r=q(U,e);return(0,K.jsx)(`span`,{title:r,className:`inline-flex`,children:(0,K.jsx)(n,{className:t,"aria-label":r,role:`img`})})}var Y=[`low`,`medium`,`high`];function X({entry:e}){let t=Y.indexOf(e.costTier)+1,n=A===`de`?De:Te;return(0,K.jsxs)(`span`,{title:Be(e),className:`inline-flex items-center gap-1`,children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex shrink-0`,children:Y.slice(0,t).map((e,t)=>(0,K.jsx)(`span`,{className:M(`rounded-full bg-(--coin-bg,var(--color-card))`,t>0&&`-ml-1.5`),children:(0,K.jsx)(n,{className:`size-4`})},e))}),Ie[e.costTier][A]]})}function He({entry:e,onOpen:t}){return(0,K.jsxs)(de,{role:`button`,tabIndex:0,onClick:t,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())},className:M(`relative flex min-h-[124px] cursor-pointer flex-col gap-5 p-4 text-left transition sm:min-h-[136px] sm:p-5 hover:shadow-elevated focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus`,(!e.usable||e.missing.length>0)&&`opacity-60`),children:[(0,K.jsx)(`span`,{className:`-top-4 pointer-events-none absolute right-4`,children:(0,K.jsx)(u,{kind:e.avatar,size:68,interactive:!1})}),(0,K.jsxs)(`div`,{className:`min-w-0 pr-20`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 font-display font-semibold text-[0.9375rem]`,children:[e.title,e.starred?(0,K.jsx)(k,{className:`size-3.5 shrink-0 fill-amber text-amber`,"aria-label":P(`market.starred`)}):null]}),(0,K.jsx)(`div`,{className:`mt-0.5 text-[0.8125rem] text-ink-3 leading-snug`,children:e.pitch})]}),(0,K.jsx)(`div`,{className:`mt-auto flex flex-wrap items-center gap-x-3 gap-y-1.5 text-[0.75rem] text-ink-3`,children:e.usable&&e.missing.length?(0,K.jsx)(fe,{tone:`warn`,children:P(`market.missing`,{list:Ue(e.missing)})}):e.usable?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,K.jsx)(F,{className:`size-3.5`}),` `,P(`market.minutes`,{n:e.effort.minutes})]}),(0,K.jsx)(X,{entry:e}),(0,K.jsx)(`span`,{className:`ml-auto inline-flex items-center gap-1.5`,children:e.formats.map(e=>(0,K.jsx)(J,{format:e,className:`size-4`},e))})]}):(0,K.jsx)(fe,{tone:`warn`,children:P(`market.needsUpdate`)})})]})}function Z({title:e,children:t}){return(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`div`,{className:`mb-1.5 font-medium text-[0.75rem] text-ink-3 uppercase tracking-[0.06em]`,children:e}),t]})}var Ue=e=>e.map(e=>q(W,e)).join(`, `),We={text:ae,web:C,browser:ke,documents:je,image:D,video:O,speech:T,listening:ie,code:Ne,connectors:_e};function Ge(e){switch(e.type){case`page`:return he;case`agent`:return b;case`generate`:return e.asset===`image`?D:e.asset===`video`?O:e.asset===`voice`?T:e.asset===`dashboard`?V:I;case`widget`:return e.video?w:ge;case`review`:return ne;case`result`:return y}return re}function Ke(e){let t=new Set;for(let[n,r]of e.entries())for(let i of r.branches??[]){let r=i.to===`end`?e.length:e.findIndex(e=>e.id===i.to);for(let i=n+1;i<r;i++)t.add(e[i].id)}return t}function qe(e){let t=Ke(e);return e.map(e=>({id:e.id,title:e.title,icon:Ge(e),tone:ee[e.type]??`bg-paper-2 text-ink-2`,optional:t.has(e.id),branches:e.branches}))}function Q({title:e,children:t}){return(0,K.jsx)(`span`,{title:e,className:`inline-flex items-center gap-2 border-border border-l px-4 first:border-l-0 first:pl-0`,children:t})}function $({icon:e,children:t,more:n}){return(0,K.jsxs)(`div`,{className:`flex gap-2.5`,children:[(0,K.jsx)(`span`,{className:`mt-0.5 shrink-0`,children:e}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`div`,{className:`text-[0.875rem] text-ink leading-snug`,children:t}),n?(0,K.jsx)(`div`,{className:`text-[0.75rem] text-ink-3 leading-snug`,children:n}):null]})]})}function Je({className:e,children:t}){let n=(0,H.useRef)(null),[r,i]=(0,H.useState)({above:!1,below:!1});(0,H.useEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{let t=e.scrollTop>1,n=e.scrollTop+e.clientHeight<e.scrollHeight-1;i(e=>e.above===t&&e.below===n?e:{above:t,below:n})};t(),e.addEventListener(`scroll`,t,{passive:!0});let r=new ResizeObserver(t);return r.observe(e),e.firstElementChild&&r.observe(e.firstElementChild),()=>{e.removeEventListener(`scroll`,t),r.disconnect()}},[]);let a=`linear-gradient(to bottom, ${r.above?`transparent`:`black`} 0, black 28px, black calc(100% - 44px), ${r.below?`transparent`:`black`} 100%)`;return(0,K.jsx)(`div`,{ref:n,className:e,style:{maskImage:a,WebkitMaskImage:a},children:(0,K.jsx)(`div`,{children:t})})}function Ye({id:e,fallback:t,onClose:n,onUse:r,busy:i}){let a=m(),o=l(),s=f({queryKey:[`marketplace-entry`,e,A],queryFn:()=>p.get(`/api/studio/marketplace/${encodeURIComponent(e)}?lang=${A}`),enabled:!!e,retry:!1}),c=s.data??t,h=L({mutationFn:t=>{let n=`/api/studio/marketplace/${encodeURIComponent(e)}/star`;return t?p.put(n):p.del(n)},onSuccess:()=>Promise.all([a.invalidateQueries({queryKey:[`marketplace`]}),a.invalidateQueries({queryKey:[`marketplace-entry`,e]})])}),g=d()===`dark`,_=se[ce[c?.avatar||`round`]],v=g?`var(--card)`:`color-mix(in oklch, ${_??`var(--ink-4)`} 14%, var(--paper-2))`;return(0,K.jsx)(le,{open:!!e,onClose:n,wide:!0,bare:!0,children:c?(0,K.jsxs)(`div`,{className:`relative flex max-h-[calc(100dvh-48px)] flex-col rounded-2xl bg-card shadow-overlay max-sm:h-dvh max-sm:max-h-none max-sm:rounded-none`,children:[(0,K.jsx)(`button`,{type:`button`,"aria-label":P(`common.close`),onClick:n,className:`sm:-top-3.5 sm:-right-3.5 absolute top-3 right-3 z-20 flex size-9 items-center justify-center rounded-full bg-card text-ink-2 shadow-elevated ring-1 ring-border-soft transition hover:text-ink focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus`,children:(0,K.jsx)(R,{className:`size-4`})}),(0,K.jsxs)(`header`,{className:`relative shrink-0 border-border-soft border-b px-5 pt-5 pb-4 text-ink sm:rounded-t-2xl sm:px-7`,style:{background:v,"--coin-bg":v},children:[(0,K.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 overflow-hidden sm:rounded-t-2xl`,children:(0,K.jsx)(`span`,{className:M(`-top-28 -right-10 absolute size-80 rounded-full bg-white blur-3xl`,g?`opacity-[0.14]`:`opacity-80`)})}),(0,K.jsx)(`div`,{className:`-bottom-5 absolute right-9 z-10 max-sm:hidden`,children:(0,K.jsx)(u,{kind:c.avatar,size:104})}),(0,K.jsxs)(`div`,{className:`relative sm:pr-36`,children:[(0,K.jsx)(`h2`,{className:`font-display font-semibold text-[1.375rem] leading-tight tracking-tight max-sm:pr-10`,children:c.title}),(0,K.jsx)(`p`,{className:`mt-1 text-[0.875rem] text-ink-2 leading-snug`,children:s.data?.description||c.pitch})]}),c.usable?(0,K.jsxs)(`div`,{className:`-mx-5 sm:-mx-7 relative mt-3.5 flex flex-wrap items-center gap-y-2 border-border-soft border-t px-5 pt-3 font-medium text-[0.875rem] sm:px-7 sm:pr-40`,children:[(0,K.jsxs)(Q,{title:P(`market.duration`),children:[(0,K.jsx)(F,{className:`size-4 text-ink-3`}),P(`market.minutes`,{n:c.effort.minutes})]}),(0,K.jsx)(Q,{title:P(`market.cost`),children:(0,K.jsx)(X,{entry:c})}),(0,K.jsx)(Q,{title:P(`market.result`),children:c.formats.map(e=>(0,K.jsx)(J,{format:e,className:`size-4`},e))})]}):null]}),c.usable?(0,K.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-x-7 gap-y-6 px-5 pt-6 max-sm:overflow-y-auto max-sm:pb-4 sm:grid-cols-[230px_minmax(0,1fr)] sm:grid-rows-[minmax(0,1fr)] sm:px-7`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col gap-5 sm:min-h-0 sm:overflow-y-auto`,children:[(0,K.jsx)(Z,{title:P(`market.duration`),children:(0,K.jsx)($,{icon:(0,K.jsx)(F,{className:`size-4 text-moss`}),more:P(`market.durationHint`,{n:c.effort.fields}),children:P(`market.minutes`,{n:c.effort.minutes})})}),(0,K.jsx)(Z,{title:P(`market.cost`),children:(0,K.jsx)($,{icon:(0,K.jsx)(E,{className:`size-4 text-amber`}),more:c.credits?P(`market.creditsHint`):void 0,children:(0,K.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-2`,children:[(0,K.jsx)(X,{entry:c}),c.credits?(0,K.jsx)(`span`,{className:`text-ink-2`,children:P(`market.creditsRange`,{n:ze(c.credits.credits)})}):null]})})}),(0,K.jsx)(Z,{title:P(`market.result`),children:(0,K.jsx)(`div`,{className:`flex flex-col gap-2`,children:(s.data?.results??[]).map(e=>(0,K.jsx)($,{icon:(0,K.jsx)(J,{format:e.kind,className:`size-4 text-ember-strong`}),more:e.formats.map(e=>e.toUpperCase()).join(` · `),children:e.title},e.title))})}),(0,K.jsx)(Z,{title:P(`market.needs`),children:(0,K.jsx)(`ul`,{className:`flex flex-col gap-2`,children:c.capabilities.map(e=>{let t=We[e],n=c.missing.includes(e);return(0,K.jsxs)(`li`,{className:M(`flex items-center gap-2.5 text-[0.875rem]`,n?`text-ink-3`:`text-ink-2`),children:[(0,K.jsx)(t,{className:M(`size-4 shrink-0`,n?`text-rose`:`text-cobalt`)}),q(W,e),n?(0,K.jsx)(`span`,{className:`text-[0.75rem] text-rose`,children:P(`market.unavailable`)}):null]},e)})})})]}),(0,K.jsxs)(`div`,{className:`flex flex-col sm:min-h-0`,children:[(0,K.jsx)(`div`,{className:`mb-1.5 shrink-0 font-medium text-[0.75rem] text-ink-3 uppercase tracking-[0.06em]`,children:P(`market.steps`)}),(0,K.jsx)(Je,{className:`-mr-2 overscroll-contain pt-1 pr-2 pl-1 sm:min-h-0 sm:flex-1 sm:overflow-y-auto`,children:s.isLoading?(0,K.jsx)(j,{className:`size-5 text-ink-3`}):(0,K.jsx)(H.Suspense,{fallback:(0,K.jsx)(j,{className:`size-5 text-ink-3`}),children:(0,K.jsx)(Le,{steps:qe(s.data?.outline??[])})})})]})]}):(0,K.jsx)(`div`,{className:`flex-1 px-5 pt-6 sm:px-7`,children:(0,K.jsx)(`p`,{className:`rounded-lg bg-amber-tint p-3 text-[0.875rem] text-ink-2`,children:P(`market.needsUpdateHint`)})}),(0,K.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 px-5 pt-4 pb-5 max-sm:border-border-soft max-sm:border-t sm:px-7 sm:pb-6`,children:[(0,K.jsxs)(N,{variant:`ghost`,className:`mr-auto`,title:P(`market.starHint`),"aria-pressed":c.starred,busy:h.isPending,onClick:()=>h.mutate(!c.starred),children:[(0,K.jsx)(k,{className:M(`size-4`,c.starred&&`fill-amber text-amber`)}),(0,K.jsx)(`span`,{className:`max-sm:sr-only`,children:P(c.starred?`market.starred`:`market.star`)})]}),(0,K.jsx)(N,{variant:`secondary`,onClick:n,children:P(`common.close`)}),c.usable&&c.missing.length?(0,K.jsx)(N,{variant:`secondary`,onClick:()=>o(`/settings/models`),children:P(`editor.models.settings`)}):null,r?(0,K.jsx)(N,{disabled:!c.usable||c.missing.length>0,title:c.missing.length?P(`market.missingHint`,{list:Ue(c.missing)}):void 0,busy:i,onClick:()=>r(c),children:P(`market.use`)}):null]})]}):(0,K.jsx)(`div`,{className:`flex min-h-48 flex-col items-center justify-center gap-3 rounded-2xl bg-card p-8 text-[0.875rem] text-ink-2 shadow-overlay`,children:s.isLoading?(0,K.jsx)(j,{className:`size-6 text-ink-3`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`p`,{children:P(`market.notFound`)}),(0,K.jsx)(N,{variant:`secondary`,onClick:n,children:P(`common.close`)})]})})})}function Xe({name:e,value:t,options:n,onChange:r}){let[i,a]=(0,H.useState)(!1),o=(0,H.useRef)(null);(0,H.useEffect)(()=>{if(!i)return;let e=e=>{o.current?.contains(e.target)||a(!1)},t=e=>{e.key===`Escape`&&a(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[i]);let s=n.find(e=>e.value===t);return(0,K.jsxs)(`div`,{ref:o,className:`relative`,children:[(0,K.jsxs)(`div`,{className:M(`flex h-8 items-center rounded-full text-[0.8125rem] transition`,s?`bg-ember-tint text-ink`:`text-ink-2 hover:bg-paper-2 hover:text-ink`,i&&!s&&`bg-paper-2 text-ink`),children:[(0,K.jsx)(`button`,{type:`button`,"aria-haspopup":`listbox`,"aria-expanded":i,onClick:()=>a(!i),className:M(`flex h-full items-center gap-1.5 rounded-full pl-3 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-focus`,s?`pr-1`:`pr-2.5`),children:s?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(`span`,{className:`text-ink-3`,children:e}),(0,K.jsx)(`span`,{className:`font-medium`,children:s.label})]}):(0,K.jsxs)(K.Fragment,{children:[e,(0,K.jsx)(S,{className:M(`size-3.5 transition`,i&&`rotate-180`)})]})}),s?(0,K.jsx)(`button`,{type:`button`,"aria-label":`${e}: ${P(`market.reset`)}`,onClick:()=>r(``),className:`mr-1 flex size-6 items-center justify-center rounded-full text-ink-3 hover:bg-card hover:text-ink`,children:(0,K.jsx)(R,{className:`size-3.5`})}):null]}),i?(0,K.jsx)(`div`,{role:`listbox`,"aria-label":e,className:`absolute top-full left-0 z-30 mt-1.5 max-h-80 min-w-60 overflow-y-auto rounded-xl bg-card p-1.5 shadow-overlay ring-1 ring-border-soft`,children:n.map(e=>(0,K.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":e.value===t,disabled:!e.count||e.unavailable,onClick:()=>{r(e.value===t?``:e.value),a(!1)},className:M(`flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-left text-[0.875rem] transition coarse:py-2.5`,e.count&&!e.unavailable?`text-ink-2 hover:bg-paper-2 hover:text-ink`:`text-ink-4`,e.value===t&&`font-medium text-ink`),children:[e.icon,(0,K.jsx)(`span`,{className:`flex-1 whitespace-nowrap`,children:e.label}),e.value===t?(0,K.jsx)(x,{className:`size-4 text-ember`}):e.unavailable?(0,K.jsx)(`span`,{className:`whitespace-nowrap text-[0.75rem] text-ink-4`,children:P(`market.unavailable`)}):(0,K.jsx)(`span`,{className:`text-[0.75rem] text-ink-4 tabular-nums`,children:e.count})]},e.value))}):null]})}function Ze(e,t){let[n,r]=(0,H.useState)(e);return(0,H.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}var Qe=60;function $e({onUse:e,busy:t,open:n}){let[r,i]=(0,H.useState)(``),[a,s]=(0,H.useState)(Re),[c,l]=(0,H.useState)(!1),[u,d]=(0,H.useState)(n??null),f=Ze(r.trim(),250),m=Se({queryKey:[`marketplace`,A,f,a,c],queryFn:({pageParam:e})=>{let t=new URLSearchParams({lang:A,limit:String(Qe),offset:String(e)});f&&t.set(`q`,f);for(let[e,n]of Object.entries(a))n&&t.set(e,n);return c&&t.set(`starred`,`1`),p.get(`/api/studio/marketplace?${t}`)},initialPageParam:0,getNextPageParam:(e,t)=>{let n=t.reduce((e,t)=>e+t.entries.length,0);return n<e.total?n:void 0},placeholderData:o}),h=m.data?.pages[0],g=m.data?.pages.flatMap(e=>e.entries)??[],_=h?.all??0,v=r.trim()!==f||m.isFetching&&!m.isFetchingNextPage,y=(e,t,n)=>Object.keys(t).filter(t=>h?.facets[e]?.[t]!==void 0).map(r=>({value:r,label:q(t,r),icon:n?.(r),count:(h?.facets[e])[r]??0,unavailable:e===`capability`&&b.has(r)})),b=new Set(h?.unavailable??[]),ee=y(`useCase`,Fe),x=[{key:`industry`,name:P(`market.industry`),options:y(`industry`,Pe)},{key:`format`,name:P(`market.format`),options:y(`format`,U,e=>(0,K.jsx)(J,{format:e,className:`size-4 text-ink-3`}))},{key:`capability`,name:P(`market.capability`),options:y(`capability`,W,e=>{let t=We[e];return(0,K.jsx)(t,{className:`size-4 text-ink-3`})})}],S=!!r.trim()||c||Object.values(a).some(Boolean),C=()=>{s(Re),i(``),l(!1)};if(m.isLoading)return(0,K.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,K.jsx)(j,{className:`size-6 text-ink-3`})});let w=h?.offline?(0,K.jsxs)(`p`,{className:`mt-4 flex items-center justify-center gap-2 text-[0.8125rem] text-ink-3`,children:[(0,K.jsx)(ye,{className:`size-4 shrink-0`}),P(`market.offline`)]}):null;if(!_&&!S)return w;let T=r?(0,K.jsx)(`button`,{type:`button`,"aria-label":P(`market.reset`),onClick:()=>i(``),className:`-mr-1.5 flex size-7 shrink-0 items-center justify-center rounded-full text-ink-3 hover:bg-paper-2 hover:text-ink`,children:(0,K.jsx)(R,{className:`size-4`})}):null,E=e=>M(`inline-flex h-7 shrink-0 items-center gap-1 whitespace-nowrap rounded-full px-2.5 text-[0.78125rem] transition`,e?`bg-card font-medium text-ink shadow-soft ring-1 ring-border-soft`:`text-ink-3 hover:bg-card/60 hover:text-ink`);return(0,K.jsxs)(`div`,{children:[(0,K.jsxs)(`label`,{className:`relative mx-auto flex h-10 max-w-md items-center gap-2.5 rounded-full bg-card px-4 shadow-soft ring-1 ring-border-soft transition focus-within:ring-2 focus-within:ring-focus sm:h-11`,children:[v?(0,K.jsx)(j,{className:`size-4 shrink-0 text-ink-3`}):(0,K.jsx)(te,{className:`size-4 shrink-0 text-ink-3`}),(0,K.jsx)(`input`,{type:`search`,value:r,onChange:e=>i(e.target.value),placeholder:P(`market.search`),"aria-label":P(`market.search`),className:`min-w-0 flex-1 bg-transparent text-[0.9375rem] outline-none placeholder:text-ink-4 [&::-webkit-search-cancel-button]:hidden`}),T]}),w,(0,K.jsxs)(`div`,{className:`max-sm:-mx-3 mt-4 flex gap-1 max-sm:overflow-x-auto max-sm:px-3 max-sm:[scrollbar-width:none] sm:flex-wrap sm:justify-center max-sm:[&::-webkit-scrollbar]:hidden`,children:[[{value:``,label:P(`market.all`)},...ee].map(e=>(0,K.jsx)(`button`,{type:`button`,"aria-pressed":!c&&a.useCase===e.value,onClick:()=>{l(!1),s({...a,useCase:e.value})},className:E(!c&&a.useCase===e.value),children:e.label},e.value)),(0,K.jsxs)(`button`,{type:`button`,"aria-pressed":c,onClick:()=>l(!c),className:E(c),children:[(0,K.jsx)(k,{className:M(`size-3.5`,c&&`fill-amber text-amber`)}),P(`market.starred`)]})]}),(0,K.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-x-1 gap-y-2 sm:mt-6`,children:[c?null:x.map(e=>(0,K.jsx)(Xe,{name:e.name,value:a[e.key],options:e.options,onChange:t=>s({...a,[e.key]:t})},e.key)),(0,K.jsxs)(`span`,{className:`ml-auto flex items-center gap-3 whitespace-nowrap pl-2 text-[0.8125rem] text-ink-3`,children:[S?(0,K.jsxs)(`button`,{type:`button`,onClick:C,className:`inline-flex items-center gap-1 text-ember-strong underline-offset-2 hover:underline`,children:[(0,K.jsx)(R,{className:`size-3.5 max-sm:size-4`}),(0,K.jsx)(`span`,{className:`max-sm:sr-only`,children:P(`market.resetShort`)})]}):null,S?(0,K.jsx)(`span`,{className:`tabular-nums sm:hidden`,children:P(`market.countOfShort`,{n:h?.total??0,all:_})}):null,(0,K.jsx)(`span`,{className:M(`tabular-nums`,S&&`max-sm:hidden`),children:S?P(`market.countOf`,{n:h?.total??0,all:_}):P(`market.count`,{n:_})})]})]}),g.length?(0,K.jsx)(`div`,{className:`mt-4 grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:g.map(e=>(0,K.jsx)(He,{entry:e,onOpen:()=>d(e.id)},e.id))}):(0,K.jsxs)(`div`,{className:`py-10 text-center text-[0.875rem] text-ink-3`,children:[(0,K.jsx)(`p`,{children:P(c?`market.noneStarred`:`market.none`)}),(0,K.jsx)(N,{variant:`ghost`,className:`mt-2`,onClick:C,children:P(`market.reset`)})]}),m.hasNextPage?(0,K.jsx)(`div`,{className:`mt-6 flex justify-center`,children:(0,K.jsx)(N,{variant:`secondary`,busy:m.isFetchingNextPage,onClick:()=>void m.fetchNextPage(),children:P(`market.more`)})}):null,(0,K.jsx)(Ye,{id:u,fallback:g.find(e=>e.id===u)??null,onClose:()=>d(null),onUse:e,busy:t})]})}var et={de:[`Stellenanzeige aus ein paar Stichworten, als PDF und LinkedIn-Post`,`Produktbeschreibung für den Onlineshop mit drei Bildvarianten`,`Wettbewerbsanalyse zu einer Firma mit Quellen`,`Lead aus einem Formular in unser CRM eintragen`],en:[`A job ad from a few keywords, as PDF and LinkedIn post`,`A shop product description with three image variants`,`A competitor analysis for a company, with sources`,`Put a lead from a form into our CRM`]};function tt(){let e=l(),t=m(),{project:n}=ve(),i=me(),[a,o]=(0,H.useState)(``),[s]=r(),c=L({mutationFn:e=>p.post(`/api/studio/wizards`,{projectId:n.id,starterId:e,lang:A}),onSuccess:async({id:n},r)=>{await t.invalidateQueries({queryKey:[`projects`]}),await t.invalidateQueries({queryKey:[`wizards`]}),e(r?`/edit/${n}`:`/edit/${n}?prompt=${encodeURIComponent(a.trim())}`)}}),d=()=>{a.trim()&&n&&c.mutate(void 0)};return!i||n?.readOnly?(0,K.jsx)(h,{to:`/`,replace:!0}):(0,K.jsxs)(`div`,{className:`animate-rise pt-4`,children:[(0,K.jsxs)(`div`,{className:`mx-auto max-w-2xl`,children:[(0,K.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,K.jsx)(u,{kind:`sprout`,size:150,fluffy:!0}),(0,K.jsx)(`h1`,{className:`mt-2 font-display font-semibold text-[2rem] leading-tight tracking-tight sm:text-[2.375rem]`,children:P(`new.title`)})]}),(0,K.jsxs)(`div`,{className:`mt-8 rounded-2xl bg-card p-2 shadow-elevated ring-1 ring-border-soft focus-within:ring-focus`,children:[(0,K.jsx)(ue,{autoFocus:!0,minRows:4,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&d()},placeholder:P(`new.placeholder`),className:`border-0 bg-transparent text-[1rem] shadow-none focus:ring-0`}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-2 pb-1`,children:[(0,K.jsx)(`span`,{className:`hidden text-[0.75rem] text-ink-4 sm:block`,children:P(`new.hint`)}),(0,K.jsxs)(N,{size:`md`,onClick:d,busy:c.isPending&&!c.variables,disabled:!a.trim(),children:[P(`new.build`),` `,(0,K.jsx)(v,{className:`size-4`})]})]})]}),(0,K.jsx)(`div`,{className:`mt-4 flex flex-wrap justify-center gap-2`,children:et[A].map(e=>(0,K.jsx)(`button`,{type:`button`,onClick:()=>o(e),className:`rounded-full bg-paper-2 px-3.5 py-1.5 text-[0.8125rem] text-ink-2 transition hover:bg-paper-3 hover:text-ink`,children:e},e))})]}),(0,K.jsxs)(`section`,{className:`mx-auto max-w-5xl`,children:[(0,K.jsx)(`h2`,{className:`mt-16 mb-5 text-center font-medium text-[0.8125rem] text-ink-3 uppercase tracking-[0.08em]`,children:P(`new.orStarter`)}),(0,K.jsx)($e,{open:s.get(`starter`),busy:c.isPending&&!!c.variables,onUse:e=>n&&!c.isPending&&c.mutate(e.id)}),c.error?(0,K.jsx)(`p`,{className:`mt-3 text-center text-[0.875rem] text-rose`,children:c.error.message}):null]}),(0,K.jsx)(`div`,{className:`mt-8 flex justify-center`,children:(0,K.jsx)(be,{variant:`ghost`,label:P(`new.import`)})})]})}export{tt as NewWizardPage};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{A as r,D as i,O as a,d as o,i as s,j as c,k as l,n as u,nt as d,t as f,w as p}from"./api-RJbFM_oc.js";import{t as m}from"./createLucideIcon-q3MZMmnf.js";import{f as h,g,h as _,i as v,m as y,p as ee,t as b,u as te}from"./RunnerView-Civq59Tk.js";import{t as x}from"./refresh-cw-BNtHis1x.js";import{n as S}from"./HomePage-DWDT64vg.js";import{t as C}from"./check-CUpby_J9.js";import{r as w,t as T}from"./ChatPanel-CPgh0skF.js";import{n as E,t as ne}from"./upload-DNRENWzQ.js";import{t as D}from"./plus-Du-Jx8aI.js";import{t as re}from"./external-link-MAL7vJYj.js";import{n as O,t as ie}from"./wand-sparkles-Clj3VRB5.js";import{a as ae,c as k,d as A,f as oe,h as se,i as j,l as ce,m as M,o as le,p as N,s as P,u as F}from"./Account-B_FCuidz.js";import{n as I,t as L}from"./trash-0IafyhZB.js";import{n as ue,t as R}from"./table-2-BdDuBcF2.js";import{_ as z,a as de,c as B,d as V,f as fe,h as H,i as U,m as pe,n as W,o as G,p as me,r as K,s as q,t as J,u as Y,y as X}from"./ui-HV_XbHjw.js";import{A as he,F as ge,T as _e,U as Z,_ as ve,b as ye,g as be,i as xe,k as Se,m as Ce,v as we,w as Te,y as Ee}from"./index-LmRYEd-y.js";import"./definition-Dp0DR2D6.js";import{a as De,c as Oe,f as ke,i as Ae,m as je,n as Me,o as Ne,p as Pe,r as Fe,s as Ie,t as Le,u as Re}from"./settings-menu-CrRWSrNL.js";var ze={name:`calendar`,size:24,node:[[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M3 9h18`,key:`1pudct`}]]};ze.node;var Be=m(ze),Ve={name:`file-spreadsheet`,size:24,node:[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]};Ve.node;var He=m(Ve),Ue={name:`hash`,size:24,node:[[`line`,{x1:`4`,x2:`20`,y1:`9`,y2:`9`,key:`4lhtct`}],[`line`,{x1:`4`,x2:`20`,y1:`15`,y2:`15`,key:`vyu0kd`}],[`line`,{x1:`10`,x2:`8`,y1:`3`,y2:`21`,key:`1ggp8o`}],[`line`,{x1:`16`,x2:`14`,y1:`3`,y2:`21`,key:`weycgp`}]]};Ue.node;var We=m(Ue),Ge={name:`layers`,size:24,node:[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]],aliases:[`layers-3`]};Ge.node;var Ke=m(Ge),qe={name:`music`,size:24,node:[[`path`,{d:`M9 18V5l12-2v13`,key:`1jmyc2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`circle`,{cx:`18`,cy:`16`,r:`3`,key:`1hluhg`}]]};qe.node;var Je=m(qe),Ye={name:`phone`,size:24,node:[[`path`,{d:`M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384`,key:`9njp5v`}]]};Ye.node;var Xe=m(Ye),Ze={name:`puzzle`,size:24,node:[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]};Ze.node;var Qe=m(Ze),$e={name:`text-align-start`,size:24,node:[[`path`,{d:`M21 5H3`,key:`1fi0y6`}],[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M17 19H3`,key:`z6ezky`}]],aliases:[`text`,`align-left`]};$e.node;var et=m($e),tt={name:`toggle-left`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`3`,key:`u3jwor`}],[`rect`,{width:`20`,height:`14`,x:`2`,y:`5`,rx:`7`,key:`g7kal2`}]]};tt.node;var nt=m(tt),Q=e(t(),1),$=e(n(),1);function rt({page:e,onGone:t}){let n=d(),[r,i]=(0,Q.useState)(e.title),[a,o]=(0,Q.useState)(e.markdown),[s,c]=(0,Q.useState)(!e.markdown),l=()=>n.invalidateQueries({queryKey:[`space-data`,e.projectId]}),f=A({title:r.trim()||e.title,markdown:a},async t=>{await u.patch(`/api/studio/pages/${e.id}`,t),n.setQueryData([`space-page`,e.id],e=>e&&{...e,...t}),t.title!==e.title&&await l()}),p=Z({mutationFn:()=>u.del(`/api/studio/pages/${e.id}`),onSuccess:async()=>{await l(),t()}}),m=e.readOnly,h=(e,t,n)=>(0,$.jsx)(`button`,{type:`button`,"aria-pressed":e,onClick:n,className:H(`rounded-full px-3 py-1 text-[0.8125rem] transition`,e?`bg-paper-2 font-medium text-ink`:`text-ink-3 hover:text-ink`),children:t});return(0,$.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 px-1`,children:[(0,$.jsx)(`input`,{value:r,disabled:m,maxLength:200,onChange:e=>i(e.target.value),"aria-label":X(`data.title`),className:`-ml-1 min-w-0 flex-1 rounded-md bg-transparent px-1 font-display font-semibold text-lg outline-none hover:bg-accent focus:bg-paper focus:ring-1 focus:ring-ring disabled:hover:bg-transparent`}),f.state===`saving`?(0,$.jsx)(V,{className:`size-3.5 text-ink-3`}):f.state===`saved`?(0,$.jsx)(C,{className:`size-4 text-moss`,"aria-label":X(`settings.saved`)}):null,m?null:(0,$.jsx)(G,{label:X(`data.deletePage`),onClick:()=>confirm(X(`data.confirmDelete`,{title:e.title}))&&p.mutate(),className:`hover:text-rose`,children:(0,$.jsx)(L,{className:`size-4`})})]}),(0,$.jsxs)(W,{className:`flex flex-col`,children:[m?null:(0,$.jsxs)(`div`,{className:`flex items-center gap-1 border-border-soft border-b px-2 py-1.5`,children:[h(s,X(`data.write`),()=>c(!0)),h(!s,X(`data.preview`),()=>c(!1)),(0,$.jsx)(`span`,{className:`ml-auto truncate px-2 text-[0.75rem] text-ink-4 max-sm:hidden`,children:X(`data.markdownHint`)})]}),s&&!m?(0,$.jsx)(`textarea`,{value:a,onChange:e=>o(e.target.value),"aria-label":e.title,placeholder:X(`data.pageEmpty`),className:`field-sizing-content min-h-[50vh] w-full resize-none bg-transparent p-4 font-mono text-[0.8125rem] leading-relaxed outline-none placeholder:text-ink-4 sm:p-5`}):(0,$.jsx)(`div`,{className:`min-h-40 p-4 sm:p-5`,children:a.trim()?(0,$.jsx)(v,{text:a}):(0,$.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:X(`data.pageEmpty`)})})]}),f.state===`error`&&f.error?(0,$.jsx)(`p`,{className:`px-1 text-[0.875rem] text-rose`,children:f.error}):null]})}function it({pageId:e,onGone:t}){let n=c({queryKey:[`space-page`,e],queryFn:()=>u.get(`/api/studio/pages/${e}`),refetchOnWindowFocus:!1});return n.data?(0,$.jsx)(rt,{page:n.data,onGone:t},n.data.id):n.isError?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-rose`,children:n.error.message}):null}function at(e){return e.type.startsWith(`image/`)&&/logo/i.test(e.name)?`logo`:/^(image|video|audio)\//.test(e.type)?`asset`:`document`}function ot(e,t){let n=d(),[r,i]=(0,Q.useState)([]),[a,o]=(0,Q.useState)(`idle`),[c,l]=(0,Q.useState)(null),[f,p]=(0,Q.useState)(null),[m,h]=(0,Q.useState)(null),g=(0,Q.useRef)(null),_=()=>(g.current??=(async()=>{await Promise.all([n.invalidateQueries({queryKey:[`projects`]}),n.invalidateQueries({queryKey:[`project-files`,e]})]),t(),g.current=null})(),g.current);return{messages:r,phase:a,activity:f,startedAt:m,error:c,send:async(t,c=[])=>{if(!(t.trim()||c.length)||a!==`idle`)return!1;if(l(null),o(`thinking`),h(Date.now()),c.length){try{for(let t of c)await u.upload(`/api/studio/projects/${e}/files?kind=${at(t)}`,t)}catch(e){return l(e.message),o(`idle`),h(null),await _(),!1}await _();let n=`${X(`editor.attached`)}: ${c.map(e=>e.name).join(`, `)}`;t=t.trim()?`${t}\n\n${n}`:n}let d=r.map(({role:e,content:t})=>({role:e,content:t})).slice(-12),f=`p-${Date.now()}`;i(e=>[...e,{id:`u-${Date.now()}`,role:`user`,content:t,previews:w(c)},{id:f,role:`assistant`,content:``,pending:!0}]),p(null);let m=!1;try{await s(`/api/studio/projects/${e}/assist`,{message:t,history:d},(e,t)=>{if(e===`text`){let e=JSON.parse(t);i(t=>t.map(t=>t.id===f?{...t,content:t.content+e}:t))}else if(e===`activity`)p(JSON.parse(t));else if(e===`card`){let e=JSON.parse(t);i(t=>t.map(t=>t.id===f?{...t,cards:[...t.cards??[],{...e,id:`${f}-${t.cards?.length??0}`}]}:t))}else if(e===`changed`)o(`building`),_();else if(e===`done`){m=!0;let e=JSON.parse(t);i(t=>t.map(t=>t.id===f?{...t,content:e.reply,changed:e.changed,pending:!1}:t))}else e===`error`&&(m=!0,l(JSON.parse(t).message))}),m||l(X(`editor.chatBroken`))}catch(e){l(e.message)}finally{p(null),h(null),i(e=>e.filter(e=>!(e.id===f&&!e.content&&!e.cards?.length)).map(e=>({...e,pending:!1}))),o(`idle`),await g.current,await _(),await n.invalidateQueries({queryKey:[`me`]})}return!0}}}function st({card:e,send:t}){let n=be().cards.find(t=>t.plugin===e.plugin&&t.tool===e.tool);return n?(0,$.jsx)(Ce,{of:n,children:(0,$.jsx)(n.component,{data:e.data,send:e=>void t(e)})}):null}function ct(){return(0,$.jsxs)(`div`,{className:`sm:pr-36`,children:[(0,$.jsx)(`h2`,{className:`font-display font-semibold text-[1.25rem] leading-tight tracking-tight`,children:X(`project.assistantTitle`)}),(0,$.jsx)(`p`,{className:`mt-1.5 max-w-2xl text-[0.9375rem] text-ink-2 leading-relaxed`,children:X(`project.assistantHello`)})]})}var lt=72,ut=720;function dt({projectId:e,onChanged:t}){let n=ot(e,t),r=(0,Q.useRef)(null),[i,a]=(0,Q.useState)(null);return(0,Q.useEffect)(()=>{let e=()=>{let e=r.current?.getBoundingClientRect();e&&a(t=>{if(e.bottom>=lt)return null;let n=Math.min(e.width,ut),r=e.left+(e.width-n)/2;return t&&t.left===r&&t.width===n?t:{left:r,width:n,height:t?.height??e.height}})};return e(),window.addEventListener(`scroll`,e,{passive:!0}),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e),window.removeEventListener(`resize`,e)}},[]),(0,$.jsxs)(`div`,{ref:r,style:i?{minHeight:i.height}:void 0,children:[(0,$.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 px-1 font-medium text-[0.75rem] text-ember-strong uppercase tracking-[0.07em]`,children:[(0,$.jsx)(te,{className:`size-3.5`}),` `,X(`project.assistant`)]}),(0,$.jsxs)(`div`,{className:`relative`,children:[!i&&n.messages.length===0?(0,$.jsx)(`div`,{className:`absolute -top-14 right-10 z-10 max-sm:hidden`,children:(0,$.jsx)(o,{kind:`round`,size:104})}):null,(0,$.jsx)(`div`,{className:H(`flex flex-col overflow-hidden bg-card`,i?`fixed bottom-4 z-30 max-h-[70dvh] animate-dock rounded-2xl shadow-overlay ring-1 ring-border`:`max-h-[520px] rounded-xl bg-linear-to-br from-ember-tint via-card to-card shadow-soft ring-1 ring-ember-veil`),style:i?{left:i.left,width:i.width}:void 0,children:(0,$.jsx)(T,{chat:n,avatar:`round`,compact:!!i,intro:(0,$.jsx)(ct,{}),placeholder:X(`project.assistantComposer`),changedLabel:X(`project.assistantChanged`),card:e=>(0,$.jsx)(st,{card:e,send:n.send})})})]})]})}var ft=[`text`,`longtext`,`number`,`date`,`url`,`email`,`phone`,`boolean`],pt=/^(\d{4}-\d{2}-\d{2}|\d{1,2}\.\s?\d{1,2}\.\s?\d{4})$/,mt=/^[+-]?\d{1,3}([.,\s']?\d{3})*([.,]\d+)?$/,ht=/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/,gt=/^(https?:\/\/|www\.)\S+$/i,_t=/^\+?[\d\s()/.-]{7,20}$/,vt=/^(ja|nein|yes|no|true|false)$/i;function yt(e){let t=e.trim();return t?t.includes(`
|
|
2
|
-
`)||t.length>140?`longtext`:vt.test(t)?`boolean`:ht.test(t)?`email`:gt.test(t)?`url`:pt.test(t)?`date`:mt.test(t)&&!/^(\+|0\d)/.test(t)?`number`:_t.test(t)&&t.replace(/\D/g,``).length>=7?`phone`:`text`:`text`}function bt(e,t=[]){let n=e.toLowerCase().replace(/ä/g,`ae`).replace(/ö/g,`oe`).replace(/ü/g,`ue`).replace(/ß/g,`ss`).normalize(`NFD`).replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``).slice(0,40)||`fakt`,r=n;for(let e=2;t.includes(r);e++)r=`${n}_${e}`;return r}var xt=[{key:`adresse`,de:`Adresse`,en:`Address`},{key:`plz`,de:`PLZ`,en:`Postcode`},{key:`ort`,de:`Ort`,en:`City`},{key:`uid`,de:`UID`,en:`VAT id`},{key:`telefon`,de:`Telefon`,en:`Phone`},{key:`e_mail`,de:`E-Mail`,en:`Email`},{key:`website`,de:`Website`,en:`Website`},{key:`iban`,de:`IBAN`,en:`IBAN`}],St={facts:100,colors:12,files:{logo:8,asset:100,document:50},bytes:{logo:5e6,asset:15e6,video:8e7,document:3e7}},Ct=/^#[0-9a-fA-F]{6}$/;function wt({onAdd:e,onClose:t}){let[n,r]=(0,Q.useState)(`#e0531b`),[i,a]=(0,Q.useState)(``),o=Ct.test(n);return(0,$.jsx)(U,{open:!0,onClose:t,title:X(`project.colorAddTitle`),children:(0,$.jsxs)(`form`,{onSubmit:r=>{r.preventDefault(),o&&(e({name:i.trim(),value:n.toLowerCase()}),t())},className:`flex flex-col gap-5`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`project.colorValue`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(fe,{value:o?n:`#888888`,onChange:e=>r(e.target.value)}),(0,$.jsx)(q,{value:n,placeholder:`#e0531b`,spellCheck:!1,onChange:e=>r(e.target.value.trim()),className:`font-mono text-[0.875rem]`})]})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`project.colorUseLabel`)}),(0,$.jsx)(q,{autoFocus:!0,value:i,maxLength:120,placeholder:X(`project.colorName`),onChange:e=>a(e.target.value)}),(0,$.jsx)(`p`,{className:`mt-1.5 text-[0.8125rem] text-ink-3`,children:X(`project.colorUse`)})]}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsx)(J,{variant:`ghost`,onClick:t,children:X(`common.cancel`)}),(0,$.jsx)(J,{type:`submit`,disabled:!o,children:X(`project.add`)})]})]})})}function Tt({colors:e,save:t,readOnly:n}){let r=(0,Q.useRef)(0),[i,a]=(0,Q.useState)(()=>e.map(e=>({...e,id:`c${r.current++}`}))),[o,s]=(0,Q.useState)(!1),c=A(i.filter(e=>Ct.test(e.value)).map(({name:e,value:t})=>({name:e.trim(),value:t})),t),l=(e,t)=>a(n=>n.map(n=>n.id===e?{...n,...t}:n));return(0,$.jsxs)(k,{title:X(`project.colors`),hint:X(`project.colorsHint`),save:c,locked:n,children:[(0,$.jsx)(`div`,{className:`flex flex-col gap-2`,children:i.map((e,t)=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(fe,{value:Ct.test(e.value)?e.value:`#888888`,onChange:t=>l(e.id,{value:t.target.value})}),(0,$.jsx)(q,{value:e.name,placeholder:X(`project.colorName`),maxLength:120,onChange:t=>l(e.id,{name:t.target.value}),className:`min-w-0 flex-1`}),(0,$.jsx)(q,{value:e.value,placeholder:`#e0531b`,spellCheck:!1,onChange:t=>l(e.id,{value:t.target.value.trim()}),className:`w-28 font-mono text-[0.8125rem]`}),(0,$.jsxs)(`div`,{className:`flex w-24 shrink-0 items-center justify-end max-sm:w-auto`,children:[t===0?(0,$.jsx)(`span`,{className:`mr-1 max-sm:hidden`,children:(0,$.jsx)(K,{tone:`ember`,children:X(`project.colorAccent`)})}):n?null:(0,$.jsx)(G,{label:X(`project.colorFirst`),onClick:()=>a(t=>[e,...t.filter(t=>t.id!==e.id)]),children:(0,$.jsx)(g,{className:`size-4`})}),n?null:(0,$.jsx)(G,{label:X(`project.remove`),onClick:()=>a(t=>t.filter(t=>t.id!==e.id)),className:`hover:text-rose`,children:(0,$.jsx)(L,{className:`size-4`})})]})]},e.id))}),i.length&&!n?(0,$.jsx)(`p`,{className:`mt-1.5 text-[0.8125rem] text-ink-3`,children:X(`project.colorUse`)}):null,i.length<St.colors&&!n?(0,$.jsxs)(J,{variant:`secondary`,size:`sm`,className:i.length?`mt-3`:void 0,onClick:()=>s(!0),children:[(0,$.jsx)(D,{className:`size-4`}),` `,X(`project.colorAdd`)]}):null,o?(0,$.jsx)(wt,{onClose:()=>s(!1),onAdd:e=>a(t=>[...t,{...e,id:`c${r.current++}`}])}):null]})}var Et={backgroundImage:`repeating-conic-gradient(#c9c9c9 0% 25%, #dedede 0% 50%)`,backgroundSize:`16px 16px`};function Dt({file:e,actions:t}){let[n,r]=(0,Q.useState)(e.description),i=(0,Q.useRef)(e.description),a=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{e.description!==i.current&&(r(t=>t===i.current?e.description:t),i.current=e.description)},[e.description]),(0,Q.useLayoutEffect)(()=>{let e=a.current;e&&(e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`)},[n]);let o=e.status===`pending`&&!n;return t.readOnly?n?(0,$.jsx)(`p`,{className:`text-[0.8125rem] text-ink-2 leading-snug`,children:n}):null:(0,$.jsx)(`textarea`,{ref:a,rows:1,value:n,maxLength:600,placeholder:X(o?`project.describing`:`project.description`),onChange:e=>r(e.target.value),onBlur:()=>{n.trim()!==e.description&&(i.current=n.trim(),t.describe(e.id,n.trim()))},className:`-mx-1 block w-[calc(100%+0.5rem)] resize-none overflow-hidden rounded-md bg-transparent px-1 py-0.5 text-[0.8125rem] text-ink-2 leading-snug outline-none transition placeholder:text-ink-4 hover:bg-paper-2 focus:bg-card focus:text-ink focus:ring-1 focus:ring-border`})}function Ot(e,t){confirm(X(`project.removeConfirm`,{name:e.name}))&&t.remove(e.id)}function kt({projectId:e,file:t,small:n}){let r=F(e,t.id);return t.mime.startsWith(`image/`)?(0,$.jsx)(`img`,{src:r,alt:``,loading:`lazy`,className:H(`size-full`,t.kind===`logo`?`object-contain p-3`:`object-cover`)}):t.mime.startsWith(`video/`)?(0,$.jsx)(`video`,{src:`${r}#t=0.1`,preload:`metadata`,controls:!n,className:`size-full object-cover`}):(0,$.jsx)(`div`,{className:`flex size-full items-center justify-center text-ink-3`,children:t.mime.startsWith(`audio/`)?(0,$.jsx)(Je,{className:n?`size-5`:`size-7`}):(0,$.jsx)(_,{className:n?`size-5`:`size-7`})})}function At({projectId:e,kind:t,files:n,actions:r,accept:i,addLabel:a,onPreview:o}){return(0,$.jsxs)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(184px,1fr))] gap-3`,children:[n.map((i,a)=>(0,$.jsxs)(`div`,{className:`group relative flex flex-col gap-1.5 rounded-lg bg-paper p-2 pb-2.5 ring-1 ring-border-soft`,children:[t===`logo`&&a===0?(0,$.jsx)(`span`,{className:`absolute -top-3 left-3 z-10 rounded-full ring-2 ring-card`,children:(0,$.jsx)(K,{tone:`ember`,children:X(`project.logoMain`)})}):null,(0,$.jsxs)(`div`,{className:`relative h-28 overflow-hidden rounded-md bg-paper-2`,style:t===`logo`?Et:void 0,children:[o&&i.mime.startsWith(`image/`)?(0,$.jsx)(`button`,{type:`button`,"aria-label":`${X(`project.preview`)}: ${i.name}`,onClick:()=>o(i),className:`block size-full cursor-zoom-in`,children:(0,$.jsx)(kt,{projectId:e,file:i})}):(0,$.jsx)(kt,{projectId:e,file:i}),(0,$.jsxs)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 transition focus-within:opacity-100 group-hover:opacity-100 coarse:opacity-100`,children:[o?(0,$.jsx)(G,{label:X(`project.preview`),onClick:()=>o(i),className:`size-8 bg-card shadow-soft`,children:(0,$.jsx)(O,{className:`size-4`})}):null,t===`logo`&&a>0&&!r.readOnly?(0,$.jsx)(G,{label:X(`project.logoMakeMain`),onClick:()=>r.order(`logo`,[i.id,...n.filter(e=>e.id!==i.id).map(e=>e.id)]),className:`size-8 bg-card shadow-soft`,children:(0,$.jsx)(ue,{className:`size-4`})}):null,r.readOnly?null:(0,$.jsx)(G,{label:X(`project.remove`),onClick:()=>Ot(i,r),className:`size-8 bg-card shadow-soft hover:text-rose`,children:(0,$.jsx)(L,{className:`size-4`})})]})]}),t===`asset`?(0,$.jsx)(`div`,{className:`truncate px-0.5 text-[0.75rem] text-ink-3`,title:i.name,children:i.name}):null,(0,$.jsx)(Dt,{file:i,actions:r})]},i.id)),a&&!r.readOnly?(0,$.jsxs)(ae,{accept:i,multiple:!1,onFiles:e=>r.upload(t,e),className:`min-h-28 flex-col p-3`,children:[r.busy?(0,$.jsx)(V,{className:`size-5`}):(0,$.jsx)(D,{className:`size-5`}),a]}):null]})}function jt({projectId:e,data:t,readOnly:n}){let r=oe(e,n);return(0,$.jsxs)(k,{title:X(`project.logos`),hint:X(`project.logosHint`),children:[(0,$.jsx)(At,{projectId:e,kind:`logo`,files:t.files.filter(e=>e.kind===`logo`),actions:r,accept:`image/*`,addLabel:X(`project.logoAdd`)}),r.error?(0,$.jsx)(`p`,{className:`mt-3 text-[0.875rem] text-rose`,children:r.error}):null]})}var Mt=e=>[(e.name.includes(`.`)?e.name.split(`.`).pop():e.mime.split(`/`).pop())?.toUpperCase().slice(0,5),ce(e.size)].filter(Boolean).join(` · `);function Nt({projectId:e,file:t,actions:n,onClose:r}){let i=F(e,t.id);return(0,$.jsxs)(U,{open:!0,onClose:r,wide:`page`,title:t.name,children:[(0,$.jsxs)(`div`,{className:`-mt-2 mb-4 flex items-center justify-between gap-3`,children:[(0,$.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3`,children:Mt(t)}),(0,$.jsx)(`a`,{href:i,target:`_blank`,rel:`noreferrer`,"aria-label":X(`project.openOriginal`),title:X(`project.openOriginal`),className:`inline-flex size-9 items-center justify-center rounded-full text-ink-3 transition hover:bg-accent hover:text-ink`,children:(0,$.jsx)(re,{className:`size-4`})})]}),t.mime.startsWith(`image/`)?(0,$.jsx)(`div`,{className:`overflow-hidden rounded-lg`,style:Et,children:(0,$.jsx)(`img`,{src:i,alt:``,className:`mx-auto max-h-[68dvh] object-contain`})}):t.mime.startsWith(`video/`)?(0,$.jsx)(`video`,{src:i,controls:!0,className:`max-h-[68dvh] w-full rounded-lg bg-black`}):(0,$.jsx)(`audio`,{src:i,controls:!0,className:`w-full`}),(0,$.jsx)(`div`,{className:`mt-4`,children:(0,$.jsx)(Dt,{file:t,actions:n})})]})}function Pt({projectId:e,file:t,actions:n,onPreview:r}){return(0,$.jsxs)(`li`,{className:`flex items-start gap-3 rounded-lg bg-paper p-2 ring-1 ring-border-soft`,children:[(0,$.jsx)(`button`,{type:`button`,"aria-label":`${X(`project.preview`)}: ${t.name}`,onClick:r,className:`size-14 shrink-0 cursor-zoom-in overflow-hidden rounded-md bg-paper-2`,children:(0,$.jsx)(kt,{projectId:e,file:t,small:!0})}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1 py-0.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-3`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:r,title:t.name,className:`min-w-0 truncate font-medium text-[0.875rem] hover:underline`,children:t.name}),(0,$.jsx)(`span`,{className:`text-[0.75rem] text-ink-3`,children:Mt(t)})]}),(0,$.jsx)(Dt,{file:t,actions:n})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start`,children:[(0,$.jsx)(G,{label:X(`project.preview`),onClick:r,children:(0,$.jsx)(O,{className:`size-4`})}),n.readOnly?null:(0,$.jsx)(G,{label:X(`project.remove`),onClick:()=>Ot(t,n),className:`hover:text-rose`,children:(0,$.jsx)(L,{className:`size-4`})})]})]})}function Ft({projectId:e,data:t,readOnly:n}){let r=oe(e,n),[i,a]=N(`assets`,`cards`),[o,s]=(0,Q.useState)(``),[c,l]=(0,Q.useState)(null),u=t.files.filter(e=>e.kind===`asset`),d=u.find(e=>e.id===c),f=o.trim().toLowerCase(),p=f?u.filter(e=>`${e.name} ${e.description}`.toLowerCase().includes(f)):u;return(0,$.jsxs)(k,{title:X(`project.assets`),hint:X(`project.assetsHint`),children:[u.length?(0,$.jsx)(le,{layout:i,onToggle:a,children:(0,$.jsx)(P,{value:o,onChange:s,placeholder:X(`project.assetSearch`)})}):null,p.length?(0,$.jsx)(`div`,{className:`mb-3`,children:i===`cards`?(0,$.jsx)(At,{projectId:e,kind:`asset`,files:p,actions:r,onPreview:e=>l(e.id)}):(0,$.jsx)(`ul`,{className:`flex flex-col gap-2`,children:p.map(t=>(0,$.jsx)(Pt,{projectId:e,file:t,actions:r,onPreview:()=>l(t.id)},t.id))})}):null,n?u.length?null:(0,$.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:X(`project.staysLocal`)}):(0,$.jsxs)(ae,{accept:`image/*,video/*,audio/*`,onFiles:e=>r.upload(`asset`,e),className:`h-16 w-full`,children:[r.busy?(0,$.jsx)(V,{className:`size-4`}):(0,$.jsx)(ne,{className:`size-4`}),X(`project.drop`),` `,(0,$.jsx)(`span`,{className:`underline`,children:X(`project.assetAdd`)})]}),r.error?(0,$.jsx)(`p`,{className:`mt-3 text-[0.875rem] text-rose`,children:r.error}):null,d?(0,$.jsx)(Nt,{projectId:e,file:d,actions:r,onClose:()=>l(null)}):null]})}function It(e,t,n){return c({queryKey:[`project-file-text`,t.id,t.chars,n],queryFn:()=>u.get(`/api/studio/projects/${e}/files/${t.id}/text?limit=${n}`),enabled:t.status===`ready`,staleTime:6e4})}function Lt(e){return((e.name.includes(`.`)?e.name.split(`.`).pop():``)||e.mime.split(`/`).pop()||``).toUpperCase().slice(0,5)}var Rt=e=>[Lt(e),e.pages?X(`project.pages`,{n:e.pages}):null,ce(e.size)].filter(Boolean).join(` · `);function zt({file:e}){return e.status===`pending`?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[0.75rem] text-ink-3`,children:[(0,$.jsx)(V,{className:`size-3`}),` `,X(`project.reading`)]}):e.status===`failed`?(0,$.jsx)(`span`,{className:`text-[0.75rem] text-rose`,children:e.error}):e.indexed?(0,$.jsx)(K,{tone:`live`,children:e.indexed===`embeddings`?X(`project.indexed`):X(`project.indexedKeywords`)}):(0,$.jsx)(K,{tone:`warn`,children:X(`project.notIndexed`)})}function Bt({file:e,actions:t,onPreview:n}){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(G,{label:X(`project.preview`),onClick:n,children:(0,$.jsx)(O,{className:`size-4`})}),e.status!==`pending`&&!t.readOnly?(0,$.jsx)(G,{label:X(`project.reindex`),onClick:()=>t.reindex(e.id),children:(0,$.jsx)(x,{className:`size-4`})}):null,t.readOnly?null:(0,$.jsx)(G,{label:X(`project.remove`),onClick:()=>Ot(e,t),className:`hover:text-rose`,children:(0,$.jsx)(L,{className:`size-4`})})]})}function Vt({file:e,actions:t,onPreview:n}){let r=/sheet|csv|excel/.test(e.mime);return(0,$.jsxs)(`li`,{className:`flex gap-3 rounded-lg bg-paper p-3 ring-1 ring-border-soft`,children:[(0,$.jsx)(`div`,{className:`mt-0.5 text-ink-3`,children:r?(0,$.jsx)(He,{className:`size-5`}):(0,$.jsx)(ge,{className:`size-5`})}),(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:n,title:e.name,className:`min-w-0 truncate font-medium text-[0.875rem] hover:underline`,children:e.name}),(0,$.jsx)(`span`,{className:`text-[0.75rem] text-ink-3`,children:Rt(e)}),(0,$.jsx)(zt,{file:e})]}),(0,$.jsx)(Dt,{file:e,actions:t})]}),(0,$.jsx)(`div`,{className:`-my-1 flex shrink-0 items-start`,children:(0,$.jsx)(Bt,{file:e,actions:t,onPreview:n})})]})}function Ht({projectId:e,file:t}){let n=It(e,t,1500);return t.mime.startsWith(`image/`)?(0,$.jsx)(`img`,{src:F(e,t.id),alt:``,className:`size-full object-cover`}):t.status===`pending`||n.isLoading?(0,$.jsx)(`div`,{className:`flex size-full items-center justify-center text-ink-4`,children:(0,$.jsx)(V,{className:`size-5`})}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`w-[222%] origin-top-left scale-[0.45] p-6`,children:(0,$.jsx)(v,{text:n.data?.text??``})}),(0,$.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-12 bg-linear-to-t from-card to-transparent`})]})}function Ut({projectId:e,file:t,actions:n,onPreview:r}){return(0,$.jsxs)(`li`,{className:`group flex flex-col gap-1.5 rounded-lg bg-paper p-2 pb-2.5 ring-1 ring-border-soft`,children:[(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`${X(`project.preview`)}: ${t.name}`,className:`relative block h-44 w-full overflow-hidden rounded-md bg-card text-left ring-1 ring-border-soft transition hover:ring-border`,children:(0,$.jsx)(Ht,{projectId:e,file:t})}),(0,$.jsx)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 transition focus-within:opacity-100 group-hover:opacity-100 coarse:opacity-100 [&>button]:size-8 [&>button]:bg-card [&>button]:shadow-soft`,children:(0,$.jsx)(Bt,{file:t,actions:n,onPreview:r})})]}),(0,$.jsxs)(`div`,{className:`mt-1 flex flex-col gap-1 px-0.5`,children:[(0,$.jsx)(`div`,{className:`truncate font-medium text-[0.8125rem]`,title:t.name,children:t.name}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-2 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-[0.75rem] text-ink-3`,children:Rt(t)}),(0,$.jsx)(zt,{file:t})]})]}),(0,$.jsx)(Dt,{file:t,actions:n})]})}var Wt=2e5;function Gt({projectId:e,file:t,onClose:n}){let r=t.mime===`application/pdf`||t.mime.startsWith(`image/`),[i,a]=(0,Q.useState)(r?`original`:`text`),o=It(e,t,Wt),s=F(e,t.id),c=(e,t)=>(0,$.jsx)(`button`,{type:`button`,"aria-pressed":i===e,onClick:()=>a(e),className:H(`h-8 rounded-full px-3 text-[0.8125rem] transition`,i===e?`bg-paper-2 font-medium text-ink`:`text-ink-3 hover:text-ink`),children:t});return(0,$.jsxs)(U,{open:!0,onClose:n,wide:`page`,title:t.name,children:[(0,$.jsxs)(`div`,{className:`-mt-2 mb-4 flex flex-wrap items-center gap-x-3 gap-y-2`,children:[(0,$.jsx)(`span`,{className:`text-[0.8125rem] text-ink-3`,children:Rt(t)}),(0,$.jsx)(zt,{file:t}),(0,$.jsxs)(`div`,{className:`ml-auto flex items-center gap-1`,children:[r?(0,$.jsxs)($.Fragment,{children:[c(`original`,X(`project.original`)),c(`text`,X(`project.readText`))]}):null,(0,$.jsx)(`a`,{href:s,target:`_blank`,rel:`noreferrer`,"aria-label":X(`project.openOriginal`),title:X(`project.openOriginal`),className:`inline-flex size-9 items-center justify-center rounded-full text-ink-3 transition hover:bg-accent hover:text-ink`,children:(0,$.jsx)(re,{className:`size-4`})})]})]}),i===`original`?t.mime===`application/pdf`?(0,$.jsx)(`iframe`,{src:s,title:t.name,className:`h-[70dvh] w-full rounded-lg bg-paper-2 ring-1 ring-border-soft`}):(0,$.jsx)(`img`,{src:s,alt:``,className:`mx-auto max-h-[70dvh] rounded-lg object-contain`}):o.isLoading?(0,$.jsx)(`div`,{className:`flex h-40 items-center justify-center text-ink-3`,children:(0,$.jsx)(V,{})}):o.data?.text?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-lg bg-paper p-5 ring-1 ring-border-soft`,children:(0,$.jsx)(v,{text:o.data.text,className:`text-[0.875rem]`})}),o.data.chars>o.data.text.length?(0,$.jsx)(`p`,{className:`mt-3 text-[0.8125rem] text-ink-3`,children:X(`project.textCut`,{shown:o.data.text.length.toLocaleString(),total:o.data.chars.toLocaleString()})}):null]}):(0,$.jsx)(`p`,{className:`py-8 text-center text-[0.875rem] text-ink-3`,children:X(`project.noText`)})]})}function Kt({projectId:e}){let[t,n]=(0,Q.useState)(``),[r,i]=(0,Q.useState)(null),[a,o]=(0,Q.useState)(!1),s=async()=>{if(!t.trim()){i(null);return}o(!0);try{let n=await u.post(`/api/studio/projects/${e}/search`,{query:t});i(n.hits)}catch{i([])}finally{o(!1)}};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(P,{value:t,placeholder:X(`project.searchTest`),busy:a,onEnter:()=>void s(),onChange:e=>{n(e),e.trim()||i(null)}}),r?r.length?(0,$.jsx)(`ul`,{className:`mt-2 flex flex-col gap-2`,children:r.map((e,t)=>(0,$.jsxs)(`li`,{className:`rounded-lg bg-paper-2 px-3 py-2 text-[0.8125rem]`,children:[(0,$.jsx)(`div`,{className:`mb-0.5 font-medium text-[0.75rem] text-ink-3`,children:e.name}),(0,$.jsx)(`p`,{className:`line-clamp-3 whitespace-pre-line text-ink-2`,children:e.text})]},t))}):(0,$.jsx)(`p`,{className:`mt-2 text-[0.8125rem] text-ink-3`,children:X(`project.searchNone`)}):null]})}function qt({projectId:e,data:t,readOnly:n}){let r=oe(e,n),[i,a]=N(`documents`,`list`),[o,s]=(0,Q.useState)(null),c=t.files.filter(e=>e.kind===`document`),l=c.find(e=>e.id===o),u=i===`cards`?Ut:Vt;return(0,$.jsxs)(k,{title:X(`project.documents`),hint:X(`project.documentsHint`),children:[c.length?(0,$.jsx)(le,{layout:i,onToggle:a,children:(0,$.jsx)(Kt,{projectId:e})}):null,c.length?(0,$.jsx)(`ul`,{className:H(`mb-3`,i===`cards`?`grid grid-cols-[repeat(auto-fill,minmax(220px,1fr))] gap-3`:`flex flex-col gap-2`),children:c.map(t=>(0,$.jsx)(u,{projectId:e,file:t,actions:r,onPreview:()=>s(t.id)},t.id))}):null,n?c.length?null:(0,$.jsx)(`p`,{className:`text-[0.875rem] text-ink-3`,children:X(`project.staysLocal`)}):(0,$.jsxs)(ae,{accept:`.pdf,.docx,.doc,.xlsx,.csv,.tsv,.txt,.md,.json,.html,.eml,image/*`,onFiles:e=>r.upload(`document`,e),className:`h-16 w-full`,children:[r.busy?(0,$.jsx)(V,{className:`size-4`}):(0,$.jsx)(ne,{className:`size-4`}),X(`project.drop`),` `,(0,$.jsx)(`span`,{className:`underline`,children:X(`project.documentAdd`)})]}),r.error?(0,$.jsx)(`p`,{className:`mt-3 text-[0.875rem] text-rose`,children:r.error}):null,c.length&&!t.embeddings?(0,$.jsx)(`p`,{className:`mt-3 text-[0.8125rem] text-ink-3`,children:X(`project.keywordsOnly`)}):null,l?(0,$.jsx)(Gt,{projectId:e,file:l,onClose:()=>s(null)}):null]})}var Jt=e=>/^(ja|yes|true)$/i.test(e.trim()),Yt={text:he,longtext:et,number:We,date:Be,url:I,email:y,phone:Xe,boolean:nt};function Xt({type:e,detected:t,onChange:n}){let[r,i]=(0,Q.useState)(!1),[a,o]=(0,Q.useState)(!1),s=(0,Q.useRef)(null);(0,Q.useEffect)(()=>{if(!r)return;let e=e=>{s.current?.contains(e.target)||i(!1)},t=e=>e.key===`Escape`&&i(!1);return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[r]);let c=Yt[e??t],l=`${X(`project.factType`)}: ${X(`project.type.${e??t}`)}`,u=`flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-[0.875rem] text-ink-2 hover:bg-accent hover:text-ink`,d=e=>{n(e),i(!1)};return(0,$.jsxs)(`div`,{className:`relative`,ref:s,children:[(0,$.jsx)(`button`,{type:`button`,"aria-label":l,title:l,"aria-haspopup":`menu`,"aria-expanded":r,onClick:e=>{o(window.innerHeight-e.currentTarget.getBoundingClientRect().bottom<400),i(e=>!e)},className:H(`inline-flex size-11 items-center justify-center rounded-lg transition hover:bg-accent hover:text-ink`,r?`bg-accent text-ink`:e?`text-ink-2`:`text-ink-4`),children:(0,$.jsx)(c,{className:`size-4`})}),r?(0,$.jsxs)(`div`,{role:`menu`,className:H(`absolute right-0 z-50 w-56 animate-rise rounded-xl bg-card p-1.5 shadow-overlay ring-1 ring-border-soft`,a?`bottom-12`:`top-12`),children:[(0,$.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":!e,className:u,onClick:()=>d(void 0),children:[(0,$.jsx)(ie,{className:`size-4 shrink-0`}),(0,$.jsx)(`span`,{className:`flex-1`,children:X(`project.factAuto`)}),(0,$.jsx)(`span`,{className:`text-[0.75rem] text-ink-4`,children:X(`project.type.${t}`)}),(0,$.jsx)(C,{className:H(`size-4 shrink-0`,e&&`invisible`)})]}),(0,$.jsx)(`div`,{className:`mx-2 my-1 h-px bg-border-soft`}),ft.map(t=>{let n=Yt[t];return(0,$.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e===t,className:u,onClick:()=>d(t),children:[(0,$.jsx)(n,{className:`size-4 shrink-0`}),(0,$.jsx)(`span`,{className:`flex-1`,children:X(`project.type.${t}`)}),(0,$.jsx)(C,{className:H(`size-4 shrink-0`,e!==t&&`invisible`)})]},t)})]}):null]})}function Zt({facts:e,save:t,readOnly:n}){let r=(0,Q.useRef)(0),i=(0,Q.useRef)(null),[a,o]=(0,Q.useState)(()=>e.map(e=>({...e,id:`f${r.current++}`}))),s=A(a.filter(e=>e.key&&e.label.trim()).map(({key:e,label:t,value:n,type:r})=>({key:e,label:t.trim(),value:n,...r?{type:r}:{}})),t),c=(e,t)=>o(n=>n.map(n=>n.id===e?{...n,...t}:n)),l=(e,t,n=!1)=>{let a=`f${r.current++}`;i.current=`${a}:${t}`;let s={id:a,key:``,label:``,value:``,...e};o(e=>n?[s,...e]:[...e,s])},u=e=>t=>{t&&i.current===e&&(i.current=null,t.focus())},d=xt.filter(e=>!a.some(t=>t.key===e.key));return(0,$.jsxs)(k,{title:X(`project.facts`),hint:X(`project.factsHint`),save:s,locked:n,action:a.length<St.facts&&!n?(0,$.jsxs)(J,{variant:`secondary`,size:`sm`,onClick:()=>l({},`label`,!0),children:[(0,$.jsx)(D,{className:`size-4`}),` `,X(`project.factAdd`)]}):null,children:[(0,$.jsx)(`div`,{className:`flex flex-col gap-2`,children:a.map(e=>{let t=yt(e.value),r=e.type??t;return(0,$.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto_auto] items-start gap-x-1 gap-y-2 sm:grid-cols-[minmax(0,2fr)_minmax(0,3fr)_auto_auto]`,children:[(0,$.jsx)(q,{ref:u(`${e.id}:label`),value:e.label,placeholder:X(`project.factLabel`),title:e.key?`{{facts.${e.key}}}`:void 0,onChange:t=>c(e.id,{label:t.target.value}),onBlur:()=>{!e.key&&e.label.trim()&&c(e.id,{key:bt(e.label,a.map(e=>e.key))})},className:`max-sm:col-span-3 max-sm:font-medium sm:mr-1`}),e.type===`boolean`?(0,$.jsxs)(`div`,{className:`flex h-11 items-center gap-3`,children:[(0,$.jsx)(me,{checked:Jt(e.value),label:e.label,onChange:t=>c(e.id,{value:X(t?`project.yes`:`project.no`)})}),(0,$.jsx)(`span`,{className:`text-[0.875rem] text-ink-2`,children:Jt(e.value)?X(`project.yes`):X(`project.no`)})]}):(0,$.jsx)(pe,{ref:u(`${e.id}:value`),rows:1,minRows:r===`longtext`?2:1,maxRows:10,value:e.value,placeholder:X(`project.factValue`),onChange:t=>c(e.id,{value:t.target.value}),className:`min-h-11`}),(0,$.jsx)(Xt,{type:e.type,detected:t,onChange:t=>c(e.id,{type:t})}),n?null:(0,$.jsx)(G,{label:X(`project.remove`),onClick:()=>o(t=>t.filter(t=>t.id!==e.id)),className:`size-11 rounded-lg hover:text-rose`,children:(0,$.jsx)(L,{className:`size-4`})})]},e.id)})}),a.length<St.facts&&!n?(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 ${a.length?`mt-4`:``}`,children:[(0,$.jsxs)(J,{variant:`secondary`,size:`sm`,onClick:()=>l({},`label`),children:[(0,$.jsx)(D,{className:`size-4`}),` `,X(`project.factAdd`)]}),d.map(e=>(0,$.jsxs)(`button`,{type:`button`,onClick:()=>l({key:e.key,label:z===`en`?e.en:e.de},`value`),className:`inline-flex h-8 items-center gap-1 rounded-full bg-paper-2 px-3 text-[0.8125rem] text-ink-2 transition hover:bg-paper-3 hover:text-ink`,children:[(0,$.jsx)(D,{className:`size-3.5`}),` `,z===`en`?e.en:e.de]},e.key))]}):null]})}function Qt({project:e,save:t}){let[n,r]=(0,Q.useState)(e.brand.name??``),[i,a]=(0,Q.useState)(e.brand.about??``),o=A({name:n.trim(),about:i.trim()},e=>t({brand:e}));return(0,$.jsx)(k,{title:X(`project.base`),hint:X(`project.baseHint`),save:o,locked:e.readOnly,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`project.title`)}),(0,$.jsx)(q,{value:n,maxLength:120,onChange:e=>r(e.target.value)}),(0,$.jsx)(`p`,{className:`mt-1.5 text-[0.8125rem] text-ink-3`,children:X(`project.titleHint`)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`project.about`)}),(0,$.jsx)(pe,{minRows:4,value:i,onChange:e=>a(e.target.value)}),(0,$.jsx)(`p`,{className:`mt-1.5 text-[0.8125rem] text-ink-3`,children:X(`project.aboutHint`)})]})]})})}function $t({project:e,group:t,children:n}){let r=d(),i=M(e.id),[a,o]=(0,Q.useState)(0),s=async t=>{await u.patch(`/api/studio/projects/${e.id}`,t),await r.invalidateQueries({queryKey:[`projects`]})},c=Z({mutationFn:()=>u.del(`/api/studio/projects/${e.id}`),onSuccess:()=>r.invalidateQueries({queryKey:[`projects`]})}),l=_e(),f=i.data??{files:[],embeddings:!0},p=`${e.id}:${a}`,m=e.readOnly;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-9 pb-20`,children:[m?(0,$.jsx)(Pe,{children:je(e)}):(0,$.jsx)(dt,{projectId:e.id,onChanged:()=>o(e=>e+1)},e.id),t===`info`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(j,{id:`base`,children:(0,$.jsx)(Qt,{project:e,save:s},`base:${p}`)}),(0,$.jsx)(j,{id:`logos`,children:(0,$.jsx)(jt,{projectId:e.id,data:f,readOnly:m})}),(0,$.jsx)(j,{id:`colors`,children:(0,$.jsx)(Tt,{colors:e.brand.colors??[],save:e=>s({brand:{colors:e}}),readOnly:m},`colors:${p}`)}),(0,$.jsx)(j,{id:`assets`,children:(0,$.jsx)(Ft,{projectId:e.id,data:f,readOnly:m})}),(0,$.jsx)(j,{id:`facts`,children:(0,$.jsx)(Zt,{facts:e.facts,save:e=>s({facts:e}),readOnly:m},`facts:${p}`)})]}):(0,$.jsx)(j,{id:`documents`,children:(0,$.jsx)(qt,{projectId:e.id,data:f,readOnly:m})}),n,t===`info`&&l&&!m?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(J,{variant:`danger`,busy:c.isPending,onClick:()=>confirm(`${X(`settings.delete`)}?`)&&c.mutate(),children:X(`settings.delete`)}),c.error?(0,$.jsx)(`p`,{className:`mt-2 text-[0.875rem] text-rose`,children:c.error.message}):null]}):null]})}var en={q:``,mode:``,days:0};function tn(e,t,n){let r=new URLSearchParams;t&&r.set(`wizard`,t),n.q.trim()&&r.set(`q`,n.q.trim()),n.mode&&r.set(`mode`,n.mode),n.days&&r.set(`days`,String(n.days));let i=r.toString();return c({queryKey:[`results`,e,i],queryFn:()=>u.get(`/api/studio/projects/${e}/results${i&&`?${i}`}`),enabled:!!e,placeholderData:e=>e,refetchInterval:15e3})}function nn({filter:e,onFilter:t}){let[n,r]=(0,Q.useState)(e.q);return(0,Q.useEffect)(()=>{if(n===e.q)return;let r=setTimeout(()=>t({...e,q:n}),250);return()=>clearTimeout(r)},[n,e,t]),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,$.jsxs)(`div`,{className:`relative min-w-0 flex-1 basis-56`,children:[(0,$.jsx)(E,{className:`-translate-y-1/2 pointer-events-none absolute top-1/2 left-3 size-4 text-ink-3`}),(0,$.jsx)(q,{type:`search`,value:n,onChange:e=>r(e.target.value),placeholder:X(`space.resultsSearch`),"aria-label":X(`space.resultsSearch`),className:`w-full pl-9`})]}),(0,$.jsx)(Y,{value:e.mode,onChange:n=>t({...e,mode:n}),options:[{value:``,label:X(`space.resultsModeAll`)},{value:`live`,label:`Live`},{value:`test`,label:`Test`}],className:`w-32`}),(0,$.jsx)(Y,{value:String(e.days),onChange:n=>t({...e,days:Number(n)}),options:[{value:`0`,label:X(`space.resultsAnyTime`)},{value:`1`,label:X(`space.resultsDay`)},{value:`7`,label:X(`space.resultsDays`,{n:7})},{value:`30`,label:X(`space.resultsDays`,{n:30})}],className:`w-44`})]})}function rn({data:e,wizardId:t,filter:n,onFilter:r}){let[i,a]=(0,Q.useState)(null),o=t=>e.wizards.find(e=>e.id===t)?.title??``,s=new Intl.DateTimeFormat(z,{dateStyle:`medium`,timeStyle:`short`});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(k,{title:t?o(t):X(`space.resultsAll`),hint:X(`space.resultsHint`),plain:!0,children:[(0,$.jsx)(nn,{filter:n,onFilter:r}),e.runs.length?(0,$.jsx)(W,{className:`flex flex-col p-1.5`,children:e.runs.map(e=>(0,$.jsxs)(`button`,{type:`button`,onClick:()=>a(e),className:`flex items-center gap-3 rounded-lg px-3 py-2.5 text-left transition hover:bg-accent`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`div`,{className:`truncate text-[0.875rem]`,children:t?s.format(new Date(e.doneAt)):o(e.wizardId)}),(0,$.jsxs)(`div`,{className:`truncate text-[0.75rem] text-ink-3`,children:[t?null:`${s.format(new Date(e.doneAt))} · `,X(`space.resultCredits`,{n:e.credits})]})]}),e.assets?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[0.75rem] text-ink-3 tabular-nums`,title:X(`space.resultFiles`,{n:e.assets}),children:[(0,$.jsx)(ee,{className:`size-3.5`}),e.assets]}):null,e.mode===`test`?(0,$.jsx)(K,{children:`Test`}):(0,$.jsxs)(K,{tone:`live`,children:[`Live v`,e.version]})]},e.id))}):(0,$.jsx)(W,{children:(0,$.jsx)(de,{children:n.q.trim()||n.mode||n.days?X(`space.resultsNone`):X(`space.resultsEmpty`)})})]}),i?(0,$.jsx)(`div`,{className:`fixed inset-0 z-50 flex justify-end bg-[oklch(20%_0.01_60/0.22)] backdrop-blur-[1px]`,onClick:()=>a(null),children:(0,$.jsxs)(`div`,{className:`flex h-full w-full max-w-[680px] animate-rise flex-col bg-background shadow-overlay`,onClick:e=>e.stopPropagation(),children:[(0,$.jsxs)(`div`,{className:`flex h-14 shrink-0 items-center gap-3 px-4`,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium text-[0.875rem]`,children:o(i.wizardId)}),i.mode===`test`?(0,$.jsx)(K,{children:`Test`}):(0,$.jsxs)(K,{tone:`live`,children:[`Live v`,i.version]}),(0,$.jsx)(G,{label:X(`editor.close`),onClick:()=>a(null),children:(0,$.jsx)(Se,{className:`size-5`})})]}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,$.jsx)(b,{runId:i.id,compact:!0},i.id)})]})}):null]})}function an(e){return c({queryKey:[`space-data`,e],queryFn:()=>u.get(`/api/studio/projects/${e}/data`),enabled:!!e})}function on(e){let t=t=>[...e.tables.filter(e=>e.wizardId===t).map(e=>({key:`t:${e.id}`,kind:`table`,title:e.title,rows:e.rows})),...e.pages.filter(e=>e.wizardId===t).map(e=>({key:`p:${e.id}`,kind:`page`,title:e.title}))];return[{key:`own`,label:X(`data.own`),items:t(null)},...e.wizards.map(e=>({key:e.id,label:e.title,items:t(e.id)}))].filter(e=>e.items.length)}var sn={table:R,page:ge};function cn({kind:e,projectId:t,data:n,onClose:r,onMade:i}){let a=d(),[o,s]=(0,Q.useState)(``),[c,l]=(0,Q.useState)(``),f=Z({mutationFn:()=>u.post(`/api/studio/projects/${t}/${e===`table`?`tables`:`pages`}`,{title:o.trim(),wizardId:c||null}),onSuccess:async({id:n})=>{await a.invalidateQueries({queryKey:[`space-data`,t]}),i(`${e===`table`?`t`:`p`}:${n}`),s(``),l(``)}});return(0,$.jsx)(U,{open:e!==null,onClose:r,title:X(e===`table`?`data.newTable`:`data.newPage`),children:(0,$.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),o.trim()&&f.mutate()},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`data.title`)}),(0,$.jsx)(q,{"data-autofocus":!0,value:o,maxLength:120,onChange:e=>s(e.target.value)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`data.owner`)}),(0,$.jsx)(Y,{value:c,onChange:l,options:[{value:``,label:X(`data.own`)},...n.wizards.map(e=>({value:e.id,label:e.title}))]})]}),f.error?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-rose`,children:f.error.message}):null,(0,$.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,$.jsx)(J,{variant:`ghost`,onClick:r,children:X(`common.cancel`)}),(0,$.jsx)(J,{type:`submit`,busy:f.isPending,disabled:!o.trim(),children:X(`data.create`)})]})]})})}function ln({projectId:e,data:t,readOnly:n,onOpen:r}){let[i,a]=(0,Q.useState)(null),o=on(t),s=new Map([...t.tables.map(e=>[`t:${e.id}`,e.updatedAt]),...t.pages.map(e=>[`p:${e.id}`,e.updatedAt])]),c=new Intl.DateTimeFormat(z,{dateStyle:`medium`});return(0,$.jsxs)(k,{title:X(`space.data`),hint:X(`data.hint`),plain:!0,action:n?null:(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsxs)(J,{variant:`secondary`,size:`sm`,onClick:()=>a(`table`),children:[(0,$.jsx)(D,{className:`size-4`}),` `,X(`data.table`)]}),(0,$.jsxs)(J,{variant:`secondary`,size:`sm`,onClick:()=>a(`page`),children:[(0,$.jsx)(D,{className:`size-4`}),` `,X(`data.page`)]})]}),children:[o.length?(0,$.jsx)(`div`,{className:`flex flex-col gap-5`,children:o.map(e=>(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(`p`,{className:`px-1 font-medium text-[0.6875rem] text-ink-4 uppercase tracking-[0.12em]`,children:e.label}),(0,$.jsx)(W,{className:`flex flex-col p-1.5`,children:e.items.map(e=>{let t=sn[e.kind];return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>r(e.key),className:`flex items-center gap-3 rounded-lg px-3 py-2.5 text-left transition hover:bg-accent`,children:[(0,$.jsx)(t,{className:`size-4 shrink-0 text-ink-3`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[0.875rem]`,children:e.title}),(0,$.jsxs)(`span`,{className:`shrink-0 text-[0.75rem] text-ink-3 tabular-nums`,children:[e.kind===`table`?`${X(`data.rows`,{n:e.rows??0})} · `:``,c.format(new Date(s.get(e.key)??Date.now()))]})]},e.key)})})]},e.key))}):(0,$.jsx)(W,{children:(0,$.jsx)(de,{children:X(`data.empty`)})}),(0,$.jsx)(cn,{kind:i,projectId:e,data:t,onClose:()=>a(null),onMade:e=>{a(null),r(e)}})]})}function un({project:e,save:t}){let[n,r]=(0,Q.useState)(!1),[i,a]=(0,Q.useState)(e.name),o=Z({mutationFn:()=>t({name:i.trim()}),onSuccess:()=>r(!1)});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(G,{label:X(`project.rename`),onClick:()=>{a(e.name),r(!0)},children:(0,$.jsx)(h,{className:`size-4`})}),(0,$.jsx)(U,{open:n,onClose:()=>r(!1),title:X(`project.rename`),children:(0,$.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),i.trim()&&o.mutate()},children:[(0,$.jsx)(q,{"data-autofocus":!0,value:i,maxLength:80,onChange:e=>a(e.target.value)}),o.error?(0,$.jsx)(`p`,{className:`mt-3 text-[0.875rem] text-rose`,children:o.error.message}):null,(0,$.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,$.jsx)(J,{variant:`ghost`,onClick:()=>r(!1),children:X(`common.cancel`)}),(0,$.jsx)(J,{type:`submit`,busy:o.isPending,disabled:!i.trim(),children:X(`settings.save`)})]})]})})]})}function dn({project:e}){let t=d();return(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(S,{}),e.readOnly?null:(0,$.jsx)(un,{project:e,save:async n=>{await u.patch(`/api/studio/projects/${e.id}`,n),await t.invalidateQueries({queryKey:[`projects`]})}})]})}function fn(e,t){let n=e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``).replace(/^[^a-z]+/,``).slice(0,48)||`column`,r=n,i=2;for(;t.includes(r);)r=`${n}_${i++}`;return r}var pn={milliseconds:1,seconds:1e3,minutes:6e4,hours:36e5,days:864e5},mn=[`text`,`number`,`date`,`duration`,`select`,`boolean`];function hn(e,t){if(t==null)return``;if(e.type===`duration`&&typeof t==`number`)return String(t/pn[e.format.inputUnit]);if(e.type===`date`&&e.format.kind===`datetime`&&typeof t==`string`){let e=new Date(t);return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().slice(0,16)}return String(t)}function gn(e,t){return t.trim()===``?null:e.type===`date`&&e.format.kind===`datetime`?new Date(t).toISOString():t}var _n=`w-full min-w-0 rounded-md bg-transparent px-2 py-1.5 text-[0.875rem] outline-none transition placeholder:text-ink-4 hover:bg-accent focus:bg-paper focus:ring-1 focus:ring-ring disabled:hover:bg-transparent`;function vn({column:e,value:t,readOnly:n,invalid:r,onSave:i}){let a=hn(e,t),[o,s]=(0,Q.useState)(a);(0,Q.useEffect)(()=>s(a),[a]);let c=(t=o)=>{t!==a&&i(gn(e,t))};if(e.type===`boolean`)return(0,$.jsx)(`div`,{className:`px-2 py-1.5`,children:(0,$.jsx)(`input`,{type:`checkbox`,checked:t===!0,disabled:n,onChange:e=>i(e.target.checked),"aria-label":e.name,className:`size-4 accent-[var(--ember)]`})});if(e.type===`select`&&e.format.multiple){let r=Array.isArray(t)?t:[],a=t=>e.format.options.find(e=>e.id===t)?.label??t;return(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 px-2 py-1`,children:[r.map(e=>(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-paper-2 py-0.5 pr-1 pl-2 text-[0.75rem]`,children:[a(e),n?null:(0,$.jsx)(`button`,{type:`button`,"aria-label":X(`data.removeOption`),onClick:()=>i(r.filter(t=>t!==e)),className:`rounded-full text-ink-3 hover:text-ink`,children:(0,$.jsx)(Se,{className:`size-3`})})]},e)),n?null:(0,$.jsxs)(`select`,{value:``,onChange:e=>e.target.value&&i([...r,e.target.value]),"aria-label":e.name,className:`h-7 rounded-md bg-transparent px-1 text-[0.75rem] text-ink-3 outline-none hover:bg-accent`,children:[(0,$.jsx)(`option`,{value:``,children:`+`}),e.format.options.filter(e=>!r.includes(e.id)).map(e=>(0,$.jsx)(`option`,{value:e.id,children:e.label},e.id))]})]})}if(e.type===`select`)return(0,$.jsxs)(`select`,{value:typeof t==`string`?t:``,disabled:n,onChange:e=>i(e.target.value||null),"aria-label":e.name,className:_n,children:[(0,$.jsx)(`option`,{value:``}),e.format.options.map(e=>(0,$.jsx)(`option`,{value:e.id,children:e.label},e.id))]});if(e.type===`text`&&e.format?.style&&e.format.style!==`single`)return(0,$.jsx)(`textarea`,{value:o,rows:1,disabled:n,onChange:e=>s(e.target.value),onBlur:()=>c(),"aria-label":e.name,className:H(_n,`field-sizing-content max-h-40 resize-none`)});let l=e.type===`date`?{date:`date`,datetime:`datetime-local`,time:`time`}[e.format.kind]:`text`;return(0,$.jsx)(`input`,{type:l,inputMode:e.type===`number`||e.type===`duration`?`decimal`:void 0,value:o,disabled:n,onChange:t=>{s(t.target.value),e.type===`date`&&c(t.target.value)},onBlur:()=>e.type!==`date`&&c(),onKeyDown:e=>{e.key===`Enter`&&e.target.blur(),e.key===`Escape`&&s(a)},"aria-label":e.name,className:H(_n,(e.type===`number`||e.type===`duration`)&&`text-right tabular-nums`,r&&`ring-1 ring-rose`)})}function yn(e){return e.type===`number`&&e.format.style===`currency`?e.format.currency??null:e.type===`number`&&e.format.style===`percent`?`%`:e.type===`duration`?X(`data.unit.${e.format.inputUnit}`):null}function bn(e){return{name:e?.name??``,type:e?.type??`text`,required:e?.required??!1,textStyle:e?.type===`text`&&(e.format?.style??`single`)!==`single`?`multiline`:`single`,numberStyle:e?.type===`number`?e.format.style:`decimal`,currency:e?.type===`number`?e.format.currency??`EUR`:`EUR`,dateKind:e?.type===`date`?e.format.kind:`date`,unit:e?.type===`duration`&&[`minutes`,`hours`,`days`].includes(e.format.inputUnit)?e.format.inputUnit:`minutes`,options:e?.type===`select`?e.format.options.map(e=>e.label).join(`
|
|
3
|
-
`):``,multiple:e?.type===`select`&&!!e.format.multiple}}function xn(e,t,n){let r={id:t,name:e.name.trim(),...e.required?{required:!0}:{}};switch(e.type){case`number`:return{...r,type:`number`,format:e.numberStyle===`currency`?{style:`currency`,currency:e.currency.trim().toUpperCase()}:{style:e.numberStyle}};case`date`:return{...r,type:`date`,format:{kind:e.dateKind}};case`duration`:return{...r,type:`duration`,format:{inputUnit:e.unit,display:`hms`}};case`select`:{let t=n?.type===`select`?n.format.options:[],i=[],a=e.options.split(`
|
|
4
|
-
`).map(e=>e.trim()).filter(Boolean).map(e=>{let n=t.find(t=>t.label===e)?.id??fn(e,i);return i.push(n),{id:n,label:e}});return{...r,type:`select`,format:{allowCustom:!1,options:a,...e.multiple?{multiple:!0}:{}}}}case`boolean`:return{...r,type:`boolean`};default:return{...r,type:`text`,...e.textStyle===`multiline`?{format:{style:`multiline`}}:{}}}}function Sn({open:e,column:t,columns:n,onClose:r,onSave:i}){let[a,o]=(0,Q.useState)(()=>bn(t)),[s,c]=(0,Q.useState)(null),[l,u]=(0,Q.useState)(!1);(0,Q.useEffect)(()=>{e&&(o(bn(t)),c(null))},[e,t]);let d=e=>o(t=>({...t,...e})),f=async e=>{u(!0),c(null);try{await i(e),r()}catch(e){c(e.message)}finally{u(!1)}},p=()=>{let e=t?.id??fn(a.name,n.map(e=>e.id)),r=xn(a,e,t);return f(t?n.map(e=>e.id===t.id?r:e):[...n,r])};return(0,$.jsx)(U,{open:e,onClose:r,title:t?t.name:X(`data.newColumn`),children:(0,$.jsxs)(`form`,{className:`flex flex-col gap-4`,onSubmit:e=>{e.preventDefault(),a.name.trim()&&p()},children:[(0,$.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`data.columnName`)}),(0,$.jsx)(q,{"data-autofocus":!0,value:a.name,maxLength:128,onChange:e=>d({name:e.target.value})})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`data.columnType`)}),(0,$.jsx)(Y,{value:a.type,onChange:e=>d({type:e}),options:mn.map(e=>({value:e,label:X(`data.type.${e}`)}))})]})]}),a.type===`text`?(0,$.jsx)(Y,{value:a.textStyle,onChange:e=>d({textStyle:e}),options:[{value:`single`,label:X(`data.text.single`)},{value:`multiline`,label:X(`data.text.multiline`)}]}):null,a.type===`number`?(0,$.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,$.jsx)(Y,{value:a.numberStyle,onChange:e=>d({numberStyle:e}),options:[`integer`,`decimal`,`percent`,`currency`].map(e=>({value:e,label:X(`data.number.${e}`)}))}),a.numberStyle===`currency`?(0,$.jsx)(q,{value:a.currency,maxLength:3,"aria-label":X(`data.currency`),placeholder:`EUR`,onChange:e=>d({currency:e.target.value})}):null]}):null,a.type===`date`?(0,$.jsx)(Y,{value:a.dateKind,onChange:e=>d({dateKind:e}),options:[`date`,`datetime`,`time`].map(e=>({value:e,label:X(`data.date.${e}`)}))}):null,a.type===`duration`?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`data.unit`)}),(0,$.jsx)(Y,{value:a.unit,onChange:e=>d({unit:e}),options:[`minutes`,`hours`,`days`].map(e=>({value:e,label:X(`data.unit.${e}`)}))})]}):null,a.type===`select`?(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(B,{children:X(`data.options`)}),(0,$.jsx)(pe,{minRows:3,value:a.options,onChange:e=>d({options:e.target.value})})]}),(0,$.jsxs)(`label`,{className:`flex items-center gap-3 text-[0.875rem]`,children:[(0,$.jsx)(me,{checked:a.multiple,onChange:e=>d({multiple:e})}),X(`data.multiple`)]})]}):null,(0,$.jsxs)(`label`,{className:`flex items-center gap-3 text-[0.875rem]`,children:[(0,$.jsx)(me,{checked:a.required,onChange:e=>d({required:e})}),X(`data.required`)]}),s?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-rose`,children:s}):null,(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t&&n.length>1?(0,$.jsx)(J,{variant:`ghost`,className:`text-rose`,disabled:l,onClick:()=>confirm(X(`data.confirmDelete`,{title:t.name}))&&void f(n.filter(e=>e.id!==t.id)),children:X(`data.deleteColumn`)}):null,(0,$.jsx)(`span`,{className:`flex-1`}),(0,$.jsx)(J,{variant:`ghost`,onClick:r,children:X(`common.cancel`)}),(0,$.jsx)(J,{type:`submit`,busy:l,disabled:!a.name.trim(),children:X(`settings.save`)})]})]})})}function Cn({tableId:e,onGone:t}){let n=d(),r=[`space-table`,e],i=c({queryKey:r,queryFn:()=>u.get(`/api/studio/tables/${e}`)}),[a,o]=(0,Q.useState)(null),[s,l]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(null),[h,g]=(0,Q.useState)(``);(0,Q.useEffect)(()=>g(i.data?.title??``),[i.data?.title]);let _=()=>n.invalidateQueries({queryKey:[`space-data`,i.data?.projectId]}),v=e=>n.setQueryData(r,t=>t&&{...t,rows:e(t.rows)}),y=e=>{l(e.message),i.refetch()},ee=async t=>{await u.patch(`/api/studio/tables/${e}`,t),await i.refetch(),await _()},b=Z({mutationFn:({row:t,column:n,value:r})=>u.patch(`/api/studio/tables/${e}/rows/${t}`,{cells:{[n]:r}}),onSuccess:(e,{row:t,column:n})=>{l(null),m(e=>e===`${t}:${n}`?null:e),v(t=>t.map(t=>t.id===e.id?{...t,cells:e.cells}:t))},onError:(e,{row:t,column:n})=>{if(e instanceof f&&e.body?.column===n){let e=i.data?.columns.find(e=>e.id===n)?.name??n;m(`${t}:${n}`),l(X(`data.badCell`,{column:e}));return}y(e)}}),te=Z({mutationFn:()=>u.post(`/api/studio/tables/${e}/rows`,{}),onSuccess:async e=>{v(t=>[...t,{...e,updatedAt:new Date().toISOString()}]),await _()},onError:y}),x=Z({mutationFn:t=>u.post(`/api/studio/tables/${e}/rows/delete`,{ids:[t]}),onSuccess:async(e,t)=>{v(e=>e.filter(e=>e.id!==t)),await _()},onError:y}),S=Z({mutationFn:()=>u.del(`/api/studio/tables/${e}`),onSuccess:async()=>{await _(),t()}});if(!i.data)return i.isError?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-rose`,children:i.error.message}):null;let{columns:C,rows:w,readOnly:T}=i.data,E=!!i.data.list;return(0,$.jsxs)(`section`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 px-1`,children:[(0,$.jsx)(`input`,{value:h,disabled:T,maxLength:120,onChange:e=>g(e.target.value),onBlur:()=>h.trim()&&h!==i.data?.title&&void ee({title:h}).catch(y),onKeyDown:e=>e.key===`Enter`&&e.target.blur(),"aria-label":X(`data.title`),className:`-ml-1 min-w-0 flex-1 rounded-md bg-transparent px-1 font-display font-semibold text-lg outline-none hover:bg-accent focus:bg-paper focus:ring-1 focus:ring-ring disabled:hover:bg-transparent`}),T?null:(0,$.jsx)(G,{label:X(`data.deleteTable`),onClick:()=>confirm(X(`data.confirmDelete`,{title:i.data.title}))&&S.mutate(),className:`hover:text-rose`,children:(0,$.jsx)(L,{className:`size-4`})})]}),E?(0,$.jsx)(`p`,{className:`-mt-1.5 px-1 text-[0.8125rem] text-ink-3`,children:X(`data.fromList`)}):null,(0,$.jsxs)(W,{className:`overflow-hidden`,children:[(0,$.jsx)(`div`,{className:`overflow-x-auto`,children:(0,$.jsxs)(`table`,{className:`w-full border-collapse text-left`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-border-soft border-b`,children:[C.map(e=>(0,$.jsx)(`th`,{className:`min-w-36 border-border-soft border-l p-1 font-medium first:border-l-0`,children:(0,$.jsxs)(`button`,{type:`button`,disabled:T||E,onClick:()=>o(e),className:`flex w-full items-center gap-1 rounded-md px-2 py-1.5 text-left text-[0.8125rem] text-ink-2 transition hover:bg-accent hover:text-ink disabled:hover:bg-transparent`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:e.name}),e.required?(0,$.jsx)(`span`,{className:`text-ember`,children:`*`}):null,yn(e)?(0,$.jsx)(`span`,{className:`font-normal text-ink-4`,children:yn(e)}):null]})},e.id)),(0,$.jsx)(`th`,{className:`w-10 p-1`,children:T||E?null:(0,$.jsx)(G,{label:X(`data.newColumn`),onClick:()=>o(`new`),className:`size-8`,children:(0,$.jsx)(D,{className:`size-4`})})})]})}),(0,$.jsx)(`tbody`,{children:w.map(e=>(0,$.jsxs)(`tr`,{className:`group border-border-soft border-b last:border-b-0`,children:[C.map(t=>(0,$.jsx)(`td`,{className:`border-border-soft border-l p-1 align-top first:border-l-0`,children:(0,$.jsx)(vn,{column:t,value:e.cells[t.id],readOnly:T,invalid:p===`${e.id}:${t.id}`,onSave:n=>b.mutate({row:e.id,column:t.id,value:n})})},t.id)),(0,$.jsx)(`td`,{className:`w-10 p-1 align-top`,children:T?null:(0,$.jsx)(G,{label:X(`data.deleteRow`),onClick:()=>x.mutate(e.id),className:`size-8 opacity-0 hover:text-rose focus:opacity-100 group-hover:opacity-100 coarse:opacity-100`,children:(0,$.jsx)(L,{className:`size-3.5`})})})]},e.id))})]})}),w.length?null:(0,$.jsx)(`p`,{className:`px-4 py-6 text-center text-[0.875rem] text-ink-3`,children:X(`data.noRows`)}),T?null:(0,$.jsx)(`div`,{className:`border-border-soft border-t p-1.5`,children:(0,$.jsxs)(J,{variant:`ghost`,size:`sm`,busy:te.isPending,onClick:()=>te.mutate(),children:[(0,$.jsx)(D,{className:`size-4`}),` `,X(`data.addRow`)]})})]}),s?(0,$.jsx)(`p`,{className:`px-1 text-[0.875rem] text-rose`,children:s}):null,(0,$.jsx)(Sn,{open:a!==null,column:a===`new`?null:a,columns:C,onClose:()=>o(null),onSave:e=>ee({columns:e})})]})}function wn(e){let t=e.join(` `),[n,r]=(0,Q.useState)(e[0]);return(0,Q.useEffect)(()=>{let e=t.split(` `),n=0,i=()=>{n=0;let t=window.scrollY>0&&window.innerHeight+window.scrollY>=document.documentElement.scrollHeight-4,i=Math.max(160,window.innerHeight/3),a=e[0];for(let t of e){let e=document.getElementById(t)?.getBoundingClientRect().top;e!==void 0&&e<=i&&(a=t)}r(t?e.at(-1):a)},a=()=>{n||=requestAnimationFrame(i)};return i(),window.addEventListener(`scroll`,a,{passive:!0}),window.addEventListener(`resize`,a),()=>{cancelAnimationFrame(n),window.removeEventListener(`scroll`,a),window.removeEventListener(`resize`,a)}},[t]),n}function Tn(e,t){let n=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;document.getElementById(e)?.scrollIntoView({block:`start`,behavior:t&&!n?`smooth`:`auto`})}function En({groups:e,current:t,onPick:n}){return e.map(e=>{let r=e.sections.map(e=>(0,$.jsx)(De,{icon:e.icon??Qe,label:e.label,selected:e.id===t,onPick:()=>n(e.id)},e.id));return e.label?(0,$.jsx)(Ae,{label:e.label,children:r},e.plugin):(0,$.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:r},`own`)})}function Dn(){let{group:e}=l(),[t,n]=r(),o=a(),{hash:s}=i(),{project:c,loading:u}=Te(),d=_e(),f=be(),m=Re(),[h,g]=(0,Q.useState)(null),[_,v]=(0,Q.useState)(null),[y,ee]=(0,Q.useState)(null),b=we(e)?e:void 0,te=ye().map(e=>({...e,to:`/space/${e.id}`})),x=te.find(e=>e.id===b),S=t.get(`show`),C=b?S?2:1:0,w=m?Math.min(C,1):b&&y!==b?1:0,T=ke(w),E=ke(C),ne=(0,Q.useMemo)(()=>({slot:h,narrow:m,setDetail:v}),[h,m]),D=c?c.brand.name?.trim()||c.name:X(`nav.project`),re=b&&b!==`results`?Ee(b,f):[],O=b?Ee(b,f).filter(e=>e.plugin):[],ae=wn([...re,...b===`results`?O:[]].flatMap(e=>e.sections.map(e=>e.id))),A=b===`results`&&S&&S!==`all`?S:null,[oe,ce]=(0,Q.useState)(en),M=tn(b===`results`?c?.id:void 0,A,oe),le=M.data?.wizards.find(e=>e.id===A)?.title,N=b===`data`&&S&&S!==`all`?S:null,P=an(b===`data`?c?.id:void 0),F=P.data?on(P.data).flatMap(e=>e.items).find(e=>e.key===N)?.title:void 0;xe([{label:D,to:`/space`},...x?[{label:x.label,to:`/space/${x.id}`}]:[],...x&&(_??le??F)?[{label:_??le??F}]:[]]);let I=b===`results`||b===`data`?s.slice(1):S||s.slice(1),L=(0,Q.useRef)(``);if((0,Q.useEffect)(()=>{let e=`${b}#${I}`;I&&L.current!==e&&document.getElementById(I)&&(L.current=e,requestAnimationFrame(()=>Tn(I,!1)))},[b,I,c?.id,f.spaceSections]),!b){let t=s.slice(1),n=t?ve(t,f):null;if(n)return(0,$.jsx)(p,{to:m?`/space/${n}?show=${t}`:{pathname:`/space/${n}`,hash:t},replace:!0});if(t&&f.status!==`ready`)return null;if(e!==void 0||!m)return(0,$.jsx)(p,{to:`/space/info`,replace:!0})}let ue=e=>{if(m){o({search:`?show=${e}`});return}L.current=`${b}#${e}`,Tn(e,!0),o({search:``,hash:e},{replace:!0})},R=e=>m?n({show:e}):n(e===`all`?{}:{show:e},{replace:!0}),z=e=>e.flatMap(e=>e.sections).map(e=>f.spaceSections.find(t=>t.id===e.id)).filter(e=>e!==void 0).map(e=>(0,$.jsx)(j,{id:e.id,children:(0,$.jsx)(k,{title:e.label(),hint:e.hint?.(),plain:!0,children:(0,$.jsx)(Ce,{of:e,children:(0,$.jsx)(e.component,{})})})},e.serial)),B=m?void 0:ae;return(0,$.jsx)(Ne.Provider,{value:ne,children:(0,$.jsx)(`div`,{className:`animate-rise`,children:(0,$.jsxs)(`div`,{className:`grid gap-6 md:grid-cols-[13.5rem_minmax(0,1fr)] md:gap-8 lg:grid-cols-[15rem_minmax(0,1fr)] lg:gap-10`,children:[(0,$.jsxs)(`aside`,{className:H(`min-w-0 md:sticky md:top-20 md:self-start`,m&&C===2&&`hidden`,m&&E===`back`&&Oe(`back`)),children:[(0,$.jsx)(Me,{title:D,open:w===1?x??null:null,onBack:()=>m?o(`/space`):ee(b??null)}),(0,$.jsx)(`div`,{className:H(Oe(T)),children:w===0?(0,$.jsx)(Fe,{entries:te,current:m?void 0:x,onPick:()=>ee(null)}):(0,$.jsx)(`div`,{ref:g})},w)]}),b?(0,$.jsxs)(`div`,{className:H(`min-w-0`,m&&C<2&&`hidden`,m&&E===`deeper`&&Oe(`deeper`)),children:[m?(0,$.jsx)(`div`,{className:`mb-3`,children:(0,$.jsx)(Le,{label:x?.label??D,onBack:()=>o(`/space/${b}`)})}):null,d&&c?(0,$.jsx)(`div`,{className:`mb-6`,children:(0,$.jsx)(dn,{project:c})}):null,b===`results`?(0,$.jsxs)(Ie,{children:[(0,$.jsxs)(`ul`,{className:`flex flex-col gap-0.5`,children:[(0,$.jsx)(De,{icon:Ke,label:X(`space.resultsAll`),selected:!m&&!A,onPick:()=>R(`all`)}),M.data?.wizards.filter(e=>e.results||e.id===A).map(e=>(0,$.jsx)(De,{icon:ie,label:e.title,badge:e.results?(0,$.jsx)(`span`,{className:`text-[0.75rem] text-ink-3 tabular-nums`,children:e.results}):null,selected:!m&&e.id===A,onPick:()=>R(e.id)},e.id))]}),(0,$.jsx)(En,{groups:O,current:B,onPick:ue})]}):b===`data`?(0,$.jsxs)(Ie,{children:[(0,$.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:(0,$.jsx)(De,{icon:se,label:X(`data.all`),selected:!m&&!N,onPick:()=>R(`all`)})}),P.data?on(P.data).map(e=>(0,$.jsx)(Ae,{label:e.label,children:e.items.map(e=>(0,$.jsx)(De,{icon:sn[e.kind],label:e.title,selected:!m&&e.key===N,onPick:()=>R(e.key)},e.key))},e.key)):null,(0,$.jsx)(En,{groups:O,current:B,onPick:ue})]}):(0,$.jsx)(Ie,{children:(0,$.jsx)(En,{groups:re,current:B,onPick:ue})}),c&&(b===`info`||b===`knowledge`)?(0,$.jsx)($t,{project:c,group:b,children:z(O)},c.id):null,c&&b===`data`?(0,$.jsx)(`div`,{className:`flex flex-col gap-9 pb-20`,children:N?.startsWith(`t:`)?(0,$.jsx)(Cn,{tableId:N.slice(2),onGone:()=>R(`all`)},N):N?.startsWith(`p:`)?(0,$.jsx)(it,{pageId:N.slice(2),onGone:()=>R(`all`)},N):(0,$.jsxs)($.Fragment,{children:[P.data?(0,$.jsx)(ln,{projectId:c.id,data:P.data,readOnly:c.readOnly,onOpen:R}):null,z(O)]})}):null,c&&b===`results`?(0,$.jsxs)(`div`,{className:`flex flex-col gap-9 pb-20`,children:[M.data?(0,$.jsx)(rn,{data:M.data,wizardId:A,filter:oe,onFilter:ce}):null,M.isError?(0,$.jsx)(`p`,{className:`text-[0.875rem] text-rose`,children:M.error.message}):null,z(O)]}):null,c||u?null:(0,$.jsx)(de,{children:X(`settings.noProject`)})]}):null]})})})}export{Dn as ProjectPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{O as r,a as i,c as a,d as o,f as s,h as c,j as l,k as u,l as d,n as f,r as p}from"./api-RJbFM_oc.js";import{t as m}from"./createLucideIcon-q3MZMmnf.js";import{c as h,o as g,s as _,t as v}from"./RunnerView-Civq59Tk.js";import{t as y}from"./arrow-right-6FyN3e7D.js";import{d as b,h as x,t as S,y as C}from"./ui-HV_XbHjw.js";var w={name:`bookmark`,size:24,node:[[`path`,{d:`M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z`,key:`oz39mx`}]]};w.node;var T=m(w),E={name:`smartphone`,size:24,node:[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]};E.node;var D=m(E),O={name:`square-plus`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}],[`path`,{d:`M12 8v8`,key:`napkw2`}]],aliases:[`plus-square`]};O.node;var k=m(O),A=e(t(),1);function j(){if(window.self===window.top)return null;let e=new URLSearchParams(window.location.search).get(`embed`);return e===`inline`||e===`modal`?e:null}var M=j(),N=(e,t={})=>window.parent.postMessage({type:`engenty-wizard:${e}`,...t},`*`);function P(){(0,A.useEffect)(()=>{if(M===`inline`){let e=document.documentElement;document.getElementById(`root`)?.style.setProperty(`min-height`,`0`),e.style.overflow=`hidden`;let t=new ResizeObserver(()=>N(`height`,{height:Math.ceil(e.getBoundingClientRect().height)}));return t.observe(e),()=>t.disconnect()}if(M===`modal`){let e=e=>{e.key===`Escape`&&!document.querySelector(`dialog[open]`)&&N(`close`)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)}},[])}var F=e(n(),1);function I(e){(0,A.useEffect)(()=>{if(!e)return;let t=document.documentElement;return t.style.setProperty(`--raw-primary`,e),()=>{t.style.removeProperty(`--raw-primary`)}},[e])}function L(e,t){(0,A.useEffect)(()=>{if(!e||!t)return;let n=a(`/api/public/wizards/${e}`),r=[{rel:`manifest`,href:`${n}/manifest.webmanifest`},{rel:`apple-touch-icon`,href:`${n}/icons/apple-touch-icon.png`},{rel:`icon`,href:`${n}/icons/favicon.png`,type:`image/png`}].flatMap(({rel:e,href:t,type:n})=>{let r=document.querySelector(`link[rel="${e}"]`);if(!r)return[];let i={href:r.getAttribute(`href`),type:r.getAttribute(`type`)};return r.setAttribute(`href`,t),n&&r.setAttribute(`type`,n),[{link:r,before:i}]}),i=document.createElement(`meta`);return i.name=`apple-mobile-web-app-title`,i.content=t,document.head.appendChild(i),()=>{for(let{link:e,before:t}of r)for(let[n,r]of Object.entries(t))r===null?e.removeAttribute(n):e.setAttribute(n,r);i.remove()}},[e,t])}var R=/iPhone|iPad|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,z=R||/Android/.test(navigator.userAgent);function B(){let[e,t]=(0,A.useState)(()=>window.wizardInstall??null),[n,r]=(0,A.useState)(!1);if((0,A.useEffect)(()=>{let e=()=>t(window.wizardInstall??null);return window.addEventListener(`wizard-install`,e),()=>window.removeEventListener(`wizard-install`,e)},[]),window.matchMedia(`(display-mode: standalone)`).matches||navigator.standalone===!0||z&&!e&&!R)return null;let i=/Mac/.test(navigator.platform),a=C(z?`install.ios`:i?`install.bookmark.mac`:`install.bookmark.pc`);return(0,F.jsxs)(`div`,{className:`mt-6 flex flex-col items-center gap-2 text-[0.8125rem] text-ink-3`,children:[(0,F.jsxs)(`button`,{type:`button`,onClick:()=>{z&&e?(e.prompt(),window.wizardInstall=null,t(null)):r(e=>!e)},className:`inline-flex items-center gap-1.5 underline-offset-4 hover:text-ink hover:underline coarse:min-h-11`,children:[z?(0,F.jsx)(k,{className:`size-4`}):(0,F.jsx)(T,{className:`size-4`}),C(z?`install.add`:`install.bookmark`)]}),n?(0,F.jsx)(`p`,{className:`max-w-xs leading-relaxed`,children:a}):null]})}function V({brand:e,toggle:t=!0}){return(0,F.jsx)(`header`,{className:`safe-top`,children:(0,F.jsxs)(`div`,{className:`relative flex h-14 items-center justify-center px-5`,children:[e.logoUrl?(0,F.jsx)(`img`,{src:a(e.logoUrl),alt:e.name,className:`h-7 max-w-[160px] object-contain`}):e.name?(0,F.jsx)(`span`,{className:`max-w-[60%] truncate font-display font-semibold text-[0.9375rem] text-ink-2 tracking-tight`,children:e.name}):null,t?(0,F.jsx)(`div`,{className:`absolute right-3`,children:(0,F.jsx)(s,{})}):null]})})}function H({siteKey:e,onToken:t}){let n=(0,A.useRef)(null);return(0,A.useEffect)(()=>{let r=()=>{n.current&&window.turnstile&&!n.current.childElementCount&&window.turnstile.render(n.current,{sitekey:e,callback:t,appearance:`interaction-only`})};if(window.turnstile){r();return}let i=document.createElement(`script`);i.src=`https://challenges.cloudflare.com/turnstile/v0/api.js`,i.async=!0,i.onload=r,document.head.appendChild(i)},[e,t]),(0,F.jsx)(`div`,{ref:n,className:`mt-4 flex justify-center`})}function U({token:e}){return!/iPhone|iPad|iPod|Android/.test(navigator.userAgent)||g||M?null:(0,F.jsxs)(`a`,{href:_(`${window.location.origin}${i}/w/${e}`),className:`mt-3 inline-flex items-center gap-1.5 text-[0.8125rem] text-ink-3 underline-offset-4 hover:text-ink hover:underline coarse:min-h-11`,children:[(0,F.jsx)(D,{className:`size-4`}),` `,C(`install.app`)]})}var W=e=>`wz.run.${e}`,G=g&&new URLSearchParams(window.location.search).get(`start`)===`1`,K=M===`inline`?`min-h-80`:`min-h-dvh`;function q({wizard:e}){let t=r(),[n,i]=(0,A.useState)(!1),[a,s]=(0,A.useState)(null),[c,l]=(0,A.useState)(null),u=(()=>{try{return localStorage.getItem(W(e.token))}catch{return null}})(),d=async()=>{i(!0),s(null);try{let{runId:n}=await f.post(`/api/public/wizards/${e.token}/runs`,{turnstileToken:c??void 0,embedded:M!==null});try{localStorage.setItem(W(e.token),n)}catch{}t(`/w/${e.token}/${n}`,{replace:G})}catch(e){s(e.message),i(!1)}},p=G&&e.available&&!e.turnstileSiteKey,m=(0,A.useRef)(!1);return(0,A.useEffect)(()=>{p&&!m.current&&(m.current=!0,d())},[p]),p&&!a?(0,F.jsx)(`div`,{className:`flex min-h-[60dvh] items-center justify-center text-ink-4`,children:(0,F.jsx)(b,{})}):(0,F.jsxs)(`div`,{className:`mx-auto flex max-w-lg animate-rise flex-col items-center px-6 pt-6 pb-12 text-center sm:pt-16 sm:pb-16`,children:[(0,F.jsx)(o,{kind:e.avatar,size:190,fluffy:!0}),(0,F.jsx)(`h1`,{className:`mt-2 text-balance font-display font-semibold text-[1.875rem] leading-[1.1] tracking-tight sm:text-[2.125rem]`,children:e.title}),e.description?(0,F.jsx)(`p`,{className:`mt-3 text-[1rem] text-ink-2 leading-relaxed`,children:e.description}):null,e.available?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(S,{size:`lg`,className:`mt-10 min-w-48`,busy:n,disabled:!!e.turnstileSiteKey&&!c,onClick:d,children:[C(`run.start`),` `,(0,F.jsx)(y,{className:`size-4`})]}),e.turnstileSiteKey?(0,F.jsx)(H,{siteKey:e.turnstileSiteKey,onToken:l}):null,u?(0,F.jsx)(`button`,{type:`button`,onClick:()=>t(`/w/${e.token}/${u}`),className:`mt-4 text-[0.875rem] text-ink-3 underline-offset-4 hover:text-ink hover:underline coarse:min-h-11`,children:C(`run.resume`)}):null,M||g?null:(0,F.jsx)(B,{}),(0,F.jsx)(U,{token:e.token})]}):(0,F.jsx)(`p`,{className:`mt-10 rounded-xl bg-paper-2 px-5 py-4 text-[0.9375rem] text-ink-2`,children:e.unavailableReason??C(`run.unavailable`)}),a?(0,F.jsx)(`p`,{className:`mt-4 text-[0.875rem] text-rose`,children:a}):null]})}function J(){let{token:e,runId:t}=u(),n=r(),a=l({queryKey:[`public`,e],queryFn:()=>f.get(`/api/public/wizards/${e}`),retry:(e,t)=>p(t)&&e<3});if(I(a.data?.brand.accent),c(a.data?.avatar),L(e,a.data?.title),P(),(0,A.useEffect)(()=>{a.data&&(document.title=a.data.title)},[a.data]),(0,A.useEffect)(()=>{e&&t&&h(`run`,{token:e,runId:t})},[e,t]),a.isLoading)return(0,F.jsx)(`div`,{className:x(`flex items-center justify-center text-ink-4`,K),children:(0,F.jsx)(b,{})});if(!a.data){let e=p(a.error);return(0,F.jsxs)(`div`,{className:x(`flex flex-col items-center justify-center gap-4 px-6 text-center`,K),children:[(0,F.jsx)(o,{kind:`pebble`,size:80}),(0,F.jsx)(`p`,{className:`max-w-xs text-ink-3`,children:C(e?`common.offline`:`run.notFound`)}),e?(0,F.jsx)(S,{variant:`secondary`,onClick:()=>void a.refetch(),children:C(`common.retry`)}):null]})}return(0,F.jsxs)(`div`,{className:x(`flex flex-col`,K),children:[M===`inline`||g?null:(0,F.jsx)(V,{brand:a.data.brand,toggle:!M}),(0,F.jsx)(`div`,{className:`flex-1`,children:t?(0,F.jsx)(v,{runId:t,onRestart:()=>n(`/w/${e}`)}):(0,F.jsx)(q,{wizard:a.data})}),g?(0,F.jsx)(`div`,{className:`safe-bottom`}):(0,F.jsx)(`footer`,{className:`safe-bottom pt-6 text-center text-[0.75rem] text-ink-4`,children:(0,F.jsx)(`a`,{href:`${i}/`,target:M?`_blank`:void 0,rel:`noreferrer`,className:`inline-block py-3.5 hover:text-ink-2`,children:C(`run.madeWith`).replace(`engenty wizards`,d.name)})})]})}export{V as BrandHeader,J as PublicRunner,I as useBrandAccent};
|