@brainfish-ai/widgets-initiator 1.21.0 → 1.21.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.
@@ -1,4 +1,4 @@
1
- import { type Config } from "@brainfish-ai/widgets-common";
1
+ import { type Config } from '@brainfish-ai/widgets-common';
2
2
  interface Props {
3
3
  config: Config;
4
4
  widgetUrl: string;
@@ -7,5 +7,5 @@ interface Props {
7
7
  widgetKey: string;
8
8
  hideTriggerButton?: boolean;
9
9
  }
10
- export declare const initWidgetButton: ({ config, widgetUrl, apiHost, widgetHost, widgetKey, hideTriggerButton }: Props) => undefined;
10
+ export declare const initWidgetButton: ({ config, widgetUrl, apiHost, widgetHost, widgetKey, hideTriggerButton, }: Props) => undefined;
11
11
  export {};
@@ -9,6 +9,8 @@ export type WidgetOpenOptions = {
9
9
  * Single responsibility: Setup and manage global widget API
10
10
  */
11
11
  export declare class WidgetGlobalAPI {
12
+ private static getIframeForInstance;
13
+ private static postMessageToInstance;
12
14
  private static isInitialized;
13
15
  static initialize(): void;
14
16
  private static setupDeprecatedAPI;
@@ -17,4 +19,6 @@ export declare class WidgetGlobalAPI {
17
19
  static openCurrentlyClosedPopupWidget(optionsOrTrigger?: WidgetOpenOptions | string, isNewApiCall?: boolean): void;
18
20
  static createNewThread(): void;
19
21
  static openContextualHelp(question: string, widgetOpenOptions?: WidgetOpenOptions): void;
22
+ static restoreConversation(conversationId: string): void;
23
+ static clearConversation(): void;
20
24
  }
@@ -0,0 +1,5 @@
1
+ export declare const conversationStorage: {
2
+ save(widgetKey: string, conversationId: string): void;
3
+ load(widgetKey: string): string | null;
4
+ clear(widgetKey: string): void;
5
+ };
@@ -19,6 +19,8 @@ export type Brainfish = {
19
19
  openModalForm: ({ formUrl, width, height }: ModalFormProps) => void;
20
20
  registerClientActionHandler: (key: string, handler: ClientActionHandler) => void;
21
21
  onContextHelp: (question: string, options?: WidgetOpenOptions) => void;
22
+ restoreConversation: (conversationId: string) => void;
23
+ clearConversation: () => void;
22
24
  };
23
25
  SearchWidget: {
24
26
  initStandard: (config: Config) => void;
@@ -24,6 +24,8 @@ export interface BrainfishQueue extends Brainfish {
24
24
  openModalForm: ({ formUrl, width, height }: ModalFormProps) => void;
25
25
  registerClientActionHandler: (key: string, handler: ClientActionHandler) => void;
26
26
  onContextHelp: (question: string) => void;
27
+ restoreConversation: (conversationId: string) => void;
28
+ clearConversation: () => void;
27
29
  };
28
30
  }
29
31
  export declare function createBrainfishQueue(): BrainfishQueue;
package/dist/web.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,i=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,n,i)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[n]=i,s=(e,t)=>{for(var n in t||(t={}))r.call(t,n)&&a(e,n,t[n]);if(i)for(var n of i(t))o.call(t,n)&&a(e,n,t[n]);return e},d=(e,i)=>t(e,n(i)),l=(e,t,n)=>a(e,"symbol"!=typeof t?t+"":t,n),c=(e,t,n)=>new Promise((i,r)=>{var o=e=>{try{s(n.next(e))}catch(t){r(t)}},a=e=>{try{s(n.throw(e))}catch(t){r(t)}},s=e=>e.done?i(e.value):Promise.resolve(e.value).then(o,a);s((n=n.apply(e,t)).next())});!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d32d5cef-5bfc-4916-9a09-83c0ec4961cd",e._sentryDebugIdIdentifier="sentry-dbid-d32d5cef-5bfc-4916-9a09-83c0ec4961cd")}catch(n){}}(),Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),new TextEncoder;const u=new TextDecoder;const f=e=>{let t=e;t instanceof Uint8Array&&(t=u.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return(e=>{const t=atob(e),n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=t.charCodeAt(i);return n})(t)}catch(n){throw new TypeError("The input to be decoded is not correctly encoded.")}};function p(e){let t;if("string"==typeof e){const n=e.split(".");3!==n.length&&5!==n.length||([t]=n)}else if("object"==typeof e&&e){if(!("protected"in e))throw new TypeError("Token does not contain a Protected Header");t=e.protected}try{if("string"!=typeof t||!t)throw new Error;const e=JSON.parse(u.decode(f(t)));if(!function(e){if("object"!=typeof(t=e)||null===t||"[object Object]"!==Object.prototype.toString.call(e))return!1;var t;if(null===Object.getPrototypeOf(e))return!0;let n=e;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}(e))throw new Error;return e}catch(n){throw new TypeError("Invalid Token or Protected Header formatting")}}var g,h,b,m;("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"web-widget@1.21.0"},(h=g||(g={})).Sidebar="sidebar",h.Searchbar="searchbar",h.Popup="popup",g.Sidebar,g.Searchbar,g.Popup;class y extends Error{constructor(e,t){super(e,t),l(this,"cause"),this.name="BrainfishWidgetError",this.cause=null==t?void 0:t.cause,Error.captureStackTrace&&Error.captureStackTrace(this,y),this.cause instanceof Error&&this.cause.stack&&(this.stack=this.stack+"\nCaused by: "+this.cause.stack)}toJSON(){return{name:this.name,message:this.message,stack:this.stack,cause:this.cause instanceof Error?{name:this.cause.name,message:this.cause.message,stack:this.cause.stack}:this.cause}}}(m=b||(b={})).LINK="link",m.CALLBACK="callback",m.EMAIL="email",m.PHONE="phone";const w=(e,t,n,i)=>{let r=n,o={};if(t instanceof Error)try{o=JSON.parse(t.message),r+=` - ${o.message||t.message}`}catch(a){r+=` - ${t.message}`}else r+=` - ${String(t)}`;((e,t,n)=>{if(!navigator||navigator.userAgent.toLowerCase().includes("headless"))return;const i=t.toJSON();fetch(`${e||"https://app.brainfi.sh"}/api/trackError.widget.create`,{method:"POST",headers:{"Content-Type":"application/json","api-key":n},body:JSON.stringify({error:`WebWidgetVersion: 1.21.0. ${t.message}`,stack:t.stack,cause:{message:i.message,stack:i.stack,cause:i.cause}})})})(e,new y(r,{cause:o}),i)};const v=e=>c(null,[e],function*({widgetKey:e,apiHost:t}){return function(e,t,n){return c(this,null,function*(){let i,r=0;for(;r<3;)try{const i=yield fetch(`${e}${t}`,{method:"POST",headers:{"Content-Type":"application/json","api-key":n}});if(!i.ok)throw new Error(`API call failed with status: ${i.status}`);const r=yield i.json();if(!r)throw new Error("Error loading config: empty response");return r}catch(o){if(i=o,r++,r>=3)throw w(e,o,"Error fetching config",n),i;yield new Promise(e=>setTimeout(e,500))}})}(t,"/api/searchWidgets.getConfigByKey",e)}),x=({config:e,apiKey:t,apiHost:n})=>{const i=e.settings||{};return["bodyActionButtons","footerActionButtons","nextBestActions"].forEach(e=>{i[e]&&(i[e]=i[e].map(e=>e.type===b.CALLBACK&&e.value?d(s({},e),{value:new Function(`return ${e.value}`)()}):e))}),d(s({},e),{settings:i,apiHost:n,widgetMode:e.widgetType,apiKey:t})},C=e=>(null==e?void 0:e.apiHost)||"https://app.brainfi.sh",S=e=>c(null,[e],function*({apiHost:e,widgetKey:t,version:n}){try{const e=`https://cdn.jsdelivr.net/npm/@brainfish-ai/search-widget@${n}/dist/web.js`,t=yield(e=>c(null,null,function*(){return document.getElementById("brainfish-widget")?window.Brainfish:new Promise((t,n)=>{const i=document.createElement("script");i.id="brainfish-widget",i.src=e,i.type="module",i.async=!0,i.crossOrigin="anonymous",i.onload=()=>{setTimeout(()=>{const e=window.Brainfish;e?t(e):n(new Error("Failed to load Brainfish module"))},200)},i.onerror=t=>{const i=t,r={message:`Failed to load script: ${e}`,type:i.type,fileName:i.filename,lineNumber:i.lineno,columnNumber:i.colno,error:i.error?i.error.toString():"Unknown error"};n(new Error(JSON.stringify(r)))},document.head.appendChild(i)})}))(e);return{widget:t}}catch(i){w(e,i,i.message,t)}});const k=new Set,E=(e,t)=>c(null,null,function*(){const n=C(e.overrides);try{if(k.has(e.widgetKey))return;const i=yield S({apiHost:n,widgetKey:e.widgetKey,version:t.version||"latest"});if(i){const{widget:r}=i,o=x({config:t,apiKey:e.widgetKey,apiHost:n});return e.overrides&&t.settings&&Object.entries(e.overrides).forEach(([e,n])=>{t.settings&&e in t.settings&&(t.settings[e]=((e=[],t)=>{const n=new Map(e.map(e=>[e.label,e]));return t.forEach(e=>n.set(e.label,e)),Array.from(n.values())})(t.settings[e],n))}),function(e,t){t.widgetType===g.Searchbar||"Search"===t.widgetType?e.SearchWidget.initStandard(t):e.HelpWidget.initPopup(t)}(r,o),k.add(e.widgetKey),r}}catch(i){w(n,i,i.message,e.widgetKey)}});let T=!1;const O=(e,t,n,...i)=>c(null,[e,t,n,...i],function*(e,t,n,i="",r=!1,o){if(t||void 0!==console.warn&&console.warn("[Brainfish] BrainfishAnalytics not initialized. Access key is required."),!T)try{const a=(()=>{if("undefined"==typeof window||"undefined"==typeof navigator)return!1;const e=navigator,t=window,n=(e.doNotTrack||t.doNotTrack||e.msDoNotTrack||"0").toString().toLowerCase();return["1","yes","true"].includes(n)})(),s="undefined"!=typeof localStorage&&"true"===localStorage.getItem("bf_tracking_disabled"),d=a||s;window.BrainfishAnalytics("init",{apiUrl:i,accessKey:t,trackScreenViews:!0,trackAttributes:!d,trackOutgoingLinks:!d,enableRecording:!d&&r,recordingOptions:o}),T=!0,yield((e,t)=>c(null,null,function*(){if(document.getElementById("brainfish-analytics"))return window.BrainfishAnalytics;const n=document.createElement("script");n.id="brainfish-analytics",n.src="https://cdn.jsdelivr.net/npm/@brainfish-ai/web-tracker@latest/dist/tracker.js",n.type="module",n.async=!0,n.crossOrigin="anonymous",n.onerror=()=>{w(e,new Error(`Failed to load script: ${n.src}`),`Failed to load script: ${n.src}`,t)},document.head.appendChild(n)}))(n,e)}catch(a){w(n,a,"Failed to initialize BrainfishAnalytics",e)}});function I(e){const t=(new TextEncoder).encode(e);if("undefined"!=typeof window&&"function"==typeof window.btoa){const e=Array.from(t,e=>String.fromCharCode(e)).join("");return btoa(e)}if("undefined"!=typeof Buffer)return Buffer.from(t).toString("base64");throw new Error("[utils.base64Encode]: Unsupported environment")}function _(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var W,A={exports:{}},B={exports:{}},P={exports:{}};function M(){return W||(W=1,function(e,t){function n(e){return Math.round(255*e)}function i(e,t,i){return n(e)+","+n(t)+","+n(i)}t.__esModule=!0,t.default=void 0,t.default=function(e,t,n,r){if(void 0===r&&(r=i),0===t)return r(n,n,n);var o=(e%360+360)%360/60,a=(1-Math.abs(2*n-1))*t,s=a*(1-Math.abs(o%2-1)),d=0,l=0,c=0;o>=0&&o<1?(d=a,l=s):o>=1&&o<2?(d=s,l=a):o>=2&&o<3?(l=a,c=s):o>=3&&o<4?(l=s,c=a):o>=4&&o<5?(d=s,c=a):o>=5&&o<6&&(d=a,c=s);var u=n-a/2;return r(d+u,l+u,c+u)},e.exports=t.default}(P,P.exports)),P.exports}var L,j={exports:{}};function H(){return L||(L=1,function(e,t){t.__esModule=!0,t.default=void 0;var n={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};t.default=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return n[t]?"#"+n[t]:e},e.exports=t.default}(j,j.exports)),j.exports}var F,K,$,N={exports:{}};function z(){return F||(F=1,function(e,t){function n(e){var t="function"==typeof Map?new Map:void 0;return n=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(i())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var a=new(e.bind.apply(e,o));return n&&r(a,n.prototype),a}(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),r(n,e)},n(e)}function i(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(i=function(){return!!e})()}function r(e,t){return(r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}t.__esModule=!0,t.default=void 0;var a={1:"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\n\n",2:"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\n\n",3:"Passed an incorrect argument to a color function, please pass a string representation of a color.\n\n",4:"Couldn't generate valid rgb string from %s, it returned %s.\n\n",5:"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\n\n",6:"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\n\n",7:"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\n\n",8:"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\n\n",9:"Please provide a number of steps to the modularScale helper.\n\n",10:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",11:'Invalid value passed as base to modularScale, expected number or em string but got "%s"\n\n',12:'Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead.\n\n',13:'Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead.\n\n',14:'Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',15:'Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',16:"You must provide a template to this method.\n\n",17:"You passed an unsupported selector state to this method.\n\n",18:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",19:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",20:"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",21:"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n",22:"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n",23:"fontFace expects a name of a font-family.\n\n",24:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",25:"fontFace expects localFonts to be an array.\n\n",26:"fontFace expects fileFormats to be an array.\n\n",27:"radialGradient requries at least 2 color-stops to properly render.\n\n",28:"Please supply a filename to retinaImage() as the first argument.\n\n",29:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",30:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",31:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\n\n",32:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\n\n",33:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\n\n",34:"borderRadius expects a radius value as a string or number as the second argument.\n\n",35:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',36:"Property must be a string value.\n\n",37:"Syntax Error at %s.\n\n",38:"Formula contains a function that needs parentheses at %s.\n\n",39:"Formula is missing closing parenthesis at %s.\n\n",40:"Formula has too many closing parentheses at %s.\n\n",41:"All values in a formula must have the same unit or be unitless.\n\n",42:"Please provide a number of steps to the modularScale helper.\n\n",43:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",44:"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\n\n",45:"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\n\n",46:"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\n\n",47:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",48:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",49:"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",50:"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\n\n",51:"Expects the first argument object to have the properties prop, fromSize, and toSize.\n\n",52:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",53:"fontFace expects localFonts to be an array.\n\n",54:"fontFace expects fileFormats to be an array.\n\n",55:"fontFace expects a name of a font-family.\n\n",56:"linearGradient requries at least 2 color-stops to properly render.\n\n",57:"radialGradient requries at least 2 color-stops to properly render.\n\n",58:"Please supply a filename to retinaImage() as the first argument.\n\n",59:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",60:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",61:"Property must be a string value.\n\n",62:"borderRadius expects a radius value as a string or number as the second argument.\n\n",63:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',64:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\n\n",65:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\n\n",66:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\n\n",67:"You must provide a template to this method.\n\n",68:"You passed an unsupported selector state to this method.\n\n",69:'Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead.\n\n',70:'Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead.\n\n',71:'Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12.\n\n',72:'Passed invalid base value %s to %s(), please pass a value like "12px" or 12.\n\n',73:"Please provide a valid CSS variable.\n\n",74:"CSS variable not found and no default was provided.\n\n",75:"important requires a valid style object, got a %s instead.\n\n",76:"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\n\n",77:'remToPx expects a value in "rem" but you provided it in "%s".\n\n',78:'base must be set in "px" or "%" but you set it in "%s".\n'};function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var i,r=t[0],o=[];for(i=1;i<t.length;i+=1)o.push(t[i]);return o.forEach(function(e){r=r.replace(/%[a-z]/,e)}),r}t.default=function(e){var t,n;function i(t){var n;if("production"===process.env.NODE_ENV)n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this;else{for(var i=arguments.length,r=new Array(i>1?i-1:0),o=1;o<i;o++)r[o-1]=arguments[o];n=e.call(this,s.apply(void 0,[a[t]].concat(r)))||this}return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(n)}return n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,r(t,n),i}(n(Error)),e.exports=t.default}(N,N.exports)),N.exports}function R(){return K||(K=1,function(e,t){t.__esModule=!0,t.default=function(e){if("string"!=typeof e)throw new r.default(3);var t=(0,i.default)(e);if(t.match(a))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(s)){var o=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:o}}if(t.match(d))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(l)){var g=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:g}}var h=c.exec(t);if(h)return{red:parseInt(""+h[1],10),green:parseInt(""+h[2],10),blue:parseInt(""+h[3],10)};var b=u.exec(t.substring(0,50));if(b)return{red:parseInt(""+b[1],10),green:parseInt(""+b[2],10),blue:parseInt(""+b[3],10),alpha:parseFloat(""+b[4])>1?parseFloat(""+b[4])/100:parseFloat(""+b[4])};var m=f.exec(t);if(m){var y=parseInt(""+m[1],10),w=parseInt(""+m[2],10)/100,v=parseInt(""+m[3],10)/100,x="rgb("+(0,n.default)(y,w,v)+")",C=c.exec(x);if(!C)throw new r.default(4,t,x);return{red:parseInt(""+C[1],10),green:parseInt(""+C[2],10),blue:parseInt(""+C[3],10)}}var S=p.exec(t.substring(0,50));if(S){var k=parseInt(""+S[1],10),E=parseInt(""+S[2],10)/100,T=parseInt(""+S[3],10)/100,O="rgb("+(0,n.default)(k,E,T)+")",I=c.exec(O);if(!I)throw new r.default(4,t,O);return{red:parseInt(""+I[1],10),green:parseInt(""+I[2],10),blue:parseInt(""+I[3],10),alpha:parseFloat(""+S[4])>1?parseFloat(""+S[4])/100:parseFloat(""+S[4])}}throw new r.default(5)};var n=o(M()),i=o(H()),r=o(z());function o(e){return e&&e.__esModule?e:{default:e}}var a=/^#[a-fA-F0-9]{6}$/,s=/^#[a-fA-F0-9]{8}$/,d=/^#[a-fA-F0-9]{3}$/,l=/^#[a-fA-F0-9]{4}$/,c=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,u=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,f=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,p=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;e.exports=t.default}(B,B.exports)),B.exports}function q(){return $||($=1,function(e,t){t.__esModule=!0,t.default=function(e){if("transparent"===e)return 0;var t=(0,i.default)(e),n=Object.keys(t).map(function(e){var n=t[e]/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}),r=n[0],o=n[1],a=n[2];return parseFloat((.2126*r+.7152*o+.0722*a).toFixed(3))};var n,i=(n=R())&&n.__esModule?n:{default:n};e.exports=t.default}(A,A.exports)),A.exports}const D=_(q());var U,J={exports:{}},Y={exports:{}};function V(){return U||(U=1,function(e,t){function n(e,t,i){return function(){var r=i.concat(Array.prototype.slice.call(arguments));return r.length>=t?e.apply(this,r):n(e,t,r)}}t.__esModule=!0,t.default=function(e){return n(e,e.length,[])},e.exports=t.default}(Y,Y.exports)),Y.exports}var Z,G={exports:{}};function Q(){return Z||(Z=1,e=G,(t=G.exports).__esModule=!0,t.default=void 0,t.default=function(e,t,n){return Math.max(e,Math.min(t,n))},e.exports=t.default),G.exports;var e,t}var X,ee,te={exports:{}},ne={exports:{}};function ie(){return X||(X=1,e=ne,(t=ne.exports).__esModule=!0,t.default=void 0,t.default=function(e){var t,n=e.red/255,i=e.green/255,r=e.blue/255,o=Math.max(n,i,r),a=Math.min(n,i,r),s=(o+a)/2;if(o===a)return void 0!==e.alpha?{hue:0,saturation:0,lightness:s,alpha:e.alpha}:{hue:0,saturation:0,lightness:s};var d=o-a,l=s>.5?d/(2-o-a):d/(o+a);switch(o){case n:t=(i-r)/d+(i<r?6:0);break;case i:t=(r-n)/d+2;break;default:t=(n-i)/d+4}return t*=60,void 0!==e.alpha?{hue:t,saturation:l,lightness:s,alpha:e.alpha}:{hue:t,saturation:l,lightness:s}},e.exports=t.default),ne.exports;var e,t}function re(){return ee||(ee=1,function(e,t){t.__esModule=!0,t.default=function(e){return(0,i.default)((0,n.default)(e))};var n=r(R()),i=r(ie());function r(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(te,te.exports)),te.exports}var oe,ae={exports:{}},se={exports:{}},de={exports:{}},le={exports:{}};function ce(){return oe||(oe=1,function(e,t){t.__esModule=!0,t.default=void 0;t.default=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e},e.exports=t.default}(le,le.exports)),le.exports}var ue,fe,pe,ge={exports:{}};function he(){return ue||(ue=1,e=ge,(t=ge.exports).__esModule=!0,t.default=void 0,t.default=function(e){var t=e.toString(16);return 1===t.length?"0"+t:t},e.exports=t.default),ge.exports;var e,t}function be(){return fe||(fe=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=o(M()),i=o(ce()),r=o(he());function o(e){return e&&e.__esModule?e:{default:e}}function a(e){return(0,r.default)(Math.round(255*e))}function s(e,t,n){return(0,i.default)("#"+a(e)+a(t)+a(n))}t.default=function(e,t,i){return(0,n.default)(e,t,i,s)},e.exports=t.default}(de,de.exports)),de.exports}function me(){return pe||(pe=1,function(e,t){t.__esModule=!0,t.default=function(e,t,r){if("number"==typeof e&&"number"==typeof t&&"number"==typeof r)return(0,n.default)(e,t,r);if("object"==typeof e&&void 0===t&&void 0===r)return(0,n.default)(e.hue,e.saturation,e.lightness);throw new i.default(1)};var n=r(be()),i=r(z());function r(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(se,se.exports)),se.exports}var ye,we={exports:{}};function ve(){return ye||(ye=1,function(e,t){t.__esModule=!0,t.default=function(e,t,o,a){if("number"==typeof e&&"number"==typeof t&&"number"==typeof o&&"number"==typeof a)return a>=1?(0,n.default)(e,t,o):"rgba("+(0,i.default)(e,t,o)+","+a+")";if("object"==typeof e&&void 0===t&&void 0===o&&void 0===a)return e.alpha>=1?(0,n.default)(e.hue,e.saturation,e.lightness):"rgba("+(0,i.default)(e.hue,e.saturation,e.lightness)+","+e.alpha+")";throw new r.default(2)};var n=o(be()),i=o(M()),r=o(z());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(we,we.exports)),we.exports}var xe,Ce={exports:{}};function Se(){return xe||(xe=1,function(e,t){t.__esModule=!0,t.default=function(e,t,o){if("number"==typeof e&&"number"==typeof t&&"number"==typeof o)return(0,n.default)("#"+(0,i.default)(e)+(0,i.default)(t)+(0,i.default)(o));if("object"==typeof e&&void 0===t&&void 0===o)return(0,n.default)("#"+(0,i.default)(e.red)+(0,i.default)(e.green)+(0,i.default)(e.blue));throw new r.default(6)};var n=o(ce()),i=o(he()),r=o(z());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(Ce,Ce.exports)),Ce.exports}var ke,Ee,Te,Oe={exports:{}};function Ie(){return ke||(ke=1,function(e,t){t.__esModule=!0,t.default=function(e,t,o,a){if("string"==typeof e&&"number"==typeof t){var s=(0,n.default)(e);return"rgba("+s.red+","+s.green+","+s.blue+","+t+")"}if("number"==typeof e&&"number"==typeof t&&"number"==typeof o&&"number"==typeof a)return a>=1?(0,i.default)(e,t,o):"rgba("+e+","+t+","+o+","+a+")";if("object"==typeof e&&void 0===t&&void 0===o&&void 0===a)return e.alpha>=1?(0,i.default)(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new r.default(7)};var n=o(R()),i=o(Se()),r=o(z());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(Oe,Oe.exports)),Oe.exports}function _e(){return Ee||(Ee=1,function(e,t){t.__esModule=!0,t.default=function(e){if("object"!=typeof e)throw new a.default(8);if(l(e))return(0,o.default)(e);if(d(e))return(0,r.default)(e);if(u(e))return(0,i.default)(e);if(c(e))return(0,n.default)(e);throw new a.default(8)};var n=s(me()),i=s(ve()),r=s(Se()),o=s(Ie()),a=s(z());function s(e){return e&&e.__esModule?e:{default:e}}var d=function(e){return"number"==typeof e.red&&"number"==typeof e.green&&"number"==typeof e.blue&&("number"!=typeof e.alpha||void 0===e.alpha)},l=function(e){return"number"==typeof e.red&&"number"==typeof e.green&&"number"==typeof e.blue&&"number"==typeof e.alpha},c=function(e){return"number"==typeof e.hue&&"number"==typeof e.saturation&&"number"==typeof e.lightness&&("number"!=typeof e.alpha||void 0===e.alpha)},u=function(e){return"number"==typeof e.hue&&"number"==typeof e.saturation&&"number"==typeof e.lightness&&"number"==typeof e.alpha};e.exports=t.default}(ae,ae.exports)),ae.exports}function We(){return Te||(Te=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=a(V()),i=a(Q()),r=a(re()),o=a(_e());function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},s.apply(this,arguments)}var d=(0,n.default)(function(e,t){if("transparent"===t)return t;var n=(0,r.default)(t);return(0,o.default)(s({},n,{lightness:(0,i.default)(0,1,n.lightness-parseFloat(e))}))});t.default=d,e.exports=t.default}(J,J.exports)),J.exports}const Ae=_(We());var Be,Pe={exports:{}};function Me(){return Be||(Be=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=a(V()),i=a(Q()),r=a(re()),o=a(_e());function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},s.apply(this,arguments)}var d=(0,n.default)(function(e,t){if("transparent"===t)return t;var n=(0,r.default)(t);return(0,o.default)(s({},n,{lightness:(0,i.default)(0,1,n.lightness+parseFloat(e))}))});t.default=d,e.exports=t.default}(Pe,Pe.exports)),Pe.exports}const Le=_(Me()),je="bf-iframe-container",He="bf-trigger-button",Fe="bf-search-bar-iframe-container",Ke="bf-search-bar-iframe-backdrop";function $e(e){var t,n;if(!document.querySelector("style[data-widget-styles]")){!function(e="#000",t="FFF"){const n=document.createElement("style");n.attributes.setNamedItem(document.createAttribute("data-widget-styles"));const i=D(e)>.5;n.textContent=`\n .bf-trigger-button{position:fixed;bottom:16px;right:16px;width:36px;height:36px;border-radius:50%;border:none;box-shadow:0 1px 6px #0000000f,0 2px 32px #00000029;transition:transform 167ms cubic-bezier(.33,0,0,1);box-sizing:content-box;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1000;padding:12px;gap:10px;overflow:hidden}.bf-trigger-button.hidden{display:none}.trigger-button-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;position:relative}.trigger-button-icon svg{width:100%;height:100%;position:absolute;inset:0}.trigger-button-icon>svg>path{transition:transform .3s ease,opacity .3s ease;transform:scale(.5);transform-origin:center;opacity:0}.trigger-button-icon .fish-icon{display:none}.trigger-button-icon .fish-icon.visible{display:block;max-width:36px;max-height:36px}.trigger-button-icon svg.visible{display:block}.trigger-button-icon>svg.visible>path{opacity:1;transform:scale(1)}.trigger-iframe{position:relative;width:100%;height:100%;border:none;outline:none;transform:translateZ(0);overflow:hidden}.bf-iframe-container{visibility:hidden;position:fixed;z-index:2147483000000;background-color:#fff;bottom:0;right:0;width:100vw;height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:none;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .3s ease,transform .3s ease,width .2s ease-in-out,height .2s ease-in-out,visibility 0s .3s}.bf-iframe-container.open{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto;top:env(safe-area-inset-top);left:0;transition-delay:0s}@media (min-width: 576px){.bf-iframe-container{bottom:80px;right:24px;width:448px;height:min(750px,calc(100vh - 80px));border-radius:8px;border:1px solid var(--Dark-300, #d4d4d4);box-shadow:0 20px 25px -5px #1212171a,0 10px 10px -5px #1212170a}.bf-iframe-container.open{top:unset;left:unset}.bf-iframe-container.position-bottom-left{right:auto;left:24px}.bf-iframe-container.position-top-left{inset:80px auto auto 24px}.bf-iframe-container.position-top-right{bottom:auto;top:80px;right:24px}.bf-iframe-container.expanded{width:min(calc(448px * 1.35),calc(100vw - 16px));height:min(calc(750px * 1.35),calc(100vh - 80px))}}.bf-search-bar-iframe-container{position:relative;width:100%;min-height:200px;background-color:#fff;border:1px solid var(--dark-300, #d4d4d4);border-radius:8px;overflow:hidden;pointer-events:auto;transition:height .2s ease-in-out}.iframe-loading-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:10}.spinner{width:24px;height:24px;border:2px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-error{width:24px;height:24px;position:relative;display:flex;align-items:center;justify-content:center}.loading-error:before,.loading-error:after{content:"";position:absolute;width:16px;height:2px;background-color:#e74c3c;border-radius:2px}.loading-error:before{transform:rotate(45deg)}.loading-error:after{transform:rotate(-45deg)}\n .${He} { background: ${e}; }\n .${He}:hover {\n background: ${i?Ae(.05,e):Le(.05,e)};\n }\n .trigger-button-icon { color: ${t}; }\n `,document.head.appendChild(n)}((null==(t=null==e?void 0:e.theme)?void 0:t.inputButtonBgColor)||"#007bff",(null==(n=null==e?void 0:e.theme)?void 0:n.textBaseColor)||"#ffffff")}}class Ne{constructor(e,t){l(this,"isOpen",!1),this.widgetKey=e,this.widgetType=t}get isWidgetOpen(){return this.isOpen}openWidget(){this.isOpen=!0}closeWidget(){this.isOpen=!1}toggleWidget(){return this.isOpen=!this.isOpen,this.isOpen}}function ze(e,t,n={}){const i=document.createElement(e);return i.className=t,Object.entries(n).forEach(([e,t])=>{i.setAttribute(e,t)}),i}const Re="brainfish-search-widget";class qe{constructor(e){l(this,"button",null),l(this,"icon",null),l(this,"closeCallback",null),this.widgetType=e}setCloseCallback(e){this.closeCallback=e}get containerClass(){return this.widgetType===g.Searchbar?Fe:je}get container(){return document.querySelector(`.${this.containerClass}`)}get iframe(){var e;return null==(e=this.container)?void 0:e.querySelector("iframe")}get backdrop(){return document.querySelector(`.${Ke}`)}setElements(e,t){this.button=e||null,this.icon=t||null}openWidget(e={}){var t,n,i;const r=document.querySelector(`.${this.containerClass}`),o=null==r?void 0:r.querySelector("iframe");if(e.newConversation&&e.contextualQuestion?null==(t=null==o?void 0:o.contentWindow)||t.postMessage({type:"CONTEXTUAL_QUESTION",question:e.contextualQuestion},"*"):e.newConversation&&(null==(n=null==o?void 0:o.contentWindow)||n.postMessage({type:"NEW_CONVERSATION"},"*")),null==(i=null==o?void 0:o.contentWindow)||i.postMessage({type:"FOCUS_SEARCH_FIELD"},"*"),this.widgetType!==g.Searchbar&&(null==r||r.classList.add("open"),e.position&&(null==r||r.classList.add(`position-${e.position}`),null==r||r.setAttribute("data-current-position",e.position))),null==r||r.setAttribute("aria-hidden","false"),this.widgetType!==g.Searchbar&&document.body.clientWidth>=962&&null===this.backdrop){const e=ze("div",Ke);this.closeCallback&&e.addEventListener("click",this.closeCallback),document.body.appendChild(e)}this.updateButtonForOpen()}focusNextElement(){const e=document.querySelector(Re);if(e){const t=Array.from(document.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')).filter(e=>!e.hasAttribute("disabled")),n=t.indexOf(e);if(-1!==n){const e=t[n+1];e&&e.focus()}}}closeWidget(){const e=this.container;if(!e)return;const t=e.dataset.currentPosition;if(t){const n=()=>{e.dataset.currentPosition===t&&(e.classList.remove(`position-${t}`),delete e.dataset.currentPosition)};e.addEventListener("transitionend",n,{once:!0})}e.classList.remove("open"),e.setAttribute("aria-hidden","true"),this.backdrop&&(this.backdrop.remove(),this.focusNextElement()),this.updateButtonForClose()}updateButtonForOpen(){if(!this.button||!this.icon)return;const e=this.icon.querySelector(".fish-icon"),t=this.icon.querySelector(".close-icon");this.button.setAttribute("aria-expanded","true"),null==e||e.classList.remove("visible"),null==t||t.classList.add("visible"),this.isMobile()&&this.hideTriggerButton()}updateButtonForClose(){if(!this.button||!this.icon)return;const e=this.icon.querySelector(".fish-icon"),t=this.icon.querySelector(".close-icon");this.button.setAttribute("aria-expanded","false"),null==e||e.classList.add("visible"),null==t||t.classList.remove("visible"),this.isMobile()&&this.showTriggerButton()}showTriggerButton(){var e;null==(e=this.button)||e.classList.remove("hidden")}hideTriggerButton(){var e;null==(e=this.button)||e.classList.add("hidden")}resizeContainer(e){if(this.widgetType!==g.Searchbar)return;if(!this.container||!this.iframe)return;const t=Math.max(e,200);this.container.style.height=`${t}px`,this.iframe.style.height=`${t}px`}isMobile(){return document.body.clientWidth<=576}setupButtonClickListener(e){this.button&&this.button.addEventListener("click",e)}static isWidgetDOMExisting(e,t){const n=document.querySelector(`.${Fe}[data-widget-key="${e}"]`);if(n){const e=document.querySelector("brainfish-search-widget");return!e||e.contains(n)}if(document.getElementById(`trigger-button-${e}`))return!0;if("Search"!==t.widgetType){if(document.querySelector(`.${je}`))return!0}return!1}}class De{static register(e,t){this.instances.set(e,t)}static getInstance(e){return this.instances.get(e)}static unregister(e){this.instances.delete(e)}static getAllInstances(){return Array.from(this.instances.values())}static getOpenInstance(){return this.getAllInstances().find(e=>e.isWidgetOpen)}static getClosedPopupInstance(){return this.getAllInstances().find(e=>!e.isWidgetOpen&&e.widgetType===g.Popup)}static clear(){this.instances.clear()}}l(De,"instances",new Map);const Ue=({formUrl:e,width:t="500px",height:n="600px"})=>{const i=document.createElement("div");i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("tabindex","-1"),i.style.cssText="\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n padding: 20px;\n border-radius: 8px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n z-index: 300000000;\n ";const r=document.createElement("button");r.innerHTML="×",r.style.cssText="\n position: absolute;\n right: -16px;\n top: -16px;\n width: 32px;\n height: 32px;\n border: 2px solid #666;\n border-radius: 50%;\n background: #FFF;\n font-size: 20px;\n cursor: pointer;\n ";const o=document.createElement("iframe");o.src=e,o.style.cssText=`width: ${t}; height: ${n}; border: none;`;const a=document.activeElement,s=e=>{if("Tab"===e.key){const t=[r,o],n=document.activeElement,i=n?t.indexOf(n):-1;e.preventDefault(),e.shiftKey?i<=0?t[t.length-1].focus():t[i-1].focus():i>=t.length-1?t[0].focus():t[i+1].focus()}else"Escape"===e.key&&d()},d=()=>{i.remove(),l.remove(),document.removeEventListener("keydown",s),null==a||a.focus()},l=document.createElement("div");l.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.5);\n z-index: 299999999;\n ",r.onclick=d,l.onclick=d,document.addEventListener("keydown",s),i.appendChild(r),i.appendChild(o),document.body.appendChild(l),document.body.appendChild(i),i.focus(),o.onload=()=>{o.setAttribute("tabindex","0"),r.focus()}};class Je{static initialize(){this.isInitialized||(this.setupDeprecatedAPI(),this.setupNewAPI(),this.isInitialized=!0)}static setupDeprecatedAPI(){var e;(null==(e=window.Brainfish)?void 0:e.HelpWidget)&&(window.Brainfish.HelpWidget.close=e=>this.closeCurrentlyOpenWidget(),window.Brainfish.HelpWidget.open=e=>this.openCurrentlyClosedPopupWidget(e))}static setupNewAPI(){var e;(null==(e=window.Brainfish)?void 0:e.Widgets)&&(window.Brainfish.Widgets.open=e=>this.openCurrentlyClosedPopupWidget(e,!0),window.Brainfish.Widgets.close=()=>this.closeCurrentlyOpenWidget(),window.Brainfish.Widgets.createNewThread=()=>this.createNewThread(),window.Brainfish.Widgets.openModalForm=Ue,window.Brainfish.Widgets.onContextHelp=(e,t)=>this.openContextualHelp(e,t))}static closeCurrentlyOpenWidget(){const e=De.getOpenInstance();e&&e.closeWidget()}static openCurrentlyClosedPopupWidget(e,t){const n=De.getClosedPopupInstance();if(n){const i="string"==typeof e?{trigger:e}:e,r={};t&&(r.newConversation=!0),(null==i?void 0:i.trigger)&&(r.newConversation=!0,r.trigger=i.trigger),(null==i?void 0:i.position)&&(r.position=i.position),n.openWidget(r)}}static createNewThread(){var e;const t=De.getOpenInstance();if(t){const n=t.widgetType===g.Searchbar?Fe:je,i=t.widgetType===g.Searchbar?`.${n}[data-widget-key="${t.widgetKey}"]`:`.${n}`,r=document.querySelector(i),o=null==r?void 0:r.querySelector("iframe");return void(null==(e=null==o?void 0:o.contentWindow)||e.postMessage({type:"NEW_CONVERSATION"},"*"))}const n=De.getClosedPopupInstance();n&&n.openWidget({newConversation:!0})}static openContextualHelp(e,t={}){if(!e||"string"!=typeof e||0===e.trim().length)return void console.warn("Brainfish.Widgets.onContextHelp: Invalid question provided");let n=De.getOpenInstance();if(n||(n=De.getClosedPopupInstance()),!n)return void console.warn("Brainfish.Widgets.onContextHelp: No popup widget available");const i=d(s({},t),{newConversation:!0,trigger:"contextual-help",contextualQuestion:e.trim()});n.openWidget(i)}}l(Je,"isInitialized",!1);class Ye{constructor(e,t){this.widgetType=e,this.widgetKey=t}trackOpenWidget(e,t){this.dispatchEvent("onBrainfishWidgetOpen"),"contextual-help"===e?this.trackAnalytics("Open Widget - Contextual Help",{trigger:e,question:t}):e?this.trackAnalytics("Open Widget - Custom Trigger",{trigger:e}):this.trackAnalytics("Open Widget")}trackCloseWidget(){this.dispatchEvent("onBrainfishWidgetClose"),this.trackAnalytics("Close Widget")}trackCustomEvent(e,t={}){this.trackAnalytics(e,t)}dispatchEvent(e){window.dispatchEvent(new Event(e))}trackAnalytics(e,t={}){if(window.BrainfishAnalytics){let n;switch(this.widgetType){case g.Searchbar:n="searchbar_widget";break;case g.Sidebar:default:n="search_widget"}window.BrainfishAnalytics("track",e,d(s({},t),{widgetKey:this.widgetKey}),{source:n,widgetKey:this.widgetKey})}}}class Ve{constructor(e,t){l(this,"state"),l(this,"domController"),l(this,"analyticsTracker"),this.state=new Ne(e,t),this.domController=new qe(t),this.domController.setCloseCallback(()=>this.closeWidget()),this.analyticsTracker=new Ye(t,e)}static getInstance(e){return De.getInstance(e)}get widgetKey(){return this.state.widgetKey}get widgetType(){return this.state.widgetType}get isWidgetOpen(){return this.state.isWidgetOpen}get containerClass(){return this.domController.containerClass}initialize({button:e,icon:t,isButtonHidden:n}){this.domController.setElements(e,t),this.domController.setupButtonClickListener(()=>this.toggleIframeVisibility()),De.register(this.widgetKey,this),Je.initialize()}toggleIframeVisibility(){this.state.toggleWidget()?this.openWidget():this.closeWidget()}openWidget(e={}){this.state.openWidget(),this.domController.openWidget(e),this.analyticsTracker.trackOpenWidget(e.trigger,e.contextualQuestion)}closeWidget(){this.state.closeWidget(),this.domController.closeWidget(),this.analyticsTracker.trackCloseWidget()}showTriggerButton(){this.domController.showTriggerButton()}hideTriggerButton(){this.domController.hideTriggerButton()}resizeContainer(e){this.domController.resizeContainer(e)}trackCustomEvent(e,t={}){this.analyticsTracker.trackCustomEvent(e,t)}destroy(){De.unregister(this.widgetKey)}static initialize(e){const t=new Ve(e.widgetKey,e.widgetType);return t.initialize(e),t}}function Ze({widgetUrl:e,widgetType:t,props:n}){const i=t===g.Searchbar?Fe:je,r=ze("div",i,s({id:i,"aria-live":"polite","aria-hidden":t===g.Searchbar?"false":"true"},n||{})),o=ze("div","iframe-loading-indicator"),a=ze("div","spinner");o.setAttribute("aria-label","Loading content"),o.setAttribute("role","status"),o.appendChild(a),r.appendChild(o);const d=ze("iframe","trigger-iframe",{src:e,sandbox:"allow-scripts allow-same-origin allow-popups allow-forms",allow:"clipboard-write",role:"dialog"});return d.style.opacity="0",d.addEventListener("load",()=>{o.style.display="none",d.style.opacity="1"}),d.addEventListener("error",e=>{console.error("Error loading iframe:",e),o.innerHTML="";const t=ze("div","loading-error");o.appendChild(t),o.setAttribute("aria-label","Failed to load content")}),r.appendChild(d),{iframeContainer:r,iframe:d}}function Ge(e,t){const n=()=>{(t=>{var n;null==(n=e.contentWindow)||n.postMessage({type:"UPDATE_BODY_CLASS",isDarkMode:t},"*")})(document.body.classList.contains("dark"))};n(),(()=>{const e=new MutationObserver(n);e.observe(document.body,{attributes:!0,attributeFilter:["class"]}),t.addEventListener("abort",()=>e.disconnect())})()}const Qe=new Map,Xe=(e,t)=>`Error executing Client Action with key ${e}. Details: ${t instanceof Error?t.message:String(t)}`,et=(e,t)=>c(null,null,function*(){if(Qe.has(e)){const r=Qe.get(e);if("function"!=typeof r)return{success:!1,reason:`Client Action registered with key ${e} is not a function`};try{const e=yield r(t);if(n=e,"[object Object]"!==Object.prototype.toString.call(n))throw new TypeError("Invalid result, expecting object type");return{success:!0,data:e}}catch(i){return{success:!1,reason:Xe(e,i)}}}var n;return{success:!1,reason:`No Client Action registered with key ${e}`}});function tt(e,{widgetHost:t,apiHost:n,widgetKey:i,widgetType:r,signal:o,stateManager:a}){window.addEventListener("message",r=>c(null,null,function*(){var o;if(r.origin!==t)return;const{type:s,widgetKey:d}=r.data;if(!d||d===i){if("TOGGLE_WIDGET_SIZE"===s&&function(){const e=document.querySelector(`.${je}`);e.classList.contains("expanded")?e.classList.remove("expanded"):e.classList.add("expanded")}(),"RESIZE_IFRAME"===s){const{height:e}=r.data;a.resizeContainer(e)}if("TRACK_EVENT"===s){const{eventName:e,data:t}=r.data;a.trackCustomEvent(e,t)}if("CLOSE_WIDGET"===s&&a.closeWidget(),"NEXT_BEST_ACTION_CLICKED"===s){const{action:e,searchQueryId:t,query:o,answer:a,conversation:s}=r.data;if(!["function","callback"].includes(e.type))return void console.error("[Brainfish] Invalid action type:",e);const d={query:o,answer:a,searchIntentId:e.searchIntentId,actionId:e.id,conversationId:(null==s?void 0:s.conversationId)||"",searchQueryId:t,metadata:e.metadata||{},conversation:s||null};try{if(window.__bfCallbacks=window.__bfCallbacks||{},window.__bfCallbacks[e.id])return void window.__bfCallbacks[e.id](o,a,d);const t=new URL(`${n}/api/searchWidgets.callback.codeblocks`);t.searchParams.set("apiKey",i),t.searchParams.set("codeblockId",e.id),d.searchIntentId&&t.searchParams.set("searchIntentId",d.searchIntentId);const r=document.createElement("script");r.src=t.toString(),document.head.appendChild(r),r.onload=()=>{window.__bfCallbacks[e.id](o,a,d),setTimeout(()=>{document.head.removeChild(r)},300)},r.onerror=()=>{console.error("[Brainfish] Failed to load callback script from server")}}catch(l){console.error("[Brainfish] Error executing callback:",l)}}if("CLIENT_EXECUTION"===s){const{actionKey:t,inputs:n,messageId:i}=r.data,a=yield et(t,n);null==(o=e.contentWindow)||o.postMessage({type:"CLIENT_EXECUTION_RESULT",messageId:i,result:a},"*")}}}),{signal:o})}function nt(e,t,n){let i;const r=()=>{(t=>{var i;const r={type:"UPDATE_BODY_CLASS",isMobile:t};null==(i=e.contentWindow)||i.postMessage(r,"*"),t&&(n.isWidgetOpen?n.hideTriggerButton():n.showTriggerButton())})(document.body.clientWidth<=576)},o=()=>{i&&clearTimeout(i),i=window.setTimeout(r,300)};r(),(()=>{const e=new ResizeObserver(o);e.observe(document.body),t.addEventListener("abort",()=>e.disconnect())})()}const it=new Set;function rt(e,t,{isButtonHidden:n,triggerButtonIcon:i}){const r=document.createDocumentFragment();let o;if(n)o=Ve.initialize({isButtonHidden:n,widgetType:g.Popup,widgetKey:e});else{const{button:t,icon:n}=function(e,t){const n=ze("button",He,{id:`trigger-button-${e}`,"aria-controls":je,"aria-expanded":"false","data-name":He}),i=ze("div","trigger-button-icon",{"aria-hidden":"true"});return i.innerHTML=t?`\n <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256" class="close-icon">\n <path d="M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"></path>\n </svg>\n <img src="${t}" class="fish-icon visible" alt="Trigger button icon" aria-hidden="true" aria-label="help button icon" />\n `:'\n <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256" class="close-icon">\n <path d="M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"></path>\n </svg>\n <svg width="24" height="14" viewBox="0 0 24 14" fill="none" xmlns="http://www.w3.org/2000/svg" class="fish-icon visible">\n <path fill-rule="evenodd" clip-rule="evenodd" d="M1.71844 10.3882L4.60606 6.98384L1.71844 3.58375C1.4014 3.21362 1.44424 2.65841 1.81269 2.33993C1.97978 2.1979 2.65242 1.98701 3.04657 2.43461L5.78425 5.65824C6.14281 5.29523 6.51693 4.95924 6.90479 4.65114C8.88976 3.07437 11.2345 2.22803 13.6931 2.22803C16.9492 2.22803 20.0039 3.71718 22.2917 6.41142C22.5702 6.74282 22.5702 7.22916 22.2917 7.56056C20.0039 10.2591 16.9492 11.744 13.6931 11.744C11.2348 11.744 8.89035 10.8948 6.90554 9.31995C6.51741 9.01199 6.14304 8.67628 5.78425 8.31374L3.04657 11.5374C2.72953 11.9075 2.18114 11.9505 1.81269 11.632C1.44852 11.3179 1.40568 10.7584 1.71844 10.3882ZM5.93026 10.4683C8.17161 12.2599 10.8546 13.25 13.6931 13.25C17.4881 13.25 21.019 11.4034 23.4447 8.52942C24.1873 7.64571 24.1843 6.31801 23.4397 5.43663C20.8944 2.43919 17.4337 0.722025 13.6931 0.722025C10.8555 0.722025 8.17194 1.70845 5.92952 3.50276L4.17682 1.43933C3.57943 0.760929 2.79325 0.630009 2.25286 0.662947C1.98116 0.679506 1.73125 0.736852 1.51895 0.811846C1.26839 0.900352 1.03017 1.02718 0.827835 1.20058C-0.165283 2.05903 -0.283916 3.561 0.574656 4.56345L2.63075 6.98445L0.568104 9.41623C-0.272133 10.4106 -0.166523 11.9125 0.827835 12.7714C1.81372 13.6243 3.34308 13.5062 4.19036 12.5171L5.93026 10.4683Z" fill="currentColor"/>\n </svg>\n ',n.setAttribute("aria-label","Open Brainfish widget"),n.appendChild(i),{button:n,icon:i}}(e,i);r.appendChild(t),o=Ve.initialize({button:t,icon:n,widgetType:g.Popup,widgetKey:e})}const{iframeContainer:a,iframe:s}=Ze({widgetUrl:t,widgetType:g.Popup});return r.appendChild(a),{fragment:r,iframe:s,stateManager:o}}const ot=({config:e,widgetUrl:t,apiHost:n,widgetHost:i,widgetKey:r,hideTriggerButton:o})=>{const{settings:a}=e,s=null!=o?o:null==a?void 0:a.hideTriggerButton,d=null==a?void 0:a.triggerButtonIcon;try{if(function(e){return it.has(e)}(r))return;if(function(e){return!!document.getElementById(`trigger-button-${e}`)}(r))return;$e(e);const{fragment:o,iframe:a,stateManager:l}=rt(r,t,{isButtonHidden:s||!1,triggerButtonIcon:d||""}),c=new AbortController,{signal:u}=c;a.onload=()=>{setTimeout(()=>{Ge(a,u),tt(a,{widgetHost:i,apiHost:n,widgetKey:r,widgetType:g.Popup,signal:u,stateManager:l}),nt(a,u,l)},0)},document.body?document.body.appendChild(o):(console.warn("[Brainfish] document.body not ready. Widget initialization deferred."),document.addEventListener("DOMContentLoaded",()=>{document.body.appendChild(o)},{once:!0})),it.add(r);const f=()=>{c.abort(),window.removeEventListener("beforeunload",f)};return void window.addEventListener("beforeunload",f)}catch(l){!function(e,t,n){w(e,t,t.message,n)}(n,l,r)}};const at=({config:e,widgetUrl:t,apiHost:n,widgetHost:i,widgetKey:r})=>{var o,a,s;const{settings:d}=e;let l=Ve.getInstance(r);const c=new AbortController;$e(e);try{const e=document.querySelector(`.${Fe}[data-widget-key="${r}"]`),d=document.querySelector(Re);e&&d&&!d.contains(e)&&(d.appendChild(e),null==(o=d.parentElement)||o.style.setProperty("width","100%")),l||(l=Ve.initialize({isButtonHidden:!0,widgetType:g.Searchbar,widgetKey:r}));const{signal:u}=c,f=e=>{Ge(e,u),tt(e,{widgetHost:i,apiHost:n,widgetKey:r,widgetType:g.Searchbar,signal:u,stateManager:l}),nt(e,u,l)};if(e){const t=e.querySelector("iframe");t&&("complete"===(null==(s=t.contentDocument)?void 0:s.readyState)?setTimeout(()=>{f(t)},0):t.onload=()=>{setTimeout(()=>{f(t)},0)})}else{const e=document.createDocumentFragment(),{iframeContainer:n,iframe:i}=Ze({widgetUrl:t,widgetType:g.Searchbar,props:{"data-widget-type":"searchbar","data-widget-key":r}});i.onload=()=>{setTimeout(()=>{f(i)},0)},e.appendChild(n),d?(d.appendChild(e),null==(a=d.parentElement)||a.style.setProperty("width","100%")):document.body.appendChild(e)}const p=()=>{c.abort(),window.removeEventListener("beforeunload",p)};return void window.addEventListener("beforeunload",p)}catch(u){!function(e,t,n){w(e,t,t.message,n)}(n,u,r)}},st=(e,t)=>{var n;const a=C(e.overrides),d=(null==(l=e.overrides)?void 0:l.widgetHost)||"https://agent.brainfi.sh";var l;const c=null==(n=e.overrides)?void 0:n.hideTriggerButton,{theme:u,settings:f}=t,p=e.overrides||{},{theme:g,redirectRules:h,regions:b,customCss:m}=p,y=((e,t)=>{var n={};for(var a in e)r.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&i)for(var a of i(e))t.indexOf(a)<0&&o.call(e,a)&&(n[a]=e[a]);return n})(p,["theme","redirectRules","regions","customCss"]),w=s(s({},u),g),v=s(s({},f),y),x=I(JSON.stringify(h)),S={theme:I(JSON.stringify(w)),settings:I(JSON.stringify(v)),redirectRules:x};b&&(S.regions=I(JSON.stringify(b))),m&&(S.customCss=I(m));const k=`${d}/?widgetKey=${e.widgetKey}#${new URLSearchParams(S).toString()}`;"Search"===t.widgetType?at({config:t,widgetUrl:k,apiHost:a,widgetHost:d,widgetKey:e.widgetKey}):ot({config:t,widgetUrl:k,apiHost:a,widgetHost:d,widgetKey:e.widgetKey,hideTriggerButton:c})};var dt=(e=>(e.FRESHCHAT="freshchat",e.INTERCOM="intercom",e.ZENDESK="zendesk",e.HELPSCOUT="helpscout",e))(dt||{});const lt=e=>c(null,null,function*(){if(e.widgetType===g.Popup){const e=window.fcWidget?dt.FRESHCHAT:null;e&&e===dt.FRESHCHAT&&(yield c(null,null,function*(){window.fcWidget||(yield new Promise(e=>setTimeout(e,100))),window.fcWidget.hide(),window.fcWidget.on("widget:closed",()=>{window.fcWidget.hide()})}))}}),ct="brainfish-nudges",ut=(e,t)=>c(null,null,function*(){try{yield c(null,null,function*(){if(document.getElementById(ct))return;const e=document.createElement("script");e.id=ct,e.src="https://cdn.jsdelivr.net/npm/@brainfish-ai/nudge-widget@latest/dist/index.es.js",e.type="module",e.async=!0,e.crossOrigin="anonymous",e.onerror=()=>{void 0!==console.warn&&console.warn("[Brainfish] Nudge widget failed to load. This may be due to CSP or network restrictions.")},document.head.appendChild(e)})}catch(n){w(e,n,"Failed to initialize Nudge widget",t)}});let ft,pt,gt,ht=!1;const bt=e=>{null==ft||ft.abort(),ft=new AbortController;const{signal:t}=ft;let n=window.location.pathname;const i=()=>{if(t.aborted)return;const i=window.location.pathname;i!==n&&(n=i,e())};window.addEventListener("popstate",i,{signal:t}),ht||(pt=history.pushState,gt=history.replaceState,history.pushState=function(...e){pt.apply(this,e),setTimeout(i,0)},history.replaceState=function(...e){gt.apply(this,e),setTimeout(i,0)},ht=!0),t.addEventListener("abort",()=>{ht&&(history.pushState=pt,history.replaceState=gt,ht=!1)})};let mt=null;const yt="undefined"!=typeof window&&window.Brainfish?window.Brainfish:(mt||(mt=function(){const e=[];let t=null;function n(n,i){if(t){const e=n.split(".");let r=t;for(let t=0;t<e.length-1;t++)r=r[e[t]];const o=r[e[e.length-1]];if("function"==typeof o)return o.apply(r,i)}else e.push([n,i])}return{Widgets:{init:(...e)=>n("Widgets.init",e),identify:(...e)=>n("Widgets.identify",e),setSecretAttributes:(...e)=>n("Widgets.setSecretAttributes",e),open:()=>n("Widgets.open",[]),close:()=>n("Widgets.close",[]),createNewThread:()=>n("Widgets.createNewThread",[]),openModalForm:({formUrl:e,width:t,height:i})=>n("Widgets.openModalForm",[{formUrl:e,width:t,height:i}]),registerClientActionHandler:(...e)=>n("Widgets.registerClientActionHandler",e),onContextHelp:(...e)=>n("Widgets.onContextHelp",e),isReady:!1},SearchWidget:{initStandard:(...e)=>n("SearchWidget.initStandard",e)},HelpWidget:{initPopup:(...e)=>n("HelpWidget.initPopup",e),close:(...e)=>n("HelpWidget.close",e),open:(...e)=>n("HelpWidget.open",e),toggle:(...e)=>n("HelpWidget.toggle",e)},_setRealBrainfish(i){for(t=i;e.length>0;){const[t,i]=e.shift();n(t,i)}}}}(),"undefined"!=typeof window&&(window.Brainfish=mt)),mt),wt=new Map,vt=new Map;let xt=!1;function Ct(e,t,n,i){return c(this,null,function*(){var r,o,a,s,d,l,c;const u=(null==(r=e.overrides)?void 0:r.enableRecording)||(null==(o=null==t?void 0:t.settings)?void 0:o.enableRecording)||!1,f=(null==(a=e.overrides)?void 0:a.version)||(null==t?void 0:t.version);vt.set(e.widgetKey,{options:e,config:t,apiHost:n,analyticsApiHost:i});const p=[];(null==f?void 0:f.startsWith("2."))?(st(e,t),xt||(xt=!0,bt(()=>{vt.forEach(({options:e,config:t})=>{var n;const i=(null==(n=e.overrides)?void 0:n.version)||(null==t?void 0:t.version);(null==i?void 0:i.startsWith("2."))&&st(e,t)})}))):p.push(E(e,t)),p.push(O(e.widgetKey,t.trackingToken||"",n,i,u,{blocklist:null==(s=null==t?void 0:t.settings)?void 0:s.recordingBlocklist,sampleRate:null==(l=null==(d=null==t?void 0:t.settings)?void 0:d.ambientSettings)?void 0:l.sampleRate,_allowLocalhostRecording:null==(c=null==t?void 0:t.settings)?void 0:c._allowLocalhostRecording})),p.push(ut(n,e.widgetKey));const[g]=yield Promise.allSettled(p);g&&"fulfilled"===g.status&&g.value&&yt._setRealBrainfish(g.value)})}yt.Widgets.isReady=!1,yt.Widgets.identify=e=>{window.BrainfishAnalytics("identify",e)},yt.Widgets.setSecretAttributes=e=>{try{const{alg:t}=p(e);if("dir"!==t)throw new Error("Invalid algorithm")}catch(n){return void console.error("[Brainfish] Invalid JWE provided to setSecretAttributes:",n)}const t=document.querySelector("#bf-iframe-container .trigger-iframe");if(t){const n=()=>{t.contentWindow&&t.contentWindow.postMessage({type:"SET_SECRET_ATTRIBUTES",secretAttributes:e},"*")};t.contentWindow&&n(),t.addEventListener("load",n)}},yt.Widgets.init=e=>c(null,null,function*(){window&&(window.BrainfishAnalytics=window.BrainfishAnalytics||function(...e){(window.BrainfishAnalytics.q=window.BrainfishAnalytics.q||[]).push(e)});const t=C(e.overrides),n=(null==(i=e.overrides)?void 0:i.analyticsApiHost)||"";var i;let r;if(e.config)r=JSON.parse((e=>{if("undefined"!=typeof window&&"function"==typeof window.atob){const t=atob(e),n=t.length,i=new Uint8Array(n);for(let e=0;e<n;e++)i[e]=t.charCodeAt(e);return(new TextDecoder).decode(i)}if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("utf-8");throw new Error("[utils.base64Decode]: Unsupported environment")})(e.config));else{const{config:n}=yield v({widgetKey:e.widgetKey,apiHost:t});r=n}let o=wt.get(e.widgetKey);if(o||(o=Ct(e,r,t,n),wt.set(e.widgetKey,o)),yield o,!qe.isWidgetDOMExisting(e.widgetKey,r)){wt.delete(e.widgetKey);const i=Ct(e,r,t,n);wt.set(e.widgetKey,i),yield i}yield lt(r),yt.Widgets.isReady=!0,window.dispatchEvent(new Event("onBrainfishReady"))}),yt.Widgets.registerClientActionHandler=(e,t)=>{((e,t)=>{Qe.set(e,t)})(e,t)};exports.BrainfishAnalytics=(...e)=>{"undefined"!=typeof window&&window.BrainfishAnalytics&&window.BrainfishAnalytics(...e)},exports.default=yt;
1
+ "use strict";var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,a=(t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,s=(e,t)=>{for(var n in t||(t={}))i.call(t,n)&&a(e,n,t[n]);if(r)for(var n of r(t))o.call(t,n)&&a(e,n,t[n]);return e},l=(e,r)=>t(e,n(r)),d=(e,t,n)=>a(e,"symbol"!=typeof t?t+"":t,n),c=(e,t,n)=>new Promise((r,i)=>{var o=e=>{try{s(n.next(e))}catch(t){i(t)}},a=e=>{try{s(n.throw(e))}catch(t){i(t)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(o,a);s((n=n.apply(e,t)).next())});!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8b628a01-2efd-4182-ad15-87074e16caf0",e._sentryDebugIdIdentifier="sentry-dbid-8b628a01-2efd-4182-ad15-87074e16caf0")}catch(n){}}(),Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),new TextEncoder;const u=new TextDecoder;const f=e=>{let t=e;t instanceof Uint8Array&&(t=u.decode(t)),t=t.replace(/-/g,"+").replace(/_/g,"/").replace(/\s/g,"");try{return(e=>{const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n})(t)}catch(n){throw new TypeError("The input to be decoded is not correctly encoded.")}};function p(e){let t;if("string"==typeof e){const n=e.split(".");3!==n.length&&5!==n.length||([t]=n)}else if("object"==typeof e&&e){if(!("protected"in e))throw new TypeError("Token does not contain a Protected Header");t=e.protected}try{if("string"!=typeof t||!t)throw new Error;const e=JSON.parse(u.decode(f(t)));if(!function(e){if("object"!=typeof(t=e)||null===t||"[object Object]"!==Object.prototype.toString.call(e))return!1;var t;if(null===Object.getPrototypeOf(e))return!0;let n=e;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}(e))throw new Error;return e}catch(n){throw new TypeError("Invalid Token or Protected Header formatting")}}var g,h,b,m;("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"web-widget@1.21.1"},(h=g||(g={})).Sidebar="sidebar",h.Searchbar="searchbar",h.Popup="popup",g.Sidebar,g.Searchbar,g.Popup;class y extends Error{constructor(e,t){super(e,t),d(this,"cause"),this.name="BrainfishWidgetError",this.cause=null==t?void 0:t.cause,Error.captureStackTrace&&Error.captureStackTrace(this,y),this.cause instanceof Error&&this.cause.stack&&(this.stack=this.stack+"\nCaused by: "+this.cause.stack)}toJSON(){return{name:this.name,message:this.message,stack:this.stack,cause:this.cause instanceof Error?{name:this.cause.name,message:this.cause.message,stack:this.cause.stack}:this.cause}}}(m=b||(b={})).LINK="link",m.CALLBACK="callback",m.EMAIL="email",m.PHONE="phone";const w=(e,t,n,r)=>{let i=n,o={};if(t instanceof Error)try{o=JSON.parse(t.message),i+=` - ${o.message||t.message}`}catch(a){i+=` - ${t.message}`}else i+=` - ${String(t)}`;((e,t,n)=>{if(!navigator||navigator.userAgent.toLowerCase().includes("headless"))return;const r=t.toJSON();fetch(`${e||"https://app.brainfi.sh"}/api/trackError.widget.create`,{method:"POST",headers:{"Content-Type":"application/json","api-key":n},body:JSON.stringify({error:`WebWidgetVersion: 1.21.1. ${t.message}`,stack:t.stack,cause:{message:r.message,stack:r.stack,cause:r.cause}})})})(e,new y(i,{cause:o}),r)};const v=e=>c(null,[e],function*({widgetKey:e,apiHost:t}){return function(e,t,n){return c(this,null,function*(){let r,i=0;for(;i<3;)try{const r=yield fetch(`${e}${t}`,{method:"POST",headers:{"Content-Type":"application/json","api-key":n}});if(!r.ok)throw new Error(`API call failed with status: ${r.status}`);const i=yield r.json();if(!i)throw new Error("Error loading config: empty response");return i}catch(o){if(r=o,i++,i>=3)throw w(e,o,"Error fetching config",n),r;yield new Promise(e=>setTimeout(e,500))}})}(t,"/api/searchWidgets.getConfigByKey",e)}),x=({config:e,apiKey:t,apiHost:n})=>{const r=e.settings||{};return["bodyActionButtons","footerActionButtons","nextBestActions"].forEach(e=>{r[e]&&(r[e]=r[e].map(e=>e.type===b.CALLBACK&&e.value?l(s({},e),{value:new Function(`return ${e.value}`)()}):e))}),l(s({},e),{settings:r,apiHost:n,widgetMode:e.widgetType,apiKey:t})},C=e=>(null==e?void 0:e.apiHost)||"https://app.brainfi.sh",S=e=>c(null,[e],function*({apiHost:e,widgetKey:t,version:n}){try{const e=`https://cdn.jsdelivr.net/npm/@brainfish-ai/search-widget@${n}/dist/web.js`,t=yield(e=>c(null,null,function*(){return document.getElementById("brainfish-widget")?window.Brainfish:new Promise((t,n)=>{const r=document.createElement("script");r.id="brainfish-widget",r.src=e,r.type="module",r.async=!0,r.crossOrigin="anonymous",r.onload=()=>{setTimeout(()=>{const e=window.Brainfish;e?t(e):n(new Error("Failed to load Brainfish module"))},200)},r.onerror=t=>{const r=t,i={message:`Failed to load script: ${e}`,type:r.type,fileName:r.filename,lineNumber:r.lineno,columnNumber:r.colno,error:r.error?r.error.toString():"Unknown error"};n(new Error(JSON.stringify(i)))},document.head.appendChild(r)})}))(e);return{widget:t}}catch(r){w(e,r,r.message,t)}});const E=new Set,k=(e,t)=>c(null,null,function*(){const n=C(e.overrides);try{if(E.has(e.widgetKey))return;const r=yield S({apiHost:n,widgetKey:e.widgetKey,version:t.version||"latest"});if(r){const{widget:i}=r,o=x({config:t,apiKey:e.widgetKey,apiHost:n});return e.overrides&&t.settings&&Object.entries(e.overrides).forEach(([e,n])=>{t.settings&&e in t.settings&&(t.settings[e]=((e=[],t)=>{const n=new Map(e.map(e=>[e.label,e]));return t.forEach(e=>n.set(e.label,e)),Array.from(n.values())})(t.settings[e],n))}),function(e,t){t.widgetType===g.Searchbar||"Search"===t.widgetType?e.SearchWidget.initStandard(t):e.HelpWidget.initPopup(t)}(i,o),E.add(e.widgetKey),i}}catch(r){w(n,r,r.message,e.widgetKey)}});let T=!1;const I=(e,t,n,...r)=>c(null,[e,t,n,...r],function*(e,t,n,r="",i=!1,o){if(t||void 0!==console.warn&&console.warn("[Brainfish] BrainfishAnalytics not initialized. Access key is required."),!T)try{const a=(()=>{if("undefined"==typeof window||"undefined"==typeof navigator)return!1;const e=navigator,t=window,n=(e.doNotTrack||t.doNotTrack||e.msDoNotTrack||"0").toString().toLowerCase();return["1","yes","true"].includes(n)})(),s="undefined"!=typeof localStorage&&"true"===localStorage.getItem("bf_tracking_disabled"),l=a||s;window.BrainfishAnalytics("init",{apiUrl:r,accessKey:t,trackScreenViews:!0,trackAttributes:!l,trackOutgoingLinks:!l,enableRecording:!l&&i,recordingOptions:o}),T=!0,yield((e,t)=>c(null,null,function*(){if(document.getElementById("brainfish-analytics"))return window.BrainfishAnalytics;const n=document.createElement("script");n.id="brainfish-analytics",n.src="https://cdn.jsdelivr.net/npm/@brainfish-ai/web-tracker@latest/dist/tracker.js",n.type="module",n.async=!0,n.crossOrigin="anonymous",n.onerror=()=>{w(e,new Error(`Failed to load script: ${n.src}`),`Failed to load script: ${n.src}`,t)},document.head.appendChild(n)}))(n,e)}catch(a){w(n,a,"Failed to initialize BrainfishAnalytics",e)}});function O(e){const t=(new TextEncoder).encode(e);if("undefined"!=typeof window&&"function"==typeof window.btoa){const e=Array.from(t,e=>String.fromCharCode(e)).join("");return btoa(e)}if("undefined"!=typeof Buffer)return Buffer.from(t).toString("base64");throw new Error("[utils.base64Encode]: Unsupported environment")}function _(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var W,A={exports:{}},B={exports:{}},P={exports:{}};function M(){return W||(W=1,function(e,t){function n(e){return Math.round(255*e)}function r(e,t,r){return n(e)+","+n(t)+","+n(r)}t.__esModule=!0,t.default=void 0,t.default=function(e,t,n,i){if(void 0===i&&(i=r),0===t)return i(n,n,n);var o=(e%360+360)%360/60,a=(1-Math.abs(2*n-1))*t,s=a*(1-Math.abs(o%2-1)),l=0,d=0,c=0;o>=0&&o<1?(l=a,d=s):o>=1&&o<2?(l=s,d=a):o>=2&&o<3?(d=a,c=s):o>=3&&o<4?(d=s,c=a):o>=4&&o<5?(l=s,c=a):o>=5&&o<6&&(l=a,c=s);var u=n-a/2;return i(l+u,d+u,c+u)},e.exports=t.default}(P,P.exports)),P.exports}var L,j={exports:{}};function H(){return L||(L=1,function(e,t){t.__esModule=!0,t.default=void 0;var n={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};t.default=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return n[t]?"#"+n[t]:e},e.exports=t.default}(j,j.exports)),j.exports}var F,N,K,$={exports:{}};function R(){return F||(F=1,function(e,t){function n(e){var t="function"==typeof Map?new Map:void 0;return n=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return function(e,t,n){if(r())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,t);var a=new(e.bind.apply(e,o));return n&&i(a,n.prototype),a}(e,arguments,o(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),i(n,e)},n(e)}function r(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(r=function(){return!!e})()}function i(e,t){return(i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}t.__esModule=!0,t.default=void 0;var a={1:"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\n\n",2:"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\n\n",3:"Passed an incorrect argument to a color function, please pass a string representation of a color.\n\n",4:"Couldn't generate valid rgb string from %s, it returned %s.\n\n",5:"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\n\n",6:"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\n\n",7:"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\n\n",8:"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\n\n",9:"Please provide a number of steps to the modularScale helper.\n\n",10:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",11:'Invalid value passed as base to modularScale, expected number or em string but got "%s"\n\n',12:'Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead.\n\n',13:'Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead.\n\n',14:'Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',15:'Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',16:"You must provide a template to this method.\n\n",17:"You passed an unsupported selector state to this method.\n\n",18:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",19:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",20:"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",21:"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n",22:"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n",23:"fontFace expects a name of a font-family.\n\n",24:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",25:"fontFace expects localFonts to be an array.\n\n",26:"fontFace expects fileFormats to be an array.\n\n",27:"radialGradient requries at least 2 color-stops to properly render.\n\n",28:"Please supply a filename to retinaImage() as the first argument.\n\n",29:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",30:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",31:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\n\n",32:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\n\n",33:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\n\n",34:"borderRadius expects a radius value as a string or number as the second argument.\n\n",35:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',36:"Property must be a string value.\n\n",37:"Syntax Error at %s.\n\n",38:"Formula contains a function that needs parentheses at %s.\n\n",39:"Formula is missing closing parenthesis at %s.\n\n",40:"Formula has too many closing parentheses at %s.\n\n",41:"All values in a formula must have the same unit or be unitless.\n\n",42:"Please provide a number of steps to the modularScale helper.\n\n",43:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",44:"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\n\n",45:"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\n\n",46:"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\n\n",47:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",48:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",49:"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",50:"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\n\n",51:"Expects the first argument object to have the properties prop, fromSize, and toSize.\n\n",52:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",53:"fontFace expects localFonts to be an array.\n\n",54:"fontFace expects fileFormats to be an array.\n\n",55:"fontFace expects a name of a font-family.\n\n",56:"linearGradient requries at least 2 color-stops to properly render.\n\n",57:"radialGradient requries at least 2 color-stops to properly render.\n\n",58:"Please supply a filename to retinaImage() as the first argument.\n\n",59:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",60:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",61:"Property must be a string value.\n\n",62:"borderRadius expects a radius value as a string or number as the second argument.\n\n",63:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',64:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\n\n",65:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\n\n",66:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\n\n",67:"You must provide a template to this method.\n\n",68:"You passed an unsupported selector state to this method.\n\n",69:'Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead.\n\n',70:'Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead.\n\n',71:'Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12.\n\n',72:'Passed invalid base value %s to %s(), please pass a value like "12px" or 12.\n\n',73:"Please provide a valid CSS variable.\n\n",74:"CSS variable not found and no default was provided.\n\n",75:"important requires a valid style object, got a %s instead.\n\n",76:"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\n\n",77:'remToPx expects a value in "rem" but you provided it in "%s".\n\n',78:'base must be set in "px" or "%" but you set it in "%s".\n'};function s(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,i=t[0],o=[];for(r=1;r<t.length;r+=1)o.push(t[r]);return o.forEach(function(e){i=i.replace(/%[a-z]/,e)}),i}t.default=function(e){var t,n;function r(t){var n;if("production"===process.env.NODE_ENV)n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+t+" for more information.")||this;else{for(var r=arguments.length,i=new Array(r>1?r-1:0),o=1;o<r;o++)i[o-1]=arguments[o];n=e.call(this,s.apply(void 0,[a[t]].concat(i)))||this}return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(n)}return n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,i(t,n),r}(n(Error)),e.exports=t.default}($,$.exports)),$.exports}function z(){return N||(N=1,function(e,t){t.__esModule=!0,t.default=function(e){if("string"!=typeof e)throw new i.default(3);var t=(0,r.default)(e);if(t.match(a))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(s)){var o=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:o}}if(t.match(l))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(d)){var g=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:g}}var h=c.exec(t);if(h)return{red:parseInt(""+h[1],10),green:parseInt(""+h[2],10),blue:parseInt(""+h[3],10)};var b=u.exec(t.substring(0,50));if(b)return{red:parseInt(""+b[1],10),green:parseInt(""+b[2],10),blue:parseInt(""+b[3],10),alpha:parseFloat(""+b[4])>1?parseFloat(""+b[4])/100:parseFloat(""+b[4])};var m=f.exec(t);if(m){var y=parseInt(""+m[1],10),w=parseInt(""+m[2],10)/100,v=parseInt(""+m[3],10)/100,x="rgb("+(0,n.default)(y,w,v)+")",C=c.exec(x);if(!C)throw new i.default(4,t,x);return{red:parseInt(""+C[1],10),green:parseInt(""+C[2],10),blue:parseInt(""+C[3],10)}}var S=p.exec(t.substring(0,50));if(S){var E=parseInt(""+S[1],10),k=parseInt(""+S[2],10)/100,T=parseInt(""+S[3],10)/100,I="rgb("+(0,n.default)(E,k,T)+")",O=c.exec(I);if(!O)throw new i.default(4,t,I);return{red:parseInt(""+O[1],10),green:parseInt(""+O[2],10),blue:parseInt(""+O[3],10),alpha:parseFloat(""+S[4])>1?parseFloat(""+S[4])/100:parseFloat(""+S[4])}}throw new i.default(5)};var n=o(M()),r=o(H()),i=o(R());function o(e){return e&&e.__esModule?e:{default:e}}var a=/^#[a-fA-F0-9]{6}$/,s=/^#[a-fA-F0-9]{8}$/,l=/^#[a-fA-F0-9]{3}$/,d=/^#[a-fA-F0-9]{4}$/,c=/^rgb\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*\)$/i,u=/^rgb(?:a)?\(\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,)?\s*(\d{1,3})\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i,f=/^hsl\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,p=/^hsl(?:a)?\(\s*(\d{0,3}[.]?[0-9]+(?:deg)?)\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,)?\s*(\d{1,3}[.]?[0-9]?)%\s*(?:,|\/)\s*([-+]?\d*[.]?\d+[%]?)\s*\)$/i;e.exports=t.default}(B,B.exports)),B.exports}function q(){return K||(K=1,function(e,t){t.__esModule=!0,t.default=function(e){if("transparent"===e)return 0;var t=(0,r.default)(e),n=Object.keys(t).map(function(e){var n=t[e]/255;return n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)}),i=n[0],o=n[1],a=n[2];return parseFloat((.2126*i+.7152*o+.0722*a).toFixed(3))};var n,r=(n=z())&&n.__esModule?n:{default:n};e.exports=t.default}(A,A.exports)),A.exports}const D=_(q());var U,J={exports:{}},V={exports:{}};function Y(){return U||(U=1,function(e,t){function n(e,t,r){return function(){var i=r.concat(Array.prototype.slice.call(arguments));return i.length>=t?e.apply(this,i):n(e,t,i)}}t.__esModule=!0,t.default=function(e){return n(e,e.length,[])},e.exports=t.default}(V,V.exports)),V.exports}var G,Z={exports:{}};function Q(){return G||(G=1,e=Z,(t=Z.exports).__esModule=!0,t.default=void 0,t.default=function(e,t,n){return Math.max(e,Math.min(t,n))},e.exports=t.default),Z.exports;var e,t}var X,ee,te={exports:{}},ne={exports:{}};function re(){return X||(X=1,e=ne,(t=ne.exports).__esModule=!0,t.default=void 0,t.default=function(e){var t,n=e.red/255,r=e.green/255,i=e.blue/255,o=Math.max(n,r,i),a=Math.min(n,r,i),s=(o+a)/2;if(o===a)return void 0!==e.alpha?{hue:0,saturation:0,lightness:s,alpha:e.alpha}:{hue:0,saturation:0,lightness:s};var l=o-a,d=s>.5?l/(2-o-a):l/(o+a);switch(o){case n:t=(r-i)/l+(r<i?6:0);break;case r:t=(i-n)/l+2;break;default:t=(n-r)/l+4}return t*=60,void 0!==e.alpha?{hue:t,saturation:d,lightness:s,alpha:e.alpha}:{hue:t,saturation:d,lightness:s}},e.exports=t.default),ne.exports;var e,t}function ie(){return ee||(ee=1,function(e,t){t.__esModule=!0,t.default=function(e){return(0,r.default)((0,n.default)(e))};var n=i(z()),r=i(re());function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(te,te.exports)),te.exports}var oe,ae={exports:{}},se={exports:{}},le={exports:{}},de={exports:{}};function ce(){return oe||(oe=1,function(e,t){t.__esModule=!0,t.default=void 0;t.default=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e},e.exports=t.default}(de,de.exports)),de.exports}var ue,fe,pe,ge={exports:{}};function he(){return ue||(ue=1,e=ge,(t=ge.exports).__esModule=!0,t.default=void 0,t.default=function(e){var t=e.toString(16);return 1===t.length?"0"+t:t},e.exports=t.default),ge.exports;var e,t}function be(){return fe||(fe=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=o(M()),r=o(ce()),i=o(he());function o(e){return e&&e.__esModule?e:{default:e}}function a(e){return(0,i.default)(Math.round(255*e))}function s(e,t,n){return(0,r.default)("#"+a(e)+a(t)+a(n))}t.default=function(e,t,r){return(0,n.default)(e,t,r,s)},e.exports=t.default}(le,le.exports)),le.exports}function me(){return pe||(pe=1,function(e,t){t.__esModule=!0,t.default=function(e,t,i){if("number"==typeof e&&"number"==typeof t&&"number"==typeof i)return(0,n.default)(e,t,i);if("object"==typeof e&&void 0===t&&void 0===i)return(0,n.default)(e.hue,e.saturation,e.lightness);throw new r.default(1)};var n=i(be()),r=i(R());function i(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(se,se.exports)),se.exports}var ye,we={exports:{}};function ve(){return ye||(ye=1,function(e,t){t.__esModule=!0,t.default=function(e,t,o,a){if("number"==typeof e&&"number"==typeof t&&"number"==typeof o&&"number"==typeof a)return a>=1?(0,n.default)(e,t,o):"rgba("+(0,r.default)(e,t,o)+","+a+")";if("object"==typeof e&&void 0===t&&void 0===o&&void 0===a)return e.alpha>=1?(0,n.default)(e.hue,e.saturation,e.lightness):"rgba("+(0,r.default)(e.hue,e.saturation,e.lightness)+","+e.alpha+")";throw new i.default(2)};var n=o(be()),r=o(M()),i=o(R());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(we,we.exports)),we.exports}var xe,Ce={exports:{}};function Se(){return xe||(xe=1,function(e,t){t.__esModule=!0,t.default=function(e,t,o){if("number"==typeof e&&"number"==typeof t&&"number"==typeof o)return(0,n.default)("#"+(0,r.default)(e)+(0,r.default)(t)+(0,r.default)(o));if("object"==typeof e&&void 0===t&&void 0===o)return(0,n.default)("#"+(0,r.default)(e.red)+(0,r.default)(e.green)+(0,r.default)(e.blue));throw new i.default(6)};var n=o(ce()),r=o(he()),i=o(R());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(Ce,Ce.exports)),Ce.exports}var Ee,ke,Te,Ie={exports:{}};function Oe(){return Ee||(Ee=1,function(e,t){t.__esModule=!0,t.default=function(e,t,o,a){if("string"==typeof e&&"number"==typeof t){var s=(0,n.default)(e);return"rgba("+s.red+","+s.green+","+s.blue+","+t+")"}if("number"==typeof e&&"number"==typeof t&&"number"==typeof o&&"number"==typeof a)return a>=1?(0,r.default)(e,t,o):"rgba("+e+","+t+","+o+","+a+")";if("object"==typeof e&&void 0===t&&void 0===o&&void 0===a)return e.alpha>=1?(0,r.default)(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new i.default(7)};var n=o(z()),r=o(Se()),i=o(R());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(Ie,Ie.exports)),Ie.exports}function _e(){return ke||(ke=1,function(e,t){t.__esModule=!0,t.default=function(e){if("object"!=typeof e)throw new a.default(8);if(d(e))return(0,o.default)(e);if(l(e))return(0,i.default)(e);if(u(e))return(0,r.default)(e);if(c(e))return(0,n.default)(e);throw new a.default(8)};var n=s(me()),r=s(ve()),i=s(Se()),o=s(Oe()),a=s(R());function s(e){return e&&e.__esModule?e:{default:e}}var l=function(e){return"number"==typeof e.red&&"number"==typeof e.green&&"number"==typeof e.blue&&("number"!=typeof e.alpha||void 0===e.alpha)},d=function(e){return"number"==typeof e.red&&"number"==typeof e.green&&"number"==typeof e.blue&&"number"==typeof e.alpha},c=function(e){return"number"==typeof e.hue&&"number"==typeof e.saturation&&"number"==typeof e.lightness&&("number"!=typeof e.alpha||void 0===e.alpha)},u=function(e){return"number"==typeof e.hue&&"number"==typeof e.saturation&&"number"==typeof e.lightness&&"number"==typeof e.alpha};e.exports=t.default}(ae,ae.exports)),ae.exports}function We(){return Te||(Te=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=a(Y()),r=a(Q()),i=a(ie()),o=a(_e());function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}var l=(0,n.default)(function(e,t){if("transparent"===t)return t;var n=(0,i.default)(t);return(0,o.default)(s({},n,{lightness:(0,r.default)(0,1,n.lightness-parseFloat(e))}))});t.default=l,e.exports=t.default}(J,J.exports)),J.exports}const Ae=_(We());var Be,Pe={exports:{}};function Me(){return Be||(Be=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=a(Y()),r=a(Q()),i=a(ie()),o=a(_e());function a(e){return e&&e.__esModule?e:{default:e}}function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s.apply(this,arguments)}var l=(0,n.default)(function(e,t){if("transparent"===t)return t;var n=(0,i.default)(t);return(0,o.default)(s({},n,{lightness:(0,r.default)(0,1,n.lightness+parseFloat(e))}))});t.default=l,e.exports=t.default}(Pe,Pe.exports)),Pe.exports}const Le=_(Me()),je="bf-iframe-container",He="bf-trigger-button",Fe="bf-search-bar-iframe-container",Ne="bf-search-bar-iframe-backdrop";function Ke(e){var t,n;if(!document.querySelector("style[data-widget-styles]")){!function(e="#000",t="FFF"){const n=document.createElement("style");n.attributes.setNamedItem(document.createAttribute("data-widget-styles"));const r=D(e)>.5;n.textContent=`\n .bf-trigger-button{position:fixed;bottom:16px;right:16px;width:36px;height:36px;border-radius:50%;border:none;box-shadow:0 1px 6px #0000000f,0 2px 32px #00000029;transition:transform 167ms cubic-bezier(.33,0,0,1);box-sizing:content-box;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1000;padding:12px;gap:10px;overflow:hidden}.bf-trigger-button.hidden{display:none}.trigger-button-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;position:relative}.trigger-button-icon svg{width:100%;height:100%;position:absolute;inset:0}.trigger-button-icon>svg>path{transition:transform .3s ease,opacity .3s ease;transform:scale(.5);transform-origin:center;opacity:0}.trigger-button-icon .fish-icon{display:none}.trigger-button-icon .fish-icon.visible{display:block;max-width:36px;max-height:36px}.trigger-button-icon svg.visible{display:block}.trigger-button-icon>svg.visible>path{opacity:1;transform:scale(1)}.trigger-iframe{position:relative;width:100%;height:100%;border:none;outline:none;transform:translateZ(0);overflow:hidden}.bf-iframe-container{visibility:hidden;position:fixed;z-index:2147483000000;background-color:#fff;bottom:0;right:0;width:100vw;height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:none;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .3s ease,transform .3s ease,width .2s ease-in-out,height .2s ease-in-out,visibility 0s .3s}.bf-iframe-container.open{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto;top:env(safe-area-inset-top);left:0;transition-delay:0s}@media (min-width: 576px){.bf-iframe-container{bottom:80px;right:24px;width:448px;height:min(750px,calc(100vh - 80px));border-radius:8px;border:1px solid var(--Dark-300, #d4d4d4);box-shadow:0 20px 25px -5px #1212171a,0 10px 10px -5px #1212170a}.bf-iframe-container.open{top:unset;left:unset}.bf-iframe-container.position-bottom-left{right:auto;left:24px}.bf-iframe-container.position-top-left{inset:80px auto auto 24px}.bf-iframe-container.position-top-right{bottom:auto;top:80px;right:24px}.bf-iframe-container.expanded{width:min(calc(448px * 1.35),calc(100vw - 16px));height:min(calc(750px * 1.35),calc(100vh - 80px))}}.bf-search-bar-iframe-container{position:relative;width:100%;min-height:200px;background-color:#fff;border:1px solid var(--dark-300, #d4d4d4);border-radius:8px;overflow:hidden;pointer-events:auto;transition:height .2s ease-in-out}.iframe-loading-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:10}.spinner{width:24px;height:24px;border:2px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-error{width:24px;height:24px;position:relative;display:flex;align-items:center;justify-content:center}.loading-error:before,.loading-error:after{content:"";position:absolute;width:16px;height:2px;background-color:#e74c3c;border-radius:2px}.loading-error:before{transform:rotate(45deg)}.loading-error:after{transform:rotate(-45deg)}\n .${He} { background: ${e}; }\n .${He}:hover {\n background: ${r?Ae(.05,e):Le(.05,e)};\n }\n .trigger-button-icon { color: ${t}; }\n `,document.head.appendChild(n)}((null==(t=null==e?void 0:e.theme)?void 0:t.inputButtonBgColor)||"#007bff",(null==(n=null==e?void 0:e.theme)?void 0:n.textBaseColor)||"#ffffff")}}class $e{constructor(e,t){d(this,"isOpen",!1),this.widgetKey=e,this.widgetType=t}get isWidgetOpen(){return this.isOpen}openWidget(){this.isOpen=!0}closeWidget(){this.isOpen=!1}toggleWidget(){return this.isOpen=!this.isOpen,this.isOpen}}function Re(e,t,n={}){const r=document.createElement(e);return r.className=t,Object.entries(n).forEach(([e,t])=>{r.setAttribute(e,t)}),r}const ze="brainfish-search-widget";class qe{constructor(e){d(this,"button",null),d(this,"icon",null),d(this,"closeCallback",null),this.widgetType=e}setCloseCallback(e){this.closeCallback=e}get containerClass(){return this.widgetType===g.Searchbar?Fe:je}get container(){return document.querySelector(`.${this.containerClass}`)}get iframe(){var e;return null==(e=this.container)?void 0:e.querySelector("iframe")}get backdrop(){return document.querySelector(`.${Ne}`)}setElements(e,t){this.button=e||null,this.icon=t||null}openWidget(e={}){var t,n,r;const i=document.querySelector(`.${this.containerClass}`),o=null==i?void 0:i.querySelector("iframe");if(e.newConversation&&e.contextualQuestion?null==(t=null==o?void 0:o.contentWindow)||t.postMessage({type:"CONTEXTUAL_QUESTION",question:e.contextualQuestion},"*"):e.newConversation&&(null==(n=null==o?void 0:o.contentWindow)||n.postMessage({type:"NEW_CONVERSATION"},"*")),null==(r=null==o?void 0:o.contentWindow)||r.postMessage({type:"FOCUS_SEARCH_FIELD"},"*"),this.widgetType!==g.Searchbar&&(null==i||i.classList.add("open"),e.position&&(null==i||i.classList.add(`position-${e.position}`),null==i||i.setAttribute("data-current-position",e.position))),null==i||i.setAttribute("aria-hidden","false"),this.widgetType!==g.Searchbar&&document.body.clientWidth>=962&&null===this.backdrop){const e=Re("div",Ne);this.closeCallback&&e.addEventListener("click",this.closeCallback),document.body.appendChild(e)}this.updateButtonForOpen()}focusNextElement(){const e=document.querySelector(ze);if(e){const t=Array.from(document.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')).filter(e=>!e.hasAttribute("disabled")),n=t.indexOf(e);if(-1!==n){const e=t[n+1];e&&e.focus()}}}closeWidget(){const e=this.container;if(!e)return;const t=e.dataset.currentPosition;if(t){const n=()=>{e.dataset.currentPosition===t&&(e.classList.remove(`position-${t}`),delete e.dataset.currentPosition)};e.addEventListener("transitionend",n,{once:!0})}e.classList.remove("open"),e.setAttribute("aria-hidden","true"),this.backdrop&&(this.backdrop.remove(),this.focusNextElement()),this.updateButtonForClose()}updateButtonForOpen(){if(!this.button||!this.icon)return;const e=this.icon.querySelector(".fish-icon"),t=this.icon.querySelector(".close-icon");this.button.setAttribute("aria-expanded","true"),null==e||e.classList.remove("visible"),null==t||t.classList.add("visible"),this.isMobile()&&this.hideTriggerButton()}updateButtonForClose(){if(!this.button||!this.icon)return;const e=this.icon.querySelector(".fish-icon"),t=this.icon.querySelector(".close-icon");this.button.setAttribute("aria-expanded","false"),null==e||e.classList.add("visible"),null==t||t.classList.remove("visible"),this.isMobile()&&this.showTriggerButton()}showTriggerButton(){var e;null==(e=this.button)||e.classList.remove("hidden")}hideTriggerButton(){var e;null==(e=this.button)||e.classList.add("hidden")}resizeContainer(e){if(this.widgetType!==g.Searchbar)return;if(!this.container||!this.iframe)return;const t=Math.max(e,200);this.container.style.height=`${t}px`,this.iframe.style.height=`${t}px`}isMobile(){return document.body.clientWidth<=576}setupButtonClickListener(e){this.button&&this.button.addEventListener("click",e)}static isWidgetDOMExisting(e,t){const n=document.querySelector(`.${Fe}[data-widget-key="${e}"]`);if(n){const e=document.querySelector("brainfish-search-widget");return!e||e.contains(n)}if(document.getElementById(`trigger-button-${e}`))return!0;if("Search"!==t.widgetType){if(document.querySelector(`.${je}`))return!0}return!1}}class De{static register(e,t){this.instances.set(e,t)}static getInstance(e){return this.instances.get(e)}static unregister(e){this.instances.delete(e)}static getAllInstances(){return Array.from(this.instances.values())}static getOpenInstance(){return this.getAllInstances().find(e=>e.isWidgetOpen)}static getClosedPopupInstance(){return this.getAllInstances().find(e=>!e.isWidgetOpen&&e.widgetType===g.Popup)}static clear(){this.instances.clear()}}d(De,"instances",new Map);const Ue=({formUrl:e,width:t="500px",height:n="600px"})=>{const r=document.createElement("div");r.setAttribute("role","dialog"),r.setAttribute("aria-modal","true"),r.setAttribute("tabindex","-1"),r.style.cssText="\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: white;\n padding: 20px;\n border-radius: 8px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n z-index: 300000000;\n ";const i=document.createElement("button");i.innerHTML="×",i.style.cssText="\n position: absolute;\n right: -16px;\n top: -16px;\n width: 32px;\n height: 32px;\n border: 2px solid #666;\n border-radius: 50%;\n background: #FFF;\n font-size: 20px;\n cursor: pointer;\n ";const o=document.createElement("iframe");o.src=e,o.style.cssText=`width: ${t}; height: ${n}; border: none;`;const a=document.activeElement,s=e=>{if("Tab"===e.key){const t=[i,o],n=document.activeElement,r=n?t.indexOf(n):-1;e.preventDefault(),e.shiftKey?r<=0?t[t.length-1].focus():t[r-1].focus():r>=t.length-1?t[0].focus():t[r+1].focus()}else"Escape"===e.key&&l()},l=()=>{r.remove(),d.remove(),document.removeEventListener("keydown",s),null==a||a.focus()},d=document.createElement("div");d.style.cssText="\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.5);\n z-index: 299999999;\n ",i.onclick=l,d.onclick=l,document.addEventListener("keydown",s),r.appendChild(i),r.appendChild(o),document.body.appendChild(d),document.body.appendChild(r),r.focus(),o.onload=()=>{o.setAttribute("tabindex","0"),i.focus()}},Je=e=>`brainfish_conversation_${e}`,Ve={save(e,t){try{t?localStorage.setItem(Je(e),t):localStorage.removeItem(Je(e))}catch(n){}},load(e){try{return localStorage.getItem(Je(e))}catch(t){return null}},clear(e){try{localStorage.removeItem(Je(e))}catch(t){}}};class Ye{static getIframeForInstance(e){var t,n;const r=e.widgetType===g.Searchbar?Fe:je,i=e.widgetType===g.Searchbar?`.${r}[data-widget-key="${e.widgetKey}"]`:`.${r}`;return null!=(n=null==(t=document.querySelector(i))?void 0:t.querySelector("iframe"))?n:null}static postMessageToInstance(e,t){var n,r;null==(r=null==(n=this.getIframeForInstance(e))?void 0:n.contentWindow)||r.postMessage(t,"*")}static initialize(){this.isInitialized||(this.setupDeprecatedAPI(),this.setupNewAPI(),this.isInitialized=!0)}static setupDeprecatedAPI(){var e;(null==(e=window.Brainfish)?void 0:e.HelpWidget)&&(window.Brainfish.HelpWidget.close=e=>this.closeCurrentlyOpenWidget(),window.Brainfish.HelpWidget.open=e=>this.openCurrentlyClosedPopupWidget(e))}static setupNewAPI(){var e;(null==(e=window.Brainfish)?void 0:e.Widgets)&&(window.Brainfish.Widgets.open=e=>this.openCurrentlyClosedPopupWidget(e,!0),window.Brainfish.Widgets.close=()=>this.closeCurrentlyOpenWidget(),window.Brainfish.Widgets.createNewThread=()=>this.createNewThread(),window.Brainfish.Widgets.openModalForm=Ue,window.Brainfish.Widgets.onContextHelp=(e,t)=>this.openContextualHelp(e,t),window.Brainfish.Widgets.restoreConversation=e=>this.restoreConversation(e),window.Brainfish.Widgets.clearConversation=()=>this.clearConversation())}static closeCurrentlyOpenWidget(){const e=De.getOpenInstance();e&&e.closeWidget()}static openCurrentlyClosedPopupWidget(e,t){const n=De.getClosedPopupInstance();if(n){const r="string"==typeof e?{trigger:e}:e,i={};t&&(i.newConversation=!0),(null==r?void 0:r.trigger)&&(i.newConversation=!0,i.trigger=r.trigger),(null==r?void 0:r.position)&&(i.position=r.position),n.openWidget(i)}}static createNewThread(){const e=De.getOpenInstance();if(e)return void this.postMessageToInstance(e,{type:"NEW_CONVERSATION"});const t=De.getClosedPopupInstance();t&&t.openWidget({newConversation:!0})}static openContextualHelp(e,t={}){if(!e||"string"!=typeof e||0===e.trim().length)return void console.warn("Brainfish.Widgets.onContextHelp: Invalid question provided");let n=De.getOpenInstance();if(n||(n=De.getClosedPopupInstance()),!n)return void console.warn("Brainfish.Widgets.onContextHelp: No popup widget available");const r=l(s({},t),{newConversation:!0,trigger:"contextual-help",contextualQuestion:e.trim()});n.openWidget(r)}static restoreConversation(e){if(!e||"string"!=typeof e)return void console.warn("Brainfish.Widgets.restoreConversation: Invalid conversationId provided");let t=De.getOpenInstance();const n=!!t;t||(t=De.getClosedPopupInstance()),t?(n||t.openWidget({newConversation:!1}),this.postMessageToInstance(t,{type:"RESTORE_CONVERSATION",conversationId:e})):console.warn("Brainfish.Widgets.restoreConversation: No popup widget available")}static clearConversation(){var e;const t=null!=(e=De.getOpenInstance())?e:De.getClosedPopupInstance();t?(Ve.clear(t.widgetKey),this.postMessageToInstance(t,{type:"NEW_CONVERSATION"})):console.warn("Brainfish.Widgets.clearConversation: No popup widget available")}}d(Ye,"isInitialized",!1);class Ge{constructor(e,t){this.widgetType=e,this.widgetKey=t}trackOpenWidget(e,t){this.dispatchEvent("onBrainfishWidgetOpen"),"contextual-help"===e?this.trackAnalytics("Open Widget - Contextual Help",{trigger:e,question:t}):e?this.trackAnalytics("Open Widget - Custom Trigger",{trigger:e}):this.trackAnalytics("Open Widget")}trackCloseWidget(){this.dispatchEvent("onBrainfishWidgetClose"),this.trackAnalytics("Close Widget")}trackCustomEvent(e,t={}){this.trackAnalytics(e,t)}dispatchEvent(e){window.dispatchEvent(new Event(e))}trackAnalytics(e,t={}){if(window.BrainfishAnalytics){let n;switch(this.widgetType){case g.Searchbar:n="searchbar_widget";break;case g.Sidebar:default:n="search_widget"}window.BrainfishAnalytics("track",e,l(s({},t),{widgetKey:this.widgetKey}),{source:n,widgetKey:this.widgetKey})}}}class Ze{constructor(e,t){d(this,"state"),d(this,"domController"),d(this,"analyticsTracker"),this.state=new $e(e,t),this.domController=new qe(t),this.domController.setCloseCallback(()=>this.closeWidget()),this.analyticsTracker=new Ge(t,e)}static getInstance(e){return De.getInstance(e)}get widgetKey(){return this.state.widgetKey}get widgetType(){return this.state.widgetType}get isWidgetOpen(){return this.state.isWidgetOpen}get containerClass(){return this.domController.containerClass}initialize({button:e,icon:t,isButtonHidden:n}){this.domController.setElements(e,t),this.domController.setupButtonClickListener(()=>this.toggleIframeVisibility()),De.register(this.widgetKey,this),Ye.initialize()}toggleIframeVisibility(){this.state.toggleWidget()?this.openWidget():this.closeWidget()}openWidget(e={}){this.state.openWidget(),this.domController.openWidget(e),this.analyticsTracker.trackOpenWidget(e.trigger,e.contextualQuestion)}closeWidget(){this.state.closeWidget(),this.domController.closeWidget(),this.analyticsTracker.trackCloseWidget()}showTriggerButton(){this.domController.showTriggerButton()}hideTriggerButton(){this.domController.hideTriggerButton()}resizeContainer(e){this.domController.resizeContainer(e)}trackCustomEvent(e,t={}){this.analyticsTracker.trackCustomEvent(e,t)}destroy(){De.unregister(this.widgetKey)}static initialize(e){const t=new Ze(e.widgetKey,e.widgetType);return t.initialize(e),t}}function Qe({widgetUrl:e,widgetType:t,props:n}){const r=t===g.Searchbar?Fe:je,i=Re("div",r,s({id:r,"aria-live":"polite","aria-hidden":t===g.Searchbar?"false":"true"},n||{})),o=Re("div","iframe-loading-indicator"),a=Re("div","spinner");o.setAttribute("aria-label","Loading content"),o.setAttribute("role","status"),o.appendChild(a),i.appendChild(o);const l=Re("iframe","trigger-iframe",{src:e,sandbox:"allow-scripts allow-same-origin allow-popups allow-forms",allow:"clipboard-write",role:"dialog"});return l.style.opacity="0",l.addEventListener("load",()=>{o.style.display="none",l.style.opacity="1"}),l.addEventListener("error",e=>{console.error("Error loading iframe:",e),o.innerHTML="";const t=Re("div","loading-error");o.appendChild(t),o.setAttribute("aria-label","Failed to load content")}),i.appendChild(l),{iframeContainer:i,iframe:l}}function Xe(e,t){const n=()=>{(t=>{var n;null==(n=e.contentWindow)||n.postMessage({type:"UPDATE_BODY_CLASS",isDarkMode:t},"*")})(document.body.classList.contains("dark"))};n(),(()=>{const e=new MutationObserver(n);e.observe(document.body,{attributes:!0,attributeFilter:["class"]}),t.addEventListener("abort",()=>e.disconnect())})()}const et=new Map,tt=(e,t)=>`Error executing Client Action with key ${e}. Details: ${t instanceof Error?t.message:String(t)}`,nt=(e,t)=>c(null,null,function*(){if(et.has(e)){const i=et.get(e);if("function"!=typeof i)return{success:!1,reason:`Client Action registered with key ${e} is not a function`};try{const e=yield i(t);if(n=e,"[object Object]"!==Object.prototype.toString.call(n))throw new TypeError("Invalid result, expecting object type");return{success:!0,data:e}}catch(r){return{success:!1,reason:tt(e,r)}}}var n;return{success:!1,reason:`No Client Action registered with key ${e}`}});function rt(e,{widgetHost:t,apiHost:n,widgetKey:r,widgetType:i,signal:o,stateManager:a}){window.addEventListener("message",i=>c(null,null,function*(){var o;if(i.origin!==t)return;const{type:s,widgetKey:l}=i.data;if(!l||l===r){if("TOGGLE_WIDGET_SIZE"===s&&function(){const e=document.querySelector(`.${je}`);e.classList.contains("expanded")?e.classList.remove("expanded"):e.classList.add("expanded")}(),"RESIZE_IFRAME"===s){const{height:e}=i.data;a.resizeContainer(e)}if("TRACK_EVENT"===s){const{eventName:e,data:t}=i.data;a.trackCustomEvent(e,t)}if("CLOSE_WIDGET"===s&&a.closeWidget(),"NEXT_BEST_ACTION_CLICKED"===s){const{action:e,searchQueryId:t,query:o,answer:a,conversation:s}=i.data;if(!["function","callback"].includes(e.type))return void console.error("[Brainfish] Invalid action type:",e);const l={query:o,answer:a,searchIntentId:e.searchIntentId,actionId:e.id,conversationId:(null==s?void 0:s.conversationId)||"",searchQueryId:t,metadata:e.metadata||{},conversation:s||null};try{if(window.__bfCallbacks=window.__bfCallbacks||{},window.__bfCallbacks[e.id])return void window.__bfCallbacks[e.id](o,a,l);const t=new URL(`${n}/api/searchWidgets.callback.codeblocks`);t.searchParams.set("apiKey",r),t.searchParams.set("codeblockId",e.id),l.searchIntentId&&t.searchParams.set("searchIntentId",l.searchIntentId);const i=document.createElement("script");i.src=t.toString(),document.head.appendChild(i),i.onload=()=>{window.__bfCallbacks[e.id](o,a,l),setTimeout(()=>{document.head.removeChild(i)},300)},i.onerror=()=>{console.error("[Brainfish] Failed to load callback script from server")}}catch(d){console.error("[Brainfish] Error executing callback:",d)}}if("CLIENT_EXECUTION"===s){const{actionKey:t,inputs:n,messageId:r}=i.data,a=yield nt(t,n);null==(o=e.contentWindow)||o.postMessage({type:"CLIENT_EXECUTION_RESULT",messageId:r,result:a},"*")}if("CONVERSATION_CHANGED"===s){const{conversationId:e}=i.data;Ve.save(r,e)}}}),{signal:o})}function it(e,t,n){let r;const i=()=>{(t=>{var r;const i={type:"UPDATE_BODY_CLASS",isMobile:t};null==(r=e.contentWindow)||r.postMessage(i,"*"),t&&(n.isWidgetOpen?n.hideTriggerButton():n.showTriggerButton())})(document.body.clientWidth<=576)},o=()=>{r&&clearTimeout(r),r=window.setTimeout(i,300)};i(),(()=>{const e=new ResizeObserver(o);e.observe(document.body),t.addEventListener("abort",()=>e.disconnect())})()}const ot=new Set;function at(e,t,{isButtonHidden:n,triggerButtonIcon:r}){const i=document.createDocumentFragment();let o;if(n)o=Ze.initialize({isButtonHidden:n,widgetType:g.Popup,widgetKey:e});else{const{button:t,icon:n}=function(e,t){const n=Re("button",He,{id:`trigger-button-${e}`,"aria-controls":je,"aria-expanded":"false","data-name":He}),r=Re("div","trigger-button-icon",{"aria-hidden":"true"});return r.innerHTML=t?`\n <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256" class="close-icon">\n <path d="M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"></path>\n </svg>\n <img src="${t}" class="fish-icon visible" alt="Trigger button icon" aria-hidden="true" aria-label="help button icon" />\n `:'\n <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256" class="close-icon">\n <path d="M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"></path>\n </svg>\n <svg width="24" height="14" viewBox="0 0 24 14" fill="none" xmlns="http://www.w3.org/2000/svg" class="fish-icon visible">\n <path fill-rule="evenodd" clip-rule="evenodd" d="M1.71844 10.3882L4.60606 6.98384L1.71844 3.58375C1.4014 3.21362 1.44424 2.65841 1.81269 2.33993C1.97978 2.1979 2.65242 1.98701 3.04657 2.43461L5.78425 5.65824C6.14281 5.29523 6.51693 4.95924 6.90479 4.65114C8.88976 3.07437 11.2345 2.22803 13.6931 2.22803C16.9492 2.22803 20.0039 3.71718 22.2917 6.41142C22.5702 6.74282 22.5702 7.22916 22.2917 7.56056C20.0039 10.2591 16.9492 11.744 13.6931 11.744C11.2348 11.744 8.89035 10.8948 6.90554 9.31995C6.51741 9.01199 6.14304 8.67628 5.78425 8.31374L3.04657 11.5374C2.72953 11.9075 2.18114 11.9505 1.81269 11.632C1.44852 11.3179 1.40568 10.7584 1.71844 10.3882ZM5.93026 10.4683C8.17161 12.2599 10.8546 13.25 13.6931 13.25C17.4881 13.25 21.019 11.4034 23.4447 8.52942C24.1873 7.64571 24.1843 6.31801 23.4397 5.43663C20.8944 2.43919 17.4337 0.722025 13.6931 0.722025C10.8555 0.722025 8.17194 1.70845 5.92952 3.50276L4.17682 1.43933C3.57943 0.760929 2.79325 0.630009 2.25286 0.662947C1.98116 0.679506 1.73125 0.736852 1.51895 0.811846C1.26839 0.900352 1.03017 1.02718 0.827835 1.20058C-0.165283 2.05903 -0.283916 3.561 0.574656 4.56345L2.63075 6.98445L0.568104 9.41623C-0.272133 10.4106 -0.166523 11.9125 0.827835 12.7714C1.81372 13.6243 3.34308 13.5062 4.19036 12.5171L5.93026 10.4683Z" fill="currentColor"/>\n </svg>\n ',n.setAttribute("aria-label","Open Brainfish widget"),n.appendChild(r),{button:n,icon:r}}(e,r);i.appendChild(t),o=Ze.initialize({button:t,icon:n,widgetType:g.Popup,widgetKey:e})}const{iframeContainer:a,iframe:s}=Qe({widgetUrl:t,widgetType:g.Popup});return i.appendChild(a),{fragment:i,iframe:s,stateManager:o}}const st=({config:e,widgetUrl:t,apiHost:n,widgetHost:r,widgetKey:i,hideTriggerButton:o})=>{const{settings:a}=e,s=null!=o?o:null==a?void 0:a.hideTriggerButton,l=null==a?void 0:a.triggerButtonIcon;try{if(function(e){return ot.has(e)}(i))return;if(function(e){return!!document.getElementById(`trigger-button-${e}`)}(i))return;Ke(e);const{fragment:o,iframe:a,stateManager:d}=at(i,t,{isButtonHidden:s||!1,triggerButtonIcon:l||""}),c=new AbortController,{signal:u}=c;a.onload=()=>{setTimeout(()=>{var e;Xe(a,u),rt(a,{widgetHost:r,apiHost:n,widgetKey:i,widgetType:g.Popup,signal:u,stateManager:d}),it(a,u,d);const o=Ve.load(i),s=new URL(t).searchParams.has("conversation");o&&!s&&(null==(e=a.contentWindow)||e.postMessage({type:"RESTORE_CONVERSATION",conversationId:o},"*"))},0)},document.body?document.body.appendChild(o):(console.warn("[Brainfish] document.body not ready. Widget initialization deferred."),document.addEventListener("DOMContentLoaded",()=>{document.body.appendChild(o)},{once:!0})),ot.add(i);const f=()=>{c.abort(),window.removeEventListener("beforeunload",f)};return void window.addEventListener("beforeunload",f)}catch(d){!function(e,t,n){w(e,t,t.message,n)}(n,d,i)}};const lt=({config:e,widgetUrl:t,apiHost:n,widgetHost:r,widgetKey:i})=>{var o,a,s;const{settings:l}=e;let d=Ze.getInstance(i);const c=new AbortController;Ke(e);try{const e=document.querySelector(`.${Fe}[data-widget-key="${i}"]`),l=document.querySelector(ze);e&&l&&!l.contains(e)&&(l.appendChild(e),null==(o=l.parentElement)||o.style.setProperty("width","100%")),d||(d=Ze.initialize({isButtonHidden:!0,widgetType:g.Searchbar,widgetKey:i}));const{signal:u}=c,f=e=>{Xe(e,u),rt(e,{widgetHost:r,apiHost:n,widgetKey:i,widgetType:g.Searchbar,signal:u,stateManager:d}),it(e,u,d)};if(e){const t=e.querySelector("iframe");t&&("complete"===(null==(s=t.contentDocument)?void 0:s.readyState)?setTimeout(()=>{f(t)},0):t.onload=()=>{setTimeout(()=>{f(t)},0)})}else{const e=document.createDocumentFragment(),{iframeContainer:n,iframe:r}=Qe({widgetUrl:t,widgetType:g.Searchbar,props:{"data-widget-type":"searchbar","data-widget-key":i}});r.onload=()=>{setTimeout(()=>{f(r)},0)},e.appendChild(n),l?(l.appendChild(e),null==(a=l.parentElement)||a.style.setProperty("width","100%")):document.body.appendChild(e)}const p=()=>{c.abort(),window.removeEventListener("beforeunload",p)};return void window.addEventListener("beforeunload",p)}catch(u){!function(e,t,n){w(e,t,t.message,n)}(n,u,i)}},dt=(e,t)=>{var n;const a=C(e.overrides),l=(null==(d=e.overrides)?void 0:d.widgetHost)||"https://agent.brainfi.sh";var d;const c=null==(n=e.overrides)?void 0:n.hideTriggerButton,{theme:u,settings:f}=t,p=e.overrides||{},{theme:g,redirectRules:h,regions:b,customCss:m}=p,y=((e,t)=>{var n={};for(var a in e)i.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&r)for(var a of r(e))t.indexOf(a)<0&&o.call(e,a)&&(n[a]=e[a]);return n})(p,["theme","redirectRules","regions","customCss"]),w=s(s({},u),g),v=s(s({},f),y),x=O(JSON.stringify(h)),S={theme:O(JSON.stringify(w)),settings:O(JSON.stringify(v)),redirectRules:x};b&&(S.regions=O(JSON.stringify(b))),m&&(S.customCss=O(m));const E=`${l}/?widgetKey=${e.widgetKey}#${new URLSearchParams(S).toString()}`;"Search"===t.widgetType?lt({config:t,widgetUrl:E,apiHost:a,widgetHost:l,widgetKey:e.widgetKey}):st({config:t,widgetUrl:E,apiHost:a,widgetHost:l,widgetKey:e.widgetKey,hideTriggerButton:c})};var ct=(e=>(e.FRESHCHAT="freshchat",e.INTERCOM="intercom",e.ZENDESK="zendesk",e.HELPSCOUT="helpscout",e))(ct||{});const ut=e=>c(null,null,function*(){if(e.widgetType===g.Popup){const e=window.fcWidget?ct.FRESHCHAT:null;e&&e===ct.FRESHCHAT&&(yield c(null,null,function*(){window.fcWidget||(yield new Promise(e=>setTimeout(e,100))),window.fcWidget.hide(),window.fcWidget.on("widget:closed",()=>{window.fcWidget.hide()})}))}}),ft="brainfish-nudges",pt=(e,t)=>c(null,null,function*(){try{yield c(null,null,function*(){if(document.getElementById(ft))return;const e=document.createElement("script");e.id=ft,e.src="https://cdn.jsdelivr.net/npm/@brainfish-ai/nudge-widget@latest/dist/index.es.js",e.type="module",e.async=!0,e.crossOrigin="anonymous",e.onerror=()=>{void 0!==console.warn&&console.warn("[Brainfish] Nudge widget failed to load. This may be due to CSP or network restrictions.")},document.head.appendChild(e)})}catch(n){w(e,n,"Failed to initialize Nudge widget",t)}});let gt,ht,bt,mt=!1;const yt=e=>{null==gt||gt.abort(),gt=new AbortController;const{signal:t}=gt;let n=window.location.pathname;const r=()=>{if(t.aborted)return;const r=window.location.pathname;r!==n&&(n=r,e())};window.addEventListener("popstate",r,{signal:t}),mt||(ht=history.pushState,bt=history.replaceState,history.pushState=function(...e){ht.apply(this,e),setTimeout(r,0)},history.replaceState=function(...e){bt.apply(this,e),setTimeout(r,0)},mt=!0),t.addEventListener("abort",()=>{mt&&(history.pushState=ht,history.replaceState=bt,mt=!1)})};let wt=null;const vt="undefined"!=typeof window&&window.Brainfish?window.Brainfish:(wt||(wt=function(){const e=[];let t=null;function n(n,r){if(t){const e=n.split(".");let i=t;for(let t=0;t<e.length-1;t++)i=i[e[t]];const o=i[e[e.length-1]];if("function"==typeof o)return o.apply(i,r)}else e.push([n,r])}return{Widgets:{init:(...e)=>n("Widgets.init",e),identify:(...e)=>n("Widgets.identify",e),setSecretAttributes:(...e)=>n("Widgets.setSecretAttributes",e),open:()=>n("Widgets.open",[]),close:()=>n("Widgets.close",[]),createNewThread:()=>n("Widgets.createNewThread",[]),openModalForm:({formUrl:e,width:t,height:r})=>n("Widgets.openModalForm",[{formUrl:e,width:t,height:r}]),registerClientActionHandler:(...e)=>n("Widgets.registerClientActionHandler",e),onContextHelp:(...e)=>n("Widgets.onContextHelp",e),restoreConversation:(...e)=>n("Widgets.restoreConversation",e),clearConversation:()=>n("Widgets.clearConversation",[]),isReady:!1},SearchWidget:{initStandard:(...e)=>n("SearchWidget.initStandard",e)},HelpWidget:{initPopup:(...e)=>n("HelpWidget.initPopup",e),close:(...e)=>n("HelpWidget.close",e),open:(...e)=>n("HelpWidget.open",e),toggle:(...e)=>n("HelpWidget.toggle",e)},_setRealBrainfish(r){for(t=r;e.length>0;){const[t,r]=e.shift();n(t,r)}}}}(),"undefined"!=typeof window&&(window.Brainfish=wt)),wt),xt=new Map,Ct=new Map;let St=!1;function Et(e,t,n,r){return c(this,null,function*(){var i,o,a,s,l,d,c;const u=(null==(i=e.overrides)?void 0:i.enableRecording)||(null==(o=null==t?void 0:t.settings)?void 0:o.enableRecording)||!1,f=(null==(a=e.overrides)?void 0:a.version)||(null==t?void 0:t.version);Ct.set(e.widgetKey,{options:e,config:t,apiHost:n,analyticsApiHost:r});const p=[];(null==f?void 0:f.startsWith("2."))?(dt(e,t),St||(St=!0,yt(()=>{Ct.forEach(({options:e,config:t})=>{var n;const r=(null==(n=e.overrides)?void 0:n.version)||(null==t?void 0:t.version);(null==r?void 0:r.startsWith("2."))&&dt(e,t)})}))):p.push(k(e,t)),p.push(I(e.widgetKey,t.trackingToken||"",n,r,u,{blocklist:null==(s=null==t?void 0:t.settings)?void 0:s.recordingBlocklist,sampleRate:null==(d=null==(l=null==t?void 0:t.settings)?void 0:l.ambientSettings)?void 0:d.sampleRate,_allowLocalhostRecording:null==(c=null==t?void 0:t.settings)?void 0:c._allowLocalhostRecording})),p.push(pt(n,e.widgetKey));const[g]=yield Promise.allSettled(p);g&&"fulfilled"===g.status&&g.value&&vt._setRealBrainfish(g.value)})}vt.Widgets.isReady=!1,vt.Widgets.identify=e=>{window.BrainfishAnalytics("identify",e)},vt.Widgets.setSecretAttributes=e=>{try{const{alg:t}=p(e);if("dir"!==t)throw new Error("Invalid algorithm")}catch(n){return void console.error("[Brainfish] Invalid JWE provided to setSecretAttributes:",n)}const t=document.querySelector("#bf-iframe-container .trigger-iframe");if(t){const n=()=>{t.contentWindow&&t.contentWindow.postMessage({type:"SET_SECRET_ATTRIBUTES",secretAttributes:e},"*")};t.contentWindow&&n(),t.addEventListener("load",n)}},vt.Widgets.init=e=>c(null,null,function*(){window&&(window.BrainfishAnalytics=window.BrainfishAnalytics||function(...e){(window.BrainfishAnalytics.q=window.BrainfishAnalytics.q||[]).push(e)});const t=C(e.overrides),n=(null==(r=e.overrides)?void 0:r.analyticsApiHost)||"";var r;let i;if(e.config)i=JSON.parse((e=>{if("undefined"!=typeof window&&"function"==typeof window.atob){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return(new TextDecoder).decode(r)}if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("utf-8");throw new Error("[utils.base64Decode]: Unsupported environment")})(e.config));else{const{config:n}=yield v({widgetKey:e.widgetKey,apiHost:t});i=n}let o=xt.get(e.widgetKey);if(o||(o=Et(e,i,t,n),xt.set(e.widgetKey,o)),yield o,!qe.isWidgetDOMExisting(e.widgetKey,i)){xt.delete(e.widgetKey);const r=Et(e,i,t,n);xt.set(e.widgetKey,r),yield r}yield ut(i),vt.Widgets.isReady=!0,window.dispatchEvent(new Event("onBrainfishReady"))}),vt.Widgets.registerClientActionHandler=(e,t)=>{((e,t)=>{et.set(e,t)})(e,t)};exports.BrainfishAnalytics=(...e)=>{"undefined"!=typeof window&&window.BrainfishAnalytics&&window.BrainfishAnalytics(...e)},exports.default=vt;
2
2
  //# sourceMappingURL=web.cjs.js.map
