@stapel/search-react 0.32.8 → 0.33.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,61 @@
1
1
  # @stapel/search-react
2
2
 
3
+ ## 0.33.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 1cdb4eb: search: the rail and the results toolbar can both be told where the page's chrome ends
8
+
9
+ Both columns of `<SearchPage>` pin something, and a deployment with a fixed
10
+ header could state neither of them without reaching around the pair.
11
+
12
+ - **`<SearchPage railTop>`** — where the filter rail's sticky top edge sits. The
13
+ rail is `position: sticky; top: 0` written INLINE, and an inline declaration is
14
+ beaten by nothing but `!important`, so the fleet's storefront carried that
15
+ `!important` as the only rule in its repo aimed at a pair's own geometry —
16
+ which meant the first 56-64px of the rail (its heading and its first control)
17
+ sat behind the header everywhere else. A number is pixels; a string is taken as
18
+ written, so `railTop="var(--stapel-header-height)"` reads the height
19
+ `@stapel/shell-react`'s `<PublicShell>` now publishes rather than restating it.
20
+ The rail's internal height cap moves WITH the offset — a rail pushed 64px down
21
+ the window whose cap is still `100dvh` ends 64px past the foot of the screen
22
+ and its last control is unreachable. `railStyle(top)` is exported for a host
23
+ laying out its own column.
24
+ - **The results toolbar has an element of its own, in BOTH header shapes.**
25
+ `data-testid="search-results-toolbar"` and the class `RESULTS_TOOLBAR_CLASS`
26
+ (`"stapel-search-results-toolbar"`) are on the row that carries the sort, the
27
+ view switch, the page size and the count: in `"banner"` that is the wide header
28
+ block (heading at one end, controls at the other, one line, already a direct
29
+ child of the results column), in `"compact"` the toolbar row alone. It had no
30
+ class, no test id and, in the compact header, no parent but a ~112px stack, so
31
+ a host that wanted it pinned needed a `:has()` on the heading beside it, a
32
+ `display: contents` and this pair's own rail breakpoint restated in a media
33
+ query — three rules aimed at a shape the pane could change under them.
34
+ - **`<SearchResultsPane stickyToolbar={{ top }}>`**, passed through from
35
+ `<SearchPage stickyToolbar>`. It pins the row the pane ACTUALLY drew, which is
36
+ why it is a prop and not a stylesheet: the pane knows which shape it is in and
37
+ a sheet has to guess. Net-zero in flow — `position`, a layer and the `surface`
38
+ background, and not one pixel of padding, because a bar that grows room to
39
+ breathe has to give it back and which spacing that is belongs to the host. And
40
+ no second sort control: there is exactly one on a results page and this pins it
41
+ where it stands.
42
+ - **The toolbar row is one line that cannot become two** — `flex-wrap: nowrap`,
43
+ `min-inline-size: 0`, `overflow-x: auto` and a thin scrollbar, in both shapes. The count arrives
44
+ with the answer, one render after the toolbar is on screen; a row that wraps
45
+ grows a second line at exactly that moment, and a bar that grows while pinned
46
+ pushes the first cards of the feed down under the reader's eye.
47
+
48
+ **One visual change, and only on the phone**: the compact header's stack now
49
+ draws no box of its own (`display: contents`), so its heading, toolbar and count
50
+ are items of the results COLUMN — which is what a sticky row needs, since
51
+ `position: sticky` travels inside its parent and a toolbar nested in a 112px
52
+ stack can move 112px and no further. The gap between those three is therefore
53
+ the column's rather than the stack's. Everything else is unchanged for a host
54
+ that passes neither new prop.
55
+
56
+ Size: `dist/default/index.js` 31.05 → 31.2 KB measured with dependencies held
57
+ constant (150 B); the ceiling moves 31.25 → 31.5 KB.
58
+
3
59
  ## 0.32.8
4
60
 
5
61
  ### Patch Changes
package/README.md CHANGED
@@ -466,6 +466,64 @@ the scroll port's floor, which is right in a sheet whose port IS the sheet. It
466
466
  was pinned everywhere, and on the desktop rail an opaque bar over the last two
467
467
  groups made them unreachable.
468
468
 
