@brainfish-ai/widgets-initiator 1.19.3 → 1.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -47,6 +47,11 @@ Brainfish.Widgets.open({
47
47
  // Close the widget
48
48
  Brainfish.Widgets.close();
49
49
 
50
+ // Create a new conversation thread
51
+ // If widget is open, resets the current conversation
52
+ // If widget is closed, opens it with a new conversation
53
+ Brainfish.Widgets.createNewThread();
54
+
50
55
  // Check if widget is ready
51
56
  if (Brainfish.Widgets.isReady) {
52
57
  // Widget is ready to use
@@ -1,9 +1,11 @@
1
- export declare function createIframeContainer({ widgetUrl, widgetType, props }: {
1
+ interface Props {
2
2
  widgetUrl: string;
3
3
  widgetType: string;
4
4
  props?: Record<string, string>;
5
- }): {
5
+ }
6
+ export declare function createIframeContainer({ widgetUrl, widgetType, props }: Props): {
6
7
  iframeContainer: HTMLDivElement;
7
8
  iframe: HTMLIFrameElement;
8
9
  };
9
10
  export declare function toggleIframeSize(): void;
11
+ export {};
@@ -1 +1,2 @@
1
1
  export declare const SEARCH_BAR_SELECTOR = "brainfish-search-widget";
2
+ export declare const SEARCH_BAR_INLINE_MIN_HEIGHT = 200;
@@ -1,4 +1,4 @@
1
- import { WidgetType } from '@brainfish-ai/widgets-common';
1
+ import { WidgetType, type Config } from '@brainfish-ai/widgets-common';
2
2
  /**
3
3
  * Handles all DOM manipulation for widgets
4
4
  * Single responsibility: Manage DOM elements and their states
@@ -29,4 +29,9 @@ export declare class WidgetDOMController {
29
29
  resizeContainer(height: number): void;
30
30
  private isMobile;
31
31
  setupButtonClickListener(callback: () => void): void;
32
+ /**
33
+ * Check if widget DOM exists for a given widget key and config
34
+ * Used to verify widget initialization after route changes
35
+ */
36
+ static isWidgetDOMExisting(widgetKey: string, config: Config): boolean;
32
37
  }
@@ -15,5 +15,6 @@ export declare class WidgetGlobalAPI {
15
15
  private static setupNewAPI;
16
16
  static closeCurrentlyOpenWidget(): void;
17
17
  static openCurrentlyClosedPopupWidget(optionsOrTrigger?: WidgetOpenOptions | string, isNewApiCall?: boolean): void;
18
+ static createNewThread(): void;
18
19
  static openContextualHelp(question: string, widgetOpenOptions?: WidgetOpenOptions): void;
19
20
  }
@@ -15,6 +15,7 @@ export type Brainfish = {
15
15
  }) => Promise<void>;
16
16
  open: () => void;
17
17
  close: () => void;
18
+ createNewThread: () => void;
18
19
  openModalForm: ({ formUrl, width, height }: ModalFormProps) => void;
19
20
  registerClientActionHandler: (key: string, handler: ClientActionHandler) => void;
20
21
  onContextHelp: (question: string, options?: WidgetOpenOptions) => void;
@@ -20,6 +20,7 @@ export interface BrainfishQueue extends Brainfish {
20
20
  isReady: boolean;
21
21
  open: () => void;
22
22
  close: () => void;
23
+ createNewThread: () => void;
23
24
  openModalForm: ({ formUrl, width, height }: ModalFormProps) => void;
24
25
  registerClientActionHandler: (key: string, handler: ClientActionHandler) => void;
25
26
  onContextHelp: (question: string) => void;
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},l=(e,i)=>t(e,n(i)),d=(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]="fe4eba82-c350-4b9c-880f-24e11525d4b1",e._sentryDebugIdIdentifier="sentry-dbid-fe4eba82-c350-4b9c-880f-24e11525d4b1")}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:"de1dfe819d493ad42e56234e828558e1341e3bd5"},(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,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.19.3. ${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?l(s({},e),{value:new Function(`return ${e.value}`)()}):e))}),l(s({},e),{settings:i,apiHost:n,widgetMode:e.widgetType,apiKey:t})},C=e=>(null==e?void 0:e.apiHost)||"https://app.brainfi.sh",k=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 S=new Set,E=(e,t)=>c(null,null,function*(){const n=C(e.overrides);try{if(S.has(e.widgetKey))return;const i=yield k({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),S.add(e.widgetKey),r}}catch(i){w(n,i,i.message,e.widgetKey)}});let T=!1;const _=(e,t,n,...i)=>c(null,[e,t,n,...i],function*(e,t,n,i="",r=!1,o=[],a,s){if(t||w(n,new Error("Access key is required"),"Access key is required",e),!T)try{const l=(()=>{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)})(),d="undefined"!=typeof localStorage&&"true"===localStorage.getItem("bf_tracking_disabled"),u=l||d;window.BrainfishAnalytics("init",{apiUrl:i,accessKey:t,trackScreenViews:!0,trackAttributes:!u,trackOutgoingLinks:!u,enableRecording:!u&&r,recordingBlocklist:o,_allowLocalhostRecording:a,_allowScreenRecording:s}),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(l){w(n,l,"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 O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var A,W={exports:{}},B={exports:{}},P={exports:{}};function M(){return A||(A=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)),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 r(l+u,d+u,c+u)},e.exports=t.default}(P,P.exports)),P.exports}var H,j={exports:{}};function L(){return H||(H=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(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 r.default(4,t,x);return{red:parseInt(""+C[1],10),green:parseInt(""+C[2],10),blue:parseInt(""+C[3],10)}}var k=p.exec(t.substring(0,50));if(k){var S=parseInt(""+k[1],10),E=parseInt(""+k[2],10)/100,T=parseInt(""+k[3],10)/100,_="rgb("+(0,n.default)(S,E,T)+")",I=c.exec(_);if(!I)throw new r.default(4,t,_);return{red:parseInt(""+I[1],10),green:parseInt(""+I[2],10),blue:parseInt(""+I[3],10),alpha:parseFloat(""+k[4])>1?parseFloat(""+k[4])/100:parseFloat(""+k[4])}}throw new r.default(5)};var n=o(M()),i=o(L()),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}$/,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 $||($=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}(W,W.exports)),W.exports}const D=O(q());var U,J={exports:{}},Y={exports:{}};function G(){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,Q={exports:{}};function V(){return Z||(Z=1,e=Q,(t=Q.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),Q.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 l=o-a,d=s>.5?l/(2-o-a):l/(o+a);switch(o){case n:t=(i-r)/l+(i<r?6:0);break;case i:t=(r-n)/l+2;break;default:t=(n-i)/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 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:{}},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()),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}(le,le.exports)),le.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 ke(){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 Se,Ee,Te,_e={exports:{}};function Ie(){return Se||(Se=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(ke()),r=o(z());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(_e,_e.exports)),_e.exports}function Oe(){return Ee||(Ee=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,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(ke()),o=s(Ie()),a=s(z());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 Ae(){return Te||(Te=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=a(G()),i=a(V()),r=a(re()),o=a(Oe());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 l=(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=l,e.exports=t.default}(J,J.exports)),J.exports}const We=O(Ae());var Be,Pe={exports:{}};function Me(){return Be||(Be=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=a(G()),i=a(V()),r=a(re()),o=a(Oe());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 l=(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=l,e.exports=t.default}(Pe,Pe.exports)),Pe.exports}const He=O(Me()),je="bf-iframe-container",Le="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}.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,.bf-search-bar-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,.bf-search-bar-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,.bf-search-bar-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-search-bar-iframe-container{min-height:30px;overflow:hidden;&.open{width:100vw;height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));position:fixed;top:0;left:0}}.bf-iframe-container.expanded,.bf-search-bar-iframe-container.expanded{width:min(calc(448px * 1.35),calc(100vw - 16px));height:min(calc(750px * 1.35),calc(100vh - 80px))}}@media (min-width: 962px){.bf-search-bar-iframe-container.open{width:80vw;height:auto;max-height:70vh;top:50%;left:50%;transform:translateY(-50%) translate(-50%)}}@media (min-width: 1200px){.bf-search-bar-iframe-container.open{width:50vw;min-width:770px;max-width:1024px}}brainfish-search-widget .search-trigger{position:relative;display:flex;align-items:center;height:100%;width:100%;min-width:200px;min-height:30px;max-height:48px;background-color:#fff;border-radius:8px;border:1px solid #ccc;box-shadow:0 2px 4px #0000001a;font-size:16px;color:#171717;padding-left:46px;cursor:text;&:after{content:attr(data-placeholder)}&:before{content:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><rect width="256" height="256" fill="none"/><circle cx="112" cy="112" r="80" fill="none" stroke="%23737373" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="%23737373" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>');display:block;width:24px;height:24px;position:absolute;left:12px;top:50%;transform:translateY(-50%)}}.bf-search-bar-iframe-backdrop{display:block;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#d9d9d905;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.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 .${Le} { background: ${e}; }\n .${Le}:hover {\n background: ${i?We(.05,e):He(.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){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 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){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(`.${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"},"*"),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"),document.body.clientWidth>=962&&this.widgetType===g.Searchbar&&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){var t,n;if(this.widgetType!==g.Searchbar)return;if(!this.container||!this.iframe)return;if(window.innerWidth<768)return this.container.style.removeProperty("height"),void this.iframe.style.removeProperty("height");if(document.body.clientWidth<=962?this.container.style.removeProperty("height"):this.container.style.height=`${e}px`,this.iframe.style.height=`${e}px`,0===e){const n={type:"CONSTRAINED_HEIGHT",height:e};return void(null==(t=this.iframe.contentWindow)||t.postMessage(n,"*"))}const i=.7*window.innerHeight;if(e>i){this.container.style.height=`${i}px`,this.iframe.style.height=`${i}px`;const e={type:"CONSTRAINED_HEIGHT",height:i};null==(n=this.iframe.contentWindow)||n.postMessage(e,"*")}}isMobile(){return document.body.clientWidth<=576}setupButtonClickListener(e){this.button&&this.button.addEventListener("click",e)}}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 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;`;let a=document.activeElement;const 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&&l()},l=()=>{i.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 ",r.onclick=l,d.onclick=l,document.addEventListener("keydown",s),i.appendChild(r),i.appendChild(o),document.body.appendChild(d),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.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 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=l(s({},t),{newConversation:!0,trigger:"contextual-help",contextualQuestion:e.trim()});n.openWidget(i)}}d(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,l(s({},t),{widgetKey:this.widgetKey}),{source:n,widgetKey:this.widgetKey})}}}class Ge{constructor(e,t){d(this,"state"),d(this,"domController"),d(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 Ge(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":"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 l=ze("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=ze("div","loading-error");o.appendChild(t),o.setAttribute("aria-label","Failed to load content")}),r.appendChild(l),{iframeContainer:r,iframe:l}}function Qe(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 Ve=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(Ve.has(e)){const r=Ve.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:l}=r.data;if(!l||l===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}=r.data;if(!["function","callback"].includes(e.type))return void console.error("[Brainfish] Invalid action type:",e);const s={query:o,answer:a,searchIntentId:e.searchIntentId,actionId:e.id,conversationId:r.data.conversationId||"",searchQueryId:t,metadata:e.metadata||{}};try{if(window.__bfCallbacks=window.__bfCallbacks||{},window.__bfCallbacks[e.id])return void window.__bfCallbacks[e.id](o,a,s);const t=new URL(`${n}/api/searchWidgets.callback.codeblocks`);t.searchParams.set("apiKey",i),t.searchParams.set("codeblockId",e.id),s.searchIntentId&&t.searchParams.set("searchIntentId",s.searchIntentId);const r=document.createElement("script");r.src=t.toString(),document.head.appendChild(r),r.onload=()=>{window.__bfCallbacks[e.id](o,a,s),setTimeout(()=>{document.head.removeChild(r)},300)},r.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: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=Ge.initialize({isButtonHidden:n,widgetType:g.Popup,widgetKey:e});else{const{button:t,icon:n}=function(e,t){const n=ze("button",Le,{id:`trigger-button-${e}`,"aria-controls":je,"aria-expanded":"false","data-name":Le}),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" height="32" width="32" 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=Ge.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,l=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:d}=rt(r,t,{isButtonHidden:s||!1,triggerButtonIcon:l||""}),c=new AbortController,{signal:u}=c;a.onload=()=>{setTimeout(()=>{Qe(a,u),tt(a,{widgetHost:i,apiHost:n,widgetKey:r,widgetType:g.Popup,signal:u,stateManager:d}),nt(a,u,d)},0)},document.body.appendChild(o),it.add(r);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,r)}};const at=({config:e,widgetUrl:t,apiHost:n,widgetHost:i,widgetKey:r})=>{const{settings:o}=e;let a=Ge.getInstance(r);const s=new AbortController,l=function({widgetKey:e,settings:t}){var n;const i=document.querySelector(Re);if(!i)return;if("absolute"===(null==(n=i.computedStyleMap().get("position"))?void 0:n.toString())){const e=i.offsetWidth,t=i.offsetHeight;if(0===e||0===t)return void console.warn("Brainfish: Search bar is absolute positioned but has no width or height");if(e<200||t<30)return void console.warn("Brainfish: Search bar is too small")}const r=ze("div","search-trigger");i.appendChild(r),r.setAttribute("data-widget-key",e),r.setAttribute("tabindex","0");const o=(null==t?void 0:t.placeholder)||"Ask your question here...";return r.setAttribute("data-placeholder",o),r.setAttribute("aria-label",`${o} - Click to open search`),r.setAttribute("role","button"),r.setAttribute("aria-expanded","false"),r.setAttribute("aria-haspopup","dialog"),r}({widgetKey:r,settings:o});if(l){$e(e);try{if(!function(e){return!!document.querySelector(`.${Fe}[data-widget-key="${e}"]`)}(r)){const e=document.createDocumentFragment();a||(a=Ge.initialize({isButtonHidden:!0,widgetType:g.Searchbar,widgetKey:r}));const{iframeContainer:o,iframe:l}=Ze({widgetUrl:t,widgetType:g.Searchbar,props:{"data-widget-type":"searchbar","data-widget-key":r}}),{signal:d}=s;l.onload=()=>{setTimeout(()=>{Qe(l,d),tt(l,{widgetHost:i,apiHost:n,widgetKey:r,widgetType:g.Searchbar,signal:d,stateManager:a}),nt(l,d,a)},0)},e.appendChild(o),document.body.appendChild(e)}const e=()=>{Je.closeCurrentlyOpenWidget(),null==a||a.openWidget({newConversation:!0})};l.onclick=()=>{e()},l.onfocus=()=>{e()};const o=()=>{s.abort(),window.removeEventListener("beforeunload",o)};return void window.addEventListener("beforeunload",o)}catch(d){!function(e,t,n){w(e,t,t.message,n)}(n,d,r)}}},st=(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}=p,m=((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"]),y=s(s({},u),g),w=s(s({},f),m),v=I(JSON.stringify(h)),x={theme:I(JSON.stringify(y)),settings:I(JSON.stringify(w)),redirectRules:v};b&&(x.regions=I(JSON.stringify(b)));const k=`${l}/?widgetKey=${e.widgetKey}#${new URLSearchParams(x).toString()}`;"Search"===t.widgetType?at({config:t,widgetUrl:k,apiHost:a,widgetHost:l,widgetKey:e.widgetKey}):ot({config:t,widgetUrl:k,apiHost:a,widgetHost:l,widgetKey:e.widgetKey,hideTriggerButton:c})};var lt=(e=>(e.FRESHCHAT="freshchat",e.INTERCOM="intercom",e.ZENDESK="zendesk",e.HELPSCOUT="helpscout",e))(lt||{});const dt=e=>c(null,null,function*(){if(e.widgetType===g.Popup){const e=window.fcWidget?lt.FRESHCHAT:null;e&&e===lt.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((e,t)=>c(null,null,function*(){if(document.getElementById(ct))return;const n=document.createElement("script");n.id=ct,n.src="https://cdn.jsdelivr.net/npm/@brainfish-ai/nudge-widget@latest/dist/index.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)}))(e,t)}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(){let e=[],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",[]),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:function(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;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);o||(o=function(e,t,n,i){return c(this,null,function*(){var r,o,a,s,l,d;const c=(null==(r=e.overrides)?void 0:r.enableRecording)||(null==(o=null==t?void 0:t.settings)?void 0:o.enableRecording)||!1,u=(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 f=[];(null==u?void 0:u.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)})}))):f.push(E(e,t)),f.push(_(e.widgetKey,t.trackingToken||"",n,i,c,(null==(s=null==t?void 0:t.settings)?void 0:s.recordingBlocklist)||[],null==(l=null==t?void 0:t.settings)?void 0:l._allowLocalhostRecording,null==(d=null==t?void 0:t.settings)?void 0:d._allowScreenRecording)),f.push(ut(n,e.widgetKey));const[p]=yield Promise.allSettled(f);p&&"fulfilled"===p.status&&p.value&&yt._setRealBrainfish(p.value)})}(e,r,t,n),wt.set(e.widgetKey,o)),yield o,yield dt(r),yt.Widgets.isReady=!0,window.dispatchEvent(new Event("onBrainfishReady"))}),yt.Widgets.registerClientActionHandler=(e,t)=>{((e,t)=>{Ve.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]="67921219-6ba7-4c77-9679-f051c99c5557",e._sentryDebugIdIdentifier="sentry-dbid-67921219-6ba7-4c77-9679-f051c99c5557")}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:"77354197fc1bed2d01a7729299e5e74ba440b6ea"},(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.20.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 k=new Set,E=(e,t)=>c(null,null,function*(){const n=C(e.overrides);try{if(k.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),k.add(e.widgetKey),i}}catch(r){w(n,r,r.message,e.widgetKey)}});let T=!1;const O=(e,t,n,...r)=>c(null,[e,t,n,...r],function*(e,t,n,r="",i=!1,o=[],a,s){if(t||w(n,new Error("Access key is required"),"Access key is required",e),!T)try{const l=(()=>{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)})(),d="undefined"!=typeof localStorage&&"true"===localStorage.getItem("bf_tracking_disabled"),u=l||d;window.BrainfishAnalytics("init",{apiUrl:r,accessKey:t,trackScreenViews:!0,trackAttributes:!u,trackOutgoingLinks:!u,enableRecording:!u&&i,recordingBlocklist:o,_allowLocalhostRecording:a,_allowScreenRecording:s}),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(l){w(n,l,"Failed to initialize BrainfishAnalytics",e)}});function _(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 I(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 j,L={exports:{}};function H(){return j||(j=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}(L,L.exports)),L.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(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}(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 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 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)+")",_=c.exec(O);if(!_)throw new i.default(4,t,O);return{red:parseInt(""+_[1],10),green:parseInt(""+_[2],10),blue:parseInt(""+_[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(z());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 $||($=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=R())&&n.__esModule?n:{default:n};e.exports=t.default}(A,A.exports)),A.exports}const D=I(q());var U,J={exports:{}},Y={exports:{}};function V(){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}(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 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(R()),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(z());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(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,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(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 _e(){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,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(R()),r=o(Se()),i=o(z());function o(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default}(Oe,Oe.exports)),Oe.exports}function Ie(){return Ee||(Ee=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(_e()),a=s(z());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(V()),r=a(Q()),i=a(ie()),o=a(Ie());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=I(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()),r=a(Q()),i=a(ie()),o=a(Ie());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 je=I(Me()),Le="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 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:64px;max-height:64px}.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):je(.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){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 ze(e,t,n={}){const r=document.createElement(e);return r.className=t,Object.entries(n).forEach(([e,t])=>{r.setAttribute(e,t)}),r}const Re="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:Le}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,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=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(`.${Le}`))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;`;let a=document.activeElement;const 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()}};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 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(){var e;const t=De.getOpenInstance();if(t){const n=t.widgetType===g.Searchbar?Fe:Le,r=t.widgetType===g.Searchbar?`.${n}[data-widget-key="${t.widgetKey}"]`:`.${n}`,i=document.querySelector(r),o=null==i?void 0:i.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 r=l(s({},t),{newConversation:!0,trigger:"contextual-help",contextualQuestion:e.trim()});n.openWidget(r)}}d(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,l(s({},t),{widgetKey:this.widgetKey}),{source:n,widgetKey:this.widgetKey})}}}class Ve{constructor(e,t){d(this,"state"),d(this,"domController"),d(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 r=t===g.Searchbar?Fe:Le,i=ze("div",r,s({id:r,"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),i.appendChild(o);const l=ze("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=ze("div","loading-error");o.appendChild(t),o.setAttribute("aria-label","Failed to load content")}),i.appendChild(l),{iframeContainer:i,iframe:l}}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 i=Qe.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:Xe(e,r)}}}var n;return{success:!1,reason:`No Client Action registered with key ${e}`}});function tt(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(`.${Le}`);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}=i.data;if(!["function","callback"].includes(e.type))return void console.error("[Brainfish] Invalid action type:",e);const s={query:o,answer:a,searchIntentId:e.searchIntentId,actionId:e.id,conversationId:i.data.conversationId||"",searchQueryId:t,metadata:e.metadata||{}};try{if(window.__bfCallbacks=window.__bfCallbacks||{},window.__bfCallbacks[e.id])return void window.__bfCallbacks[e.id](o,a,s);const t=new URL(`${n}/api/searchWidgets.callback.codeblocks`);t.searchParams.set("apiKey",r),t.searchParams.set("codeblockId",e.id),s.searchIntentId&&t.searchParams.set("searchIntentId",s.searchIntentId);const i=document.createElement("script");i.src=t.toString(),document.head.appendChild(i),i.onload=()=>{window.__bfCallbacks[e.id](o,a,s),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 et(t,n);null==(o=e.contentWindow)||o.postMessage({type:"CLIENT_EXECUTION_RESULT",messageId:r,result:a},"*")}}}),{signal:o})}function nt(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 rt=new Set;function it(e,t,{isButtonHidden:n,triggerButtonIcon:r}){const i=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":Le,"aria-expanded":"false","data-name":He}),r=ze("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=Ve.initialize({button:t,icon:n,widgetType:g.Popup,widgetKey:e})}const{iframeContainer:a,iframe:s}=Ze({widgetUrl:t,widgetType:g.Popup});return i.appendChild(a),{fragment:i,iframe:s,stateManager:o}}const ot=({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 rt.has(e)}(i))return;if(function(e){return!!document.getElementById(`trigger-button-${e}`)}(i))return;$e(e);const{fragment:o,iframe:a,stateManager:d}=it(i,t,{isButtonHidden:s||!1,triggerButtonIcon:l||""}),c=new AbortController,{signal:u}=c;a.onload=()=>{setTimeout(()=>{Ge(a,u),tt(a,{widgetHost:r,apiHost:n,widgetKey:i,widgetType:g.Popup,signal:u,stateManager:d}),nt(a,u,d)},0)},document.body.appendChild(o),rt.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 at=({config:e,widgetUrl:t,apiHost:n,widgetHost:r,widgetKey:i})=>{var o,a,s;const{settings:l}=e;let d=Ve.getInstance(i);const c=new AbortController;$e(e);try{const e=document.querySelector(`.${Fe}[data-widget-key="${i}"]`),l=document.querySelector(Re);e&&l&&!l.contains(e)&&(l.appendChild(e),null==(o=l.parentElement)||o.style.setProperty("width","100%")),d||(d=Ve.initialize({isButtonHidden:!0,widgetType:g.Searchbar,widgetKey:i}));const{signal:u}=c,f=e=>{Ge(e,u),tt(e,{widgetHost:r,apiHost:n,widgetKey:i,widgetType:g.Searchbar,signal:u,stateManager:d}),nt(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}=Ze({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)}},st=(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=_(JSON.stringify(h)),S={theme:_(JSON.stringify(w)),settings:_(JSON.stringify(v)),redirectRules:x};b&&(S.regions=_(JSON.stringify(b))),m&&(S.customCss=_(m));const k=`${l}/?widgetKey=${e.widgetKey}#${new URLSearchParams(S).toString()}`;"Search"===t.widgetType?at({config:t,widgetUrl:k,apiHost:a,widgetHost:l,widgetKey:e.widgetKey}):ot({config:t,widgetUrl:k,apiHost:a,widgetHost:l,widgetKey:e.widgetKey,hideTriggerButton:c})};var lt=(e=>(e.FRESHCHAT="freshchat",e.INTERCOM="intercom",e.ZENDESK="zendesk",e.HELPSCOUT="helpscout",e))(lt||{});const dt=e=>c(null,null,function*(){if(e.widgetType===g.Popup){const e=window.fcWidget?lt.FRESHCHAT:null;e&&e===lt.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((e,t)=>c(null,null,function*(){if(document.getElementById(ct))return;const n=document.createElement("script");n.id=ct,n.src="https://cdn.jsdelivr.net/npm/@brainfish-ai/nudge-widget@latest/dist/index.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)}))(e,t)}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 r=()=>{if(t.aborted)return;const r=window.location.pathname;r!==n&&(n=r,e())};window.addEventListener("popstate",r,{signal:t}),ht||(pt=history.pushState,gt=history.replaceState,history.pushState=function(...e){pt.apply(this,e),setTimeout(r,0)},history.replaceState=function(...e){gt.apply(this,e),setTimeout(r,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(){let e=[],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),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:function(r){for(t=r;e.length>0;){const[t,r]=e.shift();n(t,r)}}}}(),"undefined"!=typeof window&&(window.Brainfish=mt)),mt),wt=new Map,vt=new Map;let xt=!1;function Ct(e,t,n,r){return c(this,null,function*(){var i,o,a,s,l,d;const c=(null==(i=e.overrides)?void 0:i.enableRecording)||(null==(o=null==t?void 0:t.settings)?void 0:o.enableRecording)||!1,u=(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:r});const f=[];(null==u?void 0:u.startsWith("2."))?(st(e,t),xt||(xt=!0,bt(()=>{vt.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."))&&st(e,t)})}))):f.push(E(e,t)),f.push(O(e.widgetKey,t.trackingToken||"",n,r,c,(null==(s=null==t?void 0:t.settings)?void 0:s.recordingBlocklist)||[],null==(l=null==t?void 0:t.settings)?void 0:l._allowLocalhostRecording,null==(d=null==t?void 0:t.settings)?void 0:d._allowScreenRecording)),f.push(ut(n,e.widgetKey));const[p]=yield Promise.allSettled(f);p&&"fulfilled"===p.status&&p.value&&yt._setRealBrainfish(p.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==(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=wt.get(e.widgetKey);if(o||(o=Ct(e,i,t,n),wt.set(e.widgetKey,o)),yield o,!qe.isWidgetDOMExisting(e.widgetKey,i)){wt.delete(e.widgetKey);const r=Ct(e,i,t,n);wt.set(e.widgetKey,r),yield r}yield dt(i),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;
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] = "68dedfa5-294f-4ba4-a29e-492421f7af6a", e._sentryDebugIdIdentifier = "sentry-dbid-68dedfa5-294f-4ba4-a29e-492421f7af6a");
57
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "1a892ba5-3c9f-4035-b42a-4937e3190f1f", e._sentryDebugIdIdentifier = "sentry-dbid-1a892ba5-3c9f-4035-b42a-4937e3190f1f");
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: "de1dfe819d493ad42e56234e828558e1341e3bd5" };
128
+ _global.SENTRY_RELEASE = { id: "77354197fc1bed2d01a7729299e5e74ba440b6ea" };
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.19.3"}. ${error.message}`,
186
+ error: `WebWidgetVersion: ${"1.20.1"}. ${error.message}`,
187
187
  stack: error.stack,
