dot-studio 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -200
- package/client/assets/ActFrame-BYOBkLYW.js +1 -0
- package/client/assets/ActFrame-C_WEt6bv.css +1 -0
- package/client/assets/ActInspectorPanel-C3VlS7tB.js +1 -0
- package/client/assets/ActInspectorPanel-CE6s6GYv.css +1 -0
- package/client/assets/AssistantChat-BOyW0K79.js +1 -0
- package/client/assets/AssistantChat-DoVmHvMJ.css +1 -0
- package/client/assets/CanvasTerminalFrame-BC-79q9U.css +1 -0
- package/client/assets/CanvasTerminalFrame-DxKbexK6.js +4 -0
- package/client/assets/CanvasTrackingFrame-DumxhNwg.js +1 -0
- package/client/assets/CanvasTrackingFrame-G4rRrfne.css +1 -0
- package/client/assets/CanvasWindowFrame-ziJeVfHG.js +1 -0
- package/client/assets/DanceBundleEditorFrame-CH8VDUMK.js +1 -0
- package/client/assets/DanceBundleEditorFrame-DaLqMflT.css +1 -0
- package/client/assets/MarkdownEditorFrame-DVecIZpZ.css +1 -0
- package/client/assets/MarkdownEditorFrame-Dwpgs2GX.js +2 -0
- package/client/assets/MarkdownRenderer-Cz8A4AgP.js +1 -0
- package/client/assets/PublishModal-DUlHz0fT.js +1 -0
- package/client/assets/TodoDock-DcVf7zQG.js +1 -0
- package/client/assets/WorkspaceToolbar-CXYi_sMD.js +2 -0
- package/client/assets/WorkspaceToolbar-CiQvVocC.css +1 -0
- package/client/assets/chat-message-visibility-YwJ-AQno.js +11 -0
- package/client/assets/dnd-vendor-CIAZE2P2.js +5 -0
- package/client/assets/flow-vendor-BZV40eAE.css +1 -0
- package/client/assets/flow-vendor-C868rU-6.js +23 -0
- package/client/assets/icon-vendor-I2JVIi1s.js +501 -0
- package/client/assets/index-BMY4hrBP.js +3 -0
- package/client/assets/index-C-vnj9y3.js +1 -0
- package/client/assets/index-C9HTqfZw.css +1 -0
- package/client/assets/index-CWrv6O3o.js +64 -0
- package/client/assets/index-DMS12-Q2.js +8 -0
- package/client/assets/index-Dn7t_Y7G.js +1 -0
- package/client/assets/index-p-wk7iGH.css +1 -0
- package/client/assets/markdown-vendor-BSTcku12.css +10 -0
- package/client/assets/markdown-vendor-DnTJ9hmR.js +35 -0
- package/client/assets/participant-labels-Cf3qP3GB.js +1 -0
- package/client/assets/queries-Dm1jEHfc.js +1 -0
- package/client/assets/query-vendor-_taqgrbn.js +1 -0
- package/client/assets/react-vendor-DzpMUNDT.js +49 -0
- package/client/assets/settings-utils-l7KCS3Ev.js +1 -0
- package/client/assets/terminal-vendor-6GBZ9nXN.css +32 -0
- package/client/assets/terminal-vendor-D0xRnmbI.js +112 -0
- package/client/index.html +13 -3
- package/dist/cli.js +25 -3
- package/dist/server/app.js +72 -0
- package/dist/server/index.js +2 -62
- package/dist/server/lib/act-session-policy.js +31 -0
- package/dist/server/lib/chat-session.js +101 -0
- package/dist/server/lib/config.js +18 -4
- package/dist/server/lib/dot-authoring.js +171 -102
- package/dist/server/lib/dot-loader.js +9 -8
- package/dist/server/lib/dot-login.js +8 -190
- package/dist/server/lib/dot-source.js +11 -0
- package/dist/server/lib/model-catalog.js +74 -15
- package/dist/server/lib/opencode-auth.js +4 -1
- package/dist/server/lib/opencode-errors.js +70 -38
- package/dist/server/lib/opencode-sidecar.js +5 -2
- package/dist/server/lib/project-config.js +8 -0
- package/dist/server/lib/runtime-tools.js +46 -8
- package/dist/server/lib/safe-mode.js +410 -0
- package/dist/server/lib/session-execution.js +81 -0
- package/dist/server/lib/sse.js +22 -0
- package/dist/server/routes/act-runtime-threads.js +156 -0
- package/dist/server/routes/act-runtime-tools.js +157 -0
- package/dist/server/routes/act-runtime.js +7 -0
- package/dist/server/routes/adapter.js +32 -0
- package/dist/server/routes/assets-collection.js +16 -0
- package/dist/server/routes/assets-detail.js +38 -0
- package/dist/server/routes/assets.js +4 -158
- package/dist/server/routes/chat-messages.js +104 -0
- package/dist/server/routes/chat-sessions.js +104 -0
- package/dist/server/routes/chat-stream.js +15 -0
- package/dist/server/routes/chat.js +6 -353
- package/dist/server/routes/compile.js +5 -91
- package/dist/server/routes/dot-assets.js +77 -0
- package/dist/server/routes/dot-core.js +62 -0
- package/dist/server/routes/dot-performer.js +80 -0
- package/dist/server/routes/dot.js +6 -267
- package/dist/server/routes/drafts-collection.js +40 -0
- package/dist/server/routes/drafts-dance-bundle.js +113 -0
- package/dist/server/routes/drafts-item.js +86 -0
- package/dist/server/routes/drafts.js +9 -0
- package/dist/server/routes/health.js +18 -33
- package/dist/server/routes/opencode-core.js +120 -0
- package/dist/server/routes/opencode-file.js +67 -0
- package/dist/server/routes/opencode-mcp.js +74 -0
- package/dist/server/routes/opencode-provider.js +41 -0
- package/dist/server/routes/opencode.js +8 -418
- package/dist/server/routes/route-errors.js +10 -0
- package/dist/server/routes/safe-actions.js +60 -0
- package/dist/server/routes/safe-summary.js +20 -0
- package/dist/server/routes/safe.js +7 -0
- package/dist/server/routes/workspaces.js +47 -0
- package/dist/server/services/act-runtime/act-context-builder.js +81 -0
- package/dist/server/services/act-runtime/act-runtime-service.js +313 -0
- package/dist/server/services/act-runtime/act-runtime-utils.js +10 -0
- package/dist/server/services/act-runtime/act-tool-projection.js +26 -0
- package/dist/server/services/act-runtime/act-tools.js +151 -0
- package/dist/server/services/act-runtime/board-persistence.js +38 -0
- package/dist/server/services/act-runtime/event-logger.js +73 -0
- package/dist/server/services/act-runtime/event-router.js +102 -0
- package/dist/server/services/act-runtime/mailbox.js +149 -0
- package/dist/server/services/act-runtime/safety-guard.js +162 -0
- package/dist/server/services/act-runtime/session-queue.js +114 -0
- package/dist/server/services/act-runtime/thread-manager.js +351 -0
- package/dist/server/services/act-runtime/wake-cascade.js +306 -0
- package/dist/server/services/act-runtime/wake-evaluator.js +43 -0
- package/dist/server/services/act-runtime/wake-performer-resolver.js +68 -0
- package/dist/server/services/act-runtime/wake-prompt-builder.js +77 -0
- package/dist/server/services/adapter-view-service.js +6 -0
- package/dist/server/services/asset-service.js +366 -0
- package/dist/server/services/chat-event-stream-service.js +157 -0
- package/dist/server/services/chat-service.js +207 -0
- package/dist/server/services/chat-session-service.js +203 -0
- package/dist/server/services/compile-service.js +4 -0
- package/dist/server/services/dance-bundle-service.js +222 -0
- package/dist/server/services/dot-add-service.js +59 -0
- package/dist/server/services/dot-service.js +178 -0
- package/dist/server/services/draft-service.js +367 -0
- package/dist/server/services/opencode-projection/dance-compiler.js +164 -0
- package/dist/server/services/opencode-projection/performer-compiler.js +195 -0
- package/dist/server/services/opencode-projection/preview-service.js +31 -0
- package/dist/server/services/opencode-projection/projection-manifest.js +98 -0
- package/dist/server/services/opencode-projection/stage-projection-service.js +188 -0
- package/dist/server/services/opencode-service.js +338 -0
- package/dist/server/services/safe-service.js +33 -0
- package/dist/server/services/studio-assistant/assistant-service.js +172 -0
- package/dist/server/services/studio-service.js +69 -0
- package/dist/server/services/workspace-service.js +224 -0
- package/dist/server/terminal.js +57 -11
- package/dist/shared/act-types.js +4 -0
- package/dist/shared/adapter-view.js +1 -0
- package/dist/shared/asset-contracts.js +1 -0
- package/dist/shared/assistant-actions.js +1 -0
- package/dist/shared/chat-contracts.js +1 -0
- package/dist/shared/dot-contracts.js +1 -0
- package/dist/shared/dot-types.js +4 -0
- package/dist/shared/draft-contracts.js +2 -0
- package/dist/shared/model-types.js +2 -0
- package/dist/shared/performer-mcp-portability.js +10 -0
- package/dist/shared/safe-mode.js +1 -0
- package/dist/shared/session-metadata.js +4 -3
- package/package.json +6 -4
- package/client/assets/index-C2eIILoa.css +0 -41
- package/client/assets/index-DUPZ_Lw5.js +0 -616
- package/dist/server/lib/act-runtime.js +0 -1282
- package/dist/server/lib/prompt.js +0 -222
- package/dist/server/routes/stages.js +0 -137
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,r as v}from"./react-vendor-DzpMUNDT.js";import{Q as de,u as y,i as U,R as ee,a as T,T as se,I as te}from"./index-CWrv6O3o.js";import{ad as ne,az as ue,Z as me,K as he,X as pe,ac as fe,Y as ge}from"./icon-vendor-I2JVIi1s.js";import{b as be}from"./query-vendor-_taqgrbn.js";import{q as H}from"./queries-Dm1jEHfc.js";import{u as xe}from"./WorkspaceToolbar-CXYi_sMD.js";import"./flow-vendor-C868rU-6.js";import"./dnd-vendor-CIAZE2P2.js";import"./markdown-vendor-DnTJ9hmR.js";import"./terminal-vendor-D0xRnmbI.js";const K="https://danceoftal.com/tos";function ae(n){return n.split(",").map(i=>i.trim()).filter(Boolean)}function ke(n){var i,s,r,o;return!!(!((i=n.meta)!=null&&i.derivedFrom)||(s=n.meta.authoring)!=null&&s.slug||(r=n.meta.authoring)!=null&&r.description||(o=n.meta.authoring)!=null&&o.tags&&n.meta.authoring.tags.length>0)}function je(n){const i=!!n.talRef,s=n.danceRefs.length>0;if(!i&&!s)return"Needs at least a Tal or Dance"}function ve(n){const i=Object.keys(n.participants);if(i.length===0)return"No participants";if(n.relations.length===0)return"No relations";const s=new Set;for(const o of n.relations)s.add(o.between[0]),s.add(o.between[1]);const r=i.filter(o=>!s.has(o));if(r.length>0)return`Disconnected: ${r.join(", ")}`}function _e(n){const i=[],s=Object.keys(n.participants);if(s.length===0&&i.push("Act has no participants."),n.relations.length===0&&i.push("Act has no relations. Create relations between participants first."),s.length>0&&n.relations.length>0){const r=new Set;for(const a of n.relations)r.add(a.between[0]),r.add(a.between[1]);const o=s.filter(a=>!r.has(a));o.length>0&&i.push(`Disconnected participant${o.length>1?"s":""}: ${o.join(", ")}. All participants must be connected by relations.`);const b=n.relations.filter(a=>!n.participants[a.between[0]]||!n.participants[a.between[1]]);b.length>0&&i.push(`${b.length} relation(s) reference participants not in this Act.`)}return i}function ye(n){const i=[],s=n.installedTals.filter(a=>a.source==="stage");for(const a of s){const p=typeof a.content=="string"&&a.content.trim().length>0;i.push({kind:"tal",source:"local",urn:a.urn,name:a.name,slug:a.name,issue:p?void 0:"Empty content"})}const r=n.installedDances.filter(a=>a.source==="stage");for(const a of r){const p=typeof a.content=="string"&&a.content.trim().length>0;i.push({kind:"dance",source:"local",urn:a.urn,name:a.name,slug:a.name,issue:p?void 0:"Empty content"})}const o=new Set(s.map(a=>a.urn)),b=new Set(r.map(a=>a.urn));for(const a of n.markdownEditors){const p=n.drafts[a.draftId];if(!p||p.derivedFrom&&(a.kind==="tal"&&o.has(p.derivedFrom)||a.kind==="dance"&&b.has(p.derivedFrom)))continue;const w=typeof p.content=="string"&&p.content.trim().length>0;i.push({kind:a.kind,source:"draft",editorId:a.id,draftId:a.draftId,name:p.name||`Untitled ${a.kind}`,issue:w?void 0:"Empty content"})}for(const a of n.performers)ke(a)&&i.push({kind:"performer",source:"canvas",performerId:a.id,name:a.name,issue:je(a)});for(const a of n.acts||[]){const p=ve(a);i.push({kind:"act",source:"canvas",actId:a.id,name:a.name,issue:p})}return i}function Pe(n){return n?[...n.talRef?[{label:"Tal",ref:n.talRef,required:!0}]:[],...n.danceRefs.map((s,r)=>({label:`Dance ${r+1}`,ref:s,required:!1}))].map(s=>{const r=de(s.ref);return r?{...s,status:"ready",detail:r}:s.ref.kind==="draft"?{...s,status:"draft",detail:`draft:${s.ref.draftId}`}:{...s,status:"missing",detail:"not set"}}):[]}function ie(n,i,s,r,o){return{description:r.trim()||i.name.trim()||n.kind,tags:o,content:typeof i.content=="string"?i.content:""}}function we(n){return n.name}function z({title:n,items:i,onPick:s,icon:r}){return e.jsxs("div",{className:"publish-modal__picker-section",children:[e.jsx("div",{className:"publish-modal__picker-section-title",children:n}),i.map((o,b)=>e.jsxs("button",{className:`publish-modal__picker-item${o.issue?" is-warning":""}`,onClick:()=>s(o),children:[e.jsx("span",{className:"publish-modal__picker-item-icon",children:r}),e.jsx("span",{className:"publish-modal__picker-item-name",children:we(o)}),o.issue?e.jsx("span",{className:"publish-modal__picker-item-issue",children:o.issue}):e.jsx("span",{className:"publish-modal__picker-item-badge",children:o.source==="draft"?"unsaved":o.source==="local"?"saved":""})]},`${o.kind}-${b}`))]})}function Ne({pickerItems:n,authUser:i,isAuthenticating:s,onPick:r,onStartLogin:o}){const b=n.filter(j=>j.kind==="tal"),a=n.filter(j=>j.kind==="dance"),p=n.filter(j=>j.kind==="performer"),w=n.filter(j=>j.kind==="act");return e.jsxs("div",{className:"publish-modal__body",children:[n.length===0?e.jsx("div",{className:"publish-modal__empty",children:"No publishable assets. Create or customize a Tal, Dance, Performer, or Act on the canvas to get started."}):e.jsxs(e.Fragment,{children:[b.length>0&&e.jsx(z,{title:"Tal",items:b,onPick:r,icon:e.jsx(ne,{size:12})}),a.length>0&&e.jsx(z,{title:"Dance",items:a,onPick:r,icon:e.jsx(ne,{size:12})}),p.length>0&&e.jsx(z,{title:"Performers",items:p,onPick:r,icon:e.jsx(ue,{size:12})}),w.length>0&&e.jsx(z,{title:"Acts",items:w,onPick:r,icon:e.jsx(me,{size:12})})]}),!(i!=null&&i.authenticated)&&e.jsxs("div",{className:"publish-modal__auth-callout",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"DOT sign-in required"}),e.jsxs("p",{children:["Save Local and Publish use your DOT namespace. By signing in, you agree to the Dance of Tal Terms of Service:"," ",e.jsx("a",{href:K,target:"_blank",rel:"noreferrer",children:K})]})]}),e.jsx("button",{className:"publish-modal__action publish-modal__action--auth",onClick:o,disabled:s,children:s?"Signing in…":"Sign in"})]})]})}function Se({slug:n,description:i,tagsText:s,setSlug:r,setDescription:o,setTagsText:b,performerPreflight:a,markdownEditor:p,markdownDirty:w,draft:j,authUser:A,isAuthenticating:C,onStartLogin:I,status:g,publishBlockedReason:L}){return e.jsxs("div",{className:"publish-modal__body",children:[e.jsxs("div",{className:"publish-modal__grid",children:[e.jsxs("label",{className:"publish-modal__field",children:[e.jsx("span",{children:"Slug"}),e.jsx("input",{className:"text-input",value:n,onChange:_=>r(_.target.value)})]}),e.jsxs("label",{className:"publish-modal__field",children:[e.jsx("span",{children:"Description"}),e.jsx("input",{className:"text-input",value:i,onChange:_=>o(_.target.value)})]})]}),e.jsxs("label",{className:"publish-modal__field",children:[e.jsx("span",{children:"Tags"}),e.jsx("input",{className:"text-input",value:s,onChange:_=>b(_.target.value),placeholder:"tag, tag"})]}),a.length>0?e.jsxs("div",{className:"publish-modal__preflight",children:[e.jsx("strong",{children:"Performer dependencies"}),a.map(_=>e.jsxs("div",{className:`publish-modal__preflight-row is-${_.status}`,children:[e.jsx("span",{children:_.label}),e.jsx("span",{children:_.detail})]},`${_.label}-${_.detail}`))]}):null,p?e.jsxs("div",{className:"publish-modal__preflight",children:[e.jsx("strong",{children:"Markdown editor"}),e.jsxs("div",{className:`publish-modal__preflight-row ${w?"is-ready":"is-missing"}`,children:[e.jsx("span",{children:"Change state"}),e.jsx("span",{children:w?"Modified":"No changes since baseline"})]}),j!=null&&j.derivedFrom?e.jsxs("div",{className:"publish-modal__preflight-row is-ready",children:[e.jsx("span",{children:"Derived from"}),e.jsx("span",{children:j.derivedFrom})]}):null]}):null,A!=null&&A.authenticated?null:e.jsxs("div",{className:"publish-modal__auth-callout",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"DOT sign-in required"}),e.jsxs("p",{children:["Save Local and Publish use your DOT namespace. By signing in, you agree to the Dance of Tal Terms of Service:"," ",e.jsx("a",{href:K,target:"_blank",rel:"noreferrer",children:K})]})]}),e.jsx("button",{className:"publish-modal__action publish-modal__action--auth",onClick:I,disabled:C,children:C?"Signing in…":"Sign in"})]}),g?e.jsx("div",{className:`publish-modal__status publish-modal__status--${g.tone}`,children:g.message}):null,L?e.jsx("div",{className:"publish-modal__status publish-modal__status--error",children:L}):null]})}function Te(n){const i=y(t=>t.workingDir),s=y(t=>t.performers),r=y(t=>t.drafts),o=y(t=>t.markdownEditors),b=y(t=>t.acts),a=y(t=>t.updatePerformerAuthoringMeta),p=y(t=>t.updateMarkdownEditorBaseline),w=y(t=>t.upsertDraft),j=y(t=>t.setPerformerTalRef),A=y(t=>t.addPerformerDanceRef),C=y(t=>t.replacePerformerDanceRef),I=be(),{authUser:g,startLogin:L,isAuthenticating:_}=xe(),[Q,E]=v.useState("picker"),[d,M]=v.useState(null),[x,B]=v.useState(""),[N,O]=v.useState(""),[J,F]=v.useState(""),[re,k]=v.useState(null),[le,q]=v.useState(null),h=(d==null?void 0:d.kind)==="performer"&&s.find(t=>t.id===d.performerId)||null,c=(d==null?void 0:d.source)==="draft"&&o.find(t=>t.id===d.editorId)||null,u=c&&r[c.draftId]||null,D=(d==null?void 0:d.source)==="local",P=(d==null?void 0:d.kind)==="act"&&b.find(t=>t.id===d.actId)||null,f=h?{kind:"performer",id:h.id,name:h.name}:P?{kind:"act",id:P.id,name:P.name}:c&&u?{kind:c.kind,id:c.id,name:u.name||`${c.kind} draft`}:D&&d?{kind:d.kind,id:d.urn,name:d.name}:null,oe=v.useMemo(()=>ye({installedTals:[],installedDances:[],markdownEditors:o,drafts:r,performers:s,acts:b}),[o,r,s,b]);v.useEffect(()=>{n&&(E("picker"),M(null),k(null))},[n]),v.useEffect(()=>{var t,m,l,$,R,V;if(!(Q!=="form"||!d)){if(k(null),h){B(((m=(t=h.meta)==null?void 0:t.authoring)==null?void 0:m.slug)||U(h.name)),O((($=(l=h.meta)==null?void 0:l.authoring)==null?void 0:$.description)||h.name),F((((V=(R=h.meta)==null?void 0:R.authoring)==null?void 0:V.tags)||[]).join(", "));return}if(u){B(u.slug||U(u.name)),O(u.description||u.name),F((u.tags||[]).join(", "));return}D&&d&&d.source==="local"&&(B(d.slug),O(d.name),F(""))}},[Q,d,h,u,D]);const Z=v.useMemo(()=>Pe(h),[h]),W=v.useMemo(()=>{if(!c||!u)return!1;const t=c.baseline;return t?t.name!==u.name||(t.slug||"")!==(u.slug||"")||(t.description||"")!==(u.description||"")||JSON.stringify(t.tags||[])!==JSON.stringify(u.tags||[])||t.content!==u.content:!0},[u,c]),X=v.useMemo(()=>Z.some(t=>t.status!=="ready"),[Z]),Y=v.useMemo(()=>{if(h&&X)return"Save Tal and Dance dependencies as local or published assets before exporting this performer.";if(P){const t=_e(P);if(t.length>0)return t.join(" ")}return null},[h,X,P]),ce=!!f&&!!x.trim()&&(!c||W)&&!Y&&!!(g!=null&&g.authenticated),S=async t=>{await Promise.all([I.invalidateQueries({queryKey:H.assets(i)}),I.invalidateQueries({queryKey:H.assetInventory(i)}),I.invalidateQueries({queryKey:H.assetKind(i,t)})])},G=(t,m,l)=>{var R;if(!c||!u||(w({...u,slug:m,description:l.description,tags:l.tags,derivedFrom:t,updatedAt:Date.now()}),p(c.id,{name:u.name,slug:m,description:l.description,tags:l.tags,content:l.content}),!((R=c.attachTarget)!=null&&R.performerId)))return;const $={kind:"registry",urn:t};c.attachTarget.mode==="tal"?j(c.attachTarget.performerId,$):c.attachTarget.mode==="dance-new"&&!c.attachTarget.targetRef?A(c.attachTarget.performerId,$):c.attachTarget.targetRef&&C(c.attachTarget.performerId,c.attachTarget.targetRef,$)};return{authUser:g,isAuthenticating:_,startLogin:L,step:Q,setStep:E,pickerSelection:d,setPickerSelection:M,target:f,slug:x,setSlug:B,description:N,setDescription:O,tagsText:J,setTagsText:F,status:re,action:le,pickerItems:oe,performerPreflight:Z,markdownEditor:c,markdownDirty:W,draft:u,publishBlockedReason:Y,canSaveOrPublish:ce,isLocalAsset:D,handleSaveLocal:async()=>{if(f)try{q("save-local"),k(null);const t=ae(J);if(f.kind==="performer"&&h){a(h.id,{slug:x,description:N,tags:t});const m=ee(h,{name:h.name,description:N,tags:t}),l=await T.dot.saveLocalAsset("performer",x,m,(g==null?void 0:g.username)||void 0);await S("performer"),k({tone:"success",message:l.existed?`Updated local performer asset at ${l.urn}.`:`Saved local performer asset at ${l.urn}.`});return}if(f.kind==="act"&&P){const m=se(P,{description:N,tags:t}),l=await T.dot.saveLocalAsset("act",x,m,(g==null?void 0:g.username)||void 0);await S("act"),k({tone:"success",message:l.existed?`Updated local act asset at ${l.urn}.`:`Saved local act asset at ${l.urn}.`});return}if((f.kind==="tal"||f.kind==="dance")&&c&&u){const m=ie(c,u,x,N,t),l=await T.dot.saveLocalAsset(c.kind,x,m,(g==null?void 0:g.username)||void 0);G(l.urn,x,m),await S(c.kind),k({tone:"success",message:l.existed?`Updated local ${c.kind} asset at ${l.urn}.`:`Saved local ${c.kind} asset at ${l.urn}.`});return}(f.kind==="tal"||f.kind==="dance")&&D&&k({tone:"success",message:`${f.kind}/${f.id} is already saved locally.`})}catch(t){k({tone:"error",message:te(t,!1)})}finally{q(null)}},handlePublish:async()=>{if(f)try{q("publish"),k(null);const t=ae(J);if(f.kind==="performer"&&h){a(h.id,{slug:x,description:N,tags:t});const m=ee(h,{name:h.name,description:N,tags:t}),l=await T.dot.publishAsset("performer",x,m,t,!0);await S("performer"),k({tone:"success",message:l.published?`Published ${l.urn}.`:`${l.urn} already exists in the registry.`});return}if(f.kind==="act"&&P){const m=se(P,{description:N,tags:t}),l=await T.dot.publishAsset("act",x,m,t,!0);await S("act"),k({tone:"success",message:l.published?`Published ${l.urn}.`:`${l.urn} already exists in the registry.`});return}if((f.kind==="tal"||f.kind==="dance")&&c&&u){const m=ie(c,u,x,N,t),l=await T.dot.publishAsset(c.kind,x,m,t,!0);G(l.urn,x,m),await S(c.kind),k({tone:"success",message:l.published?`Published ${l.urn}.`:`${l.urn} already exists in the registry.`});return}if((f.kind==="tal"||f.kind==="dance")&&D){const m=await T.dot.publishAsset(f.kind,x,void 0,t,!0);await S(f.kind),k({tone:"success",message:m.published?`Published ${m.urn}.`:`${m.urn} already exists in the registry.`})}}catch(t){k({tone:"error",message:te(t,!1)})}finally{q(null)}},handlePickItem:t=>{M(t),E("form")},handleBack:()=>{E("picker"),M(null),k(null)}}}function qe({open:n,onClose:i}){const s=Te(n);return n?e.jsx("div",{className:"publish-modal__backdrop",onClick:i,children:e.jsxs("div",{className:"publish-modal",onClick:r=>r.stopPropagation(),children:[e.jsxs("div",{className:"publish-modal__header",children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[s.step==="form"?e.jsx("button",{className:"icon-btn",onClick:s.handleBack,title:"Back to asset list",children:e.jsx(he,{size:14})}):null,e.jsxs("div",{children:[e.jsx("strong",{children:"Publish"}),e.jsx("p",{children:s.step==="picker"?"Select an asset to save or publish.":s.target?`${s.target.kind} · ${s.target.name}`:""})]})]}),e.jsx("button",{className:"icon-btn",onClick:i,title:"Close publish menu",children:e.jsx(pe,{size:12})})]}),s.step==="picker"?e.jsx(Ne,{pickerItems:s.pickerItems,authUser:s.authUser,isAuthenticating:s.isAuthenticating,onPick:s.handlePickItem,onStartLogin:()=>{s.startLogin(!0)}}):e.jsx(Se,{slug:s.slug,description:s.description,tagsText:s.tagsText,setSlug:s.setSlug,setDescription:s.setDescription,setTagsText:s.setTagsText,performerPreflight:s.performerPreflight,markdownEditor:s.markdownEditor,markdownDirty:s.markdownDirty,draft:s.draft,authUser:s.authUser,isAuthenticating:s.isAuthenticating,onStartLogin:()=>{s.startLogin(!0)},status:s.status,publishBlockedReason:s.publishBlockedReason}),s.step==="form"?e.jsxs("div",{className:"publish-modal__footer",children:[e.jsxs("button",{className:"publish-modal__action",onClick:s.handleSaveLocal,disabled:!s.canSaveOrPublish||!!s.isLocalAsset,children:[e.jsx(fe,{size:11})," ",s.action==="save-local"?"Saving…":"Save Local"]}),e.jsxs("button",{className:"publish-modal__action publish-modal__action--primary",onClick:s.handlePublish,disabled:!s.canSaveOrPublish,children:[e.jsx(ge,{size:11})," ",s.action==="publish"?"Publishing…":"Publish"]})]}):null]})}):null}export{qe as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as i,j as e}from"./react-vendor-DzpMUNDT.js";import{N as M}from"./index-CWrv6O3o.js";import{an as D,y as z,X as E,K as B,C as O,b as P,m as R}from"./icon-vendor-I2JVIi1s.js";function q({request:s,onDecide:r,responding:a}){const u=i.useMemo(()=>{const c=s.permission.split(".");if(c.length>0){const l=c[c.length-1];return l.charAt(0).toUpperCase()+l.slice(1).replace(/_/g," ")}return"Permission Required"},[s.permission]);return e.jsxs("div",{className:"interaction-dock permission-dock",children:[e.jsxs("div",{className:"permission-dock__body",children:[e.jsx(D,{size:16,className:"permission-dock__icon"}),e.jsxs("div",{className:"permission-dock__info",children:[e.jsx("div",{className:"permission-dock__title",children:u}),s.patterns.length>0?e.jsx("div",{className:"permission-dock__patterns",children:s.patterns.map((c,l)=>e.jsx("span",{className:"permission-dock__pattern",children:c},l))}):e.jsx("div",{className:"permission-dock__fallback",children:"The AI is requesting permission to perform an action."})]})]}),s.always&&s.always.length>0&&e.jsxs("div",{className:"permission-dock__always-hint",children:[e.jsx("span",{className:"permission-dock__always-label",children:"Allow Always will auto-approve:"}),e.jsx("div",{className:"permission-dock__always-patterns",children:s.always.map((c,l)=>e.jsx("span",{className:"permission-dock__pattern",children:c},l))})]}),e.jsxs("div",{className:"permission-dock__actions",children:[e.jsx("button",{className:"btn btn--sm",onClick:()=>r("reject"),disabled:a,children:"Deny"}),e.jsx("button",{className:"btn btn--sm",onClick:()=>r("once"),disabled:a,children:"Allow Once"}),e.jsx("button",{className:"btn btn--sm btn--primary",onClick:()=>r("always"),disabled:a,children:"Allow Always"})]})]})}function V({request:s,onRespond:r,onReject:a,responding:u}){var w;const[c,l]=i.useState(0),[N,p]=i.useState(()=>(s.questions||[]).map(()=>[])),j=i.useRef(null),k=s.questions||[],m=c===k.length-1,o=k[c],y=k.map((n,d)=>N[d]||[]);i.useEffect(()=>{j.current&&j.current.focus()},[c]);const C=()=>{m?r(y):l(c+1)},T=()=>{c>0&&l(c-1)},v=n=>{n.key==="Enter"&&!n.shiftKey&&(n.preventDefault(),n.stopPropagation(),C())},_=n=>{o&&p(d=>{const x=k.map((g,b)=>d[b]||[]);return x[c]=n,x})};if(!o)return null;const h=y[c]||[],A=Array.isArray(o.options)&&o.options.length>0,t=o.custom!==!1,f=!!o.multiple,S=n=>{f?h.includes(n)?_(h.filter(d=>d!==n)):_([...h,n]):_([n])},L=n=>{var d;if(f){const x=((d=o.options)==null?void 0:d.map(b=>b.label))||[],g=h.filter(b=>x.includes(b));_(n.trim()===""?g:[...g,n])}else _([n])};return e.jsxs("div",{className:"interaction-dock question-dock",children:[e.jsxs("div",{className:"question-dock__header",children:[e.jsx(z,{size:16,className:"question-dock__icon"}),e.jsx("span",{className:"question-dock__title",children:o.header}),e.jsxs("span",{className:"question-dock__step",children:[c+1," / ",k.length]})]}),e.jsxs("div",{className:"question-dock__body",children:[e.jsx("div",{className:"question-dock__question-text",children:o.question}),A&&e.jsx("div",{className:"question-dock__options",children:o.options.map(n=>e.jsxs("label",{className:"question-dock__option",children:[e.jsx("input",{type:f?"checkbox":"radio",name:`q_${o.header}`,checked:h.includes(n.label),onChange:()=>S(n.label),disabled:u}),e.jsxs("div",{children:[e.jsx("div",{className:"question-dock__option-label",children:n.label}),n.description&&e.jsx("div",{className:"question-dock__option-desc",children:n.description})]})]},n.label))}),t&&e.jsx("textarea",{ref:j,className:"question-dock__custom-input",value:f?h.find(n=>{var d;return!((d=o.options)!=null&&d.find(x=>x.label===n))})||"":(w=o.options)!=null&&w.find(n=>n.label===h[0])?"":h[0]||"",onChange:n=>L(n.target.value),onKeyDown:v,placeholder:A?"Or type your own answer…":"Type your answer…",disabled:u})]}),e.jsxs("div",{className:"question-dock__footer",children:[e.jsxs("button",{className:"btn btn--sm",onClick:()=>a(),disabled:u,title:"Cancel Question Flow",children:[e.jsx(E,{size:11}),"Cancel"]}),e.jsxs("div",{className:"question-dock__footer-end",children:[c>0&&e.jsxs("button",{className:"btn btn--sm",onClick:T,disabled:u,children:[e.jsx(B,{size:11}),"Back"]}),e.jsx("button",{className:"btn btn--sm btn--primary",onClick:C,disabled:u,children:m?e.jsxs(e.Fragment,{children:[e.jsx(O,{size:11})," Submit"]}):e.jsxs(e.Fragment,{children:["Next ",e.jsx(P,{size:11})]})})]})]})]})}function U({sessionId:s,permissionRequest:r,questionRequest:a,respondToPermission:u,respondToQuestion:c,rejectQuestion:l}){const[N,p]=i.useState(!1),j=i.useCallback(async o=>{!s||!r||(p(!0),await u(s,r.id,o),p(!1))},[s,r,u]),k=i.useCallback(async o=>{!s||!a||(p(!0),await c(s,a.id,o),p(!1))},[s,a,c]),m=i.useCallback(async()=>{!s||!a||(p(!0),await l(s,a.id),p(!1))},[s,a,l]);return{isResponding:N,permissionRequest:r,questionRequest:a,handlePermissionDecide:j,handleQuestionRespond:k,handleQuestionReject:m}}function W({status:s}){return s==="completed"?e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",className:"todo-dock-icon todo-dock-icon--done",children:[e.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:"currentColor",strokeWidth:"1.5",fill:"currentColor",fillOpacity:"0.15"}),e.jsx("path",{d:"M4.5 7.2L6.2 8.8L9.5 5.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}):s==="in_progress"?e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",className:"todo-dock-icon todo-dock-icon--active",children:[e.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:"currentColor",strokeWidth:"1.5",strokeDasharray:"4 3",className:"todo-dock-icon__ring"}),e.jsx("circle",{cx:"7",cy:"7",r:"2.5",fill:"currentColor"})]}):s==="cancelled"?e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",className:"todo-dock-icon todo-dock-icon--cancelled",children:[e.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:"currentColor",strokeWidth:"1.5"}),e.jsx("path",{d:"M5 5L9 9M9 5L5 9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",className:"todo-dock-icon todo-dock-icon--pending",children:e.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:"currentColor",strokeWidth:"1.5"})})}function F(s,r,a){return s===0?"hide":a?r?"close":"open":"clear"}const Q=400;function X({todos:s,isLive:r=!1,onClear:a}){const[u,c]=i.useState(!1),[l,N]=i.useState(!1),p=i.useRef(null),[j,k]=i.useState(!1),m=i.useRef(void 0),o=s.length,y=i.useMemo(()=>s.filter(t=>t.status==="completed").length,[s]),C=i.useMemo(()=>o>0&&s.every(t=>t.status==="completed"||t.status==="cancelled"),[s,o]),T=F(o,C,r);i.useEffect(()=>{switch(m.current&&(window.clearTimeout(m.current),m.current=void 0),T){case"hide":c(!1);break;case"clear":c(!1),a==null||a();break;case"open":c(!0),N(!1);break;case"close":m.current=window.setTimeout(()=>{c(!1),m.current=void 0},Q);break}return()=>{m.current&&window.clearTimeout(m.current)}},[T,a]);const v=i.useMemo(()=>s.find(t=>t.status==="in_progress")??s.find(t=>t.status==="pending")??s.filter(t=>t.status==="completed").at(-1)??s[0],[s]),_=(v==null?void 0:v.content)??"",h=i.useMemo(()=>s.findIndex(t=>t.status==="in_progress"),[s]);i.useEffect(()=>{if(l||h<0)return;const t=p.current;t&&requestAnimationFrame(()=>{const f=t.querySelector("[data-in-progress]");if(!(f instanceof HTMLElement))return;const S=16,L=44,w=f.getBoundingClientRect(),n=t.getBoundingClientRect(),d=w.top-n.top+t.scrollTop,x=w.bottom-n.top+t.scrollTop,g=t.scrollTop+S,b=t.scrollTop+t.clientHeight-L;d<g?t.scrollTop=Math.max(0,d-S):x>b&&(t.scrollTop=x-(t.clientHeight-L))})},[l,h]);const A=i.useCallback(t=>{k(t.currentTarget.scrollTop>0)},[]);return!u||s.length===0?null:e.jsxs("div",{"data-component":"todo-dock","data-collapsed":l?"true":"false",children:[e.jsxs("button",{className:"todo-dock__header",onClick:()=>N(t=>!t),type:"button",children:[e.jsxs("span",{className:"todo-dock__progress",children:[e.jsx(M,{value:y}),e.jsx("span",{className:"todo-dock__slash",children:"/"}),e.jsx(M,{value:o})]}),l&&_&&e.jsx("span",{className:"todo-dock__preview",children:_}),e.jsx("span",{className:"todo-dock__chevron",style:{transform:`rotate(${l?180:0}deg)`},children:e.jsx(R,{size:14})})]}),!l&&e.jsxs("div",{className:"todo-dock__body-wrapper",children:[e.jsx("div",{ref:p,className:"todo-dock__body",onScroll:A,children:s.map((t,f)=>e.jsxs("div",{className:`todo-dock__item ${t.status==="in_progress"?"todo-dock__item--active":""} ${t.status==="completed"||t.status==="cancelled"?"todo-dock__item--done":""}`,"data-state":t.status,"data-in-progress":t.status==="in_progress"?"":void 0,children:[e.jsx("span",{className:"todo-dock__check",children:e.jsx(W,{status:t.status})}),e.jsx("span",{className:"todo-dock__text",children:t.content})]},f))}),e.jsx("div",{className:"todo-dock__top-fade",style:{opacity:j?1:0}})]})]})}export{q as P,V as Q,X as T,U as u};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-C-vnj9y3.js","assets/react-vendor-DzpMUNDT.js","assets/query-vendor-_taqgrbn.js","assets/index-CWrv6O3o.js","assets/flow-vendor-C868rU-6.js","assets/flow-vendor-BZV40eAE.css","assets/dnd-vendor-CIAZE2P2.js","assets/icon-vendor-I2JVIi1s.js","assets/markdown-vendor-DnTJ9hmR.js","assets/markdown-vendor-BSTcku12.css","assets/terminal-vendor-D0xRnmbI.js","assets/terminal-vendor-6GBZ9nXN.css","assets/index-p-wk7iGH.css","assets/settings-utils-l7KCS3Ev.js","assets/index-C9HTqfZw.css","assets/PublishModal-DUlHz0fT.js","assets/queries-Dm1jEHfc.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as f,a as w,u as l,D as z,_ as I}from"./index-CWrv6O3o.js";import{r as o,j as e}from"./react-vendor-DzpMUNDT.js";import{c as M,q as k,h as P,i as $}from"./queries-Dm1jEHfc.js";import{b as N}from"./query-vendor-_taqgrbn.js";import{H as q,w as F,O as B,m as A,Q as G,R as H,k as Q,l as V,V as W,Y as U,_ as Y,$ as J,o as X}from"./icon-vendor-I2JVIi1s.js";const Z=2e3,ee=18e4;function te(){const a=N(),{data:n,refetch:d}=M(),[p,x]=o.useState(!1),[u,g]=o.useState(!1),[m,O]=o.useState(!1),r=o.useRef(null);return o.useEffect(()=>{if(!u||n!=null&&n.authenticated)return;const c=window.setInterval(()=>{if(r.current&&Date.now()>r.current){window.clearInterval(c),r.current=null,g(!1),f("DOT login timed out before authentication completed.","error",{title:"DOT login timed out",dedupeKey:"dot-login:timeout"});return}d()},Z);return()=>window.clearInterval(c)},[n==null?void 0:n.authenticated,u,d]),o.useEffect(()=>{!u||!(n!=null&&n.authenticated)||(r.current=null,g(!1),a.invalidateQueries({queryKey:k.dotAuthUser}),f(`Signed in as @${n.username||"unknown"}.`,"success",{title:"DOT login complete",dedupeKey:"dot-login:complete"}))},[n==null?void 0:n.authenticated,n==null?void 0:n.username,u,a]),{authUser:n,startLogin:async(c=!1)=>{if(p||u)return;const i=typeof window<"u"?window.open("about:blank","_blank"):null;try{x(!0);const s=await w.dot.login(c);if(s.alreadyAuthenticated){i==null||i.close(),await d();return}if(s.started||s.alreadyRunning){let h=!1;if(s.authUrl&&!s.browserOpened)try{i&&!i.closed?(i.location.href=s.authUrl,h=!0):h=!!window.open(s.authUrl,"_blank")}catch{h=!1}else i==null||i.close();r.current=Date.now()+ee,g(!0),s.authUrl&&!s.browserOpened&&!h?f("Open the DOT login flow to continue authentication.","warning",{title:"DOT login started",actionLabel:"Open login",onAction:()=>{window.open(s.authUrl,"_blank")},dedupeKey:"dot-login:started",durationMs:8e3}):f("Complete DOT login in the browser to continue.","success",{title:"DOT login started",dedupeKey:"dot-login:started"}),d();return}i==null||i.close()}catch(s){i==null||i.close(),f(s instanceof Error?s.message:"Failed to start DOT login.","error",{title:"DOT login failed",dedupeKey:"dot-login:failed"})}finally{x(!1)}},logout:async()=>{if(!m)try{O(!0),r.current=null,g(!1),await w.dot.logout(),await a.invalidateQueries({queryKey:k.dotAuthUser}),await d(),f("Signed out from DOT.","success",{title:"DOT logout complete",dedupeKey:"dot-login:logout"})}catch(c){f(c instanceof Error?c.message:"Failed to sign out from DOT.","error",{title:"DOT logout failed",dedupeKey:"dot-login:logout-failed"})}finally{O(!1)}},isAuthenticating:p||u,isLoggingOut:m}}const ne=o.lazy(()=>I(()=>import("./index-C-vnj9y3.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14])).then(a=>({default:a.SettingsModal}))),ie=o.lazy(()=>I(()=>import("./PublishModal-DUlHz0fT.js"),__vite__mapDeps([15,1,3,2,4,5,6,7,8,9,10,11,12,16])).then(a=>({default:a.default})));function se(){const[a,n]=o.useState(!1),[d,p]=o.useState(!1),x=l(t=>t.theme),u=l(t=>t.toggleTheme),g=l(t=>t.workingDir);l(t=>t.isAssistantOpen),l(t=>t.toggleAssistant);const m=l(t=>t.isTerminalOpen),O=l(t=>t.setTerminalOpen),r=l(t=>t.isTrackingOpen),v=l(t=>t.setTrackingOpen),_=l(t=>t.addCanvasTerminal),{data:c}=P(),{data:i}=$(),{authUser:s,startLogin:h,logout:D,isAuthenticating:S,isLoggingOut:C}=te(),E=N(),T=!!c,b=(i==null?void 0:i.initialized)??!1,[y,j]=o.useState(null);o.useEffect(()=>{const t=()=>{T?w.vcs.get().then(R=>j(R.branch||null)).catch(()=>j(null)):j(null)};t();const K=setInterval(t,15e3);return()=>clearInterval(K)},[T,g]);const L=async()=>{if(!b)try{await w.dot.init(),E.invalidateQueries({queryKey:k.dotStatus(g)})}catch(t){console.error("Failed to init DOT workspace:",t),f("Failed to initialize the DOT workspace for this project.","error",{title:"DOT init failed",dedupeKey:`dot:init:${g||"unknown"}`,actionLabel:"Retry",onAction:()=>{L()}})}};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"toolbar",children:[e.jsxs("button",{className:`toolbar__item dot-status ${b?"dot-ok":"dot-missing"}`,onClick:L,title:b?"DOT initialized for this workspace":"DOT not initialized — click to init",style:{cursor:b?"default":"pointer",border:"none",background:"none",display:"flex",alignItems:"center",gap:"4px",padding:"0 6px",fontSize:"11px",color:"var(--text-secondary)"},children:[e.jsx(q,{size:12,color:b?"#14AE5C":"#F24822"}),e.jsx("span",{children:"DOT"})]}),y&&e.jsxs("span",{className:"toolbar__item",title:`Branch: ${y}`,children:[e.jsx(F,{size:12,className:"icon-muted"})," ",y]}),s!=null&&s.authenticated?e.jsx(z,{align:"right",trigger:e.jsxs("button",{className:"toolbar__item dot-auth-status dot-auth-status--ok",title:`Signed in as @${s.username}`,style:{cursor:"pointer",border:"none",background:"none",display:"flex",alignItems:"center",gap:"4px",padding:"0 6px",fontSize:"11px"},children:[e.jsx(B,{size:12}),e.jsxs("span",{children:["@",s.username]}),e.jsx(A,{size:10})]}),items:[{label:C?"Signing out…":"Log out",onClick:()=>void D(),disabled:C}]}):e.jsxs("button",{className:"toolbar__item dot-auth-status dot-auth-status--warn",onClick:()=>void h(!0),title:S?"Waiting for DOT login to complete in the browser":"Review the DOT Terms of Service and sign in",style:{cursor:"pointer",border:"none",background:"none",display:"flex",alignItems:"center",gap:"4px",padding:"0 6px",fontSize:"11px"},children:[e.jsx(G,{size:12}),e.jsx("span",{children:S?"Signing in…":"Sign in"})]}),e.jsx("span",{className:"toolbar__item",title:T?"Local server connected":"Local server disconnected",children:T?e.jsx(H,{size:12,color:"#14AE5C"}):e.jsx(Q,{size:12,color:"#F24822"})}),e.jsx("div",{className:"divider-v"}),e.jsx(z,{trigger:e.jsxs("button",{className:"icon-btn",title:"Terminal",children:[e.jsx(V,{size:12,className:m?"icon-active":""}),e.jsx(A,{size:10})]}),items:[{label:`${m?"Hide":"Show"} Pinned Terminal`,onClick:()=>O(!m)},{label:"Add Terminal to Canvas",onClick:()=>_()}]}),e.jsx("button",{className:"icon-btn",onClick:()=>v(!r),title:"Workspace Tracking",children:e.jsx(W,{size:12,className:r?"icon-active":""})}),e.jsx("button",{className:"icon-btn",onClick:()=>p(!0),title:"Save or publish selected asset",children:e.jsx(U,{size:12})}),e.jsx("button",{className:"icon-btn",onClick:u,title:"Toggle Theme",children:x==="dark"?e.jsx(Y,{size:12}):e.jsx(J,{size:12})}),e.jsx("button",{className:"icon-btn",onClick:()=>n(!0),title:"Settings",children:e.jsx(X,{size:12})})]}),d?e.jsx(o.Suspense,{fallback:null,children:e.jsx(ie,{open:d,onClose:()=>p(!1)})}):null,a?e.jsx(o.Suspense,{fallback:null,children:e.jsx(ne,{open:a,onClose:()=>n(!1)})}):null]})}const de=Object.freeze(Object.defineProperty({__proto__:null,default:se},Symbol.toStringTag,{value:"Module"}));export{de as W,te as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.toolbar{display:flex;align-items:center;gap:8px;background:var(--bg-panel);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:6px 12px;box-shadow:var(--shadow-dropdown)}.toolbar__item{display:flex;align-items:center;gap:4px;font-size:var(--font-base);font-weight:500;color:var(--text-secondary)}.dot-auth-status{border-radius:999px;transition:background .12s ease,color .12s ease,border-color .12s ease}.dot-auth-status--ok{color:#14ae5c}.dot-auth-status--warn{color:var(--text-main)}.dot-auth-status--warn:hover{background:var(--bg-hover)}.divider-v{width:1px;height:16px;background:var(--border-strong);margin:0 4px}.toolbar__assistant-btn{display:flex;align-items:center;margin-left:auto;padding:3px 10px;border:1px solid var(--border-light);border-radius:var(--radius);background:transparent;font-size:var(--font-base);font-weight:700;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.toolbar__assistant-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toolbar__assistant-btn.is-active{color:var(--primary);border-color:var(--primary);background:rgba(var(--primary-rgb, 99, 102, 241),.08)}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{r as c,j as t}from"./react-vendor-DzpMUNDT.js";import{O as ge,t as je,S as ee,u as _e,P as ue}from"./index-CWrv6O3o.js";import{m as H,C as re,a6 as ie,l as be,a8 as Y,ao as Ne,ap as oe,aq as Se,G as ve,v as de,ar as Ce,n as ye,as as Te,r as fe,b as G,at as he,J as ke,au as we,am as Ae}from"./icon-vendor-I2JVIi1s.js";import{M as pe}from"./MarkdownRenderer-Cz8A4AgP.js";function Me(e){const{working:s,onUserInteracted:n,bottomThreshold:r=10}=e,i=c.useRef(null),l=c.useRef(null),[a,o]=c.useState(!1),p=c.useRef(null),m=c.useRef(void 0),f=c.useRef(void 0),S=c.useRef(!1),k=c.useRef(null),b=c.useRef(null),x=c.useCallback(()=>s||S.current,[s]),N=c.useCallback(u=>u.scrollHeight-u.clientHeight-u.scrollTop,[]),_=c.useCallback(u=>u.scrollHeight-u.clientHeight>1,[]),y=c.useCallback(u=>{p.current={top:Math.max(0,u.scrollHeight-u.clientHeight),time:Date.now()},m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{p.current=null,m.current=void 0},1500)},[]),z=c.useCallback(u=>{const j=p.current;return j?Date.now()-j.time>1500?(p.current=null,!1):Math.abs(u.scrollTop-j.top)<2:!1},[]),w=c.useCallback(u=>{const j=i.current;if(j){if(y(j),u==="smooth"){j.scrollTo({top:j.scrollHeight,behavior:u});return}j.scrollTop=j.scrollHeight}},[y]),C=c.useCallback(u=>{if(!u&&!x())return;u&&a&&o(!1);const j=i.current;if(!j||!u&&a)return;if(N(j)<2){y(j);return}w("auto")},[x,a,N,y,w]),$=c.useCallback(()=>{const u=i.current;if(u){if(!_(u)){a&&o(!1);return}a||(o(!0),n==null||n())}},[_,a,n]),L=c.useCallback(u=>{u.style.overflowAnchor=a?"auto":"none"},[a]),I=c.useCallback(()=>{const u=i.current;if(u){if(!_(u)){a&&o(!1);return}if(N(u)<r){a&&o(!1);return}if(!a&&z(u)){C(!1);return}$()}},[_,N,r,a,z,C,$]),U=c.useCallback(u=>{if(k.current&&(k.current(),k.current=null),i.current=u,!u)return;L(u);const j=E=>{if(E.deltaY>=0)return;const D=E.target instanceof Element?E.target:void 0,W=D==null?void 0:D.closest("[data-scrollable]");W&&W!==u||$()};u.addEventListener("wheel",j,{passive:!0}),k.current=()=>u.removeEventListener("wheel",j)},[L,$]),V=c.useCallback(u=>{if(b.current&&(b.current.disconnect(),b.current=null),l.current=u,!u)return;const j=new ResizeObserver(()=>{const E=i.current;if(E&&!_(E)){o(!1);return}x()&&(a||C(!1))});j.observe(u),b.current=j},[_,x,a,C]);c.useEffect(()=>{if(S.current=!1,f.current&&clearTimeout(f.current),f.current=void 0,s){a||C(!0);return}S.current=!0,f.current=setTimeout(()=>{S.current=!1},300)},[s]),c.useEffect(()=>{const u=i.current;u&&L(u)},[a,L]),c.useEffect(()=>()=>{f.current&&clearTimeout(f.current),m.current&&clearTimeout(m.current),k.current&&k.current(),b.current&&b.current.disconnect()},[]);const J=c.useCallback(()=>{o(!1),C(!0)},[C]),X=c.useCallback(()=>{C(!0)},[C]);return{scrollRef:U,contentRef:V,handleScroll:I,userScrolled:a,resume:J,forceScrollToBottom:X}}function ze({visible:e,onClick:s}){return t.jsx("button",{className:`scroll-to-bottom ${e?"scroll-to-bottom--visible":""}`,onClick:s,"aria-label":"Scroll to bottom",type:"button",children:t.jsx(H,{size:14})})}function ct({messages:e,loading:s,renderMessage:n,renderEmpty:r,renderLoading:i,composer:l,endRef:a,historyClassName:o="chat-history",recentMessageWindow:p=120,olderMessagesStep:m=120}){const{scrollRef:f,contentRef:S,handleScroll:k,userScrolled:b,resume:x}=Me({working:s}),[N,_]=c.useState(p),y=Math.max(N,p),z=Math.max(0,e.length-y),w=c.useMemo(()=>z>0?e.slice(-y):e,[e,z,y]);return t.jsxs(t.Fragment,{children:[t.jsxs("div",{ref:C=>{f(C)},className:o,onScroll:k,style:{position:"relative"},children:[t.jsxs("div",{ref:C=>{S(C)},children:[z>0?t.jsx("div",{className:"thread-history-older",children:t.jsxs("button",{className:"thread-history-older__button",onClick:()=>_(C=>C+m),type:"button",children:["Show ",Math.min(z,m)," older messages"]})}):null,e.length===0?r?r():null:w.map((C,$)=>n(C,z+$)),s&&i?i():null,a?t.jsx("div",{ref:a}):null]}),t.jsx(ze,{visible:b&&e.length>0,onClick:x})]}),l]})}function R({text:e,active:s=!0,className:n,offset:r=0}){const[l,a]=c.useState(s),o=c.useRef(void 0);c.useEffect(()=>{if(o.current!==void 0&&(clearTimeout(o.current),o.current=void 0),s){a(!0);return}return o.current=setTimeout(()=>{o.current=void 0,a(!1)},220),()=>{o.current!==void 0&&clearTimeout(o.current)}},[s]);const p={"--text-shimmer-swap":"220ms","--text-shimmer-index":`${r}`};return t.jsx("span",{"data-component":"text-shimmer","data-active":s?"true":"false",className:n,"aria-label":e,style:p,children:t.jsxs("span",{"data-slot":"text-shimmer-char",children:[t.jsx("span",{"data-slot":"text-shimmer-char-base","aria-hidden":"true",children:e}),t.jsx("span",{"data-slot":"text-shimmer-char-shimmer","data-run":l?"true":"false","aria-hidden":"true",children:e})]})})}function me({changes:e,variant:s="default",className:n=""}){const r=Array.isArray(e)?e.reduce((a,o)=>a+(o.additions??0),0):e.additions,i=Array.isArray(e)?e.reduce((a,o)=>a+(o.deletions??0),0):e.deletions,l=r+i;if(s==="default"&&l===0)return null;if(s==="bars"){const o=r??0,p=i??0;let m=0,f=0,S=5;if(o>0||p>0){const b=o+p;if(b<5)m=o>0?1:0,f=p>0?1:0,S=5-m-f;else{const x=o/b,N=p/b;let _=5;(b<20||(o>p?o/p:p/o)<4)&&(_=4),m=o>0?Math.max(1,Math.round(x*_)):0,f=p>0?Math.max(1,Math.round(N*_)):0,o>0&&o<=5&&(m=Math.min(m,1)),o>5&&o<=10&&(m=Math.min(m,2)),p>0&&p<=5&&(f=Math.min(f,1)),p>5&&p<=10&&(f=Math.min(f,2));let y=m+f;y>_&&(x>N?m=_-f:f=_-m,y=m+f),S=Math.max(0,5-y)}}const k=[...Array(m).fill("add"),...Array(f).fill("del"),...Array(S).fill("neutral")].slice(0,5);return t.jsx("span",{className:`diff-changes diff-changes--bars ${n}`,children:t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 18 14",fill:"none",width:18,height:14,children:k.map((b,x)=>t.jsx("rect",{x:x*4,width:2,height:14,rx:1,className:`diff-bar--${b}`},x))})})}return t.jsxs("span",{className:`diff-changes ${n}`,children:[r>0&&t.jsxs("span",{className:"diff-changes__add",children:["+",r]}),i>0&&t.jsxs("span",{className:"diff-changes__del",children:["-",i]})]})}function Ee(e){if(!(e!=null&&e.start))return null;const s=Math.max(0,(e.end||Date.now())-e.start);if(s<1e3)return`${s}ms`;if(s<6e4)return`${(s/1e3).toFixed(s<1e4?1:0)}s`;const n=Math.floor(s/6e4),r=Math.round(s%6e4/1e3);return`${n}m ${r}s`}function F(e){if(!e)return"";const s=e.split("/");return s[s.length-1]||e}function Q(e){return e.includes("/")?e.split("/").slice(0,-1).join("/")+"/":""}function $e(e){return e?e.command?String(e.command):e.CommandLine?String(e.CommandLine):Array.isArray(e.args)&&e.args.length>0?e.args.join(" "):"":""}function P(e){return e?String(e.path||e.TargetFile||e.file||e.filePath||e.AbsolutePath||""):""}function Oe(e){return e?String(e.content||e.CodeContent||e.new_string||e.newString||""):""}function Re(e){return e?String(e.old_string||e.oldString||e.TargetContent||""):""}function Le(e){return e?String(e.new_string||e.newString||e.ReplacementContent||""):""}function Be(e,s){const n=e?e.split(`
|
|
2
|
+
`).length:0,r=s?s.split(`
|
|
3
|
+
`).length:0;return{additions:Math.max(0,r-n+(n>0?n:0)),deletions:n}}const xe=new Set(["read","read_file","read_many","list","list_dir","glob","grep","grep_search","find_by_name","view_file"]),De=new Set(["bash","shell","execute_command","execute_background_command","run_terminal_command","run_command"]),Pe=new Set(["replace_in_file","multi_replace_file_content","str_replace_editor","replace_file_content","edit"]),Fe=new Set(["write_to_file","create_file","write"]),He=new Set(["apply_patch"]),We=new Set(["todos","todowrite","todo","todoread"]),Ke=new Set(["websearch","webfetch","search_web","read_url_content"]),qe=new Set(["codesearch"]),Ge=new Set(["task","browser_subagent"]),Ie=new Set(["skill"]);function M({icon:e,trigger:s,title:n,subtitle:r,status:i,duration:l,actions:a,children:o,hideDetails:p,defaultOpen:m=!1,className:f=""}){const S=i==="pending"||i==="running",k=i==="error",[b,x]=c.useState(m),N=!!o&&!p,_=N&&!S,y=`basic-tool--${i}`;return t.jsxs("div",{className:`basic-tool ${y} ${f}`,children:[t.jsxs("button",{className:"basic-tool__trigger",onClick:()=>_&&x(!b),style:{cursor:_?"pointer":"default"},children:[t.jsx("span",{className:`basic-tool__icon${k?" basic-tool__icon--error":""}`,children:S?t.jsx(fe,{size:12,className:"spin-icon"}):k?t.jsx(he,{size:12}):e}),s?t.jsx("span",{className:"basic-tool__trigger-content",children:s}):t.jsxs("span",{className:"basic-tool__info",children:[t.jsx("span",{className:"basic-tool__title",children:typeof n=="string"?t.jsx(R,{text:n,active:S}):n}),!S&&r&&t.jsx("span",{className:"basic-tool__subtitle",children:r})]}),!S&&a&&t.jsx("span",{className:"basic-tool__actions",children:a}),!S&&l&&t.jsx("span",{className:"basic-tool__duration",children:l}),_&&!S&&t.jsx("span",{className:"basic-tool__arrow",children:b?t.jsx(H,{size:11}):t.jsx(G,{size:11})})]}),b&&N&&t.jsx("div",{className:"basic-tool__content",children:o})]})}function B({error:e,toolName:s}){const[n,r]=c.useState(!1),[i,l]=c.useState(!1),a=c.useCallback(async()=>{await navigator.clipboard.writeText(e),r(!0),setTimeout(()=>r(!1),2e3)},[e]),o=e.length>120?e.slice(0,120)+"…":e;return t.jsxs("div",{className:"tool-error-card",children:[t.jsxs("div",{className:"tool-error-card__header",children:[t.jsx(he,{size:12,className:"tool-error-card__icon"}),t.jsx("span",{className:"tool-error-card__name",children:s}),t.jsx("button",{className:"tool-error-card__copy",onClick:p=>{p.stopPropagation(),a()},title:n?"Copied!":"Copy error",children:n?t.jsx(re,{size:10}):t.jsx(ie,{size:10})})]}),t.jsxs("button",{className:"tool-error-card__body",onClick:()=>l(!i),children:[t.jsx("pre",{className:"tool-error-card__text",children:i?e:o}),e.length>120&&t.jsx("span",{className:"tool-error-card__toggle",children:i?t.jsx(H,{size:10}):t.jsx(G,{size:10})})]})]})}function te({label:e,pending:s,filename:n,directory:r,diffChanges:i}){return t.jsxs("div",{className:"edit-trigger",children:[t.jsxs("div",{className:"edit-trigger__title-area",children:[t.jsxs("div",{className:"edit-trigger__title",children:[t.jsx("span",{className:"edit-trigger__title-text",children:t.jsx(R,{text:e,active:s})}),!s&&n&&t.jsx("span",{className:"edit-trigger__filename",children:n})]}),!s&&r&&t.jsx("div",{className:"edit-trigger__path",children:t.jsx("span",{className:"edit-trigger__directory",children:r})})]}),t.jsx("div",{className:"edit-trigger__actions",children:!s&&i&&(i.additions>0||i.deletions>0)&&t.jsx(me,{changes:i})})]})}function se({path:e,badge:s,children:n}){const[r,i]=c.useState(!1),l=F(e),a=Q(e);return t.jsxs("div",{className:"tool-file-accordion",children:[t.jsxs("button",{className:"tool-file-accordion__header",onClick:()=>i(!r),children:[t.jsx("span",{className:"tool-file-accordion__name",children:l}),a&&t.jsx("span",{className:"tool-file-accordion__dir",children:a}),s&&t.jsx("span",{className:"tool-file-accordion__badge",children:s}),t.jsx("span",{className:"tool-file-accordion__arrow",children:r?t.jsx(H,{size:10}):t.jsx(G,{size:10})})]}),r&&n&&t.jsx("div",{className:"tool-file-accordion__content",children:n})]})}function ne({tool:e,compact:s=!1}){var $,L,I,U,V,J,X,u,j,E,D,W,ae,ce;const{shellToolPartsExpanded:n,editToolPartsExpanded:r}=ge(),i=De.has(e.name),l=Pe.has(e.name),a=Fe.has(e.name),o=He.has(e.name),p=We.has(e.name),m=xe.has(e.name),f=Ke.has(e.name),S=qe.has(e.name),k=Ge.has(e.name),b=Ie.has(e.name),x=e.status==="pending"||e.status==="running",N=e.status==="error",[_,y]=c.useState(!1),z=c.useCallback(async h=>{await navigator.clipboard.writeText(h),y(!0),setTimeout(()=>y(!1),2e3)},[]),w=Ee(e.time);if(i){const h=$e(e.input),g=($=e.input)!=null&&$.description?String(e.input.description):void 0,d=e.output||"",v=`$ ${h}${d?`
|
|
4
|
+
|
|
5
|
+
`+d:""}`;return t.jsxs(M,{icon:t.jsx(be,{size:12}),trigger:t.jsxs("div",{className:"shell-trigger",children:[t.jsx("span",{className:"shell-trigger__title",children:t.jsx(R,{text:"Shell",active:x})}),!x&&g&&t.jsx("span",{className:"shell-trigger__desc",children:g})]}),status:e.status,duration:w,defaultOpen:n,children:[t.jsxs("div",{className:"tool-content-terminal","data-scrollable":!0,children:[t.jsx("button",{className:"tool-copy-btn",onClick:T=>{T.stopPropagation(),z(v)},title:_?"Copied!":"Copy",children:_?t.jsx(re,{size:10}):t.jsx(ie,{size:10})}),t.jsx("pre",{className:"tool-pre",children:t.jsx("code",{children:v})})]}),N&&e.error&&t.jsx(B,{error:e.error,toolName:e.name})]})}if(l){const h=P(e.input),g=F(h),d=Q(h),v=Re(e.input),T=Le(e.input),A=v||T?Be(v,T):null;return t.jsxs(M,{icon:t.jsx(Y,{size:12}),trigger:t.jsx(te,{label:"Edit",pending:x,filename:g,directory:d,diffChanges:A}),status:e.status,duration:w,defaultOpen:r,children:[h&&(v||T)&&t.jsx(se,{path:h,badge:A?t.jsx(me,{changes:A}):void 0,children:t.jsx(je,{before:v,after:T,filename:g})}),N&&e.error&&t.jsx(B,{error:e.error,toolName:e.name})]})}if(a){const h=P(e.input),g=F(h),d=Q(h),v=Oe(e.input);return t.jsxs(M,{icon:t.jsx(Y,{size:12}),trigger:t.jsx(te,{label:"Write",pending:x,filename:g,directory:d}),status:e.status,duration:w,defaultOpen:r,children:[h&&t.jsx(se,{path:h,children:v?t.jsx(ee,{code:v.length>3e3?v.slice(0,3e3)+`
|
|
6
|
+
|
|
7
|
+
… (truncated)`:v,filename:g,maxHeight:400}):e.output?t.jsx("pre",{className:"tool-pre",children:e.output}):null}),N&&e.error&&t.jsx(B,{error:e.error,toolName:e.name})]})}if(o){const h=c.useMemo(()=>{const d=e.input;return d?typeof d.diff=="string"?d.diff:typeof d.patch=="string"?d.patch:typeof d.content=="string"?d.content:"":""},[e.input]),g=c.useMemo(()=>{if(!h)return[];const d=[],v=h.split(`
|
|
8
|
+
`);let T="",A=[],K="update";for(const O of v){const Z=O.match(/^diff --git a\/(.*?) b\/(.*?)$/),le=O.match(/^--- (?:a\/)?(.+)$/),q=O.match(/^\+\+\+ (?:b\/)?(.+)$/);Z?(T&&A.length&&d.push({filename:T,diff:A.join(`
|
|
9
|
+
`),type:K}),T=Z[2]||Z[1]||"",A=[O],K="update"):q&&q[1]!=="/dev/null"&&!T?(T=q[1],A.push(O)):le&&le[1]==="/dev/null"?(K="add",A.push(O)):(q&&q[1]==="/dev/null"&&(K="delete"),A.push(O))}return T&&A.length&&d.push({filename:T,diff:A.join(`
|
|
10
|
+
`),type:K}),d},[h]);if(g.length<=1){const d=((L=g[0])==null?void 0:L.filename)||P(e.input),v=d?F(d):"patch",T=d?Q(d):"";return t.jsxs(M,{icon:t.jsx(Y,{size:12}),trigger:t.jsx(te,{label:"Patch",pending:x,filename:v,directory:T}),status:e.status,duration:w,defaultOpen:r,children:[h&&t.jsx(ee,{code:h,language:"diff",lineNumbers:!1,maxHeight:500}),N&&e.error&&t.jsx(B,{error:e.error,toolName:e.name})]})}return t.jsxs(M,{icon:t.jsx(Y,{size:12}),title:"Patch",subtitle:x?void 0:`${g.length} files`,status:e.status,duration:w,defaultOpen:r,children:[g.map((d,v)=>t.jsx(se,{path:d.filename,badge:d.type==="add"?t.jsx("span",{className:"patch-badge patch-badge--add",children:"created"}):d.type==="delete"?t.jsx("span",{className:"patch-badge patch-badge--del",children:"deleted"}):null,children:t.jsx(ee,{code:d.diff,language:"diff",lineNumbers:!1,maxHeight:400})},v)),N&&e.error&&t.jsx(B,{error:e.error,toolName:e.name})]})}if(p)return t.jsxs(M,{icon:t.jsx(Ne,{size:12}),title:"Todos",status:e.status,duration:w,defaultOpen:!0,children:[t.jsx("div",{style:{padding:"6px 8px"},children:t.jsx(Je,{input:e.input,output:e.output})}),N&&e.error&&t.jsx(B,{error:e.error,toolName:e.name})]});if(m&&s){const h=e.title||e.name,g=P(e.input)||((I=e.input)!=null&&I.pattern?String(e.input.pattern):"");return t.jsxs("div",{className:"context-tool-item",children:[t.jsx(oe,{size:10,className:"context-tool-icon"}),t.jsx("span",{className:"context-tool-name",children:h}),g&&t.jsx("span",{className:"context-tool-path",children:F(g)||g}),N&&t.jsx("span",{className:"context-tool-error",children:"✗"})]})}if(m){const h=P(e.input),g=(U=e.input)!=null&&U.pattern?String(e.input.pattern):"",d=[];return(V=e.input)!=null&&V.offset&&d.push(`offset=${e.input.offset}`),(J=e.input)!=null&&J.limit&&d.push(`limit=${e.input.limit}`),g&&d.push(`pattern=${g}`),t.jsx(M,{icon:t.jsx(oe,{size:12}),title:e.title||e.name,subtitle:x?void 0:(h?F(h):g)+(d.length?` (${d.join(", ")})`:""),status:e.status,duration:w,hideDetails:!0})}if(f){const h=(X=e.input)!=null&&X.query?String(e.input.query):"",g=(u=e.input)!=null&&u.url?String(e.input.url):(j=e.input)!=null&&j.Url?String(e.input.Url):"",d=e.name==="webfetch"||e.name==="read_url_content";return t.jsx(M,{icon:t.jsx(ve,{size:12}),trigger:t.jsxs("div",{className:"search-trigger",children:[t.jsx("span",{className:"search-trigger__title",children:t.jsx(R,{text:d?"Web Fetch":"Web Search",active:x})}),!x&&(g||h)&&(g?t.jsx("a",{className:"search-trigger__link",href:g,target:"_blank",rel:"noopener noreferrer",onClick:v=>v.stopPropagation(),children:g}):t.jsx("span",{className:"search-trigger__query",children:h})),!x&&g&&t.jsx(Se,{size:10,className:"search-trigger__ext"})]}),status:e.status,hideDetails:!0})}if(S){const h=(E=e.input)!=null&&E.query?String(e.input.query):"";return t.jsx(M,{icon:t.jsx(de,{size:12}),title:"Code Search",subtitle:x?void 0:h,status:e.status,hideDetails:!0})}if(k){const h=(D=e.input)!=null&&D.subagent_type?String(e.input.subagent_type):"",g=h?h[0].toUpperCase()+h.slice(1):"Agent",d=(W=e.input)!=null&&W.description?String(e.input.description):(ae=e.input)!=null&&ae.Task?String(e.input.Task):e.title||"";return t.jsx(M,{icon:t.jsx(Ce,{size:12}),trigger:t.jsxs("div",{className:"agent-trigger",children:[t.jsx("span",{className:"agent-trigger__title",children:t.jsx(R,{text:g,active:x})}),!x&&d&&t.jsx("span",{className:"agent-trigger__desc",children:d})]}),status:e.status,hideDetails:!0})}if(b){const h=(ce=e.input)!=null&&ce.name?String(e.input.name):e.title||"Skill";return t.jsx(M,{icon:t.jsx(ye,{size:12}),trigger:t.jsx("div",{className:"skill-trigger",children:t.jsx("span",{className:"skill-trigger__title",children:t.jsx(R,{text:h,active:x})})}),status:e.status,hideDetails:!0})}const C=e.title||e.name;return t.jsxs(M,{icon:t.jsx(Te,{size:10}),title:C,subtitle:x?void 0:P(e.input)||void 0,status:e.status,duration:w,children:[e.input&&Object.keys(e.input).length>0?t.jsxs("div",{className:"tool-content-generic",children:[t.jsx("span",{className:"tool-section-label",children:"Input"}),t.jsx("pre",{className:"tool-pre",children:JSON.stringify(e.input,null,2)})]}):null,e.output?t.jsxs("div",{className:"tool-content-generic",children:[t.jsx("span",{className:"tool-section-label",children:"Output"}),t.jsx("pre",{className:"tool-pre",children:e.output.length>500?`${e.output.slice(0,500)}…`:e.output})]}):null,N&&e.error?t.jsx(B,{error:e.error,toolName:e.name}):null]})}function Ue({tools:e}){const[s,n]=c.useState(!1),r=e.some(a=>a.status==="running"||a.status==="pending"),i=e.filter(a=>a.status==="error").length,l=c.useMemo(()=>{const a=e.filter(f=>f.name==="read"||f.name==="read_file"||f.name==="view_file"||f.name==="read_many").length,o=e.filter(f=>f.name==="grep"||f.name==="grep_search"||f.name==="find_by_name").length,p=e.filter(f=>f.name==="list"||f.name==="list_dir"||f.name==="glob").length,m=[];return a>0&&m.push(`${a} read${a>1?"s":""}`),o>0&&m.push(`${o} search${o>1?"es":""}`),p>0&&m.push(`${p} list${p>1?"s":""}`),m.join(", ")||`${e.length} tool${e.length>1?"s":""}`},[e]);return t.jsxs("div",{className:"context-group",children:[t.jsxs("button",{className:"context-group__trigger",onClick:()=>n(!s),children:[t.jsx("span",{className:"context-group__icon",children:r?t.jsx(fe,{size:12,className:"spin-icon"}):t.jsx(de,{size:12})}),t.jsx("span",{className:"context-group__title",children:t.jsx(R,{text:r?"Gathering context":"Gathered context",active:r})}),!r&&t.jsx("span",{className:"context-group__summary",children:l}),i>0&&t.jsxs("span",{className:"context-group__error-badge",children:[i," error",i>1?"s":""]}),t.jsx("span",{className:"context-group__arrow",children:s?t.jsx(H,{size:11}):t.jsx(G,{size:11})})]}),s&&t.jsx("div",{className:"context-group__list",children:e.map(a=>t.jsx(ne,{tool:a,compact:!0},a.callId))})]})}function Ve(e){if(e&&typeof e=="object"){const s=e;return{content:typeof s.content=="string"?s.content:typeof s.title=="string"?s.title:String(e),status:typeof s.status=="string"?s.status:"pending"}}return{content:String(e),status:"pending"}}function Je({input:e,output:s}){let n=[];if(s)try{const l=JSON.parse(s);Array.isArray(l)&&(n=l.map(Ve))}catch{n=s.split(`
|
|
11
|
+
`).filter(Boolean).map(l=>({content:l,status:"pending"}))}const r=_e.getState().todos;if(n.length===0){const l=Object.values(r).flat();l.length>0&&(n=l.map(a=>({content:a.content,status:a.status})))}if(n.length===0&&e)return t.jsx("pre",{className:"tool-pre",children:JSON.stringify(e,null,2)});const i=l=>l==="completed"?t.jsx(ke,{size:13,style:{color:"#10b981"}}):l==="in_progress"?t.jsxs("svg",{width:"13",height:"13",viewBox:"0 0 14 14",fill:"none",style:{color:"var(--accent)"},children:[t.jsx("circle",{cx:"7",cy:"7",r:"6",stroke:"currentColor",strokeWidth:"1.5",strokeDasharray:"4 3"}),t.jsx("circle",{cx:"7",cy:"7",r:"2.5",fill:"currentColor",className:"todo-inline-pulse"})]}):l==="cancelled"?t.jsx(we,{size:13,style:{color:"var(--text-muted)"}}):t.jsx(Ae,{size:13,style:{color:"var(--text-muted)"}});return t.jsx("div",{className:"todo-inline-list",children:n.map((l,a)=>t.jsxs("div",{className:`todo-inline-item ${l.status==="in_progress"?"todo-inline-item--active":""} ${l.status==="completed"||l.status==="cancelled"?"todo-inline-item--done":""}`,children:[i(l.status),t.jsx("span",{className:l.status==="completed"||l.status==="cancelled"?"todo-inline-text--done":"",children:l.content})]},a))})}function Xe({tools:e}){const s=c.useMemo(()=>{const n=[];let r=[];for(const i of e)xe.has(i.name)?r.push(i):(r.length>0&&(n.push({kind:"context",tools:[...r]}),r=[]),n.push({kind:"tool",tool:i}));return r.length>0&&n.push({kind:"context",tools:r}),n},[e]);return t.jsx("div",{className:"tool-group-v2",children:s.map((n,r)=>n.kind==="context"?n.tools.length===1?t.jsx(ne,{tool:n.tools[0]},`ctx-${r}`):t.jsx(Ue,{tools:n.tools},`ctxg-${r}`):t.jsx(ne,{tool:n.tool},n.tool.callId||`t-${r}`))})}function Ye(e,s=100){const[n,r]=c.useState(e),i=c.useRef(Date.now()),l=c.useRef(void 0);return c.useEffect(()=>{const a=Date.now(),o=a-i.current;return o>=s?(i.current=a,r(e)):(l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{i.current=Date.now(),r(e),l.current=void 0},s-o)),()=>{l.current&&clearTimeout(l.current)}},[e,s]),n}function Qe(e){return e.replace(/\*\*/g,"").replace(/\*/g,"").replace(/__/g,"").replace(/#+\s*/g,"").replace(/`/g,"").replace(/\n+/g," ").trim()}function lt(e){var n;return ue(e.content||"").trim()?!0:!!((n=e.parts)!=null&&n.some(r=>{var i;return r.type==="tool"||r.type==="compaction"||r.type==="reasoning"&&!!((i=r.content)!=null&&i.trim())}))}function Ze({content:e}){const[s,n]=c.useState(!1),r=Qe(e).slice(0,200);return t.jsxs("div",{className:"thinking-row",children:[t.jsxs("button",{className:"thinking-row__header",onClick:()=>n(!s),children:[t.jsx("span",{className:"thinking-row__chevron",children:s?t.jsx(H,{size:11}):t.jsx(G,{size:11})}),t.jsx("span",{className:"thinking-row__label",children:t.jsx(R,{text:"Thinking",active:!1})}),!s&&r?t.jsxs("span",{className:"thinking-row__preview",children:[r,e.length>200?"…":""]}):null]}),s?t.jsx("div",{className:"thinking-row__content",children:t.jsx(pe,{content:e})}):null]})}function et(e){const s=[];let n=[];for(const r of e)r.type==="tool"&&r.tool?n.push(r.tool):(n.length>0&&(s.push({kind:"tool-group",tools:[...n]}),n=[]),s.push({kind:"part",part:r}));return n.length>0&&s.push({kind:"tool-group",tools:n}),s}function tt({parts:e}){const s=c.useMemo(()=>et(e),[e]);return t.jsx(t.Fragment,{children:s.map((n,r)=>{var l;if(n.kind==="tool-group")return t.jsx(Xe,{tools:n.tools},`tg-${r}`);const{part:i}=n;return i.type==="reasoning"&&i.content?t.jsx(Ze,{content:i.content},i.id):i.type==="compaction"?t.jsxs("div",{className:"compaction-divider",children:[t.jsx("span",{className:"compaction-divider__line"}),t.jsx("span",{className:"compaction-divider__label",children:(l=i.compaction)!=null&&l.auto?"auto compacted":"compacted"}),t.jsx("span",{className:"compaction-divider__line"})]},i.id):null})})}function st({content:e}){const[s,n]=c.useState(!1),r=c.useCallback(async()=>{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)},[e]);return e.trim()?t.jsx("div",{className:"text-copy-wrapper",children:t.jsx("button",{className:"text-copy-btn",onClick:r,title:s?"Copied!":"Copy response",children:s?t.jsx(re,{size:11}):t.jsx(ie,{size:11})})}):null}function ot({message:e,className:s="assistant-body"}){const n=c.useMemo(()=>ue(e.content||""),[e.content]),r=Ye(n,100);return t.jsxs("div",{className:s,children:[e.parts&&e.parts.length>0?t.jsx(tt,{parts:e.parts}):null,r?t.jsxs(t.Fragment,{children:[t.jsx(pe,{content:r}),t.jsx(st,{content:n})]}):null]})}function ut(e){var s;return(e.content||"").trim()?!0:!!((s=e.attachments)!=null&&s.length)}export{ot as C,me as D,ct as T,lt as a,R as b,ut as h};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{r as l,R as A,b as we}from"./react-vendor-DzpMUNDT.js";const $e=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function ge(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function it(e){return"nodeType"in e}function P(e){var t,n;return e?ge(e)?e:it(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function st(e){const{Document:t}=P(e);return e instanceof t}function Ae(e){return ge(e)?!1:e instanceof P(e).HTMLElement}function Yt(e){return e instanceof P(e).SVGElement}function ve(e){return e?ge(e)?e.document:it(e)?st(e)?e:Ae(e)||Yt(e)?e.ownerDocument:document:document:document}const _=$e?l.useLayoutEffect:l.useEffect;function Ke(e){const t=l.useRef(e);return _(()=>{t.current=e}),l.useCallback(function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t.current==null?void 0:t.current(...r)},[])}function pn(){const e=l.useRef(null),t=l.useCallback((r,o)=>{e.current=setInterval(r,o)},[]),n=l.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function Se(e,t){t===void 0&&(t=[e]);const n=l.useRef(e);return _(()=>{n.current!==e&&(n.current=e)},t),n}function Me(e,t){const n=l.useRef();return l.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function ze(e){const t=Ke(e),n=l.useRef(null),r=l.useCallback(o=>{o!==n.current&&(t==null||t(o,n.current)),n.current=o},[]);return[n,r]}function Be(e){const t=l.useRef();return l.useEffect(()=>{t.current=e},[e]),t.current}let Qe={};function Ue(e,t){return l.useMemo(()=>{if(t)return t;const n=Qe[e]==null?0:Qe[e]+1;return Qe[e]=n,e+"-"+n},[e,t])}function $t(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((i,a)=>{const s=Object.entries(a);for(const[c,u]of s){const f=i[c];f!=null&&(i[c]=f+e*u)}return i},{...t})}}const he=$t(1),Fe=$t(-1);function bn(e){return"clientX"in e&&"clientY"in e}function at(e){if(!e)return!1;const{KeyboardEvent:t}=P(e.target);return t&&e instanceof t}function mn(e){if(!e)return!1;const{TouchEvent:t}=P(e.target);return t&&e instanceof t}function je(e){if(mn(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return bn(e)?{x:e.clientX,y:e.clientY}:null}const Re=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Re.Translate.toString(e),Re.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),Ot="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function yn(e){return e.matches(Ot)?e:e.querySelector(Ot)}const wn={display:"none"};function xn(e){let{id:t,value:n}=e;return A.createElement("div",{id:t,style:wn},n)}function Dn(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const o={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return A.createElement("div",{id:t,style:o,role:"status","aria-live":r,"aria-atomic":!0},n)}function Cn(){const[e,t]=l.useState("");return{announce:l.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const Kt=l.createContext(null);function Sn(e){const t=l.useContext(Kt);l.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function Rn(){const[e]=l.useState(()=>new Set),t=l.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[l.useCallback(r=>{let{type:o,event:i}=r;e.forEach(a=>{var s;return(s=a[o])==null?void 0:s.call(a,i)})},[e]),t]}const En={draggable:`
|
|
2
|
+
To pick up a draggable item, press the space bar.
|
|
3
|
+
While dragging, use the arrow keys to move the item.
|
|
4
|
+
Press space again to drop the item in its new position, or press escape to cancel.
|
|
5
|
+
`},An={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Mn(e){let{announcements:t=An,container:n,hiddenTextDescribedById:r,screenReaderInstructions:o=En}=e;const{announce:i,announcement:a}=Cn(),s=Ue("DndLiveRegion"),[c,u]=l.useState(!1);if(l.useEffect(()=>{u(!0)},[]),Sn(l.useMemo(()=>({onDragStart(d){let{active:v}=d;i(t.onDragStart({active:v}))},onDragMove(d){let{active:v,over:h}=d;t.onDragMove&&i(t.onDragMove({active:v,over:h}))},onDragOver(d){let{active:v,over:h}=d;i(t.onDragOver({active:v,over:h}))},onDragEnd(d){let{active:v,over:h}=d;i(t.onDragEnd({active:v,over:h}))},onDragCancel(d){let{active:v,over:h}=d;i(t.onDragCancel({active:v,over:h}))}}),[i,t])),!c)return null;const f=A.createElement(A.Fragment,null,A.createElement(xn,{id:r,value:o.draggable}),A.createElement(Dn,{id:s,announcement:a}));return n?we.createPortal(f,n):f}var O;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(O||(O={}));function Xe(){}const K=Object.freeze({x:0,y:0});function On(e,t){const n=je(e);if(!n)return"0 0";const r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+"% "+r.y+"%"}function Nn(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function Tn(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function kn(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=o-r,s=i-n;if(r<o&&n<i){const c=t.width*t.height,u=e.width*e.height,f=a*s,d=f/(c+u-f);return Number(d.toFixed(4))}return 0}const Ln=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const i of r){const{id:a}=i,s=n.get(a);if(s){const c=kn(s,t);c>0&&o.push({id:a,data:{droppableContainer:i,value:c}})}}return o.sort(Nn)};function In(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Ut(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:K}function Pn(e){return function(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];return o.reduce((a,s)=>({...a,top:a.top+e*s.y,bottom:a.bottom+e*s.y,left:a.left+e*s.x,right:a.right+e*s.x}),{...n})}}const zn=Pn(1);function Wt(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Bn(e,t,n){const r=Wt(t);if(!r)return e;const{scaleX:o,scaleY:i,x:a,y:s}=r,c=e.left-a-(1-o)*parseFloat(n),u=e.top-s-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),f=o?e.width/o:e.width,d=i?e.height/i:e.height;return{width:f,height:d,top:u,right:c+f,bottom:u+d,left:c}}const Fn={ignoreTransform:!1};function Oe(e,t){t===void 0&&(t=Fn);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:u,transformOrigin:f}=P(e).getComputedStyle(e);u&&(n=Bn(n,u,f))}const{top:r,left:o,width:i,height:a,bottom:s,right:c}=n;return{top:r,left:o,width:i,height:a,bottom:s,right:c}}function Nt(e){return Oe(e,{ignoreTransform:!0})}function jn(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Xn(e,t){return t===void 0&&(t=P(e).getComputedStyle(e)),t.position==="fixed"}function Yn(e,t){t===void 0&&(t=P(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(o=>{const i=t[o];return typeof i=="string"?n.test(i):!1})}function lt(e,t){const n=[];function r(o){if(t!=null&&n.length>=t||!o)return n;if(st(o)&&o.scrollingElement!=null&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!Ae(o)||Yt(o)||n.includes(o))return n;const i=P(e).getComputedStyle(o);return o!==e&&Yn(o,i)&&n.push(o),Xn(o,i)?n:r(o.parentNode)}return e?r(e):n}function Ht(e){const[t]=lt(e,1);return t??null}function Ze(e){return!$e||!e?null:ge(e)?e:it(e)?st(e)||e===ve(e).scrollingElement?window:Ae(e)?e:null:null}function Vt(e){return ge(e)?e.scrollX:e.scrollLeft}function qt(e){return ge(e)?e.scrollY:e.scrollTop}function nt(e){return{x:Vt(e),y:qt(e)}}var T;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(T||(T={}));function Jt(e){return!$e||!e?!1:e===document.scrollingElement}function _t(e){const t={x:0,y:0},n=Jt(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},o=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,s=e.scrollLeft>=r.x;return{isTop:o,isLeft:i,isBottom:a,isRight:s,maxScroll:r,minScroll:t}}const $n={x:.2,y:.2};function Kn(e,t,n,r,o){let{top:i,left:a,right:s,bottom:c}=n;r===void 0&&(r=10),o===void 0&&(o=$n);const{isTop:u,isBottom:f,isLeft:d,isRight:v}=_t(e),h={x:0,y:0},C={x:0,y:0},g={height:t.height*o.y,width:t.width*o.x};return!u&&i<=t.top+g.height?(h.y=T.Backward,C.y=r*Math.abs((t.top+g.height-i)/g.height)):!f&&c>=t.bottom-g.height&&(h.y=T.Forward,C.y=r*Math.abs((t.bottom-g.height-c)/g.height)),!v&&s>=t.right-g.width?(h.x=T.Forward,C.x=r*Math.abs((t.right-g.width-s)/g.width)):!d&&a<=t.left+g.width&&(h.x=T.Backward,C.x=r*Math.abs((t.left+g.width-a)/g.width)),{direction:h,speed:C}}function Un(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function Gt(e){return e.reduce((t,n)=>he(t,nt(n)),K)}function Wn(e){return e.reduce((t,n)=>t+Vt(n),0)}function Hn(e){return e.reduce((t,n)=>t+qt(n),0)}function Qt(e,t){if(t===void 0&&(t=Oe),!e)return;const{top:n,left:r,bottom:o,right:i}=t(e);Ht(e)&&(o<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const Vn=[["x",["left","right"],Wn],["y",["top","bottom"],Hn]];class ct{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const r=lt(n),o=Gt(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,s]of Vn)for(const c of a)Object.defineProperty(this,c,{get:()=>{const u=s(r),f=o[i]-u;return this.rect[c]+f},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class xe{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var o;(o=this.target)==null||o.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function qn(e){const{EventTarget:t}=P(e);return e instanceof t?e:ve(e)}function et(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var X;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(X||(X={}));function Tt(e){e.preventDefault()}function Jn(e){e.stopPropagation()}var D;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(D||(D={}));const Zt={start:[D.Space,D.Enter],cancel:[D.Esc],end:[D.Space,D.Enter,D.Tab]},_n=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case D.Right:return{...n,x:n.x+25};case D.Left:return{...n,x:n.x-25};case D.Down:return{...n,y:n.y+25};case D.Up:return{...n,y:n.y-25}}};class en{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new xe(ve(n)),this.windowListeners=new xe(P(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(X.Resize,this.handleCancel),this.windowListeners.add(X.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(X.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&Qt(r),n(K)}handleKeyDown(t){if(at(t)){const{active:n,context:r,options:o}=this.props,{keyboardCodes:i=Zt,coordinateGetter:a=_n,scrollBehavior:s="smooth"}=o,{code:c}=t;if(i.end.includes(c)){this.handleEnd(t);return}if(i.cancel.includes(c)){this.handleCancel(t);return}const{collisionRect:u}=r.current,f=u?{x:u.left,y:u.top}:K;this.referenceCoordinates||(this.referenceCoordinates=f);const d=a(t,{active:n,context:r.current,currentCoordinates:f});if(d){const v=Fe(d,f),h={x:0,y:0},{scrollableAncestors:C}=r.current;for(const g of C){const p=t.code,{isTop:y,isRight:x,isLeft:w,isBottom:N,maxScroll:S,minScroll:R}=_t(g),b=Un(g),m={x:Math.min(p===D.Right?b.right-b.width/2:b.right,Math.max(p===D.Right?b.left:b.left+b.width/2,d.x)),y:Math.min(p===D.Down?b.bottom-b.height/2:b.bottom,Math.max(p===D.Down?b.top:b.top+b.height/2,d.y))},E=p===D.Right&&!x||p===D.Left&&!w,k=p===D.Down&&!N||p===D.Up&&!y;if(E&&m.x!==d.x){const M=g.scrollLeft+v.x,H=p===D.Right&&M<=S.x||p===D.Left&&M>=R.x;if(H&&!v.y){g.scrollTo({left:M,behavior:s});return}H?h.x=g.scrollLeft-M:h.x=p===D.Right?g.scrollLeft-S.x:g.scrollLeft-R.x,h.x&&g.scrollBy({left:-h.x,behavior:s});break}else if(k&&m.y!==d.y){const M=g.scrollTop+v.y,H=p===D.Down&&M<=S.y||p===D.Up&&M>=R.y;if(H&&!v.x){g.scrollTo({top:M,behavior:s});return}H?h.y=g.scrollTop-M:h.y=p===D.Down?g.scrollTop-S.y:g.scrollTop-R.y,h.y&&g.scrollBy({top:-h.y,behavior:s});break}}this.handleMove(t,he(Fe(d,this.referenceCoordinates),h))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}en.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=Zt,onActivation:o}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const s=i.activatorNode.current;return s&&e.target!==s?!1:(e.preventDefault(),o==null||o({event:e.nativeEvent}),!0)}return!1}}];function kt(e){return!!(e&&"distance"in e)}function Lt(e){return!!(e&&"delay"in e)}class ut{constructor(t,n,r){var o;r===void 0&&(r=qn(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=ve(a),this.documentListeners=new xe(this.document),this.listeners=new xe(r),this.windowListeners=new xe(P(a)),this.initialCoordinates=(o=je(i))!=null?o:K,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(X.Resize,this.handleCancel),this.windowListeners.add(X.DragStart,Tt),this.windowListeners.add(X.VisibilityChange,this.handleCancel),this.windowListeners.add(X.ContextMenu,Tt),this.documentListeners.add(X.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Lt(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(kt(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:r,onPending:o}=this.props;o(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(X.Click,Jn,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(X.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:o,props:i}=this,{onMove:a,options:{activationConstraint:s}}=i;if(!o)return;const c=(n=je(t))!=null?n:K,u=Fe(o,c);if(!r&&s){if(kt(s)){if(s.tolerance!=null&&et(u,s.tolerance))return this.handleCancel();if(et(u,s.distance))return this.handleStart()}if(Lt(s)&&et(u,s.tolerance))return this.handleCancel();this.handlePending(s,u);return}t.cancelable&&t.preventDefault(),a(c)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===D.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const Gn={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class tn extends ut{constructor(t){const{event:n}=t,r=ve(n.target);super(t,Gn,r)}}tn.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const Qn={move:{name:"mousemove"},end:{name:"mouseup"}};var rt;(function(e){e[e.RightClick=2]="RightClick"})(rt||(rt={}));class Zn extends ut{constructor(t){super(t,Qn,ve(t.event.target))}}Zn.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===rt.RightClick?!1:(r==null||r({event:n}),!0)}}];const tt={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class er extends ut{constructor(t){super(t,tt)}static setup(){return window.addEventListener(tt.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(tt.move.name,t)};function t(){}}}er.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return o.length>1?!1:(r==null||r({event:n}),!0)}}];var De;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(De||(De={}));var Ye;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Ye||(Ye={}));function tr(e){let{acceleration:t,activator:n=De.Pointer,canScroll:r,draggingRect:o,enabled:i,interval:a=5,order:s=Ye.TreeOrder,pointerCoordinates:c,scrollableAncestors:u,scrollableAncestorRects:f,delta:d,threshold:v}=e;const h=rr({delta:d,disabled:!i}),[C,g]=pn(),p=l.useRef({x:0,y:0}),y=l.useRef({x:0,y:0}),x=l.useMemo(()=>{switch(n){case De.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case De.DraggableRect:return o}},[n,o,c]),w=l.useRef(null),N=l.useCallback(()=>{const R=w.current;if(!R)return;const b=p.current.x*y.current.x,m=p.current.y*y.current.y;R.scrollBy(b,m)},[]),S=l.useMemo(()=>s===Ye.TreeOrder?[...u].reverse():u,[s,u]);l.useEffect(()=>{if(!i||!u.length||!x){g();return}for(const R of S){if((r==null?void 0:r(R))===!1)continue;const b=u.indexOf(R),m=f[b];if(!m)continue;const{direction:E,speed:k}=Kn(R,m,x,t,v);for(const M of["x","y"])h[M][E[M]]||(k[M]=0,E[M]=0);if(k.x>0||k.y>0){g(),w.current=R,C(N,a),p.current=k,y.current=E;return}}p.current={x:0,y:0},y.current={x:0,y:0},g()},[t,N,r,g,i,a,JSON.stringify(x),JSON.stringify(h),C,u,S,f,JSON.stringify(v)])}const nr={x:{[T.Backward]:!1,[T.Forward]:!1},y:{[T.Backward]:!1,[T.Forward]:!1}};function rr(e){let{delta:t,disabled:n}=e;const r=Be(t);return Me(o=>{if(n||!r||!o)return nr;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[T.Backward]:o.x[T.Backward]||i.x===-1,[T.Forward]:o.x[T.Forward]||i.x===1},y:{[T.Backward]:o.y[T.Backward]||i.y===-1,[T.Forward]:o.y[T.Forward]||i.y===1}}},[n,t,r])}function or(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Me(o=>{var i;return t==null?null:(i=r??o)!=null?i:null},[r,t])}function ir(e,t){return l.useMemo(()=>e.reduce((n,r)=>{const{sensor:o}=r,i=o.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var Ee;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Ee||(Ee={}));var ot;(function(e){e.Optimized="optimized"})(ot||(ot={}));const It=new Map;function sr(e,t){let{dragging:n,dependencies:r,config:o}=t;const[i,a]=l.useState(null),{frequency:s,measure:c,strategy:u}=o,f=l.useRef(e),d=p(),v=Se(d),h=l.useCallback(function(y){y===void 0&&(y=[]),!v.current&&a(x=>x===null?y:x.concat(y.filter(w=>!x.includes(w))))},[v]),C=l.useRef(null),g=Me(y=>{if(d&&!n)return It;if(!y||y===It||f.current!==e||i!=null){const x=new Map;for(let w of e){if(!w)continue;if(i&&i.length>0&&!i.includes(w.id)&&w.rect.current){x.set(w.id,w.rect.current);continue}const N=w.node.current,S=N?new ct(c(N),N):null;w.rect.current=S,S&&x.set(w.id,S)}return x}return y},[e,i,n,d,c]);return l.useEffect(()=>{f.current=e},[e]),l.useEffect(()=>{d||h()},[n,d]),l.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),l.useEffect(()=>{d||typeof s!="number"||C.current!==null||(C.current=setTimeout(()=>{h(),C.current=null},s))},[s,d,h,...r]),{droppableRects:g,measureDroppableContainers:h,measuringScheduled:i!=null};function p(){switch(u){case Ee.Always:return!1;case Ee.BeforeDragging:return n;default:return!n}}}function dt(e,t){return Me(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function ar(e,t){return dt(e,t)}function lr(e){let{callback:t,disabled:n}=e;const r=Ke(t),o=l.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return l.useEffect(()=>()=>o==null?void 0:o.disconnect(),[o]),o}function We(e){let{callback:t,disabled:n}=e;const r=Ke(t),o=l.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return l.useEffect(()=>()=>o==null?void 0:o.disconnect(),[o]),o}function cr(e){return new ct(Oe(e),e)}function Pt(e,t,n){t===void 0&&(t=cr);const[r,o]=l.useState(null);function i(){o(c=>{if(!e)return null;if(e.isConnected===!1){var u;return(u=c??n)!=null?u:null}const f=t(e);return JSON.stringify(c)===JSON.stringify(f)?c:f})}const a=lr({callback(c){if(e)for(const u of c){const{type:f,target:d}=u;if(f==="childList"&&d instanceof HTMLElement&&d.contains(e)){i();break}}}}),s=We({callback:i});return _(()=>{i(),e?(s==null||s.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(s==null||s.disconnect(),a==null||a.disconnect())},[e]),r}function ur(e){const t=dt(e);return Ut(e,t)}const zt=[];function dr(e){const t=l.useRef(e),n=Me(r=>e?r&&r!==zt&&e&&t.current&&e.parentNode===t.current.parentNode?r:lt(e):zt,[e]);return l.useEffect(()=>{t.current=e},[e]),n}function fr(e){const[t,n]=l.useState(null),r=l.useRef(e),o=l.useCallback(i=>{const a=Ze(i.target);a&&n(s=>s?(s.set(a,nt(a)),new Map(s)):null)},[]);return l.useEffect(()=>{const i=r.current;if(e!==i){a(i);const s=e.map(c=>{const u=Ze(c);return u?(u.addEventListener("scroll",o,{passive:!0}),[u,nt(u)]):null}).filter(c=>c!=null);n(s.length?new Map(s):null),r.current=e}return()=>{a(e),a(i)};function a(s){s.forEach(c=>{const u=Ze(c);u==null||u.removeEventListener("scroll",o)})}},[o,e]),l.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>he(i,a),K):Gt(e):K,[e,t])}function Bt(e,t){t===void 0&&(t=[]);const n=l.useRef(null);return l.useEffect(()=>{n.current=null},t),l.useEffect(()=>{const r=e!==K;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?Fe(e,n.current):K}function hr(e){l.useEffect(()=>{if(!$e)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function gr(e,t){return l.useMemo(()=>e.reduce((n,r)=>{let{eventName:o,handler:i}=r;return n[o]=a=>{i(a,t)},n},{}),[e,t])}function nn(e){return l.useMemo(()=>e?jn(e):null,[e])}const Ft=[];function vr(e,t){t===void 0&&(t=Oe);const[n]=e,r=nn(n?P(n):null),[o,i]=l.useState(Ft);function a(){i(()=>e.length?e.map(c=>Jt(c)?r:new ct(t(c),c)):Ft)}const s=We({callback:a});return _(()=>{s==null||s.disconnect(),a(),e.forEach(c=>s==null?void 0:s.observe(c))},[e]),o}function rn(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Ae(t)?t:e}function pr(e){let{measure:t}=e;const[n,r]=l.useState(null),o=l.useCallback(u=>{for(const{target:f}of u)if(Ae(f)){r(d=>{const v=t(f);return d?{...d,width:v.width,height:v.height}:v});break}},[t]),i=We({callback:o}),a=l.useCallback(u=>{const f=rn(u);i==null||i.disconnect(),f&&(i==null||i.observe(f)),r(f?t(f):null)},[t,i]),[s,c]=ze(a);return l.useMemo(()=>({nodeRef:s,rect:n,setRef:c}),[n,s,c])}const br=[{sensor:tn,options:{}},{sensor:en,options:{}}],mr={current:{}},Pe={draggable:{measure:Nt},droppable:{measure:Nt,strategy:Ee.WhileDragging,frequency:ot.Optimized},dragOverlay:{measure:Oe}};class Ce extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const yr={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Ce,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:Xe},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Pe,measureDroppableContainers:Xe,windowRect:null,measuringScheduled:!1},on={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:Xe,draggableNodes:new Map,over:null,measureDroppableContainers:Xe},Ne=l.createContext(on),sn=l.createContext(yr);function wr(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Ce}}}function xr(e,t){switch(t.type){case O.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case O.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case O.DragEnd:case O.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case O.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Ce(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case O.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Ce(e.droppable.containers);return a.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case O.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const i=new Ce(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function Dr(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:o}=l.useContext(Ne),i=Be(r),a=Be(n==null?void 0:n.id);return l.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!at(i)||document.activeElement===i.target)return;const s=o.get(a);if(!s)return;const{activatorNode:c,node:u}=s;if(!c.current&&!u.current)return;requestAnimationFrame(()=>{for(const f of[c.current,u.current]){if(!f)continue;const d=yn(f);if(d){d.focus();break}}})}},[r,t,o,a,i]),null}function an(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((o,i)=>i({transform:o,...r}),n):n}function Cr(e){return l.useMemo(()=>({draggable:{...Pe.draggable,...e==null?void 0:e.draggable},droppable:{...Pe.droppable,...e==null?void 0:e.droppable},dragOverlay:{...Pe.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function Sr(e){let{activeNode:t,measure:n,initialRect:r,config:o=!0}=e;const i=l.useRef(!1),{x:a,y:s}=typeof o=="boolean"?{x:o,y:o}:o;_(()=>{if(!a&&!s||!t){i.current=!1;return}if(i.current||!r)return;const u=t==null?void 0:t.node.current;if(!u||u.isConnected===!1)return;const f=n(u),d=Ut(f,r);if(a||(d.x=0),s||(d.y=0),i.current=!0,Math.abs(d.x)>0||Math.abs(d.y)>0){const v=Ht(u);v&&v.scrollBy({top:d.y,left:d.x})}},[t,a,s,r,n])}const He=l.createContext({...K,scaleX:1,scaleY:1});var re;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(re||(re={}));const Kr=l.memo(function(t){var n,r,o,i;let{id:a,accessibility:s,autoScroll:c=!0,children:u,sensors:f=br,collisionDetection:d=Ln,measuring:v,modifiers:h,...C}=t;const g=l.useReducer(xr,void 0,wr),[p,y]=g,[x,w]=Rn(),[N,S]=l.useState(re.Uninitialized),R=N===re.Initialized,{draggable:{active:b,nodes:m,translate:E},droppable:{containers:k}}=p,M=b!=null?m.get(b):null,H=l.useRef({initial:null,translated:null}),V=l.useMemo(()=>{var I;return b!=null?{id:b,data:(I=M==null?void 0:M.data)!=null?I:mr,rect:H}:null},[b,M]),G=l.useRef(null),[ft,ht]=l.useState(null),[q,gt]=l.useState(null),oe=Se(C,Object.values(C)),Ve=Ue("DndDescribedBy",a),vt=l.useMemo(()=>k.getEnabled(),[k]),ie=Cr(v),{droppableRects:le,measureDroppableContainers:Te,measuringScheduled:pt}=sr(vt,{dragging:R,dependencies:[E.x,E.y],config:ie.droppable}),Y=or(m,b),bt=l.useMemo(()=>q?je(q):null,[q]),mt=vn(),yt=ar(Y,ie.draggable.measure);Sr({activeNode:b!=null?m.get(b):null,config:mt.layoutShiftCompensation,initialRect:yt,measure:ie.draggable.measure});const $=Pt(Y,ie.draggable.measure,yt),qe=Pt(Y?Y.parentElement:null),se=l.useRef({activatorEvent:null,active:null,activeNode:Y,collisionRect:null,collisions:null,droppableRects:le,draggableNodes:m,draggingNode:null,draggingNodeRect:null,droppableContainers:k,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),wt=k.getNodeFor((n=se.current.over)==null?void 0:n.id),ae=pr({measure:ie.dragOverlay.measure}),ke=(r=ae.nodeRef.current)!=null?r:Y,ce=R?(o=ae.rect)!=null?o:$:null,xt=!!(ae.nodeRef.current&&ae.rect),Dt=ur(xt?null:$),Je=nn(ke?P(ke):null),Q=dr(R?wt??Y:null),Le=vr(Q),Ie=an(h,{transform:{x:E.x-Dt.x,y:E.y-Dt.y,scaleX:1,scaleY:1},activatorEvent:q,active:V,activeNodeRect:$,containerNodeRect:qe,draggingNodeRect:ce,over:se.current.over,overlayNodeRect:ae.rect,scrollableAncestors:Q,scrollableAncestorRects:Le,windowRect:Je}),Ct=bt?he(bt,E):null,St=fr(Q),ln=Bt(St),cn=Bt(St,[$]),ue=he(Ie,ln),de=ce?zn(ce,Ie):null,pe=V&&de?d({active:V,collisionRect:de,droppableRects:le,droppableContainers:vt,pointerCoordinates:Ct}):null,Rt=Tn(pe,"id"),[Z,Et]=l.useState(null),un=xt?Ie:he(Ie,cn),dn=In(un,(i=Z==null?void 0:Z.rect)!=null?i:null,$),_e=l.useRef(null),At=l.useCallback((I,z)=>{let{sensor:B,options:ee}=z;if(G.current==null)return;const j=m.get(G.current);if(!j)return;const F=I.nativeEvent,U=new B({active:G.current,activeNode:j,event:F,options:ee,context:se,onAbort(L){if(!m.get(L))return;const{onDragAbort:W}=oe.current,J={id:L};W==null||W(J),x({type:"onDragAbort",event:J})},onPending(L,te,W,J){if(!m.get(L))return;const{onDragPending:me}=oe.current,ne={id:L,constraint:te,initialCoordinates:W,offset:J};me==null||me(ne),x({type:"onDragPending",event:ne})},onStart(L){const te=G.current;if(te==null)return;const W=m.get(te);if(!W)return;const{onDragStart:J}=oe.current,be={activatorEvent:F,active:{id:te,data:W.data,rect:H}};we.unstable_batchedUpdates(()=>{J==null||J(be),S(re.Initializing),y({type:O.DragStart,initialCoordinates:L,active:te}),x({type:"onDragStart",event:be}),ht(_e.current),gt(F)})},onMove(L){y({type:O.DragMove,coordinates:L})},onEnd:fe(O.DragEnd),onCancel:fe(O.DragCancel)});_e.current=U;function fe(L){return async function(){const{active:W,collisions:J,over:be,scrollAdjustedTranslate:me}=se.current;let ne=null;if(W&&me){const{cancelDrop:ye}=oe.current;ne={activatorEvent:F,active:W,collisions:J,delta:me,over:be},L===O.DragEnd&&typeof ye=="function"&&await Promise.resolve(ye(ne))&&(L=O.DragCancel)}G.current=null,we.unstable_batchedUpdates(()=>{y({type:L}),S(re.Uninitialized),Et(null),ht(null),gt(null),_e.current=null;const ye=L===O.DragEnd?"onDragEnd":"onDragCancel";if(ne){const Ge=oe.current[ye];Ge==null||Ge(ne),x({type:ye,event:ne})}})}}},[m]),fn=l.useCallback((I,z)=>(B,ee)=>{const j=B.nativeEvent,F=m.get(ee);if(G.current!==null||!F||j.dndKit||j.defaultPrevented)return;const U={active:F};I(B,z.options,U)===!0&&(j.dndKit={capturedBy:z.sensor},G.current=ee,At(B,z))},[m,At]),Mt=ir(f,fn);hr(f),_(()=>{$&&N===re.Initializing&&S(re.Initialized)},[$,N]),l.useEffect(()=>{const{onDragMove:I}=oe.current,{active:z,activatorEvent:B,collisions:ee,over:j}=se.current;if(!z||!B)return;const F={active:z,activatorEvent:B,collisions:ee,delta:{x:ue.x,y:ue.y},over:j};we.unstable_batchedUpdates(()=>{I==null||I(F),x({type:"onDragMove",event:F})})},[ue.x,ue.y]),l.useEffect(()=>{const{active:I,activatorEvent:z,collisions:B,droppableContainers:ee,scrollAdjustedTranslate:j}=se.current;if(!I||G.current==null||!z||!j)return;const{onDragOver:F}=oe.current,U=ee.get(Rt),fe=U&&U.rect.current?{id:U.id,rect:U.rect.current,data:U.data,disabled:U.disabled}:null,L={active:I,activatorEvent:z,collisions:B,delta:{x:j.x,y:j.y},over:fe};we.unstable_batchedUpdates(()=>{Et(fe),F==null||F(L),x({type:"onDragOver",event:L})})},[Rt]),_(()=>{se.current={activatorEvent:q,active:V,activeNode:Y,collisionRect:de,collisions:pe,droppableRects:le,draggableNodes:m,draggingNode:ke,draggingNodeRect:ce,droppableContainers:k,over:Z,scrollableAncestors:Q,scrollAdjustedTranslate:ue},H.current={initial:ce,translated:de}},[V,Y,pe,de,m,ke,ce,le,k,Z,Q,ue]),tr({...mt,delta:E,draggingRect:de,pointerCoordinates:Ct,scrollableAncestors:Q,scrollableAncestorRects:Le});const hn=l.useMemo(()=>({active:V,activeNode:Y,activeNodeRect:$,activatorEvent:q,collisions:pe,containerNodeRect:qe,dragOverlay:ae,draggableNodes:m,droppableContainers:k,droppableRects:le,over:Z,measureDroppableContainers:Te,scrollableAncestors:Q,scrollableAncestorRects:Le,measuringConfiguration:ie,measuringScheduled:pt,windowRect:Je}),[V,Y,$,q,pe,qe,ae,m,k,le,Z,Te,Q,Le,ie,pt,Je]),gn=l.useMemo(()=>({activatorEvent:q,activators:Mt,active:V,activeNodeRect:$,ariaDescribedById:{draggable:Ve},dispatch:y,draggableNodes:m,over:Z,measureDroppableContainers:Te}),[q,Mt,V,$,y,Ve,m,Z,Te]);return A.createElement(Kt.Provider,{value:w},A.createElement(Ne.Provider,{value:gn},A.createElement(sn.Provider,{value:hn},A.createElement(He.Provider,{value:dn},u)),A.createElement(Dr,{disabled:(s==null?void 0:s.restoreFocus)===!1})),A.createElement(Mn,{...s,hiddenTextDescribedById:Ve}));function vn(){const I=(ft==null?void 0:ft.autoScrollEnabled)===!1,z=typeof c=="object"?c.enabled===!1:c===!1,B=R&&!I&&!z;return typeof c=="object"?{...c,enabled:B}:{enabled:B}}}),Rr=l.createContext(null),jt="button",Er="Draggable";function Ur(e){let{id:t,data:n,disabled:r=!1,attributes:o}=e;const i=Ue(Er),{activators:a,activatorEvent:s,active:c,activeNodeRect:u,ariaDescribedById:f,draggableNodes:d,over:v}=l.useContext(Ne),{role:h=jt,roleDescription:C="draggable",tabIndex:g=0}=o??{},p=(c==null?void 0:c.id)===t,y=l.useContext(p?He:Rr),[x,w]=ze(),[N,S]=ze(),R=gr(a,t),b=Se(n);_(()=>(d.set(t,{id:t,key:i,node:x,activatorNode:N,data:b}),()=>{const E=d.get(t);E&&E.key===i&&d.delete(t)}),[d,t]);const m=l.useMemo(()=>({role:h,tabIndex:g,"aria-disabled":r,"aria-pressed":p&&h===jt?!0:void 0,"aria-roledescription":C,"aria-describedby":f.draggable}),[r,h,g,p,C,f.draggable]);return{active:c,activatorEvent:s,activeNodeRect:u,attributes:m,isDragging:p,listeners:r?void 0:R,node:x,over:v,setNodeRef:w,setActivatorNodeRef:S,transform:y}}function Ar(){return l.useContext(sn)}const Mr="Droppable",Or={timeout:25};function Wr(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:o}=e;const i=Ue(Mr),{active:a,dispatch:s,over:c,measureDroppableContainers:u}=l.useContext(Ne),f=l.useRef({disabled:n}),d=l.useRef(!1),v=l.useRef(null),h=l.useRef(null),{disabled:C,updateMeasurementsFor:g,timeout:p}={...Or,...o},y=Se(g??r),x=l.useCallback(()=>{if(!d.current){d.current=!0;return}h.current!=null&&clearTimeout(h.current),h.current=setTimeout(()=>{u(Array.isArray(y.current)?y.current:[y.current]),h.current=null},p)},[p]),w=We({callback:x,disabled:C||!a}),N=l.useCallback((m,E)=>{w&&(E&&(w.unobserve(E),d.current=!1),m&&w.observe(m))},[w]),[S,R]=ze(N),b=Se(t);return l.useEffect(()=>{!w||!S.current||(w.disconnect(),d.current=!1,w.observe(S.current))},[S,w]),l.useEffect(()=>(s({type:O.RegisterDroppable,element:{id:r,key:i,disabled:n,node:S,rect:v,data:b}}),()=>s({type:O.UnregisterDroppable,key:i,id:r})),[r]),l.useEffect(()=>{n!==f.current.disabled&&(s({type:O.SetDroppableDisabled,id:r,key:i,disabled:n}),f.current.disabled=n)},[r,i,n,s]),{active:a,rect:v,isOver:(c==null?void 0:c.id)===r,node:S,over:c,setNodeRef:R}}function Nr(e){let{animation:t,children:n}=e;const[r,o]=l.useState(null),[i,a]=l.useState(null),s=Be(n);return!n&&!r&&s&&o(s),_(()=>{if(!i)return;const c=r==null?void 0:r.key,u=r==null?void 0:r.props.id;if(c==null||u==null){o(null);return}Promise.resolve(t(u,i)).then(()=>{o(null)})},[t,r,i]),A.createElement(A.Fragment,null,n,r?l.cloneElement(r,{ref:a}):null)}const Tr={x:0,y:0,scaleX:1,scaleY:1};function kr(e){let{children:t}=e;return A.createElement(Ne.Provider,{value:on},A.createElement(He.Provider,{value:Tr},t))}const Lr={position:"fixed",touchAction:"none"},Ir=e=>at(e)?"transform 250ms ease":void 0,Pr=l.forwardRef((e,t)=>{let{as:n,activatorEvent:r,adjustScale:o,children:i,className:a,rect:s,style:c,transform:u,transition:f=Ir}=e;if(!s)return null;const d=o?u:{...u,scaleX:1,scaleY:1},v={...Lr,width:s.width,height:s.height,top:s.top,left:s.left,transform:Re.Transform.toString(d),transformOrigin:o&&r?On(r,s):void 0,transition:typeof f=="function"?f(r):f,...c};return A.createElement(n,{className:a,style:v,ref:t},i)}),zr=e=>t=>{let{active:n,dragOverlay:r}=t;const o={},{styles:i,className:a}=e;if(i!=null&&i.active)for(const[s,c]of Object.entries(i.active))c!==void 0&&(o[s]=n.node.style.getPropertyValue(s),n.node.style.setProperty(s,c));if(i!=null&&i.dragOverlay)for(const[s,c]of Object.entries(i.dragOverlay))c!==void 0&&r.node.style.setProperty(s,c);return a!=null&&a.active&&n.node.classList.add(a.active),a!=null&&a.dragOverlay&&r.node.classList.add(a.dragOverlay),function(){for(const[c,u]of Object.entries(o))n.node.style.setProperty(c,u);a!=null&&a.active&&n.node.classList.remove(a.active)}},Br=e=>{let{transform:{initial:t,final:n}}=e;return[{transform:Re.Transform.toString(t)},{transform:Re.Transform.toString(n)}]},Fr={duration:250,easing:"ease",keyframes:Br,sideEffects:zr({styles:{active:{opacity:"0"}}})};function jr(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:o}=e;return Ke((i,a)=>{if(t===null)return;const s=n.get(i);if(!s)return;const c=s.node.current;if(!c)return;const u=rn(a);if(!u)return;const{transform:f}=P(a).getComputedStyle(a),d=Wt(f);if(!d)return;const v=typeof t=="function"?t:Xr(t);return Qt(c,o.draggable.measure),v({active:{id:i,data:s.data,node:c,rect:o.draggable.measure(c)},draggableNodes:n,dragOverlay:{node:a,rect:o.dragOverlay.measure(u)},droppableContainers:r,measuringConfiguration:o,transform:d})})}function Xr(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...Fr,...e};return i=>{let{active:a,dragOverlay:s,transform:c,...u}=i;if(!t)return;const f={x:s.rect.left-a.rect.left,y:s.rect.top-a.rect.top},d={scaleX:c.scaleX!==1?a.rect.width*c.scaleX/s.rect.width:1,scaleY:c.scaleY!==1?a.rect.height*c.scaleY/s.rect.height:1},v={x:c.x-f.x,y:c.y-f.y,...d},h=o({...u,active:a,dragOverlay:s,transform:{initial:c,final:v}}),[C]=h,g=h[h.length-1];if(JSON.stringify(C)===JSON.stringify(g))return;const p=r==null?void 0:r({active:a,dragOverlay:s,...u}),y=s.node.animate(h,{duration:t,easing:n,fill:"forwards"});return new Promise(x=>{y.onfinish=()=>{p==null||p(),x()}})}}let Xt=0;function Yr(e){return l.useMemo(()=>{if(e!=null)return Xt++,Xt},[e])}const Hr=A.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:o,transition:i,modifiers:a,wrapperElement:s="div",className:c,zIndex:u=999}=e;const{activatorEvent:f,active:d,activeNodeRect:v,containerNodeRect:h,draggableNodes:C,droppableContainers:g,dragOverlay:p,over:y,measuringConfiguration:x,scrollableAncestors:w,scrollableAncestorRects:N,windowRect:S}=Ar(),R=l.useContext(He),b=Yr(d==null?void 0:d.id),m=an(a,{activatorEvent:f,active:d,activeNodeRect:v,containerNodeRect:h,draggingNodeRect:p.rect,over:y,overlayNodeRect:p.rect,scrollableAncestors:w,scrollableAncestorRects:N,transform:R,windowRect:S}),E=dt(v),k=jr({config:r,draggableNodes:C,droppableContainers:g,measuringConfiguration:x}),M=E?p.setRef:void 0;return A.createElement(kr,null,A.createElement(Nr,{animation:k},d&&b?A.createElement(Pr,{key:b,id:d.id,ref:M,as:s,activatorEvent:f,adjustScale:t,className:c,transition:i,rect:E,style:{zIndex:u,...o},transform:m},n):null))});export{Kr as D,Hr as a,Ur as b,Wr as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}
|