@wix/web5-core 1.63.42 → 1.63.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,30 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.DEFAULT_AI_DISCLOSURE_TEXT = exports.AiDisclosure = exports.ASSISTANT_TOKEN = void 0;
4
+ exports.DEFAULT_AI_DISCLOSURE_TEXT = exports.AiDisclosure = void 0;
5
5
  var _react = _interopRequireWildcard(require("react"));
6
6
  var _utils = require("../../lib/utils");
7
+ var _assistant = require("../../lib/assistant");
8
+ exports.ASSISTANT_TOKEN = _assistant.ASSISTANT_TOKEN;
7
9
  var _AiIcon = require("./icons/AiIcon");
8
10
  var _jsxFileName = "/home/builduser/work/c2b6ca0b3fa984ee/packages/web5-core/dist/cjs/components/ui/AiDisclosure.tsx";
9
- 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); }
10
11
  /**
11
- * Placeholder inside `text` that the assistant's name is substituted into.
12
+ * Re-exported for the callers that already import the token from here.
12
13
  *
13
- * Same `{assistant}` token the prompt-input placeholder already uses
14
- * ("Ask {assistant}…"), so a store rename moves both together and a
15
- * translator can put the name wherever the target language needs it.
14
+ * It lives in `lib/assistant` alongside the name it stands for: the same token
15
+ * the prompt-input placeholder uses ("Ask {assistant}…"), so a store rename
16
+ * moves both together and a translator can put the name wherever the target
17
+ * language needs it.
16
18
  */
17
- const ASSISTANT_TOKEN = exports.ASSISTANT_TOKEN = '{assistant}';
18
-
19
+ 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); }
19
20
  /**
20
21
  * The disclosure a shopper must see. Wording is fixed here rather than in each
21
22
  * client bundle: it is what tells the shopper they are reading machine-written
22
23
  * text, so it should not be forkable per store by accident.
23
24
  */
