@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.
package/dist/index.js CHANGED
@@ -12260,7 +12260,7 @@ function ConceptStrip({
12260
12260
  "data-boff-explore": "concept-strip-block",
12261
12261
  className: "boff-explore-rise boff-explore-rise-3 mt-4",
12262
12262
  children: [
12263
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.conceptStripTitle }),
12263
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.conceptStripTitle }),
12264
12264
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
12265
12265
  /* @__PURE__ */ jsxRuntime.jsx(
12266
12266
  "button",
@@ -12479,8 +12479,8 @@ function WelcomeState({
12479
12479
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-3.5 w-3.5" }),
12480
12480
  T.badge
12481
12481
  ] }),
12482
- /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mt-3 text-balance break-words text-2xl font-bold tracking-tight sm:text-3xl", children: title }),
12483
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mx-auto mt-2 max-w-2xl text-pretty text-sm leading-relaxed text-muted-foreground sm:text-base", children: body })
12482
+ /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mt-2 text-balance break-words text-2xl font-bold tracking-tight sm:text-3xl", children: title }),
12483
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mx-auto mt-2 max-w-2xl text-pretty text-sm leading-relaxed text-muted-foreground", children: body })
12484
12484
  ] }),
12485
12485
  /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsxs(
12486
12486
  "li",
@@ -12488,14 +12488,14 @@ function WelcomeState({
12488
12488
  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",
12489
12489
  children: [
12490
12490
  /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsx(Icon, { className: "h-3.5 w-3.5 sm:h-4 sm:w-4" }) }),
12491
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-normal", children: T.capabilities[i] ?? "" }),
12491
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-snug", children: T.capabilities[i] ?? "" }),
12492
12492
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 hidden text-xs leading-snug text-muted-foreground lg:block", children: capBody })
12493
12493
  ]
12494
12494
  },
12495
12495
  i
12496
12496
  )) }),
12497
12497
  prompts.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-4", children: [
12498
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
12498
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
12499
12499
  /* @__PURE__ */ jsxRuntime.jsx(
12500
12500
  PromptCarousel,
12501
12501
  {
@@ -12507,7 +12507,7 @@ function WelcomeState({
12507
12507
  )
12508
12508
  ] }) : null,
12509
12509
  products.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-4", children: [
