@burdenoff/website-sdk 2026.924.4 → 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.
@@ -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
  ),