userflow.js-self-hosted 0.1.1008940 → 0.1.1008964

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/BannerApp.js CHANGED
@@ -1,2 +1,2 @@
1
- import{r,R as a}from"./vendor.react.js";import{i as s,E as A}from"./userflow.js";import{u as D,i as v}from"./client-context.js";import{o as R}from"./vendor.obj-str.js";import{u as x,a as C,D as O}from"./stylesheets.js";import{a as $}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{S as P,b as W,R as Y,B as z}from"./bubble-frame.styl.js";import{f as i,b as U}from"./flow-condition-types.js";import{f as H,w as K}from"./flow-host.styl.js";import{u as Z}from"./use-selector-element-monitoring.js";import{r as q}from"./vendor.react-dom.js";import{F as G}from"./use-window-resize.js";import{u as J}from"./use-element-rect.js";import"./vendor.html-parse-stringify2.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.date-fns.js";import"./vendor.scheduler.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},d=new Error().stack;d&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[d]="5925f3e7-73fe-4b53-add2-e99dc22979fd",n._sentryDebugIdIdentifier="sentry-dbid-5925f3e7-73fe-4b53-add2-e99dc22979fd")}catch{}})();const Se=({session:n})=>{const d=D(),{version:c}=n,e=c.banner,p=x(c.theme),g=n.locale?n.locale.standardLocaleId:n.version.theme.languageId;r.useEffect(()=>{v.changeLanguage(g)},[g]);const t=r.useMemo(()=>document.createElement("div"),[]),[k,w]=r.useState(!1),{loaded:T}=C(window,H,p),[I,h]=r.useState(!1),E=T&&I,[M,B]=r.useState(0),u=r.useCallback(()=>{h(!1),B(o=>o+1)},[]),f=![s.BODY_FIRST,s.BODY_LAST].includes(e.embedMode),[l,S]=r.useState(null),F=r.useCallback(({targetEl:o})=>{S(o)},[]),N=r.useCallback(()=>{f&&console.warn(`Userflow.js: Could not find embed element for banner "${n.flow.name||n.flow.id}"`),S(null)},[f,n.flow.name,n.flow.id]);Z({selector:e.embedSelector,targetMoved:F,targetLost:N});const b=r.useCallback(()=>{t.parentElement?.removeChild(t),w(!1),u()},[t,u]);r.useLayoutEffect(()=>{let o=null,m=null;if(f){if(!l){b();return}(e.overlay||e.sticky)&&(e.embedMode===s.ELEMENT_BEFORE||e.embedMode===s.ELEMENT_AFTER?m=l.parentElement:m=l,window.getComputedStyle(m).position==="static"&&(o=m.style.position,m.style.position="relative"))}switch(e.embedMode){case s.BODY_FIRST:document.body.insertAdjacentElement("afterbegin",t);break;case s.BODY_LAST:document.body.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_FIRST:l.insertAdjacentElement("afterbegin",t);break;case s.ELEMENT_LAST:l.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_BEFORE:l.insertAdjacentElement("beforebegin",t);break;case s.ELEMENT_AFTER:l.insertAdjacentElement("afterend",t);break}return w(!0),u(),()=>{m&&o!=null&&(m.style.position=o)}},[b,t,f,l,e.overlay,e.sticky,e.embedMode,u]),r.useLayoutEffect(()=>b,[b]);const L=R({"userflowjs-banner":!0,[`userflowjs-banner--animate-${String(e.animate)}`]:!0,[`userflowjs-banner--embed-mode-${e.embedMode}`]:!0,[`userflowjs-banner--sticky-${String(e.sticky)}`]:!0,[`userflowjs-banner--overlay-${e.overlay}`]:!0});r.useLayoutEffect(()=>{t.className=L||""},[t,L]);const y=e.zIndex||K(0);r.useLayoutEffect(()=>{t.style.zIndex=y==null?"":String(y),t.style.position=E?"":"absolute",t.style.visibility=E?"":"hidden"},[t,y,E]);const{height:j,setEl:_}=J();return r.useLayoutEffect(()=>{t.style.setProperty("--userflowjs-banner-height",i(j+(e.marginTop||0)+(e.marginBottom||0))||"")},[t,j,e.marginTop,e.marginBottom]),k?q.createPortal(a.createElement(P.Provider,{value:n},a.createElement(G,{key:M,className:"userflowjs-banner-frame",style:{maxWidth:i(e.maxWidth),marginTop:i(e.marginTop),marginRight:i(e.marginRight),marginBottom:i(e.marginBottom),marginLeft:i(e.marginLeft),borderRadius:i(e.borderRadius)},stylesheet:W,theme:p,onStylesheetsLoad:h,title:"Banner"},a.createElement("div",{ref:_,className:R({"userflowjs-banner-root":!0,[`userflowjs-banner-root--content-layout-${e.contentLayout}`]:!0,"userflowjs-theme-root":!0}),dir:v.dir()},a.createElement("div",{className:"userflowjs-banner-start-spacer"}),a.createElement("div",{className:"userflowjs-banner-inner",style:{maxWidth:i(e.maxContentWidth)}},a.createElement("div",{className:"userflowjs-banner-content"},a.createElement(Y,{doc:e.content,lookupAttribute:U(n.data)})),e.buttons.length>0&&a.createElement("div",{className:"userflowjs-banner-buttons"},e.buttons.map(o=>a.createElement(z,{key:o.id,button:o})))),c.closeDisabled?a.createElement("div",{className:"userflowjs-banner-start-spacer"}):a.createElement("button",{"data-testid":"userflow-banner-dismiss",className:"userflowjs-banner-close",onClick:()=>d.endFlow(n,{endReason:A.USER_CLOSED})},a.createElement(O,{icon:$}))))),t):null};export{Se as BannerApp,Se as default};
1
+ import{r,R as a}from"./vendor.react.js";import{i as s,E as A}from"./userflow.js";import{u as D,i as v}from"./client-context.js";import{o as R}from"./vendor.obj-str.js";import{u as x,a as C,D as O}from"./stylesheets.js";import{a as $}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{S as P,b as W,R as Y,B as z}from"./bubble-frame.styl.js";import{f as i,b as U}from"./flow-condition-types.js";import{f as H,w as K}from"./flow-host.styl.js";import{u as Z}from"./use-selector-element-monitoring.js";import{r as q}from"./vendor.react-dom.js";import{F as G}from"./use-window-resize.js";import{u as J}from"./use-element-rect.js";import"./vendor.core-js.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.date-fns.js";import"./vendor.scheduler.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},d=new Error().stack;d&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[d]="4ca87934-217b-4565-9940-59b1c119dc7f",n._sentryDebugIdIdentifier="sentry-dbid-4ca87934-217b-4565-9940-59b1c119dc7f")}catch{}})();const Se=({session:n})=>{const d=D(),{version:c}=n,e=c.banner,p=x(c.theme),g=n.locale?n.locale.standardLocaleId:n.version.theme.languageId;r.useEffect(()=>{v.changeLanguage(g)},[g]);const t=r.useMemo(()=>document.createElement("div"),[]),[k,w]=r.useState(!1),{loaded:T}=C(window,H,p),[I,h]=r.useState(!1),E=T&&I,[M,B]=r.useState(0),u=r.useCallback(()=>{h(!1),B(o=>o+1)},[]),f=![s.BODY_FIRST,s.BODY_LAST].includes(e.embedMode),[l,S]=r.useState(null),F=r.useCallback(({targetEl:o})=>{S(o)},[]),N=r.useCallback(()=>{f&&console.warn(`Userflow.js: Could not find embed element for banner "${n.flow.name||n.flow.id}"`),S(null)},[f,n.flow.name,n.flow.id]);Z({selector:e.embedSelector,targetMoved:F,targetLost:N});const b=r.useCallback(()=>{t.parentElement?.removeChild(t),w(!1),u()},[t,u]);r.useLayoutEffect(()=>{let o=null,m=null;if(f){if(!l){b();return}(e.overlay||e.sticky)&&(e.embedMode===s.ELEMENT_BEFORE||e.embedMode===s.ELEMENT_AFTER?m=l.parentElement:m=l,window.getComputedStyle(m).position==="static"&&(o=m.style.position,m.style.position="relative"))}switch(e.embedMode){case s.BODY_FIRST:document.body.insertAdjacentElement("afterbegin",t);break;case s.BODY_LAST:document.body.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_FIRST:l.insertAdjacentElement("afterbegin",t);break;case s.ELEMENT_LAST:l.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_BEFORE:l.insertAdjacentElement("beforebegin",t);break;case s.ELEMENT_AFTER:l.insertAdjacentElement("afterend",t);break}return w(!0),u(),()=>{m&&o!=null&&(m.style.position=o)}},[b,t,f,l,e.overlay,e.sticky,e.embedMode,u]),r.useLayoutEffect(()=>b,[b]);const L=R({"userflowjs-banner":!0,[`userflowjs-banner--animate-${String(e.animate)}`]:!0,[`userflowjs-banner--embed-mode-${e.embedMode}`]:!0,[`userflowjs-banner--sticky-${String(e.sticky)}`]:!0,[`userflowjs-banner--overlay-${e.overlay}`]:!0});r.useLayoutEffect(()=>{t.className=L||""},[t,L]);const y=e.zIndex||K(0);r.useLayoutEffect(()=>{t.style.zIndex=y==null?"":String(y),t.style.position=E?"":"absolute",t.style.visibility=E?"":"hidden"},[t,y,E]);const{height:j,setEl:_}=J();return r.useLayoutEffect(()=>{t.style.setProperty("--userflowjs-banner-height",i(j+(e.marginTop||0)+(e.marginBottom||0))||"")},[t,j,e.marginTop,e.marginBottom]),k?q.createPortal(a.createElement(P.Provider,{value:n},a.createElement(G,{key:M,className:"userflowjs-banner-frame",style:{maxWidth:i(e.maxWidth),marginTop:i(e.marginTop),marginRight:i(e.marginRight),marginBottom:i(e.marginBottom),marginLeft:i(e.marginLeft),borderRadius:i(e.borderRadius)},stylesheet:W,theme:p,onStylesheetsLoad:h,title:"Banner"},a.createElement("div",{ref:_,className:R({"userflowjs-banner-root":!0,[`userflowjs-banner-root--content-layout-${e.contentLayout}`]:!0,"userflowjs-theme-root":!0}),dir:v.dir()},a.createElement("div",{className:"userflowjs-banner-start-spacer"}),a.createElement("div",{className:"userflowjs-banner-inner",style:{maxWidth:i(e.maxContentWidth)}},a.createElement("div",{className:"userflowjs-banner-content"},a.createElement(Y,{doc:e.content,lookupAttribute:U(n.data)})),e.buttons.length>0&&a.createElement("div",{className:"userflowjs-banner-buttons"},e.buttons.map(o=>a.createElement(z,{key:o.id,button:o})))),c.closeDisabled?a.createElement("div",{className:"userflowjs-banner-start-spacer"}):a.createElement("button",{"data-testid":"userflow-banner-dismiss",className:"userflowjs-banner-close",onClick:()=>d.endFlow(n,{endReason:A.USER_CLOSED})},a.createElement(O,{icon:$}))))),t):null};export{Se as BannerApp,Se as default};
2
2
  //# sourceMappingURL=BannerApp.js.map
package/BubbleToolbar.js CHANGED
@@ -1,2 +1,2 @@
1
- import{m as b,n as i,d as c,a as u}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{R as e}from"./vendor.react.js";import{D as o}from"./stylesheets.js";import"./vendor.html-parse-stringify2.js";import{u as m}from"./vendor.react-i18next.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},a=new Error().stack;a&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[a]="0b975459-178f-4d3c-859b-df565f917637",t._sentryDebugIdIdentifier="sentry-dbid-0b975459-178f-4d3c-859b-df565f917637")}catch{}})();const E=({draftMode:t,muted:a,toggleMuted:n,close:l,minimize:r})=>{const{t:s}=m();return e.createElement("div",{className:"userflowjs-bubble-toolbar"},t&&e.createElement("div",{className:"userflowjs-bubble-draft"},typeof t=="string"?t:"Preview"),n&&e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:n,"aria-label":a?"Unmute":"Mute"},a?e.createElement(o,{icon:b}):e.createElement(o,{icon:i})),r&&e.createElement("button",{"data-testid":"minimize-button",className:"userflowjs-bubble-toolbar-button",onClick:r,"aria-label":"Minimize checklist"},e.createElement(o,{icon:c})),l&&e.createElement("button",{"data-testid":"close-button",className:"userflowjs-bubble-toolbar-button",onClick:l,"aria-label":s("menu.close")},e.createElement(o,{icon:u})))};export{E as B};
1
+ import{m as b,n as c,d as i,a as u}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{R as e}from"./vendor.react.js";import{D as o}from"./stylesheets.js";import"./vendor.core-js.js";import{u as m}from"./vendor.react-i18next.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},a=new Error().stack;a&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[a]="b9895b36-9043-43c1-8943-a9ffbfd7bce6",t._sentryDebugIdIdentifier="sentry-dbid-b9895b36-9043-43c1-8943-a9ffbfd7bce6")}catch{}})();const E=({draftMode:t,muted:a,toggleMuted:n,close:l,minimize:r})=>{const{t:s}=m();return e.createElement("div",{className:"userflowjs-bubble-toolbar"},t&&e.createElement("div",{className:"userflowjs-bubble-draft"},typeof t=="string"?t:"Preview"),n&&e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:n,"aria-label":a?"Unmute":"Mute"},a?e.createElement(o,{icon:b}):e.createElement(o,{icon:c})),r&&e.createElement("button",{"data-testid":"minimize-button",className:"userflowjs-bubble-toolbar-button",onClick:r,"aria-label":"Minimize checklist"},e.createElement(o,{icon:i})),l&&e.createElement("button",{"data-testid":"close-button",className:"userflowjs-bubble-toolbar-button",onClick:l,"aria-label":s("menu.close")},e.createElement(o,{icon:u})))};export{E as B};
2
2
  //# sourceMappingURL=BubbleToolbar.js.map
package/BuilderBar.js CHANGED
@@ -1,2 +1,2 @@
1
- import{R as e,r as t}from"./vendor.react.js";import{u as I,F as v}from"./use-window-resize.js";import{S as F}from"./logomark.js";import{o as L}from"./vendor.obj-str.js";import{f as k,a as B}from"./vendor.fortawesome.pro-light-svg-icons.js";import{n as b}from"./userflow.js";import{a as D,D as N}from"./stylesheets.js";import"./vendor.html-parse-stringify2.js";(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[n]="18709ad3-5fe6-4c9a-bccb-9b4727f2164e",r._sentryDebugIdIdentifier="sentry-dbid-18709ad3-5fe6-4c9a-bccb-9b4727f2164e")}catch{}})();const _=new URL("builder-ui-host.css",import.meta.url).href,P=new URL("builder-ui-frame.css",import.meta.url).href,p="builderBarPos",O=e.forwardRef(({onReadyChange:r,children:n,buttons:u},y)=>{const{loaded:h}=D(window,_),[E,S]=t.useState(!1),o=h&&E,m=t.useRef(!1);t.useEffect(()=>{o&&!m.current&&r&&(m.current=!0,r(!0))},[o,r]);const i=t.useRef(null),[s,g]=t.useState(null),[l,w]=t.useState(()=>b.getItem(p)==="top"?"top":"bottom"),R=t.useCallback(a=>{w(a),b.setItem(p,a)},[]),f=t.useRef(0),d=t.useCallback(()=>{const a=i.current;if(!a||!s||!o)return;const c=s.clientHeight;c!==f.current&&(f.current=c,a.style.setProperty("height",c+"px","important"))},[o,s]);return t.useLayoutEffect(()=>{d()}),I(d),t.useImperativeHandle(y,()=>({getFrame:()=>i.current,getRootEl:()=>s}),[s]),e.createElement(e.Fragment,null,e.createElement(v,{className:L({"userflowjs-builder-bar":!0,"userflowjs-builder-bar--top":l==="top"}),style:{visibility:o?void 0:"hidden",animation:o?void 0:"none"},elRef:i,stylesheet:P,onStylesheetsLoad:S,title:"Builder bar"},o&&e.createElement("div",{className:"root",ref:g},e.createElement("div",{className:"logomark"},e.createElement(F,null)),e.createElement("div",{className:"main"},n),e.createElement("div",{className:"buttons"},u,e.createElement("button",{key:l,className:"btn btn--square btn--plain-on-dark",onClick:()=>R(l==="top"?"bottom":"top")},e.createElement(N,{icon:l==="top"?k:B,size:20}))))))});export{O as B};
1
+ import{R as e,r as t}from"./vendor.react.js";import{u as I,F as v}from"./use-window-resize.js";import{S as F}from"./logomark.js";import{o as L}from"./vendor.obj-str.js";import{f as k,a as B}from"./vendor.fortawesome.pro-light-svg-icons.js";import{n as b}from"./userflow.js";import{a as D,D as N}from"./stylesheets.js";import"./vendor.core-js.js";(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[n]="e688a670-1998-44f2-9176-639152e7425b",r._sentryDebugIdIdentifier="sentry-dbid-e688a670-1998-44f2-9176-639152e7425b")}catch{}})();const _=new URL("builder-ui-host.css",import.meta.url).href,P=new URL("builder-ui-frame.css",import.meta.url).href,p="builderBarPos",O=e.forwardRef(({onReadyChange:r,children:n,buttons:m},y)=>{const{loaded:h}=D(window,_),[E,S]=t.useState(!1),o=h&&E,c=t.useRef(!1);t.useEffect(()=>{o&&!c.current&&r&&(c.current=!0,r(!0))},[o,r]);const i=t.useRef(null),[s,g]=t.useState(null),[l,w]=t.useState(()=>b.getItem(p)==="top"?"top":"bottom"),R=t.useCallback(a=>{w(a),b.setItem(p,a)},[]),f=t.useRef(0),d=t.useCallback(()=>{const a=i.current;if(!a||!s||!o)return;const u=s.clientHeight;u!==f.current&&(f.current=u,a.style.setProperty("height",u+"px","important"))},[o,s]);return t.useLayoutEffect(()=>{d()}),I(d),t.useImperativeHandle(y,()=>({getFrame:()=>i.current,getRootEl:()=>s}),[s]),e.createElement(e.Fragment,null,e.createElement(v,{className:L({"userflowjs-builder-bar":!0,"userflowjs-builder-bar--top":l==="top"}),style:{visibility:o?void 0:"hidden",animation:o?void 0:"none"},elRef:i,stylesheet:P,onStylesheetsLoad:S,title:"Builder bar"},o&&e.createElement("div",{className:"root",ref:g},e.createElement("div",{className:"logomark"},e.createElement(F,null)),e.createElement("div",{className:"main"},n),e.createElement("div",{className:"buttons"},m,e.createElement("button",{key:l,className:"btn btn--square btn--plain-on-dark",onClick:()=>R(l==="top"?"bottom":"top")},e.createElement(N,{icon:l==="top"?k:B,size:20}))))))});export{O as B};
2
2
  //# sourceMappingURL=BuilderBar.js.map
