@stapel/search-react 0.10.0 → 0.12.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 (130) hide show
  1. package/CHANGELOG.md +160 -0
  2. package/MODULE.md +111 -0
  3. package/README.md +42 -0
  4. package/dist/api/generated/schema.d.ts +76 -6
  5. package/dist/api/generated/schema.d.ts.map +1 -1
  6. package/dist/api/searchApi.d.ts +13 -6
  7. package/dist/api/searchApi.d.ts.map +1 -1
  8. package/dist/api/searchApi.js.map +1 -1
  9. package/dist/api/types.d.ts +107 -1
  10. package/dist/api/types.d.ts.map +1 -1
  11. package/dist/api/types.js +29 -0
  12. package/dist/api/types.js.map +1 -1
  13. package/dist/default/DegradationNotice.d.ts +22 -13
  14. package/dist/default/DegradationNotice.d.ts.map +1 -1
  15. package/dist/default/DegradationNotice.js +7 -8
  16. package/dist/default/DegradationNotice.js.map +1 -1
  17. package/dist/default/FacetPanelPane.d.ts +13 -2
  18. package/dist/default/FacetPanelPane.d.ts.map +1 -1
  19. package/dist/default/FacetPanelPane.js +29 -16
  20. package/dist/default/FacetPanelPane.js.map +1 -1
  21. package/dist/default/FilterChips.d.ts +88 -3
  22. package/dist/default/FilterChips.d.ts.map +1 -1
  23. package/dist/default/FilterChips.js +166 -13
  24. package/dist/default/FilterChips.js.map +1 -1
  25. package/dist/default/LocationSummaryLine.d.ts.map +1 -1
  26. package/dist/default/LocationSummaryLine.js +1 -1
  27. package/dist/default/LocationSummaryLine.js.map +1 -1
  28. package/dist/default/RangeFilterRow.d.ts.map +1 -1
  29. package/dist/default/RangeFilterRow.js +49 -5
  30. package/dist/default/RangeFilterRow.js.map +1 -1
  31. package/dist/default/SearchBox.d.ts.map +1 -1
  32. package/dist/default/SearchBox.js +74 -4
  33. package/dist/default/SearchBox.js.map +1 -1
  34. package/dist/default/SearchPage.d.ts +29 -1
  35. package/dist/default/SearchPage.d.ts.map +1 -1
  36. package/dist/default/SearchPage.js +25 -10
  37. package/dist/default/SearchPage.js.map +1 -1
  38. package/dist/default/SearchResultsPane.d.ts +22 -0
  39. package/dist/default/SearchResultsPane.d.ts.map +1 -1
  40. package/dist/default/SearchResultsPane.js +2 -2
  41. package/dist/default/SearchResultsPane.js.map +1 -1
  42. package/dist/default/SortSelect.d.ts +23 -0
  43. package/dist/default/SortSelect.d.ts.map +1 -1
  44. package/dist/default/SortSelect.js +29 -9
  45. package/dist/default/SortSelect.js.map +1 -1
  46. package/dist/default/index.d.ts +2 -2
  47. package/dist/default/index.d.ts.map +1 -1
  48. package/dist/default/index.js +1 -1
  49. package/dist/default/index.js.map +1 -1
  50. package/dist/headless/FacetPanel.d.ts +26 -0
  51. package/dist/headless/FacetPanel.d.ts.map +1 -1
  52. package/dist/headless/FacetPanel.js +16 -1
  53. package/dist/headless/FacetPanel.js.map +1 -1
  54. package/dist/headless/useFacetLabels.d.ts +39 -0
  55. package/dist/headless/useFacetLabels.d.ts.map +1 -0
  56. package/dist/headless/useFacetLabels.js +129 -0
  57. package/dist/headless/useFacetLabels.js.map +1 -0
  58. package/dist/headless/useSearchBox.d.ts +71 -0
  59. package/dist/headless/useSearchBox.d.ts.map +1 -1
  60. package/dist/headless/useSearchBox.js +67 -2
  61. package/dist/headless/useSearchBox.js.map +1 -1
  62. package/dist/i18n/es.d.ts.map +1 -1
  63. package/dist/i18n/es.js +8 -0
  64. package/dist/i18n/es.js.map +1 -1
  65. package/dist/i18n/keys.d.ts +48 -0
  66. package/dist/i18n/keys.d.ts.map +1 -1
  67. package/dist/i18n/keys.js +58 -0
  68. package/dist/i18n/keys.js.map +1 -1
  69. package/dist/i18n/ru.d.ts.map +1 -1
  70. package/dist/i18n/ru.js +10 -0
  71. package/dist/i18n/ru.js.map +1 -1
  72. package/dist/index.d.ts +9 -7
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +6 -5
  75. package/dist/index.js.map +1 -1
  76. package/dist/model/queries.d.ts +6 -5
  77. package/dist/model/queries.d.ts.map +1 -1
  78. package/dist/model/queries.js +4 -3
  79. package/dist/model/queries.js.map +1 -1
  80. package/dist/model/queryKeys.d.ts +12 -0
  81. package/dist/model/queryKeys.d.ts.map +1 -1
  82. package/dist/model/queryKeys.js +7 -0
  83. package/dist/model/queryKeys.js.map +1 -1
  84. package/dist/nav/manifest.d.ts +21 -0
  85. package/dist/nav/manifest.d.ts.map +1 -1
  86. package/dist/nav/manifest.js +3 -2
  87. package/dist/nav/manifest.js.map +1 -1
  88. package/dist/state/degradations.d.ts +32 -0
  89. package/dist/state/degradations.d.ts.map +1 -1
  90. package/dist/state/degradations.js +33 -0
  91. package/dist/state/degradations.js.map +1 -1
  92. package/dist/state/facets.d.ts +64 -0
  93. package/dist/state/facets.d.ts.map +1 -1
  94. package/dist/state/facets.js +134 -9
  95. package/dist/state/facets.js.map +1 -1
  96. package/dist/state/ranges.d.ts +45 -3
  97. package/dist/state/ranges.d.ts.map +1 -1
  98. package/dist/state/ranges.js +55 -14
  99. package/dist/state/ranges.js.map +1 -1
  100. package/llms.txt +2 -2
  101. package/manifest.json +27 -2
  102. package/nav-manifest.json +4 -3
  103. package/package.json +10 -10
  104. package/src/analytics/generated/events.json +1 -1
  105. package/src/api/generated/schema.ts +76 -6
  106. package/src/api/searchApi.ts +13 -6
  107. package/src/api/types.ts +115 -1
  108. package/src/default/DegradationNotice.tsx +30 -20
  109. package/src/default/FacetPanelPane.tsx +55 -25
  110. package/src/default/FilterChips.tsx +290 -38
  111. package/src/default/LocationSummaryLine.tsx +6 -1
  112. package/src/default/RangeFilterRow.tsx +61 -3
  113. package/src/default/SearchBox.tsx +134 -6
  114. package/src/default/SearchPage.tsx +79 -5
  115. package/src/default/SearchResultsPane.tsx +48 -11
  116. package/src/default/SortSelect.tsx +70 -9
  117. package/src/default/index.ts +10 -2
  118. package/src/headless/FacetPanel.tsx +44 -1
  119. package/src/headless/useFacetLabels.ts +172 -0
  120. package/src/headless/useSearchBox.ts +132 -5
  121. package/src/i18n/es.ts +9 -0
  122. package/src/i18n/keys.ts +60 -0
  123. package/src/i18n/ru.ts +11 -0
  124. package/src/index.ts +28 -4
  125. package/src/model/queries.ts +6 -5
  126. package/src/model/queryKeys.ts +23 -0
  127. package/src/nav/manifest.ts +24 -2
  128. package/src/state/degradations.ts +56 -0
  129. package/src/state/facets.ts +181 -9
  130. package/src/state/ranges.ts +85 -15
