@stapel/search-react 0.24.0 → 0.26.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 +73 -0
- package/MODULE.md +21 -9
- package/README.md +109 -15
- 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 +15 -4
- package/dist/default/FacetPanelPane.d.ts.map +1 -1
- package/dist/default/FacetPanelPane.js +10 -5
- package/dist/default/FacetPanelPane.js.map +1 -1
- package/dist/default/OtherCategoriesLine.d.ts +49 -0
- package/dist/default/OtherCategoriesLine.d.ts.map +1 -0
- package/dist/default/OtherCategoriesLine.js +127 -0
- package/dist/default/OtherCategoriesLine.js.map +1 -0
- package/dist/default/SearchPage.d.ts +36 -0
- package/dist/default/SearchPage.d.ts.map +1 -1
- package/dist/default/SearchPage.js +12 -4
- package/dist/default/SearchPage.js.map +1 -1
- package/dist/default/SearchResultsPane.d.ts +15 -0
- package/dist/default/SearchResultsPane.d.ts.map +1 -1
- package/dist/default/SearchResultsPane.js +4 -1
- package/dist/default/SearchResultsPane.js.map +1 -1
- package/dist/default/index.d.ts +2 -0
- package/dist/default/index.d.ts.map +1 -1
- package/dist/default/index.js +1 -0
- package/dist/default/index.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/headless/useOtherCategories.d.ts +52 -0
- package/dist/headless/useOtherCategories.d.ts.map +1 -0
- package/dist/headless/useOtherCategories.js +92 -0
- package/dist/headless/useOtherCategories.js.map +1 -0
- package/dist/i18n/es.d.ts.map +1 -1
- package/dist/i18n/es.js +3 -0
- 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 +25 -0
- package/dist/i18n/keys.d.ts.map +1 -1
- package/dist/i18n/keys.js +29 -0
- package/dist/i18n/keys.js.map +1 -1
- package/dist/i18n/ru.d.ts.map +1 -1
- package/dist/i18n/ru.js +4 -0
- package/dist/i18n/ru.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -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 +4 -2
- package/manifest.json +45 -1
- package/nav-manifest.json +1 -1
- package/package.json +10 -10
- 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 +30 -8
- package/src/default/OtherCategoriesLine.tsx +238 -0
- package/src/default/SearchPage.tsx +57 -1
- package/src/default/SearchResultsPane.tsx +28 -0
- package/src/default/index.ts +13 -0
- package/src/headless/SearchStateProvider.tsx +94 -4
- package/src/headless/useOtherCategories.ts +193 -0
- package/src/i18n/es.ts +4 -0
- 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 +32 -0
- package/src/i18n/ru.ts +5 -0
- package/src/index.ts +23 -1
- package/src/model/queries.ts +11 -1
- package/src/state/facets.ts +173 -30
- package/src/state/urlState.ts +137 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlState.js","sourceRoot":"","sources":["../../src/state/urlState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"urlState.js","sourceRoot":"","sources":["../../src/state/urlState.ts"],"names":[],"mappings":"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"}
|
package/llms.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @stapel/search-react 0.
|
|
1
|
+
# @stapel/search-react 0.26.0
|
|
2
2
|
|
|
3
3
|
Headless React flow pair for stapel-search (contract >=0.14 <0.15) — business + state, zero visual opinion.
|
|
4
4
|
Built on @stapel/core: typed client + StapelApiError envelope, auth token refresh,
|
|
@@ -33,7 +33,7 @@ Paths are relative to `/search/api/v1/`.
|
|
|
33
33
|
- useSuggest (query) → suggest
|
|
34
34
|
|
|
35
35
|
## Errors (render t(code, params); UX from remediation)
|
|
36
|
-
|
|
36
|
+
55 keys (full catalog: manifest.json §errors). By remediation: fix_input 27 · retry 15 · verify 5 · wait_and_retry 5 · contact_support 2 · reauthenticate 1.
|
|
37
37
|
Param-bearing keys (interpolation slots matter):
|
|
38
38
|
- error.400.field.blank [400] → fix_input {field}
|
|
39
39
|
- error.400.field.does_not_exist [400] → fix_input {field}
|
|
@@ -50,6 +50,7 @@ Param-bearing keys (interpolation slots matter):
|
|
|
50
50
|
- error.400.search_bad_range [400] → fix_input {slug,reason}
|
|
51
51
|
- error.400.search_too_many_facets [400] → fix_input {limit}
|
|
52
52
|
- error.400.search_too_many_ranges [400] → fix_input {limit}
|
|
53
|
+
- error.400.search_unknown_category [400] → fix_input {category}
|
|
53
54
|
- error.400.search_unknown_doc_type [400] → fix_input {doc_type}
|
|
54
55
|
- error.400.search_unknown_sort [400] → fix_input {sort}
|
|
55
56
|
- error.400.search_window_exceeded [400] → fix_input {window}
|
|
@@ -83,6 +84,7 @@ const { tracked } = useTracked();
|
|
|
83
84
|
- search.filter-sheet → <SearchPage> [open] demo/FilterSheet.demo.tsx
|
|
84
85
|
- search.language-select → <LanguageSelect> [offered|from-a-link] demo/LanguageSelect.demo.tsx
|
|
85
86
|
- search.location-summary → <LocationSummaryLine> [everywhere|placed|narrowed|long-place|wide] demo/LocationSummaryLine.demo.tsx
|
|
87
|
+
- search.other-categories-line → <OtherCategoriesLine> [line|narrow|empty] demo/OtherCategoriesLine.demo.tsx
|
|
86
88
|
- search.page → <SearchPage> [desktop|phone|unreadable-link] demo/SearchPage.demo.tsx
|
|
87
89
|
- search.page-size-select → <PageSizeSelect> [ladder|off-ladder] demo/PageSizeSelect.demo.tsx
|
|
88
90
|
- search.partition-chips → <PartitionChips> [parent|child] demo/PartitionChips.demo.tsx
|
package/manifest.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$generated": "by scripts/gen-manifest.mjs — do not edit; drift-gated (pnpm gen:manifest:check)",
|
|
3
3
|
"package": "@stapel/search-react",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.26.0",
|
|
5
5
|
"backend": {
|
|
6
6
|
"module": "stapel-search",
|
|
7
7
|
"contract": ">=0.14 <0.15"
|
|
@@ -234,6 +234,13 @@
|
|
|
234
234
|
],
|
|
235
235
|
"remediation": "fix_input"
|
|
236
236
|
},
|
|
237
|
+
"error.400.search_unknown_category": {
|
|
238
|
+
"status": 400,
|
|
239
|
+
"params": [
|
|
240
|
+
"category"
|
|
241
|
+
],
|
|
242
|
+
"remediation": "fix_input"
|
|
243
|
+
},
|
|
237
244
|
"error.400.search_unknown_doc_type": {
|
|
238
245
|
"status": 400,
|
|
239
246
|
"params": [
|
|
@@ -537,6 +544,24 @@
|
|
|
537
544
|
],
|
|
538
545
|
"source": "demo/LocationSummaryLine.demo.tsx"
|
|
539
546
|
},
|
|
547
|
+
{
|
|
548
|
+
"id": "search.other-categories-line",
|
|
549
|
+
"title": "Other categories line",
|
|
550
|
+
"description": "The sections this query also reaches, with the count each one has FOR THIS QUERY, on one line under the results. Pressing an entry narrows the search that is already on screen rather than leaving it for the bare category feed, whose number would be a different and larger one — so every entry is a real button and none of them is a link.",
|
|
551
|
+
"component": "OtherCategoriesLine",
|
|
552
|
+
"covers": [
|
|
553
|
+
"OtherCategoriesLine"
|
|
554
|
+
],
|
|
555
|
+
"tokens": [
|
|
556
|
+
"text-subtle"
|
|
557
|
+
],
|
|
558
|
+
"variants": [
|
|
559
|
+
"line",
|
|
560
|
+
"narrow",
|
|
561
|
+
"empty"
|
|
562
|
+
],
|
|
563
|
+
"source": "demo/OtherCategoriesLine.demo.tsx"
|
|
564
|
+
},
|
|
540
565
|
{
|
|
541
566
|
"id": "search.page",
|
|
542
567
|
"title": "Search page",
|
|
@@ -723,6 +748,7 @@
|
|
|
723
748
|
"error.400.search_sort_needs_center",
|
|
724
749
|
"error.400.search_too_many_facets",
|
|
725
750
|
"error.400.search_too_many_ranges",
|
|
751
|
+
"error.400.search_unknown_category",
|
|
726
752
|
"error.400.search_unknown_doc_type",
|
|
727
753
|
"error.400.search_unknown_sort",
|
|
728
754
|
"error.400.search_window_exceeded",
|
|
@@ -853,6 +879,9 @@
|
|
|
853
879
|
"search.nav.ranking",
|
|
854
880
|
"search.nav.ranking.short",
|
|
855
881
|
"search.nav.results",
|
|
882
|
+
"search.other_categories.label",
|
|
883
|
+
"search.other_categories.more",
|
|
884
|
+
"search.other_categories.narrow",
|
|
856
885
|
"search.partition.all",
|
|
857
886
|
"search.partition.label",
|
|
858
887
|
"search.range.price",
|
|
@@ -915,10 +944,13 @@
|
|
|
915
944
|
],
|
|
916
945
|
"exports": {
|
|
917
946
|
"runtime": [
|
|
947
|
+
"EMPTY_FACET_KEYS",
|
|
918
948
|
"FACETABLE_FEATURE_TYPES",
|
|
919
949
|
"FACET_PLAN_EVIDENCE",
|
|
920
950
|
"FILTER_PREFIX",
|
|
921
951
|
"FacetPanel",
|
|
952
|
+
"OTHER_CATEGORIES_LIMIT",
|
|
953
|
+
"OTHER_CATEGORIES_PHONE_LIMIT",
|
|
922
954
|
"RANGE_FEATURE_TYPES",
|
|
923
955
|
"RANGE_PICKER_MAX_VALUES",
|
|
924
956
|
"RANGE_PREFIX",
|
|
@@ -948,6 +980,7 @@
|
|
|
948
980
|
"SearchStateProvider",
|
|
949
981
|
"activeFilterCount",
|
|
950
982
|
"buildFacetGroups",
|
|
983
|
+
"buildFacetKeyMap",
|
|
951
984
|
"buildRangeGroups",
|
|
952
985
|
"clearFilters",
|
|
953
986
|
"consonantKey",
|
|
@@ -962,7 +995,11 @@
|
|
|
962
995
|
"explainSearchError",
|
|
963
996
|
"facetGroupHasEvidence",
|
|
964
997
|
"facetGroupIsDrawable",
|
|
998
|
+
"facetGroupIsVocabularyBacked",
|
|
999
|
+
"facetKeyForSlug",
|
|
1000
|
+
"facetKeyMapFromLabels",
|
|
965
1001
|
"facetOptionLabel",
|
|
1002
|
+
"facetSlugForKey",
|
|
966
1003
|
"isCountNuanceOnly",
|
|
967
1004
|
"isFacetableFeature",
|
|
968
1005
|
"isRangeFeature",
|
|
@@ -970,6 +1007,7 @@
|
|
|
970
1007
|
"navEntries",
|
|
971
1008
|
"offerableCategories",
|
|
972
1009
|
"orderFacetGroupsBySchema",
|
|
1010
|
+
"otherCategoryLeaf",
|
|
973
1011
|
"ownsParam",
|
|
974
1012
|
"parseDegradations",
|
|
975
1013
|
"parseSearchState",
|
|
@@ -987,8 +1025,11 @@
|
|
|
987
1025
|
"translitKey",
|
|
988
1026
|
"translitPrefixMatch",
|
|
989
1027
|
"useAppliedSort",
|
|
1028
|
+
"useFacetKeys",
|
|
990
1029
|
"useFacetPanel",
|
|
991
1030
|
"useHostFacetLabels",
|
|
1031
|
+
"useOtherCategories",
|
|
1032
|
+
"usePublishFacetKeys",
|
|
992
1033
|
"useRankingDisclosure",
|
|
993
1034
|
"useSearchAnalytics",
|
|
994
1035
|
"useSearchApi",
|
|
@@ -1006,6 +1047,7 @@
|
|
|
1006
1047
|
"CreateSearchRuntimeOptions",
|
|
1007
1048
|
"FacetCategoryCount",
|
|
1008
1049
|
"FacetGroup",
|
|
1050
|
+
"FacetKeyMap",
|
|
1009
1051
|
"FacetLabelRequest",
|
|
1010
1052
|
"FacetLabelResolver",
|
|
1011
1053
|
"FacetLabelSource",
|
|
@@ -1016,6 +1058,8 @@
|
|
|
1016
1058
|
"FacetPanelBag",
|
|
1017
1059
|
"FacetSelection",
|
|
1018
1060
|
"FacetWithheldGroup",
|
|
1061
|
+
"OtherCategoriesBag",
|
|
1062
|
+
"OtherCategoryRow",
|
|
1019
1063
|
"ParseSearchStateOptions",
|
|
1020
1064
|
"ParsedSearchState",
|
|
1021
1065
|
"RangeGroup",
|
package/nav-manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stapel/search-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Headless React pair for stapel-search: a typed query client, TanStack Query hooks, and a URL-first state codec that makes a search shareable by construction (filters, ranges, geo, sort and the keyset cursor all live in the query string). Drill-down facets rendered with their remaining counts and with the server's own honesty flags — approximate, skipped, degraded — never swallowed; keyset pagination with the window refusal named; DSA Art. 26 `promoted` marking carried into every card slot and the P2B Art. 5 ranking disclosure exposed as data. Zero visual opinion in the main entry; an opt-in /default subpath ships the antd skin, and /router binds the codec to react-router's useSearchParams.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
],
|
|
53
53
|
"size-limit": [
|
|
54
54
|
{
|
|
55
|
-
"name": "index — the headless pair (client + hooks + URL codec + facet model incl. the facetability rule, the label-source order, the across-alphabets prefix matcher, the SCHEMA-order comparator that puts a category's required axes first and the bounded-integer picker list): no antd, no react-router. Raised 12 → 12.5 KB for the rail-order comparator, the shared drawability predicate (one rule for the rail and the chip row) and the picker bounds",
|
|
55
|
+
"name": "index — the headless pair (client + hooks + URL codec + facet model incl. the facetability rule, the label-source order, the across-alphabets prefix matcher, the SCHEMA-order comparator that puts a category's required axes first and the bounded-integer picker list): no antd, no react-router. Raised 12 → 12.5 KB for the rail-order comparator, the shared drawability predicate (one rule for the rail and the chip row) and the picker bounds. Raised 12.5 → 13 KB for `useOtherCategories`, which reads the sections an answer is made of out of `facet_meta.categories` — the read that replaced a storefront's second request, then 13 → 13.5 KB for the SHORT FEATURE KEYS: the two-direction `url_key` map (built with the server's own collision rules, so an ambiguous short form keeps the slug on both sides), its publication seam from the answer up to the state provider, and the vocabulary-backed predicate the drawability rule and the dictionary shape now share",
|
|
56
56
|
"path": "dist/index.js",
|
|
57
|
-
"limit": "
|
|
57
|
+
"limit": "13.5 KB"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
|
-
"name": "default — the antd skin (query box + a typeahead that offers CATEGORY destinations with their live counts, filters incl. ranges/geo/category slots + the phone chip row with its leading category chip and the location summary row + the rail's evidence-ranked disclosure groups, panel search and sticky count/clear footer, results incl. the view switch, the card photo GALLERY as a SkinCarousel strip, the empty state's derived exits, ranking, the dictionary control for a vocabulary facet, the popular-values block, the partition row in both its chip and segmented variants, the select-style dictionary FIELD the desktop rail opens, the from/to pickers a bounded integer axis draws and the rail's own scrollbar sheet) must stay out of the main bundle. Raised 24.5 → 25.5 KB for those four controls, then 25.5 → 26.25 KB for the chip row's APPLIED mode — one chip per applied value and per numeric bound, each removing that one constraint beside a rail that is already on screen (a storefront was carrying its own copy of it)",
|
|
60
|
+
"name": "default — the antd skin (query box + a typeahead that offers CATEGORY destinations with their live counts, filters incl. ranges/geo/category slots + the phone chip row with its leading category chip and the location summary row + the rail's evidence-ranked disclosure groups, panel search and sticky count/clear footer, results incl. the view switch, the card photo GALLERY as a SkinCarousel strip, the empty state's derived exits, ranking, the dictionary control for a vocabulary facet, the popular-values block, the partition row in both its chip and segmented variants, the select-style dictionary FIELD the desktop rail opens, the from/to pickers a bounded integer axis draws and the rail's own scrollbar sheet) must stay out of the main bundle. Raised 24.5 → 25.5 KB for those four controls, then 25.5 → 26.25 KB for the chip row's APPLIED mode — one chip per applied value and per numeric bound, each removing that one constraint beside a rail that is already on screen (a storefront was carrying its own copy of it), then 26.25 → 27 KB for the \"search in other categories\" LINE — which is a net deletion on the page that mounts it, replacing a full-width block of one row per section that arrived after the results and pushed them, then 27 → 27.75 KB for the two frames the page now tells apart: the dictionary FIELD reaching `<SearchPage>` at all (per-layout default, field in the rail and inline in the sheet) and the footer bar being static in a column and sticky in a sheet, where it used to be pinned over the last two groups everywhere",
|
|
61
61
|
"path": "dist/default/index.js",
|
|
62
|
-
"limit": "
|
|
62
|
+
"limit": "27.75 KB"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"name": "router — the react-router binding is opt-in; the main entry must never pull a router",
|
|
@@ -72,9 +72,9 @@
|
|
|
72
72
|
"limit": "4.75 KB"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
"name": "i18n/es — the Spanish bundle is opt-in, not carried by the main entry",
|
|
75
|
+
"name": "i18n/es — the Spanish bundle is opt-in, not carried by the main entry. Raised 3.5 → 3.75 KB for the three strings of the other-categories line",
|
|
76
76
|
"path": "dist/i18n/es.js",
|
|
77
|
-
"limit": "3.
|
|
77
|
+
"limit": "3.75 KB"
|
|
78
78
|
}
|
|
79
79
|
],
|
|
80
80
|
"peerDependencies": {
|
|
@@ -115,12 +115,12 @@
|
|
|
115
115
|
"size-limit": "^11.2.0",
|
|
116
116
|
"typescript": "^5.8.3",
|
|
117
117
|
"vitest": "^3.2.4",
|
|
118
|
+
"@stapel/attributes-react": "^0.16.0",
|
|
119
|
+
"@stapel/core": "^0.25.1",
|
|
118
120
|
"@stapel/image": "^0.4.2",
|
|
119
|
-
"@stapel/core": "^0.25.0",
|
|
120
121
|
"@stapel/showcase": "^0.3.0",
|
|
121
122
|
"@stapel/tokens": "^0.7.0",
|
|
122
|
-
"@stapel/
|
|
123
|
-
"@stapel/tokens-antd": "^0.16.1"
|
|
123
|
+
"@stapel/tokens-antd": "^0.17.0"
|
|
124
124
|
},
|
|
125
125
|
"engines": {
|
|
126
126
|
"node": ">=22"
|
|
@@ -148,6 +148,13 @@ export interface components {
|
|
|
148
148
|
*/
|
|
149
149
|
radius_km?: number;
|
|
150
150
|
};
|
|
151
|
+
/** @description The queried category in both forms an address can carry. */
|
|
152
|
+
CategoryResolved: {
|
|
153
|
+
/** @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`. */
|
|
154
|
+
path: string;
|
|
155
|
+
/** @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. */
|
|
156
|
+
slugs: string[] | null;
|
|
157
|
+
};
|
|
151
158
|
/** @description One destination in the dropdown, ready to render and ready to follow. */
|
|
152
159
|
CategorySuggestion: {
|
|
153
160
|
/** @description Category id. A `listings`-graded row derives it from the path's leaf segment. */
|
|
@@ -209,8 +216,14 @@ export interface components {
|
|
|
209
216
|
/** @description True when this filter actually narrowed the answer. A false one still contributed to each row's `match_count`. */
|
|
210
217
|
applied: boolean;
|
|
211
218
|
};
|
|
212
|
-
/** @description
|
|
219
|
+
/** @description The heading for one facet group, plus captions for its option codes. */
|
|
213
220
|
FacetLabels: {
|
|
221
|
+
/** @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. */
|
|
222
|
+
label: string | null;
|
|
223
|
+
/** @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. */
|
|
224
|
+
label_translatable: boolean;
|
|
225
|
+
/** @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. */
|
|
226
|
+
url_key: string;
|
|
214
227
|
/** @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. */
|
|
215
228
|
translatable: boolean;
|
|
216
229
|
values: {
|
|
@@ -347,6 +360,8 @@ export interface components {
|
|
|
347
360
|
/** @description The query envelope: AnchorPagination's keys, plus what search owes. */
|
|
348
361
|
SearchResponse: {
|
|
349
362
|
items: components["schemas"]["SearchItem"][];
|
|
363
|
+
/** @description The category this answer filtered on, in both addressable forms. `null` when the query named no category. */
|
|
364
|
+
category_resolved: components["schemas"]["CategoryResolved"] | null;
|
|
350
365
|
/** @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. */
|
|
351
366
|
bands?: components["schemas"]["BandSummary"][];
|
|
352
367
|
/** @description What the query's words became. Absent entirely while QUERY_UNDERSTANDING is off or `qu=off` was sent. */
|
|
@@ -357,7 +372,7 @@ export interface components {
|
|
|
357
372
|
[key: string]: number;
|
|
358
373
|
};
|
|
359
374
|
};
|
|
360
|
-
/** @description {slug: {translatable, values: {value: caption}}} for
|
|
375
|
+
/** @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. */
|
|
361
376
|
facet_labels: {
|
|
362
377
|
[key: string]: components["schemas"]["FacetLabels"];
|
|
363
378
|
};
|
|
@@ -428,7 +443,7 @@ export interface operations {
|
|
|
428
443
|
anchor?: string;
|
|
429
444
|
/** @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. */
|
|
430
445
|
bbox?: string;
|
|
431
|
-
/** @description root/leaf path; a prefix filter, so a parent finds its descendants. */
|
|
446
|
+
/** @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. */
|
|
432
447
|
category?: string;
|
|
433
448
|
/** @description next | prev. */
|
|
434
449
|
direction?: string;
|
package/src/api/types.ts
CHANGED
|
@@ -24,11 +24,17 @@ export type Schemas = components["schemas"];
|
|
|
24
24
|
* slug either; ABSENT is a server too old to send one, and both read the same
|
|
25
25
|
* way here (fall through to the schema).
|
|
26
26
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* WHY IT IS NOT THE GENERATED SHAPE: stapel-search 0.14.5's `schema.json`
|
|
28
|
+
* declares this field REQUIRED, but the contract this pair announces is
|
|
29
|
+
* `>=0.14 <0.15`, and a 0.14.0 server inside that range sends no `label` at
|
|
30
|
+
* all. The generated member is therefore `Omit`ted and re-declared here as
|
|
31
|
+
* optional-and-nullable — a type must not promise a field a server the pair
|
|
32
|
+
* says it supports does not send.
|
|
30
33
|
*/
|
|
31
|
-
export type FacetLabels =
|
|
34
|
+
export type FacetLabels = Omit<
|
|
35
|
+
Schemas["FacetLabels"],
|
|
36
|
+
"label" | "label_translatable" | "url_key"
|
|
37
|
+
> & {
|
|
32
38
|
readonly label?: string | null;
|
|
33
39
|
/**
|
|
34
40
|
* Whether {@link label} is a translation KEY rather than a caption, the way
|
|
@@ -43,6 +49,38 @@ export type FacetLabels = Schemas["FacetLabels"] & {
|
|
|
43
49
|
* fixture captured from the wire is not a type error.
|
|
44
50
|
*/
|
|
45
51
|
readonly label_translatable?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* What this group is called IN THE ADDRESS: `f.<url_key>`, `r.<url_key>`.
|
|
54
|
+
*
|
|
55
|
+
* The slug minus the type suffix an importer mints (`_select`,
|
|
56
|
+
* `_ref_select`, `_int`, `_bool`, `_string`) where dropping it stays
|
|
57
|
+
* unambiguous among the features of the category in scope, and the slug
|
|
58
|
+
* itself otherwise — and always when the query names no category
|
|
59
|
+
* (stapel-search 0.14.4+, `facets.url_keys`). Derived per request, never
|
|
60
|
+
* stored: the slug remains the feature's identity and both forms are
|
|
61
|
+
* accepted inside the scope, which is what lets a client write the short
|
|
62
|
+
* one without a migration behind it.
|
|
63
|
+
*
|
|
64
|
+
* WHY IT IS NOT THE GENERATED SHAPE: 0.14.5 declares it REQUIRED, and the
|
|
65
|
+
* announced contract is `>=0.14 <0.15` — a 0.14.0 server in that range
|
|
66
|
+
* states no `url_key`, and the codec's whole point is that such a link
|
|
67
|
+
* still works. `Omit`ted from the generated member and re-declared
|
|
68
|
+
* optional here. Measured on a live answer 2026-09-04:
|
|
69
|
+
* `make_ref_select` → `make`, `fuel_type_ref_select` → `fuel_type`,
|
|
70
|
+
* `model` → `model`.
|
|
71
|
+
*/
|
|
72
|
+
readonly url_key?: string | null;
|
|
73
|
+
/**
|
|
74
|
+
* The vocabulary this group's values are drawn from, when the server names
|
|
75
|
+
* one.
|
|
76
|
+
*
|
|
77
|
+
* The one fact that decides whether an axis is a DICTIONARY rather than a
|
|
78
|
+
* list, and the client's second-best source for it: the first is the
|
|
79
|
+
* category schema's own `optionsRef`, which a host that threaded no schema
|
|
80
|
+
* does not have. Absent on every server that does not state it — absence
|
|
81
|
+
* is not "inline", it is "unsaid", and the schema is asked next.
|
|
82
|
+
*/
|
|
83
|
+
readonly vocabulary?: string | null;
|
|
46
84
|
};
|
|
47
85
|
|
|
48
86
|
/** `facet_labels` as a whole: `{slug: {label, translatable, values}}`. */
|
|
@@ -67,12 +67,9 @@ import type { CSSProperties, ReactElement } 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 {
|
|
71
|
-
VOCABULARY_BACKED_TYPES,
|
|
72
|
-
featureConfig,
|
|
73
|
-
featureType,
|
|
74
|
-
} from "@stapel/attributes-react";
|
|
70
|
+
import { featureConfig, featureType } from "@stapel/attributes-react";
|
|
75
71
|
import type { FeatureDef } from "@stapel/attributes-react";
|
|
72
|
+
import { facetGroupIsVocabularyBacked } from "../state/facets.js";
|
|
76
73
|
import type { FacetGroup, FacetOption } from "../state/facets.js";
|
|
77
74
|
import { translitPrefixMatch } from "../state/translit.js";
|
|
78
75
|
import { SEARCH_I18N_KEYS } from "../i18n/keys.js";
|
|
@@ -147,14 +144,21 @@ function singleChoice(feature: FeatureDef | undefined): boolean {
|
|
|
147
144
|
}
|
|
148
145
|
|
|
149
146
|
/**
|
|
150
|
-
* Is this group a DICTIONARY —
|
|
147
|
+
* Is this group a DICTIONARY — an axis whose values live in a vocabulary?
|
|
151
148
|
*
|
|
152
|
-
* Two ways to be one,
|
|
153
|
-
* case is the one where it is empty:
|
|
149
|
+
* Two ways to be one, and only the second one counts anything:
|
|
154
150
|
*
|
|
155
|
-
* - the
|
|
156
|
-
*
|
|
157
|
-
* table to draw
|
|
151
|
+
* - the axis is VOCABULARY-BACKED (`facetGroupIsVocabularyBacked`): the def
|
|
152
|
+
* types it `ref_select`/`ref_hierarchical_select`, so its config is a
|
|
153
|
+
* POINTER and there was never an option table to draw — or there is no def
|
|
154
|
+
* and the answer named the vocabulary itself. **However many buckets came
|
|
155
|
+
* back.** This threshold used to be counted against the answer's evidence,
|
|
156
|
+
* and on a stand holding three cars the make axis has three buckets, drew
|
|
157
|
+
* three checkboxes, and hid the other four hundred makes behind nothing at
|
|
158
|
+
* all: the founder's "what if there are hundreds of options" is a question about the DICTIONARY,
|
|
159
|
+
* and the dictionary is large whether or not this leaf has stock. The
|
|
160
|
+
* field is also the only control that can search values the answer never
|
|
161
|
+
* enumerated, which is exactly the case a thin stand produces;
|
|
158
162
|
* - there is NO def at all and the answer came back with more values than a
|
|
159
163
|
* fold. At a live classified's cars branch the storefront passed an empty
|
|
160
164
|
* feature list, so the 418 makes arrived as an unnamed, untyped group of
|
|
@@ -162,20 +166,20 @@ function singleChoice(feature: FeatureDef | undefined): boolean {
|
|
|
162
166
|
* answers that, and refusing to draw one because the schema is missing
|
|
163
167
|
* punishes the buyer for the wiring.
|
|
164
168
|
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
+
* An INLINE option set is never one, whatever its length: a `select` carries
|
|
170
|
+
* its own table, that table is the whole of the axis, and a small one
|
|
171
|
+
* (≤ {@link FACET_DICTIONARY_THRESHOLD} options) is a list a person reads at
|
|
172
|
+
* a glance rather than types into.
|
|
169
173
|
*/
|
|
170
174
|
export function isDictionaryFacet(group: FacetGroup): boolean {
|
|
175
|
+
if (facetGroupIsVocabularyBacked(group)) return true;
|
|
176
|
+
// A typed def that is not vocabulary-backed carries its options inline:
|
|
177
|
+
// checkboxes or pills, however many there are.
|
|
178
|
+
if (group.feature !== undefined) return false;
|
|
171
179
|
const buckets = group.options.filter(
|
|
172
180
|
(option) => option.count !== null && option.count > 0
|
|
173
181
|
).length;
|
|
174
|
-
|
|
175
|
-
const feature = group.feature;
|
|
176
|
-
if (feature === undefined) return true;
|
|
177
|
-
const type = featureType(feature);
|
|
178
|
-
return type !== undefined && VOCABULARY_BACKED_TYPES.includes(type);
|
|
182
|
+
return buckets > FACET_DICTIONARY_THRESHOLD;
|
|
179
183
|
}
|
|
180
184
|
|
|
181
185
|
/**
|
|
@@ -189,9 +193,9 @@ export function isDictionaryFacet(group: FacetGroup): boolean {
|
|
|
189
193
|
* `maxSelected: 1` over a 418-value vocabulary, so "pick one" won and the
|
|
190
194
|
* control it produced was four hundred pills in a 280px rail — a wall
|
|
191
195
|
* with a different border radius. Above the fold the shape a person needs
|
|
192
|
-
* is a search box, whether or not they may tick two
|
|
193
|
-
*
|
|
194
|
-
*
|
|
196
|
+
* is a search box, whether or not they may tick two. A single-choice axis
|
|
197
|
+
* with an INLINE option table still means pills, because a dictionary is
|
|
198
|
+
* now about where the values live and not about how many came back;
|
|
195
199
|
* - and a dictionary is a dictionary before it is a checkbox list, because
|
|
196
200
|
* the checkbox list is the shape it was drawn as when nobody could pick a
|
|
197
201
|
* make.
|
|
@@ -260,17 +260,28 @@ export interface FacetPanelPaneProps extends ThemeModeProp {
|
|
|
260
260
|
*/
|
|
261
261
|
readonly skippedNotice?: boolean;
|
|
262
262
|
/**
|
|
263
|
-
* Draw the
|
|
264
|
-
*
|
|
265
|
-
* heading row — one control, not two) beside it. Default
|
|
263
|
+
* Draw the footer inside the panel: the live result count as the bar's
|
|
264
|
+
* strong text, and the clear-all control (which then moves out of the
|
|
265
|
+
* heading row — one control, not two) beside it. Default: no bar.
|
|
266
266
|
*
|
|
267
267
|
* `<SearchPage>` turns it on for the desktop RAIL only. Desktop filters
|
|
268
268
|
* apply instantly, so the bar is FEEDBACK plus the way out, not an apply
|
|
269
269
|
* button — which is exactly why the phone sheet must not get it: the sheet
|
|
270
270
|
* already closes through its own "Show N results" footer, and a second
|
|
271
271
|
* count-bearing bar above that one would be the same sentence twice.
|
|
272
|
+
*
|
|
273
|
+
* ── Where it sits, and why that is a choice ───────────────────────────────
|
|
274
|
+
*
|
|
275
|
+
* `"sticky"` (and `true`, which is what it has always meant) pins the bar to
|
|
276
|
+
* the bottom of the panel's own scroll port. That is right in a SHEET, whose
|
|
277
|
+
* port is the sheet and whose bar is the way out of it. In the desktop
|
|
278
|
+
* COLUMN the rail scrolls with the page, so an opaque bar pinned to the
|
|
279
|
+
* bottom of the viewport parks itself over the last two facet groups and
|
|
280
|
+
* they cannot be reached at all — a storefront was reaching for `!important`
|
|
281
|
+
* to lift it off. `"static"` puts the bar after the groups, where it stops
|
|
282
|
+
* covering anything, and the column layout of `<SearchPage>` passes it.
|
|
272
283
|
*/
|
|
273
|
-
readonly footerBar?: boolean;
|
|
284
|
+
readonly footerBar?: boolean | "sticky" | "static";
|
|
274
285
|
/**
|
|
275
286
|
* The partition control, drawn at the TOP of the panel — above the price,
|
|
276
287
|
* above every facet.
|
|
@@ -319,6 +330,9 @@ export interface FacetPanelPaneProps extends ThemeModeProp {
|
|
|
319
330
|
function RailFooterBar(props: {
|
|
320
331
|
readonly activeFilters: number;
|
|
321
332
|
readonly clearAll: () => void;
|
|
333
|
+
/** `"sticky"` pins it to the scroll port's floor; `"static"` lets it sit
|
|
334
|
+
* after the last group. See {@link FacetPanelPaneProps.footerBar}. */
|
|
335
|
+
readonly position: "sticky" | "static";
|
|
322
336
|
}): ReactElement | null {
|
|
323
337
|
const t = useT();
|
|
324
338
|
const tPlural = useTPlural();
|
|
@@ -340,9 +354,9 @@ function RailFooterBar(props: {
|
|
|
340
354
|
return (
|
|
341
355
|
<div
|
|
342
356
|
data-testid="facets-footer-bar"
|
|
357
|
+
data-position={props.position}
|
|
343
358
|
style={{
|
|
344
|
-
position: "sticky",
|
|
345
|
-
bottom: 0,
|
|
359
|
+
...(props.position === "sticky" ? { position: "sticky", bottom: 0 } : {}),
|
|
346
360
|
// Opaque, or the options scrolling under the bar read THROUGH it.
|
|
347
361
|
background: token.colorBgContainer,
|
|
348
362
|
borderBlockStart: `1px solid ${token.colorSplit}`,
|
|
@@ -513,6 +527,13 @@ export function FacetPanelPane(props: FacetPanelPaneProps): ReactElement {
|
|
|
513
527
|
// panel's own search box: the URL is the search, and how much of the rail a
|
|
514
528
|
// person has unfolded is not part of it.
|
|
515
529
|
const [tailOpen, setTailOpen] = useState(false);
|
|
530
|
+
// `true` is the shape the prop shipped with and keeps meaning: pinned.
|
|
531
|
+
const footerBar: "sticky" | "static" | "none" =
|
|
532
|
+
props.footerBar === true
|
|
533
|
+
? "sticky"
|
|
534
|
+
: props.footerBar === false || props.footerBar === undefined
|
|
535
|
+
? "none"
|
|
536
|
+
: props.footerBar;
|
|
516
537
|
|
|
517
538
|
return (
|
|
518
539
|
<SkinTheme {...(props.mode !== undefined ? { mode: props.mode } : {})}>
|
|
@@ -577,7 +598,7 @@ export function FacetPanelPane(props: FacetPanelPaneProps): ReactElement {
|
|
|
577
598
|
{/* With the footer bar on, clear-all lives THERE — beside the
|
|
578
599
|
count it acts on — and drawing it here too would be two
|
|
579
600
|
identical exits one panel apart. */}
|
|
580
|
-
{bag.activeFilters > 0 &&
|
|
601
|
+
{bag.activeFilters > 0 && footerBar === "none" && (
|
|
581
602
|
<Button
|
|
582
603
|
style={FACET_CLEAR}
|
|
583
604
|
onClick={bag.clearAll}
|
|
@@ -845,10 +866,11 @@ export function FacetPanelPane(props: FacetPanelPaneProps): ReactElement {
|
|
|
845
866
|
</>
|
|
846
867
|
)}
|
|
847
868
|
|
|
848
|
-
{
|
|
869
|
+
{footerBar !== "none" && (
|
|
849
870
|
<RailFooterBar
|
|
850
871
|
activeFilters={bag.activeFilters}
|
|
851
872
|
clearAll={bag.clearAll}
|
|
873
|
+
position={footerBar}
|
|
852
874
|
/>
|
|
853
875
|
)}
|
|
854
876
|
</Flex>
|