@burdenoff/website-sdk 2026.1021.4 → 2026.1026.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/dist/components/contact.js +2 -1
- package/dist/components/contact.js.map +1 -1
- package/dist/components/contact.mjs +2 -1
- package/dist/components/contact.mjs.map +1 -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 +592 -464
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +593 -465
- package/dist/components/explore.mjs.map +1 -1
- package/dist/components/newsletter.js +2 -1
- package/dist/components/newsletter.js.map +1 -1
- package/dist/components/newsletter.mjs +2 -1
- package/dist/components/newsletter.mjs.map +1 -1
- package/dist/components/partners.js +2 -1
- package/dist/components/partners.js.map +1 -1
- package/dist/components/partners.mjs +2 -1
- package/dist/components/partners.mjs.map +1 -1
- package/dist/components/pricing.js +2 -1
- package/dist/components/pricing.js.map +1 -1
- package/dist/components/pricing.mjs +2 -1
- package/dist/components/pricing.mjs.map +1 -1
- package/dist/components/unsubscribe.js +2 -1
- package/dist/components/unsubscribe.js.map +1 -1
- package/dist/components/unsubscribe.mjs +2 -1
- package/dist/components/unsubscribe.mjs.map +1 -1
- package/dist/components/waitlist.js +2 -1
- package/dist/components/waitlist.js.map +1 -1
- package/dist/components/waitlist.mjs +2 -1
- package/dist/components/waitlist.mjs.map +1 -1
- package/dist/content/index.js +2 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/index.mjs +2 -1
- package/dist/content/index.mjs.map +1 -1
- package/dist/{explore-POqE7J8r.d.mts → explore-BRfKFfvI.d.mts} +21 -2
- package/dist/{explore-D6kon7uz.d.ts → explore-DkfcKgp6.d.ts} +21 -2
- 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 +123 -7
- package/dist/index.d.ts +123 -7
- package/dist/index.js +924 -118
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +924 -121
- package/dist/index.mjs.map +1 -1
- package/dist/seo/index.d.mts +11 -1
- package/dist/seo/index.d.ts +11 -1
- package/dist/seo/index.js +2 -1
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/index.mjs +2 -1
- package/dist/seo/index.mjs.map +1 -1
- package/dist/store/index.js +2 -1
- package/dist/store/index.js.map +1 -1
- package/dist/store/index.mjs +2 -1
- package/dist/store/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 { E as EXPLORE_PREFILL_MAX_LENGTH, a as ExploreAnswerBody, b as ExploreAnswerBodyProps, c as ExploreAnswerStyles, d as ExplorePage, e as ExplorePageProps, f as answerPlainText, g as answerSpeechText, h as exploreQuestionHref, i as inlineImageOrigins, j as isInlineImageAllowed, k as isInlineVideoAllowed, p as productSlugsByOrigin } from './explore-
|
|
21
|
+
import { A as AnswerRendererStrings } from './explore-BRfKFfvI.mjs';
|
|
22
|
+
export { E as EXPLORE_PREFILL_MAX_LENGTH, a as ExploreAnswerBody, b as ExploreAnswerBodyProps, c as ExploreAnswerStyles, d as ExplorePage, e as ExplorePageProps, f as answerPlainText, g as answerSpeechText, h as exploreQuestionHref, i as inlineImageOrigins, j as isInlineImageAllowed, k as isInlineVideoAllowed, p as productSlugsByOrigin } from './explore-BRfKFfvI.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';
|
|
@@ -652,6 +653,18 @@ interface ExploreStrings {
|
|
|
652
653
|
closeVideo: string;
|
|
653
654
|
enterFullScreen: string;
|
|
654
655
|
exitFullScreen: string;
|
|
656
|
+
/**
|
|
657
|
+
* BOFF-9697: the site-wide assistant panel (`ExplorePanel`). The tab, view and avatar words are the ones the product
|
|
658
|
+
* apps' assistant already ships in all six locales (Chat, Avatar, Live avatar, Assistant views).
|
|
659
|
+
*/
|
|
660
|
+
panelTitle: string;
|
|
661
|
+
panelViews: string;
|
|
662
|
+
tabChat: string;
|
|
663
|
+
tabAvatar: string;
|
|
664
|
+
closePanel: string;
|
|
665
|
+
liveAvatar: string;
|
|
666
|
+
avatarComingSoon: string;
|
|
667
|
+
continueInChat: string;
|
|
655
668
|
videoUnavailable: string;
|
|
656
669
|
/** Accessible name of the provenance row under an answer. */
|
|
657
670
|
groundedIn: string;
|
|
@@ -808,9 +821,112 @@ declare function answerStrings(locale: ExploreLocale): AnswerStrings;
|
|
|
808
821
|
*/
|
|
809
822
|
declare function formatAnswerDate(value: string, locale: ExploreLocale): string;
|
|
810
823
|
|
|
824
|
+
/** One conversation and the composer state that belongs to it: what a page and a panel share. */
|
|
825
|
+
interface ExploreConversationState extends UseExploreChatResult {
|
|
826
|
+
/** The composer's text, kept with the conversation so it survives Expand, Restore and a route change. */
|
|
827
|
+
readonly draft: string;
|
|
828
|
+
readonly setDraft: Dispatch<SetStateAction<string>>;
|
|
829
|
+
/** Files staged for the next question, kept the same way. */
|
|
830
|
+
readonly staged: StagedAttachment[];
|
|
831
|
+
readonly setStaged: Dispatch<SetStateAction<StagedAttachment[]>>;
|
|
832
|
+
}
|
|
833
|
+
interface ExploreConversationOptions {
|
|
834
|
+
/** Slug of the product site — a soft hint to the harness. */
|
|
835
|
+
productSlug?: string;
|
|
836
|
+
/** BCP-47 locale for the fallback welcome and example prompts (the six product locales). */
|
|
837
|
+
locale?: string;
|
|
838
|
+
/** Example prompts when `exploreCatalog` supplies none. */
|
|
839
|
+
examplePrompts?: string[];
|
|
840
|
+
/** Fired with the message text every time a send is accepted. */
|
|
841
|
+
onSend?: (message: string) => void;
|
|
842
|
+
/**
|
|
843
|
+
* The page the visitor is on, forwarded with each question. Default: the URL when the conversation was set up
|
|
844
|
+
* (what `ExplorePage` has always sent). A site-wide provider passes the current one.
|
|
845
|
+
*/
|
|
846
|
+
pageUrl?: string;
|
|
847
|
+
/** See `UseExploreChatOptions.enabled`. Default `true`. */
|
|
848
|
+
enabled?: boolean;
|
|
849
|
+
/**
|
|
850
|
+
* See `UseExploreChatOptions.shareToken`. Unset: read from the URL, as `ExplorePage` always has. A site-wide
|
|
851
|
+
* provider passes the `?c=` token of the route showing `/explore` (`null` elsewhere), and is given that token as its
|
|
852
|
+
* `key`, so a different shared link starts its own conversation.
|
|
853
|
+
*/
|
|
854
|
+
shareToken?: string | null;
|
|
855
|
+
}
|
|
856
|
+
/**
|
|
857
|
+
* The conversation exactly as `ExplorePage` sets it up for itself: the same `useExploreChat` options (the locale's
|
|
858
|
+
* fallback welcome and prompts, the URL at mount), plus the composer's draft and staged files.
|
|
859
|
+
*/
|
|
860
|
+
declare function useExploreConversation(options?: ExploreConversationOptions): ExploreConversationState;
|
|
861
|
+
interface ExploreChatProviderProps extends Omit<ExploreConversationOptions, "enabled" | "shareToken"> {
|
|
862
|
+
/**
|
|
863
|
+
* Start the conversation. Pass `true` from the visitor's first opening of the assistant, or while the `/explore`
|
|
864
|
+
* route is shown; until then the provider asks nothing (no catalog request, no restore). Latched: once it has been
|
|
865
|
+
* `true` the conversation stays live, so a running answer is never cut by the host flipping it back.
|
|
866
|
+
*/
|
|
867
|
+
enabled: boolean;
|
|
868
|
+
/**
|
|
869
|
+
* The `?c=` share token of the route showing `/explore`, from the host's router, and `null` on every other route.
|
|
870
|
+
* Required: the provider outlives every page, so reading `?c=` from whatever page it first mounted on would turn an
|
|
871
|
+
* unrelated `?c=` into a "shared conversation not found", and keep a real one for the rest of the visit.
|
|
872
|
+
*/
|
|
873
|
+
shareToken: string | null;
|
|
874
|
+
children?: ReactNode;
|
|
875
|
+
}
|
|
876
|
+
/**
|
|
877
|
+
* ONE conversation for the whole site (BOFF-9697). Mount it once, above the routes (inside the router, so the host
|
|
878
|
+
* can pass the current `pageUrl` and `shareToken`), and put the `ExplorePanel` and every `ExplorePage` under it.
|
|
879
|
+
* Key it by `shareToken`: a shared link is its own read-only conversation, and leaving it returns to the visitor's.
|
|
880
|
+
*/
|
|
881
|
+
declare function ExploreChatProvider({ enabled, children, ...options }: ExploreChatProviderProps): react.JSX.Element;
|
|
882
|
+
|
|
883
|
+
interface ExplorePanelAvatar {
|
|
884
|
+
/** The approved picture: a URL the page may load. */
|
|
885
|
+
src: string;
|
|
886
|
+
/** The avatar's name, for the picture's text alternative. */
|
|
887
|
+
name?: string;
|
|
888
|
+
}
|
|
889
|
+
interface ExplorePanelProps {
|
|
890
|
+
/** Whether the panel shows. The host owns it (its floating button opens the panel). */
|
|
891
|
+
open: boolean;
|
|
892
|
+
/**
|
|
893
|
+
* Called with `false` when the visitor closes the panel: the close button, Escape, the phone's Back, or following a
|
|
894
|
+
* link from the conversation on a phone.
|
|
895
|
+
*/
|
|
896
|
+
onOpenChange: (open: boolean) => void;
|
|
897
|
+
/** The panel's id, for the button's `controls`. Default `boff-explore-panel`. */
|
|
898
|
+
id?: string;
|
|
899
|
+
/** Passed to the chat view (`ExplorePage`). */
|
|
900
|
+
productSlug?: string;
|
|
901
|
+
locale?: string;
|
|
902
|
+
/**
|
|
903
|
+
* The host router's navigate, for links in the conversation. On a phone the panel closes first (the sheet would
|
|
904
|
+
* cover the page); on a wider screen it stays open beside the page. Absent: links load the page normally.
|
|
905
|
+
*/
|
|
906
|
+
onNavigate?: (path: string) => void;
|
|
907
|
+
welcomeTitle?: string;
|
|
908
|
+
welcomeBody?: string;
|
|
909
|
+
/** The site's Explore route, for share links made in the panel. Default `/explore`. */
|
|
910
|
+
explorePath?: string;
|
|
911
|
+
/** The Avatar view's picture. Absent: the panel has no Avatar view and no tabs. */
|
|
912
|
+
avatar?: ExplorePanelAvatar;
|
|
913
|
+
/**
|
|
914
|
+
* 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
|
|
915
|
+
* consent banner (`var(--site-consent-banner-height, 0px)`). Default `0px`.
|
|
916
|
+
*/
|
|
917
|
+
bottomOffset?: string;
|
|
918
|
+
/** The panel's `z-index`. Default 50: with the header and the banner both at 50, DOM order decides (see above). */
|
|
919
|
+
zIndex?: number;
|
|
920
|
+
/** Where focus goes back when the panel closes: the button that opened it. */
|
|
921
|
+
returnFocusRef?: RefObject<HTMLElement | null>;
|
|
922
|
+
/** Extra classes for the panel. */
|
|
923
|
+
className?: string;
|
|
924
|
+
}
|
|
925
|
+
declare function ExplorePanel({ open, onOpenChange, id, productSlug, locale, onNavigate, welcomeTitle, welcomeBody, explorePath, avatar, bottomOffset, zIndex, returnFocusRef, className, }: ExplorePanelProps): react.JSX.Element | null;
|
|
926
|
+
|
|
811
927
|
declare const buttonVariants: (props?: ({
|
|
812
928
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
813
|
-
size?: "
|
|
929
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
814
930
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
815
931
|
interface ButtonProps extends react.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
816
932
|
asChild?: boolean;
|
|
@@ -834,4 +950,4 @@ declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLP
|
|
|
834
950
|
*/
|
|
835
951
|
declare const ECOSYSTEM_PRODUCTS: WebsiteSwitcherProduct[];
|
|
836
952
|
|
|
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 };
|
|
953
|
+
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, 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 { E as EXPLORE_PREFILL_MAX_LENGTH, a as ExploreAnswerBody, b as ExploreAnswerBodyProps, c as ExploreAnswerStyles, d as ExplorePage, e as ExplorePageProps, f as answerPlainText, g as answerSpeechText, h as exploreQuestionHref, i as inlineImageOrigins, j as isInlineImageAllowed, k as isInlineVideoAllowed, p as productSlugsByOrigin } from './explore-
|
|
21
|
+
import { A as AnswerRendererStrings } from './explore-DkfcKgp6.js';
|
|
22
|
+
export { E as EXPLORE_PREFILL_MAX_LENGTH, a as ExploreAnswerBody, b as ExploreAnswerBodyProps, c as ExploreAnswerStyles, d as ExplorePage, e as ExplorePageProps, f as answerPlainText, g as answerSpeechText, h as exploreQuestionHref, i as inlineImageOrigins, j as isInlineImageAllowed, k as isInlineVideoAllowed, p as productSlugsByOrigin } from './explore-DkfcKgp6.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';
|
|
@@ -652,6 +653,18 @@ interface ExploreStrings {
|
|
|
652
653
|
closeVideo: string;
|
|
653
654
|
enterFullScreen: string;
|
|
654
655
|
exitFullScreen: string;
|
|
656
|
+
/**
|
|
657
|
+
* BOFF-9697: the site-wide assistant panel (`ExplorePanel`). The tab, view and avatar words are the ones the product
|
|
658
|
+
* apps' assistant already ships in all six locales (Chat, Avatar, Live avatar, Assistant views).
|
|
659
|
+
*/
|
|
660
|
+
panelTitle: string;
|
|
661
|
+
panelViews: string;
|
|
662
|
+
tabChat: string;
|
|
663
|
+
tabAvatar: string;
|
|
664
|
+
closePanel: string;
|
|
665
|
+
liveAvatar: string;
|
|
666
|
+
avatarComingSoon: string;
|
|
667
|
+
continueInChat: string;
|
|
655
668
|
videoUnavailable: string;
|
|
656
669
|
/** Accessible name of the provenance row under an answer. */
|
|
657
670
|
groundedIn: string;
|
|
@@ -808,9 +821,112 @@ declare function answerStrings(locale: ExploreLocale): AnswerStrings;
|
|
|
808
821
|
*/
|
|
809
822
|
declare function formatAnswerDate(value: string, locale: ExploreLocale): string;
|
|
810
823
|
|
|
824
|
+
/** One conversation and the composer state that belongs to it: what a page and a panel share. */
|
|
825
|
+
interface ExploreConversationState extends UseExploreChatResult {
|
|
826
|
+
/** The composer's text, kept with the conversation so it survives Expand, Restore and a route change. */
|
|
827
|
+
readonly draft: string;
|
|
828
|
+
readonly setDraft: Dispatch<SetStateAction<string>>;
|
|
829
|
+
/** Files staged for the next question, kept the same way. */
|
|
830
|
+
readonly staged: StagedAttachment[];
|
|
831
|
+
readonly setStaged: Dispatch<SetStateAction<StagedAttachment[]>>;
|
|
832
|
+
}
|
|
833
|
+
interface ExploreConversationOptions {
|
|
834
|
+
/** Slug of the product site — a soft hint to the harness. */
|
|
835
|
+
productSlug?: string;
|
|
836
|
+
/** BCP-47 locale for the fallback welcome and example prompts (the six product locales). */
|
|
837
|
+
locale?: string;
|
|
838
|
+
/** Example prompts when `exploreCatalog` supplies none. */
|
|
839
|
+
examplePrompts?: string[];
|
|
840
|
+
/** Fired with the message text every time a send is accepted. */
|
|
841
|
+
onSend?: (message: string) => void;
|
|
842
|
+
/**
|
|
843
|
+
* The page the visitor is on, forwarded with each question. Default: the URL when the conversation was set up
|
|
844
|
+
* (what `ExplorePage` has always sent). A site-wide provider passes the current one.
|
|
845
|
+
*/
|
|
846
|
+
pageUrl?: string;
|
|
847
|
+
/** See `UseExploreChatOptions.enabled`. Default `true`. */
|
|
848
|
+
enabled?: boolean;
|
|
849
|
+
/**
|
|
850
|
+
* See `UseExploreChatOptions.shareToken`. Unset: read from the URL, as `ExplorePage` always has. A site-wide
|
|
851
|
+
* provider passes the `?c=` token of the route showing `/explore` (`null` elsewhere), and is given that token as its
|
|
852
|
+
* `key`, so a different shared link starts its own conversation.
|
|
853
|
+
*/
|
|
854
|
+
shareToken?: string | null;
|
|
855
|
+
}
|
|
856
|
+
/**
|
|
857
|
+
* The conversation exactly as `ExplorePage` sets it up for itself: the same `useExploreChat` options (the locale's
|
|
858
|
+
* fallback welcome and prompts, the URL at mount), plus the composer's draft and staged files.
|
|
859
|
+
*/
|
|
860
|
+
declare function useExploreConversation(options?: ExploreConversationOptions): ExploreConversationState;
|
|
861
|
+
interface ExploreChatProviderProps extends Omit<ExploreConversationOptions, "enabled" | "shareToken"> {
|
|
862
|
+
/**
|
|
863
|
+
* Start the conversation. Pass `true` from the visitor's first opening of the assistant, or while the `/explore`
|
|
864
|
+
* route is shown; until then the provider asks nothing (no catalog request, no restore). Latched: once it has been
|
|
865
|
+
* `true` the conversation stays live, so a running answer is never cut by the host flipping it back.
|
|
866
|
+
*/
|
|
867
|
+
enabled: boolean;
|
|
868
|
+
/**
|
|
869
|
+
* The `?c=` share token of the route showing `/explore`, from the host's router, and `null` on every other route.
|
|
870
|
+
* Required: the provider outlives every page, so reading `?c=` from whatever page it first mounted on would turn an
|
|
871
|
+
* unrelated `?c=` into a "shared conversation not found", and keep a real one for the rest of the visit.
|
|
872
|
+
*/
|
|
873
|
+
shareToken: string | null;
|
|
874
|
+
children?: ReactNode;
|
|
875
|
+
}
|
|
876
|
+
/**
|
|
877
|
+
* ONE conversation for the whole site (BOFF-9697). Mount it once, above the routes (inside the router, so the host
|
|
878
|
+
* can pass the current `pageUrl` and `shareToken`), and put the `ExplorePanel` and every `ExplorePage` under it.
|
|
879
|
+
* Key it by `shareToken`: a shared link is its own read-only conversation, and leaving it returns to the visitor's.
|
|
880
|
+
*/
|
|
881
|
+
declare function ExploreChatProvider({ enabled, children, ...options }: ExploreChatProviderProps): react.JSX.Element;
|
|
882
|
+
|
|
883
|
+
interface ExplorePanelAvatar {
|
|
884
|
+
/** The approved picture: a URL the page may load. */
|
|
885
|
+
src: string;
|
|
886
|
+
/** The avatar's name, for the picture's text alternative. */
|
|
887
|
+
name?: string;
|
|
888
|
+
}
|
|
889
|
+
interface ExplorePanelProps {
|
|
890
|
+
/** Whether the panel shows. The host owns it (its floating button opens the panel). */
|
|
891
|
+
open: boolean;
|
|
892
|
+
/**
|
|
893
|
+
* Called with `false` when the visitor closes the panel: the close button, Escape, the phone's Back, or following a
|
|
894
|
+
* link from the conversation on a phone.
|
|
895
|
+
*/
|
|
896
|
+
onOpenChange: (open: boolean) => void;
|
|
897
|
+
/** The panel's id, for the button's `controls`. Default `boff-explore-panel`. */
|
|
898
|
+
id?: string;
|
|
899
|
+
/** Passed to the chat view (`ExplorePage`). */
|
|
900
|
+
productSlug?: string;
|
|
901
|
+
locale?: string;
|
|
902
|
+
/**
|
|
903
|
+
* The host router's navigate, for links in the conversation. On a phone the panel closes first (the sheet would
|
|
904
|
+
* cover the page); on a wider screen it stays open beside the page. Absent: links load the page normally.
|
|
905
|
+
*/
|
|
906
|
+
onNavigate?: (path: string) => void;
|
|
907
|
+
welcomeTitle?: string;
|
|
908
|
+
welcomeBody?: string;
|
|
909
|
+
/** The site's Explore route, for share links made in the panel. Default `/explore`. */
|
|
910
|
+
explorePath?: string;
|
|
911
|
+
/** The Avatar view's picture. Absent: the panel has no Avatar view and no tabs. */
|
|
912
|
+
avatar?: ExplorePanelAvatar;
|
|
913
|
+
/**
|
|
914
|
+
* 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
|
|
915
|
+
* consent banner (`var(--site-consent-banner-height, 0px)`). Default `0px`.
|
|
916
|
+
*/
|
|
917
|
+
bottomOffset?: string;
|
|
918
|
+
/** The panel's `z-index`. Default 50: with the header and the banner both at 50, DOM order decides (see above). */
|
|
919
|
+
zIndex?: number;
|
|
920
|
+
/** Where focus goes back when the panel closes: the button that opened it. */
|
|
921
|
+
returnFocusRef?: RefObject<HTMLElement | null>;
|
|
922
|
+
/** Extra classes for the panel. */
|
|
923
|
+
className?: string;
|
|
924
|
+
}
|
|
925
|
+
declare function ExplorePanel({ open, onOpenChange, id, productSlug, locale, onNavigate, welcomeTitle, welcomeBody, explorePath, avatar, bottomOffset, zIndex, returnFocusRef, className, }: ExplorePanelProps): react.JSX.Element | null;
|
|
926
|
+
|
|
811
927
|
declare const buttonVariants: (props?: ({
|
|
812
928
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
813
|
-
size?: "
|
|
929
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
814
930
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
815
931
|
interface ButtonProps extends react.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
816
932
|
asChild?: boolean;
|
|
@@ -834,4 +950,4 @@ declare const Textarea: react.ForwardRefExoticComponent<Omit<react.DetailedHTMLP
|
|
|
834
950
|
*/
|
|
835
951
|
declare const ECOSYSTEM_PRODUCTS: WebsiteSwitcherProduct[];
|
|
836
952
|
|
|
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 };
|
|
953
|
+
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, 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 };
|