@wix/web5-core 1.63.18 → 1.63.20
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/components/ui/SearchSection.css +0 -36
- package/dist/cjs/components/ui/SearchSection.js +18 -36
- package/dist/cjs/components/ui/SearchSection.js.map +1 -1
- package/dist/cjs/components/ui/UserQuery.css +106 -0
- package/dist/cjs/components/ui/UserQuery.js +64 -19
- package/dist/cjs/components/ui/UserQuery.js.map +1 -1
- package/dist/cjs/index.js +5 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/answerSettledEvent.js +25 -0
- package/dist/cjs/types/answerSettledEvent.js.map +1 -0
- package/dist/esm/components/ui/SearchSection.css +0 -36
- package/dist/esm/components/ui/SearchSection.js +1 -7
- package/dist/esm/components/ui/SearchSection.js.map +1 -1
- package/dist/esm/components/ui/UserQuery.css +106 -0
- package/dist/esm/components/ui/UserQuery.js +19 -4
- package/dist/esm/components/ui/UserQuery.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/answerSettledEvent.js +21 -0
- package/dist/esm/types/answerSettledEvent.js.map +1 -0
- package/dist/types/components/ui/SearchSection.d.ts.map +1 -1
- package/dist/types/components/ui/UserQuery.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/answerSettledEvent.d.ts +33 -0
- package/dist/types/types/answerSettledEvent.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/components/ui/SearchSection.css +0 -36
- package/src/components/ui/UserQuery.css +106 -0
|
@@ -373,39 +373,6 @@
|
|
|
373
373
|
transform: translateY(-50%);
|
|
374
374
|
}
|
|
375
375
|
|
|
376
|
-
.web5-prompt-hint {
|
|
377
|
-
display: inline-flex;
|
|
378
|
-
align-items: center;
|
|
379
|
-
gap: 4px;
|
|
380
|
-
margin-right: 4px;
|
|
381
|
-
color: var(--pi-field-placeholder);
|
|
382
|
-
font-family: var(--pi-field-font-family);
|
|
383
|
-
font-size: 12px;
|
|
384
|
-
line-height: 1;
|
|
385
|
-
white-space: nowrap;
|
|
386
|
-
pointer-events: none;
|
|
387
|
-
user-select: none;
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
.web5-prompt-hint__key {
|
|
391
|
-
display: inline-flex;
|
|
392
|
-
align-items: center;
|
|
393
|
-
justify-content: center;
|
|
394
|
-
min-width: 16px;
|
|
395
|
-
padding: 1px 4px;
|
|
396
|
-
border: 1px solid var(--pi-field-placeholder);
|
|
397
|
-
border-radius: 3px;
|
|
398
|
-
background: transparent;
|
|
399
|
-
font-family: inherit;
|
|
400
|
-
font-size: 11px;
|
|
401
|
-
line-height: 1;
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
@media (pointer: coarse) {
|
|
405
|
-
.web5-prompt-hint {
|
|
406
|
-
display: none;
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
376
|
|
|
410
377
|
.web5-prompt-field--multiline .web5-prompt-actions {
|
|
411
378
|
top: auto;
|
|
@@ -589,7 +556,4 @@
|
|
|
589
556
|
height: 20px;
|
|
590
557
|
}
|
|
591
558
|
|
|
592
|
-
.web5-prompt-hint {
|
|
593
|
-
display: none;
|
|
594
|
-
}
|
|
595
559
|
}
|
|
@@ -361,7 +361,6 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
361
361
|
const handleExpandClick = () => {
|
|
362
362
|
focusInput();
|
|
363
363
|
};
|
|
364
|
-
const showHint = inputValue === '' && !isFocused && !isCollapsed;
|
|
365
364
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
366
365
|
className: (0, _utils.cn)('web5-prompt-shell', isCollapsed && 'web5-prompt-shell--collapsed',
|
|
367
366
|
// Widens the pill while the field or a chip holds focus. Driven by
|
|
@@ -371,7 +370,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
371
370
|
__self: this,
|
|
372
371
|
__source: {
|
|
373
372
|
fileName: _jsxFileName,
|
|
374
|
-
lineNumber:
|
|
373
|
+
lineNumber: 368,
|
|
375
374
|
columnNumber: 5
|
|
376
375
|
}
|
|
377
376
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -379,7 +378,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
379
378
|
__self: this,
|
|
380
379
|
__source: {
|
|
381
380
|
fileName: _jsxFileName,
|
|
382
|
-
lineNumber:
|
|
381
|
+
lineNumber: 379,
|
|
383
382
|
columnNumber: 7
|
|
384
383
|
}
|
|
385
384
|
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
@@ -392,7 +391,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
392
391
|
__self: this,
|
|
393
392
|
__source: {
|
|
394
393
|
fileName: _jsxFileName,
|
|
395
|
-
lineNumber:
|
|
394
|
+
lineNumber: 380,
|
|
396
395
|
columnNumber: 9
|
|
397
396
|
}
|
|
398
397
|
}, effectiveCollapsedLabel), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -403,7 +402,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
403
402
|
__self: this,
|
|
404
403
|
__source: {
|
|
405
404
|
fileName: _jsxFileName,
|
|
406
|
-
lineNumber:
|
|
405
|
+
lineNumber: 391,
|
|
407
406
|
columnNumber: 9
|
|
408
407
|
}
|
|
409
408
|
}, contextBanner, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -411,7 +410,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
411
410
|
__self: this,
|
|
412
411
|
__source: {
|
|
413
412
|
fileName: _jsxFileName,
|
|
414
|
-
lineNumber:
|
|
413
|
+
lineNumber: 398,
|
|
415
414
|
columnNumber: 11
|
|
416
415
|
}
|
|
417
416
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -419,7 +418,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
419
418
|
__self: this,
|
|
420
419
|
__source: {
|
|
421
420
|
fileName: _jsxFileName,
|
|
422
|
-
lineNumber:
|
|
421
|
+
lineNumber: 399,
|
|
423
422
|
columnNumber: 13
|
|
424
423
|
}
|
|
425
424
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -428,7 +427,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
428
427
|
__self: this,
|
|
429
428
|
__source: {
|
|
430
429
|
fileName: _jsxFileName,
|
|
431
|
-
lineNumber:
|
|
430
|
+
lineNumber: 405,
|
|
432
431
|
columnNumber: 15
|
|
433
432
|
}
|
|
434
433
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -436,7 +435,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
436
435
|
__self: this,
|
|
437
436
|
__source: {
|
|
438
437
|
fileName: _jsxFileName,
|
|
439
|
-
lineNumber:
|
|
438
|
+
lineNumber: 406,
|
|
440
439
|
columnNumber: 17
|
|
441
440
|
}
|
|
442
441
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -444,7 +443,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
444
443
|
__self: this,
|
|
445
444
|
__source: {
|
|
446
445
|
fileName: _jsxFileName,
|
|
447
|
-
lineNumber:
|
|
446
|
+
lineNumber: 407,
|
|
448
447
|
columnNumber: 19
|
|
449
448
|
}
|
|
450
449
|
}, /*#__PURE__*/_react.default.createElement("textarea", {
|
|
@@ -463,7 +462,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
463
462
|
__self: this,
|
|
464
463
|
__source: {
|
|
465
464
|
fileName: _jsxFileName,
|
|
466
|
-
lineNumber:
|
|
465
|
+
lineNumber: 414,
|
|
467
466
|
columnNumber: 21
|
|
468
467
|
}
|
|
469
468
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -471,27 +470,10 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
471
470
|
__self: this,
|
|
472
471
|
__source: {
|
|
473
472
|
fileName: _jsxFileName,
|
|
474
|
-
lineNumber:
|
|
473
|
+
lineNumber: 429,
|
|
475
474
|
columnNumber: 21
|
|
476
475
|
}
|
|
477
|
-
},
|
|
478
|
-
className: "web5-prompt-hint",
|
|
479
|
-
"aria-hidden": "true",
|
|
480
|
-
__self: this,
|
|
481
|
-
__source: {
|
|
482
|
-
fileName: _jsxFileName,
|
|
483
|
-
lineNumber: 432,
|
|
484
|
-
columnNumber: 25
|
|
485
|
-
}
|
|
486
|
-
}, "Press ", /*#__PURE__*/_react.default.createElement("kbd", {
|
|
487
|
-
className: "web5-prompt-hint__key",
|
|
488
|
-
__self: this,
|
|
489
|
-
__source: {
|
|
490
|
-
fileName: _jsxFileName,
|
|
491
|
-
lineNumber: 433,
|
|
492
|
-
columnNumber: 33
|
|
493
|
-
}
|
|
494
|
-
}, "/"), ' ', "to search"), onVoiceInput && /*#__PURE__*/_react.default.createElement("button", {
|
|
476
|
+
}, onVoiceInput && /*#__PURE__*/_react.default.createElement("button", {
|
|
495
477
|
type: "button",
|
|
496
478
|
onClick: onVoiceInput,
|
|
497
479
|
className: "web5-prompt-voice",
|
|
@@ -500,14 +482,14 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
500
482
|
__self: this,
|
|
501
483
|
__source: {
|
|
502
484
|
fileName: _jsxFileName,
|
|
503
|
-
lineNumber:
|
|
485
|
+
lineNumber: 431,
|
|
504
486
|
columnNumber: 25
|
|
505
487
|
}
|
|
506
488
|
}, /*#__PURE__*/_react.default.createElement(MicrophoneIcon, {
|
|
507
489
|
__self: this,
|
|
508
490
|
__source: {
|
|
509
491
|
fileName: _jsxFileName,
|
|
510
|
-
lineNumber:
|
|
492
|
+
lineNumber: 438,
|
|
511
493
|
columnNumber: 27
|
|
512
494
|
}
|
|
513
495
|
})), /*#__PURE__*/_react.default.createElement("button", {
|
|
@@ -520,7 +502,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
520
502
|
__self: this,
|
|
521
503
|
__source: {
|
|
522
504
|
fileName: _jsxFileName,
|
|
523
|
-
lineNumber:
|
|
505
|
+
lineNumber: 441,
|
|
524
506
|
columnNumber: 23
|
|
525
507
|
}
|
|
526
508
|
}, submitLabel ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
@@ -528,7 +510,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
528
510
|
__self: this,
|
|
529
511
|
__source: {
|
|
530
512
|
fileName: _jsxFileName,
|
|
531
|
-
lineNumber:
|
|
513
|
+
lineNumber: 455,
|
|
532
514
|
columnNumber: 29
|
|
533
515
|
}
|
|
534
516
|
}, submitLabel), /*#__PURE__*/_react.default.createElement(ArrowRightIcon, {
|
|
@@ -537,7 +519,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
537
519
|
__self: this,
|
|
538
520
|
__source: {
|
|
539
521
|
fileName: _jsxFileName,
|
|
540
|
-
lineNumber:
|
|
522
|
+
lineNumber: 458,
|
|
541
523
|
columnNumber: 29
|
|
542
524
|
}
|
|
543
525
|
})) : /*#__PURE__*/_react.default.createElement(PromptSendIcon, {
|
|
@@ -546,7 +528,7 @@ const SearchSection = exports.SearchSection = /*#__PURE__*/(0, _react.forwardRef
|
|
|
546
528
|
__self: this,
|
|
547
529
|
__source: {
|
|
548
530
|
fileName: _jsxFileName,
|
|
549
|
-
lineNumber:
|
|
531
|
+
lineNumber: 464,
|
|
550
532
|
columnNumber: 27
|
|
551
533
|
}
|
|
552
534
|
})))))), 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","showHint","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 const showHint = inputValue === '' && !isFocused && !isCollapsed;\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 {showHint && (\n <span className=\"web5-prompt-hint\" aria-hidden=\"true\">\n Press <kbd className=\"web5-prompt-hint__key\">/</kbd>{' '}\n to search\n </span>\n )}\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","_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":[]}
|
|
@@ -70,3 +70,109 @@
|
|
|
70
70
|
.web5-user-query__product-back:hover .web5-user-query__product-back-title {
|
|
71
71
|
text-decoration: underline;
|
|
72
72
|
}
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
* Keyboard hint — "Press / to search", beside the Share action.
|
|
76
|
+
*
|
|
77
|
+
* It lived inside the prompt field until it was moved here: there it competed
|
|
78
|
+
* with the placeholder for the same space and vanished the moment the reader
|
|
79
|
+
* focused the input, so the shortcut was only ever shown to someone not using
|
|
80
|
+
* it. Its colour still comes from the prompt-input token family, which keeps
|
|
81
|
+
* it in step with the input it describes and themeable by the same knob.
|
|
82
|
+
*/
|
|
83
|
+
.web5-prompt-hint {
|
|
84
|
+
display: inline-flex;
|
|
85
|
+
align-items: center;
|
|
86
|
+
gap: 4px;
|
|
87
|
+
color: var(--pi-field-placeholder);
|
|
88
|
+
font-family: var(--pi-field-font-family);
|
|
89
|
+
font-size: 12px;
|
|
90
|
+
line-height: 1;
|
|
91
|
+
white-space: nowrap;
|
|
92
|
+
pointer-events: none;
|
|
93
|
+
user-select: none;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.web5-prompt-hint__key {
|
|
97
|
+
display: inline-flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
justify-content: center;
|
|
100
|
+
min-width: 16px;
|
|
101
|
+
padding: 1px 4px;
|
|
102
|
+
border: 1px solid var(--pi-field-placeholder);
|
|
103
|
+
border-radius: 3px;
|
|
104
|
+
background: transparent;
|
|
105
|
+
font-family: inherit;
|
|
106
|
+
font-size: 11px;
|
|
107
|
+
line-height: 1;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/* No physical keyboard, no shortcut worth advertising. */
|
|
111
|
+
@media (pointer: coarse) {
|
|
112
|
+
.web5-prompt-hint {
|
|
113
|
+
display: none;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Mobile: the header is tight and there is no keyboard anyway. */
|
|
118
|
+
@media (max-width: 768px) {
|
|
119
|
+
.web5-prompt-hint {
|
|
120
|
+
display: none;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/*
|
|
125
|
+
* Action tooltips — "Share this", "New conversation".
|
|
126
|
+
*
|
|
127
|
+
* Brand-coloured via the theme tokens rather than the header's own greys, so a
|
|
128
|
+
* client that rebrands gets tooltips that match. `--primary` is the brand
|
|
129
|
+
* accent every client already sets; the copied-state toast beside this
|
|
130
|
+
* deliberately keeps its own near-black, because that one is a status message
|
|
131
|
+
* rather than a label and should not read as an action.
|
|
132
|
+
*
|
|
133
|
+
* Hover and focus-visible both, so a keyboard user gets the same affordance —
|
|
134
|
+
* the buttons are icon-only below the `sm` breakpoint, where the label is the
|
|
135
|
+
* only thing naming them.
|
|
136
|
+
*/
|
|
137
|
+
.web5-user-query__tooltip {
|
|
138
|
+
position: absolute;
|
|
139
|
+
top: calc(100% + 6px);
|
|
140
|
+
right: 0;
|
|
141
|
+
z-index: 20;
|
|
142
|
+
padding: 5px 10px;
|
|
143
|
+
border-radius: 6px;
|
|
144
|
+
background: hsl(var(--primary, 262 83% 58%));
|
|
145
|
+
color: hsl(var(--primary-foreground, 0 0% 100%));
|
|
146
|
+
font-size: 12px;
|
|
147
|
+
line-height: 1.4;
|
|
148
|
+
white-space: nowrap;
|
|
149
|
+
pointer-events: none;
|
|
150
|
+
opacity: 0;
|
|
151
|
+
transform: translateY(-2px);
|
|
152
|
+
transition:
|
|
153
|
+
opacity 120ms ease-out,
|
|
154
|
+
transform 120ms ease-out;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.web5-user-query__action:hover .web5-user-query__tooltip,
|
|
158
|
+
.web5-user-query__action:focus-within .web5-user-query__tooltip {
|
|
159
|
+
opacity: 1;
|
|
160
|
+
transform: translateY(0);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/*
|
|
164
|
+
* Touch has no hover, so a tooltip there is either permanently invisible or
|
|
165
|
+
* permanently in the way. The buttons carry `aria-label`, which is what
|
|
166
|
+
* actually names them for anyone who needs it.
|
|
167
|
+
*/
|
|
168
|
+
@media (pointer: coarse) {
|
|
169
|
+
.web5-user-query__tooltip {
|
|
170
|
+
display: none;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@media (prefers-reduced-motion: reduce) {
|
|
175
|
+
.web5-user-query__tooltip {
|
|
176
|
+
transition: none;
|
|
177
|
+
}
|
|
178
|
+
}
|