@burdenoff/website-sdk 2026.1028.1 → 2026.1031.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +159 -1
- package/dist/avatar-live/index.d.mts +11 -0
- package/dist/avatar-live/index.d.ts +11 -0
- package/dist/avatar-live/index.js +120 -0
- package/dist/avatar-live/index.js.map +1 -0
- package/dist/avatar-live/index.mjs +118 -0
- package/dist/avatar-live/index.mjs.map +1 -0
- package/dist/avatar-live-view/index.d.mts +42 -0
- package/dist/avatar-live-view/index.d.ts +42 -0
- package/dist/avatar-live-view/index.js +1422 -0
- package/dist/avatar-live-view/index.js.map +1 -0
- package/dist/avatar-live-view/index.mjs +1420 -0
- package/dist/avatar-live-view/index.mjs.map +1 -0
- package/dist/components/contact.js +9 -3
- package/dist/components/contact.js.map +1 -1
- package/dist/components/contact.mjs +9 -3
- package/dist/components/contact.mjs.map +1 -1
- package/dist/components/explore.d.mts +2 -2
- package/dist/components/explore.d.ts +2 -2
- package/dist/components/explore.js +11 -4
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +11 -4
- package/dist/components/explore.mjs.map +1 -1
- package/dist/components/partners.js +9 -3
- package/dist/components/partners.js.map +1 -1
- package/dist/components/partners.mjs +9 -3
- package/dist/components/partners.mjs.map +1 -1
- package/dist/{explore-BEgq1_0O.d.mts → explore-DUTNYUOm.d.mts} +1 -1
- package/dist/{explore-CHiP9u-4.d.ts → explore-DjQE7Xia.d.ts} +1 -1
- package/dist/explore-avatar-live-config-B171o1Yo.d.ts +283 -0
- package/dist/explore-avatar-live-config-BGsGwbcq.d.mts +283 -0
- package/dist/{explore-types-_9UJu6EA.d.mts → explore-types-Bb2Ih3d8.d.mts} +1 -1
- package/dist/{explore-types-_9UJu6EA.d.ts → explore-types-Bb2Ih3d8.d.ts} +1 -1
- package/dist/hooks/index.d.mts +3 -2
- package/dist/hooks/index.d.ts +3 -2
- package/dist/hooks/index.js +6 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +6 -1
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +16 -253
- package/dist/index.d.ts +16 -253
- package/dist/index.js +225 -41
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +225 -41
- package/dist/index.mjs.map +1 -1
- package/dist/types-CndbmBK-.d.mts +68 -0
- package/dist/types-CndbmBK-.d.ts +68 -0
- package/dist/{use-progressive-reveal-C0hkdu_i.d.ts → use-explore-chat-DunjG-3p.d.ts} +10 -36
- package/dist/{use-progressive-reveal-BFPWbEXy.d.mts → use-explore-chat-zRuoAin6.d.mts} +10 -36
- package/dist/use-progressive-reveal-ppicEgzZ.d.mts +35 -0
- package/dist/use-progressive-reveal-ppicEgzZ.d.ts +35 -0
- package/package.json +15 -3
package/dist/index.d.mts
CHANGED
|
@@ -18,12 +18,15 @@ export { LaunchCountdown, LaunchCountdownProps } from './components/launch-count
|
|
|
18
18
|
export { ProblemSolved, ProblemsSolvedSection, ProblemsSolvedSectionProps } from './components/problems-solved.mjs';
|
|
19
19
|
export { DetectedPlatform, ElectronDownloadLink, ElectronDownloadLinkProps, detectElectronPlatform } from './components/electron-download.mjs';
|
|
20
20
|
import { Components } from 'react-markdown';
|
|
21
|
-
import {
|
|
22
|
-
export {
|
|
21
|
+
import { a as ExploreLocale, E as ExplorePanelAvatarLive } from './explore-avatar-live-config-BGsGwbcq.mjs';
|
|
22
|
+
export { b as EXPLORE_LOCALES, c as ExploreStrings, s as speechLocaleOf } from './explore-avatar-live-config-BGsGwbcq.mjs';
|
|
23
|
+
import { A as AnswerRendererStrings, E as ExploreScope } from './explore-DUTNYUOm.mjs';
|
|
24
|
+
export { a as EXPLORE_PREFILL_MAX_LENGTH, b as ExploreAnswerBody, c as ExploreAnswerBodyProps, d as ExploreAnswerStyles, e as ExplorePage, f as ExplorePageProps, g as answerPlainText, h as answerSpeechText, i as exploreQuestionHref, j as inlineImageOrigins, k as isInlineImageAllowed, l as isInlineVideoAllowed, p as productSlugsByOrigin } from './explore-DUTNYUOm.mjs';
|
|
23
25
|
export { ExploreCta, ExploreCtaProps } from './components/explore-cta.mjs';
|
|
24
|
-
import { e as UseExploreChatResult, S as StagedAttachment } from './use-
|
|
25
|
-
export { D as DEFAULT_EXPLORE_EXAMPLE_PROMPTS, E as ExploreChatError, a as ExploreChatErrorKind, b as ExploreChatPhase, c as ExploreEscalateOutcome, d as ExploreEscalateResult, F as FALLBACK_EXPLORE_LIMITS, U as UseExploreChatOptions, f as
|
|
26
|
-
export { g as ESCALATE_EXPLORE_CONVERSATION_MUTATION, h as EXPLORE_CATALOG_QUERY, i as EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, j as EXPLORE_ESCALATION_NOTE_SOFT_MAX, k as EXPLORE_MESSAGE_QUERY, l as EscalateExploreConversationInput, m as EscalateExploreConversationResult,
|
|
26
|
+
import { e as UseExploreChatResult, S as StagedAttachment } from './use-explore-chat-zRuoAin6.mjs';
|
|
27
|
+
export { D as DEFAULT_EXPLORE_EXAMPLE_PROMPTS, E as ExploreChatError, a as ExploreChatErrorKind, b as ExploreChatPhase, c as ExploreEscalateOutcome, d as ExploreEscalateResult, F as FALLBACK_EXPLORE_LIMITS, U as UseExploreChatOptions, f as classifyExploreError, u as useExploreChat } from './use-explore-chat-zRuoAin6.mjs';
|
|
28
|
+
export { g as ESCALATE_EXPLORE_CONVERSATION_MUTATION, h as EXPLORE_CATALOG_QUERY, i as EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, j as EXPLORE_ESCALATION_NOTE_SOFT_MAX, k as EXPLORE_MESSAGE_QUERY, l as EscalateExploreConversationInput, m as EscalateExploreConversationResult, E as ExploreCatalog, n as ExploreCatalogQueryData, o as ExploreConceptHighlight, p as ExploreConversation, q as ExploreCtaKind, r as ExploreCtaLink, s as ExploreErrorCode, t as ExploreEscalation, d as ExploreLimits, a as ExploreMessage, u as ExploreMessageQueryData, v as ExploreMessageRole, w as ExploreMessageStatus, e as ExploreProduct, f as ExploreReference, S as SEND_EXPLORE_MESSAGE_MUTATION, x as SendExploreMessageInput, y as SendExploreMessageMutationData, z as SendExploreMessageResult, A as looksLikeDeliverableEmail } from './explore-types-Bb2Ih3d8.mjs';
|
|
29
|
+
export { U as UseSpeechOutputOptions, a as UseSpeechOutputResult, s as stopSpeaking, u as useProgressiveReveal, b as useSpeechOutput } from './use-progressive-reveal-ppicEgzZ.mjs';
|
|
27
30
|
export { RybbitAnalytics, RybbitAnalyticsProps } from './analytics/index.mjs';
|
|
28
31
|
export { PageHead, PageHeadProps } from './seo/index.mjs';
|
|
29
32
|
export { ProductData, ProductProvider, ProductProviderProps, PublicProductFetchResult, fetchPublicProduct, useProduct, useProductConfig } from './product/index.mjs';
|
|
@@ -33,6 +36,7 @@ import * as LabelPrimitive from '@radix-ui/react-label';
|
|
|
33
36
|
export { B as BrowseStoreResult, G as GroupedStoreProducts, P as ProductCard, a as ProductCategory, R as RatingDistribution, S as SearchSuggestion, b as StarRating, c as StoreBrowsePage, d as StoreBrowsePageProps, e as StoreFacet, f as StoreFacets, g as StoreHomePage, h as StoreHomePageProps, i as StorePageProps, j as StoreProduct, k as StoreProductDetailPage, l as StoreProductDetailPageProps, m as StoreProductDetails, n as StorePublisher, o as StoreReview, p as StoreTerminology, q as StoreTypeFilter, T as TypeBadge, r as formatDownloads, s as formatPrice } from './product-card-CGxETsFa.mjs';
|
|
34
37
|
export { EXPLORE_RECAPTCHA_ACTION, FOOTERLESS_ROUTES, PRODUCT_SLUG_ALIASES, PRODUCT_SLUG_EMIT, PRODUCT_SLUG_RENAMES, ProductSlugGeneration, ProductSlugRename, RecaptchaV3, cn, emitProductSlug, getRecaptchaV3Token, isFooterlessPath, isSameProductSlug, legacyProductSlug, loadRecaptchaV3, normalizeProductSlug, normalizeRoutePath, productSlugVariants, shouldRenderSiteFooter } from './utils/index.mjs';
|
|
35
38
|
export { ComparisonClaim, ComparisonSource, DEFAULT_COMPARISON_MAX_AGE_DAYS, FreshnessIssue, FreshnessOptions, FreshnessProblem, NonEmptySources, Sourced, checkComparisonFreshness, formatFreshnessReport, latestVerification, oldestVerification, parseVerifiedAt } from './comparison/index.mjs';
|
|
39
|
+
import './types-CndbmBK-.mjs';
|
|
36
40
|
import 'clsx';
|
|
37
41
|
|
|
38
42
|
interface CareersSubmissionFormProps {
|
|
@@ -487,253 +491,6 @@ declare function AnswersPage({ productName, siteUrl, answers, topics, cta, linkC
|
|
|
487
491
|
*/
|
|
488
492
|
declare function AnswerDetailPage(props: AnswerDetailPageProps): react.JSX.Element;
|
|
489
493
|
|
|
490
|
-
/**
|
|
491
|
-
* Localisation for the `/explore` chat surface.
|
|
492
|
-
*
|
|
493
|
-
* ## Why this is self-contained
|
|
494
|
-
*
|
|
495
|
-
* The app shells localise through `useI18n()` from `@burdenoff/fe-libs`, which is mounted by
|
|
496
|
-
* `AppShellProvider` and fetches translations at runtime from `global-i18n-svc`. None of that
|
|
497
|
-
* exists on a marketing website: no provider, no dictionary, no locale routing, and no
|
|
498
|
-
* translation files in any of the 39 site repos. Pulling that machinery in would mean adding
|
|
499
|
-
* a runtime translation fetch to a static prerendered page — a network round-trip in front of
|
|
500
|
-
* the first paint, on pages whose whole point is that they are prerendered.
|
|
501
|
-
*
|
|
502
|
-
* So the strings are bundled. There are few enough of them that the cost is bytes rather than
|
|
503
|
-
* a request, and a prerendered page stays fully rendered.
|
|
504
|
-
*
|
|
505
|
-
* ## Locales
|
|
506
|
-
*
|
|
507
|
-
* The six the products actually ship, taken from `{product}-app/src/components/chrome/
|
|
508
|
-
* languages.ts` (FALLBACK_LANGUAGES). Deliberately NOT the wider `Locale` union in fe-libs,
|
|
509
|
-
* which also lists fr/de/ja that no product ships, and deliberately not the backend's BCP-47
|
|
510
|
-
* set, which has fr/de/ja but lacks ta and ar.
|
|
511
|
-
*/
|
|
512
|
-
declare const EXPLORE_LOCALES: readonly ["en", "zh", "hi", "es", "ar", "ta"];
|
|
513
|
-
type ExploreLocale = (typeof EXPLORE_LOCALES)[number];
|
|
514
|
-
interface ExploreStrings {
|
|
515
|
-
badge: string;
|
|
516
|
-
welcomeTitle: string;
|
|
517
|
-
welcomeBody: string;
|
|
518
|
-
/**
|
|
519
|
-
* BOFF-9796: the welcome body of ONE product's own assistant (`scope="product"`) when the host passes none. Takes
|
|
520
|
-
* `{product}`. Problem-first like `welcomeBody`, and unlike the catalog's copy for a product site it offers nothing
|
|
521
|
-
* beyond that product: no "compare it with anything else we build".
|
|
522
|
-
*/
|
|
523
|
-
welcomeBodyProduct: string;
|
|
524
|
-
/**
|
|
525
|
-
* BOFF-9796: the product scope's welcome body when no product name is known (a slug no catalog lists, and no
|
|
526
|
-
* `productName`). Like `welcomeBodyProduct` without the name, so it never falls back to the portfolio's invitation
|
|
527
|
-
* to "ask about a specific product or compare a few".
|
|
528
|
-
*/
|
|
529
|
-
welcomeBodyScoped: string;
|
|
530
|
-
tryAsking: string;
|
|
531
|
-
focusProduct: string;
|
|
532
|
-
allProducts: string;
|
|
533
|
-
showAll: string;
|
|
534
|
-
showLess: string;
|
|
535
|
-
sources: string;
|
|
536
|
-
nextYouCouldAsk: string;
|
|
537
|
-
placeholder: string;
|
|
538
|
-
placeholderProduct: string;
|
|
539
|
-
/**
|
|
540
|
-
* BOFF-9796: the composer's placeholder on ONE product's own assistant (`scope="product"`). Takes `{product}`.
|
|
541
|
-
* Short on purpose, and the one thing about the composer that the product scope changes: the field is the published
|
|
542
|
-
* one, one line tall on a phone, where a placeholder that wraps loses its second line. `placeholderProduct`
|
|
543
|
-
* ("Describe a problem, or ask about Healthy Bowl…") wraps there at 390px and under; the English "Ask about Healthy
|
|
544
|
-
* Bowl…" fits one line at 320px and wider. Spanish and Tamil, the longest here, may still wrap at 320px and
|
|
545
|
-
* narrower: a follow-up (HealthyBowl, the site this was made for, is English-only). The welcome above the composer
|
|
546
|
-
* already asks for the problem.
|
|
547
|
-
*/
|
|
548
|
-
placeholderScoped: string;
|
|
549
|
-
send: string;
|
|
550
|
-
stop: string;
|
|
551
|
-
newChat: string;
|
|
552
|
-
history: string;
|
|
553
|
-
clearHistory: string;
|
|
554
|
-
share: string;
|
|
555
|
-
copied: string;
|
|
556
|
-
copying: string;
|
|
557
|
-
shareUnavailable: string;
|
|
558
|
-
disclaimer: string;
|
|
559
|
-
disclaimerShort: string;
|
|
560
|
-
dictate: string;
|
|
561
|
-
stopDictating: string;
|
|
562
|
-
attach: string;
|
|
563
|
-
attachHint: string;
|
|
564
|
-
removeAttachment: string;
|
|
565
|
-
attachmentNameOnly: string;
|
|
566
|
-
attachmentTooLarge: string;
|
|
567
|
-
attachmentTooMany: string;
|
|
568
|
-
noAnswer: string;
|
|
569
|
-
answerDidNotArrive: string;
|
|
570
|
-
/**
|
|
571
|
-
* BOFF-9796: what a turn that ran out of searches (`TOOL_BUDGET`) says on ONE product's own assistant
|
|
572
|
-
* (`scope="product"`). The default message asks for "two or three specific products", an invitation to other
|
|
573
|
-
* products that a product's own assistant must not make; here the narrowing offered is to one part of the question.
|
|
574
|
-
*/
|
|
575
|
-
toolBudgetScoped: string;
|
|
576
|
-
askHuman: string;
|
|
577
|
-
feedbackPrompt: string;
|
|
578
|
-
feedbackHelpful: string;
|
|
579
|
-
feedbackNotHelpful: string;
|
|
580
|
-
feedbackReasonTitle: string;
|
|
581
|
-
feedbackReasonInaccurate: string;
|
|
582
|
-
feedbackReasonIncomplete: string;
|
|
583
|
-
feedbackReasonOffTopic: string;
|
|
584
|
-
feedbackReasonHardToFollow: string;
|
|
585
|
-
feedbackReasonOther: string;
|
|
586
|
-
feedbackCommentPlaceholder: string;
|
|
587
|
-
feedbackSend: string;
|
|
588
|
-
feedbackDismiss: string;
|
|
589
|
-
feedbackThanks: string;
|
|
590
|
-
feedbackNotSent: string;
|
|
591
|
-
/**
|
|
592
|
-
* The trigger, in its two homes: `escalateOpen` is the quiet one under an answer we DID
|
|
593
|
-
* give, and the amber "we could not find this" banner reuses `askHuman` so that sentence
|
|
594
|
-
* keeps reading as one sentence.
|
|
595
|
-
*/
|
|
596
|
-
escalateOpen: string;
|
|
597
|
-
escalateTitle: string;
|
|
598
|
-
escalateBody: string;
|
|
599
|
-
escalateEmailLabel: string;
|
|
600
|
-
escalateEmailPlaceholder: string;
|
|
601
|
-
escalateNoteLabel: string;
|
|
602
|
-
escalateSubmit: string;
|
|
603
|
-
escalateSending: string;
|
|
604
|
-
escalateCancel: string;
|
|
605
|
-
/**
|
|
606
|
-
* Shown for BOTH the client's own pre-flight and the server's `INVALID_EMAIL`. The two
|
|
607
|
-
* disagree about what is deliverable and the server is right, but the visitor's next
|
|
608
|
-
* action is identical either way: check the address.
|
|
609
|
-
*/
|
|
610
|
-
escalateInvalidEmail: string;
|
|
611
|
-
/**
|
|
612
|
-
* The success line. Takes `{email}` — and it is filled with the address the SERVER
|
|
613
|
-
* returned, not the one in the box, because on a repeat handover the reply goes to
|
|
614
|
-
* whichever address the first one used.
|
|
615
|
-
*
|
|
616
|
-
* Used for `created: false` as well: a visitor asking for help is not told "you already
|
|
617
|
-
* did that".
|
|
618
|
-
*/
|
|
619
|
-
escalateSent: string;
|
|
620
|
-
escalateRateLimited: string;
|
|
621
|
-
escalateCaptcha: string;
|
|
622
|
-
escalateFailed: string;
|
|
623
|
-
prevSuggestion: string;
|
|
624
|
-
nextSuggestion: string;
|
|
625
|
-
/**
|
|
626
|
-
* The label every concept picture carries, wherever one is shown — inside an answer and on
|
|
627
|
-
* the welcome strip alike.
|
|
628
|
-
*
|
|
629
|
-
* These images are published mockups, so the page has to say so; it says it in ONE wording,
|
|
630
|
-
* because two phrasings for the same caveat read as two different caveats.
|
|
631
|
-
*/
|
|
632
|
-
conceptIllustration: string;
|
|
633
|
-
/** Rail arrows on the concept strip — pointer devices only. */
|
|
634
|
-
conceptScrollPrev: string;
|
|
635
|
-
conceptScrollNext: string;
|
|
636
|
-
opensInNewTab: string;
|
|
637
|
-
/** Heading over the concept strip on the welcome screen. */
|
|
638
|
-
conceptStripTitle: string;
|
|
639
|
-
/** Accessible name of the strip itself. */
|
|
640
|
-
conceptStripLabel: string;
|
|
641
|
-
/** Accessible name of one card. Takes `{title}` and `{product}`. */
|
|
642
|
-
conceptAsk: string;
|
|
643
|
-
/**
|
|
644
|
-
* The question a card actually SENDS. Takes `{title}` and `{product}`.
|
|
645
|
-
*
|
|
646
|
-
* Localised because it becomes the visitor's own message in the transcript — an English
|
|
647
|
-
* sentence appearing above an Arabic answer would read as the page talking to itself.
|
|
648
|
-
*/
|
|
649
|
-
conceptAskQuestion: string;
|
|
650
|
-
/** Label of the per-answer copy control, and its failure state. */
|
|
651
|
-
copyAnswer: string;
|
|
652
|
-
copyFailed: string;
|
|
653
|
-
/**
|
|
654
|
-
* Label of the per-answer read-aloud control, in its two states.
|
|
655
|
-
*
|
|
656
|
-
* A toggle, exactly like the composer's dictation button: one control whose label says
|
|
657
|
-
* what pressing it does NOW, never a second button that appears while it is speaking.
|
|
658
|
-
*/
|
|
659
|
-
readAloud: string;
|
|
660
|
-
stopReading: string;
|
|
661
|
-
/**
|
|
662
|
-
* Accessible name of the scrollable box a table in an answer sits in.
|
|
663
|
-
*
|
|
664
|
-
* A scrollable region needs a name and a tab stop, or a keyboard visitor cannot reach the
|
|
665
|
-
* columns that are off the edge. The `<table>` inside it keeps its own semantics.
|
|
666
|
-
*/
|
|
667
|
-
answerTable: string;
|
|
668
|
-
/**
|
|
669
|
-
* The product-video card in an answer (CONTRACT.md §7) and the player it opens.
|
|
670
|
-
*
|
|
671
|
-
* `productVideo` is the card's badge — the video counterpart of `conceptIllustration` —
|
|
672
|
-
* and names a video the answer gave no title. `productVideoTitle` names the video in this
|
|
673
|
-
* language and takes `{product}`: the harness always writes the line's text as the English
|
|
674
|
-
* "<Name> product video", so the card keeps only the name from it. `playVideo` is the
|
|
675
|
-
* card's accessible name and takes `{title}`, which is that name. The last four belong to
|
|
676
|
-
* the player: its Close button, the two states of its full-screen toggle, and the line
|
|
677
|
-
* shown in place of a video that cannot be played.
|
|
678
|
-
*/
|
|
679
|
-
productVideo: string;
|
|
680
|
-
productVideoTitle: string;
|
|
681
|
-
playVideo: string;
|
|
682
|
-
closeVideo: string;
|
|
683
|
-
enterFullScreen: string;
|
|
684
|
-
exitFullScreen: string;
|
|
685
|
-
/**
|
|
686
|
-
* BOFF-9697: the site-wide assistant panel (`ExplorePanel`). The tab, view and avatar words are the ones the product
|
|
687
|
-
* apps' assistant already ships in all six locales (Chat, Avatar, Live avatar, Assistant views).
|
|
688
|
-
*/
|
|
689
|
-
panelTitle: string;
|
|
690
|
-
/**
|
|
691
|
-
* BOFF-9796: the panel's title on one product's own assistant (`scope="product"`), "{product} assistant" in each
|
|
692
|
-
* language's own word order. Takes `{product}`. `panelTitle` stays the title wherever no product name is known.
|
|
693
|
-
*/
|
|
694
|
-
panelTitleProduct: string;
|
|
695
|
-
panelViews: string;
|
|
696
|
-
tabChat: string;
|
|
697
|
-
tabAvatar: string;
|
|
698
|
-
closePanel: string;
|
|
699
|
-
liveAvatar: string;
|
|
700
|
-
avatarComingSoon: string;
|
|
701
|
-
continueInChat: string;
|
|
702
|
-
videoUnavailable: string;
|
|
703
|
-
/** Accessible name of the provenance row under an answer. */
|
|
704
|
-
groundedIn: string;
|
|
705
|
-
/** How many sources the answer cites. `sourceCountMany` takes `{count}`. */
|
|
706
|
-
sourceCountOne: string;
|
|
707
|
-
sourceCountMany: string;
|
|
708
|
-
/** What KIND of page a source is, inferred from its URL. */
|
|
709
|
-
sourceKindConcept: string;
|
|
710
|
-
sourceKindDocs: string;
|
|
711
|
-
sourceKindPricing: string;
|
|
712
|
-
sourceKindUseCase: string;
|
|
713
|
-
sourceKindPage: string;
|
|
714
|
-
/**
|
|
715
|
-
* The page's <title> and <meta description>.
|
|
716
|
-
*
|
|
717
|
-
* These are the surface a search result and a browser tab are built from, and they are
|
|
718
|
-
* the LAST place the old product-first framing survived: all 38 sites hard-coded
|
|
719
|
-
* "Explore Burdenoff products with AI" inline, so the tab announced our catalogue on a
|
|
720
|
-
* page that asks the visitor about their problem — and named the wrong brand on 37 of
|
|
721
|
-
* them. `seoTitle` carries no brand: PageHead appends "| {productName}" itself.
|
|
722
|
-
*/
|
|
723
|
-
seoTitle: string;
|
|
724
|
-
seoDescription: string;
|
|
725
|
-
/** Used when the page belongs to a specific product's site. Takes `{product}`. */
|
|
726
|
-
seoDescriptionProduct: string;
|
|
727
|
-
/**
|
|
728
|
-
* BOFF-9796: the meta description of ONE product's own `/explore` (`scope="product"`). Takes `{product}`. Unlike
|
|
729
|
-
* `seoDescriptionProduct`, it promises nothing beyond that product: no "and every other product we build".
|
|
730
|
-
*/
|
|
731
|
-
seoDescriptionScoped: string;
|
|
732
|
-
capabilities: [string, string, string];
|
|
733
|
-
prompts: string[];
|
|
734
|
-
}
|
|
735
|
-
declare function speechLocaleOf(locale: ExploreLocale): string;
|
|
736
|
-
|
|
737
494
|
/**
|
|
738
495
|
* Localisation for the published answer pages.
|
|
739
496
|
*
|
|
@@ -924,6 +681,12 @@ interface ExplorePanelAvatar {
|
|
|
924
681
|
src: string;
|
|
925
682
|
/** The avatar's name, for the picture's text alternative. */
|
|
926
683
|
name?: string;
|
|
684
|
+
/**
|
|
685
|
+
* BOFF-9797. Opt in to the receive-only live avatar in the Avatar view, for this site. Absent (the default): the
|
|
686
|
+
* Avatar view is the picture, "Live avatar coming soon" and "Continue in Chat", exactly as before, and nothing is
|
|
687
|
+
* asked of any server. Needs the panel under an `ExploreChatProvider`. See the README's "Live avatar".
|
|
688
|
+
*/
|
|
689
|
+
live?: ExplorePanelAvatarLive;
|
|
927
690
|
}
|
|
928
691
|
interface ExplorePanelProps {
|
|
929
692
|
/** Whether the panel shows. The host owns it (its floating button opens the panel). */
|
|
@@ -1006,4 +769,4 @@ declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLP
|
|
|
1006
769
|
*/
|
|
1007
770
|
declare const ECOSYSTEM_PRODUCTS: WebsiteSwitcherProduct[];
|
|
1008
771
|
|
|
1009
|
-
export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, type AnswerDetailPageProps, type AnswerLinkComponent, type AnswerLinkProps, AnswerRendererStrings, type AnswerStrings, AnswersPage, type AnswersPageProps, Button, type ButtonProps, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CONCEPT_WORKFLOW_NOTICE, CareersPostingOption, CareersSubmissionForm, type CareersSubmissionFormProps, type Concept, type ConceptCategory, ConceptDetailPage, type ConceptDetailPageProps, type ConceptDevice, type ConceptImage, type ConceptLinkComponent, type ConceptLinkProps, type ConceptSolution, ConceptsPage, type ConceptsPageProps, DOMAINS_URL, ECOSYSTEM_PRODUCTS,
|
|
772
|
+
export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, type AnswerDetailPageProps, type AnswerLinkComponent, type AnswerLinkProps, AnswerRendererStrings, type AnswerStrings, AnswersPage, type AnswersPageProps, Button, type ButtonProps, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CONCEPT_WORKFLOW_NOTICE, CareersPostingOption, CareersSubmissionForm, type CareersSubmissionFormProps, type Concept, type ConceptCategory, ConceptDetailPage, type ConceptDetailPageProps, type ConceptDevice, type ConceptImage, type ConceptLinkComponent, type ConceptLinkProps, type ConceptSolution, ConceptsPage, type ConceptsPageProps, DOMAINS_URL, ECOSYSTEM_PRODUCTS, ExploreChatProvider, type ExploreChatProviderProps, type ExploreConversationOptions, type ExploreConversationState, ExploreLocale, ExplorePanel, type ExplorePanelAvatar, ExplorePanelAvatarLive, type ExplorePanelProps, ExploreScope, Input, Label, PUBLISHED_ANSWER_FIELDS, type PublishedAnswer, type PublishedAnswerSource, type PublishedAnswerTopic, Select, Textarea, UseExploreChatResult, WebsiteSwitcherProduct, answerPath, answerSourceHost, answerStrings, buttonVariants, conceptPath, formatAnswerDate, getAnswerBySlug, getConceptBySlug, isPublishedSourceUrl, isValidUrl, useExploreConversation };
|
package/dist/index.d.ts
CHANGED
|
@@ -18,12 +18,15 @@ export { LaunchCountdown, LaunchCountdownProps } from './components/launch-count
|
|
|
18
18
|
export { ProblemSolved, ProblemsSolvedSection, ProblemsSolvedSectionProps } from './components/problems-solved.js';
|
|
19
19
|
export { DetectedPlatform, ElectronDownloadLink, ElectronDownloadLinkProps, detectElectronPlatform } from './components/electron-download.js';
|
|
20
20
|
import { Components } from 'react-markdown';
|
|
21
|
-
import {
|
|
22
|
-
export {
|
|
21
|
+
import { a as ExploreLocale, E as ExplorePanelAvatarLive } from './explore-avatar-live-config-B171o1Yo.js';
|
|
22
|
+
export { b as EXPLORE_LOCALES, c as ExploreStrings, s as speechLocaleOf } from './explore-avatar-live-config-B171o1Yo.js';
|
|
23
|
+
import { A as AnswerRendererStrings, E as ExploreScope } from './explore-DjQE7Xia.js';
|
|
24
|
+
export { a as EXPLORE_PREFILL_MAX_LENGTH, b as ExploreAnswerBody, c as ExploreAnswerBodyProps, d as ExploreAnswerStyles, e as ExplorePage, f as ExplorePageProps, g as answerPlainText, h as answerSpeechText, i as exploreQuestionHref, j as inlineImageOrigins, k as isInlineImageAllowed, l as isInlineVideoAllowed, p as productSlugsByOrigin } from './explore-DjQE7Xia.js';
|
|
23
25
|
export { ExploreCta, ExploreCtaProps } from './components/explore-cta.js';
|
|
24
|
-
import { e as UseExploreChatResult, S as StagedAttachment } from './use-
|
|
25
|
-
export { D as DEFAULT_EXPLORE_EXAMPLE_PROMPTS, E as ExploreChatError, a as ExploreChatErrorKind, b as ExploreChatPhase, c as ExploreEscalateOutcome, d as ExploreEscalateResult, F as FALLBACK_EXPLORE_LIMITS, U as UseExploreChatOptions, f as
|
|
26
|
-
export { g as ESCALATE_EXPLORE_CONVERSATION_MUTATION, h as EXPLORE_CATALOG_QUERY, i as EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, j as EXPLORE_ESCALATION_NOTE_SOFT_MAX, k as EXPLORE_MESSAGE_QUERY, l as EscalateExploreConversationInput, m as EscalateExploreConversationResult,
|
|
26
|
+
import { e as UseExploreChatResult, S as StagedAttachment } from './use-explore-chat-DunjG-3p.js';
|
|
27
|
+
export { D as DEFAULT_EXPLORE_EXAMPLE_PROMPTS, E as ExploreChatError, a as ExploreChatErrorKind, b as ExploreChatPhase, c as ExploreEscalateOutcome, d as ExploreEscalateResult, F as FALLBACK_EXPLORE_LIMITS, U as UseExploreChatOptions, f as classifyExploreError, u as useExploreChat } from './use-explore-chat-DunjG-3p.js';
|
|
28
|
+
export { g as ESCALATE_EXPLORE_CONVERSATION_MUTATION, h as EXPLORE_CATALOG_QUERY, i as EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, j as EXPLORE_ESCALATION_NOTE_SOFT_MAX, k as EXPLORE_MESSAGE_QUERY, l as EscalateExploreConversationInput, m as EscalateExploreConversationResult, E as ExploreCatalog, n as ExploreCatalogQueryData, o as ExploreConceptHighlight, p as ExploreConversation, q as ExploreCtaKind, r as ExploreCtaLink, s as ExploreErrorCode, t as ExploreEscalation, d as ExploreLimits, a as ExploreMessage, u as ExploreMessageQueryData, v as ExploreMessageRole, w as ExploreMessageStatus, e as ExploreProduct, f as ExploreReference, S as SEND_EXPLORE_MESSAGE_MUTATION, x as SendExploreMessageInput, y as SendExploreMessageMutationData, z as SendExploreMessageResult, A as looksLikeDeliverableEmail } from './explore-types-Bb2Ih3d8.js';
|
|
29
|
+
export { U as UseSpeechOutputOptions, a as UseSpeechOutputResult, s as stopSpeaking, u as useProgressiveReveal, b as useSpeechOutput } from './use-progressive-reveal-ppicEgzZ.js';
|
|
27
30
|
export { RybbitAnalytics, RybbitAnalyticsProps } from './analytics/index.js';
|
|
28
31
|
export { PageHead, PageHeadProps } from './seo/index.js';
|
|
29
32
|
export { ProductData, ProductProvider, ProductProviderProps, PublicProductFetchResult, fetchPublicProduct, useProduct, useProductConfig } from './product/index.js';
|
|
@@ -33,6 +36,7 @@ import * as LabelPrimitive from '@radix-ui/react-label';
|
|
|
33
36
|
export { B as BrowseStoreResult, G as GroupedStoreProducts, P as ProductCard, a as ProductCategory, R as RatingDistribution, S as SearchSuggestion, b as StarRating, c as StoreBrowsePage, d as StoreBrowsePageProps, e as StoreFacet, f as StoreFacets, g as StoreHomePage, h as StoreHomePageProps, i as StorePageProps, j as StoreProduct, k as StoreProductDetailPage, l as StoreProductDetailPageProps, m as StoreProductDetails, n as StorePublisher, o as StoreReview, p as StoreTerminology, q as StoreTypeFilter, T as TypeBadge, r as formatDownloads, s as formatPrice } from './product-card-CGxETsFa.js';
|
|
34
37
|
export { EXPLORE_RECAPTCHA_ACTION, FOOTERLESS_ROUTES, PRODUCT_SLUG_ALIASES, PRODUCT_SLUG_EMIT, PRODUCT_SLUG_RENAMES, ProductSlugGeneration, ProductSlugRename, RecaptchaV3, cn, emitProductSlug, getRecaptchaV3Token, isFooterlessPath, isSameProductSlug, legacyProductSlug, loadRecaptchaV3, normalizeProductSlug, normalizeRoutePath, productSlugVariants, shouldRenderSiteFooter } from './utils/index.js';
|
|
35
38
|
export { ComparisonClaim, ComparisonSource, DEFAULT_COMPARISON_MAX_AGE_DAYS, FreshnessIssue, FreshnessOptions, FreshnessProblem, NonEmptySources, Sourced, checkComparisonFreshness, formatFreshnessReport, latestVerification, oldestVerification, parseVerifiedAt } from './comparison/index.js';
|
|
39
|
+
import './types-CndbmBK-.js';
|
|
36
40
|
import 'clsx';
|
|
37
41
|
|
|
38
42
|
interface CareersSubmissionFormProps {
|
|
@@ -487,253 +491,6 @@ declare function AnswersPage({ productName, siteUrl, answers, topics, cta, linkC
|
|
|
487
491
|
*/
|
|
488
492
|
declare function AnswerDetailPage(props: AnswerDetailPageProps): react.JSX.Element;
|
|
489
493
|
|
|
490
|
-
/**
|
|
491
|
-
* Localisation for the `/explore` chat surface.
|
|
492
|
-
*
|
|
493
|
-
* ## Why this is self-contained
|
|
494
|
-
*
|
|
495
|
-
* The app shells localise through `useI18n()` from `@burdenoff/fe-libs`, which is mounted by
|
|
496
|
-
* `AppShellProvider` and fetches translations at runtime from `global-i18n-svc`. None of that
|
|
497
|
-
* exists on a marketing website: no provider, no dictionary, no locale routing, and no
|
|
498
|
-
* translation files in any of the 39 site repos. Pulling that machinery in would mean adding
|
|
499
|
-
* a runtime translation fetch to a static prerendered page — a network round-trip in front of
|
|
500
|
-
* the first paint, on pages whose whole point is that they are prerendered.
|
|
501
|
-
*
|
|
502
|
-
* So the strings are bundled. There are few enough of them that the cost is bytes rather than
|
|
503
|
-
* a request, and a prerendered page stays fully rendered.
|
|
504
|
-
*
|
|
505
|
-
* ## Locales
|
|
506
|
-
*
|
|
507
|
-
* The six the products actually ship, taken from `{product}-app/src/components/chrome/
|
|
508
|
-
* languages.ts` (FALLBACK_LANGUAGES). Deliberately NOT the wider `Locale` union in fe-libs,
|
|
509
|
-
* which also lists fr/de/ja that no product ships, and deliberately not the backend's BCP-47
|
|
510
|
-
* set, which has fr/de/ja but lacks ta and ar.
|
|
511
|
-
*/
|
|
512
|
-
declare const EXPLORE_LOCALES: readonly ["en", "zh", "hi", "es", "ar", "ta"];
|
|
513
|
-
type ExploreLocale = (typeof EXPLORE_LOCALES)[number];
|
|
514
|
-
interface ExploreStrings {
|
|
515
|
-
badge: string;
|
|
516
|
-
welcomeTitle: string;
|
|
517
|
-
welcomeBody: string;
|
|
518
|
-
/**
|
|
519
|
-
* BOFF-9796: the welcome body of ONE product's own assistant (`scope="product"`) when the host passes none. Takes
|
|
520
|
-
* `{product}`. Problem-first like `welcomeBody`, and unlike the catalog's copy for a product site it offers nothing
|
|
521
|
-
* beyond that product: no "compare it with anything else we build".
|
|
522
|
-
*/
|
|
523
|
-
welcomeBodyProduct: string;
|
|
524
|
-
/**
|
|
525
|
-
* BOFF-9796: the product scope's welcome body when no product name is known (a slug no catalog lists, and no
|
|
526
|
-
* `productName`). Like `welcomeBodyProduct` without the name, so it never falls back to the portfolio's invitation
|
|
527
|
-
* to "ask about a specific product or compare a few".
|
|
528
|
-
*/
|
|
529
|
-
welcomeBodyScoped: string;
|
|
530
|
-
tryAsking: string;
|
|
531
|
-
focusProduct: string;
|
|
532
|
-
allProducts: string;
|
|
533
|
-
showAll: string;
|
|
534
|
-
showLess: string;
|
|
535
|
-
sources: string;
|
|
536
|
-
nextYouCouldAsk: string;
|
|
537
|
-
placeholder: string;
|
|
538
|
-
placeholderProduct: string;
|
|
539
|
-
/**
|
|
540
|
-
* BOFF-9796: the composer's placeholder on ONE product's own assistant (`scope="product"`). Takes `{product}`.
|
|
541
|
-
* Short on purpose, and the one thing about the composer that the product scope changes: the field is the published
|
|
542
|
-
* one, one line tall on a phone, where a placeholder that wraps loses its second line. `placeholderProduct`
|
|
543
|
-
* ("Describe a problem, or ask about Healthy Bowl…") wraps there at 390px and under; the English "Ask about Healthy
|
|
544
|
-
* Bowl…" fits one line at 320px and wider. Spanish and Tamil, the longest here, may still wrap at 320px and
|
|
545
|
-
* narrower: a follow-up (HealthyBowl, the site this was made for, is English-only). The welcome above the composer
|
|
546
|
-
* already asks for the problem.
|
|
547
|
-
*/
|
|
548
|
-
placeholderScoped: string;
|
|
549
|
-
send: string;
|
|
550
|
-
stop: string;
|
|
551
|
-
newChat: string;
|
|
552
|
-
history: string;
|
|
553
|
-
clearHistory: string;
|
|
554
|
-
share: string;
|
|
555
|
-
copied: string;
|
|
556
|
-
copying: string;
|
|
557
|
-
shareUnavailable: string;
|
|
558
|
-
disclaimer: string;
|
|
559
|
-
disclaimerShort: string;
|
|
560
|
-
dictate: string;
|
|
561
|
-
stopDictating: string;
|
|
562
|
-
attach: string;
|
|
563
|
-
attachHint: string;
|
|
564
|
-
removeAttachment: string;
|
|
565
|
-
attachmentNameOnly: string;
|
|
566
|
-
attachmentTooLarge: string;
|
|
567
|
-
attachmentTooMany: string;
|
|
568
|
-
noAnswer: string;
|
|
569
|
-
answerDidNotArrive: string;
|
|
570
|
-
/**
|
|
571
|
-
* BOFF-9796: what a turn that ran out of searches (`TOOL_BUDGET`) says on ONE product's own assistant
|
|
572
|
-
* (`scope="product"`). The default message asks for "two or three specific products", an invitation to other
|
|
573
|
-
* products that a product's own assistant must not make; here the narrowing offered is to one part of the question.
|
|
574
|
-
*/
|
|
575
|
-
toolBudgetScoped: string;
|
|
576
|
-
askHuman: string;
|
|
577
|
-
feedbackPrompt: string;
|
|
578
|
-
feedbackHelpful: string;
|
|
579
|
-
feedbackNotHelpful: string;
|
|
580
|
-
feedbackReasonTitle: string;
|
|
581
|
-
feedbackReasonInaccurate: string;
|
|
582
|
-
feedbackReasonIncomplete: string;
|
|
583
|
-
feedbackReasonOffTopic: string;
|
|
584
|
-
feedbackReasonHardToFollow: string;
|
|
585
|
-
feedbackReasonOther: string;
|
|
586
|
-
feedbackCommentPlaceholder: string;
|
|
587
|
-
feedbackSend: string;
|
|
588
|
-
feedbackDismiss: string;
|
|
589
|
-
feedbackThanks: string;
|
|
590
|
-
feedbackNotSent: string;
|
|
591
|
-
/**
|
|
592
|
-
* The trigger, in its two homes: `escalateOpen` is the quiet one under an answer we DID
|
|
593
|
-
* give, and the amber "we could not find this" banner reuses `askHuman` so that sentence
|
|
594
|
-
* keeps reading as one sentence.
|
|
595
|
-
*/
|
|
596
|
-
escalateOpen: string;
|
|
597
|
-
escalateTitle: string;
|
|
598
|
-
escalateBody: string;
|
|
599
|
-
escalateEmailLabel: string;
|
|
600
|
-
escalateEmailPlaceholder: string;
|
|
601
|
-
escalateNoteLabel: string;
|
|
602
|
-
escalateSubmit: string;
|
|
603
|
-
escalateSending: string;
|
|
604
|
-
escalateCancel: string;
|
|
605
|
-
/**
|
|
606
|
-
* Shown for BOTH the client's own pre-flight and the server's `INVALID_EMAIL`. The two
|
|
607
|
-
* disagree about what is deliverable and the server is right, but the visitor's next
|
|
608
|
-
* action is identical either way: check the address.
|
|
609
|
-
*/
|
|
610
|
-
escalateInvalidEmail: string;
|
|
611
|
-
/**
|
|
612
|
-
* The success line. Takes `{email}` — and it is filled with the address the SERVER
|
|
613
|
-
* returned, not the one in the box, because on a repeat handover the reply goes to
|
|
614
|
-
* whichever address the first one used.
|
|
615
|
-
*
|
|
616
|
-
* Used for `created: false` as well: a visitor asking for help is not told "you already
|
|
617
|
-
* did that".
|
|
618
|
-
*/
|
|
619
|
-
escalateSent: string;
|
|
620
|
-
escalateRateLimited: string;
|
|
621
|
-
escalateCaptcha: string;
|
|
622
|
-
escalateFailed: string;
|
|
623
|
-
prevSuggestion: string;
|
|
624
|
-
nextSuggestion: string;
|
|
625
|
-
/**
|
|
626
|
-
* The label every concept picture carries, wherever one is shown — inside an answer and on
|
|
627
|
-
* the welcome strip alike.
|
|
628
|
-
*
|
|
629
|
-
* These images are published mockups, so the page has to say so; it says it in ONE wording,
|
|
630
|
-
* because two phrasings for the same caveat read as two different caveats.
|
|
631
|
-
*/
|
|
632
|
-
conceptIllustration: string;
|
|
633
|
-
/** Rail arrows on the concept strip — pointer devices only. */
|
|
634
|
-
conceptScrollPrev: string;
|
|
635
|
-
conceptScrollNext: string;
|
|
636
|
-
opensInNewTab: string;
|
|
637
|
-
/** Heading over the concept strip on the welcome screen. */
|
|
638
|
-
conceptStripTitle: string;
|
|
639
|
-
/** Accessible name of the strip itself. */
|
|
640
|
-
conceptStripLabel: string;
|
|
641
|
-
/** Accessible name of one card. Takes `{title}` and `{product}`. */
|
|
642
|
-
conceptAsk: string;
|
|
643
|
-
/**
|
|
644
|
-
* The question a card actually SENDS. Takes `{title}` and `{product}`.
|
|
645
|
-
*
|
|
646
|
-
* Localised because it becomes the visitor's own message in the transcript — an English
|
|
647
|
-
* sentence appearing above an Arabic answer would read as the page talking to itself.
|
|
648
|
-
*/
|
|
649
|
-
conceptAskQuestion: string;
|
|
650
|
-
/** Label of the per-answer copy control, and its failure state. */
|
|
651
|
-
copyAnswer: string;
|
|
652
|
-
copyFailed: string;
|
|
653
|
-
/**
|
|
654
|
-
* Label of the per-answer read-aloud control, in its two states.
|
|
655
|
-
*
|
|
656
|
-
* A toggle, exactly like the composer's dictation button: one control whose label says
|
|
657
|
-
* what pressing it does NOW, never a second button that appears while it is speaking.
|
|
658
|
-
*/
|
|
659
|
-
readAloud: string;
|
|
660
|
-
stopReading: string;
|
|
661
|
-
/**
|
|
662
|
-
* Accessible name of the scrollable box a table in an answer sits in.
|
|
663
|
-
*
|
|
664
|
-
* A scrollable region needs a name and a tab stop, or a keyboard visitor cannot reach the
|
|
665
|
-
* columns that are off the edge. The `<table>` inside it keeps its own semantics.
|
|
666
|
-
*/
|
|
667
|
-
answerTable: string;
|
|
668
|
-
/**
|
|
669
|
-
* The product-video card in an answer (CONTRACT.md §7) and the player it opens.
|
|
670
|
-
*
|
|
671
|
-
* `productVideo` is the card's badge — the video counterpart of `conceptIllustration` —
|
|
672
|
-
* and names a video the answer gave no title. `productVideoTitle` names the video in this
|
|
673
|
-
* language and takes `{product}`: the harness always writes the line's text as the English
|
|
674
|
-
* "<Name> product video", so the card keeps only the name from it. `playVideo` is the
|
|
675
|
-
* card's accessible name and takes `{title}`, which is that name. The last four belong to
|
|
676
|
-
* the player: its Close button, the two states of its full-screen toggle, and the line
|
|
677
|
-
* shown in place of a video that cannot be played.
|
|
678
|
-
*/
|
|
679
|
-
productVideo: string;
|
|
680
|
-
productVideoTitle: string;
|
|
681
|
-
playVideo: string;
|
|
682
|
-
closeVideo: string;
|
|
683
|
-
enterFullScreen: string;
|
|
684
|
-
exitFullScreen: string;
|
|
685
|
-
/**
|
|
686
|
-
* BOFF-9697: the site-wide assistant panel (`ExplorePanel`). The tab, view and avatar words are the ones the product
|
|
687
|
-
* apps' assistant already ships in all six locales (Chat, Avatar, Live avatar, Assistant views).
|
|
688
|
-
*/
|
|
689
|
-
panelTitle: string;
|
|
690
|
-
/**
|
|
691
|
-
* BOFF-9796: the panel's title on one product's own assistant (`scope="product"`), "{product} assistant" in each
|
|
692
|
-
* language's own word order. Takes `{product}`. `panelTitle` stays the title wherever no product name is known.
|
|
693
|
-
*/
|
|
694
|
-
panelTitleProduct: string;
|
|
695
|
-
panelViews: string;
|
|
696
|
-
tabChat: string;
|
|
697
|
-
tabAvatar: string;
|
|
698
|
-
closePanel: string;
|
|
699
|
-
liveAvatar: string;
|
|
700
|
-
avatarComingSoon: string;
|
|
701
|
-
continueInChat: string;
|
|
702
|
-
videoUnavailable: string;
|
|
703
|
-
/** Accessible name of the provenance row under an answer. */
|
|
704
|
-
groundedIn: string;
|
|
705
|
-
/** How many sources the answer cites. `sourceCountMany` takes `{count}`. */
|
|
706
|
-
sourceCountOne: string;
|
|
707
|
-
sourceCountMany: string;
|
|
708
|
-
/** What KIND of page a source is, inferred from its URL. */
|
|
709
|
-
sourceKindConcept: string;
|
|
710
|
-
sourceKindDocs: string;
|
|
711
|
-
sourceKindPricing: string;
|
|
712
|
-
sourceKindUseCase: string;
|
|
713
|
-
sourceKindPage: string;
|
|
714
|
-
/**
|
|
715
|
-
* The page's <title> and <meta description>.
|
|
716
|
-
*
|
|
717
|
-
* These are the surface a search result and a browser tab are built from, and they are
|
|
718
|
-
* the LAST place the old product-first framing survived: all 38 sites hard-coded
|
|
719
|
-
* "Explore Burdenoff products with AI" inline, so the tab announced our catalogue on a
|
|
720
|
-
* page that asks the visitor about their problem — and named the wrong brand on 37 of
|
|
721
|
-
* them. `seoTitle` carries no brand: PageHead appends "| {productName}" itself.
|
|
722
|
-
*/
|
|
723
|
-
seoTitle: string;
|
|
724
|
-
seoDescription: string;
|
|
725
|
-
/** Used when the page belongs to a specific product's site. Takes `{product}`. */
|
|
726
|
-
seoDescriptionProduct: string;
|
|
727
|
-
/**
|
|
728
|
-
* BOFF-9796: the meta description of ONE product's own `/explore` (`scope="product"`). Takes `{product}`. Unlike
|
|
729
|
-
* `seoDescriptionProduct`, it promises nothing beyond that product: no "and every other product we build".
|
|
730
|
-
*/
|
|
731
|
-
seoDescriptionScoped: string;
|
|
732
|
-
capabilities: [string, string, string];
|
|
733
|
-
prompts: string[];
|
|
734
|
-
}
|
|
735
|
-
declare function speechLocaleOf(locale: ExploreLocale): string;
|
|
736
|
-
|
|
737
494
|
/**
|
|
738
495
|
* Localisation for the published answer pages.
|
|
739
496
|
*
|
|
@@ -924,6 +681,12 @@ interface ExplorePanelAvatar {
|
|
|
924
681
|
src: string;
|
|
925
682
|
/** The avatar's name, for the picture's text alternative. */
|
|
926
683
|
name?: string;
|
|
684
|
+
/**
|
|
685
|
+
* BOFF-9797. Opt in to the receive-only live avatar in the Avatar view, for this site. Absent (the default): the
|
|
686
|
+
* Avatar view is the picture, "Live avatar coming soon" and "Continue in Chat", exactly as before, and nothing is
|
|
687
|
+
* asked of any server. Needs the panel under an `ExploreChatProvider`. See the README's "Live avatar".
|
|
688
|
+
*/
|
|
689
|
+
live?: ExplorePanelAvatarLive;
|
|
927
690
|
}
|
|
928
691
|
interface ExplorePanelProps {
|
|
929
692
|
/** Whether the panel shows. The host owns it (its floating button opens the panel). */
|
|
@@ -1006,4 +769,4 @@ declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLP
|
|
|
1006
769
|
*/
|
|
1007
770
|
declare const ECOSYSTEM_PRODUCTS: WebsiteSwitcherProduct[];
|
|
1008
771
|
|
|
1009
|
-
export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, type AnswerDetailPageProps, type AnswerLinkComponent, type AnswerLinkProps, AnswerRendererStrings, type AnswerStrings, AnswersPage, type AnswersPageProps, Button, type ButtonProps, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CONCEPT_WORKFLOW_NOTICE, CareersPostingOption, CareersSubmissionForm, type CareersSubmissionFormProps, type Concept, type ConceptCategory, ConceptDetailPage, type ConceptDetailPageProps, type ConceptDevice, type ConceptImage, type ConceptLinkComponent, type ConceptLinkProps, type ConceptSolution, ConceptsPage, type ConceptsPageProps, DOMAINS_URL, ECOSYSTEM_PRODUCTS,
|
|
772
|
+
export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, type AnswerDetailPageProps, type AnswerLinkComponent, type AnswerLinkProps, AnswerRendererStrings, type AnswerStrings, AnswersPage, type AnswersPageProps, Button, type ButtonProps, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CONCEPT_WORKFLOW_NOTICE, CareersPostingOption, CareersSubmissionForm, type CareersSubmissionFormProps, type Concept, type ConceptCategory, ConceptDetailPage, type ConceptDetailPageProps, type ConceptDevice, type ConceptImage, type ConceptLinkComponent, type ConceptLinkProps, type ConceptSolution, ConceptsPage, type ConceptsPageProps, DOMAINS_URL, ECOSYSTEM_PRODUCTS, ExploreChatProvider, type ExploreChatProviderProps, type ExploreConversationOptions, type ExploreConversationState, ExploreLocale, ExplorePanel, type ExplorePanelAvatar, ExplorePanelAvatarLive, type ExplorePanelProps, ExploreScope, Input, Label, PUBLISHED_ANSWER_FIELDS, type PublishedAnswer, type PublishedAnswerSource, type PublishedAnswerTopic, Select, Textarea, UseExploreChatResult, WebsiteSwitcherProduct, answerPath, answerSourceHost, answerStrings, buttonVariants, conceptPath, formatAnswerDate, getAnswerBySlug, getConceptBySlug, isPublishedSourceUrl, isValidUrl, useExploreConversation };
|