12510
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
12510
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
12511
12511
  /* @__PURE__ */ jsxRuntime.jsx(
12512
12512
  ProductStrip,
12513
12513
  {
@@ -13323,7 +13323,13 @@ function ExplorePage({
13323
13323
  {
13324
13324
  "data-boff-explore": "composer-field",
13325
13325
  className: cn(
13326
- "flex min-w-0 items-end gap-2 rounded-2xl border bg-card p-2 shadow-sm transition-all",
13326
+ // Stacked on a phone, one row from `sm` up. Three 36px icon buttons beside
13327
+ // the field left it 138px wide at 320px — about seventeen characters — so on
13328
+ // the narrowest screens the field takes the full width and the buttons get
13329
+ // their own row beneath it. The buttons' wrapper is `sm:contents`, so from
13330
+ // `sm` up it stops being a box and the buttons are direct flex children of
13331
+ // this row again: the desktop layout is byte-for-byte what it was.
13332
+ "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",
13327
13333
  busy && "boff-explore-busy",
13328
13334
  overLimit ? "border-destructive/60" : "border-border focus-within:border-primary/40 focus-within:ring-1 focus-within:ring-ring",
13329
13335
  // The halo is an invitation, and an invitation is only useful before it has
@@ -13371,62 +13377,64 @@ function ExplorePage({
13371
13377
  }
13372
13378
  }
13373
13379
  ),
13374
- /* @__PURE__ */ jsxRuntime.jsx(
13375
- Button,
13376
- {
13377
- "data-boff-explore": "attach",
13378
- type: "button",
13379
- size: "icon",
13380
- variant: "ghost",
13381
- disabled: composerDisabled || staged.length >= MAX_ATTACHMENTS,
13382
- "aria-label": T.attach,
13383
- title: `${T.attach} \u2014 ${fill(T.attachHint, {
13384
- max: String(MAX_ATTACHMENTS),
13385
- size: String(MAX_ATTACHMENT_BYTES / (1024 * 1024))
13386
- })}`,
13387
- onClick: () => fileInputRef.current?.click(),
13388
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Paperclip, { className: "h-4 w-4" })
13389
- }
13390
- ),
13391
- speech.supported ? /* @__PURE__ */ jsxRuntime.jsx(
13392
- Button,
13393
- {
13394
- "data-boff-explore": "mic",
13395
- "data-listening": speech.listening ? "true" : "false",
13396
- type: "button",
13397
- size: "icon",
13398
- variant: speech.listening ? "default" : "ghost",
13399
- disabled: composerDisabled,
13400
- "aria-label": speech.listening ? T.stopDictating : T.dictate,
13401
- "aria-pressed": speech.listening,
13402
- title: speech.listening ? T.stopDictating : T.dictate,
13403
- onClick: speech.toggle,
13404
- className: cn(speech.listening && "animate-pulse"),
13405
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mic, { className: "h-4 w-4" })
13406
- }
13407
- ) : null,
13408
- busy ? /* @__PURE__ */ jsxRuntime.jsx(
13409
- Button,
13410
- {
13411
- "data-boff-explore": "stop",
13412
- type: "button",
13413
- size: "icon",
13414
- variant: "secondary",
13415
- "aria-label": T.stop,
13416
- onClick: stop,
13417
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-4 w-4" })
13418
- }
13419
- ) : /* @__PURE__ */ jsxRuntime.jsx(
13420
- Button,
13421
- {
13422
- "data-boff-explore": "send",
13423
- type: "submit",
13424
- size: "icon",
13425
- disabled: !canSubmit,
13426
- "aria-label": T.send,
13427
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, { className: "h-4 w-4" })
13428
- }
13429
- )
13380
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-end gap-1 sm:contents", children: [
13381
+ /* @__PURE__ */ jsxRuntime.jsx(
13382
+ Button,
13383
+ {
13384
+ "data-boff-explore": "attach",
13385
+ type: "button",
13386
+ size: "icon",
13387
+ variant: "ghost",
13388
+ disabled: composerDisabled || staged.length >= MAX_ATTACHMENTS,
13389
+ "aria-label": T.attach,
13390
+ title: `${T.attach} \u2014 ${fill(T.attachHint, {
13391
+ max: String(MAX_ATTACHMENTS),
13392
+ size: String(MAX_ATTACHMENT_BYTES / (1024 * 1024))
13393
+ })}`,
13394
+ onClick: () => fileInputRef.current?.click(),
13395
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Paperclip, { className: "h-4 w-4" })
13396
+ }
13397
+ ),
13398
+ speech.supported ? /* @__PURE__ */ jsxRuntime.jsx(
13399
+ Button,
13400
+ {
13401
+ "data-boff-explore": "mic",
13402
+ "data-listening": speech.listening ? "true" : "false",
13403
+ type: "button",
13404
+ size: "icon",
13405
+ variant: speech.listening ? "default" : "ghost",
13406
+ disabled: composerDisabled,
13407
+ "aria-label": speech.listening ? T.stopDictating : T.dictate,
13408
+ "aria-pressed": speech.listening,
13409
+ title: speech.listening ? T.stopDictating : T.dictate,
13410
+ onClick: speech.toggle,
13411
+ className: cn(speech.listening && "animate-pulse"),
13412
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mic, { className: "h-4 w-4" })
13413
+ }
13414
+ ) : null,
13415
+ busy ? /* @__PURE__ */ jsxRuntime.jsx(
13416
+ Button,
13417
+ {
13418
+ "data-boff-explore": "stop",
13419
+ type: "button",
13420
+ size: "icon",
13421
+ variant: "secondary",
13422
+ "aria-label": T.stop,
13423
+ onClick: stop,
13424
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-4 w-4" })
13425
+ }
13426
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
13427
+ Button,
13428
+ {
13429
+ "data-boff-explore": "send",
13430
+ type: "submit",
13431
+ size: "icon",
13432
+ disabled: !canSubmit,
13433
+ "aria-label": T.send,
13434
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowUp, { className: "h-4 w-4" })
13435
+ }
13436
+ )
13437
+ ] })
13430
13438
  ]
13431
13439
  }
13432
13440
  ),