188
188
  cause: {
189
189
  message: errorData.message,
@@ -495,6 +495,7 @@ function createBrainfishQueue() {
495
495
  setSecretAttributes: (...args) => queueOrExecute("Widgets.setSecretAttributes", args),
496
496
  open: () => queueOrExecute("Widgets.open", []),
497
497
  close: () => queueOrExecute("Widgets.close", []),
498
+ createNewThread: () => queueOrExecute("Widgets.createNewThread", []),
498
499
  openModalForm: ({ formUrl, width, height }) => queueOrExecute("Widgets.openModalForm", [{ formUrl, width, height }]),
499
500
  registerClientActionHandler: (...args) => queueOrExecute("Widgets.registerClientActionHandler", args),
500
501
  onContextHelp: (...args) => queueOrExecute("Widgets.onContextHelp", args),
@@ -559,7 +560,7 @@ const base64Decode = (text) => {
559
560
  }
560
561
  throw new Error("[utils.base64Decode]: Unsupported environment");
561
562
  };
562
- const styles = `.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}.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,.bf-search-bar-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,.bf-search-bar-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,.bf-search-bar-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-search-bar-iframe-container{min-height:30px;overflow:hidden;&.open{width:100vw;height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));position:fixed;top:0;left:0}}.bf-iframe-container.expanded,.bf-search-bar-iframe-container.expanded{width:min(calc(448px * 1.35),calc(100vw - 16px));height:min(calc(750px * 1.35),calc(100vh - 80px))}}@media (min-width: 962px){.bf-search-bar-iframe-container.open{width:80vw;height:auto;max-height:70vh;top:50%;left:50%;transform:translateY(-50%) translate(-50%)}}@media (min-width: 1200px){.bf-search-bar-iframe-container.open{width:50vw;min-width:770px;max-width:1024px}}brainfish-search-widget .search-trigger{position:relative;display:flex;align-items:center;height:100%;width:100%;min-width:200px;min-height:30px;max-height:48px;background-color:#fff;border-radius:8px;border:1px solid #ccc;box-shadow:0 2px 4px #0000001a;font-size:16px;color:#171717;padding-left:46px;cursor:text;&:after{content:attr(data-placeholder)}&:before{content:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><rect width="256" height="256" fill="none"/><circle cx="112" cy="112" r="80" fill="none" stroke="%23737373" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="168.57" y1="168.57" x2="224" y2="224" fill="none" stroke="%23737373" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>');display:block;width:24px;height:24px;position:absolute;left:12px;top:50%;transform:translateY(-50%)}}.bf-search-bar-iframe-backdrop{display:block;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#d9d9d905;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.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)}`;
563
+ const styles = '.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:64px;max-height:64px}.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)}';
563
564
  function getDefaultExportFromCjs(x) {
564
565
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
565
566
  }
@@ -1587,7 +1588,6 @@ class WidgetState {
1587
1588
  }
1588
1589
  }