24
- const DEFAULT_AI_DISCLOSURE_TEXT = exports.DEFAULT_AI_DISCLOSURE_TEXT = `Generated by ${ASSISTANT_TOKEN} · Double-check anything important`;
25
-
26
- /** Used when the host publishes no store name — still reads correctly. */
27
- const UNBRANDED_ASSISTANT_NAME = 'AI';
25
+ const DEFAULT_AI_DISCLOSURE_TEXT = exports.DEFAULT_AI_DISCLOSURE_TEXT = `Generated by ${_assistant.ASSISTANT_TOKEN} · Double-check anything important`;
28
26
  /**
29
27
  * "Generated by <Store> AI · Double-check anything important" — the AI
30
28
  * disclosure shown at the top of a generated answer (EU AI Act, B2B-4488).
@@ -44,15 +42,15 @@ const AiDisclosure = ({
44
42
  align = 'center',
45
43
  className
46
44
  }) => {
47
- const name = (assistantName ?? '').trim() || UNBRANDED_ASSISTANT_NAME;
48
- const segments = text.split(ASSISTANT_TOKEN);
45
+ const name = (assistantName ?? '').trim() || _assistant.UNBRANDED_ASSISTANT_NAME;
46
+ const segments = text.split(_assistant.ASSISTANT_TOKEN);
49
47
  return /*#__PURE__*/_react.default.createElement("p", {
50
48
  className: (0, _utils.cn)('web5-ai-disclosure', align === 'start' && 'web5-ai-disclosure--start', className),
51
49
  role: "note",
52
50
  __self: void 0,
53
51
  __source: {
54
52
  fileName: _jsxFileName,
55
- lineNumber: 71,
53
+ lineNumber: 70,
56
54
  columnNumber: 5
57
55
  }
58
56
  }, icon === undefined ? /*#__PURE__*/_react.default.createElement(_AiIcon.AiIcon, {
@@ -60,7 +58,7 @@ const AiDisclosure = ({
60
58
  __self: void 0,
61
59
  __source: {
62
60
  fileName: _jsxFileName,
63
- lineNumber: 80,
61
+ lineNumber: 79,
64
62
  columnNumber: 9
65
63
  }
66
64
  }) : icon, /*#__PURE__*/_react.default.createElement("span", {
@@ -68,7 +66,7 @@ const AiDisclosure = ({
68
66
  __self: void 0,
69
67
  __source: {
70
68
  fileName: _jsxFileName,
71
- lineNumber: 84,
69
+ lineNumber: 83,
72
70
  columnNumber: 7
73
71
  }
74
72
  }, segments.map((segment, index) => /*#__PURE__*/_react.default.createElement(_react.Fragment, {
@@ -76,7 +74,7 @@ const AiDisclosure = ({
76
74
  __self: void 0,
77
75
  __source: {
78
76
  fileName: _jsxFileName,
79
- lineNumber: 86,
77
+ lineNumber: 85,
80
78
  columnNumber: 11
81
79
  }
82
80
  }, segment, index < segments.length - 1 && /*#__PURE__*/_react.default.createElement("span", {
@@ -84,7 +82,7 @@ const AiDisclosure = ({
84
82
  __self: void 0,
85
83
  __source: {
86
84
  fileName: _jsxFileName,
87
- lineNumber: 89,
85
+ lineNumber: 88,
88
86
  columnNumber: 15
89
87
  }
90
88
  }, name)))));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_AiIcon","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ASSISTANT_TOKEN","exports","DEFAULT_AI_DISCLOSURE_TEXT","UNBRANDED_ASSISTANT_NAME","AiDisclosure","assistantName","text","icon","align","className","name","trim","segments","split","createElement","cn","role","__self","__source","fileName","lineNumber","columnNumber","undefined","AiIcon","map","segment","index","Fragment","key","length"],"sources":["../../../../src/components/ui/AiDisclosure.tsx"],"sourcesContent":["import React, { FC, Fragment, ReactNode } from 'react';\nimport { cn } from '../../lib/utils';\nimport { AiIcon } from './icons/AiIcon';\n\n/**\n * Placeholder inside `text` that the assistant's name is substituted into.\n *\n * Same `{assistant}` token the prompt-input placeholder already uses\n * (\"Ask {assistant}…\"), so a store rename moves both together and a\n * translator can put the name wherever the target language needs it.\n */\nexport const ASSISTANT_TOKEN = '{assistant}';\n\n/**\n * The disclosure a shopper must see. Wording is fixed here rather than in each\n * client bundle: it is what tells the shopper they are reading machine-written\n * text, so it should not be forkable per store by accident.\n */\nexport const DEFAULT_AI_DISCLOSURE_TEXT = `Generated by ${ASSISTANT_TOKEN} · Double-check anything important`;\n\n/** Used when the host publishes no store name — still reads correctly. */\nconst UNBRANDED_ASSISTANT_NAME = 'AI';\n\nexport interface AiDisclosureProps {\n /**\n * What the assistant is called — the store's name plus \"AI\", e.g.\n * \"Smallflower AI\". Rendered in the display face so the store's brand is the\n * emphasized word in the line. Blank/omitted falls back to \"AI\".\n */\n assistantName?: string;\n /**\n * The full sentence, with `{assistant}` marking where the name goes.\n * Defaults to {@link DEFAULT_AI_DISCLOSURE_TEXT}. A string without the token\n * renders verbatim, with no emphasized name.\n */\n text?: string;\n /**\n * Replace the leading icon. `null` drops it — the text alone still carries\n * the disclosure, so removing the icon is a visual choice, not a\n * compliance one.\n */\n icon?: ReactNode;\n /** Row alignment. `'center'` (default) matches the hero; `'start'` for left-aligned surfaces. */\n align?: 'start' | 'center';\n className?: string;\n}\n\n/**\n * \"Generated by <Store> AI · Double-check anything important\" — the AI\n * disclosure shown at the top of a generated answer (EU AI Act, B2B-4488).\n *\n * Replaces the old \"AI can make mistakes.\" response footer: one notice, above\n * the content rather than below it, so a shopper reads it before the answer\n * instead of after.\n *\n * Presentational only. Hosts decide where it mounts and pass the store's\n * assistant name; every color, size and face resolves from web5 tokens, so a\n * client re-skins it by re-skinning the theme.\n */\nexport const AiDisclosure: FC<AiDisclosureProps> = ({\n assistantName,\n text = DEFAULT_AI_DISCLOSURE_TEXT,\n icon,\n align = 'center',\n className,\n}) => {\n const name = (assistantName ?? '').trim() || UNBRANDED_ASSISTANT_NAME;\n const segments = text.split(ASSISTANT_TOKEN);\n\n return (\n <p\n className={cn(\n 'web5-ai-disclosure',\n align === 'start' && 'web5-ai-disclosure--start',\n className,\n )}\n role=\"note\"\n >\n {icon === undefined ? (\n <AiIcon className=\"web5-ai-disclosure__icon\" />\n ) : (\n icon\n )}\n <span className=\"web5-ai-disclosure__text\">\n {segments.map((segment, index) => (\n <Fragment key={index}>\n {segment}\n {index < segments.length - 1 && (\n <span className=\"web5-ai-disclosure__assistant\">{name}</span>\n )}\n </Fragment>\n ))}\n </span>\n </p>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_utils","_assistant","exports","ASSISTANT_TOKEN","_AiIcon","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_AI_DISCLOSURE_TEXT","AiDisclosure","assistantName","text","icon","align","className","name","trim","UNBRANDED_ASSISTANT_NAME","segments","split","createElement","cn","role","__self","__source","fileName","lineNumber","columnNumber","undefined","AiIcon","map","segment","index","Fragment","key","length"],"sources":["../../../../src/components/ui/AiDisclosure.tsx"],"sourcesContent":["import React, { FC, Fragment, ReactNode } from 'react';\nimport { cn } from '../../lib/utils';\nimport { ASSISTANT_TOKEN, UNBRANDED_ASSISTANT_NAME } from '../../lib/assistant';\nimport { AiIcon } from './icons/AiIcon';\n\n/**\n * Re-exported for the callers that already import the token from here.\n *\n * It lives in `lib/assistant` alongside the name it stands for: the same token\n * the prompt-input placeholder uses (\"Ask {assistant}…\"), so a store rename\n * moves both together and a translator can put the name wherever the target\n * language needs it.\n */\nexport { ASSISTANT_TOKEN };\n\n/**\n * The disclosure a shopper must see. Wording is fixed here rather than in each\n * client bundle: it is what tells the shopper they are reading machine-written\n * text, so it should not be forkable per store by accident.\n */\nexport const DEFAULT_AI_DISCLOSURE_TEXT = `Generated by ${ASSISTANT_TOKEN} · Double-check anything important`;\n\nexport interface AiDisclosureProps {\n /**\n * What the assistant is called — the store's name plus \"AI\", e.g.\n * \"Smallflower AI\". Rendered in the display face so the store's brand is the\n * emphasized word in the line. Blank/omitted falls back to \"AI\".\n */\n assistantName?: string;\n /**\n * The full sentence, with `{assistant}` marking where the name goes.\n * Defaults to {@link DEFAULT_AI_DISCLOSURE_TEXT}. A string without the token\n * renders verbatim, with no emphasized name.\n */\n text?: string;\n /**\n * Replace the leading icon. `null` drops it — the text alone still carries\n * the disclosure, so removing the icon is a visual choice, not a\n * compliance one.\n */\n icon?: ReactNode;\n /** Row alignment. `'center'` (default) matches the hero; `'start'` for left-aligned surfaces. */\n align?: 'start' | 'center';\n className?: string;\n}\n\n/**\n * \"Generated by <Store> AI · Double-check anything important\" — the AI\n * disclosure shown at the top of a generated answer (EU AI Act, B2B-4488).\n *\n * Replaces the old \"AI can make mistakes.\" response footer: one notice, above\n * the content rather than below it, so a shopper reads it before the answer\n * instead of after.\n *\n * Presentational only. Hosts decide where it mounts and pass the store's\n * assistant name; every color, size and face resolves from web5 tokens, so a\n * client re-skins it by re-skinning the theme.\n */\nexport const AiDisclosure: FC<AiDisclosureProps> = ({\n assistantName,\n text = DEFAULT_AI_DISCLOSURE_TEXT,\n icon,\n align = 'center',\n className,\n}) => {\n const name = (assistantName ?? '').trim() || UNBRANDED_ASSISTANT_NAME;\n const segments = text.split(ASSISTANT_TOKEN);\n\n return (\n <p\n className={cn(\n 'web5-ai-disclosure',\n align === 'start' && 'web5-ai-disclosure--start',\n className,\n )}\n role=\"note\"\n >\n {icon === undefined ? (\n <AiIcon className=\"web5-ai-disclosure__icon\" />\n ) : (\n icon\n )}\n <span className=\"web5-ai-disclosure__text\">\n {segments.map((segment, index) => (\n <Fragment key={index}>\n {segment}\n {index < segments.length - 1 && (\n <span className=\"web5-ai-disclosure__assistant\">{name}</span>\n )}\n </Fragment>\n ))}\n </span>\n </p>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -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: 51,
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: 63,
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: 64,
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: 69,
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: 79,
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: 80,
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: 91,
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: 104,
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: 105,
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: 110,
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: 119,
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 = 'Talk to us',
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: 307,
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: 313,
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,
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: 316,
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: 324,
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: 337,
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: 353,
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: 368,
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: 379,
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: 380,
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: 391,
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: 398,
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: 399,
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: 405,
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: 406,
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: 407,
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: 414,
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: 429,
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: 431,
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: 438,
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: 441,
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: 455,
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: 458,
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: 464,
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":[]}