package/ChecklistApp.js CHANGED
@@ -1,2 +1,2 @@
1
- import{r as s,R as c}from"./vendor.react.js";import{q as k,p as R,k as F,g as B}from"./userflow.js";import{F as _}from"./FlowChrome.js";import{i as N,u as C}from"./client-context.js";import{f as D,w as P,C as j,S as U}from"./flow-host.styl.js";import{a as A,D as H,u as I}from"./stylesheets.js";import{F as O}from"./use-window-resize.js";import{o as Z}from"./vendor.obj-str.js";import{z}from"./flow-condition-types.js";import{l as W}from"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.html-parse-stringify2.js";import{u as X}from"./vendor.react-i18next.js";import{C as M}from"./ChecklistUI.js";import{B as Y}from"./BubbleToolbar.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./bubble-frame.styl.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./logomark.js";import"./use-selector-element-monitoring.js";import"./vendor.i18next.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./vendor.date-fns.js";import"./vendor.babel.runtime.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="3970f19f-809c-4d08-9df4-c2c9fa7abc83",t._sentryDebugIdIdentifier="sentry-dbid-3970f19f-809c-4d08-9df4-c2c9fa7abc83")}catch{}})();const G=new URL("checklist-launcher-frame.css",import.meta.url).href,K=({position:t,theme:e,onClick:l,onVisibleChange:r,buttonRef:a,text:u,uncompletedCount:o})=>{const d=t||"absolute",{i18n:n}=X(),m=n.dir(),{loaded:i}=A(window,D,e),[h,b]=s.useState(!1),f=i&&h;s.useEffect(()=>{r&&r(f)},[r,f]);const w=s.useRef(null),L=s.useRef(0),[v,S]=s.useState(null);s.useLayoutEffect(()=>{const E=w.current;if(!E||!v)return;const y=v.clientWidth;y!==L.current&&(L.current=y,E.style.setProperty("width",z(y)+"px","important"),E.style.setProperty("height",e.checklistLauncherHeight+"px","important"))});const p=e.checklistLauncherPlacement,x=p===k.TOP_LEFT||p===k.TOP_RIGHT,g=p===k.TOP_LEFT||p===k.BOTTOM_LEFT,T={zIndex:d==="fixed"?e.checklistZIndex!=null?e.checklistZIndex:P(j):1,top:x?e.checklistLauncherY+"px":void 0,bottom:x?void 0:e.checklistLauncherY+"px",[m==="ltr"?"left":"right"]:g?e.checklistLauncherX+"px":void 0,[m==="ltr"?"right":"left"]:g?void 0:e.checklistLauncherX+"px",height:e.checklistLauncherHeight+"px",borderRadius:e.checklistLauncherBorderRadius+"px",position:f?void 0:"absolute",visibility:f?void 0:"hidden",animation:f?void 0:"none"};return c.createElement(O,{elRef:w,testId:"checklist-launcher-app",className:Z({"userflowjs-checklist-launcher":!0,[`userflowjs-checklist-launcher--position-${d}`]:!0}),style:T,stylesheet:G,theme:e,onStylesheetsLoad:b,title:"Checklist launcher"},c.createElement("button",{ref:a,className:"userflowjs-checklist-launcher-frame-root",onClick:l},c.createElement("div",{ref:S,className:"userflowjs-checklist-launcher-content"},c.createElement("div",{className:"userflowjs-checklist-launcher-text"},u||"Get Started"),c.createElement("div",{"data-testid":"checklist-launcher-uncompleted-count",className:"userflowjs-checklist-launcher-uncompleted-count"},o===0?c.createElement(H,{icon:W}):o,c.createElement("div",{className:"userflowjs-a11y-only"},"uncompleted tasks")))))},xe=({session:t,checklistExpanded:e})=>{const{version:l}=t,r=l.checklist,a=t.locale?t.locale.standardLocaleId:t.version.theme.languageId;s.useEffect(()=>{N.changeLanguage(a)},[a]);const[u,o]=s.useState(!1);return e?c.createElement(q,{session:t,initialAutoFocus:u,setInitialAutoFocus:o}):r.launcherEnabled?c.createElement(V,{session:t,initialAutoFocus:u,setInitialAutoFocus:o}):null},q=({session:t,initialAutoFocus:e,setInitialAutoFocus:l})=>{const r=C(),[a,u]=s.useState(null),{version:o}=t,d=o.checklist,n=I(o.theme),m=s.useMemo(()=>({...n,avatarType:R.NONE,bubblePlacement:n.checklistPlacement,bubbleX:n.checklistX,bubbleY:n.checklistY,bubbleWidth:n.checklistWidth}),[n]);return s.useEffect(()=>{const i=a?.ownerDocument.defaultView;if(!i)return;const h=b=>{b.key==="Escape"&&(l(!0),r.hideChecklist())};return i.addEventListener("keydown",h),()=>i.removeEventListener("keydown",h)},[a,l,r]),c.createElement(U,null,c.createElement(_,{company:t.flow.company,theme:m,position:"fixed",stepAppearance:F.BUBBLE,zIndex:n.checklistZIndex,autoHide3pEnabled:!0,backgroundImageUrl:d.backgroundAsset&&d.backgroundAsset.assetUrl,bubbleFrameRootRef:u},c.createElement("div",{role:"dialog","aria-label":"Checklist"},c.createElement(M,{session:t,initialAutoFocus:e}),c.createElement(Y,{draftMode:t.draftMode,minimize:i=>{l(i.detail===0),r.hideChecklist()}}))))},V=({session:t,initialAutoFocus:e,setInitialAutoFocus:l})=>{const r=C(),[a,u]=s.useState(!1),[o,d]=s.useState(null),{version:n}=t,m=n.checklist,i=I(n.theme);return s.useEffect(()=>{!a||!o||!e||o.focus()},[r,o,a,e]),c.createElement(K,{position:"fixed",theme:i,onClick:h=>{l(h.detail===0),r.showChecklist()},onVisibleChange:u,buttonRef:d,text:m.launcherText,uncompletedCount:B(t)})};export{xe as ChecklistApp,xe as default};
1
+ import{r as s,R as c}from"./vendor.react.js";import{q as b,p as R,k as F,g as B}from"./userflow.js";import{F as _}from"./FlowChrome.js";import{i as N,u as C}from"./client-context.js";import{f as D,w as P,C as j,S as U}from"./flow-host.styl.js";import{a as A,D as H,u as I}from"./stylesheets.js";import{F as O}from"./use-window-resize.js";import{o as Z}from"./vendor.obj-str.js";import{z}from"./flow-condition-types.js";import{l as W}from"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.core-js.js";import{u as X}from"./vendor.react-i18next.js";import{C as M}from"./ChecklistUI.js";import{B as Y}from"./BubbleToolbar.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./bubble-frame.styl.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./logomark.js";import"./use-selector-element-monitoring.js";import"./vendor.i18next.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./vendor.date-fns.js";import"./vendor.babel.runtime.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="8750bd5b-5fe3-4a7a-937e-a8288647db67",t._sentryDebugIdIdentifier="sentry-dbid-8750bd5b-5fe3-4a7a-937e-a8288647db67")}catch{}})();const G=new URL("checklist-launcher-frame.css",import.meta.url).href,K=({position:t,theme:e,onClick:a,onVisibleChange:r,buttonRef:l,text:u,uncompletedCount:o})=>{const d=t||"absolute",{i18n:n}=X(),m=n.dir(),{loaded:i}=A(window,D,e),[h,k]=s.useState(!1),f=i&&h;s.useEffect(()=>{r&&r(f)},[r,f]);const w=s.useRef(null),L=s.useRef(0),[v,S]=s.useState(null);s.useLayoutEffect(()=>{const E=w.current;if(!E||!v)return;const y=v.clientWidth;y!==L.current&&(L.current=y,E.style.setProperty("width",z(y)+"px","important"),E.style.setProperty("height",e.checklistLauncherHeight+"px","important"))});const p=e.checklistLauncherPlacement,x=p===b.TOP_LEFT||p===b.TOP_RIGHT,g=p===b.TOP_LEFT||p===b.BOTTOM_LEFT,T={zIndex:d==="fixed"?e.checklistZIndex!=null?e.checklistZIndex:P(j):1,top:x?e.checklistLauncherY+"px":void 0,bottom:x?void 0:e.checklistLauncherY+"px",[m==="ltr"?"left":"right"]:g?e.checklistLauncherX+"px":void 0,[m==="ltr"?"right":"left"]:g?void 0:e.checklistLauncherX+"px",height:e.checklistLauncherHeight+"px",borderRadius:e.checklistLauncherBorderRadius+"px",position:f?void 0:"absolute",visibility:f?void 0:"hidden",animation:f?void 0:"none"};return c.createElement(O,{elRef:w,testId:"checklist-launcher-app",className:Z({"userflowjs-checklist-launcher":!0,[`userflowjs-checklist-launcher--position-${d}`]:!0}),style:T,stylesheet:G,theme:e,onStylesheetsLoad:k,title:"Checklist launcher"},c.createElement("button",{ref:l,className:"userflowjs-checklist-launcher-frame-root",onClick:a},c.createElement("div",{ref:S,className:"userflowjs-checklist-launcher-content"},c.createElement("div",{className:"userflowjs-checklist-launcher-text"},u||"Get Started"),c.createElement("div",{"data-testid":"checklist-launcher-uncompleted-count",className:"userflowjs-checklist-launcher-uncompleted-count"},o===0?c.createElement(H,{icon:W}):o,c.createElement("div",{className:"userflowjs-a11y-only"},"uncompleted tasks")))))},xe=({session:t,checklistExpanded:e})=>{const{version:a}=t,r=a.checklist,l=t.locale?t.locale.standardLocaleId:t.version.theme.languageId;s.useEffect(()=>{N.changeLanguage(l)},[l]);const[u,o]=s.useState(!1);return e?c.createElement(q,{session:t,initialAutoFocus:u,setInitialAutoFocus:o}):r.launcherEnabled?c.createElement(V,{session:t,initialAutoFocus:u,setInitialAutoFocus:o}):null},q=({session:t,initialAutoFocus:e,setInitialAutoFocus:a})=>{const r=C(),[l,u]=s.useState(null),{version:o}=t,d=o.checklist,n=I(o.theme),m=s.useMemo(()=>({...n,avatarType:R.NONE,bubblePlacement:n.checklistPlacement,bubbleX:n.checklistX,bubbleY:n.checklistY,bubbleWidth:n.checklistWidth}),[n]);return s.useEffect(()=>{const i=l?.ownerDocument.defaultView;if(!i)return;const h=k=>{k.key==="Escape"&&(a(!0),r.hideChecklist())};return i.addEventListener("keydown",h),()=>i.removeEventListener("keydown",h)},[l,a,r]),c.createElement(U,null,c.createElement(_,{company:t.flow.company,theme:m,position:"fixed",stepAppearance:F.BUBBLE,zIndex:n.checklistZIndex,autoHide3pEnabled:!0,backgroundImageUrl:d.backgroundAsset&&d.backgroundAsset.assetUrl,bubbleFrameRootRef:u},c.createElement("div",{role:"dialog","aria-label":"Checklist"},c.createElement(M,{session:t,initialAutoFocus:e}),c.createElement(Y,{draftMode:t.draftMode,minimize:i=>{a(i.detail===0),r.hideChecklist()}}))))},V=({session:t,initialAutoFocus:e,setInitialAutoFocus:a})=>{const r=C(),[l,u]=s.useState(!1),[o,d]=s.useState(null),{version:n}=t,m=n.checklist,i=I(n.theme);return s.useEffect(()=>{!l||!o||!e||o.focus()},[r,o,l,e]),c.createElement(K,{position:"fixed",theme:i,onClick:h=>{a(h.detail===0),r.showChecklist()},onVisibleChange:u,buttonRef:d,text:m.launcherText,uncompletedCount:B(t)})};export{xe as ChecklistApp,xe as default};
2
2
  //# sourceMappingURL=ChecklistApp.js.map