1589
1590
  const MOBILE_BREAKPOINT = 576;
1590
- const TABLET_BREAKPOINT = 768;
1591
1591
  const DESKTOP_BREAKPOINT = 962;
1592
1592
  function createElementWithClass(tagName, className, attributes = {}) {
1593
1593
  const element = document.createElement(tagName);
@@ -1598,6 +1598,7 @@ function createElementWithClass(tagName, className, attributes = {}) {
1598
1598
  return element;
1599
1599
  }
1600
1600
  const SEARCH_BAR_SELECTOR = "brainfish-search-widget";
1601
+ const SEARCH_BAR_INLINE_MIN_HEIGHT = 200;
1601
1602
  class WidgetDOMController {
1602
1603
  constructor(widgetType) {
1603
1604
  __publicField(this, "button", null);
@@ -1609,7 +1610,8 @@ class WidgetDOMController {
1609
1610
  this.closeCallback = callback;
1610
1611
  }
1611
1612
  get containerClass() {
1612
- return this.widgetType === WidgetType.Searchbar ? SEARCH_BAR_IFRAME_CONTAINER_CLASS : IFRAME_CONTAINER_CLASS;
1613
+ const baseClass = this.widgetType === WidgetType.Searchbar ? SEARCH_BAR_IFRAME_CONTAINER_CLASS : IFRAME_CONTAINER_CLASS;
1614
+ return baseClass;
1613
1615
  }
1614
1616
  get container() {
1615
1617
  return document.querySelector(
@@ -1645,13 +1647,15 @@ class WidgetDOMController {
1645
1647
  (_b = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _b.postMessage({ type: "NEW_CONVERSATION" }, "*");
1646
1648
  }
1647
1649
  (_c = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _c.postMessage({ type: "FOCUS_SEARCH_FIELD" }, "*");
1648
- iframeContainer == null ? void 0 : iframeContainer.classList.add("open");
1649
- if (options.position) {
1650
- iframeContainer == null ? void 0 : iframeContainer.classList.add(`position-${options.position}`);
1651
- iframeContainer == null ? void 0 : iframeContainer.setAttribute("data-current-position", options.position);
1650
+ if (this.widgetType !== WidgetType.Searchbar) {
1651
+ iframeContainer == null ? void 0 : iframeContainer.classList.add("open");
1652
+ if (options.position) {
1653
+ iframeContainer == null ? void 0 : iframeContainer.classList.add(`position-${options.position}`);
1654
+ iframeContainer == null ? void 0 : iframeContainer.setAttribute("data-current-position", options.position);
1655
+ }
1652
1656
  }
1653
1657
  iframeContainer == null ? void 0 : iframeContainer.setAttribute("aria-hidden", "false");
1654
- if (document.body.clientWidth >= DESKTOP_BREAKPOINT && this.widgetType === WidgetType.Searchbar && this.backdrop === null) {
1658
+ if (this.widgetType !== WidgetType.Searchbar && document.body.clientWidth >= DESKTOP_BREAKPOINT && this.backdrop === null) {
1655
1659
  const backdrop = createElementWithClass(
1656
1660
  "div",
1657
1661
  SEARCH_BAR_IFRAME_BACKDROP_CLASS
@@ -1736,34 +1740,14 @@ class WidgetDOMController {
1736
1740
  (_a = this.button) == null ? void 0 : _a.classList.add("hidden");
1737
1741
  }
1738
1742
  resizeContainer(height) {
1739
- var _a, _b;
1740
1743
  if (this.widgetType !== WidgetType.Searchbar) {
1741
1744
  return;
1742
1745
  }
1743
1746
  if (!this.container || !this.iframe) return;
1744
- if (window.innerWidth < TABLET_BREAKPOINT) {
1745
- this.container.style.removeProperty("height");
1746
- this.iframe.style.removeProperty("height");
1747
- return;
1748
- }
1749
- if (document.body.clientWidth <= DESKTOP_BREAKPOINT) {
1750
- this.container.style.removeProperty("height");
1751
- } else {
1752
- this.container.style.height = `${height}px`;
1753
- }
1754
- this.iframe.style.height = `${height}px`;
1755
- if (height === 0) {
1756
- const message = { type: "CONSTRAINED_HEIGHT", height };
1757
- (_a = this.iframe.contentWindow) == null ? void 0 : _a.postMessage(message, "*");
1758
- return;
1759
- }
1760
- const maxHeight = window.innerHeight * 0.7;
1761
- if (height > maxHeight) {
1762
- this.container.style.height = `${maxHeight}px`;
1763
- this.iframe.style.height = `${maxHeight}px`;
1764
- const message = { type: "CONSTRAINED_HEIGHT", height: maxHeight };
1765
- (_b = this.iframe.contentWindow) == null ? void 0 : _b.postMessage(message, "*");
1766
- }
1747
+ const minHeight = SEARCH_BAR_INLINE_MIN_HEIGHT;
1748
+ const finalHeight = Math.max(height, minHeight);
1749
+ this.container.style.height = `${finalHeight}px`;
1750
+ this.iframe.style.height = `${finalHeight}px`;
1767
1751
  }
1768
1752
  isMobile() {
1769
1753
  return document.body.clientWidth <= MOBILE_BREAKPOINT;
@@ -1773,6 +1757,29 @@ class WidgetDOMController {
1773
1757
  this.button.addEventListener("click", callback);
1774
1758
  }
1775
1759
  }
1760
+ /**
1761
+ * Check if widget DOM exists for a given widget key and config
1762
+ * Used to verify widget initialization after route changes
1763
+ */
1764
+ static isWidgetDOMExisting(widgetKey, config) {
1765
+ const searchBarContainer = document.querySelector(
1766
+ `.${SEARCH_BAR_IFRAME_CONTAINER_CLASS}[data-widget-key="${widgetKey}"]`
1767
+ );
1768
+ if (searchBarContainer) {
1769
+ const searchWidget = document.querySelector("brainfish-search-widget");
1770
+ if (searchWidget) {
1771
+ return searchWidget.contains(searchBarContainer);
1772
+ }
1773
+ return true;
1774
+ }
1775
+ const buttonWidget = document.getElementById(`trigger-button-${widgetKey}`);
1776
+ if (buttonWidget) return true;
1777
+ if (config.widgetType !== "Search") {
1778
+ const iframeContainer = document.querySelector(`.${IFRAME_CONTAINER_CLASS}`);
1779
+ if (iframeContainer) return true;
1780
+ }
1781
+ return false;
1782
+ }
1776
1783
  }
1777
1784
  class WidgetRegistry {
1778
1785
  static register(widgetKey, instance) {
@@ -1909,6 +1916,7 @@ class WidgetGlobalAPI {
1909
1916
  if ((_a = window.Brainfish) == null ? void 0 : _a.Widgets) {
1910
1917
  window.Brainfish.Widgets.open = (options) => this.openCurrentlyClosedPopupWidget(options, true);
1911
1918
  window.Brainfish.Widgets.close = () => this.closeCurrentlyOpenWidget();
1919
+ window.Brainfish.Widgets.createNewThread = () => this.createNewThread();
1912
1920
  window.Brainfish.Widgets.openModalForm = openModalForm;
1913
1921
  window.Brainfish.Widgets.onContextHelp = (question, options) => this.openContextualHelp(question, options);
1914
1922
  }
@@ -1938,6 +1946,22 @@ class WidgetGlobalAPI {
1938
1946
  closedPopupInstance.openWidget(openOptions);
1939
1947
  }
1940
1948
  }
1949
+ static createNewThread() {
1950
+ var _a;
1951
+ const openInstance = WidgetRegistry.getOpenInstance();
1952
+ if (openInstance) {
1953
+ const containerClass = openInstance.widgetType === WidgetType.Searchbar ? SEARCH_BAR_IFRAME_CONTAINER_CLASS : IFRAME_CONTAINER_CLASS;
1954
+ const selector = openInstance.widgetType === WidgetType.Searchbar ? `.${containerClass}[data-widget-key="${openInstance.widgetKey}"]` : `.${containerClass}`;
1955
+ const iframeContainer = document.querySelector(selector);
1956
+ const iframe = iframeContainer == null ? void 0 : iframeContainer.querySelector("iframe");
1957
+ (_a = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _a.postMessage({ type: "NEW_CONVERSATION" }, "*");
1958
+ return;
1959
+ }
1960
+ const closedPopupInstance = WidgetRegistry.getClosedPopupInstance();
1961
+ if (closedPopupInstance) {
1962
+ closedPopupInstance.openWidget({ newConversation: true });
1963
+ }
1964
+ }
1941
1965
  static openContextualHelp(question, widgetOpenOptions = {}) {
1942
1966
  if (!question || typeof question !== "string" || question.trim().length === 0) {
1943
1967
  console.warn(
@@ -2124,7 +2148,7 @@ function createTriggerButton(widgetKey, triggerButtonIcon) {
2124
2148
  <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256" class="close-icon">
2125
2149
  <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>
2126
2150
  </svg>
2127
- <img src="${triggerButtonIcon}" class="fish-icon visible" alt="Trigger button icon" height="32" width="32" aria-hidden="true" aria-label="help button icon" />
2151
+ <img src="${triggerButtonIcon}" class="fish-icon visible" alt="Trigger button icon" aria-hidden="true" aria-label="help button icon" />
2128
2152
  `;
2129
2153
  }
2130
2154
  button.setAttribute("aria-label", "Open Brainfish widget");
@@ -2139,7 +2163,7 @@ function createIframeContainer({ widgetUrl, widgetType, props }) {
2139
2163
  __spreadValues({
2140
2164
  id: containerClass,
2141
2165
  "aria-live": "polite",
2142
- "aria-hidden": "true"
2166
+ "aria-hidden": widgetType === WidgetType.Searchbar ? "false" : "true"
2143
2167
  }, props || {})
2144
2168
  );
2145
2169
  const loadingIndicator = createElementWithClass("div", "iframe-loading-indicator");
@@ -2440,59 +2464,44 @@ const initWidgetButton = ({ config, widgetUrl, apiHost, widgetHost, widgetKey, h
2440
2464
  handleInitializationError$1(apiHost, error, widgetKey);
2441
2465
  }
2442
2466
  };
2443
- function createSearchTrigger({ widgetKey, settings }) {
2444
- var _a;
2445
- const searchBar = document.querySelector(SEARCH_BAR_SELECTOR);
2446
- if (!searchBar) return void 0;
2447
- const computedStyle = searchBar.computedStyleMap();
2448
- const isAbsolutePositioned = ((_a = computedStyle.get("position")) == null ? void 0 : _a.toString()) === "absolute";
2449
- if (isAbsolutePositioned) {
2450
- const width = searchBar.offsetWidth;
2451
- const height = searchBar.offsetHeight;
2452
- if (width === 0 || height === 0) {
2453
- console.warn("Brainfish: Search bar is absolute positioned but has no width or height");
2454
- return void 0;
2455
- }
2456
- if (width < 200 || height < 30) {
2457
- console.warn("Brainfish: Search bar is too small");
2458
- return void 0;
2459
- }
2460
- }
2461
- const trigger = createElementWithClass("div", "search-trigger");
2462
- searchBar.appendChild(trigger);
2463
- trigger.setAttribute("data-widget-key", widgetKey);
2464
- trigger.setAttribute("tabindex", "0");
2465
- const placeholderText = (settings == null ? void 0 : settings.placeholder) || "Ask your question here...";
2466
- trigger.setAttribute("data-placeholder", placeholderText);
2467
- trigger.setAttribute("aria-label", `${placeholderText} - Click to open search`);
2468
- trigger.setAttribute("role", "button");
2469
- trigger.setAttribute("aria-expanded", "false");
2470
- trigger.setAttribute("aria-haspopup", "dialog");
2471
- return trigger;
2472
- }
2473
2467
  function handleInitializationError(apiHost, error, widgetKey) {
2474
2468
  sendBrainfishWidgetError(apiHost, error, error.message, widgetKey);
2475
2469
  }
2476
- function isSearchBarExisting(widgetKey) {
2477
- return !!document.querySelector(`.${SEARCH_BAR_IFRAME_CONTAINER_CLASS}[data-widget-key="${widgetKey}"]`);
2478
- }
2479
2470
  const initSearchBar = ({ config, widgetUrl, apiHost, widgetHost, widgetKey }) => {
2471
+ var _a, _b, _c;
2480
2472
  const { settings } = config;
2481
2473
  let stateManager = IframeStateManager.getInstance(widgetKey);
2482
2474
  const controller = new AbortController();
2483
- const searchBar = createSearchTrigger({ widgetKey, settings });
2484
- if (!searchBar) return void 0;
2485
2475
  insertStylesIfNeeded(config);
2486
2476
  try {
2487
- if (!isSearchBarExisting(widgetKey)) {
2477
+ const existingContainer = document.querySelector(`.${SEARCH_BAR_IFRAME_CONTAINER_CLASS}[data-widget-key="${widgetKey}"]`);
2478
+ const searchWidget = document.querySelector(SEARCH_BAR_SELECTOR);
2479
+ if (existingContainer && searchWidget && !searchWidget.contains(existingContainer)) {
2480
+ searchWidget.appendChild(existingContainer);
2481
+ (_a = searchWidget.parentElement) == null ? void 0 : _a.style.setProperty("width", "100%");
2482
+ }
2483
+ if (!stateManager) {
2484
+ stateManager = IframeStateManager.initialize({
2485
+ isButtonHidden: true,
2486
+ widgetType: WidgetType.Searchbar,
2487
+ widgetKey
2488
+ });
2489
+ }
2490
+ const { signal } = controller;
2491
+ const setupIframeListeners = (iframe) => {
2492
+ initColorSchemeListener(iframe, signal);
2493
+ initMessageListener(iframe, {
2494
+ widgetHost,
2495
+ apiHost,
2496
+ widgetKey,
2497
+ widgetType: WidgetType.Searchbar,
2498
+ signal,
2499
+ stateManager
2500
+ });
2501
+ observeColorSchemeChanges(iframe, signal, stateManager);
2502
+ };
2503
+ if (!existingContainer) {
2488
2504
  const fragment = document.createDocumentFragment();
2489
- if (!stateManager) {
2490
- stateManager = IframeStateManager.initialize({
2491
- isButtonHidden: true,
2492
- widgetType: WidgetType.Searchbar,
2493
- widgetKey
2494
- });
2495
- }
2496
2505
  const { iframeContainer, iframe } = createIframeContainer({
2497
2506
  widgetUrl,
2498
2507
  widgetType: WidgetType.Searchbar,
@@ -2501,34 +2510,34 @@ const initSearchBar = ({ config, widgetUrl, apiHost, widgetHost, widgetKey }) =>
2501
2510
  "data-widget-key": widgetKey
2502
2511
  }
2503
2512
  });
2504
- const { signal } = controller;
2505
2513
  iframe.onload = () => {
2506
2514
  setTimeout(() => {
2507
- initColorSchemeListener(iframe, signal);
2508
- initMessageListener(iframe, {
2509
- widgetHost,
2510
- apiHost,
2511
- widgetKey,
2512
- widgetType: WidgetType.Searchbar,
2513
- signal,
2514
- stateManager
2515
- });
2516
- observeColorSchemeChanges(iframe, signal, stateManager);
2515
+ setupIframeListeners(iframe);
2517
2516
  }, 0);
2518
2517
  };
2519
2518
  fragment.appendChild(iframeContainer);
2520
- document.body.appendChild(fragment);
2519
+ if (searchWidget) {
2520
+ searchWidget.appendChild(fragment);
2521
+ (_b = searchWidget.parentElement) == null ? void 0 : _b.style.setProperty("width", "100%");
2522
+ } else {
2523
+ document.body.appendChild(fragment);
2524
+ }
2525
+ } else {
2526
+ const iframe = existingContainer.querySelector("iframe");
2527
+ if (iframe) {
2528
+ if (((_c = iframe.contentDocument) == null ? void 0 : _c.readyState) === "complete") {
2529
+ setTimeout(() => {
2530
+ setupIframeListeners(iframe);
2531
+ }, 0);
2532
+ } else {
2533
+ iframe.onload = () => {
2534
+ setTimeout(() => {
2535
+ setupIframeListeners(iframe);
2536
+ }, 0);
2537
+ };
2538
+ }
2539
+ }
2521
2540
  }
2522
- const displaySearchBar = () => {
2523
- WidgetGlobalAPI.closeCurrentlyOpenWidget();
2524
- stateManager == null ? void 0 : stateManager.openWidget({ newConversation: true });
2525
- };
2526
- searchBar.onclick = () => {
2527
- displaySearchBar();
2528
- };
2529
- searchBar.onfocus = () => {
2530
- displaySearchBar();
2531
- };
2532
2541
  const cleanup = () => {
2533
2542
  controller.abort();
2534
2543
  window.removeEventListener("beforeunload", cleanup);
@@ -2548,11 +2557,13 @@ const initIframeTrigger = (options, config) => {
2548
2557
  const _b = options.overrides || {}, {
2549
2558
  theme: themeOverrides,
2550
2559
  redirectRules,
2551
- regions
2560
+ regions,
2561
+ customCss
2552
2562
  } = _b, settingsOverrides = __objRest(_b, [
2553
2563
  "theme",
2554
2564
  "redirectRules",
2555
- "regions"
2565
+ "regions",
2566
+ "customCss"
2556
2567
  ]);
2557
2568
  const finalTheme = __spreadValues(__spreadValues({}, theme), themeOverrides);
2558
2569
  const finalSettings = __spreadValues(__spreadValues({}, settings), settingsOverrides);
@@ -2569,6 +2580,9 @@ const initIframeTrigger = (options, config) => {
2569
2580
  JSON.stringify(regions)
2570
2581
  );
2571
2582
  }
2583
+ if (customCss) {
2584
+ widgetParams.customCss = base64Encode(customCss);
2585
+ }
2572
2586
  const widgetUrl = `${widgetHost}/?widgetKey=${options.widgetKey}#${new URLSearchParams(widgetParams).toString()}`;
2573
2587
  if (config.widgetType === "Search") {
2574
2588
  initSearchBar({ config, widgetUrl, apiHost, widgetHost, widgetKey: options.widgetKey });
@@ -2809,6 +2823,17 @@ Brainfish.Widgets.init = (options) => __async(null, null, function* () {
2809
2823
  initializationPromises.set(options.widgetKey, initializationPromise);
2810
2824
  }
2811
2825
  yield initializationPromise;
2826
+ if (!WidgetDOMController.isWidgetDOMExisting(options.widgetKey, config)) {
2827
+ initializationPromises.delete(options.widgetKey);
2828
+ const reinitPromise = initializeBrainfish(
2829
+ options,
2830
+ config,
2831
+ apiHost,
2832
+ analyticsApiHost
2833
+ );
2834
+ initializationPromises.set(options.widgetKey, reinitPromise);
2835
+ yield reinitPromise;
2836
+ }
2812
2837
  yield initHandOffs(config);
2813
2838
  Brainfish.Widgets.isReady = true;
2814
2839
  window.dispatchEvent(new Event("onBrainfishReady"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brainfish-ai/widgets-initiator",
3
- "version": "1.19.3",
3
+ "version": "1.20.1",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -1,13 +0,0 @@
1
- import { Config } from "@brainfish-ai/widgets-common";
2
- /**
3
- * Transform existing DOM element (identified by SEARCH_BAR_SELECTOR) into interactive search bar.
4
- *
5
- * Why: Enable widget integration with existing site search bars.
6
- *
7
- * Input: widgetKey (string), settings (Config['settings'])
8
- * Output: Enhanced DOM element with widget attributes or undefined if no element is found
9
- */
10
- export declare function createSearchTrigger({ widgetKey, settings }: {
11
- widgetKey: string;
12
- settings: Config['settings'];
13
- }): HTMLDivElement | undefined;