@stapel/search-react 0.25.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/MODULE.md +21 -9
- package/README.md +79 -18
- package/dist/api/generated/schema.d.ts +18 -3
- package/dist/api/generated/schema.d.ts.map +1 -1
- package/dist/api/types.d.ts +39 -4
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/default/FacetGroupControl.d.ts +20 -13
- package/dist/default/FacetGroupControl.d.ts.map +1 -1
- package/dist/default/FacetGroupControl.js +29 -21
- package/dist/default/FacetGroupControl.js.map +1 -1
- package/dist/default/FacetPanelPane.d.ts +28 -11
- package/dist/default/FacetPanelPane.d.ts.map +1 -1
- package/dist/default/FacetPanelPane.js +53 -24
- package/dist/default/FacetPanelPane.js.map +1 -1
- package/dist/default/SearchPage.d.ts +27 -0
- package/dist/default/SearchPage.d.ts.map +1 -1
- package/dist/default/SearchPage.js +21 -8
- package/dist/default/SearchPage.js.map +1 -1
- package/dist/headless/SearchStateProvider.d.ts +12 -2
- package/dist/headless/SearchStateProvider.d.ts.map +1 -1
- package/dist/headless/SearchStateProvider.js +58 -6
- package/dist/headless/SearchStateProvider.js.map +1 -1
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +0 -2
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/generated/errors.es.gen.d.ts.map +1 -1
- package/dist/i18n/generated/errors.es.gen.js +1 -0
- package/dist/i18n/generated/errors.es.gen.js.map +1 -1
- package/dist/i18n/generated/errors.gen.d.ts +6 -0
- package/dist/i18n/generated/errors.gen.d.ts.map +1 -1
- package/dist/i18n/generated/errors.gen.js +3 -0
- package/dist/i18n/generated/errors.gen.js.map +1 -1
- package/dist/i18n/generated/errors.ru.gen.d.ts.map +1 -1
- package/dist/i18n/generated/errors.ru.gen.js +1 -0
- package/dist/i18n/generated/errors.ru.gen.js.map +1 -1
- package/dist/i18n/keys.d.ts +13 -11
- package/dist/i18n/keys.d.ts.map +1 -1
- package/dist/i18n/keys.js +13 -14
- package/dist/i18n/keys.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +0 -4
- package/dist/i18n/ru.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/model/queries.d.ts.map +1 -1
- package/dist/model/queries.js +9 -1
- package/dist/model/queries.js.map +1 -1
- package/dist/state/facets.d.ts +62 -11
- package/dist/state/facets.d.ts.map +1 -1
- package/dist/state/facets.js +141 -29
- package/dist/state/facets.js.map +1 -1
- package/dist/state/urlState.d.ts +77 -2
- package/dist/state/urlState.d.ts.map +1 -1
- package/dist/state/urlState.js +80 -6
- package/dist/state/urlState.js.map +1 -1
- package/llms.txt +3 -2
- package/manifest.json +18 -4
- package/nav-manifest.json +1 -1
- package/package.json +9 -9
- package/src/analytics/generated/events.json +1 -1
- package/src/api/generated/schema.ts +18 -3
- package/src/api/types.ts +42 -4
- package/src/default/FacetGroupControl.tsx +27 -23
- package/src/default/FacetPanelPane.tsx +81 -33
- package/src/default/SearchPage.tsx +55 -6
- package/src/headless/SearchStateProvider.tsx +94 -4
- package/src/i18n/es.ts +0 -4
- package/src/i18n/generated/errors.es.gen.ts +1 -0
- package/src/i18n/generated/errors.gen.ts +3 -0
- package/src/i18n/generated/errors.json +9 -0
- package/src/i18n/generated/errors.ru.gen.ts +1 -0
- package/src/i18n/keys.ts +13 -16
- package/src/i18n/ru.ts +0 -8
- package/src/index.ts +13 -1
- package/src/model/queries.ts +11 -1
- package/src/state/facets.ts +173 -30
- package/src/state/urlState.ts +137 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# @stapel/search-react
|
|
2
2
|
|
|
3
|
+
## 0.27.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 07446e9: Two fixes from the reference census (2026-09-04): the rail no longer picks
|
|
8
|
+
between two different "no filters" sentences, and it inlines twice as many
|
|
9
|
+
groups before folding.
|
|
10
|
+
|
|
11
|
+
**One empty state, and only when the rail truly has nothing.** The facet
|
|
12
|
+
panel used to say "This search offers no filters" when the group list was
|
|
13
|
+
empty, and a SECOND sentence — "N filters apply to too few of these
|
|
14
|
+
results" — when the server had counted groups and withheld them for
|
|
15
|
+
covering too little of the result set (D175). A reference catalogue checked
|
|
16
|
+
against the same shape says neither: it leaves the filters visible with low
|
|
17
|
+
counts and explains nothing. `search.facets.withheld` and its plural
|
|
18
|
+
catalogue entries are gone from every locale; `FacetsEmptyArm` now says
|
|
19
|
+
nothing at all when groups were withheld or skipped, or when the rail is
|
|
20
|
+
already drawing a price row, an applied location, or the partition slot
|
|
21
|
+
(`hasOtherDrawable`) — `search.facets.empty` is the one sentence left, for
|
|
22
|
+
the one case none of that is true. A host that still wants the withheld
|
|
23
|
+
count for its own copy reads `data-withheld` off the (otherwise empty) arm.
|
|
24
|
+
|
|
25
|
+
**`visibleGroups` defaults to 16 in the desktop column, 8 in the phone
|
|
26
|
+
sheet.** The reference inlines roughly two dozen groups in its rail before
|
|
27
|
+
anything folds behind "all filters"; this pair folded at eight everywhere,
|
|
28
|
+
which on a wide rail was the make, the price and little else. `<SearchPage>`
|
|
29
|
+
now defaults `visibleGroups` per layout — 16 in the column
|
|
30
|
+
(`FACET_VISIBLE_GROUPS`, also `<FacetPanelPane>`'s own bare default), 8 in
|
|
31
|
+
the sheet, where a person has already paid one tap to get there and folding
|
|
32
|
+
its tail again saves less than folding a column's does. Both stay overridable
|
|
33
|
+
through the same prop.
|
|
34
|
+
|
|
35
|
+
## 0.26.0
|
|
36
|
+
|
|
37
|
+
### Minor Changes
|
|
38
|
+
|
|
39
|
+
- d88077a: Short feature keys in the address, a vocabulary axis that is always a field, and an axis with no evidence that is no longer drawn.
|
|
40
|
+
|
|
41
|
+
**`f.make=toyota`, not `f.make_ref_select=toyota`.** The importer's type suffix carries nothing a reader can act on. stapel-search 0.14.4+ states the readable half per group (`facet_labels[slug].url_key` — the slug minus its suffix where that stays unambiguous among the features of the category in scope, the slug itself otherwise) and accepts both forms inside that scope. The codec now **writes** `url_key` and **reads either**: `parseSearchState(params, {facetKeys})`, `writeSearchState(state, base, facetKeys)`, `buildFacetKeyMap` / `facetKeyMapFromLabels` to make a map, and the server's own collision rules applied again on the client — a short form that is another slug of the same answer, or that two slugs claim, keeps the slug on both sides. The map rides the answer: `useSearchQuery` publishes it to `SearchStateProvider` (`usePublishFacetKeys` / `useFacetKeys`), which re-parses the URL with it and writes every later address through it. Nothing is renamed and nothing is stored — the request this pair sends still carries the slug — so a link written before this release, and a link written against a server that states no `url_key`, both keep working. `buildFacetGroups` matches a filter by either spelling, so the rail, the chip row, the popular-values block and the applied chips all round-trip through one key.
|
|
42
|
+
|
|
43
|
+
**A vocabulary-backed axis is always the field.** `isDictionaryFacet` counted evidence buckets, so on a leaf holding three cars the make drew three checkboxes over a vocabulary of four hundred makes. Where the values LIVE decides the control now: `ref_select`/`ref_hierarchical_select` — or a group with no def whose answer names a `vocabulary` — is a dictionary however many buckets came back, and the searchable field is the only control that can reach values the answer never enumerated. An inline `select` keeps its checkboxes or pills whatever its length. `facetGroupIsVocabularyBacked` is exported; `FacetGroup` carries `urlKey` and `vocabulary`.
|
|
44
|
+
|
|
45
|
+
**A group with zero evidence and nothing selected is not drawn.** A live laptops leaf drew six of six groups as accordions a person could open and narrow nothing by: every counted bucket zero, and the axes the facet budget skipped standing on their authored option tables with `count: null` on every row. `facetGroupIsDrawable` now asks for evidence — at least one value some candidate carries — with two exemptions: an axis the reader has already filtered on, and any vocabulary-backed axis, whose field searches its dictionary with no buckets at all (`make` on a cars leaf holding three cars, `vendor` on a laptops leaf holding one — both now KEPT where they used to be dropped, while the zero-filled inline tables beside them go). `mandatory` is not part of the rule: the live laptops leaf marks none of vendor/model/screen size required, so gating on it would have deleted the vendor picker to save the make one. Consequence worth stating: an axis the plan cut at `MAX_FACET_FIELDS` is no longer drawn from its schema table alone — raising that budget is the fix, and stapel-search 0.14.5 spends it in schema order, required first.
|
|
46
|
+
|
|
47
|
+
**Three things a storefront could not do from `<SearchPage>`.**
|
|
48
|
+
|
|
49
|
+
- `dictionaryMode` reaches the page at last, defaulted per layout: `"field"` in the column (the select-style «Any» that opens the searchable list) and `"inline"` in the phone sheet, which is already a disclosure.
|
|
50
|
+
- `footerBar` takes `"sticky" | "static"` (`true` still means sticky). The column layout passes `"static"`: pinned to the rail's scroll port the opaque bar sat over the last two groups, and a storefront was reaching for `!important` to lift it off. A sheet, whose port is the sheet, still pins it.
|
|
51
|
+
- The undrawable-axis warning is DEV-ONLY for real. The guard asked "is this not production", a browser bundle with no `process` shim answered wrong, and `facet group "complectation" has no values to draw` reached buyers' consoles once per page load. It now asks "is this a dev build".
|
|
52
|
+
|
|
3
53
|
## 0.25.0
|
|
4
54
|
|
|
5
55
|
### Minor Changes
|
package/MODULE.md
CHANGED
|
@@ -209,15 +209,27 @@ one value.
|
|
|
209
209
|
|
|
210
210
|
**The gap the seam does not close: EXISTENCE.** `resolveFacetLabels` names
|
|
211
211
|
values; it does not enumerate them. A `ref_select` group the server did not
|
|
212
|
-
count
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
and
|
|
219
|
-
|
|
220
|
-
|
|
212
|
+
count has no options from either side — the answer counted nothing, the schema
|
|
213
|
+
holds a pointer. Since 0.26 that is no longer a reason to take a
|
|
214
|
+
vocabulary-backed axis off the page: its control is a searchable field, the
|
|
215
|
+
field works over a dictionary the answer never enumerated, and a leaf holding
|
|
216
|
+
three cars is a fact about the stand rather than about the make axis. The rule
|
|
217
|
+
does not ask `mandatory` — the live laptops leaf marks none of vendor, model
|
|
218
|
+
and screen size required, and gating on it would have deleted the vendor
|
|
219
|
+
picker to save the make one. What the
|
|
220
|
+
client still cannot do is fill the list — so the fix on the other side stands
|
|
221
|
+
(the facet plan must count a required vocabulary axis, and stapel-search 0.14.5
|
|
222
|
+
now spends `MAX_FACET_FIELDS` in schema order, required first), and a host that
|
|
223
|
+
wants values in that field before the plan counts them wires
|
|
224
|
+
`resolveFacetLabels` to its vocabulary.
|
|
225
|
+
|
|
226
|
+
Every OTHER axis with no evidence is dropped: an authored option set the answer
|
|
227
|
+
zero-filled, or one the budget skipped, is a set of checkboxes each guaranteed
|
|
228
|
+
to return nothing (a live laptops leaf drew six of those and no filter). The
|
|
229
|
+
drop is reported: one `console.warn` per slug in development — never in
|
|
230
|
+
production, where the guard now asks "is this a dev build" rather than "is this
|
|
231
|
+
not production", because a browser bundle with no `process` shim answered the
|
|
232
|
+
second one wrong and shipped the warning to buyers.
|
|
221
233
|
|
|
222
234
|
## The chip row's order is the row's product
|
|
223
235
|
|
package/README.md
CHANGED
|
@@ -78,6 +78,30 @@ ordered candidate set; carried across a filter change it either gets refused or,
|
|
|
78
78
|
worse, honoured against a different set. `patchSearchState` drops it for every
|
|
79
79
|
change that is not itself a page move, so no call site has to remember.
|
|
80
80
|
|
|
81
|
+
**Short feature keys.** The importer's type suffix carries nothing a reader can
|
|
82
|
+
act on — `f.make_ref_select=toyota` says *make* once and *how the column is
|
|
83
|
+
stored* once — so the address uses the short form the ANSWER states:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
/c/avtomobili?f.make=toyota&r.year=2015..2020
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
stapel-search 0.14.4+ derives it per request inside the queried category's
|
|
90
|
+
scope (`facet_labels[slug].url_key`: the slug minus its suffix where that stays
|
|
91
|
+
unambiguous, the slug itself otherwise) and accepts both forms. This pair
|
|
92
|
+
**writes** `url_key` and **reads either**, so an old link keeps working and a
|
|
93
|
+
collision keeps the slug on both sides. Nothing is renamed and nothing is
|
|
94
|
+
stored: the slug is still the feature's identity, and the request this pair
|
|
95
|
+
sends carries it.
|
|
96
|
+
|
|
97
|
+
The map travels with the answer — `useSearchQuery` publishes it up to
|
|
98
|
+
`SearchStateProvider` (`usePublishFacetKeys`, `useFacetKeys`), which re-parses
|
|
99
|
+
the URL with it and writes every later address through it. Before the first
|
|
100
|
+
answer, and against a server that states none, the address is spelled in slugs
|
|
101
|
+
exactly as it was. The codec itself stays pure: `parseSearchState(params,
|
|
102
|
+
{facetKeys})`, `writeSearchState(state, base, facetKeys)`, and
|
|
103
|
+
`buildFacetKeyMap` / `facetKeyMapFromLabels` to make one.
|
|
104
|
+
|
|
81
105
|
**Any router, or none.** `SearchStateProvider` takes a `SearchParamsAdapter` —
|
|
82
106
|
two members, shaped exactly like react-router's `useSearchParams()`. `./router`
|
|
83
107
|
ships that binding; a Next.js app, a hash router or a plain `URLSearchParams` in
|
|
@@ -181,27 +205,46 @@ rail that reshuffles as you tick is not.
|
|
|
181
205
|
orderFacetGroupsBySchema({ groups, categoryFeatures, pinned })
|
|
182
206
|
```
|
|
183
207
|
|
|
184
|
-
Past `visibleGroups`
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
208
|
+
Past `visibleGroups` the tail folds under one **All filters (K)** control —
|
|
209
|
+
except a group you have already chosen a value in, which is never folded
|
|
210
|
+
away: the control that removes a filter is the one you came back for.
|
|
211
|
+
Defaulted per layout through `<SearchPage>`: 16 in the desktop column
|
|
212
|
+
(`FACET_VISIBLE_GROUPS`, `<FacetPanelPane>`'s own default too), 8 in the
|
|
213
|
+
phone sheet — a surface already behind one tap costs less to fold again than
|
|
214
|
+
a column sitting on screen the whole time. Either number is a prop away from
|
|
215
|
+
being something else.
|
|
189
216
|
|
|
190
217
|
`facetGroupIsDrawable(group)` is the one rule the rail and the chip row share
|
|
191
|
-
for "is there anything to draw here"
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
218
|
+
for "is there anything to draw here", and the question it asks is **evidence**:
|
|
219
|
+
at least one value some candidate in this answer actually carries. A live
|
|
220
|
+
laptops leaf drew six of six groups as accordions a person could open and
|
|
221
|
+
narrow nothing by — every counted bucket zero, and the axes the facet budget
|
|
222
|
+
skipped standing on their authored option tables with `count: null` on every
|
|
223
|
+
row. Three exemptions, and nothing else:
|
|
224
|
+
|
|
225
|
+
- an axis the reader has already **filtered on** — a constraint with no
|
|
226
|
+
control to remove it is worse than a bare heading;
|
|
227
|
+
- a **vocabulary-backed** axis: its control is a field over a dictionary the
|
|
228
|
+
answer never enumerated, and that box searches the dictionary rather than
|
|
229
|
+
the buckets — *make* on a cars leaf holding three cars, *vendor* on a
|
|
230
|
+
laptops leaf holding one. `mandatory` is deliberately not asked: on the live
|
|
231
|
+
laptops leaf not one of vendor/model/screen size carries it;
|
|
232
|
+
- an axis with evidence, obviously.
|
|
233
|
+
|
|
234
|
+
A dropped axis is **named** outside production: a `console.warn` says which
|
|
235
|
+
axis went, why, and whether the schema calls it required — the fault that took
|
|
236
|
+
*make* off a live cars rail while every `select`-typed comfort option drew its
|
|
237
|
+
own table and stayed. Note the consequence for a leaf whose plan was cut at
|
|
238
|
+
`MAX_FACET_FIELDS`: an axis the server never counted is not drawn unless it is
|
|
239
|
+
one of the two exemptions, so the way to put it back is to raise that budget
|
|
240
|
+
(stapel-search 0.14.5 spends it in schema order, required first).
|
|
199
241
|
|
|
200
242
|
## A vocabulary is a dictionary, not a checkbox list
|
|
201
243
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
244
|
+
A **vocabulary-backed** axis (`ref_select`/`ref_hierarchical_select`, whose
|
|
245
|
+
config is a pointer and never an option table — or an untyped group the answer
|
|
246
|
+
came back long for, the live case where no schema was threaded through) is
|
|
247
|
+
always a dictionary, **however many buckets came back**: the busiest values, a search box that filters them
|
|
205
248
|
locally, and the chosen values pinned above the box so a filter is never
|
|
206
249
|
invisible. The box matches **across alphabets** — `тойота` finds `Toyota`,
|
|
207
250
|
`тимберленд` finds `Timberland`, `ровер` finds `Land Rover` — by a prefix rule
|
|
@@ -213,6 +256,13 @@ answer — stapel-search caps a vocabulary-backed group at
|
|
|
213
256
|
this), so a 418-term make dictionary arrives whole and the box has everything
|
|
214
257
|
it filters.
|
|
215
258
|
|
|
259
|
+
The bucket count used to decide this, and on a leaf holding three cars the make
|
|
260
|
+
drew three checkboxes over a vocabulary of four hundred makes — "а если там
|
|
261
|
+
сотни вариантов" is a question about the DICTIONARY, and the dictionary is
|
|
262
|
+
large whether or not this leaf has stock. An **inline** option set is never a
|
|
263
|
+
dictionary, whatever its length: a `select` carries its own table, and a small
|
|
264
|
+
one is a list a person reads at a glance.
|
|
265
|
+
|
|
216
266
|
A dictionary outranks the pills, too: the live `make` axis is `maxSelected: 1`
|
|
217
267
|
over a 418-value vocabulary, so "pick one" used to win and the control it drew
|
|
218
268
|
was four hundred pills in a 280px rail.
|
|
@@ -225,10 +275,14 @@ Escape to close. The phone sheet keeps the list inline, because the sheet is
|
|
|
225
275
|
already the disclosure.
|
|
226
276
|
|
|
227
277
|
```tsx
|
|
228
|
-
facetGroupShape(group)
|
|
229
|
-
isDictionaryFacet(group)
|
|
278
|
+
facetGroupShape(group) // "segmented" | "nested" | "checkbox" | "dictionary"
|
|
279
|
+
isDictionaryFacet(group) // vocabulary-backed, or untyped and long
|
|
280
|
+
facetGroupIsVocabularyBacked(group) // the schema's type, else the answer's `vocabulary`
|
|
230
281
|
```
|
|
231
282
|
|
|
283
|
+
`<SearchPage dictionaryMode>` overrides the per-layout default (`"field"` in
|
|
284
|
+
the column, `"inline"` in the sheet).
|
|
285
|
+
|
|
232
286
|
## A bounded integer is a picker, not a bare number
|
|
233
287
|
|
|
234
288
|
A year is not a quantity a person computes, it is one of a hundred-odd values,
|
|
@@ -291,6 +345,13 @@ real width and every colour a `--stapel-*` custom property, so it is the
|
|
|
291
345
|
panel's own hairline in both themes. `railScrollbarCss()` and `RAIL_CLASS` are
|
|
292
346
|
exported for a host that lays out its own column.
|
|
293
347
|
|
|
348
|
+
The panel's footer — the live count, and the clear-all beside it — sits where
|
|
349
|
+
its frame wants it: `footerBar="static"` (what `<SearchPage>` passes in the
|
|
350
|
+
column layout) puts it after the last group, and `"sticky"` / `true` pins it to
|
|
351
|
+
the scroll port's floor, which is right in a sheet whose port IS the sheet. It
|
|
352
|
+
was pinned everywhere, and on the desktop rail an opaque bar over the last two
|
|
353
|
+
groups made them unreachable.
|
|
354
|
+
|
|
294
355
|
## The other sections are a line, and they come with the results
|
|
295
356
|
|
|
296
357
|
`<SearchPage otherCategories categoryName={...}>` draws
|
|
@@ -145,6 +145,13 @@ export interface components {
|
|
|
145
145
|
*/
|
|
146
146
|
radius_km?: number;
|
|
147
147
|
};
|
|
148
|
+
/** @description The queried category in both forms an address can carry. */
|
|
149
|
+
CategoryResolved: {
|
|
150
|
+
/** @description The slash-joined ID path this answer actually filtered on — what to send back as `category`. `category=` accepts an id, an id path, a slug, a slug path and any mix, so the string the caller sent is not necessarily this one: `avtomobili` and `141/avtomobili` both answer `141/151`. */
|
|
151
|
+
path: string;
|
|
152
|
+
/** @description The same node as slug segments, root->leaf — what a readable URL is built from (`/c/avtomobili`). `null`, never partial, when any segment has no slug: half a slug path builds a wrong address and a client cannot see that by looking. `null` here with `category_names` in `degraded[]` means the names provider was unreachable, not that the node has no slug. */
|
|
153
|
+
slugs: string[] | null;
|
|
154
|
+
};
|
|
148
155
|
/** @description One destination in the dropdown, ready to render and ready to follow. */
|
|
149
156
|
CategorySuggestion: {
|
|
150
157
|
/** @description Category id. A `listings`-graded row derives it from the path's leaf segment. */
|
|
@@ -206,8 +213,14 @@ export interface components {
|
|
|
206
213
|
/** @description True when this filter actually narrowed the answer. A false one still contributed to each row's `match_count`. */
|
|
207
214
|
applied: boolean;
|
|
208
215
|
};
|
|
209
|
-
/** @description
|
|
216
|
+
/** @description The heading for one facet group, plus captions for its option codes. */
|
|
210
217
|
FacetLabels: {
|
|
218
|
+
/** @description The feature definition's own name — the HEADING above this group's buckets. `null` when the definition carries no name: a client renders the slug only as a dev-mode fallback, because a raw slug in a heading is not a caption, and this field is how it can tell that case from a name the server has. */
|
|
219
|
+
label: string | null;
|
|
220
|
+
/** @description True when `label` is a translation KEY (`FeatureDef.translate` is `all` or `title`), false when it is literal text. Same question as `translatable`, one level up. */
|
|
221
|
+
label_translatable: boolean;
|
|
222
|
+
/** @description What to call this group in the address: `f.<url_key>` and `r.<url_key>`. The slug without the importer type suffix (`_select`, `_ref_select`, `_int`, `_bool`, `_string`) where that stays unambiguous among the features of the category in scope, and the slug itself otherwise — and always when the query names no category. Derived per request, never stored: the slug remains the feature's identity, and both forms are accepted inside the scope. */
|
|
223
|
+
url_key: string;
|
|
211
224
|
/** @description True when `values` holds translation KEYS to run through the catalogue; false when it holds literal captions. The reader cannot tell by looking — `b.apple` and `Б/у` are both strings. */
|
|
212
225
|
translatable: boolean;
|
|
213
226
|
values: {
|
|
@@ -344,6 +357,8 @@ export interface components {
|
|
|
344
357
|
/** @description The query envelope: AnchorPagination's keys, plus what search owes. */
|
|
345
358
|
SearchResponse: {
|
|
346
359
|
items: components["schemas"]["SearchItem"][];
|
|
360
|
+
/** @description The category this answer filtered on, in both addressable forms. `null` when the query named no category. */
|
|
361
|
+
category_resolved: components["schemas"]["CategoryResolved"] | null;
|
|
347
362
|
/** @description Per-band counts in render order — `nearby` («Объявления поблизости») then `all` («Все объявления»). Present only under `geo_mode=rank`; empty when no centre was given. The rows themselves carry `band`; this is the summary a heading needs. The top-level `count` remains the WHOLE matching total, never the nearby one. */
|
|
348
363
|
bands?: components["schemas"]["BandSummary"][];
|
|
349
364
|
/** @description What the query's words became. Absent entirely while QUERY_UNDERSTANDING is off or `qu=off` was sent. */
|
|
@@ -354,7 +369,7 @@ export interface components {
|
|
|
354
369
|
[key: string]: number;
|
|
355
370
|
};
|
|
356
371
|
};
|
|
357
|
-
/** @description {slug: {translatable, values: {value: caption}}} for
|
|
372
|
+
/** @description {slug: {label, label_translatable, url_key, translatable, values: {value: caption}}} — one entry for EVERY group in `facets`. `url_key` is the group's key in the address. `label` is the group's heading and is null when the definition has no name; `values` is empty for a slug whose options are not inline in the category schema and whose vocabulary resolved nothing, because this module will not invent a caption it has not read. */
|
|
358
373
|
facet_labels: {
|
|
359
374
|
[key: string]: components["schemas"]["FacetLabels"];
|
|
360
375
|
};
|
|
@@ -425,7 +440,7 @@ export interface operations {
|
|
|
425
440
|
anchor?: string;
|
|
426
441
|
/** @description minLat,minLon,maxLat,maxLon. minLon > maxLon means the box crosses +/-180. For an anonymous caller the rectangle is grown OUTWARD to whole ~1.1km cells of the public geo grid, so it can only ever ask about the area a public card publishes: a box EXCLUDES rows, and halving one around a listing would otherwise converge on the seller's pin in a few dozen requests. */
|
|
427
442
|
bbox?: string;
|
|
428
|
-
/** @description root/leaf path; a prefix filter, so a parent finds its descendants. */
|
|
443
|
+
/** @description root/leaf path; a prefix filter, so a parent finds its descendants. Segments are node IDS or SLUGS, in any mix: a bare node id is resolved to that node's full path (`166` == `141/151/166`), and a slug is a whole address on its own because slugs are globally unique (`avtomobili` == `transport/avtomobili` == `141/151`). The form that answered is echoed in `category_resolved`. A segment no category has is a 400, never an empty answer. */
|
|
429
444
|
category?: string;
|
|
430
445
|
/** @description next | prev. */
|
|
431
446
|
direction?: string;
|
|
@@ -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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"}
|
package/dist/api/types.d.ts
CHANGED
|
@@ -22,11 +22,14 @@ export type Schemas = components["schemas"];
|
|
|
22
22
|
* slug either; ABSENT is a server too old to send one, and both read the same
|
|
23
23
|
* way here (fall through to the schema).
|
|
24
24
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* WHY IT IS NOT THE GENERATED SHAPE: stapel-search 0.14.5's `schema.json`
|
|
26
|
+
* declares this field REQUIRED, but the contract this pair announces is
|
|
27
|
+
* `>=0.14 <0.15`, and a 0.14.0 server inside that range sends no `label` at
|
|
28
|
+
* all. The generated member is therefore `Omit`ted and re-declared here as
|
|
29
|
+
* optional-and-nullable — a type must not promise a field a server the pair
|
|
30
|
+
* says it supports does not send.
|
|
28
31
|
*/
|
|
29
|
-
export type FacetLabels = Schemas["FacetLabels"] & {
|
|
32
|
+
export type FacetLabels = Omit<Schemas["FacetLabels"], "label" | "label_translatable" | "url_key"> & {
|
|
30
33
|
readonly label?: string | null;
|
|
31
34
|
/**
|
|
32
35
|
* Whether {@link label} is a translation KEY rather than a caption, the way
|
|
@@ -41,6 +44,38 @@ export type FacetLabels = Schemas["FacetLabels"] & {
|
|
|
41
44
|
* fixture captured from the wire is not a type error.
|
|
42
45
|
*/
|
|
43
46
|
readonly label_translatable?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* What this group is called IN THE ADDRESS: `f.<url_key>`, `r.<url_key>`.
|
|
49
|
+
*
|
|
50
|
+
* The slug minus the type suffix an importer mints (`_select`,
|
|
51
|
+
* `_ref_select`, `_int`, `_bool`, `_string`) where dropping it stays
|
|
52
|
+
* unambiguous among the features of the category in scope, and the slug
|
|
53
|
+
* itself otherwise — and always when the query names no category
|
|
54
|
+
* (stapel-search 0.14.4+, `facets.url_keys`). Derived per request, never
|
|
55
|
+
* stored: the slug remains the feature's identity and both forms are
|
|
56
|
+
* accepted inside the scope, which is what lets a client write the short
|
|
57
|
+
* one without a migration behind it.
|
|
58
|
+
*
|
|
59
|
+
* WHY IT IS NOT THE GENERATED SHAPE: 0.14.5 declares it REQUIRED, and the
|
|
60
|
+
* announced contract is `>=0.14 <0.15` — a 0.14.0 server in that range
|
|
61
|
+
* states no `url_key`, and the codec's whole point is that such a link
|
|
62
|
+
* still works. `Omit`ted from the generated member and re-declared
|
|
63
|
+
* optional here. Measured on a live answer 2026-09-04:
|
|
64
|
+
* `make_ref_select` → `make`, `fuel_type_ref_select` → `fuel_type`,
|
|
65
|
+
* `model` → `model`.
|
|
66
|
+
*/
|
|
67
|
+
readonly url_key?: string | null;
|
|
68
|
+
/**
|
|
69
|
+
* The vocabulary this group's values are drawn from, when the server names
|
|
70
|
+
* one.
|
|
71
|
+
*
|
|
72
|
+
* The one fact that decides whether an axis is a DICTIONARY rather than a
|
|
73
|
+
* list, and the client's second-best source for it: the first is the
|
|
74
|
+
* category schema's own `optionsRef`, which a host that threaded no schema
|
|
75
|
+
* does not have. Absent on every server that does not state it — absence
|
|
76
|
+
* is not "inline", it is "unsaid", and the schema is asked next.
|
|
77
|
+
*/
|
|
78
|
+
readonly vocabulary?: string | null;
|
|
44
79
|
};
|
|
45
80
|
/** `facet_labels` as a whole: `{slug: {label, translatable, values}}`. */
|
|
46
81
|
export type FacetLabelsMap = Readonly<Record<string, FacetLabels>>;
|
package/dist/api/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAE5C
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
|
package/dist/api/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAuOA;;;;;;;;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"}
|
|
@@ -24,14 +24,21 @@ export interface FacetOptionNode {
|
|
|
24
24
|
readonly depth: number;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
* Is this group a DICTIONARY —
|
|
27
|
+
* Is this group a DICTIONARY — an axis whose values live in a vocabulary?
|
|
28
28
|
*
|
|
29
|
-
* Two ways to be one,
|
|
30
|
-
* case is the one where it is empty:
|
|
29
|
+
* Two ways to be one, and only the second one counts anything:
|
|
31
30
|
*
|
|
32
|
-
* - the
|
|
33
|
-
*
|
|
34
|
-
* table to draw
|
|
31
|
+
* - the axis is VOCABULARY-BACKED (`facetGroupIsVocabularyBacked`): the def
|
|
32
|
+
* types it `ref_select`/`ref_hierarchical_select`, so its config is a
|
|
33
|
+
* POINTER and there was never an option table to draw — or there is no def
|
|
34
|
+
* and the answer named the vocabulary itself. **However many buckets came
|
|
35
|
+
* back.** This threshold used to be counted against the answer's evidence,
|
|
36
|
+
* and on a stand holding three cars the make axis has three buckets, drew
|
|
37
|
+
* three checkboxes, and hid the other four hundred makes behind nothing at
|
|
38
|
+
* all: the founder's "what if there are hundreds of options" is a question about the DICTIONARY,
|
|
39
|
+
* and the dictionary is large whether or not this leaf has stock. The
|
|
40
|
+
* field is also the only control that can search values the answer never
|
|
41
|
+
* enumerated, which is exactly the case a thin stand produces;
|
|
35
42
|
* - there is NO def at all and the answer came back with more values than a
|
|
36
43
|
* fold. At a live classified's cars branch the storefront passed an empty
|
|
37
44
|
* feature list, so the 418 makes arrived as an unnamed, untyped group of
|
|
@@ -39,10 +46,10 @@ export interface FacetOptionNode {
|
|
|
39
46
|
* answers that, and refusing to draw one because the schema is missing
|
|
40
47
|
* punishes the buyer for the wiring.
|
|
41
48
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
49
|
+
* An INLINE option set is never one, whatever its length: a `select` carries
|
|
50
|
+
* its own table, that table is the whole of the axis, and a small one
|
|
51
|
+
* (≤ {@link FACET_DICTIONARY_THRESHOLD} options) is a list a person reads at
|
|
52
|
+
* a glance rather than types into.
|
|
46
53
|
*/
|
|
47
54
|
export declare function isDictionaryFacet(group: FacetGroup): boolean;
|
|
48
55
|
/**
|
|
@@ -56,9 +63,9 @@ export declare function isDictionaryFacet(group: FacetGroup): boolean;
|
|
|
56
63
|
* `maxSelected: 1` over a 418-value vocabulary, so "pick one" won and the
|
|
57
64
|
* control it produced was four hundred pills in a 280px rail — a wall
|
|
58
65
|
* with a different border radius. Above the fold the shape a person needs
|
|
59
|
-
* is a search box, whether or not they may tick two
|
|
60
|
-
*
|
|
61
|
-
*
|
|
66
|
+
* is a search box, whether or not they may tick two. A single-choice axis
|
|
67
|
+
* with an INLINE option table still means pills, because a dictionary is
|
|
68
|
+
* now about where the values live and not about how many came back;
|
|
62
69
|
* - and a dictionary is a dictionary before it is a checkbox list, because
|
|
63
70
|
* the checkbox list is the shape it was drawn as when nobody could pick a
|
|
64
71
|
* make.
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"FacetGroupControl.d.ts","sourceRoot":"","sources":["../../src/default/FacetGroupControl.tsx"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,OAAO,CAAC;AAOzD,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;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAS5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAOlE;AAWD,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,eAAe,EAAE,CAkC9E;AA2XD,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;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC9C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CA2I7E"}
|
|
@@ -67,7 +67,8 @@ import { useState } from "react";
|
|
|
67
67
|
import { Button, Checkbox, Flex, Input, Typography } from "antd";
|
|
68
68
|
import { useT } from "@stapel/core";
|
|
69
69
|
import { controls, cssVar, radii, spacing } from "@stapel/tokens";
|
|
70
|
-
import {
|
|
70
|
+
import { featureConfig, featureType } from "@stapel/attributes-react";
|
|
71
|
+
import { facetGroupIsVocabularyBacked } from "../state/facets.js";
|
|
71
72
|
import { translitPrefixMatch } from "../state/translit.js";
|
|
72
73
|
import { SEARCH_I18N_KEYS } from "../i18n/keys.js";
|
|
73
74
|
/**
|
|
@@ -120,14 +121,21 @@ function singleChoice(feature) {
|
|
|
120
121
|
return numberish(featureConfig(feature)["maxSelected"]) === 1;
|
|
121
122
|
}
|
|
122
123
|
/**
|
|
123
|
-
* Is this group a DICTIONARY —
|
|
124
|
+
* Is this group a DICTIONARY — an axis whose values live in a vocabulary?
|
|
124
125
|
*
|
|
125
|
-
* Two ways to be one,
|
|
126
|
-
* case is the one where it is empty:
|
|
126
|
+
* Two ways to be one, and only the second one counts anything:
|
|
127
127
|
*
|
|
128
|
-
* - the
|
|
129
|
-
*
|
|
130
|
-
* table to draw
|
|
128
|
+
* - the axis is VOCABULARY-BACKED (`facetGroupIsVocabularyBacked`): the def
|
|
129
|
+
* types it `ref_select`/`ref_hierarchical_select`, so its config is a
|
|
130
|
+
* POINTER and there was never an option table to draw — or there is no def
|
|
131
|
+
* and the answer named the vocabulary itself. **However many buckets came
|
|
132
|
+
* back.** This threshold used to be counted against the answer's evidence,
|
|
133
|
+
* and on a stand holding three cars the make axis has three buckets, drew
|
|
134
|
+
* three checkboxes, and hid the other four hundred makes behind nothing at
|
|
135
|
+
* all: the founder's "what if there are hundreds of options" is a question about the DICTIONARY,
|
|
136
|
+
* and the dictionary is large whether or not this leaf has stock. The
|
|
137
|
+
* field is also the only control that can search values the answer never
|
|
138
|
+
* enumerated, which is exactly the case a thin stand produces;
|
|
131
139
|
* - there is NO def at all and the answer came back with more values than a
|
|
132
140
|
* fold. At a live classified's cars branch the storefront passed an empty
|
|
133
141
|
* feature list, so the 418 makes arrived as an unnamed, untyped group of
|
|
@@ -135,20 +143,20 @@ function singleChoice(feature) {
|
|
|
135
143
|
* answers that, and refusing to draw one because the schema is missing
|
|
136
144
|
* punishes the buyer for the wiring.
|
|
137
145
|
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
146
|
+
* An INLINE option set is never one, whatever its length: a `select` carries
|
|
147
|
+
* its own table, that table is the whole of the axis, and a small one
|
|
148
|
+
* (≤ {@link FACET_DICTIONARY_THRESHOLD} options) is a list a person reads at
|
|
149
|
+
* a glance rather than types into.
|
|
142
150
|
*/
|
|
143
151
|
export function isDictionaryFacet(group) {
|
|
144
|
-
|
|
145
|
-
if (buckets <= FACET_DICTIONARY_THRESHOLD)
|
|
146
|
-
return false;
|
|
147
|
-
const feature = group.feature;
|
|
148
|
-
if (feature === undefined)
|
|
152
|
+
if (facetGroupIsVocabularyBacked(group))
|
|
149
153
|
return true;
|
|
150
|
-
|
|
151
|
-
|
|
154
|
+
// A typed def that is not vocabulary-backed carries its options inline:
|
|
155
|
+
// checkboxes or pills, however many there are.
|
|
156
|
+
if (group.feature !== undefined)
|
|
157
|
+
return false;
|
|
158
|
+
const buckets = group.options.filter((option) => option.count !== null && option.count > 0).length;
|
|
159
|
+
return buckets > FACET_DICTIONARY_THRESHOLD;
|
|
152
160
|
}
|
|
153
161
|
/**
|
|
154
162
|
* Which of the four shapes a group takes.
|
|
@@ -161,9 +169,9 @@ export function isDictionaryFacet(group) {
|
|
|
161
169
|
* `maxSelected: 1` over a 418-value vocabulary, so "pick one" won and the
|
|
162
170
|
* control it produced was four hundred pills in a 280px rail — a wall
|
|
163
171
|
* with a different border radius. Above the fold the shape a person needs
|
|
164
|
-
* is a search box, whether or not they may tick two
|
|
165
|
-
*
|
|
166
|
-
*
|
|
172
|
+
* is a search box, whether or not they may tick two. A single-choice axis
|
|
173
|
+
* with an INLINE option table still means pills, because a dictionary is
|
|
174
|
+
* now about where the values live and not about how many came back;
|
|
167
175
|
* - and a dictionary is a dictionary before it is a checkbox list, because
|
|
168
176
|
* the checkbox list is the shape it was drawn as when nobody could pick a
|
|
169
177
|
* make.
|