wizards 0.2.1 → 0.2.3

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.
Files changed (80) hide show
  1. package/README.md +4 -1
  2. package/apps/runtime/dist/app.js +44 -0
  3. package/apps/runtime/dist/auth/account.js +16 -2
  4. package/apps/runtime/dist/auth/index.js +14 -1
  5. package/apps/runtime/dist/connectors/external.js +5 -0
  6. package/apps/runtime/dist/db/control-schema.js +12 -3
  7. package/apps/runtime/dist/db/migrations/control/0005_chilly_oracle.sql +1 -0
  8. package/apps/runtime/dist/db/migrations/control/0006_sleepy_mojo.sql +1 -0
  9. package/apps/runtime/dist/db/migrations/control/meta/0005_snapshot.json +358 -0
  10. package/apps/runtime/dist/db/migrations/control/meta/0006_snapshot.json +365 -0
  11. package/apps/runtime/dist/db/migrations/control/meta/_journal.json +14 -0
  12. package/apps/runtime/dist/db/migrations/tenant/0005_reflective_forgotten_one.sql +2 -0
  13. package/apps/runtime/dist/db/migrations/tenant/meta/0005_snapshot.json +1659 -0
  14. package/apps/runtime/dist/db/migrations/tenant/meta/_journal.json +7 -0
  15. package/apps/runtime/dist/db/schema.js +6 -0
  16. package/apps/runtime/dist/engine/asks.js +2 -0
  17. package/apps/runtime/dist/engine/push.js +58 -0
  18. package/apps/runtime/dist/engine/runner.js +6 -0
  19. package/apps/runtime/dist/env.js +14 -1
  20. package/apps/runtime/dist/limits.js +21 -0
  21. package/apps/runtime/dist/manage.js +16 -3
  22. package/apps/runtime/dist/mcp/tools.js +4 -2
  23. package/apps/runtime/dist/plugins/loader.js +23 -1
  24. package/apps/runtime/dist/routes/api.js +96 -6
  25. package/apps/runtime/dist/routes/runs.js +68 -2
  26. package/apps/runtime/dist/routes/studio.js +79 -11
  27. package/apps/runtime/dist/services/access.js +62 -0
  28. package/apps/runtime/dist/services/architect.js +3 -2
  29. package/apps/runtime/dist/services/cloud.js +241 -39
  30. package/apps/runtime/dist/services/errors.js +1 -0
  31. package/apps/runtime/dist/services/files.js +3 -3
  32. package/apps/runtime/dist/services/project-files.js +6 -0
  33. package/apps/runtime/dist/services/projects.js +38 -14
  34. package/apps/runtime/dist/services/spaces.js +400 -0
  35. package/apps/runtime/dist/services/wizards.js +19 -8
  36. package/apps/runtime/dist/tenants/control.js +47 -0
  37. package/apps/web/dist/assets/{ChangelogDialog-Co_9fs61.js → ChangelogDialog-CbZBUMRu.js} +1 -1
  38. package/apps/web/dist/assets/ChatPanel-zurtfj6A.js +1 -0
  39. package/apps/web/dist/assets/{CreditsDialog-D3fZRqXH.js → CreditsDialog-BewZHZTR.js} +1 -1
  40. package/apps/web/dist/assets/EditorPage-B7ZOoW5h.js +2 -0
  41. package/apps/web/dist/assets/{FlowPreview-CjUK5046.js → FlowPreview-DHrhPps0.js} +1 -1
  42. package/apps/web/dist/assets/HomePage-CBvWxXsq.js +1 -0
  43. package/apps/web/dist/assets/ImportWizard-CKjVJMaG.js +1 -0
  44. package/apps/web/dist/assets/{LocalRuntime-CTyLGC98.js → LocalRuntime-Brkvbzzg.js} +10 -10
  45. package/apps/web/dist/assets/NewWizardPage-B3XePMlp.js +2 -0
  46. package/apps/web/dist/assets/PublicRunner-Bn1g6HG9.js +1 -0
  47. package/apps/web/dist/assets/RunnerView-CO1Nk3jn.js +2 -0
  48. package/apps/web/dist/assets/SettingsPage-BIY4kHZl.js +2 -0
  49. package/apps/web/dist/assets/{SetupPage-CfXTOaIm.js → SetupPage-BvLwZH9i.js} +1 -1
  50. package/apps/web/dist/assets/{SharePage-CgByqrAF.js → SharePage-CDESJ11B.js} +1 -1
  51. package/apps/web/dist/assets/{api-KMi35npD.js → api-9sHuNTkp.js} +1 -1
  52. package/apps/web/dist/assets/changelog-Cto0j5-V.js +1 -0
  53. package/apps/web/dist/assets/index-CIwJmOjo.css +1 -0
  54. package/apps/web/dist/assets/{index-BmpnE7IO.js → index-VsRgvimv.js} +3 -3
  55. package/apps/web/dist/assets/{meta-4R1Lnr25.js → meta-B4mZqEso.js} +1 -1
  56. package/apps/web/dist/assets/oss-credits-Hu4LieLA.js +1 -0
  57. package/apps/web/dist/assets/outputs-boPx5ngv.js +69 -0
  58. package/apps/web/dist/assets/{session-B6-6VomQ.js → session-CJGuo1Tv.js} +1 -1
  59. package/apps/web/dist/assets/type-BMJpS6_D.js +1 -0
  60. package/apps/web/dist/assets/ui-iTYHqwvY.js +1 -0
  61. package/apps/web/dist/index.html +5 -5
  62. package/apps/web/dist/mcp/flow.html +54 -54
  63. package/modules/README.md +1 -1
  64. package/node_modules/@engenty-wizards/plugin-sdk/dist/index.d.ts +24 -1
  65. package/node_modules/@engenty-wizards/plugin-sdk/dist/studio.d.ts +1 -1
  66. package/package.json +1 -1
  67. package/apps/web/dist/assets/ChatPanel-Br3nYkUc.js +0 -1
  68. package/apps/web/dist/assets/EditorPage-BSjQC6FE.js +0 -2
  69. package/apps/web/dist/assets/HomePage-8v4HqIbP.js +0 -1
  70. package/apps/web/dist/assets/ImportWizard-DiV62Uno.js +0 -1
  71. package/apps/web/dist/assets/NewWizardPage-BBL2yenw.js +0 -2
  72. package/apps/web/dist/assets/PublicRunner-BwtoEVlE.js +0 -1
  73. package/apps/web/dist/assets/RunnerView-DOizlTad.js +0 -2
  74. package/apps/web/dist/assets/SettingsPage-CBDv04YS.js +0 -2
  75. package/apps/web/dist/assets/changelog-03JgixQA.js +0 -1
  76. package/apps/web/dist/assets/index-B9YVjvVY.css +0 -1
  77. package/apps/web/dist/assets/oss-credits-roB62QJu.js +0 -1
  78. package/apps/web/dist/assets/outputs-COE_nvAw.js +0 -69
  79. package/apps/web/dist/assets/type-Bj9H3eOK.js +0 -1
  80. package/apps/web/dist/assets/ui-Cs6lpsmj.js +0 -1
package/modules/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Plugins that ship with engenty wizards: every runtime loads what is in this folder, in a
4
4
  checkout, in the npm package and in the Docker image. Each is a folder with an
5
- `engenty.plugin.json`, as [docs/plugins.md](../docs/plugins.md) describes.
5
+ `engenty.plugin.json`, as [the plugin docs](../docs/content/dev/plugins/index.md) describe.
6
6
 
7
7
  A module here is part of the open product. A plugin that is not goes into a folder of
8
8
  `PLUGINS_DIR` instead.
@@ -2,7 +2,7 @@ import type { LibSQLDatabase } from "drizzle-orm/libsql";
2
2
  import type { z } from "zod";
3
3
  /**
4
4
  * What the runtime hands a plugin's server half. A plugin is a file or a folder the runtime finds
5
- * at start (docs/plugins.md); its default export is a factory that registers what it adds. The
5
+ * at start (docs/content/dev/plugins); its default export is a factory that registers what it adds. The
6
6
  * runtime remembers every registration under the plugin's id and takes it back when the plugin
7
7
  * unloads or reloads.
8
8
  */
@@ -109,6 +109,23 @@ export interface PluginEvents {
109
109
  }
110
110
  /** The tenant's database. A plugin reads and writes its own tables with it. */
111
111
  export type PluginDb = LibSQLDatabase<Record<string, never>>;
