@chatsystem/client 2.0.0 → 2.0.1
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/README.md +33 -0
- package/dist/index.cjs +16 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +121 -106
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -33,7 +33,7 @@ Try polyfilling it using "@formatjs/intl-pluralrules"
|
|
|
33
33
|
Try polyfilling it using "@formatjs/intl-relativetimeformat"
|
|
34
34
|
`,Rt.MISSING_INTL_API));try{return rh(e,t,i).format(n,r)}catch(s){e.onError(new Et("Error formatting relative time.",e.locale,s))}return String(n)}var ah=["style","currency","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","currencyDisplay","currencySign","notation","signDisplay","unit","unitDisplay","numberingSystem","trailingZeroDisplay","roundingPriority","roundingIncrement","roundingMode"];function ec(e,t,n){var r=e.locale,i=e.formats,a=e.onError;n===void 0&&(n={});var s=n.format,o=s&&Ba(i,"number",s,a)||{},u=dn(n,ah,o);return t(r,u)}function sh(e,t,n,r){r===void 0&&(r={});try{return ec(e,t,r).format(n)}catch(i){e.onError(new Et("Error formatting number.",e.locale,i))}return String(n)}function oh(e,t,n,r){r===void 0&&(r={});try{return ec(e,t,r).formatToParts(n)}catch(i){e.onError(new Et("Error formatting number.",e.locale,i))}return[]}function uh(e){var t=e?e[Object.keys(e)[0]]:void 0;return typeof t=="string"}function ch(e){e.onWarn&&e.defaultRichTextElements&&uh(e.messages||{})&&e.onWarn(`[@formatjs/intl] "defaultRichTextElements" was specified but "message" was not pre-compiled.
|
|
35
35
|
Please consider using "@formatjs/cli" to pre-compile your messages for performance.
|
|
36
|
-
For more details see https://formatjs.io/docs/getting-started/message-distribution`)}function lh(e,t){var n=zf(t),r=ne(ne({},Qu),e),i=r.locale,a=r.defaultLocale,s=r.onError;return i?!Intl.NumberFormat.supportedLocalesOf(i).length&&s?s(new Fs('Missing locale data for locale: "'.concat(i,'" in Intl.NumberFormat. Using default locale: "').concat(a,'" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details'))):!Intl.DateTimeFormat.supportedLocalesOf(i).length&&s&&s(new Fs('Missing locale data for locale: "'.concat(i,'" in Intl.DateTimeFormat. Using default locale: "').concat(a,'" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details'))):(s&&s(new Uf('"locale" was not configured, using "'.concat(a,'" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details'))),r.locale=r.defaultLocale||"en"),ch(r),ne(ne({},r),{formatters:n,formatNumber:sh.bind(null,r,n.getNumberFormat),formatNumberToParts:oh.bind(null,r,n.getNumberFormat),formatRelativeTime:ih.bind(null,r,n.getRelativeTimeFormat),formatDate:$f.bind(null,r,n.getDateTimeFormat),formatDateToParts:Yf.bind(null,r,n.getDateTimeFormat),formatTime:Wf.bind(null,r,n.getDateTimeFormat),formatDateTimeRange:Gf.bind(null,r,n.getDateTimeFormat),formatTimeToParts:qf.bind(null,r,n.getDateTimeFormat),formatPlural:th.bind(null,r,n.getPluralRules),formatMessage:ua.bind(null,r,n),$t:ua.bind(null,r,n),formatList:Zf.bind(null,r,n.getListFormat),formatListToParts:Zu.bind(null,r,n.getListFormat),formatDisplayName:Qf.bind(null,r,n.getDisplayNames)})}function tc(e){Ru(e,"[React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry.")}var nc=ne(ne({},Qu),{textComponent:Xe.Fragment});function dh(e){return function(t){return e(Xe.Children.toArray(t))}}function fh(e,t){if(e===t)return!0;if(!e||!t)return!1;var n=Object.keys(e),r=Object.keys(t),i=n.length;if(r.length!==i)return!1;for(var a=0;a<i;a++){var s=n[a];if(e[s]!==t[s]||!Object.prototype.hasOwnProperty.call(t,s))return!1}return!0}var Fa=typeof window<"u"&&!window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__?window.__REACT_INTL_CONTEXT__||(window.__REACT_INTL_CONTEXT__=Xe.createContext(null)):Xe.createContext(null);Fa.Consumer;var hh=Fa.Provider,mh=hh,ph=Fa;function Yt(){var e=Xe.useContext(ph);return tc(e),e}var ca;(function(e){e.formatDate="FormattedDate",e.formatTime="FormattedTime",e.formatNumber="FormattedNumber",e.formatList="FormattedList",e.formatDisplayName="FormattedDisplayName"})(ca||(ca={}));var la;(function(e){e.formatDate="FormattedDateParts",e.formatTime="FormattedTimeParts",e.formatNumber="FormattedNumberParts",e.formatList="FormattedListParts"})(la||(la={}));function rc(e){var t=function(n){var r=Yt(),i=n.value,a=n.children,s=Wr(n,["value","children"]),o=typeof i=="string"?new Date(i||0):i,u=e==="formatDate"?r.formatDateToParts(o,s):r.formatTimeToParts(o,s);return a(u)};return t.displayName=la[e],t}function ir(e){var t=function(n){var r=Yt(),i=n.value,a=n.children,s=Wr(n,["value","children"]),o=r[e](i,s);if(typeof a=="function")return a(o);var u=r.textComponent||Xe.Fragment;return Xe.createElement(u,null,o)};return t.displayName=ca[e],t}function ic(e){return e&&Object.keys(e).reduce(function(t,n){var r=e[n];return t[n]=qu(r)?dh(r):r,t},{})}var Vs=function(e,t,n,r){for(var i=[],a=4;a<arguments.length;a++)i[a-4]=arguments[a];var s=ic(r),o=ua.apply(void 0,kt([e,t,n,s],i,!1));return Array.isArray(o)?Xe.Children.toArray(o):o},zs=function(e,t){var n=e.defaultRichTextElements,r=Wr(e,["defaultRichTextElements"]),i=ic(n),a=lh(ne(ne(ne({},nc),r),{defaultRichTextElements:i}),t),s={locale:a.locale,timeZone:a.timeZone,fallbackOnEmptyString:a.fallbackOnEmptyString,formats:a.formats,defaultLocale:a.defaultLocale,defaultFormats:a.defaultFormats,messages:a.messages,onError:a.onError,defaultRichTextElements:i};return ne(ne({},a),{formatMessage:Vs.bind(null,s,a.formatters),$t:Vs.bind(null,s,a.formatters)})};function Ti(e){return{locale:e.locale,timeZone:e.timeZone,fallbackOnEmptyString:e.fallbackOnEmptyString,formats:e.formats,textComponent:e.textComponent,messages:e.messages,defaultLocale:e.defaultLocale,defaultFormats:e.defaultFormats,onError:e.onError,onWarn:e.onWarn,wrapRichTextChunksInFragment:e.wrapRichTextChunksInFragment,defaultRichTextElements:e.defaultRichTextElements}}var gh=(function(e){bt(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.cache=Ku(),n.state={cache:n.cache,intl:zs(Ti(n.props),n.cache),prevConfig:Ti(n.props)},n}return t.getDerivedStateFromProps=function(n,r){var i=r.prevConfig,a=r.cache,s=Ti(n);return fh(i,s)?null:{intl:zs(s,a),prevConfig:s}},t.prototype.render=function(){return tc(this.state.intl),Xe.createElement(mh,{value:this.state.intl},this.props.children)},t.displayName="IntlProvider",t.defaultProps=nc,t})(Xe.PureComponent);ir("formatDate");ir("formatTime");ir("formatNumber");ir("formatList");ir("formatDisplayName");rc("formatDate");rc("formatTime");const bh={"generic.language.english":"English","generic.language.french":"French","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Discussion limit reached","chatbot.DiscussionLimitReached.explaination":"You have used the available AI answers for this discussion. Start a new conversation to continue.","chatbot.DiscussionLimitReached.cta":"Restart","chatbot.error.api.409":"Oups ! The discussion if full. Please start a new one.","chatbot.error.api.429":"⏳ The chatbot is a little busy at the time. Please try again later.","chatbot.error.api.500":"Oops ! There has been an error. Please try again later.","chatbot.chatline.label.user":"You","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Customer support","chatbot.chatline.loading.function.genericSearchMessage":"Thinking ...","chatbot.chatline.loading.function.search":"Search","chatbot.chatline.loading.function.extractProductName":"Looking into the cavern","chatbot.chatline.loading.function.suggestProductName":"Consulting the shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Looking for ziboublis","chatbot.chatline.loading.function.searchStock":"Searching Stock","chatbot.chatline.loading.function.step":"Step","chatbot.chatline.loading.stepName.search":"Searching ...","chatbot.chatline.loading.stepName.building":"Building Query ...","chatbot.chatline.loading.stepName.analyzing":"Analyzing ...","chatbot.chatline.loading.stepName.redacting":"Writing answer","chatbot.chatline.loading.cancel":"Cancel","chatbot.chatline.seeRecentMessages":"see recent messages","chatbot.widget.menu.open":"Open chat menu","chatbot.widget.menu.startNewDiscussion":"Start a new discussion","chatbot.widget.close":"Close chat","recordingOverlay.recording":"Recording...","recordingOverlay.cancel":"Cancel","recordingOverlay.explaination":"Tap the mic to stop","chatbot.infobanner.title":"You have an archived discussion.","chatbot.infobanner.cta":"See","chatbot.customerSupport.connecting":"Transferring your request to customer support...","chatbot.customerSupport.connected":"Your request has been sent to Customer Support. It usually takes a few minutes to get a reply. Thank you for waiting.","chatbot.customerSupport.connectionError":"Customer support is not available right now. Please try again later.","chatbot.customerSupport.providerUnavailable":"Customer support received your request, but live replies are temporarily unavailable. Please try again shortly.","chatbot.customerSupport.closed":"Your customer support conversation is now complete. Start a new conversation if you need more help!","chatbot.customerSupport.restart":"Restart","chatbot.customerSupport.fallback.title":"Leave your contact details","chatbot.customerSupport.fallback.description":"Customer support has not replied yet. Leave your email and phone number and we will contact you soon.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"Phone","chatbot.customerSupport.fallback.submit":"Send","chatbot.customerSupport.fallback.submitting":"Sending...","chatbot.customerSupport.fallback.success":"Your contact details have been saved. Customer support will contact you soon.","chatbot.customerSupport.closedHours.title":"Customer support is currently closed","chatbot.customerSupport.closedHours.description":"Leave your email, phone number and request. Customer support will contact you during opening hours.","chatbot.customerSupport.closedHours.schedulePrefix":"Today:","chatbot.customerSupport.closedHours.reason":"Reason for your request","chatbot.customerSupport.closedHours.success":"Your request has been saved. Customer support will contact you during opening hours.","chatbot.customerSupport.fallback.error":"We could not save your contact details. Please try again.","chatbot.interactiveWidget.submitting":"Sending…","chatbot.interactiveWidget.submitted":"Sent","chatbot.interactiveWidget.cancelled":"Cancelled","chatbot.interactiveWidget.unavailable":"This interaction is no longer available.","chatbot.interactiveWidget.preview.notice":"Demo mode — this form reproduces the real experience. Submitting it does not create a request or transmit your answers.","chatbot.interactiveWidget.preview.completed":"Simulation complete. In production, this request would be saved in ChatSystem and then sent to any configured destinations.","chatbot.interactiveWidget.preview.cancelled":"Simulation cancelled. No information was transmitted."},Eh={"generic.language.english":"Anglais","generic.language.french":"Français","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Cette conversation est terminée.","chatbot.DiscussionLimitReached.explaination":"Vous avez utilisé les réponses IA disponibles pour cette discussion. Commencez une nouvelle conversation pour continuer.","chatbot.DiscussionLimitReached.cta":"Relancer une nouvelle conversation","chatbot.error.api.409":"Oups ! La discussion est à son maximum. Merci d'en commencer une nouvelle.","chatbot.error.api.429":"⏳ Le robot est un peu occupé actuellement. Merci de réessayer plus tard.","chatbot.error.api.500":"Oups ! Une erreur est survenue. Merci de réessayer plus tard !","chatbot.chatline.label.user":"Vous","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Support client","chatbot.chatline.loading.function.search":"Recherche","chatbot.chatline.loading.function.genericSearchMessage":"Je réfléchis ...","chatbot.chatline.loading.function.extractProductName":"Recherche dans la caverne","chatbot.chatline.loading.function.suggestProductName":"Consultation des shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Recherche des ziboublis","chatbot.chatline.loading.function.searchStock":"Recherche en stock","chatbot.chatline.loading.function.step":"Etape","chatbot.chatline.loading.stepName.search":"Recherche ...","chatbot.chatline.loading.stepName.building":"Construction ...","chatbot.chatline.loading.stepName.analyzing":"Analyse ...","chatbot.chatline.loading.stepName.redacting":"Rédaction","chatbot.chatline.loading.cancel":"Annuler","chatbot.chatline.seeRecentMessages":"voir les messages plus récents","chatbot.widget.menu.open":"Ouvrir le menu de discussion","chatbot.widget.menu.startNewDiscussion":"Démarrer une nouvelle discussion","chatbot.widget.close":"Fermer la discussion","recordingOverlay.recording":"Micro activé...","recordingOverlay.cancel":"Annuler","recordingOverlay.explaination":"Appuyez sur le micro pour arrêter","chatbot.infobanner.title":"Vous avez une conversation archivée.","chatbot.infobanner.cta":"Voir","chatbot.customerSupport.connecting":"Transfert de votre demande au support client...","chatbot.customerSupport.connected":"Votre demande a été transmise au support client. Il faut généralement quelques minutes pour obtenir une réponse. Merci de patienter.","chatbot.customerSupport.connectionError":"Le support client n'est pas disponible pour le moment. Merci de réessayer plus tard.","chatbot.customerSupport.providerUnavailable":"Le support client a reçu votre demande, mais les réponses en direct sont temporairement indisponibles. Merci de réessayer dans quelques instants.","chatbot.customerSupport.closed":"Votre échange avec le support client est terminé. Relancez une nouvelle conversation quand vous le souhaitez !","chatbot.customerSupport.restart":"Relancer","chatbot.customerSupport.fallback.title":"Laissez vos coordonnées","chatbot.customerSupport.fallback.description":"Le support client n'a pas encore répondu. Laissez votre email et votre téléphone, nous vous recontacterons prochainement.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"Téléphone","chatbot.customerSupport.fallback.submit":"Envoyer","chatbot.customerSupport.fallback.submitting":"Envoi...","chatbot.customerSupport.fallback.success":"Vos coordonnées ont bien été notées. Le support client vous recontactera prochainement.","chatbot.customerSupport.closedHours.title":"Le support client est actuellement fermé","chatbot.customerSupport.closedHours.description":"Laissez votre email, votre téléphone et le motif de votre demande. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.closedHours.schedulePrefix":"Aujourd’hui :","chatbot.customerSupport.closedHours.reason":"Motif de votre demande","chatbot.customerSupport.closedHours.success":"Votre demande a bien été enregistrée. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.fallback.error":"Impossible d'enregistrer vos coordonnées. Merci de réessayer.","chatbot.interactiveWidget.submitting":"Envoi…","chatbot.interactiveWidget.submitted":"Envoyé","chatbot.interactiveWidget.cancelled":"Annulé","chatbot.interactiveWidget.unavailable":"Cette interaction n’est plus disponible.","chatbot.interactiveWidget.preview.notice":"Mode démo — ce formulaire reproduit l’expérience réelle. Son envoi ne crée aucune demande et ne transmet pas vos réponses.","chatbot.interactiveWidget.preview.completed":"Simulation terminée. En production, cette demande serait enregistrée dans ChatSystem, puis transmise aux destinations configurées le cas échéant.","chatbot.interactiveWidget.preview.cancelled":"Simulation annulée. Aucune information n’a été transmise."};var ht=(e=>(e.FRENCH="fr-FR",e.ENGLISH="en-US",e))(ht||{});const Yr={[ht.ENGLISH]:{translatedText:bh,pictureName:ht.ENGLISH,langID:0,locale:ht.ENGLISH},[ht.FRENCH]:{translatedText:Eh,pictureName:ht.FRENCH,langID:1,locale:ht.FRENCH}},Th=Object.keys(Yr);Th.reduce((e,t)=>{const n=Yr[t];return[...e,n]},[]);const yh="languageSettings",_h=(e,t)=>{let n,r;return typeof window<"u"&&(r=window.localStorage.getItem(yh)),r&&e?.[r]!==void 0?n=e[r]:(n=e[t],n.isDefault=!0),n},xh=(e,t)=>{const[n,r]=S.useState(e[t]),i=a=>{Object.keys(e).includes(a?.locale)?r(a):r(e[ht.ENGLISH])};return S.useEffect(()=>{const a=_h(e,t);a.locale!==t&&r(e[a.locale])},[]),{appCurrentLang:n,handleSetContextCurrentLang:i}},ac=S.createContext({appCurrentLang:Yr[ht.ENGLISH],setAppCurrentLang:()=>{}}),St={ai:"ai",customerSupport:"customer_support"},sc=S.createContext({currentConversation:{items:[],discussionId:null},setCurrentConversation:()=>{},archivedConversation:{items:[],discussionId:null},setArchivedConversation:()=>{},chatboxBootState:{mode:St.ai,customerSupportState:null,reason:"context_default"},setChatboxBootState:()=>{},resetConversationRequestId:0,resetConversation:()=>{}});var Jt={},yi={},Mn={},$s;function Ua(){if($s)return Mn;$s=1,Object.defineProperty(Mn,"__esModule",{value:!0}),Mn.isUnknownRecord=void 0;const e=t=>typeof t=="object"&&t!==null&&!Array.isArray(t);return Mn.isUnknownRecord=e,Mn}var Ws;function Sh(){return Ws||(Ws=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.isInteractiveWidgetResultWithinSizeLimit=e.isInteractiveWidgetResult=e.isInteractiveWidgetVersionedRequest=e.isInteractiveWidgetV3Request=e.isInteractiveWidgetV2Request=e.isInteractiveWidgetPresentationWithinSizeLimit=e.isInteractiveWidgetPresentation=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS=e.INTERACTIVE_WIDGET_TYPES=e.INTERACTIVE_WIDGET_RESULT_TOKEN_HEADER=e.parseInteractiveWidgetProtocolVersion=e.INTERACTIVE_WIDGET_VERSION_HEADER=e.SUPPORTED_INTERACTIVE_WIDGET_PROTOCOL_VERSIONS=e.INTERACTIVE_WIDGET_PROTOCOL_V3=e.INTERACTIVE_WIDGET_PROTOCOL_V2=e.INTERACTIVE_WIDGET_PROTOCOL_V1=e.INTERACTIVE_WIDGET_EVENTS=void 0;const t=Ua();e.INTERACTIVE_WIDGET_EVENTS={requested:"interactiveWidget.requested"},e.INTERACTIVE_WIDGET_PROTOCOL_V1=1,e.INTERACTIVE_WIDGET_PROTOCOL_V2=2,e.INTERACTIVE_WIDGET_PROTOCOL_V3=3,e.SUPPORTED_INTERACTIVE_WIDGET_PROTOCOL_VERSIONS=Object.freeze([e.INTERACTIVE_WIDGET_PROTOCOL_V2,e.INTERACTIVE_WIDGET_PROTOCOL_V3]),e.INTERACTIVE_WIDGET_VERSION_HEADER="X-ChatSystem-Interactive-Widget-Version";const n=p=>{const L=Array.isArray(p)?p[0]:p;return e.SUPPORTED_INTERACTIVE_WIDGET_PROTOCOL_VERSIONS.find(B=>L===B||L===String(B))};e.parseInteractiveWidgetProtocolVersion=n,e.INTERACTIVE_WIDGET_RESULT_TOKEN_HEADER="X-ChatSystem-Interactive-Widget-Result-Token",e.INTERACTIVE_WIDGET_TYPES={directChatCustomerSupport:"direct_chat_customer_support",callToAction:"call_to_action",structuredForm:"structured_form",cardList:"card_list",statusSummary:"status_summary",explicitConfirmation:"explicit_confirmation"},e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS={maximumPresentationUtf8Bytes:32*1024,maximumResultUtf8Bytes:16*1024,maximumTextCodeUnits:4096,maximumUrlCodeUnits:2048,maximumIdentifierCodeUnits:128,maximumLabelCodeUnits:256,maximumToolCallIdCodeUnits:255,maximumResultTokenCodeUnits:8192,maximumResultStringCodeUnits:16*1024,maximumActionsPerContainer:4,maximumFieldsPerForm:20,maximumCardsPerList:20,maximumItemsPerCollection:50,maximumResultDataEntries:50,maximumResultArrayItems:50};const r=(p,L)=>Object.keys(p).every(B=>L.includes(B)),i=(p,L=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumTextCodeUnits)=>typeof p=="string"&&p.trim().length>0&&p.length<=L,a=(p,L=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumTextCodeUnits)=>p===void 0||i(p,L),s=p=>{if(!i(p,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumUrlCodeUnits))return!1;try{const L=new URL(p);return L.protocol==="http:"||L.protocol==="https:"}catch{return!1}},o=p=>!(0,t.isUnknownRecord)(p)||!i(p.id,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!i(p.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)||p.style!==void 0&&!["primary","secondary","danger"].includes(String(p.style))?!1:p.kind==="open_url"?r(p,["id","label","style","kind","url"])&&s(p.url):(p.kind==="submit"||p.kind==="cancel")&&r(p,["id","label","style","kind"]),u=(p,L=!1)=>L&&p===void 0?!0:Array.isArray(p)&&p.length>0&&p.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumActionsPerContainer&&p.every(o)&&new Set(p.map(B=>B.id)).size===p.length,c=p=>p===void 0||Array.isArray(p)&&p.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumItemsPerCollection&&p.every(L=>(0,t.isUnknownRecord)(L)&&r(L,["label","value"])&&i(L.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&i(L.value)),d=p=>{const L=p.minLength,B=p.maxLength;return L!==void 0&&(!Number.isSafeInteger(L)||Number(L)<0)||B!==void 0&&(!Number.isSafeInteger(B)||Number(B)<1||Number(B)>e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumTextCodeUnits)?!1:L===void 0||B===void 0||Number(L)<=Number(B)},f=p=>!(0,t.isUnknownRecord)(p)||!i(p.id,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!i(p.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)||p.required!==void 0&&typeof p.required!="boolean"||!a(p.description)?!1:p.type==="checkbox"?r(p,["id","label","required","description","type"]):p.type==="select"?r(p,["id","label","required","description","type","placeholder","options"])&&a(p.placeholder,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&Array.isArray(p.options)&&p.options.length>0&&p.options.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumItemsPerCollection&&p.options.every(L=>(0,t.isUnknownRecord)(L)&&r(L,["value","label"])&&i(L.value,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&i(L.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits))&&new Set(p.options.map(L=>L.value)).size===p.options.length:["text","email","tel","textarea"].includes(String(p.type))&&r(p,["id","label","required","description","type","placeholder","minLength","maxLength"])&&a(p.placeholder,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&d(p),m=p=>a(p.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.description),h=p=>{if(!(0,t.isUnknownRecord)(p))return!1;if(p.type===e.INTERACTIVE_WIDGET_TYPES.callToAction)return r(p,["type","title","description","actions"])&&m(p)&&u(p.actions);if(p.type===e.INTERACTIVE_WIDGET_TYPES.structuredForm)return r(p,["type","title","description","fields","submitLabel","cancelLabel"])&&m(p)&&i(p.submitLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.cancelLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&Array.isArray(p.fields)&&p.fields.length>0&&p.fields.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumFieldsPerForm&&p.fields.every(f)&&new Set(p.fields.map(L=>L.id)).size===p.fields.length;if(p.type===e.INTERACTIVE_WIDGET_TYPES.cardList){const L=Array.isArray(p.cards)?p.cards.flatMap(B=>(0,t.isUnknownRecord)(B)&&Array.isArray(B.actions)?B.actions.filter(t.isUnknownRecord).map(Y=>Y.id).filter(Y=>typeof Y=="string"):[]):[];return r(p,["type","title","description","cards"])&&m(p)&&Array.isArray(p.cards)&&p.cards.length>0&&p.cards.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumCardsPerList&&p.cards.every(B=>(0,t.isUnknownRecord)(B)&&r(B,["id","title","description","imageUrl","eyebrow","metadata","actions"])&&i(B.id,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)&&i(B.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(B.description)&&a(B.eyebrow,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&(B.imageUrl===void 0||s(B.imageUrl))&&c(B.metadata)&&u(B.actions,!0))&&new Set(p.cards.map(B=>B.id)).size===p.cards.length&&new Set(L).size===L.length}return p.type===e.INTERACTIVE_WIDGET_TYPES.statusSummary?r(p,["type","title","description","tone","items","actions"])&&i(p.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.description)&&(p.tone===void 0||["neutral","info","success","warning","danger"].includes(String(p.tone)))&&c(p.items)&&u(p.actions,!0):p.type===e.INTERACTIVE_WIDGET_TYPES.explicitConfirmation?r(p,["type","title","description","confirmLabel","cancelLabel","tone","details"])&&i(p.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.description)&&i(p.confirmLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&i(p.cancelLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&(p.tone===void 0||["neutral","danger"].includes(String(p.tone)))&&c(p.details):!1};e.isInteractiveWidgetPresentation=h;const y=p=>{try{const L=JSON.stringify(p);return typeof L=="string"?new TextEncoder().encode(L).byteLength:null}catch{return null}},g=p=>{const L=y(p);return L!==null&&L<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumPresentationUtf8Bytes};e.isInteractiveWidgetPresentationWithinSizeLimit=g;const w=(p,L)=>(0,t.isUnknownRecord)(p)?p.mode==="none"?r(p,["mode"]):p.mode==="local_preview"?L&&r(p,["mode"]):p.mode==="resume_turn"&&r(p,["mode","continuation","resultToken"])&&(0,t.isUnknownRecord)(p.continuation)&&r(p.continuation,["continuationId","expiresAt"])&&i(p.continuation.continuationId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)&&i(p.continuation.expiresAt,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)&&!Number.isNaN(Date.parse(p.continuation.expiresAt))&&i(p.resultToken,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultTokenCodeUnits):!1,I=p=>!(!(0,t.isUnknownRecord)(p)||!r(p,["type","event","protocolVersion","instanceId","widgetType","source","companyId","agentId","discussionId","toolcallId","payload","responsePolicy"])||p.type!=="interactive_widget_request"||p.event!==e.INTERACTIVE_WIDGET_EVENTS.requested||p.protocolVersion!==e.INTERACTIVE_WIDGET_PROTOCOL_V2||!i(p.instanceId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!["llm_tool","client_trigger","system"].includes(String(p.source))||!Number.isSafeInteger(p.companyId)||p.agentId!==null&&!Number.isSafeInteger(p.agentId)||p.discussionId!==null&&!Number.isSafeInteger(p.discussionId)||p.toolcallId!==null&&!i(p.toolcallId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumToolCallIdCodeUnits)||!(0,e.isInteractiveWidgetPresentation)(p.payload)||!(0,e.isInteractiveWidgetPresentationWithinSizeLimit)(p.payload)||p.widgetType!==p.payload.type||!w(p.responsePolicy,!1));e.isInteractiveWidgetV2Request=I;const v=p=>!(!(0,t.isUnknownRecord)(p)||!r(p,["type","event","protocolVersion","instanceId","widgetType","source","companyId","agentId","discussionId","toolcallId","payload","responsePolicy"])||p.type!=="interactive_widget_request"||p.event!==e.INTERACTIVE_WIDGET_EVENTS.requested||p.protocolVersion!==e.INTERACTIVE_WIDGET_PROTOCOL_V3||!i(p.instanceId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!["llm_tool","client_trigger","system"].includes(String(p.source))||!Number.isSafeInteger(p.companyId)||p.agentId!==null&&!Number.isSafeInteger(p.agentId)||p.discussionId!==null&&!Number.isSafeInteger(p.discussionId)||p.toolcallId!==null&&!i(p.toolcallId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumToolCallIdCodeUnits)||!(0,e.isInteractiveWidgetPresentation)(p.payload)||!(0,e.isInteractiveWidgetPresentationWithinSizeLimit)(p.payload)||p.widgetType!==p.payload.type||!w(p.responsePolicy,!0));e.isInteractiveWidgetV3Request=v;const N=p=>(0,e.isInteractiveWidgetV2Request)(p)||(0,e.isInteractiveWidgetV3Request)(p);e.isInteractiveWidgetVersionedRequest=N;const P=p=>(0,t.isUnknownRecord)(p)?p.status==="cancelled"?Object.keys(p).length===1:!r(p,["status","actionId","data"])||p.status!=="submitted"||!i(p.actionId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!(0,t.isUnknownRecord)(p.data)||Object.keys(p.data).length>e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultDataEntries?!1:Object.entries(p.data).every(([L,B])=>{if(!i(L,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits))return!1;const Y=Array.isArray(B)?B:[B];return Y.length>e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultArrayItems?!1:Y.every(k=>k===null||typeof k=="string"&&k.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultStringCodeUnits||typeof k=="boolean"||typeof k=="number"&&Number.isFinite(k))}):!1;e.isInteractiveWidgetResult=P;const A=p=>{const L=y(p);return L!==null&&L<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultUtf8Bytes};e.isInteractiveWidgetResultWithinSizeLimit=A})(yi)),yi}var _i={},Gs;function Ch(){return Gs||(Gs=1,Object.defineProperty(_i,"__esModule",{value:!0})),_i}var xi={},Ys;function Ih(){return Ys||(Ys=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SUPPORTED_DISCUSSION_RESPONSE_LIMIT_PROTOCOL_VERSIONS=e.DISCUSSION_RESPONSE_LIMIT_PROTOCOL_V1=e.AI_RESPONSE_COMPLETED_EVENT=void 0,e.parseDiscussionResponseLimitProtocolVersion=n,e.isAiResponseCompletedPayload=r;const t=Ua();e.AI_RESPONSE_COMPLETED_EVENT="ai.response.completed",e.DISCUSSION_RESPONSE_LIMIT_PROTOCOL_V1=1,e.SUPPORTED_DISCUSSION_RESPONSE_LIMIT_PROTOCOL_VERSIONS=Object.freeze([e.DISCUSSION_RESPONSE_LIMIT_PROTOCOL_V1]);function n(a){return e.SUPPORTED_DISCUSSION_RESPONSE_LIMIT_PROTOCOL_VERSIONS.find(s=>s===a)}function r(a){return!(0,t.isUnknownRecord)(a)||n(a.protocolVersion)===void 0||!i(a.discussionId)||typeof a.messageId!="string"||a.messageId.trim().length===0||!i(a.completedAiResponseCount)||!i(a.maxAiResponsesPerDiscussion)?!1:a.completedAiResponseCount<=a.maxAiResponsesPerDiscussion}function i(a){return typeof a=="number"&&Number.isSafeInteger(a)&&a>0}})(xi)),xi}var qs;function Ah(){return qs||(qs=1,(function(e){var t=Jt&&Jt.__createBinding||(Object.create?(function(g,w,I,v){v===void 0&&(v=I);var N=Object.getOwnPropertyDescriptor(w,I);(!N||("get"in N?!w.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return w[I]}}),Object.defineProperty(g,v,N)}):(function(g,w,I,v){v===void 0&&(v=I),g[v]=w[I]})),n=Jt&&Jt.__exportStar||function(g,w){for(var I in g)I!=="default"&&!Object.prototype.hasOwnProperty.call(w,I)&&t(w,g,I)};Object.defineProperty(e,"__esModule",{value:!0}),e.formatCustomerSupportProviderText=e.parseIdentityGateProtocolVersion=e.IDENTITY_GATE_VERSION_HEADER=e.IDENTITY_GATE_REQUIRED_EVENT=e.IDENTITY_GATE_PROTOCOL_VERSION=e.SUPPORTED_IDENTITY_GATE_PROTOCOL_VERSIONS=e.IDENTITY_GATE_PROTOCOL_V2=e.IDENTITY_GATE_PROTOCOL_V1=e.OutputStreamTypesEnum=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE=e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=e.readOptionalNullableString=e.readOptionalString=e.readOptionalNullableNumber=e.readOptionalNumber=e.AgentDisplayFacetRoleType=e.AgentDisplayFacetModeType=void 0,n(Sh(),e),n(Ch(),e),n(Ua(),e),n(Ih(),e);var r;(function(g){g.SPRITESHEET="spritesheet",g.LOTTIE="lottie",g.IMAGE="image",g.SVG="svg",g.VIDEO="video"})(r||(e.AgentDisplayFacetModeType=r={}));var i;(function(g){g.LAUNCHER="launcher",g.ASSISTANT="assistant",g.SEARCH="search"})(i||(e.AgentDisplayFacetRoleType=i={}));const a=g=>typeof g=="number"&&Number.isFinite(g)?g:void 0;e.readOptionalNumber=a;const s=g=>g===null?null:(0,e.readOptionalNumber)(g);e.readOptionalNullableNumber=s;const o=g=>typeof g=="string"?g:void 0;e.readOptionalString=o;const u=g=>g===null?null:(0,e.readOptionalString)(g);e.readOptionalNullableString=u,e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=5,e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE="Europe/Paris",e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=[{dayOfWeek:1,key:"monday",defaultLabel:"Monday"},{dayOfWeek:2,key:"tuesday",defaultLabel:"Tuesday"},{dayOfWeek:3,key:"wednesday",defaultLabel:"Wednesday"},{dayOfWeek:4,key:"thursday",defaultLabel:"Thursday"},{dayOfWeek:5,key:"friday",defaultLabel:"Friday"},{dayOfWeek:6,key:"saturday",defaultLabel:"Saturday"},{dayOfWeek:7,key:"sunday",defaultLabel:"Sunday"}],e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=[1,2,3,4,5];var c;(function(g){g.OUTPUT_STREAM_MESSAGE_START="message_start",g.OUTPUT_STREAM_MESSAGE_DELTA="message_delta",g.OUTPUT_STREAM_MESSAGE_END="message_end",g.OUTPUT_STREAM_CLIENT_EVENT="client_event",g.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE="number_of_steps",g.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE="current_step_number",g.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE="current_step_name",g.OUTPUT_STREAM_ERROR="error"})(c||(e.OutputStreamTypesEnum=c={})),e.IDENTITY_GATE_PROTOCOL_V1=1,e.IDENTITY_GATE_PROTOCOL_V2=2,e.SUPPORTED_IDENTITY_GATE_PROTOCOL_VERSIONS=Object.freeze([e.IDENTITY_GATE_PROTOCOL_V1,e.IDENTITY_GATE_PROTOCOL_V2]),e.IDENTITY_GATE_PROTOCOL_VERSION=e.IDENTITY_GATE_PROTOCOL_V1,e.IDENTITY_GATE_REQUIRED_EVENT="identity.required",e.IDENTITY_GATE_VERSION_HEADER="X-ChatSystem-Identity-Gate-Version";const d=g=>{const w=Array.isArray(g)?g[0]:g;return e.SUPPORTED_IDENTITY_GATE_PROTOCOL_VERSIONS.find(I=>w===I||w===String(I))};e.parseIdentityGateProtocolVersion=d;const f={"+1":"👍",thumbsup:"👍","-1":"👎",thumbsdown:"👎",clap:"👏",wave:"👋",raised_hands:"🙌",pray:"🙏",muscle:"💪",ok_hand:"👌",point_up:"☝️",point_down:"👇",point_left:"👈",point_right:"👉",eyes:"👀",brain:"🧠",heart:"❤️",orange_heart:"🧡",yellow_heart:"💛",green_heart:"💚",blue_heart:"💙",purple_heart:"💜",broken_heart:"💔",fire:"🔥",tada:"🎉",sparkles:"✨",star:"⭐",white_check_mark:"✅",heavy_check_mark:"✔️",x:"❌",warning:"⚠️",information_source:"ℹ️",question:"❓",exclamation:"❗",bulb:"💡",memo:"📝",pushpin:"📌",paperclip:"📎",link:"🔗",lock:"🔒",unlock:"🔓",bell:"🔔",phone:"☎️",email:"✉️",incoming_envelope:"📨",package:"📦",truck:"🚚",moneybag:"💰",credit_card:"💳",gift:"🎁",shopping_bags:"🛍️",clock3:"🕒",hourglass_flowing_sand:"⏳",rocket:"🚀",smile:"😄",smiley:"😃",grinning:"😀",slightly_smiling_face:"🙂",wink:"😉",blush:"😊",relaxed:"☺️",heart_eyes:"😍",thinking_face:"🤔",neutral_face:"😐",confused:"😕",worried:"😟",cry:"😢",sob:"😭",sweat_smile:"😅",joy:"😂",rofl:"🤣",upside_down_face:"🙃",sunglasses:"😎",tada_face:"🥳",angry:"😠",rage:"😡",face_with_symbols_on_mouth:"🤬",scream:"😱",zipper_mouth_face:"🤐",skin_tone_2:"🏻",skin_tone_3:"🏼",skin_tone_4:"🏽",skin_tone_5:"🏾",skin_tone_6:"🏿"},m=g=>g.replace(/-/g,"_"),h=g=>g.replace(/:([a-zA-Z0-9_+\-]+):/g,(w,I)=>f[m(I)]??w),y=({text:g,provider:w})=>w==="slack"?h(g):g;e.formatCustomerSupportProviderText=y})(Jt)),Jt}var Q=Ah();const Si=e=>({mode:Q.AgentDisplayFacetModeType.SVG,role:e}),wh=()=>({branding:{poweredByChatSystemVisible:!0},interactiveWidgets:{available:[{widgetType:Q.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport,enabled:!0}]},agent:{display:{name:"",CSSRules:"",[Q.AgentDisplayFacetRoleType.LAUNCHER]:Si(Q.AgentDisplayFacetRoleType.LAUNCHER),[Q.AgentDisplayFacetRoleType.ASSISTANT]:Si(Q.AgentDisplayFacetRoleType.ASSISTANT),[Q.AgentDisplayFacetRoleType.SEARCH]:Si(Q.AgentDisplayFacetRoleType.SEARCH)},text:{initialText:"",conversationStarters:[]},customNameToDisplay:"",isAudioAllowed:!0},api:{settings:{maxAiResponsesPerDiscussion:0},tracking:{queryParamToAppend:""}}}),Ot=S.createContext({companySettings:wh(),setCompanySettings:()=>{}}),Ha=()=>{const e=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:3080"),t=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:5173");return e||t};class oc{enabled;constructor({isLocalDev:t,shouldDisplayLogs:n}){this.enabled=t||n}log(...t){this.enabled&&console.log(...t)}warn(...t){this.enabled&&console.warn(...t)}error(...t){this.enabled&&console.error(...t)}}let vh=new oc({isLocalDev:Ha(),shouldDisplayLogs:!1});const kh=e=>new oc({isLocalDev:Ha(),shouldDisplayLogs:!!e}),Ft=()=>vh,Nh=e=>Object.values(ht).includes(e),Rh=(e,t)=>{const n=t??Ft();return Nh(e)?e:(n.warn(`Language ${e} not handled for now. Using ${ht.ENGLISH}.`),ht.ENGLISH)},Oh=e=>{const t=new URL(e);if(t.username||t.password)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_CREDENTIALS");const n=t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="[::1]";if(t.protocol!=="https:"&&!(t.protocol==="http:"&&n))throw new Error("CHAT_SYSTEM_API_URL_MUST_USE_HTTPS");if(t.search||t.hash)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_QUERY_OR_HASH");const r=t.pathname.replace(/\/+$/,"");return`${t.origin}${r}`};class un{constructor(){}static getApiUrl=t=>t!==void 0?Oh(t):Ha()?"http://localhost:3001":"https://www.api.chatsystem.ai";static getHeaders=({contentType:t="text/plain"})=>({"Content-Type":t});static getFetchConfig=({contentType:t="text/plain",httpVerb:n="GET",body:r,options:i={}})=>{const a={method:n,headers:this.getHeaders({contentType:t}),...i};return r&&(a.body=JSON.stringify(r)),a}}const uc=S.createContext(null);function Lh({apiUrl:e,children:t}){const n=S.useMemo(()=>un.getApiUrl(e),[e]);return b.jsx(uc.Provider,{value:n,children:t})}function qr(){return S.useContext(uc)??un.getApiUrl()}const ja="chatsystem-widget",Dh=1440*60*1e3,cc=e=>Q.isInteractiveWidgetVersionedRequest(e)?e:null;function br(e){return typeof e=="string"&&!Number.isNaN(Date.parse(e))}function Ph(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.timeoutMinutes!="number"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean")}function Mh(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean"||typeof e.requireReason!="boolean")}function Bh(e){if(typeof e!="object"||e===null||typeof e.discussionId!="number"||typeof e.reconnectToken!="string"||!br(e.startedAt)||!br(e.updatedAt)||e.reconnectTokenExpiresAt!==void 0&&!br(e.reconnectTokenExpiresAt)||e.closedAt!==void 0&&!br(e.closedAt)||e.closedReason!==void 0&&typeof e.closedReason!="string")return!1;const t=e.mode??"live_chat";return t==="closed_hours_contact_capture"?!(!["active","closed"].includes(e.status)||typeof e.customerSupportSessionId!="number"||!Mh(e.closedHoursContactCapture)||typeof e.businessHours!="object"||e.businessHours===null||typeof e.businessHours.timezone!="string"||e.businessHours.todayScheduleLabel!==void 0&&typeof e.businessHours.todayScheduleLabel!="string"):!(t!=="live_chat"||!["connecting","active","closed"].includes(e.status)||typeof e.socketUrl!="string"||e.customerSupportSessionId!==void 0&&typeof e.customerSupportSessionId!="number"||e.isWaitingForFirstProviderReply!==void 0&&typeof e.isWaitingForFirstProviderReply!="boolean"||e.fallbackContactCapture!==void 0&&!Ph(e.fallbackContactCapture))}function Fh(e){if(typeof e!="object"||e===null||e.userType!=="user"&&e.userType!=="assistant"||"content"in e&&e.content!==void 0&&typeof e.content!="string")return!1;if("metaData"in e&&e.metaData!==void 0){if(typeof e.metaData!="object"||e.metaData===null||"isErrorMessage"in e.metaData&&e.metaData.isErrorMessage!==void 0&&typeof e.metaData.isErrorMessage!="boolean"||"messageKind"in e.metaData&&e.metaData.messageKind!==void 0&&!["conversation","system"].includes(e.metaData.messageKind)||"systemEvent"in e.metaData&&e.metaData.systemEvent!==void 0&&!["customer_support_connecting","customer_support_connected","customer_support_closed","customer_support_connection_error"].includes(e.metaData.systemEvent)||"customerSupportAuthorName"in e.metaData&&e.metaData.customerSupportAuthorName!==void 0&&typeof e.metaData.customerSupportAuthorName!="string")return!1;if("interactiveWidget"in e.metaData){const t=e.metaData.interactiveWidget;if(typeof t!="object"||t===null||![2,3].includes(t.protocolVersion)||typeof t.instanceId!="string"||!["none","resume_turn","local_preview"].includes(t.responseMode)||!["active","submitting","submitted","cancelled","unavailable"].includes(t.state)||!cc({type:"interactive_widget_request",event:"interactiveWidget.requested",protocolVersion:t.protocolVersion,instanceId:t.instanceId,widgetType:t.widgetType,source:"system",companyId:1,agentId:null,discussionId:null,toolcallId:null,payload:t.presentation,responsePolicy:t.responseMode==="local_preview"?{mode:"local_preview"}:{mode:"none"}}))return!1}}return!0}function Uh(e){return!(typeof e!="object"||e===null||e.completedAiResponseCount!==void 0&&(!Number.isSafeInteger(e.completedAiResponseCount)||e.completedAiResponseCount<0||e.discussionId===null)||!Array.isArray(e.items)||!e.items.every(Fh)||e.discussionId!==null&&typeof e.discussionId!="number"||typeof e.updatedAt!="string"||Number.isNaN(Date.parse(e.updatedAt))||e.customerSupport!==void 0&&e.customerSupport!==null&&!Bh(e.customerSupport))}function Hh(e){const t=Ft();if(typeof window>"u")return;const n=e.key??ja,r={items:e.conversation.items,discussionId:e.conversation.discussionId,completedAiResponseCount:e.conversation.completedAiResponseCount,updatedAt:new Date().toISOString(),customerSupport:e.customerSupport??null};try{const i=JSON.stringify(r);window.localStorage.setItem(n,i)}catch(i){t.error("Failed to save chat state to localStorage",i)}}function lc(e){const t=Ft();if(typeof window>"u")return null;const n=e?.key??ja,r=window.localStorage.getItem(n);if(!r)return null;try{const i=JSON.parse(r);return Uh(i)?i:(t.warn("Chat state in localStorage has unexpected shape, ignoring."),null)}catch(i){return t.error("Failed to parse chat state from localStorage",i),null}}function jh(e){if(typeof window>"u")return null;const t=e??ja;window.localStorage.removeItem(t)}function Vh(e,t=Date.now()){return t-e}function zh(e,t=Date.now()){return Vh(new Date(e).getTime(),t)<=Dh}function $h({settings:e,setCurrentConversation:t,setArchivedConversation:n,restoreStoredConversation:r=!0,storageKey:i}){const a=r?lc({key:i}):null;if(!a){t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]});return}zh(a.updatedAt)?t({discussionId:a.discussionId,completedAiResponseCount:a.completedAiResponseCount,items:a.items,updatedAt:a.updatedAt}):(t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]}),n({discussionId:a.discussionId,completedAiResponseCount:a.completedAiResponseCount,items:a.items,updatedAt:a.updatedAt}))}const dc=S.createContext(Ft()),ar=()=>S.useContext(dc),fc=(e,t)=>{if(t===null)return"discussion_not_loaded";if(t!==e.discussionId)return"discussion_mismatch";if(e.status==="closed")return"session_closed";if(!e.reconnectToken)return"missing_reconnect_token";if(e.mode==="closed_hours_contact_capture")return null;if(!e.socketUrl)return"missing_socket_url";if(e.reconnectTokenExpiresAt){const n=Date.parse(e.reconnectTokenExpiresAt);if(Number.isNaN(n))return"invalid_reconnect_expiration";if(n<=Date.now())return"expired_reconnect_token"}return null},Wh=e=>{const t=lc({key:e}),n=t?.customerSupport??null;if(!n)return{mode:St.ai,customerSupportState:null,reason:"no_customer_support_state"};const r=fc(n,t?.discussionId??null);return r==="session_closed"?{mode:St.customerSupport,customerSupportState:n,reason:r}:r?{mode:St.ai,customerSupportState:null,reason:r}:{mode:St.customerSupport,customerSupportState:n,reason:"valid_reconnect_state"}},Gh=async e=>{const t={apiUrl:e.apiUrl,appToken:e.appToken,agentId:e.agentId};return e.runtimeAdapter?e.runtimeAdapter.loadCompanySettings(t):e.loadStandardSettings(t)},Yh=async e=>{const t=un.getFetchConfig({httpVerb:"GET",contentType:"application/json"}),n=`${e.apiUrl}/company/settings/${e.appToken}/${e.agentId}`;return await(await fetch(n,{...t,credentials:"omit"})).json()},qh="chatsystem-widget",Va=e=>{const t=e.agentId??"default";return`${encodeURIComponent(e.appToken)}:${t}`},hc=e=>`${qh}:${Va(e)}`,Xh=({agentId:e,appToken:t,onFetched:n,runtimeAdapter:r})=>{const i=ar(),a=qr(),s=S.useMemo(()=>hc({appToken:t,agentId:e}),[t,e]),[o,u]=S.useState({}),c={companySettings:o,setCompanySettings:u},[d,f]=S.useState({discussionId:null,items:[],updatedAt:null}),[m,h]=S.useState({discussionId:null,items:[],updatedAt:null}),[y,g]=S.useState(()=>r?{mode:St.ai,customerSupportState:null,reason:"runtime_adapter_uses_fresh_conversation"}:Wh(s)),[w,I]=S.useState(0),N={currentConversation:d,setCurrentConversation:f,archivedConversation:m,setArchivedConversation:h,chatboxBootState:y,setChatboxBootState:g,resetConversationRequestId:w,resetConversation:()=>{r||jh(s),g({mode:St.ai,customerSupportState:null,reason:"manual_start_new_conversation"}),f({discussionId:null,items:[{userType:"assistant",content:o?.agent?.text?.initialText,temporaryId:crypto.randomUUID()}],updatedAt:null}),I(P=>P+1)}};return S.useEffect(()=>{Gh({apiUrl:a,appToken:t,agentId:e,runtimeAdapter:r,loadStandardSettings:Yh}).then(P=>{u(P),$h({settings:P,setCurrentConversation:f,setArchivedConversation:h,restoreStoredConversation:!r,storageKey:s}),n?.()}).catch(P=>{i.warn("error in settings fetch",P)})},[t,e,a,s,i,n,r]),{contextCompanySettings:c,contextInitialConversationState:N}};async function Qh(e,t=URL.createObjectURL){if(!e.ok)throw new Error(`IMAGE_PRELOAD_FAILED_HTTP_${e.status}`);const n=await e.blob();return t(n)}const In=globalThis;In.__WIDGET_ASSET_CACHE__||(In.__WIDGET_ASSET_CACHE__={svg:new Map,img:new Map,lot:new Map,spr:new Map});In.__WIDGET_PRELOAD_KEYS__||(In.__WIDGET_PRELOAD_KEYS__=new Set);const Ci=In.__WIDGET_PRELOAD_KEYS__,$t=In.__WIDGET_ASSET_CACHE__,Kh="widget-assets-v1";async function Xr(e,t){const n=Ft();try{const r=await caches.open(Kh),i=await r.match(e,{ignoreSearch:!1});if(i)return i.clone();const a=await fetch(e,{cache:"force-cache",mode:"cors",keepalive:!0,...t});if(!a.ok)throw new Error(`HTTP ${a.status} for ${e}`);return r.put(e,a.clone()),a}catch(r){return n.warn("error while fetching",r),new Response(null,{status:520,statusText:"Error in client - Fetch failed"})}}async function mc(e){const t=$t.svg.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Xr(e)).text();if(typeof globalThis.DOMPurify<"u"&&typeof globalThis.DOMPurify.sanitize=="function")try{const s=new DOMParser().parseFromString(i,"image/svg+xml"),o=new XMLSerializer().serializeToString(s.documentElement);return{sanitized:globalThis.DOMPurify.sanitize(o,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}catch{return{sanitized:globalThis.DOMPurify.sanitize(i,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}else return{sanitized:i}})();return $t.svg.set(e,{promise:n,ts:Date.now()}),n}function pc(e){const t=$t.img.get(e);if(t)return t.promise;const n=(async()=>{const r=await Xr(e);return{blobUrl:await Qh(r)}})();return $t.img.set(e,{promise:n,ts:Date.now()}),n}function gc(e){const t=$t.lot.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Xr(e)).arrayBuffer(),a=new Uint8Array(i);if(a.length>=4&&a[0]===80&&a[1]===75&&a[2]===3&&a[3]===4||e.endsWith(".lottie"))return{kind:"zip",blobUrl:URL.createObjectURL(new Blob([i],{type:"application/zip"}))};const o=new TextDecoder().decode(a);return{kind:"json",data:JSON.parse(o)}})();return $t.lot.set(e,{promise:n,ts:Date.now()}),n}function bc(e){const t=$t.spr.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Xr(e)).blob();let a=null;try{a=await createImageBitmap(i)}catch{a=null}const{imgEl:s,width:o,height:u}=await new Promise((c,d)=>{const f=URL.createObjectURL(i),m=new Image;m.crossOrigin="anonymous",m.onload=()=>{const h=m.naturalWidth,y=m.naturalHeight;c({imgEl:m,width:h,height:y})},m.onerror=()=>{URL.revokeObjectURL(f),d(new Error("Spritesheet image decode failed"))},m.src=f,m.decode?.().catch(()=>{})});return{imgEl:s,bitmap:a,width:o,height:u}})();return $t.spr.set(e,{promise:n,ts:Date.now()}),n}function Jh(e){e.images?.forEach(t=>void pc(t)),e.svgs?.forEach(t=>void mc(t)),e.lotties?.forEach(t=>void gc(t)),e.sprites?.forEach(t=>void bc(t))}function Zh(e){const t=Ft();try{const n=document.createElement("link");n.rel="preconnect",n.href=e,n.crossOrigin="anonymous",document.head.appendChild(n);const r=document.createElement("link");r.rel="dns-prefetch",r.href=e,document.head.appendChild(r)}catch(n){t.warn("error in injectPreconnect",n)}}function Ec(e){return new URL(e,document.baseURI).toString()}function e0(e,t){const n=document.head.querySelectorAll('link[rel="preload"]');for(const r of n)if((e?r.as===e||r.getAttribute("as")===e:!0)&&r.href===t)return!0;return!1}function Er(e,t,n,r){const i=Ec(n),a=`${e}|${t??""}|${i}`;if(Ci.has(a))return;if(e0(t,i)){Ci.add(a);return}const s=document.createElement("link");s.rel=e,t&&(s.as=t),s.href=i,s.crossOrigin="anonymous",r&&(s.type=r),s.setAttribute("data-chatsystem-preload","1"),document.head.appendChild(s),Ci.add(a)}function t0(e){const t=s=>Array.from(new Set((s??[]).map(Ec))),n=t(e.images),r=t(e.svgs),i=t(e.lotties),a=t(e.sprites);n.forEach(s=>Er("preload","image",s)),r.forEach(s=>Er("preload","fetch",s,"image/svg+xml")),i.forEach(s=>Er("preload","fetch",s,"application/zip")),a.forEach(s=>Er("preload","fetch",s))}function n0(e,t){const{manifest:n,origins:r}=r0(e,t);r.forEach(Zh),t0(n),Jh(n)}function r0(e,t){const n=t??Ft(),r=i0(e),i=new Set,a=new Set,s=new Set,o=new Set;for(const{url:d,mode:f}of r)switch(a0(f,d,n)){case"svg":a.add(d);break;case"lottie":s.add(d);break;case"spritesheet":o.add(d);break;case"image":i.add(d);break}const u={images:Array.from(i),svgs:Array.from(a),lotties:Array.from(s),sprites:Array.from(o)},c=s0(u,n);return{manifest:u,origins:c}}function i0(e){if(!e?.agent?.display)return[];const t=e.agent.display,n=[t.launcher,t.assistant,t.search].filter(Boolean),r=[];for(const i of n)i?.assetUrl&&r.push({url:i.assetUrl,mode:i.mode});return r}function a0(e,t,n){if(e)switch(e){case"svg":return"svg";case"lottie":return"lottie";case"spritesheet":return"spritesheet";case"image":return"image";case"video":return"video"}try{const i=new URL(t,document.baseURI).pathname.toLowerCase();if(i.endsWith(".svg"))return"svg";if(i.endsWith(".lottie")||i.endsWith(".zip")||i.endsWith(".json"))return i.endsWith(".json"),"lottie";if(/\.(png|webp|jpg|jpeg|gif|avi,ef)$/.test(i))return"image";if(/\.(mp4|webm|mov|m4v|ogg)$/.test(i))return"video"}catch(r){n.warn("error in normalizeKind:",r)}return"unknown"}function s0(e,t){const n=new Set,r=i=>{if(i)try{const a=new URL(i,document.baseURI);n.add(`${a.protocol}//${a.host}`)}catch(a){t.warn("error in uniqueOriginsFromManifest",a)}};return(e.images??[]).forEach(r),(e.svgs??[]).forEach(r),(e.lotties??[]).forEach(r),(e.sprites??[]).forEach(r),Array.from(n)}const Tc=S.createContext(void 0),yc=S.createContext(void 0),o0=()=>S.useContext(yc),Qr=()=>{const e=S.useContext(sc);if(!e)throw new Error("useChatbotConversation must be used within ChatbotInitialtextContext.Provider");const{currentConversation:t,setCurrentConversation:n,archivedConversation:r,setArchivedConversation:i,chatboxBootState:a,setChatboxBootState:s,resetConversationRequestId:o,resetConversation:u}=e,c=A=>{n(p=>({...p,discussionId:A}))},d=A=>{n(p=>({...p,items:A}))},f=A=>{n(p=>({...p,items:[...p.items,A]}))},m=({messageStreamId:A,role:p})=>{n(L=>L.items.some(B=>B.metaData?.messageStreamId===A)?L:{...L,items:[...L.items,{userType:p,content:"",metaData:{messageStreamId:A},temporaryId:crypto.randomUUID()}]})},h=(A,p)=>{n(L=>({...L,items:L.items.map(B=>{const Y=B.metaData?.interactiveWidget;return!Y||Y.instanceId!==A?B:{...B,metaData:{...B.metaData,interactiveWidget:p(Y)}}})}))},y=()=>{n(A=>({...A,items:A.items.filter(p=>!(p.content?.length===0&&p.userType==="assistant"))}))},g=()=>{n(A=>{const p=[...A.items];return p.pop(),{...A,items:p}})},w=A=>{n(p=>({...p,updatedAt:A.updatedAt}))},I=()=>{i({discussionId:null,items:[],updatedAt:null})};return{currentConversation:t,setCurrentConversation:n,setCurrentConversationId:c,setCurrentConversationMetadata:w,resetConversation:u,setCurrentConversationItems:d,addMessageToCurrentConversation:f,removeEmptyAssistantMessageFromCurrentConversation:y,removeLastMessageFromCurrentConversation:g,updateCurrentConversationLastMessage:({newContent:A})=>{n(p=>{const L=[...p.items],B=L.length-1,Y=L[B];return L[B]={...Y,content:Y.content=A},{...p,items:L}})},archivedConversation:r,chatboxBootState:a,setChatboxBootState:s,resetConversationRequestId:o,setArchivedConversationAsMain:()=>{n(r),I()},addEmptyMessageToCurrentConversation:m,updateCurrentConversationMessageById:({newContent:A,id:p})=>{n(L=>{const B=[...L.items],Y=B.findIndex(j=>j.metaData?.messageStreamId===p),k=B[Y];return B[Y]={...k,content:k.content=A},{...L,items:B}})},updateInteractiveWidget:h}},u0=30,c0=e=>{try{const t=e.split(".")[1];if(!t)return null;const n=t.replace(/-/g,"+").replace(/_/g,"/"),r=n.padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return typeof i.exp=="number"?i.exp:null}catch{return null}};class l0{token=null;expiresAt=null;pendingRequest=null;pendingRequestIsInteractive=!1;generation=0;provider;constructor(t){this.provider=t}clear(){this.generation+=1,this.token=null,this.expiresAt=null,this.pendingRequest=null,this.pendingRequestIsInteractive=!1}handleIdentityChanged(){this.token=null,this.expiresAt=null,!(this.pendingRequest&&this.pendingRequestIsInteractive)&&(this.generation+=1,this.pendingRequest=null,this.pendingRequestIsInteractive=!1)}async getToken(t){if(!this.provider)return null;const n=Math.floor(Date.now()/1e3);if(this.token&&this.expiresAt!=null&&this.expiresAt-u0>n)return this.token;if(this.pendingRequest){const a=this.pendingRequestIsInteractive,s=await this.pendingRequest;if(s||!t.interactive||a)return s}const r=this.generation;this.pendingRequestIsInteractive=t.interactive;let i;return i=this.provider.getToken(t).then(a=>{if(r!==this.generation)return null;if(!a)return this.clear(),null;const s=c0(a);return s==null||s<=Math.floor(Date.now()/1e3)?(this.clear(),null):(this.token=a,this.expiresAt=s,a)}).finally(()=>{this.pendingRequest===i&&(this.pendingRequest=null,this.pendingRequestIsInteractive=!1)}),this.pendingRequest=i,i}}const d0=async({apiUrl:e,appToken:t,payload:n,identitySession:r,fetchImplementation:i=fetch})=>{let a=null,s;try{a=await r.getToken({interactive:!0,reason:n.reason,requiredCapabilities:n.requiredCapabilities}),a||(a=await r.getToken({interactive:!1,reason:n.reason,requiredCapabilities:n.requiredCapabilities})),s=a?{status:"success"}:{status:"cancelled"}}catch{r.clear(),s={status:"failed",code:"HOST_IDENTITY_FAILED"}}const o=await i(`${e}/ai/identity-gates/${encodeURIComponent(t)}/${encodeURIComponent(n.gateId)}/result`,{method:"POST",headers:{"Content-Type":"application/json","X-ChatSystem-Identity-Gate-Token":n.resultToken,...a?{Authorization:`Bearer ${a}`}:{}},body:JSON.stringify(s)});if(!o.ok)throw o.status===401&&a&&r.clear(),new Error(`IDENTITY_GATE_RESOLUTION_FAILED:${o.status}`)},f0="chatsystem:pending-turn:",h0=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,za=e=>`${f0}${encodeURIComponent(e)}`,_c=(e,t=Date.now())=>{if(!e||typeof e!="object"||Array.isArray(e))return null;const n=e;if(typeof n.continuationId!="string"||!h0.test(n.continuationId)||typeof n.expiresAt!="string"||typeof n.discussionId!="number"||!Number.isSafeInteger(n.discussionId)||n.discussionId<=0)return null;const r=Date.parse(n.expiresAt);return!Number.isFinite(r)||r<=t?null:{continuationId:n.continuationId,expiresAt:n.expiresAt,discussionId:n.discussionId}},m0=(e,t,n,r=sessionStorage)=>{const i=_c({...t,discussionId:n});i&&r.setItem(za(e),JSON.stringify(i))},p0=(e,t=sessionStorage,n=Date.now())=>{const r=za(e),i=t.getItem(r);if(!i)return null;try{const a=_c(JSON.parse(i),n);if(a)return a}catch{}return t.removeItem(r),null},Xs=(e,t=sessionStorage)=>{t.removeItem(za(e))},g0=async({apiUrl:e,appToken:t,discussionId:n,continuation:r,identitySession:i,fetchImplementation:a=fetch})=>{if(!Number.isSafeInteger(n)||n<=0)return null;const s=await i.getToken({interactive:!1});if(!s)return null;const o={discussionId:n};return a(`${e}/ai/pending-turns/${encodeURIComponent(t)}/${encodeURIComponent(r.continuationId)}/resume`,{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)})},b0=e=>e>=200&&e<300||e>=400&&e<500&&e!==429||e===503,E0=e=>{if(!Q.isUnknownRecord(e))return;const t=Q.readOptionalNumber(e.timeoutMinutes)??Q.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES;return{enabled:e.enabled===!0,timeoutMinutes:Math.max(1,Math.min(120,Math.round(t))),requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1}},T0=e=>{if(Q.isUnknownRecord(e))return{enabled:e.enabled!==!1,requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1,requireReason:e.requireReason!==!1}},y0=e=>{if(!Q.isUnknownRecord(e))return null;const t=e;if(t.type!=="interactive_widget_request"||t.event!=="interactiveWidget.requested"||t.widgetType!==Q.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport||!Q.isUnknownRecord(t.payload))return null;const n=t.payload;if((Q.readOptionalString(n.mode)??"live_chat")==="closed_hours_contact_capture"){const s=Q.readOptionalString(n.reconnectToken),o=Q.readOptionalNumber(n.customerSupportSessionId),u=T0(n.closedHoursContactCapture);if(n.transport!=="none"||!s||!o||!u||!u.enabled)return null;const c=Q.isUnknownRecord(n.businessHours)?n.businessHours:{};return{mode:"closed_hours_contact_capture",transport:"none",reconnectToken:s,reconnectTokenExpiresAt:Q.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:o,companyId:Q.readOptionalNumber(t.companyId),agentId:Q.readOptionalNullableNumber(t.agentId),discussionId:Q.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Q.readOptionalNullableString(t.toolcallId),closedHoursContactCapture:u,businessHours:{timezone:Q.readOptionalString(c.timezone)??Q.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE,todayScheduleLabel:Q.readOptionalString(c.todayScheduleLabel)}}}if(n.transport!=="socket"||typeof n.socketUrl!="string")return null;const i=Q.readOptionalString(n.handoffToken),a=Q.readOptionalString(n.reconnectToken);return!i&&!a?null:{mode:"live_chat",transport:"socket",socketUrl:n.socketUrl,handoffToken:i,reconnectToken:a,reconnectTokenExpiresAt:Q.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:Q.readOptionalNumber(n.customerSupportSessionId),companyId:Q.readOptionalNumber(t.companyId),agentId:Q.readOptionalNullableNumber(t.agentId),discussionId:Q.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Q.readOptionalNullableString(t.toolcallId),fallbackContactCapture:E0(n.fallbackContactCapture)}},_0=e=>y0(e),x0=/^[a-zA-Z0-9][a-zA-Z0-9:._-]*$/,S0=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,C0=e=>{if(!Q.isUnknownRecord(e)||e.protocolVersion!==Q.IDENTITY_GATE_PROTOCOL_V1&&e.protocolVersion!==Q.IDENTITY_GATE_PROTOCOL_V2||typeof e.gateId!="string"||e.gateId.length<1||e.gateId.length>100||typeof e.toolCallId!="string"||e.toolCallId.length<1||e.toolCallId.length>255||typeof e.resultToken!="string"||e.resultToken.length<32||e.resultToken.length>512||typeof e.expiresAt!="string"||!Number.isFinite(Date.parse(e.expiresAt))||e.reason!=="identity_required"&&e.reason!=="identity_expired"||!Array.isArray(e.requiredCapabilities)||e.requiredCapabilities.length<1||e.requiredCapabilities.length>50||!e.requiredCapabilities.every(n=>typeof n=="string"&&n.length<=100&&x0.test(n)))return null;const t={gateId:e.gateId,toolCallId:e.toolCallId,requiredCapabilities:[...new Set(e.requiredCapabilities)].sort(),reason:e.reason,expiresAt:e.expiresAt,resultToken:e.resultToken};return e.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V1?{protocolVersion:Q.IDENTITY_GATE_PROTOCOL_V1,...t}:!Q.isUnknownRecord(e.continuation)||typeof e.continuation.continuationId!="string"||!S0.test(e.continuation.continuationId)||typeof e.continuation.expiresAt!="string"||!Number.isFinite(Date.parse(e.continuation.expiresAt))?null:{protocolVersion:Q.IDENTITY_GATE_PROTOCOL_V2,...t,continuation:{continuationId:e.continuation.continuationId,expiresAt:e.continuation.expiresAt}}},I0=e=>{if(e.event===Q.AI_RESPONSE_COMPLETED_EVENT&&Q.isAiResponseCompletedPayload(e.payload))return{type:"ai_response_completed",payload:e.payload};if(e.event===Q.IDENTITY_GATE_REQUIRED_EVENT){const r=C0(e.payload);if(r)return{type:"identity_gate_required",payload:r}}const t=cc(e.payload);if(t)return{type:"interactive_widget_requested",payload:t};const n=_0(e.payload);return n?{type:"customer_support_handoff_requested",payload:n}:{type:"unhandled_client_event",event:e}};class Mt{pending="";logger;constructor(t=console){this.logger=t}transformNDJSONChunkIntoObjects(t){this.pending+=t;const n=this.pending.split(/\r?\n/);this.pending=n.pop()??"";const r=[];for(const i of n){const a=i.trim();if(a)try{r.push(JSON.parse(a))}catch{this.logger.warn("[NDJSON] Could not parse line:",a)}}return r}flushPending(){const t=this.pending.trim();if(this.pending="",!t)return[];try{return[JSON.parse(t)]}catch{return[]}}static isObjectOutputstreamMessageDeltaDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_DELTA;static isObjectOutputstreamMessageStartDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_START;static isObjectOutputstreamMessageEndDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_END;static isObjectOutputstreamErrorDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_ERROR;static isObjectOutputstreamClientEventDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_CLIENT_EVENT;static isObjectOutputstreamLoadingNumberOfStepsDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE;static isObjectOutputstreamLoadingCurrentStepNumberDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE;static isObjectOutputstreamLoadingCurrentStepNameDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE;static containsObjectWithLastAnswerToTrue=t=>{for(const n of t)if(this.isObjectOutputstreamMessageEndDTO(n)&&n.isLastAnswer)return!0;return!1}}function A0(e,t,n){return!Q.isAiResponseCompletedPayload(t)||t.discussionId!==n||t.discussionId!==e.discussionId||t.completedAiResponseCount<=(e.completedAiResponseCount??0)?e:{...e,completedAiResponseCount:t.completedAiResponseCount}}function w0(e,t){return typeof t=="number"&&Number.isSafeInteger(t)&&t>0&&(e.completedAiResponseCount??0)>=t}function v0(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="DISCUSSION_AI_RESPONSE_LIMIT_REACHED"}var da=(e=>(e.GET_DISCUSSION_ID="/id",e.RESET_DISCUSSION="/delete",e))(da||{});const k0=e=>!!e.startsWith("/"),N0=(e,t,n)=>e===da.GET_DISCUSSION_ID?t?`Votre ID de discussion est ${t}`:"Votre ID de discussion n'est pas encore défini. Envoyez un premier message pour que ce soit le cas.":e===da.RESET_DISCUSSION?(n(),null):`La commande ${e} n'est pas prise en compte.`,$a=()=>{const e=Yt(),t=e.formatMessage({defaultMessage:"Message the assistant...",id:"chatbot.placeholder.content"}),n=e.formatMessage({defaultMessage:"You",id:"chatbot.chatline.label.user"}),r=e.formatMessage({defaultMessage:"Assistant",id:"chatbot.chatline.label.assistant"}),i=e.formatMessage({defaultMessage:"Customer support",id:"chatbot.chatline.label.customerSupport"}),a=e.formatMessage({defaultMessage:"⏳ The chatbot is a little busy at the time. Please try again later.",id:"chatbot.error.api.429"}),s=e.formatMessage({defaultMessage:"Oops ! There has been an error. Please try again later.",id:"chatbot.error.api.500"}),o=e.formatMessage({defaultMessage:"Oups ! The discussion is full. Please start a new one.",id:"chatbot.error.api.409"}),u=e.formatMessage({defaultMessage:"See",id:"chatbot.infobanner.title"}),c=e.formatMessage({defaultMessage:"You have an archived discussion.",id:"chatbot.infobanner.cta"}),d=e.formatMessage({defaultMessage:"Transferring your request to customer support...",id:"chatbot.customerSupport.connecting"}),f=e.formatMessage({defaultMessage:"Your request has been sent to Customer Support. It usually takes a few minutes to get a reply. Thank you for waiting.",id:"chatbot.customerSupport.connected"}),m=e.formatMessage({defaultMessage:"Customer support is not available right now. Please try again later.",id:"chatbot.customerSupport.connectionError"}),h=e.formatMessage({defaultMessage:"Customer support received your request, but live replies are temporarily unavailable. Please try again shortly.",id:"chatbot.customerSupport.providerUnavailable"}),y=e.formatMessage({defaultMessage:"Your customer support conversation is now complete. Start a new conversation whenever you need more help.",id:"chatbot.customerSupport.closed"}),g=e.formatMessage({defaultMessage:"Restart",id:"chatbot.customerSupport.restart"}),w=e.formatMessage({defaultMessage:"Leave your contact details",id:"chatbot.customerSupport.fallback.title"}),I=e.formatMessage({defaultMessage:"Customer support has not replied yet. Leave your email and phone number and we will contact you soon.",id:"chatbot.customerSupport.fallback.description"}),v=e.formatMessage({defaultMessage:"Email",id:"chatbot.customerSupport.fallback.email"}),N=e.formatMessage({defaultMessage:"Phone",id:"chatbot.customerSupport.fallback.phone"}),P=e.formatMessage({defaultMessage:"Send",id:"chatbot.customerSupport.fallback.submit"}),A=e.formatMessage({defaultMessage:"Sending...",id:"chatbot.customerSupport.fallback.submitting"}),p=e.formatMessage({defaultMessage:"Your contact details have been saved. Customer support will contact you soon.",id:"chatbot.customerSupport.fallback.success"}),L=e.formatMessage({defaultMessage:"We could not save your contact details. Please try again.",id:"chatbot.customerSupport.fallback.error"}),B=e.formatMessage({defaultMessage:"Customer support is currently closed",id:"chatbot.customerSupport.closedHours.title"}),Y=e.formatMessage({defaultMessage:"Leave your email, phone number and request. Customer support will contact you during opening hours.",id:"chatbot.customerSupport.closedHours.description"}),k=e.formatMessage({defaultMessage:"Today:",id:"chatbot.customerSupport.closedHours.schedulePrefix"}),j=e.formatMessage({defaultMessage:"Reason for your request",id:"chatbot.customerSupport.closedHours.reason"}),$=e.formatMessage({defaultMessage:"Your request has been saved. Customer support will contact you during opening hours.",id:"chatbot.customerSupport.closedHours.success"});return{placeholderTranslation:t,chatlineLabelUserTranslation:n,chatlineLabelAssistantTranslation:r,chatlineLabelCustomerSupportTranslation:i,tooManyRequestsTranslation:a,genericErrorTranslation:s,discussionFullErrorTranslation:o,infoBannerTitleTranslation:u,infoBannerExplainationTranslation:c,customerSupportConnectingTranslation:d,customerSupportConnectedTranslation:f,customerSupportConnectionErrorTranslation:m,customerSupportProviderUnavailableTranslation:h,customerSupportClosedTranslation:y,customerSupportRestartTranslation:g,customerSupportFallbackTitleTranslation:w,customerSupportFallbackDescriptionTranslation:I,customerSupportFallbackEmailTranslation:v,customerSupportFallbackPhoneTranslation:N,customerSupportFallbackSubmitTranslation:P,customerSupportFallbackSubmittingTranslation:A,customerSupportFallbackSuccessTranslation:p,customerSupportFallbackErrorTranslation:L,customerSupportClosedHoursTitleTranslation:B,customerSupportClosedHoursDescriptionTranslation:Y,customerSupportClosedHoursSchedulePrefixTranslation:k,customerSupportClosedHoursReasonTranslation:j,customerSupportClosedHoursSuccessTranslation:$}},Wa=()=>{const e=Yt(),t=e.formatMessage({defaultMessage:"Search",id:"chatbot.chatline.loading.function.search"}),n=e.formatMessage({defaultMessage:"Looking into the cavern",id:"chatbot.chatline.loading.function.extractProductName"}),r=e.formatMessage({defaultMessage:"Consulting the shadocks",id:"chatbot.chatline.loading.function.suggestProductName"}),i=e.formatMessage({defaultMessage:"Looking for ziboublis",id:"chatbot.chatline.loading.function.criteriaDefinition"}),a=e.formatMessage({defaultMessage:"Searching Stock",id:"chatbot.chatline.loading.function.searchStock"}),s=e.formatMessage({defaultMessage:"Step",id:"chatbot.chatline.loading.function.step"}),o=e.formatMessage({defaultMessage:"I'm looking for products",id:"chatbot.chatline.loading.function.genericSearchMessage"}),u=e.formatMessage({defaultMessage:"Searching ...",id:"chatbot.chatline.loading.stepName.search"}),c=e.formatMessage({defaultMessage:"Building Query ...",id:"chatbot.chatline.loading.stepName.building"}),d=e.formatMessage({defaultMessage:"Analyzing ...",id:"chatbot.chatline.loading.stepName.analyzing"}),f=e.formatMessage({defaultMessage:"Writing answer",id:"chatbot.chatline.loading.stepName.redacting"}),m=e.formatMessage({defaultMessage:"Cancel",id:"chatbot.chatline.loading.cancel"}),h=e.formatMessage({defaultMessage:"see recent messages",id:"chatbot.chatline.seeRecentMessages"}),y=w=>w?w.includes("ExtractProductNames")?n:w.includes("SuggestProductNames")?r:w==="Recherche ..."?u:w==="Construction ..."?c:w==="Analyse ..."?d:w==="Rédaction"?f:w.includes("CreateCriteriasFromProductNames")||w.includes("CreateCriteriasOrProductNamesFromDiscussion")?i:w.includes("SearchStock")?a:"":t,g=y();return{searchTranslation:t,extractProductNameTranslation:n,criteriaDefinitionTranslation:i,searchStockTranslation:a,stepTranslation:s,getCurrentStepTranslated:y,defaultStartingStep:g,lookingForProductTranslation:o,cancelTranslation:m,recentMessagesTranslation:h}},R0=e=>/(\[.*|!\[.*)$/.test(e),O0=e=>/\)/.test(e),Qs=()=>({rendered:"",markdownTag:"",isWritingTag:!1,lastStreamSourceUuid:null});class L0{buffers=new Map;callbacks;constructor(t){this.callbacks=t}handleStart(t){this.buffers.set(t.messageId,Qs()),t.role==="assistant"&&this.callbacks.onAssistantMessageStart?.(),this.callbacks.addEmptyMessage({messageStreamId:t.messageId,role:t.role})}handleDelta(t){this.ensureBufferExists(t.messageId);const n=this.buffers.get(t.messageId);this.appendSourceSeparatorIfNeeded(n,t.streamSourceUuid),this.appendDelta(n,t.delta),this.callbacks.updateMessage({id:t.messageId,newContent:n.rendered})}handleEnd(t){this.buffers.delete(t.messageId)}hasBuffer(t){return this.buffers.has(t)}ensureBufferExists(t){this.buffers.has(t)||(this.buffers.set(t,Qs()),this.callbacks.addEmptyMessage({messageStreamId:t,role:"assistant"}))}appendSourceSeparatorIfNeeded(t,n){t.lastStreamSourceUuid&&t.lastStreamSourceUuid!==n&&(t.rendered+='<span style="display:block;height:1rem;"></span>'),t.lastStreamSourceUuid=n??null}appendDelta(t,n){if(O0(n)){t.markdownTag+=n,t.rendered+=t.markdownTag,t.markdownTag="",t.isWritingTag=!1;return}if(t.isWritingTag||R0(n)){t.markdownTag+=n,t.isWritingTag=!0;return}t.rendered+=n}}const D0=1e4,P0=3e3,M0=e=>{const t=new URL(e);return t.protocol=t.protocol==="https:"?"wss:":"ws:",t},B0=({apiUrl:e,handoff:t})=>(t.socketUrl.startsWith("ws://")||t.socketUrl.startsWith("wss://")?new URL(t.socketUrl):new URL(t.socketUrl,M0(e))).toString(),F0=e=>{if(typeof e!="object"||e===null)return!1;const t=e;return["connected","customer_message_ack","provider_message","closed","error"].includes(t.type)};class U0{socket;callbacks;url;appToken;handoffToken;isIntentionalClose=!1;handshakeTimeout;closeAcknowledgementTimeout=null;constructor(t){this.callbacks=t.callbacks,this.url=B0(t),this.appToken=t.appToken;const n=t.handoff.reconnectToken??t.handoff.handoffToken;if(!n)throw new Error("Customer support socket requires a reconnect token");this.handoffToken=n,this.socket=new WebSocket(this.url),this.handshakeTimeout=setTimeout(()=>{this.socket.readyState!==WebSocket.CONNECTING&&this.socket.readyState!==WebSocket.OPEN||(this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()}),this.socket.close())},D0),this.socket.addEventListener("open",this.sendAuthMessage),this.socket.addEventListener("message",this.handleMessage),this.socket.addEventListener("close",this.handleClose),this.socket.addEventListener("error",this.handleTransportError)}sendAuthMessage=()=>{this.socket.send(JSON.stringify({type:"auth",appToken:this.appToken,handoffToken:this.handoffToken}))};sendCustomerMessage(t){if(this.socket.readyState!==WebSocket.OPEN){this.callbacks.onError?.({type:"error",message:"Customer support connection is not ready.",code:"CUSTOMER_SUPPORT_SOCKET_NOT_READY"});return}const n={type:"customer_message",text:t,clientMessageId:crypto.randomUUID()};this.socket.send(JSON.stringify(n))}close(t,n){if(this.isIntentionalClose=!0,clearTimeout(this.handshakeTimeout),this.socket.readyState===WebSocket.OPEN&&n?.notifyServer){const r={type:"close",reason:t};this.socket.send(JSON.stringify(r)),this.closeAcknowledgementTimeout=setTimeout(()=>{this.closeTransport(t)},P0);return}this.closeTransport(t)}handleMessage=t=>{clearTimeout(this.handshakeTimeout);let n;try{n=JSON.parse(t.data)}catch{this.callbacks.onError?.({type:"error",message:"Customer support sent an invalid message.",code:"CUSTOMER_SUPPORT_SOCKET_INVALID_MESSAGE"});return}if(F0(n)){if(n.type==="connected"){this.callbacks.onConnected?.(n);return}if(n.type==="provider_message"){this.callbacks.onProviderMessage?.(n);return}if(n.type==="closed"){if(this.closeAcknowledgementTimeout!==null){clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null,this.closeTransport("Customer support session closed");return}this.callbacks.onClosed?.(n);return}n.type==="error"&&this.callbacks.onError?.(n)}};handleClose=t=>{clearTimeout(this.handshakeTimeout),this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),!this.isIntentionalClose&&this.callbacks.onClose?.(t)};handleTransportError=()=>{this.isIntentionalClose||this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()})};closeTransport(t){this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),this.socket.close(1e3,t??"Customer support socket detached")}safeUrlForLogs(){const t=new URL(this.url);return t.searchParams.has("handoffToken")&&t.searchParams.set("handoffToken","<redacted>"),t.toString()}}const H0=new Set(["SLACK_INBOUND_EVENT_NOT_OBSERVED"]),j0=e=>e&&H0.has(e)?"provider_unavailable":"connection_error",V0=e=>e.isClosed?e.labels.closed:!e.isCustomerSupportMode||!e.hasTransportFailed?null:e.failureKind==="provider_unavailable"?e.labels.providerUnavailable:e.labels.connectionError,z0=[500,1500,3e3],$0=e=>{const t=z0[e];return t===void 0?{shouldRetry:!1}:{shouldRetry:!0,delayMs:t}},xc=e=>e.mode!==St.customerSupport?!1:e.customerSupportState.status!=="closed",Ga=e=>e.mode!==St.customerSupport?!1:e.customerSupportState.status==="closed",Ya=e=>e.mode!==St.customerSupport||e.customerSupportState.status==="closed"?!1:e.customerSupportState.mode==="closed_hours_contact_capture",W0=e=>Ya(e)?"customer_support":xc(e)?"customer_support_connecting":Ga(e)?"customer_support":"ai",G0=e=>Ya(e)?"idle":xc(e)?"connecting":Ga(e)?"closed":"idle",Y0=e=>Ya(e)?"visible":"idle",q0=e=>e?.trim()||void 0,X0=e=>e.mode!==St.customerSupport||e.customerSupportState.status==="closed"||e.customerSupportState.mode==="closed_hours_contact_capture"?null:e.customerSupportState,Sc=e=>!!(e&&e.mode!=="closed_hours_contact_capture"),qa=e=>e?.mode==="closed_hours_contact_capture",Q0=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&Sc(e.state))return e.state.fallbackContactCapture},K0=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&qa(e.state))return e.state.closedHoursContactCapture},J0=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&qa(e.state))return e.state.businessHours},Z0=e=>e.isCustomerSupportMode?e.chatTransportMode==="customer_support_connecting"?"customer_support_connecting":e.isCurrentDiscussion?qa(e.state)?"customer_support_closed_hours_form":e.socketStatus!=="connected"?`socket_${e.socketStatus}`:e.isWaitingForFirstProviderReply?"waiting_first_provider_reply":e.isCustomerSupportClosed?"customer_support_closed":null:e.currentDiscussionId===null?"discussion_not_loaded":"discussion_mismatch":null;function em({appToken:e,conversationStorageKey:t,currentConversation:n,loadingStatus:r,labels:i,logger:a,setCurrentConversationId:s,setLoadingStatus:o,addMessageToCurrentConversation:u,chatboxBootState:c,resetConversationRequestId:d}){const f=qr(),m=c,[h,y]=S.useState(()=>W0(m)),[g,w]=S.useState(m.customerSupportState),[I,v]=S.useState(()=>G0(m)),[N,P]=S.useState(null),[A,p]=S.useState("idle"),[L,B]=S.useState(()=>Y0(m)),Y=S.useRef(null),k=S.useRef(d),j=S.useRef(!1),$=S.useRef(null),V=S.useRef(X0(m)),z=S.useRef(Ga(m)),Z=S.useRef(!1),fe=S.useRef(0),re=S.useRef(null),ke=h!=="ai",ve=g?.discussionId===n.discussionId,E=ke&&g?.status==="closed",G=V0({isCustomerSupportMode:ke,isClosed:E,hasTransportFailed:I==="failed",failureKind:N,labels:i}),ie=!!(ke&&ve&&g?.mode!=="closed_hours_contact_capture"&&g?.isWaitingForFirstProviderReply),x={isCustomerSupportMode:ke,isCurrentDiscussion:ve,state:g},ee=Q0(x),te=K0(x),K=J0(x),ae=!!ee?.enabled&&["visible","submitting","submitted","failed"].includes(A),se=!!te?.enabled&&["visible","submitting","submitted","failed"].includes(L),oe=Z0({chatTransportMode:h,currentDiscussionId:n.discussionId,isCustomerSupportClosed:E,isCustomerSupportMode:ke,isCurrentDiscussion:ve,isWaitingForFirstProviderReply:ie,socketStatus:I,state:g}),ce=oe!==null;S.useEffect(()=>{if(r!=="notLoading"||n.items.length===0)return;const U=ve?g:null;!n.discussionId&&!U||Hh({conversation:n,customerSupport:U,key:t})},[r,n,g,t,ve]),S.useEffect(()=>(Z.current=!1,()=>{Z.current=!0,re.current!==null&&(window.clearTimeout(re.current),re.current=null),Y.current?.close("Widget unmounted"),Y.current=null}),[]);const Ne=(U,R,M)=>{u({userType:"assistant",content:U,metaData:{messageKind:"system",systemEvent:R,...M},temporaryId:crypto.randomUUID()})},q=(U,R)=>{u({userType:"assistant",content:U,metaData:{messageKind:"conversation",authorType:"customer_support_operator",...R},temporaryId:crypto.randomUUID()})},Re=(U,R)=>{Y.current?.close(U,R),Y.current=null},We=()=>{re.current!==null&&(window.clearTimeout(re.current),re.current=null),fe.current=0,$.current=null,V.current=null,z.current=!1,P(null),w(null),v("idle"),y("ai")},Ke=(U,R)=>{Re(U,R),We()};S.useEffect(()=>{k.current!==d&&(k.current=d,j.current=!0,Ke("Starting new conversation",{notifyServer:!0}))},[d]),S.useEffect(()=>{n.discussionId===null&&j.current&&g===null&&h==="ai"&&(j.current=!1)},[h,n.discussionId,g]);const et=U=>{z.current||(z.current=!0,$.current=null,Y.current=null,U?.discussionId&&s(U.discussionId),o("notLoading"),P(null),v("closed"),y("customer_support"),w(R=>{if(!R)return R;const M=new Date().toISOString();return{...R,status:"closed",discussionId:U?.discussionId??R.discussionId,updatedAt:M,closedAt:U?.closedAt??M,closedReason:U?.reason,isWaitingForFirstProviderReply:!1}}))},Je=(U,R)=>{Y.current&&Re("Replacing customer support socket"),v("connecting");let M=!1,J=!1;const ue=he=>{P(he),v("failed"),o("notLoading")},xe=he=>{Y.current=null;const Pe=$0(fe.current);if(!Pe.shouldRetry){a.error("Customer support socket reconnect exhausted code="+he.code+" reason="+(he.reason||"none")),ue("connection_error");return}fe.current+=1,v("connecting"),y("customer_support_connecting"),a.log("Customer support socket reconnect scheduled attempt="+fe.current+" delayMs="+Pe.delayMs+" code="+he.code),re.current=window.setTimeout(()=>{re.current=null,!(Z.current||z.current)&&Je(U,{...R,addConnectedMessage:M?!1:R?.addConnectedMessage})},Pe.delayMs)};Y.current=new U0({apiUrl:f,appToken:e,handoff:U,callbacks:{onConnected:he=>{const Pe=U.reconnectToken??U.handoffToken;if(!Pe){et({reason:"Missing reconnect token"});return}M=!0,fe.current=0,R?.isStoredReconnect&&(V.current=null);const tt=new Date().toISOString();s(he.discussionId),P(null),v("connected"),y("customer_support"),o("notLoading"),w(ft=>{const Ze=Sc(ft)?ft:null;return{mode:"live_chat",status:"active",discussionId:he.discussionId,socketUrl:U.socketUrl,reconnectToken:Pe,reconnectTokenExpiresAt:he.reconnectTokenExpiresAt??U.reconnectTokenExpiresAt,customerSupportSessionId:he.customerSupportSessionId??U.customerSupportSessionId,provider:Ze?.provider,isWaitingForFirstProviderReply:Ze?.isWaitingForFirstProviderReply??!0,fallbackContactCapture:Ze?.fallbackContactCapture,startedAt:Ze?.startedAt??tt,updatedAt:tt}}),R?.addConnectedMessage!==!1&&Ne(i.connected,"customer_support_connected")},onProviderMessage:he=>{P(null),v("connected"),p(Pe=>Pe==="submitted"?Pe:"idle"),w(Pe=>!Pe||Pe.mode==="closed_hours_contact_capture"?Pe:{...Pe,status:"active",provider:he.provider??Pe.provider,reconnectTokenExpiresAt:he.reconnectTokenExpiresAt??Pe.reconnectTokenExpiresAt,isWaitingForFirstProviderReply:!1,updatedAt:new Date().toISOString()}),q(he.text,{customerSupportAuthorName:q0(he.authorName),customerSupportProvider:he.provider})},onClosed:he=>{J=!0,et({reason:he.reason,closedAt:he.closedAt,discussionId:he.discussionId})},onError:he=>{J=!0,a.error("Customer support socket server error code="+he.code+" message="+he.message),ue(j0(he.code))},onClose:he=>{Z.current||z.current||J||xe(he)},onTransportError:he=>{a.error(`Customer support socket transport error readyState=${he.readyState} url=${he.url}`)}}})};S.useEffect(()=>{const U=V.current;if(!U)return;const R=fc(U,n.discussionId);if(R!=="discussion_not_loaded"){if(R==="session_closed"){V.current=null,v("closed"),y("customer_support");return}if(R){V.current=null,w(M=>M?.discussionId===n.discussionId?M:null),v("idle"),y("ai");return}Y.current||(v("connecting"),y("customer_support_connecting"),Je({mode:"live_chat",transport:"socket",socketUrl:U.socketUrl,reconnectToken:U.reconnectToken,reconnectTokenExpiresAt:U.reconnectTokenExpiresAt,customerSupportSessionId:U.customerSupportSessionId,discussionId:U.discussionId,fallbackContactCapture:U.fallbackContactCapture},{addConnectedMessage:!1,isStoredReconnect:!0}))}},[n.discussionId]);const je=U=>{if(U.mode==="closed_hours_contact_capture"){De(U);return}const R=U.reconnectToken??U.handoffToken;if(!U.discussionId||!R){Ne(i.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const M=new Date().toISOString();$.current=U,z.current=!1,p("idle"),w({mode:"live_chat",status:"connecting",discussionId:U.discussionId,socketUrl:U.socketUrl,reconnectToken:R,reconnectTokenExpiresAt:U.reconnectTokenExpiresAt,customerSupportSessionId:U.customerSupportSessionId,isWaitingForFirstProviderReply:!0,fallbackContactCapture:U.fallbackContactCapture,startedAt:M,updatedAt:M}),v("connecting"),y("customer_support_connecting"),Ne(i.connecting,"customer_support_connecting")},ot=()=>{const U=$.current;!U||U.mode!=="live_chat"||($.current=null,Je(U))},yt=U=>h!=="customer_support"||I!=="connected"||!ve||!Y.current?(Ne(i.connectionError,"customer_support_connection_error",{isErrorMessage:!0}),!1):(Y.current.sendCustomerMessage(U),!0);S.useEffect(()=>{if(!ee?.enabled||!ie||!ve||I!=="connected"||A!=="idle")return;const U=Math.max(1,ee.timeoutMinutes)*60*1e3,R=window.setTimeout(()=>{p("visible")},U);return()=>window.clearTimeout(R)},[ee,A,ve,ie,I]);const Te=async({email:U,phone:R})=>{if(!g?.customerSupportSessionId||!g.reconnectToken)return!1;p("submitting");const M=`${f}/customer-support/sessions/${g.customerSupportSessionId}/fallback-contact`;return(await fetch(M,un.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:g.reconnectToken,reasonType:"fallback_no_reply",email:U,phone:R}}))).ok?(p("submitted"),Re("Fallback contact submitted"),et({reason:"fallback_contact_submitted",discussionId:g.discussionId}),!0):(p("failed"),!1)},De=U=>{if(!U.discussionId){Ne(i.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const R=new Date().toISOString();$.current=null,z.current=!1,Re("Closed-hours contact capture"),w({mode:"closed_hours_contact_capture",status:"active",discussionId:U.discussionId,reconnectToken:U.reconnectToken,reconnectTokenExpiresAt:U.reconnectTokenExpiresAt,customerSupportSessionId:U.customerSupportSessionId,closedHoursContactCapture:U.closedHoursContactCapture,businessHours:U.businessHours,startedAt:R,updatedAt:R}),v("idle"),y("customer_support"),o("notLoading"),B("visible")},Ae=async({email:U,phone:R,reason:M})=>{if(g?.mode!=="closed_hours_contact_capture")return!1;B("submitting");const J=f+"/customer-support/sessions/"+g.customerSupportSessionId+"/fallback-contact";return(await fetch(J,un.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:g.reconnectToken,reasonType:"closed_hours",email:U,phone:R,reason:M}}))).ok?(B("submitted"),et({reason:"closed_hours_contact_submitted",discussionId:g.discussionId}),!0):(B("failed"),!1)};return S.useEffect(()=>{if(ke&&g&&g.status!=="closed"&&n.discussionId!==g.discussionId&&n.discussionId===null){if(j.current)return;s(g.discussionId);return}},[n.discussionId,g,ke,I,s]),{chatTransportMode:h,socketStatus:I,isCustomerSupportMode:ke,isCustomerSupportClosed:E,customerSupportStatusMessage:G,isCustomerSupportInputDisabled:ce,customerSupportInputDisabledReason:oe,enterCustomerSupportMode:je,flushPendingCustomerSupportHandoff:ot,sendToCustomerSupport:yt,fallbackContactCaptureConfig:ee,fallbackContactCaptureStatus:A,shouldDisplayFallbackContactCapture:ae,submitFallbackContactCapture:Te,closedHoursContactCaptureConfig:te,closedHoursBusinessHours:K,closedHoursContactCaptureStatus:L,shouldDisplayClosedHoursContactCapture:se,submitClosedHoursContactCapture:Ae}}const Ks=e=>e?!!(e.submitInteractionResult&&e.resumeInteraction)||e.interactiveWidgetCapabilities?.localPreview?Q.INTERACTIVE_WIDGET_PROTOCOL_V3:void 0:Q.INTERACTIVE_WIDGET_PROTOCOL_V3,tm=e=>e.runtimeAdapter?e.prompt.mode!=="text"?Promise.reject(new Error("WIDGET_RUNTIME_ADAPTER_TEXT_PROMPTS_ONLY")):e.runtimeAdapter.sendTextPrompt(e.prompt.request):e.sendStandardPrompt();class nm{active=null;logger;constructor(t=console){this.logger=t}start(){return this.active?null:(this.active={id:crypto.randomUUID(),controller:new AbortController,decoder:new Mt(this.logger)},this.active)}hasActiveStream(){return this.active!==null}isCurrent(t){return this.active?.id===t.id}finish(t){return this.isCurrent(t)?(this.active=null,!0):!1}cancel(t){const n=this.active;return n?(this.active=null,n.controller.abort(t),n):null}}const sr=(e,t)=>`chatsystem:interaction:v2:${e}:${t}`,rm=(e,t,n)=>{t.responsePolicy.mode==="resume_turn"&&sessionStorage.setItem(sr(e,t.instanceId),JSON.stringify({continuationId:t.responsePolicy.continuation.continuationId,expiresAt:t.responsePolicy.continuation.expiresAt,resultToken:t.responsePolicy.resultToken,discussionId:n}))},$n=(e,t)=>{const n=sr(e,t),r=sessionStorage.getItem(n);if(!r)return null;try{const i=JSON.parse(r);return typeof i.continuationId!="string"||typeof i.expiresAt!="string"||typeof i.resultToken!="string"||typeof i.discussionId!="number"||Date.parse(i.expiresAt)<=Date.now()?(sessionStorage.removeItem(n),null):i}catch{return sessionStorage.removeItem(n),null}},im=(e,t,n)=>{const r=$n(e,t);r&&sessionStorage.setItem(sr(e,t),JSON.stringify({...r,submissionId:n,resultAccepted:!0}))},am=(e,t,n)=>{const r=$n(e,t);r&&sessionStorage.setItem(sr(e,t),JSON.stringify({...r,submissionId:n,resultAccepted:!1}))},Js=(e,t)=>sessionStorage.removeItem(sr(e,t)),Cc=(e,t)=>({"Content-Type":"application/json",[Q.INTERACTIVE_WIDGET_RESULT_TOKEN_HEADER]:e,...t?{Authorization:`Bearer ${t}`}:{}}),sm=(e,t)=>e?.submitInteractionResult?e.submitInteractionResult(t):fetch(`${t.apiUrl}/ai/client-interactions/${encodeURIComponent(t.appToken)}/${encodeURIComponent(t.continuationId)}/result`,{method:"POST",headers:Cc(t.resultToken,t.authorizationToken),body:JSON.stringify({discussionId:t.discussionId,submissionId:t.submissionId,result:t.result}),signal:t.signal}),om=(e,t)=>e?.resumeInteraction?e.resumeInteraction(t):fetch(`${t.apiUrl}/ai/client-interactions/${encodeURIComponent(t.appToken)}/${encodeURIComponent(t.continuationId)}/resume`,{method:"POST",headers:Cc(t.resultToken,t.authorizationToken),body:JSON.stringify({discussionId:t.discussionId}),signal:t.signal}),um=e=>({status:"submitted",actionId:e.actionId,data:e.data??{}}),cm=e=>{const{appToken:t,agentId:n}=e,r=ar(),i=qr(),a=o0(),s=S.useContext(Tc),{appCurrentLang:o}=S.useContext(ac),{companySettings:u}=S.useContext(Ot),c=Va({appToken:t,agentId:n}),d=hc({appToken:t,agentId:n}),f=S.useRef(null),m=S.useRef(s),h=S.useRef(new Set),y=S.useRef(null),g=S.useRef(null),w=S.useRef(new Set),I=S.useRef(new Set),v=S.useRef(null),N=S.useRef(null),P=S.useRef(null);P.current||(P.current=new nm(r));const A=P.current,[p,L]=S.useState(0);(!f.current||m.current!==s)&&(m.current=s,f.current=new l0(s)),S.useEffect(()=>{const X=f.current;if(!(!X||!s))return X.getToken({interactive:!1}).catch(()=>X.clear()),s.subscribe?.(()=>{X.handleIdentityChanged(),L(be=>be+1),X.getToken({interactive:!1}).catch(()=>X.clear())})},[s]);const{genericErrorTranslation:B,tooManyRequestsTranslation:Y,discussionFullErrorTranslation:k,customerSupportConnectingTranslation:j,customerSupportConnectedTranslation:$,customerSupportConnectionErrorTranslation:V,customerSupportProviderUnavailableTranslation:z,customerSupportClosedTranslation:Z}=$a(),{defaultStartingStep:fe}=Wa(),{currentConversation:re,setCurrentConversation:ke,addEmptyMessageToCurrentConversation:ve,addMessageToCurrentConversation:E,removeEmptyAssistantMessageFromCurrentConversation:G,resetConversation:ie,setCurrentConversationId:x,updateCurrentConversationMessageById:ee,updateInteractiveWidget:te,chatboxBootState:K,resetConversationRequestId:ae}=Qr(),[se,oe]=S.useState("notLoading"),[ce,Ne]=S.useState(null),[q,Re]=S.useState(fe),[We,Ke]=S.useState(null),[et,Je]=S.useState(!1),{chatTransportMode:je,isCustomerSupportMode:ot,customerSupportStatusMessage:yt,isCustomerSupportInputDisabled:Te,enterCustomerSupportMode:De,flushPendingCustomerSupportHandoff:Ae,sendToCustomerSupport:U,fallbackContactCaptureConfig:R,fallbackContactCaptureStatus:M,shouldDisplayFallbackContactCapture:J,submitFallbackContactCapture:ue,closedHoursContactCaptureConfig:xe,closedHoursBusinessHours:he,closedHoursContactCaptureStatus:Pe,shouldDisplayClosedHoursContactCapture:tt,submitClosedHoursContactCapture:ft}=em({appToken:t,conversationStorageKey:d,currentConversation:re,loadingStatus:se,labels:{connecting:j,connected:$,connectionError:V,providerUnavailable:z,closed:Z},logger:r,setCurrentConversationId:x,setLoadingStatus:oe,addMessageToCurrentConversation:E,chatboxBootState:K,resetConversationRequestId:ae}),Ze=S.useRef(null);Ze.current||(Ze.current=new L0({addEmptyMessage:ve,updateMessage:ee,onAssistantMessageStart:()=>oe("loadingDisplayedAnswer")}));const Ge=Ze.current,we=X=>{A.finish(X)&&(oe("notLoading"),Re(fe),Ke(null))},He=()=>{const X=A.start();return X?(oe("loadingIntermediaryStates"),X):null},_t=()=>{A.cancel("Cancelling stream on purpose.")&&(r.log("Stream request aborted"),oe("notLoading"),Re(fe),Ke(null),G())};S.useEffect(()=>{if(ot){Je(!1);return}const X=u?.api?.settings?.maxAiResponsesPerDiscussion;Je(w0(re,X))},[u?.api?.settings?.maxAiResponsesPerDiscussion,re.completedAiResponseCount,re.discussionId,ot]);const Cs=S.useRef(ae);S.useEffect(()=>{Cs.current!==ae&&(Cs.current=ae,A.cancel("Conversation reset."),oe("notLoading"),Re(fe),Ke(null),Je(!1))},[fe,ae]),S.useEffect(()=>(N.current&&(clearTimeout(N.current),N.current=null),()=>{N.current=setTimeout(()=>{A.cancel("Widget runtime unmounted."),N.current=null},0)}),[A]);const di=(X,be)=>{for(const me of X)if(Mt.isObjectOutputstreamMessageStartDTO(me))Ge.handleStart(me);else if(Mt.isObjectOutputstreamMessageDeltaDTO(me))Ge.handleDelta(me);else if(Mt.isObjectOutputstreamMessageEndDTO(me))Ge.handleEnd(me);else if(Mt.isObjectOutputstreamLoadingCurrentStepNumberDTO(me))Ke(me.content);else if(Mt.isObjectOutputstreamLoadingCurrentStepNameDTO(me))Re(me.content);else if(Mt.isObjectOutputstreamLoadingNumberOfStepsDTO(me))Ne(me.content);else if(Mt.isObjectOutputstreamClientEventDTO(me)){const pe=I0(me);if(pe.type==="ai_response_completed")ke(de=>A0(de,pe.payload,be));else if(pe.type==="customer_support_handoff_requested")De(pe.payload);else if(pe.type==="identity_gate_required"){if(h.current.has(pe.payload.gateId))continue;h.current.add(pe.payload.gateId);const de=f.current;if(!de)continue;pe.payload.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V2&&(Number.isSafeInteger(be)&&be>0?m0(c,pe.payload.continuation,be):r.warn("Identity continuation ignored without a valid discussion id"),y.current=pe.payload.continuation.continuationId),d0({apiUrl:i,appToken:t,payload:pe.payload,identitySession:de}).then(()=>{pe.payload.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V2&&Xs(c)}).catch(ze=>r.error(ze)).finally(()=>{pe.payload.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V2&&y.current===pe.payload.continuation.continuationId&&(y.current=null)})}else if(pe.type==="interactive_widget_requested"){if(re.items.some(de=>de.metaData?.interactiveWidget?.instanceId===pe.payload.instanceId))continue;pe.payload.responsePolicy.mode==="resume_turn"&&Number.isSafeInteger(be)&&be>0&&rm(c,pe.payload,be),E({userType:"assistant",temporaryId:`interactive-widget:${pe.payload.instanceId}`,metaData:{interactiveWidget:{protocolVersion:pe.payload.protocolVersion,instanceId:pe.payload.instanceId,widgetType:pe.payload.widgetType,presentation:pe.payload.payload,responseMode:pe.payload.responsePolicy.mode,state:"active"}}})}else r.warn(`Client event not handled - ${me.event}`)}else Mt.isObjectOutputstreamErrorDTO(me)?E({userType:"assistant",metaData:{isErrorMessage:!0},content:me.message,temporaryId:crypto.randomUUID()}):r.warn(`Packet shape not handled - ${me}`)},fi=async(X,be)=>{const me=Number.parseInt(X.headers.get("discussionId")??"",10);if(Number.isNaN(me)||x(me),!X.ok){if(!A.isCurrent(be))return;let ze=B;const xt=await X.json().catch(()=>null);X.status===409&&v0(xt)?(ze=k,Je(!0)):X.status===429&&(ze=Y),E({userType:"assistant",content:ze,metaData:{isErrorMessage:!0},temporaryId:crypto.randomUUID()}),we(be);return}const pe=X.body?.getReader();if(!pe){we(be);return}const de=new TextDecoder;for(;A.isCurrent(be);){const{done:ze,value:xt}=await pe.read();if(!A.isCurrent(be))break;if(xt&&di(be.decoder.transformNDJSONChunkIntoObjects(de.decode(xt,{stream:!0})),me),ze){di(be.decoder.transformNDJSONChunkIntoObjects(de.decode()),me),di(be.decoder.flushPending(),me),Ae(),we(be);return}}await pe.cancel().catch(()=>{})};v.current=fi,S.useEffect(()=>{if(!s||A.hasActiveStream())return;const X=p0(c);if(!X){g.current=null;return}if(g.current===X.continuationId||y.current===X.continuationId)return;const be=f.current;if(!be)return;const me=He();me&&(g.current=X.continuationId,g0({apiUrl:i,appToken:t,discussionId:X.discussionId,continuation:X,identitySession:be}).then(async pe=>{if(!pe){g.current=null,we(me);return}pe.status===401&&be.clear(),b0(pe.status)&&Xs(c),await v.current?.(pe,me)}).catch(pe=>{r.error(pe),we(me)}))},[i,t,s,p,r,c]),S.useEffect(()=>{if(A.hasActiveStream())return;re.items.map(de=>de.metaData?.interactiveWidget).filter(de=>de?.responseMode==="resume_turn"&&de.state==="active").forEach(de=>{!de||I.current.has(de.instanceId)||(I.current.add(de.instanceId),$n(c,de.instanceId)||te(de.instanceId,ze=>({...ze,state:"unavailable"})))});const X=re.items.map(de=>de.metaData?.interactiveWidget).find(de=>de?.responseMode==="resume_turn"&&(de.state==="submitting"||de.state==="submitted")&&!w.current.has(de.instanceId));if(!X)return;const be=$n(c,X.instanceId);if(!be?.submissionId)return;const me=He();if(!me)return;w.current.add(X.instanceId),(async()=>{const de=a?void 0:await f.current?.getToken({interactive:!1}).catch(()=>null);return om(a,{apiUrl:i,appToken:t,continuationId:be.continuationId,discussionId:be.discussionId,resultToken:be.resultToken,authorizationToken:de??void 0,signal:me.controller.signal})})().then(async de=>{de.ok||te(X.instanceId,ze=>({...ze,state:"unavailable"})),await v.current?.(de,me),de.ok&&Js(c,X.instanceId)}).catch(de=>{r.error(de),w.current.delete(X.instanceId),we(me)})},[i,t,re.items,r,a,A,te,c]);const Vd=(X,be,me)=>{const pe=n?`?agentId=${encodeURIComponent(String(n))}`:"",de=`${i}/ai/prompt/${t}${pe}`,ze=Ks(a),xt={...s?{[Q.IDENTITY_GATE_VERSION_HEADER]:String(Q.IDENTITY_GATE_PROTOCOL_V2)}:{},...ze?{[Q.INTERACTIVE_WIDGET_VERSION_HEADER]:String(ze)}:{},...be?{Authorization:`Bearer ${be}`}:{}};if(X.mode==="text"){const mi={query:X.text,language:o.locale};return re.discussionId&&(mi.discussionId=re.discussionId),{url:de,fetchConfig:un.getFetchConfig({httpVerb:"POST",body:mi,contentType:"application/json",options:{signal:me,headers:{...un.getHeaders({contentType:"application/json"}),...xt}}})}}const Qt=new FormData;return Qt.append("language",o.locale),re.discussionId&&Qt.append("discussionId",String(re.discussionId)),Qt.append("audioInput",X.audioFile,X.audioFile.name),{url:de,fetchConfig:{method:"POST",body:Qt,signal:me,headers:xt}}},Is=X=>{const be=He();return be?((async()=>{let me=null;if(!a)try{me=await f.current?.getToken({interactive:!1})??null}catch{f.current?.clear()}const pe=X.mode==="audio"?{mode:"audio"}:{mode:"text",request:{apiUrl:i,appToken:t,agentId:n,query:X.text,language:o.locale,discussionId:re.discussionId,interactiveWidgetProtocolVersion:Ks(a),signal:be.controller.signal}};try{const de=await tm({runtimeAdapter:a,prompt:pe,sendStandardPrompt:()=>{const{url:ze,fetchConfig:xt}=Vd(X,me,be.controller.signal);return fetch(ze,xt)}});de.status===401&&me&&f.current?.clear(),await fi(de,be),de.ok&&!be.controller.signal.aborted&&await a?.onAssistantResponseCompleted?.(de)}catch(de){be.controller.signal.aborted||r.error(de),we(be)}})(),!0):!1},hi=!ot&&(se!=="notLoading"||et||re.items.some(X=>X.metaData?.interactiveWidget?.state==="active"||X.metaData?.interactiveWidget?.state==="submitting"))||ot&&(se!=="notLoading"||Te);return{appToken:t,agentId:n,loadingStatus:se,numberOfSteps:ce,currentStepName:q,currentStepNumber:We,isAtMaxMessages:et,isCustomerSupportMode:ot,customerSupportStatusMessage:yt,fallbackContactCaptureConfig:R,fallbackContactCaptureStatus:M,shouldDisplayFallbackContactCapture:J,submitFallbackContactCapture:ue,closedHoursContactCaptureConfig:xe,closedHoursBusinessHours:he,closedHoursContactCaptureStatus:Pe,shouldDisplayClosedHoursContactCapture:tt,submitClosedHoursContactCapture:ft,isTextareaDisabled:hi,cancelRequest:_t,submitTextMessage:X=>{if(!X.trim()||hi)return!1;if(k0(X)){const be=N0(X,re.discussionId,ie);return be?(E({userType:"user",content:be,temporaryId:crypto.randomUUID()}),!0):!1}return je!=="customer_support"&&A.hasActiveStream()?!1:(E({userType:"user",content:X,temporaryId:crypto.randomUUID()}),je==="customer_support"?(U(X),!0):Is({mode:"text",text:X}))},submitAudio:X=>hi||A.hasActiveStream()?!1:Is({mode:"audio",audioFile:X}),submitInteractiveWidget:X=>{const me=re.items.find(Ye=>Ye.metaData?.interactiveWidget?.instanceId===X.instanceId)?.metaData?.interactiveWidget;if(!me||me.state!=="active"||A.hasActiveStream())return!1;if(me.responseMode==="none"||me.responseMode==="local_preview")return te(X.instanceId,Ye=>({...Ye,state:X.cancel?"cancelled":"submitted",selectedActionId:X.actionId})),!0;const pe=$n(c,X.instanceId);if(!pe)return te(X.instanceId,Ye=>({...Ye,state:"unavailable"})),!1;const de=He();if(!de)return!1;const ze=crypto.randomUUID();am(c,X.instanceId,ze),te(X.instanceId,Ye=>({...Ye,state:"submitting",selectedActionId:X.actionId}));const xt=X.cancel?{status:"cancelled"}:um(X),Qt=async()=>{const Ye=a?void 0:await f.current?.getToken({interactive:!1}).catch(()=>null);return sm(a,{apiUrl:i,appToken:t,continuationId:pe.continuationId,discussionId:pe.discussionId,submissionId:ze,result:xt,resultToken:pe.resultToken,authorizationToken:Ye??void 0,signal:de.controller.signal})};return(async()=>{try{return await Qt()}catch(Ye){if(de.controller.signal.aborted)throw Ye;return Qt()}})().then(async Ye=>{Ye.ok?(im(c,X.instanceId,ze),te(X.instanceId,Pn=>({...Pn,state:X.cancel?"cancelled":"submitted"}))):te(X.instanceId,Pn=>({...Pn,state:Ye.status===409?"active":"unavailable"})),await fi(Ye,de),Ye.ok&&Js(c,X.instanceId)}).catch(Ye=>{r.error(Ye),te(X.instanceId,Pn=>({...Pn,state:"submitting"})),we(de)}),!0}}},Ic=S.createContext(null),lm=({appToken:e,agentId:t,children:n})=>{const r=cm({appToken:e,agentId:t});return b.jsx(Ic.Provider,{value:r,children:n})},Ac=()=>{const e=S.useContext(Ic);if(!e)throw new Error("useChatRuntime must be used within ChatRuntimeProvider");return e},wc=S.createContext(null),dm=wc.Provider,fm=()=>{const e=S.useContext(wc);if(!e)throw new Error("useWidgetRuntimeStatus must be used within WidgetRuntime");return e},hm=({children:e,appToken:t,agentId:n,logger:r,identityProvider:i,runtimeAdapter:a})=>{const s=navigator.language;r.log("Brower language",s);const o=Rh(s,r),{appCurrentLang:u,handleSetContextCurrentLang:c}=xh(Yr,o),d={appCurrentLang:u,setAppCurrentLang:c},[f,m]=S.useState(!1),h=S.useCallback(()=>m(!0),[]),{contextCompanySettings:y,contextInitialConversationState:g}=Xh({agentId:n,appToken:t,onFetched:h,runtimeAdapter:a});return S.useEffect(()=>{n0(y.companySettings,r)},[y.companySettings,r]),b.jsx(yc.Provider,{value:a,children:b.jsx(Tc.Provider,{value:i,children:b.jsx(gh,{locale:u?.locale,messages:u?.translatedText,children:b.jsx(ac.Provider,{value:d,children:b.jsx(Ot.Provider,{value:y,children:b.jsx(sc.Provider,{value:g,children:b.jsx(dm,{value:{hasFetchedSettings:f},children:b.jsx(lm,{appToken:t,agentId:n,children:e})})})})})})})})};function vc({appToken:e,agentId:t,shouldDisplayLogs:n,apiUrl:r,identityProvider:i,runtimeAdapter:a,children:s}){const o=S.useMemo(()=>kh(n),[n]),u=Va({appToken:e,agentId:t});return S.useEffect(()=>{e.trim()||o.error("App Token missing")},[e,o]),b.jsx(Lh,{apiUrl:r,children:b.jsx(dc.Provider,{value:o,children:b.jsx(hm,{appToken:e,agentId:t,logger:o,identityProvider:i,runtimeAdapter:a,children:s},u)})})}const kc=e=>Xe.createElement("svg",{fill:"#000000",height:"800px",width:"800px",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 330 330",xmlSpace:"preserve",...e},Xe.createElement("path",{id:"XMLID_102_",d:"M325.607,79.393c-5.857-5.857-15.355-5.858-21.213,0.001l-139.39,139.393L25.607,79.393 c-5.857-5.857-15.355-5.858-21.213,0.001c-5.858,5.858-5.858,15.355,0,21.213l150.004,150c2.813,2.813,6.628,4.393,10.606,4.393 s7.794-1.581,10.606-4.394l149.996-150C331.465,94.749,331.465,85.251,325.607,79.393z"})),mm=({src:e})=>{const[t,n]=S.useState(null);return S.useEffect(()=>{let r=!1;return pc(e).then(({blobUrl:i})=>{n(i)}).catch(()=>n(null)),()=>{t&&!r&&(URL.revokeObjectURL(t),r=!0)}},[e]),b.jsx("img",{src:t??e,decoding:"async",loading:"eager"})};function pm(e){return!!e&&typeof e=="object"&&"blob"in e&&e.blob instanceof Blob}function gm({src:e,autoplay:t=!0,loop:n=!0,className:r,style:i,placeholder:a,fallback:s,onLoaded:o,onError:u}){const[c,d]=S.useState({kind:"loading"});return S.useEffect(()=>{let f=null,m=!1;return d({kind:"loading"}),gc(e).then(async h=>{if(!m)if(h.kind==="zip"){const y=pm(h)?h.blob:await(await fetch(h.blobUrl)).blob();f=URL.createObjectURL(y),d({kind:"lottieZip",blobUrl:f}),o?.(f)}else d({kind:"json",data:h.data}),o?.(h.data)}).catch(h=>!m&&(d({kind:"error",err:h}),u?.(h))),()=>{m=!0,f&&URL.revokeObjectURL(f)}},[e]),c.kind==="loading"?b.jsx("div",{className:"flex items-center justify-center rounded-xl border border-dashed p-6 text-sm opacity-70 "+(r??""),style:{minHeight:96,...i},children:a??"Loading animation…"}):c.kind==="error"?b.jsx("div",{className:"flex items-center justify-center rounded-xl border p-6 text-sm text-red-600 "+(r??""),style:{minHeight:96,...i},children:s??"Failed to load animation"}):c.kind==="json"?b.jsx(zd,{animationData:c.data,loop:n,autoplay:t,className:r,style:i,rendererSettings:{preserveAspectRatio:"xMidYMid meet"}}):b.jsx($d.DotLottieReact,{src:c.blobUrl,loop:n,autoplay:t,className:r,style:i})}async function bm(e,t={}){const{minPeriod:n=8,maxPeriod:r=Math.floor(Math.min(e.width,e.height)/2),gutterSearchRadius:i=3,debug:a=!1}=t,s=Ft();if(e.width<n*2||e.height<n*2)return a&&s.warn("detectGrid: image too small"),null;const o=document.createElement("canvas");o.width=e.naturalWidth,o.height=e.naturalHeight;const u=o.getContext("2d");if(!u)return null;u.drawImage(e,0,0);const{data:c}=u.getImageData(0,0,o.width,o.height),d=o.width,f=o.height,m=new Uint8ClampedArray(d*f);for(let j=0;j<f;j++){const $=j*d;for(let V=0;V<d;V++){const z=($+V)*4;m[$+V]=.299*c[z]+.587*c[z+1]+.114*c[z+2]|0}}const h=new Float32Array(d),y=new Float32Array(f);for(let j=1;j<d-1;j++){let $=0;for(let V=0;V<f;V++){const z=V*d+j,Z=m[z+1]-m[z-1];$+=Math.abs(Z)}h[j]=$}for(let j=1;j<f-1;j++){let $=0;for(let V=0;V<d;V++){const z=j*d+V,Z=m[z+d]-m[z-d];$+=Math.abs(Z)}y[j]=$}const g=Zs(h,n,Math.min(r,d/2)),w=Zs(y,n,Math.min(r,f/2));if(!g||!w)return a&&s.warn("detectGrid: could not find periods"),null;const I=Math.max(1,Math.round(d/g)),v=Math.max(1,Math.round(f/w)),N=eo(h,g,I,i),P=eo(y,w,v,i),A=Math.max(1,g-N),p=Math.max(1,w-P);if(A*I>d+2||p*v>f+2)return a&&s.warn("detectGrid: sanity check failed"),null;const L=fa(h,60),B=fa(y,60),Y=Math.max(0,to(h,L)),k=Math.max(0,to(y,B));return a&&s.log({periodX:g,periodY:w,columns:I,rows:v,gutterX:N,gutterY:P,frameWidth:A,frameHeight:p,originX:Y,originY:k}),{columns:I,rows:v,frameWidth:A,frameHeight:p,gutterX:N,gutterY:P,originX:Y,originY:k}}function Zs(e,t,n){const r=Nc(e);let i=0;for(let h=0;h<e.length;h++){const y=e[h]-r;i+=y*y}if(i===0)return null;const a=new Float32Array(n+1);let s=0,o=-1/0;for(let h=t;h<=n;h++){let y=0;for(let w=0;w+h<e.length;w++)y+=(e[w]-r)*(e[w+h]-r);const g=y/i;a[h]=g,g>o&&(o=g,s=h)}if(s<=t||s>=n)return s||null;const u=a[s-1],c=a[s],d=a[s+1],f=u-2*c+d,m=f===0?0:.5*(u-d)/f;return s+m}function eo(e,t,n,r){const i=[];for(let o=1;o<n;o++){const u=o*t;let c=1/0,d=u;for(let f=-r;f<=r;f++){const m=u+f;if(m<=0||m>=e.length)continue;const h=e[m];h<c&&(c=h,d=m)}i.push(d)}if(i.length<1)return 0;const a=[];for(const o of i){const u=e[o]*1.5+fa(e,10)*.5;let c=o,d=o;for(;c>1&&e[c-1]<=u;)c--;for(;d<e.length-2&&e[d+1]<=u;)d++;a.push(Math.max(0,d-c+1))}const s=Math.round(Nc(a));return Math.max(0,Math.min(s,Math.floor(t/4)))}function Nc(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}function fa(e,t){const n=Array.from(e);n.sort((i,a)=>i-a);const r=Math.max(0,Math.min(n.length-1,Math.floor(t/100*n.length)));return n[r]}function to(e,t){for(let n=0;n<e.length;n++)if(e[n]>t)return n;return 0}function Em(e,t,n,r,i){const{data:a}=e.getImageData(t,n,r,i);let s=0;for(let o=3;o<a.length;o+=4)s+=a[o];return s/(255*(a.length/4))<.03}const Tm=S.forwardRef(function({src:t,frameWidth:n,frameHeight:r,columns:i,rows:a,gutterX:s=0,gutterY:o=0,frameCount:u,atlasFrames:c,fps:d=12,autoplay:f=!0,loop:m=!0,startFrame:h=0,direction:y="forward",scale:g=1,backgroundColor:w,className:I,style:v,pauseWhenHidden:N=!1,originX:P,originY:A,onLoad:p,onEnd:L,onFrame:B},Y){const k=ar(),j=S.useRef(null),$=S.useRef(null),[V,z]=S.useState(null),[Z,fe]=S.useState(null),[re,ke]=S.useState(null),[ve,E]=S.useState(!1),[G,ie]=S.useState(!!f),[x,ee]=S.useState(h),te=S.useRef(1),[K,ae]=S.useState(null),se=Math.max(1,Math.floor(typeof window<"u"&&window.devicePixelRatio||1));S.useEffect(()=>{let Te=!1;return E(!1),bc(t).then(({imgEl:De,bitmap:Ae})=>{Te||(z(De),fe(Ae),ke({w:De.naturalWidth,h:De.naturalHeight}),E(!0),p?.())}).catch(()=>{}),()=>{Te=!0}},[t,p]),S.useEffect(()=>{let Te=!1;return(async()=>{if(!V)return;if(c&&c.length){ae(null);return}if(!(!n||!r||!i||!a)){ae(null);return}const Ae=await bm(V,{debug:!0});Te||(Ae?ae({frameWidth:Ae.frameWidth,frameHeight:Ae.frameHeight,columns:Ae.columns,rows:Ae.rows,gutterX:Ae.gutterX,gutterY:Ae.gutterY}):(ae(null),k.warn("RemoteSpritesheet: auto-detect failed; please provide grid props.")))})(),()=>{Te=!0}},[V,c,n,r,i,a,k]);const oe=K?.frameWidth??n,ce=K?.frameHeight??r,Ne=K?.columns??i,q=K?.rows??a,Re=K?.gutterX??s,We=K?.gutterY??o,Ke=K?.originX??P??0,et=K?.originY??A??0,Je=S.useMemo(()=>{if(c&&c.length>0)return{cols:0,rows:0};if(!re||!oe||!ce)return{cols:0,rows:0};const Te=Ne??Math.floor((re.w+Re)/(oe+Re)),De=q??Math.floor((re.h+We)/(ce+We));return{cols:Math.max(0,Te),rows:Math.max(0,De)}},[c,re,oe,ce,Ne,q,Re,We]),je=S.useMemo(()=>{if(c?.length)return c;if(!oe||!ce)return[];const{cols:Te,rows:De}=Je;if(!Te||!De)return[];const Ae=Math.min(u??Te*De,Te*De),U=[];for(let R=0;R<Ae;R++){const M=R%Te,J=Math.floor(R/Te),ue=Ke+M*(oe+Re),xe=et+J*(ce+We);U.push({x:ue,y:xe,w:oe,h:ce})}if(V&&U.length){const R=document.createElement("canvas");R.width=V.naturalWidth,R.height=V.naturalHeight;const M=R.getContext("2d");if(M){M.drawImage(V,0,0);let J=U.length;for(;J>0&&Em(M,U[J-1].x,U[J-1].y,U[J-1].w,U[J-1].h);)J--;return U.slice(0,J)}}return U},[c,Je,u,oe,ce,Re,We,V,Ke,et]),ot=()=>{const Te=j.current;if(!Te||je.length===0)return;const De=je[Math.max(0,Math.min(x,je.length-1))],Ae=Math.max(1,Math.round(De.w*g)),U=Math.max(1,Math.round(De.h*g));Te.style.width=Ae+"px",Te.style.height=U+"px",Te.width=Ae*se,Te.height=U*se};S.useEffect(()=>{ot()},[ve,g,je.length,se,x]);const yt=Te=>{const De=Z??V??null,Ae=j.current;if(!Ae||!De||je.length===0)return;const U=Ae.getContext("2d");if(!U)return;U.save(),U.setTransform(1,0,0,1,0,0),U.clearRect(0,0,Ae.width,Ae.height),w&&(U.fillStyle=w,U.fillRect(0,0,Ae.width,Ae.height));const R=je[Te];U.scale(se,se),U.drawImage(De,R.x,R.y,R.w,R.h,0,0,Math.round(R.w*g),Math.round(R.h*g)),U.restore()};return S.useEffect(()=>{if(!ve||je.length===0)return;let Te=performance.now();const De=1e3/Math.max(1,Math.min(120,d)),Ae=U=>{if($.current=requestAnimationFrame(Ae),!G){yt(x);return}const R=U-Te;if(R<De){yt(x);return}Te=U-R%De,ee(M=>{const J=je.length-1;let ue=M;return y==="forward"?ue=M+1:y==="backward"?ue=M-1:((M>=J&&te.current===1||M<=0&&te.current===-1)&&(te.current*=-1),ue=M+te.current),(ue>J||ue<0)&&(m?ue=y==="backward"?J:0:(ue=Math.max(0,Math.min(ue,J)),ie(!1),L?.())),ue})};return $.current=requestAnimationFrame(Ae),()=>{$.current&&cancelAnimationFrame($.current)}},[ve,d,G,m,y,je.length,x]),S.useEffect(()=>{yt(x),B?.(x)},[x,ve,g,se]),S.useEffect(()=>{if(!N)return;const Te=()=>{document.hidden&&ie(!1)};return document.addEventListener("visibilitychange",Te),()=>document.removeEventListener("visibilitychange",Te)},[N]),S.useImperativeHandle(Y,()=>({play:()=>ie(!0),pause:()=>ie(!1),toggle:()=>ie(Te=>!Te),gotoFrame:Te=>ee(()=>Math.max(0,Math.min(Te,Math.max(0,je.length-1)))),isPlaying:()=>G,currentFrame:()=>x}),[G,x,je.length]),b.jsx("div",{className:I,style:v,children:b.jsx("canvas",{ref:j,"aria-label":"spritesheet animation"})})});function ym({url:e,className:t}){const[n,r]=S.useState(""),[i,a]=S.useState(null);return S.useEffect(()=>{let s=!1;return mc(e).then(({sanitized:o})=>{s||(r(o),a(null))}).catch(o=>!s&&a(o.message??"Failed to load")),()=>{s=!0}},[e]),i?b.jsxs("div",{className:t,role:"alert",children:["Couldn’t load SVG: ",i]}):n?b.jsx("div",{className:t,dangerouslySetInnerHTML:{__html:n}}):b.jsx("div",{className:t})}function _m({mobile:e=.6,tablet:t=.8,desktop:n=1}){const[r,i]=S.useState(n);return S.useEffect(()=>{if(typeof window>"u")return;const a=[{mq:window.matchMedia("(max-width: 639px)"),value:e},{mq:window.matchMedia("(min-width: 640px) and (max-width: 1023px)"),value:t},{mq:window.matchMedia("(min-width: 1024px)"),value:n}],s=()=>{for(const{mq:o,value:u}of a)if(o.matches){i(u);break}};return a.forEach(({mq:o})=>o.addEventListener("change",s)),s(),()=>{a.forEach(({mq:o})=>o.removeEventListener("change",s))}},[e,t,n]),r}const Xa=({facet:e})=>{const t=ar(),{mode:n,assetUrl:r,spr_columns:i,spr_fps:a,spr_frameCount:s,spr_frameHeight:o,spr_frameWidth:u,spr_gutterX:c,spr_gutterY:d,spr_rows:f,spr_originX:m,spr_originY:h,spr_scaleDesktop:y,spr_scaleMobile:g,spr_scaleTablet:w}=e,I=_m({mobile:g??.6,tablet:w??.8,desktop:y??1});return b.jsxs("div",{className:"assetContainer",children:[n===Q.AgentDisplayFacetModeType.LOTTIE&&b.jsx(gm,{src:r,autoplay:!0,onError:v=>t.error(v)}),n===Q.AgentDisplayFacetModeType.SVG&&b.jsx("div",{children:b.jsx(ym,{url:r})}),n===Q.AgentDisplayFacetModeType.IMAGE&&b.jsx(mm,{src:r}),n===Q.AgentDisplayFacetModeType.SPRITESHEET&&b.jsx(Tm,{src:r,frameCount:s,columns:i,rows:f,fps:a,frameHeight:o,frameWidth:u,gutterX:c,gutterY:d,originX:m,originY:h,scale:I,autoplay:!0})]})},xm=({isWidgetOpen:e,setIsWidgetOpen:t})=>{const{companySettings:n}=S.useContext(Ot);return b.jsxs("div",{className:`launcher
|
|
36
|
+
For more details see https://formatjs.io/docs/getting-started/message-distribution`)}function lh(e,t){var n=zf(t),r=ne(ne({},Qu),e),i=r.locale,a=r.defaultLocale,s=r.onError;return i?!Intl.NumberFormat.supportedLocalesOf(i).length&&s?s(new Fs('Missing locale data for locale: "'.concat(i,'" in Intl.NumberFormat. Using default locale: "').concat(a,'" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details'))):!Intl.DateTimeFormat.supportedLocalesOf(i).length&&s&&s(new Fs('Missing locale data for locale: "'.concat(i,'" in Intl.DateTimeFormat. Using default locale: "').concat(a,'" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details'))):(s&&s(new Uf('"locale" was not configured, using "'.concat(a,'" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details'))),r.locale=r.defaultLocale||"en"),ch(r),ne(ne({},r),{formatters:n,formatNumber:sh.bind(null,r,n.getNumberFormat),formatNumberToParts:oh.bind(null,r,n.getNumberFormat),formatRelativeTime:ih.bind(null,r,n.getRelativeTimeFormat),formatDate:$f.bind(null,r,n.getDateTimeFormat),formatDateToParts:Yf.bind(null,r,n.getDateTimeFormat),formatTime:Wf.bind(null,r,n.getDateTimeFormat),formatDateTimeRange:Gf.bind(null,r,n.getDateTimeFormat),formatTimeToParts:qf.bind(null,r,n.getDateTimeFormat),formatPlural:th.bind(null,r,n.getPluralRules),formatMessage:ua.bind(null,r,n),$t:ua.bind(null,r,n),formatList:Zf.bind(null,r,n.getListFormat),formatListToParts:Zu.bind(null,r,n.getListFormat),formatDisplayName:Qf.bind(null,r,n.getDisplayNames)})}function tc(e){Ru(e,"[React Intl] Could not find required `intl` object. <IntlProvider> needs to exist in the component ancestry.")}var nc=ne(ne({},Qu),{textComponent:Xe.Fragment});function dh(e){return function(t){return e(Xe.Children.toArray(t))}}function fh(e,t){if(e===t)return!0;if(!e||!t)return!1;var n=Object.keys(e),r=Object.keys(t),i=n.length;if(r.length!==i)return!1;for(var a=0;a<i;a++){var s=n[a];if(e[s]!==t[s]||!Object.prototype.hasOwnProperty.call(t,s))return!1}return!0}var Fa=typeof window<"u"&&!window.__REACT_INTL_BYPASS_GLOBAL_CONTEXT__?window.__REACT_INTL_CONTEXT__||(window.__REACT_INTL_CONTEXT__=Xe.createContext(null)):Xe.createContext(null);Fa.Consumer;var hh=Fa.Provider,mh=hh,ph=Fa;function Yt(){var e=Xe.useContext(ph);return tc(e),e}var ca;(function(e){e.formatDate="FormattedDate",e.formatTime="FormattedTime",e.formatNumber="FormattedNumber",e.formatList="FormattedList",e.formatDisplayName="FormattedDisplayName"})(ca||(ca={}));var la;(function(e){e.formatDate="FormattedDateParts",e.formatTime="FormattedTimeParts",e.formatNumber="FormattedNumberParts",e.formatList="FormattedListParts"})(la||(la={}));function rc(e){var t=function(n){var r=Yt(),i=n.value,a=n.children,s=Wr(n,["value","children"]),o=typeof i=="string"?new Date(i||0):i,u=e==="formatDate"?r.formatDateToParts(o,s):r.formatTimeToParts(o,s);return a(u)};return t.displayName=la[e],t}function ir(e){var t=function(n){var r=Yt(),i=n.value,a=n.children,s=Wr(n,["value","children"]),o=r[e](i,s);if(typeof a=="function")return a(o);var u=r.textComponent||Xe.Fragment;return Xe.createElement(u,null,o)};return t.displayName=ca[e],t}function ic(e){return e&&Object.keys(e).reduce(function(t,n){var r=e[n];return t[n]=qu(r)?dh(r):r,t},{})}var Vs=function(e,t,n,r){for(var i=[],a=4;a<arguments.length;a++)i[a-4]=arguments[a];var s=ic(r),o=ua.apply(void 0,kt([e,t,n,s],i,!1));return Array.isArray(o)?Xe.Children.toArray(o):o},zs=function(e,t){var n=e.defaultRichTextElements,r=Wr(e,["defaultRichTextElements"]),i=ic(n),a=lh(ne(ne(ne({},nc),r),{defaultRichTextElements:i}),t),s={locale:a.locale,timeZone:a.timeZone,fallbackOnEmptyString:a.fallbackOnEmptyString,formats:a.formats,defaultLocale:a.defaultLocale,defaultFormats:a.defaultFormats,messages:a.messages,onError:a.onError,defaultRichTextElements:i};return ne(ne({},a),{formatMessage:Vs.bind(null,s,a.formatters),$t:Vs.bind(null,s,a.formatters)})};function Ti(e){return{locale:e.locale,timeZone:e.timeZone,fallbackOnEmptyString:e.fallbackOnEmptyString,formats:e.formats,textComponent:e.textComponent,messages:e.messages,defaultLocale:e.defaultLocale,defaultFormats:e.defaultFormats,onError:e.onError,onWarn:e.onWarn,wrapRichTextChunksInFragment:e.wrapRichTextChunksInFragment,defaultRichTextElements:e.defaultRichTextElements}}var gh=(function(e){bt(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.cache=Ku(),n.state={cache:n.cache,intl:zs(Ti(n.props),n.cache),prevConfig:Ti(n.props)},n}return t.getDerivedStateFromProps=function(n,r){var i=r.prevConfig,a=r.cache,s=Ti(n);return fh(i,s)?null:{intl:zs(s,a),prevConfig:s}},t.prototype.render=function(){return tc(this.state.intl),Xe.createElement(mh,{value:this.state.intl},this.props.children)},t.displayName="IntlProvider",t.defaultProps=nc,t})(Xe.PureComponent);ir("formatDate");ir("formatTime");ir("formatNumber");ir("formatList");ir("formatDisplayName");rc("formatDate");rc("formatTime");const bh={"generic.language.english":"English","generic.language.french":"French","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Discussion limit reached","chatbot.DiscussionLimitReached.explaination":"You have used the available AI answers for this discussion. Start a new conversation to continue.","chatbot.DiscussionLimitReached.cta":"Restart","chatbot.error.api.409":"Oups ! The discussion if full. Please start a new one.","chatbot.error.api.429":"⏳ The chatbot is a little busy at the time. Please try again later.","chatbot.error.api.500":"Oops ! There has been an error. Please try again later.","chatbot.chatline.label.user":"You","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Customer support","chatbot.chatline.loading.function.genericSearchMessage":"Thinking ...","chatbot.chatline.loading.function.search":"Search","chatbot.chatline.loading.function.extractProductName":"Looking into the cavern","chatbot.chatline.loading.function.suggestProductName":"Consulting the shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Looking for ziboublis","chatbot.chatline.loading.function.searchStock":"Searching Stock","chatbot.chatline.loading.function.step":"Step","chatbot.chatline.loading.stepName.search":"Searching ...","chatbot.chatline.loading.stepName.building":"Building Query ...","chatbot.chatline.loading.stepName.analyzing":"Analyzing ...","chatbot.chatline.loading.stepName.redacting":"Writing answer","chatbot.chatline.loading.cancel":"Cancel","chatbot.chatline.seeRecentMessages":"see recent messages","chatbot.widget.menu.open":"Open chat menu","chatbot.widget.menu.startNewDiscussion":"Start a new discussion","chatbot.widget.close":"Close chat","recordingOverlay.recording":"Recording...","recordingOverlay.cancel":"Cancel","recordingOverlay.explaination":"Tap the mic to stop","chatbot.infobanner.title":"You have an archived discussion.","chatbot.infobanner.cta":"See","chatbot.customerSupport.connecting":"Transferring your request to customer support...","chatbot.customerSupport.connected":"Your request has been sent to Customer Support. It usually takes a few minutes to get a reply. Thank you for waiting.","chatbot.customerSupport.connectionError":"Customer support is not available right now. Please try again later.","chatbot.customerSupport.providerUnavailable":"Customer support received your request, but live replies are temporarily unavailable. Please try again shortly.","chatbot.customerSupport.closed":"Your customer support conversation is now complete. Start a new conversation if you need more help!","chatbot.customerSupport.restart":"Restart","chatbot.customerSupport.fallback.title":"Leave your contact details","chatbot.customerSupport.fallback.description":"Customer support has not replied yet. Leave your email and phone number and we will contact you soon.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"Phone","chatbot.customerSupport.fallback.submit":"Send","chatbot.customerSupport.fallback.submitting":"Sending...","chatbot.customerSupport.fallback.success":"Your contact details have been saved. Customer support will contact you soon.","chatbot.customerSupport.closedHours.title":"Customer support is currently closed","chatbot.customerSupport.closedHours.description":"Leave your email, phone number and request. Customer support will contact you during opening hours.","chatbot.customerSupport.closedHours.schedulePrefix":"Today:","chatbot.customerSupport.closedHours.reason":"Reason for your request","chatbot.customerSupport.closedHours.success":"Your request has been saved. Customer support will contact you during opening hours.","chatbot.customerSupport.fallback.error":"We could not save your contact details. Please try again.","chatbot.interactiveWidget.submitting":"Sending…","chatbot.interactiveWidget.submitted":"Sent","chatbot.interactiveWidget.cancelled":"Cancelled","chatbot.interactiveWidget.unavailable":"This interaction is no longer available.","chatbot.interactiveWidget.preview.notice":"Demo mode — this form reproduces the real experience. Submitting it does not create a request or transmit your answers.","chatbot.interactiveWidget.preview.completed":"You have tested this form. No request was sent and your answers were not transmitted.","chatbot.interactiveWidget.preview.cancelled":"You have closed the demo form. No information was transmitted."},Eh={"generic.language.english":"Anglais","generic.language.french":"Français","chatbot.placeholder.content":"Message...","chatbot.DiscussionLimitReached.title":"Cette conversation est terminée.","chatbot.DiscussionLimitReached.explaination":"Vous avez utilisé les réponses IA disponibles pour cette discussion. Commencez une nouvelle conversation pour continuer.","chatbot.DiscussionLimitReached.cta":"Relancer une nouvelle conversation","chatbot.error.api.409":"Oups ! La discussion est à son maximum. Merci d'en commencer une nouvelle.","chatbot.error.api.429":"⏳ Le robot est un peu occupé actuellement. Merci de réessayer plus tard.","chatbot.error.api.500":"Oups ! Une erreur est survenue. Merci de réessayer plus tard !","chatbot.chatline.label.user":"Vous","chatbot.chatline.label.assistant":"Assistant","chatbot.chatline.label.customerSupport":"Support client","chatbot.chatline.loading.function.search":"Recherche","chatbot.chatline.loading.function.genericSearchMessage":"Je réfléchis ...","chatbot.chatline.loading.function.extractProductName":"Recherche dans la caverne","chatbot.chatline.loading.function.suggestProductName":"Consultation des shadocks","chatbot.chatline.loading.function.criteriaDefinition":"Recherche des ziboublis","chatbot.chatline.loading.function.searchStock":"Recherche en stock","chatbot.chatline.loading.function.step":"Etape","chatbot.chatline.loading.stepName.search":"Recherche ...","chatbot.chatline.loading.stepName.building":"Construction ...","chatbot.chatline.loading.stepName.analyzing":"Analyse ...","chatbot.chatline.loading.stepName.redacting":"Rédaction","chatbot.chatline.loading.cancel":"Annuler","chatbot.chatline.seeRecentMessages":"voir les messages plus récents","chatbot.widget.menu.open":"Ouvrir le menu de discussion","chatbot.widget.menu.startNewDiscussion":"Démarrer une nouvelle discussion","chatbot.widget.close":"Fermer la discussion","recordingOverlay.recording":"Micro activé...","recordingOverlay.cancel":"Annuler","recordingOverlay.explaination":"Appuyez sur le micro pour arrêter","chatbot.infobanner.title":"Vous avez une conversation archivée.","chatbot.infobanner.cta":"Voir","chatbot.customerSupport.connecting":"Transfert de votre demande au support client...","chatbot.customerSupport.connected":"Votre demande a été transmise au support client. Il faut généralement quelques minutes pour obtenir une réponse. Merci de patienter.","chatbot.customerSupport.connectionError":"Le support client n'est pas disponible pour le moment. Merci de réessayer plus tard.","chatbot.customerSupport.providerUnavailable":"Le support client a reçu votre demande, mais les réponses en direct sont temporairement indisponibles. Merci de réessayer dans quelques instants.","chatbot.customerSupport.closed":"Votre échange avec le support client est terminé. Relancez une nouvelle conversation quand vous le souhaitez !","chatbot.customerSupport.restart":"Relancer","chatbot.customerSupport.fallback.title":"Laissez vos coordonnées","chatbot.customerSupport.fallback.description":"Le support client n'a pas encore répondu. Laissez votre email et votre téléphone, nous vous recontacterons prochainement.","chatbot.customerSupport.fallback.email":"Email","chatbot.customerSupport.fallback.phone":"Téléphone","chatbot.customerSupport.fallback.submit":"Envoyer","chatbot.customerSupport.fallback.submitting":"Envoi...","chatbot.customerSupport.fallback.success":"Vos coordonnées ont bien été notées. Le support client vous recontactera prochainement.","chatbot.customerSupport.closedHours.title":"Le support client est actuellement fermé","chatbot.customerSupport.closedHours.description":"Laissez votre email, votre téléphone et le motif de votre demande. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.closedHours.schedulePrefix":"Aujourd’hui :","chatbot.customerSupport.closedHours.reason":"Motif de votre demande","chatbot.customerSupport.closedHours.success":"Votre demande a bien été enregistrée. Le support client vous recontactera pendant ses horaires d’ouverture.","chatbot.customerSupport.fallback.error":"Impossible d'enregistrer vos coordonnées. Merci de réessayer.","chatbot.interactiveWidget.submitting":"Envoi…","chatbot.interactiveWidget.submitted":"Envoyé","chatbot.interactiveWidget.cancelled":"Annulé","chatbot.interactiveWidget.unavailable":"Cette interaction n’est plus disponible.","chatbot.interactiveWidget.preview.notice":"Mode démo — ce formulaire reproduit l’expérience réelle. Son envoi ne crée aucune demande et ne transmet pas vos réponses.","chatbot.interactiveWidget.preview.completed":"Vous avez testé ce formulaire. Aucune demande n’a été envoyée et vos réponses n’ont pas été transmises.","chatbot.interactiveWidget.preview.cancelled":"Vous avez fermé le formulaire de démonstration. Aucune information n’a été transmise."};var ht=(e=>(e.FRENCH="fr-FR",e.ENGLISH="en-US",e))(ht||{});const Yr={[ht.ENGLISH]:{translatedText:bh,pictureName:ht.ENGLISH,langID:0,locale:ht.ENGLISH},[ht.FRENCH]:{translatedText:Eh,pictureName:ht.FRENCH,langID:1,locale:ht.FRENCH}},Th=Object.keys(Yr);Th.reduce((e,t)=>{const n=Yr[t];return[...e,n]},[]);const yh="languageSettings",_h=(e,t)=>{let n,r;return typeof window<"u"&&(r=window.localStorage.getItem(yh)),r&&e?.[r]!==void 0?n=e[r]:(n=e[t],n.isDefault=!0),n},xh=(e,t)=>{const[n,r]=S.useState(e[t]),i=a=>{Object.keys(e).includes(a?.locale)?r(a):r(e[ht.ENGLISH])};return S.useEffect(()=>{const a=_h(e,t);a.locale!==t&&r(e[a.locale])},[]),{appCurrentLang:n,handleSetContextCurrentLang:i}},ac=S.createContext({appCurrentLang:Yr[ht.ENGLISH],setAppCurrentLang:()=>{}}),St={ai:"ai",customerSupport:"customer_support"},sc=S.createContext({currentConversation:{items:[],discussionId:null},setCurrentConversation:()=>{},archivedConversation:{items:[],discussionId:null},setArchivedConversation:()=>{},chatboxBootState:{mode:St.ai,customerSupportState:null,reason:"context_default"},setChatboxBootState:()=>{},resetConversationRequestId:0,resetConversation:()=>{}});var Jt={},yi={},Mn={},$s;function Ua(){if($s)return Mn;$s=1,Object.defineProperty(Mn,"__esModule",{value:!0}),Mn.isUnknownRecord=void 0;const e=t=>typeof t=="object"&&t!==null&&!Array.isArray(t);return Mn.isUnknownRecord=e,Mn}var Ws;function Sh(){return Ws||(Ws=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.isInteractiveWidgetResultWithinSizeLimit=e.isInteractiveWidgetResult=e.isInteractiveWidgetVersionedRequest=e.isInteractiveWidgetV3Request=e.isInteractiveWidgetV2Request=e.isInteractiveWidgetPresentationWithinSizeLimit=e.isInteractiveWidgetPresentation=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS=e.INTERACTIVE_WIDGET_TYPES=e.INTERACTIVE_WIDGET_RESULT_TOKEN_HEADER=e.parseInteractiveWidgetProtocolVersion=e.INTERACTIVE_WIDGET_VERSION_HEADER=e.SUPPORTED_INTERACTIVE_WIDGET_PROTOCOL_VERSIONS=e.INTERACTIVE_WIDGET_PROTOCOL_V3=e.INTERACTIVE_WIDGET_PROTOCOL_V2=e.INTERACTIVE_WIDGET_PROTOCOL_V1=e.INTERACTIVE_WIDGET_EVENTS=void 0;const t=Ua();e.INTERACTIVE_WIDGET_EVENTS={requested:"interactiveWidget.requested"},e.INTERACTIVE_WIDGET_PROTOCOL_V1=1,e.INTERACTIVE_WIDGET_PROTOCOL_V2=2,e.INTERACTIVE_WIDGET_PROTOCOL_V3=3,e.SUPPORTED_INTERACTIVE_WIDGET_PROTOCOL_VERSIONS=Object.freeze([e.INTERACTIVE_WIDGET_PROTOCOL_V2,e.INTERACTIVE_WIDGET_PROTOCOL_V3]),e.INTERACTIVE_WIDGET_VERSION_HEADER="X-ChatSystem-Interactive-Widget-Version";const n=p=>{const L=Array.isArray(p)?p[0]:p;return e.SUPPORTED_INTERACTIVE_WIDGET_PROTOCOL_VERSIONS.find(B=>L===B||L===String(B))};e.parseInteractiveWidgetProtocolVersion=n,e.INTERACTIVE_WIDGET_RESULT_TOKEN_HEADER="X-ChatSystem-Interactive-Widget-Result-Token",e.INTERACTIVE_WIDGET_TYPES={directChatCustomerSupport:"direct_chat_customer_support",callToAction:"call_to_action",structuredForm:"structured_form",cardList:"card_list",statusSummary:"status_summary",explicitConfirmation:"explicit_confirmation"},e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS={maximumPresentationUtf8Bytes:32*1024,maximumResultUtf8Bytes:16*1024,maximumTextCodeUnits:4096,maximumUrlCodeUnits:2048,maximumIdentifierCodeUnits:128,maximumLabelCodeUnits:256,maximumToolCallIdCodeUnits:255,maximumResultTokenCodeUnits:8192,maximumResultStringCodeUnits:16*1024,maximumActionsPerContainer:4,maximumFieldsPerForm:20,maximumCardsPerList:20,maximumItemsPerCollection:50,maximumResultDataEntries:50,maximumResultArrayItems:50};const r=(p,L)=>Object.keys(p).every(B=>L.includes(B)),i=(p,L=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumTextCodeUnits)=>typeof p=="string"&&p.trim().length>0&&p.length<=L,a=(p,L=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumTextCodeUnits)=>p===void 0||i(p,L),s=p=>{if(!i(p,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumUrlCodeUnits))return!1;try{const L=new URL(p);return L.protocol==="http:"||L.protocol==="https:"}catch{return!1}},o=p=>!(0,t.isUnknownRecord)(p)||!i(p.id,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!i(p.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)||p.style!==void 0&&!["primary","secondary","danger"].includes(String(p.style))?!1:p.kind==="open_url"?r(p,["id","label","style","kind","url"])&&s(p.url):(p.kind==="submit"||p.kind==="cancel")&&r(p,["id","label","style","kind"]),u=(p,L=!1)=>L&&p===void 0?!0:Array.isArray(p)&&p.length>0&&p.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumActionsPerContainer&&p.every(o)&&new Set(p.map(B=>B.id)).size===p.length,c=p=>p===void 0||Array.isArray(p)&&p.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumItemsPerCollection&&p.every(L=>(0,t.isUnknownRecord)(L)&&r(L,["label","value"])&&i(L.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&i(L.value)),d=p=>{const L=p.minLength,B=p.maxLength;return L!==void 0&&(!Number.isSafeInteger(L)||Number(L)<0)||B!==void 0&&(!Number.isSafeInteger(B)||Number(B)<1||Number(B)>e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumTextCodeUnits)?!1:L===void 0||B===void 0||Number(L)<=Number(B)},f=p=>!(0,t.isUnknownRecord)(p)||!i(p.id,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!i(p.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)||p.required!==void 0&&typeof p.required!="boolean"||!a(p.description)?!1:p.type==="checkbox"?r(p,["id","label","required","description","type"]):p.type==="select"?r(p,["id","label","required","description","type","placeholder","options"])&&a(p.placeholder,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&Array.isArray(p.options)&&p.options.length>0&&p.options.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumItemsPerCollection&&p.options.every(L=>(0,t.isUnknownRecord)(L)&&r(L,["value","label"])&&i(L.value,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&i(L.label,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits))&&new Set(p.options.map(L=>L.value)).size===p.options.length:["text","email","tel","textarea"].includes(String(p.type))&&r(p,["id","label","required","description","type","placeholder","minLength","maxLength"])&&a(p.placeholder,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&d(p),m=p=>a(p.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.description),h=p=>{if(!(0,t.isUnknownRecord)(p))return!1;if(p.type===e.INTERACTIVE_WIDGET_TYPES.callToAction)return r(p,["type","title","description","actions"])&&m(p)&&u(p.actions);if(p.type===e.INTERACTIVE_WIDGET_TYPES.structuredForm)return r(p,["type","title","description","fields","submitLabel","cancelLabel"])&&m(p)&&i(p.submitLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.cancelLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&Array.isArray(p.fields)&&p.fields.length>0&&p.fields.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumFieldsPerForm&&p.fields.every(f)&&new Set(p.fields.map(L=>L.id)).size===p.fields.length;if(p.type===e.INTERACTIVE_WIDGET_TYPES.cardList){const L=Array.isArray(p.cards)?p.cards.flatMap(B=>(0,t.isUnknownRecord)(B)&&Array.isArray(B.actions)?B.actions.filter(t.isUnknownRecord).map(Y=>Y.id).filter(Y=>typeof Y=="string"):[]):[];return r(p,["type","title","description","cards"])&&m(p)&&Array.isArray(p.cards)&&p.cards.length>0&&p.cards.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumCardsPerList&&p.cards.every(B=>(0,t.isUnknownRecord)(B)&&r(B,["id","title","description","imageUrl","eyebrow","metadata","actions"])&&i(B.id,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)&&i(B.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(B.description)&&a(B.eyebrow,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&(B.imageUrl===void 0||s(B.imageUrl))&&c(B.metadata)&&u(B.actions,!0))&&new Set(p.cards.map(B=>B.id)).size===p.cards.length&&new Set(L).size===L.length}return p.type===e.INTERACTIVE_WIDGET_TYPES.statusSummary?r(p,["type","title","description","tone","items","actions"])&&i(p.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.description)&&(p.tone===void 0||["neutral","info","success","warning","danger"].includes(String(p.tone)))&&c(p.items)&&u(p.actions,!0):p.type===e.INTERACTIVE_WIDGET_TYPES.explicitConfirmation?r(p,["type","title","description","confirmLabel","cancelLabel","tone","details"])&&i(p.title,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&a(p.description)&&i(p.confirmLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&i(p.cancelLabel,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumLabelCodeUnits)&&(p.tone===void 0||["neutral","danger"].includes(String(p.tone)))&&c(p.details):!1};e.isInteractiveWidgetPresentation=h;const y=p=>{try{const L=JSON.stringify(p);return typeof L=="string"?new TextEncoder().encode(L).byteLength:null}catch{return null}},g=p=>{const L=y(p);return L!==null&&L<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumPresentationUtf8Bytes};e.isInteractiveWidgetPresentationWithinSizeLimit=g;const w=(p,L)=>(0,t.isUnknownRecord)(p)?p.mode==="none"?r(p,["mode"]):p.mode==="local_preview"?L&&r(p,["mode"]):p.mode==="resume_turn"&&r(p,["mode","continuation","resultToken"])&&(0,t.isUnknownRecord)(p.continuation)&&r(p.continuation,["continuationId","expiresAt"])&&i(p.continuation.continuationId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)&&i(p.continuation.expiresAt,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)&&!Number.isNaN(Date.parse(p.continuation.expiresAt))&&i(p.resultToken,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultTokenCodeUnits):!1,I=p=>!(!(0,t.isUnknownRecord)(p)||!r(p,["type","event","protocolVersion","instanceId","widgetType","source","companyId","agentId","discussionId","toolcallId","payload","responsePolicy"])||p.type!=="interactive_widget_request"||p.event!==e.INTERACTIVE_WIDGET_EVENTS.requested||p.protocolVersion!==e.INTERACTIVE_WIDGET_PROTOCOL_V2||!i(p.instanceId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!["llm_tool","client_trigger","system"].includes(String(p.source))||!Number.isSafeInteger(p.companyId)||p.agentId!==null&&!Number.isSafeInteger(p.agentId)||p.discussionId!==null&&!Number.isSafeInteger(p.discussionId)||p.toolcallId!==null&&!i(p.toolcallId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumToolCallIdCodeUnits)||!(0,e.isInteractiveWidgetPresentation)(p.payload)||!(0,e.isInteractiveWidgetPresentationWithinSizeLimit)(p.payload)||p.widgetType!==p.payload.type||!w(p.responsePolicy,!1));e.isInteractiveWidgetV2Request=I;const v=p=>!(!(0,t.isUnknownRecord)(p)||!r(p,["type","event","protocolVersion","instanceId","widgetType","source","companyId","agentId","discussionId","toolcallId","payload","responsePolicy"])||p.type!=="interactive_widget_request"||p.event!==e.INTERACTIVE_WIDGET_EVENTS.requested||p.protocolVersion!==e.INTERACTIVE_WIDGET_PROTOCOL_V3||!i(p.instanceId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!["llm_tool","client_trigger","system"].includes(String(p.source))||!Number.isSafeInteger(p.companyId)||p.agentId!==null&&!Number.isSafeInteger(p.agentId)||p.discussionId!==null&&!Number.isSafeInteger(p.discussionId)||p.toolcallId!==null&&!i(p.toolcallId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumToolCallIdCodeUnits)||!(0,e.isInteractiveWidgetPresentation)(p.payload)||!(0,e.isInteractiveWidgetPresentationWithinSizeLimit)(p.payload)||p.widgetType!==p.payload.type||!w(p.responsePolicy,!0));e.isInteractiveWidgetV3Request=v;const N=p=>(0,e.isInteractiveWidgetV2Request)(p)||(0,e.isInteractiveWidgetV3Request)(p);e.isInteractiveWidgetVersionedRequest=N;const P=p=>(0,t.isUnknownRecord)(p)?p.status==="cancelled"?Object.keys(p).length===1:!r(p,["status","actionId","data"])||p.status!=="submitted"||!i(p.actionId,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits)||!(0,t.isUnknownRecord)(p.data)||Object.keys(p.data).length>e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultDataEntries?!1:Object.entries(p.data).every(([L,B])=>{if(!i(L,e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumIdentifierCodeUnits))return!1;const Y=Array.isArray(B)?B:[B];return Y.length>e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultArrayItems?!1:Y.every(k=>k===null||typeof k=="string"&&k.length<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultStringCodeUnits||typeof k=="boolean"||typeof k=="number"&&Number.isFinite(k))}):!1;e.isInteractiveWidgetResult=P;const A=p=>{const L=y(p);return L!==null&&L<=e.INTERACTIVE_WIDGET_PROTOCOL_V2_LIMITS.maximumResultUtf8Bytes};e.isInteractiveWidgetResultWithinSizeLimit=A})(yi)),yi}var _i={},Gs;function Ch(){return Gs||(Gs=1,Object.defineProperty(_i,"__esModule",{value:!0})),_i}var xi={},Ys;function Ih(){return Ys||(Ys=1,(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SUPPORTED_DISCUSSION_RESPONSE_LIMIT_PROTOCOL_VERSIONS=e.DISCUSSION_RESPONSE_LIMIT_PROTOCOL_V1=e.AI_RESPONSE_COMPLETED_EVENT=void 0,e.parseDiscussionResponseLimitProtocolVersion=n,e.isAiResponseCompletedPayload=r;const t=Ua();e.AI_RESPONSE_COMPLETED_EVENT="ai.response.completed",e.DISCUSSION_RESPONSE_LIMIT_PROTOCOL_V1=1,e.SUPPORTED_DISCUSSION_RESPONSE_LIMIT_PROTOCOL_VERSIONS=Object.freeze([e.DISCUSSION_RESPONSE_LIMIT_PROTOCOL_V1]);function n(a){return e.SUPPORTED_DISCUSSION_RESPONSE_LIMIT_PROTOCOL_VERSIONS.find(s=>s===a)}function r(a){return!(0,t.isUnknownRecord)(a)||n(a.protocolVersion)===void 0||!i(a.discussionId)||typeof a.messageId!="string"||a.messageId.trim().length===0||!i(a.completedAiResponseCount)||!i(a.maxAiResponsesPerDiscussion)?!1:a.completedAiResponseCount<=a.maxAiResponsesPerDiscussion}function i(a){return typeof a=="number"&&Number.isSafeInteger(a)&&a>0}})(xi)),xi}var qs;function Ah(){return qs||(qs=1,(function(e){var t=Jt&&Jt.__createBinding||(Object.create?(function(g,w,I,v){v===void 0&&(v=I);var N=Object.getOwnPropertyDescriptor(w,I);(!N||("get"in N?!w.__esModule:N.writable||N.configurable))&&(N={enumerable:!0,get:function(){return w[I]}}),Object.defineProperty(g,v,N)}):(function(g,w,I,v){v===void 0&&(v=I),g[v]=w[I]})),n=Jt&&Jt.__exportStar||function(g,w){for(var I in g)I!=="default"&&!Object.prototype.hasOwnProperty.call(w,I)&&t(w,g,I)};Object.defineProperty(e,"__esModule",{value:!0}),e.formatCustomerSupportProviderText=e.parseIdentityGateProtocolVersion=e.IDENTITY_GATE_VERSION_HEADER=e.IDENTITY_GATE_REQUIRED_EVENT=e.IDENTITY_GATE_PROTOCOL_VERSION=e.SUPPORTED_IDENTITY_GATE_PROTOCOL_VERSIONS=e.IDENTITY_GATE_PROTOCOL_V2=e.IDENTITY_GATE_PROTOCOL_V1=e.OutputStreamTypesEnum=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE=e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=e.readOptionalNullableString=e.readOptionalString=e.readOptionalNullableNumber=e.readOptionalNumber=e.AgentDisplayFacetRoleType=e.AgentDisplayFacetModeType=void 0,n(Sh(),e),n(Ch(),e),n(Ua(),e),n(Ih(),e);var r;(function(g){g.SPRITESHEET="spritesheet",g.LOTTIE="lottie",g.IMAGE="image",g.SVG="svg",g.VIDEO="video"})(r||(e.AgentDisplayFacetModeType=r={}));var i;(function(g){g.LAUNCHER="launcher",g.ASSISTANT="assistant",g.SEARCH="search"})(i||(e.AgentDisplayFacetRoleType=i={}));const a=g=>typeof g=="number"&&Number.isFinite(g)?g:void 0;e.readOptionalNumber=a;const s=g=>g===null?null:(0,e.readOptionalNumber)(g);e.readOptionalNullableNumber=s;const o=g=>typeof g=="string"?g:void 0;e.readOptionalString=o;const u=g=>g===null?null:(0,e.readOptionalString)(g);e.readOptionalNullableString=u,e.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES=5,e.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE="Europe/Paris",e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_WEEK_DAYS=[{dayOfWeek:1,key:"monday",defaultLabel:"Monday"},{dayOfWeek:2,key:"tuesday",defaultLabel:"Tuesday"},{dayOfWeek:3,key:"wednesday",defaultLabel:"Wednesday"},{dayOfWeek:4,key:"thursday",defaultLabel:"Thursday"},{dayOfWeek:5,key:"friday",defaultLabel:"Friday"},{dayOfWeek:6,key:"saturday",defaultLabel:"Saturday"},{dayOfWeek:7,key:"sunday",defaultLabel:"Sunday"}],e.DIRECT_CHAT_CUSTOMER_SUPPORT_BUSINESS_HOURS_DEFAULT_OPEN_WEEK_DAY_NUMBERS=[1,2,3,4,5];var c;(function(g){g.OUTPUT_STREAM_MESSAGE_START="message_start",g.OUTPUT_STREAM_MESSAGE_DELTA="message_delta",g.OUTPUT_STREAM_MESSAGE_END="message_end",g.OUTPUT_STREAM_CLIENT_EVENT="client_event",g.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE="number_of_steps",g.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE="current_step_number",g.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE="current_step_name",g.OUTPUT_STREAM_ERROR="error"})(c||(e.OutputStreamTypesEnum=c={})),e.IDENTITY_GATE_PROTOCOL_V1=1,e.IDENTITY_GATE_PROTOCOL_V2=2,e.SUPPORTED_IDENTITY_GATE_PROTOCOL_VERSIONS=Object.freeze([e.IDENTITY_GATE_PROTOCOL_V1,e.IDENTITY_GATE_PROTOCOL_V2]),e.IDENTITY_GATE_PROTOCOL_VERSION=e.IDENTITY_GATE_PROTOCOL_V1,e.IDENTITY_GATE_REQUIRED_EVENT="identity.required",e.IDENTITY_GATE_VERSION_HEADER="X-ChatSystem-Identity-Gate-Version";const d=g=>{const w=Array.isArray(g)?g[0]:g;return e.SUPPORTED_IDENTITY_GATE_PROTOCOL_VERSIONS.find(I=>w===I||w===String(I))};e.parseIdentityGateProtocolVersion=d;const f={"+1":"👍",thumbsup:"👍","-1":"👎",thumbsdown:"👎",clap:"👏",wave:"👋",raised_hands:"🙌",pray:"🙏",muscle:"💪",ok_hand:"👌",point_up:"☝️",point_down:"👇",point_left:"👈",point_right:"👉",eyes:"👀",brain:"🧠",heart:"❤️",orange_heart:"🧡",yellow_heart:"💛",green_heart:"💚",blue_heart:"💙",purple_heart:"💜",broken_heart:"💔",fire:"🔥",tada:"🎉",sparkles:"✨",star:"⭐",white_check_mark:"✅",heavy_check_mark:"✔️",x:"❌",warning:"⚠️",information_source:"ℹ️",question:"❓",exclamation:"❗",bulb:"💡",memo:"📝",pushpin:"📌",paperclip:"📎",link:"🔗",lock:"🔒",unlock:"🔓",bell:"🔔",phone:"☎️",email:"✉️",incoming_envelope:"📨",package:"📦",truck:"🚚",moneybag:"💰",credit_card:"💳",gift:"🎁",shopping_bags:"🛍️",clock3:"🕒",hourglass_flowing_sand:"⏳",rocket:"🚀",smile:"😄",smiley:"😃",grinning:"😀",slightly_smiling_face:"🙂",wink:"😉",blush:"😊",relaxed:"☺️",heart_eyes:"😍",thinking_face:"🤔",neutral_face:"😐",confused:"😕",worried:"😟",cry:"😢",sob:"😭",sweat_smile:"😅",joy:"😂",rofl:"🤣",upside_down_face:"🙃",sunglasses:"😎",tada_face:"🥳",angry:"😠",rage:"😡",face_with_symbols_on_mouth:"🤬",scream:"😱",zipper_mouth_face:"🤐",skin_tone_2:"🏻",skin_tone_3:"🏼",skin_tone_4:"🏽",skin_tone_5:"🏾",skin_tone_6:"🏿"},m=g=>g.replace(/-/g,"_"),h=g=>g.replace(/:([a-zA-Z0-9_+\-]+):/g,(w,I)=>f[m(I)]??w),y=({text:g,provider:w})=>w==="slack"?h(g):g;e.formatCustomerSupportProviderText=y})(Jt)),Jt}var Q=Ah();const Si=e=>({mode:Q.AgentDisplayFacetModeType.SVG,role:e}),wh=()=>({branding:{poweredByChatSystemVisible:!0},interactiveWidgets:{available:[{widgetType:Q.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport,enabled:!0}]},agent:{display:{name:"",CSSRules:"",[Q.AgentDisplayFacetRoleType.LAUNCHER]:Si(Q.AgentDisplayFacetRoleType.LAUNCHER),[Q.AgentDisplayFacetRoleType.ASSISTANT]:Si(Q.AgentDisplayFacetRoleType.ASSISTANT),[Q.AgentDisplayFacetRoleType.SEARCH]:Si(Q.AgentDisplayFacetRoleType.SEARCH)},text:{initialText:"",conversationStarters:[]},customNameToDisplay:"",isAudioAllowed:!0},api:{settings:{maxAiResponsesPerDiscussion:0},tracking:{queryParamToAppend:""}}}),Ot=S.createContext({companySettings:wh(),setCompanySettings:()=>{}}),Ha=()=>{const e=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:3080"),t=typeof document<"u"&&new URL(document.URL)?.host.includes("localhost:5173");return e||t};class oc{enabled;constructor({isLocalDev:t,shouldDisplayLogs:n}){this.enabled=t||n}log(...t){this.enabled&&console.log(...t)}warn(...t){this.enabled&&console.warn(...t)}error(...t){this.enabled&&console.error(...t)}}let vh=new oc({isLocalDev:Ha(),shouldDisplayLogs:!1});const kh=e=>new oc({isLocalDev:Ha(),shouldDisplayLogs:!!e}),Ft=()=>vh,Nh=e=>Object.values(ht).includes(e),Rh=(e,t)=>{const n=t??Ft();return Nh(e)?e:(n.warn(`Language ${e} not handled for now. Using ${ht.ENGLISH}.`),ht.ENGLISH)},Oh=e=>{const t=new URL(e);if(t.username||t.password)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_CREDENTIALS");const n=t.hostname==="localhost"||t.hostname==="127.0.0.1"||t.hostname==="[::1]";if(t.protocol!=="https:"&&!(t.protocol==="http:"&&n))throw new Error("CHAT_SYSTEM_API_URL_MUST_USE_HTTPS");if(t.search||t.hash)throw new Error("CHAT_SYSTEM_API_URL_MUST_NOT_CONTAIN_QUERY_OR_HASH");const r=t.pathname.replace(/\/+$/,"");return`${t.origin}${r}`};class un{constructor(){}static getApiUrl=t=>t!==void 0?Oh(t):Ha()?"http://localhost:3001":"https://www.api.chatsystem.ai";static getHeaders=({contentType:t="text/plain"})=>({"Content-Type":t});static getFetchConfig=({contentType:t="text/plain",httpVerb:n="GET",body:r,options:i={}})=>{const a={method:n,headers:this.getHeaders({contentType:t}),...i};return r&&(a.body=JSON.stringify(r)),a}}const uc=S.createContext(null);function Lh({apiUrl:e,children:t}){const n=S.useMemo(()=>un.getApiUrl(e),[e]);return b.jsx(uc.Provider,{value:n,children:t})}function qr(){return S.useContext(uc)??un.getApiUrl()}const ja="chatsystem-widget",Dh=1440*60*1e3,cc=e=>Q.isInteractiveWidgetVersionedRequest(e)?e:null;function br(e){return typeof e=="string"&&!Number.isNaN(Date.parse(e))}function Ph(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.timeoutMinutes!="number"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean")}function Mh(e){return!(typeof e!="object"||e===null||typeof e.enabled!="boolean"||typeof e.requireEmail!="boolean"||typeof e.requirePhone!="boolean"||typeof e.requireReason!="boolean")}function Bh(e){if(typeof e!="object"||e===null||typeof e.discussionId!="number"||typeof e.reconnectToken!="string"||!br(e.startedAt)||!br(e.updatedAt)||e.reconnectTokenExpiresAt!==void 0&&!br(e.reconnectTokenExpiresAt)||e.closedAt!==void 0&&!br(e.closedAt)||e.closedReason!==void 0&&typeof e.closedReason!="string")return!1;const t=e.mode??"live_chat";return t==="closed_hours_contact_capture"?!(!["active","closed"].includes(e.status)||typeof e.customerSupportSessionId!="number"||!Mh(e.closedHoursContactCapture)||typeof e.businessHours!="object"||e.businessHours===null||typeof e.businessHours.timezone!="string"||e.businessHours.todayScheduleLabel!==void 0&&typeof e.businessHours.todayScheduleLabel!="string"):!(t!=="live_chat"||!["connecting","active","closed"].includes(e.status)||typeof e.socketUrl!="string"||e.customerSupportSessionId!==void 0&&typeof e.customerSupportSessionId!="number"||e.isWaitingForFirstProviderReply!==void 0&&typeof e.isWaitingForFirstProviderReply!="boolean"||e.fallbackContactCapture!==void 0&&!Ph(e.fallbackContactCapture))}function Fh(e){if(typeof e!="object"||e===null||e.userType!=="user"&&e.userType!=="assistant"||"content"in e&&e.content!==void 0&&typeof e.content!="string")return!1;if("metaData"in e&&e.metaData!==void 0){if(typeof e.metaData!="object"||e.metaData===null||"isErrorMessage"in e.metaData&&e.metaData.isErrorMessage!==void 0&&typeof e.metaData.isErrorMessage!="boolean"||"messageKind"in e.metaData&&e.metaData.messageKind!==void 0&&!["conversation","system"].includes(e.metaData.messageKind)||"systemEvent"in e.metaData&&e.metaData.systemEvent!==void 0&&!["customer_support_connecting","customer_support_connected","customer_support_closed","customer_support_connection_error"].includes(e.metaData.systemEvent)||"customerSupportAuthorName"in e.metaData&&e.metaData.customerSupportAuthorName!==void 0&&typeof e.metaData.customerSupportAuthorName!="string")return!1;if("interactiveWidget"in e.metaData){const t=e.metaData.interactiveWidget;if(typeof t!="object"||t===null||![2,3].includes(t.protocolVersion)||typeof t.instanceId!="string"||!["none","resume_turn","local_preview"].includes(t.responseMode)||!["active","submitting","submitted","cancelled","unavailable"].includes(t.state)||!cc({type:"interactive_widget_request",event:"interactiveWidget.requested",protocolVersion:t.protocolVersion,instanceId:t.instanceId,widgetType:t.widgetType,source:"system",companyId:1,agentId:null,discussionId:null,toolcallId:null,payload:t.presentation,responsePolicy:t.responseMode==="local_preview"?{mode:"local_preview"}:{mode:"none"}}))return!1}}return!0}function Uh(e){return!(typeof e!="object"||e===null||e.completedAiResponseCount!==void 0&&(!Number.isSafeInteger(e.completedAiResponseCount)||e.completedAiResponseCount<0||e.discussionId===null)||!Array.isArray(e.items)||!e.items.every(Fh)||e.discussionId!==null&&typeof e.discussionId!="number"||typeof e.updatedAt!="string"||Number.isNaN(Date.parse(e.updatedAt))||e.customerSupport!==void 0&&e.customerSupport!==null&&!Bh(e.customerSupport))}function Hh(e){const t=Ft();if(typeof window>"u")return;const n=e.key??ja,r={items:e.conversation.items,discussionId:e.conversation.discussionId,completedAiResponseCount:e.conversation.completedAiResponseCount,updatedAt:new Date().toISOString(),customerSupport:e.customerSupport??null};try{const i=JSON.stringify(r);window.localStorage.setItem(n,i)}catch(i){t.error("Failed to save chat state to localStorage",i)}}function lc(e){const t=Ft();if(typeof window>"u")return null;const n=e?.key??ja,r=window.localStorage.getItem(n);if(!r)return null;try{const i=JSON.parse(r);return Uh(i)?i:(t.warn("Chat state in localStorage has unexpected shape, ignoring."),null)}catch(i){return t.error("Failed to parse chat state from localStorage",i),null}}function jh(e){if(typeof window>"u")return null;const t=e??ja;window.localStorage.removeItem(t)}function Vh(e,t=Date.now()){return t-e}function zh(e,t=Date.now()){return Vh(new Date(e).getTime(),t)<=Dh}function $h({settings:e,setCurrentConversation:t,setArchivedConversation:n,restoreStoredConversation:r=!0,storageKey:i}){const a=r?lc({key:i}):null;if(!a){t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]});return}zh(a.updatedAt)?t({discussionId:a.discussionId,completedAiResponseCount:a.completedAiResponseCount,items:a.items,updatedAt:a.updatedAt}):(t({discussionId:null,items:[{userType:"assistant",content:e.agent.text.initialText,temporaryId:crypto.randomUUID()}]}),n({discussionId:a.discussionId,completedAiResponseCount:a.completedAiResponseCount,items:a.items,updatedAt:a.updatedAt}))}const dc=S.createContext(Ft()),ar=()=>S.useContext(dc),fc=(e,t)=>{if(t===null)return"discussion_not_loaded";if(t!==e.discussionId)return"discussion_mismatch";if(e.status==="closed")return"session_closed";if(!e.reconnectToken)return"missing_reconnect_token";if(e.mode==="closed_hours_contact_capture")return null;if(!e.socketUrl)return"missing_socket_url";if(e.reconnectTokenExpiresAt){const n=Date.parse(e.reconnectTokenExpiresAt);if(Number.isNaN(n))return"invalid_reconnect_expiration";if(n<=Date.now())return"expired_reconnect_token"}return null},Wh=e=>{const t=lc({key:e}),n=t?.customerSupport??null;if(!n)return{mode:St.ai,customerSupportState:null,reason:"no_customer_support_state"};const r=fc(n,t?.discussionId??null);return r==="session_closed"?{mode:St.customerSupport,customerSupportState:n,reason:r}:r?{mode:St.ai,customerSupportState:null,reason:r}:{mode:St.customerSupport,customerSupportState:n,reason:"valid_reconnect_state"}},Gh=async e=>{const t={apiUrl:e.apiUrl,appToken:e.appToken,agentId:e.agentId};return e.runtimeAdapter?e.runtimeAdapter.loadCompanySettings(t):e.loadStandardSettings(t)},Yh=async e=>{const t=un.getFetchConfig({httpVerb:"GET",contentType:"application/json"}),n=`${e.apiUrl}/company/settings/${e.appToken}/${e.agentId}`;return await(await fetch(n,{...t,credentials:"omit"})).json()},qh="chatsystem-widget",Va=e=>{const t=e.agentId??"default";return`${encodeURIComponent(e.appToken)}:${t}`},hc=e=>`${qh}:${Va(e)}`,Xh=({agentId:e,appToken:t,onFetched:n,runtimeAdapter:r})=>{const i=ar(),a=qr(),s=S.useMemo(()=>hc({appToken:t,agentId:e}),[t,e]),[o,u]=S.useState({}),c={companySettings:o,setCompanySettings:u},[d,f]=S.useState({discussionId:null,items:[],updatedAt:null}),[m,h]=S.useState({discussionId:null,items:[],updatedAt:null}),[y,g]=S.useState(()=>r?{mode:St.ai,customerSupportState:null,reason:"runtime_adapter_uses_fresh_conversation"}:Wh(s)),[w,I]=S.useState(0),N={currentConversation:d,setCurrentConversation:f,archivedConversation:m,setArchivedConversation:h,chatboxBootState:y,setChatboxBootState:g,resetConversationRequestId:w,resetConversation:()=>{r||jh(s),g({mode:St.ai,customerSupportState:null,reason:"manual_start_new_conversation"}),f({discussionId:null,items:[{userType:"assistant",content:o?.agent?.text?.initialText,temporaryId:crypto.randomUUID()}],updatedAt:null}),I(P=>P+1)}};return S.useEffect(()=>{Gh({apiUrl:a,appToken:t,agentId:e,runtimeAdapter:r,loadStandardSettings:Yh}).then(P=>{u(P),$h({settings:P,setCurrentConversation:f,setArchivedConversation:h,restoreStoredConversation:!r,storageKey:s}),n?.()}).catch(P=>{i.warn("error in settings fetch",P)})},[t,e,a,s,i,n,r]),{contextCompanySettings:c,contextInitialConversationState:N}};async function Qh(e,t=URL.createObjectURL){if(!e.ok)throw new Error(`IMAGE_PRELOAD_FAILED_HTTP_${e.status}`);const n=await e.blob();return t(n)}const In=globalThis;In.__WIDGET_ASSET_CACHE__||(In.__WIDGET_ASSET_CACHE__={svg:new Map,img:new Map,lot:new Map,spr:new Map});In.__WIDGET_PRELOAD_KEYS__||(In.__WIDGET_PRELOAD_KEYS__=new Set);const Ci=In.__WIDGET_PRELOAD_KEYS__,$t=In.__WIDGET_ASSET_CACHE__,Kh="widget-assets-v1";async function Xr(e,t){const n=Ft();try{const r=await caches.open(Kh),i=await r.match(e,{ignoreSearch:!1});if(i)return i.clone();const a=await fetch(e,{cache:"force-cache",mode:"cors",keepalive:!0,...t});if(!a.ok)throw new Error(`HTTP ${a.status} for ${e}`);return r.put(e,a.clone()),a}catch(r){return n.warn("error while fetching",r),new Response(null,{status:520,statusText:"Error in client - Fetch failed"})}}async function mc(e){const t=$t.svg.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Xr(e)).text();if(typeof globalThis.DOMPurify<"u"&&typeof globalThis.DOMPurify.sanitize=="function")try{const s=new DOMParser().parseFromString(i,"image/svg+xml"),o=new XMLSerializer().serializeToString(s.documentElement);return{sanitized:globalThis.DOMPurify.sanitize(o,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}catch{return{sanitized:globalThis.DOMPurify.sanitize(i,{USE_PROFILES:{svg:!0,svgFilters:!0}})}}else return{sanitized:i}})();return $t.svg.set(e,{promise:n,ts:Date.now()}),n}function pc(e){const t=$t.img.get(e);if(t)return t.promise;const n=(async()=>{const r=await Xr(e);return{blobUrl:await Qh(r)}})();return $t.img.set(e,{promise:n,ts:Date.now()}),n}function gc(e){const t=$t.lot.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Xr(e)).arrayBuffer(),a=new Uint8Array(i);if(a.length>=4&&a[0]===80&&a[1]===75&&a[2]===3&&a[3]===4||e.endsWith(".lottie"))return{kind:"zip",blobUrl:URL.createObjectURL(new Blob([i],{type:"application/zip"}))};const o=new TextDecoder().decode(a);return{kind:"json",data:JSON.parse(o)}})();return $t.lot.set(e,{promise:n,ts:Date.now()}),n}function bc(e){const t=$t.spr.get(e);if(t)return t.promise;const n=(async()=>{const i=await(await Xr(e)).blob();let a=null;try{a=await createImageBitmap(i)}catch{a=null}const{imgEl:s,width:o,height:u}=await new Promise((c,d)=>{const f=URL.createObjectURL(i),m=new Image;m.crossOrigin="anonymous",m.onload=()=>{const h=m.naturalWidth,y=m.naturalHeight;c({imgEl:m,width:h,height:y})},m.onerror=()=>{URL.revokeObjectURL(f),d(new Error("Spritesheet image decode failed"))},m.src=f,m.decode?.().catch(()=>{})});return{imgEl:s,bitmap:a,width:o,height:u}})();return $t.spr.set(e,{promise:n,ts:Date.now()}),n}function Jh(e){e.images?.forEach(t=>void pc(t)),e.svgs?.forEach(t=>void mc(t)),e.lotties?.forEach(t=>void gc(t)),e.sprites?.forEach(t=>void bc(t))}function Zh(e){const t=Ft();try{const n=document.createElement("link");n.rel="preconnect",n.href=e,n.crossOrigin="anonymous",document.head.appendChild(n);const r=document.createElement("link");r.rel="dns-prefetch",r.href=e,document.head.appendChild(r)}catch(n){t.warn("error in injectPreconnect",n)}}function Ec(e){return new URL(e,document.baseURI).toString()}function e0(e,t){const n=document.head.querySelectorAll('link[rel="preload"]');for(const r of n)if((e?r.as===e||r.getAttribute("as")===e:!0)&&r.href===t)return!0;return!1}function Er(e,t,n,r){const i=Ec(n),a=`${e}|${t??""}|${i}`;if(Ci.has(a))return;if(e0(t,i)){Ci.add(a);return}const s=document.createElement("link");s.rel=e,t&&(s.as=t),s.href=i,s.crossOrigin="anonymous",r&&(s.type=r),s.setAttribute("data-chatsystem-preload","1"),document.head.appendChild(s),Ci.add(a)}function t0(e){const t=s=>Array.from(new Set((s??[]).map(Ec))),n=t(e.images),r=t(e.svgs),i=t(e.lotties),a=t(e.sprites);n.forEach(s=>Er("preload","image",s)),r.forEach(s=>Er("preload","fetch",s,"image/svg+xml")),i.forEach(s=>Er("preload","fetch",s,"application/zip")),a.forEach(s=>Er("preload","fetch",s))}function n0(e,t){const{manifest:n,origins:r}=r0(e,t);r.forEach(Zh),t0(n),Jh(n)}function r0(e,t){const n=t??Ft(),r=i0(e),i=new Set,a=new Set,s=new Set,o=new Set;for(const{url:d,mode:f}of r)switch(a0(f,d,n)){case"svg":a.add(d);break;case"lottie":s.add(d);break;case"spritesheet":o.add(d);break;case"image":i.add(d);break}const u={images:Array.from(i),svgs:Array.from(a),lotties:Array.from(s),sprites:Array.from(o)},c=s0(u,n);return{manifest:u,origins:c}}function i0(e){if(!e?.agent?.display)return[];const t=e.agent.display,n=[t.launcher,t.assistant,t.search].filter(Boolean),r=[];for(const i of n)i?.assetUrl&&r.push({url:i.assetUrl,mode:i.mode});return r}function a0(e,t,n){if(e)switch(e){case"svg":return"svg";case"lottie":return"lottie";case"spritesheet":return"spritesheet";case"image":return"image";case"video":return"video"}try{const i=new URL(t,document.baseURI).pathname.toLowerCase();if(i.endsWith(".svg"))return"svg";if(i.endsWith(".lottie")||i.endsWith(".zip")||i.endsWith(".json"))return i.endsWith(".json"),"lottie";if(/\.(png|webp|jpg|jpeg|gif|avi,ef)$/.test(i))return"image";if(/\.(mp4|webm|mov|m4v|ogg)$/.test(i))return"video"}catch(r){n.warn("error in normalizeKind:",r)}return"unknown"}function s0(e,t){const n=new Set,r=i=>{if(i)try{const a=new URL(i,document.baseURI);n.add(`${a.protocol}//${a.host}`)}catch(a){t.warn("error in uniqueOriginsFromManifest",a)}};return(e.images??[]).forEach(r),(e.svgs??[]).forEach(r),(e.lotties??[]).forEach(r),(e.sprites??[]).forEach(r),Array.from(n)}const Tc=S.createContext(void 0),yc=S.createContext(void 0),o0=()=>S.useContext(yc),Qr=()=>{const e=S.useContext(sc);if(!e)throw new Error("useChatbotConversation must be used within ChatbotInitialtextContext.Provider");const{currentConversation:t,setCurrentConversation:n,archivedConversation:r,setArchivedConversation:i,chatboxBootState:a,setChatboxBootState:s,resetConversationRequestId:o,resetConversation:u}=e,c=A=>{n(p=>({...p,discussionId:A}))},d=A=>{n(p=>({...p,items:A}))},f=A=>{n(p=>({...p,items:[...p.items,A]}))},m=({messageStreamId:A,role:p})=>{n(L=>L.items.some(B=>B.metaData?.messageStreamId===A)?L:{...L,items:[...L.items,{userType:p,content:"",metaData:{messageStreamId:A},temporaryId:crypto.randomUUID()}]})},h=(A,p)=>{n(L=>({...L,items:L.items.map(B=>{const Y=B.metaData?.interactiveWidget;return!Y||Y.instanceId!==A?B:{...B,metaData:{...B.metaData,interactiveWidget:p(Y)}}})}))},y=()=>{n(A=>({...A,items:A.items.filter(p=>!(p.content?.length===0&&p.userType==="assistant"))}))},g=()=>{n(A=>{const p=[...A.items];return p.pop(),{...A,items:p}})},w=A=>{n(p=>({...p,updatedAt:A.updatedAt}))},I=()=>{i({discussionId:null,items:[],updatedAt:null})};return{currentConversation:t,setCurrentConversation:n,setCurrentConversationId:c,setCurrentConversationMetadata:w,resetConversation:u,setCurrentConversationItems:d,addMessageToCurrentConversation:f,removeEmptyAssistantMessageFromCurrentConversation:y,removeLastMessageFromCurrentConversation:g,updateCurrentConversationLastMessage:({newContent:A})=>{n(p=>{const L=[...p.items],B=L.length-1,Y=L[B];return L[B]={...Y,content:Y.content=A},{...p,items:L}})},archivedConversation:r,chatboxBootState:a,setChatboxBootState:s,resetConversationRequestId:o,setArchivedConversationAsMain:()=>{n(r),I()},addEmptyMessageToCurrentConversation:m,updateCurrentConversationMessageById:({newContent:A,id:p})=>{n(L=>{const B=[...L.items],Y=B.findIndex(j=>j.metaData?.messageStreamId===p),k=B[Y];return B[Y]={...k,content:k.content=A},{...L,items:B}})},updateInteractiveWidget:h}},u0=30,c0=e=>{try{const t=e.split(".")[1];if(!t)return null;const n=t.replace(/-/g,"+").replace(/_/g,"/"),r=n.padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return typeof i.exp=="number"?i.exp:null}catch{return null}};class l0{token=null;expiresAt=null;pendingRequest=null;pendingRequestIsInteractive=!1;generation=0;provider;constructor(t){this.provider=t}clear(){this.generation+=1,this.token=null,this.expiresAt=null,this.pendingRequest=null,this.pendingRequestIsInteractive=!1}handleIdentityChanged(){this.token=null,this.expiresAt=null,!(this.pendingRequest&&this.pendingRequestIsInteractive)&&(this.generation+=1,this.pendingRequest=null,this.pendingRequestIsInteractive=!1)}async getToken(t){if(!this.provider)return null;const n=Math.floor(Date.now()/1e3);if(this.token&&this.expiresAt!=null&&this.expiresAt-u0>n)return this.token;if(this.pendingRequest){const a=this.pendingRequestIsInteractive,s=await this.pendingRequest;if(s||!t.interactive||a)return s}const r=this.generation;this.pendingRequestIsInteractive=t.interactive;let i;return i=this.provider.getToken(t).then(a=>{if(r!==this.generation)return null;if(!a)return this.clear(),null;const s=c0(a);return s==null||s<=Math.floor(Date.now()/1e3)?(this.clear(),null):(this.token=a,this.expiresAt=s,a)}).finally(()=>{this.pendingRequest===i&&(this.pendingRequest=null,this.pendingRequestIsInteractive=!1)}),this.pendingRequest=i,i}}const d0=async({apiUrl:e,appToken:t,payload:n,identitySession:r,fetchImplementation:i=fetch})=>{let a=null,s;try{a=await r.getToken({interactive:!0,reason:n.reason,requiredCapabilities:n.requiredCapabilities}),a||(a=await r.getToken({interactive:!1,reason:n.reason,requiredCapabilities:n.requiredCapabilities})),s=a?{status:"success"}:{status:"cancelled"}}catch{r.clear(),s={status:"failed",code:"HOST_IDENTITY_FAILED"}}const o=await i(`${e}/ai/identity-gates/${encodeURIComponent(t)}/${encodeURIComponent(n.gateId)}/result`,{method:"POST",headers:{"Content-Type":"application/json","X-ChatSystem-Identity-Gate-Token":n.resultToken,...a?{Authorization:`Bearer ${a}`}:{}},body:JSON.stringify(s)});if(!o.ok)throw o.status===401&&a&&r.clear(),new Error(`IDENTITY_GATE_RESOLUTION_FAILED:${o.status}`)},f0="chatsystem:pending-turn:",h0=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,za=e=>`${f0}${encodeURIComponent(e)}`,_c=(e,t=Date.now())=>{if(!e||typeof e!="object"||Array.isArray(e))return null;const n=e;if(typeof n.continuationId!="string"||!h0.test(n.continuationId)||typeof n.expiresAt!="string"||typeof n.discussionId!="number"||!Number.isSafeInteger(n.discussionId)||n.discussionId<=0)return null;const r=Date.parse(n.expiresAt);return!Number.isFinite(r)||r<=t?null:{continuationId:n.continuationId,expiresAt:n.expiresAt,discussionId:n.discussionId}},m0=(e,t,n,r=sessionStorage)=>{const i=_c({...t,discussionId:n});i&&r.setItem(za(e),JSON.stringify(i))},p0=(e,t=sessionStorage,n=Date.now())=>{const r=za(e),i=t.getItem(r);if(!i)return null;try{const a=_c(JSON.parse(i),n);if(a)return a}catch{}return t.removeItem(r),null},Xs=(e,t=sessionStorage)=>{t.removeItem(za(e))},g0=async({apiUrl:e,appToken:t,discussionId:n,continuation:r,identitySession:i,fetchImplementation:a=fetch})=>{if(!Number.isSafeInteger(n)||n<=0)return null;const s=await i.getToken({interactive:!1});if(!s)return null;const o={discussionId:n};return a(`${e}/ai/pending-turns/${encodeURIComponent(t)}/${encodeURIComponent(r.continuationId)}/resume`,{method:"POST",headers:{Authorization:`Bearer ${s}`,"Content-Type":"application/json"},body:JSON.stringify(o)})},b0=e=>e>=200&&e<300||e>=400&&e<500&&e!==429||e===503,E0=e=>{if(!Q.isUnknownRecord(e))return;const t=Q.readOptionalNumber(e.timeoutMinutes)??Q.DIRECT_CHAT_CUSTOMER_SUPPORT_FALLBACK_CONTACT_CAPTURE_DEFAULT_TIMEOUT_MINUTES;return{enabled:e.enabled===!0,timeoutMinutes:Math.max(1,Math.min(120,Math.round(t))),requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1}},T0=e=>{if(Q.isUnknownRecord(e))return{enabled:e.enabled!==!1,requireEmail:e.requireEmail!==!1,requirePhone:e.requirePhone!==!1,requireReason:e.requireReason!==!1}},y0=e=>{if(!Q.isUnknownRecord(e))return null;const t=e;if(t.type!=="interactive_widget_request"||t.event!=="interactiveWidget.requested"||t.widgetType!==Q.INTERACTIVE_WIDGET_TYPES.directChatCustomerSupport||!Q.isUnknownRecord(t.payload))return null;const n=t.payload;if((Q.readOptionalString(n.mode)??"live_chat")==="closed_hours_contact_capture"){const s=Q.readOptionalString(n.reconnectToken),o=Q.readOptionalNumber(n.customerSupportSessionId),u=T0(n.closedHoursContactCapture);if(n.transport!=="none"||!s||!o||!u||!u.enabled)return null;const c=Q.isUnknownRecord(n.businessHours)?n.businessHours:{};return{mode:"closed_hours_contact_capture",transport:"none",reconnectToken:s,reconnectTokenExpiresAt:Q.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:o,companyId:Q.readOptionalNumber(t.companyId),agentId:Q.readOptionalNullableNumber(t.agentId),discussionId:Q.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Q.readOptionalNullableString(t.toolcallId),closedHoursContactCapture:u,businessHours:{timezone:Q.readOptionalString(c.timezone)??Q.DIRECT_CHAT_CUSTOMER_SUPPORT_DEFAULT_BUSINESS_HOURS_TIMEZONE,todayScheduleLabel:Q.readOptionalString(c.todayScheduleLabel)}}}if(n.transport!=="socket"||typeof n.socketUrl!="string")return null;const i=Q.readOptionalString(n.handoffToken),a=Q.readOptionalString(n.reconnectToken);return!i&&!a?null:{mode:"live_chat",transport:"socket",socketUrl:n.socketUrl,handoffToken:i,reconnectToken:a,reconnectTokenExpiresAt:Q.readOptionalString(n.reconnectTokenExpiresAt),customerSupportSessionId:Q.readOptionalNumber(n.customerSupportSessionId),companyId:Q.readOptionalNumber(t.companyId),agentId:Q.readOptionalNullableNumber(t.agentId),discussionId:Q.readOptionalNullableNumber(t.discussionId)??null,toolcallId:Q.readOptionalNullableString(t.toolcallId),fallbackContactCapture:E0(n.fallbackContactCapture)}},_0=e=>y0(e),x0=/^[a-zA-Z0-9][a-zA-Z0-9:._-]*$/,S0=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,C0=e=>{if(!Q.isUnknownRecord(e)||e.protocolVersion!==Q.IDENTITY_GATE_PROTOCOL_V1&&e.protocolVersion!==Q.IDENTITY_GATE_PROTOCOL_V2||typeof e.gateId!="string"||e.gateId.length<1||e.gateId.length>100||typeof e.toolCallId!="string"||e.toolCallId.length<1||e.toolCallId.length>255||typeof e.resultToken!="string"||e.resultToken.length<32||e.resultToken.length>512||typeof e.expiresAt!="string"||!Number.isFinite(Date.parse(e.expiresAt))||e.reason!=="identity_required"&&e.reason!=="identity_expired"||!Array.isArray(e.requiredCapabilities)||e.requiredCapabilities.length<1||e.requiredCapabilities.length>50||!e.requiredCapabilities.every(n=>typeof n=="string"&&n.length<=100&&x0.test(n)))return null;const t={gateId:e.gateId,toolCallId:e.toolCallId,requiredCapabilities:[...new Set(e.requiredCapabilities)].sort(),reason:e.reason,expiresAt:e.expiresAt,resultToken:e.resultToken};return e.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V1?{protocolVersion:Q.IDENTITY_GATE_PROTOCOL_V1,...t}:!Q.isUnknownRecord(e.continuation)||typeof e.continuation.continuationId!="string"||!S0.test(e.continuation.continuationId)||typeof e.continuation.expiresAt!="string"||!Number.isFinite(Date.parse(e.continuation.expiresAt))?null:{protocolVersion:Q.IDENTITY_GATE_PROTOCOL_V2,...t,continuation:{continuationId:e.continuation.continuationId,expiresAt:e.continuation.expiresAt}}},I0=e=>{if(e.event===Q.AI_RESPONSE_COMPLETED_EVENT&&Q.isAiResponseCompletedPayload(e.payload))return{type:"ai_response_completed",payload:e.payload};if(e.event===Q.IDENTITY_GATE_REQUIRED_EVENT){const r=C0(e.payload);if(r)return{type:"identity_gate_required",payload:r}}const t=cc(e.payload);if(t)return{type:"interactive_widget_requested",payload:t};const n=_0(e.payload);return n?{type:"customer_support_handoff_requested",payload:n}:{type:"unhandled_client_event",event:e}};class Mt{pending="";logger;constructor(t=console){this.logger=t}transformNDJSONChunkIntoObjects(t){this.pending+=t;const n=this.pending.split(/\r?\n/);this.pending=n.pop()??"";const r=[];for(const i of n){const a=i.trim();if(a)try{r.push(JSON.parse(a))}catch{this.logger.warn("[NDJSON] Could not parse line:",a)}}return r}flushPending(){const t=this.pending.trim();if(this.pending="",!t)return[];try{return[JSON.parse(t)]}catch{return[]}}static isObjectOutputstreamMessageDeltaDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_DELTA;static isObjectOutputstreamMessageStartDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_START;static isObjectOutputstreamMessageEndDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_MESSAGE_END;static isObjectOutputstreamErrorDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_ERROR;static isObjectOutputstreamClientEventDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_CLIENT_EVENT;static isObjectOutputstreamLoadingNumberOfStepsDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_NUMBER_OF_STEPS_TYPE;static isObjectOutputstreamLoadingCurrentStepNumberDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NUMBER_TYPE;static isObjectOutputstreamLoadingCurrentStepNameDTO=t=>t.type===Q.OutputStreamTypesEnum.OUTPUT_STREAM_CURRENT_STEP_NAME_TYPE;static containsObjectWithLastAnswerToTrue=t=>{for(const n of t)if(this.isObjectOutputstreamMessageEndDTO(n)&&n.isLastAnswer)return!0;return!1}}function A0(e,t,n){return!Q.isAiResponseCompletedPayload(t)||t.discussionId!==n||t.discussionId!==e.discussionId||t.completedAiResponseCount<=(e.completedAiResponseCount??0)?e:{...e,completedAiResponseCount:t.completedAiResponseCount}}function w0(e,t){return typeof t=="number"&&Number.isSafeInteger(t)&&t>0&&(e.completedAiResponseCount??0)>=t}function v0(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="DISCUSSION_AI_RESPONSE_LIMIT_REACHED"}var da=(e=>(e.GET_DISCUSSION_ID="/id",e.RESET_DISCUSSION="/delete",e))(da||{});const k0=e=>!!e.startsWith("/"),N0=(e,t,n)=>e===da.GET_DISCUSSION_ID?t?`Votre ID de discussion est ${t}`:"Votre ID de discussion n'est pas encore défini. Envoyez un premier message pour que ce soit le cas.":e===da.RESET_DISCUSSION?(n(),null):`La commande ${e} n'est pas prise en compte.`,$a=()=>{const e=Yt(),t=e.formatMessage({defaultMessage:"Message the assistant...",id:"chatbot.placeholder.content"}),n=e.formatMessage({defaultMessage:"You",id:"chatbot.chatline.label.user"}),r=e.formatMessage({defaultMessage:"Assistant",id:"chatbot.chatline.label.assistant"}),i=e.formatMessage({defaultMessage:"Customer support",id:"chatbot.chatline.label.customerSupport"}),a=e.formatMessage({defaultMessage:"⏳ The chatbot is a little busy at the time. Please try again later.",id:"chatbot.error.api.429"}),s=e.formatMessage({defaultMessage:"Oops ! There has been an error. Please try again later.",id:"chatbot.error.api.500"}),o=e.formatMessage({defaultMessage:"Oups ! The discussion is full. Please start a new one.",id:"chatbot.error.api.409"}),u=e.formatMessage({defaultMessage:"See",id:"chatbot.infobanner.title"}),c=e.formatMessage({defaultMessage:"You have an archived discussion.",id:"chatbot.infobanner.cta"}),d=e.formatMessage({defaultMessage:"Transferring your request to customer support...",id:"chatbot.customerSupport.connecting"}),f=e.formatMessage({defaultMessage:"Your request has been sent to Customer Support. It usually takes a few minutes to get a reply. Thank you for waiting.",id:"chatbot.customerSupport.connected"}),m=e.formatMessage({defaultMessage:"Customer support is not available right now. Please try again later.",id:"chatbot.customerSupport.connectionError"}),h=e.formatMessage({defaultMessage:"Customer support received your request, but live replies are temporarily unavailable. Please try again shortly.",id:"chatbot.customerSupport.providerUnavailable"}),y=e.formatMessage({defaultMessage:"Your customer support conversation is now complete. Start a new conversation whenever you need more help.",id:"chatbot.customerSupport.closed"}),g=e.formatMessage({defaultMessage:"Restart",id:"chatbot.customerSupport.restart"}),w=e.formatMessage({defaultMessage:"Leave your contact details",id:"chatbot.customerSupport.fallback.title"}),I=e.formatMessage({defaultMessage:"Customer support has not replied yet. Leave your email and phone number and we will contact you soon.",id:"chatbot.customerSupport.fallback.description"}),v=e.formatMessage({defaultMessage:"Email",id:"chatbot.customerSupport.fallback.email"}),N=e.formatMessage({defaultMessage:"Phone",id:"chatbot.customerSupport.fallback.phone"}),P=e.formatMessage({defaultMessage:"Send",id:"chatbot.customerSupport.fallback.submit"}),A=e.formatMessage({defaultMessage:"Sending...",id:"chatbot.customerSupport.fallback.submitting"}),p=e.formatMessage({defaultMessage:"Your contact details have been saved. Customer support will contact you soon.",id:"chatbot.customerSupport.fallback.success"}),L=e.formatMessage({defaultMessage:"We could not save your contact details. Please try again.",id:"chatbot.customerSupport.fallback.error"}),B=e.formatMessage({defaultMessage:"Customer support is currently closed",id:"chatbot.customerSupport.closedHours.title"}),Y=e.formatMessage({defaultMessage:"Leave your email, phone number and request. Customer support will contact you during opening hours.",id:"chatbot.customerSupport.closedHours.description"}),k=e.formatMessage({defaultMessage:"Today:",id:"chatbot.customerSupport.closedHours.schedulePrefix"}),j=e.formatMessage({defaultMessage:"Reason for your request",id:"chatbot.customerSupport.closedHours.reason"}),$=e.formatMessage({defaultMessage:"Your request has been saved. Customer support will contact you during opening hours.",id:"chatbot.customerSupport.closedHours.success"});return{placeholderTranslation:t,chatlineLabelUserTranslation:n,chatlineLabelAssistantTranslation:r,chatlineLabelCustomerSupportTranslation:i,tooManyRequestsTranslation:a,genericErrorTranslation:s,discussionFullErrorTranslation:o,infoBannerTitleTranslation:u,infoBannerExplainationTranslation:c,customerSupportConnectingTranslation:d,customerSupportConnectedTranslation:f,customerSupportConnectionErrorTranslation:m,customerSupportProviderUnavailableTranslation:h,customerSupportClosedTranslation:y,customerSupportRestartTranslation:g,customerSupportFallbackTitleTranslation:w,customerSupportFallbackDescriptionTranslation:I,customerSupportFallbackEmailTranslation:v,customerSupportFallbackPhoneTranslation:N,customerSupportFallbackSubmitTranslation:P,customerSupportFallbackSubmittingTranslation:A,customerSupportFallbackSuccessTranslation:p,customerSupportFallbackErrorTranslation:L,customerSupportClosedHoursTitleTranslation:B,customerSupportClosedHoursDescriptionTranslation:Y,customerSupportClosedHoursSchedulePrefixTranslation:k,customerSupportClosedHoursReasonTranslation:j,customerSupportClosedHoursSuccessTranslation:$}},Wa=()=>{const e=Yt(),t=e.formatMessage({defaultMessage:"Search",id:"chatbot.chatline.loading.function.search"}),n=e.formatMessage({defaultMessage:"Looking into the cavern",id:"chatbot.chatline.loading.function.extractProductName"}),r=e.formatMessage({defaultMessage:"Consulting the shadocks",id:"chatbot.chatline.loading.function.suggestProductName"}),i=e.formatMessage({defaultMessage:"Looking for ziboublis",id:"chatbot.chatline.loading.function.criteriaDefinition"}),a=e.formatMessage({defaultMessage:"Searching Stock",id:"chatbot.chatline.loading.function.searchStock"}),s=e.formatMessage({defaultMessage:"Step",id:"chatbot.chatline.loading.function.step"}),o=e.formatMessage({defaultMessage:"I'm looking for products",id:"chatbot.chatline.loading.function.genericSearchMessage"}),u=e.formatMessage({defaultMessage:"Searching ...",id:"chatbot.chatline.loading.stepName.search"}),c=e.formatMessage({defaultMessage:"Building Query ...",id:"chatbot.chatline.loading.stepName.building"}),d=e.formatMessage({defaultMessage:"Analyzing ...",id:"chatbot.chatline.loading.stepName.analyzing"}),f=e.formatMessage({defaultMessage:"Writing answer",id:"chatbot.chatline.loading.stepName.redacting"}),m=e.formatMessage({defaultMessage:"Cancel",id:"chatbot.chatline.loading.cancel"}),h=e.formatMessage({defaultMessage:"see recent messages",id:"chatbot.chatline.seeRecentMessages"}),y=w=>w?w.includes("ExtractProductNames")?n:w.includes("SuggestProductNames")?r:w==="Recherche ..."?u:w==="Construction ..."?c:w==="Analyse ..."?d:w==="Rédaction"?f:w.includes("CreateCriteriasFromProductNames")||w.includes("CreateCriteriasOrProductNamesFromDiscussion")?i:w.includes("SearchStock")?a:"":t,g=y();return{searchTranslation:t,extractProductNameTranslation:n,criteriaDefinitionTranslation:i,searchStockTranslation:a,stepTranslation:s,getCurrentStepTranslated:y,defaultStartingStep:g,lookingForProductTranslation:o,cancelTranslation:m,recentMessagesTranslation:h}},R0=e=>/(\[.*|!\[.*)$/.test(e),O0=e=>/\)/.test(e),Qs=()=>({rendered:"",markdownTag:"",isWritingTag:!1,lastStreamSourceUuid:null});class L0{buffers=new Map;callbacks;constructor(t){this.callbacks=t}handleStart(t){this.buffers.set(t.messageId,Qs()),t.role==="assistant"&&this.callbacks.onAssistantMessageStart?.(),this.callbacks.addEmptyMessage({messageStreamId:t.messageId,role:t.role})}handleDelta(t){this.ensureBufferExists(t.messageId);const n=this.buffers.get(t.messageId);this.appendSourceSeparatorIfNeeded(n,t.streamSourceUuid),this.appendDelta(n,t.delta),this.callbacks.updateMessage({id:t.messageId,newContent:n.rendered})}handleEnd(t){this.buffers.delete(t.messageId)}hasBuffer(t){return this.buffers.has(t)}ensureBufferExists(t){this.buffers.has(t)||(this.buffers.set(t,Qs()),this.callbacks.addEmptyMessage({messageStreamId:t,role:"assistant"}))}appendSourceSeparatorIfNeeded(t,n){t.lastStreamSourceUuid&&t.lastStreamSourceUuid!==n&&(t.rendered+='<span style="display:block;height:1rem;"></span>'),t.lastStreamSourceUuid=n??null}appendDelta(t,n){if(O0(n)){t.markdownTag+=n,t.rendered+=t.markdownTag,t.markdownTag="",t.isWritingTag=!1;return}if(t.isWritingTag||R0(n)){t.markdownTag+=n,t.isWritingTag=!0;return}t.rendered+=n}}const D0=1e4,P0=3e3,M0=e=>{const t=new URL(e);return t.protocol=t.protocol==="https:"?"wss:":"ws:",t},B0=({apiUrl:e,handoff:t})=>(t.socketUrl.startsWith("ws://")||t.socketUrl.startsWith("wss://")?new URL(t.socketUrl):new URL(t.socketUrl,M0(e))).toString(),F0=e=>{if(typeof e!="object"||e===null)return!1;const t=e;return["connected","customer_message_ack","provider_message","closed","error"].includes(t.type)};class U0{socket;callbacks;url;appToken;handoffToken;isIntentionalClose=!1;handshakeTimeout;closeAcknowledgementTimeout=null;constructor(t){this.callbacks=t.callbacks,this.url=B0(t),this.appToken=t.appToken;const n=t.handoff.reconnectToken??t.handoff.handoffToken;if(!n)throw new Error("Customer support socket requires a reconnect token");this.handoffToken=n,this.socket=new WebSocket(this.url),this.handshakeTimeout=setTimeout(()=>{this.socket.readyState!==WebSocket.CONNECTING&&this.socket.readyState!==WebSocket.OPEN||(this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()}),this.socket.close())},D0),this.socket.addEventListener("open",this.sendAuthMessage),this.socket.addEventListener("message",this.handleMessage),this.socket.addEventListener("close",this.handleClose),this.socket.addEventListener("error",this.handleTransportError)}sendAuthMessage=()=>{this.socket.send(JSON.stringify({type:"auth",appToken:this.appToken,handoffToken:this.handoffToken}))};sendCustomerMessage(t){if(this.socket.readyState!==WebSocket.OPEN){this.callbacks.onError?.({type:"error",message:"Customer support connection is not ready.",code:"CUSTOMER_SUPPORT_SOCKET_NOT_READY"});return}const n={type:"customer_message",text:t,clientMessageId:crypto.randomUUID()};this.socket.send(JSON.stringify(n))}close(t,n){if(this.isIntentionalClose=!0,clearTimeout(this.handshakeTimeout),this.socket.readyState===WebSocket.OPEN&&n?.notifyServer){const r={type:"close",reason:t};this.socket.send(JSON.stringify(r)),this.closeAcknowledgementTimeout=setTimeout(()=>{this.closeTransport(t)},P0);return}this.closeTransport(t)}handleMessage=t=>{clearTimeout(this.handshakeTimeout);let n;try{n=JSON.parse(t.data)}catch{this.callbacks.onError?.({type:"error",message:"Customer support sent an invalid message.",code:"CUSTOMER_SUPPORT_SOCKET_INVALID_MESSAGE"});return}if(F0(n)){if(n.type==="connected"){this.callbacks.onConnected?.(n);return}if(n.type==="provider_message"){this.callbacks.onProviderMessage?.(n);return}if(n.type==="closed"){if(this.closeAcknowledgementTimeout!==null){clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null,this.closeTransport("Customer support session closed");return}this.callbacks.onClosed?.(n);return}n.type==="error"&&this.callbacks.onError?.(n)}};handleClose=t=>{clearTimeout(this.handshakeTimeout),this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),!this.isIntentionalClose&&this.callbacks.onClose?.(t)};handleTransportError=()=>{this.isIntentionalClose||this.callbacks.onTransportError?.({readyState:this.socket.readyState,url:this.safeUrlForLogs()})};closeTransport(t){this.closeAcknowledgementTimeout!==null&&(clearTimeout(this.closeAcknowledgementTimeout),this.closeAcknowledgementTimeout=null),this.socket.close(1e3,t??"Customer support socket detached")}safeUrlForLogs(){const t=new URL(this.url);return t.searchParams.has("handoffToken")&&t.searchParams.set("handoffToken","<redacted>"),t.toString()}}const H0=new Set(["SLACK_INBOUND_EVENT_NOT_OBSERVED"]),j0=e=>e&&H0.has(e)?"provider_unavailable":"connection_error",V0=e=>e.isClosed?e.labels.closed:!e.isCustomerSupportMode||!e.hasTransportFailed?null:e.failureKind==="provider_unavailable"?e.labels.providerUnavailable:e.labels.connectionError,z0=[500,1500,3e3],$0=e=>{const t=z0[e];return t===void 0?{shouldRetry:!1}:{shouldRetry:!0,delayMs:t}},xc=e=>e.mode!==St.customerSupport?!1:e.customerSupportState.status!=="closed",Ga=e=>e.mode!==St.customerSupport?!1:e.customerSupportState.status==="closed",Ya=e=>e.mode!==St.customerSupport||e.customerSupportState.status==="closed"?!1:e.customerSupportState.mode==="closed_hours_contact_capture",W0=e=>Ya(e)?"customer_support":xc(e)?"customer_support_connecting":Ga(e)?"customer_support":"ai",G0=e=>Ya(e)?"idle":xc(e)?"connecting":Ga(e)?"closed":"idle",Y0=e=>Ya(e)?"visible":"idle",q0=e=>e?.trim()||void 0,X0=e=>e.mode!==St.customerSupport||e.customerSupportState.status==="closed"||e.customerSupportState.mode==="closed_hours_contact_capture"?null:e.customerSupportState,Sc=e=>!!(e&&e.mode!=="closed_hours_contact_capture"),qa=e=>e?.mode==="closed_hours_contact_capture",Q0=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&Sc(e.state))return e.state.fallbackContactCapture},K0=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&qa(e.state))return e.state.closedHoursContactCapture},J0=e=>{if(e.isCustomerSupportMode&&e.isCurrentDiscussion&&qa(e.state))return e.state.businessHours},Z0=e=>e.isCustomerSupportMode?e.chatTransportMode==="customer_support_connecting"?"customer_support_connecting":e.isCurrentDiscussion?qa(e.state)?"customer_support_closed_hours_form":e.socketStatus!=="connected"?`socket_${e.socketStatus}`:e.isWaitingForFirstProviderReply?"waiting_first_provider_reply":e.isCustomerSupportClosed?"customer_support_closed":null:e.currentDiscussionId===null?"discussion_not_loaded":"discussion_mismatch":null;function em({appToken:e,conversationStorageKey:t,currentConversation:n,loadingStatus:r,labels:i,logger:a,setCurrentConversationId:s,setLoadingStatus:o,addMessageToCurrentConversation:u,chatboxBootState:c,resetConversationRequestId:d}){const f=qr(),m=c,[h,y]=S.useState(()=>W0(m)),[g,w]=S.useState(m.customerSupportState),[I,v]=S.useState(()=>G0(m)),[N,P]=S.useState(null),[A,p]=S.useState("idle"),[L,B]=S.useState(()=>Y0(m)),Y=S.useRef(null),k=S.useRef(d),j=S.useRef(!1),$=S.useRef(null),V=S.useRef(X0(m)),z=S.useRef(Ga(m)),Z=S.useRef(!1),fe=S.useRef(0),re=S.useRef(null),ke=h!=="ai",ve=g?.discussionId===n.discussionId,E=ke&&g?.status==="closed",G=V0({isCustomerSupportMode:ke,isClosed:E,hasTransportFailed:I==="failed",failureKind:N,labels:i}),ie=!!(ke&&ve&&g?.mode!=="closed_hours_contact_capture"&&g?.isWaitingForFirstProviderReply),x={isCustomerSupportMode:ke,isCurrentDiscussion:ve,state:g},ee=Q0(x),te=K0(x),K=J0(x),ae=!!ee?.enabled&&["visible","submitting","submitted","failed"].includes(A),se=!!te?.enabled&&["visible","submitting","submitted","failed"].includes(L),oe=Z0({chatTransportMode:h,currentDiscussionId:n.discussionId,isCustomerSupportClosed:E,isCustomerSupportMode:ke,isCurrentDiscussion:ve,isWaitingForFirstProviderReply:ie,socketStatus:I,state:g}),ce=oe!==null;S.useEffect(()=>{if(r!=="notLoading"||n.items.length===0)return;const U=ve?g:null;!n.discussionId&&!U||Hh({conversation:n,customerSupport:U,key:t})},[r,n,g,t,ve]),S.useEffect(()=>(Z.current=!1,()=>{Z.current=!0,re.current!==null&&(window.clearTimeout(re.current),re.current=null),Y.current?.close("Widget unmounted"),Y.current=null}),[]);const Ne=(U,R,M)=>{u({userType:"assistant",content:U,metaData:{messageKind:"system",systemEvent:R,...M},temporaryId:crypto.randomUUID()})},q=(U,R)=>{u({userType:"assistant",content:U,metaData:{messageKind:"conversation",authorType:"customer_support_operator",...R},temporaryId:crypto.randomUUID()})},Re=(U,R)=>{Y.current?.close(U,R),Y.current=null},We=()=>{re.current!==null&&(window.clearTimeout(re.current),re.current=null),fe.current=0,$.current=null,V.current=null,z.current=!1,P(null),w(null),v("idle"),y("ai")},Ke=(U,R)=>{Re(U,R),We()};S.useEffect(()=>{k.current!==d&&(k.current=d,j.current=!0,Ke("Starting new conversation",{notifyServer:!0}))},[d]),S.useEffect(()=>{n.discussionId===null&&j.current&&g===null&&h==="ai"&&(j.current=!1)},[h,n.discussionId,g]);const et=U=>{z.current||(z.current=!0,$.current=null,Y.current=null,U?.discussionId&&s(U.discussionId),o("notLoading"),P(null),v("closed"),y("customer_support"),w(R=>{if(!R)return R;const M=new Date().toISOString();return{...R,status:"closed",discussionId:U?.discussionId??R.discussionId,updatedAt:M,closedAt:U?.closedAt??M,closedReason:U?.reason,isWaitingForFirstProviderReply:!1}}))},Je=(U,R)=>{Y.current&&Re("Replacing customer support socket"),v("connecting");let M=!1,J=!1;const ue=he=>{P(he),v("failed"),o("notLoading")},xe=he=>{Y.current=null;const Pe=$0(fe.current);if(!Pe.shouldRetry){a.error("Customer support socket reconnect exhausted code="+he.code+" reason="+(he.reason||"none")),ue("connection_error");return}fe.current+=1,v("connecting"),y("customer_support_connecting"),a.log("Customer support socket reconnect scheduled attempt="+fe.current+" delayMs="+Pe.delayMs+" code="+he.code),re.current=window.setTimeout(()=>{re.current=null,!(Z.current||z.current)&&Je(U,{...R,addConnectedMessage:M?!1:R?.addConnectedMessage})},Pe.delayMs)};Y.current=new U0({apiUrl:f,appToken:e,handoff:U,callbacks:{onConnected:he=>{const Pe=U.reconnectToken??U.handoffToken;if(!Pe){et({reason:"Missing reconnect token"});return}M=!0,fe.current=0,R?.isStoredReconnect&&(V.current=null);const tt=new Date().toISOString();s(he.discussionId),P(null),v("connected"),y("customer_support"),o("notLoading"),w(ft=>{const Ze=Sc(ft)?ft:null;return{mode:"live_chat",status:"active",discussionId:he.discussionId,socketUrl:U.socketUrl,reconnectToken:Pe,reconnectTokenExpiresAt:he.reconnectTokenExpiresAt??U.reconnectTokenExpiresAt,customerSupportSessionId:he.customerSupportSessionId??U.customerSupportSessionId,provider:Ze?.provider,isWaitingForFirstProviderReply:Ze?.isWaitingForFirstProviderReply??!0,fallbackContactCapture:Ze?.fallbackContactCapture,startedAt:Ze?.startedAt??tt,updatedAt:tt}}),R?.addConnectedMessage!==!1&&Ne(i.connected,"customer_support_connected")},onProviderMessage:he=>{P(null),v("connected"),p(Pe=>Pe==="submitted"?Pe:"idle"),w(Pe=>!Pe||Pe.mode==="closed_hours_contact_capture"?Pe:{...Pe,status:"active",provider:he.provider??Pe.provider,reconnectTokenExpiresAt:he.reconnectTokenExpiresAt??Pe.reconnectTokenExpiresAt,isWaitingForFirstProviderReply:!1,updatedAt:new Date().toISOString()}),q(he.text,{customerSupportAuthorName:q0(he.authorName),customerSupportProvider:he.provider})},onClosed:he=>{J=!0,et({reason:he.reason,closedAt:he.closedAt,discussionId:he.discussionId})},onError:he=>{J=!0,a.error("Customer support socket server error code="+he.code+" message="+he.message),ue(j0(he.code))},onClose:he=>{Z.current||z.current||J||xe(he)},onTransportError:he=>{a.error(`Customer support socket transport error readyState=${he.readyState} url=${he.url}`)}}})};S.useEffect(()=>{const U=V.current;if(!U)return;const R=fc(U,n.discussionId);if(R!=="discussion_not_loaded"){if(R==="session_closed"){V.current=null,v("closed"),y("customer_support");return}if(R){V.current=null,w(M=>M?.discussionId===n.discussionId?M:null),v("idle"),y("ai");return}Y.current||(v("connecting"),y("customer_support_connecting"),Je({mode:"live_chat",transport:"socket",socketUrl:U.socketUrl,reconnectToken:U.reconnectToken,reconnectTokenExpiresAt:U.reconnectTokenExpiresAt,customerSupportSessionId:U.customerSupportSessionId,discussionId:U.discussionId,fallbackContactCapture:U.fallbackContactCapture},{addConnectedMessage:!1,isStoredReconnect:!0}))}},[n.discussionId]);const je=U=>{if(U.mode==="closed_hours_contact_capture"){De(U);return}const R=U.reconnectToken??U.handoffToken;if(!U.discussionId||!R){Ne(i.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const M=new Date().toISOString();$.current=U,z.current=!1,p("idle"),w({mode:"live_chat",status:"connecting",discussionId:U.discussionId,socketUrl:U.socketUrl,reconnectToken:R,reconnectTokenExpiresAt:U.reconnectTokenExpiresAt,customerSupportSessionId:U.customerSupportSessionId,isWaitingForFirstProviderReply:!0,fallbackContactCapture:U.fallbackContactCapture,startedAt:M,updatedAt:M}),v("connecting"),y("customer_support_connecting"),Ne(i.connecting,"customer_support_connecting")},ot=()=>{const U=$.current;!U||U.mode!=="live_chat"||($.current=null,Je(U))},yt=U=>h!=="customer_support"||I!=="connected"||!ve||!Y.current?(Ne(i.connectionError,"customer_support_connection_error",{isErrorMessage:!0}),!1):(Y.current.sendCustomerMessage(U),!0);S.useEffect(()=>{if(!ee?.enabled||!ie||!ve||I!=="connected"||A!=="idle")return;const U=Math.max(1,ee.timeoutMinutes)*60*1e3,R=window.setTimeout(()=>{p("visible")},U);return()=>window.clearTimeout(R)},[ee,A,ve,ie,I]);const Te=async({email:U,phone:R})=>{if(!g?.customerSupportSessionId||!g.reconnectToken)return!1;p("submitting");const M=`${f}/customer-support/sessions/${g.customerSupportSessionId}/fallback-contact`;return(await fetch(M,un.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:g.reconnectToken,reasonType:"fallback_no_reply",email:U,phone:R}}))).ok?(p("submitted"),Re("Fallback contact submitted"),et({reason:"fallback_contact_submitted",discussionId:g.discussionId}),!0):(p("failed"),!1)},De=U=>{if(!U.discussionId){Ne(i.connectionError,"customer_support_connection_error",{isErrorMessage:!0});return}const R=new Date().toISOString();$.current=null,z.current=!1,Re("Closed-hours contact capture"),w({mode:"closed_hours_contact_capture",status:"active",discussionId:U.discussionId,reconnectToken:U.reconnectToken,reconnectTokenExpiresAt:U.reconnectTokenExpiresAt,customerSupportSessionId:U.customerSupportSessionId,closedHoursContactCapture:U.closedHoursContactCapture,businessHours:U.businessHours,startedAt:R,updatedAt:R}),v("idle"),y("customer_support"),o("notLoading"),B("visible")},Ae=async({email:U,phone:R,reason:M})=>{if(g?.mode!=="closed_hours_contact_capture")return!1;B("submitting");const J=f+"/customer-support/sessions/"+g.customerSupportSessionId+"/fallback-contact";return(await fetch(J,un.getFetchConfig({httpVerb:"POST",contentType:"application/json",body:{reconnectToken:g.reconnectToken,reasonType:"closed_hours",email:U,phone:R,reason:M}}))).ok?(B("submitted"),et({reason:"closed_hours_contact_submitted",discussionId:g.discussionId}),!0):(B("failed"),!1)};return S.useEffect(()=>{if(ke&&g&&g.status!=="closed"&&n.discussionId!==g.discussionId&&n.discussionId===null){if(j.current)return;s(g.discussionId);return}},[n.discussionId,g,ke,I,s]),{chatTransportMode:h,socketStatus:I,isCustomerSupportMode:ke,isCustomerSupportClosed:E,customerSupportStatusMessage:G,isCustomerSupportInputDisabled:ce,customerSupportInputDisabledReason:oe,enterCustomerSupportMode:je,flushPendingCustomerSupportHandoff:ot,sendToCustomerSupport:yt,fallbackContactCaptureConfig:ee,fallbackContactCaptureStatus:A,shouldDisplayFallbackContactCapture:ae,submitFallbackContactCapture:Te,closedHoursContactCaptureConfig:te,closedHoursBusinessHours:K,closedHoursContactCaptureStatus:L,shouldDisplayClosedHoursContactCapture:se,submitClosedHoursContactCapture:Ae}}const Ks=e=>e?!!(e.submitInteractionResult&&e.resumeInteraction)||e.interactiveWidgetCapabilities?.localPreview?Q.INTERACTIVE_WIDGET_PROTOCOL_V3:void 0:Q.INTERACTIVE_WIDGET_PROTOCOL_V3,tm=e=>e.runtimeAdapter?e.prompt.mode!=="text"?Promise.reject(new Error("WIDGET_RUNTIME_ADAPTER_TEXT_PROMPTS_ONLY")):e.runtimeAdapter.sendTextPrompt(e.prompt.request):e.sendStandardPrompt();class nm{active=null;logger;constructor(t=console){this.logger=t}start(){return this.active?null:(this.active={id:crypto.randomUUID(),controller:new AbortController,decoder:new Mt(this.logger)},this.active)}hasActiveStream(){return this.active!==null}isCurrent(t){return this.active?.id===t.id}finish(t){return this.isCurrent(t)?(this.active=null,!0):!1}cancel(t){const n=this.active;return n?(this.active=null,n.controller.abort(t),n):null}}const sr=(e,t)=>`chatsystem:interaction:v2:${e}:${t}`,rm=(e,t,n)=>{t.responsePolicy.mode==="resume_turn"&&sessionStorage.setItem(sr(e,t.instanceId),JSON.stringify({continuationId:t.responsePolicy.continuation.continuationId,expiresAt:t.responsePolicy.continuation.expiresAt,resultToken:t.responsePolicy.resultToken,discussionId:n}))},$n=(e,t)=>{const n=sr(e,t),r=sessionStorage.getItem(n);if(!r)return null;try{const i=JSON.parse(r);return typeof i.continuationId!="string"||typeof i.expiresAt!="string"||typeof i.resultToken!="string"||typeof i.discussionId!="number"||Date.parse(i.expiresAt)<=Date.now()?(sessionStorage.removeItem(n),null):i}catch{return sessionStorage.removeItem(n),null}},im=(e,t,n)=>{const r=$n(e,t);r&&sessionStorage.setItem(sr(e,t),JSON.stringify({...r,submissionId:n,resultAccepted:!0}))},am=(e,t,n)=>{const r=$n(e,t);r&&sessionStorage.setItem(sr(e,t),JSON.stringify({...r,submissionId:n,resultAccepted:!1}))},Js=(e,t)=>sessionStorage.removeItem(sr(e,t)),Cc=(e,t)=>({"Content-Type":"application/json",[Q.INTERACTIVE_WIDGET_RESULT_TOKEN_HEADER]:e,...t?{Authorization:`Bearer ${t}`}:{}}),sm=(e,t)=>e?.submitInteractionResult?e.submitInteractionResult(t):fetch(`${t.apiUrl}/ai/client-interactions/${encodeURIComponent(t.appToken)}/${encodeURIComponent(t.continuationId)}/result`,{method:"POST",headers:Cc(t.resultToken,t.authorizationToken),body:JSON.stringify({discussionId:t.discussionId,submissionId:t.submissionId,result:t.result}),signal:t.signal}),om=(e,t)=>e?.resumeInteraction?e.resumeInteraction(t):fetch(`${t.apiUrl}/ai/client-interactions/${encodeURIComponent(t.appToken)}/${encodeURIComponent(t.continuationId)}/resume`,{method:"POST",headers:Cc(t.resultToken,t.authorizationToken),body:JSON.stringify({discussionId:t.discussionId}),signal:t.signal}),um=e=>({status:"submitted",actionId:e.actionId,data:e.data??{}}),cm=e=>{const{appToken:t,agentId:n}=e,r=ar(),i=qr(),a=o0(),s=S.useContext(Tc),{appCurrentLang:o}=S.useContext(ac),{companySettings:u}=S.useContext(Ot),c=Va({appToken:t,agentId:n}),d=hc({appToken:t,agentId:n}),f=S.useRef(null),m=S.useRef(s),h=S.useRef(new Set),y=S.useRef(null),g=S.useRef(null),w=S.useRef(new Set),I=S.useRef(new Set),v=S.useRef(null),N=S.useRef(null),P=S.useRef(null);P.current||(P.current=new nm(r));const A=P.current,[p,L]=S.useState(0);(!f.current||m.current!==s)&&(m.current=s,f.current=new l0(s)),S.useEffect(()=>{const X=f.current;if(!(!X||!s))return X.getToken({interactive:!1}).catch(()=>X.clear()),s.subscribe?.(()=>{X.handleIdentityChanged(),L(be=>be+1),X.getToken({interactive:!1}).catch(()=>X.clear())})},[s]);const{genericErrorTranslation:B,tooManyRequestsTranslation:Y,discussionFullErrorTranslation:k,customerSupportConnectingTranslation:j,customerSupportConnectedTranslation:$,customerSupportConnectionErrorTranslation:V,customerSupportProviderUnavailableTranslation:z,customerSupportClosedTranslation:Z}=$a(),{defaultStartingStep:fe}=Wa(),{currentConversation:re,setCurrentConversation:ke,addEmptyMessageToCurrentConversation:ve,addMessageToCurrentConversation:E,removeEmptyAssistantMessageFromCurrentConversation:G,resetConversation:ie,setCurrentConversationId:x,updateCurrentConversationMessageById:ee,updateInteractiveWidget:te,chatboxBootState:K,resetConversationRequestId:ae}=Qr(),[se,oe]=S.useState("notLoading"),[ce,Ne]=S.useState(null),[q,Re]=S.useState(fe),[We,Ke]=S.useState(null),[et,Je]=S.useState(!1),{chatTransportMode:je,isCustomerSupportMode:ot,customerSupportStatusMessage:yt,isCustomerSupportInputDisabled:Te,enterCustomerSupportMode:De,flushPendingCustomerSupportHandoff:Ae,sendToCustomerSupport:U,fallbackContactCaptureConfig:R,fallbackContactCaptureStatus:M,shouldDisplayFallbackContactCapture:J,submitFallbackContactCapture:ue,closedHoursContactCaptureConfig:xe,closedHoursBusinessHours:he,closedHoursContactCaptureStatus:Pe,shouldDisplayClosedHoursContactCapture:tt,submitClosedHoursContactCapture:ft}=em({appToken:t,conversationStorageKey:d,currentConversation:re,loadingStatus:se,labels:{connecting:j,connected:$,connectionError:V,providerUnavailable:z,closed:Z},logger:r,setCurrentConversationId:x,setLoadingStatus:oe,addMessageToCurrentConversation:E,chatboxBootState:K,resetConversationRequestId:ae}),Ze=S.useRef(null);Ze.current||(Ze.current=new L0({addEmptyMessage:ve,updateMessage:ee,onAssistantMessageStart:()=>oe("loadingDisplayedAnswer")}));const Ge=Ze.current,we=X=>{A.finish(X)&&(oe("notLoading"),Re(fe),Ke(null))},He=()=>{const X=A.start();return X?(oe("loadingIntermediaryStates"),X):null},_t=()=>{A.cancel("Cancelling stream on purpose.")&&(r.log("Stream request aborted"),oe("notLoading"),Re(fe),Ke(null),G())};S.useEffect(()=>{if(ot){Je(!1);return}const X=u?.api?.settings?.maxAiResponsesPerDiscussion;Je(w0(re,X))},[u?.api?.settings?.maxAiResponsesPerDiscussion,re.completedAiResponseCount,re.discussionId,ot]);const Cs=S.useRef(ae);S.useEffect(()=>{Cs.current!==ae&&(Cs.current=ae,A.cancel("Conversation reset."),oe("notLoading"),Re(fe),Ke(null),Je(!1))},[fe,ae]),S.useEffect(()=>(N.current&&(clearTimeout(N.current),N.current=null),()=>{N.current=setTimeout(()=>{A.cancel("Widget runtime unmounted."),N.current=null},0)}),[A]);const di=(X,be)=>{for(const me of X)if(Mt.isObjectOutputstreamMessageStartDTO(me))Ge.handleStart(me);else if(Mt.isObjectOutputstreamMessageDeltaDTO(me))Ge.handleDelta(me);else if(Mt.isObjectOutputstreamMessageEndDTO(me))Ge.handleEnd(me);else if(Mt.isObjectOutputstreamLoadingCurrentStepNumberDTO(me))Ke(me.content);else if(Mt.isObjectOutputstreamLoadingCurrentStepNameDTO(me))Re(me.content);else if(Mt.isObjectOutputstreamLoadingNumberOfStepsDTO(me))Ne(me.content);else if(Mt.isObjectOutputstreamClientEventDTO(me)){const pe=I0(me);if(pe.type==="ai_response_completed")ke(de=>A0(de,pe.payload,be));else if(pe.type==="customer_support_handoff_requested")De(pe.payload);else if(pe.type==="identity_gate_required"){if(h.current.has(pe.payload.gateId))continue;h.current.add(pe.payload.gateId);const de=f.current;if(!de)continue;pe.payload.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V2&&(Number.isSafeInteger(be)&&be>0?m0(c,pe.payload.continuation,be):r.warn("Identity continuation ignored without a valid discussion id"),y.current=pe.payload.continuation.continuationId),d0({apiUrl:i,appToken:t,payload:pe.payload,identitySession:de}).then(()=>{pe.payload.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V2&&Xs(c)}).catch(ze=>r.error(ze)).finally(()=>{pe.payload.protocolVersion===Q.IDENTITY_GATE_PROTOCOL_V2&&y.current===pe.payload.continuation.continuationId&&(y.current=null)})}else if(pe.type==="interactive_widget_requested"){if(re.items.some(de=>de.metaData?.interactiveWidget?.instanceId===pe.payload.instanceId))continue;pe.payload.responsePolicy.mode==="resume_turn"&&Number.isSafeInteger(be)&&be>0&&rm(c,pe.payload,be),E({userType:"assistant",temporaryId:`interactive-widget:${pe.payload.instanceId}`,metaData:{interactiveWidget:{protocolVersion:pe.payload.protocolVersion,instanceId:pe.payload.instanceId,widgetType:pe.payload.widgetType,presentation:pe.payload.payload,responseMode:pe.payload.responsePolicy.mode,state:"active"}}})}else r.warn(`Client event not handled - ${me.event}`)}else Mt.isObjectOutputstreamErrorDTO(me)?E({userType:"assistant",metaData:{isErrorMessage:!0},content:me.message,temporaryId:crypto.randomUUID()}):r.warn(`Packet shape not handled - ${me}`)},fi=async(X,be)=>{const me=Number.parseInt(X.headers.get("discussionId")??"",10);if(Number.isNaN(me)||x(me),!X.ok){if(!A.isCurrent(be))return;let ze=B;const xt=await X.json().catch(()=>null);X.status===409&&v0(xt)?(ze=k,Je(!0)):X.status===429&&(ze=Y),E({userType:"assistant",content:ze,metaData:{isErrorMessage:!0},temporaryId:crypto.randomUUID()}),we(be);return}const pe=X.body?.getReader();if(!pe){we(be);return}const de=new TextDecoder;for(;A.isCurrent(be);){const{done:ze,value:xt}=await pe.read();if(!A.isCurrent(be))break;if(xt&&di(be.decoder.transformNDJSONChunkIntoObjects(de.decode(xt,{stream:!0})),me),ze){di(be.decoder.transformNDJSONChunkIntoObjects(de.decode()),me),di(be.decoder.flushPending(),me),Ae(),we(be);return}}await pe.cancel().catch(()=>{})};v.current=fi,S.useEffect(()=>{if(!s||A.hasActiveStream())return;const X=p0(c);if(!X){g.current=null;return}if(g.current===X.continuationId||y.current===X.continuationId)return;const be=f.current;if(!be)return;const me=He();me&&(g.current=X.continuationId,g0({apiUrl:i,appToken:t,discussionId:X.discussionId,continuation:X,identitySession:be}).then(async pe=>{if(!pe){g.current=null,we(me);return}pe.status===401&&be.clear(),b0(pe.status)&&Xs(c),await v.current?.(pe,me)}).catch(pe=>{r.error(pe),we(me)}))},[i,t,s,p,r,c]),S.useEffect(()=>{if(A.hasActiveStream())return;re.items.map(de=>de.metaData?.interactiveWidget).filter(de=>de?.responseMode==="resume_turn"&&de.state==="active").forEach(de=>{!de||I.current.has(de.instanceId)||(I.current.add(de.instanceId),$n(c,de.instanceId)||te(de.instanceId,ze=>({...ze,state:"unavailable"})))});const X=re.items.map(de=>de.metaData?.interactiveWidget).find(de=>de?.responseMode==="resume_turn"&&(de.state==="submitting"||de.state==="submitted")&&!w.current.has(de.instanceId));if(!X)return;const be=$n(c,X.instanceId);if(!be?.submissionId)return;const me=He();if(!me)return;w.current.add(X.instanceId),(async()=>{const de=a?void 0:await f.current?.getToken({interactive:!1}).catch(()=>null);return om(a,{apiUrl:i,appToken:t,continuationId:be.continuationId,discussionId:be.discussionId,resultToken:be.resultToken,authorizationToken:de??void 0,signal:me.controller.signal})})().then(async de=>{de.ok||te(X.instanceId,ze=>({...ze,state:"unavailable"})),await v.current?.(de,me),de.ok&&Js(c,X.instanceId)}).catch(de=>{r.error(de),w.current.delete(X.instanceId),we(me)})},[i,t,re.items,r,a,A,te,c]);const Vd=(X,be,me)=>{const pe=n?`?agentId=${encodeURIComponent(String(n))}`:"",de=`${i}/ai/prompt/${t}${pe}`,ze=Ks(a),xt={...s?{[Q.IDENTITY_GATE_VERSION_HEADER]:String(Q.IDENTITY_GATE_PROTOCOL_V2)}:{},...ze?{[Q.INTERACTIVE_WIDGET_VERSION_HEADER]:String(ze)}:{},...be?{Authorization:`Bearer ${be}`}:{}};if(X.mode==="text"){const mi={query:X.text,language:o.locale};return re.discussionId&&(mi.discussionId=re.discussionId),{url:de,fetchConfig:un.getFetchConfig({httpVerb:"POST",body:mi,contentType:"application/json",options:{signal:me,headers:{...un.getHeaders({contentType:"application/json"}),...xt}}})}}const Qt=new FormData;return Qt.append("language",o.locale),re.discussionId&&Qt.append("discussionId",String(re.discussionId)),Qt.append("audioInput",X.audioFile,X.audioFile.name),{url:de,fetchConfig:{method:"POST",body:Qt,signal:me,headers:xt}}},Is=X=>{const be=He();return be?((async()=>{let me=null;if(!a)try{me=await f.current?.getToken({interactive:!1})??null}catch{f.current?.clear()}const pe=X.mode==="audio"?{mode:"audio"}:{mode:"text",request:{apiUrl:i,appToken:t,agentId:n,query:X.text,language:o.locale,discussionId:re.discussionId,interactiveWidgetProtocolVersion:Ks(a),signal:be.controller.signal}};try{const de=await tm({runtimeAdapter:a,prompt:pe,sendStandardPrompt:()=>{const{url:ze,fetchConfig:xt}=Vd(X,me,be.controller.signal);return fetch(ze,xt)}});de.status===401&&me&&f.current?.clear(),await fi(de,be),de.ok&&!be.controller.signal.aborted&&await a?.onAssistantResponseCompleted?.(de)}catch(de){be.controller.signal.aborted||r.error(de),we(be)}})(),!0):!1},hi=!ot&&(se!=="notLoading"||et||re.items.some(X=>X.metaData?.interactiveWidget?.state==="active"||X.metaData?.interactiveWidget?.state==="submitting"))||ot&&(se!=="notLoading"||Te);return{appToken:t,agentId:n,loadingStatus:se,numberOfSteps:ce,currentStepName:q,currentStepNumber:We,isAtMaxMessages:et,isCustomerSupportMode:ot,customerSupportStatusMessage:yt,fallbackContactCaptureConfig:R,fallbackContactCaptureStatus:M,shouldDisplayFallbackContactCapture:J,submitFallbackContactCapture:ue,closedHoursContactCaptureConfig:xe,closedHoursBusinessHours:he,closedHoursContactCaptureStatus:Pe,shouldDisplayClosedHoursContactCapture:tt,submitClosedHoursContactCapture:ft,isTextareaDisabled:hi,cancelRequest:_t,submitTextMessage:X=>{if(!X.trim()||hi)return!1;if(k0(X)){const be=N0(X,re.discussionId,ie);return be?(E({userType:"user",content:be,temporaryId:crypto.randomUUID()}),!0):!1}return je!=="customer_support"&&A.hasActiveStream()?!1:(E({userType:"user",content:X,temporaryId:crypto.randomUUID()}),je==="customer_support"?(U(X),!0):Is({mode:"text",text:X}))},submitAudio:X=>hi||A.hasActiveStream()?!1:Is({mode:"audio",audioFile:X}),submitInteractiveWidget:X=>{const me=re.items.find(Ye=>Ye.metaData?.interactiveWidget?.instanceId===X.instanceId)?.metaData?.interactiveWidget;if(!me||me.state!=="active"||A.hasActiveStream())return!1;if(me.responseMode==="none"||me.responseMode==="local_preview")return te(X.instanceId,Ye=>({...Ye,state:X.cancel?"cancelled":"submitted",selectedActionId:X.actionId})),!0;const pe=$n(c,X.instanceId);if(!pe)return te(X.instanceId,Ye=>({...Ye,state:"unavailable"})),!1;const de=He();if(!de)return!1;const ze=crypto.randomUUID();am(c,X.instanceId,ze),te(X.instanceId,Ye=>({...Ye,state:"submitting",selectedActionId:X.actionId}));const xt=X.cancel?{status:"cancelled"}:um(X),Qt=async()=>{const Ye=a?void 0:await f.current?.getToken({interactive:!1}).catch(()=>null);return sm(a,{apiUrl:i,appToken:t,continuationId:pe.continuationId,discussionId:pe.discussionId,submissionId:ze,result:xt,resultToken:pe.resultToken,authorizationToken:Ye??void 0,signal:de.controller.signal})};return(async()=>{try{return await Qt()}catch(Ye){if(de.controller.signal.aborted)throw Ye;return Qt()}})().then(async Ye=>{Ye.ok?(im(c,X.instanceId,ze),te(X.instanceId,Pn=>({...Pn,state:X.cancel?"cancelled":"submitted"}))):te(X.instanceId,Pn=>({...Pn,state:Ye.status===409?"active":"unavailable"})),await fi(Ye,de),Ye.ok&&Js(c,X.instanceId)}).catch(Ye=>{r.error(Ye),te(X.instanceId,Pn=>({...Pn,state:"submitting"})),we(de)}),!0}}},Ic=S.createContext(null),lm=({appToken:e,agentId:t,children:n})=>{const r=cm({appToken:e,agentId:t});return b.jsx(Ic.Provider,{value:r,children:n})},Ac=()=>{const e=S.useContext(Ic);if(!e)throw new Error("useChatRuntime must be used within ChatRuntimeProvider");return e},wc=S.createContext(null),dm=wc.Provider,fm=()=>{const e=S.useContext(wc);if(!e)throw new Error("useWidgetRuntimeStatus must be used within WidgetRuntime");return e},hm=({children:e,appToken:t,agentId:n,logger:r,identityProvider:i,runtimeAdapter:a})=>{const s=navigator.language;r.log("Brower language",s);const o=Rh(s,r),{appCurrentLang:u,handleSetContextCurrentLang:c}=xh(Yr,o),d={appCurrentLang:u,setAppCurrentLang:c},[f,m]=S.useState(!1),h=S.useCallback(()=>m(!0),[]),{contextCompanySettings:y,contextInitialConversationState:g}=Xh({agentId:n,appToken:t,onFetched:h,runtimeAdapter:a});return S.useEffect(()=>{n0(y.companySettings,r)},[y.companySettings,r]),b.jsx(yc.Provider,{value:a,children:b.jsx(Tc.Provider,{value:i,children:b.jsx(gh,{locale:u?.locale,messages:u?.translatedText,children:b.jsx(ac.Provider,{value:d,children:b.jsx(Ot.Provider,{value:y,children:b.jsx(sc.Provider,{value:g,children:b.jsx(dm,{value:{hasFetchedSettings:f},children:b.jsx(lm,{appToken:t,agentId:n,children:e})})})})})})})})};function vc({appToken:e,agentId:t,shouldDisplayLogs:n,apiUrl:r,identityProvider:i,runtimeAdapter:a,children:s}){const o=S.useMemo(()=>kh(n),[n]),u=Va({appToken:e,agentId:t});return S.useEffect(()=>{e.trim()||o.error("App Token missing")},[e,o]),b.jsx(Lh,{apiUrl:r,children:b.jsx(dc.Provider,{value:o,children:b.jsx(hm,{appToken:e,agentId:t,logger:o,identityProvider:i,runtimeAdapter:a,children:s},u)})})}const kc=e=>Xe.createElement("svg",{fill:"#000000",height:"800px",width:"800px",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 330 330",xmlSpace:"preserve",...e},Xe.createElement("path",{id:"XMLID_102_",d:"M325.607,79.393c-5.857-5.857-15.355-5.858-21.213,0.001l-139.39,139.393L25.607,79.393 c-5.857-5.857-15.355-5.858-21.213,0.001c-5.858,5.858-5.858,15.355,0,21.213l150.004,150c2.813,2.813,6.628,4.393,10.606,4.393 s7.794-1.581,10.606-4.394l149.996-150C331.465,94.749,331.465,85.251,325.607,79.393z"})),mm=({src:e})=>{const[t,n]=S.useState(null);return S.useEffect(()=>{let r=!1;return pc(e).then(({blobUrl:i})=>{n(i)}).catch(()=>n(null)),()=>{t&&!r&&(URL.revokeObjectURL(t),r=!0)}},[e]),b.jsx("img",{src:t??e,decoding:"async",loading:"eager"})};function pm(e){return!!e&&typeof e=="object"&&"blob"in e&&e.blob instanceof Blob}function gm({src:e,autoplay:t=!0,loop:n=!0,className:r,style:i,placeholder:a,fallback:s,onLoaded:o,onError:u}){const[c,d]=S.useState({kind:"loading"});return S.useEffect(()=>{let f=null,m=!1;return d({kind:"loading"}),gc(e).then(async h=>{if(!m)if(h.kind==="zip"){const y=pm(h)?h.blob:await(await fetch(h.blobUrl)).blob();f=URL.createObjectURL(y),d({kind:"lottieZip",blobUrl:f}),o?.(f)}else d({kind:"json",data:h.data}),o?.(h.data)}).catch(h=>!m&&(d({kind:"error",err:h}),u?.(h))),()=>{m=!0,f&&URL.revokeObjectURL(f)}},[e]),c.kind==="loading"?b.jsx("div",{className:"flex items-center justify-center rounded-xl border border-dashed p-6 text-sm opacity-70 "+(r??""),style:{minHeight:96,...i},children:a??"Loading animation…"}):c.kind==="error"?b.jsx("div",{className:"flex items-center justify-center rounded-xl border p-6 text-sm text-red-600 "+(r??""),style:{minHeight:96,...i},children:s??"Failed to load animation"}):c.kind==="json"?b.jsx(zd,{animationData:c.data,loop:n,autoplay:t,className:r,style:i,rendererSettings:{preserveAspectRatio:"xMidYMid meet"}}):b.jsx($d.DotLottieReact,{src:c.blobUrl,loop:n,autoplay:t,className:r,style:i})}async function bm(e,t={}){const{minPeriod:n=8,maxPeriod:r=Math.floor(Math.min(e.width,e.height)/2),gutterSearchRadius:i=3,debug:a=!1}=t,s=Ft();if(e.width<n*2||e.height<n*2)return a&&s.warn("detectGrid: image too small"),null;const o=document.createElement("canvas");o.width=e.naturalWidth,o.height=e.naturalHeight;const u=o.getContext("2d");if(!u)return null;u.drawImage(e,0,0);const{data:c}=u.getImageData(0,0,o.width,o.height),d=o.width,f=o.height,m=new Uint8ClampedArray(d*f);for(let j=0;j<f;j++){const $=j*d;for(let V=0;V<d;V++){const z=($+V)*4;m[$+V]=.299*c[z]+.587*c[z+1]+.114*c[z+2]|0}}const h=new Float32Array(d),y=new Float32Array(f);for(let j=1;j<d-1;j++){let $=0;for(let V=0;V<f;V++){const z=V*d+j,Z=m[z+1]-m[z-1];$+=Math.abs(Z)}h[j]=$}for(let j=1;j<f-1;j++){let $=0;for(let V=0;V<d;V++){const z=j*d+V,Z=m[z+d]-m[z-d];$+=Math.abs(Z)}y[j]=$}const g=Zs(h,n,Math.min(r,d/2)),w=Zs(y,n,Math.min(r,f/2));if(!g||!w)return a&&s.warn("detectGrid: could not find periods"),null;const I=Math.max(1,Math.round(d/g)),v=Math.max(1,Math.round(f/w)),N=eo(h,g,I,i),P=eo(y,w,v,i),A=Math.max(1,g-N),p=Math.max(1,w-P);if(A*I>d+2||p*v>f+2)return a&&s.warn("detectGrid: sanity check failed"),null;const L=fa(h,60),B=fa(y,60),Y=Math.max(0,to(h,L)),k=Math.max(0,to(y,B));return a&&s.log({periodX:g,periodY:w,columns:I,rows:v,gutterX:N,gutterY:P,frameWidth:A,frameHeight:p,originX:Y,originY:k}),{columns:I,rows:v,frameWidth:A,frameHeight:p,gutterX:N,gutterY:P,originX:Y,originY:k}}function Zs(e,t,n){const r=Nc(e);let i=0;for(let h=0;h<e.length;h++){const y=e[h]-r;i+=y*y}if(i===0)return null;const a=new Float32Array(n+1);let s=0,o=-1/0;for(let h=t;h<=n;h++){let y=0;for(let w=0;w+h<e.length;w++)y+=(e[w]-r)*(e[w+h]-r);const g=y/i;a[h]=g,g>o&&(o=g,s=h)}if(s<=t||s>=n)return s||null;const u=a[s-1],c=a[s],d=a[s+1],f=u-2*c+d,m=f===0?0:.5*(u-d)/f;return s+m}function eo(e,t,n,r){const i=[];for(let o=1;o<n;o++){const u=o*t;let c=1/0,d=u;for(let f=-r;f<=r;f++){const m=u+f;if(m<=0||m>=e.length)continue;const h=e[m];h<c&&(c=h,d=m)}i.push(d)}if(i.length<1)return 0;const a=[];for(const o of i){const u=e[o]*1.5+fa(e,10)*.5;let c=o,d=o;for(;c>1&&e[c-1]<=u;)c--;for(;d<e.length-2&&e[d+1]<=u;)d++;a.push(Math.max(0,d-c+1))}const s=Math.round(Nc(a));return Math.max(0,Math.min(s,Math.floor(t/4)))}function Nc(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}function fa(e,t){const n=Array.from(e);n.sort((i,a)=>i-a);const r=Math.max(0,Math.min(n.length-1,Math.floor(t/100*n.length)));return n[r]}function to(e,t){for(let n=0;n<e.length;n++)if(e[n]>t)return n;return 0}function Em(e,t,n,r,i){const{data:a}=e.getImageData(t,n,r,i);let s=0;for(let o=3;o<a.length;o+=4)s+=a[o];return s/(255*(a.length/4))<.03}const Tm=S.forwardRef(function({src:t,frameWidth:n,frameHeight:r,columns:i,rows:a,gutterX:s=0,gutterY:o=0,frameCount:u,atlasFrames:c,fps:d=12,autoplay:f=!0,loop:m=!0,startFrame:h=0,direction:y="forward",scale:g=1,backgroundColor:w,className:I,style:v,pauseWhenHidden:N=!1,originX:P,originY:A,onLoad:p,onEnd:L,onFrame:B},Y){const k=ar(),j=S.useRef(null),$=S.useRef(null),[V,z]=S.useState(null),[Z,fe]=S.useState(null),[re,ke]=S.useState(null),[ve,E]=S.useState(!1),[G,ie]=S.useState(!!f),[x,ee]=S.useState(h),te=S.useRef(1),[K,ae]=S.useState(null),se=Math.max(1,Math.floor(typeof window<"u"&&window.devicePixelRatio||1));S.useEffect(()=>{let Te=!1;return E(!1),bc(t).then(({imgEl:De,bitmap:Ae})=>{Te||(z(De),fe(Ae),ke({w:De.naturalWidth,h:De.naturalHeight}),E(!0),p?.())}).catch(()=>{}),()=>{Te=!0}},[t,p]),S.useEffect(()=>{let Te=!1;return(async()=>{if(!V)return;if(c&&c.length){ae(null);return}if(!(!n||!r||!i||!a)){ae(null);return}const Ae=await bm(V,{debug:!0});Te||(Ae?ae({frameWidth:Ae.frameWidth,frameHeight:Ae.frameHeight,columns:Ae.columns,rows:Ae.rows,gutterX:Ae.gutterX,gutterY:Ae.gutterY}):(ae(null),k.warn("RemoteSpritesheet: auto-detect failed; please provide grid props.")))})(),()=>{Te=!0}},[V,c,n,r,i,a,k]);const oe=K?.frameWidth??n,ce=K?.frameHeight??r,Ne=K?.columns??i,q=K?.rows??a,Re=K?.gutterX??s,We=K?.gutterY??o,Ke=K?.originX??P??0,et=K?.originY??A??0,Je=S.useMemo(()=>{if(c&&c.length>0)return{cols:0,rows:0};if(!re||!oe||!ce)return{cols:0,rows:0};const Te=Ne??Math.floor((re.w+Re)/(oe+Re)),De=q??Math.floor((re.h+We)/(ce+We));return{cols:Math.max(0,Te),rows:Math.max(0,De)}},[c,re,oe,ce,Ne,q,Re,We]),je=S.useMemo(()=>{if(c?.length)return c;if(!oe||!ce)return[];const{cols:Te,rows:De}=Je;if(!Te||!De)return[];const Ae=Math.min(u??Te*De,Te*De),U=[];for(let R=0;R<Ae;R++){const M=R%Te,J=Math.floor(R/Te),ue=Ke+M*(oe+Re),xe=et+J*(ce+We);U.push({x:ue,y:xe,w:oe,h:ce})}if(V&&U.length){const R=document.createElement("canvas");R.width=V.naturalWidth,R.height=V.naturalHeight;const M=R.getContext("2d");if(M){M.drawImage(V,0,0);let J=U.length;for(;J>0&&Em(M,U[J-1].x,U[J-1].y,U[J-1].w,U[J-1].h);)J--;return U.slice(0,J)}}return U},[c,Je,u,oe,ce,Re,We,V,Ke,et]),ot=()=>{const Te=j.current;if(!Te||je.length===0)return;const De=je[Math.max(0,Math.min(x,je.length-1))],Ae=Math.max(1,Math.round(De.w*g)),U=Math.max(1,Math.round(De.h*g));Te.style.width=Ae+"px",Te.style.height=U+"px",Te.width=Ae*se,Te.height=U*se};S.useEffect(()=>{ot()},[ve,g,je.length,se,x]);const yt=Te=>{const De=Z??V??null,Ae=j.current;if(!Ae||!De||je.length===0)return;const U=Ae.getContext("2d");if(!U)return;U.save(),U.setTransform(1,0,0,1,0,0),U.clearRect(0,0,Ae.width,Ae.height),w&&(U.fillStyle=w,U.fillRect(0,0,Ae.width,Ae.height));const R=je[Te];U.scale(se,se),U.drawImage(De,R.x,R.y,R.w,R.h,0,0,Math.round(R.w*g),Math.round(R.h*g)),U.restore()};return S.useEffect(()=>{if(!ve||je.length===0)return;let Te=performance.now();const De=1e3/Math.max(1,Math.min(120,d)),Ae=U=>{if($.current=requestAnimationFrame(Ae),!G){yt(x);return}const R=U-Te;if(R<De){yt(x);return}Te=U-R%De,ee(M=>{const J=je.length-1;let ue=M;return y==="forward"?ue=M+1:y==="backward"?ue=M-1:((M>=J&&te.current===1||M<=0&&te.current===-1)&&(te.current*=-1),ue=M+te.current),(ue>J||ue<0)&&(m?ue=y==="backward"?J:0:(ue=Math.max(0,Math.min(ue,J)),ie(!1),L?.())),ue})};return $.current=requestAnimationFrame(Ae),()=>{$.current&&cancelAnimationFrame($.current)}},[ve,d,G,m,y,je.length,x]),S.useEffect(()=>{yt(x),B?.(x)},[x,ve,g,se]),S.useEffect(()=>{if(!N)return;const Te=()=>{document.hidden&&ie(!1)};return document.addEventListener("visibilitychange",Te),()=>document.removeEventListener("visibilitychange",Te)},[N]),S.useImperativeHandle(Y,()=>({play:()=>ie(!0),pause:()=>ie(!1),toggle:()=>ie(Te=>!Te),gotoFrame:Te=>ee(()=>Math.max(0,Math.min(Te,Math.max(0,je.length-1)))),isPlaying:()=>G,currentFrame:()=>x}),[G,x,je.length]),b.jsx("div",{className:I,style:v,children:b.jsx("canvas",{ref:j,"aria-label":"spritesheet animation"})})});function ym({url:e,className:t}){const[n,r]=S.useState(""),[i,a]=S.useState(null);return S.useEffect(()=>{let s=!1;return mc(e).then(({sanitized:o})=>{s||(r(o),a(null))}).catch(o=>!s&&a(o.message??"Failed to load")),()=>{s=!0}},[e]),i?b.jsxs("div",{className:t,role:"alert",children:["Couldn’t load SVG: ",i]}):n?b.jsx("div",{className:t,dangerouslySetInnerHTML:{__html:n}}):b.jsx("div",{className:t})}function _m({mobile:e=.6,tablet:t=.8,desktop:n=1}){const[r,i]=S.useState(n);return S.useEffect(()=>{if(typeof window>"u")return;const a=[{mq:window.matchMedia("(max-width: 639px)"),value:e},{mq:window.matchMedia("(min-width: 640px) and (max-width: 1023px)"),value:t},{mq:window.matchMedia("(min-width: 1024px)"),value:n}],s=()=>{for(const{mq:o,value:u}of a)if(o.matches){i(u);break}};return a.forEach(({mq:o})=>o.addEventListener("change",s)),s(),()=>{a.forEach(({mq:o})=>o.removeEventListener("change",s))}},[e,t,n]),r}const Xa=({facet:e})=>{const t=ar(),{mode:n,assetUrl:r,spr_columns:i,spr_fps:a,spr_frameCount:s,spr_frameHeight:o,spr_frameWidth:u,spr_gutterX:c,spr_gutterY:d,spr_rows:f,spr_originX:m,spr_originY:h,spr_scaleDesktop:y,spr_scaleMobile:g,spr_scaleTablet:w}=e,I=_m({mobile:g??.6,tablet:w??.8,desktop:y??1});return b.jsxs("div",{className:"assetContainer",children:[n===Q.AgentDisplayFacetModeType.LOTTIE&&b.jsx(gm,{src:r,autoplay:!0,onError:v=>t.error(v)}),n===Q.AgentDisplayFacetModeType.SVG&&b.jsx("div",{children:b.jsx(ym,{url:r})}),n===Q.AgentDisplayFacetModeType.IMAGE&&b.jsx(mm,{src:r}),n===Q.AgentDisplayFacetModeType.SPRITESHEET&&b.jsx(Tm,{src:r,frameCount:s,columns:i,rows:f,fps:a,frameHeight:o,frameWidth:u,gutterX:c,gutterY:d,originX:m,originY:h,scale:I,autoplay:!0})]})},xm=({launcherRef:e,isWidgetOpen:t,setIsWidgetOpen:n})=>{const{companySettings:r}=S.useContext(Ot);return b.jsxs("div",{ref:e,className:`launcher
|
|
37
37
|
fixed
|
|
38
38
|
z-[999999999]
|
|
39
39
|
transition
|
|
@@ -44,7 +44,7 @@ For more details see https://formatjs.io/docs/getting-started/message-distributi
|
|
|
44
44
|
flex
|
|
45
45
|
justify-center
|
|
46
46
|
items-center
|
|
47
|
-
`,onClick:()=>t(!e),children:[!e&&b.jsx(Xa,{facet:n.agent.display[Q.AgentDisplayFacetRoleType.LAUNCHER]}),e&&b.jsx(kc,{className:"w-6 h-6",fill:"white"})]})};function no(e){const t=[],n=String(e||"");let r=n.indexOf(","),i=0,a=!1;for(;!a;){r===-1&&(r=n.length,a=!0);const s=n.slice(i,r).trim();(s||!a)&&t.push(s),i=r+1,r=n.indexOf(",",i)}return t}function Rc(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const Sm=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Cm=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Im={};function ro(e,t){return(Im.jsx?Cm:Sm).test(e)}const Am=/[ \t\n\f\r]/g;function wm(e){return typeof e=="object"?e.type==="text"?io(e.value):!1:io(e)}function io(e){return e.replace(Am,"")===""}class or{constructor(t,n,r){this.property=t,this.normal=n,r&&(this.space=r)}}or.prototype.property={};or.prototype.normal={};or.prototype.space=null;function Oc(e,t){const n={},r={};let i=-1;for(;++i<e.length;)Object.assign(n,e[i].property),Object.assign(r,e[i].normal);return new or(n,r,t)}function Zn(e){return e.toLowerCase()}class Tt{constructor(t,n){this.property=t,this.attribute=n}}Tt.prototype.space=null;Tt.prototype.boolean=!1;Tt.prototype.booleanish=!1;Tt.prototype.overloadedBoolean=!1;Tt.prototype.number=!1;Tt.prototype.commaSeparated=!1;Tt.prototype.spaceSeparated=!1;Tt.prototype.commaOrSpaceSeparated=!1;Tt.prototype.mustUseProperty=!1;Tt.prototype.defined=!1;let vm=0;const Ee=fn(),$e=fn(),Lc=fn(),W=fn(),Be=fn(),xn=fn(),lt=fn();function fn(){return 2**++vm}const ha=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ee,booleanish:$e,commaOrSpaceSeparated:lt,commaSeparated:xn,number:W,overloadedBoolean:Lc,spaceSeparated:Be},Symbol.toStringTag,{value:"Module"})),Ii=Object.keys(ha);class Qa extends Tt{constructor(t,n,r,i){let a=-1;if(super(t,n),ao(this,"space",i),typeof r=="number")for(;++a<Ii.length;){const s=Ii[a];ao(this,Ii[a],(r&ha[s])===ha[s])}}}Qa.prototype.defined=!0;function ao(e,t,n){n&&(e[t]=n)}const km={}.hasOwnProperty;function kn(e){const t={},n={};let r;for(r in e.properties)if(km.call(e.properties,r)){const i=e.properties[r],a=new Qa(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[Zn(r)]=r,n[Zn(a.attribute)]=r}return new or(t,n,e.space)}const Dc=kn({space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),Pc=kn({space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function Mc(e,t){return t in e?e[t]:t}function Bc(e,t){return Mc(e,t.toLowerCase())}const Fc=kn({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:Bc,properties:{xmlns:null,xmlnsXLink:null}}),Uc=kn({transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:$e,ariaAutoComplete:null,ariaBusy:$e,ariaChecked:$e,ariaColCount:W,ariaColIndex:W,ariaColSpan:W,ariaControls:Be,ariaCurrent:null,ariaDescribedBy:Be,ariaDetails:null,ariaDisabled:$e,ariaDropEffect:Be,ariaErrorMessage:null,ariaExpanded:$e,ariaFlowTo:Be,ariaGrabbed:$e,ariaHasPopup:null,ariaHidden:$e,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Be,ariaLevel:W,ariaLive:null,ariaModal:$e,ariaMultiLine:$e,ariaMultiSelectable:$e,ariaOrientation:null,ariaOwns:Be,ariaPlaceholder:null,ariaPosInSet:W,ariaPressed:$e,ariaReadOnly:$e,ariaRelevant:null,ariaRequired:$e,ariaRoleDescription:Be,ariaRowCount:W,ariaRowIndex:W,ariaRowSpan:W,ariaSelected:$e,ariaSetSize:W,ariaSort:null,ariaValueMax:W,ariaValueMin:W,ariaValueNow:W,ariaValueText:null,role:null}}),Nm=kn({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:Bc,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:xn,acceptCharset:Be,accessKey:Be,action:null,allow:null,allowFullScreen:Ee,allowPaymentRequest:Ee,allowUserMedia:Ee,alt:null,as:null,async:Ee,autoCapitalize:null,autoComplete:Be,autoFocus:Ee,autoPlay:Ee,blocking:Be,capture:null,charSet:null,checked:Ee,cite:null,className:Be,cols:W,colSpan:null,content:null,contentEditable:$e,controls:Ee,controlsList:Be,coords:W|xn,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Ee,defer:Ee,dir:null,dirName:null,disabled:Ee,download:Lc,draggable:$e,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Ee,formTarget:null,headers:Be,height:W,hidden:Ee,high:W,href:null,hrefLang:null,htmlFor:Be,httpEquiv:Be,id:null,imageSizes:null,imageSrcSet:null,inert:Ee,inputMode:null,integrity:null,is:null,isMap:Ee,itemId:null,itemProp:Be,itemRef:Be,itemScope:Ee,itemType:Be,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Ee,low:W,manifest:null,max:null,maxLength:W,media:null,method:null,min:null,minLength:W,multiple:Ee,muted:Ee,name:null,nonce:null,noModule:Ee,noValidate:Ee,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Ee,optimum:W,pattern:null,ping:Be,placeholder:null,playsInline:Ee,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Ee,referrerPolicy:null,rel:Be,required:Ee,reversed:Ee,rows:W,rowSpan:W,sandbox:Be,scope:null,scoped:Ee,seamless:Ee,selected:Ee,shadowRootDelegatesFocus:Ee,shadowRootMode:null,shape:null,size:W,sizes:null,slot:null,span:W,spellCheck:$e,src:null,srcDoc:null,srcLang:null,srcSet:null,start:W,step:null,style:null,tabIndex:W,target:null,title:null,translate:null,type:null,typeMustMatch:Ee,useMap:null,value:$e,width:W,wrap:null,align:null,aLink:null,archive:Be,axis:null,background:null,bgColor:null,border:W,borderColor:null,bottomMargin:W,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Ee,declare:Ee,event:null,face:null,frame:null,frameBorder:null,hSpace:W,leftMargin:W,link:null,longDesc:null,lowSrc:null,marginHeight:W,marginWidth:W,noResize:Ee,noHref:Ee,noShade:Ee,noWrap:Ee,object:null,profile:null,prompt:null,rev:null,rightMargin:W,rules:null,scheme:null,scrolling:$e,standby:null,summary:null,text:null,topMargin:W,valueType:null,version:null,vAlign:null,vLink:null,vSpace:W,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Ee,disableRemotePlayback:Ee,prefix:null,property:null,results:W,security:null,unselectable:null}}),Rm=kn({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:Mc,properties:{about:lt,accentHeight:W,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:W,amplitude:W,arabicForm:null,ascent:W,attributeName:null,attributeType:null,azimuth:W,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:W,by:null,calcMode:null,capHeight:W,className:Be,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:W,diffuseConstant:W,direction:null,display:null,dur:null,divisor:W,dominantBaseline:null,download:Ee,dx:null,dy:null,edgeMode:null,editable:null,elevation:W,enableBackground:null,end:null,event:null,exponent:W,externalResourcesRequired:null,fill:null,fillOpacity:W,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:xn,g2:xn,glyphName:xn,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:W,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:W,horizOriginX:W,horizOriginY:W,id:null,ideographic:W,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:W,k:W,k1:W,k2:W,k3:W,k4:W,kernelMatrix:lt,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:W,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:W,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:W,overlineThickness:W,paintOrder:null,panose1:null,path:null,pathLength:W,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Be,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:W,pointsAtY:W,pointsAtZ:W,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:lt,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:lt,rev:lt,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:lt,requiredFeatures:lt,requiredFonts:lt,requiredFormats:lt,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:W,specularExponent:W,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:W,strikethroughThickness:W,string:null,stroke:null,strokeDashArray:lt,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:W,strokeOpacity:W,strokeWidth:null,style:null,surfaceScale:W,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:lt,tabIndex:W,tableValues:null,target:null,targetX:W,targetY:W,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:lt,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:W,underlineThickness:W,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:W,values:null,vAlphabetic:W,vMathematical:W,vectorEffect:null,vHanging:W,vIdeographic:W,version:null,vertAdvY:W,vertOriginX:W,vertOriginY:W,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:W,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),Om=/^data[-\w.:]+$/i,so=/-[a-z]/g,Lm=/[A-Z]/g;function Kr(e,t){const n=Zn(t);let r=t,i=Tt;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Om.test(t)){if(t.charAt(4)==="-"){const a=t.slice(5).replace(so,Pm);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=t.slice(4);if(!so.test(a)){let s=a.replace(Lm,Dm);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}i=Qa}return new i(r,t)}function Dm(e){return"-"+e.toLowerCase()}function Pm(e){return e.charAt(1).toUpperCase()}const Mm={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},ur=Oc([Pc,Dc,Fc,Uc,Nm],"html"),qt=Oc([Pc,Dc,Fc,Uc,Rm],"svg");function oo(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Hc(e){return e.join(" ").trim()}var pn={},Ai,uo;function Bm(){if(uo)return Ai;uo=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,o=/^\s+|\s+$/g,u=`
|
|
47
|
+
`,onClick:()=>n(!t),children:[!t&&b.jsx(Xa,{facet:r.agent.display[Q.AgentDisplayFacetRoleType.LAUNCHER]}),t&&b.jsx(kc,{className:"w-6 h-6",fill:"white"})]})};function no(e){const t=[],n=String(e||"");let r=n.indexOf(","),i=0,a=!1;for(;!a;){r===-1&&(r=n.length,a=!0);const s=n.slice(i,r).trim();(s||!a)&&t.push(s),i=r+1,r=n.indexOf(",",i)}return t}function Rc(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const Sm=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Cm=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Im={};function ro(e,t){return(Im.jsx?Cm:Sm).test(e)}const Am=/[ \t\n\f\r]/g;function wm(e){return typeof e=="object"?e.type==="text"?io(e.value):!1:io(e)}function io(e){return e.replace(Am,"")===""}class or{constructor(t,n,r){this.property=t,this.normal=n,r&&(this.space=r)}}or.prototype.property={};or.prototype.normal={};or.prototype.space=null;function Oc(e,t){const n={},r={};let i=-1;for(;++i<e.length;)Object.assign(n,e[i].property),Object.assign(r,e[i].normal);return new or(n,r,t)}function Zn(e){return e.toLowerCase()}class Tt{constructor(t,n){this.property=t,this.attribute=n}}Tt.prototype.space=null;Tt.prototype.boolean=!1;Tt.prototype.booleanish=!1;Tt.prototype.overloadedBoolean=!1;Tt.prototype.number=!1;Tt.prototype.commaSeparated=!1;Tt.prototype.spaceSeparated=!1;Tt.prototype.commaOrSpaceSeparated=!1;Tt.prototype.mustUseProperty=!1;Tt.prototype.defined=!1;let vm=0;const Ee=fn(),$e=fn(),Lc=fn(),W=fn(),Be=fn(),xn=fn(),lt=fn();function fn(){return 2**++vm}const ha=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ee,booleanish:$e,commaOrSpaceSeparated:lt,commaSeparated:xn,number:W,overloadedBoolean:Lc,spaceSeparated:Be},Symbol.toStringTag,{value:"Module"})),Ii=Object.keys(ha);class Qa extends Tt{constructor(t,n,r,i){let a=-1;if(super(t,n),ao(this,"space",i),typeof r=="number")for(;++a<Ii.length;){const s=Ii[a];ao(this,Ii[a],(r&ha[s])===ha[s])}}}Qa.prototype.defined=!0;function ao(e,t,n){n&&(e[t]=n)}const km={}.hasOwnProperty;function kn(e){const t={},n={};let r;for(r in e.properties)if(km.call(e.properties,r)){const i=e.properties[r],a=new Qa(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[Zn(r)]=r,n[Zn(a.attribute)]=r}return new or(t,n,e.space)}const Dc=kn({space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()},properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),Pc=kn({space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()},properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function Mc(e,t){return t in e?e[t]:t}function Bc(e,t){return Mc(e,t.toLowerCase())}const Fc=kn({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:Bc,properties:{xmlns:null,xmlnsXLink:null}}),Uc=kn({transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:$e,ariaAutoComplete:null,ariaBusy:$e,ariaChecked:$e,ariaColCount:W,ariaColIndex:W,ariaColSpan:W,ariaControls:Be,ariaCurrent:null,ariaDescribedBy:Be,ariaDetails:null,ariaDisabled:$e,ariaDropEffect:Be,ariaErrorMessage:null,ariaExpanded:$e,ariaFlowTo:Be,ariaGrabbed:$e,ariaHasPopup:null,ariaHidden:$e,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Be,ariaLevel:W,ariaLive:null,ariaModal:$e,ariaMultiLine:$e,ariaMultiSelectable:$e,ariaOrientation:null,ariaOwns:Be,ariaPlaceholder:null,ariaPosInSet:W,ariaPressed:$e,ariaReadOnly:$e,ariaRelevant:null,ariaRequired:$e,ariaRoleDescription:Be,ariaRowCount:W,ariaRowIndex:W,ariaRowSpan:W,ariaSelected:$e,ariaSetSize:W,ariaSort:null,ariaValueMax:W,ariaValueMin:W,ariaValueNow:W,ariaValueText:null,role:null}}),Nm=kn({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:Bc,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:xn,acceptCharset:Be,accessKey:Be,action:null,allow:null,allowFullScreen:Ee,allowPaymentRequest:Ee,allowUserMedia:Ee,alt:null,as:null,async:Ee,autoCapitalize:null,autoComplete:Be,autoFocus:Ee,autoPlay:Ee,blocking:Be,capture:null,charSet:null,checked:Ee,cite:null,className:Be,cols:W,colSpan:null,content:null,contentEditable:$e,controls:Ee,controlsList:Be,coords:W|xn,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Ee,defer:Ee,dir:null,dirName:null,disabled:Ee,download:Lc,draggable:$e,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Ee,formTarget:null,headers:Be,height:W,hidden:Ee,high:W,href:null,hrefLang:null,htmlFor:Be,httpEquiv:Be,id:null,imageSizes:null,imageSrcSet:null,inert:Ee,inputMode:null,integrity:null,is:null,isMap:Ee,itemId:null,itemProp:Be,itemRef:Be,itemScope:Ee,itemType:Be,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Ee,low:W,manifest:null,max:null,maxLength:W,media:null,method:null,min:null,minLength:W,multiple:Ee,muted:Ee,name:null,nonce:null,noModule:Ee,noValidate:Ee,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Ee,optimum:W,pattern:null,ping:Be,placeholder:null,playsInline:Ee,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Ee,referrerPolicy:null,rel:Be,required:Ee,reversed:Ee,rows:W,rowSpan:W,sandbox:Be,scope:null,scoped:Ee,seamless:Ee,selected:Ee,shadowRootDelegatesFocus:Ee,shadowRootMode:null,shape:null,size:W,sizes:null,slot:null,span:W,spellCheck:$e,src:null,srcDoc:null,srcLang:null,srcSet:null,start:W,step:null,style:null,tabIndex:W,target:null,title:null,translate:null,type:null,typeMustMatch:Ee,useMap:null,value:$e,width:W,wrap:null,align:null,aLink:null,archive:Be,axis:null,background:null,bgColor:null,border:W,borderColor:null,bottomMargin:W,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Ee,declare:Ee,event:null,face:null,frame:null,frameBorder:null,hSpace:W,leftMargin:W,link:null,longDesc:null,lowSrc:null,marginHeight:W,marginWidth:W,noResize:Ee,noHref:Ee,noShade:Ee,noWrap:Ee,object:null,profile:null,prompt:null,rev:null,rightMargin:W,rules:null,scheme:null,scrolling:$e,standby:null,summary:null,text:null,topMargin:W,valueType:null,version:null,vAlign:null,vLink:null,vSpace:W,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Ee,disableRemotePlayback:Ee,prefix:null,property:null,results:W,security:null,unselectable:null}}),Rm=kn({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:Mc,properties:{about:lt,accentHeight:W,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:W,amplitude:W,arabicForm:null,ascent:W,attributeName:null,attributeType:null,azimuth:W,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:W,by:null,calcMode:null,capHeight:W,className:Be,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:W,diffuseConstant:W,direction:null,display:null,dur:null,divisor:W,dominantBaseline:null,download:Ee,dx:null,dy:null,edgeMode:null,editable:null,elevation:W,enableBackground:null,end:null,event:null,exponent:W,externalResourcesRequired:null,fill:null,fillOpacity:W,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:xn,g2:xn,glyphName:xn,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:W,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:W,horizOriginX:W,horizOriginY:W,id:null,ideographic:W,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:W,k:W,k1:W,k2:W,k3:W,k4:W,kernelMatrix:lt,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:W,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:W,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:W,overlineThickness:W,paintOrder:null,panose1:null,path:null,pathLength:W,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Be,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:W,pointsAtY:W,pointsAtZ:W,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:lt,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:lt,rev:lt,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:lt,requiredFeatures:lt,requiredFonts:lt,requiredFormats:lt,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:W,specularExponent:W,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:W,strikethroughThickness:W,string:null,stroke:null,strokeDashArray:lt,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:W,strokeOpacity:W,strokeWidth:null,style:null,surfaceScale:W,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:lt,tabIndex:W,tableValues:null,target:null,targetX:W,targetY:W,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:lt,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:W,underlineThickness:W,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:W,values:null,vAlphabetic:W,vMathematical:W,vectorEffect:null,vHanging:W,vIdeographic:W,version:null,vertAdvY:W,vertOriginX:W,vertOriginY:W,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:W,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),Om=/^data[-\w.:]+$/i,so=/-[a-z]/g,Lm=/[A-Z]/g;function Kr(e,t){const n=Zn(t);let r=t,i=Tt;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Om.test(t)){if(t.charAt(4)==="-"){const a=t.slice(5).replace(so,Pm);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=t.slice(4);if(!so.test(a)){let s=a.replace(Lm,Dm);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}i=Qa}return new i(r,t)}function Dm(e){return"-"+e.toLowerCase()}function Pm(e){return e.charAt(1).toUpperCase()}const Mm={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},ur=Oc([Pc,Dc,Fc,Uc,Nm],"html"),qt=Oc([Pc,Dc,Fc,Uc,Rm],"svg");function oo(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Hc(e){return e.join(" ").trim()}var pn={},Ai,uo;function Bm(){if(uo)return Ai;uo=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,o=/^\s+|\s+$/g,u=`
|
|
48
48
|
`,c="/",d="*",f="",m="comment",h="declaration";Ai=function(g,w){if(typeof g!="string")throw new TypeError("First argument must be a string");if(!g)return[];w=w||{};var I=1,v=1;function N(V){var z=V.match(t);z&&(I+=z.length);var Z=V.lastIndexOf(u);v=~Z?V.length-Z:v+V.length}function P(){var V={line:I,column:v};return function(z){return z.position=new A(V),B(),z}}function A(V){this.start=V,this.end={line:I,column:v},this.source=w.source}A.prototype.content=g;function p(V){var z=new Error(w.source+":"+I+":"+v+": "+V);if(z.reason=V,z.filename=w.source,z.line=I,z.column=v,z.source=g,!w.silent)throw z}function L(V){var z=V.exec(g);if(z){var Z=z[0];return N(Z),g=g.slice(Z.length),z}}function B(){L(n)}function Y(V){var z;for(V=V||[];z=k();)z!==!1&&V.push(z);return V}function k(){var V=P();if(!(c!=g.charAt(0)||d!=g.charAt(1))){for(var z=2;f!=g.charAt(z)&&(d!=g.charAt(z)||c!=g.charAt(z+1));)++z;if(z+=2,f===g.charAt(z-1))return p("End of comment missing");var Z=g.slice(2,z-2);return v+=2,N(Z),g=g.slice(z),v+=2,V({type:m,comment:Z})}}function j(){var V=P(),z=L(r);if(z){if(k(),!L(i))return p("property missing ':'");var Z=L(a),fe=V({type:h,property:y(z[0].replace(e,f)),value:Z?y(Z[0].replace(e,f)):f});return L(s),fe}}function $(){var V=[];Y(V);for(var z;z=j();)z!==!1&&(V.push(z),Y(V));return V}return B(),$()};function y(g){return g?g.replace(o,f):f}return Ai}var co;function Fm(){if(co)return pn;co=1;var e=pn&&pn.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(pn,"__esModule",{value:!0});var t=e(Bm());function n(r,i){var a=null;if(!r||typeof r!="string")return a;var s=(0,t.default)(r),o=typeof i=="function";return s.forEach(function(u){if(u.type==="declaration"){var c=u.property,d=u.value;o?i(c,d,u):d&&(a=a||{},a[c]=d)}}),a}return pn.default=n,pn}var Um=Fm();const lo=Da(Um),Hm=lo.default||lo,Jr=jc("end"),Lt=jc("start");function jc(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function jm(e){const t=Lt(e),n=Jr(e);if(t&&n)return{start:t,end:n}}function Wn(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?fo(e.position):"start"in e||"end"in e?fo(e):"line"in e||"column"in e?ma(e):""}function ma(e){return ho(e&&e.line)+":"+ho(e&&e.column)}function fo(e){return ma(e&&e.start)+"-"+ma(e&&e.end)}function ho(e){return e&&typeof e=="number"?e:1}class rt extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",a={},s=!1;if(n&&("line"in n&&"column"in n?a={place:n}:"start"in n&&"end"in n?a={place:n}:"type"in n?a={ancestors:[n],place:n.position}:a={...n}),typeof t=="string"?i=t:!a.cause&&t&&(s=!0,i=t.message,a.cause=t),!a.ruleId&&!a.source&&typeof r=="string"){const u=r.indexOf(":");u===-1?a.ruleId=r:(a.source=r.slice(0,u),a.ruleId=r.slice(u+1))}if(!a.place&&a.ancestors&&a.ancestors){const u=a.ancestors[a.ancestors.length-1];u&&(a.place=u.position)}const o=a.place&&"start"in a.place?a.place.start:a.place;this.ancestors=a.ancestors||void 0,this.cause=a.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file,this.message=i,this.line=o?o.line:void 0,this.name=Wn(a.place)||"1:1",this.place=a.place||void 0,this.reason=this.message,this.ruleId=a.ruleId||void 0,this.source=a.source||void 0,this.stack=s&&a.cause&&typeof a.cause.stack=="string"?a.cause.stack:"",this.actual,this.expected,this.note,this.url}}rt.prototype.file="";rt.prototype.name="";rt.prototype.reason="";rt.prototype.message="";rt.prototype.stack="";rt.prototype.column=void 0;rt.prototype.line=void 0;rt.prototype.ancestors=void 0;rt.prototype.cause=void 0;rt.prototype.fatal=void 0;rt.prototype.place=void 0;rt.prototype.ruleId=void 0;rt.prototype.source=void 0;const Ka={}.hasOwnProperty,Vm=new Map,zm=/[A-Z]/g,$m=/-([a-z])/g,Wm=new Set(["table","tbody","thead","tfoot","tr"]),Gm=new Set(["td","th"]),Vc="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Ym(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=tp(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=ep(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?qt:ur,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=zc(i,e,void 0);return a&&typeof a!="string"?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function zc(e,t,n){if(t.type==="element")return qm(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Xm(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Km(e,t,n);if(t.type==="mdxjsEsm")return Qm(e,t);if(t.type==="root")return Jm(e,t,n);if(t.type==="text")return Zm(e,t)}function qm(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=qt,e.schema=i),e.ancestors.push(t);const a=Wc(e,t.tagName,!1),s=np(e,t);let o=Za(e,t);return Wm.has(t.tagName)&&(o=o.filter(function(u){return typeof u=="string"?!wm(u):!0})),$c(e,s,a,t),Ja(s,o),e.ancestors.pop(),e.schema=r,e.create(t,a,s,n)}function Xm(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}er(e,t.position)}function Qm(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);er(e,t.position)}function Km(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=qt,e.schema=i),e.ancestors.push(t);const a=t.name===null?e.Fragment:Wc(e,t.name,!0),s=rp(e,t),o=Za(e,t);return $c(e,s,a,t),Ja(s,o),e.ancestors.pop(),e.schema=r,e.create(t,a,s,n)}function Jm(e,t,n){const r={};return Ja(r,Za(e,t)),e.create(t,e.Fragment,r,n)}function Zm(e,t){return t.value}function $c(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Ja(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function ep(e,t,n){return r;function r(i,a,s,o){const c=Array.isArray(s.children)?n:t;return o?c(a,s,o):c(a,s)}}function tp(e,t){return n;function n(r,i,a,s){const o=Array.isArray(a.children),u=Lt(r);return t(i,a,s,o,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function np(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&Ka.call(t.properties,i)){const a=ip(e,i,t.properties[i]);if(a){const[s,o]=a;e.tableCellAlignToStyle&&s==="align"&&typeof o=="string"&&Gm.has(t.tagName)?r=o:n[s]=o}}if(r){const a=n.style||(n.style={});a[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function rp(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const a=r.data.estree.body[0];a.type;const s=a.expression;s.type;const o=s.properties[0];o.type,Object.assign(n,e.evaluater.evaluateExpression(o.argument))}else er(e,t.position);else{const i=r.name;let a;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const o=r.value.data.estree.body[0];o.type,a=e.evaluater.evaluateExpression(o.expression)}else er(e,t.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function Za(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:Vm;for(;++r<t.children.length;){const a=t.children[r];let s;if(e.passKeys){const u=a.type==="element"?a.tagName:a.type==="mdxJsxFlowElement"||a.type==="mdxJsxTextElement"?a.name:void 0;if(u){const c=i.get(u)||0;s=u+"-"+c,i.set(u,c+1)}}const o=zc(e,a,s);o!==void 0&&n.push(o)}return n}function ip(e,t,n){const r=Kr(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?Rc(n):Hc(n)),r.property==="style"){let i=typeof n=="object"?n:ap(e,String(n));return e.stylePropertyNameCase==="css"&&(i=sp(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&r.space?Mm[r.property]||r.property:r.attribute,n]}}function ap(e,t){const n={};try{Hm(t,r)}catch(i){if(!e.ignoreInvalidStyle){const a=i,s=new rt("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:a,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw s.file=e.filePath||void 0,s.url=Vc+"#cannot-parse-style-attribute",s}}return n;function r(i,a){let s=i;s.slice(0,2)!=="--"&&(s.slice(0,4)==="-ms-"&&(s="ms-"+s.slice(4)),s=s.replace($m,up)),n[s]=a}}function Wc(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let a=-1,s;for(;++a<i.length;){const o=ro(i[a])?{type:"Identifier",name:i[a]}:{type:"Literal",value:i[a]};s=s?{type:"MemberExpression",object:s,property:o,computed:!!(a&&o.type==="Literal"),optional:!1}:o}r=s}else r=ro(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const i=r.value;return Ka.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(r);er(e)}function er(e,t){const n=new rt("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=Vc+"#cannot-handle-mdx-estrees-without-createevaluater",n}function sp(e){const t={};let n;for(n in e)Ka.call(e,n)&&(t[op(n)]=e[n]);return t}function op(e){let t=e.replace(zm,cp);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function up(e,t){return t.toUpperCase()}function cp(e){return"-"+e.toLowerCase()}const wi={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},lp={};function es(e,t){const n=lp,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return Gc(e,r,i)}function Gc(e,t,n){if(dp(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return mo(e.children,t,n)}return Array.isArray(e)?mo(e,t,n):""}function mo(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=Gc(e[i],t,n);return r.join("")}function dp(e){return!!(e&&typeof e=="object")}const po=document.createElement("i");function ts(e){const t="&"+e+";";po.innerHTML=t;const n=po.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function dt(e,t,n,r){const i=e.length;let a=0,s;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)s=Array.from(r),s.unshift(t,n),e.splice(...s);else for(n&&e.splice(t,n);a<r.length;)s=r.slice(a,a+1e4),s.unshift(t,0),e.splice(...s),a+=1e4,t+=1e4}function mt(e,t){return e.length>0?(dt(e,e.length,0,t),e):t}const go={}.hasOwnProperty;function Yc(e){const t={};let n=-1;for(;++n<e.length;)fp(t,e[n]);return t}function fp(e,t){let n;for(n in t){const i=(go.call(e,n)?e[n]:void 0)||(e[n]={}),a=t[n];let s;if(a)for(s in a){go.call(i,s)||(i[s]=[]);const o=a[s];hp(i[s],Array.isArray(o)?o:o?[o]:[])}}}function hp(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);dt(e,0,0,r)}function qc(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ct(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const st=Xt(/[A-Za-z]/),nt=Xt(/[\dA-Za-z]/),mp=Xt(/[#-'*+\--9=?A-Z^-~]/);function Rr(e){return e!==null&&(e<32||e===127)}const pa=Xt(/\d/),pp=Xt(/[\dA-Fa-f]/),gp=Xt(/[!-/:-@[-`{-~]/);function le(e){return e!==null&&e<-2}function Me(e){return e!==null&&(e<0||e===32)}function _e(e){return e===-2||e===-1||e===32}const Zr=Xt(new RegExp("\\p{P}|\\p{S}","u")),cn=Xt(/\s/);function Xt(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Nn(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const a=e.charCodeAt(n);let s="";if(a===37&&nt(e.charCodeAt(n+1))&&nt(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(s=String.fromCharCode(a));else if(a>55295&&a<57344){const o=e.charCodeAt(n+1);a<56320&&o>56319&&o<57344?(s=String.fromCharCode(a,o),i=1):s="�"}else s=String.fromCharCode(a);s&&(t.push(e.slice(r,n),encodeURIComponent(s)),r=n+i+1,s=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Ie(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let a=0;return s;function s(u){return _e(u)?(e.enter(n),o(u)):t(u)}function o(u){return _e(u)&&a++<i?(e.consume(u),o):(e.exit(n),t(u))}}const bp={tokenize:Ep};function Ep(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),Ie(e,t,"linePrefix")}function i(o){return e.enter("paragraph"),a(o)}function a(o){const u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,s(o)}function s(o){if(o===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(o);return}return le(o)?(e.consume(o),e.exit("chunkText"),a):(e.consume(o),s)}}const Tp={tokenize:yp},bo={tokenize:_p};function yp(e){const t=this,n=[];let r=0,i,a,s;return o;function o(N){if(r<n.length){const P=n[r];return t.containerState=P[1],e.attempt(P[0].continuation,u,c)(N)}return c(N)}function u(N){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();const P=t.events.length;let A=P,p;for(;A--;)if(t.events[A][0]==="exit"&&t.events[A][1].type==="chunkFlow"){p=t.events[A][1].end;break}I(r);let L=P;for(;L<t.events.length;)t.events[L][1].end=Object.assign({},p),L++;return dt(t.events,A+1,0,t.events.slice(P)),t.events.length=L,c(N)}return o(N)}function c(N){if(r===n.length){if(!i)return m(N);if(i.currentConstruct&&i.currentConstruct.concrete)return y(N);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(bo,d,f)(N)}function d(N){return i&&v(),I(r),m(N)}function f(N){return t.parser.lazy[t.now().line]=r!==n.length,s=t.now().offset,y(N)}function m(N){return t.containerState={},e.attempt(bo,h,y)(N)}function h(N){return r++,n.push([t.currentConstruct,t.containerState]),m(N)}function y(N){if(N===null){i&&v(),I(0),e.consume(N);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{contentType:"flow",previous:a,_tokenizer:i}),g(N)}function g(N){if(N===null){w(e.exit("chunkFlow"),!0),I(0),e.consume(N);return}return le(N)?(e.consume(N),w(e.exit("chunkFlow")),r=0,t.interrupt=void 0,o):(e.consume(N),g)}function w(N,P){const A=t.sliceStream(N);if(P&&A.push(null),N.previous=a,a&&(a.next=N),a=N,i.defineSkip(N.start),i.write(A),t.parser.lazy[N.start.line]){let p=i.events.length;for(;p--;)if(i.events[p][1].start.offset<s&&(!i.events[p][1].end||i.events[p][1].end.offset>s))return;const L=t.events.length;let B=L,Y,k;for(;B--;)if(t.events[B][0]==="exit"&&t.events[B][1].type==="chunkFlow"){if(Y){k=t.events[B][1].end;break}Y=!0}for(I(r),p=L;p<t.events.length;)t.events[p][1].end=Object.assign({},k),p++;dt(t.events,B+1,0,t.events.slice(L)),t.events.length=p}}function I(N){let P=n.length;for(;P-- >N;){const A=n[P];t.containerState=A[1],A[0].exit.call(t,e)}n.length=N}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function _p(e,t,n){return Ie(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Or(e){if(e===null||Me(e)||cn(e))return 1;if(Zr(e))return 2}function ei(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}const ga={name:"attention",tokenize:Sp,resolveAll:xp};function xp(e,t){let n=-1,r,i,a,s,o,u,c,d;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;u=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const f=Object.assign({},e[r][1].end),m=Object.assign({},e[n][1].start);Eo(f,-u),Eo(m,u),s={type:u>1?"strongSequence":"emphasisSequence",start:f,end:Object.assign({},e[r][1].end)},o={type:u>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[n][1].start),end:m},a={type:u>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},i={type:u>1?"strong":"emphasis",start:Object.assign({},s.start),end:Object.assign({},o.end)},e[r][1].end=Object.assign({},s.start),e[n][1].start=Object.assign({},o.end),c=[],e[r][1].end.offset-e[r][1].start.offset&&(c=mt(c,[["enter",e[r][1],t],["exit",e[r][1],t]])),c=mt(c,[["enter",i,t],["enter",s,t],["exit",s,t],["enter",a,t]]),c=mt(c,ei(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),c=mt(c,[["exit",a,t],["enter",o,t],["exit",o,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,c=mt(c,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,dt(e,r-1,n-r+3,c),n=r+c.length-d-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function Sp(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Or(r);let a;return s;function s(u){return a=u,e.enter("attentionSequence"),o(u)}function o(u){if(u===a)return e.consume(u),o;const c=e.exit("attentionSequence"),d=Or(u),f=!d||d===2&&i||n.includes(u),m=!i||i===2&&d||n.includes(r);return c._open=!!(a===42?f:f&&(i||!m)),c._close=!!(a===42?m:m&&(d||!f)),t(u)}}function Eo(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const Cp={name:"autolink",tokenize:Ip};function Ip(e,t,n){let r=0;return i;function i(h){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),a}function a(h){return st(h)?(e.consume(h),s):c(h)}function s(h){return h===43||h===45||h===46||nt(h)?(r=1,o(h)):c(h)}function o(h){return h===58?(e.consume(h),r=0,u):(h===43||h===45||h===46||nt(h))&&r++<32?(e.consume(h),o):(r=0,c(h))}function u(h){return h===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),t):h===null||h===32||h===60||Rr(h)?n(h):(e.consume(h),u)}function c(h){return h===64?(e.consume(h),d):mp(h)?(e.consume(h),c):n(h)}function d(h){return nt(h)?f(h):n(h)}function f(h){return h===46?(e.consume(h),r=0,d):h===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(h),e.exit("autolinkMarker"),e.exit("autolink"),t):m(h)}function m(h){if((h===45||nt(h))&&r++<63){const y=h===45?m:f;return e.consume(h),y}return n(h)}}const cr={tokenize:Ap,partial:!0};function Ap(e,t,n){return r;function r(a){return _e(a)?Ie(e,i,"linePrefix")(a):i(a)}function i(a){return a===null||le(a)?t(a):n(a)}}const Xc={name:"blockQuote",tokenize:wp,continuation:{tokenize:vp},exit:kp};function wp(e,t,n){const r=this;return i;function i(s){if(s===62){const o=r.containerState;return o.open||(e.enter("blockQuote",{_container:!0}),o.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(s),e.exit("blockQuoteMarker"),a}return n(s)}function a(s){return _e(s)?(e.enter("blockQuotePrefixWhitespace"),e.consume(s),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(s))}}function vp(e,t,n){const r=this;return i;function i(s){return _e(s)?Ie(e,a,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s):a(s)}function a(s){return e.attempt(Xc,t,n)(s)}}function kp(e){e.exit("blockQuote")}const Qc={name:"characterEscape",tokenize:Np};function Np(e,t,n){return r;function r(a){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(a),e.exit("escapeMarker"),i}function i(a){return gp(a)?(e.enter("characterEscapeValue"),e.consume(a),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(a)}}const Kc={name:"characterReference",tokenize:Rp};function Rp(e,t,n){const r=this;let i=0,a,s;return o;function o(f){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),u}function u(f){return f===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(f),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),a=31,s=nt,d(f))}function c(f){return f===88||f===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(f),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,s=pp,d):(e.enter("characterReferenceValue"),a=7,s=pa,d(f))}function d(f){if(f===59&&i){const m=e.exit("characterReferenceValue");return s===nt&&!ts(r.sliceSerialize(m))?n(f):(e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return s(f)&&i++<a?(e.consume(f),d):n(f)}}const To={tokenize:Lp,partial:!0},yo={name:"codeFenced",tokenize:Op,concrete:!0};function Op(e,t,n){const r=this,i={tokenize:A,partial:!0};let a=0,s=0,o;return u;function u(p){return c(p)}function c(p){const L=r.events[r.events.length-1];return a=L&&L[1].type==="linePrefix"?L[2].sliceSerialize(L[1],!0).length:0,o=p,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),d(p)}function d(p){return p===o?(s++,e.consume(p),d):s<3?n(p):(e.exit("codeFencedFenceSequence"),_e(p)?Ie(e,f,"whitespace")(p):f(p))}function f(p){return p===null||le(p)?(e.exit("codeFencedFence"),r.interrupt?t(p):e.check(To,g,P)(p)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),m(p))}function m(p){return p===null||le(p)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),f(p)):_e(p)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Ie(e,h,"whitespace")(p)):p===96&&p===o?n(p):(e.consume(p),m)}function h(p){return p===null||le(p)?f(p):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),y(p))}function y(p){return p===null||le(p)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),f(p)):p===96&&p===o?n(p):(e.consume(p),y)}function g(p){return e.attempt(i,P,w)(p)}function w(p){return e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),I}function I(p){return a>0&&_e(p)?Ie(e,v,"linePrefix",a+1)(p):v(p)}function v(p){return p===null||le(p)?e.check(To,g,P)(p):(e.enter("codeFlowValue"),N(p))}function N(p){return p===null||le(p)?(e.exit("codeFlowValue"),v(p)):(e.consume(p),N)}function P(p){return e.exit("codeFenced"),t(p)}function A(p,L,B){let Y=0;return k;function k(Z){return p.enter("lineEnding"),p.consume(Z),p.exit("lineEnding"),j}function j(Z){return p.enter("codeFencedFence"),_e(Z)?Ie(p,$,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(Z):$(Z)}function $(Z){return Z===o?(p.enter("codeFencedFenceSequence"),V(Z)):B(Z)}function V(Z){return Z===o?(Y++,p.consume(Z),V):Y>=s?(p.exit("codeFencedFenceSequence"),_e(Z)?Ie(p,z,"whitespace")(Z):z(Z)):B(Z)}function z(Z){return Z===null||le(Z)?(p.exit("codeFencedFence"),L(Z)):B(Z)}}}function Lp(e,t,n){const r=this;return i;function i(s){return s===null?n(s):(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),a)}function a(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}const vi={name:"codeIndented",tokenize:Pp},Dp={tokenize:Mp,partial:!0};function Pp(e,t,n){const r=this;return i;function i(c){return e.enter("codeIndented"),Ie(e,a,"linePrefix",5)(c)}function a(c){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?s(c):n(c)}function s(c){return c===null?u(c):le(c)?e.attempt(Dp,s,u)(c):(e.enter("codeFlowValue"),o(c))}function o(c){return c===null||le(c)?(e.exit("codeFlowValue"),s(c)):(e.consume(c),o)}function u(c){return e.exit("codeIndented"),t(c)}}function Mp(e,t,n){const r=this;return i;function i(s){return r.parser.lazy[r.now().line]?n(s):le(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i):Ie(e,a,"linePrefix",5)(s)}function a(s){const o=r.events[r.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?t(s):le(s)?i(s):n(s)}}const Bp={name:"codeText",tokenize:Hp,resolve:Fp,previous:Up};function Fp(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function Up(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function Hp(e,t,n){let r=0,i,a;return s;function s(f){return e.enter("codeText"),e.enter("codeTextSequence"),o(f)}function o(f){return f===96?(e.consume(f),r++,o):(e.exit("codeTextSequence"),u(f))}function u(f){return f===null?n(f):f===32?(e.enter("space"),e.consume(f),e.exit("space"),u):f===96?(a=e.enter("codeTextSequence"),i=0,d(f)):le(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),u):(e.enter("codeTextData"),c(f))}function c(f){return f===null||f===32||f===96||le(f)?(e.exit("codeTextData"),u(f)):(e.consume(f),c)}function d(f){return f===96?(e.consume(f),i++,d):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(f)):(a.type="codeTextData",c(f))}}function Jc(e){const t={};let n=-1,r,i,a,s,o,u,c;for(;++n<e.length;){for(;n in t;)n=t[n];if(r=e[n],n&&r[1].type==="chunkFlow"&&e[n-1][1].type==="listItemPrefix"&&(u=r[1]._tokenizer.events,a=0,a<u.length&&u[a][1].type==="lineEndingBlank"&&(a+=2),a<u.length&&u[a][1].type==="content"))for(;++a<u.length&&u[a][1].type!=="content";)u[a][1].type==="chunkText"&&(u[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,jp(e,n)),n=t[n],c=!0);else if(r[1]._container){for(a=n,i=void 0;a--&&(s=e[a],s[1].type==="lineEnding"||s[1].type==="lineEndingBlank");)s[0]==="enter"&&(i&&(e[i][1].type="lineEndingBlank"),s[1].type="lineEnding",i=a);i&&(r[1].end=Object.assign({},e[i][1].start),o=e.slice(i,n),o.unshift(r),dt(e,i,n-i+1,o))}}return!c}function jp(e,t){const n=e[t][1],r=e[t][2];let i=t-1;const a=[],s=n._tokenizer||r.parser[n.contentType](n.start),o=s.events,u=[],c={};let d,f,m=-1,h=n,y=0,g=0;const w=[g];for(;h;){for(;e[++i][1]!==h;);a.push(i),h._tokenizer||(d=r.sliceStream(h),h.next||d.push(null),f&&s.defineSkip(h.start),h._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=!0),s.write(d),h._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=void 0)),f=h,h=h.next}for(h=n;++m<o.length;)o[m][0]==="exit"&&o[m-1][0]==="enter"&&o[m][1].type===o[m-1][1].type&&o[m][1].start.line!==o[m][1].end.line&&(g=m+1,w.push(g),h._tokenizer=void 0,h.previous=void 0,h=h.next);for(s.events=[],h?(h._tokenizer=void 0,h.previous=void 0):w.pop(),m=w.length;m--;){const I=o.slice(w[m],w[m+1]),v=a.pop();u.unshift([v,v+I.length-1]),dt(e,v,2,I)}for(m=-1;++m<u.length;)c[y+u[m][0]]=y+u[m][1],y+=u[m][1]-u[m][0]-1;return c}const Vp={tokenize:Wp,resolve:$p},zp={tokenize:Gp,partial:!0};function $p(e){return Jc(e),e}function Wp(e,t){let n;return r;function r(o){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(o)}function i(o){return o===null?a(o):le(o)?e.check(zp,s,a)(o):(e.consume(o),i)}function a(o){return e.exit("chunkContent"),e.exit("content"),t(o)}function s(o){return e.consume(o),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function Gp(e,t,n){const r=this;return i;function i(s){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),Ie(e,a,"linePrefix")}function a(s){if(s===null||le(s))return n(s);const o=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?t(s):e.interrupt(r.parser.constructs.flow,n,t)(s)}}function Zc(e,t,n,r,i,a,s,o,u){const c=u||Number.POSITIVE_INFINITY;let d=0;return f;function f(I){return I===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(I),e.exit(a),m):I===null||I===32||I===41||Rr(I)?n(I):(e.enter(r),e.enter(s),e.enter(o),e.enter("chunkString",{contentType:"string"}),g(I))}function m(I){return I===62?(e.enter(a),e.consume(I),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(o),e.enter("chunkString",{contentType:"string"}),h(I))}function h(I){return I===62?(e.exit("chunkString"),e.exit(o),m(I)):I===null||I===60||le(I)?n(I):(e.consume(I),I===92?y:h)}function y(I){return I===60||I===62||I===92?(e.consume(I),h):h(I)}function g(I){return!d&&(I===null||I===41||Me(I))?(e.exit("chunkString"),e.exit(o),e.exit(s),e.exit(r),t(I)):d<c&&I===40?(e.consume(I),d++,g):I===41?(e.consume(I),d--,g):I===null||I===32||I===40||Rr(I)?n(I):(e.consume(I),I===92?w:g)}function w(I){return I===40||I===41||I===92?(e.consume(I),g):g(I)}}function el(e,t,n,r,i,a){const s=this;let o=0,u;return c;function c(h){return e.enter(r),e.enter(i),e.consume(h),e.exit(i),e.enter(a),d}function d(h){return o>999||h===null||h===91||h===93&&!u||h===94&&!o&&"_hiddenFootnoteSupport"in s.parser.constructs?n(h):h===93?(e.exit(a),e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):le(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),f(h))}function f(h){return h===null||h===91||h===93||le(h)||o++>999?(e.exit("chunkString"),d(h)):(e.consume(h),u||(u=!_e(h)),h===92?m:f)}function m(h){return h===91||h===92||h===93?(e.consume(h),o++,f):f(h)}}function tl(e,t,n,r,i,a){let s;return o;function o(m){return m===34||m===39||m===40?(e.enter(r),e.enter(i),e.consume(m),e.exit(i),s=m===40?41:m,u):n(m)}function u(m){return m===s?(e.enter(i),e.consume(m),e.exit(i),e.exit(r),t):(e.enter(a),c(m))}function c(m){return m===s?(e.exit(a),u(s)):m===null?n(m):le(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),Ie(e,c,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(m))}function d(m){return m===s||m===null||le(m)?(e.exit("chunkString"),c(m)):(e.consume(m),m===92?f:d)}function f(m){return m===s||m===92?(e.consume(m),d):d(m)}}function Gn(e,t){let n;return r;function r(i){return le(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):_e(i)?Ie(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const Yp={name:"definition",tokenize:Xp},qp={tokenize:Qp,partial:!0};function Xp(e,t,n){const r=this;let i;return a;function a(h){return e.enter("definition"),s(h)}function s(h){return el.call(r,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function o(h){return i=Ct(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),u):n(h)}function u(h){return Me(h)?Gn(e,c)(h):c(h)}function c(h){return Zc(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function d(h){return e.attempt(qp,f,f)(h)}function f(h){return _e(h)?Ie(e,m,"whitespace")(h):m(h)}function m(h){return h===null||le(h)?(e.exit("definition"),r.parser.defined.push(i),t(h)):n(h)}}function Qp(e,t,n){return r;function r(o){return Me(o)?Gn(e,i)(o):n(o)}function i(o){return tl(e,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(o)}function a(o){return _e(o)?Ie(e,s,"whitespace")(o):s(o)}function s(o){return o===null||le(o)?t(o):n(o)}}const Kp={name:"hardBreakEscape",tokenize:Jp};function Jp(e,t,n){return r;function r(a){return e.enter("hardBreakEscape"),e.consume(a),i}function i(a){return le(a)?(e.exit("hardBreakEscape"),t(a)):n(a)}}const Zp={name:"headingAtx",tokenize:tg,resolve:eg};function eg(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},a={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},dt(e,r,n-r+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function tg(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),a(d)}function a(d){return e.enter("atxHeadingSequence"),s(d)}function s(d){return d===35&&r++<6?(e.consume(d),s):d===null||Me(d)?(e.exit("atxHeadingSequence"),o(d)):n(d)}function o(d){return d===35?(e.enter("atxHeadingSequence"),u(d)):d===null||le(d)?(e.exit("atxHeading"),t(d)):_e(d)?Ie(e,o,"whitespace")(d):(e.enter("atxHeadingText"),c(d))}function u(d){return d===35?(e.consume(d),u):(e.exit("atxHeadingSequence"),o(d))}function c(d){return d===null||d===35||Me(d)?(e.exit("atxHeadingText"),o(d)):(e.consume(d),c)}}const ng=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],_o=["pre","script","style","textarea"],rg={name:"htmlFlow",tokenize:og,resolveTo:sg,concrete:!0},ig={tokenize:cg,partial:!0},ag={tokenize:ug,partial:!0};function sg(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function og(e,t,n){const r=this;let i,a,s,o,u;return c;function c(x){return d(x)}function d(x){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(x),f}function f(x){return x===33?(e.consume(x),m):x===47?(e.consume(x),a=!0,g):x===63?(e.consume(x),i=3,r.interrupt?t:E):st(x)?(e.consume(x),s=String.fromCharCode(x),w):n(x)}function m(x){return x===45?(e.consume(x),i=2,h):x===91?(e.consume(x),i=5,o=0,y):st(x)?(e.consume(x),i=4,r.interrupt?t:E):n(x)}function h(x){return x===45?(e.consume(x),r.interrupt?t:E):n(x)}function y(x){const ee="CDATA[";return x===ee.charCodeAt(o++)?(e.consume(x),o===ee.length?r.interrupt?t:$:y):n(x)}function g(x){return st(x)?(e.consume(x),s=String.fromCharCode(x),w):n(x)}function w(x){if(x===null||x===47||x===62||Me(x)){const ee=x===47,te=s.toLowerCase();return!ee&&!a&&_o.includes(te)?(i=1,r.interrupt?t(x):$(x)):ng.includes(s.toLowerCase())?(i=6,ee?(e.consume(x),I):r.interrupt?t(x):$(x)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(x):a?v(x):N(x))}return x===45||nt(x)?(e.consume(x),s+=String.fromCharCode(x),w):n(x)}function I(x){return x===62?(e.consume(x),r.interrupt?t:$):n(x)}function v(x){return _e(x)?(e.consume(x),v):k(x)}function N(x){return x===47?(e.consume(x),k):x===58||x===95||st(x)?(e.consume(x),P):_e(x)?(e.consume(x),N):k(x)}function P(x){return x===45||x===46||x===58||x===95||nt(x)?(e.consume(x),P):A(x)}function A(x){return x===61?(e.consume(x),p):_e(x)?(e.consume(x),A):N(x)}function p(x){return x===null||x===60||x===61||x===62||x===96?n(x):x===34||x===39?(e.consume(x),u=x,L):_e(x)?(e.consume(x),p):B(x)}function L(x){return x===u?(e.consume(x),u=null,Y):x===null||le(x)?n(x):(e.consume(x),L)}function B(x){return x===null||x===34||x===39||x===47||x===60||x===61||x===62||x===96||Me(x)?A(x):(e.consume(x),B)}function Y(x){return x===47||x===62||_e(x)?N(x):n(x)}function k(x){return x===62?(e.consume(x),j):n(x)}function j(x){return x===null||le(x)?$(x):_e(x)?(e.consume(x),j):n(x)}function $(x){return x===45&&i===2?(e.consume(x),fe):x===60&&i===1?(e.consume(x),re):x===62&&i===4?(e.consume(x),G):x===63&&i===3?(e.consume(x),E):x===93&&i===5?(e.consume(x),ve):le(x)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(ig,ie,V)(x)):x===null||le(x)?(e.exit("htmlFlowData"),V(x)):(e.consume(x),$)}function V(x){return e.check(ag,z,ie)(x)}function z(x){return e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),Z}function Z(x){return x===null||le(x)?V(x):(e.enter("htmlFlowData"),$(x))}function fe(x){return x===45?(e.consume(x),E):$(x)}function re(x){return x===47?(e.consume(x),s="",ke):$(x)}function ke(x){if(x===62){const ee=s.toLowerCase();return _o.includes(ee)?(e.consume(x),G):$(x)}return st(x)&&s.length<8?(e.consume(x),s+=String.fromCharCode(x),ke):$(x)}function ve(x){return x===93?(e.consume(x),E):$(x)}function E(x){return x===62?(e.consume(x),G):x===45&&i===2?(e.consume(x),E):$(x)}function G(x){return x===null||le(x)?(e.exit("htmlFlowData"),ie(x)):(e.consume(x),G)}function ie(x){return e.exit("htmlFlow"),t(x)}}function ug(e,t,n){const r=this;return i;function i(s){return le(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),a):n(s)}function a(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}function cg(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(cr,t,n)}}const lg={name:"htmlText",tokenize:dg};function dg(e,t,n){const r=this;let i,a,s;return o;function o(E){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(E),u}function u(E){return E===33?(e.consume(E),c):E===47?(e.consume(E),A):E===63?(e.consume(E),N):st(E)?(e.consume(E),B):n(E)}function c(E){return E===45?(e.consume(E),d):E===91?(e.consume(E),a=0,y):st(E)?(e.consume(E),v):n(E)}function d(E){return E===45?(e.consume(E),h):n(E)}function f(E){return E===null?n(E):E===45?(e.consume(E),m):le(E)?(s=f,re(E)):(e.consume(E),f)}function m(E){return E===45?(e.consume(E),h):f(E)}function h(E){return E===62?fe(E):E===45?m(E):f(E)}function y(E){const G="CDATA[";return E===G.charCodeAt(a++)?(e.consume(E),a===G.length?g:y):n(E)}function g(E){return E===null?n(E):E===93?(e.consume(E),w):le(E)?(s=g,re(E)):(e.consume(E),g)}function w(E){return E===93?(e.consume(E),I):g(E)}function I(E){return E===62?fe(E):E===93?(e.consume(E),I):g(E)}function v(E){return E===null||E===62?fe(E):le(E)?(s=v,re(E)):(e.consume(E),v)}function N(E){return E===null?n(E):E===63?(e.consume(E),P):le(E)?(s=N,re(E)):(e.consume(E),N)}function P(E){return E===62?fe(E):N(E)}function A(E){return st(E)?(e.consume(E),p):n(E)}function p(E){return E===45||nt(E)?(e.consume(E),p):L(E)}function L(E){return le(E)?(s=L,re(E)):_e(E)?(e.consume(E),L):fe(E)}function B(E){return E===45||nt(E)?(e.consume(E),B):E===47||E===62||Me(E)?Y(E):n(E)}function Y(E){return E===47?(e.consume(E),fe):E===58||E===95||st(E)?(e.consume(E),k):le(E)?(s=Y,re(E)):_e(E)?(e.consume(E),Y):fe(E)}function k(E){return E===45||E===46||E===58||E===95||nt(E)?(e.consume(E),k):j(E)}function j(E){return E===61?(e.consume(E),$):le(E)?(s=j,re(E)):_e(E)?(e.consume(E),j):Y(E)}function $(E){return E===null||E===60||E===61||E===62||E===96?n(E):E===34||E===39?(e.consume(E),i=E,V):le(E)?(s=$,re(E)):_e(E)?(e.consume(E),$):(e.consume(E),z)}function V(E){return E===i?(e.consume(E),i=void 0,Z):E===null?n(E):le(E)?(s=V,re(E)):(e.consume(E),V)}function z(E){return E===null||E===34||E===39||E===60||E===61||E===96?n(E):E===47||E===62||Me(E)?Y(E):(e.consume(E),z)}function Z(E){return E===47||E===62||Me(E)?Y(E):n(E)}function fe(E){return E===62?(e.consume(E),e.exit("htmlTextData"),e.exit("htmlText"),t):n(E)}function re(E){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),ke}function ke(E){return _e(E)?Ie(e,ve,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E):ve(E)}function ve(E){return e.enter("htmlTextData"),s(E)}}const ns={name:"labelEnd",tokenize:bg,resolveTo:gg,resolveAll:pg},fg={tokenize:Eg},hg={tokenize:Tg},mg={tokenize:yg};function pg(e){let t=-1;for(;++t<e.length;){const n=e[t][1];(n.type==="labelImage"||n.type==="labelLink"||n.type==="labelEnd")&&(e.splice(t+1,n.type==="labelImage"?4:2),n.type="data",t++)}return e}function gg(e,t){let n=e.length,r=0,i,a,s,o;for(;n--;)if(i=e[n][1],a){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(s){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(a=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(s=n);const u={type:e[a][1].type==="labelLink"?"link":"image",start:Object.assign({},e[a][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[a][1].start),end:Object.assign({},e[s][1].end)},d={type:"labelText",start:Object.assign({},e[a+r+2][1].end),end:Object.assign({},e[s-2][1].start)};return o=[["enter",u,t],["enter",c,t]],o=mt(o,e.slice(a+1,a+r+3)),o=mt(o,[["enter",d,t]]),o=mt(o,ei(t.parser.constructs.insideSpan.null,e.slice(a+r+4,s-3),t)),o=mt(o,[["exit",d,t],e[s-2],e[s-1],["exit",c,t]]),o=mt(o,e.slice(s+1)),o=mt(o,[["exit",u,t]]),dt(e,a,e.length,o),e}function bg(e,t,n){const r=this;let i=r.events.length,a,s;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){a=r.events[i][1];break}return o;function o(m){return a?a._inactive?f(m):(s=r.parser.defined.includes(Ct(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(m),e.exit("labelMarker"),e.exit("labelEnd"),u):n(m)}function u(m){return m===40?e.attempt(fg,d,s?d:f)(m):m===91?e.attempt(hg,d,s?c:f)(m):s?d(m):f(m)}function c(m){return e.attempt(mg,d,f)(m)}function d(m){return t(m)}function f(m){return a._balanced=!0,n(m)}}function Eg(e,t,n){return r;function r(f){return e.enter("resource"),e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),i}function i(f){return Me(f)?Gn(e,a)(f):a(f)}function a(f){return f===41?d(f):Zc(e,s,o,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(f)}function s(f){return Me(f)?Gn(e,u)(f):d(f)}function o(f){return n(f)}function u(f){return f===34||f===39||f===40?tl(e,c,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(f):d(f)}function c(f){return Me(f)?Gn(e,d)(f):d(f)}function d(f){return f===41?(e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),e.exit("resource"),t):n(f)}}function Tg(e,t,n){const r=this;return i;function i(o){return el.call(r,e,a,s,"reference","referenceMarker","referenceString")(o)}function a(o){return r.parser.defined.includes(Ct(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(o):n(o)}function s(o){return n(o)}}function yg(e,t,n){return r;function r(a){return e.enter("reference"),e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),i}function i(a){return a===93?(e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),e.exit("reference"),t):n(a)}}const _g={name:"labelStartImage",tokenize:xg,resolveAll:ns.resolveAll};function xg(e,t,n){const r=this;return i;function i(o){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(o),e.exit("labelImageMarker"),a}function a(o){return o===91?(e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelImage"),s):n(o)}function s(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(o):t(o)}}const Sg={name:"labelStartLink",tokenize:Cg,resolveAll:ns.resolveAll};function Cg(e,t,n){const r=this;return i;function i(s){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelLink"),a}function a(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}const ki={name:"lineEnding",tokenize:Ig};function Ig(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),Ie(e,t,"linePrefix")}}const vr={name:"thematicBreak",tokenize:Ag};function Ag(e,t,n){let r=0,i;return a;function a(c){return e.enter("thematicBreak"),s(c)}function s(c){return i=c,o(c)}function o(c){return c===i?(e.enter("thematicBreakSequence"),u(c)):r>=3&&(c===null||le(c))?(e.exit("thematicBreak"),t(c)):n(c)}function u(c){return c===i?(e.consume(c),r++,u):(e.exit("thematicBreakSequence"),_e(c)?Ie(e,o,"whitespace")(c):o(c))}}const ct={name:"list",tokenize:kg,continuation:{tokenize:Ng},exit:Og},wg={tokenize:Lg,partial:!0},vg={tokenize:Rg,partial:!0};function kg(e,t,n){const r=this,i=r.events[r.events.length-1];let a=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,s=0;return o;function o(h){const y=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(y==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:pa(h)){if(r.containerState.type||(r.containerState.type=y,e.enter(y,{_container:!0})),y==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(vr,n,c)(h):c(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(h)}return n(h)}function u(h){return pa(h)&&++s<10?(e.consume(h),u):(!r.interrupt||s<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),c(h)):n(h)}function c(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(cr,r.interrupt?n:d,e.attempt(wg,m,f))}function d(h){return r.containerState.initialBlankLine=!0,a++,m(h)}function f(h){return _e(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),m):n(h)}function m(h){return r.containerState.size=a+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function Ng(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(cr,i,a);function i(o){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Ie(e,t,"listItemIndent",r.containerState.size+1)(o)}function a(o){return r.containerState.furtherBlankLines||!_e(o)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,s(o)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(vg,t,s)(o))}function s(o){return r.containerState._closeFlow=!0,r.interrupt=void 0,Ie(e,e.attempt(ct,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}function Rg(e,t,n){const r=this;return Ie(e,i,"listItemIndent",r.containerState.size+1);function i(a){const s=r.events[r.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===r.containerState.size?t(a):n(a)}}function Og(e){e.exit(this.containerState.type)}function Lg(e,t,n){const r=this;return Ie(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(a){const s=r.events[r.events.length-1];return!_e(a)&&s&&s[1].type==="listItemPrefixWhitespace"?t(a):n(a)}}const xo={name:"setextUnderline",tokenize:Pg,resolveTo:Dg};function Dg(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!a&&e[n][1].type==="definition"&&(a=n);const s={type:"setextHeading",start:Object.assign({},e[i][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[i][1].type="setextHeadingText",a?(e.splice(i,0,["enter",s,t]),e.splice(a+1,0,["exit",e[r][1],t]),e[r][1].end=Object.assign({},e[a][1].end)):e[r][1]=s,e.push(["exit",s,t]),e}function Pg(e,t,n){const r=this;let i;return a;function a(c){let d=r.events.length,f;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){f=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),i=c,s(c)):n(c)}function s(c){return e.enter("setextHeadingLineSequence"),o(c)}function o(c){return c===i?(e.consume(c),o):(e.exit("setextHeadingLineSequence"),_e(c)?Ie(e,u,"lineSuffix")(c):u(c))}function u(c){return c===null||le(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}const Mg={tokenize:Bg};function Bg(e){const t=this,n=e.attempt(cr,r,e.attempt(this.parser.constructs.flowInitial,i,Ie(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Vp,i)),"linePrefix")));return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Fg={resolveAll:rl()},Ug=nl("string"),Hg=nl("text");function nl(e){return{tokenize:t,resolveAll:rl(e==="text"?jg:void 0)};function t(n){const r=this,i=this.parser.constructs[e],a=n.attempt(i,s,o);return s;function s(d){return c(d)?a(d):o(d)}function o(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),u}function u(d){return c(d)?(n.exit("data"),a(d)):(n.consume(d),u)}function c(d){if(d===null)return!0;const f=i[d];let m=-1;if(f)for(;++m<f.length;){const h=f[m];if(!h.previous||h.previous.call(r,r.previous))return!0}return!1}}}function rl(e){return t;function t(n,r){let i=-1,a;for(;++i<=n.length;)a===void 0?n[i]&&n[i][1].type==="data"&&(a=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==a+2&&(n[a][1].end=n[i-1][1].end,n.splice(a+2,i-a-2),i=a+2),a=void 0);return e?e(n,r):n}}function jg(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],i=t.sliceStream(r);let a=i.length,s=-1,o=0,u;for(;a--;){const c=i[a];if(typeof c=="string"){for(s=c.length;c.charCodeAt(s-1)===32;)o++,s--;if(s)break;s=-1}else if(c===-2)u=!0,o++;else if(c!==-1){a++;break}}if(o){const c={type:n===e.length||u||o<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-o,offset:r.end.offset-o,_index:r.start._index+a,_bufferIndex:a?s:r.start._bufferIndex+s},end:Object.assign({},r.end)};r.end=Object.assign({},c.start),r.start.offset===r.end.offset?Object.assign(r,c):(e.splice(n,0,["enter",c,t],["exit",c,t]),n+=2)}n++}return e}function Vg(e,t,n){let r=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const i={},a=[];let s=[],o=[];const u={consume:v,enter:N,exit:P,attempt:L(A),check:L(p),interrupt:L(p,{interrupt:!0})},c={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:h,sliceSerialize:m,now:y,defineSkip:g,write:f};let d=t.tokenize.call(c,u);return t.resolveAll&&a.push(t),c;function f(j){return s=mt(s,j),w(),s[s.length-1]!==null?[]:(B(t,0),c.events=ei(a,c.events,c),c.events)}function m(j,$){return $g(h(j),$)}function h(j){return zg(s,j)}function y(){const{line:j,column:$,offset:V,_index:z,_bufferIndex:Z}=r;return{line:j,column:$,offset:V,_index:z,_bufferIndex:Z}}function g(j){i[j.line]=j.column,k()}function w(){let j;for(;r._index<s.length;){const $=s[r._index];if(typeof $=="string")for(j=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===j&&r._bufferIndex<$.length;)I($.charCodeAt(r._bufferIndex));else I($)}}function I(j){d=d(j)}function v(j){le(j)?(r.line++,r.column=1,r.offset+=j===-3?2:1,k()):j!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===s[r._index].length&&(r._bufferIndex=-1,r._index++)),c.previous=j}function N(j,$){const V=$||{};return V.type=j,V.start=y(),c.events.push(["enter",V,c]),o.push(V),V}function P(j){const $=o.pop();return $.end=y(),c.events.push(["exit",$,c]),$}function A(j,$){B(j,$.from)}function p(j,$){$.restore()}function L(j,$){return V;function V(z,Z,fe){let re,ke,ve,E;return Array.isArray(z)?ie(z):"tokenize"in z?ie([z]):G(z);function G(K){return ae;function ae(se){const oe=se!==null&&K[se],ce=se!==null&&K.null,Ne=[...Array.isArray(oe)?oe:oe?[oe]:[],...Array.isArray(ce)?ce:ce?[ce]:[]];return ie(Ne)(se)}}function ie(K){return re=K,ke=0,K.length===0?fe:x(K[ke])}function x(K){return ae;function ae(se){return E=Y(),ve=K,K.partial||(c.currentConstruct=K),K.name&&c.parser.constructs.disable.null.includes(K.name)?te():K.tokenize.call($?Object.assign(Object.create(c),$):c,u,ee,te)(se)}}function ee(K){return j(ve,E),Z}function te(K){return E.restore(),++ke<re.length?x(re[ke]):fe}}}function B(j,$){j.resolveAll&&!a.includes(j)&&a.push(j),j.resolve&&dt(c.events,$,c.events.length-$,j.resolve(c.events.slice($),c)),j.resolveTo&&(c.events=j.resolveTo(c.events,c))}function Y(){const j=y(),$=c.previous,V=c.currentConstruct,z=c.events.length,Z=Array.from(o);return{restore:fe,from:z};function fe(){r=j,c.previous=$,c.currentConstruct=V,c.events.length=z,o=Z,k()}}function k(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function zg(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex;let s;if(n===i)s=[e[n].slice(r,a)];else{if(s=e.slice(n,i),r>-1){const o=s[0];typeof o=="string"?s[0]=o.slice(r):s.shift()}a>0&&s.push(e[i].slice(0,a))}return s}function $g(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const a=e[n];let s;if(typeof a=="string")s=a;else switch(a){case-5:{s="\r";break}case-4:{s=`
|
|
49
49
|
`;break}case-3:{s=`\r
|
|
50
50
|
`;break}case-2:{s=t?" ":" ";break}case-1:{if(!t&&i)continue;s=" ";break}default:s=String.fromCharCode(a)}i=a===-2,r.push(s)}return r.join("")}const Wg={42:ct,43:ct,45:ct,48:ct,49:ct,50:ct,51:ct,52:ct,53:ct,54:ct,55:ct,56:ct,57:ct,62:Xc},Gg={91:Yp},Yg={[-2]:vi,[-1]:vi,32:vi},qg={35:Zp,42:vr,45:[xo,vr],60:rg,61:xo,95:vr,96:yo,126:yo},Xg={38:Kc,92:Qc},Qg={[-5]:ki,[-4]:ki,[-3]:ki,33:_g,38:Kc,42:ga,60:[Cp,lg],91:Sg,92:[Kp,Qc],93:ns,95:ga,96:Bp},Kg={null:[ga,Fg]},Jg={null:[42,95]},Zg={null:[]},eb=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Jg,contentInitial:Gg,disable:Zg,document:Wg,flow:qg,flowInitial:Yg,insideSpan:Kg,string:Xg,text:Qg},Symbol.toStringTag,{value:"Module"}));function tb(e){const n=Yc([eb,...(e||{}).extensions||[]]),r={defined:[],lazy:{},constructs:n,content:i(bp),document:i(Tp),flow:i(Mg),string:i(Ug),text:i(Hg)};return r;function i(a){return s;function s(o){return Vg(r,a,o)}}}function nb(e){for(;!Jc(e););return e}const So=/[\0\t\n\r]/g;function rb(){let e=1,t="",n=!0,r;return i;function i(a,s,o){const u=[];let c,d,f,m,h;for(a=t+(typeof a=="string"?a.toString():new TextDecoder(s||void 0).decode(a)),f=0,t="",n&&(a.charCodeAt(0)===65279&&f++,n=void 0);f<a.length;){if(So.lastIndex=f,c=So.exec(a),m=c&&c.index!==void 0?c.index:a.length,h=a.charCodeAt(m),!c){t=a.slice(f);break}if(h===10&&f===m&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),f<m&&(u.push(a.slice(f,m)),e+=m-f),h){case 0:{u.push(65533),e++;break}case 9:{for(d=Math.ceil(e/4)*4,u.push(-2);e++<d;)u.push(-1);break}case 10:{u.push(-4),e=1;break}default:r=!0,e=1}f=m+1}return o&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}const ib=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function ab(e){return e.replace(ib,sb)}function sb(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),a=i===120||i===88;return qc(n.slice(a?2:1),a?16:10)}return ts(n)||e}const il={}.hasOwnProperty;function ob(e,t,n){return typeof t!="string"&&(n=t,t=void 0),ub(n)(nb(tb(n).document().write(rb()(e,t,!0))))}function ub(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:a(je),autolinkProtocol:Y,autolinkEmail:Y,atxHeading:a(We),blockQuote:a(oe),characterEscape:Y,characterReference:Y,codeFenced:a(ce),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:a(ce,s),codeText:a(Ne,s),codeTextData:Y,data:Y,codeFlowValue:Y,definition:a(q),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:a(Re),hardBreakEscape:a(Ke),hardBreakTrailing:a(Ke),htmlFlow:a(et,s),htmlFlowData:Y,htmlText:a(et,s),htmlTextData:Y,image:a(Je),label:s,link:a(je),listItem:a(yt),listItemValue:m,listOrdered:a(ot,f),listUnordered:a(ot),paragraph:a(Te),reference:x,referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:a(We),strong:a(De),thematicBreak:a(U)},exit:{atxHeading:u(),atxHeadingSequence:A,autolink:u(),autolinkEmail:se,autolinkProtocol:ae,blockQuote:u(),characterEscapeValue:k,characterReferenceMarkerHexadecimal:te,characterReferenceMarkerNumeric:te,characterReferenceValue:K,codeFenced:u(w),codeFencedFence:g,codeFencedFenceInfo:h,codeFencedFenceMeta:y,codeFlowValue:k,codeIndented:u(I),codeText:u(Z),codeTextData:k,data:k,definition:u(),definitionDestinationString:P,definitionLabelString:v,definitionTitleString:N,emphasis:u(),hardBreakEscape:u($),hardBreakTrailing:u($),htmlFlow:u(V),htmlFlowData:k,htmlText:u(z),htmlTextData:k,image:u(re),label:ve,labelText:ke,lineEnding:j,link:u(fe),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:ee,resourceDestinationString:E,resourceTitleString:G,resource:ie,setextHeading:u(B),setextHeadingLineSequence:L,setextHeadingText:p,strong:u(),thematicBreak:u()}};al(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(R){let M={type:"root",children:[]};const J={stack:[M],tokenStack:[],config:t,enter:o,exit:c,buffer:s,resume:d,data:n},ue=[];let xe=-1;for(;++xe<R.length;)if(R[xe][1].type==="listOrdered"||R[xe][1].type==="listUnordered")if(R[xe][0]==="enter")ue.push(xe);else{const he=ue.pop();xe=i(R,he,xe)}for(xe=-1;++xe<R.length;){const he=t[R[xe][0]];il.call(he,R[xe][1].type)&&he[R[xe][1].type].call(Object.assign({sliceSerialize:R[xe][2].sliceSerialize},J),R[xe][1])}if(J.tokenStack.length>0){const he=J.tokenStack[J.tokenStack.length-1];(he[1]||Co).call(J,void 0,he[0])}for(M.position={start:Ht(R.length>0?R[0][1].start:{line:1,column:1,offset:0}),end:Ht(R.length>0?R[R.length-2][1].end:{line:1,column:1,offset:0})},xe=-1;++xe<t.transforms.length;)M=t.transforms[xe](M)||M;return M}function i(R,M,J){let ue=M-1,xe=-1,he=!1,Pe,tt,ft,Ze;for(;++ue<=J;){const Ge=R[ue];switch(Ge[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{Ge[0]==="enter"?xe++:xe--,Ze=void 0;break}case"lineEndingBlank":{Ge[0]==="enter"&&(Pe&&!Ze&&!xe&&!ft&&(ft=ue),Ze=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Ze=void 0}if(!xe&&Ge[0]==="enter"&&Ge[1].type==="listItemPrefix"||xe===-1&&Ge[0]==="exit"&&(Ge[1].type==="listUnordered"||Ge[1].type==="listOrdered")){if(Pe){let we=ue;for(tt=void 0;we--;){const He=R[we];if(He[1].type==="lineEnding"||He[1].type==="lineEndingBlank"){if(He[0]==="exit")continue;tt&&(R[tt][1].type="lineEndingBlank",he=!0),He[1].type="lineEnding",tt=we}else if(!(He[1].type==="linePrefix"||He[1].type==="blockQuotePrefix"||He[1].type==="blockQuotePrefixWhitespace"||He[1].type==="blockQuoteMarker"||He[1].type==="listItemIndent"))break}ft&&(!tt||ft<tt)&&(Pe._spread=!0),Pe.end=Object.assign({},tt?R[tt][1].start:Ge[1].end),R.splice(tt||ue,0,["exit",Pe,Ge[2]]),ue++,J++}if(Ge[1].type==="listItemPrefix"){const we={type:"listItem",_spread:!1,start:Object.assign({},Ge[1].start),end:void 0};Pe=we,R.splice(ue,0,["enter",we,Ge[2]]),ue++,J++,ft=void 0,Ze=!0}}}return R[M][1]._spread=he,J}function a(R,M){return J;function J(ue){o.call(this,R(ue),ue),M&&M.call(this,ue)}}function s(){this.stack.push({type:"fragment",children:[]})}function o(R,M,J){this.stack[this.stack.length-1].children.push(R),this.stack.push(R),this.tokenStack.push([M,J]),R.position={start:Ht(M.start),end:void 0}}function u(R){return M;function M(J){R&&R.call(this,J),c.call(this,J)}}function c(R,M){const J=this.stack.pop(),ue=this.tokenStack.pop();if(ue)ue[0].type!==R.type&&(M?M.call(this,R,ue[0]):(ue[1]||Co).call(this,R,ue[0]));else throw new Error("Cannot close `"+R.type+"` ("+Wn({start:R.start,end:R.end})+"): it’s not open");J.position.end=Ht(R.end)}function d(){return es(this.stack.pop())}function f(){this.data.expectingFirstListItemValue=!0}function m(R){if(this.data.expectingFirstListItemValue){const M=this.stack[this.stack.length-2];M.start=Number.parseInt(this.sliceSerialize(R),10),this.data.expectingFirstListItemValue=void 0}}function h(){const R=this.resume(),M=this.stack[this.stack.length-1];M.lang=R}function y(){const R=this.resume(),M=this.stack[this.stack.length-1];M.meta=R}function g(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function w(){const R=this.resume(),M=this.stack[this.stack.length-1];M.value=R.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function I(){const R=this.resume(),M=this.stack[this.stack.length-1];M.value=R.replace(/(\r?\n|\r)$/g,"")}function v(R){const M=this.resume(),J=this.stack[this.stack.length-1];J.label=M,J.identifier=Ct(this.sliceSerialize(R)).toLowerCase()}function N(){const R=this.resume(),M=this.stack[this.stack.length-1];M.title=R}function P(){const R=this.resume(),M=this.stack[this.stack.length-1];M.url=R}function A(R){const M=this.stack[this.stack.length-1];if(!M.depth){const J=this.sliceSerialize(R).length;M.depth=J}}function p(){this.data.setextHeadingSlurpLineEnding=!0}function L(R){const M=this.stack[this.stack.length-1];M.depth=this.sliceSerialize(R).codePointAt(0)===61?1:2}function B(){this.data.setextHeadingSlurpLineEnding=void 0}function Y(R){const J=this.stack[this.stack.length-1].children;let ue=J[J.length-1];(!ue||ue.type!=="text")&&(ue=Ae(),ue.position={start:Ht(R.start),end:void 0},J.push(ue)),this.stack.push(ue)}function k(R){const M=this.stack.pop();M.value+=this.sliceSerialize(R),M.position.end=Ht(R.end)}function j(R){const M=this.stack[this.stack.length-1];if(this.data.atHardBreak){const J=M.children[M.children.length-1];J.position.end=Ht(R.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(M.type)&&(Y.call(this,R),k.call(this,R))}function $(){this.data.atHardBreak=!0}function V(){const R=this.resume(),M=this.stack[this.stack.length-1];M.value=R}function z(){const R=this.resume(),M=this.stack[this.stack.length-1];M.value=R}function Z(){const R=this.resume(),M=this.stack[this.stack.length-1];M.value=R}function fe(){const R=this.stack[this.stack.length-1];if(this.data.inReference){const M=this.data.referenceType||"shortcut";R.type+="Reference",R.referenceType=M,delete R.url,delete R.title}else delete R.identifier,delete R.label;this.data.referenceType=void 0}function re(){const R=this.stack[this.stack.length-1];if(this.data.inReference){const M=this.data.referenceType||"shortcut";R.type+="Reference",R.referenceType=M,delete R.url,delete R.title}else delete R.identifier,delete R.label;this.data.referenceType=void 0}function ke(R){const M=this.sliceSerialize(R),J=this.stack[this.stack.length-2];J.label=ab(M),J.identifier=Ct(M).toLowerCase()}function ve(){const R=this.stack[this.stack.length-1],M=this.resume(),J=this.stack[this.stack.length-1];if(this.data.inReference=!0,J.type==="link"){const ue=R.children;J.children=ue}else J.alt=M}function E(){const R=this.resume(),M=this.stack[this.stack.length-1];M.url=R}function G(){const R=this.resume(),M=this.stack[this.stack.length-1];M.title=R}function ie(){this.data.inReference=void 0}function x(){this.data.referenceType="collapsed"}function ee(R){const M=this.resume(),J=this.stack[this.stack.length-1];J.label=M,J.identifier=Ct(this.sliceSerialize(R)).toLowerCase(),this.data.referenceType="full"}function te(R){this.data.characterReferenceType=R.type}function K(R){const M=this.sliceSerialize(R),J=this.data.characterReferenceType;let ue;J?(ue=qc(M,J==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):ue=ts(M);const xe=this.stack.pop();xe.value+=ue,xe.position.end=Ht(R.end)}function ae(R){k.call(this,R);const M=this.stack[this.stack.length-1];M.url=this.sliceSerialize(R)}function se(R){k.call(this,R);const M=this.stack[this.stack.length-1];M.url="mailto:"+this.sliceSerialize(R)}function oe(){return{type:"blockquote",children:[]}}function ce(){return{type:"code",lang:null,meta:null,value:""}}function Ne(){return{type:"inlineCode",value:""}}function q(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Re(){return{type:"emphasis",children:[]}}function We(){return{type:"heading",depth:0,children:[]}}function Ke(){return{type:"break"}}function et(){return{type:"html",value:""}}function Je(){return{type:"image",title:null,url:"",alt:null}}function je(){return{type:"link",title:null,url:"",children:[]}}function ot(R){return{type:"list",ordered:R.type==="listOrdered",start:null,spread:R._spread,children:[]}}function yt(R){return{type:"listItem",spread:R._spread,checked:null,children:[]}}function Te(){return{type:"paragraph",children:[]}}function De(){return{type:"strong",children:[]}}function Ae(){return{type:"text",value:""}}function U(){return{type:"thematicBreak"}}}function Ht(e){return{line:e.line,column:e.column,offset:e.offset}}function al(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?al(e,r):cb(e,r)}}function cb(e,t){let n;for(n in t)if(il.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function Co(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Wn({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Wn({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Wn({start:t.start,end:t.end})+") is still open")}function lb(e){const t=this;t.parser=n;function n(r){return ob(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function db(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function fb(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
|
|
@@ -81,7 +81,7 @@ For more details see https://formatjs.io/docs/getting-started/message-distributi
|
|
|
81
81
|
flex
|
|
82
82
|
justify-center
|
|
83
83
|
items-center
|
|
84
|
-
`,children:b.jsx(Xa,{facet:e.agent.display[Q.AgentDisplayFacetRoleType.ASSISTANT]})})},tx=({content:e,metaData:t,context:n,seenRootEl:r})=>{const{chatlineLabelAssistantTranslation:i,chatlineLabelCustomerSupportTranslation:a}=$a(),s=t?.authorType==="customer_support_operator"?t.customerSupportAuthorName??a:i,o=Q.formatCustomerSupportProviderText({text:e??"",provider:t?.customerSupportProvider});return b.jsx(gs,{children:b.jsx("div",{className:"chatLineAssistant flex justify-start",children:b.jsxs("div",{className:`mr-auto w-full rounded-2xl rounded-bl-md px-4 py-3 transition-all duration-300 text-left ${t?.isErrorMessage?"bg-red-100 text-red-800 shadow-md animate-fade-in":"bg-slate-100 text-gray-800 shadow-sm"}`,children:[b.jsx(xd,{className:"logoWrapper--assistant w-full justify-start text-left mb-2 text-xs",logo:b.jsx(Sd,{}),label:s}),b.jsx("div",{className:"chatsystem-markdown",children:b.jsx(us,{remarkPlugins:[Q_],remarkRehypeOptions:{passThrough:["link"]},rehypePlugins:[ps],components:{a:({node:u,href:c,children:d,...f})=>b.jsx(ex,{href:c??"",...f,context:n,seenRootEl:r,children:d})},children:o})})]})})})},nx=({content:e,metaData:t})=>{const n=t?.isErrorMessage;return b.jsx(gs,{children:b.jsx("div",{className:"chatLineSystemMessage flex justify-center px-2","data-system-event":t?.systemEvent,children:b.jsx("div",{className:`max-w-[90%] rounded-lg border px-3 py-2 text-center text-xs leading-relaxed shadow-sm ${n?"border-red-200 bg-red-50 text-red-800":"border-slate-200 bg-slate-50 text-slate-600"}`,children:b.jsx(us,{rehypePlugins:[ps],children:e??""})})})})},ys=({children:e,modifier:t,state:n,className:r})=>b.jsx("section",{className:`chatsystem-interactive-widget chatsystem-interactive-widget--${t} chatsystem-interactive-widget--state-${n??"active"} ${r??""} my-2 rounded-xl border border-slate-200 bg-white p-4 text-slate-800 shadow-sm`,children:e}),rn=({title:e,description:t})=>e||t?b.jsxs("header",{className:"chatsystem-interactive-widget__copy mb-3 space-y-1",children:[e?b.jsx("h3",{className:"chatsystem-interactive-widget__title text-sm font-semibold text-slate-900",children:e}):null,t?b.jsx("p",{className:"chatsystem-interactive-widget__description text-sm leading-5 text-slate-600",children:t}):null]}):null,ci=({children:e})=>b.jsx("div",{className:"chatsystem-interactive-widget__actions mt-3 flex flex-wrap gap-2",children:e}),nr=({children:e,style:t="primary",disabled:n,type:r="button",onClick:i})=>b.jsx("button",{type:r,disabled:n,onClick:i,className:`chatsystem-interactive-widget__button chatsystem-interactive-widget__button--${t} inline-flex min-h-9 items-center justify-center rounded-lg border px-3 py-2 text-sm font-semibold transition disabled:cursor-not-allowed disabled:opacity-60`,children:e}),Sn=({id:e,label:t,description:n,required:r,children:i})=>b.jsxs("div",{className:"chatsystem-interactive-widget__field grid gap-1.5",children:[b.jsxs("label",{className:"chatsystem-interactive-widget__label text-sm font-medium text-slate-800",htmlFor:e,children:[t,r?b.jsx("span",{"aria-hidden":"true",children:" *"}):null]}),n?b.jsx("p",{className:"chatsystem-interactive-widget__field-description text-xs text-slate-500",children:n}):null,i]}),vn=({children:e,tone:t="neutral"})=>b.jsx("div",{className:`chatsystem-interactive-widget__status chatsystem-interactive-widget__status--${t} rounded-lg px-3 py-2 text-sm`,role:t==="danger"?"alert":"status",children:e}),Wi="chatsystem-interactive-widget__control w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 outline-none transition focus:border-[var(--chatsystem-primary-color)] focus:ring-2 focus:ring-[color-mix(in_srgb,var(--chatsystem-primary-color)_20%,transparent)] disabled:bg-slate-50 disabled:text-slate-500",rx=({widget:e})=>{const t=Ac(),n=Yt(),r=e.state!=="active",i=n.formatMessage({id:"chatbot.interactiveWidget.submitted",defaultMessage:"Sent"}),a=n.formatMessage({id:"chatbot.interactiveWidget.cancelled",defaultMessage:"Cancelled"}),s=n.formatMessage({id:"chatbot.interactiveWidget.submitting",defaultMessage:"Sending…"}),o=n.formatMessage({id:"chatbot.interactiveWidget.unavailable",defaultMessage:"This interaction is no longer available."}),u=e.responseMode==="local_preview",c=n.formatMessage({id:"chatbot.interactiveWidget.preview.notice",defaultMessage:"Demo mode — this form reproduces the real experience. Submitting it does not create a request or transmit your answers."}),d=n.formatMessage({id:"chatbot.interactiveWidget.preview.completed",defaultMessage:"Simulation complete. In production, this request would be saved in ChatSystem and then sent to any configured destinations."}),f=n.formatMessage({id:"chatbot.interactiveWidget.preview.cancelled",defaultMessage:"Simulation cancelled. No information was transmitted."}),m=(y,g)=>{y.kind==="open_url"&&window.open(y.url,"_blank","noopener,noreferrer"),t.submitInteractiveWidget({instanceId:e.instanceId,actionId:y.id,data:g,cancel:y.kind==="cancel"})};let h=null;return e.state==="submitting"&&(h=s),e.state==="submitted"&&(h=u?d:i),e.state==="cancelled"&&(h=u?f:a),e.state==="unavailable"&&(h=o),b.jsxs(ys,{modifier:e.widgetType.replace(/_/g,"-"),state:e.state,className:u?"chatsystem-interactive-widget--local-preview":void 0,children:[u?b.jsx("div",{className:"chatsystem-interactive-widget__preview-notice mb-3 rounded-lg border border-sky-200 bg-sky-50 px-3 py-2 text-xs leading-5 text-sky-900",children:c}):null,b.jsx(ix,{widget:e,disabled:r,onAction:m}),h?b.jsx("div",{className:`mt-3 ${u?"chatsystem-interactive-widget__preview-result":""}`,children:b.jsx(vn,{tone:e.state==="unavailable"?"warning":"success",children:h})}):null]})},ix=({widget:e,disabled:t,onAction:n})=>{const r=e.presentation;return r.type==="structured_form"?b.jsx(ax,{instanceId:e.instanceId,presentation:r,disabled:t,onSubmit:i=>n({id:"submit",label:r.submitLabel,kind:"submit"},i),onCancel:r.cancelLabel?()=>n({id:"cancel",label:r.cancelLabel,kind:"cancel"}):void 0}):r.type==="card_list"?b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),b.jsx("div",{className:"chatsystem-interactive-widget__cards grid gap-3",children:r.cards.map(i=>b.jsxs("article",{className:"chatsystem-interactive-widget__card overflow-hidden rounded-lg border border-slate-200",children:[i.imageUrl?b.jsx("img",{className:"chatsystem-interactive-widget__card-image h-32 w-full object-cover",src:i.imageUrl,alt:"",loading:"lazy"}):null,b.jsxs("div",{className:"chatsystem-interactive-widget__card-body p-3",children:[i.eyebrow?b.jsx("p",{className:"text-xs font-semibold uppercase text-slate-500",children:i.eyebrow}):null,b.jsx("h4",{className:"text-sm font-semibold text-slate-900",children:i.title}),i.description?b.jsx("p",{className:"mt-1 text-sm text-slate-600",children:i.description}):null,i.metadata?.map(a=>b.jsxs("div",{className:"chatsystem-interactive-widget__detail mt-2 flex justify-between gap-3 text-xs",children:[b.jsx("span",{className:"text-slate-500",children:a.label}),b.jsx("span",{className:"font-medium text-slate-800",children:a.value})]},a.label)),i.actions?.length?b.jsx(Cr,{actions:i.actions,disabled:t,onAction:n}):null]})]},i.id))})]}):r.type==="status_summary"?b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),b.jsx(vn,{tone:r.tone,children:r.items?.map(i=>b.jsxs("div",{className:"chatsystem-interactive-widget__detail flex justify-between gap-3 py-1",children:[b.jsx("span",{children:i.label}),b.jsx("strong",{children:i.value})]},i.label))}),r.actions?.length?b.jsx(Cr,{actions:r.actions,disabled:t,onAction:n}):null]}):r.type==="explicit_confirmation"?b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),r.details?.map(i=>b.jsxs("div",{className:"chatsystem-interactive-widget__detail flex justify-between gap-3 border-b border-slate-100 py-2 text-sm",children:[b.jsx("span",{className:"text-slate-500",children:i.label}),b.jsx("strong",{children:i.value})]},i.label)),b.jsx(Cr,{disabled:t,onAction:n,actions:[{id:"confirm",label:r.confirmLabel,kind:"submit",style:r.tone==="danger"?"danger":"primary"},{id:"cancel",label:r.cancelLabel,kind:"cancel",style:"secondary"}]})]}):b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),b.jsx(Cr,{actions:r.actions,disabled:t,onAction:n})]})},Cr=({actions:e,disabled:t,onAction:n})=>b.jsx(ci,{children:e.map(r=>b.jsx(nr,{style:r.style,disabled:t,onClick:()=>n(r),children:r.label},r.id))}),ax=({instanceId:e,presentation:t,disabled:n,onSubmit:r,onCancel:i})=>{const[a,s]=S.useState({}),o=c=>{c.preventDefault(),r(a)},u=(c,d)=>s(f=>({...f,[c.id]:d}));return b.jsxs("form",{className:"chatsystem-interactive-widget__form grid gap-3",onSubmit:o,children:[b.jsx(rn,{title:t.title,description:t.description}),t.fields.map(c=>b.jsx(Sn,{id:`${e}-${c.id}`,label:c.label,description:c.description,required:c.required,children:b.jsx(sx,{id:`${e}-${c.id}`,field:c,value:a[c.id],disabled:n,onChange:d=>u(c,d)})},c.id)),b.jsxs(ci,{children:[b.jsx(nr,{type:"submit",disabled:n,children:t.submitLabel}),t.cancelLabel?b.jsx(nr,{style:"secondary",disabled:n,onClick:i,children:t.cancelLabel}):null]})]})},sx=({id:e,field:t,value:n,disabled:r,onChange:i})=>t.type==="checkbox"?b.jsx("input",{id:e,className:"chatsystem-interactive-widget__checkbox h-4 w-4",type:"checkbox",checked:n===!0,required:t.required,disabled:r,onChange:a=>i(a.currentTarget.checked)}):t.type==="select"?b.jsxs("select",{id:e,className:Wi,value:typeof n=="string"?n:"",required:t.required,disabled:r,onChange:a=>i(a.currentTarget.value),children:[b.jsx("option",{value:"",children:t.placeholder??""}),t.options.map(a=>b.jsx("option",{value:a.value,children:a.label},a.value))]}):t.type==="textarea"?b.jsx("textarea",{id:e,className:`${Wi} min-h-24 resize-y`,value:typeof n=="string"?n:"",required:t.required,disabled:r,placeholder:t.placeholder,minLength:t.minLength,maxLength:t.maxLength,onChange:a=>i(a.currentTarget.value)}):b.jsx("input",{id:e,className:Wi,type:t.type,value:typeof n=="string"?n:"",required:t.required,disabled:r,placeholder:t.placeholder,minLength:t.minLength,maxLength:t.maxLength,onChange:a=>i(a.currentTarget.value)}),ox=({userType:e,content:t,metaData:n,context:r,seenRootEl:i})=>{if(n?.interactiveWidget)return b.jsx(rx,{widget:n.interactiveWidget});if(n?.messageKind==="system")return b.jsx(nx,{content:t,metaData:n});const a=e==="user",s=e==="assistant";return b.jsxs(b.Fragment,{children:[a&&b.jsx(jy,{content:t,metaData:n}),s&&b.jsx(tx,{content:t,metaData:n,context:r,seenRootEl:i})]})};function ux(e,t,n){let[r,i]=S.useState(e||t),a=S.useRef(e!==void 0),s=e!==void 0;S.useEffect(()=>{let c=a.current;c!==s&&console.warn(`WARN: A component changed from ${c?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}.`),a.current=s},[s]);let o=s?e:r,u=S.useCallback((c,...d)=>{let f=(m,...h)=>{n&&(Object.is(o,m)||n(m,...h)),s||(o=m)};typeof c=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),i((h,...y)=>{let g=c(s?o:h,...y);return f(g,...d),s?h:g})):(s||i(c),f(c,...d))},[s,o,n]);return[o,u]}const Fr={prefix:String(Math.round(Math.random()*1e10)),current:0},Cd=S.createContext(Fr),cx=S.createContext(!1);let lx=!!(typeof window<"u"&&window.document&&window.document.createElement),Gi=new WeakMap;function dx(e=!1){let t=S.useContext(Cd),n=S.useRef(null);if(n.current===null&&!e){var r,i;let a=(i=S.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||i===void 0||(r=i.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(a){let s=Gi.get(a);s==null?Gi.set(a,{id:t.current,state:a.memoizedState}):a.memoizedState!==s.state&&(t.current=s.id,Gi.delete(a))}n.current=++t.current}return n.current}function fx(e){let t=S.useContext(Cd);t===Fr&&!lx&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=dx(!!e),r=t===Fr&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${r}-${n}`}function hx(e){let t=S.useId(),[n]=S.useState(Ex()),r=n||process.env.NODE_ENV==="test"?"react-aria":`react-aria${Fr.prefix}`;return e||`${r}-${t}`}const mx=typeof S.useId=="function"?hx:fx;function px(){return!1}function gx(){return!0}function bx(e){return()=>{}}function Ex(){return typeof S.useSyncExternalStore=="function"?S.useSyncExternalStore(bx,px,gx):S.useContext(cx)}function Id(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Id(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Tx(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Id(e))&&(r&&(r+=" "),r+=t);return r}const mn=typeof document<"u"?S.useLayoutEffect:()=>{};function sn(e){const t=S.useRef(null);return mn(()=>{t.current=e},[e]),S.useCallback((...n)=>{const r=t.current;return r?.(...n)},[])}function yx(e){let[t,n]=S.useState(e),r=S.useRef(null),i=sn(()=>{if(!r.current)return;let s=r.current.next();if(s.done){r.current=null;return}t===s.value?i():n(s.value)});mn(()=>{r.current&&i()});let a=sn(s=>{r.current=s(t),i()});return[t,a]}let _x=!!(typeof window<"u"&&window.document&&window.document.createElement),Ur=new Map;function Hr(e){let[t,n]=S.useState(e),r=S.useRef(null),i=mx(t),a=S.useCallback(s=>{r.current=s},[]);return _x&&Ur.set(i,a),mn(()=>{let s=i;return()=>{Ur.delete(s)}},[i]),S.useEffect(()=>{let s=r.current;s&&(r.current=null,n(s))}),i}function xx(e,t){if(e===t)return e;let n=Ur.get(e);if(n)return n(t),t;let r=Ur.get(t);return r?(r(e),e):t}function fu(e=[]){let t=Hr(),[n,r]=yx(t),i=S.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return mn(i,[t,i,...e]),n}function Sx(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const hr=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},jr=e=>e&&"window"in e&&e.window===e?e:hr(e).defaultView||window;function Vr(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];for(let i in r){let a=t[i],s=r[i];typeof a=="function"&&typeof s=="function"&&i[0]==="o"&&i[1]==="n"&&i.charCodeAt(2)>=65&&i.charCodeAt(2)<=90?t[i]=Sx(a,s):(i==="className"||i==="UNSAFE_className")&&typeof a=="string"&&typeof s=="string"?t[i]=Tx(a,s):i==="id"&&a&&s?t.id=xx(a,s):t[i]=s!==void 0?s:a}}return t}const Cx=new Set(["id"]),Ix=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),Ax=new Set(["href","target","rel","download","ping","referrerPolicy"]),wx=/^(data-.*)$/;function vx(e,t={}){let{labelable:n,isLink:r,propNames:i}=t,a={};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(Cx.has(s)||n&&Ix.has(s)||r&&Ax.has(s)||i?.has(s)||wx.test(s))&&(a[s]=e[s]);return a}function hu(e){if(kx())e.focus({preventScroll:!0});else{let t=Nx(e);e.focus(),Rx(t)}}let Ir=null;function kx(){if(Ir==null){Ir=!1;try{document.createElement("div").focus({get preventScroll(){return Ir=!0,!0}})}catch{}}return Ir}function Nx(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function Rx(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}function Ox(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function Lx(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function Dx(){return Lx(/^Mac/i)}function Px(){return Ox(/Android/i)}let Tn=new Map,va=new Set;function mu(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let i=Tn.get(r.target);i||(i=new Set,Tn.set(r.target,i),r.target.addEventListener("transitioncancel",n,{once:!0})),i.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let i=Tn.get(r.target);if(i&&(i.delete(r.propertyName),i.size===0&&(r.target.removeEventListener("transitioncancel",n),Tn.delete(r.target)),Tn.size===0)){for(let a of va)a();va.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?mu():document.addEventListener("DOMContentLoaded",mu));function Mx(e){requestAnimationFrame(()=>{Tn.size===0?e():va.add(e)})}function Bx(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=Hr(n),i&&r?i=[...new Set([n,...i.trim().split(/\s+/)])].join(" "):i&&(i=i.trim().split(/\s+/).join(" ")),!r&&!i&&t&&(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function Fx(e,t){mn(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function Ux(e){return e.mozInputSource===0&&e.isTrusted?!0:Px()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Hx(e,t,n){let r=S.useRef(t),i=sn(()=>{n&&n(r.current)});S.useEffect(()=>{var a;let s=e==null||(a=e.current)===null||a===void 0?void 0:a.form;return s?.addEventListener("reset",i),()=>{s?.removeEventListener("reset",i)}},[e,i])}const jx=S.createContext({register:()=>{}});jx.displayName="PressResponderContext";class Vx{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(t,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function zx(e){let t=S.useRef({isFocused:!1,observer:null});mn(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=sn(r=>{e?.(r)});return S.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let i=r.target,a=s=>{t.current.isFocused=!1,i.disabled&&n(new Vx("blur",s)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};i.addEventListener("focusout",a,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&i.disabled){var s;(s=t.current.observer)===null||s===void 0||s.disconnect();let o=i===document.activeElement?null:document.activeElement;i.dispatchEvent(new FocusEvent("blur",{relatedTarget:o})),i.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:o}))}}),t.current.observer.observe(i,{attributes:!0,attributeFilter:["disabled"]})}},[n])}function $x(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e;const a=S.useCallback(u=>{if(u.target===u.currentTarget)return r&&r(u),i&&i(!1),!0},[r,i]),s=zx(a),o=S.useCallback(u=>{u.target===u.currentTarget&&document.activeElement===u.target&&(n&&n(u),i&&i(!0),s(u))},[i,n,s]);return{focusProps:{onFocus:!t&&(n||i||r)?o:void 0,onBlur:!t&&(r||i)?a:void 0}}}let Dn=null,Wx=new Set,Jn=new Map,ln=!1,ka=!1;function li(e,t){for(let n of Wx)n(e,t)}function Gx(e){return!(e.metaKey||!Dx()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function zr(e){ln=!0,Gx(e)&&(Dn="keyboard",li("keyboard",e))}function gt(e){Dn="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(ln=!0,li("pointer",e))}function Ad(e){Ux(e)&&(ln=!0,Dn="virtual")}function wd(e){e.target===window||e.target===document||(!ln&&!ka&&(Dn="virtual",li("virtual",e)),ln=!1,ka=!1)}function vd(){ln=!1,ka=!0}function pu(e){if(typeof window>"u"||Jn.get(jr(e)))return;const t=jr(e),n=hr(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){ln=!0,r.apply(this,arguments)},n.addEventListener("keydown",zr,!0),n.addEventListener("keyup",zr,!0),n.addEventListener("click",Ad,!0),t.addEventListener("focus",wd,!0),t.addEventListener("blur",vd,!1),typeof PointerEvent<"u"?(n.addEventListener("pointerdown",gt,!0),n.addEventListener("pointermove",gt,!0),n.addEventListener("pointerup",gt,!0)):(n.addEventListener("mousedown",gt,!0),n.addEventListener("mousemove",gt,!0),n.addEventListener("mouseup",gt,!0)),t.addEventListener("beforeunload",()=>{kd(e)},{once:!0}),Jn.set(t,{focus:r})}const kd=(e,t)=>{const n=jr(e),r=hr(e);t&&r.removeEventListener("DOMContentLoaded",t),Jn.has(n)&&(n.HTMLElement.prototype.focus=Jn.get(n).focus,r.removeEventListener("keydown",zr,!0),r.removeEventListener("keyup",zr,!0),r.removeEventListener("click",Ad,!0),n.removeEventListener("focus",wd,!0),n.removeEventListener("blur",vd,!1),typeof PointerEvent<"u"?(r.removeEventListener("pointerdown",gt,!0),r.removeEventListener("pointermove",gt,!0),r.removeEventListener("pointerup",gt,!0)):(r.removeEventListener("mousedown",gt,!0),r.removeEventListener("mousemove",gt,!0),r.removeEventListener("mouseup",gt,!0)),Jn.delete(n))};function Yx(e){const t=hr(e);let n;return t.readyState!=="loading"?pu(e):(n=()=>{pu(e)},t.addEventListener("DOMContentLoaded",n)),()=>kd(e,n)}typeof document<"u"&&Yx();function qx(){return Dn}function Xx(e){Dn=e,li(e,null)}function gu(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented(){return n.isDefaultPrevented()},stopPropagation(){console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.")},continuePropagation(){t=!1}};e(r),t&&n.stopPropagation()}}function Qx(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:gu(e.onKeyDown),onKeyUp:gu(e.onKeyUp)}}}function Kx(e){const t=hr(e);if(qx()==="virtual"){let n=t.activeElement;Mx(()=>{t.activeElement===n&&e.isConnected&&hu(e)})}else hu(e)}function Jx(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}class _s{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let i=this.fastMap.get(n??null);if(!i)return;let a=new bu({scopeRef:t});i.addChild(a),a.parent=i,this.fastMap.set(t,a),r&&(a.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let a of this.traverse())a!==n&&n.nodeToRestore&&a.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&Jx(a.nodeToRestore,n.scopeRef.current)&&(a.nodeToRestore=n.nodeToRestore);let i=n.children;r&&(r.removeChild(n),i.size>0&&i.forEach(a=>r&&r.addChild(a))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new _s;var r;for(let i of this.traverse())n.addTreeNode(i.scopeRef,(r=(t=i.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,i.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new bu({scopeRef:null}),this.fastMap.set(null,this.root)}}class bu{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}new _s;let Zx=S.createContext(null);function eS(e){let t=S.useContext(Zx)||{};Fx(t,e);let{ref:n,...r}=t;return r}function tS(e,t){let{focusProps:n}=$x(e),{keyboardProps:r}=Qx(e),i=Vr(n,r),a=eS(t),s=e.isDisabled?{}:a,o=S.useRef(e.autoFocus);return S.useEffect(()=>{o.current&&t.current&&Kx(t.current),o.current=!1},[t]),{focusableProps:Vr({...i,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},s)}}function nS(e,t,n){let{validationBehavior:r,focus:i}=e;mn(()=>{if(r==="native"&&n?.current){let u=t.realtimeValidation.isInvalid?t.realtimeValidation.validationErrors.join(" ")||"Invalid value.":"";n.current.setCustomValidity(u),n.current.hasAttribute("title")||(n.current.title=""),t.realtimeValidation.isInvalid||t.updateValidation(iS(n.current))}});let a=sn(()=>{t.resetValidation()}),s=sn(u=>{var c;t.displayValidation.isInvalid||t.commitValidation();let d=n==null||(c=n.current)===null||c===void 0?void 0:c.form;if(!u.defaultPrevented&&n&&d&&aS(d)===n.current){var f;i?i():(f=n.current)===null||f===void 0||f.focus(),Xx("keyboard")}u.preventDefault()}),o=sn(()=>{t.commitValidation()});S.useEffect(()=>{let u=n?.current;if(!u)return;let c=u.form;return u.addEventListener("invalid",s),u.addEventListener("change",o),c?.addEventListener("reset",a),()=>{u.removeEventListener("invalid",s),u.removeEventListener("change",o),c?.removeEventListener("reset",a)}},[n,s,o,a,r])}function rS(e){let t=e.validity;return{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing,valid:t.valid}}function iS(e){return{isInvalid:!e.validity.valid,validationDetails:rS(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function aS(e){for(let t=0;t<e.elements.length;t++){let n=e.elements[t];if(!n.validity.valid)return n}return null}const Nd={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},Rd={...Nd,customError:!0,valid:!1},Hn={isInvalid:!1,validationDetails:Nd,validationErrors:[]},sS=S.createContext({}),Eu="__formValidationState"+Date.now();function oS(e){if(e[Eu]){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}=e[Eu];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}}return uS(e)}function uS(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:a,validate:s,validationBehavior:o="aria"}=e;n&&(t||(t=n==="invalid"));let u=t?{isInvalid:!0,validationErrors:[],validationDetails:Rd}:null,c=S.useMemo(()=>Tu(cS(s,i)),[s,i]);a?.validationDetails.valid&&(a=null);let d=S.useContext(sS),f=S.useMemo(()=>r?Array.isArray(r)?r.flatMap(k=>Na(d[k])):Na(d[r]):[],[d,r]),[m,h]=S.useState(d),[y,g]=S.useState(!1);d!==m&&(h(d),g(!1));let w=S.useMemo(()=>Tu(y?[]:f),[y,f]),I=S.useRef(Hn),[v,N]=S.useState(Hn),P=S.useRef(Hn),A=()=>{if(!p)return;L(!1);let k=c||a||I.current;Yi(k,P.current)||(P.current=k,N(k))},[p,L]=S.useState(!1);return S.useEffect(A),{realtimeValidation:u||w||c||a||Hn,displayValidation:o==="native"?u||w||v:u||w||c||a||v,updateValidation(k){o==="aria"&&!Yi(v,k)?N(k):I.current=k},resetValidation(){let k=Hn;Yi(k,P.current)||(P.current=k,N(k)),o==="native"&&L(!1),g(!0)},commitValidation(){o==="native"&&L(!0),g(!0)}}}function Na(e){return e?Array.isArray(e)?e:[e]:[]}function cS(e,t){if(typeof e=="function"){let n=e(t);if(n&&typeof n!="boolean")return Na(n)}return[]}function Tu(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:Rd}:null}function Yi(e,t){return e===t?!0:e&&t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((n,r)=>n===t.validationErrors[r])&&Object.entries(e.validationDetails).every(([n,r])=>t.validationDetails[n]===r)}function lS(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:a="label"}=e;t=Hr(t);let s=Hr(),o={};n?(r=r?`${s} ${r}`:s,o={id:s,htmlFor:a==="label"?t:void 0}):!r&&!i&&console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility");let u=Bx({id:t,"aria-label":i,"aria-labelledby":r});return{labelProps:o,fieldProps:u}}function dS(e){let{description:t,errorMessage:n,isInvalid:r,validationState:i}=e,{labelProps:a,fieldProps:s}=lS(e),o=fu([!!t,!!n,r,i]),u=fu([!!t,!!n,r,i]);return s=Vr(s,{"aria-describedby":[o,u,e["aria-describedby"]].filter(Boolean).join(" ")||void 0}),{labelProps:a,fieldProps:s,descriptionProps:{id:o},errorMessageProps:{id:u}}}function fS(e,t){let{inputElementType:n="input",isDisabled:r=!1,isRequired:i=!1,isReadOnly:a=!1,type:s="text",validationBehavior:o="aria"}=e,[u,c]=ux(e.value,e.defaultValue||"",e.onChange),{focusableProps:d}=tS(e,t),f=oS({...e,value:u}),{isInvalid:m,validationErrors:h,validationDetails:y}=f.displayValidation,{labelProps:g,fieldProps:w,descriptionProps:I,errorMessageProps:v}=dS({...e,isInvalid:m,errorMessage:e.errorMessage||h}),N=vx(e,{labelable:!0});const P={type:s,pattern:e.pattern};return Hx(t,u,c),nS(e,f,t),S.useEffect(()=>{if(t.current instanceof jr(t.current).HTMLTextAreaElement){let A=t.current;Object.defineProperty(A,"defaultValue",{get:()=>A.value,set:()=>{},configurable:!0})}},[t]),{labelProps:g,inputProps:Vr(N,n==="input"&&P,{disabled:r,readOnly:a,required:i&&o==="native","aria-required":i&&o==="aria"||void 0,"aria-invalid":m||void 0,"aria-errormessage":e["aria-errormessage"],"aria-activedescendant":e["aria-activedescendant"],"aria-autocomplete":e["aria-autocomplete"],"aria-haspopup":e["aria-haspopup"],value:u,onChange:A=>c(A.target.value),autoComplete:e.autoComplete,autoCapitalize:e.autoCapitalize,maxLength:e.maxLength,minLength:e.minLength,name:e.name,placeholder:e.placeholder,inputMode:e.inputMode,onCopy:e.onCopy,onCut:e.onCut,onPaste:e.onPaste,onCompositionEnd:e.onCompositionEnd,onCompositionStart:e.onCompositionStart,onCompositionUpdate:e.onCompositionUpdate,onSelect:e.onSelect,onBeforeInput:e.onBeforeInput,onInput:e.onInput,...d,...w}),descriptionProps:I,errorMessageProps:v,isInvalid:m,validationErrors:h,validationDetails:y}}const hS=e=>e.charCodeAt(e.length-1)===10,mS=e=>{const[t,n]=S.useState(""),r=()=>{g.current&&(g.current.style.height=g.current.scrollHeight+"px")},i=()=>{g.current&&(g.current.style.height="48px")},a=k=>{n(k)};S.useEffect(r,[t]);const{label:s,SubmitComponent:o,onSubmit:u,isLoadingStream:c,audioEnabled:d=!1,MicComponent:f,onPressMicButton:m,LoadingComponent:h,onPressLoadingButton:y}=e,g=S.useRef(null),{labelProps:w,inputProps:I}=fS({...e,inputElementType:"textarea"},g),v=k=>{hS(k.target.value)||a(k.target.value)},N=k=>{if(k.key==="Enter"||k.code==="Enter"||k.keyCode===13||k.code==="NumpadEnter"){if(k.shiftKey)a(t+`
|
|
84
|
+
`,children:b.jsx(Xa,{facet:e.agent.display[Q.AgentDisplayFacetRoleType.ASSISTANT]})})},tx=({content:e,metaData:t,context:n,seenRootEl:r})=>{const{chatlineLabelAssistantTranslation:i,chatlineLabelCustomerSupportTranslation:a}=$a(),s=t?.authorType==="customer_support_operator"?t.customerSupportAuthorName??a:i,o=Q.formatCustomerSupportProviderText({text:e??"",provider:t?.customerSupportProvider});return b.jsx(gs,{children:b.jsx("div",{className:"chatLineAssistant flex justify-start",children:b.jsxs("div",{className:`mr-auto w-full rounded-2xl rounded-bl-md px-4 py-3 transition-all duration-300 text-left ${t?.isErrorMessage?"bg-red-100 text-red-800 shadow-md animate-fade-in":"bg-slate-100 text-gray-800 shadow-sm"}`,children:[b.jsx(xd,{className:"logoWrapper--assistant w-full justify-start text-left mb-2 text-xs",logo:b.jsx(Sd,{}),label:s}),b.jsx("div",{className:"chatsystem-markdown",children:b.jsx(us,{remarkPlugins:[Q_],remarkRehypeOptions:{passThrough:["link"]},rehypePlugins:[ps],components:{a:({node:u,href:c,children:d,...f})=>b.jsx(ex,{href:c??"",...f,context:n,seenRootEl:r,children:d})},children:o})})]})})})},nx=({content:e,metaData:t})=>{const n=t?.isErrorMessage;return b.jsx(gs,{children:b.jsx("div",{className:"chatLineSystemMessage flex justify-center px-2","data-system-event":t?.systemEvent,children:b.jsx("div",{className:`max-w-[90%] rounded-lg border px-3 py-2 text-center text-xs leading-relaxed shadow-sm ${n?"border-red-200 bg-red-50 text-red-800":"border-slate-200 bg-slate-50 text-slate-600"}`,children:b.jsx(us,{rehypePlugins:[ps],children:e??""})})})})},ys=({children:e,modifier:t,state:n,className:r})=>b.jsx("section",{className:`chatsystem-interactive-widget chatsystem-interactive-widget--${t} chatsystem-interactive-widget--state-${n??"active"} ${r??""} my-2 rounded-xl border border-slate-200 bg-white p-4 text-slate-800 shadow-sm`,children:e}),rn=({title:e,description:t})=>e||t?b.jsxs("header",{className:"chatsystem-interactive-widget__copy mb-3 space-y-1",children:[e?b.jsx("h3",{className:"chatsystem-interactive-widget__title text-sm font-semibold text-slate-900",children:e}):null,t?b.jsx("p",{className:"chatsystem-interactive-widget__description text-sm leading-5 text-slate-600",children:t}):null]}):null,ci=({children:e})=>b.jsx("div",{className:"chatsystem-interactive-widget__actions mt-3 flex flex-wrap gap-2",children:e}),nr=({children:e,style:t="primary",disabled:n,type:r="button",onClick:i})=>b.jsx("button",{type:r,disabled:n,onClick:i,className:`chatsystem-interactive-widget__button chatsystem-interactive-widget__button--${t} inline-flex min-h-9 items-center justify-center rounded-lg border px-3 py-2 text-sm font-semibold transition disabled:cursor-not-allowed disabled:opacity-60`,children:e}),Sn=({id:e,label:t,description:n,required:r,children:i})=>b.jsxs("div",{className:"chatsystem-interactive-widget__field grid gap-1.5",children:[b.jsxs("label",{className:"chatsystem-interactive-widget__label text-sm font-medium text-slate-800",htmlFor:e,children:[t,r?b.jsx("span",{"aria-hidden":"true",children:" *"}):null]}),n?b.jsx("p",{className:"chatsystem-interactive-widget__field-description text-xs text-slate-500",children:n}):null,i]}),vn=({children:e,tone:t="neutral"})=>b.jsx("div",{className:`chatsystem-interactive-widget__status chatsystem-interactive-widget__status--${t} rounded-lg px-3 py-2 text-sm`,role:t==="danger"?"alert":"status",children:e}),Wi="chatsystem-interactive-widget__control w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 outline-none transition focus:border-[var(--chatsystem-primary-color)] focus:ring-2 focus:ring-[color-mix(in_srgb,var(--chatsystem-primary-color)_20%,transparent)] disabled:bg-slate-50 disabled:text-slate-500",rx=({widget:e})=>{const t=Ac(),n=Yt(),r=e.state!=="active",i=n.formatMessage({id:"chatbot.interactiveWidget.submitted",defaultMessage:"Sent"}),a=n.formatMessage({id:"chatbot.interactiveWidget.cancelled",defaultMessage:"Cancelled"}),s=n.formatMessage({id:"chatbot.interactiveWidget.submitting",defaultMessage:"Sending…"}),o=n.formatMessage({id:"chatbot.interactiveWidget.unavailable",defaultMessage:"This interaction is no longer available."}),u=e.responseMode==="local_preview",c=n.formatMessage({id:"chatbot.interactiveWidget.preview.notice",defaultMessage:"Demo mode — this form reproduces the real experience. Submitting it does not create a request or transmit your answers."}),d=n.formatMessage({id:"chatbot.interactiveWidget.preview.completed",defaultMessage:"You have tested this form. No request was sent and your answers were not transmitted."}),f=n.formatMessage({id:"chatbot.interactiveWidget.preview.cancelled",defaultMessage:"You have closed the demo form. No information was transmitted."}),m=(y,g)=>{y.kind==="open_url"&&window.open(y.url,"_blank","noopener,noreferrer"),t.submitInteractiveWidget({instanceId:e.instanceId,actionId:y.id,data:g,cancel:y.kind==="cancel"})};let h=null;return e.state==="submitting"&&(h=s),e.state==="submitted"&&(h=u?d:i),e.state==="cancelled"&&(h=u?f:a),e.state==="unavailable"&&(h=o),b.jsxs(ys,{modifier:e.widgetType.replace(/_/g,"-"),state:e.state,className:u?"chatsystem-interactive-widget--local-preview":void 0,children:[u?b.jsx("div",{className:"chatsystem-interactive-widget__preview-notice mb-3 rounded-lg border border-sky-200 bg-sky-50 px-3 py-2 text-xs leading-5 text-sky-900",children:c}):null,b.jsx(ix,{widget:e,disabled:r,onAction:m}),h?b.jsx("div",{className:`mt-3 ${u?"chatsystem-interactive-widget__preview-result":""}`,children:b.jsx(vn,{tone:e.state==="unavailable"?"warning":"success",children:h})}):null]})},ix=({widget:e,disabled:t,onAction:n})=>{const r=e.presentation;return r.type==="structured_form"?b.jsx(ax,{instanceId:e.instanceId,presentation:r,disabled:t,onSubmit:i=>n({id:"submit",label:r.submitLabel,kind:"submit"},i),onCancel:r.cancelLabel?()=>n({id:"cancel",label:r.cancelLabel,kind:"cancel"}):void 0}):r.type==="card_list"?b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),b.jsx("div",{className:"chatsystem-interactive-widget__cards grid gap-3",children:r.cards.map(i=>b.jsxs("article",{className:"chatsystem-interactive-widget__card overflow-hidden rounded-lg border border-slate-200",children:[i.imageUrl?b.jsx("img",{className:"chatsystem-interactive-widget__card-image h-32 w-full object-cover",src:i.imageUrl,alt:"",loading:"lazy"}):null,b.jsxs("div",{className:"chatsystem-interactive-widget__card-body p-3",children:[i.eyebrow?b.jsx("p",{className:"text-xs font-semibold uppercase text-slate-500",children:i.eyebrow}):null,b.jsx("h4",{className:"text-sm font-semibold text-slate-900",children:i.title}),i.description?b.jsx("p",{className:"mt-1 text-sm text-slate-600",children:i.description}):null,i.metadata?.map(a=>b.jsxs("div",{className:"chatsystem-interactive-widget__detail mt-2 flex justify-between gap-3 text-xs",children:[b.jsx("span",{className:"text-slate-500",children:a.label}),b.jsx("span",{className:"font-medium text-slate-800",children:a.value})]},a.label)),i.actions?.length?b.jsx(Cr,{actions:i.actions,disabled:t,onAction:n}):null]})]},i.id))})]}):r.type==="status_summary"?b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),b.jsx(vn,{tone:r.tone,children:r.items?.map(i=>b.jsxs("div",{className:"chatsystem-interactive-widget__detail flex justify-between gap-3 py-1",children:[b.jsx("span",{children:i.label}),b.jsx("strong",{children:i.value})]},i.label))}),r.actions?.length?b.jsx(Cr,{actions:r.actions,disabled:t,onAction:n}):null]}):r.type==="explicit_confirmation"?b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),r.details?.map(i=>b.jsxs("div",{className:"chatsystem-interactive-widget__detail flex justify-between gap-3 border-b border-slate-100 py-2 text-sm",children:[b.jsx("span",{className:"text-slate-500",children:i.label}),b.jsx("strong",{children:i.value})]},i.label)),b.jsx(Cr,{disabled:t,onAction:n,actions:[{id:"confirm",label:r.confirmLabel,kind:"submit",style:r.tone==="danger"?"danger":"primary"},{id:"cancel",label:r.cancelLabel,kind:"cancel",style:"secondary"}]})]}):b.jsxs(b.Fragment,{children:[b.jsx(rn,{title:r.title,description:r.description}),b.jsx(Cr,{actions:r.actions,disabled:t,onAction:n})]})},Cr=({actions:e,disabled:t,onAction:n})=>b.jsx(ci,{children:e.map(r=>b.jsx(nr,{style:r.style,disabled:t,onClick:()=>n(r),children:r.label},r.id))}),ax=({instanceId:e,presentation:t,disabled:n,onSubmit:r,onCancel:i})=>{const[a,s]=S.useState({}),o=c=>{c.preventDefault(),r(a)},u=(c,d)=>s(f=>({...f,[c.id]:d}));return b.jsxs("form",{className:"chatsystem-interactive-widget__form grid gap-3",onSubmit:o,children:[b.jsx(rn,{title:t.title,description:t.description}),t.fields.map(c=>b.jsx(Sn,{id:`${e}-${c.id}`,label:c.label,description:c.description,required:c.required,children:b.jsx(sx,{id:`${e}-${c.id}`,field:c,value:a[c.id],disabled:n,onChange:d=>u(c,d)})},c.id)),b.jsxs(ci,{children:[b.jsx(nr,{type:"submit",disabled:n,children:t.submitLabel}),t.cancelLabel?b.jsx(nr,{style:"secondary",disabled:n,onClick:i,children:t.cancelLabel}):null]})]})},sx=({id:e,field:t,value:n,disabled:r,onChange:i})=>t.type==="checkbox"?b.jsx("input",{id:e,className:"chatsystem-interactive-widget__checkbox h-4 w-4",type:"checkbox",checked:n===!0,required:t.required,disabled:r,onChange:a=>i(a.currentTarget.checked)}):t.type==="select"?b.jsxs("select",{id:e,className:Wi,value:typeof n=="string"?n:"",required:t.required,disabled:r,onChange:a=>i(a.currentTarget.value),children:[b.jsx("option",{value:"",children:t.placeholder??""}),t.options.map(a=>b.jsx("option",{value:a.value,children:a.label},a.value))]}):t.type==="textarea"?b.jsx("textarea",{id:e,className:`${Wi} min-h-24 resize-y`,value:typeof n=="string"?n:"",required:t.required,disabled:r,placeholder:t.placeholder,minLength:t.minLength,maxLength:t.maxLength,onChange:a=>i(a.currentTarget.value)}):b.jsx("input",{id:e,className:Wi,type:t.type,value:typeof n=="string"?n:"",required:t.required,disabled:r,placeholder:t.placeholder,minLength:t.minLength,maxLength:t.maxLength,onChange:a=>i(a.currentTarget.value)}),ox=({userType:e,content:t,metaData:n,context:r,seenRootEl:i})=>{if(n?.interactiveWidget)return b.jsx(rx,{widget:n.interactiveWidget});if(n?.messageKind==="system")return b.jsx(nx,{content:t,metaData:n});const a=e==="user",s=e==="assistant";return b.jsxs(b.Fragment,{children:[a&&b.jsx(jy,{content:t,metaData:n}),s&&b.jsx(tx,{content:t,metaData:n,context:r,seenRootEl:i})]})};function ux(e,t,n){let[r,i]=S.useState(e||t),a=S.useRef(e!==void 0),s=e!==void 0;S.useEffect(()=>{let c=a.current;c!==s&&console.warn(`WARN: A component changed from ${c?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}.`),a.current=s},[s]);let o=s?e:r,u=S.useCallback((c,...d)=>{let f=(m,...h)=>{n&&(Object.is(o,m)||n(m,...h)),s||(o=m)};typeof c=="function"?(console.warn("We can not support a function callback. See Github Issues for details https://github.com/adobe/react-spectrum/issues/2320"),i((h,...y)=>{let g=c(s?o:h,...y);return f(g,...d),s?h:g})):(s||i(c),f(c,...d))},[s,o,n]);return[o,u]}const Fr={prefix:String(Math.round(Math.random()*1e10)),current:0},Cd=S.createContext(Fr),cx=S.createContext(!1);let lx=!!(typeof window<"u"&&window.document&&window.document.createElement),Gi=new WeakMap;function dx(e=!1){let t=S.useContext(Cd),n=S.useRef(null);if(n.current===null&&!e){var r,i;let a=(i=S.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||i===void 0||(r=i.ReactCurrentOwner)===null||r===void 0?void 0:r.current;if(a){let s=Gi.get(a);s==null?Gi.set(a,{id:t.current,state:a.memoizedState}):a.memoizedState!==s.state&&(t.current=s.id,Gi.delete(a))}n.current=++t.current}return n.current}function fx(e){let t=S.useContext(Cd);t===Fr&&!lx&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let n=dx(!!e),r=t===Fr&&process.env.NODE_ENV==="test"?"react-aria":`react-aria${t.prefix}`;return e||`${r}-${n}`}function hx(e){let t=S.useId(),[n]=S.useState(Ex()),r=n||process.env.NODE_ENV==="test"?"react-aria":`react-aria${Fr.prefix}`;return e||`${r}-${t}`}const mx=typeof S.useId=="function"?hx:fx;function px(){return!1}function gx(){return!0}function bx(e){return()=>{}}function Ex(){return typeof S.useSyncExternalStore=="function"?S.useSyncExternalStore(bx,px,gx):S.useContext(cx)}function Id(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Id(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Tx(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Id(e))&&(r&&(r+=" "),r+=t);return r}const mn=typeof document<"u"?S.useLayoutEffect:()=>{};function sn(e){const t=S.useRef(null);return mn(()=>{t.current=e},[e]),S.useCallback((...n)=>{const r=t.current;return r?.(...n)},[])}function yx(e){let[t,n]=S.useState(e),r=S.useRef(null),i=sn(()=>{if(!r.current)return;let s=r.current.next();if(s.done){r.current=null;return}t===s.value?i():n(s.value)});mn(()=>{r.current&&i()});let a=sn(s=>{r.current=s(t),i()});return[t,a]}let _x=!!(typeof window<"u"&&window.document&&window.document.createElement),Ur=new Map;function Hr(e){let[t,n]=S.useState(e),r=S.useRef(null),i=mx(t),a=S.useCallback(s=>{r.current=s},[]);return _x&&Ur.set(i,a),mn(()=>{let s=i;return()=>{Ur.delete(s)}},[i]),S.useEffect(()=>{let s=r.current;s&&(r.current=null,n(s))}),i}function xx(e,t){if(e===t)return e;let n=Ur.get(e);if(n)return n(t),t;let r=Ur.get(t);return r?(r(e),e):t}function fu(e=[]){let t=Hr(),[n,r]=yx(t),i=S.useCallback(()=>{r(function*(){yield t,yield document.getElementById(t)?t:void 0})},[t,r]);return mn(i,[t,i,...e]),n}function Sx(...e){return(...t)=>{for(let n of e)typeof n=="function"&&n(...t)}}const hr=e=>{var t;return(t=e?.ownerDocument)!==null&&t!==void 0?t:document},jr=e=>e&&"window"in e&&e.window===e?e:hr(e).defaultView||window;function Vr(...e){let t={...e[0]};for(let n=1;n<e.length;n++){let r=e[n];for(let i in r){let a=t[i],s=r[i];typeof a=="function"&&typeof s=="function"&&i[0]==="o"&&i[1]==="n"&&i.charCodeAt(2)>=65&&i.charCodeAt(2)<=90?t[i]=Sx(a,s):(i==="className"||i==="UNSAFE_className")&&typeof a=="string"&&typeof s=="string"?t[i]=Tx(a,s):i==="id"&&a&&s?t.id=xx(a,s):t[i]=s!==void 0?s:a}}return t}const Cx=new Set(["id"]),Ix=new Set(["aria-label","aria-labelledby","aria-describedby","aria-details"]),Ax=new Set(["href","target","rel","download","ping","referrerPolicy"]),wx=/^(data-.*)$/;function vx(e,t={}){let{labelable:n,isLink:r,propNames:i}=t,a={};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(Cx.has(s)||n&&Ix.has(s)||r&&Ax.has(s)||i?.has(s)||wx.test(s))&&(a[s]=e[s]);return a}function hu(e){if(kx())e.focus({preventScroll:!0});else{let t=Nx(e);e.focus(),Rx(t)}}let Ir=null;function kx(){if(Ir==null){Ir=!1;try{document.createElement("div").focus({get preventScroll(){return Ir=!0,!0}})}catch{}}return Ir}function Nx(e){let t=e.parentNode,n=[],r=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==r;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&n.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return r instanceof HTMLElement&&n.push({element:r,scrollTop:r.scrollTop,scrollLeft:r.scrollLeft}),n}function Rx(e){for(let{element:t,scrollTop:n,scrollLeft:r}of e)t.scrollTop=n,t.scrollLeft=r}function Ox(e){var t;return typeof window>"u"||window.navigator==null?!1:((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.brands.some(n=>e.test(n.brand)))||e.test(window.navigator.userAgent)}function Lx(e){var t;return typeof window<"u"&&window.navigator!=null?e.test(((t=window.navigator.userAgentData)===null||t===void 0?void 0:t.platform)||window.navigator.platform):!1}function Dx(){return Lx(/^Mac/i)}function Px(){return Ox(/Android/i)}let Tn=new Map,va=new Set;function mu(){if(typeof window>"u")return;function e(r){return"propertyName"in r}let t=r=>{if(!e(r)||!r.target)return;let i=Tn.get(r.target);i||(i=new Set,Tn.set(r.target,i),r.target.addEventListener("transitioncancel",n,{once:!0})),i.add(r.propertyName)},n=r=>{if(!e(r)||!r.target)return;let i=Tn.get(r.target);if(i&&(i.delete(r.propertyName),i.size===0&&(r.target.removeEventListener("transitioncancel",n),Tn.delete(r.target)),Tn.size===0)){for(let a of va)a();va.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",n)}typeof document<"u"&&(document.readyState!=="loading"?mu():document.addEventListener("DOMContentLoaded",mu));function Mx(e){requestAnimationFrame(()=>{Tn.size===0?e():va.add(e)})}function Bx(e,t){let{id:n,"aria-label":r,"aria-labelledby":i}=e;return n=Hr(n),i&&r?i=[...new Set([n,...i.trim().split(/\s+/)])].join(" "):i&&(i=i.trim().split(/\s+/).join(" ")),!r&&!i&&t&&(r=t),{id:n,"aria-label":r,"aria-labelledby":i}}function Fx(e,t){mn(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}function Ux(e){return e.mozInputSource===0&&e.isTrusted?!0:Px()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Hx(e,t,n){let r=S.useRef(t),i=sn(()=>{n&&n(r.current)});S.useEffect(()=>{var a;let s=e==null||(a=e.current)===null||a===void 0?void 0:a.form;return s?.addEventListener("reset",i),()=>{s?.removeEventListener("reset",i)}},[e,i])}const jx=S.createContext({register:()=>{}});jx.displayName="PressResponderContext";class Vx{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(t,n){this.nativeEvent=n,this.target=n.target,this.currentTarget=n.currentTarget,this.relatedTarget=n.relatedTarget,this.bubbles=n.bubbles,this.cancelable=n.cancelable,this.defaultPrevented=n.defaultPrevented,this.eventPhase=n.eventPhase,this.isTrusted=n.isTrusted,this.timeStamp=n.timeStamp,this.type=t}}function zx(e){let t=S.useRef({isFocused:!1,observer:null});mn(()=>{const r=t.current;return()=>{r.observer&&(r.observer.disconnect(),r.observer=null)}},[]);let n=sn(r=>{e?.(r)});return S.useCallback(r=>{if(r.target instanceof HTMLButtonElement||r.target instanceof HTMLInputElement||r.target instanceof HTMLTextAreaElement||r.target instanceof HTMLSelectElement){t.current.isFocused=!0;let i=r.target,a=s=>{t.current.isFocused=!1,i.disabled&&n(new Vx("blur",s)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)};i.addEventListener("focusout",a,{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&i.disabled){var s;(s=t.current.observer)===null||s===void 0||s.disconnect();let o=i===document.activeElement?null:document.activeElement;i.dispatchEvent(new FocusEvent("blur",{relatedTarget:o})),i.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:o}))}}),t.current.observer.observe(i,{attributes:!0,attributeFilter:["disabled"]})}},[n])}function $x(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:i}=e;const a=S.useCallback(u=>{if(u.target===u.currentTarget)return r&&r(u),i&&i(!1),!0},[r,i]),s=zx(a),o=S.useCallback(u=>{u.target===u.currentTarget&&document.activeElement===u.target&&(n&&n(u),i&&i(!0),s(u))},[i,n,s]);return{focusProps:{onFocus:!t&&(n||i||r)?o:void 0,onBlur:!t&&(r||i)?a:void 0}}}let Dn=null,Wx=new Set,Jn=new Map,ln=!1,ka=!1;function li(e,t){for(let n of Wx)n(e,t)}function Gx(e){return!(e.metaKey||!Dx()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function zr(e){ln=!0,Gx(e)&&(Dn="keyboard",li("keyboard",e))}function gt(e){Dn="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(ln=!0,li("pointer",e))}function Ad(e){Ux(e)&&(ln=!0,Dn="virtual")}function wd(e){e.target===window||e.target===document||(!ln&&!ka&&(Dn="virtual",li("virtual",e)),ln=!1,ka=!1)}function vd(){ln=!1,ka=!0}function pu(e){if(typeof window>"u"||Jn.get(jr(e)))return;const t=jr(e),n=hr(e);let r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){ln=!0,r.apply(this,arguments)},n.addEventListener("keydown",zr,!0),n.addEventListener("keyup",zr,!0),n.addEventListener("click",Ad,!0),t.addEventListener("focus",wd,!0),t.addEventListener("blur",vd,!1),typeof PointerEvent<"u"?(n.addEventListener("pointerdown",gt,!0),n.addEventListener("pointermove",gt,!0),n.addEventListener("pointerup",gt,!0)):(n.addEventListener("mousedown",gt,!0),n.addEventListener("mousemove",gt,!0),n.addEventListener("mouseup",gt,!0)),t.addEventListener("beforeunload",()=>{kd(e)},{once:!0}),Jn.set(t,{focus:r})}const kd=(e,t)=>{const n=jr(e),r=hr(e);t&&r.removeEventListener("DOMContentLoaded",t),Jn.has(n)&&(n.HTMLElement.prototype.focus=Jn.get(n).focus,r.removeEventListener("keydown",zr,!0),r.removeEventListener("keyup",zr,!0),r.removeEventListener("click",Ad,!0),n.removeEventListener("focus",wd,!0),n.removeEventListener("blur",vd,!1),typeof PointerEvent<"u"?(r.removeEventListener("pointerdown",gt,!0),r.removeEventListener("pointermove",gt,!0),r.removeEventListener("pointerup",gt,!0)):(r.removeEventListener("mousedown",gt,!0),r.removeEventListener("mousemove",gt,!0),r.removeEventListener("mouseup",gt,!0)),Jn.delete(n))};function Yx(e){const t=hr(e);let n;return t.readyState!=="loading"?pu(e):(n=()=>{pu(e)},t.addEventListener("DOMContentLoaded",n)),()=>kd(e,n)}typeof document<"u"&&Yx();function qx(){return Dn}function Xx(e){Dn=e,li(e,null)}function gu(e){if(!e)return;let t=!0;return n=>{let r={...n,preventDefault(){n.preventDefault()},isDefaultPrevented(){return n.isDefaultPrevented()},stopPropagation(){console.error("stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.")},continuePropagation(){t=!1}};e(r),t&&n.stopPropagation()}}function Qx(e){return{keyboardProps:e.isDisabled?{}:{onKeyDown:gu(e.onKeyDown),onKeyUp:gu(e.onKeyUp)}}}function Kx(e){const t=hr(e);if(qx()==="virtual"){let n=t.activeElement;Mx(()=>{t.activeElement===n&&e.isConnected&&hu(e)})}else hu(e)}function Jx(e,t){return!e||!t?!1:t.some(n=>n.contains(e))}class _s{get size(){return this.fastMap.size}getTreeNode(t){return this.fastMap.get(t)}addTreeNode(t,n,r){let i=this.fastMap.get(n??null);if(!i)return;let a=new bu({scopeRef:t});i.addChild(a),a.parent=i,this.fastMap.set(t,a),r&&(a.nodeToRestore=r)}addNode(t){this.fastMap.set(t.scopeRef,t)}removeTreeNode(t){if(t===null)return;let n=this.fastMap.get(t);if(!n)return;let r=n.parent;for(let a of this.traverse())a!==n&&n.nodeToRestore&&a.nodeToRestore&&n.scopeRef&&n.scopeRef.current&&Jx(a.nodeToRestore,n.scopeRef.current)&&(a.nodeToRestore=n.nodeToRestore);let i=n.children;r&&(r.removeChild(n),i.size>0&&i.forEach(a=>r&&r.addChild(a))),this.fastMap.delete(n.scopeRef)}*traverse(t=this.root){if(t.scopeRef!=null&&(yield t),t.children.size>0)for(let n of t.children)yield*this.traverse(n)}clone(){var t;let n=new _s;var r;for(let i of this.traverse())n.addTreeNode(i.scopeRef,(r=(t=i.parent)===null||t===void 0?void 0:t.scopeRef)!==null&&r!==void 0?r:null,i.nodeToRestore);return n}constructor(){this.fastMap=new Map,this.root=new bu({scopeRef:null}),this.fastMap.set(null,this.root)}}class bu{addChild(t){this.children.add(t),t.parent=this}removeChild(t){this.children.delete(t),t.parent=void 0}constructor(t){this.children=new Set,this.contain=!1,this.scopeRef=t.scopeRef}}new _s;let Zx=S.createContext(null);function eS(e){let t=S.useContext(Zx)||{};Fx(t,e);let{ref:n,...r}=t;return r}function tS(e,t){let{focusProps:n}=$x(e),{keyboardProps:r}=Qx(e),i=Vr(n,r),a=eS(t),s=e.isDisabled?{}:a,o=S.useRef(e.autoFocus);return S.useEffect(()=>{o.current&&t.current&&Kx(t.current),o.current=!1},[t]),{focusableProps:Vr({...i,tabIndex:e.excludeFromTabOrder&&!e.isDisabled?-1:void 0},s)}}function nS(e,t,n){let{validationBehavior:r,focus:i}=e;mn(()=>{if(r==="native"&&n?.current){let u=t.realtimeValidation.isInvalid?t.realtimeValidation.validationErrors.join(" ")||"Invalid value.":"";n.current.setCustomValidity(u),n.current.hasAttribute("title")||(n.current.title=""),t.realtimeValidation.isInvalid||t.updateValidation(iS(n.current))}});let a=sn(()=>{t.resetValidation()}),s=sn(u=>{var c;t.displayValidation.isInvalid||t.commitValidation();let d=n==null||(c=n.current)===null||c===void 0?void 0:c.form;if(!u.defaultPrevented&&n&&d&&aS(d)===n.current){var f;i?i():(f=n.current)===null||f===void 0||f.focus(),Xx("keyboard")}u.preventDefault()}),o=sn(()=>{t.commitValidation()});S.useEffect(()=>{let u=n?.current;if(!u)return;let c=u.form;return u.addEventListener("invalid",s),u.addEventListener("change",o),c?.addEventListener("reset",a),()=>{u.removeEventListener("invalid",s),u.removeEventListener("change",o),c?.removeEventListener("reset",a)}},[n,s,o,a,r])}function rS(e){let t=e.validity;return{badInput:t.badInput,customError:t.customError,patternMismatch:t.patternMismatch,rangeOverflow:t.rangeOverflow,rangeUnderflow:t.rangeUnderflow,stepMismatch:t.stepMismatch,tooLong:t.tooLong,tooShort:t.tooShort,typeMismatch:t.typeMismatch,valueMissing:t.valueMissing,valid:t.valid}}function iS(e){return{isInvalid:!e.validity.valid,validationDetails:rS(e),validationErrors:e.validationMessage?[e.validationMessage]:[]}}function aS(e){for(let t=0;t<e.elements.length;t++){let n=e.elements[t];if(!n.validity.valid)return n}return null}const Nd={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valueMissing:!1,valid:!0},Rd={...Nd,customError:!0,valid:!1},Hn={isInvalid:!1,validationDetails:Nd,validationErrors:[]},sS=S.createContext({}),Eu="__formValidationState"+Date.now();function oS(e){if(e[Eu]){let{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}=e[Eu];return{realtimeValidation:t,displayValidation:n,updateValidation:r,resetValidation:i,commitValidation:a}}return uS(e)}function uS(e){let{isInvalid:t,validationState:n,name:r,value:i,builtinValidation:a,validate:s,validationBehavior:o="aria"}=e;n&&(t||(t=n==="invalid"));let u=t?{isInvalid:!0,validationErrors:[],validationDetails:Rd}:null,c=S.useMemo(()=>Tu(cS(s,i)),[s,i]);a?.validationDetails.valid&&(a=null);let d=S.useContext(sS),f=S.useMemo(()=>r?Array.isArray(r)?r.flatMap(k=>Na(d[k])):Na(d[r]):[],[d,r]),[m,h]=S.useState(d),[y,g]=S.useState(!1);d!==m&&(h(d),g(!1));let w=S.useMemo(()=>Tu(y?[]:f),[y,f]),I=S.useRef(Hn),[v,N]=S.useState(Hn),P=S.useRef(Hn),A=()=>{if(!p)return;L(!1);let k=c||a||I.current;Yi(k,P.current)||(P.current=k,N(k))},[p,L]=S.useState(!1);return S.useEffect(A),{realtimeValidation:u||w||c||a||Hn,displayValidation:o==="native"?u||w||v:u||w||c||a||v,updateValidation(k){o==="aria"&&!Yi(v,k)?N(k):I.current=k},resetValidation(){let k=Hn;Yi(k,P.current)||(P.current=k,N(k)),o==="native"&&L(!1),g(!0)},commitValidation(){o==="native"&&L(!0),g(!0)}}}function Na(e){return e?Array.isArray(e)?e:[e]:[]}function cS(e,t){if(typeof e=="function"){let n=e(t);if(n&&typeof n!="boolean")return Na(n)}return[]}function Tu(e){return e.length?{isInvalid:!0,validationErrors:e,validationDetails:Rd}:null}function Yi(e,t){return e===t?!0:e&&t&&e.isInvalid===t.isInvalid&&e.validationErrors.length===t.validationErrors.length&&e.validationErrors.every((n,r)=>n===t.validationErrors[r])&&Object.entries(e.validationDetails).every(([n,r])=>t.validationDetails[n]===r)}function lS(e){let{id:t,label:n,"aria-labelledby":r,"aria-label":i,labelElementType:a="label"}=e;t=Hr(t);let s=Hr(),o={};n?(r=r?`${s} ${r}`:s,o={id:s,htmlFor:a==="label"?t:void 0}):!r&&!i&&console.warn("If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility");let u=Bx({id:t,"aria-label":i,"aria-labelledby":r});return{labelProps:o,fieldProps:u}}function dS(e){let{description:t,errorMessage:n,isInvalid:r,validationState:i}=e,{labelProps:a,fieldProps:s}=lS(e),o=fu([!!t,!!n,r,i]),u=fu([!!t,!!n,r,i]);return s=Vr(s,{"aria-describedby":[o,u,e["aria-describedby"]].filter(Boolean).join(" ")||void 0}),{labelProps:a,fieldProps:s,descriptionProps:{id:o},errorMessageProps:{id:u}}}function fS(e,t){let{inputElementType:n="input",isDisabled:r=!1,isRequired:i=!1,isReadOnly:a=!1,type:s="text",validationBehavior:o="aria"}=e,[u,c]=ux(e.value,e.defaultValue||"",e.onChange),{focusableProps:d}=tS(e,t),f=oS({...e,value:u}),{isInvalid:m,validationErrors:h,validationDetails:y}=f.displayValidation,{labelProps:g,fieldProps:w,descriptionProps:I,errorMessageProps:v}=dS({...e,isInvalid:m,errorMessage:e.errorMessage||h}),N=vx(e,{labelable:!0});const P={type:s,pattern:e.pattern};return Hx(t,u,c),nS(e,f,t),S.useEffect(()=>{if(t.current instanceof jr(t.current).HTMLTextAreaElement){let A=t.current;Object.defineProperty(A,"defaultValue",{get:()=>A.value,set:()=>{},configurable:!0})}},[t]),{labelProps:g,inputProps:Vr(N,n==="input"&&P,{disabled:r,readOnly:a,required:i&&o==="native","aria-required":i&&o==="aria"||void 0,"aria-invalid":m||void 0,"aria-errormessage":e["aria-errormessage"],"aria-activedescendant":e["aria-activedescendant"],"aria-autocomplete":e["aria-autocomplete"],"aria-haspopup":e["aria-haspopup"],value:u,onChange:A=>c(A.target.value),autoComplete:e.autoComplete,autoCapitalize:e.autoCapitalize,maxLength:e.maxLength,minLength:e.minLength,name:e.name,placeholder:e.placeholder,inputMode:e.inputMode,onCopy:e.onCopy,onCut:e.onCut,onPaste:e.onPaste,onCompositionEnd:e.onCompositionEnd,onCompositionStart:e.onCompositionStart,onCompositionUpdate:e.onCompositionUpdate,onSelect:e.onSelect,onBeforeInput:e.onBeforeInput,onInput:e.onInput,...d,...w}),descriptionProps:I,errorMessageProps:v,isInvalid:m,validationErrors:h,validationDetails:y}}const hS=e=>e.charCodeAt(e.length-1)===10,mS=e=>{const[t,n]=S.useState(""),r=()=>{g.current&&(g.current.style.height=g.current.scrollHeight+"px")},i=()=>{g.current&&(g.current.style.height="48px")},a=k=>{n(k)};S.useEffect(r,[t]);const{label:s,SubmitComponent:o,onSubmit:u,isLoadingStream:c,audioEnabled:d=!1,MicComponent:f,onPressMicButton:m,LoadingComponent:h,onPressLoadingButton:y}=e,g=S.useRef(null),{labelProps:w,inputProps:I}=fS({...e,inputElementType:"textarea"},g),v=k=>{hS(k.target.value)||a(k.target.value)},N=k=>{if(k.key==="Enter"||k.code==="Enter"||k.keyCode===13||k.code==="NumpadEnter"){if(k.shiftKey)a(t+`
|
|
85
85
|
`);else if(!k.shiftKey){k.preventDefault(),k.stopPropagation(),c||L();return}}},P=k=>{(k.key==="Enter"||k.code==="Enter"||k.keyCode===13||k.code==="NumpadEnter")&&(k.preventDefault(),k.stopPropagation())},A=t.trim().length>0,p=!!(e.isDisabled||e.shouldDisableIfInputIsEmpty&&!A),L=()=>{p||(i(),u?.(t),a(""))},B=d&&!!f&&!!o&&!A&&!c,Y=()=>c&&h?b.jsx("div",{className:"relative",children:b.jsx(h,{onPressLoadingButton:y})}):o?!d||!f?b.jsx("div",{className:"relative",children:b.jsx(o,{onSubmitButton:L,isDisabled:p})}):A?b.jsx("div",{className:"relative",children:b.jsx(o,{onSubmitButton:L,isDisabled:p})}):b.jsxs("div",{className:"relative",children:[b.jsx("div",{className:"block md:hidden",children:b.jsx(f,{onPressMicButton:m})}),b.jsxs("div",{className:"hidden md:block",children:[b.jsx(f,{onPressMicButton:m,className:"md:!right-12"}),b.jsx(o,{onSubmitButton:L,isDisabled:p,className:"md:!right-3"})]})]}):null;return b.jsxs("div",{style:{display:"flex",flexDirection:"column"},className:`${e.classNameContainer} w-full`,children:[b.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[b.jsx("label",{...w,className:e.classNameLabel,children:s}),b.jsx("textarea",{...I,ref:g,className:`${e.classNameTextarea} p-3 ${B?"pr-12 md:pr-24":"pr-12"}`,onChange:v,value:t,rows:1,style:{overflow:"hidden",outlineColor:"#a8a8a8",border:"none",outline:"none",width:B?"calc(100% - 72px)":"calc(100% - 30px)",resize:"none"},onKeyDown:N,onKeyUp:P})]}),Y()]})},pS=({onSubmitButton:e,isDisabled:t,className:n})=>b.jsx("div",{children:b.jsx("button",{className:`absolute
|
|
86
86
|
bg-violet-600
|
|
87
87
|
md:bottom-2
|
|
@@ -163,13 +163,13 @@ Valid keys: `+JSON.stringify(Object.keys(E),null," "));var q=Ne(ae,ce,ee,te,K+"
|
|
|
163
163
|
focus-visible:ring-offset-2
|
|
164
164
|
focus-visible:ring-offset-violet-700
|
|
165
165
|
`,"data-testid":"close-button",children:b.jsx("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"none","aria-hidden":"true",className:"select-none outline-none",children:b.jsx("path",{d:"M6 6L18 18M6 18L18 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})})},Ud=({onStartNewDiscussion:e,className:t="",tone:n="light"})=>{const[r,i]=S.useState(!1),a=S.useRef(null),{openMenuTranslation:s,startNewDiscussionTranslation:o}=Fd();S.useEffect(()=>{if(!r)return;const c=f=>{a.current?.contains(f.target)||i(!1)},d=f=>{f.key==="Escape"&&i(!1)};return document.addEventListener("mousedown",c),document.addEventListener("keydown",d),()=>{document.removeEventListener("mousedown",c),document.removeEventListener("keydown",d)}},[r]);const u=n==="dark"?"text-white bg-white/10 hover:bg-white/20 focus-visible:ring-white/80 focus-visible:ring-offset-violet-700":"text-slate-700 bg-slate-100 hover:bg-slate-200 focus-visible:ring-slate-400 focus-visible:ring-offset-white";return b.jsxs("div",{ref:a,className:`relative inline-flex ${t}`,onMouseDown:c=>c.stopPropagation(),children:[b.jsx("button",{type:"button","aria-label":s,"aria-haspopup":"menu","aria-expanded":r,onClick:()=>i(c=>!c),className:`inline-flex items-center justify-center rounded-full p-1.5 transition-transform duration-150 ease-out hover:scale-110 active:scale-95 focus:outline-none focus-visible:ring-offset-2 ${u}`,"data-testid":"discussion-menu-button",children:b.jsxs("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"none","aria-hidden":"true",className:"select-none outline-none",children:[b.jsx("circle",{cx:"5",cy:"12",r:"1.5",fill:"currentColor"}),b.jsx("circle",{cx:"12",cy:"12",r:"1.5",fill:"currentColor"}),b.jsx("circle",{cx:"19",cy:"12",r:"1.5",fill:"currentColor"})]})}),r&&b.jsx("div",{role:"menu",className:"absolute right-0 top-full z-30 mt-2 min-w-[210px] rounded-md border border-slate-200 bg-white p-1 shadow-lg",onMouseDown:c=>c.stopPropagation(),children:b.jsx("button",{type:"button",role:"menuitem",className:"block w-full rounded px-3 py-2 text-left text-sm text-slate-800 hover:bg-slate-100",onClick:()=>{e(),i(!1)},children:o})})]})},La=({placement:e="inline",className:t=""})=>{const{companySettings:n}=S.useContext(Ot);if(n.branding?.poweredByChatSystemVisible===!1)return null;const r=e==="widget-badge";return b.jsxs("div",{className:t,style:{alignItems:"center",background:"rgba(255, 255, 255, 0.96)",border:r?"1px solid #e5e7eb":"0",borderRadius:r?"9999px":"0",boxShadow:r?"0 4px 14px rgba(15, 23, 42, 0.10)":"none",color:"#94a3b8",flexShrink:0,fontFamily:"ui-sans-serif, system-ui, sans-serif",fontSize:"10px",fontWeight:400,gap:"3px",justifyContent:"center",lineHeight:1,padding:r?"6px 10px":"5px 12px",whiteSpace:"nowrap"},children:[b.jsx("span",{children:"Powered by"}),b.jsx("a",{href:"https://www.chatsystem.ai",target:"_blank",rel:"noopener noreferrer",style:{color:"#64748b",display:"inline",fontFamily:"inherit",fontSize:"inherit",fontWeight:600,lineHeight:"inherit",margin:0,textDecoration:"none",whiteSpace:"nowrap"},children:"ChatSystem"})]})},qS=S.forwardRef(({setIsWidgetOpen:e},t)=>{const{companySettings:n}=S.useContext(Ot),{resetConversation:r}=Qr(),i=n.agent?.customNameToDisplay||"Assistant";return b.jsxs("div",{ref:t,className:`
|
|
166
|
-
fixed z-[2147483647]
|
|
167
|
-
inset-0 w-screen h-[100svh] rounded-none
|
|
166
|
+
chatBox chatsystem-widget-window fixed z-[2147483647]
|
|
167
|
+
inset-0 w-screen h-[100svh] rounded-none bg-white md:rounded-xl
|
|
168
168
|
md:inset-auto md:bottom-[calc(80px+1rem)] md:right-6
|
|
169
169
|
md:w-[min(100vw-1rem,400px)]
|
|
170
170
|
md:h-[clamp(420px,70dvh,640px)]
|
|
171
171
|
flex flex-col
|
|
172
|
-
`,children:[b.jsxs("div",{className:"
|
|
172
|
+
`,children:[b.jsxs("div",{className:"chatsystem-widget-surface h-full w-full min-h-0 shadow-xl flex flex-col overflow-hidden",children:[b.jsxs("div",{className:"chatsystem-header chatsystem-primary-background relative z-20 flex items-center justify-start py-2 pl-3 text-left text-white",children:[b.jsx(xd,{className:"chatSystem-widgetLogo",logo:b.jsx(Sd,{}),label:i}),b.jsx("div",{className:"absolute right-12 top-1/2 -translate-y-1/2",children:b.jsx(Ud,{tone:"dark",onStartNewDiscussion:r})}),b.jsx(YS,{setIsWidgetOpen:e})]}),b.jsx(Od,{}),b.jsx(La,{className:"chatsystem-powered-by-mobile"})]}),b.jsx(La,{placement:"widget-badge",className:"chatsystem-powered-by-widget-badge"})]})}),XS=({launcherRef:e,isWidgetOpen:t,setIsWidgetOpen:n})=>{const r=S.useRef(null);return S.useEffect(()=>{if(!t)return;const i=a=>{const s=r.current;if(!s)return;const o=e.current,u=typeof a.composedPath=="function"?a.composedPath():[];if(u.length>0){if(u.includes(s)||o&&u.includes(o))return}else{const c=a.target;if(c&&(s.contains(c)||o?.contains(c)))return}n(!1)};return document.addEventListener("pointerdown",i,!0),()=>{document.removeEventListener("pointerdown",i,!0)}},[t,n,e]),b.jsx("div",{children:b.jsx(Ss,{nodeRef:r,in:t,timeout:200,classNames:"menuTransition",unmountOnExit:!0,children:b.jsx(qS,{ref:r,setIsWidgetOpen:n})})})},QS=()=>{const{resetConversation:e}=Qr();return b.jsx("div",{className:"relative z-20 flex justify-end px-2 pt-2",children:b.jsx(Ud,{tone:"light",onStartNewDiscussion:e})})};var Wt=(e=>(e.LAUNCHER="launcher",e.CHATBOX="chatbox",e))(Wt||{});const KS=({displayMode:e})=>{const[t,n]=S.useState(!1),r=S.useRef(null);return b.jsxs(b.Fragment,{children:[e===Wt.LAUNCHER&&b.jsxs(b.Fragment,{children:[b.jsx(xm,{launcherRef:r,isWidgetOpen:t,setIsWidgetOpen:n}),b.jsx(XS,{launcherRef:r,isWidgetOpen:t,setIsWidgetOpen:n})]}),e===Wt.CHATBOX&&b.jsxs("div",{className:"chatBox w-full max-w-[1200px] mx-auto",children:[b.jsx(QS,{}),b.jsx(Od,{}),b.jsx(La,{className:"chatsystem-powered-by-inline"})]})]})},JS=e=>Object.values(Wt).includes(e),ZS=e=>{const t=Ft();return JS(e)?e:(t.warn(`Display mode not valid. Using ${Wt.LAUNCHER} as default.`),Wt.LAUNCHER)},Hd=()=>({hasFetchedSettings:!1,hasDisplayedCSS:!1}),eC=()=>{const[e,t]=S.useState(Hd()),n=S.useCallback(()=>{t(i=>({...i,hasFetchedSettings:!0}))},[]),r=S.useCallback(()=>{t(i=>({...i,hasDisplayedCSS:!0}))},[]);return{appInternalContext:e,setAppInternalContext:t,setHasFetchedSettings:n,setHasDisplayedCss:r}},tC=S.createContext({appInternalContext:Hd(),setAppInternalContext:()=>{},setHasFetchedSettings:()=>{}});function nC(e,t={},n,r){const i=ar(),{id:a,nonce:s,target:o,disableConstructable:u}=t,c=o,d=S.useRef(null),f=S.useRef(null);S.useEffect(()=>{if(!o)return;if(!e){n&&(i.log("No custom css found."),r?.());return}if(!u&&"adoptedStyleSheets"in c&&typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype)return d.current||(d.current=new CSSStyleSheet,c.adoptedStyleSheets=[...c.adoptedStyleSheets,d.current]),d.current.replaceSync(e),i.log("Loading custom css via stylesheet."),r?.(),()=>{const h=c.adoptedStyleSheets||[],y=h.indexOf(d.current);if(y>=0){const g=h.slice();g.splice(y,1),c.adoptedStyleSheets=g}d.current=null};if(!f.current){const h=document.createElement("style");h.type="text/css",a&&(h.id=a),s&&(h.nonce=s),(c instanceof Document&&c.head||c).appendChild(h),f.current=h}return f.current.textContent=e,i.log("Loading custom css via style tag."),r?.(),()=>{f.current?.parentNode?.removeChild(f.current),f.current=null}},[e,a,s,o,u,n,i,r])}const rC=`*, ::before, ::after {
|
|
173
173
|
--tw-border-spacing-x: 0;
|
|
174
174
|
--tw-border-spacing-y: 0;
|
|
175
175
|
--tw-translate-x: 0;
|
|
@@ -2245,6 +2245,16 @@ video {
|
|
|
2245
2245
|
word-break: break-word;
|
|
2246
2246
|
}
|
|
2247
2247
|
|
|
2248
|
+
/* The legacy .chatBox selector owns window positioning and appearance. */
|
|
2249
|
+
.chatsystem-widget-window {
|
|
2250
|
+
overflow: visible;
|
|
2251
|
+
}
|
|
2252
|
+
|
|
2253
|
+
.chatsystem-widget-surface {
|
|
2254
|
+
background: inherit;
|
|
2255
|
+
border-radius: inherit;
|
|
2256
|
+
}
|
|
2257
|
+
|
|
2248
2258
|
/*
|
|
2249
2259
|
* Tailwind Preflight removes native list markers. Restore editorial Markdown
|
|
2250
2260
|
* semantics only inside the public chat surface so navigation and controls are
|