@stapel/search-react 0.31.0 → 0.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/dist/api/generated/schema.d.ts +69 -6
  3. package/dist/api/generated/schema.d.ts.map +1 -1
  4. package/dist/api/types.d.ts +118 -33
  5. package/dist/api/types.d.ts.map +1 -1
  6. package/dist/api/types.js +13 -0
  7. package/dist/api/types.js.map +1 -1
  8. package/dist/default/FacetGroupControl.d.ts +18 -1
  9. package/dist/default/FacetGroupControl.d.ts.map +1 -1
  10. package/dist/default/FacetGroupControl.js +25 -0
  11. package/dist/default/FacetGroupControl.js.map +1 -1
  12. package/dist/default/FacetPanelPane.d.ts +27 -0
  13. package/dist/default/FacetPanelPane.d.ts.map +1 -1
  14. package/dist/default/FacetPanelPane.js +100 -19
  15. package/dist/default/FacetPanelPane.js.map +1 -1
  16. package/dist/default/FilterChips.d.ts +30 -0
  17. package/dist/default/FilterChips.d.ts.map +1 -1
  18. package/dist/default/FilterChips.js +35 -2
  19. package/dist/default/FilterChips.js.map +1 -1
  20. package/dist/default/PopularValues.d.ts +49 -2
  21. package/dist/default/PopularValues.d.ts.map +1 -1
  22. package/dist/default/PopularValues.js +57 -3
  23. package/dist/default/PopularValues.js.map +1 -1
  24. package/dist/default/RangeFilterRow.d.ts +25 -0
  25. package/dist/default/RangeFilterRow.d.ts.map +1 -1
  26. package/dist/default/RangeFilterRow.js +77 -5
  27. package/dist/default/RangeFilterRow.js.map +1 -1
  28. package/dist/default/SearchPage.d.ts +28 -1
  29. package/dist/default/SearchPage.d.ts.map +1 -1
  30. package/dist/default/SearchPage.js +13 -6
  31. package/dist/default/SearchPage.js.map +1 -1
  32. package/dist/default/SearchResultsPane.d.ts +10 -0
  33. package/dist/default/SearchResultsPane.d.ts.map +1 -1
  34. package/dist/default/SearchResultsPane.js +1 -1
  35. package/dist/default/SearchResultsPane.js.map +1 -1
  36. package/dist/default/SortSelect.d.ts +10 -10
  37. package/dist/default/SortSelect.d.ts.map +1 -1
  38. package/dist/default/SortSelect.js +19 -8
  39. package/dist/default/SortSelect.js.map +1 -1
  40. package/dist/default/index.d.ts +4 -4
  41. package/dist/default/index.d.ts.map +1 -1
  42. package/dist/default/index.js +3 -3
  43. package/dist/default/index.js.map +1 -1
  44. package/dist/headless/FacetPanel.d.ts +7 -0
  45. package/dist/headless/FacetPanel.d.ts.map +1 -1
  46. package/dist/headless/FacetPanel.js +2 -1
  47. package/dist/headless/FacetPanel.js.map +1 -1
  48. package/dist/headless/SearchStateProvider.d.ts +15 -0
  49. package/dist/headless/SearchStateProvider.d.ts.map +1 -1
  50. package/dist/headless/SearchStateProvider.js +0 -0
  51. package/dist/headless/SearchStateProvider.js.map +1 -1
  52. package/dist/index.d.ts +4 -2
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/state/facets.d.ts +13 -0
  57. package/dist/state/facets.d.ts.map +1 -1
  58. package/dist/state/facets.js +13 -0
  59. package/dist/state/facets.js.map +1 -1
  60. package/dist/state/panel.d.ts +79 -0
  61. package/dist/state/panel.d.ts.map +1 -0
  62. package/dist/state/panel.js +75 -0
  63. package/dist/state/panel.js.map +1 -0
  64. package/dist/state/ranges.d.ts +88 -3
  65. package/dist/state/ranges.d.ts.map +1 -1
  66. package/dist/state/ranges.js +96 -20
  67. package/dist/state/ranges.js.map +1 -1
  68. package/llms.txt +4 -4
  69. package/manifest.json +12 -2
  70. package/nav-manifest.json +1 -1
  71. package/package.json +9 -9
  72. package/src/analytics/generated/events.json +1 -1
  73. package/src/api/generated/schema.ts +69 -6
  74. package/src/api/types.ts +132 -32
  75. package/src/default/FacetGroupControl.tsx +29 -1
  76. package/src/default/FacetPanelPane.tsx +257 -124
  77. package/src/default/FilterChips.tsx +51 -1
  78. package/src/default/PopularValues.tsx +88 -4
  79. package/src/default/RangeFilterRow.tsx +117 -20
  80. package/src/default/SearchPage.tsx +46 -4
  81. package/src/default/SearchResultsPane.tsx +13 -0
  82. package/src/default/SortSelect.tsx +29 -19
  83. package/src/default/index.ts +8 -1
  84. package/src/headless/FacetPanel.tsx +17 -2
  85. package/src/headless/SearchStateProvider.tsx +23 -0
  86. package/src/index.ts +8 -0
  87. package/src/state/facets.ts +27 -0
  88. package/src/state/panel.ts +138 -0
  89. package/src/state/ranges.ts +209 -47