package/dist/web.js CHANGED
@@ -54,7 +54,7 @@ var __async = (__this, __arguments, generator) => {
54
54
  !function() {
55
55
  try {
56
56
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
57
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "5b3efe4b-3013-41ac-9cb6-a8d426c7069a", e._sentryDebugIdIdentifier = "sentry-dbid-5b3efe4b-3013-41ac-9cb6-a8d426c7069a");
57
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f138493f-5421-4f58-932b-4f77312e0125", e._sentryDebugIdIdentifier = "sentry-dbid-f138493f-5421-4f58-932b-4f77312e0125");
58
58
  } catch (e2) {
59
59
  }
60
60
  }();
@@ -125,7 +125,7 @@ function decodeProtectedHeader(token) {
125
125
  }
126
126
  }
127
127
  var _global = typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : {};
128
- _global.SENTRY_RELEASE = { id: "web-widget@1.21.0" };
128
+ _global.SENTRY_RELEASE = { id: "web-widget@1.21.1" };
129
129
  var WidgetType;
130
130
  (function(WidgetType2) {
131
131
  WidgetType2["Sidebar"] = "sidebar";
@@ -183,7 +183,7 @@ const sendErrors = (apiHost, error, widgetKey) => {
183
183
  "api-key": widgetKey
184
184
  },
185
185
  body: JSON.stringify({
186
- error: `WebWidgetVersion: ${"1.21.0"}. ${error.message}`,
186
+ error: `WebWidgetVersion: ${"1.21.1"}. ${error.message}`,
187
187
  stack: error.stack,
188
188
  cause: {
189
189
  message: errorData.message,
@@ -496,6 +496,8 @@ function createBrainfishQueue() {
496
496
  openModalForm: ({ formUrl, width, height }) => queueOrExecute("Widgets.openModalForm", [{ formUrl, width, height }]),
497
497
  registerClientActionHandler: (...args) => queueOrExecute("Widgets.registerClientActionHandler", args),
498
498
  onContextHelp: (...args) => queueOrExecute("Widgets.onContextHelp", args),
499
+ restoreConversation: (...args) => queueOrExecute("Widgets.restoreConversation", args),
500
+ clearConversation: () => queueOrExecute("Widgets.clearConversation", []),
499
501
  isReady: false
500
502
  },
501
503
  SearchWidget: {
@@ -1899,7 +1901,47 @@ const openModalForm = ({
1899
1901
  closeBtn.focus();
1900
1902
  };
1901
1903
  };
1904
+ const STORAGE_KEY_PREFIX = "brainfish_conversation_";
1905
+ const storageKey = (widgetKey) => `${STORAGE_KEY_PREFIX}${widgetKey}`;
1906
+ const conversationStorage = {
1907
+ save(widgetKey, conversationId) {
1908
+ try {
1909
+ if (conversationId) {
1910
+ localStorage.setItem(storageKey(widgetKey), conversationId);
1911
+ } else {
1912
+ localStorage.removeItem(storageKey(widgetKey));
1913
+ }
1914
+ } catch (e) {
1915
+ }
1916
+ },
1917
+ load(widgetKey) {
1918
+ try {
1919
+ return localStorage.getItem(storageKey(widgetKey));
1920
+ } catch (e) {
1921
+ return null;
1922
+ }
1923
+ },
1924
+ clear(widgetKey) {
1925
+ try {
1926
+ localStorage.removeItem(storageKey(widgetKey));
1927
+ } catch (e) {
1928
+ }
1929
+ }
1930
+ };
1902
1931
  class WidgetGlobalAPI {
1932
+ static getIframeForInstance(instance) {
1933
+ var _a, _b;
1934
+ const containerClass = instance.widgetType === WidgetType.Searchbar ? SEARCH_BAR_IFRAME_CONTAINER_CLASS : IFRAME_CONTAINER_CLASS;
1935
+ const selector = instance.widgetType === WidgetType.Searchbar ? `.${containerClass}[data-widget-key="${instance.widgetKey}"]` : `.${containerClass}`;
1936
+ return (_b = (_a = document.querySelector(selector)) == null ? void 0 : _a.querySelector("iframe")) != null ? _b : null;
1937
+ }
1938
+ static postMessageToInstance(instance, message) {
1939
+ var _a, _b;
1940
+ (_b = (_a = this.getIframeForInstance(instance)) == null ? void 0 : _a.contentWindow) == null ? void 0 : _b.postMessage(
1941
+ message,
1942
+ "*"
1943
+ );
1944
+ }
1903
1945
  static initialize() {
1904
1946
  if (this.isInitialized) return;
1905
1947
  this.setupDeprecatedAPI();
@@ -1921,6 +1963,8 @@ class WidgetGlobalAPI {
1921
1963
  window.Brainfish.Widgets.createNewThread = () => this.createNewThread();
1922
1964
  window.Brainfish.Widgets.openModalForm = openModalForm;
1923
1965
  window.Brainfish.Widgets.onContextHelp = (question, options) => this.openContextualHelp(question, options);
1966
+ window.Brainfish.Widgets.restoreConversation = (conversationId) => this.restoreConversation(conversationId);
1967
+ window.Brainfish.Widgets.clearConversation = () => this.clearConversation();
1924
1968
  }
1925
1969
  }
1926
1970
  static closeCurrentlyOpenWidget() {
@@ -1949,16 +1993,9 @@ class WidgetGlobalAPI {
1949
1993
  }
1950
1994
  }
1951
1995
  static createNewThread() {
1952
- var _a;
1953
1996
  const openInstance = WidgetRegistry.getOpenInstance();
1954
1997
  if (openInstance) {
1955
- const containerClass = openInstance.widgetType === WidgetType.Searchbar ? SEARCH_BAR_IFRAME_CONTAINER_CLASS : IFRAME_CONTAINER_CLASS;
1956
- const selector = openInstance.widgetType === WidgetType.Searchbar ? `.${containerClass}[data-widget-key="${openInstance.widgetKey}"]` : `.${containerClass}`;
1957
- const iframeContainer = document.querySelector(selector);
1958
- const iframe = iframeContainer == null ? void 0 : iframeContainer.querySelector(
1959
- "iframe"
1960
- );
1961
- (_a = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _a.postMessage({ type: "NEW_CONVERSATION" }, "*");
1998
+ this.postMessageToInstance(openInstance, { type: "NEW_CONVERSATION" });
1962
1999
  return;
1963
2000
  }
1964
2001
  const closedPopupInstance = WidgetRegistry.getClosedPopupInstance();
@@ -1990,6 +2027,44 @@ class WidgetGlobalAPI {
1990
2027
  });
1991
2028
  widgetInstance.openWidget(options);
1992
2029
  }
2030
+ static restoreConversation(conversationId) {
2031
+ if (!conversationId || typeof conversationId !== "string") {
2032
+ console.warn(
2033
+ "Brainfish.Widgets.restoreConversation: Invalid conversationId provided"
2034
+ );
2035
+ return;
2036
+ }
2037
+ let widgetInstance = WidgetRegistry.getOpenInstance();
2038
+ const wasAlreadyOpen = !!widgetInstance;
2039
+ if (!widgetInstance) {
2040
+ widgetInstance = WidgetRegistry.getClosedPopupInstance();
2041
+ }
2042
+ if (!widgetInstance) {
2043
+ console.warn(
2044
+ "Brainfish.Widgets.restoreConversation: No popup widget available"
2045
+ );
2046
+ return;
2047
+ }
2048
+ if (!wasAlreadyOpen) {
2049
+ widgetInstance.openWidget({ newConversation: false });
2050
+ }
2051
+ this.postMessageToInstance(widgetInstance, {
2052
+ type: "RESTORE_CONVERSATION",
2053
+ conversationId
2054
+ });
2055
+ }
2056
+ static clearConversation() {
2057
+ var _a;
2058
+ const widgetInstance = (_a = WidgetRegistry.getOpenInstance()) != null ? _a : WidgetRegistry.getClosedPopupInstance();
2059
+ if (!widgetInstance) {
2060
+ console.warn(
2061
+ "Brainfish.Widgets.clearConversation: No popup widget available"
2062
+ );
2063
+ return;
2064
+ }
2065
+ conversationStorage.clear(widgetInstance.widgetKey);
2066
+ this.postMessageToInstance(widgetInstance, { type: "NEW_CONVERSATION" });
2067
+ }
1993
2068
  }
1994
2069
  __publicField(WidgetGlobalAPI, "isInitialized", false);
1995
2070
  class AnalyticsTracker {
@@ -2363,6 +2438,10 @@ function initMessageListener(iframe, {
2363
2438
  "*"
2364
2439
  );
2365
2440
  }
2441
+ if (type === "CONVERSATION_CHANGED") {
2442
+ const { conversationId } = event.data;
2443
+ conversationStorage.save(widgetKey, conversationId);
2444
+ }
2366
2445
  });
2367
2446
  window.addEventListener("message", messageHandler, { signal });
2368
2447
  }
@@ -2427,14 +2506,24 @@ function createWidgetWithButton(widgetKey, widgetUrl, {
2427
2506
  widgetKey
2428
2507
  });
2429
2508
  }
2430
- const { iframeContainer, iframe } = createIframeContainer({ widgetUrl, widgetType: WidgetType.Popup });
2509
+ const { iframeContainer, iframe } = createIframeContainer({
2510
+ widgetUrl,
2511
+ widgetType: WidgetType.Popup
2512
+ });
2431
2513
  fragment.appendChild(iframeContainer);
2432
2514
  return { fragment, iframe, stateManager };
2433
2515
  }
2434
2516
  function handleInitializationError$1(apiHost, error, widgetKey) {
2435
2517
  sendBrainfishWidgetError(apiHost, error, error.message, widgetKey);
2436
2518
  }
2437
- const initWidgetButton = ({ config, widgetUrl, apiHost, widgetHost, widgetKey, hideTriggerButton }) => {
2519
+ const initWidgetButton = ({
2520
+ config,
2521
+ widgetUrl,
2522
+ apiHost,
2523
+ widgetHost,
2524
+ widgetKey,
2525
+ hideTriggerButton
2526
+ }) => {
2438
2527
  const { settings } = config;
2439
2528
  const isButtonHidden = hideTriggerButton != null ? hideTriggerButton : settings == null ? void 0 : settings.hideTriggerButton;
2440
2529
  const triggerButtonIcon = settings == null ? void 0 : settings.triggerButtonIcon;
@@ -2454,6 +2543,7 @@ const initWidgetButton = ({ config, widgetUrl, apiHost, widgetHost, widgetKey, h
2454
2543
  const { signal } = controller;
2455
2544
  iframe.onload = () => {
2456
2545
  setTimeout(() => {
2546
+ var _a;
2457
2547
  initColorSchemeListener(iframe, signal);
2458
2548
  initMessageListener(iframe, {
2459
2549
  widgetHost,
@@ -2464,13 +2554,32 @@ const initWidgetButton = ({ config, widgetUrl, apiHost, widgetHost, widgetKey, h
2464
2554
  stateManager
2465
2555
  });
2466
2556
  observeColorSchemeChanges(iframe, signal, stateManager);
2557
+ const savedConversationId = conversationStorage.load(widgetKey);
2558
+ const hasConversationInUrl = new URL(widgetUrl).searchParams.has(
2559
+ "conversation"
2560
+ );
2561
+ if (savedConversationId && !hasConversationInUrl) {
2562
+ (_a = iframe.contentWindow) == null ? void 0 : _a.postMessage(
2563
+ {
2564
+ type: "RESTORE_CONVERSATION",
2565
+ conversationId: savedConversationId
2566
+ },
2567
+ "*"
2568
+ );
2569
+ }
2467
2570
  }, 0);
2468
2571
  };
2469
2572
  if (!document.body) {
2470
- console.warn("[Brainfish] document.body not ready. Widget initialization deferred.");
2471
- document.addEventListener("DOMContentLoaded", () => {
2472
- document.body.appendChild(fragment);
2473
- }, { once: true });
2573
+ console.warn(
2574
+ "[Brainfish] document.body not ready. Widget initialization deferred."
2575
+ );
2576
+ document.addEventListener(
2577
+ "DOMContentLoaded",
2578
+ () => {
2579
+ document.body.appendChild(fragment);
2580
+ },
2581
+ { once: true }
2582
+ );
2474
2583
  } else {
2475
2584
  document.body.appendChild(fragment);
2476
2585
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brainfish-ai/widgets-initiator",
3
- "version": "1.21.0",
3
+ "version": "1.21.1",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/types/index.d.ts",