469
+ ## Under a host's own header: `railTop` and `stickyToolbar`
470
+
471
+ ```tsx
472
+ <SearchPage
473
+ adapter={adapter}
474
+ railTop="var(--stapel-header-height)"
475
+ stickyToolbar={{ top: "var(--stapel-header-height)" }}
476
+ />
477
+ ```
478
+
479
+ Both columns of this page pin something, and until now neither could be told
480
+ where the page's chrome ends.
481
+
482
+ **`railTop`** is where the filter rail's sticky top edge sits. The rail is
483
+ `position: sticky; top: 0` written INLINE, and an inline declaration is beaten
484
+ by nothing but `!important` — so a deployment with a fixed header had exactly
485
+ one way to move it, and the fleet's storefront carried that `!important` as the
486
+ only rule in its repo aimed at a pair's own geometry. A number is pixels; a
487
+ string is taken as written, so `--stapel-header-height` (published by
488
+ `@stapel/shell-react`'s `<PublicShell>`) can be read rather than restated. The
489
+ rail's internal height cap moves with the offset — a rail pushed 64px down the
490
+ window whose cap is still `100dvh` ends 64px past the foot of the screen, and
491
+ its last control is then unreachable. `railStyle(top)` is exported for a host
492
+ laying out its own column.
493
+
494
+ **`stickyToolbar`** pins the results toolbar under the same chrome, and it is a
495
+ prop rather than a host stylesheet because the pane knows which of its two
496
+ header shapes it drew and a sheet has to guess:
497
+
498
+ | Header shape | What the class `stapel-search-results-toolbar` / `data-testid="search-results-toolbar"` is on | What pins |
499
+ |---|---|---|
500
+ | `"banner"` (wide) | the header block — heading at one end, count and controls at the other, one line | the block; it is already a direct child of the results column |
501
+ | `"compact"` (phone) | the toolbar row alone | the row — one line, the height of one phone control |
502
+
503
+ The compact stack draws no box of its own (`display: contents`), so its three
504
+ rows are items of the results COLUMN: `position: sticky` travels inside its
505
+ parent, and a toolbar nested in a ~112px stack can move 112px and no further.
506
+ The one visible consequence is that the gap between heading, toolbar and count
507
+ is the column's rather than the stack's.
508
+
509
+ Two things the pin does NOT do, both deliberate:
510
+
511
+ - **it adds no padding.** A pinned bar that grows room to breathe over the
512
+ cards passing under it has to give the same room back as negative margin, and
513
+ which spacing that is belongs to the host. A row that occupies exactly the box
514
+ it already occupied cannot shift anything.
515
+ - **it draws no second sort control.** The row that pins is the row the pane
516
+ already drew. A host that builds a bar of its own over the page ends up with
517
+ two sort controls over one search, and the one a person presses is whichever
518
+ the layout put under their thumb.
519
+
520
+ The row is also one line that cannot become two: `flex-wrap: nowrap`,
521
+ `min-inline-size: 0`, `overflow-x: auto` and a thin scrollbar (an invisible
522
+ scroll port is indistinguishable from a row that ends where it was cut). The count arrives WITH the answer,
523
+ one render after the toolbar is already on screen, and a row that wraps grows a
524
+ second line at exactly that moment — a bar that grows while it is pinned pushes
525
+ the first cards of the feed down under the reader's eye.
526
+
469
527
  ## The other sections are a line, and they come with the results
470
528
 
471
529
  `<SearchPage otherCategories categoryName={...}>` draws
@@ -599,7 +657,7 @@ the configured engine cannot evaluate.
599
657
  | state (pure) | `parseSearchState`, `writeSearchState`, `patchSearchState`, `toggleFilterValue`, `setFilterValues`, `setRangeValue`, `clearFilters`, `activeFilterCount`, `parseDegradations`, `countIsEstimate`, `buildFacetGroups`, `orderFacetGroupsBySchema`, `facetGroupIsDrawable`, `facetGroupHasEvidence`, `facetOptionLabel`, `translitPrefixMatch`, `translitKey`, `consonantKey` |
600
658
  | model | `createSearchRuntime`, `searchQueryKeys`, `useSearchQuery`, `useRankingDisclosure` |
601
659
  | headless | `SearchProvider`, `SearchStateProvider`/`useSearchState`, `SearchResults`, `FacetPanel`, `RankingDisclosure`, `useOtherCategories` |
602
- | `./default` | `SearchPage`, `SearchResultsPane`, `FacetPanelPane`, `RankingDisclosurePane`, `SearchBox`, `SortSelect`, `PageSizeSelect`, `LanguageSelect`, `SearchResultCard`, `RangeFilterRow`, `DegradationNotice`, `UrlIssueNotice`, `PopularValues`, `PartitionChips`, `OtherCategoriesLine`, `otherCategoriesCss`, `FilterChips` (`mode="openers" | "applied"`), `buildAppliedChips`, `facetGroupShape`, `isDictionaryFacet`, `railScrollbarCss`, `RAIL_CLASS`, `FACET_VISIBLE_GROUPS` (the skin themes itself through `SkinTheme` from `@stapel/tokens-antd/skin`; the pair's own `SearchSkinTheme` is gone as of 0.6.0) |
660
+ | `./default` | `SearchPage`, `SearchResultsPane`, `FacetPanelPane`, `RankingDisclosurePane`, `SearchBox`, `SortSelect`, `PageSizeSelect`, `LanguageSelect`, `SearchResultCard`, `RangeFilterRow`, `DegradationNotice`, `UrlIssueNotice`, `PopularValues`, `PartitionChips`, `OtherCategoriesLine`, `otherCategoriesCss`, `FilterChips` (`mode="openers" | "applied"`), `buildAppliedChips`, `facetGroupShape`, `isDictionaryFacet`, `railScrollbarCss`, `railStyle`, `RAIL_CLASS`, `RESULTS_TOOLBAR_CLASS`, `FACET_VISIBLE_GROUPS` (the skin themes itself through `SkinTheme` from `@stapel/tokens-antd/skin`; the pair's own `SearchSkinTheme` is gone as of 0.6.0) |
603
661
  | `./router` | `useRouterSearchParams` |
604
662
  | i18n | `registerSearchI18n` (+ `./i18n/ru`, `./i18n/es`) |
605
663
  | errors | `SEARCH_ERRORS`, `explainSearchError`, `SEARCH_WINDOW_EXCEEDED`, `SEARCH_BACKEND_UNAVAILABLE` |
@@ -1,4 +1,4 @@
1
- import type { ReactElement, ReactNode } from "react";
1
+ import type { CSSProperties, ReactElement, ReactNode } from "react";
2
2
  import type { FeatureDef } from "@stapel/attributes-react";
3
3
  import type { SearchParamsAdapter } from "../headless/SearchStateProvider.js";
4
4
  import type { FacetLabelResolver } from "../headless/useFacetLabels.js";
@@ -6,7 +6,7 @@ import type { ParseSearchStateOptions } from "../state/urlState.js";
6
6
  import type { SearchGeo } from "../api/types.js";
7
7
  import type { CategoryFilterSlotProps, GeoFilterSlotProps } from "./FacetPanelPane.js";
8
8
  import type { OtherCategoryHrefResolver, OtherCategoryNamer } from "./OtherCategoriesLine.js";
9
- import type { ResultsColumns, SearchResultsWrapper } from "./SearchResultsPane.js";
9
+ import type { ResultsColumns, SearchResultsWrapper, SearchToolbarPin } from "./SearchResultsPane.js";
10
10
  import type { SearchView } from "./ViewSwitch.js";
11
11
  import type { DegradationNoticeVariant } from "./DegradationNotice.js";
12
12
  import type { SearchCardRenderer } from "./SearchResultCard.js";
@@ -85,6 +85,19 @@ export declare const RAIL_STYLE_HREF = "stapel-search-rail";
85
85
  * `<LocationSummaryLine>` hoists one.
86
86
  */
87
87
  export declare function railScrollbarCss(): string;
88
+ /**
89
+ * The rail with a host's own offset under it.
90
+ *
91
+ * `top` and the height cap move TOGETHER, and that is the whole reason this is
92
+ * a function rather than one property: a rail pushed 64px down the window whose
93
+ * cap is still `100dvh` ends 64px past the foot of the screen, so its last
94
+ * control is unreachable — the internal scroll has scrolled past the window.
95
+ *
96
+ * A number is pixels; a string is taken as written, so
97
+ * `railTop="var(--stapel-header-height)"` reads the height `<PublicShell>`
98
+ * publishes instead of restating it.
99
+ */
100
+ export declare function railStyle(top: number | string | undefined): CSSProperties;
88
101
  export interface SearchPageProps extends ThemeModeProp, ParseSearchStateOptions {
89
102
  /** The URL binding. `useRouterSearchParams()` from `./router` is the
90
103
  * react-router one. */
@@ -320,6 +333,50 @@ export interface SearchPageProps extends ThemeModeProp, ParseSearchStateOptions
320
333
  * rail beside a 110px result column.
321
334
  */
322
335
  readonly filtersLayout?: SearchFiltersLayout;
336
+ /**
337
+ * WHERE the filter rail's sticky top edge is — the offset of whatever chrome
338
+ * is pinned above this page.
339
+ *
340
+ * ```tsx
341
+ * // the height <PublicShell> publishes, read rather than restated
342
+ * <SearchPage railTop="var(--stapel-header-height)" />
343
+ * ```
344
+ *
345
+ * The rail is `position: sticky; top: 0` written INLINE, and an inline
346
+ * declaration is beaten by nothing but `!important` — so a host with a fixed
347
+ * header had exactly one way to say "start below it", and the fleet's
348
+ * storefront carried that `!important` as the only one in the repo aimed at a
349
+ * pair's own geometry. Every deployment with a pinned header has this
350
+ * problem; none of them could state it.
351
+ *
352
+ * A number is pixels; a string is taken as written (a `var()`, a `calc()`,
353
+ * `"4rem"`). The internal scroll cap moves with it — see {@link railStyle} —
354
+ * so the rail still ends at the foot of the window rather than that far past
355
+ * it. Default `0`, which is where the rail has always started.
356
+ *
357
+ * The phone SHEET is unaffected: it is a dialog, not a column, and it has no
358
+ * header to clear.
359
+ */
360
+ readonly railTop?: number | string;
361
+ /**
362
+ * PIN the results toolbar under whatever chrome is above this page — the
363
+ * other column's half of {@link railTop}.
364
+ *
365
+ * ```tsx
366
+ * <SearchPage
367
+ * railTop="var(--stapel-header-height)"
368
+ * stickyToolbar={{ top: "var(--stapel-header-height)" }}
369
+ * />
370
+ * ```
371
+ *
372
+ * Handed straight to `<SearchResultsPane stickyToolbar>`, which pins the row
373
+ * it actually drew — the whole header block in the wide shape, the toolbar
374
+ * alone in the compact one. There is exactly one sort control on a results
375
+ * page and this pins it where it stands; a host that draws a bar of its own
376
+ * over the page ends up with two, and the one a person presses is whichever
377
+ * the layout put under their thumb.
378
+ */
379
+ readonly stickyToolbar?: SearchToolbarPin;
323
380
  /**
324
381
  * The host's own exits from an empty result — sibling sections with their
325
382
  * counts. A SLOT for the same reason `breadcrumb` is one: walking the tree
@@ -1 +1 @@
1
- {"version":3,"file":"SearchPage.d.ts","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,iFAAiF;AACjF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AA4DpC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;;;;;;;;;;GAaG;AACH,4DAA4D;AAC5D,eAAO,MAAM,UAAU,uBAAuB,CAAC;AAE/C,4DAA4D;AAC5D,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAczC;AAkCD,MAAM,WAAW,eAAgB,SAAQ,aAAa,EAAE,uBAAuB;IAC7E;2BACuB;IACvB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD;qEACiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;;;;;OAQG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,SAAS,CAAC;IAC7E;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;mDAC+C;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvD;;;;;;;;;OASG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;0EACsE;IACtE,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC1C,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;mEAC+D;IAC/D,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAC3C;wDACoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAClD;;;gEAG4D;IAC5D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IACxC;iDAC6C;IAC7C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IACpC;gEAC4D;IAC5D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IACtD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,SAAS,CAAC;IAC5C;;;;;;;;OAQG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;6DACyD;IACzD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjD;;;;;;;;;OASG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAgaD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CA8F/D"}
1
+ {"version":3,"file":"SearchPage.d.ts","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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"}
@@ -230,6 +230,24 @@ const RAIL = {
230
230
  // Room for the focus ring of the last control against the scroll edge.
231
231
  paddingBlockEnd: spacing[2],
232
232
  };
233
+ /**
234
+ * The rail with a host's own offset under it.
235
+ *
236
+ * `top` and the height cap move TOGETHER, and that is the whole reason this is
237
+ * a function rather than one property: a rail pushed 64px down the window whose
238
+ * cap is still `100dvh` ends 64px past the foot of the screen, so its last
239
+ * control is unreachable — the internal scroll has scrolled past the window.
240
+ *
241
+ * A number is pixels; a string is taken as written, so
242
+ * `railTop="var(--stapel-header-height)"` reads the height `<PublicShell>`
243
+ * publishes instead of restating it.
244
+ */
245
+ export function railStyle(top) {
246
+ if (top === undefined)
247
+ return RAIL;
248
+ const offset = typeof top === "number" ? `${String(top)}px` : top;
249
+ return { ...RAIL, top, maxHeight: `calc(100dvh - ${offset})` };
250
+ }
233
251
  /** The results take what is left. `minWidth: 0` so a long word inside a card
234
252
  * cannot push the grid wider than its column. */
235
253
  const RESULTS_COLUMN = { flex: "1 1 auto", minWidth: 0 };
@@ -352,7 +370,9 @@ function SearchPageBody(props) {
352
370
  */
353
371
  const phoneToolbar = layout === "sheet";
354
372
  const toolbar = phoneToolbar ? (_jsxs(Flex, { align: "center", justify: "space-between", gap: spacing[2], style: { width: "100%" }, children: [_jsxs(Flex, { align: "center", gap: spacing[2], style: { minWidth: 0 }, children: [_jsx(ViewSwitch, { views: views, value: view.id, onChange: changeView }), _jsx(SortSelect, { compact: true })] }), props.resultsAction] })) : (_jsxs(Flex, { align: "center", wrap: true, gap: spacing[3], children: [_jsx(ViewSwitch, { views: views, value: view.id, onChange: changeView }), _jsx(SortSelect, {}), props.pageSize !== false && _jsx(PageSizeSelect, {}), props.resultsAction] }));
355
- const results = (_jsx(SearchResultsPane, { toolbar: toolbar, ...(props.resultsLead !== undefined ? { lead: props.resultsLead } : {}), ...(phoneToolbar ? { header: "compact" } : {}), headingLevel: props.resultsHeadingLevel ?? 1, ...(view.render !== undefined ? { renderResults: view.render } : {}), ...(props.wrapResults !== undefined ? { wrapResults: props.wrapResults } : {}), ...(view.layout !== undefined ? { layout: view.layout } : {}), ...(props.renderCard !== undefined ? { renderCard: props.renderCard } : {}), ...(props.resultsColumns !== undefined
373
+ const results = (_jsx(SearchResultsPane, { toolbar: toolbar, ...(props.resultsLead !== undefined ? { lead: props.resultsLead } : {}), ...(phoneToolbar ? { header: "compact" } : {}), ...(props.stickyToolbar !== undefined
374
+ ? { stickyToolbar: props.stickyToolbar }
375
+ : {}), headingLevel: props.resultsHeadingLevel ?? 1, ...(view.render !== undefined ? { renderResults: view.render } : {}), ...(props.wrapResults !== undefined ? { wrapResults: props.wrapResults } : {}), ...(view.layout !== undefined ? { layout: view.layout } : {}), ...(props.renderCard !== undefined ? { renderCard: props.renderCard } : {}), ...(props.resultsColumns !== undefined
356
376
  ? { columns: props.resultsColumns }
357
377
  : {}), ...(props.resultsHeadingVisible !== undefined
358
378
  ? { headingVisible: props.resultsHeadingVisible }
@@ -392,10 +412,10 @@ function SearchPageBody(props) {
392
412
  setSheetOpen(false);
393
413
  }, title: t(SEARCH_I18N_KEYS.facetsTitle), dismissLabel: t(SEARCH_I18N_KEYS.filtersDismiss), "data-testid": "search-filters-sheet", footer: _jsx(Button, { block: true, type: "primary", "data-testid": "search-filters-apply", "data-analytics": "none", "data-analytics-reason": "the filters are already applied; this closes the sheet", onClick: () => {
394
414
  setSheetOpen(false);
395
- }, children: applyLabel }), children: panel }), results] })) : showFilters ? (_jsxs(Flex, { align: "flex-start", gap: spacing[5], "data-testid": "search-page-columns", children: [_jsxs("div", { className: RAIL_CLASS, style: RAIL, children: [_jsx("style", { href: RAIL_STYLE_HREF, precedence: "default", children: railScrollbarCss() }), panel] }), _jsx("div", { style: RESULTS_COLUMN, children: results })] })) : (results)] }));
415
+ }, children: applyLabel }), children: panel }), results] })) : showFilters ? (_jsxs(Flex, { align: "flex-start", gap: spacing[5], "data-testid": "search-page-columns", children: [_jsxs("div", { className: RAIL_CLASS, style: railStyle(props.railTop), children: [_jsx("style", { href: RAIL_STYLE_HREF, precedence: "default", children: railScrollbarCss() }), panel] }), _jsx("div", { style: RESULTS_COLUMN, children: results })] })) : (results)] }));
396
416
  }
