@burdenoff/website-sdk 2026.923.2 → 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.
@@ -556,6 +556,8 @@ var EN = {
556
556
  prevSuggestion: "Previous suggestion",
557
557
  nextSuggestion: "Next suggestion",
558
558
  conceptIllustration: "Concept illustration",
559
+ conceptScrollPrev: "Scroll concepts left",
560
+ conceptScrollNext: "Scroll concepts right",
559
561
  opensInNewTab: "opens in a new tab",
560
562
  conceptStripTitle: "Or start from a concept",
561
563
  conceptStripLabel: "Concepts you can ask about",
@@ -655,6 +657,8 @@ var ZH = {
655
657
  prevSuggestion: "\u4E0A\u4E00\u4E2A\u5EFA\u8BAE",
656
658
  nextSuggestion: "\u4E0B\u4E00\u4E2A\u5EFA\u8BAE",
657
659
  conceptIllustration: "\u6982\u5FF5\u793A\u610F\u56FE",
660
+ conceptScrollPrev: "\u5411\u5DE6\u6EDA\u52A8\u6982\u5FF5",
661
+ conceptScrollNext: "\u5411\u53F3\u6EDA\u52A8\u6982\u5FF5",
658
662
  opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00",
659
663
  conceptStripTitle: "\u6216\u8005\u4ECE\u4E00\u4E2A\u6982\u5FF5\u5F00\u59CB",
660
664
  conceptStripLabel: "\u4F60\u53EF\u4EE5\u8BE2\u95EE\u7684\u6982\u5FF5",
@@ -750,6 +754,8 @@ var HI = {
750
754
  prevSuggestion: "\u092A\u093F\u091B\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
751
755
  nextSuggestion: "\u0905\u0917\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
752
756
  conceptIllustration: "\u0905\u0935\u0927\u093E\u0930\u0923\u093E \u091A\u093F\u0924\u094D\u0930\u0923",
757
+ 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",
758
+ 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",
753
759
  opensInNewTab: "\u0928\u090F \u091F\u0948\u092C \u092E\u0947\u0902 \u0916\u0941\u0932\u0924\u093E \u0939\u0948",
754
760
  conceptStripTitle: "\u092F\u093E \u0915\u093F\u0938\u0940 \u0905\u0935\u0927\u093E\u0930\u0923\u093E \u0938\u0947 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
755
761
  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",
@@ -849,6 +855,8 @@ var ES = {
849
855
  prevSuggestion: "Sugerencia anterior",
850
856
  nextSuggestion: "Sugerencia siguiente",
851
857
  conceptIllustration: "Ilustraci\xF3n del concepto",
858
+ conceptScrollPrev: "Desplazar conceptos a la izquierda",
859
+ conceptScrollNext: "Desplazar conceptos a la derecha",
852
860
  opensInNewTab: "se abre en una pesta\xF1a nueva",
853
861
  conceptStripTitle: "O empieza por un concepto",
854
862
  conceptStripLabel: "Conceptos sobre los que puedes preguntar",
@@ -948,6 +956,8 @@ var AR = {
948
956
  prevSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u0633\u0627\u0628\u0642",
949
957
  nextSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u062A\u0627\u0644\u064A",
950
958
  conceptIllustration: "\u0631\u0633\u0645 \u062A\u0648\u0636\u064A\u062D\u064A \u0644\u0644\u0645\u0641\u0647\u0648\u0645",
959
+ conceptScrollPrev: "\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0645\u0641\u0627\u0647\u064A\u0645 \u0644\u0644\u064A\u0633\u0627\u0631",
960
+ conceptScrollNext: "\u062A\u0645\u0631\u064A\u0631 \u0627\u0644\u0645\u0641\u0627\u0647\u064A\u0645 \u0644\u0644\u064A\u0645\u064A\u0646",
951
961
  opensInNewTab: "\u064A\u064F\u0641\u062A\u062D \u0641\u064A \u0639\u0644\u0627\u0645\u0629 \u062A\u0628\u0648\u064A\u0628 \u062C\u062F\u064A\u062F\u0629",
952
962
  conceptStripTitle: "\u0623\u0648 \u0627\u0628\u062F\u0623 \u0645\u0646 \u0645\u0641\u0647\u0648\u0645",
953
963
  conceptStripLabel: "\u0645\u0641\u0627\u0647\u064A\u0645 \u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0633\u0624\u0627\u0644 \u0639\u0646\u0647\u0627",
@@ -1047,6 +1057,8 @@ var TA = {
1047
1057
  prevSuggestion: "\u0BAE\u0BC1\u0BA8\u0BCD\u0BA4\u0BC8\u0BAF \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
1048
1058
  nextSuggestion: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
1049
1059
  conceptIllustration: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1 \u0BB5\u0BBF\u0BB3\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BAE\u0BCD",
1060
+ 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",
1061
+ 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",
1050
1062
  opensInNewTab: "\u0BAA\u0BC1\u0BA4\u0BBF\u0BAF \u0BA4\u0BBE\u0BB5\u0BB2\u0BBF\u0BB2\u0BCD \u0BA4\u0BBF\u0BB1\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD",
1051
1063
  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",
1052
1064
  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",
@@ -5340,6 +5352,28 @@ function ConceptStrip({
5340
5352
  (current) => current.has(src) ? current : new Set(current).add(src)
5341
5353
  );
5342
5354
  }, []);
5355
+ const railRef = useRef(null);
5356
+ const [canLeft, setCanLeft] = useState(false);
5357
+ const [canRight, setCanRight] = useState(false);
5358
+ const measureRail = useCallback(() => {
5359
+ const el = railRef.current;
5360
+ if (!el) return;
5361
+ setCanLeft(el.scrollLeft > 1);
5362
+ setCanRight(el.scrollLeft + el.clientWidth < el.scrollWidth - 1);
5363
+ }, []);
5364
+ useEffect(() => {
5365
+ const el = railRef.current;
5366
+ if (!el) return;
5367
+ measureRail();
5368
+ const onResize = () => measureRail();
5369
+ window.addEventListener("resize", onResize);
5370
+ return () => window.removeEventListener("resize", onResize);
5371
+ }, [measureRail, highlights.length, failed]);
5372
+ const scrollRail = useCallback((direction) => {
5373
+ const el = railRef.current;
5374
+ if (!el) return;
5375
+ el.scrollBy({ left: direction * el.clientWidth * 0.8, behavior: "smooth" });
5376
+ }, []);
5343
5377
  const visible = highlights.filter(
5344
5378
  (highlight) => highlight.imageUrl !== "" && !failed.has(highlight.imageUrl)
5345
5379
  ).slice(0, MAX_CONCEPT_CARDS);
@@ -5348,71 +5382,105 @@ function ConceptStrip({
5348
5382
  "div",
5349
5383
  {
5350
5384
  "data-boff-explore": "concept-strip-block",
5351
- className: "boff-explore-rise boff-explore-rise-3 mt-6",
5385
+ className: "boff-explore-rise boff-explore-rise-3 mt-5",
5352
5386
  children: [
5353
5387
  /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.conceptStripTitle }),
5354
- /* @__PURE__ */ jsx(
5355
- "ul",
5356
- {
5357
- "data-boff-explore": "concept-strip",
5358
- "aria-label": T.conceptStripLabel,
5359
- className: "boff-explore-strip flex min-w-0 snap-x gap-3 overflow-x-auto pb-1",
5360
- children: visible.map((highlight) => /* @__PURE__ */ jsx(
5361
- "li",
5362
- {
5363
- className: "shrink-0 snap-start",
5364
- children: /* @__PURE__ */ jsxs(
5365
- "button",
5366
- {
5367
- "data-boff-explore": "concept-card",
5368
- "data-product": highlight.product,
5369
- type: "button",
5370
- disabled,
5371
- "aria-label": fill(T.conceptAsk, {
5372
- title: highlight.title,
5373
- product: highlight.productName
5374
- }),
5375
- onClick: () => onAsk(
5376
- fill(T.conceptAskQuestion, {
5388
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
5389
+ /* @__PURE__ */ jsx(
5390
+ "button",
5391
+ {
5392
+ type: "button",
5393
+ "data-boff-explore": "concept-prev",
5394
+ "aria-label": T.conceptScrollPrev,
5395
+ tabIndex: -1,
5396
+ onClick: () => scrollRail(-1),
5397
+ className: cn(
5398
+ "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",
5399
+ canLeft ? "opacity-100" : "pointer-events-none opacity-0"
5400
+ ),
5401
+ children: /* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" })
5402
+ }
5403
+ ),
5404
+ /* @__PURE__ */ jsx(
5405
+ "button",
5406
+ {
5407
+ type: "button",
5408
+ "data-boff-explore": "concept-next",
5409
+ "aria-label": T.conceptScrollNext,
5410
+ tabIndex: -1,
5411
+ onClick: () => scrollRail(1),
5412
+ className: cn(
5413
+ "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",
5414
+ canRight ? "opacity-100" : "pointer-events-none opacity-0"
5415
+ ),
5416
+ children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" })
5417
+ }
5418
+ ),
5419
+ /* @__PURE__ */ jsx(
5420
+ "ul",
5421
+ {
5422
+ ref: railRef,
5423
+ onScroll: measureRail,
5424
+ "data-boff-explore": "concept-strip",
5425
+ "aria-label": T.conceptStripLabel,
5426
+ className: "boff-explore-strip flex min-w-0 snap-x gap-3 overflow-x-auto pb-1",
5427
+ children: visible.map((highlight) => /* @__PURE__ */ jsx(
5428
+ "li",
5429
+ {
5430
+ className: "shrink-0 snap-start",
5431
+ children: /* @__PURE__ */ jsxs(
5432
+ "button",
5433
+ {
5434
+ "data-boff-explore": "concept-card",
5435
+ "data-product": highlight.product,
5436
+ type: "button",
5437
+ disabled,
5438
+ "aria-label": fill(T.conceptAsk, {
5377
5439
  title: highlight.title,
5378
5440
  product: highlight.productName
5379
- })
5380
- ),
5381
- 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",
5382
- children: [
5383
- /* @__PURE__ */ jsxs("span", { className: "relative block aspect-[16/9] w-full overflow-hidden bg-muted", children: [
5384
- /* @__PURE__ */ jsx(
5385
- "img",
5386
- {
5387
- src: highlight.imageUrl,
5388
- alt: highlight.alt,
5389
- loading: "lazy",
5390
- decoding: "async",
5391
- onError: () => markFailed(highlight.imageUrl),
5392
- className: "h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"
5393
- }
5394
- ),
5395
- /* @__PURE__ */ jsx(
5396
- "span",
5397
- {
5398
- "aria-hidden": "true",
5399
- 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",
5400
- children: T.conceptIllustration
5401
- }
5402
- )
5403
- ] }),
5404
- /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col gap-0.5 p-2.5", children: [
5405
- /* @__PURE__ */ jsx("span", { className: "line-clamp-2 text-xs font-semibold leading-snug text-card-foreground", children: highlight.title }),
5406
- /* @__PURE__ */ jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: highlight.productName })
5407
- ] })
5408
- ]
5409
- }
5410
- )
5411
- },
5412
- `${highlight.product}:${highlight.url}`
5413
- ))
5414
- }
5415
- )
5441
+ }),
5442
+ onClick: () => onAsk(
5443
+ fill(T.conceptAskQuestion, {
5444
+ title: highlight.title,
5445
+ product: highlight.productName
5446
+ })
5447
+ ),
5448
+ 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",
5449
+ children: [
5450
+ /* @__PURE__ */ jsxs("span", { className: "relative block aspect-[16/9] w-full overflow-hidden bg-muted", children: [
5451
+ /* @__PURE__ */ jsx(
5452
+ "img",
5453
+ {
5454
+ src: highlight.imageUrl,
5455
+ alt: highlight.alt,
5456
+ loading: "lazy",
5457
+ decoding: "async",
5458
+ onError: () => markFailed(highlight.imageUrl),
5459
+ className: "h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"
5460
+ }
5461
+ ),
5462
+ /* @__PURE__ */ jsx(
5463
+ "span",
5464
+ {
5465
+ "aria-hidden": "true",
5466
+ 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",
5467
+ children: T.conceptIllustration
5468
+ }
5469
+ )
5470
+ ] }),
5471
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col gap-0.5 p-2.5", children: [
5472
+ /* @__PURE__ */ jsx("span", { className: "line-clamp-2 text-xs font-semibold leading-snug text-card-foreground", children: highlight.title }),
5473
+ /* @__PURE__ */ jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: highlight.productName })
5474
+ ] })
5475
+ ]
5476
+ }
5477
+ )
5478
+ },
5479
+ `${highlight.product}:${highlight.url}`
5480
+ ))
5481
+ }
5482
+ )
5483
+ ] })
5416
5484
  ]
