@stapel/search-react 0.23.0 → 0.25.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/README.md +76 -2
  3. package/dist/default/FilterChips.d.ts +86 -2
  4. package/dist/default/FilterChips.d.ts.map +1 -1
  5. package/dist/default/FilterChips.js +208 -2
  6. package/dist/default/FilterChips.js.map +1 -1
  7. package/dist/default/OtherCategoriesLine.d.ts +49 -0
  8. package/dist/default/OtherCategoriesLine.d.ts.map +1 -0
  9. package/dist/default/OtherCategoriesLine.js +127 -0
  10. package/dist/default/OtherCategoriesLine.js.map +1 -0
  11. package/dist/default/SearchPage.d.ts +36 -1
  12. package/dist/default/SearchPage.d.ts.map +1 -1
  13. package/dist/default/SearchPage.js +9 -4
  14. package/dist/default/SearchPage.js.map +1 -1
  15. package/dist/default/SearchResultsPane.d.ts +15 -0
  16. package/dist/default/SearchResultsPane.d.ts.map +1 -1
  17. package/dist/default/SearchResultsPane.js +4 -1
  18. package/dist/default/SearchResultsPane.js.map +1 -1
  19. package/dist/default/index.d.ts +4 -2
  20. package/dist/default/index.d.ts.map +1 -1
  21. package/dist/default/index.js +2 -1
  22. package/dist/default/index.js.map +1 -1
  23. package/dist/headless/useOtherCategories.d.ts +52 -0
  24. package/dist/headless/useOtherCategories.d.ts.map +1 -0
  25. package/dist/headless/useOtherCategories.js +92 -0
  26. package/dist/headless/useOtherCategories.js.map +1 -0
  27. package/dist/i18n/es.d.ts.map +1 -1
  28. package/dist/i18n/es.js +9 -0
  29. package/dist/i18n/es.js.map +1 -1
  30. package/dist/i18n/keys.d.ts +42 -0
  31. package/dist/i18n/keys.d.ts.map +1 -1
  32. package/dist/i18n/keys.js +53 -0
  33. package/dist/i18n/keys.js.map +1 -1
  34. package/dist/i18n/ru.d.ts.map +1 -1
  35. package/dist/i18n/ru.js +10 -0
  36. package/dist/i18n/ru.js.map +1 -1
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/llms.txt +2 -1
  42. package/manifest.json +34 -1
  43. package/nav-manifest.json +1 -1
  44. package/package.json +7 -7
  45. package/src/analytics/generated/events.json +1 -1
  46. package/src/default/FilterChips.tsx +308 -4
  47. package/src/default/OtherCategoriesLine.tsx +238 -0
  48. package/src/default/SearchPage.tsx +65 -1
  49. package/src/default/SearchResultsPane.tsx +28 -0
  50. package/src/default/index.ts +28 -1
  51. package/src/headless/useOtherCategories.ts +193 -0
  52. package/src/i18n/es.ts +10 -0
  53. package/src/i18n/keys.ts +57 -0
  54. package/src/i18n/ru.ts +11 -0
  55. package/src/index.ts +10 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,125 @@
1
1
  # @stapel/search-react
2
2
 
