@burdenoff/website-sdk 2026.923.1 → 2026.923.3

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/index.mjs CHANGED
@@ -5987,6 +5987,8 @@ var EN = {
5987
5987
  prevSuggestion: "Previous suggestion",
5988
5988
  nextSuggestion: "Next suggestion",
5989
5989
  conceptIllustration: "Concept illustration",
5990
+ conceptScrollPrev: "Scroll concepts left",
5991
+ conceptScrollNext: "Scroll concepts right",
5990
5992
  opensInNewTab: "opens in a new tab",
5991
5993
  conceptStripTitle: "Or start from a concept",
5992
5994
  conceptStripLabel: "Concepts you can ask about",
@@ -6086,6 +6088,8 @@ var ZH = {
6086
6088
  prevSuggestion: "\u4E0A\u4E00\u4E2A\u5EFA\u8BAE",
6087
6089
  nextSuggestion: "\u4E0B\u4E00\u4E2A\u5EFA\u8BAE",
6088
6090
  conceptIllustration: "\u6982\u5FF5\u793A\u610F\u56FE",
6091
+ conceptScrollPrev: "\u5411\u5DE6\u6EDA\u52A8\u6982\u5FF5",
6092
+ conceptScrollNext: "\u5411\u53F3\u6EDA\u52A8\u6982\u5FF5",
6089
6093
  opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00",
6090
6094
  conceptStripTitle: "\u6216\u8005\u4ECE\u4E00\u4E2A\u6982\u5FF5\u5F00\u59CB",
6091
6095
  conceptStripLabel: "\u4F60\u53EF\u4EE5\u8BE2\u95EE\u7684\u6982\u5FF5",
@@ -6181,6 +6185,8 @@ var HI = {
6181
6185
  prevSuggestion: "\u092A\u093F\u091B\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
6182
6186
  nextSuggestion: "\u0905\u0917\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
6183
6187
  conceptIllustration: "\u0905\u0935\u0927\u093E\u0930\u0923\u093E \u091A\u093F\u0924\u094D\u0930\u0923",
6188
+ conceptScrollPrev: "\u0915\u0949\u0928\u094D\u0938\u0947\u092A\u094D\u091F \u092C\u093E\u090F\u0901 \u0938\u094D\u0915\u094D\u0930\u0949\u0932 \u0915\u0930\u0947\u0902",
6189
+ conceptScrollNext: "\u0915\u0949\u0928\u094D\u0938\u0947\u092A\u094D\u091F \u0926\u093E\u090F\u0901 \u0938\u094D\u0915\u094D\u0930\u0949\u0932 \u0915\u0930\u0947\u0902",
6184
6190
  opensInNewTab: "\u0928\u090F \u091F\u0948\u092C \u092E\u0947\u0902 \u0916\u0941\u0932\u0924\u093E \u0939\u0948",
6185
6191
  conceptStripTitle: "\u092F\u093E \u0915\u093F\u0938\u0940 \u0905\u0935\u0927\u093E\u0930\u0923\u093E \u0938\u0947 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
6186
6192
  conceptStripLabel: "\u091C\u093F\u0928 \u0905\u0935\u0927\u093E\u0930\u0923\u093E\u0913\u0902 \u0915\u0947 \u092C\u093E\u0930\u0947 \u092E\u0947\u0902 \u0906\u092A \u092A\u0942\u091B \u0938\u0915\u0924\u0947 \u0939\u0948\u0902",
@@ -6280,6 +6286,8 @@ var ES = {
6280
6286
  prevSuggestion: "Sugerencia anterior",
6281
6287
  nextSuggestion: "Sugerencia siguiente",
6282
6288
  conceptIllustration: "Ilustraci\xF3n del concepto",
6289
+ conceptScrollPrev: "Desplazar conceptos a la izquierda",
6290
+ conceptScrollNext: "Desplazar conceptos a la derecha",
6283
6291
  opensInNewTab: "se abre en una pesta\xF1a nueva",
6284
6292
  conceptStripTitle: "O empieza por un concepto",
6285
6293
  conceptStripLabel: "Conceptos sobre los que puedes preguntar",
@@ -6379,6 +6387,8 @@ var AR = {
6379
6387
  prevSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u0633\u0627\u0628\u0642",
6380
6388
  nextSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u062A\u0627\u0644\u064A",
6381
6389
  conceptIllustration: "\u0631\u0633\u0645 \u062A\u0648\u0636\u064A\u062D\u064A \u0644\u0644\u0645\u0641\u0647\u0648\u0645",
6390
+ conceptScrollPrev: "\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0645\u0641\u0627\u0647\u064A\u0645 \u0644\u0644\u064A\u0633\u0627\u0631",
6391
+ conceptScrollNext: "\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0645\u0641\u0627\u0647\u064A\u0645 \u0644\u0644\u064A\u0645\u064A\u0646",
6382
6392
  opensInNewTab: "\u064A\u064F\u0641\u062A\u062D \u0641\u064A \u0639\u0644\u0627\u0645\u0629 \u062A\u0628\u0648\u064A\u0628 \u062C\u062F\u064A\u062F\u0629",
6383
6393
  conceptStripTitle: "\u0623\u0648 \u0627\u0628\u062F\u0623 \u0645\u0646 \u0645\u0641\u0647\u0648\u0645",
6384
6394
  conceptStripLabel: "\u0645\u0641\u0627\u0647\u064A\u0645 \u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0633\u0624\u0627\u0644 \u0639\u0646\u0647\u0627",
@@ -6478,6 +6488,8 @@ var TA = {
6478
6488
  prevSuggestion: "\u0BAE\u0BC1\u0BA8\u0BCD\u0BA4\u0BC8\u0BAF \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
6479
6489
  nextSuggestion: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
6480
6490
  conceptIllustration: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1 \u0BB5\u0BBF\u0BB3\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BAE\u0BCD",
6491
+ conceptScrollPrev: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BB3\u0BC8 \u0B87\u0B9F\u0BA4\u0BC1\u0BAA\u0BC1\u0BB1\u0BAE\u0BCD \u0BA8\u0B95\u0BB0\u0BCD\u0BA4\u0BCD\u0BA4\u0BC1",
6492
+ conceptScrollNext: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BB3\u0BC8 \u0BB5\u0BB2\u0BA4\u0BC1\u0BAA\u0BC1\u0BB1\u0BAE\u0BCD \u0BA8\u0B95\u0BB0\u0BCD\u0BA4\u0BCD\u0BA4\u0BC1",
6481
6493
  opensInNewTab: "\u0BAA\u0BC1\u0BA4\u0BBF\u0BAF \u0BA4\u0BBE\u0BB5\u0BB2\u0BBF\u0BB2\u0BCD \u0BA4\u0BBF\u0BB1\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD",
6482
6494
  conceptStripTitle: "\u0B85\u0BB2\u0BCD\u0BB2\u0BA4\u0BC1 \u0B92\u0BB0\u0BC1 \u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BBF\u0BB2\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1 \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
6483
6495
  conceptStripLabel: "\u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B95\u0B95\u0BCD\u0B95\u0BC2\u0B9F\u0BBF\u0BAF \u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BB3\u0BCD",
@@ -12052,6 +12064,28 @@ function ConceptStrip({
12052
12064
  (current) => current.has(src) ? current : new Set(current).add(src)
12053
12065
  );
12054
12066
  }, []);
12067
+ const railRef = useRef(null);
12068
+ const [canLeft, setCanLeft] = useState(false);
12069
+ const [canRight, setCanRight] = useState(false);
12070
+ const measureRail = useCallback(() => {
12071
+ const el = railRef.current;
12072
+ if (!el) return;
12073
+ setCanLeft(el.scrollLeft > 1);
12074
+ setCanRight(el.scrollLeft + el.clientWidth < el.scrollWidth - 1);
12075
+ }, []);
12076
+ useEffect(() => {
12077
+ const el = railRef.current;
12078
+ if (!el) return;
12079
+ measureRail();
12080
+ const onResize = () => measureRail();
12081
+ window.addEventListener("resize", onResize);
12082
+ return () => window.removeEventListener("resize", onResize);
12083
+ }, [measureRail, highlights.length, failed]);
12084
+ const scrollRail = useCallback((direction) => {
12085
+ const el = railRef.current;
12086
+ if (!el) return;
12087
+ el.scrollBy({ left: direction * el.clientWidth * 0.8, behavior: "smooth" });
12088
+ }, []);
12055
12089
  const visible = highlights.filter(
12056
12090
  (highlight) => highlight.imageUrl !== "" && !failed.has(highlight.imageUrl)
12057
12091
  ).slice(0, MAX_CONCEPT_CARDS);
@@ -12060,71 +12094,105 @@ function ConceptStrip({
12060
12094
  "div",
12061
12095
  {
12062
12096
  "data-boff-explore": "concept-strip-block",
12063
- className: "boff-explore-rise boff-explore-rise-3 mt-6",
12097
+ className: "boff-explore-rise boff-explore-rise-3 mt-5",
12064
12098
  children: [
12065
12099
  /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.conceptStripTitle }),
12066
- /* @__PURE__ */ jsx(
12067
- "ul",
12068
- {
12069
- "data-boff-explore": "concept-strip",
12070
- "aria-label": T.conceptStripLabel,
12071
- className: "boff-explore-strip flex min-w-0 snap-x gap-3 overflow-x-auto pb-1",
12072
- children: visible.map((highlight) => /* @__PURE__ */ jsx(
12073
- "li",
12074
- {
12075
- className: "shrink-0 snap-start",
12076
- children: /* @__PURE__ */ jsxs(
12077
- "button",
12078
- {
12079
- "data-boff-explore": "concept-card",
12080
- "data-product": highlight.product,
12081
- type: "button",
12082
- disabled,
12083
- "aria-label": fill(T.conceptAsk, {
12084
- title: highlight.title,
12085
- product: highlight.productName
12086
- }),
12087
- onClick: () => onAsk(
12088
- fill(T.conceptAskQuestion, {
12100
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
12101
+ /* @__PURE__ */ jsx(
12102
+ "button",
12103
+ {
12104
+ type: "button",
12105
+ "data-boff-explore": "concept-prev",
12106
+ "aria-label": T.conceptScrollPrev,
12107
+ tabIndex: -1,
12108
+ onClick: () => scrollRail(-1),
12109
+ className: cn(
12110
+ "absolute left-0 top-1/2 z-10 hidden h-8 w-8 -translate-y-1/2 items-center justify-center rounded-full border border-border bg-background/90 text-muted-foreground shadow-sm backdrop-blur transition-opacity hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring sm:flex",
12111
+ canLeft ? "opacity-100" : "pointer-events-none opacity-0"
12112
+ ),
12113
+ children: /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" })
12114
+ }
12115
+ ),
12116
+ /* @__PURE__ */ jsx(
12117
+ "button",
12118
+ {
12119
+ type: "button",
12120
+ "data-boff-explore": "concept-next",
12121
+ "aria-label": T.conceptScrollNext,
12122
+ tabIndex: -1,
12123
+ onClick: () => scrollRail(1),
12124
+ className: cn(
12125
+ "absolute right-0 top-1/2 z-10 hidden h-8 w-8 -translate-y-1/2 items-center justify-center rounded-full border border-border bg-background/90 text-muted-foreground shadow-sm backdrop-blur transition-opacity hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring sm:flex",
12126
+ canRight ? "opacity-100" : "pointer-events-none opacity-0"
12127
+ ),
12128
+ children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
12129
+ }
12130
+ ),
12131
+ /* @__PURE__ */ jsx(
12132
+ "ul",
12133
+ {
12134
+ ref: railRef,
12135
+ onScroll: measureRail,
12136
+ "data-boff-explore": "concept-strip",
12137
+ "aria-label": T.conceptStripLabel,
12138
+ className: "boff-explore-strip flex min-w-0 snap-x gap-3 overflow-x-auto pb-1",
12139
+ children: visible.map((highlight) => /* @__PURE__ */ jsx(
12140
+ "li",
12141
+ {
12142
+ className: "shrink-0 snap-start",
12143
+ children: /* @__PURE__ */ jsxs(
12144
+ "button",
12145
+ {
12146
+ "data-boff-explore": "concept-card",
12147
+ "data-product": highlight.product,
12148
+ type: "button",
12149
+ disabled,
12150
+ "aria-label": fill(T.conceptAsk, {
12089
12151
  title: highlight.title,
12090
12152
  product: highlight.productName
12091
- })
12092
- ),
12093
- className: "group flex w-40 flex-col overflow-hidden rounded-xl border border-border bg-card text-left shadow-sm transition-colors hover:border-primary/50 hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring sm:w-48",
12094
- children: [
12095
- /* @__PURE__ */ jsxs("span", { className: "relative block aspect-[16/9] w-full overflow-hidden bg-muted", children: [
12096
- /* @__PURE__ */ jsx(
12097
- "img",
12098
- {
12099
- src: highlight.imageUrl,
12100
- alt: highlight.alt,
12101
- loading: "lazy",
12102
- decoding: "async",
12103
- onError: () => markFailed(highlight.imageUrl),
12104
- className: "h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"
12105
- }
12106
- ),
12107
- /* @__PURE__ */ jsx(
12108
- "span",
12109
- {
12110
- "aria-hidden": "true",
12111
- className: "pointer-events-none absolute left-1.5 top-1.5 rounded-full border border-border bg-background/90 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-foreground",
12112
- children: T.conceptIllustration
12113
- }
12114
- )
12115
- ] }),
12116
- /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col gap-0.5 p-2.5", children: [
12117
- /* @__PURE__ */ jsx("span", { className: "line-clamp-2 text-xs font-semibold leading-snug text-card-foreground", children: highlight.title }),
12118
- /* @__PURE__ */ jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: highlight.productName })
12119
- ] })
12120
- ]
12121
- }
12122
- )
12123
- },
12124
- `${highlight.product}:${highlight.url}`
12125
- ))
12126
- }
12127
- )
12153
+ }),
12154
+ onClick: () => onAsk(
12155
+ fill(T.conceptAskQuestion, {
12156
+ title: highlight.title,
12157
+ product: highlight.productName
12158
+ })
12159
+ ),
12160
+ className: "group flex w-40 flex-col overflow-hidden rounded-xl border border-border bg-card text-left shadow-sm transition-colors hover:border-primary/50 hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring sm:w-48",
12161
+ children: [
12162
+ /* @__PURE__ */ jsxs("span", { className: "relative block aspect-[16/9] w-full overflow-hidden bg-muted", children: [
12163
+ /* @__PURE__ */ jsx(
12164
+ "img",
12165
+ {
12166
+ src: highlight.imageUrl,
12167
+ alt: highlight.alt,
12168
+ loading: "lazy",
12169
+ decoding: "async",
12170
+ onError: () => markFailed(highlight.imageUrl),
12171
+ className: "h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"
12172
+ }
12173
+ ),
12174
+ /* @__PURE__ */ jsx(
12175
+ "span",
12176
+ {
12177
+ "aria-hidden": "true",
12178
+ className: "pointer-events-none absolute left-1.5 top-1.5 rounded-full border border-border bg-background/90 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-foreground",
12179
+ children: T.conceptIllustration
12180
+ }
12181
+ )
12182
+ ] }),
12183
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col gap-0.5 p-2.5", children: [
12184
+ /* @__PURE__ */ jsx("span", { className: "line-clamp-2 text-xs font-semibold leading-snug text-card-foreground", children: highlight.title }),
12185
+ /* @__PURE__ */ jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: highlight.productName })
12186
+ ] })
12187
+ ]
12188
+ }
12189
+ )
12190
+ },
12191
+ `${highlight.product}:${highlight.url}`
12192
+ ))
12193
+ }
12194
+ )
12195
+ ] })
12128
12196
  ]