5417
5485
  }
5418
5486
  );
@@ -5529,28 +5597,28 @@ function WelcomeState({
5529
5597
  onFocus,
5530
5598
  disabled
5531
5599
  }) {
5532
- 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: [
5600
+ 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: [
5533
5601
  /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise text-center", children: [
5534
5602
  /* @__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: [
5535
5603
  /* @__PURE__ */ jsx(Sparkles, { className: "h-3.5 w-3.5" }),
5536
5604
  T.badge
5537
5605
  ] }),
5538
- /* @__PURE__ */ jsx("h1", { className: "mt-4 text-balance break-words text-2xl font-bold tracking-tight sm:text-4xl", children: title }),
5539
- /* @__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 })
5606
+ /* @__PURE__ */ jsx("h1", { className: "mt-3 text-balance break-words text-2xl font-bold tracking-tight sm:text-3xl", children: title }),
5607
+ /* @__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 })
5540
5608
  ] }),
5541
- /* @__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(
5609
+ /* @__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(
5542
5610
  "li",
5543
5611
  {
5544
- 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",
5612
+ 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",
5545
5613
  children: [
5546
- /* @__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" }) }),
5614
+ /* @__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" }) }),
5547
5615
  /* @__PURE__ */ jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-normal", children: T.capabilities[i] ?? "" }),
5548
- /* @__PURE__ */ jsx("p", { className: "mt-1 hidden text-xs leading-relaxed text-muted-foreground sm:block", children: capBody })
5616
+ /* @__PURE__ */ jsx("p", { className: "mt-1 hidden text-xs leading-snug text-muted-foreground lg:block", children: capBody })
5549
5617
  ]
5550
5618
  },
5551
5619
  i
5552
5620
  )) }),
5553
- prompts.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-8", children: [
5621
+ prompts.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-5", children: [
5554
5622
  /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
5555
5623
  /* @__PURE__ */ jsx(
5556
5624
  PromptCarousel,
@@ -5562,7 +5630,7 @@ function WelcomeState({
5562
5630
  }
5563
5631
  )
5564
5632
  ] }) : null,
5565
- products.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-6", children: [
5633
+ products.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-5", children: [
5566
5634
  /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
5567
5635
  /* @__PURE__ */ jsx(
5568
5636
  ProductStrip,