3
+ ## 0.25.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6441f84: search: the sections a query reached are ONE line, drawn from the answer that drew the cards
8
+
9
+ A storefront's results page carried a block titled "Categories for «auto»":
10
+ one full-width row per section, fourteen of them under the results — and it
11
+ appeared a beat AFTER the results, because it came from a second request to
12
+ `/suggest`. So the page a person had already started reading moved under them,
13
+ for information that was not new. `/query` had answered with
14
+ `facet_meta.categories` — `{path, count}` for every section the candidate set
15
+ contains, the same list the block was printing — and the type-ahead had shown
16
+ the same sections a keystroke earlier.
17
+
18
+ **`<SearchPage otherCategories categoryName={...}>`** (and the same two props
19
+ on `<SearchResultsPane>`) draws it as a line above the results:
20
+
21
+ > Search in other categories: **Cars 12** · **Buses 3** · **Motorhomes 1** · 5 more
22
+
23
+ - **the rows come from the SEARCH response**, so the line is in the document in
24
+ the same commit as the first card. With results on screen this feature makes
25
+ no request at all — the test asserts zero `/suggest` calls on the wire, not
26
+ merely that nothing is drawn twice;
27
+ - **the one exception is an empty result**, which by definition has no
28
+ candidates and is the screen where the sections are worth the most. There
29
+ `/suggest` is asked, into a slot whose height is reserved from the first
30
+ frame, so the answer lands without moving anything — filled or empty;
31
+ - **the counts are the answer's own** and the line is capped at 8 with the tail
32
+ folded behind "N more"; on the phone surface the cap halves to 4 and the
33
+ collapsed line is clamped to two rows besides, because it is name LENGTH and
34
+ not entry count that turns a line back into a block;
35
+ - **pressing an entry narrows the search on screen and keeps the query.** The
36
+ count beside a name is the count for THIS query in that section; a link to
37
+ the bare category feed would show a different, larger number one click later,
38
+ so the caption would be a lie. Each entry is a real `<button>` whose
39
+ accessible name says what it does.
40
+
41
+ Naming an id path stays the host's, the same seam `categoryLabel` fills for the
42
+ category chip: `categoryName` is tried first, then the server's own name (a
43
+ `/suggest` answer already in the query cache names the rows for free), then the
44
+ path's last segment when it is a slug. A row none of the three can name is
45
+ dropped rather than printed as `163`.
46
+
47
+ New: `useOtherCategories`, `OTHER_CATEGORIES_LIMIT`, `OTHER_CATEGORIES_PHONE_LIMIT`,
48
+ `otherCategoryLeaf` from the main entry; `<OtherCategoriesLine>`,
49
+ `otherCategoriesCss()`, `OTHER_CATEGORIES_CLASS`, `OTHER_CATEGORIES_STYLE_HREF`,
50
+ `OTHER_CATEGORIES_PHONE_ROWS`, `OTHER_CATEGORIES_SLOT_MIN_HEIGHT` from
51
+ `./default`. Opt-in: a page that passes neither prop is byte-for-byte what it
52
+ was.
53
+
54
+ Size limits raised with their reasons in the entry names: index 12.5 → 13 KB
55
+ (the headless read), default 26.25 → 27 KB (the line — a net deletion on the
56
+ page that mounts it), i18n/es 3.5 → 3.75 KB (three strings).
57
+
58
+ ## 0.24.0
59
+
60
+ ### Minor Changes
61
+
62
+ - 01edcd1: search: the chip row gains an APPLIED mode — one chip per constraint, each beside the control that drops it
63
+
64
+ A storefront integrator built this row by hand and asked for it back. On a
65
+ desktop the filters are a rail two thousand pixels tall, and picking two values
66
+ left NOTHING between the page header and the first card: the only trace of a
67
+ choice was a pressed button somewhere inside the column and one "clear all (2)"
68
+ beside it. Dropping ONE of the two meant scrolling the rail until the same
69
+ button came back. A constraint on screen must keep the control that removes it,
70
+ and on that surface neither half was true — the constraint was not on screen
71
+ and its control was not beside it.
72
+
73
+ `<FilterChips>` could not be the answer as it stood. It is a row of OPENERS —
74
+ one chip per axis, applied or not, each opening its own `SkinDialog` — which is
75
+ the right shape where the panel is behind a tap and the wrong one where the
76
+ panel is already drawn: beside an open rail it prints the whole panel twice and
77
+ still removes nothing without a modal over the results.
78
+
79
+ **`mode?: "openers" | "applied"`**, default `openers`, which is byte-for-byte
80
+ the row that shipped. In `applied`:
81
+
82
+ - **one chip per applied VALUE and per applied numeric range**, never one per
83
+ axis — three chosen brands are three chips and three removals, where an
84
+ axis-shaped chip would drop all three with one press;
85
+ - **every caption names the axis AND the value** — "Brand: Bosch", "Price: from
86
+ 100 to 500" — because beside a dozen axes a bare value names nothing. A core
87
+ money axis prints as money in the currency the answer's own cards carry; an
88
+ attribute prints its schema unit; the bounds themselves print exactly as the
89
+ URL carries them, since the wire never promised a number and reformatting one
90
+ would rewrite the link;
91
+ - **every chip is a real `<button>`** whose press removes exactly that
92
+ constraint and whose accessible name says so. Not an antd `Tag closable`,
93
+ whose close icon is a `<span>` with no tab stop — a constraint a keyboard can
94
+ read and cannot drop — and not a modal detour;
95
+ - **the rail's own clear-all**, beside the chips instead of a column-height
96
+ down the page;
97
+ - **the same label path as the rail**, stamped on the markup:
98
+ `data-label-source` for the axis and `data-value-label-source` for the value,
99
+ each `server | schema | host | none`. A raw index term reaching this row is
100
+ something a storefront's test can fail on rather than eyeball;
101
+ - **nothing at all when nothing is applied** — an empty band above the results
102
+ is furniture — and nothing before the answer lands: both halves of a caption
103
+ are named by the envelope (`facet_labels`, `facet_meta.core_ranges`), so a row
104
+ that drew early would caption a chip with a slug and rename it a moment
105
+ later.
106
+
107
+ Both modes read the SAME bag the rail reads (`useFacetPanel`, `buildRangeGroups`
108
+ over the page's own state), so no two surfaces can disagree about what is
109
+ applied or about what a value is called.
110
+
111
+ **`<SearchPage appliedChips="desktop">`** mounts the row in the results header
112
+ with one prop. `"desktop"` is the case this exists for — where the rail is on
113
+ screen; on the phone the opener row below already states every applied filter on
114
+ its own chip, and a second row would say it twice. `true` draws it in both
115
+ layouts; omitted, nothing changes.
116
+
117
+ `buildAppliedChips`, `rangeChipText`, `rangeLabelSource` and
118
+ `appliedChipTestId` are exported for a host composing its own row, along with
119
+ `FilterChipsMode` and the split prop types (`FilterChipsOpenerProps` /
120
+ `FilterChipsAppliedProps`, unioned as `FilterChipsProps`) — the applied mode
121
+ takes no `onOpenAll` because it opens nothing.
122
+
3
123
  ## 0.23.0
4
124
 
5
125
  ### Minor Changes
package/README.md CHANGED
@@ -242,6 +242,44 @@ brings the whole list back **with the bounds said in words** ("from 1900 to
242
242
  all, silently. A mileage (`1..1000000`) and the core price stay two typed
243
243
  fields.
244
244
 
245
+ ## The applied filters have a row of their own
246
+
247
+ `<FilterChips>` has two modes. The default, `mode="openers"`, is the phone's
248
+ row: one chip per axis, applied or not, each opening its own picker. Beside a
249
+ desktop rail that shape is wrong twice — it prints the whole panel a second
250
+ time, and no chip in it removes anything without a modal over the results.
251
+
252
+ `mode="applied"` is the other row, and a page mounts it with one prop:
253
+
254
+ ```tsx
255
+ <SearchPage adapter={adapter} appliedChips="desktop" categoryFeatures={features} />
256
+ ```
257
+
258
+ `"desktop"` draws it only where the rail is on screen (on the phone the opener
259
+ row below already states every applied filter on its own chip); `true` draws it
260
+ in both layouts. `<FilterChips mode="applied" />` mounts the same row anywhere
261
+ a host wants it.
262
+
263
+ What it draws:
264
+
265
+ - **one chip per applied VALUE and per applied numeric range**, never one per
266
+ axis — three chosen brands are three chips and three removals;
267
+ - **each caption names the axis and the value** — "Brand: Bosch", "Price: from
268
+ 100 to 500" — because beside a dozen axes a bare value names nothing. A core
269
+ money axis prints as money, in the currency the answer's own cards carry;
270
+ - **each chip is a real `<button>`** whose press drops exactly that constraint
271
+ and whose accessible name says so (an antd `Tag closable` puts the removal in
272
+ a `<span>` with no tab stop: a constraint a keyboard can read and cannot
273
+ drop), plus the same clear-all the rail's footer runs;
274
+ - **the label path of the rail**, stamped: `data-label-source` for the axis and
275
+ `data-value-label-source` for the value, both `server | schema | host | none`;
276
+ - **nothing at all when nothing is applied**, and nothing before the answer
277
+ lands — a caption that renames itself under the reader is worse than one that
278
+ arrives a moment later.
279
+
280
+ `buildAppliedChips`, `rangeChipText`, `rangeLabelSource` and
281
+ `appliedChipTestId` are exported for a host composing its own row.
282
+
245
283
  ## The rail's scrollbar is in the gutter, not on the filters
246
284
 
247
285
  The rail scrolls on its own when it outgrows the window. `scrollbar-width:
@@ -253,6 +291,42 @@ real width and every colour a `--stapel-*` custom property, so it is the
253
291
  panel's own hairline in both themes. `railScrollbarCss()` and `RAIL_CLASS` are
254
292
  exported for a host that lays out its own column.
255
293
 
294
+ ## The other sections are a line, and they come with the results
295
+
296
+ `<SearchPage otherCategories categoryName={...}>` draws
297
+
298
+ > Search in other categories: **Cars 12** · **Buses 3** · **Motorhomes 1** · 5 more
299
+
300
+ above the results, and every part of that sentence is already in the answer
301
+ that drew the cards. `/query` returns `facet_meta.categories` — `{path, count}`
302
+ for every section the candidate set contains — so the line renders in the SAME
303
+ commit as the first card. There is no second request to arrive late and push
304
+ the page, which is exactly what the shape it replaces did: a full-width block
305
+ of one row per section, fetched from `/suggest` after the page had settled.
306
+
307
+ One case still earns a request. An empty result set has no candidates, so the
308
+ answer names no sections, and that is the screen where "this word exists in
309
+ these sections" is worth the most — there `/suggest` is asked, into a slot
310
+ whose height is reserved from the first frame (`OTHER_CATEGORIES_SLOT_MIN_HEIGHT`)
311
+ so the answer lands without moving anything. `useOtherCategories()` says which
312
+ case a page is in (`source`, `reserving`, `pending`) for a host drawing its own.
313
+
314
+ Pressing an entry NARROWS the search on screen and keeps the query: the count
315
+ beside a name is the count for this query in that section, and a link to the
316
+ bare category feed would show a different number a click later.
317
+
318
+ `categoryName` is what makes the line useful on a catalogue addressed by ids.
319
+ The pair holds `"140/145"` and no tree — the same seam `categoryLabel` fills for
320
+ the chip. Without it the line still draws every row the server itself named (a
321
+ `/suggest` answer already in the cache names them for free) and every path whose
322
+ last segment is a slug; a row nothing can name is dropped rather than printed as
323
+ `163`.
324
+
325
+ On the phone surface the cap halves (8 → 4) and the collapsed line is clamped to
326
+ two rows besides, because it is name LENGTH and not entry count that turns a line
327
+ back into a block. `otherCategoriesCss()` and `OTHER_CATEGORIES_CLASS` are
328
+ exported for a host that hoists the sheet itself.
329
+
256
330
  ## Two browse surfaces the page places
257
331
 
258
332
  Both are exported from `./default` and neither lays itself out — where they
@@ -334,8 +408,8 @@ the configured engine cannot evaluate.
334
408
  | api | `createSearchApi`, `searchQueryParams`, `SEARCH_SORTS`, wire types |
335
409
  | state (pure) | `parseSearchState`, `writeSearchState`, `patchSearchState`, `toggleFilterValue`, `setFilterValues`, `setRangeValue`, `clearFilters`, `activeFilterCount`, `parseDegradations`, `countIsEstimate`, `buildFacetGroups`, `orderFacetGroupsBySchema`, `facetGroupIsDrawable`, `facetGroupHasEvidence`, `facetOptionLabel`, `translitPrefixMatch`, `translitKey`, `consonantKey` |
336
410
  | model | `createSearchRuntime`, `searchQueryKeys`, `useSearchQuery`, `useRankingDisclosure` |
337
- | headless | `SearchProvider`, `SearchStateProvider`/`useSearchState`, `SearchResults`, `FacetPanel`, `RankingDisclosure` |
338
- | `./default` | `SearchPage`, `SearchResultsPane`, `FacetPanelPane`, `RankingDisclosurePane`, `SearchBox`, `SortSelect`, `PageSizeSelect`, `LanguageSelect`, `SearchResultCard`, `RangeFilterRow`, `DegradationNotice`, `UrlIssueNotice`, `PopularValues`, `PartitionChips`, `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) |
411
+ | headless | `SearchProvider`, `SearchStateProvider`/`useSearchState`, `SearchResults`, `FacetPanel`, `RankingDisclosure`, `useOtherCategories` |
412
+ | `./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) |
339
413
  | `./router` | `useRouterSearchParams` |
340
414
  | i18n | `registerSearchI18n` (+ `./i18n/ru`, `./i18n/es`) |
341
415
  | errors | `SEARCH_ERRORS`, `explainSearchError`, `SEARCH_WINDOW_EXCEEDED`, `SEARCH_BACKEND_UNAVAILABLE` |
@@ -2,7 +2,7 @@ import type { ReactElement, ReactNode } from "react";
2
2
  import type { FeatureDef } from "@stapel/attributes-react";
3
3
  import type { FacetLabelResolver } from "../headless/useFacetLabels.js";
4
4
  import type { RangeGroup } from "../state/ranges.js";
5
- import type { FacetGroup } from "../state/facets.js";
5
+ import type { FacetGroup, FacetLabelSource } from "../state/facets.js";
6
6
  import type { CategoryFilterSlotProps } from "./FacetPanelPane.js";
7
7
  /** The class the scroller carries, for {@link chipRowCss}. */
8
8
  export declare const CHIP_ROW_CLASS = "stapel-filter-chips";
@@ -67,7 +67,10 @@ export declare function capChipRow(specs: readonly ChipSpec[], max: number | nul
67
67
  readonly visible: readonly ChipSpec[];
68
68
  readonly overflow: number;
69
69
  };
70
- export interface FilterChipsProps {
70
+ /** What the row is FOR — see this module's opening note. */
71
+ export type FilterChipsMode = "openers" | "applied";
72
+ /** What both modes read the search through. */
73
+ export interface FilterChipsCommonProps {
71
74
  /** The category's feature schema — the source of option labels, of which
72
75
  * slugs get a range chip, of which slugs are choosable at all, and of how
73
76
  * each group is drawn. */
@@ -79,6 +82,10 @@ export interface FilterChipsProps {
79
82
  * value cannot read one way on a chip and another way inside the sheet.
80
83
  */
81
84
  readonly resolveFacetLabels?: FacetLabelResolver;
85
+ }
86
+ export interface FilterChipsOpenerProps extends FilterChipsCommonProps {
87
+ /** The default. Every chip OPENS a picker; see the module note. */
88
+ readonly mode?: "openers";
82
89
  /**
83
90
  * The catalogue picker (`categories-react`), same slot the panel takes.
84
91
  *
@@ -111,6 +118,18 @@ export interface FilterChipsProps {
111
118
  */
112
119
  readonly maxRowChips?: number | null;
113
120
  }
121
+ /**
122
+ * The applied row: one chip per constraint, each of which removes it.
123
+ *
124
+ * None of the opener props are here and that is the point — a row that draws
125
+ * only what is applied has no picker to open, no capped tail to stand in front
126
+ * of and no category chip (narrowing the category is a navigation, not a
127
+ * filter this row can drop).
128
+ */
129
+ export interface FilterChipsAppliedProps extends FilterChipsCommonProps {
130
+ readonly mode: "applied";
131
+ }
132
+ export type FilterChipsProps = FilterChipsOpenerProps | FilterChipsAppliedProps;
114
133
  /**
115
134
  * The last segment of a `root/leaf` category path.
116
135
  *
@@ -122,5 +141,70 @@ export interface FilterChipsProps {
122
141
  * a coordinate, always print the name you actually have.
123
142
  */
124
143
  export declare function categoryLeaf(path: string): string | undefined;
144
+ /**
145
+ * The row, in whichever mode was asked for.
146
+ *
147
+ * Two components rather than one with a branch in it: the modes share the
148
+ * search they read and share nothing they DRAW, and a single body would have
149
+ * to run both sets of hooks on every render of either.
150
+ */
125
151
  export declare function FilterChips(props: FilterChipsProps): ReactElement | null;
152
+ type Translate = (key: string, params?: Record<string, unknown>) => string;
153
+ /** Which constraint one applied chip drops. */
154
+ export type AppliedChipTarget = {
155
+ readonly kind: "facet";
156
+ readonly slug: string;
157
+ readonly value: string;
158
+ } | {
159
+ readonly kind: "range";
160
+ readonly slug: string;
161
+ };
162
+ /** One applied constraint, resolved to the words it prints and what it drops. */
163
+ export interface AppliedChip {
164
+ readonly key: string;
165
+ readonly target: AppliedChipTarget;
166
+ /** What the AXIS is called, and which source named it. */
167
+ readonly name: string;
168
+ readonly nameSource: FacetLabelSource;
169
+ /** What the VALUE is called, and which source named it. */
170
+ readonly value: string;
171
+ readonly valueSource: FacetLabelSource;
172
+ }
173
+ /** The chip's own test hook — the constraint it drops, spelled out. */
174
+ export declare function appliedChipTestId(target: AppliedChipTarget): string;
175
+ /**
176
+ * A numeric constraint as one phrase.
177
+ *
178
+ * The bounds print exactly as the URL carries them — the wire never promised a
179
+ * number and reformatting one would rewrite the link — except on a core MONEY
180
+ * axis, where the currency the answer's own cards carry turns "1000" into
181
+ * money, the same way the cards do.
182
+ */
183
+ export declare function rangeChipText(range: RangeGroup, t: Translate): string;
184
+ /**
185
+ * Where a range axis got its NAME — the same three-source question the facet
186
+ * groups answer for themselves, asked of the other half of the model.
187
+ *
188
+ * A core axis is named by the answer declaring it (`facet_meta.core_ranges`)
189
+ * and this package's own catalogue; a category attribute is named by the
190
+ * schema; a slug the URL constrains that neither explains prints as itself,
191
+ * and that is `"none"` — the same honest bottom the rail marks.
192
+ */
193
+ export declare function rangeLabelSource(range: RangeGroup): FacetLabelSource;
194
+ /**
195
+ * Every applied constraint of the current search, in the order the rail states
196
+ * them: the facet values first, in the order the groups came in, then the
197
+ * numeric ranges.
198
+ *
199
+ * Pure, and exported, because "one chip per VALUE" is the whole shape of the
200
+ * row — a build that collapsed three chosen brands into one chip would remove
201
+ * three filters with one press and no test that only counts chips would see
202
+ * it.
203
+ */
204
+ export declare function buildAppliedChips(input: {
205
+ readonly groups: readonly FacetGroup[];
206
+ readonly ranges: readonly RangeGroup[];
207
+ readonly t: Translate;
208
+ }): readonly AppliedChip[];
209
+ export {};
126
210
  //# sourceMappingURL=FilterChips.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterChips.d.ts","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"AA4HA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGnE,8DAA8D;AAC9D,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAEpD,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAsBD;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAElE,+BAA+B;AAC/B,eAAO,MAAM,eAAe,EAAE,SAAS,QAAQ,EAI9C,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAC/E;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAO3D;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,SAAS,QAAQ,EAAE,CAmCrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAOtE;AAED,MAAM,WAAW,gBAAgB;IAC/B;;8BAE0B;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACjD;;;;;;;;OAQG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,SAAS,CAAC;IAC7E;;;;;;;;;OASG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;IACnC;2DACuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW7D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CA6QxE"}
1
+ {"version":3,"file":"FilterChips.d.ts","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,43 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  /**
3
- * `<FilterChips>` — the phone's filter row: one horizontally scrolling line of
4
- * chips, each of which opens its OWN picker.
3
+ * `<FilterChips>` — the filter row, in its two modes.
4
+ *
5
+ * ## `mode="openers"` (the default): the phone's row
6
+ *
7
+ * One horizontally scrolling line of chips, each of which opens its OWN
8
+ * picker. Everything below this heading describes that mode.
9
+ *
10
+ * ## `mode="applied"`: the row a rail on screen needs
11
+ *
12
+ * Where the panel is already drawn — the desktop column — a row of openers is
13
+ * the wrong shape twice over: it prints the whole rail a second time, and no
14
+ * chip in it REMOVES anything without opening a modal over the results. A
15
+ * storefront hit exactly that (a 2377px filter column; picking two values left
16
+ * nothing between the header and the first card, and dropping one of them
17
+ * meant scrolling the rail until its button came back) and wrote its own row.
18
+ * This mode is that row, in the pair:
19
+ *
20
+ * - one chip per applied facet VALUE and per applied numeric range, never per
21
+ * axis — "Brand" with three values chosen is three chips, three removals;
22
+ * - each chip names the axis AND the value ("Brand: Bosch", "Price: from 100
23
+ * to 500"), because beside a dozen axes a bare value names nothing;
24
+ * - each chip is a real `<button>` whose press removes THAT constraint, and
25
+ * whose accessible name says so — not an antd `Tag closable`, whose close
26
+ * icon is a `<span>` with no tab stop, i.e. a constraint a keyboard can
27
+ * read and cannot drop;
28
+ * - the same clear-all the rail's footer runs, beside the chips instead of a
29
+ * column-height away;
30
+ * - nothing applied, nothing drawn. An empty band above the results is
31
+ * furniture, and this row's whole claim is that it is there only when it
32
+ * has something to say.
33
+ *
34
+ * Both modes read the SAME bag (`useFacetPanel`, `buildRangeGroups` over the
35
+ * page's own state) the rail reads, so no two surfaces can disagree about what
36
+ * is applied or about what a value is called — including the label path:
37
+ * the answer's `facet_labels` first, the category schema second, the raw slug
38
+ * marked as such third. Every applied chip stamps `data-label-source` and
39
+ * `data-value-label-source` so a storefront's test fails on a raw index term
40
+ * rather than eyeballing one.
5
41
  *
6
42
  * ## What it replaces, and why the replacement is not cosmetic
7
43
  *
@@ -278,7 +314,17 @@ export function categoryLeaf(path) {
278
314
  // FILTER's own name, the same thing every other unset chip shows.
279
315
  return /^\d+$/.test(leaf) ? undefined : leaf;
280
316
  }
317
+ /**
318
+ * The row, in whichever mode was asked for.
319
+ *
320
+ * Two components rather than one with a branch in it: the modes share the
321
+ * search they read and share nothing they DRAW, and a single body would have
322
+ * to run both sets of hooks on every render of either.
323
+ */
281
324
  export function FilterChips(props) {
325
+ return props.mode === "applied" ? (_jsx(AppliedChipRow, { ...props })) : (_jsx(OpenerChipRow, { ...props }));
326
+ }
327
+ function OpenerChipRow(props) {
282
328
  const t = useT();
283
329
  const { state, setCategory } = useSearchState();
284
330
  const bag = useFacetPanel({
@@ -386,6 +432,166 @@ export function FilterChips(props) {
386
432
  : sheetFor(open, group.label, _jsx(RangeFilterRow, { group: group, onApply: bag.setRange }));
387
433
  })()] }));
388
434
  }
435
+ /** The chip's own test hook — the constraint it drops, spelled out. */
436
+ export function appliedChipTestId(target) {
437
+ return target.kind === "facet"
438
+ ? `search-applied-chip-${target.slug}-${target.value}`
439
+ : `search-applied-chip-range-${target.slug}`;
440
+ }
441
+ /**
442
+ * A numeric constraint as one phrase.
443
+ *
444
+ * The bounds print exactly as the URL carries them — the wire never promised a
445
+ * number and reformatting one would rewrite the link — except on a core MONEY
446
+ * axis, where the currency the answer's own cards carry turns "1000" into
447
+ * money, the same way the cards do.
448
+ */
449
+ export function rangeChipText(range, t) {
450
+ const one = (bound) => {
451
+ const n = Number(bound);
452
+ if (range.currency !== undefined && Number.isFinite(n)) {
453
+ return new Intl.NumberFormat(undefined, {
454
+ style: "currency",
455
+ currency: range.currency,
456
+ maximumFractionDigits: 0,
457
+ }).format(n);
458
+ }
459
+ return range.unit === undefined ? bound : `${bound} ${range.unit}`;
460
+ };
461
+ if (range.from !== undefined && range.to !== undefined) {
462
+ return t(SEARCH_I18N_KEYS.filtersChipRangeBetween, {
463
+ from: one(range.from),
464
+ to: one(range.to),
465
+ });
466
+ }
467
+ if (range.from !== undefined) {
468
+ return t(SEARCH_I18N_KEYS.filtersChipRangeFrom, { from: one(range.from) });
469
+ }
470
+ return t(SEARCH_I18N_KEYS.filtersChipRangeTo, { to: one(range.to ?? "") });
471
+ }
472
+ /**
473
+ * Where a range axis got its NAME — the same three-source question the facet
474
+ * groups answer for themselves, asked of the other half of the model.
475
+ *
476
+ * A core axis is named by the answer declaring it (`facet_meta.core_ranges`)
477
+ * and this package's own catalogue; a category attribute is named by the
478
+ * schema; a slug the URL constrains that neither explains prints as itself,
479
+ * and that is `"none"` — the same honest bottom the rail marks.
480
+ */
481
+ export function rangeLabelSource(range) {
482
+ if (range.core)
483
+ return "server";
484
+ return range.feature === undefined ? "none" : "schema";
485
+ }
486
+ /**
487
+ * Every applied constraint of the current search, in the order the rail states
488
+ * them: the facet values first, in the order the groups came in, then the
489
+ * numeric ranges.
490
+ *
491
+ * Pure, and exported, because "one chip per VALUE" is the whole shape of the
492
+ * row — a build that collapsed three chosen brands into one chip would remove
493
+ * three filters with one press and no test that only counts chips would see
494
+ * it.
495
+ */
496
+ export function buildAppliedChips(input) {
497
+ const chips = [];
498
+ for (const group of input.groups) {
499
+ for (const option of group.options) {
500
+ if (!option.selected)
501
+ continue;
502
+ chips.push({
503
+ key: `f.${group.slug}=${option.value}`,
504
+ target: { kind: "facet", slug: group.slug, value: option.value },
505
+ name: group.label,
506
+ nameSource: group.labelSource,
507
+ value: option.label,
508
+ valueSource: option.labelSource,
509
+ });
510
+ }
511
+ }
512
+ for (const range of input.ranges) {
513
+ if (!range.active)
514
+ continue;
515
+ const source = rangeLabelSource(range);
516
+ chips.push({
517
+ key: `r.${range.slug}`,
518
+ target: { kind: "range", slug: range.slug },
519
+ name: range.label,
520
+ nameSource: source,
521
+ value: rangeChipText(range, input.t),
522
+ // The bounds are the person's own numbers — nobody had to name them.
523
+ valueSource: source,
524
+ });
525
+ }
526
+ return chips;
527
+ }
528
+ /** The applied row wraps: it stands beside a rail, not on a 390px scroller,
529
+ * and a constraint pushed off the line is a constraint with no control. */
530
+ const APPLIED_ROW = {
531
+ display: "flex",
532
+ alignItems: "center",
533
+ gap: spacing[2],
534
+ flexWrap: "wrap",
535
+ // Room for the focus ring of the first chip, which a flush edge clips.
536
+ paddingBlock: spacing[1],
537
+ };
538
+ function AppliedChipRow(props) {
539
+ const t = useT();
540
+ const { state } = useSearchState();
541
+ const bag = useFacetPanel({
542
+ ...(props.categoryFeatures !== undefined
543
+ ? { categoryFeatures: props.categoryFeatures }
544
+ : {}),
545
+ ...(props.locale !== undefined ? { locale: props.locale } : {}),
546
+ ...(props.resolveFacetLabels !== undefined
547
+ ? { resolveFacetLabels: props.resolveFacetLabels }
548
+ : {}),
549
+ });
550
+ const ranges = buildRangeGroups({
551
+ state,
552
+ ...(props.categoryFeatures !== undefined
553
+ ? { categoryFeatures: props.categoryFeatures }
554
+ : {}),
555
+ coreRanges: bag.coreRanges,
556
+ ...(bag.currency !== undefined ? { currency: bag.currency } : {}),
557
+ t,
558
+ });
559
+ /* NOTHING IS DRAWN UNTIL THE ANSWER LANDS.
560
+ *
561
+ * Both halves of a chip are named by the envelope: the heading path
562
+ * (`facet_labels[<slug>]`), and — for a range — the answer's own declaration
563
+ * of which axes are CORE columns (`facet_meta.core_ranges`). Before it, an
564
+ * `r.price` the URL carries is a slug this row has no name for, so it would
565
+ * draw a chip captioned with that slug and rename it a moment later. A
566
+ * caption that changes under the reader is worse than a caption that
567
+ * arrives; the panel is the control in the meantime.
568
+ */
569
+ const answered = bag.state.status === "ready";
570
+ const chips = buildAppliedChips({
571
+ groups: answered ? bag.state.data : [],
572
+ ranges: answered ? ranges : [],
573
+ t,
574
+ });
575
+ if (chips.length === 0)
576
+ return null;
577
+ const remove = (target) => {
578
+ if (target.kind === "facet")
579
+ bag.toggle(target.slug, target.value);
580
+ else
581
+ bag.setRange(target.slug, null);
582
+ };
583
+ return (_jsxs("div", { style: APPLIED_ROW, role: "group", "aria-label": t(SEARCH_I18N_KEYS.filtersAppliedLabel), "data-testid": "search-applied-chips", children: [chips.map((chip) => {
584
+ const text = t(SEARCH_I18N_KEYS.filtersChipPair, {
585
+ name: chip.name,
586
+ value: chip.value,
587
+ });
588
+ return (_jsxs(Button, { shape: "round", size: "small", style: CHIP, "data-testid": appliedChipTestId(chip.target), "data-label-source": chip.nameSource, "data-value-label-source": chip.valueSource, "data-analytics": "none", "data-analytics-reason": "dropping a filter is a read, not a flow step", "aria-label": t(SEARCH_I18N_KEYS.filtersChipRemove, { filter: text }), onClick: () => {
589
+ remove(chip.target);
590
+ }, children: [_jsx("span", { children: text }), _jsx("span", { "aria-hidden": "true", children: "×" })] }, chip.key));
591
+ }), _jsx(Button, { type: "link", size: "small", style: { paddingInline: 0 }, "data-testid": "search-applied-chips-clear", "data-analytics": "none", "data-analytics-reason": "dropping the filters is a read, not a flow step", onClick: () => {
592
+ bag.clearAll();
593
+ }, children: t(SEARCH_I18N_KEYS.facetsClearAll, { count: bag.activeFilters }) })] }));
594
+ }
389
595
  /** The mark on the "all filters" chip: something is applied. Not a count —
390
596
  * the counts are on the chips beside it, and a number inside a 32px circle is
391
597
  * a number nobody reads. */
@@ -1 +1 @@
1
- {"version":3,"file":"FilterChips.js","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilterChips.js","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"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"}