@burdenoff/website-sdk 2026.830.1 → 2026.921.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 +112 -1
- package/dist/components/contact.js +4 -1
- package/dist/components/contact.js.map +1 -1
- package/dist/components/contact.mjs +4 -1
- package/dist/components/contact.mjs.map +1 -1
- package/dist/components/explore.d.mts +14 -1
- package/dist/components/explore.d.ts +14 -1
- package/dist/components/explore.js +154 -15
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +154 -17
- package/dist/components/explore.mjs.map +1 -1
- package/dist/components/newsletter.js +4 -1
- package/dist/components/newsletter.js.map +1 -1
- package/dist/components/newsletter.mjs +4 -1
- package/dist/components/newsletter.mjs.map +1 -1
- package/dist/components/partners.js +23 -13
- package/dist/components/partners.js.map +1 -1
- package/dist/components/partners.mjs +23 -13
- package/dist/components/partners.mjs.map +1 -1
- package/dist/components/pricing.js +4 -1
- package/dist/components/pricing.js.map +1 -1
- package/dist/components/pricing.mjs +4 -1
- package/dist/components/pricing.mjs.map +1 -1
- package/dist/components/unsubscribe.js +4 -1
- package/dist/components/unsubscribe.js.map +1 -1
- package/dist/components/unsubscribe.mjs +4 -1
- package/dist/components/unsubscribe.mjs.map +1 -1
- package/dist/components/waitlist.js +4 -1
- package/dist/components/waitlist.js.map +1 -1
- package/dist/components/waitlist.mjs +4 -1
- package/dist/components/waitlist.mjs.map +1 -1
- package/dist/content/index.js +23 -13
- package/dist/content/index.js.map +1 -1
- package/dist/content/index.mjs +23 -13
- package/dist/content/index.mjs.map +1 -1
- package/dist/{use-explore-chat-B8xKGid5.d.mts → explore-types-CLw19R76.d.mts} +1 -143
- package/dist/{use-explore-chat-B8xKGid5.d.ts → explore-types-CLw19R76.d.ts} +1 -143
- package/dist/hooks/index.d.mts +2 -1
- package/dist/hooks/index.d.ts +2 -1
- package/dist/hooks/index.js +4 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +4 -1
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +141 -2
- package/dist/index.d.ts +141 -2
- package/dist/index.js +1489 -179
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1485 -182
- package/dist/index.mjs.map +1 -1
- package/dist/seo/index.js +4 -1
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/index.mjs +4 -1
- package/dist/seo/index.mjs.map +1 -1
- package/dist/store/index.js +23 -13
- package/dist/store/index.js.map +1 -1
- package/dist/store/index.mjs +23 -13
- package/dist/store/index.mjs.map +1 -1
- package/dist/use-explore-chat-CvW-kyIm.d.mts +145 -0
- package/dist/use-explore-chat-DdGBimiz.d.ts +145 -0
- package/package.json +1 -1
|
@@ -84,6 +84,8 @@ var EN = {
|
|
|
84
84
|
askHuman: "ask a human",
|
|
85
85
|
prevSuggestion: "Previous suggestion",
|
|
86
86
|
nextSuggestion: "Next suggestion",
|
|
87
|
+
conceptIllustration: "Concept illustration",
|
|
88
|
+
opensInNewTab: "opens in a new tab",
|
|
87
89
|
capabilities: [
|
|
88
90
|
"Grounded in our own docs",
|
|
89
91
|
"Compare across the ecosystem",
|
|
@@ -133,6 +135,8 @@ var ZH = {
|
|
|
133
135
|
askHuman: "\u8054\u7CFB\u6211\u4EEC",
|
|
134
136
|
prevSuggestion: "\u4E0A\u4E00\u4E2A\u5EFA\u8BAE",
|
|
135
137
|
nextSuggestion: "\u4E0B\u4E00\u4E2A\u5EFA\u8BAE",
|
|
138
|
+
conceptIllustration: "\u6982\u5FF5\u793A\u610F\u56FE",
|
|
139
|
+
opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00",
|
|
136
140
|
capabilities: ["\u57FA\u4E8E\u6211\u4EEC\u81EA\u5DF1\u7684\u6587\u6863", "\u8DE8\u4EA7\u54C1\u5BF9\u6BD4", "\u76F4\u8FBE\u6B63\u786E\u7684\u9875\u9762"],
|
|
137
141
|
prompts: [
|
|
138
142
|
"\u8FD9\u4E2A\u4EA7\u54C1\u5230\u5E95\u80FD\u505A\u4EC0\u4E48\uFF1F",
|
|
@@ -178,6 +182,8 @@ var HI = {
|
|
|
178
182
|
askHuman: "\u0939\u092E\u0938\u0947 \u0938\u0902\u092A\u0930\u094D\u0915 \u0915\u0930\u0947\u0902",
|
|
179
183
|
prevSuggestion: "\u092A\u093F\u091B\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
180
184
|
nextSuggestion: "\u0905\u0917\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
185
|
+
conceptIllustration: "\u0905\u0935\u0927\u093E\u0930\u0923\u093E \u091A\u093F\u0924\u094D\u0930\u0923",
|
|
186
|
+
opensInNewTab: "\u0928\u090F \u091F\u0948\u092C \u092E\u0947\u0902 \u0916\u0941\u0932\u0924\u093E \u0939\u0948",
|
|
181
187
|
capabilities: [
|
|
182
188
|
"\u0939\u092E\u093E\u0930\u0947 \u0905\u092A\u0928\u0947 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u092A\u0930 \u0906\u0927\u093E\u0930\u093F\u0924",
|
|
183
189
|
"\u0938\u092D\u0940 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0940 \u0924\u0941\u0932\u0928\u093E \u0915\u0930\u0947\u0902",
|
|
@@ -227,6 +233,8 @@ var ES = {
|
|
|
227
233
|
askHuman: "habla con una persona",
|
|
228
234
|
prevSuggestion: "Sugerencia anterior",
|
|
229
235
|
nextSuggestion: "Sugerencia siguiente",
|
|
236
|
+
conceptIllustration: "Ilustraci\xF3n del concepto",
|
|
237
|
+
opensInNewTab: "se abre en una pesta\xF1a nueva",
|
|
230
238
|
capabilities: [
|
|
231
239
|
"Basado en nuestra documentaci\xF3n",
|
|
232
240
|
"Compara todo el ecosistema",
|
|
@@ -276,6 +284,8 @@ var AR = {
|
|
|
276
284
|
askHuman: "\u062A\u062D\u062F\u0651\u062B \u0625\u0644\u0649 \u0634\u062E\u0635",
|
|
277
285
|
prevSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u0633\u0627\u0628\u0642",
|
|
278
286
|
nextSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u062A\u0627\u0644\u064A",
|
|
287
|
+
conceptIllustration: "\u0631\u0633\u0645 \u062A\u0648\u0636\u064A\u062D\u064A \u0644\u0644\u0645\u0641\u0647\u0648\u0645",
|
|
288
|
+
opensInNewTab: "\u064A\u064F\u0641\u062A\u062D \u0641\u064A \u0639\u0644\u0627\u0645\u0629 \u062A\u0628\u0648\u064A\u0628 \u062C\u062F\u064A\u062F\u0629",
|
|
279
289
|
capabilities: [
|
|
280
290
|
"\u0645\u0628\u0646\u064A \u0639\u0644\u0649 \u0648\u062B\u0627\u0626\u0642\u0646\u0627",
|
|
281
291
|
"\u0642\u0627\u0631\u0646 \u0639\u0628\u0631 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629",
|
|
@@ -325,6 +335,8 @@ var TA = {
|
|
|
325
335
|
askHuman: "\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BC8\u0BA4\u0BCD \u0BA4\u0BCA\u0B9F\u0BB0\u0BCD\u0BAA\u0BC1 \u0B95\u0BCA\u0BB3\u0BCD\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
326
336
|
prevSuggestion: "\u0BAE\u0BC1\u0BA8\u0BCD\u0BA4\u0BC8\u0BAF \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
327
337
|
nextSuggestion: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
338
|
+
conceptIllustration: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1 \u0BB5\u0BBF\u0BB3\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BAE\u0BCD",
|
|
339
|
+
opensInNewTab: "\u0BAA\u0BC1\u0BA4\u0BBF\u0BAF \u0BA4\u0BBE\u0BB5\u0BB2\u0BBF\u0BB2\u0BCD \u0BA4\u0BBF\u0BB1\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD",
|
|
328
340
|
capabilities: [
|
|
329
341
|
"\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BCA\u0BA8\u0BCD\u0BA4 \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BA9\u0BCD \u0B85\u0B9F\u0BBF\u0BAA\u0BCD\u0BAA\u0B9F\u0BC8\u0BAF\u0BBF\u0BB2\u0BCD",
|
|
330
342
|
"\u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC8 \u0B92\u0BAA\u0BCD\u0BAA\u0BBF\u0B9F\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
@@ -365,19 +377,26 @@ function exploreStrings(locale) {
|
|
|
365
377
|
function fill(template, values) {
|
|
366
378
|
return template.replace(/\{(\w+)\}/g, (match, key) => values[key] ?? match);
|
|
367
379
|
}
|
|
380
|
+
function MarkdownLink({
|
|
381
|
+
href,
|
|
382
|
+
children,
|
|
383
|
+
// react-markdown passes the hast node to every override; it is not a DOM attribute.
|
|
384
|
+
node: _node,
|
|
385
|
+
...props
|
|
386
|
+
}) {
|
|
387
|
+
const isExternal = typeof href === "string" && (href.startsWith("http://") || href.startsWith("https://"));
|
|
388
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
389
|
+
"a",
|
|
390
|
+
{
|
|
391
|
+
href,
|
|
392
|
+
...props,
|
|
393
|
+
...isExternal ? { target: "_blank", rel: "noopener noreferrer" } : { rel: "noopener noreferrer" },
|
|
394
|
+
children
|
|
395
|
+
}
|
|
396
|
+
);
|
|
397
|
+
}
|
|
368
398
|
var defaultComponents = {
|
|
369
|
-
a:
|
|
370
|
-
const isExternal = typeof href === "string" && (href.startsWith("http://") || href.startsWith("https://"));
|
|
371
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
372
|
-
"a",
|
|
373
|
-
{
|
|
374
|
-
href,
|
|
375
|
-
...props,
|
|
376
|
-
...isExternal ? { target: "_blank", rel: "noopener noreferrer" } : { rel: "noopener noreferrer" },
|
|
377
|
-
children
|
|
378
|
-
}
|
|
379
|
-
);
|
|
380
|
-
}
|
|
399
|
+
a: MarkdownLink
|
|
381
400
|
};
|
|
382
401
|
function Markdown({
|
|
383
402
|
children,
|
|
@@ -938,10 +957,13 @@ var ECOSYSTEM_PRODUCTS = [
|
|
|
938
957
|
name: "VibeControls",
|
|
939
958
|
websiteUrl: "https://vibecontrols.com"
|
|
940
959
|
},
|
|
960
|
+
// FluidGrids ships on www.fluidgrids.ai — fluidgrids.com only redirects there. The explore
|
|
961
|
+
// catalog and the site's own sitemap use this origin, and so must the fallback catalog
|
|
962
|
+
// built from this list, or /explore rejects FluidGrids concept images until it loads.
|
|
941
963
|
{
|
|
942
964
|
slug: "fluidgrids",
|
|
943
965
|
name: "FluidGrids",
|
|
944
|
-
websiteUrl: "https://fluidgrids.
|
|
966
|
+
websiteUrl: "https://www.fluidgrids.ai"
|
|
945
967
|
},
|
|
946
968
|
// Botlit ships on botlit.ai — botlit.com does not resolve.
|
|
947
969
|
{ slug: "botlit", name: "Botlit", websiteUrl: "https://www.botlit.ai" },
|
|
@@ -2245,6 +2267,9 @@ function resolveImageUrl(image, base) {
|
|
|
2245
2267
|
return image;
|
|
2246
2268
|
}
|
|
2247
2269
|
}
|
|
2270
|
+
function serializeJsonLd(data) {
|
|
2271
|
+
return JSON.stringify(data).replace(/</g, "\\u003c").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
2272
|
+
}
|
|
2248
2273
|
function PageHead({
|
|
2249
2274
|
title,
|
|
2250
2275
|
description,
|
|
@@ -2286,7 +2311,7 @@ function PageHead({
|
|
|
2286
2311
|
fullImageUrl && /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "twitter:image", content: fullImageUrl }),
|
|
2287
2312
|
twitterHandle && /* @__PURE__ */ jsxRuntime.jsx("meta", { name: "twitter:creator", content: twitterHandle }),
|
|
2288
2313
|
/* @__PURE__ */ jsxRuntime.jsx("meta", { name: "theme-color", content: themeColor }),
|
|
2289
|
-
structuredDataItems.map((data, index) => /* @__PURE__ */ jsxRuntime.jsx("script", { type: "application/ld+json", children:
|
|
2314
|
+
structuredDataItems.map((data, index) => /* @__PURE__ */ jsxRuntime.jsx("script", { type: "application/ld+json", children: serializeJsonLd(data) }, `ld-${index}`)),
|
|
2290
2315
|
additionalMeta?.map((meta, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2291
2316
|
"meta",
|
|
2292
2317
|
{
|
|
@@ -2703,6 +2728,93 @@ function logoUrlOf(url) {
|
|
|
2703
2728
|
return null;
|
|
2704
2729
|
}
|
|
2705
2730
|
}
|
|
2731
|
+
function inlineImageOrigins(products) {
|
|
2732
|
+
const origins = /* @__PURE__ */ new Set();
|
|
2733
|
+
for (const product of products) {
|
|
2734
|
+
let url;
|
|
2735
|
+
try {
|
|
2736
|
+
url = new URL(product.website);
|
|
2737
|
+
} catch {
|
|
2738
|
+
continue;
|
|
2739
|
+
}
|
|
2740
|
+
if (url.protocol !== "https:") continue;
|
|
2741
|
+
const apex = url.hostname.replace(/^www\./, "");
|
|
2742
|
+
const port = url.port ? `:${url.port}` : "";
|
|
2743
|
+
origins.add(`https://${apex}${port}`);
|
|
2744
|
+
origins.add(`https://www.${apex}${port}`);
|
|
2745
|
+
}
|
|
2746
|
+
return origins;
|
|
2747
|
+
}
|
|
2748
|
+
function isInlineImageAllowed(src, origins) {
|
|
2749
|
+
if (typeof src !== "string" || src === "") return false;
|
|
2750
|
+
let url;
|
|
2751
|
+
try {
|
|
2752
|
+
url = new URL(src);
|
|
2753
|
+
} catch {
|
|
2754
|
+
return false;
|
|
2755
|
+
}
|
|
2756
|
+
if (url.protocol !== "https:" || url.username || url.password) return false;
|
|
2757
|
+
return origins.has(url.origin);
|
|
2758
|
+
}
|
|
2759
|
+
var InlineImageScopeContext = React.createContext(null);
|
|
2760
|
+
var InsideLinkContext = React.createContext(false);
|
|
2761
|
+
function AnswerLink(props) {
|
|
2762
|
+
return /* @__PURE__ */ jsxRuntime.jsx(InsideLinkContext.Provider, { value: true, children: /* @__PURE__ */ jsxRuntime.jsx(MarkdownLink, { ...props }) });
|
|
2763
|
+
}
|
|
2764
|
+
var INLINE_IMAGE_FRAME = "relative inline-block max-w-full overflow-hidden rounded-xl border border-border bg-muted align-top shadow-sm";
|
|
2765
|
+
function InlineConceptImage({ src, alt }) {
|
|
2766
|
+
const scope = React.useContext(InlineImageScopeContext);
|
|
2767
|
+
const insideLink = React.useContext(InsideLinkContext);
|
|
2768
|
+
if (!scope || !scope.enabled || !isInlineImageAllowed(src, scope.origins) || scope.failed.has(src)) {
|
|
2769
|
+
return null;
|
|
2770
|
+
}
|
|
2771
|
+
const { strings: T, onFailed } = scope;
|
|
2772
|
+
const picture = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2773
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2774
|
+
"img",
|
|
2775
|
+
{
|
|
2776
|
+
src,
|
|
2777
|
+
alt: alt ?? "",
|
|
2778
|
+
loading: "lazy",
|
|
2779
|
+
decoding: "async",
|
|
2780
|
+
onError: () => onFailed(src),
|
|
2781
|
+
className: "block h-auto max-h-80 w-auto max-w-full object-contain"
|
|
2782
|
+
}
|
|
2783
|
+
),
|
|
2784
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2785
|
+
"span",
|
|
2786
|
+
{
|
|
2787
|
+
"aria-hidden": "true",
|
|
2788
|
+
className: "pointer-events-none absolute left-2 top-2 rounded-full border border-border bg-background/90 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-foreground shadow-sm",
|
|
2789
|
+
children: T.conceptIllustration
|
|
2790
|
+
}
|
|
2791
|
+
)
|
|
2792
|
+
] });
|
|
2793
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { "data-boff-explore": "inline-image", className: "my-3 block", children: insideLink ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: INLINE_IMAGE_FRAME, children: picture }) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2794
|
+
"a",
|
|
2795
|
+
{
|
|
2796
|
+
href: src,
|
|
2797
|
+
target: "_blank",
|
|
2798
|
+
rel: "noopener noreferrer",
|
|
2799
|
+
className: cn(
|
|
2800
|
+
INLINE_IMAGE_FRAME,
|
|
2801
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
2802
|
+
),
|
|
2803
|
+
children: [
|
|
2804
|
+
picture,
|
|
2805
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "sr-only", children: [
|
|
2806
|
+
"(",
|
|
2807
|
+
T.opensInNewTab,
|
|
2808
|
+
")"
|
|
2809
|
+
] })
|
|
2810
|
+
]
|
|
2811
|
+
}
|
|
2812
|
+
) });
|
|
2813
|
+
}
|
|
2814
|
+
var ANSWER_MARKDOWN_COMPONENTS = {
|
|
2815
|
+
a: AnswerLink,
|
|
2816
|
+
img: InlineConceptImage
|
|
2817
|
+
};
|
|
2706
2818
|
function ReferenceCard({
|
|
2707
2819
|
reference,
|
|
2708
2820
|
onFollow
|
|
@@ -2885,6 +2997,7 @@ function AssistantBubble({
|
|
|
2885
2997
|
strings: T,
|
|
2886
2998
|
message,
|
|
2887
2999
|
activity,
|
|
3000
|
+
imageOrigins,
|
|
2888
3001
|
onNavigate,
|
|
2889
3002
|
anchorRef,
|
|
2890
3003
|
onFollow,
|
|
@@ -2893,6 +3006,25 @@ function AssistantBubble({
|
|
|
2893
3006
|
const streaming = message.status === "PENDING" || message.status === "RUNNING";
|
|
2894
3007
|
const body = message.content || message.partialContent || "";
|
|
2895
3008
|
const failed = message.status === "FAILED";
|
|
3009
|
+
const completed = message.status === "COMPLETED";
|
|
3010
|
+
const [failedImages, setFailedImages] = React.useState(
|
|
3011
|
+
() => /* @__PURE__ */ new Set()
|
|
3012
|
+
);
|
|
3013
|
+
const markImageFailed = React.useCallback((src) => {
|
|
3014
|
+
setFailedImages(
|
|
3015
|
+
(current) => current.has(src) ? current : new Set(current).add(src)
|
|
3016
|
+
);
|
|
3017
|
+
}, []);
|
|
3018
|
+
const imageScope = React.useMemo(
|
|
3019
|
+
() => ({
|
|
3020
|
+
strings: T,
|
|
3021
|
+
enabled: completed,
|
|
3022
|
+
origins: imageOrigins,
|
|
3023
|
+
failed: failedImages,
|
|
3024
|
+
onFailed: markImageFailed
|
|
3025
|
+
}),
|
|
3026
|
+
[T, completed, imageOrigins, failedImages, markImageFailed]
|
|
3027
|
+
);
|
|
2896
3028
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2897
3029
|
"div",
|
|
2898
3030
|
{
|
|
@@ -2939,7 +3071,7 @@ function AssistantBubble({
|
|
|
2939
3071
|
}
|
|
2940
3072
|
) : null,
|
|
2941
3073
|
body ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl rounded-tl-md border border-border bg-card px-4 py-3 shadow-sm", children: [
|
|
2942
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "boff-prose boff-prose-sm boff-explore-body min-w-0 text-card-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(Markdown, { children: body }) }),
|
|
3074
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "boff-prose boff-prose-sm boff-explore-body min-w-0 text-card-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(InlineImageScopeContext.Provider, { value: imageScope, children: /* @__PURE__ */ jsxRuntime.jsx(Markdown, { components: ANSWER_MARKDOWN_COMPONENTS, children: body }) }) }),
|
|
2943
3075
|
streaming ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "boff-explore-caret", "aria-hidden": "true" }) : null
|
|
2944
3076
|
] }) : null,
|
|
2945
3077
|
streaming ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, { activity }) : null,
|
|
@@ -3438,6 +3570,10 @@ function ExplorePage({
|
|
|
3438
3570
|
() => catalog.products.find((p) => p.slug === focusProduct)?.name ?? null,
|
|
3439
3571
|
[catalog.products, focusProduct]
|
|
3440
3572
|
);
|
|
3573
|
+
const imageOrigins = React.useMemo(
|
|
3574
|
+
() => inlineImageOrigins(catalog.products),
|
|
3575
|
+
[catalog.products]
|
|
3576
|
+
);
|
|
3441
3577
|
React.useEffect(() => {
|
|
3442
3578
|
const el = textareaRef.current;
|
|
3443
3579
|
if (!el) return;
|
|
@@ -3768,6 +3904,7 @@ function ExplorePage({
|
|
|
3768
3904
|
strings: T,
|
|
3769
3905
|
message,
|
|
3770
3906
|
activity,
|
|
3907
|
+
imageOrigins,
|
|
3771
3908
|
onNavigate,
|
|
3772
3909
|
anchorRef: message.id === latestAssistantId ? latestAssistantRef : void 0,
|
|
3773
3910
|
onFollow: (kind, url) => recordClick(message.id, kind, url),
|
|
@@ -4062,6 +4199,8 @@ function ExplorePage({
|
|
|
4062
4199
|
}
|
|
4063
4200
|
|
|
4064
4201
|
exports.ExplorePage = ExplorePage;
|
|
4202
|
+
exports.inlineImageOrigins = inlineImageOrigins;
|
|
4203
|
+
exports.isInlineImageAllowed = isInlineImageAllowed;
|
|
4065
4204
|
exports.logoUrlOf = logoUrlOf;
|
|
4066
4205
|
//# sourceMappingURL=explore.js.map
|
|
4067
4206
|
//# sourceMappingURL=explore.js.map
|