@burdenoff/website-sdk 2026.924.3 → 2026.924.5

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.
@@ -5384,7 +5384,7 @@ function ConceptStrip({
5384
5384
  "data-boff-explore": "concept-strip-block",
5385
5385
  className: "boff-explore-rise boff-explore-rise-3 mt-4",
5386
5386
  children: [
5387
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.conceptStripTitle }),
5387
+ /* @__PURE__ */ jsx("p", { className: "mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.conceptStripTitle }),
5388
5388
  /* @__PURE__ */ jsxs("div", { className: "relative", children: [
5389
5389
  /* @__PURE__ */ jsx(
5390
5390
  "button",
@@ -5603,8 +5603,8 @@ function WelcomeState({
5603
5603
  /* @__PURE__ */ jsx(Sparkles, { className: "h-3.5 w-3.5" }),
5604
5604
  T.badge
5605
5605
  ] }),
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 })
5606
+ /* @__PURE__ */ jsx("h1", { className: "mt-2 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", children: body })
5608
5608
  ] }),
5609
5609
  /* @__PURE__ */ jsx("ul", { className: "boff-explore-rise boff-explore-rise-1 mt-4 grid grid-cols-3 gap-2 sm:gap-2.5", children: CAPABILITIES.map(({ icon: Icon, body: capBody }, i) => /* @__PURE__ */ jsxs(
5610
5610
  "li",
@@ -5612,14 +5612,14 @@ function WelcomeState({
5612
5612
  className: "rounded-xl border border-border/70 bg-card/60 p-2.5 text-center transition-colors hover:border-border sm:p-2.5 sm:text-left",
5613
5613
  children: [
5614
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" }) }),
5615
- /* @__PURE__ */ jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-normal", children: T.capabilities[i] ?? "" }),
5615
+ /* @__PURE__ */ jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-snug", children: T.capabilities[i] ?? "" }),
5616
5616
  /* @__PURE__ */ jsx("p", { className: "mt-1 hidden text-xs leading-snug text-muted-foreground lg:block", children: capBody })
5617
5617
  ]
5618
5618
  },
5619
5619
  i
5620
5620
  )) }),
5621
5621
  prompts.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-4", children: [
5622
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
5622
+ /* @__PURE__ */ jsx("p", { className: "mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
5623
5623
  /* @__PURE__ */ jsx(
5624
5624
  PromptCarousel,
5625
5625
  {
@@ -5631,7 +5631,7 @@ function WelcomeState({
5631
5631
  )
5632
5632
  ] }) : null,
5633
5633
  products.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-4", children: [
5634
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
5634
+ /* @__PURE__ */ jsx("p", { className: "mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
5635
5635
  /* @__PURE__ */ jsx(
5636
5636
  ProductStrip,
5637
5637
  {
@@ -6447,7 +6447,13 @@ function ExplorePage({
6447
6447
  {
6448
6448
  "data-boff-explore": "composer-field",
6449
6449
  className: cn(
6450
- "flex min-w-0 items-end gap-2 rounded-2xl border bg-card p-2 shadow-sm transition-all",
6450
+ // Stacked on a phone, one row from `sm` up. Three 36px icon buttons beside
6451
+ // the field left it 138px wide at 320px — about seventeen characters — so on
6452
+ // the narrowest screens the field takes the full width and the buttons get
6453
+ // their own row beneath it. The buttons' wrapper is `sm:contents`, so from
6454
+ // `sm` up it stops being a box and the buttons are direct flex children of
6455
+ // this row again: the desktop layout is byte-for-byte what it was.
6456
+ "flex min-w-0 flex-col items-stretch gap-1 rounded-2xl border bg-card p-2 shadow-sm transition-all sm:flex-row sm:items-end sm:gap-2",
6451
6457
  busy && "boff-explore-busy",
6452
6458
  overLimit ? "border-destructive/60" : "border-border focus-within:border-primary/40 focus-within:ring-1 focus-within:ring-ring",
6453
6459
  // The halo is an invitation, and an invitation is only useful before it has
@@ -6495,62 +6501,64 @@ function ExplorePage({
6495
6501
  }
6496
6502
  }
6497
6503
  ),
6498
- /* @__PURE__ */ jsx(
6499
- Button,
6500
- {
6501
- "data-boff-explore": "attach",
6502
- type: "button",
6503
- size: "icon",
6504
- variant: "ghost",
6505
- disabled: composerDisabled || staged.length >= MAX_ATTACHMENTS,
6506
- "aria-label": T.attach,
6507
- title: `${T.attach} \u2014 ${fill(T.attachHint, {
6508
- max: String(MAX_ATTACHMENTS),
6509
- size: String(MAX_ATTACHMENT_BYTES / (1024 * 1024))
6510
- })}`,
6511
- onClick: () => fileInputRef.current?.click(),
6512
- children: /* @__PURE__ */ jsx(Paperclip, { className: "h-4 w-4" })
6513
- }
6514
- ),
6515
- speech.supported ? /* @__PURE__ */ jsx(
6516
- Button,
6517
- {
6518
- "data-boff-explore": "mic",
6519
- "data-listening": speech.listening ? "true" : "false",
6520
- type: "button",
6521
- size: "icon",
6522
- variant: speech.listening ? "default" : "ghost",
6523
- disabled: composerDisabled,
6524
- "aria-label": speech.listening ? T.stopDictating : T.dictate,
6525
- "aria-pressed": speech.listening,
6526
- title: speech.listening ? T.stopDictating : T.dictate,
6527
- onClick: speech.toggle,
6528
- className: cn(speech.listening && "animate-pulse"),
6529
- children: /* @__PURE__ */ jsx(Mic, { className: "h-4 w-4" })
6530
- }
6531
- ) : null,
6532
- busy ? /* @__PURE__ */ jsx(
6533
- Button,
6534
- {
6535
- "data-boff-explore": "stop",
6536
- type: "button",
6537
- size: "icon",
6538
- variant: "secondary",
6539
- "aria-label": T.stop,
6540
- onClick: stop,
6541
- children: /* @__PURE__ */ jsx(Square, { className: "h-4 w-4" })
6542
- }
6543
- ) : /* @__PURE__ */ jsx(
6544
- Button,
6545
- {
6546
- "data-boff-explore": "send",
6547
- type: "submit",
6548
- size: "icon",
6549
- disabled: !canSubmit,
6550
- "aria-label": T.send,
6551
- children: /* @__PURE__ */ jsx(ArrowUp, { className: "h-4 w-4" })
6552
- }
6553
- )
6504
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-1 sm:contents", children: [
6505
+ /* @__PURE__ */ jsx(
6506
+ Button,
6507
+ {
6508
+ "data-boff-explore": "attach",
6509
+ type: "button",
6510
+ size: "icon",
6511
+ variant: "ghost",
6512
+ disabled: composerDisabled || staged.length >= MAX_ATTACHMENTS,
6513
+ "aria-label": T.attach,
6514
+ title: `${T.attach} \u2014 ${fill(T.attachHint, {
6515
+ max: String(MAX_ATTACHMENTS),
6516
+ size: String(MAX_ATTACHMENT_BYTES / (1024 * 1024))
6517
+ })}`,
6518
+ onClick: () => fileInputRef.current?.click(),
6519
+ children: /* @__PURE__ */ jsx(Paperclip, { className: "h-4 w-4" })
6520
+ }
6521
+ ),
6522
+ speech.supported ? /* @__PURE__ */ jsx(
6523
+ Button,
6524
+ {
6525
+ "data-boff-explore": "mic",
6526
+ "data-listening": speech.listening ? "true" : "false",
6527
+ type: "button",
6528
+ size: "icon",
6529
+ variant: speech.listening ? "default" : "ghost",
6530
+ disabled: composerDisabled,
6531
+ "aria-label": speech.listening ? T.stopDictating : T.dictate,
6532
+ "aria-pressed": speech.listening,
6533
+ title: speech.listening ? T.stopDictating : T.dictate,
6534
+ onClick: speech.toggle,
6535
+ className: cn(speech.listening && "animate-pulse"),
6536
+ children: /* @__PURE__ */ jsx(Mic, { className: "h-4 w-4" })
6537
+ }
6538
+ ) : null,
6539
+ busy ? /* @__PURE__ */ jsx(
6540
+ Button,
6541
+ {
6542
+ "data-boff-explore": "stop",
6543
+ type: "button",
6544
+ size: "icon",
6545
+ variant: "secondary",
6546
+ "aria-label": T.stop,
6547
+ onClick: stop,
6548
+ children: /* @__PURE__ */ jsx(Square, { className: "h-4 w-4" })
6549
+ }
6550
+ ) : /* @__PURE__ */ jsx(
6551
+ Button,
6552
+ {
6553
+ "data-boff-explore": "send",
6554
+ type: "submit",
6555
+ size: "icon",
6556
+ disabled: !canSubmit,
6557
+ "aria-label": T.send,
6558
+ children: /* @__PURE__ */ jsx(ArrowUp, { className: "h-4 w-4" })
6559
+ }
6560
+ )
6561
+ ] })
6554
6562
  ]
6555
6563
  }
6556
6564
  ),