@burdenoff/website-sdk 2026.921.1 → 2026.922.1

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/README.md CHANGED
@@ -161,8 +161,8 @@ function Header() {
161
161
  | `productSlug` | – | The site this page is on. A soft hint to the assistant, not a hard filter. |
162
162
  | `examplePrompts` | – | Prompt chips used only when the backend catalog supplies none. |
163
163
  | `className` | – | Extra classes on the page root. |
164
- | `heightMode` | `'viewport'` | `viewport` pins the chat to the screen with an internally scrolling transcript; `auto` lets the page grow (for embedding). |
165
- | `viewportOffset` | `0` | Chrome to subtract in `viewport` mode. A number is pixels; a string is any CSS length (`'4rem'`). |
164
+ | `heightMode` | `'viewport'` | `viewport` pins the chat to the screen with an internally scrolling transcript, and is the only mode in which the component manages the host page's scroll position; `auto` lets the page grow and never touches its host's scrolling (for embedding). |
165
+ | `viewportOffset` | `0` | Chrome to subtract in `viewport` mode, **before the first measurement only**. A number is pixels; a string is any CSS length (`'4rem'`). Once mounted the pane measures its own top and this value stops being used — so an approximate header height is fine, and the on-screen keyboard is handled for you. |
166
166
  | `onNavigate` | – | SPA navigation for internal CTA paths. Without it, CTAs render as plain links. |
167
167
  | `onSend` | – | Fired with the message text each time a send is accepted (analytics). |
168
168
  | `welcomeTitle` / `welcomeBody` | catalog values | Override the welcome copy. `welcomeTitle` **is** the page `<h1>`. |
@@ -23,11 +23,19 @@ interface ExplorePageProps {
23
23
  * `viewport` (default) pins the chat to the viewport with an internally
24
24
  * scrolling transcript — the right feel for a dedicated `/explore` route.
25
25
  * `auto` lets the page grow, for embedding inside a longer page.
26
+ *
27
+ * `viewport` also means "this component IS the page": only in that mode does it take over
28
+ * `history.scrollRestoration` and correct a restored scroll offset that has parked the
29
+ * page in the site footer. An `auto` embed never touches its host page's scrolling.
26
30
  */
27
31
  heightMode?: "viewport" | "auto";
28
32
  /**
29
- * Chrome to subtract in `viewport` mode — the site header (and footer)
30
- * height. A number is treated as pixels. Default `0`.
33
+ * Chrome to subtract in `viewport` mode — the site header height. A number is treated as
34
+ * pixels. Default `0`.
35
+ *
36
+ * Pre-measurement fallback ONLY. Once mounted the pane measures its own top, so an
37
+ * approximate value is fine and the keyboard case is handled; see `measurePane` in
38
+ * `ExplorePage`.
31
39
  */
32
40
  viewportOffset?: string | number;
33
41
  /** SPA navigation for internal CTA paths. Falls back to a plain link. */
@@ -23,11 +23,19 @@ interface ExplorePageProps {
23
23
  * `viewport` (default) pins the chat to the viewport with an internally
24
24
  * scrolling transcript — the right feel for a dedicated `/explore` route.
25
25
  * `auto` lets the page grow, for embedding inside a longer page.
26
+ *
27
+ * `viewport` also means "this component IS the page": only in that mode does it take over
28
+ * `history.scrollRestoration` and correct a restored scroll offset that has parked the
29
+ * page in the site footer. An `auto` embed never touches its host page's scrolling.
26
30
  */
27
31
  heightMode?: "viewport" | "auto";
28
32
  /**
29
- * Chrome to subtract in `viewport` mode — the site header (and footer)
30
- * height. A number is treated as pixels. Default `0`.
33
+ * Chrome to subtract in `viewport` mode — the site header height. A number is treated as
34
+ * pixels. Default `0`.
35
+ *
36
+ * Pre-measurement fallback ONLY. Once mounted the pane measures its own top, so an
37
+ * approximate value is fine and the keyboard case is handled; see `measurePane` in
38
+ * `ExplorePage`.
31
39
  */
32
40
  viewportOffset?: string | number;
33
41
  /** SPA navigation for internal CTA paths. Falls back to a plain link. */