397
417
  export function SearchPage(props) {
398
- const { adapter, renderCard, categoryFeatures, locale, resolveFacetLabels, searchBox, languages, renderCategoryFilter, categoryLabel, renderGeoFilter, geoLabel, skippedNotice, geoOffer, footer, filtersHeader, resultsHeader, resultsLead, categoryFilter, appliedChips, otherCategories, categoryName, categoryHref, categoryNamesPending, resultsHeading, degradationNotice, railFrom, filtersLayout, defaultFiltersOpen, pageSize, breadcrumb, wrapResults, views, defaultView, onViewChange, resultsAction, resultsHeadingLevel, resultsColumns, resultsHeadingVisible, dictionaryMode, visibleGroups, pinnedFacets, mode, ...parseOptions } = props;
399
- return (_jsx(SkinTheme, { surface: "base", ...(mode !== undefined ? { mode } : {}), children: _jsx(SearchStateProvider, { adapter: adapter, geoOffer: geoOffer, ...parseOptions, children: _jsx(SearchPageBody, { ...(renderCard !== undefined ? { renderCard } : {}), ...(resultsColumns !== undefined ? { resultsColumns } : {}), ...(resultsHeadingVisible !== undefined ? { resultsHeadingVisible } : {}), ...(dictionaryMode !== undefined ? { dictionaryMode } : {}), ...(visibleGroups !== undefined ? { visibleGroups } : {}), ...(pinnedFacets !== undefined ? { pinnedFacets } : {}), ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(resolveFacetLabels !== undefined ? { resolveFacetLabels } : {}), ...(searchBox !== undefined ? { searchBox } : {}), ...(languages !== undefined ? { languages } : {}), ...(renderCategoryFilter !== undefined ? { renderCategoryFilter } : {}), ...(categoryLabel !== undefined ? { categoryLabel } : {}), ...(renderGeoFilter !== undefined ? { renderGeoFilter } : {}), ...(geoLabel !== undefined ? { geoLabel } : {}), ...(skippedNotice !== undefined ? { skippedNotice } : {}), ...(footer !== undefined ? { footer } : {}), ...(filtersHeader !== undefined ? { filtersHeader } : {}), ...(resultsHeader !== undefined ? { resultsHeader } : {}), ...(resultsLead !== undefined ? { resultsLead } : {}), ...(categoryFilter !== undefined ? { categoryFilter } : {}), ...(appliedChips !== undefined ? { appliedChips } : {}), ...(otherCategories !== undefined ? { otherCategories } : {}), ...(categoryName !== undefined ? { categoryName } : {}), ...(categoryHref !== undefined ? { categoryHref } : {}), ...(categoryNamesPending !== undefined ? { categoryNamesPending } : {}), ...(resultsHeading !== undefined ? { resultsHeading } : {}), ...(degradationNotice !== undefined ? { degradationNotice } : {}), ...(railFrom !== undefined ? { railFrom } : {}), ...(filtersLayout !== undefined ? { filtersLayout } : {}), ...(defaultFiltersOpen !== undefined ? { defaultFiltersOpen } : {}), ...(pageSize !== undefined ? { pageSize } : {}), ...(breadcrumb !== undefined ? { breadcrumb } : {}), ...(wrapResults !== undefined ? { wrapResults } : {}), ...(views !== undefined ? { views } : {}), ...(defaultView !== undefined ? { defaultView } : {}), ...(onViewChange !== undefined ? { onViewChange } : {}), ...(resultsAction !== undefined ? { resultsAction } : {}), ...(resultsHeadingLevel !== undefined ? { resultsHeadingLevel } : {}) }) }) }));
418
+ const { adapter, renderCard, categoryFeatures, locale, resolveFacetLabels, searchBox, languages, renderCategoryFilter, categoryLabel, renderGeoFilter, geoLabel, skippedNotice, geoOffer, footer, filtersHeader, resultsHeader, resultsLead, categoryFilter, appliedChips, otherCategories, categoryName, categoryHref, categoryNamesPending, resultsHeading, degradationNotice, railFrom, filtersLayout, railTop, stickyToolbar, defaultFiltersOpen, pageSize, breadcrumb, wrapResults, views, defaultView, onViewChange, resultsAction, resultsHeadingLevel, resultsColumns, resultsHeadingVisible, dictionaryMode, visibleGroups, pinnedFacets, mode, ...parseOptions } = props;
419
+ return (_jsx(SkinTheme, { surface: "base", ...(mode !== undefined ? { mode } : {}), children: _jsx(SearchStateProvider, { adapter: adapter, geoOffer: geoOffer, ...parseOptions, children: _jsx(SearchPageBody, { ...(renderCard !== undefined ? { renderCard } : {}), ...(resultsColumns !== undefined ? { resultsColumns } : {}), ...(resultsHeadingVisible !== undefined ? { resultsHeadingVisible } : {}), ...(dictionaryMode !== undefined ? { dictionaryMode } : {}), ...(visibleGroups !== undefined ? { visibleGroups } : {}), ...(pinnedFacets !== undefined ? { pinnedFacets } : {}), ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(resolveFacetLabels !== undefined ? { resolveFacetLabels } : {}), ...(searchBox !== undefined ? { searchBox } : {}), ...(languages !== undefined ? { languages } : {}), ...(renderCategoryFilter !== undefined ? { renderCategoryFilter } : {}), ...(categoryLabel !== undefined ? { categoryLabel } : {}), ...(renderGeoFilter !== undefined ? { renderGeoFilter } : {}), ...(geoLabel !== undefined ? { geoLabel } : {}), ...(skippedNotice !== undefined ? { skippedNotice } : {}), ...(footer !== undefined ? { footer } : {}), ...(filtersHeader !== undefined ? { filtersHeader } : {}), ...(resultsHeader !== undefined ? { resultsHeader } : {}), ...(resultsLead !== undefined ? { resultsLead } : {}), ...(categoryFilter !== undefined ? { categoryFilter } : {}), ...(appliedChips !== undefined ? { appliedChips } : {}), ...(otherCategories !== undefined ? { otherCategories } : {}), ...(categoryName !== undefined ? { categoryName } : {}), ...(categoryHref !== undefined ? { categoryHref } : {}), ...(categoryNamesPending !== undefined ? { categoryNamesPending } : {}), ...(resultsHeading !== undefined ? { resultsHeading } : {}), ...(degradationNotice !== undefined ? { degradationNotice } : {}), ...(railFrom !== undefined ? { railFrom } : {}), ...(filtersLayout !== undefined ? { filtersLayout } : {}), ...(railTop !== undefined ? { railTop } : {}), ...(stickyToolbar !== undefined ? { stickyToolbar } : {}), ...(defaultFiltersOpen !== undefined ? { defaultFiltersOpen } : {}), ...(pageSize !== undefined ? { pageSize } : {}), ...(breadcrumb !== undefined ? { breadcrumb } : {}), ...(wrapResults !== undefined ? { wrapResults } : {}), ...(views !== undefined ? { views } : {}), ...(defaultView !== undefined ? { defaultView } : {}), ...(onViewChange !== undefined ? { onViewChange } : {}), ...(resultsAction !== undefined ? { resultsAction } : {}), ...(resultsHeadingLevel !== undefined ? { resultsHeadingLevel } : {}) }) }) }));
400
420
  }
401
421
  //# sourceMappingURL=SearchPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchPage.js","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchPage.js","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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"}
