journey-flow-editor 0.0.23 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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:s.shape({horizontal:s.oneOfType([s.oneOf(["center","left","right"]),s.number]).isRequired,vertical:s.oneOfType([s.oneOf(["bottom","center","top"]),s.number]).isRequired}),anchorPosition:s.shape({left:s.number.isRequired,top:s.number.isRequired}),anchorReference:s.oneOf(["anchorEl","anchorPosition","none"]),BackdropComponent:s.elementType,BackdropProps:s.object,children:s.node,classes:s.object,className:s.string,container:s.oneOfType([co,s.func]),disableScrollLock:s.bool,elevation:Tl,marginThreshold:s.number,onClose:s.func,open:s.bool.isRequired,PaperProps:s.shape({component:El}),slotProps:s.shape({backdrop:s.oneOfType([s.func,s.object]),paper:s.oneOfType([s.func,s.object]),root:s.oneOfType([s.func,s.object]),transition:s.oneOfType([s.func,s.object])}),slots:s.shape({backdrop:s.elementType,paper:s.elementType,root:s.elementType,transition:s.elementType}),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),transformOrigin:s.shape({horizontal:s.oneOfType([s.oneOf(["center","left","right"]),s.number]).isRequired,vertical:s.oneOfType([s.oneOf(["bottom","center","top"]),s.number]).isRequired}),TransitionComponent:s.elementType,transitionDuration:s.oneOfType([s.oneOf(["auto"]),s.number,s.shape({appear:s.number,enter:s.number,exit:s.number})]),TransitionProps:s.object});function Mk(e){return ke("MuiMenu",e)}Oe("MuiMenu",["root","paper","list"]);const $k={vertical:"top",horizontal:"right"},Ak={vertical:"top",horizontal:"left"},Dk=e=>{const{classes:t}=e;return Pe({root:["root"],paper:["paper"],list:["list"]},Mk,t)},jk=le(qh,{shouldForwardProp:e=>pt(e)||e==="classes",name:"MuiMenu",slot:"Root"})({}),Lk=le(Uh,{name:"MuiMenu",slot:"Paper"})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),Fk=le(Wh,{name:"MuiMenu",slot:"List"})({outline:0}),Pl=A.forwardRef(function(t,n){const o=Ie({props:t,name:"MuiMenu"}),{autoFocus:r=!0,children:i,className:a,disableAutoFocusItem:l=!1,MenuListProps:c={},onClose:u,open:d,PaperProps:f={},PopoverClasses:p,transitionDuration:h="auto",TransitionProps:{onEntering:m,...g}={},variant:v="selectedMenu",slots:b={},slotProps:C={},...y}=o,x=eh(),w={...o,autoFocus:r,disableAutoFocusItem:l,MenuListProps:c,onEntering:m,PaperProps:f,transitionDuration:h,TransitionProps:g,variant:v},E=Dk(w),k=r&&!l&&d,R=A.useRef(null),_=(j,$)=>{R.current&&R.current.adjustStyleForScrollbar(j,{direction:x?"rtl":"ltr"}),m&&m(j,$)},V=j=>{j.key==="Tab"&&(j.preventDefault(),u&&u(j,"tabKeyDown"))};let I=-1;A.Children.map(i,(j,$)=>{A.isValidElement(j)&&(process.env.NODE_ENV!=="production"&&Rn.isFragment(j)&&console.error(["MUI: The Menu component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(`
157
157
  `)),j.props.disabled||(v==="selectedMenu"&&j.props.selected||I===-1)&&(I=$))});const S={slots:b,slotProps:{list:c,transition:g,paper:f,...C}},D=WT({elementType:b.root,externalSlotProps:C.root,ownerState:w,className:[E.root,a]}),[N,P]=ze("paper",{className:E.paper,elementType:Lk,externalForwardedProps:S,shouldForwardComponentProp:!0,ownerState:w}),[O,L]=ze("list",{className:ye(E.list,c.className),elementType:Fk,shouldForwardComponentProp:!0,externalForwardedProps:S,getSlotProps:j=>({...j,onKeyDown:$=>{V($),j.onKeyDown?.($)}}),ownerState:w}),M=typeof S.slotProps.transition=="function"?S.slotProps.transition(w):S.slotProps.transition;return T.jsx(jk,{onClose:u,anchorOrigin:{vertical:"bottom",horizontal:x?"right":"left"},transformOrigin:x?$k:Ak,slots:{root:b.root,paper:N,backdrop:b.backdrop,...b.transition&&{transition:b.transition}},slotProps:{root:D,paper:P,backdrop:typeof C.backdrop=="function"?C.backdrop(w):C.backdrop,transition:{...M,onEntering:(...j)=>{_(...j),M?.onEntering?.(...j)}}},open:d,ref:n,transitionDuration:h,ownerState:w,...y,classes:p,children:T.jsx(O,{actions:R,autoFocus:r&&(I===-1||l),autoFocusItem:k,variant:v,...L,children:i})})});process.env.NODE_ENV!=="production"&&(Pl.propTypes={anchorEl:s.oneOfType([co,s.func]),autoFocus:s.bool,children:s.node,classes:s.object,className:s.string,disableAutoFocusItem:s.bool,MenuListProps:s.object,onClose:s.func,open:s.bool.isRequired,PaperProps:s.object,PopoverClasses:s.object,slotProps:s.shape({backdrop:s.oneOfType([s.func,s.object]),list:s.oneOfType([s.func,s.object]),paper:s.oneOfType([s.func,s.object]),root:s.oneOfType([s.func,s.object]),transition:s.oneOfType([s.func,s.object])}),slots:s.shape({backdrop:s.elementType,list:s.elementType,paper:s.elementType,root:s.elementType,transition:s.elementType}),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),transitionDuration:s.oneOfType([s.oneOf(["auto"]),s.number,s.shape({appear:s.number,enter:s.number,exit:s.number})]),TransitionProps:s.object,variant:s.oneOf(["menu","selectedMenu"])});function Bk(e){return ke("MuiMenuItem",e)}const ko=Oe("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),zk=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},Vk=e=>{const{disabled:t,dense:n,divider:o,disableGutters:r,selected:i,classes:a}=e,c=Pe({root:["root",n&&"dense",t&&"disabled",!r&&"gutters",o&&"divider",i&&"selected"]},Bk,a);return{...a,...c}},Hk=le(as,{shouldForwardProp:e=>pt(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:zk})(Ne(({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"}},[`&.${ko.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${ko.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${ko.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)}},[`&.${ko.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${ko.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${ad.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${ad.inset}`]:{marginLeft:52},[`& .${Gn.root}`]:{marginTop:0,marginBottom:0},[`& .${Gn.inset}`]:{paddingLeft:36},[`& .${ud.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,[`& .${ud.root} svg`]:{fontSize:"1.25rem"}}}]}))),Nt=A.forwardRef(function(t,n){const o=Ie({props:t,name:"MuiMenuItem"}),{autoFocus:r=!1,component:i="li",dense:a=!1,divider:l=!1,disableGutters:c=!1,focusVisibleClassName:u,role:d="menuitem",tabIndex:f,className:p,...h}=o,m=A.useContext(fo),g=A.useMemo(()=>({dense:a||m.dense||!1,disableGutters:c}),[m.dense,a,c]),v=A.useRef(null);an(()=>{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:g.dense,divider:l,disableGutters:c},C=Vk(o),y=st(v,n);let x;return o.disabled||(x=f!==void 0?f:-1),T.jsx(fo.Provider,{value:g,children:T.jsx(Hk,{ref:y,role:d,tabIndex:x,component:i,focusVisibleClassName:ye(C.focusVisible,u),className:ye(C.root,p),...h,ownerState:b,classes:C})})});process.env.NODE_ENV!=="production"&&(Nt.propTypes={autoFocus:s.bool,children:s.node,classes:s.object,className:s.string,component:s.elementType,dense:s.bool,disabled:s.bool,disableGutters:s.bool,divider:s.bool,focusVisibleClassName:s.string,role:s.string,selected:s.bool,sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),tabIndex:s.number});function Wk(e){return ke("MuiNativeSelect",e)}const Rl=Oe("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),Uk=e=>{const{classes:t,variant:n,disabled:o,multiple:r,open:i,error:a}=e,l={select:["select",n,o&&"disabled",r&&"multiple",a&&"error"],icon:["icon",`icon${ge(n)}`,i&&"iconOpen",o&&"disabled"]};return Pe(l,Wk,t)},Yh=le("select",{name:"MuiNativeSelect"})(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${Rl.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}}}]})),qk=le(Yh,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:pt,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${Rl.multiple}`]:t.multiple}]}})({}),Gh=le("svg",{name:"MuiNativeSelect"})(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${Rl.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}}]})),Yk=le(Gh,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ge(n.variant)}`],n.open&&t.iconOpen]}})({}),Kh=A.forwardRef(function(t,n){const{className:o,disabled:r,error:i,IconComponent:a,inputRef:l,variant:c="standard",...u}=t,d={...t,disabled:r,variant:c,error:i},f=Uk(d);return T.jsxs(A.Fragment,{children:[T.jsx(qk,{ownerState:d,className:ye(f.select,o),disabled:r,ref:l||n,...u}),t.multiple?null:T.jsx(Yk,{as:a,ownerState:d,className:f.icon})]})});process.env.NODE_ENV!=="production"&&(Kh.propTypes={children:s.node,classes:s.object,className:s.string,disabled:s.bool,error:s.bool,IconComponent:s.elementType.isRequired,inputRef:St,multiple:s.bool,name:s.string,onChange:s.func,value:s.any,variant:s.oneOf(["standard","outlined","filled"])});var md;const Gk=le("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%"}),Kk=le("legend",{name:"MuiNotchedOutlined",shouldForwardProp:pt})(Ne(({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 Xh(e){const{children:t,classes:n,className:o,label:r,notched:i,...a}=e,l=r!=null&&r!=="",c={...e,notched:i,withLabel:l};return T.jsx(Gk,{"aria-hidden":!0,className:o,ownerState:c,...a,children:T.jsx(Kk,{ownerState:c,children:l?T.jsx("span",{children:r}):md||(md=T.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"}))})})}process.env.NODE_ENV!=="production"&&(Xh.propTypes={children:s.node,classes:s.object,className:s.string,label:s.node,notched:s.bool.isRequired,style:s.object});const Xk=e=>{const{classes:t}=e,o=Pe({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},tN,t);return{...t,...o}},Zk=le(ds,{shouldForwardProp:e=>pt(e)||e==="classes",name:"MuiOutlinedInput",slot:"Root",overridesResolver:cs})(Ne(({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 .${Dt.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${Dt.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${Dt.focused} .${Dt.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(un()).map(([n])=>({props:{color:n},style:{[`&.${Dt.focused} .${Dt.notchedOutline}`]:{borderColor:(e.vars||e).palette[n].main}}})),{props:{},style:{[`&.${Dt.error} .${Dt.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${Dt.disabled} .${Dt.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"}}]}})),Qk=le(Xh,{name:"MuiOutlinedInput",slot:"NotchedOutline"})(Ne(({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}})),Jk=le(fs,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:us})(Ne(({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}}]}))),ys=A.forwardRef(function(t,n){const o=Ie({props:t,name:"MuiOutlinedInput"}),{components:r={},fullWidth:i=!1,inputComponent:a="input",label:l,multiline:c=!1,notched:u,slots:d={},slotProps:f={},type:p="text",...h}=o,m=Xk(o),g=dn(),v=$n({props:o,muiFormControl:g,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),b={...o,color:v.color||"primary",disabled:v.disabled,error:v.error,focused:v.focused,formControl:g,fullWidth:i,hiddenLabel:v.hiddenLabel,multiline:c,size:v.size,type:p},C=d.root??r.Root??Zk,y=d.input??r.Input??Jk,[x,w]=ze("notchedOutline",{elementType:Qk,className:m.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(ps,{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:a,multiline:c,ref:n,type:p,...h,classes:{...m,notchedOutline:null}})});process.env.NODE_ENV!=="production"&&(ys.propTypes={autoComplete:s.string,autoFocus:s.bool,classes:s.object,color:s.oneOfType([s.oneOf(["primary","secondary"]),s.string]),components:s.shape({Input:s.elementType,Root:s.elementType}),defaultValue:s.any,disabled:s.bool,endAdornment:s.node,error:s.bool,fullWidth:s.bool,id:s.string,inputComponent:s.elementType,inputProps:s.object,inputRef:St,label:s.node,margin:s.oneOf(["dense","none"]),maxRows:s.oneOfType([s.number,s.string]),minRows:s.oneOfType([s.number,s.string]),multiline:s.bool,name:s.string,notched:s.bool,onChange:s.func,placeholder:s.string,readOnly:s.bool,required:s.bool,rows:s.oneOfType([s.number,s.string]),slotProps:s.shape({input:s.object,notchedOutline:s.oneOfType([s.func,s.object]),root:s.object}),slots:s.shape({input:s.elementType,notchedOutline:s.elementType,root:s.elementType}),startAdornment:s.node,sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),type:s.string,value:s.any});ys.muiName="Input";function Zh(e){return ke("MuiSelect",e)}const Oo=Oe("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]);var gd;const eO=le(Yh,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${Oo.select}`]:t.select},{[`&.${Oo.select}`]:t[n.variant]},{[`&.${Oo.error}`]:t.error},{[`&.${Oo.multiple}`]:t.multiple}]}})({[`&.${Oo.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),tO=le(Gh,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${ge(n.variant)}`],n.open&&t.iconOpen]}})({}),nO=le("input",{shouldForwardProp:e=>lh(e)&&e!=="classes",name:"MuiSelect",slot:"NativeInput"})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function yd(e,t){return typeof t=="object"&&t!==null?e===t:String(e)===String(t)}function oO(e){return e==null||typeof e=="string"&&!e.trim()}const rO=e=>{const{classes:t,variant:n,disabled:o,multiple:r,open:i,error:a}=e,l={select:["select",n,o&&"disabled",r&&"multiple",a&&"error"],icon:["icon",`icon${ge(n)}`,i&&"iconOpen",o&&"disabled"],nativeInput:["nativeInput"]};return Pe(l,Zh,t)},Qh=A.forwardRef(function(t,n){const{"aria-describedby":o,"aria-label":r,autoFocus:i,autoWidth:a,children:l,className:c,defaultOpen:u,defaultValue:d,disabled:f,displayEmpty:p,error:h=!1,IconComponent:m,inputRef:g,labelId:v,MenuProps:b={},multiple:C,name:y,onBlur:x,onChange:w,onClose:E,onFocus:k,onKeyDown:R,onMouseDown:_,onOpen:V,open:I,readOnly:S,renderValue:D,required:N,SelectDisplayProps:P={},tabIndex:O,type:L,value:M,variant:j="standard",...$}=t,[z,H]=Ea({controlled:M,default:d,name:"Select"}),[U,W]=Ea({controlled:I,default:u,name:"Select"}),G=A.useRef(null),J=A.useRef(null),[te,q]=A.useState(null),{current:ee}=A.useRef(I!=null),[Q,oe]=A.useState(),B=st(n,g),ie=A.useCallback(ce=>{J.current=ce,ce&&q(ce)},[]),re=te?.parentNode;A.useImperativeHandle(B,()=>({focus:()=>{J.current.focus()},node:G.current,value:z}),[z]);const ue=te!==null&&U;A.useEffect(()=>{if(!ue||!re||a||typeof ResizeObserver>"u")return;const ce=new ResizeObserver(()=>{oe(re.clientWidth)});return ce.observe(re),()=>{ce.disconnect()}},[ue,re,a]),A.useEffect(()=>{u&&U&&te&&!ee&&(oe(a?null:re.clientWidth),J.current.focus())},[te,a]),A.useEffect(()=>{i&&J.current.focus()},[i]),A.useEffect(()=>{if(!v)return;const ce=_t(J.current).getElementById(v);if(ce){const Ee=()=>{getSelection().isCollapsed&&J.current.focus()};return ce.addEventListener("click",Ee),()=>{ce.removeEventListener("click",Ee)}}},[v]);const xe=(ce,Ee)=>{ce?V&&V(Ee):E&&E(Ee),ee||(oe(a?null:re.clientWidth),W(ce))},Te=ce=>{_?.(ce),ce.button===0&&(ce.preventDefault(),J.current.focus(),xe(!0,ce))},je=ce=>{xe(!1,ce)},K=A.Children.toArray(l),Z=ce=>{const Ee=K.find(Ke=>Ke.props.value===ce.target.value);Ee!==void 0&&(H(Ee.props.value),w&&w(ce,Ee))},ne=ce=>Ee=>{let Ke;if(Ee.currentTarget.hasAttribute("tabindex")){if(C){Ke=Array.isArray(z)?z.slice():[];const Jt=z.indexOf(ce.props.value);Jt===-1?Ke.push(ce.props.value):Ke.splice(Jt,1)}else Ke=ce.props.value;if(ce.props.onClick&&ce.props.onClick(Ee),z!==Ke&&(H(Ke),w)){const Jt=Ee.nativeEvent||Ee,Tr=new Jt.constructor(Jt.type,Jt);Object.defineProperty(Tr,"target",{writable:!0,value:{value:Ke,name:y}}),w(Tr,ce)}C||xe(!1,Ee)}},X=ce=>{S||([" ","ArrowUp","ArrowDown","Enter"].includes(ce.key)&&(ce.preventDefault(),xe(!0,ce)),R?.(ce))},pe=ce=>{!ue&&x&&(Object.defineProperty(ce,"target",{writable:!0,value:{value:z,name:y}}),x(ce))};delete $["aria-invalid"];let se,ae;const he=[];let me=!1,fe=!1;(Ci({value:z})||p)&&(D?se=D(z):me=!0);const be=K.map(ce=>{if(!A.isValidElement(ce))return null;process.env.NODE_ENV!=="production"&&Rn.isFragment(ce)&&console.error(["MUI: The Select component doesn't accept a Fragment as a child.","Consider providing an array instead."].join(`
158
158
  `));let Ee;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`.":Zt(2));Ee=z.some(Ke=>yd(Ke,ce.props.value)),Ee&&me&&he.push(ce.props.children)}else Ee=yd(z,ce.props.value),Ee&&me&&(ae=ce.props.children);return Ee&&(fe=!0),A.cloneElement(ce,{"aria-selected":Ee?"true":"false",onClick:ne(ce),onKeyUp:Ke=>{Ke.key===" "&&Ke.preventDefault(),ce.props.onKeyUp&&ce.props.onKeyUp(Ke)},role:"option",selected:Ee,value:void 0,"data-value":ce.props.value})});process.env.NODE_ENV!=="production"&&A.useEffect(()=>{if(!fe&&!C&&z!==""){const ce=K.map(Ee=>Ee.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 ${ce.filter(Ee=>Ee!=null).map(Ee=>`\`${Ee}\``).join(", ")||'""'}.`].join(`
159
- `))}},[fe,K,C,y,z]),me&&(C?he.length===0?se=null:se=he.reduce((ce,Ee,Ke)=>(ce.push(Ee),Ke<he.length-1&&ce.push(", "),ce),[]):se=ae);let We=Q;!a&&ee&&te&&(We=re.clientWidth);let we;typeof O<"u"?we=O:we=f?null:0;const Le=P.id||(y?`mui-component-select-${y}`:void 0),ve={...t,variant:j,value:z,open:ue,error:h},Se=rO(ve),Je={...b.PaperProps,...typeof b.slotProps?.paper=="function"?b.slotProps.paper(ve):b.slotProps?.paper},Et={...b.MenuListProps,...typeof b.slotProps?.list=="function"?b.slotProps.list(ve):b.slotProps?.list},An=gl();return T.jsxs(A.Fragment,{children:[T.jsx(eO,{as:"div",ref:ie,tabIndex:we,role:"combobox","aria-controls":ue?An:void 0,"aria-disabled":f?"true":void 0,"aria-expanded":ue?"true":"false","aria-haspopup":"listbox","aria-label":r,"aria-labelledby":[v,Le].filter(Boolean).join(" ")||void 0,"aria-describedby":o,"aria-required":N?"true":void 0,"aria-invalid":h?"true":void 0,onKeyDown:X,onMouseDown:f||S?null:Te,onBlur:pe,onFocus:k,...P,ownerState:ve,className:ye(P.className,Se.select,c),id:Le,children:oO(se)?gd||(gd=T.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):se}),T.jsx(nO,{"aria-invalid":h,value:Array.isArray(z)?z.join(","):z,name:y,ref:G,"aria-hidden":!0,onChange:Z,tabIndex:-1,disabled:f,className:Se.nativeInput,autoFocus:i,required:N,...$,ownerState:ve}),T.jsx(tO,{as:m,className:Se.icon,ownerState:ve}),T.jsx(Pl,{id:`menu-${y||""}`,anchorEl:re,open:ue,onClose:je,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:An,...Et},paper:{...Je,style:{minWidth:We,...Je!=null?Je.style:null}}},children:be})]})});process.env.NODE_ENV!=="production"&&(Qh.propTypes={"aria-describedby":s.string,"aria-label":s.string,autoFocus:s.bool,autoWidth:s.bool,children:s.node,classes:s.object,className:s.string,defaultOpen:s.bool,defaultValue:s.any,disabled:s.bool,displayEmpty:s.bool,error:s.bool,IconComponent:s.elementType.isRequired,inputRef:St,labelId:s.string,MenuProps:s.object,multiple:s.bool,name:s.string,onBlur:s.func,onChange:s.func,onClose:s.func,onFocus:s.func,onOpen:s.func,open:s.bool,readOnly:s.bool,renderValue:s.func,required:s.bool,SelectDisplayProps:s.object,tabIndex:s.oneOfType([s.number,s.string]),type:s.any,value:s.any,variant:s.oneOf(["standard","outlined","filled"])});const iO=e=>{const{classes:t}=e,o=Pe({root:["root"]},Zh,t);return{...t,...o}},_l={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>pt(e)&&e!=="variant"},sO=le(gs,_l)(""),aO=le(ys,_l)(""),lO=le(ms,_l)(""),lr=A.forwardRef(function(t,n){const o=Ie({name:"MuiSelect",props:t}),{autoWidth:r=!1,children:i,classes:a={},className:l,defaultOpen:c=!1,displayEmpty:u=!1,IconComponent:d=oN,id:f,input:p,inputProps:h,label:m,labelId:g,MenuProps:v,multiple:b=!1,native:C=!1,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:k,variant:R="outlined",..._}=o,V=C?Kh:Qh,I=dn(),S=$n({props:o,muiFormControl:I,states:["variant","error"]}),D=S.variant||R,N={...o,variant:D,classes:a},P=iO(N),{root:O,...L}=P,M=p||{standard:T.jsx(sO,{ownerState:N}),outlined:T.jsx(aO,{label:m,ownerState:N}),filled:T.jsx(lO,{ownerState:N})}[D],j=st(n,mo(M));return T.jsx(A.Fragment,{children:A.cloneElement(M,{inputComponent:V,inputProps:{children:i,error:S.error,IconComponent:d,variant:D,type:void 0,multiple:b,...C?{id:f}:{autoWidth:r,defaultOpen:c,displayEmpty:u,labelId:g,MenuProps:v,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:{id:f,...k}},...h,classes:h?ot(L,h.classes):L,...p?p.props.inputProps:{}},...(b&&C||u)&&D==="outlined"?{notched:!0}:{},ref:j,className:ye(M.props.className,l,P.root),...!p&&{variant:D},..._})})});process.env.NODE_ENV!=="production"&&(lr.propTypes={autoWidth:s.bool,children:s.node,classes:s.object,className:s.string,defaultOpen:s.bool,defaultValue:s.any,displayEmpty:s.bool,IconComponent:s.elementType,id:s.string,input:s.element,inputProps:s.object,label:s.node,labelId:s.string,MenuProps:s.object,multiple:s.bool,native:s.bool,onChange:s.func,onClose:s.func,onOpen:s.func,open:s.bool,renderValue:s.func,SelectDisplayProps:s.object,sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),value:s.oneOfType([s.oneOf([""]),s.any]),variant:s.oneOf(["filled","outlined","standard"])});lr.muiName="Select";const ut=m1({createStyledComponent:le("div",{name:"MuiStack",slot:"Root"}),useThemeProps:e=>Ie({props:e,name:"MuiStack"})});process.env.NODE_ENV!=="production"&&(ut.propTypes={children:s.node,component:s.elementType,direction:s.oneOfType([s.oneOf(["column-reverse","column","row-reverse","row"]),s.arrayOf(s.oneOf(["column-reverse","column","row-reverse","row"])),s.object]),divider:s.node,spacing:s.oneOfType([s.arrayOf(s.oneOfType([s.number,s.string])),s.number,s.object,s.string]),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),useFlexGap:s.bool});function cO(e){return ke("MuiSwitch",e)}const at=Oe("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),uO=e=>{const{classes:t,edge:n,size:o,color:r,checked:i,disabled:a}=e,l={root:["root",n&&`edge${ge(n)}`,`size${ge(o)}`],switchBase:["switchBase",`color${ge(r)}`,i&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},c=Pe(l,cO,t);return{...t,...c}},dO=le("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${ge(n.edge)}`],t[`size${ge(n.size)}`]]}})({display:"inline-flex",width:58,height:38,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${at.thumb}`]:{width:16,height:16},[`& .${at.switchBase}`]:{padding:4,[`&.${at.checked}`]:{transform:"translateX(16px)"}}}}]}),fO=le(_h,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${at.input}`]:t.input},n.color!=="default"&&t[`color${ge(n.color)}`]]}})(Ne(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${e.palette.mode==="light"?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${at.checked}`]:{transform:"translateX(20px)"},[`&.${at.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${e.palette.mode==="light"?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${at.checked} + .${at.track}`]:{opacity:.5},[`&.${at.disabled} + .${at.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:`${e.palette.mode==="light"?.12:.2}`},[`& .${at.input}`]:{left:"-100%",width:"300%"}})),Ne(({theme:e})=>({"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(un(["light"])).map(([t])=>({props:{color:t},style:{[`&.${at.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${at.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${e.palette.mode==="light"?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.55)}`}},[`&.${at.checked} + .${at.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),pO=le("span",{name:"MuiSwitch",slot:"Track"})(Ne(({theme:e})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),backgroundColor:e.vars?e.vars.palette.common.onBackground:`${e.palette.mode==="light"?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:`${e.palette.mode==="light"?.38:.3}`}))),hO=le("span",{name:"MuiSwitch",slot:"Thumb"})(Ne(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),Jh=A.forwardRef(function(t,n){const o=Ie({props:t,name:"MuiSwitch"}),{className:r,color:i="primary",edge:a=!1,size:l="medium",sx:c,slots:u={},slotProps:d={},...f}=o,p={...o,color:i,edge:a,size:l},h=uO(p),m={slots:u,slotProps:d},[g,v]=ze("root",{className:ye(h.root,r),elementType:dO,externalForwardedProps:m,ownerState:p,additionalProps:{sx:c}}),[b,C]=ze("thumb",{className:h.thumb,elementType:hO,externalForwardedProps:m,ownerState:p}),y=T.jsx(b,{...C}),[x,w]=ze("track",{className:h.track,elementType:pO,externalForwardedProps:m,ownerState:p});return T.jsxs(g,{...v,children:[T.jsx(fO,{type:"checkbox",icon:y,checkedIcon:y,ref:n,ownerState:p,...f,classes:{...h,root:h.switchBase},slots:{...u.switchBase&&{root:u.switchBase},...u.input&&{input:u.input}},slotProps:{...d.switchBase&&{root:typeof d.switchBase=="function"?d.switchBase(p):d.switchBase},input:{role:"switch"},...d.input&&{input:typeof d.input=="function"?d.input(p):d.input}}}),T.jsx(x,{...w})]})});process.env.NODE_ENV!=="production"&&(Jh.propTypes={checked:s.bool,checkedIcon:s.node,classes:s.object,className:s.string,color:s.oneOfType([s.oneOf(["default","primary","secondary","error","info","success","warning"]),s.string]),defaultChecked:s.bool,disabled:s.bool,disableRipple:s.bool,edge:s.oneOf(["end","start",!1]),icon:s.node,id:s.string,inputProps:s.object,inputRef:St,onChange:s.func,required:s.bool,size:s.oneOfType([s.oneOf(["medium","small"]),s.string]),slotProps:s.shape({input:s.oneOfType([s.func,s.object]),root:s.oneOfType([s.func,s.object]),switchBase:s.oneOfType([s.func,s.object]),thumb:s.oneOfType([s.func,s.object]),track:s.oneOfType([s.func,s.object])}),slots:s.shape({input:s.elementType,root:s.elementType,switchBase:s.elementType,thumb:s.elementType,track:s.elementType}),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),value:s.any});function mO(e){return ke("MuiTextField",e)}Oe("MuiTextField",["root"]);const gO={standard:gs,filled:ms,outlined:ys},yO=e=>{const{classes:t}=e;return Pe({root:["root"]},mO,t)},bO=le(Ni,{name:"MuiTextField",slot:"Root"})({}),Vt=A.forwardRef(function(t,n){const o=Ie({props:t,name:"MuiTextField"}),{autoComplete:r,autoFocus:i=!1,children:a,className:l,color:c="primary",defaultValue:u,disabled:d=!1,error:f=!1,FormHelperTextProps:p,fullWidth:h=!1,helperText:m,id:g,InputLabelProps:v,inputProps:b,InputProps:C,inputRef:y,label:x,maxRows:w,minRows:E,multiline:k=!1,name:R,onBlur:_,onChange:V,onFocus:I,placeholder:S,required:D=!1,rows:N,select:P=!1,SelectProps:O,slots:L={},slotProps:M={},type:j,value:$,variant:z="outlined",...H}=o,U={...o,autoFocus:i,color:c,disabled:d,error:f,fullWidth:h,multiline:k,required:D,select:P,variant:z},W=yO(U);process.env.NODE_ENV!=="production"&&P&&!a&&console.error("MUI: `children` must be passed when using the `TextField` component with `select`.");const G=gl(g),J=m&&G?`${G}-helper-text`:void 0,te=x&&G?`${G}-label`:void 0,q=gO[z],ee={slots:L,slotProps:{input:C,inputLabel:v,htmlInput:b,formHelperText:p,select:O,...M}},Q={},oe=ee.slotProps.inputLabel;z==="outlined"&&(oe&&typeof oe.shrink<"u"&&(Q.notched=oe.shrink),Q.label=x),P&&((!O||!O.native)&&(Q.id=void 0),Q["aria-describedby"]=void 0);const[B,ie]=ze("root",{elementType:bO,shouldForwardComponentProp:!0,externalForwardedProps:{...ee,...H},ownerState:U,className:ye(W.root,l),ref:n,additionalProps:{disabled:d,error:f,fullWidth:h,required:D,color:c,variant:z}}),[re,ue]=ze("input",{elementType:q,externalForwardedProps:ee,additionalProps:Q,ownerState:U}),[xe,Te]=ze("inputLabel",{elementType:Ol,externalForwardedProps:ee,ownerState:U}),[je,K]=ze("htmlInput",{elementType:"input",externalForwardedProps:ee,ownerState:U}),[Z,ne]=ze("formHelperText",{elementType:Fh,externalForwardedProps:ee,ownerState:U}),[X,pe]=ze("select",{elementType:lr,externalForwardedProps:ee,ownerState:U}),se=T.jsx(re,{"aria-describedby":J,autoComplete:r,autoFocus:i,defaultValue:u,fullWidth:h,multiline:k,name:R,rows:N,maxRows:w,minRows:E,type:j,value:$,id:G,inputRef:y,onBlur:_,onChange:V,onFocus:I,placeholder:S,inputProps:K,slots:{input:L.htmlInput?je:void 0},...ue});return T.jsxs(B,{...ie,children:[x!=null&&x!==""&&T.jsx(xe,{htmlFor:G,id:te,...Te,children:x}),P?T.jsx(X,{"aria-describedby":J,id:G,labelId:te,value:$,input:se,...pe,children:a}):se,m&&T.jsx(Z,{id:J,...ne,children:m})]})});process.env.NODE_ENV!=="production"&&(Vt.propTypes={autoComplete:s.string,autoFocus:s.bool,children:s.node,classes:s.object,className:s.string,color:s.oneOfType([s.oneOf(["primary","secondary","error","info","success","warning"]),s.string]),defaultValue:s.any,disabled:s.bool,error:s.bool,FormHelperTextProps:s.object,fullWidth:s.bool,helperText:s.node,id:s.string,InputLabelProps:s.object,inputProps:s.object,InputProps:s.object,inputRef:St,label:s.node,margin:s.oneOf(["dense","none","normal"]),maxRows:s.oneOfType([s.number,s.string]),minRows:s.oneOfType([s.number,s.string]),multiline:s.bool,name:s.string,onBlur:s.func,onChange:s.func,onFocus:s.func,placeholder:s.string,required:s.bool,rows:s.oneOfType([s.number,s.string]),select:s.bool,SelectProps:s.object,size:s.oneOfType([s.oneOf(["medium","small"]),s.string]),slotProps:s.shape({formHelperText:s.oneOfType([s.func,s.object]),htmlInput:s.oneOfType([s.func,s.object]),input:s.oneOfType([s.func,s.object]),inputLabel:s.oneOfType([s.func,s.object]),select:s.oneOfType([s.func,s.object])}),slots:s.shape({formHelperText:s.elementType,htmlInput:s.elementType,input:s.elementType,inputLabel:s.elementType,root:s.elementType,select:s.elementType}),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),type:s.string,value:s.any,variant:s.oneOf(["filled","outlined","standard"])});const Po=2,Zs=5;function jt({node:e,nodeLabel:t,setNodeLabel:n,nodeMetaData:o,setNodeMetaData:r}){const i=e.type==="multiChoice",a=o&&typeof o=="object"&&!Array.isArray(o)?o:{},l=typeof a.field1=="string"?a.field1:"",c=typeof a.field2=="string"?a.field2:"",u=typeof a.field3=="string"?a.field3:"",d=Math.min(Zs,Math.max(Po,Number(a.choiceCount)||Po));return T.jsxs(ut,{spacing:2,children:[T.jsx(Vt,{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(Vt,{label:"Number of choices (2–5)",type:"number",inputProps:{min:Po,max:Zs,step:1},value:d,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},choiceCount:Math.min(Zs,Math.max(Po,Number(f.target.value)||Po))})),fullWidth:!0,helperText:"Reducing prunes removed-branch subtrees (END preserved)."}),T.jsx(Vt,{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(Vt,{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(Vt,{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 vO({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:"",a=typeof r.body=="string"?r.body:"";return T.jsxs(ut,{spacing:2,children:[T.jsx(Vt,{label:"Node label",helperText:"Shown in the node body (under the divider)",value:e,onChange:l=>t(l.target.value),fullWidth:!0}),T.jsx(Vt,{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(Vt,{label:"Email body",value:a,onChange:l=>o(c=>({...c&&typeof c=="object"&&!Array.isArray(c)?c:{},body:l.target.value})),fullWidth:!0,multiline:!0,minRows:4})]})}function xO({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:"",a=r.hasTimeDependency!==!1,l=c=>{const u=c.target.value;o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},trackedEvent:u})),t(u)};return T.jsx(ut,{spacing:2,children:T.jsxs(Ni,{fullWidth:!0,children:[T.jsxs(ut,{children:[T.jsx(Ol,{id:"demo-simple-select-label",children:"Tracked Event"}),T.jsxs(lr,{labelId:"demo-simple-select-label",id:"demo-simple-select",value:i,label:"Tracked Event",onChange:l,children:[T.jsx(Nt,{value:"Class Booked",children:"Class Booked"}),T.jsx(Nt,{value:"Class Cancelled",children:"Class Cancelled"}),T.jsx(Nt,{value:"Class Rescheduled",children:"Class Rescheduled"})]}),T.jsx(nt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:"Select the event to wait for before proceeding."})]}),T.jsxs(ut,{sx:{mt:2},spacing:1,children:[T.jsx(Lh,{control:T.jsx(Jh,{checked:!a,onChange:c=>{const u=c.target.checked;o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},hasTimeDependency:!u}))}}),label:"No time dependency"}),!a&&T.jsx(nt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:'This node will only follow the "Yes / True" path.'})]}),a&&T.jsxs(ut,{sx:{mt:2},spacing:1,children:[T.jsx(nt,{variant:"subtitle2",children:'Wait time before "No / False" is triggered'}),T.jsxs(ut,{direction:"row",spacing:1,alignItems:"center",children:[T.jsx(Vt,{type:"number",value:r.waitTime??7,onChange:c=>{const u=parseInt(c.target.value,10);o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},waitTime:isNaN(u)?0:u}))},InputProps:{inputProps:{min:0}},sx:{width:100}}),T.jsx(Ni,{sx:{minWidth:120},children:T.jsxs(lr,{value:r.waitType??"days",onChange:c=>{const u=c.target.value;o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},waitType:u}))},children:[T.jsx(Nt,{value:"days",children:"Days"}),T.jsx(Nt,{value:"hours",children:"Hours"}),T.jsx(Nt,{value:"minutes",children:"Minutes"})]})})]}),T.jsx(nt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:'Specify how long to wait for the event before taking "No / False" action.'})]})]})})}const lt="start",Ge="end",yo="mingcute:entrance-fill",bo="mingcute:exit-fill",vo=2,bn=()=>({field1:"",field2:"",field3:""}),wO=()=>({trackedEvent:"",waitTime:7,waitType:"days",hasTimeDependency:!0}),SO=()=>({subject:"",body:""}),EO=()=>({...bn(),choiceCount:vo}),bd=()=>({}),xo=[{kind:"start",title:"Start",icon:yo,drawerFormComponent:jt,createInitialNodeMetaData:bd},{kind:"end",title:"Exit",icon:bo,drawerFormComponent:jt,createInitialNodeMetaData:bd},{kind:"email",title:"Email",category:"Send Message",nodeType:"action",icon:"streamline:send-email",drawerFormComponent:vO,createInitialNodeMetaData:SO},{kind:"sms",title:"SMS",category:"Send Message",nodeType:"action",icon:"fa-solid:sms",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"push",title:"Push Notification / Web Message",category:"Send Message",nodeType:"action",icon:"mdi:message-badge-outline",enabled:!1,drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"tag",title:"Tag Client",category:"Update",nodeType:"action",icon:"ph:tag",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"note",title:"Add Client Note",category:"Update",nodeType:"action",icon:"material-symbols-light:add-notes-outline",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"delay",title:"Delay",category:"Action",nodeType:"action",icon:"mdi:timer-sand-empty",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"smartFilter",title:"Smart Filter",category:"Event",nodeType:"conditional",icon:"tabler:filter",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"waitForEvent",title:"Tracked Event",category:"Event",nodeType:"conditional",icon:"codicon:github-action",drawerFormComponent:xO,createInitialNodeMetaData:wO},{kind:"multiChoice",title:"Multi Choice",category:"Event",nodeType:"multiChoice",icon:"tabler:list-numbers",drawerFormComponent:jt,createInitialNodeMetaData:EO}],CO=xo;function bs(e){return new Map(e.map(t=>[t.kind,t]))}function em(e){return!!e&&e.kind!=="start"&&e.kind!=="end"}function tm(e,t){if(t.length===0)return e;const n=bs(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 TO=["Send Message","Update","Action","Event"];function nm(e=xo){const t={"Send Message":[],Update:[],Action:[],Event:[]};for(const n of e)em(n)&&t[n.category].push(n);return t}function NO(e,t=xo){const n=bs(t).get(e);return em(n)?n.nodeType:"action"}const kO=[{id:lt,type:"start",position:{x:260,y:60},data:{label:"Start",nodeLabel:"",kind:"start",icon:yo,nodeMetaData:{}}},{id:Ge,type:"end",position:{x:260,y:520},data:{label:"Exit",nodeLabel:"",kind:"end",icon:bo,nodeMetaData:{}}}],OO=[{id:"e-start-out-end",type:"plusEdge",source:lt,sourceHandle:"out",target:Ge,targetHandle:"in",data:{kind:"default",isRedirect:!1}}],Il=150,PO=170,vd=Il,RO=24,_O=Il+RO;function xd(e){return Math.min(5,Math.max(2,Number(e.data.nodeMetaData?.choiceCount)||vo))}function wd(e,t){const n=new Map(e.map(p=>[p.id,p])),o=n.get(lt),r=n.get(Ge),i=o?.position.x??260,a=o?.position.y??60,l=t.filter(p=>!p.data?.isRedirect),c=new Map;for(const p of l){const h=c.get(p.source)??[];h.push(p),c.set(p.source,h)}const u=new Map,d=new Map;u.set(lt,0),d.set(lt,i);const f=[lt];for(;f.length;){const p=f.shift(),h=n.get(p);if(!h)continue;const m=u.get(p)??0,g=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=m+1;if(x!=null&&x<=m||!(x==null||w<x))continue;u.set(C,w);let k=g;if(h.type==="conditional"){const R=b.sourceHandle??"",_=R==="yes"?g-vd:R==="no"?g+vd:g;if(y.type==="multiChoice"&&(R==="yes"||R==="no")){const V=xd(y),I=Math.max(0,V-2)*Il;k=R==="yes"?_-I:_+I}else k=_}if(h.type==="multiChoice"){const _=(xd(h)-1)/2,V=/^c(\d)$/.exec(b.sourceHandle??""),S=(V?Number(V[1]):1)-1-_;k=g+S*_O}d.set(C,k),f.push(C)}}if(r){d.set(Ge,i);let p=0;for(const[h,m]of u.entries())h!==Ge&&(p=Math.max(p,m));u.set(Ge,p+1)}return e.map(p=>{const h=u.get(p.id),m=d.get(p.id);if(h==null||m==null)return p;const g=a+h*PO;return p.id===Ge?{...p,position:{x:i,y:g}}:{...p,position:{x:m,y:g}}})}function Sd(e){const{nodeId:t,removedHandles:n,nodes:o,edges:r}=e,i=new Map(o.map(b=>[b.id,b])),a=new Map,l=new Map;for(const b of r){const C=a.get(b.source)??[];C.push(b),a.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!==Ge&&b!==lt),f=new Set,p=[...d];for(;p.length;){const b=p.pop();if(b===Ge||b===lt||!i.has(b)||f.has(b))continue;f.add(b);const C=a.get(b)??[];for(const y of C)c(y)&&y.target!==Ge&&p.push(y.target)}const h=new Set;let m=!0;for(;m;){m=!1;for(const b of f){if(b===Ge||h.has(b))continue;(l.get(b)??[]).filter(c).filter(x=>!(x.source===t&&n.includes(x.sourceHandle??"")||h.has(x.source))).length===0&&(h.add(b),m=!0)}}if(h.size===0)return{nodes:o,edges:r};const g=o.filter(b=>!h.has(b.id)||b.id===Ge),v=r.filter(b=>!(h.has(b.source)||h.has(b.target)));return{nodes:g,edges:v}}function IO(e,t){const n=e.icons,o=e.aliases||Object.create(null),r=Object.create(null);function i(a){if(n[a])return r[a]=[];if(!(a in r)){r[a]=null;const l=o[a]&&o[a].parent,c=l&&i(l);c&&(r[a]=[l].concat(c))}return r[a]}return Object.keys(n).concat(Object.keys(o)).forEach(i),r}const om=Object.freeze({left:0,top:0,width:16,height:16}),Oi=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ml=Object.freeze({...om,...Oi}),_a=Object.freeze({...Ml,body:"",hidden:!1});function MO(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 Ed(e,t){const n=MO(e,t);for(const o in _a)o in Oi?o in e&&!(o in n)&&(n[o]=Oi[o]):o in t?n[o]=t[o]:o in e&&(n[o]=e[o]);return n}function $O(e,t,n){const o=e.icons,r=e.aliases||Object.create(null);let i={};function a(l){i=Ed(o[l]||r[l],i)}return a(t),n.forEach(a),Ed(e,i)}function rm(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=IO(e);for(const r in o){const i=o[r];i&&(t(r,$O(e,r,i)),n.push(r))}return n}const AO={provider:"",aliases:{},not_found:{},...om};function Qs(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function im(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!Qs(e,AO))return null;const n=t.icons;for(const r in n){const i=n[r];if(!r||typeof i.body!="string"||!Qs(i,_a))return null}const o=t.aliases||Object.create(null);for(const r in o){const i=o[r],a=i.parent;if(!r||typeof a!="string"||!n[a]&&!o[a]||!Qs(i,_a))return null}return t}const Cd=Object.create(null);function DO(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function po(e,t){const n=Cd[e]||(Cd[e]=Object.create(null));return n[t]||(n[t]=DO(e,t))}function sm(e,t){return im(t)?rm(t,(n,o)=>{o?e.icons[n]=o:e.missing.add(n)}):[]}function jO(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}const am=/^[a-z0-9]+(-[a-z0-9]+)*$/,vs=(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&&!ti(u)?null:u}const i=r[0],a=i.split("-");if(a.length>1){const l={provider:o,prefix:a.shift(),name:a.join("-")};return t&&!ti(l)?null:l}if(n&&o===""){const l={provider:o,prefix:"",name:i};return t&&!ti(l,n)?null:l}return null},ti=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1;let cr=!1;function lm(e){return typeof e=="boolean"&&(cr=e),cr}function Td(e){const t=typeof e=="string"?vs(e,!0,cr):e;if(t){const n=po(t.provider,t.prefix),o=t.name;return n.icons[o]||(n.missing.has(o)?null:void 0)}}function LO(e,t){const n=vs(e,!0,cr);if(!n)return!1;const o=po(n.provider,n.prefix);return t?jO(o,n.name,t):(o.missing.add(n.name),!0)}function FO(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),cr&&!t&&!e.prefix){let r=!1;return im(e)&&(e.prefix="",rm(e,(i,a)=>{LO(i,a)&&(r=!0)})),r}const n=e.prefix;if(!ti({prefix:n,name:"a"}))return!1;const o=po(t,n);return!!sm(o,e)}const cm=Object.freeze({width:null,height:null}),um=Object.freeze({...cm,...Oi}),BO=/(-?[0-9.]*[0-9]+[0-9.]*)/g,zO=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Nd(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(BO);if(o===null||!o.length)return e;const r=[];let i=o.shift(),a=zO.test(i);for(;;){if(a){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("");a=!a}}function VO(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 a=e.indexOf(">",i);if(a===-1)break;n+=e.slice(r+1,i).trim(),e=e.slice(0,o).trim()+e.slice(a+1)}return{defs:n,content:e}}function HO(e,t){return e?"<defs>"+e+"</defs>"+t:t}function WO(e,t,n){const o=VO(e);return HO(o.defs,t+o.content+n)}const UO=e=>e==="unset"||e==="undefined"||e==="none";function qO(e,t){const n={...Ml,...e},o={...um,...t},r={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,o].forEach(g=>{const v=[],b=g.hFlip,C=g.vFlip;let y=g.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=WO(i,'<g transform="'+v.join(" ")+'">',"</g>"))});const a=o.width,l=o.height,c=r.width,u=r.height;let d,f;a===null?(f=l===null?"1em":l==="auto"?u:l,d=Nd(f,c/u)):(d=a==="auto"?c:a,f=l===null?Nd(d,u/c):l==="auto"?u:l);const p={},h=(g,v)=>{UO(v)||(p[g]=v.toString())};h("width",d),h("height",f);const m=[r.left,r.top,c,u];return p.viewBox=m.join(" "),{attributes:p,viewBox:m,body:i}}const YO=/\sid="(\S+)"/g,GO="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let KO=0;function XO(e,t=GO){const n=[];let o;for(;o=YO.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 a=typeof t=="function"?t(i):t+(KO++).toString(),l=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+a+r+"$3")}),e=e.replace(new RegExp(r,"g"),""),e}const Ia=Object.create(null);function ZO(e,t){Ia[e]=t}function Ma(e){return Ia[e]||Ia[""]}function $l(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 Al=Object.create(null),Ro=["https://api.simplesvg.com","https://api.unisvg.com"],ni=[];for(;Ro.length>0;)Ro.length===1||Math.random()>.5?ni.push(Ro.shift()):ni.push(Ro.pop());Al[""]=$l({resources:["https://api.iconify.design"].concat(ni)});function QO(e,t){const n=$l(t);return n===null?!1:(Al[e]=n,!0)}function Dl(e){return Al[e]}const JO=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let kd=JO();function eP(e,t){const n=Dl(e);if(!n)return 0;let o;if(!n.maxURL)o=0;else{let r=0;n.resources.forEach(a=>{r=Math.max(r,a.length)});const i=t+".json?icons=";o=n.maxURL-r-n.path.length-i.length}return o}function tP(e){return e===404}const nP=(e,t,n)=>{const o=[],r=eP(e,t),i="icons";let a={type:i,provider:e,prefix:t,icons:[]},l=0;return n.forEach((c,u)=>{l+=c.length+1,l>=r&&u>0&&(o.push(a),a={type:i,provider:e,prefix:t,icons:[]},l=c.length),a.icons.push(c)}),o.push(a),o};function oP(e){if(typeof e=="string"){const t=Dl(e);if(t)return t.path}return"/"}const rP=(e,t,n)=>{if(!kd){n("abort",424);return}let o=oP(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;kd(e+o).then(i=>{const a=i.status;if(a!==200){setTimeout(()=>{n(tP(a)?"abort":"next",a)});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)})},iP={prepare:nP,send:rP};function dm(e,t){e.forEach(n=>{const o=n.loaderCallbacks;o&&(n.loaderCallbacks=o.filter(r=>r.id!==t))})}function sP(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 a=i.icons,l=a.pending.length;a.pending=a.pending.filter(c=>{if(c.prefix!==r)return!0;const u=c.name;if(e.icons[u])a.loaded.push({provider:o,prefix:r,name:u});else if(e.missing.has(u))a.missing.push({provider:o,prefix:r,name:u});else return n=!0,!0;return!1}),a.pending.length!==l&&(n||dm([e],i.id),i.callback(a.loaded.slice(0),a.missing.slice(0),a.pending.slice(0),i.abort))})}))}let aP=0;function lP(e,t,n){const o=aP++,r=dm.bind(null,n,o);if(!t.pending.length)return r;const i={id:o,icons:t,callback:e,abort:r};return n.forEach(a=>{(a.loaderCallbacks||(a.loaderCallbacks=[])).push(i)}),r}function cP(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,a=r.prefix,l=r.name,c=n[i]||(n[i]=Object.create(null)),u=c[a]||(c[a]=po(i,a));let d;l in u.icons?d=t.loaded:a===""||u.missing.has(l)?d=t.missing:d=t.pending;const f={provider:i,prefix:a,name:l};d.push(f)}),t}function uP(e,t=!0,n=!1){const o=[];return e.forEach(r=>{const i=typeof r=="string"?vs(r,t,n):r;i&&o.push(i)}),o}const dP={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function fP(e,t,n,o){const r=e.resources.length,i=e.random?Math.floor(Math.random()*r):e.index;let a;if(e.random){let E=e.resources.slice(0);for(a=[];E.length>1;){const k=Math.floor(Math.random()*E.length);a.push(E[k]),E=E.slice(0,k).concat(E.slice(k+1))}a=a.concat(E)}else a=e.resources.slice(i).concat(e.resources.slice(0,i));const l=Date.now();let c="pending",u=0,d,f=null,p=[],h=[];typeof o=="function"&&h.push(o);function m(){f&&(clearTimeout(f),f=null)}function g(){c==="pending"&&(c="aborted"),m(),p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function v(E,k){k&&(h=[]),typeof E=="function"&&h.push(E)}function b(){return{startTime:l,payload:t,status:c,queriesSent:u,queriesPending:p.length,subscribe:v,abort:g}}function C(){c="failed",h.forEach(E=>{E(void 0,d)})}function y(){p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function x(E,k,R){const _=k!=="success";switch(p=p.filter(V=>V!==E),c){case"pending":break;case"failed":if(_||!e.dataAfterTimeout)return;break;default:return}if(k==="abort"){d=R,C();return}if(_){d=R,p.length||(a.length?w():C());return}if(m(),y(),!e.random){const V=e.resources.indexOf(E.resource);V!==-1&&V!==e.index&&(e.index=V)}c="completed",h.forEach(V=>{V(R)})}function w(){if(c!=="pending")return;m();const E=a.shift();if(E===void 0){if(p.length){f=setTimeout(()=>{m(),c==="pending"&&(y(),C())},e.timeout);return}C();return}const k={status:"pending",resource:E,callback:(R,_)=>{x(k,R,_)}};p.push(k),u++,f=setTimeout(w,e.rotate),n(E,t,k.callback)}return setTimeout(w),b}function fm(e){const t={...dP,...e};let n=[];function o(){n=n.filter(l=>l().status==="pending")}function r(l,c,u){const d=fP(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 Od(){}const Js=Object.create(null);function pP(e){if(!Js[e]){const t=Dl(e);if(!t)return;const n=fm(t),o={config:t,redundancy:n};Js[e]=o}return Js[e]}function hP(e,t,n){let o,r;if(typeof e=="string"){const i=Ma(e);if(!i)return n(void 0,424),Od;r=i.send;const a=pP(e);a&&(o=a.redundancy)}else{const i=$l(e);if(i){o=fm(i);const a=e.resources?e.resources[0]:"",l=Ma(a);l&&(r=l.send)}}return!o||!r?(n(void 0,424),Od):o.query(t,r,n)().abort}function Pd(){}function mP(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,sP(e)}))}function gP(e){const t=[],n=[];return e.forEach(o=>{(o.match(am)?t:n).push(o)}),{valid:t,invalid:n}}function _o(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(!sm(e,n).length){o();return}}catch(r){console.error(r)}o(),mP(e)}function Rd(e,t){e instanceof Promise?e.then(n=>{t(n)}).catch(()=>{t(null)}):t(e)}function yP(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)){Rd(e.loadIcons(r,o,n),d=>{_o(e,r,d)});return}if(i){r.forEach(d=>{const f=i(d,o,n);Rd(f,p=>{const h=p?{prefix:o,icons:{[d]:p}}:null;_o(e,[d],h)})});return}const{valid:a,invalid:l}=gP(r);if(l.length&&_o(e,l,null),!a.length)return;const c=o.match(am)?Ma(n):null;if(!c){_o(e,a,null);return}c.prepare(n,o,a).forEach(d=>{hP(n,d,f=>{_o(e,d.icons,f)})})}))}const bP=(e,t)=>{const n=uP(e,!0,lm()),o=cP(n);if(!o.pending.length){let c=!0;return t&&setTimeout(()=>{c&&t(o.loaded,o.missing,o.pending,Pd)}),()=>{c=!1}}const r=Object.create(null),i=[];let a,l;return o.pending.forEach(c=>{const{provider:u,prefix:d}=c;if(d===l&&u===a)return;a=u,l=d,i.push(po(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=po(u,d),h=p.pendingIcons||(p.pendingIcons=new Set);h.has(f)||(h.add(f),r[u][d].push(f))}),i.forEach(c=>{const u=r[c.provider][c.prefix];u.length&&yP(c,u)}),t?lP(t,o,i):Pd};function vP(e,t){const n={...e};for(const o in t){const r=t[o],i=typeof r;o in cm?(r===null||r&&(i==="string"||i==="number"))&&(n[o]=r):i===typeof n[o]&&(n[o]=o==="rotate"?r%4:r)}return n}const xP=/[\s,]+/;function wP(e,t){t.split(xP).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function SP(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 EP(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 CP(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function TP(e){return"data:image/svg+xml,"+CP(e)}function NP(e){return'url("'+TP(e)+'")'}let qo;function kP(){try{qo=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{qo=null}}function OP(e){return qo===void 0&&kP(),qo?qo.createHTML(e):e}const pm={...um,inline:!1},PP={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},RP={display:"inline-block"},$a={backgroundColor:"currentColor"},hm={backgroundColor:"transparent"},_d={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Id={WebkitMask:$a,mask:$a,background:hm};for(const e in Id){const t=Id[e];for(const n in _d)t[e+n]=_d[n]}const _P={...pm,inline:!0};function Md(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const IP=(e,t,n)=>{const o=t.inline?_P:pm,r=vP(o,t),i=t.mode||"svg",a={},l=t.style||{},c={...i==="svg"?PP:{}};if(n){const v=vs(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"&&wP(r,b);break;case"color":a.color=b;break;case"rotate":typeof b=="string"?r[v]=SP(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=qO(e,r),d=u.attributes;if(r.inline&&(a.verticalAlign="-0.125em"),i==="svg"){c.style={...a,...l},Object.assign(c,d);let v=0,b=t.id;return typeof b=="string"&&(b=b.replace(/-/g,"_")),c.dangerouslySetInnerHTML={__html:OP(XO(u.body,b?()=>b+"ID"+v++:"iconifyReact"))},F.createElement("svg",c)}const{body:f,width:p,height:h}=e,m=i==="mask"||(i==="bg"?!1:f.indexOf("currentColor")!==-1),g=EP(f,{...d,width:p+"",height:h+""});return c.style={...a,"--svg":NP(g),width:Md(d.width),height:Md(d.height),...RP,...m?$a:hm,...l},F.createElement("span",c)};lm(!0);ZO("",iP);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"||!FO(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;QO(n,r)||console.error(o)}catch{console.error(o)}}}}function mm(e){const[t,n]=F.useState(!!e.ssr),[o,r]=F.useState({});function i(h){if(h){const m=e.icon;if(typeof m=="object")return{name:"",data:m};const g=Td(m);if(g)return{name:m,data:g}}return{name:""}}const[a,l]=F.useState(i(!!e.ssr));function c(){const h=o.callback;h&&(h(),r({}))}function u(h){if(JSON.stringify(a)!==JSON.stringify(h))return c(),l(h),!0}function d(){var h;const m=e.icon;if(typeof m=="object"){u({name:"",data:m});return}const g=Td(m);if(u({name:m,data:g}))if(g===void 0){const v=bP([m],d);r({callback:v})}else g&&((h=e.onLoad)===null||h===void 0||h.call(e,m))}F.useEffect(()=>(n(!0),c),[]),F.useEffect(()=>{t&&d()},[e.icon,t]);const{name:f,data:p}=a;return p?IP({...Ml,...p},e,f):e.children?e.children:e.fallback?e.fallback:F.createElement("span",{})}const MP=F.forwardRef((e,t)=>mm({...e,_ref:t}));F.forwardRef((e,t)=>mm({inline:!0,...e,_ref:t}));const jl=F.forwardRef(({icon:e,width:t=20,sx:n,...o},r)=>T.jsx(hs,{ref:r,component:MP,className:"component-iconify",icon:e,sx:{width:t,height:t,...n},...o}));jl.displayName="Iconify";function Er({title:e,icon:t,children:n}){return T.jsx(hs,{width:"200px",sx:{borderRadius:"3px",backgroundColor:"white",border:"1px solid #646464",boxShadow:"0 0 6px 2px rgba(0, 0, 0, 0.08)"},children:T.jsxs(ut,{children:[T.jsxs(ut,{direction:"row",spacing:1,sx:{p:.5,alignItems:"center"},children:[T.jsx(jl,{icon:t,width:20,sx:{color:"rgba(0, 167, 111, 0.7)"}}),T.jsx(nt,{variant:"caption",sx:{color:"#646464"},children:e})]}),n?T.jsxs(T.Fragment,{children:[T.jsx(sn,{}),n]}):null]})})}function $P(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function AP(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 a=$P(t[i]);if(a&&(r.push(a),r.length===3))break}return r}function Cr({nodeLabel:e,nodeMetaData:t}){const n=e?.trim()??"",o=!!n,r=AP(t);return T.jsxs(ut,{children:[T.jsx(nt,{variant:"caption",textAlign:"center",py:.5,sx:{color:o?"#646464":"#f36",fontSize:"8px",fontWeight:600},children:o?n:"Action required"}),r.map((i,a)=>T.jsx(nt,{variant:"caption",textAlign:"center",sx:{color:"#646464",fontSize:"8px",opacity:.85,lineHeight:"10px"},children:i},a))]})}function DP({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(Er,{title:e.label,icon:e.icon??(e.kind==="start"?yo:bo),children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(gt,{type:"source",position:de.Bottom,id:"out"})]})}function jP({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??(e.kind==="start"?yo:bo),children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})})]})}function LP({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??"ph:circle",children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(gt,{type:"source",position:de.Bottom,id:"out"})]})}const FP={left:"30%"},BP={left:"70%"},zP={left:"50%"};function VP({data:e}){const t=e.kind==="abTest",n=e.nodeMetaData&&typeof e.nodeMetaData=="object"&&!Array.isArray(e.nodeMetaData)?e.nodeMetaData:{},r=e.kind==="waitForEvent"?n.hasTimeDependency!==!1:!0;return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??"tabler:arrow-fork",children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(gt,{type:"source",position:de.Bottom,id:"yes",style:r?FP:zP}),r&&T.jsx(gt,{type:"source",position:de.Bottom,id:"no",style:BP}),T.jsxs("div",{style:{position:"absolute",width:150,left:0,top:"100%",marginTop:2,display:"flex",justifyContent:r?"space-between":"center",fontSize:9,color:"#4f4f4f",pointerEvents:"none"},children:[T.jsx("span",{style:{transform:r?"translateX(-6px)":void 0},children:t?"A":"Yes"}),r&&T.jsx("span",{style:{transform:"translateX(6px)"},children:t?"B":"No"})]})]})}function HP({data:e}){const t=Math.min(5,Math.max(2,Number(e.nodeMetaData?.choiceCount)||vo));return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??"tabler:list-numbers",children:T.jsx(Cr,{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(gt,{type:"source",position:de.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 WP(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 UP(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 qP(e){if(e.length===0)return{x:0,y:0};if(e.length===1)return e[0];const n=UP(e)/2;let o=0;for(let r=1;r<e.length;r++){const i=e[r-1],a=e[r],l=Math.hypot(a.x-i.x,a.y-i.y);if(o+l>=n){const c=l===0?0:(n-o)/l;return{x:i.x+(a.x-i.x)*c,y:i.y+(a.y-i.y)*c}}o+=l}return e[e.length-1]}const YP={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"},GP={position:"absolute",background:"transparent",padding:10,color:"#4f4f4f",fontSize:9,fontWeight:500};function KP(e){const{id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a,targetPosition:l,markerEnd:c,data:u}=e,d=e.sourceHandleId,f=Vw(),p=u?._onPlusClick,h=!!u?.isRedirect,m=i<o-5,[g,v,b]=Ka({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:l}),C=150,y=f.length===0?Math.min(n,r):Math.min(...f.map(j=>j.position.x)),x=f.length===0?Math.max(n,r):Math.max(...f.map(j=>j.position.x+C)),w=140,E=Math.min(y-w,n-w,r-w),k=Math.max(x+w,n+w,r+w),R=h&&d==="yes",_=h&&d==="no",V=R?E:k,I=30,S=[{x:n,y:o},{x:V,y:o},{x:V,y:i-I},{x:r,y:i-I},{x:r,y:i}],D=WP(S),N=qP(S),P=m?D:g,O=m?N.x:v,L=m?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(gr,{id:t,path:P,markerEnd:c,style:{strokeWidth:2,stroke:"#646464",strokeDasharray:h?"6 4":void 0}}),T.jsxs(Fw,{children:[!!M&&T.jsx("div",{style:{...GP,transform:`translate(-50%, 0%) translate(${n}px,${o-10}px)`},className:"nodrag nopan",children:M}),T.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${O}px,${L}px)`,pointerEvents:"all"},className:"nodrag nopan",children:T.jsx("button",{type:"button",onClick:()=>p?.(t),style:YP,title:"Edge actions",children:"+"})})]})]})}function XP({menu:e,onClose:t,definitions:n,onChooseKind:o,redirectCandidates:r,onChooseRedirectTarget:i,onSwitchMode:a}){const l=F.useMemo(()=>nm(n),[n]),c=F.useCallback(()=>{const f=[],p=(h,m,g)=>{f.push(T.jsx(nt,{variant:"body1",sx:{fontWeight:600,textAlign:"center",px:2,pt:f.length?2:1},children:h},`${g}-t`)),f.push(T.jsx(sn,{},`${g}-d`));for(const v of m){const b=v.enabled===!1;f.push(T.jsxs(Nt,{disabled:b,onClick:()=>o(e.edgeId,v.kind),sx:b?{opacity:.5}:void 0,children:[T.jsx(Vh,{children:T.jsx(jl,{icon:v.icon,width:28,sx:{color:"#646464"}})}),T.jsx(Fo,{children:v.title})]},`${g}-${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(sn,{},"redir-d")),f.push(T.jsx(Nt,{onClick:()=>a("redirect",!1),children:T.jsx(Fo,{primary:"Redirect to…"})},"redir")),f},[l,e,o,a]),u=F.useCallback(()=>[T.jsx(Ei,{disableSticky:!0,sx:{fontWeight:700,lineHeight:"32px"},children:e?.relinkSolid?"Relink solid edge to…":"Redirect to…"},"rs"),...r.map(f=>T.jsx(Nt,{onClick:()=>i(e.edgeId,f.id,!e?.relinkSolid),children:T.jsx(Fo,{primary:f.label,secondary:f.nodeLabel?.trim()?f.nodeLabel:`id: ${f.id}`})},`rc-${f.id}`)),T.jsx(sn,{},"rd1"),T.jsx(Nt,{onClick:()=>a("choose",!1),children:T.jsx(Fo,{primary:"Back"})},"back")],[e,r,i,a]),d=F.useMemo(()=>e?e.mode==="choose"?c():u():[],[e,c,u]);return T.jsx(Pl,{open:!!e,onClose:t,anchorReference:"anchorPosition",anchorPosition:e?.anchorPosition??{top:0,left:0},MenuListProps:{dense:!0},children:d})}function ZP({flowCategory:e,open:t,onClose:n,selectedNode:o,selectedDefinition:r,nodeLabel:i,setNodeLabel:a,nodeMetaData:l,setNodeMetaData:c,onSave:u}){const d=r?.drawerFormComponent,f=typeof d=="function"?d:jt;return T.jsxs(jh,{anchor:"right",open:t,onClose:n,PaperProps:{sx:{width:550,p:2}},children:[T.jsx(nt,{variant:"h6",sx:{mb:.5},children:"Node metadata"}),T.jsxs(nt,{sx:{fontSize:12,opacity:.75,mb:2},children:["Type: ",T.jsx("b",{children:o?.data?.label??"—"}),o?` • id: ${o.id}`:""]}),T.jsxs(ut,{spacing:2,children:[o?T.jsx(f,{node:o,flowCategory:e,nodeLabel:i,setNodeLabel:a,nodeMetaData:l,setNodeMetaData:c}):T.jsx(nt,{sx:{fontSize:13,opacity:.7},children:"No node selected."}),T.jsx(sn,{}),T.jsxs(ut,{direction:"row",spacing:1,children:[T.jsx(Jn,{variant:"outlined",onClick:n,fullWidth:!0,children:"Cancel"}),T.jsx(Jn,{variant:"contained",onClick:u,fullWidth:!0,children:"Save"})]})]})]})}const QP={start:DP,end:jP,conditional:VP,action:LP,multiChoice:HP},JP={plusEdge:KP};function vn(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function Wn(e){const t=vn(e);return Math.min(5,Math.max(2,Number(t.choiceCount)||vo))}function Aa(e){return vn(e).hasTimeDependency!==!1}function gm(e){return e.type==="conditional"&&e.data.kind==="waitForEvent"&&!Aa(e.data.nodeMetaData)}function eR(e){if(e==="yes"||e==="no")return e;const t=/^c(\d+)$/.exec(e??"");return t?t[1]:"child"}function tR(e,t){if(typeof t=="string"&&t.length>0)return t;if(e==="start"||e==="action")return"out"}function nR(e){return e==="start"||e==="end"||e==="action"||e==="conditional"||e==="multiChoice"}function Da(e,t){return`${e}::${t}`}function oR(e){if(e.type==="start"||e.type==="action")return[{sourceHandle:"out",kind:"default"}];if(e.type==="conditional")return gm(e)?[{sourceHandle:"yes",kind:"yes"}]:[{sourceHandle:"yes",kind:"yes"},{sourceHandle:"no",kind:"no"}];if(e.type==="multiChoice"){const t=Wn(e.data.nodeMetaData);return Array.from({length:t},(n,o)=>({sourceHandle:`c${o+1}`,kind:"branch",branch:o+1}))}return[]}function $d(e,t){const n=new Map(e.map(i=>[i.id,i.type])),o=new Set(e.map(i=>i.id)),r=new Set;for(const i of t){const a=n.get(i.source);if(!a||!nR(a)||!o.has(i.target))continue;const l=tR(a,i.sourceHandle);l&&r.add(Da(i.source,l))}return r}function rR(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 iR(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 sR(e){if(!e||typeof e!="object"||Array.isArray(e))return;const{x:t,y:n,zoom:o}=e;if(!(typeof t!="number"||typeof n!="number"||typeof o!="number"))return{x:t,y:n,zoom:o}}function aR(e){return e.map(t=>{if(!t.data)return t;const{_onPlusClick:n,...o}=t.data;return{...t,data:o}})}function lR(e){const t=Array.isArray(e?.nodes),n=Array.isArray(e?.edges);return{nodes:t?e?.nodes:kO,edges:n?aR(e?.edges):OO,viewport:sR(e?.viewport)}}function cR({flowCategory:e,nodeDefinitions:t=xo,initialFlow:n,onExportJson:o,onCancel:r}){const i=F.useRef(lR(n)),a=!!i.current.viewport,l=Fi(),c=Bw(),u=qw(),d=F.useMemo(()=>bs(t),[t]),[f,p]=Hw(i.current.nodes),[h,m,g]=Ww(i.current.edges),v=F.useRef(h);F.useEffect(()=>{v.current=h},[h]);const[b,C]=F.useState(null),y=F.useRef(!1),x=F.useRef(!1),[w,E]=F.useState(!1),[k,R]=F.useState(null),[_,V]=F.useState(""),[I,S]=F.useState({}),D=F.useRef(null),N=F.useCallback(K=>f.find(Z=>Z.id===K),[f]),P=F.useCallback((K,Z)=>h.filter(ne=>ne.source===K&&(Z==null?!0:(ne.sourceHandle??null)===(Z??null))).length,[h]),O=F.useCallback(K=>{if(y.current){x.current=!0;return}const Z=l.getNodes(),ne=l.getEdges(),X=wd(Z,ne);p(X),K?.fit&&requestAnimationFrame(()=>l.fitView({duration:300,padding:.35}))},[l,p]);F.useEffect(()=>{if(!u)return;const K=setTimeout(()=>O({fit:!a}),30);return()=>clearTimeout(K)},[u,O,a]),F.useEffect(()=>{if(!u)return;const K=i.current.viewport;if(!K)return;const Z=setTimeout(()=>{l.setViewport(K)},60);return()=>clearTimeout(Z)},[u,l]),F.useEffect(()=>{p(K=>{const Z=new Set(K.map(ae=>ae.id)),ne=new Map,X=new Map;for(const ae of h){if(!Z.has(ae.source)||!Z.has(ae.target))continue;const he=eR(ae.sourceHandle),me=X.get(ae.source)??{};me[he]=ae.target,X.set(ae.source,me),ne.has(ae.target)||ne.set(ae.target,ae.source)}let pe=!1;const se=K.map(ae=>{const he=ne.get(ae.id),me=X.get(ae.id)??{},fe=rR(ae.data.childNodeIds),be=ae.data.parentNodeId===he,We=iR(fe,me);return be&&We?ae:(pe=!0,{...ae,data:{...ae.data,parentNodeId:he,childNodeIds:Object.keys(me).length>0?me:void 0}})});return pe?se:K})},[h,p]),F.useEffect(()=>{p(K=>K.map(Z=>{const ne=Z.data.kind??(Z.id===lt?"start":Z.id===Ge?"end":void 0),X=ne?d.get(ne):void 0,pe=vn(Z.data.nodeMetaData),se=vn(X?.createInitialNodeMetaData?.()??{}),ae=X?{...se,...pe}:pe,he={...Z.data,nodeMetaData:ae};if(Z.id===lt||Z.id===Ge)return{...Z,data:{...Z.data,nodeMetaData:ae,label:X?.title??Z.data.label??(Z.id===lt?"Entry":"Exit"),icon:X?.icon??Z.data.icon??(Z.id===lt?yo:bo)}};if(X&&!Z.data.icon)return{...Z,data:{...he,icon:X.icon,label:Z.data.label??X.title}};if(Z.type==="multiChoice"){const me=Wn(ae);return{...Z,data:{...he,nodeMetaData:{...ae,choiceCount:me}}}}return{...Z,data:he}}))},[d,p]),F.useEffect(()=>{const K=D.current;if(!K)return;const Z=f.find(pe=>pe.id===K.nodeId);if(!Z||Z.type!=="multiChoice"){D.current=null;return}const ne=Wn(Z.data.nodeMetaData);if(ne!==K.nextCount)return;c(K.nodeId);const X=requestAnimationFrame(()=>{requestAnimationFrame(()=>{let pe=f,se=h;const ae=[];for(let he=ne+1;he<=5;he++)ae.push(`c${he}`);if(ae.length>0){const he=Sd({nodeId:K.nodeId,removedHandles:ae,nodes:pe,edges:se});pe=he.nodes,se=he.edges}se=se.filter(he=>{if(he.source!==K.nodeId)return!0;const me=he.sourceHandle??"",fe=/^c(\d)$/.exec(me);return fe?Number(fe[1])<=ne:!0});for(let he=1;he<=ne;he++){const me=`c${he}`;se.some(be=>be.source===K.nodeId&&(be.sourceHandle??"")===me)||(se=[...se,{id:`e-${K.nodeId}-${me}-${Ge}`,type:"plusEdge",source:K.nodeId,sourceHandle:me,target:Ge,targetHandle:"in",data:{kind:"branch",branch:he,isRedirect:!1}}])}p(pe),m(se),D.current=null,setTimeout(()=>O(),0)})});return()=>cancelAnimationFrame(X)},[f,h,p,m,O,c]),F.useEffect(()=>{if(!f.some(ne=>ne.id===Ge))return;const K=$d(f,h),Z=[];for(const ne of f)if(ne.id!==Ge)for(const X of oR(ne)){const pe=Da(ne.id,X.sourceHandle);K.has(pe)||(Z.push({id:`e-${ne.id}-${X.sourceHandle}-${Ge}`,type:"plusEdge",source:ne.id,sourceHandle:X.sourceHandle,target:Ge,targetHandle:"in",data:{kind:X.kind,branch:X.branch,isRedirect:!1}}),K.add(pe))}Z.length!==0&&(m(ne=>{const X=$d(f,ne),pe=new Set(ne.map(ae=>ae.id)),se=[];for(const ae of Z){const he=ae.sourceHandle??"out",me=Da(ae.source,he);if(X.has(me))continue;let fe=ae.id;pe.has(fe)&&(fe=`${fe}-${crypto.randomUUID().slice(0,8)}`),se.push({...ae,id:fe}),X.add(me),pe.add(fe)}return se.length>0?[...ne,...se]:ne}),queueMicrotask(()=>O()))},[O,h,f,m]);const L=F.useCallback(()=>({version:2,nodes:f,edges:h.map(K=>{const{_onPlusClick:Z,...ne}=K.data??{};return{...K,data:ne}}),viewport:l.getViewport()}),[f,h,l]),M=F.useCallback(()=>{const K=L();if(o){o(K);return}const Z=JSON.stringify(K,null,2);console.log(Z),navigator.clipboard?.writeText(Z).catch(()=>{}),alert("Export copied to clipboard (and logged to console).")},[L,o]),j=F.useCallback(()=>{C(null),E(!1),r?.()},[r]),$=F.useCallback(K=>{if(!K.source||!K.target)return!1;const Z=N(K.source),ne=N(K.target);if(!Z||!ne||ne.type==="start"||Z.type==="end"||Z.type==="start"&&P(Z.id)>=1)return!1;if(Z.type==="conditional"){const X=K.sourceHandle,pe=!gm(Z);if(X!=="yes"&&(X!=="no"||!pe)||P(Z.id,X)>=1)return!1}if(Z.type==="action"&&((K.sourceHandle??"out")!=="out"||P(Z.id,"out")>=1))return!1;if(Z.type==="multiChoice"){const X=K.sourceHandle??"";if(!/^c[1-5]$/.test(X)||P(Z.id,X)>=1)return!1}return!0},[N,P]),z=F.useCallback(K=>{const Z=h.find(ae=>ae.id===K);if(!Z)return;const ne=l.getNode(Z.source),X=l.getNode(Z.target);if(!ne||!X)return;const pe={x:(ne.position.x+X.position.x)/2,y:(ne.position.y+X.position.y)/2},se=l.flowToScreenPosition(pe);C({edgeId:K,mode:"choose",relinkSolid:!1,anchorPosition:{top:se.y,left:se.x}})},[h,l]),H=F.useCallback((K,Z)=>{const ne=h.find(Le=>Le.id===K);if(!ne)return;const X=l.getNode(ne.source),pe=l.getNode(ne.target);if(!X||!pe)return;const se=d.get(Z);if(!se||!("nodeType"in se))return;const ae=se.nodeType,he=(X.position.x+pe.position.x)/2,me=(X.position.y+pe.position.y)/2,fe=crypto.randomUUID(),be=vn(se.createInitialNodeMetaData?.()??{}),We=ae==="multiChoice"?{...be,choiceCount:Wn(be)}:be,we={id:fe,type:ae,position:{x:he,y:me-40},data:{label:se.title,nodeLabel:"",kind:Z,icon:se.icon,nodeMetaData:We}};p(Le=>[...Le,we]),m(Le=>{const ve=Le.find(ce=>ce.id===K);if(!ve)return Le;const Se=Le.filter(ce=>ce.id!==K),Je={id:`e-${ve.source}-${ve.sourceHandle??"out"}-${fe}`,type:"plusEdge",source:ve.source,sourceHandle:ve.sourceHandle,target:fe,targetHandle:"in",data:{kind:ve.data?.kind??"default",isRedirect:!1,branch:ve.data?.branch}};if(ae==="action"){const ce={id:`e-${fe}-out-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:"out",target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"default",isRedirect:!1}};return[...Se,Je,ce]}if(ae==="conditional"){const ce={id:`e-${fe}-yes-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:"yes",target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"yes",isRedirect:!1}},Ee={id:`e-${fe}-no-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:"no",target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"no",isRedirect:!1}};return[...Se,Je,ce,Ee]}const Et=Math.min(5,Math.max(2,vo)),An=Array.from({length:Et}).map((ce,Ee)=>{const Ke=Ee+1;return{id:`e-${fe}-c${Ke}-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:`c${Ke}`,target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"branch",branch:Ke,isRedirect:!1}}});return[...Se,Je,...An]}),C(null),queueMicrotask(()=>O())},[h,d,l,m,p,O]),U=F.useCallback((K,Z,ne)=>{const X=N(Z);X&&X.type!=="start"&&(m(pe=>pe.map(se=>{if(se.id!==K)return se;const ae=se.data??{kind:"default"},he=ne.makeRedirect&&!ae.isRedirect?se.target:ae.baseTarget,me=ne.makeRedirect&&!ae.isRedirect?se.targetHandle??"in":ae.baseTargetHandle;return{...se,target:Z,targetHandle:"in",data:{...ae,isRedirect:!!ne.makeRedirect,baseTarget:ne.makeRedirect?he:void 0,baseTargetHandle:ne.makeRedirect?me:void 0}}})),C(null),queueMicrotask(()=>O()))},[N,m,O]),W=F.useCallback(async K=>{const Z=K.nodes??[];if(Z.length===0||Z.length!==1)return!0;const ne=Z[0];if(ne.type==="start"||ne.type==="end")return!1;const X=l.getEdges(),pe=l.getNodes(),se=pe.find(Se=>Se.id===ne.id);if(!se)return!1;const ae=X.filter(Se=>Se.target===ne.id),he=X.filter(Se=>Se.source===ne.id),me=ae.find(Se=>!Se.data?.isRedirect)??ae[0],fe=Se=>Se.find(Je=>!Je.data?.isRedirect)??Se[0];let be;if(se.type==="conditional"){const Se=he.filter(Je=>Je.sourceHandle==="yes");be=fe(Se)??fe(he)}else if(se.type==="multiChoice"){const Se=he.filter(Je=>Je.sourceHandle==="c1");be=fe(Se)??fe(he)}else{const Se=he.filter(Je=>(Je.sourceHandle??"out")==="out");be=fe(Se)??fe(he)}const We=X.filter(Se=>Se.source!==ne.id&&Se.target!==ne.id),we=pe.filter(Se=>Se.id!==ne.id);let Le=We;if(me&&be&&be.target!==lt){const Se={id:`e-${me.source}-${me.sourceHandle??"out"}-${be.target}`,type:"plusEdge",source:me.source,sourceHandle:me.sourceHandle,target:be.target,targetHandle:be.targetHandle??"in",data:{kind:me.data?.kind??"default",isRedirect:!1,branch:me.data?.branch}};Le.some(Et=>Et.source===Se.source&&(Et.sourceHandle??null)===(Se.sourceHandle??null)&&Et.target===Se.target)||(Le=[...Le,Se])}m(Le);const ve=wd(we,Le);return p(ve),!1},[l,m,p]),G=F.useCallback((K,Z)=>{const ne=K.data,X=ne?.kind??(Z.sourceHandle==="yes"?"yes":Z.sourceHandle==="no"?"no":/^c[1-5]$/.test(Z.sourceHandle??"")?"branch":"default"),pe=ne?.branch??(()=>{const me=/^c(\d)$/.exec(Z.sourceHandle??"");return me?Number(me[1]):void 0})(),se=!!ne?.isRedirect,ae=ne?.baseTarget,he=ne?.baseTargetHandle;m(me=>nv(K,Z,me).map(fe=>{if(fe.id!==K.id)return{...fe,data:fe.data??{kind:"default"}};const be=fe.data??{kind:X};return{...fe,data:{kind:be.kind??X,branch:be.branch??pe,isRedirect:!0,baseTarget:se?ae:K.target,baseTargetHandle:se?he:K.targetHandle??"in"}}})),queueMicrotask(()=>O())},[m,O]),J=F.useCallback(K=>{p(Z=>tl(K,Z))},[p]),te=F.useCallback(K=>{const Z=K.filter(X=>{if(X.type!=="remove")return!1;const pe=X.id;return pe?!!v.current.find(ae=>ae.id===pe)?.data?.isRedirect:!1}),ne=K.filter(X=>{if(X.type!=="remove")return!0;const pe=X.id;return pe?!v.current.find(ae=>ae.id===pe)?.data?.isRedirect:!0});ne.length&&(m(X=>nl(ne,X)),g(ne));for(const X of Z){const pe=X.id,se=v.current.find(we=>we.id===pe);if(!se)continue;const ae=se.data?.baseTarget??Ge,he=se.data?.baseTargetHandle??"in";m(we=>we.map(Le=>Le.id===pe?{...Le,target:ae,targetHandle:he,data:{...Le.data??{kind:"default"},isRedirect:!1,baseTarget:void 0,baseTargetHandle:void 0}}:Le));const me=l.getNode(se.source),fe=l.getNode(ae),be=me&&fe?{x:(me.position.x+fe.position.x)/2,y:(me.position.y+fe.position.y)/2}:{x:0,y:0},We=l.flowToScreenPosition(be);C({edgeId:pe,mode:"redirect",relinkSolid:!0,anchorPosition:{top:We.y,left:We.x}}),queueMicrotask(()=>O())}},[m,g,l,O]),q=F.useMemo(()=>h.map(K=>({...K,data:{...K.data??{kind:"default"},_onPlusClick:z}})),[h,z]),ee=F.useMemo(()=>f.filter(K=>K.type!=="start").map(K=>({id:K.id,label:K.data?.label??K.id,nodeLabel:K.data?.nodeLabel??""})),[f]),Q=F.useCallback((K,Z)=>{Z.data?.isRedirect&&(K.preventDefault(),K.stopPropagation(),C({edgeId:Z.id,mode:"redirect",relinkSolid:!1,anchorPosition:{top:K.clientY,left:K.clientX}}))},[]),oe=F.useCallback((K,Z)=>{R(Z.id),V(Z.data?.nodeLabel??"");const ne=vn(Z.data.nodeMetaData);S(Z.type==="multiChoice"?{...ne,choiceCount:Wn(ne)}:ne),E(!0)},[]),B=F.useMemo(()=>k?N(k):void 0,[N,k]),ie=F.useMemo(()=>{const K=B?.data?.kind??(B?.id===lt?"start":B?.id===Ge?"end":void 0);if(K)return d.get(K)},[d,B]),re=F.useCallback(()=>{if(!k)return;const K=f.find(be=>be.id===k),Z=K?.type==="multiChoice",ne=K?.type==="conditional"&&K.data.kind==="waitForEvent",X=vn(I),pe=Wn(X),se=ne?Aa(K.data.nodeMetaData):void 0,ae=ne?Aa(X):void 0,he=ne&&se!==ae;let me=f.map(be=>be.id===k?{...be,data:{...be.data??{label:""},nodeLabel:_,nodeMetaData:be.type==="multiChoice"?{...X,choiceCount:pe}:X}}:be),fe=h;if(ne&&se&&!ae){const be=Sd({nodeId:k,removedHandles:["no"],nodes:me,edges:fe});me=be.nodes,fe=be.edges.filter(We=>!(We.source===k&&(We.sourceHandle??"")==="no"))}if(ne&&!se&&ae){const be=fe.find(ve=>ve.source===k&&(ve.sourceHandle??"")==="yes"),We=be?.target??Ge,we=be?.targetHandle??"in";let Le=!1;if(fe=fe.map(ve=>ve.source!==k||(ve.sourceHandle??"")!=="no"?ve:(Le=!0,{...ve,target:We,targetHandle:we,data:{...ve.data??{kind:"no"},kind:"no",isRedirect:!1,baseTarget:void 0,baseTargetHandle:void 0}})),!Le){const ve=new Set(fe.map(Et=>Et.id)),Se=`e-${k}-no-${We}`,Je=ve.has(Se)?`${Se}-${crypto.randomUUID().slice(0,8)}`:Se;fe=[...fe,{id:Je,type:"plusEdge",source:k,sourceHandle:"no",target:We,targetHandle:we,data:{kind:"no",isRedirect:!1}}]}}if(p(me),m(fe),Z&&(D.current={nodeId:k,nextCount:pe}),E(!1),he){const be=k;requestAnimationFrame(()=>{c(be),requestAnimationFrame(()=>O())});return}queueMicrotask(()=>O())},[k,_,I,f,h,p,m,c,O]),ue=F.useCallback(()=>C(null),[]),xe=F.useCallback(()=>{y.current=!0},[]),Te=F.useCallback(()=>{y.current=!1,x.current&&(x.current=!1,O())},[O]),je=F.useCallback((K,Z)=>{C(ne=>ne&&{...ne,mode:K,relinkSolid:Z??ne.relinkSolid})},[]);return T.jsxs(hs,{sx:{width:"100%",height:"88vh",border:"1px solid #ddd",borderRadius:2,position:"relative",overflow:"hidden",bgcolor:"white"},children:[T.jsxs(ut,{direction:"row",spacing:1,sx:{p:1.25,borderBottom:"1px solid #eee",alignItems:"center"},children:[T.jsx(Jn,{variant:"contained",size:"small",onClick:M,children:"Save"}),T.jsx(Jn,{variant:"outlined",size:"small",onClick:j,children:"Cancel / Close"}),T.jsx(Jn,{variant:"outlined",size:"small",onClick:()=>O({fit:!0}),children:"Auto layout"}),T.jsx(nt,{sx:{ml:"auto",fontSize:12,opacity:.75},children:"Redirect edge delete ⇒ restores solid + asks relink"})]}),T.jsx(XP,{menu:b,onClose:ue,definitions:t,onChooseKind:(K,Z)=>H(K,Z),redirectCandidates:ee,onChooseRedirectTarget:(K,Z,ne)=>U(K,Z,{makeRedirect:ne}),onSwitchMode:je}),T.jsxs(jw,{nodes:f,edges:q,onNodesChange:J,onEdgesChange:te,nodeTypes:QP,edgeTypes:JP,fitView:!a,isValidConnection:$,onBeforeDelete:W,onReconnect:G,onEdgeClick:Q,onNodeClick:oe,onNodeDragStart:xe,onNodeDragStop:Te,defaultEdgeOptions:{markerEnd:{type:Jo.Arrow,width:12,height:12}},children:[T.jsx(rS,{}),T.jsx(Zw,{})]}),T.jsx(ZP,{flowCategory:e,open:w,onClose:()=>E(!1),selectedNode:B,selectedDefinition:ie,nodeLabel:_,setNodeLabel:V,nodeMetaData:I,setNodeMetaData:S,onSave:re})]})}function uR({flowCategory:e,nodeDefinitions:t,extendNodeDefinitions:n=[],initialFlow:o,onExportJson:r,onCancel:i}){const a=F.useMemo(()=>t||tm(xo,n),[t,n]);return T.jsx(vp,{children:T.jsx(cR,{flowCategory:e,nodeDefinitions:a,initialFlow:o,onExportJson:r,onCancel:i})})}exports.CATEGORIES=TO;exports.DEFAULT_MULTI_CHOICE_COUNT=vo;exports.DEFAULT_NODE_DEFINITIONS=xo;exports.END_ICON=bo;exports.END_ID=Ge;exports.FlowEditor=uR;exports.NODE_DEFINITIONS=CO;exports.START_ICON=yo;exports.START_ID=lt;exports.createNodeDefinitionMap=bs;exports.groupDefinitions=nm;exports.kindToNodeType=NO;exports.mergeNodeDefinitions=tm;
159
+ `))}},[fe,K,C,y,z]),me&&(C?he.length===0?se=null:se=he.reduce((ce,Ee,Ke)=>(ce.push(Ee),Ke<he.length-1&&ce.push(", "),ce),[]):se=ae);let We=Q;!a&&ee&&te&&(We=re.clientWidth);let we;typeof O<"u"?we=O:we=f?null:0;const Le=P.id||(y?`mui-component-select-${y}`:void 0),ve={...t,variant:j,value:z,open:ue,error:h},Se=rO(ve),Je={...b.PaperProps,...typeof b.slotProps?.paper=="function"?b.slotProps.paper(ve):b.slotProps?.paper},Et={...b.MenuListProps,...typeof b.slotProps?.list=="function"?b.slotProps.list(ve):b.slotProps?.list},An=gl();return T.jsxs(A.Fragment,{children:[T.jsx(eO,{as:"div",ref:ie,tabIndex:we,role:"combobox","aria-controls":ue?An:void 0,"aria-disabled":f?"true":void 0,"aria-expanded":ue?"true":"false","aria-haspopup":"listbox","aria-label":r,"aria-labelledby":[v,Le].filter(Boolean).join(" ")||void 0,"aria-describedby":o,"aria-required":N?"true":void 0,"aria-invalid":h?"true":void 0,onKeyDown:X,onMouseDown:f||S?null:Te,onBlur:pe,onFocus:k,...P,ownerState:ve,className:ye(P.className,Se.select,c),id:Le,children:oO(se)?gd||(gd=T.jsx("span",{className:"notranslate","aria-hidden":!0,children:"​"})):se}),T.jsx(nO,{"aria-invalid":h,value:Array.isArray(z)?z.join(","):z,name:y,ref:G,"aria-hidden":!0,onChange:Z,tabIndex:-1,disabled:f,className:Se.nativeInput,autoFocus:i,required:N,...$,ownerState:ve}),T.jsx(tO,{as:m,className:Se.icon,ownerState:ve}),T.jsx(Pl,{id:`menu-${y||""}`,anchorEl:re,open:ue,onClose:je,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:An,...Et},paper:{...Je,style:{minWidth:We,...Je!=null?Je.style:null}}},children:be})]})});process.env.NODE_ENV!=="production"&&(Qh.propTypes={"aria-describedby":s.string,"aria-label":s.string,autoFocus:s.bool,autoWidth:s.bool,children:s.node,classes:s.object,className:s.string,defaultOpen:s.bool,defaultValue:s.any,disabled:s.bool,displayEmpty:s.bool,error:s.bool,IconComponent:s.elementType.isRequired,inputRef:St,labelId:s.string,MenuProps:s.object,multiple:s.bool,name:s.string,onBlur:s.func,onChange:s.func,onClose:s.func,onFocus:s.func,onOpen:s.func,open:s.bool,readOnly:s.bool,renderValue:s.func,required:s.bool,SelectDisplayProps:s.object,tabIndex:s.oneOfType([s.number,s.string]),type:s.any,value:s.any,variant:s.oneOf(["standard","outlined","filled"])});const iO=e=>{const{classes:t}=e,o=Pe({root:["root"]},Zh,t);return{...t,...o}},_l={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>pt(e)&&e!=="variant"},sO=le(gs,_l)(""),aO=le(ys,_l)(""),lO=le(ms,_l)(""),lr=A.forwardRef(function(t,n){const o=Ie({name:"MuiSelect",props:t}),{autoWidth:r=!1,children:i,classes:a={},className:l,defaultOpen:c=!1,displayEmpty:u=!1,IconComponent:d=oN,id:f,input:p,inputProps:h,label:m,labelId:g,MenuProps:v,multiple:b=!1,native:C=!1,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:k,variant:R="outlined",..._}=o,V=C?Kh:Qh,I=dn(),S=$n({props:o,muiFormControl:I,states:["variant","error"]}),D=S.variant||R,N={...o,variant:D,classes:a},P=iO(N),{root:O,...L}=P,M=p||{standard:T.jsx(sO,{ownerState:N}),outlined:T.jsx(aO,{label:m,ownerState:N}),filled:T.jsx(lO,{ownerState:N})}[D],j=st(n,mo(M));return T.jsx(A.Fragment,{children:A.cloneElement(M,{inputComponent:V,inputProps:{children:i,error:S.error,IconComponent:d,variant:D,type:void 0,multiple:b,...C?{id:f}:{autoWidth:r,defaultOpen:c,displayEmpty:u,labelId:g,MenuProps:v,onClose:y,onOpen:x,open:w,renderValue:E,SelectDisplayProps:{id:f,...k}},...h,classes:h?ot(L,h.classes):L,...p?p.props.inputProps:{}},...(b&&C||u)&&D==="outlined"?{notched:!0}:{},ref:j,className:ye(M.props.className,l,P.root),...!p&&{variant:D},..._})})});process.env.NODE_ENV!=="production"&&(lr.propTypes={autoWidth:s.bool,children:s.node,classes:s.object,className:s.string,defaultOpen:s.bool,defaultValue:s.any,displayEmpty:s.bool,IconComponent:s.elementType,id:s.string,input:s.element,inputProps:s.object,label:s.node,labelId:s.string,MenuProps:s.object,multiple:s.bool,native:s.bool,onChange:s.func,onClose:s.func,onOpen:s.func,open:s.bool,renderValue:s.func,SelectDisplayProps:s.object,sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),value:s.oneOfType([s.oneOf([""]),s.any]),variant:s.oneOf(["filled","outlined","standard"])});lr.muiName="Select";const ut=m1({createStyledComponent:le("div",{name:"MuiStack",slot:"Root"}),useThemeProps:e=>Ie({props:e,name:"MuiStack"})});process.env.NODE_ENV!=="production"&&(ut.propTypes={children:s.node,component:s.elementType,direction:s.oneOfType([s.oneOf(["column-reverse","column","row-reverse","row"]),s.arrayOf(s.oneOf(["column-reverse","column","row-reverse","row"])),s.object]),divider:s.node,spacing:s.oneOfType([s.arrayOf(s.oneOfType([s.number,s.string])),s.number,s.object,s.string]),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),useFlexGap:s.bool});function cO(e){return ke("MuiSwitch",e)}const at=Oe("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),uO=e=>{const{classes:t,edge:n,size:o,color:r,checked:i,disabled:a}=e,l={root:["root",n&&`edge${ge(n)}`,`size${ge(o)}`],switchBase:["switchBase",`color${ge(r)}`,i&&"checked",a&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},c=Pe(l,cO,t);return{...t,...c}},dO=le("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${ge(n.edge)}`],t[`size${ge(n.size)}`]]}})({display:"inline-flex",width:58,height:38,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${at.thumb}`]:{width:16,height:16},[`& .${at.switchBase}`]:{padding:4,[`&.${at.checked}`]:{transform:"translateX(16px)"}}}}]}),fO=le(_h,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${at.input}`]:t.input},n.color!=="default"&&t[`color${ge(n.color)}`]]}})(Ne(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${e.palette.mode==="light"?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${at.checked}`]:{transform:"translateX(20px)"},[`&.${at.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${e.palette.mode==="light"?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${at.checked} + .${at.track}`]:{opacity:.5},[`&.${at.disabled} + .${at.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:`${e.palette.mode==="light"?.12:.2}`},[`& .${at.input}`]:{left:"-100%",width:"300%"}})),Ne(({theme:e})=>({"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(un(["light"])).map(([t])=>({props:{color:t},style:{[`&.${at.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${at.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${e.palette.mode==="light"?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.55)}`}},[`&.${at.checked} + .${at.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),pO=le("span",{name:"MuiSwitch",slot:"Track"})(Ne(({theme:e})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),backgroundColor:e.vars?e.vars.palette.common.onBackground:`${e.palette.mode==="light"?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:`${e.palette.mode==="light"?.38:.3}`}))),hO=le("span",{name:"MuiSwitch",slot:"Thumb"})(Ne(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"}))),Jh=A.forwardRef(function(t,n){const o=Ie({props:t,name:"MuiSwitch"}),{className:r,color:i="primary",edge:a=!1,size:l="medium",sx:c,slots:u={},slotProps:d={},...f}=o,p={...o,color:i,edge:a,size:l},h=uO(p),m={slots:u,slotProps:d},[g,v]=ze("root",{className:ye(h.root,r),elementType:dO,externalForwardedProps:m,ownerState:p,additionalProps:{sx:c}}),[b,C]=ze("thumb",{className:h.thumb,elementType:hO,externalForwardedProps:m,ownerState:p}),y=T.jsx(b,{...C}),[x,w]=ze("track",{className:h.track,elementType:pO,externalForwardedProps:m,ownerState:p});return T.jsxs(g,{...v,children:[T.jsx(fO,{type:"checkbox",icon:y,checkedIcon:y,ref:n,ownerState:p,...f,classes:{...h,root:h.switchBase},slots:{...u.switchBase&&{root:u.switchBase},...u.input&&{input:u.input}},slotProps:{...d.switchBase&&{root:typeof d.switchBase=="function"?d.switchBase(p):d.switchBase},input:{role:"switch"},...d.input&&{input:typeof d.input=="function"?d.input(p):d.input}}}),T.jsx(x,{...w})]})});process.env.NODE_ENV!=="production"&&(Jh.propTypes={checked:s.bool,checkedIcon:s.node,classes:s.object,className:s.string,color:s.oneOfType([s.oneOf(["default","primary","secondary","error","info","success","warning"]),s.string]),defaultChecked:s.bool,disabled:s.bool,disableRipple:s.bool,edge:s.oneOf(["end","start",!1]),icon:s.node,id:s.string,inputProps:s.object,inputRef:St,onChange:s.func,required:s.bool,size:s.oneOfType([s.oneOf(["medium","small"]),s.string]),slotProps:s.shape({input:s.oneOfType([s.func,s.object]),root:s.oneOfType([s.func,s.object]),switchBase:s.oneOfType([s.func,s.object]),thumb:s.oneOfType([s.func,s.object]),track:s.oneOfType([s.func,s.object])}),slots:s.shape({input:s.elementType,root:s.elementType,switchBase:s.elementType,thumb:s.elementType,track:s.elementType}),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),value:s.any});function mO(e){return ke("MuiTextField",e)}Oe("MuiTextField",["root"]);const gO={standard:gs,filled:ms,outlined:ys},yO=e=>{const{classes:t}=e;return Pe({root:["root"]},mO,t)},bO=le(Ni,{name:"MuiTextField",slot:"Root"})({}),Vt=A.forwardRef(function(t,n){const o=Ie({props:t,name:"MuiTextField"}),{autoComplete:r,autoFocus:i=!1,children:a,className:l,color:c="primary",defaultValue:u,disabled:d=!1,error:f=!1,FormHelperTextProps:p,fullWidth:h=!1,helperText:m,id:g,InputLabelProps:v,inputProps:b,InputProps:C,inputRef:y,label:x,maxRows:w,minRows:E,multiline:k=!1,name:R,onBlur:_,onChange:V,onFocus:I,placeholder:S,required:D=!1,rows:N,select:P=!1,SelectProps:O,slots:L={},slotProps:M={},type:j,value:$,variant:z="outlined",...H}=o,U={...o,autoFocus:i,color:c,disabled:d,error:f,fullWidth:h,multiline:k,required:D,select:P,variant:z},W=yO(U);process.env.NODE_ENV!=="production"&&P&&!a&&console.error("MUI: `children` must be passed when using the `TextField` component with `select`.");const G=gl(g),J=m&&G?`${G}-helper-text`:void 0,te=x&&G?`${G}-label`:void 0,q=gO[z],ee={slots:L,slotProps:{input:C,inputLabel:v,htmlInput:b,formHelperText:p,select:O,...M}},Q={},oe=ee.slotProps.inputLabel;z==="outlined"&&(oe&&typeof oe.shrink<"u"&&(Q.notched=oe.shrink),Q.label=x),P&&((!O||!O.native)&&(Q.id=void 0),Q["aria-describedby"]=void 0);const[B,ie]=ze("root",{elementType:bO,shouldForwardComponentProp:!0,externalForwardedProps:{...ee,...H},ownerState:U,className:ye(W.root,l),ref:n,additionalProps:{disabled:d,error:f,fullWidth:h,required:D,color:c,variant:z}}),[re,ue]=ze("input",{elementType:q,externalForwardedProps:ee,additionalProps:Q,ownerState:U}),[xe,Te]=ze("inputLabel",{elementType:Ol,externalForwardedProps:ee,ownerState:U}),[je,K]=ze("htmlInput",{elementType:"input",externalForwardedProps:ee,ownerState:U}),[Z,ne]=ze("formHelperText",{elementType:Fh,externalForwardedProps:ee,ownerState:U}),[X,pe]=ze("select",{elementType:lr,externalForwardedProps:ee,ownerState:U}),se=T.jsx(re,{"aria-describedby":J,autoComplete:r,autoFocus:i,defaultValue:u,fullWidth:h,multiline:k,name:R,rows:N,maxRows:w,minRows:E,type:j,value:$,id:G,inputRef:y,onBlur:_,onChange:V,onFocus:I,placeholder:S,inputProps:K,slots:{input:L.htmlInput?je:void 0},...ue});return T.jsxs(B,{...ie,children:[x!=null&&x!==""&&T.jsx(xe,{htmlFor:G,id:te,...Te,children:x}),P?T.jsx(X,{"aria-describedby":J,id:G,labelId:te,value:$,input:se,...pe,children:a}):se,m&&T.jsx(Z,{id:J,...ne,children:m})]})});process.env.NODE_ENV!=="production"&&(Vt.propTypes={autoComplete:s.string,autoFocus:s.bool,children:s.node,classes:s.object,className:s.string,color:s.oneOfType([s.oneOf(["primary","secondary","error","info","success","warning"]),s.string]),defaultValue:s.any,disabled:s.bool,error:s.bool,FormHelperTextProps:s.object,fullWidth:s.bool,helperText:s.node,id:s.string,InputLabelProps:s.object,inputProps:s.object,InputProps:s.object,inputRef:St,label:s.node,margin:s.oneOf(["dense","none","normal"]),maxRows:s.oneOfType([s.number,s.string]),minRows:s.oneOfType([s.number,s.string]),multiline:s.bool,name:s.string,onBlur:s.func,onChange:s.func,onFocus:s.func,placeholder:s.string,required:s.bool,rows:s.oneOfType([s.number,s.string]),select:s.bool,SelectProps:s.object,size:s.oneOfType([s.oneOf(["medium","small"]),s.string]),slotProps:s.shape({formHelperText:s.oneOfType([s.func,s.object]),htmlInput:s.oneOfType([s.func,s.object]),input:s.oneOfType([s.func,s.object]),inputLabel:s.oneOfType([s.func,s.object]),select:s.oneOfType([s.func,s.object])}),slots:s.shape({formHelperText:s.elementType,htmlInput:s.elementType,input:s.elementType,inputLabel:s.elementType,root:s.elementType,select:s.elementType}),sx:s.oneOfType([s.arrayOf(s.oneOfType([s.func,s.object,s.bool])),s.func,s.object]),type:s.string,value:s.any,variant:s.oneOf(["filled","outlined","standard"])});const Po=2,Zs=5;function jt({node:e,nodeLabel:t,setNodeLabel:n,nodeMetaData:o,setNodeMetaData:r}){const i=e.type==="multiChoice",a=o&&typeof o=="object"&&!Array.isArray(o)?o:{},l=typeof a.field1=="string"?a.field1:"",c=typeof a.field2=="string"?a.field2:"",u=typeof a.field3=="string"?a.field3:"",d=Math.min(Zs,Math.max(Po,Number(a.choiceCount)||Po));return T.jsxs(ut,{spacing:2,children:[T.jsx(Vt,{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(Vt,{label:"Number of choices (2–5)",type:"number",inputProps:{min:Po,max:Zs,step:1},value:d,onChange:f=>r(p=>({...p&&typeof p=="object"&&!Array.isArray(p)?p:{},choiceCount:Math.min(Zs,Math.max(Po,Number(f.target.value)||Po))})),fullWidth:!0,helperText:"Reducing prunes removed-branch subtrees (END preserved)."}),T.jsx(Vt,{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(Vt,{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(Vt,{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 vO({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:"",a=typeof r.body=="string"?r.body:"";return T.jsxs(ut,{spacing:2,children:[T.jsx(Vt,{label:"Node label",helperText:"Shown in the node body (under the divider)",value:e,onChange:l=>t(l.target.value),fullWidth:!0}),T.jsx(Vt,{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(Vt,{label:"Email body",value:a,onChange:l=>o(c=>({...c&&typeof c=="object"&&!Array.isArray(c)?c:{},body:l.target.value})),fullWidth:!0,multiline:!0,minRows:4})]})}function xO({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:"",a=r.hasTimeDependency!==!1,l=c=>{const u=c.target.value;o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},trackedEvent:u})),t(u)};return T.jsx(ut,{spacing:2,children:T.jsxs(Ni,{fullWidth:!0,children:[T.jsxs(ut,{children:[T.jsx(Ol,{id:"demo-simple-select-label",children:"Tracked Event"}),T.jsxs(lr,{labelId:"demo-simple-select-label",id:"demo-simple-select",value:i,label:"Tracked Event",onChange:l,children:[T.jsx(Nt,{value:"Class Booked",children:"Class Booked"}),T.jsx(Nt,{value:"Class Cancelled",children:"Class Cancelled"}),T.jsx(Nt,{value:"Class Rescheduled",children:"Class Rescheduled"})]}),T.jsx(nt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:"Select the event to wait for before proceeding."})]}),T.jsxs(ut,{sx:{mt:2},spacing:1,children:[T.jsx(Lh,{control:T.jsx(Jh,{checked:!a,onChange:c=>{const u=c.target.checked;o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},hasTimeDependency:!u}))}}),label:"No time dependency"}),!a&&T.jsx(nt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:'This node will only follow the "Yes / True" path.'})]}),a&&T.jsxs(ut,{sx:{mt:2},spacing:1,children:[T.jsx(nt,{variant:"subtitle2",children:'Wait time before "No / False" is triggered'}),T.jsxs(ut,{direction:"row",spacing:1,alignItems:"center",children:[T.jsx(Vt,{type:"number",value:r.waitTime??7,onChange:c=>{const u=parseInt(c.target.value,10);o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},waitTime:isNaN(u)?0:u}))},InputProps:{inputProps:{min:0}},sx:{width:100}}),T.jsx(Ni,{sx:{minWidth:120},children:T.jsxs(lr,{value:r.waitType??"days",onChange:c=>{const u=c.target.value;o(d=>({...d&&typeof d=="object"&&!Array.isArray(d)?d:{},waitType:u}))},children:[T.jsx(Nt,{value:"days",children:"Days"}),T.jsx(Nt,{value:"hours",children:"Hours"}),T.jsx(Nt,{value:"minutes",children:"Minutes"})]})})]}),T.jsx(nt,{variant:"caption",sx:{mt:.5,color:"text.secondary"},children:'Specify how long to wait for the event before taking "No / False" action.'})]})]})})}const lt="start",Ge="end",yo="mingcute:entrance-fill",bo="mingcute:exit-fill",vo=2,bn=()=>({field1:"",field2:"",field3:""}),wO=()=>({trackedEvent:"",waitTime:7,waitType:"days",hasTimeDependency:!0}),SO=()=>({subject:"",body:""}),EO=()=>({...bn(),choiceCount:vo}),bd=()=>({}),xo=[{kind:"start",title:"Start",icon:yo,drawerFormComponent:jt,createInitialNodeMetaData:bd},{kind:"end",title:"Exit",icon:bo,drawerFormComponent:jt,createInitialNodeMetaData:bd},{kind:"email",title:"Email",category:"Send Message",nodeType:"action",icon:"streamline:send-email",drawerFormComponent:vO,createInitialNodeMetaData:SO},{kind:"sms",title:"SMS",category:"Send Message",nodeType:"action",icon:"fa-solid:sms",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"push",title:"Push Notification / Web Message",category:"Send Message",nodeType:"action",icon:"mdi:message-badge-outline",enabled:!1,drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"tag",title:"Tag Client",category:"Update",nodeType:"action",icon:"ph:tag",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"note",title:"Add Client Note",category:"Update",nodeType:"action",icon:"material-symbols-light:add-notes-outline",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"delay",title:"Delay",category:"Action",nodeType:"action",icon:"mdi:timer-sand-empty",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"smartFilter",title:"Smart Filter",category:"Event",nodeType:"conditional",icon:"tabler:filter",drawerFormComponent:jt,createInitialNodeMetaData:bn},{kind:"waitForEvent",title:"Tracked Event",category:"Event",nodeType:"conditional",icon:"codicon:github-action",drawerFormComponent:xO,createInitialNodeMetaData:wO},{kind:"multiChoice",title:"Multi Choice",category:"Event",nodeType:"multiChoice",icon:"tabler:list-numbers",drawerFormComponent:jt,createInitialNodeMetaData:EO}],CO=xo;function bs(e){return new Map(e.map(t=>[t.kind,t]))}function em(e){return!!e&&e.kind!=="start"&&e.kind!=="end"}function tm(e,t){if(t.length===0)return e;const n=bs(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 TO=["Send Message","Update","Action","Event"];function nm(e=xo){const t={"Send Message":[],Update:[],Action:[],Event:[]};for(const n of e)em(n)&&t[n.category].push(n);return t}function NO(e,t=xo){const n=bs(t).get(e);return em(n)?n.nodeType:"action"}const kO=[{id:lt,type:"start",position:{x:260,y:60},data:{label:"Start",nodeLabel:"",kind:"start",icon:yo,nodeMetaData:{}}},{id:Ge,type:"end",position:{x:260,y:520},data:{label:"Exit",nodeLabel:"",kind:"end",icon:bo,nodeMetaData:{}}}],OO=[{id:"e-start-out-end",type:"plusEdge",source:lt,sourceHandle:"out",target:Ge,targetHandle:"in",data:{kind:"default",isRedirect:!1}}],Il=150,PO=170,vd=Il,RO=24,_O=Il+RO;function xd(e){return Math.min(5,Math.max(2,Number(e.data.nodeMetaData?.choiceCount)||vo))}function wd(e,t){const n=new Map(e.map(p=>[p.id,p])),o=n.get(lt),r=n.get(Ge),i=o?.position.x??260,a=o?.position.y??60,l=t.filter(p=>!p.data?.isRedirect),c=new Map;for(const p of l){const h=c.get(p.source)??[];h.push(p),c.set(p.source,h)}const u=new Map,d=new Map;u.set(lt,0),d.set(lt,i);const f=[lt];for(;f.length;){const p=f.shift(),h=n.get(p);if(!h)continue;const m=u.get(p)??0,g=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=m+1;if(x!=null&&x<=m||!(x==null||w<x))continue;u.set(C,w);let k=g;if(h.type==="conditional"){const R=b.sourceHandle??"",_=R==="yes"?g-vd:R==="no"?g+vd:g;if(y.type==="multiChoice"&&(R==="yes"||R==="no")){const V=xd(y),I=Math.max(0,V-2)*Il;k=R==="yes"?_-I:_+I}else k=_}if(h.type==="multiChoice"){const _=(xd(h)-1)/2,V=/^c(\d)$/.exec(b.sourceHandle??""),S=(V?Number(V[1]):1)-1-_;k=g+S*_O}d.set(C,k),f.push(C)}}if(r){d.set(Ge,i);let p=0;for(const[h,m]of u.entries())h!==Ge&&(p=Math.max(p,m));u.set(Ge,p+1)}return e.map(p=>{const h=u.get(p.id),m=d.get(p.id);if(h==null||m==null)return p;const g=a+h*PO;return p.id===Ge?{...p,position:{x:i,y:g}}:{...p,position:{x:m,y:g}}})}function Sd(e){const{nodeId:t,removedHandles:n,nodes:o,edges:r}=e,i=new Map(o.map(b=>[b.id,b])),a=new Map,l=new Map;for(const b of r){const C=a.get(b.source)??[];C.push(b),a.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!==Ge&&b!==lt),f=new Set,p=[...d];for(;p.length;){const b=p.pop();if(b===Ge||b===lt||!i.has(b)||f.has(b))continue;f.add(b);const C=a.get(b)??[];for(const y of C)c(y)&&y.target!==Ge&&p.push(y.target)}const h=new Set;let m=!0;for(;m;){m=!1;for(const b of f){if(b===Ge||h.has(b))continue;(l.get(b)??[]).filter(c).filter(x=>!(x.source===t&&n.includes(x.sourceHandle??"")||h.has(x.source))).length===0&&(h.add(b),m=!0)}}if(h.size===0)return{nodes:o,edges:r};const g=o.filter(b=>!h.has(b.id)||b.id===Ge),v=r.filter(b=>!(h.has(b.source)||h.has(b.target)));return{nodes:g,edges:v}}function IO(e,t){const n=e.icons,o=e.aliases||Object.create(null),r=Object.create(null);function i(a){if(n[a])return r[a]=[];if(!(a in r)){r[a]=null;const l=o[a]&&o[a].parent,c=l&&i(l);c&&(r[a]=[l].concat(c))}return r[a]}return Object.keys(n).concat(Object.keys(o)).forEach(i),r}const om=Object.freeze({left:0,top:0,width:16,height:16}),Oi=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),Ml=Object.freeze({...om,...Oi}),_a=Object.freeze({...Ml,body:"",hidden:!1});function MO(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 Ed(e,t){const n=MO(e,t);for(const o in _a)o in Oi?o in e&&!(o in n)&&(n[o]=Oi[o]):o in t?n[o]=t[o]:o in e&&(n[o]=e[o]);return n}function $O(e,t,n){const o=e.icons,r=e.aliases||Object.create(null);let i={};function a(l){i=Ed(o[l]||r[l],i)}return a(t),n.forEach(a),Ed(e,i)}function rm(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=IO(e);for(const r in o){const i=o[r];i&&(t(r,$O(e,r,i)),n.push(r))}return n}const AO={provider:"",aliases:{},not_found:{},...om};function Qs(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function im(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!Qs(e,AO))return null;const n=t.icons;for(const r in n){const i=n[r];if(!r||typeof i.body!="string"||!Qs(i,_a))return null}const o=t.aliases||Object.create(null);for(const r in o){const i=o[r],a=i.parent;if(!r||typeof a!="string"||!n[a]&&!o[a]||!Qs(i,_a))return null}return t}const Cd=Object.create(null);function DO(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function po(e,t){const n=Cd[e]||(Cd[e]=Object.create(null));return n[t]||(n[t]=DO(e,t))}function sm(e,t){return im(t)?rm(t,(n,o)=>{o?e.icons[n]=o:e.missing.add(n)}):[]}function jO(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}const am=/^[a-z0-9]+(-[a-z0-9]+)*$/,vs=(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&&!ti(u)?null:u}const i=r[0],a=i.split("-");if(a.length>1){const l={provider:o,prefix:a.shift(),name:a.join("-")};return t&&!ti(l)?null:l}if(n&&o===""){const l={provider:o,prefix:"",name:i};return t&&!ti(l,n)?null:l}return null},ti=(e,t)=>e?!!((t&&e.prefix===""||e.prefix)&&e.name):!1;let cr=!1;function lm(e){return typeof e=="boolean"&&(cr=e),cr}function Td(e){const t=typeof e=="string"?vs(e,!0,cr):e;if(t){const n=po(t.provider,t.prefix),o=t.name;return n.icons[o]||(n.missing.has(o)?null:void 0)}}function LO(e,t){const n=vs(e,!0,cr);if(!n)return!1;const o=po(n.provider,n.prefix);return t?jO(o,n.name,t):(o.missing.add(n.name),!0)}function FO(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),cr&&!t&&!e.prefix){let r=!1;return im(e)&&(e.prefix="",rm(e,(i,a)=>{LO(i,a)&&(r=!0)})),r}const n=e.prefix;if(!ti({prefix:n,name:"a"}))return!1;const o=po(t,n);return!!sm(o,e)}const cm=Object.freeze({width:null,height:null}),um=Object.freeze({...cm,...Oi}),BO=/(-?[0-9.]*[0-9]+[0-9.]*)/g,zO=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Nd(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(BO);if(o===null||!o.length)return e;const r=[];let i=o.shift(),a=zO.test(i);for(;;){if(a){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("");a=!a}}function VO(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 a=e.indexOf(">",i);if(a===-1)break;n+=e.slice(r+1,i).trim(),e=e.slice(0,o).trim()+e.slice(a+1)}return{defs:n,content:e}}function HO(e,t){return e?"<defs>"+e+"</defs>"+t:t}function WO(e,t,n){const o=VO(e);return HO(o.defs,t+o.content+n)}const UO=e=>e==="unset"||e==="undefined"||e==="none";function qO(e,t){const n={...Ml,...e},o={...um,...t},r={left:n.left,top:n.top,width:n.width,height:n.height};let i=n.body;[n,o].forEach(g=>{const v=[],b=g.hFlip,C=g.vFlip;let y=g.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=WO(i,'<g transform="'+v.join(" ")+'">',"</g>"))});const a=o.width,l=o.height,c=r.width,u=r.height;let d,f;a===null?(f=l===null?"1em":l==="auto"?u:l,d=Nd(f,c/u)):(d=a==="auto"?c:a,f=l===null?Nd(d,u/c):l==="auto"?u:l);const p={},h=(g,v)=>{UO(v)||(p[g]=v.toString())};h("width",d),h("height",f);const m=[r.left,r.top,c,u];return p.viewBox=m.join(" "),{attributes:p,viewBox:m,body:i}}const YO=/\sid="(\S+)"/g,GO="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let KO=0;function XO(e,t=GO){const n=[];let o;for(;o=YO.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 a=typeof t=="function"?t(i):t+(KO++).toString(),l=i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+l+')([")]|\\.[a-z])',"g"),"$1"+a+r+"$3")}),e=e.replace(new RegExp(r,"g"),""),e}const Ia=Object.create(null);function ZO(e,t){Ia[e]=t}function Ma(e){return Ia[e]||Ia[""]}function $l(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 Al=Object.create(null),Ro=["https://api.simplesvg.com","https://api.unisvg.com"],ni=[];for(;Ro.length>0;)Ro.length===1||Math.random()>.5?ni.push(Ro.shift()):ni.push(Ro.pop());Al[""]=$l({resources:["https://api.iconify.design"].concat(ni)});function QO(e,t){const n=$l(t);return n===null?!1:(Al[e]=n,!0)}function Dl(e){return Al[e]}const JO=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let kd=JO();function eP(e,t){const n=Dl(e);if(!n)return 0;let o;if(!n.maxURL)o=0;else{let r=0;n.resources.forEach(a=>{r=Math.max(r,a.length)});const i=t+".json?icons=";o=n.maxURL-r-n.path.length-i.length}return o}function tP(e){return e===404}const nP=(e,t,n)=>{const o=[],r=eP(e,t),i="icons";let a={type:i,provider:e,prefix:t,icons:[]},l=0;return n.forEach((c,u)=>{l+=c.length+1,l>=r&&u>0&&(o.push(a),a={type:i,provider:e,prefix:t,icons:[]},l=c.length),a.icons.push(c)}),o.push(a),o};function oP(e){if(typeof e=="string"){const t=Dl(e);if(t)return t.path}return"/"}const rP=(e,t,n)=>{if(!kd){n("abort",424);return}let o=oP(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;kd(e+o).then(i=>{const a=i.status;if(a!==200){setTimeout(()=>{n(tP(a)?"abort":"next",a)});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)})},iP={prepare:nP,send:rP};function dm(e,t){e.forEach(n=>{const o=n.loaderCallbacks;o&&(n.loaderCallbacks=o.filter(r=>r.id!==t))})}function sP(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 a=i.icons,l=a.pending.length;a.pending=a.pending.filter(c=>{if(c.prefix!==r)return!0;const u=c.name;if(e.icons[u])a.loaded.push({provider:o,prefix:r,name:u});else if(e.missing.has(u))a.missing.push({provider:o,prefix:r,name:u});else return n=!0,!0;return!1}),a.pending.length!==l&&(n||dm([e],i.id),i.callback(a.loaded.slice(0),a.missing.slice(0),a.pending.slice(0),i.abort))})}))}let aP=0;function lP(e,t,n){const o=aP++,r=dm.bind(null,n,o);if(!t.pending.length)return r;const i={id:o,icons:t,callback:e,abort:r};return n.forEach(a=>{(a.loaderCallbacks||(a.loaderCallbacks=[])).push(i)}),r}function cP(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,a=r.prefix,l=r.name,c=n[i]||(n[i]=Object.create(null)),u=c[a]||(c[a]=po(i,a));let d;l in u.icons?d=t.loaded:a===""||u.missing.has(l)?d=t.missing:d=t.pending;const f={provider:i,prefix:a,name:l};d.push(f)}),t}function uP(e,t=!0,n=!1){const o=[];return e.forEach(r=>{const i=typeof r=="string"?vs(r,t,n):r;i&&o.push(i)}),o}const dP={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function fP(e,t,n,o){const r=e.resources.length,i=e.random?Math.floor(Math.random()*r):e.index;let a;if(e.random){let E=e.resources.slice(0);for(a=[];E.length>1;){const k=Math.floor(Math.random()*E.length);a.push(E[k]),E=E.slice(0,k).concat(E.slice(k+1))}a=a.concat(E)}else a=e.resources.slice(i).concat(e.resources.slice(0,i));const l=Date.now();let c="pending",u=0,d,f=null,p=[],h=[];typeof o=="function"&&h.push(o);function m(){f&&(clearTimeout(f),f=null)}function g(){c==="pending"&&(c="aborted"),m(),p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function v(E,k){k&&(h=[]),typeof E=="function"&&h.push(E)}function b(){return{startTime:l,payload:t,status:c,queriesSent:u,queriesPending:p.length,subscribe:v,abort:g}}function C(){c="failed",h.forEach(E=>{E(void 0,d)})}function y(){p.forEach(E=>{E.status==="pending"&&(E.status="aborted")}),p=[]}function x(E,k,R){const _=k!=="success";switch(p=p.filter(V=>V!==E),c){case"pending":break;case"failed":if(_||!e.dataAfterTimeout)return;break;default:return}if(k==="abort"){d=R,C();return}if(_){d=R,p.length||(a.length?w():C());return}if(m(),y(),!e.random){const V=e.resources.indexOf(E.resource);V!==-1&&V!==e.index&&(e.index=V)}c="completed",h.forEach(V=>{V(R)})}function w(){if(c!=="pending")return;m();const E=a.shift();if(E===void 0){if(p.length){f=setTimeout(()=>{m(),c==="pending"&&(y(),C())},e.timeout);return}C();return}const k={status:"pending",resource:E,callback:(R,_)=>{x(k,R,_)}};p.push(k),u++,f=setTimeout(w,e.rotate),n(E,t,k.callback)}return setTimeout(w),b}function fm(e){const t={...dP,...e};let n=[];function o(){n=n.filter(l=>l().status==="pending")}function r(l,c,u){const d=fP(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 Od(){}const Js=Object.create(null);function pP(e){if(!Js[e]){const t=Dl(e);if(!t)return;const n=fm(t),o={config:t,redundancy:n};Js[e]=o}return Js[e]}function hP(e,t,n){let o,r;if(typeof e=="string"){const i=Ma(e);if(!i)return n(void 0,424),Od;r=i.send;const a=pP(e);a&&(o=a.redundancy)}else{const i=$l(e);if(i){o=fm(i);const a=e.resources?e.resources[0]:"",l=Ma(a);l&&(r=l.send)}}return!o||!r?(n(void 0,424),Od):o.query(t,r,n)().abort}function Pd(){}function mP(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,sP(e)}))}function gP(e){const t=[],n=[];return e.forEach(o=>{(o.match(am)?t:n).push(o)}),{valid:t,invalid:n}}function _o(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(!sm(e,n).length){o();return}}catch(r){console.error(r)}o(),mP(e)}function Rd(e,t){e instanceof Promise?e.then(n=>{t(n)}).catch(()=>{t(null)}):t(e)}function yP(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)){Rd(e.loadIcons(r,o,n),d=>{_o(e,r,d)});return}if(i){r.forEach(d=>{const f=i(d,o,n);Rd(f,p=>{const h=p?{prefix:o,icons:{[d]:p}}:null;_o(e,[d],h)})});return}const{valid:a,invalid:l}=gP(r);if(l.length&&_o(e,l,null),!a.length)return;const c=o.match(am)?Ma(n):null;if(!c){_o(e,a,null);return}c.prepare(n,o,a).forEach(d=>{hP(n,d,f=>{_o(e,d.icons,f)})})}))}const bP=(e,t)=>{const n=uP(e,!0,lm()),o=cP(n);if(!o.pending.length){let c=!0;return t&&setTimeout(()=>{c&&t(o.loaded,o.missing,o.pending,Pd)}),()=>{c=!1}}const r=Object.create(null),i=[];let a,l;return o.pending.forEach(c=>{const{provider:u,prefix:d}=c;if(d===l&&u===a)return;a=u,l=d,i.push(po(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=po(u,d),h=p.pendingIcons||(p.pendingIcons=new Set);h.has(f)||(h.add(f),r[u][d].push(f))}),i.forEach(c=>{const u=r[c.provider][c.prefix];u.length&&yP(c,u)}),t?lP(t,o,i):Pd};function vP(e,t){const n={...e};for(const o in t){const r=t[o],i=typeof r;o in cm?(r===null||r&&(i==="string"||i==="number"))&&(n[o]=r):i===typeof n[o]&&(n[o]=o==="rotate"?r%4:r)}return n}const xP=/[\s,]+/;function wP(e,t){t.split(xP).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function SP(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 EP(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 CP(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function TP(e){return"data:image/svg+xml,"+CP(e)}function NP(e){return'url("'+TP(e)+'")'}let qo;function kP(){try{qo=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{qo=null}}function OP(e){return qo===void 0&&kP(),qo?qo.createHTML(e):e}const pm={...um,inline:!1},PP={xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},RP={display:"inline-block"},$a={backgroundColor:"currentColor"},hm={backgroundColor:"transparent"},_d={Image:"var(--svg)",Repeat:"no-repeat",Size:"100% 100%"},Id={WebkitMask:$a,mask:$a,background:hm};for(const e in Id){const t=Id[e];for(const n in _d)t[e+n]=_d[n]}const _P={...pm,inline:!0};function Md(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}const IP=(e,t,n)=>{const o=t.inline?_P:pm,r=vP(o,t),i=t.mode||"svg",a={},l=t.style||{},c={...i==="svg"?PP:{}};if(n){const v=vs(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"&&wP(r,b);break;case"color":a.color=b;break;case"rotate":typeof b=="string"?r[v]=SP(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=qO(e,r),d=u.attributes;if(r.inline&&(a.verticalAlign="-0.125em"),i==="svg"){c.style={...a,...l},Object.assign(c,d);let v=0,b=t.id;return typeof b=="string"&&(b=b.replace(/-/g,"_")),c.dangerouslySetInnerHTML={__html:OP(XO(u.body,b?()=>b+"ID"+v++:"iconifyReact"))},F.createElement("svg",c)}const{body:f,width:p,height:h}=e,m=i==="mask"||(i==="bg"?!1:f.indexOf("currentColor")!==-1),g=EP(f,{...d,width:p+"",height:h+""});return c.style={...a,"--svg":NP(g),width:Md(d.width),height:Md(d.height),...RP,...m?$a:hm,...l},F.createElement("span",c)};lm(!0);ZO("",iP);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"||!FO(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;QO(n,r)||console.error(o)}catch{console.error(o)}}}}function mm(e){const[t,n]=F.useState(!!e.ssr),[o,r]=F.useState({});function i(h){if(h){const m=e.icon;if(typeof m=="object")return{name:"",data:m};const g=Td(m);if(g)return{name:m,data:g}}return{name:""}}const[a,l]=F.useState(i(!!e.ssr));function c(){const h=o.callback;h&&(h(),r({}))}function u(h){if(JSON.stringify(a)!==JSON.stringify(h))return c(),l(h),!0}function d(){var h;const m=e.icon;if(typeof m=="object"){u({name:"",data:m});return}const g=Td(m);if(u({name:m,data:g}))if(g===void 0){const v=bP([m],d);r({callback:v})}else g&&((h=e.onLoad)===null||h===void 0||h.call(e,m))}F.useEffect(()=>(n(!0),c),[]),F.useEffect(()=>{t&&d()},[e.icon,t]);const{name:f,data:p}=a;return p?IP({...Ml,...p},e,f):e.children?e.children:e.fallback?e.fallback:F.createElement("span",{})}const MP=F.forwardRef((e,t)=>mm({...e,_ref:t}));F.forwardRef((e,t)=>mm({inline:!0,...e,_ref:t}));const jl=F.forwardRef(({icon:e,width:t=20,sx:n,...o},r)=>T.jsx(hs,{ref:r,component:MP,className:"component-iconify",icon:e,sx:{width:t,height:t,...n},...o}));jl.displayName="Iconify";function Er({title:e,icon:t,children:n}){return T.jsx(hs,{width:"200px",sx:{borderRadius:"3px",backgroundColor:"white",border:"1px solid #646464",boxShadow:"0 0 6px 2px rgba(0, 0, 0, 0.08)"},children:T.jsxs(ut,{children:[T.jsxs(ut,{direction:"row",spacing:1,sx:{p:.5,alignItems:"center"},children:[T.jsx(jl,{icon:t,width:20,sx:{color:"rgba(0, 167, 111, 0.7)"}}),T.jsx(nt,{variant:"caption",sx:{color:"#646464"},children:e})]}),n?T.jsxs(T.Fragment,{children:[T.jsx(sn,{}),n]}):null]})})}function $P(e){if(typeof e!="string")return null;const t=e.trim();return t||null}function AP(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 a=$P(t[i]);if(a&&(r.push(a),r.length===3))break}return r}function Cr({nodeLabel:e,nodeMetaData:t}){const n=e?.trim()??"",o=!!n,r=AP(t);return T.jsxs(ut,{children:[T.jsx(nt,{variant:"body2",textAlign:"center",py:.5,sx:{color:o?"#646464":"#f36",fontSize:"8px",fontWeight:600},children:o?n:"Action required"}),r.map((i,a)=>T.jsx(nt,{variant:"caption",textAlign:"center",sx:{color:"#646464",fontSize:"8px",opacity:.85,lineHeight:"10px"},children:i},a))]})}function DP({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(Er,{title:e.label,icon:e.icon??(e.kind==="start"?yo:bo),children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(gt,{type:"source",position:de.Bottom,id:"out"})]})}function jP({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??(e.kind==="start"?yo:bo),children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})})]})}function LP({data:e}){return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??"ph:circle",children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(gt,{type:"source",position:de.Bottom,id:"out"})]})}const FP={left:"30%"},BP={left:"70%"},zP={left:"50%"};function VP({data:e}){const t=e.kind==="abTest",n=e.nodeMetaData&&typeof e.nodeMetaData=="object"&&!Array.isArray(e.nodeMetaData)?e.nodeMetaData:{},r=e.kind==="waitForEvent"?n.hasTimeDependency!==!1:!0;return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??"tabler:arrow-fork",children:T.jsx(Cr,{nodeLabel:e.nodeLabel,nodeMetaData:e.nodeMetaData})}),T.jsx(gt,{type:"source",position:de.Bottom,id:"yes",style:r?FP:zP}),r&&T.jsx(gt,{type:"source",position:de.Bottom,id:"no",style:BP}),T.jsxs("div",{style:{position:"absolute",width:150,left:0,top:"100%",marginTop:2,display:"flex",justifyContent:r?"space-between":"center",fontSize:9,color:"#4f4f4f",pointerEvents:"none"},children:[T.jsx("span",{style:{transform:r?"translateX(-6px)":void 0},children:t?"A":"Yes"}),r&&T.jsx("span",{style:{transform:"translateX(6px)"},children:t?"B":"No"})]})]})}function HP({data:e}){const t=Math.min(5,Math.max(2,Number(e.nodeMetaData?.choiceCount)||vo));return T.jsxs(T.Fragment,{children:[T.jsx(gt,{type:"target",position:de.Top,id:"in"}),T.jsx(Er,{title:e.label,icon:e.icon??"tabler:list-numbers",children:T.jsx(Cr,{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(gt,{type:"source",position:de.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 WP(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 UP(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 qP(e){if(e.length===0)return{x:0,y:0};if(e.length===1)return e[0];const n=UP(e)/2;let o=0;for(let r=1;r<e.length;r++){const i=e[r-1],a=e[r],l=Math.hypot(a.x-i.x,a.y-i.y);if(o+l>=n){const c=l===0?0:(n-o)/l;return{x:i.x+(a.x-i.x)*c,y:i.y+(a.y-i.y)*c}}o+=l}return e[e.length-1]}const YP={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"},GP={position:"absolute",background:"transparent",padding:10,color:"#4f4f4f",fontSize:9,fontWeight:500};function KP(e){const{id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a,targetPosition:l,markerEnd:c,data:u}=e,d=e.sourceHandleId,f=Vw(),p=u?._onPlusClick,h=!!u?.isRedirect,m=i<o-5,[g,v,b]=Ka({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:l}),C=150,y=f.length===0?Math.min(n,r):Math.min(...f.map(j=>j.position.x)),x=f.length===0?Math.max(n,r):Math.max(...f.map(j=>j.position.x+C)),w=140,E=Math.min(y-w,n-w,r-w),k=Math.max(x+w,n+w,r+w),R=h&&d==="yes",_=h&&d==="no",V=R?E:k,I=30,S=[{x:n,y:o},{x:V,y:o},{x:V,y:i-I},{x:r,y:i-I},{x:r,y:i}],D=WP(S),N=qP(S),P=m?D:g,O=m?N.x:v,L=m?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(gr,{id:t,path:P,markerEnd:c,style:{strokeWidth:2,stroke:"#646464",strokeDasharray:h?"6 4":void 0}}),T.jsxs(Fw,{children:[!!M&&T.jsx("div",{style:{...GP,transform:`translate(-50%, 0%) translate(${n}px,${o-10}px)`},className:"nodrag nopan",children:M}),T.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${O}px,${L}px)`,pointerEvents:"all"},className:"nodrag nopan",children:T.jsx("button",{type:"button",onClick:()=>p?.(t),style:YP,title:"Edge actions",children:"+"})})]})]})}function XP({menu:e,onClose:t,definitions:n,onChooseKind:o,redirectCandidates:r,onChooseRedirectTarget:i,onSwitchMode:a}){const l=F.useMemo(()=>nm(n),[n]),c=F.useCallback(()=>{const f=[],p=(h,m,g)=>{f.push(T.jsx(nt,{variant:"body1",sx:{fontWeight:600,textAlign:"center",px:2,pt:f.length?2:1},children:h},`${g}-t`)),f.push(T.jsx(sn,{},`${g}-d`));for(const v of m){const b=v.enabled===!1;f.push(T.jsxs(Nt,{disabled:b,onClick:()=>o(e.edgeId,v.kind),sx:b?{opacity:.5}:void 0,children:[T.jsx(Vh,{children:T.jsx(jl,{icon:v.icon,width:28,sx:{color:"#646464"}})}),T.jsx(Fo,{children:v.title})]},`${g}-${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(sn,{},"redir-d")),f.push(T.jsx(Nt,{onClick:()=>a("redirect",!1),children:T.jsx(Fo,{primary:"Redirect to…"})},"redir")),f},[l,e,o,a]),u=F.useCallback(()=>[T.jsx(Ei,{disableSticky:!0,sx:{fontWeight:700,lineHeight:"32px"},children:e?.relinkSolid?"Relink solid edge to…":"Redirect to…"},"rs"),...r.map(f=>T.jsx(Nt,{onClick:()=>i(e.edgeId,f.id,!e?.relinkSolid),children:T.jsx(Fo,{primary:f.label,secondary:f.nodeLabel?.trim()?f.nodeLabel:`id: ${f.id}`})},`rc-${f.id}`)),T.jsx(sn,{},"rd1"),T.jsx(Nt,{onClick:()=>a("choose",!1),children:T.jsx(Fo,{primary:"Back"})},"back")],[e,r,i,a]),d=F.useMemo(()=>e?e.mode==="choose"?c():u():[],[e,c,u]);return T.jsx(Pl,{open:!!e,onClose:t,anchorReference:"anchorPosition",anchorPosition:e?.anchorPosition??{top:0,left:0},MenuListProps:{dense:!0},children:d})}function ZP({flowCategory:e,open:t,onClose:n,selectedNode:o,selectedDefinition:r,nodeLabel:i,setNodeLabel:a,nodeMetaData:l,setNodeMetaData:c,onSave:u}){const d=r?.drawerFormComponent,f=typeof d=="function"?d:jt;return T.jsxs(jh,{anchor:"right",open:t,onClose:n,PaperProps:{sx:{width:550,p:2}},children:[T.jsx(nt,{variant:"h6",sx:{mb:.5},children:"Node metadata"}),T.jsxs(nt,{sx:{fontSize:12,opacity:.75,mb:2},children:["Type: ",T.jsx("b",{children:o?.data?.label??"—"}),o?` • id: ${o.id}`:""]}),T.jsxs(ut,{spacing:2,children:[o?T.jsx(f,{node:o,flowCategory:e,nodeLabel:i,setNodeLabel:a,nodeMetaData:l,setNodeMetaData:c}):T.jsx(nt,{sx:{fontSize:13,opacity:.7},children:"No node selected."}),T.jsx(sn,{}),T.jsxs(ut,{direction:"row",spacing:1,children:[T.jsx(Jn,{variant:"outlined",onClick:n,fullWidth:!0,children:"Cancel"}),T.jsx(Jn,{variant:"contained",onClick:u,fullWidth:!0,children:"Save"})]})]})]})}const QP={start:DP,end:jP,conditional:VP,action:LP,multiChoice:HP},JP={plusEdge:KP};function vn(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function Wn(e){const t=vn(e);return Math.min(5,Math.max(2,Number(t.choiceCount)||vo))}function Aa(e){return vn(e).hasTimeDependency!==!1}function gm(e){return e.type==="conditional"&&e.data.kind==="waitForEvent"&&!Aa(e.data.nodeMetaData)}function eR(e){if(e==="yes"||e==="no")return e;const t=/^c(\d+)$/.exec(e??"");return t?t[1]:"child"}function tR(e,t){if(typeof t=="string"&&t.length>0)return t;if(e==="start"||e==="action")return"out"}function nR(e){return e==="start"||e==="end"||e==="action"||e==="conditional"||e==="multiChoice"}function Da(e,t){return`${e}::${t}`}function oR(e){if(e.type==="start"||e.type==="action")return[{sourceHandle:"out",kind:"default"}];if(e.type==="conditional")return gm(e)?[{sourceHandle:"yes",kind:"yes"}]:[{sourceHandle:"yes",kind:"yes"},{sourceHandle:"no",kind:"no"}];if(e.type==="multiChoice"){const t=Wn(e.data.nodeMetaData);return Array.from({length:t},(n,o)=>({sourceHandle:`c${o+1}`,kind:"branch",branch:o+1}))}return[]}function $d(e,t){const n=new Map(e.map(i=>[i.id,i.type])),o=new Set(e.map(i=>i.id)),r=new Set;for(const i of t){const a=n.get(i.source);if(!a||!nR(a)||!o.has(i.target))continue;const l=tR(a,i.sourceHandle);l&&r.add(Da(i.source,l))}return r}function rR(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 iR(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 sR(e){if(!e||typeof e!="object"||Array.isArray(e))return;const{x:t,y:n,zoom:o}=e;if(!(typeof t!="number"||typeof n!="number"||typeof o!="number"))return{x:t,y:n,zoom:o}}function aR(e){return e.map(t=>{if(!t.data)return t;const{_onPlusClick:n,...o}=t.data;return{...t,data:o}})}function lR(e){const t=Array.isArray(e?.nodes),n=Array.isArray(e?.edges);return{nodes:t?e?.nodes:kO,edges:n?aR(e?.edges):OO,viewport:sR(e?.viewport)}}function cR({flowCategory:e,nodeDefinitions:t=xo,initialFlow:n,onExportJson:o,onCancel:r}){const i=F.useRef(lR(n)),a=!!i.current.viewport,l=Fi(),c=Bw(),u=qw(),d=F.useMemo(()=>bs(t),[t]),[f,p]=Hw(i.current.nodes),[h,m,g]=Ww(i.current.edges),v=F.useRef(h);F.useEffect(()=>{v.current=h},[h]);const[b,C]=F.useState(null),y=F.useRef(!1),x=F.useRef(!1),[w,E]=F.useState(!1),[k,R]=F.useState(null),[_,V]=F.useState(""),[I,S]=F.useState({}),D=F.useRef(null),N=F.useCallback(K=>f.find(Z=>Z.id===K),[f]),P=F.useCallback((K,Z)=>h.filter(ne=>ne.source===K&&(Z==null?!0:(ne.sourceHandle??null)===(Z??null))).length,[h]),O=F.useCallback(K=>{if(y.current){x.current=!0;return}const Z=l.getNodes(),ne=l.getEdges(),X=wd(Z,ne);p(X),K?.fit&&requestAnimationFrame(()=>l.fitView({duration:300,padding:.35}))},[l,p]);F.useEffect(()=>{if(!u)return;const K=setTimeout(()=>O({fit:!a}),30);return()=>clearTimeout(K)},[u,O,a]),F.useEffect(()=>{if(!u)return;const K=i.current.viewport;if(!K)return;const Z=setTimeout(()=>{l.setViewport(K)},60);return()=>clearTimeout(Z)},[u,l]),F.useEffect(()=>{p(K=>{const Z=new Set(K.map(ae=>ae.id)),ne=new Map,X=new Map;for(const ae of h){if(!Z.has(ae.source)||!Z.has(ae.target))continue;const he=eR(ae.sourceHandle),me=X.get(ae.source)??{};me[he]=ae.target,X.set(ae.source,me),ne.has(ae.target)||ne.set(ae.target,ae.source)}let pe=!1;const se=K.map(ae=>{const he=ne.get(ae.id),me=X.get(ae.id)??{},fe=rR(ae.data.childNodeIds),be=ae.data.parentNodeId===he,We=iR(fe,me);return be&&We?ae:(pe=!0,{...ae,data:{...ae.data,parentNodeId:he,childNodeIds:Object.keys(me).length>0?me:void 0}})});return pe?se:K})},[h,p]),F.useEffect(()=>{p(K=>K.map(Z=>{const ne=Z.data.kind??(Z.id===lt?"start":Z.id===Ge?"end":void 0),X=ne?d.get(ne):void 0,pe=vn(Z.data.nodeMetaData),se=vn(X?.createInitialNodeMetaData?.()??{}),ae=X?{...se,...pe}:pe,he={...Z.data,nodeMetaData:ae};if(Z.id===lt||Z.id===Ge)return{...Z,data:{...Z.data,nodeMetaData:ae,label:X?.title??Z.data.label??(Z.id===lt?"Entry":"Exit"),icon:X?.icon??Z.data.icon??(Z.id===lt?yo:bo)}};if(X&&!Z.data.icon)return{...Z,data:{...he,icon:X.icon,label:Z.data.label??X.title}};if(Z.type==="multiChoice"){const me=Wn(ae);return{...Z,data:{...he,nodeMetaData:{...ae,choiceCount:me}}}}return{...Z,data:he}}))},[d,p]),F.useEffect(()=>{const K=D.current;if(!K)return;const Z=f.find(pe=>pe.id===K.nodeId);if(!Z||Z.type!=="multiChoice"){D.current=null;return}const ne=Wn(Z.data.nodeMetaData);if(ne!==K.nextCount)return;c(K.nodeId);const X=requestAnimationFrame(()=>{requestAnimationFrame(()=>{let pe=f,se=h;const ae=[];for(let he=ne+1;he<=5;he++)ae.push(`c${he}`);if(ae.length>0){const he=Sd({nodeId:K.nodeId,removedHandles:ae,nodes:pe,edges:se});pe=he.nodes,se=he.edges}se=se.filter(he=>{if(he.source!==K.nodeId)return!0;const me=he.sourceHandle??"",fe=/^c(\d)$/.exec(me);return fe?Number(fe[1])<=ne:!0});for(let he=1;he<=ne;he++){const me=`c${he}`;se.some(be=>be.source===K.nodeId&&(be.sourceHandle??"")===me)||(se=[...se,{id:`e-${K.nodeId}-${me}-${Ge}`,type:"plusEdge",source:K.nodeId,sourceHandle:me,target:Ge,targetHandle:"in",data:{kind:"branch",branch:he,isRedirect:!1}}])}p(pe),m(se),D.current=null,setTimeout(()=>O(),0)})});return()=>cancelAnimationFrame(X)},[f,h,p,m,O,c]),F.useEffect(()=>{if(!f.some(ne=>ne.id===Ge))return;const K=$d(f,h),Z=[];for(const ne of f)if(ne.id!==Ge)for(const X of oR(ne)){const pe=Da(ne.id,X.sourceHandle);K.has(pe)||(Z.push({id:`e-${ne.id}-${X.sourceHandle}-${Ge}`,type:"plusEdge",source:ne.id,sourceHandle:X.sourceHandle,target:Ge,targetHandle:"in",data:{kind:X.kind,branch:X.branch,isRedirect:!1}}),K.add(pe))}Z.length!==0&&(m(ne=>{const X=$d(f,ne),pe=new Set(ne.map(ae=>ae.id)),se=[];for(const ae of Z){const he=ae.sourceHandle??"out",me=Da(ae.source,he);if(X.has(me))continue;let fe=ae.id;pe.has(fe)&&(fe=`${fe}-${crypto.randomUUID().slice(0,8)}`),se.push({...ae,id:fe}),X.add(me),pe.add(fe)}return se.length>0?[...ne,...se]:ne}),queueMicrotask(()=>O()))},[O,h,f,m]);const L=F.useCallback(()=>({version:2,nodes:f,edges:h.map(K=>{const{_onPlusClick:Z,...ne}=K.data??{};return{...K,data:ne}}),viewport:l.getViewport()}),[f,h,l]),M=F.useCallback(()=>{const K=L();if(o){o(K);return}const Z=JSON.stringify(K,null,2);console.log(Z),navigator.clipboard?.writeText(Z).catch(()=>{}),alert("Export copied to clipboard (and logged to console).")},[L,o]),j=F.useCallback(()=>{C(null),E(!1),r?.()},[r]),$=F.useCallback(K=>{if(!K.source||!K.target)return!1;const Z=N(K.source),ne=N(K.target);if(!Z||!ne||ne.type==="start"||Z.type==="end"||Z.type==="start"&&P(Z.id)>=1)return!1;if(Z.type==="conditional"){const X=K.sourceHandle,pe=!gm(Z);if(X!=="yes"&&(X!=="no"||!pe)||P(Z.id,X)>=1)return!1}if(Z.type==="action"&&((K.sourceHandle??"out")!=="out"||P(Z.id,"out")>=1))return!1;if(Z.type==="multiChoice"){const X=K.sourceHandle??"";if(!/^c[1-5]$/.test(X)||P(Z.id,X)>=1)return!1}return!0},[N,P]),z=F.useCallback(K=>{const Z=h.find(ae=>ae.id===K);if(!Z)return;const ne=l.getNode(Z.source),X=l.getNode(Z.target);if(!ne||!X)return;const pe={x:(ne.position.x+X.position.x)/2,y:(ne.position.y+X.position.y)/2},se=l.flowToScreenPosition(pe);C({edgeId:K,mode:"choose",relinkSolid:!1,anchorPosition:{top:se.y,left:se.x}})},[h,l]),H=F.useCallback((K,Z)=>{const ne=h.find(Le=>Le.id===K);if(!ne)return;const X=l.getNode(ne.source),pe=l.getNode(ne.target);if(!X||!pe)return;const se=d.get(Z);if(!se||!("nodeType"in se))return;const ae=se.nodeType,he=(X.position.x+pe.position.x)/2,me=(X.position.y+pe.position.y)/2,fe=crypto.randomUUID(),be=vn(se.createInitialNodeMetaData?.()??{}),We=ae==="multiChoice"?{...be,choiceCount:Wn(be)}:be,we={id:fe,type:ae,position:{x:he,y:me-40},data:{label:se.title,nodeLabel:"",kind:Z,icon:se.icon,nodeMetaData:We}};p(Le=>[...Le,we]),m(Le=>{const ve=Le.find(ce=>ce.id===K);if(!ve)return Le;const Se=Le.filter(ce=>ce.id!==K),Je={id:`e-${ve.source}-${ve.sourceHandle??"out"}-${fe}`,type:"plusEdge",source:ve.source,sourceHandle:ve.sourceHandle,target:fe,targetHandle:"in",data:{kind:ve.data?.kind??"default",isRedirect:!1,branch:ve.data?.branch}};if(ae==="action"){const ce={id:`e-${fe}-out-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:"out",target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"default",isRedirect:!1}};return[...Se,Je,ce]}if(ae==="conditional"){const ce={id:`e-${fe}-yes-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:"yes",target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"yes",isRedirect:!1}},Ee={id:`e-${fe}-no-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:"no",target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"no",isRedirect:!1}};return[...Se,Je,ce,Ee]}const Et=Math.min(5,Math.max(2,vo)),An=Array.from({length:Et}).map((ce,Ee)=>{const Ke=Ee+1;return{id:`e-${fe}-c${Ke}-${ve.target}`,type:"plusEdge",source:fe,sourceHandle:`c${Ke}`,target:ve.target,targetHandle:ve.targetHandle??"in",data:{kind:"branch",branch:Ke,isRedirect:!1}}});return[...Se,Je,...An]}),C(null),queueMicrotask(()=>O())},[h,d,l,m,p,O]),U=F.useCallback((K,Z,ne)=>{const X=N(Z);X&&X.type!=="start"&&(m(pe=>pe.map(se=>{if(se.id!==K)return se;const ae=se.data??{kind:"default"},he=ne.makeRedirect&&!ae.isRedirect?se.target:ae.baseTarget,me=ne.makeRedirect&&!ae.isRedirect?se.targetHandle??"in":ae.baseTargetHandle;return{...se,target:Z,targetHandle:"in",data:{...ae,isRedirect:!!ne.makeRedirect,baseTarget:ne.makeRedirect?he:void 0,baseTargetHandle:ne.makeRedirect?me:void 0}}})),C(null),queueMicrotask(()=>O()))},[N,m,O]),W=F.useCallback(async K=>{const Z=K.nodes??[];if(Z.length===0||Z.length!==1)return!0;const ne=Z[0];if(ne.type==="start"||ne.type==="end")return!1;const X=l.getEdges(),pe=l.getNodes(),se=pe.find(Se=>Se.id===ne.id);if(!se)return!1;const ae=X.filter(Se=>Se.target===ne.id),he=X.filter(Se=>Se.source===ne.id),me=ae.find(Se=>!Se.data?.isRedirect)??ae[0],fe=Se=>Se.find(Je=>!Je.data?.isRedirect)??Se[0];let be;if(se.type==="conditional"){const Se=he.filter(Je=>Je.sourceHandle==="yes");be=fe(Se)??fe(he)}else if(se.type==="multiChoice"){const Se=he.filter(Je=>Je.sourceHandle==="c1");be=fe(Se)??fe(he)}else{const Se=he.filter(Je=>(Je.sourceHandle??"out")==="out");be=fe(Se)??fe(he)}const We=X.filter(Se=>Se.source!==ne.id&&Se.target!==ne.id),we=pe.filter(Se=>Se.id!==ne.id);let Le=We;if(me&&be&&be.target!==lt){const Se={id:`e-${me.source}-${me.sourceHandle??"out"}-${be.target}`,type:"plusEdge",source:me.source,sourceHandle:me.sourceHandle,target:be.target,targetHandle:be.targetHandle??"in",data:{kind:me.data?.kind??"default",isRedirect:!1,branch:me.data?.branch}};Le.some(Et=>Et.source===Se.source&&(Et.sourceHandle??null)===(Se.sourceHandle??null)&&Et.target===Se.target)||(Le=[...Le,Se])}m(Le);const ve=wd(we,Le);return p(ve),!1},[l,m,p]),G=F.useCallback((K,Z)=>{const ne=K.data,X=ne?.kind??(Z.sourceHandle==="yes"?"yes":Z.sourceHandle==="no"?"no":/^c[1-5]$/.test(Z.sourceHandle??"")?"branch":"default"),pe=ne?.branch??(()=>{const me=/^c(\d)$/.exec(Z.sourceHandle??"");return me?Number(me[1]):void 0})(),se=!!ne?.isRedirect,ae=ne?.baseTarget,he=ne?.baseTargetHandle;m(me=>nv(K,Z,me).map(fe=>{if(fe.id!==K.id)return{...fe,data:fe.data??{kind:"default"}};const be=fe.data??{kind:X};return{...fe,data:{kind:be.kind??X,branch:be.branch??pe,isRedirect:!0,baseTarget:se?ae:K.target,baseTargetHandle:se?he:K.targetHandle??"in"}}})),queueMicrotask(()=>O())},[m,O]),J=F.useCallback(K=>{p(Z=>tl(K,Z))},[p]),te=F.useCallback(K=>{const Z=K.filter(X=>{if(X.type!=="remove")return!1;const pe=X.id;return pe?!!v.current.find(ae=>ae.id===pe)?.data?.isRedirect:!1}),ne=K.filter(X=>{if(X.type!=="remove")return!0;const pe=X.id;return pe?!v.current.find(ae=>ae.id===pe)?.data?.isRedirect:!0});ne.length&&(m(X=>nl(ne,X)),g(ne));for(const X of Z){const pe=X.id,se=v.current.find(we=>we.id===pe);if(!se)continue;const ae=se.data?.baseTarget??Ge,he=se.data?.baseTargetHandle??"in";m(we=>we.map(Le=>Le.id===pe?{...Le,target:ae,targetHandle:he,data:{...Le.data??{kind:"default"},isRedirect:!1,baseTarget:void 0,baseTargetHandle:void 0}}:Le));const me=l.getNode(se.source),fe=l.getNode(ae),be=me&&fe?{x:(me.position.x+fe.position.x)/2,y:(me.position.y+fe.position.y)/2}:{x:0,y:0},We=l.flowToScreenPosition(be);C({edgeId:pe,mode:"redirect",relinkSolid:!0,anchorPosition:{top:We.y,left:We.x}}),queueMicrotask(()=>O())}},[m,g,l,O]),q=F.useMemo(()=>h.map(K=>({...K,data:{...K.data??{kind:"default"},_onPlusClick:z}})),[h,z]),ee=F.useMemo(()=>f.filter(K=>K.type!=="start").map(K=>({id:K.id,label:K.data?.label??K.id,nodeLabel:K.data?.nodeLabel??""})),[f]),Q=F.useCallback((K,Z)=>{Z.data?.isRedirect&&(K.preventDefault(),K.stopPropagation(),C({edgeId:Z.id,mode:"redirect",relinkSolid:!1,anchorPosition:{top:K.clientY,left:K.clientX}}))},[]),oe=F.useCallback((K,Z)=>{R(Z.id),V(Z.data?.nodeLabel??"");const ne=vn(Z.data.nodeMetaData);S(Z.type==="multiChoice"?{...ne,choiceCount:Wn(ne)}:ne),E(!0)},[]),B=F.useMemo(()=>k?N(k):void 0,[N,k]),ie=F.useMemo(()=>{const K=B?.data?.kind??(B?.id===lt?"start":B?.id===Ge?"end":void 0);if(K)return d.get(K)},[d,B]),re=F.useCallback(()=>{if(!k)return;const K=f.find(be=>be.id===k),Z=K?.type==="multiChoice",ne=K?.type==="conditional"&&K.data.kind==="waitForEvent",X=vn(I),pe=Wn(X),se=ne?Aa(K.data.nodeMetaData):void 0,ae=ne?Aa(X):void 0,he=ne&&se!==ae;let me=f.map(be=>be.id===k?{...be,data:{...be.data??{label:""},nodeLabel:_,nodeMetaData:be.type==="multiChoice"?{...X,choiceCount:pe}:X}}:be),fe=h;if(ne&&se&&!ae){const be=Sd({nodeId:k,removedHandles:["no"],nodes:me,edges:fe});me=be.nodes,fe=be.edges.filter(We=>!(We.source===k&&(We.sourceHandle??"")==="no"))}if(ne&&!se&&ae){const be=fe.find(ve=>ve.source===k&&(ve.sourceHandle??"")==="yes"),We=be?.target??Ge,we=be?.targetHandle??"in";let Le=!1;if(fe=fe.map(ve=>ve.source!==k||(ve.sourceHandle??"")!=="no"?ve:(Le=!0,{...ve,target:We,targetHandle:we,data:{...ve.data??{kind:"no"},kind:"no",isRedirect:!1,baseTarget:void 0,baseTargetHandle:void 0}})),!Le){const ve=new Set(fe.map(Et=>Et.id)),Se=`e-${k}-no-${We}`,Je=ve.has(Se)?`${Se}-${crypto.randomUUID().slice(0,8)}`:Se;fe=[...fe,{id:Je,type:"plusEdge",source:k,sourceHandle:"no",target:We,targetHandle:we,data:{kind:"no",isRedirect:!1}}]}}if(p(me),m(fe),Z&&(D.current={nodeId:k,nextCount:pe}),E(!1),he){const be=k;requestAnimationFrame(()=>{c(be),requestAnimationFrame(()=>O())});return}queueMicrotask(()=>O())},[k,_,I,f,h,p,m,c,O]),ue=F.useCallback(()=>C(null),[]),xe=F.useCallback(()=>{y.current=!0},[]),Te=F.useCallback(()=>{y.current=!1,x.current&&(x.current=!1,O())},[O]),je=F.useCallback((K,Z)=>{C(ne=>ne&&{...ne,mode:K,relinkSolid:Z??ne.relinkSolid})},[]);return T.jsxs(hs,{sx:{width:"100%",height:"88vh",border:"1px solid #ddd",borderRadius:2,position:"relative",overflow:"hidden",bgcolor:"white"},children:[T.jsxs(ut,{direction:"row",spacing:1,sx:{p:1.25,borderBottom:"1px solid #eee",alignItems:"center"},children:[T.jsx(Jn,{variant:"contained",size:"small",onClick:M,children:"Save"}),T.jsx(Jn,{variant:"outlined",size:"small",onClick:j,children:"Cancel / Close"}),T.jsx(Jn,{variant:"outlined",size:"small",onClick:()=>O({fit:!0}),children:"Auto layout"}),T.jsx(nt,{sx:{ml:"auto",fontSize:12,opacity:.75},children:"Redirect edge delete ⇒ restores solid + asks relink"})]}),T.jsx(XP,{menu:b,onClose:ue,definitions:t,onChooseKind:(K,Z)=>H(K,Z),redirectCandidates:ee,onChooseRedirectTarget:(K,Z,ne)=>U(K,Z,{makeRedirect:ne}),onSwitchMode:je}),T.jsxs(jw,{nodes:f,edges:q,onNodesChange:J,onEdgesChange:te,nodeTypes:QP,edgeTypes:JP,fitView:!a,isValidConnection:$,onBeforeDelete:W,onReconnect:G,onEdgeClick:Q,onNodeClick:oe,onNodeDragStart:xe,onNodeDragStop:Te,defaultEdgeOptions:{markerEnd:{type:Jo.Arrow,width:12,height:12}},children:[T.jsx(rS,{}),T.jsx(Zw,{})]}),T.jsx(ZP,{flowCategory:e,open:w,onClose:()=>E(!1),selectedNode:B,selectedDefinition:ie,nodeLabel:_,setNodeLabel:V,nodeMetaData:I,setNodeMetaData:S,onSave:re})]})}function uR({flowCategory:e,nodeDefinitions:t,extendNodeDefinitions:n=[],initialFlow:o,onExportJson:r,onCancel:i}){const a=F.useMemo(()=>t||tm(xo,n),[t,n]);return T.jsx(vp,{children:T.jsx(cR,{flowCategory:e,nodeDefinitions:a,initialFlow:o,onExportJson:r,onCancel:i})})}exports.CATEGORIES=TO;exports.DEFAULT_MULTI_CHOICE_COUNT=vo;exports.DEFAULT_NODE_DEFINITIONS=xo;exports.END_ICON=bo;exports.END_ID=Ge;exports.FlowEditor=uR;exports.NODE_DEFINITIONS=CO;exports.START_ICON=yo;exports.START_ID=lt;exports.createNodeDefinitionMap=bs;exports.groupDefinitions=nm;exports.kindToNodeType=NO;exports.mergeNodeDefinitions=tm;
package/dist/index.js CHANGED
@@ -25535,7 +25535,7 @@ function Mr({
25535
25535
  /* @__PURE__ */ O(
25536
25536
  lt,
25537
25537
  {
25538
- variant: "caption",
25538
+ variant: "body2",
25539
25539
  textAlign: "center",
25540
25540
  py: 0.5,
25541
25541
  sx: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "journey-flow-editor",
3
3
  "private": false,
4
- "version": "0.0.23",
4
+ "version": "0.0.24",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
7
7
  "module": "./dist/index.js",