112
+ /** What a plugin asks a model. */
113
+ export interface PluginGenerateRequest<T = undefined> {
114
+ prompt: string;
115
+ system?: string;
116
+ /** The answer as an object of this shape instead of text. */
117
+ schema?: z.ZodType<T>;
118
+ /** The tenant's model class. Default `standard`; `classifier` is the fast, cheap one. */
119
+ model?: "classifier" | "standard" | "high" | "highest";
120
+ maxOutputTokens?: number;
121
+ /** Default: two minutes. */
122
+ signal?: AbortSignal;
123
+ }
124
+ export interface PluginGenerateResult<T = undefined> {
125
+ text: string;
126
+ /** Set when the request had a `schema`. */
127
+ object: T;
128
+ }
112
129
  export interface PluginServerApi {
113
130
  registerHttpRoute(route: PluginRoute): void;
114
131
  registerTool<S extends z.ZodType>(tool: PluginTool<S>): void;
@@ -121,6 +138,12 @@ export interface PluginServerApi {
121
138
  on<E extends keyof PluginEvents>(event: E, listener: (payload: PluginEvents[E]) => void | Promise<void>): void;
122
139
  /** The database of the tenant the current request, step or event belongs to. */
123
140
  getTenantDb(): PluginDb;
141
+ /**
142
+ * Asks a model of the current tenant, on the models its studio is set up with; the call is
143
+ * paid like any other of the tenant's. When no model is set up it throws an error with the
144
+ * status 503 and the code `no_model`, which a route passes on as it is.
145
+ */
146
+ generate<T = undefined>(request: PluginGenerateRequest<T>): Promise<PluginGenerateResult<T>>;
124
147
  /** Something to undo when the plugin unloads or reloads: a timer, a socket. */
125
148
  onUnload(dispose: () => void | Promise<void>): void;
126
149
  }
@@ -3,7 +3,7 @@ import type { ComponentType } from "react";
3
3
  * What the studio hands a plugin's studio half: the built `client.js` the studio loads after
4
4
  * sign-in. Its default export registers pages, entries of the top bar and sections of the
5
5
  * settings. React, the router and the studio's own components come from the studio
6
- * (docs/plugins.md), so the page a plugin draws is part of the same app.
6
+ * (docs/content/dev/plugins), so the page a plugin draws is part of the same app.
7
7
  */
8
8
  export type StudioLang = "de" | "en";
9
9
  /** A plugin's words. `de` is the source: a key missing in `en` shows the German. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wizards",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Make a wish. Get your wizard. It guides you step by step. Let AI do the work. Runs on your machine, on the AI subscription you already have.",
5
5
  "license": "FSL-1.1-MIT",
6
6
  "homepage": "https://engenty.ai",
@@ -1 +0,0 @@
1
- import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{c as r,d as i,i as a,n as o,nt as s}from"./api-KMi35npD.js";import{t as c}from"./createLucideIcon-q3MZMmnf.js";import{t as l}from"./plug-CLjyCoHB.js";import{S as u,g as d,h as f,r as p,v as m}from"./outputs-COE_nvAw.js";import{r as h}from"./wand-sparkles-CKxArWPY.js";import{t as g}from"./plus-Du-Jx8aI.js";import{t as _}from"./mic-Bvz4mA2j.js";import{_ as v,d as y,h as b,o as x,y as S}from"./ui-Cs6lpsmj.js";import{l as C}from"./index-BmpnE7IO.js";var w={name:`chevron-up`,size:24,node:[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]};w.node;var T=c(w),E=e(t(),1),D=!1;function O(){if(!(typeof window>`u`||D))return window.SpeechRecognition??window.webkitSpeechRecognition}var k=typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia&&typeof MediaRecorder<`u`;function A(e,t){let n=e.trimEnd(),r=t.trim();return n&&r?`${n} ${r}`:n||r}function j(e,t){let[n,r]=(0,E.useState)(!1),[i,a]=(0,E.useState)(!1),[s,c]=(0,E.useState)(null),l=(0,E.useRef)(e);l.current=e;let u=(0,E.useRef)(t);u.current=t;let d=(0,E.useRef)(null);(0,E.useEffect)(()=>()=>d.current?.stop(),[]);let f=async()=>{let e=l.current,t;try{t=await navigator.mediaDevices.getUserMedia({audio:!0})}catch{c(`denied`);return}let n=[],i=new MediaRecorder(t);i.ondataavailable=e=>e.data.size&&n.push(e.data),i.onstop=async()=>{for(let e of t.getTracks())e.stop();d.current=null,r(!1);let s=(i.mimeType||`audio/webm`).split(`;`)[0],l=new File(n,`dictation`,{type:s});if(l.size){a(!0);try{let{text:t}=await o.upload(`/api/studio/transcribe`,l);t.trim()&&u.current(A(e,t))}catch(e){c(e.message)}finally{a(!1)}}},d.current={stop:()=>i.state!==`inactive`&&i.stop()},i.start(),r(!0)},p=e=>{let t=l.current,n=``,i=new e;i.continuous=!0,i.interimResults=!0,i.lang=v===`de`?`de-DE`:`en-US`,i.onresult=e=>{let r=``;for(let t=Math.max(0,e.resultIndex);t<e.results.length;t++){let i=e.results[t],a=i[0]?.transcript??``;i.isFinal?n=A(n,a):r+=a}u.current(A(t,A(n,r)))},i.onerror=e=>{if(e.error!==`aborted`&&e.error!==`no-speech`){if(e.error===`not-allowed`){c(`denied`);return}D=!0,k&&!n?(i.onend=null,d.current=null,f()):c(e.error)}},i.onend=()=>{d.current=null,r(!1)},d.current={stop:()=>i.stop()},i.start(),r(!0)};return{supported:!!O()||k,listening:n,processing:i,error:s,toggle:()=>{if(i)return;if(d.current){d.current.stop();return}c(null);let e=O();e?p(e):f()}}}var M=e(n(),1),N=/\.(png|jpe?g|gif|webp|avif|svg)$/i;function P(e){let t=e.filter(e=>e.type.startsWith(`image/`));return t.length?Object.fromEntries(t.map(e=>[e.name,URL.createObjectURL(e)])):void 0}function F(e){let t=e.match(/(?:^|\n\n)(?:Angehängt|Attached): ([^\n]+)$/);return t?{text:e.slice(0,t.index).trim(),names:t[1].split(`, `).filter(Boolean)}:{text:e,names:[]}}function I(e,t){if(e.name&&e.name!==`image.png`)return e;let n=e.type.split(`/`)[1]?.replace(`jpeg`,`jpg`)||`png`,r=new Date().toISOString().slice(0,19).replace(/[-:]/g,``).replace(`T`,`-`);return new File([e],`paste-${r}${t?`-${t+1}`:``}.${n}`,{type:e.type})}function L({url:e,label:t,children:n}){return(0,M.jsxs)(`div`,{className:`group relative`,title:t,children:[(0,M.jsx)(`img`,{src:e,alt:t,width:64,height:64,className:`size-16 rounded-lg bg-paper-2 object-cover ring-1 ring-border`}),n]})}function R({names:e,previews:t,fileUrl:n}){let r=e.filter(e=>t?.[e]||n&&N.test(e)),i=e.filter(e=>!r.includes(e));return(0,M.jsxs)(`div`,{className:`flex flex-col items-end gap-1.5`,children:[r.map(e=>{let r=t?.[e]??n?.(e)??``;return(0,M.jsx)(`a`,{href:r,target:`_blank`,rel:`noreferrer`,title:e,children:(0,M.jsx)(`img`,{src:r,alt:e,className:`max-h-60 w-auto max-w-full rounded-xl bg-paper-2 object-contain ring-1 ring-border`})},e)}),i.length?(0,M.jsx)(`div`,{className:`flex flex-wrap justify-end gap-1.5`,children:i.map(e=>(0,M.jsxs)(`span`,{className:`inline-flex max-w-full items-center gap-1.5 rounded-full bg-paper-2 px-2.5 py-1 text-[12px] text-ink-2`,children:[(0,M.jsx)(m,{className:`size-3 shrink-0 text-ink-4`}),(0,M.jsx)(`span`,{className:`truncate`,children:e})]},e))}):null]})}function z(e,t){let n=s(),[i,o]=(0,E.useState)([]),[c,l]=(0,E.useState)(`idle`),[u,d]=(0,E.useState)(null),[f,p]=(0,E.useState)(null),[m,h]=(0,E.useState)(null),[g,_]=(0,E.useState)(null),v=(0,E.useRef)(null);return(0,E.useEffect)(()=>{if(e){if(v.current!==e.id){v.current=e.id,o(e.messages);return}c===`idle`&&o(t=>e.messages.length>=t.length?e.messages:t)}},[e,c]),{messages:i,phase:c,activity:f,thought:m,startedAt:g,error:u,send:async(i,s=[])=>{if(!e||!(i.trim()||s.length)||c!==`idle`)return!1;if(d(null),_(Date.now()),h(null),s.length){l(`thinking`);try{for(let t of s){let n=await fetch(r(`/api/studio/wizards/${e.id}/files/${encodeURIComponent(t.name)}`),{method:`PUT`,credentials:`include`,headers:{"content-type":t.type||`application/octet-stream`},body:t});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error??n.statusText)}}}catch(t){return d(t.message),l(`idle`),_(null),await n.invalidateQueries({queryKey:[`wizard`,e.id]}),!1}let t=`${S(`editor.attached`)}: ${s.map(e=>e.name).join(`, `)}`;i=i.trim()?`${i}\n\n${t}`:t}let u=`p-${Date.now()}`;o(e=>[...e,{id:`u-${Date.now()}`,role:`user`,content:i,previews:P(s)},{id:u,role:`assistant`,content:``,pending:!0}]),l(`thinking`),p(null);let f=!1;try{await a(`/api/studio/wizards/${e.id}/chat`,{message:i},(e,n)=>{if(e===`text`){let e=JSON.parse(n);o(t=>t.map(t=>t.id===u?{...t,content:t.content+e}:t))}else if(e===`activity`)p(JSON.parse(n));else if(e===`thought`)h(JSON.parse(n));else if(e===`building`)l(`building`);else if(e===`done`){f=!0;let e=JSON.parse(n);o(t=>t.map(t=>t.id===u?{...t,content:e.reply,changed:e.changed,pending:!1}:t)),e.changed&&t(e.draft,e.revision)}else e===`error`&&(f=!0,d(JSON.parse(n).message))}),f||d(S(`editor.chatBroken`))}catch(e){d(e.message)}finally{p(null),h(null),_(null),o(e=>e.filter(e=>!(e.id===u&&!e.content)).map(e=>({...e,pending:!1}))),l(`idle`),await n.invalidateQueries({queryKey:[`wizard`,e.id]}),await n.invalidateQueries({queryKey:[`me`]})}return!0},fileUrl:t=>r(`/api/studio/wizards/${e?.id}/files/${encodeURIComponent(t)}`)}}function B(e){let[t,n]=(0,E.useState)(()=>Date.now());return(0,E.useEffect)(()=>{if(e===null)return;n(Date.now());let t=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(t)},[e]),e===null?null:Math.max(0,Math.floor((t-e)/1e3))}function V(e){return e<60?`${e} s`:`${Math.floor(e/60)}:${String(e%60).padStart(2,`0`)} min`}function H({chat:e,thought:t,className:n,spinner:r=`size-3.5`}){let i=B(e.startedAt);return(0,M.jsxs)(`div`,{className:b(`min-w-0`,n),children:[(0,M.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,M.jsx)(y,{className:b(`shrink-0`,r)}),(0,M.jsx)(`span`,{className:`min-w-0 truncate`,children:e.activity??(e.phase===`building`?S(`editor.building`):S(`editor.thinking`))}),i===null?null:(0,M.jsx)(`span`,{className:`shrink-0 text-ink-4 tabular-nums`,children:V(i)})]}),t&&e.thought?(0,M.jsx)(`p`,{className:`mt-0.5 truncate pl-5.5 text-[12px] text-ink-4`,children:e.thought}):null]})}function U({message:e,fileUrl:t}){let{text:n,names:r}=F(e.content);return(0,M.jsxs)(`div`,{className:`ml-8 flex flex-col items-end gap-1.5 self-end`,children:[r.length?(0,M.jsx)(R,{names:r,previews:e.previews,fileUrl:t}):null,n?(0,M.jsx)(`div`,{className:`rounded-xl rounded-br-md bg-paper-2 px-4 py-2.5 text-[14px] leading-relaxed`,children:(0,M.jsx)(`span`,{className:`whitespace-pre-wrap`,children:n})}):null]})}function W({chat:e,avatar:t,hello:n=S(`editor.chatHello`),placeholder:r=S(`editor.composer`),changedLabel:a=`Ablauf aktualisiert`,compact:o,intro:s}){let[c,v]=(0,E.useState)(!1),[w,D]=(0,E.useState)(``),[O,k]=(0,E.useState)([]),A=(0,E.useRef)(null),N=(0,E.useRef)(null),P=(0,E.useRef)(null),F=j(w,D);(0,E.useEffect)(()=>{A.current?.scrollTo({top:A.current.scrollHeight,behavior:`smooth`})},[e.messages,e.phase]),(0,E.useEffect)(()=>{let e=N.current;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,200)}px`)},[w]);let R=(w.trim()||O.length>0)&&e.phase===`idle`,z=e=>k(t=>[...t.filter(t=>!e.some(e=>e.name===t.name)),...e]),[B,V]=(0,E.useState)(new Map);(0,E.useEffect)(()=>{let e=new Map(O.filter(e=>e.type.startsWith(`image/`)).map(e=>[e,URL.createObjectURL(e)]));return V(e),()=>{for(let t of e.values())URL.revokeObjectURL(t)}},[O]);let W=async()=>{if(!R)return;F.listening&&F.toggle();let t={text:w,files:O};D(``),k([]),await e.send(t.text.trim(),t.files)||(D(t.text),k(t.files))},G=!o||c,K=e.messages.at(-1);return(0,M.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[o&&(K||e.error)?(0,M.jsxs)(`button`,{type:`button`,"aria-expanded":c,"aria-label":S(`editor.thread`),onClick:()=>v(e=>!e),className:`flex items-center gap-2 px-4 pt-2.5 pb-0.5 text-left text-[13px] text-ink-3 transition hover:text-ink`,children:[!(e.error||c)&&K?.pending?(0,M.jsx)(H,{chat:e,className:`flex-1`}):(0,M.jsx)(`span`,{className:b(`min-w-0 flex-1 truncate`,e.error&&`text-rose`),children:e.error??(c?S(`editor.thread`):K?.content)}),c?(0,M.jsx)(h,{className:`size-4 shrink-0`}):(0,M.jsx)(T,{className:`size-4 shrink-0`})]}):null,(0,M.jsxs)(`div`,{ref:A,className:b(`min-h-0 flex-1 overflow-y-auto px-5 py-5`,!G&&`hidden`),children:[e.messages.length===0?s??(0,M.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,M.jsx)(i,{kind:t,size:32,interactive:!1}),(0,M.jsx)(`p`,{className:`pt-1 text-[14px] text-ink-2 leading-relaxed`,children:n})]}):null,(0,M.jsx)(`div`,{className:`flex flex-col gap-4`,children:e.messages.map(n=>n.role===`user`?(0,M.jsx)(U,{message:n,fileUrl:e.fileUrl},n.id):(0,M.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,M.jsx)(`div`,{className:`shrink-0`,children:(0,M.jsx)(i,{kind:t,size:28,interactive:!1})}),(0,M.jsxs)(`div`,{className:`min-w-0 pt-0.5 text-[14px]`,children:[n.source===`mcp`?(0,M.jsxs)(`div`,{className:`mb-1 inline-flex items-center gap-1.5 text-[12px] text-ink-3`,children:[(0,M.jsx)(l,{className:`size-3`}),` `,S(`editor.viaClient`,{client:n.client??`MCP`})]}):null,n.content?(0,M.jsx)(p,{text:n.content,className:`text-[14px]`}):null,n.pending?(0,M.jsx)(H,{chat:e,thought:!0,className:`mt-1 text-[13px] text-ink-3`}):null,n.changed?(0,M.jsxs)(`div`,{className:`mt-2 inline-flex items-center gap-1.5 rounded-full bg-ember-tint px-2.5 py-0.5 text-[12px] text-ember-strong`,children:[(0,M.jsx)(d,{className:`size-3`}),` `,a]}):null]})]},n.id))}),e.error?(0,M.jsx)(`div`,{className:`mt-4 rounded-lg bg-rose-tint px-3 py-2 text-[13px] text-rose`,children:e.error}):null]}),(0,M.jsxs)(`div`,{className:o?`p-2`:`p-3`,children:[(0,M.jsxs)(`div`,{className:`rounded-xl bg-card p-1.5 shadow-soft ring-1 ring-border focus-within:ring-focus`,children:[B.size?(0,M.jsx)(`div`,{className:`flex flex-wrap gap-2 px-1 pt-1 pb-1.5`,children:O.map((e,t)=>{let n=B.get(e);return n?(0,M.jsx)(L,{url:n,label:e.name,children:(0,M.jsx)(`button`,{type:`button`,"aria-label":S(`editor.detach`),onClick:()=>k(e=>e.filter((e,n)=>n!==t)),className:`-top-1.5 -right-1.5 absolute flex size-5 items-center justify-center rounded-full bg-ink text-paper opacity-0 shadow-soft transition focus-visible:opacity-100 group-hover:opacity-100`,children:(0,M.jsx)(C,{className:`size-3`})})},`${e.name}-${t}`):null})}):null,O.some(e=>!B.has(e))?(0,M.jsx)(`ul`,{className:`flex flex-wrap gap-1.5 px-1 pt-1 pb-1.5`,children:O.map((e,t)=>B.has(e)?null:(0,M.jsxs)(`li`,{className:`inline-flex max-w-full items-center gap-1.5 rounded-full bg-paper-2 py-1 pr-1 pl-2.5 text-[12px] text-ink-2`,children:[(0,M.jsx)(m,{className:`size-3 shrink-0 text-ink-4`}),(0,M.jsx)(`span`,{className:`truncate`,children:e.name}),(0,M.jsx)(`button`,{type:`button`,"aria-label":S(`editor.detach`),onClick:()=>k(e=>e.filter((e,n)=>n!==t)),className:`inline-flex size-5 shrink-0 items-center justify-center rounded-full text-ink-3 hover:bg-paper-3 hover:text-ink`,children:(0,M.jsx)(C,{className:`size-3`})})]},`${e.name}-${t}`))}):null,(0,M.jsxs)(`div`,{className:`flex items-end gap-1`,children:[(0,M.jsx)(x,{label:S(`editor.attach`),onClick:()=>P.current?.click(),children:(0,M.jsx)(g,{className:`size-4`})}),(0,M.jsx)(`input`,{ref:P,type:`file`,multiple:!0,hidden:!0,onChange:e=>{let t=Array.from(e.target.files??[]);e.target.value=``,z(t)}}),(0,M.jsx)(`textarea`,{ref:N,rows:1,value:w,onChange:e=>D(e.target.value),onPaste:e=>{let t=Array.from(e.clipboardData.files);t.length&&(e.preventDefault(),z(t.map(I)))},onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),W())},placeholder:F.listening?S(`editor.listening`):r,className:`max-h-[200px] min-h-[40px] flex-1 resize-none bg-transparent px-1.5 py-2 text-[14px] outline-none placeholder:text-ink-4`}),F.supported?(0,M.jsx)(x,{label:F.processing?S(`editor.transcribing`):F.listening?S(`editor.voiceStop`):S(`editor.voice`),"aria-pressed":F.listening,disabled:F.processing,onClick:F.toggle,className:b(F.listening&&`bg-rose-tint text-rose hover:bg-rose-tint hover:text-rose`),children:F.processing?(0,M.jsx)(y,{className:`size-4`}):F.listening?(0,M.jsx)(f,{className:`size-3.5 animate-pulse-dot fill-current`}):(0,M.jsx)(_,{className:`size-4`})}):null,(0,M.jsx)(`button`,{type:`button`,onClick:()=>void W(),disabled:!R,className:b(`inline-flex size-9 shrink-0 items-center justify-center rounded-full transition`,R?`bg-primary text-primary-foreground`:`bg-paper-2 text-ink-4`),"aria-label":`Send`,children:(0,M.jsx)(u,{className:`size-4`})})]})]}),F.error?(0,M.jsx)(`p`,{className:`mt-2 px-1 text-[12px] text-rose`,children:F.error===`denied`?S(`editor.micDenied`):F.error}):null]})]})}export{z as i,H as n,P as r,W as t};
@@ -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,a,c as o,d as s,j as c,k as l,n as u,nt as d,t as f}from"./api-KMi35npD.js";import{c as p,s as m}from"./session-B6-6VomQ.js";import{t as h}from"./createLucideIcon-q3MZMmnf.js";import{t as g}from"./plug-CLjyCoHB.js";import{n as _,r as v,t as y}from"./RunnerView-DOizlTad.js";import{t as ee}from"./arrow-left-hTN1VoH1.js";import{S as b,m as x,n as S}from"./outputs-COE_nvAw.js";import{a as te,i as ne,n as C,r as re,s as ie,t as ae}from"./meta-4R1Lnr25.js";import{t as oe}from"./check-CUpby_J9.js";import{r as se,t as ce}from"./wand-sparkles-CKxArWPY.js";import{i as le,n as ue,t as de}from"./ChatPanel-Br3nYkUc.js";import{n as fe,t as w}from"./plus-Du-Jx8aI.js";import{t as T}from"./external-link-MAL7vJYj.js";import{n as pe}from"./mic-Bvz4mA2j.js";import{c as me,i as he,l as E,n as ge,o as _e,p as D,r as O,s as k,t as A}from"./definition-DndaH5Ow.js";import{t as ve}from"./upload--J5bZhEM.js";import{_ as ye,a as be,c as j,d as xe,h as M,i as Se,l as N,m as P,o as F,p as I,r as L,s as R,t as z,u as B,y as V}from"./ui-Cs6lpsmj.js";import{c as Ce,d as we,l as Te,n as Ee,t as De}from"./index-BmpnE7IO.js";import{a as Oe,c as ke,i as Ae,l as je,o as Me,r as Ne,s as Pe,t as Fe}from"./esm-rJY59Ixx.js";import{r as Ie}from"./LocalRuntime-CTyLGC98.js";var Le={name:`chevron-left`,size:24,node:[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]};Le.node;var Re=h(Le),ze={name:`chevron-right`,size:24,node:[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]};ze.node;var Be=h(ze),Ve={name:`circle-alert`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]],aliases:[`alert-circle`]};Ve.node;var He=h(Ve),Ue={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`]};Ue.node;var We=h(Ue),Ge={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`]};Ge.node;var Ke=h(Ge),qe={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`]};qe.node;var Je=h(qe),Ye={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`}]]};Ye.node;var Xe=h(Ye),Ze={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};Ze.node;var Qe=h(Ze),$e={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`}]]};$e.node;var et=h($e),tt={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`}]]};tt.node;var nt=h(tt),H=e(t(),1),U=e(n(),1);function rt(e){return e.mime.startsWith(`image/`)?ie:e.mime.includes(`json`)?Ke:e.mime===`text/html`||e.mime.includes(`javascript`)||e.mime===`text/css`?Je:pe}function it(e){return e<1024?`${e} B`:e<1048576?`${Math.round(e/1024)} KB`:`${(e/1048576).toFixed(1)} MB`}function at({wizardId:e,files:t}){let n=d(),r=(0,H.useRef)(null),[i,a]=(0,H.useState)(!1),[o,s]=(0,H.useState)(!1),[c,l]=(0,H.useState)(null),f=`/api/studio/wizards/${e}/files`,p=()=>n.invalidateQueries({queryKey:[`wizard`,e]}),m=async e=>{if(e?.length){a(!0),l(null);try{for(let t of Array.from(e)){let e=await fetch(`${f}/${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){l(e.message)}finally{a(!1),await p()}}},h=async e=>{window.confirm(V(`files.confirmDelete`,{path:e}))&&(await u.del(`${f}/${e}`),await p())},g=t.reduce((e,t)=>e+t.size,0);return(0,U.jsxs)(`div`,{className:M(`flex min-h-full flex-col px-5 py-5`,o&&`bg-ember-veil`),onDragOver:e=>{e.preventDefault(),s(!0)},onDragLeave:()=>s(!1),onDrop:e=>{e.preventDefault(),s(!1),m(e.dataTransfer.files)},children:[(0,U.jsx)(`p`,{className:`text-[13px] text-ink-3 leading-relaxed`,children:V(`files.explain`)}),(0,U.jsxs)(`div`,{className:`mt-4 flex items-center gap-2`,children:[(0,U.jsxs)(`button`,{type:`button`,onClick:()=>r.current?.click(),className:`inline-flex h-9 items-center gap-1.5 rounded-full bg-paper-2 px-3.5 font-medium text-[13px] text-ink-2 hover:bg-paper-3 hover:text-ink`,children:[i?(0,U.jsx)(xe,{className:`size-3.5`}):(0,U.jsx)(ve,{className:`size-3.5`}),V(`files.upload`)]}),(0,U.jsx)(`span`,{className:`ml-auto text-[12px] text-ink-4`,children:V(`files.count`,{n:t.length,size:it(g)})}),(0,U.jsx)(`input`,{ref:r,type:`file`,multiple:!0,hidden:!0,onChange:e=>void m(e.target.files)})]}),c?(0,U.jsx)(`div`,{className:`mt-3 rounded-lg bg-rose-tint px-3 py-2 text-[13px] text-rose`,children:c}):null,(0,U.jsx)(`ul`,{className:`mt-4 flex flex-col`,children:t.map(e=>{let t=rt(e);return(0,U.jsxs)(`li`,{className:`group flex items-center gap-3 rounded-lg px-2 py-1.5 hover:bg-paper-2`,children:[(0,U.jsx)(t,{className:`size-4 shrink-0 text-ink-3`}),(0,U.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[12px]`,children:e.path}),(0,U.jsx)(`span`,{className:`text-[12px] text-ink-4 tabular-nums`,children:it(e.size)}),(0,U.jsx)(`a`,{href:`${f}/${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":V(`files.download`),children:(0,U.jsx)(we,{className:`size-4`})}),(0,U.jsx)(F,{label:V(`files.delete`),className:`opacity-0 hover:text-rose group-hover:opacity-100`,onClick:()=>void h(e.path),children:(0,U.jsx)(x,{className:`size-4`})})]},e.path)})}),t.length===0?(0,U.jsx)(`div`,{className:`mt-6 rounded-xl border border-border border-dashed px-4 py-8 text-center text-[13px] text-ink-4`,children:V(`files.empty`)}):null]})}var ot=Object.defineProperty,st=(e,t,n)=>t in e?ot(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ct=(e,t)=>{for(var n in t)ot(e,n,{get:t[n],enumerable:!0})},lt=(e,t,n)=>st(e,typeof t==`symbol`?t:t+``,n),ut={};ct(ut,{Graph:()=>G,alg:()=>St});var dt=Object.defineProperty,ft=(e,t)=>{for(var n in t)dt(e,n,{get:t[n],enumerable:!0})},pt=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=W(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=gt(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?_t(this._isDirected,e):W(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?_t(this._isDirected,e):W(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?_t(this._isDirected,e):W(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],ht(this._preds[t],e),ht(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 ht(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function W(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 gt(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 _t(e,t){return W(e,t.v,t.w,t.name)}ft({},{read:()=>xt,write:()=>vt});function vt(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:yt(e),edges:bt(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function yt(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 bt(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 xt(e){let t=new pt(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 St={};ft(St,{CycleException:()=>Lt,bellmanFord:()=>wt,components:()=>Et,dijkstra:()=>kt,dijkstraAll:()=>jt,findCycles:()=>Nt,floydWarshall:()=>Ft,isAcyclic:()=>zt,postorder:()=>Ut,preorder:()=>Wt,prim:()=>Gt,shortestPaths:()=>Kt,tarjan:()=>Mt,topsort:()=>Rt});var Ct=()=>1;function wt(e,t,n,r){return Tt(e,String(t),n||Ct,r||function(t){return e.outEdges(t)??[]})}function Tt(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 Et(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 Dt=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}},Ot=()=>1;function kt(e,t,n,r){return At(e,String(t),n||Ot,r||function(t){return e.outEdges(t)??[]})}function At(e,t,n,r){let i={},a=new Dt,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 jt(e,t,n){return e.nodes().reduce(function(r,i){return r[i]=kt(e,i,t,n),r},{})}function Mt(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 Nt(e){return Mt(e).filter(function(t){let n=t[0];return n?t.length>1||t.length===1&&(e.outEdges(n,n)??[]).length>0:!1})}var Pt=()=>1;function Ft(e,t,n){return It(e,t||Pt,n||function(t){return e.outEdges(t)??[]})}function It(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 Lt=class extends Error{constructor(e){super(e),this.name=`CycleException`}};function Rt(e){let t={},n={},r=[];function i(a){var o;if(a in n)throw new Lt;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 Lt;return r}function zt(e){try{Rt(e)}catch(e){if(e instanceof Lt)return!1;throw e}return!0}function Bt(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=Vt(e,t,n===`post`,o,a,r,i)}),i}function Vt(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=Vt(e,t,n,r,i,a,o)}),n&&(o=a(o,t))),o}function Ht(e,t,n){return Bt(e,t,n,function(e,t){return e.push(t),e},[])}function Ut(e,t){return Ht(e,t,`post`)}function Wt(e,t){return Ht(e,t,`pre`)}function Gt(e,t){var n;let r=new pt,i={},a=new Dt,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 Kt(e,t,n,r){return qt(e,t,n,r??(t=>e.outEdges(t)??[]))}function qt(e,t,n,r){if(n===void 0)return kt(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 wt(e,t,n,r)}return kt(e,t,n,r)}var G=pt;function K(e,t,n,r){let i=r;for(;e.hasNode(i);)i=cn(r);return n.dummy=t,e.setNode(i,n),i}function Jt(e){let t=new G().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 Yt(e){let t=new G({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 Xt(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 q(e){let t=ln(nn(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 Zt(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MAX_VALUE:n}),n=J(Math.min,t);e.nodes().forEach(t=>{let r=e.node(t);Object.hasOwn(r,`rank`)&&(r.rank-=n)})}function Qt(e){let t=e.nodes().map(t=>e.node(t).rank).filter(e=>e!==void 0),n=J(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 $t(e,t,n,r){let i={width:0,height:0};return arguments.length>=4&&(i.rank=n,i.order=r),K(e,`border`,i,t)}function en(e,t=tn){let n=[];for(let r=0;r<e.length;r+=t){let i=e.slice(r,r+t);n.push(i)}return n}var tn=65535;function J(e,t){return t.length>tn?e(...en(t).map(t=>e(...t))):e(...t)}function nn(e){let t=e.nodes().map(t=>{let n=e.node(t).rank;return n===void 0?Number.MIN_VALUE:n});return J(Math.max,t)}function rn(e,t){let n={lhs:[],rhs:[]};return e.forEach(e=>{t(e)?n.lhs.push(e):n.rhs.push(e)}),n}function an(e,t){let n=Date.now();try{return t()}finally{console.log(e+` time: `+(Date.now()-n)+`ms`)}}function on(e,t){return t()}var sn=0;function cn(e){return e+(``+ ++sn)}function ln(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 un(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function dn(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 fn(e,t){return e.reduce((e,n,r)=>(e[n]=t[r],e),{})}var pn=`\0`;function mn(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 hn=`3.1.1`,gn=class{constructor(){lt(this,`_sentinel`);let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return _n(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&_n(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,vn)),n=n._prev;return`[`+e.join(`, `)+`]`}};function _n(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function vn(e,t){if(e!==`_next`&&e!==`_prev`)return t}var yn=gn,bn=()=>1;function xn(e,t){if(e.nodeCount()<=1)return[];let n=wn(e,t||bn);return Sn(n.graph,n.buckets,n.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w)||[])}function Sn(e,t,n){let r=[],i=t[t.length-1],a=t[0],o;for(;e.nodeCount();){for(;o=a.dequeue();)Cn(e,t,n,o);for(;o=i.dequeue();)Cn(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(Cn(e,t,n,o,!0)||[]);break}}}return r}function Cn(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,Tn(t,n,s)}),(e.outEdges(r.v)||[]).forEach(r=>{let i=e.edge(r),a=r.w,o=e.node(a);o.in-=i,Tn(t,n,o)}),e.removeNode(r.v),o}function wn(e,t){let n=new G,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=En(i+r+3).map(()=>new yn),o=r+1;return n.nodes().forEach(e=>{Tn(a,o,n.node(e))}),{graph:n,buckets:a,zeroIdx:o}}function Tn(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 En(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function Dn(e,t){(e.graph().acyclicer===`greedy`?xn(e,n(e)):On(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,cn(`rev`))});function n(e){return t=>e.edge(t).weight}}function On(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&&An(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 kn(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 An(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 jn(e){e.graph().dummyChains=[],e.edges().forEach(t=>Mn(e,t))}function Mn(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=K(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 Nn(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 Pn(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=J(Math.min,o);return s===1/0&&(s=0),i.rank=s}e.sources().forEach(n)}function Y(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var Fn=In;function In(e){let t=new G({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(;Ln(t,e)<i&&(a=Rn(t,e),a);)o=t.hasNode(a.v)?Y(e,a):-Y(e,a),zn(t,e,o);return t}function Ln(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)&&!Y(t,i)&&(e.setNode(o,{}),e.setEdge(r,o,{}),n(o))})}return e.nodes().forEach(n),e.nodeCount()}function Rn(e,t){return t.edges().reduce((n,r)=>{let i=1/0;return e.hasNode(r.v)!==e.hasNode(r.w)&&(i=Y(t,r)),i<n[0]?[i,r]:n},[1/0,null])[1]}function zn(e,t,n){e.nodes().forEach(e=>t.node(e).rank+=n)}var{preorder:Bn,postorder:Vn}=St,Hn=X;X.initLowLimValues=Kn,X.initCutValues=Un,X.calcCutValue=Gn,X.leaveEdge=Jn,X.enterEdge=Yn,X.exchangeEdges=Xn;function X(e){e=Jt(e),Pn(e);let t=Fn(e);Kn(t),Un(t,e);let n,r;for(;n=Jn(t);)r=Yn(t,e,n),Xn(t,e,n,r)}function Un(e,t){let n=Vn(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(n=>Wn(e,t,n))}function Wn(e,t,n){let r=e.node(n).parent,i=e.edge(n,r);i.cutvalue=Gn(e,t,n)}function Gn(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,Qn(e,n,c)){let t=e.edge(n,c).cutvalue;o+=r?-t:t}}}),o}function Kn(e,t){arguments.length<2&&(t=e.nodes()[0]),qn(e,{},1,t)}function qn(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=qn(e,t,n,i,r))}),o.low=a,o.lim=n++,i?o.parent=i:delete o.parent,n}function Jn(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function Yn(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===$n(e,e.node(t.v),s)&&c!==$n(e,e.node(t.w),s)).reduce((e,n)=>Y(t,n)<Y(t,e)?n:e)}function Xn(e,t,n,r){let i=n.v,a=n.w;e.removeEdge(i,a),e.setEdge(r.v,r.w,{}),Kn(e),Un(e,t),Zn(e,t)}function Zn(e,t){let n=e.nodes().find(t=>!e.node(t).parent);if(!n)return;let r=Bn(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 Qn(e,t,n){return e.hasEdge(t,n)}function $n(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var er=tr;function tr(e){let t=e.graph().ranker;if(typeof t==`function`)return t(e);switch(t){case`network-simplex`:ir(e);break;case`tight-tree`:rr(e);break;case`longest-path`:nr(e);break;case`none`:break;default:ir(e)}}var nr=Pn;function rr(e){Pn(e),Fn(e)}function ir(e){Hn(e)}var ar=or;function or(e){let t=cr(e),n=e.graph();Array.isArray(n.dummyChains)&&n.dummyChains.forEach(n=>{let r=e.node(n),i=r.edgeObj,a=sr(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 sr(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 cr(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(pn).forEach(r),t}function lr(e){let t=K(e,`root`,{},`_root`),n=dr(e),r=Object.values(n),i=J(Math.max,r)-1,a=2*i+1;e.graph().nestingRoot=t,e.edges().forEach(t=>e.edge(t).minlen*=a);let o=fr(e)+1;e.children(pn).forEach(r=>{ur(e,t,a,o,i,n,r)}),e.graph().nodeRankFactor=a}function ur(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=$t(e,`_bt`),l=$t(e,`_bb`),u=e.node(o);e.setParent(c,o),u.borderTop=c,e.setParent(l,o),u.borderBottom=l,s.forEach(s=>{ur(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 dr(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(pn).forEach(e=>n(e,1)),t}function fr(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function pr(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}var mr=hr;function hr(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)gr(e,`borderLeft`,`_bl`,n,i,t),gr(e,`borderRight`,`_br`,n,i,t)}}e.children(pn).forEach(t)}function gr(e,t,n,r,i,a){let o={width:0,height:0,rank:a,borderType:t},s=i[t][a-1],c=K(e,`border`,o,n);i[t][a]=c,e.setParent(c,r),s&&e.setEdge(s,c,{weight:1})}function _r(e){let t=e.graph().rankdir?.toLowerCase();(t===`lr`||t===`rl`)&&yr(e)}function vr(e){let t=e.graph().rankdir?.toLowerCase();(t===`bt`||t===`rl`)&&xr(e),(t===`lr`||t===`rl`)&&(Cr(e),yr(e))}function yr(e){e.nodes().forEach(t=>br(e.node(t))),e.edges().forEach(t=>br(e.edge(t)))}function br(e){let t=e.width;e.width=e.height,e.height=t}function xr(e){e.nodes().forEach(t=>Sr(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(Sr),Object.hasOwn(r,`y`)&&Sr(r)})}function Sr(e){e.y=-e.y}function Cr(e){e.nodes().forEach(t=>wr(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(wr),Object.hasOwn(r,`x`)&&wr(r)})}function wr(e){let t=e.x;e.x=e.y,e.y=t}function Tr(e,t=null){let n={},r=e.nodes().filter(t=>!e.children(t).length),i=r.map(t=>e.node(t).rank),a=ln(J(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 mn(t,e.node(n),e.node(r))}return a}function Er(e,t){let n=0;for(let r=1;r<t.length;++r)n+=Dr(e,t[r-1],t[r]);return n}function Dr(e,t,n){let r=fn(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 Or(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 kr(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))}),Ar(Object.values(n).filter(e=>!e.indegree))}function Ar(e){let t=[];function n(e){return t=>{t.merged||(t.barycenter===void 0||e.barycenter===void 0||t.barycenter>=e.barycenter)&&jr(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=>un(e,[`vs`,`i`,`barycenter`,`weight`]))}function jr(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 Mr(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=rn(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(Pr(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=Nr(f,d,h),u.forEach(e=>{h+=e.vs.length,f.push(e.vs),p+=e.barycenter*e.weight,m+=e.weight,h=Nr(f,d,h)});let g={vs:f.flat(1)};return m&&(g.barycenter=p/m,g.weight=m),g}function Nr(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 Pr(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=mn(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 Fr(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=Or(e,l);m.forEach(t=>{if(e.children(t.v).length){let{result:r}=Fr(e,t.v,n,s,c);p[t.v]=r,Object.hasOwn(r,`barycenter`)&&Lr(t,r)}});let h=kr(m,n);Ir(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=Mr(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 Ir(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}function Lr(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 Rr(e,t,n,r){r||=e.nodes();let i=zr(e),a=new G({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 zr(e){let t;for(;e.hasNode(t=cn(`_root`)););return t}function Br(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 Vr(e,t={},n=null){if(typeof t.customOrder==`function`){t.customOrder(e,Vr);return}let r=nn(e),i=Hr(e,ln(1,r+1),`inEdges`),a=Hr(e,ln(r-1,-1,-1),`outEdges`),o=Tr(e,n);if(Wr(e,o),t.disableOptimalOrderHeuristic)return;let s=1/0,c,l=t.constraints||[];for(let t=0,r=0;r<4;++t,++r){Ur(t%2?i:a,t%4>=2,l,n),o=q(e);let u=Er(e,o);u<s?(r=0,c=Object.assign({},o),s=u):u===s&&(c=structuredClone(o))}Wr(e,c)}function Hr(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 Rr(e,t,n,r.get(t)||[])})}function Ur(e,t,n,r){let i=!0,a=new G;e.forEach(function(e){n.forEach(e=>a.setEdge(e.left,e.right));let o=e.graph().root,{result:s,usedBias:c}=Fr(e,o,a,r,i);t&&c&&(i=!i),s.vs.forEach((t,n)=>e.node(t).order=n),Br(e,a,s.vs)})}function Wr(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}function Gr(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=qr(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)&&Jr(n,r,t)})}),a=c+1,i=u)}),r}return t.length&&t.reduce(r),n}function Kr(e,t){let n={};function r(t,r,i,a,o){ln(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)&&Jr(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 qr(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(t=>e.node(t).dummy)}}function Jr(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 Yr(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 Xr(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)||ai(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=>ai(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&&!Yr(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 Zr(e,t,n,r,i=!1){let a={},o=Qr(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 Qr(e,t,n,r){let i=new G,a=e.graph(),o=ri(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 $r(e,t){return Object.values(t).reduce((t,n)=>{let r=-1/0,i=1/0;Object.entries(n).forEach(([t,n])=>{let a=ii(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 ei(e,t){let n=Object.values(t),r=J(Math.min,n),i=J(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-J(Math.min,c);a!==`l`&&(l=i-J(Math.max,c)),l&&(e[o]=dn(s,e=>e+l))})})}function ti(e,t=void 0){let n=e.ul;return n?dn(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 ni(e,t){let n=q(e),r=Object.assign(Gr(e,n),Kr(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=Xr(e,a,r,t=>(o===`u`?e.predecessors(t):e.successors(t))||[],t),c=Zr(e,a,s.root,s.align,n===`r`);n===`r`&&(c=dn(c,e=>-e)),i[o+n]=c})}),ei(i,$r(e,i)),ti(i,e.graph().align)}function ri(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 ii(e,t){return e.node(t).width}function ai(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 oi(e,t){e=Yt(e),si(e),Object.entries(ni(e,t)).forEach(([t,n])=>e.node(t).x=n)}function si(e){let t=q(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 ci=new WeakMap;function li(e,t={}){return di(e,on,t),e}function ui(e,t,n){let r=t;for(;r!==void 0;){let t=e.parent(r);if(t===n)return r;r=t}}function di(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 G({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=ui(e,t.v,r),i=ui(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)}))}}),di(o,t,n);let l=Si(o);fi(l,t,n,null),pi(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=Si(e),g=fi(h,t,n,ci.get(e)??null);ci.set(e,g),pi(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 fi(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`,()=>Ci(e)),t(` removeSelfEdges`,()=>Mi(e)),t(` acyclic`,()=>Dn(e,s)),t(` nestingGraph.run`,()=>lr(e)),t(` rank`,()=>er(Yt(e))),t(` injectEdgeLabelProxies`,()=>wi(e)),t(` removeEmptyRanks`,()=>Qt(e)),t(` nestingGraph.cleanup`,()=>pr(e)),t(` normalizeRanks`,()=>Zt(e)),t(` assignRankMinMax`,()=>Ti(e)),t(` removeEdgeLabelProxies`,()=>Ei(e)),t(` normalize.run`,()=>jn(e)),t(` parentDummyChains`,()=>ar(e)),t(` addBorderSegments`,()=>mr(e)),t(` order`,()=>Vr(e,n,c)),t(` insertSelfEdges`,()=>Ni(e)),t(` adjustCoordinateSystem`,()=>_r(e)),t(` position`,()=>oi(e,n.corePath)),t(` positionSelfEdges`,()=>Pi(e));let l=JSON.parse(JSON.stringify(e._nodes));return t(` removeBorderNodes`,()=>ji(e)),t(` normalize.undo`,()=>Nn(e)),t(` fixupEdgeLabelCoords`,()=>ki(e)),t(` undoCoordinateSystem`,()=>vr(e)),t(` translateGraph`,()=>Di(e)),t(` assignNodeIntersects`,()=>Oi(e)),t(` reversePoints`,()=>Ai(e)),t(` acyclic.undo`,()=>kn(e)),{graph:e,rawNodes:l}}function pi(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 mi=[`nodesep`,`edgesep`,`ranksep`,`marginx`,`marginy`],hi={ranksep:50,edgesep:20,nodesep:50,rankdir:`TB`,rankalign:`center`},gi=[`acyclicer`,`ranker`,`rankdir`,`align`,`rankalign`],_i=[`width`,`height`,`rank`],vi={width:0,height:0},yi=[`minlen`,`weight`,`width`,`height`,`labeloffset`],bi={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:`r`},xi=[`labelpos`];function Si(e){let t=new G({multigraph:!0,compound:!0}),n=Ii(e.graph());return t.setGraph(Object.assign({},hi,Fi(n,mi),un(n,gi))),e.nodes().forEach(n=>{let r=Fi(Ii(e.node(n)),_i);Object.keys(vi).forEach(e=>{r[e]===void 0&&(r[e]=vi[e])}),t.setNode(n,r);let i=e.parent(n);i!==void 0&&t.setParent(n,i)}),e.edges().forEach(n=>{let r=Ii(e.edge(n));t.setEdge(n,Object.assign({},bi,Fi(r,yi),un(r,xi)))}),t}function Ci(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 wi(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let n=e.node(t.v);K(e,`edge-proxy`,{rank:(e.node(t.w).rank-n.rank)/2+n.rank,e:t},`_ep`)}})}function Ti(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 Ei(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 Di(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 Oi(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(Xt(r,a)),n.points.push(Xt(i,o))})}function ki(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 Ai(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function ji(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 Mi(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 Ni(e){q(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=>{K(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 Pi(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 Fi(e,t){return dn(un(e,t),Number)}function Ii(e){let t={};return e&&Object.entries(e).forEach(([e,n])=>{typeof e==`string`&&(e=e.toLowerCase()),t[e]=n}),t}function Li(e){let t=q(e),n=new G({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 Ri={graphlib:ut,version:hn,layout:li,debug:Li,util:{time:an,notime:on}};function zi(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 Bi=e=>e<10?e.toLocaleString(void 0,{maximumFractionDigits:1}):Math.round(e).toLocaleString();function Vi({estimate:e,stepId:t}){let n=e?.available?e.steps[t]:void 0;return n?(0,U.jsxs)(`p`,{className:`text-[12px] text-ink-3 tabular-nums`,children:[V(`estimate.step`,{n:Bi(n.credits),high:Bi(n.high)}),` · `,n.measured?V(`estimate.measured`):V(`estimate.formula`)]}):null}function Hi({model:e,effort:t,onChange:n}){let r=V(`class.effortAuto`);return(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(j,{children:V(`class.label`)}),(0,U.jsx)(B,{value:e??`high`,onChange:e=>n({model:e,effort:t}),options:_e.map(e=>({value:e,label:V(`class.${e}`)}))}),(0,U.jsx)(`p`,{className:`text-[12px] text-ink-3`,children:V(`class.${e??`high`}.hint`)}),(0,U.jsx)(j,{children:V(`class.effort`)}),(0,U.jsx)(N,{value:t?V(`class.effort.${t}`):r,options:[r,...ge.map(e=>V(`class.effort.${e}`))],onChange:t=>n({model:e,effort:ge.find(e=>V(`class.effort.${e}`)===t)})})]})}var Z=280,Ui=92;function Wi({data:e}){let{step:t,selected:n,issue:r,active:i,pulse:a,cost:o,passed:s}=e,c=C(t);return(0,U.jsxs)(`div`,{className:M(`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,U.jsx)(`span`,{className:`-top-1 -right-1 absolute size-3 animate-breathe rounded-full bg-moss`}):a?(0,U.jsx)(`span`,{className:`-top-1 -right-1 absolute size-3 animate-breathe rounded-full bg-ember`}):null,(0,U.jsx)(Ne,{type:`target`,position:ke.Top}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`span`,{className:M(`inline-flex size-6 items-center justify-center rounded-md`,ae[t.type]),children:(0,U.jsx)(c,{className:`size-3.5`})}),(0,U.jsx)(`span`,{className:`font-medium text-[11px] text-ink-3 uppercase tracking-[0.07em]`,children:te(t)}),r?(0,U.jsx)(He,{className:`ml-auto size-4 text-rose`}):s&&!i?(0,U.jsx)(oe,{className:`ml-auto size-4 text-moss`}):o===null?null:(0,U.jsxs)(`span`,{className:`ml-auto text-[11px] text-ink-3 tabular-nums`,children:[`≈`,` `,o<10?o.toLocaleString(void 0,{maximumFractionDigits:1}):Math.round(o),` `,`cr`]})]}),(0,U.jsx)(`div`,{className:`mt-1.5 truncate font-display font-semibold text-[15px] text-ink`,children:t.title}),(0,U.jsx)(`div`,{className:`truncate text-[12px] text-ink-3`,children:re(t)||`\xA0`}),(0,U.jsx)(Ne,{type:`source`,position:ke.Bottom})]})}function Gi({data:e}){return(0,U.jsxs)(`div`,{className:M(`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,U.jsx)(s,{kind:e.avatar,size:40,interactive:!1}),(0,U.jsx)(`span`,{className:`truncate font-display font-semibold text-[15px]`,children:e.title}),(0,U.jsx)(Ne,{type:`source`,position:ke.Bottom})]})}function Ki(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]=je({sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s});return(0,U.jsx)(Fe,{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,U.jsx)(Fe,{path:u,labelX:t.labelX,labelY:t.labelY,...c})}var qi={step:Wi,start:Gi},Ji={branch:Ki},Yi=34,Xi={};function Zi(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 V(`editor.whenFilled`,{field:e.when.field});case`empty`:return V(`editor.whenEmpty`,{field:e.when.field})}}function Qi(e,t,n,r,i,a,o){let s=new Ri.graphlib.Graph;s.setGraph({rankdir:`TB`,nodesep:48,ranksep:46,marginx:20,marginy:20}),s.setDefaultEdgeLabel(()=>({})),s.setNode(`__start`,{width:Z,height:52});for(let t of e.steps)s.setNode(t.id,{width:Z,height:Ui});let c=[],l={markerEnd:{type:Pe.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)??[],Zi(n)]);for(let[e,n]of i){let r=n.join(` · `),i=r.length>Yi?`${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:V(`editor.otherwise`),labelStyle:{fontSize:11,fill:`var(--ink-3)`},labelBgStyle:{fill:`var(--background)`}}:{},...l}))}),Ri.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-Z/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-Z/2,y:l.y-Ui/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 $i(){let e=Me(),t=`inline-flex size-8 items-center justify-center rounded-full text-ink-3 hover:bg-accent hover:text-ink`;return(0,U.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,U.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.zoomOut(),"aria-label":`Zoom out`,children:(0,U.jsx)(Qe,{className:`size-4`})}),(0,U.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.fitView({padding:.2,duration:300}),"aria-label":`Fit`,children:(0,U.jsx)(nt,{className:`size-4`})}),(0,U.jsx)(`button`,{type:`button`,className:t,onClick:()=>e.zoomIn(),"aria-label":`Zoom in`,children:(0,U.jsx)(w,{className:`size-4`})})]})}var ea=.8,ta=new Set;function na({def:e,selected:t,onSelect:n,issueSteps:r,activeStep:i,pulse:a,costs:o=Xi,passed:s=ta,minFitZoom:c=ea,fitKey:l}){let{nodes:u,edges:d}=(0,H.useMemo)(()=>Qi(e,t,r,i,a??[],o,s),[e,t,r,i,a,o,s]),f=Me(),p=(0,H.useRef)(null),m=e.steps.map(e=>e.id).join(`|`);return(0,H.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)+Z-Math.min(...t),height:Math.max(...n)+Ui-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,U.jsx)(`div`,{ref:p,className:`h-full w-full`,children:(0,U.jsx)(Oe,{nodes:u,edges:d,nodeTypes:qi,edgeTypes:Ji,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,U.jsx)($i,{})})})}function ra(e){return(0,U.jsx)(Ae,{children:(0,U.jsx)(na,{...e})})}function ia({wizardId:e,...t}){let n=zi(e,t.def);return(0,U.jsx)(ra,{...t,costs:n.data?.available?n.data.steps:Xi})}var aa={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 oa(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}}function Q({title:e,children:t}){return(0,U.jsxs)(`div`,{className:`border-border-soft border-t px-5 py-5 first:border-t-0`,children:[e?(0,U.jsx)(`h4`,{className:`mb-3 font-medium text-[12px] text-ink-3 uppercase tracking-[0.07em]`,children:e}):null,(0,U.jsx)(`div`,{className:`flex flex-col gap-4`,children:t})]})}function sa(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 ca({def:e,field:t,onChange:n,onRemove:r,onMove:i}){let[a,o]=(0,H.useState)(!1);return(0,U.jsxs)(`div`,{className:`rounded-lg bg-paper ring-1 ring-border-soft`,children:[(0,U.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,U.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-[14px]`,children:[t.label,t.required?(0,U.jsx)(`span`,{className:`ml-1 text-ember`,children:`*`}):null]}),(0,U.jsx)(`span`,{className:`text-[12px] text-ink-4`,children:aa[t.kind]}),(0,U.jsx)(se,{className:M(`size-4 text-ink-4 transition`,a&&`rotate-180`)})]}),a?(0,U.jsxs)(`div`,{className:`flex flex-col gap-3 border-border-soft border-t px-3 py-3`,children:[(0,U.jsx)(R,{value:t.label,onChange:e=>n({...t,label:e.target.value})}),(0,U.jsx)(B,{value:t.kind,onChange:e=>n(oa(t,e)),options:he.filter(e=>e!==`items`||t.kind===`items`).map(e=>({value:e,label:aa[e]}))}),t.kind===`select`||t.kind===`multiselect`?(0,U.jsx)(R,{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,U.jsx)(B,{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,U.jsx)(B,{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,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:`Mehrere Dateien`}),(0,U.jsx)(I,{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,U.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:`Wie viele?`}),(0,U.jsx)(`div`,{className:`flex items-center gap-1.5`,children:[`min`,`max`].map(e=>(0,U.jsx)(R,{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,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:`Auch mit der Kamera aufnehmen`}),(0,U.jsx)(I,{checked:!!t.camera,onChange:e=>n({...t,camera:e||void 0})})]}):null,t.kind===`file`?(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:`Kamera nimmt auch kurze Videos auf`}),(0,U.jsx)(I,{checked:!!t.video,onChange:e=>n({...t,video:e||void 0})})]}):null,t.kind===`text`?(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:`QR- oder Barcode scannen`}),(0,U.jsx)(I,{checked:!!t.scan,onChange:e=>n({...t,scan:e||void 0})})]}):null,[`text`,`textarea`,`number`,`email`,`url`,`location`].includes(t.kind)?(0,U.jsx)(R,{placeholder:`Platzhalter`,value:t.placeholder??``,onChange:e=>n({...t,placeholder:e.target.value||void 0})}):null,(0,U.jsx)(R,{placeholder:`Hilfetext`,value:t.help??``,onChange:e=>n({...t,help:e.target.value||void 0})}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:V(`run.required`)}),(0,U.jsx)(I,{checked:!!t.required,onChange:e=>n({...t,required:e})})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`font-mono text-[11px] text-ink-4`,children:`{{${t.id}}}`}),(0,U.jsxs)(`div`,{className:`flex`,children:[(0,U.jsx)(F,{label:V(`editor.moveUp`),onClick:()=>i(-1),className:`size-8`,children:(0,U.jsx)(b,{className:`size-3.5`})}),(0,U.jsx)(F,{label:V(`editor.moveDown`),onClick:()=>i(1),className:`size-8`,children:(0,U.jsx)(v,{className:`size-3.5`})}),(0,U.jsx)(F,{label:`Entfernen`,onClick:r,className:`size-8 hover:text-rose`,children:(0,U.jsx)(x,{className:`size-3.5`})})]})]})]}):null]})}var la=[{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 ua(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 da({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??la[0],l=ua(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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Q,{title:`Vorschau mit Beispieldaten`,children:p?(0,U.jsx)(S,{src:o(`/api/studio/wizards/${i}/widgets/${t.id}/preview?v=${f}`),page:c.width,height:c.height,fit:!0}):(0,U.jsx)(`p`,{className:`text-[13px] text-ink-3`,children:`Das Widget ist noch nicht gebaut. Bitte im Gespräch darum – oder lade eine HTML-Datei unter „Dateien“ hoch.`})}),(0,U.jsxs)(Q,{title:`Widget`,children:[(0,U.jsx)(j,{children:`HTML-Datei`}),(0,U.jsx)(B,{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,U.jsx)(j,{children:`Beispieldaten`}),(0,U.jsx)(B,{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,U.jsx)(j,{children:`Größe`}),(0,U.jsx)(N,{value:la.find(e=>e.width===c.width&&e.height===c.height)?.label??``,options:la.map(e=>e.label),onChange:e=>{let r=la.find(t=>t.label===e);r&&n({...t,size:{width:r.width,height:r.height}})}})]}),(0,U.jsxs)(Q,{title:`Daten für das Widget`,children:[(0,U.jsx)(`datalist`,{id:`sources-${t.id}`,children:l.map(e=>(0,U.jsx)(`option`,{value:e},e))}),u.map(([e,n],r)=>(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(R,{value:e,className:`w-28 font-mono text-[12px]`,onChange:e=>d(u.map((t,n)=>n===r?[e.target.value,t[1]]:t))}),(0,U.jsx)(`span`,{className:`text-ink-4`,children:`←`}),(0,U.jsx)(R,{value:n,list:`sources-${t.id}`,className:`flex-1 font-mono text-[12px]`,onChange:e=>d(u.map((t,n)=>n===r?[t[0],e.target.value]:t))}),(0,U.jsx)(F,{label:V(`editor.deleteStep`),onClick:()=>d(u.filter((e,t)=>t!==r)),children:(0,U.jsx)(x,{className:`size-4`})})]},r)),(0,U.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-[12px] text-ink-2 hover:bg-accent`,children:[(0,U.jsx)(w,{className:`size-3.5`}),` Wert`]})]})]})}function fa({def:e,step:t,set:n,mcpServers:r,files:i,wizardId:a}){let o=e.steps.indexOf(t),s=Ce().plugins.flatMap(e=>e.tools),c=e.steps.slice(0,o).filter(e=>e.type===`agent`||e.type===`generate`||e.type===`widget`);switch(t.type){case`widget`:return(0,U.jsx)(da,{def:e,step:t,set:n,files:i,wizardId:a});case`page`:return(0,U.jsxs)(Q,{title:`Fragen`,children:[(0,U.jsx)(`div`,{className:`flex flex-col gap-2`,children:t.fields.map((r,i)=>(0,U.jsx)(ca,{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))}),(0,U.jsxs)(`button`,{type:`button`,onClick:()=>n({...t,fields:[...t.fields,{id:sa(e,`frage`),label:`Neue Frage`,kind:`text`}]}),className:`inline-flex h-9 items-center gap-1.5 self-start rounded-full px-3 text-[13px] text-ink-2 hover:bg-accent`,children:[(0,U.jsx)(w,{className:`size-4`}),` Frage hinzufügen`]})]});case`agent`:return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(Q,{title:`Auftrag`,children:[(0,U.jsx)(P,{value:t.instructions,minRows:6,maxRows:20,onChange:e=>n({...t,instructions:e.target.value}),className:`text-[14px]`}),(0,U.jsxs)(`p`,{className:`text-[12px] text-ink-4`,children:[`Antworten einsetzen mit `,(0,U.jsx)(`code`,{className:`font-mono`,children:`{{feld}}`}),`, frühere Ergebnisse mit `,(0,U.jsx)(`code`,{className:`font-mono`,children:`{{steps.id}}`}),`.`]})]}),(0,U.jsxs)(Q,{title:`Werkzeuge`,children:[(0,U.jsx)(N,{multi:!0,value:t.tools,options:[...new Set([...k,...s.map(e=>e.id),...t.tools])],onChange:e=>n({...t,tools:e})}),(0,U.jsxs)(`div`,{className:`-mt-2 flex flex-wrap gap-x-3 text-[12px] text-ink-4`,children:[k.map(e=>(0,U.jsxs)(`span`,{children:[e,` = `,ne(e)]},e)),s.map(e=>(0,U.jsxs)(`span`,{children:[e.id,` = `,e.title]},e.id))]}),e.connections?.length?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(j,{hint:`Konten, die die Person im Durchlauf verbindet. Der Schritt liest darin, er schreibt nie.`,children:`Konten der Person`}),(0,U.jsx)(N,{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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(j,{hint:`Nur freigegebene Systeme sind in diesem Schritt erreichbar.`,children:`Verbundene Systeme`}),(0,U.jsx)(N,{multi:!0,value:t.mcp??[],options:r.map(e=>e.id),onChange:e=>n({...t,mcp:e.length?e:void 0})})]}):null]}),(0,U.jsxs)(Q,{title:`Ergebnis`,children:[(0,U.jsx)(N,{value:t.output.format,options:[`text`,`markdown`,`json`],onChange:e=>n({...t,output:{...t.output,format:e}})}),(0,U.jsx)(Hi,{model:t.model,effort:t.effort,onChange:e=>n({...t,...e})}),(0,U.jsx)(R,{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,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(Q,{title:`Was wird erzeugt?`,children:[(0,U.jsx)(N,{value:t.asset,options:[`image`,`video`,`voice`,`document`,`dashboard`],onChange:e=>n({...t,asset:e})}),(0,U.jsx)(P,{value:t.prompt,minRows:5,maxRows:18,onChange:e=>n({...t,prompt:e.target.value}),className:`text-[14px]`})]}),(0,U.jsxs)(Q,{title:`Optionen`,children:[t.asset===`document`||t.asset===`dashboard`?(0,U.jsx)(Hi,{model:t.model,effort:t.effort,onChange:e=>n({...t,...e})}):null,t.asset===`image`||t.asset===`video`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(j,{children:`Format`}),(0,U.jsx)(N,{value:t.options?.aspectRatio??``,options:[...A],onChange:e=>n({...t,options:{...t.options,aspectRatio:e}})}),(0,U.jsx)(R,{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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(j,{children:`Länge (Sekunden)`}),(0,U.jsx)(N,{value:String(t.options?.duration??8),options:[`4`,`6`,`8`,`10`],onChange:e=>n({...t,options:{...t.options,duration:Number(e)}})}),(0,U.jsx)(j,{children:`Auflösung`}),(0,U.jsx)(N,{value:t.options?.resolution??`720p`,options:[...me],onChange:e=>n({...t,options:{...t.options,resolution:e}})})]}):null,t.asset===`document`?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(j,{children:`Vorlage`}),(0,U.jsx)(B,{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,U.jsxs)(Q,{title:`Was wird gezeigt?`,children:[(0,U.jsx)(N,{multi:!0,value:t.show,options:c.map(e=>e.id),onChange:e=>e.length&&n({...t,show:e})}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:`Text direkt bearbeitbar`}),(0,U.jsx)(I,{checked:!!t.edit,onChange:e=>n({...t,edit:e})})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-2`,children:`Neue Variante anfordern`}),(0,U.jsx)(I,{checked:!!t.regenerate,onChange:e=>n({...t,regenerate:e})})]})]});case`result`:return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Q,{title:`Abschluss`,children:(0,U.jsx)(P,{minRows:2,placeholder:`Nachricht am Ende`,value:t.message??``,onChange:e=>n({...t,message:e.target.value||void 0})})}),(0,U.jsx)(Q,{title:`Downloads`,children:c.map(e=>{let r=t.deliverables.find(t=>t.from===e.id),i=E(e);return(0,U.jsxs)(`div`,{className:`rounded-lg bg-paper p-3 ring-1 ring-border-soft`,children:[(0,U.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`truncate text-[14px]`,children:e.title}),(0,U.jsx)(I,{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,U.jsx)(N,{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 pa({def:e,update:t}){return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(Q,{children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(j,{children:`Titel`}),(0,U.jsx)(R,{value:e.title,onChange:n=>t({...e,title:n.target.value})})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(j,{children:`Beschreibung`}),(0,U.jsx)(P,{minRows:2,value:e.description,onChange:n=>t({...e,description:n.target.value})})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(j,{hint:`Steht über der ersten Seite.`,children:`Begrüßung`}),(0,U.jsx)(P,{minRows:2,value:e.intro??``,onChange:n=>t({...e,intro:n.target.value||void 0})})]})]}),(0,U.jsx)(Q,{title:`Avatar`,children:(0,U.jsx)(`div`,{className:`grid grid-cols-5 gap-2`,children:O.map(n=>(0,U.jsx)(`button`,{type:`button`,onClick:()=>t({...e,avatar:n}),className:M(`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,U.jsx)(s,{kind:n,size:44,interactive:!1})},n))})}),e.lists?.length||e.connections?.length?(0,U.jsxs)(Q,{title:`Merkt sich für jede Person`,children:[(0,U.jsx)(`p`,{className:`text-[13px] 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,U.jsxs)(`div`,{className:`rounded-lg bg-paper px-3 py-2.5 ring-1 ring-border-soft`,children:[(0,U.jsx)(`div`,{className:`text-[14px]`,children:e.title??e.id}),(0,U.jsxs)(`div`,{className:`text-[12px] text-ink-4`,children:[`Konto · `,e.kind]})]},e.id)),(e.lists??[]).map(e=>(0,U.jsxs)(`div`,{className:`rounded-lg bg-paper px-3 py-2.5 ring-1 ring-border-soft`,children:[(0,U.jsx)(`div`,{className:`text-[14px]`,children:e.title}),(0,U.jsxs)(`div`,{className:`text-[12px] text-ink-4`,children:[`Liste · `,e.columns.map(e=>e.name).join(`, `)]}),(0,U.jsx)(`div`,{className:`mt-1 font-mono text-[11px] text-ink-4`,children:`{{lists.${e.id}}}`})]},e.id))]}):null]})}var ma={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`})},$=`__wizard`;function ha({def:e,selected:t,onSelect:n,issues:r}){let i=[$,...e.steps.map(e=>e.id)],a=t?i.indexOf(t):-1,o=(0,H.useRef)(null);(0,H.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,H.useRef)(s);c.current=s,(0,H.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,U.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,U.jsx)(F,{label:V(`editor.prevStep`),className:`size-8 shrink-0`,disabled:a===0,onClick:()=>s(-1),children:(0,U.jsx)(Re,{className:`size-4`})}),(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center overflow-x-auto p-1 [scrollbar-width:none]`,children:[(0,U.jsx)(`button`,{ref:t===$?o:void 0,type:`button`,title:e.title,"aria-label":e.title,"aria-current":t===$?`step`:void 0,onClick:()=>n($),className:M(l,`bg-paper-2 text-ink-2`,t===$?`ring-2 ring-ember`:`hover:ring-2 hover:ring-border-soft`),children:(0,U.jsx)(ce,{className:`size-4`})}),e.steps.map((e,i)=>{let a=C(e),s=e.id===t,c=r.some(t=>t.stepId===e.id);return(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center`,children:[(0,U.jsx)(`span`,{className:`h-px w-3 bg-border-soft`}),(0,U.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:M(l,`relative`,ae[e.type],s?`ring-2 ring-ember`:`opacity-70 hover:opacity-100`),children:[(0,U.jsx)(a,{className:`size-4`}),c?(0,U.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,U.jsx)(`span`,{className:`shrink-0 px-1 text-[12px] text-ink-4 tabular-nums`,children:a>0?`${a} / ${e.steps.length}`:``}),(0,U.jsx)(F,{label:V(`editor.nextStep`),className:`size-8 shrink-0`,disabled:a===i.length-1,onClick:()=>s(1),children:(0,U.jsx)(Be,{className:`size-4`})})]})}function ga({def:e,onSelect:t,issues:n}){return(0,U.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:e.steps.map((e,r)=>{let i=C(e),a=n.some(t=>t.stepId===e.id);return(0,U.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,U.jsx)(`span`,{className:`w-4 text-right text-[12px] text-ink-4 tabular-nums`,children:r+1}),(0,U.jsx)(`span`,{className:M(`inline-flex size-7 shrink-0 items-center justify-center rounded-md`,ae[e.type]),children:(0,U.jsx)(i,{className:`size-4`})}),(0,U.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`span`,{className:`block truncate text-[14px]`,children:e.title}),(0,U.jsx)(`span`,{className:`block text-[12px] text-ink-4`,children:te(e)})]}),a?(0,U.jsx)(`span`,{className:`size-2 shrink-0 rounded-full bg-rose`}):null]},e.id)})})}function _a(e){let{def:t,selected:n,update:r,onSelect:i,issues:a}=e,o=t.steps.find(e=>e.id===n);return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(ha,{def:t,selected:n,onSelect:i,issues:a}),n===$?(0,U.jsx)(pa,{def:t,update:r}):o?(0,U.jsx)(va,{...e,step:o}):(0,U.jsx)(ga,{def:t,onSelect:i,issues:a})]})}function va({def:e,step:t,update:n,onSelect:r,issues:i,mcpServers:a,files:o,wizardId:s}){let c=e.steps.indexOf(t),l=C(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=sa(e,i===`page`?`seite`:i===`agent`?`ki`:i===`widget`?`widget`:`erzeugen`),o=[...e.steps];o.splice(t.type===`result`?c:c+1,0,ma[i](a)),n({...e,steps:o}),r(a)},p=i.filter(e=>e.stepId===t.id),m=zi(s,e);return(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-5 py-4`,children:[(0,U.jsx)(`span`,{className:M(`inline-flex size-7 items-center justify-center rounded-md`,ae[t.type]),children:(0,U.jsx)(l,{className:`size-4`})}),(0,U.jsx)(`span`,{className:`font-medium text-[12px] text-ink-3 uppercase tracking-[0.07em]`,children:te(t)}),(0,U.jsx)(`span`,{className:`ml-auto font-mono text-[11px] text-ink-4`,children:t.id})]}),p.length?(0,U.jsx)(`div`,{className:`mx-5 mb-4 rounded-lg bg-rose-tint px-3 py-2 text-[13px] text-rose`,children:p.map((e,t)=>(0,U.jsx)(`div`,{children:e.message},t))}):null,(0,U.jsxs)(Q,{children:[(0,U.jsx)(R,{value:t.title,onChange:e=>u({...t,title:e.target.value}),className:`font-display font-semibold text-[16px]`}),t.type===`page`||t.type===`review`?(0,U.jsx)(P,{minRows:1,placeholder:`Erklärung unter dem Titel (optional)`,value:t.description??``,onChange:e=>u({...t,description:e.target.value||void 0})}):null,(0,U.jsx)(Vi,{estimate:m.data,stepId:t.id})]}),(0,U.jsx)(fa,{def:e,step:t,set:u,mcpServers:a,files:o,wizardId:s}),(0,U.jsx)(Q,{children:(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[t.type===`result`?null:(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(F,{label:V(`editor.moveUp`),onClick:()=>d(-1),children:(0,U.jsx)(b,{className:`size-4`})}),(0,U.jsx)(F,{label:V(`editor.moveDown`),onClick:()=>d(1),children:(0,U.jsx)(v,{className:`size-4`})}),(0,U.jsx)(F,{label:V(`editor.deleteStep`),className:`hover:text-rose`,onClick:()=>{n({...e,steps:e.steps.filter(e=>e.id!==t.id)}),r(null)},children:(0,U.jsx)(x,{className:`size-4`})})]}),(0,U.jsx)(`span`,{className:`ml-auto text-[12px] text-ink-4`,children:`Danach einfügen:`}),[`page`,`agent`,`generate`,`widget`].map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>f(e),className:`inline-flex h-8 items-center gap-1 rounded-full px-2.5 text-[12px] text-ink-2 hover:bg-accent`,children:[(0,U.jsx)(w,{className:`size-3.5`}),` `,V(`type.${e}`)]},e))]})})]})}var ya={waiting_input:`wartet`,running:`läuft`,done:`fertig`,failed:`Fehler`,cancelled:`abgebrochen`};function ba({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,U.jsx)(be,{children:V(`editor.noRuns`)});let r=new Intl.DateTimeFormat(ye,{dateStyle:`short`,timeStyle:`short`});return(0,U.jsx)(`div`,{className:`flex flex-col p-2`,children:n.data?.map(e=>(0,U.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,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2 text-[14px]`,children:[r.format(new Date(e.createdAt)),e.mode===`test`?(0,U.jsx)(L,{children:`Test`}):(0,U.jsxs)(L,{tone:`live`,children:[`Live v`,e.version]})]}),(0,U.jsxs)(`div`,{className:`truncate text-[12px] text-ink-3`,children:[ya[e.status]??e.status,e.stepTitle&&e.status!==`done`?` · ${e.stepTitle}`:``]})]}),(0,U.jsxs)(`span`,{className:`text-[12px] text-ink-4 tabular-nums`,children:[e.credits,` cr`]})]},e.id))})}var xa=e=>e.replace(/&/g,`&amp;`).replace(/"/g,`&quot;`).replace(/</g,`&lt;`);function Sa({url:e,title:t}){let[n,r]=(0,H.useState)(!1),[i,a]=(0,H.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="${xa(t)}"`:``}><\/script>`,l=[V(`embed.inline`),V(`embed.modal`)];return(0,U.jsxs)(`div`,{className:`mt-6 flex flex-col gap-3 border-border-soft border-t pt-5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`span`,{className:`text-[14px]`,children:V(`embed.title`)}),(0,U.jsxs)(z,{variant:`secondary`,size:`sm`,onClick:()=>{navigator.clipboard.writeText(c),a(!0),setTimeout(()=>a(!1),1500)},children:[i?(0,U.jsx)(oe,{className:`size-3.5`}):(0,U.jsx)(fe,{className:`size-3.5`}),V(i?`share.copied`:`share.copy`)]})]}),(0,U.jsx)(`p`,{className:`text-[13px] text-ink-3`,children:V(n?`embed.modalHint`:`embed.inlineHint`)}),(0,U.jsx)(N,{value:l[+!!n],onChange:e=>r(e===l[1]),options:l}),(0,U.jsx)(`pre`,{className:`select-all whitespace-pre-wrap break-all rounded-lg bg-paper-2 px-3 py-2.5 font-mono text-[12px] text-ink-2 leading-relaxed`,children:c})]})}function Ca({wizard:e}){let t=d(),n=c({queryKey:[`cloud`,e.id],queryFn:()=>u.get(`/api/studio/wizards/${e.id}/cloud`)}),r=p({mutationFn:()=>u.post(`/api/studio/wizards/${e.id}/cloud`),onSuccess:()=>t.invalidateQueries({queryKey:[`cloud`,e.id]})}),i=n.data?.copy?.shareUrl;return(0,U.jsxs)(`div`,{className:`mt-6 flex flex-col gap-3 border-border-soft border-t pt-5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`span`,{className:`text-[14px]`,children:V(`cloud.title`)}),(0,U.jsxs)(z,{variant:`secondary`,size:`sm`,busy:r.isPending,onClick:()=>r.mutate(),children:[(0,U.jsx)(We,{className:`size-3.5`}),V(i?`cloud.update`:`cloud.publish`)]})]}),(0,U.jsx)(`p`,{className:`text-[13px] text-ink-3`,children:V(`cloud.hint`)}),i?(0,U.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1.5 self-start font-mono text-[13px] text-ink-2 hover:text-ink`,onClick:()=>Ie(i),children:[(0,U.jsx)(T,{className:`size-3.5`}),` `,i]}):null,i?(0,U.jsx)(Sa,{url:i,title:e.draft.title}):null,r.isError?(0,U.jsx)(`p`,{className:`text-[13px] text-rose`,children:r.error instanceof f?r.error.message:V(`cloud.failed`)}):null]})}function wa({wizard:e,open:t,onClose:n}){let r=d(),[i,o]=(0,H.useState)(!1),[s,c]=(0,H.useState)(String(e.dailyRunLimit)),l=()=>r.invalidateQueries({queryKey:[`wizard`,e.id]}),f=p({mutationFn:t=>u.patch(`/api/studio/wizards/${e.id}`,t),onSuccess:l}),h=p({mutationFn:()=>u.post(`/api/studio/wizards/${e.id}/rotate-link`),onSuccess:l}),g=`${window.location.origin}${a}/w/${e.shareToken}`,_=m(),v=zi(e.id,e.draft),y=v.data?.available&&v.data.reserve>0?Math.round(v.data.reserve*e.dailyRunLimit):null;return(0,U.jsxs)(Se,{open:t,onClose:n,title:V(`share.title`),children:[e.published?null:(0,U.jsx)(`p`,{className:`mb-4 rounded-lg bg-amber-tint px-3 py-2 text-[14px]`,children:V(`share.publishFirst`)}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(R,{readOnly:!0,value:g,onFocus:e=>e.target.select(),className:`font-mono text-[13px]`}),(0,U.jsxs)(z,{variant:`secondary`,onClick:()=>{navigator.clipboard.writeText(g),o(!0),setTimeout(()=>o(!1),1500)},children:[i?(0,U.jsx)(oe,{className:`size-4`}):(0,U.jsx)(fe,{className:`size-4`}),V(i?`share.copied`:`share.copy`)]})]}),(0,U.jsxs)(`a`,{href:g,target:`_blank`,rel:`noreferrer`,className:`mt-2 inline-flex items-center gap-1.5 text-[13px] text-ink-3 hover:text-ink`,children:[(0,U.jsx)(T,{className:`size-3.5`}),` `,V(`share.open`)]}),(0,U.jsx)(Sa,{url:g,title:e.draft.title}),(0,U.jsxs)(`div`,{className:`mt-6 flex flex-col gap-5 border-border-soft border-t pt-5`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`span`,{className:`text-[14px]`,children:V(`share.enabled`)}),(0,U.jsx)(I,{checked:e.shareEnabled,onChange:e=>f.mutate({shareEnabled:e})})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`span`,{className:`whitespace-nowrap text-[14px]`,children:V(`share.limit`)}),(0,U.jsx)(`div`,{className:`w-24`,children:(0,U.jsx)(R,{inputMode:`numeric`,className:`text-right`,value:s,onChange:e=>c(e.target.value.replace(/\D/g,``)),onBlur:()=>{let t=Number(s);t>=1&&t!==e.dailyRunLimit&&f.mutate({dailyRunLimit:t})}})})]}),y!==null&&v.data?(0,U.jsx)(`p`,{className:`text-[13px] text-ink-3 tabular-nums`,children:V(`estimate.share`,{run:Math.round(v.data.credits).toLocaleString(),day:y.toLocaleString()})}):null,(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`span`,{className:`text-[13px] text-ink-3`,children:V(`share.rotateHint`)}),(0,U.jsxs)(z,{variant:`ghost`,size:`sm`,busy:h.isPending,onClick:()=>h.mutate(),children:[(0,U.jsx)(D,{className:`size-3.5`}),` `,V(`share.rotate`)]})]})]}),_.data?.mode===`local`&&_.data.account?(0,U.jsx)(Ca,{wizard:e}):null]})}var Ta=[`title`,`description`,`avatar`,`intro`,`lists`,`connections`],Ea=(e,t)=>JSON.stringify(e)===JSON.stringify(t);function Da(e,t,n){let r={...n};for(let n of Ta)Ea(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||!Ea(t,e)});return t.steps.forEach((e,n)=>{let r=i.get(e.id);if(r&&Ea(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 Oa(e){let t=d(),n=(0,H.useMemo)(()=>[`wizard`,e],[e]),r=`/api/studio/wizards/${e}`,i=(0,H.useRef)(null),a=(0,H.useRef)(Promise.resolve()),s=(0,H.useRef)(null),c=(0,H.useRef)(null),l=(0,H.useRef)(!1),[p,m]=(0,H.useState)(!1),[h,g]=(0,H.useState)(0),[_,v]=(0,H.useState)(null),y=(0,H.useCallback)(()=>!!(i.current||l.current||s.current),[]),ee=(0,H.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]),b=(0,H.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){if(!(i instanceof f&&i.status===409)){s.current??=e,console.error(`[draft] save failed`,i);return}let a=await u.get(r),o=Da(c.current??a.draft,s.current??e,a.draft);c.current=a.draft,s.current=o,t.setQueryData(n,{...a,draft:o,title:o.title,dirty:!0}),g(Date.now()),b()}finally{l.current=!1,m(!1)}}})},[t,n,r]),x=(0,H.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,b()},600))},[t,n,e,y,b]);return(0,H.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||(ee(),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&&ee()}),()=>r.close()},[t,n,e,ee]),(0,H.useEffect)(()=>{if(!_)return;let e=setTimeout(()=>v(null),6e3);return()=>clearTimeout(e)},[_]),(0,H.useEffect)(()=>{if(!h)return;let e=setTimeout(()=>g(0),4e3);return()=>clearTimeout(e)},[h]),{save:x,saving:p,remote:_,merged:h>0}}function ka({remote:e,merged:t}){return e?(0,U.jsxs)(L,{tone:`ember`,children:[(0,U.jsx)(g,{className:`size-3`}),` `,V(`editor.changedVia`,{client:e.client})]}):t?(0,U.jsxs)(L,{children:[(0,U.jsx)(Xe,{className:`size-3`}),` `,V(`editor.merged`)]}):null}var Aa={chat:`editor.chat`,step:`editor.step`,files:`editor.files`,runs:`editor.runs`},ja=`wizards.editor.pane`,Ma=420,Na=340,Pa=()=>Math.max(Na,window.innerWidth-480);function Fa(){try{let e=Number(localStorage.getItem(ja));return e?Math.min(Math.max(e,Na),Pa()):Ma}catch{return Ma}}function Ia(){let[e,t]=(0,H.useState)(Fa),n=(0,H.useCallback)(e=>{let n=Math.round(Math.min(Math.max(e,Na),Pa()));t(n);try{localStorage.setItem(ja,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(Ma)}}function La(){let{id:e}=l(),t=i(),n=d(),a=m(),[s,f]=r(),h=c({queryKey:[`wizard`,e],queryFn:()=>u.get(`/api/studio/wizards/${e}`),refetchOnWindowFocus:!1}),[g,v]=(0,H.useState)(null),[b,x]=(0,H.useState)(`chat`),S=Ia(),[te,ne]=(0,H.useState)(!1),[C,re]=(0,H.useState)(null),[ie,ae]=(0,H.useState)(null),oe=(0,H.useCallback)(e=>ae(e&&e.status!==`done`?e.step?.id??null:null),[]),{save:se,saving:ce,remote:fe,merged:w}=Oa(e),T=le(h.data,(t,r)=>{n.setQueryData([`wizard`,e],e=>e&&{...e,draft:t,revision:r,title:t.title,blank:!1})}),pe=(0,H.useRef)(!1);(0,H.useEffect)(()=>{let e=s.get(`prompt`);e&&h.data&&!pe.current&&(pe.current=!0,f({},{replace:!0}),T.send(e))},[s,h.data,T,f]);let me=c({queryKey:[`wizard-models`,e,h.data?.revision],queryFn:()=>u.get(`/api/studio/wizards/${e}/models`),enabled:!!h.data}).data?.missing??[],he=me.some(e=>e.blocking),E=p({mutationFn:()=>u.post(`/api/studio/wizards/${e}/test-runs`),onSuccess:({runId:e})=>re(e)}),ge=p({mutationFn:()=>u.post(`/api/studio/wizards/${e}/publish`),onSuccess:async()=>{await n.invalidateQueries({queryKey:[`wizard`,e]}),ne(!0)}}),_e=(0,H.useMemo)(()=>new Set((h.data?.issues??[]).map(e=>e.stepId).filter(Boolean)),[h.data?.issues]);if(h.isLoading||!a.data)return(0,U.jsx)(`div`,{className:`flex min-h-dvh items-center justify-center text-ink-4`,children:(0,U.jsx)(xe,{})});if(!h.data)return(0,U.jsx)(`div`,{className:`p-10 text-center text-ink-3`,children:V(`run.notFound`)});let D=h.data,O=D.draft,k=T.phase!==`idle`&&D.blank,A=D.issues.length>0,ve=e=>{v(e),e&&x(`step`)};return(0,U.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,U.jsxs)(`header`,{className:`flex h-16 shrink-0 items-center gap-2 px-3 sm:px-4`,children:[(0,U.jsx)(F,{label:`Zurück`,onClick:()=>t(`/`),children:(0,U.jsx)(ee,{className:`size-5`})}),(0,U.jsx)(`button`,{type:`button`,onClick:()=>ve(`__wizard`),className:`min-w-0 truncate rounded-md px-2 py-1 text-left hover:bg-accent`,children:(0,U.jsx)(`span`,{className:`font-display font-semibold text-[17px] tracking-tight`,children:O.title})}),(0,U.jsx)(`span`,{className:`hidden sm:inline-flex`,children:D.published?D.dirty?(0,U.jsx)(L,{tone:`warn`,children:V(`editor.unpublishedChanges`)}):(0,U.jsx)(L,{tone:`live`,children:V(`editor.published`,{v:D.publishedVersion??0})}):(0,U.jsx)(L,{children:V(`editor.notPublished`)})}),ce?(0,U.jsx)(xe,{className:`size-4 text-ink-4`}):null,(0,U.jsx)(`span`,{className:`hidden md:inline-flex`,children:(0,U.jsx)(ka,{remote:fe,merged:w})}),(0,U.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,U.jsx)(`a`,{href:o(`/api/studio/wizards/${D.id}/export`),download:!0,"aria-label":V(`editor.export`),title:V(`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,U.jsx)(we,{className:`size-4`})}),(0,U.jsxs)(z,{variant:`secondary`,size:`sm`,disabled:A||k||he,busy:E.isPending,onClick:()=>E.mutate(),children:[(0,U.jsx)(et,{className:`size-3.5`}),` `,V(`editor.test`)]}),D.published&&!D.dirty?(0,U.jsxs)(z,{size:`sm`,onClick:()=>ne(!0),children:[(0,U.jsx)(_,{className:`size-3.5`}),` `,V(`editor.share`)]}):(0,U.jsx)(z,{size:`sm`,disabled:A||k,busy:ge.isPending,onClick:()=>ge.mutate(),children:V(`editor.publish`)}),(0,U.jsx)(`span`,{className:`ml-2 hidden md:inline-flex`,children:(0,U.jsx)(De,{me:a.data})}),(0,U.jsx)(`span`,{className:`hidden sm:inline-flex`,children:(0,U.jsx)(Ee,{me:a.data})})]})]}),(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col lg:flex-row`,children:[(0,U.jsxs)(`section`,{className:`relative min-h-[45vh] flex-1 overflow-hidden lg:min-h-0`,children:[A&&!k?(0,U.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,U.jsx)(`p`,{className:`text-[14px]`,children:V(`editor.issues`)}),(0,U.jsx)(`ul`,{className:`mt-2 list-disc pl-5 text-[13px] text-ink-2`,children:D.issues.slice(0,4).map((e,t)=>(0,U.jsx)(`li`,{children:e.message},t))}),(0,U.jsx)(z,{size:`sm`,variant:`quiet`,className:`mt-3`,disabled:T.phase!==`idle`,onClick:()=>{x(`chat`),T.send(`Bitte behebe diese Probleme im Wizard:\n${D.issues.map(e=>`- ${e.message}`).join(`
2
- `)}`)},children:V(`editor.fixWithChat`)})]}):null,!A&&!k&&me.length?(0,U.jsxs)(`div`,{className:M(`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`,he?`ring-rose/30`:`ring-amber/30`),children:[(0,U.jsx)(`p`,{className:`text-[14px]`,children:V(he?`editor.models.blocking`:`editor.models.optional`)}),(0,U.jsx)(`ul`,{className:`mt-2 list-disc pl-5 text-[13px] text-ink-2`,children:me.map(e=>(0,U.jsxs)(`li`,{children:[(0,U.jsx)(`span`,{className:`text-ink`,children:V(`class.${e.cls}`)}),` (`,e.steps.map(e=>`„${e.title}“`).join(`, `),`): `,e.problem]},e.cls))}),(0,U.jsx)(z,{size:`sm`,variant:`quiet`,className:`mt-3`,onClick:()=>t(`/settings/models`),children:V(`editor.models.settings`)})]}):null,k?(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center px-6 text-[14px] text-ink-3`,children:(0,U.jsx)(ue,{chat:T,spinner:`size-4 text-ember`})}):(0,U.jsx)(ia,{def:O,selected:g,onSelect:ve,issueSteps:_e,activeStep:C?ie:null,pulse:fe?.steps,wizardId:D.id})]}),(0,U.jsxs)(`aside`,{className:`relative flex h-[55vh] min-h-0 w-full shrink-0 flex-col bg-card shadow-[0_0_0_1px_var(--border-soft)] lg:h-auto lg:w-(--pane) lg:rounded-tl-3xl`,style:{"--pane":`${S.width}px`},children:[(0,U.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":V(`editor.resize`),"aria-valuenow":S.width,tabIndex:0,title:V(`editor.resize`),onPointerDown:S.onPointerDown,onKeyDown:S.onKeyDown,onDoubleClick:S.reset,className:`group -left-1.5 absolute inset-y-0 z-10 hidden w-5 cursor-col-resize outline-none lg:block`,children:(0,U.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,U.jsx)(`nav`,{className:`flex shrink-0 gap-1 px-3 pt-3`,children:[`chat`,`step`,`files`,`runs`].map(e=>(0,U.jsx)(`button`,{type:`button`,onClick:()=>x(e),className:M(`h-9 rounded-full px-4 font-medium text-[13px] transition`,b===e?`bg-paper-2 text-ink`:`text-ink-3 hover:text-ink`),children:V(Aa[e])},e))}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:b===`chat`?(0,U.jsx)(de,{chat:T,avatar:O.avatar}):b===`step`?(0,U.jsx)(_a,{def:O,selected:g,update:se,onSelect:ve,issues:D.issues,mcpServers:D.mcpServers,files:D.files,wizardId:D.id}):b===`files`?(0,U.jsx)(at,{wizardId:D.id,files:D.files}):(0,U.jsx)(ba,{wizardId:D.id,onOpen:re})})]})]}),C?(0,U.jsx)(`div`,{className:`fixed inset-0 z-50 flex justify-end bg-[oklch(20%_0.01_60/0.22)] backdrop-blur-[1px]`,onClick:()=>re(null),children:(0,U.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,U.jsxs)(`div`,{className:`flex h-14 shrink-0 items-center justify-between px-4`,children:[(0,U.jsx)(L,{children:`Test`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,U.jsx)(z,{variant:`ghost`,size:`sm`,busy:E.isPending,disabled:A,onClick:()=>E.mutate(),children:V(`editor.restart`)}),(0,U.jsx)(F,{label:V(`editor.close`),onClick:()=>re(null),children:(0,U.jsx)(Te,{className:`size-5`})})]})]}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:(0,U.jsx)(y,{runId:C,compact:!0,onRestart:()=>E.mutate(),onView:oe},C)})]})}):null,(0,U.jsx)(wa,{wizard:D,open:te,onClose:()=>ne(!1)})]})}export{La as EditorPage};
@@ -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,d as a,j as o,n as s,nt as c,w as l}from"./api-KMi35npD.js";import{a as u,c as d,s as f}from"./session-B6-6VomQ.js";import{t as p}from"./createLucideIcon-q3MZMmnf.js";import{t as m}from"./check-CUpby_J9.js";import{n as h,t as g}from"./plus-Du-Jx8aI.js";import{a as _,i as v,n as y,o as b,r as x,s as S,t as C,u as w,y as T}from"./ui-Cs6lpsmj.js";import{r as E}from"./LocalRuntime-CTyLGC98.js";import{t as D}from"./ImportWizard-DiV62Uno.js";var O={name:`arrow-up-right`,size:24,node:[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]};O.node;var k=p(O),A=e(t(),1),j=e(n(),1);function M(){let{project:e,projects:t,select:n}=u(),r=f().data?.limits.projects??1,i=c(),[a,o]=(0,A.useState)(!1),[l,p]=(0,A.useState)(``),m=d({mutationFn:()=>s.post(`/api/studio/projects`,{name:l}),onSuccess:async({id:e})=>{await i.invalidateQueries({queryKey:[`projects`]}),n(e),o(!1),p(``)}});return!e||r<=1?null:(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsx)(w,{className:`w-56`,value:e.id,onChange:e=>e===`__new`?o(!0):n(e),options:[...t.map(e=>({value:e.id,label:e.name})),t.length<r?{value:`__new`,label:`+ ${T(`home.newProject`)}`}:{value:`__new`,label:T(`home.projectLimit`,{n:r}),disabled:!0}]}),(0,j.jsx)(v,{open:a,onClose:()=>o(!1),title:T(`home.newProject`),children:(0,j.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),l.trim()&&m.mutate()},children:[(0,j.jsx)(S,{autoFocus:!0,placeholder:T(`home.projectName`),value:l,onChange:e=>p(e.target.value)}),(0,j.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,j.jsx)(C,{variant:`ghost`,onClick:()=>o(!1),children:T(`common.cancel`)}),(0,j.jsx)(C,{type:`submit`,busy:m.isPending,disabled:!l.trim(),children:T(`home.newProject`)})]})]})})]})}function N({token:e}){let[t,n]=(0,A.useState)(!1);return(0,j.jsxs)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),navigator.clipboard.writeText(`${window.location.origin}${i}/w/${e}`),n(!0),setTimeout(()=>n(!1),1500)},className:`inline-flex h-8 items-center gap-1.5 rounded-full px-3 text-[13px] text-ink-3 hover:bg-accent hover:text-ink`,children:[t?(0,j.jsx)(m,{className:`size-3.5`}):(0,j.jsx)(h,{className:`size-3.5`}),T(t?`share.copied`:`share.link`)]})}function P({w:e}){let t=r();return(0,j.jsxs)(y,{className:`flex cursor-pointer flex-col p-5 transition hover:shadow-elevated`,onClick:()=>t(`/edit/${e.id}`),children:[(0,j.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,j.jsx)(`div`,{className:`-ml-1 -mt-1`,children:(0,j.jsx)(a,{kind:e.avatar,size:52,interactive:!1})}),e.published?(0,j.jsx)(x,{tone:`live`,children:T(`home.live`)}):(0,j.jsx)(x,{children:T(`home.draft`)})]}),(0,j.jsx)(`h3`,{className:`mt-3 font-display font-semibold text-[17px] leading-snug`,children:e.title}),(0,j.jsx)(`p`,{className:`mt-1 line-clamp-2 min-h-[2.6em] text-[14px] text-ink-3`,children:e.description}),(0,j.jsxs)(`div`,{className:`mt-4 flex items-center justify-between`,children:[(0,j.jsx)(`span`,{className:`text-[12px] text-ink-4`,children:T(`home.steps`,{n:e.stepCount})}),(0,j.jsx)(`div`,{className:`flex items-center`,children:e.published?(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(N,{token:e.shareToken}),(0,j.jsx)(b,{label:T(`share.open`),className:`ml-1 size-8`,onClick:t=>{t.stopPropagation(),E(`${window.location.origin}${i}/w/${e.shareToken}`)},children:(0,j.jsx)(k,{className:`size-4`})})]}):null})]})]})}function F(){let e=r(),{project:t,projects:n,loading:i}=u(),a=o({queryKey:[`wizards`,t?.id],queryFn:()=>s.get(`/api/studio/projects/${t.id}/wizards`),enabled:!!t}),c=n.reduce((e,t)=>e+t.wizardCount,0);return!i&&n.length&&c===0?(0,j.jsx)(l,{to:`/new`,replace:!0}):(0,j.jsxs)(`div`,{className:`animate-rise`,children:[(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-4`,children:[(0,j.jsx)(`div`,{children:(0,j.jsx)(M,{})}),(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsx)(D,{}),(0,j.jsxs)(C,{onClick:()=>e(`/new`),children:[(0,j.jsx)(g,{className:`size-4`}),` `,T(`home.new`)]})]})]}),(0,j.jsx)(`h1`,{className:`mt-10 font-display font-semibold text-[28px] tracking-tight`,children:T(`home.title`)}),a.data&&a.data.length===0?(0,j.jsx)(_,{children:T(`home.empty`)}):null,(0,j.jsx)(`div`,{className:`mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:a.data?.map(e=>(0,j.jsx)(P,{w:e},e.id))})]})}export{F as HomePage,M as ProjectSwitcher};
@@ -1 +0,0 @@
1
- import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{O as r,n as i,nt as a,t as o}from"./api-KMi35npD.js";import{a as s,c}from"./session-B6-6VomQ.js";import{t as l}from"./upload--J5bZhEM.js";import{i as u,t as d,y as f}from"./ui-Cs6lpsmj.js";var p=e(t(),1),m=e(n(),1);function h({variant:e=`secondary`,label:t=f(`home.import`)}){let n=r(),h=a(),{project:g}=s(),_=(0,p.useRef)(null),v=c({mutationFn:e=>i.upload(`/api/studio/projects/${g.id}/wizards/import`,e),onSuccess:async({id:e})=>{await h.invalidateQueries({queryKey:[`projects`]}),await h.invalidateQueries({queryKey:[`wizards`]}),n(`/edit/${e}`)}}),y=v.error instanceof o?v.error.body?.issues??[]:[];return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsxs)(d,{variant:e,busy:v.isPending,disabled:!g,onClick:()=>_.current?.click(),children:[(0,m.jsx)(l,{className:`size-4`}),` `,t]}),(0,m.jsx)(`input`,{ref:_,hidden:!0,type:`file`,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&v.mutate(t)}}),(0,m.jsxs)(u,{open:v.isError,onClose:v.reset,title:f(`import.failed`),children:[(0,m.jsx)(`p`,{className:`text-[14px] text-ink-2`,children:v.error?.message}),y.length?(0,m.jsx)(`ul`,{className:`mt-3 flex list-disc flex-col gap-1 pl-5 text-[13px] text-ink-2`,children:y.slice(0,8).map(e=>(0,m.jsx)(`li`,{children:e.message},e.message))}):null,(0,m.jsx)(`div`,{className:`mt-5 flex justify-end`,children:(0,m.jsx)(d,{variant:`secondary`,onClick:v.reset,children:f(`common.close`)})})]})]})}export{h as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FlowPreview-CjUK5046.js","assets/jsx-runtime-D3jfb0Ew.js","assets/ui-Cs6lpsmj.js","assets/esm-rJY59Ixx.js","assets/react-dom-DenslgJm.js"])))=>i.map(i=>d[i]);
2
- import{a as e,n as t,t as n}from"./jsx-runtime-D3jfb0Ew.js";import{A as r,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}from"./api-KMi35npD.js";import{a as h,c as g}from"./session-B6-6VomQ.js";import{t as _}from"./preload-helper-CNEI7N0N.js";import{t as v}from"./createLucideIcon-q3MZMmnf.js";import{n as y,t as b}from"./plug-CLjyCoHB.js";import{t as ee}from"./arrow-right-6FyN3e7D.js";import{c as x,l as S,o as C,s as w,t as te}from"./meta-4R1Lnr25.js";import{t as T}from"./check-CUpby_J9.js";import{n as ne,r as re,t as ie}from"./wand-sparkles-CKxArWPY.js";import{n as ae,t as oe}from"./mic-Bvz4mA2j.js";import{i as se,n as E,r as ce,t as le}from"./type-Bj9H3eOK.js";import{n as ue,t as D}from"./video-CjgmvRDk.js";import{l as de,u as fe}from"./engenty-Cm8yZLON.js";import{_ as O,d as k,h as A,i as pe,m as me,n as he,r as ge,t as j,y as M}from"./ui-Cs6lpsmj.js";import{l as N}from"./index-BmpnE7IO.js";import{t as _e}from"./ImportWizard-DiV62Uno.js";var ve=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 ye(e,t){return s(e,ve,t)}var P={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`}]]};P.node;var be=v(P),F={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`]};F.node;var I=v(F),L={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`}]]};L.node;var xe=v(L),R={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`}]]};R.node;var Se=v(R),z={name:`clapperboard`,size:24,node:[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]};z.node;var Ce=v(z),B={name:`clock`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]};B.node;var V=v(B),H={name:`cloud-off`,size:24,node:[[`path`,{d:`M10.94 5.274A7 7 0 0 1 15.71 10h1.79a4.5 4.5 0 0 1 4.222 6.057`,key:`1uxyv8`}],[`path`,{d:`M18.796 18.81A4.5 4.5 0 0 1 17.5 19H9A7 7 0 0 1 5.79 5.78`,key:`99tcn7`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]};H.node;var we=v(H),Te={name:`coins`,size:24,node:[[`path`,{d:`M13.744 17.736a6 6 0 1 1-7.48-7.48`,key:`bq4yh3`}],[`path`,{d:`M15 6h1v4`,key:`11y1tn`}],[`path`,{d:`m6.134 14.768.866-.5 2 3.464`,key:`17snzx`}],[`circle`,{cx:`16`,cy:`8`,r:`6`,key:`14bfc9`}]]};Te.node;var Ee=v(Te),De={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`}]]};De.node;var Oe=v(De),ke={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`}]]};ke.node;var Ae=v(ke),je={name:`table-2`,size:24,node:[[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}]]};je.node;var Me=v(je),Ne={name:`terminal`,size:24,node:[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]};Ne.node;var Pe=v(Ne),Fe={name:`volume-2`,size:24,node:[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]};Fe.node;var Ie=v(Fe),U=e(t(),1),W={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`}},Le={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`}},Re={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`}},G={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`}},ze={low:{de:`günstig`,en:`low cost`},medium:{de:`mittel`,en:`medium cost`},high:{de:`teuer`,en:`high cost`}},K=e=>Object.keys(e);K(W),K(Le),K(Re),K(G);var q=e(n(),1),Be=(0,U.lazy)(()=>_(()=>import(`./FlowPreview-CjUK5046.js`),__vite__mapDeps([0,1,2,3,4]))),Ve={useCase:``,industry:``,format:``,capability:``},J=(e,t)=>e[t]?.[O]??t;function He(e){if(e<1)return 1;let t=10**Math.floor(Math.log10(e));return Math.round(e/t)*t}function Ue(e){return e.credits?M(`market.credits`,{n:He(e.credits.credits)}):ze[e.costTier][O]}var We={text:le,document:ae,table:Me,image:w,video:D,audio:be,dashboard:I};function Y({format:e,className:t}){let n=We[e],r=J(W,e);return(0,q.jsx)(`span`,{title:r,className:`inline-flex`,children:(0,q.jsx)(n,{className:t,"aria-label":r,role:`img`})})}var Ge=[`low`,`medium`,`high`];function X({entry:e}){let t=Ge.indexOf(e.costTier)+1,n=O===`de`?Se:xe;return(0,q.jsxs)(`span`,{title:Ue(e),className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(`span`,{"aria-hidden":`true`,className:`inline-flex shrink-0`,children:Ge.slice(0,t).map((e,t)=>(0,q.jsx)(`span`,{className:A(`rounded-full bg-(--coin-bg,var(--color-card))`,t>0&&`-ml-1.5`),children:(0,q.jsx)(n,{className:`size-4`})},e))}),ze[e.costTier][O]]})}function Ke({entry:e,onOpen:t}){return(0,q.jsxs)(he,{role:`button`,tabIndex:0,onClick:t,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),t())},className:A(`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,q.jsx)(`span`,{className:`-top-4 pointer-events-none absolute right-4`,children:(0,q.jsx)(u,{kind:e.avatar,size:68,interactive:!1})}),(0,q.jsxs)(`div`,{className:`min-w-0 pr-20`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 font-display font-semibold text-[15px]`,children:[e.title,e.starred?(0,q.jsx)(E,{className:`size-3.5 shrink-0 fill-amber text-amber`,"aria-label":M(`market.starred`)}):null]}),(0,q.jsx)(`div`,{className:`mt-0.5 text-[13px] text-ink-3 leading-snug`,children:e.pitch})]}),(0,q.jsx)(`div`,{className:`mt-auto flex flex-wrap items-center gap-x-3 gap-y-1.5 text-[12px] text-ink-3`,children:e.usable&&e.missing.length?(0,q.jsx)(ge,{tone:`warn`,children:M(`market.missing`,{list:qe(e.missing)})}):e.usable?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,q.jsx)(V,{className:`size-3.5`}),` `,M(`market.minutes`,{n:e.effort.minutes})]}),(0,q.jsx)(X,{entry:e}),(0,q.jsx)(`span`,{className:`ml-auto inline-flex items-center gap-1.5`,children:e.formats.map(e=>(0,q.jsx)(Y,{format:e,className:`size-4`},e))})]}):(0,q.jsx)(ge,{tone:`warn`,children:M(`market.needsUpdate`)})})]})}function Z({title:e,children:t}){return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`div`,{className:`mb-1.5 font-medium text-[12px] text-ink-3 uppercase tracking-[0.06em]`,children:e}),t]})}var qe=e=>e.map(e=>J(G,e)).join(`, `),Je={text:ue,web:se,browser:Oe,documents:Ae,image:w,video:D,speech:Ie,listening:oe,code:Pe,connectors:b};function Ye(e){switch(e.type){case`page`:return C;case`agent`:return S;case`generate`:return e.asset===`image`?w:e.asset===`video`?D:e.asset===`voice`?Ie:e.asset===`dashboard`?I:ae;case`widget`:return e.video?Ce:y;case`review`:return ne;case`result`:return x}return ie}function Xe(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 Ze(e){let t=Xe(e);return e.map(e=>({id:e.id,title:e.title,icon:Ye(e),tone:te[e.type]??`bg-paper-2 text-ink-2`,optional:t.has(e.id),branches:e.branches}))}function Q({title:e,children:t}){return(0,q.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,q.jsxs)(`div`,{className:`flex gap-2.5`,children:[(0,q.jsx)(`span`,{className:`mt-0.5 shrink-0`,children:e}),(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`div`,{className:`text-[14px] text-ink leading-snug`,children:t}),n?(0,q.jsx)(`div`,{className:`text-[12px] text-ink-3 leading-snug`,children:n}):null]})]})}function Qe({className:e,children:t}){let n=(0,U.useRef)(null),[r,i]=(0,U.useState)({above:!1,below:!1});(0,U.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,q.jsx)(`div`,{ref:n,className:e,style:{maskImage:a,WebkitMaskImage:a},children:(0,q.jsx)(`div`,{children:t})})}function $e({id:e,fallback:t,onClose:n,onUse:r,busy:i}){let a=m(),o=l(),s=f({queryKey:[`marketplace-entry`,e,O],queryFn:()=>p.get(`/api/studio/marketplace/${encodeURIComponent(e)}?lang=${O}`),enabled:!!e,retry:!1}),c=s.data??t,h=g({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]})])}),_=d()===`dark`,v=de[fe[c?.avatar||`round`]],y=_?`var(--card)`:`color-mix(in oklch, ${v??`var(--ink-4)`} 14%, var(--paper-2))`;return(0,q.jsx)(pe,{open:!!e,onClose:n,wide:!0,bare:!0,children:c?(0,q.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,q.jsx)(`button`,{type:`button`,"aria-label":M(`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,q.jsx)(N,{className:`size-4`})}),(0,q.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:y,"--coin-bg":y},children:[(0,q.jsx)(`span`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-0 overflow-hidden sm:rounded-t-2xl`,children:(0,q.jsx)(`span`,{className:A(`-top-28 -right-10 absolute size-80 rounded-full bg-white blur-3xl`,_?`opacity-[0.14]`:`opacity-80`)})}),(0,q.jsx)(`div`,{className:`-bottom-5 absolute right-9 z-10 max-sm:hidden`,children:(0,q.jsx)(u,{kind:c.avatar,size:104})}),(0,q.jsxs)(`div`,{className:`relative sm:pr-36`,children:[(0,q.jsx)(`h2`,{className:`font-display font-semibold text-[22px] leading-tight tracking-tight max-sm:pr-10`,children:c.title}),(0,q.jsx)(`p`,{className:`mt-1 text-[14px] text-ink-2 leading-snug`,children:s.data?.description||c.pitch})]}),c.usable?(0,q.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-[14px] sm:px-7 sm:pr-40`,children:[(0,q.jsxs)(Q,{title:M(`market.duration`),children:[(0,q.jsx)(V,{className:`size-4 text-ink-3`}),M(`market.minutes`,{n:c.effort.minutes})]}),(0,q.jsx)(Q,{title:M(`market.cost`),children:(0,q.jsx)(X,{entry:c})}),(0,q.jsx)(Q,{title:M(`market.result`),children:c.formats.map(e=>(0,q.jsx)(Y,{format:e,className:`size-4`},e))})]}):null]}),c.usable?(0,q.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,q.jsxs)(`div`,{className:`flex flex-col gap-5 sm:min-h-0 sm:overflow-y-auto`,children:[(0,q.jsx)(Z,{title:M(`market.duration`),children:(0,q.jsx)($,{icon:(0,q.jsx)(V,{className:`size-4 text-moss`}),more:M(`market.durationHint`,{n:c.effort.fields}),children:M(`market.minutes`,{n:c.effort.minutes})})}),(0,q.jsx)(Z,{title:M(`market.cost`),children:(0,q.jsx)($,{icon:(0,q.jsx)(Ee,{className:`size-4 text-amber`}),more:c.credits?M(`market.creditsHint`):void 0,children:(0,q.jsxs)(`span`,{className:`flex flex-wrap items-center gap-x-2`,children:[(0,q.jsx)(X,{entry:c}),c.credits?(0,q.jsx)(`span`,{className:`text-ink-2`,children:M(`market.creditsRange`,{n:He(c.credits.credits)})}):null]})})}),(0,q.jsx)(Z,{title:M(`market.result`),children:(0,q.jsx)(`div`,{className:`flex flex-col gap-2`,children:(s.data?.results??[]).map(e=>(0,q.jsx)($,{icon:(0,q.jsx)(Y,{format:e.kind,className:`size-4 text-ember-strong`}),more:e.formats.map(e=>e.toUpperCase()).join(` · `),children:e.title},e.title))})}),(0,q.jsx)(Z,{title:M(`market.needs`),children:(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:c.capabilities.map(e=>{let t=Je[e],n=c.missing.includes(e);return(0,q.jsxs)(`li`,{className:A(`flex items-center gap-2.5 text-[14px]`,n?`text-ink-3`:`text-ink-2`),children:[(0,q.jsx)(t,{className:A(`size-4 shrink-0`,n?`text-rose`:`text-cobalt`)}),J(G,e),n?(0,q.jsx)(`span`,{className:`text-[12px] text-rose`,children:M(`market.unavailable`)}):null]},e)})})})]}),(0,q.jsxs)(`div`,{className:`flex flex-col sm:min-h-0`,children:[(0,q.jsx)(`div`,{className:`mb-1.5 shrink-0 font-medium text-[12px] text-ink-3 uppercase tracking-[0.06em]`,children:M(`market.steps`)}),(0,q.jsx)(Qe,{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,q.jsx)(k,{className:`size-5 text-ink-3`}):(0,q.jsx)(U.Suspense,{fallback:(0,q.jsx)(k,{className:`size-5 text-ink-3`}),children:(0,q.jsx)(Be,{steps:Ze(s.data?.outline??[])})})})]})]}):(0,q.jsx)(`div`,{className:`flex-1 px-5 pt-6 sm:px-7`,children:(0,q.jsx)(`p`,{className:`rounded-lg bg-amber-tint p-3 text-[14px] text-ink-2`,children:M(`market.needsUpdateHint`)})}),(0,q.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,q.jsxs)(j,{variant:`ghost`,className:`mr-auto`,title:M(`market.starHint`),"aria-pressed":c.starred,busy:h.isPending,onClick:()=>h.mutate(!c.starred),children:[(0,q.jsx)(E,{className:A(`size-4`,c.starred&&`fill-amber text-amber`)}),(0,q.jsx)(`span`,{className:`max-sm:sr-only`,children:M(c.starred?`market.starred`:`market.star`)})]}),(0,q.jsx)(j,{variant:`secondary`,onClick:n,children:M(`common.close`)}),c.usable&&c.missing.length?(0,q.jsx)(j,{variant:`secondary`,onClick:()=>o(`/settings/models`),children:M(`editor.models.settings`)}):null,(0,q.jsx)(j,{disabled:!c.usable||c.missing.length>0,title:c.missing.length?M(`market.missingHint`,{list:qe(c.missing)}):void 0,busy:i,onClick:()=>r(c),children:M(`market.use`)})]})]}):(0,q.jsx)(`div`,{className:`flex min-h-48 flex-col items-center justify-center gap-3 rounded-2xl bg-card p-8 text-[14px] text-ink-2 shadow-overlay`,children:s.isLoading?(0,q.jsx)(k,{className:`size-6 text-ink-3`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`p`,{children:M(`market.notFound`)}),(0,q.jsx)(j,{variant:`secondary`,onClick:n,children:M(`common.close`)})]})})})}function et({name:e,value:t,options:n,onChange:r}){let[i,a]=(0,U.useState)(!1),o=(0,U.useRef)(null);(0,U.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,q.jsxs)(`div`,{ref:o,className:`relative`,children:[(0,q.jsxs)(`div`,{className:A(`flex h-8 items-center rounded-full text-[13px] 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,q.jsx)(`button`,{type:`button`,"aria-haspopup":`listbox`,"aria-expanded":i,onClick:()=>a(!i),className:A(`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,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`span`,{className:`text-ink-3`,children:e}),(0,q.jsx)(`span`,{className:`font-medium`,children:s.label})]}):(0,q.jsxs)(q.Fragment,{children:[e,(0,q.jsx)(re,{className:A(`size-3.5 transition`,i&&`rotate-180`)})]})}),s?(0,q.jsx)(`button`,{type:`button`,"aria-label":`${e}: ${M(`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,q.jsx)(N,{className:`size-3.5`})}):null]}),i?(0,q.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,q.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:A(`flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-left text-[14px] 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,q.jsx)(`span`,{className:`flex-1 whitespace-nowrap`,children:e.label}),e.value===t?(0,q.jsx)(T,{className:`size-4 text-ember`}):e.unavailable?(0,q.jsx)(`span`,{className:`whitespace-nowrap text-[12px] text-ink-4`,children:M(`market.unavailable`)}):(0,q.jsx)(`span`,{className:`text-[12px] text-ink-4 tabular-nums`,children:e.count})]},e.value))}):null]})}function tt(e,t){let[n,r]=(0,U.useState)(e);return(0,U.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}var nt=60;function rt({onUse:e,busy:t,open:n}){let[r,i]=(0,U.useState)(``),[a,s]=(0,U.useState)(Ve),[c,l]=(0,U.useState)(!1),[u,d]=(0,U.useState)(n??null),f=tt(r.trim(),250),m=ye({queryKey:[`marketplace`,O,f,a,c],queryFn:({pageParam:e})=>{let t=new URLSearchParams({lang:O,limit:String(nt),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:J(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`,Re),x=[{key:`industry`,name:M(`market.industry`),options:y(`industry`,Le)},{key:`format`,name:M(`market.format`),options:y(`format`,W,e=>(0,q.jsx)(Y,{format:e,className:`size-4 text-ink-3`}))},{key:`capability`,name:M(`market.capability`),options:y(`capability`,G,e=>{let t=Je[e];return(0,q.jsx)(t,{className:`size-4 text-ink-3`})})}],S=!!r.trim()||c||Object.values(a).some(Boolean),C=()=>{s(Ve),i(``),l(!1)};if(m.isLoading)return(0,q.jsx)(`div`,{className:`flex justify-center py-10`,children:(0,q.jsx)(k,{className:`size-6 text-ink-3`})});let w=h?.offline?(0,q.jsxs)(`p`,{className:`mt-4 flex items-center justify-center gap-2 text-[13px] text-ink-3`,children:[(0,q.jsx)(we,{className:`size-4 shrink-0`}),M(`market.offline`)]}):null;if(!_&&!S)return w;let te=r?(0,q.jsx)(`button`,{type:`button`,"aria-label":M(`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,q.jsx)(N,{className:`size-4`})}):null,T=e=>A(`inline-flex h-7 shrink-0 items-center gap-1 whitespace-nowrap rounded-full px-2.5 text-[12.5px] 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,q.jsxs)(`div`,{children:[(0,q.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,q.jsx)(k,{className:`size-4 shrink-0 text-ink-3`}):(0,q.jsx)(ce,{className:`size-4 shrink-0 text-ink-3`}),(0,q.jsx)(`input`,{type:`search`,value:r,onChange:e=>i(e.target.value),placeholder:M(`market.search`),"aria-label":M(`market.search`),className:`min-w-0 flex-1 bg-transparent text-[15px] outline-none placeholder:text-ink-4 [&::-webkit-search-cancel-button]:hidden`}),te]}),w,(0,q.jsxs)(`div`,{className:`max-sm:-mx-4 mt-4 flex gap-1 max-sm:overflow-x-auto max-sm:px-4 max-sm:[scrollbar-width:none] sm:flex-wrap sm:justify-center max-sm:[&::-webkit-scrollbar]:hidden`,children:[[{value:``,label:M(`market.all`)},...ee].map(e=>(0,q.jsx)(`button`,{type:`button`,"aria-pressed":!c&&a.useCase===e.value,onClick:()=>{l(!1),s({...a,useCase:e.value})},className:T(!c&&a.useCase===e.value),children:e.label},e.value)),(0,q.jsxs)(`button`,{type:`button`,"aria-pressed":c,onClick:()=>l(!c),className:T(c),children:[(0,q.jsx)(E,{className:A(`size-3.5`,c&&`fill-amber text-amber`)}),M(`market.starred`)]})]}),(0,q.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,q.jsx)(et,{name:e.name,value:a[e.key],options:e.options,onChange:t=>s({...a,[e.key]:t})},e.key)),(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-3 whitespace-nowrap pl-2 text-[13px] text-ink-3`,children:[S?(0,q.jsxs)(`button`,{type:`button`,onClick:C,className:`inline-flex items-center gap-1 text-ember-strong underline-offset-2 hover:underline`,children:[(0,q.jsx)(N,{className:`size-3.5 max-sm:size-4`}),(0,q.jsx)(`span`,{className:`max-sm:sr-only`,children:M(`market.resetShort`)})]}):null,S?(0,q.jsx)(`span`,{className:`tabular-nums sm:hidden`,children:M(`market.countOfShort`,{n:h?.total??0,all:_})}):null,(0,q.jsx)(`span`,{className:A(`tabular-nums`,S&&`max-sm:hidden`),children:S?M(`market.countOf`,{n:h?.total??0,all:_}):M(`market.count`,{n:_})})]})]}),g.length?(0,q.jsx)(`div`,{className:`mt-4 grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:g.map(e=>(0,q.jsx)(Ke,{entry:e,onOpen:()=>d(e.id)},e.id))}):(0,q.jsxs)(`div`,{className:`py-10 text-center text-[14px] text-ink-3`,children:[(0,q.jsx)(`p`,{children:M(c?`market.noneStarred`:`market.none`)}),(0,q.jsx)(j,{variant:`ghost`,className:`mt-2`,onClick:C,children:M(`market.reset`)})]}),m.hasNextPage?(0,q.jsx)(`div`,{className:`mt-6 flex justify-center`,children:(0,q.jsx)(j,{variant:`secondary`,busy:m.isFetchingNextPage,onClick:()=>void m.fetchNextPage(),children:M(`market.more`)})}):null,(0,q.jsx)($e,{id:u,fallback:g.find(e=>e.id===u)??null,onClose:()=>d(null),onUse:e,busy:t})]})}var it={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 at(){let e=l(),t=m(),{project:n}=h(),[i,a]=(0,U.useState)(``),[o]=r(),s=g({mutationFn:e=>p.post(`/api/studio/wizards`,{projectId:n.id,starterId:e,lang:O}),onSuccess:async({id:n},r)=>{await t.invalidateQueries({queryKey:[`projects`]}),await t.invalidateQueries({queryKey:[`wizards`]}),e(r?`/edit/${n}`:`/edit/${n}?prompt=${encodeURIComponent(i.trim())}`)}}),c=()=>{i.trim()&&n&&s.mutate(void 0)};return(0,q.jsxs)(`div`,{className:`animate-rise pt-4`,children:[(0,q.jsxs)(`div`,{className:`mx-auto max-w-2xl`,children:[(0,q.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,q.jsx)(u,{kind:`sprout`,size:150,fluffy:!0}),(0,q.jsx)(`h1`,{className:`mt-2 font-display font-semibold text-[32px] leading-tight tracking-tight sm:text-[38px]`,children:M(`new.title`)})]}),(0,q.jsxs)(`div`,{className:`mt-8 rounded-2xl bg-card p-2 shadow-elevated ring-1 ring-border-soft focus-within:ring-focus`,children:[(0,q.jsx)(me,{autoFocus:!0,minRows:4,value:i,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&c()},placeholder:M(`new.placeholder`),className:`border-0 bg-transparent text-[16px] shadow-none focus:ring-0`}),(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-2 pb-1`,children:[(0,q.jsx)(`span`,{className:`hidden text-[12px] text-ink-4 sm:block`,children:M(`new.hint`)}),(0,q.jsxs)(j,{size:`md`,onClick:c,busy:s.isPending&&!s.variables,disabled:!i.trim(),children:[M(`new.build`),` `,(0,q.jsx)(ee,{className:`size-4`})]})]})]}),(0,q.jsx)(`div`,{className:`mt-4 flex flex-wrap justify-center gap-2`,children:it[O].map(e=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>a(e),className:`rounded-full bg-paper-2 px-3.5 py-1.5 text-[13px] text-ink-2 transition hover:bg-paper-3 hover:text-ink`,children:e},e))})]}),(0,q.jsxs)(`section`,{className:`mx-auto max-w-5xl`,children:[(0,q.jsx)(`h2`,{className:`mt-16 mb-5 text-center font-medium text-[13px] text-ink-3 uppercase tracking-[0.08em]`,children:M(`new.orStarter`)}),(0,q.jsx)(rt,{open:o.get(`starter`),busy:s.isPending&&!!s.variables,onUse:e=>n&&!s.isPending&&s.mutate(e.id)}),s.error?(0,q.jsx)(`p`,{className:`mt-3 text-center text-[14px] text-rose`,children:s.error.message}):null]}),(0,q.jsx)(`div`,{className:`mt-8 flex justify-center`,children:(0,q.jsx)(_e,{variant:`ghost`,label:M(`new.import`)})})]})}export{at as NewWizardPage};
@@ -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-KMi35npD.js";import{t as m}from"./createLucideIcon-q3MZMmnf.js";import{t as h}from"./RunnerView-DOizlTad.js";import{t as g}from"./arrow-right-6FyN3e7D.js";import{d as _,h as v,t as y,y as b}from"./ui-Cs6lpsmj.js";var x={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`]};x.node;var S=m(x),C=e(t(),1);function w(){if(window.self===window.top)return null;let e=new URLSearchParams(window.location.search).get(`embed`);return e===`inline`||e===`modal`?e:null}var T=w(),E=(e,t={})=>window.parent.postMessage({type:`engenty-wizard:${e}`,...t},`*`);function D(){(0,C.useEffect)(()=>{if(T===`inline`){let e=document.documentElement;document.getElementById(`root`)?.style.setProperty(`min-height`,`0`),e.style.overflow=`hidden`;let t=new ResizeObserver(()=>E(`height`,{height:Math.ceil(e.getBoundingClientRect().height)}));return t.observe(e),()=>t.disconnect()}if(T===`modal`){let e=e=>{e.key===`Escape`&&!document.querySelector(`dialog[open]`)&&E(`close`)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)}},[])}var O=e(n(),1);function k(e){(0,C.useEffect)(()=>{if(!e)return;let t=document.documentElement;return t.style.setProperty(`--raw-primary`,e),()=>{t.style.removeProperty(`--raw-primary`)}},[e])}function A(e,t){(0,C.useEffect)(()=>{let n=document.querySelector(`link[rel="manifest"]`);if(!e||!t||!n)return;let r=n.getAttribute(`href`)??`/manifest.webmanifest`;n.setAttribute(`href`,`/api/public/wizards/${e}/manifest.webmanifest`);let i=document.createElement(`meta`);return i.name=`apple-mobile-web-app-title`,i.content=t,document.head.appendChild(i),()=>{n.setAttribute(`href`,r),i.remove()}},[e,t])}function j(){let[e,t]=(0,C.useState)(()=>window.wizardInstall??null),[n,r]=(0,C.useState)(!1);(0,C.useEffect)(()=>{let e=()=>t(window.wizardInstall??null);return window.addEventListener(`wizard-install`,e),()=>window.removeEventListener(`wizard-install`,e)},[]);let i=window.matchMedia(`(display-mode: standalone)`).matches||navigator.standalone===!0,a=/iPhone|iPad|iPod/.test(navigator.userAgent)||navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1;return i||!e&&!a?null:(0,O.jsxs)(`div`,{className:`mt-6 flex flex-col items-center gap-2 text-[13px] text-ink-3`,children:[(0,O.jsxs)(`button`,{type:`button`,onClick:()=>{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:[(0,O.jsx)(S,{className:`size-4`}),` `,b(`install.add`)]}),n?(0,O.jsx)(`p`,{className:`max-w-xs leading-relaxed`,children:b(`install.ios`)}):null]})}function M({brand:e,toggle:t=!0}){return(0,O.jsx)(`header`,{className:`safe-top`,children:(0,O.jsxs)(`div`,{className:`relative flex h-14 items-center justify-center px-5`,children:[e.logoUrl?(0,O.jsx)(`img`,{src:a(e.logoUrl),alt:e.name,className:`h-7 max-w-[160px] object-contain`}):e.name?(0,O.jsx)(`span`,{className:`max-w-[60%] truncate font-display font-semibold text-[15px] text-ink-2 tracking-tight`,children:e.name}):null,t?(0,O.jsx)(`div`,{className:`absolute right-3`,children:(0,O.jsx)(s,{})}):null]})})}function N({siteKey:e,onToken:t}){let n=(0,C.useRef)(null);return(0,C.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,O.jsx)(`div`,{ref:n,className:`mt-4 flex justify-center`})}var P=e=>`wz.run.${e}`,F=T===`inline`?`min-h-80`:`min-h-dvh`;function I({wizard:e}){let t=r(),[n,i]=(0,C.useState)(!1),[a,s]=(0,C.useState)(null),[c,l]=(0,C.useState)(null),u=(()=>{try{return localStorage.getItem(P(e.token))}catch{return null}})();return(0,O.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,O.jsx)(o,{kind:e.avatar,size:190,fluffy:!0}),(0,O.jsx)(`h1`,{className:`mt-2 text-balance font-display font-semibold text-[30px] leading-[1.1] tracking-tight sm:text-[34px]`,children:e.title}),e.description?(0,O.jsx)(`p`,{className:`mt-3 text-[16px] text-ink-2 leading-relaxed`,children:e.description}):null,e.available?(0,O.jsxs)(O.Fragment,{children:[(0,O.jsxs)(y,{size:`lg`,className:`mt-10 min-w-48`,busy:n,disabled:!!e.turnstileSiteKey&&!c,onClick:async()=>{i(!0),s(null);try{let{runId:n}=await f.post(`/api/public/wizards/${e.token}/runs`,{turnstileToken:c??void 0,embedded:T!==null});try{localStorage.setItem(P(e.token),n)}catch{}t(`/w/${e.token}/${n}`)}catch(e){s(e.message),i(!1)}},children:[b(`run.start`),` `,(0,O.jsx)(g,{className:`size-4`})]}),e.turnstileSiteKey?(0,O.jsx)(N,{siteKey:e.turnstileSiteKey,onToken:l}):null,u?(0,O.jsx)(`button`,{type:`button`,onClick:()=>t(`/w/${e.token}/${u}`),className:`mt-4 text-[14px] text-ink-3 underline-offset-4 hover:text-ink hover:underline coarse:min-h-11`,children:b(`run.resume`)}):null,T?null:(0,O.jsx)(j,{})]}):(0,O.jsx)(`p`,{className:`mt-10 rounded-xl bg-paper-2 px-5 py-4 text-[15px] text-ink-2`,children:e.unavailableReason??b(`run.unavailable`)}),a?(0,O.jsx)(`p`,{className:`mt-4 text-[14px] text-rose`,children:a}):null]})}function L(){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(k(a.data?.brand.accent),c(a.data?.avatar),A(e,a.data?.title),D(),(0,C.useEffect)(()=>{a.data&&(document.title=a.data.title)},[a.data]),a.isLoading)return(0,O.jsx)(`div`,{className:v(`flex items-center justify-center text-ink-4`,F),children:(0,O.jsx)(_,{})});if(!a.data){let e=p(a.error);return(0,O.jsxs)(`div`,{className:v(`flex flex-col items-center justify-center gap-4 px-6 text-center`,F),children:[(0,O.jsx)(o,{kind:`pebble`,size:80}),(0,O.jsx)(`p`,{className:`max-w-xs text-ink-3`,children:b(e?`common.offline`:`run.notFound`)}),e?(0,O.jsx)(y,{variant:`secondary`,onClick:()=>void a.refetch(),children:b(`common.retry`)}):null]})}return(0,O.jsxs)(`div`,{className:v(`flex flex-col`,F),children:[T===`inline`?null:(0,O.jsx)(M,{brand:a.data.brand,toggle:!T}),(0,O.jsx)(`div`,{className:`flex-1`,children:t?(0,O.jsx)(h,{runId:t,onRestart:()=>n(`/w/${e}`)}):(0,O.jsx)(I,{wizard:a.data})}),(0,O.jsx)(`footer`,{className:`safe-bottom pt-6 text-center text-[12px] text-ink-4`,children:(0,O.jsx)(`a`,{href:`${i}/`,target:T?`_blank`:void 0,rel:`noreferrer`,className:`inline-block py-3.5 hover:text-ink-2`,children:b(`run.madeWith`).replace(`engenty wizards`,d.name)})})]})}export{M as BrandHeader,L as PublicRunner,k as useBrandAccent};