@burdenoff/website-sdk 2026.924.8 → 2026.924.10
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/components/explore.js +56 -4
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +56 -4
- package/dist/components/explore.mjs.map +1 -1
- package/dist/index.js +56 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +56 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -3857,6 +3857,9 @@ function toPayload(staged) {
|
|
|
3857
3857
|
}));
|
|
3858
3858
|
}
|
|
3859
3859
|
var SHORT_VIEWPORT_PX = 420;
|
|
3860
|
+
var WELCOME_FIT_MIN_WIDTH_PX = 640;
|
|
3861
|
+
var WELCOME_FIT_STEP_PX = [700, 549, 505, 422];
|
|
3862
|
+
var toRem = (px) => `${px / 16}rem`;
|
|
3860
3863
|
var EXPLORE_CSS = `
|
|
3861
3864
|
@keyframes boff-explore-pulse {
|
|
3862
3865
|
0%, 80%, 100% { opacity: 0.25; transform: translateY(0); }
|
|
@@ -4067,6 +4070,50 @@ var EXPLORE_CSS = `
|
|
|
4067
4070
|
}
|
|
4068
4071
|
}
|
|
4069
4072
|
|
|
4073
|
+
/* ---- Welcome fit ----------------------------------------------------------------------
|
|
4074
|
+
The ladder is documented at WELCOME_FIT_STEP_PX. The pane becomes a query container only
|
|
4075
|
+
in viewport mode and above the short-viewport threshold, because size containment sizes
|
|
4076
|
+
an element as if it had no content. That is safe exactly while the pane's height comes
|
|
4077
|
+
from its flex parent. In \`auto\` mode, and in the short-viewport fallback above, the pane
|
|
4078
|
+
grows WITH its content \u2014 and containment there would collapse it to zero height.
|
|
4079
|
+
|
|
4080
|
+
Selectors are two classes deep on purpose. The host sites' Tailwind puts \`py-5\`, \`mt-4\`
|
|
4081
|
+
and \`aspect-[2/1]\` on these same elements; unlayered SDK CSS already outranks a v4
|
|
4082
|
+
\`@layer utilities\` rule, and the extra class makes it outrank a v3 one too, whichever
|
|
4083
|
+
stylesheet happens to load last.
|
|
4084
|
+
|
|
4085
|
+
Nothing here hides the concept strip, and nothing here hides content the page does not
|
|
4086
|
+
also say elsewhere. Below the last step the pane scrolls, so every control stays
|
|
4087
|
+
reachable at every zoom level. */
|
|
4088
|
+
@media (min-height: ${SHORT_VIEWPORT_PX + 1}px) {
|
|
4089
|
+
.boff-explore-viewport .boff-explore-scroll {
|
|
4090
|
+
container: boff-explore-pane / size;
|
|
4091
|
+
}
|
|
4092
|
+
}
|
|
4093
|
+
@container boff-explore-pane (min-width: ${toRem(WELCOME_FIT_MIN_WIDTH_PX)}) and (max-height: ${toRem(WELCOME_FIT_STEP_PX[0])}) {
|
|
4094
|
+
/* Step 1. Each tile restates something the page already says in the badge, the intro or
|
|
4095
|
+
the composer footer, so this is the one block whose absence loses nothing. */
|
|
4096
|
+
.boff-explore-scroll .boff-explore-capabilities { display: none; }
|
|
4097
|
+
}
|
|
4098
|
+
@container boff-explore-pane (min-width: ${toRem(WELCOME_FIT_MIN_WIDTH_PX)}) and (max-height: ${toRem(WELCOME_FIT_STEP_PX[1])}) {
|
|
4099
|
+
/* Step 2. */
|
|
4100
|
+
.boff-explore-scroll .boff-explore-concept-media { aspect-ratio: 4 / 1; }
|
|
4101
|
+
}
|
|
4102
|
+
@container boff-explore-pane (min-width: ${toRem(WELCOME_FIT_MIN_WIDTH_PX)}) and (max-height: ${toRem(WELCOME_FIT_STEP_PX[2])}) {
|
|
4103
|
+
/* Step 3. Title-only cards. The "concept illustration" caveat lives on the picture, so it
|
|
4104
|
+
goes with it; the button's accessible name never depended on the image. Lazy images
|
|
4105
|
+
inside a display:none box are not fetched until there is room to show them. */
|
|
4106
|
+
.boff-explore-scroll .boff-explore-concept-media { display: none; }
|
|
4107
|
+
.boff-explore-scroll .boff-explore-aura { padding-top: 0.75rem; padding-bottom: 0.75rem; }
|
|
4108
|
+
.boff-explore-scroll .boff-explore-aura > :not(:first-child) { margin-top: 0.5rem; }
|
|
4109
|
+
}
|
|
4110
|
+
@container boff-explore-pane (min-width: ${toRem(WELCOME_FIT_MIN_WIDTH_PX)}) and (max-height: ${toRem(WELCOME_FIT_STEP_PX[3])}) {
|
|
4111
|
+
/* Step 4. The badge is the third statement on this screen that answers come from our
|
|
4112
|
+
documentation. The heading beneath it loses its top margin so the hero starts flush. */
|
|
4113
|
+
.boff-explore-scroll .boff-explore-hero-badge { display: none; }
|
|
4114
|
+
.boff-explore-scroll .boff-explore-hero-badge + h1 { margin-top: 0; }
|
|
4115
|
+
}
|
|
4116
|
+
|
|
4070
4117
|
/* ---- Composer dock --------------------------------------------------------------------
|
|
4071
4118
|
Three declarations, each the fallback for the one after it: a plain 1rem where \`max()\`
|
|
4072
4119
|
is unknown, then the measured overlap of any FOREIGN fixed chrome sitting over the
|
|
@@ -5393,7 +5440,12 @@ function ConceptStrip({
|
|
|
5393
5440
|
measureRail();
|
|
5394
5441
|
const onResize = () => measureRail();
|
|
5395
5442
|
window.addEventListener("resize", onResize);
|
|
5396
|
-
|
|
5443
|
+
const observer = typeof ResizeObserver === "function" ? new ResizeObserver(onResize) : null;
|
|
5444
|
+
observer?.observe(el);
|
|
5445
|
+
return () => {
|
|
5446
|
+
window.removeEventListener("resize", onResize);
|
|
5447
|
+
observer?.disconnect();
|
|
5448
|
+
};
|
|
5397
5449
|
}, [measureRail, highlights.length, failed]);
|
|
5398
5450
|
const scrollRail = React.useCallback((direction) => {
|
|
5399
5451
|
const el = railRef.current;
|
|
@@ -5473,7 +5525,7 @@ function ConceptStrip({
|
|
|
5473
5525
|
),
|
|
5474
5526
|
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-44",
|
|
5475
5527
|
children: [
|
|
5476
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative block aspect-[2/1] w-full overflow-hidden bg-muted", children: [
|
|
5528
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "boff-explore-concept-media relative block aspect-[2/1] w-full overflow-hidden bg-muted", children: [
|
|
5477
5529
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5478
5530
|
"img",
|
|
5479
5531
|
{
|
|
@@ -5625,14 +5677,14 @@ function WelcomeState({
|
|
|
5625
5677
|
}) {
|
|
5626
5678
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-aura mx-auto my-auto w-full max-w-3xl px-4 py-4 sm:py-5", children: [
|
|
5627
5679
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise text-center", children: [
|
|
5628
|
-
/* @__PURE__ */ jsxRuntime.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: [
|
|
5680
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "boff-explore-hero-badge 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: [
|
|
5629
5681
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-3.5 w-3.5" }),
|
|
5630
5682
|
T.badge
|
|
5631
5683
|
] }),
|
|
5632
5684
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mt-2 text-balance break-words text-2xl font-bold tracking-tight sm:text-3xl", children: title }),
|
|
5633
5685
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mx-auto mt-2 max-w-2xl text-pretty text-sm leading-relaxed text-muted-foreground", children: body })
|
|
5634
5686
|
] }),
|
|
5635
|
-
/* @__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(
|
|
5687
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "boff-explore-capabilities 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(
|
|
5636
5688
|
"li",
|
|
5637
5689
|
{
|
|
5638
5690
|
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",
|