package/CHANGELOG.md CHANGED
@@ -1,5 +1,108 @@
1
1
  # @stapel/search-react
2
2
 
3
+ ## 0.32.1
4
+
5
+ ### Patch Changes
6
+
7
+ - c792fd1: The filter rail draws ONE control per axis.
8
+
9
+ A slug can be a choice and a measurement at once — an imported `year` is a
10
+ vocabulary in the catalogue and a measured range in the plan — and the panel
11
+ drew both: a checkbox group of years and, further down the same rail, a
12
+ from/to picker over the same field. Two controls writing one filter, neither
13
+ showing what the other did.
14
+
15
+ `buildRangeGroups` now takes `countedFacets` (the answer's own counted slugs,
16
+ `FacetPanelBag.counted`) and drops a range row for an axis that already has a
17
+ bucket list. The counted half wins because it is the one with evidence in it:
18
+ a number per value, not two ends. `<FacetPanelPane>` and `<FilterChips>` pass
19
+ it, so the desktop rail and the phone chip row cannot disagree; both take
20
+ `bothAxes` for a surface that genuinely wants the two. A CORE axis (price) is
21
+ exempt — the server reserves that slug — and a range the URL constrains keeps
22
+ its control whatever else is on the rail.
23
+
24
+ ## 0.32.0
25
+
26
+ ### Minor Changes
27
+
28
+ - a24aa38: One panel, and every axis in it has a name — regenerated against stapel-search 0.16.0.
29
+
30
+ **The contract.** `facet_meta.ranges` is no longer two numbers per slug: each
31
+ entry is a `RangeAxis` carrying `label` + `label_translatable` (resolved from
32
+ the same feature definition a group heading comes from, or this library's own
33
+ key for a core axis), an optional `unit` (the definition's `postfix`, or a
34
+ convertible family's BASE unit — the one a client cannot derive), and `order`.
35
+ `facet_meta.withheld[]` is a `WithheldAxis`: every row now names `axis`
36
+ (`group`/`range`) and `reason` (`coverage`/`unlabelled`). `facet_labels[<slug>]`
37
+ gains `order` on the SAME scale, which is what makes a single panel order
38
+ possible at all.
39
+
40
+ - `buildRangeGroups` captions a row from the answer first, the schema second,
41
+ and **never from the slug**: an axis nobody named is dropped rather than
42
+ drawn as `doors` or `kilometrage` over a from/to picker — the exact chip row
43
+ a live board shipped. The one exemption is a slug the URL constrains, which
44
+ always keeps the control that removes it. It also takes `withheld` and does
45
+ not resurrect from the category schema an axis the answer declined to offer.
46
+ `RangeGroup` gains `order` and `named`.
47
+ - **Groups and ranges are drawn as one sequence** (`orderPanelItems`, new).
48
+ Pinned slugs first — `pinnedFacets` now reaches both halves, so a host's
49
+ `partition → make → price → year` holds — then everything the plan numbered,
50
+ then the band order the rail always had (core ranges, groups, measurements)
51
+ for anything nobody numbered. `FacetGroup` gains `order`.
52
+ - **An empty facet group draws nothing**, not a heading over an empty box
53
+ (`facetGroupIsEmptyHeading`, new). A dictionary axis is the exemption: its
54
+ control is a field over a vocabulary the answer never enumerated.
55
+ - **One «Apply» per panel**, not one per row. `RangeFilterRow` takes `onDraft`
56
+ and `onCommit` and reports its draft instead of owning a button; the panel
57
+ collects and commits them in ONE state change through the new
58
+ `SearchStateBag.setRanges` / `FacetPanelBag.setRanges` (`setRange` twice in a
59
+ tick applied the second axis and silently dropped the first).
60
+ - `<SearchPage categoryFilter={false}>` (and `<FacetPanelPane categoryFilter>`)
61
+ removes the «Category» pane entirely — no cascade, no placeholder, and no
62
+ raw-id fallback printing `32/149/163` at a shopper on a page whose category
63
+ the reader walked a tree to reach.
64
+ - `<SearchPage resultsLead>` / `<SearchResultsPane lead>`: a slot inside the
65
+ RESULTS column, above the toolbar. `resultsHeader` spans both columns and
66
+ put a category's own words over the filter rail too.
67
+ - `<PopularValues columns="responsive">`: a CSS container query climbs a
68
+ 1/2/3/4 column ladder by the width of the BLOCK rather than of the window —
69
+ the block sits in the results column, i.e. the window minus a 280px rail.
70
+ - `<SortSelect>` annotates a blocked option **at every width**. The reason was
71
+ on the row in the compact arm only; elsewhere it was a line beside the closed
72
+ control, which the open dropdown covers.
73
+ - **The loading arm covers the whole pane.** The numeric band and its
74
+ reservation were siblings of it, rendered at positions nothing had decided
75
+ and then travelled to their real places when the plan landed — 0.34 CLS on a
76
+ live host. Nothing renders after the skeleton until there is an order to
77
+ render in.
78
+
79
+ ### Patch Changes
80
+
81
+ - 11ae585: The chip row holds its own box open, so the results do not drop 68px when it
82
+ settles.
83
+
84
+ Measured on the host's phone SERP (`after-avtomobili-390-light`, 2026-09-05):
85
+ an intermittent 0.045 CLS on a leaf. `<FilterChips>` rendered nothing until the
86
+ answer landed — which is the right thing to render for a search that will have
87
+ no chips — and then appeared and pushed the first card down the page under the
88
+ reader's eye.
89
+
90
+ It now reserves the row's block-size while the answer is IN FLIGHT **and** a row
91
+ is predictable: the surface was handed a category schema, or the address names a
92
+ category. Both mean the plan will come back with axes. A bare text query with no
93
+ category reserves nothing, because for that search the honest answer really is
94
+ "no row" and a box that opened and closed would be the same shift pointing the
95
+ other way. A settled answer with no chips renders nothing, exactly as before.
96
+
97
+ The reservation is `aria-hidden` scaffolding — new `CHIP_ROW_MIN_HEIGHT`
98
+ (exported), the 44px phone control floor the chips are sized to plus the row's
99
+ two bands of focus-ring room — and the real row takes the box over rather than
100
+ stacking on top of it.
101
+
102
+ Also regenerates the demo manifest for the `search.page → catalogue-leaf` and
103
+ `search.popular-values → responsive` variants that shipped with the one-panel
104
+ work.
105
+
3
106
  ## 0.31.0
4
107
 
5
108
  ### Minor Changes
@@ -132,6 +132,12 @@ export interface paths {
132
132
  export type webhooks = Record<string, never>;
133
133
  export interface components {
134
134
  schemas: {
135
+ /**
136
+ * @description * `group` - group
137
+ * * `range` - range
138
+ * @enum {string}
139
+ */
140
+ AxisEnum: "group" | "range";
135
141
  /** @description One partition of the answer — a heading, never a filter over it. */
136
142
  BandSummary: {
137
143
  id: components["schemas"]["IdEnum"];
@@ -230,6 +236,8 @@ export interface components {
230
236
  vocabulary: string | null;
231
237
  /** @description The vocabulary level `vocabulary` resolves against. Present only alongside a non-null `vocabulary`. */
232
238
  level?: string;
239
+ /** @description Where this group sits in ONE panel, numbered together with the numeric axes in `facet_meta.ranges` — draw both halves sorted by it and price and year land where the category's schema puts them, among the makes and models rather than below all of them. Core ranges take the first positions (they exist for every document in every category); the rest follow the plan's own order, which for a category's own schema is mandatory first and then as authored. `null` when the plan has no position for the group, which a client sorts last. */
240
+ order: number | null;
233
241
  };
234
242
  FacetMeta: {
235
243
  /** @description True when counts came from a sample because the candidate set exceeded FACET_CANDIDATE_CAP. */
@@ -243,16 +251,22 @@ export interface components {
243
251
  dropped_filters: string[];
244
252
  /** @description Range slugs that address a core document column rather than an attribute (`r.price`). Offer them as filters unconditionally: they exist for every document in every category, which is why they are not in the category's own plan. */
245
253
  core_ranges: string[];
246
- /** @description `{slug: {min, max}}` — the low and high bound of every numeric axis that HAS a number on this page, core columns (`price`) and attributes (`year`, `mileage`, `engine_volume`) alike. What a from/to picker is drawn from: a range axis has no values to enumerate, so `facets` says nothing about it and a client without these two numbers either draws no picker or draws one over a guess. Measured with the range filters REMOVED, so the ends are the domain the picker can be widened back to and not the ends of its own selection. An axis absent here has no numbers behind it in this candidate set — which is a different fact from a bound of zero. Not capped by MAX_FACET_FIELDS: the budget governs counting, and every bound is one aggregate. Empty, with `facet_ranges` in `degraded[]`, on an engine that does not implement the optional `ranges` verb. */
254
+ /** @description `{slug: {min, max, label, label_translatable, unit?, order}}` — every numeric axis that HAS a number on this page, core columns (`price`) and attributes (`year`, `mileage`, `engine_volume`) alike, with everything needed to DRAW it. What a from/to picker is made of: a range axis has no values to enumerate, so `facets` says nothing about it and a client without these two numbers either draws no picker or draws one over a guess. Measured with the range filters REMOVED, so the ends are the domain the picker can be widened back to and not the ends of its own selection. An axis absent here either has no numbers behind it in this candidate set — a different fact from a bound of zero — or was WITHHELD, and then it is named in `withheld` with the reason. Capped by MAX_FACET_FIELDS since 0.16.0: the budget is how wide a panel may be, and a from/to picker is as wide as a bucket list. Empty, with `facet_ranges` in `degraded[]`, on an engine that does not implement the optional `ranges` verb. */
247
255
  ranges: {
248
- [key: string]: unknown;
256
+ [key: string]: components["schemas"]["RangeAxis"];
249
257
  };
250
258
  /** @description Where the plan came from. `category` — the queried category's own authored schema. `evidence` — the categories the CANDIDATE SET actually contains, used when that schema did not fill MAX_FACET_FIELDS, which is every branch category and every text query (`categories.features` resolves own + ANCESTOR-inherited features, so a branch owns no axes; its leaves do). */
251
259
  plan: string;
252
- /** @description `{slug, coverage, candidates}` for groups that were counted and then withheld because they describe too little of the result set (FACET_MIN_COVERAGE). Present so a panel can say «3 filters apply to too few of these» instead of «no filters» — the second is false whenever this list is not empty. Only slugs the evidence plan borrowed from another category are ever here, and never one the reader has already filtered on. */
253
- withheld: {
254
- [key: string]: unknown;
255
- }[];
260
+ /**
261
+ * @description Axes this answer planned and then did not offer, each naming which half of the panel it is about (`axis`) and why (`reason`). Present so a panel can say «3 filters apply to too few of these» instead of «no filters» — the second is false whenever this list is not empty.
262
+ *
263
+ * `coverage` — counted, then withheld for describing too little of the result set (FACET_MIN_COVERAGE), with the two numbers. For a GROUP only slugs the evidence plan borrowed from another category are ever measured, because a group the queried category authored answers with its zeros on purpose; for a RANGE every non-core axis is, because a range has no zeros to answer with and a slider over three of fifty-two documents narrows nothing whoever authored it.
264
+ *
265
+ * `unlabelled` (0.16.0, ranges) — no caption could be resolved from any source, so a client could only print the storage slug above the picker. `doors` and `kilometrage` in a chip row is an axis that was there and unreadable.
266
+ *
267
+ * An axis the reader has already filtered on is never withheld for any reason: that would leave the filter applied with no control to undo it.
268
+ */
269
+ withheld: components["schemas"]["WithheldAxis"][];
256
270
  /** @description `{category, count}` — the categories this answer's candidate set is made of, busiest first, `category` being the same slash-joined id path the `category` filter takes. The evidence the plan was drawn from, and what a panel needs to offer the CATEGORY itself as the first filter on a text search. Empty when the plan is the queried category's own. */
257
271
  categories: {
258
272
  [key: string]: unknown;
@@ -304,6 +318,27 @@ export interface components {
304
318
  residual: string;
305
319
  degraded: string[];
306
320
  };
321
+ /** @description One numeric axis a from/to picker is drawn from, with its caption. */
322
+ RangeAxis: {
323
+ /**
324
+ * Format: double
325
+ * @description The low end of the axis over this candidate set, measured with the range filters removed. A number, not a string: a slider end is arithmetic the client does immediately. Integral values render integral, so a year is `2015` and an engine volume is `1.4`.
326
+ */
327
+ min: number;
328
+ /**
329
+ * Format: double
330
+ * @description The high end, same rule as `min`.
331
+ */
332
+ max: number;
333
+ /** @description What to write above the picker. Resolved from the SAME source a facet group's heading comes from — the category's own feature definition — because a group and a range are two ways of narrowing one authored feature. A core range (`price`) has no definition to read and takes this library's own key. Never null: an axis with no resolvable caption is withheld instead (`withheld`, reason `unlabelled`), because a chip row printing `doors` and `kilometrage` at a reader is an axis that was there and unreadable. */
334
+ label: string;
335
+ /** @description True when `label` is a translation KEY, false when it is literal text the catalogue wrote. The reader cannot tell by looking. */
336
+ label_translatable: boolean;
337
+ /** @description What the numbers are measured in — `postfix` off the feature definition, or the family's BASE unit for a `convertible_unit` (the stored value is in the base unit, so naming the input unit would label metres as kilometres). A translation key or literal text, exactly as the catalogue wrote it; this module never translates. ABSENT, not empty, for an axis whose definition names no unit — `price` among them, because a price's unit is the corpus's base currency and a property of each document rather than of the axis. */
338
+ unit?: string;
339
+ /** @description Where this axis sits in ONE panel, numbered together with the groups in `facet_labels`. Same field, same sequence: draw both halves sorted by it and the picker lands where the schema put it. */
340
+ order: number | null;
341
+ };
307
342
  /** @description The P2B Art. 5 disclosure, generated from the scorer registry. */
308
343
  RankingResponse: {
309
344
  doc_type: string;
@@ -311,6 +346,12 @@ export interface components {
311
346
  scorers: components["schemas"]["Scorer"][];
312
347
  notes: string[];
313
348
  };
349
+ /**
350
+ * @description * `coverage` - coverage
351
+ * * `unlabelled` - unlabelled
352
+ * @enum {string}
353
+ */
354
+ ReasonEnum: "coverage" | "unlabelled";
314
355
  ReindexRequest: {
315
356
  doc_type: string;
316
357
  /** @description Re-pull exactly these keys; omit to rebuild the whole type. */
@@ -415,6 +456,28 @@ export interface components {
415
456
  degraded: string[];
416
457
  backend: string;
417
458
  };
459
+ /** @description One axis that was planned and then not offered, and why. */
460
+ WithheldAxis: {
461
+ slug: string;
462
+ /**
463
+ * @description Which half of the panel this row is about — the bucket list or the from/to picker. One slug can be both (an imported `year` is a choice AND a measurement) and the two are decided by different quantities over the same page, so a withheld `group` row does not mean the slider is gone, or the other way round.
464
+ *
465
+ * * `group` - group
466
+ * * `range` - range
467
+ */
468
+ axis: components["schemas"]["AxisEnum"];
469
+ /**
470
+ * @description `coverage` — it describes too little of this result set (FACET_MIN_COVERAGE). `unlabelled` — no caption could be resolved, so a client could only print the storage slug at a reader. A closed set: an unknown value means the client is older than the server.
471
+ *
472
+ * * `coverage` - coverage
473
+ * * `unlabelled` - unlabelled
474
+ */
475
+ reason: components["schemas"]["ReasonEnum"];
476
+ /** @description How many documents the axis describes. Present on `coverage` only — it is the measurement that decided. */
477
+ coverage?: number;
478
+ /** @description What it was a share OF. Present on `coverage` only. */
479
+ candidates?: number;
480
+ };
418
481
  };
419
482
  responses: never;
420
483
  parameters: never;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/api/generated/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/api/generated/schema.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,24 @@ export type Schemas = components["schemas"];
29
29
  * optional-and-nullable — a type must not promise a field a server the pair
30
30
  * says it supports does not send.
31
31
  */
32
- export type FacetLabels = Omit<Schemas["FacetLabels"], "label" | "label_translatable" | "url_key" | "vocabulary"> & {
32
+ export type FacetLabels = Omit<Schemas["FacetLabels"], "label" | "label_translatable" | "url_key" | "vocabulary" | "order"> & {
33
+ /**
34
+ * Where this group sits in ONE panel, numbered together with the numeric
35
+ * axes of `facet_meta.ranges` (stapel-search 0.16.0+).
36
+ *
37
+ * The whole point of the field is that it is the SAME sequence: a group and
38
+ * a range are two ways of narrowing one authored feature, and sorting both
39
+ * halves by this key puts "Price" and "Year" where the category's schema put
40
+ * them instead of stacking every choice above every measurement. `null` is
41
+ * the server saying the plan has no position for this group, which sorts
42
+ * last.
43
+ *
44
+ * WHY IT IS NOT THE GENERATED SHAPE: 0.16.0 declares it REQUIRED, and a
45
+ * fixture captured from a 0.15 answer — or a group a host builds by hand —
46
+ * carries no `order` at all. Optional here, and the panel reads absence and
47
+ * `null` the same way: no position, sort last.
48
+ */
49
+ readonly order?: number | null;
33
50
  readonly label?: string | null;
34
51
  /**
35
52
  * Whether {@link label} is a translation KEY rather than a caption, the way
@@ -98,19 +115,51 @@ export type SearchResponse = Omit<Schemas["SearchResponse"], "facet_meta" | "fac
98
115
  * card slot's contract carries it and why the default skin renders it. */
99
116
  export type SearchItem = Schemas["SearchItem"];
100
117
  /**
101
- * One group the counter COUNTED and then held back, because its buckets
102
- * describe too little of the result set (`FACET_MIN_COVERAGE`).
118
+ * One axis the server PLANNED and then did not offer, and why
119
+ * (stapel-search 0.16.0's `WithheldAxis`).
103
120
  *
104
121
  * The existence of this list is what makes "this search offers no filters"
105
- * a false sentence whenever it is not empty (D175).
122
+ * a false sentence whenever it is not empty (D175). Two things 0.16.0 added,
123
+ * and both matter to a panel:
124
+ *
125
+ * - `axis` says WHICH HALF the row is about. One slug can be a choice and a
126
+ * measurement at once — an imported `year` is both — and the two are
127
+ * decided by different quantities over the same page, so a withheld
128
+ * `group` row does not mean the slider is gone. A surface that counts the
129
+ * list filters by `axis`; a surface that hides an axis reads only the rows
130
+ * for its own half.
131
+ * - `reason` is a CLOSED set. `coverage` is the old case (it describes too
132
+ * little of the result set, and then the two numbers are present).
133
+ * `unlabelled` is the new one: no caption could be resolved anywhere, so
134
+ * the only thing a client could draw above the picker is the storage slug
135
+ * — `doors`, `kilometrage`, printed at a buyer. That axis is withheld
136
+ * rather than shipped bare, and this row is how the panel knows it existed.
137
+ *
138
+ * `coverage` and `candidates` are therefore OPTIONAL: they are the
139
+ * measurement that decided a `coverage` row and mean nothing on an
140
+ * `unlabelled` one.
106
141
  */
107
- export interface FacetWithheldGroup {
108
- readonly slug: string;
109
- /** Sum of that group's bucket counts how much of the set it describes. */
110
- readonly coverage: number;
111
- /** Size of the candidate set `coverage` is a fraction of. */
112
- readonly candidates: number;
113
- }
142
+ export type FacetWithheldAxis = Schemas["WithheldAxis"];
143
+ /**
144
+ * @deprecated The 0.15-era name, kept for one minor so a host that imported
145
+ * it still compiles. It now denotes {@link FacetWithheldAxis}, which is the
146
+ * same row plus `axis` and `reason`.
147
+ */
148
+ export type FacetWithheldGroup = FacetWithheldAxis;
149
+ /** Which half of the panel a {@link FacetWithheldAxis} row is about. */
150
+ export type FacetAxisKind = Schemas["AxisEnum"];
151
+ /** Why an axis was withheld — a closed set; an unknown value means the client
152
+ * is older than the server. */
153
+ export type FacetWithheldReason = Schemas["ReasonEnum"];
154
+ /**
155
+ * The slugs one half of the panel must NOT draw, out of the answer's
156
+ * `withheld` list.
157
+ *
158
+ * Filtering by `axis` is the whole reason the field exists: a `year` withheld
159
+ * as a GROUP is still a slider, and a `year` withheld as a RANGE is still a
160
+ * bucket list. Reading the list without the discriminator hides both.
161
+ */
162
+ export declare function withheldSlugs(withheld: readonly FacetWithheldAxis[] | undefined, axis: FacetAxisKind): readonly string[];
114
163
  /** One category the candidate set is made of. */
115
164
  export interface FacetCategoryCount {
116
165
  /** The slash-joined id path (`"32/149/163"`) — the SAME string the
@@ -120,39 +169,75 @@ export interface FacetCategoryCount {
120
169
  readonly count: number;
121
170
  }
122
171
  /**
123
- * The two ENDS of one numeric axis, measured over this answer's candidate set
124
- * with the range filters removed (stapel-search 0.14.7+).
172
+ * One numeric axis a from/to picker is drawn from its two ENDS, measured
173
+ * over this answer's candidate set with the range filters removed, AND its
174
+ * caption (stapel-search 0.16.0's `RangeAxis`).
175
+ *
176
+ * `min`/`max` are numbers, not strings: a slider end is arithmetic a client
177
+ * does immediately, and a price re-parsed from a formatted string is a price
178
+ * that has already been rounded once.
179
+ *
180
+ * The other three are 0.16.0's, and they are why a client stopped needing the
181
+ * category schema to write a heading:
182
+ *
183
+ * - `label` comes from the same source a facet group's heading does — the
184
+ * category's own `FeatureDef.name`, or this library's own key for a core
185
+ * axis — and is never null, because an axis nobody could name is WITHHELD
186
+ * (`facet_meta.withheld`, reason `unlabelled`) rather than shipped as a
187
+ * bare `doors`. `label_translatable` says whether it is a key or literal
188
+ * text the catalogue wrote, exactly as it does for a group.
189
+ * - `unit` is the definition's `postfix`, or the family's BASE unit for a
190
+ * `convertible_unit` — the stored value is in the base unit, so naming the
191
+ * input unit would label metres as kilometres. ABSENT, never `""`, for an
192
+ * axis whose definition names none (`price` among them: a price's unit is
193
+ * the corpus's currency, a property of each document rather than of the
194
+ * axis).
195
+ * - `order` numbers this axis in the SAME sequence as `facet_labels`, so a
196
+ * panel that sorts both halves by it lands the picker where the category
197
+ * authored it.
125
198
  *
126
- * Numbers, not strings: a slider end is arithmetic a client does immediately,
127
- * and a price re-parsed from a formatted string is a price that has already
128
- * been rounded once.
199
+ * `label`, `label_translatable` and `order` are OPTIONAL here while the
200
+ * generated shape declares them required: a fixture captured off a 0.15
201
+ * server, and a map a host or a demo builds by hand, carry two numbers and
202
+ * nothing else. A type that promised the caption would compile while reading
203
+ * `undefined` from a field the compiler swore was there — and the label is
204
+ * exactly the field a panel must not guess at.
129
205
  */
130
- export interface FacetRangeBounds {
131
- readonly min: number;
132
- readonly max: number;
133
- }
206
+ export type FacetRangeAxis = Omit<Schemas["RangeAxis"], "label" | "label_translatable" | "order"> & {
207
+ readonly label?: string;
208
+ readonly label_translatable?: boolean;
209
+ readonly order?: number | null;
210
+ };
211
+ /**
212
+ * @deprecated The 0.14-era name for the two bounds alone. It now denotes
213
+ * {@link FacetRangeAxis}, which is the same two numbers plus the caption.
214
+ */
215
+ export type FacetRangeBounds = FacetRangeAxis;
134
216
  /**
135
- * `facet_meta.ranges` — `{slug: {min, max}}` for every axis this answer has
217
+ * `facet_meta.ranges` — `{slug: RangeAxis}` for every axis this answer has
136
218
  * numbers behind, core columns and attribute axes in ONE report because one
137
219
  * rail draws both.
138
220
  *
139
- * An axis ABSENT from the map has no numbers behind it on this page, which is
140
- * a different fact from a bound of zero. The map itself absent is a different
141
- * fact again: the server predates 0.14.7, or its engine has no `ranges` verb
142
- * and said so as `facet_ranges` in `degraded[]`. The panel tells the
143
- * three apart see `state/ranges.ts`.
221
+ * An axis ABSENT from the map either has no numbers behind it on this page
222
+ * a different fact from a bound of zero or was WITHHELD, and then it is
223
+ * named in `facet_meta.withheld` with the reason. The map itself absent is a
224
+ * different fact again: the server predates 0.14.7, or its engine has no
225
+ * `ranges` verb and said so as `facet_ranges` in `degraded[]`. The panel tells
226
+ * them apart — see `state/ranges.ts`.
144
227
  */
145
- export type FacetRangesMap = Readonly<Record<string, FacetRangeBounds>>;
228
+ export type FacetRangesMap = Readonly<Record<string, FacetRangeAxis>>;
146
229
  /**
147
230
  * The honesty block beside the counts: `approximate`, `candidates`,
148
231
  * `counted`, `skipped`, and (stapel-search 0.12.0+) where the facet plan came
149
232
  * from. Rendered, never swallowed (spec §4.2).
150
233
  *
151
- * WHAT THE GENERATOR LOST: drf-spectacular describes `withheld` and
152
- * `categories` as bare `object` arrays, so the generated members are
153
- * `{[key: string]: unknown}[]` the two fields a panel has to read
154
- * field-by-field are the two it cannot. Both are corrected here to the
155
- * documented row shapes.
234
+ * WHAT THE GENERATOR LOST: drf-spectacular describes `categories` as a bare
235
+ * `object` array, so the generated member is `{[key: string]: unknown}[]` — a
236
+ * field a panel has to read row by row arrives with no rows in the type. It is
237
+ * corrected here to the documented row shape. `withheld` was in the same state
238
+ * until stapel-search 0.16.0 gave it a named `WithheldAxis`; it is now
239
+ * generated, and is re-declared only to keep the `readonly` array this pair
240
+ * hands around.
156
241
  *
157
242
  * `ranges` (stapel-search 0.14.7) is now GENERATED, and is corrected here for
158
243
  * both of the reasons the two fields above are. The generator lost the row
@@ -165,7 +250,7 @@ export type FacetRangesMap = Readonly<Record<string, FacetRangeBounds>>;
165
250
  * reading `undefined` from a key the compiler swore was there.
166
251
  */
167
252
  export type FacetMeta = Omit<Schemas["FacetMeta"], "withheld" | "categories" | "ranges"> & {
168
- readonly withheld: readonly FacetWithheldGroup[];
253
+ readonly withheld: readonly FacetWithheldAxis[];
169
254
  readonly categories: readonly FacetCategoryCount[];
170
255
  readonly ranges?: FacetRangesMap;
171
256
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
package/dist/api/types.js CHANGED
@@ -1,3 +1,16 @@
1
+ /**
2
+ * The slugs one half of the panel must NOT draw, out of the answer's
3
+ * `withheld` list.
4
+ *
5
+ * Filtering by `axis` is the whole reason the field exists: a `year` withheld
6
+ * as a GROUP is still a slider, and a `year` withheld as a RANGE is still a
7
+ * bucket list. Reading the list without the discriminator hides both.
8
+ */
9
+ export function withheldSlugs(withheld, axis) {
10
+ return (withheld ?? [])
11
+ .filter((row) => row.axis === axis)
12
+ .map((row) => row.slug);
13
+ }
1
14
  /**
2
15
  * The suggest answer had NO category provider, so the categories half is
3
16
  * empty for a reason that is not "nothing matched".
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAoRA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiC;IAC5D,OAAO,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAC9C,CAAC;AAQD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,UAAU;CACX,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAyKA;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAkD,EAClD,IAAmB;IAEnB,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;SAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAgMD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiC;IAC5D,OAAO,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;AAC9C,CAAC;AAQD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,WAAW;IACX,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,UAAU;CACX,CAAC"}
@@ -133,5 +133,22 @@ export interface FacetGroupControlProps {
133
133
  */
134
134
  readonly onSetValues?: (slug: string, values: readonly string[]) => void;
135
135
  }
136
- export declare function FacetGroupControl(props: FacetGroupControlProps): ReactElement;
136
+ /**
137
+ * Is this group a HEADING WITH NOTHING UNDER IT?
138
+ *
139
+ * A bucket list with no buckets draws a caption, a chevron, and an empty box
140
+ * — a control that cannot narrow anything, taking a row of a 280px rail and a
141
+ * stop in a screen reader's tour to say so. On a live laptops leaf that was
142
+ * six of six groups (D249), and `facetGroupIsDrawable` now keeps most of them
143
+ * off the rail; this is the last mile, for the group that reaches a surface
144
+ * anyway — a host's own list, a fixture, a slug the URL constrains whose
145
+ * options the answer never enumerated.
146
+ *
147
+ * A DICTIONARY group is the exemption and the only one. Its control is a
148
+ * FIELD over a vocabulary the answer never enumerated, so it works with no
149
+ * buckets at all — that is the whole reason the shape exists, and a make
150
+ * picker on a leaf holding three cars must not vanish for having three.
151
+ */
152
+ export declare function facetGroupIsEmptyHeading(group: FacetGroup): boolean;
153
+ export declare function FacetGroupControl(props: FacetGroupControlProps): ReactElement | null;
137
154
  //# sourceMappingURL=FacetGroupControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FacetGroupControl.d.ts","sourceRoot":"","sources":["../../src/default/FacetGroupControl.tsx"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AASzD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIlE;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAA8B,CAAC;AAExE,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,YAAY,CAAC;AAEjB,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAiGD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAS5D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAQlE;AAWD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,eAAe,EAAE,CAkC9E;AA2XD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAwOnC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD;2EACuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;gFAC4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;uEACmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvD;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CAC1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAuI7E"}
1
+ {"version":3,"file":"FacetGroupControl.d.ts","sourceRoot":"","sources":["../../src/default/FacetGroupControl.tsx"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AASzD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIlE;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAA8B,CAAC;AAExE,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,QAAQ,GACR,UAAU,GACV,YAAY,CAAC;AAEjB,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAiGD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAS5D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAQlE;AAWD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,eAAe,EAAE,CAkC9E;AA2XD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAwOnC,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD;2EACuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;gFAC4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;uEACmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvD;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CAC1E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAEnE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,GAC5B,YAAY,GAAG,IAAI,CA6IrB"}
@@ -646,6 +646,25 @@ function DictionaryControl(props) {
646
646
  }
647
647
  return (_jsx(DictionaryBody, { group: props.group, onToggle: props.onToggle, visible: props.visible }));
648
648
  }
649
+ /**
650
+ * Is this group a HEADING WITH NOTHING UNDER IT?
651
+ *
652
+ * A bucket list with no buckets draws a caption, a chevron, and an empty box
653
+ * — a control that cannot narrow anything, taking a row of a 280px rail and a
654
+ * stop in a screen reader's tour to say so. On a live laptops leaf that was
655
+ * six of six groups (D249), and `facetGroupIsDrawable` now keeps most of them
656
+ * off the rail; this is the last mile, for the group that reaches a surface
657
+ * anyway — a host's own list, a fixture, a slug the URL constrains whose
658
+ * options the answer never enumerated.
659
+ *
660
+ * A DICTIONARY group is the exemption and the only one. Its control is a
661
+ * FIELD over a vocabulary the answer never enumerated, so it works with no
662
+ * buckets at all — that is the whole reason the shape exists, and a make
663
+ * picker on a leaf holding three cars must not vanish for having three.
664
+ */
665
+ export function facetGroupIsEmptyHeading(group) {
666
+ return group.options.length === 0 && facetGroupShape(group) !== "dictionary";
667
+ }
649
668
  export function FacetGroupControl(props) {
650
669
  const t = useT();
651
670
  const { group } = props;
@@ -655,6 +674,12 @@ export function FacetGroupControl(props) {
655
674
  const nodes = facetOptionNodes(group);
656
675
  const disclosure = props.collapsible === true && props.heading !== false;
657
676
  const open = !disclosure || openState;
677
+ // Nothing to narrow by: no heading either. See `facetGroupIsEmptyHeading`.
678
+ // AFTER the hooks, never before one — the group can gain buckets on the next
679
+ // answer, and a component that stopped calling `useState` on the way there
680
+ // would be a different component to React.
681
+ if (facetGroupIsEmptyHeading(group))
682
+ return null;
658
683
  const limit = props.visibleOptions === null
659
684
  ? null
660
685
  : (props.visibleOptions ?? FACET_VISIBLE_OPTIONS);