package/ChecklistUI.js CHANGED
@@ -1,2 +1,2 @@
1
- import{R as e,r as a}from"./vendor.react.js";import{E as R,n as I}from"./userflow.js";import{u as v}from"./client-context.js";import"./vendor.html-parse-stringify2.js";import{u as D}from"./vendor.react-i18next.js";import{o as F}from"./vendor.obj-str.js";import{D as C}from"./stylesheets.js";import{a as P,b as U}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{h as L,a as y,r as O,R as B}from"./bubble-frame.styl.js";import{b as j}from"./flow-condition-types.js";import{b as M,e as H}from"./vendor.fortawesome.pro-regular-svg-icons.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]="09f7d271-82d2-4012-a80a-99a753a66933",t._sentryDebugIdIdentifier="sentry-dbid-09f7d271-82d2-4012-a80a-99a753a66933")}catch{}})();const $=e.forwardRef(({elProps:t,onClick:n,onCheckmarkClick:o,completed:s,disabled:i,name:c,text:b,active:d,htmlAttributes:r,children:u},w)=>{const m=a.useRef(s);return e.createElement("button",{...t,ref:w,"data-testid":"bubble-task",tabIndex:n?0:-1,className:F({"userflowjs-bubble-task":!0,"userflowjs-bubble-task--completed":!!s,"userflowjs-bubble-task--just-completed":!m.current&&!!s,"userflowjs-bubble-task--disabled":!s&&!!i,"userflowjs-bubble-task--clickable":!!n,"userflowjs-bubble-task--active":!!d}),onClick:n,...r},e.createElement("div",{className:"userflowjs-bubble-task__checkmark",onClick:o},s&&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"},!s&&e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(C,{icon:U}))),u)}),z=({task:t,previousTasksCompleted:n})=>{const o=v(),{session:s}=S(),i=s.version.checklist,[c,b]=a.useState(()=>o.taskIsUnacked(t.cvid));a.useEffect(()=>{if(!c)return;const m=window.setTimeout(()=>b(!1),500);return()=>window.clearTimeout(m)},[c]);const d=s.taskCompletions.some(({taskCvid:m})=>m===t.cvid),r=!c&&d;a.useEffect(()=>{r&&o.ackCompletedTask(t.cvid)},[o,r,t.cvid]);const u=i.completeInOrder&&!n,w=u||t.actions.length===0&&r?void 0:()=>{o.send({kind:"ClickChecklistTask",sessionId:s.id,taskCvid:t.cvid},{batch:!0}),t.actions.length>0&&(r||!t.completesOnClick)&&o.hideChecklist(),L(o,s,t.actions)};return e.createElement($,{onClick:w,name:e.createElement(y,{doc:t.name,lookupAttribute:j(s.data)}),text:e.createElement(y,{doc:t.text,lookupAttribute:j(s.data)}),completed:r,disabled:u})},G=({completedCount:t,taskCount:n})=>{const o=n===0?0:Math.min(100,Math.round(t/n*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"},o,"%")),e.createElement("div",{className:"userflowjs-bubble-checklist-progress-fill",style:{width:`${o}%`}},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},o,"%")))},J=()=>{const{t}=D(),n=v(),o=S(),{session:s}=o,{version:i}=s,c=i.checklist,{dispatch:b}=q(),d=s.taskCompletions.length,r=c.tasks.length,u=d===r;let w=!0,m=c.tasks,h=[],p=o.currentSectionName,g=!1;if(c.sectionsEnabled){let f=null;const k=Array.from(c.tasks).sort((l,E)=>l.sectionName.localeCompare(E.sectionName));for(const l of k)l.sectionName!==f&&(h.push(l.sectionName),f=l.sectionName);(!p||!h.includes(p))&&(p=h[0]),m=k.filter(l=>l.sectionName===p),g=m.some(l=>{const E=s.taskCompletions.some(({taskCvid:A})=>A===l.cvid);return l.blocksNextSection&&!E})}const N=p==null?-1:h.indexOf(p),x=f=>{const k=N+f;if(k>=0&&k<=h.length-1){const l=h[k];I.setItem("currentChecklistSectionName:"+s.id,l),b({kind:"setCurrentSection",sectionName:l})}};return e.createElement(e.Fragment,null,!O(c.content)&&e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(B,{doc:c.content,lookupAttribute:j(s.data)})),e.createElement(G,{completedCount:d,taskCount:r}),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-name"},p||"First section"),e.createElement("div",{className:"userflowjs-bubble-tasks"},m.map(f=>{const k=w;return s.taskCompletions.some(({taskCvid:E})=>E===f.cvid)||(w=!1),e.createElement(z,{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:()=>x(-1),disabled:N<=0},e.createElement(C,{icon:M}),e.createElement("span",null,t("checklist.previousSection"))),e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>x(1),disabled:N>=h.length-1||g},e.createElement("span",null,t("checklist.nextSection")),e.createElement(C,{icon:H}))),!i.closeDisabled&&e.createElement("div",{className:"userflowjs-bubble-dismiss-row"},e.createElement("button",{className:F({"userflowjs-bubble-dismiss-button":!0,"userflowjs-bubble-dismiss-button--completed":u}),onClick:()=>u?n.endFlow(s,{endReason:R.USER_CLOSED}):b({kind:"showClose"})},t("checklistDismiss.button"))))},K=()=>{const{t}=D(),n=v(),{dispatch:o}=q(),{session:s}=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:()=>n.endFlow(s,{endReason:R.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:()=>o({kind:"showFlow"})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.cancel")))))};function Q(t){const n=t?.querySelector(".userflowjs-bubble-task--clickable:not(.userflowjs-bubble-task--completed)")||t?.querySelector(".userflowjs-bubble-task--clickable")||t?.querySelector('button:not([tabIndex="-1"])');n&&typeof n.focus=="function"&&n.focus()}const re=({session:t,initialAutoFocus:n})=>{const o=v(),s=a.useRef(null),[i,c]=a.useReducer(W,void 0,()=>({...V,session:t,currentSectionName:I.getItem("currentChecklistSectionName:"+t.id),autoFocusRequested:!!n})),{session:b,contentType:d}=i;a.useEffect(()=>{b!==t&&c({kind:"updateSession",session:t})},[b,t]);const r=a.useMemo(()=>({dispatch:c}),[c]);return a.useEffect(()=>{if(!i.autoFocusRequested)return;const u=s.current;u&&Q(u),c({kind:"autoFocused"})},[o,i.autoFocusRequested]),e.createElement(T.Provider,{value:r},e.createElement(_.Provider,{value:i},e.createElement("div",{ref:s},d==="close"?e.createElement(K,null):e.createElement(J,null))))},V={contentType:"flow"};function W(t,n){switch(n.kind){case"updateSession":return{...t,session:n.session};case"showFlow":return{...t,contentType:"flow",autoFocusRequested:!0};case"showClose":return{...t,contentType:"close",autoFocusRequested:!0};case"setCurrentSection":return{...t,currentSectionName:n.sectionName};case"autoFocused":return{...t,autoFocusRequested:!1}}}const T=a.createContext(null),_=a.createContext(null);function q(){return a.useContext(T)}function S(){return a.useContext(_)}export{re as C,Q as f};
1
+ import{R as e,r}from"./vendor.react.js";import{E as R,n as I}from"./userflow.js";import{u as v}from"./client-context.js";import"./vendor.core-js.js";import{u as D}from"./vendor.react-i18next.js";import{o as F}from"./vendor.obj-str.js";import{D as C}from"./stylesheets.js";import{a as P,b as U}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{h as L,a as y,r as O,R as B}from"./bubble-frame.styl.js";import{b as j}from"./flow-condition-types.js";import{b as M,e as H}from"./vendor.fortawesome.pro-regular-svg-icons.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]="aec92c64-59ee-49b6-9b92-08cbc2f75b1e",t._sentryDebugIdIdentifier="sentry-dbid-aec92c64-59ee-49b6-9b92-08cbc2f75b1e")}catch{}})();const $=e.forwardRef(({elProps:t,onClick:n,onCheckmarkClick:o,completed:s,disabled:i,name:c,text:b,active:d,htmlAttributes:a,children:u},w)=>{const m=r.useRef(s);return e.createElement("button",{...t,ref:w,"data-testid":"bubble-task",tabIndex:n?0:-1,className:F({"userflowjs-bubble-task":!0,"userflowjs-bubble-task--completed":!!s,"userflowjs-bubble-task--just-completed":!m.current&&!!s,"userflowjs-bubble-task--disabled":!s&&!!i,"userflowjs-bubble-task--clickable":!!n,"userflowjs-bubble-task--active":!!d}),onClick:n,...a},e.createElement("div",{className:"userflowjs-bubble-task__checkmark",onClick:o},s&&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"},!s&&e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(C,{icon:U}))),u)}),z=({task:t,previousTasksCompleted:n})=>{const o=v(),{session:s}=S(),i=s.version.checklist,[c,b]=r.useState(()=>o.taskIsUnacked(t.cvid));r.useEffect(()=>{if(!c)return;const m=window.setTimeout(()=>b(!1),500);return()=>window.clearTimeout(m)},[c]);const d=s.taskCompletions.some(({taskCvid:m})=>m===t.cvid),a=!c&&d;r.useEffect(()=>{a&&o.ackCompletedTask(t.cvid)},[o,a,t.cvid]);const u=i.completeInOrder&&!n,w=u||t.actions.length===0&&a?void 0:()=>{o.send({kind:"ClickChecklistTask",sessionId:s.id,taskCvid:t.cvid},{batch:!0}),t.actions.length>0&&(a||!t.completesOnClick)&&o.hideChecklist(),L(o,s,t.actions)};return e.createElement($,{onClick:w,name:e.createElement(y,{doc:t.name,lookupAttribute:j(s.data)}),text:e.createElement(y,{doc:t.text,lookupAttribute:j(s.data)}),completed:a,disabled:u})},G=({completedCount:t,taskCount:n})=>{const o=n===0?0:Math.min(100,Math.round(t/n*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"},o,"%")),e.createElement("div",{className:"userflowjs-bubble-checklist-progress-fill",style:{width:`${o}%`}},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},o,"%")))},J=()=>{const{t}=D(),n=v(),o=S(),{session:s}=o,{version:i}=s,c=i.checklist,{dispatch:b}=q(),d=s.taskCompletions.length,a=c.tasks.length,u=d===a;let w=!0,m=c.tasks,h=[],p=o.currentSectionName,g=!1;if(c.sectionsEnabled){let f=null;const k=Array.from(c.tasks).sort((l,E)=>l.sectionName.localeCompare(E.sectionName));for(const l of k)l.sectionName!==f&&(h.push(l.sectionName),f=l.sectionName);(!p||!h.includes(p))&&(p=h[0]),m=k.filter(l=>l.sectionName===p),g=m.some(l=>{const E=s.taskCompletions.some(({taskCvid:A})=>A===l.cvid);return l.blocksNextSection&&!E})}const N=p==null?-1:h.indexOf(p),x=f=>{const k=N+f;if(k>=0&&k<=h.length-1){const l=h[k];I.setItem("currentChecklistSectionName:"+s.id,l),b({kind:"setCurrentSection",sectionName:l})}};return e.createElement(e.Fragment,null,!O(c.content)&&e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(B,{doc:c.content,lookupAttribute:j(s.data)})),e.createElement(G,{completedCount:d,taskCount:a}),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-name"},p||"First section"),e.createElement("div",{className:"userflowjs-bubble-tasks"},m.map(f=>{const k=w;return s.taskCompletions.some(({taskCvid:E})=>E===f.cvid)||(w=!1),e.createElement(z,{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:()=>x(-1),disabled:N<=0},e.createElement(C,{icon:M}),e.createElement("span",null,t("checklist.previousSection"))),e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>x(1),disabled:N>=h.length-1||g},e.createElement("span",null,t("checklist.nextSection")),e.createElement(C,{icon:H}))),!i.closeDisabled&&e.createElement("div",{className:"userflowjs-bubble-dismiss-row"},e.createElement("button",{className:F({"userflowjs-bubble-dismiss-button":!0,"userflowjs-bubble-dismiss-button--completed":u}),onClick:()=>u?n.endFlow(s,{endReason:R.USER_CLOSED}):b({kind:"showClose"})},t("checklistDismiss.button"))))},K=()=>{const{t}=D(),n=v(),{dispatch:o}=q(),{session:s}=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:()=>n.endFlow(s,{endReason:R.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:()=>o({kind:"showFlow"})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.cancel")))))};function Q(t){const n=t?.querySelector(".userflowjs-bubble-task--clickable:not(.userflowjs-bubble-task--completed)")||t?.querySelector(".userflowjs-bubble-task--clickable")||t?.querySelector('button:not([tabIndex="-1"])');n&&typeof n.focus=="function"&&n.focus()}const ae=({session:t,initialAutoFocus:n})=>{const o=v(),s=r.useRef(null),[i,c]=r.useReducer(W,void 0,()=>({...V,session:t,currentSectionName:I.getItem("currentChecklistSectionName:"+t.id),autoFocusRequested:!!n})),{session:b,contentType:d}=i;r.useEffect(()=>{b!==t&&c({kind:"updateSession",session:t})},[b,t]);const a=r.useMemo(()=>({dispatch:c}),[c]);return r.useEffect(()=>{if(!i.autoFocusRequested)return;const u=s.current;u&&Q(u),c({kind:"autoFocused"})},[o,i.autoFocusRequested]),e.createElement(T.Provider,{value:a},e.createElement(_.Provider,{value:i},e.createElement("div",{ref:s},d==="close"?e.createElement(K,null):e.createElement(J,null))))},V={contentType:"flow"};function W(t,n){switch(n.kind){case"updateSession":return{...t,session:n.session};case"showFlow":return{...t,contentType:"flow",autoFocusRequested:!0};case"showClose":return{...t,contentType:"close",autoFocusRequested:!0};case"setCurrentSection":return{...t,currentSectionName:n.sectionName};case"autoFocused":return{...t,autoFocusRequested:!1}}}const T=r.createContext(null),_=r.createContext(null);function q(){return r.useContext(T)}function S(){return r.useContext(_)}export{ae as C,Q as f};
2
2
  //# sourceMappingURL=ChecklistUI.js.map
@@ -1,2 +1,2 @@
1
- import{r as y,R as o}from"./vendor.react.js";import{i as _}from"./vendor.is-hotkey.js";import{o as de}from"./vendor.obj-str.js";import{r as W,g as ne,a as oe,o as fe,c as $,i as ae,d as pe,e as ge,h as re,j as we,k as C}from"./flow-condition-types.js";import{j as U}from"./userflow.js";import{u as he}from"./client-context.js";import{u as ve}from"./use-window-resize.js";import{B as be}from"./BuilderBar.js";import"./vendor.html-parse-stringify2.js";import"./vendor.object-assign.js";import"./vendor.date-fns.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./stylesheets.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./logomark.js";import"./vendor.fortawesome.pro-light-svg-icons.js";(function(){try{var p=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(p._sentryDebugIds=p._sentryDebugIds||{},p._sentryDebugIds[n]="8333d2c4-a681-43ef-8e94-143a015395b4",p._sentryDebugIdIdentifier="sentry-dbid-8333d2c4-a681-43ef-8e94-143a015395b4")}catch{}})();const ye=_("alt+s"),Ee=_("escape"),Re=_("u"),qe=({state:p})=>{const{mode:n,elementType:m}=p,g=he(),S=y.useRef(null),[A,ie]=y.useState(!1),B=y.useRef(null),[V,le]=y.useState(null),[I,ce]=y.useState(()=>se()),M=y.useCallback(async(s,c)=>{if(s&&c){const l=S.current?.getFrame();l&&B.current&&(B.current.classList.add("userflowjs-element-selection-box--no-transition"),l.style.display="none",l.offsetWidth),re(),g.setSessionStorageState(d=>({...d,elementSelection:{...d.elementSelection,mode:"done"}}));const w=W(s),h=0,r=0,R=Math.round(ne()),T=Math.round(oe()),a=await g.getTargetEnv().captureScreenshot(h,r,R,T),E=d=>Math.round(d/$(1));c={...c,screenshotDataUrl:a,targetX1:E(w.left),targetY1:E(w.top-r),targetX2:E(w.right),targetY2:E(w.bottom-r),screenshotWidth:R,screenshotHeight:T}}g.setSessionStorageState(l=>({...l,activeApp:null,elementSelection:null})),g.getTargetEnv().postBuilderMessage({kind:"userflow:selectElementResult",selectorData:c})},[g]),L=y.useCallback(s=>g.setSessionStorageState(c=>({...c,elementSelection:{...c.elementSelection,mode:s}})),[g]);return y.useEffect(()=>{if(!A||!S.current)return;const s=S.current.getFrame(),c=S.current.getRootEl();let l=c&&c.ownerDocument&&c.ownerDocument.defaultView;l===window&&(l=null);let w=null,h=null,r=null,R=null;const T=document.getElementById("userflow-ui"),a={capture:!0},E=()=>{window.cancelAnimationFrame(d);let e=null,t=null,v=null;if(h&&!T.contains(h)){let f=null,u=h;for(;u;){{const x=u.getBoundingClientRect();if(x.width===0&&x.height===0){u=O(u);continue}}if(f=we(u,{elementType:m}),f)break;u=O(u)}f?(t=f.el,e=f.selector):m===U.INPUT?v="No text input found here":v="Sorry, we can't select that element (yet!)"}r=t,w=e,le(v),q()};let d;const Y=()=>{window.cancelAnimationFrame(d),d=window.requestAnimationFrame(E)},q=()=>{window.cancelAnimationFrame(N);const e=B.current;if(!e)return;re();const t=$(ne()),v=$(oe());let f=v/2,u=t/2,x=v/2,H=t/2;const b=2;let J=b,Q=b,ee=b,te=b;if(r){const i=W(r),F=window.getComputedStyle(r);f=Math.max(0,i.top),u=Math.max(0,t-i.right),x=Math.max(0,v-i.bottom),H=Math.max(0,i.left),J=Math.max(b,C(F.borderTopLeftRadius)),Q=Math.max(b,C(F.borderTopRightRadius)),ee=Math.max(b,C(F.borderBottomLeftRadius)),te=Math.max(b,C(F.borderBottomRightRadius)),R=r}else if(R){const i=W(R);f=Math.max(0,i.top+i.height/2),u=Math.max(0,t-i.right+i.width/2),x=Math.max(0,v-i.bottom+i.height/2),H=Math.max(0,i.left+i.width/2)}e.style.top=`${f}px`,e.style.right=`${u}px`,e.style.bottom=`${x}px`,e.style.left=`${H}px`,e.style.borderTopLeftRadius=`${J}px`,e.style.borderTopRightRadius=`${Q}px`,e.style.borderBottomLeftRadius=`${ee}px`,e.style.borderBottomRightRadius=`${te}px`,r?document.body.classList.remove("userflowjs-body-with-element-selection--none"):document.body.classList.add("userflowjs-body-with-element-selection--none")};let N;const ue=()=>{window.cancelAnimationFrame(N),N=window.requestAnimationFrame(q)},z=()=>{ue()},k=e=>{if(ye(e)){e.preventDefault(),n==="select"?L("navigate"):n==="navigate"&&L("select");return}if(Ee(e)&&n==="select"){e.preventDefault(),M(null,null);return}if(Re(e)&&r){const t=O(r);if(t){e.preventDefault(),h=t,E();return}}},j=e=>{const t=e.composedPath()[0];!t||t===r||t.tagName==="BODY"||t.tagName==="HTML"||(h=t,Y())},D=()=>{h=null,Y()};s&&s.addEventListener("mouseenter",D);const P=e=>{e.preventDefault(),e.stopPropagation()},X=e=>{P(e)},Z=e=>{P(e)},G=e=>{if(P(e),I){const t=e.target;if(!r||!r.contains(t)){j(e);return}}w&&(M(r,w),K())};l&&l.addEventListener("keydown",k),n==="select"&&(document.body.addEventListener("mouseleave",D),document.body.classList.add("userflowjs-body-with-element-selection"));const me=fe(e=>{const t=e.ownerDocument.defaultView;t&&(t.addEventListener("keydown",k,a),n==="select"&&(t.addEventListener("scroll",z,a),e.addEventListener("mousemove",j,a),e.addEventListener("mousedown",X,a),e.addEventListener("focus",Z,a),e.addEventListener("click",G,a)))},e=>{const t=e.ownerDocument.defaultView;t&&(t.removeEventListener("keydown",k,a),n==="select"&&(t.removeEventListener("scroll",z,a),ae(e)||e.removeEventListener("mousemove",j,a),e.removeEventListener("mousedown",X,a),e.removeEventListener("focus",Z,a),e.removeEventListener("click",G,a)))}),K=()=>{window.cancelAnimationFrame(d),window.cancelAnimationFrame(N),document.body.removeEventListener("mouseleave",D),l&&l.removeEventListener("keydown",k),s&&s.removeEventListener("mouseenter",D),document.body.classList.remove("userflowjs-body-with-element-selection"),document.body.classList.remove("userflowjs-body-with-element-selection--none"),me()};return K},[I,g,n,A,m,M,L]),ve(()=>ce(se())),o.createElement(o.Fragment,null,o.createElement(be,{ref:S,onReadyChange:ie,buttons:o.createElement(o.Fragment,null,n==="navigate"?o.createElement("button",{key:"select",className:"btn btn--default",onMouseDown:s=>{s.preventDefault(),s.stopPropagation(),L("select")}},o.createElement("span",{className:"hidden-lg-up"},"Select here"),o.createElement("span",{className:"hidden-md-down"},"Select element here (Alt + S)")):n==="select"?o.createElement("button",{key:"navigate",className:"btn btn--default",onMouseDown:s=>{s.preventDefault(),s.stopPropagation(),L("navigate")}},o.createElement("span",{className:"hidden-lg-up"},"Navigate"),o.createElement("span",{className:"hidden-md-down"},"Navigate to another page (Alt + S)")):null,(n==="select"||n==="navigate")&&o.createElement("button",{className:"btn btn--secondary-on-dark",onClick:()=>M(null,null)},"Cancel"))},n==="navigate"?o.createElement("div",{className:"status"},"Navigate to the page the element appears on"):V?o.createElement("div",{className:"error"},V):o.createElement("div",{className:"status"},I?o.createElement(o.Fragment,null,"Tap"," ",m===U.INPUT?"a text input":"an element"," ","to focus. Tap again to select."):o.createElement(o.Fragment,null,"Click"," ",m===U.INPUT?"a text input":"an element"," ","to select it"))),A&&(n==="select"||n==="done")&&o.createElement("div",{className:de({"userflowjs-element-selection-box":!0}),ref:B}))};function O(p){const n=p.parentNode;if(!n)return null;if(ae(n))return n.host;if(!pe(n))return null;if(n.tagName==="BODY"){const m=ge(n);return m||null}return n}function se(){return window.navigator.userAgent.includes("Mobile")}export{qe as ElementSelectionApp,qe as default};
1
+ import{r as y,R as o}from"./vendor.react.js";import{i as _}from"./vendor.is-hotkey.js";import{o as de}from"./vendor.obj-str.js";import{r as W,g as ne,a as oe,o as fe,c as $,i as ae,d as pe,e as ge,h as re,j as we,k as C}from"./flow-condition-types.js";import{j as U}from"./userflow.js";import{u as he}from"./client-context.js";import{u as ve}from"./use-window-resize.js";import{B as be}from"./BuilderBar.js";import"./vendor.core-js.js";import"./vendor.object-assign.js";import"./vendor.date-fns.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./stylesheets.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./logomark.js";import"./vendor.fortawesome.pro-light-svg-icons.js";(function(){try{var p=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(p._sentryDebugIds=p._sentryDebugIds||{},p._sentryDebugIds[n]="4ee0003d-3d9c-421a-9fbd-288d02cd3081",p._sentryDebugIdIdentifier="sentry-dbid-4ee0003d-3d9c-421a-9fbd-288d02cd3081")}catch{}})();const ye=_("alt+s"),Ee=_("escape"),Re=_("u"),qe=({state:p})=>{const{mode:n,elementType:m}=p,g=he(),S=y.useRef(null),[A,ie]=y.useState(!1),B=y.useRef(null),[V,le]=y.useState(null),[I,ce]=y.useState(()=>se()),M=y.useCallback(async(s,c)=>{if(s&&c){const l=S.current?.getFrame();l&&B.current&&(B.current.classList.add("userflowjs-element-selection-box--no-transition"),l.style.display="none",l.offsetWidth),re(),g.setSessionStorageState(d=>({...d,elementSelection:{...d.elementSelection,mode:"done"}}));const w=W(s),h=0,r=0,R=Math.round(ne()),T=Math.round(oe()),a=await g.getTargetEnv().captureScreenshot(h,r,R,T),E=d=>Math.round(d/$(1));c={...c,screenshotDataUrl:a,targetX1:E(w.left),targetY1:E(w.top-r),targetX2:E(w.right),targetY2:E(w.bottom-r),screenshotWidth:R,screenshotHeight:T}}g.setSessionStorageState(l=>({...l,activeApp:null,elementSelection:null})),g.getTargetEnv().postBuilderMessage({kind:"userflow:selectElementResult",selectorData:c})},[g]),L=y.useCallback(s=>g.setSessionStorageState(c=>({...c,elementSelection:{...c.elementSelection,mode:s}})),[g]);return y.useEffect(()=>{if(!A||!S.current)return;const s=S.current.getFrame(),c=S.current.getRootEl();let l=c&&c.ownerDocument&&c.ownerDocument.defaultView;l===window&&(l=null);let w=null,h=null,r=null,R=null;const T=document.getElementById("userflow-ui"),a={capture:!0},E=()=>{window.cancelAnimationFrame(d);let e=null,t=null,v=null;if(h&&!T.contains(h)){let f=null,u=h;for(;u;){{const x=u.getBoundingClientRect();if(x.width===0&&x.height===0){u=O(u);continue}}if(f=we(u,{elementType:m}),f)break;u=O(u)}f?(t=f.el,e=f.selector):m===U.INPUT?v="No text input found here":v="Sorry, we can't select that element (yet!)"}r=t,w=e,le(v),q()};let d;const Y=()=>{window.cancelAnimationFrame(d),d=window.requestAnimationFrame(E)},q=()=>{window.cancelAnimationFrame(N);const e=B.current;if(!e)return;re();const t=$(ne()),v=$(oe());let f=v/2,u=t/2,x=v/2,H=t/2;const b=2;let J=b,Q=b,ee=b,te=b;if(r){const i=W(r),F=window.getComputedStyle(r);f=Math.max(0,i.top),u=Math.max(0,t-i.right),x=Math.max(0,v-i.bottom),H=Math.max(0,i.left),J=Math.max(b,C(F.borderTopLeftRadius)),Q=Math.max(b,C(F.borderTopRightRadius)),ee=Math.max(b,C(F.borderBottomLeftRadius)),te=Math.max(b,C(F.borderBottomRightRadius)),R=r}else if(R){const i=W(R);f=Math.max(0,i.top+i.height/2),u=Math.max(0,t-i.right+i.width/2),x=Math.max(0,v-i.bottom+i.height/2),H=Math.max(0,i.left+i.width/2)}e.style.top=`${f}px`,e.style.right=`${u}px`,e.style.bottom=`${x}px`,e.style.left=`${H}px`,e.style.borderTopLeftRadius=`${J}px`,e.style.borderTopRightRadius=`${Q}px`,e.style.borderBottomLeftRadius=`${ee}px`,e.style.borderBottomRightRadius=`${te}px`,r?document.body.classList.remove("userflowjs-body-with-element-selection--none"):document.body.classList.add("userflowjs-body-with-element-selection--none")};let N;const ue=()=>{window.cancelAnimationFrame(N),N=window.requestAnimationFrame(q)},z=()=>{ue()},k=e=>{if(ye(e)){e.preventDefault(),n==="select"?L("navigate"):n==="navigate"&&L("select");return}if(Ee(e)&&n==="select"){e.preventDefault(),M(null,null);return}if(Re(e)&&r){const t=O(r);if(t){e.preventDefault(),h=t,E();return}}},j=e=>{const t=e.composedPath()[0];!t||t===r||t.tagName==="BODY"||t.tagName==="HTML"||(h=t,Y())},D=()=>{h=null,Y()};s&&s.addEventListener("mouseenter",D);const P=e=>{e.preventDefault(),e.stopPropagation()},X=e=>{P(e)},Z=e=>{P(e)},G=e=>{if(P(e),I){const t=e.target;if(!r||!r.contains(t)){j(e);return}}w&&(M(r,w),K())};l&&l.addEventListener("keydown",k),n==="select"&&(document.body.addEventListener("mouseleave",D),document.body.classList.add("userflowjs-body-with-element-selection"));const me=fe(e=>{const t=e.ownerDocument.defaultView;t&&(t.addEventListener("keydown",k,a),n==="select"&&(t.addEventListener("scroll",z,a),e.addEventListener("mousemove",j,a),e.addEventListener("mousedown",X,a),e.addEventListener("focus",Z,a),e.addEventListener("click",G,a)))},e=>{const t=e.ownerDocument.defaultView;t&&(t.removeEventListener("keydown",k,a),n==="select"&&(t.removeEventListener("scroll",z,a),ae(e)||e.removeEventListener("mousemove",j,a),e.removeEventListener("mousedown",X,a),e.removeEventListener("focus",Z,a),e.removeEventListener("click",G,a)))}),K=()=>{window.cancelAnimationFrame(d),window.cancelAnimationFrame(N),document.body.removeEventListener("mouseleave",D),l&&l.removeEventListener("keydown",k),s&&s.removeEventListener("mouseenter",D),document.body.classList.remove("userflowjs-body-with-element-selection"),document.body.classList.remove("userflowjs-body-with-element-selection--none"),me()};return K},[I,g,n,A,m,M,L]),ve(()=>ce(se())),o.createElement(o.Fragment,null,o.createElement(be,{ref:S,onReadyChange:ie,buttons:o.createElement(o.Fragment,null,n==="navigate"?o.createElement("button",{key:"select",className:"btn btn--default",onMouseDown:s=>{s.preventDefault(),s.stopPropagation(),L("select")}},o.createElement("span",{className:"hidden-lg-up"},"Select here"),o.createElement("span",{className:"hidden-md-down"},"Select element here (Alt + S)")):n==="select"?o.createElement("button",{key:"navigate",className:"btn btn--default",onMouseDown:s=>{s.preventDefault(),s.stopPropagation(),L("navigate")}},o.createElement("span",{className:"hidden-lg-up"},"Navigate"),o.createElement("span",{className:"hidden-md-down"},"Navigate to another page (Alt + S)")):null,(n==="select"||n==="navigate")&&o.createElement("button",{className:"btn btn--secondary-on-dark",onClick:()=>M(null,null)},"Cancel"))},n==="navigate"?o.createElement("div",{className:"status"},"Navigate to the page the element appears on"):V?o.createElement("div",{className:"error"},V):o.createElement("div",{className:"status"},I?o.createElement(o.Fragment,null,"Tap"," ",m===U.INPUT?"a text input":"an element"," ","to focus. Tap again to select."):o.createElement(o.Fragment,null,"Click"," ",m===U.INPUT?"a text input":"an element"," ","to select it"))),A&&(n==="select"||n==="done")&&o.createElement("div",{className:de({"userflowjs-element-selection-box":!0}),ref:B}))};function O(p){const n=p.parentNode;if(!n)return null;if(ae(n))return n.host;if(!pe(n))return null;if(n.tagName==="BODY"){const m=ge(n);return m||null}return n}function se(){return window.navigator.userAgent.includes("Mobile")}export{qe as ElementSelectionApp,qe as default};
2
2
  //# sourceMappingURL=ElementSelectionApp.js.map
package/FlowApp.js CHANGED
@@ -1,4 +1,4 @@
1
- import{R as o,r as f}from"./vendor.react.js";import{E as D,k as N,V as L,l as ce,m as ue,T as O,n as F,o as de,p as pe,M as fe,U as Y}from"./userflow.js";import"./vendor.html-parse-stringify2.js";import{u as x}from"./vendor.react-i18next.js";import{B as G}from"./BubbleToolbar.js";import{m as me,d as Q,R as be,i as Ee,g as ge,u as we,c as V,h as he,S as Te}from"./bubble-frame.styl.js";import{b as X,z as ve,a as Se,l as K,r as ye}from"./flow-condition-types.js";import{u as R,i as ke}from"./client-context.js";import{F as De}from"./FlowChrome.js";import{u as Ne,r as Ie}from"./use-selector-element-monitoring.js";import{a as Z,S as Re}from"./flow-host.styl.js";import{f as Me}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{D as Ae,u as Be}from"./stylesheets.js";import{T as Fe}from"./Trigger.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.babel.runtime.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.obj-str.js";import"./vendor.date-fns.js";import"./vendor.i18next.js";import"./use-window-resize.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./logomark.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="c11334ca-820d-4b5c-88b9-7391e5684a74",e._sentryDebugIdIdentifier="sentry-dbid-c11334ca-820d-4b5c-88b9-7391e5684a74")}catch{}})();const Ce=()=>{const{t:e}=x(),s=R(),{dispatch:t,restart:n}=A(),{session:l,step:d}=k(),a="userflowjs-bubble-button userflowjs-bubble-button--default userflowjs-bubble-menu__item";return o.createElement("div",{role:"dialog","aria-modal":M(d)?"true":void 0,"aria-label":"Guide menu"},o.createElement("div",{className:"userflowjs-bubble-menu__title"},e("menu.title")),o.createElement("button",{className:a,onClick:()=>s.endFlow(l,{endReason:D.USER_CLOSED})},e("menu.close")),l.version.restartEnabled&&o.createElement("button",{className:a,onClick:n},e("menu.restart")),o.createElement("button",{className:a,onClick:()=>t({kind:"showFlow"})},e("menu.back")))},W=({progress:e,type:s,position:t,totalSteps:n})=>{const{t:l}=x(),d=parseFloat(e||"0"),a={width:`${d*100}%`},c=s==="DEFAULT"?"TOP":t,u=`userflowjs-bubble-progress-${s||"DEFAULT"}`,m=c==="BOTTOM"?" userflowjs-bubble-progress-bottom":"",i=["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED","NARROW"].includes(s)?`userflowjs-bubble-progress-CHAINED ${s==="CHAINED_SQUARED"?"userflowjs-bubble-progress-CHAINED_SQUARED":s==="CHAINED_ROUNDED"?"userflowjs-bubble-progress-CHAINED_ROUNDED":s==="DOTTED"?"userflowjs-bubble-progress-DOTTED":"userflowjs-bubble-progress-NARROW"}${m}`:`${u}${m}`,r=n||0,b=Math.min(r,Math.max(1,Math.floor(d*r)));return o.createElement("div",null,["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED"].includes(s)&&o.createElement("div",{className:i},Array.from({length:3}).map((E,g)=>o.createElement("div",{key:g,className:`rounded ${g<Math.floor(d*3)?"completed":""}`}))),s==="NARROW"&&o.createElement("div",{className:i},o.createElement("div",{className:"linear-progress-bar"},o.createElement("div",{className:"linear-progress-fill",style:a}))),s==="NUMBERED"&&o.createElement("div",{className:i},o.createElement("span",{className:"numbered-progress"},l("of",{replace:{range:r,selected:b}}))),!["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED","NARROW","NUMBERED"].includes(s)&&o.createElement("div",{className:`${i} ${c==="BOTTOM"?"bottom":""}`},o.createElement("div",{className:"userflowjs-bubble-progress__fill",style:a})))};var J=(e=>(e.BOTTOM="BOTTOM",e.TOP="TOP",e))(J||{});const Le=({theme:e})=>{const s=R(),{session:t,step:n,muted:l,shouldLabelDialog:d}=k(),{version:a}=t,{dispatch:c}=A(),u=a.steps[0],m=u&&u.id===n.id,i=m&&n.progress==="1",r=f.useMemo(()=>n.content&&me(Q(n.content),{buttons:n.buttons,questions:n.questions}),[n.content,n.buttons,n.questions]),b=a.steps.filter(v=>v.appearance!==N.HIDDEN),E=b.findIndex(v=>v.id===n.id),g=b.length,h=g>0?((E+1)/g).toString():"0";return o.createElement("div",{key:n.id,role:"alertdialog","aria-modal":M(n)?"true":void 0,"aria-label":d?"Guide":void 0},!i&&e.progressBarPosition==="TOP"&&e.progressBarEnabled&&o.createElement(W,{progress:h,type:e.progressBarType,totalSteps:g}),o.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content"},o.createElement(be,{doc:r,lookupAttribute:X(t.data),buttons:n.buttons,questions:n.questions})),o.createElement(G,{draftMode:t.draftMode,muted:l,toggleMuted:e.voiceType!==L.NONE?()=>c({kind:"toggleMuted"}):void 0,close:a.closeDisabled?void 0:()=>e.flowXButtonBehavior===ce.DISMISS||m?s.endFlow(t,{endReason:D.USER_CLOSED}):c({kind:"showMenu"})}),!i&&e.progressBarPosition==="BOTTOM"&&e.progressBarEnabled&&o.createElement(W,{progress:h,type:e.progressBarType,position:J.BOTTOM,totalSteps:g}))};function Oe(e,s){if(!e)return"";typeof e=="string"&&(e=Q(e));const t=[],n=/[.!?;,]$/;function l(){const c=(t[t.length-1]||"").trim();c&&!c.match(n)&&t.push(".")}function d(c){if(Ee(c)){if(c.text&&!c.silent){const u=c.text.split(`
1
+ import{R as o,r as f}from"./vendor.react.js";import{E as D,k as N,V as L,l as ce,m as ue,T as O,n as F,o as de,p as pe,M as fe,U as Y}from"./userflow.js";import"./vendor.core-js.js";import{u as x}from"./vendor.react-i18next.js";import{B as G}from"./BubbleToolbar.js";import{m as me,d as Q,R as be,i as Ee,g as ge,u as we,c as V,h as he,S as Te}from"./bubble-frame.styl.js";import{b as X,z as ve,a as Se,l as K,r as ye}from"./flow-condition-types.js";import{u as R,i as ke}from"./client-context.js";import{F as De}from"./FlowChrome.js";import{u as Ne,r as Ie}from"./use-selector-element-monitoring.js";import{a as Z,S as Re}from"./flow-host.styl.js";import{f as Me}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{D as Ae,u as Be}from"./stylesheets.js";import{T as Fe}from"./Trigger.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.babel.runtime.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.obj-str.js";import"./vendor.date-fns.js";import"./vendor.i18next.js";import"./use-window-resize.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./logomark.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="9d4bf308-d521-4e9f-baa3-a23f469b60de",e._sentryDebugIdIdentifier="sentry-dbid-9d4bf308-d521-4e9f-baa3-a23f469b60de")}catch{}})();const Ce=()=>{const{t:e}=x(),s=R(),{dispatch:t,restart:n}=A(),{session:l,step:d}=k(),a="userflowjs-bubble-button userflowjs-bubble-button--default userflowjs-bubble-menu__item";return o.createElement("div",{role:"dialog","aria-modal":M(d)?"true":void 0,"aria-label":"Guide menu"},o.createElement("div",{className:"userflowjs-bubble-menu__title"},e("menu.title")),o.createElement("button",{className:a,onClick:()=>s.endFlow(l,{endReason:D.USER_CLOSED})},e("menu.close")),l.version.restartEnabled&&o.createElement("button",{className:a,onClick:n},e("menu.restart")),o.createElement("button",{className:a,onClick:()=>t({kind:"showFlow"})},e("menu.back")))},W=({progress:e,type:s,position:t,totalSteps:n})=>{const{t:l}=x(),d=parseFloat(e||"0"),a={width:`${d*100}%`},c=s==="DEFAULT"?"TOP":t,u=`userflowjs-bubble-progress-${s||"DEFAULT"}`,m=c==="BOTTOM"?" userflowjs-bubble-progress-bottom":"",i=["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED","NARROW"].includes(s)?`userflowjs-bubble-progress-CHAINED ${s==="CHAINED_SQUARED"?"userflowjs-bubble-progress-CHAINED_SQUARED":s==="CHAINED_ROUNDED"?"userflowjs-bubble-progress-CHAINED_ROUNDED":s==="DOTTED"?"userflowjs-bubble-progress-DOTTED":"userflowjs-bubble-progress-NARROW"}${m}`:`${u}${m}`,r=n||0,b=Math.min(r,Math.max(1,Math.floor(d*r)));return o.createElement("div",null,["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED"].includes(s)&&o.createElement("div",{className:i},Array.from({length:3}).map((E,g)=>o.createElement("div",{key:g,className:`rounded ${g<Math.floor(d*3)?"completed":""}`}))),s==="NARROW"&&o.createElement("div",{className:i},o.createElement("div",{className:"linear-progress-bar"},o.createElement("div",{className:"linear-progress-fill",style:a}))),s==="NUMBERED"&&o.createElement("div",{className:i},o.createElement("span",{className:"numbered-progress"},l("of",{replace:{range:r,selected:b}}))),!["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED","NARROW","NUMBERED"].includes(s)&&o.createElement("div",{className:`${i} ${c==="BOTTOM"?"bottom":""}`},o.createElement("div",{className:"userflowjs-bubble-progress__fill",style:a})))};var J=(e=>(e.BOTTOM="BOTTOM",e.TOP="TOP",e))(J||{});const Le=({theme:e})=>{const s=R(),{session:t,step:n,muted:l,shouldLabelDialog:d}=k(),{version:a}=t,{dispatch:c}=A(),u=a.steps[0],m=u&&u.id===n.id,i=m&&n.progress==="1",r=f.useMemo(()=>n.content&&me(Q(n.content),{buttons:n.buttons,questions:n.questions}),[n.content,n.buttons,n.questions]),b=a.steps.filter(v=>v.appearance!==N.HIDDEN),E=b.findIndex(v=>v.id===n.id),g=b.length,h=g>0?((E+1)/g).toString():"0";return o.createElement("div",{key:n.id,role:"alertdialog","aria-modal":M(n)?"true":void 0,"aria-label":d?"Guide":void 0},!i&&e.progressBarPosition==="TOP"&&e.progressBarEnabled&&o.createElement(W,{progress:h,type:e.progressBarType,totalSteps:g}),o.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content"},o.createElement(be,{doc:r,lookupAttribute:X(t.data),buttons:n.buttons,questions:n.questions})),o.createElement(G,{draftMode:t.draftMode,muted:l,toggleMuted:e.voiceType!==L.NONE?()=>c({kind:"toggleMuted"}):void 0,close:a.closeDisabled?void 0:()=>e.flowXButtonBehavior===ce.DISMISS||m?s.endFlow(t,{endReason:D.USER_CLOSED}):c({kind:"showMenu"})}),!i&&e.progressBarPosition==="BOTTOM"&&e.progressBarEnabled&&o.createElement(W,{progress:h,type:e.progressBarType,position:J.BOTTOM,totalSteps:g}))};function Oe(e,s){if(!e)return"";typeof e=="string"&&(e=Q(e));const t=[],n=/[.!?;,]$/;function l(){const c=(t[t.length-1]||"").trim();c&&!c.match(n)&&t.push(".")}function d(c){if(Ee(c)){if(c.text&&!c.silent){const u=c.text.split(`
2
2
  `);u.forEach((m,i)=>{t.push(m),i<u.length-1&&(l(),t.push(`
3
3
  `))})}return}switch(c.type){case"attribute":{const u=ge(c,s);u&&t.push(u);break}default:a(c.children),["link"].includes(c.type)||(l(),t.push(`
4
4
 
package/FlowChrome.js CHANGED
@@ -1,3 +1,3 @@
1
- import{r as u,R as w}from"./vendor.react.js";import{u as de,F as oe}from"./use-window-resize.js";import{c as A,k as y,p as it,m as me,q as j,y as be,x as c}from"./userflow.js";import{a as pe,f as he}from"./flow-host.styl.js";import{b as ge}from"./bubble-frame.styl.js";import{S as we}from"./logomark.js";import{o as Vt}from"./vendor.obj-str.js";import{u as Te}from"./use-selector-element-monitoring.js";import{a as Wt,g as Dt,c as rt,m as Ee,d as ae,M as le,k as Ht,n as ye,h as Le}from"./flow-condition-types.js";import{a as ve,g as Be}from"./stylesheets.js";import"./vendor.html-parse-stringify2.js";import{u as Me}from"./vendor.react-i18next.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]="4bb7430a-6398-4d99-a0a0-290019647db2",e._sentryDebugIdIdentifier="sentry-dbid-4bb7430a-6398-4d99-a0a0-290019647db2")}catch{}})();const ke=new URL("avatar-frame.css",import.meta.url).href;function Re(e,t){const o=window.Intercom;u.useEffect(()=>{if(!(!t||!e.autoHideIntercom||typeof o!="function"||A.autoHide3pDisabled)){try{o("update",{hide_default_launcher:!0})}catch(l){console.warn("Userflow.js: Error when hiding Intercom launcher",l)}return()=>{if(!A.autoHide3pDisabled)try{o("update",{hide_default_launcher:!1})}catch(l){console.warn("Userflow.js: Error when unhiding Intercom launcher",l)}}}},[o,e.autoHideIntercom,t]);const T=window.$crisp;u.useEffect(()=>{if(!(!t||!e.autoHideCrisp||!T||A.autoHide3pDisabled)){try{T.push(["do","chat:hide"])}catch(l){console.warn("Userflow.js: Error when hiding Crisp Chat",l)}return()=>{if(!A.autoHide3pDisabled)try{T.push(["do","chat:show"])}catch(l){console.warn("Userflow.js: Error when unhiding Crisp Chat",l)}}}},[T,e.autoHideCrisp,t]);const M=window.HubSpotConversations;u.useEffect(()=>{if(!(!t||!e.autoHideHubspot||!M||A.autoHide3pDisabled)){try{M.widget.remove()}catch(l){console.warn("Userflow.js: Error when hiding HubSpot Chat",l)}return()=>{if(!A.autoHide3pDisabled)try{M.widget.load()}catch(l){console.warn("Userflow.js: Error when unhiding HubSpot Chat",l)}}}},[M,e.autoHideHubspot,t]);const m=window.drift;u.useEffect(()=>{if(!(!t||!e.autoHideDrift||!m||A.autoHide3pDisabled)){try{m.api.widget.hide()}catch(l){console.warn("Userflow.js: Error when hiding Drift Chat",l)}return()=>{if(!A.autoHide3pDisabled)try{m.api.widget.show()}catch(l){console.warn("Userflow.js: Error when unhiding Drift Chat",l)}}}},[m,e.autoHideDrift,t])}const At=16,Mt=20,Ye=({company:e,theme:t,position:o,absoluteWidth:T,absoluteHeight:M,stepKey:m,stepAppearance:l,width:b,backgroundImageUrl:g,tooltipSelector:f,allowMissingTooltipTarget:E,tooltipPlacement:R,backdrop:_,tooltipTargetBlocked:W,backdropPadding:Q,zIndex:N,onTooltipTargetClick:L,onTooltipTargetMissingChange:H,onModalBackdropClick:Z,onVisibleChange:tt,speaking:D,noIframe:P,MadeWithUserflow:n,minimizeOnAvatarClick:F,autoHide3pEnabled:k,bubbleFrameRootRef:v,frameWrapperHtmlAttributes:O,rootChildren:x,children:r})=>{const s=o||"absolute",z=R||null,q=Q||"0",G=n||Oe,et=pe(),J=s==="fixed"?N??et+1:1,U=J-1,{i18n:kt}=Me(),at=kt.dir(),nt=u.useRef(null),mt=u.useRef(null),ut=u.useRef(null),[$,Rt]=u.useState(null),bt=u.useRef(null),pt=u.useRef(null),ht=u.useRef(null),gt=u.useRef(null),wt=u.useRef(null),Tt=u.useRef(null),Et=u.useRef(null),yt=u.useRef(null),Lt=u.useRef(null);u.useLayoutEffect(()=>{const i=nt.current.style;i.animation="none",i.visibility="hidden",i.position="absolute",i.top="-99999px",i.left="-99999px"},[]);const{loaded:Pt}=ve(window,he,t),[Ot,jt]=u.useState(!1),[Nt,xt]=u.useState(!1),vt=Pt&&Ot&&Nt;let[It,h]=u.useState(!1);l!==y.BUBBLE&&(F=!1,It=!1),u.useEffect(()=>{h(!1)},[m]);const a=u.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}),[C,lt]=u.useState(null),I=C!=null&&vt;u.useEffect(()=>{tt&&tt(I)},[tt,I]);const Y=u.useCallback(i=>{a.current.lastReportedTooltipTargetMissing!==i&&(a.current.lastReportedTooltipTargetMissing=i,H&&H(i))},[H]),B=u.useCallback(({forceAppearanceLayout:i,forceUpdatePosition:S}={})=>{const dt=nt.current,_t=mt.current,Bt=ut.current,zt=pt.current,Gt=bt.current,$t=ht.current,Yt=gt.current,Xt=wt.current,Zt=Tt.current,qt=Et.current,Jt=yt.current,Kt=Lt.current;if(!dt||!_t||!Bt||!$||!zt||!Gt||!$t||!Yt||!Xt||!Zt||!qt||!Jt||!Kt||!vt)return;const p=a.current,{tooltipTargetParams:Ft}=p;Le();let V=l,Qt=!1;V===y.TOOLTIP&&!E&&!Ft&&(p.tooltipTargetMissing?(V=y.BUBBLE,Qt=!0):V=null);const te=V!==p.appearance,ue=b!==p.width;if((i||te||ue||t!==p.theme||_!=p.backdrop||q!=p.backdropPadding||z!==p.desiredTooltipPlacement)&&(p.appearance=V,p.width=b,p.theme=t,p.backdrop=_,p.backdropPadding=q,p.desiredTooltipPlacement=z,S=!0,je({layoutState:p,width:b,position:s,absoluteWidth:T,root:dt,bubble:_t,bubbleFrameRoot:$,avatar:zt,avatarNotch:Gt,modalBackdrop:Kt,dir:at})),!P){const X=$.offsetHeight,Ct=Wt(),St=Dt()<800?0:At,ce=t.avatarType===it.NONE?0:V===y.BUBBLE?Mt+t.avatarSize:V===y.MODAL?t.avatarSize/2:0,ee=Ct-2*St-ce,Ut=Math.min(X,ee);if(V&&Ut!==p.bubbleFrameHeight){if(p.bubbleFrameHeight=Ut,d(Bt,"height",rt(Ut)),Ee(Bt)&&Bt.contentDocument){const fe=Bt.contentDocument.documentElement;fe.style.overflowY=X<=ee?"hidden":"scroll"}S=!0}}if(S&&V){let X=te;if(V===y.TOOLTIP){const Ct=p.tooltipTargetParams&&p.tooltipTargetParams.targetEl,St=p.prevTooltipTargetParams&&p.prevTooltipTargetParams.targetEl;Ct!==St&&(X=!0)}p.prevTooltipTargetParams=p.tooltipTargetParams,Ne({layoutState:p,animateIn:X,position:s,absoluteWidth:T,absoluteHeight:M,desiredTooltipPlacement:z,root:dt,bubble:_t,tooltipNotch:$t,tooltipBackdrop:Yt,tooltipBlockTop:Xt,tooltipBlockRight:Zt,tooltipBlockBottom:qt,tooltipBlockLeft:Jt,dir:at})}if(V===y.TOOLTIP){const X=Ft&&Ft.targetEl;X&&p.stepKeyScrolledIntoView!==m&&p.targetScrolledIntoView!==X&&(p.stepKeyScrolledIntoView=m,p.targetScrolledIntoView=X,Ie(X))}else p.stepKeyScrolledIntoView=void 0,p.targetScrolledIntoView=null;Y(Qt),lt(V)},[vt,$,m,l,b,t,s,T,M,E,z,_,q,P,Y,at]),K=u.useRef(B);K.current=B;const ct=u.useRef(!1);u.useEffect(()=>{const i=()=>{ct.current=!0};return window.addEventListener("pagehide",i),()=>window.removeEventListener("pagehide",i)},[]);const ot=()=>{window.clearTimeout(a.current.tooltipTargetMissingTimeout),a.current.tooltipTargetMissingTimeout=void 0};u.useEffect(()=>ot,[]);const re=u.useCallback(()=>{const i=a.current;if(i.tooltipTargetParams=null,E||(i.tooltipPlacement=null),l!==y.TOOLTIP){ot(),i.tooltipTargetMissing=!1;return}if(!E&&!i.tooltipTargetMissingTimeout){i.tooltipTargetMissing=!1;const S=f&&!ae(f)&&f.type===me.AUTO&&!f.autoData?1:parseFloat(t.tooltipMissingToleranceSeconds)*1e3;i.tooltipTargetMissingTimeout=window.setTimeout(()=>{if(!ct.current){if(f&&!ae(f)){let dt=f.autoData;if(f.autoData)try{dt=JSON.parse(f.autoData)}catch{}console.warn(`Userflow.js: Tooltip target not found on page.
1
+ import{r as u,R as w}from"./vendor.react.js";import{u as de,F as oe}from"./use-window-resize.js";import{c as A,k as y,p as it,m as me,q as j,y as be,x as c}from"./userflow.js";import{a as pe,f as he}from"./flow-host.styl.js";import{b as ge}from"./bubble-frame.styl.js";import{S as we}from"./logomark.js";import{o as Vt}from"./vendor.obj-str.js";import{u as Te}from"./use-selector-element-monitoring.js";import{a as Wt,g as Dt,c as rt,m as Ee,d as ae,M as le,k as Ht,n as ye,h as Le}from"./flow-condition-types.js";import{a as ve,g as Be}from"./stylesheets.js";import"./vendor.core-js.js";import{u as Me}from"./vendor.react-i18next.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]="0542032a-0d3f-4c00-8351-f0daea275e32",e._sentryDebugIdIdentifier="sentry-dbid-0542032a-0d3f-4c00-8351-f0daea275e32")}catch{}})();const ke=new URL("avatar-frame.css",import.meta.url).href;function Re(e,t){const o=window.Intercom;u.useEffect(()=>{if(!(!t||!e.autoHideIntercom||typeof o!="function"||A.autoHide3pDisabled)){try{o("update",{hide_default_launcher:!0})}catch(l){console.warn("Userflow.js: Error when hiding Intercom launcher",l)}return()=>{if(!A.autoHide3pDisabled)try{o("update",{hide_default_launcher:!1})}catch(l){console.warn("Userflow.js: Error when unhiding Intercom launcher",l)}}}},[o,e.autoHideIntercom,t]);const T=window.$crisp;u.useEffect(()=>{if(!(!t||!e.autoHideCrisp||!T||A.autoHide3pDisabled)){try{T.push(["do","chat:hide"])}catch(l){console.warn("Userflow.js: Error when hiding Crisp Chat",l)}return()=>{if(!A.autoHide3pDisabled)try{T.push(["do","chat:show"])}catch(l){console.warn("Userflow.js: Error when unhiding Crisp Chat",l)}}}},[T,e.autoHideCrisp,t]);const M=window.HubSpotConversations;u.useEffect(()=>{if(!(!t||!e.autoHideHubspot||!M||A.autoHide3pDisabled)){try{M.widget.remove()}catch(l){console.warn("Userflow.js: Error when hiding HubSpot Chat",l)}return()=>{if(!A.autoHide3pDisabled)try{M.widget.load()}catch(l){console.warn("Userflow.js: Error when unhiding HubSpot Chat",l)}}}},[M,e.autoHideHubspot,t]);const m=window.drift;u.useEffect(()=>{if(!(!t||!e.autoHideDrift||!m||A.autoHide3pDisabled)){try{m.api.widget.hide()}catch(l){console.warn("Userflow.js: Error when hiding Drift Chat",l)}return()=>{if(!A.autoHide3pDisabled)try{m.api.widget.show()}catch(l){console.warn("Userflow.js: Error when unhiding Drift Chat",l)}}}},[m,e.autoHideDrift,t])}const At=16,Mt=20,Ye=({company:e,theme:t,position:o,absoluteWidth:T,absoluteHeight:M,stepKey:m,stepAppearance:l,width:b,backgroundImageUrl:g,tooltipSelector:f,allowMissingTooltipTarget:E,tooltipPlacement:R,backdrop:_,tooltipTargetBlocked:W,backdropPadding:Q,zIndex:N,onTooltipTargetClick:L,onTooltipTargetMissingChange:H,onModalBackdropClick:Z,onVisibleChange:tt,speaking:D,noIframe:P,MadeWithUserflow:n,minimizeOnAvatarClick:F,autoHide3pEnabled:k,bubbleFrameRootRef:v,frameWrapperHtmlAttributes:O,rootChildren:x,children:r})=>{const s=o||"absolute",z=R||null,q=Q||"0",G=n||Oe,et=pe(),J=s==="fixed"?N??et+1:1,U=J-1,{i18n:kt}=Me(),at=kt.dir(),nt=u.useRef(null),mt=u.useRef(null),ut=u.useRef(null),[$,Rt]=u.useState(null),bt=u.useRef(null),pt=u.useRef(null),ht=u.useRef(null),gt=u.useRef(null),wt=u.useRef(null),Tt=u.useRef(null),Et=u.useRef(null),yt=u.useRef(null),Lt=u.useRef(null);u.useLayoutEffect(()=>{const i=nt.current.style;i.animation="none",i.visibility="hidden",i.position="absolute",i.top="-99999px",i.left="-99999px"},[]);const{loaded:Pt}=ve(window,he,t),[Ot,jt]=u.useState(!1),[Nt,xt]=u.useState(!1),vt=Pt&&Ot&&Nt;let[It,h]=u.useState(!1);l!==y.BUBBLE&&(F=!1,It=!1),u.useEffect(()=>{h(!1)},[m]);const a=u.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}),[C,lt]=u.useState(null),I=C!=null&&vt;u.useEffect(()=>{tt&&tt(I)},[tt,I]);const Y=u.useCallback(i=>{a.current.lastReportedTooltipTargetMissing!==i&&(a.current.lastReportedTooltipTargetMissing=i,H&&H(i))},[H]),B=u.useCallback(({forceAppearanceLayout:i,forceUpdatePosition:S}={})=>{const dt=nt.current,_t=mt.current,Bt=ut.current,zt=pt.current,Gt=bt.current,$t=ht.current,Yt=gt.current,Xt=wt.current,Zt=Tt.current,qt=Et.current,Jt=yt.current,Kt=Lt.current;if(!dt||!_t||!Bt||!$||!zt||!Gt||!$t||!Yt||!Xt||!Zt||!qt||!Jt||!Kt||!vt)return;const p=a.current,{tooltipTargetParams:Ft}=p;Le();let V=l,Qt=!1;V===y.TOOLTIP&&!E&&!Ft&&(p.tooltipTargetMissing?(V=y.BUBBLE,Qt=!0):V=null);const te=V!==p.appearance,ue=b!==p.width;if((i||te||ue||t!==p.theme||_!=p.backdrop||q!=p.backdropPadding||z!==p.desiredTooltipPlacement)&&(p.appearance=V,p.width=b,p.theme=t,p.backdrop=_,p.backdropPadding=q,p.desiredTooltipPlacement=z,S=!0,je({layoutState:p,width:b,position:s,absoluteWidth:T,root:dt,bubble:_t,bubbleFrameRoot:$,avatar:zt,avatarNotch:Gt,modalBackdrop:Kt,dir:at})),!P){const X=$.offsetHeight,Ct=Wt(),St=Dt()<800?0:At,ce=t.avatarType===it.NONE?0:V===y.BUBBLE?Mt+t.avatarSize:V===y.MODAL?t.avatarSize/2:0,ee=Ct-2*St-ce,Ut=Math.min(X,ee);if(V&&Ut!==p.bubbleFrameHeight){if(p.bubbleFrameHeight=Ut,d(Bt,"height",rt(Ut)),Ee(Bt)&&Bt.contentDocument){const fe=Bt.contentDocument.documentElement;fe.style.overflowY=X<=ee?"hidden":"scroll"}S=!0}}if(S&&V){let X=te;if(V===y.TOOLTIP){const Ct=p.tooltipTargetParams&&p.tooltipTargetParams.targetEl,St=p.prevTooltipTargetParams&&p.prevTooltipTargetParams.targetEl;Ct!==St&&(X=!0)}p.prevTooltipTargetParams=p.tooltipTargetParams,Ne({layoutState:p,animateIn:X,position:s,absoluteWidth:T,absoluteHeight:M,desiredTooltipPlacement:z,root:dt,bubble:_t,tooltipNotch:$t,tooltipBackdrop:Yt,tooltipBlockTop:Xt,tooltipBlockRight:Zt,tooltipBlockBottom:qt,tooltipBlockLeft:Jt,dir:at})}if(V===y.TOOLTIP){const X=Ft&&Ft.targetEl;X&&p.stepKeyScrolledIntoView!==m&&p.targetScrolledIntoView!==X&&(p.stepKeyScrolledIntoView=m,p.targetScrolledIntoView=X,Ie(X))}else p.stepKeyScrolledIntoView=void 0,p.targetScrolledIntoView=null;Y(Qt),lt(V)},[vt,$,m,l,b,t,s,T,M,E,z,_,q,P,Y,at]),K=u.useRef(B);K.current=B;const ct=u.useRef(!1);u.useEffect(()=>{const i=()=>{ct.current=!0};return window.addEventListener("pagehide",i),()=>window.removeEventListener("pagehide",i)},[]);const ot=()=>{window.clearTimeout(a.current.tooltipTargetMissingTimeout),a.current.tooltipTargetMissingTimeout=void 0};u.useEffect(()=>ot,[]);const re=u.useCallback(()=>{const i=a.current;if(i.tooltipTargetParams=null,E||(i.tooltipPlacement=null),l!==y.TOOLTIP){ot(),i.tooltipTargetMissing=!1;return}if(!E&&!i.tooltipTargetMissingTimeout){i.tooltipTargetMissing=!1;const S=f&&!ae(f)&&f.type===me.AUTO&&!f.autoData?1:parseFloat(t.tooltipMissingToleranceSeconds)*1e3;i.tooltipTargetMissingTimeout=window.setTimeout(()=>{if(!ct.current){if(f&&!ae(f)){let dt=f.autoData;if(f.autoData)try{dt=JSON.parse(f.autoData)}catch{}console.warn(`Userflow.js: Tooltip target not found on page.
2
2
  `,{type:f.type,autoData:dt,excludeText:f.excludeText,precision:f.precision,text:f.text,css:f.css})}ot(),i.tooltipTargetMissing=!0,K.current()}},S)}K.current()},[l,E,f,t.tooltipMissingToleranceSeconds]),ie=u.useCallback(i=>{const S=a.current;ot(),S.tooltipTargetParams&&S.tooltipTargetParams.targetEl!==i.targetEl&&(S.tooltipPlacement=null),S.tooltipTargetParams=i,B({forceUpdatePosition:!0})},[B]);Te({selector:l===y.TOOLTIP&&f||null,targetMoved:ie,targetLost:re,onTargetClick:L});const ne=u.useCallback(()=>B({forceAppearanceLayout:!0}),[B]);de(ne),u.useEffect(()=>{if(!$||P||typeof le!="function")return;let i;const S=new le(()=>{i||(i=window.requestAnimationFrame(()=>{i=void 0,K.current()}))});return S.observe($,{childList:!0,attributes:!0,subtree:!0}),()=>{S.disconnect(),i&&window.cancelAnimationFrame(i)}},[$,P]),u.useLayoutEffect(()=>{K.current()}),u.useLayoutEffect(()=>{s==="absolute"&&B({forceAppearanceLayout:!0})},[s,T,M]);const ft=i=>{i.preventDefault(),i.stopPropagation()};return Re(t,!!k&&C===y.BUBBLE),w.createElement("div",{ref:nt,"data-testid":"flow-chrome",className:"userflowjs-flow-chrome userflowjs-theme-root",style:Be(t),dir:at},w.createElement("div",{className:"userflowjs-bubble",ref:mt,style:{zIndex:J}},w.createElement("div",{className:Vt({"userflowjs-bubble-outline":!0,[`userflowjs-bubble-outline--bubble-placement-${(t.bubblePlacement||"").toLowerCase().replace(/_/,"-")}`]:!0,"userflowjs-bubble-outline--minimizable":!!F,"userflowjs-bubble-outline--minimized":It})},w.createElement("div",{className:"userflowjs-bubble__frame-wrapper",...O},w.createElement(oe,{className:"userflowjs-bubble__frame",elRef:ut,stylesheet:ge,theme:t,onStylesheetsLoad:jt,noIframe:P,title:l.toLowerCase()},w.createElement("div",{className:"userflowjs-bubble-frame-root",ref:i=>{v&&v(i),Rt(i)},style:g?{backgroundImage:`url("${encodeURI(g)}")`}:void 0},r,e.flowBranding&&w.createElement("div",{className:"userflowjs-bubble-made-with-userflow"},w.createElement("div",{className:"userflowjs-bubble-made-with-userflow__absolute"},w.createElement(G,{company:e},w.createElement(we,null),w.createElement("div",null,"Made with Userflow"))))))),w.createElement("div",{ref:bt,className:"userflowjs-bubble__avatar-notch"})),w.createElement(oe,{className:Vt({"userflowjs-bubble__avatar":!0,"userflowjs-bubble__avatar--minimizable":!!F,"userflowjs-bubble__avatar--speaking":!!D}),elRef:pt,stylesheet:ke,theme:t,onStylesheetsLoad:xt,noIframe:P,ariaHidden:!0,title:l.toLowerCase()},w.createElement("div",{className:Vt({"userflowjs-avatar-frame-root":!0,"userflowjs-avatar-frame-root--minimizable":!!F}),onClick:F?()=>h(i=>!i):void 0},w.createElement(Pe,{theme:t}))),w.createElement("div",{ref:ht,className:"userflowjs-bubble__tooltip-notch"})),w.createElement("div",{ref:gt,className:"userflowjs-tooltip-backdrop",onMouseDown:ft,style:{zIndex:U,pointerEvents:W?void 0:"none"}}),w.createElement("div",{ref:wt,className:"userflowjs-tooltip-block",onMouseDown:ft,style:{zIndex:U}}),w.createElement("div",{ref:Tt,className:"userflowjs-tooltip-block",onMouseDown:ft,style:{zIndex:U}}),w.createElement("div",{ref:Et,className:"userflowjs-tooltip-block",onMouseDown:ft,style:{zIndex:U}}),w.createElement("div",{ref:yt,className:"userflowjs-tooltip-block",onMouseDown:ft,style:{zIndex:U}}),w.createElement("div",{ref:Lt,className:"userflowjs-modal-backdrop",onMouseDown:ft,onClick:Z,style:{zIndex:U}}),x&&x({visible:I,bubbleFrame:ut.current}))},Pe=({theme:e})=>{const t="https://js.userflow.com/cartoon-avatars-no-bg/";let o;return e.avatarType===it.ASSET&&e.avatarAsset?o=e.avatarAsset.assetUrl:e.avatarType===it.CARTOON&&e.avatarName?o=t+e.avatarName+".svg?3":e.avatarType===it.URL&&e.avatarUrl?o=e.avatarUrl:o=t+"none.svg",w.createElement("img",{src:o,alt:""})},Oe=({company:e,children:t})=>w.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 je({layoutState:{appearance:e,theme:t,backdrop:o,tooltipTargetMissing:T},width:M,position:m,absoluteWidth:l,root:b,bubble:g,bubbleFrameRoot:f,avatar:E,avatarNotch:R,modalBackdrop:_,dir:W}){const Q=m==="absolute"?l||1024:rt(Dt()),{avatarSize:N,bubblePlacement:L}=t;let H=t.bubbleWidth,Z=null,tt=null,D=`userflowjs-bubble-frame-root userflowjs-bubble-frame-root--appearance-${e?.toLowerCase()}`,P="hidden",n=null,F=null,k=null,v=null,O="userflowjs-bubble__avatar-notch",x="hidden",r=null,s=null,z=null,q=null,G="userflowjs-modal-backdrop";switch((e===y.MODAL||!T&&e===y.BUBBLE&&o)&&(G+=" userflowjs-modal-backdrop--visible"),e){case y.BUBBLE:if(t.avatarType!==it.NONE){P="",x="",L===j.TOP_LEFT||L===j.TOP_CENTER||L===j.TOP_RIGHT?(Z=N+Mt,n=0,r=-2*Mt,O+=" userflowjs-bubble__avatar-notch--top"):(tt=N+Mt,k=0,z=-2*Mt,O+=" userflowjs-bubble__avatar-notch--bottom");const J=L===j.TOP_LEFT||L===j.TOP_CENTER||L===j.BOTTOM_LEFT||L===j.BOTTOM_CENTER||L===j.CENTER;W==="ltr"&&J||W==="rtl"&&!J?(v=0,q=N,O+=" userflowjs-bubble__avatar-notch--left"):(F=0,s=N,O+=" userflowjs-bubble__avatar-notch--right")}break;case y.MODAL:H=t.modalWidth,t.avatarType!==it.NONE&&(P="",v=`calc(50% - ${N/2}px)`,n=-N/2);break;case y.TOOLTIP:H=t.tooltipWidth;break}M!=null&&(H=M),H=Math.min(H,Q-2*At),b.classList.toggle("userflowjs-flow-chrome--position-absolute",m==="absolute"),b.classList.toggle("userflowjs-flow-chrome--position-relative",m==="relative"),b.classList.toggle("userflowjs-flow-chrome--position-fixed",m==="fixed"),b.classList.toggle("userflowjs-flow-chrome--appearance-modal",e===y.MODAL);const et=e!=null&&e!==y.HIDDEN;b.style.position="",b.style.top="",b.style.left="",b.style.visibility=et?"":"hidden",b.style.animation=et?"":"none",d(g,"width",rt(H)),d(g,"padding-top",Z),d(g,"padding-bottom",tt),f.className=D,d(E,"width",rt(t.avatarSize)),d(E,"height",rt(t.avatarSize)),E.style.visibility=P,d(E,"top",n),d(E,"right",F),d(E,"bottom",k),d(E,"left",v),R.className=O,R.style.visibility=x,d(R,"top",r),d(R,"right",s),d(R,"bottom",z),d(R,"left",q),_.className=G}function Ne({layoutState:e,animateIn:t,position:o,absoluteWidth:T,absoluteHeight:M,desiredTooltipPlacement:m,root:l,bubble:b,tooltipNotch:g,tooltipBackdrop:f,tooltipBlockTop:E,tooltipBlockRight:R,tooltipBlockBottom:_,tooltipBlockLeft:W,dir:Q}){const{appearance:N,theme:L,tooltipTargetParams:H,backdrop:Z,backdropPadding:tt}=e,{bubblePlacement:D}=L,P=At,n=L.tooltipNotchSize,F=10,{width:k,height:v}=b.getBoundingClientRect(),O=o==="absolute"?T||1024:rt(Dt()),x=o==="absolute"?M||768:rt(Wt());let r=0,s=0,z="userflowjs-bubble__tooltip-notch",q="hidden",G=null,et=null,J=null,U=null,kt="userflowjs-tooltip-backdrop",at=null,nt=null,mt=null,ut=null,$=null,Rt=null,bt=null,pt=null,ht="userflowjs-tooltip-block userflowjs-tooltip-block--top",gt=null,wt=null,Tt="userflowjs-tooltip-block userflowjs-tooltip-block--right",Et=null,yt=null,Lt="userflowjs-tooltip-block userflowjs-tooltip-block--bottom",Pt=null,Ot=null,jt="userflowjs-tooltip-block userflowjs-tooltip-block--left",Nt=null,xt=null;switch(N){case y.BUBBLE:{D===j.TOP_LEFT||D===j.BOTTOM_LEFT?r=L.bubbleX:D===j.TOP_CENTER||D===j.CENTER||D===j.BOTTOM_CENTER?r=(O-k)/2:r=O-k-L.bubbleX,D===j.TOP_LEFT||D===j.TOP_CENTER||D===j.TOP_RIGHT?s=L.bubbleY:D===j.CENTER?s=(x-v)/2:s=x-v-L.bubbleY,Q==="rtl"&&(r=O-r-k),r=Math.max(0,Math.min(O-k,r)),s=Math.max(0,Math.min(x-v,s));break}case y.MODAL:{let h=P;L.avatarType!==it.NONE&&(h+=L.avatarSize/2),r=P+(O-P*2-k)/2,s=h+(x-h-P-v)/2;break}case y.TOOLTIP:{let h;if(H){let{targetRect:a,viewportClipRect:C}=H;if(o==="absolute"){const B=l.offsetParent.getBoundingClientRect();C={top:0,right:O,bottom:x,left:0},a={top:a.top-B.top,right:a.right-B.left,bottom:a.bottom-B.top,left:a.left-B.left,width:a.width,height:a.height}}let lt=0;if(Z){const{paddingTop:B,paddingRight:K,paddingBottom:ct,paddingLeft:ot}=_e(tt);a={top:a.top-B,right:a.right+K,bottom:a.bottom+ct,left:a.left-ot,width:a.width+ot+K,height:a.height+B+ct},lt=Math.min(B,K,ct,ot)}const I=a,Y=L.backdropHighlightType==be.OUTSIDE?L.backdropHighlightSpread:0;if(Z&&Y&&(a={top:a.top-Y,right:a.right+Y,bottom:a.bottom+Y,left:a.left-Y,width:a.width+2*Y,height:a.height+2*Y}),h=xe({targetRect:a,bubbleWidth:k,bubbleHeight:v,containerWidth:O,containerHeight:x,viewportClipRect:C,tooltipNotchSize:n,currentTooltipPlacement:e.tooltipPlacement,desiredTooltipPlacement:m}),h===c.BELOW||h===c.ABOVE?(r=a.left+a.width/2-k/2,r=Math.max(P,Math.min(O-k-P,r)),U=Math.max(F,Math.min(k-F-n*2,a.left+a.width/2-n-r)),h===c.BELOW?G=-n*2:J=-n*2):h===c.RIGHT?(r=a.right+n,r=Math.max(r,C.left+n),r=Math.min(r,C.right+n),r=Math.max(r,n),r=Math.min(r,O-k)):(r=a.left-n-k,r=Math.max(r,C.left-k-n),r=Math.min(r,C.right-k-n),r=Math.max(r,0),r=Math.min(r,O-k-n)),h===c.LEFT||h===c.RIGHT?(s=a.top+a.height/2-v/2,s=Math.max(P,Math.min(x-v-P,s)),G=Math.max(F,Math.min(v-F-n*2,a.top+a.height/2-n-s)),h===c.LEFT?et=-n*2:U=-n*2):h===c.BELOW?(s=a.bottom+n,s=Math.max(s,C.top+n),s=Math.min(s,C.bottom+n),s=Math.max(s,n),s=Math.min(s,x-v)):(s=a.top-n-v,s=Math.max(s,C.top-v-n),s=Math.min(s,C.bottom-v-n),s=Math.max(s,0),s=Math.min(s,x-v-n)),Z){const B=window.getComputedStyle(H.targetEl);at=Math.max(0,I.top),nt=Math.max(0,O-I.right),mt=Math.max(0,x-I.bottom),ut=Math.max(0,I.left),$=Math.max(0,Ht(B.borderTopLeftRadius)+lt),Rt=Math.max(0,Ht(B.borderTopRightRadius)+lt),bt=Math.max(0,Ht(B.borderBottomRightRadius)+lt),pt=Math.max(0,Ht(B.borderBottomLeftRadius)+lt),gt=Math.max(0,I.right),wt=Math.max(0,I.top),Et=Math.max(0,I.right),yt=Math.max(0,I.bottom),Pt=Math.max(0,I.left),Ot=Math.max(0,I.bottom),Nt=Math.max(0,I.left),xt=Math.max(0,I.top)}}else h=m||c.BELOW,(h===c.BELOW||h===c.ABOVE)&&(U=k/2-n,h===c.BELOW?G=-n*2:J=-n*2),(h===c.LEFT||h===c.RIGHT)&&(G=v/2-n,h===c.LEFT?et=-n*2:U=-n*2);e.tooltipPlacement=h,z+=` userflowjs-bubble__tooltip-notch--${h.toLowerCase()}`,q="",Z&&(kt+=" userflowjs-tooltip-backdrop--visible",ht+=" userflowjs-tooltip-block--visible",Tt+=" userflowjs-tooltip-block--visible",Lt+=" userflowjs-tooltip-block--visible",jt+=" userflowjs-tooltip-block--visible");break}}b.style.transition="";let vt=r,It=s;if(t&&(b.style.opacity="0",N===y.TOOLTIP))switch(e.tooltipPlacement){case c.BELOW:s+=24;break;case c.ABOVE:s-=24;break;case c.RIGHT:r+=24;break;case c.LEFT:r-=24;break}if(o!=="relative"&&se(b,r,s),g.className=z,g.style.visibility=q,d(g,"top",G),d(g,"right",et),d(g,"bottom",J),d(g,"left",U),f.className=kt,d(f,"top",at),d(f,"right",nt),d(f,"bottom",mt),d(f,"left",ut),d(f,"border-top-left-radius",$),d(f,"border-top-right-radius",Rt),d(f,"border-bottom-right-radius",bt),d(f,"border-bottom-left-radius",pt),E.className=ht,d(E,"width",gt),d(E,"height",wt),R.className=Tt,d(R,"left",Et),d(R,"height",yt),_.className=Lt,d(_,"left",Pt),d(_,"top",Ot),W.className=jt,d(W,"width",Nt),d(W,"top",xt),t){b.offsetWidth;const h="opacity 250ms linear";N===y.TOOLTIP?b.style.transition=`${h}, transform 500ms cubic-bezier(0.25, 0.8, 0.5, 1)`:b.style.transition=h,b.style.opacity="1",o!=="relative"&&se(b,vt,It)}}function xe({targetRect:e,bubbleWidth:t,bubbleHeight:o,containerWidth:T,containerHeight:M,viewportClipRect:m,tooltipNotchSize:l,currentTooltipPlacement:b,desiredTooltipPlacement:g}){if(e.bottom<=m.top)return o+l<=M-m.top?c.BELOW:c.ABOVE;if(e.top>=m.bottom)return o+l<=m.bottom?c.ABOVE:c.BELOW;if(e.right<=m.left)return t+l<=T-m.left?c.RIGHT:c.LEFT;if(e.left>=m.right)return t+l<=m.right?c.LEFT:c.RIGHT;const f=R=>{const _=e.left+e.width/2,W=_>=m.left&&_<=m.right,Q=e.top+e.height/2,N=Q>=m.top&&Q<=m.bottom;switch(R){case c.BELOW:return M-e.bottom>o+l&&W;case c.ABOVE:return e.top>o+l&&W;case c.RIGHT:return T-e.right>t+l&&N;case c.LEFT:return e.left>t+l&&N}};if(g&&f(g))return g;if(b&&f(b))return b;const E=[{placement:c.BELOW,dist:e.top},{placement:c.ABOVE,dist:M-e.bottom},{placement:c.RIGHT,dist:e.left},{placement:c.LEFT,dist:T-e.right}];E.sort((R,_)=>R.dist-_.dist);for(const{placement:R}of E)if(f(R))return R;return c.BELOW}function d(e,t,o){o==null?e.style.removeProperty(t):e.style.setProperty(t,typeof o=="number"?o+"px":o,"important")}function se(e,t,o){t=Math.round(t),o=Math.round(o),e.style.transform=`translate3d(${t}px, ${o}px, 0px)`}function Ie(e){if(A.customScrollIntoView){A.customScrollIntoView(e);return}const{scrollPadding:t}=A;if(t&&ye(e)===document.scrollingElement){const o=t.top||0,T=t.right||0,M=t.bottom||0,m=t.left||0;let l=0,b=0;const g=e.getBoundingClientRect(),f=Dt(),E=Wt();if(g.top<o?l=g.top-o:g.bottom>E-M&&(l=g.bottom-E+M),g.left<m?b=g.left-m:g.right>f-T&&(b=g.right-f+T),l!=0||b!=0){window.scrollBy({top:l,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 _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=st(t[0]);return{paddingTop:o,paddingRight:o,paddingBottom:o,paddingLeft:o}}else if(t.length===2){const o=st(t[0]),T=st(t[1]);return{paddingTop:o,paddingRight:T,paddingBottom:o,paddingLeft:T}}else return{paddingTop:st(t[0]),paddingRight:st(t[1]),paddingBottom:st(t[2]),paddingLeft:st(t[3])}}function st(e){const t=parseInt(e,10);return isNaN(t)?0:t}export{Ye 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{L as R,r as l,s as a,k as te,t as re,v as p,w as K,x 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"./bubble-frame.styl.js";import{u as ue,i as fe}from"./client-context.js";import{o as U}from"./vendor.obj-str.js";import{a as de,b as he,g as Ee,D as Te,u as me}from"./stylesheets.js";import{w as pe,f as be,L as ge,S as Ce}from"./flow-host.styl.js";import"./vendor.html-parse-stringify2.js";import{F as Le}from"./FlowChrome.js";import{B as Re}from"./BubbleToolbar.js";import{b as we,r as V}from"./flow-condition-types.js";import{T as Ae}from"./Trigger.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"./use-window-resize.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./logomark.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]="689f8161-ebb6-47ba-8f74-4f17464d19b7",t._sentryDebugIdIdentifier="sentry-dbid-689f8161-ebb6-47ba-8f74-4f17464d19b7")}catch{}})();const ve=i.forwardRef(({appearance:t,icon:c,buttonText:f,theme:T,noAnimation:E,noFixed:w,onClick:e,onMouseEnter:s,onMouseLeave:o,noPointerEvents:n,zIndex:m},r)=>{const{loaded:C}=de(window,be,T),k=T&&t===R.BUTTON?T: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(T),zIndex:m||pe(ge),pointerEvents:n?"none":void 0},onClick:e,onMouseEnter:s,onMouseLeave:o};if(!C||!H)return null;switch(t){case R.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 R.BUTTON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--button":!0}),...d},f);case R.HIDDEN:return null;case R.ICON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--icon":!0}),...d},i.createElement(Te,{icon:c||"solid/info-circle",size:T.launcherIconSize}))}}),Ie="userflowjs-fixed-widget--visible",rt=({session:t,active:c})=>{const f=ue(),{version:T}=t,E=t.id,w=t.flow.id,e=t.version.launcher,[s,o]=u.useState(null),n=me(T.theme),m=t.locale?t.locale.standardLocaleId:n.languageId;u.useEffect(()=>{fe.changeLanguage(m)},[m]);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===R.BEACON?"center":"side"})),oe(()=>{Oe(S,h)}));let M;e.appearance===R.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()},q=()=>{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():L()},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))},L=u.useCallback(()=>{c&&(O(),f.deactivateLauncher(t))},[c,f,t,O]),j=()=>{c?L():D()},J=u.useCallback(({targetEl:h,clipEl:b,viewportClipRect:g})=>{d.current.targetEl=h,d.current.clipEl=b,d.current.viewportClipRect=g,A()},[A]),Q=u.useCallback(()=>{d.current.targetEl=void 0,d.current.clipEl=void 0,A(),L()},[A,L]);ne({selector:e.targetSelector,targetMoved:J,targetLost:Q,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)||L()};return window.addEventListener("click",h,{capture:!0}),()=>window.removeEventListener("click",h,{capture:!0})},[c,r,s,L]);const Y=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(Le,{company:t.flow.company,theme:n,position:"fixed",stepAppearance:te.TOOLTIP,width:e.tooltipWidth,tooltipSelector:e.tooltipAnchor===re.TARGET?d.current.targetEl:s,tooltipPlacement:Y,frameWrapperHtmlAttributes:{onMouseEnter:X,onMouseLeave:q},rootChildren:()=>i.createElement(i.Fragment,null,e.triggers.map(h=>i.createElement(Ae,{key:h.id,trigger:h})))},i.createElement(Re,{draftMode:t.draftMode,close:I?L: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:T,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:m,align:r}=E;switch(m===a.AUTO&&(m=a.TOP,r=p.END),m){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(m){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(m){case a.TOP:n-=s.height;break;case a.LEFT:o-=s.width;break}switch(m){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<T.left||o>T.right||n+s.height<T.top||n>T.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{rt as LauncherApp,rt as default};
1
+ import{R as i,r as u}from"./vendor.react.js";import{L as R,r as l,s as a,k as te,t as re,v as p,w as K,x 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"./bubble-frame.styl.js";import{u as ue,i as de}from"./client-context.js";import{o as U}from"./vendor.obj-str.js";import{a as fe,b as he,g as Ee,D as Te,u as me}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 Le}from"./FlowChrome.js";import{B as Re}from"./BubbleToolbar.js";import{b as we,r as V}from"./flow-condition-types.js";import{T as Ae}from"./Trigger.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"./use-window-resize.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./logomark.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]="19ab07e7-608e-4cce-90a8-190edd456809",t._sentryDebugIdIdentifier="sentry-dbid-19ab07e7-608e-4cce-90a8-190edd456809")}catch{}})();const ve=i.forwardRef(({appearance:t,icon:c,buttonText:d,theme:T,noAnimation:E,noFixed:w,onClick:e,onMouseEnter:s,onMouseLeave:o,noPointerEvents:n,zIndex:m},r)=>{const{loaded:C}=fe(window,be,T),k=T&&t===R.BUTTON?T: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(T),zIndex:m||pe(ge),pointerEvents:n?"none":void 0},onClick:e,onMouseEnter:s,onMouseLeave:o};if(!C||!H)return null;switch(t){case R.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 R.BUTTON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--button":!0}),...f},d);case R.HIDDEN:return null;case R.ICON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--icon":!0}),...f},i.createElement(Te,{icon:c||"solid/info-circle",size:T.launcherIconSize}))}}),Ie="userflowjs-fixed-widget--visible",rt=({session:t,active:c})=>{const d=ue(),{version:T}=t,E=t.id,w=t.flow.id,e=t.version.launcher,[s,o]=u.useState(null),n=me(T.theme),m=t.locale?t.locale.standardLocaleId:n.languageId;u.useEffect(()=>{de.changeLanguage(m)},[m]);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===R.BEACON?"center":"side"})),oe(()=>{Oe(S,h)}));let M;e.appearance===R.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()},q=()=>{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():L()},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))},L=u.useCallback(()=>{c&&(O(),d.deactivateLauncher(t))},[c,d,t,O]),j=()=>{c?L():D()},J=u.useCallback(({targetEl:h,clipEl:b,viewportClipRect:g})=>{f.current.targetEl=h,f.current.clipEl=b,f.current.viewportClipRect=g,A()},[A]),Q=u.useCallback(()=>{f.current.targetEl=void 0,f.current.clipEl=void 0,A(),L()},[A,L]);ne({selector:e.targetSelector,targetMoved:J,targetLost:Q,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)||L()};return window.addEventListener("click",h,{capture:!0}),()=>window.removeEventListener("click",h,{capture:!0})},[c,r,s,L]);const Y=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(Le,{company:t.flow.company,theme:n,position:"fixed",stepAppearance:te.TOOLTIP,width:e.tooltipWidth,tooltipSelector:e.tooltipAnchor===re.TARGET?f.current.targetEl:s,tooltipPlacement:Y,frameWrapperHtmlAttributes:{onMouseEnter:X,onMouseLeave:q},rootChildren:()=>i.createElement(i.Fragment,null,e.triggers.map(h=>i.createElement(Ae,{key:h.id,trigger:h})))},i.createElement(Re,{draftMode:t.draftMode,close:I?L: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:T,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:m,align:r}=E;switch(m===a.AUTO&&(m=a.TOP,r=p.END),m){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(m){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(m){case a.TOP:n-=s.height;break;case a.LEFT:o-=s.width;break}switch(m){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<T.left||o>T.right||n+s.height<T.top||n>T.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{rt as LauncherApp,rt as default};
2
2
  //# sourceMappingURL=LauncherApp.js.map
@@ -1,2 +1,2 @@
1
- import{R as t}from"./vendor.react.js";import{u as i}from"./client-context.js";import{w as a,f as r,N as n}from"./flow-host.styl.js";import{a as c,D as l}from"./stylesheets.js";import{a as m}from"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.html-parse-stringify2.js";import"./vendor.object-assign.js";import"./vendor.i18next.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./userflow.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./flow-condition-types.js";import"./vendor.date-fns.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="cfbe9961-01c9-4202-9f1d-2fa04c36332c",e._sentryDebugIdIdentifier="sentry-dbid-cfbe9961-01c9-4202-9f1d-2fa04c36332c")}catch{}})();const T=({notifications:e})=>{const{loaded:s}=c(window,r);return s?t.createElement("div",{className:"userflowjs-notifications",style:{zIndex:a(n)}},e.map(o=>t.createElement(f,{key:o.id,notification:o}))):null},f=({notification:e})=>{const s=i();return t.createElement("div",{className:"userflowjs-notifications__toast"},t.createElement("div",{className:"userflowjs-notifications__toast-content"},t.createElement("span",{className:"userflowjs-notifications__toast-label"},e.label),e.message),t.createElement("div",{className:"userflowjs-notifications__toast-dismiss",onClick:()=>s.dismissNotification(e.id)},t.createElement(l,{icon:m})))};export{T as NotificationsApp,T as default};
1
+ import{R as t}from"./vendor.react.js";import{u as a}from"./client-context.js";import{w as i,f as r,N as n}from"./flow-host.styl.js";import{a as l,D as m}from"./stylesheets.js";import{a as c}from"./vendor.fortawesome.pro-regular-svg-icons.js";import"./vendor.core-js.js";import"./vendor.object-assign.js";import"./vendor.i18next.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./userflow.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./flow-condition-types.js";import"./vendor.date-fns.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="562d3b04-2e5f-419f-a8c7-5563c169349a",e._sentryDebugIdIdentifier="sentry-dbid-562d3b04-2e5f-419f-a8c7-5563c169349a")}catch{}})();const T=({notifications:e})=>{const{loaded:s}=l(window,r);return s?t.createElement("div",{className:"userflowjs-notifications",style:{zIndex:i(n)}},e.map(o=>t.createElement(f,{key:o.id,notification:o}))):null},f=({notification:e})=>{const s=a();return t.createElement("div",{className:"userflowjs-notifications__toast"},t.createElement("div",{className:"userflowjs-notifications__toast-content"},t.createElement("span",{className:"userflowjs-notifications__toast-label"},e.label),e.message),t.createElement("div",{className:"userflowjs-notifications__toast-dismiss",onClick:()=>s.dismissNotification(e.id)},t.createElement(m,{icon:c})))};export{T as NotificationsApp,T as default};
2
2
  //# sourceMappingURL=NotificationsApp.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.html-parse-stringify2.js","vendor.object-assign.js","userflow.js","vendor.phoenix.js","vendor.uuid.js","client-context.js","vendor.i18next.js","vendor.react-i18next.js","vendor.babel.runtime.js","vendor.fortawesome.pro-regular-svg-icons.js","vendor.dompurify.js","vendor.marked.js","vendor.obj-str.js","bubble-frame.styl.js","flow-condition-types.js","vendor.date-fns.js","stylesheets.js","vendor.fortawesome.pro-solid-svg-icons.js","vendor.react-dom.js","vendor.scheduler.js","flow-host.styl.js","use-window-resize.js","logomark.js","ChecklistUI.js","BubbleToolbar.js","use-element-rect.js"])))=>i.map(i=>d[i]);
2
- import{a as k,C as U,c as ve,u as re,g as $t,b as Xe,d as Ye,E as zt,F as Vt,e as Kt,f as et,S as tt,A as Et,h as nt,_ as qt}from"./userflow.js";import{r as l,R as e}from"./vendor.react.js";import{u as T,i as se}from"./client-context.js";import{f as Qt,u as Zt,w as Gt,C as Jt}from"./flow-host.styl.js";import{S as Xt,b as xe,R as P,h as Yt,s as Me,a as O,n as en}from"./bubble-frame.styl.js";import{M as ge,g as rt,a as st,b as _}from"./flow-condition-types.js";import{D as S,u as tn,a as nn,g as rn}from"./stylesheets.js";import{u as sn,F as Be}from"./use-window-resize.js";import{o as F}from"./vendor.obj-str.js";import{S as on}from"./logomark.js";import"./vendor.html-parse-stringify2.js";import{f as cn,C as an}from"./ChecklistUI.js";import{f as ln,a as bt,b as un,c as dn,d as mn,e as pt,g as K,h as fn,i as hn,j as wn,k as En}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{B as bn}from"./BubbleToolbar.js";import{u as pn}from"./use-element-rect.js";import{u as q}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]="891f209c-a285-4a8d-9dab-e14049f94232",t._sentryDebugIdIdentifier="sentry-dbid-891f209c-a285-4a8d-9dab-e14049f94232")}catch{}})();function vn(t,n,r){return t.resourceCenterAutoDividers?ot(n)||ot(r):!1}function ot(t){return t!==k.ACTION&&t!==k.ANNOUNCEMENTS&&t!==k.ASSISTANT&&t!==k.CONTACT&&t!==k.FLOWS&&t!==k.KNOWLEDGE_BASE&&t!==k.SUBPAGE}const d=window,ke={[U.CRISP]:{configure:({onShow:t,onHide:n})=>{gn();let r=!1,s=!1;const o=()=>{r||s?(d.$crisp.push(["do","chat:show"]),t()):(d.$crisp.push(["do","chat:hide"]),n())},c=()=>{r=!0,o()};d.$crisp.push(["on","chat:opened",c]);const a=()=>{r=!1,o()};d.$crisp.push(["on","chat:closed",a]);const u=()=>{s=!0,o()};d.$crisp.push(["on","message:received",u]);const m=()=>{const b=document.getElementById("crisp-chatbox");if(!b||window.getComputedStyle(b).display!=="block")return!1;const h=b.querySelector('[data-id="new_messages"]');return!(!h||window.getComputedStyle(h).display!=="block")},i=()=>{const b=m();b!==s&&(s=b,o())},v=window.setInterval(i,200);return()=>{d.$crisp.push(["off","chat:opened",c]),d.$crisp.push(["off","chat:closed",a]),d.$crisp.push(["off","message:received",u]),window.clearInterval(v)}},show:()=>{d.$crisp.push(["do","chat:show"]),d.$crisp.push(["do","chat:open"])},hide:()=>{d.$crisp.push(["do","chat:hide"]),d.$crisp.push(["do","chat:close"])}},[U.CUSTOM]:{configure:()=>()=>{},show:({block:t})=>{try{new Function(`"use strict";
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.react-i18next.js","vendor.babel.runtime.js","vendor.fortawesome.pro-regular-svg-icons.js","vendor.dompurify.js","vendor.marked.js","vendor.obj-str.js","bubble-frame.styl.js","flow-condition-types.js","vendor.date-fns.js","stylesheets.js","vendor.fortawesome.pro-solid-svg-icons.js","vendor.react-dom.js","vendor.scheduler.js","flow-host.styl.js","use-window-resize.js","logomark.js","ChecklistUI.js","BubbleToolbar.js","use-element-rect.js"])))=>i.map(i=>d[i]);
2
+ import{a as k,C as U,c as ve,u as re,g as $t,b as Xe,d as Ye,E as zt,F as Vt,e as Kt,f as et,S as tt,A as Et,h as nt,_ as qt}from"./userflow.js";import{r as l,R as e}from"./vendor.react.js";import{u as T,i as se}from"./client-context.js";import{f as Qt,u as Zt,w as Gt,C as Jt}from"./flow-host.styl.js";import{S as Xt,b as xe,R as P,h as Yt,s as Me,a as O,n as en}from"./bubble-frame.styl.js";import{M as ge,g as rt,a as st,b as _}from"./flow-condition-types.js";import{D as S,u as tn,a as nn,g as rn}from"./stylesheets.js";import{u as sn,F as Be}from"./use-window-resize.js";import{o as F}from"./vendor.obj-str.js";import{S as on}from"./logomark.js";import"./vendor.core-js.js";import{f as cn,C as an}from"./ChecklistUI.js";import{f as ln,a as bt,b as un,c as dn,d as mn,e as pt,g as K,h as fn,i as hn,j as wn,k as En}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{B as bn}from"./BubbleToolbar.js";import{u as pn}from"./use-element-rect.js";import{u as q}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]="105b0c04-e169-4b45-a62f-06a6f04373e1",t._sentryDebugIdIdentifier="sentry-dbid-105b0c04-e169-4b45-a62f-06a6f04373e1")}catch{}})();function vn(t,n,r){return t.resourceCenterAutoDividers?ot(n)||ot(r):!1}function ot(t){return t!==k.ACTION&&t!==k.ANNOUNCEMENTS&&t!==k.ASSISTANT&&t!==k.CONTACT&&t!==k.FLOWS&&t!==k.KNOWLEDGE_BASE&&t!==k.SUBPAGE}const d=window,ke={[U.CRISP]:{configure:({onShow:t,onHide:n})=>{gn();let r=!1,s=!1;const o=()=>{r||s?(d.$crisp.push(["do","chat:show"]),t()):(d.$crisp.push(["do","chat:hide"]),n())},c=()=>{r=!0,o()};d.$crisp.push(["on","chat:opened",c]);const a=()=>{r=!1,o()};d.$crisp.push(["on","chat:closed",a]);const u=()=>{s=!0,o()};d.$crisp.push(["on","message:received",u]);const m=()=>{const b=document.getElementById("crisp-chatbox");if(!b||window.getComputedStyle(b).display!=="block")return!1;const h=b.querySelector('[data-id="new_messages"]');return!(!h||window.getComputedStyle(h).display!=="block")},i=()=>{const b=m();b!==s&&(s=b,o())},v=window.setInterval(i,200);return()=>{d.$crisp.push(["off","chat:opened",c]),d.$crisp.push(["off","chat:closed",a]),d.$crisp.push(["off","message:received",u]),window.clearInterval(v)}},show:()=>{d.$crisp.push(["do","chat:show"]),d.$crisp.push(["do","chat:open"])},hide:()=>{d.$crisp.push(["do","chat:hide"]),d.$crisp.push(["do","chat:close"])}},[U.CUSTOM]:{configure:()=>()=>{},show:({block:t})=>{try{new Function(`"use strict";
3
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(!d.fcWidget)throw new Error("Freshchat is not installed");let r=!1,s=!1;const o=()=>{r||s?t():n()},c=()=>{r=!0,o()};d.fcWidget.on("widget:opened",c);const a=()=>{r=!1,o()};d.fcWidget.on("widget:closed",a);const u=()=>{const i=!!document.querySelector("#fc_frame.h-open-notify");i!==s&&(s=i,o())},m=window.setInterval(u,200);return d.fcWidget.on("unreadCount:notify",u),()=>{d.fcWidget.off("widget:opened",c),d.fcWidget.off("widget:closed",a),d.fcWidget.off("unreadCount:notify",u),window.clearInterval(m)}},show:()=>{d.fcWidget.open()},hide:()=>{d.fcWidget.close()}},[U.HELPSCOUT]:{configure:({onShow:t,onHide:n})=>{if(!d.Beacon)throw new Error("Help Scout is not installed");kn();let r=!1,s=!1;const o=()=>{r||s?(lt(),t()):(Ce(),n())},c=()=>{r=!0,o()};d.Beacon("on","open",c),d.Beacon("info")?.status.isOpened&&c();const a=()=>{r=!1,o()};d.Beacon("on","close",a);const u=()=>{const i=!!document.querySelector(".BeaconNotificationsFrame");i!==s&&(s=i,o())},m=window.setInterval(u,200);return()=>{d.Beacon("off","open",c),d.Beacon("off","close",a),window.clearInterval(m)}},show:()=>{lt(),d.Beacon("open")},hide:()=>{Ce(),d.Beacon("close")}},[U.HUBSPOT]:{configure:({onShow:t,onHide:n})=>{const r=()=>{const c=document.getElementById("hubspot-messages-iframe-container");if(!d.HubSpotConversations||!c)return;window.clearInterval(o),Cn();let a=!1,u=!1;const m=()=>{a||u?(je(),t()):(Ne(),n())},i=()=>{const h=!!document.querySelector("#hubspot-messages-iframe-container .hs-shadow-container.active");h!==a&&(a=h,m())},v=new ge(i);v.observe(c,{attributes:!0,subtree:!0,attributeFilter:["class"]}),i();const b=({unreadCount:h})=>{const f=h>0;f!==u&&(u=f,m())};d.HubSpotConversations.on("unreadConversationCountChanged",b),s=()=>{v.disconnect(),d.HubSpotConversations.off("unreadConversationCountChanged",b)}};let s=()=>{window.clearInterval(o)};const o=window.setInterval(r,100);return r(),()=>{s()}},show:()=>{je(),d.HubSpotConversations.widget.open()},hide:()=>{Ne(),d.HubSpotConversations.widget.close()}},[U.INTERCOM]:{configure:({onShow:t,onHide:n})=>{if(!d.Intercom)throw new Error("Intercom is not installed");return jn(),Se.add(t),ye.add(n),()=>{Se.delete(t),ye.delete(n)}},show:()=>{vt(),d.Intercom("show")},hide:()=>{Ie(),d.Intercom("hide")}},[U.ZENDESK]:{configure:({onShow:t,onHide:n})=>{if(!d.zE)throw new Error("Zendesk is not installed");Nn();let r=!1,s=!1;const o=()=>{r||s?(d.zE("webWidget","show"),t()):(d.zE("webWidget","hide"),n())},c=()=>{r=!0,s=!1,o()};Re.add(c);const a=()=>{r=!1,s=!1,o()};Te.add(a);const u=m=>{const i=m>0;i!==s&&(s=i,o())};return Ae.add(u),()=>{Re.delete(c),Te.delete(a),Ae.delete(u)}},show:()=>{d.zE("webWidget","show"),d.zE("webWidget","open")},hide:()=>{d.zE("webWidget","hide"),d.zE("webWidget","close")}},[U.ZENDESK_MESSENGER]:{configure:({onShow:t,onHide:n})=>{if(!d.zE)throw new Error("Zendesk is not installed");const r=()=>{t()},s=()=>{n()};return _e.add(r),Le.add(s),Sn(),()=>{_e.delete(r),Le.delete(s)}},show:()=>{d.zE("messenger","open")},hide:()=>{d.zE("messenger","close")}}};let ct=!1;function gn(){ct||(ct=!0,d.$crisp||(d.$crisp=[]),d.$crisp.push(["do","chat:hide"]))}let at=!1;function kn(){at||(at=!0,Ce())}function lt(){d.Beacon("config",{display:{style:"icon"}})}function Ce(){d.Beacon("config",{display:{style:"manual"}})}let ut=!1,Fe=!1;function Cn(){ut||(ut=!0,Fe?je():Ne())}function je(){Fe=!0,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","visible","important")}function Ne(){Fe=!1,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","hidden","important")}let it=!1,Se=new Set,ye=new Set;function jn(){if(it)return;it=!0,Ie();let t=!1,n=!1;const r=()=>{vt();for(const a of Se)a()},s=()=>{Ie();for(const a of ye)a()},o=()=>{t||n?r():s()};d.Intercom("onShow",()=>{t=!0,o()}),d.Intercom("onHide",()=>{t=!1,o()});const c=()=>{const a=!!document.querySelector('iframe[name="intercom-borderless-frame"], iframe[name="intercom-notifications-frame"]');n!==a&&(n=a,o())};d.Intercom("onUnreadCountChange",()=>{c()}),window.setInterval(c,200)}function vt(){d.Intercom("update",{hide_default_launcher:!1,vertical_padding:20})}function Ie(){d.Intercom("update",{hide_default_launcher:!0,vertical_padding:100})}let dt=!1,Re=new Set,Te=new Set,Ae=new Set;function Nn(){dt||(dt=!0,d.zE("webWidget","hide"),d.zE("webWidget","close"),d.zE("webWidget:on","open",()=>{for(const t of Re)t()}),d.zE("webWidget:on","close",()=>{for(const t of Te)t()}),d.zE("webWidget:on","chat:unreadMessages",t=>{for(const n of Ae)n(t)}))}let mt=!1,_e=new Set,Le=new Set;function Sn(){mt||(mt=!0,d.zE("messenger:on","open",function(){for(const t of _e)t()}),d.zE("messenger:on","close",function(){for(const t of Le)t()}))}const yn=t=>l.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},t),l.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"}),l.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"})),D=({center:t,fadeIn:n})=>e.createElement("div",{className:F({"userflowjs-spinner":!0,"userflowjs-spinner--center":!!t,"userflowjs-spinner--fade-in":!!n})},e.createElement("svg",{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},e.createElement("circle",{className:"userflowjs-spinner__bg",fill:"none",cx:12,cy:12,r:10,style:{strokeWidth:"4px"}}),e.createElement("circle",{className:"userflowjs-spinner__fill",fill:"none",cx:12,cy:12,r:10,transform:"translate(12, 12) rotate(-90) translate(-12, -12)",style:{strokeWidth:"4px",strokeDasharray:10*2*Math.PI*.25+"px, 1000"}})));function ce({message:t,skip:n}){const r=T(),[s,o]=l.useState(!0),[c,a]=l.useState(!1),[u,m]=l.useState(null),[i,v]=l.useState(null),[b,h]=l.useState(null),f=l.useRef(0),p=l.useRef(null),g=l.useRef(()=>{});return l.useEffect(()=>{if(n)return;const y=JSON.stringify(t);if(y===p.current)return;p.current=y;const I=++f.current;let N,C;const x=async()=>{o(!0);try{C=t;const M=await r.send(t,{handlesRejection:!0});if(I!==f.current)return;N=M,m(N),v(t),h(null)}catch(M){if(I!==f.current)return;h(M)}finally{o(!1)}};let $=!1;g.current=async(M,ae)=>{if(!$){$=!0,a(!0);try{const B=M(N,C);C=B;const le=await r.send(B,{handlesRejection:!0});if(I!==f.current)return;N=ae(N,le),m(N),h(null)}catch(B){if(I!==f.current)return;h(B)}finally{$=!1,a(!1)}}},x()},[n,r,t]),{loading:s,loadingMore:c,data:u,messageForData:i,error:b,loadMore:g.current}}const In=200;function De(t,n){const[r,s]=l.useState(t),o=l.useRef(void 0),c=l.useCallback(u=>{window.clearTimeout(o.current),s(u),n(u)},[n]),a=l.useCallback(u=>{window.clearTimeout(o.current),s(u),o.current=window.setTimeout(()=>{n(u)},In)},[n]);return l.useEffect(()=>()=>{window.clearTimeout(o.current)},[]),[r,a,c]}const Rn=({textareaRef:t,value:n,onChange:r,onBlur:s,onKeyDown:o,onMouseDown:c,placeholder:a,disabled:u,readOnly:m,className:i,mirrorClassName:v,textareaClassName:b,children:h})=>{let f=n||a||"";return(f===""||f.endsWith(`
4
4
  `))&&(f+=" "),i=i||"growing-textarea",v=v||i+"__mirror",e.createElement("div",{className:i},e.createElement("div",{className:v+" "+(b||"")},f),e.createElement("textarea",{ref:t,value:n,onChange:p=>r&&r(p.target.value),onBlur:s,onKeyDown:o,onMouseDown:c,placeholder:a,disabled:u,readOnly:m,className:b}),h)},Tn=({textareaRef:t,value:n,onChange:r,onSubmit:s,placeholder:o,readOnly:c})=>{const a=()=>{s&&s()};return e.createElement("div",{className:"userflowjs-assistant-chat-input"},e.createElement(Rn,{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:u=>{!u.shiftKey&&u.key==="Enter"&&(u.preventDefault(),a())}}),e.createElement("button",{"data-testid":"assistant-chat-input-submit",className:"userflowjs-assistant-chat-input__submit",onClick:()=>a()},e.createElement(S,{icon:ln})))};function An(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function gt(t){return ve.linkUrlDecorator?ve.linkUrlDecorator(t):t}const ft=5,_n=async()=>(await qt(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]))).ResourceCenterAssistantChat,ht=({session:t,isOpen:n,flowSession:r,checklistSession:s})=>{const o=T(),{t:c}=q(),{company:a}=t.flow,{version:u}=t,m=u.resourceCenter,i=tn(u.theme),v=t.locale?t.locale.standardLocaleId:t.version.theme.languageId;l.useEffect(()=>{se.changeLanguage(v)},[v]);const{loaded:b}=nn(window,Qt,i),[h,f]=l.useState(!1),p=b&&h,[g,y]=l.useState(rt()),[I,N]=l.useState(st()),C=l.useCallback(()=>{y(rt()),N(st())},[]);sn(C);const{zIndex:x,bringToFront:$}=Zt(),[M,ae]=l.useState(null),[B,le]=l.useState(null),[J,Rt]=l.useState(null),ue=l.useRef(null),[Q,Tt]=l.useState(null),[Ue,At]=l.useState(null),[Pe,_t]=l.useState(null),[Lt,xt]=l.useState(0),[Mt,Bt]=l.useState(0),ie=l.useCallback(()=>{B&&xt(Math.round(B.offsetWidth)),Bt(Math.round((J?.offsetHeight||0)+(Q?.offsetHeight||0)+(Ue?.offsetHeight||0)+(Pe?.offsetHeight||0)))},[B,J,Q,Ue,Pe]);l.useLayoutEffect(()=>{if(!M||typeof ge!="function")return;const w=new ge(()=>{ie()});return w.observe(M,{childList:!0,attributes:!0,subtree:!0}),()=>{w.disconnect()}},[M,ie]),l.useLayoutEffect(()=>{ie()});const[We,Oe]=l.useState(!1),de=l.useRef(),X=l.useCallback(()=>{Oe(!0),window.clearTimeout(de.current),de.current=window.setTimeout(()=>{Oe(!1)},i.resourceCenterTransitionDuration)},[i.resourceCenterTransitionDuration]);l.useEffect(()=>()=>{window.clearTimeout(de.current)},[]);const $e=l.useCallback(()=>{$(),X(),o.openResourceCenter()},[$,o,X]),me=l.useCallback(()=>{X(),o.closeResourceCenter()},[o,X]),[ze,z]=l.useState(!1);l.useEffect(()=>{if(ze){if(!An())if(n){const w='button:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), input, textarea';let j=Q?.querySelector(".userflowjs-assistant-chat-input textarea")||Q?.querySelector(w)||J?.querySelector(w);if(j){const L=j.closest&&j.closest(".userflowjs-resource-center-checklist")||null;L?cn(L):j.focus({preventScroll:!0})}}else B?.focus({preventScroll:!0});z(!1)}},[ze,n,Q,J,B]),l.useEffect(()=>{const w=M?.ownerDocument.defaultView;if(!n||!w)return;const j=L=>{L.key==="Escape"&&(me(),z(!0))};return w.addEventListener("keydown",j),()=>w.removeEventListener("keydown",j)},[n,M,z,me]);const[E,fe]=l.useState(()=>Bn(t,re.getItem(`resourceCenterRoute:v1:${t.id}`))),H=l.useCallback((w,j)=>{fe(w);const L=Mn(w);L?re.setItem(`resourceCenterRoute:v1:${t.id}`,L):re.removeItem(`resourceCenterRoute:v1:${t.id}`),j?.detail===0&&z(!0)},[t.id]);l.useEffect(()=>{if(!t.draftMode||!E||!("block"in E)||!E.block)return;const w=m.blocks.find(j=>j.cvid===E.block.cvid);w?JSON.stringify(w)!==JSON.stringify(E.block)&&fe({...E,block:w}):fe(null),E.block},[t.draftMode,m,E]);const Y=l.useMemo(()=>m.blocks.filter(w=>!(w.type===k.CHECKLIST&&!s||w.type===k.DIVIDER&&i.resourceCenterAutoDividers||w.hiddenWhenFlowsActive&&w.hiddenWhenFlowsActive.some(j=>j===r?.flow.id||j===s?.flow.id))),[m,r,s,i.resourceCenterAutoDividers]),he=l.useMemo(()=>Ct(Y),[Y]),we=l.useMemo(()=>!s||!m.blocks.some(w=>w.type===k.CHECKLIST)?0:$t(s),[m,s]),A=l.useMemo(()=>m.blocks.find(w=>w.type===k.CONTACT&&w.chatEnabled&&w.chatProvider),[m]),[Ft,Ve]=l.useState(!1),ee=l.useCallback(()=>{o.closeResourceCenter(),A&&A.chatProvider!==U.CUSTOM&&Ve(!0)},[o,A]),te=l.useCallback(()=>{Ve(!1)},[]),Ke=l.useCallback(()=>{if(A)try{ke[A.chatProvider].hide({block:A}),te()}catch(w){console.error(`Userflow.js: Error when hiding ${A.chatProvider}:`,w)}},[A,te]);l.useEffect(()=>{if(!A)return;ve.autoHide3pDisabled=!0;const w=ke[A.chatProvider];try{const j=w.configure({block:A,onShow:ee,onHide:te});return()=>{j()}}catch(j){console.error(`Userflow.js: Error when configuring ${A.chatProvider}:`,j);return}},[A,ee,te]),l.useEffect(()=>{n&&Ke()},[Ke,n]);const Z=l.useMemo(()=>m.blocks.find(w=>w.type===k.ANNOUNCEMENTS),[m]),Dt=!!E&&(E.kind==="search"||E.kind==="flows"||E.kind==="knowledgeBase"),qe=E?.kind==="assistant"||E?.kind==="announcementList"||E?.kind==="announcementShow",Ee=Math.min(qe?i.resourceCenterFullWidth:i.resourceCenterWidth,g-2*i.resourceCenterPaddingX),Ht=540,Ut=720,Pt={zIndex:i.resourceCenterZIndex!=null?i.resourceCenterZIndex:n?x:Gt(Jt),position:p?void 0:"absolute",visibility:p&&!Ft?void 0:"hidden"},Wt={width:(n?Ee:Lt)+"px",height:n?Math.min(Dt?Ht:qe?Ut:Mt,I-2*i.resourceCenterPaddingY,i.resourceCenterMaxHeight==null?Number.MAX_VALUE:i.resourceCenterMaxHeight)+"px":void 0},[Ot,Qe]=l.useState(!1),Ze=()=>{$e(),z(!0)},Ge=i.resourceCenterDisplayChecklistProgress&&s&&we>0?e.createElement("div",{"data-testid":"resource-center-launcher-badge",className:"userflowjs-resource-center-launcher-badge"},we,e.createElement("div",{className:"userflowjs-a11y-only"},"uncompleted tasks")):null;let ne="",be="";return i.resourceCenterLauncherTextMode===Xe.CHECKLIST_OVERRIDE&&s&&we>0?ne=s.version.checklist?.launcherText||"Get Started":i.resourceCenterLauncherTextMode!==Xe.NONE&&(be=m.buttonText),e.createElement(Xt.Provider,{value:t},e.createElement("div",{"data-testid":"resource-center-app",className:"userflowjs-resource-center-app userflowjs-theme-root",style:rn(i),dir:se.dir()},e.createElement("div",{className:F({"userflowjs-resource-center":!0,"userflowjs-resource-center--fixed":!0,[`userflowjs-resource-center--placement-${i.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0}),style:Pt},e.createElement("div",{className:"userflowjs-resource-center-frame-wrapper",onMouseEnter:()=>Qe(!0),onMouseLeave:()=>Qe(!1)},e.createElement(Be,{className:F({"userflowjs-resource-center-frame":!0,"userflowjs-resource-center-frame--animating":We,"userflowjs-resource-center-frame--open":n,"userflowjs-resource-center-frame--closed":!n}),style:Wt,stylesheet:xe,theme:i,onStylesheetsLoad:f,title:"Resource center"},p&&e.createElement(e.Fragment,null,e.createElement("div",{ref:ae,className:F({"userflowjs-resource-center-frame-root":!0,[`userflowjs-resource-center-frame-root--placement-${i.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0,"userflowjs-resource-center-frame-root--animating":We,"userflowjs-resource-center-frame-root--open":n,"userflowjs-resource-center-frame-root--closed":!n}),role:n?"dialog":void 0,"aria-label":n?m.headerText:void 0},e.createElement("div",{className:"userflowjs-resource-center-launcher-container"},e.createElement("button",{ref:le,className:F({"userflowjs-resource-center-launcher-button":!0,"userflowjs-resource-center-launcher-button--hover":Ot}),onClick:Ze,"aria-label":`Open ${m.headerText}`},Ge,ne&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},ne),(Ge||ne)&&e.createElement("div",{className:"userflowjs-resource-center-launcher-divider"}),be&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},be),e.createElement("div",{className:"userflowjs-resource-center-launcher-icon"},i.resourceCenterLauncherIconType===Ye.PLAINTEXT?"?":i.resourceCenterLauncherIconType===Ye.DEFAULT?e.createElement(yn,null):i.rcIconAsset&&i.rcIconAsset.assetUrl?e.createElement("img",{src:i.rcIconAsset.assetUrl,className:"company-icon",style:{height:`${i.rcIconSize}px`,width:`${i.rcIconSize}px`}}):e.createElement("span",null)))),e.createElement("div",{ref:ue,className:"userflowjs-resource-center-body",style:{width:Ee+"px"}},e.createElement("div",{ref:Tt,className:F({"userflowjs-resource-center-body-content":!0,"userflowjs-resource-center-body-content--padding":E?.kind!=="assistant","userflowjs-resource-center-body-content--same-background":i.sameBackground,"userflowjs-resource-center-body-content--with-made-with-userflow":a.resourceCenterBranding})},n&&e.createElement(e.Fragment,null,E?E.kind==="search"?e.createElement(Fn,{session:t,navigate:H}):E.kind==="email"?e.createElement(Dn,{block:E.block,session:t}):E.kind==="phone"?e.createElement(Hn,{block:E.block,session:t}):E.kind==="flows"?e.createElement(Un,{block:E.block,initialQ:E.initialQ,session:t,navigate:H}):E.kind==="knowledgeBase"?e.createElement(Pn,{block:E.block,initialQ:E.initialQ,session:t,bodyRef:ue}):E.kind==="subpage"?e.createElement(Wn,{block:E.block,session:t}):E.kind==="announcementList"||E.kind==="announcementShow"?e.createElement(On,{bodyRef:ue,session:t,route:E,navigate:H}):E.kind==="assistant"?e.createElement(Vn,{block:E.block,initialUserContent:E.initialUserContent,session:t,navigate:H,chatBlock:A,onChatShow:ee}):null:e.createElement(e.Fragment,null,Y.map((w,j)=>{const L=G[w.type],Je=Y[j+1];return L?e.createElement(e.Fragment,{key:w.id},e.createElement(L.View,{session:t,flowSession:r,checklistSession:s,block:w,navigate:H,onChatShow:ee}),Je&&vn(i,w.type,Je.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:At},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(on,null),e.createElement("div",null,"Made with Userflow")))),t.draftMode&&e.createElement("div",{className:"userflowjs-resource-center-preview"},e.createElement("div",{ref:_t,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:()=>{o.endFlow(t,{endReason:zt.USER_CLOSED})}},e.createElement(S,{icon:bt})))),e.createElement("div",{className:"userflowjs-resource-center-header",style:{width:Ee+"px"}},e.createElement("div",{ref:Rt,className:"userflowjs-resource-center-header-content"},E==null?e.createElement("div",{className:"userflowjs-resource-center-header-text"},m.headerText):e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:w=>H(E?.kind==="announcementShow"?{kind:"announcementList",block:E.block}:null,w)},e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(S,{icon:un})),e.createElement("div",{className:"userflowjs-resource-center-icon-button__text"},c("resource_center.back"))),e.createElement("div",{className:"flex-1"}),he.length>0&&e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:()=>{let w={kind:"search"};if(he.length===1){const j=he[0],L=G[j.type];L.routeTo&&(w=L.routeTo({block:j}))}E?.kind==="search"?H(null):(R(o,t,null,"Search icon"),H(w))},"aria-label":"Search"},e.createElement(S,{icon:dn})),e.createElement("button",{className:"userflowjs-resource-center-icon-button userflowjs-resource-center-close-button",onClick:w=>{me(),w.detail===0&&z(!0)},"aria-label":`Close ${m.headerText}`},e.createElement(S,{icon:mn}))))))),!n&&!r&&Z&&Z.unreadAnnouncementCount>0&&e.createElement(Ln,{theme:i,count:Z.unreadAnnouncementCount,onClick:Ze})),!n&&!r&&Z?.popoutAnnouncement&&e.createElement(xn,{session:t,open:$e,navigate:H,theme:i,block:Z}))))},Ln=({theme:t,count:n,onClick:r})=>{const[s,o]=l.useState(!1);return e.createElement(Be,{className:F({"userflowjs-resource-center-launcher-unread-badge":!0}),noScroll:!0,style:{position:s?void 0:"absolute",visibility:s?void 0:"hidden"},stylesheet:xe,theme:t,onStylesheetsLoad:o,title:"Resource center unread badge"},e.createElement(kt,{count:n,onClick:r}))},kt=({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:F({"userflowjs-unread-badge":!0,"userflowjs-unread-badge--clickable":!!n}),onClick:n},e.createElement("span",null,t),r)},xn=({session:t,open:n,navigate:r,theme:s,block:o})=>{const c=o.popoutAnnouncement,a=T(),[u,m]=l.useState(!1),{height:i,setEl:v}=pn(),b=()=>{oe(a,c)},h=20,f=l.useMemo(()=>CSS.supports("height: 100dvh")?"dvh":"vh",[]);return e.createElement("div",{className:"userflowjs-resource-center-popout"},e.createElement(Be,{className:F({"userflowjs-resource-center-popout-frame":!0}),style:{height:`calc(min(${i}px, 100${f} - 2 * var(--userflow-resource-center-padding-y) - var(--userflow-resource-center-collapsed-height) - ${h}px)`,position:u?void 0:"absolute",visibility:u?void 0:"hidden"},stylesheet:xe,theme:s,onStylesheetsLoad:m,title:"Resource center popout"},e.createElement("div",{ref:v,className:"userflowjs-resource-center-popout-frame-root"},e.createElement("h2",{className:"userflowjs-announcement-title"},e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,c.title)),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},He(c.time))),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(P,{doc:c.content,buttons:c.buttons})),c.moreEnabled&&e.createElement("div",{className:"userflowjs-announcement-more"},e.createElement("button",{className:"userflowjs-tertiary-button",onClick:()=>{oe(a,c),R(a,t,o,c.title),r({kind:"announcementShow",block:o,announcementId:c.id}),n()}},e.createElement("div",null,(c.moreEnabled?c.moreButtonText:null)||"Read more"),e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(S,{icon:pt})))),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:b,"aria-label":"Dismiss announcement"},e.createElement(S,{icon:bt}))))),e.createElement("div",{className:"userflowjs-resource-center-popout-notch"}))};function Ct(t){return t.filter(n=>{const r=G[n.type];return r.isSearchable?r.isSearchable(n):!!r.search})}const G={[k.ACTION]:{View:t=>{const{block:n,session:r,flowSession:s,checklistSession:o}=t,c=T(),[a,u]=l.useState(!1),m=s?.id,i=o?.id;return l.useEffect(()=>{u(!1)},[m,i]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:a?void 0:()=>{R(c,r,n);const v=n.actions.find(b=>b.type===Vt.START_FLOW);v?v.otherFlow?.id!==o?.flow.id&&u(!0):c.closeResourceCenter(),Yt(c,r,n.actions)},disabled:a},e.createElement(V,{...t}),e.createElement(W,{...t}),a&&e.createElement(D,null))}},[k.ANNOUNCEMENTS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=T();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(kt,{count:n.unreadAnnouncementCount})):e.createElement(V,{...t}),e.createElement(W,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:K})))}},[k.ASSISTANT]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=T(),[c,a]=l.useState("");return n.assistantAppearance===Kt.INPUT?e.createElement("div",{className:"userflowjs-resource-center-assistant-block"},e.createElement(Tn,{value:c,onChange:a,placeholder:Me(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(V,{...t}),e.createElement(W,{...t}))}},[k.CHECKLIST]:{View:({checklistSession:t})=>e.createElement("div",{"data-testid":"resource-center-checklist",className:"userflowjs-resource-center-checklist"},e.createElement(an,{session:t}),e.createElement(bn,{draftMode:t.draftMode?"CHECKLIST PREVIEW":!1}))},[k.CONTACT]:{View:t=>{const{block:n,session:r,navigate:s,onChatShow:o}=t,c=T(),a=[];return n.emailEnabled&&a.push({icon:hn,label:"Email",isRoute:!0,onClick:u=>{R(c,r,n,"Email"),s({kind:"email",block:n},u)}}),n.phoneEnabled&&a.push({icon:wn,label:"Phone",isRoute:!0,onClick:u=>{R(c,r,n,"Phone"),s({kind:"phone",block:n},u)}}),n.chatEnabled&&a.push({icon:En,label:"Live-chat",isRoute:!1,onClick:()=>{R(c,r,n,"Chat"),It(r,n,o)}}),e.createElement("div",{className:F({"userflowjs-resource-center-block":!0,"userflowjs-resource-center-block--clickable":a.length===1}),onClick:a.length===1?a[0].onClick:void 0},a.length===1&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(S,{icon:a[0].icon})),e.createElement(W,{...t}),a.length>1&&a.map(({icon:u,label:m,onClick:i},v)=>e.createElement("button",{key:v,className:"userflowjs-resource-center-icon-button",onClick:i,"aria-label":m},e.createElement(S,{icon:u}))),a.length===1&&a[0].isRoute&&e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:K})))}},[k.DIVIDER]:{View:()=>e.createElement("div",{className:"userflowjs-resource-center-divider"})},[k.FLOWS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=T();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(V,{...t}),e.createElement(W,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:K})))},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=jt(o,s),a=c.slice(0,ft);return{block:r,truncated:a.length===c.length,results:a.map(u=>({kind:"flow",flow:u}))}}},[k.KNOWLEDGE_BASE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=T();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(V,{...t}),e.createElement(W,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:K})))},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:ft},{handlesRejection:!0});return{block:r,truncated:o,results:c.map(a=>({kind:"article",article:a}))}}},[k.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(P,{doc:t.content,lookupAttribute:_(n.data)})))},[k.SUBPAGE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=T();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(V,{...t}),e.createElement(W,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:K})))}}},V=({block:t})=>t.icon?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(S,{icon:t.icon,size:16})):null,W=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement(O,{doc:t.name,lookupAttribute:_(n.data)}));function Mn(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 Bn(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 Fn=({session:t,navigate:n})=>{const r=T(),s=t.version.resourceCenter.blocks,o=Ct(s),{t:c}=q(),a=l.useRef(null),[u,m]=l.useState(""),[i,v]=De(u,m),[b,h]=l.useState(null);return l.useEffect(()=>{if(u.trim()===""){h(null);return}let f=!1;return(async()=>{h(null);const g=await Promise.all(s.map(async y=>{const{search:I}=G[y.type];if(!I)return null;try{return await I({client:r,session:t,block:y,q:u})}catch(N){return console.error(`Userflow.js: Global search failed for ${y.type} block=`,y,"error=",N),null}}));f||h(g.filter(y=>y!=null&&y.results.length>0))})(),()=>{f=!0}},[r,t,s,u]),l.useEffect(()=>{a.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:a,className:"userflowjs-text-input",type:"text",value:i,onChange:f=>v(f.target.value),placeholder:c("resource_center.search_placeholder")})),u.trim()===""?e.createElement("div",{"data-testid":"resource-center-empty-query",className:"userflowjs-resource-center-list-route-error"},c("resource_center.search_in")," ",o.map((f,p)=>e.createElement(e.Fragment,{key:f.cvid},p>0&&(p===o.length-1?` ${c("and")} `:", "),e.createElement("b",null,e.createElement(O,{doc:f.name,lookupAttribute:_(t.data)})))),"."):b?b.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},c("resource_center.no_results_found")):b.map(({block:f,truncated:p,results:g},y)=>{const I=G[f.type],N=I.routeTo&&I.routeTo({block:f,initialQ:u});return e.createElement(e.Fragment,{key:f.cvid},y>0&&e.createElement("div",{className:"userflowjs-resource-center-divider"}),e.createElement("div",{className:"userflowjs-resource-center-label"},e.createElement(O,{doc:f.name,lookupAttribute:_(t.data)})),g.map((C,x)=>C.kind==="flow"?e.createElement(Nt,{key:C.flow.id,block:f,session:t,flow:C.flow,navigate:n}):C.kind==="article"?e.createElement(St,{key:x,block:f,session:t,article:C.article}):null),!p&&N&&e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:C=>{R(r,t,f),n(N,C)}},e.createElement("div",{className:"userflowjs-resource-center-block-text"},c("more"),":"," ",e.createElement(O,{doc:f.name,lookupAttribute:_(t.data)})),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(S,{icon:K}))))}):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(D,null)))},Dn=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(P,{doc:t.emailContent,lookupAttribute:_(n.data)})),Hn=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(P,{doc:t.phoneContent,lookupAttribute:_(n.data)})),Un=({block:t,initialQ:n,session:r,navigate:s})=>{const{t:o}=q(),c=l.useRef(null),[a,u]=l.useState(n||""),[m,i]=De(a,u),{data:v,error:b}=ce({message:{kind:"ListResourceCenterBlockFlows",sessionId:r.id,blockCvid:t.cvid}}),h=v?.flows,f=l.useMemo(()=>h?jt(h,a):null,[h,a]);return l.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(O,{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:m,onChange:p=>i(p.target.value),placeholder:o("resource_center.search_placeholder")})),b?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.generic_error")):f?f.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):f.map(p=>e.createElement(Nt,{key:p.id,block:t,session:r,flow:p,navigate:s})):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(D,{fadeIn:!0})))};function jt(t,n){const r=n.toLowerCase().trim();return r===""?t:t.filter(s=>s.name.toLowerCase().includes(r))}const Nt=({block:t,session:n,flow:r,navigate:s})=>{const o=T(),[c,a]=l.useState(!1);return l.useEffect(()=>{if(!c||r.type!==et.CHECKLIST)return;const u=()=>{o.checklistSession?.flow.id===r.id&&(m(),s(null))},m=()=>{o.off("checklistChanged",u)};return o.on("checklistChanged",u),m},[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?tt.DRAFT:tt.RESOURCE_CENTER,replaceCurrent:!0}),a(!0);const u=Me(r.url,{lookupAttribute:_(n.data)});u&&en(u)},disabled:c},e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(S,{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(D,null))},Pn=({block:t,initialQ:n,session:r,bodyRef:s})=>{const{t:o}=q(),c=l.useRef(null),[a,u]=l.useState(n||""),[m,i]=De(a,u),{loading:v,loadingMore:b,data:h,messageForData:f,error:p,loadMore:g}=ce({message:{kind:"SearchKnowledgeBase",sessionId:r.id,blockCvid:t.cvid,q:a,offset:0}}),y=h?.truncated,I=l.useCallback(()=>{g((C,x)=>({...x,offset:C.articles.length}),(C,x)=>({...x,articles:[...C.articles,...x.articles]}))},[g]);yt({bodyRef:s,loading:v,loadingMore:b,truncated:y,loadMoreHelper:I}),l.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]);let N=t.knowledgeBaseUrl||"";return N.match(/^https?:\/\//)||(N=`http://${N}`),N=gt(N),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(O,{doc:t.name,lookupAttribute:_(r.data)})),e.createElement("a",{className:"userflowjs-resource-center-icon-button",href:N,target:"_blank",rel:"noopener noreferrer"},e.createElement(S,{icon:fn}))),e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:m,onChange:C=>i(C.target.value),placeholder:o("resource_center.search_placeholder")})),p?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},p.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.":p.humanMessage||o("resource_center.generic_error")):v||!h?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(D,null)):h.articles.length===0?f?.q===""?null:e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):e.createElement(e.Fragment,null,f?.q===""&&e.createElement("div",{className:"userflowjs-resource-center-label"},o("resource_center.suggested_articles")),h.articles.map((C,x)=>e.createElement(St,{key:x,block:t,session:r,article:C})),b&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(D,null))))},St=({block:t,article:n,session:r})=>{const s=T();return e.createElement("a",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{R(s,r,t,n.title)},href:gt(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}})))},Wn=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(P,{doc:t.content,lookupAttribute:_(n.data)})),On=({bodyRef:t,session:n,route:r,navigate:s})=>{const o=T(),c=ce({message:{kind:"ListAnnouncements",beforeAnnouncementId:null},skip:r?.kind!=="announcementList"}),{loading:a,loadingMore:u,data:m,loadMore:i}=c,v=m?.truncated,b=l.useCallback(()=>{i((p,g)=>p.announcements.length>0?{...g,beforeAnnouncementId:p.announcements[p.announcements.length-1].id}:g,(p,g)=>({...g,announcements:[...p.announcements,...g.announcements]}))},[i]);yt({bodyRef:t,loading:a,loadingMore:u,truncated:v,loadMoreHelper:b});const[h,f]=l.useState(void 0);return l.useLayoutEffect(()=>{t.current&&h!=null&&r?.kind==="announcementList"&&(t.current.scrollTop=h)},[t,h,r?.kind]),r?.kind==="announcementList"?e.createElement($n,{bodyRef:t,session:n,block:r.block,onMoreClick:p=>{f(t.current?.scrollTop),R(o,n,r.block,p.title),s({kind:"announcementShow",block:r.block,announcementId:p.id})},...c}):r?.kind==="announcementShow"?e.createElement(zn,{block:r.block,announcementId:r.announcementId}):null},$n=({bodyRef:t,block:n,session:r,onMoreClick:s,error:o,loading:c,loadingMore:a,data:u})=>{const{t:m}=q(),[i,v]=l.useMemo(()=>{const h=[],f=[];if(u){let p=-1;for(const g of u.announcements)p++,p<u.pageSize&&!g.seen&&g.level!==Et.SILENT?h.push(g):f.push(g)}return[h,f]},[u]),b=i.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(O,{doc:n.name,lookupAttribute:_(r.data)}))),o?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o.humanMessage||m("resource_center.generic_error")):c||!u?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(D,null)):u.announcements.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},se.exists("resource_center.no_announcements",{fallbackLng:[]})?m("resource_center.no_announcements"):m("resource_center.no_results_found")):e.createElement(e.Fragment,null,b>0&&e.createElement("div",{className:"userflowjs-announcement-unread-header"},m("resource_center.unread",{count:b})),i.map((h,f)=>e.createElement(wt,{key:f,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),i.length>0&&v.length>0&&e.createElement("div",{className:"userflowjs-announcement-seen-divider"}),v.map((h,f)=>e.createElement(wt,{key:f,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),a&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(D,null))))},pe=new Set;function oe(t,n){if(!(pe.has(n.id)&&n.seen)&&(pe.add(n.id),t.setResourceCenterSession(r=>r?{...r,version:{...r.version,resourceCenter:{...r.version.resourceCenter,blocks:r.version.resourceCenter.blocks.map(s=>s.type===k.ANNOUNCEMENTS?{...s,unreadAnnouncementCount:s.unreadAnnouncementCount-1,popoutAnnouncement:s.popoutAnnouncement?.id===n.id?null:s.popoutAnnouncement}:s)}}}:null),t.toggleUI(),pe.has(n.id))){t.send({kind:"MarkAnnouncementSeen",announcementId:n.id,versionId:n.versionId});return}}const wt=({bodyRef:t,onMoreClick:n,announcement:r})=>{const s=T(),o=l.useRef(null),c=l.useRef(!1);return l.useEffect(()=>{if(c.current||r.seen)return;const a=new IntersectionObserver(m=>{const i=m[0];i&&i.isIntersecting&&(oe(s,r),c.current=!0,u())},{root:t.current,threshold:1}),u=()=>{a.disconnect()};return a.observe(o.current),u},[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"},He(r.time)),e.createElement("div",{className:"userflowjs-announcement-time-divider-line"})),e.createElement("h2",{ref:o,className:"userflowjs-announcement-title"},!r.seen&&r.level!==Et.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(P,{doc:r.content,buttons:r.buttons})),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(S,{icon:pt})))))},zn=({announcementId:t})=>{const n=T(),{t:r}=q(),{loading:s,data:o,error:c}=ce({message:{kind:"GetAnnouncement",announcementId:t}}),a=o?.announcement;return l.useEffect(()=>{!a||a.seen||oe(n,a)},[n,a]),e.createElement(e.Fragment,null,c?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},c.humanMessage||r("resource_center.generic_error")):s||!a?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement(D,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"},He(a.time))),e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(P,{doc:a.content,buttons:a.buttons}),a.moreEnabled&&e.createElement(P,{doc:a.moreContent,buttons:a.moreButtons})))))},Vn=({block:t,initialUserContent:n,session:r,navigate:s,onChatShow:o})=>{const c=t.assistantFlowId,a=T(),[u,m]=l.useState(null),[i,v]=l.useState(null),[b,h]=l.useState(null),[f]=l.useState(n);l.useEffect(()=>{n&&s({kind:"assistant",block:t,initialUserContent:""})},[n,t,s]),l.useEffect(()=>{let g=!1;return(async()=>{try{const I=re.getItem("assistantConversationId:"+c),[N,C]=await Promise.all([_n(),a.send({kind:"GetAssistant",assistantFlowId:c,conversationId:I},{handlesRejection:!0,endBatch:!0})]);if(g)return;m(()=>N),v(C)}catch(I){console.error("Resource center assistant route failed to load:",I),h(I.humanMessage||"Sorry, something went wrong. Please try again or contact my human friends.")}})(),()=>{g=!0}},[a,c]);const p=l.useMemo(()=>{if(!t.assistantContactEnabled)return;const g=r.version.resourceCenter?.blocks.find(y=>y.type===k.CONTACT);if(g)return()=>{switch(R(a,r,t,t.assistantContactButtonText||void 0),t.assistantContactMethod){case nt.EMAIL:s({kind:"email",block:g});break;case nt.PHONE:s({kind:"phone",block:g});break;default:s(null),It(r,g,o);break}}},[a,r,t,o,s]);return b?e.createElement("div",{className:"userflowjs-assistant-chat"},e.createElement("div",{className:"userflowjs-assistant-chat__content"},e.createElement("div",{className:"userflowjs-assistant-chat__error"},b))):!u||!i?e.createElement(D,{center:!0,fadeIn:!0}):e.createElement(u,{block:t,session:r,assistantReply:i,initialUserContent:f,onContactClick:p,contactButtonText:t.assistantContactButtonText||void 0})};function R(t,n,r,s){t.send({kind:"ClickResourceCenter",sessionId:n.id,description:r?Me(r.name,{lookupAttribute:_(n.data)})+(s?` - ${s}`:""):s},{batch:!0})}function yt({bodyRef:t,loading:n,loadingMore:r,truncated:s,loadMoreHelper:o}){l.useEffect(()=>{const c=t.current;if(!c||n||r||s)return;const a=()=>{c.scrollHeight-c.clientHeight-c.scrollTop>400||o()};return c.addEventListener("scroll",a),()=>{c.removeEventListener("scroll",a)}},[t,n,r,s,o])}function He(t){const n=t?new Date(t):new Date;let r=new Intl.DateTimeFormat(se.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)}function It(t,n,r){if(n.chatProvider){const s=ke[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.")}const lr=Object.freeze(Object.defineProperty({__proto__:null,ResourceCenterApp:ht,default:ht},Symbol.toStringTag,{value:"Module"}));export{Tn as A,Rn as G,lr as R,gt as d};
5
5
  //# sourceMappingURL=ResourceCenterApp.js.map