12129
12197
  }
12130
12198
  );
@@ -12241,28 +12309,28 @@ function WelcomeState({
12241
12309
  onFocus,
12242
12310
  disabled
12243
12311
  }) {
12244
- return /* @__PURE__ */ jsxs("div", { className: "boff-explore-aura mx-auto my-auto w-full max-w-3xl px-4 py-6 sm:py-8 lg:py-10", children: [
12312
+ return /* @__PURE__ */ jsxs("div", { className: "boff-explore-aura mx-auto my-auto w-full max-w-3xl px-4 py-5 sm:py-6", children: [
12245
12313
  /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise text-center", children: [
12246
12314
  /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-muted px-3 py-1 text-xs font-medium text-muted-foreground", children: [
12247
12315
  /* @__PURE__ */ jsx(Sparkles, { className: "h-3.5 w-3.5" }),
12248
12316
  T.badge
12249
12317
  ] }),
12250
- /* @__PURE__ */ jsx("h1", { className: "mt-4 text-balance break-words text-2xl font-bold tracking-tight sm:text-4xl", children: title }),
12251
- /* @__PURE__ */ jsx("p", { className: "mx-auto mt-2.5 max-w-2xl text-pretty text-sm leading-relaxed text-muted-foreground sm:text-lg", children: body })
12318
+ /* @__PURE__ */ jsx("h1", { className: "mt-3 text-balance break-words text-2xl font-bold tracking-tight sm:text-3xl", children: title }),
12319
+ /* @__PURE__ */ jsx("p", { className: "mx-auto mt-2 max-w-2xl text-pretty text-sm leading-relaxed text-muted-foreground sm:text-base", children: body })
12252
12320
  ] }),
12253
- /* @__PURE__ */ jsx("ul", { className: "boff-explore-rise boff-explore-rise-1 mt-6 grid grid-cols-3 gap-2 sm:mt-7 sm:gap-2.5", children: CAPABILITIES.map(({ icon: Icon, body: capBody }, i) => /* @__PURE__ */ jsxs(
12321
+ /* @__PURE__ */ jsx("ul", { className: "boff-explore-rise boff-explore-rise-1 mt-5 grid grid-cols-3 gap-2 sm:gap-2.5", children: CAPABILITIES.map(({ icon: Icon, body: capBody }, i) => /* @__PURE__ */ jsxs(
12254
12322
  "li",
12255
12323
  {
12256
- className: "rounded-xl border border-border/70 bg-card/60 p-2.5 text-center transition-colors hover:border-border sm:p-3.5 sm:text-left",
12324
+ className: "rounded-xl border border-border/70 bg-card/60 p-2.5 text-center transition-colors hover:border-border sm:p-3 sm:text-left",
12257
12325
  children: [
12258
- /* @__PURE__ */ jsx("span", { className: "mx-auto mb-1.5 flex h-7 w-7 items-center justify-center rounded-lg bg-primary/10 text-primary sm:mx-0 sm:mb-2.5 sm:h-8 sm:w-8", children: /* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5 sm:h-4 sm:w-4" }) }),
12326
+ /* @__PURE__ */ jsx("span", { className: "mx-auto mb-1.5 flex h-7 w-7 items-center justify-center rounded-lg bg-primary/10 text-primary sm:mx-0 sm:mb-2 sm:h-8 sm:w-8", children: /* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5 sm:h-4 sm:w-4" }) }),
12259
12327
  /* @__PURE__ */ jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-normal", children: T.capabilities[i] ?? "" }),
12260
- /* @__PURE__ */ jsx("p", { className: "mt-1 hidden text-xs leading-relaxed text-muted-foreground sm:block", children: capBody })
12328
+ /* @__PURE__ */ jsx("p", { className: "mt-1 hidden text-xs leading-snug text-muted-foreground lg:block", children: capBody })
12261
12329
  ]
12262
12330
  },
12263
12331
  i
12264
12332
  )) }),
12265
- prompts.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-8", children: [
12333
+ prompts.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-5", children: [
12266
12334
  /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
12267
12335
  /* @__PURE__ */ jsx(
12268
12336
  PromptCarousel,
@@ -12274,7 +12342,7 @@ function WelcomeState({
12274
12342
  }
12275
12343
  )
12276
12344
  ] }) : null,
12277
- products.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-6", children: [
12345
+ products.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-5", children: [
12278
12346
  /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
12279
12347
  /* @__PURE__ */ jsx(
12280
12348
  ProductStrip,
@@ -17933,6 +18001,19 @@ function StoreProductDetailPage({
17933
18001
  ] });
17934
18002
  }
17935
18003
 
17936
- export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, AnswersPage, BlogListPage, BlogPostPage, Button, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CareersApplyForm, CareersSubmissionForm, CaseStudiesListPage, CaseStudyPage, ChangelogPage, ConceptDetailPage, ConceptsPage, ContactPage, ContentRenderer, ContractsPage, DEFAULT_CONTACT_CATEGORIES, DEFAULT_EXPLORE_EXAMPLE_PROMPTS, ECOSYSTEM_PRODUCTS, ESCALATE_EXPLORE_CONVERSATION_MUTATION, EXPLORE_CATALOG_QUERY, EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, EXPLORE_ESCALATION_NOTE_SOFT_MAX, EXPLORE_LOCALES, EXPLORE_MESSAGE_QUERY, EXPLORE_RECAPTCHA_ACTION, ElectronDownloadLink, ExploreAnswerBody, ExploreAnswerStyles, ExploreCta, ExplorePage, FALLBACK_EXPLORE_LIMITS, Input, Label, LaunchCountdown, Markdown, NewsletterForm, NewsletterPage, PUBLISHED_ANSWER_FIELDS, PageHead, PartnersPage, PressKitPage, PricingPage, PricingSection, ProblemsSolvedSection, ProductCard, ProductProvider, ResourceLinks, RybbitAnalytics, SEND_EXPLORE_MESSAGE_MUTATION, Select, SocialLinks, StarRating, StoreBrowsePage, StoreHomePage, StoreProductDetailPage, Textarea, TypeBadge, UnsubscribePage, WaitlistForm, WaitlistPage, WebSDKClient, WebSDKProvider, WebsiteSwitcher, answerPath, answerPlainText, answerSourceHost, answerSpeechText, answerStrings, buttonVariants, classifyExploreError, cn, conceptPath, detectElectronPlatform, fetchPublicJobPosting, fetchPublicJobPostings, fetchPublicJobPostingsForSubmission, formatAnswerDate, formatDownloads, formatPrice2 as formatPrice, getAnswerBySlug, getConceptBySlug, getRecaptchaV3Token, inlineImageOrigins, isInlineImageAllowed, isPublishedSourceUrl, isValidUrl, loadRecaptchaV3, looksLikeDeliverableEmail, speechLocaleOf, stopSpeaking, useContentPage, useContentPages, useExploreChat, useProduct, useProductConfig, useProgressiveReveal, usePublicJobPosting, usePublicJobPostings, usePublicJobPostingsForSubmission, useSpeechOutput, useWebSDK, useWebSDKConfig };
18004
+ // src/utils/site-chrome.ts
18005
+ var FOOTERLESS_ROUTES = ["/explore"];
18006
+ function normalizeRoutePath(pathname) {
18007
+ const trimmed = pathname.toLowerCase().replace(/\/+$/, "");
18008
+ return trimmed === "" ? "/" : trimmed;
18009
+ }
18010
+ function isFooterlessPath(pathname) {
18011
+ return FOOTERLESS_ROUTES.includes(normalizeRoutePath(pathname));
18012
+ }
18013
+ function shouldRenderSiteFooter(pathname) {
18014
+ return !isFooterlessPath(pathname);
18015
+ }
18016
+
18017
+ export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, AnswersPage, BlogListPage, BlogPostPage, Button, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CareersApplyForm, CareersSubmissionForm, CaseStudiesListPage, CaseStudyPage, ChangelogPage, ConceptDetailPage, ConceptsPage, ContactPage, ContentRenderer, ContractsPage, DEFAULT_CONTACT_CATEGORIES, DEFAULT_EXPLORE_EXAMPLE_PROMPTS, ECOSYSTEM_PRODUCTS, ESCALATE_EXPLORE_CONVERSATION_MUTATION, EXPLORE_CATALOG_QUERY, EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, EXPLORE_ESCALATION_NOTE_SOFT_MAX, EXPLORE_LOCALES, EXPLORE_MESSAGE_QUERY, EXPLORE_RECAPTCHA_ACTION, ElectronDownloadLink, ExploreAnswerBody, ExploreAnswerStyles, ExploreCta, ExplorePage, FALLBACK_EXPLORE_LIMITS, FOOTERLESS_ROUTES, Input, Label, LaunchCountdown, Markdown, NewsletterForm, NewsletterPage, PUBLISHED_ANSWER_FIELDS, PageHead, PartnersPage, PressKitPage, PricingPage, PricingSection, ProblemsSolvedSection, ProductCard, ProductProvider, ResourceLinks, RybbitAnalytics, SEND_EXPLORE_MESSAGE_MUTATION, Select, SocialLinks, StarRating, StoreBrowsePage, StoreHomePage, StoreProductDetailPage, Textarea, TypeBadge, UnsubscribePage, WaitlistForm, WaitlistPage, WebSDKClient, WebSDKProvider, WebsiteSwitcher, answerPath, answerPlainText, answerSourceHost, answerSpeechText, answerStrings, buttonVariants, classifyExploreError, cn, conceptPath, detectElectronPlatform, fetchPublicJobPosting, fetchPublicJobPostings, fetchPublicJobPostingsForSubmission, formatAnswerDate, formatDownloads, formatPrice2 as formatPrice, getAnswerBySlug, getConceptBySlug, getRecaptchaV3Token, inlineImageOrigins, isFooterlessPath, isInlineImageAllowed, isPublishedSourceUrl, isValidUrl, loadRecaptchaV3, looksLikeDeliverableEmail, normalizeRoutePath, shouldRenderSiteFooter, speechLocaleOf, stopSpeaking, useContentPage, useContentPages, useExploreChat, useProduct, useProductConfig, useProgressiveReveal, usePublicJobPosting, usePublicJobPostings, usePublicJobPostingsForSubmission, useSpeechOutput, useWebSDK, useWebSDKConfig };
17937
18018
  //# sourceMappingURL=index.mjs.map
17938
18019
  //# sourceMappingURL=index.mjs.map