journey-flow-editor 0.0.7 → 0.0.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"FlowEditorInner.d.ts","sourceRoot":"","sources":["../../src/flow/FlowEditorInner.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAIT,cAAc,EAKhB,MAAM,SAAS,CAAC;AAmFjB,uDAAuD;AAEvD,wBAAgB,eAAe,CAAC,EAC7B,eAA0C,GAC5C,EAAE;IACA,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACrC,2CAm9BA"}
1
+ {"version":3,"file":"FlowEditorInner.d.ts","sourceRoot":"","sources":["../../src/flow/FlowEditorInner.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAIT,cAAc,EAKhB,MAAM,SAAS,CAAC;AAqFjB,uDAAuD;AAEvD,wBAAgB,eAAe,CAAC,EAC7B,eAA0C,GAC5C,EAAE;IACA,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;CACrC,2CA09BA"}
package/dist/index.cjs CHANGED
@@ -156,4 +156,4 @@ To suppress this warning, you need to explicitly provide the \`palette.${t}Chann
156
156
  `))}return null}),anchorOrigin:a.shape({horizontal:a.oneOfType([a.oneOf(["center","left","right"]),a.number]).isRequired,vertical:a.oneOfType([a.oneOf(["bottom","center","top"]),a.number]).isRequired}),anchorPosition:a.shape({left:a.number.isRequired,top:a.number.isRequired}),anchorReference:a.oneOf(["anchorEl","anchorPosition","none"]),BackdropComponent:a.elementType,BackdropProps:a.object,children:a.node,classes:a.object,className:a.string,container:a.oneOfType([to,a.func]),disableScrollLock:a.bool,elevation:bl,marginThreshold:a.number,onClose:a.func,open:a.bool.isRequired,PaperProps:a.shape({component:gl}),slotProps:a.shape({backdrop:a.oneOfType([a.func,a.object]),paper:a.oneOfType([a.func,a.object]),root:a.oneOfType([a.func,a.object]),transition:a.oneOfType([a.func,a.object])}),slots:a.shape({backdrop:a.elementType,paper:a.elementType,root:a.elementType,transition:a.elementType}),sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),transformOrigin:a.shape({horizontal:a.oneOfType([a.oneOf(["center","left","right"]),a.number]).isRequired,vertical:a.oneOfType([a.oneOf(["bottom","center","top"]),a.number]).isRequired}),TransitionComponent:a.elementType,transitionDuration:a.oneOfType([a.oneOf(["auto"]),a.number,a.shape({appear:a.number,enter:a.number,exit:a.number})]),TransitionProps:a.object});function fO(e){return Te("MuiMenu",e)}_e("MuiMenu",["root","paper","list"]);const pO={vertical:"top",horizontal:"right"},hO={vertical:"top",horizontal:"left"},mO=e=>{const{classes:t}=e;return ke({root:["root"],paper:["paper"],list:["list"]},fO,t)},gO=ce(Dh,{shouldForwardProp:e=>pt(e)||e==="classes",name:"MuiMenu",slot:"Root"})({}),yO=ce(Ah,{name:"MuiMenu",slot:"Paper"})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),bO=ce($h,{name:"MuiMenu",slot:"List"})({outline:0}),El=A.forwardRef(function(t,n){const o=$e({props:t,name:"MuiMenu"}),{autoFocus:r=!0,children:i,className:s,disableAutoFocusItem:l=!1,MenuListProps:c={},onClose:u,open:d,PaperProps:f={},PopoverClasses:p,transitionDuration:m="auto",TransitionProps:{onEntering:g,...h}={},variant:v="selectedMenu",slots:b={},slotProps:C={},...y}=o,x=Yp(),w={...o,autoFocus:r,disableAutoFocusItem:l,MenuListProps:c,onEntering:g,PaperProps:f,transitionDuration:m,TransitionProps:h,variant:v},E=mO(w),O=r&&!l&&d,_=A.useRef(null),I=(D,$)=>{_.current&&_.current.adjustStyleForScrollbar(D,{direction:x?"rtl":"ltr"}),g&&g(D,$)},V=D=>{D.key==="Tab"&&(D.preventDefault(),u&&u(D,"tabKeyDown"))};let k=-1;A.Children.map(i,(D,$)=>{A.isValidElement(D)&&(process.env.NODE_ENV!=="production"&&Cn.isFragment(D)&&console.error(["MUI: The Menu component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(`
157
157
  `)),D.props.disabled||(v==="selectedMenu"&&D.props.selected||k===-1)&&(k=$))});const S={slots:b,slotProps:{list:c,transition:h,paper:f,...C}},j=kT({elementType:b.root,externalSlotProps:C.root,ownerState:w,className:[E.root,s]}),[N,R]=ze("paper",{className:E.paper,elementType:yO,externalForwardedProps:S,shouldForwardComponentProp:!0,ownerState:w}),[P,L]=ze("list",{className:pe(E.list,c.className),elementType:bO,shouldForwardComponentProp:!0,externalForwardedProps:S,getSlotProps:D=>({...D,onKeyDown:$=>{V($),D.onKeyDown?.($)}}),ownerState:w}),M=typeof S.slotProps.transition=="function"?S.slotProps.transition(w):S.slotProps.transition;return T.jsx(gO,{onClose:u,anchorOrigin:{vertical:"bottom",horizontal:x?"right":"left"},transformOrigin:x?pO:hO,slots:{root:b.root,paper:N,backdrop:b.backdrop,...b.transition&&{transition:b.transition}},slotProps:{root:j,paper:R,backdrop:typeof C.backdrop=="function"?C.backdrop(w):C.backdrop,transition:{...M,onEntering:(...D)=>{I(...D),M?.onEntering?.(...D)}}},open:d,ref:n,transitionDuration:m,ownerState:w,...y,classes:p,children:T.jsx(P,{actions:_,autoFocus:r&&(k===-1||l),autoFocusItem:O,variant:v,...L,children:i})})});process.env.NODE_ENV!=="production"&&(El.propTypes={anchorEl:a.oneOfType([to,a.func]),autoFocus:a.bool,children:a.node,classes:a.object,className:a.string,disableAutoFocusItem:a.bool,MenuListProps:a.object,onClose:a.func,open:a.bool.isRequired,PaperProps:a.object,PopoverClasses:a.object,slotProps:a.shape({backdrop:a.oneOfType([a.func,a.object]),list:a.oneOfType([a.func,a.object]),paper:a.oneOfType([a.func,a.object]),root:a.oneOfType([a.func,a.object]),transition:a.oneOfType([a.func,a.object])}),slots:a.shape({backdrop:a.elementType,list:a.elementType,paper:a.elementType,root:a.elementType,transition:a.elementType}),sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),transitionDuration:a.oneOfType([a.oneOf(["auto"]),a.number,a.shape({appear:a.number,enter:a.number,exit:a.number})]),TransitionProps:a.object,variant:a.oneOf(["menu","selectedMenu"])});function vO(e){return Te("MuiMenuItem",e)}const wo=_e("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),xO=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},wO=e=>{const{disabled:t,dense:n,divider:o,disableGutters:r,selected:i,classes:s}=e,c=ke({root:["root",n&&"dense",t&&"disabled",!r&&"gutters",o&&"divider",i&&"selected"]},vO,s);return{...s,...c}},SO=ce(xl,{shouldForwardProp:e=>pt(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:xO})(je(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${wo.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${wo.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${wo.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${wo.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${wo.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${nd.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${nd.inset}`]:{marginLeft:52},[`& .${Bn.root}`]:{marginTop:0,marginBottom:0},[`& .${Bn.inset}`]:{paddingLeft:36},[`& .${id.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${id.root} svg`]:{fontSize:"1.25rem"}}}]}))),xt=A.forwardRef(function(t,n){const o=$e({props:t,name:"MuiMenuItem"}),{autoFocus:r=!1,component:i="li",dense:s=!1,divider:l=!1,disableGutters:c=!1,focusVisibleClassName:u,role:d="menuitem",tabIndex:f,className:p,...m}=o,g=A.useContext(oo),h=A.useMemo(()=>({dense:s||g.dense||!1,disableGutters:c}),[g.dense,s,c]),v=A.useRef(null);on(()=>{r&&(v.current?v.current.focus():process.env.NODE_ENV!=="production"&&console.error("MUI: Unable to set focus to a MenuItem whose component has not been rendered."))},[r]);const b={...o,dense:h.dense,divider:l,disableGutters:c},C=wO(o),y=nt(v,n);let x;return o.disabled||(x=f!==void 0?f:-1),T.jsx(oo.Provider,{value:h,children:T.jsx(SO,{ref:y,role:d,tabIndex:x,component:i,focusVisibleClassName:pe(C.focusVisible,u),className:pe(C.root,p),...m,ownerState:b,classes:C})})});process.env.NODE_ENV!=="production"&&(xt.propTypes={autoFocus:a.bool,children:a.node,classes:a.object,className:a.string,component:a.elementType,dense:a.bool,disabled:a.bool,disableGutters:a.bool,divider:a.bool,focusVisibleClassName:a.string,role:a.string,selected:a.bool,sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),tabIndex:a.number});function EO(e){return Te("MuiNativeSelect",e)}const Cl=_e("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),CO=e=>{const{classes:t,variant:n,disabled:o,multiple:r,open:i,error:s}=e,l={select:["select",n,o&&"disabled",r&&"multiple",s&&"error"],icon:["icon",`icon${he(n)}`,i&&"iconOpen",o&&"disabled"]};return ke(l,EO,t)},jh=ce("select",{name:"MuiNativeSelect"})(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${Cl.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:t})=>t.variant!=="filled"&&t.variant!=="outlined",style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),TO=ce(jh,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:pt,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${Cl.multiple}`]:t.multiple}]}})({}),Lh=ce("svg",{name:"MuiNativeSelect"})(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${Cl.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:t})=>t.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),NO=ce(Lh,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${he(n.variant)}`],n.open&&t.iconOpen]}})({}),Fh=A.forwardRef(function(t,n){const{className:o,disabled:r,error:i,IconComponent:s,inputRef:l,variant:c="standard",...u}=t,d={...t,disabled:r,variant:c,error:i},f=CO(d);return T.jsxs(A.Fragment,{children:[T.jsx(TO,{ownerState:d,className:pe(f.select,o),disabled:r,ref:l||n,...u}),t.multiple?null:T.jsx(NO,{as:s,ownerState:d,className:f.icon})]})});process.env.NODE_ENV!=="production"&&(Fh.propTypes={children:a.node,classes:a.object,className:a.string,disabled:a.bool,error:a.bool,IconComponent:a.elementType.isRequired,inputRef:Gt,multiple:a.bool,name:a.string,onChange:a.func,value:a.any,variant:a.oneOf(["standard","outlined","filled"])});var ud;const OO=ce("fieldset",{name:"MuiNotchedOutlined",shouldForwardProp:pt})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),PO=ce("legend",{name:"MuiNotchedOutlined",shouldForwardProp:pt})(je(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:t})=>!t.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:t})=>t.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:t})=>t.withLabel&&t.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function Bh(e){const{children:t,classes:n,className:o,label:r,notched:i,...s}=e,l=r!=null&&r!=="",c={...e,notched:i,withLabel:l};return T.jsx(OO,{"aria-hidden":!0,className:o,ownerState:c,...s,children:T.jsx(PO,{ownerState:c,children:l?T.jsx("span",{children:r}):ud||(ud=T.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"}))})})}process.env.NODE_ENV!=="production"&&(Bh.propTypes={children:a.node,classes:a.object,className:a.string,label:a.node,notched:a.bool.isRequired,style:a.object});const RO=e=>{const{classes:t}=e,o=ke({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},VT,t);return{...t,...o}},_O=ce(as,{shouldForwardProp:e=>pt(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:is})(je(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${kt.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${kt.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${kt.focused} .${kt.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(Pn()).map(([n])=>({props:{color:n},style:{[`&.${kt.focused} .${kt.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${kt.error} .${kt.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${kt.disabled} .${kt.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:n})=>n.startAdornment,style:{paddingLeft:14}},{props:({ownerState:n})=>n.endAdornment,style:{paddingRight:14}},{props:({ownerState:n})=>n.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:n,size:o})=>n.multiline&&o==="small",style:{padding:"8.5px 14px"}}]}})),kO=ce(Bh,{name:"MuiOutlinedInput",slot:"NotchedOutline"})(je(({theme:e})=>{const t=e.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}})),IO=ce(ls,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:ss})(je(({theme:e})=>({padding:"16.5px 14px",...!e.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:e.palette.mode==="light"?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:e.palette.mode==="light"?null:"#fff",caretColor:e.palette.mode==="light"?null:"#fff",borderRadius:"inherit"}},...e.vars&&{"&:-webkit-autofill":{borderRadius:"inherit"},[e.getColorSchemeSelector("dark")]:{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:t})=>t.multiline,style:{padding:0}},{props:({ownerState:t})=>t.startAdornment,style:{paddingLeft:0}},{props:({ownerState:t})=>t.endAdornment,style:{paddingRight:0}}]}))),fs=A.forwardRef(function(t,n){const o=$e({props:t,name:"MuiOutlinedInput"}),{components:r={},fullWidth:i=!1,inputComponent:s="input",label:l,multiline:c=!1,notched:u,slots:d={},slotProps:f={},type:p="text",...m}=o,g=RO(o),h=co(),v=lo({props:o,muiFormControl:h,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),b={...o,color:v.color||"primary",disabled:v.disabled,error:v.error,focused:v.focused,formControl:h,fullWidth:i,hiddenLabel:v.hiddenLabel,multiline:c,size:v.size,type:p},C=d.root??r.Root??_O,y=d.input??r.Input??IO,[x,w]=ze("notchedOutline",{elementType:kO,className:g.notchedOutline,shouldForwardComponentProp:!0,ownerState:b,externalForwardedProps:{slots:d,slotProps:f},additionalProps:{label:l!=null&&l!==""&&v.required?T.jsxs(A.Fragment,{children:[l," ","*"]}):l}});return T.jsx(cs,{slots:{root:C,input:y},slotProps:f,renderSuffix:E=>T.jsx(x,{...w,notched:typeof u<"u"?u:!!(E.startAdornment||E.filled||E.focused)}),fullWidth:i,inputComponent:s,multiline:c,ref:n,type:p,...m,classes:{...g,notchedOutline:null}})});process.env.NODE_ENV!=="production"&&(fs.propTypes={autoComplete:a.string,autoFocus:a.bool,classes:a.object,color:a.oneOfType([a.oneOf(["primary","secondary"]),a.string]),components:a.shape({Input:a.elementType,Root:a.elementType}),defaultValue:a.any,disabled:a.bool,endAdornment:a.node,error:a.bool,fullWidth:a.bool,id:a.string,inputComponent:a.elementType,inputProps:a.object,inputRef:Gt,label:a.node,margin:a.oneOf(["dense","none"]),maxRows:a.oneOfType([a.number,a.string]),minRows:a.oneOfType([a.number,a.string]),multiline:a.bool,name:a.string,notched:a.bool,onChange:a.func,placeholder:a.string,readOnly:a.bool,required:a.bool,rows:a.oneOfType([a.number,a.string]),slotProps:a.shape({input:a.object,notchedOutline:a.oneOfType([a.func,a.object]),root:a.object}),slots:a.shape({input:a.elementType,notchedOutline:a.elementType,root:a.elementType}),startAdornment:a.node,sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),type:a.string,value:a.any});fs.muiName="Input";function zh(e){return Te("MuiSelect",e)}const So=_e("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var dd;const MO=ce(jh,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${So.select}`]:t.select},{[`&.${So.select}`]:t[n.variant]},{[`&.${So.error}`]:t.error},{[`&.${So.multiple}`]:t.multiple}]}})({[`&.${So.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),$O=ce(Lh,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${he(n.variant)}`],n.open&&t.iconOpen]}})({}),AO=ce("input",{shouldForwardProp:e=>eh(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput"})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function fd(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function DO(e){return e==null||typeof e=="string"&&!e.trim()}const jO=e=>{const{classes:t,variant:n,disabled:o,multiple:r,open:i,error:s}=e,l={select:["select",n,o&&"disabled",r&&"multiple",s&&"error"],icon:["icon",`icon${he(n)}`,i&&"iconOpen",o&&"disabled"],nativeInput:["nativeInput"]};return ke(l,zh,t)},Vh=A.forwardRef(function(t,n){const{"aria-describedby":o,"aria-label":r,autoFocus:i,autoWidth:s,children:l,className:c,defaultOpen:u,defaultValue:d,disabled:f,displayEmpty:p,error:m=!1,IconComponent:g,inputRef:h,labelId:v,MenuProps:b={},multiple:C,name:y,onBlur:x,onChange:w,onClose:E,onFocus:O,onKeyDown:_,onMouseDown:I,onOpen:V,open:k,readOnly:S,renderValue:j,required:N,SelectDisplayProps:R={},tabIndex:P,type:L,value:M,variant:D="standard",...$}=t,[z,U]=zu({controlled:M,default:d,name:"Select"}),[G,q]=zu({controlled:k,default:u,name:"Select"}),ee=A.useRef(null),te=A.useRef(null),[J,K]=A.useState(null),{current:Q}=A.useRef(k!=null),[Z,ne]=A.useState(),B=nt(n,h),W=A.useCallback(de=>{te.current=de,de&&K(de)},[]),H=J?.parentNode;A.useImperativeHandle(B,()=>({focus:()=>{te.current.focus()},node:ee.current,value:z}),[z]);const Y=J!==null&&G;A.useEffect(()=>{if(!Y||!H||s||typeof ResizeObserver>"u")return;const de=new ResizeObserver(()=>{ne(H.clientWidth)});return de.observe(H),()=>{de.disconnect()}},[Y,H,s]),A.useEffect(()=>{u&&G&&J&&!Q&&(ne(s?null:H.clientWidth),te.current.focus())},[J,s]),A.useEffect(()=>{i&&te.current.focus()},[i]),A.useEffect(()=>{if(!v)return;const de=Nt(te.current).getElementById(v);if(de){const xe=()=>{getSelection().isCollapsed&&te.current.focus()};return de.addEventListener("click",xe),()=>{de.removeEventListener("click",xe)}}},[v]);const oe=(de,xe)=>{de?V&&V(xe):E&&E(xe),Q||(ne(s?null:H.clientWidth),q(de))},se=de=>{I?.(de),de.button===0&&(de.preventDefault(),te.current.focus(),oe(!0,de))},ie=de=>{oe(!1,de)},ae=A.Children.toArray(l),fe=de=>{const xe=ae.find(Ge=>Ge.props.value===de.target.value);xe!==void 0&&(U(xe.props.value),w&&w(de,xe))},ue=de=>xe=>{let Ge;if(xe.currentTarget.hasAttribute("tabindex")){if(C){Ge=Array.isArray(z)?z.slice():[];const Kt=z.indexOf(de.props.value);Kt===-1?Ge.push(de.props.value):Ge.splice(Kt,1)}else Ge=de.props.value;if(de.props.onClick&&de.props.onClick(xe),z!==Ge&&(U(Ge),w)){const Kt=xe.nativeEvent||xe,Sr=new Kt.constructor(Kt.type,Kt);Object.defineProperty(Sr,"target",{writable:!0,value:{value:Ge,name:y}}),w(Sr,de)}C||oe(!1,xe)}},re=de=>{S||([" ","ArrowUp","ArrowDown","Enter"].includes(de.key)&&(de.preventDefault(),oe(!0,de)),_?.(de))},ge=de=>{!Y&&x&&(Object.defineProperty(de,"target",{writable:!0,value:{value:z,name:y}}),x(de))};delete $["aria-invalid"];let we,Xe;const ve=[];let be=!1,me=!1;(wi({value:z})||p)&&(j?we=j(z):be=!0);const Ue=ae.map(de=>{if(!A.isValidElement(de))return null;process.env.NODE_ENV!=="production"&&Cn.isFragment(de)&&console.error(["MUI: The Select component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(`
158
158
  `));let xe;if(C){if(!Array.isArray(z))throw new Error(process.env.NODE_ENV!=="production"?"MUI: The `value` prop must be an array when using the `Select` component with `multiple`.":Yt(2));xe=z.some(Ge=>fd(Ge,de.props.value)),xe&&be&&ve.push(de.props.children)}else xe=fd(z,de.props.value),xe&&be&&(Xe=de.props.children);return xe&&(me=!0),A.cloneElement(de,{"aria-selected":xe?"true":"false",onClick:ue(de),onKeyUp:Ge=>{Ge.key===" "&&Ge.preventDefault(),de.props.onKeyUp&&de.props.onKeyUp(Ge)},role:"option",selected:xe,value:void 0,"data-value":de.props.value})});process.env.NODE_ENV!=="production"&&A.useEffect(()=>{if(!me&&!C&&z!==""){const de=ae.map(xe=>xe.props.value);console.warn([`MUI: You have provided an out-of-range value \`${z}\` for the select ${y?`(name="${y}") `:""}component.`,"Consider providing a value that matches one of the available options or ''.",`The available values are ${de.filter(xe=>xe!=null).map(xe=>`\`${xe}\``).join(", ")||'""'}.`].join(`
159
- `))}},[me,ae,C,y,z]),be&&(C?ve.length===0?we=null:we=ve.reduce((de,xe,Ge)=>(de.push(xe),Ge<ve.length-1&&de.push(", "),de),[]):we=Xe);let ot=Z;!s&&Q&&J&&(ot=H.clientWidth);let Se;typeof P<"u"?Se=P:Se=f?null:0;const Je=R.id||(y?`mui-component-select-${y}`:void 0),rt={...t,variant:D,value:z,open:Y,error:m},Bt=jO(rt),ho={...b.PaperProps,...typeof b.slotProps?.paper=="function"?b.slotProps.paper(rt):b.slotProps?.paper},ms={...b.MenuListProps,...typeof b.slotProps?.list=="function"?b.slotProps.list(rt):b.slotProps?.list},wr=cl();return T.jsxs(A.Fragment,{children:[T.jsx(MO,{as:"div",ref:W,tabIndex:Se,role:"combobox","aria-controls":Y?wr:void 0,"aria-disabled":f?"true":void 0,"aria-expanded":Y?"true":"false","aria-haspopup":"listbox","aria-label":r,"aria-labelledby":[v,Je].filter(Boolean).join(" ")||void 0,"aria-describedby":o,"aria-required":N?"true":void 0,"aria-invalid":m?"true":void 0,onKeyDown:re,onMouseDown:f||S?null:se,onBlur:ge,onFocus:O,...R,ownerState:rt,className:pe(R.className,Bt.select,c),id:Je,children:DO(we)?dd||(dd=T.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):we}),T.jsx(AO,{"aria-invalid":m,value:Array.isArray(z)?z.join(","):z,name:y,ref:ee,"aria-hidden":!0,onChange:fe,tabIndex:-1,disabled:f,className:Bt.nativeInput,autoFocus:i,required:N,...$,ownerState:rt}),T.jsx($O,{as:g,className:Bt.icon,ownerState:rt}),T.jsx(El,{id:`menu-${y||""}`,anchorEl:H,open:Y,onClose:ie,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},...b,slotProps:{...b.slotProps,list:{"aria-labelledby":v,role:"listbox","aria-multiselectable":C?"true":void 0,disableListWrap:!0,id:wr,...ms},paper:{...ho,style:{minWidth:ot,...ho!=null?ho.style:null}}},children:Ue})]})});process.env.NODE_ENV!=="production"&&(Vh.propTypes={"aria-describedby":a.string,"aria-label":a.string,autoFocus:a.bool,autoWidth:a.bool,children:a.node,classes:a.object,className:a.string,defaultOpen:a.bool,defaultValue:a.any,disabled:a.bool,displayEmpty:a.bool,error:a.bool,IconComponent:a.elementType.isRequired,inputRef:Gt,labelId:a.string,MenuProps:a.object,multiple:a.bool,name:a.string,onBlur:a.func,onChange:a.func,onClose:a.func,onFocus:a.func,onOpen:a.func,open:a.bool,readOnly:a.bool,renderValue:a.func,required:a.bool,SelectDisplayProps:a.object,tabIndex:a.oneOfType([a.number,a.string]),type:a.any,value:a.any,variant:a.oneOf(["standard","outlined","filled"])});const LO=e=>{const{classes:t}=e,o=ke({root:["root"]},zh,t);return{...t,...o}},Tl={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>pt(e)&&e!=="variant"},FO=ce(ds,Tl)(""),BO=ce(fs,Tl)(""),zO=ce(us,Tl)(""),or=A.forwardRef(function(t,n){const o=$e({name:"MuiSelect",props:t}),{autoWidth:r=!1,children:i,classes:s={},className:l,defaultOpen:c=!1,displayEmpty:u=!1,IconComponent:d=WT,id:f,input:p,inputProps:m,label:g,labelId:h,MenuProps:v,multiple:b=!1,native:C=!1,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:O,variant:_="outlined",...I}=o,V=C?Fh:Vh,k=co(),S=lo({props:o,muiFormControl:k,states:["variant","error"]}),j=S.variant||_,N={...o,variant:j,classes:s},R=LO(N),{root:P,...L}=R,M=p||{standard:T.jsx(FO,{ownerState:N}),outlined:T.jsx(BO,{label:g,ownerState:N}),filled:T.jsx(zO,{ownerState:N})}[j],D=nt(n,ao(M));return T.jsx(A.Fragment,{children:A.cloneElement(M,{inputComponent:V,inputProps:{children:i,error:S.error,IconComponent:d,variant:j,type:void 0,multiple:b,...C?{id:f}:{autoWidth:r,defaultOpen:c,displayEmpty:u,labelId:h,MenuProps:v,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:{id:f,...O}},...m,classes:m?Ke(L,m.classes):L,...p?p.props.inputProps:{}},...(b&&C||u)&&j==="outlined"?{notched:!0}:{},ref:D,className:pe(M.props.className,l,R.root),...!p&&{variant:j},...I})})});process.env.NODE_ENV!=="production"&&(or.propTypes={autoWidth:a.bool,children:a.node,classes:a.object,className:a.string,defaultOpen:a.bool,defaultValue:a.any,displayEmpty:a.bool,IconComponent:a.elementType,id:a.string,input:a.element,inputProps:a.object,label:a.node,labelId:a.string,MenuProps:a.object,multiple:a.bool,native:a.bool,onChange:a.func,onClose:a.func,onOpen:a.func,open:a.bool,renderValue:a.func,SelectDisplayProps:a.object,sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),value:a.oneOfType([a.oneOf([""]),a.any]),variant:a.oneOf(["filled","outlined","standard"])});or.muiName="Select";const gt=nC({createStyledComponent:ce("div",{name:"MuiStack",slot:"Root"}),useThemeProps:e=>$e({props:e,name:"MuiStack"})});process.env.NODE_ENV!=="production"&&(gt.propTypes={children:a.node,component:a.elementType,direction:a.oneOfType([a.oneOf(["column-reverse","column","row-reverse","row"]),a.arrayOf(a.oneOf(["column-reverse","column","row-reverse","row"])),a.object]),divider:a.node,spacing:a.oneOfType([a.arrayOf(a.oneOfType([a.number,a.string])),a.number,a.object,a.string]),sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),useFlexGap:a.bool});function VO(e){return Te("MuiTextField",e)}_e("MuiTextField",["root"]);const HO={standard:ds,filled:us,outlined:fs},WO=e=>{const{classes:t}=e;return ke({root:["root"]},VO,t)},UO=ce(Ei,{name:"MuiTextField",slot:"Root"})({}),Dt=A.forwardRef(function(t,n){const o=$e({props:t,name:"MuiTextField"}),{autoComplete:r,autoFocus:i=!1,children:s,className:l,color:c="primary",defaultValue:u,disabled:d=!1,error:f=!1,FormHelperTextProps:p,fullWidth:m=!1,helperText:g,id:h,InputLabelProps:v,inputProps:b,InputProps:C,inputRef:y,label:x,maxRows:w,minRows:E,multiline:O=!1,name:_,onBlur:I,onChange:V,onFocus:k,placeholder:S,required:j=!1,rows:N,select:R=!1,SelectProps:P,slots:L={},slotProps:M={},type:D,value:$,variant:z="outlined",...U}=o,G={...o,autoFocus:i,color:c,disabled:d,error:f,fullWidth:m,multiline:O,required:j,select:R,variant:z},q=WO(G);process.env.NODE_ENV!=="production"&&R&&!s&&console.error("MUI: `children` must be passed when using the `TextField` component with `select`.");const ee=cl(h),te=g&&ee?`${ee}-helper-text`:void 0,J=x&&ee?`${ee}-label`:void 0,K=HO[z],Q={slots:L,slotProps:{input:C,inputLabel:v,htmlInput:b,formHelperText:p,select:P,...M}},Z={},ne=Q.slotProps.inputLabel;z==="outlined"&&(ne&&typeof ne.shrink<"u"&&(Z.notched=ne.shrink),Z.label=x),R&&((!P||!P.native)&&(Z.id=void 0),Z["aria-describedby"]=void 0);const[B,W]=ze("root",{elementType:UO,shouldForwardComponentProp:!0,externalForwardedProps:{...Q,...U},ownerState:G,className:pe(q.root,l),ref:n,additionalProps:{disabled:d,error:f,fullWidth:m,required:j,color:c,variant:z}}),[H,Y]=ze("input",{elementType:K,externalForwardedProps:Q,additionalProps:Z,ownerState:G}),[oe,se]=ze("inputLabel",{elementType:Sl,externalForwardedProps:Q,ownerState:G}),[ie,ae]=ze("htmlInput",{elementType:"input",externalForwardedProps:Q,ownerState:G}),[fe,ue]=ze("formHelperText",{elementType:Rh,externalForwardedProps:Q,ownerState:G}),[re,ge]=ze("select",{elementType:or,externalForwardedProps:Q,ownerState:G}),we=T.jsx(H,{"aria-describedby":te,autoComplete:r,autoFocus:i,defaultValue:u,fullWidth:m,multiline:O,name:_,rows:N,maxRows:w,minRows:E,type:D,value:$,id:ee,inputRef:y,onBlur:I,onChange:V,onFocus:k,placeholder:S,inputProps:ae,slots:{input:L.htmlInput?ie:void 0},...Y});return T.jsxs(B,{...W,children:[x!=null&&x!==""&&T.jsx(oe,{htmlFor:ee,id:J,...se,children:x}),R?T.jsx(re,{"aria-describedby":te,id:ee,labelId:J,value:$,input:we,...ge,children:s}):we,g&&T.jsx(fe,{id:te,...ue,children:g})]})});process.env.NODE_ENV!=="production"&&(Dt.propTypes={autoComplete:a.string,autoFocus:a.bool,children:a.node,classes:a.object,className:a.string,color:a.oneOfType([a.oneOf(["primary","secondary","error","info","success","warning"]),a.string]),defaultValue:a.any,disabled:a.bool,error:a.bool,FormHelperTextProps:a.object,fullWidth:a.bool,helperText:a.node,id:a.string,InputLabelProps:a.object,inputProps:a.object,InputProps:a.object,inputRef:Gt,label:a.node,margin:a.oneOf(["dense","none","normal"]),maxRows:a.oneOfType([a.number,a.string]),minRows:a.oneOfType([a.number,a.string]),multiline:a.bool,name:a.string,onBlur:a.func,onChange:a.func,onFocus:a.func,placeholder:a.string,required:a.bool,rows:a.oneOfType([a.number,a.string]),select:a.bool,SelectProps:a.object,size:a.oneOfType([a.oneOf(["medium","small"]),a.string]),slotProps:a.shape({formHelperText:a.oneOfType([a.func,a.object]),htmlInput:a.oneOfType([a.func,a.object]),input:a.oneOfType([a.func,a.object]),inputLabel:a.oneOfType([a.func,a.object]),select:a.oneOfType([a.func,a.object])}),slots:a.shape({formHelperText:a.elementType,htmlInput:a.elementType,input:a.elementType,inputLabel:a.elementType,root:a.elementType,select:a.elementType}),sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),type:a.string,value:a.any,variant:a.oneOf(["filled","outlined","standard"])});const Eo=2,qs=5;function Qt({node:e,nodeLabel:t,setNodeLabel:n,nodeMetaData:o,setNodeMetaData:r}){const i=e.type==="multiChoice",s=o&&typeof o=="object"&&!Array.isArray(o)?o:{},l=typeof s.field1=="string"?s.field1:"",c=typeof s.field2=="string"?s.field2:"",u=typeof s.field3=="string"?s.field3:"",d=Math.min(qs,Math.max(Eo,Number(s.choiceCount)||Eo));return T.jsxs(gt,{spacing:2,children:[T.jsx(Dt,{label:"Node label",helperText:"Shown in the node body (under the divider)",value:t,onChange:f=>n(f.target.value),fullWidth:!0}),i&&T.jsx(Dt,{label:"Number of choices (2–5)",type:"number",inputProps:{min:Eo,max:qs,step:1},value:d,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},choiceCount:Math.min(qs,Math.max(Eo,Number(f.target.value)||Eo))})),fullWidth:!0,helperText:"Reducing prunes removed-branch subtrees (END preserved)."}),T.jsx(Dt,{label:"Text field 1",value:l,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},field1:f.target.value})),fullWidth:!0,multiline:!0,minRows:2}),T.jsx(Dt,{label:"Text field 2",value:c,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},field2:f.target.value})),fullWidth:!0,multiline:!0,minRows:2}),T.jsx(Dt,{label:"Text field 3",value:u,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},field3:f.target.value})),fullWidth:!0,multiline:!0,minRows:2})]})}function YO({nodeLabel:e,setNodeLabel:t,nodeMetaData:n,setNodeMetaData:o}){const r=n&&typeof n=="object"&&!Array.isArray(n)?n:{},i=typeof r.subject=="string"?r.subject:"",s=typeof r.body=="string"?r.body:"";return T.jsxs(gt,{spacing:2,children:[T.jsx(Dt,{label:"Node label",helperText:"Shown in the node body (under the divider)",value:e,onChange:l=>t(l.target.value),fullWidth:!0}),T.jsx(Dt,{label:"Email subject",value:i,onChange:l=>o(c=>({...c&&typeof c=="object"&&!Array.isArray(c)?c:{},subject:l.target.value})),fullWidth:!0}),T.jsx(Dt,{label:"Email body",value:s,onChange:l=>o(c=>({...c&&typeof c=="object"&&!Array.isArray(c)?c:{},body:l.target.value})),fullWidth:!0,multiline:!0,minRows:4})]})}function qO({node:e,setNodeLabel:t,nodeMetaData:n,setNodeMetaData:o}){const r=n&&typeof n=="object"&&!Array.isArray(n)?n:{},i=typeof r.trackedEvent=="string"?r.trackedEvent:"";console.log("Selected node:",e),console.log("Node metadata:",n);const s=l=>{const c=l.target.value;o(u=>({...u&&typeof u=="object"&&!Array.isArray(u)?u:{},trackedEvent:c})),t(c)};return T.jsx(gt,{spacing:2,children:T.jsxs(Ei,{fullWidth:!0,children:[T.jsxs(gt,{children:[T.jsx(Sl,{id:"demo-simple-select-label",children:"Tracked Event"}),T.jsxs(or,{labelId:"demo-simple-select-label",id:"demo-simple-select",value:i,label:"Tracked Event",onChange:s,children:[T.jsx(xt,{value:"Class Booked",children:"Class Booked"}),T.jsx(xt,{value:"Class Cancelled",children:"Class Cancelled"}),T.jsx(xt,{value:"Class Rescheduled",children:"Class Rescheduled"})]}),T.jsx(tt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:"Select the event to wait for before proceeding."})]}),T.jsxs(gt,{sx:{mt:2},spacing:1,children:[T.jsx(tt,{variant:"subtitle2",children:'Wait time before "No / False" is triggered'}),T.jsxs(gt,{direction:"row",spacing:1,alignItems:"center",children:[T.jsx(Dt,{type:"number",value:r.waitTime??7,onChange:l=>{const c=parseInt(l.target.value,10);o(u=>({...u&&typeof u=="object"&&!Array.isArray(u)?u:{},waitTime:isNaN(c)?0:c}))},InputProps:{inputProps:{min:0}},sx:{width:100}}),T.jsx(Ei,{sx:{minWidth:120},children:T.jsxs(or,{value:r.waitType??"days",onChange:l=>{const c=l.target.value;o(u=>({...u&&typeof u=="object"&&!Array.isArray(u)?u:{},waitType:c}))},children:[T.jsx(xt,{value:"days",children:"Days"}),T.jsx(xt,{value:"hours",children:"Hours"}),T.jsx(xt,{value:"minutes",children:"Minutes"})]})})]}),T.jsx(tt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:'Specify how long to wait for the event before taking "No / False" action.'})]})]})})}const Ct="start",Qe="end",ro="mingcute:entrance-fill",fo=2,pn=()=>({field1:"",field2:"",field3:""}),GO=()=>({trackedEvent:"",waitTime:7,waitType:"days"}),KO=()=>({subject:"",body:""}),XO=()=>({...pn(),choiceCount:fo}),po=[{kind:"email",title:"Email",category:"Send Message",nodeType:"action",icon:"streamline:send-email",drawerFormComponent:YO,createInitialNodeMetaData:KO},{kind:"sms",title:"SMS",category:"Send Message",nodeType:"action",icon:"fa-solid:sms",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"push",title:"Push Notification / Web Message",category:"Send Message",nodeType:"action",icon:"mdi:message-badge-outline",enabled:!1,drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"tag",title:"Tag Client",category:"Update",nodeType:"action",icon:"ph:tag",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"note",title:"Add Client Note",category:"Update",nodeType:"action",icon:"material-symbols-light:add-notes-outline",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"delay",title:"Delay",category:"Action",nodeType:"action",icon:"mdi:timer-sand-empty",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"smartFilter",title:"Smart Filter",category:"Event",nodeType:"conditional",icon:"tabler:filter",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"waitForEvent",title:"Tracked Event",category:"Event",nodeType:"conditional",icon:"codicon:github-action",drawerFormComponent:qO,createInitialNodeMetaData:GO},{kind:"multiChoice",title:"Multi Choice",category:"Event",nodeType:"multiChoice",icon:"tabler:list-numbers",drawerFormComponent:Qt,createInitialNodeMetaData:XO}],ZO=po;function ps(e){return new Map(e.map(t=>[t.kind,t]))}function Hh(e,t){if(t.length===0)return e;const n=ps(e);for(const i of t)n.set(i.kind,i);const o=e.map(i=>n.get(i.kind)??i),r=new Set(e.map(i=>i.kind));for(const i of t)r.has(i.kind)||o.push(i);return o}const QO=["Send Message","Update","Action","Event"];function Wh(e=po){const t={"Send Message":[],Update:[],Action:[],Event:[]};for(const n of e)t[n.category].push(n);return t}function JO(e,t=po){return ps(t).get(e)?.nodeType??"action"}const eP=[{id:Ct,type:"start",position:{x:260,y:60},data:{label:"Start",nodeLabel:"",kind:"start",icon:ro,nodeMetaData:{}}},{id:Qe,type:"end",position:{x:260,y:520},data:{label:"End",nodeLabel:"",kind:"end",icon:ro,nodeMetaData:{}}}],tP=[{id:"e-start-out-end",type:"plusEdge",source:Ct,sourceHandle:"out",target:Qe,targetHandle:"in",data:{kind:"default",isRedirect:!1}}],Nl=150,nP=170,pd=Nl,oP=24,rP=Nl+oP;function hd(e){return Math.min(5,Math.max(2,Number(e.data.nodeMetaData?.choiceCount)||fo))}function md(e,t){const n=new Map(e.map(p=>[p.id,p])),o=n.get(Ct),r=n.get(Qe),i=o?.position.x??260,s=o?.position.y??60,l=t.filter(p=>!p.data?.isRedirect),c=new Map;for(const p of l){const m=c.get(p.source)??[];m.push(p),c.set(p.source,m)}const u=new Map,d=new Map;u.set(Ct,0),d.set(Ct,i);const f=[Ct];for(;f.length;){const p=f.shift(),m=n.get(p);if(!m)continue;const g=u.get(p)??0,h=d.get(p)??i,v=c.get(p)??[];v.sort((b,C)=>{const y=b.sourceHandle??"",x=C.sourceHandle??"",w=E=>E==="yes"?0:E==="no"?1:E.startsWith("c")?2:3;return w(y)-w(x)});for(const b of v){const C=b.target,y=n.get(C);if(!y)continue;const x=u.get(C),w=g+1;if(x!=null&&x<=g||!(x==null||w<x))continue;u.set(C,w);let O=h;if(m.type==="conditional"){const _=b.sourceHandle??"",I=_==="yes"?h-pd:_==="no"?h+pd:h;if(y.type==="multiChoice"&&(_==="yes"||_==="no")){const V=hd(y),k=Math.max(0,V-2)*Nl;O=_==="yes"?I-k:I+k}else O=I}if(m.type==="multiChoice"){const I=(hd(m)-1)/2,V=/^c(\d)$/.exec(b.sourceHandle??""),S=(V?Number(V[1]):1)-1-I;O=h+S*rP}d.set(C,O),f.push(C)}}if(r){d.set(Qe,i);let p=0;for(const[m,g]of u.entries())m!==Qe&&(p=Math.max(p,g));u.set(Qe,p+1)}return e.map(p=>{const m=u.get(p.id),g=d.get(p.id);if(m==null||g==null)return p;const h=s+m*nP;return p.id===Qe?{...p,position:{x:i,y:h}}:{...p,position:{x:g,y:h}}})}function iP(e){const{nodeId:t,removedHandles:n,nodes:o,edges:r}=e,i=new Map(o.map(b=>[b.id,b])),s=new Map,l=new Map;for(const b of r){const C=s.get(b.source)??[];C.push(b),s.set(b.source,C);const y=l.get(b.target)??[];y.push(b),l.set(b.target,y)}const c=b=>!b.data?.isRedirect,d=r.filter(b=>b.source===t&&n.includes(b.sourceHandle??"")&&c(b)).map(b=>b.target).filter(b=>b&&b!==Qe&&b!==Ct),f=new Set,p=[...d];for(;p.length;){const b=p.pop();if(b===Qe||b===Ct||!i.has(b)||f.has(b))continue;f.add(b);const C=s.get(b)??[];for(const y of C)c(y)&&y.target!==Qe&&p.push(y.target)}const m=new Set;let g=!0;for(;g;){g=!1;for(const b of f){if(b===Qe||m.has(b))continue;(l.get(b)??[]).filter(c).filter(x=>!(x.source===t&&n.includes(x.sourceHandle??"")||m.has(x.source))).length===0&&(m.add(b),g=!0)}}if(m.size===0)return{nodes:o,edges:r};const h=o.filter(b=>!m.has(b.id)||b.id===Qe),v=r.filter(b=>!(m.has(b.source)||m.has(b.target)));return{nodes:h,edges:v}}function sP(e,t){const n=e.icons,o=e.aliases||Object.create(null),r=Object.create(null);function i(s){if(n[s])return r[s]=[];if(!(s in r)){r[s]=null;const l=o[s]&&o[s].parent,c=l&&i(l);c&&(r[s]=[l].concat(c))}return r[s]}return Object.keys(n).concat(Object.keys(o)).forEach(i),r}const Uh=Object.freeze({left:0,top:0,width:16,height:16}),Ti=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ol=Object.freeze({...Uh,...Ti}),Na=Object.freeze({...Ol,body:"",hidden:!1});function aP(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const o=((e.rotate||0)+(t.rotate||0))%4;return o&&(n.rotate=o),n}function gd(e,t){const n=aP(e,t);for(const o in Na)o in Ti?o in e&&!(o in n)&&(n[o]=Ti[o]):o in t?n[o]=t[o]:o in e&&(n[o]=e[o]);return n}function lP(e,t,n){const o=e.icons,r=e.aliases||Object.create(null);let i={};function s(l){i=gd(o[l]||r[l],i)}return s(t),n.forEach(s),gd(e,i)}function Yh(e,t){const n=[];if(typeof e!="object"||typeof e.icons!="object")return n;e.not_found instanceof Array&&e.not_found.forEach(r=>{t(r,null),n.push(r)});const o=sP(e);for(const r in o){const i=o[r];i&&(t(r,lP(e,r,i)),n.push(r))}return n}const cP={provider:"",aliases:{},not_found:{},...Uh};function Gs(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function qh(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!Gs(e,cP))return null;const n=t.icons;for(const r in n){const i=n[r];if(!r||typeof i.body!="string"||!Gs(i,Na))return null}const o=t.aliases||Object.create(null);for(const r in o){const i=o[r],s=i.parent;if(!r||typeof s!="string"||!n[s]&&!o[s]||!Gs(i,Na))return null}return t}const yd=Object.create(null);function uP(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function io(e,t){const n=yd[e]||(yd[e]=Object.create(null));return n[t]||(n[t]=uP(e,t))}function Gh(e,t){return qh(t)?Yh(t,(n,o)=>{o?e.icons[n]=o:e.missing.add(n)}):[]}function dP(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}const Kh=/^[a-z0-9]+(-[a-z0-9]+)*$/,hs=(e,t,n,o="")=>{const r=e.split(":");if(e.slice(0,1)==="@"){if(r.length<2||r.length>3)return null;o=r.shift().slice(1)}if(r.length>3||!r.length)return null;if(r.length>1){const l=r.pop(),c=r.pop(),u={provider:r.length>0?r[0]:o,prefix:c,name:l};return t&&!Qr(u)?null:u}const i=r[0],s=i.split("-");if(s.length>1){const l={provider:o,prefix:s.shift(),name:s.join("-")};return t&&!Qr(l)?null:l}if(n&&o===""){const l={provider:o,prefix:"",name:i};return t&&!Qr(l,n)?null:l}return null},Qr=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1;let rr=!1;function Xh(e){return typeof e=="boolean"&&(rr=e),rr}function bd(e){const t=typeof e=="string"?hs(e,!0,rr):e;if(t){const n=io(t.provider,t.prefix),o=t.name;return n.icons[o]||(n.missing.has(o)?null:void 0)}}function fP(e,t){const n=hs(e,!0,rr);if(!n)return!1;const o=io(n.provider,n.prefix);return t?dP(o,n.name,t):(o.missing.add(n.name),!0)}function pP(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),rr&&!t&&!e.prefix){let r=!1;return qh(e)&&(e.prefix="",Yh(e,(i,s)=>{fP(i,s)&&(r=!0)})),r}const n=e.prefix;if(!Qr({prefix:n,name:"a"}))return!1;const o=io(t,n);return!!Gh(o,e)}const Zh=Object.freeze({width:null,height:null}),Qh=Object.freeze({...Zh,...Ti}),hP=/(-?[0-9.]*[0-9]+[0-9.]*)/g,mP=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function vd(e,t,n){if(t===1)return e;if(n=n||100,typeof e=="number")return Math.ceil(e*t*n)/n;if(typeof e!="string")return e;const o=e.split(hP);if(o===null||!o.length)return e;const r=[];let i=o.shift(),s=mP.test(i);for(;;){if(s){const l=parseFloat(i);isNaN(l)?r.push(i):r.push(Math.ceil(l*t*n)/n)}else r.push(i);if(i=o.shift(),i===void 0)return r.join("");s=!s}}function gP(e,t="defs"){let n="";const o=e.indexOf("<"+t);for(;o>=0;){const r=e.indexOf(">",o),i=e.indexOf("</"+t);if(r===-1||i===-1)break;const s=e.indexOf(">",i);if(s===-1)break;n+=e.slice(r+1,i).trim(),e=e.slice(0,o).trim()+e.slice(s+1)}return{defs:n,content:e}}function yP(e,t){return e?"<defs>"+e+"</defs>"+t:t}function bP(e,t,n){const o=gP(e);return yP(o.defs,t+o.content+n)}const vP=e=>e==="unset"||e==="undefined"||e==="none";function xP(e,t){const n={...Ol,...e},o={...Qh,...t},r={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,o].forEach(h=>{const v=[],b=h.hFlip,C=h.vFlip;let y=h.rotate;b?C?y+=2:(v.push("translate("+(r.width+r.left).toString()+" "+(0-r.top).toString()+")"),v.push("scale(-1 1)"),r.top=r.left=0):C&&(v.push("translate("+(0-r.left).toString()+" "+(r.height+r.top).toString()+")"),v.push("scale(1 -1)"),r.top=r.left=0);let x;switch(y<0&&(y-=Math.floor(y/4)*4),y=y%4,y){case 1:x=r.height/2+r.top,v.unshift("rotate(90 "+x.toString()+" "+x.toString()+")");break;case 2:v.unshift("rotate(180 "+(r.width/2+r.left).toString()+" "+(r.height/2+r.top).toString()+")");break;case 3:x=r.width/2+r.left,v.unshift("rotate(-90 "+x.toString()+" "+x.toString()+")");break}y%2===1&&(r.left!==r.top&&(x=r.left,r.left=r.top,r.top=x),r.width!==r.height&&(x=r.width,r.width=r.height,r.height=x)),v.length&&(i=bP(i,'<g transform="'+v.join(" ")+'">',"</g>"))});const s=o.width,l=o.height,c=r.width,u=r.height;let d,f;s===null?(f=l===null?"1em":l==="auto"?u:l,d=vd(f,c/u)):(d=s==="auto"?c:s,f=l===null?vd(d,u/c):l==="auto"?u:l);const p={},m=(h,v)=>{vP(v)||(p[h]=v.toString())};m("width",d),m("height",f);const g=[r.left,r.top,c,u];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:i}}const wP=/\sid="(\S+)"/g,SP="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let EP=0;function CP(e,t=SP){const n=[];let o;for(;o=wP.exec(e);)n.push(o[1]);if(!n.length)return e;const r="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const s=typeof t=="function"?t(i):t+(EP++).toString(),l=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+r+"$3")}),e=e.replace(new RegExp(r,"g"),""),e}const Oa=Object.create(null);function TP(e,t){Oa[e]=t}function Pa(e){return Oa[e]||Oa[""]}function Pl(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const Rl=Object.create(null),Co=["https://api.simplesvg.com","https://api.unisvg.com"],Jr=[];for(;Co.length>0;)Co.length===1||Math.random()>.5?Jr.push(Co.shift()):Jr.push(Co.pop());Rl[""]=Pl({resources:["https://api.iconify.design"].concat(Jr)});function NP(e,t){const n=Pl(t);return n===null?!1:(Rl[e]=n,!0)}function _l(e){return Rl[e]}const OP=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let xd=OP();function PP(e,t){const n=_l(e);if(!n)return 0;let o;if(!n.maxURL)o=0;else{let r=0;n.resources.forEach(s=>{r=Math.max(r,s.length)});const i=t+".json?icons=";o=n.maxURL-r-n.path.length-i.length}return o}function RP(e){return e===404}const _P=(e,t,n)=>{const o=[],r=PP(e,t),i="icons";let s={type:i,provider:e,prefix:t,icons:[]},l=0;return n.forEach((c,u)=>{l+=c.length+1,l>=r&&u>0&&(o.push(s),s={type:i,provider:e,prefix:t,icons:[]},l=c.length),s.icons.push(c)}),o.push(s),o};function kP(e){if(typeof e=="string"){const t=_l(e);if(t)return t.path}return"/"}const IP=(e,t,n)=>{if(!xd){n("abort",424);return}let o=kP(t.provider);switch(t.type){case"icons":{const i=t.prefix,l=t.icons.join(","),c=new URLSearchParams({icons:l});o+=i+".json?"+c.toString();break}case"custom":{const i=t.uri;o+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let r=503;xd(e+o).then(i=>{const s=i.status;if(s!==200){setTimeout(()=>{n(RP(s)?"abort":"next",s)});return}return r=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",r)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",r)})},MP={prepare:_P,send:IP};function Jh(e,t){e.forEach(n=>{const o=n.loaderCallbacks;o&&(n.loaderCallbacks=o.filter(r=>r.id!==t))})}function $P(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const o=e.provider,r=e.prefix;t.forEach(i=>{const s=i.icons,l=s.pending.length;s.pending=s.pending.filter(c=>{if(c.prefix!==r)return!0;const u=c.name;if(e.icons[u])s.loaded.push({provider:o,prefix:r,name:u});else if(e.missing.has(u))s.missing.push({provider:o,prefix:r,name:u});else return n=!0,!0;return!1}),s.pending.length!==l&&(n||Jh([e],i.id),i.callback(s.loaded.slice(0),s.missing.slice(0),s.pending.slice(0),i.abort))})}))}let AP=0;function DP(e,t,n){const o=AP++,r=Jh.bind(null,n,o);if(!t.pending.length)return r;const i={id:o,icons:t,callback:e,abort:r};return n.forEach(s=>{(s.loaderCallbacks||(s.loaderCallbacks=[])).push(i)}),r}function jP(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((r,i)=>r.provider!==i.provider?r.provider.localeCompare(i.provider):r.prefix!==i.prefix?r.prefix.localeCompare(i.prefix):r.name.localeCompare(i.name));let o={provider:"",prefix:"",name:""};return e.forEach(r=>{if(o.name===r.name&&o.prefix===r.prefix&&o.provider===r.provider)return;o=r;const i=r.provider,s=r.prefix,l=r.name,c=n[i]||(n[i]=Object.create(null)),u=c[s]||(c[s]=io(i,s));let d;l in u.icons?d=t.loaded:s===""||u.missing.has(l)?d=t.missing:d=t.pending;const f={provider:i,prefix:s,name:l};d.push(f)}),t}function LP(e,t=!0,n=!1){const o=[];return e.forEach(r=>{const i=typeof r=="string"?hs(r,t,n):r;i&&o.push(i)}),o}const FP={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function BP(e,t,n,o){const r=e.resources.length,i=e.random?Math.floor(Math.random()*r):e.index;let s;if(e.random){let E=e.resources.slice(0);for(s=[];E.length>1;){const O=Math.floor(Math.random()*E.length);s.push(E[O]),E=E.slice(0,O).concat(E.slice(O+1))}s=s.concat(E)}else s=e.resources.slice(i).concat(e.resources.slice(0,i));const l=Date.now();let c="pending",u=0,d,f=null,p=[],m=[];typeof o=="function"&&m.push(o);function g(){f&&(clearTimeout(f),f=null)}function h(){c==="pending"&&(c="aborted"),g(),p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function v(E,O){O&&(m=[]),typeof E=="function"&&m.push(E)}function b(){return{startTime:l,payload:t,status:c,queriesSent:u,queriesPending:p.length,subscribe:v,abort:h}}function C(){c="failed",m.forEach(E=>{E(void 0,d)})}function y(){p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function x(E,O,_){const I=O!=="success";switch(p=p.filter(V=>V!==E),c){case"pending":break;case"failed":if(I||!e.dataAfterTimeout)return;break;default:return}if(O==="abort"){d=_,C();return}if(I){d=_,p.length||(s.length?w():C());return}if(g(),y(),!e.random){const V=e.resources.indexOf(E.resource);V!==-1&&V!==e.index&&(e.index=V)}c="completed",m.forEach(V=>{V(_)})}function w(){if(c!=="pending")return;g();const E=s.shift();if(E===void 0){if(p.length){f=setTimeout(()=>{g(),c==="pending"&&(y(),C())},e.timeout);return}C();return}const O={status:"pending",resource:E,callback:(_,I)=>{x(O,_,I)}};p.push(O),u++,f=setTimeout(w,e.rotate),n(E,t,O.callback)}return setTimeout(w),b}function em(e){const t={...FP,...e};let n=[];function o(){n=n.filter(l=>l().status==="pending")}function r(l,c,u){const d=BP(t,l,c,(f,p)=>{o(),u&&u(f,p)});return n.push(d),d}function i(l){return n.find(c=>l(c))||null}return{query:r,find:i,setIndex:l=>{t.index=l},getIndex:()=>t.index,cleanup:o}}function wd(){}const Ks=Object.create(null);function zP(e){if(!Ks[e]){const t=_l(e);if(!t)return;const n=em(t),o={config:t,redundancy:n};Ks[e]=o}return Ks[e]}function VP(e,t,n){let o,r;if(typeof e=="string"){const i=Pa(e);if(!i)return n(void 0,424),wd;r=i.send;const s=zP(e);s&&(o=s.redundancy)}else{const i=Pl(e);if(i){o=em(i);const s=e.resources?e.resources[0]:"",l=Pa(s);l&&(r=l.send)}}return!o||!r?(n(void 0,424),wd):o.query(t,r,n)().abort}function Sd(){}function HP(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,$P(e)}))}function WP(e){const t=[],n=[];return e.forEach(o=>{(o.match(Kh)?t:n).push(o)}),{valid:t,invalid:n}}function To(e,t,n){function o(){const r=e.pendingIcons;t.forEach(i=>{r&&r.delete(i),e.icons[i]||e.missing.add(i)})}if(n&&typeof n=="object")try{if(!Gh(e,n).length){o();return}}catch(r){console.error(r)}o(),HP(e)}function Ed(e,t){e instanceof Promise?e.then(n=>{t(n)}).catch(()=>{t(null)}):t(e)}function UP(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:n,prefix:o}=e,r=e.iconsToLoad;if(delete e.iconsToLoad,!r||!r.length)return;const i=e.loadIcon;if(e.loadIcons&&(r.length>1||!i)){Ed(e.loadIcons(r,o,n),d=>{To(e,r,d)});return}if(i){r.forEach(d=>{const f=i(d,o,n);Ed(f,p=>{const m=p?{prefix:o,icons:{[d]:p}}:null;To(e,[d],m)})});return}const{valid:s,invalid:l}=WP(r);if(l.length&&To(e,l,null),!s.length)return;const c=o.match(Kh)?Pa(n):null;if(!c){To(e,s,null);return}c.prepare(n,o,s).forEach(d=>{VP(n,d,f=>{To(e,d.icons,f)})})}))}const YP=(e,t)=>{const n=LP(e,!0,Xh()),o=jP(n);if(!o.pending.length){let c=!0;return t&&setTimeout(()=>{c&&t(o.loaded,o.missing,o.pending,Sd)}),()=>{c=!1}}const r=Object.create(null),i=[];let s,l;return o.pending.forEach(c=>{const{provider:u,prefix:d}=c;if(d===l&&u===s)return;s=u,l=d,i.push(io(u,d));const f=r[u]||(r[u]=Object.create(null));f[d]||(f[d]=[])}),o.pending.forEach(c=>{const{provider:u,prefix:d,name:f}=c,p=io(u,d),m=p.pendingIcons||(p.pendingIcons=new Set);m.has(f)||(m.add(f),r[u][d].push(f))}),i.forEach(c=>{const u=r[c.provider][c.prefix];u.length&&UP(c,u)}),t?DP(t,o,i):Sd};function qP(e,t){const n={...e};for(const o in t){const r=t[o],i=typeof r;o in Zh?(r===null||r&&(i==="string"||i==="number"))&&(n[o]=r):i===typeof n[o]&&(n[o]=o==="rotate"?r%4:r)}return n}const GP=/[\s,]+/;function KP(e,t){t.split(GP).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function XP(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function o(r){for(;r<0;)r+=4;return r%4}if(n===""){const r=parseInt(e);return isNaN(r)?0:o(r)}else if(n!==e){let r=0;switch(n){case"%":r=25;break;case"deg":r=90}if(r){let i=parseFloat(e.slice(0,e.length-n.length));return isNaN(i)?0:(i=i/r,i%1===0?o(i):0)}}return t}function ZP(e,t){let n=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const o in t)n+=" "+o+'="'+t[o]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+e+"</svg>"}function QP(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function JP(e){return"data:image/svg+xml,"+QP(e)}function eR(e){return'url("'+JP(e)+'")'}let zo;function tR(){try{zo=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{zo=null}}function nR(e){return zo===void 0&&tR(),zo?zo.createHTML(e):e}const tm={...Qh,inline:!1},oR={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},rR={display:"inline-block"},Ra={backgroundColor:"currentColor"},nm={backgroundColor:"transparent"},Cd={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Td={WebkitMask:Ra,mask:Ra,background:nm};for(const e in Td){const t=Td[e];for(const n in Cd)t[e+n]=Cd[n]}const iR={...tm,inline:!0};function Nd(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const sR=(e,t,n)=>{const o=t.inline?iR:tm,r=qP(o,t),i=t.mode||"svg",s={},l=t.style||{},c={...i==="svg"?oR:{}};if(n){const v=hs(n,!1,!0);if(v){const b=["iconify"],C=["provider","prefix"];for(const y of C)v[y]&&b.push("iconify--"+v[y]);c.className=b.join(" ")}}for(let v in t){const b=t[v];if(b!==void 0)switch(v){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":c.ref=b;break;case"className":c[v]=(c[v]?c[v]+" ":"")+b;break;case"inline":case"hFlip":case"vFlip":r[v]=b===!0||b==="true"||b===1;break;case"flip":typeof b=="string"&&KP(r,b);break;case"color":s.color=b;break;case"rotate":typeof b=="string"?r[v]=XP(b):typeof b=="number"&&(r[v]=b);break;case"ariaHidden":case"aria-hidden":b!==!0&&b!=="true"&&delete c["aria-hidden"];break;default:o[v]===void 0&&(c[v]=b)}}const u=xP(e,r),d=u.attributes;if(r.inline&&(s.verticalAlign="-0.125em"),i==="svg"){c.style={...s,...l},Object.assign(c,d);let v=0,b=t.id;return typeof b=="string"&&(b=b.replace(/-/g,"_")),c.dangerouslySetInnerHTML={__html:nR(CP(u.body,b?()=>b+"ID"+v++:"iconifyReact"))},F.createElement("svg",c)}const{body:f,width:p,height:m}=e,g=i==="mask"||(i==="bg"?!1:f.indexOf("currentColor")!==-1),h=ZP(f,{...d,width:p+"",height:m+""});return c.style={...s,"--svg":eR(h),width:Nd(d.width),height:Nd(d.height),...rR,...g?Ra:nm,...l},F.createElement("span",c)};Xh(!0);TP("",MP);if(typeof document<"u"&&typeof window<"u"){const e=window;if(e.IconifyPreload!==void 0){const t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof t=="object"&&t!==null&&(t instanceof Array?t:[t]).forEach(o=>{try{(typeof o!="object"||o===null||o instanceof Array||typeof o.icons!="object"||typeof o.prefix!="string"||!pP(o))&&console.error(n)}catch{console.error(n)}})}if(e.IconifyProviders!==void 0){const t=e.IconifyProviders;if(typeof t=="object"&&t!==null)for(let n in t){const o="IconifyProviders["+n+"] is invalid.";try{const r=t[n];if(typeof r!="object"||!r||r.resources===void 0)continue;NP(n,r)||console.error(o)}catch{console.error(o)}}}}function om(e){const[t,n]=F.useState(!!e.ssr),[o,r]=F.useState({});function i(m){if(m){const g=e.icon;if(typeof g=="object")return{name:"",data:g};const h=bd(g);if(h)return{name:g,data:h}}return{name:""}}const[s,l]=F.useState(i(!!e.ssr));function c(){const m=o.callback;m&&(m(),r({}))}function u(m){if(JSON.stringify(s)!==JSON.stringify(m))return c(),l(m),!0}function d(){var m;const g=e.icon;if(typeof g=="object"){u({name:"",data:g});return}const h=bd(g);if(u({name:g,data:h}))if(h===void 0){const v=YP([g],d);r({callback:v})}else h&&((m=e.onLoad)===null||m===void 0||m.call(e,g))}F.useEffect(()=>(n(!0),c),[]),F.useEffect(()=>{t&&d()},[e.icon,t]);const{name:f,data:p}=s;return p?sR({...Ol,...p},e,f):e.children?e.children:e.fallback?e.fallback:F.createElement("span",{})}const aR=F.forwardRef((e,t)=>om({...e,_ref:t}));F.forwardRef((e,t)=>om({inline:!0,...e,_ref:t}));const kl=F.forwardRef(({icon:e,width:t=20,sx:n,...o},r)=>T.jsx(br,{ref:r,component:aR,className:"component-iconify",icon:e,sx:{width:t,height:t,...n},...o}));kl.displayName="Iconify";function vr({title:e,icon:t,children:n}){return T.jsx(br,{width:"150px",sx:{borderRadius:"3px",backgroundColor:"white",border:"1px solid #646464",boxShadow:"0 0 6px 2px rgba(0, 0, 0, 0.08)"},children:T.jsxs(gt,{children:[T.jsxs(gt,{direction:"row",spacing:1,sx:{p:.5,alignItems:"center"},children:[T.jsx(kl,{icon:t,width:20,sx:{color:"rgba(0, 167, 111, 0.7)"}}),T.jsx(tt,{variant:"caption",sx:{color:"#646464"},children:e})]}),n?T.jsxs(T.Fragment,{children:[T.jsx(nn,{}),n]}):null]})})}function lR(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function cR(e){if(!e||typeof e!="object"||Array.isArray(e))return[];const t=e,n=[],o=new Set;for(const i of["field1","field2","field3","subject","body"])i in t&&(n.push(i),o.add(i));for(const i of Object.keys(t))o.has(i)||n.push(i);const r=[];for(const i of n){const s=lR(t[i]);if(s&&(r.push(s),r.length===3))break}return r}function xr({nodeLabel:e,nodeMetaData:t}){const n=e?.trim()??"",o=!!n,r=cR(t);return T.jsxs(br,{children:[T.jsx(tt,{variant:"caption",textAlign:"center",py:.5,sx:{color:o?"#646464":"#f36",fontSize:"8px",fontWeight:600},children:o?n:"Action required"}),r.map((i,s)=>T.jsx(tt,{variant:"caption",textAlign:"center",sx:{color:"#646464",fontSize:"8px",opacity:.85,lineHeight:"10px"},children:i},s))]})}function uR({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(vr,{title:e.label,icon:e.icon??ro,children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(ut,{type:"source",position:le.Bottom,id:"out"})]})}function dR({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??ro,children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})})]})}function fR({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??"ph:circle",children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(ut,{type:"source",position:le.Bottom,id:"out"})]})}const pR={left:"30%"},hR={left:"70%"};function mR({data:e}){const t=e.kind==="abTest";return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??"tabler:arrow-fork",children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(ut,{type:"source",position:le.Bottom,id:"yes",style:pR}),T.jsx(ut,{type:"source",position:le.Bottom,id:"no",style:hR}),T.jsxs("div",{style:{position:"absolute",width:150,left:0,top:"100%",marginTop:2,display:"flex",justifyContent:"space-between",fontSize:9,color:"#4f4f4f",pointerEvents:"none"},children:[T.jsx("span",{style:{transform:"translateX(-6px)"},children:t?"A":"Yes"}),T.jsx("span",{style:{transform:"translateX(6px)"},children:t?"B":"No"})]})]})}function gR({data:e}){const t=Math.min(5,Math.max(2,Number(e.nodeMetaData?.choiceCount)||fo));return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??"tabler:list-numbers",children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),Array.from({length:t}).map((n,o)=>{const r=o+1,i=(o+1)/(t+1)*100;return T.jsx(ut,{type:"source",position:le.Bottom,id:`c${r}`,style:{left:`${i}%`}},r)}),T.jsx("div",{style:{position:"absolute",width:150,left:0,top:"100%",marginTop:2,display:"flex",justifyContent:"space-between",fontSize:9,color:"#4f4f4f",pointerEvents:"none"},children:Array.from({length:t}).map((n,o)=>T.jsx("span",{style:{width:`${100/t}%`,textAlign:"center"},children:o+1},o))})]})}function yR(e){if(e.length<2)return"";const[t,...n]=e;return`M ${t.x} ${t.y} `+n.map(o=>`L ${o.x} ${o.y}`).join(" ")}function bR(e){let t=0;for(let n=1;n<e.length;n++){const o=e[n].x-e[n-1].x,r=e[n].y-e[n-1].y;t+=Math.hypot(o,r)}return t}function vR(e){if(e.length===0)return{x:0,y:0};if(e.length===1)return e[0];const n=bR(e)/2;let o=0;for(let r=1;r<e.length;r++){const i=e[r-1],s=e[r],l=Math.hypot(s.x-i.x,s.y-i.y);if(o+l>=n){const c=l===0?0:(n-o)/l;return{x:i.x+(s.x-i.x)*c,y:i.y+(s.y-i.y)*c}}o+=l}return e[e.length-1]}const xR={width:22,height:22,background:"rgba(0, 167, 111, 0.7)",border:"1px solid rgba(2, 107, 72, 0.7)",cursor:"pointer",borderRadius:"50%",fontSize:12,lineHeight:1,color:"white",fontWeight:600,boxShadow:"0 0 6px 2px rgba(0, 0, 0, 0.08)",padding:0,display:"flex",alignItems:"center",justifyContent:"center"},wR={position:"absolute",background:"transparent",padding:10,color:"#4f4f4f",fontSize:9,fontWeight:500};function SR(e){const{id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s,targetPosition:l,markerEnd:c,data:u}=e,d=e.sourceHandleId,f=Rw(),p=u?._onPlusClick,m=!!u?.isRedirect,g=i<o-5,[h,v,b]=Va({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:l}),C=150,y=f.length===0?Math.min(n,r):Math.min(...f.map(D=>D.position.x)),x=f.length===0?Math.max(n,r):Math.max(...f.map(D=>D.position.x+C)),w=140,E=Math.min(y-w,n-w,r-w),O=Math.max(x+w,n+w,r+w),_=m&&d==="yes",I=m&&d==="no",V=_?E:O,k=30,S=[{x:n,y:o},{x:V,y:o},{x:V,y:i-k},{x:r,y:i-k},{x:r,y:i}],j=yR(S),N=vR(S),R=g?j:h,P=g?N.x:v,L=g?N.y:b,M=u?.kind==="yes"?"Yes":u?.kind==="no"?"No":u?.kind==="branch"&&u?.branch?String(u.branch):"";return T.jsxs(T.Fragment,{children:[T.jsx(dr,{id:t,path:R,markerEnd:c,style:{strokeWidth:2,stroke:"#646464",strokeDasharray:m?"6 4":void 0}}),T.jsxs(Nw,{children:[!!M&&T.jsx("div",{style:{...wR,transform:`translate(-50%, 0%) translate(${n}px,${o-10}px)`},className:"nodrag nopan",children:M}),!m&&T.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${P}px,${L}px)`,pointerEvents:"all"},className:"nodrag nopan",children:T.jsx("button",{type:"button",onClick:()=>p?.(t),style:xR,title:"Add step",children:"+"})})]})]})}function ER({menu:e,onClose:t,definitions:n,onChooseKind:o,redirectCandidates:r,onChooseRedirectTarget:i,onSwitchMode:s}){const l=F.useMemo(()=>Wh(n),[n]),c=F.useCallback(()=>{const f=[],p=(m,g,h)=>{f.push(T.jsx(tt,{variant:"body1",sx:{fontWeight:600,textAlign:"center",px:2,pt:f.length?2:1},children:m},`${h}-t`)),f.push(T.jsx(nn,{},`${h}-d`));for(const v of g){const b=v.enabled===!1;f.push(T.jsxs(xt,{disabled:b,onClick:()=>o(e.edgeId,v.kind),sx:b?{opacity:.5}:void 0,children:[T.jsx(Ih,{children:T.jsx(kl,{icon:v.icon,width:28,sx:{color:"#646464"}})}),T.jsx(Mo,{children:v.title})]},`${h}-${v.kind}`))}};return p("Send Message",l["Send Message"],"sm"),p("Update",l.Update,"up"),p("Action",l.Action,"ac"),p("Event",l.Event,"ev"),f.push(T.jsx(nn,{},"redir-d")),f.push(T.jsx(xt,{onClick:()=>s("redirect",!1),children:T.jsx(Mo,{primary:"Redirect to…"})},"redir")),f},[l,e,o,s]),u=F.useCallback(()=>[T.jsx(xi,{disableSticky:!0,sx:{fontWeight:700,lineHeight:"32px"},children:e?.relinkSolid?"Relink solid edge to…":"Redirect to…"},"rs"),...r.map(f=>T.jsx(xt,{onClick:()=>i(e.edgeId,f.id,!e?.relinkSolid),children:T.jsx(Mo,{primary:f.label,secondary:f.nodeLabel?.trim()?f.nodeLabel:`id: ${f.id}`})},`rc-${f.id}`)),T.jsx(nn,{},"rd1"),T.jsx(xt,{onClick:()=>s("choose",!1),children:T.jsx(Mo,{primary:"Back"})},"back")],[e,r,i,s]),d=F.useMemo(()=>e?e.mode==="choose"?c():u():[],[e,c,u]);return T.jsx(El,{open:!!e,onClose:t,anchorReference:"anchorPosition",anchorPosition:e?.anchorPosition??{top:0,left:0},MenuListProps:{dense:!0},children:d})}function CR({open:e,onClose:t,selectedNode:n,selectedDefinition:o,nodeLabel:r,setNodeLabel:i,nodeMetaData:s,setNodeMetaData:l,onSave:c}){const u=o?.drawerFormComponent,d=typeof u=="function"?u:Qt;return T.jsxs(Ph,{anchor:"right",open:e,onClose:t,PaperProps:{sx:{width:550,p:2}},children:[T.jsx(tt,{variant:"h6",sx:{mb:.5},children:"Node metadata"}),T.jsxs(tt,{sx:{fontSize:12,opacity:.75,mb:2},children:["Type: ",T.jsx("b",{children:n?.data?.label??"—"}),n?` • id: ${n.id}`:""]}),T.jsxs(gt,{spacing:2,children:[n?T.jsx(d,{node:n,nodeLabel:r,setNodeLabel:i,nodeMetaData:s,setNodeMetaData:l}):T.jsx(tt,{sx:{fontSize:13,opacity:.7},children:"No node selected."}),T.jsx(nn,{}),T.jsxs(gt,{direction:"row",spacing:1,children:[T.jsx(Un,{variant:"outlined",onClick:t,fullWidth:!0,children:"Cancel"}),T.jsx(Un,{variant:"contained",onClick:c,fullWidth:!0,children:"Save"})]})]})]})}const TR={start:uR,end:dR,conditional:mR,action:fR,multiChoice:gR},NR={plusEdge:SR};function Ao(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function No(e){const t=Ao(e);return Math.min(5,Math.max(2,Number(t.choiceCount)||fo))}function OR(e){if(e==="yes"||e==="no")return e;const t=/^c(\d+)$/.exec(e??"");return t?t[1]:"child"}function PR(e){if(!e||typeof e!="object"||Array.isArray(e))return{};const t={};for(const[n,o]of Object.entries(e))typeof o!="string"||!o||(t[n]=o);return t}function RR(e,t){const n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function _R({nodeDefinitions:e=po}){const t=Di(),n=Ow(),o=Mw(),r=F.useMemo(()=>ps(e),[e]),[i,s]=_w(eP),[l,c,u]=kw(tP),d=F.useRef(l);F.useEffect(()=>{d.current=l},[l]);const[f,p]=F.useState(null),m=F.useRef(!1),g=F.useRef(!1),[h,v]=F.useState(!1),[b,C]=F.useState(null),[y,x]=F.useState(""),[w,E]=F.useState({}),O=F.useRef(null),_=F.useCallback(W=>i.find(H=>H.id===W),[i]),I=F.useCallback((W,H)=>l.filter(Y=>Y.source===W&&(H==null?!0:(Y.sourceHandle??null)===(H??null))).length,[l]),V=F.useCallback(W=>l.filter(H=>H.target===W).length,[l]),k=F.useCallback(W=>{if(m.current){g.current=!0;return}const H=t.getNodes(),Y=t.getEdges(),oe=md(H,Y);s(oe),W?.fit&&requestAnimationFrame(()=>t.fitView({duration:300,padding:.35}))},[t,s]);F.useEffect(()=>{if(!o)return;const W=setTimeout(()=>k({fit:!0}),30);return()=>clearTimeout(W)},[o,k]),F.useEffect(()=>{s(W=>{const H=new Set(W.map(ae=>ae.id)),Y=new Map,oe=new Map;for(const ae of l){if(!H.has(ae.source)||!H.has(ae.target))continue;const fe=OR(ae.sourceHandle),ue=oe.get(ae.source)??{};ue[fe]=ae.target,oe.set(ae.source,ue),Y.has(ae.target)||Y.set(ae.target,ae.source)}let se=!1;const ie=W.map(ae=>{const fe=Y.get(ae.id),ue=oe.get(ae.id)??{},re=PR(ae.data.childNodeIds),ge=ae.data.parentNodeId===fe,we=RR(re,ue);return ge&&we?ae:(se=!0,{...ae,data:{...ae.data,parentNodeId:fe,childNodeIds:Object.keys(ue).length>0?ue:void 0}})});return se?ie:W})},[l,s]),F.useEffect(()=>{s(W=>W.map(H=>{const Y=Ao(H.data.nodeMetaData),oe={...H.data,nodeMetaData:Y};if(H.id===Ct||H.id===Qe)return{...H,data:{...oe,icon:H.data.icon??ro}};const se=H.data.kind;if(se&&se!=="start"&&se!=="end"&&!H.data.icon){const ie=r.get(se);if(ie)return{...H,data:{...oe,icon:ie.icon,label:H.data.label??ie.title}}}if(H.type==="multiChoice"){const ie=No(Y);return{...H,data:{...oe,nodeMetaData:{...Y,choiceCount:ie}}}}return{...H,data:oe}}))},[r,s]),F.useEffect(()=>{const W=O.current;if(!W)return;const H=i.find(se=>se.id===W.nodeId);if(!H||H.type!=="multiChoice"){O.current=null;return}const Y=No(H.data.nodeMetaData);if(Y!==W.nextCount)return;n(W.nodeId);const oe=requestAnimationFrame(()=>{requestAnimationFrame(()=>{let se=i,ie=l;const ae=[];for(let fe=Y+1;fe<=5;fe++)ae.push(`c${fe}`);if(ae.length>0){const fe=iP({nodeId:W.nodeId,removedHandles:ae,nodes:se,edges:ie});se=fe.nodes,ie=fe.edges}ie=ie.filter(fe=>{if(fe.source!==W.nodeId)return!0;const ue=fe.sourceHandle??"",re=/^c(\d)$/.exec(ue);return re?Number(re[1])<=Y:!0});for(let fe=1;fe<=Y;fe++){const ue=`c${fe}`;ie.some(ge=>ge.source===W.nodeId&&(ge.sourceHandle??"")===ue)||(ie=[...ie,{id:`e-${W.nodeId}-${ue}-${Qe}`,type:"plusEdge",source:W.nodeId,sourceHandle:ue,target:Qe,targetHandle:"in",data:{kind:"branch",branch:fe,isRedirect:!1}}])}s(se),c(ie),O.current=null,setTimeout(()=>k(),0)})});return()=>cancelAnimationFrame(oe)},[i,l,s,c,k,n]);const S=F.useCallback(()=>{const W={version:2,nodes:i,edges:l.map(Y=>{const{_onPlusClick:oe,...se}=Y.data??{};return{...Y,data:se}}),viewport:t.getViewport()},H=JSON.stringify(W,null,2);console.log(H),navigator.clipboard?.writeText(H).catch(()=>{}),alert("Export copied to clipboard (and logged to console).")},[i,l,t]),j=F.useCallback(()=>{const W=prompt("Paste previously exported JSON:");if(W)try{const H=JSON.parse(W);s(H.nodes??[]),c(H.edges??[]),H.viewport&&t.setViewport(H.viewport),setTimeout(()=>k({fit:!0}),30)}catch{alert("Invalid JSON.")}},[t,c,s,k]),N=F.useCallback(W=>{if(!W.source||!W.target)return!1;const H=_(W.source),Y=_(W.target);if(!H||!Y||Y.type==="start"||H.type==="end"||Y.type==="end"&&V(Y.id)>=1||H.type==="start"&&I(H.id)>=1)return!1;if(H.type==="conditional"){const oe=W.sourceHandle;if(oe!=="yes"&&oe!=="no"||I(H.id,oe)>=1)return!1}if(H.type==="action"&&((W.sourceHandle??"out")!=="out"||I(H.id,"out")>=1))return!1;if(H.type==="multiChoice"){const oe=W.sourceHandle??"";if(!/^c[1-5]$/.test(oe)||I(H.id,oe)>=1)return!1}return!0},[_,V,I]),R=F.useCallback(W=>{const H=l.find(ae=>ae.id===W);if(!H||H.data?.isRedirect)return;const Y=t.getNode(H.source),oe=t.getNode(H.target);if(!Y||!oe)return;const se={x:(Y.position.x+oe.position.x)/2,y:(Y.position.y+oe.position.y)/2},ie=t.flowToScreenPosition(se);p({edgeId:W,mode:"choose",relinkSolid:!1,anchorPosition:{top:ie.y,left:ie.x}})},[l,t]),P=F.useCallback((W,H)=>{const Y=l.find(ve=>ve.id===W);if(!Y||Y.data?.isRedirect)return;const oe=t.getNode(Y.source),se=t.getNode(Y.target);if(!oe||!se)return;const ie=r.get(H);if(!ie)return;const ae=ie.nodeType,fe=(oe.position.x+se.position.x)/2,ue=(oe.position.y+se.position.y)/2,re=crypto.randomUUID(),ge=Ao(ie.createInitialNodeMetaData?.()??{}),we=ae==="multiChoice"?{...ge,choiceCount:No(ge)}:ge,Xe={id:re,type:ae,position:{x:fe,y:ue-40},data:{label:ie.title,nodeLabel:"",kind:H,icon:ie.icon,nodeMetaData:we}};s(ve=>[...ve,Xe]),c(ve=>{const be=ve.find(Je=>Je.id===W);if(!be)return ve;const me=ve.filter(Je=>Je.id!==W),Ue={id:`e-${be.source}-${be.sourceHandle??"out"}-${re}`,type:"plusEdge",source:be.source,sourceHandle:be.sourceHandle,target:re,targetHandle:"in",data:{kind:be.data?.kind??"default",isRedirect:!1,branch:be.data?.branch}};if(ae==="action"){const Je={id:`e-${re}-out-${be.target}`,type:"plusEdge",source:re,sourceHandle:"out",target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"default",isRedirect:!1}};return[...me,Ue,Je]}if(ae==="conditional"){const Je={id:`e-${re}-yes-${be.target}`,type:"plusEdge",source:re,sourceHandle:"yes",target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"yes",isRedirect:!1}},rt={id:`e-${re}-no-${be.target}`,type:"plusEdge",source:re,sourceHandle:"no",target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"no",isRedirect:!1}};return[...me,Ue,Je,rt]}const ot=Math.min(5,Math.max(2,fo)),Se=Array.from({length:ot}).map((Je,rt)=>{const Bt=rt+1;return{id:`e-${re}-c${Bt}-${be.target}`,type:"plusEdge",source:re,sourceHandle:`c${Bt}`,target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"branch",branch:Bt,isRedirect:!1}}});return[...me,Ue,...Se]}),p(null),queueMicrotask(()=>k())},[l,r,t,c,s,k]),L=F.useCallback((W,H,Y)=>{const oe=_(H);oe&&oe.type!=="start"&&(c(se=>se.map(ie=>{if(ie.id!==W)return ie;const ae=ie.data??{kind:"default"},fe=Y.makeRedirect&&!ae.isRedirect?ie.target:ae.baseTarget,ue=Y.makeRedirect&&!ae.isRedirect?ie.targetHandle??"in":ae.baseTargetHandle;return{...ie,target:H,targetHandle:"in",data:{...ae,isRedirect:!!Y.makeRedirect,baseTarget:Y.makeRedirect?fe:void 0,baseTargetHandle:Y.makeRedirect?ue:void 0}}})),p(null),queueMicrotask(()=>k()))},[_,c,k]),M=F.useCallback(async W=>{const H=W.nodes??[];if(H.length===0||H.length!==1)return!0;const Y=H[0];if(Y.type==="start"||Y.type==="end")return!1;const oe=t.getEdges(),se=t.getNodes(),ie=se.find(me=>me.id===Y.id);if(!ie)return!1;const ae=oe.filter(me=>me.target===Y.id),fe=oe.filter(me=>me.source===Y.id),ue=ae.find(me=>!me.data?.isRedirect)??ae[0],re=me=>me.find(Ue=>!Ue.data?.isRedirect)??me[0];let ge;if(ie.type==="conditional"){const me=fe.filter(Ue=>Ue.sourceHandle==="yes");ge=re(me)??re(fe)}else if(ie.type==="multiChoice"){const me=fe.filter(Ue=>Ue.sourceHandle==="c1");ge=re(me)??re(fe)}else{const me=fe.filter(Ue=>(Ue.sourceHandle??"out")==="out");ge=re(me)??re(fe)}const we=oe.filter(me=>me.source!==Y.id&&me.target!==Y.id),Xe=se.filter(me=>me.id!==Y.id);let ve=we;if(ue&&ge&&ge.target!==Ct){const me={id:`e-${ue.source}-${ue.sourceHandle??"out"}-${ge.target}`,type:"plusEdge",source:ue.source,sourceHandle:ue.sourceHandle,target:ge.target,targetHandle:ge.targetHandle??"in",data:{kind:ue.data?.kind??"default",isRedirect:!1,branch:ue.data?.branch}};ve.some(ot=>ot.source===me.source&&(ot.sourceHandle??null)===(me.sourceHandle??null)&&ot.target===me.target)||(ve=[...ve,me])}c(ve);const be=md(Xe,ve);return s(be),!1},[t,c,s]),D=F.useCallback((W,H)=>{const Y=W.data,oe=Y?.kind??(H.sourceHandle==="yes"?"yes":H.sourceHandle==="no"?"no":/^c[1-5]$/.test(H.sourceHandle??"")?"branch":"default"),se=Y?.branch??(()=>{const ue=/^c(\d)$/.exec(H.sourceHandle??"");return ue?Number(ue[1]):void 0})(),ie=!!Y?.isRedirect,ae=Y?.baseTarget,fe=Y?.baseTargetHandle;c(ue=>H0(W,H,ue).map(re=>{if(re.id!==W.id)return{...re,data:re.data??{kind:"default"}};const ge=re.data??{kind:oe};return{...re,data:{kind:ge.kind??oe,branch:ge.branch??se,isRedirect:!0,baseTarget:ie?ae:W.target,baseTargetHandle:ie?fe:W.targetHandle??"in"}}})),queueMicrotask(()=>k())},[c,k]),$=F.useCallback(W=>{s(H=>Ga(W,H))},[s]),z=F.useCallback(W=>{const H=W.filter(oe=>{if(oe.type!=="remove")return!1;const se=oe.id;return se?!!d.current.find(ae=>ae.id===se)?.data?.isRedirect:!1}),Y=W.filter(oe=>{if(oe.type!=="remove")return!0;const se=oe.id;return se?!d.current.find(ae=>ae.id===se)?.data?.isRedirect:!0});Y.length&&(c(oe=>Ka(Y,oe)),u(Y));for(const oe of H){const se=oe.id,ie=d.current.find(Xe=>Xe.id===se);if(!ie)continue;const ae=ie.data?.baseTarget??Qe,fe=ie.data?.baseTargetHandle??"in";c(Xe=>Xe.map(ve=>ve.id===se?{...ve,target:ae,targetHandle:fe,data:{...ve.data??{kind:"default"},isRedirect:!1,baseTarget:void 0,baseTargetHandle:void 0}}:ve));const ue=t.getNode(ie.source),re=t.getNode(ae),ge=ue&&re?{x:(ue.position.x+re.position.x)/2,y:(ue.position.y+re.position.y)/2}:{x:0,y:0},we=t.flowToScreenPosition(ge);p({edgeId:se,mode:"redirect",relinkSolid:!0,anchorPosition:{top:we.y,left:we.x}}),queueMicrotask(()=>k())}},[c,u,t,k]),U=F.useMemo(()=>l.map(W=>({...W,data:{...W.data??{kind:"default"},_onPlusClick:R}})),[l,R]),G=F.useMemo(()=>i.filter(W=>W.type!=="start").map(W=>({id:W.id,label:W.data?.label??W.id,nodeLabel:W.data?.nodeLabel??""})),[i]),q=F.useCallback((W,H)=>{H.data?.isRedirect&&(W.preventDefault(),W.stopPropagation(),p({edgeId:H.id,mode:"redirect",relinkSolid:!1,anchorPosition:{top:W.clientY,left:W.clientX}}))},[]),ee=F.useCallback((W,H)=>{C(H.id),x(H.data?.nodeLabel??"");const Y=Ao(H.data.nodeMetaData);E(H.type==="multiChoice"?{...Y,choiceCount:No(Y)}:Y),v(!0)},[]),te=F.useMemo(()=>b?_(b):void 0,[_,b]),J=F.useMemo(()=>{const W=te?.data?.kind;if(!(!W||W==="start"||W==="end"))return r.get(W)},[r,te]),K=F.useCallback(()=>{if(!b)return;const H=i.find(se=>se.id===b)?.type==="multiChoice",Y=Ao(w),oe=No(Y);s(se=>se.map(ie=>ie.id===b?{...ie,data:{...ie.data??{label:""},nodeLabel:y,nodeMetaData:ie.type==="multiChoice"?{...Y,choiceCount:oe}:Y}}:ie)),H&&(O.current={nodeId:b,nextCount:oe}),v(!1),queueMicrotask(()=>k())},[b,y,w,i,s,k]),Q=F.useCallback(()=>p(null),[]),Z=F.useCallback(()=>{m.current=!0},[]),ne=F.useCallback(()=>{m.current=!1,g.current&&(g.current=!1,k())},[k]),B=F.useCallback((W,H)=>{p(Y=>Y&&{...Y,mode:W,relinkSolid:H??Y.relinkSolid})},[]);return T.jsxs(br,{sx:{width:"100vw",height:"88vh",border:"1px solid #ddd",borderRadius:2,position:"relative",overflow:"hidden",bgcolor:"white"},children:[T.jsxs(gt,{direction:"row",spacing:1,sx:{p:1.25,borderBottom:"1px solid #eee",alignItems:"center"},children:[T.jsx(Un,{variant:"outlined",size:"small",onClick:S,children:"Export JSON"}),T.jsx(Un,{variant:"outlined",size:"small",onClick:j,children:"Import JSON"}),T.jsx(Un,{variant:"contained",size:"small",onClick:()=>k({fit:!0}),children:"Auto layout"}),T.jsx(tt,{sx:{ml:"auto",fontSize:12,opacity:.75},children:"Redirect edge delete ⇒ restores solid + asks relink"})]}),T.jsx(ER,{menu:f,onClose:Q,definitions:e,onChooseKind:(W,H)=>P(W,H),redirectCandidates:G,onChooseRedirectTarget:(W,H,Y)=>L(W,H,{makeRedirect:Y}),onSwitchMode:B}),T.jsxs(Cw,{nodes:i,edges:U,onNodesChange:$,onEdgesChange:z,nodeTypes:TR,edgeTypes:NR,fitView:!0,isValidConnection:N,onBeforeDelete:M,onReconnect:D,onEdgeClick:q,onNodeClick:ee,onNodeDragStart:Z,onNodeDragStop:ne,defaultEdgeOptions:{markerEnd:{type:Go.Arrow,width:12,height:12}},children:[T.jsx(Uw,{}),T.jsx(Lw,{})]}),T.jsx(CR,{open:h,onClose:()=>v(!1),selectedNode:te,selectedDefinition:J,nodeLabel:y,setNodeLabel:x,nodeMetaData:w,setNodeMetaData:E,onSave:K})]})}function kR({nodeDefinitions:e,extendNodeDefinitions:t=[]}){const n=F.useMemo(()=>e||Hh(po,t),[e,t]);return T.jsx(dp,{children:T.jsx(_R,{nodeDefinitions:n})})}exports.CATEGORIES=QO;exports.DEFAULT_MULTI_CHOICE_COUNT=fo;exports.DEFAULT_NODE_DEFINITIONS=po;exports.END_ID=Qe;exports.FlowEditor=kR;exports.NODE_DEFINITIONS=ZO;exports.START_END_ICON=ro;exports.START_ID=Ct;exports.createNodeDefinitionMap=ps;exports.groupDefinitions=Wh;exports.kindToNodeType=JO;exports.mergeNodeDefinitions=Hh;
159
+ `))}},[me,ae,C,y,z]),be&&(C?ve.length===0?we=null:we=ve.reduce((de,xe,Ge)=>(de.push(xe),Ge<ve.length-1&&de.push(", "),de),[]):we=Xe);let ot=Z;!s&&Q&&J&&(ot=H.clientWidth);let Se;typeof P<"u"?Se=P:Se=f?null:0;const Je=R.id||(y?`mui-component-select-${y}`:void 0),rt={...t,variant:D,value:z,open:Y,error:m},Bt=jO(rt),ho={...b.PaperProps,...typeof b.slotProps?.paper=="function"?b.slotProps.paper(rt):b.slotProps?.paper},ms={...b.MenuListProps,...typeof b.slotProps?.list=="function"?b.slotProps.list(rt):b.slotProps?.list},wr=cl();return T.jsxs(A.Fragment,{children:[T.jsx(MO,{as:"div",ref:W,tabIndex:Se,role:"combobox","aria-controls":Y?wr:void 0,"aria-disabled":f?"true":void 0,"aria-expanded":Y?"true":"false","aria-haspopup":"listbox","aria-label":r,"aria-labelledby":[v,Je].filter(Boolean).join(" ")||void 0,"aria-describedby":o,"aria-required":N?"true":void 0,"aria-invalid":m?"true":void 0,onKeyDown:re,onMouseDown:f||S?null:se,onBlur:ge,onFocus:O,...R,ownerState:rt,className:pe(R.className,Bt.select,c),id:Je,children:DO(we)?dd||(dd=T.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):we}),T.jsx(AO,{"aria-invalid":m,value:Array.isArray(z)?z.join(","):z,name:y,ref:ee,"aria-hidden":!0,onChange:fe,tabIndex:-1,disabled:f,className:Bt.nativeInput,autoFocus:i,required:N,...$,ownerState:rt}),T.jsx($O,{as:g,className:Bt.icon,ownerState:rt}),T.jsx(El,{id:`menu-${y||""}`,anchorEl:H,open:Y,onClose:ie,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},...b,slotProps:{...b.slotProps,list:{"aria-labelledby":v,role:"listbox","aria-multiselectable":C?"true":void 0,disableListWrap:!0,id:wr,...ms},paper:{...ho,style:{minWidth:ot,...ho!=null?ho.style:null}}},children:Ue})]})});process.env.NODE_ENV!=="production"&&(Vh.propTypes={"aria-describedby":a.string,"aria-label":a.string,autoFocus:a.bool,autoWidth:a.bool,children:a.node,classes:a.object,className:a.string,defaultOpen:a.bool,defaultValue:a.any,disabled:a.bool,displayEmpty:a.bool,error:a.bool,IconComponent:a.elementType.isRequired,inputRef:Gt,labelId:a.string,MenuProps:a.object,multiple:a.bool,name:a.string,onBlur:a.func,onChange:a.func,onClose:a.func,onFocus:a.func,onOpen:a.func,open:a.bool,readOnly:a.bool,renderValue:a.func,required:a.bool,SelectDisplayProps:a.object,tabIndex:a.oneOfType([a.number,a.string]),type:a.any,value:a.any,variant:a.oneOf(["standard","outlined","filled"])});const LO=e=>{const{classes:t}=e,o=ke({root:["root"]},zh,t);return{...t,...o}},Tl={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>pt(e)&&e!=="variant"},FO=ce(ds,Tl)(""),BO=ce(fs,Tl)(""),zO=ce(us,Tl)(""),or=A.forwardRef(function(t,n){const o=$e({name:"MuiSelect",props:t}),{autoWidth:r=!1,children:i,classes:s={},className:l,defaultOpen:c=!1,displayEmpty:u=!1,IconComponent:d=WT,id:f,input:p,inputProps:m,label:g,labelId:h,MenuProps:v,multiple:b=!1,native:C=!1,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:O,variant:_="outlined",...I}=o,V=C?Fh:Vh,k=co(),S=lo({props:o,muiFormControl:k,states:["variant","error"]}),j=S.variant||_,N={...o,variant:j,classes:s},R=LO(N),{root:P,...L}=R,M=p||{standard:T.jsx(FO,{ownerState:N}),outlined:T.jsx(BO,{label:g,ownerState:N}),filled:T.jsx(zO,{ownerState:N})}[j],D=nt(n,ao(M));return T.jsx(A.Fragment,{children:A.cloneElement(M,{inputComponent:V,inputProps:{children:i,error:S.error,IconComponent:d,variant:j,type:void 0,multiple:b,...C?{id:f}:{autoWidth:r,defaultOpen:c,displayEmpty:u,labelId:h,MenuProps:v,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:{id:f,...O}},...m,classes:m?Ke(L,m.classes):L,...p?p.props.inputProps:{}},...(b&&C||u)&&j==="outlined"?{notched:!0}:{},ref:D,className:pe(M.props.className,l,R.root),...!p&&{variant:j},...I})})});process.env.NODE_ENV!=="production"&&(or.propTypes={autoWidth:a.bool,children:a.node,classes:a.object,className:a.string,defaultOpen:a.bool,defaultValue:a.any,displayEmpty:a.bool,IconComponent:a.elementType,id:a.string,input:a.element,inputProps:a.object,label:a.node,labelId:a.string,MenuProps:a.object,multiple:a.bool,native:a.bool,onChange:a.func,onClose:a.func,onOpen:a.func,open:a.bool,renderValue:a.func,SelectDisplayProps:a.object,sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),value:a.oneOfType([a.oneOf([""]),a.any]),variant:a.oneOf(["filled","outlined","standard"])});or.muiName="Select";const gt=nC({createStyledComponent:ce("div",{name:"MuiStack",slot:"Root"}),useThemeProps:e=>$e({props:e,name:"MuiStack"})});process.env.NODE_ENV!=="production"&&(gt.propTypes={children:a.node,component:a.elementType,direction:a.oneOfType([a.oneOf(["column-reverse","column","row-reverse","row"]),a.arrayOf(a.oneOf(["column-reverse","column","row-reverse","row"])),a.object]),divider:a.node,spacing:a.oneOfType([a.arrayOf(a.oneOfType([a.number,a.string])),a.number,a.object,a.string]),sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),useFlexGap:a.bool});function VO(e){return Te("MuiTextField",e)}_e("MuiTextField",["root"]);const HO={standard:ds,filled:us,outlined:fs},WO=e=>{const{classes:t}=e;return ke({root:["root"]},VO,t)},UO=ce(Ei,{name:"MuiTextField",slot:"Root"})({}),Dt=A.forwardRef(function(t,n){const o=$e({props:t,name:"MuiTextField"}),{autoComplete:r,autoFocus:i=!1,children:s,className:l,color:c="primary",defaultValue:u,disabled:d=!1,error:f=!1,FormHelperTextProps:p,fullWidth:m=!1,helperText:g,id:h,InputLabelProps:v,inputProps:b,InputProps:C,inputRef:y,label:x,maxRows:w,minRows:E,multiline:O=!1,name:_,onBlur:I,onChange:V,onFocus:k,placeholder:S,required:j=!1,rows:N,select:R=!1,SelectProps:P,slots:L={},slotProps:M={},type:D,value:$,variant:z="outlined",...U}=o,G={...o,autoFocus:i,color:c,disabled:d,error:f,fullWidth:m,multiline:O,required:j,select:R,variant:z},q=WO(G);process.env.NODE_ENV!=="production"&&R&&!s&&console.error("MUI: `children` must be passed when using the `TextField` component with `select`.");const ee=cl(h),te=g&&ee?`${ee}-helper-text`:void 0,J=x&&ee?`${ee}-label`:void 0,K=HO[z],Q={slots:L,slotProps:{input:C,inputLabel:v,htmlInput:b,formHelperText:p,select:P,...M}},Z={},ne=Q.slotProps.inputLabel;z==="outlined"&&(ne&&typeof ne.shrink<"u"&&(Z.notched=ne.shrink),Z.label=x),R&&((!P||!P.native)&&(Z.id=void 0),Z["aria-describedby"]=void 0);const[B,W]=ze("root",{elementType:UO,shouldForwardComponentProp:!0,externalForwardedProps:{...Q,...U},ownerState:G,className:pe(q.root,l),ref:n,additionalProps:{disabled:d,error:f,fullWidth:m,required:j,color:c,variant:z}}),[H,Y]=ze("input",{elementType:K,externalForwardedProps:Q,additionalProps:Z,ownerState:G}),[oe,se]=ze("inputLabel",{elementType:Sl,externalForwardedProps:Q,ownerState:G}),[ie,ae]=ze("htmlInput",{elementType:"input",externalForwardedProps:Q,ownerState:G}),[fe,ue]=ze("formHelperText",{elementType:Rh,externalForwardedProps:Q,ownerState:G}),[re,ge]=ze("select",{elementType:or,externalForwardedProps:Q,ownerState:G}),we=T.jsx(H,{"aria-describedby":te,autoComplete:r,autoFocus:i,defaultValue:u,fullWidth:m,multiline:O,name:_,rows:N,maxRows:w,minRows:E,type:D,value:$,id:ee,inputRef:y,onBlur:I,onChange:V,onFocus:k,placeholder:S,inputProps:ae,slots:{input:L.htmlInput?ie:void 0},...Y});return T.jsxs(B,{...W,children:[x!=null&&x!==""&&T.jsx(oe,{htmlFor:ee,id:J,...se,children:x}),R?T.jsx(re,{"aria-describedby":te,id:ee,labelId:J,value:$,input:we,...ge,children:s}):we,g&&T.jsx(fe,{id:te,...ue,children:g})]})});process.env.NODE_ENV!=="production"&&(Dt.propTypes={autoComplete:a.string,autoFocus:a.bool,children:a.node,classes:a.object,className:a.string,color:a.oneOfType([a.oneOf(["primary","secondary","error","info","success","warning"]),a.string]),defaultValue:a.any,disabled:a.bool,error:a.bool,FormHelperTextProps:a.object,fullWidth:a.bool,helperText:a.node,id:a.string,InputLabelProps:a.object,inputProps:a.object,InputProps:a.object,inputRef:Gt,label:a.node,margin:a.oneOf(["dense","none","normal"]),maxRows:a.oneOfType([a.number,a.string]),minRows:a.oneOfType([a.number,a.string]),multiline:a.bool,name:a.string,onBlur:a.func,onChange:a.func,onFocus:a.func,placeholder:a.string,required:a.bool,rows:a.oneOfType([a.number,a.string]),select:a.bool,SelectProps:a.object,size:a.oneOfType([a.oneOf(["medium","small"]),a.string]),slotProps:a.shape({formHelperText:a.oneOfType([a.func,a.object]),htmlInput:a.oneOfType([a.func,a.object]),input:a.oneOfType([a.func,a.object]),inputLabel:a.oneOfType([a.func,a.object]),select:a.oneOfType([a.func,a.object])}),slots:a.shape({formHelperText:a.elementType,htmlInput:a.elementType,input:a.elementType,inputLabel:a.elementType,root:a.elementType,select:a.elementType}),sx:a.oneOfType([a.arrayOf(a.oneOfType([a.func,a.object,a.bool])),a.func,a.object]),type:a.string,value:a.any,variant:a.oneOf(["filled","outlined","standard"])});const Eo=2,qs=5;function Qt({node:e,nodeLabel:t,setNodeLabel:n,nodeMetaData:o,setNodeMetaData:r}){const i=e.type==="multiChoice",s=o&&typeof o=="object"&&!Array.isArray(o)?o:{},l=typeof s.field1=="string"?s.field1:"",c=typeof s.field2=="string"?s.field2:"",u=typeof s.field3=="string"?s.field3:"",d=Math.min(qs,Math.max(Eo,Number(s.choiceCount)||Eo));return T.jsxs(gt,{spacing:2,children:[T.jsx(Dt,{label:"Node label",helperText:"Shown in the node body (under the divider)",value:t,onChange:f=>n(f.target.value),fullWidth:!0}),i&&T.jsx(Dt,{label:"Number of choices (2–5)",type:"number",inputProps:{min:Eo,max:qs,step:1},value:d,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},choiceCount:Math.min(qs,Math.max(Eo,Number(f.target.value)||Eo))})),fullWidth:!0,helperText:"Reducing prunes removed-branch subtrees (END preserved)."}),T.jsx(Dt,{label:"Text field 1",value:l,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},field1:f.target.value})),fullWidth:!0,multiline:!0,minRows:2}),T.jsx(Dt,{label:"Text field 2",value:c,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},field2:f.target.value})),fullWidth:!0,multiline:!0,minRows:2}),T.jsx(Dt,{label:"Text field 3",value:u,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},field3:f.target.value})),fullWidth:!0,multiline:!0,minRows:2})]})}function YO({nodeLabel:e,setNodeLabel:t,nodeMetaData:n,setNodeMetaData:o}){const r=n&&typeof n=="object"&&!Array.isArray(n)?n:{},i=typeof r.subject=="string"?r.subject:"",s=typeof r.body=="string"?r.body:"";return T.jsxs(gt,{spacing:2,children:[T.jsx(Dt,{label:"Node label",helperText:"Shown in the node body (under the divider)",value:e,onChange:l=>t(l.target.value),fullWidth:!0}),T.jsx(Dt,{label:"Email subject",value:i,onChange:l=>o(c=>({...c&&typeof c=="object"&&!Array.isArray(c)?c:{},subject:l.target.value})),fullWidth:!0}),T.jsx(Dt,{label:"Email body",value:s,onChange:l=>o(c=>({...c&&typeof c=="object"&&!Array.isArray(c)?c:{},body:l.target.value})),fullWidth:!0,multiline:!0,minRows:4})]})}function qO({node:e,setNodeLabel:t,nodeMetaData:n,setNodeMetaData:o}){const r=n&&typeof n=="object"&&!Array.isArray(n)?n:{},i=typeof r.trackedEvent=="string"?r.trackedEvent:"";console.log("Selected node:",e),console.log("Node metadata:",n);const s=l=>{const c=l.target.value;o(u=>({...u&&typeof u=="object"&&!Array.isArray(u)?u:{},trackedEvent:c})),t(c)};return T.jsx(gt,{spacing:2,children:T.jsxs(Ei,{fullWidth:!0,children:[T.jsxs(gt,{children:[T.jsx(Sl,{id:"demo-simple-select-label",children:"Tracked Event"}),T.jsxs(or,{labelId:"demo-simple-select-label",id:"demo-simple-select",value:i,label:"Tracked Event",onChange:s,children:[T.jsx(xt,{value:"Class Booked",children:"Class Booked"}),T.jsx(xt,{value:"Class Cancelled",children:"Class Cancelled"}),T.jsx(xt,{value:"Class Rescheduled",children:"Class Rescheduled"})]}),T.jsx(tt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:"Select the event to wait for before proceeding."})]}),T.jsxs(gt,{sx:{mt:2},spacing:1,children:[T.jsx(tt,{variant:"subtitle2",children:'Wait time before "No / False" is triggered'}),T.jsxs(gt,{direction:"row",spacing:1,alignItems:"center",children:[T.jsx(Dt,{type:"number",value:r.waitTime??7,onChange:l=>{const c=parseInt(l.target.value,10);o(u=>({...u&&typeof u=="object"&&!Array.isArray(u)?u:{},waitTime:isNaN(c)?0:c}))},InputProps:{inputProps:{min:0}},sx:{width:100}}),T.jsx(Ei,{sx:{minWidth:120},children:T.jsxs(or,{value:r.waitType??"days",onChange:l=>{const c=l.target.value;o(u=>({...u&&typeof u=="object"&&!Array.isArray(u)?u:{},waitType:c}))},children:[T.jsx(xt,{value:"days",children:"Days"}),T.jsx(xt,{value:"hours",children:"Hours"}),T.jsx(xt,{value:"minutes",children:"Minutes"})]})})]}),T.jsx(tt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:'Specify how long to wait for the event before taking "No / False" action.'})]})]})})}const Ct="start",Qe="end",ro="mingcute:entrance-fill",fo=2,pn=()=>({field1:"",field2:"",field3:""}),GO=()=>({trackedEvent:"",waitTime:7,waitType:"days"}),KO=()=>({subject:"",body:""}),XO=()=>({...pn(),choiceCount:fo}),po=[{kind:"email",title:"Email",category:"Send Message",nodeType:"action",icon:"streamline:send-email",drawerFormComponent:YO,createInitialNodeMetaData:KO},{kind:"sms",title:"SMS",category:"Send Message",nodeType:"action",icon:"fa-solid:sms",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"push",title:"Push Notification / Web Message",category:"Send Message",nodeType:"action",icon:"mdi:message-badge-outline",enabled:!1,drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"tag",title:"Tag Client",category:"Update",nodeType:"action",icon:"ph:tag",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"note",title:"Add Client Note",category:"Update",nodeType:"action",icon:"material-symbols-light:add-notes-outline",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"delay",title:"Delay",category:"Action",nodeType:"action",icon:"mdi:timer-sand-empty",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"smartFilter",title:"Smart Filter",category:"Event",nodeType:"conditional",icon:"tabler:filter",drawerFormComponent:Qt,createInitialNodeMetaData:pn},{kind:"waitForEvent",title:"Tracked Event",category:"Event",nodeType:"conditional",icon:"codicon:github-action",drawerFormComponent:qO,createInitialNodeMetaData:GO},{kind:"multiChoice",title:"Multi Choice",category:"Event",nodeType:"multiChoice",icon:"tabler:list-numbers",drawerFormComponent:Qt,createInitialNodeMetaData:XO}],ZO=po;function ps(e){return new Map(e.map(t=>[t.kind,t]))}function Hh(e,t){if(t.length===0)return e;const n=ps(e);for(const i of t)n.set(i.kind,i);const o=e.map(i=>n.get(i.kind)??i),r=new Set(e.map(i=>i.kind));for(const i of t)r.has(i.kind)||o.push(i);return o}const QO=["Send Message","Update","Action","Event"];function Wh(e=po){const t={"Send Message":[],Update:[],Action:[],Event:[]};for(const n of e)t[n.category].push(n);return t}function JO(e,t=po){return ps(t).get(e)?.nodeType??"action"}const eP=[{id:Ct,type:"start",position:{x:260,y:60},data:{label:"Start",nodeLabel:"",kind:"start",icon:ro,nodeMetaData:{}}},{id:Qe,type:"end",position:{x:260,y:520},data:{label:"End",nodeLabel:"",kind:"end",icon:ro,nodeMetaData:{}}}],tP=[{id:"e-start-out-end",type:"plusEdge",source:Ct,sourceHandle:"out",target:Qe,targetHandle:"in",data:{kind:"default",isRedirect:!1}}],Nl=150,nP=170,pd=Nl,oP=24,rP=Nl+oP;function hd(e){return Math.min(5,Math.max(2,Number(e.data.nodeMetaData?.choiceCount)||fo))}function md(e,t){const n=new Map(e.map(p=>[p.id,p])),o=n.get(Ct),r=n.get(Qe),i=o?.position.x??260,s=o?.position.y??60,l=t.filter(p=>!p.data?.isRedirect),c=new Map;for(const p of l){const m=c.get(p.source)??[];m.push(p),c.set(p.source,m)}const u=new Map,d=new Map;u.set(Ct,0),d.set(Ct,i);const f=[Ct];for(;f.length;){const p=f.shift(),m=n.get(p);if(!m)continue;const g=u.get(p)??0,h=d.get(p)??i,v=c.get(p)??[];v.sort((b,C)=>{const y=b.sourceHandle??"",x=C.sourceHandle??"",w=E=>E==="yes"?0:E==="no"?1:E.startsWith("c")?2:3;return w(y)-w(x)});for(const b of v){const C=b.target,y=n.get(C);if(!y)continue;const x=u.get(C),w=g+1;if(x!=null&&x<=g||!(x==null||w<x))continue;u.set(C,w);let O=h;if(m.type==="conditional"){const _=b.sourceHandle??"",I=_==="yes"?h-pd:_==="no"?h+pd:h;if(y.type==="multiChoice"&&(_==="yes"||_==="no")){const V=hd(y),k=Math.max(0,V-2)*Nl;O=_==="yes"?I-k:I+k}else O=I}if(m.type==="multiChoice"){const I=(hd(m)-1)/2,V=/^c(\d)$/.exec(b.sourceHandle??""),S=(V?Number(V[1]):1)-1-I;O=h+S*rP}d.set(C,O),f.push(C)}}if(r){d.set(Qe,i);let p=0;for(const[m,g]of u.entries())m!==Qe&&(p=Math.max(p,g));u.set(Qe,p+1)}return e.map(p=>{const m=u.get(p.id),g=d.get(p.id);if(m==null||g==null)return p;const h=s+m*nP;return p.id===Qe?{...p,position:{x:i,y:h}}:{...p,position:{x:g,y:h}}})}function iP(e){const{nodeId:t,removedHandles:n,nodes:o,edges:r}=e,i=new Map(o.map(b=>[b.id,b])),s=new Map,l=new Map;for(const b of r){const C=s.get(b.source)??[];C.push(b),s.set(b.source,C);const y=l.get(b.target)??[];y.push(b),l.set(b.target,y)}const c=b=>!b.data?.isRedirect,d=r.filter(b=>b.source===t&&n.includes(b.sourceHandle??"")&&c(b)).map(b=>b.target).filter(b=>b&&b!==Qe&&b!==Ct),f=new Set,p=[...d];for(;p.length;){const b=p.pop();if(b===Qe||b===Ct||!i.has(b)||f.has(b))continue;f.add(b);const C=s.get(b)??[];for(const y of C)c(y)&&y.target!==Qe&&p.push(y.target)}const m=new Set;let g=!0;for(;g;){g=!1;for(const b of f){if(b===Qe||m.has(b))continue;(l.get(b)??[]).filter(c).filter(x=>!(x.source===t&&n.includes(x.sourceHandle??"")||m.has(x.source))).length===0&&(m.add(b),g=!0)}}if(m.size===0)return{nodes:o,edges:r};const h=o.filter(b=>!m.has(b.id)||b.id===Qe),v=r.filter(b=>!(m.has(b.source)||m.has(b.target)));return{nodes:h,edges:v}}function sP(e,t){const n=e.icons,o=e.aliases||Object.create(null),r=Object.create(null);function i(s){if(n[s])return r[s]=[];if(!(s in r)){r[s]=null;const l=o[s]&&o[s].parent,c=l&&i(l);c&&(r[s]=[l].concat(c))}return r[s]}return Object.keys(n).concat(Object.keys(o)).forEach(i),r}const Uh=Object.freeze({left:0,top:0,width:16,height:16}),Ti=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ol=Object.freeze({...Uh,...Ti}),Na=Object.freeze({...Ol,body:"",hidden:!1});function aP(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const o=((e.rotate||0)+(t.rotate||0))%4;return o&&(n.rotate=o),n}function gd(e,t){const n=aP(e,t);for(const o in Na)o in Ti?o in e&&!(o in n)&&(n[o]=Ti[o]):o in t?n[o]=t[o]:o in e&&(n[o]=e[o]);return n}function lP(e,t,n){const o=e.icons,r=e.aliases||Object.create(null);let i={};function s(l){i=gd(o[l]||r[l],i)}return s(t),n.forEach(s),gd(e,i)}function Yh(e,t){const n=[];if(typeof e!="object"||typeof e.icons!="object")return n;e.not_found instanceof Array&&e.not_found.forEach(r=>{t(r,null),n.push(r)});const o=sP(e);for(const r in o){const i=o[r];i&&(t(r,lP(e,r,i)),n.push(r))}return n}const cP={provider:"",aliases:{},not_found:{},...Uh};function Gs(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function qh(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!Gs(e,cP))return null;const n=t.icons;for(const r in n){const i=n[r];if(!r||typeof i.body!="string"||!Gs(i,Na))return null}const o=t.aliases||Object.create(null);for(const r in o){const i=o[r],s=i.parent;if(!r||typeof s!="string"||!n[s]&&!o[s]||!Gs(i,Na))return null}return t}const yd=Object.create(null);function uP(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function io(e,t){const n=yd[e]||(yd[e]=Object.create(null));return n[t]||(n[t]=uP(e,t))}function Gh(e,t){return qh(t)?Yh(t,(n,o)=>{o?e.icons[n]=o:e.missing.add(n)}):[]}function dP(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}const Kh=/^[a-z0-9]+(-[a-z0-9]+)*$/,hs=(e,t,n,o="")=>{const r=e.split(":");if(e.slice(0,1)==="@"){if(r.length<2||r.length>3)return null;o=r.shift().slice(1)}if(r.length>3||!r.length)return null;if(r.length>1){const l=r.pop(),c=r.pop(),u={provider:r.length>0?r[0]:o,prefix:c,name:l};return t&&!Qr(u)?null:u}const i=r[0],s=i.split("-");if(s.length>1){const l={provider:o,prefix:s.shift(),name:s.join("-")};return t&&!Qr(l)?null:l}if(n&&o===""){const l={provider:o,prefix:"",name:i};return t&&!Qr(l,n)?null:l}return null},Qr=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1;let rr=!1;function Xh(e){return typeof e=="boolean"&&(rr=e),rr}function bd(e){const t=typeof e=="string"?hs(e,!0,rr):e;if(t){const n=io(t.provider,t.prefix),o=t.name;return n.icons[o]||(n.missing.has(o)?null:void 0)}}function fP(e,t){const n=hs(e,!0,rr);if(!n)return!1;const o=io(n.provider,n.prefix);return t?dP(o,n.name,t):(o.missing.add(n.name),!0)}function pP(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),rr&&!t&&!e.prefix){let r=!1;return qh(e)&&(e.prefix="",Yh(e,(i,s)=>{fP(i,s)&&(r=!0)})),r}const n=e.prefix;if(!Qr({prefix:n,name:"a"}))return!1;const o=io(t,n);return!!Gh(o,e)}const Zh=Object.freeze({width:null,height:null}),Qh=Object.freeze({...Zh,...Ti}),hP=/(-?[0-9.]*[0-9]+[0-9.]*)/g,mP=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function vd(e,t,n){if(t===1)return e;if(n=n||100,typeof e=="number")return Math.ceil(e*t*n)/n;if(typeof e!="string")return e;const o=e.split(hP);if(o===null||!o.length)return e;const r=[];let i=o.shift(),s=mP.test(i);for(;;){if(s){const l=parseFloat(i);isNaN(l)?r.push(i):r.push(Math.ceil(l*t*n)/n)}else r.push(i);if(i=o.shift(),i===void 0)return r.join("");s=!s}}function gP(e,t="defs"){let n="";const o=e.indexOf("<"+t);for(;o>=0;){const r=e.indexOf(">",o),i=e.indexOf("</"+t);if(r===-1||i===-1)break;const s=e.indexOf(">",i);if(s===-1)break;n+=e.slice(r+1,i).trim(),e=e.slice(0,o).trim()+e.slice(s+1)}return{defs:n,content:e}}function yP(e,t){return e?"<defs>"+e+"</defs>"+t:t}function bP(e,t,n){const o=gP(e);return yP(o.defs,t+o.content+n)}const vP=e=>e==="unset"||e==="undefined"||e==="none";function xP(e,t){const n={...Ol,...e},o={...Qh,...t},r={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,o].forEach(h=>{const v=[],b=h.hFlip,C=h.vFlip;let y=h.rotate;b?C?y+=2:(v.push("translate("+(r.width+r.left).toString()+" "+(0-r.top).toString()+")"),v.push("scale(-1 1)"),r.top=r.left=0):C&&(v.push("translate("+(0-r.left).toString()+" "+(r.height+r.top).toString()+")"),v.push("scale(1 -1)"),r.top=r.left=0);let x;switch(y<0&&(y-=Math.floor(y/4)*4),y=y%4,y){case 1:x=r.height/2+r.top,v.unshift("rotate(90 "+x.toString()+" "+x.toString()+")");break;case 2:v.unshift("rotate(180 "+(r.width/2+r.left).toString()+" "+(r.height/2+r.top).toString()+")");break;case 3:x=r.width/2+r.left,v.unshift("rotate(-90 "+x.toString()+" "+x.toString()+")");break}y%2===1&&(r.left!==r.top&&(x=r.left,r.left=r.top,r.top=x),r.width!==r.height&&(x=r.width,r.width=r.height,r.height=x)),v.length&&(i=bP(i,'<g transform="'+v.join(" ")+'">',"</g>"))});const s=o.width,l=o.height,c=r.width,u=r.height;let d,f;s===null?(f=l===null?"1em":l==="auto"?u:l,d=vd(f,c/u)):(d=s==="auto"?c:s,f=l===null?vd(d,u/c):l==="auto"?u:l);const p={},m=(h,v)=>{vP(v)||(p[h]=v.toString())};m("width",d),m("height",f);const g=[r.left,r.top,c,u];return p.viewBox=g.join(" "),{attributes:p,viewBox:g,body:i}}const wP=/\sid="(\S+)"/g,SP="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let EP=0;function CP(e,t=SP){const n=[];let o;for(;o=wP.exec(e);)n.push(o[1]);if(!n.length)return e;const r="suffix"+(Math.random()*16777216|Date.now()).toString(16);return n.forEach(i=>{const s=typeof t=="function"?t(i):t+(EP++).toString(),l=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+s+r+"$3")}),e=e.replace(new RegExp(r,"g"),""),e}const Oa=Object.create(null);function TP(e,t){Oa[e]=t}function Pa(e){return Oa[e]||Oa[""]}function Pl(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const Rl=Object.create(null),Co=["https://api.simplesvg.com","https://api.unisvg.com"],Jr=[];for(;Co.length>0;)Co.length===1||Math.random()>.5?Jr.push(Co.shift()):Jr.push(Co.pop());Rl[""]=Pl({resources:["https://api.iconify.design"].concat(Jr)});function NP(e,t){const n=Pl(t);return n===null?!1:(Rl[e]=n,!0)}function _l(e){return Rl[e]}const OP=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let xd=OP();function PP(e,t){const n=_l(e);if(!n)return 0;let o;if(!n.maxURL)o=0;else{let r=0;n.resources.forEach(s=>{r=Math.max(r,s.length)});const i=t+".json?icons=";o=n.maxURL-r-n.path.length-i.length}return o}function RP(e){return e===404}const _P=(e,t,n)=>{const o=[],r=PP(e,t),i="icons";let s={type:i,provider:e,prefix:t,icons:[]},l=0;return n.forEach((c,u)=>{l+=c.length+1,l>=r&&u>0&&(o.push(s),s={type:i,provider:e,prefix:t,icons:[]},l=c.length),s.icons.push(c)}),o.push(s),o};function kP(e){if(typeof e=="string"){const t=_l(e);if(t)return t.path}return"/"}const IP=(e,t,n)=>{if(!xd){n("abort",424);return}let o=kP(t.provider);switch(t.type){case"icons":{const i=t.prefix,l=t.icons.join(","),c=new URLSearchParams({icons:l});o+=i+".json?"+c.toString();break}case"custom":{const i=t.uri;o+=i.slice(0,1)==="/"?i.slice(1):i;break}default:n("abort",400);return}let r=503;xd(e+o).then(i=>{const s=i.status;if(s!==200){setTimeout(()=>{n(RP(s)?"abort":"next",s)});return}return r=501,i.json()}).then(i=>{if(typeof i!="object"||i===null){setTimeout(()=>{i===404?n("abort",i):n("next",r)});return}setTimeout(()=>{n("success",i)})}).catch(()=>{n("next",r)})},MP={prepare:_P,send:IP};function Jh(e,t){e.forEach(n=>{const o=n.loaderCallbacks;o&&(n.loaderCallbacks=o.filter(r=>r.id!==t))})}function $P(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const o=e.provider,r=e.prefix;t.forEach(i=>{const s=i.icons,l=s.pending.length;s.pending=s.pending.filter(c=>{if(c.prefix!==r)return!0;const u=c.name;if(e.icons[u])s.loaded.push({provider:o,prefix:r,name:u});else if(e.missing.has(u))s.missing.push({provider:o,prefix:r,name:u});else return n=!0,!0;return!1}),s.pending.length!==l&&(n||Jh([e],i.id),i.callback(s.loaded.slice(0),s.missing.slice(0),s.pending.slice(0),i.abort))})}))}let AP=0;function DP(e,t,n){const o=AP++,r=Jh.bind(null,n,o);if(!t.pending.length)return r;const i={id:o,icons:t,callback:e,abort:r};return n.forEach(s=>{(s.loaderCallbacks||(s.loaderCallbacks=[])).push(i)}),r}function jP(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((r,i)=>r.provider!==i.provider?r.provider.localeCompare(i.provider):r.prefix!==i.prefix?r.prefix.localeCompare(i.prefix):r.name.localeCompare(i.name));let o={provider:"",prefix:"",name:""};return e.forEach(r=>{if(o.name===r.name&&o.prefix===r.prefix&&o.provider===r.provider)return;o=r;const i=r.provider,s=r.prefix,l=r.name,c=n[i]||(n[i]=Object.create(null)),u=c[s]||(c[s]=io(i,s));let d;l in u.icons?d=t.loaded:s===""||u.missing.has(l)?d=t.missing:d=t.pending;const f={provider:i,prefix:s,name:l};d.push(f)}),t}function LP(e,t=!0,n=!1){const o=[];return e.forEach(r=>{const i=typeof r=="string"?hs(r,t,n):r;i&&o.push(i)}),o}const FP={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function BP(e,t,n,o){const r=e.resources.length,i=e.random?Math.floor(Math.random()*r):e.index;let s;if(e.random){let E=e.resources.slice(0);for(s=[];E.length>1;){const O=Math.floor(Math.random()*E.length);s.push(E[O]),E=E.slice(0,O).concat(E.slice(O+1))}s=s.concat(E)}else s=e.resources.slice(i).concat(e.resources.slice(0,i));const l=Date.now();let c="pending",u=0,d,f=null,p=[],m=[];typeof o=="function"&&m.push(o);function g(){f&&(clearTimeout(f),f=null)}function h(){c==="pending"&&(c="aborted"),g(),p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function v(E,O){O&&(m=[]),typeof E=="function"&&m.push(E)}function b(){return{startTime:l,payload:t,status:c,queriesSent:u,queriesPending:p.length,subscribe:v,abort:h}}function C(){c="failed",m.forEach(E=>{E(void 0,d)})}function y(){p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function x(E,O,_){const I=O!=="success";switch(p=p.filter(V=>V!==E),c){case"pending":break;case"failed":if(I||!e.dataAfterTimeout)return;break;default:return}if(O==="abort"){d=_,C();return}if(I){d=_,p.length||(s.length?w():C());return}if(g(),y(),!e.random){const V=e.resources.indexOf(E.resource);V!==-1&&V!==e.index&&(e.index=V)}c="completed",m.forEach(V=>{V(_)})}function w(){if(c!=="pending")return;g();const E=s.shift();if(E===void 0){if(p.length){f=setTimeout(()=>{g(),c==="pending"&&(y(),C())},e.timeout);return}C();return}const O={status:"pending",resource:E,callback:(_,I)=>{x(O,_,I)}};p.push(O),u++,f=setTimeout(w,e.rotate),n(E,t,O.callback)}return setTimeout(w),b}function em(e){const t={...FP,...e};let n=[];function o(){n=n.filter(l=>l().status==="pending")}function r(l,c,u){const d=BP(t,l,c,(f,p)=>{o(),u&&u(f,p)});return n.push(d),d}function i(l){return n.find(c=>l(c))||null}return{query:r,find:i,setIndex:l=>{t.index=l},getIndex:()=>t.index,cleanup:o}}function wd(){}const Ks=Object.create(null);function zP(e){if(!Ks[e]){const t=_l(e);if(!t)return;const n=em(t),o={config:t,redundancy:n};Ks[e]=o}return Ks[e]}function VP(e,t,n){let o,r;if(typeof e=="string"){const i=Pa(e);if(!i)return n(void 0,424),wd;r=i.send;const s=zP(e);s&&(o=s.redundancy)}else{const i=Pl(e);if(i){o=em(i);const s=e.resources?e.resources[0]:"",l=Pa(s);l&&(r=l.send)}}return!o||!r?(n(void 0,424),wd):o.query(t,r,n)().abort}function Sd(){}function HP(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,$P(e)}))}function WP(e){const t=[],n=[];return e.forEach(o=>{(o.match(Kh)?t:n).push(o)}),{valid:t,invalid:n}}function To(e,t,n){function o(){const r=e.pendingIcons;t.forEach(i=>{r&&r.delete(i),e.icons[i]||e.missing.add(i)})}if(n&&typeof n=="object")try{if(!Gh(e,n).length){o();return}}catch(r){console.error(r)}o(),HP(e)}function Ed(e,t){e instanceof Promise?e.then(n=>{t(n)}).catch(()=>{t(null)}):t(e)}function UP(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:n,prefix:o}=e,r=e.iconsToLoad;if(delete e.iconsToLoad,!r||!r.length)return;const i=e.loadIcon;if(e.loadIcons&&(r.length>1||!i)){Ed(e.loadIcons(r,o,n),d=>{To(e,r,d)});return}if(i){r.forEach(d=>{const f=i(d,o,n);Ed(f,p=>{const m=p?{prefix:o,icons:{[d]:p}}:null;To(e,[d],m)})});return}const{valid:s,invalid:l}=WP(r);if(l.length&&To(e,l,null),!s.length)return;const c=o.match(Kh)?Pa(n):null;if(!c){To(e,s,null);return}c.prepare(n,o,s).forEach(d=>{VP(n,d,f=>{To(e,d.icons,f)})})}))}const YP=(e,t)=>{const n=LP(e,!0,Xh()),o=jP(n);if(!o.pending.length){let c=!0;return t&&setTimeout(()=>{c&&t(o.loaded,o.missing,o.pending,Sd)}),()=>{c=!1}}const r=Object.create(null),i=[];let s,l;return o.pending.forEach(c=>{const{provider:u,prefix:d}=c;if(d===l&&u===s)return;s=u,l=d,i.push(io(u,d));const f=r[u]||(r[u]=Object.create(null));f[d]||(f[d]=[])}),o.pending.forEach(c=>{const{provider:u,prefix:d,name:f}=c,p=io(u,d),m=p.pendingIcons||(p.pendingIcons=new Set);m.has(f)||(m.add(f),r[u][d].push(f))}),i.forEach(c=>{const u=r[c.provider][c.prefix];u.length&&UP(c,u)}),t?DP(t,o,i):Sd};function qP(e,t){const n={...e};for(const o in t){const r=t[o],i=typeof r;o in Zh?(r===null||r&&(i==="string"||i==="number"))&&(n[o]=r):i===typeof n[o]&&(n[o]=o==="rotate"?r%4:r)}return n}const GP=/[\s,]+/;function KP(e,t){t.split(GP).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function XP(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function o(r){for(;r<0;)r+=4;return r%4}if(n===""){const r=parseInt(e);return isNaN(r)?0:o(r)}else if(n!==e){let r=0;switch(n){case"%":r=25;break;case"deg":r=90}if(r){let i=parseFloat(e.slice(0,e.length-n.length));return isNaN(i)?0:(i=i/r,i%1===0?o(i):0)}}return t}function ZP(e,t){let n=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const o in t)n+=" "+o+'="'+t[o]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+e+"</svg>"}function QP(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function JP(e){return"data:image/svg+xml,"+QP(e)}function eR(e){return'url("'+JP(e)+'")'}let zo;function tR(){try{zo=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{zo=null}}function nR(e){return zo===void 0&&tR(),zo?zo.createHTML(e):e}const tm={...Qh,inline:!1},oR={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},rR={display:"inline-block"},Ra={backgroundColor:"currentColor"},nm={backgroundColor:"transparent"},Cd={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Td={WebkitMask:Ra,mask:Ra,background:nm};for(const e in Td){const t=Td[e];for(const n in Cd)t[e+n]=Cd[n]}const iR={...tm,inline:!0};function Nd(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const sR=(e,t,n)=>{const o=t.inline?iR:tm,r=qP(o,t),i=t.mode||"svg",s={},l=t.style||{},c={...i==="svg"?oR:{}};if(n){const v=hs(n,!1,!0);if(v){const b=["iconify"],C=["provider","prefix"];for(const y of C)v[y]&&b.push("iconify--"+v[y]);c.className=b.join(" ")}}for(let v in t){const b=t[v];if(b!==void 0)switch(v){case"icon":case"style":case"children":case"onLoad":case"mode":case"ssr":case"fallback":break;case"_ref":c.ref=b;break;case"className":c[v]=(c[v]?c[v]+" ":"")+b;break;case"inline":case"hFlip":case"vFlip":r[v]=b===!0||b==="true"||b===1;break;case"flip":typeof b=="string"&&KP(r,b);break;case"color":s.color=b;break;case"rotate":typeof b=="string"?r[v]=XP(b):typeof b=="number"&&(r[v]=b);break;case"ariaHidden":case"aria-hidden":b!==!0&&b!=="true"&&delete c["aria-hidden"];break;default:o[v]===void 0&&(c[v]=b)}}const u=xP(e,r),d=u.attributes;if(r.inline&&(s.verticalAlign="-0.125em"),i==="svg"){c.style={...s,...l},Object.assign(c,d);let v=0,b=t.id;return typeof b=="string"&&(b=b.replace(/-/g,"_")),c.dangerouslySetInnerHTML={__html:nR(CP(u.body,b?()=>b+"ID"+v++:"iconifyReact"))},F.createElement("svg",c)}const{body:f,width:p,height:m}=e,g=i==="mask"||(i==="bg"?!1:f.indexOf("currentColor")!==-1),h=ZP(f,{...d,width:p+"",height:m+""});return c.style={...s,"--svg":eR(h),width:Nd(d.width),height:Nd(d.height),...rR,...g?Ra:nm,...l},F.createElement("span",c)};Xh(!0);TP("",MP);if(typeof document<"u"&&typeof window<"u"){const e=window;if(e.IconifyPreload!==void 0){const t=e.IconifyPreload,n="Invalid IconifyPreload syntax.";typeof t=="object"&&t!==null&&(t instanceof Array?t:[t]).forEach(o=>{try{(typeof o!="object"||o===null||o instanceof Array||typeof o.icons!="object"||typeof o.prefix!="string"||!pP(o))&&console.error(n)}catch{console.error(n)}})}if(e.IconifyProviders!==void 0){const t=e.IconifyProviders;if(typeof t=="object"&&t!==null)for(let n in t){const o="IconifyProviders["+n+"] is invalid.";try{const r=t[n];if(typeof r!="object"||!r||r.resources===void 0)continue;NP(n,r)||console.error(o)}catch{console.error(o)}}}}function om(e){const[t,n]=F.useState(!!e.ssr),[o,r]=F.useState({});function i(m){if(m){const g=e.icon;if(typeof g=="object")return{name:"",data:g};const h=bd(g);if(h)return{name:g,data:h}}return{name:""}}const[s,l]=F.useState(i(!!e.ssr));function c(){const m=o.callback;m&&(m(),r({}))}function u(m){if(JSON.stringify(s)!==JSON.stringify(m))return c(),l(m),!0}function d(){var m;const g=e.icon;if(typeof g=="object"){u({name:"",data:g});return}const h=bd(g);if(u({name:g,data:h}))if(h===void 0){const v=YP([g],d);r({callback:v})}else h&&((m=e.onLoad)===null||m===void 0||m.call(e,g))}F.useEffect(()=>(n(!0),c),[]),F.useEffect(()=>{t&&d()},[e.icon,t]);const{name:f,data:p}=s;return p?sR({...Ol,...p},e,f):e.children?e.children:e.fallback?e.fallback:F.createElement("span",{})}const aR=F.forwardRef((e,t)=>om({...e,_ref:t}));F.forwardRef((e,t)=>om({inline:!0,...e,_ref:t}));const kl=F.forwardRef(({icon:e,width:t=20,sx:n,...o},r)=>T.jsx(br,{ref:r,component:aR,className:"component-iconify",icon:e,sx:{width:t,height:t,...n},...o}));kl.displayName="Iconify";function vr({title:e,icon:t,children:n}){return T.jsx(br,{width:"150px",sx:{borderRadius:"3px",backgroundColor:"white",border:"1px solid #646464",boxShadow:"0 0 6px 2px rgba(0, 0, 0, 0.08)"},children:T.jsxs(gt,{children:[T.jsxs(gt,{direction:"row",spacing:1,sx:{p:.5,alignItems:"center"},children:[T.jsx(kl,{icon:t,width:20,sx:{color:"rgba(0, 167, 111, 0.7)"}}),T.jsx(tt,{variant:"caption",sx:{color:"#646464"},children:e})]}),n?T.jsxs(T.Fragment,{children:[T.jsx(nn,{}),n]}):null]})})}function lR(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function cR(e){if(!e||typeof e!="object"||Array.isArray(e))return[];const t=e,n=[],o=new Set;for(const i of["field1","field2","field3","subject","body"])i in t&&(n.push(i),o.add(i));for(const i of Object.keys(t))o.has(i)||n.push(i);const r=[];for(const i of n){const s=lR(t[i]);if(s&&(r.push(s),r.length===3))break}return r}function xr({nodeLabel:e,nodeMetaData:t}){const n=e?.trim()??"",o=!!n,r=cR(t);return T.jsxs(br,{children:[T.jsx(tt,{variant:"caption",textAlign:"center",py:.5,sx:{color:o?"#646464":"#f36",fontSize:"8px",fontWeight:600},children:o?n:"Action required"}),r.map((i,s)=>T.jsx(tt,{variant:"caption",textAlign:"center",sx:{color:"#646464",fontSize:"8px",opacity:.85,lineHeight:"10px"},children:i},s))]})}function uR({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(vr,{title:e.label,icon:e.icon??ro,children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(ut,{type:"source",position:le.Bottom,id:"out"})]})}function dR({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??ro,children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})})]})}function fR({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??"ph:circle",children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(ut,{type:"source",position:le.Bottom,id:"out"})]})}const pR={left:"30%"},hR={left:"70%"};function mR({data:e}){const t=e.kind==="abTest";return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??"tabler:arrow-fork",children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(ut,{type:"source",position:le.Bottom,id:"yes",style:pR}),T.jsx(ut,{type:"source",position:le.Bottom,id:"no",style:hR}),T.jsxs("div",{style:{position:"absolute",width:150,left:0,top:"100%",marginTop:2,display:"flex",justifyContent:"space-between",fontSize:9,color:"#4f4f4f",pointerEvents:"none"},children:[T.jsx("span",{style:{transform:"translateX(-6px)"},children:t?"A":"Yes"}),T.jsx("span",{style:{transform:"translateX(6px)"},children:t?"B":"No"})]})]})}function gR({data:e}){const t=Math.min(5,Math.max(2,Number(e.nodeMetaData?.choiceCount)||fo));return T.jsxs(T.Fragment,{children:[T.jsx(ut,{type:"target",position:le.Top,id:"in"}),T.jsx(vr,{title:e.label,icon:e.icon??"tabler:list-numbers",children:T.jsx(xr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),Array.from({length:t}).map((n,o)=>{const r=o+1,i=(o+1)/(t+1)*100;return T.jsx(ut,{type:"source",position:le.Bottom,id:`c${r}`,style:{left:`${i}%`}},r)}),T.jsx("div",{style:{position:"absolute",width:150,left:0,top:"100%",marginTop:2,display:"flex",justifyContent:"space-between",fontSize:9,color:"#4f4f4f",pointerEvents:"none"},children:Array.from({length:t}).map((n,o)=>T.jsx("span",{style:{width:`${100/t}%`,textAlign:"center"},children:o+1},o))})]})}function yR(e){if(e.length<2)return"";const[t,...n]=e;return`M ${t.x} ${t.y} `+n.map(o=>`L ${o.x} ${o.y}`).join(" ")}function bR(e){let t=0;for(let n=1;n<e.length;n++){const o=e[n].x-e[n-1].x,r=e[n].y-e[n-1].y;t+=Math.hypot(o,r)}return t}function vR(e){if(e.length===0)return{x:0,y:0};if(e.length===1)return e[0];const n=bR(e)/2;let o=0;for(let r=1;r<e.length;r++){const i=e[r-1],s=e[r],l=Math.hypot(s.x-i.x,s.y-i.y);if(o+l>=n){const c=l===0?0:(n-o)/l;return{x:i.x+(s.x-i.x)*c,y:i.y+(s.y-i.y)*c}}o+=l}return e[e.length-1]}const xR={width:22,height:22,background:"rgba(0, 167, 111, 0.7)",border:"1px solid rgba(2, 107, 72, 0.7)",cursor:"pointer",borderRadius:"50%",fontSize:12,lineHeight:1,color:"white",fontWeight:600,boxShadow:"0 0 6px 2px rgba(0, 0, 0, 0.08)",padding:0,display:"flex",alignItems:"center",justifyContent:"center"},wR={position:"absolute",background:"transparent",padding:10,color:"#4f4f4f",fontSize:9,fontWeight:500};function SR(e){const{id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s,targetPosition:l,markerEnd:c,data:u}=e,d=e.sourceHandleId,f=Rw(),p=u?._onPlusClick,m=!!u?.isRedirect,g=i<o-5,[h,v,b]=Va({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:l}),C=150,y=f.length===0?Math.min(n,r):Math.min(...f.map(D=>D.position.x)),x=f.length===0?Math.max(n,r):Math.max(...f.map(D=>D.position.x+C)),w=140,E=Math.min(y-w,n-w,r-w),O=Math.max(x+w,n+w,r+w),_=m&&d==="yes",I=m&&d==="no",V=_?E:O,k=30,S=[{x:n,y:o},{x:V,y:o},{x:V,y:i-k},{x:r,y:i-k},{x:r,y:i}],j=yR(S),N=vR(S),R=g?j:h,P=g?N.x:v,L=g?N.y:b,M=u?.kind==="yes"?"Yes":u?.kind==="no"?"No":u?.kind==="branch"&&u?.branch?String(u.branch):"";return T.jsxs(T.Fragment,{children:[T.jsx(dr,{id:t,path:R,markerEnd:c,style:{strokeWidth:2,stroke:"#646464",strokeDasharray:m?"6 4":void 0}}),T.jsxs(Nw,{children:[!!M&&T.jsx("div",{style:{...wR,transform:`translate(-50%, 0%) translate(${n}px,${o-10}px)`},className:"nodrag nopan",children:M}),!m&&T.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${P}px,${L}px)`,pointerEvents:"all"},className:"nodrag nopan",children:T.jsx("button",{type:"button",onClick:()=>p?.(t),style:xR,title:"Add step",children:"+"})})]})]})}function ER({menu:e,onClose:t,definitions:n,onChooseKind:o,redirectCandidates:r,onChooseRedirectTarget:i,onSwitchMode:s}){const l=F.useMemo(()=>Wh(n),[n]),c=F.useCallback(()=>{const f=[],p=(m,g,h)=>{f.push(T.jsx(tt,{variant:"body1",sx:{fontWeight:600,textAlign:"center",px:2,pt:f.length?2:1},children:m},`${h}-t`)),f.push(T.jsx(nn,{},`${h}-d`));for(const v of g){const b=v.enabled===!1;f.push(T.jsxs(xt,{disabled:b,onClick:()=>o(e.edgeId,v.kind),sx:b?{opacity:.5}:void 0,children:[T.jsx(Ih,{children:T.jsx(kl,{icon:v.icon,width:28,sx:{color:"#646464"}})}),T.jsx(Mo,{children:v.title})]},`${h}-${v.kind}`))}};return p("Send Message",l["Send Message"],"sm"),p("Update",l.Update,"up"),p("Action",l.Action,"ac"),p("Event",l.Event,"ev"),f.push(T.jsx(nn,{},"redir-d")),f.push(T.jsx(xt,{onClick:()=>s("redirect",!1),children:T.jsx(Mo,{primary:"Redirect to…"})},"redir")),f},[l,e,o,s]),u=F.useCallback(()=>[T.jsx(xi,{disableSticky:!0,sx:{fontWeight:700,lineHeight:"32px"},children:e?.relinkSolid?"Relink solid edge to…":"Redirect to…"},"rs"),...r.map(f=>T.jsx(xt,{onClick:()=>i(e.edgeId,f.id,!e?.relinkSolid),children:T.jsx(Mo,{primary:f.label,secondary:f.nodeLabel?.trim()?f.nodeLabel:`id: ${f.id}`})},`rc-${f.id}`)),T.jsx(nn,{},"rd1"),T.jsx(xt,{onClick:()=>s("choose",!1),children:T.jsx(Mo,{primary:"Back"})},"back")],[e,r,i,s]),d=F.useMemo(()=>e?e.mode==="choose"?c():u():[],[e,c,u]);return T.jsx(El,{open:!!e,onClose:t,anchorReference:"anchorPosition",anchorPosition:e?.anchorPosition??{top:0,left:0},MenuListProps:{dense:!0},children:d})}function CR({open:e,onClose:t,selectedNode:n,selectedDefinition:o,nodeLabel:r,setNodeLabel:i,nodeMetaData:s,setNodeMetaData:l,onSave:c}){const u=o?.drawerFormComponent,d=typeof u=="function"?u:Qt;return T.jsxs(Ph,{anchor:"right",open:e,onClose:t,PaperProps:{sx:{width:550,p:2}},children:[T.jsx(tt,{variant:"h6",sx:{mb:.5},children:"Node metadata"}),T.jsxs(tt,{sx:{fontSize:12,opacity:.75,mb:2},children:["Type: ",T.jsx("b",{children:n?.data?.label??"—"}),n?` • id: ${n.id}`:""]}),T.jsxs(gt,{spacing:2,children:[n?T.jsx(d,{node:n,nodeLabel:r,setNodeLabel:i,nodeMetaData:s,setNodeMetaData:l}):T.jsx(tt,{sx:{fontSize:13,opacity:.7},children:"No node selected."}),T.jsx(nn,{}),T.jsxs(gt,{direction:"row",spacing:1,children:[T.jsx(Un,{variant:"outlined",onClick:t,fullWidth:!0,children:"Cancel"}),T.jsx(Un,{variant:"contained",onClick:c,fullWidth:!0,children:"Save"})]})]})]})}const TR={start:uR,end:dR,conditional:mR,action:fR,multiChoice:gR},NR={plusEdge:SR};function Ao(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function No(e){const t=Ao(e);return Math.min(5,Math.max(2,Number(t.choiceCount)||fo))}function OR(e){if(e==="yes"||e==="no")return e;const t=/^c(\d+)$/.exec(e??"");return t?t[1]:"child"}function PR(e){if(!e||typeof e!="object"||Array.isArray(e))return{};const t={};for(const[n,o]of Object.entries(e))typeof o!="string"||!o||(t[n]=o);return t}function RR(e,t){const n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(const r of n)if(e[r]!==t[r])return!1;return!0}function _R({nodeDefinitions:e=po}){const t=Di(),n=Ow(),o=Mw(),r=F.useMemo(()=>ps(e),[e]),[i,s]=_w(eP),[l,c,u]=kw(tP),d=F.useRef(l);F.useEffect(()=>{d.current=l},[l]);const[f,p]=F.useState(null),m=F.useRef(!1),g=F.useRef(!1),[h,v]=F.useState(!1),[b,C]=F.useState(null),[y,x]=F.useState(""),[w,E]=F.useState({}),O=F.useRef(null),_=F.useCallback(W=>i.find(H=>H.id===W),[i]),I=F.useCallback((W,H)=>l.filter(Y=>Y.source===W&&(H==null?!0:(Y.sourceHandle??null)===(H??null))).length,[l]),V=F.useCallback(W=>l.filter(H=>H.target===W).length,[l]),k=F.useCallback(W=>{if(m.current){g.current=!0;return}const H=t.getNodes(),Y=t.getEdges(),oe=md(H,Y);s(oe),W?.fit&&requestAnimationFrame(()=>t.fitView({duration:300,padding:.35}))},[t,s]);F.useEffect(()=>{if(!o)return;const W=setTimeout(()=>k({fit:!0}),30);return()=>clearTimeout(W)},[o,k]),F.useEffect(()=>{s(W=>{const H=new Set(W.map(ae=>ae.id)),Y=new Map,oe=new Map;for(const ae of l){if(!H.has(ae.source)||!H.has(ae.target))continue;const fe=OR(ae.sourceHandle),ue=oe.get(ae.source)??{};ue[fe]=ae.target,oe.set(ae.source,ue),Y.has(ae.target)||Y.set(ae.target,ae.source)}let se=!1;const ie=W.map(ae=>{const fe=Y.get(ae.id),ue=oe.get(ae.id)??{},re=PR(ae.data.childNodeIds),ge=ae.data.parentNodeId===fe,we=RR(re,ue);return ge&&we?ae:(se=!0,{...ae,data:{...ae.data,parentNodeId:fe,childNodeIds:Object.keys(ue).length>0?ue:void 0}})});return se?ie:W})},[l,s]),F.useEffect(()=>{s(W=>W.map(H=>{const Y=Ao(H.data.nodeMetaData),oe={...H.data,nodeMetaData:Y};if(H.id===Ct||H.id===Qe)return{...H,data:{...oe,icon:H.data.icon??ro}};const se=H.data.kind;if(se&&se!=="start"&&se!=="end"&&!H.data.icon){const ie=r.get(se);if(ie)return{...H,data:{...oe,icon:ie.icon,label:H.data.label??ie.title}}}if(H.type==="multiChoice"){const ie=No(Y);return{...H,data:{...oe,nodeMetaData:{...Y,choiceCount:ie}}}}return{...H,data:oe}}))},[r,s]),F.useEffect(()=>{const W=O.current;if(!W)return;const H=i.find(se=>se.id===W.nodeId);if(!H||H.type!=="multiChoice"){O.current=null;return}const Y=No(H.data.nodeMetaData);if(Y!==W.nextCount)return;n(W.nodeId);const oe=requestAnimationFrame(()=>{requestAnimationFrame(()=>{let se=i,ie=l;const ae=[];for(let fe=Y+1;fe<=5;fe++)ae.push(`c${fe}`);if(ae.length>0){const fe=iP({nodeId:W.nodeId,removedHandles:ae,nodes:se,edges:ie});se=fe.nodes,ie=fe.edges}ie=ie.filter(fe=>{if(fe.source!==W.nodeId)return!0;const ue=fe.sourceHandle??"",re=/^c(\d)$/.exec(ue);return re?Number(re[1])<=Y:!0});for(let fe=1;fe<=Y;fe++){const ue=`c${fe}`;ie.some(ge=>ge.source===W.nodeId&&(ge.sourceHandle??"")===ue)||(ie=[...ie,{id:`e-${W.nodeId}-${ue}-${Qe}`,type:"plusEdge",source:W.nodeId,sourceHandle:ue,target:Qe,targetHandle:"in",data:{kind:"branch",branch:fe,isRedirect:!1}}])}s(se),c(ie),O.current=null,setTimeout(()=>k(),0)})});return()=>cancelAnimationFrame(oe)},[i,l,s,c,k,n]);const S=F.useCallback(()=>{const W={version:2,nodes:i,edges:l.map(Y=>{const{_onPlusClick:oe,...se}=Y.data??{};return{...Y,data:se}}),viewport:t.getViewport()},H=JSON.stringify(W,null,2);console.log(H),navigator.clipboard?.writeText(H).catch(()=>{}),alert("Export copied to clipboard (and logged to console).")},[i,l,t]),j=F.useCallback(()=>{const W=prompt("Paste previously exported JSON:");if(W)try{const H=JSON.parse(W);s(H.nodes??[]),c(H.edges??[]),H.viewport&&t.setViewport(H.viewport),setTimeout(()=>k({fit:!0}),30)}catch{alert("Invalid JSON.")}},[t,c,s,k]),N=F.useCallback(W=>{if(!W.source||!W.target)return!1;const H=_(W.source),Y=_(W.target);if(!H||!Y||Y.type==="start"||H.type==="end"||Y.type==="end"&&V(Y.id)>=1||H.type==="start"&&I(H.id)>=1)return!1;if(H.type==="conditional"){const oe=W.sourceHandle;if(oe!=="yes"&&oe!=="no"||I(H.id,oe)>=1)return!1}if(H.type==="action"&&((W.sourceHandle??"out")!=="out"||I(H.id,"out")>=1))return!1;if(H.type==="multiChoice"){const oe=W.sourceHandle??"";if(!/^c[1-5]$/.test(oe)||I(H.id,oe)>=1)return!1}return!0},[_,V,I]),R=F.useCallback(W=>{const H=l.find(ae=>ae.id===W);if(!H||H.data?.isRedirect)return;const Y=t.getNode(H.source),oe=t.getNode(H.target);if(!Y||!oe)return;const se={x:(Y.position.x+oe.position.x)/2,y:(Y.position.y+oe.position.y)/2},ie=t.flowToScreenPosition(se);p({edgeId:W,mode:"choose",relinkSolid:!1,anchorPosition:{top:ie.y,left:ie.x}})},[l,t]),P=F.useCallback((W,H)=>{const Y=l.find(ve=>ve.id===W);if(!Y||Y.data?.isRedirect)return;const oe=t.getNode(Y.source),se=t.getNode(Y.target);if(!oe||!se)return;const ie=r.get(H);if(!ie)return;const ae=ie.nodeType,fe=(oe.position.x+se.position.x)/2,ue=(oe.position.y+se.position.y)/2,re=crypto.randomUUID(),ge=Ao(ie.createInitialNodeMetaData?.()??{}),we=ae==="multiChoice"?{...ge,choiceCount:No(ge)}:ge,Xe={id:re,type:ae,position:{x:fe,y:ue-40},data:{label:ie.title,nodeLabel:"",kind:H,icon:ie.icon,nodeMetaData:we}};s(ve=>[...ve,Xe]),c(ve=>{const be=ve.find(Je=>Je.id===W);if(!be)return ve;const me=ve.filter(Je=>Je.id!==W),Ue={id:`e-${be.source}-${be.sourceHandle??"out"}-${re}`,type:"plusEdge",source:be.source,sourceHandle:be.sourceHandle,target:re,targetHandle:"in",data:{kind:be.data?.kind??"default",isRedirect:!1,branch:be.data?.branch}};if(ae==="action"){const Je={id:`e-${re}-out-${be.target}`,type:"plusEdge",source:re,sourceHandle:"out",target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"default",isRedirect:!1}};return[...me,Ue,Je]}if(ae==="conditional"){const Je={id:`e-${re}-yes-${be.target}`,type:"plusEdge",source:re,sourceHandle:"yes",target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"yes",isRedirect:!1}},rt={id:`e-${re}-no-${be.target}`,type:"plusEdge",source:re,sourceHandle:"no",target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"no",isRedirect:!1}};return[...me,Ue,Je,rt]}const ot=Math.min(5,Math.max(2,fo)),Se=Array.from({length:ot}).map((Je,rt)=>{const Bt=rt+1;return{id:`e-${re}-c${Bt}-${be.target}`,type:"plusEdge",source:re,sourceHandle:`c${Bt}`,target:be.target,targetHandle:be.targetHandle??"in",data:{kind:"branch",branch:Bt,isRedirect:!1}}});return[...me,Ue,...Se]}),p(null),queueMicrotask(()=>k())},[l,r,t,c,s,k]),L=F.useCallback((W,H,Y)=>{const oe=_(H);oe&&oe.type!=="start"&&(c(se=>se.map(ie=>{if(ie.id!==W)return ie;const ae=ie.data??{kind:"default"},fe=Y.makeRedirect&&!ae.isRedirect?ie.target:ae.baseTarget,ue=Y.makeRedirect&&!ae.isRedirect?ie.targetHandle??"in":ae.baseTargetHandle;return{...ie,target:H,targetHandle:"in",data:{...ae,isRedirect:!!Y.makeRedirect,baseTarget:Y.makeRedirect?fe:void 0,baseTargetHandle:Y.makeRedirect?ue:void 0}}})),p(null),queueMicrotask(()=>k()))},[_,c,k]),M=F.useCallback(async W=>{const H=W.nodes??[];if(H.length===0||H.length!==1)return!0;const Y=H[0];if(Y.type==="start"||Y.type==="end")return!1;const oe=t.getEdges(),se=t.getNodes(),ie=se.find(me=>me.id===Y.id);if(!ie)return!1;const ae=oe.filter(me=>me.target===Y.id),fe=oe.filter(me=>me.source===Y.id),ue=ae.find(me=>!me.data?.isRedirect)??ae[0],re=me=>me.find(Ue=>!Ue.data?.isRedirect)??me[0];let ge;if(ie.type==="conditional"){const me=fe.filter(Ue=>Ue.sourceHandle==="yes");ge=re(me)??re(fe)}else if(ie.type==="multiChoice"){const me=fe.filter(Ue=>Ue.sourceHandle==="c1");ge=re(me)??re(fe)}else{const me=fe.filter(Ue=>(Ue.sourceHandle??"out")==="out");ge=re(me)??re(fe)}const we=oe.filter(me=>me.source!==Y.id&&me.target!==Y.id),Xe=se.filter(me=>me.id!==Y.id);let ve=we;if(ue&&ge&&ge.target!==Ct){const me={id:`e-${ue.source}-${ue.sourceHandle??"out"}-${ge.target}`,type:"plusEdge",source:ue.source,sourceHandle:ue.sourceHandle,target:ge.target,targetHandle:ge.targetHandle??"in",data:{kind:ue.data?.kind??"default",isRedirect:!1,branch:ue.data?.branch}};ve.some(ot=>ot.source===me.source&&(ot.sourceHandle??null)===(me.sourceHandle??null)&&ot.target===me.target)||(ve=[...ve,me])}c(ve);const be=md(Xe,ve);return s(be),!1},[t,c,s]),D=F.useCallback((W,H)=>{const Y=W.data,oe=Y?.kind??(H.sourceHandle==="yes"?"yes":H.sourceHandle==="no"?"no":/^c[1-5]$/.test(H.sourceHandle??"")?"branch":"default"),se=Y?.branch??(()=>{const ue=/^c(\d)$/.exec(H.sourceHandle??"");return ue?Number(ue[1]):void 0})(),ie=!!Y?.isRedirect,ae=Y?.baseTarget,fe=Y?.baseTargetHandle;c(ue=>H0(W,H,ue).map(re=>{if(re.id!==W.id)return{...re,data:re.data??{kind:"default"}};const ge=re.data??{kind:oe};return{...re,data:{kind:ge.kind??oe,branch:ge.branch??se,isRedirect:!0,baseTarget:ie?ae:W.target,baseTargetHandle:ie?fe:W.targetHandle??"in"}}})),queueMicrotask(()=>k())},[c,k]),$=F.useCallback(W=>{s(H=>Ga(W,H))},[s]),z=F.useCallback(W=>{const H=W.filter(oe=>{if(oe.type!=="remove")return!1;const se=oe.id;return se?!!d.current.find(ae=>ae.id===se)?.data?.isRedirect:!1}),Y=W.filter(oe=>{if(oe.type!=="remove")return!0;const se=oe.id;return se?!d.current.find(ae=>ae.id===se)?.data?.isRedirect:!0});Y.length&&(c(oe=>Ka(Y,oe)),u(Y));for(const oe of H){const se=oe.id,ie=d.current.find(Xe=>Xe.id===se);if(!ie)continue;const ae=ie.data?.baseTarget??Qe,fe=ie.data?.baseTargetHandle??"in";c(Xe=>Xe.map(ve=>ve.id===se?{...ve,target:ae,targetHandle:fe,data:{...ve.data??{kind:"default"},isRedirect:!1,baseTarget:void 0,baseTargetHandle:void 0}}:ve));const ue=t.getNode(ie.source),re=t.getNode(ae),ge=ue&&re?{x:(ue.position.x+re.position.x)/2,y:(ue.position.y+re.position.y)/2}:{x:0,y:0},we=t.flowToScreenPosition(ge);p({edgeId:se,mode:"redirect",relinkSolid:!0,anchorPosition:{top:we.y,left:we.x}}),queueMicrotask(()=>k())}},[c,u,t,k]),U=F.useMemo(()=>l.map(W=>({...W,data:{...W.data??{kind:"default"},_onPlusClick:R}})),[l,R]),G=F.useMemo(()=>i.filter(W=>W.type!=="start").map(W=>({id:W.id,label:W.data?.label??W.id,nodeLabel:W.data?.nodeLabel??""})),[i]),q=F.useCallback((W,H)=>{H.data?.isRedirect&&(W.preventDefault(),W.stopPropagation(),p({edgeId:H.id,mode:"redirect",relinkSolid:!1,anchorPosition:{top:W.clientY,left:W.clientX}}))},[]),ee=F.useCallback((W,H)=>{C(H.id),x(H.data?.nodeLabel??"");const Y=Ao(H.data.nodeMetaData);E(H.type==="multiChoice"?{...Y,choiceCount:No(Y)}:Y),v(!0)},[]),te=F.useMemo(()=>b?_(b):void 0,[_,b]),J=F.useMemo(()=>{const W=te?.data?.kind;if(!(!W||W==="start"||W==="end"))return r.get(W)},[r,te]),K=F.useCallback(()=>{if(!b)return;const H=i.find(se=>se.id===b)?.type==="multiChoice",Y=Ao(w),oe=No(Y);s(se=>se.map(ie=>ie.id===b?{...ie,data:{...ie.data??{label:""},nodeLabel:y,nodeMetaData:ie.type==="multiChoice"?{...Y,choiceCount:oe}:Y}}:ie)),H&&(O.current={nodeId:b,nextCount:oe}),v(!1),queueMicrotask(()=>k())},[b,y,w,i,s,k]),Q=F.useCallback(()=>p(null),[]),Z=F.useCallback(()=>{m.current=!0},[]),ne=F.useCallback(()=>{m.current=!1,g.current&&(g.current=!1,k())},[k]),B=F.useCallback((W,H)=>{p(Y=>Y&&{...Y,mode:W,relinkSolid:H??Y.relinkSolid})},[]);return T.jsxs(br,{sx:{width:"100%",height:"88vh",border:"1px solid #ddd",borderRadius:2,position:"relative",overflow:"hidden",bgcolor:"white"},children:[T.jsxs(gt,{direction:"row",spacing:1,sx:{p:1.25,borderBottom:"1px solid #eee",alignItems:"center"},children:[T.jsx(Un,{variant:"outlined",size:"small",onClick:S,children:"Export JSON"}),T.jsx(Un,{variant:"outlined",size:"small",onClick:j,children:"Import JSON"}),T.jsx(Un,{variant:"contained",size:"small",onClick:()=>k({fit:!0}),children:"Auto layout"}),T.jsx(tt,{sx:{ml:"auto",fontSize:12,opacity:.75},children:"Redirect edge delete ⇒ restores solid + asks relink"})]}),T.jsx(ER,{menu:f,onClose:Q,definitions:e,onChooseKind:(W,H)=>P(W,H),redirectCandidates:G,onChooseRedirectTarget:(W,H,Y)=>L(W,H,{makeRedirect:Y}),onSwitchMode:B}),T.jsxs(Cw,{nodes:i,edges:U,onNodesChange:$,onEdgesChange:z,nodeTypes:TR,edgeTypes:NR,fitView:!0,isValidConnection:N,onBeforeDelete:M,onReconnect:D,onEdgeClick:q,onNodeClick:ee,onNodeDragStart:Z,onNodeDragStop:ne,defaultEdgeOptions:{markerEnd:{type:Go.Arrow,width:12,height:12}},children:[T.jsx(Uw,{}),T.jsx(Lw,{})]}),T.jsx(CR,{open:h,onClose:()=>v(!1),selectedNode:te,selectedDefinition:J,nodeLabel:y,setNodeLabel:x,nodeMetaData:w,setNodeMetaData:E,onSave:K})]})}function kR({nodeDefinitions:e,extendNodeDefinitions:t=[]}){const n=F.useMemo(()=>e||Hh(po,t),[e,t]);return T.jsx(dp,{children:T.jsx(_R,{nodeDefinitions:n})})}exports.CATEGORIES=QO;exports.DEFAULT_MULTI_CHOICE_COUNT=fo;exports.DEFAULT_NODE_DEFINITIONS=po;exports.END_ID=Qe;exports.FlowEditor=kR;exports.NODE_DEFINITIONS=ZO;exports.START_END_ICON=ro;exports.START_ID=Ct;exports.createNodeDefinitionMap=ps;exports.groupDefinitions=Wh;exports.kindToNodeType=JO;exports.mergeNodeDefinitions=Hh;
package/dist/index.js CHANGED
@@ -24901,7 +24901,9 @@ function V_(e) {
24901
24901
  if (!e || typeof e != "object" || Array.isArray(e))
24902
24902
  return {};
24903
24903
  const t = {};
24904
- for (const [n, o] of Object.entries(e))
24904
+ for (const [n, o] of Object.entries(
24905
+ e
24906
+ ))
24905
24907
  typeof o != "string" || !o || (t[n] = o);
24906
24908
  return t;
24907
24909
  }