@@ -42,11 +42,69 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
42
42
  *
43
43
  * ## The library is not inventing a classified's filters
44
44
  *
45
- * A chip exists for each facet group the SERVER returned, each numeric range
46
- * the CATEGORY SCHEMA declares, and the location plus the leading
47
- * "all filters" chip. Nothing here knows what a "brand" or a "mileage" is;
48
- * a deployment with three facets gets three chips and a deployment with none
49
- * gets the leading chip alone.
45
+ * A chip exists for each facet group the SERVER returned AND the category
46
+ * schema types as choosable (`isFacetableFeature` an `imei` is counted and
47
+ * is not a filter), each numeric range the CATEGORY SCHEMA declares, the
48
+ * location, and the host's category control plus the leading "all filters"
49
+ * chip. Nothing here knows what a "brand" or a "mileage" is; a deployment with
50
+ * three facets gets three chips and a deployment with none gets the leading
51
+ * chip alone.
52
+ *
53
+ * ## The ORDER of the row is the whole product
54
+ *
55
+ * At 390px a person sees roughly four chips before the fold, and everything
56
+ * past them costs a horizontal flick most people never make. On a live phone
57
+ * category the first seven were battery health, four parcel dimensions and two
58
+ * wholesale counts — every one of them a numeric ATTRIBUTE the category
59
+ * happens to declare, drawn before the condition, the vendor and the model
60
+ * anybody actually narrows by, and before the price.
61
+ *
62
+ * That is an ORDERING defect, not a facetability one, and it is fixed as one:
63
+ * nothing is deleted, because this package cannot tell a battery-health axis
64
+ * from a parcel-width axis and must not pretend to. Two categories declare
65
+ * `int` attributes and one of them is `mileage`. So the row states its order
66
+ * instead, out of evidence it actually has:
67
+ *
68
+ * 1. **the category chip** — narrowing the category decides which chips
69
+ * exist at all, the facet plan being derived from the leaf;
70
+ * 2. **the location chip** — the other host-slot filter;
71
+ * 3. **everything APPLIED**, in band order below. A constraint a person has
72
+ * set has to be reachable without a flick, or the row states filters that
73
+ * are on screen only if you go looking;
74
+ * 4. then everything unapplied, in band order:
75
+ * **core range axes** (`facet_meta.core_ranges` — the SERVER declaring an
76
+ * axis that exists for every document in every category: `price`), then
77
+ * **counted facet groups** (the server counted them for this search and
78
+ * each carries its remaining counts — the strongest evidence the row has
79
+ * that these are the axes this corpus is narrowed by), then
80
+ * **the category's numeric attributes**, which are form fields the
81
+ * composer collects and which no flag in the schema distinguishes from an
82
+ * axis a buyer uses.
83
+ *
84
+ * Band 3's attributes keep their controls, whole, in the panel behind the
85
+ * leading circle and at the tail of this row. `buildRangeGroups` is untouched:
86
+ * a rule that DELETED them would have to answer "on what evidence", and
87
+ * `facet_meta.skipped` — the one server signal that names a slug — means the
88
+ * counter ran out of plan slots at `MAX_FACET_FIELDS`, not that a person
89
+ * cannot filter by it. `r.<slug>` still answers for a skipped slug.
90
+ *
91
+ * ## Why the CATEGORY leads the row
92
+ *
93
+ * The owner's navigation model puts levels 1-2 of the catalogue on tiles and
94
+ * every level below them behind a cascading child selector, chosen "as a
95
+ * characteristic" — on the result list and in the composer alike. On the SERP
96
+ * that selector is a chip like any other, and it is the FIRST one, because
97
+ * narrowing the category is what changes which other chips exist at all: the
98
+ * facet plan is derived from the leaf category, so every chip to its right is
99
+ * downstream of it.
100
+ *
101
+ * The pair does not draw that selector. Walking the tree belongs to
102
+ * `categories-react`, so the chip is the host's `renderCategoryFilter` in the
103
+ * same sheet the other chips open, and a row whose host filled no such slot
104
+ * renders exactly as it did before. There is no synthesized category FACET
105
+ * anywhere here and there must not be one: the server counts no category
106
+ * buckets and the index has no read path for them, so any count this row drew
107
+ * beside a child category would be a number nobody could check.
50
108
  */
