@igoruehara/canvas-flow 0.1.12 → 0.1.14

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.
@@ -0,0 +1,767 @@
1
+ (function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))s(l);new MutationObserver(l=>{for(const p of l)if(p.type==="childList")for(const m of p.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&s(m)}).observe(document,{childList:!0,subtree:!0});function r(l){const p={};return l.integrity&&(p.integrity=l.integrity),l.referrerPolicy&&(p.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?p.credentials="include":l.crossOrigin==="anonymous"?p.credentials="omit":p.credentials="same-origin",p}function s(l){if(l.ep)return;l.ep=!0;const p=r(l);fetch(l.href,p)}})();function ag(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Hh={exports:{}},pp={},Wh={exports:{}},Nt={};/**
2
+ * @license React
3
+ * react.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var Rg;function ab(){if(Rg)return Nt;Rg=1;var t=Symbol.for("react.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),m=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),w=Symbol.iterator;function N(I){return I===null||typeof I!="object"?null:(I=w&&I[w]||I["@@iterator"],typeof I=="function"?I:null)}var C={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E=Object.assign,T={};function R(I,W,xe){this.props=I,this.context=W,this.refs=T,this.updater=xe||C}R.prototype.isReactComponent={},R.prototype.setState=function(I,W){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,W,"setState")},R.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function L(){}L.prototype=R.prototype;function U(I,W,xe){this.props=I,this.context=W,this.refs=T,this.updater=xe||C}var P=U.prototype=new L;P.constructor=U,E(P,R.prototype),P.isPureReactComponent=!0;var F=Array.isArray,Z=Object.prototype.hasOwnProperty,oe={current:null},ae={key:!0,ref:!0,__self:!0,__source:!0};function te(I,W,xe){var Q,be={},Ce=null,Oe=null;if(W!=null)for(Q in W.ref!==void 0&&(Oe=W.ref),W.key!==void 0&&(Ce=""+W.key),W)Z.call(W,Q)&&!ae.hasOwnProperty(Q)&&(be[Q]=W[Q]);var B=arguments.length-2;if(B===1)be.children=xe;else if(1<B){for(var ce=Array(B),O=0;O<B;O++)ce[O]=arguments[O+2];be.children=ce}if(I&&I.defaultProps)for(Q in B=I.defaultProps,B)be[Q]===void 0&&(be[Q]=B[Q]);return{$$typeof:t,type:I,key:Ce,ref:Oe,props:be,_owner:oe.current}}function X(I,W){return{$$typeof:t,type:I.type,key:W,ref:I.ref,props:I.props,_owner:I._owner}}function fe(I){return typeof I=="object"&&I!==null&&I.$$typeof===t}function ve(I){var W={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(xe){return W[xe]})}var ye=/\/+/g;function se(I,W){return typeof I=="object"&&I!==null&&I.key!=null?ve(""+I.key):W.toString(36)}function M(I,W,xe,Q,be){var Ce=typeof I;(Ce==="undefined"||Ce==="boolean")&&(I=null);var Oe=!1;if(I===null)Oe=!0;else switch(Ce){case"string":case"number":Oe=!0;break;case"object":switch(I.$$typeof){case t:case n:Oe=!0}}if(Oe)return Oe=I,be=be(Oe),I=Q===""?"."+se(Oe,0):Q,F(be)?(xe="",I!=null&&(xe=I.replace(ye,"$&/")+"/"),M(be,W,xe,"",function(O){return O})):be!=null&&(fe(be)&&(be=X(be,xe+(!be.key||Oe&&Oe.key===be.key?"":(""+be.key).replace(ye,"$&/")+"/")+I)),W.push(be)),1;if(Oe=0,Q=Q===""?".":Q+":",F(I))for(var B=0;B<I.length;B++){Ce=I[B];var ce=Q+se(Ce,B);Oe+=M(Ce,W,xe,ce,be)}else if(ce=N(I),typeof ce=="function")for(I=ce.call(I),B=0;!(Ce=I.next()).done;)Ce=Ce.value,ce=Q+se(Ce,B++),Oe+=M(Ce,W,xe,ce,be);else if(Ce==="object")throw W=String(I),Error("Objects are not valid as a React child (found: "+(W==="[object Object]"?"object with keys {"+Object.keys(I).join(", ")+"}":W)+"). If you meant to render a collection of children, use an array instead.");return Oe}function ee(I,W,xe){if(I==null)return I;var Q=[],be=0;return M(I,Q,"","",function(Ce){return W.call(xe,Ce,be++)}),Q}function q(I){if(I._status===-1){var W=I._result;W=W(),W.then(function(xe){(I._status===0||I._status===-1)&&(I._status=1,I._result=xe)},function(xe){(I._status===0||I._status===-1)&&(I._status=2,I._result=xe)}),I._status===-1&&(I._status=0,I._result=W)}if(I._status===1)return I._result.default;throw I._result}var ie={current:null},G={transition:null},$={ReactCurrentDispatcher:ie,ReactCurrentBatchConfig:G,ReactCurrentOwner:oe};function K(){throw Error("act(...) is not supported in production builds of React.")}return Nt.Children={map:ee,forEach:function(I,W,xe){ee(I,function(){W.apply(this,arguments)},xe)},count:function(I){var W=0;return ee(I,function(){W++}),W},toArray:function(I){return ee(I,function(W){return W})||[]},only:function(I){if(!fe(I))throw Error("React.Children.only expected to receive a single React element child.");return I}},Nt.Component=R,Nt.Fragment=r,Nt.Profiler=l,Nt.PureComponent=U,Nt.StrictMode=s,Nt.Suspense=f,Nt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=$,Nt.act=K,Nt.cloneElement=function(I,W,xe){if(I==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+I+".");var Q=E({},I.props),be=I.key,Ce=I.ref,Oe=I._owner;if(W!=null){if(W.ref!==void 0&&(Ce=W.ref,Oe=oe.current),W.key!==void 0&&(be=""+W.key),I.type&&I.type.defaultProps)var B=I.type.defaultProps;for(ce in W)Z.call(W,ce)&&!ae.hasOwnProperty(ce)&&(Q[ce]=W[ce]===void 0&&B!==void 0?B[ce]:W[ce])}var ce=arguments.length-2;if(ce===1)Q.children=xe;else if(1<ce){B=Array(ce);for(var O=0;O<ce;O++)B[O]=arguments[O+2];Q.children=B}return{$$typeof:t,type:I.type,key:be,ref:Ce,props:Q,_owner:Oe}},Nt.createContext=function(I){return I={$$typeof:m,_currentValue:I,_currentValue2:I,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},I.Provider={$$typeof:p,_context:I},I.Consumer=I},Nt.createElement=te,Nt.createFactory=function(I){var W=te.bind(null,I);return W.type=I,W},Nt.createRef=function(){return{current:null}},Nt.forwardRef=function(I){return{$$typeof:h,render:I}},Nt.isValidElement=fe,Nt.lazy=function(I){return{$$typeof:j,_payload:{_status:-1,_result:I},_init:q}},Nt.memo=function(I,W){return{$$typeof:x,type:I,compare:W===void 0?null:W}},Nt.startTransition=function(I){var W=G.transition;G.transition={};try{I()}finally{G.transition=W}},Nt.unstable_act=K,Nt.useCallback=function(I,W){return ie.current.useCallback(I,W)},Nt.useContext=function(I){return ie.current.useContext(I)},Nt.useDebugValue=function(){},Nt.useDeferredValue=function(I){return ie.current.useDeferredValue(I)},Nt.useEffect=function(I,W){return ie.current.useEffect(I,W)},Nt.useId=function(){return ie.current.useId()},Nt.useImperativeHandle=function(I,W,xe){return ie.current.useImperativeHandle(I,W,xe)},Nt.useInsertionEffect=function(I,W){return ie.current.useInsertionEffect(I,W)},Nt.useLayoutEffect=function(I,W){return ie.current.useLayoutEffect(I,W)},Nt.useMemo=function(I,W){return ie.current.useMemo(I,W)},Nt.useReducer=function(I,W,xe){return ie.current.useReducer(I,W,xe)},Nt.useRef=function(I){return ie.current.useRef(I)},Nt.useState=function(I){return ie.current.useState(I)},Nt.useSyncExternalStore=function(I,W,xe){return ie.current.useSyncExternalStore(I,W,xe)},Nt.useTransition=function(){return ie.current.useTransition()},Nt.version="18.3.1",Nt}var Fg;function Wp(){return Fg||(Fg=1,Wh.exports=ab()),Wh.exports}/**
10
+ * @license React
11
+ * react-jsx-runtime.production.min.js
12
+ *
13
+ * Copyright (c) Facebook, Inc. and its affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var zg;function rb(){if(zg)return pp;zg=1;var t=Wp(),n=Symbol.for("react.element"),r=Symbol.for("react.fragment"),s=Object.prototype.hasOwnProperty,l=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function m(h,f,x){var j,w={},N=null,C=null;x!==void 0&&(N=""+x),f.key!==void 0&&(N=""+f.key),f.ref!==void 0&&(C=f.ref);for(j in f)s.call(f,j)&&!p.hasOwnProperty(j)&&(w[j]=f[j]);if(h&&h.defaultProps)for(j in f=h.defaultProps,f)w[j]===void 0&&(w[j]=f[j]);return{$$typeof:n,type:h,key:N,ref:C,props:w,_owner:l.current}}return pp.Fragment=r,pp.jsx=m,pp.jsxs=m,pp}var Lg;function sb(){return Lg||(Lg=1,Hh.exports=rb()),Hh.exports}var e=sb(),b=Wp();const he=ag(b);var Pm={},Gh={exports:{}},mr={},Jh={exports:{}},Kh={};/**
18
+ * @license React
19
+ * scheduler.production.min.js
20
+ *
21
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */var Dg;function ib(){return Dg||(Dg=1,(function(t){function n(G,$){var K=G.length;G.push($);e:for(;0<K;){var I=K-1>>>1,W=G[I];if(0<l(W,$))G[I]=$,G[K]=W,K=I;else break e}}function r(G){return G.length===0?null:G[0]}function s(G){if(G.length===0)return null;var $=G[0],K=G.pop();if(K!==$){G[0]=K;e:for(var I=0,W=G.length,xe=W>>>1;I<xe;){var Q=2*(I+1)-1,be=G[Q],Ce=Q+1,Oe=G[Ce];if(0>l(be,K))Ce<W&&0>l(Oe,be)?(G[I]=Oe,G[Ce]=K,I=Ce):(G[I]=be,G[Q]=K,I=Q);else if(Ce<W&&0>l(Oe,K))G[I]=Oe,G[Ce]=K,I=Ce;else break e}}return $}function l(G,$){var K=G.sortIndex-$.sortIndex;return K!==0?K:G.id-$.id}if(typeof performance=="object"&&typeof performance.now=="function"){var p=performance;t.unstable_now=function(){return p.now()}}else{var m=Date,h=m.now();t.unstable_now=function(){return m.now()-h}}var f=[],x=[],j=1,w=null,N=3,C=!1,E=!1,T=!1,R=typeof setTimeout=="function"?setTimeout:null,L=typeof clearTimeout=="function"?clearTimeout:null,U=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(G){for(var $=r(x);$!==null;){if($.callback===null)s(x);else if($.startTime<=G)s(x),$.sortIndex=$.expirationTime,n(f,$);else break;$=r(x)}}function F(G){if(T=!1,P(G),!E)if(r(f)!==null)E=!0,q(Z);else{var $=r(x);$!==null&&ie(F,$.startTime-G)}}function Z(G,$){E=!1,T&&(T=!1,L(te),te=-1),C=!0;var K=N;try{for(P($),w=r(f);w!==null&&(!(w.expirationTime>$)||G&&!ve());){var I=w.callback;if(typeof I=="function"){w.callback=null,N=w.priorityLevel;var W=I(w.expirationTime<=$);$=t.unstable_now(),typeof W=="function"?w.callback=W:w===r(f)&&s(f),P($)}else s(f);w=r(f)}if(w!==null)var xe=!0;else{var Q=r(x);Q!==null&&ie(F,Q.startTime-$),xe=!1}return xe}finally{w=null,N=K,C=!1}}var oe=!1,ae=null,te=-1,X=5,fe=-1;function ve(){return!(t.unstable_now()-fe<X)}function ye(){if(ae!==null){var G=t.unstable_now();fe=G;var $=!0;try{$=ae(!0,G)}finally{$?se():(oe=!1,ae=null)}}else oe=!1}var se;if(typeof U=="function")se=function(){U(ye)};else if(typeof MessageChannel<"u"){var M=new MessageChannel,ee=M.port2;M.port1.onmessage=ye,se=function(){ee.postMessage(null)}}else se=function(){R(ye,0)};function q(G){ae=G,oe||(oe=!0,se())}function ie(G,$){te=R(function(){G(t.unstable_now())},$)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(G){G.callback=null},t.unstable_continueExecution=function(){E||C||(E=!0,q(Z))},t.unstable_forceFrameRate=function(G){0>G||125<G?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):X=0<G?Math.floor(1e3/G):5},t.unstable_getCurrentPriorityLevel=function(){return N},t.unstable_getFirstCallbackNode=function(){return r(f)},t.unstable_next=function(G){switch(N){case 1:case 2:case 3:var $=3;break;default:$=N}var K=N;N=$;try{return G()}finally{N=K}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(G,$){switch(G){case 1:case 2:case 3:case 4:case 5:break;default:G=3}var K=N;N=G;try{return $()}finally{N=K}},t.unstable_scheduleCallback=function(G,$,K){var I=t.unstable_now();switch(typeof K=="object"&&K!==null?(K=K.delay,K=typeof K=="number"&&0<K?I+K:I):K=I,G){case 1:var W=-1;break;case 2:W=250;break;case 5:W=1073741823;break;case 4:W=1e4;break;default:W=5e3}return W=K+W,G={id:j++,callback:$,priorityLevel:G,startTime:K,expirationTime:W,sortIndex:-1},K>I?(G.sortIndex=K,n(x,G),r(f)===null&&G===r(x)&&(T?(L(te),te=-1):T=!0,ie(F,K-I))):(G.sortIndex=W,n(f,G),E||C||(E=!0,q(Z))),G},t.unstable_shouldYield=ve,t.unstable_wrapCallback=function(G){var $=N;return function(){var K=N;N=$;try{return G.apply(this,arguments)}finally{N=K}}}})(Kh)),Kh}var $g;function lb(){return $g||($g=1,Jh.exports=ib()),Jh.exports}/**
26
+ * @license React
27
+ * react-dom.production.min.js
28
+ *
29
+ * Copyright (c) Facebook, Inc. and its affiliates.
30
+ *
31
+ * This source code is licensed under the MIT license found in the
32
+ * LICENSE file in the root directory of this source tree.
33
+ */var Vg;function cb(){if(Vg)return mr;Vg=1;var t=Wp(),n=lb();function r(o){for(var a="https://reactjs.org/docs/error-decoder.html?invariant="+o,i=1;i<arguments.length;i++)a+="&args[]="+encodeURIComponent(arguments[i]);return"Minified React error #"+o+"; visit "+a+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var s=new Set,l={};function p(o,a){m(o,a),m(o+"Capture",a)}function m(o,a){for(l[o]=a,o=0;o<a.length;o++)s.add(a[o])}var h=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),f=Object.prototype.hasOwnProperty,x=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,j={},w={};function N(o){return f.call(w,o)?!0:f.call(j,o)?!1:x.test(o)?w[o]=!0:(j[o]=!0,!1)}function C(o,a,i,u){if(i!==null&&i.type===0)return!1;switch(typeof a){case"function":case"symbol":return!0;case"boolean":return u?!1:i!==null?!i.acceptsBooleans:(o=o.toLowerCase().slice(0,5),o!=="data-"&&o!=="aria-");default:return!1}}function E(o,a,i,u){if(a===null||typeof a>"u"||C(o,a,i,u))return!0;if(u)return!1;if(i!==null)switch(i.type){case 3:return!a;case 4:return a===!1;case 5:return isNaN(a);case 6:return isNaN(a)||1>a}return!1}function T(o,a,i,u,g,v,A){this.acceptsBooleans=a===2||a===3||a===4,this.attributeName=u,this.attributeNamespace=g,this.mustUseProperty=i,this.propertyName=o,this.type=a,this.sanitizeURL=v,this.removeEmptyString=A}var R={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(o){R[o]=new T(o,0,!1,o,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(o){var a=o[0];R[a]=new T(a,1,!1,o[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(o){R[o]=new T(o,2,!1,o.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(o){R[o]=new T(o,2,!1,o,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(o){R[o]=new T(o,3,!1,o.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(o){R[o]=new T(o,3,!0,o,null,!1,!1)}),["capture","download"].forEach(function(o){R[o]=new T(o,4,!1,o,null,!1,!1)}),["cols","rows","size","span"].forEach(function(o){R[o]=new T(o,6,!1,o,null,!1,!1)}),["rowSpan","start"].forEach(function(o){R[o]=new T(o,5,!1,o.toLowerCase(),null,!1,!1)});var L=/[\-:]([a-z])/g;function U(o){return o[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(o){var a=o.replace(L,U);R[a]=new T(a,1,!1,o,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(o){var a=o.replace(L,U);R[a]=new T(a,1,!1,o,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(o){var a=o.replace(L,U);R[a]=new T(a,1,!1,o,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(o){R[o]=new T(o,1,!1,o.toLowerCase(),null,!1,!1)}),R.xlinkHref=new T("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(o){R[o]=new T(o,1,!1,o.toLowerCase(),null,!0,!0)});function P(o,a,i,u){var g=R.hasOwnProperty(a)?R[a]:null;(g!==null?g.type!==0:u||!(2<a.length)||a[0]!=="o"&&a[0]!=="O"||a[1]!=="n"&&a[1]!=="N")&&(E(a,i,g,u)&&(i=null),u||g===null?N(a)&&(i===null?o.removeAttribute(a):o.setAttribute(a,""+i)):g.mustUseProperty?o[g.propertyName]=i===null?g.type===3?!1:"":i:(a=g.attributeName,u=g.attributeNamespace,i===null?o.removeAttribute(a):(g=g.type,i=g===3||g===4&&i===!0?"":""+i,u?o.setAttributeNS(u,a,i):o.setAttribute(a,i))))}var F=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Z=Symbol.for("react.element"),oe=Symbol.for("react.portal"),ae=Symbol.for("react.fragment"),te=Symbol.for("react.strict_mode"),X=Symbol.for("react.profiler"),fe=Symbol.for("react.provider"),ve=Symbol.for("react.context"),ye=Symbol.for("react.forward_ref"),se=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),ee=Symbol.for("react.memo"),q=Symbol.for("react.lazy"),ie=Symbol.for("react.offscreen"),G=Symbol.iterator;function $(o){return o===null||typeof o!="object"?null:(o=G&&o[G]||o["@@iterator"],typeof o=="function"?o:null)}var K=Object.assign,I;function W(o){if(I===void 0)try{throw Error()}catch(i){var a=i.stack.trim().match(/\n( *(at )?)/);I=a&&a[1]||""}return`
34
+ `+I+o}var xe=!1;function Q(o,a){if(!o||xe)return"";xe=!0;var i=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(a)if(a=function(){throw Error()},Object.defineProperty(a.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(a,[])}catch(pe){var u=pe}Reflect.construct(o,[],a)}else{try{a.call()}catch(pe){u=pe}o.call(a.prototype)}else{try{throw Error()}catch(pe){u=pe}o()}}catch(pe){if(pe&&u&&typeof pe.stack=="string"){for(var g=pe.stack.split(`
35
+ `),v=u.stack.split(`
36
+ `),A=g.length-1,V=v.length-1;1<=A&&0<=V&&g[A]!==v[V];)V--;for(;1<=A&&0<=V;A--,V--)if(g[A]!==v[V]){if(A!==1||V!==1)do if(A--,V--,0>V||g[A]!==v[V]){var J=`
37
+ `+g[A].replace(" at new "," at ");return o.displayName&&J.includes("<anonymous>")&&(J=J.replace("<anonymous>",o.displayName)),J}while(1<=A&&0<=V);break}}}finally{xe=!1,Error.prepareStackTrace=i}return(o=o?o.displayName||o.name:"")?W(o):""}function be(o){switch(o.tag){case 5:return W(o.type);case 16:return W("Lazy");case 13:return W("Suspense");case 19:return W("SuspenseList");case 0:case 2:case 15:return o=Q(o.type,!1),o;case 11:return o=Q(o.type.render,!1),o;case 1:return o=Q(o.type,!0),o;default:return""}}function Ce(o){if(o==null)return null;if(typeof o=="function")return o.displayName||o.name||null;if(typeof o=="string")return o;switch(o){case ae:return"Fragment";case oe:return"Portal";case X:return"Profiler";case te:return"StrictMode";case se:return"Suspense";case M:return"SuspenseList"}if(typeof o=="object")switch(o.$$typeof){case ve:return(o.displayName||"Context")+".Consumer";case fe:return(o._context.displayName||"Context")+".Provider";case ye:var a=o.render;return o=o.displayName,o||(o=a.displayName||a.name||"",o=o!==""?"ForwardRef("+o+")":"ForwardRef"),o;case ee:return a=o.displayName||null,a!==null?a:Ce(o.type)||"Memo";case q:a=o._payload,o=o._init;try{return Ce(o(a))}catch{}}return null}function Oe(o){var a=o.type;switch(o.tag){case 24:return"Cache";case 9:return(a.displayName||"Context")+".Consumer";case 10:return(a._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return o=a.render,o=o.displayName||o.name||"",a.displayName||(o!==""?"ForwardRef("+o+")":"ForwardRef");case 7:return"Fragment";case 5:return a;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ce(a);case 8:return a===te?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a}return null}function B(o){switch(typeof o){case"boolean":case"number":case"string":case"undefined":return o;case"object":return o;default:return""}}function ce(o){var a=o.type;return(o=o.nodeName)&&o.toLowerCase()==="input"&&(a==="checkbox"||a==="radio")}function O(o){var a=ce(o)?"checked":"value",i=Object.getOwnPropertyDescriptor(o.constructor.prototype,a),u=""+o[a];if(!o.hasOwnProperty(a)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var g=i.get,v=i.set;return Object.defineProperty(o,a,{configurable:!0,get:function(){return g.call(this)},set:function(A){u=""+A,v.call(this,A)}}),Object.defineProperty(o,a,{enumerable:i.enumerable}),{getValue:function(){return u},setValue:function(A){u=""+A},stopTracking:function(){o._valueTracker=null,delete o[a]}}}}function Ie(o){o._valueTracker||(o._valueTracker=O(o))}function ge(o){if(!o)return!1;var a=o._valueTracker;if(!a)return!0;var i=a.getValue(),u="";return o&&(u=ce(o)?o.checked?"true":"false":o.value),o=u,o!==i?(a.setValue(o),!0):!1}function it(o){if(o=o||(typeof document<"u"?document:void 0),typeof o>"u")return null;try{return o.activeElement||o.body}catch{return o.body}}function ht(o,a){var i=a.checked;return K({},a,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:i??o._wrapperState.initialChecked})}function Ze(o,a){var i=a.defaultValue==null?"":a.defaultValue,u=a.checked!=null?a.checked:a.defaultChecked;i=B(a.value!=null?a.value:i),o._wrapperState={initialChecked:u,initialValue:i,controlled:a.type==="checkbox"||a.type==="radio"?a.checked!=null:a.value!=null}}function kt(o,a){a=a.checked,a!=null&&P(o,"checked",a,!1)}function et(o,a){kt(o,a);var i=B(a.value),u=a.type;if(i!=null)u==="number"?(i===0&&o.value===""||o.value!=i)&&(o.value=""+i):o.value!==""+i&&(o.value=""+i);else if(u==="submit"||u==="reset"){o.removeAttribute("value");return}a.hasOwnProperty("value")?Qe(o,a.type,i):a.hasOwnProperty("defaultValue")&&Qe(o,a.type,B(a.defaultValue)),a.checked==null&&a.defaultChecked!=null&&(o.defaultChecked=!!a.defaultChecked)}function Te(o,a,i){if(a.hasOwnProperty("value")||a.hasOwnProperty("defaultValue")){var u=a.type;if(!(u!=="submit"&&u!=="reset"||a.value!==void 0&&a.value!==null))return;a=""+o._wrapperState.initialValue,i||a===o.value||(o.value=a),o.defaultValue=a}i=o.name,i!==""&&(o.name=""),o.defaultChecked=!!o._wrapperState.initialChecked,i!==""&&(o.name=i)}function Qe(o,a,i){(a!=="number"||it(o.ownerDocument)!==o)&&(i==null?o.defaultValue=""+o._wrapperState.initialValue:o.defaultValue!==""+i&&(o.defaultValue=""+i))}var xt=Array.isArray;function re(o,a,i,u){if(o=o.options,a){a={};for(var g=0;g<i.length;g++)a["$"+i[g]]=!0;for(i=0;i<o.length;i++)g=a.hasOwnProperty("$"+o[i].value),o[i].selected!==g&&(o[i].selected=g),g&&u&&(o[i].defaultSelected=!0)}else{for(i=""+B(i),a=null,g=0;g<o.length;g++){if(o[g].value===i){o[g].selected=!0,u&&(o[g].defaultSelected=!0);return}a!==null||o[g].disabled||(a=o[g])}a!==null&&(a.selected=!0)}}function we(o,a){if(a.dangerouslySetInnerHTML!=null)throw Error(r(91));return K({},a,{value:void 0,defaultValue:void 0,children:""+o._wrapperState.initialValue})}function Me(o,a){var i=a.value;if(i==null){if(i=a.children,a=a.defaultValue,i!=null){if(a!=null)throw Error(r(92));if(xt(i)){if(1<i.length)throw Error(r(93));i=i[0]}a=i}a==null&&(a=""),i=a}o._wrapperState={initialValue:B(i)}}function Ye(o,a){var i=B(a.value),u=B(a.defaultValue);i!=null&&(i=""+i,i!==o.value&&(o.value=i),a.defaultValue==null&&o.defaultValue!==i&&(o.defaultValue=i)),u!=null&&(o.defaultValue=""+u)}function st(o){var a=o.textContent;a===o._wrapperState.initialValue&&a!==""&&a!==null&&(o.value=a)}function Ue(o){switch(o){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Le(o,a){return o==null||o==="http://www.w3.org/1999/xhtml"?Ue(a):o==="http://www.w3.org/2000/svg"&&a==="foreignObject"?"http://www.w3.org/1999/xhtml":o}var tt,ft=(function(o){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(a,i,u,g){MSApp.execUnsafeLocalFunction(function(){return o(a,i,u,g)})}:o})(function(o,a){if(o.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in o)o.innerHTML=a;else{for(tt=tt||document.createElement("div"),tt.innerHTML="<svg>"+a.valueOf().toString()+"</svg>",a=tt.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;a.firstChild;)o.appendChild(a.firstChild)}});function Re(o,a){if(a){var i=o.firstChild;if(i&&i===o.lastChild&&i.nodeType===3){i.nodeValue=a;return}}o.textContent=a}var Pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},lt=["Webkit","ms","Moz","O"];Object.keys(Pe).forEach(function(o){lt.forEach(function(a){a=a+o.charAt(0).toUpperCase()+o.substring(1),Pe[a]=Pe[o]})});function pn(o,a,i){return a==null||typeof a=="boolean"||a===""?"":i||typeof a!="number"||a===0||Pe.hasOwnProperty(o)&&Pe[o]?(""+a).trim():a+"px"}function An(o,a){o=o.style;for(var i in a)if(a.hasOwnProperty(i)){var u=i.indexOf("--")===0,g=pn(i,a[i],u);i==="float"&&(i="cssFloat"),u?o.setProperty(i,g):o[i]=g}}var sa=K({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function mn(o,a){if(a){if(sa[o]&&(a.children!=null||a.dangerouslySetInnerHTML!=null))throw Error(r(137,o));if(a.dangerouslySetInnerHTML!=null){if(a.children!=null)throw Error(r(60));if(typeof a.dangerouslySetInnerHTML!="object"||!("__html"in a.dangerouslySetInnerHTML))throw Error(r(61))}if(a.style!=null&&typeof a.style!="object")throw Error(r(62))}}function Wn(o,a){if(o.indexOf("-")===-1)return typeof a.is=="string";switch(o){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Jo=null;function fr(o){return o=o.target||o.srcElement||window,o.correspondingUseElement&&(o=o.correspondingUseElement),o.nodeType===3?o.parentNode:o}var Ko=null,ia=null,Ao=null;function la(o){if(o=Oo(o)){if(typeof Ko!="function")throw Error(r(280));var a=o.stateNode;a&&(a=rr(a),Ko(o.stateNode,o.type,a))}}function gr(o){ia?Ao?Ao.push(o):Ao=[o]:ia=o}function xr(){if(ia){var o=ia,a=Ao;if(Ao=ia=null,la(o),a)for(o=0;o<a.length;o++)la(a[o])}}function vr(o,a){return o(a)}function Va(){}var yr=!1;function Ba(o,a,i){if(yr)return o(a,i);yr=!0;try{return vr(o,a,i)}finally{yr=!1,(ia!==null||Ao!==null)&&(Va(),xr())}}function Ua(o,a){var i=o.stateNode;if(i===null)return null;var u=rr(i);if(u===null)return null;i=u[a];e:switch(a){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(u=!u.disabled)||(o=o.type,u=!(o==="button"||o==="input"||o==="select"||o==="textarea")),o=!u;break e;default:o=!1}if(o)return null;if(i&&typeof i!="function")throw Error(r(231,a,typeof i));return i}var As=!1;if(h)try{var Qo={};Object.defineProperty(Qo,"passive",{get:function(){As=!0}}),window.addEventListener("test",Qo,Qo),window.removeEventListener("test",Qo,Qo)}catch{As=!1}function Gn(o,a,i,u,g,v,A,V,J){var pe=Array.prototype.slice.call(arguments,3);try{a.apply(i,pe)}catch(Se){this.onError(Se)}}var qa=!1,En=null,Xr=!1,Ha=null,tl={onError:function(o){qa=!0,En=o}};function Es(o,a,i,u,g,v,A,V,J){qa=!1,En=null,Gn.apply(tl,arguments)}function Jn(o,a,i,u,g,v,A,V,J){if(Es.apply(this,arguments),qa){if(qa){var pe=En;qa=!1,En=null}else throw Error(r(198));Xr||(Xr=!0,Ha=pe)}}function vt(o){var a=o,i=o;if(o.alternate)for(;a.return;)a=a.return;else{o=a;do a=o,(a.flags&4098)!==0&&(i=a.return),o=a.return;while(o)}return a.tag===3?i:null}function _n(o){if(o.tag===13){var a=o.memoizedState;if(a===null&&(o=o.alternate,o!==null&&(a=o.memoizedState)),a!==null)return a.dehydrated}return null}function Wa(o){if(vt(o)!==o)throw Error(r(188))}function ni(o){var a=o.alternate;if(!a){if(a=vt(o),a===null)throw Error(r(188));return a!==o?null:o}for(var i=o,u=a;;){var g=i.return;if(g===null)break;var v=g.alternate;if(v===null){if(u=g.return,u!==null){i=u;continue}break}if(g.child===v.child){for(v=g.child;v;){if(v===i)return Wa(g),o;if(v===u)return Wa(g),a;v=v.sibling}throw Error(r(188))}if(i.return!==u.return)i=g,u=v;else{for(var A=!1,V=g.child;V;){if(V===i){A=!0,i=g,u=v;break}if(V===u){A=!0,u=g,i=v;break}V=V.sibling}if(!A){for(V=v.child;V;){if(V===i){A=!0,i=v,u=g;break}if(V===u){A=!0,u=v,i=g;break}V=V.sibling}if(!A)throw Error(r(189))}}if(i.alternate!==u)throw Error(r(190))}if(i.tag!==3)throw Error(r(188));return i.stateNode.current===i?o:a}function nl(o){return o=ni(o),o!==null?jr(o):null}function jr(o){if(o.tag===5||o.tag===6)return o;for(o=o.child;o!==null;){var a=jr(o);if(a!==null)return a;o=o.sibling}return null}var Ms=n.unstable_scheduleCallback,Ga=n.unstable_cancelCallback,oi=n.unstable_shouldYield,ca=n.unstable_requestPaint,Ge=n.unstable_now,Kn=n.unstable_getCurrentPriorityLevel,Qn=n.unstable_ImmediatePriority,Eo=n.unstable_UserBlockingPriority,Yr=n.unstable_NormalPriority,ai=n.unstable_LowPriority,Ul=n.unstable_IdlePriority,Zr=null,da=null;function Ja(o){if(da&&typeof da.onCommitFiberRoot=="function")try{da.onCommitFiberRoot(Zr,o,void 0,(o.current.flags&128)===128)}catch{}}var Fe=Math.clz32?Math.clz32:mo,en=Math.log,Xn=Math.LN2;function mo(o){return o>>>=0,o===0?32:31-(en(o)/Xn|0)|0}var ho=64,Ka=4194304;function ri(o){switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return o&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return o&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return o}}function Qa(o,a){var i=o.pendingLanes;if(i===0)return 0;var u=0,g=o.suspendedLanes,v=o.pingedLanes,A=i&268435455;if(A!==0){var V=A&~g;V!==0?u=ri(V):(v&=A,v!==0&&(u=ri(v)))}else A=i&~g,A!==0?u=ri(A):v!==0&&(u=ri(v));if(u===0)return 0;if(a!==0&&a!==u&&(a&g)===0&&(g=u&-u,v=a&-a,g>=v||g===16&&(v&4194240)!==0))return a;if((u&4)!==0&&(u|=i&16),a=o.entangledLanes,a!==0)for(o=o.entanglements,a&=u;0<a;)i=31-Fe(a),g=1<<i,u|=o[i],a&=~g;return u}function Mn(o,a){switch(o){case 1:case 2:case 4:return a+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function si(o,a){for(var i=o.suspendedLanes,u=o.pingedLanes,g=o.expirationTimes,v=o.pendingLanes;0<v;){var A=31-Fe(v),V=1<<A,J=g[A];J===-1?((V&i)===0||(V&u)!==0)&&(g[A]=Mn(V,a)):J<=a&&(o.expiredLanes|=V),v&=~V}}function ol(o){return o=o.pendingLanes&-1073741825,o!==0?o:o&1073741824?1073741824:0}function ql(){var o=ho;return ho<<=1,(ho&4194240)===0&&(ho=64),o}function br(o){for(var a=[],i=0;31>i;i++)a.push(o);return a}function wr(o,a,i){o.pendingLanes|=a,a!==536870912&&(o.suspendedLanes=0,o.pingedLanes=0),o=o.eventTimes,a=31-Fe(a),o[a]=i}function Hl(o,a){var i=o.pendingLanes&~a;o.pendingLanes=a,o.suspendedLanes=0,o.pingedLanes=0,o.expiredLanes&=a,o.mutableReadLanes&=a,o.entangledLanes&=a,a=o.entanglements;var u=o.eventTimes;for(o=o.expirationTimes;0<i;){var g=31-Fe(i),v=1<<g;a[g]=0,u[g]=-1,o[g]=-1,i&=~v}}function an(o,a){var i=o.entangledLanes|=a;for(o=o.entanglements;i;){var u=31-Fe(i),g=1<<u;g&a|o[u]&a&&(o[u]|=a),i&=~g}}var yt=0;function zt(o){return o&=-o,1<o?4<o?(o&268435455)!==0?16:536870912:4:1}var Vt,Cn,ua,Vc,Wl,al=!1,Ts=[],pa=null,Xo=null,Nr=null,Mt=new Map,ii=new Map,at=[],Bc="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function z(o,a){switch(o){case"focusin":case"focusout":pa=null;break;case"dragenter":case"dragleave":Xo=null;break;case"mouseover":case"mouseout":Nr=null;break;case"pointerover":case"pointerout":Mt.delete(a.pointerId);break;case"gotpointercapture":case"lostpointercapture":ii.delete(a.pointerId)}}function Yn(o,a,i,u,g,v){return o===null||o.nativeEvent!==v?(o={blockedOn:a,domEventName:i,eventSystemFlags:u,nativeEvent:v,targetContainers:[g]},a!==null&&(a=Oo(a),a!==null&&Cn(a)),o):(o.eventSystemFlags|=u,a=o.targetContainers,g!==null&&a.indexOf(g)===-1&&a.push(g),o)}function Ca(o,a,i,u,g){switch(a){case"focusin":return pa=Yn(pa,o,a,i,u,g),!0;case"dragenter":return Xo=Yn(Xo,o,a,i,u,g),!0;case"mouseover":return Nr=Yn(Nr,o,a,i,u,g),!0;case"pointerover":var v=g.pointerId;return Mt.set(v,Yn(Mt.get(v)||null,o,a,i,u,g)),!0;case"gotpointercapture":return v=g.pointerId,ii.set(v,Yn(ii.get(v)||null,o,a,i,u,g)),!0}return!1}function li(o){var a=Ia(o.target);if(a!==null){var i=vt(a);if(i!==null){if(a=i.tag,a===13){if(a=_n(i),a!==null){o.blockedOn=a,Wl(o.priority,function(){ua(i)});return}}else if(a===3&&i.stateNode.current.memoizedState.isDehydrated){o.blockedOn=i.tag===3?i.stateNode.containerInfo:null;return}}}o.blockedOn=null}function ci(o){if(o.blockedOn!==null)return!1;for(var a=o.targetContainers;0<a.length;){var i=es(o.domEventName,o.eventSystemFlags,a[0],o.nativeEvent);if(i===null){i=o.nativeEvent;var u=new i.constructor(i.type,i);Jo=u,i.target.dispatchEvent(u),Jo=null}else return a=Oo(i),a!==null&&Cn(a),o.blockedOn=i,!1;a.shift()}return!0}function Ud(o,a,i){ci(o)&&i.delete(a)}function Ht(){al=!1,pa!==null&&ci(pa)&&(pa=null),Xo!==null&&ci(Xo)&&(Xo=null),Nr!==null&&ci(Nr)&&(Nr=null),Mt.forEach(Ud),ii.forEach(Ud)}function Cr(o,a){o.blockedOn===a&&(o.blockedOn=null,al||(al=!0,n.unstable_scheduleCallback(n.unstable_NormalPriority,Ht)))}function di(o){function a(g){return Cr(g,o)}if(0<Ts.length){Cr(Ts[0],o);for(var i=1;i<Ts.length;i++){var u=Ts[i];u.blockedOn===o&&(u.blockedOn=null)}}for(pa!==null&&Cr(pa,o),Xo!==null&&Cr(Xo,o),Nr!==null&&Cr(Nr,o),Mt.forEach(a),ii.forEach(a),i=0;i<at.length;i++)u=at[i],u.blockedOn===o&&(u.blockedOn=null);for(;0<at.length&&(i=at[0],i.blockedOn===null);)li(i),i.blockedOn===null&&at.shift()}var Pt=F.ReactCurrentBatchConfig,rl=!0;function Zn(o,a,i,u){var g=yt,v=Pt.transition;Pt.transition=null;try{yt=1,ma(o,a,i,u)}finally{yt=g,Pt.transition=v}}function Gl(o,a,i,u){var g=yt,v=Pt.transition;Pt.transition=null;try{yt=4,ma(o,a,i,u)}finally{yt=g,Pt.transition=v}}function ma(o,a,i,u){if(rl){var g=es(o,a,i,u);if(g===null)jn(o,a,u,eo,i),z(o,u);else if(Ca(g,o,a,i,u))u.stopPropagation();else if(z(o,u),a&4&&-1<Bc.indexOf(o)){for(;g!==null;){var v=Oo(g);if(v!==null&&Vt(v),v=es(o,a,i,u),v===null&&jn(o,a,u,eo,i),v===g)break;g=v}g!==null&&u.stopPropagation()}else jn(o,a,u,null,i)}}var eo=null;function es(o,a,i,u){if(eo=null,o=fr(u),o=Ia(o),o!==null)if(a=vt(o),a===null)o=null;else if(i=a.tag,i===13){if(o=_n(a),o!==null)return o;o=null}else if(i===3){if(a.stateNode.current.memoizedState.isDehydrated)return a.tag===3?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null);return eo=o,null}function Sa(o){switch(o){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Kn()){case Qn:return 1;case Eo:return 4;case Yr:case ai:return 16;case Ul:return 536870912;default:return 16}default:return 16}}var to=null,Xa=null,sl=null;function On(){if(sl)return sl;var o,a=Xa,i=a.length,u,g="value"in to?to.value:to.textContent,v=g.length;for(o=0;o<i&&a[o]===g[o];o++);var A=i-o;for(u=1;u<=A&&a[i-u]===g[v-u];u++);return sl=g.slice(o,1<u?1-u:void 0)}function Sr(o){var a=o.keyCode;return"charCode"in o?(o=o.charCode,o===0&&a===13&&(o=13)):o=a,o===10&&(o=13),32<=o||o===13?o:0}function ts(){return!0}function ha(){return!1}function no(o){function a(i,u,g,v,A){this._reactName=i,this._targetInst=g,this.type=u,this.nativeEvent=v,this.target=A,this.currentTarget=null;for(var V in o)o.hasOwnProperty(V)&&(i=o[V],this[V]=i?i(v):v[V]);return this.isDefaultPrevented=(v.defaultPrevented!=null?v.defaultPrevented:v.returnValue===!1)?ts:ha,this.isPropagationStopped=ha,this}return K(a.prototype,{preventDefault:function(){this.defaultPrevented=!0;var i=this.nativeEvent;i&&(i.preventDefault?i.preventDefault():typeof i.returnValue!="unknown"&&(i.returnValue=!1),this.isDefaultPrevented=ts)},stopPropagation:function(){var i=this.nativeEvent;i&&(i.stopPropagation?i.stopPropagation():typeof i.cancelBubble!="unknown"&&(i.cancelBubble=!0),this.isPropagationStopped=ts)},persist:function(){},isPersistent:ts}),a}var oo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(o){return o.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ya=no(oo),ka=K({},oo,{view:0,detail:0}),ns=no(ka),Za,Jl,Rn,ui=K({},ka,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Kl,button:0,buttons:0,relatedTarget:function(o){return o.relatedTarget===void 0?o.fromElement===o.srcElement?o.toElement:o.fromElement:o.relatedTarget},movementX:function(o){return"movementX"in o?o.movementX:(o!==Rn&&(Rn&&o.type==="mousemove"?(Za=o.screenX-Rn.screenX,Jl=o.screenY-Rn.screenY):Jl=Za=0,Rn=o),Za)},movementY:function(o){return"movementY"in o?o.movementY:Jl}}),ao=no(ui),Aa=K({},ui,{dataTransfer:0}),Uc=no(Aa),qu=K({},ka,{relatedTarget:0}),kr=no(qu),qd=K({},oo,{animationName:0,elapsedTime:0,pseudoElement:0}),os=no(qd),pi=K({},oo,{clipboardData:function(o){return"clipboardData"in o?o.clipboardData:window.clipboardData}}),qc=no(pi),Hu=K({},oo,{data:0}),il=no(Hu),Wu={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Mo={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Is={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Ar(o){var a=this.nativeEvent;return a.getModifierState?a.getModifierState(o):(o=Is[o])?!!a[o]:!1}function Kl(){return Ar}var Hc=K({},ka,{key:function(o){if(o.key){var a=Wu[o.key]||o.key;if(a!=="Unidentified")return a}return o.type==="keypress"?(o=Sr(o),o===13?"Enter":String.fromCharCode(o)):o.type==="keydown"||o.type==="keyup"?Mo[o.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Kl,charCode:function(o){return o.type==="keypress"?Sr(o):0},keyCode:function(o){return o.type==="keydown"||o.type==="keyup"?o.keyCode:0},which:function(o){return o.type==="keypress"?Sr(o):o.type==="keydown"||o.type==="keyup"?o.keyCode:0}}),Wt=no(Hc),Hd=K({},ui,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),fo=no(Hd),mi=K({},ka,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Kl}),as=no(mi),Ql=K({},oo,{propertyName:0,elapsedTime:0,pseudoElement:0}),hi=no(Ql),Xl=K({},ui,{deltaX:function(o){return"deltaX"in o?o.deltaX:"wheelDeltaX"in o?-o.wheelDeltaX:0},deltaY:function(o){return"deltaY"in o?o.deltaY:"wheelDeltaY"in o?-o.wheelDeltaY:"wheelDelta"in o?-o.wheelDelta:0},deltaZ:0,deltaMode:0}),Wd=no(Xl),er=[9,13,27,32],rs=h&&"CompositionEvent"in window,ll=null;h&&"documentMode"in document&&(ll=document.documentMode);var Gd=h&&"TextEvent"in window&&!ll,cl=h&&(!rs||ll&&8<ll&&11>=ll),ss=" ",dl=!1;function Er(o,a){switch(o){case"keyup":return er.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wc(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var mt=!1;function fi(o,a){switch(o){case"compositionend":return Wc(a);case"keypress":return a.which!==32?null:(dl=!0,ss);case"textInput":return o=a.data,o===ss&&dl?null:o;default:return null}}function Ea(o,a){if(mt)return o==="compositionend"||!rs&&Er(o,a)?(o=On(),sl=Xa=to=null,mt=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1<a.char.length)return a.char;if(a.which)return String.fromCharCode(a.which)}return null;case"compositionend":return cl&&a.locale!=="ko"?null:a.data;default:return null}}var Mr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Jd(o){var a=o&&o.nodeName&&o.nodeName.toLowerCase();return a==="input"?!!Mr[o.type]:a==="textarea"}function Yl(o,a,i,u){gr(u),a=Po(a,"onChange"),0<a.length&&(i=new Ya("onChange","change",null,i,u),o.push({event:i,listeners:a}))}var tr=null,is=null;function Kd(o){Si(o,0)}function Fn(o){var a=Lr(o);if(ge(a))return o}function go(o,a){if(o==="change")return a}var ro=!1;if(h){var Gc;if(h){var Ps="oninput"in document;if(!Ps){var Zl=document.createElement("div");Zl.setAttribute("oninput","return;"),Ps=typeof Zl.oninput=="function"}Gc=Ps}else Gc=!1;ro=Gc&&(!document.documentMode||9<document.documentMode)}function ct(){tr&&(tr.detachEvent("onpropertychange",Tn),is=tr=null)}function Tn(o){if(o.propertyName==="value"&&Fn(is)){var a=[];Yl(a,is,o,fr(o)),Ba(Kd,a)}}function ls(o,a,i){o==="focusin"?(ct(),tr=a,is=i,tr.attachEvent("onpropertychange",Tn)):o==="focusout"&&ct()}function ul(o){if(o==="selectionchange"||o==="keyup"||o==="keydown")return Fn(is)}function gi(o,a){if(o==="click")return Fn(a)}function Tr(o,a){if(o==="input"||o==="change")return Fn(a)}function _s(o,a){return o===a&&(o!==0||1/o===1/a)||o!==o&&a!==a}var hn=typeof Object.is=="function"?Object.is:_s;function To(o,a){if(hn(o,a))return!0;if(typeof o!="object"||o===null||typeof a!="object"||a===null)return!1;var i=Object.keys(o),u=Object.keys(a);if(i.length!==u.length)return!1;for(u=0;u<i.length;u++){var g=i[u];if(!f.call(a,g)||!hn(o[g],a[g]))return!1}return!0}function fa(o){for(;o&&o.firstChild;)o=o.firstChild;return o}function nr(o,a){var i=fa(o);o=0;for(var u;i;){if(i.nodeType===3){if(u=o+i.textContent.length,o<=a&&u>=a)return{node:i,offset:a-o};o=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=fa(i)}}function xi(o,a){return o&&a?o===a?!0:o&&o.nodeType===3?!1:a&&a.nodeType===3?xi(o,a.parentNode):"contains"in o?o.contains(a):o.compareDocumentPosition?!!(o.compareDocumentPosition(a)&16):!1:!1}function pl(){for(var o=window,a=it();a instanceof o.HTMLIFrameElement;){try{var i=typeof a.contentWindow.location.href=="string"}catch{i=!1}if(i)o=a.contentWindow;else break;a=it(o.document)}return a}function Ir(o){var a=o&&o.nodeName&&o.nodeName.toLowerCase();return a&&(a==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||a==="textarea"||o.contentEditable==="true")}function vi(o){var a=pl(),i=o.focusedElem,u=o.selectionRange;if(a!==i&&i&&i.ownerDocument&&xi(i.ownerDocument.documentElement,i)){if(u!==null&&Ir(i)){if(a=u.start,o=u.end,o===void 0&&(o=a),"selectionStart"in i)i.selectionStart=a,i.selectionEnd=Math.min(o,i.value.length);else if(o=(a=i.ownerDocument||document)&&a.defaultView||window,o.getSelection){o=o.getSelection();var g=i.textContent.length,v=Math.min(u.start,g);u=u.end===void 0?v:Math.min(u.end,g),!o.extend&&v>u&&(g=u,u=v,v=g),g=nr(i,v);var A=nr(i,u);g&&A&&(o.rangeCount!==1||o.anchorNode!==g.node||o.anchorOffset!==g.offset||o.focusNode!==A.node||o.focusOffset!==A.offset)&&(a=a.createRange(),a.setStart(g.node,g.offset),o.removeAllRanges(),v>u?(o.addRange(a),o.extend(A.node,A.offset)):(a.setEnd(A.node,A.offset),o.addRange(a)))}}for(a=[],o=i;o=o.parentNode;)o.nodeType===1&&a.push({element:o,left:o.scrollLeft,top:o.scrollTop});for(typeof i.focus=="function"&&i.focus(),i=0;i<a.length;i++)o=a[i],o.element.scrollLeft=o.left,o.element.scrollTop=o.top}}var yi=h&&"documentMode"in document&&11>=document.documentMode,Yo=null,Os=null,ga=null,Io=!1;function ji(o,a,i){var u=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;Io||Yo==null||Yo!==it(u)||(u=Yo,"selectionStart"in u&&Ir(u)?u={start:u.selectionStart,end:u.selectionEnd}:(u=(u.ownerDocument&&u.ownerDocument.defaultView||window).getSelection(),u={anchorNode:u.anchorNode,anchorOffset:u.anchorOffset,focusNode:u.focusNode,focusOffset:u.focusOffset}),ga&&To(ga,u)||(ga=u,u=Po(Os,"onSelect"),0<u.length&&(a=new Ya("onSelect","select",null,a,i),o.push({event:a,listeners:u}),a.target=Yo)))}function bi(o,a){var i={};return i[o.toLowerCase()]=a.toLowerCase(),i["Webkit"+o]="webkit"+a,i["Moz"+o]="moz"+a,i}var zn={animationend:bi("Animation","AnimationEnd"),animationiteration:bi("Animation","AnimationIteration"),animationstart:bi("Animation","AnimationStart"),transitionend:bi("Transition","TransitionEnd")},wi={},ec={};h&&(ec=document.createElement("div").style,"AnimationEvent"in window||(delete zn.animationend.animation,delete zn.animationiteration.animation,delete zn.animationstart.animation),"TransitionEvent"in window||delete zn.transitionend.transition);function Ni(o){if(wi[o])return wi[o];if(!zn[o])return o;var a=zn[o],i;for(i in a)if(a.hasOwnProperty(i)&&i in ec)return wi[o]=a[i];return o}var tc=Ni("animationend"),nc=Ni("animationiteration"),Jc=Ni("animationstart"),oc=Ni("transitionend"),At=new Map,Xt="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Gt(o,a){At.set(o,a),p(a,[o])}for(var Ci=0;Ci<Xt.length;Ci++){var ml=Xt[Ci],Pr=ml.toLowerCase(),_r=ml[0].toUpperCase()+ml.slice(1);Gt(Pr,"on"+_r)}Gt(tc,"onAnimationEnd"),Gt(nc,"onAnimationIteration"),Gt(Jc,"onAnimationStart"),Gt("dblclick","onDoubleClick"),Gt("focusin","onFocus"),Gt("focusout","onBlur"),Gt(oc,"onTransitionEnd"),m("onMouseEnter",["mouseout","mouseover"]),m("onMouseLeave",["mouseout","mouseover"]),m("onPointerEnter",["pointerout","pointerover"]),m("onPointerLeave",["pointerout","pointerover"]),p("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),p("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),p("onBeforeInput",["compositionend","keypress","textInput","paste"]),p("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),p("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),p("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ma="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),hl=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ma));function Qd(o,a,i){var u=o.type||"unknown-event";o.currentTarget=i,Jn(u,a,void 0,o),o.currentTarget=null}function Si(o,a){a=(a&4)!==0;for(var i=0;i<o.length;i++){var u=o[i],g=u.event;u=u.listeners;e:{var v=void 0;if(a)for(var A=u.length-1;0<=A;A--){var V=u[A],J=V.instance,pe=V.currentTarget;if(V=V.listener,J!==v&&g.isPropagationStopped())break e;Qd(g,V,pe),v=J}else for(A=0;A<u.length;A++){if(V=u[A],J=V.instance,pe=V.currentTarget,V=V.listener,J!==v&&g.isPropagationStopped())break e;Qd(g,V,pe),v=J}}}if(Xr)throw o=Ha,Xr=!1,Ha=null,o}function Tt(o,a){var i=a[ac];i===void 0&&(i=a[ac]=new Set);var u=o+"__bubble";i.has(u)||(Kc(a,o,2,!1),i.add(u))}function ki(o,a,i){var u=0;a&&(u|=4),Kc(i,o,u,a)}var or="_reactListening"+Math.random().toString(36).slice(2);function Rs(o){if(!o[or]){o[or]=!0,s.forEach(function(i){i!=="selectionchange"&&(hl.has(i)||ki(i,!1,o),ki(i,!0,o))});var a=o.nodeType===9?o:o.ownerDocument;a===null||a[or]||(a[or]=!0,ki("selectionchange",!1,a))}}function Kc(o,a,i,u){switch(Sa(a)){case 1:var g=Zn;break;case 4:g=Gl;break;default:g=ma}i=g.bind(null,a,i,o),g=void 0,!As||a!=="touchstart"&&a!=="touchmove"&&a!=="wheel"||(g=!0),u?g!==void 0?o.addEventListener(a,i,{capture:!0,passive:g}):o.addEventListener(a,i,!0):g!==void 0?o.addEventListener(a,i,{passive:g}):o.addEventListener(a,i,!1)}function jn(o,a,i,u,g){var v=u;if((a&1)===0&&(a&2)===0&&u!==null)e:for(;;){if(u===null)return;var A=u.tag;if(A===3||A===4){var V=u.stateNode.containerInfo;if(V===g||V.nodeType===8&&V.parentNode===g)break;if(A===4)for(A=u.return;A!==null;){var J=A.tag;if((J===3||J===4)&&(J=A.stateNode.containerInfo,J===g||J.nodeType===8&&J.parentNode===g))return;A=A.return}for(;V!==null;){if(A=Ia(V),A===null)return;if(J=A.tag,J===5||J===6){u=v=A;continue e}V=V.parentNode}}u=u.return}Ba(function(){var pe=v,Se=fr(i),Ae=[];e:{var Ne=At.get(o);if(Ne!==void 0){var $e=Ya,We=o;switch(o){case"keypress":if(Sr(i)===0)break e;case"keydown":case"keyup":$e=Wt;break;case"focusin":We="focus",$e=kr;break;case"focusout":We="blur",$e=kr;break;case"beforeblur":case"afterblur":$e=kr;break;case"click":if(i.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":$e=ao;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":$e=Uc;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":$e=as;break;case tc:case nc:case Jc:$e=os;break;case oc:$e=hi;break;case"scroll":$e=ns;break;case"wheel":$e=Wd;break;case"copy":case"cut":case"paste":$e=qc;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":$e=fo}var Ke=(a&4)!==0,Hn=!Ke&&o==="scroll",le=Ke?Ne!==null?Ne+"Capture":null:Ne;Ke=[];for(var Y=pe,de;Y!==null;){de=Y;var _e=de.stateNode;if(de.tag===5&&_e!==null&&(de=_e,le!==null&&(_e=Ua(Y,le),_e!=null&&Ke.push(jt(Y,_e,de)))),Hn)break;Y=Y.return}0<Ke.length&&(Ne=new $e(Ne,We,null,i,Se),Ae.push({event:Ne,listeners:Ke}))}}if((a&7)===0){e:{if(Ne=o==="mouseover"||o==="pointerover",$e=o==="mouseout"||o==="pointerout",Ne&&i!==Jo&&(We=i.relatedTarget||i.fromElement)&&(Ia(We)||We[sn]))break e;if(($e||Ne)&&(Ne=Se.window===Se?Se:(Ne=Se.ownerDocument)?Ne.defaultView||Ne.parentWindow:window,$e?(We=i.relatedTarget||i.toElement,$e=pe,We=We?Ia(We):null,We!==null&&(Hn=vt(We),We!==Hn||We.tag!==5&&We.tag!==6)&&(We=null)):($e=null,We=pe),$e!==We)){if(Ke=ao,_e="onMouseLeave",le="onMouseEnter",Y="mouse",(o==="pointerout"||o==="pointerover")&&(Ke=fo,_e="onPointerLeave",le="onPointerEnter",Y="pointer"),Hn=$e==null?Ne:Lr($e),de=We==null?Ne:Lr(We),Ne=new Ke(_e,Y+"leave",$e,i,Se),Ne.target=Hn,Ne.relatedTarget=de,_e=null,Ia(Se)===pe&&(Ke=new Ke(le,Y+"enter",We,i,Se),Ke.target=de,Ke.relatedTarget=Hn,_e=Ke),Hn=_e,$e&&We)t:{for(Ke=$e,le=We,Y=0,de=Ke;de;de=xa(de))Y++;for(de=0,_e=le;_e;_e=xa(_e))de++;for(;0<Y-de;)Ke=xa(Ke),Y--;for(;0<de-Y;)le=xa(le),de--;for(;Y--;){if(Ke===le||le!==null&&Ke===le.alternate)break t;Ke=xa(Ke),le=xa(le)}Ke=null}else Ke=null;$e!==null&&va(Ae,Ne,$e,Ke,!1),We!==null&&Hn!==null&&va(Ae,Hn,We,Ke,!0)}}e:{if(Ne=pe?Lr(pe):window,$e=Ne.nodeName&&Ne.nodeName.toLowerCase(),$e==="select"||$e==="input"&&Ne.type==="file")var Xe=go;else if(Jd(Ne))if(ro)Xe=Tr;else{Xe=ul;var dt=ls}else($e=Ne.nodeName)&&$e.toLowerCase()==="input"&&(Ne.type==="checkbox"||Ne.type==="radio")&&(Xe=gi);if(Xe&&(Xe=Xe(o,pe))){Yl(Ae,Xe,i,Se);break e}dt&&dt(o,Ne,pe),o==="focusout"&&(dt=Ne._wrapperState)&&dt.controlled&&Ne.type==="number"&&Qe(Ne,"number",Ne.value)}switch(dt=pe?Lr(pe):window,o){case"focusin":(Jd(dt)||dt.contentEditable==="true")&&(Yo=dt,Os=pe,ga=null);break;case"focusout":ga=Os=Yo=null;break;case"mousedown":Io=!0;break;case"contextmenu":case"mouseup":case"dragend":Io=!1,ji(Ae,i,Se);break;case"selectionchange":if(yi)break;case"keydown":case"keyup":ji(Ae,i,Se)}var ut;if(rs)e:{switch(o){case"compositionstart":var gt="onCompositionStart";break e;case"compositionend":gt="onCompositionEnd";break e;case"compositionupdate":gt="onCompositionUpdate";break e}gt=void 0}else mt?Er(o,i)&&(gt="onCompositionEnd"):o==="keydown"&&i.keyCode===229&&(gt="onCompositionStart");gt&&(cl&&i.locale!=="ko"&&(mt||gt!=="onCompositionStart"?gt==="onCompositionEnd"&&mt&&(ut=On()):(to=Se,Xa="value"in to?to.value:to.textContent,mt=!0)),dt=Po(pe,gt),0<dt.length&&(gt=new il(gt,o,null,i,Se),Ae.push({event:gt,listeners:dt}),ut?gt.data=ut:(ut=Wc(i),ut!==null&&(gt.data=ut)))),(ut=Gd?fi(o,i):Ea(o,i))&&(pe=Po(pe,"onBeforeInput"),0<pe.length&&(Se=new il("onBeforeInput","beforeinput",null,i,Se),Ae.push({event:Se,listeners:pe}),Se.data=ut))}Si(Ae,a)})}function jt(o,a,i){return{instance:o,listener:a,currentTarget:i}}function Po(o,a){for(var i=a+"Capture",u=[];o!==null;){var g=o,v=g.stateNode;g.tag===5&&v!==null&&(g=v,v=Ua(o,i),v!=null&&u.unshift(jt(o,v,g)),v=Ua(o,a),v!=null&&u.push(jt(o,v,g))),o=o.return}return u}function xa(o){if(o===null)return null;do o=o.return;while(o&&o.tag!==5);return o||null}function va(o,a,i,u,g){for(var v=a._reactName,A=[];i!==null&&i!==u;){var V=i,J=V.alternate,pe=V.stateNode;if(J!==null&&J===u)break;V.tag===5&&pe!==null&&(V=pe,g?(J=Ua(i,v),J!=null&&A.unshift(jt(i,J,V))):g||(J=Ua(i,v),J!=null&&A.push(jt(i,J,V)))),i=i.return}A.length!==0&&o.push({event:a,listeners:A})}var Or=/\r\n?/g,_o=/\u0000|\uFFFD/g;function Qc(o){return(typeof o=="string"?o:""+o).replace(Or,`
38
+ `).replace(_o,"")}function Fs(o,a,i){if(a=Qc(a),Qc(o)!==a&&i)throw Error(r(425))}function Jt(){}var Rr=null,fl=null;function Ln(o,a){return o==="textarea"||o==="noscript"||typeof a.children=="string"||typeof a.children=="number"||typeof a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var Fr=typeof setTimeout=="function"?setTimeout:void 0,cs=typeof clearTimeout=="function"?clearTimeout:void 0,xo=typeof Promise=="function"?Promise:void 0,Ai=typeof queueMicrotask=="function"?queueMicrotask:typeof xo<"u"?function(o){return xo.resolve(null).then(o).catch(Xd)}:Fr;function Xd(o){setTimeout(function(){throw o})}function ya(o,a){var i=a,u=0;do{var g=i.nextSibling;if(o.removeChild(i),g&&g.nodeType===8)if(i=g.data,i==="/$"){if(u===0){o.removeChild(g),di(a);return}u--}else i!=="$"&&i!=="$?"&&i!=="$!"||u++;i=g}while(i);di(a)}function zr(o){for(;o!=null;o=o.nextSibling){var a=o.nodeType;if(a===1||a===3)break;if(a===8){if(a=o.data,a==="$"||a==="$!"||a==="$?")break;if(a==="/$")return null}}return o}function ar(o){o=o.previousSibling;for(var a=0;o;){if(o.nodeType===8){var i=o.data;if(i==="$"||i==="$!"||i==="$?"){if(a===0)return o;a--}else i==="/$"&&a++}o=o.previousSibling}return null}var Ei=Math.random().toString(36).slice(2),rn="__reactFiber$"+Ei,zs="__reactProps$"+Ei,sn="__reactContainer$"+Ei,ac="__reactEvents$"+Ei,Ta="__reactListeners$"+Ei,rc="__reactHandles$"+Ei;function Ia(o){var a=o[rn];if(a)return a;for(var i=o.parentNode;i;){if(a=i[sn]||i[rn]){if(i=a.alternate,a.child!==null||i!==null&&i.child!==null)for(o=ar(o);o!==null;){if(i=o[rn])return i;o=ar(o)}return a}o=i,i=o.parentNode}return null}function Oo(o){return o=o[rn]||o[sn],!o||o.tag!==5&&o.tag!==6&&o.tag!==13&&o.tag!==3?null:o}function Lr(o){if(o.tag===5||o.tag===6)return o.stateNode;throw Error(r(33))}function rr(o){return o[zs]||null}var gl=[],Pa=-1;function _a(o){return{current:o}}function Ee(o){0>Pa||(o.current=gl[Pa],gl[Pa]=null,Pa--)}function It(o,a){Pa++,gl[Pa]=o.current,o.current=a}var ja={},Dn=_a(ja),$n=_a(!1),fn=ja;function Kt(o,a){var i=o.type.contextTypes;if(!i)return ja;var u=o.stateNode;if(u&&u.__reactInternalMemoizedUnmaskedChildContext===a)return u.__reactInternalMemoizedMaskedChildContext;var g={},v;for(v in i)g[v]=a[v];return u&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=a,o.__reactInternalMemoizedMaskedChildContext=g),g}function In(o){return o=o.childContextTypes,o!=null}function Sn(){Ee($n),Ee(Dn)}function ds(o,a,i){if(Dn.current!==ja)throw Error(r(168));It(Dn,a),It($n,i)}function Xc(o,a,i){var u=o.stateNode;if(a=a.childContextTypes,typeof u.getChildContext!="function")return i;u=u.getChildContext();for(var g in u)if(!(g in a))throw Error(r(108,Oe(o)||"Unknown",g));return K({},i,u)}function us(o){return o=(o=o.stateNode)&&o.__reactInternalMemoizedMergedChildContext||ja,fn=Dn.current,It(Dn,o),It($n,$n.current),!0}function xl(o,a,i){var u=o.stateNode;if(!u)throw Error(r(169));i?(o=Xc(o,a,fn),u.__reactInternalMemoizedMergedChildContext=o,Ee($n),Ee(Dn),It(Dn,o)):Ee($n),It($n,i)}var Oa=null,vl=!1,sc=!1;function ic(o){Oa===null?Oa=[o]:Oa.push(o)}function Zo(o){vl=!0,ic(o)}function sr(){if(!sc&&Oa!==null){sc=!0;var o=0,a=yt;try{var i=Oa;for(yt=1;o<i.length;o++){var u=i[o];do u=u(!0);while(u!==null)}Oa=null,vl=!1}catch(g){throw Oa!==null&&(Oa=Oa.slice(o+1)),Ms(Qn,sr),g}finally{yt=a,sc=!1}}return null}var ps=[],vo=0,Mi=null,Ls=0,Ro=[],Lt=0,_t=null,ea=1,ir="";function Ot(o,a){ps[vo++]=Ls,ps[vo++]=Mi,Mi=o,Ls=a}function Qt(o,a,i){Ro[Lt++]=ea,Ro[Lt++]=ir,Ro[Lt++]=_t,_t=o;var u=ea;o=ir;var g=32-Fe(u)-1;u&=~(1<<g),i+=1;var v=32-Fe(a)+g;if(30<v){var A=g-g%5;v=(u&(1<<A)-1).toString(32),u>>=A,g-=A,ea=1<<32-Fe(a)+g|i<<g|u,ir=v+o}else ea=1<<v|i<<g|u,ir=o}function Ds(o){o.return!==null&&(Ot(o,1),Qt(o,1,0))}function yl(o){for(;o===Mi;)Mi=ps[--vo],ps[vo]=null,Ls=ps[--vo],ps[vo]=null;for(;o===_t;)_t=Ro[--Lt],Ro[Lt]=null,ir=Ro[--Lt],Ro[Lt]=null,ea=Ro[--Lt],Ro[Lt]=null}var bn=null,so=null,Rt=!1,yo=null;function ta(o,a){var i=ws(5,null,null,0);i.elementType="DELETED",i.stateNode=a,i.return=o,a=o.deletions,a===null?(o.deletions=[i],o.flags|=16):a.push(i)}function lc(o,a){switch(o.tag){case 5:var i=o.type;return a=a.nodeType!==1||i.toLowerCase()!==a.nodeName.toLowerCase()?null:a,a!==null?(o.stateNode=a,bn=o,so=zr(a.firstChild),!0):!1;case 6:return a=o.pendingProps===""||a.nodeType!==3?null:a,a!==null?(o.stateNode=a,bn=o,so=null,!0):!1;case 13:return a=a.nodeType!==8?null:a,a!==null?(i=_t!==null?{id:ea,overflow:ir}:null,o.memoizedState={dehydrated:a,treeContext:i,retryLane:1073741824},i=ws(18,null,null,0),i.stateNode=a,i.return=o,o.child=i,bn=o,so=null,!0):!1;default:return!1}}function jl(o){return(o.mode&1)!==0&&(o.flags&128)===0}function Dr(o){if(Rt){var a=so;if(a){var i=a;if(!lc(o,a)){if(jl(o))throw Error(r(418));a=zr(i.nextSibling);var u=bn;a&&lc(o,a)?ta(u,i):(o.flags=o.flags&-4097|2,Rt=!1,bn=o)}}else{if(jl(o))throw Error(r(418));o.flags=o.flags&-4097|2,Rt=!1,bn=o}}}function jo(o){for(o=o.return;o!==null&&o.tag!==5&&o.tag!==3&&o.tag!==13;)o=o.return;bn=o}function Ti(o){if(o!==bn)return!1;if(!Rt)return jo(o),Rt=!0,!1;var a;if((a=o.tag!==3)&&!(a=o.tag!==5)&&(a=o.type,a=a!=="head"&&a!=="body"&&!Ln(o.type,o.memoizedProps)),a&&(a=so)){if(jl(o))throw cc(),Error(r(418));for(;a;)ta(o,a),a=zr(a.nextSibling)}if(jo(o),o.tag===13){if(o=o.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(317));e:{for(o=o.nextSibling,a=0;o;){if(o.nodeType===8){var i=o.data;if(i==="/$"){if(a===0){so=zr(o.nextSibling);break e}a--}else i!=="$"&&i!=="$!"&&i!=="$?"||a++}o=o.nextSibling}so=null}}else so=bn?zr(o.stateNode.nextSibling):null;return!0}function cc(){for(var o=so;o;)o=zr(o.nextSibling)}function ms(){so=bn=null,Rt=!1}function bl(o){yo===null?yo=[o]:yo.push(o)}var dc=F.ReactCurrentBatchConfig;function hs(o,a,i){if(o=i.ref,o!==null&&typeof o!="function"&&typeof o!="object"){if(i._owner){if(i=i._owner,i){if(i.tag!==1)throw Error(r(309));var u=i.stateNode}if(!u)throw Error(r(147,o));var g=u,v=""+o;return a!==null&&a.ref!==null&&typeof a.ref=="function"&&a.ref._stringRef===v?a.ref:(a=function(A){var V=g.refs;A===null?delete V[v]:V[v]=A},a._stringRef=v,a)}if(typeof o!="string")throw Error(r(284));if(!i._owner)throw Error(r(290,o))}return o}function $r(o,a){throw o=Object.prototype.toString.call(a),Error(r(31,o==="[object Object]"?"object with keys {"+Object.keys(a).join(", ")+"}":o))}function Yc(o){var a=o._init;return a(o._payload)}function uc(o){function a(le,Y){if(o){var de=le.deletions;de===null?(le.deletions=[Y],le.flags|=16):de.push(Y)}}function i(le,Y){if(!o)return null;for(;Y!==null;)a(le,Y),Y=Y.sibling;return null}function u(le,Y){for(le=new Map;Y!==null;)Y.key!==null?le.set(Y.key,Y):le.set(Y.index,Y),Y=Y.sibling;return le}function g(le,Y){return le=Ec(le,Y),le.index=0,le.sibling=null,le}function v(le,Y,de){return le.index=de,o?(de=le.alternate,de!==null?(de=de.index,de<Y?(le.flags|=2,Y):de):(le.flags|=2,Y)):(le.flags|=1048576,Y)}function A(le){return o&&le.alternate===null&&(le.flags|=2),le}function V(le,Y,de,_e){return Y===null||Y.tag!==6?(Y=Dh(de,le.mode,_e),Y.return=le,Y):(Y=g(Y,de),Y.return=le,Y)}function J(le,Y,de,_e){var Xe=de.type;return Xe===ae?Se(le,Y,de.props.children,_e,de.key):Y!==null&&(Y.elementType===Xe||typeof Xe=="object"&&Xe!==null&&Xe.$$typeof===q&&Yc(Xe)===Y.type)?(_e=g(Y,de.props),_e.ref=hs(le,Y,de),_e.return=le,_e):(_e=Cm(de.type,de.key,de.props,null,le.mode,_e),_e.ref=hs(le,Y,de),_e.return=le,_e)}function pe(le,Y,de,_e){return Y===null||Y.tag!==4||Y.stateNode.containerInfo!==de.containerInfo||Y.stateNode.implementation!==de.implementation?(Y=$h(de,le.mode,_e),Y.return=le,Y):(Y=g(Y,de.children||[]),Y.return=le,Y)}function Se(le,Y,de,_e,Xe){return Y===null||Y.tag!==7?(Y=Td(de,le.mode,_e,Xe),Y.return=le,Y):(Y=g(Y,de),Y.return=le,Y)}function Ae(le,Y,de){if(typeof Y=="string"&&Y!==""||typeof Y=="number")return Y=Dh(""+Y,le.mode,de),Y.return=le,Y;if(typeof Y=="object"&&Y!==null){switch(Y.$$typeof){case Z:return de=Cm(Y.type,Y.key,Y.props,null,le.mode,de),de.ref=hs(le,null,Y),de.return=le,de;case oe:return Y=$h(Y,le.mode,de),Y.return=le,Y;case q:var _e=Y._init;return Ae(le,_e(Y._payload),de)}if(xt(Y)||$(Y))return Y=Td(Y,le.mode,de,null),Y.return=le,Y;$r(le,Y)}return null}function Ne(le,Y,de,_e){var Xe=Y!==null?Y.key:null;if(typeof de=="string"&&de!==""||typeof de=="number")return Xe!==null?null:V(le,Y,""+de,_e);if(typeof de=="object"&&de!==null){switch(de.$$typeof){case Z:return de.key===Xe?J(le,Y,de,_e):null;case oe:return de.key===Xe?pe(le,Y,de,_e):null;case q:return Xe=de._init,Ne(le,Y,Xe(de._payload),_e)}if(xt(de)||$(de))return Xe!==null?null:Se(le,Y,de,_e,null);$r(le,de)}return null}function $e(le,Y,de,_e,Xe){if(typeof _e=="string"&&_e!==""||typeof _e=="number")return le=le.get(de)||null,V(Y,le,""+_e,Xe);if(typeof _e=="object"&&_e!==null){switch(_e.$$typeof){case Z:return le=le.get(_e.key===null?de:_e.key)||null,J(Y,le,_e,Xe);case oe:return le=le.get(_e.key===null?de:_e.key)||null,pe(Y,le,_e,Xe);case q:var dt=_e._init;return $e(le,Y,de,dt(_e._payload),Xe)}if(xt(_e)||$(_e))return le=le.get(de)||null,Se(Y,le,_e,Xe,null);$r(Y,_e)}return null}function We(le,Y,de,_e){for(var Xe=null,dt=null,ut=Y,gt=Y=0,Uo=null;ut!==null&&gt<de.length;gt++){ut.index>gt?(Uo=ut,ut=null):Uo=ut.sibling;var Ft=Ne(le,ut,de[gt],_e);if(Ft===null){ut===null&&(ut=Uo);break}o&&ut&&Ft.alternate===null&&a(le,ut),Y=v(Ft,Y,gt),dt===null?Xe=Ft:dt.sibling=Ft,dt=Ft,ut=Uo}if(gt===de.length)return i(le,ut),Rt&&Ot(le,gt),Xe;if(ut===null){for(;gt<de.length;gt++)ut=Ae(le,de[gt],_e),ut!==null&&(Y=v(ut,Y,gt),dt===null?Xe=ut:dt.sibling=ut,dt=ut);return Rt&&Ot(le,gt),Xe}for(ut=u(le,ut);gt<de.length;gt++)Uo=$e(ut,le,gt,de[gt],_e),Uo!==null&&(o&&Uo.alternate!==null&&ut.delete(Uo.key===null?gt:Uo.key),Y=v(Uo,Y,gt),dt===null?Xe=Uo:dt.sibling=Uo,dt=Uo);return o&&ut.forEach(function(Mc){return a(le,Mc)}),Rt&&Ot(le,gt),Xe}function Ke(le,Y,de,_e){var Xe=$(de);if(typeof Xe!="function")throw Error(r(150));if(de=Xe.call(de),de==null)throw Error(r(151));for(var dt=Xe=null,ut=Y,gt=Y=0,Uo=null,Ft=de.next();ut!==null&&!Ft.done;gt++,Ft=de.next()){ut.index>gt?(Uo=ut,ut=null):Uo=ut.sibling;var Mc=Ne(le,ut,Ft.value,_e);if(Mc===null){ut===null&&(ut=Uo);break}o&&ut&&Mc.alternate===null&&a(le,ut),Y=v(Mc,Y,gt),dt===null?Xe=Mc:dt.sibling=Mc,dt=Mc,ut=Uo}if(Ft.done)return i(le,ut),Rt&&Ot(le,gt),Xe;if(ut===null){for(;!Ft.done;gt++,Ft=de.next())Ft=Ae(le,Ft.value,_e),Ft!==null&&(Y=v(Ft,Y,gt),dt===null?Xe=Ft:dt.sibling=Ft,dt=Ft);return Rt&&Ot(le,gt),Xe}for(ut=u(le,ut);!Ft.done;gt++,Ft=de.next())Ft=$e(ut,le,gt,Ft.value,_e),Ft!==null&&(o&&Ft.alternate!==null&&ut.delete(Ft.key===null?gt:Ft.key),Y=v(Ft,Y,gt),dt===null?Xe=Ft:dt.sibling=Ft,dt=Ft);return o&&ut.forEach(function(ob){return a(le,ob)}),Rt&&Ot(le,gt),Xe}function Hn(le,Y,de,_e){if(typeof de=="object"&&de!==null&&de.type===ae&&de.key===null&&(de=de.props.children),typeof de=="object"&&de!==null){switch(de.$$typeof){case Z:e:{for(var Xe=de.key,dt=Y;dt!==null;){if(dt.key===Xe){if(Xe=de.type,Xe===ae){if(dt.tag===7){i(le,dt.sibling),Y=g(dt,de.props.children),Y.return=le,le=Y;break e}}else if(dt.elementType===Xe||typeof Xe=="object"&&Xe!==null&&Xe.$$typeof===q&&Yc(Xe)===dt.type){i(le,dt.sibling),Y=g(dt,de.props),Y.ref=hs(le,dt,de),Y.return=le,le=Y;break e}i(le,dt);break}else a(le,dt);dt=dt.sibling}de.type===ae?(Y=Td(de.props.children,le.mode,_e,de.key),Y.return=le,le=Y):(_e=Cm(de.type,de.key,de.props,null,le.mode,_e),_e.ref=hs(le,Y,de),_e.return=le,le=_e)}return A(le);case oe:e:{for(dt=de.key;Y!==null;){if(Y.key===dt)if(Y.tag===4&&Y.stateNode.containerInfo===de.containerInfo&&Y.stateNode.implementation===de.implementation){i(le,Y.sibling),Y=g(Y,de.children||[]),Y.return=le,le=Y;break e}else{i(le,Y);break}else a(le,Y);Y=Y.sibling}Y=$h(de,le.mode,_e),Y.return=le,le=Y}return A(le);case q:return dt=de._init,Hn(le,Y,dt(de._payload),_e)}if(xt(de))return We(le,Y,de,_e);if($(de))return Ke(le,Y,de,_e);$r(le,de)}return typeof de=="string"&&de!==""||typeof de=="number"?(de=""+de,Y!==null&&Y.tag===6?(i(le,Y.sibling),Y=g(Y,de),Y.return=le,le=Y):(i(le,Y),Y=Dh(de,le.mode,_e),Y.return=le,le=Y),A(le)):i(le,Y)}return Hn}var fs=uc(!0),Zc=uc(!1),Ra=_a(null),$s=null,Vs=null,Ii=null;function pc(){Ii=Vs=$s=null}function wl(o){var a=Ra.current;Ee(Ra),o._currentValue=a}function mc(o,a,i){for(;o!==null;){var u=o.alternate;if((o.childLanes&a)!==a?(o.childLanes|=a,u!==null&&(u.childLanes|=a)):u!==null&&(u.childLanes&a)!==a&&(u.childLanes|=a),o===i)break;o=o.return}}function Bs(o,a){$s=o,Ii=Vs=null,o=o.dependencies,o!==null&&o.firstContext!==null&&((o.lanes&a)!==0&&(na=!0),o.firstContext=null)}function Fo(o){var a=o._currentValue;if(Ii!==o)if(o={context:o,memoizedValue:a,next:null},Vs===null){if($s===null)throw Error(r(308));Vs=o,$s.dependencies={lanes:0,firstContext:o}}else Vs=Vs.next=o;return a}var Vr=null;function gs(o){Vr===null?Vr=[o]:Vr.push(o)}function Nl(o,a,i,u){var g=a.interleaved;return g===null?(i.next=i,gs(a)):(i.next=g.next,g.next=i),a.interleaved=i,zo(o,u)}function zo(o,a){o.lanes|=a;var i=o.alternate;for(i!==null&&(i.lanes|=a),i=o,o=o.return;o!==null;)o.childLanes|=a,i=o.alternate,i!==null&&(i.childLanes|=a),i=o,o=o.return;return i.tag===3?i.stateNode:null}var Fa=!1;function Cl(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Sl(o,a){o=o.updateQueue,a.updateQueue===o&&(a.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,effects:o.effects})}function lr(o,a){return{eventTime:o,lane:a,tag:0,payload:null,callback:null,next:null}}function Br(o,a,i){var u=o.updateQueue;if(u===null)return null;if(u=u.shared,(Et&2)!==0){var g=u.pending;return g===null?a.next=a:(a.next=g.next,g.next=a),u.pending=a,zo(o,i)}return g=u.interleaved,g===null?(a.next=a,gs(u)):(a.next=g.next,g.next=a),u.interleaved=a,zo(o,i)}function kl(o,a,i){if(a=a.updateQueue,a!==null&&(a=a.shared,(i&4194240)!==0)){var u=a.lanes;u&=o.pendingLanes,i|=u,a.lanes=i,an(o,i)}}function ed(o,a){var i=o.updateQueue,u=o.alternate;if(u!==null&&(u=u.updateQueue,i===u)){var g=null,v=null;if(i=i.firstBaseUpdate,i!==null){do{var A={eventTime:i.eventTime,lane:i.lane,tag:i.tag,payload:i.payload,callback:i.callback,next:null};v===null?g=v=A:v=v.next=A,i=i.next}while(i!==null);v===null?g=v=a:v=v.next=a}else g=v=a;i={baseState:u.baseState,firstBaseUpdate:g,lastBaseUpdate:v,shared:u.shared,effects:u.effects},o.updateQueue=i;return}o=i.lastBaseUpdate,o===null?i.firstBaseUpdate=a:o.next=a,i.lastBaseUpdate=a}function Vn(o,a,i,u){var g=o.updateQueue;Fa=!1;var v=g.firstBaseUpdate,A=g.lastBaseUpdate,V=g.shared.pending;if(V!==null){g.shared.pending=null;var J=V,pe=J.next;J.next=null,A===null?v=pe:A.next=pe,A=J;var Se=o.alternate;Se!==null&&(Se=Se.updateQueue,V=Se.lastBaseUpdate,V!==A&&(V===null?Se.firstBaseUpdate=pe:V.next=pe,Se.lastBaseUpdate=J))}if(v!==null){var Ae=g.baseState;A=0,Se=pe=J=null,V=v;do{var Ne=V.lane,$e=V.eventTime;if((u&Ne)===Ne){Se!==null&&(Se=Se.next={eventTime:$e,lane:0,tag:V.tag,payload:V.payload,callback:V.callback,next:null});e:{var We=o,Ke=V;switch(Ne=a,$e=i,Ke.tag){case 1:if(We=Ke.payload,typeof We=="function"){Ae=We.call($e,Ae,Ne);break e}Ae=We;break e;case 3:We.flags=We.flags&-65537|128;case 0:if(We=Ke.payload,Ne=typeof We=="function"?We.call($e,Ae,Ne):We,Ne==null)break e;Ae=K({},Ae,Ne);break e;case 2:Fa=!0}}V.callback!==null&&V.lane!==0&&(o.flags|=64,Ne=g.effects,Ne===null?g.effects=[V]:Ne.push(V))}else $e={eventTime:$e,lane:Ne,tag:V.tag,payload:V.payload,callback:V.callback,next:null},Se===null?(pe=Se=$e,J=Ae):Se=Se.next=$e,A|=Ne;if(V=V.next,V===null){if(V=g.shared.pending,V===null)break;Ne=V,V=Ne.next,Ne.next=null,g.lastBaseUpdate=Ne,g.shared.pending=null}}while(!0);if(Se===null&&(J=Ae),g.baseState=J,g.firstBaseUpdate=pe,g.lastBaseUpdate=Se,a=g.shared.interleaved,a!==null){g=a;do A|=g.lane,g=g.next;while(g!==a)}else v===null&&(g.shared.lanes=0);Vi|=A,o.lanes=A,o.memoizedState=Ae}}function cr(o,a,i){if(o=a.effects,a.effects=null,o!==null)for(a=0;a<o.length;a++){var u=o[a],g=u.callback;if(g!==null){if(u.callback=null,u=i,typeof g!="function")throw Error(r(191,g));g.call(u)}}}var bo={},Lo=_a(bo),Pi=_a(bo),Us=_a(bo);function Ur(o){if(o===bo)throw Error(r(174));return o}function hc(o,a){switch(It(Us,a),It(Pi,o),It(Lo,bo),o=a.nodeType,o){case 9:case 11:a=(a=a.documentElement)?a.namespaceURI:Le(null,"");break;default:o=o===8?a.parentNode:a,a=o.namespaceURI||null,o=o.tagName,a=Le(a,o)}Ee(Lo),It(Lo,a)}function xs(){Ee(Lo),Ee(Pi),Ee(Us)}function fc(o){Ur(Us.current);var a=Ur(Lo.current),i=Le(a,o.type);a!==i&&(It(Pi,o),It(Lo,i))}function Al(o){Pi.current===o&&(Ee(Lo),Ee(Pi))}var Yt=_a(0);function El(o){for(var a=o;a!==null;){if(a.tag===13){var i=a.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data==="$?"||i.data==="$!"))return a}else if(a.tag===19&&a.memoizedProps.revealOrder!==void 0){if((a.flags&128)!==0)return a}else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===o)break;for(;a.sibling===null;){if(a.return===null||a.return===o)return null;a=a.return}a.sibling.return=a.return,a=a.sibling}return null}var gc=[];function xc(){for(var o=0;o<gc.length;o++)gc[o]._workInProgressVersionPrimary=null;gc.length=0}var Ml=F.ReactCurrentDispatcher,vc=F.ReactCurrentBatchConfig,Do=0,Zt=null,gn=null,wn=null,vs=!1,qs=!1,_i=0,td=0;function Bn(){throw Error(r(321))}function Tl(o,a){if(a===null)return!1;for(var i=0;i<a.length&&i<o.length;i++)if(!hn(o[i],a[i]))return!1;return!0}function Oi(o,a,i,u,g,v){if(Do=v,Zt=a,a.memoizedState=null,a.updateQueue=null,a.lanes=0,Ml.current=o===null||o.memoizedState===null?ud:pd,o=i(u,g),qs){v=0;do{if(qs=!1,_i=0,25<=v)throw Error(r(301));v+=1,wn=gn=null,a.updateQueue=null,Ml.current=Yd,o=i(u,g)}while(qs)}if(Ml.current=wo,a=gn!==null&&gn.next!==null,Do=0,wn=gn=Zt=null,vs=!1,a)throw Error(r(300));return o}function Il(){var o=_i!==0;return _i=0,o}function za(){var o={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return wn===null?Zt.memoizedState=wn=o:wn=wn.next=o,wn}function io(){if(gn===null){var o=Zt.alternate;o=o!==null?o.memoizedState:null}else o=gn.next;var a=wn===null?Zt.memoizedState:wn.next;if(a!==null)wn=a,gn=o;else{if(o===null)throw Error(r(310));gn=o,o={memoizedState:gn.memoizedState,baseState:gn.baseState,baseQueue:gn.baseQueue,queue:gn.queue,next:null},wn===null?Zt.memoizedState=wn=o:wn=wn.next=o}return wn}function Ri(o,a){return typeof a=="function"?a(o):a}function yc(o){var a=io(),i=a.queue;if(i===null)throw Error(r(311));i.lastRenderedReducer=o;var u=gn,g=u.baseQueue,v=i.pending;if(v!==null){if(g!==null){var A=g.next;g.next=v.next,v.next=A}u.baseQueue=g=v,i.pending=null}if(g!==null){v=g.next,u=u.baseState;var V=A=null,J=null,pe=v;do{var Se=pe.lane;if((Do&Se)===Se)J!==null&&(J=J.next={lane:0,action:pe.action,hasEagerState:pe.hasEagerState,eagerState:pe.eagerState,next:null}),u=pe.hasEagerState?pe.eagerState:o(u,pe.action);else{var Ae={lane:Se,action:pe.action,hasEagerState:pe.hasEagerState,eagerState:pe.eagerState,next:null};J===null?(V=J=Ae,A=u):J=J.next=Ae,Zt.lanes|=Se,Vi|=Se}pe=pe.next}while(pe!==null&&pe!==v);J===null?A=u:J.next=V,hn(u,a.memoizedState)||(na=!0),a.memoizedState=u,a.baseState=A,a.baseQueue=J,i.lastRenderedState=u}if(o=i.interleaved,o!==null){g=o;do v=g.lane,Zt.lanes|=v,Vi|=v,g=g.next;while(g!==o)}else g===null&&(i.lanes=0);return[a.memoizedState,i.dispatch]}function jc(o){var a=io(),i=a.queue;if(i===null)throw Error(r(311));i.lastRenderedReducer=o;var u=i.dispatch,g=i.pending,v=a.memoizedState;if(g!==null){i.pending=null;var A=g=g.next;do v=o(v,A.action),A=A.next;while(A!==g);hn(v,a.memoizedState)||(na=!0),a.memoizedState=v,a.baseQueue===null&&(a.baseState=v),i.lastRenderedState=v}return[v,u]}function nd(){}function od(o,a){var i=Zt,u=io(),g=a(),v=!hn(u.memoizedState,g);if(v&&(u.memoizedState=g,na=!0),u=u.queue,_l(sd.bind(null,i,u,o),[o]),u.getSnapshot!==a||v||wn!==null&&wn.memoizedState.tag&1){if(i.flags|=2048,qr(9,rd.bind(null,i,u,g,a),void 0,null),co===null)throw Error(r(349));(Do&30)!==0||ad(i,a,g)}return g}function ad(o,a,i){o.flags|=16384,o={getSnapshot:a,value:i},a=Zt.updateQueue,a===null?(a={lastEffect:null,stores:null},Zt.updateQueue=a,a.stores=[o]):(i=a.stores,i===null?a.stores=[o]:i.push(o))}function rd(o,a,i,u){a.value=i,a.getSnapshot=u,id(a)&&xn(o)}function sd(o,a,i){return i(function(){id(a)&&xn(o)})}function id(o){var a=o.getSnapshot;o=o.value;try{var i=a();return!hn(o,i)}catch{return!0}}function xn(o){var a=zo(o,1);a!==null&&pr(a,o,1,-1)}function vn(o){var a=za();return typeof o=="function"&&(o=o()),a.memoizedState=a.baseState=o,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ri,lastRenderedState:o},a.queue=o,o=o.dispatch=tn.bind(null,Zt,o),[a.memoizedState,o]}function qr(o,a,i,u){return o={tag:o,create:a,destroy:i,deps:u,next:null},a=Zt.updateQueue,a===null?(a={lastEffect:null,stores:null},Zt.updateQueue=a,a.lastEffect=o.next=o):(i=a.lastEffect,i===null?a.lastEffect=o.next=o:(u=i.next,i.next=o,o.next=u,a.lastEffect=o)),o}function ld(){return io().memoizedState}function Pl(o,a,i,u){var g=za();Zt.flags|=o,g.memoizedState=qr(1|a,i,void 0,u===void 0?null:u)}function Fi(o,a,i,u){var g=io();u=u===void 0?null:u;var v=void 0;if(gn!==null){var A=gn.memoizedState;if(v=A.destroy,u!==null&&Tl(u,A.deps)){g.memoizedState=qr(a,i,v,u);return}}Zt.flags|=o,g.memoizedState=qr(1|a,i,v,u)}function cd(o,a){return Pl(8390656,8,o,a)}function _l(o,a){return Fi(2048,8,o,a)}function bc(o,a){return Fi(4,2,o,a)}function dd(o,a){return Fi(4,4,o,a)}function c(o,a){if(typeof a=="function")return o=o(),a(o),function(){a(null)};if(a!=null)return o=o(),a.current=o,function(){a.current=null}}function S(o,a,i){return i=i!=null?i.concat([o]):null,Fi(4,4,c.bind(null,a,o),i)}function _(){}function H(o,a){var i=io();a=a===void 0?null:a;var u=i.memoizedState;return u!==null&&a!==null&&Tl(a,u[1])?u[0]:(i.memoizedState=[o,a],o)}function je(o,a){var i=io();a=a===void 0?null:a;var u=i.memoizedState;return u!==null&&a!==null&&Tl(a,u[1])?u[0]:(o=o(),i.memoizedState=[o,a],o)}function ke(o,a,i){return(Do&21)===0?(o.baseState&&(o.baseState=!1,na=!0),o.memoizedState=i):(hn(i,a)||(i=ql(),Zt.lanes|=i,Vi|=i,o.baseState=!0),a)}function Je(o,a){var i=yt;yt=i!==0&&4>i?i:4,o(!0);var u=vc.transition;vc.transition={};try{o(!1),a()}finally{yt=i,vc.transition=u}}function pt(){return io().memoizedState}function bt(o,a,i){var u=Ks(o);if(i={lane:u,action:i,hasEagerState:!1,eagerState:null,next:null},Un(o))ot(a,i);else if(i=Nl(o,a,i,u),i!==null){var g=Bo();pr(i,o,u,g),ln(i,a,u)}}function tn(o,a,i){var u=Ks(o),g={lane:u,action:i,hasEagerState:!1,eagerState:null,next:null};if(Un(o))ot(a,g);else{var v=o.alternate;if(o.lanes===0&&(v===null||v.lanes===0)&&(v=a.lastRenderedReducer,v!==null))try{var A=a.lastRenderedState,V=v(A,i);if(g.hasEagerState=!0,g.eagerState=V,hn(V,A)){var J=a.interleaved;J===null?(g.next=g,gs(a)):(g.next=J.next,J.next=g),a.interleaved=g;return}}catch{}finally{}i=Nl(o,a,g,u),i!==null&&(g=Bo(),pr(i,o,u,g),ln(i,a,u))}}function Un(o){var a=o.alternate;return o===Zt||a!==null&&a===Zt}function ot(o,a){qs=vs=!0;var i=o.pending;i===null?a.next=a:(a.next=i.next,i.next=a),o.pending=a}function ln(o,a,i){if((i&4194240)!==0){var u=a.lanes;u&=o.pendingLanes,i|=u,a.lanes=i,an(o,i)}}var wo={readContext:Fo,useCallback:Bn,useContext:Bn,useEffect:Bn,useImperativeHandle:Bn,useInsertionEffect:Bn,useLayoutEffect:Bn,useMemo:Bn,useReducer:Bn,useRef:Bn,useState:Bn,useDebugValue:Bn,useDeferredValue:Bn,useTransition:Bn,useMutableSource:Bn,useSyncExternalStore:Bn,useId:Bn,unstable_isNewReconciler:!1},ud={readContext:Fo,useCallback:function(o,a){return za().memoizedState=[o,a===void 0?null:a],o},useContext:Fo,useEffect:cd,useImperativeHandle:function(o,a,i){return i=i!=null?i.concat([o]):null,Pl(4194308,4,c.bind(null,a,o),i)},useLayoutEffect:function(o,a){return Pl(4194308,4,o,a)},useInsertionEffect:function(o,a){return Pl(4,2,o,a)},useMemo:function(o,a){var i=za();return a=a===void 0?null:a,o=o(),i.memoizedState=[o,a],o},useReducer:function(o,a,i){var u=za();return a=i!==void 0?i(a):a,u.memoizedState=u.baseState=a,o={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:a},u.queue=o,o=o.dispatch=bt.bind(null,Zt,o),[u.memoizedState,o]},useRef:function(o){var a=za();return o={current:o},a.memoizedState=o},useState:vn,useDebugValue:_,useDeferredValue:function(o){return za().memoizedState=o},useTransition:function(){var o=vn(!1),a=o[0];return o=Je.bind(null,o[1]),za().memoizedState=o,[a,o]},useMutableSource:function(){},useSyncExternalStore:function(o,a,i){var u=Zt,g=za();if(Rt){if(i===void 0)throw Error(r(407));i=i()}else{if(i=a(),co===null)throw Error(r(349));(Do&30)!==0||ad(u,a,i)}g.memoizedState=i;var v={value:i,getSnapshot:a};return g.queue=v,cd(sd.bind(null,u,v,o),[o]),u.flags|=2048,qr(9,rd.bind(null,u,v,i,a),void 0,null),i},useId:function(){var o=za(),a=co.identifierPrefix;if(Rt){var i=ir,u=ea;i=(u&~(1<<32-Fe(u)-1)).toString(32)+i,a=":"+a+"R"+i,i=_i++,0<i&&(a+="H"+i.toString(32)),a+=":"}else i=td++,a=":"+a+"r"+i.toString(32)+":";return o.memoizedState=a},unstable_isNewReconciler:!1},pd={readContext:Fo,useCallback:H,useContext:Fo,useEffect:_l,useImperativeHandle:S,useInsertionEffect:bc,useLayoutEffect:dd,useMemo:je,useReducer:yc,useRef:ld,useState:function(){return yc(Ri)},useDebugValue:_,useDeferredValue:function(o){var a=io();return ke(a,gn.memoizedState,o)},useTransition:function(){var o=yc(Ri)[0],a=io().memoizedState;return[o,a]},useMutableSource:nd,useSyncExternalStore:od,useId:pt,unstable_isNewReconciler:!1},Yd={readContext:Fo,useCallback:H,useContext:Fo,useEffect:_l,useImperativeHandle:S,useInsertionEffect:bc,useLayoutEffect:dd,useMemo:je,useReducer:jc,useRef:ld,useState:function(){return jc(Ri)},useDebugValue:_,useDeferredValue:function(o){var a=io();return gn===null?a.memoizedState=o:ke(a,gn.memoizedState,o)},useTransition:function(){var o=jc(Ri)[0],a=io().memoizedState;return[o,a]},useMutableSource:nd,useSyncExternalStore:od,useId:pt,unstable_isNewReconciler:!1};function ba(o,a){if(o&&o.defaultProps){a=K({},a),o=o.defaultProps;for(var i in o)a[i]===void 0&&(a[i]=o[i]);return a}return a}function wc(o,a,i,u){a=o.memoizedState,i=i(u,a),i=i==null?a:K({},a,i),o.memoizedState=i,o.lanes===0&&(o.updateQueue.baseState=i)}var ys={isMounted:function(o){return(o=o._reactInternals)?vt(o)===o:!1},enqueueSetState:function(o,a,i){o=o._reactInternals;var u=Bo(),g=Ks(o),v=lr(u,g);v.payload=a,i!=null&&(v.callback=i),a=Br(o,v,g),a!==null&&(pr(a,o,g,u),kl(a,o,g))},enqueueReplaceState:function(o,a,i){o=o._reactInternals;var u=Bo(),g=Ks(o),v=lr(u,g);v.tag=1,v.payload=a,i!=null&&(v.callback=i),a=Br(o,v,g),a!==null&&(pr(a,o,g,u),kl(a,o,g))},enqueueForceUpdate:function(o,a){o=o._reactInternals;var i=Bo(),u=Ks(o),g=lr(i,u);g.tag=2,a!=null&&(g.callback=a),a=Br(o,g,u),a!==null&&(pr(a,o,u,i),kl(a,o,u))}};function Yp(o,a,i,u,g,v,A){return o=o.stateNode,typeof o.shouldComponentUpdate=="function"?o.shouldComponentUpdate(u,v,A):a.prototype&&a.prototype.isPureReactComponent?!To(i,u)||!To(g,v):!0}function Gu(o,a,i){var u=!1,g=ja,v=a.contextType;return typeof v=="object"&&v!==null?v=Fo(v):(g=In(a)?fn:Dn.current,u=a.contextTypes,v=(u=u!=null)?Kt(o,g):ja),a=new a(i,v),o.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=ys,o.stateNode=a,a._reactInternals=o,u&&(o=o.stateNode,o.__reactInternalMemoizedUnmaskedChildContext=g,o.__reactInternalMemoizedMaskedChildContext=v),a}function Zp(o,a,i,u){o=a.state,typeof a.componentWillReceiveProps=="function"&&a.componentWillReceiveProps(i,u),typeof a.UNSAFE_componentWillReceiveProps=="function"&&a.UNSAFE_componentWillReceiveProps(i,u),a.state!==o&&ys.enqueueReplaceState(a,a.state,null)}function Ju(o,a,i,u){var g=o.stateNode;g.props=i,g.state=o.memoizedState,g.refs={},Cl(o);var v=a.contextType;typeof v=="object"&&v!==null?g.context=Fo(v):(v=In(a)?fn:Dn.current,g.context=Kt(o,v)),g.state=o.memoizedState,v=a.getDerivedStateFromProps,typeof v=="function"&&(wc(o,a,v,i),g.state=o.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof g.getSnapshotBeforeUpdate=="function"||typeof g.UNSAFE_componentWillMount!="function"&&typeof g.componentWillMount!="function"||(a=g.state,typeof g.componentWillMount=="function"&&g.componentWillMount(),typeof g.UNSAFE_componentWillMount=="function"&&g.UNSAFE_componentWillMount(),a!==g.state&&ys.enqueueReplaceState(g,g.state,null),Vn(o,i,g,u),g.state=o.memoizedState),typeof g.componentDidMount=="function"&&(o.flags|=4194308)}function Nc(o,a){try{var i="",u=a;do i+=be(u),u=u.return;while(u);var g=i}catch(v){g=`
39
+ Error generating stack: `+v.message+`
40
+ `+v.stack}return{value:o,source:a,stack:g,digest:null}}function Ku(o,a,i){return{value:o,source:null,stack:i??null,digest:a??null}}function Zd(o,a){try{console.error(a.value)}catch(i){setTimeout(function(){throw i})}}var em=typeof WeakMap=="function"?WeakMap:Map;function tm(o,a,i){i=lr(-1,i),i.tag=3,i.payload={element:null};var u=a.value;return i.callback=function(){Cd||(Cd=!0,cu=u),Zd(o,a)},i}function Qu(o,a,i){i=lr(-1,i),i.tag=3;var u=o.type.getDerivedStateFromError;if(typeof u=="function"){var g=a.value;i.payload=function(){return u(g)},i.callback=function(){Zd(o,a)}}var v=o.stateNode;return v!==null&&typeof v.componentDidCatch=="function"&&(i.callback=function(){Zd(o,a),typeof u!="function"&&(Gs===null?Gs=new Set([this]):Gs.add(this));var A=a.stack;this.componentDidCatch(a.value,{componentStack:A!==null?A:""})}),i}function nm(o,a,i){var u=o.pingCache;if(u===null){u=o.pingCache=new em;var g=new Set;u.set(a,g)}else g=u.get(a),g===void 0&&(g=new Set,u.set(a,g));g.has(i)||(g.add(i),o=yn.bind(null,o,a,i),a.then(o,o))}function om(o){do{var a;if((a=o.tag===13)&&(a=o.memoizedState,a=a!==null?a.dehydrated!==null:!0),a)return o;o=o.return}while(o!==null);return null}function js(o,a,i,u,g){return(o.mode&1)===0?(o===a?o.flags|=65536:(o.flags|=128,i.flags|=131072,i.flags&=-52805,i.tag===1&&(i.alternate===null?i.tag=17:(a=lr(-1,1),a.tag=2,Br(i,a,1))),i.lanes|=1),o):(o.flags|=65536,o.lanes=g,o)}var Xu=F.ReactCurrentOwner,na=!1;function No(o,a,i,u){a.child=o===null?Zc(a,null,i,u):fs(a,o.child,i,u)}function am(o,a,i,u,g){i=i.render;var v=a.ref;return Bs(a,g),u=Oi(o,a,i,u,v,g),i=Il(),o!==null&&!na?(a.updateQueue=o.updateQueue,a.flags&=-2053,o.lanes&=~g,Hs(o,a,g)):(Rt&&i&&Ds(a),a.flags|=1,No(o,a,u,g),a.child)}function rm(o,a,i,u,g){if(o===null){var v=i.type;return typeof v=="function"&&!Lh(v)&&v.defaultProps===void 0&&i.compare===null&&i.defaultProps===void 0?(a.tag=15,a.type=v,sm(o,a,v,u,g)):(o=Cm(i.type,null,u,a,a.mode,g),o.ref=a.ref,o.return=a,a.child=o)}if(v=o.child,(o.lanes&g)===0){var A=v.memoizedProps;if(i=i.compare,i=i!==null?i:To,i(A,u)&&o.ref===a.ref)return Hs(o,a,g)}return a.flags|=1,o=Ec(v,u),o.ref=a.ref,o.return=a,a.child=o}function sm(o,a,i,u,g){if(o!==null){var v=o.memoizedProps;if(To(v,u)&&o.ref===a.ref)if(na=!1,a.pendingProps=u=v,(o.lanes&g)!==0)(o.flags&131072)!==0&&(na=!0);else return a.lanes=o.lanes,Hs(o,a,g)}return md(o,a,i,u,g)}function im(o,a,i){var u=a.pendingProps,g=u.children,v=o!==null?o.memoizedState:null;if(u.mode==="hidden")if((a.mode&1)===0)a.memoizedState={baseLanes:0,cachePool:null,transitions:null},It(Ws,La),La|=i;else{if((i&1073741824)===0)return o=v!==null?v.baseLanes|i:i,a.lanes=a.childLanes=1073741824,a.memoizedState={baseLanes:o,cachePool:null,transitions:null},a.updateQueue=null,It(Ws,La),La|=o,null;a.memoizedState={baseLanes:0,cachePool:null,transitions:null},u=v!==null?v.baseLanes:i,It(Ws,La),La|=u}else v!==null?(u=v.baseLanes|i,a.memoizedState=null):u=i,It(Ws,La),La|=u;return No(o,a,g,i),a.child}function eu(o,a){var i=a.ref;(o===null&&i!==null||o!==null&&o.ref!==i)&&(a.flags|=512,a.flags|=2097152)}function md(o,a,i,u,g){var v=In(i)?fn:Dn.current;return v=Kt(a,v),Bs(a,g),i=Oi(o,a,i,u,v,g),u=Il(),o!==null&&!na?(a.updateQueue=o.updateQueue,a.flags&=-2053,o.lanes&=~g,Hs(o,a,g)):(Rt&&u&&Ds(a),a.flags|=1,No(o,a,i,g),a.child)}function lm(o,a,i,u,g){if(In(i)){var v=!0;us(a)}else v=!1;if(Bs(a,g),a.stateNode===null)au(o,a),Gu(a,i,u),Ju(a,i,u,g),u=!0;else if(o===null){var A=a.stateNode,V=a.memoizedProps;A.props=V;var J=A.context,pe=i.contextType;typeof pe=="object"&&pe!==null?pe=Fo(pe):(pe=In(i)?fn:Dn.current,pe=Kt(a,pe));var Se=i.getDerivedStateFromProps,Ae=typeof Se=="function"||typeof A.getSnapshotBeforeUpdate=="function";Ae||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(V!==u||J!==pe)&&Zp(a,A,u,pe),Fa=!1;var Ne=a.memoizedState;A.state=Ne,Vn(a,u,A,g),J=a.memoizedState,V!==u||Ne!==J||$n.current||Fa?(typeof Se=="function"&&(wc(a,i,Se,u),J=a.memoizedState),(V=Fa||Yp(a,i,V,u,Ne,J,pe))?(Ae||typeof A.UNSAFE_componentWillMount!="function"&&typeof A.componentWillMount!="function"||(typeof A.componentWillMount=="function"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount=="function"&&A.UNSAFE_componentWillMount()),typeof A.componentDidMount=="function"&&(a.flags|=4194308)):(typeof A.componentDidMount=="function"&&(a.flags|=4194308),a.memoizedProps=u,a.memoizedState=J),A.props=u,A.state=J,A.context=pe,u=V):(typeof A.componentDidMount=="function"&&(a.flags|=4194308),u=!1)}else{A=a.stateNode,Sl(o,a),V=a.memoizedProps,pe=a.type===a.elementType?V:ba(a.type,V),A.props=pe,Ae=a.pendingProps,Ne=A.context,J=i.contextType,typeof J=="object"&&J!==null?J=Fo(J):(J=In(i)?fn:Dn.current,J=Kt(a,J));var $e=i.getDerivedStateFromProps;(Se=typeof $e=="function"||typeof A.getSnapshotBeforeUpdate=="function")||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(V!==Ae||Ne!==J)&&Zp(a,A,u,J),Fa=!1,Ne=a.memoizedState,A.state=Ne,Vn(a,u,A,g);var We=a.memoizedState;V!==Ae||Ne!==We||$n.current||Fa?(typeof $e=="function"&&(wc(a,i,$e,u),We=a.memoizedState),(pe=Fa||Yp(a,i,pe,u,Ne,We,J)||!1)?(Se||typeof A.UNSAFE_componentWillUpdate!="function"&&typeof A.componentWillUpdate!="function"||(typeof A.componentWillUpdate=="function"&&A.componentWillUpdate(u,We,J),typeof A.UNSAFE_componentWillUpdate=="function"&&A.UNSAFE_componentWillUpdate(u,We,J)),typeof A.componentDidUpdate=="function"&&(a.flags|=4),typeof A.getSnapshotBeforeUpdate=="function"&&(a.flags|=1024)):(typeof A.componentDidUpdate!="function"||V===o.memoizedProps&&Ne===o.memoizedState||(a.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||V===o.memoizedProps&&Ne===o.memoizedState||(a.flags|=1024),a.memoizedProps=u,a.memoizedState=We),A.props=u,A.state=We,A.context=J,u=pe):(typeof A.componentDidUpdate!="function"||V===o.memoizedProps&&Ne===o.memoizedState||(a.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||V===o.memoizedProps&&Ne===o.memoizedState||(a.flags|=1024),u=!1)}return hd(o,a,i,u,v,g)}function hd(o,a,i,u,g,v){eu(o,a);var A=(a.flags&128)!==0;if(!u&&!A)return g&&xl(a,i,!1),Hs(o,a,v);u=a.stateNode,Xu.current=a;var V=A&&typeof i.getDerivedStateFromError!="function"?null:u.render();return a.flags|=1,o!==null&&A?(a.child=fs(a,o.child,null,v),a.child=fs(a,null,V,v)):No(o,a,V,v),a.memoizedState=u.state,g&&xl(a,i,!0),a.child}function cm(o){var a=o.stateNode;a.pendingContext?ds(o,a.pendingContext,a.pendingContext!==a.context):a.context&&ds(o,a.context,!1),hc(o,a.containerInfo)}function dm(o,a,i,u,g){return ms(),bl(g),a.flags|=256,No(o,a,i,u),a.child}var tu={dehydrated:null,treeContext:null,retryLane:0};function fd(o){return{baseLanes:o,cachePool:null,transitions:null}}function um(o,a,i){var u=a.pendingProps,g=Yt.current,v=!1,A=(a.flags&128)!==0,V;if((V=A)||(V=o!==null&&o.memoizedState===null?!1:(g&2)!==0),V?(v=!0,a.flags&=-129):(o===null||o.memoizedState!==null)&&(g|=1),It(Yt,g&1),o===null)return Dr(a),o=a.memoizedState,o!==null&&(o=o.dehydrated,o!==null)?((a.mode&1)===0?a.lanes=1:o.data==="$!"?a.lanes=8:a.lanes=1073741824,null):(A=u.children,o=u.fallback,v?(u=a.mode,v=a.child,A={mode:"hidden",children:A},(u&1)===0&&v!==null?(v.childLanes=0,v.pendingProps=A):v=Sm(A,u,0,null),o=Td(o,u,i,null),v.return=a,o.return=a,v.sibling=o,a.child=v,a.child.memoizedState=fd(i),a.memoizedState=tu,o):Yu(a,A));if(g=o.memoizedState,g!==null&&(V=g.dehydrated,V!==null))return pm(o,a,A,u,V,g,i);if(v){v=u.fallback,A=a.mode,g=o.child,V=g.sibling;var J={mode:"hidden",children:u.children};return(A&1)===0&&a.child!==g?(u=a.child,u.childLanes=0,u.pendingProps=J,a.deletions=null):(u=Ec(g,J),u.subtreeFlags=g.subtreeFlags&14680064),V!==null?v=Ec(V,v):(v=Td(v,A,i,null),v.flags|=2),v.return=a,u.return=a,u.sibling=v,a.child=u,u=v,v=a.child,A=o.child.memoizedState,A=A===null?fd(i):{baseLanes:A.baseLanes|i,cachePool:null,transitions:A.transitions},v.memoizedState=A,v.childLanes=o.childLanes&~i,a.memoizedState=tu,u}return v=o.child,o=v.sibling,u=Ec(v,{mode:"visible",children:u.children}),(a.mode&1)===0&&(u.lanes=i),u.return=a,u.sibling=null,o!==null&&(i=a.deletions,i===null?(a.deletions=[o],a.flags|=16):i.push(o)),a.child=u,a.memoizedState=null,u}function Yu(o,a){return a=Sm({mode:"visible",children:a},o.mode,0,null),a.return=o,o.child=a}function nu(o,a,i,u){return u!==null&&bl(u),fs(a,o.child,null,i),o=Yu(a,a.pendingProps.children),o.flags|=2,a.memoizedState=null,o}function pm(o,a,i,u,g,v,A){if(i)return a.flags&256?(a.flags&=-257,u=Ku(Error(r(422))),nu(o,a,A,u)):a.memoizedState!==null?(a.child=o.child,a.flags|=128,null):(v=u.fallback,g=a.mode,u=Sm({mode:"visible",children:u.children},g,0,null),v=Td(v,g,A,null),v.flags|=2,u.return=a,v.return=a,u.sibling=v,a.child=u,(a.mode&1)!==0&&fs(a,o.child,null,A),a.child.memoizedState=fd(A),a.memoizedState=tu,v);if((a.mode&1)===0)return nu(o,a,A,null);if(g.data==="$!"){if(u=g.nextSibling&&g.nextSibling.dataset,u)var V=u.dgst;return u=V,v=Error(r(419)),u=Ku(v,u,void 0),nu(o,a,A,u)}if(V=(A&o.childLanes)!==0,na||V){if(u=co,u!==null){switch(A&-A){case 4:g=2;break;case 16:g=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:g=32;break;case 536870912:g=268435456;break;default:g=0}g=(g&(u.suspendedLanes|A))!==0?0:g,g!==0&&g!==v.retryLane&&(v.retryLane=g,zo(o,g),pr(u,o,g,-1))}return fu(),u=Ku(Error(r(421))),nu(o,a,A,u)}return g.data==="$?"?(a.flags|=128,a.child=o.child,a=Bt.bind(null,o),g._reactRetry=a,null):(o=v.treeContext,so=zr(g.nextSibling),bn=a,Rt=!0,yo=null,o!==null&&(Ro[Lt++]=ea,Ro[Lt++]=ir,Ro[Lt++]=_t,ea=o.id,ir=o.overflow,_t=a),a=Yu(a,u.children),a.flags|=4096,a)}function gd(o,a,i){o.lanes|=a;var u=o.alternate;u!==null&&(u.lanes|=a),mc(o.return,a,i)}function ou(o,a,i,u,g){var v=o.memoizedState;v===null?o.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:u,tail:i,tailMode:g}:(v.isBackwards=a,v.rendering=null,v.renderingStartTime=0,v.last=u,v.tail=i,v.tailMode=g)}function mm(o,a,i){var u=a.pendingProps,g=u.revealOrder,v=u.tail;if(No(o,a,u.children,i),u=Yt.current,(u&2)!==0)u=u&1|2,a.flags|=128;else{if(o!==null&&(o.flags&128)!==0)e:for(o=a.child;o!==null;){if(o.tag===13)o.memoizedState!==null&&gd(o,i,a);else if(o.tag===19)gd(o,i,a);else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===a)break e;for(;o.sibling===null;){if(o.return===null||o.return===a)break e;o=o.return}o.sibling.return=o.return,o=o.sibling}u&=1}if(It(Yt,u),(a.mode&1)===0)a.memoizedState=null;else switch(g){case"forwards":for(i=a.child,g=null;i!==null;)o=i.alternate,o!==null&&El(o)===null&&(g=i),i=i.sibling;i=g,i===null?(g=a.child,a.child=null):(g=i.sibling,i.sibling=null),ou(a,!1,g,i,v);break;case"backwards":for(i=null,g=a.child,a.child=null;g!==null;){if(o=g.alternate,o!==null&&El(o)===null){a.child=g;break}o=g.sibling,g.sibling=i,i=g,g=o}ou(a,!0,i,null,v);break;case"together":ou(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function au(o,a){(a.mode&1)===0&&o!==null&&(o.alternate=null,a.alternate=null,a.flags|=2)}function Hs(o,a,i){if(o!==null&&(a.dependencies=o.dependencies),Vi|=a.lanes,(i&a.childLanes)===0)return null;if(o!==null&&a.child!==o.child)throw Error(r(153));if(a.child!==null){for(o=a.child,i=Ec(o,o.pendingProps),a.child=i,i.return=a;o.sibling!==null;)o=o.sibling,i=i.sibling=Ec(o,o.pendingProps),i.return=a;i.sibling=null}return a.child}function Fh(o,a,i){switch(a.tag){case 3:cm(a),ms();break;case 5:fc(a);break;case 1:In(a.type)&&us(a);break;case 4:hc(a,a.stateNode.containerInfo);break;case 10:var u=a.type._context,g=a.memoizedProps.value;It(Ra,u._currentValue),u._currentValue=g;break;case 13:if(u=a.memoizedState,u!==null)return u.dehydrated!==null?(It(Yt,Yt.current&1),a.flags|=128,null):(i&a.child.childLanes)!==0?um(o,a,i):(It(Yt,Yt.current&1),o=Hs(o,a,i),o!==null?o.sibling:null);It(Yt,Yt.current&1);break;case 19:if(u=(i&a.childLanes)!==0,(o.flags&128)!==0){if(u)return mm(o,a,i);a.flags|=128}if(g=a.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),It(Yt,Yt.current),u)break;return null;case 22:case 23:return a.lanes=0,im(o,a,i)}return Hs(o,a,i)}var hm,Cc,xd,fm;hm=function(o,a){for(var i=a.child;i!==null;){if(i.tag===5||i.tag===6)o.appendChild(i.stateNode);else if(i.tag!==4&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===a)break;for(;i.sibling===null;){if(i.return===null||i.return===a)return;i=i.return}i.sibling.return=i.return,i=i.sibling}},Cc=function(){},xd=function(o,a,i,u){var g=o.memoizedProps;if(g!==u){o=a.stateNode,Ur(Lo.current);var v=null;switch(i){case"input":g=ht(o,g),u=ht(o,u),v=[];break;case"select":g=K({},g,{value:void 0}),u=K({},u,{value:void 0}),v=[];break;case"textarea":g=we(o,g),u=we(o,u),v=[];break;default:typeof g.onClick!="function"&&typeof u.onClick=="function"&&(o.onclick=Jt)}mn(i,u);var A;i=null;for(pe in g)if(!u.hasOwnProperty(pe)&&g.hasOwnProperty(pe)&&g[pe]!=null)if(pe==="style"){var V=g[pe];for(A in V)V.hasOwnProperty(A)&&(i||(i={}),i[A]="")}else pe!=="dangerouslySetInnerHTML"&&pe!=="children"&&pe!=="suppressContentEditableWarning"&&pe!=="suppressHydrationWarning"&&pe!=="autoFocus"&&(l.hasOwnProperty(pe)?v||(v=[]):(v=v||[]).push(pe,null));for(pe in u){var J=u[pe];if(V=g!=null?g[pe]:void 0,u.hasOwnProperty(pe)&&J!==V&&(J!=null||V!=null))if(pe==="style")if(V){for(A in V)!V.hasOwnProperty(A)||J&&J.hasOwnProperty(A)||(i||(i={}),i[A]="");for(A in J)J.hasOwnProperty(A)&&V[A]!==J[A]&&(i||(i={}),i[A]=J[A])}else i||(v||(v=[]),v.push(pe,i)),i=J;else pe==="dangerouslySetInnerHTML"?(J=J?J.__html:void 0,V=V?V.__html:void 0,J!=null&&V!==J&&(v=v||[]).push(pe,J)):pe==="children"?typeof J!="string"&&typeof J!="number"||(v=v||[]).push(pe,""+J):pe!=="suppressContentEditableWarning"&&pe!=="suppressHydrationWarning"&&(l.hasOwnProperty(pe)?(J!=null&&pe==="onScroll"&&Tt("scroll",o),v||V===J||(v=[])):(v=v||[]).push(pe,J))}i&&(v=v||[]).push("style",i);var pe=v;(a.updateQueue=pe)&&(a.flags|=4)}},fm=function(o,a,i,u){i!==u&&(a.flags|=4)};function vd(o,a){if(!Rt)switch(o.tailMode){case"hidden":a=o.tail;for(var i=null;a!==null;)a.alternate!==null&&(i=a),a=a.sibling;i===null?o.tail=null:i.sibling=null;break;case"collapsed":i=o.tail;for(var u=null;i!==null;)i.alternate!==null&&(u=i),i=i.sibling;u===null?a||o.tail===null?o.tail=null:o.tail.sibling=null:u.sibling=null}}function $o(o){var a=o.alternate!==null&&o.alternate.child===o.child,i=0,u=0;if(a)for(var g=o.child;g!==null;)i|=g.lanes|g.childLanes,u|=g.subtreeFlags&14680064,u|=g.flags&14680064,g.return=o,g=g.sibling;else for(g=o.child;g!==null;)i|=g.lanes|g.childLanes,u|=g.subtreeFlags,u|=g.flags,g.return=o,g=g.sibling;return o.subtreeFlags|=u,o.childLanes=i,a}function gm(o,a,i){var u=a.pendingProps;switch(yl(a),a.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return $o(a),null;case 1:return In(a.type)&&Sn(),$o(a),null;case 3:return u=a.stateNode,xs(),Ee($n),Ee(Dn),xc(),u.pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),(o===null||o.child===null)&&(Ti(a)?a.flags|=4:o===null||o.memoizedState.isDehydrated&&(a.flags&256)===0||(a.flags|=1024,yo!==null&&(pu(yo),yo=null))),Cc(o,a),$o(a),null;case 5:Al(a);var g=Ur(Us.current);if(i=a.type,o!==null&&a.stateNode!=null)xd(o,a,i,u,g),o.ref!==a.ref&&(a.flags|=512,a.flags|=2097152);else{if(!u){if(a.stateNode===null)throw Error(r(166));return $o(a),null}if(o=Ur(Lo.current),Ti(a)){u=a.stateNode,i=a.type;var v=a.memoizedProps;switch(u[rn]=a,u[zs]=v,o=(a.mode&1)!==0,i){case"dialog":Tt("cancel",u),Tt("close",u);break;case"iframe":case"object":case"embed":Tt("load",u);break;case"video":case"audio":for(g=0;g<Ma.length;g++)Tt(Ma[g],u);break;case"source":Tt("error",u);break;case"img":case"image":case"link":Tt("error",u),Tt("load",u);break;case"details":Tt("toggle",u);break;case"input":Ze(u,v),Tt("invalid",u);break;case"select":u._wrapperState={wasMultiple:!!v.multiple},Tt("invalid",u);break;case"textarea":Me(u,v),Tt("invalid",u)}mn(i,v),g=null;for(var A in v)if(v.hasOwnProperty(A)){var V=v[A];A==="children"?typeof V=="string"?u.textContent!==V&&(v.suppressHydrationWarning!==!0&&Fs(u.textContent,V,o),g=["children",V]):typeof V=="number"&&u.textContent!==""+V&&(v.suppressHydrationWarning!==!0&&Fs(u.textContent,V,o),g=["children",""+V]):l.hasOwnProperty(A)&&V!=null&&A==="onScroll"&&Tt("scroll",u)}switch(i){case"input":Ie(u),Te(u,v,!0);break;case"textarea":Ie(u),st(u);break;case"select":case"option":break;default:typeof v.onClick=="function"&&(u.onclick=Jt)}u=g,a.updateQueue=u,u!==null&&(a.flags|=4)}else{A=g.nodeType===9?g:g.ownerDocument,o==="http://www.w3.org/1999/xhtml"&&(o=Ue(i)),o==="http://www.w3.org/1999/xhtml"?i==="script"?(o=A.createElement("div"),o.innerHTML="<script><\/script>",o=o.removeChild(o.firstChild)):typeof u.is=="string"?o=A.createElement(i,{is:u.is}):(o=A.createElement(i),i==="select"&&(A=o,u.multiple?A.multiple=!0:u.size&&(A.size=u.size))):o=A.createElementNS(o,i),o[rn]=a,o[zs]=u,hm(o,a,!1,!1),a.stateNode=o;e:{switch(A=Wn(i,u),i){case"dialog":Tt("cancel",o),Tt("close",o),g=u;break;case"iframe":case"object":case"embed":Tt("load",o),g=u;break;case"video":case"audio":for(g=0;g<Ma.length;g++)Tt(Ma[g],o);g=u;break;case"source":Tt("error",o),g=u;break;case"img":case"image":case"link":Tt("error",o),Tt("load",o),g=u;break;case"details":Tt("toggle",o),g=u;break;case"input":Ze(o,u),g=ht(o,u),Tt("invalid",o);break;case"option":g=u;break;case"select":o._wrapperState={wasMultiple:!!u.multiple},g=K({},u,{value:void 0}),Tt("invalid",o);break;case"textarea":Me(o,u),g=we(o,u),Tt("invalid",o);break;default:g=u}mn(i,g),V=g;for(v in V)if(V.hasOwnProperty(v)){var J=V[v];v==="style"?An(o,J):v==="dangerouslySetInnerHTML"?(J=J?J.__html:void 0,J!=null&&ft(o,J)):v==="children"?typeof J=="string"?(i!=="textarea"||J!=="")&&Re(o,J):typeof J=="number"&&Re(o,""+J):v!=="suppressContentEditableWarning"&&v!=="suppressHydrationWarning"&&v!=="autoFocus"&&(l.hasOwnProperty(v)?J!=null&&v==="onScroll"&&Tt("scroll",o):J!=null&&P(o,v,J,A))}switch(i){case"input":Ie(o),Te(o,u,!1);break;case"textarea":Ie(o),st(o);break;case"option":u.value!=null&&o.setAttribute("value",""+B(u.value));break;case"select":o.multiple=!!u.multiple,v=u.value,v!=null?re(o,!!u.multiple,v,!1):u.defaultValue!=null&&re(o,!!u.multiple,u.defaultValue,!0);break;default:typeof g.onClick=="function"&&(o.onclick=Jt)}switch(i){case"button":case"input":case"select":case"textarea":u=!!u.autoFocus;break e;case"img":u=!0;break e;default:u=!1}}u&&(a.flags|=4)}a.ref!==null&&(a.flags|=512,a.flags|=2097152)}return $o(a),null;case 6:if(o&&a.stateNode!=null)fm(o,a,o.memoizedProps,u);else{if(typeof u!="string"&&a.stateNode===null)throw Error(r(166));if(i=Ur(Us.current),Ur(Lo.current),Ti(a)){if(u=a.stateNode,i=a.memoizedProps,u[rn]=a,(v=u.nodeValue!==i)&&(o=bn,o!==null))switch(o.tag){case 3:Fs(u.nodeValue,i,(o.mode&1)!==0);break;case 5:o.memoizedProps.suppressHydrationWarning!==!0&&Fs(u.nodeValue,i,(o.mode&1)!==0)}v&&(a.flags|=4)}else u=(i.nodeType===9?i:i.ownerDocument).createTextNode(u),u[rn]=a,a.stateNode=u}return $o(a),null;case 13:if(Ee(Yt),u=a.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(Rt&&so!==null&&(a.mode&1)!==0&&(a.flags&128)===0)cc(),ms(),a.flags|=98560,v=!1;else if(v=Ti(a),u!==null&&u.dehydrated!==null){if(o===null){if(!v)throw Error(r(318));if(v=a.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(r(317));v[rn]=a}else ms(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;$o(a),v=!1}else yo!==null&&(pu(yo),yo=null),v=!0;if(!v)return a.flags&65536?a:null}return(a.flags&128)!==0?(a.lanes=i,a):(u=u!==null,u!==(o!==null&&o.memoizedState!==null)&&u&&(a.child.flags|=8192,(a.mode&1)!==0&&(o===null||(Yt.current&1)!==0?kn===0&&(kn=3):fu())),a.updateQueue!==null&&(a.flags|=4),$o(a),null);case 4:return xs(),Cc(o,a),o===null&&Rs(a.stateNode.containerInfo),$o(a),null;case 10:return wl(a.type._context),$o(a),null;case 17:return In(a.type)&&Sn(),$o(a),null;case 19:if(Ee(Yt),v=a.memoizedState,v===null)return $o(a),null;if(u=(a.flags&128)!==0,A=v.rendering,A===null)if(u)vd(v,!1);else{if(kn!==0||o!==null&&(o.flags&128)!==0)for(o=a.child;o!==null;){if(A=El(o),A!==null){for(a.flags|=128,vd(v,!1),u=A.updateQueue,u!==null&&(a.updateQueue=u,a.flags|=4),a.subtreeFlags=0,u=i,i=a.child;i!==null;)v=i,o=u,v.flags&=14680066,A=v.alternate,A===null?(v.childLanes=0,v.lanes=o,v.child=null,v.subtreeFlags=0,v.memoizedProps=null,v.memoizedState=null,v.updateQueue=null,v.dependencies=null,v.stateNode=null):(v.childLanes=A.childLanes,v.lanes=A.lanes,v.child=A.child,v.subtreeFlags=0,v.deletions=null,v.memoizedProps=A.memoizedProps,v.memoizedState=A.memoizedState,v.updateQueue=A.updateQueue,v.type=A.type,o=A.dependencies,v.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext}),i=i.sibling;return It(Yt,Yt.current&1|2),a.child}o=o.sibling}v.tail!==null&&Ge()>Ol&&(a.flags|=128,u=!0,vd(v,!1),a.lanes=4194304)}else{if(!u)if(o=El(A),o!==null){if(a.flags|=128,u=!0,i=o.updateQueue,i!==null&&(a.updateQueue=i,a.flags|=4),vd(v,!0),v.tail===null&&v.tailMode==="hidden"&&!A.alternate&&!Rt)return $o(a),null}else 2*Ge()-v.renderingStartTime>Ol&&i!==1073741824&&(a.flags|=128,u=!0,vd(v,!1),a.lanes=4194304);v.isBackwards?(A.sibling=a.child,a.child=A):(i=v.last,i!==null?i.sibling=A:a.child=A,v.last=A)}return v.tail!==null?(a=v.tail,v.rendering=a,v.tail=a.sibling,v.renderingStartTime=Ge(),a.sibling=null,i=Yt.current,It(Yt,u?i&1|2:i&1),a):($o(a),null);case 22:case 23:return hu(),u=a.memoizedState!==null,o!==null&&o.memoizedState!==null!==u&&(a.flags|=8192),u&&(a.mode&1)!==0?(La&1073741824)!==0&&($o(a),a.subtreeFlags&6&&(a.flags|=8192)):$o(a),null;case 24:return null;case 25:return null}throw Error(r(156,a.tag))}function zh(o,a){switch(yl(a),a.tag){case 1:return In(a.type)&&Sn(),o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 3:return xs(),Ee($n),Ee(Dn),xc(),o=a.flags,(o&65536)!==0&&(o&128)===0?(a.flags=o&-65537|128,a):null;case 5:return Al(a),null;case 13:if(Ee(Yt),o=a.memoizedState,o!==null&&o.dehydrated!==null){if(a.alternate===null)throw Error(r(340));ms()}return o=a.flags,o&65536?(a.flags=o&-65537|128,a):null;case 19:return Ee(Yt),null;case 4:return xs(),null;case 10:return wl(a.type._context),null;case 22:case 23:return hu(),null;case 24:return null;default:return null}}var yd=!1,Vo=!1,xm=typeof WeakSet=="function"?WeakSet:Set,Ve=null;function Sc(o,a){var i=o.ref;if(i!==null)if(typeof i=="function")try{i(null)}catch(u){nt(o,a,u)}else i.current=null}function Zu(o,a,i){try{i()}catch(u){nt(o,a,u)}}var ep=!1;function tp(o,a){if(Rr=rl,o=pl(),Ir(o)){if("selectionStart"in o)var i={start:o.selectionStart,end:o.selectionEnd};else e:{i=(i=o.ownerDocument)&&i.defaultView||window;var u=i.getSelection&&i.getSelection();if(u&&u.rangeCount!==0){i=u.anchorNode;var g=u.anchorOffset,v=u.focusNode;u=u.focusOffset;try{i.nodeType,v.nodeType}catch{i=null;break e}var A=0,V=-1,J=-1,pe=0,Se=0,Ae=o,Ne=null;t:for(;;){for(var $e;Ae!==i||g!==0&&Ae.nodeType!==3||(V=A+g),Ae!==v||u!==0&&Ae.nodeType!==3||(J=A+u),Ae.nodeType===3&&(A+=Ae.nodeValue.length),($e=Ae.firstChild)!==null;)Ne=Ae,Ae=$e;for(;;){if(Ae===o)break t;if(Ne===i&&++pe===g&&(V=A),Ne===v&&++Se===u&&(J=A),($e=Ae.nextSibling)!==null)break;Ae=Ne,Ne=Ae.parentNode}Ae=$e}i=V===-1||J===-1?null:{start:V,end:J}}else i=null}i=i||{start:0,end:0}}else i=null;for(fl={focusedElem:o,selectionRange:i},rl=!1,Ve=a;Ve!==null;)if(a=Ve,o=a.child,(a.subtreeFlags&1028)!==0&&o!==null)o.return=a,Ve=o;else for(;Ve!==null;){a=Ve;try{var We=a.alternate;if((a.flags&1024)!==0)switch(a.tag){case 0:case 11:case 15:break;case 1:if(We!==null){var Ke=We.memoizedProps,Hn=We.memoizedState,le=a.stateNode,Y=le.getSnapshotBeforeUpdate(a.elementType===a.type?Ke:ba(a.type,Ke),Hn);le.__reactInternalSnapshotBeforeUpdate=Y}break;case 3:var de=a.stateNode.containerInfo;de.nodeType===1?de.textContent="":de.nodeType===9&&de.documentElement&&de.removeChild(de.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(_e){nt(a,a.return,_e)}if(o=a.sibling,o!==null){o.return=a.return,Ve=o;break}Ve=a.return}return We=ep,ep=!1,We}function jd(o,a,i){var u=a.updateQueue;if(u=u!==null?u.lastEffect:null,u!==null){var g=u=u.next;do{if((g.tag&o)===o){var v=g.destroy;g.destroy=void 0,v!==void 0&&Zu(a,i,v)}g=g.next}while(g!==u)}}function bd(o,a){if(a=a.updateQueue,a=a!==null?a.lastEffect:null,a!==null){var i=a=a.next;do{if((i.tag&o)===o){var u=i.create;i.destroy=u()}i=i.next}while(i!==a)}}function ru(o){var a=o.ref;if(a!==null){var i=o.stateNode;switch(o.tag){case 5:o=i;break;default:o=i}typeof a=="function"?a(o):a.current=o}}function vm(o){var a=o.alternate;a!==null&&(o.alternate=null,vm(a)),o.child=null,o.deletions=null,o.sibling=null,o.tag===5&&(a=o.stateNode,a!==null&&(delete a[rn],delete a[zs],delete a[ac],delete a[Ta],delete a[rc])),o.stateNode=null,o.return=null,o.dependencies=null,o.memoizedProps=null,o.memoizedState=null,o.pendingProps=null,o.stateNode=null,o.updateQueue=null}function ym(o){return o.tag===5||o.tag===3||o.tag===4}function np(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||ym(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function op(o,a,i){var u=o.tag;if(u===5||u===6)o=o.stateNode,a?i.nodeType===8?i.parentNode.insertBefore(o,a):i.insertBefore(o,a):(i.nodeType===8?(a=i.parentNode,a.insertBefore(o,i)):(a=i,a.appendChild(o)),i=i._reactRootContainer,i!=null||a.onclick!==null||(a.onclick=Jt));else if(u!==4&&(o=o.child,o!==null))for(op(o,a,i),o=o.sibling;o!==null;)op(o,a,i),o=o.sibling}function ap(o,a,i){var u=o.tag;if(u===5||u===6)o=o.stateNode,a?i.insertBefore(o,a):i.appendChild(o);else if(u!==4&&(o=o.child,o!==null))for(ap(o,a,i),o=o.sibling;o!==null;)ap(o,a,i),o=o.sibling}var lo=null,Hr=!1;function zi(o,a,i){for(i=i.child;i!==null;)su(o,a,i),i=i.sibling}function su(o,a,i){if(da&&typeof da.onCommitFiberUnmount=="function")try{da.onCommitFiberUnmount(Zr,i)}catch{}switch(i.tag){case 5:Vo||Sc(i,a);case 6:var u=lo,g=Hr;lo=null,zi(o,a,i),lo=u,Hr=g,lo!==null&&(Hr?(o=lo,i=i.stateNode,o.nodeType===8?o.parentNode.removeChild(i):o.removeChild(i)):lo.removeChild(i.stateNode));break;case 18:lo!==null&&(Hr?(o=lo,i=i.stateNode,o.nodeType===8?ya(o.parentNode,i):o.nodeType===1&&ya(o,i),di(o)):ya(lo,i.stateNode));break;case 4:u=lo,g=Hr,lo=i.stateNode.containerInfo,Hr=!0,zi(o,a,i),lo=u,Hr=g;break;case 0:case 11:case 14:case 15:if(!Vo&&(u=i.updateQueue,u!==null&&(u=u.lastEffect,u!==null))){g=u=u.next;do{var v=g,A=v.destroy;v=v.tag,A!==void 0&&((v&2)!==0||(v&4)!==0)&&Zu(i,a,A),g=g.next}while(g!==u)}zi(o,a,i);break;case 1:if(!Vo&&(Sc(i,a),u=i.stateNode,typeof u.componentWillUnmount=="function"))try{u.props=i.memoizedProps,u.state=i.memoizedState,u.componentWillUnmount()}catch(V){nt(i,a,V)}zi(o,a,i);break;case 21:zi(o,a,i);break;case 22:i.mode&1?(Vo=(u=Vo)||i.memoizedState!==null,zi(o,a,i),Vo=u):zi(o,a,i);break;default:zi(o,a,i)}}function iu(o){var a=o.updateQueue;if(a!==null){o.updateQueue=null;var i=o.stateNode;i===null&&(i=o.stateNode=new xm),a.forEach(function(u){var g=Co.bind(null,o,u);i.has(u)||(i.add(u),u.then(g,g))})}}function wa(o,a){var i=a.deletions;if(i!==null)for(var u=0;u<i.length;u++){var g=i[u];try{var v=o,A=a,V=A;e:for(;V!==null;){switch(V.tag){case 5:lo=V.stateNode,Hr=!1;break e;case 3:lo=V.stateNode.containerInfo,Hr=!0;break e;case 4:lo=V.stateNode.containerInfo,Hr=!0;break e}V=V.return}if(lo===null)throw Error(r(160));su(v,A,g),lo=null,Hr=!1;var J=g.alternate;J!==null&&(J.return=null),g.return=null}catch(pe){nt(g,a,pe)}}if(a.subtreeFlags&12854)for(a=a.child;a!==null;)Li(a,o),a=a.sibling}function Li(o,a){var i=o.alternate,u=o.flags;switch(o.tag){case 0:case 11:case 14:case 15:if(wa(a,o),dr(o),u&4){try{jd(3,o,o.return),bd(3,o)}catch(Ke){nt(o,o.return,Ke)}try{jd(5,o,o.return)}catch(Ke){nt(o,o.return,Ke)}}break;case 1:wa(a,o),dr(o),u&512&&i!==null&&Sc(i,i.return);break;case 5:if(wa(a,o),dr(o),u&512&&i!==null&&Sc(i,i.return),o.flags&32){var g=o.stateNode;try{Re(g,"")}catch(Ke){nt(o,o.return,Ke)}}if(u&4&&(g=o.stateNode,g!=null)){var v=o.memoizedProps,A=i!==null?i.memoizedProps:v,V=o.type,J=o.updateQueue;if(o.updateQueue=null,J!==null)try{V==="input"&&v.type==="radio"&&v.name!=null&&kt(g,v),Wn(V,A);var pe=Wn(V,v);for(A=0;A<J.length;A+=2){var Se=J[A],Ae=J[A+1];Se==="style"?An(g,Ae):Se==="dangerouslySetInnerHTML"?ft(g,Ae):Se==="children"?Re(g,Ae):P(g,Se,Ae,pe)}switch(V){case"input":et(g,v);break;case"textarea":Ye(g,v);break;case"select":var Ne=g._wrapperState.wasMultiple;g._wrapperState.wasMultiple=!!v.multiple;var $e=v.value;$e!=null?re(g,!!v.multiple,$e,!1):Ne!==!!v.multiple&&(v.defaultValue!=null?re(g,!!v.multiple,v.defaultValue,!0):re(g,!!v.multiple,v.multiple?[]:"",!1))}g[zs]=v}catch(Ke){nt(o,o.return,Ke)}}break;case 6:if(wa(a,o),dr(o),u&4){if(o.stateNode===null)throw Error(r(162));g=o.stateNode,v=o.memoizedProps;try{g.nodeValue=v}catch(Ke){nt(o,o.return,Ke)}}break;case 3:if(wa(a,o),dr(o),u&4&&i!==null&&i.memoizedState.isDehydrated)try{di(a.containerInfo)}catch(Ke){nt(o,o.return,Ke)}break;case 4:wa(a,o),dr(o);break;case 13:wa(a,o),dr(o),g=o.child,g.flags&8192&&(v=g.memoizedState!==null,g.stateNode.isHidden=v,!v||g.alternate!==null&&g.alternate.memoizedState!==null||(lu=Ge())),u&4&&iu(o);break;case 22:if(Se=i!==null&&i.memoizedState!==null,o.mode&1?(Vo=(pe=Vo)||Se,wa(a,o),Vo=pe):wa(a,o),dr(o),u&8192){if(pe=o.memoizedState!==null,(o.stateNode.isHidden=pe)&&!Se&&(o.mode&1)!==0)for(Ve=o,Se=o.child;Se!==null;){for(Ae=Ve=Se;Ve!==null;){switch(Ne=Ve,$e=Ne.child,Ne.tag){case 0:case 11:case 14:case 15:jd(4,Ne,Ne.return);break;case 1:Sc(Ne,Ne.return);var We=Ne.stateNode;if(typeof We.componentWillUnmount=="function"){u=Ne,i=Ne.return;try{a=u,We.props=a.memoizedProps,We.state=a.memoizedState,We.componentWillUnmount()}catch(Ke){nt(u,i,Ke)}}break;case 5:Sc(Ne,Ne.return);break;case 22:if(Ne.memoizedState!==null){bm(Ae);continue}}$e!==null?($e.return=Ne,Ve=$e):bm(Ae)}Se=Se.sibling}e:for(Se=null,Ae=o;;){if(Ae.tag===5){if(Se===null){Se=Ae;try{g=Ae.stateNode,pe?(v=g.style,typeof v.setProperty=="function"?v.setProperty("display","none","important"):v.display="none"):(V=Ae.stateNode,J=Ae.memoizedProps.style,A=J!=null&&J.hasOwnProperty("display")?J.display:null,V.style.display=pn("display",A))}catch(Ke){nt(o,o.return,Ke)}}}else if(Ae.tag===6){if(Se===null)try{Ae.stateNode.nodeValue=pe?"":Ae.memoizedProps}catch(Ke){nt(o,o.return,Ke)}}else if((Ae.tag!==22&&Ae.tag!==23||Ae.memoizedState===null||Ae===o)&&Ae.child!==null){Ae.child.return=Ae,Ae=Ae.child;continue}if(Ae===o)break e;for(;Ae.sibling===null;){if(Ae.return===null||Ae.return===o)break e;Se===Ae&&(Se=null),Ae=Ae.return}Se===Ae&&(Se=null),Ae.sibling.return=Ae.return,Ae=Ae.sibling}}break;case 19:wa(a,o),dr(o),u&4&&iu(o);break;case 21:break;default:wa(a,o),dr(o)}}function dr(o){var a=o.flags;if(a&2){try{e:{for(var i=o.return;i!==null;){if(ym(i)){var u=i;break e}i=i.return}throw Error(r(160))}switch(u.tag){case 5:var g=u.stateNode;u.flags&32&&(Re(g,""),u.flags&=-33);var v=np(o);ap(o,v,g);break;case 3:case 4:var A=u.stateNode.containerInfo,V=np(o);op(o,V,A);break;default:throw Error(r(161))}}catch(J){nt(o,o.return,J)}o.flags&=-3}a&4096&&(o.flags&=-4097)}function Di(o,a,i){Ve=o,rp(o)}function rp(o,a,i){for(var u=(o.mode&1)!==0;Ve!==null;){var g=Ve,v=g.child;if(g.tag===22&&u){var A=g.memoizedState!==null||yd;if(!A){var V=g.alternate,J=V!==null&&V.memoizedState!==null||Vo;V=yd;var pe=Vo;if(yd=A,(Vo=J)&&!pe)for(Ve=g;Ve!==null;)A=Ve,J=A.child,A.tag===22&&A.memoizedState!==null?wm(g):J!==null?(J.return=A,Ve=J):wm(g);for(;v!==null;)Ve=v,rp(v),v=v.sibling;Ve=g,yd=V,Vo=pe}jm(o)}else(g.subtreeFlags&8772)!==0&&v!==null?(v.return=g,Ve=v):jm(o)}}function jm(o){for(;Ve!==null;){var a=Ve;if((a.flags&8772)!==0){var i=a.alternate;try{if((a.flags&8772)!==0)switch(a.tag){case 0:case 11:case 15:Vo||bd(5,a);break;case 1:var u=a.stateNode;if(a.flags&4&&!Vo)if(i===null)u.componentDidMount();else{var g=a.elementType===a.type?i.memoizedProps:ba(a.type,i.memoizedProps);u.componentDidUpdate(g,i.memoizedState,u.__reactInternalSnapshotBeforeUpdate)}var v=a.updateQueue;v!==null&&cr(a,v,u);break;case 3:var A=a.updateQueue;if(A!==null){if(i=null,a.child!==null)switch(a.child.tag){case 5:i=a.child.stateNode;break;case 1:i=a.child.stateNode}cr(a,A,i)}break;case 5:var V=a.stateNode;if(i===null&&a.flags&4){i=V;var J=a.memoizedProps;switch(a.type){case"button":case"input":case"select":case"textarea":J.autoFocus&&i.focus();break;case"img":J.src&&(i.src=J.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(a.memoizedState===null){var pe=a.alternate;if(pe!==null){var Se=pe.memoizedState;if(Se!==null){var Ae=Se.dehydrated;Ae!==null&&di(Ae)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}Vo||a.flags&512&&ru(a)}catch(Ne){nt(a,a.return,Ne)}}if(a===o){Ve=null;break}if(i=a.sibling,i!==null){i.return=a.return,Ve=i;break}Ve=a.return}}function bm(o){for(;Ve!==null;){var a=Ve;if(a===o){Ve=null;break}var i=a.sibling;if(i!==null){i.return=a.return,Ve=i;break}Ve=a.return}}function wm(o){for(;Ve!==null;){var a=Ve;try{switch(a.tag){case 0:case 11:case 15:var i=a.return;try{bd(4,a)}catch(J){nt(a,i,J)}break;case 1:var u=a.stateNode;if(typeof u.componentDidMount=="function"){var g=a.return;try{u.componentDidMount()}catch(J){nt(a,g,J)}}var v=a.return;try{ru(a)}catch(J){nt(a,v,J)}break;case 5:var A=a.return;try{ru(a)}catch(J){nt(a,A,J)}}}catch(J){nt(a,a.return,J)}if(a===o){Ve=null;break}var V=a.sibling;if(V!==null){V.return=a.return,Ve=V;break}Ve=a.return}}var $i=Math.ceil,Wr=F.ReactCurrentDispatcher,sp=F.ReactCurrentOwner,ur=F.ReactCurrentBatchConfig,Et=0,co=null,cn=null,qn=0,La=0,Ws=_a(0),kn=0,wd=null,Vi=0,Nd=0,Bi=0,kc=null,oa=null,lu=0,Ol=1/0,bs=null,Cd=!1,cu=null,Gs=null,Sd=!1,Js=null,kd=0,Ac=0,du=null,Ad=-1,Ed=0;function Bo(){return(Et&6)!==0?Ge():Ad!==-1?Ad:Ad=Ge()}function Ks(o){return(o.mode&1)===0?1:(Et&2)!==0&&qn!==0?qn&-qn:dc.transition!==null?(Ed===0&&(Ed=ql()),Ed):(o=yt,o!==0||(o=window.event,o=o===void 0?16:Sa(o.type)),o)}function pr(o,a,i,u){if(50<Ac)throw Ac=0,du=null,Error(r(185));wr(o,i,u),((Et&2)===0||o!==co)&&(o===co&&((Et&2)===0&&(Nd|=i),kn===4&&Qs(o,qn)),aa(o,u),i===1&&Et===0&&(a.mode&1)===0&&(Ol=Ge()+500,vl&&sr()))}function aa(o,a){var i=o.callbackNode;si(o,a);var u=Qa(o,o===co?qn:0);if(u===0)i!==null&&Ga(i),o.callbackNode=null,o.callbackPriority=0;else if(a=u&-u,o.callbackPriority!==a){if(i!=null&&Ga(i),a===1)o.tag===0?Zo(lp.bind(null,o)):ic(lp.bind(null,o)),Ai(function(){(Et&6)===0&&sr()}),i=null;else{switch(zt(u)){case 1:i=Qn;break;case 4:i=Eo;break;case 16:i=Yr;break;case 536870912:i=Ul;break;default:i=Yr}i=Mg(i,ip.bind(null,o))}o.callbackPriority=a,o.callbackNode=i}}function ip(o,a){if(Ad=-1,Ed=0,(Et&6)!==0)throw Error(r(327));var i=o.callbackNode;if(me()&&o.callbackNode!==i)return null;var u=Qa(o,o===co?qn:0);if(u===0)return null;if((u&30)!==0||(u&o.expiredLanes)!==0||a)a=Md(o,u);else{a=u;var g=Et;Et|=2;var v=dp();(co!==o||qn!==a)&&(bs=null,Ol=Ge()+500,qi(o,a));do try{y();break}catch(V){cp(o,V)}while(!0);pc(),Wr.current=v,Et=g,cn!==null?a=0:(co=null,qn=0,a=kn)}if(a!==0){if(a===2&&(g=ol(o),g!==0&&(u=g,a=uu(o,g))),a===1)throw i=wd,qi(o,0),Qs(o,u),aa(o,Ge()),i;if(a===6)Qs(o,u);else{if(g=o.current.alternate,(u&30)===0&&!Nm(g)&&(a=Md(o,u),a===2&&(v=ol(o),v!==0&&(u=v,a=uu(o,v))),a===1))throw i=wd,qi(o,0),Qs(o,u),aa(o,Ge()),i;switch(o.finishedWork=g,o.finishedLanes=u,a){case 0:case 1:throw Error(r(345));case 2:ne(o,oa,bs);break;case 3:if(Qs(o,u),(u&130023424)===u&&(a=lu+500-Ge(),10<a)){if(Qa(o,0)!==0)break;if(g=o.suspendedLanes,(g&u)!==u){Bo(),o.pingedLanes|=o.suspendedLanes&g;break}o.timeoutHandle=Fr(ne.bind(null,o,oa,bs),a);break}ne(o,oa,bs);break;case 4:if(Qs(o,u),(u&4194240)===u)break;for(a=o.eventTimes,g=-1;0<u;){var A=31-Fe(u);v=1<<A,A=a[A],A>g&&(g=A),u&=~v}if(u=g,u=Ge()-u,u=(120>u?120:480>u?480:1080>u?1080:1920>u?1920:3e3>u?3e3:4320>u?4320:1960*$i(u/1960))-u,10<u){o.timeoutHandle=Fr(ne.bind(null,o,oa,bs),u);break}ne(o,oa,bs);break;case 5:ne(o,oa,bs);break;default:throw Error(r(329))}}}return aa(o,Ge()),o.callbackNode===i?ip.bind(null,o):null}function uu(o,a){var i=kc;return o.current.memoizedState.isDehydrated&&(qi(o,a).flags|=256),o=Md(o,a),o!==2&&(a=oa,oa=i,a!==null&&pu(a)),o}function pu(o){oa===null?oa=o:oa.push.apply(oa,o)}function Nm(o){for(var a=o;;){if(a.flags&16384){var i=a.updateQueue;if(i!==null&&(i=i.stores,i!==null))for(var u=0;u<i.length;u++){var g=i[u],v=g.getSnapshot;g=g.value;try{if(!hn(v(),g))return!1}catch{return!1}}}if(i=a.child,a.subtreeFlags&16384&&i!==null)i.return=a,a=i;else{if(a===o)break;for(;a.sibling===null;){if(a.return===null||a.return===o)return!0;a=a.return}a.sibling.return=a.return,a=a.sibling}}return!0}function Qs(o,a){for(a&=~Bi,a&=~Nd,o.suspendedLanes|=a,o.pingedLanes&=~a,o=o.expirationTimes;0<a;){var i=31-Fe(a),u=1<<i;o[i]=-1,a&=~u}}function lp(o){if((Et&6)!==0)throw Error(r(327));me();var a=Qa(o,0);if((a&1)===0)return aa(o,Ge()),null;var i=Md(o,a);if(o.tag!==0&&i===2){var u=ol(o);u!==0&&(a=u,i=uu(o,u))}if(i===1)throw i=wd,qi(o,0),Qs(o,a),aa(o,Ge()),i;if(i===6)throw Error(r(345));return o.finishedWork=o.current.alternate,o.finishedLanes=a,ne(o,oa,bs),aa(o,Ge()),null}function mu(o,a){var i=Et;Et|=1;try{return o(a)}finally{Et=i,Et===0&&(Ol=Ge()+500,vl&&sr())}}function Ui(o){Js!==null&&Js.tag===0&&(Et&6)===0&&me();var a=Et;Et|=1;var i=ur.transition,u=yt;try{if(ur.transition=null,yt=1,o)return o()}finally{yt=u,ur.transition=i,Et=a,(Et&6)===0&&sr()}}function hu(){La=Ws.current,Ee(Ws)}function qi(o,a){o.finishedWork=null,o.finishedLanes=0;var i=o.timeoutHandle;if(i!==-1&&(o.timeoutHandle=-1,cs(i)),cn!==null)for(i=cn.return;i!==null;){var u=i;switch(yl(u),u.tag){case 1:u=u.type.childContextTypes,u!=null&&Sn();break;case 3:xs(),Ee($n),Ee(Dn),xc();break;case 5:Al(u);break;case 4:xs();break;case 13:Ee(Yt);break;case 19:Ee(Yt);break;case 10:wl(u.type._context);break;case 22:case 23:hu()}i=i.return}if(co=o,cn=o=Ec(o.current,null),qn=La=a,kn=0,wd=null,Bi=Nd=Vi=0,oa=kc=null,Vr!==null){for(a=0;a<Vr.length;a++)if(i=Vr[a],u=i.interleaved,u!==null){i.interleaved=null;var g=u.next,v=i.pending;if(v!==null){var A=v.next;v.next=g,u.next=A}i.pending=u}Vr=null}return o}function cp(o,a){do{var i=cn;try{if(pc(),Ml.current=wo,vs){for(var u=Zt.memoizedState;u!==null;){var g=u.queue;g!==null&&(g.pending=null),u=u.next}vs=!1}if(Do=0,wn=gn=Zt=null,qs=!1,_i=0,sp.current=null,i===null||i.return===null){kn=1,wd=a,cn=null;break}e:{var v=o,A=i.return,V=i,J=a;if(a=qn,V.flags|=32768,J!==null&&typeof J=="object"&&typeof J.then=="function"){var pe=J,Se=V,Ae=Se.tag;if((Se.mode&1)===0&&(Ae===0||Ae===11||Ae===15)){var Ne=Se.alternate;Ne?(Se.updateQueue=Ne.updateQueue,Se.memoizedState=Ne.memoizedState,Se.lanes=Ne.lanes):(Se.updateQueue=null,Se.memoizedState=null)}var $e=om(A);if($e!==null){$e.flags&=-257,js($e,A,V,v,a),$e.mode&1&&nm(v,pe,a),a=$e,J=pe;var We=a.updateQueue;if(We===null){var Ke=new Set;Ke.add(J),a.updateQueue=Ke}else We.add(J);break e}else{if((a&1)===0){nm(v,pe,a),fu();break e}J=Error(r(426))}}else if(Rt&&V.mode&1){var Hn=om(A);if(Hn!==null){(Hn.flags&65536)===0&&(Hn.flags|=256),js(Hn,A,V,v,a),bl(Nc(J,V));break e}}v=J=Nc(J,V),kn!==4&&(kn=2),kc===null?kc=[v]:kc.push(v),v=A;do{switch(v.tag){case 3:v.flags|=65536,a&=-a,v.lanes|=a;var le=tm(v,J,a);ed(v,le);break e;case 1:V=J;var Y=v.type,de=v.stateNode;if((v.flags&128)===0&&(typeof Y.getDerivedStateFromError=="function"||de!==null&&typeof de.componentDidCatch=="function"&&(Gs===null||!Gs.has(de)))){v.flags|=65536,a&=-a,v.lanes|=a;var _e=Qu(v,V,a);ed(v,_e);break e}}v=v.return}while(v!==null)}D(i)}catch(Xe){a=Xe,cn===i&&i!==null&&(cn=i=i.return);continue}break}while(!0)}function dp(){var o=Wr.current;return Wr.current=wo,o===null?wo:o}function fu(){(kn===0||kn===3||kn===2)&&(kn=4),co===null||(Vi&268435455)===0&&(Nd&268435455)===0||Qs(co,qn)}function Md(o,a){var i=Et;Et|=2;var u=dp();(co!==o||qn!==a)&&(bs=null,qi(o,a));do try{d();break}catch(g){cp(o,g)}while(!0);if(pc(),Et=i,Wr.current=u,cn!==null)throw Error(r(261));return co=null,qn=0,kn}function d(){for(;cn!==null;)k(cn)}function y(){for(;cn!==null&&!oi();)k(cn)}function k(o){var a=Da(o.alternate,o,La);o.memoizedProps=o.pendingProps,a===null?D(o):cn=a,sp.current=null}function D(o){var a=o;do{var i=a.alternate;if(o=a.return,(a.flags&32768)===0){if(i=gm(i,a,La),i!==null){cn=i;return}}else{if(i=zh(i,a),i!==null){i.flags&=32767,cn=i;return}if(o!==null)o.flags|=32768,o.subtreeFlags=0,o.deletions=null;else{kn=6,cn=null;return}}if(a=a.sibling,a!==null){cn=a;return}cn=a=o}while(a!==null);kn===0&&(kn=5)}function ne(o,a,i){var u=yt,g=ur.transition;try{ur.transition=null,yt=1,ue(o,a,i,u)}finally{ur.transition=g,yt=u}return null}function ue(o,a,i,u){do me();while(Js!==null);if((Et&6)!==0)throw Error(r(327));i=o.finishedWork;var g=o.finishedLanes;if(i===null)return null;if(o.finishedWork=null,o.finishedLanes=0,i===o.current)throw Error(r(177));o.callbackNode=null,o.callbackPriority=0;var v=i.lanes|i.childLanes;if(Hl(o,v),o===co&&(cn=co=null,qn=0),(i.subtreeFlags&2064)===0&&(i.flags&2064)===0||Sd||(Sd=!0,Mg(Yr,function(){return me(),null})),v=(i.flags&15990)!==0,(i.subtreeFlags&15990)!==0||v){v=ur.transition,ur.transition=null;var A=yt;yt=1;var V=Et;Et|=4,sp.current=null,tp(o,i),Li(i,o),vi(fl),rl=!!Rr,fl=Rr=null,o.current=i,Di(i),ca(),Et=V,yt=A,ur.transition=v}else o.current=i;if(Sd&&(Sd=!1,Js=o,kd=g),v=o.pendingLanes,v===0&&(Gs=null),Ja(i.stateNode),aa(o,Ge()),a!==null)for(u=o.onRecoverableError,i=0;i<a.length;i++)g=a[i],u(g.value,{componentStack:g.stack,digest:g.digest});if(Cd)throw Cd=!1,o=cu,cu=null,o;return(kd&1)!==0&&o.tag!==0&&me(),v=o.pendingLanes,(v&1)!==0?o===du?Ac++:(Ac=0,du=o):Ac=0,sr(),null}function me(){if(Js!==null){var o=zt(kd),a=ur.transition,i=yt;try{if(ur.transition=null,yt=16>o?16:o,Js===null)var u=!1;else{if(o=Js,Js=null,kd=0,(Et&6)!==0)throw Error(r(331));var g=Et;for(Et|=4,Ve=o.current;Ve!==null;){var v=Ve,A=v.child;if((Ve.flags&16)!==0){var V=v.deletions;if(V!==null){for(var J=0;J<V.length;J++){var pe=V[J];for(Ve=pe;Ve!==null;){var Se=Ve;switch(Se.tag){case 0:case 11:case 15:jd(8,Se,v)}var Ae=Se.child;if(Ae!==null)Ae.return=Se,Ve=Ae;else for(;Ve!==null;){Se=Ve;var Ne=Se.sibling,$e=Se.return;if(vm(Se),Se===pe){Ve=null;break}if(Ne!==null){Ne.return=$e,Ve=Ne;break}Ve=$e}}}var We=v.alternate;if(We!==null){var Ke=We.child;if(Ke!==null){We.child=null;do{var Hn=Ke.sibling;Ke.sibling=null,Ke=Hn}while(Ke!==null)}}Ve=v}}if((v.subtreeFlags&2064)!==0&&A!==null)A.return=v,Ve=A;else e:for(;Ve!==null;){if(v=Ve,(v.flags&2048)!==0)switch(v.tag){case 0:case 11:case 15:jd(9,v,v.return)}var le=v.sibling;if(le!==null){le.return=v.return,Ve=le;break e}Ve=v.return}}var Y=o.current;for(Ve=Y;Ve!==null;){A=Ve;var de=A.child;if((A.subtreeFlags&2064)!==0&&de!==null)de.return=A,Ve=de;else e:for(A=Y;Ve!==null;){if(V=Ve,(V.flags&2048)!==0)try{switch(V.tag){case 0:case 11:case 15:bd(9,V)}}catch(Xe){nt(V,V.return,Xe)}if(V===A){Ve=null;break e}var _e=V.sibling;if(_e!==null){_e.return=V.return,Ve=_e;break e}Ve=V.return}}if(Et=g,sr(),da&&typeof da.onPostCommitFiberRoot=="function")try{da.onPostCommitFiberRoot(Zr,o)}catch{}u=!0}return u}finally{yt=i,ur.transition=a}}return!1}function De(o,a,i){a=Nc(i,a),a=tm(o,a,1),o=Br(o,a,1),a=Bo(),o!==null&&(wr(o,1,a),aa(o,a))}function nt(o,a,i){if(o.tag===3)De(o,o,i);else for(;a!==null;){if(a.tag===3){De(a,o,i);break}else if(a.tag===1){var u=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof u.componentDidCatch=="function"&&(Gs===null||!Gs.has(u))){o=Nc(i,o),o=Qu(a,o,1),a=Br(a,o,1),o=Bo(),a!==null&&(wr(a,1,o),aa(a,o));break}}a=a.return}}function yn(o,a,i){var u=o.pingCache;u!==null&&u.delete(a),a=Bo(),o.pingedLanes|=o.suspendedLanes&i,co===o&&(qn&i)===i&&(kn===4||kn===3&&(qn&130023424)===qn&&500>Ge()-lu?qi(o,0):Bi|=i),aa(o,a)}function ra(o,a){a===0&&((o.mode&1)===0?a=1:(a=Ka,Ka<<=1,(Ka&130023424)===0&&(Ka=4194304)));var i=Bo();o=zo(o,a),o!==null&&(wr(o,a,i),aa(o,i))}function Bt(o){var a=o.memoizedState,i=0;a!==null&&(i=a.retryLane),ra(o,i)}function Co(o,a){var i=0;switch(o.tag){case 13:var u=o.stateNode,g=o.memoizedState;g!==null&&(i=g.retryLane);break;case 19:u=o.stateNode;break;default:throw Error(r(314))}u!==null&&u.delete(a),ra(o,i)}var Da;Da=function(o,a,i){if(o!==null)if(o.memoizedProps!==a.pendingProps||$n.current)na=!0;else{if((o.lanes&i)===0&&(a.flags&128)===0)return na=!1,Fh(o,a,i);na=(o.flags&131072)!==0}else na=!1,Rt&&(a.flags&1048576)!==0&&Qt(a,Ls,a.index);switch(a.lanes=0,a.tag){case 2:var u=a.type;au(o,a),o=a.pendingProps;var g=Kt(a,Dn.current);Bs(a,i),g=Oi(null,a,u,o,g,i);var v=Il();return a.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(a.tag=1,a.memoizedState=null,a.updateQueue=null,In(u)?(v=!0,us(a)):v=!1,a.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Cl(a),g.updater=ys,a.stateNode=g,g._reactInternals=a,Ju(a,u,o,i),a=hd(null,a,u,!0,v,i)):(a.tag=0,Rt&&v&&Ds(a),No(null,a,g,i),a=a.child),a;case 16:u=a.elementType;e:{switch(au(o,a),o=a.pendingProps,g=u._init,u=g(u._payload),a.type=u,g=a.tag=Qj(u),o=ba(u,o),g){case 0:a=md(null,a,u,o,i);break e;case 1:a=lm(null,a,u,o,i);break e;case 11:a=am(null,a,u,o,i);break e;case 14:a=rm(null,a,u,ba(u.type,o),i);break e}throw Error(r(306,u,""))}return a;case 0:return u=a.type,g=a.pendingProps,g=a.elementType===u?g:ba(u,g),md(o,a,u,g,i);case 1:return u=a.type,g=a.pendingProps,g=a.elementType===u?g:ba(u,g),lm(o,a,u,g,i);case 3:e:{if(cm(a),o===null)throw Error(r(387));u=a.pendingProps,v=a.memoizedState,g=v.element,Sl(o,a),Vn(a,u,null,i);var A=a.memoizedState;if(u=A.element,v.isDehydrated)if(v={element:u,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},a.updateQueue.baseState=v,a.memoizedState=v,a.flags&256){g=Nc(Error(r(423)),a),a=dm(o,a,u,i,g);break e}else if(u!==g){g=Nc(Error(r(424)),a),a=dm(o,a,u,i,g);break e}else for(so=zr(a.stateNode.containerInfo.firstChild),bn=a,Rt=!0,yo=null,i=Zc(a,null,u,i),a.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling;else{if(ms(),u===g){a=Hs(o,a,i);break e}No(o,a,u,i)}a=a.child}return a;case 5:return fc(a),o===null&&Dr(a),u=a.type,g=a.pendingProps,v=o!==null?o.memoizedProps:null,A=g.children,Ln(u,g)?A=null:v!==null&&Ln(u,v)&&(a.flags|=32),eu(o,a),No(o,a,A,i),a.child;case 6:return o===null&&Dr(a),null;case 13:return um(o,a,i);case 4:return hc(a,a.stateNode.containerInfo),u=a.pendingProps,o===null?a.child=fs(a,null,u,i):No(o,a,u,i),a.child;case 11:return u=a.type,g=a.pendingProps,g=a.elementType===u?g:ba(u,g),am(o,a,u,g,i);case 7:return No(o,a,a.pendingProps,i),a.child;case 8:return No(o,a,a.pendingProps.children,i),a.child;case 12:return No(o,a,a.pendingProps.children,i),a.child;case 10:e:{if(u=a.type._context,g=a.pendingProps,v=a.memoizedProps,A=g.value,It(Ra,u._currentValue),u._currentValue=A,v!==null)if(hn(v.value,A)){if(v.children===g.children&&!$n.current){a=Hs(o,a,i);break e}}else for(v=a.child,v!==null&&(v.return=a);v!==null;){var V=v.dependencies;if(V!==null){A=v.child;for(var J=V.firstContext;J!==null;){if(J.context===u){if(v.tag===1){J=lr(-1,i&-i),J.tag=2;var pe=v.updateQueue;if(pe!==null){pe=pe.shared;var Se=pe.pending;Se===null?J.next=J:(J.next=Se.next,Se.next=J),pe.pending=J}}v.lanes|=i,J=v.alternate,J!==null&&(J.lanes|=i),mc(v.return,i,a),V.lanes|=i;break}J=J.next}}else if(v.tag===10)A=v.type===a.type?null:v.child;else if(v.tag===18){if(A=v.return,A===null)throw Error(r(341));A.lanes|=i,V=A.alternate,V!==null&&(V.lanes|=i),mc(A,i,a),A=v.sibling}else A=v.child;if(A!==null)A.return=v;else for(A=v;A!==null;){if(A===a){A=null;break}if(v=A.sibling,v!==null){v.return=A.return,A=v;break}A=A.return}v=A}No(o,a,g.children,i),a=a.child}return a;case 9:return g=a.type,u=a.pendingProps.children,Bs(a,i),g=Fo(g),u=u(g),a.flags|=1,No(o,a,u,i),a.child;case 14:return u=a.type,g=ba(u,a.pendingProps),g=ba(u.type,g),rm(o,a,u,g,i);case 15:return sm(o,a,a.type,a.pendingProps,i);case 17:return u=a.type,g=a.pendingProps,g=a.elementType===u?g:ba(u,g),au(o,a),a.tag=1,In(u)?(o=!0,us(a)):o=!1,Bs(a,i),Gu(a,u,g),Ju(a,u,g,i),hd(null,a,u,!0,o,i);case 19:return mm(o,a,i);case 22:return im(o,a,i)}throw Error(r(156,a.tag))};function Mg(o,a){return Ms(o,a)}function Kj(o,a,i,u){this.tag=o,this.key=i,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=a,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=u,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ws(o,a,i,u){return new Kj(o,a,i,u)}function Lh(o){return o=o.prototype,!(!o||!o.isReactComponent)}function Qj(o){if(typeof o=="function")return Lh(o)?1:0;if(o!=null){if(o=o.$$typeof,o===ye)return 11;if(o===ee)return 14}return 2}function Ec(o,a){var i=o.alternate;return i===null?(i=ws(o.tag,a,o.key,o.mode),i.elementType=o.elementType,i.type=o.type,i.stateNode=o.stateNode,i.alternate=o,o.alternate=i):(i.pendingProps=a,i.type=o.type,i.flags=0,i.subtreeFlags=0,i.deletions=null),i.flags=o.flags&14680064,i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,a=o.dependencies,i.dependencies=a===null?null:{lanes:a.lanes,firstContext:a.firstContext},i.sibling=o.sibling,i.index=o.index,i.ref=o.ref,i}function Cm(o,a,i,u,g,v){var A=2;if(u=o,typeof o=="function")Lh(o)&&(A=1);else if(typeof o=="string")A=5;else e:switch(o){case ae:return Td(i.children,g,v,a);case te:A=8,g|=8;break;case X:return o=ws(12,i,a,g|2),o.elementType=X,o.lanes=v,o;case se:return o=ws(13,i,a,g),o.elementType=se,o.lanes=v,o;case M:return o=ws(19,i,a,g),o.elementType=M,o.lanes=v,o;case ie:return Sm(i,g,v,a);default:if(typeof o=="object"&&o!==null)switch(o.$$typeof){case fe:A=10;break e;case ve:A=9;break e;case ye:A=11;break e;case ee:A=14;break e;case q:A=16,u=null;break e}throw Error(r(130,o==null?o:typeof o,""))}return a=ws(A,i,a,g),a.elementType=o,a.type=u,a.lanes=v,a}function Td(o,a,i,u){return o=ws(7,o,u,a),o.lanes=i,o}function Sm(o,a,i,u){return o=ws(22,o,u,a),o.elementType=ie,o.lanes=i,o.stateNode={isHidden:!1},o}function Dh(o,a,i){return o=ws(6,o,null,a),o.lanes=i,o}function $h(o,a,i){return a=ws(4,o.children!==null?o.children:[],o.key,a),a.lanes=i,a.stateNode={containerInfo:o.containerInfo,pendingChildren:null,implementation:o.implementation},a}function Xj(o,a,i,u,g){this.tag=a,this.containerInfo=o,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=br(0),this.expirationTimes=br(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=br(0),this.identifierPrefix=u,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Vh(o,a,i,u,g,v,A,V,J){return o=new Xj(o,a,i,V,J),a===1?(a=1,v===!0&&(a|=8)):a=0,v=ws(3,null,null,a),o.current=v,v.stateNode=o,v.memoizedState={element:u,isDehydrated:i,cache:null,transitions:null,pendingSuspenseBoundaries:null},Cl(v),o}function Yj(o,a,i){var u=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:oe,key:u==null?null:""+u,children:o,containerInfo:a,implementation:i}}function Tg(o){if(!o)return ja;o=o._reactInternals;e:{if(vt(o)!==o||o.tag!==1)throw Error(r(170));var a=o;do{switch(a.tag){case 3:a=a.stateNode.context;break e;case 1:if(In(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}}a=a.return}while(a!==null);throw Error(r(171))}if(o.tag===1){var i=o.type;if(In(i))return Xc(o,i,a)}return a}function Ig(o,a,i,u,g,v,A,V,J){return o=Vh(i,u,!0,o,g,v,A,V,J),o.context=Tg(null),i=o.current,u=Bo(),g=Ks(i),v=lr(u,g),v.callback=a??null,Br(i,v,g),o.current.lanes=g,wr(o,g,u),aa(o,u),o}function km(o,a,i,u){var g=a.current,v=Bo(),A=Ks(g);return i=Tg(i),a.context===null?a.context=i:a.pendingContext=i,a=lr(v,A),a.payload={element:o},u=u===void 0?null:u,u!==null&&(a.callback=u),o=Br(g,a,A),o!==null&&(pr(o,g,A,v),kl(o,g,A)),A}function Am(o){if(o=o.current,!o.child)return null;switch(o.child.tag){case 5:return o.child.stateNode;default:return o.child.stateNode}}function Pg(o,a){if(o=o.memoizedState,o!==null&&o.dehydrated!==null){var i=o.retryLane;o.retryLane=i!==0&&i<a?i:a}}function Bh(o,a){Pg(o,a),(o=o.alternate)&&Pg(o,a)}function Zj(){return null}var _g=typeof reportError=="function"?reportError:function(o){console.error(o)};function Uh(o){this._internalRoot=o}Em.prototype.render=Uh.prototype.render=function(o){var a=this._internalRoot;if(a===null)throw Error(r(409));km(o,a,null,null)},Em.prototype.unmount=Uh.prototype.unmount=function(){var o=this._internalRoot;if(o!==null){this._internalRoot=null;var a=o.containerInfo;Ui(function(){km(null,o,null,null)}),a[sn]=null}};function Em(o){this._internalRoot=o}Em.prototype.unstable_scheduleHydration=function(o){if(o){var a=Vc();o={blockedOn:null,target:o,priority:a};for(var i=0;i<at.length&&a!==0&&a<at[i].priority;i++);at.splice(i,0,o),i===0&&li(o)}};function qh(o){return!(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11)}function Mm(o){return!(!o||o.nodeType!==1&&o.nodeType!==9&&o.nodeType!==11&&(o.nodeType!==8||o.nodeValue!==" react-mount-point-unstable "))}function Og(){}function eb(o,a,i,u,g){if(g){if(typeof u=="function"){var v=u;u=function(){var pe=Am(A);v.call(pe)}}var A=Ig(a,u,o,0,null,!1,!1,"",Og);return o._reactRootContainer=A,o[sn]=A.current,Rs(o.nodeType===8?o.parentNode:o),Ui(),A}for(;g=o.lastChild;)o.removeChild(g);if(typeof u=="function"){var V=u;u=function(){var pe=Am(J);V.call(pe)}}var J=Vh(o,0,!1,null,null,!1,!1,"",Og);return o._reactRootContainer=J,o[sn]=J.current,Rs(o.nodeType===8?o.parentNode:o),Ui(function(){km(a,J,i,u)}),J}function Tm(o,a,i,u,g){var v=i._reactRootContainer;if(v){var A=v;if(typeof g=="function"){var V=g;g=function(){var J=Am(A);V.call(J)}}km(a,A,o,g)}else A=eb(i,a,o,g,u);return Am(A)}Vt=function(o){switch(o.tag){case 3:var a=o.stateNode;if(a.current.memoizedState.isDehydrated){var i=ri(a.pendingLanes);i!==0&&(an(a,i|1),aa(a,Ge()),(Et&6)===0&&(Ol=Ge()+500,sr()))}break;case 13:Ui(function(){var u=zo(o,1);if(u!==null){var g=Bo();pr(u,o,1,g)}}),Bh(o,1)}},Cn=function(o){if(o.tag===13){var a=zo(o,134217728);if(a!==null){var i=Bo();pr(a,o,134217728,i)}Bh(o,134217728)}},ua=function(o){if(o.tag===13){var a=Ks(o),i=zo(o,a);if(i!==null){var u=Bo();pr(i,o,a,u)}Bh(o,a)}},Vc=function(){return yt},Wl=function(o,a){var i=yt;try{return yt=o,a()}finally{yt=i}},Ko=function(o,a,i){switch(a){case"input":if(et(o,i),a=i.name,i.type==="radio"&&a!=null){for(i=o;i.parentNode;)i=i.parentNode;for(i=i.querySelectorAll("input[name="+JSON.stringify(""+a)+'][type="radio"]'),a=0;a<i.length;a++){var u=i[a];if(u!==o&&u.form===o.form){var g=rr(u);if(!g)throw Error(r(90));ge(u),et(u,g)}}}break;case"textarea":Ye(o,i);break;case"select":a=i.value,a!=null&&re(o,!!i.multiple,a,!1)}},vr=mu,Va=Ui;var tb={usingClientEntryPoint:!1,Events:[Oo,Lr,rr,gr,xr,mu]},up={findFiberByHostInstance:Ia,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nb={bundleType:up.bundleType,version:up.version,rendererPackageName:up.rendererPackageName,rendererConfig:up.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:F.ReactCurrentDispatcher,findHostInstanceByFiber:function(o){return o=nl(o),o===null?null:o.stateNode},findFiberByHostInstance:up.findFiberByHostInstance||Zj,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Im=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Im.isDisabled&&Im.supportsFiber)try{Zr=Im.inject(nb),da=Im}catch{}}return mr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tb,mr.createPortal=function(o,a){var i=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!qh(a))throw Error(r(200));return Yj(o,a,null,i)},mr.createRoot=function(o,a){if(!qh(o))throw Error(r(299));var i=!1,u="",g=_g;return a!=null&&(a.unstable_strictMode===!0&&(i=!0),a.identifierPrefix!==void 0&&(u=a.identifierPrefix),a.onRecoverableError!==void 0&&(g=a.onRecoverableError)),a=Vh(o,1,!1,null,null,i,!1,u,g),o[sn]=a.current,Rs(o.nodeType===8?o.parentNode:o),new Uh(a)},mr.findDOMNode=function(o){if(o==null)return null;if(o.nodeType===1)return o;var a=o._reactInternals;if(a===void 0)throw typeof o.render=="function"?Error(r(188)):(o=Object.keys(o).join(","),Error(r(268,o)));return o=nl(a),o=o===null?null:o.stateNode,o},mr.flushSync=function(o){return Ui(o)},mr.hydrate=function(o,a,i){if(!Mm(a))throw Error(r(200));return Tm(null,o,a,!0,i)},mr.hydrateRoot=function(o,a,i){if(!qh(o))throw Error(r(405));var u=i!=null&&i.hydratedSources||null,g=!1,v="",A=_g;if(i!=null&&(i.unstable_strictMode===!0&&(g=!0),i.identifierPrefix!==void 0&&(v=i.identifierPrefix),i.onRecoverableError!==void 0&&(A=i.onRecoverableError)),a=Ig(a,null,o,1,i??null,g,!1,v,A),o[sn]=a.current,Rs(o),u)for(o=0;o<u.length;o++)i=u[o],g=i._getVersion,g=g(i._source),a.mutableSourceEagerHydrationData==null?a.mutableSourceEagerHydrationData=[i,g]:a.mutableSourceEagerHydrationData.push(i,g);return new Em(a)},mr.render=function(o,a,i){if(!Mm(a))throw Error(r(200));return Tm(null,o,a,!1,i)},mr.unmountComponentAtNode=function(o){if(!Mm(o))throw Error(r(40));return o._reactRootContainer?(Ui(function(){Tm(null,null,o,!1,function(){o._reactRootContainer=null,o[sn]=null})}),!0):!1},mr.unstable_batchedUpdates=mu,mr.unstable_renderSubtreeIntoContainer=function(o,a,i,u){if(!Mm(i))throw Error(r(200));if(o==null||o._reactInternals===void 0)throw Error(r(38));return Tm(o,a,i,!1,u)},mr.version="18.3.1-next-f1338f8080-20240426",mr}var Bg;function _v(){if(Bg)return Gh.exports;Bg=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(n){console.error(n)}}return t(),Gh.exports=cb(),Gh.exports}var Ug;function db(){if(Ug)return Pm;Ug=1;var t=_v();return Pm.createRoot=t.createRoot,Pm.hydrateRoot=t.hydrateRoot,Pm}var ub=db();const pb=ag(ub);function Go(t){if(typeof t=="string"||typeof t=="number")return""+t;let n="";if(Array.isArray(t))for(let r=0,s;r<t.length;r++)(s=Go(t[r]))!==""&&(n+=(n&&" ")+s);else for(let r in t)t[r]&&(n+=(n&&" ")+r);return n}var Qh={exports:{}},Xh={},Yh={exports:{}},Zh={};/**
41
+ * @license React
42
+ * use-sync-external-store-shim.production.js
43
+ *
44
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
45
+ *
46
+ * This source code is licensed under the MIT license found in the
47
+ * LICENSE file in the root directory of this source tree.
48
+ */var qg;function mb(){if(qg)return Zh;qg=1;var t=Wp();function n(w,N){return w===N&&(w!==0||1/w===1/N)||w!==w&&N!==N}var r=typeof Object.is=="function"?Object.is:n,s=t.useState,l=t.useEffect,p=t.useLayoutEffect,m=t.useDebugValue;function h(w,N){var C=N(),E=s({inst:{value:C,getSnapshot:N}}),T=E[0].inst,R=E[1];return p(function(){T.value=C,T.getSnapshot=N,f(T)&&R({inst:T})},[w,C,N]),l(function(){return f(T)&&R({inst:T}),w(function(){f(T)&&R({inst:T})})},[w]),m(C),C}function f(w){var N=w.getSnapshot;w=w.value;try{var C=N();return!r(w,C)}catch{return!0}}function x(w,N){return N()}var j=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?x:h;return Zh.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:j,Zh}var Hg;function hb(){return Hg||(Hg=1,Yh.exports=mb()),Yh.exports}/**
49
+ * @license React
50
+ * use-sync-external-store-shim/with-selector.production.js
51
+ *
52
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
53
+ *
54
+ * This source code is licensed under the MIT license found in the
55
+ * LICENSE file in the root directory of this source tree.
56
+ */var Wg;function fb(){if(Wg)return Xh;Wg=1;var t=Wp(),n=hb();function r(x,j){return x===j&&(x!==0||1/x===1/j)||x!==x&&j!==j}var s=typeof Object.is=="function"?Object.is:r,l=n.useSyncExternalStore,p=t.useRef,m=t.useEffect,h=t.useMemo,f=t.useDebugValue;return Xh.useSyncExternalStoreWithSelector=function(x,j,w,N,C){var E=p(null);if(E.current===null){var T={hasValue:!1,value:null};E.current=T}else T=E.current;E=h(function(){function L(oe){if(!U){if(U=!0,P=oe,oe=N(oe),C!==void 0&&T.hasValue){var ae=T.value;if(C(ae,oe))return F=ae}return F=oe}if(ae=F,s(P,oe))return ae;var te=N(oe);return C!==void 0&&C(ae,te)?(P=oe,ae):(P=oe,F=te)}var U=!1,P,F,Z=w===void 0?null:w;return[function(){return L(j())},Z===null?void 0:function(){return L(Z())}]},[j,w,N,C]);var R=l(x,E[0],E[1]);return m(function(){T.hasValue=!0,T.value=R},[R]),f(R),R},Xh}var Gg;function gb(){return Gg||(Gg=1,Qh.exports=fb()),Qh.exports}var xb=gb();const vb=ag(xb),yb={},Jg=t=>{let n;const r=new Set,s=(j,w)=>{const N=typeof j=="function"?j(n):j;if(!Object.is(N,n)){const C=n;n=w??(typeof N!="object"||N===null)?N:Object.assign({},n,N),r.forEach(E=>E(n,C))}},l=()=>n,f={setState:s,getState:l,getInitialState:()=>x,subscribe:j=>(r.add(j),()=>r.delete(j)),destroy:()=>{(yb?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},x=n=t(s,l,f);return f},jb=t=>t?Jg(t):Jg,{useDebugValue:bb}=he,{useSyncExternalStoreWithSelector:wb}=vb,Nb=t=>t;function Ov(t,n=Nb,r){const s=wb(t.subscribe,t.getState,t.getServerState||t.getInitialState,n,r);return bb(s),s}const Kg=(t,n)=>{const r=jb(t),s=(l,p=n)=>Ov(r,l,p);return Object.assign(s,r),s},Cb=(t,n)=>t?Kg(t,n):Kg;function Wo(t,n){if(Object.is(t,n))return!0;if(typeof t!="object"||t===null||typeof n!="object"||n===null)return!1;if(t instanceof Map&&n instanceof Map){if(t.size!==n.size)return!1;for(const[s,l]of t)if(!Object.is(l,n.get(s)))return!1;return!0}if(t instanceof Set&&n instanceof Set){if(t.size!==n.size)return!1;for(const s of t)if(!n.has(s))return!1;return!0}const r=Object.keys(t);if(r.length!==Object.keys(n).length)return!1;for(const s of r)if(!Object.prototype.hasOwnProperty.call(n,s)||!Object.is(t[s],n[s]))return!1;return!0}var Sb={value:()=>{}};function Ah(){for(var t=0,n=arguments.length,r={},s;t<n;++t){if(!(s=arguments[t]+"")||s in r||/[\s.]/.test(s))throw new Error("illegal type: "+s);r[s]=[]}return new oh(r)}function oh(t){this._=t}function kb(t,n){return t.trim().split(/^|\s+/).map(function(r){var s="",l=r.indexOf(".");if(l>=0&&(s=r.slice(l+1),r=r.slice(0,l)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:s}})}oh.prototype=Ah.prototype={constructor:oh,on:function(t,n){var r=this._,s=kb(t+"",r),l,p=-1,m=s.length;if(arguments.length<2){for(;++p<m;)if((l=(t=s[p]).type)&&(l=Ab(r[l],t.name)))return l;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++p<m;)if(l=(t=s[p]).type)r[l]=Qg(r[l],t.name,n);else if(n==null)for(l in r)r[l]=Qg(r[l],t.name,null);return this},copy:function(){var t={},n=this._;for(var r in n)t[r]=n[r].slice();return new oh(t)},call:function(t,n){if((l=arguments.length-2)>0)for(var r=new Array(l),s=0,l,p;s<l;++s)r[s]=arguments[s+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(p=this._[t],s=0,l=p.length;s<l;++s)p[s].value.apply(n,r)},apply:function(t,n,r){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var s=this._[t],l=0,p=s.length;l<p;++l)s[l].value.apply(n,r)}};function Ab(t,n){for(var r=0,s=t.length,l;r<s;++r)if((l=t[r]).name===n)return l.value}function Qg(t,n,r){for(var s=0,l=t.length;s<l;++s)if(t[s].name===n){t[s]=Sb,t=t.slice(0,s).concat(t.slice(s+1));break}return r!=null&&t.push({name:n,value:r}),t}var kf="http://www.w3.org/1999/xhtml";const Xg={svg:"http://www.w3.org/2000/svg",xhtml:kf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Eh(t){var n=t+="",r=n.indexOf(":");return r>=0&&(n=t.slice(0,r))!=="xmlns"&&(t=t.slice(r+1)),Xg.hasOwnProperty(n)?{space:Xg[n],local:t}:t}function Eb(t){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===kf&&n.documentElement.namespaceURI===kf?n.createElement(t):n.createElementNS(r,t)}}function Mb(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Rv(t){var n=Eh(t);return(n.local?Mb:Eb)(n)}function Tb(){}function rg(t){return t==null?Tb:function(){return this.querySelector(t)}}function Ib(t){typeof t!="function"&&(t=rg(t));for(var n=this._groups,r=n.length,s=new Array(r),l=0;l<r;++l)for(var p=n[l],m=p.length,h=s[l]=new Array(m),f,x,j=0;j<m;++j)(f=p[j])&&(x=t.call(f,f.__data__,j,p))&&("__data__"in f&&(x.__data__=f.__data__),h[j]=x);return new Qr(s,this._parents)}function Pb(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function _b(){return[]}function Fv(t){return t==null?_b:function(){return this.querySelectorAll(t)}}function Ob(t){return function(){return Pb(t.apply(this,arguments))}}function Rb(t){typeof t=="function"?t=Ob(t):t=Fv(t);for(var n=this._groups,r=n.length,s=[],l=[],p=0;p<r;++p)for(var m=n[p],h=m.length,f,x=0;x<h;++x)(f=m[x])&&(s.push(t.call(f,f.__data__,x,m)),l.push(f));return new Qr(s,l)}function zv(t){return function(){return this.matches(t)}}function Lv(t){return function(n){return n.matches(t)}}var Fb=Array.prototype.find;function zb(t){return function(){return Fb.call(this.children,t)}}function Lb(){return this.firstElementChild}function Db(t){return this.select(t==null?Lb:zb(typeof t=="function"?t:Lv(t)))}var $b=Array.prototype.filter;function Vb(){return Array.from(this.children)}function Bb(t){return function(){return $b.call(this.children,t)}}function Ub(t){return this.selectAll(t==null?Vb:Bb(typeof t=="function"?t:Lv(t)))}function qb(t){typeof t!="function"&&(t=zv(t));for(var n=this._groups,r=n.length,s=new Array(r),l=0;l<r;++l)for(var p=n[l],m=p.length,h=s[l]=[],f,x=0;x<m;++x)(f=p[x])&&t.call(f,f.__data__,x,p)&&h.push(f);return new Qr(s,this._parents)}function Dv(t){return new Array(t.length)}function Hb(){return new Qr(this._enter||this._groups.map(Dv),this._parents)}function uh(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}uh.prototype={constructor:uh,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Wb(t){return function(){return t}}function Gb(t,n,r,s,l,p){for(var m=0,h,f=n.length,x=p.length;m<x;++m)(h=n[m])?(h.__data__=p[m],s[m]=h):r[m]=new uh(t,p[m]);for(;m<f;++m)(h=n[m])&&(l[m]=h)}function Jb(t,n,r,s,l,p,m){var h,f,x=new Map,j=n.length,w=p.length,N=new Array(j),C;for(h=0;h<j;++h)(f=n[h])&&(N[h]=C=m.call(f,f.__data__,h,n)+"",x.has(C)?l[h]=f:x.set(C,f));for(h=0;h<w;++h)C=m.call(t,p[h],h,p)+"",(f=x.get(C))?(s[h]=f,f.__data__=p[h],x.delete(C)):r[h]=new uh(t,p[h]);for(h=0;h<j;++h)(f=n[h])&&x.get(N[h])===f&&(l[h]=f)}function Kb(t){return t.__data__}function Qb(t,n){if(!arguments.length)return Array.from(this,Kb);var r=n?Jb:Gb,s=this._parents,l=this._groups;typeof t!="function"&&(t=Wb(t));for(var p=l.length,m=new Array(p),h=new Array(p),f=new Array(p),x=0;x<p;++x){var j=s[x],w=l[x],N=w.length,C=Xb(t.call(j,j&&j.__data__,x,s)),E=C.length,T=h[x]=new Array(E),R=m[x]=new Array(E),L=f[x]=new Array(N);r(j,w,T,R,L,C,n);for(var U=0,P=0,F,Z;U<E;++U)if(F=T[U]){for(U>=P&&(P=U+1);!(Z=R[P])&&++P<E;);F._next=Z||null}}return m=new Qr(m,s),m._enter=h,m._exit=f,m}function Xb(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Yb(){return new Qr(this._exit||this._groups.map(Dv),this._parents)}function Zb(t,n,r){var s=this.enter(),l=this,p=this.exit();return typeof t=="function"?(s=t(s),s&&(s=s.selection())):s=s.append(t+""),n!=null&&(l=n(l),l&&(l=l.selection())),r==null?p.remove():r(p),s&&l?s.merge(l).order():l}function e0(t){for(var n=t.selection?t.selection():t,r=this._groups,s=n._groups,l=r.length,p=s.length,m=Math.min(l,p),h=new Array(l),f=0;f<m;++f)for(var x=r[f],j=s[f],w=x.length,N=h[f]=new Array(w),C,E=0;E<w;++E)(C=x[E]||j[E])&&(N[E]=C);for(;f<l;++f)h[f]=r[f];return new Qr(h,this._parents)}function t0(){for(var t=this._groups,n=-1,r=t.length;++n<r;)for(var s=t[n],l=s.length-1,p=s[l],m;--l>=0;)(m=s[l])&&(p&&m.compareDocumentPosition(p)^4&&p.parentNode.insertBefore(m,p),p=m);return this}function n0(t){t||(t=o0);function n(w,N){return w&&N?t(w.__data__,N.__data__):!w-!N}for(var r=this._groups,s=r.length,l=new Array(s),p=0;p<s;++p){for(var m=r[p],h=m.length,f=l[p]=new Array(h),x,j=0;j<h;++j)(x=m[j])&&(f[j]=x);f.sort(n)}return new Qr(l,this._parents).order()}function o0(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function a0(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function r0(){return Array.from(this)}function s0(){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],l=0,p=s.length;l<p;++l){var m=s[l];if(m)return m}return null}function i0(){let t=0;for(const n of this)++t;return t}function l0(){return!this.node()}function c0(t){for(var n=this._groups,r=0,s=n.length;r<s;++r)for(var l=n[r],p=0,m=l.length,h;p<m;++p)(h=l[p])&&t.call(h,h.__data__,p,l);return this}function d0(t){return function(){this.removeAttribute(t)}}function u0(t){return function(){this.removeAttributeNS(t.space,t.local)}}function p0(t,n){return function(){this.setAttribute(t,n)}}function m0(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function h0(t,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttribute(t):this.setAttribute(t,r)}}function f0(t,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,r)}}function g0(t,n){var r=Eh(t);if(arguments.length<2){var s=this.node();return r.local?s.getAttributeNS(r.space,r.local):s.getAttribute(r)}return this.each((n==null?r.local?u0:d0:typeof n=="function"?r.local?f0:h0:r.local?m0:p0)(r,n))}function $v(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function x0(t){return function(){this.style.removeProperty(t)}}function v0(t,n,r){return function(){this.style.setProperty(t,n,r)}}function y0(t,n,r){return function(){var s=n.apply(this,arguments);s==null?this.style.removeProperty(t):this.style.setProperty(t,s,r)}}function j0(t,n,r){return arguments.length>1?this.each((n==null?x0:typeof n=="function"?y0:v0)(t,n,r??"")):Lu(this.node(),t)}function Lu(t,n){return t.style.getPropertyValue(n)||$v(t).getComputedStyle(t,null).getPropertyValue(n)}function b0(t){return function(){delete this[t]}}function w0(t,n){return function(){this[t]=n}}function N0(t,n){return function(){var r=n.apply(this,arguments);r==null?delete this[t]:this[t]=r}}function C0(t,n){return arguments.length>1?this.each((n==null?b0:typeof n=="function"?N0:w0)(t,n)):this.node()[t]}function Vv(t){return t.trim().split(/^|\s+/)}function sg(t){return t.classList||new Bv(t)}function Bv(t){this._node=t,this._names=Vv(t.getAttribute("class")||"")}Bv.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function Uv(t,n){for(var r=sg(t),s=-1,l=n.length;++s<l;)r.add(n[s])}function qv(t,n){for(var r=sg(t),s=-1,l=n.length;++s<l;)r.remove(n[s])}function S0(t){return function(){Uv(this,t)}}function k0(t){return function(){qv(this,t)}}function A0(t,n){return function(){(n.apply(this,arguments)?Uv:qv)(this,t)}}function E0(t,n){var r=Vv(t+"");if(arguments.length<2){for(var s=sg(this.node()),l=-1,p=r.length;++l<p;)if(!s.contains(r[l]))return!1;return!0}return this.each((typeof n=="function"?A0:n?S0:k0)(r,n))}function M0(){this.textContent=""}function T0(t){return function(){this.textContent=t}}function I0(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function P0(t){return arguments.length?this.each(t==null?M0:(typeof t=="function"?I0:T0)(t)):this.node().textContent}function _0(){this.innerHTML=""}function O0(t){return function(){this.innerHTML=t}}function R0(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function F0(t){return arguments.length?this.each(t==null?_0:(typeof t=="function"?R0:O0)(t)):this.node().innerHTML}function z0(){this.nextSibling&&this.parentNode.appendChild(this)}function L0(){return this.each(z0)}function D0(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function $0(){return this.each(D0)}function V0(t){var n=typeof t=="function"?t:Rv(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function B0(){return null}function U0(t,n){var r=typeof t=="function"?t:Rv(t),s=n==null?B0:typeof n=="function"?n:rg(n);return this.select(function(){return this.insertBefore(r.apply(this,arguments),s.apply(this,arguments)||null)})}function q0(){var t=this.parentNode;t&&t.removeChild(this)}function H0(){return this.each(q0)}function W0(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function G0(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function J0(t){return this.select(t?G0:W0)}function K0(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Q0(t){return function(n){t.call(this,n,this.__data__)}}function X0(t){return t.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");return s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),{type:n,name:r}})}function Y0(t){return function(){var n=this.__on;if(n){for(var r=0,s=-1,l=n.length,p;r<l;++r)p=n[r],(!t.type||p.type===t.type)&&p.name===t.name?this.removeEventListener(p.type,p.listener,p.options):n[++s]=p;++s?n.length=s:delete this.__on}}}function Z0(t,n,r){return function(){var s=this.__on,l,p=Q0(n);if(s){for(var m=0,h=s.length;m<h;++m)if((l=s[m]).type===t.type&&l.name===t.name){this.removeEventListener(l.type,l.listener,l.options),this.addEventListener(l.type,l.listener=p,l.options=r),l.value=n;return}}this.addEventListener(t.type,p,r),l={type:t.type,name:t.name,value:n,listener:p,options:r},s?s.push(l):this.__on=[l]}}function ew(t,n,r){var s=X0(t+""),l,p=s.length,m;if(arguments.length<2){var h=this.node().__on;if(h){for(var f=0,x=h.length,j;f<x;++f)for(l=0,j=h[f];l<p;++l)if((m=s[l]).type===j.type&&m.name===j.name)return j.value}return}for(h=n?Z0:Y0,l=0;l<p;++l)this.each(h(s[l],n,r));return this}function Hv(t,n,r){var s=$v(t),l=s.CustomEvent;typeof l=="function"?l=new l(n,r):(l=s.document.createEvent("Event"),r?(l.initEvent(n,r.bubbles,r.cancelable),l.detail=r.detail):l.initEvent(n,!1,!1)),t.dispatchEvent(l)}function tw(t,n){return function(){return Hv(this,t,n)}}function nw(t,n){return function(){return Hv(this,t,n.apply(this,arguments))}}function ow(t,n){return this.each((typeof n=="function"?nw:tw)(t,n))}function*aw(){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],l=0,p=s.length,m;l<p;++l)(m=s[l])&&(yield m)}var Wv=[null];function Qr(t,n){this._groups=t,this._parents=n}function Gp(){return new Qr([[document.documentElement]],Wv)}function rw(){return this}Qr.prototype=Gp.prototype={constructor:Qr,select:Ib,selectAll:Rb,selectChild:Db,selectChildren:Ub,filter:qb,data:Qb,enter:Hb,exit:Yb,join:Zb,merge:e0,selection:rw,order:t0,sort:n0,call:a0,nodes:r0,node:s0,size:i0,empty:l0,each:c0,attr:g0,style:j0,property:C0,classed:E0,text:P0,html:F0,raise:L0,lower:$0,append:V0,insert:U0,remove:H0,clone:J0,datum:K0,on:ew,dispatch:ow,[Symbol.iterator]:aw};function Kr(t){return typeof t=="string"?new Qr([[document.querySelector(t)]],[document.documentElement]):new Qr([[t]],Wv)}function sw(t){let n;for(;n=t.sourceEvent;)t=n;return t}function Ys(t,n){if(t=sw(t),n===void 0&&(n=t.currentTarget),n){var r=n.ownerSVGElement||n;if(r.createSVGPoint){var s=r.createSVGPoint();return s.x=t.clientX,s.y=t.clientY,s=s.matrixTransform(n.getScreenCTM().inverse()),[s.x,s.y]}if(n.getBoundingClientRect){var l=n.getBoundingClientRect();return[t.clientX-l.left-n.clientLeft,t.clientY-l.top-n.clientTop]}}return[t.pageX,t.pageY]}const iw={passive:!1},_p={capture:!0,passive:!1};function ef(t){t.stopImmediatePropagation()}function Pu(t){t.preventDefault(),t.stopImmediatePropagation()}function Gv(t){var n=t.document.documentElement,r=Kr(t).on("dragstart.drag",Pu,_p);"onselectstart"in n?r.on("selectstart.drag",Pu,_p):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function Jv(t,n){var r=t.document.documentElement,s=Kr(t).on("dragstart.drag",null);n&&(s.on("click.drag",Pu,_p),setTimeout(function(){s.on("click.drag",null)},0)),"onselectstart"in r?s.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}const _m=t=>()=>t;function Af(t,{sourceEvent:n,subject:r,target:s,identifier:l,active:p,x:m,y:h,dx:f,dy:x,dispatch:j}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:l,enumerable:!0,configurable:!0},active:{value:p,enumerable:!0,configurable:!0},x:{value:m,enumerable:!0,configurable:!0},y:{value:h,enumerable:!0,configurable:!0},dx:{value:f,enumerable:!0,configurable:!0},dy:{value:x,enumerable:!0,configurable:!0},_:{value:j}})}Af.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function lw(t){return!t.ctrlKey&&!t.button}function cw(){return this.parentNode}function dw(t,n){return n??{x:t.x,y:t.y}}function uw(){return navigator.maxTouchPoints||"ontouchstart"in this}function Kv(){var t=lw,n=cw,r=dw,s=uw,l={},p=Ah("start","drag","end"),m=0,h,f,x,j,w=0;function N(F){F.on("mousedown.drag",C).filter(s).on("touchstart.drag",R).on("touchmove.drag",L,iw).on("touchend.drag touchcancel.drag",U).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function C(F,Z){if(!(j||!t.call(this,F,Z))){var oe=P(this,n.call(this,F,Z),F,Z,"mouse");oe&&(Kr(F.view).on("mousemove.drag",E,_p).on("mouseup.drag",T,_p),Gv(F.view),ef(F),x=!1,h=F.clientX,f=F.clientY,oe("start",F))}}function E(F){if(Pu(F),!x){var Z=F.clientX-h,oe=F.clientY-f;x=Z*Z+oe*oe>w}l.mouse("drag",F)}function T(F){Kr(F.view).on("mousemove.drag mouseup.drag",null),Jv(F.view,x),Pu(F),l.mouse("end",F)}function R(F,Z){if(t.call(this,F,Z)){var oe=F.changedTouches,ae=n.call(this,F,Z),te=oe.length,X,fe;for(X=0;X<te;++X)(fe=P(this,ae,F,Z,oe[X].identifier,oe[X]))&&(ef(F),fe("start",F,oe[X]))}}function L(F){var Z=F.changedTouches,oe=Z.length,ae,te;for(ae=0;ae<oe;++ae)(te=l[Z[ae].identifier])&&(Pu(F),te("drag",F,Z[ae]))}function U(F){var Z=F.changedTouches,oe=Z.length,ae,te;for(j&&clearTimeout(j),j=setTimeout(function(){j=null},500),ae=0;ae<oe;++ae)(te=l[Z[ae].identifier])&&(ef(F),te("end",F,Z[ae]))}function P(F,Z,oe,ae,te,X){var fe=p.copy(),ve=Ys(X||oe,Z),ye,se,M;if((M=r.call(F,new Af("beforestart",{sourceEvent:oe,target:N,identifier:te,active:m,x:ve[0],y:ve[1],dx:0,dy:0,dispatch:fe}),ae))!=null)return ye=M.x-ve[0]||0,se=M.y-ve[1]||0,function ee(q,ie,G){var $=ve,K;switch(q){case"start":l[te]=ee,K=m++;break;case"end":delete l[te],--m;case"drag":ve=Ys(G||ie,Z),K=m;break}fe.call(q,F,new Af(q,{sourceEvent:ie,subject:M,target:N,identifier:te,active:K,x:ve[0]+ye,y:ve[1]+se,dx:ve[0]-$[0],dy:ve[1]-$[1],dispatch:fe}),ae)}}return N.filter=function(F){return arguments.length?(t=typeof F=="function"?F:_m(!!F),N):t},N.container=function(F){return arguments.length?(n=typeof F=="function"?F:_m(F),N):n},N.subject=function(F){return arguments.length?(r=typeof F=="function"?F:_m(F),N):r},N.touchable=function(F){return arguments.length?(s=typeof F=="function"?F:_m(!!F),N):s},N.on=function(){var F=p.on.apply(p,arguments);return F===p?N:F},N.clickDistance=function(F){return arguments.length?(w=(F=+F)*F,N):Math.sqrt(w)},N}function ig(t,n,r){t.prototype=n.prototype=r,r.constructor=t}function Qv(t,n){var r=Object.create(t.prototype);for(var s in n)r[s]=n[s];return r}function Jp(){}var Op=.7,ph=1/Op,_u="\\s*([+-]?\\d+)\\s*",Rp="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Yi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",pw=/^#([0-9a-f]{3,8})$/,mw=new RegExp(`^rgb\\(${_u},${_u},${_u}\\)$`),hw=new RegExp(`^rgb\\(${Yi},${Yi},${Yi}\\)$`),fw=new RegExp(`^rgba\\(${_u},${_u},${_u},${Rp}\\)$`),gw=new RegExp(`^rgba\\(${Yi},${Yi},${Yi},${Rp}\\)$`),xw=new RegExp(`^hsl\\(${Rp},${Yi},${Yi}\\)$`),vw=new RegExp(`^hsla\\(${Rp},${Yi},${Yi},${Rp}\\)$`),Yg={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ig(Jp,Fp,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Zg,formatHex:Zg,formatHex8:yw,formatHsl:jw,formatRgb:ex,toString:ex});function Zg(){return this.rgb().formatHex()}function yw(){return this.rgb().formatHex8()}function jw(){return Xv(this).formatHsl()}function ex(){return this.rgb().formatRgb()}function Fp(t){var n,r;return t=(t+"").trim().toLowerCase(),(n=pw.exec(t))?(r=n[1].length,n=parseInt(n[1],16),r===6?tx(n):r===3?new hr(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):r===8?Om(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):r===4?Om(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=mw.exec(t))?new hr(n[1],n[2],n[3],1):(n=hw.exec(t))?new hr(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=fw.exec(t))?Om(n[1],n[2],n[3],n[4]):(n=gw.exec(t))?Om(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=xw.exec(t))?ax(n[1],n[2]/100,n[3]/100,1):(n=vw.exec(t))?ax(n[1],n[2]/100,n[3]/100,n[4]):Yg.hasOwnProperty(t)?tx(Yg[t]):t==="transparent"?new hr(NaN,NaN,NaN,0):null}function tx(t){return new hr(t>>16&255,t>>8&255,t&255,1)}function Om(t,n,r,s){return s<=0&&(t=n=r=NaN),new hr(t,n,r,s)}function bw(t){return t instanceof Jp||(t=Fp(t)),t?(t=t.rgb(),new hr(t.r,t.g,t.b,t.opacity)):new hr}function Ef(t,n,r,s){return arguments.length===1?bw(t):new hr(t,n,r,s??1)}function hr(t,n,r,s){this.r=+t,this.g=+n,this.b=+r,this.opacity=+s}ig(hr,Ef,Qv(Jp,{brighter(t){return t=t==null?ph:Math.pow(ph,t),new hr(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?Op:Math.pow(Op,t),new hr(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new hr(Ld(this.r),Ld(this.g),Ld(this.b),mh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:nx,formatHex:nx,formatHex8:ww,formatRgb:ox,toString:ox}));function nx(){return`#${Rd(this.r)}${Rd(this.g)}${Rd(this.b)}`}function ww(){return`#${Rd(this.r)}${Rd(this.g)}${Rd(this.b)}${Rd((isNaN(this.opacity)?1:this.opacity)*255)}`}function ox(){const t=mh(this.opacity);return`${t===1?"rgb(":"rgba("}${Ld(this.r)}, ${Ld(this.g)}, ${Ld(this.b)}${t===1?")":`, ${t})`}`}function mh(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ld(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Rd(t){return t=Ld(t),(t<16?"0":"")+t.toString(16)}function ax(t,n,r,s){return s<=0?t=n=r=NaN:r<=0||r>=1?t=n=NaN:n<=0&&(t=NaN),new Zs(t,n,r,s)}function Xv(t){if(t instanceof Zs)return new Zs(t.h,t.s,t.l,t.opacity);if(t instanceof Jp||(t=Fp(t)),!t)return new Zs;if(t instanceof Zs)return t;t=t.rgb();var n=t.r/255,r=t.g/255,s=t.b/255,l=Math.min(n,r,s),p=Math.max(n,r,s),m=NaN,h=p-l,f=(p+l)/2;return h?(n===p?m=(r-s)/h+(r<s)*6:r===p?m=(s-n)/h+2:m=(n-r)/h+4,h/=f<.5?p+l:2-p-l,m*=60):h=f>0&&f<1?0:m,new Zs(m,h,f,t.opacity)}function Nw(t,n,r,s){return arguments.length===1?Xv(t):new Zs(t,n,r,s??1)}function Zs(t,n,r,s){this.h=+t,this.s=+n,this.l=+r,this.opacity=+s}ig(Zs,Nw,Qv(Jp,{brighter(t){return t=t==null?ph:Math.pow(ph,t),new Zs(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?Op:Math.pow(Op,t),new Zs(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,s=r+(r<.5?r:1-r)*n,l=2*r-s;return new hr(tf(t>=240?t-240:t+120,l,s),tf(t,l,s),tf(t<120?t+240:t-120,l,s),this.opacity)},clamp(){return new Zs(rx(this.h),Rm(this.s),Rm(this.l),mh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=mh(this.opacity);return`${t===1?"hsl(":"hsla("}${rx(this.h)}, ${Rm(this.s)*100}%, ${Rm(this.l)*100}%${t===1?")":`, ${t})`}`}}));function rx(t){return t=(t||0)%360,t<0?t+360:t}function Rm(t){return Math.max(0,Math.min(1,t||0))}function tf(t,n,r){return(t<60?n+(r-n)*t/60:t<180?r:t<240?n+(r-n)*(240-t)/60:n)*255}const Yv=t=>()=>t;function Cw(t,n){return function(r){return t+r*n}}function Sw(t,n,r){return t=Math.pow(t,r),n=Math.pow(n,r)-t,r=1/r,function(s){return Math.pow(t+s*n,r)}}function kw(t){return(t=+t)==1?Zv:function(n,r){return r-n?Sw(n,r,t):Yv(isNaN(n)?r:n)}}function Zv(t,n){var r=n-t;return r?Cw(t,r):Yv(isNaN(t)?n:t)}const sx=(function t(n){var r=kw(n);function s(l,p){var m=r((l=Ef(l)).r,(p=Ef(p)).r),h=r(l.g,p.g),f=r(l.b,p.b),x=Zv(l.opacity,p.opacity);return function(j){return l.r=m(j),l.g=h(j),l.b=f(j),l.opacity=x(j),l+""}}return s.gamma=t,s})(1);function _c(t,n){return t=+t,n=+n,function(r){return t*(1-r)+n*r}}var Mf=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nf=new RegExp(Mf.source,"g");function Aw(t){return function(){return t}}function Ew(t){return function(n){return t(n)+""}}function Mw(t,n){var r=Mf.lastIndex=nf.lastIndex=0,s,l,p,m=-1,h=[],f=[];for(t=t+"",n=n+"";(s=Mf.exec(t))&&(l=nf.exec(n));)(p=l.index)>r&&(p=n.slice(r,p),h[m]?h[m]+=p:h[++m]=p),(s=s[0])===(l=l[0])?h[m]?h[m]+=l:h[++m]=l:(h[++m]=null,f.push({i:m,x:_c(s,l)})),r=nf.lastIndex;return r<n.length&&(p=n.slice(r),h[m]?h[m]+=p:h[++m]=p),h.length<2?f[0]?Ew(f[0].x):Aw(n):(n=f.length,function(x){for(var j=0,w;j<n;++j)h[(w=f[j]).i]=w.x(x);return h.join("")})}var ix=180/Math.PI,Tf={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ey(t,n,r,s,l,p){var m,h,f;return(m=Math.sqrt(t*t+n*n))&&(t/=m,n/=m),(f=t*r+n*s)&&(r-=t*f,s-=n*f),(h=Math.sqrt(r*r+s*s))&&(r/=h,s/=h,f/=h),t*s<n*r&&(t=-t,n=-n,f=-f,m=-m),{translateX:l,translateY:p,rotate:Math.atan2(n,t)*ix,skewX:Math.atan(f)*ix,scaleX:m,scaleY:h}}var Fm;function Tw(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?Tf:ey(n.a,n.b,n.c,n.d,n.e,n.f)}function Iw(t){return t==null||(Fm||(Fm=document.createElementNS("http://www.w3.org/2000/svg","g")),Fm.setAttribute("transform",t),!(t=Fm.transform.baseVal.consolidate()))?Tf:(t=t.matrix,ey(t.a,t.b,t.c,t.d,t.e,t.f))}function ty(t,n,r,s){function l(x){return x.length?x.pop()+" ":""}function p(x,j,w,N,C,E){if(x!==w||j!==N){var T=C.push("translate(",null,n,null,r);E.push({i:T-4,x:_c(x,w)},{i:T-2,x:_c(j,N)})}else(w||N)&&C.push("translate("+w+n+N+r)}function m(x,j,w,N){x!==j?(x-j>180?j+=360:j-x>180&&(x+=360),N.push({i:w.push(l(w)+"rotate(",null,s)-2,x:_c(x,j)})):j&&w.push(l(w)+"rotate("+j+s)}function h(x,j,w,N){x!==j?N.push({i:w.push(l(w)+"skewX(",null,s)-2,x:_c(x,j)}):j&&w.push(l(w)+"skewX("+j+s)}function f(x,j,w,N,C,E){if(x!==w||j!==N){var T=C.push(l(C)+"scale(",null,",",null,")");E.push({i:T-4,x:_c(x,w)},{i:T-2,x:_c(j,N)})}else(w!==1||N!==1)&&C.push(l(C)+"scale("+w+","+N+")")}return function(x,j){var w=[],N=[];return x=t(x),j=t(j),p(x.translateX,x.translateY,j.translateX,j.translateY,w,N),m(x.rotate,j.rotate,w,N),h(x.skewX,j.skewX,w,N),f(x.scaleX,x.scaleY,j.scaleX,j.scaleY,w,N),x=j=null,function(C){for(var E=-1,T=N.length,R;++E<T;)w[(R=N[E]).i]=R.x(C);return w.join("")}}}var Pw=ty(Tw,"px, ","px)","deg)"),_w=ty(Iw,", ",")",")"),Ow=1e-12;function lx(t){return((t=Math.exp(t))+1/t)/2}function Rw(t){return((t=Math.exp(t))-1/t)/2}function Fw(t){return((t=Math.exp(2*t))-1)/(t+1)}const zw=(function t(n,r,s){function l(p,m){var h=p[0],f=p[1],x=p[2],j=m[0],w=m[1],N=m[2],C=j-h,E=w-f,T=C*C+E*E,R,L;if(T<Ow)L=Math.log(N/x)/n,R=function(ae){return[h+ae*C,f+ae*E,x*Math.exp(n*ae*L)]};else{var U=Math.sqrt(T),P=(N*N-x*x+s*T)/(2*x*r*U),F=(N*N-x*x-s*T)/(2*N*r*U),Z=Math.log(Math.sqrt(P*P+1)-P),oe=Math.log(Math.sqrt(F*F+1)-F);L=(oe-Z)/n,R=function(ae){var te=ae*L,X=lx(Z),fe=x/(r*U)*(X*Fw(n*te+Z)-Rw(Z));return[h+fe*C,f+fe*E,x*X/lx(n*te+Z)]}}return R.duration=L*1e3*n/Math.SQRT2,R}return l.rho=function(p){var m=Math.max(.001,+p),h=m*m,f=h*h;return t(m,h,f)},l})(Math.SQRT2,2,4);var Du=0,Cp=0,mp=0,ny=1e3,hh,Sp,fh=0,Vd=0,Mh=0,zp=typeof performance=="object"&&performance.now?performance:Date,oy=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function lg(){return Vd||(oy(Lw),Vd=zp.now()+Mh)}function Lw(){Vd=0}function gh(){this._call=this._time=this._next=null}gh.prototype=ay.prototype={constructor:gh,restart:function(t,n,r){if(typeof t!="function")throw new TypeError("callback is not a function");r=(r==null?lg():+r)+(n==null?0:+n),!this._next&&Sp!==this&&(Sp?Sp._next=this:hh=this,Sp=this),this._call=t,this._time=r,If()},stop:function(){this._call&&(this._call=null,this._time=1/0,If())}};function ay(t,n,r){var s=new gh;return s.restart(t,n,r),s}function Dw(){lg(),++Du;for(var t=hh,n;t;)(n=Vd-t._time)>=0&&t._call.call(void 0,n),t=t._next;--Du}function cx(){Vd=(fh=zp.now())+Mh,Du=Cp=0;try{Dw()}finally{Du=0,Vw(),Vd=0}}function $w(){var t=zp.now(),n=t-fh;n>ny&&(Mh-=n,fh=t)}function Vw(){for(var t,n=hh,r,s=1/0;n;)n._call?(s>n._time&&(s=n._time),t=n,n=n._next):(r=n._next,n._next=null,n=t?t._next=r:hh=r);Sp=t,If(s)}function If(t){if(!Du){Cp&&(Cp=clearTimeout(Cp));var n=t-Vd;n>24?(t<1/0&&(Cp=setTimeout(cx,t-zp.now()-Mh)),mp&&(mp=clearInterval(mp))):(mp||(fh=zp.now(),mp=setInterval($w,ny)),Du=1,oy(cx))}}function dx(t,n,r){var s=new gh;return n=n==null?0:+n,s.restart(l=>{s.stop(),t(l+n)},n,r),s}var Bw=Ah("start","end","cancel","interrupt"),Uw=[],ry=0,ux=1,Pf=2,ah=3,px=4,_f=5,rh=6;function Th(t,n,r,s,l,p){var m=t.__transition;if(!m)t.__transition={};else if(r in m)return;qw(t,r,{name:n,index:s,group:l,on:Bw,tween:Uw,time:p.time,delay:p.delay,duration:p.duration,ease:p.ease,timer:null,state:ry})}function cg(t,n){var r=ti(t,n);if(r.state>ry)throw new Error("too late; already scheduled");return r}function Zi(t,n){var r=ti(t,n);if(r.state>ah)throw new Error("too late; already running");return r}function ti(t,n){var r=t.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function qw(t,n,r){var s=t.__transition,l;s[n]=r,r.timer=ay(p,0,r.time);function p(x){r.state=ux,r.timer.restart(m,r.delay,r.time),r.delay<=x&&m(x-r.delay)}function m(x){var j,w,N,C;if(r.state!==ux)return f();for(j in s)if(C=s[j],C.name===r.name){if(C.state===ah)return dx(m);C.state===px?(C.state=rh,C.timer.stop(),C.on.call("interrupt",t,t.__data__,C.index,C.group),delete s[j]):+j<n&&(C.state=rh,C.timer.stop(),C.on.call("cancel",t,t.__data__,C.index,C.group),delete s[j])}if(dx(function(){r.state===ah&&(r.state=px,r.timer.restart(h,r.delay,r.time),h(x))}),r.state=Pf,r.on.call("start",t,t.__data__,r.index,r.group),r.state===Pf){for(r.state=ah,l=new Array(N=r.tween.length),j=0,w=-1;j<N;++j)(C=r.tween[j].value.call(t,t.__data__,r.index,r.group))&&(l[++w]=C);l.length=w+1}}function h(x){for(var j=x<r.duration?r.ease.call(null,x/r.duration):(r.timer.restart(f),r.state=_f,1),w=-1,N=l.length;++w<N;)l[w].call(t,j);r.state===_f&&(r.on.call("end",t,t.__data__,r.index,r.group),f())}function f(){r.state=rh,r.timer.stop(),delete s[n];for(var x in s)return;delete t.__transition}}function sh(t,n){var r=t.__transition,s,l,p=!0,m;if(r){n=n==null?null:n+"";for(m in r){if((s=r[m]).name!==n){p=!1;continue}l=s.state>Pf&&s.state<_f,s.state=rh,s.timer.stop(),s.on.call(l?"interrupt":"cancel",t,t.__data__,s.index,s.group),delete r[m]}p&&delete t.__transition}}function Hw(t){return this.each(function(){sh(this,t)})}function Ww(t,n){var r,s;return function(){var l=Zi(this,t),p=l.tween;if(p!==r){s=r=p;for(var m=0,h=s.length;m<h;++m)if(s[m].name===n){s=s.slice(),s.splice(m,1);break}}l.tween=s}}function Gw(t,n,r){var s,l;if(typeof r!="function")throw new Error;return function(){var p=Zi(this,t),m=p.tween;if(m!==s){l=(s=m).slice();for(var h={name:n,value:r},f=0,x=l.length;f<x;++f)if(l[f].name===n){l[f]=h;break}f===x&&l.push(h)}p.tween=l}}function Jw(t,n){var r=this._id;if(t+="",arguments.length<2){for(var s=ti(this.node(),r).tween,l=0,p=s.length,m;l<p;++l)if((m=s[l]).name===t)return m.value;return null}return this.each((n==null?Ww:Gw)(r,t,n))}function dg(t,n,r){var s=t._id;return t.each(function(){var l=Zi(this,s);(l.value||(l.value={}))[n]=r.apply(this,arguments)}),function(l){return ti(l,s).value[n]}}function sy(t,n){var r;return(typeof n=="number"?_c:n instanceof Fp?sx:(r=Fp(n))?(n=r,sx):Mw)(t,n)}function Kw(t){return function(){this.removeAttribute(t)}}function Qw(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Xw(t,n,r){var s,l=r+"",p;return function(){var m=this.getAttribute(t);return m===l?null:m===s?p:p=n(s=m,r)}}function Yw(t,n,r){var s,l=r+"",p;return function(){var m=this.getAttributeNS(t.space,t.local);return m===l?null:m===s?p:p=n(s=m,r)}}function Zw(t,n,r){var s,l,p;return function(){var m,h=r(this),f;return h==null?void this.removeAttribute(t):(m=this.getAttribute(t),f=h+"",m===f?null:m===s&&f===l?p:(l=f,p=n(s=m,h)))}}function eN(t,n,r){var s,l,p;return function(){var m,h=r(this),f;return h==null?void this.removeAttributeNS(t.space,t.local):(m=this.getAttributeNS(t.space,t.local),f=h+"",m===f?null:m===s&&f===l?p:(l=f,p=n(s=m,h)))}}function tN(t,n){var r=Eh(t),s=r==="transform"?_w:sy;return this.attrTween(t,typeof n=="function"?(r.local?eN:Zw)(r,s,dg(this,"attr."+t,n)):n==null?(r.local?Qw:Kw)(r):(r.local?Yw:Xw)(r,s,n))}function nN(t,n){return function(r){this.setAttribute(t,n.call(this,r))}}function oN(t,n){return function(r){this.setAttributeNS(t.space,t.local,n.call(this,r))}}function aN(t,n){var r,s;function l(){var p=n.apply(this,arguments);return p!==s&&(r=(s=p)&&oN(t,p)),r}return l._value=n,l}function rN(t,n){var r,s;function l(){var p=n.apply(this,arguments);return p!==s&&(r=(s=p)&&nN(t,p)),r}return l._value=n,l}function sN(t,n){var r="attr."+t;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;var s=Eh(t);return this.tween(r,(s.local?aN:rN)(s,n))}function iN(t,n){return function(){cg(this,t).delay=+n.apply(this,arguments)}}function lN(t,n){return n=+n,function(){cg(this,t).delay=n}}function cN(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?iN:lN)(n,t)):ti(this.node(),n).delay}function dN(t,n){return function(){Zi(this,t).duration=+n.apply(this,arguments)}}function uN(t,n){return n=+n,function(){Zi(this,t).duration=n}}function pN(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?dN:uN)(n,t)):ti(this.node(),n).duration}function mN(t,n){if(typeof n!="function")throw new Error;return function(){Zi(this,t).ease=n}}function hN(t){var n=this._id;return arguments.length?this.each(mN(n,t)):ti(this.node(),n).ease}function fN(t,n){return function(){var r=n.apply(this,arguments);if(typeof r!="function")throw new Error;Zi(this,t).ease=r}}function gN(t){if(typeof t!="function")throw new Error;return this.each(fN(this._id,t))}function xN(t){typeof t!="function"&&(t=zv(t));for(var n=this._groups,r=n.length,s=new Array(r),l=0;l<r;++l)for(var p=n[l],m=p.length,h=s[l]=[],f,x=0;x<m;++x)(f=p[x])&&t.call(f,f.__data__,x,p)&&h.push(f);return new Vl(s,this._parents,this._name,this._id)}function vN(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,r=t._groups,s=n.length,l=r.length,p=Math.min(s,l),m=new Array(s),h=0;h<p;++h)for(var f=n[h],x=r[h],j=f.length,w=m[h]=new Array(j),N,C=0;C<j;++C)(N=f[C]||x[C])&&(w[C]=N);for(;h<s;++h)m[h]=n[h];return new Vl(m,this._parents,this._name,this._id)}function yN(t){return(t+"").trim().split(/^|\s+/).every(function(n){var r=n.indexOf(".");return r>=0&&(n=n.slice(0,r)),!n||n==="start"})}function jN(t,n,r){var s,l,p=yN(n)?cg:Zi;return function(){var m=p(this,t),h=m.on;h!==s&&(l=(s=h).copy()).on(n,r),m.on=l}}function bN(t,n){var r=this._id;return arguments.length<2?ti(this.node(),r).on.on(t):this.each(jN(r,t,n))}function wN(t){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==t)return;n&&n.removeChild(this)}}function NN(){return this.on("end.remove",wN(this._id))}function CN(t){var n=this._name,r=this._id;typeof t!="function"&&(t=rg(t));for(var s=this._groups,l=s.length,p=new Array(l),m=0;m<l;++m)for(var h=s[m],f=h.length,x=p[m]=new Array(f),j,w,N=0;N<f;++N)(j=h[N])&&(w=t.call(j,j.__data__,N,h))&&("__data__"in j&&(w.__data__=j.__data__),x[N]=w,Th(x[N],n,r,N,x,ti(j,r)));return new Vl(p,this._parents,n,r)}function SN(t){var n=this._name,r=this._id;typeof t!="function"&&(t=Fv(t));for(var s=this._groups,l=s.length,p=[],m=[],h=0;h<l;++h)for(var f=s[h],x=f.length,j,w=0;w<x;++w)if(j=f[w]){for(var N=t.call(j,j.__data__,w,f),C,E=ti(j,r),T=0,R=N.length;T<R;++T)(C=N[T])&&Th(C,n,r,T,N,E);p.push(N),m.push(j)}return new Vl(p,m,n,r)}var kN=Gp.prototype.constructor;function AN(){return new kN(this._groups,this._parents)}function EN(t,n){var r,s,l;return function(){var p=Lu(this,t),m=(this.style.removeProperty(t),Lu(this,t));return p===m?null:p===r&&m===s?l:l=n(r=p,s=m)}}function iy(t){return function(){this.style.removeProperty(t)}}function MN(t,n,r){var s,l=r+"",p;return function(){var m=Lu(this,t);return m===l?null:m===s?p:p=n(s=m,r)}}function TN(t,n,r){var s,l,p;return function(){var m=Lu(this,t),h=r(this),f=h+"";return h==null&&(f=h=(this.style.removeProperty(t),Lu(this,t))),m===f?null:m===s&&f===l?p:(l=f,p=n(s=m,h))}}function IN(t,n){var r,s,l,p="style."+n,m="end."+p,h;return function(){var f=Zi(this,t),x=f.on,j=f.value[p]==null?h||(h=iy(n)):void 0;(x!==r||l!==j)&&(s=(r=x).copy()).on(m,l=j),f.on=s}}function PN(t,n,r){var s=(t+="")=="transform"?Pw:sy;return n==null?this.styleTween(t,EN(t,s)).on("end.style."+t,iy(t)):typeof n=="function"?this.styleTween(t,TN(t,s,dg(this,"style."+t,n))).each(IN(this._id,t)):this.styleTween(t,MN(t,s,n),r).on("end.style."+t,null)}function _N(t,n,r){return function(s){this.style.setProperty(t,n.call(this,s),r)}}function ON(t,n,r){var s,l;function p(){var m=n.apply(this,arguments);return m!==l&&(s=(l=m)&&_N(t,m,r)),s}return p._value=n,p}function RN(t,n,r){var s="style."+(t+="");if(arguments.length<2)return(s=this.tween(s))&&s._value;if(n==null)return this.tween(s,null);if(typeof n!="function")throw new Error;return this.tween(s,ON(t,n,r??""))}function FN(t){return function(){this.textContent=t}}function zN(t){return function(){var n=t(this);this.textContent=n??""}}function LN(t){return this.tween("text",typeof t=="function"?zN(dg(this,"text",t)):FN(t==null?"":t+""))}function DN(t){return function(n){this.textContent=t.call(this,n)}}function $N(t){var n,r;function s(){var l=t.apply(this,arguments);return l!==r&&(n=(r=l)&&DN(l)),n}return s._value=t,s}function VN(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,$N(t))}function BN(){for(var t=this._name,n=this._id,r=ly(),s=this._groups,l=s.length,p=0;p<l;++p)for(var m=s[p],h=m.length,f,x=0;x<h;++x)if(f=m[x]){var j=ti(f,n);Th(f,t,r,x,m,{time:j.time+j.delay+j.duration,delay:0,duration:j.duration,ease:j.ease})}return new Vl(s,this._parents,t,r)}function UN(){var t,n,r=this,s=r._id,l=r.size();return new Promise(function(p,m){var h={value:m},f={value:function(){--l===0&&p()}};r.each(function(){var x=Zi(this,s),j=x.on;j!==t&&(n=(t=j).copy(),n._.cancel.push(h),n._.interrupt.push(h),n._.end.push(f)),x.on=n}),l===0&&p()})}var qN=0;function Vl(t,n,r,s){this._groups=t,this._parents=n,this._name=r,this._id=s}function ly(){return++qN}var Rl=Gp.prototype;Vl.prototype={constructor:Vl,select:CN,selectAll:SN,selectChild:Rl.selectChild,selectChildren:Rl.selectChildren,filter:xN,merge:vN,selection:AN,transition:BN,call:Rl.call,nodes:Rl.nodes,node:Rl.node,size:Rl.size,empty:Rl.empty,each:Rl.each,on:bN,attr:tN,attrTween:sN,style:PN,styleTween:RN,text:LN,textTween:VN,remove:NN,tween:Jw,delay:cN,duration:pN,ease:hN,easeVarying:gN,end:UN,[Symbol.iterator]:Rl[Symbol.iterator]};function HN(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var WN={time:null,delay:0,duration:250,ease:HN};function GN(t,n){for(var r;!(r=t.__transition)||!(r=r[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return r}function JN(t){var n,r;t instanceof Vl?(n=t._id,t=t._name):(n=ly(),(r=WN).time=lg(),t=t==null?null:t+"");for(var s=this._groups,l=s.length,p=0;p<l;++p)for(var m=s[p],h=m.length,f,x=0;x<h;++x)(f=m[x])&&Th(f,t,n,x,m,r||GN(f,n));return new Vl(s,this._parents,t,n)}Gp.prototype.interrupt=Hw;Gp.prototype.transition=JN;const zm=t=>()=>t;function KN(t,{sourceEvent:n,target:r,transform:s,dispatch:l}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:s,enumerable:!0,configurable:!0},_:{value:l}})}function Ll(t,n,r){this.k=t,this.x=n,this.y=r}Ll.prototype={constructor:Ll,scale:function(t){return t===1?this:new Ll(this.k*t,this.x,this.y)},translate:function(t,n){return t===0&n===0?this:new Ll(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Dl=new Ll(1,0,0);Ll.prototype;function of(t){t.stopImmediatePropagation()}function hp(t){t.preventDefault(),t.stopImmediatePropagation()}function QN(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function XN(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function mx(){return this.__zoom||Dl}function YN(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function ZN(){return navigator.maxTouchPoints||"ontouchstart"in this}function e1(t,n,r){var s=t.invertX(n[0][0])-r[0][0],l=t.invertX(n[1][0])-r[1][0],p=t.invertY(n[0][1])-r[0][1],m=t.invertY(n[1][1])-r[1][1];return t.translate(l>s?(s+l)/2:Math.min(0,s)||Math.max(0,l),m>p?(p+m)/2:Math.min(0,p)||Math.max(0,m))}function cy(){var t=QN,n=XN,r=e1,s=YN,l=ZN,p=[0,1/0],m=[[-1/0,-1/0],[1/0,1/0]],h=250,f=zw,x=Ah("start","zoom","end"),j,w,N,C=500,E=150,T=0,R=10;function L(M){M.property("__zoom",mx).on("wheel.zoom",te,{passive:!1}).on("mousedown.zoom",X).on("dblclick.zoom",fe).filter(l).on("touchstart.zoom",ve).on("touchmove.zoom",ye).on("touchend.zoom touchcancel.zoom",se).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}L.transform=function(M,ee,q,ie){var G=M.selection?M.selection():M;G.property("__zoom",mx),M!==G?Z(M,ee,q,ie):G.interrupt().each(function(){oe(this,arguments).event(ie).start().zoom(null,typeof ee=="function"?ee.apply(this,arguments):ee).end()})},L.scaleBy=function(M,ee,q,ie){L.scaleTo(M,function(){var G=this.__zoom.k,$=typeof ee=="function"?ee.apply(this,arguments):ee;return G*$},q,ie)},L.scaleTo=function(M,ee,q,ie){L.transform(M,function(){var G=n.apply(this,arguments),$=this.__zoom,K=q==null?F(G):typeof q=="function"?q.apply(this,arguments):q,I=$.invert(K),W=typeof ee=="function"?ee.apply(this,arguments):ee;return r(P(U($,W),K,I),G,m)},q,ie)},L.translateBy=function(M,ee,q,ie){L.transform(M,function(){return r(this.__zoom.translate(typeof ee=="function"?ee.apply(this,arguments):ee,typeof q=="function"?q.apply(this,arguments):q),n.apply(this,arguments),m)},null,ie)},L.translateTo=function(M,ee,q,ie,G){L.transform(M,function(){var $=n.apply(this,arguments),K=this.__zoom,I=ie==null?F($):typeof ie=="function"?ie.apply(this,arguments):ie;return r(Dl.translate(I[0],I[1]).scale(K.k).translate(typeof ee=="function"?-ee.apply(this,arguments):-ee,typeof q=="function"?-q.apply(this,arguments):-q),$,m)},ie,G)};function U(M,ee){return ee=Math.max(p[0],Math.min(p[1],ee)),ee===M.k?M:new Ll(ee,M.x,M.y)}function P(M,ee,q){var ie=ee[0]-q[0]*M.k,G=ee[1]-q[1]*M.k;return ie===M.x&&G===M.y?M:new Ll(M.k,ie,G)}function F(M){return[(+M[0][0]+ +M[1][0])/2,(+M[0][1]+ +M[1][1])/2]}function Z(M,ee,q,ie){M.on("start.zoom",function(){oe(this,arguments).event(ie).start()}).on("interrupt.zoom end.zoom",function(){oe(this,arguments).event(ie).end()}).tween("zoom",function(){var G=this,$=arguments,K=oe(G,$).event(ie),I=n.apply(G,$),W=q==null?F(I):typeof q=="function"?q.apply(G,$):q,xe=Math.max(I[1][0]-I[0][0],I[1][1]-I[0][1]),Q=G.__zoom,be=typeof ee=="function"?ee.apply(G,$):ee,Ce=f(Q.invert(W).concat(xe/Q.k),be.invert(W).concat(xe/be.k));return function(Oe){if(Oe===1)Oe=be;else{var B=Ce(Oe),ce=xe/B[2];Oe=new Ll(ce,W[0]-B[0]*ce,W[1]-B[1]*ce)}K.zoom(null,Oe)}})}function oe(M,ee,q){return!q&&M.__zooming||new ae(M,ee)}function ae(M,ee){this.that=M,this.args=ee,this.active=0,this.sourceEvent=null,this.extent=n.apply(M,ee),this.taps=0}ae.prototype={event:function(M){return M&&(this.sourceEvent=M),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(M,ee){return this.mouse&&M!=="mouse"&&(this.mouse[1]=ee.invert(this.mouse[0])),this.touch0&&M!=="touch"&&(this.touch0[1]=ee.invert(this.touch0[0])),this.touch1&&M!=="touch"&&(this.touch1[1]=ee.invert(this.touch1[0])),this.that.__zoom=ee,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(M){var ee=Kr(this.that).datum();x.call(M,this.that,new KN(M,{sourceEvent:this.sourceEvent,target:L,transform:this.that.__zoom,dispatch:x}),ee)}};function te(M,...ee){if(!t.apply(this,arguments))return;var q=oe(this,ee).event(M),ie=this.__zoom,G=Math.max(p[0],Math.min(p[1],ie.k*Math.pow(2,s.apply(this,arguments)))),$=Ys(M);if(q.wheel)(q.mouse[0][0]!==$[0]||q.mouse[0][1]!==$[1])&&(q.mouse[1]=ie.invert(q.mouse[0]=$)),clearTimeout(q.wheel);else{if(ie.k===G)return;q.mouse=[$,ie.invert($)],sh(this),q.start()}hp(M),q.wheel=setTimeout(K,E),q.zoom("mouse",r(P(U(ie,G),q.mouse[0],q.mouse[1]),q.extent,m));function K(){q.wheel=null,q.end()}}function X(M,...ee){if(N||!t.apply(this,arguments))return;var q=M.currentTarget,ie=oe(this,ee,!0).event(M),G=Kr(M.view).on("mousemove.zoom",W,!0).on("mouseup.zoom",xe,!0),$=Ys(M,q),K=M.clientX,I=M.clientY;Gv(M.view),of(M),ie.mouse=[$,this.__zoom.invert($)],sh(this),ie.start();function W(Q){if(hp(Q),!ie.moved){var be=Q.clientX-K,Ce=Q.clientY-I;ie.moved=be*be+Ce*Ce>T}ie.event(Q).zoom("mouse",r(P(ie.that.__zoom,ie.mouse[0]=Ys(Q,q),ie.mouse[1]),ie.extent,m))}function xe(Q){G.on("mousemove.zoom mouseup.zoom",null),Jv(Q.view,ie.moved),hp(Q),ie.event(Q).end()}}function fe(M,...ee){if(t.apply(this,arguments)){var q=this.__zoom,ie=Ys(M.changedTouches?M.changedTouches[0]:M,this),G=q.invert(ie),$=q.k*(M.shiftKey?.5:2),K=r(P(U(q,$),ie,G),n.apply(this,ee),m);hp(M),h>0?Kr(this).transition().duration(h).call(Z,K,ie,M):Kr(this).call(L.transform,K,ie,M)}}function ve(M,...ee){if(t.apply(this,arguments)){var q=M.touches,ie=q.length,G=oe(this,ee,M.changedTouches.length===ie).event(M),$,K,I,W;for(of(M),K=0;K<ie;++K)I=q[K],W=Ys(I,this),W=[W,this.__zoom.invert(W),I.identifier],G.touch0?!G.touch1&&G.touch0[2]!==W[2]&&(G.touch1=W,G.taps=0):(G.touch0=W,$=!0,G.taps=1+!!j);j&&(j=clearTimeout(j)),$&&(G.taps<2&&(w=W[0],j=setTimeout(function(){j=null},C)),sh(this),G.start())}}function ye(M,...ee){if(this.__zooming){var q=oe(this,ee).event(M),ie=M.changedTouches,G=ie.length,$,K,I,W;for(hp(M),$=0;$<G;++$)K=ie[$],I=Ys(K,this),q.touch0&&q.touch0[2]===K.identifier?q.touch0[0]=I:q.touch1&&q.touch1[2]===K.identifier&&(q.touch1[0]=I);if(K=q.that.__zoom,q.touch1){var xe=q.touch0[0],Q=q.touch0[1],be=q.touch1[0],Ce=q.touch1[1],Oe=(Oe=be[0]-xe[0])*Oe+(Oe=be[1]-xe[1])*Oe,B=(B=Ce[0]-Q[0])*B+(B=Ce[1]-Q[1])*B;K=U(K,Math.sqrt(Oe/B)),I=[(xe[0]+be[0])/2,(xe[1]+be[1])/2],W=[(Q[0]+Ce[0])/2,(Q[1]+Ce[1])/2]}else if(q.touch0)I=q.touch0[0],W=q.touch0[1];else return;q.zoom("touch",r(P(K,I,W),q.extent,m))}}function se(M,...ee){if(this.__zooming){var q=oe(this,ee).event(M),ie=M.changedTouches,G=ie.length,$,K;for(of(M),N&&clearTimeout(N),N=setTimeout(function(){N=null},C),$=0;$<G;++$)K=ie[$],q.touch0&&q.touch0[2]===K.identifier?delete q.touch0:q.touch1&&q.touch1[2]===K.identifier&&delete q.touch1;if(q.touch1&&!q.touch0&&(q.touch0=q.touch1,delete q.touch1),q.touch0)q.touch0[1]=this.__zoom.invert(q.touch0[0]);else if(q.end(),q.taps===2&&(K=Ys(K,this),Math.hypot(w[0]-K[0],w[1]-K[1])<R)){var I=Kr(this).on("dblclick.zoom");I&&I.apply(this,arguments)}}}return L.wheelDelta=function(M){return arguments.length?(s=typeof M=="function"?M:zm(+M),L):s},L.filter=function(M){return arguments.length?(t=typeof M=="function"?M:zm(!!M),L):t},L.touchable=function(M){return arguments.length?(l=typeof M=="function"?M:zm(!!M),L):l},L.extent=function(M){return arguments.length?(n=typeof M=="function"?M:zm([[+M[0][0],+M[0][1]],[+M[1][0],+M[1][1]]]),L):n},L.scaleExtent=function(M){return arguments.length?(p[0]=+M[0],p[1]=+M[1],L):[p[0],p[1]]},L.translateExtent=function(M){return arguments.length?(m[0][0]=+M[0][0],m[1][0]=+M[1][0],m[0][1]=+M[0][1],m[1][1]=+M[1][1],L):[[m[0][0],m[0][1]],[m[1][0],m[1][1]]]},L.constrain=function(M){return arguments.length?(r=M,L):r},L.duration=function(M){return arguments.length?(h=+M,L):h},L.interpolate=function(M){return arguments.length?(f=M,L):f},L.on=function(){var M=x.on.apply(x,arguments);return M===x?L:M},L.clickDistance=function(M){return arguments.length?(T=(M=+M)*M,L):Math.sqrt(T)},L.tapDistance=function(M){return arguments.length?(R=+M,L):R},L}var t1=_v();const Ih=b.createContext(null),n1=Ih.Provider,Bl={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,n)=>`Couldn't create edge for ${t?"target":"source"} handle id: "${t?n.targetHandle:n.sourceHandle}", edge id: ${n.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},dy=Bl.error001();function on(t,n){const r=b.useContext(Ih);if(r===null)throw new Error(dy);return Ov(r,t,n)}const po=()=>{const t=b.useContext(Ih);if(t===null)throw new Error(dy);return b.useMemo(()=>({getState:t.getState,setState:t.setState,subscribe:t.subscribe,destroy:t.destroy}),[t])},o1=t=>t.userSelectionActive?"none":"all";function Lp({position:t,children:n,className:r,style:s,...l}){const p=on(o1),m=`${t}`.split("-");return he.createElement("div",{className:Go(["react-flow__panel",r,...m]),style:{...s,pointerEvents:p},...l},n)}function a1({proOptions:t,position:n="bottom-right"}){return t!=null&&t.hideAttribution?null:he.createElement(Lp,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},he.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const r1=({x:t,y:n,label:r,labelStyle:s={},labelShowBg:l=!0,labelBgStyle:p={},labelBgPadding:m=[2,4],labelBgBorderRadius:h=2,children:f,className:x,...j})=>{const w=b.useRef(null),[N,C]=b.useState({x:0,y:0,width:0,height:0}),E=Go(["react-flow__edge-textwrapper",x]);return b.useEffect(()=>{if(w.current){const T=w.current.getBBox();C({x:T.x,y:T.y,width:T.width,height:T.height})}},[r]),typeof r>"u"||!r?null:he.createElement("g",{transform:`translate(${t-N.width/2} ${n-N.height/2})`,className:E,visibility:N.width?"visible":"hidden",...j},l&&he.createElement("rect",{width:N.width+2*m[0],x:-m[0],y:-m[1],height:N.height+2*m[1],className:"react-flow__edge-textbg",style:p,rx:h,ry:h}),he.createElement("text",{className:"react-flow__edge-text",y:N.height/2,dy:"0.3em",ref:w,style:s},r),f)};var s1=b.memo(r1);const ug=t=>({width:t.offsetWidth,height:t.offsetHeight}),Dc=(t,n=0,r=1)=>Math.min(Math.max(t,n),r),pg=(t={x:0,y:0},n)=>({x:Dc(t.x,n[0][0],n[1][0]),y:Dc(t.y,n[0][1],n[1][1])}),hx=(t,n,r)=>t<n?Dc(Math.abs(t-n),1,50)/50:t>r?-Dc(Math.abs(t-r),1,50)/50:0,uy=(t,n)=>{const r=hx(t.x,35,n.width-35)*20,s=hx(t.y,35,n.height-35)*20;return[r,s]},py=t=>{var n;return((n=t.getRootNode)==null?void 0:n.call(t))||(window==null?void 0:window.document)},my=(t,n)=>({x:Math.min(t.x,n.x),y:Math.min(t.y,n.y),x2:Math.max(t.x2,n.x2),y2:Math.max(t.y2,n.y2)}),Dp=({x:t,y:n,width:r,height:s})=>({x:t,y:n,x2:t+r,y2:n+s}),hy=({x:t,y:n,x2:r,y2:s})=>({x:t,y:n,width:r-t,height:s-n}),fx=t=>({...t.positionAbsolute||{x:0,y:0},width:t.width||0,height:t.height||0}),i1=(t,n)=>hy(my(Dp(t),Dp(n))),Of=(t,n)=>{const r=Math.max(0,Math.min(t.x+t.width,n.x+n.width)-Math.max(t.x,n.x)),s=Math.max(0,Math.min(t.y+t.height,n.y+n.height)-Math.max(t.y,n.y));return Math.ceil(r*s)},l1=t=>Cs(t.width)&&Cs(t.height)&&Cs(t.x)&&Cs(t.y),Cs=t=>!isNaN(t)&&isFinite(t),Pn=Symbol.for("internals"),fy=["Enter"," ","Escape"],c1=(t,n)=>{},d1=t=>"nativeEvent"in t;function Rf(t){var l,p;const n=d1(t)?t.nativeEvent:t,r=((p=(l=n.composedPath)==null?void 0:l.call(n))==null?void 0:p[0])||t.target;return["INPUT","SELECT","TEXTAREA"].includes(r==null?void 0:r.nodeName)||(r==null?void 0:r.hasAttribute("contenteditable"))||!!(r!=null&&r.closest(".nokey"))}const gy=t=>"clientX"in t,zc=(t,n)=>{var p,m;const r=gy(t),s=r?t.clientX:(p=t.touches)==null?void 0:p[0].clientX,l=r?t.clientY:(m=t.touches)==null?void 0:m[0].clientY;return{x:s-((n==null?void 0:n.left)??0),y:l-((n==null?void 0:n.top)??0)}},xh=()=>{var t;return typeof navigator<"u"&&((t=navigator==null?void 0:navigator.userAgent)==null?void 0:t.indexOf("Mac"))>=0},Kp=({id:t,path:n,labelX:r,labelY:s,label:l,labelStyle:p,labelShowBg:m,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:x,style:j,markerEnd:w,markerStart:N,interactionWidth:C=20})=>he.createElement(he.Fragment,null,he.createElement("path",{id:t,style:j,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:w,markerStart:N}),C&&he.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:C,className:"react-flow__edge-interaction"}),l&&Cs(r)&&Cs(s)?he.createElement(s1,{x:r,y:s,label:l,labelStyle:p,labelShowBg:m,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:x}):null);Kp.displayName="BaseEdge";function fp(t,n,r){return r===void 0?r:s=>{const l=n().edges.find(p=>p.id===t);l&&r(s,{...l})}}function xy({sourceX:t,sourceY:n,targetX:r,targetY:s}){const l=Math.abs(r-t)/2,p=r<t?r+l:r-l,m=Math.abs(s-n)/2,h=s<n?s+m:s-m;return[p,h,l,m]}function vy({sourceX:t,sourceY:n,targetX:r,targetY:s,sourceControlX:l,sourceControlY:p,targetControlX:m,targetControlY:h}){const f=t*.125+l*.375+m*.375+r*.125,x=n*.125+p*.375+h*.375+s*.125,j=Math.abs(f-t),w=Math.abs(x-n);return[f,x,j,w]}var Bd;(function(t){t.Strict="strict",t.Loose="loose"})(Bd||(Bd={}));var Fd;(function(t){t.Free="free",t.Vertical="vertical",t.Horizontal="horizontal"})(Fd||(Fd={}));var $p;(function(t){t.Partial="partial",t.Full="full"})($p||($p={}));var Fc;(function(t){t.Bezier="default",t.Straight="straight",t.Step="step",t.SmoothStep="smoothstep",t.SimpleBezier="simplebezier"})(Fc||(Fc={}));var Vp;(function(t){t.Arrow="arrow",t.ArrowClosed="arrowclosed"})(Vp||(Vp={}));var rt;(function(t){t.Left="left",t.Top="top",t.Right="right",t.Bottom="bottom"})(rt||(rt={}));function gx({pos:t,x1:n,y1:r,x2:s,y2:l}){return t===rt.Left||t===rt.Right?[.5*(n+s),r]:[n,.5*(r+l)]}function yy({sourceX:t,sourceY:n,sourcePosition:r=rt.Bottom,targetX:s,targetY:l,targetPosition:p=rt.Top}){const[m,h]=gx({pos:r,x1:t,y1:n,x2:s,y2:l}),[f,x]=gx({pos:p,x1:s,y1:l,x2:t,y2:n}),[j,w,N,C]=vy({sourceX:t,sourceY:n,targetX:s,targetY:l,sourceControlX:m,sourceControlY:h,targetControlX:f,targetControlY:x});return[`M${t},${n} C${m},${h} ${f},${x} ${s},${l}`,j,w,N,C]}const mg=b.memo(({sourceX:t,sourceY:n,targetX:r,targetY:s,sourcePosition:l=rt.Bottom,targetPosition:p=rt.Top,label:m,labelStyle:h,labelShowBg:f,labelBgStyle:x,labelBgPadding:j,labelBgBorderRadius:w,style:N,markerEnd:C,markerStart:E,interactionWidth:T})=>{const[R,L,U]=yy({sourceX:t,sourceY:n,sourcePosition:l,targetX:r,targetY:s,targetPosition:p});return he.createElement(Kp,{path:R,labelX:L,labelY:U,label:m,labelStyle:h,labelShowBg:f,labelBgStyle:x,labelBgPadding:j,labelBgBorderRadius:w,style:N,markerEnd:C,markerStart:E,interactionWidth:T})});mg.displayName="SimpleBezierEdge";const xx={[rt.Left]:{x:-1,y:0},[rt.Right]:{x:1,y:0},[rt.Top]:{x:0,y:-1},[rt.Bottom]:{x:0,y:1}},u1=({source:t,sourcePosition:n=rt.Bottom,target:r})=>n===rt.Left||n===rt.Right?t.x<r.x?{x:1,y:0}:{x:-1,y:0}:t.y<r.y?{x:0,y:1}:{x:0,y:-1},vx=(t,n)=>Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2));function p1({source:t,sourcePosition:n=rt.Bottom,target:r,targetPosition:s=rt.Top,center:l,offset:p}){const m=xx[n],h=xx[s],f={x:t.x+m.x*p,y:t.y+m.y*p},x={x:r.x+h.x*p,y:r.y+h.y*p},j=u1({source:f,sourcePosition:n,target:x}),w=j.x!==0?"x":"y",N=j[w];let C=[],E,T;const R={x:0,y:0},L={x:0,y:0},[U,P,F,Z]=xy({sourceX:t.x,sourceY:t.y,targetX:r.x,targetY:r.y});if(m[w]*h[w]===-1){E=l.x??U,T=l.y??P;const ae=[{x:E,y:f.y},{x:E,y:x.y}],te=[{x:f.x,y:T},{x:x.x,y:T}];m[w]===N?C=w==="x"?ae:te:C=w==="x"?te:ae}else{const ae=[{x:f.x,y:x.y}],te=[{x:x.x,y:f.y}];if(w==="x"?C=m.x===N?te:ae:C=m.y===N?ae:te,n===s){const se=Math.abs(t[w]-r[w]);if(se<=p){const M=Math.min(p-1,p-se);m[w]===N?R[w]=(f[w]>t[w]?-1:1)*M:L[w]=(x[w]>r[w]?-1:1)*M}}if(n!==s){const se=w==="x"?"y":"x",M=m[w]===h[se],ee=f[se]>x[se],q=f[se]<x[se];(m[w]===1&&(!M&&ee||M&&q)||m[w]!==1&&(!M&&q||M&&ee))&&(C=w==="x"?ae:te)}const X={x:f.x+R.x,y:f.y+R.y},fe={x:x.x+L.x,y:x.y+L.y},ve=Math.max(Math.abs(X.x-C[0].x),Math.abs(fe.x-C[0].x)),ye=Math.max(Math.abs(X.y-C[0].y),Math.abs(fe.y-C[0].y));ve>=ye?(E=(X.x+fe.x)/2,T=C[0].y):(E=C[0].x,T=(X.y+fe.y)/2)}return[[t,{x:f.x+R.x,y:f.y+R.y},...C,{x:x.x+L.x,y:x.y+L.y},r],E,T,F,Z]}function m1(t,n,r,s){const l=Math.min(vx(t,n)/2,vx(n,r)/2,s),{x:p,y:m}=n;if(t.x===p&&p===r.x||t.y===m&&m===r.y)return`L${p} ${m}`;if(t.y===m){const x=t.x<r.x?-1:1,j=t.y<r.y?1:-1;return`L ${p+l*x},${m}Q ${p},${m} ${p},${m+l*j}`}const h=t.x<r.x?1:-1,f=t.y<r.y?-1:1;return`L ${p},${m+l*f}Q ${p},${m} ${p+l*h},${m}`}function Ff({sourceX:t,sourceY:n,sourcePosition:r=rt.Bottom,targetX:s,targetY:l,targetPosition:p=rt.Top,borderRadius:m=5,centerX:h,centerY:f,offset:x=20}){const[j,w,N,C,E]=p1({source:{x:t,y:n},sourcePosition:r,target:{x:s,y:l},targetPosition:p,center:{x:h,y:f},offset:x});return[j.reduce((R,L,U)=>{let P="";return U>0&&U<j.length-1?P=m1(j[U-1],L,j[U+1],m):P=`${U===0?"M":"L"}${L.x} ${L.y}`,R+=P,R},""),w,N,C,E]}const Ph=b.memo(({sourceX:t,sourceY:n,targetX:r,targetY:s,label:l,labelStyle:p,labelShowBg:m,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:x,style:j,sourcePosition:w=rt.Bottom,targetPosition:N=rt.Top,markerEnd:C,markerStart:E,pathOptions:T,interactionWidth:R})=>{const[L,U,P]=Ff({sourceX:t,sourceY:n,sourcePosition:w,targetX:r,targetY:s,targetPosition:N,borderRadius:T==null?void 0:T.borderRadius,offset:T==null?void 0:T.offset});return he.createElement(Kp,{path:L,labelX:U,labelY:P,label:l,labelStyle:p,labelShowBg:m,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:x,style:j,markerEnd:C,markerStart:E,interactionWidth:R})});Ph.displayName="SmoothStepEdge";const hg=b.memo(t=>{var n;return he.createElement(Ph,{...t,pathOptions:b.useMemo(()=>{var r;return{borderRadius:0,offset:(r=t.pathOptions)==null?void 0:r.offset}},[(n=t.pathOptions)==null?void 0:n.offset])})});hg.displayName="StepEdge";function h1({sourceX:t,sourceY:n,targetX:r,targetY:s}){const[l,p,m,h]=xy({sourceX:t,sourceY:n,targetX:r,targetY:s});return[`M ${t},${n}L ${r},${s}`,l,p,m,h]}const fg=b.memo(({sourceX:t,sourceY:n,targetX:r,targetY:s,label:l,labelStyle:p,labelShowBg:m,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:x,style:j,markerEnd:w,markerStart:N,interactionWidth:C})=>{const[E,T,R]=h1({sourceX:t,sourceY:n,targetX:r,targetY:s});return he.createElement(Kp,{path:E,labelX:T,labelY:R,label:l,labelStyle:p,labelShowBg:m,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:x,style:j,markerEnd:w,markerStart:N,interactionWidth:C})});fg.displayName="StraightEdge";function Lm(t,n){return t>=0?.5*t:n*25*Math.sqrt(-t)}function yx({pos:t,x1:n,y1:r,x2:s,y2:l,c:p}){switch(t){case rt.Left:return[n-Lm(n-s,p),r];case rt.Right:return[n+Lm(s-n,p),r];case rt.Top:return[n,r-Lm(r-l,p)];case rt.Bottom:return[n,r+Lm(l-r,p)]}}function gg({sourceX:t,sourceY:n,sourcePosition:r=rt.Bottom,targetX:s,targetY:l,targetPosition:p=rt.Top,curvature:m=.25}){const[h,f]=yx({pos:r,x1:t,y1:n,x2:s,y2:l,c:m}),[x,j]=yx({pos:p,x1:s,y1:l,x2:t,y2:n,c:m}),[w,N,C,E]=vy({sourceX:t,sourceY:n,targetX:s,targetY:l,sourceControlX:h,sourceControlY:f,targetControlX:x,targetControlY:j});return[`M${t},${n} C${h},${f} ${x},${j} ${s},${l}`,w,N,C,E]}const vh=b.memo(({sourceX:t,sourceY:n,targetX:r,targetY:s,sourcePosition:l=rt.Bottom,targetPosition:p=rt.Top,label:m,labelStyle:h,labelShowBg:f,labelBgStyle:x,labelBgPadding:j,labelBgBorderRadius:w,style:N,markerEnd:C,markerStart:E,pathOptions:T,interactionWidth:R})=>{const[L,U,P]=gg({sourceX:t,sourceY:n,sourcePosition:l,targetX:r,targetY:s,targetPosition:p,curvature:T==null?void 0:T.curvature});return he.createElement(Kp,{path:L,labelX:U,labelY:P,label:m,labelStyle:h,labelShowBg:f,labelBgStyle:x,labelBgPadding:j,labelBgBorderRadius:w,style:N,markerEnd:C,markerStart:E,interactionWidth:R})});vh.displayName="BezierEdge";const xg=b.createContext(null),f1=xg.Provider;xg.Consumer;const jy=()=>b.useContext(xg),g1=t=>"id"in t&&"source"in t&&"target"in t,x1=({source:t,sourceHandle:n,target:r,targetHandle:s})=>`reactflow__edge-${t}${n||""}-${r}${s||""}`,zf=(t,n)=>typeof t>"u"?"":typeof t=="string"?t:`${n?`${n}__`:""}${Object.keys(t).sort().map(s=>`${s}=${t[s]}`).join("&")}`,v1=(t,n)=>n.some(r=>r.source===t.source&&r.target===t.target&&(r.sourceHandle===t.sourceHandle||!r.sourceHandle&&!t.sourceHandle)&&(r.targetHandle===t.targetHandle||!r.targetHandle&&!t.targetHandle)),y1=(t,n)=>{if(!t.source||!t.target)return n;let r;return g1(t)?r={...t}:r={...t,id:x1(t)},v1(r,n)?n:n.concat(r)},Lf=({x:t,y:n},[r,s,l],p,[m,h])=>{const f={x:(t-r)/l,y:(n-s)/l};return p?{x:m*Math.round(f.x/m),y:h*Math.round(f.y/h)}:f},by=({x:t,y:n},[r,s,l])=>({x:t*l+r,y:n*l+s}),Dd=(t,n=[0,0])=>{if(!t)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const r=(t.width??0)*n[0],s=(t.height??0)*n[1],l={x:t.position.x-r,y:t.position.y-s};return{...l,positionAbsolute:t.positionAbsolute?{x:t.positionAbsolute.x-r,y:t.positionAbsolute.y-s}:l}},_h=(t,n=[0,0])=>{if(t.length===0)return{x:0,y:0,width:0,height:0};const r=t.reduce((s,l)=>{const{x:p,y:m}=Dd(l,n).positionAbsolute;return my(s,Dp({x:p,y:m,width:l.width||0,height:l.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return hy(r)},wy=(t,n,[r,s,l]=[0,0,1],p=!1,m=!1,h=[0,0])=>{const f={x:(n.x-r)/l,y:(n.y-s)/l,width:n.width/l,height:n.height/l},x=[];return t.forEach(j=>{const{width:w,height:N,selectable:C=!0,hidden:E=!1}=j;if(m&&!C||E)return!1;const{positionAbsolute:T}=Dd(j,h),R={x:T.x,y:T.y,width:w||0,height:N||0},L=Of(f,R),U=typeof w>"u"||typeof N>"u"||w===null||N===null,P=p&&L>0,F=(w||0)*(N||0);(U||P||L>=F||j.dragging)&&x.push(j)}),x},Ny=(t,n)=>{const r=t.map(s=>s.id);return n.filter(s=>r.includes(s.source)||r.includes(s.target))},Cy=(t,n,r,s,l,p=.1)=>{const m=n/(t.width*(1+p)),h=r/(t.height*(1+p)),f=Math.min(m,h),x=Dc(f,s,l),j=t.x+t.width/2,w=t.y+t.height/2,N=n/2-j*x,C=r/2-w*x;return{x:N,y:C,zoom:x}},Id=(t,n=0)=>t.transition().duration(n);function jx(t,n,r,s){return(n[r]||[]).reduce((l,p)=>{var m,h;return`${t.id}-${p.id}-${r}`!==s&&l.push({id:p.id||null,type:r,nodeId:t.id,x:(((m=t.positionAbsolute)==null?void 0:m.x)??0)+p.x+p.width/2,y:(((h=t.positionAbsolute)==null?void 0:h.y)??0)+p.y+p.height/2}),l},[])}function j1(t,n,r,s,l,p){const{x:m,y:h}=zc(t),x=n.elementsFromPoint(m,h).find(E=>E.classList.contains("react-flow__handle"));if(x){const E=x.getAttribute("data-nodeid");if(E){const T=vg(void 0,x),R=x.getAttribute("data-handleid"),L=p({nodeId:E,id:R,type:T});if(L){const U=l.find(P=>P.nodeId===E&&P.type===T&&P.id===R);return{handle:{id:R,type:T,nodeId:E,x:(U==null?void 0:U.x)||r.x,y:(U==null?void 0:U.y)||r.y},validHandleResult:L}}}}let j=[],w=1/0;if(l.forEach(E=>{const T=Math.sqrt((E.x-r.x)**2+(E.y-r.y)**2);if(T<=s){const R=p(E);T<=w&&(T<w?j=[{handle:E,validHandleResult:R}]:T===w&&j.push({handle:E,validHandleResult:R}),w=T)}}),!j.length)return{handle:null,validHandleResult:Sy()};if(j.length===1)return j[0];const N=j.some(({validHandleResult:E})=>E.isValid),C=j.some(({handle:E})=>E.type==="target");return j.find(({handle:E,validHandleResult:T})=>C?E.type==="target":N?T.isValid:!0)||j[0]}const b1={source:null,target:null,sourceHandle:null,targetHandle:null},Sy=()=>({handleDomNode:null,isValid:!1,connection:b1,endHandle:null});function ky(t,n,r,s,l,p,m){const h=l==="target",f=m.querySelector(`.react-flow__handle[data-id="${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`),x={...Sy(),handleDomNode:f};if(f){const j=vg(void 0,f),w=f.getAttribute("data-nodeid"),N=f.getAttribute("data-handleid"),C=f.classList.contains("connectable"),E=f.classList.contains("connectableend"),T={source:h?w:r,sourceHandle:h?N:s,target:h?r:w,targetHandle:h?s:N};x.connection=T,C&&E&&(n===Bd.Strict?h&&j==="source"||!h&&j==="target":w!==r||N!==s)&&(x.endHandle={nodeId:w,handleId:N,type:j},x.isValid=p(T))}return x}function w1({nodes:t,nodeId:n,handleId:r,handleType:s}){return t.reduce((l,p)=>{if(p[Pn]){const{handleBounds:m}=p[Pn];let h=[],f=[];m&&(h=jx(p,m,"source",`${n}-${r}-${s}`),f=jx(p,m,"target",`${n}-${r}-${s}`)),l.push(...h,...f)}return l},[])}function vg(t,n){return t||(n!=null&&n.classList.contains("target")?"target":n!=null&&n.classList.contains("source")?"source":null)}function af(t){t==null||t.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function N1(t,n){let r=null;return n?r="valid":t&&!n&&(r="invalid"),r}function Ay({event:t,handleId:n,nodeId:r,onConnect:s,isTarget:l,getState:p,setState:m,isValidConnection:h,edgeUpdaterType:f,onReconnectEnd:x}){const j=py(t.target),{connectionMode:w,domNode:N,autoPanOnConnect:C,connectionRadius:E,onConnectStart:T,panBy:R,getNodes:L,cancelConnection:U}=p();let P=0,F;const{x:Z,y:oe}=zc(t),ae=j==null?void 0:j.elementFromPoint(Z,oe),te=vg(f,ae),X=N==null?void 0:N.getBoundingClientRect();if(!X||!te)return;let fe,ve=zc(t,X),ye=!1,se=null,M=!1,ee=null;const q=w1({nodes:L(),nodeId:r,handleId:n,handleType:te}),ie=()=>{if(!C)return;const[K,I]=uy(ve,X);R({x:K,y:I}),P=requestAnimationFrame(ie)};m({connectionPosition:ve,connectionStatus:null,connectionNodeId:r,connectionHandleId:n,connectionHandleType:te,connectionStartHandle:{nodeId:r,handleId:n,type:te},connectionEndHandle:null}),T==null||T(t,{nodeId:r,handleId:n,handleType:te});function G(K){const{transform:I}=p();ve=zc(K,X);const{handle:W,validHandleResult:xe}=j1(K,j,Lf(ve,I,!1,[1,1]),E,q,Q=>ky(Q,w,r,n,l?"target":"source",h,j));if(F=W,ye||(ie(),ye=!0),ee=xe.handleDomNode,se=xe.connection,M=xe.isValid,m({connectionPosition:F&&M?by({x:F.x,y:F.y},I):ve,connectionStatus:N1(!!F,M),connectionEndHandle:xe.endHandle}),!F&&!M&&!ee)return af(fe);se.source!==se.target&&ee&&(af(fe),fe=ee,ee.classList.add("connecting","react-flow__handle-connecting"),ee.classList.toggle("valid",M),ee.classList.toggle("react-flow__handle-valid",M))}function $(K){var I,W;(F||ee)&&se&&M&&(s==null||s(se)),(W=(I=p()).onConnectEnd)==null||W.call(I,K),f&&(x==null||x(K)),af(fe),U(),cancelAnimationFrame(P),ye=!1,M=!1,se=null,ee=null,j.removeEventListener("mousemove",G),j.removeEventListener("mouseup",$),j.removeEventListener("touchmove",G),j.removeEventListener("touchend",$)}j.addEventListener("mousemove",G),j.addEventListener("mouseup",$),j.addEventListener("touchmove",G),j.addEventListener("touchend",$)}const bx=()=>!0,C1=t=>({connectionStartHandle:t.connectionStartHandle,connectOnClick:t.connectOnClick,noPanClassName:t.noPanClassName}),S1=(t,n,r)=>s=>{const{connectionStartHandle:l,connectionEndHandle:p,connectionClickStartHandle:m}=s;return{connecting:(l==null?void 0:l.nodeId)===t&&(l==null?void 0:l.handleId)===n&&(l==null?void 0:l.type)===r||(p==null?void 0:p.nodeId)===t&&(p==null?void 0:p.handleId)===n&&(p==null?void 0:p.type)===r,clickConnecting:(m==null?void 0:m.nodeId)===t&&(m==null?void 0:m.handleId)===n&&(m==null?void 0:m.type)===r}},Ey=b.forwardRef(({type:t="source",position:n=rt.Top,isValidConnection:r,isConnectable:s=!0,isConnectableStart:l=!0,isConnectableEnd:p=!0,id:m,onConnect:h,children:f,className:x,onMouseDown:j,onTouchStart:w,...N},C)=>{var X,fe;const E=m||null,T=t==="target",R=po(),L=jy(),{connectOnClick:U,noPanClassName:P}=on(C1,Wo),{connecting:F,clickConnecting:Z}=on(S1(L,E,t),Wo);L||(fe=(X=R.getState()).onError)==null||fe.call(X,"010",Bl.error010());const oe=ve=>{const{defaultEdgeOptions:ye,onConnect:se,hasDefaultEdges:M}=R.getState(),ee={...ye,...ve};if(M){const{edges:q,setEdges:ie}=R.getState();ie(y1(ee,q))}se==null||se(ee),h==null||h(ee)},ae=ve=>{if(!L)return;const ye=gy(ve);l&&(ye&&ve.button===0||!ye)&&Ay({event:ve,handleId:E,nodeId:L,onConnect:oe,isTarget:T,getState:R.getState,setState:R.setState,isValidConnection:r||R.getState().isValidConnection||bx}),ye?j==null||j(ve):w==null||w(ve)},te=ve=>{const{onClickConnectStart:ye,onClickConnectEnd:se,connectionClickStartHandle:M,connectionMode:ee,isValidConnection:q}=R.getState();if(!L||!M&&!l)return;if(!M){ye==null||ye(ve,{nodeId:L,handleId:E,handleType:t}),R.setState({connectionClickStartHandle:{nodeId:L,type:t,handleId:E}});return}const ie=py(ve.target),G=r||q||bx,{connection:$,isValid:K}=ky({nodeId:L,id:E,type:t},ee,M.nodeId,M.handleId||null,M.type,G,ie);K&&oe($),se==null||se(ve),R.setState({connectionClickStartHandle:null})};return he.createElement("div",{"data-handleid":E,"data-nodeid":L,"data-handlepos":n,"data-id":`${L}-${E}-${t}`,className:Go(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",P,x,{source:!T,target:T,connectable:s,connectablestart:l,connectableend:p,connecting:Z,connectionindicator:s&&(l&&!F||p&&F)}]),onMouseDown:ae,onTouchStart:ae,onClick:U?te:void 0,ref:C,...N},f)});Ey.displayName="Handle";var $u=b.memo(Ey);const My=({data:t,isConnectable:n,targetPosition:r=rt.Top,sourcePosition:s=rt.Bottom})=>he.createElement(he.Fragment,null,he.createElement($u,{type:"target",position:r,isConnectable:n}),t==null?void 0:t.label,he.createElement($u,{type:"source",position:s,isConnectable:n}));My.displayName="DefaultNode";var Df=b.memo(My);const Ty=({data:t,isConnectable:n,sourcePosition:r=rt.Bottom})=>he.createElement(he.Fragment,null,t==null?void 0:t.label,he.createElement($u,{type:"source",position:r,isConnectable:n}));Ty.displayName="InputNode";var Iy=b.memo(Ty);const Py=({data:t,isConnectable:n,targetPosition:r=rt.Top})=>he.createElement(he.Fragment,null,he.createElement($u,{type:"target",position:r,isConnectable:n}),t==null?void 0:t.label);Py.displayName="OutputNode";var _y=b.memo(Py);const yg=()=>null;yg.displayName="GroupNode";const k1=t=>({selectedNodes:t.getNodes().filter(n=>n.selected),selectedEdges:t.edges.filter(n=>n.selected).map(n=>({...n}))}),Dm=t=>t.id;function A1(t,n){return Wo(t.selectedNodes.map(Dm),n.selectedNodes.map(Dm))&&Wo(t.selectedEdges.map(Dm),n.selectedEdges.map(Dm))}const Oy=b.memo(({onSelectionChange:t})=>{const n=po(),{selectedNodes:r,selectedEdges:s}=on(k1,A1);return b.useEffect(()=>{const l={nodes:r,edges:s};t==null||t(l),n.getState().onSelectionChange.forEach(p=>p(l))},[r,s,t]),null});Oy.displayName="SelectionListener";const E1=t=>!!t.onSelectionChange;function M1({onSelectionChange:t}){const n=on(E1);return t||n?he.createElement(Oy,{onSelectionChange:t}):null}const T1=t=>({setNodes:t.setNodes,setEdges:t.setEdges,setDefaultNodesAndEdges:t.setDefaultNodesAndEdges,setMinZoom:t.setMinZoom,setMaxZoom:t.setMaxZoom,setTranslateExtent:t.setTranslateExtent,setNodeExtent:t.setNodeExtent,reset:t.reset});function gu(t,n){b.useEffect(()=>{typeof t<"u"&&n(t)},[t])}function Ct(t,n,r){b.useEffect(()=>{typeof n<"u"&&r({[t]:n})},[n])}const I1=({nodes:t,edges:n,defaultNodes:r,defaultEdges:s,onConnect:l,onConnectStart:p,onConnectEnd:m,onClickConnectStart:h,onClickConnectEnd:f,nodesDraggable:x,nodesConnectable:j,nodesFocusable:w,edgesFocusable:N,edgesUpdatable:C,elevateNodesOnSelect:E,minZoom:T,maxZoom:R,nodeExtent:L,onNodesChange:U,onEdgesChange:P,elementsSelectable:F,connectionMode:Z,snapGrid:oe,snapToGrid:ae,translateExtent:te,connectOnClick:X,defaultEdgeOptions:fe,fitView:ve,fitViewOptions:ye,onNodesDelete:se,onEdgesDelete:M,onNodeDrag:ee,onNodeDragStart:q,onNodeDragStop:ie,onSelectionDrag:G,onSelectionDragStart:$,onSelectionDragStop:K,noPanClassName:I,nodeOrigin:W,rfId:xe,autoPanOnConnect:Q,autoPanOnNodeDrag:be,onError:Ce,connectionRadius:Oe,isValidConnection:B,nodeDragThreshold:ce})=>{const{setNodes:O,setEdges:Ie,setDefaultNodesAndEdges:ge,setMinZoom:it,setMaxZoom:ht,setTranslateExtent:Ze,setNodeExtent:kt,reset:et}=on(T1,Wo),Te=po();return b.useEffect(()=>{const Qe=s==null?void 0:s.map(xt=>({...xt,...fe}));return ge(r,Qe),()=>{et()}},[]),Ct("defaultEdgeOptions",fe,Te.setState),Ct("connectionMode",Z,Te.setState),Ct("onConnect",l,Te.setState),Ct("onConnectStart",p,Te.setState),Ct("onConnectEnd",m,Te.setState),Ct("onClickConnectStart",h,Te.setState),Ct("onClickConnectEnd",f,Te.setState),Ct("nodesDraggable",x,Te.setState),Ct("nodesConnectable",j,Te.setState),Ct("nodesFocusable",w,Te.setState),Ct("edgesFocusable",N,Te.setState),Ct("edgesUpdatable",C,Te.setState),Ct("elementsSelectable",F,Te.setState),Ct("elevateNodesOnSelect",E,Te.setState),Ct("snapToGrid",ae,Te.setState),Ct("snapGrid",oe,Te.setState),Ct("onNodesChange",U,Te.setState),Ct("onEdgesChange",P,Te.setState),Ct("connectOnClick",X,Te.setState),Ct("fitViewOnInit",ve,Te.setState),Ct("fitViewOnInitOptions",ye,Te.setState),Ct("onNodesDelete",se,Te.setState),Ct("onEdgesDelete",M,Te.setState),Ct("onNodeDrag",ee,Te.setState),Ct("onNodeDragStart",q,Te.setState),Ct("onNodeDragStop",ie,Te.setState),Ct("onSelectionDrag",G,Te.setState),Ct("onSelectionDragStart",$,Te.setState),Ct("onSelectionDragStop",K,Te.setState),Ct("noPanClassName",I,Te.setState),Ct("nodeOrigin",W,Te.setState),Ct("rfId",xe,Te.setState),Ct("autoPanOnConnect",Q,Te.setState),Ct("autoPanOnNodeDrag",be,Te.setState),Ct("onError",Ce,Te.setState),Ct("connectionRadius",Oe,Te.setState),Ct("isValidConnection",B,Te.setState),Ct("nodeDragThreshold",ce,Te.setState),gu(t,O),gu(n,Ie),gu(T,it),gu(R,ht),gu(te,Ze),gu(L,kt),null},wx={display:"none"},P1={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ry="react-flow__node-desc",Fy="react-flow__edge-desc",_1="react-flow__aria-live",O1=t=>t.ariaLiveMessage;function R1({rfId:t}){const n=on(O1);return he.createElement("div",{id:`${_1}-${t}`,"aria-live":"assertive","aria-atomic":"true",style:P1},n)}function F1({rfId:t,disableKeyboardA11y:n}){return he.createElement(he.Fragment,null,he.createElement("div",{id:`${Ry}-${t}`,style:wx},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),he.createElement("div",{id:`${Fy}-${t}`,style:wx},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&he.createElement(R1,{rfId:t}))}var Bp=(t=null,n={actInsideInputWithModifier:!0})=>{const[r,s]=b.useState(!1),l=b.useRef(!1),p=b.useRef(new Set([])),[m,h]=b.useMemo(()=>{if(t!==null){const x=(Array.isArray(t)?t:[t]).filter(w=>typeof w=="string").map(w=>w.split("+")),j=x.reduce((w,N)=>w.concat(...N),[]);return[x,j]}return[[],[]]},[t]);return b.useEffect(()=>{const f=typeof document<"u"?document:null,x=(n==null?void 0:n.target)||f;if(t!==null){const j=C=>{if(l.current=C.ctrlKey||C.metaKey||C.shiftKey,(!l.current||l.current&&!n.actInsideInputWithModifier)&&Rf(C))return!1;const T=Cx(C.code,h);p.current.add(C[T]),Nx(m,p.current,!1)&&(C.preventDefault(),s(!0))},w=C=>{if((!l.current||l.current&&!n.actInsideInputWithModifier)&&Rf(C))return!1;const T=Cx(C.code,h);Nx(m,p.current,!0)?(s(!1),p.current.clear()):p.current.delete(C[T]),C.key==="Meta"&&p.current.clear(),l.current=!1},N=()=>{p.current.clear(),s(!1)};return x==null||x.addEventListener("keydown",j),x==null||x.addEventListener("keyup",w),window.addEventListener("blur",N),()=>{x==null||x.removeEventListener("keydown",j),x==null||x.removeEventListener("keyup",w),window.removeEventListener("blur",N)}}},[t,s]),r};function Nx(t,n,r){return t.filter(s=>r||s.length===n.size).some(s=>s.every(l=>n.has(l)))}function Cx(t,n){return n.includes(t)?"code":"key"}function zy(t,n,r,s){var h,f;const l=t.parentNode||t.parentId;if(!l)return r;const p=n.get(l),m=Dd(p,s);return zy(p,n,{x:(r.x??0)+m.x,y:(r.y??0)+m.y,z:(((h=p[Pn])==null?void 0:h.z)??0)>(r.z??0)?((f=p[Pn])==null?void 0:f.z)??0:r.z??0},s)}function Ly(t,n,r){t.forEach(s=>{var p;const l=s.parentNode||s.parentId;if(l&&!t.has(l))throw new Error(`Parent node ${l} not found`);if(l||r!=null&&r[s.id]){const{x:m,y:h,z:f}=zy(s,t,{...s.position,z:((p=s[Pn])==null?void 0:p.z)??0},n);s.positionAbsolute={x:m,y:h},s[Pn].z=f,r!=null&&r[s.id]&&(s[Pn].isParent=!0)}})}function rf(t,n,r,s){const l=new Map,p={},m=s?1e3:0;return t.forEach(h=>{var C;const f=(Cs(h.zIndex)?h.zIndex:0)+(h.selected?m:0),x=n.get(h.id),j={...h,positionAbsolute:{x:h.position.x,y:h.position.y}},w=h.parentNode||h.parentId;w&&(p[w]=!0);const N=(x==null?void 0:x.type)&&(x==null?void 0:x.type)!==h.type;Object.defineProperty(j,Pn,{enumerable:!1,value:{handleBounds:N||(C=x==null?void 0:x[Pn])==null?void 0:C.handleBounds,z:f}}),l.set(h.id,j)}),Ly(l,r,p),l}function Dy(t,n={}){const{getNodes:r,width:s,height:l,minZoom:p,maxZoom:m,d3Zoom:h,d3Selection:f,fitViewOnInitDone:x,fitViewOnInit:j,nodeOrigin:w}=t(),N=n.initial&&!x&&j;if(h&&f&&(N||!n.initial)){const E=r().filter(R=>{var U;const L=n.includeHiddenNodes?R.width&&R.height:!R.hidden;return(U=n.nodes)!=null&&U.length?L&&n.nodes.some(P=>P.id===R.id):L}),T=E.every(R=>R.width&&R.height);if(E.length>0&&T){const R=_h(E,w),{x:L,y:U,zoom:P}=Cy(R,s,l,n.minZoom??p,n.maxZoom??m,n.padding??.1),F=Dl.translate(L,U).scale(P);return typeof n.duration=="number"&&n.duration>0?h.transform(Id(f,n.duration),F):h.transform(f,F),!0}}return!1}function z1(t,n){return t.forEach(r=>{const s=n.get(r.id);s&&n.set(s.id,{...s,[Pn]:s[Pn],selected:r.selected})}),new Map(n)}function L1(t,n){return n.map(r=>{const s=t.find(l=>l.id===r.id);return s&&(r.selected=s.selected),r})}function $m({changedNodes:t,changedEdges:n,get:r,set:s}){const{nodeInternals:l,edges:p,onNodesChange:m,onEdgesChange:h,hasDefaultNodes:f,hasDefaultEdges:x}=r();t!=null&&t.length&&(f&&s({nodeInternals:z1(t,l)}),m==null||m(t)),n!=null&&n.length&&(x&&s({edges:L1(n,p)}),h==null||h(n))}const xu=()=>{},D1={zoomIn:xu,zoomOut:xu,zoomTo:xu,getZoom:()=>1,setViewport:xu,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:xu,fitBounds:xu,project:t=>t,screenToFlowPosition:t=>t,flowToScreenPosition:t=>t,viewportInitialized:!1},$1=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection}),V1=()=>{const t=po(),{d3Zoom:n,d3Selection:r}=on($1,Wo);return b.useMemo(()=>r&&n?{zoomIn:l=>n.scaleBy(Id(r,l==null?void 0:l.duration),1.2),zoomOut:l=>n.scaleBy(Id(r,l==null?void 0:l.duration),1/1.2),zoomTo:(l,p)=>n.scaleTo(Id(r,p==null?void 0:p.duration),l),getZoom:()=>t.getState().transform[2],setViewport:(l,p)=>{const[m,h,f]=t.getState().transform,x=Dl.translate(l.x??m,l.y??h).scale(l.zoom??f);n.transform(Id(r,p==null?void 0:p.duration),x)},getViewport:()=>{const[l,p,m]=t.getState().transform;return{x:l,y:p,zoom:m}},fitView:l=>Dy(t.getState,l),setCenter:(l,p,m)=>{const{width:h,height:f,maxZoom:x}=t.getState(),j=typeof(m==null?void 0:m.zoom)<"u"?m.zoom:x,w=h/2-l*j,N=f/2-p*j,C=Dl.translate(w,N).scale(j);n.transform(Id(r,m==null?void 0:m.duration),C)},fitBounds:(l,p)=>{const{width:m,height:h,minZoom:f,maxZoom:x}=t.getState(),{x:j,y:w,zoom:N}=Cy(l,m,h,f,x,(p==null?void 0:p.padding)??.1),C=Dl.translate(j,w).scale(N);n.transform(Id(r,p==null?void 0:p.duration),C)},project:l=>{const{transform:p,snapToGrid:m,snapGrid:h}=t.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Lf(l,p,m,h)},screenToFlowPosition:l=>{const{transform:p,snapToGrid:m,snapGrid:h,domNode:f}=t.getState();if(!f)return l;const{x,y:j}=f.getBoundingClientRect(),w={x:l.x-x,y:l.y-j};return Lf(w,p,m,h)},flowToScreenPosition:l=>{const{transform:p,domNode:m}=t.getState();if(!m)return l;const{x:h,y:f}=m.getBoundingClientRect(),x=by(l,p);return{x:x.x+h,y:x.y+f}},viewportInitialized:!0}:D1,[n,r])};function jg(){const t=V1(),n=po(),r=b.useCallback(()=>n.getState().getNodes().map(T=>({...T})),[]),s=b.useCallback(T=>n.getState().nodeInternals.get(T),[]),l=b.useCallback(()=>{const{edges:T=[]}=n.getState();return T.map(R=>({...R}))},[]),p=b.useCallback(T=>{const{edges:R=[]}=n.getState();return R.find(L=>L.id===T)},[]),m=b.useCallback(T=>{const{getNodes:R,setNodes:L,hasDefaultNodes:U,onNodesChange:P}=n.getState(),F=R(),Z=typeof T=="function"?T(F):T;if(U)L(Z);else if(P){const oe=Z.length===0?F.map(ae=>({type:"remove",id:ae.id})):Z.map(ae=>({item:ae,type:"reset"}));P(oe)}},[]),h=b.useCallback(T=>{const{edges:R=[],setEdges:L,hasDefaultEdges:U,onEdgesChange:P}=n.getState(),F=typeof T=="function"?T(R):T;if(U)L(F);else if(P){const Z=F.length===0?R.map(oe=>({type:"remove",id:oe.id})):F.map(oe=>({item:oe,type:"reset"}));P(Z)}},[]),f=b.useCallback(T=>{const R=Array.isArray(T)?T:[T],{getNodes:L,setNodes:U,hasDefaultNodes:P,onNodesChange:F}=n.getState();if(P){const oe=[...L(),...R];U(oe)}else if(F){const Z=R.map(oe=>({item:oe,type:"add"}));F(Z)}},[]),x=b.useCallback(T=>{const R=Array.isArray(T)?T:[T],{edges:L=[],setEdges:U,hasDefaultEdges:P,onEdgesChange:F}=n.getState();if(P)U([...L,...R]);else if(F){const Z=R.map(oe=>({item:oe,type:"add"}));F(Z)}},[]),j=b.useCallback(()=>{const{getNodes:T,edges:R=[],transform:L}=n.getState(),[U,P,F]=L;return{nodes:T().map(Z=>({...Z})),edges:R.map(Z=>({...Z})),viewport:{x:U,y:P,zoom:F}}},[]),w=b.useCallback(({nodes:T,edges:R})=>{const{nodeInternals:L,getNodes:U,edges:P,hasDefaultNodes:F,hasDefaultEdges:Z,onNodesDelete:oe,onEdgesDelete:ae,onNodesChange:te,onEdgesChange:X}=n.getState(),fe=(T||[]).map(ee=>ee.id),ve=(R||[]).map(ee=>ee.id),ye=U().reduce((ee,q)=>{const ie=q.parentNode||q.parentId,G=!fe.includes(q.id)&&ie&&ee.find(K=>K.id===ie);return(typeof q.deletable=="boolean"?q.deletable:!0)&&(fe.includes(q.id)||G)&&ee.push(q),ee},[]),se=P.filter(ee=>typeof ee.deletable=="boolean"?ee.deletable:!0),M=se.filter(ee=>ve.includes(ee.id));if(ye||M){const ee=Ny(ye,se),q=[...M,...ee],ie=q.reduce((G,$)=>(G.includes($.id)||G.push($.id),G),[]);if((Z||F)&&(Z&&n.setState({edges:P.filter(G=>!ie.includes(G.id))}),F&&(ye.forEach(G=>{L.delete(G.id)}),n.setState({nodeInternals:new Map(L)}))),ie.length>0&&(ae==null||ae(q),X&&X(ie.map(G=>({id:G,type:"remove"})))),ye.length>0&&(oe==null||oe(ye),te)){const G=ye.map($=>({id:$.id,type:"remove"}));te(G)}}},[]),N=b.useCallback(T=>{const R=l1(T),L=R?null:n.getState().nodeInternals.get(T.id);return!R&&!L?[null,null,R]:[R?T:fx(L),L,R]},[]),C=b.useCallback((T,R=!0,L)=>{const[U,P,F]=N(T);return U?(L||n.getState().getNodes()).filter(Z=>{if(!F&&(Z.id===P.id||!Z.positionAbsolute))return!1;const oe=fx(Z),ae=Of(oe,U);return R&&ae>0||ae>=U.width*U.height}):[]},[]),E=b.useCallback((T,R,L=!0)=>{const[U]=N(T);if(!U)return!1;const P=Of(U,R);return L&&P>0||P>=U.width*U.height},[]);return b.useMemo(()=>({...t,getNodes:r,getNode:s,getEdges:l,getEdge:p,setNodes:m,setEdges:h,addNodes:f,addEdges:x,toObject:j,deleteElements:w,getIntersectingNodes:C,isNodeIntersecting:E}),[t,r,s,l,p,m,h,f,x,j,w,C,E])}const B1={actInsideInputWithModifier:!1};var U1=({deleteKeyCode:t,multiSelectionKeyCode:n})=>{const r=po(),{deleteElements:s}=jg(),l=Bp(t,B1),p=Bp(n);b.useEffect(()=>{if(l){const{edges:m,getNodes:h}=r.getState(),f=h().filter(j=>j.selected),x=m.filter(j=>j.selected);s({nodes:f,edges:x}),r.setState({nodesSelectionActive:!1})}},[l]),b.useEffect(()=>{r.setState({multiSelectionActive:p})},[p])};function q1(t){const n=po();b.useEffect(()=>{let r;const s=()=>{var p,m;if(!t.current)return;const l=ug(t.current);(l.height===0||l.width===0)&&((m=(p=n.getState()).onError)==null||m.call(p,"004",Bl.error004())),n.setState({width:l.width||500,height:l.height||500})};return s(),window.addEventListener("resize",s),t.current&&(r=new ResizeObserver(()=>s()),r.observe(t.current)),()=>{window.removeEventListener("resize",s),r&&t.current&&r.unobserve(t.current)}},[])}const bg={position:"absolute",width:"100%",height:"100%",top:0,left:0},H1=(t,n)=>t.x!==n.x||t.y!==n.y||t.zoom!==n.k,Vm=t=>({x:t.x,y:t.y,zoom:t.k}),vu=(t,n)=>t.target.closest(`.${n}`),Sx=(t,n)=>n===2&&Array.isArray(t)&&t.includes(2),kx=t=>{const n=t.ctrlKey&&xh()?10:1;return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*n},W1=t=>({d3Zoom:t.d3Zoom,d3Selection:t.d3Selection,d3ZoomHandler:t.d3ZoomHandler,userSelectionActive:t.userSelectionActive}),G1=({onMove:t,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:s,zoomOnScroll:l=!0,zoomOnPinch:p=!0,panOnScroll:m=!1,panOnScrollSpeed:h=.5,panOnScrollMode:f=Fd.Free,zoomOnDoubleClick:x=!0,elementsSelectable:j,panOnDrag:w=!0,defaultViewport:N,translateExtent:C,minZoom:E,maxZoom:T,zoomActivationKeyCode:R,preventScrolling:L=!0,children:U,noWheelClassName:P,noPanClassName:F})=>{const Z=b.useRef(),oe=po(),ae=b.useRef(!1),te=b.useRef(!1),X=b.useRef(null),fe=b.useRef({x:0,y:0,zoom:0}),{d3Zoom:ve,d3Selection:ye,d3ZoomHandler:se,userSelectionActive:M}=on(W1,Wo),ee=Bp(R),q=b.useRef(0),ie=b.useRef(!1),G=b.useRef();return q1(X),b.useEffect(()=>{if(X.current){const $=X.current.getBoundingClientRect(),K=cy().scaleExtent([E,T]).translateExtent(C),I=Kr(X.current).call(K),W=Dl.translate(N.x,N.y).scale(Dc(N.zoom,E,T)),xe=[[0,0],[$.width,$.height]],Q=K.constrain()(W,xe,C);K.transform(I,Q),K.wheelDelta(kx),oe.setState({d3Zoom:K,d3Selection:I,d3ZoomHandler:I.on("wheel.zoom"),transform:[Q.x,Q.y,Q.k],domNode:X.current.closest(".react-flow")})}},[]),b.useEffect(()=>{ye&&ve&&(m&&!ee&&!M?ye.on("wheel.zoom",$=>{if(vu($,P))return!1;$.preventDefault(),$.stopImmediatePropagation();const K=ye.property("__zoom").k||1;if($.ctrlKey&&p){const B=Ys($),ce=kx($),O=K*Math.pow(2,ce);ve.scaleTo(ye,O,B,$);return}const I=$.deltaMode===1?20:1;let W=f===Fd.Vertical?0:$.deltaX*I,xe=f===Fd.Horizontal?0:$.deltaY*I;!xh()&&$.shiftKey&&f!==Fd.Vertical&&(W=$.deltaY*I,xe=0),ve.translateBy(ye,-(W/K)*h,-(xe/K)*h,{internal:!0});const Q=Vm(ye.property("__zoom")),{onViewportChangeStart:be,onViewportChange:Ce,onViewportChangeEnd:Oe}=oe.getState();clearTimeout(G.current),ie.current||(ie.current=!0,n==null||n($,Q),be==null||be(Q)),ie.current&&(t==null||t($,Q),Ce==null||Ce(Q),G.current=setTimeout(()=>{r==null||r($,Q),Oe==null||Oe(Q),ie.current=!1},150))},{passive:!1}):typeof se<"u"&&ye.on("wheel.zoom",function($,K){if(!L&&$.type==="wheel"&&!$.ctrlKey||vu($,P))return null;$.preventDefault(),se.call(this,$,K)},{passive:!1}))},[M,m,f,ye,ve,se,ee,p,L,P,n,t,r]),b.useEffect(()=>{ve&&ve.on("start",$=>{var W,xe;if(!$.sourceEvent||$.sourceEvent.internal)return null;q.current=(W=$.sourceEvent)==null?void 0:W.button;const{onViewportChangeStart:K}=oe.getState(),I=Vm($.transform);ae.current=!0,fe.current=I,((xe=$.sourceEvent)==null?void 0:xe.type)==="mousedown"&&oe.setState({paneDragging:!0}),K==null||K(I),n==null||n($.sourceEvent,I)})},[ve,n]),b.useEffect(()=>{ve&&(M&&!ae.current?ve.on("zoom",null):M||ve.on("zoom",$=>{var I;const{onViewportChange:K}=oe.getState();if(oe.setState({transform:[$.transform.x,$.transform.y,$.transform.k]}),te.current=!!(s&&Sx(w,q.current??0)),(t||K)&&!((I=$.sourceEvent)!=null&&I.internal)){const W=Vm($.transform);K==null||K(W),t==null||t($.sourceEvent,W)}}))},[M,ve,t,w,s]),b.useEffect(()=>{ve&&ve.on("end",$=>{if(!$.sourceEvent||$.sourceEvent.internal)return null;const{onViewportChangeEnd:K}=oe.getState();if(ae.current=!1,oe.setState({paneDragging:!1}),s&&Sx(w,q.current??0)&&!te.current&&s($.sourceEvent),te.current=!1,(r||K)&&H1(fe.current,$.transform)){const I=Vm($.transform);fe.current=I,clearTimeout(Z.current),Z.current=setTimeout(()=>{K==null||K(I),r==null||r($.sourceEvent,I)},m?150:0)}})},[ve,m,w,r,s]),b.useEffect(()=>{ve&&ve.filter($=>{const K=ee||l,I=p&&$.ctrlKey;if((w===!0||Array.isArray(w)&&w.includes(1))&&$.button===1&&$.type==="mousedown"&&(vu($,"react-flow__node")||vu($,"react-flow__edge")))return!0;if(!w&&!K&&!m&&!x&&!p||M||!x&&$.type==="dblclick"||vu($,P)&&$.type==="wheel"||vu($,F)&&($.type!=="wheel"||m&&$.type==="wheel"&&!ee)||!p&&$.ctrlKey&&$.type==="wheel"||!K&&!m&&!I&&$.type==="wheel"||!w&&($.type==="mousedown"||$.type==="touchstart")||Array.isArray(w)&&!w.includes($.button)&&$.type==="mousedown")return!1;const W=Array.isArray(w)&&w.includes($.button)||!$.button||$.button<=1;return(!$.ctrlKey||$.type==="wheel")&&W})},[M,ve,l,p,m,x,w,j,ee]),he.createElement("div",{className:"react-flow__renderer",ref:X,style:bg},U)},J1=t=>({userSelectionActive:t.userSelectionActive,userSelectionRect:t.userSelectionRect});function K1(){const{userSelectionActive:t,userSelectionRect:n}=on(J1,Wo);return t&&n?he.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function Ax(t,n){const r=n.parentNode||n.parentId,s=t.find(l=>l.id===r);if(s){const l=n.position.x+n.width-s.width,p=n.position.y+n.height-s.height;if(l>0||p>0||n.position.x<0||n.position.y<0){if(s.style={...s.style},s.style.width=s.style.width??s.width,s.style.height=s.style.height??s.height,l>0&&(s.style.width+=l),p>0&&(s.style.height+=p),n.position.x<0){const m=Math.abs(n.position.x);s.position.x=s.position.x-m,s.style.width+=m,n.position.x=0}if(n.position.y<0){const m=Math.abs(n.position.y);s.position.y=s.position.y-m,s.style.height+=m,n.position.y=0}s.width=s.style.width,s.height=s.style.height}}}function Q1(t,n){if(t.some(s=>s.type==="reset"))return t.filter(s=>s.type==="reset").map(s=>s.item);const r=t.filter(s=>s.type==="add").map(s=>s.item);return n.reduce((s,l)=>{const p=t.filter(h=>h.id===l.id);if(p.length===0)return s.push(l),s;const m={...l};for(const h of p)if(h)switch(h.type){case"select":{m.selected=h.selected;break}case"position":{typeof h.position<"u"&&(m.position=h.position),typeof h.positionAbsolute<"u"&&(m.positionAbsolute=h.positionAbsolute),typeof h.dragging<"u"&&(m.dragging=h.dragging),m.expandParent&&Ax(s,m);break}case"dimensions":{typeof h.dimensions<"u"&&(m.width=h.dimensions.width,m.height=h.dimensions.height),typeof h.updateStyle<"u"&&(m.style={...m.style||{},...h.dimensions}),typeof h.resizing=="boolean"&&(m.resizing=h.resizing),m.expandParent&&Ax(s,m);break}case"remove":return s}return s.push(m),s},r)}function $y(t,n){return Q1(t,n)}const Oc=(t,n)=>({id:t,type:"select",selected:n});function Eu(t,n){return t.reduce((r,s)=>{const l=n.includes(s.id);return!s.selected&&l?(s.selected=!0,r.push(Oc(s.id,!0))):s.selected&&!l&&(s.selected=!1,r.push(Oc(s.id,!1))),r},[])}const sf=(t,n)=>r=>{r.target===n.current&&(t==null||t(r))},X1=t=>({userSelectionActive:t.userSelectionActive,elementsSelectable:t.elementsSelectable,dragging:t.paneDragging}),Vy=b.memo(({isSelecting:t,selectionMode:n=$p.Full,panOnDrag:r,onSelectionStart:s,onSelectionEnd:l,onPaneClick:p,onPaneContextMenu:m,onPaneScroll:h,onPaneMouseEnter:f,onPaneMouseMove:x,onPaneMouseLeave:j,children:w})=>{const N=b.useRef(null),C=po(),E=b.useRef(0),T=b.useRef(0),R=b.useRef(),{userSelectionActive:L,elementsSelectable:U,dragging:P}=on(X1,Wo),F=()=>{C.setState({userSelectionActive:!1,userSelectionRect:null}),E.current=0,T.current=0},Z=se=>{p==null||p(se),C.getState().resetSelectedElements(),C.setState({nodesSelectionActive:!1})},oe=se=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){se.preventDefault();return}m==null||m(se)},ae=h?se=>h(se):void 0,te=se=>{const{resetSelectedElements:M,domNode:ee}=C.getState();if(R.current=ee==null?void 0:ee.getBoundingClientRect(),!U||!t||se.button!==0||se.target!==N.current||!R.current)return;const{x:q,y:ie}=zc(se,R.current);M(),C.setState({userSelectionRect:{width:0,height:0,startX:q,startY:ie,x:q,y:ie}}),s==null||s(se)},X=se=>{const{userSelectionRect:M,nodeInternals:ee,edges:q,transform:ie,onNodesChange:G,onEdgesChange:$,nodeOrigin:K,getNodes:I}=C.getState();if(!t||!R.current||!M)return;C.setState({userSelectionActive:!0,nodesSelectionActive:!1});const W=zc(se,R.current),xe=M.startX??0,Q=M.startY??0,be={...M,x:W.x<xe?W.x:xe,y:W.y<Q?W.y:Q,width:Math.abs(W.x-xe),height:Math.abs(W.y-Q)},Ce=I(),Oe=wy(ee,be,ie,n===$p.Partial,!0,K),B=Ny(Oe,q).map(O=>O.id),ce=Oe.map(O=>O.id);if(E.current!==ce.length){E.current=ce.length;const O=Eu(Ce,ce);O.length&&(G==null||G(O))}if(T.current!==B.length){T.current=B.length;const O=Eu(q,B);O.length&&($==null||$(O))}C.setState({userSelectionRect:be})},fe=se=>{if(se.button!==0)return;const{userSelectionRect:M}=C.getState();!L&&M&&se.target===N.current&&(Z==null||Z(se)),C.setState({nodesSelectionActive:E.current>0}),F(),l==null||l(se)},ve=se=>{L&&(C.setState({nodesSelectionActive:E.current>0}),l==null||l(se)),F()},ye=U&&(t||L);return he.createElement("div",{className:Go(["react-flow__pane",{dragging:P,selection:t}]),onClick:ye?void 0:sf(Z,N),onContextMenu:sf(oe,N),onWheel:sf(ae,N),onMouseEnter:ye?void 0:f,onMouseDown:ye?te:void 0,onMouseMove:ye?X:x,onMouseUp:ye?fe:void 0,onMouseLeave:ye?ve:j,ref:N,style:bg},w,he.createElement(K1,null))});Vy.displayName="Pane";function By(t,n){const r=t.parentNode||t.parentId;if(!r)return!1;const s=n.get(r);return s?s.selected?!0:By(s,n):!1}function Ex(t,n,r){let s=t;do{if(s!=null&&s.matches(n))return!0;if(s===r.current)return!1;s=s.parentElement}while(s);return!1}function Y1(t,n,r,s){return Array.from(t.values()).filter(l=>(l.selected||l.id===s)&&(!l.parentNode||l.parentId||!By(l,t))&&(l.draggable||n&&typeof l.draggable>"u")).map(l=>{var p,m;return{id:l.id,position:l.position||{x:0,y:0},positionAbsolute:l.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((p=l.positionAbsolute)==null?void 0:p.x)??0),y:r.y-(((m=l.positionAbsolute)==null?void 0:m.y)??0)},delta:{x:0,y:0},extent:l.extent,parentNode:l.parentNode||l.parentId,parentId:l.parentNode||l.parentId,width:l.width,height:l.height,expandParent:l.expandParent}})}function Z1(t,n){return!n||n==="parent"?n:[n[0],[n[1][0]-(t.width||0),n[1][1]-(t.height||0)]]}function Uy(t,n,r,s,l=[0,0],p){const m=Z1(t,t.extent||s);let h=m;const f=t.parentNode||t.parentId;if(t.extent==="parent"&&!t.expandParent)if(f&&t.width&&t.height){const w=r.get(f),{x:N,y:C}=Dd(w,l).positionAbsolute;h=w&&Cs(N)&&Cs(C)&&Cs(w.width)&&Cs(w.height)?[[N+t.width*l[0],C+t.height*l[1]],[N+w.width-t.width+t.width*l[0],C+w.height-t.height+t.height*l[1]]]:h}else p==null||p("005",Bl.error005()),h=m;else if(t.extent&&f&&t.extent!=="parent"){const w=r.get(f),{x:N,y:C}=Dd(w,l).positionAbsolute;h=[[t.extent[0][0]+N,t.extent[0][1]+C],[t.extent[1][0]+N,t.extent[1][1]+C]]}let x={x:0,y:0};if(f){const w=r.get(f);x=Dd(w,l).positionAbsolute}const j=h&&h!=="parent"?pg(n,h):n;return{position:{x:j.x-x.x,y:j.y-x.y},positionAbsolute:j}}function lf({nodeId:t,dragItems:n,nodeInternals:r}){const s=n.map(l=>({...r.get(l.id),position:l.position,positionAbsolute:l.positionAbsolute}));return[t?s.find(l=>l.id===t):s[0],s]}const Mx=(t,n,r,s)=>{const l=n.querySelectorAll(t);if(!l||!l.length)return null;const p=Array.from(l),m=n.getBoundingClientRect(),h={x:m.width*s[0],y:m.height*s[1]};return p.map(f=>{const x=f.getBoundingClientRect();return{id:f.getAttribute("data-handleid"),position:f.getAttribute("data-handlepos"),x:(x.left-m.left-h.x)/r,y:(x.top-m.top-h.y)/r,...ug(f)}})};function gp(t,n,r){return r===void 0?r:s=>{const l=n().nodeInternals.get(t);l&&r(s,{...l})}}function $f({id:t,store:n,unselect:r=!1,nodeRef:s}){const{addSelectedNodes:l,unselectNodesAndEdges:p,multiSelectionActive:m,nodeInternals:h,onError:f}=n.getState(),x=h.get(t);if(!x){f==null||f("012",Bl.error012(t));return}n.setState({nodesSelectionActive:!1}),x.selected?(r||x.selected&&m)&&(p({nodes:[x],edges:[]}),requestAnimationFrame(()=>{var j;return(j=s==null?void 0:s.current)==null?void 0:j.blur()})):l([t])}function qy(){const t=po();return b.useCallback(({sourceEvent:r})=>{const{transform:s,snapGrid:l,snapToGrid:p}=t.getState(),m=r.touches?r.touches[0].clientX:r.clientX,h=r.touches?r.touches[0].clientY:r.clientY,f={x:(m-s[0])/s[2],y:(h-s[1])/s[2]};return{xSnapped:p?l[0]*Math.round(f.x/l[0]):f.x,ySnapped:p?l[1]*Math.round(f.y/l[1]):f.y,...f}},[])}function cf(t){return(n,r,s)=>t==null?void 0:t(n,s)}function Hy({nodeRef:t,disabled:n=!1,noDragClassName:r,handleSelector:s,nodeId:l,isSelectable:p,selectNodesOnDrag:m}){const h=po(),[f,x]=b.useState(!1),j=b.useRef([]),w=b.useRef({x:null,y:null}),N=b.useRef(0),C=b.useRef(null),E=b.useRef({x:0,y:0}),T=b.useRef(null),R=b.useRef(!1),L=b.useRef(!1),U=b.useRef(!1),P=qy();return b.useEffect(()=>{if(t!=null&&t.current){const F=Kr(t.current),Z=({x:te,y:X})=>{const{nodeInternals:fe,onNodeDrag:ve,onSelectionDrag:ye,updateNodePositions:se,nodeExtent:M,snapGrid:ee,snapToGrid:q,nodeOrigin:ie,onError:G}=h.getState();w.current={x:te,y:X};let $=!1,K={x:0,y:0,x2:0,y2:0};if(j.current.length>1&&M){const W=_h(j.current,ie);K=Dp(W)}if(j.current=j.current.map(W=>{const xe={x:te-W.distance.x,y:X-W.distance.y};q&&(xe.x=ee[0]*Math.round(xe.x/ee[0]),xe.y=ee[1]*Math.round(xe.y/ee[1]));const Q=[[M[0][0],M[0][1]],[M[1][0],M[1][1]]];j.current.length>1&&M&&!W.extent&&(Q[0][0]=W.positionAbsolute.x-K.x+M[0][0],Q[1][0]=W.positionAbsolute.x+(W.width??0)-K.x2+M[1][0],Q[0][1]=W.positionAbsolute.y-K.y+M[0][1],Q[1][1]=W.positionAbsolute.y+(W.height??0)-K.y2+M[1][1]);const be=Uy(W,xe,fe,Q,ie,G);return $=$||W.position.x!==be.position.x||W.position.y!==be.position.y,W.position=be.position,W.positionAbsolute=be.positionAbsolute,W}),!$)return;se(j.current,!0,!0),x(!0);const I=l?ve:cf(ye);if(I&&T.current){const[W,xe]=lf({nodeId:l,dragItems:j.current,nodeInternals:fe});I(T.current,W,xe)}},oe=()=>{if(!C.current)return;const[te,X]=uy(E.current,C.current);if(te!==0||X!==0){const{transform:fe,panBy:ve}=h.getState();w.current.x=(w.current.x??0)-te/fe[2],w.current.y=(w.current.y??0)-X/fe[2],ve({x:te,y:X})&&Z(w.current)}N.current=requestAnimationFrame(oe)},ae=te=>{var ie;const{nodeInternals:X,multiSelectionActive:fe,nodesDraggable:ve,unselectNodesAndEdges:ye,onNodeDragStart:se,onSelectionDragStart:M}=h.getState();L.current=!0;const ee=l?se:cf(M);(!m||!p)&&!fe&&l&&((ie=X.get(l))!=null&&ie.selected||ye()),l&&p&&m&&$f({id:l,store:h,nodeRef:t});const q=P(te);if(w.current=q,j.current=Y1(X,ve,q,l),ee&&j.current){const[G,$]=lf({nodeId:l,dragItems:j.current,nodeInternals:X});ee(te.sourceEvent,G,$)}};if(n)F.on(".drag",null);else{const te=Kv().on("start",X=>{const{domNode:fe,nodeDragThreshold:ve}=h.getState();ve===0&&ae(X),U.current=!1;const ye=P(X);w.current=ye,C.current=(fe==null?void 0:fe.getBoundingClientRect())||null,E.current=zc(X.sourceEvent,C.current)}).on("drag",X=>{var se,M;const fe=P(X),{autoPanOnNodeDrag:ve,nodeDragThreshold:ye}=h.getState();if(X.sourceEvent.type==="touchmove"&&X.sourceEvent.touches.length>1&&(U.current=!0),!U.current){if(!R.current&&L.current&&ve&&(R.current=!0,oe()),!L.current){const ee=fe.xSnapped-(((se=w==null?void 0:w.current)==null?void 0:se.x)??0),q=fe.ySnapped-(((M=w==null?void 0:w.current)==null?void 0:M.y)??0);Math.sqrt(ee*ee+q*q)>ye&&ae(X)}(w.current.x!==fe.xSnapped||w.current.y!==fe.ySnapped)&&j.current&&L.current&&(T.current=X.sourceEvent,E.current=zc(X.sourceEvent,C.current),Z(fe))}}).on("end",X=>{if(!(!L.current||U.current)&&(x(!1),R.current=!1,L.current=!1,cancelAnimationFrame(N.current),j.current)){const{updateNodePositions:fe,nodeInternals:ve,onNodeDragStop:ye,onSelectionDragStop:se}=h.getState(),M=l?ye:cf(se);if(fe(j.current,!1,!1),M){const[ee,q]=lf({nodeId:l,dragItems:j.current,nodeInternals:ve});M(X.sourceEvent,ee,q)}}}).filter(X=>{const fe=X.target;return!X.button&&(!r||!Ex(fe,`.${r}`,t))&&(!s||Ex(fe,s,t))});return F.call(te),()=>{F.on(".drag",null)}}}},[t,n,r,s,p,h,l,m,P]),f}function Wy(){const t=po();return b.useCallback(r=>{const{nodeInternals:s,nodeExtent:l,updateNodePositions:p,getNodes:m,snapToGrid:h,snapGrid:f,onError:x,nodesDraggable:j}=t.getState(),w=m().filter(U=>U.selected&&(U.draggable||j&&typeof U.draggable>"u")),N=h?f[0]:5,C=h?f[1]:5,E=r.isShiftPressed?4:1,T=r.x*N*E,R=r.y*C*E,L=w.map(U=>{if(U.positionAbsolute){const P={x:U.positionAbsolute.x+T,y:U.positionAbsolute.y+R};h&&(P.x=f[0]*Math.round(P.x/f[0]),P.y=f[1]*Math.round(P.y/f[1]));const{positionAbsolute:F,position:Z}=Uy(U,P,s,l,void 0,x);U.position=Z,U.positionAbsolute=F}return U});p(L,!0,!1)},[])}const Ou={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var xp=t=>{const n=({id:r,type:s,data:l,xPos:p,yPos:m,xPosOrigin:h,yPosOrigin:f,selected:x,onClick:j,onMouseEnter:w,onMouseMove:N,onMouseLeave:C,onContextMenu:E,onDoubleClick:T,style:R,className:L,isDraggable:U,isSelectable:P,isConnectable:F,isFocusable:Z,selectNodesOnDrag:oe,sourcePosition:ae,targetPosition:te,hidden:X,resizeObserver:fe,dragHandle:ve,zIndex:ye,isParent:se,noDragClassName:M,noPanClassName:ee,initialized:q,disableKeyboardA11y:ie,ariaLabel:G,rfId:$,hasHandleBounds:K})=>{const I=po(),W=b.useRef(null),xe=b.useRef(null),Q=b.useRef(ae),be=b.useRef(te),Ce=b.useRef(s),Oe=P||U||j||w||N||C,B=Wy(),ce=gp(r,I.getState,w),O=gp(r,I.getState,N),Ie=gp(r,I.getState,C),ge=gp(r,I.getState,E),it=gp(r,I.getState,T),ht=et=>{const{nodeDragThreshold:Te}=I.getState();if(P&&(!oe||!U||Te>0)&&$f({id:r,store:I,nodeRef:W}),j){const Qe=I.getState().nodeInternals.get(r);Qe&&j(et,{...Qe})}},Ze=et=>{if(!Rf(et)&&!ie)if(fy.includes(et.key)&&P){const Te=et.key==="Escape";$f({id:r,store:I,unselect:Te,nodeRef:W})}else U&&x&&Object.prototype.hasOwnProperty.call(Ou,et.key)&&(I.setState({ariaLiveMessage:`Moved selected node ${et.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~p}, y: ${~~m}`}),B({x:Ou[et.key].x,y:Ou[et.key].y,isShiftPressed:et.shiftKey}))};b.useEffect(()=>()=>{xe.current&&(fe==null||fe.unobserve(xe.current),xe.current=null)},[]),b.useEffect(()=>{if(W.current&&!X){const et=W.current;(!q||!K||xe.current!==et)&&(xe.current&&(fe==null||fe.unobserve(xe.current)),fe==null||fe.observe(et),xe.current=et)}},[X,q,K]),b.useEffect(()=>{const et=Ce.current!==s,Te=Q.current!==ae,Qe=be.current!==te;W.current&&(et||Te||Qe)&&(et&&(Ce.current=s),Te&&(Q.current=ae),Qe&&(be.current=te),I.getState().updateNodeDimensions([{id:r,nodeElement:W.current,forceUpdate:!0}]))},[r,s,ae,te]);const kt=Hy({nodeRef:W,disabled:X||!U,noDragClassName:M,handleSelector:ve,nodeId:r,isSelectable:P,selectNodesOnDrag:oe});return X?null:he.createElement("div",{className:Go(["react-flow__node",`react-flow__node-${s}`,{[ee]:U},L,{selected:x,selectable:P,parent:se,dragging:kt}]),ref:W,style:{zIndex:ye,transform:`translate(${h}px,${f}px)`,pointerEvents:Oe?"all":"none",visibility:q?"visible":"hidden",...R},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:ce,onMouseMove:O,onMouseLeave:Ie,onContextMenu:ge,onClick:ht,onDoubleClick:it,onKeyDown:Z?Ze:void 0,tabIndex:Z?0:void 0,role:Z?"button":void 0,"aria-describedby":ie?void 0:`${Ry}-${$}`,"aria-label":G},he.createElement(f1,{value:r},he.createElement(t,{id:r,data:l,type:s,xPos:p,yPos:m,selected:x,isConnectable:F,sourcePosition:ae,targetPosition:te,dragging:kt,dragHandle:ve,zIndex:ye})))};return n.displayName="NodeWrapper",b.memo(n)};const eC=t=>{const n=t.getNodes().filter(r=>r.selected);return{..._h(n,t.nodeOrigin),transformString:`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`,userSelectionActive:t.userSelectionActive}};function tC({onSelectionContextMenu:t,noPanClassName:n,disableKeyboardA11y:r}){const s=po(),{width:l,height:p,x:m,y:h,transformString:f,userSelectionActive:x}=on(eC,Wo),j=Wy(),w=b.useRef(null);if(b.useEffect(()=>{var E;r||(E=w.current)==null||E.focus({preventScroll:!0})},[r]),Hy({nodeRef:w}),x||!l||!p)return null;const N=t?E=>{const T=s.getState().getNodes().filter(R=>R.selected);t(E,T)}:void 0,C=E=>{Object.prototype.hasOwnProperty.call(Ou,E.key)&&j({x:Ou[E.key].x,y:Ou[E.key].y,isShiftPressed:E.shiftKey})};return he.createElement("div",{className:Go(["react-flow__nodesselection","react-flow__container",n]),style:{transform:f}},he.createElement("div",{ref:w,className:"react-flow__nodesselection-rect",onContextMenu:N,tabIndex:r?void 0:-1,onKeyDown:r?void 0:C,style:{width:l,height:p,top:h,left:m}}))}var nC=b.memo(tC);const oC=t=>t.nodesSelectionActive,Gy=({children:t,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:l,onPaneContextMenu:p,onPaneScroll:m,deleteKeyCode:h,onMove:f,onMoveStart:x,onMoveEnd:j,selectionKeyCode:w,selectionOnDrag:N,selectionMode:C,onSelectionStart:E,onSelectionEnd:T,multiSelectionKeyCode:R,panActivationKeyCode:L,zoomActivationKeyCode:U,elementsSelectable:P,zoomOnScroll:F,zoomOnPinch:Z,panOnScroll:oe,panOnScrollSpeed:ae,panOnScrollMode:te,zoomOnDoubleClick:X,panOnDrag:fe,defaultViewport:ve,translateExtent:ye,minZoom:se,maxZoom:M,preventScrolling:ee,onSelectionContextMenu:q,noWheelClassName:ie,noPanClassName:G,disableKeyboardA11y:$})=>{const K=on(oC),I=Bp(w),W=Bp(L),xe=W||fe,Q=W||oe,be=I||N&&xe!==!0;return U1({deleteKeyCode:h,multiSelectionKeyCode:R}),he.createElement(G1,{onMove:f,onMoveStart:x,onMoveEnd:j,onPaneContextMenu:p,elementsSelectable:P,zoomOnScroll:F,zoomOnPinch:Z,panOnScroll:Q,panOnScrollSpeed:ae,panOnScrollMode:te,zoomOnDoubleClick:X,panOnDrag:!I&&xe,defaultViewport:ve,translateExtent:ye,minZoom:se,maxZoom:M,zoomActivationKeyCode:U,preventScrolling:ee,noWheelClassName:ie,noPanClassName:G},he.createElement(Vy,{onSelectionStart:E,onSelectionEnd:T,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:l,onPaneContextMenu:p,onPaneScroll:m,panOnDrag:xe,isSelecting:!!be,selectionMode:C},t,K&&he.createElement(nC,{onSelectionContextMenu:q,noPanClassName:G,disableKeyboardA11y:$})))};Gy.displayName="FlowRenderer";var aC=b.memo(Gy);function rC(t){return on(b.useCallback(r=>t?wy(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[t]))}function sC(t){const n={input:xp(t.input||Iy),default:xp(t.default||Df),output:xp(t.output||_y),group:xp(t.group||yg)},r={},s=Object.keys(t).filter(l=>!["input","default","output","group"].includes(l)).reduce((l,p)=>(l[p]=xp(t[p]||Df),l),r);return{...n,...s}}const iC=({x:t,y:n,width:r,height:s,origin:l})=>!r||!s?{x:t,y:n}:l[0]<0||l[1]<0||l[0]>1||l[1]>1?{x:t,y:n}:{x:t-r*l[0],y:n-s*l[1]},lC=t=>({nodesDraggable:t.nodesDraggable,nodesConnectable:t.nodesConnectable,nodesFocusable:t.nodesFocusable,elementsSelectable:t.elementsSelectable,updateNodeDimensions:t.updateNodeDimensions,onError:t.onError}),Jy=t=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:s,elementsSelectable:l,updateNodeDimensions:p,onError:m}=on(lC,Wo),h=rC(t.onlyRenderVisibleElements),f=b.useRef(),x=b.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const j=new ResizeObserver(w=>{const N=w.map(C=>({id:C.target.getAttribute("data-id"),nodeElement:C.target,forceUpdate:!0}));p(N)});return f.current=j,j},[]);return b.useEffect(()=>()=>{var j;(j=f==null?void 0:f.current)==null||j.disconnect()},[]),he.createElement("div",{className:"react-flow__nodes",style:bg},h.map(j=>{var Z,oe,ae;let w=j.type||"default";t.nodeTypes[w]||(m==null||m("003",Bl.error003(w)),w="default");const N=t.nodeTypes[w]||t.nodeTypes.default,C=!!(j.draggable||n&&typeof j.draggable>"u"),E=!!(j.selectable||l&&typeof j.selectable>"u"),T=!!(j.connectable||r&&typeof j.connectable>"u"),R=!!(j.focusable||s&&typeof j.focusable>"u"),L=t.nodeExtent?pg(j.positionAbsolute,t.nodeExtent):j.positionAbsolute,U=(L==null?void 0:L.x)??0,P=(L==null?void 0:L.y)??0,F=iC({x:U,y:P,width:j.width??0,height:j.height??0,origin:t.nodeOrigin});return he.createElement(N,{key:j.id,id:j.id,className:j.className,style:j.style,type:w,data:j.data,sourcePosition:j.sourcePosition||rt.Bottom,targetPosition:j.targetPosition||rt.Top,hidden:j.hidden,xPos:U,yPos:P,xPosOrigin:F.x,yPosOrigin:F.y,selectNodesOnDrag:t.selectNodesOnDrag,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,selected:!!j.selected,isDraggable:C,isSelectable:E,isConnectable:T,isFocusable:R,resizeObserver:x,dragHandle:j.dragHandle,zIndex:((Z=j[Pn])==null?void 0:Z.z)??0,isParent:!!((oe=j[Pn])!=null&&oe.isParent),noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,initialized:!!j.width&&!!j.height,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,ariaLabel:j.ariaLabel,hasHandleBounds:!!((ae=j[Pn])!=null&&ae.handleBounds)})}))};Jy.displayName="NodeRenderer";var cC=b.memo(Jy);const dC=(t,n,r)=>r===rt.Left?t-n:r===rt.Right?t+n:t,uC=(t,n,r)=>r===rt.Top?t-n:r===rt.Bottom?t+n:t,Tx="react-flow__edgeupdater",Ix=({position:t,centerX:n,centerY:r,radius:s=10,onMouseDown:l,onMouseEnter:p,onMouseOut:m,type:h})=>he.createElement("circle",{onMouseDown:l,onMouseEnter:p,onMouseOut:m,className:Go([Tx,`${Tx}-${h}`]),cx:dC(n,s,t),cy:uC(r,s,t),r:s,stroke:"transparent",fill:"transparent"}),pC=()=>!0;var yu=t=>{const n=({id:r,className:s,type:l,data:p,onClick:m,onEdgeDoubleClick:h,selected:f,animated:x,label:j,labelStyle:w,labelShowBg:N,labelBgStyle:C,labelBgPadding:E,labelBgBorderRadius:T,style:R,source:L,target:U,sourceX:P,sourceY:F,targetX:Z,targetY:oe,sourcePosition:ae,targetPosition:te,elementsSelectable:X,hidden:fe,sourceHandleId:ve,targetHandleId:ye,onContextMenu:se,onMouseEnter:M,onMouseMove:ee,onMouseLeave:q,reconnectRadius:ie,onReconnect:G,onReconnectStart:$,onReconnectEnd:K,markerEnd:I,markerStart:W,rfId:xe,ariaLabel:Q,isFocusable:be,isReconnectable:Ce,pathOptions:Oe,interactionWidth:B,disableKeyboardA11y:ce})=>{const O=b.useRef(null),[Ie,ge]=b.useState(!1),[it,ht]=b.useState(!1),Ze=po(),kt=b.useMemo(()=>`url('#${zf(W,xe)}')`,[W,xe]),et=b.useMemo(()=>`url('#${zf(I,xe)}')`,[I,xe]);if(fe)return null;const Te=Pe=>{var Wn;const{edges:lt,addSelectedEdges:pn,unselectNodesAndEdges:An,multiSelectionActive:sa}=Ze.getState(),mn=lt.find(Jo=>Jo.id===r);mn&&(X&&(Ze.setState({nodesSelectionActive:!1}),mn.selected&&sa?(An({nodes:[],edges:[mn]}),(Wn=O.current)==null||Wn.blur()):pn([r])),m&&m(Pe,mn))},Qe=fp(r,Ze.getState,h),xt=fp(r,Ze.getState,se),re=fp(r,Ze.getState,M),we=fp(r,Ze.getState,ee),Me=fp(r,Ze.getState,q),Ye=(Pe,lt)=>{if(Pe.button!==0)return;const{edges:pn,isValidConnection:An}=Ze.getState(),sa=lt?U:L,mn=(lt?ye:ve)||null,Wn=lt?"target":"source",Jo=An||pC,fr=lt,Ko=pn.find(la=>la.id===r);ht(!0),$==null||$(Pe,Ko,Wn);const ia=la=>{ht(!1),K==null||K(la,Ko,Wn)};Ay({event:Pe,handleId:mn,nodeId:sa,onConnect:la=>G==null?void 0:G(Ko,la),isTarget:fr,getState:Ze.getState,setState:Ze.setState,isValidConnection:Jo,edgeUpdaterType:Wn,onReconnectEnd:ia})},st=Pe=>Ye(Pe,!0),Ue=Pe=>Ye(Pe,!1),Le=()=>ge(!0),tt=()=>ge(!1),ft=!X&&!m,Re=Pe=>{var lt;if(!ce&&fy.includes(Pe.key)&&X){const{unselectNodesAndEdges:pn,addSelectedEdges:An,edges:sa}=Ze.getState();Pe.key==="Escape"?((lt=O.current)==null||lt.blur(),pn({edges:[sa.find(Wn=>Wn.id===r)]})):An([r])}};return he.createElement("g",{className:Go(["react-flow__edge",`react-flow__edge-${l}`,s,{selected:f,animated:x,inactive:ft,updating:Ie}]),onClick:Te,onDoubleClick:Qe,onContextMenu:xt,onMouseEnter:re,onMouseMove:we,onMouseLeave:Me,onKeyDown:be?Re:void 0,tabIndex:be?0:void 0,role:be?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":Q===null?void 0:Q||`Edge from ${L} to ${U}`,"aria-describedby":be?`${Fy}-${xe}`:void 0,ref:O},!it&&he.createElement(t,{id:r,source:L,target:U,selected:f,animated:x,label:j,labelStyle:w,labelShowBg:N,labelBgStyle:C,labelBgPadding:E,labelBgBorderRadius:T,data:p,style:R,sourceX:P,sourceY:F,targetX:Z,targetY:oe,sourcePosition:ae,targetPosition:te,sourceHandleId:ve,targetHandleId:ye,markerStart:kt,markerEnd:et,pathOptions:Oe,interactionWidth:B}),Ce&&he.createElement(he.Fragment,null,(Ce==="source"||Ce===!0)&&he.createElement(Ix,{position:ae,centerX:P,centerY:F,radius:ie,onMouseDown:st,onMouseEnter:Le,onMouseOut:tt,type:"source"}),(Ce==="target"||Ce===!0)&&he.createElement(Ix,{position:te,centerX:Z,centerY:oe,radius:ie,onMouseDown:Ue,onMouseEnter:Le,onMouseOut:tt,type:"target"})))};return n.displayName="EdgeWrapper",b.memo(n)};function mC(t){const n={default:yu(t.default||vh),straight:yu(t.bezier||fg),step:yu(t.step||hg),smoothstep:yu(t.step||Ph),simplebezier:yu(t.simplebezier||mg)},r={},s=Object.keys(t).filter(l=>!["default","bezier"].includes(l)).reduce((l,p)=>(l[p]=yu(t[p]||vh),l),r);return{...n,...s}}function Px(t,n,r=null){const s=((r==null?void 0:r.x)||0)+n.x,l=((r==null?void 0:r.y)||0)+n.y,p=(r==null?void 0:r.width)||n.width,m=(r==null?void 0:r.height)||n.height;switch(t){case rt.Top:return{x:s+p/2,y:l};case rt.Right:return{x:s+p,y:l+m/2};case rt.Bottom:return{x:s+p/2,y:l+m};case rt.Left:return{x:s,y:l+m/2}}}function _x(t,n){return t?t.length===1||!n?t[0]:n&&t.find(r=>r.id===n)||null:null}const hC=(t,n,r,s,l,p)=>{const m=Px(r,t,n),h=Px(p,s,l);return{sourceX:m.x,sourceY:m.y,targetX:h.x,targetY:h.y}};function fC({sourcePos:t,targetPos:n,sourceWidth:r,sourceHeight:s,targetWidth:l,targetHeight:p,width:m,height:h,transform:f}){const x={x:Math.min(t.x,n.x),y:Math.min(t.y,n.y),x2:Math.max(t.x+r,n.x+l),y2:Math.max(t.y+s,n.y+p)};x.x===x.x2&&(x.x2+=1),x.y===x.y2&&(x.y2+=1);const j=Dp({x:(0-f[0])/f[2],y:(0-f[1])/f[2],width:m/f[2],height:h/f[2]}),w=Math.max(0,Math.min(j.x2,x.x2)-Math.max(j.x,x.x)),N=Math.max(0,Math.min(j.y2,x.y2)-Math.max(j.y,x.y));return Math.ceil(w*N)>0}function Ox(t){var s,l,p,m,h;const n=((s=t==null?void 0:t[Pn])==null?void 0:s.handleBounds)||null,r=n&&(t==null?void 0:t.width)&&(t==null?void 0:t.height)&&typeof((l=t==null?void 0:t.positionAbsolute)==null?void 0:l.x)<"u"&&typeof((p=t==null?void 0:t.positionAbsolute)==null?void 0:p.y)<"u";return[{x:((m=t==null?void 0:t.positionAbsolute)==null?void 0:m.x)||0,y:((h=t==null?void 0:t.positionAbsolute)==null?void 0:h.y)||0,width:(t==null?void 0:t.width)||0,height:(t==null?void 0:t.height)||0},n,!!r]}const gC=[{level:0,isMaxLevel:!0,edges:[]}];function xC(t,n,r=!1){let s=-1;const l=t.reduce((m,h)=>{var j,w;const f=Cs(h.zIndex);let x=f?h.zIndex:0;if(r){const N=n.get(h.target),C=n.get(h.source),E=h.selected||(N==null?void 0:N.selected)||(C==null?void 0:C.selected),T=Math.max(((j=C==null?void 0:C[Pn])==null?void 0:j.z)||0,((w=N==null?void 0:N[Pn])==null?void 0:w.z)||0,1e3);x=(f?h.zIndex:0)+(E?T:0)}return m[x]?m[x].push(h):m[x]=[h],s=x>s?x:s,m},{}),p=Object.entries(l).map(([m,h])=>{const f=+m;return{edges:h,level:f,isMaxLevel:f===s}});return p.length===0?gC:p}function vC(t,n,r){const s=on(b.useCallback(l=>t?l.edges.filter(p=>{const m=n.get(p.source),h=n.get(p.target);return(m==null?void 0:m.width)&&(m==null?void 0:m.height)&&(h==null?void 0:h.width)&&(h==null?void 0:h.height)&&fC({sourcePos:m.positionAbsolute||{x:0,y:0},targetPos:h.positionAbsolute||{x:0,y:0},sourceWidth:m.width,sourceHeight:m.height,targetWidth:h.width,targetHeight:h.height,width:l.width,height:l.height,transform:l.transform})}):l.edges,[t,n]));return xC(s,n,r)}const yC=({color:t="none",strokeWidth:n=1})=>he.createElement("polyline",{style:{stroke:t,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),jC=({color:t="none",strokeWidth:n=1})=>he.createElement("polyline",{style:{stroke:t,fill:t,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Rx={[Vp.Arrow]:yC,[Vp.ArrowClosed]:jC};function bC(t){const n=po();return b.useMemo(()=>{var l,p;return Object.prototype.hasOwnProperty.call(Rx,t)?Rx[t]:((p=(l=n.getState()).onError)==null||p.call(l,"009",Bl.error009(t)),null)},[t])}const wC=({id:t,type:n,color:r,width:s=12.5,height:l=12.5,markerUnits:p="strokeWidth",strokeWidth:m,orient:h="auto-start-reverse"})=>{const f=bC(n);return f?he.createElement("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${s}`,markerHeight:`${l}`,viewBox:"-10 -10 20 20",markerUnits:p,orient:h,refX:"0",refY:"0"},he.createElement(f,{color:r,strokeWidth:m})):null},NC=({defaultColor:t,rfId:n})=>r=>{const s=[];return r.edges.reduce((l,p)=>([p.markerStart,p.markerEnd].forEach(m=>{if(m&&typeof m=="object"){const h=zf(m,n);s.includes(h)||(l.push({id:h,color:m.color||t,...m}),s.push(h))}}),l),[]).sort((l,p)=>l.id.localeCompare(p.id))},Ky=({defaultColor:t,rfId:n})=>{const r=on(b.useCallback(NC({defaultColor:t,rfId:n}),[t,n]),(s,l)=>!(s.length!==l.length||s.some((p,m)=>p.id!==l[m].id)));return he.createElement("defs",null,r.map(s=>he.createElement(wC,{id:s.id,key:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient})))};Ky.displayName="MarkerDefinitions";var CC=b.memo(Ky);const SC=t=>({nodesConnectable:t.nodesConnectable,edgesFocusable:t.edgesFocusable,edgesUpdatable:t.edgesUpdatable,elementsSelectable:t.elementsSelectable,width:t.width,height:t.height,connectionMode:t.connectionMode,nodeInternals:t.nodeInternals,onError:t.onError}),Qy=({defaultMarkerColor:t,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:s,edgeTypes:l,noPanClassName:p,onEdgeContextMenu:m,onEdgeMouseEnter:h,onEdgeMouseMove:f,onEdgeMouseLeave:x,onEdgeClick:j,onEdgeDoubleClick:w,onReconnect:N,onReconnectStart:C,onReconnectEnd:E,reconnectRadius:T,children:R,disableKeyboardA11y:L})=>{const{edgesFocusable:U,edgesUpdatable:P,elementsSelectable:F,width:Z,height:oe,connectionMode:ae,nodeInternals:te,onError:X}=on(SC,Wo),fe=vC(n,te,r);return Z?he.createElement(he.Fragment,null,fe.map(({level:ve,edges:ye,isMaxLevel:se})=>he.createElement("svg",{key:ve,style:{zIndex:ve},width:Z,height:oe,className:"react-flow__edges react-flow__container"},se&&he.createElement(CC,{defaultColor:t,rfId:s}),he.createElement("g",null,ye.map(M=>{const[ee,q,ie]=Ox(te.get(M.source)),[G,$,K]=Ox(te.get(M.target));if(!ie||!K)return null;let I=M.type||"default";l[I]||(X==null||X("011",Bl.error011(I)),I="default");const W=l[I]||l.default,xe=ae===Bd.Strict?$.target:($.target??[]).concat($.source??[]),Q=_x(q.source,M.sourceHandle),be=_x(xe,M.targetHandle),Ce=(Q==null?void 0:Q.position)||rt.Bottom,Oe=(be==null?void 0:be.position)||rt.Top,B=!!(M.focusable||U&&typeof M.focusable>"u"),ce=M.reconnectable||M.updatable,O=typeof N<"u"&&(ce||P&&typeof ce>"u");if(!Q||!be)return X==null||X("008",Bl.error008(Q,M)),null;const{sourceX:Ie,sourceY:ge,targetX:it,targetY:ht}=hC(ee,Q,Ce,G,be,Oe);return he.createElement(W,{key:M.id,id:M.id,className:Go([M.className,p]),type:I,data:M.data,selected:!!M.selected,animated:!!M.animated,hidden:!!M.hidden,label:M.label,labelStyle:M.labelStyle,labelShowBg:M.labelShowBg,labelBgStyle:M.labelBgStyle,labelBgPadding:M.labelBgPadding,labelBgBorderRadius:M.labelBgBorderRadius,style:M.style,source:M.source,target:M.target,sourceHandleId:M.sourceHandle,targetHandleId:M.targetHandle,markerEnd:M.markerEnd,markerStart:M.markerStart,sourceX:Ie,sourceY:ge,targetX:it,targetY:ht,sourcePosition:Ce,targetPosition:Oe,elementsSelectable:F,onContextMenu:m,onMouseEnter:h,onMouseMove:f,onMouseLeave:x,onClick:j,onEdgeDoubleClick:w,onReconnect:N,onReconnectStart:C,onReconnectEnd:E,reconnectRadius:T,rfId:s,ariaLabel:M.ariaLabel,isFocusable:B,isReconnectable:O,pathOptions:"pathOptions"in M?M.pathOptions:void 0,interactionWidth:M.interactionWidth,disableKeyboardA11y:L})})))),R):null};Qy.displayName="EdgeRenderer";var kC=b.memo(Qy);const AC=t=>`translate(${t.transform[0]}px,${t.transform[1]}px) scale(${t.transform[2]})`;function EC({children:t}){const n=on(AC);return he.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},t)}function MC(t){const n=jg(),r=b.useRef(!1);b.useEffect(()=>{!r.current&&n.viewportInitialized&&t&&(setTimeout(()=>t(n),1),r.current=!0)},[t,n.viewportInitialized])}const TC={[rt.Left]:rt.Right,[rt.Right]:rt.Left,[rt.Top]:rt.Bottom,[rt.Bottom]:rt.Top},Xy=({nodeId:t,handleType:n,style:r,type:s=Fc.Bezier,CustomComponent:l,connectionStatus:p})=>{var oe,ae,te;const{fromNode:m,handleId:h,toX:f,toY:x,connectionMode:j}=on(b.useCallback(X=>({fromNode:X.nodeInternals.get(t),handleId:X.connectionHandleId,toX:(X.connectionPosition.x-X.transform[0])/X.transform[2],toY:(X.connectionPosition.y-X.transform[1])/X.transform[2],connectionMode:X.connectionMode}),[t]),Wo),w=(oe=m==null?void 0:m[Pn])==null?void 0:oe.handleBounds;let N=w==null?void 0:w[n];if(j===Bd.Loose&&(N=N||(w==null?void 0:w[n==="source"?"target":"source"])),!m||!N)return null;const C=h?N.find(X=>X.id===h):N[0],E=C?C.x+C.width/2:(m.width??0)/2,T=C?C.y+C.height/2:m.height??0,R=(((ae=m.positionAbsolute)==null?void 0:ae.x)??0)+E,L=(((te=m.positionAbsolute)==null?void 0:te.y)??0)+T,U=C==null?void 0:C.position,P=U?TC[U]:null;if(!U||!P)return null;if(l)return he.createElement(l,{connectionLineType:s,connectionLineStyle:r,fromNode:m,fromHandle:C,fromX:R,fromY:L,toX:f,toY:x,fromPosition:U,toPosition:P,connectionStatus:p});let F="";const Z={sourceX:R,sourceY:L,sourcePosition:U,targetX:f,targetY:x,targetPosition:P};return s===Fc.Bezier?[F]=gg(Z):s===Fc.Step?[F]=Ff({...Z,borderRadius:0}):s===Fc.SmoothStep?[F]=Ff(Z):s===Fc.SimpleBezier?[F]=yy(Z):F=`M${R},${L} ${f},${x}`,he.createElement("path",{d:F,fill:"none",className:"react-flow__connection-path",style:r})};Xy.displayName="ConnectionLine";const IC=t=>({nodeId:t.connectionNodeId,handleType:t.connectionHandleType,nodesConnectable:t.nodesConnectable,connectionStatus:t.connectionStatus,width:t.width,height:t.height});function PC({containerStyle:t,style:n,type:r,component:s}){const{nodeId:l,handleType:p,nodesConnectable:m,width:h,height:f,connectionStatus:x}=on(IC,Wo);return!(l&&p&&h&&m)?null:he.createElement("svg",{style:t,width:h,height:f,className:"react-flow__edges react-flow__connectionline react-flow__container"},he.createElement("g",{className:Go(["react-flow__connection",x])},he.createElement(Xy,{nodeId:l,handleType:p,style:n,type:r,CustomComponent:s,connectionStatus:x})))}function Fx(t,n){return b.useRef(null),po(),b.useMemo(()=>n(t),[t])}const Yy=({nodeTypes:t,edgeTypes:n,onMove:r,onMoveStart:s,onMoveEnd:l,onInit:p,onNodeClick:m,onEdgeClick:h,onNodeDoubleClick:f,onEdgeDoubleClick:x,onNodeMouseEnter:j,onNodeMouseMove:w,onNodeMouseLeave:N,onNodeContextMenu:C,onSelectionContextMenu:E,onSelectionStart:T,onSelectionEnd:R,connectionLineType:L,connectionLineStyle:U,connectionLineComponent:P,connectionLineContainerStyle:F,selectionKeyCode:Z,selectionOnDrag:oe,selectionMode:ae,multiSelectionKeyCode:te,panActivationKeyCode:X,zoomActivationKeyCode:fe,deleteKeyCode:ve,onlyRenderVisibleElements:ye,elementsSelectable:se,selectNodesOnDrag:M,defaultViewport:ee,translateExtent:q,minZoom:ie,maxZoom:G,preventScrolling:$,defaultMarkerColor:K,zoomOnScroll:I,zoomOnPinch:W,panOnScroll:xe,panOnScrollSpeed:Q,panOnScrollMode:be,zoomOnDoubleClick:Ce,panOnDrag:Oe,onPaneClick:B,onPaneMouseEnter:ce,onPaneMouseMove:O,onPaneMouseLeave:Ie,onPaneScroll:ge,onPaneContextMenu:it,onEdgeContextMenu:ht,onEdgeMouseEnter:Ze,onEdgeMouseMove:kt,onEdgeMouseLeave:et,onReconnect:Te,onReconnectStart:Qe,onReconnectEnd:xt,reconnectRadius:re,noDragClassName:we,noWheelClassName:Me,noPanClassName:Ye,elevateEdgesOnSelect:st,disableKeyboardA11y:Ue,nodeOrigin:Le,nodeExtent:tt,rfId:ft})=>{const Re=Fx(t,sC),Pe=Fx(n,mC);return MC(p),he.createElement(aC,{onPaneClick:B,onPaneMouseEnter:ce,onPaneMouseMove:O,onPaneMouseLeave:Ie,onPaneContextMenu:it,onPaneScroll:ge,deleteKeyCode:ve,selectionKeyCode:Z,selectionOnDrag:oe,selectionMode:ae,onSelectionStart:T,onSelectionEnd:R,multiSelectionKeyCode:te,panActivationKeyCode:X,zoomActivationKeyCode:fe,elementsSelectable:se,onMove:r,onMoveStart:s,onMoveEnd:l,zoomOnScroll:I,zoomOnPinch:W,zoomOnDoubleClick:Ce,panOnScroll:xe,panOnScrollSpeed:Q,panOnScrollMode:be,panOnDrag:Oe,defaultViewport:ee,translateExtent:q,minZoom:ie,maxZoom:G,onSelectionContextMenu:E,preventScrolling:$,noDragClassName:we,noWheelClassName:Me,noPanClassName:Ye,disableKeyboardA11y:Ue},he.createElement(EC,null,he.createElement(kC,{edgeTypes:Pe,onEdgeClick:h,onEdgeDoubleClick:x,onlyRenderVisibleElements:ye,onEdgeContextMenu:ht,onEdgeMouseEnter:Ze,onEdgeMouseMove:kt,onEdgeMouseLeave:et,onReconnect:Te,onReconnectStart:Qe,onReconnectEnd:xt,reconnectRadius:re,defaultMarkerColor:K,noPanClassName:Ye,elevateEdgesOnSelect:!!st,disableKeyboardA11y:Ue,rfId:ft},he.createElement(PC,{style:U,type:L,component:P,containerStyle:F})),he.createElement("div",{className:"react-flow__edgelabel-renderer"}),he.createElement(cC,{nodeTypes:Re,onNodeClick:m,onNodeDoubleClick:f,onNodeMouseEnter:j,onNodeMouseMove:w,onNodeMouseLeave:N,onNodeContextMenu:C,selectNodesOnDrag:M,onlyRenderVisibleElements:ye,noPanClassName:Ye,noDragClassName:we,disableKeyboardA11y:Ue,nodeOrigin:Le,nodeExtent:tt,rfId:ft})))};Yy.displayName="GraphView";var _C=b.memo(Yy);const Vf=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Tc={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:Vf,nodeExtent:Vf,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Bd.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:c1,isValidConnection:void 0},OC=()=>Cb((t,n)=>({...Tc,setNodes:r=>{const{nodeInternals:s,nodeOrigin:l,elevateNodesOnSelect:p}=n();t({nodeInternals:rf(r,s,l,p)})},getNodes:()=>Array.from(n().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:s={}}=n();t({edges:r.map(l=>({...s,...l}))})},setDefaultNodesAndEdges:(r,s)=>{const l=typeof r<"u",p=typeof s<"u",m=l?rf(r,new Map,n().nodeOrigin,n().elevateNodesOnSelect):new Map;t({nodeInternals:m,edges:p?s:[],hasDefaultNodes:l,hasDefaultEdges:p})},updateNodeDimensions:r=>{const{onNodesChange:s,nodeInternals:l,fitViewOnInit:p,fitViewOnInitDone:m,fitViewOnInitOptions:h,domNode:f,nodeOrigin:x}=n(),j=f==null?void 0:f.querySelector(".react-flow__viewport");if(!j)return;const w=window.getComputedStyle(j),{m22:N}=new window.DOMMatrixReadOnly(w.transform),C=r.reduce((T,R)=>{const L=l.get(R.id);if(L!=null&&L.hidden)l.set(L.id,{...L,[Pn]:{...L[Pn],handleBounds:void 0}});else if(L){const U=ug(R.nodeElement);!!(U.width&&U.height&&(L.width!==U.width||L.height!==U.height||R.forceUpdate))&&(l.set(L.id,{...L,[Pn]:{...L[Pn],handleBounds:{source:Mx(".source",R.nodeElement,N,x),target:Mx(".target",R.nodeElement,N,x)}},...U}),T.push({id:L.id,type:"dimensions",dimensions:U}))}return T},[]);Ly(l,x);const E=m||p&&!m&&Dy(n,{initial:!0,...h});t({nodeInternals:new Map(l),fitViewOnInitDone:E}),(C==null?void 0:C.length)>0&&(s==null||s(C))},updateNodePositions:(r,s=!0,l=!1)=>{const{triggerNodeChanges:p}=n(),m=r.map(h=>{const f={id:h.id,type:"position",dragging:l};return s&&(f.positionAbsolute=h.positionAbsolute,f.position=h.position),f});p(m)},triggerNodeChanges:r=>{const{onNodesChange:s,nodeInternals:l,hasDefaultNodes:p,nodeOrigin:m,getNodes:h,elevateNodesOnSelect:f}=n();if(r!=null&&r.length){if(p){const x=$y(r,h()),j=rf(x,l,m,f);t({nodeInternals:j})}s==null||s(r)}},addSelectedNodes:r=>{const{multiSelectionActive:s,edges:l,getNodes:p}=n();let m,h=null;s?m=r.map(f=>Oc(f,!0)):(m=Eu(p(),r),h=Eu(l,[])),$m({changedNodes:m,changedEdges:h,get:n,set:t})},addSelectedEdges:r=>{const{multiSelectionActive:s,edges:l,getNodes:p}=n();let m,h=null;s?m=r.map(f=>Oc(f,!0)):(m=Eu(l,r),h=Eu(p(),[])),$m({changedNodes:h,changedEdges:m,get:n,set:t})},unselectNodesAndEdges:({nodes:r,edges:s}={})=>{const{edges:l,getNodes:p}=n(),m=r||p(),h=s||l,f=m.map(j=>(j.selected=!1,Oc(j.id,!1))),x=h.map(j=>Oc(j.id,!1));$m({changedNodes:f,changedEdges:x,get:n,set:t})},setMinZoom:r=>{const{d3Zoom:s,maxZoom:l}=n();s==null||s.scaleExtent([r,l]),t({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:s,minZoom:l}=n();s==null||s.scaleExtent([l,r]),t({maxZoom:r})},setTranslateExtent:r=>{var s;(s=n().d3Zoom)==null||s.translateExtent(r),t({translateExtent:r})},resetSelectedElements:()=>{const{edges:r,getNodes:s}=n(),p=s().filter(h=>h.selected).map(h=>Oc(h.id,!1)),m=r.filter(h=>h.selected).map(h=>Oc(h.id,!1));$m({changedNodes:p,changedEdges:m,get:n,set:t})},setNodeExtent:r=>{const{nodeInternals:s}=n();s.forEach(l=>{l.positionAbsolute=pg(l.position,r)}),t({nodeExtent:r,nodeInternals:new Map(s)})},panBy:r=>{const{transform:s,width:l,height:p,d3Zoom:m,d3Selection:h,translateExtent:f}=n();if(!m||!h||!r.x&&!r.y)return!1;const x=Dl.translate(s[0]+r.x,s[1]+r.y).scale(s[2]),j=[[0,0],[l,p]],w=m==null?void 0:m.constrain()(x,j,f);return m.transform(h,w),s[0]!==w.x||s[1]!==w.y||s[2]!==w.k},cancelConnection:()=>t({connectionNodeId:Tc.connectionNodeId,connectionHandleId:Tc.connectionHandleId,connectionHandleType:Tc.connectionHandleType,connectionStatus:Tc.connectionStatus,connectionStartHandle:Tc.connectionStartHandle,connectionEndHandle:Tc.connectionEndHandle}),reset:()=>t({...Tc})}),Object.is),wg=({children:t})=>{const n=b.useRef(null);return n.current||(n.current=OC()),he.createElement(n1,{value:n.current},t)};wg.displayName="ReactFlowProvider";const Zy=({children:t})=>b.useContext(Ih)?he.createElement(he.Fragment,null,t):he.createElement(wg,null,t);Zy.displayName="ReactFlowWrapper";const RC={input:Iy,default:Df,output:_y,group:yg},FC={default:vh,straight:fg,step:hg,smoothstep:Ph,simplebezier:mg},zC=[0,0],LC=[15,15],DC={x:0,y:0,zoom:1},$C={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},ej=b.forwardRef(({nodes:t,edges:n,defaultNodes:r,defaultEdges:s,className:l,nodeTypes:p=RC,edgeTypes:m=FC,onNodeClick:h,onEdgeClick:f,onInit:x,onMove:j,onMoveStart:w,onMoveEnd:N,onConnect:C,onConnectStart:E,onConnectEnd:T,onClickConnectStart:R,onClickConnectEnd:L,onNodeMouseEnter:U,onNodeMouseMove:P,onNodeMouseLeave:F,onNodeContextMenu:Z,onNodeDoubleClick:oe,onNodeDragStart:ae,onNodeDrag:te,onNodeDragStop:X,onNodesDelete:fe,onEdgesDelete:ve,onSelectionChange:ye,onSelectionDragStart:se,onSelectionDrag:M,onSelectionDragStop:ee,onSelectionContextMenu:q,onSelectionStart:ie,onSelectionEnd:G,connectionMode:$=Bd.Strict,connectionLineType:K=Fc.Bezier,connectionLineStyle:I,connectionLineComponent:W,connectionLineContainerStyle:xe,deleteKeyCode:Q="Backspace",selectionKeyCode:be="Shift",selectionOnDrag:Ce=!1,selectionMode:Oe=$p.Full,panActivationKeyCode:B="Space",multiSelectionKeyCode:ce=xh()?"Meta":"Control",zoomActivationKeyCode:O=xh()?"Meta":"Control",snapToGrid:Ie=!1,snapGrid:ge=LC,onlyRenderVisibleElements:it=!1,selectNodesOnDrag:ht=!0,nodesDraggable:Ze,nodesConnectable:kt,nodesFocusable:et,nodeOrigin:Te=zC,edgesFocusable:Qe,edgesUpdatable:xt,elementsSelectable:re,defaultViewport:we=DC,minZoom:Me=.5,maxZoom:Ye=2,translateExtent:st=Vf,preventScrolling:Ue=!0,nodeExtent:Le,defaultMarkerColor:tt="#b1b1b7",zoomOnScroll:ft=!0,zoomOnPinch:Re=!0,panOnScroll:Pe=!1,panOnScrollSpeed:lt=.5,panOnScrollMode:pn=Fd.Free,zoomOnDoubleClick:An=!0,panOnDrag:sa=!0,onPaneClick:mn,onPaneMouseEnter:Wn,onPaneMouseMove:Jo,onPaneMouseLeave:fr,onPaneScroll:Ko,onPaneContextMenu:ia,children:Ao,onEdgeContextMenu:la,onEdgeDoubleClick:gr,onEdgeMouseEnter:xr,onEdgeMouseMove:vr,onEdgeMouseLeave:Va,onEdgeUpdate:yr,onEdgeUpdateStart:Ba,onEdgeUpdateEnd:Ua,onReconnect:As,onReconnectStart:Qo,onReconnectEnd:Gn,reconnectRadius:qa=10,edgeUpdaterRadius:En=10,onNodesChange:Xr,onEdgesChange:Ha,noDragClassName:tl="nodrag",noWheelClassName:Es="nowheel",noPanClassName:Jn="nopan",fitView:vt=!1,fitViewOptions:_n,connectOnClick:Wa=!0,attributionPosition:ni,proOptions:nl,defaultEdgeOptions:jr,elevateNodesOnSelect:Ms=!0,elevateEdgesOnSelect:Ga=!1,disableKeyboardA11y:oi=!1,autoPanOnConnect:ca=!0,autoPanOnNodeDrag:Ge=!0,connectionRadius:Kn=20,isValidConnection:Qn,onError:Eo,style:Yr,id:ai,nodeDragThreshold:Ul,...Zr},da)=>{const Ja=ai||"1";return he.createElement("div",{...Zr,style:{...Yr,...$C},ref:da,className:Go(["react-flow",l]),"data-testid":"rf__wrapper",id:ai},he.createElement(Zy,null,he.createElement(_C,{onInit:x,onMove:j,onMoveStart:w,onMoveEnd:N,onNodeClick:h,onEdgeClick:f,onNodeMouseEnter:U,onNodeMouseMove:P,onNodeMouseLeave:F,onNodeContextMenu:Z,onNodeDoubleClick:oe,nodeTypes:p,edgeTypes:m,connectionLineType:K,connectionLineStyle:I,connectionLineComponent:W,connectionLineContainerStyle:xe,selectionKeyCode:be,selectionOnDrag:Ce,selectionMode:Oe,deleteKeyCode:Q,multiSelectionKeyCode:ce,panActivationKeyCode:B,zoomActivationKeyCode:O,onlyRenderVisibleElements:it,selectNodesOnDrag:ht,defaultViewport:we,translateExtent:st,minZoom:Me,maxZoom:Ye,preventScrolling:Ue,zoomOnScroll:ft,zoomOnPinch:Re,zoomOnDoubleClick:An,panOnScroll:Pe,panOnScrollSpeed:lt,panOnScrollMode:pn,panOnDrag:sa,onPaneClick:mn,onPaneMouseEnter:Wn,onPaneMouseMove:Jo,onPaneMouseLeave:fr,onPaneScroll:Ko,onPaneContextMenu:ia,onSelectionContextMenu:q,onSelectionStart:ie,onSelectionEnd:G,onEdgeContextMenu:la,onEdgeDoubleClick:gr,onEdgeMouseEnter:xr,onEdgeMouseMove:vr,onEdgeMouseLeave:Va,onReconnect:As??yr,onReconnectStart:Qo??Ba,onReconnectEnd:Gn??Ua,reconnectRadius:qa??En,defaultMarkerColor:tt,noDragClassName:tl,noWheelClassName:Es,noPanClassName:Jn,elevateEdgesOnSelect:Ga,rfId:Ja,disableKeyboardA11y:oi,nodeOrigin:Te,nodeExtent:Le}),he.createElement(I1,{nodes:t,edges:n,defaultNodes:r,defaultEdges:s,onConnect:C,onConnectStart:E,onConnectEnd:T,onClickConnectStart:R,onClickConnectEnd:L,nodesDraggable:Ze,nodesConnectable:kt,nodesFocusable:et,edgesFocusable:Qe,edgesUpdatable:xt,elementsSelectable:re,elevateNodesOnSelect:Ms,minZoom:Me,maxZoom:Ye,nodeExtent:Le,onNodesChange:Xr,onEdgesChange:Ha,snapToGrid:Ie,snapGrid:ge,connectionMode:$,translateExtent:st,connectOnClick:Wa,defaultEdgeOptions:jr,fitView:vt,fitViewOptions:_n,onNodesDelete:fe,onEdgesDelete:ve,onNodeDragStart:ae,onNodeDrag:te,onNodeDragStop:X,onSelectionDrag:M,onSelectionDragStart:se,onSelectionDragStop:ee,noPanClassName:Jn,nodeOrigin:Te,rfId:Ja,autoPanOnConnect:ca,autoPanOnNodeDrag:Ge,onError:Eo,connectionRadius:Kn,isValidConnection:Qn,nodeDragThreshold:Ul}),he.createElement(M1,{onSelectionChange:ye}),Ao,he.createElement(a1,{proOptions:nl,position:ni}),he.createElement(F1,{rfId:Ja,disableKeyboardA11y:oi})))});ej.displayName="ReactFlow";const VC=t=>{var n;return(n=t.domNode)==null?void 0:n.querySelector(".react-flow__edgelabel-renderer")};function BC({children:t}){const n=on(VC);return n?t1.createPortal(t,n):null}const tj=({id:t,x:n,y:r,width:s,height:l,style:p,color:m,strokeColor:h,strokeWidth:f,className:x,borderRadius:j,shapeRendering:w,onClick:N,selected:C})=>{const{background:E,backgroundColor:T}=p||{},R=m||E||T;return he.createElement("rect",{className:Go(["react-flow__minimap-node",{selected:C},x]),x:n,y:r,rx:j,ry:j,width:s,height:l,fill:R,stroke:h,strokeWidth:f,shapeRendering:w,onClick:N?L=>N(L,t):void 0})};tj.displayName="MiniMapNode";var UC=b.memo(tj);const qC=t=>t.nodeOrigin,HC=t=>t.getNodes().filter(n=>!n.hidden&&n.width&&n.height),df=t=>t instanceof Function?t:()=>t;function WC({nodeStrokeColor:t="transparent",nodeColor:n="#e2e2e2",nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:l=2,nodeComponent:p=UC,onClick:m}){const h=on(HC,Wo),f=on(qC),x=df(n),j=df(t),w=df(r),N=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return he.createElement(he.Fragment,null,h.map(C=>{const{x:E,y:T}=Dd(C,f).positionAbsolute;return he.createElement(p,{key:C.id,x:E,y:T,width:C.width,height:C.height,style:C.style,selected:C.selected,className:w(C),color:x(C),borderRadius:s,strokeColor:j(C),strokeWidth:l,shapeRendering:N,onClick:m,id:C.id})}))}var GC=b.memo(WC);const JC=200,KC=150,QC=t=>{const n=t.getNodes(),r={x:-t.transform[0]/t.transform[2],y:-t.transform[1]/t.transform[2],width:t.width/t.transform[2],height:t.height/t.transform[2]};return{viewBB:r,boundingRect:n.length>0?i1(_h(n,t.nodeOrigin),r):r,rfId:t.rfId}},XC="react-flow__minimap-desc";function nj({style:t,className:n,nodeStrokeColor:r="transparent",nodeColor:s="#e2e2e2",nodeClassName:l="",nodeBorderRadius:p=5,nodeStrokeWidth:m=2,nodeComponent:h,maskColor:f="rgb(240, 240, 240, 0.6)",maskStrokeColor:x="none",maskStrokeWidth:j=1,position:w="bottom-right",onClick:N,onNodeClick:C,pannable:E=!1,zoomable:T=!1,ariaLabel:R="React Flow mini map",inversePan:L=!1,zoomStep:U=10,offsetScale:P=5}){const F=po(),Z=b.useRef(null),{boundingRect:oe,viewBB:ae,rfId:te}=on(QC,Wo),X=(t==null?void 0:t.width)??JC,fe=(t==null?void 0:t.height)??KC,ve=oe.width/X,ye=oe.height/fe,se=Math.max(ve,ye),M=se*X,ee=se*fe,q=P*se,ie=oe.x-(M-oe.width)/2-q,G=oe.y-(ee-oe.height)/2-q,$=M+q*2,K=ee+q*2,I=`${XC}-${te}`,W=b.useRef(0);W.current=se,b.useEffect(()=>{if(Z.current){const be=Kr(Z.current),Ce=ce=>{const{transform:O,d3Selection:Ie,d3Zoom:ge}=F.getState();if(ce.sourceEvent.type!=="wheel"||!Ie||!ge)return;const it=-ce.sourceEvent.deltaY*(ce.sourceEvent.deltaMode===1?.05:ce.sourceEvent.deltaMode?1:.002)*U,ht=O[2]*Math.pow(2,it);ge.scaleTo(Ie,ht)},Oe=ce=>{const{transform:O,d3Selection:Ie,d3Zoom:ge,translateExtent:it,width:ht,height:Ze}=F.getState();if(ce.sourceEvent.type!=="mousemove"||!Ie||!ge)return;const kt=W.current*Math.max(1,O[2])*(L?-1:1),et={x:O[0]-ce.sourceEvent.movementX*kt,y:O[1]-ce.sourceEvent.movementY*kt},Te=[[0,0],[ht,Ze]],Qe=Dl.translate(et.x,et.y).scale(O[2]),xt=ge.constrain()(Qe,Te,it);ge.transform(Ie,xt)},B=cy().on("zoom",E?Oe:null).on("zoom.wheel",T?Ce:null);return be.call(B),()=>{be.on("zoom",null)}}},[E,T,L,U]);const xe=N?be=>{const Ce=Ys(be);N(be,{x:Ce[0],y:Ce[1]})}:void 0,Q=C?(be,Ce)=>{const Oe=F.getState().nodeInternals.get(Ce);C(be,Oe)}:void 0;return he.createElement(Lp,{position:w,style:t,className:Go(["react-flow__minimap",n]),"data-testid":"rf__minimap"},he.createElement("svg",{width:X,height:fe,viewBox:`${ie} ${G} ${$} ${K}`,role:"img","aria-labelledby":I,ref:Z,onClick:xe},R&&he.createElement("title",{id:I},R),he.createElement(GC,{onClick:Q,nodeColor:s,nodeStrokeColor:r,nodeBorderRadius:p,nodeClassName:l,nodeStrokeWidth:m,nodeComponent:h}),he.createElement("path",{className:"react-flow__minimap-mask",d:`M${ie-q},${G-q}h${$+q*2}v${K+q*2}h${-$-q*2}z
57
+ M${ae.x},${ae.y}h${ae.width}v${ae.height}h${-ae.width}z`,fill:f,fillRule:"evenodd",stroke:x,strokeWidth:j,pointerEvents:"none"})))}nj.displayName="MiniMap";var YC=b.memo(nj);function ZC(){return he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},he.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function eS(){return he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},he.createElement("path",{d:"M0 0h32v4.2H0z"}))}function tS(){return he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},he.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function nS(){return he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},he.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function oS(){return he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},he.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const Mu=({children:t,className:n,...r})=>he.createElement("button",{type:"button",className:Go(["react-flow__controls-button",n]),...r},t);Mu.displayName="ControlButton";const aS=t=>({isInteractive:t.nodesDraggable||t.nodesConnectable||t.elementsSelectable,minZoomReached:t.transform[2]<=t.minZoom,maxZoomReached:t.transform[2]>=t.maxZoom}),oj=({style:t,showZoom:n=!0,showFitView:r=!0,showInteractive:s=!0,fitViewOptions:l,onZoomIn:p,onZoomOut:m,onFitView:h,onInteractiveChange:f,className:x,children:j,position:w="bottom-left"})=>{const N=po(),[C,E]=b.useState(!1),{isInteractive:T,minZoomReached:R,maxZoomReached:L}=on(aS,Wo),{zoomIn:U,zoomOut:P,fitView:F}=jg();if(b.useEffect(()=>{E(!0)},[]),!C)return null;const Z=()=>{U(),p==null||p()},oe=()=>{P(),m==null||m()},ae=()=>{F(l),h==null||h()},te=()=>{N.setState({nodesDraggable:!T,nodesConnectable:!T,elementsSelectable:!T}),f==null||f(!T)};return he.createElement(Lp,{className:Go(["react-flow__controls",x]),position:w,style:t,"data-testid":"rf__controls"},n&&he.createElement(he.Fragment,null,he.createElement(Mu,{onClick:Z,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:L},he.createElement(ZC,null)),he.createElement(Mu,{onClick:oe,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:R},he.createElement(eS,null))),r&&he.createElement(Mu,{className:"react-flow__controls-fitview",onClick:ae,title:"fit view","aria-label":"fit view"},he.createElement(tS,null)),s&&he.createElement(Mu,{className:"react-flow__controls-interactive",onClick:te,title:"toggle interactivity","aria-label":"toggle interactivity"},T?he.createElement(oS,null):he.createElement(nS,null)),j)};oj.displayName="Controls";var rS=b.memo(oj),ei;(function(t){t.Lines="lines",t.Dots="dots",t.Cross="cross"})(ei||(ei={}));function sS({color:t,dimensions:n,lineWidth:r}){return he.createElement("path",{stroke:t,strokeWidth:r,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function iS({color:t,radius:n}){return he.createElement("circle",{cx:n,cy:n,r:n,fill:t})}const lS={[ei.Dots]:"#91919a",[ei.Lines]:"#eee",[ei.Cross]:"#e2e2e2"},cS={[ei.Dots]:1,[ei.Lines]:1,[ei.Cross]:6},dS=t=>({transform:t.transform,patternId:`pattern-${t.rfId}`});function aj({id:t,variant:n=ei.Dots,gap:r=20,size:s,lineWidth:l=1,offset:p=2,color:m,style:h,className:f}){const x=b.useRef(null),{transform:j,patternId:w}=on(dS,Wo),N=m||lS[n],C=s||cS[n],E=n===ei.Dots,T=n===ei.Cross,R=Array.isArray(r)?r:[r,r],L=[R[0]*j[2]||1,R[1]*j[2]||1],U=C*j[2],P=T?[U,U]:L,F=E?[U/p,U/p]:[P[0]/p,P[1]/p];return he.createElement("svg",{className:Go(["react-flow__background",f]),style:{...h,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:x,"data-testid":"rf__background"},he.createElement("pattern",{id:w+t,x:j[0]%L[0],y:j[1]%L[1],width:L[0],height:L[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${F[0]},-${F[1]})`},E?he.createElement(iS,{color:N,radius:U/p}):he.createElement(sS,{dimensions:P,color:N,lineWidth:l})),he.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${w+t})`}))}aj.displayName="Background";var uS=b.memo(aj),Ru;(function(t){t.Line="line",t.Handle="handle"})(Ru||(Ru={}));function pS({width:t,prevWidth:n,height:r,prevHeight:s,invertX:l,invertY:p}){const m=t-n,h=r-s,f=[m>0?1:m<0?-1:0,h>0?1:h<0?-1:0];return m&&l&&(f[0]=f[0]*-1),h&&p&&(f[1]=f[1]*-1),f}const rj={width:0,height:0,x:0,y:0},mS={...rj,pointerX:0,pointerY:0,aspectRatio:1};function hS({nodeId:t,position:n,variant:r=Ru.Handle,className:s,style:l={},children:p,color:m,minWidth:h=10,minHeight:f=10,maxWidth:x=Number.MAX_VALUE,maxHeight:j=Number.MAX_VALUE,keepAspectRatio:w=!1,shouldResize:N,onResizeStart:C,onResize:E,onResizeEnd:T}){const R=jy(),L=typeof t=="string"?t:R,U=po(),P=b.useRef(null),F=b.useRef(mS),Z=b.useRef(rj),oe=qy(),ae=r===Ru.Line?"right":"bottom-right",te=n??ae;b.useEffect(()=>{if(!P.current||!L)return;const ye=Kr(P.current),se=te.includes("right")||te.includes("left"),M=te.includes("bottom")||te.includes("top"),ee=te.includes("left"),q=te.includes("top"),ie=Kv().on("start",G=>{const $=U.getState().nodeInternals.get(L),{xSnapped:K,ySnapped:I}=oe(G);Z.current={width:($==null?void 0:$.width)??0,height:($==null?void 0:$.height)??0,x:($==null?void 0:$.position.x)??0,y:($==null?void 0:$.position.y)??0},F.current={...Z.current,pointerX:K,pointerY:I,aspectRatio:Z.current.width/Z.current.height},C==null||C(G,{...Z.current})}).on("drag",G=>{const{nodeInternals:$,triggerNodeChanges:K}=U.getState(),{xSnapped:I,ySnapped:W}=oe(G),xe=$.get(L);if(xe){const Q=[],{pointerX:be,pointerY:Ce,width:Oe,height:B,x:ce,y:O,aspectRatio:Ie}=F.current,{x:ge,y:it,width:ht,height:Ze}=Z.current,kt=Math.floor(se?I-be:0),et=Math.floor(M?W-Ce:0);let Te=Dc(Oe+(ee?-kt:kt),h,x),Qe=Dc(B+(q?-et:et),f,j);if(w){const st=Te/Qe,Ue=se&&M,Le=se&&!M,tt=M&&!se;Te=st<=Ie&&Ue||tt?Qe*Ie:Te,Qe=st>Ie&&Ue||Le?Te/Ie:Qe,Te>=x?(Te=x,Qe=x/Ie):Te<=h&&(Te=h,Qe=h/Ie),Qe>=j?(Qe=j,Te=j*Ie):Qe<=f&&(Qe=f,Te=f*Ie)}const xt=Te!==ht,re=Qe!==Ze;if(ee||q){const st=ee?ce-(Te-Oe):ce,Ue=q?O-(Qe-B):O,Le=st!==ge&&xt,tt=Ue!==it&&re;if(Le||tt){const ft={id:xe.id,type:"position",position:{x:Le?st:ge,y:tt?Ue:it}};Q.push(ft),Z.current.x=ft.position.x,Z.current.y=ft.position.y}}if(xt||re){const st={id:L,type:"dimensions",updateStyle:!0,resizing:!0,dimensions:{width:Te,height:Qe}};Q.push(st),Z.current.width=Te,Z.current.height=Qe}if(Q.length===0)return;const we=pS({width:Z.current.width,prevWidth:ht,height:Z.current.height,prevHeight:Ze,invertX:ee,invertY:q}),Me={...Z.current,direction:we};if((N==null?void 0:N(G,Me))===!1)return;E==null||E(G,Me),K(Q)}}).on("end",G=>{const $={id:L,type:"dimensions",resizing:!1};T==null||T(G,{...Z.current}),U.getState().triggerNodeChanges([$])});return ye.call(ie),()=>{ye.on(".drag",null)}},[L,te,h,f,x,j,w,oe,C,E,T]);const X=te.split("-"),fe=r===Ru.Line?"borderColor":"backgroundColor",ve=m?{...l,[fe]:m}:l;return he.createElement("div",{className:Go(["react-flow__resize-control","nodrag",...X,r,s]),ref:P,style:ve},p)}var zx=b.memo(hS);const fS=["top-left","top-right","bottom-left","bottom-right"],gS=["top","right","bottom","left"];function xS({nodeId:t,isVisible:n=!0,handleClassName:r,handleStyle:s,lineClassName:l,lineStyle:p,color:m,minWidth:h=10,minHeight:f=10,maxWidth:x=Number.MAX_VALUE,maxHeight:j=Number.MAX_VALUE,keepAspectRatio:w=!1,shouldResize:N,onResizeStart:C,onResize:E,onResizeEnd:T}){return n?he.createElement(he.Fragment,null,gS.map(R=>he.createElement(zx,{key:R,className:l,style:p,nodeId:t,position:R,variant:Ru.Line,color:m,minWidth:h,minHeight:f,maxWidth:x,maxHeight:j,onResizeStart:C,keepAspectRatio:w,shouldResize:N,onResize:E,onResizeEnd:T})),fS.map(R=>he.createElement(zx,{key:R,className:r,style:s,nodeId:t,position:R,color:m,minWidth:h,minHeight:f,maxWidth:x,maxHeight:j,onResizeStart:C,keepAspectRatio:w,shouldResize:N,onResize:E,onResizeEnd:T}))):null}/**
58
+ * @license lucide-react v0.468.0 - ISC
59
+ *
60
+ * This source code is licensed under the ISC license.
61
+ * See the LICENSE file in the root directory of this source tree.
62
+ */const vS=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),sj=(...t)=>t.filter((n,r,s)=>!!n&&n.trim()!==""&&s.indexOf(n)===r).join(" ").trim();/**
63
+ * @license lucide-react v0.468.0 - ISC
64
+ *
65
+ * This source code is licensed under the ISC license.
66
+ * See the LICENSE file in the root directory of this source tree.
67
+ */var yS={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
68
+ * @license lucide-react v0.468.0 - ISC
69
+ *
70
+ * This source code is licensed under the ISC license.
71
+ * See the LICENSE file in the root directory of this source tree.
72
+ */const jS=b.forwardRef(({color:t="currentColor",size:n=24,strokeWidth:r=2,absoluteStrokeWidth:s,className:l="",children:p,iconNode:m,...h},f)=>b.createElement("svg",{ref:f,...yS,width:n,height:n,stroke:t,strokeWidth:s?Number(r)*24/Number(n):r,className:sj("lucide",l),...h},[...m.map(([x,j])=>b.createElement(x,j)),...Array.isArray(p)?p:[p]]));/**
73
+ * @license lucide-react v0.468.0 - ISC
74
+ *
75
+ * This source code is licensed under the ISC license.
76
+ * See the LICENSE file in the root directory of this source tree.
77
+ */const He=(t,n)=>{const r=b.forwardRef(({className:s,...l},p)=>b.createElement(jS,{ref:p,iconNode:n,className:sj(`lucide-${vS(t)}`,s),...l}));return r.displayName=`${t}`,r};/**
78
+ * @license lucide-react v0.468.0 - ISC
79
+ *
80
+ * This source code is licensed under the ISC license.
81
+ * See the LICENSE file in the root directory of this source tree.
82
+ */const bS=He("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/**
83
+ * @license lucide-react v0.468.0 - ISC
84
+ *
85
+ * This source code is licensed under the ISC license.
86
+ * See the LICENSE file in the root directory of this source tree.
87
+ */const wS=He("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
88
+ * @license lucide-react v0.468.0 - ISC
89
+ *
90
+ * This source code is licensed under the ISC license.
91
+ * See the LICENSE file in the root directory of this source tree.
92
+ */const ih=He("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
93
+ * @license lucide-react v0.468.0 - ISC
94
+ *
95
+ * This source code is licensed under the ISC license.
96
+ * See the LICENSE file in the root directory of this source tree.
97
+ */const NS=He("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);/**
98
+ * @license lucide-react v0.468.0 - ISC
99
+ *
100
+ * This source code is licensed under the ISC license.
101
+ * See the LICENSE file in the root directory of this source tree.
102
+ */const CS=He("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/**
103
+ * @license lucide-react v0.468.0 - ISC
104
+ *
105
+ * This source code is licensed under the ISC license.
106
+ * See the LICENSE file in the root directory of this source tree.
107
+ */const Ho=He("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
108
+ * @license lucide-react v0.468.0 - ISC
109
+ *
110
+ * This source code is licensed under the ISC license.
111
+ * See the LICENSE file in the root directory of this source tree.
112
+ */const Bf=He("Braces",[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]]);/**
113
+ * @license lucide-react v0.468.0 - ISC
114
+ *
115
+ * This source code is licensed under the ISC license.
116
+ * See the LICENSE file in the root directory of this source tree.
117
+ */const ij=He("Bug",[["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}],["path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6",key:"xs1cw7"}],["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4",key:"k3fwyw"}]]);/**
118
+ * @license lucide-react v0.468.0 - ISC
119
+ *
120
+ * This source code is licensed under the ISC license.
121
+ * See the LICENSE file in the root directory of this source tree.
122
+ */const Bm=He("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/**
123
+ * @license lucide-react v0.468.0 - ISC
124
+ *
125
+ * This source code is licensed under the ISC license.
126
+ * See the LICENSE file in the root directory of this source tree.
127
+ */const yh=He("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
128
+ * @license lucide-react v0.468.0 - ISC
129
+ *
130
+ * This source code is licensed under the ISC license.
131
+ * See the LICENSE file in the root directory of this source tree.
132
+ */const Lx=He("ChartLine",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/**
133
+ * @license lucide-react v0.468.0 - ISC
134
+ *
135
+ * This source code is licensed under the ISC license.
136
+ * See the LICENSE file in the root directory of this source tree.
137
+ */const SS=He("ChartPie",[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]]);/**
138
+ * @license lucide-react v0.468.0 - ISC
139
+ *
140
+ * This source code is licensed under the ISC license.
141
+ * See the LICENSE file in the root directory of this source tree.
142
+ */const Ji=He("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
143
+ * @license lucide-react v0.468.0 - ISC
144
+ *
145
+ * This source code is licensed under the ISC license.
146
+ * See the LICENSE file in the root directory of this source tree.
147
+ */const kp=He("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
148
+ * @license lucide-react v0.468.0 - ISC
149
+ *
150
+ * This source code is licensed under the ISC license.
151
+ * See the LICENSE file in the root directory of this source tree.
152
+ */const lj=He("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
153
+ * @license lucide-react v0.468.0 - ISC
154
+ *
155
+ * This source code is licensed under the ISC license.
156
+ * See the LICENSE file in the root directory of this source tree.
157
+ */const Ng=He("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
158
+ * @license lucide-react v0.468.0 - ISC
159
+ *
160
+ * This source code is licensed under the ISC license.
161
+ * See the LICENSE file in the root directory of this source tree.
162
+ */const cj=He("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
163
+ * @license lucide-react v0.468.0 - ISC
164
+ *
165
+ * This source code is licensed under the ISC license.
166
+ * See the LICENSE file in the root directory of this source tree.
167
+ */const uf=He("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/**
168
+ * @license lucide-react v0.468.0 - ISC
169
+ *
170
+ * This source code is licensed under the ISC license.
171
+ * See the LICENSE file in the root directory of this source tree.
172
+ */const kS=He("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/**
173
+ * @license lucide-react v0.468.0 - ISC
174
+ *
175
+ * This source code is licensed under the ISC license.
176
+ * See the LICENSE file in the root directory of this source tree.
177
+ */const nn=He("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/**
178
+ * @license lucide-react v0.468.0 - ISC
179
+ *
180
+ * This source code is licensed under the ISC license.
181
+ * See the LICENSE file in the root directory of this source tree.
182
+ */const Ss=He("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/**
183
+ * @license lucide-react v0.468.0 - ISC
184
+ *
185
+ * This source code is licensed under the ISC license.
186
+ * See the LICENSE file in the root directory of this source tree.
187
+ */const jh=He("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/**
188
+ * @license lucide-react v0.468.0 - ISC
189
+ *
190
+ * This source code is licensed under the ISC license.
191
+ * See the LICENSE file in the root directory of this source tree.
192
+ */const AS=He("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);/**
193
+ * @license lucide-react v0.468.0 - ISC
194
+ *
195
+ * This source code is licensed under the ISC license.
196
+ * See the LICENSE file in the root directory of this source tree.
197
+ */const Fu=He("FileJson",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1",key:"1oajmo"}],["path",{d:"M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1",key:"mpwhp6"}]]);/**
198
+ * @license lucide-react v0.468.0 - ISC
199
+ *
200
+ * This source code is licensed under the ISC license.
201
+ * See the LICENSE file in the root directory of this source tree.
202
+ */const dj=He("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/**
203
+ * @license lucide-react v0.468.0 - ISC
204
+ *
205
+ * This source code is licensed under the ISC license.
206
+ * See the LICENSE file in the root directory of this source tree.
207
+ */const ES=He("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);/**
208
+ * @license lucide-react v0.468.0 - ISC
209
+ *
210
+ * This source code is licensed under the ISC license.
211
+ * See the LICENSE file in the root directory of this source tree.
212
+ */const Uf=He("FolderPlus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/**
213
+ * @license lucide-react v0.468.0 - ISC
214
+ *
215
+ * This source code is licensed under the ISC license.
216
+ * See the LICENSE file in the root directory of this source tree.
217
+ */const uj=He("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/**
218
+ * @license lucide-react v0.468.0 - ISC
219
+ *
220
+ * This source code is licensed under the ISC license.
221
+ * See the LICENSE file in the root directory of this source tree.
222
+ */const Xi=He("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/**
223
+ * @license lucide-react v0.468.0 - ISC
224
+ *
225
+ * This source code is licensed under the ISC license.
226
+ * See the LICENSE file in the root directory of this source tree.
227
+ */const pf=He("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/**
228
+ * @license lucide-react v0.468.0 - ISC
229
+ *
230
+ * This source code is licensed under the ISC license.
231
+ * See the LICENSE file in the root directory of this source tree.
232
+ */const pj=He("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
233
+ * @license lucide-react v0.468.0 - ISC
234
+ *
235
+ * This source code is licensed under the ISC license.
236
+ * See the LICENSE file in the root directory of this source tree.
237
+ */const mj=He("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/**
238
+ * @license lucide-react v0.468.0 - ISC
239
+ *
240
+ * This source code is licensed under the ISC license.
241
+ * See the LICENSE file in the root directory of this source tree.
242
+ */const MS=He("Library",[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]]);/**
243
+ * @license lucide-react v0.468.0 - ISC
244
+ *
245
+ * This source code is licensed under the ISC license.
246
+ * See the LICENSE file in the root directory of this source tree.
247
+ */const $t=He("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
248
+ * @license lucide-react v0.468.0 - ISC
249
+ *
250
+ * This source code is licensed under the ISC license.
251
+ * See the LICENSE file in the root directory of this source tree.
252
+ */const TS=He("LogIn",[["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}],["polyline",{points:"10 17 15 12 10 7",key:"1ail0h"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}]]);/**
253
+ * @license lucide-react v0.468.0 - ISC
254
+ *
255
+ * This source code is licensed under the ISC license.
256
+ * See the LICENSE file in the root directory of this source tree.
257
+ */const IS=He("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/**
258
+ * @license lucide-react v0.468.0 - ISC
259
+ *
260
+ * This source code is licensed under the ISC license.
261
+ * See the LICENSE file in the root directory of this source tree.
262
+ */const _d=He("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/**
263
+ * @license lucide-react v0.468.0 - ISC
264
+ *
265
+ * This source code is licensed under the ISC license.
266
+ * See the LICENSE file in the root directory of this source tree.
267
+ */const qf=He("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/**
268
+ * @license lucide-react v0.468.0 - ISC
269
+ *
270
+ * This source code is licensed under the ISC license.
271
+ * See the LICENSE file in the root directory of this source tree.
272
+ */const PS=He("MessageSquarePlus",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M12 7v6",key:"lw1j43"}],["path",{d:"M9 10h6",key:"9gxzsh"}]]);/**
273
+ * @license lucide-react v0.468.0 - ISC
274
+ *
275
+ * This source code is licensed under the ISC license.
276
+ * See the LICENSE file in the root directory of this source tree.
277
+ */const _S=He("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/**
278
+ * @license lucide-react v0.468.0 - ISC
279
+ *
280
+ * This source code is licensed under the ISC license.
281
+ * See the LICENSE file in the root directory of this source tree.
282
+ */const OS=He("Minimize2",[["polyline",{points:"4 14 10 14 10 20",key:"11kfnr"}],["polyline",{points:"20 10 14 10 14 4",key:"rlmsce"}],["line",{x1:"14",x2:"21",y1:"10",y2:"3",key:"o5lafz"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/**
283
+ * @license lucide-react v0.468.0 - ISC
284
+ *
285
+ * This source code is licensed under the ISC license.
286
+ * See the LICENSE file in the root directory of this source tree.
287
+ */const RS=He("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);/**
288
+ * @license lucide-react v0.468.0 - ISC
289
+ *
290
+ * This source code is licensed under the ISC license.
291
+ * See the LICENSE file in the root directory of this source tree.
292
+ */const FS=He("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/**
293
+ * @license lucide-react v0.468.0 - ISC
294
+ *
295
+ * This source code is licensed under the ISC license.
296
+ * See the LICENSE file in the root directory of this source tree.
297
+ */const Hf=He("PanelsTopLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);/**
298
+ * @license lucide-react v0.468.0 - ISC
299
+ *
300
+ * This source code is licensed under the ISC license.
301
+ * See the LICENSE file in the root directory of this source tree.
302
+ */const Ic=He("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/**
303
+ * @license lucide-react v0.468.0 - ISC
304
+ *
305
+ * This source code is licensed under the ISC license.
306
+ * See the LICENSE file in the root directory of this source tree.
307
+ */const ju=He("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
308
+ * @license lucide-react v0.468.0 - ISC
309
+ *
310
+ * This source code is licensed under the ISC license.
311
+ * See the LICENSE file in the root directory of this source tree.
312
+ */const dn=He("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
313
+ * @license lucide-react v0.468.0 - ISC
314
+ *
315
+ * This source code is licensed under the ISC license.
316
+ * See the LICENSE file in the root directory of this source tree.
317
+ */const zS=He("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]);/**
318
+ * @license lucide-react v0.468.0 - ISC
319
+ *
320
+ * This source code is licensed under the ISC license.
321
+ * See the LICENSE file in the root directory of this source tree.
322
+ */const Ap=He("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
323
+ * @license lucide-react v0.468.0 - ISC
324
+ *
325
+ * This source code is licensed under the ISC license.
326
+ * See the LICENSE file in the root directory of this source tree.
327
+ */const hj=He("Repeat2",[["path",{d:"m2 9 3-3 3 3",key:"1ltn5i"}],["path",{d:"M13 18H7a2 2 0 0 1-2-2V6",key:"1r6tfw"}],["path",{d:"m22 15-3 3-3-3",key:"4rnwn2"}],["path",{d:"M11 6h6a2 2 0 0 1 2 2v10",key:"2f72bc"}]]);/**
328
+ * @license lucide-react v0.468.0 - ISC
329
+ *
330
+ * This source code is licensed under the ISC license.
331
+ * See the LICENSE file in the root directory of this source tree.
332
+ */const Fl=He("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/**
333
+ * @license lucide-react v0.468.0 - ISC
334
+ *
335
+ * This source code is licensed under the ISC license.
336
+ * See the LICENSE file in the root directory of this source tree.
337
+ */const Rc=He("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
338
+ * @license lucide-react v0.468.0 - ISC
339
+ *
340
+ * This source code is licensed under the ISC license.
341
+ * See the LICENSE file in the root directory of this source tree.
342
+ */const fj=He("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/**
343
+ * @license lucide-react v0.468.0 - ISC
344
+ *
345
+ * This source code is licensed under the ISC license.
346
+ * See the LICENSE file in the root directory of this source tree.
347
+ */const bh=He("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
348
+ * @license lucide-react v0.468.0 - ISC
349
+ *
350
+ * This source code is licensed under the ISC license.
351
+ * See the LICENSE file in the root directory of this source tree.
352
+ */const ks=He("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
353
+ * @license lucide-react v0.468.0 - ISC
354
+ *
355
+ * This source code is licensed under the ISC license.
356
+ * See the LICENSE file in the root directory of this source tree.
357
+ */const gj=He("SquareTerminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);/**
358
+ * @license lucide-react v0.468.0 - ISC
359
+ *
360
+ * This source code is licensed under the ISC license.
361
+ * See the LICENSE file in the root directory of this source tree.
362
+ */const LS=He("Table2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]);/**
363
+ * @license lucide-react v0.468.0 - ISC
364
+ *
365
+ * This source code is licensed under the ISC license.
366
+ * See the LICENSE file in the root directory of this source tree.
367
+ */const DS=He("TextCursorInput",[["path",{d:"M5 4h1a3 3 0 0 1 3 3 3 3 0 0 1 3-3h1",key:"18xjzo"}],["path",{d:"M13 20h-1a3 3 0 0 1-3-3 3 3 0 0 1-3 3H5",key:"fj48gi"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M9 7v10",key:"1vc8ob"}]]);/**
368
+ * @license lucide-react v0.468.0 - ISC
369
+ *
370
+ * This source code is licensed under the ISC license.
371
+ * See the LICENSE file in the root directory of this source tree.
372
+ */const St=He("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/**
373
+ * @license lucide-react v0.468.0 - ISC
374
+ *
375
+ * This source code is licensed under the ISC license.
376
+ * See the LICENSE file in the root directory of this source tree.
377
+ */const Um=He("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
378
+ * @license lucide-react v0.468.0 - ISC
379
+ *
380
+ * This source code is licensed under the ISC license.
381
+ * See the LICENSE file in the root directory of this source tree.
382
+ */const Pc=He("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/**
383
+ * @license lucide-react v0.468.0 - ISC
384
+ *
385
+ * This source code is licensed under the ISC license.
386
+ * See the LICENSE file in the root directory of this source tree.
387
+ */const Dx=He("UserPlus",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]]);/**
388
+ * @license lucide-react v0.468.0 - ISC
389
+ *
390
+ * This source code is licensed under the ISC license.
391
+ * See the LICENSE file in the root directory of this source tree.
392
+ */const $l=He("WandSparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);/**
393
+ * @license lucide-react v0.468.0 - ISC
394
+ *
395
+ * This source code is licensed under the ISC license.
396
+ * See the LICENSE file in the root directory of this source tree.
397
+ */const xj=He("Webhook",[["path",{d:"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2",key:"q3hayz"}],["path",{d:"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06",key:"1go1hn"}],["path",{d:"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8",key:"qlwsc0"}]]);/**
398
+ * @license lucide-react v0.468.0 - ISC
399
+ *
400
+ * This source code is licensed under the ISC license.
401
+ * See the LICENSE file in the root directory of this source tree.
402
+ */const $S=He("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/**
403
+ * @license lucide-react v0.468.0 - ISC
404
+ *
405
+ * This source code is licensed under the ISC license.
406
+ * See the LICENSE file in the root directory of this source tree.
407
+ */const Ut=He("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function qm(t){t.preventDefault(),t.stopPropagation()}function VS({id:t,sourceX:n,sourceY:r,targetX:s,targetY:l,sourcePosition:p,targetPosition:m,markerEnd:h,style:f,data:x,selected:j}){const[w,N]=b.useState(!1),C=b.useRef(null),E=x||{},[T,R,L]=gg({sourceX:n,sourceY:r,sourcePosition:p,targetX:s,targetY:l,targetPosition:m}),U=w||j,P=!!E.label,F=()=>{C.current&&window.clearTimeout(C.current),C.current=null,N(!0)},Z=()=>{C.current&&window.clearTimeout(C.current),C.current=window.setTimeout(()=>{N(!1),C.current=null},160)};return e.jsxs(e.Fragment,{children:[e.jsx("path",{id:t,className:"react-flow__edge-path canvas-edge-path",d:T,markerEnd:h,style:f}),e.jsx("path",{className:"canvas-edge-hit-path",d:T,onMouseEnter:F,onMouseLeave:Z}),e.jsx(BC,{children:e.jsxs("div",{className:`canvas-edge-tools nodrag nopan ${U?"is-active":""} ${P?"has-label":""}`,style:{transform:`translate(-50%, -50%) translate(${R}px, ${L}px)`,pointerEvents:U?"all":"none"},onMouseEnter:F,onMouseLeave:Z,children:[P&&e.jsx("span",{className:"canvas-edge-label",children:E.label}),e.jsxs("span",{className:"canvas-edge-actions",children:[e.jsx("button",{type:"button",title:"Editar ligacao","aria-label":"Editar ligacao",onMouseDown:qm,onClick:oe=>{var ae;qm(oe),(ae=E.onEdit)==null||ae.call(E,t)},children:e.jsx(Ic,{size:12})}),e.jsx("button",{type:"button",title:"Excluir ligacao","aria-label":"Excluir ligacao",className:"danger-edge-tool",onMouseDown:qm,onClick:oe=>{var ae;qm(oe),(ae=E.onDelete)==null||ae.call(E,t)},children:e.jsx(St,{size:12})})]})]})})]})}const BS=180,US=156,vj={message:{label:"Mensagem",color:"#2563eb",Icon:_S},richMessage:{label:"Mensagem rica",color:"#0891b2",Icon:Hf},input:{label:"Input",color:"#0f766e",Icon:DS},api:{label:"API",color:"#ea580c",Icon:Bf},condition:{label:"Condição",color:"#7c3aed",Icon:Ng},end:{label:"Fim",color:"#475569",Icon:ES},group:{label:"Encapsulador",color:"#0d9488",Icon:uj},component:{label:"Componente",color:"#2563eb",Icon:Ho}};function qS(t){var n,r,s,l,p,m,h,f,x,j,w,N,C,E,T,R,L,U;return((n=t.component)==null?void 0:n.type)==="debug"?{label:"Debug",color:"#f59e0b",Icon:ij}:((r=t.component)==null?void 0:r.type)==="rag"?{label:"RAG IA Gen",color:"#2563eb",Icon:Ss}:((s=t.component)==null?void 0:s.type)==="openaiGen"?t.component.agentRole==="orchestrator"?{label:"Orquestrador",color:"#2563eb",Icon:Ho}:t.component.agentRole==="subagent"?{label:"Subagent",color:"#dc2626",Icon:Ho}:{label:"Agente",color:"#2563eb",Icon:Ho}:((l=t.component)==null?void 0:l.type)==="agentPlan"?{label:"Agent Plan",color:"#4f46e5",Icon:Xi}:((p=t.component)==null?void 0:p.type)==="azureOpenAI"?{label:"Azure OpenAI",color:"#0ea5e9",Icon:Ho}:((m=t.component)==null?void 0:m.type)==="milvus"?{label:"Milvus",color:"#7c3aed",Icon:Ss}:((h=t.component)==null?void 0:h.type)==="azureSearch"?{label:"Azure Search",color:"#16a34a",Icon:Ss}:((f=t.component)==null?void 0:f.type)==="azureBlob"?{label:"Azure Blob",color:"#0891b2",Icon:uj}:((x=t.component)==null?void 0:x.type)==="files"?{label:"Arquivos",color:"#0f766e",Icon:dj}:((j=t.component)==null?void 0:j.type)==="mongodb"?{label:"MongoDB",color:"#16a34a",Icon:Ss}:((w=t.component)==null?void 0:w.type)==="context"?{label:"Contexto",color:"#0891b2",Icon:Bf}:((N=t.component)==null?void 0:N.type)==="dashboard"?{label:"Dashboard",color:"#7c3aed",Icon:yh}:((C=t.component)==null?void 0:C.type)==="cron"?{label:"CRON",color:"#0f766e",Icon:cj}:((E=t.component)==null?void 0:E.type)==="loop"?{label:"Loop",color:"#0ea5e9",Icon:hj}:((T=t.component)==null?void 0:T.type)==="flowRouter"?{label:"Supervisor",color:"#9333ea",Icon:Xi}:((R=t.component)==null?void 0:R.type)==="webhook"?{label:"Webhook",color:"#dc2626",Icon:xj}:((L=t.component)==null?void 0:L.type)==="mcp"?{label:"MCP",color:"#0f766e",Icon:Bf}:((U=t.component)==null?void 0:U.type)==="approval"?{label:"Aprovação",color:"#be123c",Icon:ks}:vj.component}function Hi(t){t.stopPropagation()}function HS({data:t,selected:n}){var ae;const r=t.step,s=r.type==="component"?qS(r):vj[r.type],l=s.Icon,p=r.type==="group",m=!!(p&&((ae=r.group)!=null&&ae.collapsed)),h=r.type==="condition"?r.instruction||r.condition||"":r.instruction||"",f=r.type==="end"?s.label:r.title||s.label,x=t.editingField||null,[j,w]=b.useState(r.title||""),[N,C]=b.useState(h),E=b.useRef(!1);b.useEffect(()=>{E.current=!1,x==="title"&&w(r.title||""),x==="instruction"&&C(h)},[x,r.id,h]);const T=()=>{var te;return(te=t.onInlineEdit)==null?void 0:te.call(t,r.id,null)},R=()=>{var te;j!==(r.title||"")&&((te=t.onUpdate)==null||te.call(t,r.id,{title:j})),T()},L=()=>{var te;N!==h&&((te=t.onUpdate)==null||te.call(t,r.id,{instruction:N})),T()},U=()=>{E.current=!0,w(r.title||""),C(h),T()},P=()=>{if(E.current){E.current=!1;return}R()},F=()=>{if(E.current){E.current=!1;return}L()},Z=te=>X=>{var ve;if(p&&te==="instruction")return;const fe=X;fe.ctrlKey||fe.metaKey||(Hi(X),(ve=t.onInlineEdit)==null||ve.call(t,r.id,te))},oe=te=>X=>{var fe;p&&te==="instruction"||(Hi(X),(X.key==="Enter"||X.key===" ")&&(X.preventDefault(),(fe=t.onInlineEdit)==null||fe.call(t,r.id,te)))};return e.jsxs("div",{className:`canvas-node ${n?"canvas-node-selected":""} ${p?"canvas-node-group":""} ${m?"canvas-node-group-collapsed":""}`,title:`${f} - ${s.label}${h?`
408
+ ${h}`:""}`,style:{borderColor:n?s.color:`${s.color}55`,boxShadow:n&&p?`0 0 0 4px ${s.color}20, 0 14px 30px rgba(15,23,42,0.12)`:void 0},children:[p&&e.jsx(xS,{isVisible:!m,minWidth:BS,minHeight:US,color:s.color,handleClassName:"canvas-group-resize-handle",lineClassName:"canvas-group-resize-line",onResizeEnd:(te,X)=>{var fe;(fe=t.onResizeGroup)==null||fe.call(t,r.id,{width:X.width,height:X.height})}}),e.jsx($u,{type:"target",position:rt.Left,className:"node-handle",style:{background:s.color}}),e.jsxs("div",{className:"canvas-node-header",style:{background:`${s.color}13`,borderColor:`${s.color}35`},children:[e.jsx("span",{className:"canvas-node-icon-shell",style:{color:s.color,background:`${s.color}12`,borderColor:`${s.color}24`},children:e.jsx(l,{size:18})}),e.jsx("span",{className:"canvas-node-kind",style:{color:s.color},children:p?f:s.label}),p&&!m&&e.jsxs("em",{className:"group-node-count",children:[t.childrenCount||0," nos"]}),p&&e.jsxs("span",{className:"group-node-help",tabIndex:0,"aria-label":"Arraste nos para dentro ou redimensione pelas bordas.",children:["?",e.jsx("span",{children:"Arraste nos para dentro ou redimensione pelas bordas."})]}),t.isStart&&e.jsx("em",{className:"start-node-badge",children:"Início"}),e.jsxs("div",{className:"canvas-node-actions nodrag nopan",onMouseDown:Hi,onClick:Hi,children:[p&&e.jsx("button",{type:"button",title:m?"Expandir encapsulador":"Minimizar encapsulador","aria-label":m?"Expandir encapsulador":"Minimizar encapsulador",onClick:te=>{var X;Hi(te),(X=t.onToggleGroup)==null||X.call(t,r.id)},children:m?e.jsx(_d,{size:12}):e.jsx(OS,{size:12})}),e.jsx("button",{type:"button",title:"Editar nó","aria-label":"Editar nó",onClick:te=>{var X;Hi(te),(X=t.onEdit)==null||X.call(t,r.id)},children:e.jsx(bh,{size:12})}),e.jsx("button",{type:"button",title:"Duplicar nó","aria-label":"Duplicar nó",onClick:te=>{var X;Hi(te),(X=t.onDuplicate)==null||X.call(t,r.id)},children:e.jsx(nn,{size:12})}),e.jsx("button",{type:"button",title:"Deletar nó","aria-label":"Deletar nó",className:"node-action-danger",onClick:te=>{var X;Hi(te),(X=t.onDelete)==null||X.call(t,r.id)},children:e.jsx(St,{size:12})})]})]}),e.jsxs("div",{className:`canvas-node-body ${p?"canvas-group-body":""} ${m?"canvas-group-body-collapsed":""}`,children:[!p&&(x==="title"?e.jsx("input",{autoFocus:!0,className:"node-title-input nodrag nopan",value:j,placeholder:s.label,"aria-label":"Nome do nó",onBlur:P,onKeyDown:te=>{Hi(te),te.key==="Enter"&&(te.preventDefault(),R()),te.key==="Escape"&&(te.preventDefault(),U())},onChange:te=>{w(te.target.value)}}):e.jsx("div",{className:"node-title-display",role:"button",tabIndex:0,title:"Duplo clique para editar",onDoubleClick:Z("title"),onKeyDown:oe("title"),children:f})),!p&&e.jsx(e.Fragment,{children:x==="instruction"?e.jsx("textarea",{autoFocus:!0,className:"node-text-input nodrag nopan",value:N,placeholder:"Sem instrução.","aria-label":"Texto do nó",onBlur:F,onKeyDown:te=>{Hi(te),te.key==="Escape"&&(te.preventDefault(),U())},onChange:te=>{C(te.target.value)}}):e.jsx("div",{className:"node-text-display",role:"button",tabIndex:0,title:"Duplo clique para editar",onDoubleClick:Z("instruction"),onKeyDown:oe("instruction"),children:e.jsx("p",{children:h||"Sem instrução."})})})]}),e.jsx($u,{type:"source",position:rt.Right,className:"node-handle",style:{background:s.color}})]})}function WS(t,n){return t.selected===n.selected&&t.data.step===n.data.step&&t.data.isStart===n.data.isStart&&t.data.childrenCount===n.data.childrenCount&&t.data.editingField===n.data.editingField}const yj=b.memo(HS,WS);yj.displayName="CanvasStepNode";const mf=[{value:"openai",label:"OpenAI"},{value:"azure_openai",label:"Azure OpenAI"},{value:"gemini",label:"Gemini"},{value:"claude",label:"Claude"},{value:"grok",label:"Grok"},{value:"bedrock",label:"Bedrock"}],wh={openai:[{value:"gpt-5.5",label:"gpt-5.5"},{value:"gpt-5.4",label:"gpt-5.4"},{value:"gpt-5.4-mini",label:"gpt-5.4-mini"},{value:"gpt-5.3",label:"gpt-5.3"},{value:"gpt-5.2",label:"gpt-5.2"},{value:"gpt-5.1",label:"gpt-5.1"},{value:"gpt-4.1",label:"gpt-4.1"},{value:"gpt-4.1-mini",label:"gpt-4.1-mini"},{value:"gpt-4o",label:"gpt-4o"},{value:"gpt-4o-mini",label:"gpt-4o-mini"}],azure_openai:[{value:"gpt-5.4",label:"gpt-5.4"},{value:"gpt-5.4-mini",label:"gpt-5.4-mini"},{value:"gpt-4.1",label:"gpt-4.1"},{value:"gpt-4.1-mini",label:"gpt-4.1-mini"},{value:"gpt-4o",label:"gpt-4o"},{value:"gpt-4o-mini",label:"gpt-4o-mini"}],gemini:[{value:"gemini-3.5-flash",label:"Gemini 3.5 Flash"},{value:"gemini-3.1-pro",label:"Gemini 3.1 Pro"},{value:"gemini-3.1-pro-preview",label:"Gemini 3.1 Pro Preview"},{value:"gemini-3-flash",label:"Gemini 3 Flash"},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview"},{value:"gemini-3.1-flash-lite",label:"Gemini 3.1 Flash-Lite"},{value:"gemini-3.1-flash-lite-preview",label:"Gemini 3.1 Flash-Lite Preview"},{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro"},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash"},{value:"gemini-2.5-flash-lite",label:"Gemini 2.5 Flash-Lite"}],claude:[{value:"claude-sonnet-4-6",label:"Claude Sonnet 4.6"},{value:"claude-opus-4-7",label:"Claude Opus 4.7"},{value:"claude-haiku-4-5",label:"Claude Haiku 4.5"},{value:"claude-haiku-4-5-20251001",label:"Claude Haiku 4.5 20251001"},{value:"claude-3-5-sonnet-latest",label:"claude-3-5-sonnet-latest"},{value:"claude-3-5-haiku-latest",label:"claude-3-5-haiku-latest"}],grok:[{value:"grok-2-latest",label:"grok-2-latest"},{value:"grok-2-vision-latest",label:"grok-2-vision-latest"}],bedrock:[{value:"anthropic.claude-sonnet-4-6",label:"Claude Sonnet 4.6"},{value:"anthropic.claude-opus-4-7",label:"Claude Opus 4.7"},{value:"anthropic.claude-haiku-4-5",label:"Claude Haiku 4.5"},{value:"anthropic.claude-haiku-4-5-20251001-v1:0",label:"Claude Haiku 4.5"},{value:"amazon.nova-2-lite-v1:0",label:"Amazon Nova 2 Lite"},{value:"amazon.nova-premier-v1:0",label:"Amazon Nova Premier"},{value:"amazon.nova-pro-v1:0",label:"Amazon Nova Pro"},{value:"meta.llama3-3-70b-instruct-v1:0",label:"Llama 3.3 70B Instruct"},{value:"meta.llama3-1-405b-instruct-v1:0",label:"Llama 3.1 405B Instruct"},{value:"meta.llama3-1-70b-instruct-v1:0",label:"Llama 3.1 70B Instruct"},{value:"meta.llama3-1-8b-instruct-v1:0",label:"Llama 3.1 8B Instruct"},{value:"anthropic.claude-3-5-sonnet-20240620-v1:0",label:"Claude 3.5 Sonnet"}]};function Tp(t){return wh[t]||wh.openai}function Od(t){var n;return((n=Tp(t)[0])==null?void 0:n.value)||""}function $x(t,n){const r=Tp(t).map(s=>s.value);return Array.from(new Set([n,...r].filter(Boolean)))}const GS={agentsMd:"",guardrails:"",blockedTerms:[],rules:[],skills:[],subagents:[],mcpServers:[]},JS=[{id:"profile",label:"Perfil",icon:Ho},{id:"guardrails",label:"Guardrails",icon:ks},{id:"manifest",label:"Manifest",icon:Fu},{id:"skills",label:"Skills",icon:$S},{id:"subagents",label:"Subagents",icon:Xi},{id:"rules",label:"Rules",icon:Ng},{id:"mcp",label:"MCP",icon:FS}],KS=[{title:"Agents.md",mode:"sempre presente",text:"Arquitetura do projeto, decisões de design, funcionamento do sistema e papel do agente orquestrador."},{title:"Rules",mode:"sempre ou sob demanda",text:"Convenções, restrições de segurança e regras que orientam ou redirecionam decisões do agente."},{title:"Skills",mode:"contexto principal",text:"Tarefas específicas com instruções e ferramentas/scripts auxiliares, sem delegar para outro agente."},{title:"Subagents",mode:"sempre presentes",text:"Especialistas com contexto isolado e modelo próprio; devolvem resumo ao pai e não encadeiam spam."},{title:"MCP",mode:"sob demanda",text:"Ferramentas externas, APIs, bancos de dados, Google Drive e outros sistemas conectados."}];function Hm(t){return`${t}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function Pd(t){return Array.isArray(t)?t.filter(n=>!!(n&&typeof n=="object"&&!Array.isArray(n))):[]}function Dt(t){return String(t??"")}function Tu(t,n){return Dt(t.id||t.key||t.name||t.label||n).trim()||n}function Wm(t,n){return Dt(t.name||t.label||t.title||Tu(t,n)).trim()||n}function Gm(t){return Dt(t.description||t.role||t.instructions||t.instruction||t.action).trim()}function vp(t,n){const r=Dt(t.load||t.loadMode||t.when).trim();return r==="always"||r==="auto"||r==="on_demand"||r==="manual"?r:n}function bu(t,n,r,s){const l=Tu(n,`${t}-${s+1}`).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/-+/g,"-").replace(/^[-_]+|[-_]+$/g,"")||`${t}-${s+1}`;return`.canvas-flow/${t}/${l}${r}`}function Jm(t,n){try{const r=JSON.parse(t);return Pd(r)}catch{return n}}function Vx(t,n){try{const r=JSON.parse(t);return r&&typeof r=="object"&&!Array.isArray(r)?r:n}catch{return n}}function Bx(t){const n=t&&typeof t=="object"&&!Array.isArray(t)?t:{};return JSON.stringify(n,null,2)}function QS({agentId:t,agentName:n,config:r,providerOptions:s,modelOptions:l,saving:p=!1,workspaceBusy:m=!1,error:h="",message:f="",onChange:x,onSave:j,onExportWorkspace:w,onImportWorkspace:N,onClose:C,onOpenProviders:E,onOpenAgentOps:T}){var Oe;const[R,L]=b.useState("profile"),U=b.useRef(null),P={...GS,...r.agentSpec||{}},F=Pd(P.skills),Z=Pd(P.subagents),oe=Pd(P.rules),ae=Pd(P.mcpServers),te=r.llmProvider||"openai",X=((Oe=s.find(B=>B.value===te))==null?void 0:Oe.label)||"OpenAI",fe=b.useMemo(()=>Array.from(new Set([r.model,...l].filter(Boolean))),[r.model,l]),ve=B=>{x({agentSpec:{...P,...B}})},ye=(B,ce)=>{ve({[B]:ce})},se=(B,ce,O)=>{const ge=Pd(P[B]).map((it,ht)=>ht===ce?{...it,...O}:it);ye(B,ge)},M=(B,ce)=>{ye(B,Pd(P[B]).filter((O,Ie)=>Ie!==ce))},ee=async B=>{if(!B||!N)return;const ce=await B.text();await N(ce)},q=(B,ce,O,Ie)=>e.jsxs("label",{children:["Load",e.jsxs("select",{value:vp(O,Ie),onChange:ge=>se(B,ce,{load:ge.target.value}),children:[e.jsx("option",{value:"always",children:"Sempre no contexto"}),e.jsx("option",{value:"auto",children:"Auto"}),e.jsx("option",{value:"on_demand",children:"Sob demanda"}),e.jsx("option",{value:"manual",children:"Manual"})]})]}),ie=(B,ce,O)=>e.jsxs("details",{className:"agent-studio-advanced-json",children:[e.jsx("summary",{children:"Contrato de execucao"}),e.jsxs("div",{className:"agent-studio-fields two-columns",children:[e.jsxs("label",{children:["Efeito",e.jsxs("select",{value:Dt(O.sideEffect||"read"),onChange:Ie=>se(B,ce,{sideEffect:Ie.target.value}),children:[e.jsx("option",{value:"read",children:"Somente leitura"}),e.jsx("option",{value:"write",children:"Altera dados"}),e.jsx("option",{value:"external_action",children:"Acao externa"}),e.jsx("option",{value:"none",children:"Sem efeito externo"})]})]}),e.jsxs("label",{children:["Max retries",e.jsx("input",{type:"number",min:0,max:3,value:Number(O.maxRetries??0),onChange:Ie=>se(B,ce,{maxRetries:Number(Ie.target.value||0)})})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:O.requiresApproval===!0,onChange:Ie=>se(B,ce,{requiresApproval:Ie.target.checked})}),"Exigir aprovacao antes de executar"]}),e.jsxs("div",{className:"agent-studio-fields two-columns",children:[e.jsxs("label",{children:["Input schema",e.jsx("textarea",{rows:6,spellCheck:!1,value:Bx(O.inputSchema),onChange:Ie=>se(B,ce,{inputSchema:Vx(Ie.target.value,O.inputSchema||{})})})]}),e.jsxs("label",{children:["Output schema",e.jsx("textarea",{rows:6,spellCheck:!1,value:Bx(O.outputSchema),onChange:Ie=>se(B,ce,{outputSchema:Vx(Ie.target.value,O.outputSchema||{})})})]})]}),e.jsx("span",{className:"field-hint",children:"Schemas seguem JSON Schema simples: type, properties, required, enum, items e additionalProperties."})]}),G=b.useMemo(()=>[...oe.map((B,ce)=>({kind:"rule",id:Tu(B,`rule-${ce+1}`),name:Wm(B,`Rule ${ce+1}`),description:Gm(B),path:Dt(B.path)||bu("rules",B,".rule.json",ce),load:vp(B,"always"),enabled:B.enabled!==!1})),...F.map((B,ce)=>({kind:"skill",id:Tu(B,`skill-${ce+1}`),name:Wm(B,`Skill ${ce+1}`),description:Gm(B),path:Dt(B.path)||bu("skills",B,"/SKILL.md",ce),load:vp(B,"auto"),enabled:B.enabled!==!1})),...Z.map((B,ce)=>({kind:"subagent",id:Tu(B,`subagent-${ce+1}`),name:Wm(B,`Subagent ${ce+1}`),description:Gm(B),path:Dt(B.path)||bu("subagents",B,".agent.md",ce),load:vp(B,"auto"),enabled:B.enabled!==!1})),...ae.map((B,ce)=>({kind:"mcp",id:Tu(B,`mcp-${ce+1}`),name:Wm(B,`MCP ${ce+1}`),description:Gm(B),path:Dt(B.path)||".canvas-flow/mcp.json",load:vp(B,"on_demand"),enabled:B.enabled!==!1}))],[oe,F,Z,ae]),$=()=>e.jsxs("div",{className:"agent-studio-panel",children:[e.jsxs("section",{className:"agent-studio-section",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Motor do agente"}),e.jsx("span",{children:"Este provider/modelo vira o default para todos os fluxos deste agente."})]}),e.jsxs("div",{className:"agent-studio-fields two-columns",children:[e.jsxs("label",{children:["Provider",e.jsx("select",{value:te,onChange:B=>{const ce=B.target.value;x({llmProvider:ce,model:Od(ce)||r.model})},children:s.map(B=>e.jsx("option",{value:B.value,children:B.label},B.value))})]}),e.jsxs("label",{children:["Modelo",e.jsx("select",{value:r.model||"",onChange:B=>x({model:B.target.value}),children:fe.map(B=>e.jsx("option",{value:B,children:B},B))})]})]}),e.jsxs("div",{className:"agent-studio-inline-actions",children:[e.jsxs("button",{type:"button",onClick:E,children:[e.jsx(Ss,{size:15}),"Configurar provedores"]}),e.jsxs("button",{type:"button",onClick:T,children:[e.jsx(bh,{size:15}),"Ver operacao"]})]})]}),e.jsxs("section",{className:"agent-studio-section agent-studio-workspace-card",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Workspace .canvas-flow"}),e.jsx("span",{children:"Exporte ou importe um pacote versionavel com agents.md, rules, skills, subagents, mcp.json e guardrails."})]}),e.jsxs("div",{className:"agent-studio-workspace-summary",children:[e.jsx(Fu,{size:18}),e.jsx("span",{children:".canvas-flow/agents.md, rules/, skills/, subagents/, mcp.json"})]}),e.jsxs("div",{className:"agent-studio-inline-actions",children:[e.jsxs("button",{type:"button",onClick:w,disabled:!w||m,children:[e.jsx(jh,{size:15}),m?"Processando...":"Exportar workspace"]}),e.jsxs("button",{type:"button",onClick:()=>{var B;return(B=U.current)==null?void 0:B.click()},disabled:!N||m,children:[e.jsx(Pc,{size:15}),"Importar workspace"]}),e.jsx("input",{ref:U,type:"file",accept:".json,application/json",className:"hidden-file-input",onChange:B=>{var O;const ce=(O=B.currentTarget.files)==null?void 0:O[0];B.currentTarget.value="",ee(ce)}})]})]}),e.jsxs("section",{className:"agent-studio-section",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Agents.md"}),e.jsx("span",{children:"Sempre presente: arquitetura do projeto, decisões de design, funcionamento do sistema e papel do orquestrador."})]}),e.jsx("textarea",{rows:12,value:P.agentsMd||"",placeholder:`# Agente principal orquestrador
409
+ Recebe instrucoes do usuario, consulta rules e docs, delega tarefas e coordena subagents e skills.
410
+
411
+ # Arquitetura do projeto
412
+ Explique como o sistema funciona, decisoes de design e convencoes.
413
+
414
+ # Operacao
415
+ - Use skills no contexto principal
416
+ - Delegue para subagents quando precisar de contexto isolado
417
+ - Use MCP sob demanda para ferramentas externas`,onChange:B=>ve({agentsMd:B.target.value})})]}),e.jsxs("section",{className:"agent-studio-section",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Mapa mental do Agent OS"}),e.jsx("span",{children:"Como cada bloco entra na execução do agente."})]}),e.jsx("div",{className:"agent-studio-concept-grid",children:KS.map(B=>e.jsxs("div",{className:"agent-studio-concept-card",children:[e.jsx("strong",{children:B.title}),e.jsx("small",{children:B.mode}),e.jsx("span",{children:B.text})]},B.title))})]})]}),K=()=>e.jsxs("div",{className:"agent-studio-panel",children:[e.jsxs("section",{className:"agent-studio-section",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Politicas e limites"}),e.jsx("span",{children:"Sempre presentes: restrições de segurança e limites duros antes do prompt dos nós LLM."})]}),e.jsx("textarea",{rows:9,value:P.guardrails||"",placeholder:"Nunca invente dados. Nao exponha segredos. Peça aprovacao humana antes de apagar, enviar ou alterar dados sensiveis.",onChange:B=>ve({guardrails:B.target.value})})]}),e.jsxs("section",{className:"agent-studio-section",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Tripwires"}),e.jsx("span",{children:"Se a entrada tiver um termo bloqueado, a chamada LLM e interrompida antes de gastar tokens."})]}),e.jsxs("label",{children:["Termos bloqueados",e.jsx("input",{value:(P.blockedTerms||[]).join(", "),placeholder:"apagar banco, excluir cliente, vazar token",onChange:B=>ve({blockedTerms:B.target.value.split(",").map(ce=>ce.trim()).filter(Boolean)})})]}),e.jsxs("div",{className:"agent-studio-chips",children:[(P.blockedTerms||[]).map(B=>e.jsx("span",{children:B},B)),!(P.blockedTerms||[]).length&&e.jsx("small",{children:"Nenhum termo bloqueado."})]})]})]}),I=()=>e.jsxs("div",{className:"agent-studio-panel",children:[e.jsxs("section",{className:"agent-studio-section",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Manifest do orquestrador"}),e.jsx("span",{children:"Indice leve do que o agente principal pode enxergar antes de carregar conteudo completo."})]}),e.jsxs("div",{className:"agent-studio-manifest-table",children:[e.jsxs("div",{className:"agent-studio-manifest-row header",children:[e.jsx("span",{children:"Tipo"}),e.jsx("span",{children:"Nome"}),e.jsx("span",{children:"Load"}),e.jsx("span",{children:"Caminho"})]}),G.map(B=>e.jsxs("div",{className:`agent-studio-manifest-row ${B.enabled?"":"disabled"}`,children:[e.jsx("span",{children:B.kind}),e.jsx("strong",{title:B.description||B.name,children:B.name}),e.jsx("span",{children:B.load}),e.jsx("code",{children:B.path})]},`${B.kind}-${B.id}`))]}),!G.length&&e.jsx("div",{className:"component-empty",children:"Crie rules, skills, subagents ou MCP para gerar o manifest."})]}),e.jsxs("section",{className:"agent-studio-section",children:[e.jsxs("div",{className:"agent-studio-section-title",children:[e.jsx("strong",{children:"Semantica de load"}),e.jsx("span",{children:"Como o runtime monta o contexto inicial e decide chamadas sob demanda."})]}),e.jsxs("div",{className:"agent-studio-concept-grid",children:[e.jsxs("div",{className:"agent-studio-concept-card",children:[e.jsx("strong",{children:"always"}),e.jsx("small",{children:"sempre no contexto"}),e.jsx("span",{children:"Conteudo completo entra no preamble do agente principal."})]}),e.jsxs("div",{className:"agent-studio-concept-card",children:[e.jsx("strong",{children:"auto"}),e.jsx("small",{children:"agente decide"}),e.jsx("span",{children:"O agente ve o resumo no manifest e carrega/chama quando for util."})]}),e.jsxs("div",{className:"agent-studio-concept-card",children:[e.jsx("strong",{children:"on_demand"}),e.jsx("small",{children:"sob demanda"}),e.jsx("span",{children:"Ferramenta ou contexto fica disponivel para chamada pontual."})]}),e.jsxs("div",{className:"agent-studio-concept-card",children:[e.jsx("strong",{children:"manual"}),e.jsx("small",{children:"operador decide"}),e.jsx("span",{children:"Disponivel para uso explicito, sem autoexecucao."})]})]})]})]}),W=()=>e.jsxs("div",{className:"agent-studio-panel",children:[e.jsxs("div",{className:"agent-studio-list-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Skills do agente"}),e.jsx("span",{children:"Tarefas específicas executadas no contexto principal, com instruções e ferramentas/scripts auxiliares."})]}),e.jsxs("button",{type:"button",onClick:()=>{const B=Hm("skill");ye("skills",[...F,{id:B,name:"Nova skill",description:"",kind:"workflow",load:"auto",path:`.canvas-flow/skills/${B}/SKILL.md`,enabled:!0,sideEffect:"read",requiresApproval:!1,inputSchema:{},outputSchema:{}}])},children:[e.jsx(dn,{size:15}),"Skill"]})]}),F.map((B,ce)=>e.jsxs("section",{className:"agent-studio-list-item",children:[e.jsxs("div",{className:"agent-studio-list-item-header",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:B.enabled!==!1,onChange:O=>se("skills",ce,{enabled:O.target.checked})}),"Ativa"]}),e.jsx("button",{type:"button",className:"danger-button",onClick:()=>M("skills",ce),children:e.jsx(St,{size:15})})]}),e.jsxs("div",{className:"agent-studio-fields two-columns",children:[e.jsxs("label",{children:["Nome",e.jsx("input",{value:Dt(B.name),onChange:O=>se("skills",ce,{name:O.target.value})})]}),e.jsxs("label",{children:["Tipo",e.jsxs("select",{value:Dt(B.kind||"workflow"),onChange:O=>se("skills",ce,{kind:O.target.value}),children:[e.jsx("option",{value:"workflow",children:"Workflow"}),e.jsx("option",{value:"prompt",children:"Prompt"}),e.jsx("option",{value:"tool",children:"Tool"}),e.jsx("option",{value:"document",children:"Documento"})]})]}),q("skills",ce,B,"auto")]}),e.jsxs("label",{children:["Caminho no workspace",e.jsx("input",{value:Dt(B.path||bu("skills",B,"/SKILL.md",ce)),onChange:O=>se("skills",ce,{path:O.target.value})})]}),e.jsxs("label",{children:["Descricao",e.jsx("textarea",{rows:3,value:Dt(B.description),onChange:O=>se("skills",ce,{description:O.target.value})})]}),ie("skills",ce,B)]},Dt(B.id)||ce)),!F.length&&e.jsx("div",{className:"component-empty",children:"Nenhuma skill criada para este agente."}),e.jsxs("details",{className:"agent-studio-advanced-json",children:[e.jsx("summary",{children:"JSON avancado"}),e.jsx("textarea",{rows:8,value:JSON.stringify(F,null,2),onChange:B=>ye("skills",Jm(B.target.value,F))})]})]}),xe=()=>e.jsxs("div",{className:"agent-studio-panel",children:[e.jsxs("div",{className:"agent-studio-list-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Subagents"}),e.jsx("span",{children:"Especialistas sempre disponíveis, com contexto isolado e modelo próprio; retornam resumo ao agente pai."})]}),e.jsxs("button",{type:"button",onClick:()=>{const B=Hm("subagent");ye("subagents",[...Z,{id:B,name:"Novo subagent",role:"",model:r.model||"",handoff:"as_tool",load:"auto",path:`.canvas-flow/subagents/${B}.agent.md`,enabled:!0,sideEffect:"read",requiresApproval:!1,inputSchema:{},outputSchema:{}}])},children:[e.jsx(dn,{size:15}),"Subagent"]})]}),Z.map((B,ce)=>e.jsxs("section",{className:"agent-studio-list-item",children:[e.jsxs("div",{className:"agent-studio-list-item-header",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:B.enabled!==!1,onChange:O=>se("subagents",ce,{enabled:O.target.checked})}),"Ativo"]}),e.jsx("button",{type:"button",className:"danger-button",onClick:()=>M("subagents",ce),children:e.jsx(St,{size:15})})]}),e.jsxs("div",{className:"agent-studio-fields two-columns",children:[e.jsxs("label",{children:["Nome",e.jsx("input",{value:Dt(B.name),onChange:O=>se("subagents",ce,{name:O.target.value})})]}),e.jsxs("label",{children:["Handoff",e.jsxs("select",{value:Dt(B.handoff||"as_tool"),onChange:O=>se("subagents",ce,{handoff:O.target.value}),children:[e.jsx("option",{value:"as_tool",children:"Manager chama como tool"}),e.jsx("option",{value:"handoff",children:"Transfere conversa"})]})]}),q("subagents",ce,B,"auto")]}),e.jsxs("label",{children:["Modelo",e.jsx("select",{value:Dt(B.model||r.model||""),onChange:O=>se("subagents",ce,{model:O.target.value}),children:fe.map(O=>e.jsx("option",{value:O,children:O},O))})]}),e.jsxs("label",{children:["Caminho no workspace",e.jsx("input",{value:Dt(B.path||bu("subagents",B,".agent.md",ce)),onChange:O=>se("subagents",ce,{path:O.target.value})})]}),e.jsxs("label",{children:["Papel",e.jsx("textarea",{rows:3,value:Dt(B.role),onChange:O=>se("subagents",ce,{role:O.target.value})})]}),ie("subagents",ce,B)]},Dt(B.id)||ce)),!Z.length&&e.jsx("div",{className:"component-empty",children:"Nenhum subagent criado."}),e.jsxs("details",{className:"agent-studio-advanced-json",children:[e.jsx("summary",{children:"JSON avancado"}),e.jsx("textarea",{rows:8,value:JSON.stringify(Z,null,2),onChange:B=>ye("subagents",Jm(B.target.value,Z))})]})]}),Q=()=>e.jsxs("div",{className:"agent-studio-panel",children:[e.jsxs("div",{className:"agent-studio-list-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Rules"}),e.jsx("span",{children:"Regras sempre presentes ou sob demanda para redirecionar decisões, carregar convenções e aplicar segurança."})]}),e.jsxs("button",{type:"button",onClick:()=>{const B=Hm("rule");ye("rules",[...oe,{id:B,name:"Nova rule",timing:"before_llm",condition:"",action:"",load:"always",path:`.canvas-flow/rules/${B}.rule.json`,enabled:!0}])},children:[e.jsx(dn,{size:15}),"Rule"]})]}),oe.map((B,ce)=>e.jsxs("section",{className:"agent-studio-list-item",children:[e.jsxs("div",{className:"agent-studio-list-item-header",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:B.enabled!==!1,onChange:O=>se("rules",ce,{enabled:O.target.checked})}),"Ativa"]}),e.jsx("button",{type:"button",className:"danger-button",onClick:()=>M("rules",ce),children:e.jsx(St,{size:15})})]}),e.jsxs("div",{className:"agent-studio-fields two-columns",children:[e.jsxs("label",{children:["Nome",e.jsx("input",{value:Dt(B.name),onChange:O=>se("rules",ce,{name:O.target.value})})]}),e.jsxs("label",{children:["Momento",e.jsxs("select",{value:Dt(B.timing||"before_llm"),onChange:O=>se("rules",ce,{timing:O.target.value}),children:[e.jsx("option",{value:"always",children:"Sempre presente"}),e.jsx("option",{value:"on_demand",children:"Sob demanda"}),e.jsx("option",{value:"before_llm",children:"Antes da LLM"}),e.jsx("option",{value:"before_tool",children:"Antes de tool"}),e.jsx("option",{value:"after_tool",children:"Depois de tool"}),e.jsx("option",{value:"final_output",children:"Resposta final"})]})]}),q("rules",ce,B,"always")]}),e.jsxs("label",{children:["Caminho no workspace",e.jsx("input",{value:Dt(B.path||bu("rules",B,".rule.json",ce)),onChange:O=>se("rules",ce,{path:O.target.value})})]}),e.jsxs("label",{children:["Condicao",e.jsx("textarea",{rows:2,value:Dt(B.condition),onChange:O=>se("rules",ce,{condition:O.target.value})})]}),e.jsxs("label",{children:["Acao",e.jsx("textarea",{rows:2,value:Dt(B.action),onChange:O=>se("rules",ce,{action:O.target.value})})]})]},Dt(B.id)||ce)),!oe.length&&e.jsx("div",{className:"component-empty",children:"Nenhuma rule criada."}),e.jsxs("details",{className:"agent-studio-advanced-json",children:[e.jsx("summary",{children:"JSON avancado"}),e.jsx("textarea",{rows:8,value:JSON.stringify(oe,null,2),onChange:B=>ye("rules",Jm(B.target.value,oe))})]})]}),be=()=>e.jsxs("div",{className:"agent-studio-panel",children:[e.jsxs("div",{className:"agent-studio-list-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"MCP servers"}),e.jsx("span",{children:"Sob demanda: ferramentas externas, APIs, bancos, Google Drive e sistemas conectados."})]}),e.jsxs("button",{type:"button",onClick:()=>ye("mcpServers",[...ae,{id:Hm("mcp"),label:"Novo MCP",serverUrl:"",scope:"agent",load:"on_demand",path:".canvas-flow/mcp.json",enabled:!0,sideEffect:"read",requiresApproval:!1,inputSchema:{},outputSchema:{}}]),children:[e.jsx(dn,{size:15}),"MCP"]})]}),ae.map((B,ce)=>e.jsxs("section",{className:"agent-studio-list-item",children:[e.jsxs("div",{className:"agent-studio-list-item-header",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:B.enabled!==!1,onChange:O=>se("mcpServers",ce,{enabled:O.target.checked})}),"Ativo"]}),e.jsx("button",{type:"button",className:"danger-button",onClick:()=>M("mcpServers",ce),children:e.jsx(St,{size:15})})]}),e.jsxs("div",{className:"agent-studio-fields two-columns",children:[e.jsxs("label",{children:["Nome",e.jsx("input",{value:Dt(B.label),onChange:O=>se("mcpServers",ce,{label:O.target.value})})]}),e.jsxs("label",{children:["Escopo",e.jsxs("select",{value:Dt(B.scope||"agent"),onChange:O=>se("mcpServers",ce,{scope:O.target.value}),children:[e.jsx("option",{value:"agent",children:"Agente"}),e.jsx("option",{value:"team",children:"Time"}),e.jsx("option",{value:"external",children:"Externo"})]})]}),q("mcpServers",ce,B,"on_demand")]}),e.jsxs("label",{children:["Caminho no workspace",e.jsx("input",{value:Dt(B.path||".canvas-flow/mcp.json"),onChange:O=>se("mcpServers",ce,{path:O.target.value})})]}),e.jsxs("label",{children:["Server URL",e.jsx("input",{value:Dt(B.serverUrl),placeholder:"https://mcp.sua-empresa.com/sse",onChange:O=>se("mcpServers",ce,{serverUrl:O.target.value})})]}),ie("mcpServers",ce,B)]},Dt(B.id)||ce)),!ae.length&&e.jsx("div",{className:"component-empty",children:"Nenhum MCP cadastrado para o perfil do agente."}),e.jsxs("details",{className:"agent-studio-advanced-json",children:[e.jsx("summary",{children:"JSON avancado"}),e.jsx("textarea",{rows:8,value:JSON.stringify(ae,null,2),onChange:B=>ye("mcpServers",Jm(B.target.value,ae))})]})]}),Ce=()=>R==="guardrails"?K():R==="manifest"?I():R==="skills"?W():R==="subagents"?xe():R==="rules"?Q():R==="mcp"?be():$();return e.jsx("div",{className:"modal-backdrop agent-studio-backdrop",onMouseDown:C,children:e.jsxs("div",{className:"agent-studio-modal",onMouseDown:B=>B.stopPropagation(),children:[e.jsxs("div",{className:"modal-header agent-studio-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Agent Studio"}),e.jsxs("span",{children:[n," · ",X," · ",r.model||"modelo default"]})]}),e.jsxs("button",{type:"button",onClick:C,children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"agent-studio-body",children:[e.jsxs("aside",{className:"agent-studio-sidebar",children:[e.jsxs("div",{className:"agent-studio-agent-badge",children:[e.jsx(Ho,{size:20}),e.jsxs("div",{children:[e.jsx("strong",{children:n}),e.jsx("span",{children:t})]})]}),e.jsxs("div",{className:"agent-studio-metrics",children:[e.jsxs("span",{children:[e.jsx("strong",{children:F.length})," skills"]}),e.jsxs("span",{children:[e.jsx("strong",{children:Z.length})," subagents"]}),e.jsxs("span",{children:[e.jsx("strong",{children:oe.length})," rules"]}),e.jsxs("span",{children:[e.jsx("strong",{children:ae.length})," MCP"]})]}),e.jsx("nav",{className:"agent-studio-tabs","aria-label":"Agent Studio",children:JS.map(B=>{const ce=B.icon;return e.jsxs("button",{type:"button",className:R===B.id?"active":"",onClick:()=>L(B.id),children:[e.jsx(ce,{size:16}),B.label]},B.id)})})]}),e.jsxs("main",{className:"agent-studio-content",children:[Ce(),h&&e.jsx("div",{className:"auth-error",children:h}),f&&e.jsx("div",{className:"provider-config-success",children:f})]})]}),e.jsxs("div",{className:"modal-actions agent-studio-actions",children:[e.jsx("span",{children:"Salva no perfil do agente e tambem atualiza o fluxo aberto como fallback."}),e.jsxs("div",{children:[e.jsx("button",{type:"button",onClick:C,children:"Cancelar"}),e.jsxs("button",{type:"button",className:"primary-button",onClick:j,disabled:p,children:[e.jsx(Fl,{size:15}),p?"Salvando...":"Salvar Agent OS"]})]})]})]})})}const Wf="",jj="",XS="false".toLowerCase()==="true",Gf="canvas_flow_auth_token";let Cg="";const Lc=typeof window<"u"?window.location.origin:"",YS=XS;function bj(){return localStorage.getItem(Gf)||""}function Km(t){t?localStorage.setItem(Gf,t):localStorage.removeItem(Gf)}function wj(){return!!(bj()||Cg||jj)}function wu(t){const n=new URLSearchParams;Object.entries(t).forEach(([s,l])=>{l&&n.set(s,l)});const r=n.toString();return r?`?${r}`:""}function qe(){const t=bj()||Cg||jj;return t?{Authorization:`Bearer ${t}`}:{}}function ZS(t){!t.loginRequired&&t.apiToken&&(Cg=t.apiToken)}async function Be(t,n){const r=(n==null?void 0:n.body)instanceof FormData,s=`${Wf}${t}`;let l;try{l=await fetch(s,{...n,headers:{...r?{}:{"Content-Type":"application/json"},...(n==null?void 0:n.headers)||{}}})}catch(p){const m=p instanceof Error?p.message:"falha de rede";throw new Error(`Não foi possível conectar ao backend em ${Lc||"esta origem"}. Verifique se a API está rodando e se o CORS permite esta origem. Detalhe: ${m}`)}if(!l.ok){const p=await l.text();let m=p||`HTTP ${l.status}`;try{const f=JSON.parse(p);m=(f==null?void 0:f.message)||(f==null?void 0:f.error)||m}catch{}const h=new Error(m||`HTTP ${l.status}`);throw h.status=l.status,h}return l.json()}const ze={authConfig(){return Be("/api/auth/config").then(t=>(ZS(t),t))},login(t){return Be("/api/auth/login",{method:"POST",body:JSON.stringify(t)})},bootstrap(t){return Be("/api/auth/bootstrap",{method:"POST",body:JSON.stringify(t)})},createOrganization(t){return Be("/api/auth/organizations",{method:"POST",body:JSON.stringify(t)})},me(){return Be("/api/auth/me",{headers:qe()})},createOrganizationUser(t){return Be("/api/auth/users",{method:"POST",headers:qe(),body:JSON.stringify(t)})},getProviderConfig(t){return Be(`/api/provider-config${wu({agentId:t==null?void 0:t.agentId})}`,{headers:qe()})},updateProviderConfig(t,n){return Be(`/api/provider-config${wu({agentId:n==null?void 0:n.agentId})}`,{method:"PUT",headers:qe(),body:JSON.stringify({settings:t,agentId:n==null?void 0:n.agentId})})},deleteProviderConfigSection(t,n){return Be(`/api/provider-config/${encodeURIComponent(t)}${wu({agentId:n==null?void 0:n.agentId})}`,{method:"DELETE",headers:qe()})},completeWhatsappEmbeddedSignup(t,n){return Be(`/api/provider-config/whatsapp/embedded-signup${wu({agentId:n==null?void 0:n.agentId})}`,{method:"POST",headers:qe(),body:JSON.stringify({...t,agentId:n==null?void 0:n.agentId})})},listFlows(t){const n=t?`?agentId=${encodeURIComponent(t)}`:"";return Be(`/api/canvas-flows${n}`,{headers:qe()})},listAgents(){return Be("/api/canvas-flows/agents",{headers:qe()})},createAgent(t){return Be("/api/canvas-flows/agents",{method:"POST",headers:qe(),body:JSON.stringify(t)})},renameAgent(t,n){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}`,{method:"PATCH",headers:qe(),body:JSON.stringify(n)})},reorderAgents(t){return Be("/api/canvas-flows/agents/reorder",{method:"PATCH",headers:qe(),body:JSON.stringify({orderedAgentIds:t})})},updateAgentConfig(t,n){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/config`,{method:"PATCH",headers:qe(),body:JSON.stringify({config:n})})},getAgentWorkspace(t){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/workspace`,{headers:qe()})},importAgentWorkspace(t,n){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/workspace`,{method:"PUT",headers:qe(),body:JSON.stringify(n)})},deleteAgent(t,n){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}`,{method:"DELETE",headers:qe(),body:JSON.stringify(n)})},getAgentReleases(t){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/releases`,{headers:qe()})},deployAgentRelease(t,n){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/releases/deploy`,{method:"POST",headers:qe(),body:JSON.stringify(n)})},activateAgentRelease(t,n){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/releases/${encodeURIComponent(String(n))}/activate`,{method:"PATCH",headers:qe()})},renameAgentRelease(t,n,r){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/releases/${encodeURIComponent(String(n))}`,{method:"PATCH",headers:qe(),body:JSON.stringify(r)})},overwriteAgentRelease(t,n,r){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/releases/${encodeURIComponent(String(n))}/overwrite`,{method:"PATCH",headers:qe(),body:JSON.stringify(r)})},deleteAgentRelease(t,n){return Be(`/api/canvas-flows/agents/${encodeURIComponent(t)}/releases/${encodeURIComponent(String(n))}`,{method:"DELETE",headers:qe()})},getFlow(t){return Be(`/api/canvas-flows/${t}`,{headers:qe()})},getFlowVersions(t){return Be(`/api/canvas-flows/${t}/versions`,{headers:qe()})},createFlow(t){return Be("/api/canvas-flows",{method:"POST",headers:qe(),body:JSON.stringify(t)})},updateFlow(t,n){return Be(`/api/canvas-flows/${t}`,{method:"PATCH",headers:qe(),body:JSON.stringify(n)})},deployFlowVersion(t,n){return Be(`/api/canvas-flows/${t}/versions/deploy`,{method:"POST",headers:qe(),body:JSON.stringify(n)})},activateFlowVersion(t,n){return Be(`/api/canvas-flows/${t}/versions/${encodeURIComponent(String(n))}/activate`,{method:"PATCH",headers:qe()})},renameFlowVersion(t,n,r){return Be(`/api/canvas-flows/${t}/versions/${encodeURIComponent(String(n))}`,{method:"PATCH",headers:qe(),body:JSON.stringify(r)})},overwriteFlowVersion(t,n,r){return Be(`/api/canvas-flows/${t}/versions/${encodeURIComponent(String(n))}/overwrite`,{method:"PATCH",headers:qe(),body:JSON.stringify(r)})},deleteFlowVersion(t,n){return Be(`/api/canvas-flows/${t}/versions/${encodeURIComponent(String(n))}`,{method:"DELETE",headers:qe()})},reorderFlows(t,n){return Be("/api/canvas-flows/reorder",{method:"PATCH",headers:qe(),body:JSON.stringify({orderedIds:t,agentId:n})})},deleteFlow(t){return Be(`/api/canvas-flows/${t}`,{method:"DELETE",headers:qe()})},listApiKeys(t){const n=new URLSearchParams;t!=null&&t.flowId&&n.set("flowId",t.flowId),t!=null&&t.agentId&&n.set("agentId",t.agentId);const r=n.toString()?`?${n.toString()}`:"";return Be(`/api/canvas-flow-api-keys${r}`,{headers:qe()})},createApiKey(t){return Be("/api/canvas-flow-api-keys",{method:"POST",headers:qe(),body:JSON.stringify(t)})},revokeApiKey(t){return Be(`/api/canvas-flow-api-keys/${t}`,{method:"DELETE",headers:qe()})},testFlow(t){return Be("/api/canvas-flow/test",{method:"POST",headers:qe(),body:JSON.stringify(t)})},replaySimulation(t){return Be("/api/canvas-flow/simulations/replay",{method:"POST",headers:qe(),body:JSON.stringify(t)})},getSqsJob(t,n){const r=new URLSearchParams;n!=null&&n.agentId&&r.set("agentId",n.agentId),n!=null&&n.flowId&&r.set("flowId",n.flowId);const s=r.toString()?`?${r.toString()}`:"";return Be(`/api/canvas-flow/sqs/jobs/${encodeURIComponent(t)}${s}`,{headers:qe()})},retrySqsJob(t,n={}){return Be(`/api/canvas-flow/sqs/jobs/${encodeURIComponent(t)}/retry`,{method:"POST",headers:qe(),body:JSON.stringify(n)})},getSqsHealth(){return Be("/api/canvas-flow/sqs/health",{headers:qe()})},async streamTestFlow(t,n){const r=await fetch(`${Wf}/api/canvas-flow/test/stream`,{method:"POST",headers:{"Content-Type":"application/json",...qe()},body:JSON.stringify(t)});if(!r.ok||!r.body){const h=await r.text();throw new Error(h||`HTTP ${r.status}`)}const s=r.body.getReader(),l=new TextDecoder;let p="",m=null;for(;;){const{done:h,value:f}=await s.read();p+=l.decode(f||new Uint8Array,{stream:!h});const x=p.split(`
418
+ `);p=x.pop()||"";for(const j of x){const w=j.trim();if(!w)continue;const N=JSON.parse(w);if(N.event==="message"&&N.message&&n(N.message),N.event==="result"&&(m=N.result||{}),N.event==="error")throw new Error(N.message||"Falha no stream do fluxo.")}if(h)break}if(p.trim()){const h=JSON.parse(p.trim());if(h.event==="message"&&h.message&&n(h.message),h.event==="result"&&(m=h.result||{}),h.event==="error")throw new Error(h.message||"Falha no stream do fluxo.")}return m},generateContextScript(t){return Be("/api/canvas-flow/context/script/generate",{method:"POST",headers:qe(),body:JSON.stringify(t)})},generateMongoConfig(t){return Be("/api/canvas-flow/mongodb/config/generate",{method:"POST",headers:qe(),body:JSON.stringify(t)})},generateFlowWithAssistant(t){return Be("/api/canvas-flow/assistant/generate-flow",{method:"POST",headers:qe(),body:JSON.stringify(t)})},generatePromptField(t){return Be("/api/canvas-flow/prompt-field/generate",{method:"POST",headers:qe(),body:JSON.stringify(t)})},createWhatsappFlow(t){return Be("/api/canvas-flow/whatsapp-flows",{method:"POST",headers:qe(),body:JSON.stringify(t)})},listWhatsappFlows(t){return Be("/api/canvas-flow/whatsapp-flows/list",{method:"POST",headers:qe(),body:JSON.stringify(t)})},deleteWhatsappFlow(t,n){return Be(`/api/canvas-flow/whatsapp-flows/${encodeURIComponent(t)}`,{method:"DELETE",headers:qe(),body:JSON.stringify(n)})},uploadWhatsappFlowJson(t,n){return Be(`/api/canvas-flow/whatsapp-flows/${encodeURIComponent(t)}/assets`,{method:"POST",headers:qe(),body:JSON.stringify(n)})},publishWhatsappFlow(t,n){return Be(`/api/canvas-flow/whatsapp-flows/${encodeURIComponent(t)}/publish`,{method:"POST",headers:qe(),body:JSON.stringify(n)})},getTagDashboard(t){return Be("/api/canvas-flow/tags/dashboard",{method:"POST",headers:qe(),body:JSON.stringify(t)})},listFlowTemplates(){return Be("/api/canvas-flow/templates",{headers:qe()})},getAgentOpsDashboard(t){return Be("/api/canvas-flow/agentops/dashboard",{method:"POST",headers:qe(),body:JSON.stringify(t)}).catch(async n=>{var x,j,w,N,C,E,T;const r=n==null?void 0:n.status,s=n instanceof Error?n.message:String(n||"");if(r!==404&&!/agentops\/dashboard|not found|cannot post/i.test(s))throw n;const l=await Be("/api/canvas-flow/tags/dashboard",{method:"POST",headers:qe(),body:JSON.stringify({...t,tags:[],limit:Number(t.historyLimit||80),historyLimit:Number(t.historyLimit||80)})}),p=l.traceInsights||{},m=l.insights||{},h=Number(((x=p.summary)==null?void 0:x.runs)||0),f=Number(((j=p.summary)==null?void 0:j.errorCount)||0);return{...l,fallback:"tags-dashboard",summary:{conversations:((w=m.summary)==null?void 0:w.conversations)||((N=l.summary)==null?void 0:N.conversations)||0,messages:((C=m.summary)==null?void 0:C.totalMessages)||0,userMessages:((E=m.summary)==null?void 0:E.userMessages)||0,assistantMessages:((T=m.summary)==null?void 0:T.assistantMessages)||0,runs:h,errorCount:f,errorRate:h?f/h:0,avgDurationMs:0,llmCalls:0,estimatedTokens:0},queue:{},insights:m,traceInsights:p,errors:p.errors||[],hotNodes:p.byStep||[],releases:{activeRelease:void 0,latestRelease:0,releases:[]},flows:[],readiness:{status:"attention",warnings:["Backend atual ainda nao tem o endpoint AgentOps. Reinicie ou atualize o backend; enquanto isso, este painel usa dados operacionais do dashboard existente."]}}})},getMcpOAuthStatus(t){return Be(`/api/mcp-oauth/status${wu({serverUrl:t.serverUrl,agentId:t.agentId,connectionScope:t.connectionScope})}`,{headers:qe()})},startMcpOAuth(t){return Be("/api/mcp-oauth/start",{method:"POST",headers:qe(),body:JSON.stringify(t)})},disconnectMcpOAuth(t){return Be(`/api/mcp-oauth${wu({serverUrl:t.serverUrl,agentId:t.agentId,connectionScope:t.connectionScope})}`,{method:"DELETE",headers:qe()})},listExternalMcpTools(t){return Be("/api/canvas-flow/mcp-external/tools",{method:"POST",headers:qe(),body:JSON.stringify(t)})},addRagDocuments(t){return Be("/api/rag/add-documents",{method:"POST",headers:qe(),body:JSON.stringify(t)})},addRagFiles(t){return Be("/api/rag/add-documents-from-file",{method:"POST",headers:qe(),body:t})},extractFiles(t){return Be("/api/rag/extract-files",{method:"POST",headers:qe(),body:t})},async downloadDocument(t){var l;const n=await fetch(`${Wf}/api/documents/${encodeURIComponent(t)}/download`,{headers:qe()});if(!n.ok){const p=await n.text();throw new Error(p||`HTTP ${n.status}`)}const s=((l=(n.headers.get("content-disposition")||"").match(/filename="?([^";]+)"?/i))==null?void 0:l[1])||"arquivo";return{blob:await n.blob(),filename:s}},listRagDocuments(t){return Be("/api/rag/documents/list",{method:"POST",headers:qe(),body:JSON.stringify(t)})},getRagDocument(t){return Be("/api/rag/documents/get",{method:"POST",headers:qe(),body:JSON.stringify(t)})},updateRagDocument(t){return Be("/api/rag/documents/update",{method:"POST",headers:qe(),body:JSON.stringify(t)})},deleteRagDocument(t){return Be("/api/rag/documents/delete",{method:"POST",headers:qe(),body:JSON.stringify(t)})}};function hf(t){if(!t)return"-";const n=new Date(t);return Number.isNaN(n.getTime())?"-":n.toLocaleString("pt-BR",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"})}function ek(t){return t.flowId?"Fluxo":"Todos"}function tk({flowId:t,flowName:n,agentId:r}){const[s,l]=b.useState([]),[p,m]=b.useState(t?"flow":"global"),[h,f]=b.useState(""),[x,j]=b.useState(""),[w,N]=b.useState(null),[C,E]=b.useState(null),[T,R]=b.useState(!1),[L,U]=b.useState(!1),[P,F]=b.useState(""),Z=b.useMemo(()=>p==="flow"?`Chave - ${n||"fluxo"}`:"Chave global Canvas Flow",[n,p]),oe=async()=>{R(!0),F("");try{const X=await ze.listApiKeys(t?{flowId:t}:void 0);l(X)}catch(X){F(X instanceof Error?X.message:"Não foi possível carregar as chaves.")}finally{R(!1)}};b.useEffect(()=>{oe()},[t]);const ae=async()=>{U(!0),F("");try{const X={name:h.trim()||Z,flowId:p==="flow"?t:void 0,agentId:p==="flow"?r:void 0,expiresAt:x||void 0},fe=await ze.createApiKey(X);N(fe),f(""),j(""),await oe()}catch(X){F(X instanceof Error?X.message:"Não foi possível criar a chave.")}finally{U(!1)}},te=async X=>{U(!0),F("");try{await ze.revokeApiKey(X),E(null),await oe()}catch(fe){F(fe instanceof Error?fe.message:"Não foi possível revogar a chave.")}finally{U(!1)}};return e.jsxs("div",{className:"api-keys-shell",children:[e.jsxs("div",{className:"api-keys-intro",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:[e.jsx(ks,{size:17})," Chaves de consumo"]}),e.jsx("p",{children:"Gere uma chave global ou limitada ao fluxo atual. Depois de criada, a chave completa aparece uma unica vez."})]}),e.jsxs("button",{type:"button",onClick:()=>void oe(),disabled:T,children:[T?e.jsx($t,{size:15,className:"spin"}):e.jsx(zS,{size:15}),"Atualizar"]})]}),!wj()&&e.jsxs("div",{className:"api-keys-warning",children:["Configure ",e.jsx("code",{children:"VITE_CANVAS_FLOW_API_TOKEN"})," no frontend com o token master para gerenciar chaves por esta tela."]}),P&&e.jsx("div",{className:"api-keys-error",children:P}),w&&e.jsxs("div",{className:"api-keys-created",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:[e.jsx(Ng,{size:16})," Chave criada"]}),e.jsx("p",{children:"Guarde este valor agora. Depois ele não será exibido novamente."})]}),e.jsxs("div",{className:"created-key-row",children:[e.jsx("code",{children:w.token}),e.jsxs("button",{type:"button",onClick:()=>navigator.clipboard.writeText(w.token),children:[e.jsx(nn,{size:15}),"Copiar"]})]})]}),e.jsxs("div",{className:"api-keys-create",children:[e.jsxs("div",{className:"api-key-form-grid",children:[e.jsxs("label",{children:["Nome",e.jsx("input",{value:h,placeholder:Z,onChange:X=>f(X.target.value)})]}),e.jsxs("label",{children:["Escopo",e.jsxs("select",{value:p,onChange:X=>m(X.target.value),children:[e.jsx("option",{value:"global",children:"Todos os fluxos"}),e.jsx("option",{value:"flow",disabled:!t,children:"Somente este fluxo"})]})]}),e.jsxs("label",{children:["Expira em",e.jsx("input",{type:"datetime-local",value:x,onChange:X=>j(X.target.value)})]})]}),p==="flow"&&!t&&e.jsx("div",{className:"api-keys-warning",children:"Salve o fluxo antes de criar uma chave limitada a ele."}),e.jsxs("button",{type:"button",className:"primary-button",onClick:ae,disabled:L||p==="flow"&&!t,children:[L?e.jsx($t,{size:15,className:"spin"}):e.jsx(mj,{size:15}),"Gerar chave"]})]}),e.jsxs("div",{className:"api-keys-list",children:[e.jsxs("div",{className:"api-keys-list-header",children:[e.jsx("strong",{children:"Chaves criadas"}),e.jsx("span",{children:s.length})]}),T&&e.jsx("div",{className:"api-keys-empty",children:"Carregando chaves..."}),!T&&!s.length&&e.jsx("div",{className:"api-keys-empty",children:"Nenhuma chave criada ainda."}),!T&&s.map(X=>e.jsxs("div",{className:`api-key-row ${X.active?"":"api-key-row-disabled"}`,children:[e.jsxs("div",{className:"api-key-row-main",children:[e.jsx("strong",{children:X.name}),e.jsxs("span",{children:[ek(X)," · ",X.tokenPrefix,"... · usos ",X.totalUses||0]}),e.jsxs("small",{children:["Criada ",hf(X.createdAt)," · Ultimo uso ",hf(X.lastUsedAt),X.expiresAt?` · Expira ${hf(X.expiresAt)}`:""]})]}),e.jsxs("div",{className:"api-key-row-actions",children:[e.jsx("span",{className:X.active?"status-pill active":"status-pill revoked",children:X.active?"Ativa":"Revogada"}),X.active&&e.jsxs("button",{type:"button",className:"danger-button compact-danger-button",onClick:()=>E(X),disabled:L,children:[e.jsx(St,{size:14}),"Revogar"]})]})]},X._id))]}),C&&e.jsxs("div",{className:"api-keys-revoke-confirm",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Revogar chave?"}),e.jsxs("p",{children:["A chave ",e.jsx("b",{children:C.name})," deixara de consumir qualquer fluxo imediatamente."]})]}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{type:"button",onClick:()=>E(null),children:"Cancelar"}),e.jsxs("button",{type:"button",className:"danger-button",onClick:()=>void te(C._id),disabled:L,children:[e.jsx(St,{size:15}),"Revogar"]})]})]})]})}function Wi(t){var n,r;t.stopPropagation(),(r=(n=t.nativeEvent).stopImmediatePropagation)==null||r.call(n)}const ff=[{key:"rules",label:"Rules",fallbackLoad:"always"},{key:"skills",label:"Skills",fallbackLoad:"auto"},{key:"subagents",label:"Subagents",fallbackLoad:"auto"},{key:"mcpServers",label:"MCP",fallbackLoad:"on_demand"}],lh=[{id:"gmail",label:"Email - Gmail",serverUrl:"https://gmailmcp.googleapis.com/mcp/v1",authMode:"oauth",description:"Google Workspace em Developer Preview. Permite ler emails, organizar mensagens e criar rascunhos. No projeto Google Cloud do cliente, habilite gmail.googleapis.com e gmailmcp.googleapis.com, adicione os scopes gmail.readonly e gmail.compose e autorize usuarios de teste quando a audiencia for External.",docsUrl:"https://developers.google.com/workspace/guides/configure-mcp-servers",oauthScopes:["https://www.googleapis.com/auth/gmail.readonly","https://www.googleapis.com/auth/gmail.compose"],setupLinks:[{label:"Habilitar Gmail API",description:"Ative gmail.googleapis.com no projeto Google Cloud.",url:"https://console.cloud.google.com/flows/enableapi?apiid=gmail.googleapis.com"},{label:"Habilitar Gmail MCP API",description:"Ative gmailmcp.googleapis.com no mesmo projeto.",url:"https://console.cloud.google.com/flows/enableapi?apiid=gmailmcp.googleapis.com"},{label:"Configurar Data Access",description:"Adicione os scopes gmail.readonly e gmail.compose.",url:"https://console.cloud.google.com/auth/scopes"},{label:"Configurar Audience",description:"Se usar audiencia External, inclua as contas em Test users.",url:"https://console.cloud.google.com/auth/audience"},{label:"Configurar Branding OAuth",description:"Configure a tela de consentimento do aplicativo.",url:"https://console.cloud.google.com/auth/branding"}],setupNotes:["Depois de alterar scopes ou usuarios de teste, use Reconectar do zero no node MCP.","O Google Workspace MCP esta em Developer Preview e pode exigir liberacao da conta ou do dominio."]},{id:"google-drive",label:"Google Drive",serverUrl:"https://drivemcp.googleapis.com/mcp/v1",authMode:"oauth",description:"Google Workspace em Developer Preview. Permite pesquisar, ler, criar, copiar e baixar arquivos conforme as permissoes OAuth concedidas.",docsUrl:"https://developers.google.com/workspace/guides/configure-mcp-servers",oauthScopes:["https://www.googleapis.com/auth/drive.readonly","https://www.googleapis.com/auth/drive.file"],setupLinks:[{label:"Habilitar Google Drive API",description:"Ative drive.googleapis.com no projeto Google Cloud.",url:"https://console.cloud.google.com/flows/enableapi?apiid=drive.googleapis.com"},{label:"Habilitar Google Drive MCP API",description:"Ative drivemcp.googleapis.com no mesmo projeto.",url:"https://console.cloud.google.com/flows/enableapi?apiid=drivemcp.googleapis.com"},{label:"Configurar Data Access",description:"Adicione os scopes drive.readonly e drive.file.",url:"https://console.cloud.google.com/auth/scopes"},{label:"Configurar Audience",description:"Se usar audiencia External, inclua as contas em Test users.",url:"https://console.cloud.google.com/auth/audience"},{label:"Configurar Branding OAuth",description:"Configure a tela de consentimento do aplicativo.",url:"https://console.cloud.google.com/auth/branding"}],setupNotes:["Depois de alterar scopes ou usuarios de teste, use Reconectar do zero no node MCP.","O Google Workspace MCP esta em Developer Preview e pode exigir liberacao da conta ou do dominio."]},{id:"onedrive",label:"Microsoft OneDrive Work IQ (preview)",serverUrl:"https://agent365.svc.cloud.microsoft/agents/tenants/SEU_TENANT_ID/servers/mcp_OneDriveRemoteServer",authMode:"oauth",description:"Servidor Work IQ OneDrive em preview. Substitua SEU_TENANT_ID na URL pelo tenant Microsoft Entra. Requer configuracao do cliente OAuth, licenca Microsoft 365 Copilot e limita operacoes de arquivo a 5 MB.",docsUrl:"https://learn.microsoft.com/en-us/microsoft-agent-365/mcp-server-reference/onedrive",setupLinks:[{label:"Referencia Work IQ OneDrive",description:"Confirme requisitos, URL tenant-level e tools disponiveis.",url:"https://learn.microsoft.com/en-us/microsoft-agent-365/mcp-server-reference/onedrive"},{label:"Microsoft 365 Admin Center",description:"Revise licencas e politicas do tenant Microsoft 365.",url:"https://admin.microsoft.com/"},{label:"Microsoft Entra Admin Center",description:"Consulte o tenant ID e as politicas de acesso da organizacao.",url:"https://entra.microsoft.com/"}],setupNotes:["Substitua SEU_TENANT_ID na URL do preset.","O servidor esta em preview e opera no OneDrive pessoal do usuario autenticado. Operacoes de arquivo sao limitadas a 5 MB."]},{id:"notion",label:"Notion",serverUrl:"https://mcp.notion.com/mcp",authMode:"oauth",description:"Servidor remoto oficial do Notion. Usa OAuth e permite ler ou alterar o workspace conforme as permissoes concedidas.",docsUrl:"https://developers.notion.com/docs/get-started-with-mcp",setupLinks:[{label:"Conectar ao Notion MCP",description:"Veja o fluxo OAuth oficial e as permissoes do workspace.",url:"https://developers.notion.com/docs/get-started-with-mcp"}],setupNotes:["O Notion MCP remoto exige OAuth por usuario. A conta acessa apenas o conteudo permitido no workspace selecionado."]},{id:"github",label:"GitHub",serverUrl:"https://api.githubcopilot.com/mcp/",authMode:"bearer",description:"Servidor remoto oficial do GitHub. Informe um PAT no campo Segredo; OAuth tambem e possivel quando o host possui um GitHub App configurado.",docsUrl:"https://github.com/github/github-mcp-server",setupLinks:[{label:"Criar Personal Access Token",description:"Gere um PAT com acesso minimo aos repositorios e operacoes necessarias.",url:"https://github.com/settings/personal-access-tokens/new"},{label:"Documentacao do GitHub MCP",description:"Confira autenticacao remota, PAT, OAuth e politicas aplicaveis.",url:"https://github.com/github/github-mcp-server"},{label:"Politicas e governanca",description:"Confira restricoes organizacionais para MCP remoto.",url:"https://github.com/github/github-mcp-server/blob/main/docs/policies-and-governance.md"}],setupNotes:["No Canvas Flow, use autenticacao Bearer e informe o PAT em Segredo.","Aplique privilegio minimo: leitura para consultas e escrita somente quando o fluxo realmente precisar alterar recursos."]},{id:"gitlab-orbit",label:"GitLab Orbit (experimental)",serverUrl:"https://gitlab.com/api/v4/orbit/mcp",authMode:"oauth",description:"Servidor remoto oficial do GitLab Orbit para consultar o knowledge graph. Requer Premium ou Ultimate, Orbit habilitado no grupo e ainda nao esta pronto para producao.",docsUrl:"https://docs.gitlab.com/orbit/remote/access/mcp/",setupLinks:[{label:"Habilitar Orbit Remote",description:"Ative o Orbit no grupo top-level com uma conta Owner.",url:"https://docs.gitlab.com/orbit/remote/getting-started/"},{label:"Conectar via MCP",description:"Veja o endpoint remoto e o fluxo OAuth do GitLab Orbit.",url:"https://docs.gitlab.com/orbit/remote/access/mcp/"}],setupNotes:["Requer GitLab.com Premium ou Ultimate, papel Owner no grupo top-level e Orbit habilitado.","Orbit Remote ainda e experimental e nao deve ser tratado como dependencia de producao."]},{id:"aws-knowledge",label:"AWS Knowledge",serverUrl:"https://knowledge-mcp.global.api.aws",authMode:"none",description:"Servidor remoto oficial e GA para documentacao, referencias, disponibilidade regional e skills AWS. Nao altera recursos da conta e nao exige autenticacao.",docsUrl:"https://awslabs.github.io/mcp/servers/aws-knowledge-mcp-server",setupLinks:[{label:"Documentacao AWS Knowledge MCP",description:"Consulte ferramentas, exemplos e comportamento do servidor.",url:"https://awslabs.github.io/mcp/servers/aws-knowledge-mcp-server"}],setupNotes:["Nao exige credenciais e nao altera recursos da conta AWS."]},{id:"aws-mcp",label:"AWS MCP Server - infraestrutura",serverUrl:"https://aws-mcp.us-east-1.api.aws/mcp",authMode:"aws_sigv4",description:"Servidor remoto gerenciado e GA do Agent Toolkit for AWS. Consulta documentacao e pode operar recursos reais da conta conforme o IAM do backend. Usa AWS SigV4; aplique privilegio minimo e aprovacao humana antes de mutacoes.",docsUrl:"https://docs.aws.amazon.com/aws-mcp/latest/userguide/getting-started-aws-mcp-server.html",setupLinks:[{label:"Configurar AWS MCP Server",description:"Veja credenciais, SigV4, teste de conexao e troubleshooting.",url:"https://docs.aws.amazon.com/aws-mcp/latest/userguide/getting-started-aws-mcp-server.html"},{label:"Entender autorizacao IAM",description:"As policies do usuario ou role controlam cada chamada encaminhada aos servicos AWS.",url:"https://docs.aws.amazon.com/aws-mcp/latest/userguide/security_iam_service-with-iam.html"},{label:"Abrir IAM Roles",description:"Revise a role usada pelo backend e aplique privilegio minimo.",url:"https://console.aws.amazon.com/iam/home#/roles"}],setupNotes:["O servidor nao exige actions IAM exclusivas do MCP. As permissoes dos servicos AWS continuam valendo normalmente.","Use aws:ViaAWSMCPService e aws:CalledViaAWSMCP para restringir chamadas iniciadas via MCP."]}];function Nj(t){return lh.find(n=>n.serverUrl===String(t||"").trim())}function nk(t){var n,r;return((r=(n=Nj(t))==null?void 0:n.oauthScopes)==null?void 0:r.join(" "))||""}function Ux(t,n){const r=String(t||"").trim();return r==="always"||r==="auto"||r==="on_demand"||r==="manual"?r:n}function Ep(t,n){return String(t.id||t.key||t.name||t.label||n).trim()||n}function qx(t,n){return String(t.name||t.label||t.title||Ep(t,n)).trim()||n}function Hx(t){return String(t.description||t.role||t.instructions||t.instruction||t.action||"").trim()}function ok(t,n){return String(t||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||n}function Ns(t,n){try{return JSON.parse(t)}catch{return n}}function Gr(t){const n=String(t||"").trim();if(!n)return"";const r=n.replace(/\{\{[\s\S]*?\}\}/g,"0");try{const s=JSON.parse(r);return!s||typeof s!="object"||Array.isArray(s)?"Use um objeto JSON no topo.":""}catch(s){return s instanceof Error?s.message:"JSON invalido."}}function ak(t){const n=t.trim().replace(/;$/,"").trim();return/^[A-Za-z_$][\w$]*(?:\(\s*\))?$/.test(n)||/^return\s+[A-Za-z_$][\w$]*(?:\(\s*\))?\s*;?$/.test(t.trim())}function Wx(t){const n=String(t||"").trim();if(!n)return"";if(ak(n))return'Script precisa retornar um objeto JSON. Ex: return { exemplo: "valor" };';const r=/\breturn\b/.test(n)?n:`return (${n});`;try{return new Function("context","slots","input","now",r),""}catch(s){return s instanceof Error?s.message:"Sintaxe JS invalida."}}function Nu(t,n="{}"){return t==null||t===""?n:typeof t=="string"?t:JSON.stringify(t,null,2)}function Jf(t){if(!t)return null;const{explanation:n,model:r,...s}=t;return Object.keys(s).length?s:null}function rk(t,n){var r,s;return!!((r=t.openai)!=null&&r.enabled||n["openai.apiKey"]||(s=t.openai)!=null&&s.apiKey)}function sk(t,n){var r,s,l;return!!((r=t.azureOpenai)!=null&&r.enabled||(n["azureOpenai.apiKey"]||(s=t.azureOpenai)!=null&&s.apiKey)&&((l=t.azureOpenai)!=null&&l.endpoint))}function ik(t,n,r){var s,l,p,m,h,f,x,j,w;return t==="openai"?rk(n,r):t==="azure_openai"?sk(n,r):t==="gemini"?!!((s=n.gemini)!=null&&s.enabled||r["gemini.apiKey"]||(l=n.gemini)!=null&&l.apiKey):t==="claude"?!!((p=n.claude)!=null&&p.enabled||r["claude.apiKey"]||(m=n.claude)!=null&&m.apiKey):t==="grok"?!!((h=n.grok)!=null&&h.enabled||r["grok.apiKey"]||(f=n.grok)!=null&&f.apiKey):t==="bedrock"?!!(((x=n.bedrock)!=null&&x.enabled||r["bedrock.apiKey"]||(j=n.bedrock)!=null&&j.apiKey)&&((w=n.bedrock)!=null&&w.baseUrl)):!1}function Cj(t){return t==="azure_openai"?"Azure OpenAI":t==="gemini"?"Gemini":t==="claude"?"Claude":t==="grok"?"Grok":t==="bedrock"?"Bedrock":"OpenAI"}function Cu(t,n){const r=Cj(t),s=n.configured[t];return s===!0?`${r} (configurado)`:s===!1?`${r} (não configurado)`:n.loading?`${r} (verificando...)`:n.error?`${r} (status indisponível)`:r}function lk(t){const n=t==null?void 0:t.startMode;return JSON.stringify({text:"Olá, preciso de ajuda.",conversationId:`${t==null?void 0:t.agentId}-cliente-123`,currentStepId:n==="node"&&(t==null?void 0:t.currentStepId)||"",slots:{agentId:t==null?void 0:t.agentId,flowId:(t==null?void 0:t.flowId)||"<FLOW_ID_SALVO>",flowName:(t==null?void 0:t.flowName)||"<NOME_DO_FLUXO>",channel:t==null?void 0:t.channel,cpf:"12345678909",origem:"crm"}},null,2)}function ck(t,n,r,s,l){const p=n==="query"?`${t}${t.includes("?")?"&":"?"}${encodeURIComponent(s)}=<SEGREDO>`:t,m=['-H "Content-Type: application/json"',n==="bearer"?'-H "Authorization: Bearer <SEGREDO>"':"",n==="header"?`-H "${r}: <SEGREDO>"`:""].filter(Boolean);return[`curl -X POST "${p}" \\`,...m.map(h=>` ${h} \\`),` -d '${l.replace(/'/g,"'\\''")}'`].join(`
419
+ `)}function dk(t,n){return JSON.stringify({async:!0,queued:!0,jobId:"9b8b1f4e-7a41-4b0a-b067-7f0f8b56a010",status:"queued",retrievalUrl:`${Lc}/api/canvas-flow/sqs/jobs/9b8b1f4e-7a41-4b0a-b067-7f0f8b56a010`,flowId:t||"<FLOW_ID_SALVO>",webhookId:n||"<WEBHOOK_ID>",callbackUrlConfigured:!1},null,2)}function uk(t,n){return JSON.stringify({jobId:"9b8b1f4e-7a41-4b0a-b067-7f0f8b56a010",status:"completed",flowId:t||"<FLOW_ID_SALVO>",webhookId:n||"<WEBHOOK_ID>",completedAt:"2026-05-17T12:00:00.000Z",result:{messages:[],slots:{},ended:!0}},null,2)}function Ip(t){return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function pk(t){const n=/(\b(?:const|let|var|return|if|else|for|while|do|switch|case|break|continue|new|typeof|instanceof|of|in|true|false|null|undefined|context|slots|input|now|Array|Object|String|Number|Boolean|Math|Date|JSON)\b|\b\d+(?:\.\d+)?\b|[{}[\]().,:;+\-*/%=!<>|&?]+)/g;return t.split(n).map(r=>{if(!r)return"";const s=Ip(r);return/^(const|let|var|return|if|else|for|while|do|switch|case|break|continue|new|typeof|instanceof|of|in)$/.test(s)?`<span class="tok-keyword">${s}</span>`:/^(true|false|null|undefined)$/.test(s)?`<span class="tok-literal">${s}</span>`:/^(context|slots|input|now|Array|Object|String|Number|Boolean|Math|Date|JSON)$/.test(s)?`<span class="tok-builtin">${s}</span>`:/^\d/.test(s)?`<span class="tok-number">${s}</span>`:/^[{}[\]().,:;+\-*/%=!&lt;&gt;|&amp;?]+$/.test(s)?`<span class="tok-punctuation">${s}</span>`:s}).join("")}function mk(t,n){let r="",s=0;for(;s<t.length;){const l=t[s];if(n==="js"&&l==="/"&&t[s+1]==="/"){const m=t.indexOf(`
420
+ `,s),h=m<0?t.length:m;r+=`<span class="tok-comment">${Ip(t.slice(s,h))}</span>`,s=h;continue}if(n==="js"&&l==="/"&&t[s+1]==="*"){const m=t.indexOf("*/",s+2),h=m<0?t.length:m+2;r+=`<span class="tok-comment">${Ip(t.slice(s,h))}</span>`,s=h;continue}if(l==='"'||n==="js"&&(l==="'"||l==="`")){const m=l;let h=s+1;for(;h<t.length;){if(t[h]==="\\"){h+=2;continue}if(t[h]===m){h+=1;break}h+=1}const f=t.slice(s,h),x=t.slice(h).match(/^\s*:/);r+=`<span class="${n==="json"&&x?"tok-property":"tok-string"}">${Ip(f)}</span>`,s=h;continue}let p=t.length;for(const m of n==="js"?['"',"'","`","//","/*"]:['"']){const h=t.indexOf(m,s+1);h>=0&&(p=Math.min(p,h))}r+=pk(t.slice(s,p)),s=p}return r||"&nbsp;"}function hk(){return`route-${Math.random().toString(36).slice(2,9)}-${Date.now().toString(36)}`}function Qm(t,n="America/Sao_Paulo"){if(!t)return"";const r=new Date(t);if(Number.isNaN(r.getTime()))return t;try{return new Intl.DateTimeFormat("pt-BR",{timeZone:n,day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(r)}catch{return t}}const Gx=[{value:"text-embedding-3-large",label:"text-embedding-3-large"},{value:"text-embedding-3-small",label:"text-embedding-3-small"},{value:"text-embedding-ada-002",label:"text-embedding-ada-002"}],fk=Array.from(new Map(Object.values(wh).flat().map(t=>[t.value,t])).values());function Au(t,n){return!n||t.some(r=>r.value===n)?t:[{value:n,label:`${n} (atual)`},...t]}function gf({slotName:t,resultName:n}){return e.jsxs("span",{className:"field-hint reason-slot-hint",children:["Campo opcional para auditoria/debug. A decisao principal fica em"," ",e.jsx("code",{children:`context.slots.${n||"resultado"}`}),"; a explicacao da IA fica em"," ",e.jsx("code",{children:`context.slots.${t}`}),". Use um nome legivel, por exemplo ",e.jsx("code",{children:"motivoAgendamento"}),"."]})}function Sj(t){const n=String(t||"").trim();return n?/^(context|Math|Number|String|Boolean|Array|Date)\b/.test(n)?n:n.startsWith("slots.")?`context.${n}`:`context.slots.${n}`:"context.slots.input"}function gk(t,n){const r=Sj(t),s={filled:"value !== undefined && value !== null && String(value).trim() !== ''",text:"typeof value === 'string' && value.trim() !== ''",number:["(typeof value === 'number' && Number.isFinite(value))","|| (typeof value === 'string'"," && value.trim() !== ''"," && Number.isFinite(Number(value)))"].join(`
421
+ `),integer:["Number.isInteger(value)","|| (typeof value === 'string'"," && /^-?\\d+$/.test(value.trim()))"].join(`
422
+ `),boolean:["typeof value === 'boolean'","|| ['true', 'false', 'sim', 'nao', 'não', 'yes', 'no', '1', '0']"," .includes(String(value).trim().toLowerCase())"].join(`
423
+ `),date:["value instanceof Date","|| (String(value || '').trim() !== ''"," && !Number.isNaN(Date.parse(String(value))))"].join(`
424
+ `),email:"/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(String(value || '').trim())",cpf:"String(value || '').replace(/\\D/g, '').length === 11",cnpj:"String(value || '').replace(/\\D/g, '').length === 14",phone:"String(value || '').replace(/\\D/g, '').length >= 8",object:"value !== null && typeof value === 'object' && !Array.isArray(value)",array:"Array.isArray(value)"};return["(() => {",` const value = ${r};`,` return ${s[n]};`,"})()"].join(`
425
+ `)}function xk(t){const n=new Set,r=String(t||""),s=/\b(?:context\.)?slots\.([A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*)*)/g,l=/\b(?:context\.)?slots\[['"]([^'"]+)['"]\]/g;let p;for(;p=s.exec(r);)n.add(p[1].split(".")[0]);for(;p=l.exec(r);)n.add(p[1].split(".")[0]);return Array.from(n)}function vk(t){const r=Sj(t).match(/^context\.slots\.([A-Za-z_$][\w$]*)/);return(r==null?void 0:r[1])||""}function yp(t){var n,r;return(t==null?void 0:t.responseName)||((n=t==null?void 0:t.api)==null?void 0:n.responseName)||((r=t==null?void 0:t.component)==null?void 0:r.responseName)||""}function Jx(t){return t.split(",").map(n=>n.replace(/^\s+/,""))}function Xm(t){return t.split(",").map(n=>n.trim()).filter(Boolean)}const Kf=["GET","POST","PUT","PATCH","DELETE"],yk=[{value:"text",label:"Texto"},{value:"email",label:"Email"},{value:"number",label:"Número"},{value:"date",label:"Data"},{value:"cpf",label:"CPF"},{value:"cnpj",label:"CNPJ"},{value:"phone",label:"Telefone"},{value:"boolean",label:"Sim/Não"}],jk=[{value:"filled",label:"Preenchido"},{value:"text",label:"Texto"},{value:"number",label:"Número"},{value:"integer",label:"Inteiro"},{value:"boolean",label:"Booleano"},{value:"date",label:"Data"},{value:"email",label:"Email"},{value:"cpf",label:"CPF"},{value:"cnpj",label:"CNPJ"},{value:"phone",label:"Telefone"},{value:"object",label:"Objeto"},{value:"array",label:"Array/lista"}],Qf=[{value:"none",label:"Sem body"},{value:"jsonFields",label:"JSON por campos"},{value:"jsonText",label:"JSON texto"},{value:"text",label:"Texto bruto"}],bk=[{value:"insertOne",label:"Inserir 1"},{value:"insertMany",label:"Inserir vários"},{value:"find",label:"Buscar vários"},{value:"findOne",label:"Buscar 1"},{value:"updateOne",label:"Atualizar 1"},{value:"updateMany",label:"Atualizar vários"},{value:"upsertOne",label:"Upsert 1"},{value:"deleteOne",label:"Deletar 1"},{value:"deleteMany",label:"Deletar vários"},{value:"count",label:"Contar"},{value:"aggregate",label:"Aggregate"}],wk=new Set(["find","findOne","updateOne","updateMany","upsertOne","deleteOne","deleteMany","count","aggregate"]),Nk=new Set(["insertOne","insertMany"]),Ck=new Set(["updateOne","updateMany","upsertOne"]),Sk=new Set(["find","findOne"]),kk=new Set(["find","findOne"]),Ak=new Set(["find","aggregate","insertMany"]),Ek=new Set(["find","aggregate"]),Mk=new Set(["find","findOne","updateOne","updateMany","upsertOne","deleteOne","deleteMany","count","aggregate"]),Kx=new Set(["insertOne","insertMany","updateOne","updateMany","upsertOne"]),qt={interactiveBody:1024,footer:60,buttons:3,buttonLabel:20,buttonId:256,listButton:20,listSections:10,listRows:10,sectionTitle:24,rowTitle:24,rowDescription:72,rowId:200,carouselCards:10,carouselCardTitle:80,carouselCardSubtitle:160,imageUrl:500},Tk=[{value:"actions",label:"Ações iniciais"},{value:"appointments",label:"Meus agendamentos"},{value:"providers",label:"Prestadores"},{value:"services",label:"Serviços"},{value:"dates",label:"Datas"},{value:"times",label:"Horários"},{value:"items",label:"Itens selecionáveis"}],Nh={mode:"auto",flowId:"",flowToken:"{{context.conversationId}}",flowCta:"Agendar",flowScreen:"START",headerText:"Agendamento",buttonText:"Ver opções",stage:"actions",stageTemplate:"{{context.slots.appointmentStage}}",actionsTemplate:"",appointmentsTemplate:"{{context.slots.appointments}}",providersTemplate:"{{context.slots.providers}}",servicesTemplate:"{{context.slots.services}}",datesTemplate:"{{context.slots.dates}}",timesTemplate:"{{context.slots.times}}",itemsTemplate:"{{context.slots.items}}",itemsFilterTemplate:"",itemsMaxSelected:20,examsTemplate:"{{context.slots.exams}}",payloadTemplate:"{}",stepOrder:["providers","services","items","dates","times"],stepLabels:{actions:"Ações iniciais",appointments:"Meus agendamentos",providers:"Prestadores",services:"Serviços",dates:"Datas",times:"Horários",items:"Itens selecionáveis"},attachmentSteps:[],llmEnabled:!1,llmSourceTemplate:"{{context.slots.schedules}}",llmInstruction:"Receba os agendamentos/horários brutos e retorne providers, services, items, dates, times e appointments no formato do WhatsApp Flow.",llmModel:"",llmTemperature:.1},$d=[{key:"actions",label:"Ações iniciais",screen:"ACTIONS"},{key:"appointments",label:"Meus agendamentos",screen:"APPOINTMENTS"},{key:"providers",label:"Prestadores",screen:"START"},{key:"services",label:"Serviços",screen:"SERVICES"},{key:"dates",label:"Datas",screen:"DATES"},{key:"times",label:"Horários",screen:"TIMES"},{key:"items",label:"Itens selecionáveis",screen:"ITEMS"}],Qx={actions:{title:"Ações iniciais",description:"Use quando quiser mostrar ações antes da escolha de prestador, serviço ou horário.",value:[{id:"novo",title:"Novo agendamento",description:"Escolher prestador, serviço, data e horário"},{id:"meus",title:"Meus agendamentos",description:"Consultar ou remarcar horários existentes"}]},appointments:{title:"Agendamentos",description:"Lista de agendamentos já montados ou disponíveis para confirmação.",value:[{id:"ag_20260520_0900",title:"20/05/2026 às 09:00",description:"Dra. Ana - Consulta cardiológica",providerId:"prestador_ana",serviceId:"consulta",date:"2026-05-20",time:"09:00"}]},providers:{title:"Prestadores",description:"Profissionais, unidades ou equipes que podem atender.",value:[{id:"prestador_ana",title:"Dra. Ana",description:"Cardiologia - Unidade Paulista"},{id:"prestador_bruno",title:"Dr. Bruno",description:"Clínico geral - Telemedicina"}]},services:{title:"Serviços",description:"Serviços ou procedimentos que o usuário pode escolher.",value:[{id:"consulta",title:"Consulta",description:"Atendimento de 30 minutos"},{id:"retorno",title:"Retorno",description:"Retorno em até 15 dias"}]},dates:{title:"Datas",description:"Dias disponíveis. O id pode ser uma data ISO para facilitar o backend.",value:[{id:"2026-05-20",title:"20/05/2026",description:"Quarta-feira"},{id:"2026-05-21",title:"21/05/2026",description:"Quinta-feira"}]},times:{title:"Horários",description:"Horários disponíveis para a etapa selecionada.",value:[{id:"09:00",title:"09:00",description:"Manhã"},{id:"14:30",title:"14:30",description:"Tarde"}]},items:{title:"Itens selecionáveis",description:"Lista genérica para seleção múltipla. Pode ser exame, produto, procedimento ou qualquer item de carrinho.",value:[{id:"hemograma",title:"Hemograma",description:"HEM"},{id:"tsh",title:"TSH",description:"Hormônio tireoestimulante"},{id:"glicemia",title:"Glicemia",description:"GLI"}]},payload:{title:"Payload extra do Flow",description:"Objeto adicional para contexto. No Flow Meta padrao, apenas campos aceitos pela tela inicial entram no payload nativo; em lista/Blip/Sinch ele pode carregar mais contexto.",value:{clientId:"{{context.slots.clientId}}",clientName:"{{context.slots.clientName}}",insurancePlan:"{{context.slots.plan}}",origin:"canvas-flow"}}};function Iu(t){return`attachment:${t}`}function Mp(t,n){const r=["zero","um","dois","tres","quatro","cinco","seis","sete","oito","nove"];return String(t||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").trim().toLowerCase().replace(/\d/g,l=>`_${r[Number(l)]}_`).replace(/[^a-z_]+/g,"_").replace(/_+/g,"_").replace(/^_+|_+$/g,"")||`anexo_${r[n+1]||"item"}`}function ch(t){return String(t||"").replace(/ç/g,"ç").replace(/ã/g,"ã").replace(/õ/g,"õ").replace(/á/g,"á").replace(/é/g,"é").replace(/í/g,"í").replace(/ó/g,"ó").replace(/ú/g,"ú").replace(/ê/g,"ê").replace(/â/g,"â").replace(/ô/g,"ô").replace(/à/g,"à").replace(/ç/g,"ç").replace(/ã/g,"ã").replace(/õ/g,"õ").replace(/á/g,"á").replace(/é/g,"é").replace(/í/g,"í").replace(/ó/g,"ó").replace(/ú/g,"ú").replace(/ê/g,"ê").replace(/â/g,"â").replace(/ô/g,"ô").replace(/à/g,"à").replace(/Â/g,"")}function xf(t,n){const r=n.map(m=>Iu(m.id)),s=new Set([...$d.map(m=>m.key),...r]),p=(Array.isArray(t)?t:$d.map(m=>m.key)).map(m=>String(m||"").trim()==="exams"?"items":String(m||"").trim()).filter((m,h,f)=>s.has(m)&&f.indexOf(m)===h);for(const m of r)p.includes(m)||p.push(m);return p.length||p.push($d[0].key),p}function Xx(t,n,r){const s=$d.find(p=>p.key===t);if(s)return ch((r==null?void 0:r[t])||s.label);const l=n.find(p=>Iu(p.id)===t);return(l==null?void 0:l.label)||"Anexo"}function Yx(t,n){if(n===0)return"START";const r=$d.find(s=>s.key===t);return r?r.screen==="START"?"PROVIDERS":r.screen:`ATTACHMENT_${Mp(t.replace(/^attachment:/,""),n).toUpperCase()}`}function Ik(t){return{actions:{helpKey:"actions",title:"Ações iniciais",valueKey:"actionsTemplate",rows:3,placeholder:'Opcional. Ex: [{"id":"novo","title":"Novo agendamento"},{"id":"meus","title":"Meus agendamentos"}]'},appointments:{helpKey:"appointments",title:"Agendamentos",valueKey:"appointmentsTemplate",rows:3,placeholder:"{{context.slots.appointments}}"},providers:{helpKey:"providers",title:"Prestadores",valueKey:"providersTemplate",rows:3,placeholder:"{{context.slots.providers}}"},services:{helpKey:"services",title:"Serviços",valueKey:"servicesTemplate",rows:3,placeholder:"{{context.slots.services}}"},dates:{helpKey:"dates",title:"Datas",valueKey:"datesTemplate",rows:3,placeholder:"{{context.slots.dates}}"},times:{helpKey:"times",title:"Horários",valueKey:"timesTemplate",rows:3,placeholder:"{{context.slots.times}}"},items:{helpKey:"items",title:"Itens selecionáveis",valueKey:"itemsTemplate",rows:4,placeholder:"{{context.slots.items}}"}}[t]}function Pk(t){try{return JSON.stringify(t)}catch{return String(t)}}function _k(t){const n=String(t||"").trim();return/^(return|const|let|var|if|for|while|do|switch|try|throw|function|class)\b/.test(n)?n:`return (${n});`}function Ok(t){const n=String(t||"").trim();if(!n)return"";const r=_k(n);try{return new Function("context","slots","input","now",r),""}catch(s){return s instanceof Error?s.message:"Sintaxe JS invalida."}}function Xf(t){return t.map((n,r)=>{if(typeof n=="string")return`${r+1}. ${n}`;if(n&&typeof n=="object"){const s=n,l=[s.path,s.field,s.pointer,s.property,s.component].map(f=>typeof f=="string"||typeof f=="number"?String(f).trim():"").find(Boolean),p=[s.message,s.error,s.title,s.detail,s.description].map(f=>typeof f=="string"||typeof f=="number"?String(f).trim():"").find(Boolean),m=[s.details,s.errors,s.validation_errors].find(f=>Array.isArray(f)&&f.length>0),h=m?`
426
+ ${Xf(m).split(`
427
+ `).map(f=>` ${f}`).join(`
428
+ `)}`:"";return`${r+1}. ${l?`${l}: `:""}${p||Pk(n)}${h}`}return`${r+1}. ${String(n)}`}).join(`
429
+ `)}function Zx(t){return t==="buttons"||t==="quickReplies"?qt.buttons:t==="list"||t==="appointmentFlow"?qt.listRows:t==="carousel"?qt.carouselCards:1}const Jr={field:"",type:"text",value:""};function kj(t){return Array.isArray(t)?"array":typeof t=="boolean"?"boolean":typeof t=="number"?"number":"text"}function Aj(t){return Array.isArray(t)?t.map(n=>String(n)).join(", "):t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}function zu(t,n){const r=n.trim();if(t==="number"){if(!r)return null;const s=Number(r.replace(",","."));return Number.isFinite(s)?s:null}return t==="boolean"?r==="true":t==="array"?r.split(",").map(s=>s.trim()).filter(Boolean).map(s=>{if(s==="true")return!0;if(s==="false")return!1;const l=Number(s.replace(",","."));return Number.isFinite(l)&&/^-?\d+([.,]\d+)?$/.test(s)?l:s}):n}function Rk(t,n){return Array.isArray(n)&&n.length?n.map(r=>({field:String(r.field||"").trim(),value:r.value,condition:String(r.condition||"")})).filter(r=>r.field):Object.entries(t||{}).map(([r,s])=>({field:r,value:s,condition:""}))}function Fk(t){return t.reduce((n,r)=>{const s=String(r.field||"").trim(),l=String(r.condition||"").trim();return s&&!l&&(n[s]=r.value),n},{})}function Ch({type:t,value:n,onChange:r}){return t==="boolean"?e.jsxs("select",{value:n==="true"?"true":"false",onChange:s=>r(s.target.value),children:[e.jsx("option",{value:"true",children:"true"}),e.jsx("option",{value:"false",children:"false"})]}):e.jsx("input",{value:n,placeholder:t==="array"?"valor1, valor2":"Valor",onChange:s=>r(s.target.value)})}function Ki({filter:t,draft:n,emptyText:r,onChange:s,onDraftChange:l}){const p=Object.entries(t||{}),m=()=>{const h=n.field.trim();h&&(s({...t,[h]:zu(n.type,n.value)}),l(Jr))};return e.jsxs("div",{className:"filter-editor",children:[p.length===0&&e.jsx("div",{className:"filter-empty",children:r}),p.map(([h,f],x)=>{const j=kj(f),w=Aj(f);return e.jsxs("div",{className:"filter-row",children:[e.jsx("input",{"aria-label":"Campo extraFields",value:h,placeholder:"Campo",onChange:N=>{const C=N.target.value.trim(),E={...t};delete E[h],C&&(E[C]=f),s(E)}}),e.jsxs("select",{"aria-label":"Tipo do filtro",value:j,onChange:N=>{s({...t,[h]:zu(N.target.value,w)})},children:[e.jsx("option",{value:"text",children:"Texto"}),e.jsx("option",{value:"number",children:"Número"}),e.jsx("option",{value:"boolean",children:"Booleano"}),e.jsx("option",{value:"array",children:"Lista"})]}),e.jsx(Ch,{type:j,value:w,onChange:N=>s({...t,[h]:zu(j,N)})}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover filtro",title:"Remover filtro",onClick:()=>{const N={...t};delete N[h],s(N)},children:e.jsx(St,{size:14})})]},x)}),e.jsxs("div",{className:"filter-row filter-row-new",children:[e.jsx("input",{value:n.field,placeholder:"Campo",onChange:h=>l({...n,field:h.target.value})}),e.jsxs("select",{value:n.type,onChange:h=>l({...n,type:h.target.value}),children:[e.jsx("option",{value:"text",children:"Texto"}),e.jsx("option",{value:"number",children:"Número"}),e.jsx("option",{value:"boolean",children:"Booleano"}),e.jsx("option",{value:"array",children:"Lista"})]}),e.jsx(Ch,{type:n.type,value:n.value,onChange:h=>l({...n,value:h})}),e.jsxs("button",{type:"button",className:"filter-add-button",onClick:m,disabled:!n.field.trim(),children:[e.jsx(dn,{size:14}),"Add"]})]})]})}function Yf(t){if(t.bodyType==="none"||t.bodyType==="jsonFields"||t.bodyType==="jsonText"||t.bodyType==="text")return t.bodyType;const n=t.body!==void 0?t.body:t.data;return typeof n=="string"?"text":n&&typeof n=="object"&&!Array.isArray(n)?"jsonFields":"none"}function uo(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}function ev(){return{method:"GET",url:"https://example.com",headers:{},params:{},bodyType:"none"}}function zk(){return{enabled:!0,url:"",method:"GET",headers:{},params:{},intervalSeconds:5,maxAttempts:10,stopCondition:'result.data.status === "done"'}}function zl(t){if(t==null||t==="")return`{
430
+
431
+ }`;if(typeof t=="string")return t;try{return JSON.stringify(t,null,2)}catch{return"{}"}}function Ym({requests:t,onChange:n}){const[r,s]=b.useState({}),[l,p]=b.useState({}),m=Array.isArray(t)?t:[],h=(j,w)=>s(N=>({...N,[j]:w})),f=(j,w)=>{const N=[...m];N[j]={...N[j]||ev(),...w},n(N)},x=j=>n(m.filter((w,N)=>N!==j));return e.jsxs("div",{className:"http-batch-editor",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsxs("strong",{children:["Requests httpBatch (",m.length,")"]}),e.jsxs("button",{type:"button",onClick:()=>n([...m,ev()]),children:[e.jsx(dn,{size:14}),"Request"]})]}),m.length===0&&e.jsx("div",{className:"filter-empty",children:"Nenhuma chamada configurada."}),m.map((j,w)=>{const N=Yf(j),C=j.body!==void 0?j.body:j.data,E=uo(j.polling),T=E.enabled===!0,R=Yf(E),L=E.body!==void 0?E.body:E.data,U=P=>f(w,{polling:{...zk(),...E,...P}});return e.jsxs("div",{className:"http-request-card",children:[e.jsxs("div",{className:"http-request-header",children:[e.jsxs("strong",{children:["Request ",w+1]}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover request",title:"Remover request",onClick:()=>x(w),children:e.jsx(St,{size:14})})]}),e.jsxs("div",{className:"http-request-grid",children:[e.jsxs("label",{children:["Método",e.jsx("select",{value:String(j.method||"GET").toUpperCase(),onChange:P=>f(w,{method:P.target.value}),children:Kf.map(P=>e.jsx("option",{value:P,children:P},P))})]}),e.jsxs("label",{children:["URL",e.jsx("input",{value:String(j.url||""),placeholder:"https://api.exemplo.com/recurso",onChange:P=>f(w,{url:P.target.value})})]})]}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Headers"})}),e.jsx(Ki,{filter:uo(j.headers),draft:r[`headers-${w}`]||Jr,emptyText:"Sem headers.",onDraftChange:P=>h(`headers-${w}`,P),onChange:P=>f(w,{headers:P})})]}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Query params"})}),e.jsx(Ki,{filter:uo(j.params),draft:r[`params-${w}`]||Jr,emptyText:"Sem query params.",onDraftChange:P=>h(`params-${w}`,P),onChange:P=>f(w,{params:P})})]}),e.jsxs("label",{children:["Body",e.jsx("select",{value:N,onChange:P=>{const F=P.target.value;if(F==="none"&&f(w,{bodyType:F,body:void 0,data:void 0}),F==="jsonFields"&&f(w,{bodyType:F,body:uo(C),data:void 0}),F==="jsonText"){const Z=zl(C);p(oe=>({...oe,[w]:Z})),f(w,{bodyType:F,body:Ns(Z,uo(C)),data:void 0})}F==="text"&&f(w,{bodyType:F,body:typeof C=="string"?C:"",data:void 0})},children:Qf.map(P=>e.jsx("option",{value:P.value,children:P.label},P.value))})]}),N==="jsonFields"&&e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Campos do body"})}),e.jsx(Ki,{filter:uo(C),draft:r[`body-${w}`]||Jr,emptyText:"Sem campos no body.",onDraftChange:P=>h(`body-${w}`,P),onChange:P=>f(w,{body:P,data:void 0,bodyType:N})})]}),N==="jsonText"&&e.jsxs("label",{children:["JSON do body",e.jsx("textarea",{rows:6,value:l[w]??zl(C),placeholder:'{"campo": "valor"}',onChange:P=>p(F=>({...F,[w]:P.target.value})),onBlur:()=>{const P=l[w]??zl(C);f(w,{body:Ns(P,uo(C)),data:void 0,bodyType:N})}})]}),N==="text"&&e.jsxs("label",{children:["Texto do body",e.jsx("textarea",{rows:4,value:String(C||""),placeholder:"Conteúdo bruto enviado no body",onChange:P=>f(w,{body:P.target.value,data:void 0,bodyType:N})})]}),e.jsxs("div",{className:"filter-section",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:T,onChange:P=>U({enabled:P.target.checked})}),e.jsx("span",{children:"Ativar polling"})]}),T&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"filter-empty",children:["Use polling quando a chamada inicial dispara um processamento/webhook e outra URL precisa ser consultada até o dado aparecer. Em URL, headers ou params, você pode usar ",e.jsx("code",{children:"{{result.data.id}}"})," ou ",e.jsx("code",{children:"{{initialResult.data.id}}"}),"."]}),e.jsxs("div",{className:"http-request-grid",children:[e.jsxs("label",{children:["Método do polling",e.jsx("select",{value:String(E.method||"GET").toUpperCase(),onChange:P=>U({method:P.target.value}),children:Kf.map(P=>e.jsx("option",{value:P,children:P},P))})]}),e.jsxs("label",{children:["URL de polling",e.jsx("input",{value:String(E.url||""),placeholder:"https://api.exemplo.com/status/{{result.data.id}}",onChange:P=>U({url:P.target.value})})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Intervalo (segundos)",e.jsx("input",{type:"number",min:1,max:600,value:Number(E.intervalSeconds||5),onChange:P=>U({intervalSeconds:Math.max(1,Number(P.target.value)||1)})})]}),e.jsxs("label",{children:["Máx. tentativas",e.jsx("input",{type:"number",min:1,max:100,value:Number(E.maxAttempts||10),onChange:P=>U({maxAttempts:Math.max(1,Number(P.target.value)||1)})})]})]}),e.jsxs("div",{className:"filter-empty",children:["Use a condição JS para decidir quando parar. Você recebe ",e.jsx("code",{children:"result"})," com a resposta atual do polling,",e.jsx("code",{children:"initialResult"})," com a resposta da primeira chamada e ",e.jsx("code",{children:"attempt"})," com o número da tentativa."]}),e.jsxs("label",{children:["Condição JS para parar",e.jsx("textarea",{rows:3,value:String(E.stopCondition||""),placeholder:'result.data.status === "done" && Boolean(result.data.result?.xpto)',onChange:P=>U({stopCondition:P.target.value})})]}),e.jsxs("label",{children:["Body do polling",e.jsx("select",{value:R,onChange:P=>{const F=P.target.value;if(F==="none"&&U({bodyType:F,body:void 0,data:void 0}),F==="jsonFields"&&U({bodyType:F,body:uo(L),data:void 0}),F==="jsonText"){const Z=zl(L);p(oe=>({...oe,[`polling-${w}`]:Z})),U({bodyType:F,body:Ns(Z,uo(L)),data:void 0})}F==="text"&&U({bodyType:F,body:typeof L=="string"?L:"",data:void 0})},children:Qf.map(P=>e.jsx("option",{value:P.value,children:P.label},P.value))})]}),R==="jsonFields"&&e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Campos do body do polling"})}),e.jsx(Ki,{filter:uo(L),draft:r[`polling-body-${w}`]||Jr,emptyText:"Sem campos no body.",onDraftChange:P=>h(`polling-body-${w}`,P),onChange:P=>U({body:P,data:void 0,bodyType:R})})]}),R==="jsonText"&&e.jsxs("label",{children:["JSON do body do polling",e.jsx("textarea",{rows:6,value:l[`polling-${w}`]??zl(L),placeholder:'{"id": "{{initialResult.data.id}}"}',onChange:P=>p(F=>({...F,[`polling-${w}`]:P.target.value})),onBlur:()=>{const P=l[`polling-${w}`]??zl(L);U({body:Ns(P,uo(L)),data:void 0,bodyType:R})}})]}),R==="text"&&e.jsxs("label",{children:["Texto do body do polling",e.jsx("textarea",{rows:4,value:String(L||""),placeholder:"Conteúdo bruto enviado no polling",onChange:P=>U({body:P.target.value,data:void 0,bodyType:R})})]}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Headers do polling"})}),e.jsx(Ki,{filter:uo(E.headers),draft:r[`polling-headers-${w}`]||Jr,emptyText:"Sem headers.",onDraftChange:P=>h(`polling-headers-${w}`,P),onChange:P=>U({headers:P})})]}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Query params do polling"})}),e.jsx(Ki,{filter:uo(E.params),draft:r[`polling-params-${w}`]||Jr,emptyText:"Sem query params.",onDraftChange:P=>h(`polling-params-${w}`,P),onChange:P=>U({params:P})})]})]})]})]},w)})]})}function Oh(t){return`${t}-${Math.random().toString(36).slice(2,8)}`}function Lk({tags:t,onChange:n}){const r=(s,l)=>{const p=[...t];p[s]={...p[s],...l},n(p)};return e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Tags do nó"}),e.jsxs("button",{type:"button",onClick:()=>n([...t,{id:Oh("tag"),tag:"novo_evento",label:"Novo evento",mode:"always",valueTemplate:"",metadataJson:"{}"}]),children:[e.jsx(dn,{size:14}),"Tag"]})]}),e.jsxs("div",{className:"filter-empty",children:["Salva métricas em uma coleção separada quando a conversa passar por este nó. Use ",e.jsx("strong",{children:"uma vez"})," para funil/conversão e ",e.jsx("strong",{children:"sempre"})," para contagem de passagem."]}),t.length===0&&e.jsx("div",{className:"filter-empty",children:"Nenhuma tag configurada neste nó."}),t.map((s,l)=>{const p=s.metadataJson?Gr(s.metadataJson):"";return e.jsxs("div",{className:"rich-card-editor",children:[e.jsxs("div",{className:"rich-card-header",children:[e.jsxs("strong",{children:["Tag ",l+1]}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover tag",title:"Remover tag",onClick:()=>n(t.filter((m,h)=>h!==l)),children:e.jsx(St,{size:14})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Tag",e.jsx("input",{value:s.tag||"",placeholder:"lead_qualificado",onChange:m=>r(l,{tag:m.target.value})})]}),e.jsxs("label",{children:["Nome para exibição",e.jsx("input",{value:s.label||"",placeholder:"Lead qualificado",onChange:m=>r(l,{label:m.target.value})})]})]}),e.jsxs("label",{children:["Frequência de gravação",e.jsxs("select",{value:s.mode||"always",onChange:m=>r(l,{mode:m.target.value}),children:[e.jsx("option",{value:"once",children:"Salvar uma vez por conversa neste nó"}),e.jsx("option",{value:"always",children:"Salvar toda vez que passar por aqui"})]})]}),e.jsxs("label",{children:["Valor opcional",e.jsx("input",{value:s.valueTemplate||"",placeholder:"{{context.slots.valor}}",onChange:m=>r(l,{valueTemplate:m.target.value})})]}),e.jsxs("label",{children:["Metadados JSON",e.jsx("textarea",{rows:3,value:s.metadataJson||"{}",placeholder:'{"canal":"{{context.channel}}"}',onChange:m=>r(l,{metadataJson:m.target.value})})]}),p&&e.jsxs("div",{className:"field-error",children:["JSON inválido: ",p]})]},s.id||l)})]})}function Zf({title:t,actions:n,onChange:r,maxActions:s=qt.buttons}){return e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsxs("strong",{children:[t," (",n.length,"/",s,")"]}),e.jsxs("button",{type:"button",disabled:n.length>=s,onClick:()=>r([...n,{id:Oh("action"),label:"Opcao",value:"opcao"}]),children:[e.jsx(dn,{size:14}),"Add"]})]}),n.length===0&&e.jsx("div",{className:"filter-empty",children:"Nenhuma opcao cadastrada."}),n.map((l,p)=>e.jsxs("div",{className:"rich-action-row",children:[e.jsx("input",{value:l.label||"",placeholder:"Texto do botão",maxLength:qt.buttonLabel,onChange:m=>{const h=[...n];h[p]={...l,label:m.target.value},r(h)}}),e.jsx("input",{value:l.value||"",placeholder:"Valor salvo/enviado",maxLength:qt.buttonId,onChange:m=>{const h=[...n];h[p]={...l,value:m.target.value},r(h)}}),e.jsx("input",{value:l.id||"",placeholder:"ID",maxLength:qt.buttonId,onChange:m=>{const h=[...n];h[p]={...l,id:m.target.value},r(h)}}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover opcao",title:"Remover opcao",onClick:()=>r(n.filter((m,h)=>h!==p)),children:e.jsx(St,{size:14})})]},l.id||p))]})}function Dk({sections:t,onChange:n}){const r=t.reduce((l,p)=>l+(p.items||[]).length,0),s=(l,p)=>{const m=[...t];m[l]={...m[l],...p},n(m)};return e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsxs("strong",{children:["Secoes da lista (",r,"/",qt.listRows," itens)"]}),e.jsxs("button",{type:"button",disabled:t.length>=qt.listSections,onClick:()=>n([...t,{title:"Seção",items:[]}]),children:[e.jsx(dn,{size:14}),"Seção"]})]}),t.length===0&&e.jsx("div",{className:"filter-empty",children:"Adicione uma secao com itens de lista."}),t.map((l,p)=>e.jsxs("div",{className:"rich-card-editor",children:[e.jsxs("div",{className:"rich-card-header",children:[e.jsx("input",{value:l.title||"",placeholder:"Título da secao",maxLength:qt.sectionTitle,onChange:m=>s(p,{title:m.target.value})}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover secao",title:"Remover secao",onClick:()=>n(t.filter((m,h)=>h!==p)),children:e.jsx(St,{size:14})})]}),(l.items||[]).map((m,h)=>e.jsxs("div",{className:"rich-list-item-row",children:[e.jsx("input",{value:m.title||"",placeholder:"Item",maxLength:qt.rowTitle,onChange:f=>{const x=[...l.items||[]];x[h]={...m,title:f.target.value},s(p,{items:x})}}),e.jsx("input",{value:m.description||"",placeholder:"Descricao",maxLength:qt.rowDescription,onChange:f=>{const x=[...l.items||[]];x[h]={...m,description:f.target.value},s(p,{items:x})}}),e.jsx("input",{value:m.value||"",placeholder:"Valor",maxLength:qt.rowId,onChange:f=>{const x=[...l.items||[]];x[h]={...m,value:f.target.value},s(p,{items:x})}}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover item",title:"Remover item",onClick:()=>s(p,{items:l.items.filter((f,x)=>x!==h)}),children:e.jsx(St,{size:14})})]},m.id||h)),e.jsxs("button",{type:"button",className:"filter-add-button",disabled:r>=qt.listRows,onClick:()=>s(p,{items:[...l.items||[],{id:Oh("item"),title:"Item",value:"item"}]}),children:[e.jsx(dn,{size:14}),"Item"]})]},p))]})}function $k({cards:t,onChange:n}){const r=(s,l)=>{const p=[...t];p[s]={...p[s],...l},n(p)};return e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsxs("strong",{children:["Cards do carrossel (",t.length,"/",qt.carouselCards,")"]}),e.jsxs("button",{type:"button",disabled:t.length>=qt.carouselCards,onClick:()=>n([...t,{id:Oh("card"),title:"Card",subtitle:"",imageUrl:"",buttons:[]}]),children:[e.jsx(dn,{size:14}),"Card"]})]}),t.length===0&&e.jsx("div",{className:"filter-empty",children:"Adicione cards para o web widget."}),t.map((s,l)=>e.jsxs("div",{className:"rich-card-editor",children:[e.jsxs("div",{className:"rich-card-header",children:[e.jsxs("strong",{children:["Card ",l+1]}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover card",title:"Remover card",onClick:()=>n(t.filter((p,m)=>m!==l)),children:e.jsx(St,{size:14})})]}),e.jsx("input",{value:s.title||"",maxLength:qt.carouselCardTitle,placeholder:"Título",onChange:p=>r(l,{title:p.target.value})}),e.jsx("input",{value:s.subtitle||"",maxLength:qt.carouselCardSubtitle,placeholder:"Subtítulo",onChange:p=>r(l,{subtitle:p.target.value})}),e.jsx("input",{value:s.imageUrl||"",maxLength:qt.imageUrl,placeholder:"URL da imagem",onChange:p=>r(l,{imageUrl:p.target.value})}),e.jsx(Zf,{title:"Botões do card",actions:s.buttons||[],onChange:p=>r(l,{buttons:p}),maxActions:qt.buttons})]},s.id||l))]})}function Vk({appointmentFlow:t,flowConfig:n,currentFlowId:r,stepId:s,agentId:l,onChange:p}){var Ze,kt,et,Te,Qe,xt;const[m,h]=b.useState(""),[f,x]=b.useState(!1),[j,w]=b.useState(""),[N,C]=b.useState(""),[E,T]=b.useState(!1),[R,L]=b.useState(""),[U,P]=b.useState([]),[F,Z]=b.useState(!1),[oe,ae]=b.useState(""),[te,X]=b.useState(!1),[fe,ve]=b.useState(""),[ye,se]=b.useState(""),M={...Nh,...t||{}},ee=re=>p({...M,...re}),q=(Array.isArray(M.attachmentSteps)?M.attachmentSteps:[]).slice(0,3).map((re,we)=>({id:Mp(re.id||`anexo_${we+1}`,we),label:ch(re.label||`Anexo ${we+1}`),type:re.type==="document"?"document":"image",required:re.required!==!1,description:ch(re.description||"")})),ie={...Nh.stepLabels,...M.stepLabels||{}};for(const re of Object.keys(ie))ie[re]=ch(ie[re]);const G=xf(M.stepOrder,q),$=$d.filter(re=>!G.includes(re.key)),K=!!((Ze=n.whatsapp)!=null&&Ze.businessAccountId&&((kt=n.whatsapp)!=null&&kt.accessToken))||te;b.useEffect(()=>{let re=!1;const we=async()=>{var Me;try{const Ye=await ze.getProviderConfig({agentId:(l==null?void 0:l.trim())||"default-agent"});if(re)return;const st=Ye.settings.whatsapp;X(!!((st==null?void 0:st.provider)==="meta"&&st.businessAccountId&&((Me=Ye.secretStatus)!=null&&Me["whatsapp.accessToken"]||st.accessToken)))}catch{re||X(!1)}};return we(),window.addEventListener("canvas-flow-provider-config-updated",we),()=>{re=!0,window.removeEventListener("canvas-flow-provider-config-updated",we)}},[l]);const I=async()=>{if(!K){P([]);return}Z(!0),ae("");try{const re=await ze.listWhatsappFlows({whatsapp:n.whatsapp,agentId:l});P(Array.isArray(re.flows)?re.flows:[])}catch(re){ae(re instanceof Error?re.message:"Não foi possível listar os WhatsApp Flows.")}finally{Z(!1)}},W=async re=>{const we=String(re||"").trim();if(we&&window.confirm("Excluir ou desativar este WhatsApp Flow na Meta?")){ve(we),ae("");try{const Me=await ze.deleteWhatsappFlow(we,{whatsapp:n.whatsapp,agentId:l});M.flowId===we&&ee({flowId:""}),C(Me.deprecated?`Flow desativado: ${we}`:`Flow excluído: ${we}`),await I()}catch(Me){ae(Me instanceof Error?Me.message:"Não foi possível excluir o Flow.")}finally{ve("")}}},xe=re=>{var we;return e.jsx("button",{type:"button",className:"field-help-button",title:`Ver exemplo de ${((we=Qx[re])==null?void 0:we.title)||"campo"}`,onClick:Me=>{Me.preventDefault(),Me.stopPropagation(),L(Ye=>Ye===re?"":re)},children:"?"})},Q=re=>{const we=Qx[re];return R!==re||!we?null:e.jsxs("div",{className:"appointment-field-example inline",children:[e.jsxs("div",{children:[e.jsx("strong",{children:we.title}),e.jsx("button",{type:"button",title:"Fechar exemplo",onClick:Me=>{Me.preventDefault(),Me.stopPropagation(),L("")},children:e.jsx(Ut,{size:14})})]}),e.jsx("span",{children:we.description}),e.jsx("pre",{children:JSON.stringify(we.value,null,2)})]})},be=re=>ee({stepOrder:xf(re,q)}),Ce=(re,we)=>{ee({stepLabels:{...ie,[re]:we}})},Oe=re=>{if(!(G.length<=1)){if(re.startsWith("attachment:")){const we=re.replace(/^attachment:/,"");O(q.filter(Me=>Me.id!==we),G.filter(Me=>Me!==re));return}be(G.filter(we=>we!==re))}},B=re=>{!re||G.includes(re)||(be([...G,re]),se(""))},ce=(re,we)=>{const Me=[...G],Ye=re+we;Ye<0||Ye>=Me.length||([Me[re],Me[Ye]]=[Me[Ye],Me[re]],be(Me))},O=(re,we=G)=>{const Me=re.slice(0,3).map((Ye,st)=>({...Ye,id:Mp(Ye.id,st),label:Ye.label||`Anexo ${st+1}`}));ee({attachmentSteps:Me,stepOrder:xf(we,Me)})},Ie=()=>{if(q.length>=3)return;const re=q.length,we=Mp(`anexo_${re+1}`,re),Me={id:we,label:re===0?"Carteirinha de saúde":re===1?"Pedido médico":"RG",type:"image",required:!0,description:"Anexe uma imagem legível."};O([...q,Me],[...G,Iu(we)])},ge=async re=>{if(p(re),!r||!s)return!1;const we={...n,steps:n.steps.map(Me=>Me.id!==s?Me:{...Me,richMessage:{...Me.richMessage||{type:"appointmentFlow",text:""},appointmentFlow:re}})};return await ze.updateFlow(r,{agentId:l,config:we}),!0},it=re=>{const we=Ik(re);return we?e.jsxs("div",{className:"appointment-step-data-field",children:[e.jsxs("label",{children:["Label da etapa",e.jsx("input",{value:ie[re]||we.title,maxLength:30,placeholder:we.title,onChange:Me=>Ce(re,Me.target.value)})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"field-label-with-help",children:[e.jsx("span",{children:"Dados dinâmicos ou fixos"}),xe(we.helpKey)]}),e.jsx("textarea",{rows:we.rows,value:String(M[we.valueKey]||""),placeholder:we.placeholder,onChange:Me=>ee({[we.valueKey]:Me.target.value})})]}),Q(we.helpKey),re==="items"&&e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Filtro dos itens",e.jsx("input",{value:M.itemsFilterTemplate||"",placeholder:"{{context.slots.itemFilter}}",onChange:Me=>ee({itemsFilterTemplate:Me.target.value})}),e.jsx("span",{className:"field-hint",children:"Filtra por ID, título ou descrição antes de montar o Flow."})]}),e.jsxs("label",{children:["Máx. selecionados",e.jsx("input",{type:"number",min:1,max:20,value:M.itemsMaxSelected??20,onChange:Me=>ee({itemsMaxSelected:Number(Me.target.value)})}),e.jsx("span",{className:"field-hint",children:"Quantidade máxima que o usuário pode marcar neste passo."})]})]})]}):null};b.useEffect(()=>{I()},[(et=n.whatsapp)==null?void 0:et.businessAccountId,(Te=n.whatsapp)==null?void 0:Te.accessToken,(Qe=n.whatsapp)==null?void 0:Qe.graphApiVersion,l,te]);const ht=async re=>{x(!0),w(""),C("");try{const we=n.whatsapp;if(!K)throw new Error("Configure WhatsApp Business Account ID e Access token em Provedores > WhatsApp.");const Me=m.trim()||`${n.title||"Canvas Flow"} Agendamento`;if(M.flowId&&re){const Le=await ze.uploadWhatsappFlowJson(M.flowId,{whatsapp:we,agentId:l,title:M.headerText||"Agendamento",appointmentFlow:{...M,attachmentSteps:q,stepOrder:G,stepLabels:ie},introText:n.title?`Agendamento - ${n.title}`:"Escolha as opções para montar seu agendamento."}),tt=Array.isArray(Le.validationErrors)?Le.validationErrors:[];if(tt.length){const lt=Xf(tt);w(`Flow atualizado, mas o JSON voltou com ${tt.length} erro(s) de validação.${lt?`
432
+ ${lt}`:""}`),await I();return}const ft=await ze.publishWhatsappFlow(M.flowId,{whatsapp:we,agentId:l}),Re={...M,attachmentSteps:q,stepOrder:G,stepLabels:ie,mode:"auto"},Pe=await ge(Re);C(`Flow publicado: ${String(ft.flowId||M.flowId)}${Pe?" e salvo no Canvas.":". Clique em Salvar para persistir no Canvas."}`),await I();return}const Ye=await ze.createWhatsappFlow({name:Me,categories:["APPOINTMENT_BOOKING"],publish:re,whatsapp:we,agentId:l,title:M.headerText||"Agendamento",appointmentFlow:{...M,attachmentSteps:q,stepOrder:G,stepLabels:ie},introText:n.title?`Agendamento - ${n.title}`:"Escolha as opções para montar seu agendamento."}),st=String(Ye.flowId||"");st&&await ge({...M,flowId:st,mode:"auto",attachmentSteps:q,stepOrder:G,stepLabels:ie});const Ue=Array.isArray(Ye.validationErrors)?Ye.validationErrors:[];if(Ue.length){const Le=Xf(Ue);w(`Flow criado, mas o JSON voltou com ${Ue.length} erro(s) de validação.${Le?`
433
+ ${Le}`:""}`)}else C(re?`Flow criado, publicado e salvo no Canvas: ${st}`:`Rascunho criado e salvo no Canvas: ${st}`);await I()}catch(we){w(we instanceof Error?we.message:"Nao foi possivel criar/publicar o Flow.")}finally{x(!1)}};return e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"WhatsApp Flow de agendamento"}),e.jsxs("button",{type:"button",title:"Ver exemplos dos dados dinâmicos",onClick:()=>T(re=>!re),children:[e.jsx(pj,{size:14}),"Exemplos"]})]}),e.jsx("div",{className:"filter-empty",children:"API oficial envia Flow nativo quando houver Flow ID publicado. Blip e Sinch recebem uma lista interativa equivalente usando os mesmos dados dinâmicos."}),E&&e.jsxs("div",{className:"filter-empty",children:[e.jsx("strong",{children:"Formato esperado dos dados dinâmicos"}),e.jsx("pre",{children:JSON.stringify({providers:[{id:"prestador_ana",title:"Dra. Ana",description:"Cardiologia"},{id:"prestador_bruno",title:"Dr. Bruno",description:"Clínico geral"}],services:[{id:"consulta",title:"Consulta",description:"30 min"},{id:"retorno",title:"Retorno",description:"15 min"}],items:[{id:"hemograma",title:"Hemograma",description:"Exame de sangue"},{id:"tsh",title:"TSH",description:"Tireoide"},{id:"glicemia",title:"Glicemia",description:"Jejum"}],dates:[{id:"2026-05-20",title:"20/05/2026",description:"Quarta-feira"},{id:"2026-05-21",title:"21/05/2026",description:"Quinta-feira"}],times:[{id:"09:00",title:"09:00",description:"Manhã"},{id:"14:30",title:"14:30",description:"Tarde"}],appointments:[{id:"ag_123",title:"20/05 às 09:00",description:"Dra. Ana - Consulta"}]},null,2)}),e.jsxs("span",{children:["Você pode preencher esses campos com uma variável, por exemplo ","{{context.slots.providers}}",", ou com um JSON direto. O componente também aceita itens com ",e.jsx("code",{children:"label"}),", ",e.jsx("code",{children:"name"})," ou ",e.jsx("code",{children:"nome"})," no lugar de ",e.jsx("code",{children:"title"}),"."]})]}),e.jsxs("div",{className:"rich-editor-block nested",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Criar e publicar na Meta"}),e.jsxs("button",{type:"button",onClick:()=>void I(),disabled:!K||F,children:[F?e.jsx($t,{size:14,className:"spin"}):e.jsx(Ap,{size:14}),"Atualizar"]})]}),e.jsxs("label",{children:["Nome do Flow",e.jsx("input",{value:m,placeholder:`${n.title||"Canvas Flow"} Agendamento`,onChange:re=>h(re.target.value)})]}),e.jsx("div",{className:"filter-empty",children:"Usa o WhatsApp Business Account ID e o Access token configurados em Provedores > WhatsApp. Depois de criar, o Flow ID e gravado abaixo automaticamente."}),e.jsxs("div",{className:"meta-flow-manager",children:[e.jsxs("label",{children:["Flow criado na Meta",e.jsxs("select",{value:M.flowId||"",onChange:re=>ee({flowId:re.target.value,mode:re.target.value?"auto":M.mode}),disabled:!K||F,children:[e.jsx("option",{value:"",children:F?"Carregando flows...":"Selecionar flow criado"}),U.map(re=>{const we=String(re.id||""),Me=String(re.name||we),Ye=String(re.status||"");return e.jsxs("option",{value:we,children:[Me,Ye?` - ${Ye}`:""]},we)})]})]}),e.jsxs("button",{type:"button",className:"danger-link",onClick:()=>void W(M.flowId||""),disabled:!M.flowId||fe===M.flowId,title:"Excluir ou desativar o Flow selecionado na Meta",children:[e.jsx(St,{size:14}),fe===M.flowId?"Excluindo...":"Excluir"]})]}),!K&&e.jsx("div",{className:"filter-empty",children:"Configure Business Account ID e Access token em Provedores > WhatsApp para listar os flows criados."}),oe&&e.jsx("div",{className:"field-error",children:oe}),e.jsxs("div",{className:"rich-action-row compact",children:[e.jsx("button",{type:"button",onClick:()=>void ht(!1),disabled:f,children:f?"Processando...":"Criar rascunho"}),e.jsx("button",{type:"button",className:"primary-button",onClick:()=>void ht(!0),disabled:f,children:M.flowId?"Publicar Flow ID":"Criar e publicar"})]}),N&&e.jsx("div",{className:"filter-empty success",children:N}),j&&e.jsx("div",{className:"field-error",children:j})]}),e.jsxs("div",{className:"rich-editor-block nested",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Formatar dados com LLM"})}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:M.llmEnabled===!0,onChange:re=>ee({llmEnabled:re.target.checked})}),e.jsx("span",{children:"Usar LLM para converter dados brutos no formato do Flow"})]}),M.llmEnabled===!0&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Dados de entrada para a LLM",e.jsx("textarea",{rows:3,value:M.llmSourceTemplate||"",placeholder:"{{context.slots.schedules}}",onChange:re=>ee({llmSourceTemplate:re.target.value})})]}),e.jsxs("label",{children:["Instrução da formatação",e.jsx("textarea",{rows:4,value:M.llmInstruction||"",placeholder:"Transforme a agenda bruta em providers, services, items, dates, times e appointments.",onChange:re=>ee({llmInstruction:re.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:M.llmModel||"",onChange:re=>ee({llmModel:re.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",n.model,")"]}),Au(fk,M.llmModel).map(re=>e.jsx("option",{value:re.value,children:re.label},re.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:M.llmTemperature??.1,onChange:re=>ee({llmTemperature:Number(re.target.value)})})]})]}),e.jsxs("div",{className:"filter-empty",children:["Exemplo: a LLM recebe ","{{context.slots.schedules}}"," e retorna JSON com ",e.jsx("code",{children:"providers"}),", ",e.jsx("code",{children:"services"}),", ",e.jsx("code",{children:"items"}),", ",e.jsx("code",{children:"dates"}),", ",e.jsx("code",{children:"times"})," e ",e.jsx("code",{children:"appointments"}),". O runtime normaliza títulos, descrições e IDs para os limites do WhatsApp."]})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Como enviar",e.jsxs("select",{value:M.mode||"auto",onChange:re=>ee({mode:re.target.value}),children:[e.jsx("option",{value:"auto",children:"Automático: Flow se tiver ID, senão lista"}),e.jsx("option",{value:"metaFlow",children:"Usar WhatsApp Flow da Meta"}),e.jsx("option",{value:"interactive",children:"Usar lista/botões interativos"})]})]}),e.jsxs("label",{children:["Lista exibida agora",e.jsx("select",{value:M.stage||"actions",onChange:re=>ee({stage:re.target.value}),children:Tk.map(re=>e.jsx("option",{value:re.value,children:re.label},re.value))})]})]}),e.jsxs("div",{className:"filter-empty",children:[e.jsx("strong",{children:"Como enviar:"})," controla se este nó usa o Flow publicado da Meta ou uma lista compatível com Blip/Sinch. ",e.jsx("strong",{children:"Lista exibida agora:"})," define qual conjunto de opções aparece neste passo quando o envio for por lista."]}),e.jsxs("label",{children:["Lista exibida por contexto",e.jsx("input",{value:M.stageTemplate||"",placeholder:"{{context.slots.appointmentStage}}",onChange:re=>ee({stageTemplate:re.target.value})})]}),e.jsxs("div",{className:"filter-empty",children:["Se esse campo retornar ",e.jsx("code",{children:"providers"}),", ",e.jsx("code",{children:"services"}),", ",e.jsx("code",{children:"items"}),", ",e.jsx("code",{children:"dates"}),", ",e.jsx("code",{children:"times"})," ou ",e.jsx("code",{children:"appointments"}),", ele sobrescreve a lista escolhida acima."]}),e.jsxs("div",{className:"rich-editor-block nested",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Etapas do Flow"}),e.jsxs("button",{type:"button",onClick:Ie,disabled:q.length>=3,children:[e.jsx(dn,{size:14}),"Anexo"]})]}),e.jsxs("div",{className:"filter-empty",children:["Ordene as telas que o WhatsApp Flow vai renderizar. Para começar direto em uma etapa, escolha a tela em ",e.jsx("strong",{children:"Tela inicial"}),"; o Flow segue as próximas etapas desta ordem."]}),$.length>0&&e.jsxs("div",{className:"appointment-add-step-row",children:[e.jsx("select",{value:ye||((xt=$[0])==null?void 0:xt.key)||"",onChange:re=>se(re.target.value),children:$.map(re=>e.jsx("option",{value:re.key,children:ie[re.key]||re.label},re.key))}),e.jsxs("button",{type:"button",onClick:()=>{var re;return B(ye||((re=$[0])==null?void 0:re.key)||"")},children:[e.jsx(dn,{size:14}),"Etapa"]})]}),e.jsx("div",{className:"appointment-step-order-list",children:G.map((re,we)=>{const Me=q.find(Ue=>Iu(Ue.id)===re),Ye=Me?q.findIndex(Ue=>Ue.id===Me.id):-1,st=$d.some(Ue=>Ue.key===re);return e.jsx("div",{className:"appointment-step-order-row",children:e.jsxs("div",{className:"appointment-step-order-main",children:[e.jsxs("div",{className:"appointment-step-order-title",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:[we+1,". ",Xx(re,q,ie)]}),e.jsx("small",{children:Yx(re,we)})]}),e.jsxs("div",{className:"appointment-step-order-actions",children:[e.jsx("button",{type:"button","aria-label":"Subir etapa",onClick:()=>ce(we,-1),disabled:we===0,children:e.jsx(CS,{size:14})}),e.jsx("button",{type:"button","aria-label":"Descer etapa",onClick:()=>ce(we,1),disabled:we===G.length-1,children:e.jsx(bS,{size:14})}),(Me||st)&&e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover etapa",onClick:()=>Oe(re),disabled:G.length<=1,children:e.jsx(St,{size:14})})]})]}),Me&&Ye>=0?e.jsxs("div",{className:"appointment-step-inline-editor",children:[e.jsxs("div",{className:"rich-card-header",children:[e.jsxs("strong",{children:["Anexo ",Ye+1]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:Me.required!==!1,onChange:Ue=>{const Le=[...q];Le[Ye]={...Me,required:Ue.target.checked},O(Le)}}),e.jsx("span",{children:"Obrigatório"})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Tipo",e.jsxs("select",{value:Me.type||"image",onChange:Ue=>{const Le=[...q];Le[Ye]={...Me,type:Ue.target.value==="document"?"document":"image"},O(Le)},children:[e.jsx("option",{value:"image",children:"Imagem"}),e.jsx("option",{value:"document",children:"Documento"})]})]}),e.jsxs("label",{children:["ID",e.jsx("input",{value:Me.id,placeholder:`anexo_${Ye+1}`,onChange:Ue=>{const Le=Iu(Me.id),tt=Mp(Ue.target.value,Ye),ft=[...q];ft[Ye]={...Me,id:tt},O(ft,G.map(Re=>Re===Le?Iu(tt):Re))}})]})]}),e.jsxs("label",{children:["Label",e.jsx("input",{value:Me.label,maxLength:30,placeholder:"Carteirinha de saúde",onChange:Ue=>{const Le=[...q];Le[Ye]={...Me,label:Ue.target.value},O(Le)}})]}),e.jsxs("label",{children:["Descrição",e.jsx("input",{value:Me.description||"",maxLength:300,placeholder:"Envie uma imagem legível do documento.",onChange:Ue=>{const Le=[...q];Le[Ye]={...Me,description:Ue.target.value},O(Le)}})]})]}):it(re)]})},re)})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Flow ID Meta",e.jsx("input",{value:M.flowId||"",placeholder:"ID do Flow publicado",onChange:re=>ee({flowId:re.target.value})})]}),e.jsxs("label",{children:["CTA do Flow",e.jsx("input",{value:M.flowCta||"",maxLength:qt.buttonLabel,placeholder:"Agendar",onChange:re=>ee({flowCta:re.target.value})})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Token do Flow",e.jsx("input",{value:M.flowToken||"",placeholder:"{{context.conversationId}}",onChange:re=>ee({flowToken:re.target.value})})]}),e.jsxs("label",{children:["Tela inicial",e.jsxs("select",{value:M.flowScreen||"",onChange:re=>ee({flowScreen:re.target.value}),children:[e.jsx("option",{value:"",children:"Primeira etapa da ordem"}),G.map((re,we)=>{const Me=Yx(re,we);return e.jsxs("option",{value:Me,children:[Xx(re,q,ie)," (",Me,")"]},`${re}-${Me}`)})]})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Header",e.jsx("input",{value:M.headerText||"",placeholder:"Agendamento",onChange:re=>ee({headerText:re.target.value})})]}),e.jsxs("label",{children:["Botao da lista",e.jsx("input",{value:M.buttonText||"",maxLength:qt.listButton,placeholder:"Ver opções",onChange:re=>ee({buttonText:re.target.value})})]})]}),e.jsxs("div",{className:"filter-empty",children:["Os campos de dados aceitam array JSON, string JSON ou variável ","{{context.slots...}}",". Cada item pode usar id, title/label/name e description."]})]})}function Up({language:t,value:n,placeholder:r,rows:s,error:l,fill:p=!1,readOnly:m=!1,onChange:h}){const[f,x]=b.useState({top:0,left:0}),j=b.useRef(null),w=b.useMemo(()=>{const C=Math.max(String(n||"").split(`
434
+ `).length,s);return Array.from({length:C},(E,T)=>T+1)},[s,n]),N=b.useMemo(()=>n?mk(n,t):`<span class="code-placeholder">${Ip(r)}</span>`,[t,r,n]);return b.useEffect(()=>{if(!m)return;const C=j.current;C&&(C.scrollTop=0,C.scrollLeft=0),x({top:0,left:0})},[m,n]),e.jsxs("div",{className:`code-editor-shell ${p?"fill":""} ${l?"invalid":""}`,children:[e.jsx("div",{className:"code-editor-gutter","aria-hidden":"true",children:e.jsx("div",{style:{transform:`translateY(-${f.top}px)`},children:w.map(C=>e.jsx("span",{children:C},C))})}),e.jsx("div",{className:`code-editor-main ${m?"readonly":""}`,onScroll:m?C=>x({top:C.currentTarget.scrollTop,left:C.currentTarget.scrollLeft}):void 0,children:m?e.jsx("pre",{className:"code-editor-highlight code-editor-static",dangerouslySetInnerHTML:{__html:N}}):e.jsxs(e.Fragment,{children:[e.jsx("pre",{"aria-hidden":"true",className:"code-editor-highlight",style:{transform:`translate(-${f.left}px, -${f.top}px)`},dangerouslySetInnerHTML:{__html:N}}),e.jsx("textarea",{ref:j,className:"code-editor-textarea",rows:s,spellCheck:!1,value:n,onScroll:C=>x({top:C.currentTarget.scrollTop,left:C.currentTarget.scrollLeft}),onChange:C=>h(C.target.value)})]})})]})}function vf({label:t,language:n,value:r,placeholder:s,rows:l,error:p,onChange:m,onOpen:h}){return e.jsxs("div",{className:"code-editor-field",children:[e.jsxs("div",{className:"code-editor-header",children:[e.jsx("strong",{children:t}),e.jsxs("div",{children:[e.jsx("span",{children:n}),e.jsxs("button",{type:"button",onClick:h,children:[e.jsx(_d,{size:14}),"Abrir editor"]})]})]}),e.jsx(Up,{language:n==="JSON"?"json":"js",rows:l,error:p,value:r,placeholder:s,onChange:m}),p&&e.jsx("div",{className:"code-editor-error",children:p})]})}function tv({title:t="Gerar JS com LLM",placeholder:n="Ex: pegue context.slots.carrinho, calcule subtotal, desconto e retorne {pedido: {...}, total: ...}",prompt:r,generatedCode:s,generatedExplanation:l,error:p,loading:m,copied:h,onPromptChange:f,onGenerate:x,onCopy:j,onApply:w}){return e.jsxs("div",{className:"context-script-ai",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:t}),e.jsxs("button",{type:"button",disabled:m||!r.trim(),onClick:x,children:[m?e.jsx($t,{size:14,className:"spin"}):e.jsx($l,{size:14}),"Gerar"]})]}),e.jsx("textarea",{rows:3,value:r,placeholder:n,onChange:N=>f(N.target.value)}),p&&e.jsx("div",{className:"code-editor-error",children:p}),s&&e.jsxs("div",{className:"context-script-result",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Código gerado"}),e.jsxs("div",{className:"context-script-actions",children:[e.jsxs("button",{type:"button",onClick:j,children:[h?e.jsx(Ji,{size:14}):e.jsx(nn,{size:14}),"Copiar"]}),e.jsx("button",{type:"button",onClick:w,children:"Aplicar no editor"})]})]}),l&&e.jsx("div",{className:"filter-empty",children:l}),e.jsx(Up,{language:"js",rows:8,value:s,placeholder:"",readOnly:!0,onChange:()=>{}})]})]})}function Bk({prompt:t,generated:n,error:r,loading:s,copied:l,onPromptChange:p,onGenerate:m,onCopy:h,onApply:f}){const x=Jf(n),j=x?JSON.stringify(x,null,2):"";return e.jsxs("div",{className:"context-script-ai",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Gerar MongoDB com LLM"}),e.jsxs("button",{type:"button",disabled:s||!t.trim(),onClick:m,children:[s?e.jsx($t,{size:14,className:"spin"}):e.jsx($l,{size:14}),"Gerar"]})]}),e.jsx("textarea",{rows:3,value:t,placeholder:"Ex: gere um filtro para buscar leads convertidos hoje pelo agentId atual, ordenando por createdAt desc",onChange:w=>p(w.target.value)}),r&&e.jsx("div",{className:"code-editor-error",children:r}),x&&e.jsxs("div",{className:"context-script-result",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"JSON gerado"}),e.jsxs("div",{className:"context-script-actions",children:[e.jsxs("button",{type:"button",onClick:h,children:[l?e.jsx(Ji,{size:14}):e.jsx(nn,{size:14}),"Copiar"]}),e.jsx("button",{type:"button",onClick:f,children:"Aplicar campos"})]})]}),typeof(n==null?void 0:n.explanation)=="string"&&n.explanation&&e.jsx("div",{className:"filter-empty",children:n.explanation}),e.jsx(Up,{language:"json",rows:8,value:j,placeholder:"",readOnly:!0,onChange:()=>{}})]})]})}function Gi({onClick:t,title:n="Gerar com LLM"}){return e.jsx("button",{type:"button",className:"prompt-field-ai-button",title:n,onClick:t,children:e.jsx($l,{size:13})})}const Uk=[{value:"fields",title:"Montar campos",description:"A IA transforma contexto em JSON para usar nos próximos nós."},{value:"api",title:"Chamar API",description:"A IA monta argumentos/body e o Canvas chama um endpoint permitido."},{value:"external",title:"Servidor MCP",description:"Conecta em um servidor MCP remoto e chama tools, resources ou prompts."}];function qk(t){return t==="api"?{mcpMode:"api",responseName:"consultaCliente",mcpToolName:"consultar_cliente",mcpToolDescription:"Consulta dados do cliente em uma API externa usando CPF ou identificador recebido no fluxo.",mcpInstruction:"Use os dados do contexto para montar a chamada. Depois normalize a resposta no output schema, sem inventar dados.",mcpInputSchema:`{
435
+ "type": "object",
436
+ "properties": {
437
+ "cpf": { "type": "string", "description": "CPF do cliente" }
438
+ },
439
+ "required": ["cpf"]
440
+ }`,mcpOutputSchema:`{
441
+ "type": "object",
442
+ "properties": {
443
+ "encontrado": { "type": "boolean" },
444
+ "nome": { "type": "string" },
445
+ "maiorIdade": { "type": "boolean" },
446
+ "status": { "type": "string" }
447
+ }
448
+ }`,mcpApiMethod:"POST",mcpApiBaseUrl:"https://api.exemplo.com/clientes/consulta",mcpApiHeadersJson:"{}",mcpApiQueryJson:"{}",mcpApiBodyJson:`{
449
+ "cpf": "{{context.slots.cpf}}"
450
+ }`,mcpApiAuthMode:"none",mcpApiAllowLlmRequest:!0,mcpApiMapResultWithLlm:!0,mcpApiExecute:!0,mcpApiCallMode:"single",mcpApiExecutionMode:"sequential",mcpApiRequestsJson:eg("consultaCliente"),mcpMergeOutputToSlots:!1}:t==="external"?{mcpMode:"external",responseName:"mcpCliente",mcpToolName:"buscar_cliente_mcp",mcpToolDescription:"Chama uma tool de um servidor MCP remoto e normaliza o retorno para o fluxo.",mcpInstruction:"Use os dados do contexto para montar os argumentos da tool. Normalize o retorno no output schema.",mcpInputSchema:`{
451
+ "type": "object",
452
+ "properties": {
453
+ "cpf": { "type": "string" }
454
+ },
455
+ "required": ["cpf"]
456
+ }`,mcpOutputSchema:`{
457
+ "type": "object",
458
+ "properties": {
459
+ "encontrado": { "type": "boolean" },
460
+ "nome": { "type": "string" },
461
+ "documento": { "type": "string" },
462
+ "resumo": { "type": "string" }
463
+ }
464
+ }`,mcpExternalTransport:"streamable_http",mcpExternalUrl:"https://mcp.exemplo.com/mcp",mcpExternalOperation:"callTool",mcpExternalToolName:"buscar_cliente",mcpExternalArgumentsJson:`{
465
+ "cpf": "{{context.slots.cpf}}"
466
+ }`,mcpExternalHeadersJson:"{}",mcpExternalAuthMode:"none",mcpExternalOAuthConnectionScope:"agent",mcpExternalUseLlmArguments:!0,mcpExternalMapResultWithLlm:!0,mcpExternalTimeoutMs:3e4,mcpMergeOutputToSlots:!1}:{mcpMode:"fields",responseName:"camposCliente",mcpToolName:"montar_campos_cliente",mcpToolDescription:"Monta campos estruturados para o fluxo com base no contexto da conversa.",mcpInstruction:"Extraia e normalize os campos disponíveis no contexto. Retorne somente o JSON do output schema.",mcpInputSchema:`{
467
+ "type": "object",
468
+ "properties": {
469
+ "input": { "type": "string" },
470
+ "cpf": { "type": "string" }
471
+ }
472
+ }`,mcpOutputSchema:`{
473
+ "type": "object",
474
+ "properties": {
475
+ "cpf": { "type": "string" },
476
+ "intencao": { "type": "string" },
477
+ "resumo": { "type": "string" }
478
+ }
479
+ }`,mcpMergeOutputToSlots:!1}}function nv({rules:t,draft:n,emptyText:r,onChange:s,onDraftChange:l}){const p=Array.isArray(t)?t:[],m=(f,x)=>{const j=[...p];j[f]={...j[f]||{field:"",value:""},...x},s(j.filter(w=>String(w.field||"").trim()))},h=()=>{const f=n.field.trim();f&&(s([...p,{field:f,value:zu(n.type,n.value),condition:String(n.condition||"").trim()}]),l(Jr))};return e.jsxs("div",{className:"filter-editor conditional-filter-editor",children:[p.length===0&&e.jsx("div",{className:"filter-empty",children:r}),p.map((f,x)=>{const j=kj(f.value),w=Aj(f.value);return e.jsxs("div",{className:"conditional-filter-row",children:[e.jsx("input",{"aria-label":"Campo extraFields",value:f.field||"",placeholder:"Campo",onChange:N=>m(x,{field:N.target.value.trim()})}),e.jsxs("select",{"aria-label":"Tipo do filtro",value:j,onChange:N=>m(x,{value:zu(N.target.value,w)}),children:[e.jsx("option",{value:"text",children:"Texto"}),e.jsx("option",{value:"number",children:"Numero"}),e.jsx("option",{value:"boolean",children:"Booleano"}),e.jsx("option",{value:"array",children:"Lista"})]}),e.jsx(Ch,{type:j,value:w,onChange:N=>m(x,{value:zu(j,N)})}),e.jsx("input",{"aria-label":"Condicao JS do filtro",value:f.condition||"",placeholder:"Condicao JS opcional",onChange:N=>m(x,{condition:N.target.value})}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover filtro",title:"Remover filtro",onClick:()=>s(p.filter((N,C)=>C!==x)),children:e.jsx(St,{size:14})})]},x)}),e.jsxs("div",{className:"conditional-filter-row conditional-filter-row-new",children:[e.jsx("input",{value:n.field,placeholder:"Campo",onChange:f=>l({...n,field:f.target.value})}),e.jsxs("select",{value:n.type,onChange:f=>l({...n,type:f.target.value}),children:[e.jsx("option",{value:"text",children:"Texto"}),e.jsx("option",{value:"number",children:"Numero"}),e.jsx("option",{value:"boolean",children:"Booleano"}),e.jsx("option",{value:"array",children:"Lista"})]}),e.jsx(Ch,{type:n.type,value:n.value,onChange:f=>l({...n,value:f})}),e.jsx("input",{value:n.condition||"",placeholder:"context.slots.ano == 2026",onChange:f=>l({...n,condition:f.target.value})}),e.jsxs("button",{type:"button",className:"filter-add-button",onClick:h,disabled:!n.field.trim(),children:[e.jsx(dn,{size:14}),"Add"]})]}),e.jsxs("div",{className:"filter-empty",children:["Condicao vazia aplica sempre. Exemplo: ",e.jsx("code",{children:"context.slots.ano == 2026"}),"."]})]})}function Hk(){return[{id:`rag_if_default_${Date.now()}`,condition:"",extraFieldsFilterPerRoundExpression:"[{ relevante: true }, { relevante: undefined }]",extraFieldsFilterPerRoundLimitsExpression:"[15, 15]",roundStopFind:!1,roundMixHalf:!0},{id:`rag_if_ano_${Date.now()+1}`,condition:"context?.slots?.extraFieldsFilter?.obterAnoFinanceiroPrioritario == true",extraFieldsFilterPerRoundExpression:"[{ ano: 2026 }, { ano: 2025 }]",roundStopFind:!1,roundMixHalf:!0},{id:`rag_if_ultima_${Date.now()+2}`,condition:"context?.slots?.extraFieldsFilter?.intentUltimaLei == true || context?.slots?.extraFieldsFilter?.ultimaLei == true",extraFieldsFilterPerRoundExpression:"[{ ano: 2026 }, { ano: 2025 }]",extraFieldsFilterPerRoundLimitsExpression:"undefined",roundStopFind:!1,roundMixHalf:!0,order:"desc",extraFieldsFilterOrderByExpression:'["numero"]',metadataOrderScanPageSize:1e3,metadataOrderMaxScan:2e4},{id:`rag_if_filter_${Date.now()+3}`,condition:"(context?.slots?.extraFieldsFilter?.ano || context?.slots?.extraFieldsFilter?.numero) && !context?.slots?.extraFieldsFilter?.intentUltimaLei && !context?.slots?.extraFieldsFilter?.obterAnoFinanceiroPrioritario",extraFieldsFilterExpression:"context?.slots?.extraFieldsFilter"}]}function ov({rules:t,onChange:n}){const r=Array.isArray(t)?t:[],s=(h,f)=>{const x=[...r];x[h]={...x[h]||{},...f},n(x)},l=()=>{n([...r,{id:`rag_if_${Date.now()}`,condition:""}])},p=h=>{if(h==="true")return!0;if(h==="false")return!1},m=h=>{if(h.trim()==="")return null;const f=Number(h);return Number.isFinite(f)?f:null};return e.jsxs("div",{className:"filter-section rag-conditional-section",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"IF RAG"}),e.jsxs("div",{className:"rag-conditional-actions",children:[e.jsx("button",{type:"button",onClick:()=>n([...r,...Hk()]),children:"Exemplo leis"}),e.jsxs("button",{type:"button",onClick:l,children:[e.jsx(dn,{size:14}),"IF"]})]})]}),r.length===0&&e.jsx("div",{className:"filter-empty",children:"Sem IF RAG. Use para trocar prompt, filtros e ordem por condicao."}),e.jsx("div",{className:"rag-conditional-list",children:r.map((h,f)=>e.jsxs("div",{className:"rag-conditional-card",children:[e.jsxs("div",{className:"rag-conditional-card-header",children:[e.jsxs("strong",{children:["IF #",f+1]}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover IF RAG",title:"Remover IF RAG",onClick:()=>n(r.filter((x,j)=>j!==f)),children:e.jsx(St,{size:14})})]}),e.jsxs("label",{children:["Condicao do IF",e.jsx("input",{value:h.condition||"",placeholder:"context?.slots?.extraFieldsFilter?.intentUltimaLei == true",onChange:x=>s(f,{condition:x.target.value})})]}),e.jsxs("label",{children:["Prompt override",e.jsx("textarea",{rows:4,value:h.prompt||"",placeholder:"Opcional. Se preencher, este prompt substitui o Prompt RAG quando o IF bater.",onChange:x=>s(f,{prompt:x.target.value})})]}),e.jsxs("div",{className:"rag-conditional-grid",children:[e.jsxs("label",{children:["extraFieldsFilter (JS)",e.jsx("textarea",{rows:3,value:h.extraFieldsFilterExpression||"",placeholder:"context?.slots?.extraFieldsFilter",onChange:x=>s(f,{extraFieldsFilterExpression:x.target.value})})]}),e.jsxs("label",{children:["extraFieldsFilterPerRound (JS)",e.jsx("textarea",{rows:3,value:h.extraFieldsFilterPerRoundExpression||"",placeholder:"[{ ano: 2026 }, { ano: 2025 }]",onChange:x=>s(f,{extraFieldsFilterPerRoundExpression:x.target.value})})]}),e.jsxs("label",{children:["extraFieldsFilterPerRoundLimits (JS)",e.jsx("input",{value:h.extraFieldsFilterPerRoundLimitsExpression||"",placeholder:"[15, 15] ou undefined",onChange:x=>s(f,{extraFieldsFilterPerRoundLimitsExpression:x.target.value})})]}),e.jsxs("label",{children:["extraFieldsFilterOrderBy (JS)",e.jsx("input",{value:h.extraFieldsFilterOrderByExpression||"",placeholder:'["numero"]',onChange:x=>s(f,{extraFieldsFilterOrderByExpression:x.target.value})})]})]}),e.jsxs("div",{className:"rag-conditional-meta-grid",children:[e.jsxs("label",{children:["roundStopFind",e.jsxs("select",{value:h.roundStopFind===!0?"true":h.roundStopFind===!1?"false":"",onChange:x=>s(f,{roundStopFind:p(x.target.value)}),children:[e.jsx("option",{value:"",children:"herdar"}),e.jsx("option",{value:"true",children:"true"}),e.jsx("option",{value:"false",children:"false"})]})]}),e.jsxs("label",{children:["roundMixHalf",e.jsxs("select",{value:h.roundMixHalf===!0?"true":h.roundMixHalf===!1?"false":"",onChange:x=>s(f,{roundMixHalf:p(x.target.value)}),children:[e.jsx("option",{value:"",children:"herdar"}),e.jsx("option",{value:"true",children:"true"}),e.jsx("option",{value:"false",children:"false"})]})]}),e.jsxs("label",{children:["order",e.jsxs("select",{value:h.order||"",onChange:x=>s(f,{order:x.target.value}),children:[e.jsx("option",{value:"",children:"herdar"}),e.jsx("option",{value:"desc",children:"desc"}),e.jsx("option",{value:"asc",children:"asc"})]})]}),e.jsxs("label",{children:["scan page",e.jsx("input",{type:"number",min:0,value:h.metadataOrderScanPageSize??"",placeholder:"1000",onChange:x=>s(f,{metadataOrderScanPageSize:m(x.target.value)})})]}),e.jsxs("label",{children:["max scan",e.jsx("input",{type:"number",min:0,value:h.metadataOrderMaxScan??"",placeholder:"20000",onChange:x=>s(f,{metadataOrderMaxScan:m(x.target.value)})})]})]})]},h.id||f))})]})}const Ej=["string","number","integer","boolean","enum","object","array"];function yf(t){try{const n=JSON.parse(String(t||"{}")),r=n!=null&&n.properties&&typeof n.properties=="object"&&!Array.isArray(n.properties)?n.properties:{},s=new Set(Array.isArray(n==null?void 0:n.required)?n.required.map(l=>String(l)):[]);return Object.entries(r).map(([l,p])=>{const m=p&&typeof p=="object"&&!Array.isArray(p)?p:{},h=String(m.type||"string"),f=Array.isArray(m.enum),x=f?m.enum:[],j=typeof m["x-canvas-enumText"]=="string"?String(m["x-canvas-enumText"]):x.map(w=>String(w)).join(", ");return{name:l,type:f&&h==="string"?"enum":Ej.includes(h)?h:"string",required:s.has(l),enumValues:j,description:String(m.description||"")}})}catch{return[]}}function Wk(t,n){const r=new Set(t.map(p=>p.name));let s=t.length+1,l=`${n}${s}`;for(;r.has(l);)s+=1,l=`${n}${s}`;return{name:l,type:"string",required:!1,enumValues:"",description:""}}function Gk(t,n){const r=t.split(/[,\n]/).map(s=>s.trim()).filter(Boolean);return!r.length||n==="object"||n==="array"?[]:n==="boolean"?r.map(s=>{const l=s.toLowerCase();if(l==="true"||l==="verdadeiro"||l==="sim")return!0;if(l==="false"||l==="falso"||l==="nao"||l==="não")return!1}).filter(s=>typeof s=="boolean"):n==="number"||n==="integer"?r.map(s=>Number(s.replace(",","."))).filter(s=>Number.isFinite(s)).map(s=>n==="integer"?Math.trunc(s):s):r}function Jk(t){const n={},r=[];t.forEach(l=>{const p=l.name.trim();if(!p)return;const m=Gk(l.enumValues,l.type),h=l.enumValues||"",f=l.description||"";n[p]={type:l.type==="enum"?"string":l.type||"string",...f?{description:f}:{},...m.length?{enum:m}:{},...h?{"x-canvas-enumText":h}:{},...l.type==="array"?{items:{type:"string"}}:{}},l.required&&r.push(p)});const s={type:"object",properties:n};return r.length&&(s.required=r),JSON.stringify(s,null,2)}function Mj(t){const n=String(t.type||(t.properties?"object":"any"));if(n==="array"){const r=t.items&&typeof t.items=="object"&&!Array.isArray(t.items)?t.items:{};return`array<${Mj(r)}>`}return Array.isArray(t.enum)&&t.enum.length?`${n} enum`:n}function Tj(t,n="",r=!0){const s=t!=null&&t.properties&&typeof t.properties=="object"&&!Array.isArray(t.properties)?t.properties:{},l=new Set(Array.isArray(t==null?void 0:t.required)?t.required.map(p=>String(p)):[]);return Object.entries(s).flatMap(([p,m])=>{const h=m&&typeof m=="object"&&!Array.isArray(m)?m:{},f=n?`${n}.${p}`:p,x=r&&l.has(p),j=h.type==="array"&&h.items&&typeof h.items=="object"&&!Array.isArray(h.items)?h.items:void 0,w=j||h,N=w.properties?Tj(w,j?`${f}[]`:f,x):[];return[{path:f,type:Mj(h),required:x,description:String(h.description||"")},...N]})}function Kk(t){const n=(s,l)=>{const p=s&&typeof s=="object"&&!Array.isArray(s)?s:{},m=p.properties&&typeof p.properties=="object"&&!Array.isArray(p.properties)?p.properties:{};return p.type==="object"&&Object.keys(m).length?Object.fromEntries(Object.entries(m).map(([h,f])=>[h,n(f,`${l}.${h}`)])):p.type==="array"?[`{{context.slots.${l}}}`]:`{{context.slots.${l}}}`},r=t!=null&&t.properties&&typeof t.properties=="object"&&!Array.isArray(t.properties)?t.properties:{};return JSON.stringify(Object.fromEntries(Object.entries(r).map(([s,l])=>[s,n(l,s)])),null,2)}function av(t){return JSON.stringify(t&&typeof t=="object"&&!Array.isArray(t)?t:{},null,2)}function eg(t="consultaCliente"){return JSON.stringify([{id:"cliente",label:"Buscar cliente",method:"POST",url:"https://api.exemplo.com/clientes/consulta",body:{cpf:"{{context.slots.cpf}}"}},{id:"endereco",label:"Buscar endereco",method:"GET",url:"https://api.exemplo.com/enderecos/{{context.slots."+t+".resultsById.cliente.data.enderecoId}}",params:{clienteId:"{{context.slots."+t+".resultsById.cliente.data.id}}"}}],null,2)}function rv(t){const n=Ns(String(t||"[]"),[]),r=uo(n);return(Array.isArray(n)?n:Array.isArray(r.requests)?r.requests:[]).filter(l=>!!(l&&typeof l=="object"&&!Array.isArray(l))).map((l,p)=>({...l,id:String(l.id||l.key||`request_${p+1}`),label:String(l.label||l.title||`Chamada ${p+1}`)}))}function sv(t){return JSON.stringify(t,null,2)}function tg(t,n="api"){const r=new Set(t.map(m=>String(m.id||""))),s=n.trim().toLowerCase().replace(/[^a-z0-9_]+/g,"_").replace(/^_+|_+$/g,"")||"api";let l=t.length+1,p=r.has(s)?`${s}_${l}`:s;for(;r.has(p);)l+=1,p=`${s}_${l}`;return{id:p,label:`Chamada ${l}`,method:"GET",url:"https://api.exemplo.com/recurso",headers:{},params:{},bodyType:"none"}}function Qk({requests:t,responseName:n,executionMode:r,onChange:s,onUseExample:l}){const[p,m]=b.useState({}),[h,f]=b.useState({}),x=Array.isArray(t)?t:[],j=(C,E)=>m(T=>({...T,[C]:E})),w=(C,E)=>{const T=[...x];T[C]={...T[C]||tg(x),...E},s(T)},N=C=>s(x.filter((E,T)=>T!==C));return e.jsxs("div",{className:"mcp-api-requests-editor",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:["Chamadas da API (",x.length,")"]}),e.jsx("span",{children:r==="parallel"?"Executadas ao mesmo tempo.":"Executadas na ordem da lista."})]}),e.jsxs("div",{className:"mcp-api-editor-actions",children:[e.jsxs("button",{type:"button",onClick:l,children:[e.jsx($l,{size:14}),"Exemplo"]}),e.jsxs("button",{type:"button",onClick:()=>s([...x,tg(x)]),children:[e.jsx(dn,{size:14}),"API"]})]})]}),x.length===0&&e.jsx("div",{className:"filter-empty",children:"Nenhuma API configurada. Clique em API para adicionar uma chamada."}),x.map((C,E)=>{const T=Yf(C),R=C.body!==void 0?C.body:C.data,L=String(C.id||`request_${E+1}`),U=String(C.label||`Chamada ${E+1}`);return e.jsxs("div",{className:"http-request-card mcp-api-call-card",children:[e.jsxs("div",{className:"http-request-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:U}),e.jsx("span",{children:L})]}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover API",title:"Remover API",onClick:()=>N(E),children:e.jsx(St,{size:14})})]}),e.jsxs("div",{className:"mcp-api-call-meta",children:[e.jsxs("label",{children:["ID da chamada",e.jsx("input",{value:L,placeholder:"cliente",onChange:P=>w(E,{id:P.target.value})})]}),e.jsxs("label",{children:["Nome",e.jsx("input",{value:U,placeholder:"Buscar cliente",onChange:P=>w(E,{label:P.target.value})})]})]}),e.jsxs("div",{className:"http-request-grid",children:[e.jsxs("label",{children:["Método",e.jsx("select",{value:String(C.method||"GET").toUpperCase(),onChange:P=>w(E,{method:P.target.value}),children:Kf.map(P=>e.jsx("option",{value:P,children:P},P))})]}),e.jsxs("label",{children:["URL",e.jsx("input",{value:String(C.url||""),placeholder:E>0&&r!=="parallel"?`https://api.exemplo.com/enderecos/{{context.slots.${n}.resultsById.cliente.data.enderecoId}}`:"https://api.exemplo.com/clientes",onChange:P=>w(E,{url:P.target.value})})]})]}),E>0&&r!=="parallel"&&e.jsxs("div",{className:"filter-empty",children:["Pode usar resultados anteriores, por exemplo ",e.jsx("code",{children:`{{context.slots.${n}.resultsById.cliente.data.id}}`}),"."]}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Headers"})}),e.jsx(Ki,{filter:uo(C.headers),draft:p[`mcp-headers-${E}`]||Jr,emptyText:"Sem headers.",onDraftChange:P=>j(`mcp-headers-${E}`,P),onChange:P=>w(E,{headers:P})})]}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Query params"})}),e.jsx(Ki,{filter:uo(C.params),draft:p[`mcp-params-${E}`]||Jr,emptyText:"Sem query params.",onDraftChange:P=>j(`mcp-params-${E}`,P),onChange:P=>w(E,{params:P})})]}),e.jsxs("label",{children:["Body",e.jsx("select",{value:T,onChange:P=>{const F=P.target.value;if(F==="none"&&w(E,{bodyType:F,body:void 0,data:void 0}),F==="jsonFields"&&w(E,{bodyType:F,body:uo(R),data:void 0}),F==="jsonText"){const Z=zl(R);f(oe=>({...oe,[E]:Z})),w(E,{bodyType:F,body:Ns(Z,uo(R)),data:void 0})}F==="text"&&w(E,{bodyType:F,body:typeof R=="string"?R:"",data:void 0})},children:Qf.map(P=>e.jsx("option",{value:P.value,children:P.label},P.value))})]}),T==="jsonFields"&&e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Campos do body"})}),e.jsx(Ki,{filter:uo(R),draft:p[`mcp-body-${E}`]||Jr,emptyText:"Sem campos no body.",onDraftChange:P=>j(`mcp-body-${E}`,P),onChange:P=>w(E,{body:P,data:void 0,bodyType:T})})]}),T==="jsonText"&&e.jsxs("label",{children:["JSON do body",e.jsx("textarea",{rows:6,value:h[E]??zl(R),placeholder:'{"cpf": "{{context.slots.cpf}}"}',onChange:P=>f(F=>({...F,[E]:P.target.value})),onBlur:()=>{const P=h[E]??zl(R);w(E,{body:Ns(P,uo(R)),data:void 0,bodyType:T})}})]}),T==="text"&&e.jsxs("label",{children:["Texto do body",e.jsx("textarea",{rows:4,value:String(R||""),placeholder:"Conteúdo bruto enviado no body",onChange:P=>w(E,{body:P.target.value,data:void 0,bodyType:T})})]})]},`${L}-${E}`)})]})}function iv({title:t,helper:n,fields:r,emptyLabel:s,onAdd:l,onUpdate:p,onRemove:m}){return e.jsxs("div",{className:"mcp-schema-card",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:t}),e.jsx("span",{children:n})]}),e.jsxs("button",{type:"button",onClick:l,children:[e.jsx(dn,{size:14}),"Campo"]})]}),r.length===0?e.jsx("div",{className:"filter-empty",children:s}):e.jsx("div",{className:"mcp-schema-fields",children:r.map((h,f)=>e.jsxs("div",{className:"mcp-schema-row",children:[e.jsxs("label",{children:["Campo",e.jsx("input",{value:h.name,placeholder:"cpf",onChange:x=>p(f,{name:x.target.value})})]}),e.jsxs("label",{children:["Tipo",e.jsx("select",{value:h.type,onChange:x=>p(f,{type:x.target.value}),children:Ej.map(x=>e.jsx("option",{value:x,children:x},x))})]}),e.jsxs("label",{children:["Opções",e.jsx("input",{value:h.enumValues,placeholder:"Ex: pendente, aprovado",onBeforeInput:Wi,onKeyDownCapture:Wi,onKeyDown:Wi,onKeyUpCapture:Wi,onKeyUp:Wi,onChange:x=>p(f,{enumValues:x.target.value})})]}),e.jsxs("label",{children:["Descrição",e.jsx("input",{value:h.description,placeholder:"Ajuda a IA a preencher corretamente",onBeforeInput:Wi,onKeyDownCapture:Wi,onKeyDown:Wi,onKeyUpCapture:Wi,onKeyUp:Wi,onChange:x=>p(f,{description:x.target.value})})]}),e.jsxs("label",{className:"mcp-required-toggle",children:["Obrigatório",e.jsx("input",{type:"checkbox",checked:h.required,onChange:x=>p(f,{required:x.target.checked})})]}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover campo",onClick:()=>m(f),children:e.jsx(St,{size:14})})]},`mcp-schema-field-${f}`))})]})}function Xk({config:t,selectedStep:n,selectedEdge:r,flows:s=[],currentFlowId:l="",agentId:p="",onUpdateConfig:m,onUpdateStep:h,onUpdateEdge:f,onRefreshCronLog:x,canRefreshCronLog:j}){var zs,sn,ac,Ta,rc,Ia,Oo,Lr,rr,gl,Pa,_a,Ee,It,ja,Dn,$n,fn,Kt,In,Sn,ds,Xc,us,xl,Oa,vl,sc,ic,Zo,sr,ps,vo,Mi,Ls,Ro,Lt,_t,ea,ir,Ot,Qt,Ds,yl,bn,so,Rt,yo,ta,lc,jl,Dr,jo,Ti,cc,ms,bl,dc,hs,$r,Yc,uc,fs,Zc,Ra,$s,Vs,Ii,pc,wl,mc,Bs,Fo,Vr,gs,Nl,zo,Fa,Cl,Sl,lr,Br,kl,ed,Vn,cr,bo,Lo,Pi,Us,Ur,hc,xs,fc,Al,Yt,El,gc,xc,Ml,vc,Do,Zt,gn,wn,vs,qs,_i,td,Bn,Tl,Oi,Il,za,io,Ri,yc,jc,nd,od,ad,rd,sd,id,xn,vn,qr,ld,Pl,Fi,cd,_l,bc,dd;const[w,N]=b.useState(Jr),[C,E]=b.useState({}),[T,R]=b.useState(null),[L,U]=b.useState(!1),[P,F]=b.useState(""),[Z,oe]=b.useState(!1),[ae,te]=b.useState(""),[X,fe]=b.useState(""),[ve,ye]=b.useState(""),[se,M]=b.useState(!1),[ee,q]=b.useState(""),[ie,G]=b.useState(!1),[$,K]=b.useState(""),[I,W]=b.useState(""),[xe,Q]=b.useState(""),[be,Ce]=b.useState(!1),[Oe,B]=b.useState(""),[ce,O]=b.useState(!1),[Ie,ge]=b.useState(null),[it,ht]=b.useState(""),[Ze,kt]=b.useState(!1),[et,Te]=b.useState([]),[Qe,xt]=b.useState(""),[re,we]=b.useState({}),[Me,Ye]=b.useState({}),[st,Ue]=b.useState({loading:!0,error:"",configured:{}}),[Le,tt]=b.useState(null),[ft,Re]=b.useState(!1),[Pe,lt]=b.useState(""),[pn,An]=b.useState(""),[sa,mn]=b.useState([]),[Wn,Jo]=b.useState(!1),[fr,Ko]=b.useState(""),[ia,Ao]=b.useState(""),[la,gr]=b.useState(null),[xr,vr]=b.useState(!1),[Va,yr]=b.useState(""),[Ba,Ua]=b.useState(""),[As,Qo]=b.useState(""),[Gn,qa]=b.useState("skills"),[En,Xr]=b.useState(null),[Ha,tl]=b.useState(""),[Es,Jn]=b.useState(t.model||""),[vt,_n]=b.useState(!1),[Wa,ni]=b.useState(""),[nl,jr]=b.useState(""),[Ms,Ga]=b.useState(""),[oi,ca]=b.useState(!1),Ge=p.trim()||"default-agent",Kn=t.llmProvider||"openai",Qn=b.useMemo(()=>Au(Tp(Kn),t.model),[t.model,Kn]),Eo=(c,S="",_=t.model||"")=>{c&&(Xr(c),tl(S),Jn(_||t.model||""),ni(""),jr(""),Ga(""),ca(!1))},Yr=()=>{vt||(Xr(null),ni(""),jr(""),Ga(""),ca(!1))},ai=b.useMemo(()=>Au(Tp(Kn),Es||t.model),[t.model,Es,Kn]),Ul=async()=>{if(!(!En||!Ha.trim()||vt)){_n(!0),Ga(""),ca(!1);try{const c=await ze.generatePromptField({fieldType:En.fieldType,targetType:En.targetType,objective:Ha,currentValue:En.currentValue,currentConfig:t,stepContext:En.stepContext,model:Es||t.model,llmProvider:Kn,flowId:l,agentId:Ge});ni(c.text||""),jr(c.explanation||"")}catch(c){Ga(c instanceof Error?c.message:"Nao foi possivel gerar este campo.")}finally{_n(!1)}}},Zr=async()=>{Wa&&(await navigator.clipboard.writeText(Wa),ca(!0),window.setTimeout(()=>ca(!1),1800))},da=()=>{!En||!Wa||(En.applyText(Wa),Yr())},Ja=()=>En&&e.jsx("div",{className:"modal-backdrop prompt-field-assistant-backdrop",onMouseDown:Yr,children:e.jsxs("div",{className:"prompt-field-assistant-modal",onMouseDown:c=>c.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:En.title}),e.jsx("span",{children:En.label})]}),e.jsxs("button",{type:"button",onClick:Yr,disabled:vt,children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"prompt-field-assistant-body",children:[e.jsxs("section",{className:"prompt-field-assistant-compose",children:[e.jsxs("label",{children:["Modelo",e.jsx("select",{value:Es,onChange:c=>Jn(c.target.value),children:ai.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))})]}),e.jsxs("label",{children:["Objetivo deste campo",e.jsx("textarea",{rows:5,value:Ha,placeholder:En.placeholder,onChange:c=>tl(c.target.value)})]}),e.jsx("div",{className:"filter-empty",children:"A IA vai gerar apenas este campo. Use Agents.md para papel/arquitetura, Guardrails para limites, Termos bloqueados para tripwires e MCP para contrato de ferramenta."}),e.jsxs("button",{type:"button",onClick:()=>void Ul(),disabled:vt||!Ha.trim(),children:[vt?e.jsx($t,{size:14,className:"spin"}):e.jsx($l,{size:14}),"Gerar"]})]}),e.jsxs("section",{className:"prompt-field-assistant-result",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Resultado"}),e.jsxs("div",{className:"context-script-actions",children:[e.jsxs("button",{type:"button",onClick:()=>void Zr(),disabled:!Wa,children:[oi?e.jsx(Ji,{size:14}):e.jsx(nn,{size:14}),"Copiar"]}),e.jsx("button",{type:"button",onClick:da,disabled:!Wa,children:"Aplicar no campo"})]})]}),Ms&&e.jsx("div",{className:"code-editor-error",children:Ms}),nl&&e.jsx("div",{className:"filter-empty",children:nl}),e.jsx("textarea",{rows:14,value:Wa,placeholder:"O texto gerado aparece aqui.",readOnly:!0})]})]})]})});b.useEffect(()=>{U(!1),F(""),te(""),fe(""),ye(""),M(!1)},[r==null?void 0:r.id]),b.useEffect(()=>{Ua(""),Qo("")},[n==null?void 0:n.id]),b.useEffect(()=>{let c=!1;const S=async()=>{Ue(_=>({..._,loading:!0,error:""}));try{const _=await ze.getProviderConfig({agentId:Ge});if(c)return;Ue({loading:!1,error:"",configured:Object.fromEntries(["openai","azure_openai","gemini","claude","grok","bedrock"].map(je=>[je,ik(je,_.settings,_.secretStatus)]))})}catch(_){if(c)return;Ue(H=>({...H,loading:!1,error:_ instanceof Error?_.message:"Não foi possível verificar os provedores."}))}};return S(),window.addEventListener("canvas-flow-provider-config-updated",S),()=>{c=!0,window.removeEventListener("canvas-flow-provider-config-updated",S)}},[Ge]);const Fe=n==null?void 0:n.component,en=(Fe==null?void 0:Fe.type)==="mcp"&&Fe.mcpMode||"fields",Xn=(Fe==null?void 0:Fe.type)==="mcp"?String(Fe.mcpExternalUrl||"").trim():"",mo=(Fe==null?void 0:Fe.type)==="mcp"&&Fe.mcpExternalAuthMode||"none",ho=(Fe==null?void 0:Fe.type)==="mcp"&&Fe.mcpExternalOAuthConnectionScope||"agent",Ka=(Fe==null?void 0:Fe.type)==="mcp"&&Fe.mcpExternalTransport||"streamable_http",ri=mo!=="oauth"||(Le==null?void 0:Le.connected)===!0;b.useEffect(()=>{mn([]),Ko(""),Ao("")},[n==null?void 0:n.id,mo,ho,Ka,Xn,Fe==null?void 0:Fe.mcpExternalAuthHeaderName,Fe==null?void 0:Fe.mcpExternalAuthQueryParam,Fe==null?void 0:Fe.mcpExternalAuthSecret,Fe==null?void 0:Fe.mcpExternalHeadersJson]);const Qa=(Fe==null?void 0:Fe.type)==="flowRouter"?Fe.flowRouterRules||[]:[],Mn=(Fe==null?void 0:Fe.type)==="flowRouter"&&Fe.flowRouterFallbackAgentId||"",si=b.useMemo(()=>{const c=_=>String(_.agentId||_.name||"").trim(),S=new Map;return et.forEach(_=>S.set(c(_),_)),S.set(Ge,S.get(Ge)||{agentId:Ge,name:Ge,flowCount:s.length}),Qa.forEach(_=>{const H=String(_.targetAgentId||"").trim();H&&!S.has(H)&&S.set(H,{agentId:H,name:H,flowCount:0})}),Mn&&!S.has(Mn)&&S.set(Mn,{agentId:Mn,name:Mn,flowCount:0}),Array.from(S.values()).sort((_,H)=>_.name.localeCompare(H.name))},[Ge,et,Mn,Qa,s.length]),ol=b.useMemo(()=>{const c=new Set([Ge]);return Qa.forEach(S=>{const _=String(S.targetAgentId||"").trim();_&&c.add(_)}),Mn&&c.add(Mn),Array.from(c)},[Ge,Mn,Qa]),ql=ol.join("|");b.useEffect(()=>{we(c=>{const S=c[Ge]||[];return S.length===s.length&&S.every((H,je)=>{var ke;return H._id===((ke=s[je])==null?void 0:ke._id)})?c:{...c,[Ge]:s}}),Ye(c=>c[Ge]?{...c,[Ge]:!1}:c)},[Ge,s]),b.useEffect(()=>{if((Fe==null?void 0:Fe.type)!=="flowRouter")return;let c=!1;return xt(""),ze.listAgents().then(S=>{c||Te(S)}).catch(S=>{c||xt(S instanceof Error?S.message:"Não foi possível carregar os agentes.")}),()=>{c=!0}},[n==null?void 0:n.id,Fe==null?void 0:Fe.type]),b.useEffect(()=>{if((Fe==null?void 0:Fe.type)!=="flowRouter")return;let c=!1;const S=ol.filter(_=>_&&_!==Ge&&!re[_]);if(S.length)return S.forEach(_=>{Ye(H=>({...H,[_]:!0})),ze.listFlows(_).then(H=>{c||we(je=>({...je,[_]:H}))}).catch(()=>{c||we(H=>({...H,[_]:[]}))}).finally(()=>{c||Ye(H=>({...H,[_]:!1}))})}),()=>{c=!0}},[Ge,re,ol,ql,Fe==null?void 0:Fe.type]);const br=b.useCallback(c=>String(c||"").trim()||Ge,[Ge]),wr=b.useCallback(c=>{const S=br(c);return(re[S]||(S===Ge?s:[])).filter(H=>H._id!==l)},[Ge,l,re,s,br]),Hl=b.useCallback((c,S)=>{const _=String(c||"").trim();return _?wr(S).some(H=>H._id===_):!1},[wr]),an=b.useCallback((c,S)=>`Fluxo fora de ${br(S)} (${c.slice(0,8)}...)`,[br]),yt=b.useCallback(async c=>{if(!((Fe==null?void 0:Fe.type)==="mcp"&&en==="external"&&mo==="oauth"&&!!Xn))return tt(null),An(""),null;c!=null&&c.silent||Re(!0);try{const _=await ze.getMcpOAuthStatus({serverUrl:Xn,agentId:Ge,connectionScope:ho});return tt(_),An(_.authorizationUrl||""),_.error&&lt(_.error),_}catch(_){return tt(null),lt(_ instanceof Error?_.message:"Nao foi possivel verificar o OAuth MCP."),null}finally{c!=null&&c.silent||Re(!1)}},[Ge,mo,ho,Xn,en,Fe==null?void 0:Fe.type]);b.useEffect(()=>{if(lt(""),(Fe==null?void 0:Fe.type)!=="mcp"||en!=="external"||mo!=="oauth"||!Xn){tt(null);return}yt()},[yt,mo,Xn,en,n==null?void 0:n.id,Fe==null?void 0:Fe.type]),b.useEffect(()=>{if((Fe==null?void 0:Fe.type)!=="mcp"||en!=="external"||mo!=="oauth"||(Le==null?void 0:Le.status)!=="pending"||!Le.authorizationUrl)return;const c=window.setInterval(()=>{yt({silent:!0})},3e3);return()=>window.clearInterval(c)},[yt,Le==null?void 0:Le.authorizationUrl,Le==null?void 0:Le.status,mo,en,Fe==null?void 0:Fe.type]),b.useEffect(()=>{const c=S=>{const _=S.data;!_||_.type!=="canvas-flow-mcp-oauth"||(_.status==="ok"&&An(""),lt(_.status==="ok"?"OAuth MCP conectado. O no ja pode executar chamadas autenticadas.":"OAuth MCP retornou erro. Verifique a conexao e tente novamente."),yt({silent:!1}))};return window.addEventListener("message",c),()=>window.removeEventListener("message",c)},[yt]);const zt=(c,S)=>{const _=`canvas-flow-mcp-oauth-${Date.now()}`;return S&&!S.closed?(S.location.href=c,S.focus(),S):window.open(c,_,"width=720,height=760")},Vt=(c,S=!1,_)=>{if(tt(c),An(c.authorizationUrl||""),c.authorizationUrl){const H=zt(c.authorizationUrl,_);lt(H?S?"Cache OAuth limpo. Autorize o servidor MCP na janela aberta.":"Autorize o servidor MCP na janela aberta. Esta tela atualiza quando o callback voltar.":"O navegador bloqueou a janela de OAuth. Use Abrir autorizacao.")}else c.connected?(_&&!_.closed&&_.close(),lt(S?"OAuth MCP reconectado.":"OAuth MCP ja esta conectado.")):(_&&!_.closed&&_.close(),lt(c.error||"OAuth iniciado, mas o servidor nao retornou uma URL de autorizacao."))},Cn=async(c=!1)=>{if(!Xn||ft)return;const S=window.open("",`canvas-flow-mcp-oauth-${Date.now()}`,"width=720,height=760");Re(!0),An(""),lt(c?"Limpando cache OAuth deste escopo e URL...":"");try{c&&await ze.disconnectMcpOAuth({serverUrl:Xn,agentId:Ge,connectionScope:ho});const _=await ze.startMcpOAuth({serverUrl:Xn,agentId:Ge,connectionScope:ho,label:(n==null?void 0:n.title)||(n==null?void 0:n.id)||"MCP externo",scope:nk(Xn),clientName:"Canvas Flow MCP"});Vt(_,c,S)}catch(_){S&&!S.closed&&S.close(),lt(_ instanceof Error?_.message:c?"Nao foi possivel reconectar o OAuth MCP.":"Nao foi possivel iniciar o OAuth MCP.")}finally{Re(!1)}},ua=async()=>{await Cn(!1)},Vc=async()=>{await Cn(!0)},Wl=async()=>{if(!(!Xn||ft)){Re(!0),lt("");try{const c=await ze.disconnectMcpOAuth({serverUrl:Xn,agentId:Ge,connectionScope:ho});tt(c),An(""),lt("OAuth MCP desconectado deste escopo.")}catch(c){lt(c instanceof Error?c.message:"Nao foi possivel desconectar o OAuth MCP.")}finally{Re(!1)}}},al=st.configured[Kn],Ts=Cj(Kn),pa=c=>c&&c!=="auto"?c:Kn,Xo=(c,S)=>Au(Tp(pa(c)),S),Nr=async()=>{var H,je,ke,Je,pt,bt,tn,Un,ot;const c=P.trim();if(!c||Z||!r)return;const S=t.steps.find(ln=>ln.id===r.source),_=t.steps.find(ln=>ln.id===r.target);oe(!0),ye(""),M(!1);try{const ln=await ze.generateContextScript({scriptPurpose:"condition",instruction:c,currentCode:r.condition||"",model:t.model,llmProvider:t.llmProvider||"openai",temperature:.1,flowId:l,agentId:Ge,flowTitle:t.title,sourceTitle:(S==null?void 0:S.title)||r.source,targetTitle:(_==null?void 0:_.title)||r.target,sourceStep:S?{type:S.type,componentType:((H=S.component)==null?void 0:H.type)||"",responseName:S.responseName||((je=S.component)==null?void 0:je.responseName)||"",loopSlot:((ke=S.component)==null?void 0:ke.type)==="loop"?((Je=S.component)==null?void 0:Je.loopResponseName)||((pt=S.component)==null?void 0:pt.responseName)||S.responseName||"loop":"",loopCounterSlot:((bt=S.component)==null?void 0:bt.type)==="loop"?((tn=S.component)==null?void 0:tn.loopIndexResponseName)||"loopIndex":""}:void 0,targetStep:_?{type:_.type,componentType:((Un=_.component)==null?void 0:Un.type)||"",responseName:_.responseName||((ot=_.component)==null?void 0:ot.responseName)||""}:void 0,conditionValidationPath:r.conditionValidationPath||(yp(S)?`context.slots.${yp(S)}`:"context.slots.input"),conditionValidationType:r.conditionValidationType||"",availableSlots:Array.from(new Set(t.steps.map(wo=>yp(wo)).filter(Boolean)))});te(ln.code||""),fe(ln.explanation||"")}catch(ln){ye(ln instanceof Error?ln.message:"Nao foi possivel gerar a condicao.")}finally{oe(!1)}},Mt=async()=>{ae&&(await navigator.clipboard.writeText(ae),M(!0),window.setTimeout(()=>M(!1),1800))},ii=()=>{!ae||!r||f(r.id,{conditionMode:"js",condition:ae,conditionValidationType:void 0})};if(r){const c=t.steps.find(ot=>ot.id===r.source),S=t.steps.find(ot=>ot.id===r.target),_=yp(c),H=r.conditionValidationPath||(_?`context.slots.${_}`:"context.slots.input"),je=Array.from(new Set([_?`context.slots.${_}`:"","context.input","context.slots.input","context.slots.userInput",...t.steps.map(ot=>{const ln=yp(ot);return ln?`context.slots.${ln}`:""})].filter(Boolean))),ke=vk(H),Je=xk(r.condition||""),pt=!!(r.conditionValidationType&&ke&&Je.length&&!Je.includes(ke)),bt=["const value = context.slots.input;","if (!value) return false;","return String(value).trim() === 'ok';"].join(`
480
+ `),tn=Ok(r.condition||""),Un=(ot,ln)=>{const wo={conditionValidationPath:ot,conditionValidationType:ln||void 0};ln&&(wo.conditionMode="js",wo.condition=gk(ot,ln)),f(r.id,wo)};return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{className:"inspector edge-inspector",children:[e.jsxs("div",{className:"edge-summary",children:[e.jsxs("div",{className:"edge-summary-box",children:[e.jsx("span",{children:"Origem"}),e.jsx("strong",{children:(c==null?void 0:c.title)||r.source})]}),e.jsx(ih,{size:18}),e.jsxs("div",{className:"edge-summary-box",children:[e.jsx("span",{children:"Destino"}),e.jsx("strong",{children:(S==null?void 0:S.title)||r.target})]})]}),r.edgeRole==="manifest"&&e.jsx("div",{className:"filter-empty warning",children:"Ligacao de manifesto: exibida para mostrar chamada agentica entre nos, mas ignorada pelo runner como jump normal do fluxo."}),e.jsxs("label",{children:["Texto na linha",e.jsx("input",{value:r.label||"",onChange:ot=>f(r.id,{label:ot.target.value})})]}),e.jsxs("label",{children:["Modo da condição",e.jsxs("select",{value:r.conditionMode||"js",onChange:ot=>f(r.id,{conditionMode:ot.target.value}),children:[e.jsx("option",{value:"js",children:"Regra JS"}),e.jsx("option",{value:"llm",children:"Instrução LLM"})]})]}),(r.conditionMode||"js")==="js"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Validação rápida por tipo"})}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Saída/slot para validar",e.jsx("input",{list:`edge-output-paths-${r.id}`,value:H,placeholder:"context.slots.input",onChange:ot=>Un(ot.target.value,r.conditionValidationType||"")}),e.jsx("datalist",{id:`edge-output-paths-${r.id}`,children:je.map(ot=>e.jsx("option",{value:ot},ot))})]}),e.jsxs("label",{children:["Tipo esperado",e.jsxs("select",{value:r.conditionValidationType||"",onChange:ot=>Un(H,ot.target.value),children:[e.jsx("option",{value:"",children:"Sem atalho"}),jk.map(ot=>e.jsx("option",{value:ot.value,children:ot.label},ot.value))]})]})]}),e.jsx("div",{className:"filter-empty",children:"Ao escolher um tipo, o Canvas monta a Condição JS abaixo automaticamente. Você ainda pode editar o JS manualmente depois."}),pt&&e.jsxs("div",{className:"filter-empty warning",children:["Atenção: a condição atual lê ",Je.map(ot=>`context.slots.${ot}`).join(", "),", mas o atalho está configurado para context.slots.",ke,". Ajuste o JS ou escolha o tipo novamente para recriar a regra."]})]}),e.jsx(vf,{label:"Condição JS",language:"JavaScript",rows:8,error:tn,value:r.condition||"",placeholder:bt,onChange:ot=>f(r.id,{condition:ot}),onOpen:()=>U(!0)})]}),r.conditionMode==="llm"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Validação por LLM"})}),e.jsxs("label",{children:["Instrução LLM",e.jsx("textarea",{rows:5,value:r.condition||"",placeholder:"Ex: siga por esta ligação se o usuário quer falar com financeiro.",onChange:ot=>f(r.id,{condition:ot.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:r.conditionModel||"",onChange:ot=>f(r.id,{conditionModel:ot.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(ot=>e.jsx("option",{value:ot.value,children:ot.label},ot.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:r.conditionTemperature??0,onChange:ot=>f(r.id,{conditionTemperature:Number(ot.target.value)})})]})]}),e.jsxs("label",{children:["Slot do motivo",e.jsx("input",{value:r.conditionReasonResponseName||"",placeholder:`edge_${r.id}_reason`,onChange:ot=>f(r.id,{conditionReasonResponseName:ot.target.value})}),e.jsx(gf,{slotName:r.conditionReasonResponseName||`edge_${r.id}_reason`,resultName:r.id})]}),e.jsx("div",{className:"filter-empty",children:"Helper: a IA retorna verdadeiro/falso para esta ligação e salva o motivo nesse slot. Use quando a regra não couber bem em JS."})]})]}),L&&e.jsx("div",{className:"modal-backdrop context-code-backdrop",onMouseDown:()=>U(!1),children:e.jsxs("div",{className:"context-code-modal",onMouseDown:ot=>ot.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Editor JS da ligação"}),e.jsx("span",{children:"JavaScript"})]}),e.jsxs("button",{type:"button",onClick:()=>U(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"context-code-modal-body with-ai",children:[e.jsx(tv,{title:"Gerar condição JS com LLM",placeholder:"Ex: valide CPF, se for inválido retorne false; se for válido e a origem for crm, retorne true.",prompt:P,generatedCode:ae,generatedExplanation:X,error:ve,loading:Z,copied:se,onPromptChange:F,onGenerate:()=>void Nr(),onCopy:()=>void Mt(),onApply:ii}),e.jsx(Up,{language:"js",rows:30,fill:!0,error:tn,value:r.condition||"",placeholder:bt,onChange:ot=>f(r.id,{condition:ot})}),tn&&e.jsx("div",{className:"code-editor-error",children:tn})]})]})})]})}if(!n)return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{className:"inspector",children:[e.jsx("div",{className:"inspector-title",children:"Config Padrão"}),e.jsxs("label",{children:["Título",e.jsx("input",{value:t.title,onChange:c=>m({title:c.target.value})})]}),e.jsxs("label",{children:["responseName",e.jsx("input",{value:t.responseName,onChange:c=>m({responseName:c.target.value})})]}),e.jsxs("label",{children:["Modelo padrão",e.jsx("select",{value:t.model,onChange:c=>m({model:c.target.value}),children:Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))})]}),e.jsxs("label",{children:["Provedor LLM",e.jsxs("select",{value:Kn,onChange:c=>{const S=c.target.value;m({llmProvider:S,model:Od(S)||t.model})},children:[e.jsx("option",{value:"openai",children:Cu("openai",st)}),e.jsx("option",{value:"azure_openai",children:Cu("azure_openai",st)}),e.jsx("option",{value:"gemini",children:Cu("gemini",st)}),e.jsx("option",{value:"claude",children:Cu("claude",st)}),e.jsx("option",{value:"grok",children:Cu("grok",st)}),e.jsx("option",{value:"bedrock",children:Cu("bedrock",st)})]}),al===!1&&e.jsxs("span",{className:"field-hint provider-config-warning",children:[Ts," não está configurado em Provedores. Configure antes de executar chamadas LLM."]}),st.error&&e.jsx("span",{className:"field-hint provider-config-warning",children:"Não foi possível verificar os Provedores agora. O fluxo ainda será salvo com esta opção."})]}),e.jsxs("label",{children:["Canal",e.jsxs("select",{value:t.channel||"webWidget",onChange:c=>m({channel:c.target.value}),children:[e.jsx("option",{value:"webWidget",children:"Web widget"}),e.jsx("option",{value:"whatsapp",children:"WhatsApp"})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:t.isMainFlow===!0,onChange:c=>m({isMainFlow:c.target.checked})}),"Flow principal do agente"]}),e.jsx("div",{className:"filter-empty",children:"Use o flow principal como porta de entrada do WhatsApp. Dentro dele, adicione o componente Roteador de fluxo para decidir se a conversa pula para outro flow."}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Agent OS"})}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Agents.md"}),e.jsx(Gi,{onClick:()=>{var c,S;return Eo({fieldType:"agentsMd",targetType:"global-agent",title:"Gerar Agents.md",label:"Agent OS global",currentValue:((c=t.agentSpec)==null?void 0:c.agentsMd)||"",placeholder:"Ex: agente principal de atendimento para clínica. Deve coletar CPF e data de nascimento, consultar MCPs em ordem e nunca misturar regras técnicas na resposta ao cliente.",applyText:_=>m({agentSpec:{...t.agentSpec||{},agentsMd:_}})},(S=t.agentSpec)!=null&&S.agentsMd?"Melhore este Agents.md mantendo as responsabilidades separadas dos guardrails.":"")}})]}),e.jsx("textarea",{rows:5,value:((zs=t.agentSpec)==null?void 0:zs.agentsMd)||"",placeholder:`# Papel
481
+ Descreva objetivo, tom, limites, memoria e ferramentas permitidas.`,onChange:c=>m({agentSpec:{...t.agentSpec||{},agentsMd:c.target.value}})})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Guardrails"}),e.jsx(Gi,{onClick:()=>{var c,S;return Eo({fieldType:"guardrails",targetType:"global-agent",title:"Gerar Guardrails",label:"Limites globais do agente",currentValue:((c=t.agentSpec)==null?void 0:c.guardrails)||"",placeholder:"Ex: não inventar dados, não expor segredos, não executar ações sensíveis sem confirmação, responder apenas com dados retornados por MCP/API.",applyText:_=>m({agentSpec:{...t.agentSpec||{},guardrails:_}})},(S=t.agentSpec)!=null&&S.guardrails?"Melhore estes guardrails sem misturar papel do agente ou fluxo de negócio.":"")}})]}),e.jsx("textarea",{rows:4,value:((sn=t.agentSpec)==null?void 0:sn.guardrails)||"",placeholder:"Nunca invente dados. Peça aprovação antes de ações sensíveis. Não exponha segredos.",onChange:c=>m({agentSpec:{...t.agentSpec||{},guardrails:c.target.value}})})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Termos bloqueados"}),e.jsx(Gi,{onClick:()=>{var c,S;return Eo({fieldType:"blockedTerms",targetType:"global-agent",title:"Gerar termos bloqueados",label:"Tripwires globais",currentValue:(((c=t.agentSpec)==null?void 0:c.blockedTerms)||[]).join(", "),placeholder:"Ex: termos que devem bloquear exclusão destrutiva, vazamento de token, fraude, disparo em massa ou alteração sensível.",applyText:_=>m({agentSpec:{...t.agentSpec||{},blockedTerms:Xm(_)}})},(((S=t.agentSpec)==null?void 0:S.blockedTerms)||[]).length?"Melhore esta lista mantendo termos curtos separados por vírgula.":"")}})]}),e.jsx("input",{value:(((ac=t.agentSpec)==null?void 0:ac.blockedTerms)||[]).join(", "),placeholder:"excluir cliente, apagar banco, disparo em massa",onChange:c=>m({agentSpec:{...t.agentSpec||{},blockedTerms:Jx(c.target.value)}}),onBlur:c=>m({agentSpec:{...t.agentSpec||{},blockedTerms:Xm(c.target.value)}})})]}),e.jsxs("label",{children:["Skills JSON",e.jsx("textarea",{rows:3,value:JSON.stringify(((Ta=t.agentSpec)==null?void 0:Ta.skills)||[],null,2),onChange:c=>{var S;return m({agentSpec:{...t.agentSpec||{},skills:Ns(c.target.value,((S=t.agentSpec)==null?void 0:S.skills)||[])}})}})]}),e.jsxs("label",{children:["Subagents JSON",e.jsx("textarea",{rows:3,value:JSON.stringify(((rc=t.agentSpec)==null?void 0:rc.subagents)||[],null,2),onChange:c=>{var S;return m({agentSpec:{...t.agentSpec||{},subagents:Ns(c.target.value,((S=t.agentSpec)==null?void 0:S.subagents)||[])}})}})]}),e.jsxs("label",{children:["Rules JSON",e.jsx("textarea",{rows:3,value:JSON.stringify(((Ia=t.agentSpec)==null?void 0:Ia.rules)||[],null,2),onChange:c=>{var S;return m({agentSpec:{...t.agentSpec||{},rules:Ns(c.target.value,((S=t.agentSpec)==null?void 0:S.rules)||[])}})}})]})]}),e.jsxs("label",{children:["Turnos de memoria",e.jsx("input",{type:"number",min:0,value:t.turnHistoricMessages,onChange:c=>m({turnHistoricMessages:Number(c.target.value)||0})})]})]}),Ja()]});const at=c=>h(n.id,c),Bc=c=>at({component:c}),z=c=>{Bc({...n.component,...c})},Yn=Nj((Oo=n.component)==null?void 0:Oo.mcpExternalUrl),Ca=lh.find(c=>c.id===la),li=c=>{const S=lh.find(_=>_.id===c);S&&(mn([]),Ko(""),Ao(""),z({mcpExternalTransport:"streamable_http",mcpExternalUrl:S.serverUrl,mcpExternalOperation:"listTools",mcpExternalToolName:"",mcpExternalArgumentsJson:"{}",mcpExternalHeadersJson:"{}",mcpExternalAuthMode:S.authMode,mcpExternalOAuthConnectionScope:S.authMode==="oauth"?"user":"agent",mcpExternalAuthHeaderName:"Authorization",mcpExternalAuthQueryParam:"api_key",mcpExternalAuthSecret:"",mcpExternalResourceUri:"",mcpExternalPromptName:"",mcpExternalPromptArgumentsJson:"{}",mcpExternalTimeoutMs:3e4}),gr(S.id))},ci=async()=>{var c;if(!(((c=n.component)==null?void 0:c.type)!=="mcp"||!Xn||Wn)){Jo(!0),Ko(""),Ao("");try{const S=await ze.listExternalMcpTools({agentId:Ge,component:{...n.component}}),_=Array.isArray(S.tools)?S.tools:[];mn(_),Ao(_.length?`${_.length} tool(s) carregada(s). Selecione uma para preencher o schema e os argumentos.`:"O servidor respondeu sem tools disponiveis.")}catch(S){mn([]),Ko(S instanceof Error?S.message:"Nao foi possivel listar as tools deste MCP.")}finally{Jo(!1)}}},Ud=c=>{const S=sa.find(je=>je.name===c);if(!S)return;const _=S.inputSchema&&typeof S.inputSchema=="object"&&!Array.isArray(S.inputSchema)?S.inputSchema:{},H=S.outputSchema&&typeof S.outputSchema=="object"&&!Array.isArray(S.outputSchema)?S.outputSchema:void 0;z({mcpExternalOperation:"callTool",mcpExternalToolName:S.name,mcpExternalArgumentsJson:Kk(_),mcpInputSchema:av(_),...H&&Object.keys(H).length?{mcpOutputSchema:av(H)}:{}}),Ao(`Tool ${S.name} selecionada. Ajuste os argumentos ou desmarque a LLM para enviar somente os valores configurados.`)},Ht={agentsMd:((rr=(Lr=n.component)==null?void 0:Lr.agentSpec)==null?void 0:rr.agentsMd)||"",guardrails:((Pa=(gl=n.component)==null?void 0:gl.agentSpec)==null?void 0:Pa.guardrails)||"",blockedTerms:((Ee=(_a=n.component)==null?void 0:_a.agentSpec)==null?void 0:Ee.blockedTerms)||[]},Cr={rules:((Dn=(ja=(It=n.component)==null?void 0:It.agentSpec)==null?void 0:ja.rules)==null?void 0:Dn.length)||0,skills:((Kt=(fn=($n=n.component)==null?void 0:$n.agentSpec)==null?void 0:fn.skills)==null?void 0:Kt.length)||0,subagents:((ds=(Sn=(In=n.component)==null?void 0:In.agentSpec)==null?void 0:Sn.subagents)==null?void 0:ds.length)||0,mcpServers:((xl=(us=(Xc=n.component)==null?void 0:Xc.agentSpec)==null?void 0:us.mcpServers)==null?void 0:xl.length)||0},di=Object.values(Cr).some(c=>c>0),Pt=((Oa=n.component)==null?void 0:Oa.agentRole)||"simple",rl=((vl=n.component)==null?void 0:vl.agentUseWorkspaceCatalog)!==!1,Zn=t.agentSpec||{},Gl=((sc=n.component)==null?void 0:sc.agentManifest)||{},ma={rules:((ic=Zn.rules)==null?void 0:ic.length)||0,skills:((Zo=Zn.skills)==null?void 0:Zo.length)||0,subagents:((sr=Zn.subagents)==null?void 0:sr.length)||0,mcpServers:((ps=Zn.mcpServers)==null?void 0:ps.length)||0},eo=t.steps.filter(c=>{var S;return c.id!==n.id&&c.type==="component"&&((S=c.component)==null?void 0:S.type)==="openaiGen"&&c.component.agentRole==="subagent"}).map(c=>{var S,_,H;return{id:`canvas:${c.id}`,name:c.title||"Subagent do canvas",description:c.instruction||((_=(S=c.component)==null?void 0:S.agentSpec)==null?void 0:_.agentsMd)||"Subagent especializado criado como no do canvas.",path:`canvas://${c.id}`,source:"canvas",targetStepId:c.id,load:((H=c.component)==null?void 0:H.agentExecutionMode)==="auto_tools"?"auto":"on_demand"}}),es=c=>{var S,_,H,je;return String(((S=c.component)==null?void 0:S.mcpToolDescription)||c.instruction||((_=c.component)==null?void 0:_.mcpInstruction)||((H=c.component)==null?void 0:H.mcpExternalToolName)||((je=c.component)==null?void 0:je.mcpExternalUrl)||"Ferramenta MCP criada em um fluxo.").trim()},Sa=t.steps.filter(c=>{var S;return c.id!==n.id&&c.type==="component"&&((S=c.component)==null?void 0:S.type)==="mcp"}).map(c=>{var S,_,H,je,ke;return{id:`canvas-mcp:${c.id}`,name:c.title||((S=c.component)==null?void 0:S.mcpToolName)||"MCP do canvas",description:es(c),path:`canvas://${c.id}`,source:"canvas",targetStepId:c.id,inputSchema:((_=c.component)==null?void 0:_.mcpInputSchema)||{},outputSchema:((H=c.component)==null?void 0:H.mcpOutputSchema)||{},sideEffect:((je=c.component)==null?void 0:je.mcpMode)==="api"||((ke=c.component)==null?void 0:ke.mcpMode)==="external"?"external_action":"read",load:"on_demand"}}),to=s.filter(c=>String(c._id||"")!==String(l||"")).flatMap(c=>{var _;return(Array.isArray((_=c.config)==null?void 0:_.steps)?c.config.steps:[]).filter(H=>{var je;return H.type==="component"&&((je=H.component)==null?void 0:je.type)==="mcp"}).map(H=>{var je,ke,Je,pt,bt,tn;return{id:`flow-mcp:${c._id}:${H.id}`,name:`${c.name||((je=c.config)==null?void 0:je.title)||"Fluxo"} / ${H.title||((ke=H.component)==null?void 0:ke.mcpToolName)||"MCP"}`,description:es(H),path:`flow://${c._id}#${H.id}`,source:"flow",targetFlowId:c._id,targetStepId:H.id,targetAgentId:c.agentId||"",inputSchema:((Je=H.component)==null?void 0:Je.mcpInputSchema)||{},outputSchema:((pt=H.component)==null?void 0:pt.mcpOutputSchema)||{},sideEffect:((bt=H.component)==null?void 0:bt.mcpMode)==="api"||((tn=H.component)==null?void 0:tn.mcpMode)==="external"?"external_action":"read",load:"on_demand"}})}),Xa=c=>{z({agentSpec:{...Ht,...c}})},sl=c=>{var S,_;z({agentRole:c,agentUseWorkspaceCatalog:!0,agentSpec:{...Ht},agentExecutionMode:c==="orchestrator"||c==="subagent"?((S=n.component)==null?void 0:S.agentExecutionMode)==="hybrid"?"hybrid":"auto_tools":((_=n.component)==null?void 0:_.agentExecutionMode)||"flow"})},On=c=>Array.isArray(Gl[c])?Gl[c]||[]:[],Sr=ff.some(c=>On(c.key).length>0),ts=((vo=n.component)==null?void 0:vo.agentExecutionMode)||(Pt==="orchestrator"||Pt==="subagent"?"auto_tools":"flow"),ha=((Mi=n.component)==null?void 0:Mi.type)==="openaiGen"&&(Pt==="orchestrator"||Pt==="subagent")&&ts!=="flow",no=new Set(ff.flatMap(c=>On(c.key)).map(c=>String(c.targetStepId||c.stepId||c.nodeId||"").trim()).filter(Boolean)),oo=new Set([...eo.map(c=>String(c.targetStepId||"").trim()).filter(Boolean),...Sa.map(c=>String(c.targetStepId||"").trim()).filter(Boolean)]),Ya=Sr?no:oo,ka=new Set(t.steps.filter(c=>{var S;return c.type==="component"&&((S=c.component)==null?void 0:S.type)==="mcp"}).map(c=>c.id)),ns=new Map(t.steps.map(c=>[c.id,c.title||c.id])),Za=ha?t.edges.filter(c=>c.source===n.id&&Ya.has(c.target)):[],Jl=ha?t.edges.filter(c=>Ya.has(c.source)&&ka.has(c.target)):[],Rn=Array.from(new Map([...Za,...Jl].map(c=>[c.id,c])).values()),ui=Rn.slice(0,5).map(c=>`${ns.get(c.source)||c.source} -> ${ns.get(c.target)||c.target}`).join(", "),ao=(c,S,_,H)=>{const je=Ep(S,`${c}-${_+1}`);return{id:je,name:qx(S,je),description:Hx(S),path:String(S.path||"").trim(),source:S.source==="canvas"||S.source==="flow"?S.source:"workspace",targetStepId:String(S.targetStepId||"").trim()||void 0,targetFlowId:String(S.targetFlowId||S.flowId||"").trim()||void 0,targetAgentId:String(S.targetAgentId||S.agentId||"").trim()||void 0,inputSchema:S.inputSchema&&typeof S.inputSchema=="object"&&!Array.isArray(S.inputSchema)?S.inputSchema:void 0,outputSchema:S.outputSchema&&typeof S.outputSchema=="object"&&!Array.isArray(S.outputSchema)?S.outputSchema:void 0,sideEffect:String(S.sideEffect||"").trim()||void 0,requiresApproval:S.requiresApproval===!0?!0:void 0,maxRetries:Number.isFinite(Number(S.maxRetries))?Number(S.maxRetries):void 0,load:Ux(S.load||S.loadMode,H)}},Aa=(c,S)=>{var _;z({agentUseWorkspaceCatalog:!0,agentManifest:{...((_=n.component)==null?void 0:_.agentManifest)||{},[c]:S}})},Uc=(c,S,_)=>{const H=Ep(S,`${c}-${_+1}`);return On(c).find(je=>je.id===H)},qu=(c,S,_,H)=>{const je=Ep(S,`${c}-${_+1}`),ke=On(c);if(ke.some(Je=>Je.id===je)){Aa(c,ke.filter(Je=>Je.id!==je));return}Aa(c,[...ke,ao(c,S,_,H)])},kr=(c,S,_)=>{Aa(c,On(c).map(H=>H.id===S?{...H,load:_}:H))},qd=()=>{const c=ff.reduce((S,_)=>{const H=Array.isArray(Zn[_.key])?Zn[_.key]||[]:[];return S[_.key]=H.map((je,ke)=>ao(_.key,je,ke,_.fallbackLoad)),S},{});c.subagents=[...c.subagents||[],...eo.map((S,_)=>{var H;return ao("subagents",S,_+(((H=c.subagents)==null?void 0:H.length)||0),"auto")})],c.mcpServers=[...c.mcpServers||[],...Sa.map((S,_)=>{var H;return ao("mcpServers",S,_+(((H=c.mcpServers)==null?void 0:H.length)||0),"on_demand")}),...to.map((S,_)=>{var H;return ao("mcpServers",S,_+(((H=c.mcpServers)==null?void 0:H.length)||0),"on_demand")})],z({agentUseWorkspaceCatalog:!0,agentManifest:c})},os=()=>z({agentManifest:{}}),pi=[{id:"skills",label:"Skills",selected:On("skills").length,total:ma.skills},{id:"subagents",label:"Subagents",selected:On("subagents").length,total:ma.subagents+eo.length},{id:"rules",label:"Rules",selected:On("rules").length,total:ma.rules},{id:"mcp",label:"MCP",selected:On("mcpServers").length,total:ma.mcpServers+Sa.length+to.length}],qc=()=>{if(Gn==="skills"){Aa("skills",(Zn.skills||[]).map((H,je)=>ao("skills",H,je,"auto")));return}if(Gn==="subagents"){const H=(Zn.subagents||[]).map((ke,Je)=>ao("subagents",ke,Je,"auto")),je=eo.map((ke,Je)=>ao("subagents",ke,Je+H.length,"auto"));Aa("subagents",[...H,...je]);return}if(Gn==="rules"){Aa("rules",(Zn.rules||[]).map((H,je)=>ao("rules",H,je,"always")));return}const c=(Zn.mcpServers||[]).map((H,je)=>ao("mcpServers",H,je,"on_demand")),S=Sa.map((H,je)=>ao("mcpServers",H,je+c.length,"on_demand")),_=to.map((H,je)=>ao("mcpServers",H,je+c.length+S.length,"on_demand"));Aa("mcpServers",[...c,...S,..._])},Hu=()=>{if(Gn==="mcp"){Aa("mcpServers",[]);return}Aa(Gn,[])},il=(c,S,_=t.steps)=>_.map(H=>{if(H.id!==n.id||H.type!=="component"||!H.component)return H;const je=H.component.agentManifest||{},ke=Array.isArray(je[c])?je[c]||[]:[],Je=ke.some(pt=>pt.id===S.id);return{...H,component:{...H.component,agentUseWorkspaceCatalog:!0,agentManifest:{...je,[c]:Je?ke:[...ke,S]}}}}),Wu=()=>{var Je;const c=Ba.trim()||`Rule ${ma.rules+1}`,S=As.trim()||"Descreva a regra, quando ela deve ser aplicada e como ela redireciona o agente.",_=ok(c,`rule-${Date.now().toString(36)}`),H={id:`rule_${_}`,name:c,description:((Je=S.split(`
482
+ `).find(Boolean))==null?void 0:Je.slice(0,180))||c,instructions:S,load:"always",path:`.canvas-flow/rules/${_}.md`,enabled:!0},je=[...Zn.rules||[],H],ke=ao("rules",H,je.length-1,"always");m({agentSpec:{...t.agentSpec||{},rules:je},steps:il("rules",ke)}),qa("rules"),Ua(""),Qo("")},Mo=((Ls=n.component)==null?void 0:Ls.type)==="files"?n.component.filesUploaded||[]:[],Is=((Ro=n.component)==null?void 0:Ro.type)==="files"&&((n.component.filesResultMode||"context")==="llm"||(n.component.filesOperation||"read")!=="read"&&!String(n.component.filesContentTemplate||"").trim()),Ar=((Lt=n.component)==null?void 0:Lt.type)==="files"?Array.from(new Set(((_t=n.component.filesTemplateDocumentIds)!=null&&_t.length?n.component.filesTemplateDocumentIds:n.component.filesTemplateDocumentId?[n.component.filesTemplateDocumentId]:[]).map(c=>String(c||"").trim()).filter(Boolean))):[],Kl=Ar.length?Mo.filter(c=>Ar.includes(String(c.documentId||c.id||""))):Mo.length===1?Mo:[],Hc=Array.from(new Set(Kl.map(c=>{const S=String(c.filename||c.title||"").toLowerCase(),_=String(c.mimeType||"").toLowerCase();return S.endsWith(".docx")||_.includes("wordprocessingml")?"docx":S.endsWith(".xlsx")||_.includes("spreadsheetml")?"xlsx":""}).filter(Boolean))),Wt=((ea=n.component)==null?void 0:ea.type)==="files"&&(n.component.filesOperation||"read")==="edit"&&Hc.length===1?Hc[0]:"",Hd=Wt||((ir=n.component)==null?void 0:ir.filesOutputFormat)||"docx",fo=(c,S)=>{const _=String(c||"").trim()||`artefato.${S}`;return/\.[^./\\]+$/.test(_)?_.replace(/\.[^./\\]+$/,`.${S}`):`${_}.${S}`},mi=Wt?fo(((Ot=n.component)==null?void 0:Ot.filesOutputFilenameTemplate)||"",Wt):((Qt=n.component)==null?void 0:Qt.filesOutputFilenameTemplate)||`artefato.${Hd}`,as=((Ds=n.component)==null?void 0:Ds.type)==="files"&&(n.component.filesOperation||"read")==="edit"&&Mo.length>1&&Ar.length===0,Ql=c=>{if(!c)return;const S=Ar.includes(c)?Ar.filter(_=>_!==c):[...Ar,c];z({filesTemplateDocumentIds:S,filesTemplateDocumentId:S[0]||""})},hi=async c=>{var _;const S=Array.from(c.target.files||[]);if(c.target.value="",!(!S.length||((_=n.component)==null?void 0:_.type)!=="files")){vr(!0),yr("");try{const H=new FormData;S.forEach(pt=>H.append("arquivos",pt)),H.append("ocr",n.component.filesPreferOcr?"true":"false"),H.append("maxTextChars",String(n.component.filesMaxTextChars??6e4)),p&&H.append("agentId",p),l&&H.append("flowId",l);const je=await ze.extractFiles(H),Je=(Array.isArray(je.files)?je.files:[]).filter(pt=>pt.documentId||pt.text);if(!Je.length)throw new Error("Nao foi possivel armazenar os arquivos selecionados.");z({filesUploaded:[...Mo,...Je],filesSourceMode:"upload"})}catch(H){yr(H instanceof Error?H.message:"Nao foi possivel enviar os arquivos.")}finally{vr(!1)}}},Xl=async c=>{const S=c.documentId||c.id;if(S)try{const{blob:_,filename:H}=await ze.downloadDocument(S),je=document.createElement("a");je.href=URL.createObjectURL(_),je.download=H||c.filename||"arquivo",je.click(),URL.revokeObjectURL(je.href)}catch(_){yr(_ instanceof Error?_.message:"Nao foi possivel baixar o arquivo.")}},Wd=(c,S)=>{var ke;if(((ke=n.component)==null?void 0:ke.type)!=="files")return;const _=Mo.find((Je,pt)=>c?Je.id===c:pt===S),H=String((_==null?void 0:_.documentId)||(_==null?void 0:_.id)||""),je=Ar.filter(Je=>Je!==H);z({filesUploaded:Mo.filter((Je,pt)=>c?Je.id!==c:pt!==S),filesTemplateDocumentIds:je,filesTemplateDocumentId:je[0]||""})},er=(c,S,_,H)=>{const je=Array.isArray(_)?_:[];return e.jsxs("div",{className:"agent-manifest-picker",children:[e.jsxs("div",{className:"agent-manifest-picker-title",children:[e.jsx("strong",{children:S}),e.jsxs("span",{children:[On(c).length,"/",je.length]})]}),!je.length&&e.jsx("div",{className:"filter-empty",children:"Nenhum item disponivel para esta origem."}),e.jsx("div",{className:"agent-manifest-bubbles",children:je.map((ke,Je)=>{const pt=Ep(ke,`${c}-${Je+1}`),bt=qx(ke,pt),tn=Hx(ke),Un=Uc(c,ke,Je),ot=!!Un,ln=Ux((Un==null?void 0:Un.load)||ke.load||ke.loadMode,H);return e.jsxs("div",{className:`agent-manifest-bubble ${ot?"selected":""}`,children:[e.jsxs("button",{type:"button",onClick:()=>qu(c,ke,Je,H),children:[e.jsx("span",{children:bt}),tn&&e.jsx("small",{children:tn})]}),ot&&e.jsxs("select",{value:ln,onChange:wo=>kr(c,pt,wo.target.value),children:[e.jsx("option",{value:"always",children:"always"}),e.jsx("option",{value:"auto",children:"auto"}),e.jsx("option",{value:"on_demand",children:"on_demand"}),e.jsx("option",{value:"manual",children:"manual"})]})]},pt)})})]})},rs=()=>e.jsxs("div",{className:"agent-inline-create-card",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Nova rule para este agente"}),e.jsxs("button",{type:"button",onClick:Wu,children:[e.jsx(dn,{size:14})," Adicionar rule"]})]}),e.jsxs("label",{children:["Nome",e.jsx("input",{value:Ba,placeholder:"Seguranca de escrita",onChange:c=>Ua(c.target.value)})]}),e.jsxs("label",{children:["Instrucao",e.jsx("textarea",{rows:4,value:As,placeholder:"Sempre pedir aprovacao antes de criar, alterar ou excluir dados em sistemas externos.",onChange:c=>Qo(c.target.value)})]}),e.jsx("span",{className:"field-hint",children:"A rule criada entra no Agent Workspace e fica selecionada no manifesto deste orquestrador."})]}),ll=()=>Gn==="skills"?er("skills","Skills do Agent Workspace",Zn.skills,"auto"):Gn==="subagents"?e.jsxs(e.Fragment,{children:[er("subagents","Subagents do Agent Workspace",Zn.subagents,"auto"),er("subagents","Subagents do canvas",eo,"auto")]}):Gn==="rules"?e.jsxs(e.Fragment,{children:[rs(),er("rules","Rules",Zn.rules,"always")]}):e.jsxs(e.Fragment,{children:[er("mcpServers","MCP do Agent Workspace",Zn.mcpServers,"on_demand"),er("mcpServers","MCP do canvas atual",Sa,"on_demand"),er("mcpServers","MCP de fluxos salvos",to,"on_demand")]}),Gd=()=>{if(!n.component)return null;const c=n.component.ragUseAgentFilter!==!1;return e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Escopo dos vetores"})}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:c,onChange:S=>z({ragUseAgentFilter:S.target.checked})}),e.jsx("span",{children:"Filtrar vetores/documentos por agente"})]}),c&&e.jsxs("label",{children:["AgentId dos vetores/documentos",e.jsx("input",{value:n.component.ragAgentIdTemplate||"",placeholder:"{{context.agentId}} ou agent_id_manual",onChange:S=>z({ragAgentIdTemplate:S.target.value})})]}),e.jsx("div",{className:"filter-empty",children:"Vazio usa o agente atual. Informe outro agentId para buscar ou vetorizar documentos naquele agente. Desmarque para buscar sem filtro de agente."})]})},cl=c=>{var H;if(((H=n.component)==null?void 0:H.type)!=="mcp")return;const S=qk(c),_=String(S.responseName||n.component.responseName||n.responseName||"mcp");at({responseName:_,component:{...n.component,...S,responseName:_}})},ss=((yl=n.component)==null?void 0:yl.flowRouterRules)||[],dl=c=>z({flowRouterRules:c}),Er=(c,S)=>{dl(ss.map(_=>_.id===c?{..._,...S}:_))},Wc=()=>{dl([...ss,{id:hk(),label:`Regra ${ss.length+1}`,targetAgentId:Ge,targetFlowId:"",conditionMode:"llm",condition:"Roteie para este fluxo se a intenção do usuário combina com o tema.",conditionModel:"",conditionTemperature:0}])},mt=c=>{dl(ss.filter(S=>S.id!==c))},fi=((bn=n.component)==null?void 0:bn.contextMode)||"json",Ea=((so=n.component)==null?void 0:so.contextJson)||"{}",Mr=((Rt=n.component)==null?void 0:Rt.contextScript)||"",Jd=fi==="json"?Gr(Ea):"",Yl=fi==="js"?Wx(Mr):"",tr=T==="json"?Ea:Mr,is=T==="json"?Gr(tr):T==="js"?Wx(tr):"",Kd=T==="json"?"Editor JSON do Contexto":"Editor JS do Contexto",Fn=T==="json"?"JSON":"JavaScript",go=T==="json"?`{
483
+ "cliente": "{{context.slots.input}}",
484
+ "payload": {"origem": "web"}
485
+ }`:`const itens = context.slots.itens || [];
486
+ return {
487
+ total: itens.length,
488
+ nomes: itens.map((item) => item.nome)
489
+ };`,ro=c=>{if(T==="json"){z({contextJson:c});return}T==="js"&&z({contextScript:c})},Gc=async()=>{var S,_;const c=ee.trim();if(!(!c||ie)){G(!0),Q(""),Ce(!1);try{const H=await ze.generateContextScript({instruction:c,currentCode:Mr,model:((S=n.component)==null?void 0:S.contextLlmModel)||t.model,llmProvider:t.llmProvider||"openai",temperature:((_=n.component)==null?void 0:_.contextLlmTemperature)??.2,flowId:l,agentId:Ge,flowTitle:t.title,stepTitle:n.title});K(H.code||""),W(H.explanation||"")}catch(H){Q(H instanceof Error?H.message:"Nao foi possivel gerar o codigo.")}finally{G(!1)}}},Ps=async()=>{$&&(await navigator.clipboard.writeText($),Ce(!0),window.setTimeout(()=>Ce(!1),1800))},Zl=()=>{$&&z({contextScript:$})},ct=n.richMessage||{type:"buttons",text:n.instruction||"Escolha uma opcao:",footer:"",media:{url:"",fileName:"",mimeType:""},buttons:[],quickReplies:[],list:{buttonText:"Ver opções",sections:[]},carousel:{cards:[]},appointmentFlow:Nh,generation:{enabled:!1,prompt:"Gere opções objetivas em pt-BR com base no contexto da conversa e no texto principal.",model:"",maxItems:3}},Tn=c=>{at({richMessage:{...ct,...c}})},ls=ct.type==="image"||ct.type==="document",ul=ct.type!=="appointmentFlow"&&!ls,gi=ls?"Legenda":"Texto principal",Tr=ls?"Texto opcional enviado como legenda da mídia":"Texto enviado antes dos elementos interativos",_s=c=>{Tn({generation:{enabled:!1,prompt:"Gere opções objetivas em pt-BR com base no contexto da conversa e no texto principal.",maxItems:3,...ct.generation||{},...c}})},hn=ul&&((yo=ct.generation)==null?void 0:yo.enabled)===!0,To=Zx(ct.type),fa=((ta=n.component)==null?void 0:ta.extraFieldsFilterPerRound)||[],nr=((lc=n.component)==null?void 0:lc.extraFieldsFilterPerRoundLimits)||[],xi=Array.isArray((jl=n.component)==null?void 0:jl.ragConditionalRules)?n.component.ragConditionalRules:[],pl=Rk(((Dr=n.component)==null?void 0:Dr.extraFieldsFilter)||{},(jo=n.component)==null?void 0:jo.extraFieldsFilterRules),Ir=c=>{z({extraFieldsFilterRules:c,extraFieldsFilter:Fk(c)})},vi=((Ti=n.component)==null?void 0:Ti.cronExecutionLog)||[],yi=((cc=n.component)==null?void 0:cc.cronTimezone)||"America/Sao_Paulo",Yo=((ms=n.component)==null?void 0:ms.webhookMode)||"inbound",Os=((bl=n.component)==null?void 0:bl.webhookId)||n.id,ga=`${Lc}/api/canvas-flow/webhook/custom/${l||"<FLOW_ID_SALVO>"}/${Os||"<WEBHOOK_ID>"}`,Io=((dc=n.component)==null?void 0:dc.webhookAuthMode)||"none",ji=((hs=n.component)==null?void 0:hs.webhookHeaderName)||"x-canvas-flow-webhook-secret",bi=(($r=n.component)==null?void 0:$r.webhookQueryParam)||"secret",zn=((Yc=n.component)==null?void 0:Yc.webhookResponseMode)||"sync",wi=((uc=n.component)==null?void 0:uc.webhookCallbackAuthMode)||"none",ec=((fs=n.component)==null?void 0:fs.webhookCallbackHeaderName)||"x-canvas-flow-callback-secret",Ni=((Zc=n.component)==null?void 0:Zc.webhookListenerFireAndForget)!==!1,tc=lk({flowId:l,flowName:t.title,agentId:Ge,channel:t.channel||"webWidget",currentStepId:n.id,startMode:((Ra=n.component)==null?void 0:Ra.webhookStartMode)||"node"}),nc=ck(ga,Io,ji,bi,tc),Jc=dk(l,Os),oc=uk(l,Os),At=en,Xt=(($s=n.component)==null?void 0:$s.type)==="mcp"?Gr(n.component.mcpInputSchema||"{}"):"",Gt=((Vs=n.component)==null?void 0:Vs.type)==="mcp"?Gr(n.component.mcpOutputSchema||"{}"):"",Ci=((Ii=n.component)==null?void 0:Ii.type)==="mcp"?Gr(n.component.mcpApiHeadersJson||"{}"):"",ml=((pc=n.component)==null?void 0:pc.type)==="mcp"?Gr(n.component.mcpApiQueryJson||"{}"):"",Pr=((wl=n.component)==null?void 0:wl.type)==="mcp"?Gr(n.component.mcpApiBodyJson||"{}"):"",_r=((mc=n.component)==null?void 0:mc.type)==="mcp"?Gr(n.component.mcpApiRequestsJson||"[]"):"",Ma=((Bs=n.component)==null?void 0:Bs.type)==="mcp"?Gr(n.component.mcpExternalHeadersJson||"{}"):"",hl=((Fo=n.component)==null?void 0:Fo.type)==="mcp"?Gr(n.component.mcpExternalArgumentsJson||"{}"):"",Qd=((Vr=n.component)==null?void 0:Vr.type)==="mcp"?Gr(n.component.mcpExternalPromptArgumentsJson||"{}"):"",Si=((gs=n.component)==null?void 0:gs.type)==="agentPlan"?Gr(n.component.agentPlanJson||'{"plan": []}'):"",Tt=((Nl=n.component)==null?void 0:Nl.type)==="mcp"?yf(n.component.mcpInputSchema):[],ki=((zo=n.component)==null?void 0:zo.type)==="mcp"?yf(n.component.mcpOutputSchema):[],or=((Fa=n.component)==null?void 0:Fa.type)==="mcp"?Ns(n.component.mcpInputSchema||"{}",{}):{},Rs=At==="external"&&or&&typeof or=="object"&&!Array.isArray(or)?Tj(or):[],Kc=((Cl=n.component)==null?void 0:Cl.type)==="mcp"?n.component.mcpApiAllowLlmRequest!==!1:!0,jn=((Sl=n.component)==null?void 0:Sl.type)==="mcp"?(n.component.mcpApiCallMode||"single")!=="multi"&&Kc:!0,jt=((lr=n.component)==null?void 0:lr.type)==="mcp"?n.component.mcpApiMapResultWithLlm!==!1:!0,Po=((Br=n.component)==null?void 0:Br.type)==="mcp"?n.component.mcpExternalUseLlmArguments!==!1:!0,xa=((kl=n.component)==null?void 0:kl.type)==="mcp"?n.component.mcpExternalMapResultWithLlm!==!1:!0,va=((ed=n.component)==null?void 0:ed.type)==="mcp"&&(At==="fields"||At==="api"&&(jn||jt)||At==="external"&&(Po||xa)),Or=(c,S)=>{var je,ke;const _=c==="mcpInputSchema"?(je=n.component)==null?void 0:je.mcpInputSchema:(ke=n.component)==null?void 0:ke.mcpOutputSchema,H=S(yf(_));z({[c]:Jk(H)})},_o=c=>{Or(c,S=>[...S,Wk(S,c==="mcpInputSchema"?"entrada":"campo")])},Qc=(c,S,_)=>{Or(c,H=>H.map((je,ke)=>ke===S?{...je,..._}:je))},Fs=(c,S)=>{Or(c,_=>_.filter((H,je)=>je!==S))},Jt=((Vn=n.component)==null?void 0:Vn.mongoOperation)||"insertOne",Rr=wk.has(Jt),fl=Nk.has(Jt),Ln=Ck.has(Jt),Fr=Sk.has(Jt),cs=kk.has(Jt),xo=Ak.has(Jt),Ai=Ek.has(Jt),Xd=Mk.has(Jt),ya=Kx.has(Jt),zr=fl?"Ex: gere o documento de evento com intent, texto do usuário e dados do contexto.":Ln?"Ex: encontre o lead pelo email em context.slots.email e atualize o status para convertido.":"Ex: busque entradas do funil de ontem com intent PEDIR_PIZZA e ordene pelas mais recentes.",ar=async()=>{var S,_,H,je,ke,Je,pt,bt,tn,Un,ot,ln,wo,ud,pd,Yd,ba,wc;const c=Oe.trim();if(!(!c||ce)){O(!0),ht(""),kt(!1);try{const ys=await ze.generateMongoConfig({instruction:c,operation:Jt,collectionName:((S=n.component)==null?void 0:S.mongoCollectionName)||((_=n.component)==null?void 0:_.collectionName)||"flow_events",model:((H=n.component)==null?void 0:H.mongoLlmModel)||t.model,llmProvider:t.llmProvider||"openai",flowId:l,agentId:Ge,flowTitle:t.title,stepTitle:n.title,currentConfig:{filter:(je=n.component)==null?void 0:je.mongoFilter,sort:(ke=n.component)==null?void 0:ke.mongoSort,projection:(Je=n.component)==null?void 0:Je.mongoProjection,pipeline:(pt=n.component)==null?void 0:pt.mongoPipeline,document:(bt=n.component)==null?void 0:bt.mongoDocument,update:(tn=n.component)==null?void 0:tn.mongoUpdate,dateRange:{field:(Un=n.component)==null?void 0:Un.mongoDateField,start:(ot=n.component)==null?void 0:ot.mongoDateStart,end:(ln=n.component)==null?void 0:ln.mongoDateEnd,timezone:(wo=n.component)==null?void 0:wo.mongoDateTimezone},pagination:{mode:(ud=n.component)==null?void 0:ud.mongoPaginationMode,page:(pd=n.component)==null?void 0:pd.mongoPage,limit:(Yd=n.component)==null?void 0:Yd.mongoLimit,skip:(ba=n.component)==null?void 0:ba.mongoSkip,maxPages:(wc=n.component)==null?void 0:wc.mongoMaxPages}}});ge(ys)}catch(ys){ht(ys instanceof Error?ys.message:"Nao foi possivel gerar o MongoDB.")}finally{O(!1)}}},Ei=async()=>{const c=Jf(Ie);c&&(await navigator.clipboard.writeText(JSON.stringify(c,null,2)),kt(!0),window.setTimeout(()=>kt(!1),1800))},rn=()=>{const c=Jf(Ie);if(!c)return;const S={};if(Rr&&c.filter!==void 0&&(S.mongoFilter=Nu(c.filter)),cs&&c.sort!==void 0&&(S.mongoSort=Nu(c.sort)),Fr&&c.projection!==void 0&&(S.mongoProjection=Nu(c.projection)),Jt==="aggregate"&&c.pipeline!==void 0&&(S.mongoPipeline=Nu(c.pipeline,"[]")),fl){const je=Jt==="insertMany"&&c.documents!==void 0?c.documents:c.document??c.documents;je!==void 0&&(S.mongoDocument=Nu(je,Jt==="insertMany"?"[]":"{}"))}Ln&&c.update!==void 0&&(S.mongoUpdate=Nu(c.update));const _=c.dateRange&&typeof c.dateRange=="object"&&!Array.isArray(c.dateRange)?c.dateRange:null;_&&(_.field!==void 0&&(S.mongoDateField=String(_.field||"")),_.start!==void 0&&(S.mongoDateStart=String(_.start||"")),_.end!==void 0&&(S.mongoDateEnd=String(_.end||"")),_.timezone!==void 0&&(S.mongoDateTimezone=String(_.timezone||"America/Sao_Paulo")));const H=c.pagination&&typeof c.pagination=="object"&&!Array.isArray(c.pagination)?c.pagination:null;H&&((H.mode==="single"||H.mode==="all")&&(S.mongoPaginationMode=H.mode),H.page!==void 0&&(S.mongoPage=Math.max(1,Number(H.page)||1)),H.limit!==void 0&&(S.mongoLimit=Math.max(1,Math.min(1e3,Number(H.limit)||50))),H.skip!==void 0&&(S.mongoSkip=Math.max(0,Number(H.skip)||0)),H.maxPages!==void 0&&(S.mongoMaxPages=Math.max(1,Math.min(50,Number(H.maxPages)||1)))),z(S)};return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{className:"inspector",children:[e.jsx("div",{className:"inspector-title",children:n.title||n.type}),e.jsxs("div",{className:`start-step-panel ${t.startStepId===n.id?"active":""}`,children:[e.jsxs("div",{children:[e.jsx("strong",{children:t.startStepId===n.id?"Nó inicial":"Este nó não é o início"}),e.jsx("span",{children:t.startStepId===n.id?"O teste do fluxo começa por aqui.":"Use isto quando quiser testar este trecho ou um ciclo isolado."})]}),t.startStepId!==n.id&&e.jsx("button",{type:"button",onClick:()=>m({startStepId:n.id}),children:"Definir como início"})]}),e.jsxs("label",{children:["Título",e.jsx("input",{value:n.title,onChange:c=>at({title:c.target.value})})]}),e.jsx(Lk,{tags:n.tags||[],onChange:c=>at({tags:c})}),n.type!=="richMessage"&&n.type!=="condition"&&e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Instrucao"}),e.jsx(Gi,{onClick:()=>{var c,S,_,H,je,ke,Je,pt,bt;return Eo({fieldType:"instruction",targetType:((c=n.component)==null?void 0:c.type)==="openaiGen"||((S=n.component)==null?void 0:S.type)==="azureOpenAI"?"agent-node":((_=n.component)==null?void 0:_.type)==="mcp"?"mcp-node":"flow-node",title:"Gerar instrucao",label:n.title||n.type,currentValue:n.instruction||"",placeholder:((H=n.component)==null?void 0:H.type)==="mcp"?"Ex: descreva como este MCP deve usar CPF e data de nascimento do contexto, chamar a API e salvar apenas campos reais no output.":((je=n.component)==null?void 0:je.type)==="openaiGen"?"Ex: este agente deve perguntar um dado por vez, chamar MCPs apenas quando tiver campos obrigatorios e responder sem termos tecnicos.":"Ex: descreva o que este no deve fazer no fluxo, com entrada, saida esperada e limites.",applyText:tn=>at({instruction:tn}),stepContext:{id:n.id,title:n.title,type:n.type,componentType:((ke=n.component)==null?void 0:ke.type)||"",responseName:n.responseName||((Je=n.component)==null?void 0:Je.responseName)||""}},n.instruction?"Melhore esta instrucao mantendo-a separada de Agents.md, guardrails e termos bloqueados.":"",((pt=n.component)==null?void 0:pt.ragLlmModel)||((bt=n.component)==null?void 0:bt.mcpModel)||t.model)}})]}),e.jsx("textarea",{rows:4,value:n.instruction,onChange:c=>at({instruction:c.target.value})})]}),n.type!=="message"&&n.type!=="richMessage"&&n.type!=="end"&&n.type!=="group"&&e.jsxs("label",{children:["responseName",e.jsx("input",{value:n.responseName||"",onChange:c=>at({responseName:c.target.value})})]}),n.type==="input"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("label",{children:["Validação do input",e.jsxs("select",{value:n.inputValidationMode||"none",onChange:c=>at({inputValidationMode:c.target.value}),children:[e.jsx("option",{value:"none",children:"Sem validação"}),e.jsx("option",{value:"type",children:"Tipo do dado"}),e.jsx("option",{value:"regex",children:"Regex"}),e.jsx("option",{value:"llm",children:"Instrução LLM"})]})]}),n.inputValidationMode==="type"&&e.jsxs("label",{children:["Tipo esperado",e.jsx("select",{value:n.inputValidationType||"text",onChange:c=>at({inputValidationType:c.target.value}),children:yk.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))})]}),n.inputValidationMode==="regex"&&e.jsxs("label",{children:["Regex de validação",e.jsx("input",{value:n.inputValidationRegex||"",placeholder:"^[A-Z]{3}-\\\\d{4}$",onChange:c=>at({inputValidationRegex:c.target.value})})]}),n.inputValidationMode==="llm"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Validação por IA"})}),e.jsxs("label",{children:["Instrução LLM",e.jsx("textarea",{rows:5,value:n.inputValidationLlmInstruction||"",placeholder:"Ex: valide se o usuário informou uma data de nascimento real no formato brasileiro.",onChange:c=>at({inputValidationLlmInstruction:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:n.inputValidationLlmModel||"",onChange:c=>at({inputValidationLlmModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:n.inputValidationLlmTemperature??0,onChange:c=>at({inputValidationLlmTemperature:Number(c.target.value)})})]})]}),e.jsx("div",{className:"filter-empty",children:"A IA pode devolver um valor normalizado e slots extras. Se retornar inválido, o fluxo pergunta novamente."})]}),(n.inputValidationMode||"none")!=="none"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Mensagem quando inválido",e.jsx("input",{value:n.inputValidationErrorMessage||"",placeholder:"Valor inválido. Informe novamente.",onChange:c=>at({inputValidationErrorMessage:c.target.value})})]}),e.jsxs("label",{children:["Slot do motivo",e.jsx("input",{value:n.inputValidationReasonResponseName||"",placeholder:`${n.responseName||"input"}_validation_reason`,onChange:c=>at({inputValidationReasonResponseName:c.target.value})}),e.jsx(gf,{slotName:n.inputValidationReasonResponseName||`${n.responseName||"input"}_validation_reason`,resultName:n.responseName||"input"})]})]})]}),n.type==="message"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.messageUseLlm===!0,onChange:c=>at({messageUseLlm:c.target.checked})}),"Formatar resposta com LLM"]}),n.messageUseLlm===!0&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Formatacao por IA"})}),e.jsxs("div",{className:"filter-empty",children:["A instrução acima vira o prompt do modelo. Use variáveis como ","{{context.slots.item}}"," e a IA retorna somente a mensagem final para o usuário."]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:n.messageLlmModel||"",onChange:c=>at({messageLlmModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:n.messageLlmTemperature??.4,onChange:c=>at({messageLlmTemperature:Number(c.target.value)})})]})]}),e.jsxs("label",{children:["Salvar resposta em slot",e.jsx("input",{value:n.responseName||"",placeholder:"mensagem_formatada",onChange:c=>at({responseName:c.target.value})})]})]})]}),n.type==="group"&&e.jsx("div",{className:"filter-empty",children:"Selecione o encapsulador no canvas e arraste as bordas para redimensionar."}),n.type==="condition"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("label",{children:["Modo da condição",e.jsxs("select",{value:n.conditionMode||"js",onChange:c=>at({conditionMode:c.target.value}),children:[e.jsx("option",{value:"js",children:"Regra JS"}),e.jsx("option",{value:"llm",children:"Instrução LLM"})]})]}),(n.conditionMode||"js")==="js"&&e.jsxs("label",{children:["Condição JS",e.jsx("textarea",{rows:4,value:n.instruction||n.condition||"",placeholder:'context.slots.input === "ok"',onChange:c=>at({condition:c.target.value,instruction:c.target.value})})]}),n.conditionMode==="llm"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Decisao por LLM"})}),e.jsxs("label",{children:["Instrução LLM",e.jsx("textarea",{rows:5,value:n.instruction||n.condition||"",placeholder:"Ex: retorne verdadeiro se o usuário confirmou que quer continuar; caso contrário retorne falso.",onChange:c=>at({condition:c.target.value,instruction:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:n.conditionModel||"",onChange:c=>at({conditionModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:n.conditionTemperature??0,onChange:c=>at({conditionTemperature:Number(c.target.value)})})]})]}),e.jsxs("label",{children:["Slot do motivo",e.jsx("input",{value:n.conditionReasonResponseName||"",placeholder:`${n.responseName||"condition"}_reason`,onChange:c=>at({conditionReasonResponseName:c.target.value})}),e.jsx(gf,{slotName:n.conditionReasonResponseName||`${n.responseName||"condition"}_reason`,resultName:n.responseName||"condition"})]}),e.jsxs("div",{className:"filter-empty",children:["Helper: campo opcional para salvar a explicação do LLM sobre a decisão. Exemplo: se o responseName for condition, o true/false fica em context.slots.condition e o motivo fica em context.slots.",n.conditionReasonResponseName||`${n.responseName||"condition"}_reason`,"."]})]})]}),n.type==="richMessage"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("label",{children:["Tipo de mensagem",e.jsxs("select",{value:ct.type,onChange:c=>{const S=c.target.value,_=Zx(S);Tn({type:S,...S==="appointmentFlow"&&!ct.appointmentFlow?{appointmentFlow:Nh}:{},...(S==="image"||S==="document")&&!ct.media?{media:{url:"",fileName:"",mimeType:""}}:{},generation:ct.generation?{...ct.generation,enabled:S==="appointmentFlow"||S==="image"||S==="document"?!1:ct.generation.enabled,maxItems:Math.min(Number(ct.generation.maxItems||3),_)}:ct.generation})},children:[e.jsx("option",{value:"text",children:"Texto"}),e.jsx("option",{value:"buttons",children:"Botões"}),e.jsx("option",{value:"quickReplies",children:"Quick replies"}),e.jsx("option",{value:"list",children:"Lista"}),e.jsx("option",{value:"carousel",children:"Carrossel"}),e.jsx("option",{value:"image",children:"Imagem"}),e.jsx("option",{value:"document",children:"Documento"}),e.jsx("option",{value:"appointmentFlow",children:"WhatsApp Flow agendamento"})]})]}),ul&&e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:hn,onChange:c=>_s({enabled:c.target.checked})}),e.jsx("span",{children:"Gerar componentes com LLM"})]}),!hn&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:[gi,e.jsx("textarea",{rows:4,value:ct.text||"",placeholder:Tr,maxLength:qt.interactiveBody,onChange:c=>{Tn({text:c.target.value}),at({instruction:c.target.value})}})]}),e.jsxs("label",{children:["Rodapé",e.jsx("input",{value:ct.footer||"",placeholder:"Opcional",maxLength:qt.footer,onChange:c=>Tn({footer:c.target.value})})]}),e.jsxs("div",{className:"filter-empty",children:["WhatsApp: texto até ",qt.interactiveBody," caracteres, rodapé até ",qt.footer,", botões até ",qt.buttons,", lista até ",qt.listRows," itens."]}),ls&&e.jsxs("div",{className:"rich-editor-block nested",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:ct.type==="image"?"Imagem":"Documento"})}),e.jsxs("label",{children:["URL pública da ",ct.type==="image"?"imagem":"mídia",e.jsx("input",{value:((cr=ct.media)==null?void 0:cr.url)||"",placeholder:ct.type==="image"?"{{context.slots.imageUrl}}":"{{context.slots.documentUrl}}",maxLength:qt.imageUrl,onChange:c=>Tn({media:{...ct.media||{},url:c.target.value}})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[ct.type==="document"&&e.jsxs("label",{children:["Nome do arquivo",e.jsx("input",{value:((bo=ct.media)==null?void 0:bo.fileName)||"",placeholder:"arquivo.pdf",onChange:c=>Tn({media:{...ct.media||{},fileName:c.target.value}})})]}),e.jsxs("label",{children:["Tipo MIME",e.jsx("input",{value:((Lo=ct.media)==null?void 0:Lo.mimeType)||"",placeholder:ct.type==="image"?"image/jpeg":"application/pdf",onChange:c=>Tn({media:{...ct.media||{},mimeType:c.target.value}})})]})]}),e.jsxs("div",{className:"filter-empty",children:["Use uma URL HTTPS acessível pelo provedor. A API Oficial envia como ",ct.type==="image"?"imagem":"documento","; a Sinch recebe o payload de mídia equivalente."]})]})]}),hn&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Geração por IA"})}),e.jsxs("label",{children:["Prompt da geração",e.jsx("textarea",{rows:5,value:((Pi=ct.generation)==null?void 0:Pi.prompt)||"",placeholder:"Ex: gere opções de atendimento com base no interesse do usuário em context.slots.userInput",onChange:c=>_s({prompt:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo para gerar",e.jsxs("select",{value:((Us=ct.generation)==null?void 0:Us.model)||"",onChange:c=>_s({model:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Max itens",e.jsx("input",{type:"number",min:1,max:To,value:((Ur=ct.generation)==null?void 0:Ur.maxItems)??3,onChange:c=>{const S=Number(c.target.value)||1;_s({maxItems:Math.max(1,Math.min(S,To))})}})]})]}),e.jsxs("div",{className:"filter-empty",children:["O LLM gera texto e componentes respeitando o limite do canal. Para este tipo: até ",To," item(ns)."]})]}),!hn&&ct.type==="buttons"&&e.jsx(Zf,{title:"Botões",actions:ct.buttons||[],onChange:c=>Tn({buttons:c})}),!hn&&ct.type==="quickReplies"&&e.jsx(Zf,{title:"Quick replies",actions:ct.quickReplies||[],onChange:c=>Tn({quickReplies:c})}),!hn&&ct.type==="list"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Texto do botão da lista",e.jsx("input",{value:((hc=ct.list)==null?void 0:hc.buttonText)||"",placeholder:"Ver opções",maxLength:qt.listButton,onChange:c=>{var S;return Tn({list:{buttonText:c.target.value,sections:((S=ct.list)==null?void 0:S.sections)||[]}})}})]}),e.jsx(Dk,{sections:((xs=ct.list)==null?void 0:xs.sections)||[],onChange:c=>{var S;return Tn({list:{buttonText:((S=ct.list)==null?void 0:S.buttonText)||"Ver opções",sections:c}})}})]}),!hn&&ct.type==="carousel"&&e.jsx($k,{cards:((fc=ct.carousel)==null?void 0:fc.cards)||[],onChange:c=>Tn({carousel:{cards:c}})}),!hn&&ct.type==="appointmentFlow"&&e.jsx(Vk,{appointmentFlow:ct.appointmentFlow,flowConfig:t,currentFlowId:l,stepId:n.id,agentId:p,onChange:c=>Tn({appointmentFlow:c})})]}),n.type==="api"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:((Yt=(Al=n.api)==null?void 0:Al.generation)==null?void 0:Yt.enabled)===!0,onChange:c=>{var S,_,H,je,ke,Je,pt,bt,tn,Un;return at({api:{responseName:((S=n.api)==null?void 0:S.responseName)||n.responseName||"api",requests:((_=n.api)==null?void 0:_.requests)||[],generation:{enabled:c.target.checked,prompt:((je=(H=n.api)==null?void 0:H.generation)==null?void 0:je.prompt)||"Monte uma ou mais chamadas HTTP usando o contexto do fluxo.",model:((Je=(ke=n.api)==null?void 0:ke.generation)==null?void 0:Je.model)||"",temperature:((bt=(pt=n.api)==null?void 0:pt.generation)==null?void 0:bt.temperature)??.2,fallbackToManual:((Un=(tn=n.api)==null?void 0:tn.generation)==null?void 0:Un.fallbackToManual)??!0}}})}}),"Montar requests com LLM"]}),((gc=(El=n.api)==null?void 0:El.generation)==null?void 0:gc.enabled)===!0&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Geração da API por IA"})}),e.jsxs("label",{children:["Instrução para montar as chamadas",e.jsx("textarea",{rows:5,value:((Ml=(xc=n.api)==null?void 0:xc.generation)==null?void 0:Ml.prompt)||"",placeholder:"Ex: crie uma chamada POST para enviar context.slots.item para o CRM.",onChange:c=>{var S,_,H,je,ke,Je,pt,bt;return at({api:{responseName:((S=n.api)==null?void 0:S.responseName)||n.responseName||"api",requests:((_=n.api)==null?void 0:_.requests)||[],generation:{enabled:!0,prompt:c.target.value,model:((je=(H=n.api)==null?void 0:H.generation)==null?void 0:je.model)||"",temperature:((Je=(ke=n.api)==null?void 0:ke.generation)==null?void 0:Je.temperature)??.2,fallbackToManual:((bt=(pt=n.api)==null?void 0:pt.generation)==null?void 0:bt.fallbackToManual)??!0}}})}})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:((Do=(vc=n.api)==null?void 0:vc.generation)==null?void 0:Do.model)||"",onChange:c=>{var S,_,H,je,ke,Je,pt,bt;return at({api:{responseName:((S=n.api)==null?void 0:S.responseName)||n.responseName||"api",requests:((_=n.api)==null?void 0:_.requests)||[],generation:{enabled:!0,prompt:((je=(H=n.api)==null?void 0:H.generation)==null?void 0:je.prompt)||"",model:c.target.value,temperature:((Je=(ke=n.api)==null?void 0:ke.generation)==null?void 0:Je.temperature)??.2,fallbackToManual:((bt=(pt=n.api)==null?void 0:pt.generation)==null?void 0:bt.fallbackToManual)??!0}}})},children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:((gn=(Zt=n.api)==null?void 0:Zt.generation)==null?void 0:gn.temperature)??.2,onChange:c=>{var S,_,H,je,ke,Je,pt,bt;return at({api:{responseName:((S=n.api)==null?void 0:S.responseName)||n.responseName||"api",requests:((_=n.api)==null?void 0:_.requests)||[],generation:{enabled:!0,prompt:((je=(H=n.api)==null?void 0:H.generation)==null?void 0:je.prompt)||"",model:((Je=(ke=n.api)==null?void 0:ke.generation)==null?void 0:Je.model)||"",temperature:Number(c.target.value),fallbackToManual:((bt=(pt=n.api)==null?void 0:pt.generation)==null?void 0:bt.fallbackToManual)??!0}}})}})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:((vs=(wn=n.api)==null?void 0:wn.generation)==null?void 0:vs.fallbackToManual)!==!1,onChange:c=>{var S,_,H,je,ke,Je,pt,bt;return at({api:{responseName:((S=n.api)==null?void 0:S.responseName)||n.responseName||"api",requests:((_=n.api)==null?void 0:_.requests)||[],generation:{enabled:!0,prompt:((je=(H=n.api)==null?void 0:H.generation)==null?void 0:je.prompt)||"",model:((Je=(ke=n.api)==null?void 0:ke.generation)==null?void 0:Je.model)||"",temperature:((bt=(pt=n.api)==null?void 0:pt.generation)==null?void 0:bt.temperature)??.2,fallbackToManual:c.target.checked}}})}}),"Usar requests manuais como fallback"]}),e.jsx("div",{className:"filter-empty",children:"O LLM gera apenas o JSON do httpBatch, incluindo polling quando necessário. O executor ainda valida método, URL, headers, params e body antes de chamar."})]}),e.jsx(Ym,{requests:((qs=n.api)==null?void 0:qs.requests)||[],onChange:c=>{var S,_;return at({api:{responseName:((S=n.api)==null?void 0:S.responseName)||n.responseName||"api",requests:c,generation:(_=n.api)==null?void 0:_.generation}})}})]}),((_i=n.component)==null?void 0:_i.type)==="files"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Arquivos"})}),e.jsxs("div",{className:"filter-empty",children:["Envie arquivos ou informe uma URL. O original fica versionado no storage e o texto extraido fica em ",e.jsxs("code",{children:["context.slots.",n.component.responseName||n.responseName||"arquivos"]}),"."]}),e.jsxs("label",{children:["responseName",e.jsx("input",{value:n.component.responseName||n.responseName||"arquivos",onChange:c=>{const S=c.target.value;at({responseName:S,component:{...n.component,responseName:S}})}})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Fonte",e.jsxs("select",{value:n.component.filesSourceMode||"upload",onChange:c=>z({filesSourceMode:c.target.value}),children:[e.jsx("option",{value:"upload",children:"Upload no fluxo"}),e.jsx("option",{value:"url",children:"URL existente"})]})]}),e.jsxs("label",{children:["Operacao",e.jsxs("select",{value:n.component.filesOperation||"read",onChange:c=>z({filesOperation:c.target.value}),children:[e.jsx("option",{value:"read",children:"Ler documentos"}),e.jsx("option",{value:"generate",children:"Gerar novo arquivo ou consolidar"}),e.jsx("option",{value:"edit",children:"Editar template e criar versao"})]})]}),e.jsxs("label",{children:["Saida",e.jsxs("select",{value:n.component.filesResultMode||"context",onChange:c=>z({filesResultMode:c.target.value}),children:[e.jsx("option",{value:"context",children:"Salvar no contexto"}),e.jsx("option",{value:"llm",children:"LLM le e responde"})]})]})]})]}),(n.component.filesSourceMode||"upload")==="upload"&&e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Upload"})}),e.jsx("input",{type:"file",multiple:!0,accept:"*/*",onChange:hi,disabled:xr}),xr&&e.jsxs("span",{className:"field-hint",children:[e.jsx($t,{size:14,className:"spin"})," Armazenando e extraindo estrutura..."]}),Va&&e.jsx("span",{className:"field-error",children:Va}),Mo.length>0&&e.jsx("div",{className:"selected-files",children:Mo.map((c,S)=>{var _;return e.jsxs("span",{children:[c.filename||c.title||`arquivo-${S+1}`," (",c.textLength||((_=c.text)==null?void 0:_.length)||0," chars)",(c.documentId||c.id)&&e.jsx("button",{type:"button",onClick:()=>void Xl(c),"aria-label":"Baixar arquivo",children:e.jsx(jh,{size:12})}),e.jsx("button",{type:"button",onClick:()=>Wd(c.id,S),"aria-label":"Remover arquivo",children:e.jsx(St,{size:12})})]},c.id||`${c.filename}-${S}`)})})]}),(n.component.filesSourceMode||"upload")==="url"&&e.jsxs("label",{children:["URL do arquivo",e.jsx("input",{value:n.component.filesUrlTemplate||"",placeholder:"https://site.com/arquivo.pdf",onChange:c=>z({filesUrlTemplate:c.target.value})}),e.jsx("span",{className:"field-hint",children:"Use uma URL publica direta do arquivo. Para Google Drive, Docs ou Sheets privado, use um componente MCP separado."})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.filesPreferOcr===!0,onChange:c=>z({filesPreferOcr:c.target.checked})}),"Usar OCR quando necessario"]}),e.jsxs("label",{children:["Limite de texto por arquivo",e.jsx("input",{type:"number",min:0,step:1e3,value:n.component.filesMaxTextChars??6e4,onChange:c=>z({filesMaxTextChars:Number(c.target.value)||0})})]})]}),(n.component.filesOperation||"read")!=="read"&&e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Artefato gerado"})}),e.jsxs("div",{className:"filter-empty",children:["O componente cria um novo arquivo versionado. Em modo editar, use placeholders como ",e.jsx("code",{children:"{{cliente.nome}}"})," ou descreva alteracoes estruturais em DOCX e XLSX."]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.filesUseDocumentSkill!==!1,onChange:c=>z({filesUseDocumentSkill:c.target.checked})}),"Usar Docs Skill especialista"]}),e.jsxs("span",{className:"field-hint",children:["A skill planeja a entrega, escolhe secoes/tabelas, orienta a LLM e registra qualidade em ",e.jsx("code",{children:"documentSkill"})," no resultado."]}),as&&e.jsxs("div",{className:"filter-empty warning",children:["Ha varios arquivos enviados. Marque explicitamente qual deles e o template que sera editado. Para combinar o conteudo de todos em um novo documento, use Gerar novo arquivo ou consolidar.",e.jsx("button",{type:"button",onClick:()=>z({filesOperation:"generate"}),children:"Consolidar arquivos"})]}),(n.component.filesOperation||"read")==="generate"&&Mo.length>1&&e.jsx("div",{className:"filter-empty",children:"Os arquivos enviados serao lidos como referencias para gerar um novo documento consolidado no formato escolhido abaixo."}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Formato de saida",e.jsxs("select",{value:Hd,disabled:!!Wt,onChange:c=>{const S=c.target.value;z({filesOutputFormat:S,filesOutputFilenameTemplate:fo(n.component.filesOutputFilenameTemplate||"",S)})},children:[e.jsx("option",{value:"docx",children:"DOCX"}),e.jsx("option",{value:"xlsx",children:"XLSX"}),e.jsx("option",{value:"pdf",children:"PDF"}),e.jsx("option",{value:"csv",children:"CSV"}),e.jsx("option",{value:"json",children:"JSON"}),e.jsx("option",{value:"html",children:"HTML"}),e.jsx("option",{value:"md",children:"Markdown"}),e.jsx("option",{value:"txt",children:"TXT"})]}),Wt&&e.jsxs("span",{className:"field-hint",children:["Ao editar um template ",Wt.toUpperCase(),", o formato original e preservado. Para converter, use Gerar novo arquivo."]})]}),e.jsxs("label",{children:["Nome do novo arquivo",e.jsx("input",{value:mi,onChange:c=>z({filesOutputFilenameTemplate:c.target.value})})]})]}),(n.component.filesOperation||"read")==="edit"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"template-files-list",children:[e.jsx("strong",{children:"Documentos template"}),e.jsx("span",{className:"field-hint",children:"Marque um ou mais arquivos que serao editados. Quando houver varios uploads, a selecao e obrigatoria. Arquivos nao marcados continuam disponiveis como referencia para a LLM."}),!Mo.length&&e.jsx("div",{className:"filter-empty",children:"Envie ao menos um arquivo template."}),Mo.map((c,S)=>{const _=String(c.documentId||c.id||"");return e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:Ar.includes(_),disabled:!_,onChange:()=>Ql(_)}),c.filename||c.title||`arquivo-${S+1}`]},_||S)})]}),e.jsxs("label",{children:["Valores para placeholders",e.jsx("textarea",{rows:5,value:typeof n.component.filesTemplateValuesJson=="string"?n.component.filesTemplateValuesJson:JSON.stringify(n.component.filesTemplateValuesJson||{},null,2),placeholder:'{"cliente.nome":"{{context.slots.cliente.nome}}"}',onChange:c=>z({filesTemplateValuesJson:c.target.value})})]})]}),e.jsxs("label",{children:["Conteudo pronto avancado (opcional)",e.jsx("textarea",{rows:5,value:n.component.filesContentTemplate||"",placeholder:"Deixe vazio para a LLM interpretar a instrucao abaixo. Preencha somente quando ja tiver o conteudo final pronto.",onChange:c=>z({filesContentTemplate:c.target.value})})]}),String(n.component.filesContentTemplate||"").trim()&&e.jsxs("div",{className:"filter-empty warning",children:["Este campo esta preenchido: a LLM nao sera chamada para interpretar a alteracao. Use-o somente para conteudo final pronto.",e.jsx("button",{type:"button",onClick:()=>z({filesContentTemplate:""}),children:"Limpar e usar LLM"})]}),e.jsxs("label",{children:["Instrucao para gerar ou editar",e.jsx("textarea",{rows:5,value:n.component.filesGenerationPrompt||"",placeholder:"Leia os contratos conectados e gere a nova versao solicitada pelo usuario.",onChange:c=>z({filesGenerationPrompt:c.target.value})}),e.jsx("span",{className:"field-hint",children:"Em DOCX com varias tabelas, informe qual tabela alterar. Em XLSX, informe a aba e as celulas ou colunas desejadas, por exemplo: preencher os totais na aba Total acumulado."})]})]}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"LLM do componente Arquivos"})}),e.jsx("div",{className:"filter-empty",children:Is?"LLM ativa nesta etapa. Se nenhum modelo for escolhido, este componente usa o modelo configurado no fluxo.":"LLM inativa nesta configuracao. Ela sera usada ao selecionar LLM le e responde ou ao gerar/editar com Conteudo direto opcional vazio."}),Is&&e.jsxs("label",{children:["Pergunta para a LLM",e.jsx("input",{value:n.component.filesQuestionTemplate||"{{context.slots.userInput}}",onChange:c=>z({filesQuestionTemplate:c.target.value})})]}),Is&&(n.component.filesOperation||"read")==="read"&&e.jsxs("label",{children:["Prompt",e.jsx("textarea",{rows:4,value:n.component.filesLlmPrompt||"Leia os arquivos conectados e responda ao usuario em pt-BR de forma objetiva.",onChange:c=>z({filesLlmPrompt:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Provider",e.jsxs("select",{value:n.component.filesLlmProvider||"auto",onChange:c=>{const S=c.target.value;z({filesLlmProvider:S,filesLlmModel:S==="auto"?"":Od(S)})},children:[e.jsx("option",{value:"auto",children:"Auto/global"}),e.jsx("option",{value:"openai",children:"OpenAI"}),e.jsx("option",{value:"azure_openai",children:"Azure OpenAI"}),e.jsx("option",{value:"gemini",children:"Gemini"}),e.jsx("option",{value:"claude",children:"Claude"}),e.jsx("option",{value:"grok",children:"Grok"}),e.jsx("option",{value:"bedrock",children:"Bedrock"})]})]}),e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:n.component.filesLlmModel||"",onChange:c=>z({filesLlmModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Xo(n.component.filesLlmProvider||"auto",n.component.filesLlmModel).map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:n.component.filesLlmTemperature??.2,onChange:c=>z({filesLlmTemperature:Number(c.target.value)})})]})]})]}),e.jsxs("div",{className:"mcp-output-hint",children:["Proximo no: use ",e.jsx("code",{children:`{{context.slots.${n.component.responseName||n.responseName||"arquivos"}.text}}`}),", configure um Agente com docs em ",e.jsx("code",{children:`context.slots.${n.component.responseName||n.responseName||"arquivos"}.documents`})," ou envie ",e.jsx("code",{children:`{{context.slots.${n.component.responseName||n.responseName||"arquivos"}.artifact.downloadUrl}}`}),". Em edicao multipla, a lista completa fica em ",e.jsx("code",{children:`context.slots.${n.component.responseName||n.responseName||"arquivos"}.artifacts`}),"."]})]}),((td=n.component)==null?void 0:td.type)==="agentPlan"&&e.jsx("div",{className:"rich-message-editor",children:e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Agent Plan"})}),e.jsxs("div",{className:"filter-empty",children:["Coloque este no antes do Agente. Ele salva um contrato de planejamento em ",e.jsx("code",{children:"context.slots.agentPlan"}),"; o orquestrador usa isso para decidir quais skills, subagents e MCP chamar."]}),e.jsxs("label",{children:["responseName",e.jsx("input",{value:n.component.responseName||n.responseName||"agentPlan",onChange:c=>{const S=c.target.value;at({responseName:S,component:{...n.component,responseName:S}})}})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modo",e.jsxs("select",{value:n.component.agentPlanMode||"advisory",onChange:c=>z({agentPlanMode:c.target.value}),children:[e.jsx("option",{value:"advisory",children:"Orientar planejamento"}),e.jsx("option",{value:"manual",children:"Plano manual"})]})]}),e.jsxs("label",{children:["Limite de chamadas sugerido",e.jsx("input",{type:"number",min:1,max:10,value:n.component.agentPlanMaxToolCalls??3,onChange:c=>z({agentPlanMaxToolCalls:Number(c.target.value)||1})})]})]}),e.jsxs("label",{children:["Instrucoes do plano",e.jsx("textarea",{rows:6,value:n.component.agentPlanInstructions||"",placeholder:`Ex: quebre pedidos com varias intencoes em uma chamada por tool.
490
+ Ex: resumo deve usar somente skill de resumo; traducao deve usar somente skill de traducao.`,onChange:c=>z({agentPlanInstructions:c.target.value})})]}),(n.component.agentPlanMode||"advisory")==="manual"&&e.jsxs("label",{children:["Plano JSON",e.jsx("textarea",{rows:8,value:n.component.agentPlanJson||`{
491
+ "plan": []
492
+ }`,placeholder:`{
493
+ "plan": [
494
+ { "action": "tool", "toolId": "canvas:...", "arguments": { "text": "{{context.slots.userInput}}" }, "reason": "..." }
495
+ ]
496
+ }`,onChange:c=>z({agentPlanJson:c.target.value})}),Si&&e.jsx("span",{className:"field-error",children:Si})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.agentPlanClearAfterUse!==!1,onChange:c=>z({agentPlanClearAfterUse:c.target.checked})}),e.jsx("span",{children:"Consumir apenas pelo proximo Agente"})]}),e.jsxs("div",{className:"mcp-output-hint",children:["O trace continua mostrando ",e.jsx("code",{children:"agentPlan"}),", mas agora o criterio pode ser editado aqui no canvas."]})]})}),((Bn=n.component)==null?void 0:Bn.type)==="approval"&&e.jsx("div",{className:"rich-message-editor",children:e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Aprovação humana"})}),e.jsx("div",{className:"filter-empty",children:"Este nó pausa a execução antes de ações sensíveis. O fluxo continua quando o operador responder com a palavra de aprovação ou quando a API enviar approvals pelo payload."}),e.jsxs("label",{children:["responseName",e.jsx("input",{value:n.component.responseName||n.responseName||"aprovacao",onChange:c=>{const S=c.target.value;at({responseName:S,component:{...n.component,responseName:S}})}})]}),e.jsxs("label",{children:["Título da aprovação",e.jsx("input",{value:n.component.approvalTitle||"",placeholder:"Aprovar cancelamento",onChange:c=>z({approvalTitle:c.target.value})})]}),e.jsxs("label",{children:["Descrição para o operador",e.jsx("textarea",{rows:4,value:n.component.approvalDescription||n.instruction||"",placeholder:"Revise os dados do cliente, valor e motivo antes de continuar.",onChange:c=>z({approvalDescription:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Risco",e.jsxs("select",{value:n.component.approvalRisk||"medium",onChange:c=>z({approvalRisk:c.target.value}),children:[e.jsx("option",{value:"low",children:"Baixo"}),e.jsx("option",{value:"medium",children:"Médio"}),e.jsx("option",{value:"high",children:"Alto"}),e.jsx("option",{value:"critical",children:"Crítico"})]})]}),e.jsxs("label",{children:["Responsável",e.jsx("input",{value:n.component.approvalApproverHint||"",placeholder:"Supervisor de atendimento",onChange:c=>z({approvalApproverHint:c.target.value})})]})]}),e.jsxs("label",{children:["Escopos/permissões",e.jsx("input",{value:(n.component.approvalScopes||[]).join(", "),placeholder:"write, external_api, billing",onChange:c=>z({approvalScopes:c.target.value.split(",").map(S=>S.trim()).filter(Boolean)})}),e.jsxs("span",{className:"field-hint",children:["Use nomes curtos para auditoria, como ",e.jsx("code",{children:"write"}),", ",e.jsx("code",{children:"delete"}),", ",e.jsx("code",{children:"billing"})," ou ",e.jsx("code",{children:"whatsapp_broadcast"}),"."]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Palavra para aprovar",e.jsx("input",{value:n.component.approvalKeyword||"aprovar",onChange:c=>z({approvalKeyword:c.target.value})})]}),e.jsxs("label",{children:["Palavra para reprovar",e.jsx("input",{value:n.component.approvalRejectKeyword||"reprovar",onChange:c=>z({approvalRejectKeyword:c.target.value})})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.approvalRequireExplicitInput!==!1,onChange:c=>z({approvalRequireExplicitInput:c.target.checked})}),e.jsx("span",{children:"Exigir que a resposta venha quando este nó estiver aguardando input"})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Texto ao aprovar",e.jsx("input",{value:n.component.approvalApprovedText||"",placeholder:"Aprovado. Vou continuar.",onChange:c=>z({approvalApprovedText:c.target.value})})]}),e.jsxs("label",{children:["Texto ao reprovar",e.jsx("input",{value:n.component.approvalRejectedText||"",placeholder:"Reprovado. A ação foi bloqueada.",onChange:c=>z({approvalRejectedText:c.target.value})})]})]}),e.jsxs("div",{className:"mcp-output-hint",children:["Próximo nó: use ",e.jsx("code",{children:`{{context.slots.${n.component.responseName||n.responseName||"aprovacao"}.decision}}`})," para rotear aprovado/reprovado."]})]})}),((Tl=n.component)==null?void 0:Tl.type)==="mcp"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"MCP"})}),e.jsxs("div",{className:"filter-empty",children:["Escolha o tipo de integração, preencha os campos principais e use o output em ",e.jsxs("code",{children:["context.slots.",n.component.responseName||n.responseName||"mcp"]}),"."]}),e.jsx("div",{className:"mcp-mode-grid",children:Uk.map(c=>e.jsxs("button",{type:"button",className:At===c.value?"active":"",onClick:()=>z({mcpMode:c.value}),children:[e.jsx("strong",{children:c.title}),e.jsx("span",{children:c.description})]},c.value))}),e.jsxs("div",{className:"mcp-helper-row",children:[e.jsx("span",{children:At==="fields"?"Ideal para extrair e padronizar dados.":At==="api"?"Ideal quando o sistema externo ainda não é MCP.":"Ideal para servers MCP remotos já publicados."}),e.jsxs("button",{type:"button",onClick:()=>cl(At),children:[e.jsx($l,{size:14}),"Preencher exemplo"]})]}),e.jsxs("label",{children:["responseName",e.jsx("input",{value:n.component.responseName||n.responseName||"mcp",placeholder:"mcp",onChange:c=>{const S=c.target.value;at({responseName:S,component:{...n.component,responseName:S}})}})]}),e.jsxs("div",{className:"mcp-output-hint",children:["Próximo nó: use ",e.jsx("code",{children:`{{context.slots.${n.component.responseName||n.responseName||"mcp"}.output.campo}}`})]}),At==="api"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Uso de LLM neste no"})}),(n.component.mcpApiCallMode||"single")!=="multi"&&e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:Kc,onChange:c=>z({mcpApiAllowLlmRequest:c.target.checked})}),e.jsx("span",{children:"Permitir que a LLM monte metodo, params e body dentro da URL/base permitida"})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:jt,onChange:c=>z({mcpApiMapResultWithLlm:c.target.checked})}),e.jsx("span",{children:"Usar LLM para mapear resposta da API para o output schema"})]}),!jn&&!jt&&e.jsx("div",{className:"filter-empty",children:"LLM desligada neste no. Provider, modelo e temperatura ficam bloqueados; o Canvas usa a chamada fixa e copia campos compativeis com o output schema."})]}),e.jsxs("details",{className:"mcp-details",children:[e.jsx("summary",{children:"Modelo, provider e saída"}),!va&&e.jsx("div",{className:"filter-empty",children:"LLM desativada neste componente. Provider, modelo e temperatura so sao usados quando alguma opcao de LLM estiver ligada."}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Provedor LLM",e.jsxs("select",{disabled:!va,value:n.component.mcpLlmProvider||"auto",onChange:c=>{const S=c.target.value;z({mcpLlmProvider:S,mcpModel:S==="auto"?"":Od(S)})},children:[e.jsxs("option",{value:"auto",children:["Usar provedor do fluxo (",Ts,")"]}),e.jsx("option",{value:"openai",children:"OpenAI"}),e.jsx("option",{value:"azure_openai",children:"Azure OpenAI"}),e.jsx("option",{value:"gemini",children:"Gemini"}),e.jsx("option",{value:"claude",children:"Claude"}),e.jsx("option",{value:"grok",children:"Grok"}),e.jsx("option",{value:"bedrock",children:"Bedrock"})]})]}),e.jsxs("label",{children:["Modelo/deployment",e.jsxs("select",{disabled:!va,value:n.component.mcpModel||"",onChange:c=>z({mcpModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Xo(n.component.mcpLlmProvider||"auto",n.component.mcpModel).map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,disabled:!va,value:n.component.mcpTemperature??.1,onChange:c=>z({mcpTemperature:Number(c.target.value)})})]}),e.jsxs("label",{children:["Salvar output",e.jsxs("select",{value:n.component.mcpMergeOutputToSlots===!0?"merge":"responseName",onChange:c=>z({mcpMergeOutputToSlots:c.target.value==="merge"}),children:[e.jsx("option",{value:"responseName",children:"Só no responseName"}),e.jsx("option",{value:"merge",children:"Mesclar em context.slots"})]})]})]})]})]}),e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Contrato da ferramenta"})}),e.jsxs("label",{children:["Nome da ferramenta",e.jsx("input",{value:n.component.mcpToolName||"",placeholder:At==="external"?"buscar_cliente_mcp":At==="api"?"consultar_cliente":"montar_campos_cliente",onChange:c=>z({mcpToolName:c.target.value})})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Descricao da ferramenta"}),e.jsx(Gi,{onClick:()=>{var c,S,_,H,je;return Eo({fieldType:"mcpDescription",targetType:"mcp-node",title:"Gerar descricao do MCP",label:n.title||"MCP",currentValue:((c=n.component)==null?void 0:c.mcpToolDescription)||"",placeholder:"Ex: ferramenta que obtem detalhes de um agendamento usando agendamentoId e retorna unidade, horario e exames somente quando a API responder.",applyText:ke=>z({mcpToolDescription:ke}),stepContext:{id:n.id,title:n.title,mcpMode:At,inputSchema:((S=n.component)==null?void 0:S.mcpInputSchema)||"{}",outputSchema:((_=n.component)==null?void 0:_.mcpOutputSchema)||"{}"}},(H=n.component)!=null&&H.mcpToolDescription?"Melhore a descricao para o agente escolher esta ferramenta corretamente.":"",((je=n.component)==null?void 0:je.mcpModel)||t.model)}})]}),e.jsx("textarea",{rows:3,value:n.component.mcpToolDescription||"",placeholder:"Busca ou monta dados do cliente com base no CPF informado.",onChange:c=>z({mcpToolDescription:c.target.value})})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Instrucao"}),e.jsx(Gi,{onClick:()=>{var c,S,_,H,je,ke,Je,pt,bt;return Eo({fieldType:"mcpInstruction",targetType:"mcp-node",title:"Gerar instrucao do MCP",label:n.title||"MCP",currentValue:((c=n.component)==null?void 0:c.mcpInstruction)||n.instruction||"",placeholder:"Ex: use somente os campos do input schema, nao execute se faltar campo obrigatorio, chame a API configurada e normalize apenas dados reais no output schema.",applyText:tn=>z({mcpInstruction:tn}),stepContext:{id:n.id,title:n.title,mcpMode:At,toolName:((S=n.component)==null?void 0:S.mcpToolName)||"",description:((_=n.component)==null?void 0:_.mcpToolDescription)||"",inputSchema:((H=n.component)==null?void 0:H.mcpInputSchema)||"{}",outputSchema:((je=n.component)==null?void 0:je.mcpOutputSchema)||"{}",apiMethod:((ke=n.component)==null?void 0:ke.mcpApiMethod)||"",apiBaseUrl:((Je=n.component)==null?void 0:Je.mcpApiBaseUrl)||""}},(pt=n.component)!=null&&pt.mcpInstruction?"Melhore esta instrucao do MCP sem misturar prompt de atendimento ao cliente.":"",((bt=n.component)==null?void 0:bt.mcpModel)||t.model)}})]}),e.jsx("textarea",{rows:5,value:n.component.mcpInstruction||n.instruction||"",placeholder:"Use somente dados do contexto. Retorne os campos do schema de saída. Não invente dados sensíveis.",onChange:c=>z({mcpInstruction:c.target.value})})]}),e.jsxs("details",{className:"mcp-details",children:[e.jsx("summary",{children:"Campos de entrada e saída"}),e.jsx("div",{className:"filter-empty",children:'Preencha os campos em formulário. Use Opções para enum, separando os valores por vírgula. O JSON continua disponível em "JSON avançado".'}),e.jsx(iv,{title:"Entrada que a IA pode usar",helper:"Ex: cpf, idCliente, origem",fields:Tt,emptyLabel:"Nenhum campo de entrada definido. Adicione os campos que a IA deve receber do contexto.",onAdd:()=>_o("mcpInputSchema"),onUpdate:(c,S)=>Qc("mcpInputSchema",c,S),onRemove:c=>Fs("mcpInputSchema",c)}),e.jsx(iv,{title:"Saída para os próximos nós",helper:"Ex: encontrado, nome, maiorIdade",fields:ki,emptyLabel:"Nenhum campo de saída definido. Adicione os campos que os próximos nós precisam consumir.",onAdd:()=>_o("mcpOutputSchema"),onUpdate:(c,S)=>Qc("mcpOutputSchema",c,S),onRemove:c=>Fs("mcpOutputSchema",c)}),e.jsxs("details",{className:"mcp-details mcp-json-details",children:[e.jsx("summary",{children:"JSON avançado"}),e.jsxs("div",{className:"mcp-schema-json-grid",children:[e.jsxs("label",{children:["Input schema JSON",e.jsx("textarea",{rows:8,value:n.component.mcpInputSchema||"{}",placeholder:'{"type":"object","properties":{"cpf":{"type":"string"}},"required":["cpf"]}',onChange:c=>z({mcpInputSchema:c.target.value})}),Xt&&e.jsx("span",{className:"field-error",children:Xt})]}),e.jsxs("label",{children:["Output schema JSON",e.jsx("textarea",{rows:8,value:n.component.mcpOutputSchema||"{}",placeholder:'{"type":"object","properties":{"maiorIdade":{"type":"boolean"},"nome":{"type":"string"}}}',onChange:c=>z({mcpOutputSchema:c.target.value})}),Gt&&e.jsx("span",{className:"field-error",children:Gt})]})]})]})]})]}),At==="api"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"API externa"})}),e.jsx("div",{className:"filter-empty",children:"Informe a URL permitida. Se a LLM montar a request, o runtime aceita apenas URLs no mesmo host/base configurado e nunca inventa segredos."}),e.jsxs("div",{className:"mcp-output-hint",children:["Campos de entrada dizem quais dados a IA pode usar para montar argumentos, query ou body. Campos de saída dizem quais dados normalizados ela deve salvar em ",e.jsx("code",{children:`context.slots.${n.component.responseName||n.responseName||"mcp"}.output`})," para os próximos nós."]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modo de chamada",e.jsxs("select",{value:n.component.mcpApiCallMode||"single",onChange:c=>{var H;const S=c.target.value,_=rv(((H=n.component)==null?void 0:H.mcpApiRequestsJson)||"[]");z({mcpApiCallMode:S,...S==="multi"&&_.length===0?{mcpApiRequestsJson:sv([tg([],"cliente")])}:{}})},children:[e.jsx("option",{value:"single",children:"Uma API"}),e.jsx("option",{value:"multi",children:"Várias APIs"})]})]}),(n.component.mcpApiCallMode||"single")==="multi"&&e.jsxs("label",{children:["Execução",e.jsxs("select",{value:n.component.mcpApiExecutionMode||"sequential",onChange:c=>z({mcpApiExecutionMode:c.target.value}),children:[e.jsx("option",{value:"sequential",children:"Sequencial"}),e.jsx("option",{value:"parallel",children:"Paralela"})]})]})]}),(n.component.mcpApiCallMode||"single")==="multi"&&e.jsxs("div",{className:"mcp-api-multi-box",children:[e.jsxs("div",{className:"mcp-output-hint",children:["Sequencial: a próxima chamada pode usar ",e.jsx("code",{children:`{{context.slots.${((Oi=n.component)==null?void 0:Oi.responseName)||n.responseName||"mcp"}.resultsById.cliente.data.enderecoId}}`})]}),e.jsx(Qk,{requests:rv(n.component.mcpApiRequestsJson||"[]"),responseName:((Il=n.component)==null?void 0:Il.responseName)||n.responseName||"mcp",executionMode:n.component.mcpApiExecutionMode||"sequential",onChange:c=>z({mcpApiRequestsJson:sv(c)}),onUseExample:()=>{var c;return z({mcpApiRequestsJson:eg(((c=n.component)==null?void 0:c.responseName)||n.responseName||"mcp")})}}),_r&&e.jsx("span",{className:"field-error",children:_r}),e.jsxs("details",{className:"mcp-details",children:[e.jsx("summary",{children:"Autenticação comum para todas as chamadas"}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Autenticação",e.jsxs("select",{value:n.component.mcpApiAuthMode||"none",onChange:c=>z({mcpApiAuthMode:c.target.value}),children:[e.jsx("option",{value:"none",children:"Sem autenticação"}),e.jsx("option",{value:"bearer",children:"Bearer token"}),e.jsx("option",{value:"header",children:"Header secreto"}),e.jsx("option",{value:"query",children:"Query param"})]})]}),(n.component.mcpApiAuthMode==="header"||n.component.mcpApiAuthMode==="bearer")&&e.jsxs("label",{children:["Header",e.jsx("input",{value:n.component.mcpApiAuthHeaderName||"Authorization",onChange:c=>z({mcpApiAuthHeaderName:c.target.value})})]}),n.component.mcpApiAuthMode==="query"&&e.jsxs("label",{children:["Query param",e.jsx("input",{value:n.component.mcpApiAuthQueryParam||"api_key",onChange:c=>z({mcpApiAuthQueryParam:c.target.value})})]}),(n.component.mcpApiAuthMode||"none")!=="none"&&e.jsxs("label",{children:["Segredo",e.jsx("input",{type:"password",value:n.component.mcpApiAuthSecret||"",onChange:c=>z({mcpApiAuthSecret:c.target.value})})]})]})]}),e.jsxs("details",{className:"mcp-details mcp-json-details",children:[e.jsx("summary",{children:"JSON avançado das chamadas"}),e.jsx("textarea",{rows:10,value:n.component.mcpApiRequestsJson||"[]",placeholder:eg(n.component.responseName||n.responseName||"mcp"),onChange:c=>z({mcpApiRequestsJson:c.target.value})}),_r&&e.jsx("span",{className:"field-error",children:_r})]}),e.jsxs("div",{className:"filter-empty",children:["Cada item aceita ",e.jsx("code",{children:"id"}),", ",e.jsx("code",{children:"method"}),", ",e.jsx("code",{children:"url"}),", ",e.jsx("code",{children:"headers"}),", ",e.jsx("code",{children:"params"}),", ",e.jsx("code",{children:"body"})," e ",e.jsx("code",{children:"bodyType"}),". Em paralelo, as chamadas não dependem uma da outra; em sequencial, use o resultado anterior pelo id."]})]}),(n.component.mcpApiCallMode||"single")!=="multi"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Método padrão",e.jsxs("select",{value:n.component.mcpApiMethod||"POST",onChange:c=>z({mcpApiMethod:c.target.value}),children:[e.jsx("option",{value:"GET",children:"GET"}),e.jsx("option",{value:"POST",children:"POST"}),e.jsx("option",{value:"PUT",children:"PUT"}),e.jsx("option",{value:"PATCH",children:"PATCH"}),e.jsx("option",{value:"DELETE",children:"DELETE"})]})]}),e.jsxs("label",{children:["Autenticação",e.jsxs("select",{value:n.component.mcpApiAuthMode||"none",onChange:c=>z({mcpApiAuthMode:c.target.value}),children:[e.jsx("option",{value:"none",children:"Sem autenticação"}),e.jsx("option",{value:"bearer",children:"Bearer token"}),e.jsx("option",{value:"header",children:"Header secreto"}),e.jsx("option",{value:"query",children:"Query param"})]})]})]}),e.jsxs("label",{children:["URL/base permitida",e.jsx("input",{value:n.component.mcpApiBaseUrl||"",placeholder:"https://api.exemplo.com/clientes",onChange:c=>z({mcpApiBaseUrl:c.target.value})})]}),(n.component.mcpApiAuthMode||"none")!=="none"&&e.jsxs("div",{className:"inspector-grid-two",children:[(n.component.mcpApiAuthMode==="header"||n.component.mcpApiAuthMode==="bearer")&&e.jsxs("label",{children:["Header",e.jsx("input",{value:n.component.mcpApiAuthHeaderName||"Authorization",onChange:c=>z({mcpApiAuthHeaderName:c.target.value})})]}),n.component.mcpApiAuthMode==="query"&&e.jsxs("label",{children:["Query param",e.jsx("input",{value:n.component.mcpApiAuthQueryParam||"api_key",onChange:c=>z({mcpApiAuthQueryParam:c.target.value})})]}),e.jsxs("label",{children:["Segredo",e.jsx("input",{type:"password",value:n.component.mcpApiAuthSecret||"",onChange:c=>z({mcpApiAuthSecret:c.target.value})})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Headers JSON",e.jsx("textarea",{rows:6,value:n.component.mcpApiHeadersJson||"{}",placeholder:'{"x-tenant":"{{context.agentId}}"}',onChange:c=>z({mcpApiHeadersJson:c.target.value})}),Ci&&e.jsx("span",{className:"field-error",children:Ci})]}),e.jsxs("label",{children:["Query JSON",e.jsx("textarea",{rows:6,value:n.component.mcpApiQueryJson||"{}",placeholder:'{"cpf":"{{context.slots.cpf}}"}',onChange:c=>z({mcpApiQueryJson:c.target.value})}),ml&&e.jsx("span",{className:"field-error",children:ml})]})]}),e.jsxs("label",{children:["Body JSON padrão",e.jsx("textarea",{rows:7,value:n.component.mcpApiBodyJson||"{}",placeholder:'{"cpf":"{{context.slots.cpf}}","origem":"canvas-flow"}',onChange:c=>z({mcpApiBodyJson:c.target.value})}),Pr&&e.jsx("span",{className:"field-error",children:Pr})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.mcpApiExecute!==!1,onChange:c=>z({mcpApiExecute:c.target.checked})}),e.jsx("span",{children:"Executar chamada HTTP"})]})]}),At==="external"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Servidor MCP externo"})}),e.jsx("div",{className:"filter-empty",children:"Conecta em um servidor MCP remoto e executa tools, resources ou prompts. Streamable HTTP e SSE aceitam headers, OAuth e AWS SigV4; WebSocket deve usar auth por query."}),e.jsxs("div",{className:"mcp-remote-preset-picker",children:[e.jsxs("label",{children:["MCP remoto pre-configurado",e.jsxs("select",{value:"",onChange:c=>li(c.target.value),children:[e.jsx("option",{value:"",children:"Selecionar preset..."}),lh.map(c=>e.jsx("option",{value:c.id,children:c.label},c.id))]})]}),Yn&&e.jsxs("div",{className:"mcp-remote-preset-hint",children:[e.jsx("strong",{children:Yn.label}),e.jsx("span",{children:Yn.description}),e.jsxs("div",{className:"mcp-remote-preset-actions",children:[e.jsxs("button",{type:"button",onClick:()=>gr(Yn.id),children:[e.jsx(pj,{size:14}),"Ver permissoes e configuracao"]}),e.jsx("a",{href:Yn.docsUrl,target:"_blank",rel:"noreferrer",children:"Abrir documentacao oficial"})]})]}),e.jsx("span",{className:"field-hint",children:"O preset preenche a conexao. Use Listar tools abaixo e selecione a operacao remota desejada."})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Transporte",e.jsxs("select",{value:n.component.mcpExternalTransport||"streamable_http",onChange:c=>z({mcpExternalTransport:c.target.value}),children:[e.jsx("option",{value:"streamable_http",children:"Streamable HTTP"}),e.jsx("option",{value:"sse",children:"SSE legado"}),e.jsx("option",{value:"websocket",children:"WebSocket"})]})]}),e.jsxs("label",{children:["Operação",e.jsxs("select",{value:n.component.mcpExternalOperation||"callTool",onChange:c=>z({mcpExternalOperation:c.target.value}),children:[e.jsx("option",{value:"callTool",children:"Chamar tool"}),e.jsx("option",{value:"listTools",children:"Listar tools"}),e.jsx("option",{value:"readResource",children:"Ler resource"}),e.jsx("option",{value:"listResources",children:"Listar resources"}),e.jsx("option",{value:"getPrompt",children:"Buscar prompt"}),e.jsx("option",{value:"listPrompts",children:"Listar prompts"}),e.jsx("option",{value:"ping",children:"Ping"})]})]})]}),e.jsxs("label",{children:["URL do servidor MCP",e.jsx("input",{value:n.component.mcpExternalUrl||"",placeholder:"https://mcp.exemplo.com/mcp",onChange:c=>z({mcpExternalUrl:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Autenticação",e.jsxs("select",{value:n.component.mcpExternalAuthMode||"none",onChange:c=>z({mcpExternalAuthMode:c.target.value}),children:[e.jsx("option",{value:"none",children:"Sem autenticação"}),e.jsx("option",{value:"bearer",children:"Bearer token"}),e.jsx("option",{value:"header",children:"Header secreto"}),e.jsx("option",{value:"query",children:"Query param"}),e.jsx("option",{value:"oauth",children:"OAuth MCP"}),e.jsx("option",{value:"aws_sigv4",children:"AWS IAM SigV4 (backend)"})]})]}),e.jsxs("label",{children:["Timeout",e.jsx("input",{type:"number",min:1e3,max:3e5,step:1e3,value:n.component.mcpExternalTimeoutMs??3e4,onChange:c=>z({mcpExternalTimeoutMs:Number(c.target.value)})})]})]}),!["none","oauth","aws_sigv4"].includes(n.component.mcpExternalAuthMode||"none")&&e.jsxs("div",{className:"inspector-grid-two",children:[(n.component.mcpExternalAuthMode==="header"||n.component.mcpExternalAuthMode==="bearer")&&e.jsxs("label",{children:["Header",e.jsx("input",{value:n.component.mcpExternalAuthHeaderName||"Authorization",onChange:c=>z({mcpExternalAuthHeaderName:c.target.value})})]}),n.component.mcpExternalAuthMode==="query"&&e.jsxs("label",{children:["Query param",e.jsx("input",{value:n.component.mcpExternalAuthQueryParam||"api_key",onChange:c=>z({mcpExternalAuthQueryParam:c.target.value})})]}),e.jsxs("label",{children:["Segredo",e.jsx("input",{type:"password",value:n.component.mcpExternalAuthSecret||"",onChange:c=>z({mcpExternalAuthSecret:c.target.value})})]})]}),mo==="aws_sigv4"&&e.jsx("div",{className:"mcp-output-hint",children:"O backend assina cada chamada com AWS SigV4 usando a cadeia padrao de credenciais AWS. Configure IAM com privilegio minimo e use um node de aprovacao antes de tools que alteram infraestrutura."}),mo==="oauth"&&e.jsxs("div",{className:"mcp-output-hint mcp-oauth-panel",children:[e.jsxs("label",{children:["Escopo da conexao OAuth",e.jsxs("select",{value:ho,onChange:c=>z({mcpExternalOAuthConnectionScope:c.target.value}),children:[e.jsx("option",{value:"user",children:"Individual por usuario Canvas Flow"}),e.jsx("option",{value:"agent",children:"Compartilhada no agente"})]})]}),e.jsxs("div",{className:"mcp-oauth-status",children:[e.jsx("strong",{children:Le!=null&&Le.connected?"OAuth conectado":pn?"OAuth aguardando autorizacao":(Le==null?void 0:Le.status)==="error"?"OAuth com erro":"OAuth nao conectado"}),e.jsxs("span",{children:[ho==="user"?`A conexao fica salva somente para o usuario Canvas Flow autenticado, no agente ${Ge} e nesta URL MCP.`:`A conexao fica compartilhada com todos os operadores do agente ${Ge} para esta URL MCP.`," ","Os tokens nao entram no JSON do flow."]}),ho==="user"&&e.jsxs("span",{children:["O modo individual exige login Canvas Flow habilitado com ",e.jsx("code",{children:"CANVAS_FLOW_LOGIN=true"}),"."]}),((za=Yn==null?void 0:Yn.oauthScopes)==null?void 0:za.length)&&e.jsxs("span",{children:["Scopes solicitados ao reconectar: ",e.jsx("code",{children:Yn.oauthScopes.join(" ")})]}),Ka==="websocket"&&e.jsx("span",{className:"field-error",children:"OAuth MCP esta disponivel apenas em Streamable HTTP ou SSE neste runtime."}),pn&&e.jsx("span",{className:"field-error",children:"Conclua Abrir autorizacao antes de executar o node ou listar tools."}),(Le==null?void 0:Le.connected)&&Le.authenticatedAt&&e.jsxs("span",{children:["Autenticado em ",new Date(Le.authenticatedAt).toLocaleString()]}),(Le==null?void 0:Le.connected)&&Le.expiresAt&&e.jsxs("span",{children:["Token expira em ",new Date(Le.expiresAt).toLocaleString()]}),Pe&&e.jsx("span",{children:Pe})]}),e.jsxs("div",{className:"mcp-oauth-actions",children:[e.jsxs("button",{type:"button",className:"primary-button",onClick:()=>void ua(),disabled:!Xn||ft||Ka==="websocket",children:[ft?e.jsx($t,{size:14,className:"spin"}):e.jsx(Ap,{size:14}),Le!=null&&Le.connected?"Reconectar OAuth":"Conectar OAuth"]}),e.jsxs("button",{type:"button",onClick:()=>void Vc(),disabled:!Xn||ft||Ka==="websocket",children:[e.jsx(Ap,{size:14}),"Reconectar do zero"]}),pn&&e.jsx("button",{type:"button",onClick:()=>zt(pn),disabled:Ka==="websocket",children:"Abrir autorizacao"}),(Le==null?void 0:Le.connected)&&e.jsx("button",{type:"button",onClick:()=>void Wl(),disabled:ft,children:"Desconectar"})]})]}),e.jsxs("label",{children:["Headers JSON",e.jsx("textarea",{rows:5,value:n.component.mcpExternalHeadersJson||"{}",placeholder:'{"x-tenant":"{{context.agentId}}"}',onChange:c=>z({mcpExternalHeadersJson:c.target.value})}),Ma&&e.jsx("span",{className:"field-error",children:Ma})]}),e.jsxs("div",{className:"mcp-tool-discovery",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Descobrir tools agora"}),e.jsxs("button",{type:"button",onClick:()=>void ci(),disabled:!Xn||Wn||!ri,children:[Wn?e.jsx($t,{size:14,className:"spin"}):e.jsx(Ap,{size:14}),"Listar tools"]})]}),e.jsxs("div",{className:"filter-empty",children:["Consulta ",e.jsx("code",{children:"tools/list"})," durante a configuracao. Ao selecionar uma tool, o Canvas copia o input schema oficial e preenche os argumentos com variaveis de ",e.jsx("code",{children:"context.slots"}),"."]}),sa.length>0&&e.jsxs("label",{children:["Tool encontrada",e.jsxs("select",{value:sa.some(c=>{var S;return c.name===((S=n.component)==null?void 0:S.mcpExternalToolName)})?(io=n.component)==null?void 0:io.mcpExternalToolName:"",onChange:c=>Ud(c.target.value),children:[e.jsx("option",{value:"",children:"Selecionar tool..."}),sa.map(c=>e.jsx("option",{value:c.name,children:c.title||c.name},c.name))]})]}),ia&&e.jsx("span",{className:"field-hint",children:ia}),fr&&e.jsx("span",{className:"field-error",children:fr})]}),(n.component.mcpExternalOperation||"callTool")==="callTool"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Nome da tool",e.jsx("input",{value:n.component.mcpExternalToolName||"",placeholder:"buscar_cliente",onChange:c=>z({mcpExternalToolName:c.target.value})})]}),e.jsxs("label",{children:["Argumentos JSON",e.jsx("textarea",{rows:7,value:n.component.mcpExternalArgumentsJson||"{}",placeholder:'{"cpf":"{{context.slots.cpf}}"}',onChange:c=>z({mcpExternalArgumentsJson:c.target.value})}),hl&&e.jsx("span",{className:"field-error",children:hl})]}),Rs.length>0&&e.jsxs("div",{className:"mcp-argument-contract",children:[e.jsxs("div",{className:"mcp-argument-contract-header",children:[e.jsx("strong",{children:"Tipagem da entrada"}),e.jsx("span",{children:"schema oficial da tool"})]}),e.jsx("div",{className:"mcp-argument-contract-list",children:Rs.map(c=>e.jsxs("div",{className:"mcp-argument-contract-row",title:c.description||void 0,children:[e.jsx("code",{children:c.path}),e.jsx("span",{className:"mcp-type-badge",children:c.type}),e.jsx("span",{className:c.required?"mcp-required-badge":"mcp-optional-badge",children:c.required?"obrigatorio":"opcional"})]},c.path))}),e.jsxs("span",{className:"field-hint",children:["Arrays aparecem com colchetes no JSON preenchido. Valores vindos de ",e.jsx("code",{children:"context.slots"})," sao convertidos conforme essa tipagem."]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.mcpExternalUseLlmArguments!==!1,onChange:c=>z({mcpExternalUseLlmArguments:c.target.checked})}),e.jsx("span",{children:"Permitir que a LLM monte os argumentos da tool usando o schema da tool"})]}),e.jsx("div",{className:"filter-empty",children:"Desmarque para enviar somente o JSON configurado acima. Isso evita uma chamada de LLM quando o cliente ja possui os dados necessarios."})]}),(n.component.mcpExternalOperation||"callTool")==="readResource"&&e.jsxs("label",{children:["URI do resource",e.jsx("input",{value:n.component.mcpExternalResourceUri||"",placeholder:"file:///docs/contrato.md",onChange:c=>z({mcpExternalResourceUri:c.target.value})})]}),(n.component.mcpExternalOperation||"callTool")==="getPrompt"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Nome do prompt",e.jsx("input",{value:n.component.mcpExternalPromptName||"",placeholder:"resumo_cliente",onChange:c=>z({mcpExternalPromptName:c.target.value})})]}),e.jsxs("label",{children:["Argumentos do prompt JSON",e.jsx("textarea",{rows:6,value:n.component.mcpExternalPromptArgumentsJson||"{}",placeholder:'{"clienteId":"{{context.slots.clienteId}}"}',onChange:c=>z({mcpExternalPromptArgumentsJson:c.target.value})}),Qd&&e.jsx("span",{className:"field-error",children:Qd})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.mcpExternalUseLlmArguments!==!1,onChange:c=>z({mcpExternalUseLlmArguments:c.target.checked})}),e.jsx("span",{children:"Permitir que a LLM monte os argumentos do prompt"})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.mcpExternalMapResultWithLlm!==!1,onChange:c=>z({mcpExternalMapResultWithLlm:c.target.checked})}),e.jsx("span",{children:"Mapear resultado para o output schema quando o servidor não retornar structuredContent"})]}),e.jsx("div",{className:"filter-empty",children:"Desmarque tambem o mapeamento para evitar LLM na resposta. O retorno bruto continua disponivel no slot do node."})]})]}),((Ri=n.component)==null?void 0:Ri.type)==="webhook"&&e.jsxs("div",{className:"rich-message-editor",children:[e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Webhook"})}),e.jsxs("label",{children:["Modo",e.jsxs("select",{value:Yo,onChange:c=>z({webhookMode:c.target.value}),children:[e.jsx("option",{value:"inbound",children:"Entrada: receber dados"}),e.jsx("option",{value:"outbound",children:"Saída: postar dados"}),e.jsx("option",{value:"listener",children:"Ouvinte global: postar interações"})]})]}),e.jsxs("label",{children:["responseName",e.jsx("input",{value:n.component.responseName||n.responseName||"webhook",onChange:c=>{const S=c.target.value;at({responseName:S,api:n.api?{...n.api,responseName:S}:n.api,component:{...n.component,responseName:S}})}})]})]}),Yo==="inbound"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Entrada HTTP"})}),e.jsxs("label",{children:["Identificador da URL",e.jsx("input",{value:Os,onChange:c=>z({webhookId:c.target.value.trim()})})]}),e.jsxs("label",{children:["URL do webhook",e.jsxs("div",{className:"copy-field",children:[e.jsx("input",{value:ga,readOnly:!0}),e.jsx("button",{type:"button",onClick:()=>navigator.clipboard.writeText(ga),children:e.jsx(nn,{size:14})})]})]}),!l&&e.jsxs("div",{className:"filter-empty",children:["Salve o fluxo para trocar ",e.jsx("code",{children:"<FLOW_ID_SALVO>"})," pelo ID real da URL."]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Autenticação",e.jsxs("select",{value:Io,onChange:c=>z({webhookAuthMode:c.target.value}),children:[e.jsx("option",{value:"none",children:"Sem autenticação"}),e.jsx("option",{value:"bearer",children:"Bearer token"}),e.jsx("option",{value:"header",children:"Header secreto"}),e.jsx("option",{value:"query",children:"Query param"})]})]}),e.jsxs("label",{children:["Iniciar em",e.jsxs("select",{value:n.component.webhookStartMode||"node",onChange:c=>z({webhookStartMode:c.target.value}),children:[e.jsx("option",{value:"node",children:"Este nó"}),e.jsx("option",{value:"flow",children:"Início do fluxo"})]})]})]}),e.jsxs("label",{children:["Resposta do webhook",e.jsxs("select",{value:zn,onChange:c=>z({webhookResponseMode:c.target.value}),children:[e.jsx("option",{value:"sync",children:"Síncrona: esperar o fluxo terminar"}),e.jsx("option",{value:"async_job",children:"Assíncrona: retornar apenas jobId"}),e.jsx("option",{value:"async",children:"Assíncrona: retornar jobId e chamar URL de retorno"})]})]}),zn==="async_job"&&e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Retorno por jobId"})}),e.jsxs("div",{className:"filter-empty",children:["A chamada inicial retorna um ",e.jsx("code",{children:"jobId"})," e não envia callback. Com SQS habilitado, consulte depois em ",e.jsxs("code",{children:["GET ",Lc,"/api/canvas-flow/sqs/jobs/<jobId>"]}),"."]}),e.jsxs("div",{className:"filter-empty",children:["Se o job ainda não terminou, a consulta retorna ",e.jsx("code",{children:'status: "queued"'})," ou ",e.jsx("code",{children:'status: "running"'})," sem ",e.jsx("code",{children:"result"}),". Consulte novamente com backoff até receber ",e.jsx("code",{children:'status: "completed"'})," ou ",e.jsx("code",{children:'status: "failed"'}),"."]}),e.jsx("div",{className:"filter-empty",children:"Use este modo quando o sistema externo recupera os resultados em lote. Configure o TTL dos jobs para maior que a janela de recuperação."})]}),zn==="async"&&e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Retorno assíncrono"})}),e.jsxs("label",{children:["URL de retorno",e.jsx("input",{value:n.component.webhookCallbackUrl||"",placeholder:"https://meusistema.com/canvas-flow/callback",onChange:c=>z({webhookCallbackUrl:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Auth do retorno",e.jsxs("select",{value:wi,onChange:c=>z({webhookCallbackAuthMode:c.target.value}),children:[e.jsx("option",{value:"none",children:"Sem autenticação"}),e.jsx("option",{value:"bearer",children:"Bearer token"}),e.jsx("option",{value:"header",children:"Header secreto"})]})]}),wi==="header"&&e.jsxs("label",{children:["Header",e.jsx("input",{value:ec,onChange:c=>z({webhookCallbackHeaderName:c.target.value})})]})]}),wi!=="none"&&e.jsxs("label",{children:["Segredo do retorno",e.jsx("input",{type:"password",value:n.component.webhookCallbackSecret||"",placeholder:"Segredo enviado no callback",onChange:c=>z({webhookCallbackSecret:c.target.value})})]}),e.jsxs("div",{className:"filter-empty",children:["A chamada inicial retorna um ",e.jsx("code",{children:"jobId"}),". Quando o fluxo terminar, o Canvas Flow faz ",e.jsx("code",{children:"POST"})," nesta URL com o resultado."]}),e.jsxs("div",{className:"filter-empty",children:["Com SQS habilitado, o resultado também pode ser consultado por ",e.jsxs("code",{children:["GET ",Lc,"/api/canvas-flow/sqs/jobs/<jobId>"]}),"."]}),e.jsxs("div",{className:"filter-empty",children:["Enquanto não estiver pronto, esse endpoint retorna ",e.jsx("code",{children:"queued"})," ou ",e.jsx("code",{children:"running"})," sem ",e.jsx("code",{children:"result"}),". Quando terminar, retorna ",e.jsx("code",{children:"completed"})," com ",e.jsx("code",{children:"result"}),", ou ",e.jsx("code",{children:"failed"})," com ",e.jsx("code",{children:"error"}),"."]})]}),Io!=="none"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Segredo",e.jsx("input",{type:"password",value:n.component.webhookSecret||"",placeholder:"Segredo usado pelo sistema externo",onChange:c=>z({webhookSecret:c.target.value})})]}),Io==="header"&&e.jsxs("label",{children:["Nome do header",e.jsx("input",{value:n.component.webhookHeaderName||"x-canvas-flow-webhook-secret",onChange:c=>z({webhookHeaderName:c.target.value})})]}),Io==="query"&&e.jsxs("label",{children:["Query param",e.jsx("input",{value:n.component.webhookQueryParam||"secret",onChange:c=>z({webhookQueryParam:c.target.value})})]}),!n.component.webhookSecret&&e.jsx("div",{className:"filter-empty",children:"Configure um segredo para o endpoint aceitar chamadas externas neste modo."})]}),Io==="none"&&e.jsx("div",{className:"filter-empty",children:"Sem autenticação deixa esta URL pública. Use apenas quando o endpoint estiver protegido por outra camada."}),e.jsxs("div",{className:"filter-empty",children:["O payload recebido fica em ",e.jsxs("code",{children:["context.slots.",n.component.responseName||n.responseName||"webhook"]})," e também em ",e.jsx("code",{children:"context.slots.webhook"}),"."]}),e.jsxs("div",{className:"api-doc-section webhook-contract",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"Contrato de entrada"}),e.jsxs("button",{type:"button",onClick:()=>navigator.clipboard.writeText(nc),children:[e.jsx(nn,{size:14}),"Copiar cURL"]})]}),e.jsxs("div",{className:"api-endpoint",children:[e.jsx("span",{children:"Método"}),e.jsx("code",{children:"POST"})]}),e.jsxs("div",{className:"api-endpoint",children:[e.jsx("span",{children:"URL"}),e.jsx("code",{children:ga})]}),e.jsxs("div",{className:"filter-empty",children:["Envie ",e.jsx("code",{children:"Content-Type: application/json"}),". O campo ",e.jsx("code",{children:"text"})," vira a entrada principal; ",e.jsx("code",{children:"slots"})," é mesclado em ",e.jsx("code",{children:"context.slots"}),". Para continuar uma conversa, reenvie o ",e.jsx("code",{children:"conversationId"})," e o ",e.jsx("code",{children:"currentStepId"})," retornados na chamada anterior. Sem ",e.jsx("code",{children:"currentStepId"}),", o ",e.jsx("code",{children:"text"})," abre a interação, mas não responde automaticamente inputs que aparecerem depois no mesmo fluxo."]}),Io==="bearer"&&e.jsxs("div",{className:"api-endpoint",children:[e.jsx("span",{children:"Auth"}),e.jsx("code",{children:"Authorization: Bearer <SEGREDO>"})]}),Io==="header"&&e.jsxs("div",{className:"api-endpoint",children:[e.jsx("span",{children:"Auth"}),e.jsxs("code",{children:[ji,": <SEGREDO>"]})]}),Io==="query"&&e.jsxs("div",{className:"api-endpoint",children:[e.jsx("span",{children:"Auth"}),e.jsxs("code",{children:["?",bi,"=<SEGREDO>"]})]}),e.jsxs("label",{children:["Body JSON esperado",e.jsx("textarea",{rows:7,value:tc,readOnly:!0})]}),e.jsxs("label",{children:["Exemplo cURL",e.jsx("textarea",{rows:9,value:nc,readOnly:!0})]}),(zn==="async"||zn==="async_job")&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Resposta imediata no modo assíncrono",e.jsx("textarea",{rows:7,value:Jc,readOnly:!0})]}),zn==="async"&&e.jsxs("label",{children:["POST enviado para a URL de retorno",e.jsx("textarea",{rows:10,value:oc,readOnly:!0})]})]})]})]}),Yo==="outbound"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Saída HTTP"})}),e.jsxs("div",{className:"filter-empty",children:["Configure uma ou mais chamadas para postar dados do fluxo. Use templates como ",e.jsx("code",{children:"{{context.slots.cpf}}"})," no body, headers ou URL."]}),e.jsx(Ym,{requests:((yc=n.api)==null?void 0:yc.requests)||[],onChange:c=>{var S,_;return at({api:{responseName:((S=n.component)==null?void 0:S.responseName)||n.responseName||"webhook",requests:c,generation:(_=n.api)==null?void 0:_.generation}})}})]}),Yo==="listener"&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Ouvinte global"})}),e.jsx("div",{className:"filter-empty",children:"Este webhook não precisa estar conectado em nenhum nó. A cada interação do cliente, o Canvas Flow dispara as chamadas abaixo e mantém o fluxo conversacional seguindo pelo caminho normal."}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:Ni,onChange:c=>z({webhookListenerFireAndForget:c.target.checked})}),"Não bloquear a resposta do usuário enquanto posta no webhook"]}),e.jsxs("div",{className:"filter-empty",children:["Campos úteis para montar o body: ",e.jsx("code",{children:"{{context.slots.webhookEvent}}"}),", ",e.jsx("code",{children:"{{context.input}}"}),", ",e.jsx("code",{children:"{{context.conversationId}}"}),", ",e.jsx("code",{children:"{{context.currentStepId}}"})," e ",e.jsx("code",{children:"{{context.slots}}"}),"."]}),e.jsx(Ym,{requests:((jc=n.api)==null?void 0:jc.requests)||[],onChange:c=>{var S,_;return at({api:{responseName:((S=n.component)==null?void 0:S.responseName)||n.responseName||"webhook",requests:c,generation:(_=n.api)==null?void 0:_.generation}})}})]})]}),((nd=n.component)==null?void 0:nd.type)==="rag"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Composicao do RAG"})}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["LLM resposta",e.jsxs("select",{value:n.component.ragLlmProvider||"auto",onChange:c=>{const S=c.target.value;z({ragLlmProvider:S,ragLlmModel:S==="auto"?"":Od(S)})},children:[e.jsx("option",{value:"auto",children:"Auto/global"}),e.jsx("option",{value:"openai",children:"OpenAI"}),e.jsx("option",{value:"azure_openai",children:"Azure OpenAI"}),e.jsx("option",{value:"gemini",children:"Gemini"}),e.jsx("option",{value:"claude",children:"Claude"}),e.jsx("option",{value:"grok",children:"Grok"}),e.jsx("option",{value:"bedrock",children:"Bedrock"})]})]}),e.jsxs("label",{children:["Embedding",e.jsxs("select",{value:n.component.ragEmbeddingProvider||"auto",onChange:c=>z({ragEmbeddingProvider:c.target.value}),children:[e.jsx("option",{value:"auto",children:"Auto/global"}),e.jsx("option",{value:"openai",children:"OpenAI"}),e.jsx("option",{value:"azure_openai",children:"Azure OpenAI"})]})]}),e.jsxs("label",{children:["Busca vetorial",e.jsxs("select",{value:n.component.ragSearchProvider||n.component.ragProvider||"auto",onChange:c=>{const S=c.target.value;z({ragSearchProvider:S,ragProvider:S==="hybrid"?"auto":S})},children:[e.jsx("option",{value:"auto",children:"Auto"}),e.jsx("option",{value:"milvus",children:"Milvus"}),e.jsx("option",{value:"azure_search",children:"Azure AI Search"}),e.jsx("option",{value:"hybrid",children:"Milvus + Azure AI Search"})]})]}),e.jsxs("label",{children:["Modelo do chat",e.jsxs("select",{value:n.component.ragLlmModel||"",onChange:c=>z({ragLlmModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Xo(n.component.ragLlmProvider||"auto",n.component.ragLlmModel).map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Modelo de embedding",e.jsxs("select",{value:n.component.ragEmbeddingModel||"",onChange:c=>z({ragEmbeddingModel:c.target.value}),children:[e.jsx("option",{value:"",children:"Usar default do provider"}),Au(Gx,n.component.ragEmbeddingModel).map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]})]}),e.jsx("div",{className:"filter-empty",children:"Azure AI Search funciona como motor de busca. Azure Blob Storage nao busca vetores direto aqui: use um componente Azure Blob Storage antes e informe Docs recuperados, ou indexe o conteudo no Azure AI Search/Milvus."})]}),e.jsx("div",{className:"inspector-grid-two",children:e.jsxs("label",{children:["Collection / Index",e.jsx("input",{value:n.component.collectionName||"",placeholder:"canvas_flow_docs ou azure-search-index",onChange:c=>at({component:{...n.component,collectionName:c.target.value}})})]})}),Gd(),e.jsxs("label",{children:["K",e.jsx("input",{type:"number",min:0,value:n.component.k??8,onChange:c=>z({k:Number(c.target.value)||0})})]}),e.jsxs("label",{children:["Turnos de memoria",e.jsx("input",{type:"number",min:0,value:n.component.turnHistoricMessages??t.turnHistoricMessages??20,onChange:c=>z({turnHistoricMessages:Number(c.target.value)||0})})]}),e.jsxs("label",{children:["Prompt RAG",e.jsx("textarea",{rows:5,value:n.component.prompt||"",onChange:c=>z({prompt:c.target.value})})]}),e.jsxs("label",{children:["Texto de busca no RAG",e.jsx("input",{value:n.component.queryTemplate||"",onChange:c=>z({queryTemplate:c.target.value})})]}),e.jsxs("label",{children:["Docs recuperados",e.jsx("input",{value:n.component.ragDocsPath||"",placeholder:"context.slots.milvus.results ou context.slots.azureSearch.results",onChange:c=>z({ragDocsPath:c.target.value})})]}),e.jsx(ov,{rules:xi,onChange:c=>z({ragConditionalRules:c})}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Filtro extraFields"})}),e.jsx(nv,{rules:pl,draft:w,emptyText:"Sem filtro global. Adicione campos como ano, tipo ou categoria.",onDraftChange:N,onChange:Ir})]}),e.jsxs("div",{className:"filter-section",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Filtros por rodada"}),e.jsxs("button",{type:"button",onClick:()=>z({extraFieldsFilterPerRound:[...fa,{}]}),children:[e.jsx(dn,{size:14}),"Rodada"]})]}),fa.length===0&&e.jsx("div",{className:"filter-empty",children:"Sem rodadas. Use quando quiser tentar filtros em ordem."}),e.jsx("div",{className:"round-filter-list",children:fa.map((c,S)=>e.jsxs("div",{className:"round-filter-card",children:[e.jsxs("div",{className:"round-filter-header",children:[e.jsxs("strong",{children:["Rodada ",S+1]}),e.jsxs("label",{children:["Limite",e.jsx("input",{type:"number",min:0,value:nr[S]??"",placeholder:"Auto",onChange:_=>{const H=[...nr];H[S]=_.target.value===""?null:Number(_.target.value)||0,z({extraFieldsFilterPerRoundLimits:H})}})]}),e.jsx("button",{type:"button",className:"filter-icon-button","aria-label":"Remover rodada",title:"Remover rodada",onClick:()=>{z({extraFieldsFilterPerRound:fa.filter((_,H)=>H!==S),extraFieldsFilterPerRoundLimits:nr.filter((_,H)=>H!==S)})},children:e.jsx(St,{size:14})})]}),e.jsx(Ki,{filter:c||{},draft:C[S]||Jr,emptyText:"Esta rodada ainda não tem filtros.",onDraftChange:_=>E(H=>({...H,[S]:_})),onChange:_=>{const H=[...fa];H[S]=_,z({extraFieldsFilterPerRound:H})}})]},S))})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Order by extraFields",e.jsx("input",{value:((od=n.component.extraFieldsFilterOrderBy)==null?void 0:od[0])||"",placeholder:"ano",onChange:c=>{const S=c.target.value.trim();z({extraFieldsFilterOrderBy:S?[S]:[]})}})]}),e.jsxs("label",{children:["Ordem",e.jsxs("select",{value:n.component.order||"desc",onChange:c=>z({order:c.target.value}),children:[e.jsx("option",{value:"desc",children:"desc"}),e.jsx("option",{value:"asc",children:"asc"})]})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["metadataOrderScanPageSize",e.jsx("input",{type:"number",min:0,value:n.component.metadataOrderScanPageSize??"",placeholder:"1000",onChange:c=>z({metadataOrderScanPageSize:c.target.value===""?null:Number(c.target.value)||0})})]}),e.jsxs("label",{children:["metadataOrderMaxScan",e.jsx("input",{type:"number",min:0,value:n.component.metadataOrderMaxScan??"",placeholder:"20000",onChange:c=>z({metadataOrderMaxScan:c.target.value===""?null:Number(c.target.value)||0})})]})]}),e.jsxs("label",{children:["Filtro avancado Milvus",e.jsx("input",{value:n.component.filterExpr||"",placeholder:'text like "%contrato%"',onChange:c=>z({filterExpr:c.target.value})})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.roundStopFind!==!1,onChange:c=>z({roundStopFind:c.target.checked})}),e.jsx("span",{children:"Parar na primeira rodada com resultado"})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.roundMixHalf===!0,onChange:c=>z({roundMixHalf:c.target.checked})}),e.jsx("span",{children:"Misturar resultados entre rodadas"})]})]}),(((ad=n.component)==null?void 0:ad.type)==="openaiGen"||((rd=n.component)==null?void 0:rd.type)==="azureOpenAI")&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"filter-empty",children:[n.component.type==="azureOpenAI"?"Este componente gera a resposta com Azure OpenAI.":"Este componente e um Agente: escolha o motor LLM, defina o papel e selecione quais rules, skills, subagents e MCP ele pode enxergar."," ","Para usar documentos, conecte antes Arquivos, Milvus ou Azure AI Search e informe o caminho dos resultados."]}),e.jsxs("div",{className:"filter-section agent-llm-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Motor LLM"})}),e.jsxs("div",{className:"filter-grid two-columns",children:[n.component.type==="openaiGen"&&e.jsxs("label",{children:["Provider",e.jsxs("select",{value:n.component.ragLlmProvider||"auto",onChange:c=>{const S=c.target.value;z({ragLlmProvider:S,ragLlmModel:S==="auto"?"":Od(S)})},children:[e.jsxs("option",{value:"auto",children:["Usar provider do fluxo (",Ts,")"]}),e.jsx("option",{value:"openai",children:"OpenAI"}),e.jsx("option",{value:"azure_openai",children:"Azure OpenAI"}),e.jsx("option",{value:"gemini",children:"Gemini"}),e.jsx("option",{value:"claude",children:"Claude"}),e.jsx("option",{value:"grok",children:"Grok"}),e.jsx("option",{value:"bedrock",children:"Bedrock"})]})]}),e.jsxs("label",{children:[n.component.type==="azureOpenAI"?"Deployment/modelo":"Modelo",e.jsxs("select",{value:n.component.ragLlmModel||"",onChange:c=>z({ragLlmModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Xo(n.component.ragLlmProvider||"auto",n.component.ragLlmModel).map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]})]})]}),n.component.type==="openaiGen"&&e.jsxs("div",{className:"filter-section agent-execution-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Execucao do agente"})}),e.jsxs("div",{className:"filter-grid two-columns compact",children:[e.jsxs("label",{children:["Modo",e.jsxs("select",{value:n.component.agentExecutionMode||"hybrid",onChange:c=>z({agentExecutionMode:c.target.value}),children:[e.jsx("option",{value:"flow",children:"Fluxo conectado"}),e.jsx("option",{value:"auto_tools",children:"Auto tools"}),e.jsx("option",{value:"hybrid",children:"Hibrido"})]})]}),e.jsxs("label",{children:["Limite de chamadas",e.jsx("input",{type:"number",min:1,max:10,value:n.component.agentMaxToolCalls??1,onChange:c=>z({agentMaxToolCalls:Number(c.target.value)||1})})]})]}),e.jsx("span",{className:"field-hint",children:"Fluxo conectado segue as linhas do canvas. Auto tools deixa o agente chamar skills, subagents ou MCP. Hibrido chama tools e depois continua pelo canvas."}),(Pt==="orchestrator"||Pt==="subagent")&&ts!=="flow"&&e.jsx("div",{className:"filter-empty warning",children:"Modo agentico usa o manifesto visivel para chamar skills, subagents e MCP sob demanda. Use edges apenas para o caminho conversacional do canvas, como Agente -> Mensagem -> Pergunta. Nao conecte orquestrador -> skill nem skill/subagent -> MCP para representar dependencia agentica; isso vira execucao de fluxo conectado."}),Rn.length>0&&e.jsxs("span",{className:"field-error",children:["Ligacoes agenticas por manifesto: ",ui,Rn.length>5?"...":"",". Elas mantem o mesmo layout da conexao, ficam verdes no canvas e nao fazem jump de fluxo."]}),(Pt==="orchestrator"||Pt==="subagent")&&n.component.agentExecutionMode==="flow"&&e.jsx("span",{className:"field-error",children:"Para delegar para skills/subagents selecionados, use Auto tools ou Hibrido."})]}),n.component.type==="openaiGen"&&e.jsx(e.Fragment,{children:e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Papel e contrato do agente"})}),e.jsx("div",{className:"filter-empty",children:"Configure aqui o papel deste no e o manifesto que ele enxerga. Voce tambem pode criar rules e subagents rapidos sem sair do agente."}),e.jsxs("label",{children:["Papel",e.jsxs("select",{value:Pt,onChange:c=>sl(c.target.value),children:[e.jsx("option",{value:"simple",children:"Agente simples"}),e.jsx("option",{value:"orchestrator",children:"Agente orquestrador principal"}),e.jsx("option",{value:"subagent",children:"Subagent especializado"})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:rl||Sr,disabled:Sr,onChange:c=>z({agentUseWorkspaceCatalog:c.target.checked})}),e.jsx("span",{children:"Usar catalogo do Agent Workspace"})]}),Sr&&e.jsx("span",{className:"field-hint",children:"O manifesto selecionado ativa automaticamente o catalogo necessario para este orquestrador."}),e.jsxs("div",{className:"agent-workspace-catalog-summary",children:[e.jsxs("span",{children:[e.jsx("strong",{children:ma.skills})," skills"]}),e.jsxs("span",{children:[e.jsx("strong",{children:ma.subagents+eo.length})," subagents"]}),e.jsxs("span",{children:[e.jsx("strong",{children:ma.rules})," rules"]}),e.jsxs("span",{children:[e.jsx("strong",{children:ma.mcpServers+Sa.length+to.length})," MCP"]})]}),(Pt==="orchestrator"||Pt==="subagent")&&e.jsxs("div",{className:"agent-manifest-section",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Manifesto visivel para este agente"}),e.jsxs("div",{className:"agent-manifest-actions",children:[e.jsx("button",{type:"button",onClick:qc,children:"Selecionar aba"}),e.jsx("button",{type:"button",onClick:Hu,children:"Limpar aba"}),e.jsx("button",{type:"button",onClick:qd,children:"Selecionar todos"}),e.jsx("button",{type:"button",onClick:os,children:"Limpar"})]})]}),!Sr&&e.jsx("div",{className:"filter-empty",children:"Sem selecao explicita: este no enxerga o catalogo inteiro do Agent Workspace."}),e.jsx("div",{className:"agent-manifest-tabs",role:"tablist","aria-label":"Categorias do manifesto do agente",children:pi.map(c=>e.jsxs("button",{type:"button",className:Gn===c.id?"active":"",onClick:()=>qa(c.id),children:[e.jsx("span",{children:c.label}),e.jsxs("small",{children:[c.selected,"/",c.total]})]},c.id))}),e.jsx("div",{className:"agent-manifest-tab-panel",children:ll()})]}),Pt==="orchestrator"&&e.jsx("div",{className:"filter-empty",children:"Orquestrador recebe instrucoes do usuario, consulta rules/docs, decide quando usar skills, chama subagents com contexto isolado e aciona MCP sob demanda."}),Pt==="subagent"&&e.jsx("div",{className:"filter-empty",children:"Subagent deve ter escopo estreito e contexto proprio, mas pode chamar MCP, skills e outros subagents selecionados quando isso fizer parte da tarefa."}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Agents.md local"}),e.jsx(Gi,{onClick:()=>{var c,S,_;return Eo({fieldType:"agentsMd",targetType:"agent-node",title:"Gerar Agents.md local",label:n.title||"Agente",currentValue:Ht.agentsMd,placeholder:Pt==="orchestrator"?"Ex: orquestrador de agendamentos: coleta CPF, data de nascimento, chama MCP_LOGIN, MCP_API_CLIENTES e só consulta detalhes após seleção do cliente.":"Ex: subagent especializado em consultar e formatar dados de agendamento. Pode chamar MCPs ou subagents selecionados quando precisar de dados que nao estao no contexto.",applyText:H=>Xa({agentsMd:H}),stepContext:{id:n.id,title:n.title,type:n.type,componentType:((c=n.component)==null?void 0:c.type)||"",role:Pt,manifest:((S=n.component)==null?void 0:S.agentManifest)||{}}},Ht.agentsMd?"Melhore este Agents.md local sem misturar guardrails ou termos bloqueados.":"",((_=n.component)==null?void 0:_.ragLlmModel)||t.model)}})]}),e.jsx("textarea",{rows:Pt==="orchestrator"?6:4,value:Ht.agentsMd,placeholder:Pt==="orchestrator"?"# Agente principal orquestrador&#10;Recebe instrucoes do usuario, consulta rules e docs, delega tarefas e coordena subagents e skills.&#10;&#10;Use o catalogo do Agent Workspace para decidir ferramentas.":"# Identidade local&#10;Objetivo, tom, limites e quando este agente deve responder.",onChange:c=>Xa({agentsMd:c.target.value})})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Guardrails"}),e.jsx(Gi,{onClick:()=>{var c,S;return Eo({fieldType:"guardrails",targetType:"agent-node",title:"Gerar guardrails locais",label:n.title||"Agente",currentValue:Ht.guardrails,placeholder:"Ex: bloquear resposta sem dados de MCP, não inventar detalhes de agendamento, não expor IDs técnicos ao cliente salvo quando necessário.",applyText:_=>Xa({guardrails:_}),stepContext:{id:n.id,title:n.title,role:Pt,manifest:((c=n.component)==null?void 0:c.agentManifest)||{}}},Ht.guardrails?"Melhore estes guardrails locais sem repetir o Agents.md.":"",((S=n.component)==null?void 0:S.ragLlmModel)||t.model)}})]}),e.jsx("textarea",{rows:4,value:Ht.guardrails,placeholder:"Nao invente dados. Peça aprovacao antes de acoes sensiveis. Nao exponha segredos.",onChange:c=>Xa({guardrails:c.target.value})})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Termos bloqueados"}),e.jsx(Gi,{onClick:()=>{var c;return Eo({fieldType:"blockedTerms",targetType:"agent-node",title:"Gerar termos bloqueados locais",label:n.title||"Agente",currentValue:Ht.blockedTerms.join(", "),placeholder:"Ex: termos que devem bloquear exclusão, vazamento de token, manipulação indevida de cliente ou chamadas sensíveis.",applyText:S=>Xa({blockedTerms:Xm(S)}),stepContext:{id:n.id,title:n.title,role:Pt}},Ht.blockedTerms.length?"Melhore a lista mantendo termos curtos separados por vírgula.":"",((c=n.component)==null?void 0:c.ragLlmModel)||t.model)}})]}),e.jsx("input",{value:Ht.blockedTerms.join(", "),placeholder:"apagar banco, excluir cliente, vazar token",onChange:c=>Xa({blockedTerms:Jx(c.target.value)}),onBlur:c=>Xa({blockedTerms:Xm(c.target.value)})})]}),di&&e.jsxs("div",{className:"filter-empty",children:["Este no ainda tem catalogo legado local (",Cr.skills," skills, ",Cr.subagents," subagents, ",Cr.rules," rules, ",Cr.mcpServers," MCP). Ao salvar o papel acima, o Canvas passa a usar o catalogo do Agent Workspace."]})]})}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Prompt"}),e.jsx(Gi,{onClick:()=>{var c,S,_,H,je;return Eo({fieldType:"instruction",targetType:"agent-node",title:"Gerar prompt do agente",label:n.title||"Agente",currentValue:((c=n.component)==null?void 0:c.prompt)||"",placeholder:"Ex: agente deve conduzir a conversa um dado por vez, usar MCPs somente com entradas obrigatorias e responder ao cliente sem expor detalhes tecnicos.",applyText:ke=>z({prompt:ke}),stepContext:{id:n.id,title:n.title,type:n.type,componentType:((S=n.component)==null?void 0:S.type)||"",role:Pt,agentsMd:Ht.agentsMd,guardrails:Ht.guardrails,blockedTerms:Ht.blockedTerms,manifest:((_=n.component)==null?void 0:_.agentManifest)||{}}},(H=n.component)!=null&&H.prompt?"Melhore este prompt sem repetir Agents.md, guardrails ou termos bloqueados.":"",((je=n.component)==null?void 0:je.ragLlmModel)||t.model)}})]}),e.jsx("textarea",{rows:5,value:n.component.prompt||"",onChange:c=>z({prompt:c.target.value})})]}),e.jsxs("label",{children:[e.jsxs("span",{className:"prompt-field-label-row",children:[e.jsx("span",{children:"Entrada do LLM"}),Pt==="subagent"&&n.component.queryTemplate!=="{{context.input}}"&&e.jsx("button",{type:"button",onClick:()=>z({queryTemplate:"{{context.input}}"}),children:"Usar context.input"})]}),e.jsx("input",{value:n.component.queryTemplate||"",placeholder:Pt==="subagent"?"{{context.input}}":"{{context.slots.userInput}}",onChange:c=>z({queryTemplate:c.target.value})}),Pt==="orchestrator"||Pt==="subagent"?e.jsxs("span",{className:"field-hint",children:[e.jsx("code",{children:"{{context.input}}"})," e a entrada atual deste componente. Em subagent/MCP chamado como tool, ele recebe a tarefa ou payload delegado pelo agente pai; ",e.jsx("code",{children:"{{context.slots.autoToolInput}}"})," guarda o mesmo texto por compatibilidade. ",e.jsx("code",{children:"{{context.slots.pergunta}}"})," e o valor salvo pelo no Pergunta."]}):e.jsxs("span",{className:"field-hint",children:[e.jsx("code",{children:"{{context.input}}"})," e a entrada atual do runner; ",e.jsx("code",{children:"{{context.slots.nome}}"})," acessa valores salvos por nos anteriores."]})]}),e.jsxs("label",{children:["Contexto dinamico",e.jsx("textarea",{rows:4,value:n.component.llmContextTemplate||"",placeholder:"{{context.slots.arquivos.text}}",onChange:c=>z({llmContextTemplate:c.target.value})}),e.jsx("span",{className:"field-hint",children:"Opcional. O payload dos nos ligados ao Agente ja entra automaticamente. Use este campo para complementar ou sobrescrever partes do contexto."})]}),e.jsxs("label",{children:["Docs conectados",e.jsx("input",{value:n.component.ragDocsPath||"",placeholder:"context.slots.milvus.results ou context.slots.azureSearch.results",onChange:c=>z({ragDocsPath:c.target.value})}),e.jsx("span",{className:"field-hint",children:"Opcional. Documentos vindos de Arquivos, Milvus ou Azure AI Search ligados ao Agente sao usados automaticamente. Preencha para escolher outro caminho explicitamente."})]}),e.jsxs("label",{children:["Turnos de memoria",e.jsx("input",{type:"number",min:0,value:n.component.turnHistoricMessages??t.turnHistoricMessages??20,onChange:c=>z({turnHistoricMessages:Number(c.target.value)||0})})]})]}),(((sd=n.component)==null?void 0:sd.type)==="milvus"||((id=n.component)==null?void 0:id.type)==="azureSearch")&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"filter-empty",children:(()=>{const c=n.component.ragOperation||"search",S=n.component.type==="azureSearch";return c==="index"&&S?"Gera embeddings e grava os chunks/vetores diretamente no indice Azure AI Search. Nao salva no Blob; para Blob + Search use o componente Azure Blob Storage.":c==="index"?"Gera embeddings e salva os chunks/vetores na collection Milvus.":c==="list"?"Lista documentos salvos no Milvus para visualizar o que ja foi vetorizado.":c==="get"?"Busca um documento do Milvus pelo id ou embeddingId.":c==="delete"?"Remove um documento do Milvus pelo id ou embeddingId.":`Busca documentos no ${S?"Azure AI Search":"Milvus"} e salva o resultado em context.slots.${n.component.responseName||n.responseName||(S?"azureSearch":"milvus")}. Use Agente ou Azure OpenAI depois para responder com esses docs.`})()}),e.jsxs("label",{children:["Operação",e.jsxs("select",{value:n.component.ragOperation||"search",onChange:c=>z({ragOperation:c.target.value}),children:[e.jsx("option",{value:"search",children:n.component.type==="azureSearch"?"Buscar no Azure AI Search":"Buscar documentos no Milvus"}),e.jsx("option",{value:"index",children:n.component.type==="azureSearch"?"Indexar documentos no Azure AI Search":"Indexar / vetorizar no Milvus"}),n.component.type==="milvus"&&e.jsxs(e.Fragment,{children:[e.jsx("option",{value:"list",children:"Visualizar / listar dados"}),e.jsx("option",{value:"get",children:"Buscar por ID"}),e.jsx("option",{value:"delete",children:"Deletar por ID"})]})]})]}),e.jsx("div",{className:"inspector-grid-two",children:e.jsxs("label",{children:[n.component.type==="milvus"?"Collection Milvus":"Index Azure AI Search",e.jsx("input",{value:n.component.collectionName||"",placeholder:n.component.type==="milvus"?"canvas_flow_docs":"azure-search-index",onChange:c=>z({collectionName:c.target.value})})]})}),Gd(),((n.component.ragOperation||"search")==="search"||(n.component.ragOperation||"search")==="index")&&e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Provider de embedding",e.jsxs("select",{value:n.component.ragEmbeddingProvider||"openai",onChange:c=>z({ragEmbeddingProvider:c.target.value}),children:[e.jsx("option",{value:"openai",children:"OpenAI"}),e.jsx("option",{value:"azure_openai",children:"Azure OpenAI"}),n.component.ragEmbeddingProvider==="auto"&&e.jsx("option",{value:"auto",children:"Auto/global (atual)"})]})]}),e.jsxs("label",{children:["Modelo/deployment de embedding",e.jsxs("select",{value:n.component.ragEmbeddingModel||"",onChange:c=>z({ragEmbeddingModel:c.target.value}),children:[e.jsx("option",{value:"",children:"Usar default do provider"}),Au(Gx,n.component.ragEmbeddingModel).map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]})]}),(n.component.ragOperation||"search")==="search"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["K",e.jsx("input",{type:"number",min:1,max:100,value:n.component.k??8,onChange:c=>z({k:Number(c.target.value)||8})})]}),n.component.type==="milvus"&&e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.useHybrid!==!1,onChange:c=>z({useHybrid:c.target.checked})}),e.jsx("span",{children:"Busca híbrida dense + BM25"})]})]}),e.jsxs("label",{children:["Query",e.jsx("input",{value:n.component.queryTemplate||"",placeholder:"{{context.slots.userInput}}",onChange:c=>z({queryTemplate:c.target.value})})]}),e.jsx(ov,{rules:xi,onChange:c=>z({ragConditionalRules:c})}),e.jsxs("div",{className:"filter-section",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Filtro extraFields"})}),e.jsx(nv,{rules:pl,draft:w,emptyText:"Sem filtro global. Adicione campos como ano, tipo ou categoria.",onDraftChange:N,onChange:Ir})]}),n.component.type==="milvus"&&e.jsxs("label",{children:["Filtro Milvus",e.jsx("input",{value:n.component.filterExpr||"",placeholder:'text like "%contrato%"',onChange:c=>z({filterExpr:c.target.value})})]})]}),n.component.type==="milvus"&&(n.component.ragOperation||"search")==="list"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"inspector-grid-two",children:e.jsxs("label",{children:["Limite",e.jsx("input",{type:"number",min:1,max:1e3,value:n.component.k??50,onChange:c=>z({k:Number(c.target.value)||50})})]})}),e.jsxs("label",{children:["Busca/filtro textual opcional",e.jsx("input",{value:n.component.queryTemplate||"",placeholder:"{{context.slots.termoBusca}}",onChange:c=>z({queryTemplate:c.target.value})})]}),e.jsx("div",{className:"filter-empty",children:"Lista documentos agrupados por embeddingId/nome para visualizar o que esta salvo no Milvus."})]}),n.component.type==="milvus"&&((n.component.ragOperation||"search")==="get"||(n.component.ragOperation||"search")==="delete")&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["ID ou embeddingId do documento",e.jsx("input",{value:n.component.ragEmbeddingIdTemplate||"",placeholder:"{{context.slots.documentId}}",onChange:c=>z({ragEmbeddingIdTemplate:c.target.value})})]}),(n.component.ragOperation||"search")==="delete"&&e.jsx("div",{className:"filter-empty",children:"A exclusao remove os chunks desse documento da collection Milvus."})]}),(n.component.ragOperation||"search")==="index"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Caminho de documentos/chunks",e.jsx("input",{value:n.component.ragDocumentsPath||"",placeholder:n.component.type==="azureSearch"?"context.slots.azureBlob.blobs ou context.slots.mongo.documents":"context.slots.documentos",onChange:c=>z({ragDocumentsPath:c.target.value})})]}),e.jsx("div",{className:"filter-empty",children:"Opcional. Use para indexar chunks vindos de Blob, MongoDB ou outro no. Se vazio, usa o texto abaixo."}),e.jsxs("label",{children:["Texto/documento para indexar",e.jsx("textarea",{rows:7,value:n.component.ragTextTemplate||"",placeholder:"{{context.slots.documento}}",onChange:c=>z({ragTextTemplate:c.target.value})})]}),e.jsxs("label",{children:["Caminho do texto",e.jsx("input",{value:n.component.ragTextPath||"",placeholder:"context.slots.documento.text",onChange:c=>z({ragTextPath:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Nome do documento",e.jsx("input",{value:n.component.ragEmbeddingNameTemplate||"",placeholder:"Documento",onChange:c=>z({ragEmbeddingNameTemplate:c.target.value})})]}),e.jsxs("label",{children:["ID do documento",e.jsx("input",{value:n.component.ragEmbeddingIdTemplate||"",placeholder:"opcional",onChange:c=>z({ragEmbeddingIdTemplate:c.target.value})})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Chunk size",e.jsx("input",{type:"number",min:100,value:n.component.ragChunkSize??512,onChange:c=>z({ragChunkSize:Number(c.target.value)||512})})]}),e.jsxs("label",{children:["Chunk overlap",e.jsx("input",{type:"number",min:0,value:n.component.ragChunkOverlap??70,onChange:c=>z({ragChunkOverlap:Number(c.target.value)||0})})]})]}),e.jsxs("label",{children:["Extra fields JSON",e.jsx("textarea",{rows:5,value:n.component.ragExtraFieldsJson||"{}",onChange:c=>z({ragExtraFieldsJson:c.target.value})})]})]})]}),((xn=n.component)==null?void 0:xn.type)==="azureBlob"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"filter-empty",children:n.component.azureBlobOperation==="chunks"||n.component.azureBlobOperation==="index"?"Quebra o texto em chunks e salva no Azure Blob Storage. Nao gera embedding e nao cria indice de busca.":n.component.azureBlobOperation==="list"?"Lista blobs/chunks por prefixo e traz o texto para usar em outro componente, como Azure AI Search.":n.component.azureBlobOperation==="read"?"Le um blob especifico e salva o conteudo no contexto.":`Grava um texto ou JSON renderizado no Azure Blob Storage e salva blobName/blobUrl em context.slots.${n.component.responseName||n.responseName||"azureBlob"}.`}),e.jsxs("label",{children:["Operação",e.jsxs("select",{value:n.component.azureBlobOperation==="index"?"chunks":n.component.azureBlobOperation||"upload",onChange:c=>z({azureBlobOperation:c.target.value}),children:[e.jsx("option",{value:"upload",children:"Gravar blob"}),e.jsx("option",{value:"chunks",children:"Salvar chunks no Blob"}),e.jsx("option",{value:"list",children:"Listar/buscar blobs"}),e.jsx("option",{value:"read",children:"Ler blob"})]})]}),(n.component.azureBlobOperation==="index"?"chunks":n.component.azureBlobOperation||"upload")==="list"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Prefixo/pasta",e.jsx("input",{value:n.component.collectionName||"",placeholder:"canvas-flow-chunks/",onChange:c=>z({collectionName:c.target.value})})]}),e.jsxs("label",{children:["Limite",e.jsx("input",{type:"number",min:1,max:1e3,value:n.component.k??100,onChange:c=>z({k:Number(c.target.value)||100})})]})]}),e.jsxs("label",{children:["Busca em nome/metadados/texto",e.jsx("input",{value:n.component.azureBlobFilterText||"",placeholder:"contrato, cliente, produto...",onChange:c=>z({azureBlobFilterText:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Content-Type contem",e.jsx("input",{value:n.component.azureBlobFilterContentType||"",placeholder:"text/plain ou application/json",onChange:c=>z({azureBlobFilterContentType:c.target.value})})]}),e.jsxs("label",{children:["Min bytes",e.jsx("input",{type:"number",min:0,value:n.component.azureBlobMinBytes??"",onChange:c=>z({azureBlobMinBytes:c.target.value===""?void 0:Number(c.target.value)})})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modificado apos",e.jsx("input",{type:"datetime-local",value:n.component.azureBlobFilterModifiedAfter||"",onChange:c=>z({azureBlobFilterModifiedAfter:c.target.value})})]}),e.jsxs("label",{children:["Modificado antes",e.jsx("input",{type:"datetime-local",value:n.component.azureBlobFilterModifiedBefore||"",onChange:c=>z({azureBlobFilterModifiedBefore:c.target.value})})]})]}),e.jsxs("label",{children:["Max bytes",e.jsx("input",{type:"number",min:0,value:n.component.azureBlobMaxBytes??"",onChange:c=>z({azureBlobMaxBytes:c.target.value===""?void 0:Number(c.target.value)})})]}),e.jsxs("div",{className:"filter-empty",children:["Resultado sugerido para indexar: context.slots.",n.component.responseName||n.responseName||"azureBlob",".blobs"]})]}),(n.component.azureBlobOperation==="index"?"chunks":n.component.azureBlobOperation||"upload")==="read"&&e.jsxs("label",{children:["Nome do blob",e.jsx("input",{value:n.component.azureBlobNameTemplate||"",placeholder:"canvas-flow-chunks/global/documento/0.txt",onChange:c=>z({azureBlobNameTemplate:c.target.value})})]}),(n.component.azureBlobOperation==="index"?"chunks":n.component.azureBlobOperation||"upload")==="chunks"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Pasta/prefixo no Blob",e.jsx("input",{value:n.component.collectionName||"",placeholder:"canvas-flow-chunks",onChange:c=>z({collectionName:c.target.value})})]}),e.jsxs("label",{children:["Texto para quebrar em chunks",e.jsx("textarea",{rows:7,value:n.component.ragTextTemplate||"",placeholder:"{{context.slots.documento}}",onChange:c=>z({ragTextTemplate:c.target.value})})]}),e.jsxs("label",{children:["Caminho do texto",e.jsx("input",{value:n.component.ragTextPath||"",placeholder:"context.slots.documento.text",onChange:c=>z({ragTextPath:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Nome do documento",e.jsx("input",{value:n.component.ragEmbeddingNameTemplate||"",placeholder:"Documento",onChange:c=>z({ragEmbeddingNameTemplate:c.target.value})})]}),e.jsxs("label",{children:["ID do documento",e.jsx("input",{value:n.component.ragEmbeddingIdTemplate||"",placeholder:"opcional",onChange:c=>z({ragEmbeddingIdTemplate:c.target.value})})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Chunk size",e.jsx("input",{type:"number",min:100,value:n.component.ragChunkSize??512,onChange:c=>z({ragChunkSize:Number(c.target.value)||512})})]}),e.jsxs("label",{children:["Chunk overlap",e.jsx("input",{type:"number",min:0,value:n.component.ragChunkOverlap??70,onChange:c=>z({ragChunkOverlap:Number(c.target.value)||0})})]})]}),e.jsxs("label",{children:["Extra fields JSON",e.jsx("textarea",{rows:5,value:n.component.ragExtraFieldsJson||"{}",onChange:c=>z({ragExtraFieldsJson:c.target.value})})]})]}),(n.component.azureBlobOperation==="index"?"chunks":n.component.azureBlobOperation||"upload")==="upload"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Nome do blob",e.jsx("input",{value:n.component.azureBlobNameTemplate||"",placeholder:"canvas-flow/{{context.conversationId}}/{{context.now}}.json",onChange:c=>z({azureBlobNameTemplate:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Content-Type",e.jsx("input",{value:n.component.azureBlobContentType||"application/json",onChange:c=>z({azureBlobContentType:c.target.value})})]}),e.jsxs("label",{children:["Caminho do conteúdo",e.jsx("input",{value:n.component.azureBlobContentPath||"",placeholder:"context.slots.rag",onChange:c=>z({azureBlobContentPath:c.target.value})})]})]}),e.jsxs("label",{children:["Conteúdo template",e.jsx("textarea",{rows:7,value:n.component.azureBlobContentTemplate||"",placeholder:"{{context.slots}}",onChange:c=>z({azureBlobContentTemplate:c.target.value})})]})]})]}),((vn=n.component)==null?void 0:vn.type)==="mongodb"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"filter-empty",children:["Usa o MongoDB configurado no backend. O resultado fica em context.slots.",n.component.responseName||n.responseName||"mongo","."]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Collection MongoDB",e.jsx("input",{value:n.component.mongoCollectionName||"",placeholder:"flow_events",onChange:c=>z({mongoCollectionName:c.target.value})})]}),e.jsxs("label",{children:["Operação",e.jsx("select",{value:Jt,onChange:c=>{const S=c.target.value;z({mongoOperation:S,...Kx.has(S)?{mongoLlmMode:"full"}:{}})},children:bk.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))})]})]}),(xo||cs)&&e.jsxs("div",{className:"inspector-grid-two",children:[xo&&e.jsxs("label",{children:[Jt==="insertMany"?"Max documentos":"Limite",e.jsx("input",{type:"number",min:1,max:1e3,value:n.component.mongoLimit??50,onChange:c=>z({mongoLimit:Number(c.target.value)||50})})]}),cs&&e.jsxs("label",{children:["Sort JSON",e.jsx("input",{value:n.component.mongoSort||"{}",placeholder:'{"createdAt": -1}',onChange:c=>z({mongoSort:c.target.value})})]})]}),Ai&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Paginação e volume"})}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modo",e.jsxs("select",{value:n.component.mongoPaginationMode||"single",onChange:c=>z({mongoPaginationMode:c.target.value}),children:[e.jsx("option",{value:"single",children:"Uma página"}),e.jsx("option",{value:"all",children:"Buscar várias páginas"})]})]}),e.jsxs("label",{children:["Página",e.jsx("input",{type:"number",min:1,value:n.component.mongoPage??1,onChange:c=>z({mongoPage:Math.max(1,Number(c.target.value)||1)})})]})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Skip inicial",e.jsx("input",{type:"number",min:0,value:n.component.mongoSkip??0,onChange:c=>z({mongoSkip:Math.max(0,Number(c.target.value)||0)})})]}),e.jsxs("label",{children:["Max páginas",e.jsx("input",{type:"number",min:1,max:50,value:n.component.mongoMaxPages??5,onChange:c=>z({mongoMaxPages:Math.max(1,Math.min(50,Number(c.target.value)||1))})})]})]}),e.jsx("div",{className:"filter-empty",children:"Max páginas define quantas páginas o backend percorre a partir da página inicial. Ex: limite 100 e max páginas 5 busca até 500 registros, parando antes se não houver mais dados."})]}),Xd&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Range de data"})}),e.jsxs("div",{className:"mongo-date-grid",children:[e.jsxs("label",{children:["Campo de data",e.jsx("input",{value:n.component.mongoDateField||"",placeholder:"createdAt",onChange:c=>z({mongoDateField:c.target.value})})]}),e.jsxs("label",{children:["Timezone",e.jsx("input",{value:n.component.mongoDateTimezone||"America/Sao_Paulo",placeholder:"America/Sao_Paulo",onChange:c=>z({mongoDateTimezone:c.target.value})})]})]}),e.jsxs("div",{className:"mongo-date-grid",children:[e.jsxs("label",{children:["Início",e.jsx("input",{type:"datetime-local",value:n.component.mongoDateStart||"",onChange:c=>z({mongoDateStart:c.target.value})})]}),e.jsxs("label",{children:["Fim",e.jsx("input",{type:"datetime-local",value:n.component.mongoDateEnd||"",onChange:c=>z({mongoDateEnd:c.target.value})})]})]})]}),e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.mongoUseLlmFilter===!0,onChange:c=>z({mongoUseLlmFilter:c.target.checked})}),e.jsx("span",{children:"Montar campos com LLM"})]}),n.component.mongoUseLlmFilter===!0&&e.jsxs(e.Fragment,{children:[!ya&&e.jsxs("label",{children:["Modo do LLM",e.jsxs("select",{value:n.component.mongoLlmMode||"filter",onChange:c=>z({mongoLlmMode:c.target.value}),children:[e.jsx("option",{value:"filter",children:"Somente consulta"}),e.jsx("option",{value:"full",children:"Consulta completa + paginação"})]})]}),e.jsxs("label",{children:["Instrução do MongoDB",e.jsx("textarea",{rows:4,value:n.component.mongoLlmInstruction||"",placeholder:zr,onChange:c=>z({mongoLlmInstruction:c.target.value})})]}),e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:n.component.mongoLlmModel||"",onChange:c=>z({mongoLlmModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]})]}),e.jsx("div",{className:"filter-empty",children:ya?"Nesta operação, o LLM monta os campos principais da ação: document/documents para insert ou filter + update para update/upsert. Os campos manuais ficam como fallback.":n.component.mongoLlmMode==="full"?"Consulta completa: o LLM pode montar filter, sort, projection/pipeline, range de data e paginação. O backend ainda limita limite e max páginas.":"Somente consulta: o LLM monta filter, sort, projection ou pipeline. Limite, paginação, range de data e demais campos manuais continuam valendo."})]}),e.jsx(Bk,{prompt:Oe,generated:Ie,error:it,loading:ce,copied:Ze,onPromptChange:B,onGenerate:()=>void ar(),onCopy:()=>void Ei(),onApply:rn}),Rr&&e.jsxs("label",{children:[Jt==="aggregate"?"Filtro / $match JSON":"Filtro JSON",e.jsx("textarea",{rows:4,value:n.component.mongoFilter||"{}",placeholder:'{"conversationId": "{{context.slots.conversationId}}"}',onChange:c=>z({mongoFilter:c.target.value})})]}),fl&&e.jsxs("label",{children:[Jt==="insertMany"?"Documentos JSON":"Documento JSON",e.jsx("textarea",{rows:5,value:n.component.mongoDocument||"{}",placeholder:Jt==="insertMany"?'[{"event": "entrada_fluxo"}, {"event": "lead_convertido"}]':'{"event": "entrada_fluxo", "userInput": "{{context.slots.userInput}}"}',onChange:c=>z({mongoDocument:c.target.value})})]}),Ln&&e.jsxs("label",{children:["Update JSON",e.jsx("textarea",{rows:4,value:n.component.mongoUpdate||"{}",placeholder:'{"$set": {"status": "convertido"}}',onChange:c=>z({mongoUpdate:c.target.value})})]}),Fr&&e.jsxs("label",{children:["Projection JSON",e.jsx("input",{value:n.component.mongoProjection||"{}",placeholder:'{"_id": 0, "conversationId": 1}',onChange:c=>z({mongoProjection:c.target.value})})]}),Jt==="aggregate"&&e.jsxs("label",{children:["Pipeline aggregate JSON",e.jsx("textarea",{rows:6,value:n.component.mongoPipeline||"[]",placeholder:'[{"$group": {"_id": "$event", "total": {"$sum": 1}}}]',onChange:c=>z({mongoPipeline:c.target.value})})]})]}),((qr=n.component)==null?void 0:qr.type)==="loop"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"filter-empty",children:"O Loop executa as saídas conectadas enquanto não atingir o limite de voltas e enquanto a condição JS de parada for falsa. Para repetir, conecte Loop -> corpo e depois corpo -> Loop."}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Slot do loop",e.jsx("input",{value:n.component.loopResponseName||n.component.responseName||"",placeholder:"loop",onChange:c=>z({loopResponseName:c.target.value,responseName:c.target.value})})]}),e.jsxs("label",{children:["Quantidade de voltas",e.jsx("input",{type:"number",min:1,max:1e3,value:n.component.loopMaxIterations??3,onChange:c=>z({loopMaxIterations:Math.max(1,Math.min(1e3,Number(c.target.value)||1))})})]})]}),e.jsxs("label",{children:["Slot do contador",e.jsx("input",{value:n.component.loopIndexResponseName||"",placeholder:"loopIndex",onChange:c=>z({loopIndexResponseName:c.target.value})}),e.jsxs("div",{className:"reason-slot-hint",children:["Se ficar vazio, o contador será salvo em ",e.jsx("code",{children:"context.slots.loopIndex"}),". Se você preencher ",e.jsx("code",{children:"contador"}),", use ",e.jsx("code",{children:"context.slots.contador"})," ou ",e.jsx("code",{children:"slots.contador"})," nas condições."]})]}),e.jsxs("label",{children:["Espera entre voltas (segundos)",e.jsx("input",{type:"number",min:0,max:3600,step:.1,value:n.component.loopDelaySeconds??0,onChange:c=>z({loopDelaySeconds:Math.max(0,Math.min(3600,Number(c.target.value)||0))})})]}),e.jsxs("label",{children:["Condição JS para parar",e.jsx("textarea",{rows:4,value:n.component.loopStopCondition||"",placeholder:'context.slots.api?.status === "done"',onChange:c=>z({loopStopCondition:c.target.value})})]}),e.jsx("div",{className:"filter-empty",children:"Use 0 para rodar sem pausa. A espera acontece antes da segunda volta em diante, ou seja, entre uma repetição e outra."}),e.jsxs("div",{className:"filter-empty",children:["Durante a execução, o backend grava context.slots.",n.component.loopResponseName||n.component.responseName||"loop",".iteration e context.slots.",n.component.loopIndexResponseName||"loopIndex"," com a volta atual, começando em 1. O índice começando em 0 fica em context.slots.",n.component.loopResponseName||n.component.responseName||"loop",".index. Para seguir depois que o loop acabar, crie uma ligação saindo do Loop para o próximo nó com a condição JS: !context.slots.",n.component.loopResponseName||n.component.responseName||"loop",".shouldContinue"]})]}),((ld=n.component)==null?void 0:ld.type)==="context"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"filter-empty",children:["O Contexto cria ou atualiza campos em context.slots. Os proximos nos podem usar essas variaveis com ","{{context.slots.nomeDoCampo}}"," ou via JS."]}),e.jsxs("div",{className:"filter-empty",children:["Se preencher Slot do resultado, os mesmos campos tambem ficam agrupados nele. Exemplo: com slot ",e.jsx("code",{children:"email"})," e campo ",e.jsx("code",{children:"to"}),", use ",e.jsx("code",{children:"{{context.slots.email.to}}"}),"."]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Slot do resultado",e.jsx("input",{value:n.component.responseName||"",placeholder:"context",onChange:c=>z({responseName:c.target.value})})]}),e.jsxs("label",{children:["Modo",e.jsxs("select",{value:fi,onChange:c=>z({contextMode:c.target.value}),children:[e.jsx("option",{value:"json",children:"JSON com variaveis"}),e.jsx("option",{value:"js",children:"Script JS"}),e.jsx("option",{value:"llm",children:"LLM"})]})]})]}),fi==="json"&&e.jsx(vf,{label:"JSON para mesclar no contexto",language:"JSON",rows:9,value:Ea,placeholder:`{
497
+ "cliente": "{{context.slots.input}}",
498
+ "payload": {"origem": "web"}
499
+ }`,error:Jd,onChange:c=>z({contextJson:c}),onOpen:()=>R("json")}),fi==="js"&&e.jsx(vf,{label:"Script JS que retorna um JSON",language:"JavaScript",rows:11,value:Mr,placeholder:`const itens = context.slots.itens || [];
500
+ return {
501
+ total: itens.length,
502
+ nomes: itens.map((item) => item.nome)
503
+ };`,error:Yl,onChange:c=>z({contextScript:c}),onOpen:()=>R("js")}),fi==="llm"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Instrucao LLM",e.jsx("textarea",{rows:7,value:n.component.contextLlmPrompt||"",placeholder:"Extraia da conversa um JSON com nome, email e interesse. Responda somente com os campos que devem entrar em context.slots.",onChange:c=>z({contextLlmPrompt:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:n.component.contextLlmModel||"",onChange:c=>z({contextLlmModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:n.component.contextLlmTemperature??.2,onChange:c=>z({contextLlmTemperature:Number(c.target.value)})})]})]})]}),e.jsxs("div",{className:"filter-empty",children:["O retorno precisa ser um objeto JSON no topo, por exemplo ",'{"lead": {"nome": "Ana"}, "score": 8}',". Arrays ou textos soltos nao sao mesclados."]})]}),((Pl=n.component)==null?void 0:Pl.type)==="flowRouter"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"filter-empty",children:"O roteador avalia as regras em ordem. A primeira regra verdadeira pula a conversa para o flow escolhido. Se nenhuma regra bater, ele para neste ponto ou usa o fallback configurado."}),e.jsx("div",{className:"filter-empty",children:"Escolha o agente do destino para listar os fluxos dele. O valor executado continua sendo o ID do fluxo, e o runtime troca o agente ativo para o agente do fluxo destino."}),e.jsxs("label",{children:["Slot do resultado",e.jsx("input",{value:n.component.flowRouterReasonResponseName||n.component.responseName||"",placeholder:"flowRouter",onChange:c=>z({flowRouterReasonResponseName:c.target.value,responseName:c.target.value})}),e.jsxs("span",{className:"field-hint reason-slot-hint",children:["Salva o resultado do roteador em ",e.jsx("code",{children:`context.slots.${n.component.flowRouterReasonResponseName||n.component.responseName||"flowRouter"}`}),", incluindo regra escolhida, destino e motivo quando a decisão usar LLM."]})]}),e.jsx("div",{className:"filter-empty",children:"O jump usa apenas as regras JS ou LLM abaixo, entra no flow destino e não reaproveita a mensagem atual como resposta dos inputs do destino."}),Qe&&e.jsx("div",{className:"auth-error",children:Qe}),e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Regras de roteamento"}),e.jsxs("button",{type:"button",onClick:Wc,children:[e.jsx(dn,{size:14}),"Regra"]})]}),!ss.length&&e.jsx("div",{className:"filter-empty",children:"Adicione uma regra para escolher um fluxo destino. Use LLM para intenção aberta ou JS para regras diretas com context.slots."}),ss.map((c,S)=>e.jsxs("div",{className:"filter-rule-card",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:c.label||`Regra ${S+1}`}),e.jsxs("button",{type:"button",className:"danger-link",onClick:()=>mt(c.id),children:[e.jsx(St,{size:14}),"Remover"]})]}),(()=>{const _=br(c.targetAgentId),H=wr(_),je=Me[_]===!0;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Nome",e.jsx("input",{value:c.label||"",placeholder:`Regra ${S+1}`,onChange:ke=>Er(c.id,{label:ke.target.value})})]}),e.jsxs("label",{children:["Agente destino",e.jsx("select",{value:_,onChange:ke=>Er(c.id,{targetAgentId:ke.target.value,targetFlowId:""}),children:si.map(ke=>e.jsxs("option",{value:ke.agentId||ke.name,children:[ke.name,(ke.agentId||ke.name)===Ge?" (atual)":""]},ke.agentId||ke.name))})]})]}),e.jsxs("label",{children:["Fluxo destino",e.jsxs("select",{value:c.targetFlowId||"",onChange:ke=>Er(c.id,{targetAgentId:_,targetFlowId:ke.target.value}),disabled:je,children:[e.jsx("option",{value:"",children:je?"Carregando fluxos...":"Selecione um fluxo"}),c.targetFlowId&&!Hl(c.targetFlowId,_)&&e.jsx("option",{value:c.targetFlowId,children:an(c.targetFlowId,_)}),H.map(ke=>e.jsx("option",{value:ke._id,children:ke.name},ke._id))]})]})]})})(),e.jsxs("label",{children:["Modo da regra",e.jsxs("select",{value:c.conditionMode||"js",onChange:_=>Er(c.id,{conditionMode:_.target.value}),children:[e.jsx("option",{value:"js",children:"Regra JS"}),e.jsx("option",{value:"llm",children:"Instrução LLM"})]})]}),e.jsxs("label",{children:[c.conditionMode==="llm"?"Instrução LLM":"Condição JS",e.jsx("textarea",{rows:4,value:c.condition||"",placeholder:c.conditionMode==="llm"?"Ex: roteie se o usuário quer falar sobre financeiro, boleto ou pagamento.":'context.slots.userInput?.includes("boleto")',onChange:_=>Er(c.id,{condition:_.target.value})})]}),c.conditionMode==="llm"&&e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Modelo",e.jsxs("select",{value:c.conditionModel||"",onChange:_=>Er(c.id,{conditionModel:_.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(_=>e.jsx("option",{value:_.value,children:_.label},_.value))]})]}),e.jsxs("label",{children:["Temperatura",e.jsx("input",{type:"number",min:0,max:1,step:.1,value:c.conditionTemperature??0,onChange:_=>Er(c.id,{conditionTemperature:Number(_.target.value)})})]})]})]},c.id))]}),(()=>{const c=br(n.component.flowRouterFallbackAgentId),S=wr(c),_=Me[c]===!0;return e.jsxs("div",{className:"rich-editor-block",children:[e.jsx("div",{className:"filter-section-header",children:e.jsx("strong",{children:"Fallback"})}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Agente do fallback",e.jsx("select",{value:c,onChange:H=>z({flowRouterFallbackAgentId:H.target.value,flowRouterFallbackFlowId:""}),children:si.map(H=>e.jsxs("option",{value:H.agentId||H.name,children:[H.name,(H.agentId||H.name)===Ge?" (atual)":""]},H.agentId||H.name))})]}),e.jsxs("label",{children:["Fluxo se nenhuma regra bater",e.jsxs("select",{value:n.component.flowRouterFallbackFlowId||"",onChange:H=>z({flowRouterFallbackAgentId:c,flowRouterFallbackFlowId:H.target.value}),disabled:_,children:[e.jsx("option",{value:"",children:_?"Carregando fluxos...":"Parar neste ponto"}),n.component.flowRouterFallbackFlowId&&!Hl(n.component.flowRouterFallbackFlowId,c)&&e.jsx("option",{value:n.component.flowRouterFallbackFlowId,children:an(n.component.flowRouterFallbackFlowId,c)}),S.map(H=>e.jsx("option",{value:H._id,children:H.name},H._id))]})]})]})]})})()]}),((Fi=n.component)==null?void 0:Fi.type)==="dashboard"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"filter-empty",children:"Monta um payload analítico e exibe no teste como Debug. Use para funil, tráfego, traces de API e consultas em MongoDB/Milvus."}),e.jsxs("label",{children:["Título do dashboard",e.jsx("input",{value:n.component.dashboardTitle||"",placeholder:"Analítico do fluxo",onChange:c=>z({dashboardTitle:c.target.value})})]}),e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Fonte",e.jsxs("select",{value:n.component.dashboardSource||"trace",onChange:c=>z({dashboardSource:c.target.value}),children:[e.jsx("option",{value:"trace",children:"Trace do fluxo"}),e.jsx("option",{value:"mongodb",children:"MongoDB"}),e.jsx("option",{value:"api",children:"API externa"}),e.jsx("option",{value:"milvus",children:"Milvus/RAG"})]})]}),e.jsxs("label",{children:["Visualizacao",e.jsxs("select",{value:n.component.dashboardMode||"summary",onChange:c=>z({dashboardMode:c.target.value}),children:[e.jsx("option",{value:"summary",children:"Resumo"}),e.jsx("option",{value:"table",children:"Tabela"}),e.jsx("option",{value:"funnel",children:"Funil"}),e.jsx("option",{value:"timeseries",children:"Serie temporal"}),e.jsx("option",{value:"bar",children:"Grafico de barras"}),e.jsx("option",{value:"pie",children:"Grafico de pizza"})]})]})]}),(n.component.dashboardMode==="bar"||n.component.dashboardMode==="pie"||n.component.dashboardMode==="timeseries")&&e.jsxs("div",{className:"rich-editor-block",children:[e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.dashboardUseLlm!==!1,onChange:c=>z({dashboardUseLlm:c.target.checked})}),e.jsx("span",{children:"Montar gráfico com LLM"})]}),n.component.dashboardUseLlm!==!1&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Prompt do gráfico",e.jsx("textarea",{rows:4,value:n.component.dashboardLlmPrompt||"",placeholder:"Ex: agrupe por etapa do funil e gere labels curtos.",onChange:c=>z({dashboardLlmPrompt:c.target.value})})]}),e.jsxs("label",{children:["Modelo para montar",e.jsxs("select",{value:n.component.dashboardModel||"",onChange:c=>z({dashboardModel:c.target.value}),children:[e.jsxs("option",{value:"",children:["Usar modelo do fluxo (",t.model,")"]}),Qn.map(c=>e.jsx("option",{value:c.value,children:c.label},c.value))]})]})]}),e.jsx("div",{className:"filter-empty",children:"O LLM recebe os dados da fonte escolhida e devolve um JSON de gráfico. Se falhar, o backend monta o gráfico automaticamente."})]}),n.component.dashboardSource==="mongodb"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Collection MongoDB",e.jsx("input",{value:n.component.dashboardCollectionName||n.component.mongoCollectionName||"",placeholder:"flow_events",onChange:c=>z({dashboardCollectionName:c.target.value})})]}),e.jsxs("label",{children:["Limite",e.jsx("input",{type:"number",min:1,max:500,value:n.component.mongoLimit??100,onChange:c=>z({mongoLimit:Number(c.target.value)||100})})]})]}),e.jsxs("label",{children:["Pipeline aggregate JSON",e.jsx("textarea",{rows:7,value:n.component.dashboardPipeline||"[]",placeholder:'[{"$group": {"_id": "$stage", "users": {"$addToSet": "$conversationId"}}}, {"$project": {"stage": "$_id", "total": {"$size": "$users"}}}]',onChange:c=>z({dashboardPipeline:c.target.value})})]})]}),n.component.dashboardSource==="api"&&e.jsx(Ym,{requests:Ns(n.component.dashboardApiRequests||"[]",[]),onChange:c=>z({dashboardApiRequests:JSON.stringify(c,null,2)})}),n.component.dashboardSource==="milvus"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"inspector-grid-two",children:[e.jsxs("label",{children:["Collection Milvus",e.jsx("input",{value:n.component.collectionName||"",onChange:c=>z({collectionName:c.target.value})})]}),e.jsxs("label",{children:["K",e.jsx("input",{type:"number",min:1,max:100,value:n.component.dashboardK??n.component.k??10,onChange:c=>z({dashboardK:Number(c.target.value)||10})})]})]}),e.jsxs("label",{children:["Query Milvus",e.jsx("input",{value:n.component.dashboardQueryTemplate||n.component.queryTemplate||"",placeholder:"{{context.slots.userInput}}",onChange:c=>z({dashboardQueryTemplate:c.target.value})})]}),e.jsxs("label",{children:["Filtro Milvus",e.jsx("input",{value:n.component.dashboardFilterExpr||n.component.filterExpr||"",placeholder:'source == "fluxo"',onChange:c=>z({dashboardFilterExpr:c.target.value})})]})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.dashboardIncludeTrace!==!1,onChange:c=>z({dashboardIncludeTrace:c.target.checked})}),e.jsx("span",{children:"Incluir trace do fluxo no resultado"})]}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.dashboardShowTable===!0,onChange:c=>z({dashboardShowTable:c.target.checked})}),e.jsx("span",{children:"Mostrar tabela de dados no web widget/teste"})]})]}),((cd=n.component)==null?void 0:cd.type)==="cron"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"filter-empty",children:"Agenda a execução do fluxo. Conecte a saída do CRON no primeiro nó que deve rodar, ou selecione executar desde o início do fluxo."}),e.jsxs("label",{className:"checkbox-row",children:[e.jsx("input",{type:"checkbox",checked:n.component.cronEnabled===!0,onChange:c=>z({cronEnabled:c.target.checked})}),e.jsx("span",{children:"Ativar agendamento"})]}),e.jsxs("div",{className:"cron-grid-two",children:[e.jsxs("label",{children:["Recorrência",e.jsxs("select",{value:n.component.cronMode||"interval",onChange:c=>z({cronMode:c.target.value}),children:[e.jsx("option",{value:"interval",children:"A cada X tempo"}),e.jsx("option",{value:"daily",children:"Diário"}),e.jsx("option",{value:"weekly",children:"Semanal"}),e.jsx("option",{value:"monthly",children:"Mensal"})]})]}),e.jsxs("label",{children:["Executar",e.jsxs("select",{value:n.component.cronRunFrom||"cronNode",onChange:c=>z({cronRunFrom:c.target.value}),children:[e.jsx("option",{value:"cronNode",children:"Da saída do CRON"}),e.jsx("option",{value:"flowStart",children:"Do início do fluxo"})]})]})]}),(n.component.cronMode||"interval")==="interval"&&e.jsxs("div",{className:"cron-grid-two compact-cron-grid",children:[e.jsxs("label",{children:["A cada",e.jsx("input",{type:"number",min:1,max:1e4,value:n.component.cronIntervalValue??15,onChange:c=>z({cronIntervalValue:Math.max(1,Number(c.target.value)||1)})})]}),e.jsxs("label",{children:["Unidade",e.jsxs("select",{value:n.component.cronIntervalUnit||"minutes",onChange:c=>z({cronIntervalUnit:c.target.value}),children:[e.jsx("option",{value:"minutes",children:"Minutos"}),e.jsx("option",{value:"hours",children:"Horas"})]})]})]}),(n.component.cronMode||"interval")!=="interval"&&e.jsxs("div",{className:"cron-grid-two compact-cron-grid",children:[e.jsxs("label",{children:["Horário",e.jsx("input",{type:"time",value:n.component.cronTime||"09:00",onChange:c=>z({cronTime:c.target.value})})]}),n.component.cronMode==="weekly"&&e.jsxs("label",{children:["Dia da semana",e.jsxs("select",{value:n.component.cronWeekday??1,onChange:c=>z({cronWeekday:Number(c.target.value)}),children:[e.jsx("option",{value:0,children:"Domingo"}),e.jsx("option",{value:1,children:"Segunda"}),e.jsx("option",{value:2,children:"Terça"}),e.jsx("option",{value:3,children:"Quarta"}),e.jsx("option",{value:4,children:"Quinta"}),e.jsx("option",{value:5,children:"Sexta"}),e.jsx("option",{value:6,children:"Sábado"})]})]}),n.component.cronMode==="monthly"&&e.jsxs("label",{children:["Dia do mês",e.jsx("input",{type:"number",min:1,max:31,value:n.component.cronMonthDay??1,onChange:c=>z({cronMonthDay:Math.max(1,Math.min(31,Number(c.target.value)||1))})})]})]}),e.jsxs("div",{className:"cron-grid-two",children:[e.jsxs("label",{children:["Timezone",e.jsx("input",{value:n.component.cronTimezone||"America/Sao_Paulo",placeholder:"America/Sao_Paulo",onChange:c=>z({cronTimezone:c.target.value})})]}),e.jsxs("label",{children:["Começar em",e.jsx("input",{type:"datetime-local",value:n.component.cronStartAt||"",onChange:c=>z({cronStartAt:c.target.value})})]})]}),e.jsxs("label",{children:["Mensagem de entrada",e.jsx("input",{value:n.component.cronInputText||"",placeholder:"Texto usado como input quando o agendamento rodar",onChange:c=>z({cronInputText:c.target.value})})]}),e.jsxs("label",{children:["Slots extras JSON",e.jsx("textarea",{rows:4,value:n.component.cronSlotsJson||"{}",placeholder:'{"source": "cron", "campanha": "followup"}',onChange:c=>z({cronSlotsJson:c.target.value})})]}),e.jsxs("div",{className:"filter-empty",children:["Salve o fluxo para o scheduler considerar esta configuração. Horários exibidos em ",yi,". Próxima execução: ",Qm(n.component.cronNextRunAt,yi)||"será calculada pelo backend",". Última execução: ",Qm(n.component.cronLastRunAt,yi)||"nenhuma","."]}),e.jsxs("div",{className:"cron-log-panel",children:[e.jsxs("div",{className:"filter-section-header",children:[e.jsx("strong",{children:"Histórico leve"}),e.jsxs("button",{type:"button",onClick:()=>x==null?void 0:x(n.id),disabled:!j||!x,children:[e.jsx(Ap,{size:14}),"Atualizar"]})]}),!vi.length&&e.jsx("div",{className:"filter-empty",children:"Nenhuma execução registrada ainda. O histórico guarda apenas as últimas execuções."}),vi.length>0&&e.jsx("div",{className:"cron-log-list",children:vi.slice(0,8).map((c,S)=>e.jsxs("div",{className:`cron-log-entry ${c.status==="error"?"error":"ok"}`,children:[e.jsxs("div",{children:[e.jsx("strong",{children:c.status==="error"?"Erro":"Executado"}),e.jsx("span",{children:Qm(c.finishedAt||c.firedAt,yi)})]}),e.jsx("small",{children:c.status==="ok"?`${c.messages??0} mensagem(ns) - ${c.durationMs??0}ms`:c.error||"Erro sem detalhes."}),c.nextRunAt&&e.jsxs("em",{children:["Próxima: ",Qm(c.nextRunAt,yi)]})]},`${c.firedAt}-${S}`))})]})]})]}),Ja(),T&&((_l=n.component)==null?void 0:_l.type)==="context"&&e.jsx("div",{className:"modal-backdrop context-code-backdrop",onMouseDown:()=>R(null),children:e.jsxs("div",{className:"context-code-modal",onMouseDown:c=>c.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:Kd}),e.jsx("span",{children:Fn})]}),e.jsxs("button",{type:"button",onClick:()=>R(null),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:`context-code-modal-body ${T==="js"?"with-ai":""}`,children:[T==="js"&&e.jsx(tv,{prompt:ee,generatedCode:$,generatedExplanation:I,error:xe,loading:ie,copied:be,onPromptChange:q,onGenerate:()=>void Gc(),onCopy:()=>void Ps(),onApply:Zl}),e.jsx(Up,{language:T==="json"?"json":"js",rows:30,fill:!0,error:is,value:tr,placeholder:go,onChange:ro}),is&&e.jsx("div",{className:"code-editor-error",children:is})]})]})}),Ca&&e.jsx("div",{className:"modal-backdrop mcp-preset-help-backdrop",onMouseDown:()=>gr(null),children:e.jsxs("div",{className:"mcp-preset-help-modal",onMouseDown:c=>c.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:Ca.label}),e.jsx("span",{children:"Permissoes e configuracao necessarias"})]}),e.jsxs("button",{type:"button",onClick:()=>gr(null),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"mcp-preset-help-body",children:[e.jsx("p",{children:Ca.description}),e.jsxs("div",{className:"mcp-preset-help-auth",children:[e.jsx("strong",{children:"Autenticacao usada pelo Canvas Flow"}),e.jsx("code",{children:Ca.authMode})]}),((bc=Ca.oauthScopes)==null?void 0:bc.length)&&e.jsxs("div",{className:"mcp-preset-help-scopes",children:[e.jsx("strong",{children:"Scopes OAuth solicitados"}),Ca.oauthScopes.map(c=>e.jsx("code",{children:c},c))]}),e.jsx("div",{className:"mcp-preset-help-links",children:Ca.setupLinks.map(c=>e.jsxs("a",{href:c.url,target:"_blank",rel:"noreferrer",children:[e.jsx("strong",{children:c.label}),e.jsx("span",{children:c.description})]},c.url))}),((dd=Ca.setupNotes)==null?void 0:dd.length)&&e.jsxs("div",{className:"mcp-preset-help-notes",children:[e.jsx("strong",{children:"Antes de testar"}),Ca.setupNotes.map(c=>e.jsx("span",{children:c},c))]})]}),e.jsxs("div",{className:"mcp-preset-help-footer",children:[e.jsx("a",{href:Ca.docsUrl,target:"_blank",rel:"noreferrer",children:"Documentacao oficial"}),e.jsx("button",{type:"button",className:"primary-button",onClick:()=>gr(null),children:"Entendi"})]})]})})]})}const Qi={embeddedSignupAppId:"617497366521622",embeddedSignupConfigId:"1952866105586018",embeddedSignupSessionInfoVersion:"3",embeddedSignupVersion:"v3"},$a={llmProvider:"openai",openai:{enabled:!0,apiKey:"",chatModel:"gpt-4o",embeddingModel:"text-embedding-3-large",ocrModel:"gpt-4o"},azureOpenai:{enabled:!1,apiKey:"",endpoint:"",apiVersion:"2024-02-15-preview",chatDeploymentName:"",embeddingDeploymentName:"",ocrDeploymentName:"",embeddingDimensions:3072},gemini:{enabled:!1,apiKey:"",chatModel:"gemini-3.5-flash"},claude:{enabled:!1,apiKey:"",chatModel:"claude-sonnet-4-6"},grok:{enabled:!1,apiKey:"",baseUrl:"https://api.x.ai/v1",chatModel:"grok-2-latest"},bedrock:{enabled:!1,apiKey:"",baseUrl:"",region:"us-east-1",chatModel:"anthropic.claude-sonnet-4-6"},milvus:{address:"",token:"",username:"",password:"",collectionName:"canvas_flow_docs"},azureBlob:{connectionString:"",containerName:""},azureSearch:{endpoint:"",apiKey:"",indexName:"",apiVersion:"2024-07-01"},mongodb:{connectionString:"",databaseName:""},webWidget:{primaryColor:"#0f6bff",accentColor:"#00b37e",assistantName:"Assistente IA",subtitle:"Online agora",welcomeMessage:"Ola! Como posso ajudar?",placeholder:"Digite sua mensagem",bubbleLabel:"Precisa de ajuda?",avatarText:"IA",openByDefault:!1,position:"right"},whatsapp:{provider:"meta",deliveryMode:"provider",onboardingMode:"manual",verifyToken:"",businessAccountId:"",phoneNumberId:"",accessToken:"",graphApiVersion:"v20.0",autoReply:!0,coexistenceEnabled:!1,syncMessageEchoes:!0,syncHistory:!1,embeddedSignupAppId:Qi.embeddedSignupAppId,embeddedSignupConfigId:Qi.embeddedSignupConfigId,embeddedSignupAppSecret:"",embeddedSignupSolutionId:"",embeddedSignupFeatureType:"",embeddedSignupSessionInfoVersion:Qi.embeddedSignupSessionInfoVersion,embeddedSignupVersion:Qi.embeddedSignupVersion,blipContractId:"",blipAuthorizationKey:"",sinchProjectId:"",sinchAppId:"",sinchRegion:"us",sinchAccessToken:"",sinchChannel:"WHATSAPP",sinchApiMode:"conversation",sinchServiceNumber:"",sinchServiceUsername:"",sinchServiceToken:""}},lv=Array.from(new Map(Object.values(wh).flat().map(t=>[t.value,t])).values()),cv=[{value:"text-embedding-3-large",label:"text-embedding-3-large"},{value:"text-embedding-3-small",label:"text-embedding-3-small"},{value:"text-embedding-ada-002",label:"text-embedding-ada-002"}],dv=[{id:"openai",title:"OpenAI",subtitle:"Credencial OpenAI",Icon:Ho,color:"#2563eb"},{id:"azureOpenai",title:"Azure OpenAI",subtitle:"Endpoint e credencial",Icon:uf,color:"#0ea5e9"},{id:"gemini",title:"Gemini",subtitle:"Google AI Studio",Icon:Ho,color:"#7c3aed"},{id:"claude",title:"Claude",subtitle:"Anthropic API",Icon:Ho,color:"#c2410c"},{id:"grok",title:"Grok",subtitle:"xAI OpenAI-compatible",Icon:Ho,color:"#111827"},{id:"bedrock",title:"Bedrock",subtitle:"Gateway OpenAI-compatible",Icon:uf,color:"#ea580c"},{id:"milvus",title:"Milvus",subtitle:"Vetores e busca",Icon:Ss,color:"#7c3aed"},{id:"azureBlob",title:"Azure Blob Storage",subtitle:"Arquivos do RAG",Icon:uf,color:"#0891b2"},{id:"azureSearch",title:"Azure AI Search",subtitle:"Indice e busca RAG",Icon:Rc,color:"#16a34a"},{id:"mongodb",title:"MongoDB",subtitle:"Base operacional",Icon:Ss,color:"#15803d"},{id:"webWidget",title:"Web widget",subtitle:"Aparencia e embed",Icon:RS,color:"#2563eb"},{id:"whatsapp",title:"WhatsApp",subtitle:"Canal e entrega",Icon:qf,color:"#0f766e"}];function Zm(t){return{...$a,...t||{},openai:{...$a.openai,...(t==null?void 0:t.openai)||{}},azureOpenai:{...$a.azureOpenai,...(t==null?void 0:t.azureOpenai)||{}},gemini:{...$a.gemini,...(t==null?void 0:t.gemini)||{}},claude:{...$a.claude,...(t==null?void 0:t.claude)||{}},grok:{...$a.grok,...(t==null?void 0:t.grok)||{}},bedrock:{...$a.bedrock,...(t==null?void 0:t.bedrock)||{}},milvus:{...$a.milvus,...(t==null?void 0:t.milvus)||{}},azureBlob:{...$a.azureBlob,...(t==null?void 0:t.azureBlob)||{}},azureSearch:{...$a.azureSearch,...(t==null?void 0:t.azureSearch)||{}},mongodb:{...$a.mongodb,...(t==null?void 0:t.mongodb)||{}},webWidget:{...$a.webWidget,...(t==null?void 0:t.webWidget)||{}},whatsapp:{...$a.whatsapp,...(t==null?void 0:t.whatsapp)||{}}}}function Na({path:t,status:n}){return n[t]?e.jsx("small",{className:"provider-secret-hint",children:"Ja configurado. Deixe em branco para manter."}):null}const Yk={manual:{title:"Manual: token existente",description:"Use quando o cliente ja tem WABA, Phone Number ID e access token. Nao abre o Embedded Signup."},embeddedSignup:{title:"Self-hosted: meu app Meta",description:"Use para instalacoes open source no dominio do usuario. O usuario precisa informar o proprio App ID, Configuration ID e App Secret, e cadastrar o dominio HTTPS dele no app da Meta."},coexistence:{title:"Sinergy gerenciado: Coexistence",description:"Usa o preset da Sinergy para coexistence. Funciona em dominios autorizados no app Meta da Sinergy ou por uma URL fixa de onboarding da Sinergy; dominios self-hosted aleatorios devem usar o modo self-hosted."}};function uv(t,n,r){return t==="openai"?r["openai.apiKey"]||!!n.openai.apiKey:t==="azureOpenai"?!!n.azureOpenai.endpoint&&(r["azureOpenai.apiKey"]||!!n.azureOpenai.apiKey):t==="gemini"?r["gemini.apiKey"]||!!n.gemini.apiKey:t==="claude"?r["claude.apiKey"]||!!n.claude.apiKey:t==="grok"?r["grok.apiKey"]||!!n.grok.apiKey:t==="bedrock"?(r["bedrock.apiKey"]||!!n.bedrock.apiKey)&&!!n.bedrock.baseUrl:t==="milvus"?r["milvus.token"]||!!(n.milvus.address||n.milvus.username):t==="azureBlob"?r["azureBlob.connectionString"]||!!n.azureBlob.containerName:t==="azureSearch"?r["azureSearch.apiKey"]||!!(n.azureSearch.endpoint||n.azureSearch.indexName):t==="mongodb"?r["mongodb.connectionString"]||!!n.mongodb.databaseName:t==="webWidget"?!!(n.webWidget.assistantName||n.webWidget.primaryColor||n.webWidget.welcomeMessage):t==="whatsapp"?n.whatsapp.provider==="blip"?!!n.whatsapp.blipContractId&&(r["whatsapp.blipAuthorizationKey"]||!!n.whatsapp.blipAuthorizationKey):n.whatsapp.provider==="sinch"?n.whatsapp.sinchApiMode==="relay"?!!n.whatsapp.sinchServiceUsername&&(r["whatsapp.sinchServiceToken"]||!!n.whatsapp.sinchServiceToken):!!(n.whatsapp.sinchProjectId&&n.whatsapp.sinchAppId)&&(r["whatsapp.sinchAccessToken"]||!!n.whatsapp.sinchAccessToken):!!n.whatsapp.phoneNumberId&&(r["whatsapp.accessToken"]||!!n.whatsapp.accessToken):!1}function Zk(t,n,r,s){const l=n[t];return l?l.source==="agent"?"Configurado no agente":l.source==="global"?s==="global"?"Configurado":"Herdado do global":l.source==="env"?"Fallback .env":"Nao configurado":r?"Configurado":"Nao configurado"}function pv(t,n){return!n||t.some(r=>r.value===n)?t:[{value:n,label:`${n} (atual)`},...t]}function eA(t){return t.slice(0,3).toUpperCase()}function tA(t,n){const r={flowId:n.flowId,flowName:n.flowName||"<NOME_DO_FLUXO>",agentId:n.agentId,channel:"webWidget",userContext:null,theme:{primaryColor:t.primaryColor,accentColor:t.accentColor,assistantName:t.assistantName,subtitle:t.subtitle,welcomeMessage:t.welcomeMessage,placeholder:t.placeholder,bubbleLabel:t.bubbleLabel,avatarText:t.avatarText,openByDefault:t.openByDefault,position:t.position}};return`<script>
504
+ const canvasFlowWidget = ${JSON.stringify(r,null,2).replace(/</g,"\\u003c")};
505
+ const canvasFlowConversationStorageKey =
506
+ "canvasFlowConversationId:" + canvasFlowWidget.agentId + ":" + canvasFlowWidget.flowId;
507
+ const canvasFlowSession = {
508
+ // Anonimo: gere uma vez no browser e guarde.
509
+ // Usuario logado: prefira receber este ID do seu backend/proxy.
510
+ conversationId:
511
+ window.localStorage.getItem(canvasFlowConversationStorageKey) ||
512
+ ((window.crypto && crypto.randomUUID) ? crypto.randomUUID() : "web-" + Date.now())
513
+ };
514
+ window.localStorage.setItem(canvasFlowConversationStorageKey, canvasFlowSession.conversationId);
515
+
516
+ async function enviarMensagemCanvasFlow(texto) {
517
+ // O proxy deve validar o usuario logado e pode trocar conversationId/userContext
518
+ // por valores confiaveis do seu sistema antes de chamar o Canvas Flow.
519
+ // Produção: chame seu backend/proxy e injete o Authorization no servidor.
520
+ const response = await fetch("/seu-backend/canvas-flow-proxy", {
521
+ method: "POST",
522
+ headers: { "Content-Type": "application/json" },
523
+ body: JSON.stringify({
524
+ flowId: canvasFlowWidget.flowId,
525
+ agentId: canvasFlowWidget.agentId,
526
+ channel: canvasFlowWidget.channel,
527
+ conversationId: canvasFlowSession.conversationId,
528
+ text: texto,
529
+ slots: {
530
+ webWidget: canvasFlowWidget.theme,
531
+ user: canvasFlowWidget.userContext
532
+ }
533
+ })
534
+ });
535
+
536
+ const data = await response.json();
537
+ // O backend recupera o checkpoint LangGraph usando conversationId.
538
+ return data;
539
+ }
540
+
541
+ // Use canvasFlowWidget.theme para montar o botão, janela,
542
+ // cores, textos, posição e estado inicial do widget.
543
+ // Use canvasFlowWidget.userContext apenas para dados nao sensiveis.
544
+ <\/script>`}function nA(t,n){const r=n;return new Promise((s,l)=>{if(typeof window>"u"){l(new Error("Facebook SDK indisponivel neste ambiente."));return}const p=()=>{const x=window.FB;return x!=null&&x.init?(x.init({appId:t,cookie:!0,xfbml:!0,autoLogAppEvents:!0,version:r}),!0):!1};if(p()){s();return}const m=window.fbAsyncInit;if(window.fbAsyncInit=()=>{typeof m=="function"&&m(),p(),s()},document.getElementById("facebook-jssdk")){const x=window.setInterval(()=>{p()&&(window.clearInterval(x),s())},100);window.setTimeout(()=>{window.clearInterval(x),l(new Error("Nao foi possivel carregar o Facebook SDK."))},1e4);return}const f=document.createElement("script");f.id="facebook-jssdk",f.async=!0,f.defer=!0,f.crossOrigin="anonymous",f.src="https://connect.facebook.net/en_US/sdk.js",f.onerror=()=>l(new Error("Nao foi possivel carregar o Facebook SDK.")),document.body.appendChild(f)})}function oA(t){try{const n=new URL(t).hostname;return n==="facebook.com"||n.endsWith(".facebook.com")}catch{return!1}}function aA(t){var n,r;return{wabaId:t.waba_id||t.wabaId||t.business_account_id||t.businessAccountId||"",phoneNumberId:t.phone_number_id||t.phoneNumberId||((n=t.phone)==null?void 0:n.id)||"",phoneNumber:t.phone_number||t.phoneNumber||((r=t.phone)==null?void 0:r.display_phone_number)||t.display_phone_number||""}}function rA({agentId:t,flowId:n,flowName:r,onClose:s}){const[l,p]=b.useState($a),[m,h]=b.useState({}),[f,x]=b.useState({}),[j,w]=b.useState(null),[N,C]=b.useState(null),[E,T]=b.useState("global"),[R,L]=b.useState(!0),[U,P]=b.useState(!1),[F,Z]=b.useState($a.webWidget.openByDefault),[oe,ae]=b.useState(!1),[te,X]=b.useState(!1),[fe,ve]=b.useState(""),[ye,se]=b.useState(""),M=b.useMemo(()=>dv.find(O=>O.id===j),[j]),ee=String(t||"").trim(),q=ee||"default-agent",ie=String(n||"").trim(),G=String(r||"").trim(),$=ee||"<AGENTE_ID>",K=ie||"<FLOW_ID_DO_FLUXO>",I=E==="agent"?q:void 0,W=E==="agent"?`Agente: ${q}`:"Global",xe=b.useMemo(()=>tA(l.webWidget,{agentId:$,flowId:K,flowName:G||void 0}),[G,l.webWidget,$,K]),Q=(O,Ie)=>{p(ge=>({...ge,[O]:{...ge[O],...Ie}}))};b.useEffect(()=>{let O=!0;return L(!0),se(""),ze.getProviderConfig({agentId:I}).then(Ie=>{O&&(p(Zm(Ie.settings)),h(Ie.secretStatus||{}),x(Ie.providerStatus||{}))}).catch(Ie=>{O&&se(Ie instanceof Error?Ie.message:"Nao foi possivel carregar os provedores.")}).finally(()=>{O&&L(!1)}),()=>{O=!1}},[I]),b.useEffect(()=>{Z(l.webWidget.openByDefault)},[l.webWidget.openByDefault]);const be=async()=>{try{await navigator.clipboard.writeText(xe),ae(!0),window.setTimeout(()=>ae(!1),1600)}catch{se("Não foi possível copiar o código do widget.")}},Ce=async()=>{if(j){P(!0),se(""),ve("");try{const O=await ze.updateProviderConfig({[j]:{...l[j],...j==="whatsapp"||j==="webWidget"?{}:{enabled:uv(j,l,m)}}},{agentId:I});p(Zm(O.settings)),h(O.secretStatus||{}),x(O.providerStatus||{}),window.dispatchEvent(new Event("canvas-flow-provider-config-updated")),ve(`Configuracao salva em ${W}.`)}catch(O){se(O instanceof Error?O.message:"Nao foi possivel salvar o provedor.")}finally{P(!1)}}},Oe=async()=>{const O=l.whatsapp,Ie=String(O.embeddedSignupAppId||"").trim(),ge=String(O.embeddedSignupConfigId||"").trim();if(!Ie||!ge){se("Informe App ID e Configuration ID para iniciar o Embedded Signup.");return}X(!0),se(""),ve("");try{await nA(Ie,O.graphApiVersion||"v20.0");const it=await new Promise((kt,et)=>{let Te=!1,Qe="",xt={},re=!1,we;const Me=()=>{window.removeEventListener("message",Ue),we&&window.clearTimeout(we)},Ye=ft=>{Te||(Te=!0,Me(),et(ft))},st=()=>{if(!(Te||!Qe)){if(!re){we=window.setTimeout(()=>{Te||(Te=!0,Me(),kt({code:Qe,session:xt}))},2500);return}Te=!0,Me(),kt({code:Qe,session:xt})}},Ue=ft=>{if(!(!oA(ft.origin)||typeof ft.data!="string"))try{const Re=JSON.parse(ft.data);if((Re==null?void 0:Re.type)!=="WA_EMBEDDED_SIGNUP")return;(Re.event==="FINISH"||Re.event==="FINISH_ONLY_WABA")&&(xt=Re.data||{},re=!0,st()),Re.event==="CANCEL"&&Ye(new Error("Embedded Signup cancelado antes de concluir."))}catch{}};window.addEventListener("message",Ue);const tt={setup:String(O.embeddedSignupSolutionId||"").trim()?{solutionID:String(O.embeddedSignupSolutionId||"").trim()}:{},featureType:O.embeddedSignupFeatureType||"",sessionInfoVersion:O.embeddedSignupSessionInfoVersion||"3"};String(O.embeddedSignupVersion||"").trim()&&(tt.version=Number(O.embeddedSignupVersion)||O.embeddedSignupVersion),window.FB.login(ft=>{var Re;if(!((Re=ft==null?void 0:ft.authResponse)!=null&&Re.code)){Ye(new Error("A Meta nao retornou o code do Embedded Signup."));return}Qe=ft.authResponse.code,st()},{config_id:ge,response_type:"code",override_default_response_type:!0,extras:tt})}),ht=aA(it.session||{}),Ze=await ze.completeWhatsappEmbeddedSignup({code:it.code,appId:Ie,appSecret:O.embeddedSignupAppSecret||"",configId:ge,solutionId:O.embeddedSignupSolutionId||"",featureType:O.embeddedSignupFeatureType||"",sessionInfoVersion:O.embeddedSignupSessionInfoVersion||"3",embeddedSignupVersion:O.embeddedSignupVersion||"",graphApiVersion:O.graphApiVersion||"v20.0",wabaId:ht.wabaId,phoneNumberId:ht.phoneNumberId,phoneNumber:ht.phoneNumber,coexistenceEnabled:O.onboardingMode==="coexistence"||O.coexistenceEnabled===!0,redirectUri:window.location.href},{agentId:I});p(Zm(Ze.settings)),h(Ze.secretStatus||{}),x(Ze.providerStatus||{}),window.dispatchEvent(new Event("canvas-flow-provider-config-updated")),ve("Onboarding WhatsApp concluido e configuracao salva.")}catch(it){se(it instanceof Error?it.message:"Nao foi possivel concluir o onboarding WhatsApp.")}finally{X(!1)}},B=async O=>{P(!0),se(""),ve("");try{const Ie=await ze.deleteProviderConfigSection(O,{agentId:I});p(Zm(Ie.settings)),h(Ie.secretStatus||{}),x(Ie.providerStatus||{}),w(null),C(null),window.dispatchEvent(new Event("canvas-flow-provider-config-updated")),ve(`Configuracao removida de ${W}.`)}catch(Ie){se(Ie instanceof Error?Ie.message:"Nao foi possivel remover o provedor.")}finally{P(!1)}},ce=()=>{if(!j)return null;if(j==="openai")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["API key",e.jsx("input",{type:"password",value:l.openai.apiKey,onChange:O=>Q("openai",{apiKey:O.target.value})}),e.jsx(Na,{path:"openai.apiKey",status:m})]}),e.jsxs("label",{children:["Modelo do chat",e.jsx("select",{value:l.openai.chatModel,onChange:O=>Q("openai",{chatModel:O.target.value}),children:pv(lv,l.openai.chatModel).map(O=>e.jsx("option",{value:O.value,children:O.label},O.value))})]}),e.jsxs("label",{children:["Modelo de embedding",e.jsx("select",{value:l.openai.embeddingModel,onChange:O=>Q("openai",{embeddingModel:O.target.value}),children:pv(cv,l.openai.embeddingModel).map(O=>e.jsx("option",{value:O.value,children:O.label},O.value))})]}),e.jsxs("label",{children:["Modelo de OCR",e.jsx("input",{list:"provider-chat-model-options",value:l.openai.ocrModel,placeholder:"gpt-4o",onChange:O=>Q("openai",{ocrModel:O.target.value})})]})]});if(j==="azureOpenai")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["Endpoint",e.jsx("input",{value:l.azureOpenai.endpoint,placeholder:"https://recurso.openai.azure.com",onChange:O=>Q("azureOpenai",{endpoint:O.target.value})})]}),e.jsxs("label",{children:["API key",e.jsx("input",{type:"password",value:l.azureOpenai.apiKey,onChange:O=>Q("azureOpenai",{apiKey:O.target.value})}),e.jsx(Na,{path:"azureOpenai.apiKey",status:m})]}),e.jsxs("label",{children:["API version",e.jsx("input",{value:l.azureOpenai.apiVersion,onChange:O=>Q("azureOpenai",{apiVersion:O.target.value})})]}),e.jsxs("label",{children:["Deployment/modelo do chat",e.jsx("input",{list:"provider-chat-model-options",value:l.azureOpenai.chatDeploymentName,placeholder:"gpt-5.4-mini ou nome do deployment",onChange:O=>Q("azureOpenai",{chatDeploymentName:O.target.value})}),e.jsx("span",{className:"provider-secret-hint",children:"No Azure, informe o nome do deployment criado no portal. Pode ser igual ao modelo, se voce nomeou assim."})]}),e.jsxs("label",{children:["Deployment de embedding",e.jsx("input",{list:"provider-embedding-model-options",value:l.azureOpenai.embeddingDeploymentName,placeholder:"text-embedding-3-large ou nome do deployment",onChange:O=>Q("azureOpenai",{embeddingDeploymentName:O.target.value})})]}),e.jsxs("label",{children:["Deployment de OCR",e.jsx("input",{list:"provider-chat-model-options",value:l.azureOpenai.ocrDeploymentName,placeholder:"gpt-4o ou nome do deployment",onChange:O=>Q("azureOpenai",{ocrDeploymentName:O.target.value})})]}),e.jsxs("label",{children:["Dimensoes do embedding",e.jsx("input",{type:"number",min:1,value:l.azureOpenai.embeddingDimensions,onChange:O=>Q("azureOpenai",{embeddingDimensions:Number(O.target.value)||3072})})]})]});if(j==="gemini")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["API key",e.jsx("input",{type:"password",value:l.gemini.apiKey,onChange:O=>Q("gemini",{apiKey:O.target.value})}),e.jsx(Na,{path:"gemini.apiKey",status:m})]}),e.jsxs("label",{children:["Modelo do chat",e.jsx("input",{list:"provider-chat-model-options",value:l.gemini.chatModel,placeholder:"gemini-3.5-flash",onChange:O=>Q("gemini",{chatModel:O.target.value})})]})]});if(j==="claude")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["API key",e.jsx("input",{type:"password",value:l.claude.apiKey,onChange:O=>Q("claude",{apiKey:O.target.value})}),e.jsx(Na,{path:"claude.apiKey",status:m})]}),e.jsxs("label",{children:["Modelo do chat",e.jsx("input",{list:"provider-chat-model-options",value:l.claude.chatModel,placeholder:"claude-sonnet-4-6",onChange:O=>Q("claude",{chatModel:O.target.value})})]})]});if(j==="grok")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["API key",e.jsx("input",{type:"password",value:l.grok.apiKey,onChange:O=>Q("grok",{apiKey:O.target.value})}),e.jsx(Na,{path:"grok.apiKey",status:m})]}),e.jsxs("label",{children:["Base URL",e.jsx("input",{value:l.grok.baseUrl,placeholder:"https://api.x.ai/v1",onChange:O=>Q("grok",{baseUrl:O.target.value})})]}),e.jsxs("label",{children:["Modelo do chat",e.jsx("input",{list:"provider-chat-model-options",value:l.grok.chatModel,placeholder:"grok-2-latest",onChange:O=>Q("grok",{chatModel:O.target.value})})]})]});if(j==="bedrock")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["API key do gateway",e.jsx("input",{type:"password",value:l.bedrock.apiKey,onChange:O=>Q("bedrock",{apiKey:O.target.value})}),e.jsx(Na,{path:"bedrock.apiKey",status:m})]}),e.jsxs("label",{children:["Base URL",e.jsx("input",{value:l.bedrock.baseUrl,placeholder:"https://seu-gateway-bedrock/v1",onChange:O=>Q("bedrock",{baseUrl:O.target.value})}),e.jsx("span",{className:"provider-secret-hint",children:"Use um gateway Bedrock OpenAI-compatible. Assim o Canvas mantém tools, JSON mode e auditoria no mesmo formato."})]}),e.jsxs("label",{children:["Regiao",e.jsx("input",{value:l.bedrock.region,placeholder:"us-east-1",onChange:O=>Q("bedrock",{region:O.target.value})})]}),e.jsxs("label",{children:["Modelo do chat",e.jsx("input",{list:"provider-chat-model-options",value:l.bedrock.chatModel,placeholder:"anthropic.claude-sonnet-4-6",onChange:O=>Q("bedrock",{chatModel:O.target.value})})]})]});if(j==="milvus")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["Address",e.jsx("input",{value:l.milvus.address,placeholder:"host:19530",onChange:O=>Q("milvus",{address:O.target.value})})]}),e.jsxs("label",{children:["Token",e.jsx("input",{type:"password",value:l.milvus.token,onChange:O=>Q("milvus",{token:O.target.value})}),e.jsx(Na,{path:"milvus.token",status:m})]}),e.jsxs("label",{children:["Username",e.jsx("input",{value:l.milvus.username,onChange:O=>Q("milvus",{username:O.target.value})})]}),e.jsxs("label",{children:["Password",e.jsx("input",{type:"password",value:l.milvus.password,onChange:O=>Q("milvus",{password:O.target.value})}),e.jsx(Na,{path:"milvus.password",status:m})]}),e.jsxs("label",{children:["Collection padrao",e.jsx("input",{value:l.milvus.collectionName,onChange:O=>Q("milvus",{collectionName:O.target.value})})]})]});if(j==="azureBlob")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["Connection string",e.jsx("input",{type:"password",value:l.azureBlob.connectionString,onChange:O=>Q("azureBlob",{connectionString:O.target.value})}),e.jsx(Na,{path:"azureBlob.connectionString",status:m})]}),e.jsxs("label",{children:["Container",e.jsx("input",{value:l.azureBlob.containerName,onChange:O=>Q("azureBlob",{containerName:O.target.value})})]})]});if(j==="azureSearch")return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["Endpoint",e.jsx("input",{value:l.azureSearch.endpoint,placeholder:"https://servico.search.windows.net",onChange:O=>Q("azureSearch",{endpoint:O.target.value})})]}),e.jsxs("label",{children:["API key",e.jsx("input",{type:"password",value:l.azureSearch.apiKey,onChange:O=>Q("azureSearch",{apiKey:O.target.value})}),e.jsx(Na,{path:"azureSearch.apiKey",status:m})]}),e.jsxs("label",{children:["Index padrao",e.jsx("input",{value:l.azureSearch.indexName,onChange:O=>Q("azureSearch",{indexName:O.target.value})})]}),e.jsxs("label",{children:["API version",e.jsx("input",{value:l.azureSearch.apiVersion,onChange:O=>Q("azureSearch",{apiVersion:O.target.value})})]})]});if(j==="whatsapp"){const O=l.whatsapp.onboardingMode||"manual",Ie=Yk[O];return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["Provedor WhatsApp",e.jsxs("select",{value:l.whatsapp.provider,onChange:ge=>Q("whatsapp",{provider:ge.target.value}),children:[e.jsx("option",{value:"meta",children:"Meta Cloud API"}),e.jsx("option",{value:"blip",children:"Blip"}),e.jsx("option",{value:"sinch",children:"Sinch"})]})]}),e.jsxs("label",{children:["Modo de entrega",e.jsxs("select",{value:l.whatsapp.deliveryMode||"provider",onChange:ge=>Q("whatsapp",{deliveryMode:ge.target.value}),children:[e.jsx("option",{value:"provider",children:"Enviar pelo provedor"}),e.jsx("option",{value:"apiResponse",children:"Responder no payload da API"})]})]}),e.jsxs("label",{className:"provider-checkbox-label",children:[e.jsx("input",{type:"checkbox",checked:l.whatsapp.autoReply!==!1,onChange:ge=>Q("whatsapp",{autoReply:ge.target.checked})}),"Responder automaticamente mensagens do assistente"]}),l.whatsapp.provider==="meta"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Modo de onboarding",e.jsxs("select",{value:O,onChange:ge=>{const it=ge.target.value;Q("whatsapp",{onboardingMode:it,coexistenceEnabled:it==="coexistence",syncMessageEchoes:it==="coexistence"?!0:l.whatsapp.syncMessageEchoes,...it==="coexistence"?{embeddedSignupAppId:l.whatsapp.embeddedSignupAppId||Qi.embeddedSignupAppId,embeddedSignupConfigId:l.whatsapp.embeddedSignupConfigId||Qi.embeddedSignupConfigId,embeddedSignupSessionInfoVersion:l.whatsapp.embeddedSignupSessionInfoVersion||Qi.embeddedSignupSessionInfoVersion,embeddedSignupVersion:l.whatsapp.embeddedSignupVersion||Qi.embeddedSignupVersion}:it==="embeddedSignup"?{embeddedSignupAppId:l.whatsapp.embeddedSignupAppId===Qi.embeddedSignupAppId?"":l.whatsapp.embeddedSignupAppId,embeddedSignupConfigId:l.whatsapp.embeddedSignupConfigId===Qi.embeddedSignupConfigId?"":l.whatsapp.embeddedSignupConfigId}:{}})},children:[e.jsx("option",{value:"manual",children:"Manual: token existente"}),e.jsx("option",{value:"embeddedSignup",children:"Self-hosted: meu app Meta"}),e.jsx("option",{value:"coexistence",children:"Sinergy gerenciado: Coexistence"})]})]}),e.jsxs("section",{className:"provider-onboarding-note",children:[e.jsx(ks,{size:17}),e.jsxs("div",{children:[e.jsx("strong",{children:Ie.title}),e.jsx("p",{children:Ie.description})]})]}),(O==="embeddedSignup"||O==="coexistence")&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Meta App ID",e.jsx("input",{value:l.whatsapp.embeddedSignupAppId||"",onChange:ge=>Q("whatsapp",{embeddedSignupAppId:ge.target.value})})]}),e.jsxs("label",{children:["Configuration ID",e.jsx("input",{value:l.whatsapp.embeddedSignupConfigId||"",onChange:ge=>Q("whatsapp",{embeddedSignupConfigId:ge.target.value})})]}),e.jsxs("label",{children:["App secret",e.jsx("input",{type:"password",value:l.whatsapp.embeddedSignupAppSecret||"",onChange:ge=>Q("whatsapp",{embeddedSignupAppSecret:ge.target.value})}),e.jsx(Na,{path:"whatsapp.embeddedSignupAppSecret",status:m})]}),e.jsxs("label",{children:["Solution ID",e.jsx("input",{value:l.whatsapp.embeddedSignupSolutionId||"",onChange:ge=>Q("whatsapp",{embeddedSignupSolutionId:ge.target.value})})]}),e.jsxs("label",{children:["Feature type",e.jsx("input",{value:l.whatsapp.embeddedSignupFeatureType||"",placeholder:"Opcional",onChange:ge=>Q("whatsapp",{embeddedSignupFeatureType:ge.target.value})})]}),e.jsxs("label",{children:["Session info version",e.jsx("input",{value:l.whatsapp.embeddedSignupSessionInfoVersion||"3",onChange:ge=>Q("whatsapp",{embeddedSignupSessionInfoVersion:ge.target.value})})]}),e.jsxs("button",{className:"provider-action-button",type:"button",onClick:Oe,disabled:te||U,children:[te?e.jsx($t,{size:16,className:"spin"}):e.jsx(qf,{size:16}),te?"Conectando...":"Conectar WhatsApp"]})]}),e.jsxs("label",{className:"provider-checkbox-label",children:[e.jsx("input",{type:"checkbox",checked:l.whatsapp.syncMessageEchoes!==!1,onChange:ge=>Q("whatsapp",{syncMessageEchoes:ge.target.checked})}),"Sincronizar mensagens enviadas pelo WhatsApp Business app"]}),e.jsxs("label",{className:"provider-checkbox-label",children:[e.jsx("input",{type:"checkbox",checked:l.whatsapp.syncHistory===!0,onChange:ge=>Q("whatsapp",{syncHistory:ge.target.checked})}),"Importar historico quando a Meta enviar o evento"]}),e.jsxs("label",{children:["Verify token",e.jsx("input",{value:l.whatsapp.verifyToken,onChange:ge=>Q("whatsapp",{verifyToken:ge.target.value})})]}),e.jsxs("label",{children:["Business Account ID",e.jsx("input",{value:l.whatsapp.businessAccountId||"",onChange:ge=>Q("whatsapp",{businessAccountId:ge.target.value})})]}),e.jsxs("label",{children:["Phone Number ID",e.jsx("input",{value:l.whatsapp.phoneNumberId,onChange:ge=>Q("whatsapp",{phoneNumberId:ge.target.value})})]}),e.jsxs("label",{children:["Access token",e.jsx("input",{type:"password",value:l.whatsapp.accessToken,onChange:ge=>Q("whatsapp",{accessToken:ge.target.value})}),e.jsx(Na,{path:"whatsapp.accessToken",status:m})]}),e.jsxs("label",{children:["Graph API version",e.jsx("input",{value:l.whatsapp.graphApiVersion,onChange:ge=>Q("whatsapp",{graphApiVersion:ge.target.value})})]})]}),l.whatsapp.provider==="blip"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Contract ID",e.jsx("input",{value:l.whatsapp.blipContractId||"",onChange:ge=>Q("whatsapp",{blipContractId:ge.target.value})})]}),e.jsxs("label",{children:["Authorization key",e.jsx("input",{type:"password",value:l.whatsapp.blipAuthorizationKey||"",onChange:ge=>Q("whatsapp",{blipAuthorizationKey:ge.target.value})}),e.jsx(Na,{path:"whatsapp.blipAuthorizationKey",status:m})]})]}),l.whatsapp.provider==="sinch"&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["API Sinch",e.jsxs("select",{value:l.whatsapp.sinchApiMode||"conversation",onChange:ge=>Q("whatsapp",{sinchApiMode:ge.target.value}),children:[e.jsx("option",{value:"conversation",children:"Conversation API"}),e.jsx("option",{value:"relay",children:"Relay/API response"})]})]}),e.jsxs("label",{children:["Regiao",e.jsx("input",{value:l.whatsapp.sinchRegion||"us",onChange:ge=>Q("whatsapp",{sinchRegion:ge.target.value})})]}),e.jsxs("label",{children:["Canal",e.jsx("input",{value:l.whatsapp.sinchChannel||"WHATSAPP",onChange:ge=>Q("whatsapp",{sinchChannel:ge.target.value})})]}),l.whatsapp.sinchApiMode==="relay"?e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Service number",e.jsx("input",{value:l.whatsapp.sinchServiceNumber||"",onChange:ge=>Q("whatsapp",{sinchServiceNumber:ge.target.value})})]}),e.jsxs("label",{children:["Service username",e.jsx("input",{value:l.whatsapp.sinchServiceUsername||"",onChange:ge=>Q("whatsapp",{sinchServiceUsername:ge.target.value})})]}),e.jsxs("label",{children:["Service token",e.jsx("input",{type:"password",value:l.whatsapp.sinchServiceToken||"",onChange:ge=>Q("whatsapp",{sinchServiceToken:ge.target.value})}),e.jsx(Na,{path:"whatsapp.sinchServiceToken",status:m})]})]}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Project ID",e.jsx("input",{value:l.whatsapp.sinchProjectId||"",onChange:ge=>Q("whatsapp",{sinchProjectId:ge.target.value})})]}),e.jsxs("label",{children:["App ID",e.jsx("input",{value:l.whatsapp.sinchAppId||"",onChange:ge=>Q("whatsapp",{sinchAppId:ge.target.value})})]}),e.jsxs("label",{children:["Access token",e.jsx("input",{type:"password",value:l.whatsapp.sinchAccessToken||"",onChange:ge=>Q("whatsapp",{sinchAccessToken:ge.target.value})}),e.jsx(Na,{path:"whatsapp.sinchAccessToken",status:m})]})]})]})]})}if(j==="webWidget"){const O=l.webWidget,Ie=O.position==="left"?"left":"right";return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["Cor principal",e.jsxs("div",{className:"widget-color-row",children:[e.jsx("input",{"aria-label":"Cor principal",type:"color",value:l.webWidget.primaryColor,onChange:ge=>Q("webWidget",{primaryColor:ge.target.value})}),e.jsx("input",{value:l.webWidget.primaryColor,onChange:ge=>Q("webWidget",{primaryColor:ge.target.value})})]})]}),e.jsxs("label",{children:["Cor de destaque",e.jsxs("div",{className:"widget-color-row",children:[e.jsx("input",{"aria-label":"Cor de destaque",type:"color",value:l.webWidget.accentColor,onChange:ge=>Q("webWidget",{accentColor:ge.target.value})}),e.jsx("input",{value:l.webWidget.accentColor,onChange:ge=>Q("webWidget",{accentColor:ge.target.value})})]})]}),e.jsxs("label",{children:["Posicao",e.jsxs("select",{value:l.webWidget.position,onChange:ge=>Q("webWidget",{position:ge.target.value}),children:[e.jsx("option",{value:"right",children:"Direita"}),e.jsx("option",{value:"left",children:"Esquerda"})]})]}),e.jsxs("label",{className:"provider-checkbox-label",children:[e.jsx("input",{type:"checkbox",checked:l.webWidget.openByDefault===!0,onChange:ge=>Q("webWidget",{openByDefault:ge.target.checked})}),"Manter aberto ao carregar"]}),e.jsxs("label",{children:["Nome do assistente",e.jsx("input",{value:l.webWidget.assistantName,onChange:ge=>Q("webWidget",{assistantName:ge.target.value})})]}),e.jsxs("label",{children:["Subtitulo",e.jsx("input",{value:l.webWidget.subtitle,onChange:ge=>Q("webWidget",{subtitle:ge.target.value})})]}),e.jsxs("label",{children:["Mensagem inicial",e.jsx("textarea",{rows:3,value:l.webWidget.welcomeMessage,onChange:ge=>Q("webWidget",{welcomeMessage:ge.target.value})})]}),e.jsxs("label",{children:["Placeholder",e.jsx("input",{value:l.webWidget.placeholder,onChange:ge=>Q("webWidget",{placeholder:ge.target.value})})]}),e.jsxs("label",{children:["Balao",e.jsx("input",{value:l.webWidget.bubbleLabel,onChange:ge=>Q("webWidget",{bubbleLabel:ge.target.value})})]}),e.jsxs("label",{children:["Avatar",e.jsx("input",{value:l.webWidget.avatarText,onChange:ge=>Q("webWidget",{avatarText:eA(ge.target.value)})})]}),e.jsxs("section",{className:"provider-widget-context-card",children:[e.jsxs("div",{children:[e.jsx(ks,{size:18}),e.jsx("strong",{children:"Contexto da conversa"})]}),e.jsx("p",{children:"O backend usa LangGraph para recuperar o checkpoint pelo conversationId. Em producao, o recomendado e o seu backend/proxy controlar o conversationId do usuario logado e chamar o Canvas Flow com Authorization fora do navegador."}),e.jsxs("ul",{children:[e.jsx("li",{children:"Usuario anonimo: gere um conversationId uma vez e guarde no browser."}),e.jsx("li",{children:"Usuario logado: derive o conversationId no backend, por exemplo pelo ID interno do usuario ou da sessao."}),e.jsx("li",{children:"Contexto do usuario entra em slots.user, somente com dados nao sensiveis."}),e.jsx("li",{children:"Para continuar a conversa, reenvie o mesmo conversationId. O backend mantem o no atual e os slots."})]})]}),e.jsxs("div",{className:"provider-widget-live",children:[e.jsxs("section",{className:"provider-widget-panel",children:[e.jsx("div",{className:"provider-widget-panel-header",children:e.jsxs("div",{children:[e.jsx("strong",{children:"Prévia do widget"}),e.jsx("span",{children:"Amostra visual com a configuração atual."})]})}),e.jsxs("div",{className:"provider-widget-stage",children:[e.jsxs("header",{className:"provider-widget-site-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Site do cliente"}),e.jsx("span",{children:"Atendimento online"})]}),e.jsxs("nav",{children:[e.jsx("span",{children:"Produtos"}),e.jsx("span",{children:"Contato"})]})]}),e.jsx("main",{className:"provider-widget-site-body",children:e.jsxs("section",{children:[e.jsx("span",{children:"Web widget"}),e.jsx("strong",{children:"Experiência no site"}),e.jsx("p",{children:"Prévia de abertura, cores e textos do atendimento."})]})}),e.jsxs("div",{className:`web-widget-preview ${Ie}`,children:[F&&e.jsxs("div",{className:"web-widget-window",style:{"--widget-primary":O.primaryColor,"--widget-accent":O.accentColor},children:[e.jsxs("div",{className:"web-widget-header",children:[e.jsx("div",{className:"web-widget-avatar",children:O.avatarText||"IA"}),e.jsxs("div",{children:[e.jsx("strong",{children:O.assistantName||"Assistente IA"}),e.jsx("span",{children:O.subtitle||"Online agora"})]}),e.jsx("button",{type:"button","aria-label":"Fechar preview",onClick:()=>Z(!1),children:e.jsx(Ut,{size:16})})]}),e.jsxs("div",{className:"web-widget-messages",children:[e.jsx("div",{className:"web-widget-day",children:"Hoje"}),e.jsxs("div",{className:"web-widget-bubble assistant",children:[e.jsx(Ho,{size:14}),e.jsx("p",{children:O.welcomeMessage||"Olá! Como posso ajudar?"})]}),e.jsxs("div",{className:"web-widget-quick-replies",children:[e.jsx("button",{type:"button",children:"Falar com atendimento"}),e.jsx("button",{type:"button",children:"Consultar pedido"})]}),e.jsx("div",{className:"web-widget-bubble user",children:e.jsx("p",{children:"Quero tirar uma dúvida."})}),e.jsx("div",{className:"web-widget-bubble assistant compact",children:e.jsx("p",{children:"Claro. Me conte o que você precisa."})})]}),e.jsxs("div",{className:"web-widget-input",children:[e.jsx("input",{value:"",readOnly:!0,placeholder:O.placeholder||"Digite sua mensagem"}),e.jsx("button",{type:"button","aria-label":"Enviar preview",children:e.jsx(fj,{size:17})})]})]}),e.jsxs("button",{type:"button",className:`web-widget-launcher ${F?"open":""}`,style:{"--widget-primary":O.primaryColor,"--widget-accent":O.accentColor},onClick:()=>Z(ge=>!ge),children:[e.jsx(qf,{size:22}),!F&&O.bubbleLabel&&e.jsx("span",{children:O.bubbleLabel})]})]})]})]}),e.jsxs("section",{className:"provider-widget-panel",children:[e.jsxs("div",{className:"provider-widget-panel-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Código do widget"}),e.jsxs("span",{children:["Agente: ",$," · Fluxo: ",ie?K:"salve o fluxo para gerar o flowId"]})]}),e.jsxs("button",{type:"button",className:"primary-button",onClick:be,children:[oe?e.jsx(Ji,{size:15}):e.jsx(nn,{size:15}),oe?"Copiado":"Copiar código"]})]}),e.jsx("pre",{className:"provider-widget-code-block",children:e.jsx("code",{children:xe})})]})]})]})}return e.jsxs("div",{className:"provider-form-grid",children:[e.jsxs("label",{children:["Connection string",e.jsx("input",{type:"password",value:l.mongodb.connectionString,onChange:O=>Q("mongodb",{connectionString:O.target.value})}),e.jsx(Na,{path:"mongodb.connectionString",status:m})]}),e.jsxs("label",{children:["Database",e.jsx("input",{value:l.mongodb.databaseName,onChange:O=>Q("mongodb",{databaseName:O.target.value})})]})]})};return e.jsxs("div",{className:"provider-config-shell",children:[e.jsx("datalist",{id:"provider-chat-model-options",children:lv.map(O=>e.jsx("option",{value:O.value},O.value))}),e.jsx("datalist",{id:"provider-embedding-model-options",children:cv.map(O=>e.jsx("option",{value:O.value},O.value))}),e.jsxs("div",{className:"provider-config-intro",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:[e.jsx(ks,{size:17})," Provedores do Canvas Flow"]}),e.jsx("p",{children:"Configure credenciais, modelos padrão e deployments globais ou sobrescreva por agente."})]}),e.jsxs("button",{type:"button",className:"primary-button",onClick:Ce,disabled:U||R||!j,children:[U?e.jsx($t,{size:15,className:"spin"}):e.jsx(Fl,{size:15}),"Salvar"]})]}),e.jsxs("div",{className:"provider-scope-bar",children:[e.jsx("span",{children:"Escopo"}),e.jsxs("div",{className:"provider-scope-toggle",children:[e.jsx("button",{type:"button",className:E==="global"?"active":"",onClick:()=>T("global"),children:"Global"}),e.jsx("button",{type:"button",className:E==="agent"?"active":"",onClick:()=>T("agent"),children:"Agente atual"})]}),e.jsx("small",{children:E==="agent"?`Usando sobrescritas para ${q}. Campos vazios herdam o Global.`:"Usado como fallback para todos os agentes."})]}),R&&e.jsx("div",{className:"provider-config-status",children:"Carregando configuracoes..."}),ye&&e.jsx("div",{className:"api-keys-error",children:ye}),fe&&e.jsx("div",{className:"provider-config-success",children:fe}),!j&&e.jsx("div",{className:"provider-component-grid",children:dv.map(O=>{const Ie=O.Icon,ge=uv(O.id,l,m),it=Zk(O.id,f,ge,E),ht=it!=="Nao configurado";return e.jsxs("div",{role:"button",tabIndex:0,className:"provider-component-card",onClick:()=>w(O.id),onKeyDown:Ze=>{(Ze.key==="Enter"||Ze.key===" ")&&(Ze.preventDefault(),w(O.id))},style:{borderColor:`${O.color}40`},children:[e.jsx("span",{className:"provider-card-icon",style:{color:O.color,background:`${O.color}12`},children:e.jsx(Ie,{size:19})}),e.jsxs("span",{className:"provider-card-main",children:[e.jsx("strong",{children:O.title}),e.jsx("small",{children:O.subtitle}),e.jsx("em",{className:ht?"configured":void 0,children:it})]}),e.jsx("span",{role:"button",tabIndex:0,className:"provider-card-delete",onClick:Ze=>{Ze.stopPropagation(),C(O.id)},onKeyDown:Ze=>{(Ze.key==="Enter"||Ze.key===" ")&&(Ze.preventDefault(),Ze.stopPropagation(),C(O.id))},children:e.jsx(St,{size:14})})]},O.id)})}),j&&M&&e.jsxs("div",{className:"provider-editor",children:[e.jsxs("div",{className:"provider-editor-header",children:[e.jsxs("button",{type:"button",onClick:()=>w(null),children:[e.jsx(wS,{size:15}),"Voltar"]}),e.jsxs("div",{children:[e.jsx("strong",{children:M.title}),e.jsx("span",{children:M.subtitle})]}),e.jsxs("button",{type:"button",className:"danger-button compact-danger-button",onClick:()=>C(j),children:[e.jsx(St,{size:14}),"Excluir"]})]}),ce()]}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{type:"button",onClick:s,children:"Fechar"}),e.jsxs("button",{type:"button",className:"primary-button",onClick:Ce,disabled:U||R||!j,children:[U?e.jsx($t,{size:15,className:"spin"}):e.jsx(Fl,{size:15}),"Salvar"]})]}),N&&e.jsxs("div",{className:"provider-delete-confirm",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Excluir configuracao?"}),e.jsx("p",{children:"Os campos salvos deste provedor serao limpos, incluindo segredos armazenados."})]}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{type:"button",onClick:()=>C(null),children:"Cancelar"}),e.jsxs("button",{type:"button",className:"danger-button",onClick:()=>void B(N),disabled:U,children:[U?e.jsx($t,{size:15,className:"spin"}):e.jsx(St,{size:15}),"Excluir"]})]})]})]})}const sA={primaryColor:"#0f6bff",accentColor:"#00b37e",assistantName:"Assistente IA",subtitle:"Online agora",welcomeMessage:"Ola! Como posso ajudar?",placeholder:"Digite sua mensagem",bubbleLabel:"Precisa de ajuda?",avatarText:"IA",openByDefault:!1,position:"right"};function Vu(t){return{...sA,...t||{}}}const mv={provider:"meta",deliveryMode:"provider",onboardingMode:"manual",verifyToken:"canvas-flow-token",businessAccountId:"",phoneNumberId:"",accessToken:"",graphApiVersion:"v20.0",autoReply:!0,coexistenceEnabled:!1,syncMessageEchoes:!0,syncHistory:!1,embeddedSignupAppId:"",embeddedSignupConfigId:"",embeddedSignupAppSecret:"",embeddedSignupSolutionId:"",embeddedSignupFeatureType:"",embeddedSignupSessionInfoVersion:"3",embeddedSignupVersion:"",blipContractId:"",blipAuthorizationKey:"",sinchProjectId:"",sinchAppId:"",sinchRegion:"us",sinchAccessToken:"",sinchChannel:"WHATSAPP",sinchApiMode:"conversation",sinchServiceNumber:"",sinchServiceUsername:"",sinchServiceToken:""};function Qp(t){const n=t||{};return{...mv,...t||{},sinchApiMode:n.sinchApiMode==="broker"?"relay":n.sinchApiMode||mv.sinchApiMode,sinchServiceNumber:n.sinchServiceNumber||n.sinchBrokerNumber||"",sinchServiceUsername:n.sinchServiceUsername||n.sinchBrokerUsername||n.sinchBrokerNumber||"",sinchServiceToken:n.sinchServiceToken||n.sinchBrokerToken||""}}function ko(t){return`${t}-${Math.random().toString(36).slice(2,9)}-${Date.now().toString(36)}`}function wt(t,n,r){const s={id:ko(t),type:t,title:"",instruction:"",position:{x:120+n*230,y:180+n%2*160},tags:[]};if(t==="message")return{...s,title:"Mensagem",instruction:"Escreva a mensagem para o usuário.",messageUseLlm:!1,messageLlmModel:"",messageLlmTemperature:.4};if(t==="richMessage")return{...s,title:"Mensagem rica",instruction:"Mensagem interativa por canal.",richMessage:{type:"buttons",text:"Escolha uma opcao:",footer:"",media:{url:"",fileName:"",mimeType:""},buttons:[{id:"sim",label:"Sim",value:"sim"},{id:"nao",label:"Não",value:"nao"}],quickReplies:[{id:"ajuda",label:"Ajuda",value:"ajuda"},{id:"falar_atendente",label:"Atendente",value:"atendente"}],list:{buttonText:"Ver opções",sections:[{title:"Opções",items:[{id:"produto",title:"Produto",description:"Ver produtos",value:"produto"},{id:"suporte",title:"Suporte",description:"Falar com suporte",value:"suporte"}]}]},carousel:{cards:[{id:"card-1",title:"Produto exemplo",subtitle:"Descricao curta do produto.",imageUrl:"",buttons:[{id:"ver_produto",label:"Ver produto",value:"ver_produto"}]}]},appointmentFlow:{mode:"auto",flowId:"",flowToken:"{{context.conversationId}}",flowCta:"Agendar",flowScreen:"START",headerText:"Agendamento",buttonText:"Ver opções",stage:"actions",stageTemplate:"{{context.slots.appointmentStage}}",actionsTemplate:"",appointmentsTemplate:"{{context.slots.appointments}}",providersTemplate:"{{context.slots.providers}}",servicesTemplate:"{{context.slots.services}}",datesTemplate:"{{context.slots.dates}}",timesTemplate:"{{context.slots.times}}",itemsTemplate:"{{context.slots.items}}",itemsFilterTemplate:"",itemsMaxSelected:20,examsTemplate:"{{context.slots.exams}}",payloadTemplate:"{}",stepOrder:["providers","services","items","dates","times"],stepLabels:{actions:"Ações iniciais",appointments:"Meus agendamentos",providers:"Prestadores",services:"Serviços",dates:"Datas",times:"Horários",items:"Itens selecionáveis"},attachmentSteps:[],llmEnabled:!1,llmSourceTemplate:"{{context.slots.schedules}}",llmInstruction:"Receba os agendamentos/horários brutos e retorne providers, services, items, dates, times e appointments no formato do WhatsApp Flow.",llmModel:"",llmTemperature:.1},generation:{enabled:!1,prompt:"Gere opções objetivas em pt-BR com base no contexto da conversa e no texto principal.",model:"",maxItems:3}}};if(t==="input")return{...s,title:"Coletar dado",instruction:"Informe o dado para continuar.",responseName:"input",inputValidationMode:"none",inputValidationType:"text",inputValidationRegex:"",inputValidationErrorMessage:"Valor inválido. Informe novamente.",inputValidationLlmInstruction:"Valide se a entrada do usuário atende ao dado solicitado.",inputValidationLlmModel:"",inputValidationLlmTemperature:0};if(t==="api")return{...s,title:"API httpBatch",instruction:"Execute uma ou mais chamadas HTTP.",responseName:"api",api:{responseName:"api",requests:[{method:"GET",url:"https://example.com",headers:{},params:{},bodyType:"none"}],generation:{enabled:!1,prompt:"Monte uma ou mais chamadas HTTP usando o contexto do fluxo.",model:"",temperature:.2,fallbackToManual:!0}}};if(t==="condition")return{...s,title:"Condição",instruction:'context.slots.input === "ok"',responseName:"condition",condition:'context.slots.input === "ok"',conditionMode:"js"};if(t==="end")return{...s,title:"Responder",instruction:"Fluxo finalizado."};if(t==="group")return{...s,title:"Encapsulador",instruction:"Arraste ou selecione nós para colocar aqui.",group:{width:520,height:340}};if(r==="debug")return{...s,type:"component",title:"Debug",instruction:"Registra um snapshot do contexto.",responseName:"debug",component:{type:"debug",responseName:"debug"}};if(r==="mongodb")return{...s,type:"component",title:"MongoDB",instruction:"Conecta em uma collection para CRUD ou registro analítico.",responseName:"mongo",component:{type:"mongodb",responseName:"mongo",mongoOperation:"insertOne",mongoCollectionName:"flow_events",mongoFilter:"{}",mongoDocument:"{}",mongoUpdate:"{}",mongoPipeline:"[]",mongoProjection:"{}",mongoSort:'{"createdAt": -1}',mongoLimit:50,mongoPage:1,mongoSkip:0,mongoPaginationMode:"single",mongoMaxPages:5,mongoDateField:"createdAt",mongoDateStart:"",mongoDateEnd:"",mongoDateTimezone:"America/Sao_Paulo",mongoUseLlmFilter:!1,mongoLlmMode:"filter",mongoLlmInstruction:"",mongoLlmModel:""}};if(r==="openaiGen"||r==="azureOpenAI"){const l=r==="azureOpenAI";return{...s,type:"component",title:l?"Azure OpenAI":"Agente",instruction:l?"Gera resposta usando Azure OpenAI.":"Agente LLM que usa o Agent Workspace para rules, skills, subagents, MCP e guardrails.",responseName:l?"azureOpenAI":"agente",component:{type:r,responseName:l?"azureOpenAI":"agente",ragLlmProvider:l?"azure_openai":"auto",ragLlmModel:"",agentRole:l?void 0:"simple",agentUseWorkspaceCatalog:!0,agentExecutionMode:l?"flow":"hybrid",agentMaxToolCalls:1,queryTemplate:"{{context.slots.userInput}}",llmContextTemplate:"",ragDocsPath:"",prompt:"Responda em pt-BR de forma objetiva usando os documentos conectados quando existirem.",turnHistoricMessages:20,agentSpec:l?void 0:{agentsMd:"",guardrails:"",blockedTerms:[]}}}}if(r==="agentPlan")return{...s,type:"component",title:"Agent Plan",instruction:"Define como o agente deve planejar antes de chamar skills, subagents e MCP.",responseName:"agentPlan",component:{type:"agentPlan",responseName:"agentPlan",agentPlanMode:"advisory",agentPlanInstructions:["Quebre pedidos com multiplas intencoes em uma etapa por ferramenta.","Use somente ferramentas que estejam no manifesto visivel do agente.","Nao use tradutor para resumir, nem resumidor para traduzir."].join(`
545
+ `),agentPlanJson:`{
546
+ "plan": []
547
+ }`,agentPlanMaxToolCalls:3,agentPlanClearAfterUse:!0}};if(r==="mcp")return{...s,type:"component",title:"MCP",instruction:"Executa uma ferramenta MCP-style com contrato, LLM e schema.",responseName:"mcp",component:{type:"mcp",responseName:"mcp",mcpMode:"fields",mcpToolName:"montar_campos",mcpToolDescription:"Monta campos estruturados para o fluxo com base no contexto.",mcpInstruction:"Use o contexto do fluxo e retorne somente os campos solicitados no schema de saída.",mcpInputSchema:`{
548
+ "type": "object",
549
+ "properties": {
550
+ "input": { "type": "string", "description": "Entrada do usuário" }
551
+ }
552
+ }`,mcpOutputSchema:`{
553
+ "type": "object",
554
+ "properties": {
555
+ "status": { "type": "string" },
556
+ "campos": { "type": "object" }
557
+ }
558
+ }`,mcpLlmProvider:"auto",mcpModel:"",mcpTemperature:.1,mcpApiMethod:"POST",mcpApiBaseUrl:"",mcpApiHeadersJson:"{}",mcpApiQueryJson:"{}",mcpApiBodyJson:"{}",mcpApiAuthMode:"none",mcpApiAuthHeaderName:"Authorization",mcpApiAuthQueryParam:"api_key",mcpApiAllowLlmRequest:!0,mcpApiMapResultWithLlm:!0,mcpApiExecute:!0,mcpApiCallMode:"single",mcpApiExecutionMode:"sequential",mcpApiRequestsJson:"[]",mcpMergeOutputToSlots:!1,mcpExternalTransport:"streamable_http",mcpExternalUrl:"",mcpExternalHeadersJson:"{}",mcpExternalAuthMode:"none",mcpExternalOAuthConnectionScope:"agent",mcpExternalAuthHeaderName:"Authorization",mcpExternalAuthQueryParam:"api_key",mcpExternalOperation:"callTool",mcpExternalToolName:"",mcpExternalArgumentsJson:"{}",mcpExternalResourceUri:"",mcpExternalPromptName:"",mcpExternalPromptArgumentsJson:"{}",mcpExternalUseLlmArguments:!0,mcpExternalMapResultWithLlm:!0,mcpExternalTimeoutMs:3e4}};if(r==="files")return{...s,type:"component",title:"Arquivos",instruction:"Leia arquivos enviados ou uma URL e salve o texto no contexto.",responseName:"arquivos",component:{type:"files",responseName:"arquivos",filesSourceMode:"upload",filesResultMode:"context",filesUploaded:[],filesUrlTemplate:"",filesPreferOcr:!1,filesMaxTextChars:6e4,filesLlmProvider:"auto",filesLlmModel:"",filesLlmPrompt:"Leia os arquivos conectados e responda ao usuario em pt-BR de forma objetiva.",filesQuestionTemplate:"{{context.slots.userInput}}",filesLlmTemperature:.2,filesOperation:"read",filesOutputFormat:"docx",filesOutputFilenameTemplate:"artefato.docx",filesContentTemplate:"",filesTemplateDocumentId:"",filesTemplateDocumentIds:[],filesTemplateValuesJson:"{}",filesGenerationPrompt:"",filesUseDocumentSkill:!0,filesDocumentSkillPrompt:"",ragDocsPath:""}};if(r==="approval")return{...s,type:"component",title:"Aprovação humana",instruction:"Revise e aprove antes de executar a próxima ação sensível.",responseName:"aprovacao",component:{type:"approval",responseName:"aprovacao",approvalTitle:"Aprovar ação sensível",approvalDescription:"Um operador precisa revisar esta etapa antes de continuar.",approvalRisk:"high",approvalScopes:["write","external_api"],approvalApproverHint:"Operador humano",approvalKeyword:"aprovar",approvalRejectKeyword:"reprovar",approvalApprovedText:"Aprovado. Vou continuar.",approvalRejectedText:"Reprovado. A ação foi bloqueada.",approvalRequireExplicitInput:!0}};if(r==="milvus")return{...s,type:"component",title:"Milvus",instruction:"Busca documentos vetoriais no Milvus.",responseName:"milvus",component:{type:"milvus",responseName:"milvus",ragOperation:"search",collectionName:"",ragEmbeddingProvider:"openai",ragEmbeddingModel:"",ragUseAgentFilter:!0,ragAgentIdTemplate:"",ragDocumentsPath:"",queryTemplate:"{{context.slots.userInput}}",ragTextTemplate:"",ragTextPath:"",ragEmbeddingNameTemplate:"Documento",ragEmbeddingIdTemplate:"",ragExtraFieldsJson:`{
559
+ "source": "canvas-flow"
560
+ }`,ragChunkSize:512,ragChunkOverlap:70,k:8,useHybrid:!0,filterExpr:"",extraFieldsFilter:{},order:"desc"}};if(r==="azureSearch")return{...s,type:"component",title:"Azure AI Search",instruction:"Busca documentos no indice Azure AI Search.",responseName:"azureSearch",component:{type:"azureSearch",responseName:"azureSearch",ragOperation:"search",collectionName:"",ragEmbeddingProvider:"openai",ragEmbeddingModel:"",ragUseAgentFilter:!0,ragAgentIdTemplate:"",ragDocumentsPath:"",queryTemplate:"{{context.slots.userInput}}",ragTextTemplate:"",ragTextPath:"",ragEmbeddingNameTemplate:"Documento",ragEmbeddingIdTemplate:"",ragExtraFieldsJson:`{
561
+ "source": "canvas-flow"
562
+ }`,ragChunkSize:512,ragChunkOverlap:70,k:8,extraFieldsFilter:{},order:"desc"}};if(r==="azureBlob")return{...s,type:"component",title:"Azure Blob Storage",instruction:"Grava um payload no Azure Blob Storage.",responseName:"azureBlob",component:{type:"azureBlob",responseName:"azureBlob",azureBlobOperation:"upload",azureBlobNameTemplate:"canvas-flow/{{context.conversationId}}/{{context.now}}.json",azureBlobContentTemplate:"{{context.slots}}",azureBlobContentPath:"",azureBlobContentType:"application/json",collectionName:"",ragEmbeddingProvider:"openai",ragEmbeddingModel:"",ragUseAgentFilter:!0,ragAgentIdTemplate:"",ragDocumentsPath:"",ragTextTemplate:"",ragTextPath:"",ragEmbeddingNameTemplate:"Documento",ragEmbeddingIdTemplate:"",ragExtraFieldsJson:`{
563
+ "source": "canvas-flow-blob"
564
+ }`,ragChunkSize:512,ragChunkOverlap:70}};if(r==="dashboard")return{...s,type:"component",title:"Dashboard",instruction:"Monta dados analíticos usando trace, MongoDB, API externa ou Milvus.",responseName:"dashboard",component:{type:"dashboard",responseName:"dashboard",dashboardTitle:"Analítico do fluxo",dashboardSource:"trace",dashboardMode:"summary",dashboardCollectionName:"flow_events",dashboardPipeline:"[]",dashboardApiRequests:"[]",dashboardQueryTemplate:"{{context.slots.userInput}}",dashboardK:10,dashboardFilterExpr:"",dashboardIncludeTrace:!0,dashboardShowTable:!1,dashboardUseLlm:!0,dashboardLlmPrompt:"Monte um gráfico objetivo em pt-BR com labels curtos e valores numéricos a partir dos dados analíticos.",dashboardModel:""}};if(r==="cron")return{...s,type:"component",title:"CRON",instruction:"Executa o fluxo automaticamente conforme o agendamento.",responseName:"cron",component:{type:"cron",responseName:"cron",cronEnabled:!1,cronMode:"interval",cronIntervalValue:15,cronIntervalUnit:"minutes",cronTime:"09:00",cronWeekday:1,cronMonthDay:1,cronTimezone:"America/Sao_Paulo",cronRunFrom:"cronNode",cronInputText:"",cronSlotsJson:"{}",cronExecutionLog:[]}};if(r==="loop")return{...s,type:"component",title:"Loop",instruction:"Repete a saída enquanto não atingir o limite ou até a condição JS parar.",responseName:"loop",component:{type:"loop",responseName:"loop",loopResponseName:"loop",loopIndexResponseName:"loopIndex",loopMaxIterations:3,loopDelaySeconds:0,loopStopCondition:""}};if(r==="context")return{...s,type:"component",title:"Contexto",instruction:"Cria ou atualiza variaveis em context.slots por JSON, JS ou LLM.",responseName:"context",component:{type:"context",responseName:"context",contextMode:"json",contextJson:`{
565
+ "novoPayload": {
566
+ "input": "{{context.slots.input}}"
567
+ }
568
+ }`,contextScript:`const itens = Array.isArray(context.slots.itens) ? context.slots.itens : [];
569
+ return {
570
+ totalItens: itens.length,
571
+ itensNormalizados: itens.map((item) => String(item).trim()).filter(Boolean)
572
+ };`,contextLlmPrompt:"Gere um JSON com os novos campos de contexto a partir da conversa atual.",contextLlmModel:"",contextLlmTemperature:.2}};if(r==="flowRouter")return{...s,type:"component",title:"Supervisor multi-agente",instruction:"Escolhe outro fluxo/agente para continuar a conversa ou mantem no fluxo atual.",responseName:"flowRouter",component:{type:"flowRouter",responseName:"flowRouter",flowRouterRules:[],flowRouterFallbackAgentId:"",flowRouterFallbackFlowId:"",flowRouterReasonResponseName:"flowRouter"}};if(r==="webhook"){const l=`webhook_${Math.random().toString(36).slice(2,8)}`;return{...s,type:"component",title:"Webhook",instruction:"Recebe ou envia dados via webhook.",responseName:"webhook",api:{responseName:"webhook",requests:[{method:"POST",url:"https://api.exemplo.com/webhook",headers:{"Content-Type":"application/json"},params:{},bodyType:"jsonFields",body:{event:"{{context.slots.webhookEvent}}",conversationId:"{{context.conversationId}}",text:"{{context.input}}",slots:"{{context.slots}}"}}]},component:{type:"webhook",responseName:"webhook",webhookMode:"inbound",webhookId:l,webhookAuthMode:"none",webhookSecret:"",webhookHeaderName:"x-canvas-flow-webhook-secret",webhookQueryParam:"secret",webhookStartMode:"node",webhookResponseMode:"sync",webhookCallbackUrl:"",webhookCallbackAuthMode:"none",webhookCallbackSecret:"",webhookCallbackHeaderName:"x-canvas-flow-callback-secret",webhookListenerFireAndForget:!0}}}return{...s,type:"component",title:"RAG IA Gen",instruction:"Use o RAG para responder com base no contexto recuperado.",responseName:"rag",component:{type:"rag",responseName:"rag",collectionName:"",k:8,turnHistoricMessages:20,prompt:"Você é uma IA RAG. Responda em pt-BR com base no contexto.",queryTemplate:"{{context.slots.userInput}}",ragLlmProvider:"auto",ragEmbeddingProvider:"auto",ragSearchProvider:"auto",ragStorageProvider:"none",ragUseAgentFilter:!0,ragAgentIdTemplate:"",ragDocsPath:"",extraFieldsFilter:{},extraFieldsFilterPerRound:[],extraFieldsFilterPerRoundLimits:[],roundStopFind:!0,roundMixHalf:!1,extraFieldsFilterOrderBy:[],order:"desc"}}}function hv(){const t=wt("message",0);t.title="Início",t.instruction="Ola. Como posso ajudar?";const n=wt("input",1);n.title="Pergunta",n.responseName="pergunta",n.instruction="Digite sua pergunta.";const r=wt("component",2,"openaiGen");r.position={x:580,y:180};const s=wt("end",3);return s.position={x:820,y:180},s.instruction="{{context.slots.agente.text}}",{title:"Fluxo conversacional IA Gen",responseName:"conversationFlow",execute:"firstQuestion",model:"gpt-4o",llmProvider:"openai",channel:"webWidget",isMainFlow:!0,webWidget:Vu(),whatsapp:Qp(),turnHistoricMessages:20,startStepId:t.id,steps:[t,n,r,s],edges:[{id:ko("edge"),source:t.id,target:n.id},{id:ko("edge"),source:n.id,target:r.id},{id:ko("edge"),source:r.id,target:s.id}]}}function un(t,n){return{id:ko("edge"),source:t.id,target:n.id}}function Uu(t,n){return{title:t,responseName:ko("flow").replace(/-/g,"_"),execute:"firstQuestion",model:"gpt-4o",llmProvider:"openai",channel:n,isMainFlow:!0,webWidget:Vu(),whatsapp:Qp(),turnHistoricMessages:20}}function iA(){const t=wt("message",0);t.title="Boas vindas",t.instruction="Ola! Sou o assistente de atendimento. Me conte o que voce precisa.";const n=wt("input",1);n.title="Pergunta do cliente",n.responseName="pergunta",n.instruction="Digite sua duvida.";const r=wt("component",2,"flowRouter");r.position={x:590,y:160},r.title="Supervisor de intencao",r.instruction="Classifica a intencao e roteia para fluxos especializados quando existirem.",r.component={...r.component,flowRouterReasonResponseName:"supervisor",flowRouterRules:[{id:ko("rule"),label:"Financeiro",targetAgentId:"",targetFlowId:"",conditionMode:"llm",condition:"Roteie se o usuario falar de boleto, pagamento, segunda via, cobranca ou financeiro.",conditionTemperature:0},{id:ko("rule"),label:"Suporte tecnico",targetAgentId:"",targetFlowId:"",conditionMode:"llm",condition:"Roteie se o usuario relatar erro, falha tecnica, acesso, integracao ou instabilidade.",conditionTemperature:0}]};const s=wt("component",3,"rag");s.position={x:850,y:160},s.title="Resposta com base de conhecimento",s.component={...s.component,responseName:"respostaRag",queryTemplate:"{{context.slots.pergunta}}",prompt:"Responda em pt-BR de forma objetiva. Use a base de conhecimento quando houver documentos relevantes. Se faltar contexto, diga o que precisa confirmar."};const l=wt("end",4);return l.position={x:1110,y:160},l.title="Responder cliente",l.instruction="{{context.slots.respostaRag.text}}",{...Uu("Atendimento WhatsApp com RAG e Supervisor","whatsapp"),startStepId:t.id,steps:[t,n,r,s,l],edges:[un(t,n),un(n,r),un(r,s),un(s,l)]}}function lA(){const t=wt("message",0);t.title="Inicio do agendamento",t.instruction="Vamos agendar seu atendimento. Primeiro, informe seu CPF.";const n=wt("input",1);n.title="Coletar CPF",n.responseName="cpf",n.inputValidationMode="type",n.inputValidationType="cpf",n.inputValidationErrorMessage="CPF invalido. Informe novamente somente os numeros.";const r=wt("component",2,"mcp");r.position={x:580,y:180},r.title="Consultar disponibilidade",r.component={...r.component,responseName:"agenda",mcpMode:"api",mcpToolName:"consultar_agenda",mcpToolDescription:"Consulta disponibilidade de agenda por CPF.",mcpInstruction:"Use o CPF do contexto para consultar disponibilidade. Normalize providers, services, dates e times.",mcpInputSchema:`{
573
+ "type": "object",
574
+ "properties": {
575
+ "cpf": { "type": "string" }
576
+ },
577
+ "required": ["cpf"]
578
+ }`,mcpOutputSchema:`{
579
+ "type": "object",
580
+ "properties": {
581
+ "providers": { "type": "array" },
582
+ "services": { "type": "array" },
583
+ "dates": { "type": "array" },
584
+ "times": { "type": "array" }
585
+ }
586
+ }`,mcpApiBaseUrl:"",mcpApiBodyJson:`{
587
+ "cpf": "{{context.slots.cpf}}"
588
+ }`};const s=wt("richMessage",3);s.position={x:850,y:180},s.title="Escolher horario",s.richMessage={...s.richMessage,type:"appointmentFlow",text:"Escolha uma opcao de agendamento.",appointmentFlow:{...s.richMessage.appointmentFlow,mode:"auto",providersTemplate:"{{context.slots.agenda.providers}}",servicesTemplate:"{{context.slots.agenda.services}}",datesTemplate:"{{context.slots.agenda.dates}}",timesTemplate:"{{context.slots.agenda.times}}"}};const l=wt("end",4);return l.position={x:1110,y:180},l.title="Confirmacao",l.instruction="Perfeito. Registrei sua escolha e sigo com a confirmacao.",{...Uu("Agendamento assistido por WhatsApp Flow","whatsapp"),startStepId:t.id,steps:[t,n,r,s,l],edges:[un(t,n),un(n,r),un(r,s),un(s,l)]}}function cA(){const t=wt("component",0,"cron");t.title="Rotina programada",t.position={x:120,y:180},t.component={...t.component,cronEnabled:!1,cronMode:"daily",cronTime:"09:00",cronInputText:"Executar rotina de backoffice"};const n=wt("api",1);n.title="Buscar dados operacionais",n.position={x:380,y:180},n.responseName="dadosOperacionais";const r=wt("component",2,"mongodb");r.title="Registrar resultado",r.position={x:640,y:180},r.component={...r.component,responseName:"registro",mongoCollectionName:"agentic_backoffice_runs",mongoOperation:"insertOne",mongoDocument:`{
589
+ "runAt": "{{context.now}}",
590
+ "agentId": "{{context.agentId}}",
591
+ "dados": "{{context.slots.dadosOperacionais}}"
592
+ }`};const s=wt("component",3,"dashboard");s.title="Resumo operacional",s.position={x:900,y:180},s.component={...s.component,dashboardSource:"trace",dashboardMode:"summary",dashboardTitle:"Resumo da rotina"};const l=wt("end",4);return l.position={x:1160,y:180},l.instruction="Rotina executada. Veja o dashboard no trace.",{...Uu("Backoffice agentico com cron, API e Mongo","webWidget"),startStepId:t.id,steps:[t,n,r,s,l],edges:[un(t,n),un(n,r),un(r,s),un(s,l)]}}function dA(){const t=wt("message",0);t.title="Recepcao",t.instruction="Ola! Vou te ajudar com agendamento, exame, convenio ou remarcacao.";const n=wt("input",1);n.title="Solicitacao",n.responseName="solicitacao",n.instruction="Descreva o que voce precisa.";const r=wt("component",2,"mcp");r.title="Classificar atendimento",r.position={x:580,y:180},r.component={...r.component,responseName:"triagem",mcpMode:"fields",mcpToolName:"classificar_triagem_clinica",mcpToolDescription:"Classifica demanda de clinica e extrai dados essenciais.",mcpInstruction:"Classifique a solicitacao em agendamento, exame, convenio, remarcacao ou humano. Extraia especialidade, convenio e urgencia quando aparecerem.",mcpOutputSchema:`{
593
+ "type": "object",
594
+ "properties": {
595
+ "intencao": { "type": "string" },
596
+ "especialidade": { "type": "string" },
597
+ "convenio": { "type": "string" },
598
+ "urgente": { "type": "boolean" }
599
+ }
600
+ }`};const s=wt("component",3,"mcp");s.title="Consultar agenda",s.position={x:850,y:180},s.component={...s.component,responseName:"agenda",mcpMode:"api",mcpToolName:"consultar_agenda_clinica",mcpToolDescription:"Consulta agenda no sistema da clinica.",mcpInstruction:"Monte a consulta usando especialidade e convenio extraidos na triagem.",mcpApiMethod:"POST",mcpApiBaseUrl:"",mcpApiBodyJson:`{
601
+ "especialidade": "{{context.slots.triagem.output.especialidade}}",
602
+ "convenio": "{{context.slots.triagem.output.convenio}}"
603
+ }`};const l=wt("component",4,"approval");l.title="Aprovar encaixe",l.position={x:1120,y:180},l.component={...l.component,responseName:"aprovacaoEncaixe",approvalTitle:"Aprovar encaixe de agenda",approvalDescription:"A solicitacao parece urgente. Revise antes de oferecer encaixe fora da regra padrao.",approvalRisk:"high",approvalScopes:["agenda_write","exception"]};const p=wt("end",5);return p.position={x:1390,y:180},p.instruction="Encontrei as melhores opcoes e vou seguir com a confirmacao.",{...Uu("Clinica: triagem e agendamento com aprovacao","whatsapp"),startStepId:t.id,steps:[t,n,r,s,l,p],edges:[un(t,n),un(n,r),un(r,s),un(s,l),un(l,p)]}}function uA(){const t=wt("message",0);t.title="Atendimento loja",t.instruction="Ola! Posso ajudar com pedido, troca, rastreio ou produto.";const n=wt("input",1);n.title="Pedido ou duvida",n.responseName="pedido",n.instruction="Informe seu numero de pedido ou descreva sua duvida.";const r=wt("component",2,"mcp");r.title="Consultar pedido",r.position={x:580,y:180},r.component={...r.component,responseName:"consultaPedido",mcpMode:"api",mcpToolName:"consultar_pedido",mcpToolDescription:"Consulta dados de pedido, rastreio e status.",mcpInstruction:"Use o texto do cliente para localizar pedido e status. Nunca invente codigo de rastreio.",mcpApiMethod:"GET",mcpApiBaseUrl:"",mcpApiQueryJson:`{
604
+ "q": "{{context.slots.pedido}}"
605
+ }`};const s=wt("component",3,"approval");s.title="Aprovar reembolso",s.position={x:850,y:180},s.component={...s.component,responseName:"aprovacaoReembolso",approvalTitle:"Aprovar reembolso ou cupom",approvalDescription:"Antes de gerar cupom/reembolso, confira valor, politica e historico do cliente.",approvalRisk:"high",approvalScopes:["refund","coupon_write"]};const l=wt("component",4,"openaiGen");l.title="Resposta final",l.position={x:1120,y:180},l.component={...l.component,responseName:"resposta",prompt:"Responda de forma clara usando context.slots.consultaPedido e o status da aprovacao quando existir.",queryTemplate:"{{context.slots.pedido}}"};const p=wt("end",5);return p.position={x:1390,y:180},p.instruction="{{context.slots.resposta.text}}",{...Uu("E-commerce: pedido, troca e reembolso seguro","whatsapp"),startStepId:t.id,steps:[t,n,r,s,l,p],edges:[un(t,n),un(n,r),un(r,s),un(s,l),un(l,p)]}}function pA(){const t=wt("message",0);t.title="Receber lead",t.instruction="Ola! Vou entender seu perfil para sugerir imoveis.";const n=wt("input",1);n.title="Perfil do cliente",n.responseName="perfil",n.instruction="Qual bairro, faixa de valor e tipo de imovel voce procura?";const r=wt("component",2,"context");r.title="Normalizar perfil",r.position={x:580,y:180},r.component={...r.component,responseName:"lead",contextMode:"llm",contextLlmPrompt:"Extraia bairro, valorMaximo, quartos, tipo e urgencia do lead imobiliario."};const s=wt("component",3,"mcp");s.title="Buscar imoveis",s.position={x:850,y:180},s.component={...s.component,responseName:"imoveis",mcpMode:"api",mcpToolName:"buscar_imoveis",mcpToolDescription:"Busca imoveis no CRM/imobiliaria.",mcpApiMethod:"POST",mcpApiBaseUrl:"",mcpApiBodyJson:`{
606
+ "bairro": "{{context.slots.lead.bairro}}",
607
+ "valorMaximo": "{{context.slots.lead.valorMaximo}}",
608
+ "quartos": "{{context.slots.lead.quartos}}"
609
+ }`};const l=wt("end",4);return l.position={x:1120,y:180},l.instruction="Separei algumas opcoes e posso agendar uma visita.",{...Uu("Imobiliaria: qualificacao e busca no CRM","webWidget"),startStepId:t.id,steps:[t,n,r,s,l],edges:[un(t,n),un(n,r),un(r,s),un(s,l)]}}function mA(){return[{id:"support-whatsapp-rag",name:"Atendimento WhatsApp + RAG",segment:"Suporte",description:"Entrada WhatsApp com supervisor de intencao, fallback RAG e resposta final.",channel:"whatsapp",config:iA()},{id:"scheduling-whatsapp",name:"Agendamento inteligente",segment:"Atendimento",description:"Coleta CPF, consulta disponibilidade via MCP/API e renderiza opcoes interativas.",channel:"whatsapp",config:lA()},{id:"backoffice-agentops",name:"Backoffice agentico",segment:"Operacoes",description:"Cron, API, MongoDB e dashboard para rotinas internas com rastreabilidade.",channel:"webWidget",config:cA()},{id:"clinic-triage-approval",name:"Clinica com aprovacao",segment:"Saude",description:"Triagem por MCP, consulta de agenda e gate humano para encaixes sensiveis.",channel:"whatsapp",config:dA()},{id:"ecommerce-refund-safe",name:"E-commerce seguro",segment:"E-commerce",description:"Consulta pedido via MCP, aprova reembolso/cupom e responde com contexto.",channel:"whatsapp",config:uA()},{id:"real-estate-lead-crm",name:"Imobiliaria CRM",segment:"Vendas",description:"Qualifica lead, normaliza perfil e busca imoveis no CRM por MCP/API.",channel:"webWidget",config:pA()}]}const hA={canvasStep:yj},fA={canvasFlowEdge:VS},Ij=108,Pj=72,gA=120,xA=180,ng=180,og=156,vA=Ij,yA=Pj,fv=36,gv=74,jA=36,_j=58,Oj=18,bA=18,wA=18,Sh=18,NA=16,jf=t=>String(t||"").split(",").map(n=>n.trim()).filter(Boolean),qo=t=>String((t==null?void 0:t.agentId)||(t==null?void 0:t.name)||"").trim()||"default-agent",Xs=t=>String((t==null?void 0:t.name)||(t==null?void 0:t.agentId)||"").trim()||"Agente",jp=(t,n)=>{var r,s,l,p,m,h,f,x,j,w,N,C,E,T,R,L,U,P,F,Z,oe,ae,te;return{llmProvider:((r=t==null?void 0:t.config)==null?void 0:r.llmProvider)||n.llmProvider||"openai",model:((s=t==null?void 0:t.config)==null?void 0:s.model)||n.model,agentSpec:{agentsMd:((p=(l=t==null?void 0:t.config)==null?void 0:l.agentSpec)==null?void 0:p.agentsMd)??((m=n.agentSpec)==null?void 0:m.agentsMd)??"",guardrails:((f=(h=t==null?void 0:t.config)==null?void 0:h.agentSpec)==null?void 0:f.guardrails)??((x=n.agentSpec)==null?void 0:x.guardrails)??"",blockedTerms:((w=(j=t==null?void 0:t.config)==null?void 0:j.agentSpec)==null?void 0:w.blockedTerms)??((N=n.agentSpec)==null?void 0:N.blockedTerms)??[],rules:((E=(C=t==null?void 0:t.config)==null?void 0:C.agentSpec)==null?void 0:E.rules)??((T=n.agentSpec)==null?void 0:T.rules)??[],skills:((L=(R=t==null?void 0:t.config)==null?void 0:R.agentSpec)==null?void 0:L.skills)??((U=n.agentSpec)==null?void 0:U.skills)??[],subagents:((F=(P=t==null?void 0:t.config)==null?void 0:P.agentSpec)==null?void 0:F.subagents)??((Z=n.agentSpec)==null?void 0:Z.subagents)??[],mcpServers:((ae=(oe=t==null?void 0:t.config)==null?void 0:oe.agentSpec)==null?void 0:ae.mcpServers)??((te=n.agentSpec)==null?void 0:te.mcpServers)??[]}}};function CA(t){return String(t||"").split(/\r?\n/).map(n=>n.trim()).filter(Boolean)}function bf(t){return!t||typeof t!="object"||Array.isArray(t)?"":JSON.stringify(t,null,2)}function wf(t,n){const r=String(t||"").trim();if(!r)return;const s=JSON.parse(r);if(!s||typeof s!="object"||Array.isArray(s))throw new Error(`${n} precisa ser um objeto JSON.`);return s}function zd(t={}){return{id:ko("simcase"),name:"",text:"",expectedContainsText:"",expectedEnded:"any",expectedSlotsText:"",slotsText:"",approvalsText:"",allowErrors:!1,...t}}function Rj(t,n){const r=Array.isArray(t.expectedContains)?t.expectedContains:Array.isArray(t.expectedTextIncludes)?t.expectedTextIncludes:t.expectedContains||t.expectedTextIncludes?[t.expectedContains||t.expectedTextIncludes]:[];return zd({id:String(t.id||"")||ko("simcase"),name:String(t.name||t.title||`Cenario ${n+1}`),text:String(t.text||t.input||""),expectedContainsText:r.map(s=>String(s||"")).filter(Boolean).join(`
610
+ `),expectedEnded:t.expectedEnded===!0?"true":t.expectedEnded===!1?"false":"any",expectedSlotsText:bf(t.expectedSlots),slotsText:bf(t.slots),approvalsText:bf(t.approvals),allowErrors:t.allowErrors===!0})}function Fj(t){return t.map((n,r)=>{const s=CA(n.expectedContainsText),l={name:n.name.trim()||`Cenario ${r+1}`,text:n.text.trim()};s.length===1&&(l.expectedContains=s[0]),s.length>1&&(l.expectedContains=s),n.expectedEnded!=="any"&&(l.expectedEnded=n.expectedEnded==="true");const p=wf(n.expectedSlotsText,"Slots esperados"),m=wf(n.slotsText,"Slots iniciais"),h=wf(n.approvalsText,"Aprovacoes");return p&&Object.keys(p).length&&(l.expectedSlots=p),m&&Object.keys(m).length&&(l.slots=m),h&&Object.keys(h).length&&(l.approvals=h),n.allowErrors&&(l.allowErrors=!0),l}).filter(n=>String(n.text||"").trim())}function bp(t){return JSON.stringify(Fj(t),null,2)}function xv(t){const n=JSON.parse(t||"[]"),r=Array.isArray(n)?n:n==null?void 0:n.cases;if(!Array.isArray(r))throw new Error("JSON precisa ser uma lista de casos ou um objeto com cases[].");return r.map((s,l)=>Rj(s||{},l))}function wp(){return[zd({name:"Boas-vindas",text:"Oi, preciso de ajuda",expectedContainsText:"ajuda"}),zd({name:"Agendamento",text:"Quero falar com atendimento",expectedEnded:"false"})]}function Pp(t){return Array.isArray(t)?t.map((n,r)=>{if(!n||typeof n!="object"||Array.isArray(n))return null;const s=n,l=Array.isArray(s.cases)?s.cases.filter(p=>p&&typeof p=="object"):[];return l.length?{id:String(s.id||"")||ko("evalsuite"),name:String(s.name||s.title||`Suite ${r+1}`),description:String(s.description||""),mode:s.mode==="isolated"?"isolated":"conversation",cases:l,createdAt:String(s.createdAt||""),updatedAt:String(s.updatedAt||"")}:null}).filter(n=>!!n):[]}const SA="canvas_flow_eval_suites_v1";function kA(t,n,r){return`${SA}:${t}:${n||r||"draft"}`}function AA(t){try{return typeof localStorage>"u"?[]:Pp(JSON.parse(localStorage.getItem(t)||"[]"))}catch{return[]}}function vv(t,n){try{if(typeof localStorage>"u")return;localStorage.setItem(t,JSON.stringify(Pp(n)))}catch{}}function EA(t,n){const r=new Map;return t.forEach(s=>r.set(s.id,s)),n.forEach(s=>{r.has(s.id)||r.set(s.id,s)}),Array.from(r.values())}function MA(t,n){const r=new Map(t.map(s=>[s.id,s]));return n.flatMap(s=>{const l=r.get(s);return l?l.cases.map((p,m)=>({...p||{},suiteId:l.id,suiteName:l.name,name:`${l.name} / ${String((p==null?void 0:p.name)||(p==null?void 0:p.title)||`Caso ${m+1}`)}`})):[]})}const yv=[{type:"openaiGen",title:"Agente",description:"Agente LLM com modelo, skills, subagents, rules e guardrails.",category:"IA",Icon:Ho,color:"#2563eb"},{type:"agentPlan",title:"Agent Plan",description:"Contrato visual para orientar ou fixar o plano do agente antes das tools.",category:"IA",Icon:Xi,color:"#4f46e5"},{type:"rag",title:"RAG IA Gen",description:"Busca documentos e gera a resposta final com LLM.",category:"RAG",Icon:Ss,color:"#2563eb"},{type:"milvus",title:"Milvus",description:"Busca vetorial/hibrida no Milvus e salva documentos no contexto.",category:"RAG",Icon:Ss,color:"#7c3aed"},{type:"azureSearch",title:"Azure AI Search",description:"Busca no Azure AI Search e salva documentos no contexto.",category:"RAG",Icon:Rc,color:"#16a34a"},{type:"azureBlob",title:"Azure Blob Storage",description:"Grava payloads e documentos no Blob Storage.",category:"RAG",Icon:Uf,color:"#0891b2"},{type:"files",title:"Arquivos",description:"Lê upload ou URL e salva texto/documentos no contexto.",category:"Dados",Icon:dj,color:"#0f766e"},{type:"mongodb",title:"MongoDB",description:"CRUD em collections para funil, eventos e analise.",category:"Dados",Icon:Ss,color:"#16a34a"},{type:"context",title:"Contexto",description:"Cria ou atualiza slots por JSON dinamico, JS ou LLM.",category:"Dados",Icon:Fu,color:"#0891b2"},{type:"webhook",title:"Webhook",description:"Recebe dados externos ou envia o contexto para outro endpoint.",category:"Ações",Icon:xj,color:"#dc2626"},{type:"mcp",title:"MCP",description:"Contrato de ferramenta com schema, LLM e chamada API externa opcional.",category:"Acoes",Icon:gj,color:"#0f766e"},{type:"approval",title:"Aprovação humana",description:"Pausa o fluxo antes de ações sensíveis e registra aprovar/reprovar.",category:"Governança",Icon:ks,color:"#be123c"},{type:"dashboard",title:"Dashboard",description:"Monta cards, tabelas e gráficos com trace, API, Mongo ou Milvus.",category:"Analítico",Icon:yh,color:"#7c3aed"},{type:"loop",title:"Loop",description:"Repete a saída até atingir o limite ou uma condição JS parar.",category:"Controle",Icon:hj,color:"#0ea5e9"},{type:"flowRouter",title:"Roteador de fluxo",description:"Direciona a conversa para outro fluxo por regra JS ou LLM.",category:"Controle",Icon:Xi,color:"#9333ea"},{type:"cron",title:"CRON",description:"Agenda a execução automática do fluxo por intervalo, dia, semana ou mês.",category:"Automação",Icon:cj,color:"#0f766e"},{type:"debug",title:"Debug",description:"Registra um snapshot do contexto atual do fluxo.",category:"Dev",Icon:ij,color:"#f59e0b"}],jv=['Construa um fluxo com mensagem de boas vindas "Ola seja bem vindo",',"salve a entrada em responseName input, marque a tag boas_vindas,",'peca o CPF do usuario validando como cpf e use fallback "CPF invalido",',"chame POST http://cpto.com enviando o cpf no body,","faca polling a cada 3 segundos ate encontrar maiorIdade=true,","mostre uma mensagem rica com botoes e finalize o fluxo."].join(" ");function TA(t){var n,r,s,l,p,m,h,f,x,j,w,N,C,E,T,R,L,U,P,F,Z,oe,ae,te,X,fe,ve,ye,se,M,ee,q,ie,G,$,K,I,W,xe,Q,be,Ce,Oe,B,ce,O,Ie,ge,it,ht,Ze,kt,et,Te,Qe,xt,re,we,Me,Ye,st;return((r=(n=t.data)==null?void 0:n.step)==null?void 0:r.type)==="group"?"#0d9488":((l=(s=t.data)==null?void 0:s.step)==null?void 0:l.type)==="richMessage"?"#0891b2":((h=(m=(p=t.data)==null?void 0:p.step)==null?void 0:m.component)==null?void 0:h.type)==="debug"?"#f59e0b":((j=(x=(f=t.data)==null?void 0:f.step)==null?void 0:x.component)==null?void 0:j.type)==="openaiGen"&&((C=(N=(w=t.data)==null?void 0:w.step)==null?void 0:N.component)==null?void 0:C.agentRole)==="subagent"?"#dc2626":((R=(T=(E=t.data)==null?void 0:E.step)==null?void 0:T.component)==null?void 0:R.type)==="openaiGen"?"#2563eb":((P=(U=(L=t.data)==null?void 0:L.step)==null?void 0:U.component)==null?void 0:P.type)==="agentPlan"?"#4f46e5":((oe=(Z=(F=t.data)==null?void 0:F.step)==null?void 0:Z.component)==null?void 0:oe.type)==="azureOpenAI"?"#0ea5e9":((X=(te=(ae=t.data)==null?void 0:ae.step)==null?void 0:te.component)==null?void 0:X.type)==="milvus"?"#7c3aed":((ye=(ve=(fe=t.data)==null?void 0:fe.step)==null?void 0:ve.component)==null?void 0:ye.type)==="azureSearch"?"#16a34a":((ee=(M=(se=t.data)==null?void 0:se.step)==null?void 0:M.component)==null?void 0:ee.type)==="azureBlob"?"#0891b2":((G=(ie=(q=t.data)==null?void 0:q.step)==null?void 0:ie.component)==null?void 0:G.type)==="files"?"#0f766e":((I=(K=($=t.data)==null?void 0:$.step)==null?void 0:K.component)==null?void 0:I.type)==="mongodb"?"#16a34a":((Q=(xe=(W=t.data)==null?void 0:W.step)==null?void 0:xe.component)==null?void 0:Q.type)==="context"?"#0891b2":((Oe=(Ce=(be=t.data)==null?void 0:be.step)==null?void 0:Ce.component)==null?void 0:Oe.type)==="dashboard"?"#7c3aed":((O=(ce=(B=t.data)==null?void 0:B.step)==null?void 0:ce.component)==null?void 0:O.type)==="cron"?"#0f766e":((it=(ge=(Ie=t.data)==null?void 0:Ie.step)==null?void 0:ge.component)==null?void 0:it.type)==="loop"?"#0ea5e9":((kt=(Ze=(ht=t.data)==null?void 0:ht.step)==null?void 0:Ze.component)==null?void 0:kt.type)==="flowRouter"?"#9333ea":((Qe=(Te=(et=t.data)==null?void 0:et.step)==null?void 0:Te.component)==null?void 0:Qe.type)==="webhook"?"#dc2626":((we=(re=(xt=t.data)==null?void 0:xt.step)==null?void 0:re.component)==null?void 0:we.type)==="mcp"?"#0f766e":((st=(Ye=(Me=t.data)==null?void 0:Me.step)==null?void 0:Ye.component)==null?void 0:st.type)==="approval"?"#be123c":"#2563eb"}function bv(t){try{return JSON.parse(t)}catch{return null}}function IA(t){if(t.kind==="debug"&&t.debug)return{title:t.text||"Debug",payload:t.debug};const n=String(t.text||"").trim();if(n.startsWith("DEBUG - ")){const s=n.indexOf(`
611
+ `),l=s>-1?n.slice(8,s).trim():"Debug",p=s>-1?bv(n.slice(s+1)):null;if(p)return{title:l||"Debug",payload:p}}const r=bv(n);return r&&typeof r=="object"&&("stepId"in r||"slots"in r)?{title:typeof r.title=="string"?r.title:"Debug",payload:r}:null}function PA(t){return t.kind==="dashboard"&&t.debug&&typeof t.debug=="object"?t.debug:null}function zj(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}function Lj(t){return Array.isArray(t)?t.map((n,r)=>[String(r),n]):zj(t)?Object.entries(t):[]}function Dj(t,n="root"){return!t||typeof t!="object"?[]:[n,...Lj(t).flatMap(([r,s])=>Dj(s,`${n}.${r}`))]}function _A({value:t}){return t===null?e.jsx("span",{className:"json-value json-null",children:"null"}):typeof t=="string"?e.jsxs("span",{className:"json-value json-string",children:['"',t,'"']}):typeof t=="number"?e.jsx("span",{className:"json-value json-number",children:String(t)}):typeof t=="boolean"?e.jsx("span",{className:"json-value json-boolean",children:String(t)}):e.jsxs("span",{className:"json-value json-unknown",children:['"',String(t),'"']})}function $j({name:t,value:n,path:r,level:s,isLast:l,collapsedPaths:p,onToggle:m}){const h=Array.isArray(n),f=zj(n),x=h||f,j=Lj(n),w=p.has(r),N={paddingLeft:`${s*18}px`},C=h?"[":"{",E=h?"]":"}",T=h?`${j.length} item(ns)`:`${j.length} campo(s)`,R=t!==void 0&&Number.isInteger(Number(t));return x?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"json-tree-row",style:N,children:[e.jsx("button",{type:"button",className:"json-tree-toggle",onClick:()=>m(r),"aria-label":w?"Expandir JSON":"Recolher JSON",children:w?e.jsx(lj,{size:13}):e.jsx(kp,{size:13})}),t!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:R?"json-index":"json-key",children:R?t:`"${t}"`}),e.jsx("span",{className:"json-punctuation",children:": "})]}),e.jsx("span",{className:"json-punctuation",children:C}),w&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"json-summary",children:T}),e.jsxs("span",{className:"json-punctuation",children:[E,l?"":","]})]})]}),!w&&j.map(([L,U],P)=>e.jsx($j,{name:L,value:U,path:`${r}.${L}`,level:s+1,isLast:P===j.length-1,collapsedPaths:p,onToggle:m},`${r}.${L}`)),!w&&e.jsxs("div",{className:"json-tree-row",style:N,children:[e.jsx("span",{className:"json-tree-spacer"}),e.jsxs("span",{className:"json-punctuation",children:[E,l?"":","]})]})]}):e.jsxs("div",{className:"json-tree-row",style:N,children:[t!==void 0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:R?"json-index":"json-key",children:R?t:`"${t}"`}),e.jsx("span",{className:"json-punctuation",children:": "})]}),e.jsx(_A,{value:n}),!l&&e.jsx("span",{className:"json-punctuation",children:","})]})}function OA({value:t}){const[n,r]=b.useState(new Set),s=b.useMemo(()=>Dj(t).filter(p=>p!=="root"),[t]),l=p=>{r(m=>{const h=new Set(m);return h.has(p)?h.delete(p):h.add(p),h})};return e.jsxs("div",{className:"json-tree-shell",children:[e.jsxs("div",{className:"json-tree-toolbar",children:[e.jsx("button",{type:"button",onClick:()=>r(new Set(s)),children:"Recolher tudo"}),e.jsx("button",{type:"button",onClick:()=>r(new Set),children:"Expandir tudo"})]}),e.jsx("div",{className:"json-tree-view",children:e.jsx($j,{value:t,path:"root",level:0,isLast:!0,collapsedPaths:n,onToggle:l})})]})}function RA(t){if(t.kind==="rich"&&t.content)return t.content}const Bu=["#2563eb","#16a34a","#f59e0b","#dc2626","#7c3aed","#0891b2","#db2777","#475569"];function FA(t){const n=t.chart,s=(Array.isArray(n==null?void 0:n.series)?n.series:[]).map((l,p)=>({label:String(l.label||`Item ${p+1}`),value:Number(l.value)||0,color:String(l.color||Bu[p%Bu.length])})).filter(l=>l.label);return!n||!s.length?null:{type:String(n.type||t.mode||"bar"),title:String(n.title||t.title||"Grafico"),generatedBy:String(n.generatedBy||""),series:s}}function zA({chart:t}){const n=t.series.reduce((l,p)=>l+Math.max(p.value,0),0)||1,r=Math.max(...t.series.map(l=>l.value),1),s=t.series.reduce((l,p)=>{const m=l.offset,h=m+Math.max(p.value,0)/n*100;return{offset:h,stops:[...l.stops,`${p.color} ${m}% ${h}%`]}},{offset:0,stops:[]}).stops.join(", ");return e.jsxs("div",{className:"dashboard-chart",children:[e.jsxs("div",{className:"dashboard-chart-title",children:[e.jsx("strong",{children:t.title}),t.generatedBy&&e.jsx("span",{children:t.generatedBy==="llm"?"LLM":"auto"})]}),t.type==="pie"?e.jsxs("div",{className:"dashboard-pie-wrap",children:[e.jsx("div",{className:"dashboard-pie",style:{background:`conic-gradient(${s||"#e5e7eb 0% 100%"})`}}),e.jsx("div",{className:"dashboard-legend",children:t.series.map(l=>e.jsxs("div",{children:[e.jsx("i",{style:{background:l.color}}),e.jsx("span",{children:l.label}),e.jsx("strong",{children:l.value})]},l.label))})]}):e.jsx("div",{className:"dashboard-bars",children:t.series.map(l=>e.jsxs("div",{className:"dashboard-bar-row",children:[e.jsx("span",{children:l.label}),e.jsx("div",{className:"dashboard-bar-track",children:e.jsx("div",{style:{width:`${Math.max(4,l.value/r*100)}%`,background:l.color}})}),e.jsx("strong",{children:l.value})]},l.label))})]})}function LA({payload:t}){const n=Array.isArray(t.cards)?t.cards:[],r=Array.isArray(t.rows)?t.rows:[],s=FA(t),l=t.showTable===!0||t.mode==="table",p=r.length?Array.from(new Set(r.slice(0,5).flatMap(m=>Object.keys(m)))).slice(0,5):[];return e.jsxs("div",{className:"dashboard-preview",children:[e.jsxs("div",{className:"dashboard-preview-header",children:[e.jsx("strong",{children:String(t.title||"Dashboard")}),e.jsxs("span",{children:[String(t.source||"trace")," / ",String(t.mode||"summary")]})]}),n.length>0&&e.jsx("div",{className:"dashboard-card-grid",children:n.map((m,h)=>e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:String(m.label||`Metrica ${h+1}`)}),e.jsx("strong",{children:String(m.value??"-")})]},h))}),s&&e.jsx(zA,{chart:s}),l&&r.length>0&&p.length>0&&e.jsx("div",{className:"dashboard-table-wrap",children:e.jsxs("table",{children:[e.jsx("thead",{children:e.jsx("tr",{children:p.map(m=>e.jsx("th",{children:m},m))})}),e.jsx("tbody",{children:r.slice(0,5).map((m,h)=>e.jsx("tr",{children:p.map(f=>e.jsx("td",{children:typeof m[f]=="object"?JSON.stringify(m[f]):String(m[f]??"")},f))},h))})]})})]})}function DA(t){return(Array.isArray(t==null?void 0:t.byTag)?t.byTag:[]).slice(0,12).map((r,s)=>({label:String(r.tag||`Tag ${s+1}`),value:Number(r.count||0),conversations:Number(r.conversations||0),color:Bu[s%Bu.length]}))}function Su(t,n,r="count"){return(Array.isArray(t)?t:[]).slice(0,12).map((l,p)=>{const m=n.map(h=>l==null?void 0:l[h]).find(h=>h!=null&&String(h).trim());return{label:String(m||`Item ${p+1}`),value:Number((l==null?void 0:l[r])||0),conversations:Number((l==null?void 0:l.conversations)||0),color:Bu[p%Bu.length]}})}function Nn(t,n=0){const r=Number(t||0);return Number.isFinite(r)?r.toLocaleString("pt-BR",{maximumFractionDigits:n,minimumFractionDigits:n}):"0"}function $A({mode:t,series:n}){const r=n.reduce((N,C)=>N+Math.max(C.value,0),0)||1,s=Math.max(...n.map(N=>N.value),1),l=n.reduce((N,C)=>{const E=N.offset,T=E+Math.max(C.value,0)/r*100;return{offset:T,stops:[...N.stops,`${C.color} ${E}% ${T}%`]}},{offset:0,stops:[]}).stops.join(", "),p=720,m=240,h=34,f=26,x=n.map((N,C)=>{const E=n.length===1?p/2:h+C/Math.max(n.length-1,1)*(p-h*2),T=m-f-Math.max(N.value,0)/s*(m-f*2);return{...N,x:E,y:T}}),j=x.map(N=>`${N.x},${N.y}`).join(" "),w=x.length?`${h},${m-f} ${j} ${p-h},${m-f}`:"";return n.length?t==="bar"?e.jsxs("div",{className:"dashboard-chart tag-dashboard-chart-panel",children:[e.jsxs("div",{className:"dashboard-chart-title",children:[e.jsx("strong",{children:"Eventos por tag"}),e.jsx("span",{children:"Barras"})]}),e.jsx("div",{className:"dashboard-bars",children:n.map(N=>e.jsxs("div",{className:"dashboard-bar-row",children:[e.jsx("span",{children:N.label}),e.jsx("div",{className:"dashboard-bar-track",children:e.jsx("div",{style:{width:`${Math.max(4,N.value/s*100)}%`,background:N.color}})}),e.jsx("strong",{children:N.value})]},N.label))})]}):t==="pie"?e.jsxs("div",{className:"dashboard-chart tag-dashboard-chart-panel",children:[e.jsxs("div",{className:"dashboard-chart-title",children:[e.jsx("strong",{children:"Distribuição por tag"}),e.jsx("span",{children:"Pizza"})]}),e.jsxs("div",{className:"dashboard-pie-wrap tag-dashboard-pie-wrap",children:[e.jsx("div",{className:"dashboard-pie tag-dashboard-pie",style:{background:`conic-gradient(${l||"#e5e7eb 0% 100%"})`}}),e.jsx("div",{className:"dashboard-legend",children:n.map(N=>e.jsxs("div",{children:[e.jsx("i",{style:{background:N.color}}),e.jsx("span",{children:N.label}),e.jsx("strong",{children:N.value})]},N.label))})]})]}):t==="line"?e.jsxs("div",{className:"dashboard-chart tag-dashboard-chart-panel",children:[e.jsxs("div",{className:"dashboard-chart-title",children:[e.jsx("strong",{children:"Comparativo por tag"}),e.jsx("span",{children:"Gráfico"})]}),e.jsxs("div",{className:"tag-dashboard-line-chart",children:[e.jsxs("svg",{viewBox:`0 0 ${p} ${m}`,role:"img","aria-label":"Gráfico de tags por eventos",children:[e.jsx("line",{x1:h,y1:m-f,x2:p-h,y2:m-f}),e.jsx("line",{x1:h,y1:f,x2:h,y2:m-f}),w&&e.jsx("polygon",{points:w}),j&&e.jsx("polyline",{points:j}),x.map(N=>e.jsxs("g",{children:[e.jsx("circle",{cx:N.x,cy:N.y,r:"5",style:{fill:N.color}}),e.jsx("title",{children:`${N.label}: ${N.value} eventos`})]},N.label))]}),e.jsx("div",{className:"dashboard-legend tag-dashboard-line-legend",children:n.map(N=>e.jsxs("div",{children:[e.jsx("i",{style:{background:N.color}}),e.jsx("span",{children:N.label}),e.jsx("strong",{children:N.value})]},N.label))})]})]}):null:e.jsx("div",{className:"tag-dashboard-chart-empty",children:"Nenhuma tag encontrada para os filtros atuais."})}function ku({title:t,subtitle:n,series:r,emptyText:s}){const l=Math.max(...r.map(p=>p.value),1);return r.length?e.jsxs("div",{className:"dashboard-chart tag-dashboard-chart-panel",children:[e.jsxs("div",{className:"dashboard-chart-title",children:[e.jsx("strong",{children:t}),e.jsx("span",{children:n})]}),e.jsx("div",{className:"dashboard-bars",children:r.map(p=>e.jsxs("div",{className:"dashboard-bar-row",children:[e.jsx("span",{children:p.label}),e.jsx("div",{className:"dashboard-bar-track",children:e.jsx("div",{style:{width:`${Math.max(4,p.value/l*100)}%`,background:p.color}})}),e.jsx("strong",{children:p.value})]},p.label))})]}):e.jsx("div",{className:"tag-dashboard-chart-empty",children:s})}function VA(t){return String(t.value||t.label||t.title||t.id||"").trim()}function BA(t){return String(t.label||t.title||t.value||t.id||"").trim()}function UA({content:t,disabled:n,onSelect:r}){var l,p,m,h,f,x,j,w,N;const s=C=>{const E=VA(C);!E||n||r==null||r(E,BA(C)||E)};return e.jsxs("div",{className:`rich-message-preview rich-message-preview-${t.type}`,children:[t.text&&e.jsx("p",{children:t.text}),t.type==="image"&&((l=t.media)==null?void 0:l.url)&&e.jsx("img",{className:"rich-preview-media-image",src:t.media.url,alt:t.media.caption||t.text||"Imagem"}),t.type==="document"&&((p=t.media)==null?void 0:p.url)&&e.jsxs("a",{className:"rich-preview-document",href:t.media.url,target:"_blank",rel:"noreferrer",children:[e.jsx("strong",{children:t.media.fileName||"Documento"}),e.jsx("small",{children:t.media.mimeType||"Arquivo anexado"})]}),t.type==="buttons"&&e.jsx("div",{className:"rich-preview-actions",children:(t.buttons||[]).map(C=>e.jsx("button",{type:"button",disabled:n,onClick:()=>s(C),children:C.label},C.id||C.label))}),t.type==="quickReplies"&&e.jsx("div",{className:"rich-preview-quick",children:(t.quickReplies||[]).map(C=>e.jsx("button",{type:"button",disabled:n,onClick:()=>s(C),children:C.label},C.id||C.label))}),t.type==="list"&&e.jsxs("div",{className:"rich-preview-list",children:[e.jsx("strong",{children:((m=t.list)==null?void 0:m.buttonText)||"Ver opções"}),(((h=t.list)==null?void 0:h.sections)||[]).map((C,E)=>e.jsxs("div",{children:[e.jsx("span",{children:C.title}),(C.items||[]).map(T=>e.jsxs("button",{type:"button",className:"rich-preview-list-item",disabled:n,onClick:()=>s(T),children:[e.jsx("strong",{children:T.title}),T.description&&e.jsx("small",{children:T.description})]},T.id||T.title))]},E))]}),t.type==="carousel"&&e.jsx("div",{className:"rich-preview-carousel",children:(((f=t.carousel)==null?void 0:f.cards)||[]).map(C=>e.jsxs("div",{className:"rich-preview-card",children:[C.imageUrl&&e.jsx("img",{src:C.imageUrl,alt:""}),e.jsx("strong",{children:C.title}),C.subtitle&&e.jsx("span",{children:C.subtitle}),e.jsx("div",{className:"rich-preview-actions",children:(C.buttons||[]).map(E=>e.jsx("button",{type:"button",disabled:n,onClick:()=>s(E),children:E.label},E.id||E.label))})]},C.id||C.title))}),t.type==="appointmentFlow"&&e.jsxs("div",{className:"rich-preview-list",children:[e.jsx("strong",{children:((x=t.appointmentFlow)==null?void 0:x.flowCta)||((j=t.appointmentFlow)==null?void 0:j.buttonText)||"Agendar"}),e.jsxs("button",{type:"button",className:"rich-preview-list-item",disabled:n,onClick:()=>{var C,E;return s({id:"appointment_flow",title:((C=t.appointmentFlow)==null?void 0:C.flowCta)||"Agendar",value:((E=t.appointmentFlow)==null?void 0:E.flowCta)||"agendar"})},children:[e.jsx("strong",{children:((w=t.appointmentFlow)==null?void 0:w.headerText)||"Agendamento"}),e.jsx("small",{children:(N=t.appointmentFlow)!=null&&N.flowId?"WhatsApp Flow":"Lista interativa"})]})]}),t.footer&&e.jsx("small",{className:"rich-preview-footer",children:t.footer})]})}function So(t){var n,r,s,l,p,m,h;return{...t,channel:t.channel||"webWidget",llmProvider:t.llmProvider||"openai",agentSpec:{agentsMd:((n=t.agentSpec)==null?void 0:n.agentsMd)||"",guardrails:((r=t.agentSpec)==null?void 0:r.guardrails)||"",blockedTerms:((s=t.agentSpec)==null?void 0:s.blockedTerms)||[],rules:((l=t.agentSpec)==null?void 0:l.rules)||[],skills:((p=t.agentSpec)==null?void 0:p.skills)||[],subagents:((m=t.agentSpec)==null?void 0:m.subagents)||[],mcpServers:((h=t.agentSpec)==null?void 0:h.mcpServers)||[]},isMainFlow:t.isMainFlow===!0,webWidget:Vu(t.webWidget),whatsapp:Qp(t.whatsapp),steps:(t.steps||[]).map(f=>{var E;if(((E=f.component)==null?void 0:E.type)!=="flowRouter")return f;const{flowRouterPersistTarget:x,flowRouterRunMode:j,flowRouterSynchronousModeConfirmed:w,flowRouterSwitchMessage:N,...C}=f.component;return{...f,component:C}})}}function Nf(t){return!!(t&&typeof t=="object"&&!Array.isArray(t))}function qA({config:t,flowId:n,flowName:r,agentId:s}){return{kind:"canvas-flow.flow",version:1,exportedAt:new Date().toISOString(),flowId:n||void 0,name:r||t.title||"Fluxo exportado",agentId:s||void 0,config:So(t)}}function HA(t){if(!Nf(t))throw new Error("Arquivo inválido. Envie um JSON de fluxo do Canvas Flow.");const n=Nf(t.config)?t.config:Nf(t.flowConfig)?t.flowConfig:t;if(!Array.isArray(n.steps)||!Array.isArray(n.edges))throw new Error("JSON inválido. O fluxo precisa conter steps e edges.");const r=So(n);return{config:r,name:String(t.name||t.flowName||r.title||"Fluxo importado"),agentId:String(t.agentId||"")}}function wv(t){return(t||"fluxo").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,80)||"fluxo"}function kh(t){return[...t||[]].sort((n,r)=>Number(r.version||0)-Number(n.version||0))}function eh(t,n,r){const s=kh(t).filter(m=>m.config);if(!s.length)return;const l=Number(r||0),p=Number(n||0);return(l?s.find(m=>Number(m.version)===l):void 0)||(p?s.find(m=>Number(m.version)===p):void 0)||s[0]}function WA(t){return[...t||[]].sort((n,r)=>Number(r.release||0)-Number(n.release||0))}function dh(t,n){return Object.entries((t==null?void 0:t.versions)||{}).map(([r,s])=>{var f,x,j;const l=(f=n.find(w=>w._id===r))==null?void 0:f.name,p=(x=t==null?void 0:t.flowNames)==null?void 0:x[r],m=(j=t==null?void 0:t.versionNames)==null?void 0:j[r],h=l||p||r;return{id:r,name:h,packageName:l&&p&&l!==p?p:void 0,versionName:m&&m!==h?m:void 0,version:Number(s)}}).filter(r=>r.version>0).sort((r,s)=>r.name.localeCompare(s.name,"pt-BR"))}function Vj(t,n=!1){return`${t.name} - v${t.version}${t.versionName?` · ${t.versionName}`:""}${t.packageName?` (no pacote: ${t.packageName})`:""}${n?" (produção)":""}`}function GA(t,n,r){return dh(t,n).flatMap(s=>{const l=r[s.id],p=kh(l==null?void 0:l.versions);return(p.length?p:[{version:s.version,name:s.versionName}]).map(h=>({...s,key:`${s.id}:${h.version}`,flowId:s.id,version:Number(h.version),versionName:h.name&&h.name!==s.name?h.name:void 0,isReleaseSnapshot:Number(h.version)===Number(s.version),isFlowActive:Number(h.version)===Number(l==null?void 0:l.activeVersion)}))})}function Nv(t,n){var s;const r=Number(((s=n==null?void 0:n.versions)==null?void 0:s[t.flowId])||0);return r?r===t.version:t.isFlowActive}function Cv(t,n=!1){return Vj(t,n)}function th(t){if(!t)return"sem data";const n=new Date(t);return Number.isNaN(n.getTime())?"sem data":n.toLocaleString("pt-BR")}function nh(t,n){const r=String(t||"").trim();if(r)return r;const s=String(n||"").trim();return!s||/^[a-f0-9]{24}$/i.test(s)?"sem e-mail registrado":s}function Cf(){return{title:"Novo fluxo",responseName:"newFlow",execute:"firstQuestion",model:"gpt-5.5",llmProvider:"openai",agentSpec:{agentsMd:"",guardrails:"Nunca invente dados. Peça aprovação humana antes de ações sensíveis. Respeite privacidade e dados pessoais.",blockedTerms:[],rules:[],skills:[],subagents:[],mcpServers:[]},channel:"webWidget",isMainFlow:!1,webWidget:Vu(),whatsapp:Qp(),turnHistoricMessages:20,startStepId:"",steps:[],edges:[]}}function JA(t,n="Novo fluxo"){const r=new Set(t.map(s=>String(s.name||"").trim()).filter(Boolean));if(!r.has(n))return n;for(let s=2;s<1e3;s+=1){const l=`${n} ${s}`;if(!r.has(l))return l}return`${n} ${Date.now()}`}function Sf(t,n,r){if(n<0||r<0||n===r||n>=t.length||r>=t.length)return t;const s=[...t],[l]=s.splice(n,1);return s.splice(r,0,l),s}function KA({apiUrl:t,flowId:n,flowName:r,flowResponseName:s,agentId:l,channel:p,webWidget:m,whatsapp:h,whatsappWebhookUrl:f,apiTokenConfigured:x}){const j=`${t}/api/canvas-flow/test`,w=`${t}/api/canvas-flow/mcp/${encodeURIComponent(l)}`,N=(s||r||"nome_da_ferramenta").trim().normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9_-]+/g,"_").replace(/_+/g,"_").replace(/^[_-]+|[_-]+$/g,"").slice(0,80)||"nome_da_ferramenta",C="<CANVAS_FLOW_API_KEY>",E={primaryColor:m.primaryColor,accentColor:m.accentColor,assistantName:m.assistantName,subtitle:m.subtitle,welcomeMessage:m.welcomeMessage,placeholder:m.placeholder,bubbleLabel:m.bubbleLabel,avatarText:m.avatarText,openByDefault:m.openByDefault,position:m.position},T={flowId:n,agentId:l,channel:p,conversationId:`${p}-cliente-123`,text:"Ola, preciso de ajuda.",slots:p==="webWidget"?{webWidget:E}:{}},R=JSON.stringify(T,null,2),L=`curl -X POST "${j}" \\
612
+ -H "Content-Type: application/json" \\
613
+ -H "Authorization: Bearer ${C}" \\
614
+ -d '${R}'`,U=`const response = await fetch("${j}", {
615
+ method: "POST",
616
+ headers: {
617
+ "Content-Type": "application/json",
618
+ "Authorization": "Bearer ${C}"
619
+ },
620
+ body: JSON.stringify(${R})
621
+ });
622
+
623
+ const data = await response.json();
624
+ console.log(data.messages, data.slots);`,F=`<script>
625
+ const canvasFlowWidget = ${JSON.stringify({flowId:n,flowName:r||"<NOME_DO_FLUXO>",agentId:l,channel:"webWidget",userContext:null,theme:E},null,2)};
626
+ const canvasFlowConversationStorageKey =
627
+ "canvasFlowConversationId:" + canvasFlowWidget.agentId + ":" + canvasFlowWidget.flowId;
628
+ const canvasFlowSession = {
629
+ // Anonimo: gere uma vez no browser e guarde.
630
+ // Usuario logado: prefira receber este ID do seu backend/proxy.
631
+ conversationId:
632
+ window.localStorage.getItem(canvasFlowConversationStorageKey) ||
633
+ ((window.crypto && crypto.randomUUID) ? crypto.randomUUID() : "web-" + Date.now())
634
+ };
635
+ window.localStorage.setItem(canvasFlowConversationStorageKey, canvasFlowSession.conversationId);
636
+
637
+ async function enviarMensagem(texto) {
638
+ // O proxy deve validar o usuario logado e pode trocar conversationId/userContext
639
+ // por valores confiaveis do seu sistema antes de chamar o Canvas Flow.
640
+ // Produção: chame seu backend/proxy e injete o Authorization no servidor.
641
+ const response = await fetch("/seu-backend/canvas-flow-proxy", {
642
+ method: "POST",
643
+ headers: { "Content-Type": "application/json" },
644
+ body: JSON.stringify({
645
+ flowId: canvasFlowWidget.flowId,
646
+ agentId: canvasFlowWidget.agentId,
647
+ channel: canvasFlowWidget.channel,
648
+ conversationId: canvasFlowSession.conversationId,
649
+ text: texto,
650
+ slots: {
651
+ webWidget: canvasFlowWidget.theme,
652
+ user: canvasFlowWidget.userContext
653
+ }
654
+ })
655
+ });
656
+ const data = await response.json();
657
+ // O backend recupera o checkpoint LangGraph usando conversationId.
658
+ return data;
659
+ }
660
+
661
+ // Use canvasFlowWidget.theme para aplicar cores, textos,
662
+ // posicao e se o chat inicia aberto ou apenas como balao.
663
+ // Use canvasFlowWidget.userContext apenas para dados nao sensiveis.
664
+ <\/script>`,Z=`Authorization: Bearer ${C}
665
+ Header alternativo: x-api-key: ${C}
666
+
667
+ Use uma chave gerada em API Keys. O token master CANVAS_FLOW_API_TOKEN deve ficar reservado para administracao.
668
+
669
+ Backend atual: ${x?"token master configurado":"sem token master no frontend; defina VITE_CANVAS_FLOW_API_TOKEN para gerenciar chaves"}.`,oe=`MCP server exposto pelo Canvas Flow
670
+ Transporte: JSON-RPC 2.0 sobre HTTP POST
671
+ Endpoint: ${w}
672
+ Auth: Authorization: Bearer ${C}
673
+ Header alternativo: x-api-key: ${C}
674
+
675
+ Como um MCP client consome este server:
676
+ 1. Envie initialize para negociar capabilities.
677
+ 2. Envie tools/list para descobrir as tools disponiveis.
678
+ 3. Cada flow salvo deste agente aparece como uma tool MCP.
679
+ 4. Use exatamente result.tools[].name no tools/call.
680
+ 5. Em arguments, envie text e, se quiser memoria, reutilize conversationId.
681
+
682
+ Initialize:
683
+ curl -X POST "${w}" \\
684
+ -H "Content-Type: application/json" \\
685
+ -H "Authorization: Bearer ${C}" \\
686
+ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"meu-mcp-client","version":"1.0.0"}}}'
687
+
688
+ Listar tools:
689
+ curl -X POST "${w}" \\
690
+ -H "Content-Type: application/json" \\
691
+ -H "Authorization: Bearer ${C}" \\
692
+ -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
693
+
694
+ Chamar uma tool:
695
+ curl -X POST "${w}" \\
696
+ -H "Content-Type: application/json" \\
697
+ -H "Authorization: Bearer ${C}" \\
698
+ -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"${N}","arguments":{"text":"Preciso de ajuda","conversationId":"mcp-cliente-123","slots":{}}}}'
699
+
700
+ Exemplo minimo de cliente HTTP:
701
+ const endpoint = "${w}";
702
+ const headers = {
703
+ "Content-Type": "application/json",
704
+ "Authorization": "Bearer ${C}"
705
+ };
706
+
707
+ async function mcpRequest(method, params = {}, id = Date.now()) {
708
+ const response = await fetch(endpoint, {
709
+ method: "POST",
710
+ headers,
711
+ body: JSON.stringify({ jsonrpc: "2.0", id, method, params })
712
+ });
713
+ const payload = await response.json();
714
+ if (payload.error) throw new Error(payload.error.message);
715
+ return payload.result;
716
+ }
717
+
718
+ await mcpRequest("initialize", {
719
+ protocolVersion: "2025-06-18",
720
+ capabilities: {},
721
+ clientInfo: { name: "meu-mcp-client", version: "1.0.0" }
722
+ });
723
+ const listed = await mcpRequest("tools/list");
724
+ const toolName = listed.tools[0].name;
725
+ const result = await mcpRequest("tools/call", {
726
+ name: toolName,
727
+ arguments: {
728
+ text: "Preciso de ajuda",
729
+ conversationId: "mcp-cliente-123",
730
+ slots: {}
731
+ }
732
+ });
733
+ console.log(result.content, result.structuredContent);
734
+
735
+ Config generica para um client/proxy MCP HTTP:
736
+ {
737
+ "name": "canvas-flow-${l}",
738
+ "transport": "http-json-rpc-post",
739
+ "url": "${w}",
740
+ "headers": {
741
+ "Authorization": "Bearer ${C}"
742
+ }
743
+ }
744
+
745
+ Observacao: se o seu MCP client aceitar apenas Streamable HTTP/SSE com sessao, use um bridge/proxy MCP que encaminhe JSON-RPC HTTP POST para este endpoint.`,ae=h.provider||"meta",te=ae==="meta"?`Provedor: API Oficial Meta
746
+ Callback URL: ${f}
747
+ Verify token: ${h.verifyToken||"<PALAVRA_TOKEN>"}
748
+
749
+ GET ${f}
750
+ POST ${f}
751
+
752
+ O backend valida o token no GET e executa o fluxo no POST quando chegar uma mensagem.`:ae==="blip"?`Provedor: Blip
753
+ Callback URL: ${f}
754
+
755
+ Configure a entrada HTTP/webhook no Blip apontando para a URL acima.
756
+ Para envio automatico, configure Contract ID e Authorization key em Provedores > WhatsApp.`:`Provedor: Sinch
757
+ Callback URL: ${f}
758
+
759
+ Configure inbound message webhooks da Sinch Conversation API apontando para a URL acima.
760
+ Para envio automatico, configure Project ID, App ID, regiao e access token.
761
+ Para repasse, use Retornar payload na resposta da API e configure numero, username e token em Provedores > WhatsApp.`;return{endpoint:j,mcpEndpoint:w,auth:Z,payloadJson:R,curl:L,javascript:U,widget:F,whatsapp:te,mcp:oe}}function Bj(t){var n,r;return{width:Math.max(ng,Number(((n=t.group)==null?void 0:n.width)||520)),height:Math.max(og,Number(((r=t.group)==null?void 0:r.height)||340))}}function Rh(t){var n;return t.type==="group"?(n=t.group)!=null&&n.collapsed?{width:vA,height:yA}:Bj(t):{width:Ij,height:Pj}}function Sg(t,n){return{x:t.x,y:t.y,width:n.width,height:n.height,right:t.x+n.width,bottom:t.y+n.height}}function QA(t,n){var m,h;const r=t,s=(t==null?void 0:t.style)||{},l=Number((t==null?void 0:t.width)||((m=r==null?void 0:r.measured)==null?void 0:m.width)||s.width||0),p=Number((t==null?void 0:t.height)||((h=r==null?void 0:r.measured)==null?void 0:h.height)||s.height||0);return{width:Math.max(n.width,Number.isFinite(l)?l:0),height:Math.max(n.height,Number.isFinite(p)?p:0)}}function Xp(t,n){return{x:Math.max(Oj,t),y:Math.max(_j,n)}}function Sv(t,n){return{x:t.x-n,y:t.y-n,width:t.width+n*2,height:t.height+n*2,right:t.right+n,bottom:t.bottom+n}}function Uj(t,n){const r=Math.max(0,Math.min(n,t.width/2-1,t.height/2-1));return{x:t.x+r,y:t.y+r,width:Math.max(1,t.width-r*2),height:Math.max(1,t.height-r*2),right:t.right-r,bottom:t.bottom-r}}function kv(t,n){var l;if(!n.size)return t;const r=new Map(t.steps.map(p=>[p.id,p])),s=t.steps.filter(p=>!n.has(p.id)).map(p=>!p.parentId||!n.has(p.parentId)?p:{...p,parentId:void 0,position:el(p,r)});return{...t,steps:s,edges:t.edges.filter(p=>!n.has(p.source)&&!n.has(p.target)),startStepId:n.has(t.startStepId)?((l=s[0])==null?void 0:l.id)||"":t.startStepId}}function Av(t){return JSON.parse(JSON.stringify(t))}function el(t,n){var p,m,h,f;const r={x:((p=t.position)==null?void 0:p.x)||0,y:((m=t.position)==null?void 0:m.y)||0},s=new Set([t.id]);let l=t.parentId;for(;l&&!s.has(l);){s.add(l);const x=n.get(l);if(!x)break;r.x+=((h=x.position)==null?void 0:h.x)||0,r.y+=((f=x.position)==null?void 0:f.y)||0,l=x.parentId}return r}function qp(t,n){const r=el(t,n),s=Rh(t);return Sg(r,s)}function qj(t,n){return t.x>=n.x&&t.x<=n.right&&t.y>=n.y&&t.y<=n.bottom}function XA(t,n){const r=Math.max(0,Math.min(t.right,n.right)-Math.max(t.x,n.x)),s=Math.max(0,Math.min(t.bottom,n.bottom)-Math.max(t.y,n.y)),l=Math.max(1,t.width*t.height);return r*s/l}function YA(t,n){var l;let r=t.parentId;const s=new Set;for(;r&&!s.has(r);){s.add(r);const p=n.get(r);if(!p)return!1;if(p.type==="group"&&((l=p.group)!=null&&l.collapsed))return!0;r=p.parentId}return!1}function ZA(t,n,r){var p;let s=t.parentId;const l=new Set;for(;s&&!l.has(s);){if(r.has(s))return!0;l.add(s),s=(p=n.get(s))==null?void 0:p.parentId}return!1}function kg(t,n,r){var p;let s=t.parentId;const l=new Set;for(;s&&!l.has(s);){if(s===n)return!0;l.add(s),s=(p=r.get(s))==null?void 0:p.parentId}return!1}function eE(t,n){var l;const r=new Set([t.id]);let s=t.parentId;for(;s;){if(r.has(s))return!0;r.add(s),s=(l=n.get(s))==null?void 0:l.parentId}return!1}function tE(t,n){const r=new Map(t.map(E=>[E.id,E])),s=r.get(n);if(!s||s.type!=="group")return t;const l=t.filter(E=>E.id!==n&&kg(E,n,r));if(!l.length)return t;const p=el(s,r),m=l.reduce((E,T)=>{const R=qp(T,r);return{minX:Math.min(E.minX,R.x-p.x),minY:Math.min(E.minY,R.y-p.y),maxX:Math.max(E.maxX,R.right-p.x),maxY:Math.max(E.maxY,R.bottom-p.y)}},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}),h=Math.max(0,Oj-m.minX),f=Math.max(0,_j-m.minY),x=Bj(s),j=Math.max(x.width,Math.ceil(m.maxX+h+bA)),w=Math.max(x.height,Math.ceil(m.maxY+f+wA)),N=h>0||f>0,C=j!==x.width||w!==x.height;return!N&&!C?t:t.map(E=>{var T,R;return E.id===n?{...E,group:{...E.group||{width:x.width,height:x.height},width:j,height:w}}:!N||E.parentId!==n?E:{...E,position:{x:(((T=E.position)==null?void 0:T.x)||0)+h,y:(((R=E.position)==null?void 0:R.y)||0)+f}}})}function $c(t){const n=new Map(t.map(l=>[l.id,l]));let r=!1;const s=t.map(l=>{var h,f,x,j,w;if(!l.parentId)return l;const p=n.get(l.parentId);if(l.type==="group"||l.parentId===l.id||!p||p.type!=="group"||eE(l,n))return r=!0,{...l,parentId:void 0,position:el(l,n)};if(!((h=p.group)!=null&&h.collapsed)){const N=Xp(((f=l.position)==null?void 0:f.x)||0,((x=l.position)==null?void 0:x.y)||0);return Math.abs((((j=l.position)==null?void 0:j.x)||0)-N.x)<.5&&Math.abs((((w=l.position)==null?void 0:w.y)||0)-N.y)<.5?l:(r=!0,{...l,position:N})}return l});return r?s:t}function Hj(t){const n=$c(t.steps),r=new Map(n.map(h=>[h.id,h])),s=new Map;n.forEach(h=>{var f;h.type!=="group"||!((f=h.group)!=null&&f.collapsed)||(h.group.collapsedChildIds||[]).forEach(x=>{x!==h.id&&r.has(x)&&s.set(x,h.id)})});const l=new Map,p=h=>{var N;const f=l.get(h.id);if(f!==void 0)return f;const x=new Set;let j=h.parentId,w="";for(;j&&!x.has(j);){x.add(j);const C=r.get(j);if(!C)break;const E=l.get(C.id);if(E!==void 0){w=E;break}if(C.type==="group"&&((N=C.group)!=null&&N.collapsed)){w=C.id;break}j=C.parentId}return l.set(h.id,w),w},m=new Map;return n.forEach(h=>{const f=s.get(h.id);if(f){m.set(h.id,f);return}const x=p(h);x&&m.set(h.id,x)}),m}function Ag(t){const n=$c(t.steps),r=Hj(t),s=new Set(n.filter(l=>!r.has(l.id)).map(l=>l.id));return n.forEach(l=>{var p;l.type==="group"&&((p=l.group)!=null&&p.collapsed)&&s.add(l.id)}),s}function Ev(t,n,r,s){var h,f;if(r.has(t))return t;const l=s.get(t);if(l&&r.has(l))return l;const p=new Set;let m=(h=n.get(t))==null?void 0:h.parentId;for(;m&&!p.has(m);){p.add(m);const x=n.get(m);if(!x)break;if(x.type==="group"&&((f=x.group)!=null&&f.collapsed)&&r.has(x.id))return x.id;m=x.parentId}return r.has(t)?t:""}function nE(t){const n=new Map;return t.forEach(r=>{r.parentId&&n.set(r.parentId,(n.get(r.parentId)||0)+1)}),n}function Eg(t,n,r){var m,h;const s=t.positionAbsolute;if(s)return{x:Number(s.x||0),y:Number(s.y||0)};const l=n.parentId?r.get(n.parentId):void 0,p=l?el(l,r):{x:0,y:0};return{x:p.x+(((m=t.position)==null?void 0:m.x)||0),y:p.y+(((h=t.position)==null?void 0:h.y)||0)}}function Hp(t,n,r){const s=r.get(t.id),l=s?Eg(s,t,n):el(t,n);return Sg(l,QA(s,Rh(t)))}function Mv(t,n,r=Sh){const s={x:t.x+t.width/2,y:t.y+t.height/2};return qj(s,Uj(n,r))}function Wj(t,n,r={}){const s=new Map(t.map(j=>[j.id,j])),l=new Map((r.canvasNodes||[]).map(j=>[j.id,j])),p=s.get(n),m=new Set;if(!p||p.type!=="group")return m;const h=Sv(Hp(p,s,l),r.margin||0),f=Sv(qp(p,s),r.margin||0),x=Math.max(0,Number(r.margin||0)>=Sh?0:Sh-Number(r.margin||0));return t.forEach(j=>{if(j.id===n||j.type==="group"||j.parentId&&!r.includeAttached)return;const w=Hp(j,s,l),N=qp(j,s);(Mv(w,h,x)||Mv(N,f,x))&&m.add(j.id)}),m}function oE(t,n,r,s){var p;const l={x:s.x+s.width/2,y:s.y+s.height/2};return(p=t.filter(m=>{var h;return m.type==="group"&&m.id!==r&&!((h=m.group)!=null&&h.collapsed)&&!YA(m,n)}).map(m=>{const h=qp(m,n),f=Uj(h,Sh);return{step:m,bounds:h,ratio:XA(s,h),centerInside:qj(l,f)}}).filter(m=>m.centerInside).sort((m,h)=>h.ratio!==m.ratio?h.ratio-m.ratio:m.bounds.width*m.bounds.height-h.bounds.width*h.bounds.height)[0])==null?void 0:p.step}function Gj(t,n,r={}){const s=new Map(t.map(w=>[w.id,w])),l=new Map((r.canvasNodes||[]).map(w=>[w.id,w])),p=s.get(n);if(!p||p.type!=="group")return t;const m=l.get(n),h=m?Eg(m,p,s):el(p,s),f=Wj(t,n,r);let x=!1;const j=t.map(w=>{if(!f.has(w.id)||kg(w,n,s))return w;x=!0;const N=Hp(w,s,l);return{...w,parentId:n,position:Xp(N.x-h.x,N.y-h.y)}});return x?j:t}function aE(t,n,r={}){const s=new Map(t.map(w=>[w.id,w])),l=new Map((r.canvasNodes||[]).map(w=>[w.id,w])),p=s.get(n);if(!p||p.type!=="group")return{steps:t,childIds:[]};const m=Hp(p,s,l),h={x:m.x,y:m.y},f=Wj(t,n,r);let x=!1;const j=t.map(w=>{var E,T;if(w.id===n||w.type==="group")return w;const N=f.has(w.id),C=kg(w,n,s);if(N){const R=Hp(w,s,l),L=Xp(R.x-h.x,R.y-h.y);return w.parentId===n&&Math.abs((((E=w.position)==null?void 0:E.x)||0)-L.x)<.5&&Math.abs((((T=w.position)==null?void 0:T.y)||0)-L.y)<.5?w:(x=!0,{...w,parentId:n,position:L})}return C?(x=!0,{...w,parentId:void 0,position:el(w,s)}):w});return{steps:x?j:t,childIds:Array.from(f)}}function Tv(t,n){if(!n.length)return t;const r=$c(t.steps),s=new Map(n.map(j=>[j.id,j])),l=new Set(s.keys()),p=new Map(r.map(j=>[j.id,j])),m=[];let h=!1,f=r.map(j=>{var N,C;const w=s.get(j.id);return!w||j.type!=="group"?j:(h=!0,m.push(j.id),{...j,position:{x:((N=w.position)==null?void 0:N.x)||0,y:((C=w.position)==null?void 0:C.y)||0}})});const x=new Map(f.map(j=>[j.id,j]));return f=f.map(j=>{const w=s.get(j.id);if(!w||j.type==="group"||ZA(j,p,l))return j;const N=Eg(w,j,x),C=Sg(N,Rh(j)),E=oE(f,x,j.id,C),T=E?el(E,x):{x:0,y:0},R=E?Xp(N.x-T.x,N.y-T.y):N;return h=!0,{...j,parentId:E==null?void 0:E.id,position:R}}),m.forEach(j=>{var N;const w=f.find(C=>C.id===j&&C.type==="group");(N=w==null?void 0:w.group)!=null&&N.collapsed||(f=Gj(f,j))}),h?{...t,steps:$c(f)}:{...t,steps:r}}function Np(t,n){if(!n.length)return t;const r=new Map(n.map(p=>[p.id,p])),s=new Set,l=t.map(p=>{const m=r.get(p.id);return m?(s.add(p.id),{...p,...m,data:m.data||p.data,style:m.style||p.style}):p});return n.forEach(p=>{s.has(p.id)||l.push(p)}),l}function rE(t,n){if(!t.length)return n;const r=new Map(t.map(s=>[s.id,s]));return n.map(s=>{const l=r.get(s.id);return l?{...l,...s,data:{...l.data||{},...s.data||{}},position:s.position||l.position,selected:s.selected,style:s.style,zIndex:s.zIndex}:s})}const sE=["skills","subagents","mcpServers"];function iE(t){var r;if(t.type!=="component"||((r=t.component)==null?void 0:r.type)!=="openaiGen")return!1;const n=t.component.agentRole||"simple";return n!=="orchestrator"&&n!=="subagent"?!1:(t.component.agentExecutionMode||"auto_tools")!=="flow"}function lE(t){var s;const n=String(t.targetStepId||t.stepId||t.nodeId||"").trim();if(n)return n;const r=String(t.path||"").trim();return r.startsWith("canvas://")&&((s=r.slice(9).split(/[?#]/)[0])==null?void 0:s.trim())||""}function cE(t){const n=new Set;return(t.steps||[]).forEach(r=>{var m,h;if(!iE(r))return;const s=((m=r.component)==null?void 0:m.agentManifest)||{};let l=0,p=0;sE.forEach(f=>{const x=Array.isArray(s[f])?s[f]||[]:[];p+=x.length,x.forEach(j=>{const w=lE(j);w&&w!==r.id&&(l+=1,n.add(w))})}),p===0&&l===0&&((h=r.component)==null?void 0:h.agentUseWorkspaceCatalog)!==!1&&(t.steps||[]).forEach(f=>{var w,N;if(f.id===r.id||f.type!=="component")return;const x=((w=f.component)==null?void 0:w.type)==="openaiGen"&&f.component.agentRole==="subagent",j=((N=f.component)==null?void 0:N.type)==="mcp";(x||j)&&n.add(f.id)})}),n}function Jj(t,n){const r=cE(n);return t.edgeRole==="manifest"||r.has(t.source)||r.has(t.target)}function Iv(t,n){const r=$c(t.steps),s=new Set(r.map(f=>f.id)),l=new Set((n==null?void 0:n.selectedStepIds)||[]),p=Ag({...t,steps:r}),m=nE(r);return[...r].sort((f,x)=>f.type==="group"&&x.type!=="group"?-1:f.type!=="group"&&x.type==="group"?1:0).filter(f=>p.has(f.id)).map(f=>{var N;const x=f.type==="group",j=f.parentId&&s.has(f.parentId)&&p.has(f.parentId)?f.parentId:void 0,w=Rh(f);return{id:f.id,type:"canvasStep",position:f.position,parentNode:j,selected:l.has(f.id),style:x?{width:w.width,height:w.height}:void 0,zIndex:x?(N=f.group)!=null&&N.collapsed?4:0:j?3:1,data:{step:f,isStart:t.startStepId===f.id,childrenCount:m.get(f.id)||0,...n,editingField:(n==null?void 0:n.editingStepId)===f.id?n.editingField:null}}})}function Pv(t,n={}){const r=$c(t.steps),s={...t,steps:r},l=Ag(s),p=new Map(r.map(h=>[h.id,h])),m=Hj(s);return t.edges.map(h=>{const f=Ev(h.source,p,l,m),x=Ev(h.target,p,l,m);if(!f||!x||f===x)return null;const j=f!==h.source||x!==h.target,w=Jj(h,s),N=w?"#059669":h.condition?"#8b5cf6":"#94a3b8";return{id:h.id,type:"canvasFlowEdge",source:f,target:x,label:h.label,markerEnd:{type:Vp.ArrowClosed,width:11,height:11,color:N},style:{stroke:N,strokeWidth:j?1.3:1.1,opacity:h.condition?.76:.68,strokeDasharray:j?"6 4":void 0},labelStyle:{fill:"#334155",fontWeight:700,fontSize:11},data:{...h,edgeRole:w?"manifest":h.edgeRole,source:f,target:x,originalSource:h.source,originalTarget:h.target,proxied:j,...n}}}).filter(h=>!!h)}function dE(t,n,r){const s=new Set(t.steps.map(p=>p.id)),l=n.length?n:r?[r]:[];return Array.from(new Set(l)).filter(p=>s.has(p))}function uE(t,n){var p;const r=new Set(n),s=t.steps.filter(m=>r.has(m.id)),l=t.edges.filter(m=>r.has(m.source)&&r.has(m.target));return{...t,steps:s,edges:l,startStepId:r.has(t.startStepId)?t.startStepId:((p=s[0])==null?void 0:p.id)||""}}function pE(t,n,r){const s=new Set(r),l=new Map(n.steps.map(m=>[m.id,m])),p=n.edges.filter(m=>s.has(m.source)&&s.has(m.target));return{...t,steps:t.steps.map(m=>{if(!s.has(m.id))return m;const h=l.get(m.id);return h?{...h,id:m.id,position:m.position,parentId:m.parentId,group:m.type==="group"?h.group||m.group:h.group}:m}),edges:[...t.edges.filter(m=>!(s.has(m.source)&&s.has(m.target))),...p],startStepId:t.startStepId}}const mE=[{group:"native",label:"Entrada atual",value:"{{context.input}}",description:"Texto ou payload atual recebido pelo componente."},{group:"native",label:"Ultimo input do usuario",value:"{{context.slots.userInput}}",description:"Ultima mensagem de usuario salva pelo runner."},{group:"native",label:"Input de tool",value:"{{context.slots.autoToolInput}}",description:"Entrada delegada pelo agente pai para subagents/MCP chamados como tool."},{group:"native",label:"Tarefa da tool",value:"{{context.slots.autoToolTask}}",description:"Tarefa enviada pelo agente pai quando houver delegacao agentica."},{group:"native",label:"Input do agente pai",value:"{{context.slots.parentAgentInput}}",description:"Entrada original vista pelo agente que chamou a tool."},{group:"native",label:"Todos os slots",value:"{{context.slots}}",description:"Objeto completo de memoria operacional da conversa."},{group:"native",label:"ID da conversa",value:"{{context.conversationId}}",description:"Identificador da conversa atual."},{group:"native",label:"ID do agente",value:"{{context.agentId}}",description:"Agente em execucao."},{group:"native",label:"ID do fluxo",value:"{{context.flowId}}",description:"Fluxo em execucao quando salvo/versionado."},{group:"native",label:"No atual",value:"{{context.currentStepId}}",description:"ID do no que esta sendo executado."},{group:"native",label:"Agora",value:"{{context.now}}",description:"Data/hora atual disponibilizada no contexto."},{group:"native",label:"Webhook recebido",value:"{{context.slots.webhookEvent}}",description:"Payload bruto de webhook quando o fluxo for iniciado por webhook."}];function hE(t){var n,r;return String(t.responseName||((n=t.api)==null?void 0:n.responseName)||((r=t.component)==null?void 0:r.responseName)||"").trim()}function fE(t,n){var m;const r=t.title||t.id,s={group:"response",source:r},l=[{...s,label:n,value:`{{context.slots.${n}}}`,description:`Valor salvo pelo responseName do no ${r}.`}],p=((m=t.component)==null?void 0:m.type)||t.type;return t.type==="input"||t.type==="condition"?l:t.type==="api"||p==="mcp"?[...l,{...s,label:`${n}.latest.data`,value:`{{context.slots.${n}.latest.data}}`,description:"Dados da ultima resposta HTTP/API."},{...s,label:`${n}.output`,value:`{{context.slots.${n}.output}}`,description:"Saida normalizada para uso nos proximos nos."},{...s,label:`${n}.results`,value:`{{context.slots.${n}.results}}`,description:"Lista de respostas quando houver multiplas chamadas."},{...s,label:`${n}.resultsById`,value:`{{context.slots.${n}.resultsById}}`,description:"Mapa de respostas por ID de request quando configurado."}]:p==="files"?[...l,{...s,label:`${n}.text`,value:`{{context.slots.${n}.text}}`,description:"Texto extraido dos arquivos."},{...s,label:`${n}.documents`,value:`{{context.slots.${n}.documents}}`,description:"Documentos extraidos para RAG/LLM."}]:p==="openaiGen"||p==="azureOpenAI"?[...l,{...s,label:`${n}.text`,value:`{{context.slots.${n}.text}}`,description:"Texto gerado pelo agente/LLM."},{...s,label:`${n}.autoTools`,value:`{{context.slots.${n}.autoTools}}`,description:"Ferramentas chamadas pelo agente quando houver auto tools."}]:p==="agentPlan"?[...l,{...s,label:`${n}.plan`,value:`{{context.slots.${n}.plan}}`,description:"Plano produzido pelo Agent Plan."}]:p==="approval"?[...l,{...s,label:`${n}.decision`,value:`{{context.slots.${n}.decision}}`,description:"Decisao de aprovacao/reprovacao."}]:p==="loop"?[...l,{...s,label:`${n}.iteration`,value:`{{context.slots.${n}.iteration}}`,description:"Iteracao atual do loop, comecando em 1."},{...s,label:`${n}.shouldContinue`,value:`{{context.slots.${n}.shouldContinue}}`,description:"Booleano usado para saber se o loop continua."}]:p==="flowRouter"?[...l,{...s,label:`${n}.targetFlowId`,value:`{{context.slots.${n}.targetFlowId}}`,description:"Fluxo escolhido pelo roteador."},{...s,label:`${n}.reason`,value:`{{context.slots.${n}.reason}}`,description:"Motivo da escolha do roteador."}]:l}function gE(t){const n=[],r=new Set,s=l=>{r.has(l.value)||(r.add(l.value),n.push(l))};return(t.steps||[]).forEach(l=>{const p=hE(l);p&&fE(l,p).forEach(s);const m=String(l.inputValidationReasonResponseName||l.conditionReasonResponseName||"").trim();m&&s({group:"response",label:m,value:`{{context.slots.${m}}}`,description:`Motivo/explicacao salvo pelo no ${l.title||l.id}.`,source:l.title||l.id})}),{native:mE,response:n}}function xE(){var oa,lu,Ol,bs,Cd,cu,Gs,Sd,Js,kd,Ac,du,Ad,Ed,Bo,Ks,pr,aa,ip,uu,pu,Nm,Qs,lp,mu,Ui,hu,qi,cp,dp,fu,Md;const[t,n]=b.useState(()=>hv()),[r,s]=b.useState("Fluxo IA Gen"),[l,p]=b.useState("default-agent"),[m,h]=b.useState(""),[f,x]=b.useState(""),[j,w]=b.useState([]),[N,C]=b.useState(void 0),[E,T]=b.useState(0),[R,L]=b.useState(!1),[U,P]=b.useState([]),[F,Z]=b.useState([]),[oe,ae]=b.useState(!1),[te,X]=b.useState(!1),[fe,ve]=b.useState(!1),[ye,se]=b.useState(""),[M,ee]=b.useState(""),[q,ie]=b.useState(""),[G,$]=b.useState(""),[K,I]=b.useState(""),[W,xe]=b.useState(""),[Q,be]=b.useState(""),[Ce,Oe]=b.useState(null),[B,ce]=b.useState(""),[O,Ie]=b.useState(!1),[ge,it]=b.useState(!1),[ht,Ze]=b.useState(!1),[kt,et]=b.useState(""),[Te,Qe]=b.useState(""),[xt,re]=b.useState(()=>Iv(t)),we=b.useRef(xt),[Me,Ye]=b.useState(()=>Pv(t)),[st,Ue]=b.useState(""),[Le,tt]=b.useState(""),[ft,Re]=b.useState(""),[Pe,lt]=b.useState([]),[pn,An]=b.useState(null),[sa,mn]=b.useState(!1),[Wn,Jo]=b.useState(!1),[fr,Ko]=b.useState(!1),[ia,Ao]=b.useState(""),[la,gr]=b.useState(""),[xr,vr]=b.useState(!1),[Va,yr]=b.useState("flow"),[Ba,Ua]=b.useState("brief"),[As,Qo]=b.useState([]),[Gn,qa]=b.useState(""),[En,Xr]=b.useState(jv),[Ha,tl]=b.useState(!1),[Es,Jn]=b.useState(""),[vt,_n]=b.useState(null),[Wa,ni]=b.useState(!1),[nl,jr]=b.useState(!1),[Ms,Ga]=b.useState(""),[oi,ca]=b.useState(""),[Ge,Kn]=b.useState(""),Qn=b.useRef(null),Eo=b.useRef(null),[Yr,ai]=b.useState(!1),[Ul,Zr]=b.useState(!1),[da,Ja]=b.useState(!1),[Fe,en]=b.useState(!1),[Xn,mo]=b.useState(!1),[ho,Ka]=b.useState(!1),[ri,Qa]=b.useState(!1),[Mn,si]=b.useState("agent"),[ol,ql]=b.useState(!0),[br,wr]=b.useState(""),[Hl,an]=b.useState(""),[yt,zt]=b.useState(""),[Vt,Cn]=b.useState(!1),[ua,Vc]=b.useState(null),[Wl,al]=b.useState(""),[Ts,pa]=b.useState(""),[Xo,Nr]=b.useState(!1),[Mt,ii]=b.useState(null),[at,Bc]=b.useState("draft"),[z,Yn]=b.useState(""),[Ca,li]=b.useState(""),[ci,Ud]=b.useState([]),[Ht,Cr]=b.useState(void 0),[di,Pt]=b.useState(0),[rl,Zn]=b.useState(""),[Gl,ma]=b.useState(!1),[eo,es]=b.useState(""),[Sa,to]=b.useState(""),[Xa,sl]=b.useState({}),[On,Sr]=b.useState(!1),[ts,ha]=b.useState(""),[no,oo]=b.useState(void 0),[Ya,ka]=b.useState([]),[ns,Za]=b.useState(!1),[Jl,Rn]=b.useState(""),[ui,ao]=b.useState(""),[Aa,Uc]=b.useState(""),[qu,kr]=b.useState(""),[qd,os]=b.useState(""),[pi,qc]=b.useState(""),[Hu,il]=b.useState(""),[Wu,Mo]=b.useState(!1),[Is,Ar]=b.useState(!1),[Kl,Hc]=b.useState(""),[Wt,Hd]=b.useState(null),[fo,mi]=b.useState({dateFrom:"",dateTo:"",flowId:"",conversationId:"",tags:"",limit:100}),[as,Ql]=b.useState("dashboard"),[hi,Xl]=b.useState("table"),[Wd,er]=b.useState(1),[rs,ll]=b.useState(50),[Gd,cl]=b.useState(!1),[ss,dl]=b.useState(!1),[Er,Wc]=b.useState(""),[mt,fi]=b.useState(null),[Ea,Mr]=b.useState({dateFrom:"",dateTo:"",flowId:"",conversationId:"",historyLimit:80,traceLimit:600}),[Jd,Yl]=b.useState(!1),[tr,is]=b.useState(!1),[Kd,Fn]=b.useState(""),[go,ro]=b.useState(null),[Gc,Ps]=b.useState(!1),[Zl,ct]=b.useState("conversation"),[Tn,ls]=b.useState("saved"),[ul,gi]=b.useState("visual"),[Tr,_s]=b.useState(()=>wp()),[hn,To]=b.useState(()=>bp(wp())),[fa,nr]=b.useState([]),[xi,pl]=b.useState(""),[Ir,vi]=b.useState(""),[yi,Yo]=b.useState("Suite principal"),[Os,ga]=b.useState(""),[Io,ji]=b.useState(!1),[bi,zn]=b.useState(""),[wi,ec]=b.useState([]),[Ni,tc]=b.useState(null),[nc,Jc]=b.useState(!1),[oc,At]=b.useState(!1),[Xt,Gt]=b.useState(null),[Ci,ml]=b.useState(""),[Pr,_r]=b.useState(!1),[Ma,hl]=b.useState(!1),[Qd,Si]=b.useState(""),[Tt,ki]=b.useState(!1),[or,Rs]=b.useState(""),[Kc,jn]=b.useState([{role:"system",text:"Clique em Reiniciar para testar com a IA real, incluindo chamadas httpBatch."}]),[jt,Po]=b.useState("draft"),[xa,va]=b.useState(""),[Or,_o]=b.useState(""),[Qc,Fs]=b.useState({}),[Jt,Rr]=b.useState(null),[fl,Ln]=b.useState({}),[Fr,cs]=b.useState([]),[xo,Ai]=b.useState(null),[Xd,ya]=b.useState(null),[zr,ar]=b.useState(""),[Ei,rn]=b.useState(""),[zs,sn]=b.useState(""),ac=b.useMemo(()=>mA(),[]),Ta=b.useMemo(()=>t.steps.find(d=>d.id===st),[t.steps,st]),rc=xt.length>gA||Me.length>xA,Ia=b.useMemo(()=>t.edges.find(d=>d.id===Le),[t.edges,Le]),Oo=b.useMemo(()=>t.edges.find(d=>d.id===ft),[t.edges,ft]),Lr=b.useMemo(()=>dE(t,Pe,st),[t,Pe,st]),rr=b.useMemo(()=>{const d=new Set(t.steps.map(k=>k.id)),y=xr?As:Lr;return Array.from(new Set(y)).filter(k=>d.has(k))},[Lr,t.steps,xr,As]),gl=b.useMemo(()=>t.steps.filter(d=>rr.includes(d.id)),[rr,t.steps]),Pa=b.useMemo(()=>{const d=Gn.trim().toLowerCase();return d?t.steps.filter(y=>{const k=y.component||{},D=y.richMessage||{};return[y.id,y.title,y.type,y.instruction,y.responseName,y.condition,k.type,k.responseName,k.webhookId,k.collectionName,D.text,D.type].filter(Boolean).join(" ").toLowerCase().includes(d)}):t.steps},[t.steps,Gn]),_a=b.useMemo(()=>gE(t),[t]),Ee=l.trim()||"default-agent",It=!!(f&&m&&Ee!==m.trim()),ja=kA(Ee,f,r||t.responseName||t.title),Dn=b.useMemo(()=>F.some(d=>qo(d)===Ee||Xs(d)===Ee),[F,Ee]),$n=Ee==="default-agent"&&!Dn,fn=$n&&!f,Kt=$n,In=b.useMemo(()=>F.find(d=>qo(d)===Ee)||F.find(d=>Xs(d)===Ee),[F,Ee]),Sn=qo(In||{agentId:Ee,name:Ee}),ds=$n?"Nenhum agente":Xs(In||{agentId:Ee,name:Ee}),Xc=b.useMemo(()=>jp(In||{},t),[In,Ee,t]),us=b.useMemo(()=>{const d=new Map;return F.forEach(y=>d.set(qo(y),y)),f&&!d.has(Ee)&&d.set(Ee,{agentId:Ee,name:Ee,flowCount:U.length}),Array.from(d.values())},[F,U.length,Ee,f]);b.useEffect(()=>{ec(AA(ja))},[ja]),b.useEffect(()=>{let d=!1;const y=async()=>{var k;try{const D=await ze.getProviderConfig({agentId:Sn});if(d)return;const ne=(k=D.providerStatus)==null?void 0:k.webWidget;Jc(!!(ne!=null&&ne.configured)),tc(D.settings.webWidget?Vu(D.settings.webWidget):null)}catch{d||(Jc(!1),tc(null))}};return y(),window.addEventListener("canvas-flow-provider-config-updated",y),()=>{d=!0,window.removeEventListener("canvas-flow-provider-config-updated",y)}},[Sn]);const xl=b.useMemo(()=>{const d=M.trim().toLowerCase();return us.filter(y=>d?`${Xs(y)} ${qo(y)}`.toLowerCase().includes(d):!0)},[M,us]),Oa=b.useMemo(()=>{const d=ui.trim().toLowerCase();return Ya.map((y,k)=>({flow:y,index:k})).filter(({flow:y})=>{var k,D;return d?`${y.name} ${((k=y.config)==null?void 0:k.title)||""} ${((D=y.config)==null?void 0:D.responseName)||""}`.toLowerCase().includes(d):!0})},[Ya,ui]),vl=oc||!!(Ta||Ia),sc=Ta?Ta.title||"Editar nóde":Ia?"Editar ligação":"Config Padrão";b.useEffect(()=>{if(!xr)return;const d=new Set(t.steps.map(y=>y.id));Qo(y=>{const k=y.filter(D=>d.has(D));return k.length===y.length?y:k})},[t.steps,xr]);const ic=b.useMemo(()=>{const d=la.trim().toLowerCase();return d?yv.filter(y=>`${y.title} ${y.description} ${y.category}`.toLowerCase().includes(d)):yv},[la]),Zo=t.channel||"webWidget",sr=b.useMemo(()=>Vu(nc&&Ni?Ni:t.webWidget),[t.webWidget,Ni,nc]),ps=b.useMemo(()=>Qp(t.whatsapp),[t.whatsapp]),vo=fn?"<AGENTE_ID>":Sn,Mi=b.useMemo(()=>qA({config:t,flowId:f,flowName:r,agentId:fn?"":Sn}),[t,r,f,Sn,fn]),Ls=b.useMemo(()=>JSON.stringify(Mi,null,2),[Mi]),Ro=t.isMainFlow?`${Lc}/api/canvas-flow/webhook/whatsapp-main/${vo}`:`${Lc}/api/canvas-flow/webhook/whatsapp/${f||"<FLOW_ID_SALVO>"}`,Lt=b.useMemo(()=>KA({apiUrl:Lc,flowId:f||"<FLOW_ID_SALVO>",flowName:r,flowResponseName:t.responseName,agentId:vo,channel:Zo,webWidget:sr,whatsapp:ps,whatsappWebhookUrl:Ro,apiTokenConfigured:wj()}),[vo,Zo,t.responseName,r,f,sr,ps,Ro]),_t=b.useMemo(()=>EA(Pp(t.simulationSuites),wi),[t.simulationSuites,wi]),ea=b.useMemo(()=>fa.map(d=>_t.find(y=>y.id===d)).filter(d=>!!d),[_t,fa]),ir=ea.reduce((d,y)=>d+y.cases.length,0);b.useEffect(()=>{nr(d=>{const y=new Set(_t.map(D=>D.id)),k=d.filter(D=>y.has(D));return k.length?k:_t.map(D=>D.id)})},[_t]);const Ot=b.useMemo(()=>kh(j),[j]),Qt=b.useMemo(()=>WA(ci),[ci]),Ds=Math.max(E||0,...j.map(d=>Number(d.version||0)))+1,yl=Math.max(di||0,...ci.map(d=>Number(d.release||0)))+1,bn=Qt.find(d=>String(d.release)===eo),so=b.useMemo(()=>dh(bn,U),[U,bn]),Rt=Qt.find(d=>Number(d.release)===Number(Ht)),yo=f?Number(((oa=Rt==null?void 0:Rt.versions)==null?void 0:oa[f])||N||0):0,ta=b.useMemo(()=>GA(bn,U,{...Xa,...f?{[f]:{activeVersion:N,versions:Ot}}:{}}),[Xa,N,U,f,bn,Ot]),lc=Ot.find(d=>String(d.version)===ts),jl=no?Ot.find(d=>Number(d.version)===Number(no)):void 0,Dr=ho||ri,jo=jl||(f?eh(Ot,yo||N):void 0),Ti=!!(f&&jo),cc=String((jo==null?void 0:jo.name)||"").trim(),ms=jo?`v${jo.version}${cc?` · ${cc}`:""}`:"",bl=di||Ht,dc=Number(xa)||0,hs=Number(Or)||0,$r=(Mt==null?void 0:Mt.kind)==="agent"?Qt.filter(d=>Number(d.release)!==Number(Mt.version)):Ot.filter(d=>Number(d.version)!==Number(Mt==null?void 0:Mt.version)),Yc=(Mt==null?void 0:Mt.kind)==="agent"?String(((lu=$r[0])==null?void 0:lu.release)||""):String(((Ol=$r[0])==null?void 0:Ol.version)||""),uc=z||Yc,fs=Number(uc)||0,Zc=!!(Mt&&at==="version"&&!fs),Ra=jt==="agentVersion"&&!dc||jt==="flowVersion"&&!hs||jt!=="draft"&&!f,$s=b.useMemo(()=>Fr.filter(d=>d&&typeof d=="object"&&["edgeConditionJs","edgeConditionLlm"].includes(String(d.type||""))),[Fr]),Vs=Number((xo==null?void 0:xo.total)||Fr.length||0),Ii=Number((xo==null?void 0:xo.dropped)||0),pc=Number((xo==null?void 0:xo.returned)||Fr.length||0),wl=!!(xo!=null&&xo.hasMore),mc=Fr.length>0||Vs>0,Bs=$s.length?`${$s.length} condição(ões) de ligação avaliadas`:`${pc} evento(s) de trace carregado(s)`,Fo=b.useMemo(()=>JSON.stringify({flowId:f||"<FLOW_ID_SALVO>",agentId:vo,channel:Zo,conversationId:`${Zo}-cliente-123`,text:"oi",slots:{}},null,2),[vo,Zo,f]),Vr=b.useMemo(()=>JSON.stringify({flowId:f||"<FLOW_ID_SALVO>",agentId:vo,channel:Zo,agentRelease:bl||"<PACOTE_DE_HOMOLOGACAO>",conversationId:`${Zo}-homolog-123`,text:"Teste de homologação",slots:{}},null,2),[vo,Zo,bl,f]),gs=b.useCallback(()=>{At(!1),Ue(""),tt(""),Re(""),lt([]),Ko(!1)},[]),Nl=d=>{n(y=>({...y,...d}))},zo=d=>{n(y=>{var k,D,ne,ue,me,De,nt,yn,ra,Bt;return{...y,model:d.model||y.model,llmProvider:d.llmProvider||y.llmProvider||"openai",agentSpec:{...y.agentSpec||{},...d.agentSpec||{},blockedTerms:((k=d.agentSpec)==null?void 0:k.blockedTerms)||((D=y.agentSpec)==null?void 0:D.blockedTerms)||[],rules:((ne=d.agentSpec)==null?void 0:ne.rules)||((ue=y.agentSpec)==null?void 0:ue.rules)||[],skills:((me=d.agentSpec)==null?void 0:me.skills)||((De=y.agentSpec)==null?void 0:De.skills)||[],subagents:((nt=d.agentSpec)==null?void 0:nt.subagents)||((yn=y.agentSpec)==null?void 0:yn.subagents)||[],mcpServers:((ra=d.agentSpec)==null?void 0:ra.mcpServers)||((Bt=y.agentSpec)==null?void 0:Bt.mcpServers)||[]}}})},Fa=d=>{zo(Xc),et(""),Qe(""),Ie(!0)},Cl=()=>{var d,y,k,D,ne,ue,me;return{model:t.model,llmProvider:t.llmProvider||"openai",agentSpec:{agentsMd:((d=t.agentSpec)==null?void 0:d.agentsMd)||"",guardrails:((y=t.agentSpec)==null?void 0:y.guardrails)||"",blockedTerms:((k=t.agentSpec)==null?void 0:k.blockedTerms)||[],rules:((D=t.agentSpec)==null?void 0:D.rules)||[],skills:((ne=t.agentSpec)==null?void 0:ne.skills)||[],subagents:((ue=t.agentSpec)==null?void 0:ue.subagents)||[],mcpServers:((me=t.agentSpec)==null?void 0:me.mcpServers)||[]}}},Sl=d=>{Z(y=>y.some(D=>qo(D)===Sn)?y.map(D=>qo(D)===Sn?{...D,...d}:D):[...y,d])},lr=async()=>{if(fn||ge)return;const d=Cl();it(!0),et(""),Qe("");try{const y=await ze.updateAgentConfig(Sn,d);Sl(y),zo(jp(y,t)),Qe("Agent OS salvo no perfil do agente.")}catch(y){et(y instanceof Error?y.message:"Nao foi possivel salvar o Agent OS.")}finally{it(!1)}},Br=d=>{const y=new Blob([JSON.stringify(d,null,2)],{type:"application/json;charset=utf-8"}),k=URL.createObjectURL(y),D=document.createElement("a");D.href=k,D.download=`${wv(d.agentName||d.agentId||ds)}.canvas-flow.workspace.json`,document.body.appendChild(D),D.click(),D.remove(),URL.revokeObjectURL(k)},kl=async()=>{if(!(fn||ht)){Ze(!0),et(""),Qe("");try{const d=await ze.updateAgentConfig(Sn,Cl());Sl(d),zo(jp(d,t));const y=await ze.getAgentWorkspace(Sn);Br(y),Qe("Workspace .canvas-flow exportado.")}catch(d){et(d instanceof Error?d.message:"Nao foi possivel exportar o workspace.")}finally{Ze(!1)}}},ed=async d=>{if(!(fn||ht)){Ze(!0),et(""),Qe("");try{const y=JSON.parse(d),k=await ze.importAgentWorkspace(Sn,y);Sl(k),zo(jp(k,t)),Qe("Workspace .canvas-flow importado para este agente.")}catch(y){et(y instanceof Error?y.message:"Nao foi possivel importar o workspace.")}finally{Ze(!1)}}},Vn=(d,y)=>{w(Array.isArray(y)?y:Array.isArray(d==null?void 0:d.versions)?d.versions:[]),C(Number.isFinite(Number(d==null?void 0:d.activeVersion))?Number(d==null?void 0:d.activeVersion):void 0),T(Number.isFinite(Number(d==null?void 0:d.latestVersion))?Number(d==null?void 0:d.latestVersion):0)},cr=d=>{Ud(Array.isArray(d==null?void 0:d.releases)?d.releases:[]),Cr(Number.isFinite(Number(d==null?void 0:d.activeRelease))?Number(d==null?void 0:d.activeRelease):void 0),Pt(Number.isFinite(Number(d==null?void 0:d.latestRelease))?Number(d==null?void 0:d.latestRelease):0)},bo=b.useCallback(async(d=Ee)=>{if(!d||d==="default-agent")return cr(null),null;ma(!0);try{const y=await ze.getAgentReleases(d);return cr(y),y}catch{return cr(null),null}finally{ma(!1)}},[Ee]),Lo=b.useCallback(async(d=f)=>{if(!d)return Vn(null),null;L(!0);try{const y=await ze.getFlowVersions(d);return Vn(y),y}catch{return Vn(null),null}finally{L(!1)}},[f]);b.useEffect(()=>{Dr&&(f&&Lo(f),bo(Ee))},[Dr,bo,Lo,Ee,f]),b.useEffect(()=>{ml("")},[Xt==null?void 0:Xt.title,Xt==null?void 0:Xt.confirmationText]),b.useEffect(()=>{if(!ho)return;const d=y=>{var k;(k=Eo.current)!=null&&k.contains(y.target)||Ka(!1)};return document.addEventListener("pointerdown",d),()=>document.removeEventListener("pointerdown",d)},[ho]),b.useEffect(()=>{jt==="agentVersion"&&bo(Ee)},[jt,bo,Ee]),b.useEffect(()=>{jt!=="flowVersion"||!f||Ot.length||R||Lo(f)},[jt,f,Ot.length,R,Lo]),b.useEffect(()=>{jt!=="agentVersion"||xa||!Qt.length||va(String(Qt[0].release||""))},[jt,xa,Qt]),b.useEffect(()=>{jt!=="flowVersion"||Or||!Ot.length||_o(String(Ot[0].version||""))},[jt,Or,Ot]),b.useEffect(()=>{if(!Dr)return;if(!Qt.length){eo&&es("");return}Qt.some(y=>String(y.release)===eo)||es("")},[eo,Dr,Qt]),b.useEffect(()=>{if(!Ot.length){ts&&ha("");return}Ot.some(y=>String(y.version)===ts)||ha("")},[ts,Ot]),b.useEffect(()=>{if(!Dr||!so.length){sl({});return}let d=!1;return Promise.all(so.map(async y=>{const k=await ze.getFlowVersions(y.id).catch(()=>null);return[y.id,{activeVersion:k==null?void 0:k.activeVersion,versions:(k==null?void 0:k.versions)||[]}]})).then(y=>{d||sl(Object.fromEntries(y))}),()=>{d=!0}},[Dr,so]),b.useEffect(()=>{if(!ta.length){Sa&&to("");return}if(ta.some(k=>k.key===Sa))return;const y=ta.find(k=>k.isReleaseSnapshot)||ta[0];to(y.key)},[Sa,ta]);const Pi=(d,y)=>{n(k=>({...k,steps:k.steps.map(D=>{if(D.id!==d)return D;const ne={...D,...y};return y.responseName&&ne.api&&(ne.api={...ne.api,responseName:y.responseName}),y.responseName&&ne.component&&(ne.component={...ne.component,responseName:y.responseName}),ne})}))},Us=b.useCallback((d,y)=>{n(k=>({...k,steps:k.steps.map(D=>{if(D.id!==d)return D;const ne={...D,...y};return D.type==="condition"&&y.instruction!==void 0&&(ne.condition=y.instruction),ne})}))},[]),Ur=b.useCallback((d,y)=>{An(y?{stepId:d,field:y}:null)},[]),hc=(d,y)=>{n(k=>({...k,edges:k.edges.map(D=>D.id===d?{...D,...y}:D)}))},xs=b.useCallback((d,y)=>{n(k=>{const ne=$c(k.steps).map(ue=>ue.id===d?{...ue,group:{...ue.group||{width:520,height:340},width:Math.max(ng,Math.round(y.width)),height:Math.max(og,Math.round(y.height))}}:ue);return{...k,steps:Gj(ne,d)}})},[]),fc=b.useCallback(d=>{n(y=>{var De;const k=$c(y.steps),D=k.find(nt=>nt.id===d&&nt.type==="group"),ne=!((De=D==null?void 0:D.group)!=null&&De.collapsed),ue=ne?aE(k,d,{includeAttached:!0,margin:NA,canvasNodes:we.current}):{steps:k,childIds:[]},me=ue.steps.map(nt=>{var yn;return nt.id===d&&nt.type==="group"?{...nt,group:{...nt.group||{width:520,height:340},collapsed:!((yn=nt.group)!=null&&yn.collapsed),collapsedChildIds:ue.childIds}}:nt});return{...y,steps:ne?me:tE(me,d)}})},[]),Al=b.useCallback(()=>{const d=ko("group");n(y=>{const k=new Map(y.steps.map(Bt=>[Bt.id,Bt])),D=Pe.map(Bt=>k.get(Bt)).filter(Bt=>Bt?Bt.type!=="group"&&!Bt.parentId:!1),ne=wt("group",y.steps.length);if(ne.id=d,!D.length)return ne.position={x:120+y.steps.length*38,y:120+y.steps.length*24},{...y,steps:[...y.steps,ne],startStepId:y.startStepId||ne.id};const ue=D.reduce((Bt,Co)=>{const Da=qp(Co,k);return{minX:Math.min(Bt.minX,Da.x),minY:Math.min(Bt.minY,Da.y),maxX:Math.max(Bt.maxX,Da.right),maxY:Math.max(Bt.maxY,Da.bottom)}},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}),me={x:ue.minX-fv,y:ue.minY-gv},De=Math.max(ng,ue.maxX-ue.minX+fv*2),nt=Math.max(og,ue.maxY-ue.minY+gv+jA);ne.position=me,ne.group={width:De,height:nt};const yn=new Set(D.map(Bt=>Bt.id)),ra=y.steps.map(Bt=>{if(!yn.has(Bt.id))return Bt;const Co=el(Bt,k);return{...Bt,parentId:ne.id,position:Xp(Co.x-me.x,Co.y-me.y)}});return{...y,steps:[...ra,ne],startStepId:y.startStepId||ne.id}}),Ue(d),tt(""),Re(""),At(!1)},[Pe]),Yt=()=>{const d=Lr;Qo(d),mn(!1),Jn(""),yr(d.length?"selection":"flow"),qa(""),vr(!0)},El=d=>{Qo(y=>y.includes(d)?y.filter(k=>k!==d):[...y,d]),_n(null),Jn("")},gc=()=>{const d=Gn.trim()?Pa:t.steps;Qo(y=>Array.from(new Set([...y,...d.map(k=>k.id)]))),_n(null),Jn("")},xc=()=>{Qo([]),_n(null),Jn("")},Ml=async()=>{const d=En.trim();if(!d){Jn("Descreva o fluxo que a IA deve montar.");return}const y=Va==="selection"?"selection":"flow",k=y==="selection"?rr:[];if(y==="selection"&&!k.length){Jn("Selecione pelo menos um nó no canvas para usar este escopo.");return}tl(!0),Jn("");try{const D=So(t),ne=y==="selection"?uE(D,k):D,ue=await ze.generateFlowWithAssistant({instruction:d,sourceType:Ba,currentConfig:ne,scope:{mode:y==="selection"?"selectedNodes":"fullFlow",selectedStepIds:k},flowName:r,agentId:l,flowId:f||void 0,model:t.model,llmProvider:t.llmProvider||"openai"});_n({...ue,scope:y,selectedStepIds:k})}catch(D){Jn(D instanceof Error?D.message:"Não foi possível gerar o fluxo com IA.")}finally{tl(!1)}},vc=()=>{var k,D;if(!(vt!=null&&vt.config))return;const d=So(vt.config),y=vt.scope==="selection"?So(pE(t,d,vt.selectedStepIds||[])):d;n(y),vt.scope!=="selection"&&s(y.title||r||"Fluxo IA"),Ue(vt.scope==="selection"?((k=vt.selectedStepIds)==null?void 0:k[0])||"":y.startStepId||((D=y.steps[0])==null?void 0:D.id)||""),tt(""),Re(""),At(!1),sn(""),rn(""),ar(""),Ln({}),ya(null),jn([{role:"system",text:"Alteração aplicada pelo assistente. Clique em Salvar para persistir."}]),vr(!1)},Do=d=>{if(d==="group"){Al();return}const y=wt(d,t.steps.length);n(k=>({...k,steps:[...k.steps,y],startStepId:k.startStepId||y.id})),Ue(y.id),tt(""),Re(""),At(!1),sn(""),rn(""),Ln({})},Zt=d=>{if(!d)return;const y=wt("component",t.steps.length,d);n(k=>({...k,steps:[...k.steps,y]})),Ue(y.id),tt(""),Re(""),At(!1),mn(!1),gr("")},gn=b.useCallback(d=>{n(y=>kv(y,new Set([d]))),Ue(""),tt(""),Re(""),lt([])},[]),wn=b.useCallback(d=>{const y=t.steps.find(D=>D.id===d),k=(y==null?void 0:y.type)==="group"?`Deseja realmente excluir "${(y==null?void 0:y.title)||"este encapsulador"}"? Os nós dentro dele serão mantidos no canvas.`:`Deseja realmente excluir "${(y==null?void 0:y.title)||"este nó"}"? As ligações conectadas a ele também serão removidas.`;Gt({title:"Excluir nó?",message:k,confirmLabel:"Excluir nó",onConfirm:()=>gn(d)})},[t.steps,gn]),vs=b.useCallback(d=>{Ue(d),tt(""),Re(""),At(!1)},[]),qs=b.useCallback(d=>{n(y=>{var ue,me;const k=y.steps.find(De=>De.id===d);if(!k)return y;const D=ko(k.type),ne={...Av(k),id:D,title:`${k.title||"Node"} copia`,position:{x:(((ue=k.position)==null?void 0:ue.x)||0)+36,y:(((me=k.position)==null?void 0:me.y)||0)+36}};return{...y,steps:[...y.steps,ne]}}),Ue(""),tt(""),Re(""),At(!1)},[]),_i=b.useCallback(()=>{const d=new Set(Pe);if(!d.size)return;const y=t.steps.filter(me=>d.has(me.id));if(!y.length)return;const k=new Map(y.map(me=>[me.id,ko(me.type)])),D=Array.from(k.values()),ne=y.map(me=>{var yn,ra;const De=k.get(me.id)||ko(me.type),nt=me.parentId&&k.has(me.parentId)?k.get(me.parentId):me.parentId;return{...Av(me),id:De,title:`${me.title||"Node"} copia`,parentId:nt,position:{x:(((yn=me.position)==null?void 0:yn.x)||0)+36,y:(((ra=me.position)==null?void 0:ra.y)||0)+36}}}),ue=t.edges.filter(me=>d.has(me.source)&&d.has(me.target)).map(me=>({...me,id:ko("edge"),source:k.get(me.source)||me.source,target:k.get(me.target)||me.target}));n(me=>({...me,steps:[...me.steps,...ne],edges:[...me.edges,...ue]})),Ue(""),tt(""),Re(""),lt(D),At(!1)},[t.edges,t.steps,Pe]),td=b.useCallback(d=>{const y=new Set(d);n(k=>kv(k,y)),Ue(""),tt(""),Re(""),lt([]),At(!1)},[]),Bn=b.useCallback(()=>{const d=Pe.map(y=>t.steps.find(k=>k.id===y)).filter(y=>!!y);d.length&&Gt({title:`Excluir ${d.length} nos?`,message:"As ligacoes conectadas aos nos selecionados tambem serao removidas. Encapsuladores selecionados soltam os nos internos que nao estiverem selecionados.",confirmLabel:"Excluir selecionados",onConfirm:()=>td(d.map(y=>y.id))})},[t.steps,td,Pe]),Tl=b.useCallback(d=>{n(y=>({...y,edges:y.edges.filter(k=>k.id!==d)})),tt(""),Re("")},[]),Oi=b.useCallback(d=>{const y=t.edges.find(ue=>ue.id===d),k=t.steps.find(ue=>ue.id===(y==null?void 0:y.source)),D=t.steps.find(ue=>ue.id===(y==null?void 0:y.target)),ne=k&&D?`${k.title||k.id} -> ${D.title||D.id}`:"esta ligação";Gt({title:"Excluir ligação?",message:`Deseja realmente excluir ${ne}?`,confirmLabel:"Excluir ligação",onConfirm:()=>Tl(d)})},[t.edges,t.steps,Tl]),Il=b.useCallback(d=>{tt(d),Ue(""),Re(""),At(!1)},[]),za=b.useCallback(d=>{!d.source||!d.target||n(y=>{const k={id:ko("edge"),source:d.source,target:d.target};return Jj(k,y)&&(k.edgeRole="manifest"),{...y,edges:[...y.edges,k]}})},[]),io=b.useCallback((d,y)=>{const k=Array.isArray(y)&&y.length?y:[d];if(k.length>1||Pe.length<=1||!Pe.includes(d.id))return k;const D=new Set(Pe);return Np(we.current,[d]).filter(ue=>D.has(ue.id))},[Pe]),Ri=b.useCallback((d,y,k)=>{const D=io(y,k);we.current=Np(we.current,D)},[io]),yc=b.useCallback((d,y)=>{we.current=Np(we.current,y)},[]),jc=b.useCallback((d,y,k)=>{const D=io(y,k);we.current=Np(we.current,D),n(ne=>Tv(ne,D))},[io]),nd=b.useCallback((d,y)=>{we.current=Np(we.current,y),n(k=>Tv(k,y))},[]),od=b.useCallback(d=>{const y=d.filter(D=>D.type==="select");y.length&&lt(D=>{const ne=new Set(D);return y.forEach(ue=>{ue.selected?ne.add(ue.id):ne.delete(ue.id)}),Array.from(ne)});const k=d.filter(D=>D.type!=="select");k.length&&re(D=>{const ne=$y(k,D);return we.current=ne,ne})},[]),ad=b.useCallback(({nodes:d})=>{lt(d.map(y=>y.id))},[]),rd=b.useCallback((d,y)=>{var D,ne;const k=d;if(k.ctrlKey||k.metaKey||k.shiftKey){Ue(""),tt(""),Re(""),At(!1);return}if(((ne=(D=y.data)==null?void 0:D.step)==null?void 0:ne.type)==="group"){gs(),lt([y.id]);return}lt([y.id]),vs(y.id)},[gs,vs]),sd=b.useCallback((d,y)=>{Re(y.id),tt(""),Ue(""),At(!1)},[]),id=b.useCallback(d=>{const y=new Set(d.map(k=>k.id));n(k=>({...k,edges:k.edges.filter(D=>!y.has(D.id))})),tt(k=>y.has(k)?"":k),Re(k=>y.has(k)?"":k)},[]);b.useEffect(()=>{we.current=xt},[xt]),b.useEffect(()=>{const d=Iv(t,{onUpdate:Us,onEdit:vs,onInlineEdit:Ur,editingStepId:pn==null?void 0:pn.stepId,editingField:(pn==null?void 0:pn.field)||null,onDuplicate:qs,onDelete:wn,onResizeGroup:xs,onToggleGroup:fc,selectedStepIds:Pe});re(y=>{const k=rE(y,d);return we.current=k,k})},[t,qs,pn,vs,wn,xs,Pe,fc,Ur,Us]),b.useEffect(()=>{Ye(Pv(t,{onEdit:Il,onDelete:Oi}))},[t,Il,Oi]),b.useEffect(()=>{const d=new Set(t.steps.map(k=>k.id)),y=Ag(t);lt(k=>k.filter(D=>d.has(D)&&y.has(D))),Ue(k=>k&&!y.has(k)?"":k),An(k=>k&&!y.has(k.stepId)?null:k)},[t]);const xn=b.useCallback(async(d=Ee)=>{const y=d.trim()||"default-agent";hl(!0),Si("");try{const k=await ze.listFlows(y);return P(k),k}catch(k){const D=k instanceof Error?k.message:"Nao foi possivel carregar os fluxos.";throw Si(D),k}finally{hl(!1)}},[Ee]),vn=b.useCallback(async()=>{X(!0),se("");try{const d=await ze.listAgents();return Z(d),d}catch(d){return se(d instanceof Error?d.message:"Nao foi possivel carregar os agentes."),[]}finally{X(!1)}},[]);b.useEffect(()=>{vn()},[vn]),b.useEffect(()=>{let d=!1;const y=Ee,k=window.setTimeout(()=>{hl(!0),ze.listFlows(y).then(D=>{d||(Si(""),P(D))}).catch(D=>{d||Si(D instanceof Error?D.message:"Nao foi possivel carregar os fluxos.")}).finally(()=>{d||hl(!1)})},350);return()=>{d=!0,window.clearTimeout(k)}},[Ee]);const qr=async(d=fo,y=Wd,k=rs)=>{Ar(!0),Hc("");try{const D=await ze.getTagDashboard({...d,agentId:l,flowId:d.flowId||"",tags:jf(d.tags),limit:Number(d.limit||100),historyPage:y,historyLimit:k});Hd(D)}catch(D){Hc(D instanceof Error?D.message:"Não foi possível carregar o dashboard de tags.")}finally{Ar(!1)}},ld=async()=>{en(!1),Mo(!0),er(1),U.length||await xn().catch(()=>[]),await qr(fo,1,rs)},Pl=async()=>{er(1),await qr(fo,1,rs)},Fi=async d=>{const y=Math.max(1,d);er(y),await qr(fo,y,rs)},cd=async d=>{const y=Math.max(10,Math.min(Number(d||50),500));ll(y),er(1),await qr(fo,1,y)},_l=async(d=Ea)=>{dl(!0),Wc("");try{const y=await ze.getAgentOpsDashboard({...d,agentId:Ee,flowId:d.flowId||"",historyLimit:Math.max(10,Math.min(Number(d.historyLimit||80),500)),traceLimit:Math.max(50,Math.min(Number(d.traceLimit||600),5e3))});fi(y)}catch(y){Wc(y instanceof Error?y.message:"Nao foi possivel carregar o AgentOps.")}finally{dl(!1)}},bc=async()=>{en(!1),cl(!0),U.length||await xn().catch(()=>[]),await _l(Ea)},dd=async()=>{await _l(Ea)},c=d=>{const y=d.length?d:[zd({name:"Novo cenario"})];_s(y);try{To(bp(y))}catch{}},S=(d,y)=>{const k=Tr.map(D=>D.id===d?{...D,...y}:D);c(k),ro(null)},_=()=>{const d=[...Tr,zd({name:`Cenario ${Tr.length+1}`})];c(d),ro(null)},H=d=>{const y=Tr.find(D=>D.id===d);if(!y)return;const k=[...Tr,{...y,id:ko("simcase"),name:`${y.name||"Cenario"} copia`}];c(k),ro(null)},je=d=>{const y=Tr.filter(k=>k.id!==d);c(y),ro(null)},ke=()=>{const d=wp();c(d),Fn(""),ro(null)},Je=()=>{try{const d=xv(hn);c(d.length?d:[zd({name:"Novo cenario"})]),gi("visual"),Fn(""),ro(null)}catch(d){Fn(d instanceof Error?d.message:"JSON invalido.")}},pt=()=>{try{const d=xv(hn);To(bp(d)),Fn("")}catch(d){Fn(d instanceof Error?d.message:"JSON invalido.")}},bt=()=>{if(Tn==="saved"){if(!fa.length)throw new Error("Selecione pelo menos uma suite salva para rodar.");const y=MA(_t,fa);if(!y.length)throw new Error("As suites selecionadas nao possuem casos.");return To(JSON.stringify(y,null,2)),y}if(ul==="json"){const y=JSON.parse(hn||"[]"),k=Array.isArray(y)?y:y.cases;if(!Array.isArray(k))throw new Error("JSON precisa ser uma lista de casos ou um objeto com cases[].");return k}const d=Fj(Tr);return To(JSON.stringify(d,null,2)),d},tn=d=>{nr(y=>y.includes(d)?y.filter(k=>k!==d):[...y,d]),ro(null)},Un=()=>{nr(_t.map(d=>d.id)),ro(null)},ot=()=>{nr([]),ro(null)},ln=(d,y)=>{!d||!y||d===y||(nr(k=>{const D=k.indexOf(d),ne=k.indexOf(y);return D<0||ne<0?k:Sf(k,D,ne)}),pl(""),ro(null))},wo=d=>{const y=_t.find(D=>D.id===d);if(!y)return;const k=y.cases.map((D,ne)=>Rj(D,ne));vi(y.id),Yo(y.name||"Suite sem nome"),ga(y.description||""),ct(y.mode==="isolated"?"isolated":"conversation"),_s(k.length?k:[zd({name:"Novo cenario"})]),To(JSON.stringify(y.cases||[],null,2)),gi("visual"),ls("editor"),Fn(""),zn(`Suite "${y.name}" carregada.`),ro(null)},ud=()=>{const d=wp();vi(""),Yo(`Suite ${_t.length+1}`),ga(""),ct("conversation"),_s(d),To(bp(d)),gi("visual"),ls("editor"),Fn(""),zn(""),ro(null)},pd=async(d,y)=>{var me;const k=Pp(d);vv(ja,k),ec(k);const D=So({...t,simulationSuites:k});if(n(D),!f)return zn(`${y} Salva localmente; salve o fluxo para enviar ao backend.`),null;const ne=await ze.updateFlow(f,{name:r||D.title,agentId:Ee,config:D});s(ne.name),p(ne.agentId||Ee),h(ne.agentId||Ee),n(So(ne.config));const ue=Pp(((me=ne.config)==null?void 0:me.simulationSuites)||k);return vv(ja,ue),ec(ue),await xn(ne.agentId||Ee),zn(y),ne},Yd=async()=>{ji(!0),Fn(""),zn("");try{const d=bt();if(!d.length)throw new Error("Adicione pelo menos um caso com mensagem do usuario.");const y=new Date().toISOString(),k=_t,D=Ir||ko("evalsuite"),ne=k.find(De=>De.id===D),ue={id:D,name:yi.trim()||(ne==null?void 0:ne.name)||`Suite ${k.length+1}`,description:Os.trim(),mode:Zl,cases:d,createdAt:(ne==null?void 0:ne.createdAt)||y,updatedAt:y},me=ne?k.map(De=>De.id===D?ue:De):[...k,ue];vi(ue.id),nr(De=>De.includes(ue.id)?De:[...De,ue.id]),Yo(ue.name),ga(ue.description||""),await pd(me,`Suite "${ue.name}" salva.`)}catch(d){Fn(d instanceof Error?d.message:"Nao foi possivel salvar a suite.")}finally{ji(!1)}},ba=async()=>{if(!Ir)return;const d=_t.find(y=>y.id===Ir);if(d){ji(!0),Fn(""),zn("");try{const y=_t.filter(D=>D.id!==d.id);await pd(y,`Suite "${d.name}" removida.`),nr(D=>D.filter(ne=>ne!==d.id));const k=wp();vi(""),Yo(`Suite ${y.length+1}`),ga(""),ct("conversation"),_s(k),To(bp(k)),gi("visual"),ro(null)}catch(y){Fn(y instanceof Error?y.message:"Nao foi possivel remover a suite.")}finally{ji(!1)}}},wc=()=>{en(!1),Yl(!0),Fn(""),zn(""),ls(_t.length?"saved":"editor")},ys=async()=>{is(!0),Fn(""),ro(null),Ps(!1);try{const d=bt();if(!Array.isArray(d)||!d.length)throw new Error("Informe uma lista JSON com pelo menos um caso.");const y=await ze.replaySimulation(tp({flowId:f||void 0,agentId:l,channel:Zo,mode:Zl,cases:d,conversationId:`canvas-flow-sim-${Date.now()}`,traceMode:"compact",traceLimit:120,traceCollectLimit:800}));ro(y)}catch(d){Fn(d instanceof Error?d.message:"Nao foi possivel rodar a simulacao.")}finally{is(!1)}},Yp=()=>{go&&Rr({title:"Estado final da simulacao",payload:{summary:go.summary,mode:go.mode,finalState:go.finalState,generatedAt:go.generatedAt}})},Gu=d=>{Rr({title:`Resultado ${d.index}${d.name?` - ${d.name}`:""}`,payload:{index:d.index,name:d.name,passed:d.passed,input:d.text,output:{lastMessage:d.lastMessage,messages:d.messages||[]},checks:d.checks||[],context:{slots:d.slots||{},currentStepId:d.currentStepId||"",ended:d.ended===!0,conversationId:d.conversationId||""},trace:d.trace||[]}})},Zp=d=>{const y=So(JSON.parse(JSON.stringify(d.config)));x(""),h(""),Vn(null),oo(void 0),s(y.title||d.name),n(y),Ue(""),tt(""),Re(""),lt([]),At(!1),Jo(!1),mn(!1),Po("draft"),va(""),_o(""),sn(""),rn(""),ar(""),Ln({}),cs([]),Ai(null),ya(null),jn([{role:"system",text:`Template "${d.name}" aplicado como rascunho. Salve para criar um fluxo no agente atual.`}])},Ju=async()=>{en(!1),Rn(""),ao(""),Uc(""),kr(""),os("");const d=await xn();ka(d),mo(!0)},Nc=(d,y)=>{!d||!y||d===y||ka(k=>{const D=k.findIndex(ue=>ue._id===d),ne=k.findIndex(ue=>ue._id===y);return Sf(k,D,ne)})},Ku=async()=>{Za(!0),Rn("");try{const d=await ze.reorderFlows(Ya.map(y=>y._id),Ee);P(d),ka(d)}catch(d){Rn(d instanceof Error?d.message:"Nao foi possivel reordenar os fluxos.")}finally{Za(!1)}},Zd=async d=>{await js(d),mo(!1),ao(""),kr(""),os("")},em=async()=>{const d=Aa.trim();if(!(!d||ns)){Za(!0),Rn("");try{const y=So({...Cf(),title:d}),k=await ze.createFlow({name:d,agentId:Ee,config:y});Uc("");const D=await xn(Ee);ka(D),await vn(),await js(k),mo(!1)}catch(y){Rn(y instanceof Error?y.message:"Nao foi possivel criar o fluxo.")}finally{Za(!1)}}},tm=d=>{kr(d._id),os(d.name),Rn("")},Qu=async d=>{const y=qd.trim();if(!y){Rn("Informe um nome para o fluxo.");return}if(y===d.name||ns){kr(""),os("");return}Za(!0),Rn("");try{const k=await ze.updateFlow(d._id,{name:y});ka(D=>D.map(ne=>ne._id===d._id?{...ne,...k}:ne)),P(D=>D.map(ne=>ne._id===d._id?{...ne,...k}:ne)),f===d._id&&s(k.name),kr(""),os("")}catch(k){Rn(k instanceof Error?k.message:"Nao foi possivel atualizar o fluxo.")}finally{Za(!1)}},nm=async d=>{Za(!0),Rn("");try{await ze.deleteFlow(d._id);const y=await xn(Ee);ka(y),await vn(),await bo(Ee),f===d._id&&(y[0]?await js(y[0]):await Cc(Ee,y)&&ka(await xn(Ee)))}catch(y){Rn(y instanceof Error?y.message:"Nao foi possivel excluir o fluxo.")}finally{Za(!1)}},om=d=>{Gt({title:"Excluir fluxo?",message:`Deseja realmente excluir o fluxo "${d.name||"sem nome"}"? Esta acao nao pode ser desfeita.`,confirmLabel:"Excluir fluxo",onConfirm:()=>void nm(d)})},js=async(d,y={})=>{const k=typeof d=="string"?d:d._id;if(!k)return;const D=await ze.getFlow(k),ne=D.agentId||l,ue=y.preferVersion===!0||!!y.preferredVersion,me=ue?await ze.getFlowVersions(k).catch(()=>null):null,De=kh((me==null?void 0:me.versions)||[]),nt=Number(y.preferredVersion||0),yn=nt?De.find(Da=>Number(Da.version)===nt&&Da.config):void 0,ra=ue?De.find(Da=>Number(Da.version)===Number(D.activeVersion)&&Da.config):void 0,Bt=ue?De.find(Da=>Da.config):void 0,Co=yn||ra||Bt;x(D._id),s(D.name),p(ne),h(ne),n(So((Co==null?void 0:Co.config)||D.config||hv())),Vn(me||D,(me==null?void 0:me.versions)||[]),oo(Co?Number(Co.version):void 0),Ue(""),tt(""),lt([]),An(null),Re(""),Po(Co?"flowVersion":"draft"),va(""),_o(Co?String(Co.version):""),ha(Co?String(Co.version):""),sn(""),rn(""),ar(""),Ln({}),ya(null),jn([{role:"system",text:Co?`Fluxo carregado na v${Co.version}${y.preferredVersionLabel?` (${y.preferredVersionLabel})`:""}. Clique em Reiniciar para testar esta versão.`:"Fluxo carregado. Clique em Reiniciar para testar este rascunho."}]),At(!1)},Xu=async()=>{_r(!0);try{const d=l.trim()||"default-agent",y=no,k={name:r||t.title,agentId:d,config:So(t)},D=f?await ze.updateFlow(f,k):await ze.createFlow(k),ne=D._id===f?j:[],ue=eh(ne,D.activeVersion,y);return x(D._id),s(D.name),p(D.agentId||d),h(D.agentId||d),n(So(D.config)),Vn(D,ne),oo(ue?Number(ue.version):void 0),_o(ue?String(ue.version):""),ha(ue?String(ue.version):""),sn(""),rn(""),Ln({}),await xn(),await vn(),D}finally{_r(!1)}},na=async(d,y)=>{const k=eh(d.versions||[],d.activeVersion,d.latestVersion);x(d._id),s(d.name),p(d.agentId||Ee),h(d.agentId||Ee),n(So((k==null?void 0:k.config)||d.config)),Vn(d),oo(k?Number(k.version):void 0),Po(k?"flowVersion":"draft"),_o(k?String(k.version):""),ha(k?String(k.version):""),y&&(zt(y),window.setTimeout(()=>zt(""),2200)),await xn(d.agentId||Ee),await bo(d.agentId||Ee)},No=async()=>{Cn(!0),an(""),zt("");try{const d=await Xu(),y=(d==null?void 0:d._id)||f;if(!y)throw new Error("Salve o fluxo antes de criar uma versao.");const k=await ze.deployFlowVersion(y,{notes:br,activate:!1});wr(""),await na(k,`Versão v${k.latestVersion} criada para homologação.`)}catch(d){an(d instanceof Error?d.message:"Não foi possível criar a versão.")}finally{Cn(!1)}},am=()=>{if(fn){Gt({title:"Crie um agente primeiro",message:"Selecione ou crie um agente antes de criar uma versão do fluxo.",confirmLabel:"Abrir agentes",variant:"primary",onConfirm:()=>{ae(!0),vn()}});return}if(It){Gt({title:"Alterar agente e criar versão?",message:`Este fluxo está salvo no agente "${m}". Para criar uma versão em "${l.trim()}", o fluxo será salvo nesse agente antes.`,confirmLabel:"Salvar e criar versão",variant:"primary",onConfirm:()=>void No()});return}No()},rm=async d=>{if(!(!f||!d||Vt)){Cn(!0),an(""),zt("");try{const y=await ze.activateFlowVersion(f,d);await na(y,`Versão v${d} ativada para clientes.`)}catch(y){an(y instanceof Error?y.message:"Não foi possível ativar a versão.")}finally{Cn(!1)}}},sm=d=>{d&&Gt({title:`Ativar v${d} para clientes?`,message:Ht?`Esta versão passa a ser usada em produção. O pacote ativo r${Ht} será atualizado para apontar para a v${d}.`:"Esta versão passa a ser usada em produção.",confirmLabel:`Ativar v${d}`,variant:"primary",onConfirm:()=>void rm(d)})},im=d=>{if(!(d!=null&&d.config)){an(`A versão v${(d==null?void 0:d.version)||""} não possui snapshot para carregar.`);return}n(So(d.config)),oo(Number(d.version)),Ue(""),tt(""),lt([]),An(null),Re(""),sn(""),rn(""),ar(""),Ln({}),ya(null),zt(`v${d.version} carregada no editor. O botão principal agora publica as alterações nesta versão.`),window.setTimeout(()=>zt(""),3200)},eu=async(d,y=bn)=>{var De;const k=d.lastIndexOf(":"),D=d.slice(0,k),ne=Number(d.slice(k+1)),ue=Number(((De=y==null?void 0:y.versions)==null?void 0:De[D])||0);if(!(y!=null&&y.release)||!D||!ne)return;const me=ne===ue;to(d),Sr(!0);try{await js(D,{preferVersion:!0,preferredVersion:ne,preferredVersionLabel:me?`pacote r${y.release}`:"histórico do fluxo"}),es(String(y.release)),to(d),me?(va(String(y.release)),Po("agentVersion")):(_o(String(ne)),Po("flowVersion"))}finally{Sr(!1)}},md=d=>{es(d),va(d),d&&Po("agentVersion");const y=Qt.find(ne=>String(ne.release)===d),k=dh(y,U)[0],D=k?`${k.id}:${k.version}`:"";to(D),D&&eu(D,y)},lm=d=>{ha(d),_o(d),d&&Po("flowVersion");const y=Ot.find(k=>String(k.version)===d);y&&im(y)},hd=async(d,y)=>{if(!(!f||!(d!=null&&d.version)||Vt)){Cn(!0),an(""),zt("");try{const k=await ze.overwriteFlowVersion(f,d.version,y?{sourceVersion:y,name:d.currentName}:{config:So(t),name:d.currentName});Vn(k),zt(y?`v${d.version} publicada com a v${y}.`:`v${d.version} publicada com o rascunho atual.`),window.setTimeout(()=>zt(""),3e3),await xn(k.agentId||Ee),await bo(k.agentId||Ee)}catch(k){an(k instanceof Error?k.message:"Não foi possível publicar a versão.")}finally{Cn(!1)}}},cm=async()=>{if(jo&&f){const d={kind:"flow",version:jo.version,isActive:Number(jo.version)===Number(yo),currentName:jo.name||""};if(jl||(oo(Number(jo.version)),_o(String(jo.version)),ha(String(jo.version))),d.isActive){Gt({title:`Publicar em produção v${d.version}?`,message:"Esta versão está ativa para clientes. Publicar agora altera imediatamente o fluxo usado em produção.",confirmLabel:`Publicar v${d.version}`,variant:"danger",confirmationText:`v${d.version}`,confirmationPrompt:`Digite v${d.version} para confirmar a publicação em produção.`,onConfirm:()=>void hd(d)});return}await hd(d);return}await No()},dm=async(d,y)=>{if(!(!(d!=null&&d.version)||Vt||fn)){Cn(!0),an(""),zt("");try{y||await Xu();const k=await ze.overwriteAgentRelease(Ee,d.version,y?{sourceRelease:y,name:d.currentName}:{name:d.currentName});cr(k),zt(y?`r${d.version} sobrescrita com a r${y}.`:`r${d.version} atualizada com as últimas versões criadas dos fluxos.`),window.setTimeout(()=>zt(""),3e3),await vn()}catch(k){an(k instanceof Error?k.message:"Não foi possível sobrescrever a versão do agente.")}finally{Cn(!1)}}},tu=d=>{ii(d),Bc("draft"),Yn(""),li("")},fd=()=>{ii(null),Bc("draft"),Yn(""),li("")},um=async()=>{if(!Mt||Vt)return;const d=at==="version"?fs:void 0;if(at==="version"&&!d){li("Selecione a versão de origem.");return}fd(),Mt.kind==="agent"?await dm(Mt,d):await hd(Mt,d)},Yu=async d=>{if(!(!f||!(d!=null&&d.version)||Vt)){Cn(!0),an(""),zt("");try{const y=await ze.deleteFlowVersion(f,d.version);Vn(y);const k=eh(y.versions||[],y.activeVersion,no);k?(oo(Number(k.version)),_o(String(k.version)),ha(String(k.version)),n(So(k.config||y.config))):(oo(void 0),_o(""),ha("")),zt(`v${d.version} excluída.`),window.setTimeout(()=>zt(""),2600)}catch(y){an(y instanceof Error?y.message:"Não foi possível excluir a versão do fluxo.")}finally{Cn(!1)}}},nu=d=>{const y=`v${d.version}`;Gt({title:`Excluir ${y}?`,message:"Esta ação remove definitivamente esta versão do fluxo. Para excluir uma versão ativa, ative outra versão antes.",confirmLabel:`Excluir ${y}`,variant:"danger",confirmationText:y,confirmationPrompt:`Digite ${y} para confirmar.`,onConfirm:()=>void Yu(d)})},pm=d=>{Vc(d),al(d.currentName||""),pa("")},gd=()=>{Vc(null),al(""),pa("")},ou=async()=>{if(!ua||Xo)return;const d=Wl.trim();if(!d){pa("Informe um nome para a versão.");return}Nr(!0),pa("");try{if(ua.kind==="agent"){const y=await ze.renameAgentRelease(Ee,ua.version,{name:d});cr(y),zt(`Versão do agente r${ua.version} renomeada para "${d}".`)}else{if(!f)throw new Error("Salve o fluxo antes de renomear a versão.");const y=await ze.renameFlowVersion(f,ua.version,{name:d});Vn(y),zt(`Versão do fluxo v${ua.version} renomeada para "${d}".`)}window.setTimeout(()=>zt(""),2600),gd()}catch(y){pa(y instanceof Error?y.message:"Não foi possível renomear a versão.")}finally{Nr(!1)}},mm=async()=>{var d,y,k;if(fn){Gt({title:"Crie um agente primeiro",message:"Selecione ou crie um agente antes de criar uma release do agente.",confirmLabel:"Abrir agentes",variant:"primary",onConfirm:()=>{ae(!0),vn()}});return}Cn(!0),an(""),zt("");try{const D=await Xu(),ne=(D==null?void 0:D._id)||f,ue=await ze.deployAgentRelease(Ee,{notes:rl,activate:!1});cr(ue),(d=ue.release)!=null&&d.release&&(es(String(ue.release.release)),va(String(ue.release.release)),Po("agentVersion"));const me=ne&&((y=ue.release)!=null&&y.versions)?ue.release.versions[ne]:void 0;if(me&&(ha(String(me)),_o(String(me))),ne){const De=await ze.getFlow(ne),nt=await ze.getFlowVersions(ne).catch(()=>null),yn=me?((nt==null?void 0:nt.versions)||[]).find(ra=>Number(ra.version)===Number(me)):void 0;x(De._id),s(De.name),p(De.agentId||Ee),h(De.agentId||Ee),n(So((yn==null?void 0:yn.config)||De.config)),Vn(nt||De,(nt==null?void 0:nt.versions)||[]),oo(yn?Number(yn.version):void 0)}Zn(""),zt(`Pacote r${(k=ue.release)==null?void 0:k.release} criado para homologação usando as últimas versões dos fluxos.`),await vn(),await xn(Ee)}catch(D){an(D instanceof Error?D.message:"Não foi possível criar a versão do agente.")}finally{Cn(!1)}},au=async d=>{if(!(!d||Vt||fn)){Cn(!0),an(""),zt("");try{const y=await ze.activateAgentRelease(Ee,d);cr(y),zt(`Versão do agente r${d} ativada para clientes.`),await vn()}catch(y){an(y instanceof Error?y.message:"Não foi possível ativar a versão do agente.")}finally{Cn(!1)}}},Hs=d=>{d&&Gt({title:`Ativar pacote r${d} para clientes?`,message:"Este pacote passa a ser o padrão de produção do agente. Chamadas sem override usarão as versões dos fluxos deste pacote.",confirmLabel:`Ativar r${d}`,variant:"primary",onConfirm:()=>void au(d)})},Fh=async d=>{if(!(!d||Vt||fn)){Cn(!0),an(""),zt("");try{const y=await ze.deleteAgentRelease(Ee,d);cr(y),zt(`Versão do agente r${d} excluída.`),window.setTimeout(()=>zt(""),2600),await vn()}catch(y){an(y instanceof Error?y.message:"Não foi possível excluir a versão do agente.")}finally{Cn(!1)}}},hm=d=>{const y=`r${d}`;Gt({title:`Excluir ${y}?`,message:"Esta ação remove definitivamente esta versão do agente. Para excluir uma versão ativa, ative outra versão antes.",confirmLabel:`Excluir ${y}`,variant:"danger",confirmationText:y,confirmationPrompt:`Digite ${y} para confirmar.`,onConfirm:()=>void Fh(d)})},Cc=async(d=l,y=U)=>{const k=d.trim();if(k&&k!=="default-agent"){const ne=JA(y),ue=So({...Cf(),title:ne}),me=await ze.createFlow({name:ne,agentId:k,config:ue}),De=await ze.deployFlowVersion(me._id,{notes:"Versão inicial criada automaticamente.",activate:!1});return await xn(k),await vn(),await js(De,{preferVersion:!0,preferredVersion:De.latestVersion}),jn([{role:"system",text:`Fluxo criado e atrelado à v${De.latestVersion}. Clique em Reiniciar para testar esta versão.`}]),De}const D=Cf();return x(""),h(""),Vn(null),oo(void 0),p(k||"default-agent"),s(D.title||"Fluxo IA Gen"),n(D),Ue(""),tt(""),Re(""),At(!1),sn(""),rn(""),ar(""),Ln({}),ya(null),jn([{role:"system",text:"Selecione um agente antes de criar um fluxo."}]),null},xd=async d=>{var ne;const y=d.trim()||"default-agent";p(y);const k=await xn(y),D=await bo(y);if(ae(!1),ee(""),k[0]){const ue=(ne=D==null?void 0:D.releases)==null?void 0:ne.find(De=>Number(De.release)===Number(D.activeRelease)),me=ue!=null&&ue.versions?Number(ue.versions[k[0]._id]||0):0;await js(k[0],{preferVersion:!0,preferredVersion:me,preferredVersionLabel:me&&(D!=null&&D.activeRelease)?`pacote r${D.activeRelease}`:void 0})}else await Cc(y,k)},fm=async d=>{const y=qo(d);et(""),Qe(""),y!==Ee?await xd(y):zo(jp(d,t)),ae(!1),Ie(!0)},vd=(d,y)=>{!d||!y||d===y||Z(k=>{const D=new Map;k.forEach(De=>D.set(qo(De),De)),[d,y,Ee].forEach(De=>{!De||D.has(De)||D.set(De,{agentId:De,name:De,flowCount:De===Ee?U.length:0})});const ne=Array.from(D.values()),ue=ne.findIndex(De=>qo(De)===d),me=ne.findIndex(De=>qo(De)===y);return Sf(ne,ue,me)})},$o=async()=>{ve(!0),se("");try{const d=await ze.reorderAgents(us.map(y=>qo(y)));Z(d)}catch(d){se(d instanceof Error?d.message:"Nao foi possivel salvar a ordem dos agentes.")}finally{ve(!1)}},gm=async()=>{const d=q.trim();if(!(!d||te)){X(!0),se("");try{const y=await ze.createAgent({name:d});ie(""),await vn(),await xd((y==null?void 0:y.agentId)||(y==null?void 0:y.name)||d)}catch(y){se(y instanceof Error?y.message:"Nao foi possivel criar o agente.")}finally{X(!1)}}},zh=d=>{$(qo(d)),I(Xs(d)),se("")},yd=async()=>{const d=G.trim(),y=K.trim(),k=Xs(F.find(D=>qo(D)===d));if(!d||!y||k===y||te){$(""),I("");return}X(!0),se("");try{await ze.renameAgent(d,{name:y}),$(""),I(""),await vn(),await xn(Ee)}catch(D){se(D instanceof Error?D.message:"Nao foi possivel renomear o agente.")}finally{X(!1)}},Vo=d=>{Oe(d),ce(""),se("")},xm=async()=>{var k;if(!Ce)return;const d=qo(Ce),y=Xs(Ce);if(!(B.trim()!==y||te)){X(!0),se("");try{const D=await ze.deleteAgent(d,{confirmationName:B.trim()});if(Z(D.agents||[]),Oe(null),ce(""),Ee===d){const ne=qo((D.agents||[]).find(De=>qo(De)!==d))||"default-agent";p(ne);const ue=await xn(ne),me=await bo(ne);if(ue[0]){const De=(k=me==null?void 0:me.releases)==null?void 0:k.find(yn=>Number(yn.release)===Number(me.activeRelease)),nt=De!=null&&De.versions?Number(De.versions[ue[0]._id]||0):0;await js(ue[0],{preferVersion:!0,preferredVersion:nt,preferredVersionLabel:nt&&(me!=null&&me.activeRelease)?`pacote r${me.activeRelease}`:void 0})}else await Cc(ne,ue)}else await vn(),await xn(Ee)}catch(D){se(D instanceof Error?D.message:"Nao foi possivel excluir o agente.")}finally{X(!1)}}},Ve=async()=>{_r(!0);try{const d=`${r||t.title||"Fluxo"} copia`,y=So({...JSON.parse(JSON.stringify(t)),title:`${t.title||"Fluxo"} copia`,isMainFlow:!1}),k=await ze.createFlow({name:d,agentId:l,config:y}),D=await ze.deployFlowVersion(k._id,{notes:"Versão inicial criada automaticamente a partir da cópia.",activate:!1});await js(D,{preferVersion:!0,preferredVersion:D.latestVersion}),sn(""),rn(""),Ln({}),await xn(),await vn()}finally{_r(!1)}},Sc=async()=>{if(!f)return;const d=f,y=Ee;_r(!0);try{await ze.deleteFlow(d);const k=await xn(y);await vn(),await bo(y),k[0]?await js(k[0]):await Cc(y,k)}finally{_r(!1)}},Zu=()=>{f&&Gt({title:"Excluir fluxo?",message:`Deseja realmente excluir o fluxo "${r||"sem nome"}"? Esta ação não pode ser desfeita.`,confirmLabel:"Excluir fluxo",onConfirm:()=>void Sc()})},ep=async(d,y)=>{const k=ze;if(typeof k.streamTestFlow=="function")return k.streamTestFlow(d,y);const D=await ze.testFlow(d);for(const ne of D.messages||[]){const ue=Math.max(0,Number(ne.delayBeforeMs||0));ue&&await new Promise(me=>window.setTimeout(me,ue)),y(ne)}return{...D,messages:[]}},tp=d=>jt==="active"&&f?d:jt==="agentVersion"&&f&&dc?{...d,agentRelease:dc}:jt==="flowVersion"&&f&&hs?{...d,ignoreAgentRelease:!0,flowVersionMap:{[f]:hs}}:{...d,config:t},jd=async()=>{var y,k;if(Ra){cs([]),Ai(null),jn([{role:"system",text:"Selecione uma versão para iniciar o teste."}]);return}ki(!0);const d=`canvas-flow-test-${Date.now()}`;sn(""),rn(""),Ln({}),cs([]),Ai(null),jn([]);try{let D=0;const ne=await ep(tp({flowId:f||void 0,agentId:Ee,channel:Zo,conversationId:d,text:"",slots:{},traceMode:"debug",traceLimit:200,traceCollectLimit:1200}),ue=>{D+=1,jn(me=>[...me,ue])});ar(ne.conversationId||d),rn(ne.currentStepId||""),sn(ne.activeFlowId||f||""),Ln(ne.slots||{}),cs(ne.trace||[]),Ai(ne.tracePage||null),ya(ne.runtime||null),!D&&!((y=ne.messages)!=null&&y.length)?jn([{role:"system",text:"Fluxo iniciado."}]):(k=ne.messages)!=null&&k.length&&jn(ue=>[...ue,...ne.messages||[]]),Fs({})}catch(D){jn([{role:"system",text:(D==null?void 0:D.message)||"Falha ao iniciar teste."}]),Fs({})}finally{ki(!1)}},bd=async(d,y)=>{var D;const k=d.trim();if(!(!k||Tt||Ra)){jn(ne=>[...ne,{role:"user",text:(y||k).trim()||k}]),ki(!0);try{const ne=await ep(tp({flowId:f||void 0,activeFlowId:zs||f||void 0,entryFlowId:f||void 0,agentId:Ee,channel:Zo,conversationId:zr||`canvas-flow-test-${Date.now()}`,currentStepId:Ei||void 0,text:k,slots:fl,traceMode:"debug",traceLimit:200,traceCollectLimit:1200}),ue=>{jn(me=>[...me,ue])});ar(ne.conversationId||zr),rn(ne.currentStepId||""),sn(ne.activeFlowId||zs||f||""),Ln(ne.slots||{}),cs(ne.trace||[]),Ai(ne.tracePage||null),ya(ne.runtime||null),(D=ne.messages)!=null&&D.length&&jn(ue=>[...ue,...ne.messages||[]])}catch(ne){jn(ue=>[...ue,{role:"system",text:(ne==null?void 0:ne.message)||"Falha no teste."}])}finally{ki(!1)}}},ru=async()=>{if(!or.trim()||Tt)return;const d=or.trim();Rs(""),await bd(d)},vm=async(d,y)=>{await bd(d,y)},ym=async()=>{await navigator.clipboard.writeText(JSON.stringify(t,null,2))},np=async d=>{await navigator.clipboard.writeText(d),Ao(d),window.setTimeout(()=>Ao(y=>y===d?"":y),1400)},op=async()=>{await navigator.clipboard.writeText(Ls),Kn("JSON do fluxo copiado."),window.setTimeout(()=>Kn(""),1800)},ap=()=>{const d=new Blob([Ls],{type:"application/json;charset=utf-8"}),y=URL.createObjectURL(d),k=document.createElement("a");k.href=y,k.download=`${wv(r||t.title||"fluxo")}.canvas-flow.json`,document.body.appendChild(k),k.click(),k.remove(),URL.revokeObjectURL(y),Kn("Arquivo de exportação gerado."),window.setTimeout(()=>Kn(""),1800)},lo=d=>{ca(""),Kn("");try{const y=JSON.parse(d),k=HA(y);x(""),h(""),Vn(null),oo(void 0),k.agentId&&p(k.agentId),s(k.name),n(k.config),Ue(""),tt(""),Re(""),At(!1),sn(""),rn(""),ar(""),Ln({}),ya(null),jn([{role:"system",text:"Fluxo importado como rascunho. Clique em Salvar para criar o registro."}]),Ga(""),Kn("Fluxo importado como rascunho. Revise e clique em Salvar."),jr(!1)}catch(y){ca(y instanceof Error?y.message:"Não foi possível importar o fluxo.")}},Hr=async d=>{var k;const y=(k=d.target.files)==null?void 0:k[0];if(d.target.value="",!!y)try{const D=await y.text();Ga(D),lo(D)}catch(D){ca(D instanceof Error?D.message:"Não foi possível ler o arquivo.")}},zi=b.useCallback(async d=>{var D,ne,ue;if(!f)return;const k=(ne=(D=(await ze.getFlow(f)).config)==null?void 0:D.steps)==null?void 0:ne.find(me=>me.id===d);((ue=k==null?void 0:k.component)==null?void 0:ue.type)==="cron"&&n(me=>({...me,steps:me.steps.map(De=>{var nt,yn,ra,Bt;return De.id!==d||((nt=De.component)==null?void 0:nt.type)!=="cron"?De:{...De,component:{...De.component,cronLastRunAt:(yn=k.component)==null?void 0:yn.cronLastRunAt,cronNextRunAt:(ra=k.component)==null?void 0:ra.cronNextRunAt,cronExecutionLog:((Bt=k.component)==null?void 0:Bt.cronExecutionLog)||[]}}})}))},[f]),su=Oo?t.steps.find(d=>d.id===Oo.source):void 0,iu=Oo?t.steps.find(d=>d.id===Oo.target):void 0,wa=(Wt==null?void 0:Wt.historyPagination)||{},Li=Number(wa.page||Wd||1),dr=Number(wa.limit||rs||50),Di=Number(wa.total||0),rp=Math.max(1,Number(wa.totalPages||(Di?Math.ceil(Di/dr):1))),jm=Di>0?(Li-1)*dr+1:0,bm=Di>0?Math.min(Di,Li*dr):0,wm=DA(Wt),$i=(Wt==null?void 0:Wt.insights)||{},Wr=(Wt==null?void 0:Wt.traceInsights)||{},sp=Su($i.byFlow,["flowName","flowId"]),ur=Su($i.byChannel,["channel"]),Et=Su(Wr.byStep,["title","key"]),co=Su(Wr.calls,["key"]),cn=(mt==null?void 0:mt.summary)||{},qn=(mt==null?void 0:mt.queue)||{},La=(mt==null?void 0:mt.traceInsights)||{},Ws=(mt==null?void 0:mt.capabilities)||{},kn=Array.isArray((bs=mt==null?void 0:mt.readiness)==null?void 0:bs.warnings)?(Cd=mt==null?void 0:mt.readiness)==null?void 0:Cd.warnings:[],wd=Array.isArray(mt==null?void 0:mt.hotNodes)?mt==null?void 0:mt.hotNodes:[],Vi=Array.isArray(mt==null?void 0:mt.errors)?mt==null?void 0:mt.errors:[],Nd=Array.isArray(mt==null?void 0:mt.flows)?mt==null?void 0:mt.flows:[],Bi=(mt==null?void 0:mt.releases)||{},kc=Array.isArray(Bi.items)?Bi.items:Array.isArray(Bi.releases)?Bi.releases:[];return e.jsx(wg,{children:e.jsxs("div",{className:"app-shell",children:[e.jsxs("header",{className:"app-header",children:[e.jsxs("div",{className:"header-title-block",children:[e.jsx("h1",{children:Kt?"Nenhum fluxo aberto":r||t.title}),e.jsx("span",{children:ds})]}),e.jsxs("div",{className:"header-actions",children:[e.jsxs("label",{className:`header-field agent-field ${It?"agent-changed":""}`,children:[e.jsx("span",{children:"Agente"}),e.jsxs("button",{type:"button",className:"agent-select-button",onClick:()=>{ae(!0),vn()},title:"Abrir agentes",children:[e.jsx(Ho,{size:15}),e.jsx("strong",{children:ds}),e.jsx(kp,{size:14})]})]}),e.jsxs("label",{className:"header-field agent-os-field",children:[e.jsx("span",{children:"Agent OS"}),e.jsxs("button",{type:"button",disabled:Kt,onClick:()=>Fa(),title:"Configurar modelo, skills, subagents, rules, MCP e guardrails do agente",children:[e.jsx(ks,{size:16}),"Perfil"]})]}),e.jsxs("label",{className:"header-field channel-field",children:[e.jsx("span",{children:"Canal"}),e.jsxs("select",{className:"channel-select",value:Zo,"aria-label":"Canal",disabled:Kt,onChange:d=>Nl({channel:d.target.value}),children:[e.jsx("option",{value:"webWidget",children:"Web widget"}),e.jsx("option",{value:"whatsapp",children:"WhatsApp"})]})]}),e.jsxs("label",{className:"header-field header-action-field",children:[e.jsx("span",{className:"header-spacer-label","aria-hidden":"true",children:" "}),e.jsxs("div",{className:"header-actions-menu",onBlur:d=>{d.currentTarget.contains(d.relatedTarget)||en(!1)},children:[e.jsxs("button",{type:"button",onClick:()=>en(d=>!d),children:[e.jsx(AS,{size:16}),"Ações",e.jsx(kp,{size:14})]}),Fe&&e.jsxs("div",{className:"header-actions-dropdown",children:[e.jsxs("button",{type:"button",onClick:()=>{en(!1),xn()},disabled:Kt||Ma,children:[Ma?e.jsx($t,{size:16,className:"spin"}):e.jsx(kp,{size:16}),"Atualizar fluxos"]}),e.jsxs("button",{type:"button",onClick:()=>void Ju(),disabled:Kt||Ma,children:[e.jsx(NS,{size:16}),"Fluxos do agente"]}),e.jsxs("button",{type:"button",onClick:()=>{en(!1),Ve()},disabled:Pr||Kt,children:[e.jsx(nn,{size:16}),"Duplicar fluxo"]}),e.jsxs("button",{type:"button",className:"danger-button",onClick:()=>{en(!1),Zu()},disabled:!f||Pr,children:[e.jsx(St,{size:16}),"Excluir fluxo"]}),e.jsx("div",{className:"header-actions-separator"}),e.jsxs("button",{type:"button",disabled:Kt,onClick:()=>{en(!1),Ue(""),tt(""),Re(""),At(!0)},children:[e.jsx(bh,{size:16}),"Config Padrão"]}),e.jsxs("button",{type:"button",disabled:Kt,onClick:()=>{en(!1),Fa()},children:[e.jsx(ks,{size:16}),"Agent OS"]}),e.jsxs("button",{type:"button",onClick:()=>{en(!1),Ja(!0)},children:[e.jsx(Ss,{size:16}),"Provedores"]}),e.jsxs("button",{type:"button",onClick:()=>void ld(),disabled:Kt,children:[e.jsx(yh,{size:16}),"Dashboard"]}),e.jsxs("button",{type:"button",onClick:()=>void bc(),disabled:Kt,children:[e.jsx(Lx,{size:16}),"AgentOps"]}),e.jsxs("button",{type:"button",onClick:wc,disabled:Kt,children:[e.jsx(ju,{size:16}),"Simular/Evals"]}),e.jsxs("button",{type:"button",onClick:()=>{en(!1),ni(!0)},disabled:Kt,children:[e.jsx(Fu,{size:16}),"JSON gerado"]}),e.jsxs("button",{type:"button",onClick:()=>{en(!1),jr(!0),ca("")},disabled:Kt,children:[e.jsx(jh,{size:16}),"Importar/Exportar Fluxo"]}),e.jsxs("button",{type:"button",onClick:()=>{en(!1),ai(!0)},disabled:Kt,children:[e.jsx(kS,{size:16}),"API"]}),e.jsxs("button",{type:"button",onClick:()=>{en(!1),Zr(!0)},disabled:Kt,children:[e.jsx(mj,{size:16}),"API Keys"]})]})]})]}),e.jsxs("div",{ref:Eo,className:"header-field header-version-field",children:[e.jsx("span",{children:"Versões"}),e.jsxs("button",{type:"button",title:"Selecionar release ou gerenciar versões",disabled:Kt,onClick:()=>{en(!1),Ka(d=>!d),an("")},children:[e.jsx(Xi,{size:16}),"Versões"]}),ho&&e.jsxs("div",{className:"header-version-popover",children:[e.jsxs("label",{className:"flow-version-select-field",children:[e.jsx("span",{children:"Pacote do agente"}),e.jsxs("select",{value:eo,onChange:d=>md(d.target.value),disabled:Gl||On||!Qt.length,children:[e.jsx("option",{value:"",children:Qt.length?"Selecione um pacote":"Nenhum pacote criado"}),Qt.map(d=>e.jsxs("option",{value:String(d.release),children:["r",d.release,d.name?` - ${d.name}`:"",Number(d.release)===Number(Ht)?" (produção)":""]},d.release))]})]}),e.jsxs("label",{className:"flow-version-select-field",children:[e.jsx("span",{children:"Versões dos fluxos da release"}),e.jsxs("select",{value:Sa,onChange:d=>void eu(d.target.value),disabled:On||!ta.length,children:[!ta.length&&e.jsx("option",{value:"",children:eo?"Nenhum snapshot neste pacote":"Selecione um pacote"}),ta.map(d=>e.jsx("option",{value:d.key,children:Cv(d,Nv(d,Rt))},d.key))]})]}),e.jsxs("button",{type:"button",className:"primary-button header-version-manage-button",onClick:()=>{Ka(!1),Qa(!0),si("agent"),ql(!0),an("")},children:[e.jsx(bh,{size:16}),"Gerenciar versões"]})]})]}),e.jsxs("label",{className:"header-field header-save-field",children:[e.jsx("span",{className:"header-spacer-label","aria-hidden":"true",children:" "}),e.jsxs("button",{className:"primary-button",title:Ti?`Publicar alterações na ${ms}`:`Criar v${Ds}`,onClick:()=>void cm(),disabled:Kt||Pr||Vt||On,children:[Pr||Vt||On?e.jsx($t,{size:16,className:"spin"}):e.jsx(Pc,{size:16}),On?"Carregando versão...":Ti?`Publicar ${ms}`:`Criar v${Ds}`]})]})]})]}),e.jsx("main",{className:`workspace ${Kt?"workspace-missing-agent":""}`,children:Kt?e.jsx("section",{className:"missing-agent-panel",children:e.jsxs("div",{children:[e.jsx("span",{className:"missing-agent-icon",children:e.jsx(Ho,{size:24})}),e.jsx("strong",{children:"Selecione um agente para começar"}),e.jsx("p",{children:"Nenhum fluxo fica visível ou editável enquanto não houver um agente selecionado. Isso evita alterar um rascunho solto e perder trabalho depois."}),e.jsxs("button",{type:"button",className:"primary-button",onClick:()=>{ae(!0),vn()},children:[e.jsx(Ho,{size:16}),"Abrir agentes"]})]})}):e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"canvas-panel",children:[e.jsxs("div",{className:"toolbar",children:[e.jsxs("button",{className:"templates-button",onClick:()=>{Jo(d=>!d),mn(!1)},children:[e.jsx(Hf,{size:16}),"Templates"]}),e.jsxs("button",{className:"assistant-button",onClick:Yt,children:[e.jsx($l,{size:16}),"Assistente IA"]}),e.jsxs("button",{onClick:()=>Do("message"),children:[e.jsx(PS,{size:16}),"Mensagem"]}),e.jsxs("button",{onClick:()=>Do("richMessage"),children:[e.jsx(Hf,{size:16}),"Mensagem rica"]}),e.jsxs("button",{onClick:()=>Do("input"),children:[e.jsx(dn,{size:16}),"Input"]}),e.jsxs("button",{onClick:()=>Do("api"),children:[e.jsx(gj,{size:16}),"API"]}),e.jsxs("button",{onClick:()=>Do("condition"),children:[e.jsx(Xi,{size:16}),"Condição"]}),e.jsxs("button",{onClick:()=>Do("end"),children:[e.jsx(dn,{size:16}),"Fim"]}),e.jsxs("button",{onClick:()=>Do("group"),children:[e.jsx(Uf,{size:16}),"Encapsulador"]}),e.jsxs("button",{className:"components-button",onClick:()=>{mn(d=>!d),Jo(!1)},children:[e.jsx(Ho,{size:16}),"Componentes"]})]}),e.jsxs("div",{className:"flow-canvas",children:[Wn&&e.jsxs("div",{className:"component-palette template-palette",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"component-palette-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Templates multi-agente"}),e.jsx("span",{children:"Fluxos prontos com roteamento, governanca e observabilidade"})]}),e.jsx("button",{type:"button",onClick:()=>Jo(!1),"aria-label":"Fechar templates",children:e.jsx(Ut,{size:16})})]}),e.jsx("div",{className:"template-grid",children:ac.map(d=>e.jsxs("button",{type:"button",className:"template-card",onClick:()=>Zp(d),children:[e.jsx("span",{children:d.segment}),e.jsx("strong",{children:d.name}),e.jsx("em",{children:d.description})]},d.id))})]}),sa&&e.jsxs("div",{className:"component-palette",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"component-palette-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Componentes"}),e.jsx("span",{children:"Escolha um bloco para adicionar ao fluxo"})]}),e.jsx("button",{type:"button",onClick:()=>mn(!1),"aria-label":"Fechar componentes",children:e.jsx(Ut,{size:16})})]}),e.jsxs("div",{className:"component-search",children:[e.jsx(Rc,{size:15}),e.jsx("input",{autoFocus:!0,value:la,placeholder:"Buscar RAG, MongoDB, Dashboard...",onChange:d=>gr(d.target.value)})]}),e.jsxs("div",{className:"component-grid",children:[ic.map(d=>{const y=d.Icon;return e.jsxs("button",{type:"button",className:"component-card",onClick:()=>Zt(d.type),style:{borderColor:`${d.color}40`},children:[e.jsx("span",{className:"component-card-icon",style:{color:d.color,background:`${d.color}12`},children:e.jsx(y,{size:18})}),e.jsxs("span",{className:"component-card-main",children:[e.jsx("strong",{children:d.title}),e.jsx("small",{children:d.category}),e.jsx("em",{children:d.description})]})]},d.type)}),!ic.length&&e.jsx("div",{className:"component-empty",children:"Nenhum componente encontrado."})]})]}),Pe.length>0&&e.jsxs("div",{className:"canvas-selection-toolbar nodrag nopan",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("span",{children:[Pe.length," selecionado",Pe.length>1?"s":""]}),e.jsxs("button",{type:"button",onClick:_i,children:[e.jsx(nn,{size:14}),"Duplicar"]}),e.jsxs("button",{type:"button",onClick:Al,children:[e.jsx(Uf,{size:14}),"Encapsular"]}),e.jsxs("button",{type:"button",className:"danger-button",onClick:Bn,children:[e.jsx(St,{size:14}),"Excluir"]})]}),e.jsxs(ej,{nodes:xt,edges:Me,nodeTypes:hA,edgeTypes:fA,onNodesChange:od,onSelectionChange:ad,onNodeDrag:Ri,onNodeDragStop:jc,onSelectionDrag:yc,onSelectionDragStop:nd,onConnect:za,onNodeClick:rd,onEdgeClick:sd,onEdgesDelete:id,deleteKeyCode:null,multiSelectionKeyCode:["Control","Meta"],selectionKeyCode:null,panActivationKeyCode:null,onlyRenderVisibleElements:rc,onPaneClick:gs,fitView:!0,children:[fr&&e.jsx(Lp,{position:"bottom-left",className:"flow-variable-library-panel",onMouseDown:d=>d.stopPropagation(),onClick:d=>d.stopPropagation(),children:e.jsxs("div",{className:"flow-variable-library-popover",children:[e.jsxs("div",{className:"flow-variable-library-header",children:[e.jsx("strong",{children:"Variaveis do fluxo"}),e.jsx("span",{children:"Copie templates para prompts, headers, body, condicoes e mensagens."})]}),e.jsxs("div",{className:"flow-variable-library-section",children:[e.jsx("span",{className:"flow-variable-library-section-title",children:"Nativas"}),_a.native.map(d=>e.jsxs("button",{type:"button",className:"flow-variable-library-item",onClick:()=>void np(d.value),children:[e.jsxs("span",{children:[e.jsx("strong",{children:d.label}),e.jsx("code",{children:d.value}),e.jsx("em",{children:d.description})]}),e.jsx("small",{children:ia===d.value?"Copiado":e.jsx(nn,{size:13})})]},d.value))]}),e.jsxs("div",{className:"flow-variable-library-section",children:[e.jsx("span",{className:"flow-variable-library-section-title",children:"Criadas por responseName"}),_a.response.length===0&&e.jsx("div",{className:"flow-variable-library-empty",children:"Nenhum responseName configurado ainda."}),_a.response.map(d=>e.jsxs("button",{type:"button",className:"flow-variable-library-item",onClick:()=>void np(d.value),children:[e.jsxs("span",{children:[e.jsx("strong",{children:d.label}),e.jsx("code",{children:d.value}),e.jsx("em",{children:d.source?`${d.source}: ${d.description}`:d.description})]}),e.jsx("small",{children:ia===d.value?"Copiado":e.jsx(nn,{size:13})})]},d.value))]})]})}),e.jsx(rS,{children:e.jsxs(Mu,{className:`flow-variable-library-control ${fr?"active":""}`,title:"Lib. Contexto","aria-label":"Lib. Contexto",onClick:()=>Ko(d=>!d),children:[e.jsx(MS,{size:16}),e.jsx("span",{children:"Lib. Contexto"})]})}),!rc&&e.jsx(YC,{pannable:!0,zoomable:!0,nodeColor:TA}),rc&&e.jsx(Lp,{position:"top-right",className:"canvas-performance-badge",children:"Modo leve: minimapa oculto"}),e.jsx(uS,{gap:18,color:"#dbeafe"})]})]})]}),e.jsxs("aside",{className:"test-panel",children:[e.jsxs("div",{className:"test-header",children:[e.jsxs("strong",{children:[e.jsx(Ss,{size:16}),"Try it do fluxo"]}),e.jsxs("div",{className:`test-header-actions ${jt==="agentVersion"||jt==="flowVersion"?"has-version-select":""}`,children:[e.jsxs("label",{children:[e.jsx("span",{children:"Modo do teste"}),e.jsxs("select",{value:jt,onChange:d=>{const y=d.target.value;Po(y),y!=="agentVersion"&&va(""),y!=="flowVersion"&&_o(""),jn([{role:"system",text:"Clique em Reiniciar para iniciar o teste neste modo."}]),ar(""),rn(""),sn(""),Ln({}),cs([]),Ai(null),ya(null)},children:[e.jsx("option",{value:"draft",children:"Rascunho do editor"}),e.jsx("option",{value:"active",children:"Ativo para clientes"}),e.jsx("option",{value:"agentVersion",children:"Versão do agente"}),e.jsx("option",{value:"flowVersion",children:"Versão do fluxo"})]})]}),jt==="agentVersion"&&e.jsxs("label",{children:[e.jsx("span",{children:"Versão agente"}),e.jsxs("select",{value:xa,onChange:d=>va(d.target.value),disabled:Gl||!Qt.length,children:[!Qt.length&&e.jsx("option",{value:"",children:"Nenhuma versão"}),Qt.map(d=>e.jsxs("option",{value:String(d.release),children:["r",d.release,Number(d.release)===Number(Ht)?" ativa":""]},d.release))]})]}),jt==="flowVersion"&&e.jsxs("label",{children:[e.jsx("span",{children:"Versão fluxo"}),e.jsxs("select",{value:Or,onChange:d=>_o(d.target.value),disabled:R||!Ot.length,children:[R&&e.jsx("option",{value:"",children:"Carregando versoes..."}),!Ot.length&&e.jsx("option",{value:"",children:"Nenhuma versão"}),Ot.map(d=>e.jsxs("option",{value:String(d.version),children:["v",d.version,Number(d.version)===Number(yo)?" produção":""]},d.version))]})]}),e.jsxs("button",{onClick:jd,disabled:Tt||Ra,children:[e.jsx(ju,{size:15}),"Reiniciar"]})]})]}),Xd&&e.jsx("div",{className:"test-langgraph-summary",title:Xd.threadId,children:e.jsx("strong",{children:"LangGraph"})}),mc&&e.jsxs("div",{className:"test-trace-summary",children:[e.jsx("span",{children:Bs}),(Ii>0||wl)&&e.jsxs("small",{children:[Ii>0?`${Ii} evento(s) antigo(s) descartado(s). `:"",wl?"Há mais eventos no buffer desta execução.":""]}),e.jsxs("button",{type:"button",onClick:()=>Rr({title:"Trace do teste",payload:{page:xo,edgeConditions:$s,trace:Fr}}),children:[e.jsx(_d,{size:14}),"Ver trace"]})]}),e.jsxs("div",{className:"messages",children:[Kc.map((d,y)=>{const k=IA(d),D=PA(d),ne=RA(d),ue=`${d.role}-${y}`;if(D)return e.jsxs("div",{className:"message dashboard-message",children:[e.jsx("span",{children:d.role}),e.jsx(LA,{payload:D})]},ue);if(k){const me=Qc[ue]===!0,De=JSON.stringify(k.payload,null,2);return e.jsxs("div",{className:"message debug-message",children:[e.jsxs("div",{className:"debug-toolbar",children:[e.jsxs("button",{type:"button",className:"debug-toggle",onClick:()=>Fs(nt=>({...nt,[ue]:!me})),children:[e.jsxs("span",{className:"debug-toggle-label",children:[me?e.jsx(kp,{size:15}):e.jsx(lj,{size:15}),"Debug"]}),e.jsx("span",{children:k.title})]}),e.jsx("button",{type:"button",className:"debug-open-button",onClick:()=>Rr(k),title:"Abrir JSON em modal",children:e.jsx(_d,{size:14})})]}),me&&e.jsx("pre",{className:"debug-json",children:De})]},ue)}return ne?e.jsxs("div",{className:`message ${d.role} rich-message`,children:[e.jsx("span",{children:d.role}),e.jsx(UA,{content:ne,disabled:Tt,onSelect:(me,De)=>void vm(me,De)})]},ue):e.jsxs("div",{className:`message ${d.role}`,children:[e.jsx("span",{children:d.role}),e.jsx("p",{children:d.text})]},ue)}),Tt&&e.jsxs("div",{className:"message system",children:[e.jsx("span",{children:"system"}),e.jsx("p",{children:"Executando..."})]})]}),e.jsxs("div",{className:"test-input-row",children:[e.jsx("input",{value:or,placeholder:"Digite uma mensagem",onChange:d=>Rs(d.target.value),onKeyDown:d=>{d.key==="Enter"&&ru()}}),e.jsx("button",{onClick:ru,disabled:Tt||Ra||!or.trim(),children:e.jsx(fj,{size:18})})]})]})]})}),Oo&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>Re(""),children:e.jsxs("div",{className:"edge-action-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("strong",{children:"Ligação selecionada"}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>Re(""),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"edge-action-body",children:[e.jsxs("div",{className:"edge-summary",children:[e.jsxs("div",{className:"edge-summary-box",children:[e.jsx("span",{children:"Origem"}),e.jsx("strong",{children:(su==null?void 0:su.title)||Oo.source})]}),e.jsx(ih,{size:18}),e.jsxs("div",{className:"edge-summary-box",children:[e.jsx("span",{children:"Destino"}),e.jsx("strong",{children:(iu==null?void 0:iu.title)||Oo.target})]})]}),e.jsxs("div",{className:"edge-action-grid",children:[e.jsxs("button",{className:"edge-action-card",onClick:()=>{tt(Oo.id),Ue(""),Re(""),At(!1)},children:[e.jsx(Ic,{size:18}),e.jsxs("span",{children:[e.jsx("strong",{children:"Editar"}),e.jsx("small",{children:"Alterar texto da linha ou condição."})]})]}),e.jsxs("button",{className:"edge-action-card danger-edge-action",onClick:()=>{const d=Oo.id;Re(""),Oi(d)},children:[e.jsx(St,{size:18}),e.jsxs("span",{children:[e.jsx("strong",{children:"Excluir"}),e.jsx("small",{children:"Remover esta ligação do fluxo."})]})]})]})]})]})}),xr&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>vr(!1),children:e.jsxs("div",{className:"flow-assistant-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{className:"flow-assistant-title",children:[e.jsx("strong",{children:"Assistente IA"}),e.jsx("span",{children:(vt==null?void 0:vt.model)||t.model})]}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>vr(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"flow-assistant-body",children:[e.jsxs("section",{className:"flow-assistant-compose",children:[e.jsxs("div",{className:"flow-assistant-scope",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Escopo"}),e.jsx("span",{children:Va==="selection"?`${rr.length} nó(s) selecionado(s)`:"Enviar o fluxo inteiro"})]}),e.jsxs("div",{role:"group","aria-label":"Escopo do assistente",children:[e.jsx("button",{type:"button",className:Va==="flow"?"active":"",onClick:()=>{yr("flow"),_n(null),Jn("")},children:"Fluxo inteiro"}),e.jsx("button",{type:"button",className:Va==="selection"?"active":"",disabled:!t.steps.length,onClick:()=>{yr("selection"),_n(null),Jn("")},children:"Nós selecionados"})]})]}),Va==="selection"&&e.jsxs("div",{className:"flow-assistant-selection-panel",children:[e.jsxs("div",{className:"flow-assistant-selection-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Nós que a IA pode alterar"}),e.jsxs("span",{children:[Pa.length," de ",t.steps.length," nó(s)"]})]}),e.jsxs("div",{children:[e.jsx("button",{type:"button",onClick:gc,disabled:!Pa.length,children:Gn.trim()?"Selecionar filtro":"Todos"}),e.jsx("button",{type:"button",onClick:xc,disabled:!rr.length,children:"Limpar"})]})]}),e.jsxs("div",{className:"flow-assistant-node-search",children:[e.jsx(Rc,{size:15}),e.jsx("input",{value:Gn,placeholder:"Buscar por nome, tipo, texto, responseName...",onChange:d=>qa(d.target.value)}),Gn&&e.jsx("button",{type:"button",onClick:()=>qa(""),"aria-label":"Limpar busca",children:e.jsx(Ut,{size:14})})]}),e.jsxs("div",{className:"flow-assistant-node-picker",children:[Pa.map(d=>{var k;const y=rr.includes(d.id);return e.jsxs("label",{className:y?"selected":"",children:[e.jsx("input",{type:"checkbox",checked:y,onChange:()=>El(d.id)}),e.jsxs("span",{children:[e.jsx("strong",{children:d.title||d.id}),e.jsx("small",{children:d.responseName||((k=d.component)==null?void 0:k.responseName)||d.type})]})]},d.id)}),!t.steps.length&&e.jsx("div",{className:"component-empty",children:"Nenhum nó no fluxo."}),t.steps.length>0&&!Pa.length&&e.jsx("div",{className:"component-empty",children:"Nenhum nó encontrado para esta busca."})]}),e.jsx("div",{className:"flow-assistant-selected-list",children:gl.length>0?gl.map(d=>e.jsx("span",{children:d.title||d.id},d.id)):e.jsx("span",{children:"Nenhum nó selecionado"})})]}),e.jsxs("div",{className:"flow-assistant-scope",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Fonte"}),e.jsx("span",{children:Ba==="whatsappTranscript"?"Transcrição WhatsApp":"Brief livre"})]}),e.jsxs("div",{role:"group","aria-label":"Fonte do pedido",children:[e.jsx("button",{type:"button",className:Ba==="brief"?"active":"",onClick:()=>{Ua("brief"),_n(null),Jn("")},children:"Brief"}),e.jsx("button",{type:"button",className:Ba==="whatsappTranscript"?"active":"",onClick:()=>{Ua("whatsappTranscript"),_n(null),Jn("")},children:"WhatsApp"})]})]}),e.jsxs("div",{className:"flow-assistant-scope",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Motor"}),e.jsxs("span",{children:[((cu=mf.find(d=>d.value===(t.llmProvider||"openai")))==null?void 0:cu.label)||"OpenAI"," · ",t.model]})]}),e.jsxs("div",{role:"group","aria-label":"Motor do assistente",children:[e.jsx("select",{value:t.llmProvider||"openai",onChange:d=>{const y=d.target.value;n(k=>({...k,llmProvider:y,model:Od(y)||k.model})),_n(null)},children:mf.map(d=>e.jsx("option",{value:d.value,children:d.label},d.value))}),e.jsx("select",{value:t.model,onChange:d=>{n(y=>({...y,model:d.target.value})),_n(null)},children:$x(t.llmProvider||"openai",t.model).map(d=>e.jsx("option",{value:d,children:d},d))})]})]}),e.jsxs("div",{className:"flow-assistant-scope",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Agent OS"}),e.jsxs("span",{children:[(((Gs=t.agentSpec)==null?void 0:Gs.skills)||[]).length," skills - ",(((Sd=t.agentSpec)==null?void 0:Sd.subagents)||[]).length," subagents - ",(((Js=t.agentSpec)==null?void 0:Js.rules)||[]).length," rules - ",(((kd=t.agentSpec)==null?void 0:kd.mcpServers)||[]).length," MCP"]})]}),e.jsxs("button",{type:"button",onClick:()=>{vr(!1),Fa()},children:[e.jsx(ks,{size:15}),"Editar agente"]})]}),e.jsxs("div",{className:"flow-assistant-prompt-field",children:[e.jsx("span",{children:Ba==="whatsappTranscript"?"Cole a conversa":"Pedido"}),e.jsx("textarea",{rows:12,value:En,placeholder:Ba==="whatsappTranscript"?"Cole a transcricao do WhatsApp com falas do cliente e do operador.":"Descreva o fluxo, alteracao, insercao ou remocao desejada.",onChange:d=>{Xr(d.target.value),_n(null)}}),e.jsx("small",{className:"flow-assistant-prompt-hint",children:"Para Gmail, Google Drive, OneDrive, Notion, GitHub, GitLab ou AWS, descreva a tarefa desejada. O assistente monta Agent Plan, orquestrador, skill especialista e MCP remoto."})]}),Es&&e.jsx("div",{className:"auth-error",children:Es}),e.jsxs("div",{className:"flow-assistant-actions",children:[e.jsxs("button",{type:"button",onClick:()=>{Xr(jv),_n(null)},disabled:Ha,children:[e.jsx(nn,{size:15}),"Usar exemplo"]}),e.jsxs("button",{className:"primary-button",type:"button",onClick:()=>void Ml(),disabled:Ha||!En.trim(),children:[Ha?e.jsx($t,{size:16,className:"spin"}):e.jsx($l,{size:16}),Va==="selection"?"Gerar ajuste":"Gerar fluxo"]})]})]}),e.jsxs("section",{className:"flow-assistant-result",children:[!vt&&e.jsxs("div",{className:"flow-assistant-empty",children:[e.jsx($l,{size:22}),e.jsx("strong",{children:"Nenhum fluxo gerado ainda."})]}),vt&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flow-assistant-summary",children:[e.jsxs("div",{children:[e.jsx("span",{children:"Nós"}),e.jsx("strong",{children:vt.config.steps.length})]}),e.jsxs("div",{children:[e.jsx("span",{children:"Ligações"}),e.jsx("strong",{children:vt.config.edges.length})]}),e.jsxs("div",{children:[e.jsx("span",{children:"Escopo"}),e.jsx("strong",{children:vt.scope==="selection"?"Seleção":"Fluxo"})]})]}),e.jsxs("div",{className:"flow-assistant-notes",children:[e.jsx("strong",{children:vt.config.title||"Fluxo gerado"}),e.jsx("p",{children:vt.summary||"Resultado pronto para aplicar no canvas."})]}),(vt.warnings||[]).length>0&&e.jsx("div",{className:"flow-assistant-warnings",children:(vt.warnings||[]).map((d,y)=>e.jsxs("span",{children:[e.jsx(Um,{size:14}),d]},`${d}-${y}`))}),e.jsxs("div",{className:"flow-assistant-node-list",children:[vt.config.steps.slice(0,8).map(d=>{var y;return e.jsxs("div",{children:[e.jsx("span",{children:d.type==="component"&&((y=d.component)==null?void 0:y.type)||d.type}),e.jsx("strong",{children:d.title||d.id})]},d.id)}),vt.config.steps.length>8&&e.jsxs("div",{children:[e.jsx("span",{children:"+"}),e.jsxs("strong",{children:[vt.config.steps.length-8," no(s)"]})]})]}),e.jsxs("div",{className:"modal-actions flow-assistant-apply",children:[e.jsx("button",{type:"button",onClick:()=>_n(null),children:"Descartar"}),e.jsxs("button",{className:"primary-button",type:"button",onClick:vc,children:[e.jsx(Fl,{size:16}),vt.scope==="selection"?"Aplicar nos nós":"Aplicar no canvas"]})]})]})]})]})]})}),vl&&e.jsx("div",{className:"modal-backdrop",onMouseDown:gs,children:e.jsxs("div",{className:`inspector-modal ${Ia?"edge-modal":""} ${((Ac=Ta==null?void 0:Ta.component)==null?void 0:Ac.type)==="cron"?"cron-modal":""} ${((du=Ta==null?void 0:Ta.component)==null?void 0:du.type)==="mcp"?"mcp-modal":""}`,onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("strong",{children:sc}),e.jsxs("button",{"aria-label":"Fechar",onClick:gs,children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsx(Xk,{config:t,selectedStep:oc?void 0:Ta,selectedEdge:oc?void 0:Ia,flows:U,currentFlowId:f,agentId:Sn,onUpdateConfig:Nl,onUpdateStep:Pi,onUpdateEdge:hc,onRefreshCronLog:zi,canRefreshCronLog:!!f})]})}),Wa&&e.jsx("div",{className:"modal-backdrop",onClick:()=>ni(!1),children:e.jsxs("div",{className:"json-modal",onClick:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("strong",{children:"JSON gerado"}),e.jsxs("button",{onClick:ym,children:[e.jsx(nn,{size:16}),"Copiar"]})]}),e.jsx("pre",{children:JSON.stringify(t,null,2)})]})}),Jt&&e.jsx("div",{className:"modal-backdrop debug-modal-backdrop",onClick:()=>Rr(null),children:e.jsxs("div",{className:"json-modal wide-modal debug-json-modal",onClick:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Debug JSON"}),e.jsx("span",{children:Jt.title})]}),e.jsxs("div",{className:"debug-modal-actions",children:[e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(JSON.stringify(Jt.payload,null,2)),children:[e.jsx(nn,{size:16}),"Copiar"]}),e.jsxs("button",{onClick:()=>Rr(null),children:[e.jsx(Ut,{size:16}),"Fechar"]})]})]}),e.jsx(OA,{value:Jt.payload})]})}),ri&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>Qa(!1),children:e.jsxs("div",{className:"flow-version-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Publicação"}),e.jsx("span",{children:"Trabalhe com Rascunho, Homologação e Produção sem precisar combinar versões manualmente."})]}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>Qa(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"flow-version-body",children:[(Hl||yt)&&e.jsx("div",{className:Hl?"api-warning flow-transfer-error":"provider-config-success",children:Hl||yt}),e.jsxs("section",{className:"publish-environments flow-version-list-panel",children:[e.jsxs("article",{className:jt==="draft"?"selected":"",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Rascunho"}),e.jsx("span",{children:"O que está aberto no editor agora."})]}),e.jsx("button",{type:"button",onClick:()=>{Po("draft")},children:"Testar rascunho"})]}),e.jsxs("article",{className:jt==="agentVersion"||jt==="flowVersion"?"selected":"",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Homologação"}),e.jsx("span",{children:"Escolha um pacote e uma versão dos fluxos incluídos para abrir no editor."})]}),e.jsxs("div",{className:"publish-homolog-grid",children:[e.jsxs("label",{className:"flow-version-select-field",children:[e.jsx("span",{children:"Pacote do agente"}),e.jsxs("select",{value:eo,onChange:d=>md(d.target.value),disabled:Gl||On||!Qt.length,children:[e.jsx("option",{value:"",children:Qt.length?"Selecione um pacote":"Nenhum pacote criado"}),Qt.map(d=>e.jsxs("option",{value:String(d.release),children:["r",d.release,d.name?` - ${d.name}`:"",Number(d.release)===Number(Ht)?" (produção)":""]},d.release))]})]}),e.jsxs("label",{className:"flow-version-select-field",children:[e.jsx("span",{children:"Versões dos fluxos da release"}),e.jsxs("select",{value:Sa,onChange:d=>void eu(d.target.value),disabled:On||!ta.length,children:[!ta.length&&e.jsx("option",{value:"",children:eo?"Nenhum snapshot neste pacote":"Selecione um pacote"}),ta.map(d=>e.jsx("option",{value:d.key,children:Cv(d,Nv(d,Rt))},d.key))]})]})]})]}),e.jsxs("article",{className:jt==="active"?"selected":"",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Produção"}),e.jsx("span",{children:Ht?`Clientes usam o pacote r${Ht}.`:N?`Clientes usam o fluxo v${N}.`:"Nenhuma versão ativa para clientes."})]}),e.jsx("button",{type:"button",onClick:()=>Po("active"),disabled:!f,children:"Testar produção"})]}),e.jsxs("div",{className:"flow-version-summary",children:[e.jsxs("span",{children:["Try it usa: ",e.jsx("strong",{children:jt==="agentVersion"&&xa?`homologação: pacote r${xa}`:jt==="flowVersion"&&Or?`homologação: fluxo v${Or}`:jt==="active"?"produção":"rascunho"})]}),e.jsxs("span",{children:["Fluxo aberto: ",e.jsx("strong",{children:r||t.title})]})]})]}),e.jsxs("details",{className:"publish-advanced flow-version-list-panel",open:ol,onToggle:d=>ql(d.currentTarget.open),children:[e.jsx("summary",{children:"Gerenciar versões"}),e.jsxs("div",{className:"flow-version-tabs",role:"tablist","aria-label":"Tipo de versionamento",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":Mn==="agent",className:Mn==="agent"?"active":"",onClick:()=>si("agent"),children:"Agente"}),e.jsx("button",{type:"button",role:"tab","aria-selected":Mn==="flow",className:Mn==="flow"?"active":"",onClick:()=>si("flow"),children:"Fluxos"}),e.jsx("button",{type:"button",role:"tab","aria-selected":Mn==="deploy",className:Mn==="deploy"?"active":"",onClick:()=>si("deploy"),children:"API"})]}),Mn==="agent"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"flow-version-panel flow-version-list-panel",children:[e.jsxs("div",{className:"flow-transfer-section-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Novo pacote do agente"}),e.jsxs("span",{children:["Cria r",yl," apontando para a última versão criada de cada fluxo. Se algum fluxo não tiver versão, cria a v1 inicial. Não ativa em produção."]})]}),e.jsxs("button",{type:"button",className:"primary-button",onClick:()=>void mm(),disabled:Vt||Pr||fn,children:[Vt?e.jsx($t,{size:15,className:"spin"}):e.jsx(Xi,{size:15}),"Criar pacote r",yl]})]}),e.jsx("textarea",{value:rl,rows:3,placeholder:"Notas opcionais, ex: Login v4 + Área logada v3 para homologação.",onChange:d=>Zn(d.target.value)})]}),e.jsxs("section",{className:"flow-version-panel flow-version-list-panel",children:[e.jsx("div",{className:"flow-transfer-section-header",children:e.jsxs("div",{children:[e.jsx("strong",{children:"Pacotes criados"}),e.jsx("span",{children:Qt.length?`${Qt.length} pacote(s)`:"Nenhum pacote criado ainda."})]})}),e.jsxs("div",{className:"flow-version-list",children:[Qt.map(d=>{const y=Number(d.release)===Number(Ht),k=dh(d,U),D=k.length;return e.jsxs("div",{className:`flow-version-card ${y?"active":""}`,children:[e.jsxs("div",{children:[e.jsxs("strong",{children:["r",d.release]}),e.jsx("span",{children:d.name||`Pacote ${d.release}`}),e.jsxs("span",{children:[D," fluxo(s) versionados"]}),!!k.length&&e.jsx("div",{className:"flow-version-release-map",children:k.map(ne=>e.jsx("span",{className:ne.id===f?"current":"",children:Vj(ne,y)},`${d.release}-${ne.id}`))}),e.jsxs("small",{children:["Deploy: ",th(d.deployedAt||d.createdAt)," por ",nh(d.deployedByEmail,d.deployedBy)]}),(d.activatedAt||d.activatedByEmail||d.activatedBy)&&e.jsxs("small",{children:["Ativação: ",th(d.activatedAt)," por ",nh(d.activatedByEmail,d.activatedBy)]}),d.notes&&e.jsx("p",{children:d.notes})]}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",onClick:()=>tu({kind:"agent",version:d.release,isActive:y,currentName:d.name||""}),disabled:Vt||Pr,children:[e.jsx(Pc,{size:15}),"Publicar"]}),e.jsxs("button",{type:"button",onClick:()=>md(String(d.release)),disabled:Vt,children:[e.jsx(ju,{size:15}),"Abrir e testar"]}),y?e.jsx("span",{className:"status-pill active",children:"Ativa"}):e.jsxs("button",{type:"button",onClick:()=>Hs(d.release),disabled:Vt,children:[e.jsx(Ji,{size:15}),"Ativar"]}),e.jsxs("button",{type:"button",onClick:()=>pm({kind:"agent",version:d.release,currentName:d.name||""}),disabled:Vt,children:[e.jsx(Ic,{size:15}),"Renomear"]}),e.jsxs("button",{type:"button",onClick:()=>hm(d.release),disabled:Vt||y,title:y?"Ative outra versão antes de excluir esta.":`Excluir r${d.release}`,children:[e.jsx(St,{size:15}),"Excluir"]})]})]},d.release)}),!Qt.length&&e.jsx("div",{className:"api-warning",children:"Crie um pacote para homologação. Quando estiver aprovado, ative pela lista acima sem criar outro pacote."})]})]})]}),Mn==="deploy"&&e.jsxs("section",{className:"flow-version-panel flow-version-list-panel",children:[e.jsx("div",{className:"flow-transfer-section-header",children:e.jsxs("div",{children:[e.jsx("strong",{children:"Como a API escolhe a versão"}),e.jsx("span",{children:"Sem override, a chamada usa o pacote ativo do agente. Se não houver pacote ativo, usa a versão ativa do fluxo."})]})}),e.jsxs("div",{className:"flow-version-summary",children:[e.jsxs("span",{children:["Padrão sem override: ",e.jsx("strong",{children:Ht?`pacote r${Ht}`:N?`fluxo v${N}`:"rascunho"})]}),e.jsxs("span",{children:["Teste de pacote: ",e.jsx("strong",{children:bn?`r${bn.release}`:"nenhum selecionado"})]}),e.jsxs("span",{children:["Teste de fluxo: ",e.jsx("strong",{children:lc?`v${lc.version}`:"nenhum selecionado"})]})]})]}),Mn==="deploy"&&e.jsxs("section",{className:"flow-version-panel flow-version-list-panel",children:[e.jsxs("div",{className:"flow-transfer-section-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Payload padrão"}),e.jsx("span",{children:"Não envie agentRelease nem flowVersion para usar o que está ativo para clientes."})]}),e.jsxs("button",{type:"button",onClick:()=>navigator.clipboard.writeText(Fo),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Fo}),e.jsx("div",{className:"flow-version-subsection",children:e.jsxs("div",{className:"flow-transfer-section-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Payload de teste"}),e.jsx("span",{children:"Envie agentRelease para testar um pacote específico sem alterar o que está ativo para clientes."})]}),e.jsxs("button",{type:"button",onClick:()=>navigator.clipboard.writeText(Vr),children:[e.jsx(nn,{size:15}),"Copiar"]})]})}),e.jsx("pre",{children:Vr})]}),Mn==="flow"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"flow-version-panel flow-version-list-panel",children:[e.jsxs("div",{className:"flow-transfer-section-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Nova versão deste fluxo"}),e.jsxs("span",{children:["Cria v",Ds," com o que está aberto no editor agora."]})]}),e.jsxs("button",{type:"button",className:"primary-button",onClick:am,disabled:Vt||Pr||fn,children:[Vt?e.jsx($t,{size:15,className:"spin"}):e.jsx(Xi,{size:15}),"Criar v",Ds]})]}),e.jsx("textarea",{value:br,rows:3,placeholder:"Notas opcionais desta versão, ex: ajuste do fallback de CPF para homologação.",onChange:d=>wr(d.target.value)})]}),e.jsxs("section",{className:"flow-version-panel flow-version-list-panel",children:[e.jsx("div",{className:"flow-transfer-section-header",children:e.jsxs("div",{children:[e.jsx("strong",{children:"Versões deste fluxo"}),e.jsx("span",{children:Ot.length?`${Ot.length} versão(ões)`:"Nenhuma versão criada ainda."})]})}),e.jsxs("div",{className:"flow-version-list",children:[Ot.map(d=>{const y=Number(d.version)===Number(N),k=Number(d.version)===Number(yo);return e.jsxs("div",{className:`flow-version-card ${k?"active":""}`,children:[e.jsxs("div",{children:[e.jsxs("strong",{children:["v",d.version]}),e.jsx("span",{children:d.name||`Versão ${d.version}`}),e.jsxs("small",{children:["Deploy: ",th(d.deployedAt||d.createdAt)," por ",nh(d.deployedByEmail,d.deployedBy)]}),(d.activatedAt||d.activatedByEmail||d.activatedBy)&&e.jsxs("small",{children:["Ativação: ",th(d.activatedAt)," por ",nh(d.activatedByEmail,d.activatedBy)]}),d.notes&&e.jsx("p",{children:d.notes})]}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",onClick:()=>tu({kind:"flow",version:d.version,isActive:k,currentName:d.name||""}),disabled:Vt||Pr,children:[e.jsx(Pc,{size:15}),"Publicar"]}),e.jsxs("button",{type:"button",onClick:()=>lm(String(d.version)),disabled:Vt,children:[e.jsx(ju,{size:15}),"Abrir e testar"]}),k?e.jsx("span",{className:"status-pill active",children:"Produção"}):e.jsxs("button",{type:"button",onClick:()=>sm(d.version),disabled:Vt,children:[e.jsx(Ji,{size:15}),"Ativar"]}),e.jsxs("button",{type:"button",onClick:()=>pm({kind:"flow",version:d.version,currentName:d.name||""}),disabled:Vt,children:[e.jsx(Ic,{size:15}),"Renomear"]}),e.jsxs("button",{type:"button",onClick:()=>nu(d),disabled:Vt||y||k,title:k?"Esta versão está em produção.":y?"Ative outra versão antes de excluir esta versão.":`Excluir v${d.version}`,children:[e.jsx(St,{size:15}),"Excluir"]})]})]},d.version)}),!Ot.length&&e.jsx("div",{className:"api-warning",children:"Crie uma versão nova para homologação. Quando estiver aprovada, ative pela lista acima."})]})]})]})]})]})]})}),nl&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>jr(!1),children:e.jsxs("div",{className:"flow-transfer-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Importar/Exportar Fluxo"}),e.jsx("span",{children:"Use para mover um fluxo entre ambientes ou criar um rascunho a partir de um JSON."})]}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>jr(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"flow-transfer-body",children:[(oi||Ge)&&e.jsx("div",{className:oi?"api-warning flow-transfer-error":"provider-config-success",children:oi||Ge}),e.jsxs("section",{className:"flow-transfer-section",children:[e.jsxs("div",{className:"flow-transfer-section-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Exportar fluxo atual"}),e.jsxs("span",{children:[r||t.title," ",f?`· ${f}`:"· rascunho sem flowId"]})]}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",onClick:op,children:[e.jsx(nn,{size:15}),"Copiar JSON"]}),e.jsxs("button",{type:"button",className:"primary-button",onClick:ap,children:[e.jsx(jh,{size:15}),"Baixar arquivo"]})]})]}),e.jsx("textarea",{value:Ls,readOnly:!0,rows:18})]}),e.jsxs("section",{className:"flow-transfer-section",children:[e.jsxs("div",{className:"flow-transfer-section-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Importar fluxo"}),e.jsx("span",{children:"O importado entra como rascunho e não sobrescreve o fluxo salvo até clicar em Salvar."})]}),e.jsxs("div",{children:[e.jsx("input",{ref:Qn,type:"file",accept:"application/json,.json",className:"hidden-file-input",onChange:Hr}),e.jsxs("button",{type:"button",onClick:()=>{var d;return(d=Qn.current)==null?void 0:d.click()},children:[e.jsx(Pc,{size:15}),"Escolher arquivo"]})]})]}),e.jsx("textarea",{value:Ms,rows:18,placeholder:"Cole aqui o JSON exportado do Canvas Flow.",onChange:d=>{Ga(d.target.value),ca("")}}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{type:"button",onClick:()=>{Ga(""),ca("")},children:"Limpar"}),e.jsxs("button",{type:"button",className:"primary-button",onClick:()=>lo(Ms),disabled:!Ms.trim(),children:[e.jsx(Pc,{size:15}),"Importar fluxo"]})]})]})]})]})}),Gd&&e.jsx("div",{className:"modal-backdrop",onClick:()=>cl(!1),children:e.jsxs("div",{className:"json-modal wide-modal tag-dashboard-modal agentops-modal",onClick:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header tag-dashboard-modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"AgentOps"}),e.jsx("small",{children:"Operacao, governanca e saude dos fluxos do agente."})]}),e.jsxs("button",{onClick:()=>cl(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"tag-dashboard-body",children:[e.jsxs("section",{className:"tag-dashboard-filter-panel",children:[e.jsxs("div",{className:"tag-dashboard-section-title",children:[e.jsx("strong",{children:"Filtros"}),e.jsx("span",{children:"Combine periodo, fluxo e conversa para investigar execucoes."})]}),e.jsxs("div",{className:"tag-dashboard-filters",children:[e.jsxs("label",{children:["Data inicial",e.jsx("input",{type:"datetime-local",value:Ea.dateFrom,onChange:d=>Mr(y=>({...y,dateFrom:d.target.value}))})]}),e.jsxs("label",{children:["Data final",e.jsx("input",{type:"datetime-local",value:Ea.dateTo,onChange:d=>Mr(y=>({...y,dateTo:d.target.value}))})]}),e.jsxs("label",{className:"tag-dashboard-filter-wide",children:["Fluxo",e.jsxs("select",{value:Ea.flowId,onChange:d=>Mr(y=>({...y,flowId:d.target.value})),children:[e.jsx("option",{value:"",children:"Todos os fluxos"}),U.map(d=>e.jsx("option",{value:d._id,children:d.name},d._id))]})]}),e.jsxs("label",{children:["Conversa",e.jsx("input",{value:Ea.conversationId,placeholder:"conversation-id",onChange:d=>Mr(y=>({...y,conversationId:d.target.value}))})]}),e.jsxs("label",{children:["Historico",e.jsx("input",{type:"number",min:10,max:500,value:Ea.historyLimit,onChange:d=>Mr(y=>({...y,historyLimit:Number(d.target.value)||80}))})]}),e.jsxs("label",{children:["Trace",e.jsx("input",{type:"number",min:50,max:5e3,value:Ea.traceLimit,onChange:d=>Mr(y=>({...y,traceLimit:Number(d.target.value)||600}))})]}),e.jsx("div",{className:"tag-dashboard-filter-actions",children:e.jsxs("button",{className:"primary-button tag-dashboard-filter-button",onClick:()=>void dd(),disabled:ss,children:[ss?e.jsx($t,{size:16,className:"spin"}):e.jsx(Rc,{size:16}),"Atualizar"]})})]})]}),Er&&e.jsx("div",{className:"api-warning",children:Er}),mt&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dashboard-card-grid agentops-card-grid",children:[e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Conversas"}),e.jsx("strong",{children:Nn(cn.conversations)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Mensagens"}),e.jsx("strong",{children:Nn(cn.messages)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Execucoes"}),e.jsx("strong",{children:Nn(cn.runs)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Erro %"}),e.jsx("strong",{children:Nn(Number(cn.errorRate||0)*100,1)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Tokens est."}),e.jsx("strong",{children:Nn(cn.estimatedTokens)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Fila SQS"}),e.jsx("strong",{children:Nn(((Ad=qn.jobs)==null?void 0:Ad.pending)||((Ed=qn.jobs)==null?void 0:Ed.queued)||qn.activeLocks||0)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"MCP tools"}),e.jsx("strong",{children:Nn(Ws.exposedMcpTools)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Aprovações"}),e.jsx("strong",{children:Nn(Ws.approvalGates)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"RAG/Dados"}),e.jsx("strong",{children:Nn(Ws.ragNodes)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Webhooks"}),e.jsx("strong",{children:Nn(Ws.webhookNodes)})]})]}),kn.length>0&&e.jsxs("section",{className:"tag-dashboard-tab-panel agentops-warning-panel",children:[e.jsxs("div",{className:"tag-dashboard-section-title",children:[e.jsx("strong",{children:"Alertas de prontidao"}),e.jsxs("span",{children:[kn.length," ponto(s) pedem revisao antes de publicar."]})]}),e.jsx("ul",{children:kn.map((d,y)=>e.jsx("li",{children:d},`${d}-${y}`))})]}),e.jsxs("div",{className:"tag-dashboard-insight-grid",children:[e.jsx(ku,{title:"Nos mais quentes",subtitle:"Execucoes por node",series:Su(wd,["title","stepId"],"count"),emptyText:"Nenhum node apareceu no trace para estes filtros."}),e.jsx(ku,{title:"Chamadas por tipo",subtitle:"Componentes e operacoes",series:Su(La.calls,["key"],"count"),emptyText:"Nenhuma chamada registrada no trace."})]}),e.jsxs("div",{className:"tag-dashboard-insight-grid",children:[e.jsxs("section",{className:"tag-dashboard-tab-panel",children:[e.jsxs("div",{className:"tag-dashboard-section-title",children:[e.jsx("strong",{children:"Erros recentes"}),e.jsx("span",{children:"Falhas capturadas no trace."})]}),e.jsx("div",{className:"dashboard-table-wrap",children:e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Data"}),e.jsx("th",{children:"Tipo"}),e.jsx("th",{children:"No"}),e.jsx("th",{children:"Mensagem"})]})}),e.jsx("tbody",{children:Vi.length>0?Vi.slice(0,8).map((d,y)=>e.jsxs("tr",{children:[e.jsx("td",{children:d.createdAt?new Date(d.createdAt).toLocaleString("pt-BR"):"-"}),e.jsx("td",{children:d.type||"-"}),e.jsx("td",{children:d.stepId||"-"}),e.jsx("td",{children:d.message||"-"})]},`${d.conversationId||"error"}-${y}`)):e.jsx("tr",{children:e.jsx("td",{colSpan:4,children:"Nenhum erro encontrado."})})})]})})]}),e.jsxs("section",{className:"tag-dashboard-tab-panel",children:[e.jsxs("div",{className:"tag-dashboard-section-title",children:[e.jsx("strong",{children:"Publicacao"}),e.jsx("span",{children:"Releases e fluxos disponiveis para o agente."})]}),e.jsxs("div",{className:"agentops-release-summary",children:[e.jsxs("span",{children:["Release ativa: ",e.jsx("strong",{children:Bi.activeRelease||"-"})]}),e.jsxs("span",{children:["Ultima release: ",e.jsx("strong",{children:Bi.latestRelease||"-"})]}),e.jsxs("button",{type:"button",onClick:()=>{cl(!1),Qa(!0),si("agent"),ql(!0)},children:[e.jsx(Xi,{size:15}),"Abrir publicacao"]})]}),e.jsxs("div",{className:"agentops-flow-list",children:[Nd.slice(0,8).map(d=>e.jsxs("span",{children:[d.name||d.id," v",d.activeVersion||d.latestVersion||"-"]},d.id)),!Nd.length&&e.jsx("span",{children:"Nenhum fluxo salvo para este agente."})]}),kc.length>0&&e.jsx("div",{className:"agentops-flow-list compact",children:kc.slice(0,6).map(d=>e.jsxs("span",{children:["r",d.release,d.active?" ativa":""]},d.release))})]})]})]})]})]})}),Jd&&e.jsx("div",{className:"modal-backdrop",onClick:()=>Yl(!1),children:e.jsxs("div",{className:"json-modal wide-modal simulation-modal",onClick:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Simulação e evals"}),e.jsx("span",{children:"Rode conversas em lote contra rascunho, produção ou versões selecionadas."})]}),e.jsxs("button",{onClick:()=>{Ps(!1),Yl(!1)},children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"simulation-body",children:[e.jsx("section",{className:"tag-dashboard-filter-panel",children:e.jsxs("div",{className:"tag-dashboard-filters",children:[e.jsxs("label",{children:["Modo",e.jsxs("select",{value:Zl,onChange:d=>ct(d.target.value),children:[e.jsx("option",{value:"conversation",children:"Conversa contínua"}),e.jsx("option",{value:"isolated",children:"Casos isolados"})]})]}),e.jsxs("label",{children:["Runtime",e.jsx("input",{value:jt==="draft"?"Rascunho":jt==="active"?"Produção":jt==="agentVersion"?`Agente r${xa||"?"}`:`Fluxo v${Or||"?"}`,readOnly:!0})]}),e.jsx("div",{className:"tag-dashboard-filter-actions",children:e.jsxs("button",{className:"primary-button tag-dashboard-filter-button",onClick:()=>void ys(),disabled:tr||Ra,children:[tr?e.jsx($t,{size:16,className:"spin"}):e.jsx(ju,{size:16}),"Rodar eval"]})})]})}),Ra&&e.jsx("div",{className:"api-warning",children:"Selecione a versão no Try it antes de rodar este modo."}),e.jsxs("div",{className:"simulation-suite-main-tabs",role:"tablist","aria-label":"Suites de simulacao",children:[e.jsx("button",{type:"button",className:Tn==="saved"?"active":"",onClick:()=>ls("saved"),children:"Suites salvas"}),e.jsx("button",{type:"button",className:Tn==="editor"?"active":"",onClick:()=>ls("editor"),children:"Criar suite"})]}),Kd&&e.jsx("div",{className:"api-warning",children:Kd}),bi&&e.jsx("div",{className:"provider-config-success",children:bi}),Tn==="saved"&&e.jsxs("section",{className:"simulation-run-panel",children:[e.jsxs("div",{className:"simulation-run-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Suites para rodar"}),e.jsxs("span",{children:[ea.length," suite(s), ",ir," caso(s) selecionado(s)."]})]}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",onClick:Un,disabled:!_t.length,children:[e.jsx(Ji,{size:15}),"Selecionar todas"]}),e.jsxs("button",{type:"button",onClick:ot,disabled:!fa.length,children:[e.jsx(Ut,{size:15}),"Limpar"]}),e.jsxs("button",{className:"primary-button",type:"button",onClick:()=>void ys(),disabled:tr||Ra||!fa.length,children:[tr?e.jsx($t,{size:15,className:"spin"}):e.jsx(ju,{size:15}),"Rodar selecionadas"]})]})]}),!_t.length&&e.jsx("div",{className:"component-empty",children:"Nenhuma suite salva. Abra a tab Criar suite, monte os casos e salve."}),_t.length>0&&e.jsxs("div",{className:"simulation-run-layout",children:[e.jsx("div",{className:"simulation-run-library",children:_t.map(d=>{const y=fa.includes(d.id);return e.jsxs("article",{className:`simulation-saved-suite ${y?"active":""}`,children:[e.jsxs("div",{className:"simulation-saved-suite-header",children:[e.jsxs("label",{className:"simulation-suite-check",children:[e.jsx("input",{type:"checkbox",checked:y,onChange:()=>tn(d.id)}),e.jsxs("span",{children:[e.jsx("strong",{children:d.name}),e.jsxs("small",{children:[d.cases.length," caso(s)",d.updatedAt?` · ${new Date(d.updatedAt).toLocaleString("pt-BR")}`:""]})]})]}),e.jsxs("button",{type:"button",onClick:()=>wo(d.id),children:[e.jsx(Ic,{size:15}),"Editar"]})]}),d.description&&e.jsx("p",{children:d.description}),e.jsx("div",{className:"simulation-saved-case-list",children:d.cases.map((k,D)=>e.jsx("span",{children:String((k==null?void 0:k.name)||(k==null?void 0:k.title)||(k==null?void 0:k.text)||(k==null?void 0:k.input)||`Caso ${D+1}`).slice(0,90)},`${d.id}-run-${D}`))})]},d.id)})}),e.jsxs("aside",{className:"simulation-run-order",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Ordem da rodada"}),e.jsx("span",{children:"Arraste para mudar a sequencia."})]}),ea.length?ea.map((d,y)=>e.jsxs("div",{className:`simulation-run-order-item ${xi===d.id?"dragging":""}`,draggable:!0,onDragStart:k=>{pl(d.id),k.dataTransfer.effectAllowed="move"},onDragOver:k=>{!xi||xi===d.id||(k.preventDefault(),k.dataTransfer.dropEffect="move")},onDrop:k=>{k.preventDefault(),ln(xi,d.id)},onDragEnd:()=>pl(""),children:[e.jsx(pf,{size:16}),e.jsx("span",{children:y+1}),e.jsx("strong",{children:d.name}),e.jsxs("small",{children:[d.cases.length," caso(s)"]})]},d.id)):e.jsx("div",{className:"component-empty",children:"Selecione suites para montar a ordem."})]})]})]}),Tn==="editor"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"simulation-suite-panel",children:[e.jsxs("div",{className:"tag-dashboard-section-title",children:[e.jsx("strong",{children:"Suite salva"}),e.jsx("span",{children:_t.length?`${_t.length} suite(s) neste fluxo.`:"Nenhuma suite salva neste fluxo ainda."})]}),e.jsxs("div",{className:"simulation-suite-grid",children:[e.jsxs("label",{children:["Carregar",e.jsxs("select",{value:Ir,onChange:d=>{const y=d.target.value;y?wo(y):ud()},children:[e.jsx("option",{value:"",children:"Nova suite"}),_t.map(d=>e.jsx("option",{value:d.id,children:d.name},d.id))]})]}),e.jsxs("label",{children:["Nome",e.jsx("input",{value:yi,placeholder:"Ex: Regressao atendimento WhatsApp",onChange:d=>Yo(d.target.value)})]}),e.jsxs("label",{className:"simulation-suite-description",children:["Descricao",e.jsx("input",{value:Os,placeholder:"Opcional: objetivo da suite",onChange:d=>ga(d.target.value)})]}),e.jsxs("div",{className:"simulation-suite-actions",children:[e.jsxs("button",{type:"button",onClick:ud,disabled:Io,children:[e.jsx(dn,{size:15}),"Nova"]}),e.jsxs("button",{type:"button",className:"primary-button",onClick:()=>void Yd(),disabled:Io,children:[Io?e.jsx($t,{size:15,className:"spin"}):e.jsx(Fl,{size:15}),"Salvar suite"]}),e.jsxs("button",{type:"button",className:"danger-button",onClick:()=>void ba(),disabled:Io||!Ir,children:[e.jsx(St,{size:15}),"Excluir"]})]})]}),_t.length>0&&e.jsx("div",{className:"simulation-saved-list",children:_t.map(d=>e.jsxs("article",{className:`simulation-saved-suite ${Ir===d.id?"active":""}`,children:[e.jsxs("div",{className:"simulation-saved-suite-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:d.name}),e.jsxs("span",{children:[d.cases.length," caso(s)",d.updatedAt?` · atualizado em ${new Date(d.updatedAt).toLocaleString("pt-BR")}`:""]})]}),e.jsxs("button",{type:"button",onClick:()=>wo(d.id),children:[e.jsx(ih,{size:15}),"Carregar"]})]}),d.description&&e.jsx("p",{children:d.description}),e.jsx("div",{className:"simulation-saved-case-list",children:d.cases.map((y,k)=>e.jsx("span",{children:String((y==null?void 0:y.name)||(y==null?void 0:y.title)||(y==null?void 0:y.text)||(y==null?void 0:y.input)||`Caso ${k+1}`).slice(0,90)},`${d.id}-${k}`))})]},d.id))})]}),e.jsxs("div",{className:"simulation-editor-panel",children:[e.jsxs("div",{className:"simulation-editor-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Cenarios"}),e.jsx("span",{children:"Monte casos por campos ou edite o JSON direto."})]}),e.jsxs("div",{className:"simulation-editor-actions",children:[e.jsxs("div",{className:"simulation-editor-tabs",role:"tablist","aria-label":"Editor de cenarios",children:[e.jsx("button",{type:"button",className:ul==="visual"?"active":"",onClick:()=>gi("visual"),children:"Visual"}),e.jsx("button",{type:"button",className:ul==="json"?"active":"",onClick:()=>gi("json"),children:"JSON"})]}),e.jsxs("button",{type:"button",onClick:ke,children:[e.jsx(nn,{size:15}),"Exemplo"]}),e.jsxs("button",{type:"button",className:"primary-button",onClick:_,children:[e.jsx(dn,{size:15}),"Novo caso"]})]})]}),ul==="visual"?e.jsx("div",{className:"simulation-builder",children:Tr.map((d,y)=>e.jsxs("section",{className:"simulation-case-card",children:[e.jsxs("div",{className:"simulation-case-header",children:[e.jsxs("div",{children:[e.jsxs("span",{children:["Caso ",y+1]}),e.jsx("input",{value:d.name,placeholder:"Nome do cenario",onChange:k=>S(d.id,{name:k.target.value})})]}),e.jsxs("div",{children:[e.jsx("button",{type:"button",title:"Duplicar caso",onClick:()=>H(d.id),children:e.jsx(nn,{size:15})}),e.jsx("button",{type:"button",title:"Remover caso",onClick:()=>je(d.id),disabled:Tr.length<=1,children:e.jsx(St,{size:15})})]})]}),e.jsxs("label",{className:"simulation-field simulation-field-wide",children:["Mensagem do usuario",e.jsx("textarea",{rows:3,value:d.text,placeholder:"Ex: Quero remarcar minha consulta",onChange:k=>S(d.id,{text:k.target.value})})]}),e.jsxs("div",{className:"simulation-case-grid",children:[e.jsxs("label",{className:"simulation-field",children:["Texto esperado",e.jsx("textarea",{rows:3,value:d.expectedContainsText,placeholder:"Uma palavra/frase por linha",onChange:k=>S(d.id,{expectedContainsText:k.target.value})})]}),e.jsxs("label",{className:"simulation-field",children:["Slots esperados JSON",e.jsx("textarea",{rows:3,value:d.expectedSlotsText,placeholder:`{
762
+ "triagem.intencao": "agendamento"
763
+ }`,onChange:k=>S(d.id,{expectedSlotsText:k.target.value})})]}),e.jsxs("label",{className:"simulation-field",children:["Estado final",e.jsxs("select",{value:d.expectedEnded,onChange:k=>S(d.id,{expectedEnded:k.target.value}),children:[e.jsx("option",{value:"any",children:"Indiferente"}),e.jsx("option",{value:"false",children:"Deve continuar"}),e.jsx("option",{value:"true",children:"Deve encerrar"})]})]}),e.jsxs("label",{className:"simulation-checkbox-field",children:[e.jsx("input",{type:"checkbox",checked:d.allowErrors,onChange:k=>S(d.id,{allowErrors:k.target.checked})}),"Permitir erros no trace"]}),e.jsxs("label",{className:"simulation-field",children:["Slots iniciais JSON",e.jsx("textarea",{rows:3,value:d.slotsText,placeholder:`{
764
+ "cpf": "12345678909"
765
+ }`,onChange:k=>S(d.id,{slotsText:k.target.value})})]}),e.jsxs("label",{className:"simulation-field",children:["Aprovacoes JSON",e.jsx("textarea",{rows:3,value:d.approvalsText,placeholder:`{
766
+ "aprovacaoReembolso": "approved"
767
+ }`,onChange:k=>S(d.id,{approvalsText:k.target.value})})]})]})]},d.id))}):e.jsxs("div",{className:"simulation-json-editor",children:[e.jsxs("div",{className:"simulation-json-toolbar",children:[e.jsx("span",{children:"Use text, expectedContains, expectedSlots, expectedEnded, slots e approvals."}),e.jsxs("div",{children:[e.jsxs("button",{type:"button",onClick:pt,children:[e.jsx(Fu,{size:15}),"Formatar"]}),e.jsxs("button",{type:"button",onClick:Je,children:[e.jsx(ih,{size:15}),"Aplicar no visual"]})]})]}),e.jsx("textarea",{rows:12,value:hn,onChange:d=>To(d.target.value)})]})]})]}),go&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dashboard-card-grid",children:[e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Total"}),e.jsx("strong",{children:Nn((Bo=go.summary)==null?void 0:Bo.total)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Passou"}),e.jsx("strong",{children:Nn((Ks=go.summary)==null?void 0:Ks.passed)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Falhou"}),e.jsx("strong",{children:Nn((pr=go.summary)==null?void 0:pr.failed)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Taxa"}),e.jsxs("strong",{children:[Nn(Number(((aa=go.summary)==null?void 0:aa.passRate)||0)*100,1),"%"]})]})]}),e.jsxs("div",{className:"dashboard-table-wrap",children:[e.jsxs("div",{className:"simulation-results-title",children:[e.jsx("strong",{children:"Resultados"}),e.jsxs("button",{type:"button",onClick:()=>Ps(!0),children:[e.jsx(_d,{size:15}),"Expandir tudo"]})]}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Entrada"}),e.jsx("th",{children:"Ultima resposta"}),e.jsx("th",{children:"Checks"}),e.jsx("th",{children:"Detalhes"})]})}),e.jsx("tbody",{children:(go.results||[]).map(d=>{var y;return e.jsxs("tr",{children:[e.jsxs("td",{children:[d.index,d.name?` - ${d.name}`:""]}),e.jsx("td",{children:d.passed?"ok":"falhou"}),e.jsx("td",{children:d.text}),e.jsx("td",{children:((y=d.lastMessage)==null?void 0:y.text)||"-"}),e.jsx("td",{children:(d.checks||[]).map(k=>`${k.type}:${k.passed?"ok":"fail"}`).join(", ")||"-"}),e.jsx("td",{children:e.jsxs("button",{type:"button",className:"simulation-result-detail-button",onClick:()=>Gu(d),children:[e.jsx(_d,{size:14}),"Abrir"]})})]},d.index)})})]})]})]})]})]})}),Gc&&go&&e.jsx("div",{className:"modal-backdrop simulation-results-backdrop",onClick:()=>Ps(!1),children:e.jsxs("div",{className:"simulation-results-modal",onClick:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Resultados da simulacao"}),e.jsxs("span",{children:[Nn((ip=go.summary)==null?void 0:ip.total)," caso(s) - ",Nn(Number(((uu=go.summary)==null?void 0:uu.passRate)||0)*100,1),"% passou"]})]}),e.jsxs("div",{className:"debug-modal-actions",children:[e.jsxs("button",{type:"button",onClick:Yp,children:[e.jsx(Fu,{size:16}),"Estado final"]}),e.jsxs("button",{type:"button",onClick:()=>Ps(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]})]}),e.jsx("div",{className:"simulation-results-modal-body",children:e.jsx("div",{className:"dashboard-table-wrap simulation-results-full-table",children:e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"#"}),e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Entrada"}),e.jsx("th",{children:"Ultima resposta"}),e.jsx("th",{children:"Checks"}),e.jsx("th",{children:"Contexto"})]})}),e.jsx("tbody",{children:(go.results||[]).map(d=>{var y;return e.jsxs("tr",{children:[e.jsxs("td",{children:[d.index,d.name?` - ${d.name}`:""]}),e.jsx("td",{children:d.passed?"ok":"falhou"}),e.jsx("td",{children:d.text}),e.jsx("td",{children:((y=d.lastMessage)==null?void 0:y.text)||"-"}),e.jsx("td",{children:(d.checks||[]).map(k=>`${k.type}:${k.passed?"ok":"fail"}`).join(", ")||"-"}),e.jsx("td",{children:e.jsxs("button",{type:"button",className:"simulation-result-detail-button",onClick:()=>Gu(d),children:[e.jsx(_d,{size:14}),"Abrir"]})})]},`expanded-${d.index}`)})})]})})})]})}),Wu&&e.jsx("div",{className:"modal-backdrop",onClick:()=>Mo(!1),children:e.jsxs("div",{className:"json-modal wide-modal tag-dashboard-modal",onClick:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header tag-dashboard-modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Dashboard"}),e.jsx("small",{children:"Métricas por tag e histórico das conversas do fluxo."})]}),e.jsxs("button",{onClick:()=>Mo(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"tag-dashboard-body",children:[e.jsxs("section",{className:"tag-dashboard-filter-panel",children:[e.jsxs("div",{className:"tag-dashboard-section-title",children:[e.jsx("strong",{children:"Filtros"}),e.jsx("span",{children:"Use uma ou várias tags separadas por vírgula."})]}),e.jsxs("div",{className:"tag-dashboard-filters",children:[e.jsxs("label",{children:["Data inicial",e.jsx("input",{type:"datetime-local",value:fo.dateFrom,onChange:d=>mi(y=>({...y,dateFrom:d.target.value}))})]}),e.jsxs("label",{children:["Data final",e.jsx("input",{type:"datetime-local",value:fo.dateTo,onChange:d=>mi(y=>({...y,dateTo:d.target.value}))})]}),e.jsxs("label",{className:"tag-dashboard-filter-wide",children:["Fluxo",e.jsxs("select",{value:fo.flowId,onChange:d=>mi(y=>({...y,flowId:d.target.value})),children:[e.jsx("option",{value:"",children:"Todos os fluxos"}),U.map(d=>e.jsx("option",{value:d._id,children:d.name},d._id))]})]}),e.jsxs("label",{children:["Conversa",e.jsx("input",{value:fo.conversationId,placeholder:"whatsapp-5511999999999",onChange:d=>mi(y=>({...y,conversationId:d.target.value}))})]}),e.jsxs("label",{className:"tag-dashboard-filter-wide",children:["Tags",e.jsx("input",{value:fo.tags,placeholder:"lead_qualificado, conversao, abandono",onChange:d=>mi(y=>({...y,tags:d.target.value}))}),e.jsxs("span",{className:"field-hint",children:["Exemplo: ",e.jsx("code",{children:"lead_qualificado, agendamento_confirmado"})]}),jf(fo.tags).length>0&&e.jsx("div",{className:"tag-filter-chips",children:jf(fo.tags).map(d=>e.jsx("span",{children:d},d))})]}),e.jsxs("label",{children:["Limite de eventos",e.jsx("input",{type:"number",min:1,max:500,value:fo.limit,onChange:d=>mi(y=>({...y,limit:Number(d.target.value)||100}))})]}),e.jsx("div",{className:"tag-dashboard-filter-actions",children:e.jsxs("button",{className:"primary-button tag-dashboard-filter-button",onClick:()=>void Pl(),disabled:Is,children:[Is?e.jsx($t,{size:16,className:"spin"}):e.jsx(Rc,{size:16}),"Filtrar"]})})]})]}),e.jsxs("div",{className:"tag-dashboard-tabs",children:[e.jsx("button",{className:as==="dashboard"?"active":"",onClick:()=>Ql("dashboard"),children:"Dashboard"}),e.jsx("button",{className:as==="insights"?"active":"",onClick:()=>Ql("insights"),children:"Insights"}),e.jsx("button",{className:as==="trace"?"active":"",onClick:()=>Ql("trace"),children:"Dados do trace"}),e.jsx("button",{className:as==="history"?"active":"",onClick:()=>Ql("history"),children:"Histórico de mensagens"})]}),Kl&&e.jsx("div",{className:"api-warning",children:Kl}),Wt&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"dashboard-card-grid",children:[e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Eventos"}),e.jsx("strong",{children:String(((pu=Wt.summary)==null?void 0:pu.total)||0)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Conversas"}),e.jsx("strong",{children:String(((Nm=Wt.summary)==null?void 0:Nm.conversations)||0)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Tags"}),e.jsx("strong",{children:String(((Qs=Wt.summary)==null?void 0:Qs.tags)||0)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Fluxos"}),e.jsx("strong",{children:String(((lp=Wt.summary)==null?void 0:lp.flows)||0)})]})]}),as==="dashboard"&&e.jsxs("div",{className:"tag-dashboard-tab-panel",children:[e.jsxs("div",{className:"tag-dashboard-view-toolbar",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Tags mais usadas"}),e.jsx("span",{children:"Escolha como visualizar a distribuição dos eventos."})]}),e.jsxs("div",{className:"tag-dashboard-view-toggle",role:"group","aria-label":"Formato do dashboard de tags",children:[e.jsxs("button",{className:hi==="table"?"active":"",onClick:()=>Xl("table"),children:[e.jsx(LS,{size:15}),"Tabela"]}),e.jsxs("button",{className:hi==="bar"?"active":"",onClick:()=>Xl("bar"),children:[e.jsx(yh,{size:15}),"Barras"]}),e.jsxs("button",{className:hi==="pie"?"active":"",onClick:()=>Xl("pie"),children:[e.jsx(SS,{size:15}),"Pizza"]}),e.jsxs("button",{className:hi==="line"?"active":"",onClick:()=>Xl("line"),children:[e.jsx(Lx,{size:15}),"Gráfico"]})]})]}),hi==="table"?e.jsxs("div",{className:"dashboard-table-wrap",children:[e.jsx("strong",{children:"Tags mais usadas"}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Tag"}),e.jsx("th",{children:"Eventos"}),e.jsx("th",{children:"Conversas"})]})}),e.jsx("tbody",{children:(Wt.byTag||[]).length>0?(Wt.byTag||[]).map(d=>e.jsxs("tr",{children:[e.jsx("td",{children:d.tag}),e.jsx("td",{children:d.count}),e.jsx("td",{children:d.conversations})]},d.tag)):e.jsx("tr",{children:e.jsx("td",{colSpan:3,children:"Nenhuma tag encontrada para os filtros atuais."})})})]})]}):e.jsx($A,{mode:hi,series:wm}),e.jsxs("div",{className:"dashboard-table-wrap tag-dashboard-events-table",children:[e.jsx("strong",{children:"Eventos recentes"}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Data"}),e.jsx("th",{children:"Tag"}),e.jsx("th",{children:"Nó"}),e.jsx("th",{children:"Fluxo"}),e.jsx("th",{children:"Conversa"}),e.jsx("th",{children:"Valor"})]})}),e.jsx("tbody",{children:(Wt.events||[]).map(d=>e.jsxs("tr",{children:[e.jsx("td",{children:d.createdAt?new Date(d.createdAt).toLocaleString("pt-BR"):""}),e.jsx("td",{children:d.tag}),e.jsx("td",{children:d.stepTitle||d.stepId}),e.jsx("td",{children:d.flowName||d.flowId}),e.jsx("td",{children:d.conversationId}),e.jsx("td",{children:typeof d.value=="object"?JSON.stringify(d.value):String(d.value??"")})]},d._id))})]})]})]}),as==="insights"&&e.jsxs("div",{className:"tag-dashboard-tab-panel",children:[e.jsxs("div",{className:"dashboard-card-grid",children:[e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Mensagens"}),e.jsx("strong",{children:Nn((mu=$i.summary)==null?void 0:mu.totalMessages)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Usuarios"}),e.jsx("strong",{children:Nn((Ui=$i.summary)==null?void 0:Ui.userMessages)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Media por conversa"}),e.jsx("strong",{children:Nn((hu=$i.summary)==null?void 0:hu.avgMessagesPerConversation,1)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Conversas longas"}),e.jsx("strong",{children:Nn((qi=$i.summary)==null?void 0:qi.longConversations)})]})]}),e.jsxs("div",{className:"tag-dashboard-insight-grid",children:[e.jsx(ku,{title:"Acesso por fluxo",subtitle:"Mensagens registradas",series:sp,emptyText:"Nenhum dado de mensagem encontrado para os filtros atuais."}),e.jsx(ku,{title:"Canais",subtitle:"Origem das conversas",series:ur,emptyText:"Nenhum canal encontrado para os filtros atuais."})]}),e.jsxs("div",{className:"dashboard-table-wrap",children:[e.jsx("strong",{children:"Conversas com mais friccao"}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Conversa"}),e.jsx("th",{children:"Mensagens"}),e.jsx("th",{children:"Usuario"}),e.jsx("th",{children:"Assistente"}),e.jsx("th",{children:"Ultima interacao"})]})}),e.jsx("tbody",{children:($i.topConversations||[]).length>0?($i.topConversations||[]).map(d=>e.jsxs("tr",{children:[e.jsx("td",{children:d.conversationId}),e.jsx("td",{children:d.messages}),e.jsx("td",{children:d.userMessages}),e.jsx("td",{children:d.assistantMessages}),e.jsx("td",{children:d.lastAt?new Date(d.lastAt).toLocaleString("pt-BR"):""})]},d.conversationId)):e.jsx("tr",{children:e.jsx("td",{colSpan:5,children:"Nenhuma conversa encontrada para os filtros atuais."})})})]})]})]}),as==="trace"&&e.jsxs("div",{className:"tag-dashboard-tab-panel",children:[e.jsxs("div",{className:"dashboard-card-grid",children:[e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Execucoes"}),e.jsx("strong",{children:Nn((cp=Wr.summary)==null?void 0:cp.runs)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Eventos de trace"}),e.jsx("strong",{children:Nn((dp=Wr.summary)==null?void 0:dp.totalEvents)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Erros"}),e.jsx("strong",{children:Nn((fu=Wr.summary)==null?void 0:fu.errorCount)})]}),e.jsxs("div",{className:"dashboard-card",children:[e.jsx("span",{children:"Nos tocados"}),e.jsx("strong",{children:Nn((Md=Wr.summary)==null?void 0:Md.nodesTouched)})]})]}),e.jsxs("div",{className:"tag-dashboard-insight-grid",children:[e.jsx(ku,{title:"Nos mais acessados",subtitle:"Contagem por step",series:Et,emptyText:"Nenhum dado de no encontrado no trace."}),e.jsx(ku,{title:"Chamadas e componentes",subtitle:"Eventos por tipo",series:co,emptyText:"Nenhuma chamada registrada no trace."})]}),e.jsxs("div",{className:"dashboard-table-wrap",children:[e.jsx("strong",{children:"Erros recentes do trace"}),e.jsxs("table",{children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Data"}),e.jsx("th",{children:"Tipo"}),e.jsx("th",{children:"No"}),e.jsx("th",{children:"Conversa"}),e.jsx("th",{children:"Mensagem"})]})}),e.jsx("tbody",{children:(Wr.errors||[]).length>0?(Wr.errors||[]).map((d,y)=>e.jsxs("tr",{children:[e.jsx("td",{children:d.createdAt?new Date(d.createdAt).toLocaleString("pt-BR"):""}),e.jsx("td",{children:d.type}),e.jsx("td",{children:d.stepId||"-"}),e.jsx("td",{children:d.conversationId||"-"}),e.jsx("td",{children:d.message})]},`${d.conversationId||"trace"}-${y}`)):e.jsx("tr",{children:e.jsx("td",{colSpan:5,children:"Nenhum erro de trace encontrado para os filtros atuais."})})})]})]})]}),as==="history"&&e.jsxs("div",{className:"tag-dashboard-history-panel",children:[e.jsxs("div",{className:"tag-dashboard-pagination",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Histórico de mensagens"}),e.jsx("span",{children:Di>0?`Mostrando ${jm}-${bm} de ${Di}`:"Nenhuma mensagem encontrada"})]}),e.jsxs("div",{className:"tag-dashboard-page-controls",children:[e.jsxs("label",{children:["Por página",e.jsxs("select",{value:rs,onChange:d=>void cd(Number(d.target.value)),disabled:Is,children:[e.jsx("option",{value:20,children:"20"}),e.jsx("option",{value:50,children:"50"}),e.jsx("option",{value:100,children:"100"}),e.jsx("option",{value:200,children:"200"})]})]}),e.jsx("button",{onClick:()=>void Fi(Li-1),disabled:Is||Li<=1,children:"Anterior"}),e.jsxs("span",{children:["Página ",Li," de ",rp]}),e.jsx("button",{onClick:()=>void Fi(Li+1),disabled:Is||Li>=rp||Di===0,children:"Próxima"})]})]}),e.jsx("div",{className:"dashboard-table-wrap tag-dashboard-history-table",children:e.jsxs("table",{children:[e.jsxs("colgroup",{children:[e.jsx("col",{className:"history-date-col"}),e.jsx("col",{className:"history-conversation-col"}),e.jsx("col",{className:"history-role-col"}),e.jsx("col",{className:"history-message-col"})]}),e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Data"}),e.jsx("th",{children:"Conversa"}),e.jsx("th",{children:"Papel"}),e.jsx("th",{children:"Mensagem"})]})}),e.jsx("tbody",{children:(Wt.history||[]).length>0?(Wt.history||[]).map(d=>e.jsxs("tr",{children:[e.jsx("td",{children:d.createdAt?new Date(d.createdAt).toLocaleString("pt-BR"):""}),e.jsx("td",{children:d.conversationId}),e.jsx("td",{children:d.role}),e.jsx("td",{children:d.content})]},d._id)):e.jsx("tr",{children:e.jsx("td",{colSpan:4,children:"Nenhuma mensagem encontrada para os filtros atuais."})})})]})})]})]})]})]})}),oe&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>ae(!1),children:e.jsxs("div",{className:"agents-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Agentes"}),e.jsx("span",{children:"Escolha o agente antes de criar ou editar fluxos."})]}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>ae(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"agents-body",children:[e.jsxs("div",{className:"component-search",children:[e.jsx(Rc,{size:16}),e.jsx("input",{value:M,placeholder:"Filtrar agente",onChange:d=>ee(d.target.value)})]}),e.jsxs("div",{className:"agent-create-row",children:[e.jsx("input",{value:q,placeholder:"Novo agente, ex: clinica-medica",onChange:d=>ie(d.target.value),onKeyDown:d=>{d.key==="Enter"&&gm()}}),e.jsxs("button",{type:"button",className:"primary-button",onClick:()=>void gm(),disabled:te||!q.trim(),children:[e.jsx(dn,{size:16}),"Criar agente"]})]}),ye&&e.jsx("div",{className:"auth-error",children:ye}),e.jsxs("div",{className:"agent-grid",children:[te&&xl.length===0&&e.jsx("div",{className:"component-empty",children:"Carregando agentes..."}),!te&&xl.length===0&&e.jsx("div",{className:"component-empty",children:"Nenhum agente encontrado."}),xl.map(d=>{const y=qo(d),k=Xs(d),D=y===Ee,ne=G===y;return e.jsxs("div",{className:`agent-card ${D?"active":""} ${W===y?"dragging":""} ${Q===y&&W!==y?"drag-over":""}`,role:"button",tabIndex:ne?-1:0,"aria-current":D?"true":void 0,title:D?"Agente atual":`Entrar no agente ${k}`,onDragOver:ue=>{!W||W===y||(ue.preventDefault(),ue.dataTransfer.dropEffect="move",be(y))},onDrop:ue=>{W&&(ue.preventDefault(),ue.stopPropagation(),vd(W,y),xe(""),be(""))},onClick:()=>{!ne&&(!D||It)&&xd(y)},onKeyDown:ue=>{ne||(ue.key==="Enter"||ue.key===" ")&&(ue.preventDefault(),(!D||It)&&xd(y))},children:[e.jsx("div",{className:"agent-card-icon",children:e.jsx(Ho,{size:20})}),e.jsxs("div",{className:"agent-card-main",children:[ne?e.jsx("input",{value:K,autoFocus:!0,onChange:ue=>I(ue.target.value),onKeyDown:ue=>{ue.key==="Enter"&&yd(),ue.key==="Escape"&&($(""),I(""))}}):e.jsx("strong",{children:k}),e.jsxs("small",{children:["ID: ",y]}),e.jsxs("span",{children:[d.flowCount||0," fluxo",Number(d.flowCount||0)===1?"":"s"]})]}),e.jsx("div",{className:"agent-card-actions",children:ne?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",title:"Salvar nome",onClick:ue=>{ue.stopPropagation(),yd()},disabled:te,children:e.jsx(Ji,{size:15})}),e.jsx("button",{type:"button",title:"Cancelar",onClick:ue=>{ue.stopPropagation(),$(""),I("")},children:e.jsx(Ut,{size:15})})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"drag-handle",title:"Arraste para ordenar",draggable:!te&&!fe,onClick:ue=>ue.stopPropagation(),onDragStart:ue=>{ue.stopPropagation(),ue.dataTransfer.effectAllowed="move",ue.dataTransfer.setData("text/plain",y),xe(y),be("")},onDragEnd:()=>{xe(""),be("")},children:e.jsx(pf,{size:15})}),e.jsx("button",{type:"button",title:"Configurar Agent OS",onClick:ue=>{ue.stopPropagation(),fm(d)},children:e.jsx(ks,{size:15})}),e.jsx("button",{type:"button",title:"Editar nome",onClick:ue=>{ue.stopPropagation(),zh(d)},children:e.jsx(Ic,{size:15})}),e.jsx("button",{type:"button",className:"danger-button",title:"Excluir agente",onClick:ue=>{ue.stopPropagation(),Vo(d)},children:e.jsx(St,{size:15})})]})})]},y)})]})]}),e.jsxs("div",{className:"modal-actions agent-order-actions",children:[e.jsx("button",{type:"button",onClick:()=>ae(!1),children:"Fechar"}),e.jsxs("button",{className:"primary-button",type:"button",onClick:()=>void $o(),disabled:fe||us.length===0,children:[fe?e.jsx($t,{size:15,className:"spin"}):e.jsx(Fl,{size:15}),"Salvar ordem"]})]})]})}),Ce&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>Oe(null),children:e.jsxs("div",{className:"agent-delete-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"confirm-body",children:[e.jsx("div",{className:"confirm-icon",children:e.jsx(Um,{size:20})}),e.jsxs("div",{children:[e.jsx("strong",{children:"Excluir agente?"}),e.jsxs("p",{children:["Esta acao remove o agente ",e.jsx("code",{children:Xs(Ce)})," e todos os ",Ce.flowCount||0," fluxo",Number(Ce.flowCount||0)===1?"":"s"," dele. Para confirmar, digite o nome exato do agente."]})]})]}),e.jsxs("label",{className:"agent-delete-confirm",children:["Nome do agente",e.jsx("input",{value:B,autoFocus:!0,placeholder:Xs(Ce),onChange:d=>ce(d.target.value),onKeyDown:d=>{d.key==="Enter"&&xm(),d.key==="Escape"&&Oe(null)}})]}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{type:"button",onClick:()=>{Oe(null),ce("")},children:"Cancelar"}),e.jsxs("button",{type:"button",className:"danger-button",onClick:()=>void xm(),disabled:te||B.trim()!==Xs(Ce),children:[e.jsx(St,{size:16}),"Excluir agente"]})]})]})}),Yr&&e.jsx("div",{className:"modal-backdrop",onClick:()=>ai(!1),children:e.jsxs("div",{className:"api-modal",onClick:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("strong",{children:"Consumir API do fluxo"}),e.jsxs("button",{onClick:()=>ai(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"api-docs",children:[!f&&e.jsxs("div",{className:"api-warning",children:["Salve o fluxo para gerar um ",e.jsx("strong",{children:"flowId"})," real. Enquanto isso o exemplo usa"," ",e.jsx("code",{children:"<FLOW_ID_SALVO>"}),"."]}),e.jsxs("div",{className:"api-endpoint",children:[e.jsx("span",{children:"Endpoint"}),e.jsx("code",{children:Lt.endpoint})]}),e.jsxs("div",{className:"api-warning",children:["Use o ",e.jsx("strong",{children:"agentId estavel"})," no payload:"," ",e.jsx("code",{children:vo}),ds!==vo?e.jsxs(e.Fragment,{children:[" ",e.jsx("span",{children:"Nome exibido: "}),e.jsx("code",{children:ds}),"."]}):null]}),e.jsxs("div",{className:"api-doc-section",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"Autenticação"}),e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(Lt.auth),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Lt.auth})]}),e.jsxs("div",{className:"api-doc-section",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"Payload base"}),e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(Lt.payloadJson),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Lt.payloadJson})]}),e.jsxs("div",{className:"api-doc-section",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"cURL"}),e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(Lt.curl),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Lt.curl})]}),e.jsxs("div",{className:"api-doc-section",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"JavaScript"}),e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(Lt.javascript),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Lt.javascript})]}),e.jsxs("div",{className:"api-doc-section",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"Web widget"}),e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(Lt.widget),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Lt.widget})]}),e.jsxs("div",{className:"api-doc-section",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"WhatsApp adapter"}),e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(Lt.whatsapp),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Lt.whatsapp})]}),e.jsxs("div",{className:"api-doc-section",children:[e.jsxs("div",{className:"api-doc-section-header",children:[e.jsx("strong",{children:"Flow-to-MCP"}),e.jsxs("button",{onClick:()=>navigator.clipboard.writeText(Lt.mcp),children:[e.jsx(nn,{size:15}),"Copiar"]})]}),e.jsx("pre",{children:Lt.mcp})]})]})]})}),Ul&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>Zr(!1),children:e.jsxs("div",{className:"api-keys-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("strong",{children:"API Keys"}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>Zr(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsx(tk,{flowId:f||void 0,flowName:r,agentId:Sn})]})}),Xn&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>mo(!1),children:e.jsxs("div",{className:"flow-order-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Fluxos do agente"}),e.jsx("span",{children:Ee})]}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>mo(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("div",{className:"flow-order-body",children:[e.jsxs("div",{className:"component-search",children:[e.jsx(Rc,{size:16}),e.jsx("input",{value:ui,placeholder:"Filtrar fluxo",onChange:d=>ao(d.target.value)})]}),e.jsxs("div",{className:"flow-create-row",children:[e.jsx("input",{value:Aa,placeholder:"Novo fluxo, ex: boas-vindas",onChange:d=>Uc(d.target.value),onKeyDown:d=>{d.key==="Enter"&&em()}}),e.jsxs("button",{type:"button",className:"primary-button",onClick:()=>void em(),disabled:ns||!Aa.trim(),children:[e.jsx(dn,{size:16}),"Criar fluxo"]})]}),Jl&&e.jsx("div",{className:"auth-error",children:Jl}),e.jsxs("div",{className:"flow-grid",children:[Ma&&Ya.length===0&&e.jsx("div",{className:"component-empty",children:"Carregando fluxos..."}),!Ma&&Ya.length===0&&e.jsx("div",{className:"component-empty",children:"Nenhum fluxo salvo."}),!Ma&&Ya.length>0&&Oa.length===0&&e.jsx("div",{className:"component-empty",children:"Nenhum fluxo encontrado."}),Oa.map(({flow:d,index:y})=>{var ne,ue;const k=d._id===f,D=qu===d._id;return e.jsxs("div",{className:`flow-card ${k?"active":""} ${pi===d._id?"dragging":""} ${Hu===d._id&&pi!==d._id?"drag-over":""}`,role:"button",tabIndex:D?-1:0,"aria-current":k?"true":void 0,title:k?"Fluxo atual":`Abrir fluxo ${d.name}`,onDragOver:me=>{!pi||pi===d._id||(me.preventDefault(),me.dataTransfer.dropEffect="move",il(d._id))},onDrop:me=>{pi&&(me.preventDefault(),me.stopPropagation(),Nc(pi,d._id),qc(""),il(""))},onClick:()=>{D||Zd(d)},onKeyDown:me=>{D||(me.key==="Enter"||me.key===" ")&&(me.preventDefault(),Zd(d))},children:[e.jsx("span",{className:"flow-card-index",children:y+1}),e.jsxs("div",{className:"flow-card-main",children:[D?e.jsx("input",{value:qd,autoFocus:!0,onClick:me=>me.stopPropagation(),onChange:me=>os(me.target.value),onKeyDown:me=>{me.key==="Enter"&&Qu(d),me.key==="Escape"&&(kr(""),os(""))}}):e.jsx("strong",{children:d.name}),e.jsx("span",{children:((ne=d.config)==null?void 0:ne.title)||((ue=d.config)==null?void 0:ue.responseName)||"Fluxo salvo"})]}),e.jsx("div",{className:"flow-card-actions",children:D?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",title:"Salvar nome",onClick:me=>{me.stopPropagation(),Qu(d)},disabled:ns,children:e.jsx(Ji,{size:15})}),e.jsx("button",{type:"button",title:"Cancelar",onClick:me=>{me.stopPropagation(),kr(""),os("")},children:e.jsx(Ut,{size:15})})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"drag-handle",title:"Arraste para ordenar",draggable:!ns,onClick:me=>me.stopPropagation(),onDragStart:me=>{me.stopPropagation(),me.dataTransfer.effectAllowed="move",me.dataTransfer.setData("text/plain",d._id),qc(d._id),il("")},onDragEnd:()=>{qc(""),il("")},children:e.jsx(pf,{size:15})}),e.jsx("button",{type:"button",title:"Editar nome",onClick:me=>{me.stopPropagation(),tm(d)},children:e.jsx(Ic,{size:15})}),e.jsx("button",{type:"button",className:"danger-button",title:"Excluir fluxo",onClick:me=>{me.stopPropagation(),om(d)},children:e.jsx(St,{size:15})})]})})]},d._id)})]})]}),e.jsxs("div",{className:"modal-actions flow-order-actions",children:[e.jsx("button",{onClick:()=>mo(!1),children:"Cancelar"}),e.jsxs("button",{className:"primary-button",onClick:()=>void Ku(),disabled:ns||Ya.length===0,children:[ns?e.jsx($t,{size:15,className:"spin"}):e.jsx(Fl,{size:15}),"Salvar ordem"]})]})]})}),O&&e.jsx(QS,{agentId:Sn,agentName:ds,config:{model:t.model,llmProvider:t.llmProvider||"openai",agentSpec:t.agentSpec},providerOptions:mf,modelOptions:$x(t.llmProvider||"openai",t.model),saving:ge,workspaceBusy:ht,error:kt,message:Te,onChange:d=>{Qe(""),Nl(d)},onSave:()=>void lr(),onExportWorkspace:()=>void kl(),onImportWorkspace:d=>void ed(d),onClose:()=>Ie(!1),onOpenProviders:()=>{Ie(!1),Ja(!0)},onOpenAgentOps:()=>{Ie(!1),bc()}}),da&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>Ja(!1),children:e.jsxs("div",{className:"provider-config-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("strong",{children:"Provedores"}),e.jsxs("button",{"aria-label":"Fechar",onClick:()=>Ja(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsx(rA,{agentId:fn?void 0:Sn,flowId:f||void 0,flowName:r,onClose:()=>Ja(!1)})]})}),ua&&e.jsx("div",{className:"modal-backdrop",onMouseDown:gd,children:e.jsxs("div",{className:"confirm-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"confirm-body",children:[e.jsx("div",{className:"confirm-icon primary",children:e.jsx(Ic,{size:20})}),e.jsxs("div",{children:[e.jsxs("strong",{children:["Renomear ",ua.kind==="agent"?`r${ua.version}`:`v${ua.version}`]}),e.jsx("p",{children:"Use nomes como dev, hml ou prd para identificar melhor cada versão."})]})]}),e.jsxs("label",{className:"confirm-text-input",children:[e.jsx("span",{children:"Nome da versão"}),e.jsx("input",{value:Wl,autoFocus:!0,placeholder:ua.kind==="agent"?"Ex: hml agente":"Ex: hml",onChange:d=>al(d.target.value),onKeyDown:d=>{d.key==="Enter"&&ou(),d.key==="Escape"&&gd()}})]}),Ts&&e.jsx("div",{className:"api-warning flow-transfer-error",children:Ts}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{onClick:gd,children:"Cancelar"}),e.jsxs("button",{className:"primary-button",onClick:()=>void ou(),disabled:Xo||!Wl.trim(),children:[Xo?e.jsx($t,{size:16,className:"spin"}):e.jsx(Fl,{size:16}),"Salvar nome"]})]})]})}),Mt&&e.jsx("div",{className:"modal-backdrop",onMouseDown:fd,children:e.jsxs("div",{className:"confirm-modal version-overwrite-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"confirm-body",children:[e.jsx("div",{className:"confirm-icon",children:e.jsx(Um,{size:20})}),e.jsxs("div",{children:[e.jsxs("strong",{children:["Publicar ",Mt.kind==="agent"?`r${Mt.version}`:`v${Mt.version}`]}),e.jsx("p",{children:Mt.kind==="agent"?"Escolha se esta versão do agente será atualizada com as últimas versões criadas dos fluxos ou por outra versão do agente.":"Escolha se esta versão do fluxo será publicada com o rascunho atual do editor ou substituída por outra versão do fluxo."})]})]}),Mt.isActive&&e.jsx("div",{className:"api-warning flow-transfer-error",children:"Esta versão está ativa. Publicar nela altera o que os clientes recebem."}),e.jsxs("label",{className:"confirm-text-input",children:[e.jsx("span",{children:Mt.kind==="agent"?"Origem da atualização":"Origem da publicação"}),e.jsxs("select",{value:at,onChange:d=>{Bc(d.target.value),Yn(""),li("")},children:[e.jsx("option",{value:"draft",children:Mt.kind==="agent"?"Últimas versões criadas dos fluxos":"Rascunho atual do editor"}),e.jsx("option",{value:"version",children:Mt.kind==="agent"?"Outra versão do agente":"Outra versão do fluxo"})]})]}),at==="version"&&e.jsxs("label",{className:"confirm-text-input",children:[e.jsx("span",{children:"Versão de origem"}),e.jsxs("select",{value:uc,onChange:d=>{Yn(d.target.value),li("")},disabled:!$r.length,children:[!$r.length&&e.jsx("option",{value:"",children:"Nenhuma versão disponível"}),$r.map(d=>{const y=Mt.kind==="agent"?d.release:d.version,k=Mt.kind==="agent"?`r${y}`:`v${y}`;return e.jsxs("option",{value:String(y),children:[k,d.name?` - ${d.name}`:""]},k)})]})]}),Ca&&e.jsx("div",{className:"api-warning flow-transfer-error",children:Ca}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{onClick:fd,children:"Cancelar"}),e.jsxs("button",{className:"danger-button",onClick:()=>void um(),disabled:Vt||Zc,children:[Vt?e.jsx($t,{size:16,className:"spin"}):e.jsx(Pc,{size:16}),"Publicar"]})]})]})}),Xt&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>Gt(null),children:e.jsxs("div",{className:"confirm-modal",onMouseDown:d=>d.stopPropagation(),children:[e.jsxs("div",{className:"confirm-body",children:[e.jsx("div",{className:"confirm-icon",children:e.jsx(Um,{size:20})}),e.jsxs("div",{children:[e.jsx("strong",{children:Xt.title}),e.jsx("p",{children:Xt.message})]})]}),Xt.confirmationText&&e.jsxs("label",{className:"confirm-text-input",children:[e.jsx("span",{children:Xt.confirmationPrompt||`Digite ${Xt.confirmationText} para confirmar.`}),e.jsx("input",{value:Ci,autoFocus:!0,onChange:d=>ml(d.target.value),onKeyDown:d=>{if(d.key==="Enter"&&Ci.trim()===Xt.confirmationText){const y=Xt;Gt(null),y.onConfirm()}}})]}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{onClick:()=>Gt(null),children:"Cancelar"}),e.jsxs("button",{className:Xt.variant==="primary"?"primary-button":"danger-button",disabled:!!(Xt.confirmationText&&Ci.trim()!==Xt.confirmationText),onClick:()=>{const d=Xt;Gt(null),d.onConfirm()},children:[Xt.confirmLabel.toLowerCase().startsWith("ativar")?e.jsx(Ji,{size:16}):Xt.variant==="primary"?e.jsx(Fl,{size:16}):Xt.confirmLabel.toLowerCase().startsWith("excluir")?e.jsx(St,{size:16}):e.jsx(Pc,{size:16}),Xt.confirmLabel]})]})]})})]})})}function vE({children:t}){const[n,r]=b.useState(!0),[s,l]=b.useState(YS),[p,m]=b.useState(!0),[h,f]=b.useState("login"),[x,j]=b.useState(null),[w,N]=b.useState(""),[C,E]=b.useState(""),[T,R]=b.useState(""),[L,U]=b.useState(""),[P,F]=b.useState(""),[Z,oe]=b.useState(""),[ae,te]=b.useState(!1),[X,fe]=b.useState(!1),[ve,ye]=b.useState(!1),[se,M]=b.useState(""),[ee,q]=b.useState(""),[ie,G]=b.useState(""),[$,K]=b.useState("member"),[I,W]=b.useState(""),[xe,Q]=b.useState(""),[be,Ce]=b.useState(!1),[Oe,B]=b.useState(!1),[ce,O]=b.useState(""),[Ie,ge]=b.useState(""),[it,ht]=b.useState(""),[Ze,kt]=b.useState(""),[et,Te]=b.useState(""),[Qe,xt]=b.useState(""),[re,we]=b.useState(!1);b.useEffect(()=>{let Re=!0;return(async()=>{try{const lt=await ze.authConfig();if(!Re)return;if(l(lt.loginRequired),m(lt.hasUsers),f(lt.hasUsers?"login":"createOrg"),!lt.loginRequired){r(!1);return}try{const pn=await ze.me();Re&&j(pn.user)}catch{Km("")}}catch(lt){Re&&oe(lt instanceof TypeError?"Nao foi possivel conectar ao backend.":lt instanceof Error?lt.message:"Falha ao carregar login.")}finally{Re&&r(!1)}})(),()=>{Re=!1}},[]);const Me=async Re=>{Re.preventDefault(),te(!0),oe("");try{const lt=!p||h==="createOrg"?p?await ze.createOrganization({organizationName:w,organizationSlug:C,name:T,email:L,password:P}):await ze.bootstrap({organizationName:w,organizationSlug:C,name:T,email:L,password:P}):await ze.login({email:L,password:P,organizationSlug:C});Km(lt.token),j(lt.user),m(!0),f("login"),F("")}catch(Pe){oe(Pe instanceof TypeError?"Nao foi possivel conectar ao backend.":Pe instanceof Error?Pe.message:"Nao foi possivel entrar.")}finally{te(!1)}},Ye=()=>{Km(""),j(null),fe(!1),ye(!1),B(!1),f("login"),F("")},st=()=>{Ye(),E(""),oe("")},Ue=()=>{fe(!1),O(""),ge(""),ht((x==null?void 0:x.name)||""),kt((x==null?void 0:x.email)||""),Te(""),xt(""),B(!0)},Le=async Re=>{Re.preventDefault(),we(!0),xt("");try{const Pe=await ze.createOrganization({organizationName:ce,organizationSlug:Ie,name:it,email:Ze,password:et});Km(Pe.token),j(Pe.user),m(!0),B(!1),Te("")}catch(Pe){xt(Pe instanceof TypeError?"Nao foi possivel conectar ao backend.":Pe instanceof Error?Pe.message:"Nao foi possivel criar a organizacao.")}finally{we(!1)}},tt=async Re=>{Re.preventDefault(),Ce(!0),Q(""),W("");try{const Pe=await ze.createOrganizationUser({name:se,email:ee,password:ie,role:$});M(""),q(""),G(""),K("member"),W(`Usuario ${Pe.email} criado na organizacao.`)}catch(Pe){Q(Pe instanceof Error?Pe.message:"Nao foi possivel criar o usuario.")}finally{Ce(!1)}};if(n)return e.jsx("div",{className:"auth-shell",children:e.jsx($t,{className:"spin",size:22})});if(!s)return e.jsx(e.Fragment,{children:t});if(x){const Re=x.role==="owner"||x.role==="admin";return e.jsxs(e.Fragment,{children:[t,e.jsxs("div",{className:"auth-session-menu",onBlur:Pe=>{Pe.currentTarget.contains(Pe.relatedTarget)||fe(!1)},children:[e.jsxs("button",{type:"button",className:"auth-session-button",onClick:()=>fe(Pe=>!Pe),children:[e.jsx(Bm,{size:15}),e.jsx("span",{children:x.organizationSlug||x.organizationName})]}),X&&e.jsxs("div",{className:"auth-session-dropdown",children:[e.jsxs("div",{className:"auth-session-user",children:[e.jsx("strong",{children:x.name||x.email}),e.jsx("span",{children:x.email}),e.jsxs("small",{children:[x.organizationName," - ",x.role]})]}),e.jsxs("button",{type:"button",onClick:Ue,children:[e.jsx(Bm,{size:15}),"Nova organizacao"]}),Re&&e.jsxs("button",{type:"button",onClick:()=>{fe(!1),ye(!0)},children:[e.jsx(Dx,{size:15}),"Novo usuario"]}),e.jsxs("button",{type:"button",onClick:st,children:[e.jsx(Bm,{size:15}),"Trocar organizacao"]}),e.jsxs("button",{type:"button",className:"danger-button",onClick:Ye,children:[e.jsx(IS,{size:15}),"Sair"]})]})]}),ve&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>ye(!1),children:e.jsxs("form",{className:"auth-user-modal",onSubmit:tt,onMouseDown:Pe=>Pe.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Novo usuario"}),e.jsx("span",{children:x.organizationName})]}),e.jsxs("button",{type:"button",onClick:()=>ye(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("label",{children:["Nome",e.jsx("input",{value:se,onChange:Pe=>M(Pe.target.value),required:!0})]}),e.jsxs("label",{children:["Email",e.jsx("input",{type:"email",value:ee,onChange:Pe=>q(Pe.target.value),required:!0})]}),e.jsxs("label",{children:["Senha",e.jsx("input",{type:"password",minLength:8,value:ie,onChange:Pe=>G(Pe.target.value),required:!0})]}),e.jsxs("label",{children:["Perfil",e.jsxs("select",{value:$,onChange:Pe=>K(Pe.target.value),children:[e.jsx("option",{value:"member",children:"Membro"}),e.jsx("option",{value:"admin",children:"Admin"})]})]}),xe&&e.jsx("div",{className:"auth-error",children:xe}),I&&e.jsx("div",{className:"auth-success",children:I}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{type:"button",onClick:()=>ye(!1),children:"Cancelar"}),e.jsxs("button",{type:"submit",className:"primary-button",disabled:be,children:[be?e.jsx($t,{size:15,className:"spin"}):e.jsx(Dx,{size:15}),"Criar usuario"]})]})]})}),Oe&&e.jsx("div",{className:"modal-backdrop",onMouseDown:()=>B(!1),children:e.jsxs("form",{className:"auth-user-modal",onSubmit:Le,onMouseDown:Pe=>Pe.stopPropagation(),children:[e.jsxs("div",{className:"modal-header",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Nova organizacao"}),e.jsx("span",{children:"Voce entrara nela como owner."})]}),e.jsxs("button",{type:"button",onClick:()=>B(!1),children:[e.jsx(Ut,{size:16}),"Fechar"]})]}),e.jsxs("label",{children:["Organizacao",e.jsx("input",{value:ce,onChange:Pe=>O(Pe.target.value),required:!0})]}),e.jsxs("label",{children:["Identificador da organizacao",e.jsx("input",{value:Ie,onChange:Pe=>ge(Pe.target.value),placeholder:"minha-empresa"}),e.jsx("span",{className:"auth-hint",children:"Precisa ser unico. Use algo curto, como o nome da empresa."})]}),e.jsxs("label",{children:["Seu nome",e.jsx("input",{value:it,onChange:Pe=>ht(Pe.target.value),required:!0})]}),e.jsxs("label",{children:["Email",e.jsx("input",{type:"email",value:Ze,onChange:Pe=>kt(Pe.target.value),required:!0})]}),e.jsxs("label",{children:["Senha",e.jsx("input",{type:"password",minLength:8,value:et,onChange:Pe=>Te(Pe.target.value),required:!0})]}),Qe&&e.jsx("div",{className:"auth-error",children:Qe}),e.jsxs("div",{className:"modal-actions",children:[e.jsx("button",{type:"button",onClick:()=>B(!1),children:"Cancelar"}),e.jsxs("button",{type:"submit",className:"primary-button",disabled:re,children:[re?e.jsx($t,{size:15,className:"spin"}):e.jsx(Bm,{size:15}),"Criar organizacao"]})]})]})})]})}const ft=!p||h==="createOrg";return e.jsx("div",{className:"auth-shell",children:e.jsxs("form",{className:"auth-card",onSubmit:Me,children:[e.jsxs("div",{className:"auth-card-title",children:[e.jsx(ks,{size:22}),e.jsxs("div",{children:[e.jsx("strong",{children:ft?"Criar organizacao":"Login Canvas Flow"}),e.jsx("span",{children:ft?"Crie uma organizacao e entre como owner.":"Entre com seu usuario da organizacao."})]})]}),ft&&e.jsxs(e.Fragment,{children:[e.jsxs("label",{children:["Organizacao",e.jsx("input",{value:w,onChange:Re=>N(Re.target.value),required:!0})]}),e.jsxs("label",{children:["Identificador da organizacao",e.jsx("input",{value:C,onChange:Re=>E(Re.target.value),placeholder:"minha-empresa"}),e.jsx("span",{className:"auth-hint",children:"Precisa ser unico. Se ficar em branco, sera gerado pelo nome."})]}),e.jsxs("label",{children:["Nome",e.jsx("input",{value:T,onChange:Re=>R(Re.target.value),required:!0})]})]}),!ft&&e.jsxs("label",{children:["Identificador da organizacao",e.jsx("input",{value:C,onChange:Re=>E(Re.target.value),placeholder:"minha-empresa"}),e.jsx("span",{className:"auth-hint",children:"Use o identificador unico da organizacao, nao o nome fantasia. Obrigatorio quando seu email existe em mais de uma organizacao."})]}),e.jsxs("label",{children:["Email",e.jsx("input",{type:"email",value:L,onChange:Re=>U(Re.target.value),required:!0})]}),e.jsxs("label",{children:["Senha",e.jsx("input",{type:"password",minLength:8,value:P,onChange:Re=>F(Re.target.value),required:!0})]}),Z&&e.jsx("div",{className:"auth-error",children:Z}),e.jsxs("button",{type:"submit",className:"primary-button",disabled:ae,children:[ae?e.jsx($t,{size:15,className:"spin"}):e.jsx(TS,{size:15}),ft?"Criar e entrar":"Entrar"]}),p&&e.jsx("button",{type:"button",className:"auth-link-button",onClick:()=>{oe(""),f(ft?"login":"createOrg")},children:ft?"Ja tenho uma organizacao":"Criar nova organizacao"})]})})}pb.createRoot(document.getElementById("root")).render(e.jsx(he.StrictMode,{children:e.jsx(vE,{children:e.jsx(xE,{})})}));