@wix/web5-core 1.63.42 → 1.63.44
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/dist/cjs/client/applyThemeOverrides.js +41 -9
- package/dist/cjs/client/applyThemeOverrides.js.map +1 -1
- package/dist/cjs/client/themeDebug.js +15 -6
- package/dist/cjs/client/themeDebug.js.map +1 -1
- package/dist/cjs/components/ui/AiDisclosure.js +17 -19
- package/dist/cjs/components/ui/AiDisclosure.js.map +1 -1
- package/dist/cjs/components/ui/SearchSection.js +44 -36
- package/dist/cjs/components/ui/SearchSection.js.map +1 -1
- package/dist/cjs/index.js +21 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/assistant.js +58 -0
- package/dist/cjs/lib/assistant.js.map +1 -0
- package/dist/cjs/theme/themeScheme.js +375 -0
- package/dist/cjs/theme/themeScheme.js.map +1 -0
- package/dist/cjs/theme/tokenContract.js +8 -1
- package/dist/cjs/theme/tokenContract.js.map +1 -1
- package/dist/esm/client/applyThemeOverrides.js +42 -10
- package/dist/esm/client/applyThemeOverrides.js.map +1 -1
- package/dist/esm/client/themeDebug.js +15 -6
- package/dist/esm/client/themeDebug.js.map +1 -1
- package/dist/esm/components/ui/AiDisclosure.js +7 -8
- package/dist/esm/components/ui/AiDisclosure.js.map +1 -1
- package/dist/esm/components/ui/SearchSection.js +10 -1
- package/dist/esm/components/ui/SearchSection.js.map +1 -1
- package/dist/esm/index.js +4 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/assistant.js +52 -0
- package/dist/esm/lib/assistant.js.map +1 -0
- package/dist/esm/theme/themeScheme.js +372 -0
- package/dist/esm/theme/themeScheme.js.map +1 -0
- package/dist/esm/theme/tokenContract.js +7 -0
- package/dist/esm/theme/tokenContract.js.map +1 -1
- package/dist/types/client/applyThemeOverrides.d.ts +1 -1
- package/dist/types/client/applyThemeOverrides.d.ts.map +1 -1
- package/dist/types/client/themeDebug.d.ts +2 -2
- package/dist/types/client/themeDebug.d.ts.map +1 -1
- package/dist/types/components/ui/AiDisclosure.d.ts +7 -5
- package/dist/types/components/ui/AiDisclosure.d.ts.map +1 -1
- package/dist/types/components/ui/SearchSection.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lib/assistant.d.ts +39 -0
- package/dist/types/lib/assistant.d.ts.map +1 -0
- package/dist/types/theme/themeScheme.d.ts +79 -0
- package/dist/types/theme/themeScheme.d.ts.map +1 -0
- package/dist/types/theme/tokenContract.d.ts +6 -0
- package/dist/types/theme/tokenContract.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -6,9 +6,17 @@ exports.SearchSection = void 0;
|
|
|
6
6
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _utils = require("../../lib/utils");
|
|
9
|
+
var _assistant = require("../../lib/assistant");
|
|
9
10
|
var _linkTypes = require("../../types/link-types");
|
|
10
11
|
var _jsxFileName = "/home/builduser/work/c2b6ca0b3fa984ee/packages/web5-core/dist/cjs/components/ui/SearchSection.tsx";
|
|
11
12
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
|
+
/**
|
|
14
|
+
* Fallback for a bare `<SearchSection />` — the product default with no store
|
|
15
|
+
* name to resolve against, so "Ask AI...". Hosts that know the store (the
|
|
16
|
+
* full-page app, the embed widget) resolve the token themselves and pass the
|
|
17
|
+
* branded string in; this only covers the component used on its own.
|
|
18
|
+
*/
|
|
19
|
+
const UNBRANDED_PLACEHOLDER = (0, _assistant.resolveAssistantPlaceholder)(_assistant.DEFAULT_PROMPT_PLACEHOLDER);
|
|
12
20
|
const ArrowDownIcon = () => /*#__PURE__*/_react.default.createElement("svg", {
|
|
13
21
|
xmlns: "http://www.w3.org/2000/svg",
|
|
14
22
|
width: "24",
|
|
@@ -23,7 +31,7 @@ const ArrowDownIcon = () => /*#__PURE__*/_react.default.createElement("svg", {
|
|
|
23
31
|
__self: void 0,
|
|
24
32
|
__source: {
|
|
25
33
|
fileName: _jsxFileName,
|
|
26
|
-
lineNumber:
|
|
34
|
+
lineNumber: 65,
|
|
27
35
|
columnNumber: 3
|
|
28
36
|
}
|
|
29
37
|
}, /*#__PURE__*/_react.default.createElement("path", {
|
|
@@ -31,7 +39,7 @@ const ArrowDownIcon = () => /*#__PURE__*/_react.default.createElement("svg", {
|
|
|
31
39
|
__self: void 0,
|
|
32
40
|
__source: {
|
|
33
41
|
fileName: _jsxFileName,
|
|
34
|
-
lineNumber:
|
|
42
|
+
lineNumber: 77,
|
|
35
43
|
columnNumber: 5
|
|
36
44
|
}
|
|
37
45
|
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
@@ -39,7 +47,7 @@ const ArrowDownIcon = () => /*#__PURE__*/_react.default.createElement("svg", {
|
|
|
39
47
|
__self: void 0,
|
|
40
48
|
__source: {
|
|
41
49
|
fileName: _jsxFileName,
|
|
42
|
-
lineNumber:
|
|
50
|
+
lineNumber: 78,
|
|
43
51
|
columnNumber: 5
|
|
44
52
|
}
|
|
45
53
|
}));
|
|
@@ -55,7 +63,7 @@ const MicrophoneIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
55
63
|
__self: void 0,
|
|
56
64
|
__source: {
|
|
57
65
|
fileName: _jsxFileName,
|
|
58
|
-
lineNumber:
|
|
66
|
+
lineNumber: 83,
|
|
59
67
|
columnNumber: 3
|
|
60
68
|
}
|
|
61
69
|
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
@@ -63,7 +71,7 @@ const MicrophoneIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
63
71
|
__self: void 0,
|
|
64
72
|
__source: {
|
|
65
73
|
fileName: _jsxFileName,
|
|
66
|
-
lineNumber:
|
|
74
|
+
lineNumber: 93,
|
|
67
75
|
columnNumber: 5
|
|
68
76
|
}
|
|
69
77
|
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
@@ -75,7 +83,7 @@ const MicrophoneIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
75
83
|
__self: void 0,
|
|
76
84
|
__source: {
|
|
77
85
|
fileName: _jsxFileName,
|
|
78
|
-
lineNumber:
|
|
86
|
+
lineNumber: 94,
|
|
79
87
|
columnNumber: 5
|
|
80
88
|
}
|
|
81
89
|
}));
|
|
@@ -94,7 +102,7 @@ const ArrowRightIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
94
102
|
__self: void 0,
|
|
95
103
|
__source: {
|
|
96
104
|
fileName: _jsxFileName,
|
|
97
|
-
lineNumber:
|
|
105
|
+
lineNumber: 105,
|
|
98
106
|
columnNumber: 3
|
|
99
107
|
}
|
|
100
108
|
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
@@ -102,7 +110,7 @@ const ArrowRightIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
102
110
|
__self: void 0,
|
|
103
111
|
__source: {
|
|
104
112
|
fileName: _jsxFileName,
|
|
105
|
-
lineNumber:
|
|
113
|
+
lineNumber: 118,
|
|
106
114
|
columnNumber: 5
|
|
107
115
|
}
|
|
108
116
|
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
@@ -110,7 +118,7 @@ const ArrowRightIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
110
118
|
__self: void 0,
|
|
111
119
|
__source: {
|
|
112
120
|
fileName: _jsxFileName,
|
|
113
|
-
lineNumber:
|
|
121
|
+
lineNumber: 119,
|
|
114
122
|
columnNumber: 5
|
|
115
123
|
}
|
|
116
124
|
}));
|
|
@@ -125,7 +133,7 @@ const PromptSendIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
125
133
|
__self: void 0,
|
|
126
134
|
__source: {
|
|
127
135
|
fileName: _jsxFileName,
|
|
128
|
-
lineNumber:
|
|
136
|
+
lineNumber: 124,
|
|
129
137
|
columnNumber: 3
|
|
130
138
|
}
|
|
131
139
|
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
@@ -134,13 +142,13 @@ const PromptSendIcon = props => /*#__PURE__*/_react.default.createElement("svg",
|
|
|
134
142
|
__self: void 0,
|
|
135
143
|
__source: {
|
|
136
144
|
fileName: _jsxFileName,
|
|
137
|
-
lineNumber:
|
|
145
|
+
lineNumber: 133,
|
|
138
146
|
columnNumber: 5
|
|
139
147
|
}
|
|
140
148
|
}));
|
|
141
149
|
const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef)(function SearchSection({
|
|
142
150
|
onSubmit,
|
|
143
|
-
placeholder =
|
|
151
|
+
placeholder = UNBRANDED_PLACEHOLDER,
|
|
144
152
|
submitLabel,
|
|
145
153
|
collapsedLabel,
|
|
146
154
|
onCollapsedChange,
|
|
@@ -287,7 +295,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
287
295
|
__self: this,
|
|
288
296
|
__source: {
|
|
289
297
|
fileName: _jsxFileName,
|
|
290
|
-
lineNumber:
|
|
298
|
+
lineNumber: 321,
|
|
291
299
|
columnNumber: 7
|
|
292
300
|
}
|
|
293
301
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -296,14 +304,14 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
296
304
|
__self: this,
|
|
297
305
|
__source: {
|
|
298
306
|
fileName: _jsxFileName,
|
|
299
|
-
lineNumber:
|
|
307
|
+
lineNumber: 327,
|
|
300
308
|
columnNumber: 9
|
|
301
309
|
}
|
|
302
310
|
}, /*#__PURE__*/_react.default.createElement(ArrowDownIcon, {
|
|
303
311
|
__self: this,
|
|
304
312
|
__source: {
|
|
305
313
|
fileName: _jsxFileName,
|
|
306
|
-
lineNumber:
|
|
314
|
+
lineNumber: 328,
|
|
307
315
|
columnNumber: 11
|
|
308
316
|
}
|
|
309
317
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -311,7 +319,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
311
319
|
__self: this,
|
|
312
320
|
__source: {
|
|
313
321
|
fileName: _jsxFileName,
|
|
314
|
-
lineNumber:
|
|
322
|
+
lineNumber: 330,
|
|
315
323
|
columnNumber: 9
|
|
316
324
|
}
|
|
317
325
|
}, progressMessage));
|
|
@@ -323,7 +331,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
323
331
|
__self: this,
|
|
324
332
|
__source: {
|
|
325
333
|
fileName: _jsxFileName,
|
|
326
|
-
lineNumber:
|
|
334
|
+
lineNumber: 338,
|
|
327
335
|
columnNumber: 7
|
|
328
336
|
}
|
|
329
337
|
}, chips.map(chip => /*#__PURE__*/_react.default.createElement("a", {
|
|
@@ -345,7 +353,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
345
353
|
__self: this,
|
|
346
354
|
__source: {
|
|
347
355
|
fileName: _jsxFileName,
|
|
348
|
-
lineNumber:
|
|
356
|
+
lineNumber: 351,
|
|
349
357
|
columnNumber: 11
|
|
350
358
|
}
|
|
351
359
|
}, chip.label, /*#__PURE__*/_react.default.createElement(PromptSendIcon, {
|
|
@@ -354,7 +362,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
354
362
|
__self: this,
|
|
355
363
|
__source: {
|
|
356
364
|
fileName: _jsxFileName,
|
|
357
|
-
lineNumber:
|
|
365
|
+
lineNumber: 367,
|
|
358
366
|
columnNumber: 13
|
|
359
367
|
}
|
|
360
368
|
})))) : null;
|
|
@@ -370,7 +378,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
370
378
|
__self: this,
|
|
371
379
|
__source: {
|
|
372
380
|
fileName: _jsxFileName,
|
|
373
|
-
lineNumber:
|
|
381
|
+
lineNumber: 382,
|
|
374
382
|
columnNumber: 5
|
|
375
383
|
}
|
|
376
384
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -378,7 +386,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
378
386
|
__self: this,
|
|
379
387
|
__source: {
|
|
380
388
|
fileName: _jsxFileName,
|
|
381
|
-
lineNumber:
|
|
389
|
+
lineNumber: 393,
|
|
382
390
|
columnNumber: 7
|
|
383
391
|
}
|
|
384
392
|
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
@@ -391,7 +399,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
391
399
|
__self: this,
|
|
392
400
|
__source: {
|
|
393
401
|
fileName: _jsxFileName,
|
|
394
|
-
lineNumber:
|
|
402
|
+
lineNumber: 394,
|
|
395
403
|
columnNumber: 9
|
|
396
404
|
}
|
|
397
405
|
}, effectiveCollapsedLabel), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -402,7 +410,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
402
410
|
__self: this,
|
|
403
411
|
__source: {
|
|
404
412
|
fileName: _jsxFileName,
|
|
405
|
-
lineNumber:
|
|
413
|
+
lineNumber: 405,
|
|
406
414
|
columnNumber: 9
|
|
407
415
|
}
|
|
408
416
|
}, contextBanner, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -410,7 +418,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
410
418
|
__self: this,
|
|
411
419
|
__source: {
|
|
412
420
|
fileName: _jsxFileName,
|
|
413
|
-
lineNumber:
|
|
421
|
+
lineNumber: 412,
|
|
414
422
|
columnNumber: 11
|
|
415
423
|
}
|
|
416
424
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -418,7 +426,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
418
426
|
__self: this,
|
|
419
427
|
__source: {
|
|
420
428
|
fileName: _jsxFileName,
|
|
421
|
-
lineNumber:
|
|
429
|
+
lineNumber: 413,
|
|
422
430
|
columnNumber: 13
|
|
423
431
|
}
|
|
424
432
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -427,7 +435,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
427
435
|
__self: this,
|
|
428
436
|
__source: {
|
|
429
437
|
fileName: _jsxFileName,
|
|
430
|
-
lineNumber:
|
|
438
|
+
lineNumber: 419,
|
|
431
439
|
columnNumber: 15
|
|
432
440
|
}
|
|
433
441
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -435,7 +443,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
435
443
|
__self: this,
|
|
436
444
|
__source: {
|
|
437
445
|
fileName: _jsxFileName,
|
|
438
|
-
lineNumber:
|
|
446
|
+
lineNumber: 420,
|
|
439
447
|
columnNumber: 17
|
|
440
448
|
}
|
|
441
449
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -443,7 +451,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
443
451
|
__self: this,
|
|
444
452
|
__source: {
|
|
445
453
|
fileName: _jsxFileName,
|
|
446
|
-
lineNumber:
|
|
454
|
+
lineNumber: 421,
|
|
447
455
|
columnNumber: 19
|
|
448
456
|
}
|
|
449
457
|
}, /*#__PURE__*/_react.default.createElement("textarea", {
|
|
@@ -462,7 +470,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
462
470
|
__self: this,
|
|
463
471
|
__source: {
|
|
464
472
|
fileName: _jsxFileName,
|
|
465
|
-
lineNumber:
|
|
473
|
+
lineNumber: 428,
|
|
466
474
|
columnNumber: 21
|
|
467
475
|
}
|
|
468
476
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -470,7 +478,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
470
478
|
__self: this,
|
|
471
479
|
__source: {
|
|
472
480
|
fileName: _jsxFileName,
|
|
473
|
-
lineNumber:
|
|
481
|
+
lineNumber: 443,
|
|
474
482
|
columnNumber: 21
|
|
475
483
|
}
|
|
476
484
|
}, onVoiceInput && /*#__PURE__*/_react.default.createElement("button", {
|
|
@@ -482,14 +490,14 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
482
490
|
__self: this,
|
|
483
491
|
__source: {
|
|
484
492
|
fileName: _jsxFileName,
|
|
485
|
-
lineNumber:
|
|
493
|
+
lineNumber: 445,
|
|
486
494
|
columnNumber: 25
|
|
487
495
|
}
|
|
488
496
|
}, /*#__PURE__*/_react.default.createElement(MicrophoneIcon, {
|
|
489
497
|
__self: this,
|
|
490
498
|
__source: {
|
|
491
499
|
fileName: _jsxFileName,
|
|
492
|
-
lineNumber:
|
|
500
|
+
lineNumber: 452,
|
|
493
501
|
columnNumber: 27
|
|
494
502
|
}
|
|
495
503
|
})), /*#__PURE__*/_react.default.createElement("button", {
|
|
@@ -502,7 +510,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
502
510
|
__self: this,
|
|
503
511
|
__source: {
|
|
504
512
|
fileName: _jsxFileName,
|
|
505
|
-
lineNumber:
|
|
513
|
+
lineNumber: 455,
|
|
506
514
|
columnNumber: 23
|
|
507
515
|
}
|
|
508
516
|
}, submitLabel ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -510,7 +518,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
510
518
|
__self: this,
|
|
511
519
|
__source: {
|
|
512
520
|
fileName: _jsxFileName,
|
|
513
|
-
lineNumber:
|
|
521
|
+
lineNumber: 469,
|
|
514
522
|
columnNumber: 29
|
|
515
523
|
}
|
|
516
524
|
}, submitLabel), /*#__PURE__*/_react.default.createElement(ArrowRightIcon, {
|
|
@@ -519,7 +527,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
519
527
|
__self: this,
|
|
520
528
|
__source: {
|
|
521
529
|
fileName: _jsxFileName,
|
|
522
|
-
lineNumber:
|
|
530
|
+
lineNumber: 472,
|
|
523
531
|
columnNumber: 29
|
|
524
532
|
}
|
|
525
533
|
})) : /*#__PURE__*/_react.default.createElement(PromptSendIcon, {
|
|
@@ -528,7 +536,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
528
536
|
__self: this,
|
|
529
537
|
__source: {
|
|
530
538
|
fileName: _jsxFileName,
|
|
531
|
-
lineNumber:
|
|
539
|
+
lineNumber: 478,
|
|
532
540
|
columnNumber: 27
|
|
533
541
|
}
|
|
534
542
|
})))))), chipsMarkup)))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_linkTypes","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ArrowDownIcon","createElement","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","__self","__source","fileName","lineNumber","columnNumber","d","MicrophoneIcon","props","_extends2","ArrowRightIcon","PromptSendIcon","SearchSection","exports","forwardRef","onSubmit","placeholder","submitLabel","collapsedLabel","onCollapsedChange","chips","chipDisplayMode","chipPosition","onVoiceInput","progressMessage","className","contextBanner","hasContext","canSubmitEmpty","hasContent","isBottomZoneVisible","onChipClick","onFocusChange","ref","inputValue","setInputValue","useState","isFocused","setIsFocused","hasFocusInside","setHasFocusInside","isMultiline","setIsMultiline","isCollapsed","setIsCollapsed","inputRef","useRef","hasExpandedWhileZoneVisibleRef","previouslyFocusedElementRef","showChips","length","effectiveCollapsedLabel","replace","handleSubmit","useCallback","trimmedValue","trim","useLayoutEffect","element","current","computedStyles","window","getComputedStyle","lineHeight","Number","parseFloat","hasValue","style","nextHeight","Math","min","max","scrollHeight","useEffect","hasFocusInsideRef","onFocusChangeRef","focusInput","active","document","activeElement","HTMLElement","body","requestAnimationFrame","_inputRef$current","focus","_inputRef$current2","blurInput","_inputRef$current3","blur","useImperativeHandle","handleKeyDown","key","_inputRef$current4","preventDefault","prev","shiftKey","handleInputChange","target","value","handleInputFocus","relatedTarget","handleContentFocus","handleContentBlur","next","currentTarget","contains","cn","role","canSubmit","chipsMarkup","map","chip","label","href","isWeb5Url","onMouseDown","onClick","_inputRef$current5","tabIndex","handleExpandClick","type","onFocus","onBlur","rows","onChange","onKeyDown","undefined","disabled","Fragment"],"sources":["../../../../src/components/ui/SearchSection.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n useRef,\n useCallback,\n useLayoutEffect,\n} from 'react';\nimport { cn } from '../../lib/utils';\nimport { isWeb5Url } from '../../types/link-types';\n\nexport interface ScrollChip {\n label: string;\n href: string;\n iconHint?: string;\n}\n\nexport interface SearchSectionProps {\n onSubmit?: (value: string) => void;\n placeholder?: string;\n /**\n * When set, the submit control renders as a labeled CTA button (text +\n * right arrow) instead of the icon-only send button. Used by the empty\n * state (e.g. \"Find Your Pair\").\n */\n submitLabel?: string;\n collapsedLabel?: string;\n onCollapsedChange?: (isCollapsed: boolean) => void;\n chips?: ScrollChip[];\n chipDisplayMode?: 'focus' | 'always';\n chipPosition?: 'top' | 'bottom';\n onVoiceInput?: () => void;\n progressMessage?: string;\n className?: string;\n contextBanner?: React.ReactNode;\n hasContext?: boolean;\n canSubmitEmpty?: boolean;\n hasContent?: boolean;\n isBottomZoneVisible?: boolean;\n onChipClick?: (e: React.MouseEvent<HTMLAnchorElement>, href: string) => void;\n onFocusChange?: (focused: boolean) => void;\n}\n\nexport interface SearchSectionHandle {\n focusInput: () => void;\n blurInput: () => void;\n}\n\nconst ArrowDownIcon: React.FC = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M12 5v14\" />\n <path d=\"m19 12-7 7-7-7\" />\n </svg>\n);\n\nconst MicrophoneIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n stroke=\"none\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z\" />\n <path\n d=\"M19 10v2a7 7 0 0 1-14 0v-2M12 19v3\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </svg>\n);\n\nconst ArrowRightIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M5 12h14\" />\n <path d=\"m12 5 7 7-7 7\" />\n </svg>\n);\n\nconst PromptSendIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d=\"M13.0306 7.53114C12.9609 7.60106 12.8781 7.65654 12.787 7.69439C12.6958 7.73224 12.5981 7.75173 12.4993 7.75173C12.4006 7.75173 12.3029 7.73224 12.2117 7.69439C12.1206 7.65654 12.0378 7.60106 11.9681 7.53114L8.74997 4.31301V13.5005C8.74997 13.6994 8.67095 13.8902 8.5303 14.0308C8.38965 14.1715 8.19888 14.2505 7.99997 14.2505C7.80106 14.2505 7.61029 14.1715 7.46964 14.0308C7.32899 13.8902 7.24997 13.6994 7.24997 13.5005V4.31301L4.0306 7.53114C3.8897 7.67203 3.69861 7.75119 3.49935 7.75119C3.30009 7.75119 3.10899 7.67203 2.9681 7.53114C2.8272 7.39024 2.74805 7.19915 2.74805 6.99989C2.74805 6.80063 2.8272 6.60953 2.9681 6.46864L7.4681 1.96864C7.53778 1.89872 7.62057 1.84324 7.71173 1.80539C7.8029 1.76753 7.90064 1.74805 7.99935 1.74805C8.09806 1.74805 8.1958 1.76753 8.28696 1.80539C8.37813 1.84324 8.46092 1.89872 8.5306 1.96864L13.0306 6.46864C13.1005 6.53832 13.156 6.62111 13.1938 6.71227C13.2317 6.80344 13.2512 6.90118 13.2512 6.99989C13.2512 7.0986 13.2317 7.19634 13.1938 7.2875C13.156 7.37867 13.1005 7.46146 13.0306 7.53114Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const SearchSection = forwardRef<\n SearchSectionHandle,\n SearchSectionProps\n>(function SearchSection(\n {\n onSubmit,\n placeholder = 'Talk to us',\n submitLabel,\n collapsedLabel,\n onCollapsedChange,\n chips = [],\n chipDisplayMode = 'focus',\n chipPosition = 'top',\n onVoiceInput,\n progressMessage,\n className = '',\n contextBanner,\n hasContext,\n canSubmitEmpty = false,\n hasContent = false,\n isBottomZoneVisible = false,\n onChipClick,\n onFocusChange,\n },\n ref,\n) {\n const [inputValue, setInputValue] = useState('');\n const [isFocused, setIsFocused] = useState(false);\n const [hasFocusInside, setHasFocusInside] = useState(false);\n const [isMultiline, setIsMultiline] = useState(false);\n const [isCollapsed, setIsCollapsed] = useState(false);\n const inputRef = useRef<HTMLTextAreaElement>(null);\n const hasExpandedWhileZoneVisibleRef = useRef(false);\n const previouslyFocusedElementRef = useRef<HTMLElement | null>(null);\n const showChips =\n chips.length > 0 &&\n !hasContext &&\n (chipDisplayMode === 'always' || hasFocusInside);\n const effectiveCollapsedLabel =\n collapsedLabel ?? placeholder.replace(/\\.\\.\\.$/, '');\n\n const handleSubmit = useCallback(() => {\n const trimmedValue = inputValue.trim();\n if (trimmedValue || canSubmitEmpty) {\n onSubmit?.(trimmedValue);\n setInputValue('');\n }\n }, [canSubmitEmpty, inputValue, onSubmit]);\n\n useLayoutEffect(() => {\n const element = inputRef.current;\n if (!element) {\n return;\n }\n\n const computedStyles = window.getComputedStyle(element);\n const lineHeight = Number.parseFloat(computedStyles.lineHeight) || 32;\n\n const hasValue = inputValue.trim().length > 0;\n element.style.height = 'auto';\n const nextHeight = hasValue\n ? Math.min(Math.max(element.scrollHeight, lineHeight), 175)\n : lineHeight;\n element.style.height = `${nextHeight}px`;\n setIsMultiline(hasValue && nextHeight > lineHeight);\n }, [inputValue]);\n\n useEffect(() => {\n if (progressMessage || !hasContent) {\n setIsCollapsed(false);\n hasExpandedWhileZoneVisibleRef.current = false;\n return;\n }\n\n if (!isBottomZoneVisible) {\n hasExpandedWhileZoneVisibleRef.current = false;\n setIsCollapsed(false);\n return;\n }\n\n if (!hasExpandedWhileZoneVisibleRef.current) {\n setIsCollapsed(true);\n }\n }, [hasContent, isBottomZoneVisible, progressMessage]);\n\n useEffect(() => {\n onCollapsedChange?.(isCollapsed);\n }, [isCollapsed, onCollapsedChange]);\n\n const hasFocusInsideRef = useRef(hasFocusInside);\n hasFocusInsideRef.current = hasFocusInside;\n const onFocusChangeRef = useRef(onFocusChange);\n onFocusChangeRef.current = onFocusChange;\n\n useEffect(() => {\n onFocusChange?.(hasFocusInside);\n }, [hasFocusInside, onFocusChange]);\n\n useEffect(() => {\n return () => {\n if (hasFocusInsideRef.current) {\n onFocusChangeRef.current?.(false);\n }\n };\n }, []);\n\n const focusInput = useCallback(() => {\n const active = document.activeElement;\n if (\n active instanceof HTMLElement &&\n active !== inputRef.current &&\n active !== document.body\n ) {\n previouslyFocusedElementRef.current = active;\n }\n if (isCollapsed) {\n hasExpandedWhileZoneVisibleRef.current = true;\n setIsCollapsed(false);\n window.requestAnimationFrame(() => {\n inputRef.current?.focus();\n });\n } else {\n inputRef.current?.focus();\n }\n }, [isCollapsed]);\n\n const blurInput = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focusInput, blurInput }), [\n focusInput,\n blurInput,\n ]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n const prev = previouslyFocusedElementRef.current;\n previouslyFocusedElementRef.current = null;\n inputRef.current?.blur();\n prev?.focus?.();\n return;\n }\n if (\n e.key === 'Enter' &&\n !e.shiftKey &&\n (inputValue.trim() || canSubmitEmpty)\n ) {\n e.preventDefault();\n handleSubmit();\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleInputFocus = (e: React.FocusEvent<HTMLTextAreaElement>) => {\n setIsFocused(true);\n if (\n e.relatedTarget instanceof HTMLElement &&\n e.relatedTarget !== inputRef.current\n ) {\n previouslyFocusedElementRef.current = e.relatedTarget;\n }\n };\n\n const handleContentFocus = () => {\n setHasFocusInside(true);\n };\n\n const handleContentBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n const next = e.relatedTarget as Node | null;\n if (!next || !e.currentTarget.contains(next)) {\n setHasFocusInside(false);\n }\n };\n\n if (progressMessage) {\n return (\n <div\n className={cn('web5-prompt-progress', className)}\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n <div className=\"web5-prompt-progress__indicator\" aria-hidden=\"true\">\n <ArrowDownIcon />\n </div>\n <div className=\"web5-prompt-progress__message\">{progressMessage}</div>\n </div>\n );\n }\n\n const canSubmit = inputValue.trim().length > 0 || canSubmitEmpty;\n const chipsMarkup =\n chips.length > 0 ? (\n <div\n className={cn(\n 'web5-prompt-shell__chips',\n chipPosition === 'bottom'\n ? 'web5-prompt-shell__chips--bottom'\n : 'web5-prompt-shell__chips--top',\n showChips\n ? 'web5-prompt-shell__chips--visible'\n : 'web5-prompt-shell__chips--hidden',\n )}\n aria-hidden={isCollapsed || !showChips}\n >\n {chips.map((chip) => (\n <a\n key={chip.label}\n href={isWeb5Url(chip.href) ? '#' : chip.href}\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.preventDefault();\n onChipClick?.(e, chip.href);\n setInputValue('');\n inputRef.current?.blur();\n }}\n tabIndex={!isCollapsed && showChips ? 0 : -1}\n // `has-custom-focus` opts out of Wix Thunderbolt's global keyboard focus ring\n // so our inset :focus-visible ring isn't overwritten when embedded in a Wix site.\n className=\"web5-prompt-chip has-custom-focus\"\n >\n {chip.label}\n <PromptSendIcon\n aria-hidden=\"true\"\n className=\"web5-prompt-send-icon\"\n />\n </a>\n ))}\n </div>\n ) : null;\n\n const handleExpandClick = () => {\n focusInput();\n };\n\n\n return (\n <div\n className={cn(\n 'web5-prompt-shell',\n isCollapsed && 'web5-prompt-shell--collapsed',\n // Widens the pill while the field or a chip holds focus. Driven by\n // `hasFocusInside` rather than `isFocused` so clicking a chip (which\n // preventDefaults its mousedown) doesn't collapse the width mid-click.\n hasFocusInside && !isCollapsed && 'web5-prompt-shell--focused',\n className,\n )}\n >\n <div className=\"web5-prompt-shell__stage\">\n <button\n type=\"button\"\n className=\"web5-prompt-shell__collapsed-button has-custom-focus\"\n onClick={handleExpandClick}\n aria-label={effectiveCollapsedLabel}\n aria-hidden={!isCollapsed}\n tabIndex={isCollapsed ? 0 : -1}\n >\n {effectiveCollapsedLabel}\n </button>\n\n <div\n className=\"web5-prompt-shell__content\"\n aria-hidden={isCollapsed}\n onFocus={handleContentFocus}\n onBlur={handleContentBlur}\n >\n {contextBanner}\n <div className=\"web5-prompt-shell__panel\">\n <div\n className={cn(\n 'web5-prompt-shell__stack',\n chipPosition === 'top' && 'web5-prompt-shell__stack--chips-top',\n )}\n >\n <div className=\"web5-prompt-search\" role=\"search\">\n <div className=\"web5-prompt-search__inner\">\n <div\n className={cn(\n 'web5-prompt-field',\n isFocused && 'web5-prompt-field--focused',\n isMultiline && 'web5-prompt-field--multiline',\n )}\n >\n <textarea\n ref={inputRef}\n rows={1}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={handleInputFocus}\n onBlur={() => setIsFocused(false)}\n placeholder={placeholder}\n aria-label=\"Search or ask a question\"\n aria-keyshortcuts=\"/ Control+K\"\n className=\"web5-prompt-input has-custom-focus placeholder:text-search-input-hint\"\n tabIndex={isCollapsed ? -1 : undefined}\n />\n\n <div className=\"web5-prompt-actions\">\n {onVoiceInput && (\n <button\n type=\"button\"\n onClick={onVoiceInput}\n className=\"web5-prompt-voice\"\n aria-label=\"Voice input\"\n tabIndex={isCollapsed ? -1 : undefined}\n >\n <MicrophoneIcon />\n </button>\n )}\n <button\n type=\"button\"\n onClick={handleSubmit}\n className={cn(\n 'web5-prompt-submit',\n submitLabel && 'web5-prompt-submit--labeled',\n canSubmit && 'web5-prompt-submit--active',\n )}\n aria-label={submitLabel ?? 'Submit'}\n disabled={!canSubmit || isCollapsed}\n tabIndex={isCollapsed ? -1 : undefined}\n >\n {submitLabel ? (\n <>\n <span className=\"web5-prompt-submit__label\">\n {submitLabel}\n </span>\n <ArrowRightIcon\n aria-hidden=\"true\"\n className=\"web5-prompt-send-icon\"\n />\n </>\n ) : (\n <PromptSendIcon\n aria-hidden=\"true\"\n className=\"web5-prompt-send-icon\"\n />\n )}\n </button>\n </div>\n </div>\n </div>\n </div>\n\n {chipsMarkup}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_assistant","_linkTypes","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","UNBRANDED_PLACEHOLDER","resolveAssistantPlaceholder","DEFAULT_PROMPT_PLACEHOLDER","ArrowDownIcon","createElement","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","__self","__source","fileName","lineNumber","columnNumber","d","MicrophoneIcon","props","_extends2","ArrowRightIcon","PromptSendIcon","SearchSection","exports","forwardRef","onSubmit","placeholder","submitLabel","collapsedLabel","onCollapsedChange","chips","chipDisplayMode","chipPosition","onVoiceInput","progressMessage","className","contextBanner","hasContext","canSubmitEmpty","hasContent","isBottomZoneVisible","onChipClick","onFocusChange","ref","inputValue","setInputValue","useState","isFocused","setIsFocused","hasFocusInside","setHasFocusInside","isMultiline","setIsMultiline","isCollapsed","setIsCollapsed","inputRef","useRef","hasExpandedWhileZoneVisibleRef","previouslyFocusedElementRef","showChips","length","effectiveCollapsedLabel","replace","handleSubmit","useCallback","trimmedValue","trim","useLayoutEffect","element","current","computedStyles","window","getComputedStyle","lineHeight","Number","parseFloat","hasValue","style","nextHeight","Math","min","max","scrollHeight","useEffect","hasFocusInsideRef","onFocusChangeRef","focusInput","active","document","activeElement","HTMLElement","body","requestAnimationFrame","_inputRef$current","focus","_inputRef$current2","blurInput","_inputRef$current3","blur","useImperativeHandle","handleKeyDown","key","_inputRef$current4","preventDefault","prev","shiftKey","handleInputChange","target","value","handleInputFocus","relatedTarget","handleContentFocus","handleContentBlur","next","currentTarget","contains","cn","role","canSubmit","chipsMarkup","map","chip","label","href","isWeb5Url","onMouseDown","onClick","_inputRef$current5","tabIndex","handleExpandClick","type","onFocus","onBlur","rows","onChange","onKeyDown","undefined","disabled","Fragment"],"sources":["../../../../src/components/ui/SearchSection.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n useRef,\n useCallback,\n useLayoutEffect,\n} from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n DEFAULT_PROMPT_PLACEHOLDER,\n resolveAssistantPlaceholder,\n} from '../../lib/assistant';\nimport { isWeb5Url } from '../../types/link-types';\n\n/**\n * Fallback for a bare `<SearchSection />` — the product default with no store\n * name to resolve against, so \"Ask AI...\". Hosts that know the store (the\n * full-page app, the embed widget) resolve the token themselves and pass the\n * branded string in; this only covers the component used on its own.\n */\nconst UNBRANDED_PLACEHOLDER = resolveAssistantPlaceholder(\n DEFAULT_PROMPT_PLACEHOLDER,\n);\n\nexport interface ScrollChip {\n label: string;\n href: string;\n iconHint?: string;\n}\n\nexport interface SearchSectionProps {\n onSubmit?: (value: string) => void;\n placeholder?: string;\n /**\n * When set, the submit control renders as a labeled CTA button (text +\n * right arrow) instead of the icon-only send button. Used by the empty\n * state (e.g. \"Find Your Pair\").\n */\n submitLabel?: string;\n collapsedLabel?: string;\n onCollapsedChange?: (isCollapsed: boolean) => void;\n chips?: ScrollChip[];\n chipDisplayMode?: 'focus' | 'always';\n chipPosition?: 'top' | 'bottom';\n onVoiceInput?: () => void;\n progressMessage?: string;\n className?: string;\n contextBanner?: React.ReactNode;\n hasContext?: boolean;\n canSubmitEmpty?: boolean;\n hasContent?: boolean;\n isBottomZoneVisible?: boolean;\n onChipClick?: (e: React.MouseEvent<HTMLAnchorElement>, href: string) => void;\n onFocusChange?: (focused: boolean) => void;\n}\n\nexport interface SearchSectionHandle {\n focusInput: () => void;\n blurInput: () => void;\n}\n\nconst ArrowDownIcon: React.FC = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"M12 5v14\" />\n <path d=\"m19 12-7 7-7-7\" />\n </svg>\n);\n\nconst MicrophoneIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n stroke=\"none\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z\" />\n <path\n d=\"M19 10v2a7 7 0 0 1-14 0v-2M12 19v3\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </svg>\n);\n\nconst ArrowRightIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M5 12h14\" />\n <path d=\"m12 5 7 7-7 7\" />\n </svg>\n);\n\nconst PromptSendIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d=\"M13.0306 7.53114C12.9609 7.60106 12.8781 7.65654 12.787 7.69439C12.6958 7.73224 12.5981 7.75173 12.4993 7.75173C12.4006 7.75173 12.3029 7.73224 12.2117 7.69439C12.1206 7.65654 12.0378 7.60106 11.9681 7.53114L8.74997 4.31301V13.5005C8.74997 13.6994 8.67095 13.8902 8.5303 14.0308C8.38965 14.1715 8.19888 14.2505 7.99997 14.2505C7.80106 14.2505 7.61029 14.1715 7.46964 14.0308C7.32899 13.8902 7.24997 13.6994 7.24997 13.5005V4.31301L4.0306 7.53114C3.8897 7.67203 3.69861 7.75119 3.49935 7.75119C3.30009 7.75119 3.10899 7.67203 2.9681 7.53114C2.8272 7.39024 2.74805 7.19915 2.74805 6.99989C2.74805 6.80063 2.8272 6.60953 2.9681 6.46864L7.4681 1.96864C7.53778 1.89872 7.62057 1.84324 7.71173 1.80539C7.8029 1.76753 7.90064 1.74805 7.99935 1.74805C8.09806 1.74805 8.1958 1.76753 8.28696 1.80539C8.37813 1.84324 8.46092 1.89872 8.5306 1.96864L13.0306 6.46864C13.1005 6.53832 13.156 6.62111 13.1938 6.71227C13.2317 6.80344 13.2512 6.90118 13.2512 6.99989C13.2512 7.0986 13.2317 7.19634 13.1938 7.2875C13.156 7.37867 13.1005 7.46146 13.0306 7.53114Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n\nexport const SearchSection = forwardRef<\n SearchSectionHandle,\n SearchSectionProps\n>(function SearchSection(\n {\n onSubmit,\n placeholder = UNBRANDED_PLACEHOLDER,\n submitLabel,\n collapsedLabel,\n onCollapsedChange,\n chips = [],\n chipDisplayMode = 'focus',\n chipPosition = 'top',\n onVoiceInput,\n progressMessage,\n className = '',\n contextBanner,\n hasContext,\n canSubmitEmpty = false,\n hasContent = false,\n isBottomZoneVisible = false,\n onChipClick,\n onFocusChange,\n },\n ref,\n) {\n const [inputValue, setInputValue] = useState('');\n const [isFocused, setIsFocused] = useState(false);\n const [hasFocusInside, setHasFocusInside] = useState(false);\n const [isMultiline, setIsMultiline] = useState(false);\n const [isCollapsed, setIsCollapsed] = useState(false);\n const inputRef = useRef<HTMLTextAreaElement>(null);\n const hasExpandedWhileZoneVisibleRef = useRef(false);\n const previouslyFocusedElementRef = useRef<HTMLElement | null>(null);\n const showChips =\n chips.length > 0 &&\n !hasContext &&\n (chipDisplayMode === 'always' || hasFocusInside);\n const effectiveCollapsedLabel =\n collapsedLabel ?? placeholder.replace(/\\.\\.\\.$/, '');\n\n const handleSubmit = useCallback(() => {\n const trimmedValue = inputValue.trim();\n if (trimmedValue || canSubmitEmpty) {\n onSubmit?.(trimmedValue);\n setInputValue('');\n }\n }, [canSubmitEmpty, inputValue, onSubmit]);\n\n useLayoutEffect(() => {\n const element = inputRef.current;\n if (!element) {\n return;\n }\n\n const computedStyles = window.getComputedStyle(element);\n const lineHeight = Number.parseFloat(computedStyles.lineHeight) || 32;\n\n const hasValue = inputValue.trim().length > 0;\n element.style.height = 'auto';\n const nextHeight = hasValue\n ? Math.min(Math.max(element.scrollHeight, lineHeight), 175)\n : lineHeight;\n element.style.height = `${nextHeight}px`;\n setIsMultiline(hasValue && nextHeight > lineHeight);\n }, [inputValue]);\n\n useEffect(() => {\n if (progressMessage || !hasContent) {\n setIsCollapsed(false);\n hasExpandedWhileZoneVisibleRef.current = false;\n return;\n }\n\n if (!isBottomZoneVisible) {\n hasExpandedWhileZoneVisibleRef.current = false;\n setIsCollapsed(false);\n return;\n }\n\n if (!hasExpandedWhileZoneVisibleRef.current) {\n setIsCollapsed(true);\n }\n }, [hasContent, isBottomZoneVisible, progressMessage]);\n\n useEffect(() => {\n onCollapsedChange?.(isCollapsed);\n }, [isCollapsed, onCollapsedChange]);\n\n const hasFocusInsideRef = useRef(hasFocusInside);\n hasFocusInsideRef.current = hasFocusInside;\n const onFocusChangeRef = useRef(onFocusChange);\n onFocusChangeRef.current = onFocusChange;\n\n useEffect(() => {\n onFocusChange?.(hasFocusInside);\n }, [hasFocusInside, onFocusChange]);\n\n useEffect(() => {\n return () => {\n if (hasFocusInsideRef.current) {\n onFocusChangeRef.current?.(false);\n }\n };\n }, []);\n\n const focusInput = useCallback(() => {\n const active = document.activeElement;\n if (\n active instanceof HTMLElement &&\n active !== inputRef.current &&\n active !== document.body\n ) {\n previouslyFocusedElementRef.current = active;\n }\n if (isCollapsed) {\n hasExpandedWhileZoneVisibleRef.current = true;\n setIsCollapsed(false);\n window.requestAnimationFrame(() => {\n inputRef.current?.focus();\n });\n } else {\n inputRef.current?.focus();\n }\n }, [isCollapsed]);\n\n const blurInput = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focusInput, blurInput }), [\n focusInput,\n blurInput,\n ]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n const prev = previouslyFocusedElementRef.current;\n previouslyFocusedElementRef.current = null;\n inputRef.current?.blur();\n prev?.focus?.();\n return;\n }\n if (\n e.key === 'Enter' &&\n !e.shiftKey &&\n (inputValue.trim() || canSubmitEmpty)\n ) {\n e.preventDefault();\n handleSubmit();\n }\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setInputValue(e.target.value);\n };\n\n const handleInputFocus = (e: React.FocusEvent<HTMLTextAreaElement>) => {\n setIsFocused(true);\n if (\n e.relatedTarget instanceof HTMLElement &&\n e.relatedTarget !== inputRef.current\n ) {\n previouslyFocusedElementRef.current = e.relatedTarget;\n }\n };\n\n const handleContentFocus = () => {\n setHasFocusInside(true);\n };\n\n const handleContentBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n const next = e.relatedTarget as Node | null;\n if (!next || !e.currentTarget.contains(next)) {\n setHasFocusInside(false);\n }\n };\n\n if (progressMessage) {\n return (\n <div\n className={cn('web5-prompt-progress', className)}\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n <div className=\"web5-prompt-progress__indicator\" aria-hidden=\"true\">\n <ArrowDownIcon />\n </div>\n <div className=\"web5-prompt-progress__message\">{progressMessage}</div>\n </div>\n );\n }\n\n const canSubmit = inputValue.trim().length > 0 || canSubmitEmpty;\n const chipsMarkup =\n chips.length > 0 ? (\n <div\n className={cn(\n 'web5-prompt-shell__chips',\n chipPosition === 'bottom'\n ? 'web5-prompt-shell__chips--bottom'\n : 'web5-prompt-shell__chips--top',\n showChips\n ? 'web5-prompt-shell__chips--visible'\n : 'web5-prompt-shell__chips--hidden',\n )}\n aria-hidden={isCollapsed || !showChips}\n >\n {chips.map((chip) => (\n <a\n key={chip.label}\n href={isWeb5Url(chip.href) ? '#' : chip.href}\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.preventDefault();\n onChipClick?.(e, chip.href);\n setInputValue('');\n inputRef.current?.blur();\n }}\n tabIndex={!isCollapsed && showChips ? 0 : -1}\n // `has-custom-focus` opts out of Wix Thunderbolt's global keyboard focus ring\n // so our inset :focus-visible ring isn't overwritten when embedded in a Wix site.\n className=\"web5-prompt-chip has-custom-focus\"\n >\n {chip.label}\n <PromptSendIcon\n aria-hidden=\"true\"\n className=\"web5-prompt-send-icon\"\n />\n </a>\n ))}\n </div>\n ) : null;\n\n const handleExpandClick = () => {\n focusInput();\n };\n\n\n return (\n <div\n className={cn(\n 'web5-prompt-shell',\n isCollapsed && 'web5-prompt-shell--collapsed',\n // Widens the pill while the field or a chip holds focus. Driven by\n // `hasFocusInside` rather than `isFocused` so clicking a chip (which\n // preventDefaults its mousedown) doesn't collapse the width mid-click.\n hasFocusInside && !isCollapsed && 'web5-prompt-shell--focused',\n className,\n )}\n >\n <div className=\"web5-prompt-shell__stage\">\n <button\n type=\"button\"\n className=\"web5-prompt-shell__collapsed-button has-custom-focus\"\n onClick={handleExpandClick}\n aria-label={effectiveCollapsedLabel}\n aria-hidden={!isCollapsed}\n tabIndex={isCollapsed ? 0 : -1}\n >\n {effectiveCollapsedLabel}\n </button>\n\n <div\n className=\"web5-prompt-shell__content\"\n aria-hidden={isCollapsed}\n onFocus={handleContentFocus}\n onBlur={handleContentBlur}\n >\n {contextBanner}\n <div className=\"web5-prompt-shell__panel\">\n <div\n className={cn(\n 'web5-prompt-shell__stack',\n chipPosition === 'top' && 'web5-prompt-shell__stack--chips-top',\n )}\n >\n <div className=\"web5-prompt-search\" role=\"search\">\n <div className=\"web5-prompt-search__inner\">\n <div\n className={cn(\n 'web5-prompt-field',\n isFocused && 'web5-prompt-field--focused',\n isMultiline && 'web5-prompt-field--multiline',\n )}\n >\n <textarea\n ref={inputRef}\n rows={1}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={handleInputFocus}\n onBlur={() => setIsFocused(false)}\n placeholder={placeholder}\n aria-label=\"Search or ask a question\"\n aria-keyshortcuts=\"/ Control+K\"\n className=\"web5-prompt-input has-custom-focus placeholder:text-search-input-hint\"\n tabIndex={isCollapsed ? -1 : undefined}\n />\n\n <div className=\"web5-prompt-actions\">\n {onVoiceInput && (\n <button\n type=\"button\"\n onClick={onVoiceInput}\n className=\"web5-prompt-voice\"\n aria-label=\"Voice input\"\n tabIndex={isCollapsed ? -1 : undefined}\n >\n <MicrophoneIcon />\n </button>\n )}\n <button\n type=\"button\"\n onClick={handleSubmit}\n className={cn(\n 'web5-prompt-submit',\n submitLabel && 'web5-prompt-submit--labeled',\n canSubmit && 'web5-prompt-submit--active',\n )}\n aria-label={submitLabel ?? 'Submit'}\n disabled={!canSubmit || isCollapsed}\n tabIndex={isCollapsed ? -1 : undefined}\n >\n {submitLabel ? (\n <>\n <span className=\"web5-prompt-submit__label\">\n {submitLabel}\n </span>\n <ArrowRightIcon\n aria-hidden=\"true\"\n className=\"web5-prompt-send-icon\"\n />\n </>\n ) : (\n <PromptSendIcon\n aria-hidden=\"true\"\n className=\"web5-prompt-send-icon\"\n />\n )}\n </button>\n </div>\n </div>\n </div>\n </div>\n\n {chipsMarkup}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.writeProductBackHandoff = exports.validatePatternWithBlocks = exports.validatePatternSyntax = exports.validatePattern = exports.validateLinkUrl = exports.usesStagingBackend = exports.useWeb5Link = exports.useUserQuery = exports.useResolvedImageSources = exports.useResolveShopifyEntityData = exports.useResolveSearchSpringEntityData = exports.useResolveGenericEntityData = exports.usePlacementPayload = exports.useMarkdownUtils = void 0;
|
|
4
|
+
exports.UNKNOWN_CONSENT = exports.UNBRANDED_ASSISTANT_NAME = exports.TextBlockSectionDefinition = exports.TableRow = exports.TableHeader = exports.TableHead = exports.TableFooter = exports.TableCell = exports.TableCaption = exports.TableBody = exports.Table = exports.TOKEN_NAME_PATTERN = exports.THEME_TOKEN_CONTRACT = exports.THEME_OVERRIDE_TOKENS = exports.THEME_OVERRIDE_KEY_PATTERN = exports.THEME_DEBUG_QUERY_PARAM = exports.THEME_DEBUG_KEY = exports.TEMPLATES_MANIFEST_URL = exports.TEMPLATES_CDN_BASE = exports.SmartIcon = exports.SkipNodesSectionDefinition = exports.ShopifyStorefrontClient = exports.SectionsRuntimeProvider = exports.SectionSkeleton = exports.SectionRuntimeProvider = exports.SearchSectionDefinition = exports.SearchSection = exports.STREAMING_TIMEOUT_MS = exports.SCHEME_COLOR_TOKENS = exports.SCHEME_ANCHOR_TOKENS = exports.REFRESH_PROMPTS_WINDOW_MS = exports.REFRESH_PROMPTS_UNTIL_KEY = exports.PromptEntryEmptyState = exports.PoweredByBadge = exports.PlacementSmoothHeight = exports.PlacementResponseRenderer = exports.PlacementPayloadProvider = exports.PlacementLoader = exports.PRODUCT_BY_HANDLE_QUERY = exports.PRODUCT_BACK_SESSION_KEY = exports.PLATFORM_ENTITY_TYPES = exports.OptimizedImage = exports.NextStepsSectionDefinition = exports.MetricsSectionDefinition = exports.MarkdownText = exports.MAX_THEME_SCHEMES = exports.MATCH_DEBUG_QUERY_PARAM = exports.MATCH_DEBUG_KEY = exports.Loader = exports.ListItemsSectionDefinition = exports.LinkType = exports.LIST_ITEMS_ENDPOINT = exports.KpiSectionDefinition = exports.ImageSlotProvider = exports.ImageSearchFilterToken = exports.HtmlCommentSectionDefinition = exports.HeroSectionDefinition = exports.HeroEntitySectionDefinition = exports.HOST_CONSENT_GLOBAL = exports.FeedbackBar = exports.FeatureToggleProvider = exports.FeatureSection9PlusDefinition = exports.FeatureCardsSectionDefinition = exports.FallbackSectionDefinition = exports.ErrorSectionDefinition = exports.EntitySectionDefinition = exports.EntityCollectionSectionDefinition = exports.EXPERIMENT_IDS = exports.ERROR_MARKDOWN = exports.EDITABLE_TOKENS = exports.DiagnosticsCollector = exports.DROP_SECTION = exports.DIAGNOSTIC_TYPES = exports.DEFAULT_PROMPT_PLACEHOLDER = exports.DEFAULT_POWERED_BY_HREF = exports.DEFAULT_ERROR_TEMPLATES = exports.DEFAULT_BACKEND_ENVIRONMENT = exports.DEFAULT_AI_DISCLOSURE_TEXT = exports.CtaBannerSectionDefinition = exports.ComponentTracking = exports.ComponentRegistry = exports.ComponentDependenciesProvider = exports.ComparisonSectionDefinition = exports.ChipsProvider = exports.CalloutSectionDefinition = exports.CalloutBlock = exports.CONSENT_OVERRIDE_QUERY_PARAM = exports.CONSENT_OVERRIDE_KEY = exports.COLLECTION_BY_HANDLE_QUERY = exports.CLIENT_IDS = exports.CALLOUT_SEMANTICS = exports.CALLOUT_KINDS = exports.BottomContainer = exports.BRAND_TOKENS = exports.BACKEND_ENVIRONMENT_QUERY_PARAM = exports.BACKEND_ENVIRONMENT_KEY = exports.AiIcon = exports.AiDisclosure = exports.ASSISTANT_TOKEN = exports.ARTICLE_BY_HANDLE_QUERY = void 0;
|
|
5
|
+
exports.hostAliasFor = exports.hexToHslTriplet = exports.hasImage = exports.hasHostSuppliedConsent = exports.hasAnalyticsConsent = exports.getTemplateOverride = exports.getSessionId = exports.getResizedImageUrl = exports.getRefreshPromptsExpiry = exports.getPartsByType = exports.getPartByRole = exports.getOrCreateSessionId = exports.getLinks = exports.getIntentFromMarkdown = exports.getInstalledProviderName = exports.getImages = exports.getHeading = exports.getGateView = exports.getForwardStack = exports.getErrorTypeFromStatus = exports.getEntityExtractor = exports.getContextualImageFilename = exports.getConsentSnapshot = exports.getConsentOverride = exports.getConsentGateStats = exports.getClientBundleOverride = exports.getChatId = exports.getBackendEnvironment = exports.getAllByRole = exports.generateSectionId = exports.generateId = exports.formatProductPriceLabel = exports.formatPriceField = exports.formatMoney = exports.fixMalformedLinks = exports.findKeywordsInContent = exports.findInvalidWeb5Links = exports.findImageInNode = exports.findImageInChildren = exports.fetchProductsByHandlesMap = exports.fetchProductsByHandles = exports.fetchEntityListData = exports.extractProtocol = exports.extractLinkMetadata = exports.extractIntentFromMarkdown = exports.extractContentMarkdown = exports.extractContent = exports.escapeWeb5Links = exports.entityPayloadFromItems = exports.entityHref = exports.ensureMinLightness = exports.enrichEntitiesFromPayload = exports.enableRefreshPrompts = exports.disableRefreshPrompts = exports.detectLinkType = exports.detectConsentProvider = exports.deriveRole = exports.deriveLightColor = exports.deriveDarkGradient = exports.deriveDarkColor = exports.defaultExtractor = exports.decodeLinkText = exports.createWixAuthFetch = exports.createShopifyConsentProvider = exports.createSdkRegistry = exports.createPageSection = exports.createOneTrustConsentProvider = exports.createHostSuppliedConsentProvider = exports.createFeatureToggleReader = exports.createErrorMarkdown = exports.convertToBlockElementsWithMapping = exports.convertToBlockElements = exports.computeContentBBox = exports.composeSemantic = exports.completeScheme = exports.cn = exports.clearForwardStack = exports.buildProbeUrl = exports.buildPlacementDependencies = exports.buildImageSearchFilter = exports.bucketOf = exports.backgroundFilter = exports.assistantName = exports.applyThemeOverrides = exports.analyzeBackdrop = exports.addToCart = exports.Web5UrlType = exports.WEB5_USER_QUERY_EVENT = exports.WEB5_SCOPES = exports.WEB5_SCOPE = exports.WEB5_ROOT_ID = exports.WEB5_ROOT_CLASS = exports.WEB5_REDIRECT_EVENT = exports.WEB5_GLOBAL_TOKENS = exports.WEB5_ANSWER_UPDATED_EVENT = exports.WEB5_ANSWER_SETTLED_EVENT = exports.UserQueryProvider = exports.UserQuery = exports.UnifiedMarkdownParser = exports.UnifiedLink = void 0;
|
|
6
|
+
exports.transmit = exports.transformToSolutionEntityData = exports.transformToGenericEntityData = exports.transformToBlogPostEntityData = exports.transformShopifyProduct = exports.transformShopifyEntityToItemData = exports.transformShopifyCollection = exports.transformShopifyArticle = exports.transformSSProductToEntityItemData = exports.toRgb = exports.toMatchedOptions = exports.toCatalogPath = exports.subscribeToConsent = exports.stripMarkdown = exports.startNewChatId = exports.shouldRefreshPrompts = exports.setMatchDebug = exports.setForwardStack = exports.setConsentOverride = exports.setConsentBufferLimit = exports.setChatId = exports.setBackendEnvironment = exports.schemeDisplayName = exports.rgbToHsl = exports.resolveShopifyEntity = exports.resolveShopifyConfig = exports.resolveErrorTemplate = exports.resolveEntityTypeConfig = exports.resolveClientBundleUrl = exports.resolveAssistantPlaceholder = exports.resolveActiveScheme = exports.resetMatchDebugCache = exports.resetConsentGateForTests = exports.resetChatIdForTests = exports.registerEntityExtractor = exports.readProductBackHandoff = exports.readCurrencyCode = exports.pushToForwardStack = exports.pushPromptSubmit = exports.pushLinkClick = exports.pushExit = exports.pushEvent = exports.pushError = exports.pushEntityFiltered = exports.publishHostConsent = exports.preprocessMarkdown = exports.popFromForwardStack = exports.parseWeb5Url = exports.parseMarkdownToComponents = exports.parseMarkdownToAst = exports.parseEntityLink = exports.parseAstToMarkdown = exports.normalizeImageUrl = exports.normalizeIconUrls = exports.normalizeEntityItem = exports.nodesToParts = exports.nextOwnerSchemeId = exports.mergeSectionsWithStableReferences = exports.mergeEntityData = exports.mergeClientConfig = exports.mayTransmit = exports.mayPersistIdentity = exports.matchMarkdown = exports.matchAllSections = exports.logMatchDebug = exports.loadImagePixels = exports.loadClientBundle = exports.loadBackdropAnalysis = exports.listEntityItems = exports.isWeb5Url = exports.isWeb5SearchUrl = exports.isWeb5ImageUrl = exports.isWeb5IconUrl = exports.isWeb5EntityUrl = exports.isWeb5AskUrl = exports.isWeb5ActionUrl = exports.isValidWeb5Url = exports.isValidTemplateId = exports.isValidLinkUrl = exports.isUserEngaged = exports.isTrustedBundleHost = exports.isThemeScheme = exports.isThemeDebugEnabled = exports.isTemplatePickerRequested = exports.isSimulationTraffic = exports.isShopifyHost = exports.isSchemeTokenEntry = exports.isProductFamilyEntityType = exports.isOneTrustHost = exports.isNavigableUrl = exports.isMatchDebugEnabled = exports.isLegacyUrl = exports.isHtmlComment = exports.isHslTriplet = exports.isEntityLink = exports.isDocumentFamilyEntityType = exports.installConsentProvider = exports.initConsentGate = exports.hslTripletToHex = exports.hslToRgb = void 0;
|
|
7
|
+
exports.writeProductBackHandoff = exports.validatePatternWithBlocks = exports.validatePatternSyntax = exports.validatePattern = exports.validateLinkUrl = exports.usesStagingBackend = exports.useWeb5Link = exports.useUserQuery = exports.useResolvedImageSources = exports.useResolveShopifyEntityData = exports.useResolveSearchSpringEntityData = exports.useResolveGenericEntityData = exports.usePlacementPayload = exports.useMarkdownUtils = exports.useImageSlotCollector = exports.useImageSlot = exports.useFeatureToggles = exports.useFeatureToggle = exports.useEntityTransforms = exports.useDebugImageContext = exports.useCurrentSectionOptions = exports.useCurrentSectionId = exports.useConversation = exports.useComponentDependencies = exports.useChips = exports.unlockOnUserAction = exports.tryParseComponent = exports.trimTrailingWhitespace = void 0;
|
|
8
8
|
var _clients = require("./clients");
|
|
9
9
|
exports.CLIENT_IDS = _clients.CLIENT_IDS;
|
|
10
10
|
exports.EXPERIMENT_IDS = _clients.EXPERIMENT_IDS;
|
|
@@ -260,8 +260,13 @@ var _FeedbackBar = require("./components/ui/FeedbackBar");
|
|
|
260
260
|
exports.FeedbackBar = _FeedbackBar.FeedbackBar;
|
|
261
261
|
var _AiDisclosure = require("./components/ui/AiDisclosure");
|
|
262
262
|
exports.AiDisclosure = _AiDisclosure.AiDisclosure;
|
|
263
|
-
exports.ASSISTANT_TOKEN = _AiDisclosure.ASSISTANT_TOKEN;
|
|
264
263
|
exports.DEFAULT_AI_DISCLOSURE_TEXT = _AiDisclosure.DEFAULT_AI_DISCLOSURE_TEXT;
|
|
264
|
+
var _assistant = require("./lib/assistant");
|
|
265
|
+
exports.ASSISTANT_TOKEN = _assistant.ASSISTANT_TOKEN;
|
|
266
|
+
exports.UNBRANDED_ASSISTANT_NAME = _assistant.UNBRANDED_ASSISTANT_NAME;
|
|
267
|
+
exports.DEFAULT_PROMPT_PLACEHOLDER = _assistant.DEFAULT_PROMPT_PLACEHOLDER;
|
|
268
|
+
exports.assistantName = _assistant.assistantName;
|
|
269
|
+
exports.resolveAssistantPlaceholder = _assistant.resolveAssistantPlaceholder;
|
|
265
270
|
var _AiIcon = require("./components/ui/icons/AiIcon");
|
|
266
271
|
exports.AiIcon = _AiIcon.AiIcon;
|
|
267
272
|
var _PoweredByBadge = require("./components/ui/PoweredByBadge");
|
|
@@ -326,8 +331,19 @@ exports.THEME_TOKEN_CONTRACT = _tokenContract.THEME_TOKEN_CONTRACT;
|
|
|
326
331
|
exports.BRAND_TOKENS = _tokenContract.BRAND_TOKENS;
|
|
327
332
|
exports.EDITABLE_TOKENS = _tokenContract.EDITABLE_TOKENS;
|
|
328
333
|
exports.TOKEN_NAME_PATTERN = _tokenContract.TOKEN_NAME_PATTERN;
|
|
334
|
+
exports.THEME_OVERRIDE_KEY_PATTERN = _tokenContract.THEME_OVERRIDE_KEY_PATTERN;
|
|
329
335
|
exports.bucketOf = _tokenContract.bucketOf;
|
|
330
336
|
exports.hostAliasFor = _tokenContract.hostAliasFor;
|
|
337
|
+
var _themeScheme = require("./theme/themeScheme");
|
|
338
|
+
exports.SCHEME_COLOR_TOKENS = _themeScheme.SCHEME_COLOR_TOKENS;
|
|
339
|
+
exports.MAX_THEME_SCHEMES = _themeScheme.MAX_THEME_SCHEMES;
|
|
340
|
+
exports.SCHEME_ANCHOR_TOKENS = _themeScheme.SCHEME_ANCHOR_TOKENS;
|
|
341
|
+
exports.completeScheme = _themeScheme.completeScheme;
|
|
342
|
+
exports.isThemeScheme = _themeScheme.isThemeScheme;
|
|
343
|
+
exports.isSchemeTokenEntry = _themeScheme.isSchemeTokenEntry;
|
|
344
|
+
exports.nextOwnerSchemeId = _themeScheme.nextOwnerSchemeId;
|
|
345
|
+
exports.resolveActiveScheme = _themeScheme.resolveActiveScheme;
|
|
346
|
+
exports.schemeDisplayName = _themeScheme.schemeDisplayName;
|
|
331
347
|
var _themeDebug = require("./client/themeDebug");
|
|
332
348
|
exports.isThemeDebugEnabled = _themeDebug.isThemeDebugEnabled;
|
|
333
349
|
exports.THEME_DEBUG_KEY = _themeDebug.THEME_DEBUG_KEY;
|