userflow.js-self-hosted 0.1.1020123 → 0.1.1020198

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/ChecklistUI.js CHANGED
@@ -1,2 +1,2 @@
1
- import{R as e,r as l}from"./vendor.react.js";import{E as I,p as _}from"./userflow.js";import{u as v}from"./client-context.js";import"./vendor.core-js.js";import{u as T}from"./vendor.react-i18next.js";import{o as F}from"./vendor.obj-str.js";import{D as C}from"./stylesheets.js";import{d as P,e as L}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{h as M,c as x,r as B,R as $}from"./TreeDoc.js";import{g}from"./flow-condition-types.js";import{c as H,b as W}from"./vendor.fortawesome.pro-regular-svg-icons.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="a8f2be40-6f4a-4066-975e-3a5d9ea23a8c",t._sentryDebugIdIdentifier="sentry-dbid-a8f2be40-6f4a-4066-975e-3a5d9ea23a8c")}catch{}})();const z=e.forwardRef(({elProps:t,onClick:s,onCheckmarkClick:n,completed:o,disabled:u,name:c,text:b,active:m,htmlAttributes:a,children:i},w)=>{const d=l.useRef(o);return e.createElement("button",{...t,ref:w,"data-testid":"bubble-task",tabIndex:s?0:-1,className:F({"userflowjs-bubble-task":!0,"userflowjs-bubble-task--completed":!!o,"userflowjs-bubble-task--just-completed":!d.current&&!!o,"userflowjs-bubble-task--disabled":!o&&!!u,"userflowjs-bubble-task--clickable":!!s,"userflowjs-bubble-task--active":!!m}),onClick:s,...a},e.createElement("div",{className:"userflowjs-bubble-task__checkmark",onClick:n},o&&e.createElement(C,{icon:P})),e.createElement("div",{className:"userflowjs-bubble-task__content"},e.createElement("div",{className:"userflowjs-bubble-task__name"},c),e.createElement("div",{className:"userflowjs-bubble-task__text"},b)),e.createElement("div",{className:"userflowjs-bubble-task__arrow"},!o&&e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(C,{icon:L}))),i)}),G=({task:t,previousTasksCompleted:s})=>{const n=v(),{session:o}=S(),u=o.version.checklist,[c,b]=l.useState(()=>n.taskIsUnacked(t.cvid));l.useEffect(()=>{if(!c)return;const d=window.setTimeout(()=>b(!1),500);return()=>window.clearTimeout(d)},[c]);const m=o.taskCompletions.some(({taskCvid:d})=>d===t.cvid),a=!c&&m;l.useEffect(()=>{a&&n.ackCompletedTask(t.cvid)},[n,a,t.cvid]);const i=u.completeInOrder&&!s,w=i||t.actions.length===0&&a?void 0:()=>{n.send({kind:"ClickChecklistTask",sessionId:o.id,taskCvid:t.cvid},{batch:!0}),t.actions.length>0&&(a||!t.completesOnClick)&&n.hideChecklist(),M(n,o,t.actions)};return e.createElement(z,{onClick:w,name:e.createElement(x,{doc:t.name,lookupAttribute:g(o.data)}),text:e.createElement(x,{doc:t.text,lookupAttribute:g(o.data)}),completed:a,disabled:i})},J=({completedCount:t,taskCount:s})=>{const n=s===0?0:Math.min(100,Math.round(t/s*100));return e.createElement("div",{className:"userflowjs-bubble-checklist-progress"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-bg"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")),e.createElement("div",{className:"userflowjs-bubble-checklist-progress-fill",style:{width:`${n}%`}},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")))},D=5e3,K=({active:t,onComplete:s})=>{const n=l.useRef(null);return l.useEffect(()=>{if(!t||!n.current)return;n.current.style.width="0%",n.current.offsetWidth,n.current.style.transition=`width ${D}ms linear`,n.current.style.width="100%";const o=setTimeout(s,D);return()=>clearTimeout(o)},[t,s]),e.createElement("div",{className:"userflowjs-bubble-progress--default userflowjs-bubble-progress-container--checklist"},t&&e.createElement("div",{className:"userflowjs-bubble-progress-background--checklist"}),e.createElement("div",{className:"userflowjs-bubble-progress__fill userflowjs-bubble-progress-fill--checklist",ref:n}))},Q=()=>{const{t}=T(),s=v(),n=S(),{session:o}=n,{version:u}=o,c=u.checklist,{dispatch:b}=U(),m=o.taskCompletions.length,a=c.tasks.length,i=m===a,w=l.useCallback(()=>{s.endFlow(o,{endReason:I.USER_CLOSED})},[s,o]);let d=!0,N=c.tasks,h=[],p=n.currentSectionName,y=!1;if(c.sectionsEnabled){let f=null;const k=Array.from(c.tasks).sort((r,E)=>r.sectionName.localeCompare(E.sectionName));for(const r of k)r.sectionName!==f&&(h.push(r.sectionName),f=r.sectionName);(!p||!h.includes(p))&&(p=h[0]),N=k.filter(r=>r.sectionName===p),y=N.some(r=>{const E=o.taskCompletions.some(({taskCvid:O})=>O===r.cvid);return r.blocksNextSection&&!E})}const j=p==null?-1:h.indexOf(p),R=f=>{const k=j+f;if(k>=0&&k<=h.length-1){const r=h[k];_.setItem("currentChecklistSectionName:"+o.id,r),b({kind:"setCurrentSection",sectionName:r})}};return e.createElement(e.Fragment,null,!B(c.content)&&e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement($,{doc:c.content,lookupAttribute:g(o.data)})),e.createElement(J,{completedCount:m,taskCount:a}),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-name"},p||"First section"),e.createElement("div",{className:"userflowjs-bubble-tasks"},N.map(f=>{const k=d;return o.taskCompletions.some(({taskCvid:E})=>E===f.cvid)||(d=!1),e.createElement(G,{key:f.id,task:f,previousTasksCompleted:k})})),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-buttons"},e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(-1),disabled:j<=0},e.createElement(C,{icon:H}),e.createElement("span",null,t("checklist.previousSection"))),e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(1),disabled:j>=h.length-1||y},e.createElement("span",null,t("checklist.nextSection")),e.createElement(C,{icon:W}))),e.createElement("div",{className:"userflowjs-bubble-dismiss-row userflowjs-bubble-dismiss-row--checklist"},u.closeDisabled?e.createElement("div",{className:"userflowjs-bubble-checklist-dismiss-button-placeholder"}):e.createElement("button",{className:F({"userflowjs-bubble-dismiss-button":!0,"userflowjs-bubble-dismiss-button--completed":i}),onClick:()=>i?w():b({kind:"showClose"})},t("checklistDismiss.button")),c.autoDismissEnabled&&e.createElement(K,{active:i,onComplete:w})))},V=()=>{const{t}=T(),s=v(),{dispatch:n}=U(),{session:o}=S();return e.createElement("div",{role:"alert"},e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement("p",null,e.createElement("b",null,t("checklistDismiss.title")))),e.createElement("div",{className:"userflowjs-bubble-buttons"},e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:()=>s.endFlow(o,{endReason:I.USER_CLOSED})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.yes"))),e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--default",onClick:()=>n({kind:"showFlow"})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.cancel")))))};function X(t){const s=t?.querySelector(".userflowjs-bubble-task--clickable:not(.userflowjs-bubble-task--completed)")||t?.querySelector(".userflowjs-bubble-task--clickable")||t?.querySelector('button:not([tabIndex="-1"])');s&&typeof s.focus=="function"&&s.focus()}const be=({session:t,initialAutoFocus:s})=>{const n=v(),o=l.useRef(null),[u,c]=l.useReducer(Z,void 0,()=>({...Y,session:t,currentSectionName:_.getItem("currentChecklistSectionName:"+t.id),autoFocusRequested:!!s})),{session:b,contentType:m}=u;l.useEffect(()=>{b!==t&&c({kind:"updateSession",session:t})},[b,t]);const a=l.useMemo(()=>({dispatch:c}),[c]);return l.useEffect(()=>{if(!u.autoFocusRequested)return;const i=o.current;i&&X(i),c({kind:"autoFocused"})},[n,u.autoFocusRequested]),e.createElement(A.Provider,{value:a},e.createElement(q.Provider,{value:u},e.createElement("div",{ref:o},m==="close"?e.createElement(V,null):e.createElement(Q,null))))},Y={contentType:"flow"};function Z(t,s){switch(s.kind){case"updateSession":return{...t,session:s.session};case"showFlow":return{...t,contentType:"flow",autoFocusRequested:!0};case"showClose":return{...t,contentType:"close",autoFocusRequested:!0};case"setCurrentSection":return{...t,currentSectionName:s.sectionName};case"autoFocused":return{...t,autoFocusRequested:!1}}}const A=l.createContext(null),q=l.createContext(null);function U(){return l.useContext(A)}function S(){return l.useContext(q)}export{be as C,X as f};
1
+ import{R as e,r as l}from"./vendor.react.js";import{E as I,p as _}from"./userflow.js";import{u as v}from"./client-context.js";import"./vendor.core-js.js";import{u as T}from"./vendor.react-i18next.js";import{o as F}from"./vendor.obj-str.js";import{D as C}from"./stylesheets.js";import{e as P,h as L}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{h as M,c as x,r as B,R as $}from"./TreeDoc.js";import{g}from"./flow-condition-types.js";import{c as H,b as W}from"./vendor.fortawesome.pro-regular-svg-icons.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="ea025c3a-e3a5-4bc4-be60-44dbbd382d71",t._sentryDebugIdIdentifier="sentry-dbid-ea025c3a-e3a5-4bc4-be60-44dbbd382d71")}catch{}})();const z=e.forwardRef(({elProps:t,onClick:s,onCheckmarkClick:n,completed:o,disabled:u,name:c,text:b,active:m,htmlAttributes:a,children:i},w)=>{const d=l.useRef(o);return e.createElement("button",{...t,ref:w,"data-testid":"bubble-task",tabIndex:s?0:-1,className:F({"userflowjs-bubble-task":!0,"userflowjs-bubble-task--completed":!!o,"userflowjs-bubble-task--just-completed":!d.current&&!!o,"userflowjs-bubble-task--disabled":!o&&!!u,"userflowjs-bubble-task--clickable":!!s,"userflowjs-bubble-task--active":!!m}),onClick:s,...a},e.createElement("div",{className:"userflowjs-bubble-task__checkmark",onClick:n},o&&e.createElement(C,{icon:P})),e.createElement("div",{className:"userflowjs-bubble-task__content"},e.createElement("div",{className:"userflowjs-bubble-task__name"},c),e.createElement("div",{className:"userflowjs-bubble-task__text"},b)),e.createElement("div",{className:"userflowjs-bubble-task__arrow"},!o&&e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(C,{icon:L}))),i)}),G=({task:t,previousTasksCompleted:s})=>{const n=v(),{session:o}=S(),u=o.version.checklist,[c,b]=l.useState(()=>n.taskIsUnacked(t.cvid));l.useEffect(()=>{if(!c)return;const d=window.setTimeout(()=>b(!1),500);return()=>window.clearTimeout(d)},[c]);const m=o.taskCompletions.some(({taskCvid:d})=>d===t.cvid),a=!c&&m;l.useEffect(()=>{a&&n.ackCompletedTask(t.cvid)},[n,a,t.cvid]);const i=u.completeInOrder&&!s,w=i||t.actions.length===0&&a?void 0:()=>{n.send({kind:"ClickChecklistTask",sessionId:o.id,taskCvid:t.cvid},{batch:!0}),t.actions.length>0&&(a||!t.completesOnClick)&&n.hideChecklist(),M(n,o,t.actions)};return e.createElement(z,{onClick:w,name:e.createElement(x,{doc:t.name,lookupAttribute:g(o.data)}),text:e.createElement(x,{doc:t.text,lookupAttribute:g(o.data)}),completed:a,disabled:i})},J=({completedCount:t,taskCount:s})=>{const n=s===0?0:Math.min(100,Math.round(t/s*100));return e.createElement("div",{className:"userflowjs-bubble-checklist-progress"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-bg"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")),e.createElement("div",{className:"userflowjs-bubble-checklist-progress-fill",style:{width:`${n}%`}},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")))},D=5e3,K=({active:t,onComplete:s})=>{const n=l.useRef(null);return l.useEffect(()=>{if(!t||!n.current)return;n.current.style.width="0%",n.current.offsetWidth,n.current.style.transition=`width ${D}ms linear`,n.current.style.width="100%";const o=setTimeout(s,D);return()=>clearTimeout(o)},[t,s]),e.createElement("div",{className:"userflowjs-bubble-progress--default userflowjs-bubble-progress-container--checklist"},t&&e.createElement("div",{className:"userflowjs-bubble-progress-background--checklist"}),e.createElement("div",{className:"userflowjs-bubble-progress__fill userflowjs-bubble-progress-fill--checklist",ref:n}))},Q=()=>{const{t}=T(),s=v(),n=S(),{session:o}=n,{version:u}=o,c=u.checklist,{dispatch:b}=U(),m=o.taskCompletions.length,a=c.tasks.length,i=m===a,w=l.useCallback(()=>{s.endFlow(o,{endReason:I.USER_CLOSED})},[s,o]);let d=!0,N=c.tasks,h=[],p=n.currentSectionName,y=!1;if(c.sectionsEnabled){let f=null;const k=Array.from(c.tasks).sort((r,E)=>r.sectionName.localeCompare(E.sectionName));for(const r of k)r.sectionName!==f&&(h.push(r.sectionName),f=r.sectionName);(!p||!h.includes(p))&&(p=h[0]),N=k.filter(r=>r.sectionName===p),y=N.some(r=>{const E=o.taskCompletions.some(({taskCvid:O})=>O===r.cvid);return r.blocksNextSection&&!E})}const j=p==null?-1:h.indexOf(p),R=f=>{const k=j+f;if(k>=0&&k<=h.length-1){const r=h[k];_.setItem("currentChecklistSectionName:"+o.id,r),b({kind:"setCurrentSection",sectionName:r})}};return e.createElement(e.Fragment,null,!B(c.content)&&e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement($,{doc:c.content,lookupAttribute:g(o.data)})),e.createElement(J,{completedCount:m,taskCount:a}),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-name"},p||"First section"),e.createElement("div",{className:"userflowjs-bubble-tasks"},N.map(f=>{const k=d;return o.taskCompletions.some(({taskCvid:E})=>E===f.cvid)||(d=!1),e.createElement(G,{key:f.id,task:f,previousTasksCompleted:k})})),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-buttons"},e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(-1),disabled:j<=0},e.createElement(C,{icon:H}),e.createElement("span",null,t("checklist.previousSection"))),e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(1),disabled:j>=h.length-1||y},e.createElement("span",null,t("checklist.nextSection")),e.createElement(C,{icon:W}))),e.createElement("div",{className:"userflowjs-bubble-dismiss-row userflowjs-bubble-dismiss-row--checklist"},u.closeDisabled?e.createElement("div",{className:"userflowjs-bubble-checklist-dismiss-button-placeholder"}):e.createElement("button",{className:F({"userflowjs-bubble-dismiss-button":!0,"userflowjs-bubble-dismiss-button--completed":i}),onClick:()=>i?w():b({kind:"showClose"})},t("checklistDismiss.button")),c.autoDismissEnabled&&e.createElement(K,{active:i,onComplete:w})))},V=()=>{const{t}=T(),s=v(),{dispatch:n}=U(),{session:o}=S();return e.createElement("div",{role:"alert"},e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement("p",null,e.createElement("b",null,t("checklistDismiss.title")))),e.createElement("div",{className:"userflowjs-bubble-buttons"},e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:()=>s.endFlow(o,{endReason:I.USER_CLOSED})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.yes"))),e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--default",onClick:()=>n({kind:"showFlow"})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.cancel")))))};function X(t){const s=t?.querySelector(".userflowjs-bubble-task--clickable:not(.userflowjs-bubble-task--completed)")||t?.querySelector(".userflowjs-bubble-task--clickable")||t?.querySelector('button:not([tabIndex="-1"])');s&&typeof s.focus=="function"&&s.focus()}const be=({session:t,initialAutoFocus:s})=>{const n=v(),o=l.useRef(null),[u,c]=l.useReducer(Z,void 0,()=>({...Y,session:t,currentSectionName:_.getItem("currentChecklistSectionName:"+t.id),autoFocusRequested:!!s})),{session:b,contentType:m}=u;l.useEffect(()=>{b!==t&&c({kind:"updateSession",session:t})},[b,t]);const a=l.useMemo(()=>({dispatch:c}),[c]);return l.useEffect(()=>{if(!u.autoFocusRequested)return;const i=o.current;i&&X(i),c({kind:"autoFocused"})},[n,u.autoFocusRequested]),e.createElement(A.Provider,{value:a},e.createElement(q.Provider,{value:u},e.createElement("div",{ref:o},m==="close"?e.createElement(V,null):e.createElement(Q,null))))},Y={contentType:"flow"};function Z(t,s){switch(s.kind){case"updateSession":return{...t,session:s.session};case"showFlow":return{...t,contentType:"flow",autoFocusRequested:!0};case"showClose":return{...t,contentType:"close",autoFocusRequested:!0};case"setCurrentSection":return{...t,currentSectionName:s.sectionName};case"autoFocused":return{...t,autoFocusRequested:!1}}}const A=l.createContext(null),q=l.createContext(null);function U(){return l.useContext(A)}function S(){return l.useContext(q)}export{be as C,X as f};
2
2
  //# sourceMappingURL=ChecklistUI.js.map
package/FlowChrome.js CHANGED
@@ -1,3 +1,3 @@
1
- import{S as we,T as Ee,N as Le,E as ye}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{R as p,r as l}from"./vendor.react.js";import{D as Dt,u as ve,g as Be}from"./stylesheets.js";import"./vendor.core-js.js";import{u as fe}from"./vendor.react-i18next.js";import{F as ne}from"./Frame.js";import{G,r as y,v as ct,F as Me,w as N,a3 as Oe,a2 as b}from"./userflow.js";import{u as Ie,f as Re}from"./flow-host.styl.js";import{u as _e,b as Ne}from"./use-selector-element-monitoring.js";import{u as Pe}from"./use-window-resize.js";import{S as ke}from"./logomark.js";import{o as Gt}from"./vendor.obj-str.js";import{h as Yt,e as Ht,j as ut,t as je,l as ie,M as ue,q as Ft,u as xe,p as Ce}from"./roots.js";import{c as De}from"./vendor.canvas-confetti.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="69ebaada-1690-42b1-8292-962c269d84f8",e._sentryDebugIdIdentifier="sentry-dbid-69ebaada-1690-42b1-8292-962c269d84f8")}catch{}})();const uo=({draftMode:e,muted:t,toggleMuted:o,close:g,minimize:L})=>{const{t:s}=fe();return p.createElement("div",{className:"userflowjs-bubble-toolbar"},e&&p.createElement("div",{className:"userflowjs-bubble-draft"},typeof e=="string"?e:"Preview"),o&&p.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:o,"aria-label":t?"Unmute":"Mute"},t?p.createElement(Dt,{icon:we}):p.createElement(Dt,{icon:Ee})),L&&p.createElement("button",{"data-testid":"minimize-button",className:"userflowjs-bubble-toolbar-button",onClick:L,"aria-label":"Minimize checklist"},p.createElement(Dt,{icon:Le})),g&&p.createElement("button",{"data-testid":"close-button",className:"userflowjs-bubble-toolbar-button",onClick:g,"aria-label":s("menu.close")},p.createElement(Dt,{icon:ye})))},Fe=new URL("avatar-frame.css",import.meta.url).href;function He(e,t){const o=window.Intercom;l.useEffect(()=>{if(!(!t||!e.autoHideIntercom||typeof o!="function"||G.autoHide3pDisabled)){try{o("update",{hide_default_launcher:!0})}catch(a){console.warn("Userflow.js: Error when hiding Intercom launcher",a)}return()=>{if(!G.autoHide3pDisabled)try{o("update",{hide_default_launcher:!1})}catch(a){console.warn("Userflow.js: Error when unhiding Intercom launcher",a)}}}},[o,e.autoHideIntercom,t]);const g=window.$crisp;l.useEffect(()=>{if(!(!t||!e.autoHideCrisp||!g||G.autoHide3pDisabled)){try{g.push(["do","chat:hide"])}catch(a){console.warn("Userflow.js: Error when hiding Crisp Chat",a)}return()=>{if(!G.autoHide3pDisabled)try{g.push(["do","chat:show"])}catch(a){console.warn("Userflow.js: Error when unhiding Crisp Chat",a)}}}},[g,e.autoHideCrisp,t]);const L=window.HubSpotConversations;l.useEffect(()=>{if(!(!t||!e.autoHideHubspot||!L||G.autoHide3pDisabled)){try{L.widget.remove()}catch(a){console.warn("Userflow.js: Error when hiding HubSpot Chat",a)}return()=>{if(!G.autoHide3pDisabled)try{L.widget.load()}catch(a){console.warn("Userflow.js: Error when unhiding HubSpot Chat",a)}}}},[L,e.autoHideHubspot,t]);const s=window.drift;l.useEffect(()=>{if(!(!t||!e.autoHideDrift||!s||G.autoHide3pDisabled)){try{s.api.widget.hide()}catch(a){console.warn("Userflow.js: Error when hiding Drift Chat",a)}return()=>{if(!G.autoHide3pDisabled)try{s.api.widget.show()}catch(a){console.warn("Userflow.js: Error when unhiding Drift Chat",a)}}}},[s,e.autoHideDrift,t])}const Q={PARTICLE_COUNT:400,ANIMATION_DELAY:400,DEFAULT_SPREAD:360,DEFAULT_GRAVITY:1,DEFAULT_TICKS:100,DEFAULT_Z_INDEX:5,TOOLTIP_DECAY:.85,TOOLTIP_START_VELOCITY:30},Ae={particleCount:Q.PARTICLE_COUNT,spread:Q.DEFAULT_SPREAD,gravity:Q.DEFAULT_GRAVITY,ticks:Q.DEFAULT_TICKS,angle:90,zIndex:Q.DEFAULT_Z_INDEX,disableForReducedMotion:!0},Se=e=>{if(!e)return{x:.5,y:.5};const t=e.getBoundingClientRect();return{x:t.left>=0?(t.left+t.width/2)/window.innerWidth:.5,y:t.top>=0?(t.top+t.height/2)/window.innerHeight:.5}},Ue=({bubbleFrame:e,isBubbleVisible:t,theme:o,stepType:g,onAnimationComplete:L,confettiDelay:s,zIndex:a})=>{const[d,T]=l.useState(!1);return l.useEffect(()=>{if(!t||!d||!o.confettiColors||o.confettiColors.length===0)return;const u=setTimeout(()=>{try{const E=Se(e),v={...Ae,colors:o.confettiColors||void 0,origin:E,zIndex:a??Q.DEFAULT_Z_INDEX,...g===y.TOOLTIP&&{decay:Q.TOOLTIP_DECAY,startVelocity:Q.TOOLTIP_START_VELOCITY}};De(v)}catch(E){console.warn("Error launching confetti:",E)}finally{L?.(),T(!1)}},s||Q.ANIMATION_DELAY);return()=>clearTimeout(u)},[t,d,o.confettiColors,e,g,L,s,a]),{startConfetti:T}},Xt=16,Rt=20,co=({company:e,theme:t,position:o,absoluteWidth:g,absoluteHeight:L,stepKey:s,stepAppearance:a,width:d,backgroundImageUrl:T,tooltipSelector:u,allowMissingTooltipTarget:E,tooltipPlacement:v,backdrop:x,tooltipTargetBlocked:W,backdropPadding:tt,zIndex:P,onTooltipTargetClick:B,onTooltipTargetMissingChange:C,onModalBackdropClick:K,onVisibleChange:et,speaking:D,noIframe:R,MadeWithUserflow:c,minimizeOnAvatarClick:F,autoHide3pEnabled:O,bubbleFrameRootRef:M,frameWrapperHtmlAttributes:_,rootChildren:k,children:r,isModalAnnouncement:f,confettiEnabled:ot})=>{const U=o||"absolute",H=v||null,Y=tt||"0",at=c||We,rt=Ie(),ft=U==="fixed"?P??rt+1:1,J=ft-1,_t=ft-2,{i18n:Nt}=fe(),nt=Nt.dir(),dt=l.useRef(null),ht=l.useRef(null),lt=l.useRef(null),[X,Pt]=l.useState(null),gt=l.useRef(null),Tt=l.useRef(null),wt=l.useRef(null),Et=l.useRef(null),Lt=l.useRef(null),yt=l.useRef(null),vt=l.useRef(null),Bt=l.useRef(null),Mt=l.useRef(null);l.useLayoutEffect(()=>{const i=dt.current.style;i.animation="none",i.visibility="hidden",i.position="absolute",i.top="-99999px",i.left="-99999px"},[]);const{loaded:kt}=ve(window,Re,t),[jt,At]=l.useState(!1),[St,w]=l.useState(!1),n=kt&&jt&&St;let[A,st]=l.useState(!1);a!==y.BUBBLE&&(F=!1,A=!1),l.useEffect(()=>{st(!1)},[s]);const I=l.useRef({appearance:null,width:null,theme:t,bubbleFrameHeight:0,backdrop:!1,backdropPadding:"0",prevTooltipTargetParams:null,tooltipTargetParams:null,desiredTooltipPlacement:null,tooltipPlacement:null,lastReportedTooltipTargetMissing:!1,tooltipTargetMissing:!1,tooltipTargetMissingTimeout:void 0,stepKeyScrolledIntoView:void 0,targetScrolledIntoView:null}),[$,j]=l.useState(null),Z=$!=null&&n;l.useEffect(()=>{et&&et(Z)},[et,Z]);const bt=l.useCallback(i=>{I.current.lastReportedTooltipTargetMissing!==i&&(I.current.lastReportedTooltipTargetMissing=i,C&&C(i))},[C]),z=l.useCallback(({forceAppearanceLayout:i,forceUpdatePosition:S}={})=>{const pt=dt.current,Ct=ht.current,It=lt.current,Zt=Tt.current,qt=gt.current,Kt=wt.current,Jt=Et.current,Qt=Lt.current,te=yt.current,ee=vt.current,oe=Bt.current,ae=Mt.current;if(!pt||!Ct||!It||!X||!Zt||!qt||!Kt||!Jt||!Qt||!te||!ee||!oe||!ae||!n)return;const h=I.current,{tooltipTargetParams:Ut}=h;Ce();let V=a,le=!1;V===y.TOOLTIP&&!E&&!Ut&&(h.tooltipTargetMissing?(V=y.BUBBLE,le=!0):V=null);const se=V!==h.appearance,he=d!==h.width;if((i||se||he||t!==h.theme||x!=h.backdrop||Y!=h.backdropPadding||H!==h.desiredTooltipPlacement)&&(h.appearance=V,h.width=d,h.theme=t,h.backdrop=x,h.backdropPadding=Y,h.desiredTooltipPlacement=H,S=!0,ze({layoutState:h,width:d,position:U,absoluteWidth:g,root:pt,bubble:Ct,bubbleFrameRoot:X,avatar:Zt,avatarNotch:qt,modalBackdrop:ae,dir:nt})),!R){const q=X.offsetHeight,Vt=Yt(),Wt=Ht()<800?0:Xt,ge=t.avatarType===ct.NONE?0:V===y.BUBBLE?Rt+t.avatarSize:V===y.MODAL?t.avatarSize/2:0,re=Vt-2*Wt-ge,zt=Math.min(q,re);if(V&&zt!==h.bubbleFrameHeight){if(h.bubbleFrameHeight=zt,m(It,"height",ut(zt)),je(It)&&It.contentDocument){const Te=It.contentDocument.documentElement;Te.style.overflowY=q<=re?"hidden":"scroll"}S=!0}}if(S&&V){let q=se;if(V===y.TOOLTIP){const Vt=h.tooltipTargetParams&&h.tooltipTargetParams.targetEl,Wt=h.prevTooltipTargetParams&&h.prevTooltipTargetParams.targetEl;Vt!==Wt&&(q=!0)}h.prevTooltipTargetParams=h.tooltipTargetParams,Ge({layoutState:h,animateIn:q,position:U,absoluteWidth:g,absoluteHeight:L,desiredTooltipPlacement:H,root:pt,bubble:Ct,tooltipNotch:Kt,tooltipBackdrop:Jt,tooltipBlockTop:Qt,tooltipBlockRight:te,tooltipBlockBottom:ee,tooltipBlockLeft:oe,dir:nt})}if(V===y.TOOLTIP){const q=Ut&&Ut.targetEl;q&&h.stepKeyScrolledIntoView!==s&&h.targetScrolledIntoView!==q&&(h.stepKeyScrolledIntoView=s,h.targetScrolledIntoView=q,Xe(q))}else h.stepKeyScrolledIntoView=void 0,h.targetScrolledIntoView=null;bt(le),j(V)},[n,X,s,a,d,t,U,g,L,E,H,x,Y,R,bt,nt]),Ot=l.useRef(z);Ot.current=z;const $t=l.useRef(!1);l.useEffect(()=>{const i=()=>{$t.current=!0};return window.addEventListener("pagehide",i),()=>window.removeEventListener("pagehide",i)},[]);const xt=()=>{window.clearTimeout(I.current.tooltipTargetMissingTimeout),I.current.tooltipTargetMissingTimeout=void 0};l.useEffect(()=>xt,[]);const de=l.useCallback(()=>{const i=I.current;if(i.tooltipTargetParams=null,E||(i.tooltipPlacement=null),a!==y.TOOLTIP){xt(),i.tooltipTargetMissing=!1;return}if(!E&&!i.tooltipTargetMissingTimeout){i.tooltipTargetMissing=!1;const S=u&&!ie(u)&&u.type===Me.AUTO&&!u.autoData?1:parseFloat(t.tooltipMissingToleranceSeconds)*1e3;i.tooltipTargetMissingTimeout=window.setTimeout(()=>{if(!$t.current){if(u&&!ie(u)){let pt=u.autoData;if(u.autoData)try{pt=JSON.parse(u.autoData)}catch{}console.warn(`Userflow.js: Tooltip target not found on page.
2
- `,{type:u.type,autoData:pt,excludeText:u.excludeText,precision:u.precision,text:u.text,css:u.css})}xt(),i.tooltipTargetMissing=!0,Ot.current()}},S)}Ot.current()},[a,E,u,t.tooltipMissingToleranceSeconds]),be=l.useCallback(i=>{const S=I.current;xt(),S.tooltipTargetParams&&S.tooltipTargetParams.targetEl!==i.targetEl&&(S.tooltipPlacement=null),S.tooltipTargetParams=i,z({forceUpdatePosition:!0})},[z]);_e({selector:a===y.TOOLTIP&&u||null,targetMoved:be,targetLost:de,onTargetClick:B});const me=l.useCallback(()=>z({forceAppearanceLayout:!0}),[z]);Pe(me),l.useEffect(()=>{if(!X||R||typeof ue!="function")return;let i;const S=new ue(()=>{i||(i=window.requestAnimationFrame(()=>{i=void 0,Ot.current()}))});return S.observe(X,{childList:!0,attributes:!0,subtree:!0}),()=>{S.disconnect(),i&&window.cancelAnimationFrame(i)}},[X,R]);const{startConfetti:pe}=Ue({stepType:a,theme:t,bubbleFrame:lt.current,isBubbleVisible:Z,confettiDelay:400,zIndex:_t});l.useEffect(()=>{Z&&ot&&lt.current&&pe(!0)},[ot,s,Z]),l.useLayoutEffect(()=>{Ot.current()}),l.useLayoutEffect(()=>{U==="absolute"&&z({forceAppearanceLayout:!0})},[U,g,L]);const mt=i=>{i.preventDefault(),i.stopPropagation()};return He(t,!!O&&$===y.BUBBLE),p.createElement("div",{ref:dt,"data-testid":"flow-chrome",className:"userflowjs-flow-chrome userflowjs-theme-root",style:Be(t),dir:nt},p.createElement("div",{className:"userflowjs-bubble",ref:ht,style:{zIndex:ft}},p.createElement("div",{className:Gt({"userflowjs-bubble-outline":!0,[`userflowjs-bubble-outline--bubble-placement-${(t.bubblePlacement||"").toLowerCase().replace(/_/,"-")}`]:!0,"userflowjs-bubble-outline--minimizable":!!F,"userflowjs-bubble-outline--minimized":A})},p.createElement("div",{className:"userflowjs-bubble__frame-wrapper",..._},p.createElement(ne,{className:"userflowjs-bubble__frame",elRef:lt,stylesheet:Ne,theme:t,onStylesheetsLoad:At,noIframe:R,title:a.toLowerCase()},p.createElement("div",{className:"userflowjs-bubble-frame-root",ref:i=>{M&&M(i),Pt(i)},style:T?{backgroundImage:`url("${encodeURI(T)}")`}:void 0},r,e.flowBranding&&!f&&p.createElement("div",{className:"userflowjs-bubble-made-with-userflow"},p.createElement("div",{className:"userflowjs-bubble-made-with-userflow__absolute"},p.createElement(at,{company:e},p.createElement(ke,null),p.createElement("div",null,"Made with Userflow"))))))),p.createElement("div",{ref:gt,className:"userflowjs-bubble__avatar-notch"})),p.createElement(ne,{className:Gt({"userflowjs-bubble__avatar":!0,"userflowjs-bubble__avatar--minimizable":!!F,"userflowjs-bubble__avatar--speaking":!!D}),elRef:Tt,stylesheet:Fe,theme:t,onStylesheetsLoad:w,noIframe:R,ariaHidden:!0,title:a.toLowerCase()},p.createElement("div",{className:Gt({"userflowjs-avatar-frame-root":!0,"userflowjs-avatar-frame-root--minimizable":!!F}),onClick:F?()=>st(i=>!i):void 0},p.createElement(Ve,{theme:t}))),p.createElement("div",{ref:wt,className:"userflowjs-bubble__tooltip-notch"})),p.createElement("div",{ref:Et,className:"userflowjs-tooltip-backdrop",onMouseDown:mt,style:{zIndex:J,pointerEvents:W?void 0:"none"}}),p.createElement("div",{ref:Lt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:yt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:vt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:Bt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:Mt,className:"userflowjs-modal-backdrop",onMouseDown:mt,onClick:K,style:{zIndex:J}}),k&&k({visible:Z,bubbleFrame:lt.current}))},Ve=({theme:e})=>{const t="https://js.userflow.com/cartoon-avatars-no-bg/";let o;return e.avatarType===ct.ASSET&&e.avatarAsset?o=e.avatarAsset.assetUrl:e.avatarType===ct.CARTOON&&e.avatarName?o=t+e.avatarName+".svg?3":e.avatarType===ct.URL&&e.avatarUrl?o=e.avatarUrl:o=t+"none.svg",p.createElement("img",{src:o,alt:""})},We=({company:e,children:t})=>p.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+e.slug,target:"_blank",rel:"noopener noreferrer"},t);function ze({layoutState:{appearance:e,theme:t,backdrop:o,tooltipTargetMissing:g},width:L,position:s,absoluteWidth:a,root:d,bubble:T,bubbleFrameRoot:u,avatar:E,avatarNotch:v,modalBackdrop:x,dir:W}){const tt=s==="absolute"?a||1024:ut(Ht()),{avatarSize:P,bubblePlacement:B}=t;let C=t.bubbleWidth,K=null,et=null,D=`userflowjs-bubble-frame-root userflowjs-bubble-frame-root--appearance-${e?.toLowerCase()}`,R="hidden",c=null,F=null,O=null,M=null,_="userflowjs-bubble__avatar-notch",k="hidden",r=null,f=null,ot=null,U=null,H="userflowjs-modal-backdrop";switch((e===y.MODAL||!g&&e===y.BUBBLE&&o)&&(H+=" userflowjs-modal-backdrop--visible"),e){case y.BUBBLE:if(t.avatarType!==ct.NONE){R="",k="",B===N.TOP_LEFT||B===N.TOP_CENTER||B===N.TOP_RIGHT?(K=P+Rt,c=0,r=-2*Rt,_+=" userflowjs-bubble__avatar-notch--top"):(et=P+Rt,O=0,ot=-2*Rt,_+=" userflowjs-bubble__avatar-notch--bottom");const at=B===N.TOP_LEFT||B===N.TOP_CENTER||B===N.BOTTOM_LEFT||B===N.BOTTOM_CENTER||B===N.CENTER;W==="ltr"&&at||W==="rtl"&&!at?(M=0,U=P,_+=" userflowjs-bubble__avatar-notch--left"):(F=0,f=P,_+=" userflowjs-bubble__avatar-notch--right")}break;case y.MODAL:C=t.modalWidth,t.avatarType!==ct.NONE&&(R="",M=`calc(50% - ${P/2}px)`,c=-P/2);break;case y.TOOLTIP:C=t.tooltipWidth;break}L!=null&&(C=L),C=Math.min(C,tt-2*Xt),d.classList.toggle("userflowjs-flow-chrome--position-absolute",s==="absolute"),d.classList.toggle("userflowjs-flow-chrome--position-relative",s==="relative"),d.classList.toggle("userflowjs-flow-chrome--position-fixed",s==="fixed"),d.classList.toggle("userflowjs-flow-chrome--appearance-modal",e===y.MODAL);const Y=e!=null&&e!==y.HIDDEN;d.style.position="",d.style.top="",d.style.left="",d.style.visibility=Y?"":"hidden",d.style.animation=Y?"":"none",m(T,"width",ut(C)),m(T,"padding-top",K),m(T,"padding-bottom",et),u.className=D,m(E,"width",ut(t.avatarSize)),m(E,"height",ut(t.avatarSize)),E.style.visibility=R,m(E,"top",c),m(E,"right",F),m(E,"bottom",O),m(E,"left",M),v.className=_,v.style.visibility=k,m(v,"top",r),m(v,"right",f),m(v,"bottom",ot),m(v,"left",U),x.className=H}function Ge({layoutState:e,animateIn:t,position:o,absoluteWidth:g,absoluteHeight:L,desiredTooltipPlacement:s,root:a,bubble:d,tooltipNotch:T,tooltipBackdrop:u,tooltipBlockTop:E,tooltipBlockRight:v,tooltipBlockBottom:x,tooltipBlockLeft:W,dir:tt}){const{appearance:P,theme:B,tooltipTargetParams:C,backdrop:K,backdropPadding:et}=e,{bubblePlacement:D}=B,R=Xt,c=B.tooltipNotchSize,F=10,{width:O,height:M}=d.getBoundingClientRect(),_=o==="absolute"?g||1024:ut(Ht()),k=o==="absolute"?L||768:ut(Yt());let r=0,f=0,ot="userflowjs-bubble__tooltip-notch",U="hidden",H=null,Y=null,at=null,rt=null,ft="userflowjs-tooltip-backdrop",J=null,_t=null,Nt=null,nt=null,dt=null,ht=null,lt=null,X=null,Pt="userflowjs-tooltip-block userflowjs-tooltip-block--top",gt=null,Tt=null,wt="userflowjs-tooltip-block userflowjs-tooltip-block--right",Et=null,Lt=null,yt="userflowjs-tooltip-block userflowjs-tooltip-block--bottom",vt=null,Bt=null,Mt="userflowjs-tooltip-block userflowjs-tooltip-block--left",kt=null,jt=null;switch(P){case y.BUBBLE:{D===N.TOP_LEFT||D===N.BOTTOM_LEFT?r=B.bubbleX:D===N.TOP_CENTER||D===N.CENTER||D===N.BOTTOM_CENTER?r=(_-O)/2:r=_-O-B.bubbleX,D===N.TOP_LEFT||D===N.TOP_CENTER||D===N.TOP_RIGHT?f=B.bubbleY:D===N.CENTER?f=(k-M)/2:f=k-M-B.bubbleY,tt==="rtl"&&(r=_-r-O),r=Math.max(0,Math.min(_-O,r)),f=Math.max(0,Math.min(k-M,f));break}case y.MODAL:{let w=R;B.avatarType!==ct.NONE&&(w+=B.avatarSize/2),r=R+(_-R*2-O)/2,f=w+(k-w-R-M)/2;break}case y.TOOLTIP:{let w;if(C){let{targetRect:n,viewportClipRect:A}=C;if(o==="absolute"){const j=a.offsetParent.getBoundingClientRect();A={top:0,right:_,bottom:k,left:0},n={top:n.top-j.top,right:n.right-j.left,bottom:n.bottom-j.top,left:n.left-j.left,width:n.width,height:n.height}}let st=0;if(K){const{paddingTop:j,paddingRight:Z,paddingBottom:bt,paddingLeft:z}=$e(et);n={top:n.top-j,right:n.right+Z,bottom:n.bottom+bt,left:n.left-z,width:n.width+z+Z,height:n.height+j+bt},st=Math.min(j,Z,bt,z)}const I=n,$=B.backdropHighlightType==Oe.OUTSIDE?B.backdropHighlightSpread:0;if(K&&$&&(n={top:n.top-$,right:n.right+$,bottom:n.bottom+$,left:n.left-$,width:n.width+2*$,height:n.height+2*$}),w=Ye({targetRect:n,bubbleWidth:O,bubbleHeight:M,containerWidth:_,containerHeight:k,viewportClipRect:A,tooltipNotchSize:c,currentTooltipPlacement:e.tooltipPlacement,desiredTooltipPlacement:s}),w===b.BELOW||w===b.ABOVE?(r=n.left+n.width/2-O/2,r=Math.max(R,Math.min(_-O-R,r)),rt=Math.max(F,Math.min(O-F-c*2,n.left+n.width/2-c-r)),w===b.BELOW?H=-c*2:at=-c*2):w===b.RIGHT?(r=n.right+c,r=Math.max(r,A.left+c),r=Math.min(r,A.right+c),r=Math.max(r,c),r=Math.min(r,_-O)):(r=n.left-c-O,r=Math.max(r,A.left-O-c),r=Math.min(r,A.right-O-c),r=Math.max(r,0),r=Math.min(r,_-O-c)),w===b.LEFT||w===b.RIGHT?(f=n.top+n.height/2-M/2,f=Math.max(R,Math.min(k-M-R,f)),H=Math.max(F,Math.min(M-F-c*2,n.top+n.height/2-c-f)),w===b.LEFT?Y=-c*2:rt=-c*2):w===b.BELOW?(f=n.bottom+c,f=Math.max(f,A.top+c),f=Math.min(f,A.bottom+c),f=Math.max(f,c),f=Math.min(f,k-M)):(f=n.top-c-M,f=Math.max(f,A.top-M-c),f=Math.min(f,A.bottom-M-c),f=Math.max(f,0),f=Math.min(f,k-M-c)),K){const j=window.getComputedStyle(C.targetEl);J=Math.max(0,I.top),_t=Math.max(0,_-I.right),Nt=Math.max(0,k-I.bottom),nt=Math.max(0,I.left),dt=Math.max(0,Ft(j.borderTopLeftRadius)+st),ht=Math.max(0,Ft(j.borderTopRightRadius)+st),lt=Math.max(0,Ft(j.borderBottomRightRadius)+st),X=Math.max(0,Ft(j.borderBottomLeftRadius)+st),gt=Math.max(0,I.right),Tt=Math.max(0,I.top),Et=Math.max(0,I.right),Lt=Math.max(0,I.bottom),vt=Math.max(0,I.left),Bt=Math.max(0,I.bottom),kt=Math.max(0,I.left),jt=Math.max(0,I.top)}}else w=s||b.BELOW,(w===b.BELOW||w===b.ABOVE)&&(rt=O/2-c,w===b.BELOW?H=-c*2:at=-c*2),(w===b.LEFT||w===b.RIGHT)&&(H=M/2-c,w===b.LEFT?Y=-c*2:rt=-c*2);e.tooltipPlacement=w,ot+=` userflowjs-bubble__tooltip-notch--${w.toLowerCase()}`,U="",K&&(ft+=" userflowjs-tooltip-backdrop--visible",Pt+=" userflowjs-tooltip-block--visible",wt+=" userflowjs-tooltip-block--visible",yt+=" userflowjs-tooltip-block--visible",Mt+=" userflowjs-tooltip-block--visible");break}}d.style.transition="";let At=r,St=f;if(t&&(d.style.opacity="0",P===y.TOOLTIP))switch(e.tooltipPlacement){case b.BELOW:f+=24;break;case b.ABOVE:f-=24;break;case b.RIGHT:r+=24;break;case b.LEFT:r-=24;break}if(o!=="relative"&&ce(d,r,f),T.className=ot,T.style.visibility=U,m(T,"top",H),m(T,"right",Y),m(T,"bottom",at),m(T,"left",rt),u.className=ft,m(u,"top",J),m(u,"right",_t),m(u,"bottom",Nt),m(u,"left",nt),m(u,"border-top-left-radius",dt),m(u,"border-top-right-radius",ht),m(u,"border-bottom-right-radius",lt),m(u,"border-bottom-left-radius",X),E.className=Pt,m(E,"width",gt),m(E,"height",Tt),v.className=wt,m(v,"left",Et),m(v,"height",Lt),x.className=yt,m(x,"left",vt),m(x,"top",Bt),W.className=Mt,m(W,"width",kt),m(W,"top",jt),t){d.offsetWidth;const w="opacity 250ms linear";P===y.TOOLTIP?d.style.transition=`${w}, transform 500ms cubic-bezier(0.25, 0.8, 0.5, 1)`:d.style.transition=w,d.style.opacity="1",o!=="relative"&&ce(d,At,St)}}function Ye({targetRect:e,bubbleWidth:t,bubbleHeight:o,containerWidth:g,containerHeight:L,viewportClipRect:s,tooltipNotchSize:a,currentTooltipPlacement:d,desiredTooltipPlacement:T}){if(e.bottom<=s.top)return o+a<=L-s.top?b.BELOW:b.ABOVE;if(e.top>=s.bottom)return o+a<=s.bottom?b.ABOVE:b.BELOW;if(e.right<=s.left)return t+a<=g-s.left?b.RIGHT:b.LEFT;if(e.left>=s.right)return t+a<=s.right?b.LEFT:b.RIGHT;const u=v=>{const x=e.left+e.width/2,W=x>=s.left&&x<=s.right,tt=e.top+e.height/2,P=tt>=s.top&&tt<=s.bottom;switch(v){case b.BELOW:return L-e.bottom>o+a&&W;case b.ABOVE:return e.top>o+a&&W;case b.RIGHT:return g-e.right>t+a&&P;case b.LEFT:return e.left>t+a&&P}};if(T&&u(T))return T;if(d&&u(d))return d;const E=[{placement:b.BELOW,dist:e.top},{placement:b.ABOVE,dist:L-e.bottom},{placement:b.RIGHT,dist:e.left},{placement:b.LEFT,dist:g-e.right}];E.sort((v,x)=>v.dist-x.dist);for(const{placement:v}of E)if(u(v))return v;return b.BELOW}function m(e,t,o){o==null?e.style.removeProperty(t):e.style.setProperty(t,typeof o=="number"?o+"px":o,"important")}function ce(e,t,o){t=Math.round(t),o=Math.round(o),e.style.transform=`translate3d(${t}px, ${o}px, 0px)`}function Xe(e){if(G.customScrollIntoView){G.customScrollIntoView(e);return}const{scrollPadding:t}=G;if(t&&xe(e)===document.scrollingElement){const o=t.top||0,g=t.right||0,L=t.bottom||0,s=t.left||0;let a=0,d=0;const T=e.getBoundingClientRect(),u=Ht(),E=Yt();if(T.top<o?a=T.top-o:T.bottom>E-L&&(a=T.bottom-E+L),T.left<s?d=T.left-s:T.right>u-g&&(d=T.right-u+g),a!=0||d!=0){window.scrollBy({top:a,left:d,behavior:"smooth"});return}}try{e.scrollIntoView({behavior:"smooth",block:"nearest"})}catch(o){console.warn("Userflow.js: scrollIntoView error (falling back to no options).",o),e.scrollIntoView()}}function $e(e){if(!e||e==="0")return{paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0};const t=e.trim().split(" ");if(t.length===1){const o=it(t[0]);return{paddingTop:o,paddingRight:o,paddingBottom:o,paddingLeft:o}}else if(t.length===2){const o=it(t[0]),g=it(t[1]);return{paddingTop:o,paddingRight:g,paddingBottom:o,paddingLeft:g}}else return{paddingTop:it(t[0]),paddingRight:it(t[1]),paddingBottom:it(t[2]),paddingLeft:it(t[3])}}function it(e){const t=parseInt(e,10);return isNaN(t)?0:t}export{uo as B,co as F};
1
+ import{S as ye,T as ve,N as Be,E as Me}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{R as h,r as s}from"./vendor.react.js";import{D as Dt,u as Oe,g as Ie}from"./stylesheets.js";import"./vendor.core-js.js";import{u as fe}from"./vendor.react-i18next.js";import{F as ne}from"./Frame.js";import{G,r as y,v as ut,F as Re,w as P,a4 as _e,a3 as m}from"./userflow.js";import{u as Pe,f as Ne}from"./flow-host.styl.js";import{u as ke,b as je}from"./use-selector-element-monitoring.js";import{u as Ce}from"./use-window-resize.js";import{S as xe}from"./logomark.js";import{o as Gt}from"./vendor.obj-str.js";import{m as De,h as Yt,e as At,j as ct,t as Fe,l as ie,M as ce,q as Ft,u as Ae,p as He}from"./roots.js";import{c as de}from"./vendor.canvas-confetti.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d96fbcd0-f877-4d05-9e0a-7c0fba8d2671",e._sentryDebugIdIdentifier="sentry-dbid-d96fbcd0-f877-4d05-9e0a-7c0fba8d2671")}catch{}})();const fo=({draftMode:e,muted:t,toggleMuted:o,close:d,minimize:w})=>{const{t:l}=fe();return h.createElement("div",{className:"userflowjs-bubble-toolbar"},e&&h.createElement("div",{className:"userflowjs-bubble-draft"},typeof e=="string"?e:"Preview"),o&&h.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:o,"aria-label":t?"Unmute":"Mute"},t?h.createElement(Dt,{icon:ye}):h.createElement(Dt,{icon:ve})),w&&h.createElement("button",{"data-testid":"minimize-button",className:"userflowjs-bubble-toolbar-button",onClick:w,"aria-label":"Minimize checklist"},h.createElement(Dt,{icon:Be})),d&&h.createElement("button",{"data-testid":"close-button",className:"userflowjs-bubble-toolbar-button",onClick:d,"aria-label":l("menu.close")},h.createElement(Dt,{icon:Me})))},Se=new URL("avatar-frame.css",import.meta.url).href;function Ue(e,t){const o=window.Intercom;s.useEffect(()=>{if(!(!t||!e.autoHideIntercom||typeof o!="function"||G.autoHide3pDisabled)){try{o("update",{hide_default_launcher:!0})}catch(a){console.warn("Userflow.js: Error when hiding Intercom launcher",a)}return()=>{if(!G.autoHide3pDisabled)try{o("update",{hide_default_launcher:!1})}catch(a){console.warn("Userflow.js: Error when unhiding Intercom launcher",a)}}}},[o,e.autoHideIntercom,t]);const d=window.$crisp;s.useEffect(()=>{if(!(!t||!e.autoHideCrisp||!d||G.autoHide3pDisabled)){try{d.push(["do","chat:hide"])}catch(a){console.warn("Userflow.js: Error when hiding Crisp Chat",a)}return()=>{if(!G.autoHide3pDisabled)try{d.push(["do","chat:show"])}catch(a){console.warn("Userflow.js: Error when unhiding Crisp Chat",a)}}}},[d,e.autoHideCrisp,t]);const w=window.HubSpotConversations;s.useEffect(()=>{if(!(!t||!e.autoHideHubspot||!w||G.autoHide3pDisabled)){try{w.widget.remove()}catch(a){console.warn("Userflow.js: Error when hiding HubSpot Chat",a)}return()=>{if(!G.autoHide3pDisabled)try{w.widget.load()}catch(a){console.warn("Userflow.js: Error when unhiding HubSpot Chat",a)}}}},[w,e.autoHideHubspot,t]);const l=window.drift;s.useEffect(()=>{if(!(!t||!e.autoHideDrift||!l||G.autoHide3pDisabled)){try{l.api.widget.hide()}catch(a){console.warn("Userflow.js: Error when hiding Drift Chat",a)}return()=>{if(!G.autoHide3pDisabled)try{l.api.widget.show()}catch(a){console.warn("Userflow.js: Error when unhiding Drift Chat",a)}}}},[l,e.autoHideDrift,t])}const Q={PARTICLE_COUNT:400,ANIMATION_DELAY:400,DEFAULT_SPREAD:360,DEFAULT_GRAVITY:1,DEFAULT_TICKS:100,DEFAULT_Z_INDEX:5,TOOLTIP_DECAY:.85,TOOLTIP_START_VELOCITY:30},be={particleCount:Q.PARTICLE_COUNT,spread:Q.DEFAULT_SPREAD,gravity:Q.DEFAULT_GRAVITY,ticks:Q.DEFAULT_TICKS,angle:90,zIndex:Q.DEFAULT_Z_INDEX,disableForReducedMotion:!0},me=e=>{if(!e)return{x:.5,y:.5};const t=e.getBoundingClientRect();return{x:t.left>=0?(t.left+t.width/2)/window.innerWidth:.5,y:t.top>=0?(t.top+t.height/2)/window.innerHeight:.5}},Ve=e=>{const t=De(e);if(t){const o=e.getBoundingClientRect(),d=t.getBoundingClientRect(),w=t.ownerDocument.defaultView,l=w?.innerWidth||1,a=w?.innerHeight||1;return{x:(d.left+o.left+o.width/2)/l,y:(d.top+o.top+o.height/2)/a}}return me(e)},We=({bubbleFrame:e,isBubbleVisible:t,theme:o,stepType:d,onAnimationComplete:w,confettiDelay:l,zIndex:a})=>{const[b,T]=s.useState(!1);return s.useEffect(()=>{if(!t||!b||!o.confettiColors||o.confettiColors.length===0)return;const c=setTimeout(()=>{try{const L=me(e),v={...be,colors:o.confettiColors||void 0,origin:L,zIndex:a??Q.DEFAULT_Z_INDEX,...d===y.TOOLTIP&&{decay:Q.TOOLTIP_DECAY,startVelocity:Q.TOOLTIP_START_VELOCITY}};de(v)}catch(L){console.warn("Error launching confetti:",L)}finally{w?.(),T(!1)}},l||Q.ANIMATION_DELAY);return()=>clearTimeout(c)},[t,b,o.confettiColors,e,d,w,l,a]),{startConfetti:T}},bo=(e,t,o)=>{try{const d=Ve(e);de({...be,...o,origin:d,colors:t||void 0})}catch(d){console.warn("Error launching confetti:",d)}},Xt=16,Rt=20,mo=({company:e,theme:t,position:o,absoluteWidth:d,absoluteHeight:w,stepKey:l,stepAppearance:a,width:b,backgroundImageUrl:T,tooltipSelector:c,allowMissingTooltipTarget:L,tooltipPlacement:v,backdrop:C,tooltipTargetBlocked:W,backdropPadding:tt,zIndex:N,onTooltipTargetClick:B,onTooltipTargetMissingChange:x,onModalBackdropClick:K,onVisibleChange:et,speaking:D,noIframe:R,MadeWithUserflow:u,minimizeOnAvatarClick:F,autoHide3pEnabled:O,bubbleFrameRootRef:M,frameWrapperHtmlAttributes:_,rootChildren:k,children:r,isModalAnnouncement:f,confettiEnabled:ot})=>{const U=o||"absolute",A=v||null,Y=tt||"0",at=u||Ge,rt=Pe(),ft=U==="fixed"?N??rt+1:1,J=ft-1,_t=ft-2,{i18n:Pt}=fe(),nt=Pt.dir(),dt=s.useRef(null),ht=s.useRef(null),lt=s.useRef(null),[X,Nt]=s.useState(null),gt=s.useRef(null),wt=s.useRef(null),Tt=s.useRef(null),Et=s.useRef(null),Lt=s.useRef(null),yt=s.useRef(null),vt=s.useRef(null),Bt=s.useRef(null),Mt=s.useRef(null);s.useLayoutEffect(()=>{const i=dt.current.style;i.animation="none",i.visibility="hidden",i.position="absolute",i.top="-99999px",i.left="-99999px"},[]);const{loaded:kt}=Oe(window,Ne,t),[jt,Ht]=s.useState(!1),[St,E]=s.useState(!1),n=kt&&jt&&St;let[H,st]=s.useState(!1);a!==y.BUBBLE&&(F=!1,H=!1),s.useEffect(()=>{st(!1)},[l]);const I=s.useRef({appearance:null,width:null,theme:t,bubbleFrameHeight:0,backdrop:!1,backdropPadding:"0",prevTooltipTargetParams:null,tooltipTargetParams:null,desiredTooltipPlacement:null,tooltipPlacement:null,lastReportedTooltipTargetMissing:!1,tooltipTargetMissing:!1,tooltipTargetMissingTimeout:void 0,stepKeyScrolledIntoView:void 0,targetScrolledIntoView:null}),[$,j]=s.useState(null),Z=$!=null&&n;s.useEffect(()=>{et&&et(Z)},[et,Z]);const bt=s.useCallback(i=>{I.current.lastReportedTooltipTargetMissing!==i&&(I.current.lastReportedTooltipTargetMissing=i,x&&x(i))},[x]),z=s.useCallback(({forceAppearanceLayout:i,forceUpdatePosition:S}={})=>{const pt=dt.current,xt=ht.current,It=lt.current,Zt=wt.current,qt=gt.current,Kt=Tt.current,Jt=Et.current,Qt=Lt.current,te=yt.current,ee=vt.current,oe=Bt.current,ae=Mt.current;if(!pt||!xt||!It||!X||!Zt||!qt||!Kt||!Jt||!Qt||!te||!ee||!oe||!ae||!n)return;const g=I.current,{tooltipTargetParams:Ut}=g;He();let V=a,le=!1;V===y.TOOLTIP&&!L&&!Ut&&(g.tooltipTargetMissing?(V=y.BUBBLE,le=!0):V=null);const se=V!==g.appearance,Te=b!==g.width;if((i||se||Te||t!==g.theme||C!=g.backdrop||Y!=g.backdropPadding||A!==g.desiredTooltipPlacement)&&(g.appearance=V,g.width=b,g.theme=t,g.backdrop=C,g.backdropPadding=Y,g.desiredTooltipPlacement=A,S=!0,Ye({layoutState:g,width:b,position:U,absoluteWidth:d,root:pt,bubble:xt,bubbleFrameRoot:X,avatar:Zt,avatarNotch:qt,modalBackdrop:ae,dir:nt})),!R){const q=X.offsetHeight,Vt=Yt(),Wt=At()<800?0:Xt,Ee=t.avatarType===ut.NONE?0:V===y.BUBBLE?Rt+t.avatarSize:V===y.MODAL?t.avatarSize/2:0,re=Vt-2*Wt-Ee,zt=Math.min(q,re);if(V&&zt!==g.bubbleFrameHeight){if(g.bubbleFrameHeight=zt,p(It,"height",ct(zt)),Fe(It)&&It.contentDocument){const Le=It.contentDocument.documentElement;Le.style.overflowY=q<=re?"hidden":"scroll"}S=!0}}if(S&&V){let q=se;if(V===y.TOOLTIP){const Vt=g.tooltipTargetParams&&g.tooltipTargetParams.targetEl,Wt=g.prevTooltipTargetParams&&g.prevTooltipTargetParams.targetEl;Vt!==Wt&&(q=!0)}g.prevTooltipTargetParams=g.tooltipTargetParams,Xe({layoutState:g,animateIn:q,position:U,absoluteWidth:d,absoluteHeight:w,desiredTooltipPlacement:A,root:pt,bubble:xt,tooltipNotch:Kt,tooltipBackdrop:Jt,tooltipBlockTop:Qt,tooltipBlockRight:te,tooltipBlockBottom:ee,tooltipBlockLeft:oe,dir:nt})}if(V===y.TOOLTIP){const q=Ut&&Ut.targetEl;q&&g.stepKeyScrolledIntoView!==l&&g.targetScrolledIntoView!==q&&(g.stepKeyScrolledIntoView=l,g.targetScrolledIntoView=q,Ze(q))}else g.stepKeyScrolledIntoView=void 0,g.targetScrolledIntoView=null;bt(le),j(V)},[n,X,l,a,b,t,U,d,w,L,A,C,Y,R,bt,nt]),Ot=s.useRef(z);Ot.current=z;const $t=s.useRef(!1);s.useEffect(()=>{const i=()=>{$t.current=!0};return window.addEventListener("pagehide",i),()=>window.removeEventListener("pagehide",i)},[]);const Ct=()=>{window.clearTimeout(I.current.tooltipTargetMissingTimeout),I.current.tooltipTargetMissingTimeout=void 0};s.useEffect(()=>Ct,[]);const pe=s.useCallback(()=>{const i=I.current;if(i.tooltipTargetParams=null,L||(i.tooltipPlacement=null),a!==y.TOOLTIP){Ct(),i.tooltipTargetMissing=!1;return}if(!L&&!i.tooltipTargetMissingTimeout){i.tooltipTargetMissing=!1;const S=c&&!ie(c)&&c.type===Re.AUTO&&!c.autoData?1:parseFloat(t.tooltipMissingToleranceSeconds)*1e3;i.tooltipTargetMissingTimeout=window.setTimeout(()=>{if(!$t.current){if(c&&!ie(c)){let pt=c.autoData;if(c.autoData)try{pt=JSON.parse(c.autoData)}catch{}console.warn(`Userflow.js: Tooltip target not found on page.
2
+ `,{type:c.type,autoData:pt,excludeText:c.excludeText,precision:c.precision,text:c.text,css:c.css})}Ct(),i.tooltipTargetMissing=!0,Ot.current()}},S)}Ot.current()},[a,L,c,t.tooltipMissingToleranceSeconds]),he=s.useCallback(i=>{const S=I.current;Ct(),S.tooltipTargetParams&&S.tooltipTargetParams.targetEl!==i.targetEl&&(S.tooltipPlacement=null),S.tooltipTargetParams=i,z({forceUpdatePosition:!0})},[z]);ke({selector:a===y.TOOLTIP&&c||null,targetMoved:he,targetLost:pe,onTargetClick:B});const ge=s.useCallback(()=>z({forceAppearanceLayout:!0}),[z]);Ce(ge),s.useEffect(()=>{if(!X||R||typeof ce!="function")return;let i;const S=new ce(()=>{i||(i=window.requestAnimationFrame(()=>{i=void 0,Ot.current()}))});return S.observe(X,{childList:!0,attributes:!0,subtree:!0}),()=>{S.disconnect(),i&&window.cancelAnimationFrame(i)}},[X,R]);const{startConfetti:we}=We({stepType:a,theme:t,bubbleFrame:lt.current,isBubbleVisible:Z,confettiDelay:400,zIndex:_t});s.useEffect(()=>{Z&&ot&&lt.current&&we(!0)},[ot,l,Z]),s.useLayoutEffect(()=>{Ot.current()}),s.useLayoutEffect(()=>{U==="absolute"&&z({forceAppearanceLayout:!0})},[U,d,w]);const mt=i=>{i.preventDefault(),i.stopPropagation()};return Ue(t,!!O&&$===y.BUBBLE),h.createElement("div",{ref:dt,"data-testid":"flow-chrome",className:"userflowjs-flow-chrome userflowjs-theme-root",style:Ie(t),dir:nt},h.createElement("div",{className:"userflowjs-bubble",ref:ht,style:{zIndex:ft}},h.createElement("div",{className:Gt({"userflowjs-bubble-outline":!0,[`userflowjs-bubble-outline--bubble-placement-${(t.bubblePlacement||"").toLowerCase().replace(/_/,"-")}`]:!0,"userflowjs-bubble-outline--minimizable":!!F,"userflowjs-bubble-outline--minimized":H})},h.createElement("div",{className:"userflowjs-bubble__frame-wrapper",..._},h.createElement(ne,{className:"userflowjs-bubble__frame",elRef:lt,stylesheet:je,theme:t,onStylesheetsLoad:Ht,noIframe:R,title:a.toLowerCase()},h.createElement("div",{className:"userflowjs-bubble-frame-root",ref:i=>{M&&M(i),Nt(i)},style:T?{backgroundImage:`url("${encodeURI(T)}")`}:void 0},r,e.flowBranding&&!f&&h.createElement("div",{className:"userflowjs-bubble-made-with-userflow"},h.createElement("div",{className:"userflowjs-bubble-made-with-userflow__absolute"},h.createElement(at,{company:e},h.createElement(xe,null),h.createElement("div",null,"Made with Userflow"))))))),h.createElement("div",{ref:gt,className:"userflowjs-bubble__avatar-notch"})),h.createElement(ne,{className:Gt({"userflowjs-bubble__avatar":!0,"userflowjs-bubble__avatar--minimizable":!!F,"userflowjs-bubble__avatar--speaking":!!D}),elRef:wt,stylesheet:Se,theme:t,onStylesheetsLoad:E,noIframe:R,ariaHidden:!0,title:a.toLowerCase()},h.createElement("div",{className:Gt({"userflowjs-avatar-frame-root":!0,"userflowjs-avatar-frame-root--minimizable":!!F}),onClick:F?()=>st(i=>!i):void 0},h.createElement(ze,{theme:t}))),h.createElement("div",{ref:Tt,className:"userflowjs-bubble__tooltip-notch"})),h.createElement("div",{ref:Et,className:"userflowjs-tooltip-backdrop",onMouseDown:mt,style:{zIndex:J,pointerEvents:W?void 0:"none"}}),h.createElement("div",{ref:Lt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),h.createElement("div",{ref:yt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),h.createElement("div",{ref:vt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),h.createElement("div",{ref:Bt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),h.createElement("div",{ref:Mt,className:"userflowjs-modal-backdrop",onMouseDown:mt,onClick:K,style:{zIndex:J}}),k&&k({visible:Z,bubbleFrame:lt.current}))},ze=({theme:e})=>{const t="https://js.userflow.com/cartoon-avatars-no-bg/";let o;return e.avatarType===ut.ASSET&&e.avatarAsset?o=e.avatarAsset.assetUrl:e.avatarType===ut.CARTOON&&e.avatarName?o=t+e.avatarName+".svg?3":e.avatarType===ut.URL&&e.avatarUrl?o=e.avatarUrl:o=t+"none.svg",h.createElement("img",{src:o,alt:""})},Ge=({company:e,children:t})=>h.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+e.slug,target:"_blank",rel:"noopener noreferrer"},t);function Ye({layoutState:{appearance:e,theme:t,backdrop:o,tooltipTargetMissing:d},width:w,position:l,absoluteWidth:a,root:b,bubble:T,bubbleFrameRoot:c,avatar:L,avatarNotch:v,modalBackdrop:C,dir:W}){const tt=l==="absolute"?a||1024:ct(At()),{avatarSize:N,bubblePlacement:B}=t;let x=t.bubbleWidth,K=null,et=null,D=`userflowjs-bubble-frame-root userflowjs-bubble-frame-root--appearance-${e?.toLowerCase()}`,R="hidden",u=null,F=null,O=null,M=null,_="userflowjs-bubble__avatar-notch",k="hidden",r=null,f=null,ot=null,U=null,A="userflowjs-modal-backdrop";switch((e===y.MODAL||!d&&e===y.BUBBLE&&o)&&(A+=" userflowjs-modal-backdrop--visible"),e){case y.BUBBLE:if(t.avatarType!==ut.NONE){R="",k="",B===P.TOP_LEFT||B===P.TOP_CENTER||B===P.TOP_RIGHT?(K=N+Rt,u=0,r=-2*Rt,_+=" userflowjs-bubble__avatar-notch--top"):(et=N+Rt,O=0,ot=-2*Rt,_+=" userflowjs-bubble__avatar-notch--bottom");const at=B===P.TOP_LEFT||B===P.TOP_CENTER||B===P.BOTTOM_LEFT||B===P.BOTTOM_CENTER||B===P.CENTER;W==="ltr"&&at||W==="rtl"&&!at?(M=0,U=N,_+=" userflowjs-bubble__avatar-notch--left"):(F=0,f=N,_+=" userflowjs-bubble__avatar-notch--right")}break;case y.MODAL:x=t.modalWidth,t.avatarType!==ut.NONE&&(R="",M=`calc(50% - ${N/2}px)`,u=-N/2);break;case y.TOOLTIP:x=t.tooltipWidth;break}w!=null&&(x=w),x=Math.min(x,tt-2*Xt),b.classList.toggle("userflowjs-flow-chrome--position-absolute",l==="absolute"),b.classList.toggle("userflowjs-flow-chrome--position-relative",l==="relative"),b.classList.toggle("userflowjs-flow-chrome--position-fixed",l==="fixed"),b.classList.toggle("userflowjs-flow-chrome--appearance-modal",e===y.MODAL);const Y=e!=null&&e!==y.HIDDEN;b.style.position="",b.style.top="",b.style.left="",b.style.visibility=Y?"":"hidden",b.style.animation=Y?"":"none",p(T,"width",ct(x)),p(T,"padding-top",K),p(T,"padding-bottom",et),c.className=D,p(L,"width",ct(t.avatarSize)),p(L,"height",ct(t.avatarSize)),L.style.visibility=R,p(L,"top",u),p(L,"right",F),p(L,"bottom",O),p(L,"left",M),v.className=_,v.style.visibility=k,p(v,"top",r),p(v,"right",f),p(v,"bottom",ot),p(v,"left",U),C.className=A}function Xe({layoutState:e,animateIn:t,position:o,absoluteWidth:d,absoluteHeight:w,desiredTooltipPlacement:l,root:a,bubble:b,tooltipNotch:T,tooltipBackdrop:c,tooltipBlockTop:L,tooltipBlockRight:v,tooltipBlockBottom:C,tooltipBlockLeft:W,dir:tt}){const{appearance:N,theme:B,tooltipTargetParams:x,backdrop:K,backdropPadding:et}=e,{bubblePlacement:D}=B,R=Xt,u=B.tooltipNotchSize,F=10,{width:O,height:M}=b.getBoundingClientRect(),_=o==="absolute"?d||1024:ct(At()),k=o==="absolute"?w||768:ct(Yt());let r=0,f=0,ot="userflowjs-bubble__tooltip-notch",U="hidden",A=null,Y=null,at=null,rt=null,ft="userflowjs-tooltip-backdrop",J=null,_t=null,Pt=null,nt=null,dt=null,ht=null,lt=null,X=null,Nt="userflowjs-tooltip-block userflowjs-tooltip-block--top",gt=null,wt=null,Tt="userflowjs-tooltip-block userflowjs-tooltip-block--right",Et=null,Lt=null,yt="userflowjs-tooltip-block userflowjs-tooltip-block--bottom",vt=null,Bt=null,Mt="userflowjs-tooltip-block userflowjs-tooltip-block--left",kt=null,jt=null;switch(N){case y.BUBBLE:{D===P.TOP_LEFT||D===P.BOTTOM_LEFT?r=B.bubbleX:D===P.TOP_CENTER||D===P.CENTER||D===P.BOTTOM_CENTER?r=(_-O)/2:r=_-O-B.bubbleX,D===P.TOP_LEFT||D===P.TOP_CENTER||D===P.TOP_RIGHT?f=B.bubbleY:D===P.CENTER?f=(k-M)/2:f=k-M-B.bubbleY,tt==="rtl"&&(r=_-r-O),r=Math.max(0,Math.min(_-O,r)),f=Math.max(0,Math.min(k-M,f));break}case y.MODAL:{let E=R;B.avatarType!==ut.NONE&&(E+=B.avatarSize/2),r=R+(_-R*2-O)/2,f=E+(k-E-R-M)/2;break}case y.TOOLTIP:{let E;if(x){let{targetRect:n,viewportClipRect:H}=x;if(o==="absolute"){const j=a.offsetParent.getBoundingClientRect();H={top:0,right:_,bottom:k,left:0},n={top:n.top-j.top,right:n.right-j.left,bottom:n.bottom-j.top,left:n.left-j.left,width:n.width,height:n.height}}let st=0;if(K){const{paddingTop:j,paddingRight:Z,paddingBottom:bt,paddingLeft:z}=qe(et);n={top:n.top-j,right:n.right+Z,bottom:n.bottom+bt,left:n.left-z,width:n.width+z+Z,height:n.height+j+bt},st=Math.min(j,Z,bt,z)}const I=n,$=B.backdropHighlightType==_e.OUTSIDE?B.backdropHighlightSpread:0;if(K&&$&&(n={top:n.top-$,right:n.right+$,bottom:n.bottom+$,left:n.left-$,width:n.width+2*$,height:n.height+2*$}),E=$e({targetRect:n,bubbleWidth:O,bubbleHeight:M,containerWidth:_,containerHeight:k,viewportClipRect:H,tooltipNotchSize:u,currentTooltipPlacement:e.tooltipPlacement,desiredTooltipPlacement:l}),E===m.BELOW||E===m.ABOVE?(r=n.left+n.width/2-O/2,r=Math.max(R,Math.min(_-O-R,r)),rt=Math.max(F,Math.min(O-F-u*2,n.left+n.width/2-u-r)),E===m.BELOW?A=-u*2:at=-u*2):E===m.RIGHT?(r=n.right+u,r=Math.max(r,H.left+u),r=Math.min(r,H.right+u),r=Math.max(r,u),r=Math.min(r,_-O)):(r=n.left-u-O,r=Math.max(r,H.left-O-u),r=Math.min(r,H.right-O-u),r=Math.max(r,0),r=Math.min(r,_-O-u)),E===m.LEFT||E===m.RIGHT?(f=n.top+n.height/2-M/2,f=Math.max(R,Math.min(k-M-R,f)),A=Math.max(F,Math.min(M-F-u*2,n.top+n.height/2-u-f)),E===m.LEFT?Y=-u*2:rt=-u*2):E===m.BELOW?(f=n.bottom+u,f=Math.max(f,H.top+u),f=Math.min(f,H.bottom+u),f=Math.max(f,u),f=Math.min(f,k-M)):(f=n.top-u-M,f=Math.max(f,H.top-M-u),f=Math.min(f,H.bottom-M-u),f=Math.max(f,0),f=Math.min(f,k-M-u)),K){const j=window.getComputedStyle(x.targetEl);J=Math.max(0,I.top),_t=Math.max(0,_-I.right),Pt=Math.max(0,k-I.bottom),nt=Math.max(0,I.left),dt=Math.max(0,Ft(j.borderTopLeftRadius)+st),ht=Math.max(0,Ft(j.borderTopRightRadius)+st),lt=Math.max(0,Ft(j.borderBottomRightRadius)+st),X=Math.max(0,Ft(j.borderBottomLeftRadius)+st),gt=Math.max(0,I.right),wt=Math.max(0,I.top),Et=Math.max(0,I.right),Lt=Math.max(0,I.bottom),vt=Math.max(0,I.left),Bt=Math.max(0,I.bottom),kt=Math.max(0,I.left),jt=Math.max(0,I.top)}}else E=l||m.BELOW,(E===m.BELOW||E===m.ABOVE)&&(rt=O/2-u,E===m.BELOW?A=-u*2:at=-u*2),(E===m.LEFT||E===m.RIGHT)&&(A=M/2-u,E===m.LEFT?Y=-u*2:rt=-u*2);e.tooltipPlacement=E,ot+=` userflowjs-bubble__tooltip-notch--${E.toLowerCase()}`,U="",K&&(ft+=" userflowjs-tooltip-backdrop--visible",Nt+=" userflowjs-tooltip-block--visible",Tt+=" userflowjs-tooltip-block--visible",yt+=" userflowjs-tooltip-block--visible",Mt+=" userflowjs-tooltip-block--visible");break}}b.style.transition="";let Ht=r,St=f;if(t&&(b.style.opacity="0",N===y.TOOLTIP))switch(e.tooltipPlacement){case m.BELOW:f+=24;break;case m.ABOVE:f-=24;break;case m.RIGHT:r+=24;break;case m.LEFT:r-=24;break}if(o!=="relative"&&ue(b,r,f),T.className=ot,T.style.visibility=U,p(T,"top",A),p(T,"right",Y),p(T,"bottom",at),p(T,"left",rt),c.className=ft,p(c,"top",J),p(c,"right",_t),p(c,"bottom",Pt),p(c,"left",nt),p(c,"border-top-left-radius",dt),p(c,"border-top-right-radius",ht),p(c,"border-bottom-right-radius",lt),p(c,"border-bottom-left-radius",X),L.className=Nt,p(L,"width",gt),p(L,"height",wt),v.className=Tt,p(v,"left",Et),p(v,"height",Lt),C.className=yt,p(C,"left",vt),p(C,"top",Bt),W.className=Mt,p(W,"width",kt),p(W,"top",jt),t){b.offsetWidth;const E="opacity 250ms linear";N===y.TOOLTIP?b.style.transition=`${E}, transform 500ms cubic-bezier(0.25, 0.8, 0.5, 1)`:b.style.transition=E,b.style.opacity="1",o!=="relative"&&ue(b,Ht,St)}}function $e({targetRect:e,bubbleWidth:t,bubbleHeight:o,containerWidth:d,containerHeight:w,viewportClipRect:l,tooltipNotchSize:a,currentTooltipPlacement:b,desiredTooltipPlacement:T}){if(e.bottom<=l.top)return o+a<=w-l.top?m.BELOW:m.ABOVE;if(e.top>=l.bottom)return o+a<=l.bottom?m.ABOVE:m.BELOW;if(e.right<=l.left)return t+a<=d-l.left?m.RIGHT:m.LEFT;if(e.left>=l.right)return t+a<=l.right?m.LEFT:m.RIGHT;const c=v=>{const C=e.left+e.width/2,W=C>=l.left&&C<=l.right,tt=e.top+e.height/2,N=tt>=l.top&&tt<=l.bottom;switch(v){case m.BELOW:return w-e.bottom>o+a&&W;case m.ABOVE:return e.top>o+a&&W;case m.RIGHT:return d-e.right>t+a&&N;case m.LEFT:return e.left>t+a&&N}};if(T&&c(T))return T;if(b&&c(b))return b;const L=[{placement:m.BELOW,dist:e.top},{placement:m.ABOVE,dist:w-e.bottom},{placement:m.RIGHT,dist:e.left},{placement:m.LEFT,dist:d-e.right}];L.sort((v,C)=>v.dist-C.dist);for(const{placement:v}of L)if(c(v))return v;return m.BELOW}function p(e,t,o){o==null?e.style.removeProperty(t):e.style.setProperty(t,typeof o=="number"?o+"px":o,"important")}function ue(e,t,o){t=Math.round(t),o=Math.round(o),e.style.transform=`translate3d(${t}px, ${o}px, 0px)`}function Ze(e){if(G.customScrollIntoView){G.customScrollIntoView(e);return}const{scrollPadding:t}=G;if(t&&Ae(e)===document.scrollingElement){const o=t.top||0,d=t.right||0,w=t.bottom||0,l=t.left||0;let a=0,b=0;const T=e.getBoundingClientRect(),c=At(),L=Yt();if(T.top<o?a=T.top-o:T.bottom>L-w&&(a=T.bottom-L+w),T.left<l?b=T.left-l:T.right>c-d&&(b=T.right-c+d),a!=0||b!=0){window.scrollBy({top:a,left:b,behavior:"smooth"});return}}try{e.scrollIntoView({behavior:"smooth",block:"nearest"})}catch(o){console.warn("Userflow.js: scrollIntoView error (falling back to no options).",o),e.scrollIntoView()}}function qe(e){if(!e||e==="0")return{paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0};const t=e.trim().split(" ");if(t.length===1){const o=it(t[0]);return{paddingTop:o,paddingRight:o,paddingBottom:o,paddingLeft:o}}else if(t.length===2){const o=it(t[0]),d=it(t[1]);return{paddingTop:o,paddingRight:d,paddingBottom:o,paddingLeft:d}}else return{paddingTop:it(t[0]),paddingRight:it(t[1]),paddingBottom:it(t[2]),paddingLeft:it(t[3])}}function it(e){const t=parseInt(e,10);return isNaN(t)?0:t}export{fo as B,mo as F,bo as f};
3
3
  //# sourceMappingURL=FlowChrome.js.map
package/LauncherApp.js CHANGED
@@ -1,2 +1,2 @@
1
- import{R as i,r as u}from"./vendor.react.js";import{X as L,Y as l,Z as a,r as te,$ as re,a0 as p,a1 as K,a2 as N}from"./userflow.js";import{u as ne,r as oe}from"./use-selector-element-monitoring.js";import{m as ae,d as ce,S as se,R as le,h as ie}from"./TreeDoc.js";import{u as ue,i as de}from"./client-context.js";import{o as U}from"./vendor.obj-str.js";import{u as fe,b as he,g as Ee,D as me,a as Te}from"./stylesheets.js";import{w as pe,f as be,L as ge,S as Ce}from"./flow-host.styl.js";import"./vendor.core-js.js";import{F as Re,B as Le}from"./FlowChrome.js";import{g as we}from"./flow-condition-types.js";import{T as Ae}from"./Trigger.js";import{r as V}from"./roots.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.i18next.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./Frame.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./iframe-reset.styl.js";import"./use-window-resize.js";import"./logomark.js";import"./vendor.canvas-confetti.js";import"./vendor.date-fns.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},c=new Error().stack;c&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[c]="85beb0dd-3d65-4f06-95b5-9838da33b365",t._sentryDebugIdIdentifier="sentry-dbid-85beb0dd-3d65-4f06-95b5-9838da33b365")}catch{}})();const ve=i.forwardRef(({appearance:t,icon:c,buttonText:d,theme:m,noAnimation:E,noFixed:w,onClick:e,onMouseEnter:s,onMouseLeave:o,noPointerEvents:n,zIndex:T},r)=>{const{loaded:C}=fe(window,be,m),k=m&&t===L.BUTTON?m:null,{loaded:H}=he(window,k),I={"userflowjs-launcher":!0,"userflowjs-launcher--activate-on-click":!!e,"userflowjs-fixed-widget":!w},f={ref:r,style:{...Ee(m),zIndex:T||pe(ge),pointerEvents:n?"none":void 0},onClick:e,onMouseEnter:s,onMouseLeave:o};if(!C||!H)return null;switch(t){case L.BEACON:return i.createElement("div",{className:U({...I,"userflowjs-beacon":!0,"userflowjs-beacon--pulse":!E,"userflowjs-beacon--pulse-still":!!E}),...f},i.createElement("div",{className:"userflowjs-beacon__ring"}),i.createElement("div",{className:"userflowjs-beacon__ring"}));case L.BUTTON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--button":!0}),...f},d);case L.HIDDEN:return null;case L.ICON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--icon":!0}),...f},i.createElement(me,{icon:c||"solid/info-circle",size:m.launcherIconSize}))}}),Ie="userflowjs-fixed-widget--visible",at=({session:t,active:c})=>{const d=ue(),{version:m}=t,E=t.id,w=t.flow.id,e=t.version.launcher,[s,o]=u.useState(null),n=Te(m.theme),T=t.locale?t.locale.standardLocaleId:n.languageId;u.useEffect(()=>{de.changeLanguage(T)},[T]);const{activateOn:r}=e,C=e.activeWhileTooltipHover||e.buttons.length>0,k=e.hiddenWhileActive&&r!==l.LAUNCHER_HOVER,H=!c||!k,I=r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK||C,f=u.useRef({}),A=u.useCallback(()=>{let h=null;const{targetEl:b,clipEl:g,viewportClipRect:F}=f.current,S=s;S&&(b&&g&&F&&(h=ke({targetEl:b,subjectEl:S,clipEl:g,viewportClipRect:F,position:e.targetPosition,subjectAnchor:e.appearance===L.BEACON?"center":"side"})),oe(()=>{Oe(S,h)}));let M;e.appearance===L.HIDDEN?M=!!b:M=!!h,M&&!f.current.seenTriggered&&!E&&(f.current.seenTriggered=!0,d.launcherSeen(w))},[s,e,d,E,w]);u.useLayoutEffect(()=>{A()},[A]);const _=u.useRef(!1),y=u.useRef(!1),P=u.useRef(!1),x=u.useRef(),W=()=>{_.current=!0,v()},z=()=>{_.current=!1,v()},Z=()=>{y.current=!0,v()},$=()=>{y.current=!1,v()},X=()=>{P.current=!0,v()},Y=()=>{P.current=!1,v()},v=()=>{O();const h=250;x.current=window.setTimeout(()=>B.current(),h)},O=u.useCallback(()=>{window.clearTimeout(x.current)},[]),G=()=>{if(r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)return;const h=r===l.LAUNCHER_HOVER||r===l.LAUNCHER_TARGET_HOVER,b=r===l.TARGET_HOVER||r===l.LAUNCHER_TARGET_HOVER;_.current&&(!k||!c)&&h||y.current&&b||P.current&&C?D():R()},B=u.useRef(G);B.current=G;const D=()=>{c||(O(),e.tooltipEnabled?d.activateLauncher(t):(d.activateLauncher(t),d.deactivateLauncher(t)),ie(d,t,e.actions))},R=u.useCallback(()=>{c&&(O(),d.deactivateLauncher(t))},[c,d,t,O]),j=()=>{c?R():D()},q=u.useCallback(({targetEl:h,clipEl:b,viewportClipRect:g})=>{f.current.targetEl=h,f.current.clipEl=b,f.current.viewportClipRect=g,A()},[A]),J=u.useCallback(()=>{f.current.targetEl=void 0,f.current.clipEl=void 0,A(),R()},[A,R]);ne({selector:e.targetSelector,targetMoved:q,targetLost:J,onTargetMouseEnter:Z,onTargetMouseLeave:$,onTargetClick:r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0}),u.useEffect(()=>{if(!c)return;const h=b=>{const g=b.target;s&&s.contains(g)||(r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)&&f.current.targetEl&&f.current.targetEl.contains(g)||R()};return window.addEventListener("click",h,{capture:!0}),()=>window.removeEventListener("click",h,{capture:!0})},[c,r,s,R]);const Q=Ne(e.tooltipPosition.side===a.AUTO?e.targetPosition:e.tooltipPosition),ee=u.useMemo(()=>e.content&&ae(ce(e.content),{buttons:e.buttons}),[e.content,e.buttons]);return i.createElement(se.Provider,{value:t},H&&i.createElement(ve,{ref:o,appearance:e.appearance,icon:e.icon,buttonText:e.buttonText,theme:n,onClick:r===l.LAUNCHER_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0,onMouseEnter:W,onMouseLeave:z,noPointerEvents:r===l.TARGET_HOVER,zIndex:e.zIndex}),c&&i.createElement(Ce,null,i.createElement(Re,{company:t.flow.company,theme:n,position:"fixed",stepAppearance:te.TOOLTIP,width:e.tooltipWidth,tooltipSelector:e.tooltipAnchor===re.TARGET?f.current.targetEl:s,tooltipPlacement:Q,frameWrapperHtmlAttributes:{onMouseEnter:X,onMouseLeave:Y},rootChildren:()=>i.createElement(i.Fragment,null,e.triggers.map(h=>i.createElement(Ae,{key:h.id,trigger:h})))},i.createElement(Le,{draftMode:t.draftMode,close:I?R:void 0}),i.createElement("div",{className:"userflowjs-bubble-content"},i.createElement(le,{doc:ee,lookupAttribute:we(t.data),buttons:e.buttons})))))};function ke({targetEl:t,subjectEl:c,clipEl:d,viewportClipRect:m,position:E,subjectAnchor:w}){const e=V(t);if(e.width===0||e.height===0)return null;const s=c.getBoundingClientRect();let o=0,n=0,{side:T,align:r}=E;switch(T===a.AUTO&&(T=a.TOP,r=p.END),T){case a.TOP:n=e.top;break;case a.BOTTOM:n=e.bottom;break;case a.LEFT:o=e.left;break;case a.RIGHT:o=e.right;break}switch(T){case a.TOP:case a.BOTTOM:switch(r){case p.START:o=e.left;break;case p.CENTER:o=e.left+e.width/2;break;case p.END:o=e.right;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.START:n=e.top;break;case p.CENTER:n=e.top+e.height/2;break;case p.END:n=e.bottom;break}break}switch(E.xUnit===K.PERCENT?o+=E.xOffset/100*e.width:o+=E.xOffset,E.yUnit===K.PERCENT?n+=E.yOffset/100*e.height:n+=E.yOffset,w){case"center":o-=s.width/2,n-=s.height/2;break;case"side":switch(T){case a.TOP:n-=s.height;break;case a.LEFT:o-=s.width;break}switch(T){case a.TOP:case a.BOTTOM:switch(r){case p.CENTER:o-=s.width/2;break;case p.END:o-=s.width;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.CENTER:n-=s.height/2;break;case p.END:n-=s.height;break}break}}if(o+s.width<m.left||o>m.right||n+s.height<m.top||n>m.bottom)return null;const C=V(d);return o=Math.max(o,C.left-d.scrollLeft),n=Math.max(n,C.top-d.scrollTop),o=Math.round(o),n=Math.round(n),{left:o,top:n}}function Oe(t,c){t.classList.toggle(Ie,c!=null),c&&(t.style.transform=`translate3d(${c.left}px, ${c.top}px, 0)`)}function Ne(t){switch(t.side){case a.AUTO:return null;case a.TOP:return N.ABOVE;case a.BOTTOM:return N.BELOW;case a.LEFT:return N.LEFT;case a.RIGHT:return N.RIGHT}}export{at as LauncherApp,at as default};
1
+ import{R as i,r as u}from"./vendor.react.js";import{Y as L,Z as l,$ as a,r as te,a0 as re,a1 as p,a2 as K,a3 as N}from"./userflow.js";import{u as ne,r as oe}from"./use-selector-element-monitoring.js";import{m as ae,d as ce,S as se,R as le,h as ie}from"./TreeDoc.js";import{u as ue,i as fe}from"./client-context.js";import{o as U}from"./vendor.obj-str.js";import{u as de,b as he,g as Ee,D as me,a as Te}from"./stylesheets.js";import{w as pe,f as be,L as ge,S as Ce}from"./flow-host.styl.js";import"./vendor.core-js.js";import{F as Re,B as Le}from"./FlowChrome.js";import{g as we}from"./flow-condition-types.js";import{T as Ae}from"./Trigger.js";import{r as V}from"./roots.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.i18next.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./Frame.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./iframe-reset.styl.js";import"./use-window-resize.js";import"./logomark.js";import"./vendor.canvas-confetti.js";import"./vendor.date-fns.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},c=new Error().stack;c&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[c]="f63a308d-b8eb-4ef8-8aaf-123fb22feaf2",t._sentryDebugIdIdentifier="sentry-dbid-f63a308d-b8eb-4ef8-8aaf-123fb22feaf2")}catch{}})();const ve=i.forwardRef(({appearance:t,icon:c,buttonText:f,theme:m,noAnimation:E,noFixed:w,onClick:e,onMouseEnter:s,onMouseLeave:o,noPointerEvents:n,zIndex:T},r)=>{const{loaded:C}=de(window,be,m),k=m&&t===L.BUTTON?m:null,{loaded:H}=he(window,k),I={"userflowjs-launcher":!0,"userflowjs-launcher--activate-on-click":!!e,"userflowjs-fixed-widget":!w},d={ref:r,style:{...Ee(m),zIndex:T||pe(ge),pointerEvents:n?"none":void 0},onClick:e,onMouseEnter:s,onMouseLeave:o};if(!C||!H)return null;switch(t){case L.BEACON:return i.createElement("div",{className:U({...I,"userflowjs-beacon":!0,"userflowjs-beacon--pulse":!E,"userflowjs-beacon--pulse-still":!!E}),...d},i.createElement("div",{className:"userflowjs-beacon__ring"}),i.createElement("div",{className:"userflowjs-beacon__ring"}));case L.BUTTON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--button":!0}),...d},f);case L.HIDDEN:return null;case L.ICON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--icon":!0}),...d},i.createElement(me,{icon:c||"solid/info-circle",size:m.launcherIconSize}))}}),Ie="userflowjs-fixed-widget--visible",at=({session:t,active:c})=>{const f=ue(),{version:m}=t,E=t.id,w=t.flow.id,e=t.version.launcher,[s,o]=u.useState(null),n=Te(m.theme),T=t.locale?t.locale.standardLocaleId:n.languageId;u.useEffect(()=>{fe.changeLanguage(T)},[T]);const{activateOn:r}=e,C=e.activeWhileTooltipHover||e.buttons.length>0,k=e.hiddenWhileActive&&r!==l.LAUNCHER_HOVER,H=!c||!k,I=r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK||C,d=u.useRef({}),A=u.useCallback(()=>{let h=null;const{targetEl:b,clipEl:g,viewportClipRect:F}=d.current,S=s;S&&(b&&g&&F&&(h=ke({targetEl:b,subjectEl:S,clipEl:g,viewportClipRect:F,position:e.targetPosition,subjectAnchor:e.appearance===L.BEACON?"center":"side"})),oe(()=>{Oe(S,h)}));let M;e.appearance===L.HIDDEN?M=!!b:M=!!h,M&&!d.current.seenTriggered&&!E&&(d.current.seenTriggered=!0,f.launcherSeen(w))},[s,e,f,E,w]);u.useLayoutEffect(()=>{A()},[A]);const _=u.useRef(!1),y=u.useRef(!1),P=u.useRef(!1),x=u.useRef(),W=()=>{_.current=!0,v()},z=()=>{_.current=!1,v()},Z=()=>{y.current=!0,v()},$=()=>{y.current=!1,v()},X=()=>{P.current=!0,v()},Y=()=>{P.current=!1,v()},v=()=>{O();const h=250;x.current=window.setTimeout(()=>B.current(),h)},O=u.useCallback(()=>{window.clearTimeout(x.current)},[]),G=()=>{if(r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)return;const h=r===l.LAUNCHER_HOVER||r===l.LAUNCHER_TARGET_HOVER,b=r===l.TARGET_HOVER||r===l.LAUNCHER_TARGET_HOVER;_.current&&(!k||!c)&&h||y.current&&b||P.current&&C?D():R()},B=u.useRef(G);B.current=G;const D=()=>{c||(O(),e.tooltipEnabled?f.activateLauncher(t):(f.activateLauncher(t),f.deactivateLauncher(t)),ie(f,t,e.actions))},R=u.useCallback(()=>{c&&(O(),f.deactivateLauncher(t))},[c,f,t,O]),j=()=>{c?R():D()},q=u.useCallback(({targetEl:h,clipEl:b,viewportClipRect:g})=>{d.current.targetEl=h,d.current.clipEl=b,d.current.viewportClipRect=g,A()},[A]),J=u.useCallback(()=>{d.current.targetEl=void 0,d.current.clipEl=void 0,A(),R()},[A,R]);ne({selector:e.targetSelector,targetMoved:q,targetLost:J,onTargetMouseEnter:Z,onTargetMouseLeave:$,onTargetClick:r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0}),u.useEffect(()=>{if(!c)return;const h=b=>{const g=b.target;s&&s.contains(g)||(r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)&&d.current.targetEl&&d.current.targetEl.contains(g)||R()};return window.addEventListener("click",h,{capture:!0}),()=>window.removeEventListener("click",h,{capture:!0})},[c,r,s,R]);const Q=Ne(e.tooltipPosition.side===a.AUTO?e.targetPosition:e.tooltipPosition),ee=u.useMemo(()=>e.content&&ae(ce(e.content),{buttons:e.buttons}),[e.content,e.buttons]);return i.createElement(se.Provider,{value:t},H&&i.createElement(ve,{ref:o,appearance:e.appearance,icon:e.icon,buttonText:e.buttonText,theme:n,onClick:r===l.LAUNCHER_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0,onMouseEnter:W,onMouseLeave:z,noPointerEvents:r===l.TARGET_HOVER,zIndex:e.zIndex}),c&&i.createElement(Ce,null,i.createElement(Re,{company:t.flow.company,theme:n,position:"fixed",stepAppearance:te.TOOLTIP,width:e.tooltipWidth,tooltipSelector:e.tooltipAnchor===re.TARGET?d.current.targetEl:s,tooltipPlacement:Q,frameWrapperHtmlAttributes:{onMouseEnter:X,onMouseLeave:Y},rootChildren:()=>i.createElement(i.Fragment,null,e.triggers.map(h=>i.createElement(Ae,{key:h.id,trigger:h})))},i.createElement(Le,{draftMode:t.draftMode,close:I?R:void 0}),i.createElement("div",{className:"userflowjs-bubble-content"},i.createElement(le,{doc:ee,lookupAttribute:we(t.data),buttons:e.buttons})))))};function ke({targetEl:t,subjectEl:c,clipEl:f,viewportClipRect:m,position:E,subjectAnchor:w}){const e=V(t);if(e.width===0||e.height===0)return null;const s=c.getBoundingClientRect();let o=0,n=0,{side:T,align:r}=E;switch(T===a.AUTO&&(T=a.TOP,r=p.END),T){case a.TOP:n=e.top;break;case a.BOTTOM:n=e.bottom;break;case a.LEFT:o=e.left;break;case a.RIGHT:o=e.right;break}switch(T){case a.TOP:case a.BOTTOM:switch(r){case p.START:o=e.left;break;case p.CENTER:o=e.left+e.width/2;break;case p.END:o=e.right;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.START:n=e.top;break;case p.CENTER:n=e.top+e.height/2;break;case p.END:n=e.bottom;break}break}switch(E.xUnit===K.PERCENT?o+=E.xOffset/100*e.width:o+=E.xOffset,E.yUnit===K.PERCENT?n+=E.yOffset/100*e.height:n+=E.yOffset,w){case"center":o-=s.width/2,n-=s.height/2;break;case"side":switch(T){case a.TOP:n-=s.height;break;case a.LEFT:o-=s.width;break}switch(T){case a.TOP:case a.BOTTOM:switch(r){case p.CENTER:o-=s.width/2;break;case p.END:o-=s.width;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.CENTER:n-=s.height/2;break;case p.END:n-=s.height;break}break}}if(o+s.width<m.left||o>m.right||n+s.height<m.top||n>m.bottom)return null;const C=V(f);return o=Math.max(o,C.left-f.scrollLeft),n=Math.max(n,C.top-f.scrollTop),o=Math.round(o),n=Math.round(n),{left:o,top:n}}function Oe(t,c){t.classList.toggle(Ie,c!=null),c&&(t.style.transform=`translate3d(${c.left}px, ${c.top}px, 0)`)}function Ne(t){switch(t.side){case a.AUTO:return null;case a.TOP:return N.ABOVE;case a.BOTTOM:return N.BELOW;case a.LEFT:return N.LEFT;case a.RIGHT:return N.RIGHT}}export{at as LauncherApp,at as default};
2
2
  //# sourceMappingURL=LauncherApp.js.map
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["ResourceCenterAssistantChat.js","vendor.react.js","vendor.core-js.js","vendor.object-assign.js","userflow.js","vendor.phoenix.js","vendor.uuid.js","client-context.js","vendor.i18next.js","vendor.babel.runtime.js","vendor.react-i18next.js","vendor.fortawesome.pro-regular-svg-icons.js","vendor.dompurify.js","vendor.marked.js","vendor.obj-str.js","TreeDoc.js","flow-condition-types.js","vendor.date-fns.js","roots.js","stylesheets.js","vendor.fortawesome.pro-solid-svg-icons.js","vendor.react-dom.js","vendor.scheduler.js","use-client-query.js","flow-host.styl.js","use-selector-element-monitoring.js","Frame.js","iframe-reset.styl.js","use-window-resize.js","logomark.js","ChecklistUI.js","FlowChrome.js","vendor.canvas-confetti.js","vendor.memoize-one.js","vendor.bignumber.js.js","use-element-rect.js"])))=>i.map(i=>d[i]);
2
- import{z as j,D as U,G as xe,k as pe,C as ee,x as bn,H as x,I as ht,J as wt,E as vn,r as gn,K as Cn,L as kn,a as Et,N as pt,O as Nn,Q as bt,_ as jn}from"./userflow.js";import{r as i,R as e}from"./vendor.react.js";import{u as L,i as be}from"./client-context.js";import{f as vt,a as Sn,w as gt,C as yn,N as An}from"./flow-host.styl.js";import{S as te,R as H,h as In,s as qe,c as K,n as Tn,u as Pt}from"./TreeDoc.js";import{g as _}from"./flow-condition-types.js";import{D as y,a as ve,u as Ct,g as Be}from"./stylesheets.js";import{b as Ze}from"./use-selector-element-monitoring.js";import{F as Ge}from"./Frame.js";import{o as D}from"./vendor.obj-str.js";import{M as Me,e as kt,h as Nt}from"./roots.js";import{u as Rn}from"./use-window-resize.js";import{S as _n}from"./logomark.js";import"./vendor.core-js.js";import{f as Ln,C as xn}from"./ChecklistUI.js";import{L as Bn,E as Je,c as Mn,M as Dn,N as Fn,b as Ot,O as G,C as Pn,P as On,Q as Un,R as Hn}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{F as Wn,B as $n}from"./FlowChrome.js";import{S as O,u as ge}from"./use-client-query.js";import{m as jt}from"./vendor.memoize-one.js";import{B as Ut}from"./vendor.bignumber.js.js";import{u as zn}from"./use-element-rect.js";import{u as J}from"./vendor.react-i18next.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="28bb975e-d49c-4e46-9f1a-221ce0e7579e",t._sentryDebugIdIdentifier="sentry-dbid-28bb975e-d49c-4e46-9f1a-221ce0e7579e")}catch{}})();function Vn(t,n,r){return t.resourceCenterAutoDividers?St(n)||St(r):!1}function St(t){return t!==j.ACTION&&t!==j.ANNOUNCEMENTS&&t!==j.ASSISTANT&&t!==j.CONTACT&&t!==j.FLOWS&&t!==j.KNOWLEDGE_BASE&&t!==j.SUBPAGE}const m=window,De={[U.CRISP]:{configure:({onShow:t,onHide:n})=>{Kn();let r=!1,s=!1;const o=()=>{r||s?(m.$crisp.push(["do","chat:show"]),t()):(m.$crisp.push(["do","chat:hide"]),n())},c=()=>{r=!0,o()};m.$crisp.push(["on","chat:opened",c]);const l=()=>{r=!1,o()};m.$crisp.push(["on","chat:closed",l]);const a=()=>{s=!0,o()};m.$crisp.push(["on","message:received",a]);const E=()=>{const w=document.getElementById("crisp-chatbox");if(!w||window.getComputedStyle(w).display!=="block")return!1;const h=w.querySelector('[data-id="new_messages"]');return!(!h||window.getComputedStyle(h).display!=="block")},d=()=>{const w=E();w!==s&&(s=w,o())},u=window.setInterval(d,200);return()=>{m.$crisp.push(["off","chat:opened",c]),m.$crisp.push(["off","chat:closed",l]),m.$crisp.push(["off","message:received",a]),window.clearInterval(u)}},show:()=>{m.$crisp.push(["do","chat:show"]),m.$crisp.push(["do","chat:open"])},hide:()=>{m.$crisp.push(["do","chat:hide"]),m.$crisp.push(["do","chat:close"])}},[U.CUSTOM]:{configure:()=>()=>{},show:({block:t})=>{try{new Function(`"use strict";
3
- `+t.chatCode)()}catch(n){console.error(`Userflow.js: Showing custom chat provider failed. Code: ${t.chatCode}`,n)}},hide:()=>{}},[U.FRESHCHAT]:{configure:({onShow:t,onHide:n})=>{if(!m.fcWidget)throw new Error("Freshchat is not installed");let r=!1,s=!1;const o=()=>{r||s?t():n()},c=()=>{r=!0,o()};m.fcWidget.on("widget:opened",c);const l=()=>{r=!1,o()};m.fcWidget.on("widget:closed",l);const a=()=>{const d=!!document.querySelector("#fc_frame.h-open-notify");d!==s&&(s=d,o())},E=window.setInterval(a,200);return m.fcWidget.on("unreadCount:notify",a),()=>{m.fcWidget.off("widget:opened",c),m.fcWidget.off("widget:closed",l),m.fcWidget.off("unreadCount:notify",a),window.clearInterval(E)}},show:()=>{m.fcWidget.open()},hide:()=>{m.fcWidget.close()}},[U.HELPSCOUT]:{configure:({onShow:t,onHide:n})=>{if(!m.Beacon)throw new Error("Help Scout is not installed");Qn();let r=!1,s=!1;const o=()=>{r||s?(It(),t()):(Fe(),n())},c=()=>{r=!0,o()};m.Beacon("on","open",c),m.Beacon("info")?.status.isOpened&&c();const l=()=>{r=!1,o()};m.Beacon("on","close",l);const a=()=>{const d=!!document.querySelector(".BeaconNotificationsFrame");d!==s&&(s=d,o())},E=window.setInterval(a,200);return()=>{m.Beacon("off","open",c),m.Beacon("off","close",l),window.clearInterval(E)}},show:()=>{It(),m.Beacon("open")},hide:()=>{Fe(),m.Beacon("close")}},[U.HUBSPOT]:{configure:({onShow:t,onHide:n})=>{const r=()=>{const c=document.getElementById("hubspot-messages-iframe-container");if(!m.HubSpotConversations||!c)return;window.clearInterval(o),qn();let l=!1,a=!1;const E=()=>{l||a?(Pe(),t()):(Oe(),n())},d=()=>{const h=!!document.querySelector("#hubspot-messages-iframe-container .hs-shadow-container.active");h!==l&&(l=h,E())},u=new Me(d);u.observe(c,{attributes:!0,subtree:!0,attributeFilter:["class"]}),d();const w=({unreadCount:h})=>{const p=h>0;p!==a&&(a=p,E())};m.HubSpotConversations.on("unreadConversationCountChanged",w),s=()=>{u.disconnect(),m.HubSpotConversations.off("unreadConversationCountChanged",w)}};let s=()=>{window.clearInterval(o)};const o=window.setInterval(r,100);return r(),()=>{s()}},show:()=>{Pe(),m.HubSpotConversations.widget.open()},hide:()=>{Oe(),m.HubSpotConversations.widget.close()}},[U.INTERCOM]:{configure:({onShow:t,onHide:n})=>{if(!m.Intercom)throw new Error("Intercom is not installed");return Zn(),Ue.add(t),He.add(n),()=>{Ue.delete(t),He.delete(n)}},show:()=>{Ht(),m.Intercom("show")},hide:()=>{We(),m.Intercom("hide")}},[U.ZENDESK]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");Gn();let r=!1,s=!1;const o=()=>{r||s?(m.zE("webWidget","show"),t()):(m.zE("webWidget","hide"),n())},c=()=>{r=!0,s=!1,o()};$e.add(c);const l=()=>{r=!1,s=!1,o()};ze.add(l);const a=E=>{const d=E>0;d!==s&&(s=d,o())};return Ve.add(a),()=>{$e.delete(c),ze.delete(l),Ve.delete(a)}},show:()=>{m.zE("webWidget","show"),m.zE("webWidget","open")},hide:()=>{m.zE("webWidget","hide"),m.zE("webWidget","close")}},[U.ZENDESK_MESSENGER]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");const r=()=>{t()},s=()=>{n()};return Ke.add(r),Qe.add(s),Jn(),()=>{Ke.delete(r),Qe.delete(s)}},show:()=>{m.zE("messenger","open")},hide:()=>{m.zE("messenger","close")}}};let yt=!1;function Kn(){yt||(yt=!0,m.$crisp||(m.$crisp=[]),m.$crisp.push(["do","chat:hide"]))}let At=!1;function Qn(){At||(At=!0,Fe())}function It(){m.Beacon("config",{display:{style:"icon"}})}function Fe(){m.Beacon("config",{display:{style:"manual"}})}let Tt=!1,Xe=!1;function qn(){Tt||(Tt=!0,Xe?Pe():Oe())}function Pe(){Xe=!0,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","visible","important")}function Oe(){Xe=!1,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","hidden","important")}let Rt=!1,Ue=new Set,He=new Set;function Zn(){if(Rt)return;Rt=!0,We();let t=!1,n=!1;const r=()=>{Ht();for(const l of Ue)l()},s=()=>{We();for(const l of He)l()},o=()=>{t||n?r():s()};m.Intercom("onShow",()=>{t=!0,o()}),m.Intercom("onHide",()=>{t=!1,o()});const c=()=>{const l=!!document.querySelector('iframe[name="intercom-borderless-frame"], iframe[name="intercom-notifications-frame"]');n!==l&&(n=l,o())};m.Intercom("onUnreadCountChange",()=>{c()}),window.setInterval(c,200)}function Ht(){m.Intercom("update",{hide_default_launcher:!1,vertical_padding:20})}function We(){m.Intercom("update",{hide_default_launcher:!0,vertical_padding:100})}let _t=!1,$e=new Set,ze=new Set,Ve=new Set;function Gn(){_t||(_t=!0,m.zE("webWidget","hide"),m.zE("webWidget","close"),m.zE("webWidget:on","open",()=>{for(const t of $e)t()}),m.zE("webWidget:on","close",()=>{for(const t of ze)t()}),m.zE("webWidget:on","chat:unreadMessages",t=>{for(const n of Ve)n(t)}))}let Lt=!1,Ke=new Set,Qe=new Set;function Jn(){Lt||(Lt=!0,m.zE("messenger:on","open",function(){for(const t of Ke)t()}),m.zE("messenger:on","close",function(){for(const t of Qe)t()}))}const Xn=t=>i.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},t),i.createElement("path",{fill:"currentColor",d:"M24.049 79.74h36.003c8.185 0 15.985-6.621 17.43-14.814l6.091-34.556h3.997c8.149 0 13.645 6.63 12.2 14.815l-7.051 40C91.274 93.363 83.474 100 75.288 100h-40c-8.185 0-13.645-6.667-12.2-14.815l.96-5.444Z"}),i.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12.437 69.63h40c8.148 0 15.978-6.637 17.422-14.815l7.052-40C78.355 6.63 72.896 0 64.711 0h-40C16.533 0 8.726 6.63 7.281 14.815l-7.052 40C-1.215 62.963 4.252 69.63 12.437 69.63Zm33.628-33.798c3.756-2.064 8.725-4.795 9.907-11.844C57.385 15.458 50.065 8.983 42.168 9c-7.452 0-12.771 3.195-17.508 8.892-.858 1.034-.884 2.45-.053 3.212l3.472 3.196c.847.767 2.25.589 3.176-.406 2.842-3.068 4.869-4.83 8.51-4.83 2.864 0 6.077 1.934 5.59 4.847-.37 2.223-2.292 3.334-5.4 5.001l-.28.151c-3.582 1.92-8.134 4.362-9.124 10.247l-.16.956c-.055.28-.05.571.014.85.065.278.188.538.362.76.173.222.391.4.639.522.247.121.518.183.79.18h6.744a2.709 2.709 0 0 0 1.712-.688c.481-.426.81-1.01.934-1.657l.095-.556c.266-1.582 2.101-2.59 4.384-3.845ZM32.837 59c3.552 0 6.955-3.034 7.58-6.769.63-3.729-1.742-6.763-5.293-6.763-3.552 0-6.934 3.028-7.58 6.763C26.9 55.966 29.286 59 32.837 59Z"})),Yn=200;function Ye(t,n){const[r,s]=i.useState(t),o=i.useRef(void 0),c=i.useCallback(a=>{window.clearTimeout(o.current),s(a),n(a)},[n]),l=i.useCallback(a=>{window.clearTimeout(o.current),s(a),o.current=window.setTimeout(()=>{n(a)},Yn)},[n]);return i.useEffect(()=>()=>{window.clearTimeout(o.current)},[]),[r,l,c]}const er={xs:[16,3],sm:[24,4],md32:[32,4],md:[40,4],lg:[56,4]};class tr extends e.PureComponent{constructor(){super(...arguments),this.memoizedBgStyle=jt(n=>({strokeWidth:`${n}px`})),this.memoizedFillStyle=jt((n,r,s)=>({strokeWidth:`${n}px`,strokeDasharray:r*2*Math.PI*new Ut(s).toNumber()+"px, 1000"}))}render(){const{props:n}=this,{size:r,indeterminate:s,className:o,center:c,right:l,color:a}=this.props,E=["progress-spinner"];r&&E.push(`progress-spinner--${r}`),s&&E.push("progress-spinner--indeterminate"),o&&E.push(o);const d=s?.25:n.progress||0,[u,w]=er[r||"md"],h=u/2,p=(u-w)/2;let b=e.createElement("div",{className:E.join(" ")},e.createElement("svg",{viewBox:`0 0 ${u} ${u}`,version:"1.1",xmlns:"http://www.w3.org/2000/svg"},e.createElement("circle",{className:"progress-spinner__bg",fill:"none",cx:h,cy:h,r:p,style:this.memoizedBgStyle(w)}),e.createElement("circle",{className:a==="purple"?"progress-spinner__fill-purple":"progress-spinner__fill",fill:"none",cx:h,cy:h,r:p,transform:`translate(${h}, ${h}) rotate(-90) translate(-${h}, -${h})`,style:this.memoizedFillStyle(w,p,d)})));return c?b=e.createElement("div",{className:"progress-spinner-center-aligner"},b):l&&(b=e.createElement("div",{className:"progress-spinner-right-aligner"},b)),b}}const nr=({textareaRef:t,value:n,onChange:r,onBlur:s,onKeyDown:o,onMouseDown:c,placeholder:l,disabled:a,readOnly:E,className:d,mirrorClassName:u,textareaClassName:w,icon:h,onIconClick:p,loading:b=!1,children:g})=>{let N=n||l||"";(N===""||N.endsWith(`
4
- `))&&(N+=" "),d=d||"growing-textarea",u=u||d+"__mirror";const[A,I]=i.useState(!1);return e.createElement("div",{className:D({[d]:!0,[`${d}__loading`]:b})},e.createElement("div",{className:u+" "+(w||"")},N),e.createElement("textarea",{ref:t,value:n,onChange:k=>r&&r(k.target.value),onBlur:s,onKeyDown:k=>{if(k.key==="Enter"&&A){k.preventDefault();return}o&&o(k)},onMouseDown:c,placeholder:l,disabled:a||b,readOnly:E,className:D({"growing-textarea__input":!0,[w||""]:!0,[`${d}__with-icon`]:!!h,[`${d}__loading-input`]:b}),onCompositionStart:()=>I(!0),onCompositionEnd:()=>I(!1)}),h&&!b&&e.createElement("div",{className:`${d}__icon`},e.createElement("button",{className:"btn btn--plain-blue btn--square btn--md32",onClick:p},e.createElement(y,{icon:h}))),b&&e.createElement("div",{className:`${d}__loader`},e.createElement(tr,{indeterminate:!0,size:"xs",color:"purple"})),g)},rr=({textareaRef:t,value:n,onChange:r,onSubmit:s,placeholder:o,readOnly:c})=>{const l=()=>{s&&s()};return e.createElement("div",{className:"userflowjs-assistant-chat-input"},e.createElement(nr,{textareaRef:t,className:"userflowjs-growing-textarea",mirrorClassName:"userflowjs-growing-textarea__mirror",textareaClassName:"userflowjs-textarea userflowjs-assistant-chat-input__textarea",placeholder:o,readOnly:c,value:n||"",onChange:r,onKeyDown:a=>{!a.shiftKey&&a.key==="Enter"&&(a.preventDefault(),l())}}),e.createElement("button",{"data-testid":"assistant-chat-input-submit",className:"userflowjs-assistant-chat-input__submit",onClick:()=>l()},e.createElement(y,{icon:Bn})))};function sr(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function Wt(t){return xe.linkUrlDecorator?xe.linkUrlDecorator(t):t}const xt=5,or=async()=>(await jn(async()=>{const{ResourceCenterAssistantChat:t}=await import("./ResourceCenterAssistantChat.js");return{ResourceCenterAssistantChat:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]))).ResourceCenterAssistantChat,Bt=({session:t,isOpen:n,flowSession:r,checklistSession:s,resourceCenterLauncherHidden:o})=>{const c=L(),{t:l}=J(),{company:a}=t.flow,{version:E}=t,d=E.resourceCenter,u=ve(E.theme),w=d.launcherType??pe.DEFAULT,h=i.useMemo(()=>w===pe.CUSTOM?!1:o===!1?!0:o===!0?!1:w===pe.DEFAULT,[w,o]),p=t.locale?t.locale.standardLocaleId:t.version.theme.languageId;i.useEffect(()=>{be.changeLanguage(p)},[p]);const{loaded:b}=Ct(window,vt,u),[g,N]=i.useState(!1),A=b&&g,[I,k]=i.useState(kt()),[M,ke]=i.useState(Nt()),Ne=i.useCallback(()=>{k(kt()),ke(Nt())},[]);Rn(Ne);const{zIndex:re,bringToFront:se}=Sn(),[W,$]=i.useState(null),[z,oe]=i.useState(null),[X,ce]=i.useState(null),je=i.useRef(null),[Y,tn]=i.useState(null),[tt,nn]=i.useState(null),[nt,rn]=i.useState(null),[sn,on]=i.useState(0),[cn,an]=i.useState(0),Se=i.useCallback(()=>{z&&on(Math.round(z?.offsetWidth||0)),an(Math.round((X?.offsetHeight||0)+(Y?.offsetHeight||0)+(tt?.offsetHeight||0)+(nt?.offsetHeight||0)))},[z,X,Y,tt,nt]);i.useLayoutEffect(()=>{if(!W||typeof Me!="function")return;const f=new Me(()=>{Se()});return f.observe(W,{childList:!0,attributes:!0,subtree:!0}),()=>{f.disconnect()}},[W,Se]),i.useLayoutEffect(()=>{Se()});const[rt,st]=i.useState(!1),ye=i.useRef(),ae=i.useCallback(()=>{st(!0),window.clearTimeout(ye.current),ye.current=window.setTimeout(()=>{st(!1)},u.resourceCenterTransitionDuration)},[u.resourceCenterTransitionDuration]);i.useEffect(()=>()=>{window.clearTimeout(ye.current)},[]);const le=i.useCallback(()=>{se(),ae(),c.openResourceCenter()},[se,c,ae]),Ae=i.useCallback(()=>{ae(),c.closeResourceCenter()},[c,ae]),[ot,Q]=i.useState(!1);i.useEffect(()=>{if(ot){if(!sr())if(n){const f='button:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), input, textarea';let C=Y?.querySelector(".userflowjs-assistant-chat-input textarea")||Y?.querySelector(f)||X?.querySelector(f);if(C){const T=C.closest&&C.closest(".userflowjs-resource-center-checklist")||null;T?Ln(T):C.focus({preventScroll:!0})}}else z?.focus({preventScroll:!0});Q(!1)}},[ot,n,Y,X,z]),i.useEffect(()=>{const f=W?.ownerDocument.defaultView;if(!n||!f)return;const C=T=>{T.key==="Escape"&&(Ae(),Q(!0))};return f.addEventListener("keydown",C),()=>f.removeEventListener("keydown",C)},[n,W,Q,Ae]);const[v,ie]=i.useState(()=>Mt(t,ee.getItem(`resourceCenterRoute:v1:${t.id}`))),F=i.useCallback((f,C)=>{ie(f);const T=qt(f);T?ee.setItem(`resourceCenterRoute:v1:${t.id}`,T):ee.removeItem(`resourceCenterRoute:v1:${t.id}`),C?.detail===0&&Q(!0)},[t.id]);i.useEffect(()=>{const f=ee.getItem(`resourceCenterRoute:v1:${t.id}`);ie(Mt(t,f))},[t]),i.useEffect(()=>{if(!t.draftMode||!v||!("block"in v)||!v.block)return;const f=d.blocks.find(C=>C.cvid===v.block.cvid);f?JSON.stringify(f)!==JSON.stringify(v.block)&&ie({...v,block:f}):ie(null),v.block},[t.draftMode,d,v]);const ue=i.useMemo(()=>d.blocks.filter(f=>!(f.type===j.CHECKLIST&&!s||f.type===j.DIVIDER&&u.resourceCenterAutoDividers||f.hiddenWhenFlowsActive&&f.hiddenWhenFlowsActive.some(C=>C===r?.flow.id||C===s?.flow.id))),[d,r,s,u.resourceCenterAutoDividers]),Ie=i.useMemo(()=>Qt(ue),[ue]),Te=i.useMemo(()=>!s||!d.blocks.some(f=>f.type===j.CHECKLIST)?0:bn(s),[d,s]),B=i.useMemo(()=>d.blocks.find(f=>f.type===j.CONTACT&&f.chatEnabled&&f.chatProvider),[d]),[ln,ct]=i.useState(!1),de=i.useCallback(()=>{c.closeResourceCenter(),B&&B.chatProvider!==U.CUSTOM&&ct(!0)},[c,B]),me=i.useCallback(()=>{ct(!1)},[]),at=i.useCallback(()=>{if(B)try{De[B.chatProvider].hide({block:B}),me()}catch(f){console.error(`Userflow.js: Error when hiding ${B.chatProvider}:`,f)}},[B,me]);i.useEffect(()=>{if(!B)return;xe.autoHide3pDisabled=!0;const f=De[B.chatProvider];try{const C=f.configure({block:B,onShow:de,onHide:me});return()=>{C()}}catch(C){console.error(`Userflow.js: Error when configuring ${B.chatProvider}:`,C);return}},[B,de,me]),i.useEffect(()=>{n&&at()},[at,n]);const S=en(t),fe=i.useMemo(()=>{if(!S)return null;if(S.boosterAnnouncement){const f=S.boosterAnnouncement;if(!f.seen&&(f.level===x.TOAST||f.level===x.MODAL))return f}return S.popoutAnnouncement&&!S.popoutAnnouncement.seen?S.popoutAnnouncement:null},[S]),lt=ve(fe?.theme||E.theme);Ct(window,vt,h?void 0:lt);const he=i.useCallback((f,C,T,q,Ee)=>{const ft=()=>{et(c,f)};return e.createElement(te.Provider,{value:{...T,data:f.data}},f.level===x.MODAL&&e.createElement(Kt,{session:T,open:le,navigate:F,block:C,announcement:f,onDismiss:ft}),(f.level===x.TOAST||f.level===x.POPOUT)&&e.createElement(Vt,{session:T,open:le,navigate:F,block:C,announcement:f,onDismiss:ft,isStandalonePopout:Ee?.isStandalonePopout,rcPlacement:q.resourceCenterPlacement}))},[c,le,F]),un=(f,C,T)=>{const q={...Be(T),zIndex:gt(An),position:"fixed",top:0,left:0,width:"100vw",height:"100vh",pointerEvents:f.level===x.MODAL?"auto":"none"},Ee={...t,data:{...t.data,...f.data||{}}};return e.createElement(te.Provider,{value:Ee},e.createElement("div",{className:"userflowjs-theme-root",style:q,id:"userflowjs-announcement-app"},he(f,C,Ee,T,{isStandalonePopout:f.level===x.POPOUT})))},dn=!!v&&(v.kind==="search"||v.kind==="flows"||v.kind==="knowledgeBase"),it=v?.kind==="assistant"||v?.kind==="announcementList"||v?.kind==="announcementShow",Re=Math.min(it?u.resourceCenterFullWidth:u.resourceCenterWidth,I-2*u.resourceCenterPaddingX),mn=540,fn=720,hn={zIndex:u.resourceCenterZIndex!=null?u.resourceCenterZIndex:n?re:gt(yn),position:A?void 0:"absolute",visibility:A&&!ln?void 0:"hidden"},wn={width:(n?Re:sn)+"px",height:n?Math.min(dn?mn:it?fn:cn,M-2*u.resourceCenterPaddingY,u.resourceCenterMaxHeight==null?Number.MAX_VALUE:u.resourceCenterMaxHeight)+"px":void 0,display:!h&&!n?"none":void 0},[En,ut]=i.useState(!1),dt=()=>{le(),Q(!0)},mt=u.resourceCenterDisplayChecklistProgress&&s&&Te>0?e.createElement("div",{"data-testid":"resource-center-launcher-badge",className:"userflowjs-resource-center-launcher-badge"},Te,e.createElement("div",{className:"userflowjs-a11y-only"},"uncompleted tasks")):null;let we="",_e="";u.resourceCenterLauncherTextMode===ht.CHECKLIST_OVERRIDE&&s&&Te>0?we=s.version.checklist?.launcherText||"Get Started":u.resourceCenterLauncherTextMode!==ht.NONE&&(_e=d.buttonText);const Le=fe?.level,pn=Le===x.MODAL||Le===x.TOAST||Le===x.POPOUT&&(w!==pe.CUSTOM||o===!0);return!h&&!n&&fe&&S&&pn?un(fe,S,lt):e.createElement(te.Provider,{value:t},e.createElement("div",{"data-testid":"resource-center-app",className:"userflowjs-resource-center-app userflowjs-theme-root",style:Be(u),dir:be.dir()},e.createElement("div",{className:D({"userflowjs-resource-center":!0,"userflowjs-resource-center--fixed":!0,[`userflowjs-resource-center--placement-${u.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0}),style:hn},e.createElement("div",{className:"userflowjs-resource-center-frame-wrapper",onMouseEnter:()=>ut(!0),onMouseLeave:()=>ut(!1)},e.createElement(Ge,{className:D({"userflowjs-resource-center-frame":!0,"userflowjs-resource-center-frame--animating":rt,"userflowjs-resource-center-frame--open":n,"userflowjs-resource-center-frame--closed":!n}),style:wn,stylesheet:Ze,theme:u,onStylesheetsLoad:N,title:"Resource center"},A&&e.createElement(e.Fragment,null,e.createElement("div",{ref:$,className:D({"userflowjs-resource-center-frame-root":!0,[`userflowjs-resource-center-frame-root--placement-${u.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0,"userflowjs-resource-center-frame-root--animating":rt,"userflowjs-resource-center-frame-root--open":n,"userflowjs-resource-center-frame-root--closed":!n}),role:n?"dialog":void 0,"aria-label":n?d.headerText:void 0},h&&e.createElement("div",{className:"userflowjs-resource-center-launcher-container"},e.createElement("button",{ref:oe,className:D({"userflowjs-resource-center-launcher-button":!0,"userflowjs-resource-center-launcher-button--hover":En}),onClick:dt,"aria-label":`Open ${d.headerText}`},mt,we&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},we),(mt||we)&&e.createElement("div",{className:"userflowjs-resource-center-launcher-divider"}),_e&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},_e),e.createElement("div",{className:"userflowjs-resource-center-launcher-icon"},u.resourceCenterLauncherIconType===wt.PLAINTEXT?"?":u.resourceCenterLauncherIconType===wt.DEFAULT?e.createElement(Xn,null):u.rcIconAsset&&u.rcIconAsset.assetUrl?e.createElement("img",{src:u.rcIconAsset.assetUrl,className:"company-icon",style:{height:`${u.rcIconSize}px`,width:`${u.rcIconSize}px`}}):e.createElement("span",null)))),e.createElement("div",{ref:je,className:"userflowjs-resource-center-body",style:{width:Re+"px"}},e.createElement("div",{ref:tn,className:D({"userflowjs-resource-center-body-content":!0,"userflowjs-resource-center-body-content--padding":v?.kind!=="assistant","userflowjs-resource-center-body-content--same-background":u.sameBackground,"userflowjs-resource-center-body-content--with-made-with-userflow":a.resourceCenterBranding})},n&&e.createElement(e.Fragment,null,v?v.kind==="search"?e.createElement(cr,{session:t,navigate:F}):v.kind==="email"?e.createElement(ar,{block:v.block,session:t}):v.kind==="phone"?e.createElement(lr,{block:v.block,session:t}):v.kind==="flows"?e.createElement(ir,{block:v.block,initialQ:v.initialQ,session:t,navigate:F}):v.kind==="knowledgeBase"?e.createElement(ur,{block:v.block,initialQ:v.initialQ,session:t,bodyRef:je}):v.kind==="subpage"?e.createElement(dr,{block:v.block,session:t}):v.kind==="announcementList"||v.kind==="announcementShow"?e.createElement(mr,{bodyRef:je,session:t,route:v,navigate:F}):v.kind==="assistant"?e.createElement(wr,{block:v.block,initialUserContent:v.initialUserContent,session:t,navigate:F,chatBlock:B,onChatShow:de}):null:e.createElement(e.Fragment,null,ue.map((f,C)=>{const T=ne[f.type],q=ue[C+1];return T?e.createElement(e.Fragment,{key:f.id},e.createElement(T.View,{session:t,flowSession:r,checklistSession:s,block:f,navigate:F,onChatShow:de}),q&&Vn(u,f.type,q.type)&&e.createElement("div",{className:"userflowjs-resource-center-divider"})):null}))))),a.resourceCenterBranding&&e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow"},e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow-content",ref:nn},e.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+a.slug+"&utm_content=resource-center",target:"_blank",rel:"noopener noreferrer"},e.createElement(_n,null),e.createElement("div",null,"Made with Userflow")))),t.draftMode&&e.createElement("div",{className:"userflowjs-resource-center-preview"},e.createElement("div",{ref:rn,className:"userflowjs-resource-center-preview-content"},e.createElement("div",{className:"userflowjs-resource-center-preview-text"},"Preview"),e.createElement("button",{className:"userflowjs-resource-center-preview-button",onClick:()=>{c.endFlow(t,{endReason:vn.USER_CLOSED})}},e.createElement(y,{icon:Je})))),e.createElement("div",{className:"userflowjs-resource-center-header",style:{width:Re+"px"}},e.createElement("div",{ref:ce,className:"userflowjs-resource-center-header-content"},v==null?e.createElement("div",{className:"userflowjs-resource-center-header-text"},d.headerText):e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:f=>F(v?.kind==="announcementShow"?{kind:"announcementList",block:v.block}:null,f)},e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(y,{icon:Mn})),e.createElement("div",{className:"userflowjs-resource-center-icon-button__text"},l("resource_center.back"))),e.createElement("div",{className:"flex-1"}),Ie.length>0&&e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:()=>{let f={kind:"search"};if(Ie.length===1){const C=Ie[0],T=ne[C.type];T.routeTo&&(f=T.routeTo({block:C}))}v?.kind==="search"?F(null):(R(c,t,null,"Search icon"),F(f))},"aria-label":"Search"},e.createElement(y,{icon:Dn})),e.createElement("button",{className:"userflowjs-resource-center-icon-button userflowjs-resource-center-close-button",onClick:f=>{Ae(),f.detail===0&&Q(!0)},"aria-label":`Close ${d.headerText}`},e.createElement(y,{icon:Fn}))))))),!n&&!r&&h&&S&&S.unreadAnnouncementCount>0&&e.createElement($t,{theme:u,count:S.unreadAnnouncementCount,onClick:dt})),!n&&!r&&h&&S?.popoutAnnouncement&&he(S.popoutAnnouncement,S,t,u),!n&&!r&&h&&S?.boosterAnnouncement&&S.boosterAnnouncement.level===x.MODAL&&he(S.boosterAnnouncement,S,t,u),!n&&!r&&h&&S?.boosterAnnouncement&&S.boosterAnnouncement.level===x.TOAST&&he(S.boosterAnnouncement,S,t,u))))},$t=({theme:t,count:n,onClick:r,style:s})=>{const[o,c]=i.useState(!1);return e.createElement(Ge,{className:D({"userflowjs-resource-center-launcher-unread-badge":!0}),noScroll:!0,style:{position:o?void 0:"absolute",visibility:o?void 0:"hidden",...s},stylesheet:Ze,theme:t,onStylesheetsLoad:c,title:"Resource center unread badge"},e.createElement(zt,{count:n,onClick:r}))},zt=({count:t,onClick:n})=>{let r=null;return t>9&&(t=9,r=e.createElement("span",{className:"userflowjs-unread-badge-plus"},"+")),e.createElement("div",{className:D({"userflowjs-unread-badge":!0,"userflowjs-unread-badge--clickable":!!n}),onClick:n},e.createElement("span",null,t),r)},Vt=({session:t,open:n,navigate:r,announcement:s,block:o,rcPlacement:c,onDismiss:l,isStandalonePopout:a})=>{const E=i.useRef(null),d=ve(s.theme),u=d.toastPlacement,w=!!o.boosterAnnouncement||a!==void 0&&s?.level===x.TOAST,h=u===c;let p=null,b=null;s&&(p=s.toastAutoDismiss??d.toastAutoDismiss,b=s.toastWidth?s.toastWidth:d.toastWidth);const g=L(),[N,A]=i.useState(!1),{height:I,setEl:k}=zn();i.useEffect(()=>{const $=E.current;if(!$||p===null)return;const z=Date.now(),oe=()=>{const ce=1-(Date.now()-z)/(new Ut(p||0).toNumber()*1e3);ce<=0?($.style.width="0%",s&&P(g,s)):($.style.width=`${ce*100}%`,requestAnimationFrame(oe))};return requestAnimationFrame(oe),()=>{$&&($.style.width="0%")}},[E.current,p,g,s,P]);const M=l||(()=>{s&&P(g,s)}),ke=20,Ne=i.useMemo(()=>CSS.supports("height: 100dvh")?"dvh":"vh",[]),re=()=>{w&&s&&(P(g,s),R(g,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n())};if(!s)return null;const se=!!a&&!!c,W=(a!==void 0||!h)&&!!u&&w;return e.createElement("div",{className:D({"userflowjs-resource-center-popout":!w,"userflowjs-resource-center-toast":w,[`userflowjs-resource-center-popout-standalone--${c?.toLowerCase()?.replace(/_/g,"-")}`]:se,[`userflowjs-resource-center-toast--${u?.toLowerCase()?.replace(/_/g,"-")}`]:W}),style:Be(d)},e.createElement(Ge,{className:D({"userflowjs-resource-center-popout-frame":!0}),style:{height:`calc(min(${I}px, 100${Ne} - 2 * var(--userflow-resource-center-padding-y) - var(--userflow-resource-center-collapsed-height) - ${ke}px)`,position:N?void 0:"absolute",visibility:N?void 0:"hidden",...b&&w?{width:b}:{}},stylesheet:Ze,theme:d,onStylesheetsLoad:A,title:"Resource center popout"},w&&e.createElement("div",{className:"userflowjs-bubble-progress--default"},e.createElement("div",{className:"userflowjs-bubble-progress__fill",ref:E})),e.createElement("div",{ref:k,className:"userflowjs-resource-center-popout-frame-root",style:{cursor:w?"pointer":"auto",padding:w&&d.toastPadding||void 0}},e.createElement("div",{onClick:re},e.createElement("h2",{className:"userflowjs-announcement-title"},e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,s.title)),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},Ce(s.time))),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(H,{doc:s.content,buttons:s.buttons,lookupAttribute:_(s.data)})),!w&&e.createElement(e.Fragment,null,s.moreEnabled&&e.createElement("div",{className:"userflowjs-announcement-more"},e.createElement("button",{className:"userflowjs-tertiary-button",onClick:()=>{P(g,s),R(g,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n()}},e.createElement("div",null,(s.moreEnabled?s.moreButtonText:null)||"Read more"),!w&&e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(y,{icon:Ot})))))),w&&s.moreEnabled&&e.createElement("div",{onClick:re,className:"userflowjs-announcement-more--toast"},(s.moreEnabled?s.moreButtonText:null)||"Read more"),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:M,"aria-label":"Dismiss announcement"},e.createElement(y,{icon:Je}))))),!w&&!a&&e.createElement("div",{className:"userflowjs-resource-center-popout-notch"}))},Kt=({session:t,open:n,navigate:r,announcement:s,block:o,onDismiss:c})=>{const l=L(),a=ve(s.theme),d=c||(()=>{P(l,s)});return e.createElement(Wn,{company:t.flow.company,theme:a,position:"fixed",width:s.modalWidth,stepAppearance:gn.MODAL,zIndex:a.checklistZIndex,autoHide3pEnabled:!0,onModalBackdropClick:d,noIframe:!0,isModalAnnouncement:!0},e.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content"},e.createElement("h1",null,s.title),e.createElement(H,{doc:s.content,buttons:s.buttons,lookupAttribute:_(s.data)})),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:d,"aria-label":"Dismiss announcement"},e.createElement(y,{icon:Je}))),s.moreEnabled&&e.createElement("div",{className:"userflowjs-announcement-more--modal"},e.createElement("button",{className:"userflowjs-bubble-button--primary",onClick:()=>{P(l,s),R(l,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n()}},e.createElement("div",null,(s.moreEnabled?s.moreButtonText:null)||"Read more"))))};function Qt(t){return t.filter(n=>{const r=ne[n.type];return r.isSearchable?r.isSearchable(n):!!r.search})}const ne={[j.ACTION]:{View:t=>{const{block:n,session:r,flowSession:s,checklistSession:o}=t,c=L(),[l,a]=i.useState(!1),E=s?.id,d=o?.id;return i.useEffect(()=>{a(!1)},[E,d]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:l?void 0:()=>{R(c,r,n);const u=n.actions.find(w=>w.type===Cn.START_FLOW);u?u.otherFlow?.id!==o?.flow.id&&a(!0):c.closeResourceCenter(),In(c,r,n.actions)},disabled:l},e.createElement(Z,{...t}),e.createElement(V,{...t}),l&&e.createElement(O,null))}},[j.ANNOUNCEMENTS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"announcementList",block:n},c)}},n.unreadAnnouncementCount>0?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(zt,{count:n.unreadAnnouncementCount})):e.createElement(Z,{...t}),e.createElement(V,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(y,{icon:G})))}},[j.ASSISTANT]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L(),[c,l]=i.useState("");return n.assistantAppearance===kn.INPUT?e.createElement("div",{className:"userflowjs-resource-center-assistant-block"},e.createElement(rr,{value:c,onChange:l,placeholder:qe(n.name,{lookupAttribute:_(r.data)}),onSubmit:()=>{R(o,r,n),s({kind:"assistant",block:n,initialUserContent:c})}})):e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{R(o,r,n),s({kind:"assistant",block:n,initialUserContent:""})}},e.createElement(Z,{...t}),e.createElement(V,{...t}))}},[j.CHECKLIST]:{View:({checklistSession:t})=>e.createElement("div",{"data-testid":"resource-center-checklist",className:"userflowjs-resource-center-checklist"},e.createElement(xn,{session:t}),e.createElement($n,{draftMode:t.draftMode?"CHECKLIST PREVIEW":!1}))},[j.CONTACT]:{View:t=>{const{block:n,session:r,navigate:s,onChatShow:o}=t,c=L(),l=[];return n.emailEnabled&&l.push({icon:On,label:"Email",isRoute:!0,onClick:a=>{R(c,r,n,"Email"),s({kind:"email",block:n},a)}}),n.phoneEnabled&&l.push({icon:Un,label:"Phone",isRoute:!0,onClick:a=>{R(c,r,n,"Phone"),s({kind:"phone",block:n},a)}}),n.chatEnabled&&l.push({icon:Hn,label:"Live-chat",isRoute:!1,onClick:()=>{R(c,r,n,"Chat"),Yt(r,n,o)}}),e.createElement("div",{className:D({"userflowjs-resource-center-block":!0,"userflowjs-resource-center-block--clickable":l.length===1}),onClick:l.length===1?l[0].onClick:void 0},l.length===1&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(y,{icon:l[0].icon})),e.createElement(V,{...t}),l.length>1&&l.map(({icon:a,label:E,onClick:d},u)=>e.createElement("button",{key:u,className:"userflowjs-resource-center-icon-button",onClick:d,"aria-label":E},e.createElement(y,{icon:a}))),l.length===1&&l[0].isRoute&&e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(y,{icon:G})))}},[j.DIVIDER]:{View:()=>e.createElement("div",{className:"userflowjs-resource-center-divider"})},[j.FLOWS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"flows",block:n},c)}},e.createElement(Z,{...t}),e.createElement(V,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(y,{icon:G})))},routeTo:({block:t,initialQ:n})=>({kind:"flows",block:t,initialQ:n}),isSearchable:t=>!!t.searchEnabled,search:async({client:t,session:n,block:r,q:s})=>{const{flows:o}=await t.send({kind:"ListResourceCenterBlockFlows",sessionId:n.id,blockCvid:r.cvid},{handlesRejection:!0}),c=Zt(o,s),l=c.slice(0,xt);return{block:r,truncated:l.length===c.length,results:l.map(a=>({kind:"flow",flow:a}))}}},[j.KNOWLEDGE_BASE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"knowledgeBase",block:n},c)}},e.createElement(Z,{...t}),e.createElement(V,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(y,{icon:G})))},routeTo:({block:t,initialQ:n})=>({kind:"knowledgeBase",block:t,initialQ:n}),search:async({client:t,session:n,block:r,q:s})=>{const{truncated:o,articles:c}=await t.send({kind:"SearchKnowledgeBase",sessionId:n.id,blockCvid:r.cvid,q:s,offset:0,limit:xt},{handlesRejection:!0});return{block:r,truncated:o,results:c.map(l=>({kind:"article",article:l}))}}},[j.MESSAGE]:{View:({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block"},e.createElement("div",{className:"userflowjs-resource-center-block-text userflowjs-bubble-content"},e.createElement(H,{doc:t.content,lookupAttribute:_(n.data)})))},[j.SUBPAGE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"subpage",block:n},c)}},e.createElement(Z,{...t}),e.createElement(V,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(y,{icon:G})))}}},Z=({block:t})=>t.icon?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(y,{icon:t.icon,size:16})):null,V=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement(K,{doc:t.name,lookupAttribute:_(n.data)}));function qt(t){if(!t)return null;let n;"block"in t&&t.block!=null&&(n=t.block.cvid);const r={kind:t.kind,blockCvid:n};switch(t.kind){case"announcementShow":r.announcementId=t.announcementId;break}return JSON.stringify(r)}function Mt(t,n){if(!n)return null;const r=JSON.parse(n);let s;if(r.blockCvid&&(s=t.version.resourceCenter?.blocks.find(c=>c.cvid===r.blockCvid)),!s&&r.kind!=="search")return null;const o={kind:r.kind,block:s};switch(o.kind){case"announcementShow":o.announcementId=r.announcementId;break}return o}const cr=({session:t,navigate:n})=>{const r=L(),s=t.version.resourceCenter.blocks,o=Qt(s),{t:c}=J(),l=i.useRef(null),[a,E]=i.useState(""),[d,u]=Ye(a,E),[w,h]=i.useState(null);return i.useEffect(()=>{if(a.trim()===""){h(null);return}let p=!1;return(async()=>{h(null);const g=await Promise.all(s.map(async N=>{const{search:A}=ne[N.type];if(!A)return null;try{return await A({client:r,session:t,block:N,q:a})}catch(I){return console.error(`Userflow.js: Global search failed for ${N.type} block=`,N,"error=",I),null}}));p||h(g.filter(N=>N!=null&&N.results.length>0))})(),()=>{p=!0}},[r,t,s,a]),i.useEffect(()=>{l.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:l,className:"userflowjs-text-input",type:"text",value:d,onChange:p=>u(p.target.value),placeholder:c("resource_center.search_placeholder")})),a.trim()===""?e.createElement("div",{"data-testid":"resource-center-empty-query",className:"userflowjs-resource-center-list-route-error"},c("resource_center.search_in")," ",o.map((p,b)=>e.createElement(e.Fragment,{key:p.cvid},b>0&&(b===o.length-1?` ${c("and")} `:", "),e.createElement("b",null,e.createElement(K,{doc:p.name,lookupAttribute:_(t.data)})))),"."):w?w.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},c("resource_center.no_results_found")):w.map(({block:p,truncated:b,results:g},N)=>{const A=ne[p.type],I=A.routeTo&&A.routeTo({block:p,initialQ:a});return e.createElement(e.Fragment,{key:p.cvid},N>0&&e.createElement("div",{className:"userflowjs-resource-center-divider"}),e.createElement("div",{className:"userflowjs-resource-center-label"},e.createElement(K,{doc:p.name,lookupAttribute:_(t.data)})),g.map((k,M)=>k.kind==="flow"?e.createElement(Gt,{key:k.flow.id,block:p,session:t,flow:k.flow,navigate:n}):k.kind==="article"?e.createElement(Jt,{key:M,block:p,session:t,article:k.article}):null),!b&&I&&e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:k=>{R(r,t,p),n(I,k)}},e.createElement("div",{className:"userflowjs-resource-center-block-text"},c("more"),":"," ",e.createElement(K,{doc:p.name,lookupAttribute:_(t.data)})),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(y,{icon:G}))))}):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(O,null)))},ar=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.emailContent,lookupAttribute:_(n.data)})),lr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.phoneContent,lookupAttribute:_(n.data)})),ir=({block:t,initialQ:n,session:r,navigate:s})=>{const{t:o}=J(),c=i.useRef(null),[l,a]=i.useState(n||""),[E,d]=Ye(l,a),{data:u,error:w}=ge({message:{kind:"ListResourceCenterBlockFlows",sessionId:r.id,blockCvid:t.cvid}}),h=u?.flows,p=i.useMemo(()=>h?Zt(h,l):null,[h,l]);return i.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(K,{doc:t.name,lookupAttribute:_(r.data)}))),t.searchEnabled&&e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:E,onChange:b=>d(b.target.value),placeholder:o("resource_center.search_placeholder")})),w?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.generic_error")):p?p.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):p.map(b=>e.createElement(Gt,{key:b.id,block:t,session:r,flow:b,navigate:s})):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(O,{fadeIn:!0})))};function Zt(t,n){const r=n.toLowerCase().trim();return r===""?t:t.filter(s=>s.name.toLowerCase().includes(r))}const Gt=({block:t,session:n,flow:r,navigate:s})=>{const o=L(),[c,l]=i.useState(!1);return i.useEffect(()=>{if(!c||r.type!==Et.CHECKLIST)return;const a=()=>{o.checklistSession?.flow.id===r.id&&(E(),s(null))},E=()=>{o.off("checklistChanged",a)};return o.on("checklistChanged",a),E},[o,c,r.type,r.id,s]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{if(R(o,n,t,r.name),o.checklistSession?.flow.id===r.id){s(null);return}o.startFlow({flowId:r.id,startReason:n.draftMode?pt.DRAFT:pt.RESOURCE_CENTER,replaceCurrent:!0}),l(!0);const a=qe(r.url,{lookupAttribute:_(n.data)});a&&Tn(a)},disabled:c},r.iconSetting!==Nn.HIDE&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},r.icon?e.createElement(y,{icon:r.icon,size:16}):e.createElement(y,{icon:r.type===Et.CHECKLIST?"regular/tasks":"regular/shoe-prints",size:16})),n.draftMode&&!r.published&&e.createElement("div",{className:"userflowjs-resource-center-code-block"},e.createElement("div",{title:"Unpublished. Preview only"},e.createElement("code",null,"P"))),e.createElement("div",{className:"userflowjs-resource-center-block-text"},r.name),c&&e.createElement(O,null))},ur=({block:t,initialQ:n,session:r,bodyRef:s})=>{const{t:o}=J(),c=i.useRef(null),[l,a]=i.useState(n||""),[E,d]=Ye(l,a),{loading:u,loadingMore:w,data:h,messageForData:p,error:b,loadMore:g}=ge({message:{kind:"SearchKnowledgeBase",sessionId:r.id,blockCvid:t.cvid,q:l,offset:0}}),N=h?.truncated,A=i.useCallback(()=>{g((k,M)=>({...M,offset:k.articles.length}),(k,M)=>({...M,articles:[...k.articles,...M.articles]}))},[g]);Xt({bodyRef:s,loading:u,loadingMore:w,truncated:N,loadMoreHelper:A}),i.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]);let I=t.knowledgeBaseUrl||"";return I.match(/^https?:\/\//)||(I=`http://${I}`),I=Wt(I),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(K,{doc:t.name,lookupAttribute:_(r.data)})),e.createElement("a",{className:"userflowjs-resource-center-icon-button",href:I,target:"_blank",rel:"noopener noreferrer"},e.createElement(y,{icon:Pn}))),e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:E,onChange:k=>d(k.target.value),placeholder:o("resource_center.search_placeholder")})),b?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},b.code==="quota_exceeded"?"Sorry, this company has reached its max number of searches. Consider asking Userflow to be moved to a dedicated search engine for a higher quota.":b.humanMessage||o("resource_center.generic_error")):u||!h?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(O,null)):h.articles.length===0?p?.q===""?null:e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):e.createElement(e.Fragment,null,p?.q===""&&e.createElement("div",{className:"userflowjs-resource-center-label"},o("resource_center.suggested_articles")),h.articles.map((k,M)=>e.createElement(Jt,{key:M,block:t,session:r,article:k})),w&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(O,null))))},Jt=({block:t,article:n,session:r})=>{const s=L();return e.createElement("a",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{R(s,r,t,n.title)},href:Wt(n.url),target:"_blank",rel:"noopener noreferrer"},e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(y,{icon:"regular/file-alt",size:16})),e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement("span",{dangerouslySetInnerHTML:{__html:n.htmlTitle}}),e.createElement("div",{className:"userflowjs-resource-center-block-subtext",dangerouslySetInnerHTML:{__html:n.htmlSnippet}})))},dr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.content,lookupAttribute:_(n.data)})),mr=({bodyRef:t,session:n,route:r,navigate:s})=>{const o=L(),c=ge({message:{kind:"ListAnnouncements",beforeAnnouncementId:null},skip:r?.kind!=="announcementList"}),{loading:l,loadingMore:a,data:E,loadMore:d}=c,u=E?.truncated,w=i.useCallback(()=>{d((b,g)=>b.announcements.length>0?{...g,beforeAnnouncementId:b.announcements[b.announcements.length-1].id}:g,(b,g)=>({...g,announcements:[...b.announcements,...g.announcements]}))},[d]);Xt({bodyRef:t,loading:l,loadingMore:a,truncated:u,loadMoreHelper:w});const[h,p]=i.useState(void 0);return i.useLayoutEffect(()=>{t.current&&h!=null&&r?.kind==="announcementList"&&(t.current.scrollTop=h)},[t,h,r?.kind]),r?.kind==="announcementList"?e.createElement(fr,{bodyRef:t,session:n,block:r.block,onMoreClick:b=>{p(t.current?.scrollTop),R(o,n,r.block,b.title),s({kind:"announcementShow",block:r.block,announcementId:b.id})},...c}):r?.kind==="announcementShow"?e.createElement(hr,{announcementId:r.announcementId}):null},fr=({bodyRef:t,block:n,session:r,onMoreClick:s,error:o,loading:c,loadingMore:l,data:a})=>{const{t:E}=J(),[d,u]=i.useMemo(()=>{const h=[],p=[];if(a){let b=-1;for(const g of a.announcements)b++,b<a.pageSize&&!g.seen&&g.level!==x.SILENT?h.push(g):p.push(g)}return[h,p]},[a]),w=d.length;return e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(K,{doc:n.name,lookupAttribute:_(r.data)}))),o?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o.humanMessage||E("resource_center.generic_error")):c||!a?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(O,null)):a.announcements.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},be.exists("resource_center.no_announcements",{fallbackLng:[]})?E("resource_center.no_announcements"):E("resource_center.no_results_found")):e.createElement(e.Fragment,null,w>0&&e.createElement("div",{className:"userflowjs-announcement-unread-header"},E("resource_center.unread",{count:w})),d.map((h,p)=>e.createElement(Ft,{key:p,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),d.length>0&&u.length>0&&e.createElement("div",{className:"userflowjs-announcement-seen-divider"}),u.map((h,p)=>e.createElement(Ft,{key:p,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),l&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(O,null))))},Dt=new Set;function P(t,n){Dt.has(n.id)&&n.seen||(Dt.add(n.id),et(t,n))}const Ft=({bodyRef:t,onMoreClick:n,announcement:r})=>{const s=L(),o=Pt(),c=i.useRef(null),l=i.useRef(!1);return i.useEffect(()=>{if(l.current||r.seen)return;const a=new IntersectionObserver(d=>{const u=d[0];u&&u.isIntersecting&&(P(s,r),l.current=!0,E())},{root:t.current,threshold:1}),E=()=>{a.disconnect()};return a.observe(c.current),E},[t,s,r]),e.createElement("div",{className:"userflowjs-announcement-list-item"},e.createElement("div",{className:"userflowjs-announcement-time-divider"},e.createElement("div",{className:"userflowjs-announcement-time-divider-line"}),e.createElement("div",{className:"userflowjs-announcement-time-text"},Ce(r.time)),e.createElement("div",{className:"userflowjs-announcement-time-divider-line"})),e.createElement("h2",{ref:c,className:"userflowjs-announcement-title"},!r.seen&&r.level!==x.SILENT&&e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,r.title)),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(te.Provider,{value:{...o,data:r.data}},e.createElement(H,{doc:r.content,buttons:r.buttons,lookupAttribute:_(r.data)}))),e.createElement("div",{className:"userflowjs-announcement-more"},r.moreEnabled&&e.createElement("button",{className:"userflowjs-tertiary-button",onClick:n},e.createElement("div",null,r.moreButtonText||"Read more"),e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(y,{icon:Ot})))))},hr=({announcementId:t})=>{const n=L(),r=Pt(),{t:s}=J(),{loading:o,data:c,error:l}=ge({message:{kind:"GetAnnouncement",announcementId:t}}),a=c?.announcement;return i.useEffect(()=>{!a||a.seen||P(n,a)},[n,a]),e.createElement(e.Fragment,null,l?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},l.humanMessage||s("resource_center.generic_error")):o||!a?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(O,null)):e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-announcement-show"},e.createElement("h2",{className:"userflowjs-announcement-title"},a?.title),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},Ce(a.time))),e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(te.Provider,{value:{...r,data:a.data}},e.createElement(H,{doc:a.content,buttons:a.buttons,lookupAttribute:_(a.data)}),a.moreEnabled&&e.createElement(H,{doc:a.moreContent,buttons:a.moreButtons,lookupAttribute:_(a.data)}))))))},wr=({block:t,initialUserContent:n,session:r,navigate:s,onChatShow:o})=>{const c=t.assistantFlowId,l=L(),[a,E]=i.useState(null),[d,u]=i.useState(null),[w,h]=i.useState(null),[p]=i.useState(n);i.useEffect(()=>{n&&s({kind:"assistant",block:t,initialUserContent:""})},[n,t,s]),i.useEffect(()=>{let g=!1;return(async()=>{try{const A=ee.getItem("assistantConversationId:"+c),[I,k]=await Promise.all([or(),l.send({kind:"GetAssistant",assistantFlowId:c,conversationId:A},{handlesRejection:!0,endBatch:!0})]);if(g)return;E(()=>I),u(k)}catch(A){console.error("Resource center assistant route failed to load:",A),h(A.humanMessage||"Sorry, something went wrong. Please try again or contact my human friends.")}})(),()=>{g=!0}},[l,c]);const b=i.useMemo(()=>{if(!t.assistantContactEnabled)return;const g=r.version.resourceCenter?.blocks.find(N=>N.type===j.CONTACT);if(g)return()=>{switch(R(l,r,t,t.assistantContactButtonText||void 0),t.assistantContactMethod){case bt.EMAIL:s({kind:"email",block:g});break;case bt.PHONE:s({kind:"phone",block:g});break;default:s(null),Yt(r,g,o);break}}},[l,r,t,o,s]);return w?e.createElement("div",{className:"userflowjs-assistant-chat"},e.createElement("div",{className:"userflowjs-assistant-chat__content"},e.createElement("div",{className:"userflowjs-assistant-chat__error"},w))):!a||!d?e.createElement(O,{center:!0,fadeIn:!0}):e.createElement(a,{block:t,session:r,assistantReply:d,initialUserContent:p,onContactClick:b,contactButtonText:t.assistantContactButtonText||void 0})};function R(t,n,r,s){t.send({kind:"ClickResourceCenter",sessionId:n.id,description:r?qe(r.name,{lookupAttribute:_(n.data)})+(s?` - ${s}`:""):s},{batch:!0})}function Xt({bodyRef:t,loading:n,loadingMore:r,truncated:s,loadMoreHelper:o}){i.useEffect(()=>{const c=t.current;if(!c||n||r||s)return;const l=()=>{c.scrollHeight-c.clientHeight-c.scrollTop>400||o()};return c.addEventListener("scroll",l),()=>{c.removeEventListener("scroll",l)}},[t,n,r,s,o])}function Yt(t,n,r){if(n.chatProvider){const s=De[n.chatProvider];try{s.show({block:n})}catch(o){console.error(`Userflow.js: Error when showing ${n.chatProvider}:`,o)}r()}else t.draftMode&&window.alert("You have not selected a chat provider. Go to the resource center builder in Userflow. Click the Contact block. Pick a chat provider in the side panel.")}function et(t,n){t.setResourceCenterSession(r=>r?{...r,version:{...r.version,resourceCenter:{...r.version.resourceCenter,blocks:r.version.resourceCenter.blocks.map(s=>s.type===j.ANNOUNCEMENTS?{...s,unreadAnnouncementCount:n.level===x.SILENT?s.unreadAnnouncementCount:s.unreadAnnouncementCount-1,popoutAnnouncement:s.popoutAnnouncement?.id===n.id?null:s.popoutAnnouncement,boosterAnnouncement:s.boosterAnnouncement?.id===n.id?null:s.boosterAnnouncement}:s)}}}:null),t.send({kind:"MarkAnnouncementSeen",announcementId:n.id,versionId:n.versionId}),t.toggleUI()}function en(t){return t?.version.resourceCenter?.blocks.find(n=>n.type===j.ANNOUNCEMENTS)||null}function Ce(t){const n=t?new Date(t):new Date;let r=new Intl.DateTimeFormat(be.language,{weekday:"long",day:"numeric",month:"short",year:n.getFullYear()===new Date().getFullYear()?void 0:"numeric"}).format(n);return r.substring(0,1).toUpperCase()+r.substring(1)}const Pr=Object.freeze(Object.defineProperty({__proto__:null,FloatingAnnouncements:Vt,LauncherUnreadBadge:$t,ModalAnnouncement:Kt,ResourceCenterApp:Bt,default:Bt,formatAnnouncementTime:Ce,getAnnouncementsBlock:en,markAnnouncementSeen:P,serializeRoute:qt,syncAnnouncementSeen:et},Symbol.toStringTag,{value:"Module"}));export{rr as A,nr as G,$t as L,Pr as R,Wt as d,Ce as f,P as m,qt as s};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["sad.js","vendor.react.js","vendor.core-js.js","vendor.object-assign.js","neutral.js","happy.js","ResourceCenterAssistantChat.js","userflow.js","vendor.phoenix.js","vendor.uuid.js","client-context.js","vendor.i18next.js","vendor.babel.runtime.js","vendor.react-i18next.js","vendor.fortawesome.pro-regular-svg-icons.js","vendor.dompurify.js","vendor.marked.js","vendor.obj-str.js","TreeDoc.js","flow-condition-types.js","vendor.date-fns.js","roots.js","stylesheets.js","vendor.fortawesome.pro-solid-svg-icons.js","vendor.react-dom.js","vendor.scheduler.js","use-client-query.js","flow-host.styl.js","use-selector-element-monitoring.js","Frame.js","iframe-reset.styl.js","use-window-resize.js","logomark.js","ChecklistUI.js","FlowChrome.js","vendor.canvas-confetti.js","vendor.memoize-one.js","vendor.bignumber.js.js","use-element-rect.js"])))=>i.map(i=>d[i]);
2
+ import{z as I,D as W,G as Be,_ as ke,H as ye,I as B,k as Ce,C as ae,x as yn,J as pt,K as bt,E as jn,r as Nn,L as Sn,N as An,a as vt,O as gt,Q as In,X as Ct}from"./userflow.js";import{r as a,R as e}from"./vendor.react.js";import{u as L,i as je}from"./client-context.js";import{f as kt,a as _n,w as yt,C as Tn,N as Rn}from"./flow-host.styl.js";import{S as le,R as $,h as xn,s as Ge,c as Z,n as Ln,u as zt}from"./TreeDoc.js";import{g as M}from"./flow-condition-types.js";import{D as S,a as ne,u as jt,g as De}from"./stylesheets.js";import{b as Xe}from"./use-selector-element-monitoring.js";import{F as Je}from"./Frame.js";import{o as D}from"./vendor.obj-str.js";import{M as Oe,e as Nt,h as St}from"./roots.js";import{u as Mn}from"./use-window-resize.js";import{S as Bn}from"./logomark.js";import"./vendor.core-js.js";import{f as Dn,C as On}from"./ChecklistUI.js";import{L as Pn,E as Ye,c as Fn,M as Un,N as zn,b as Ht,O as te,C as Hn,P as Wn,Q as $n,R as Vn}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{f as Qn,F as Kn,B as qn}from"./FlowChrome.js";import{S as U,u as Wt}from"./use-client-query.js";import{m as At}from"./vendor.memoize-one.js";import{B as $t}from"./vendor.bignumber.js.js";import{u as Zn}from"./use-element-rect.js";import{d as Gn,e as Xn,g as Jn}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{u as re}from"./vendor.react-i18next.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="af613589-89fe-4bd6-9cb4-b53dc27601da",t._sentryDebugIdIdentifier="sentry-dbid-af613589-89fe-4bd6-9cb4-b53dc27601da")}catch{}})();function Yn(t,n,r){return t.resourceCenterAutoDividers?It(n)||It(r):!1}function It(t){return t!==I.ACTION&&t!==I.ANNOUNCEMENTS&&t!==I.ASSISTANT&&t!==I.CONTACT&&t!==I.FLOWS&&t!==I.KNOWLEDGE_BASE&&t!==I.SUBPAGE}const m=window,Pe={[W.CRISP]:{configure:({onShow:t,onHide:n})=>{er();let r=!1,s=!1;const o=()=>{r||s?(m.$crisp.push(["do","chat:show"]),t()):(m.$crisp.push(["do","chat:hide"]),n())},c=()=>{r=!0,o()};m.$crisp.push(["on","chat:opened",c]);const l=()=>{r=!1,o()};m.$crisp.push(["on","chat:closed",l]);const i=()=>{s=!0,o()};m.$crisp.push(["on","message:received",i]);const E=()=>{const h=document.getElementById("crisp-chatbox");if(!h||window.getComputedStyle(h).display!=="block")return!1;const w=h.querySelector('[data-id="new_messages"]');return!(!w||window.getComputedStyle(w).display!=="block")},d=()=>{const h=E();h!==s&&(s=h,o())},u=window.setInterval(d,200);return()=>{m.$crisp.push(["off","chat:opened",c]),m.$crisp.push(["off","chat:closed",l]),m.$crisp.push(["off","message:received",i]),window.clearInterval(u)}},show:()=>{m.$crisp.push(["do","chat:show"]),m.$crisp.push(["do","chat:open"])},hide:()=>{m.$crisp.push(["do","chat:hide"]),m.$crisp.push(["do","chat:close"])}},[W.CUSTOM]:{configure:()=>()=>{},show:({block:t})=>{try{new Function(`"use strict";
3
+ `+t.chatCode)()}catch(n){console.error(`Userflow.js: Showing custom chat provider failed. Code: ${t.chatCode}`,n)}},hide:()=>{}},[W.FRESHCHAT]:{configure:({onShow:t,onHide:n})=>{if(!m.fcWidget)throw new Error("Freshchat is not installed");let r=!1,s=!1;const o=()=>{r||s?t():n()},c=()=>{r=!0,o()};m.fcWidget.on("widget:opened",c);const l=()=>{r=!1,o()};m.fcWidget.on("widget:closed",l);const i=()=>{const d=!!document.querySelector("#fc_frame.h-open-notify");d!==s&&(s=d,o())},E=window.setInterval(i,200);return m.fcWidget.on("unreadCount:notify",i),()=>{m.fcWidget.off("widget:opened",c),m.fcWidget.off("widget:closed",l),m.fcWidget.off("unreadCount:notify",i),window.clearInterval(E)}},show:()=>{m.fcWidget.open()},hide:()=>{m.fcWidget.close()}},[W.HELPSCOUT]:{configure:({onShow:t,onHide:n})=>{if(!m.Beacon)throw new Error("Help Scout is not installed");tr();let r=!1,s=!1;const o=()=>{r||s?(Rt(),t()):(Fe(),n())},c=()=>{r=!0,o()};m.Beacon("on","open",c),m.Beacon("info")?.status.isOpened&&c();const l=()=>{r=!1,o()};m.Beacon("on","close",l);const i=()=>{const d=!!document.querySelector(".BeaconNotificationsFrame");d!==s&&(s=d,o())},E=window.setInterval(i,200);return()=>{m.Beacon("off","open",c),m.Beacon("off","close",l),window.clearInterval(E)}},show:()=>{Rt(),m.Beacon("open")},hide:()=>{Fe(),m.Beacon("close")}},[W.HUBSPOT]:{configure:({onShow:t,onHide:n})=>{const r=()=>{const c=document.getElementById("hubspot-messages-iframe-container");if(!m.HubSpotConversations||!c)return;window.clearInterval(o),nr();let l=!1,i=!1;const E=()=>{l||i?(Ue(),t()):(ze(),n())},d=()=>{const w=!!document.querySelector("#hubspot-messages-iframe-container .hs-shadow-container.active");w!==l&&(l=w,E())},u=new Oe(d);u.observe(c,{attributes:!0,subtree:!0,attributeFilter:["class"]}),d();const h=({unreadCount:w})=>{const p=w>0;p!==i&&(i=p,E())};m.HubSpotConversations.on("unreadConversationCountChanged",h),s=()=>{u.disconnect(),m.HubSpotConversations.off("unreadConversationCountChanged",h)}};let s=()=>{window.clearInterval(o)};const o=window.setInterval(r,100);return r(),()=>{s()}},show:()=>{Ue(),m.HubSpotConversations.widget.open()},hide:()=>{ze(),m.HubSpotConversations.widget.close()}},[W.INTERCOM]:{configure:({onShow:t,onHide:n})=>{if(!m.Intercom)throw new Error("Intercom is not installed");return rr(),He.add(t),We.add(n),()=>{He.delete(t),We.delete(n)}},show:()=>{Vt(),m.Intercom("show")},hide:()=>{$e(),m.Intercom("hide")}},[W.ZENDESK]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");sr();let r=!1,s=!1;const o=()=>{r||s?(m.zE("webWidget","show"),t()):(m.zE("webWidget","hide"),n())},c=()=>{r=!0,s=!1,o()};Ve.add(c);const l=()=>{r=!1,s=!1,o()};Qe.add(l);const i=E=>{const d=E>0;d!==s&&(s=d,o())};return Ke.add(i),()=>{Ve.delete(c),Qe.delete(l),Ke.delete(i)}},show:()=>{m.zE("webWidget","show"),m.zE("webWidget","open")},hide:()=>{m.zE("webWidget","hide"),m.zE("webWidget","close")}},[W.ZENDESK_MESSENGER]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");const r=()=>{t()},s=()=>{n()};return qe.add(r),Ze.add(s),or(),()=>{qe.delete(r),Ze.delete(s)}},show:()=>{m.zE("messenger","open")},hide:()=>{m.zE("messenger","close")}}};let _t=!1;function er(){_t||(_t=!0,m.$crisp||(m.$crisp=[]),m.$crisp.push(["do","chat:hide"]))}let Tt=!1;function tr(){Tt||(Tt=!0,Fe())}function Rt(){m.Beacon("config",{display:{style:"icon"}})}function Fe(){m.Beacon("config",{display:{style:"manual"}})}let xt=!1,et=!1;function nr(){xt||(xt=!0,et?Ue():ze())}function Ue(){et=!0,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","visible","important")}function ze(){et=!1,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","hidden","important")}let Lt=!1,He=new Set,We=new Set;function rr(){if(Lt)return;Lt=!0,$e();let t=!1,n=!1;const r=()=>{Vt();for(const l of He)l()},s=()=>{$e();for(const l of We)l()},o=()=>{t||n?r():s()};m.Intercom("onShow",()=>{t=!0,o()}),m.Intercom("onHide",()=>{t=!1,o()});const c=()=>{const l=!!document.querySelector('iframe[name="intercom-borderless-frame"], iframe[name="intercom-notifications-frame"]');n!==l&&(n=l,o())};m.Intercom("onUnreadCountChange",()=>{c()}),window.setInterval(c,200)}function Vt(){m.Intercom("update",{hide_default_launcher:!1,vertical_padding:20})}function $e(){m.Intercom("update",{hide_default_launcher:!0,vertical_padding:100})}let Mt=!1,Ve=new Set,Qe=new Set,Ke=new Set;function sr(){Mt||(Mt=!0,m.zE("webWidget","hide"),m.zE("webWidget","close"),m.zE("webWidget:on","open",()=>{for(const t of Ve)t()}),m.zE("webWidget:on","close",()=>{for(const t of Qe)t()}),m.zE("webWidget:on","chat:unreadMessages",t=>{for(const n of Ke)n(t)}))}let Bt=!1,qe=new Set,Ze=new Set;function or(){Bt||(Bt=!0,m.zE("messenger:on","open",function(){for(const t of qe)t()}),m.zE("messenger:on","close",function(){for(const t of Ze)t()}))}const cr=t=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},t),a.createElement("path",{fill:"currentColor",d:"M24.049 79.74h36.003c8.185 0 15.985-6.621 17.43-14.814l6.091-34.556h3.997c8.149 0 13.645 6.63 12.2 14.815l-7.051 40C91.274 93.363 83.474 100 75.288 100h-40c-8.185 0-13.645-6.667-12.2-14.815l.96-5.444Z"}),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12.437 69.63h40c8.148 0 15.978-6.637 17.422-14.815l7.052-40C78.355 6.63 72.896 0 64.711 0h-40C16.533 0 8.726 6.63 7.281 14.815l-7.052 40C-1.215 62.963 4.252 69.63 12.437 69.63Zm33.628-33.798c3.756-2.064 8.725-4.795 9.907-11.844C57.385 15.458 50.065 8.983 42.168 9c-7.452 0-12.771 3.195-17.508 8.892-.858 1.034-.884 2.45-.053 3.212l3.472 3.196c.847.767 2.25.589 3.176-.406 2.842-3.068 4.869-4.83 8.51-4.83 2.864 0 6.077 1.934 5.59 4.847-.37 2.223-2.292 3.334-5.4 5.001l-.28.151c-3.582 1.92-8.134 4.362-9.124 10.247l-.16.956c-.055.28-.05.571.014.85.065.278.188.538.362.76.173.222.391.4.639.522.247.121.518.183.79.18h6.744a2.709 2.709 0 0 0 1.712-.688c.481-.426.81-1.01.934-1.657l.095-.556c.266-1.582 2.101-2.59 4.384-3.845ZM32.837 59c3.552 0 6.955-3.034 7.58-6.769.63-3.729-1.742-6.763-5.293-6.763-3.552 0-6.934 3.028-7.58 6.763C26.9 55.966 29.286 59 32.837 59Z"})),Qt=e.createContext(null),ar=({children:t})=>{const n=lr();return e.createElement(Qt.Provider,{value:n},t)},tt=()=>{const t=e.useContext(Qt);if(!t)throw new Error("useAnnouncementQueryContext must be used within an AnnouncementQueryProvider");return t},lr=()=>{const t=L(),[n,r]=a.useState([]),[s,o]=a.useState(!0),[c,l]=a.useState(!1),[i,E]=a.useState(null),[d,u]=a.useState({truncated:!1,pageSize:0}),h=a.useCallback(async()=>{o(!0),E(null);try{const b=await t.send({kind:"ListAnnouncements",beforeAnnouncementId:null});u({truncated:b.truncated,pageSize:b.pageSize}),r(b.announcements)}catch(b){E(b)}finally{o(!1)}},[t]);a.useEffect(()=>{t&&h()},[t]);const w=a.useCallback(async b=>{try{const g=await t.send({kind:"GetAnnouncement",announcementId:b},{handlesRejection:!0});return r(C=>C.map(y=>y.id===b?g.announcement:y)),g.announcement}catch(g){return E(g),n.find(C=>C.id===b)??null}},[t,n]),p=a.useCallback(async()=>{if(!t||c||d.truncated)return;const b=n[n.length-1];if(b){l(!0);try{const g=await t.send({kind:"ListAnnouncements",beforeAnnouncementId:b.id});u(C=>({...C,truncated:g.truncated})),g.announcements.length>0&&r(C=>[...C,...g.announcements])}catch(g){E(g)}finally{l(!1)}}},[t,c,d.truncated,n]),v=a.useCallback(async(b,g)=>{const C=n.find(y=>y.id===b);if(!C)return null;r(y=>y.map(T=>T.id===b?{...C,reaction:g}:T));try{return await t.send({kind:"SubmitAnnouncementReaction",announcementId:b,versionId:C.versionId,reaction:g},{batch:!0,handlesRejection:!0}),w(b)}catch{return r(y=>y.map(T=>T.id===b?C:T)),null}},[t,n,w]),k=a.useCallback(async(b,g)=>{const C=n.find(y=>y.id===b);if(!C)return!1;try{return await t.send({kind:"SubmitAnnouncementComment",announcementId:b,versionId:C.versionId,comment:g},{batch:!0,handlesRejection:!0}),!0}catch{return!1}},[t,n]);return{announcements:n,loading:s,loadingMore:c,error:i,truncated:d.truncated,pageSize:d.pageSize,fetchAnnouncement:w,loadMore:p,submitReaction:v,submitComment:k}},ir=200;function nt(t,n){const[r,s]=a.useState(t),o=a.useRef(void 0),c=a.useCallback(i=>{window.clearTimeout(o.current),s(i),n(i)},[n]),l=a.useCallback(i=>{window.clearTimeout(o.current),s(i),o.current=window.setTimeout(()=>{n(i)},ir)},[n]);return a.useEffect(()=>()=>{window.clearTimeout(o.current)},[]),[r,l,c]}const ur={xs:[16,3],sm:[24,4],md32:[32,4],md:[40,4],lg:[56,4]};class dr extends e.PureComponent{constructor(){super(...arguments),this.memoizedBgStyle=At(n=>({strokeWidth:`${n}px`})),this.memoizedFillStyle=At((n,r,s)=>({strokeWidth:`${n}px`,strokeDasharray:r*2*Math.PI*new $t(s).toNumber()+"px, 1000"}))}render(){const{props:n}=this,{size:r,indeterminate:s,className:o,center:c,right:l,color:i}=this.props,E=["progress-spinner"];r&&E.push(`progress-spinner--${r}`),s&&E.push("progress-spinner--indeterminate"),o&&E.push(o);const d=s?.25:n.progress||0,[u,h]=ur[r||"md"],w=u/2,p=(u-h)/2;let v=e.createElement("div",{className:E.join(" ")},e.createElement("svg",{viewBox:`0 0 ${u} ${u}`,version:"1.1",xmlns:"http://www.w3.org/2000/svg"},e.createElement("circle",{className:"progress-spinner__bg",fill:"none",cx:w,cy:w,r:p,style:this.memoizedBgStyle(h)}),e.createElement("circle",{className:i==="purple"?"progress-spinner__fill-purple":"progress-spinner__fill",fill:"none",cx:w,cy:w,r:p,transform:`translate(${w}, ${w}) rotate(-90) translate(-${w}, -${w})`,style:this.memoizedFillStyle(h,p,d)})));return c?v=e.createElement("div",{className:"progress-spinner-center-aligner"},v):l&&(v=e.createElement("div",{className:"progress-spinner-right-aligner"},v)),v}}const mr=({textareaRef:t,value:n,onChange:r,onBlur:s,onKeyDown:o,onMouseDown:c,placeholder:l,disabled:i,readOnly:E,className:d,mirrorClassName:u,textareaClassName:h,icon:w,onIconClick:p,loading:v=!1,children:k})=>{let b=n||l||"";(b===""||b.endsWith(`
4
+ `))&&(b+=" "),d=d||"growing-textarea",u=u||d+"__mirror";const[g,C]=a.useState(!1);return e.createElement("div",{className:D({[d]:!0,[`${d}__loading`]:v})},e.createElement("div",{className:u+" "+(h||"")},b),e.createElement("textarea",{ref:t,value:n,onChange:y=>r&&r(y.target.value),onBlur:s,onKeyDown:y=>{if(y.key==="Enter"&&g){y.preventDefault();return}o&&o(y)},onMouseDown:c,placeholder:l,disabled:i||v,readOnly:E,className:D({"growing-textarea__input":!0,[h||""]:!0,[`${d}__with-icon`]:!!w,[`${d}__loading-input`]:v}),onCompositionStart:()=>C(!0),onCompositionEnd:()=>C(!1)}),w&&!v&&e.createElement("div",{className:`${d}__icon`},e.createElement("button",{className:"btn btn--plain-blue btn--square btn--md32",onClick:p},e.createElement(S,{icon:w}))),v&&e.createElement("div",{className:`${d}__loader`},e.createElement(dr,{indeterminate:!0,size:"xs",color:"purple"})),k)},fr=({textareaRef:t,value:n,onChange:r,onSubmit:s,placeholder:o,readOnly:c})=>{const l=()=>{s&&s()};return e.createElement("div",{className:"userflowjs-assistant-chat-input"},e.createElement(mr,{textareaRef:t,className:"userflowjs-growing-textarea",mirrorClassName:"userflowjs-growing-textarea__mirror",textareaClassName:"userflowjs-textarea userflowjs-assistant-chat-input__textarea",placeholder:o,readOnly:c,value:n||"",onChange:r,onKeyDown:i=>{!i.shiftKey&&i.key==="Enter"&&(i.preventDefault(),l())}}),e.createElement("button",{"data-testid":"assistant-chat-input-submit",className:"userflowjs-assistant-chat-input__submit",onClick:()=>l()},e.createElement(S,{icon:Pn})))};function hr(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function Kt(t){return Be.linkUrlDecorator?Be.linkUrlDecorator(t):t}const wr={sad:e.lazy(()=>ke(()=>import("./sad.js"),__vite__mapDeps([0,1,2,3]))),neutral:e.lazy(()=>ke(()=>import("./neutral.js"),__vite__mapDeps([4,1,2,3]))),happy:e.lazy(()=>ke(()=>import("./happy.js"),__vite__mapDeps([5,1,2,3])))},Er={particleCount:70,spread:45,startVelocity:30,gravity:.8,scalar:.6,ticks:70,zIndex:2147483647},pr=[{reaction:ye.NEGATIVE,emoji:"sad"},{reaction:ye.NEUTRAL,emoji:"neutral"},{reaction:ye.POSITIVE,emoji:"happy"}],br=({option:t,isSelected:n,confettiEnabled:r,confettiColors:s,onSelect:o})=>{const c=a.useRef(null),l=wr[t.emoji],i=()=>{n||(t.reaction===ye.POSITIVE&&r&&c.current&&Qn(c.current,s,Er),o(t.reaction))};return e.createElement("button",{ref:c,className:D({"userflowjs-announcement-engagement__emoji-container":!0,"userflowjs-announcement-engagement__emoji-container--selected":n}),onClick:i},e.createElement("span",{className:"userflowjs-announcement-engagement__emoji-icon"},e.createElement(e.Suspense,{fallback:null},e.createElement(l,null))),n&&e.createElement("span",{className:"userflowjs-announcement-engagement__check"},e.createElement(S,{icon:Xn})))},vr=499,ie=({announcement:t,onMoreClick:n,onReactionChange:r,onCommentSubmit:s,confettiColors:o,showMoreButton:c=!0,children:l})=>{const i=L(),[E,d]=a.useState(t.reaction??null),[u,h]=a.useState(null),[w,p]=a.useState(!1),{reactionEnabled:v,commentsEnabled:k,confettiEnabled:b,moreEnabled:g,moreButtonText:C,level:y}=t,T=c&&v&&g,G=c&&!v&&g,se=t.commentPlaceholder||"Have feedback? Send it our way.",Q=t.commentThanksText||"Thank you for your feedback!",K=A=>{if(d(A),r){r(t.id,A);return}if(i)try{i.send({kind:"SubmitAnnouncementReaction",announcementId:t.id,versionId:t.versionId,reaction:A},{batch:!0,handlesRejection:!0})}catch{d(null)}},z=async()=>{if(!u)return;const A=u.trim();if(A!==""){if(h(null),s){s(t.id,A),p(!0);return}if(i)try{i.send({kind:"SubmitAnnouncementComment",announcementId:t.id,versionId:t.versionId,comment:A},{batch:!0,handlesRejection:!0}),p(!0)}catch{p(!1)}}},oe=A=>{A.key==="Enter"&&!A.shiftKey&&(A.preventDefault(),z())};if(!v&&!k&&!T&&!G)return null;const P=y===B.TOAST&&!v&&g,V=T?e.createElement("button",{className:"userflowjs-tertiary-button",onClick:n},e.createElement("div",null,C||"Read more"),e.createElement("span",{className:"userflowjs-rtl-mirrored userflowjs-tertiary-button__icon"},e.createElement(S,{icon:Jn}))):null;return e.createElement("div",{className:D({"userflowjs-announcement-engagement":!0,"mb-8":y===B.TOAST})},v?e.createElement("div",{className:"userflowjs-announcement-engagement__reactions-row"},e.createElement("div",{className:"userflowjs-announcement-engagement__emoji-buttons"},pr.map(A=>e.createElement(br,{key:A.reaction,option:A,isSelected:E===A.reaction,confettiEnabled:b,confettiColors:o,onSelect:K}))),V&&e.createElement("div",{className:"userflowjs-announcement-engagement__more-inline"},V)):V&&e.createElement("div",{className:"userflowjs-announcement-more"},V),G&&l,k&&e.createElement("div",{className:D({"userflowjs-announcement-engagement__feedback":!0,"userflowjs-announcement-engagement__feedback--toast-padding":P??!1})},e.createElement("div",{className:"userflowjs-announcement-engagement__input-wrapper"},e.createElement("input",{type:"text",className:"userflowjs-announcement-engagement__input",placeholder:se,value:w?Q:u??"",onChange:A=>h(A.target.value||null),onKeyDown:oe,disabled:w,maxLength:vr}),!w&&e.createElement("button",{className:D({"userflowjs-announcement-engagement__send-button":!0,"userflowjs-announcement-engagement__send-button--active":u!==null&&u.trim()!==""}),onClick:z,disabled:u===null||u.trim()===""},e.createElement(S,{icon:Gn})))))},Dt=5,gr=async()=>(await ke(async()=>{const{ResourceCenterAssistantChat:t}=await import("./ResourceCenterAssistantChat.js");return{ResourceCenterAssistantChat:t}},__vite__mapDeps([6,1,2,3,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38]))).ResourceCenterAssistantChat,Ot=({session:t,isOpen:n,flowSession:r,checklistSession:s,resourceCenterLauncherHidden:o})=>{const c=L(),{t:l}=re(),{company:i}=t.flow,{version:E}=t,d=E.resourceCenter,u=ne(E.theme),h=d.launcherType??Ce.DEFAULT,w=a.useMemo(()=>h===Ce.CUSTOM?!1:o===!1?!0:o===!0?!1:h===Ce.DEFAULT,[h,o]),p=t.locale?t.locale.standardLocaleId:t.version.theme.languageId;a.useEffect(()=>{je.changeLanguage(p)},[p]);const{loaded:v}=jt(window,kt,u),[k,b]=a.useState(!1),g=v&&k,[C,y]=a.useState(Nt()),[T,G]=a.useState(St()),se=a.useCallback(()=>{y(Nt()),G(St())},[]);Mn(se);const{zIndex:Q,bringToFront:K}=_n(),[z,oe]=a.useState(null),[P,V]=a.useState(null),[A,Se]=a.useState(null),X=a.useRef(null),[ce,cn]=a.useState(null),[st,an]=a.useState(null),[ot,ln]=a.useState(null),[un,dn]=a.useState(0),[mn,fn]=a.useState(0),Ae=a.useCallback(()=>{P&&dn(Math.round(P?.offsetWidth||0)),fn(Math.round((A?.offsetHeight||0)+(ce?.offsetHeight||0)+(st?.offsetHeight||0)+(ot?.offsetHeight||0)))},[P,A,ce,st,ot]);a.useLayoutEffect(()=>{if(!z||typeof Oe!="function")return;const f=new Oe(()=>{Ae()});return f.observe(z,{childList:!0,attributes:!0,subtree:!0}),()=>{f.disconnect()}},[z,Ae]),a.useLayoutEffect(()=>{Ae()});const[ct,at]=a.useState(!1),Ie=a.useRef(),de=a.useCallback(()=>{at(!0),window.clearTimeout(Ie.current),Ie.current=window.setTimeout(()=>{at(!1)},u.resourceCenterTransitionDuration)},[u.resourceCenterTransitionDuration]);a.useEffect(()=>()=>{window.clearTimeout(Ie.current)},[]);const me=a.useCallback(()=>{K(),de(),c.openResourceCenter()},[K,c,de]),_e=a.useCallback(()=>{de(),c.closeResourceCenter()},[c,de]),[lt,J]=a.useState(!1);a.useEffect(()=>{if(lt){if(!hr())if(n){const f='button:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), input, textarea';let N=ce?.querySelector(".userflowjs-assistant-chat-input textarea")||ce?.querySelector(f)||A?.querySelector(f);if(N){const R=N.closest&&N.closest(".userflowjs-resource-center-checklist")||null;R?Dn(R):N.focus({preventScroll:!0})}}else P?.focus({preventScroll:!0});J(!1)}},[lt,n,ce,A,P]),a.useEffect(()=>{const f=z?.ownerDocument.defaultView;if(!n||!f)return;const N=R=>{R.key==="Escape"&&(_e(),J(!0))};return f.addEventListener("keydown",N),()=>f.removeEventListener("keydown",N)},[n,z,J,_e]);const[j,fe]=a.useState(()=>Pt(t,ae.getItem(`resourceCenterRoute:v1:${t.id}`))),F=a.useCallback((f,N)=>{fe(f);const R=Yt(f);R?ae.setItem(`resourceCenterRoute:v1:${t.id}`,R):ae.removeItem(`resourceCenterRoute:v1:${t.id}`),N?.detail===0&&J(!0)},[t.id]);a.useEffect(()=>{const f=ae.getItem(`resourceCenterRoute:v1:${t.id}`);fe(Pt(t,f))},[t]),a.useEffect(()=>{if(!t.draftMode||!j||!("block"in j)||!j.block)return;const f=d.blocks.find(N=>N.cvid===j.block.cvid);f?JSON.stringify(f)!==JSON.stringify(j.block)&&fe({...j,block:f}):fe(null),j.block},[t.draftMode,d,j]);const he=a.useMemo(()=>d.blocks.filter(f=>!(f.type===I.CHECKLIST&&!s||f.type===I.DIVIDER&&u.resourceCenterAutoDividers||f.hiddenWhenFlowsActive&&f.hiddenWhenFlowsActive.some(N=>N===r?.flow.id||N===s?.flow.id))),[d,r,s,u.resourceCenterAutoDividers]),Te=a.useMemo(()=>Jt(he),[he]),Re=a.useMemo(()=>!s||!d.blocks.some(f=>f.type===I.CHECKLIST)?0:yn(s),[d,s]),O=a.useMemo(()=>d.blocks.find(f=>f.type===I.CONTACT&&f.chatEnabled&&f.chatProvider),[d]),[hn,it]=a.useState(!1),we=a.useCallback(()=>{c.closeResourceCenter(),O&&O.chatProvider!==W.CUSTOM&&it(!0)},[c,O]),Ee=a.useCallback(()=>{it(!1)},[]),ut=a.useCallback(()=>{if(O)try{Pe[O.chatProvider].hide({block:O}),Ee()}catch(f){console.error(`Userflow.js: Error when hiding ${O.chatProvider}:`,f)}},[O,Ee]);a.useEffect(()=>{if(!O)return;Be.autoHide3pDisabled=!0;const f=Pe[O.chatProvider];try{const N=f.configure({block:O,onShow:we,onHide:Ee});return()=>{N()}}catch(N){console.error(`Userflow.js: Error when configuring ${O.chatProvider}:`,N);return}},[O,we,Ee]),a.useEffect(()=>{n&&ut()},[ut,n]);const _=on(t),pe=a.useMemo(()=>{if(!_)return null;if(_.boosterAnnouncement){const f=_.boosterAnnouncement;if(!f.seen&&(f.level===B.TOAST||f.level===B.MODAL))return f}return _.popoutAnnouncement&&!_.popoutAnnouncement.seen?_.popoutAnnouncement:null},[_]),dt=ne(pe?.theme||E.theme);jt(window,kt,w?void 0:dt);const be=a.useCallback((f,N,R,Y,ge)=>{const Et=()=>{rt(c,f)};return e.createElement(le.Provider,{value:{...R,data:f.data}},f.level===B.MODAL&&e.createElement(Xt,{session:R,open:me,navigate:F,block:N,announcement:f,onDismiss:Et}),(f.level===B.TOAST||f.level===B.POPOUT)&&e.createElement(Gt,{session:R,open:me,navigate:F,block:N,announcement:f,onDismiss:Et,isStandalonePopout:ge?.isStandalonePopout,rcPlacement:Y.resourceCenterPlacement}))},[c,me,F]),wn=(f,N,R)=>{const Y={...De(R),zIndex:yt(Rn),position:"fixed",top:0,left:0,width:"100vw",height:"100vh",pointerEvents:f.level===B.MODAL?"auto":"none"},ge={...t,data:{...t.data,...f.data||{}}};return e.createElement(le.Provider,{value:ge},e.createElement("div",{className:"userflowjs-theme-root",style:Y,id:"userflowjs-announcement-app"},be(f,N,ge,R,{isStandalonePopout:f.level===B.POPOUT})))},En=!!j&&(j.kind==="search"||j.kind==="flows"||j.kind==="knowledgeBase"),mt=j?.kind==="assistant"||j?.kind==="announcementList"||j?.kind==="announcementShow",xe=Math.min(mt?u.resourceCenterFullWidth:u.resourceCenterWidth,C-2*u.resourceCenterPaddingX),pn=540,bn=720,vn={zIndex:u.resourceCenterZIndex!=null?u.resourceCenterZIndex:n?Q:yt(Tn),position:g?void 0:"absolute",visibility:g&&!hn?void 0:"hidden"},gn={width:(n?xe:un)+"px",height:n?Math.min(En?pn:mt?bn:mn,T-2*u.resourceCenterPaddingY,u.resourceCenterMaxHeight==null?Number.MAX_VALUE:u.resourceCenterMaxHeight)+"px":void 0,display:!w&&!n?"none":void 0},[Cn,ft]=a.useState(!1),ht=()=>{me(),J(!0)},wt=u.resourceCenterDisplayChecklistProgress&&s&&Re>0?e.createElement("div",{"data-testid":"resource-center-launcher-badge",className:"userflowjs-resource-center-launcher-badge"},Re,e.createElement("div",{className:"userflowjs-a11y-only"},"uncompleted tasks")):null;let ve="",Le="";u.resourceCenterLauncherTextMode===pt.CHECKLIST_OVERRIDE&&s&&Re>0?ve=s.version.checklist?.launcherText||"Get Started":u.resourceCenterLauncherTextMode!==pt.NONE&&(Le=d.buttonText);const Me=pe?.level,kn=Me===B.MODAL||Me===B.TOAST||Me===B.POPOUT&&(h!==Ce.CUSTOM||o===!0);return!w&&!n&&pe&&_&&kn?wn(pe,_,dt):e.createElement(le.Provider,{value:t},e.createElement("div",{"data-testid":"resource-center-app",className:"userflowjs-resource-center-app userflowjs-theme-root",style:De(u),dir:je.dir()},e.createElement("div",{className:D({"userflowjs-resource-center":!0,"userflowjs-resource-center--fixed":!0,[`userflowjs-resource-center--placement-${u.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0}),style:vn},e.createElement("div",{className:"userflowjs-resource-center-frame-wrapper",onMouseEnter:()=>ft(!0),onMouseLeave:()=>ft(!1)},e.createElement(Je,{className:D({"userflowjs-resource-center-frame":!0,"userflowjs-resource-center-frame--animating":ct,"userflowjs-resource-center-frame--open":n,"userflowjs-resource-center-frame--closed":!n}),style:gn,stylesheet:Xe,theme:u,onStylesheetsLoad:b,title:"Resource center"},g&&e.createElement(e.Fragment,null,e.createElement("div",{ref:oe,className:D({"userflowjs-resource-center-frame-root":!0,[`userflowjs-resource-center-frame-root--placement-${u.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0,"userflowjs-resource-center-frame-root--animating":ct,"userflowjs-resource-center-frame-root--open":n,"userflowjs-resource-center-frame-root--closed":!n}),role:n?"dialog":void 0,"aria-label":n?d.headerText:void 0},w&&e.createElement("div",{className:"userflowjs-resource-center-launcher-container"},e.createElement("button",{ref:V,className:D({"userflowjs-resource-center-launcher-button":!0,"userflowjs-resource-center-launcher-button--hover":Cn}),onClick:ht,"aria-label":`Open ${d.headerText}`},wt,ve&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},ve),(wt||ve)&&e.createElement("div",{className:"userflowjs-resource-center-launcher-divider"}),Le&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},Le),e.createElement("div",{className:"userflowjs-resource-center-launcher-icon"},u.resourceCenterLauncherIconType===bt.PLAINTEXT?"?":u.resourceCenterLauncherIconType===bt.DEFAULT?e.createElement(cr,null):u.rcIconAsset&&u.rcIconAsset.assetUrl?e.createElement("img",{src:u.rcIconAsset.assetUrl,className:"company-icon",style:{height:`${u.rcIconSize}px`,width:`${u.rcIconSize}px`}}):e.createElement("span",null)))),e.createElement("div",{ref:X,className:"userflowjs-resource-center-body",style:{width:xe+"px"}},e.createElement("div",{ref:cn,className:D({"userflowjs-resource-center-body-content":!0,"userflowjs-resource-center-body-content--padding":j?.kind!=="assistant","userflowjs-resource-center-body-content--same-background":u.sameBackground,"userflowjs-resource-center-body-content--with-made-with-userflow":i.resourceCenterBranding})},n&&e.createElement(e.Fragment,null,j?j.kind==="search"?e.createElement(Cr,{session:t,navigate:F}):j.kind==="email"?e.createElement(kr,{block:j.block,session:t}):j.kind==="phone"?e.createElement(yr,{block:j.block,session:t}):j.kind==="flows"?e.createElement(jr,{block:j.block,initialQ:j.initialQ,session:t,navigate:F}):j.kind==="knowledgeBase"?e.createElement(Nr,{block:j.block,initialQ:j.initialQ,session:t,bodyRef:X}):j.kind==="subpage"?e.createElement(Sr,{block:j.block,session:t}):j.kind==="announcementList"||j.kind==="announcementShow"?e.createElement(Ar,{bodyRef:X,session:t,route:j,navigate:F}):j.kind==="assistant"?e.createElement(Tr,{block:j.block,initialUserContent:j.initialUserContent,session:t,navigate:F,chatBlock:O,onChatShow:we}):null:e.createElement(e.Fragment,null,he.map((f,N)=>{const R=ue[f.type],Y=he[N+1];return R?e.createElement(e.Fragment,{key:f.id},e.createElement(R.View,{session:t,flowSession:r,checklistSession:s,block:f,navigate:F,onChatShow:we}),Y&&Yn(u,f.type,Y.type)&&e.createElement("div",{className:"userflowjs-resource-center-divider"})):null}))))),i.resourceCenterBranding&&e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow"},e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow-content",ref:an},e.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+i.slug+"&utm_content=resource-center",target:"_blank",rel:"noopener noreferrer"},e.createElement(Bn,null),e.createElement("div",null,"Made with Userflow")))),t.draftMode&&e.createElement("div",{className:"userflowjs-resource-center-preview"},e.createElement("div",{ref:ln,className:"userflowjs-resource-center-preview-content"},e.createElement("div",{className:"userflowjs-resource-center-preview-text"},"Preview"),e.createElement("button",{className:"userflowjs-resource-center-preview-button",onClick:()=>{c.endFlow(t,{endReason:jn.USER_CLOSED})}},e.createElement(S,{icon:Ye})))),e.createElement("div",{className:"userflowjs-resource-center-header",style:{width:xe+"px"}},e.createElement("div",{ref:Se,className:"userflowjs-resource-center-header-content"},j==null?e.createElement("div",{className:"userflowjs-resource-center-header-text"},d.headerText):e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:f=>F(j?.kind==="announcementShow"?{kind:"announcementList",block:j.block}:null,f)},e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(S,{icon:Fn})),e.createElement("div",{className:"userflowjs-resource-center-icon-button__text"},l("resource_center.back"))),e.createElement("div",{className:"flex-1"}),Te.length>0&&e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:()=>{let f={kind:"search"};if(Te.length===1){const N=Te[0],R=ue[N.type];R.routeTo&&(f=R.routeTo({block:N}))}j?.kind==="search"?F(null):(x(c,t,null,"Search icon"),F(f))},"aria-label":"Search"},e.createElement(S,{icon:Un})),e.createElement("button",{className:"userflowjs-resource-center-icon-button userflowjs-resource-center-close-button",onClick:f=>{_e(),f.detail===0&&J(!0)},"aria-label":`Close ${d.headerText}`},e.createElement(S,{icon:zn}))))))),!n&&!r&&w&&_&&_.unreadAnnouncementCount>0&&e.createElement(qt,{theme:u,count:_.unreadAnnouncementCount,onClick:ht})),!n&&!r&&w&&_?.popoutAnnouncement&&be(_.popoutAnnouncement,_,t,u),!n&&!r&&w&&_?.boosterAnnouncement&&_.boosterAnnouncement.level===B.MODAL&&be(_.boosterAnnouncement,_,t,u),!n&&!r&&w&&_?.boosterAnnouncement&&_.boosterAnnouncement.level===B.TOAST&&be(_.boosterAnnouncement,_,t,u))))},qt=({theme:t,count:n,onClick:r,style:s})=>{const[o,c]=a.useState(!1);return e.createElement(Je,{className:D({"userflowjs-resource-center-launcher-unread-badge":!0}),noScroll:!0,style:{position:o?void 0:"absolute",visibility:o?void 0:"hidden",...s},stylesheet:Xe,theme:t,onStylesheetsLoad:c,title:"Resource center unread badge"},e.createElement(Zt,{count:n,onClick:r}))},Zt=({count:t,onClick:n})=>{let r=null;return t>9&&(t=9,r=e.createElement("span",{className:"userflowjs-unread-badge-plus"},"+")),e.createElement("div",{className:D({"userflowjs-unread-badge":!0,"userflowjs-unread-badge--clickable":!!n}),onClick:n},e.createElement("span",null,t),r)},Gt=({session:t,open:n,navigate:r,announcement:s,block:o,rcPlacement:c,onDismiss:l,isStandalonePopout:i})=>{const E=a.useRef(null),d=ne(s.theme),u=d.toastPlacement,h=!!o.boosterAnnouncement||i!==void 0&&s?.level===B.TOAST,w=u===c;let p=null,v=null;s&&(p=s.toastAutoDismiss??d.toastAutoDismiss,v=s.toastWidth?s.toastWidth:d.toastWidth);const k=L(),[b,g]=a.useState(!1),{height:C,setEl:y}=Zn();a.useEffect(()=>{const P=E.current;if(!P||p===null)return;const V=Date.now(),A=()=>{const X=1-(Date.now()-V)/(new $t(p||0).toNumber()*1e3);X<=0?(P.style.width="0%",s&&H(k,s)):(P.style.width=`${X*100}%`,requestAnimationFrame(A))};return requestAnimationFrame(A),()=>{P&&(P.style.width="0%")}},[E.current,p,k,s,H]);const T=l||(()=>{s&&H(k,s)}),G=20,se=a.useMemo(()=>CSS.supports("height: 100dvh")?"dvh":"vh",[]),Q=()=>{h&&s&&(H(k,s),x(k,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n())},K=()=>{s&&(H(k,s),x(k,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n())};if(!s)return null;const z=!!i&&!!c,oe=(i!==void 0||!w)&&!!u&&h;return e.createElement("div",{className:D({"userflowjs-resource-center-popout":!h,"userflowjs-resource-center-toast":h,[`userflowjs-resource-center-popout-standalone--${c?.toLowerCase()?.replace(/_/g,"-")}`]:z,[`userflowjs-resource-center-toast--${u?.toLowerCase()?.replace(/_/g,"-")}`]:oe}),style:De(d)},e.createElement(Je,{className:D({"userflowjs-resource-center-popout-frame":!0}),style:{height:`calc(min(${C}px, 100${se} - 2 * var(--userflow-resource-center-padding-y) - var(--userflow-resource-center-collapsed-height) - ${G}px)`,position:b?void 0:"absolute",visibility:b?void 0:"hidden",...v&&h?{width:v}:{}},stylesheet:Xe,theme:d,onStylesheetsLoad:g,title:"Resource center popout"},h&&e.createElement("div",{className:"userflowjs-bubble-progress--default"},e.createElement("div",{className:"userflowjs-bubble-progress__fill",ref:E})),e.createElement("div",{ref:y,className:"userflowjs-resource-center-popout-frame-root",style:{cursor:h?"pointer":"auto",padding:h&&d.toastPadding||void 0}},e.createElement("div",{onClick:Q},e.createElement("h2",{className:"userflowjs-announcement-title"},e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,s.title)),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},Ne(s.time))),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement($,{doc:s.content,buttons:s.buttons,lookupAttribute:M(s.data)})),!h&&e.createElement(ie,{announcement:s,onMoreClick:K,confettiColors:d.confettiColors},e.createElement("div",{className:"userflowjs-announcement-more"},e.createElement("button",{className:"userflowjs-tertiary-button",onClick:K},e.createElement("div",null,s.moreButtonText||"Read more"),e.createElement("span",{className:"userflowjs-rtl-mirrored userflowjs-tertiary-button__icon"},e.createElement(S,{icon:Ht})))))),h&&e.createElement(e.Fragment,null,!s.reactionEnabled&&s.moreEnabled&&e.createElement("div",{onClick:Q,className:"userflowjs-announcement-more--toast"},s.moreButtonText||"Read more"),e.createElement(ie,{announcement:s,onMoreClick:Q,confettiColors:d.confettiColors})),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:T,"aria-label":"Dismiss announcement"},e.createElement(S,{icon:Ye}))))),!h&&!i&&e.createElement("div",{className:"userflowjs-resource-center-popout-notch"}))},Xt=({session:t,open:n,navigate:r,announcement:s,block:o,onDismiss:c})=>{const l=L(),i=ne(s.theme),d=c||(()=>{H(l,s)}),u=()=>{H(l,s),x(l,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n()};return e.createElement(Kn,{company:t.flow.company,theme:i,position:"fixed",width:s.modalWidth,stepAppearance:Nn.MODAL,zIndex:i.checklistZIndex,autoHide3pEnabled:!0,onModalBackdropClick:d,noIframe:!0,isModalAnnouncement:!0},e.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content"},e.createElement("h1",null,s.title),e.createElement($,{doc:s.content,buttons:s.buttons,lookupAttribute:M(s.data)}),e.createElement(ie,{announcement:s,onMoreClick:u,confettiColors:i.confettiColors},e.createElement("div",{className:"userflowjs-announcement-more--modal"},e.createElement("button",{className:"userflowjs-bubble-button--primary",onClick:u},s.moreButtonText||"Read more")))),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:d,"aria-label":"Dismiss announcement"},e.createElement(S,{icon:Ye}))))};function Jt(t){return t.filter(n=>{const r=ue[n.type];return r.isSearchable?r.isSearchable(n):!!r.search})}const ue={[I.ACTION]:{View:t=>{const{block:n,session:r,flowSession:s,checklistSession:o}=t,c=L(),[l,i]=a.useState(!1),E=s?.id,d=o?.id;return a.useEffect(()=>{i(!1)},[E,d]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:l?void 0:()=>{x(c,r,n);const u=n.actions.find(h=>h.type===Sn.START_FLOW);u?u.otherFlow?.id!==o?.flow.id&&i(!0):c.closeResourceCenter(),xn(c,r,n.actions)},disabled:l},e.createElement(ee,{...t}),e.createElement(q,{...t}),l&&e.createElement(U,null))}},[I.ANNOUNCEMENTS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{x(o,r,n),s({kind:"announcementList",block:n},c)}},n.unreadAnnouncementCount>0?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(Zt,{count:n.unreadAnnouncementCount})):e.createElement(ee,{...t}),e.createElement(q,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:te})))}},[I.ASSISTANT]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L(),[c,l]=a.useState("");return n.assistantAppearance===An.INPUT?e.createElement("div",{className:"userflowjs-resource-center-assistant-block"},e.createElement(fr,{value:c,onChange:l,placeholder:Ge(n.name,{lookupAttribute:M(r.data)}),onSubmit:()=>{x(o,r,n),s({kind:"assistant",block:n,initialUserContent:c})}})):e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{x(o,r,n),s({kind:"assistant",block:n,initialUserContent:""})}},e.createElement(ee,{...t}),e.createElement(q,{...t}))}},[I.CHECKLIST]:{View:({checklistSession:t})=>e.createElement("div",{"data-testid":"resource-center-checklist",className:"userflowjs-resource-center-checklist"},e.createElement(On,{session:t}),e.createElement(qn,{draftMode:t.draftMode?"CHECKLIST PREVIEW":!1}))},[I.CONTACT]:{View:t=>{const{block:n,session:r,navigate:s,onChatShow:o}=t,c=L(),l=[];return n.emailEnabled&&l.push({icon:Wn,label:"Email",isRoute:!0,onClick:i=>{x(c,r,n,"Email"),s({kind:"email",block:n},i)}}),n.phoneEnabled&&l.push({icon:$n,label:"Phone",isRoute:!0,onClick:i=>{x(c,r,n,"Phone"),s({kind:"phone",block:n},i)}}),n.chatEnabled&&l.push({icon:Vn,label:"Live-chat",isRoute:!1,onClick:()=>{x(c,r,n,"Chat"),sn(r,n,o)}}),e.createElement("div",{className:D({"userflowjs-resource-center-block":!0,"userflowjs-resource-center-block--clickable":l.length===1}),onClick:l.length===1?l[0].onClick:void 0},l.length===1&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(S,{icon:l[0].icon})),e.createElement(q,{...t}),l.length>1&&l.map(({icon:i,label:E,onClick:d},u)=>e.createElement("button",{key:u,className:"userflowjs-resource-center-icon-button",onClick:d,"aria-label":E},e.createElement(S,{icon:i}))),l.length===1&&l[0].isRoute&&e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:te})))}},[I.DIVIDER]:{View:()=>e.createElement("div",{className:"userflowjs-resource-center-divider"})},[I.FLOWS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{x(o,r,n),s({kind:"flows",block:n},c)}},e.createElement(ee,{...t}),e.createElement(q,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:te})))},routeTo:({block:t,initialQ:n})=>({kind:"flows",block:t,initialQ:n}),isSearchable:t=>!!t.searchEnabled,search:async({client:t,session:n,block:r,q:s})=>{const{flows:o}=await t.send({kind:"ListResourceCenterBlockFlows",sessionId:n.id,blockCvid:r.cvid},{handlesRejection:!0}),c=en(o,s),l=c.slice(0,Dt);return{block:r,truncated:l.length===c.length,results:l.map(i=>({kind:"flow",flow:i}))}}},[I.KNOWLEDGE_BASE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{x(o,r,n),s({kind:"knowledgeBase",block:n},c)}},e.createElement(ee,{...t}),e.createElement(q,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:te})))},routeTo:({block:t,initialQ:n})=>({kind:"knowledgeBase",block:t,initialQ:n}),search:async({client:t,session:n,block:r,q:s})=>{const{truncated:o,articles:c}=await t.send({kind:"SearchKnowledgeBase",sessionId:n.id,blockCvid:r.cvid,q:s,offset:0,limit:Dt},{handlesRejection:!0});return{block:r,truncated:o,results:c.map(l=>({kind:"article",article:l}))}}},[I.MESSAGE]:{View:({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block"},e.createElement("div",{className:"userflowjs-resource-center-block-text userflowjs-bubble-content"},e.createElement($,{doc:t.content,lookupAttribute:M(n.data)})))},[I.SUBPAGE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=L();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{x(o,r,n),s({kind:"subpage",block:n},c)}},e.createElement(ee,{...t}),e.createElement(q,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:te})))}}},ee=({block:t})=>t.icon?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(S,{icon:t.icon,size:16})):null,q=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement(Z,{doc:t.name,lookupAttribute:M(n.data)}));function Yt(t){if(!t)return null;let n;"block"in t&&t.block!=null&&(n=t.block.cvid);const r={kind:t.kind,blockCvid:n};switch(t.kind){case"announcementShow":r.announcementId=t.announcementId;break}return JSON.stringify(r)}function Pt(t,n){if(!n)return null;const r=JSON.parse(n);let s;if(r.blockCvid&&(s=t.version.resourceCenter?.blocks.find(c=>c.cvid===r.blockCvid)),!s&&r.kind!=="search")return null;const o={kind:r.kind,block:s};switch(o.kind){case"announcementShow":o.announcementId=r.announcementId;break}return o}const Cr=({session:t,navigate:n})=>{const r=L(),s=t.version.resourceCenter.blocks,o=Jt(s),{t:c}=re(),l=a.useRef(null),[i,E]=a.useState(""),[d,u]=nt(i,E),[h,w]=a.useState(null);return a.useEffect(()=>{if(i.trim()===""){w(null);return}let p=!1;return(async()=>{w(null);const k=await Promise.all(s.map(async b=>{const{search:g}=ue[b.type];if(!g)return null;try{return await g({client:r,session:t,block:b,q:i})}catch(C){return console.error(`Userflow.js: Global search failed for ${b.type} block=`,b,"error=",C),null}}));p||w(k.filter(b=>b!=null&&b.results.length>0))})(),()=>{p=!0}},[r,t,s,i]),a.useEffect(()=>{l.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:l,className:"userflowjs-text-input",type:"text",value:d,onChange:p=>u(p.target.value),placeholder:c("resource_center.search_placeholder")})),i.trim()===""?e.createElement("div",{"data-testid":"resource-center-empty-query",className:"userflowjs-resource-center-list-route-error"},c("resource_center.search_in")," ",o.map((p,v)=>e.createElement(e.Fragment,{key:p.cvid},v>0&&(v===o.length-1?` ${c("and")} `:", "),e.createElement("b",null,e.createElement(Z,{doc:p.name,lookupAttribute:M(t.data)})))),"."):h?h.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},c("resource_center.no_results_found")):h.map(({block:p,truncated:v,results:k},b)=>{const g=ue[p.type],C=g.routeTo&&g.routeTo({block:p,initialQ:i});return e.createElement(e.Fragment,{key:p.cvid},b>0&&e.createElement("div",{className:"userflowjs-resource-center-divider"}),e.createElement("div",{className:"userflowjs-resource-center-label"},e.createElement(Z,{doc:p.name,lookupAttribute:M(t.data)})),k.map((y,T)=>y.kind==="flow"?e.createElement(tn,{key:y.flow.id,block:p,session:t,flow:y.flow,navigate:n}):y.kind==="article"?e.createElement(nn,{key:T,block:p,session:t,article:y.article}):null),!v&&C&&e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:y=>{x(r,t,p),n(C,y)}},e.createElement("div",{className:"userflowjs-resource-center-block-text"},c("more"),":"," ",e.createElement(Z,{doc:p.name,lookupAttribute:M(t.data)})),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:te}))))}):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,null)))},kr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement($,{doc:t.emailContent,lookupAttribute:M(n.data)})),yr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement($,{doc:t.phoneContent,lookupAttribute:M(n.data)})),jr=({block:t,initialQ:n,session:r,navigate:s})=>{const{t:o}=re(),c=a.useRef(null),[l,i]=a.useState(n||""),[E,d]=nt(l,i),{data:u,error:h}=Wt({message:{kind:"ListResourceCenterBlockFlows",sessionId:r.id,blockCvid:t.cvid}}),w=u?.flows,p=a.useMemo(()=>w?en(w,l):null,[w,l]);return a.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(Z,{doc:t.name,lookupAttribute:M(r.data)}))),t.searchEnabled&&e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:E,onChange:v=>d(v.target.value),placeholder:o("resource_center.search_placeholder")})),h?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.generic_error")):p?p.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):p.map(v=>e.createElement(tn,{key:v.id,block:t,session:r,flow:v,navigate:s})):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,{fadeIn:!0})))};function en(t,n){const r=n.toLowerCase().trim();return r===""?t:t.filter(s=>s.name.toLowerCase().includes(r))}const tn=({block:t,session:n,flow:r,navigate:s})=>{const o=L(),[c,l]=a.useState(!1);return a.useEffect(()=>{if(!c||r.type!==vt.CHECKLIST)return;const i=()=>{o.checklistSession?.flow.id===r.id&&(E(),s(null))},E=()=>{o.off("checklistChanged",i)};return o.on("checklistChanged",i),E},[o,c,r.type,r.id,s]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{if(x(o,n,t,r.name),o.checklistSession?.flow.id===r.id){s(null);return}o.startFlow({flowId:r.id,startReason:n.draftMode?gt.DRAFT:gt.RESOURCE_CENTER,replaceCurrent:!0}),l(!0);const i=Ge(r.url,{lookupAttribute:M(n.data)});i&&Ln(i)},disabled:c},r.iconSetting!==In.HIDE&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},r.icon?e.createElement(S,{icon:r.icon,size:16}):e.createElement(S,{icon:r.type===vt.CHECKLIST?"regular/tasks":"regular/shoe-prints",size:16})),n.draftMode&&!r.published&&e.createElement("div",{className:"userflowjs-resource-center-code-block"},e.createElement("div",{title:"Unpublished. Preview only"},e.createElement("code",null,"P"))),e.createElement("div",{className:"userflowjs-resource-center-block-text"},r.name),c&&e.createElement(U,null))},Nr=({block:t,initialQ:n,session:r,bodyRef:s})=>{const{t:o}=re(),c=a.useRef(null),[l,i]=a.useState(n||""),[E,d]=nt(l,i),{loading:u,loadingMore:h,data:w,messageForData:p,error:v,loadMore:k}=Wt({message:{kind:"SearchKnowledgeBase",sessionId:r.id,blockCvid:t.cvid,q:l,offset:0}}),b=w?.truncated,g=a.useCallback(()=>{k((y,T)=>({...T,offset:y.articles.length}),(y,T)=>({...T,articles:[...y.articles,...T.articles]}))},[k]);rn({bodyRef:s,loading:u,loadingMore:h,truncated:b,loadMoreHelper:g}),a.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]);let C=t.knowledgeBaseUrl||"";return C.match(/^https?:\/\//)||(C=`http://${C}`),C=Kt(C),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(Z,{doc:t.name,lookupAttribute:M(r.data)})),e.createElement("a",{className:"userflowjs-resource-center-icon-button",href:C,target:"_blank",rel:"noopener noreferrer"},e.createElement(S,{icon:Hn}))),e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:E,onChange:y=>d(y.target.value),placeholder:o("resource_center.search_placeholder")})),v?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},v.code==="quota_exceeded"?"Sorry, this company has reached its max number of searches. Consider asking Userflow to be moved to a dedicated search engine for a higher quota.":v.humanMessage||o("resource_center.generic_error")):u||!w?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,null)):w.articles.length===0?p?.q===""?null:e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):e.createElement(e.Fragment,null,p?.q===""&&e.createElement("div",{className:"userflowjs-resource-center-label"},o("resource_center.suggested_articles")),w.articles.map((y,T)=>e.createElement(nn,{key:T,block:t,session:r,article:y})),h&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,null))))},nn=({block:t,article:n,session:r})=>{const s=L();return e.createElement("a",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{x(s,r,t,n.title)},href:Kt(n.url),target:"_blank",rel:"noopener noreferrer"},e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(S,{icon:"regular/file-alt",size:16})),e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement("span",{dangerouslySetInnerHTML:{__html:n.htmlTitle}}),e.createElement("div",{className:"userflowjs-resource-center-block-subtext",dangerouslySetInnerHTML:{__html:n.htmlSnippet}})))},Sr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement($,{doc:t.content,lookupAttribute:M(n.data)})),Ar=({bodyRef:t,session:n,route:r,navigate:s})=>{const o=L(),[c,l]=a.useState(void 0);return a.useLayoutEffect(()=>{t.current&&c!=null&&r?.kind==="announcementList"&&(t.current.scrollTop=c)},[t,c,r?.kind]),!r||r?.kind!=="announcementList"&&r?.kind!=="announcementShow"?null:e.createElement(ar,null,r.kind==="announcementList"&&e.createElement(Ir,{bodyRef:t,session:n,block:r.block,onMoreClick:i=>{l(t.current?.scrollTop),x(o,n,r.block,i.title),s({kind:"announcementShow",block:r.block,announcementId:i.id})}}),r.kind==="announcementShow"&&e.createElement(_r,{announcementId:r.announcementId}))},Ir=({bodyRef:t,block:n,session:r,onMoreClick:s})=>{const{t:o}=re(),{announcements:c,error:l,loading:i,loadingMore:E,truncated:d,pageSize:u,loadMore:h}=tt(),[w,p]=a.useMemo(()=>{const k=[],b=[];if(c){let g=-1;for(const C of c)g++,g<u&&!C.seen&&C.level!==B.SILENT?k.push(C):b.push(C)}return[k,b]},[c,u]),v=w.length;return rn({bodyRef:t,loading:i,loadingMore:E,truncated:d,loadMoreHelper:h}),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(Z,{doc:n.name,lookupAttribute:M(r.data)}))),l?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.generic_error")):i?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,null)):c.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},je.exists("resource_center.no_announcements",{fallbackLng:[]})?o("resource_center.no_announcements"):o("resource_center.no_results_found")):e.createElement(e.Fragment,null,v>0&&e.createElement("div",{className:"userflowjs-announcement-unread-header"},o("resource_center.unread",{count:v})),w.map(k=>e.createElement(Ut,{key:k.id,bodyRef:t,announcement:k,onMoreClick:()=>s(k)})),w.length>0&&p.length>0&&e.createElement("div",{className:"userflowjs-announcement-seen-divider"}),p.map(k=>e.createElement(Ut,{key:k.id,bodyRef:t,announcement:k,onMoreClick:()=>s(k)})),E&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,null))))},Ft=new Set;function H(t,n){n.seen||Ft.has(n.id)||(Ft.add(n.id),rt(t,n))}const Ut=({bodyRef:t,onMoreClick:n,announcement:r})=>{const s=L(),o=zt(),c=ne(o.version.theme),l=a.useRef(null),{submitReaction:i,submitComment:E}=tt(),d=a.useRef(!1);return a.useEffect(()=>{if(d.current||r.seen)return;const u=new IntersectionObserver(w=>{const p=w[0];p&&p.isIntersecting&&(H(s,r),d.current=!0,h())},{root:t.current,threshold:1}),h=()=>{u.disconnect()};return u.observe(l.current),h},[t,s,r]),e.createElement("div",{className:"userflowjs-announcement-list-item"},e.createElement("div",{className:"userflowjs-announcement-time-divider"},e.createElement("div",{className:"userflowjs-announcement-time-divider-line"}),e.createElement("div",{className:"userflowjs-announcement-time-text"},Ne(r.time)),e.createElement("div",{className:"userflowjs-announcement-time-divider-line"})),e.createElement("h2",{ref:l,className:"userflowjs-announcement-title"},!r.seen&&r.level!==B.SILENT&&e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,r.title)),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(le.Provider,{value:{...o,data:r.data}},e.createElement($,{doc:r.content,buttons:r.buttons,lookupAttribute:M(r.data)}))),e.createElement(ie,{announcement:r,onMoreClick:n,confettiColors:c.confettiColors,onReactionChange:i,onCommentSubmit:E},e.createElement("div",{className:"userflowjs-announcement-more"},e.createElement("button",{className:"userflowjs-tertiary-button",onClick:n},e.createElement("div",null,r.moreButtonText||"Read more"),e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(S,{icon:Ht}))))))},_r=({announcementId:t})=>{const n=L(),r=zt(),s=ne(r.version.theme),[o,c]=a.useState(null),{fetchAnnouncement:l,loading:i,error:E,submitComment:d,submitReaction:u}=tt(),{t:h}=re();return a.useEffect(()=>{l(t).then(c)},[t]),a.useEffect(()=>{!o||o.seen||H(n,o)},[n,o]),i?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,null)):e.createElement(e.Fragment,null,E?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},E.humanMessage||h("resource_center.generic_error")):i||!o?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(U,null)):e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-announcement-show"},e.createElement("h2",{className:"userflowjs-announcement-title"},o.title),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},Ne(o.time))),e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(le.Provider,{value:{...r,data:o.data}},e.createElement($,{doc:o.content,buttons:o.buttons,lookupAttribute:M(o.data)}),o.moreEnabled&&e.createElement($,{doc:o.moreContent,buttons:o.moreButtons,lookupAttribute:M(o.data)}))),e.createElement(ie,{announcement:o,confettiColors:s.confettiColors,showMoreButton:!1,onCommentSubmit:d,onReactionChange:u}))))},Tr=({block:t,initialUserContent:n,session:r,navigate:s,onChatShow:o})=>{const c=t.assistantFlowId,l=L(),[i,E]=a.useState(null),[d,u]=a.useState(null),[h,w]=a.useState(null),[p]=a.useState(n);a.useEffect(()=>{n&&s({kind:"assistant",block:t,initialUserContent:""})},[n,t,s]),a.useEffect(()=>{let k=!1;return(async()=>{try{const g=ae.getItem("assistantConversationId:"+c),[C,y]=await Promise.all([gr(),l.send({kind:"GetAssistant",assistantFlowId:c,conversationId:g},{handlesRejection:!0,endBatch:!0})]);if(k)return;E(()=>C),u(y)}catch(g){console.error("Resource center assistant route failed to load:",g),w(g.humanMessage||"Sorry, something went wrong. Please try again or contact my human friends.")}})(),()=>{k=!0}},[l,c]);const v=a.useMemo(()=>{if(!t.assistantContactEnabled)return;const k=r.version.resourceCenter?.blocks.find(b=>b.type===I.CONTACT);if(k)return()=>{switch(x(l,r,t,t.assistantContactButtonText||void 0),t.assistantContactMethod){case Ct.EMAIL:s({kind:"email",block:k});break;case Ct.PHONE:s({kind:"phone",block:k});break;default:s(null),sn(r,k,o);break}}},[l,r,t,o,s]);return h?e.createElement("div",{className:"userflowjs-assistant-chat"},e.createElement("div",{className:"userflowjs-assistant-chat__content"},e.createElement("div",{className:"userflowjs-assistant-chat__error"},h))):!i||!d?e.createElement(U,{center:!0,fadeIn:!0}):e.createElement(i,{block:t,session:r,assistantReply:d,initialUserContent:p,onContactClick:v,contactButtonText:t.assistantContactButtonText||void 0})};function x(t,n,r,s){t.send({kind:"ClickResourceCenter",sessionId:n.id,description:r?Ge(r.name,{lookupAttribute:M(n.data)})+(s?` - ${s}`:""):s},{batch:!0})}function rn({bodyRef:t,loading:n,loadingMore:r,truncated:s,loadMoreHelper:o}){a.useEffect(()=>{const c=t.current;if(!c||n||r||s)return;const l=()=>{c.scrollHeight-c.clientHeight-c.scrollTop>400||o()};return c.addEventListener("scroll",l),()=>{c.removeEventListener("scroll",l)}},[t,n,r,s,o])}function sn(t,n,r){if(n.chatProvider){const s=Pe[n.chatProvider];try{s.show({block:n})}catch(o){console.error(`Userflow.js: Error when showing ${n.chatProvider}:`,o)}r()}else t.draftMode&&window.alert("You have not selected a chat provider. Go to the resource center builder in Userflow. Click the Contact block. Pick a chat provider in the side panel.")}function rt(t,n){t.setResourceCenterSession(r=>r?{...r,version:{...r.version,resourceCenter:{...r.version.resourceCenter,blocks:r.version.resourceCenter.blocks.map(s=>s.type===I.ANNOUNCEMENTS?{...s,unreadAnnouncementCount:n.level===B.SILENT?s.unreadAnnouncementCount:s.unreadAnnouncementCount-1,popoutAnnouncement:s.popoutAnnouncement?.id===n.id?null:s.popoutAnnouncement,boosterAnnouncement:s.boosterAnnouncement?.id===n.id?null:s.boosterAnnouncement}:s)}}}:null),t.send({kind:"MarkAnnouncementSeen",announcementId:n.id,versionId:n.versionId}),t.toggleUI()}function on(t){return t?.version.resourceCenter?.blocks.find(n=>n.type===I.ANNOUNCEMENTS)||null}function Ne(t){const n=t?new Date(t):new Date;let r=new Intl.DateTimeFormat(je.language,{weekday:"long",day:"numeric",month:"short",year:n.getFullYear()===new Date().getFullYear()?void 0:"numeric"}).format(n);return r.substring(0,1).toUpperCase()+r.substring(1)}const es=Object.freeze(Object.defineProperty({__proto__:null,FloatingAnnouncements:Gt,LauncherUnreadBadge:qt,ModalAnnouncement:Xt,ResourceCenterApp:Ot,default:Ot,formatAnnouncementTime:Ne,getAnnouncementsBlock:on,markAnnouncementSeen:H,serializeRoute:Yt,syncAnnouncementSeen:rt},Symbol.toStringTag,{value:"Module"}));export{ie as A,mr as G,qt as L,es as R,fr as a,Kt as d,Ne as f,H as m,Yt as s};
5
5
  //# sourceMappingURL=ResourceCenterApp.js.map