@@ -24954,13 +24956,17 @@ function j_({
24954
24956
  s((j) => {
24955
24957
  const H = new Set(j.map((se) => se.id)), U = /* @__PURE__ */ new Map(), ne = /* @__PURE__ */ new Map();
24956
24958
  for (const se of l) {
24957
- if (!H.has(se.source) || !H.has(se.target)) continue;
24959
+ if (!H.has(se.source) || !H.has(se.target))
24960
+ continue;
24958
24961
  const fe = z_(se.sourceHandle), ue = ne.get(se.source) ?? {};
24959
24962
  ue[fe] = se.target, ne.set(se.source, ue), U.has(se.target) || U.set(se.target, se.source);
24960
24963
  }
24961
24964
  let ie = !1;
24962
24965
  const re = j.map((se) => {
24963
- const fe = U.get(se.id), ue = ne.get(se.id) ?? {}, oe = V_(se.data.childNodeIds), me = se.data.parentNodeId === fe, Ee = H_(oe, ue);
24966
+ const fe = U.get(se.id), ue = ne.get(se.id) ?? {}, oe = V_(se.data.childNodeIds), me = se.data.parentNodeId === fe, Ee = H_(
24967
+ oe,
24968
+ ue
24969
+ );
24964
24970
  return me && Ee ? se : (ie = !0, {
24965
24971
  ...se,
24966
24972
  data: {
@@ -24982,7 +24988,10 @@ function j_({
24982
24988
  if (H.id === Wt || H.id === st)
24983
24989
  return {
24984
24990
  ...H,
24985
- data: { ...ne, icon: H.data.icon ?? ur }
24991
+ data: {
24992
+ ...ne,
24993
+ icon: H.data.icon ?? ur
24994
+ }
24986
24995
  };
24987
24996
  const ie = H.data.kind;
24988
24997
  if (ie && ie !== "start" && ie !== "end" && !H.data.icon) {
@@ -25435,7 +25444,7 @@ function j_({
25435
25444
  Tr,
25436
25445
  {
25437
25446
  sx: {
25438
- width: "100vw",
25447
+ width: "100%",
25439
25448
  height: "88vh",
25440
25449
  border: "1px solid #ddd",
25441
25450
  borderRadius: 2,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "journey-flow-editor",
3
3
  "private": false,
4
- "version": "0.0.7",
4
+ "version": "0.0.8",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
7
7
  "module": "./dist/index.js",