@burdenoff/website-sdk 2026.1024.1 → 2026.1027.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 +77 -1
- package/dist/components/explore-cta.d.mts +10 -1
- package/dist/components/explore-cta.d.ts +10 -1
- package/dist/components/explore-cta.js +82 -74
- package/dist/components/explore-cta.js.map +1 -1
- package/dist/components/explore-cta.mjs +83 -75
- package/dist/components/explore-cta.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 +876 -510
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +877 -511
- package/dist/components/explore.mjs.map +1 -1
- package/dist/{explore-POqE7J8r.d.mts → explore-BEgq1_0O.d.mts} +65 -3
- package/dist/{explore-D6kon7uz.d.ts → explore-CHiP9u-4.d.ts} +65 -3
- package/dist/{explore-types-BB8HNFzX.d.mts → explore-types-_9UJu6EA.d.mts} +1 -1
- package/dist/{explore-types-BB8HNFzX.d.ts → explore-types-_9UJu6EA.d.ts} +1 -1
- package/dist/hooks/index.d.mts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +15 -9
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +15 -9
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +177 -6
- package/dist/index.d.ts +177 -6
- package/dist/index.js +1236 -152
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1236 -155
- package/dist/index.mjs.map +1 -1
- package/dist/{use-progressive-reveal-Kr6DwGXG.d.mts → use-progressive-reveal-BFPWbEXy.d.mts} +25 -2
- package/dist/{use-progressive-reveal-BVJn9NIr.d.ts → use-progressive-reveal-C0hkdu_i.d.ts} +25 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -5,7 +5,7 @@ export { PartnersPage, PartnersPageProps } from './components/partners.mjs';
|
|
|
5
5
|
import { C as CareersPostingOption } from './index-Ctws7kGs.mjs';
|
|
6
6
|
export { B as BlogListPage, a as BlogListPageProps, b as BlogPostPage, c as BlogPostPageProps, d as CareersApplyForm, e as CareersApplyFormProps, f as CaseStudiesListPage, g as CaseStudiesListPageProps, h as CaseStudyPage, i as CaseStudyPageProps, j as ChangelogEntry, k as ChangelogPage, l as ChangelogPageProps, m as ContentPageData, n as ContentPageListData, o as ContentPageListItem, p as ContentRenderer, q as ContractAsset, r as ContractsPage, s as ContractsPageProps, F as FetchLegalContentOptions, L as LEGAL_DOCUMENTS, t as LEGAL_DOCUMENT_KEYS, u as LegalContentEntry, v as LegalDocument, w as LegalDocumentKey, x as LegalPage, y as LegalPageProps, M as Markdown, z as MarkdownProps, P as PressKitAsset, A as PressKitAssetCategory, D as PressKitPage, E as PressKitPageProps, G as PublicInterviewRoundConfig, H as PublicJobPosting, U as UsePublicJobPostingOptions, I as UsePublicJobPostingsOptions, J as fetchLegalContent, K as fetchLegalContentPage, N as fetchPublicJobPosting, O as fetchPublicJobPostings, Q as fetchPublicJobPostingsForSubmission, R as findLegalDocument, S as formatLegalDate, T as splitLeadingHeading, V as useContentPage, W as useContentPages, X as usePublicJobPosting, Y as usePublicJobPostings, Z as usePublicJobPostingsForSubmission } from './index-Ctws7kGs.mjs';
|
|
7
7
|
import * as react from 'react';
|
|
8
|
-
import { ComponentType, ReactNode } from 'react';
|
|
8
|
+
import { ComponentType, ReactNode, Dispatch, SetStateAction, RefObject } from 'react';
|
|
9
9
|
export { NewsletterForm, NewsletterFormProps, NewsletterPage, NewsletterPageProps } from './components/newsletter.mjs';
|
|
10
10
|
export { PlanCard, PricingPage, PricingProductKeyError, PricingProps, PricingSection, availablePlanCurrencies, cleanPlanDisplayName, isUuidLike, planPriceIn, resolvePricingProductKey } from './components/pricing.mjs';
|
|
11
11
|
export { WaitlistForm, WaitlistFormProps, WaitlistPage, WaitlistPageProps } from './components/waitlist.mjs';
|
|
@@ -18,11 +18,12 @@ 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 { A as AnswerRendererStrings } from './explore-
|
|
22
|
-
export {
|
|
21
|
+
import { A as AnswerRendererStrings, E as ExploreScope } from './explore-BEgq1_0O.mjs';
|
|
22
|
+
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-BEgq1_0O.mjs';
|
|
23
23
|
export { ExploreCta, ExploreCtaProps } from './components/explore-cta.mjs';
|
|
24
|
-
|
|
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,
|
|
24
|
+
import { e as UseExploreChatResult, S as StagedAttachment } from './use-progressive-reveal-BFPWbEXy.mjs';
|
|
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 UseSpeechOutputOptions, g as UseSpeechOutputResult, h as classifyExploreError, s as stopSpeaking, u as useExploreChat, i as useProgressiveReveal, j as useSpeechOutput } from './use-progressive-reveal-BFPWbEXy.mjs';
|
|
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, b as ExploreCatalog, n as ExploreCatalogQueryData, o as ExploreConceptHighlight, p as ExploreConversation, q as ExploreCtaKind, r as ExploreCtaLink, s as ExploreErrorCode, t as ExploreEscalation, f as ExploreLimits, c as ExploreMessage, u as ExploreMessageQueryData, v as ExploreMessageRole, w as ExploreMessageStatus, E as ExploreProduct, a as ExploreReference, S as SEND_EXPLORE_MESSAGE_MUTATION, x as SendExploreMessageInput, y as SendExploreMessageMutationData, z as SendExploreMessageResult, A as looksLikeDeliverableEmail } from './explore-types-_9UJu6EA.mjs';
|
|
26
27
|
export { RybbitAnalytics, RybbitAnalyticsProps } from './analytics/index.mjs';
|
|
27
28
|
export { PageHead, PageHeadProps } from './seo/index.mjs';
|
|
28
29
|
export { ProductData, ProductProvider, ProductProviderProps, PublicProductFetchResult, fetchPublicProduct, useProduct, useProductConfig } from './product/index.mjs';
|
|
@@ -513,6 +514,18 @@ interface ExploreStrings {
|
|
|
513
514
|
badge: string;
|
|
514
515
|
welcomeTitle: string;
|
|
515
516
|
welcomeBody: string;
|
|
517
|
+
/**
|
|
518
|
+
* BOFF-9796: the welcome body of ONE product's own assistant (`scope="product"`) when the host passes none. Takes
|
|
519
|
+
* `{product}`. Problem-first like `welcomeBody`, and unlike the catalog's copy for a product site it offers nothing
|
|
520
|
+
* beyond that product: no "compare it with anything else we build".
|
|
521
|
+
*/
|
|
522
|
+
welcomeBodyProduct: string;
|
|
523
|
+
/**
|
|
524
|
+
* BOFF-9796: the product scope's welcome body when no product name is known (a slug no catalog lists, and no
|
|
525
|
+
* `productName`). Like `welcomeBodyProduct` without the name, so it never falls back to the portfolio's invitation
|
|
526
|
+
* to "ask about a specific product or compare a few".
|
|
527
|
+
*/
|
|
528
|
+
welcomeBodyScoped: string;
|
|
516
529
|
tryAsking: string;
|
|
517
530
|
focusProduct: string;
|
|
518
531
|
allProducts: string;
|
|
@@ -522,6 +535,16 @@ interface ExploreStrings {
|
|
|
522
535
|
nextYouCouldAsk: string;
|
|
523
536
|
placeholder: string;
|
|
524
537
|
placeholderProduct: string;
|
|
538
|
+
/**
|
|
539
|
+
* BOFF-9796: the composer's placeholder on ONE product's own assistant (`scope="product"`). Takes `{product}`.
|
|
540
|
+
* Short on purpose, and the one thing about the composer that the product scope changes: the field is the published
|
|
541
|
+
* one, one line tall on a phone, where a placeholder that wraps loses its second line. `placeholderProduct`
|
|
542
|
+
* ("Describe a problem, or ask about Healthy Bowl…") wraps there at 390px and under; the English "Ask about Healthy
|
|
543
|
+
* Bowl…" fits one line at 320px and wider. Spanish and Tamil, the longest here, may still wrap at 320px and
|
|
544
|
+
* narrower: a follow-up (HealthyBowl, the site this was made for, is English-only). The welcome above the composer
|
|
545
|
+
* already asks for the problem.
|
|
546
|
+
*/
|
|
547
|
+
placeholderScoped: string;
|
|
525
548
|
send: string;
|
|
526
549
|
stop: string;
|
|
527
550
|
newChat: string;
|
|
@@ -543,6 +566,12 @@ interface ExploreStrings {
|
|
|
543
566
|
attachmentTooMany: string;
|
|
544
567
|
noAnswer: string;
|
|
545
568
|
answerDidNotArrive: string;
|
|
569
|
+
/**
|
|
570
|
+
* BOFF-9796: what a turn that ran out of searches (`TOOL_BUDGET`) says on ONE product's own assistant
|
|
571
|
+
* (`scope="product"`). The default message asks for "two or three specific products", an invitation to other
|
|
572
|
+
* products that a product's own assistant must not make; here the narrowing offered is to one part of the question.
|
|
573
|
+
*/
|
|
574
|
+
toolBudgetScoped: string;
|
|
546
575
|
askHuman: string;
|
|
547
576
|
feedbackPrompt: string;
|
|
548
577
|
feedbackHelpful: string;
|
|
@@ -652,6 +681,23 @@ interface ExploreStrings {
|
|
|
652
681
|
closeVideo: string;
|
|
653
682
|
enterFullScreen: string;
|
|
654
683
|
exitFullScreen: string;
|
|
684
|
+
/**
|
|
685
|
+
* BOFF-9697: the site-wide assistant panel (`ExplorePanel`). The tab, view and avatar words are the ones the product
|
|
686
|
+
* apps' assistant already ships in all six locales (Chat, Avatar, Live avatar, Assistant views).
|
|
687
|
+
*/
|
|
688
|
+
panelTitle: string;
|
|
689
|
+
/**
|
|
690
|
+
* BOFF-9796: the panel's title on one product's own assistant (`scope="product"`), "{product} assistant" in each
|
|
691
|
+
* language's own word order. Takes `{product}`. `panelTitle` stays the title wherever no product name is known.
|
|
692
|
+
*/
|
|
693
|
+
panelTitleProduct: string;
|
|
694
|
+
panelViews: string;
|
|
695
|
+
tabChat: string;
|
|
696
|
+
tabAvatar: string;
|
|
697
|
+
closePanel: string;
|
|
698
|
+
liveAvatar: string;
|
|
699
|
+
avatarComingSoon: string;
|
|
700
|
+
continueInChat: string;
|
|
655
701
|
videoUnavailable: string;
|
|
656
702
|
/** Accessible name of the provenance row under an answer. */
|
|
657
703
|
groundedIn: string;
|
|
@@ -677,6 +723,11 @@ interface ExploreStrings {
|
|
|
677
723
|
seoDescription: string;
|
|
678
724
|
/** Used when the page belongs to a specific product's site. Takes `{product}`. */
|
|
679
725
|
seoDescriptionProduct: string;
|
|
726
|
+
/**
|
|
727
|
+
* BOFF-9796: the meta description of ONE product's own `/explore` (`scope="product"`). Takes `{product}`. Unlike
|
|
728
|
+
* `seoDescriptionProduct`, it promises nothing beyond that product: no "and every other product we build".
|
|
729
|
+
*/
|
|
730
|
+
seoDescriptionScoped: string;
|
|
680
731
|
capabilities: [string, string, string];
|
|
681
732
|
prompts: string[];
|
|
682
733
|
}
|
|
@@ -808,6 +859,126 @@ declare function answerStrings(locale: ExploreLocale): AnswerStrings;
|
|
|
808
859
|
*/
|
|
809
860
|
declare function formatAnswerDate(value: string, locale: ExploreLocale): string;
|
|
810
861
|
|
|
862
|
+
/** One conversation and the composer state that belongs to it: what a page and a panel share. */
|
|
863
|
+
interface ExploreConversationState extends UseExploreChatResult {
|
|
864
|
+
/** The composer's text, kept with the conversation so it survives Expand, Restore and a route change. */
|
|
865
|
+
readonly draft: string;
|
|
866
|
+
readonly setDraft: Dispatch<SetStateAction<string>>;
|
|
867
|
+
/** Files staged for the next question, kept the same way. */
|
|
868
|
+
readonly staged: StagedAttachment[];
|
|
869
|
+
readonly setStaged: Dispatch<SetStateAction<StagedAttachment[]>>;
|
|
870
|
+
}
|
|
871
|
+
interface ExploreConversationOptions {
|
|
872
|
+
/** Slug of the product site — a soft hint to the harness. */
|
|
873
|
+
productSlug?: string;
|
|
874
|
+
/** BCP-47 locale for the fallback welcome and example prompts (the six product locales). */
|
|
875
|
+
locale?: string;
|
|
876
|
+
/** Example prompts when `exploreCatalog` supplies none. */
|
|
877
|
+
examplePrompts?: string[];
|
|
878
|
+
/** Fired with the message text every time a send is accepted. */
|
|
879
|
+
onSend?: (message: string) => void;
|
|
880
|
+
/**
|
|
881
|
+
* The page the visitor is on, forwarded with each question. Default: the URL when the conversation was set up
|
|
882
|
+
* (what `ExplorePage` has always sent). A site-wide provider passes the current one.
|
|
883
|
+
*/
|
|
884
|
+
pageUrl?: string;
|
|
885
|
+
/** See `UseExploreChatOptions.enabled`. Default `true`. */
|
|
886
|
+
enabled?: boolean;
|
|
887
|
+
/**
|
|
888
|
+
* See `UseExploreChatOptions.shareToken`. Unset: read from the URL, as `ExplorePage` always has. A site-wide
|
|
889
|
+
* provider passes the `?c=` token of the route showing `/explore` (`null` elsewhere), and is given that token as its
|
|
890
|
+
* `key`, so a different shared link starts its own conversation.
|
|
891
|
+
*/
|
|
892
|
+
shareToken?: string | null;
|
|
893
|
+
}
|
|
894
|
+
/**
|
|
895
|
+
* The conversation exactly as `ExplorePage` sets it up for itself: the same `useExploreChat` options (the locale's
|
|
896
|
+
* fallback welcome and prompts, the URL at mount), plus the composer's draft and staged files.
|
|
897
|
+
*/
|
|
898
|
+
declare function useExploreConversation(options?: ExploreConversationOptions): ExploreConversationState;
|
|
899
|
+
interface ExploreChatProviderProps extends Omit<ExploreConversationOptions, "enabled" | "shareToken"> {
|
|
900
|
+
/**
|
|
901
|
+
* Start the conversation. Pass `true` from the visitor's first opening of the assistant, or while the `/explore`
|
|
902
|
+
* route is shown; until then the provider asks nothing (no catalog request, no restore). Latched: once it has been
|
|
903
|
+
* `true` the conversation stays live, so a running answer is never cut by the host flipping it back.
|
|
904
|
+
*/
|
|
905
|
+
enabled: boolean;
|
|
906
|
+
/**
|
|
907
|
+
* The `?c=` share token of the route showing `/explore`, from the host's router, and `null` on every other route.
|
|
908
|
+
* Required: the provider outlives every page, so reading `?c=` from whatever page it first mounted on would turn an
|
|
909
|
+
* unrelated `?c=` into a "shared conversation not found", and keep a real one for the rest of the visit.
|
|
910
|
+
*/
|
|
911
|
+
shareToken: string | null;
|
|
912
|
+
children?: ReactNode;
|
|
913
|
+
}
|
|
914
|
+
/**
|
|
915
|
+
* ONE conversation for the whole site (BOFF-9697). Mount it once, above the routes (inside the router, so the host
|
|
916
|
+
* can pass the current `pageUrl` and `shareToken`), and put the `ExplorePanel` and every `ExplorePage` under it.
|
|
917
|
+
* Key it by `shareToken`: a shared link is its own read-only conversation, and leaving it returns to the visitor's.
|
|
918
|
+
*/
|
|
919
|
+
declare function ExploreChatProvider({ enabled, children, ...options }: ExploreChatProviderProps): react.JSX.Element;
|
|
920
|
+
|
|
921
|
+
interface ExplorePanelAvatar {
|
|
922
|
+
/** The approved picture: a URL the page may load. */
|
|
923
|
+
src: string;
|
|
924
|
+
/** The avatar's name, for the picture's text alternative. */
|
|
925
|
+
name?: string;
|
|
926
|
+
}
|
|
927
|
+
interface ExplorePanelProps {
|
|
928
|
+
/** Whether the panel shows. The host owns it (its floating button opens the panel). */
|
|
929
|
+
open: boolean;
|
|
930
|
+
/**
|
|
931
|
+
* Called with `false` when the visitor closes the panel: the close button, Escape, the phone's Back, or following a
|
|
932
|
+
* link from the conversation on a phone.
|
|
933
|
+
*/
|
|
934
|
+
onOpenChange: (open: boolean) => void;
|
|
935
|
+
/** The panel's id, for the button's `controls`. Default `boff-explore-panel`. */
|
|
936
|
+
id?: string;
|
|
937
|
+
/** Passed to the chat view (`ExplorePage`). */
|
|
938
|
+
productSlug?: string;
|
|
939
|
+
locale?: string;
|
|
940
|
+
/**
|
|
941
|
+
* BOFF-9796. Passed to the chat view: see `ExplorePageProps.scope`. `product` (with `productSlug`) makes the panel
|
|
942
|
+
* one product's own assistant and titles it "{product} assistant"; given `examplePrompts`, those are then its only
|
|
943
|
+
* example prompts. Default `portfolio`: the panel as it was.
|
|
944
|
+
*/
|
|
945
|
+
scope?: ExploreScope;
|
|
946
|
+
/**
|
|
947
|
+
* BOFF-9796. Passed to the chat view: see `ExplorePageProps.productName`. In the `product` scope it is also the
|
|
948
|
+
* panel's title, at once, before any catalog. Default: the catalog's name for `productSlug`.
|
|
949
|
+
*/
|
|
950
|
+
productName?: string;
|
|
951
|
+
/**
|
|
952
|
+
* BOFF-9796. Passed to the chat view: see `ExplorePageProps.examplePrompts`. In the `product` scope they are the only
|
|
953
|
+
* prompts the panel shows, whatever the catalog has; without them it falls back to the catalog's, less any that name
|
|
954
|
+
* another product and the SDK's portfolio prompt. A product site should pass its own.
|
|
955
|
+
*/
|
|
956
|
+
examplePrompts?: string[];
|
|
957
|
+
/**
|
|
958
|
+
* The host router's navigate, for links in the conversation. On a phone the panel closes first (the sheet would
|
|
959
|
+
* cover the page); on a wider screen it stays open beside the page. Absent: links load the page normally.
|
|
960
|
+
*/
|
|
961
|
+
onNavigate?: (path: string) => void;
|
|
962
|
+
welcomeTitle?: string;
|
|
963
|
+
welcomeBody?: string;
|
|
964
|
+
/** The site's Explore route, for share links made in the panel. Default `/explore`. */
|
|
965
|
+
explorePath?: string;
|
|
966
|
+
/** The Avatar view's picture. Absent: the panel has no Avatar view and no tabs. */
|
|
967
|
+
avatar?: ExplorePanelAvatar;
|
|
968
|
+
/**
|
|
969
|
+
* A CSS length the panel keeps clear at the bottom of the window in both sizes: the host's own bottom bar, such as a
|
|
970
|
+
* consent banner (`var(--site-consent-banner-height, 0px)`). Default `0px`.
|
|
971
|
+
*/
|
|
972
|
+
bottomOffset?: string;
|
|
973
|
+
/** The panel's `z-index`. Default 50: with the header and the banner both at 50, DOM order decides (see above). */
|
|
974
|
+
zIndex?: number;
|
|
975
|
+
/** Where focus goes back when the panel closes: the button that opened it. */
|
|
976
|
+
returnFocusRef?: RefObject<HTMLElement | null>;
|
|
977
|
+
/** Extra classes for the panel. */
|
|
978
|
+
className?: string;
|
|
979
|
+
}
|
|
980
|
+
declare function ExplorePanel({ open, onOpenChange, id, productSlug, locale, scope, productName, examplePrompts, onNavigate, welcomeTitle, welcomeBody, explorePath, avatar, bottomOffset, zIndex, returnFocusRef, className, }: ExplorePanelProps): react.JSX.Element | null;
|
|
981
|
+
|
|
811
982
|
declare const buttonVariants: (props?: ({
|
|
812
983
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
813
984
|
size?: "icon" | "default" | "sm" | "lg" | null | undefined;
|
|
@@ -834,4 +1005,4 @@ declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLP
|
|
|
834
1005
|
*/
|
|
835
1006
|
declare const ECOSYSTEM_PRODUCTS: WebsiteSwitcherProduct[];
|
|
836
1007
|
|
|
837
|
-
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, EXPLORE_LOCALES, type ExploreLocale, type ExploreStrings, Input, Label, PUBLISHED_ANSWER_FIELDS, type PublishedAnswer, type PublishedAnswerSource, type PublishedAnswerTopic, Select, Textarea, WebsiteSwitcherProduct, answerPath, answerSourceHost, answerStrings, buttonVariants, conceptPath, formatAnswerDate, getAnswerBySlug, getConceptBySlug, isPublishedSourceUrl, isValidUrl, speechLocaleOf };
|
|
1008
|
+
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, EXPLORE_LOCALES, ExploreChatProvider, type ExploreChatProviderProps, type ExploreConversationOptions, type ExploreConversationState, type ExploreLocale, ExplorePanel, type ExplorePanelAvatar, type ExplorePanelProps, ExploreScope, type ExploreStrings, 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, speechLocaleOf, useExploreConversation };
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export { PartnersPage, PartnersPageProps } from './components/partners.js';
|
|
|
5
5
|
import { C as CareersPostingOption } from './index-CB0Uw1xD.js';
|
|
6
6
|
export { B as BlogListPage, a as BlogListPageProps, b as BlogPostPage, c as BlogPostPageProps, d as CareersApplyForm, e as CareersApplyFormProps, f as CaseStudiesListPage, g as CaseStudiesListPageProps, h as CaseStudyPage, i as CaseStudyPageProps, j as ChangelogEntry, k as ChangelogPage, l as ChangelogPageProps, m as ContentPageData, n as ContentPageListData, o as ContentPageListItem, p as ContentRenderer, q as ContractAsset, r as ContractsPage, s as ContractsPageProps, F as FetchLegalContentOptions, L as LEGAL_DOCUMENTS, t as LEGAL_DOCUMENT_KEYS, u as LegalContentEntry, v as LegalDocument, w as LegalDocumentKey, x as LegalPage, y as LegalPageProps, M as Markdown, z as MarkdownProps, P as PressKitAsset, A as PressKitAssetCategory, D as PressKitPage, E as PressKitPageProps, G as PublicInterviewRoundConfig, H as PublicJobPosting, U as UsePublicJobPostingOptions, I as UsePublicJobPostingsOptions, J as fetchLegalContent, K as fetchLegalContentPage, N as fetchPublicJobPosting, O as fetchPublicJobPostings, Q as fetchPublicJobPostingsForSubmission, R as findLegalDocument, S as formatLegalDate, T as splitLeadingHeading, V as useContentPage, W as useContentPages, X as usePublicJobPosting, Y as usePublicJobPostings, Z as usePublicJobPostingsForSubmission } from './index-CB0Uw1xD.js';
|
|
7
7
|
import * as react from 'react';
|
|
8
|
-
import { ComponentType, ReactNode } from 'react';
|
|
8
|
+
import { ComponentType, ReactNode, Dispatch, SetStateAction, RefObject } from 'react';
|
|
9
9
|
export { NewsletterForm, NewsletterFormProps, NewsletterPage, NewsletterPageProps } from './components/newsletter.js';
|
|
10
10
|
export { PlanCard, PricingPage, PricingProductKeyError, PricingProps, PricingSection, availablePlanCurrencies, cleanPlanDisplayName, isUuidLike, planPriceIn, resolvePricingProductKey } from './components/pricing.js';
|
|
11
11
|
export { WaitlistForm, WaitlistFormProps, WaitlistPage, WaitlistPageProps } from './components/waitlist.js';
|
|
@@ -18,11 +18,12 @@ 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 { A as AnswerRendererStrings } from './explore-
|
|
22
|
-
export {
|
|
21
|
+
import { A as AnswerRendererStrings, E as ExploreScope } from './explore-CHiP9u-4.js';
|
|
22
|
+
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-CHiP9u-4.js';
|
|
23
23
|
export { ExploreCta, ExploreCtaProps } from './components/explore-cta.js';
|
|
24
|
-
|
|
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,
|
|
24
|
+
import { e as UseExploreChatResult, S as StagedAttachment } from './use-progressive-reveal-C0hkdu_i.js';
|
|
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 UseSpeechOutputOptions, g as UseSpeechOutputResult, h as classifyExploreError, s as stopSpeaking, u as useExploreChat, i as useProgressiveReveal, j as useSpeechOutput } from './use-progressive-reveal-C0hkdu_i.js';
|
|
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, b as ExploreCatalog, n as ExploreCatalogQueryData, o as ExploreConceptHighlight, p as ExploreConversation, q as ExploreCtaKind, r as ExploreCtaLink, s as ExploreErrorCode, t as ExploreEscalation, f as ExploreLimits, c as ExploreMessage, u as ExploreMessageQueryData, v as ExploreMessageRole, w as ExploreMessageStatus, E as ExploreProduct, a as ExploreReference, S as SEND_EXPLORE_MESSAGE_MUTATION, x as SendExploreMessageInput, y as SendExploreMessageMutationData, z as SendExploreMessageResult, A as looksLikeDeliverableEmail } from './explore-types-_9UJu6EA.js';
|
|
26
27
|
export { RybbitAnalytics, RybbitAnalyticsProps } from './analytics/index.js';
|
|
27
28
|
export { PageHead, PageHeadProps } from './seo/index.js';
|
|
28
29
|
export { ProductData, ProductProvider, ProductProviderProps, PublicProductFetchResult, fetchPublicProduct, useProduct, useProductConfig } from './product/index.js';
|
|
@@ -513,6 +514,18 @@ interface ExploreStrings {
|
|
|
513
514
|
badge: string;
|
|
514
515
|
welcomeTitle: string;
|
|
515
516
|
welcomeBody: string;
|
|
517
|
+
/**
|
|
518
|
+
* BOFF-9796: the welcome body of ONE product's own assistant (`scope="product"`) when the host passes none. Takes
|
|
519
|
+
* `{product}`. Problem-first like `welcomeBody`, and unlike the catalog's copy for a product site it offers nothing
|
|
520
|
+
* beyond that product: no "compare it with anything else we build".
|
|
521
|
+
*/
|
|
522
|
+
welcomeBodyProduct: string;
|
|
523
|
+
/**
|
|
524
|
+
* BOFF-9796: the product scope's welcome body when no product name is known (a slug no catalog lists, and no
|
|
525
|
+
* `productName`). Like `welcomeBodyProduct` without the name, so it never falls back to the portfolio's invitation
|
|
526
|
+
* to "ask about a specific product or compare a few".
|
|
527
|
+
*/
|
|
528
|
+
welcomeBodyScoped: string;
|
|
516
529
|
tryAsking: string;
|
|
517
530
|
focusProduct: string;
|
|
518
531
|
allProducts: string;
|
|
@@ -522,6 +535,16 @@ interface ExploreStrings {
|
|
|
522
535
|
nextYouCouldAsk: string;
|
|
523
536
|
placeholder: string;
|
|
524
537
|
placeholderProduct: string;
|
|
538
|
+
/**
|
|
539
|
+
* BOFF-9796: the composer's placeholder on ONE product's own assistant (`scope="product"`). Takes `{product}`.
|
|
540
|
+
* Short on purpose, and the one thing about the composer that the product scope changes: the field is the published
|
|
541
|
+
* one, one line tall on a phone, where a placeholder that wraps loses its second line. `placeholderProduct`
|
|
542
|
+
* ("Describe a problem, or ask about Healthy Bowl…") wraps there at 390px and under; the English "Ask about Healthy
|
|
543
|
+
* Bowl…" fits one line at 320px and wider. Spanish and Tamil, the longest here, may still wrap at 320px and
|
|
544
|
+
* narrower: a follow-up (HealthyBowl, the site this was made for, is English-only). The welcome above the composer
|
|
545
|
+
* already asks for the problem.
|
|
546
|
+
*/
|
|
547
|
+
placeholderScoped: string;
|
|
525
548
|
send: string;
|
|
526
549
|
stop: string;
|
|
527
550
|
newChat: string;
|
|
@@ -543,6 +566,12 @@ interface ExploreStrings {
|
|
|
543
566
|
attachmentTooMany: string;
|
|
544
567
|
noAnswer: string;
|
|
545
568
|
answerDidNotArrive: string;
|
|
569
|
+
/**
|
|
570
|
+
* BOFF-9796: what a turn that ran out of searches (`TOOL_BUDGET`) says on ONE product's own assistant
|
|
571
|
+
* (`scope="product"`). The default message asks for "two or three specific products", an invitation to other
|
|
572
|
+
* products that a product's own assistant must not make; here the narrowing offered is to one part of the question.
|
|
573
|
+
*/
|
|
574
|
+
toolBudgetScoped: string;
|
|
546
575
|
askHuman: string;
|
|
547
576
|
feedbackPrompt: string;
|
|
548
577
|
feedbackHelpful: string;
|
|
@@ -652,6 +681,23 @@ interface ExploreStrings {
|
|
|
652
681
|
closeVideo: string;
|
|
653
682
|
enterFullScreen: string;
|
|
654
683
|
exitFullScreen: string;
|
|
684
|
+
/**
|
|
685
|
+
* BOFF-9697: the site-wide assistant panel (`ExplorePanel`). The tab, view and avatar words are the ones the product
|
|
686
|
+
* apps' assistant already ships in all six locales (Chat, Avatar, Live avatar, Assistant views).
|
|
687
|
+
*/
|
|
688
|
+
panelTitle: string;
|
|
689
|
+
/**
|
|
690
|
+
* BOFF-9796: the panel's title on one product's own assistant (`scope="product"`), "{product} assistant" in each
|
|
691
|
+
* language's own word order. Takes `{product}`. `panelTitle` stays the title wherever no product name is known.
|
|
692
|
+
*/
|
|
693
|
+
panelTitleProduct: string;
|
|
694
|
+
panelViews: string;
|
|
695
|
+
tabChat: string;
|
|
696
|
+
tabAvatar: string;
|
|
697
|
+
closePanel: string;
|
|
698
|
+
liveAvatar: string;
|
|
699
|
+
avatarComingSoon: string;
|
|
700
|
+
continueInChat: string;
|
|
655
701
|
videoUnavailable: string;
|
|
656
702
|
/** Accessible name of the provenance row under an answer. */
|
|
657
703
|
groundedIn: string;
|
|
@@ -677,6 +723,11 @@ interface ExploreStrings {
|
|
|
677
723
|
seoDescription: string;
|
|
678
724
|
/** Used when the page belongs to a specific product's site. Takes `{product}`. */
|
|
679
725
|
seoDescriptionProduct: string;
|
|
726
|
+
/**
|
|
727
|
+
* BOFF-9796: the meta description of ONE product's own `/explore` (`scope="product"`). Takes `{product}`. Unlike
|
|
728
|
+
* `seoDescriptionProduct`, it promises nothing beyond that product: no "and every other product we build".
|
|
729
|
+
*/
|
|
730
|
+
seoDescriptionScoped: string;
|
|
680
731
|
capabilities: [string, string, string];
|
|
681
732
|
prompts: string[];
|
|
682
733
|
}
|
|
@@ -808,6 +859,126 @@ declare function answerStrings(locale: ExploreLocale): AnswerStrings;
|
|
|
808
859
|
*/
|
|
809
860
|
declare function formatAnswerDate(value: string, locale: ExploreLocale): string;
|
|
810
861
|
|
|
862
|
+
/** One conversation and the composer state that belongs to it: what a page and a panel share. */
|
|
863
|
+
interface ExploreConversationState extends UseExploreChatResult {
|
|
864
|
+
/** The composer's text, kept with the conversation so it survives Expand, Restore and a route change. */
|
|
865
|
+
readonly draft: string;
|
|
866
|
+
readonly setDraft: Dispatch<SetStateAction<string>>;
|
|
867
|
+
/** Files staged for the next question, kept the same way. */
|
|
868
|
+
readonly staged: StagedAttachment[];
|
|
869
|
+
readonly setStaged: Dispatch<SetStateAction<StagedAttachment[]>>;
|
|
870
|
+
}
|
|
871
|
+
interface ExploreConversationOptions {
|
|
872
|
+
/** Slug of the product site — a soft hint to the harness. */
|
|
873
|
+
productSlug?: string;
|
|
874
|
+
/** BCP-47 locale for the fallback welcome and example prompts (the six product locales). */
|
|
875
|
+
locale?: string;
|
|
876
|
+
/** Example prompts when `exploreCatalog` supplies none. */
|
|
877
|
+
examplePrompts?: string[];
|
|
878
|
+
/** Fired with the message text every time a send is accepted. */
|
|
879
|
+
onSend?: (message: string) => void;
|
|
880
|
+
/**
|
|
881
|
+
* The page the visitor is on, forwarded with each question. Default: the URL when the conversation was set up
|
|
882
|
+
* (what `ExplorePage` has always sent). A site-wide provider passes the current one.
|
|
883
|
+
*/
|
|
884
|
+
pageUrl?: string;
|
|
885
|
+
/** See `UseExploreChatOptions.enabled`. Default `true`. */
|
|
886
|
+
enabled?: boolean;
|
|
887
|
+
/**
|
|
888
|
+
* See `UseExploreChatOptions.shareToken`. Unset: read from the URL, as `ExplorePage` always has. A site-wide
|
|
889
|
+
* provider passes the `?c=` token of the route showing `/explore` (`null` elsewhere), and is given that token as its
|
|
890
|
+
* `key`, so a different shared link starts its own conversation.
|
|
891
|
+
*/
|
|
892
|
+
shareToken?: string | null;
|
|
893
|
+
}
|
|
894
|
+
/**
|
|
895
|
+
* The conversation exactly as `ExplorePage` sets it up for itself: the same `useExploreChat` options (the locale's
|
|
896
|
+
* fallback welcome and prompts, the URL at mount), plus the composer's draft and staged files.
|
|
897
|
+
*/
|
|
898
|
+
declare function useExploreConversation(options?: ExploreConversationOptions): ExploreConversationState;
|
|
899
|
+
interface ExploreChatProviderProps extends Omit<ExploreConversationOptions, "enabled" | "shareToken"> {
|
|
900
|
+
/**
|
|
901
|
+
* Start the conversation. Pass `true` from the visitor's first opening of the assistant, or while the `/explore`
|
|
902
|
+
* route is shown; until then the provider asks nothing (no catalog request, no restore). Latched: once it has been
|
|
903
|
+
* `true` the conversation stays live, so a running answer is never cut by the host flipping it back.
|
|
904
|
+
*/
|
|
905
|
+
enabled: boolean;
|
|
906
|
+
/**
|
|
907
|
+
* The `?c=` share token of the route showing `/explore`, from the host's router, and `null` on every other route.
|
|
908
|
+
* Required: the provider outlives every page, so reading `?c=` from whatever page it first mounted on would turn an
|
|
909
|
+
* unrelated `?c=` into a "shared conversation not found", and keep a real one for the rest of the visit.
|
|
910
|
+
*/
|
|
911
|
+
shareToken: string | null;
|
|
912
|
+
children?: ReactNode;
|
|
913
|
+
}
|
|
914
|
+
/**
|
|
915
|
+
* ONE conversation for the whole site (BOFF-9697). Mount it once, above the routes (inside the router, so the host
|
|
916
|
+
* can pass the current `pageUrl` and `shareToken`), and put the `ExplorePanel` and every `ExplorePage` under it.
|
|
917
|
+
* Key it by `shareToken`: a shared link is its own read-only conversation, and leaving it returns to the visitor's.
|
|
918
|
+
*/
|
|
919
|
+
declare function ExploreChatProvider({ enabled, children, ...options }: ExploreChatProviderProps): react.JSX.Element;
|
|
920
|
+
|
|
921
|
+
interface ExplorePanelAvatar {
|
|
922
|
+
/** The approved picture: a URL the page may load. */
|
|
923
|
+
src: string;
|
|
924
|
+
/** The avatar's name, for the picture's text alternative. */
|
|
925
|
+
name?: string;
|
|
926
|
+
}
|
|
927
|
+
interface ExplorePanelProps {
|
|
928
|
+
/** Whether the panel shows. The host owns it (its floating button opens the panel). */
|
|
929
|
+
open: boolean;
|
|
930
|
+
/**
|
|
931
|
+
* Called with `false` when the visitor closes the panel: the close button, Escape, the phone's Back, or following a
|
|
932
|
+
* link from the conversation on a phone.
|
|
933
|
+
*/
|
|
934
|
+
onOpenChange: (open: boolean) => void;
|
|
935
|
+
/** The panel's id, for the button's `controls`. Default `boff-explore-panel`. */
|
|
936
|
+
id?: string;
|
|
937
|
+
/** Passed to the chat view (`ExplorePage`). */
|
|
938
|
+
productSlug?: string;
|
|
939
|
+
locale?: string;
|
|
940
|
+
/**
|
|
941
|
+
* BOFF-9796. Passed to the chat view: see `ExplorePageProps.scope`. `product` (with `productSlug`) makes the panel
|
|
942
|
+
* one product's own assistant and titles it "{product} assistant"; given `examplePrompts`, those are then its only
|
|
943
|
+
* example prompts. Default `portfolio`: the panel as it was.
|
|
944
|
+
*/
|
|
945
|
+
scope?: ExploreScope;
|
|
946
|
+
/**
|
|
947
|
+
* BOFF-9796. Passed to the chat view: see `ExplorePageProps.productName`. In the `product` scope it is also the
|
|
948
|
+
* panel's title, at once, before any catalog. Default: the catalog's name for `productSlug`.
|
|
949
|
+
*/
|
|
950
|
+
productName?: string;
|
|
951
|
+
/**
|
|
952
|
+
* BOFF-9796. Passed to the chat view: see `ExplorePageProps.examplePrompts`. In the `product` scope they are the only
|
|
953
|
+
* prompts the panel shows, whatever the catalog has; without them it falls back to the catalog's, less any that name
|
|
954
|
+
* another product and the SDK's portfolio prompt. A product site should pass its own.
|
|
955
|
+
*/
|
|
956
|
+
examplePrompts?: string[];
|
|
957
|
+
/**
|
|
958
|
+
* The host router's navigate, for links in the conversation. On a phone the panel closes first (the sheet would
|
|
959
|
+
* cover the page); on a wider screen it stays open beside the page. Absent: links load the page normally.
|
|
960
|
+
*/
|
|
961
|
+
onNavigate?: (path: string) => void;
|
|
962
|
+
welcomeTitle?: string;
|
|
963
|
+
welcomeBody?: string;
|
|
964
|
+
/** The site's Explore route, for share links made in the panel. Default `/explore`. */
|
|
965
|
+
explorePath?: string;
|
|
966
|
+
/** The Avatar view's picture. Absent: the panel has no Avatar view and no tabs. */
|
|
967
|
+
avatar?: ExplorePanelAvatar;
|
|
968
|
+
/**
|
|
969
|
+
* A CSS length the panel keeps clear at the bottom of the window in both sizes: the host's own bottom bar, such as a
|
|
970
|
+
* consent banner (`var(--site-consent-banner-height, 0px)`). Default `0px`.
|
|
971
|
+
*/
|
|
972
|
+
bottomOffset?: string;
|
|
973
|
+
/** The panel's `z-index`. Default 50: with the header and the banner both at 50, DOM order decides (see above). */
|
|
974
|
+
zIndex?: number;
|
|
975
|
+
/** Where focus goes back when the panel closes: the button that opened it. */
|
|
976
|
+
returnFocusRef?: RefObject<HTMLElement | null>;
|
|
977
|
+
/** Extra classes for the panel. */
|
|
978
|
+
className?: string;
|
|
979
|
+
}
|
|
980
|
+
declare function ExplorePanel({ open, onOpenChange, id, productSlug, locale, scope, productName, examplePrompts, onNavigate, welcomeTitle, welcomeBody, explorePath, avatar, bottomOffset, zIndex, returnFocusRef, className, }: ExplorePanelProps): react.JSX.Element | null;
|
|
981
|
+
|
|
811
982
|
declare const buttonVariants: (props?: ({
|
|
812
983
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
813
984
|
size?: "icon" | "default" | "sm" | "lg" | null | undefined;
|
|
@@ -834,4 +1005,4 @@ declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLP
|
|
|
834
1005
|
*/
|
|
835
1006
|
declare const ECOSYSTEM_PRODUCTS: WebsiteSwitcherProduct[];
|
|
836
1007
|
|
|
837
|
-
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, EXPLORE_LOCALES, type ExploreLocale, type ExploreStrings, Input, Label, PUBLISHED_ANSWER_FIELDS, type PublishedAnswer, type PublishedAnswerSource, type PublishedAnswerTopic, Select, Textarea, WebsiteSwitcherProduct, answerPath, answerSourceHost, answerStrings, buttonVariants, conceptPath, formatAnswerDate, getAnswerBySlug, getConceptBySlug, isPublishedSourceUrl, isValidUrl, speechLocaleOf };
|
|
1008
|
+
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, EXPLORE_LOCALES, ExploreChatProvider, type ExploreChatProviderProps, type ExploreConversationOptions, type ExploreConversationState, type ExploreLocale, ExplorePanel, type ExplorePanelAvatar, type ExplorePanelProps, ExploreScope, type ExploreStrings, 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, speechLocaleOf, useExploreConversation };
|