@brainfish-ai/widgets-initiator 1.16.0 → 1.18.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 +191 -25
- package/dist/types/initIframeTrigger/managers/AnalyticsTracker.d.ts +1 -1
- package/dist/types/initIframeTrigger/managers/IframeStateManager.d.ts +2 -0
- package/dist/types/initIframeTrigger/managers/WidgetDOMController.d.ts +2 -0
- package/dist/types/initIframeTrigger/managers/WidgetGlobalAPI.d.ts +6 -1
- package/dist/types/initIframeTrigger/managers/WidgetRegistry.d.ts +1 -0
- package/dist/types/types/brainfish.d.ts +1 -0
- package/dist/types/utils/brainfishQueue.d.ts +1 -0
- package/dist/web.cjs.js +1 -1
- package/dist/web.js +125 -26
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,46 +1,191 @@
|
|
|
1
1
|
# Brainfish In-App Widget
|
|
2
2
|
|
|
3
|
-
This package provides a simple way to integrate a Brainfish in-app widget in your website or web application. It supports
|
|
3
|
+
This package provides a simple way to integrate a Brainfish in-app widget in your website or web application. It supports popup widgets with contextual help functionality.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install @
|
|
8
|
+
npm install @brainfish-ai/web-widget
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
### Directly in your HTML
|
|
12
12
|
|
|
13
|
-
|
|
14
13
|
```html
|
|
15
14
|
<script type="module">
|
|
16
15
|
import Brainfish from "https://cdn.jsdelivr.net/npm/@brainfish-ai/web-widget@latest/dist/web.js"
|
|
17
16
|
Brainfish.Widgets.init({ widgetKey: "your-key" });
|
|
18
17
|
</script>
|
|
18
|
+
```
|
|
19
19
|
|
|
20
|
+
## Popup Widget
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
The popup widget provides a floating button that opens a search interface in a modal overlay.
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
### Basic Usage
|
|
24
25
|
|
|
26
|
+
```html
|
|
27
|
+
<!-- The widget will automatically create a floating button -->
|
|
25
28
|
<script>
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
Brainfish.Widgets.init({
|
|
30
|
+
widgetKey: "your-widget-key",
|
|
31
|
+
environment: "production" // or "staging", "local"
|
|
32
|
+
});
|
|
33
|
+
</script>
|
|
34
|
+
```
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
window.addEventListener('onBrainfishHelpWidgetClosed', yourClosedHandlerFunction, { signal });
|
|
36
|
+
### Widget Control API
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
```javascript
|
|
39
|
+
// Open the widget
|
|
40
|
+
Brainfish.Widgets.open();
|
|
41
|
+
|
|
42
|
+
// Close the widget
|
|
43
|
+
Brainfish.Widgets.close();
|
|
44
|
+
|
|
45
|
+
// Check if widget is ready
|
|
46
|
+
if (Brainfish.Widgets.isReady) {
|
|
47
|
+
// Widget is ready to use
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### User Management
|
|
52
|
+
|
|
53
|
+
```javascript
|
|
54
|
+
// Identify a user
|
|
55
|
+
Brainfish.Widgets.identify({
|
|
56
|
+
name: "John Doe",
|
|
57
|
+
email: "john@example.com",
|
|
58
|
+
userId: "user_123"
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Set secret attributes (for internal use)
|
|
62
|
+
Brainfish.Widgets.setSecretAttributes("internal_data_123");
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Customization with Overrides
|
|
66
|
+
|
|
67
|
+
Customize your widget's appearance and behavior using the `overrides` configuration:
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
Brainfish.Widgets.init({
|
|
71
|
+
widgetKey: "your-widget-key",
|
|
72
|
+
overrides: {
|
|
73
|
+
// Suggested questions that appear when widget opens
|
|
74
|
+
suggestions: [
|
|
75
|
+
'How do I reset my password?',
|
|
76
|
+
'How do I contact support?',
|
|
77
|
+
'What are your pricing plans?'
|
|
78
|
+
],
|
|
79
|
+
|
|
80
|
+
// Theme customization
|
|
81
|
+
theme: {
|
|
82
|
+
inputButtonBgColor: '#3b82f6',
|
|
83
|
+
inputButtonColor: '#ffffff'
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
// Widget settings
|
|
87
|
+
panelTitle: 'Help Center',
|
|
88
|
+
placeholder: 'Ask a question...',
|
|
89
|
+
|
|
90
|
+
// Action buttons
|
|
91
|
+
bodyActionButtons: [
|
|
92
|
+
{
|
|
93
|
+
icon: 'Calendar',
|
|
94
|
+
type: 'link',
|
|
95
|
+
label: 'Book a Demo',
|
|
96
|
+
value: 'https://calendly.com/your-company'
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**📚 For complete customization options, see:**
|
|
104
|
+
- [**Overrides Guide**](./docs/OVERRIDES_GUIDE.md) - Complete documentation with examples
|
|
105
|
+
- [**Quick Reference**](./docs/QUICK_REFERENCE.md) - Fast lookup for common configurations
|
|
106
|
+
|
|
107
|
+
### Contextual Help Feature
|
|
108
|
+
|
|
109
|
+
The contextual help feature allows you to open the widget with a pre-filled question based on user interaction.
|
|
110
|
+
|
|
111
|
+
```javascript
|
|
112
|
+
// Trigger contextual help with a specific question
|
|
113
|
+
Brainfish.Widgets.onContextHelp("How do I reset my password?");
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
#### Implementation Examples
|
|
117
|
+
|
|
118
|
+
**HTML with Help Icons:**
|
|
119
|
+
```html
|
|
120
|
+
<div class="form-field">
|
|
121
|
+
<label>Email Address</label>
|
|
122
|
+
<input type="email" value="user@example.com">
|
|
123
|
+
<button class="help-icon" data-question="How do I change my email address?">
|
|
124
|
+
<i class="ph ph-question"></i>
|
|
125
|
+
</button>
|
|
126
|
+
</div>
|
|
37
127
|
|
|
38
128
|
<script>
|
|
39
|
-
|
|
40
|
-
|
|
129
|
+
// Add event listeners to help icons
|
|
130
|
+
document.querySelectorAll('.help-icon').forEach(icon => {
|
|
131
|
+
icon.addEventListener('click', (e) => {
|
|
132
|
+
const question = e.target.dataset.question;
|
|
133
|
+
Brainfish.Widgets.onContextHelp(question);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
41
136
|
</script>
|
|
42
137
|
```
|
|
43
138
|
|
|
139
|
+
**Direct Button Integration:**
|
|
140
|
+
```html
|
|
141
|
+
<button onclick="Brainfish.Widgets.onContextHelp('How do I reset my password?')">
|
|
142
|
+
Reset Password
|
|
143
|
+
</button>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Programmatic Usage:**
|
|
147
|
+
```javascript
|
|
148
|
+
function showHelp(question) {
|
|
149
|
+
Brainfish.Widgets.onContextHelp(question);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Usage
|
|
153
|
+
showHelp("How do I update my profile?");
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Event Listeners
|
|
157
|
+
|
|
158
|
+
The widget emits events when it opens and closes. You can listen to these events:
|
|
159
|
+
|
|
160
|
+
```javascript
|
|
161
|
+
// Set up the abort controller
|
|
162
|
+
const controller = new AbortController();
|
|
163
|
+
const { signal } = controller;
|
|
164
|
+
|
|
165
|
+
// Listen for widget events
|
|
166
|
+
window.addEventListener('onBrainfishWidgetOpen', (event) => {
|
|
167
|
+
console.log('Widget opened');
|
|
168
|
+
// Your custom logic here
|
|
169
|
+
}, { signal });
|
|
170
|
+
|
|
171
|
+
window.addEventListener('onBrainfishWidgetClose', (event) => {
|
|
172
|
+
console.log('Widget closed');
|
|
173
|
+
// Your custom logic here
|
|
174
|
+
}, { signal });
|
|
175
|
+
|
|
176
|
+
// Clean up event listeners when no longer needed
|
|
177
|
+
controller.abort();
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Analytics Events
|
|
181
|
+
|
|
182
|
+
The widget automatically tracks analytics events:
|
|
183
|
+
|
|
184
|
+
- **Open Widget** - When the widget is opened
|
|
185
|
+
- **Open Widget - Contextual Help** - When opened via contextual help
|
|
186
|
+
- **Open Widget - Custom Trigger** - When opened with custom trigger
|
|
187
|
+
- **Close Widget** - When the widget is closed
|
|
188
|
+
|
|
44
189
|
## Build
|
|
45
190
|
|
|
46
191
|
Run the following command to build the widget:
|
|
@@ -51,8 +196,6 @@ yarn build:web-widget
|
|
|
51
196
|
|
|
52
197
|
## Testing locally
|
|
53
198
|
|
|
54
|
-
To test the widget locally, you can use the following command:
|
|
55
|
-
|
|
56
199
|
### Start the local server
|
|
57
200
|
|
|
58
201
|
```bash
|
|
@@ -60,20 +203,43 @@ cd packages/web-widget
|
|
|
60
203
|
npx serve ./ -p 8000 -C
|
|
61
204
|
```
|
|
62
205
|
|
|
63
|
-
###
|
|
206
|
+
### Open the Playground
|
|
207
|
+
|
|
208
|
+
The playground provides a comprehensive testing environment for the Brainfish widget:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
open http://localhost:8000/playground/index.html
|
|
212
|
+
```
|
|
64
213
|
|
|
65
|
-
|
|
214
|
+
The playground includes:
|
|
215
|
+
- **Widget Configuration** - Set environment, API key, and widget settings
|
|
216
|
+
- **Contextual Help Testing** - Test the new contextual help feature with sample questions
|
|
217
|
+
- **Real-world Demo** - See how customers would implement contextual help in their apps
|
|
218
|
+
- **API Testing** - Test all widget methods and functionality
|
|
219
|
+
- **Live Logs** - Monitor widget events and debugging information
|
|
66
220
|
|
|
67
|
-
|
|
221
|
+
### Test Different Environments
|
|
68
222
|
|
|
223
|
+
You can test the widget in different environments by passing the `env` parameter:
|
|
69
224
|
|
|
70
225
|
```bash
|
|
71
|
-
|
|
226
|
+
# Local environment
|
|
227
|
+
open http://localhost:8000/playground/index.html?env=local
|
|
228
|
+
|
|
229
|
+
# Staging environment
|
|
230
|
+
open http://localhost:8000/playground/index.html?env=staging
|
|
231
|
+
|
|
232
|
+
# Production environment
|
|
233
|
+
open http://localhost:8000/playground/index.html?env=prod
|
|
72
234
|
```
|
|
73
235
|
|
|
74
|
-
|
|
236
|
+
### Agent Widget Development
|
|
237
|
+
|
|
238
|
+
If you want to test with the agent widget (Next.js app), start it locally:
|
|
75
239
|
|
|
76
240
|
```bash
|
|
77
|
-
cd packages/
|
|
78
|
-
|
|
241
|
+
cd packages/agent-widget
|
|
242
|
+
npm run dev
|
|
79
243
|
```
|
|
244
|
+
|
|
245
|
+
This will run the agent widget on port 3000, which the playground will automatically connect to in local development mode.
|
|
@@ -7,7 +7,7 @@ export declare class AnalyticsTracker {
|
|
|
7
7
|
private widgetType;
|
|
8
8
|
private widgetKey;
|
|
9
9
|
constructor(widgetType: WidgetType, widgetKey: string);
|
|
10
|
-
trackOpenWidget(trigger?: string): void;
|
|
10
|
+
trackOpenWidget(trigger?: string, contextualQuestion?: string): void;
|
|
11
11
|
trackCloseWidget(): void;
|
|
12
12
|
trackCustomEvent(eventName: string, data?: Record<string, any>): void;
|
|
13
13
|
private dispatchEvent;
|
|
@@ -19,6 +19,8 @@ export declare class IframeStateManager implements IWidgetInstance {
|
|
|
19
19
|
openWidget(options?: {
|
|
20
20
|
newConversation?: boolean;
|
|
21
21
|
trigger?: string;
|
|
22
|
+
contextualQuestion?: string;
|
|
23
|
+
position?: string;
|
|
22
24
|
}): void;
|
|
23
25
|
closeWidget(): void;
|
|
24
26
|
showTriggerButton(): void;
|
|
@@ -17,6 +17,8 @@ export declare class WidgetDOMController {
|
|
|
17
17
|
setElements(button?: HTMLElement, icon?: HTMLElement): void;
|
|
18
18
|
openWidget(options?: {
|
|
19
19
|
newConversation?: boolean;
|
|
20
|
+
contextualQuestion?: string;
|
|
21
|
+
position?: string;
|
|
20
22
|
}): void;
|
|
21
23
|
focusNextElement(): void;
|
|
22
24
|
closeWidget(): void;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export type WidgetOpenOptions = {
|
|
2
|
+
trigger?: string;
|
|
3
|
+
position?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
|
|
4
|
+
};
|
|
1
5
|
/**
|
|
2
6
|
* Manages global API methods on the window object
|
|
3
7
|
* Single responsibility: Setup and manage global widget API
|
|
@@ -8,5 +12,6 @@ export declare class WidgetGlobalAPI {
|
|
|
8
12
|
private static setupDeprecatedAPI;
|
|
9
13
|
private static setupNewAPI;
|
|
10
14
|
static closeCurrentlyOpenWidget(): void;
|
|
11
|
-
static openCurrentlyClosedPopupWidget(
|
|
15
|
+
static openCurrentlyClosedPopupWidget(optionsOrTrigger?: WidgetOpenOptions | string, isNewApiCall?: boolean): void;
|
|
16
|
+
static openContextualHelp(question: string): void;
|
|
12
17
|
}
|
|
@@ -16,6 +16,7 @@ export type Brainfish = {
|
|
|
16
16
|
close: () => void;
|
|
17
17
|
openModalForm: ({ formUrl, width, height }: ModalFormProps) => void;
|
|
18
18
|
registerClientActionHandler: (key: string, handler: ClientActionHandler) => void;
|
|
19
|
+
onContextHelp: (question: string) => void;
|
|
19
20
|
};
|
|
20
21
|
SearchWidget: {
|
|
21
22
|
initStandard: (config: Config) => void;
|
|
@@ -22,6 +22,7 @@ export interface BrainfishQueue extends Brainfish {
|
|
|
22
22
|
close: () => void;
|
|
23
23
|
openModalForm: ({ formUrl, width, height }: ModalFormProps) => void;
|
|
24
24
|
registerClientActionHandler: (key: string, handler: ClientActionHandler) => void;
|
|
25
|
+
onContextHelp: (question: string) => void;
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
28
|
export declare function createBrainfishQueue(): BrainfishQueue;
|
package/dist/web.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=Object.defineProperty,t=Object.defineProperties,n=Object.getOwnPropertyDescriptors,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]="cfd978f7-b8ab-4ea6-beb8-a1db4595860d",e._sentryDebugIdIdentifier="sentry-dbid-cfd978f7-b8ab-4ea6-beb8-a1db4595860d")}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 h,g,b,m;("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"f585e17b8719b028c0ea8b039114e4dd1d5c9fdd"},(g=h||(h={})).Sidebar="sidebar",g.Searchbar="searchbar",g.Popup="popup",h.Sidebar,h.Searchbar,h.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.16.0. ${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",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 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 S=new Set,E=(e,t)=>c(null,null,function*(){const n=C(e.overrides);try{if(S.has(e.widgetKey))return;const r=yield k({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===h.Searchbar||"Search"===t.widgetType?e.SearchWidget.initStandard(t):e.HelpWidget.initPopup(t)}(i,o),S.add(e.widgetKey),i}}catch(r){w(n,r,r.message,e.widgetKey)}});let T=!1;const _=(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)})();window.BrainfishAnalytics("init",{apiUrl:r,accessKey:t,trackScreenViews:!0,trackAttributes:!l,trackOutgoingLinks:!l,enableRecording:!l&&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 A(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 W,I={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,H={exports:{}};function L(){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}(H,H.exports)),H.exports}var F,K,$,z={exports:{}};function N(){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}(z,z.exports)),z.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 h=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:h}}var g=c.exec(t);if(g)return{red:parseInt(""+g[1],10),green:parseInt(""+g[2],10),blue:parseInt(""+g[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 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)+")",A=c.exec(_);if(!A)throw new i.default(4,t,_);return{red:parseInt(""+A[1],10),green:parseInt(""+A[2],10),blue:parseInt(""+A[3],10),alpha:parseFloat(""+k[4])>1?parseFloat(""+k[4])/100:parseFloat(""+k[4])}}throw new i.default(5)};var n=o(M()),r=o(L()),i=o(N());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}(I,I.exports)),I.exports}const D=O(q());var U,J={exports:{}},Y={exports:{}};function G(){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,V={exports:{}};function X(){return Z||(Z=1,e=V,(t=V.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),V.exports;var e,t}var Q,ee,te={exports:{}},ne={exports:{}};function re(){return Q||(Q=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,he={exports:{}};function ge(){return ue||(ue=1,e=he,(t=he.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),he.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(ge());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(N());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(N());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,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(ge()),i=o(N());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 Ae(){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,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(ke()),i=o(N());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,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(ke()),o=s(Ae()),a=s(N());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(G()),r=a(X()),i=a(ie()),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 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 Ie=O(We());var Be,Pe={exports:{}};function Me(){return Be||(Be=1,function(e,t){t.__esModule=!0,t.default=void 0;var n=a(G()),r=a(X()),i=a(ie()),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 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=O(Me()),He="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 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}.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{display:none;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}.bf-iframe-container.open,.bf-search-bar-iframe-container.open{display:block;opacity:1;transform:translateY(0);pointer-events:auto;top:env(safe-area-inset-top);left:0}@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-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: ${r?Ie(.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 ze{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 Ne(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===h.Searchbar?Fe:He}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;const r=document.querySelector(`.${this.containerClass}`),i=null==r?void 0:r.querySelector("iframe");if(e.newConversation&&(null==(t=null==i?void 0:i.contentWindow)||t.postMessage({type:"NEW_CONVERSATION"},"*")),null==(n=null==i?void 0:i.contentWindow)||n.postMessage({type:"FOCUS_SEARCH_FIELD"},"*"),null==r||r.classList.add("open"),null==r||r.setAttribute("aria-hidden","false"),document.body.clientWidth>=962&&this.widgetType===h.Searchbar&&null===this.backdrop){const e=Ne("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=document.querySelector(`.${this.containerClass}`);null==e||e.classList.remove("open"),null==e||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!==h.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 r=.7*window.innerHeight;if(e>r){this.container.style.height=`${r}px`,this.iframe.style.height=`${r}px`;const e={type:"CONSTRAINED_HEIGHT",height:r};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===h.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=()=>this.openCurrentlyClosedPopupWidget(),window.Brainfish.Widgets.close=()=>this.closeCurrentlyOpenWidget(),window.Brainfish.Widgets.openModalForm=Ue)}static closeCurrentlyOpenWidget(){const e=De.getOpenInstance();e&&e.closeWidget()}static openCurrentlyClosedPopupWidget(e){const t=De.getClosedPopupInstance();if(t){const n=e?{newConversation:!0,trigger:e}:{};t.openWidget(n)}}}d(Je,"isInitialized",!1);class Ye{constructor(e,t){this.widgetType=e,this.widgetKey=t}trackOpenWidget(e){this.dispatchEvent("onBrainfishWidgetOpen"),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 h.Searchbar:n="searchbar_widget";break;case h.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 ze(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)}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 r=t===h.Searchbar?Fe:He,i=Ne("div",r,s({id:r,"aria-live":"polite","aria-hidden":"true"},n||{})),o=Ne("div","iframe-loading-indicator"),a=Ne("div","spinner");o.setAttribute("aria-label","Loading content"),o.setAttribute("role","status"),o.appendChild(a),i.appendChild(o);const l=Ne("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=Ne("div","loading-error");o.appendChild(t),o.setAttribute("aria-label","Failed to load content")}),i.appendChild(l),{iframeContainer:i,iframe:l}}function Ve(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 Xe=new Map,Qe=(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(Xe.has(e)){const i=Xe.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:Qe(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(`.${He}`);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,s={action:e,searchQueryId:t};if(!["function","callback"].includes(e.type))return void console.error("Invalid action type",e);if(window.__bfCallbacks=window.__bfCallbacks||{},window.__bfCallbacks[e.id])return void window.__bfCallbacks[e.id](o,a,s);const l=`${n}/api/searchWidgets.callback.codeblocks?apiKey=${r}&codeblockId=${e.id}`,d=document.createElement("script");d.src=l,document.head.appendChild(d),d.onload=()=>{window.__bfCallbacks[e.id](o,a,s),setTimeout(()=>{document.head.removeChild(d)},300)}}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=Ge.initialize({isButtonHidden:n,widgetType:h.Popup,widgetKey:e});else{const{button:t,icon:n}=function(e,t){const n=Ne("button",Le,{id:`trigger-button-${e}`,"aria-controls":He,"aria-expanded":"false","data-name":Le}),r=Ne("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" 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(r),{button:n,icon:r}}(e,r);i.appendChild(t),o=Ge.initialize({button:t,icon:n,widgetType:h.Popup,widgetKey:e})}const{iframeContainer:a,iframe:s}=Ze({widgetUrl:t,widgetType:h.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(()=>{Ve(a,u),tt(a,{widgetHost:r,apiHost:n,widgetKey:i,widgetType:h.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})=>{const{settings:o}=e;let a=Ge.getInstance(i);const s=new AbortController,l=function({widgetKey:e,settings:t}){var n;const r=document.querySelector(Re);if(!r)return;if("absolute"===(null==(n=r.computedStyleMap().get("position"))?void 0:n.toString())){const e=r.offsetWidth,t=r.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 i=Ne("div","search-trigger");r.appendChild(i),i.setAttribute("data-widget-key",e),i.setAttribute("tabindex","0");const o=(null==t?void 0:t.placeholder)||"Ask your question here...";return i.setAttribute("data-placeholder",o),i.setAttribute("aria-label",`${o} - Click to open search`),i.setAttribute("role","button"),i.setAttribute("aria-expanded","false"),i.setAttribute("aria-haspopup","dialog"),i}({widgetKey:i,settings:o});if(l){$e(e);try{if(!function(e){return!!document.querySelector(`.${Fe}[data-widget-key="${e}"]`)}(i)){const e=document.createDocumentFragment();a||(a=Ge.initialize({isButtonHidden:!0,widgetType:h.Searchbar,widgetKey:i}));const{iframeContainer:o,iframe:l}=Ze({widgetUrl:t,widgetType:h.Searchbar,props:{"data-widget-type":"searchbar","data-widget-key":i}}),{signal:d}=s;l.onload=()=>{setTimeout(()=>{Ve(l,d),tt(l,{widgetHost:r,apiHost:n,widgetKey:i,widgetType:h.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,i)}}},st=(e,t)=>{var n,r,i,o;const a=C(e.overrides),s=(null==(l=e.overrides)?void 0:l.widgetHost)||"https://agent.brainfi.sh";var l;const d=null==(n=e.overrides)?void 0:n.hideTriggerButton,{theme:c,settings:u}=t,f=A(JSON.stringify(null==(r=e.overrides)?void 0:r.redirectRules)),p={theme:A(JSON.stringify(c)),settings:A(JSON.stringify(u)),redirectRules:f};(null==(i=e.overrides)?void 0:i.regions)&&(p.regions=A(JSON.stringify(null==(o=e.overrides)?void 0:o.regions)));const h=`${s}/?widgetKey=${e.widgetKey}#${new URLSearchParams(p).toString()}`;"Search"===t.widgetType?at({config:t,widgetUrl:h,apiHost:a,widgetHost:s,widgetKey:e.widgetKey}):ot({config:t,widgetUrl:h,apiHost:a,widgetHost:s,widgetKey:e.widgetKey,hideTriggerButton:d})};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===h.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,ht,gt=!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}),gt||(pt=history.pushState,ht=history.replaceState,history.pushState=function(...e){pt.apply(this,e),setTimeout(r,0)},history.replaceState=function(...e){ht.apply(this,e),setTimeout(r,0)},gt=!0),t.addEventListener("abort",()=>{gt&&(history.pushState=pt,history.replaceState=ht,gt=!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",[]),openModalForm:({formUrl:e,width:t,height:r})=>n("Widgets.openModalForm",[{formUrl:e,width:t,height:r}]),registerClientActionHandler:(...e)=>n("Widgets.registerClientActionHandler",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;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);o||(o=function(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(_(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)})}(e,i,t,n),wt.set(e.widgetKey,o)),yield o,yield dt(i),yt.Widgets.isReady=!0,window.dispatchEvent(new Event("onBrainfishReady"))}),yt.Widgets.registerClientActionHandler=(e,t)=>{((e,t)=>{Xe.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,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]="b7357460-084b-497c-970b-69d989dcc1f1",e._sentryDebugIdIdentifier="sentry-dbid-b7357460-084b-497c-970b-69d989dcc1f1")}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:"e5b71c4a266ee2a6707b572c059742146b10be17"},(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.18.1. ${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 O=(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)})();window.BrainfishAnalytics("init",{apiUrl:i,accessKey:t,trackScreenViews:!0,trackAttributes:!l,trackOutgoingLinks:!l,enableRecording:!l&&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 _(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 A(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var W,I={exports:{}},B={exports:{}},P={exports:{}};function M(){return W||(W=1,function(e,t){function n(e){return Math.round(255*e)}function i(e,t,i){return n(e)+","+n(t)+","+n(i)}t.__esModule=!0,t.default=void 0,t.default=function(e,t,n,r){if(void 0===r&&(r=i),0===t)return r(n,n,n);var o=(e%360+360)%360/60,a=(1-Math.abs(2*n-1))*t,s=a*(1-Math.abs(o%2-1)),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 j,H={exports:{}};function L(){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}(H,H.exports)),H.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,O="rgb("+(0,n.default)(S,E,T)+")",_=c.exec(O);if(!_)throw new r.default(4,t,O);return{red:parseInt(""+_[1],10),green:parseInt(""+_[2],10),blue:parseInt(""+_[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}(I,I.exports)),I.exports}const D=A(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,Oe={exports:{}};function _e(){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}(Oe,Oe.exports)),Oe.exports}function Ae(){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(_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(G()),i=a(V()),r=a(re()),o=a(Ae());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 Ie=A(We());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(Ae());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 je=A(Me()),He="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?Ie(.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 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:He}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=>this.openContextualHelp(e))}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){if(!e||"string"!=typeof e||0===e.trim().length)return void console.warn("Brainfish.Widgets.onContextHelp: Invalid question provided");let t=De.getOpenInstance();if(t||(t=De.getClosedPopupInstance()),!t)return void console.warn("Brainfish.Widgets.onContextHelp: No popup widget available");const n={newConversation:!0,trigger:"contextual-help",contextualQuestion:e.trim()};t.openWidget(n)}}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:He,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(`.${He}`);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,s={action:e,searchQueryId:t};if(!["function","callback"].includes(e.type))return void console.error("Invalid action type",e);if(window.__bfCallbacks=window.__bfCallbacks||{},window.__bfCallbacks[e.id])return void window.__bfCallbacks[e.id](o,a,s);const l=`${n}/api/searchWidgets.callback.codeblocks?apiKey=${i}&codeblockId=${e.id}`,d=document.createElement("script");d.src=l,document.head.appendChild(d),d.onload=()=>{window.__bfCallbacks[e.id](o,a,s),setTimeout(()=>{document.head.removeChild(d)},300)}}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":He,"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=g?s(s({},u),g):u,w=Object.keys(m).length>0?s(s({},f),m):f,v=_(JSON.stringify(h)),x={theme:_(JSON.stringify(y)),settings:_(JSON.stringify(w)),redirectRules:v};b&&(x.regions=_(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(O(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;
|
|
2
2
|
//# sourceMappingURL=web.cjs.js.map
|
package/dist/web.js
CHANGED
|
@@ -17,6 +17,18 @@ var __spreadValues = (a, b) => {
|
|
|
17
17
|
return a;
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __objRest = (source, exclude) => {
|
|
21
|
+
var target = {};
|
|
22
|
+
for (var prop in source)
|
|
23
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
+
target[prop] = source[prop];
|
|
25
|
+
if (source != null && __getOwnPropSymbols)
|
|
26
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
+
target[prop] = source[prop];
|
|
29
|
+
}
|
|
30
|
+
return target;
|
|
31
|
+
};
|
|
20
32
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
21
33
|
var __async = (__this, __arguments, generator) => {
|
|
22
34
|
return new Promise((resolve, reject) => {
|
|
@@ -42,7 +54,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
42
54
|
!function() {
|
|
43
55
|
try {
|
|
44
56
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
45
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
57
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "3f1ea7f6-5fa5-47ae-a4fb-66d2c11b61c2", e._sentryDebugIdIdentifier = "sentry-dbid-3f1ea7f6-5fa5-47ae-a4fb-66d2c11b61c2");
|
|
46
58
|
} catch (e2) {
|
|
47
59
|
}
|
|
48
60
|
}();
|
|
@@ -113,7 +125,7 @@ function decodeProtectedHeader(token) {
|
|
|
113
125
|
}
|
|
114
126
|
}
|
|
115
127
|
var _global = typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : {};
|
|
116
|
-
_global.SENTRY_RELEASE = { id: "
|
|
128
|
+
_global.SENTRY_RELEASE = { id: "e5b71c4a266ee2a6707b572c059742146b10be17" };
|
|
117
129
|
var WidgetType;
|
|
118
130
|
(function(WidgetType2) {
|
|
119
131
|
WidgetType2["Sidebar"] = "sidebar";
|
|
@@ -171,7 +183,7 @@ const sendErrors = (apiHost, error, widgetKey) => {
|
|
|
171
183
|
"api-key": widgetKey
|
|
172
184
|
},
|
|
173
185
|
body: JSON.stringify({
|
|
174
|
-
error: `WebWidgetVersion: ${"1.
|
|
186
|
+
error: `WebWidgetVersion: ${"1.18.1"}. ${error.message}`,
|
|
175
187
|
stack: error.stack,
|
|
176
188
|
cause: {
|
|
177
189
|
message: errorData.message,
|
|
@@ -483,6 +495,7 @@ function createBrainfishQueue() {
|
|
|
483
495
|
close: () => queueOrExecute("Widgets.close", []),
|
|
484
496
|
openModalForm: ({ formUrl, width, height }) => queueOrExecute("Widgets.openModalForm", [{ formUrl, width, height }]),
|
|
485
497
|
registerClientActionHandler: (...args) => queueOrExecute("Widgets.registerClientActionHandler", args),
|
|
498
|
+
onContextHelp: (...args) => queueOrExecute("Widgets.onContextHelp", args),
|
|
486
499
|
isReady: false
|
|
487
500
|
},
|
|
488
501
|
SearchWidget: {
|
|
@@ -544,7 +557,7 @@ const base64Decode = (text) => {
|
|
|
544
557
|
}
|
|
545
558
|
throw new Error("[utils.base64Decode]: Unsupported environment");
|
|
546
559
|
};
|
|
547
|
-
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{
|
|
560
|
+
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)}`;
|
|
548
561
|
function getDefaultExportFromCjs(x) {
|
|
549
562
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
550
563
|
}
|
|
@@ -1615,14 +1628,26 @@ class WidgetDOMController {
|
|
|
1615
1628
|
this.icon = icon || null;
|
|
1616
1629
|
}
|
|
1617
1630
|
openWidget(options = {}) {
|
|
1618
|
-
var _a, _b;
|
|
1631
|
+
var _a, _b, _c;
|
|
1619
1632
|
const iframeContainer = document.querySelector(`.${this.containerClass}`);
|
|
1620
1633
|
const iframe = iframeContainer == null ? void 0 : iframeContainer.querySelector("iframe");
|
|
1621
|
-
if (options.newConversation) {
|
|
1622
|
-
(_a = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _a.postMessage(
|
|
1634
|
+
if (options.newConversation && options.contextualQuestion) {
|
|
1635
|
+
(_a = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _a.postMessage(
|
|
1636
|
+
{
|
|
1637
|
+
type: "CONTEXTUAL_QUESTION",
|
|
1638
|
+
question: options.contextualQuestion
|
|
1639
|
+
},
|
|
1640
|
+
"*"
|
|
1641
|
+
);
|
|
1642
|
+
} else if (options.newConversation) {
|
|
1643
|
+
(_b = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _b.postMessage({ type: "NEW_CONVERSATION" }, "*");
|
|
1623
1644
|
}
|
|
1624
|
-
(
|
|
1645
|
+
(_c = iframe == null ? void 0 : iframe.contentWindow) == null ? void 0 : _c.postMessage({ type: "FOCUS_SEARCH_FIELD" }, "*");
|
|
1625
1646
|
iframeContainer == null ? void 0 : iframeContainer.classList.add("open");
|
|
1647
|
+
if (options.position) {
|
|
1648
|
+
iframeContainer == null ? void 0 : iframeContainer.classList.add(`position-${options.position}`);
|
|
1649
|
+
iframeContainer == null ? void 0 : iframeContainer.setAttribute("data-current-position", options.position);
|
|
1650
|
+
}
|
|
1626
1651
|
iframeContainer == null ? void 0 : iframeContainer.setAttribute("aria-hidden", "false");
|
|
1627
1652
|
if (document.body.clientWidth >= DESKTOP_BREAKPOINT && this.widgetType === WidgetType.Searchbar && this.backdrop === null) {
|
|
1628
1653
|
const backdrop = createElementWithClass(
|
|
@@ -1656,9 +1681,22 @@ class WidgetDOMController {
|
|
|
1656
1681
|
}
|
|
1657
1682
|
}
|
|
1658
1683
|
closeWidget() {
|
|
1659
|
-
const iframeContainer =
|
|
1660
|
-
|
|
1661
|
-
|
|
1684
|
+
const iframeContainer = this.container;
|
|
1685
|
+
if (!iframeContainer) return;
|
|
1686
|
+
const position = iframeContainer.dataset.currentPosition;
|
|
1687
|
+
if (position) {
|
|
1688
|
+
const handleTransitionEnd = () => {
|
|
1689
|
+
if (iframeContainer.dataset.currentPosition === position) {
|
|
1690
|
+
iframeContainer.classList.remove(`position-${position}`);
|
|
1691
|
+
delete iframeContainer.dataset.currentPosition;
|
|
1692
|
+
}
|
|
1693
|
+
};
|
|
1694
|
+
iframeContainer.addEventListener("transitionend", handleTransitionEnd, {
|
|
1695
|
+
once: true
|
|
1696
|
+
});
|
|
1697
|
+
}
|
|
1698
|
+
iframeContainer.classList.remove("open");
|
|
1699
|
+
iframeContainer.setAttribute("aria-hidden", "true");
|
|
1662
1700
|
if (this.backdrop) {
|
|
1663
1701
|
this.backdrop.remove();
|
|
1664
1702
|
this.focusNextElement();
|
|
@@ -1867,9 +1905,10 @@ class WidgetGlobalAPI {
|
|
|
1867
1905
|
static setupNewAPI() {
|
|
1868
1906
|
var _a;
|
|
1869
1907
|
if ((_a = window.Brainfish) == null ? void 0 : _a.Widgets) {
|
|
1870
|
-
window.Brainfish.Widgets.open = () => this.openCurrentlyClosedPopupWidget();
|
|
1908
|
+
window.Brainfish.Widgets.open = (options) => this.openCurrentlyClosedPopupWidget(options, true);
|
|
1871
1909
|
window.Brainfish.Widgets.close = () => this.closeCurrentlyOpenWidget();
|
|
1872
1910
|
window.Brainfish.Widgets.openModalForm = openModalForm;
|
|
1911
|
+
window.Brainfish.Widgets.onContextHelp = (question) => this.openContextualHelp(question);
|
|
1873
1912
|
}
|
|
1874
1913
|
}
|
|
1875
1914
|
static closeCurrentlyOpenWidget() {
|
|
@@ -1878,13 +1917,49 @@ class WidgetGlobalAPI {
|
|
|
1878
1917
|
openInstance.closeWidget();
|
|
1879
1918
|
}
|
|
1880
1919
|
}
|
|
1881
|
-
static openCurrentlyClosedPopupWidget(
|
|
1920
|
+
static openCurrentlyClosedPopupWidget(optionsOrTrigger, isNewApiCall) {
|
|
1882
1921
|
const closedPopupInstance = WidgetRegistry.getClosedPopupInstance();
|
|
1883
1922
|
if (closedPopupInstance) {
|
|
1884
|
-
const
|
|
1885
|
-
|
|
1923
|
+
const isString = typeof optionsOrTrigger === "string";
|
|
1924
|
+
const options = isString ? { trigger: optionsOrTrigger } : optionsOrTrigger;
|
|
1925
|
+
const openOptions = {};
|
|
1926
|
+
if (isNewApiCall) {
|
|
1927
|
+
openOptions.newConversation = true;
|
|
1928
|
+
}
|
|
1929
|
+
if (options == null ? void 0 : options.trigger) {
|
|
1930
|
+
openOptions.newConversation = true;
|
|
1931
|
+
openOptions.trigger = options.trigger;
|
|
1932
|
+
}
|
|
1933
|
+
if (options == null ? void 0 : options.position) {
|
|
1934
|
+
openOptions.position = options.position;
|
|
1935
|
+
}
|
|
1936
|
+
closedPopupInstance.openWidget(openOptions);
|
|
1886
1937
|
}
|
|
1887
1938
|
}
|
|
1939
|
+
static openContextualHelp(question) {
|
|
1940
|
+
if (!question || typeof question !== "string" || question.trim().length === 0) {
|
|
1941
|
+
console.warn(
|
|
1942
|
+
"Brainfish.Widgets.onContextHelp: Invalid question provided"
|
|
1943
|
+
);
|
|
1944
|
+
return;
|
|
1945
|
+
}
|
|
1946
|
+
let widgetInstance = WidgetRegistry.getOpenInstance();
|
|
1947
|
+
if (!widgetInstance) {
|
|
1948
|
+
widgetInstance = WidgetRegistry.getClosedPopupInstance();
|
|
1949
|
+
}
|
|
1950
|
+
if (!widgetInstance) {
|
|
1951
|
+
console.warn(
|
|
1952
|
+
"Brainfish.Widgets.onContextHelp: No popup widget available"
|
|
1953
|
+
);
|
|
1954
|
+
return;
|
|
1955
|
+
}
|
|
1956
|
+
const options = {
|
|
1957
|
+
newConversation: true,
|
|
1958
|
+
trigger: "contextual-help",
|
|
1959
|
+
contextualQuestion: question.trim()
|
|
1960
|
+
};
|
|
1961
|
+
widgetInstance.openWidget(options);
|
|
1962
|
+
}
|
|
1888
1963
|
}
|
|
1889
1964
|
__publicField(WidgetGlobalAPI, "isInitialized", false);
|
|
1890
1965
|
class AnalyticsTracker {
|
|
@@ -1892,9 +1967,14 @@ class AnalyticsTracker {
|
|
|
1892
1967
|
this.widgetType = widgetType;
|
|
1893
1968
|
this.widgetKey = widgetKey;
|
|
1894
1969
|
}
|
|
1895
|
-
trackOpenWidget(trigger) {
|
|
1970
|
+
trackOpenWidget(trigger, contextualQuestion) {
|
|
1896
1971
|
this.dispatchEvent("onBrainfishWidgetOpen");
|
|
1897
|
-
if (trigger) {
|
|
1972
|
+
if (trigger === "contextual-help") {
|
|
1973
|
+
this.trackAnalytics("Open Widget - Contextual Help", {
|
|
1974
|
+
trigger,
|
|
1975
|
+
question: contextualQuestion
|
|
1976
|
+
});
|
|
1977
|
+
} else if (trigger) {
|
|
1898
1978
|
this.trackAnalytics("Open Widget - Custom Trigger", { trigger });
|
|
1899
1979
|
} else {
|
|
1900
1980
|
this.trackAnalytics("Open Widget");
|
|
@@ -1964,7 +2044,9 @@ class IframeStateManager {
|
|
|
1964
2044
|
isButtonHidden
|
|
1965
2045
|
}) {
|
|
1966
2046
|
this.domController.setElements(button, icon);
|
|
1967
|
-
this.domController.setupButtonClickListener(
|
|
2047
|
+
this.domController.setupButtonClickListener(
|
|
2048
|
+
() => this.toggleIframeVisibility()
|
|
2049
|
+
);
|
|
1968
2050
|
WidgetRegistry.register(this.widgetKey, this);
|
|
1969
2051
|
WidgetGlobalAPI.initialize();
|
|
1970
2052
|
}
|
|
@@ -1980,7 +2062,10 @@ class IframeStateManager {
|
|
|
1980
2062
|
openWidget(options = {}) {
|
|
1981
2063
|
this.state.openWidget();
|
|
1982
2064
|
this.domController.openWidget(options);
|
|
1983
|
-
this.analyticsTracker.trackOpenWidget(
|
|
2065
|
+
this.analyticsTracker.trackOpenWidget(
|
|
2066
|
+
options.trigger,
|
|
2067
|
+
options.contextualQuestion
|
|
2068
|
+
);
|
|
1984
2069
|
}
|
|
1985
2070
|
// Close the widget programmatically
|
|
1986
2071
|
closeWidget() {
|
|
@@ -2005,7 +2090,10 @@ class IframeStateManager {
|
|
|
2005
2090
|
WidgetRegistry.unregister(this.widgetKey);
|
|
2006
2091
|
}
|
|
2007
2092
|
static initialize(options) {
|
|
2008
|
-
const instance = new IframeStateManager(
|
|
2093
|
+
const instance = new IframeStateManager(
|
|
2094
|
+
options.widgetKey,
|
|
2095
|
+
options.widgetType
|
|
2096
|
+
);
|
|
2009
2097
|
instance.initialize(options);
|
|
2010
2098
|
return instance;
|
|
2011
2099
|
}
|
|
@@ -2430,22 +2518,33 @@ const initSearchBar = ({ config, widgetUrl, apiHost, widgetHost, widgetKey }) =>
|
|
|
2430
2518
|
}
|
|
2431
2519
|
};
|
|
2432
2520
|
const initIframeTrigger = (options, config) => {
|
|
2433
|
-
var _a
|
|
2521
|
+
var _a;
|
|
2434
2522
|
const apiHost = getApiHost(options.overrides);
|
|
2435
2523
|
const widgetHost = getWidgetHost(options.overrides);
|
|
2436
2524
|
const hideTriggerButton = (_a = options.overrides) == null ? void 0 : _a.hideTriggerButton;
|
|
2437
2525
|
const { theme, settings } = config;
|
|
2526
|
+
const _b = options.overrides || {}, {
|
|
2527
|
+
theme: overrideTheme,
|
|
2528
|
+
redirectRules,
|
|
2529
|
+
regions
|
|
2530
|
+
} = _b, settingsOverrides = __objRest(_b, [
|
|
2531
|
+
"theme",
|
|
2532
|
+
"redirectRules",
|
|
2533
|
+
"regions"
|
|
2534
|
+
]);
|
|
2535
|
+
const finalTheme = overrideTheme ? __spreadValues(__spreadValues({}, theme), overrideTheme) : theme;
|
|
2536
|
+
const finalSettings = Object.keys(settingsOverrides).length > 0 ? __spreadValues(__spreadValues({}, settings), settingsOverrides) : settings;
|
|
2438
2537
|
const encodedRules = base64Encode(
|
|
2439
|
-
JSON.stringify(
|
|
2538
|
+
JSON.stringify(redirectRules)
|
|
2440
2539
|
);
|
|
2441
2540
|
const widgetParams = {
|
|
2442
|
-
theme: base64Encode(JSON.stringify(
|
|
2443
|
-
settings: base64Encode(JSON.stringify(
|
|
2541
|
+
theme: base64Encode(JSON.stringify(finalTheme)),
|
|
2542
|
+
settings: base64Encode(JSON.stringify(finalSettings)),
|
|
2444
2543
|
redirectRules: encodedRules
|
|
2445
2544
|
};
|
|
2446
|
-
if (
|
|
2545
|
+
if (regions) {
|
|
2447
2546
|
widgetParams.regions = base64Encode(
|
|
2448
|
-
JSON.stringify(
|
|
2547
|
+
JSON.stringify(regions)
|
|
2449
2548
|
);
|
|
2450
2549
|
}
|
|
2451
2550
|
const widgetUrl = `${widgetHost}/?widgetKey=${options.widgetKey}#${new URLSearchParams(widgetParams).toString()}`;
|