51
109
  import { useState } from "react";
52
110
  import { Button } from "antd";
@@ -90,6 +148,42 @@ const ROW = {
90
148
  paddingBlock: spacing[1],
91
149
  };
92
150
  const CHIP = { flex: "0 0 auto", borderRadius: radii.full };
151
+ /** Band order, stated once. */
152
+ export const CHIP_BAND_ORDER = [
153
+ "core_range",
154
+ "facet",
155
+ "attribute_range",
156
+ ];
157
+ /** Has the person set this filter? */
158
+ function specApplied(spec) {
159
+ return spec.band === "facet" ? spec.facet.selected.length > 0 : spec.range.active;
160
+ }
161
+ /**
162
+ * The row's order: applied first, then band, then the order each source
163
+ * already came in.
164
+ *
165
+ * Exported because the order IS the fix — the defect it closes is invisible to
166
+ * a test that only asks whether a chip exists, and a rule stated in prose next
167
+ * to an unexercised implementation is a rule that drifts.
168
+ *
169
+ * `Array.prototype.sort` is stable in every runtime this pair supports, so
170
+ * equal-ranked chips keep the order `buildRangeGroups` and `buildFacetGroups`
171
+ * gave them — a closed set's authored order survives all the way to the row.
172
+ */
173
+ export function orderChipFilters(ranges, facets) {
174
+ const specs = [
175
+ ...ranges.map((range) => range.core
176
+ ? { band: "core_range", range }
177
+ : { band: "attribute_range", range }),
178
+ ...facets.map((facet) => ({ band: "facet", facet })),
179
+ ];
180
+ return [...specs].sort((a, b) => {
181
+ const applied = Number(specApplied(b)) - Number(specApplied(a));
182
+ if (applied !== 0)
183
+ return applied;
184
+ return CHIP_BAND_ORDER.indexOf(a.band) - CHIP_BAND_ORDER.indexOf(b.band);
185
+ });
186
+ }
93
187
  /**
94
188
  * The label a chip carries: the group's name alone when nothing is chosen,
95
189
  * and the CHOICE when something is — "Brand" becomes "Bosch", "Brand, +2".
@@ -105,23 +199,45 @@ function chipLabel(group, t) {
105
199
  ? first.label
106
200
  : `${first.label}${t(SEARCH_I18N_KEYS.filtersChipMore, { count: chosen.length - 1 })}`;
107
201
  }
202
+ /**
203
+ * The last segment of a `root/leaf` category path.
204
+ *
205
+ * A chip has room for one word, and the whole path is what the panel prints on
206
+ * a surface with a column to spend. This is the pair's LAST resort — a host
207
+ * that renders the picker knows the catalogue's own name for the node and
208
+ * passes `categoryLabel` — but it is a real narrowing stated with a value the
209
+ * URL genuinely carries, which is the line the geo chip draws too: never print
210
+ * a coordinate, always print the name you actually have.
211
+ */
212
+ export function categoryLeaf(path) {
213
+ const parts = path.split("/").filter((part) => part.length > 0);
214
+ return parts[parts.length - 1] ?? path;
215
+ }
108
216
  export function FilterChips(props) {
109
217
  const t = useT();
110
- const { state } = useSearchState();
218
+ const { state, setCategory } = useSearchState();
111
219
  const bag = useFacetPanel({
112
220
  ...(props.categoryFeatures !== undefined
113
221
  ? { categoryFeatures: props.categoryFeatures }
114
222
  : {}),
115
223
  ...(props.locale !== undefined ? { locale: props.locale } : {}),
224
+ ...(props.resolveFacetLabels !== undefined
225
+ ? { resolveFacetLabels: props.resolveFacetLabels }
226
+ : {}),
116
227
  });
117
228
  const applyLabel = useApplyLabel();
118
229
  const surface = useDialogSurface();
119
230
  const [open, setOpen] = useState(null);
231
+ // Same source as the panel's rows, so the phone chip row and the desktop
232
+ // panel cannot disagree about which axes exist: the core columns come from
233
+ // the ANSWER (`facet_meta.core_ranges`) and the currency off its cards.
120
234
  const ranges = buildRangeGroups({
121
235
  state,
122
236
  ...(props.categoryFeatures !== undefined
123
237
  ? { categoryFeatures: props.categoryFeatures }
124
238
  : {}),
239
+ coreRanges: bag.coreRanges,
240
+ ...(bag.currency !== undefined ? { currency: bag.currency } : {}),
125
241
  t,
126
242
  });
127
243
  const groups = bag.state.status === "ready"
@@ -131,21 +247,58 @@ export function FilterChips(props) {
131
247
  setOpen(null);
132
248
  };
133
249
  const sheetFor = (id, title, body) => (_jsx(SkinDialog, { open: open === id, onClose: close, title: title, dismissLabel: t(SEARCH_I18N_KEYS.filtersDismiss), "data-testid": `filter-chip-sheet-${id}`, footer: _jsx(Button, { block: true, type: "primary", "data-testid": `filter-chip-apply-${id}`, "data-analytics": "none", "data-analytics-reason": "the filter is already applied; this closes the sheet", onClick: close, children: applyLabel }), children: body }));
250
+ // The category chip exists only where a host can actually draw the picker:
251
+ // a chip that opened an empty sheet would be a filter affordance leading
252
+ // nowhere, and the whole panel behind the leading circle already carries the
253
+ // control that widens a narrowed link.
254
+ const showCategoryChip = props.renderCategoryFilter !== undefined;
255
+ const category = state.category;
256
+ // Same rule as every other chip: the CHOICE when there is one, the filter's
257
+ // own name when there is not.
258
+ const categoryChipLabel = category === undefined
259
+ ? t(SEARCH_I18N_KEYS.categoryTitle)
260
+ : (props.categoryLabel ?? categoryLeaf(category));
261
+ const ordered = orderChipFilters(ranges, groups);
134
262
  const geo = state.geo;
135
- const showGeoChip = props.renderGeoFilter !== undefined || geo !== undefined;
263
+ const showGeoChip = props.geoChip !== false &&
264
+ (props.renderGeoFilter !== undefined || geo !== undefined);
136
265
  // Nothing applied: the chip is the FILTER's name ("Location"), because there
137
266
  // is no constraint to describe yet. Applied: the host's name for the place,
138
267
  // and failing that the sentence that admits the pair does not know it.
139
268
  const geoChipLabel = geo === undefined
140
269
  ? t(SEARCH_I18N_KEYS.geoTitle)
141
270
  : (props.geoLabel ?? geoSummaryFallback(geo, t));
142
- return (_jsxs(_Fragment, { children: [_jsx("style", { href: CHIP_ROW_STYLE_HREF, precedence: "default", children: chipRowCss() }), _jsxs("div", { className: CHIP_ROW_CLASS, style: ROW, role: "group", "aria-label": t(SEARCH_I18N_KEYS.filtersChipsLabel), "data-testid": "search-filter-chips", "data-surface": surface, children: [_jsx(Button, { shape: "circle", "aria-label": t(SEARCH_I18N_KEYS.filtersAll), icon: _jsx(SlidersGlyph, {}), style: CHIP, "data-testid": "search-filters-open", "data-active": bag.activeFilters > 0 ? "true" : "false", "data-analytics": "none", "data-analytics-reason": "opening the filter sheet is a read, not a flow step", onClick: props.onOpenAll, children: bag.activeFilters > 0 && _jsx(ActiveDot, {}) }), showGeoChip && (_jsx(Button, { style: CHIP, shape: "round", type: geo !== undefined ? "primary" : "default", "data-testid": "search-chip-geo", "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
271
+ /*
272
+ * A row of one button is not a chip row.
273
+ *
274
+ * The leading circle is the whole-panel door, and it is the only child this
275
+ * row is guaranteed. On a deployment whose plan has no facets for the
276
+ * current query — a free-text search with no category is exactly that: the
277
+ * plan comes from the CATEGORY's feature defs, so `facets` comes back `{}` —
278
+ * the row rendered as a lone circle floating between the location line and
279
+ * the results, a third filter affordance next to two working ones. When
280
+ * there is nothing to state, the row states nothing and the surface above
281
+ * keeps its own door.
282
+ */
283
+ const hasChips = showCategoryChip || showGeoChip || ordered.length > 0;
284
+ if (!hasChips)
285
+ return null;
286
+ return (_jsxs(_Fragment, { children: [_jsx("style", { href: CHIP_ROW_STYLE_HREF, precedence: "default", children: chipRowCss() }), _jsxs("div", { className: CHIP_ROW_CLASS, style: ROW, role: "group", "aria-label": t(SEARCH_I18N_KEYS.filtersChipsLabel), "data-testid": "search-filter-chips", "data-surface": surface, children: [_jsx(Button, { shape: "circle", "aria-label": t(SEARCH_I18N_KEYS.filtersAll), icon: _jsx(SlidersGlyph, {}), style: CHIP, "data-testid": "search-filters-open", "data-active": bag.activeFilters > 0 ? "true" : "false", "data-analytics": "none", "data-analytics-reason": "opening the filter sheet is a read, not a flow step", onClick: props.onOpenAll, children: bag.activeFilters > 0 && _jsx(ActiveDot, {}) }), showCategoryChip && (_jsx(Button, { style: CHIP, shape: "round", type: category !== undefined ? "primary" : "default", "data-testid": "search-chip-category", "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
287
+ setOpen("category");
288
+ }, children: categoryChipLabel })), showGeoChip && (_jsx(Button, { style: CHIP, shape: "round", type: geo !== undefined ? "primary" : "default", "data-testid": "search-chip-geo", "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
143
289
  setOpen("geo");
144
- }, children: geoChipLabel })), ranges.map((group) => (_jsx(Button, { style: CHIP, shape: "round", type: group.active ? "primary" : "default", "data-testid": `search-chip-range-${group.slug}`, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
145
- setOpen(`range:${group.slug}`);
146
- }, children: group.label }, group.slug))), groups.map((group) => (_jsx(Button, { style: CHIP, shape: "round", type: group.selected.length > 0 ? "primary" : "default", "data-testid": `search-chip-${group.slug}`, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
147
- setOpen(`facet:${group.slug}`);
148
- }, children: chipLabel(group, t) }, group.slug)))] }), open?.startsWith("facet:") === true &&
290
+ }, children: geoChipLabel })), ordered.map((spec) => spec.band === "facet" ? (_jsx(Button, { style: CHIP, shape: "round", type: spec.facet.selected.length > 0 ? "primary" : "default", "data-testid": `search-chip-${spec.facet.slug}`, "data-band": spec.band, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
291
+ setOpen(`facet:${spec.facet.slug}`);
292
+ }, children: chipLabel(spec.facet, t) }, `facet:${spec.facet.slug}`)) : (_jsx(Button, { style: CHIP, shape: "round", type: spec.range.active ? "primary" : "default", "data-testid": `search-chip-range-${spec.range.slug}`, "data-band": spec.band, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
293
+ setOpen(`range:${spec.range.slug}`);
294
+ }, children: spec.range.label }, `range:${spec.range.slug}`)))] }), open === "category" &&
295
+ props.renderCategoryFilter !== undefined &&
296
+ sheetFor("category", t(SEARCH_I18N_KEYS.categoryTitle), props.renderCategoryFilter({
297
+ value: category,
298
+ onChange: (path) => {
299
+ setCategory(path);
300
+ },
301
+ })), open?.startsWith("facet:") === true &&
149
302
  (() => {
150
303
  const slug = open.slice("facet:".length);
151
304
  const group = groups.find((candidate) => candidate.slug === slug);
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LocationSummaryLine.d.ts","sourceRoot":"","sources":["../../src/default/LocationSummaryLine.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAe9D,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAyBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAmFd"}
1
+ {"version":3,"file":"LocationSummaryLine.d.ts","sourceRoot":"","sources":["../../src/default/LocationSummaryLine.tsx"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAe9D,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAyBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CAwFd"}
@@ -74,7 +74,7 @@ export function LocationSummaryLine(props) {
74
74
  : (props.geoLabel ?? geoSummaryFallback(geo, t));
75
75
  return (_jsxs(_Fragment, { children: [_jsxs(Flex, { align: "center", justify: "space-between", gap: spacing[2], style: ROW, "data-testid": "search-location-summary", "data-geo": geo === undefined ? "off" : "on", children: [_jsxs(Button, { type: "link", style: LOCATION, icon: _jsx(PinGlyph, {}), "data-testid": "search-location-open", "data-analytics": "none", "data-analytics-reason": "opening the location sheet is a read, not a flow step", onClick: () => {
76
76
  setOpen(true);
77
- }, children: [where, radius !== undefined && (_jsxs("span", { "data-testid": "search-location-radius", children: [" · ", radius] }))] }), _jsx(Badge, { count: activeFilters, size: "small", "data-testid": "search-location-filters-badge", children: _jsx(Button, { type: "link", style: { paddingInline: 0 }, "data-testid": "search-location-filters", "data-active": activeFilters > 0 ? "true" : "false", "data-analytics": "none", "data-analytics-reason": "opening the filter sheet is a read, not a flow step", onClick: props.onOpenAll, children: t(SEARCH_I18N_KEYS.filtersAll) }) })] }), _jsx(GeoSheet, { open: open, onClose: () => {
77
+ }, children: [where, radius !== undefined && (_jsxs("span", { "data-testid": "search-location-radius", children: [" · ", radius] }))] }), _jsx(Badge, { count: activeFilters, size: "small", "data-testid": "search-location-filters-badge", children: _jsx(Button, { type: "link", style: { paddingInline: 0 }, "data-testid": "search-location-filters", "data-active": activeFilters > 0 ? "true" : "false", "data-analytics": "none", "data-analytics-reason": "opening the filter sheet is a read, not a flow step", onClick: props.onOpenAll, children: t(SEARCH_I18N_KEYS.filtersShort) }) })] }), _jsx(GeoSheet, { open: open, onClose: () => {
78
78
  setOpen(false);
79
79
  }, testIds: SUMMARY_GEO_TEST_IDS, ...(props.renderGeoFilter !== undefined
80
80
  ? { renderGeoFilter: props.renderGeoFilter }
@@ -1 +1 @@
1
- {"version":3,"file":"LocationSummaryLine.js","sourceRoot":"","sources":["../../src/default/LocationSummaryLine.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocationSummaryLine.js","sourceRoot":"","sources":["../../src/default/LocationSummaryLine.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RangeFilterRow.d.ts","sourceRoot":"","sources":["../../src/default/RangeFilterRow.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CACrE;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAyGvE"}
1
+ {"version":3,"file":"RangeFilterRow.d.ts","sourceRoot":"","sources":["../../src/default/RangeFilterRow.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CACrE;AAoCD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAqIvE"}
@@ -18,7 +18,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
18
  */
19
19
  import { useRef, useState } from "react";
20
20
  import { Button, Flex, InputNumber, Typography } from "antd";
21
- import { actionAvailable, actionBlocked, useT } from "@stapel/core";
21
+ import { actionAvailable, actionBlocked, useFormat, useT } from "@stapel/core";
22
22
  import { GatedButton } from "@stapel/tokens-antd/skin";
23
23
  import { spacing } from "@stapel/tokens";
24
24
  import { isRangeUsable } from "../state/ranges.js";
@@ -28,8 +28,39 @@ export const RANGE_FIELD_MIN_WIDTH = 96;
28
28
  function toDraft(value) {
29
29
  return value ?? "";
30
30
  }
31
+ /**
32
+ * The suffix a bound field carries: a currency SYMBOL for a money axis, the
33
+ * category's own unit string otherwise.
34
+ *
35
+ * `group.currency` is an ISO 4217 code and `RUB` beside an input is not what
36
+ * money looks like anywhere; `Intl` knows the symbol per locale, so the code
37
+ * goes in and «₽» comes out. An unsupported code falls back to the code
38
+ * itself — still better than nothing, and it never throws inside a render.
39
+ */
40
+ function boundSuffix(format, group) {
41
+ if (group.currency === undefined)
42
+ return group.unit;
43
+ if (!/^[A-Za-z]{3}$/.test(group.currency))
44
+ return group.currency;
45
+ try {
46
+ const sample = format.number(0, {
47
+ style: "currency",
48
+ currency: group.currency.toUpperCase(),
49
+ currencyDisplay: "narrowSymbol",
50
+ maximumFractionDigits: 0,
51
+ });
52
+ if (sample === null)
53
+ return group.currency;
54
+ const symbol = sample.replace(/[\s\u00a0\u202f0-9.,]/g, "");
55
+ return symbol.length > 0 ? symbol : group.currency;
56
+ }
57
+ catch {
58
+ return group.currency;
59
+ }
60
+ }
31
61
  export function RangeFilterRow(props) {
32
62
  const t = useT();
63
+ const format = useFormat();
33
64
  const { group } = props;
34
65
  const [from, setFrom] = useState(toDraft(group.from));
35
66
  const [to, setTo] = useState(toDraft(group.to));
@@ -59,14 +90,27 @@ export function RangeFilterRow(props) {
59
90
  return;
60
91
  props.onApply(group.slug, empty ? null : draft);
61
92
  };
62
- const unit = group.unit === undefined ? "" : ` ${group.unit}`;
63
- return (_jsxs(Flex, { vertical: true, gap: spacing[1], "data-testid": `facet-range-${group.slug}`, "data-active": group.active ? "true" : "false", children: [_jsx(Typography.Text, { strong: true, children: group.label }), _jsxs(Flex, { gap: spacing[2], align: "center", wrap: true, children: [_jsx(InputNumber, { value: from === "" ? null : Number(from), placeholder: t(SEARCH_I18N_KEYS.facetsRangeFrom), "aria-label": `${t(SEARCH_I18N_KEYS.facetsRangeFromAria, {
93
+ const suffix = boundSuffix(format, group);
94
+ const unit = suffix === undefined ? "" : ` ${suffix}`;
95
+ // Thousands grouping inside the field, because a price is read in
96
+ // thousands: `119000` is a wall of digits and `119 000` is a number. The
97
+ // parser is digits-only, so whatever the locale's separator turns out to
98
+ // be, the value that leaves the control is still the one the URL carries.
99
+ const grouping = group.core
100
+ ? {
101
+ formatter: (value) => value === undefined || value === ""
102
+ ? ""
103
+ : (format.number(Number(value)) ?? String(value)),
104
+ parser: (value) => (value ?? "").replace(/[^\d.-]/g, ""),
105
+ }
106
+ : {};
107
+ return (_jsxs(Flex, { vertical: true, gap: spacing[1], "data-testid": `facet-range-${group.slug}`, "data-active": group.active ? "true" : "false", "data-core": group.core ? "true" : "false", children: [_jsx(Typography.Text, { strong: true, "data-testid": `facet-range-${group.slug}-label`, children: suffix === undefined ? group.label : `${group.label}, ${suffix}` }), _jsxs(Flex, { gap: spacing[2], align: "center", wrap: true, children: [_jsx(InputNumber, { value: from === "" ? null : Number(from), placeholder: t(SEARCH_I18N_KEYS.facetsRangeFrom), "aria-label": `${t(SEARCH_I18N_KEYS.facetsRangeFromAria, {
64
108
  feature: group.label,
65
- })}${unit}`, "data-testid": `facet-range-${group.slug}-from`, style: { minWidth: RANGE_FIELD_MIN_WIDTH }, ...(group.min !== undefined ? { min: group.min } : {}), ...(group.max !== undefined ? { max: group.max } : {}), ...(group.step !== undefined ? { step: group.step } : {}), onChange: (value) => {
109
+ })}${unit}`, "data-testid": `facet-range-${group.slug}-from`, style: { minWidth: RANGE_FIELD_MIN_WIDTH }, ...grouping, ...(group.min !== undefined ? { min: group.min } : {}), ...(group.max !== undefined ? { max: group.max } : {}), ...(group.step !== undefined ? { step: group.step } : {}), onChange: (value) => {
66
110
  setFrom(value === null || value === undefined ? "" : String(value));
67
111
  }, onPressEnter: commit }), _jsx(InputNumber, { value: to === "" ? null : Number(to), placeholder: t(SEARCH_I18N_KEYS.facetsRangeTo), "aria-label": `${t(SEARCH_I18N_KEYS.facetsRangeToAria, {
68
112
  feature: group.label,
69
- })}${unit}`, "data-testid": `facet-range-${group.slug}-to`, style: { minWidth: RANGE_FIELD_MIN_WIDTH }, ...(group.min !== undefined ? { min: group.min } : {}), ...(group.max !== undefined ? { max: group.max } : {}), ...(group.step !== undefined ? { step: group.step } : {}), onChange: (value) => {
113
+ })}${unit}`, "data-testid": `facet-range-${group.slug}-to`, style: { minWidth: RANGE_FIELD_MIN_WIDTH }, ...grouping, ...(group.min !== undefined ? { min: group.min } : {}), ...(group.max !== undefined ? { max: group.max } : {}), ...(group.step !== undefined ? { step: group.step } : {}), onChange: (value) => {
70
114
  setTo(value === null || value === undefined ? "" : String(value));
71
115
  }, onPressEnter: commit }), _jsx(GatedButton, { gate: apply, type: usable && !empty ? "primary" : "default", testId: `facet-range-${group.slug}-apply`, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: commit, children: t(SEARCH_I18N_KEYS.facetsRangeApply) }), group.active && (_jsx(Button, { "data-testid": `facet-range-${group.slug}-clear`, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
72
116
  props.onApply(group.slug, null);
@@ -1 +1 @@
1
- {"version":3,"file":"RangeFilterRow.js","sourceRoot":"","sources":["../../src/default/RangeFilterRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RangeFilterRow.js","sourceRoot":"","sources":["../../src/default/RangeFilterRow.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.d.ts","sourceRoot":"","sources":["../../src/default/SearchBox.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,mBAAmB;IACxE,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;2EACuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAgF7D"}
1
+ {"version":3,"file":"SearchBox.d.ts","sourceRoot":"","sources":["../../src/default/SearchBox.tsx"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAMrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4BhD,MAAM,WAAW,cAAe,SAAQ,aAAa,EAAE,mBAAmB;IACxE,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;2EACuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AA6BD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAgJ7D"}
@@ -17,6 +17,16 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  * the catalogue — never a query log, because stapel-search keeps none — so
18
18
  * every suggestion is a search that has results. The endpoint was typed and
19
19
  * unreachable for three releases (S-8).
20
+ * - **Reaches the CATALOGUE, not only the titles.** stapel-search 0.7.0
21
+ * answers with CATEGORIES too, and they render as their own group above the
22
+ * terms: on a live classified deployment, typing a word that names a
23
+ * section answered listing titles and nothing else, so the search field
24
+ * could not reach a category at all. Each row prints the ancestor path
25
+ * (three catalogues have a "Shorts"; only the path tells them apart) and
26
+ * the live listing count, and follows the server's own `category` string.
27
+ * See
28
+ * `useSearchBox` for why the group is absent rather than empty when the
29
+ * server says it had no provider.
20
30
  * - **Never grows a "no results" dropdown.** With nothing to suggest the menu
21
31
  * stays shut: an empty popover under a half-typed word says "there is
22
32
  * nothing" about a search that has not run.
@@ -29,25 +39,85 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
39
  * as everything else; a header outside one renders `<SearchPage>`'s copy.
30
40
  */
31
41
  import { useState } from "react";
32
- import { AutoComplete, Button, Flex, Input } from "antd";
33
- import { useT } from "@stapel/core";
42
+ import { AutoComplete, Button, Flex, Input, Typography } from "antd";
43
+ import { useT, useTPlural } from "@stapel/core";
34
44
  import { SkinTheme } from "@stapel/tokens-antd/skin";
35
45
  import { spacing } from "@stapel/tokens";
36
46
  import { useSearchBox } from "../headless/useSearchBox.js";
37
47
  import { SEARCH_I18N_KEYS } from "../i18n/keys.js";
48
+ /**
49
+ * The separator between the ancestor names of a category row.
50
+ *
51
+ * The same one the vocabulary and hierarchical formatters use fleet-wide, so a
52
+ * path reads identically in the box, on a card and in the composer.
53
+ */
54
+ const PATH_SEPARATOR = " / ";
55
+ /** One destination row: the ancestor path, and how many live listings are
56
+ * behind it. */
57
+ function CategoryRow(props) {
58
+ const tPlural = useTPlural();
59
+ const { category } = props;
60
+ return (_jsxs(Flex, { justify: "space-between", align: "center", gap: spacing[2], "data-testid": `search-box-category-${category.category}`, children: [_jsx("span", { children: category.path.join(PATH_SEPARATOR) }), props.showCount && (_jsx(Typography.Text, { type: "secondary", children: tPlural(SEARCH_I18N_KEYS.boxCategoryCount, { count: category.count }) }))] }));
61
+ }
38
62
  export function SearchBox(props) {
39
63
  const t = useT();
40
64
  const { mode, placeholder, submitButton, autoFocus, ...boxOptions } = props;
41
65
  const box = useSearchBox(boxOptions);
42
66
  const [open, setOpen] = useState(false);
43
- const options = box.suggestions.map((value) => ({ value }));
67
+ const categoryOptions = box.categories.map((category) => ({
68
+ // The server's own string, verbatim — it is unique per row and it is
69
+ // exactly what the SERP's `category` parameter takes.
70
+ value: category.category,
71
+ label: (_jsx(CategoryRow, { category: category, showCount: !box.categoryCountsUnknown })),
72
+ stapelCategory: category,
73
+ }));
74
+ const termOptions = box.suggestions.map((value) => ({ value }));
75
+ /*
76
+ * Destinations FIRST, then terms.
77
+ *
78
+ * A classified's box is a navigation control before it is a text filter:
79
+ * the person who typed a section's name wants the section, and the titles
80
+ * that happen to contain the word are the fallback, not the answer. The
81
+ * server ranks the destinations by live listing count and this list keeps
82
+ * that order.
83
+ *
84
+ * The group is absent — not empty — when the server had no category
85
+ * provider, which falls out of `box.categories` being empty: a heading over
86
+ * nothing would be the box claiming the catalogue has no such section, a
87
+ * claim the answer never made. See `useSearchBox`.
88
+ */
89
+ const options = categoryOptions.length > 0
90
+ ? [
91
+ {
92
+ label: (_jsx("span", { "data-testid": "search-box-categories-heading", children: t(SEARCH_I18N_KEYS.boxCategories) })),
93
+ options: categoryOptions,
94
+ },
95
+ ...(termOptions.length > 0
96
+ ? [
97
+ {
98
+ label: (_jsx("span", { "data-testid": "search-box-terms-heading", children: t(SEARCH_I18N_KEYS.boxSuggestions) })),
99
+ options: termOptions,
100
+ },
101
+ ]
102
+ : []),
103
+ ]
104
+ : termOptions;
105
+ const hasOptions = categoryOptions.length > 0 || termOptions.length > 0;
44
106
  return (_jsx(SkinTheme, { surface: "bare", ...(mode !== undefined ? { mode } : {}), "data-testid": "search-box", children: _jsxs(Flex, { gap: spacing[2], align: "center", wrap: false, children: [_jsx(AutoComplete, { value: box.draft, options: options,
45
107
  // Shut whenever there is nothing to say — see the header. The
46
108
  // open state is the skin's, not antd's: the prop that reports the
47
109
  // menu opening was renamed between antd 5 and 6 and this package
48
110
  // supports both, so nothing here asks antd when to open.
49
- open: open && options.length > 0, style: { flex: 1, minWidth: 0 }, onSelect: (value) => {
111
+ open: open && hasOptions, style: { flex: 1, minWidth: 0 }, onSelect: (value, option) => {
50
112
  setOpen(false);
113
+ // A destination navigates; a term searches. The kind is read off
114
+ // the option OBJECT, never sniffed out of the text — see
115
+ // `BoxOption`.
116
+ const category = "stapelCategory" in option ? option.stapelCategory : undefined;
117
+ if (category !== undefined) {
118
+ box.chooseCategory(category);
119
+ return;
120
+ }
51
121
  box.submit(value);
52
122
  }, onChange: (value) => {
53
123
  setOpen(true);
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.js","sourceRoot":"","sources":["../../src/default/SearchBox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchBox.js","sourceRoot":"","sources":["../../src/default/SearchBox.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { ReactElement, ReactNode } from "react";
2
2
  import type { FeatureDef } from "@stapel/attributes-react";
3
3
  import type { SearchParamsAdapter } from "../headless/SearchStateProvider.js";
4
+ import type { FacetLabelResolver } from "../headless/useFacetLabels.js";
4
5
  import type { ParseSearchStateOptions } from "../state/urlState.js";
5
6
  import type { SearchGeo } from "../api/types.js";
6
7
  import type { CategoryFilterSlotProps, GeoFilterSlotProps } from "./FacetPanelPane.js";
@@ -29,13 +30,40 @@ export interface SearchPageProps extends ThemeModeProp, ParseSearchStateOptions
29
30
  readonly renderCard?: SearchCardRenderer;
30
31
  readonly categoryFeatures?: readonly FeatureDef[];
31
32
  readonly locale?: string;
33
+ /**
34
+ * Name the facet values neither the answer nor the category schema names —
35
+ * see {@link FacetLabelResolver}.
36
+ *
37
+ * Set once here and it reaches BOTH filter surfaces, the desktop panel and
38
+ * the phone chip row, the same way `geoLabel` does. It is the seam a
39
+ * `ref_select` facet needs: its config carries a pointer to a vocabulary and
40
+ * no option table, the vocabulary is a service this pair does not talk to,
41
+ * and a server older than stapel-search 0.4.0 sends no `facet_labels` to
42
+ * cover for it — so without this the chips print `apple` and `128-gb`.
43
+ */
44
+ readonly resolveFacetLabels?: FacetLabelResolver;
32
45
  /** Render the query box at the top. `false` for a container whose HEADER
33
46
  * already mounts `<SearchBox>` — one box per screen, not two. */
34
47
  readonly searchBox?: boolean;
35
48
  /** BCP-47 tags this deployment indexes, for the language filter. */
36
49
  readonly languages?: readonly string[];
37
- /** The catalogue picker slot — see {@link FacetPanelPaneProps}. */
50
+ /**
51
+ * The catalogue picker slot — see {@link FacetPanelPaneProps}.
52
+ *
53
+ * It reaches TWO surfaces: the filter panel's category row, and — on the
54
+ * phone — the LEADING chip of the filter row, which opens the same control
55
+ * in the same kind of sheet as every other chip. The owner's navigation
56
+ * model chooses levels 1-2 from tiles and everything deeper as a
57
+ * characteristic, and on a result list that is what a chip is.
58
+ */
38
59
  readonly renderCategoryFilter?: (slot: CategoryFilterSlotProps) => ReactNode;
60
+ /**
61
+ * What the current category is CALLED — the chip's own text. The pair holds
62
+ * a path of slugs and no way to turn one into a catalogue name; absent, the
63
+ * chip states the path's last segment. See
64
+ * {@link FilterChipsProps.categoryLabel}.
65
+ */
66
+ readonly categoryLabel?: ReactNode;
39
67
  /** The location control slot (`geo-react`). */
40
68
  readonly renderGeoFilter?: (slot: GeoFilterSlotProps) => ReactNode;
41
69
  /**