@@ -77,6 +77,34 @@ export type SearchResultsWrapper = (items: readonly SearchItem[], results: React
77
77
  * and the 2560px pane the constant was written against is still capped.
78
78
  */
79
79
  export declare const RESULTS_MAX_WIDTH = 1400;
80
+ /**
81
+ * The class on the row that carries the results toolbar — the sort control, the
82
+ * view switch, the page size, the count and the surface's own action.
83
+ *
84
+ * The row had no element of its own: no class, no `data-testid`, and in the
85
+ * compact header it was one child of a 112px vertical stack. A host that wanted
86
+ * it pinned under a fixed header therefore had to reach it with a `:has()` on
87
+ * the heading beside it, a `display: contents` to drop the stack's box, and the
88
+ * pane's own breakpoint restated in a media query — three rules aimed at a
89
+ * shape the pane could change under them at any release.
90
+ *
91
+ * It is the same class in BOTH header shapes, and in both it names the row that
92
+ * would pin: the WIDE header block (heading, count and toolbar on one line —
93
+ * the block IS the row) and, in `header="compact"`, the toolbar alone, because
94
+ * pinning the compact stack would put ~112px of chrome under a 56px header on a
95
+ * 390px screen.
96
+ */
97
+ export declare const RESULTS_TOOLBAR_CLASS = "stapel-search-results-toolbar";
98
+ /**
99
+ * Where {@link SearchResultsPaneProps.stickyToolbar} pins the row.
100
+ *
101
+ * `top` is a CSS length — a number is pixels, a string is taken as written, so
102
+ * `top: "var(--stapel-header-height)"` reads the height `<PublicShell>`
103
+ * publishes rather than restating it. Default `0`.
104
+ */
105
+ export interface SearchToolbarPin {
106
+ readonly top?: number | string;
107
+ }
80
108
  /**
81
109
  * The results grid. `auto-fill` + `minmax(260px, 1fr)`: as many columns as fit,
82
110
  * each at least a readable card and never wider than its share — and the same
@@ -280,6 +308,33 @@ export interface SearchResultsPaneProps extends ThemeModeProp {
280
308
  * viewport is not spent saying "Results" over a list of results.
281
309
  */
282
310
  readonly header?: "banner" | "compact";
311
+ /**
312
+ * PIN the toolbar row under whatever chrome is above this pane.
313
+ *
314
+ * ```tsx
315
+ * // the height <PublicShell> publishes, read rather than restated
316
+ * <SearchResultsPane stickyToolbar={{ top: "var(--stapel-header-height)" }} />
317
+ * ```
318
+ *
319
+ * A catalogue page is thirty cards long and the control that reorders them is
320
+ * at the top of it, so by the fourth row the sort is a screenful above the
321
+ * list it sorts — the same argument that made the filter rail sticky, applied
322
+ * to the other column.
323
+ *
324
+ * It pins the row the pane ACTUALLY DREW, which is why this is a prop and not
325
+ * a host's stylesheet: the pane knows which of its two header shapes it is in
326
+ * and a sheet has to guess. In `"banner"` the whole header block pins (it is
327
+ * one line: heading, count, toolbar). In `"compact"` the toolbar alone pins —
328
+ * one row, the height of one phone control — because the stack it sits in is
329
+ * ~112px and that is not a bar anybody can pin under a 56px header.
330
+ *
331
+ * Two things it does NOT do, both deliberate: it adds no padding (see
332
+ * {@link toolbarPinStyle} — a pinned bar that grows to breathe has to give
333
+ * the room back, and which spacing that is belongs to the host), and it draws
334
+ * no second sort control. There is exactly one on a results page, and this
335
+ * pins it where it stands.
336
+ */
337
+ readonly stickyToolbar?: SearchToolbarPin;
283
338
  /**
284
339
  * The category's feature schema, used ONLY to name an applied filter in the
285
340
  * empty state's exits ("Without Brand" rather than "Without vendor").
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResultsPane.d.ts","sourceRoot":"","sources":["../../src/default/SearchResultsPane.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchResultsPane.d.ts","sourceRoot":"","sources":["../../src/default/SearchResultsPane.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { Flex, Typography } from "antd";
3
3
  import { errorCode, useT, useTPlural } from "@stapel/core";
4
4
  import { EmptyState, ErrorAlert, GatedButton, LoadList, SkinTheme, visuallyHidden, } from "@stapel/tokens-antd/skin";
5
- import { breakpoints, spacing } from "@stapel/tokens";
5
+ import { breakpoints, cssVar, spacing } from "@stapel/tokens";
6
6
  import { SearchResults } from "../headless/SearchResults.js";
7
7
  import { useScorerNames } from "../headless/useScorerNames.js";
8
8
  import { SEARCH_WINDOW_EXCEEDED } from "../i18n/errorsMap.js";
@@ -29,6 +29,86 @@ import { SearchResultCard } from "./SearchResultCard.js";
29
29
  * and the 2560px pane the constant was written against is still capped.
30
30
  */
31
31
  export const RESULTS_MAX_WIDTH = 1400;
32
+ /**
33
+ * The class on the row that carries the results toolbar — the sort control, the
34
+ * view switch, the page size, the count and the surface's own action.
35
+ *
36
+ * The row had no element of its own: no class, no `data-testid`, and in the
37
+ * compact header it was one child of a 112px vertical stack. A host that wanted
38
+ * it pinned under a fixed header therefore had to reach it with a `:has()` on
39
+ * the heading beside it, a `display: contents` to drop the stack's box, and the
40
+ * pane's own breakpoint restated in a media query — three rules aimed at a
41
+ * shape the pane could change under them at any release.
42
+ *
43
+ * It is the same class in BOTH header shapes, and in both it names the row that
44
+ * would pin: the WIDE header block (heading, count and toolbar on one line —
45
+ * the block IS the row) and, in `header="compact"`, the toolbar alone, because
46
+ * pinning the compact stack would put ~112px of chrome under a 56px header on a
47
+ * 390px screen.
48
+ */
49
+ export const RESULTS_TOOLBAR_CLASS = "stapel-search-results-toolbar";
50
+ /**
51
+ * The controls' own line: it may not become two.
52
+ *
53
+ * A wrapping row changes height when the count lands — the count arrives with
54
+ * the answer, one render after the toolbar was already on screen — and a bar
55
+ * that grows while it is pinned pushes the first cards of the feed down under
56
+ * the reader's eye. `nowrap` makes the height a constant; `min-inline-size: 0`
57
+ * plus `overflow-x: auto` is what a row that cannot wrap does with the overflow
58
+ * instead, which on a phone is the scroll strip every sort row already is.
59
+ */
60
+ const TOOLBAR_ROW = {
61
+ flexWrap: "nowrap",
62
+ minInlineSize: 0,
63
+ overflowX: "auto",
64
+ // Thin, and only when there is something to scroll to — the same reason the
65
+ // filter rail states its own: an invisible scroll port is indistinguishable
66
+ // from a row that ends where it was cut.
67
+ scrollbarWidth: "thin",
68
+ };
69
+ /**
70
+ * The compact header's stack, WITHOUT its box.
71
+ *
72
+ * `position: sticky` travels inside its parent, so a toolbar nested in a 112px
73
+ * stack can move 112px and no further — the parent has to be the results
74
+ * column, which is as tall as the feed. `display: contents` drops the stack's
75
+ * box and hands its three rows straight to that column, which is the same
76
+ * device the fleet's storefront was writing in its own sheet.
77
+ *
78
+ * The one visible consequence: the gap between heading, toolbar and count
79
+ * becomes the column's rather than the stack's.
80
+ */
81
+ const COMPACT_STACK = { display: "contents" };
82
+ /** The compact shape's toolbar box — the row the pin acts on. */
83
+ const COMPACT_TOOLBAR = {
84
+ display: "flex",
85
+ alignItems: "center",
86
+ ...TOOLBAR_ROW,
87
+ };
88
+ /**
89
+ * The pin itself, and it is NET-ZERO in flow: `position` and a layer and a
90
+ * background, and not one pixel of padding.
91
+ *
92
+ * A pinned bar that grows padding to breathe over the cards passing under it
93
+ * has to take the same padding back as negative margin or the column pays for
94
+ * it, and the pair does not know which of those two a host's spacing wants. A
95
+ * row that occupies exactly the box it already occupied cannot shift anything.
96
+ */
97
+ function toolbarPinStyle(pin) {
98
+ if (pin === undefined)
99
+ return undefined;
100
+ return {
101
+ position: "sticky",
102
+ top: pin.top ?? 0,
103
+ // Over the cards, under the page's own chrome — and under antd's popups,
104
+ // so the sort select still opens over its own bar.
105
+ zIndex: 1,
106
+ // Opaque, or the cards scroll THROUGH the bar. The theme's own surface
107
+ // role, resolved at paint time, so it follows the brand and the dark side
108
+ // without a second colour being written here.
109
+ background: cssVar("surface"),
110
+ };
111
+ }
32
112
  /**
33
113
  * The results grid. `auto-fill` + `minmax(260px, 1fr)`: as many columns as fit,
34
114
  * each at least a readable card and never wider than its share — and the same
@@ -174,6 +254,7 @@ export function SearchResultsPane(props) {
174
254
  // The compact arm's caption: the host's word is drawn, the pair's own is
175
255
  // not, and `headingVisible` overrides either way — see that prop.
176
256
  const compactHeadingSeen = props.headingVisible ?? props.heading !== undefined;
257
+ const toolbarPin = toolbarPinStyle(props.stickyToolbar);
177
258
  const columnRules = props.columns === undefined || props.layout === "list"
178
259
  ? null
179
260
  : resultsColumnsCss(props.columns);
@@ -197,7 +278,15 @@ export function SearchResultsPane(props) {
197
278
  return (_jsx(SkinTheme, { surface: "base", ...(props.mode !== undefined ? { mode: props.mode } : {}), style: {
198
279
  width: "100%",
199
280
  ...(maxWidth !== null ? { maxWidth } : {}),
200
- }, children: _jsx(SearchResults, { ...(props.enabled !== undefined ? { enabled: props.enabled } : {}), children: (bag) => (_jsxs(Flex, { vertical: true, gap: spacing[4], children: [props.lead !== undefined && (_jsx("div", { "data-testid": "search-results-lead", children: props.lead })), props.header === "compact" ? (_jsxs(Flex, { vertical: true, gap: spacing[2], "data-testid": "search-results-header-compact", children: [_jsx(Typography.Title, { level: props.headingLevel ?? 4, style: compactHeadingSeen ? { margin: 0 } : visuallyHidden, "data-testid": "search-results-heading", "data-heading": compactHeadingSeen ? "seen" : "hidden", children: props.heading ?? t(SEARCH_I18N_KEYS.resultsTitle) }), props.toolbar, _jsx(Count, { bag: bag })] })) : (_jsxs(Flex, { justify: "space-between", align: "center", wrap: true, gap: spacing[2], children: [_jsx(Typography.Title, { level: props.headingLevel ?? 4, style: { margin: 0 }, "data-testid": "search-results-heading", children: props.heading ?? t(SEARCH_I18N_KEYS.resultsTitle) }), _jsxs(Flex, { align: "center", wrap: true, gap: spacing[3], children: [_jsx(Count, { bag: bag }), props.toolbar] })] })), _jsx(DegradationNotice, { degradations: bag.degradations, variant: props.degradationNotice ?? "banner", scorerName: scorerName }), props.otherCategories === true && (_jsx(OtherCategoriesLine, { ...(props.enabled !== undefined ? { enabled: props.enabled } : {}), ...(props.categoryName !== undefined
281
+ }, children: _jsx(SearchResults, { ...(props.enabled !== undefined ? { enabled: props.enabled } : {}), children: (bag) => (_jsxs(Flex, { vertical: true, gap: spacing[4], children: [props.lead !== undefined && (_jsx("div", { "data-testid": "search-results-lead", children: props.lead })), props.header === "compact" ? (
282
+ /* No box of its own — see `COMPACT_STACK`. The three rows are
283
+ items of the results COLUMN, so the toolbar between them has a
284
+ parent as tall as the feed to travel in. */
285
+ _jsxs(Flex, { vertical: true, gap: spacing[2], style: COMPACT_STACK, "data-testid": "search-results-header-compact", children: [_jsx(Typography.Title, { level: props.headingLevel ?? 4, style: compactHeadingSeen ? { margin: 0 } : visuallyHidden, "data-testid": "search-results-heading", "data-heading": compactHeadingSeen ? "seen" : "hidden", children: props.heading ?? t(SEARCH_I18N_KEYS.resultsTitle) }), _jsx("div", { className: RESULTS_TOOLBAR_CLASS, "data-testid": "search-results-toolbar", style: { ...COMPACT_TOOLBAR, ...toolbarPin }, children: props.toolbar }), _jsx(Count, { bag: bag })] })) : (
286
+ /* The wide shape's header block IS the toolbar row: one line,
287
+ heading at one end, count and controls at the other, and a
288
+ direct child of the results column — so it pins as it stands. */
289
+ _jsxs(Flex, { justify: "space-between", align: "center", gap: spacing[2], className: RESULTS_TOOLBAR_CLASS, "data-testid": "search-results-toolbar", ...(toolbarPin !== undefined ? { style: toolbarPin } : {}), children: [_jsx(Typography.Title, { level: props.headingLevel ?? 4, style: { margin: 0, minInlineSize: 0 }, "data-testid": "search-results-heading", children: props.heading ?? t(SEARCH_I18N_KEYS.resultsTitle) }), _jsxs(Flex, { align: "center", gap: spacing[3], style: TOOLBAR_ROW, children: [_jsx(Count, { bag: bag }), props.toolbar] })] })), _jsx(DegradationNotice, { degradations: bag.degradations, variant: props.degradationNotice ?? "banner", scorerName: scorerName }), props.otherCategories === true && (_jsx(OtherCategoriesLine, { ...(props.enabled !== undefined ? { enabled: props.enabled } : {}), ...(props.categoryName !== undefined
201
290
  ? { categoryName: props.categoryName }
202
291
  : {}), ...(props.categoryHref !== undefined
203
292
  ? { categoryHref: props.categoryHref }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResultsPane.js","sourceRoot":"","sources":["../../src/default/SearchResultsPane.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchResultsPane.js","sourceRoot":"","sources":["../../src/default/SearchResultsPane.tsx"],"names":[],"mappings":"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"}
@@ -38,12 +38,12 @@
38
38
  * `SkinTheme` from the substrate instead — same props, one implementation, and
39
39
  * a runtime `data-theme` flip actually repaints it.
40
40
  */
41
- export { SearchPage, RAIL_CLASS, RAIL_STYLE_HREF, railScrollbarCss, } from "./SearchPage.js";
41
+ export { SearchPage, RAIL_CLASS, RAIL_STYLE_HREF, railScrollbarCss, railStyle, } from "./SearchPage.js";
42
42
  export type { SearchPageProps, SearchFiltersLayout, SearchRailFrom, } from "./SearchPage.js";
43
43
  export { OtherCategoriesLine, OTHER_CATEGORIES_CLASS, OTHER_CATEGORIES_PHONE_ROWS, OTHER_CATEGORIES_SLOT_MIN_HEIGHT, OTHER_CATEGORIES_STYLE_HREF, otherCategoriesCss, otherCategoriesSlotHeight, } from "./OtherCategoriesLine.js";
44
44
  export type { OtherCategoriesLineProps, OtherCategoryHrefResolver, OtherCategoryNamer, } from "./OtherCategoriesLine.js";
45
- export { SearchResultsPane, RESULTS_MAX_WIDTH, RESULTS_AUTO_FILL_COLUMNS, RESULTS_COLUMNS_CLASS, RESULTS_COLUMNS_STYLE_HREF, resultsColumnsCss, } from "./SearchResultsPane.js";
46
- export type { ResultsColumns, SearchResultsPaneProps, SearchResultsRenderer, SearchResultsWrapper, } from "./SearchResultsPane.js";
45
+ export { SearchResultsPane, RESULTS_MAX_WIDTH, RESULTS_AUTO_FILL_COLUMNS, RESULTS_COLUMNS_CLASS, RESULTS_COLUMNS_STYLE_HREF, RESULTS_TOOLBAR_CLASS, resultsColumnsCss, } from "./SearchResultsPane.js";
46
+ export type { ResultsColumns, SearchResultsPaneProps, SearchResultsRenderer, SearchResultsWrapper, SearchToolbarPin, } from "./SearchResultsPane.js";
47
47
  export { FilterChips, CHIP_BAND_ORDER, CHIP_ROW_CAP, CHIP_ROW_CLASS, CHIP_ROW_MIN_HEIGHT, CHIP_ROW_STYLE_HREF, appliedChipTestId, appliedRowMinHeight, buildAppliedChips, capChipRow, categoryLeaf, chipRowCss, orderChipFilters, rangeChipText, rangeLabelSource, } from "./FilterChips.js";
48
48
  export type { AppliedChip, AppliedChipTarget, ChipBand, ChipSpec, FilterChipsAppliedProps, FilterChipsCommonProps, FilterChipsMode, FilterChipsOpenerProps, FilterChipsProps, } from "./FilterChips.js";
49
49
  export { EmptyExits, RADIUS_WIDEN_FACTOR, parentCategory } from "./EmptyExits.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"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"}
@@ -39,9 +39,9 @@
39
39
  * a runtime `data-theme` flip actually repaints it.
40
40
  */
41
41
  // ── surfaces ────────────────────────────────────────────────────────────────
42
- export { SearchPage, RAIL_CLASS, RAIL_STYLE_HREF, railScrollbarCss, } from "./SearchPage.js";
42
+ export { SearchPage, RAIL_CLASS, RAIL_STYLE_HREF, railScrollbarCss, railStyle, } from "./SearchPage.js";
43
43
  export { OtherCategoriesLine, OTHER_CATEGORIES_CLASS, OTHER_CATEGORIES_PHONE_ROWS, OTHER_CATEGORIES_SLOT_MIN_HEIGHT, OTHER_CATEGORIES_STYLE_HREF, otherCategoriesCss, otherCategoriesSlotHeight, } from "./OtherCategoriesLine.js";
44
- export { SearchResultsPane, RESULTS_MAX_WIDTH, RESULTS_AUTO_FILL_COLUMNS, RESULTS_COLUMNS_CLASS, RESULTS_COLUMNS_STYLE_HREF, resultsColumnsCss, } from "./SearchResultsPane.js";
44
+ export { SearchResultsPane, RESULTS_MAX_WIDTH, RESULTS_AUTO_FILL_COLUMNS, RESULTS_COLUMNS_CLASS, RESULTS_COLUMNS_STYLE_HREF, RESULTS_TOOLBAR_CLASS, resultsColumnsCss, } from "./SearchResultsPane.js";
45
45
  export { FilterChips, CHIP_BAND_ORDER, CHIP_ROW_CAP, CHIP_ROW_CLASS, CHIP_ROW_MIN_HEIGHT, CHIP_ROW_STYLE_HREF, appliedChipTestId, appliedRowMinHeight, buildAppliedChips, capChipRow, categoryLeaf, chipRowCss, orderChipFilters, rangeChipText, rangeLabelSource, } from "./FilterChips.js";
46
46
  export { EmptyExits, RADIUS_WIDEN_FACTOR, parentCategory } from "./EmptyExits.js";
47
47
  export { LocationSummaryLine } from "./LocationSummaryLine.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,+EAA+E;AAC/E,OAAO,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAY1B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAOhC,0EAA0E;AAC1E,uEAAuE;AACvE,8EAA8E;AAC9E,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGtF,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,+EAA+E;AAC/E,OAAO,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,SAAS,GACV,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAShC,OAAO,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAY1B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAOhC,0EAA0E;AAC1E,uEAAuE;AACvE,8EAA8E;AAC9E,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGtF,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
package/llms.txt CHANGED
@@ -1,4 +1,4 @@
1
- # @stapel/search-react 0.32.8
1
+ # @stapel/search-react 0.33.0
2
2
 
3
3
  Headless React flow pair for stapel-search (contract >=0.16 <0.17) — business + state, zero visual opinion.
4
4
  Built on @stapel/core: typed client + StapelApiError envelope, auth token refresh,
@@ -85,14 +85,14 @@ const { tracked } = useTracked();
85
85
  - search.language-select → <LanguageSelect> [offered|from-a-link] demo/LanguageSelect.demo.tsx
86
86
  - search.location-summary → <LocationSummaryLine> [everywhere|placed|narrowed|long-place|wide] demo/LocationSummaryLine.demo.tsx
87
87
  - search.other-categories-line → <OtherCategoriesLine> [line|narrow|empty] demo/OtherCategoriesLine.demo.tsx
88
- - search.page → <SearchPage> [desktop|phone|catalogue-leaf|unreadable-link] demo/SearchPage.demo.tsx
88
+ - search.page → <SearchPage> [desktop|phone|catalogue-leaf|under-a-header|unreadable-link] demo/SearchPage.demo.tsx
89
89
  - search.page-size-select → <PageSizeSelect> [ladder|off-ladder] demo/PageSizeSelect.demo.tsx
90
90
  - search.partition-chips → <PartitionChips> [parent|child] demo/PartitionChips.demo.tsx
91
91
  - search.popular-values → <PopularValues> [desktop|responsive|narrow-column] demo/PopularValues.demo.tsx
92
92
  - search.range-filter-row → <RangeFilterRow> [untouched|applied] demo/RangeFilterRow.demo.tsx
93
93
  - search.ranking-pane → <RankingDisclosurePane> [desktop|phone] demo/RankingDisclosurePane.demo.tsx
94
94
  - search.result-card → <SearchResultCard> [gallery|promoted|unresolved|plain] demo/SearchResultCard.demo.tsx
95
- - search.results-pane → <SearchResultsPane> [desktop|phone|empty] demo/SearchResultsPane.demo.tsx
95
+ - search.results-pane → <SearchResultsPane> [desktop|phone|sticky-toolbar|empty] demo/SearchResultsPane.demo.tsx
96
96
  - search.sort-select → <SortSelect> [no-centre|with-centre] demo/SortSelect.demo.tsx
97
97
  - search.url-issue-notice → <UrlIssueNotice> [two-issues|one-issue] demo/UrlIssueNotice.demo.tsx
98
98
  Each source file is the canonical usage snippet (open the default variant).
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$generated": "by scripts/gen-manifest.mjs — do not edit; drift-gated (pnpm gen:manifest:check)",
3
3
  "package": "@stapel/search-react",
4
- "version": "0.32.8",
4
+ "version": "0.33.0",
5
5
  "backend": {
6
6
  "module": "stapel-search",
7
7
  "contract": ">=0.16 <0.17"
@@ -581,6 +581,7 @@
581
581
  "desktop",
582
582
  "phone",
583
583
  "catalogue-leaf",
584
+ "under-a-header",
584
585
  "unreadable-link"
585
586
  ],
586
587
  "source": "demo/SearchPage.demo.tsx"
@@ -693,6 +694,7 @@
693
694
  "variants": [
694
695
  "desktop",
695
696
  "phone",
697
+ "sticky-toolbar",
696
698
  "empty"
697
699
  ],
698
700
  "source": "demo/SearchResultsPane.demo.tsx"
package/nav-manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "package": "@stapel/search-react",
3
- "version": "0.32.8",
3
+ "version": "0.33.0",
4
4
  "entries": [
5
5
  {
6
6
  "id": "search.results",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stapel/search-react",
3
- "version": "0.32.8",
3
+ "version": "0.33.0",
4
4
  "description": "Headless React pair for stapel-search: a typed query client, TanStack Query hooks, and a URL-first state codec that makes a search shareable by construction (filters, ranges, geo, sort and the keyset cursor all live in the query string). Drill-down facets rendered with their remaining counts and with the server's own honesty flags — approximate, skipped, degraded — never swallowed; keyset pagination with the window refusal named; DSA Art. 26 `promoted` marking carried into every card slot and the P2B Art. 5 ranking disclosure exposed as data. Zero visual opinion in the main entry; an opt-in /default subpath ships the antd skin, and /router binds the codec to react-router's useSearchParams.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -57,9 +57,9 @@
57
57
  "limit": "14.5 KB"
58
58
  },
59
59
  {
60
- "name": "default — the antd skin (query box + a typeahead that offers CATEGORY destinations with their live counts, filters incl. ranges/geo/category slots + the phone chip row with its leading category chip and the location summary row + the rail's evidence-ranked disclosure groups, panel search and sticky count/clear footer, results incl. the view switch, the card photo GALLERY as a SkinCarousel strip, the empty state's derived exits, ranking, the dictionary control for a vocabulary facet, the popular-values block, the partition row in both its chip and segmented variants, the select-style dictionary FIELD the desktop rail opens, the from/to pickers a bounded integer axis draws and the rail's own scrollbar sheet) must stay out of the main bundle. Raised 24.5 → 25.5 KB for those four controls, then 25.5 → 26.25 KB for the chip row's APPLIED mode — one chip per applied value and per numeric bound, each removing that one constraint beside a rail that is already on screen (a storefront was carrying its own copy of it), then 26.25 → 27 KB for the \"search in other categories\" LINE — which is a net deletion on the page that mounts it, replacing a full-width block of one row per section that arrived after the results and pushed them, then 27 → 27.75 KB for the two frames the page now tells apart: the dictionary FIELD reaching `<SearchPage>` at all (per-layout default, field in the rail and inline in the sheet) and the footer bar being static in a column and sticky in a sheet, where it used to be pinned over the last two groups everywhere, then 27.75 → 28.5 KB for `categoryHref` on the other-categories line — a real `<a href>` per row with a modifier-click left to the browser, instead of a `<button>` with no address a person could open in a new tab, then 28.5 → 29.25 KB for the phone's dictionary SHEET — a trigger row over the shared `SkinPickerSheet` with a recommended band, an alphabetical rest paged fifty at a time and a draft committed in one write, which is the control the composer's vocabulary picker already was while the buyer got a wall of checkboxes, then 29.25 → 30.5 KB for the panel that draws all of it: groups and ranges as one ordered sequence with one «Apply» for the panel rather than one per row, the empty-group heading rule, `categoryFilter={false}` and the `resultsLead` slot for a page reached by walking the catalogue, `PopularValues columns=\\\"responsive\\\"` on a container query, `SortSelect` annotating a blocked option at every width, a loading arm that covers the whole pane (0.34 CLS on a live host), and the chip row reserving its own box (a further 0.045). Measured with dependencies held constant, this package's src at the commit before that work and then at it: 29.05 -> 30.16 KB — 1.11 KB, and every part of it is a shift or a mislabelled control a host was living with, then 30.5 -> 31 KB for `<SearchResultsPane columns>` and its pass-through on `<SearchPage resultsColumns>`: a fixed track count or a per-breakpoint map, emitted as a hoisted container-query sheet (the results block is the window minus a 280px rail, so a media query would answer about a width the cards never have). Measured with dependencies held constant, this package's src before and after: 30.40 -> 30.65 KB — 250 B, and what it replaces is a host's `!important` rule against a grid declaration it could not read back, then 31 -> 31.25 KB for the segmented partition being antd's `Segmented` rather than a row of buttons wearing a border: the walker read `data-variant=\"segmented\"` with `role=\"radiogroup\"` and found `.ant-segmented` zero times and `input[type=radio]` zero times (D304), so the cells are the design system's now — real radios under one name, the browser's own arrow keys and Tab stop. Measured with dependencies held constant, this package's src before and after: 30.95 -> 31.05 KB — 100 B, against ~30 lines of hand-rolled joined-row geometry deleted",
60
+ "name": "default — the antd skin (query box + a typeahead that offers CATEGORY destinations with their live counts, filters incl. ranges/geo/category slots + the phone chip row with its leading category chip and the location summary row + the rail's evidence-ranked disclosure groups, panel search and sticky count/clear footer, results incl. the view switch, the card photo GALLERY as a SkinCarousel strip, the empty state's derived exits, ranking, the dictionary control for a vocabulary facet, the popular-values block, the partition row in both its chip and segmented variants, the select-style dictionary FIELD the desktop rail opens, the from/to pickers a bounded integer axis draws and the rail's own scrollbar sheet) must stay out of the main bundle. Raised 24.5 → 25.5 KB for those four controls, then 25.5 → 26.25 KB for the chip row's APPLIED mode — one chip per applied value and per numeric bound, each removing that one constraint beside a rail that is already on screen (a storefront was carrying its own copy of it), then 26.25 → 27 KB for the \"search in other categories\" LINE — which is a net deletion on the page that mounts it, replacing a full-width block of one row per section that arrived after the results and pushed them, then 27 → 27.75 KB for the two frames the page now tells apart: the dictionary FIELD reaching `<SearchPage>` at all (per-layout default, field in the rail and inline in the sheet) and the footer bar being static in a column and sticky in a sheet, where it used to be pinned over the last two groups everywhere, then 27.75 → 28.5 KB for `categoryHref` on the other-categories line — a real `<a href>` per row with a modifier-click left to the browser, instead of a `<button>` with no address a person could open in a new tab, then 28.5 → 29.25 KB for the phone's dictionary SHEET — a trigger row over the shared `SkinPickerSheet` with a recommended band, an alphabetical rest paged fifty at a time and a draft committed in one write, which is the control the composer's vocabulary picker already was while the buyer got a wall of checkboxes, then 29.25 → 30.5 KB for the panel that draws all of it: groups and ranges as one ordered sequence with one «Apply» for the panel rather than one per row, the empty-group heading rule, `categoryFilter={false}` and the `resultsLead` slot for a page reached by walking the catalogue, `PopularValues columns=\\\"responsive\\\"` on a container query, `SortSelect` annotating a blocked option at every width, a loading arm that covers the whole pane (0.34 CLS on a live host), and the chip row reserving its own box (a further 0.045). Measured with dependencies held constant, this package's src at the commit before that work and then at it: 29.05 -> 30.16 KB — 1.11 KB, and every part of it is a shift or a mislabelled control a host was living with, then 30.5 -> 31 KB for `<SearchResultsPane columns>` and its pass-through on `<SearchPage resultsColumns>`: a fixed track count or a per-breakpoint map, emitted as a hoisted container-query sheet (the results block is the window minus a 280px rail, so a media query would answer about a width the cards never have). Measured with dependencies held constant, this package's src before and after: 30.40 -> 30.65 KB — 250 B, and what it replaces is a host's `!important` rule against a grid declaration it could not read back, then 31 -> 31.25 KB for the segmented partition being antd's `Segmented` rather than a row of buttons wearing a border: the walker read `data-variant=\"segmented\"` with `role=\"radiogroup\"` and found `.ant-segmented` zero times and `input[type=radio]` zero times (D304), so the cells are the design system's now — real radios under one name, the browser's own arrow keys and Tab stop. Measured with dependencies held constant, this package's src before and after: 30.95 -> 31.05 KB — 100 B, against ~30 lines of hand-rolled joined-row geometry deleted, then 31.25 -> 31.5 KB for the two PINNING seams: `<SearchPage railTop>` (the rail's sticky offset and its height cap moved together, so a rail under a 64px header still ends at the foot of the window) and `<SearchResultsPane stickyToolbar>` with the toolbar's own element in both header shapes. Measured with dependencies held constant, this package's src before and after: 31.05 -> 31.2 KB — 150 B, and what it replaces in one deployment is an `!important` over the pair's own inline geometry, a `:has()`, a `display: contents` and this pair's rail breakpoint restated in the host's media query",
61
61
  "path": "dist/default/index.js",
62
- "limit": "31.25 KB"
62
+ "limit": "31.5 KB"
63
63
  },
64
64
  {
65
65
  "name": "router — the react-router binding is opt-in; the main entry must never pull a router",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$generated": "by scripts/gen-events.mjs — do not edit; drift-gated (pnpm gen:events:check)",
3
3
  "package": "@stapel/search-react",
4
- "version": "0.32.8",
4
+ "version": "0.33.0",
5
5
  "defined": [],
6
6
  "flows": []
7
7
  }
@@ -94,6 +94,7 @@ import { SearchResultsPane } from "./SearchResultsPane.js";
94
94
  import type {
95
95
  ResultsColumns,
96
96
  SearchResultsWrapper,
97
+ SearchToolbarPin,
97
98
  } from "./SearchResultsPane.js";
98
99
  import { SortSelect } from "./SortSelect.js";
99
100
  import { SEARCH_BUILTIN_VIEWS, ViewSwitch, resolveView } from "./ViewSwitch.js";
@@ -283,6 +284,24 @@ const RAIL: CSSProperties = {
283
284
  paddingBlockEnd: spacing[2],
284
285
  };
285
286
 
287
+ /**
288
+ * The rail with a host's own offset under it.
289
+ *
290
+ * `top` and the height cap move TOGETHER, and that is the whole reason this is
291
+ * a function rather than one property: a rail pushed 64px down the window whose
292
+ * cap is still `100dvh` ends 64px past the foot of the screen, so its last
293
+ * control is unreachable — the internal scroll has scrolled past the window.
294
+ *
295
+ * A number is pixels; a string is taken as written, so
296
+ * `railTop="var(--stapel-header-height)"` reads the height `<PublicShell>`
297
+ * publishes instead of restating it.
298
+ */
299
+ export function railStyle(top: number | string | undefined): CSSProperties {
300
+ if (top === undefined) return RAIL;
301
+ const offset = typeof top === "number" ? `${String(top)}px` : top;
302
+ return { ...RAIL, top, maxHeight: `calc(100dvh - ${offset})` };
303
+ }
304
+
286
305
  /** The results take what is left. `minWidth: 0` so a long word inside a card
287
306
  * cannot push the grid wider than its column. */
288
307
  const RESULTS_COLUMN: CSSProperties = { flex: "1 1 auto", minWidth: 0 };
@@ -522,6 +541,50 @@ export interface SearchPageProps extends ThemeModeProp, ParseSearchStateOptions
522
541
  * rail beside a 110px result column.
523
542
  */
524
543
  readonly filtersLayout?: SearchFiltersLayout;
544
+ /**
545
+ * WHERE the filter rail's sticky top edge is — the offset of whatever chrome
546
+ * is pinned above this page.
547
+ *
548
+ * ```tsx
549
+ * // the height <PublicShell> publishes, read rather than restated
550
+ * <SearchPage railTop="var(--stapel-header-height)" />
551
+ * ```
552
+ *
553
+ * The rail is `position: sticky; top: 0` written INLINE, and an inline
554
+ * declaration is beaten by nothing but `!important` — so a host with a fixed
555
+ * header had exactly one way to say "start below it", and the fleet's
556
+ * storefront carried that `!important` as the only one in the repo aimed at a
557
+ * pair's own geometry. Every deployment with a pinned header has this
558
+ * problem; none of them could state it.
559
+ *
560
+ * A number is pixels; a string is taken as written (a `var()`, a `calc()`,
561
+ * `"4rem"`). The internal scroll cap moves with it — see {@link railStyle} —
562
+ * so the rail still ends at the foot of the window rather than that far past
563
+ * it. Default `0`, which is where the rail has always started.
564
+ *
565
+ * The phone SHEET is unaffected: it is a dialog, not a column, and it has no
566
+ * header to clear.
567
+ */
568
+ readonly railTop?: number | string;
569
+ /**
570
+ * PIN the results toolbar under whatever chrome is above this page — the
571
+ * other column's half of {@link railTop}.
572
+ *
573
+ * ```tsx
574
+ * <SearchPage
575
+ * railTop="var(--stapel-header-height)"
576
+ * stickyToolbar={{ top: "var(--stapel-header-height)" }}
577
+ * />
578
+ * ```
579
+ *
580
+ * Handed straight to `<SearchResultsPane stickyToolbar>`, which pins the row
581
+ * it actually drew — the whole header block in the wide shape, the toolbar
582
+ * alone in the compact one. There is exactly one sort control on a results
583
+ * page and this pins it where it stands; a host that draws a bar of its own
584
+ * over the page ends up with two, and the one a person presses is whichever
585
+ * the layout put under their thumb.
586
+ */
587
+ readonly stickyToolbar?: SearchToolbarPin;
525
588
  /**
526
589
  * The host's own exits from an empty result — sibling sections with their
527
590
  * counts. A SLOT for the same reason `breadcrumb` is one: walking the tree
@@ -639,6 +702,8 @@ interface SearchPageBodyProps {
639
702
  readonly degradationNotice?: DegradationNoticeVariant;
640
703
  readonly railFrom?: SearchRailFrom;
641
704
  readonly filtersLayout?: SearchFiltersLayout;
705
+ readonly railTop?: number | string;
706
+ readonly stickyToolbar?: SearchToolbarPin;
642
707
  readonly defaultFiltersOpen?: boolean;
643
708
  readonly pageSize?: boolean;
644
709
  readonly breadcrumb?: ReactNode;
@@ -838,6 +903,9 @@ function SearchPageBody(props: SearchPageBodyProps): ReactElement {
838
903
  toolbar={toolbar}
839
904
  {...(props.resultsLead !== undefined ? { lead: props.resultsLead } : {})}
840
905
  {...(phoneToolbar ? { header: "compact" as const } : {})}
906
+ {...(props.stickyToolbar !== undefined
907
+ ? { stickyToolbar: props.stickyToolbar }
908
+ : {})}
841
909
  headingLevel={props.resultsHeadingLevel ?? 1}
842
910
  {...(view.render !== undefined ? { renderResults: view.render } : {})}
843
911
  {...(props.wrapResults !== undefined ? { wrapResults: props.wrapResults } : {})}
@@ -998,7 +1066,7 @@ function SearchPageBody(props: SearchPageBodyProps): ReactElement {
998
1066
  </>
999
1067
  ) : showFilters ? (
1000
1068
  <Flex align="flex-start" gap={spacing[5]} data-testid="search-page-columns">
1001
- <div className={RAIL_CLASS} style={RAIL}>
1069
+ <div className={RAIL_CLASS} style={railStyle(props.railTop)}>
1002
1070
  {/* The rail's scrollbar, in the gutter and in the token palette —
1003
1071
  see `railScrollbarCss`. Hoisted, deduped by `href`. */}
1004
1072
  <style href={RAIL_STYLE_HREF} precedence="default">
@@ -1050,6 +1118,8 @@ export function SearchPage(props: SearchPageProps): ReactElement {
1050
1118
  degradationNotice,
1051
1119
  railFrom,
1052
1120
  filtersLayout,
1121
+ railTop,
1122
+ stickyToolbar,
1053
1123
  defaultFiltersOpen,
1054
1124
  pageSize,
1055
1125
  breadcrumb,
@@ -1102,6 +1172,8 @@ export function SearchPage(props: SearchPageProps): ReactElement {
1102
1172
  {...(degradationNotice !== undefined ? { degradationNotice } : {})}
1103
1173
  {...(railFrom !== undefined ? { railFrom } : {})}
1104
1174
  {...(filtersLayout !== undefined ? { filtersLayout } : {})}
1175
+ {...(railTop !== undefined ? { railTop } : {})}
1176
+ {...(stickyToolbar !== undefined ? { stickyToolbar } : {})}
1105
1177
  {...(defaultFiltersOpen !== undefined ? { defaultFiltersOpen } : {})}
1106
1178
  {...(pageSize !== undefined ? { pageSize } : {})}
1107
1179
  {...(breadcrumb !== undefined ? { breadcrumb } : {})}
@@ -35,7 +35,7 @@ import {
35
35
  SkinTheme,
36
36
  visuallyHidden,
37
37
  } from "@stapel/tokens-antd/skin";
38
- import { breakpoints, spacing } from "@stapel/tokens";
38
+ import { breakpoints, cssVar, spacing } from "@stapel/tokens";
39
39
  import type { FeatureDef } from "@stapel/attributes-react";
40
40
  import type { SearchItem } from "../api/types.js";
41
41
  import { SearchResults } from "../headless/SearchResults.js";
@@ -109,6 +109,101 @@ export type SearchResultsWrapper = (
109
109
  */
110
110
  export const RESULTS_MAX_WIDTH = 1400;
111
111
 
112
+ /**
113
+ * The class on the row that carries the results toolbar — the sort control, the
114
+ * view switch, the page size, the count and the surface's own action.
115
+ *
116
+ * The row had no element of its own: no class, no `data-testid`, and in the
117
+ * compact header it was one child of a 112px vertical stack. A host that wanted
118
+ * it pinned under a fixed header therefore had to reach it with a `:has()` on
119
+ * the heading beside it, a `display: contents` to drop the stack's box, and the
120
+ * pane's own breakpoint restated in a media query — three rules aimed at a
121
+ * shape the pane could change under them at any release.
122
+ *
123
+ * It is the same class in BOTH header shapes, and in both it names the row that
124
+ * would pin: the WIDE header block (heading, count and toolbar on one line —
125
+ * the block IS the row) and, in `header="compact"`, the toolbar alone, because
126
+ * pinning the compact stack would put ~112px of chrome under a 56px header on a
127
+ * 390px screen.
128
+ */
129
+ export const RESULTS_TOOLBAR_CLASS = "stapel-search-results-toolbar";
130
+
131
+ /**
132
+ * Where {@link SearchResultsPaneProps.stickyToolbar} pins the row.
133
+ *
134
+ * `top` is a CSS length — a number is pixels, a string is taken as written, so
135
+ * `top: "var(--stapel-header-height)"` reads the height `<PublicShell>`
136
+ * publishes rather than restating it. Default `0`.
137
+ */
138
+ export interface SearchToolbarPin {
139
+ readonly top?: number | string;
140
+ }
141
+
142
+ /**
143
+ * The controls' own line: it may not become two.
144
+ *
145
+ * A wrapping row changes height when the count lands — the count arrives with
146
+ * the answer, one render after the toolbar was already on screen — and a bar
147
+ * that grows while it is pinned pushes the first cards of the feed down under
148
+ * the reader's eye. `nowrap` makes the height a constant; `min-inline-size: 0`
149
+ * plus `overflow-x: auto` is what a row that cannot wrap does with the overflow
150
+ * instead, which on a phone is the scroll strip every sort row already is.
151
+ */
152
+ const TOOLBAR_ROW: CSSProperties = {
153
+ flexWrap: "nowrap",
154
+ minInlineSize: 0,
155
+ overflowX: "auto",
156
+ // Thin, and only when there is something to scroll to — the same reason the
157
+ // filter rail states its own: an invisible scroll port is indistinguishable
158
+ // from a row that ends where it was cut.
159
+ scrollbarWidth: "thin",
160
+ };
161
+
162
+ /**
163
+ * The compact header's stack, WITHOUT its box.
164
+ *
165
+ * `position: sticky` travels inside its parent, so a toolbar nested in a 112px
166
+ * stack can move 112px and no further — the parent has to be the results
167
+ * column, which is as tall as the feed. `display: contents` drops the stack's
168
+ * box and hands its three rows straight to that column, which is the same
169
+ * device the fleet's storefront was writing in its own sheet.
170
+ *
171
+ * The one visible consequence: the gap between heading, toolbar and count
172
+ * becomes the column's rather than the stack's.
173
+ */
174
+ const COMPACT_STACK: CSSProperties = { display: "contents" };
175
+
176
+ /** The compact shape's toolbar box — the row the pin acts on. */
177
+ const COMPACT_TOOLBAR: CSSProperties = {
178
+ display: "flex",
179
+ alignItems: "center",
180
+ ...TOOLBAR_ROW,
181
+ };
182
+
183
+ /**
184
+ * The pin itself, and it is NET-ZERO in flow: `position` and a layer and a
185
+ * background, and not one pixel of padding.
186
+ *
187
+ * A pinned bar that grows padding to breathe over the cards passing under it
188
+ * has to take the same padding back as negative margin or the column pays for
189
+ * it, and the pair does not know which of those two a host's spacing wants. A
190
+ * row that occupies exactly the box it already occupied cannot shift anything.
191
+ */
192
+ function toolbarPinStyle(pin: SearchToolbarPin | undefined): CSSProperties | undefined {
193
+ if (pin === undefined) return undefined;
194
+ return {
195
+ position: "sticky",
196
+ top: pin.top ?? 0,
197
+ // Over the cards, under the page's own chrome — and under antd's popups,
198
+ // so the sort select still opens over its own bar.
199
+ zIndex: 1,
200
+ // Opaque, or the cards scroll THROUGH the bar. The theme's own surface
201
+ // role, resolved at paint time, so it follows the brand and the dark side
202
+ // without a second colour being written here.
203
+ background: cssVar("surface"),
204
+ };
205
+ }
206
+
112
207
  /**
113
208
  * The results grid. `auto-fill` + `minmax(260px, 1fr)`: as many columns as fit,
114
209
  * each at least a readable card and never wider than its share — and the same
@@ -396,6 +491,33 @@ export interface SearchResultsPaneProps extends ThemeModeProp {
396
491
  * viewport is not spent saying "Results" over a list of results.
397
492
  */
398
493
  readonly header?: "banner" | "compact";
494
+ /**
495
+ * PIN the toolbar row under whatever chrome is above this pane.
496
+ *
497
+ * ```tsx
498
+ * // the height <PublicShell> publishes, read rather than restated
499
+ * <SearchResultsPane stickyToolbar={{ top: "var(--stapel-header-height)" }} />
500
+ * ```
501
+ *
502
+ * A catalogue page is thirty cards long and the control that reorders them is
503
+ * at the top of it, so by the fourth row the sort is a screenful above the
504
+ * list it sorts — the same argument that made the filter rail sticky, applied
505
+ * to the other column.
506
+ *
507
+ * It pins the row the pane ACTUALLY DREW, which is why this is a prop and not
508
+ * a host's stylesheet: the pane knows which of its two header shapes it is in
509
+ * and a sheet has to guess. In `"banner"` the whole header block pins (it is
510
+ * one line: heading, count, toolbar). In `"compact"` the toolbar alone pins —
511
+ * one row, the height of one phone control — because the stack it sits in is
512
+ * ~112px and that is not a bar anybody can pin under a 56px header.
513
+ *
514
+ * Two things it does NOT do, both deliberate: it adds no padding (see
515
+ * {@link toolbarPinStyle} — a pinned bar that grows to breathe has to give
516
+ * the room back, and which spacing that is belongs to the host), and it draws
517
+ * no second sort control. There is exactly one on a results page, and this
518
+ * pins it where it stands.
519
+ */
520
+ readonly stickyToolbar?: SearchToolbarPin;
399
521
  /**
400
522
  * The category's feature schema, used ONLY to name an applied filter in the
401
523
  * empty state's exits ("Without Brand" rather than "Without vendor").
@@ -503,6 +625,7 @@ export function SearchResultsPane(props: SearchResultsPaneProps): ReactElement {
503
625
  // The compact arm's caption: the host's word is drawn, the pair's own is
504
626
  // not, and `headingVisible` overrides either way — see that prop.
505
627
  const compactHeadingSeen = props.headingVisible ?? props.heading !== undefined;
628
+ const toolbarPin = toolbarPinStyle(props.stickyToolbar);
506
629
  const columnRules =
507
630
  props.columns === undefined || props.layout === "list"
508
631
  ? null
@@ -542,7 +665,15 @@ export function SearchResultsPane(props: SearchResultsPaneProps): ReactElement {
542
665
  <div data-testid="search-results-lead">{props.lead}</div>
543
666
  )}
544
667
  {props.header === "compact" ? (
545
- <Flex vertical gap={spacing[2]} data-testid="search-results-header-compact">
668
+ /* No box of its own — see `COMPACT_STACK`. The three rows are
669
+ items of the results COLUMN, so the toolbar between them has a
670
+ parent as tall as the feed to travel in. */
671
+ <Flex
672
+ vertical
673
+ gap={spacing[2]}
674
+ style={COMPACT_STACK}
675
+ data-testid="search-results-header-compact"
676
+ >
546
677
  <Typography.Title
547
678
  level={props.headingLevel ?? 4}
548
679
  style={compactHeadingSeen ? { margin: 0 } : visuallyHidden}
@@ -551,19 +682,35 @@ export function SearchResultsPane(props: SearchResultsPaneProps): ReactElement {
551
682
  >
552
683
  {props.heading ?? t(SEARCH_I18N_KEYS.resultsTitle)}
553
684
  </Typography.Title>
554
- {props.toolbar}
685
+ <div
686
+ className={RESULTS_TOOLBAR_CLASS}
687
+ data-testid="search-results-toolbar"
688
+ style={{ ...COMPACT_TOOLBAR, ...toolbarPin }}
689
+ >
690
+ {props.toolbar}
691
+ </div>
555
692
  <Count bag={bag} />
556
693
  </Flex>
557
694
  ) : (
558
- <Flex justify="space-between" align="center" wrap gap={spacing[2]}>
695
+ /* The wide shape's header block IS the toolbar row: one line,
696
+ heading at one end, count and controls at the other, and a
697
+ direct child of the results column — so it pins as it stands. */
698
+ <Flex
699
+ justify="space-between"
700
+ align="center"
701
+ gap={spacing[2]}
702
+ className={RESULTS_TOOLBAR_CLASS}
703
+ data-testid="search-results-toolbar"
704
+ {...(toolbarPin !== undefined ? { style: toolbarPin } : {})}
705
+ >
559
706
  <Typography.Title
560
707
  level={props.headingLevel ?? 4}
561
- style={{ margin: 0 }}
708
+ style={{ margin: 0, minInlineSize: 0 }}
562
709
  data-testid="search-results-heading"
563
710
  >
564
711
  {props.heading ?? t(SEARCH_I18N_KEYS.resultsTitle)}
565
712
  </Typography.Title>
566
- <Flex align="center" wrap gap={spacing[3]}>
713
+ <Flex align="center" gap={spacing[3]} style={TOOLBAR_ROW}>
567
714
  <Count bag={bag} />
568
715
  {props.toolbar}
569
716
  </Flex>
@@ -45,6 +45,7 @@ export {
45
45
  RAIL_CLASS,
46
46
  RAIL_STYLE_HREF,
47
47
  railScrollbarCss,
48
+ railStyle,
48
49
  } from "./SearchPage.js";
49
50
  export type {
50
51
  SearchPageProps,
@@ -73,6 +74,7 @@ export {
73
74
  RESULTS_AUTO_FILL_COLUMNS,
74
75
  RESULTS_COLUMNS_CLASS,
75
76
  RESULTS_COLUMNS_STYLE_HREF,
77
+ RESULTS_TOOLBAR_CLASS,
76
78
  resultsColumnsCss,
77
79
  } from "./SearchResultsPane.js";
78
80
  export type {
@@ -80,6 +82,7 @@ export type {
80
82
  SearchResultsPaneProps,
81
83
  SearchResultsRenderer,
82
84
  SearchResultsWrapper,
85
+ SearchToolbarPin,
83
86
  } from "./SearchResultsPane.js";
84
87
 
85
88
  export {