@stapel/search-react 0.8.0 → 0.9.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.
- package/CHANGELOG.md +42 -0
- package/dist/default/FacetPanelPane.d.ts +30 -0
- package/dist/default/FacetPanelPane.d.ts.map +1 -1
- package/dist/default/FacetPanelPane.js +25 -7
- package/dist/default/FacetPanelPane.js.map +1 -1
- package/dist/default/FilterChips.d.ts +9 -0
- package/dist/default/FilterChips.d.ts.map +1 -1
- package/dist/default/FilterChips.js +8 -9
- package/dist/default/FilterChips.js.map +1 -1
- package/dist/default/SearchPage.d.ts +19 -0
- package/dist/default/SearchPage.d.ts.map +1 -1
- package/dist/default/SearchPage.js +18 -4
- package/dist/default/SearchPage.js.map +1 -1
- package/dist/default/index.d.ts +6 -1
- package/dist/default/index.d.ts.map +1 -1
- package/dist/default/index.js +6 -1
- package/dist/default/index.js.map +1 -1
- package/dist/headless/SearchStateProvider.d.ts +35 -0
- package/dist/headless/SearchStateProvider.d.ts.map +1 -1
- package/dist/headless/SearchStateProvider.js +38 -3
- package/dist/headless/SearchStateProvider.js.map +1 -1
- package/dist/i18n/es.js +1 -1
- package/dist/i18n/es.js.map +1 -1
- package/dist/i18n/keys.d.ts +12 -1
- package/dist/i18n/keys.d.ts.map +1 -1
- package/dist/i18n/keys.js +13 -2
- package/dist/i18n/keys.js.map +1 -1
- package/dist/i18n/ru.js +1 -1
- package/dist/i18n/ru.js.map +1 -1
- package/llms.txt +2 -2
- package/manifest.json +3 -3
- package/nav-manifest.json +1 -1
- package/package.json +5 -5
- package/src/analytics/generated/events.json +1 -1
- package/src/default/FacetPanelPane.tsx +46 -6
- package/src/default/FilterChips.tsx +17 -9
- package/src/default/SearchPage.tsx +40 -1
- package/src/default/index.ts +6 -1
- package/src/headless/SearchStateProvider.tsx +80 -3
- package/src/i18n/es.ts +1 -1
- package/src/i18n/keys.ts +13 -2
- package/src/i18n/ru.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,47 @@
|
|
|
1
1
|
# @stapel/search-react
|
|
2
2
|
|
|
3
|
+
## 0.9.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d1125bc: Regenerated against the attributes-v2 contract pins: stapel-categories 0.7.0,
|
|
8
|
+
stapel-listings 0.10.0, stapel-search 0.3.1.
|
|
9
|
+
|
|
10
|
+
What moves in the wire types: `FeatureCompact` and `ResolvedFeature` gain
|
|
11
|
+
`rules`, `description`, `example`, `default`, `hints` and `group` — the form
|
|
12
|
+
metadata an imported catalogue actually carries, which is what
|
|
13
|
+
`<FeatureFields>` draws sections, help lines, placeholders and hints from
|
|
14
|
+
instead of a host's hand-written table; `Category` gains `external_id`; the two
|
|
15
|
+
vocabulary-backed value types (`ref_select`, `ref_hierarchical_select`) appear
|
|
16
|
+
in the type enums; and the error registry gains
|
|
17
|
+
`error.400.feature_invalid_rules`.
|
|
18
|
+
|
|
19
|
+
search-react's regen is contract metadata only — the facet mapping for the two
|
|
20
|
+
ref types (`term` / `path`, and no `closed_options` for any config carrying an
|
|
21
|
+
`optionsRef`) is decided server-side in stapel-search 0.3.1 and reaches this
|
|
22
|
+
pair as facet rows, not as a new surface.
|
|
23
|
+
|
|
24
|
+
## 0.9.0
|
|
25
|
+
|
|
26
|
+
### Minor Changes
|
|
27
|
+
|
|
28
|
+
- e1b1d9b: **A location is now said in words, and a search can open where the visitor is.** `geoLabel` and `defaultGeo` on `<SearchPage>`; `geoLabel` on `<FacetPanelPane>` and `<FilterChips>`; `defaultGeo` on `<SearchStateProvider>`.
|
|
29
|
+
|
|
30
|
+
**The panel printed coordinates.** Under the "Location" heading, on the desktop rail and on the phone's location chip, a person who had chosen a place on a map read `Around 55.756, 37.617`. That is the pair's own storage leaking onto the screen: `lat`/`lon`/`radius_km` are URL parameters because the URL is the state, and none of that is a display concern. Two numbers to three decimals cannot be checked by the one reader who could have checked an address — so a point that landed in the wrong suburb looked exactly as authoritative as the right one, and the right one looked like machinery. It is the same defect class this pair is careful about everywhere else: a value rendered as if it were an answer, when nobody can tell whether it is.
|
|
31
|
+
|
|
32
|
+
**`geoLabel`** is what the constraint is CALLED. Whoever turned an address into that point still has the address — the geocoder's own answer, the city an IP guess named, the text on the map pin — and hands it back: `geoLabel="Tverskaya, Moscow"`. Set it once on `<SearchPage>` and both filter surfaces take it, so the chip row and the rail cannot drift into describing the same URL two different ways. Without one the line reads **"A chosen place on the map"** (`search.geo.chosen_place`, en/ru/es) — an honest sentence about a place this package genuinely cannot name, because naming it needs a geocoder and a search package must not grow one to fix a bad line. `search.geo.center` (`"Around {lat}, {lon}"`) is **removed** from the key registry and from all three bundles; the bbox sentence is unchanged, since an area on the screen was always describable without measuring it.
|
|
33
|
+
|
|
34
|
+
**`defaultGeo` — the search opens where the visitor is.** A storefront that knows roughly where somebody is standing should not make them type it: a granted browser prompt, or the server's IP guess when there was none. The host resolves it — `usePermission("geolocation")` and a geocoder both live outside this pair — and passes the two numbers in. The page still does not know what a map is.
|
|
35
|
+
|
|
36
|
+
Everything hard about the feature is about not overruling anybody, and the URL is what makes the rules statable:
|
|
37
|
+
|
|
38
|
+
- **Only into a URL that carries no geo at all.** A link with `lat`/`lon` or `bbox` already means a place, and it must mean the same place for everyone who opens it. A default that overwrote it would turn one address bar into two different searches.
|
|
39
|
+
- **Once, and never again after a clear.** Tracked as "has anyone spoken about location yet" in a ref, not by comparing the default against the current value — a cleared location and an unapplied default are identical in the state, and only the record of who spoke tells them apart. `setGeo` marks the question answered, including when the answer is "anywhere".
|
|
40
|
+
- **Late is fine.** A permission prompt and an IP round trip both resolve after the first paint, so `undefined` on mount and a value three renders later still applies — provided the URL is still empty of geo at that moment. The prop is typed `SearchGeo | undefined` for exactly this, so a host passes what it has without a conditional spread.
|
|
41
|
+
- **It replaces the history entry rather than pushing one.** The visitor did not perform this change; Back should leave the page, not undo a centring they never asked for. The adapter seam has carried `{ replace: true }` since it was written, and the react-router binding honours it.
|
|
42
|
+
|
|
43
|
+
Tests cover all four rules plus the wire the centred search actually goes out on, and assert the coordinate's own digits appear nowhere in the rendered page — on either surface, in a chip, a heading or an aria-label — because a future sentence that quietly reintroduces them under a different key is the same defect.
|
|
44
|
+
|
|
3
45
|
## 0.8.0
|
|
4
46
|
|
|
5
47
|
### Minor Changes
|
|
@@ -62,6 +62,22 @@ export interface FacetPanelPaneProps extends ThemeModeProp {
|
|
|
62
62
|
/** The location control (`geo-react`). Unfilled, a location that arrived in
|
|
63
63
|
* the URL still gets its radius and a "clear" control. */
|
|
64
64
|
readonly renderGeoFilter?: (slot: GeoFilterSlotProps) => ReactNode;
|
|
65
|
+
/**
|
|
66
|
+
* What the current location constraint is CALLED, in words — the address or
|
|
67
|
+
* the city the host resolved.
|
|
68
|
+
*
|
|
69
|
+
* The panel owns `lat`/`lon`/`radius_km` as URL state and must never render
|
|
70
|
+
* them: a coordinate is what gets STORED, and storage is not a display
|
|
71
|
+
* concern. `55.756, 37.617` is unreadable to the one person who could have
|
|
72
|
+
* caught the mistake, so a wrong point looks as authoritative as a right one
|
|
73
|
+
* and a right one looks like machinery.
|
|
74
|
+
*
|
|
75
|
+
* Whoever turned an address into that point still has the address — the
|
|
76
|
+
* geocoder's own answer, the city an IP guess named, the label on the map
|
|
77
|
+
* pin — and hands it back here. Absent, the panel says a location is applied
|
|
78
|
+
* without pretending to name it (`search.geo.chosen_place`).
|
|
79
|
+
*/
|
|
80
|
+
readonly geoLabel?: ReactNode;
|
|
65
81
|
/** BCP-47 tags this deployment indexes — see {@link LanguageSelect}. */
|
|
66
82
|
readonly languages?: readonly string[];
|
|
67
83
|
/**
|
|
@@ -73,5 +89,19 @@ export interface FacetPanelPaneProps extends ThemeModeProp {
|
|
|
73
89
|
*/
|
|
74
90
|
readonly heading?: ReactNode;
|
|
75
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* What a location constraint is called when the host handed down no name.
|
|
94
|
+
*
|
|
95
|
+
* Two sentences, and neither of them is a number. A box is describable without
|
|
96
|
+
* one — it is the area on the screen — and a point is not, so the point's
|
|
97
|
+
* sentence says a place was chosen and stops there. The alternative that was
|
|
98
|
+
* shipped for four releases printed `Around 55.756, 37.617`, which is the
|
|
99
|
+
* defect class this pair is otherwise careful about everywhere else: a value
|
|
100
|
+
* the reader cannot check, rendered as if it were an answer.
|
|
101
|
+
*
|
|
102
|
+
* Shared with `<FilterChips>` so the phone row and the desktop panel cannot
|
|
103
|
+
* drift into saying two different things about the same URL.
|
|
104
|
+
*/
|
|
105
|
+
export declare function geoSummaryFallback(geo: SearchGeo, t: (key: string) => string): string;
|
|
76
106
|
export declare function FacetPanelPane(props: FacetPanelPaneProps): ReactElement;
|
|
77
107
|
//# sourceMappingURL=FacetPanelPane.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetPanelPane.d.ts","sourceRoot":"","sources":["../../src/default/FacetPanelPane.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAClD;AAED,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD;wCACoC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;gFAC4E;IAC5E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,SAAS,CAAC;IAC7E;8DAC0D;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"FacetPanelPane.d.ts","sourceRoot":"","sources":["../../src/default/FacetPanelPane.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAClD;AAED,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD;wCACoC;IACpC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;gFAC4E;IAC5E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,SAAS,CAAC;IAC7E;8DAC0D;IAC1D,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B;AAiDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,SAAS,EACd,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GACzB,MAAM,CAIR;AAuHD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CA6IvE"}
|
|
@@ -31,6 +31,24 @@ function CategoryFilter(props) {
|
|
|
31
31
|
setCategory(null);
|
|
32
32
|
}, children: t(SEARCH_I18N_KEYS.categoryClear) })] }));
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* What a location constraint is called when the host handed down no name.
|
|
36
|
+
*
|
|
37
|
+
* Two sentences, and neither of them is a number. A box is describable without
|
|
38
|
+
* one — it is the area on the screen — and a point is not, so the point's
|
|
39
|
+
* sentence says a place was chosen and stops there. The alternative that was
|
|
40
|
+
* shipped for four releases printed `Around 55.756, 37.617`, which is the
|
|
41
|
+
* defect class this pair is otherwise careful about everywhere else: a value
|
|
42
|
+
* the reader cannot check, rendered as if it were an answer.
|
|
43
|
+
*
|
|
44
|
+
* Shared with `<FilterChips>` so the phone row and the desktop panel cannot
|
|
45
|
+
* drift into saying two different things about the same URL.
|
|
46
|
+
*/
|
|
47
|
+
export function geoSummaryFallback(geo, t) {
|
|
48
|
+
return geo.kind === "bbox"
|
|
49
|
+
? t(SEARCH_I18N_KEYS.geoBox)
|
|
50
|
+
: t(SEARCH_I18N_KEYS.geoChosenPlace);
|
|
51
|
+
}
|
|
34
52
|
/**
|
|
35
53
|
* The location constraint.
|
|
36
54
|
*
|
|
@@ -39,6 +57,11 @@ function CategoryFilter(props) {
|
|
|
39
57
|
* number in the URL, and a link shared with `lat/lon/radius_km` is a link this
|
|
40
58
|
* panel can widen, tighten and clear without knowing what a map is. That is the
|
|
41
59
|
* difference between a slot and a hole.
|
|
60
|
+
*
|
|
61
|
+
* NAMING the centre is a third thing again, and it is the host's: this panel
|
|
62
|
+
* has two numbers and no way to turn them into a place. So it either says the
|
|
63
|
+
* name it was handed (`label`) or says that a place is chosen — never the
|
|
64
|
+
* numbers themselves. See {@link FacetPanelPaneProps.geoLabel}.
|
|
42
65
|
*/
|
|
43
66
|
function GeoFilter(props) {
|
|
44
67
|
const t = useT();
|
|
@@ -64,12 +87,7 @@ function GeoFilter(props) {
|
|
|
64
87
|
return null;
|
|
65
88
|
return slot === null ? null : (_jsxs(Flex, { vertical: true, gap: spacing[1], "data-testid": "search-geo", children: [_jsx(Typography.Text, { strong: true, children: t(SEARCH_I18N_KEYS.geoTitle) }), slot] }));
|
|
66
89
|
}
|
|
67
|
-
return (_jsxs(Flex, { vertical: true, gap: spacing[1], "data-testid": "search-geo", children: [_jsx(Typography.Text, { strong: true, children: t(SEARCH_I18N_KEYS.geoTitle) }), slot, _jsx(Typography.Text, { type: "secondary", "data-testid": "search-geo-summary", children: geo.kind === "
|
|
68
|
-
? t(SEARCH_I18N_KEYS.geoBox)
|
|
69
|
-
: t(SEARCH_I18N_KEYS.geoCenter, {
|
|
70
|
-
lat: geo.lat.toFixed(3),
|
|
71
|
-
lon: geo.lon.toFixed(3),
|
|
72
|
-
}) }), geo.kind === "center" && (_jsxs(Flex, { gap: spacing[2], align: "center", wrap: true, children: [_jsx(Typography.Text, { type: "secondary", "aria-hidden": "true", children: t(SEARCH_I18N_KEYS.geoRadiusLabel) }), _jsx(InputNumber, { min: 1, value: geo.radiusKm ?? null, "aria-label": t(SEARCH_I18N_KEYS.geoRadiusLabel), "data-testid": "search-geo-radius", onChange: (value) => {
|
|
90
|
+
return (_jsxs(Flex, { vertical: true, gap: spacing[1], "data-testid": "search-geo", children: [_jsx(Typography.Text, { strong: true, children: t(SEARCH_I18N_KEYS.geoTitle) }), slot, _jsx(Typography.Text, { type: "secondary", "data-testid": "search-geo-summary", children: props.label ?? geoSummaryFallback(geo, t) }), geo.kind === "center" && (_jsxs(Flex, { gap: spacing[2], align: "center", wrap: true, children: [_jsx(Typography.Text, { type: "secondary", "aria-hidden": "true", children: t(SEARCH_I18N_KEYS.geoRadiusLabel) }), _jsx(InputNumber, { min: 1, value: geo.radiusKm ?? null, "aria-label": t(SEARCH_I18N_KEYS.geoRadiusLabel), "data-testid": "search-geo-radius", onChange: (value) => {
|
|
73
91
|
setGeo({
|
|
74
92
|
kind: "center",
|
|
75
93
|
lat: geo.lat,
|
|
@@ -117,7 +135,7 @@ export function FacetPanelPane(props) {
|
|
|
117
135
|
? { render: props.renderCategoryFilter }
|
|
118
136
|
: {}) }), _jsx(LanguageSelect, { ...(props.languages !== undefined ? { languages: props.languages } : {}) }), _jsx(GeoFilter, { ...(props.renderGeoFilter !== undefined
|
|
119
137
|
? { render: props.renderGeoFilter }
|
|
120
|
-
: {}) }), bag.approximate && (_jsx(Alert, { type: "info", showIcon: true, "data-testid": "facets-approximate", title: t(SEARCH_I18N_KEYS.facetsApproximate) })), bag.skipped.length > 0 && (_jsx(Alert, { type: "warning", showIcon: true, "data-testid": "facets-skipped", title: t(SEARCH_I18N_KEYS.facetsSkipped, {
|
|
138
|
+
: {}), ...(props.geoLabel !== undefined ? { label: props.geoLabel } : {}) }), bag.approximate && (_jsx(Alert, { type: "info", showIcon: true, "data-testid": "facets-approximate", title: t(SEARCH_I18N_KEYS.facetsApproximate) })), bag.skipped.length > 0 && (_jsx(Alert, { type: "warning", showIcon: true, "data-testid": "facets-skipped", title: t(SEARCH_I18N_KEYS.facetsSkipped, {
|
|
121
139
|
slugs: skippedNames(bag.skipped, props.categoryFeatures, t),
|
|
122
140
|
}) })), ranges.length > 0 && (_jsx(Flex, { vertical: true, gap: spacing[3], "data-testid": "search-ranges", children: ranges.map((group) => (_jsx(RangeFilterRow, { group: group, onApply: bag.setRange }, group.slug))) })), ranges.length > 0 && _jsx(Divider, { style: { margin: 0 } }), _jsx(LoadList, { state: bag.state, testId: "facets", skeletonRows: 4, empty: _jsx(EmptyState, { compact: true, title: t(SEARCH_I18N_KEYS.facetsEmpty), testId: "facets-empty" }), failed: (error) => (_jsx(ErrorAlert, { testId: "facets-failed", thrown: error, message: t(SEARCH_I18N_KEYS.facetsLoadFailed) })), children: (groups) => (_jsxs(Flex, { vertical: true, gap: spacing[4], children: [groups
|
|
123
141
|
.filter((group) => group.options.length > 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetPanelPane.js","sourceRoot":"","sources":["../../src/default/FacetPanelPane.tsx"],"names":[],"mappings":";AAoCA,OAAO,EACL,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAI,EACJ,WAAW,EACX,UAAU,GACX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,GACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FacetPanelPane.js","sourceRoot":"","sources":["../../src/default/FacetPanelPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,15 @@ export interface FilterChipsProps {
|
|
|
20
20
|
* it the location chip appears only when the URL already carries a point,
|
|
21
21
|
* so a shared link can still be widened. */
|
|
22
22
|
readonly renderGeoFilter?: (slot: GeoFilterSlotProps) => ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* What the current location constraint is CALLED — see
|
|
25
|
+
* {@link FacetPanelPaneProps.geoLabel}. The chip carries it as its own text,
|
|
26
|
+
* which is the whole point of a chip row: "Berlin Mitte" states the filter
|
|
27
|
+
* on the results page, where `55.756, 37.617` stated only that a machine was
|
|
28
|
+
* involved. Absent, the chip reads `search.geo.chosen_place`; never a
|
|
29
|
+
* coordinate, on either surface.
|
|
30
|
+
*/
|
|
31
|
+
readonly geoLabel?: ReactNode;
|
|
23
32
|
/** Open the whole panel — the leading chip's action. The page owns that
|
|
24
33
|
* sheet, because the page is the surface it covers. */
|
|
25
34
|
readonly onOpenAll: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChips.d.ts","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterChips.d.ts","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAU3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,8DAA8D;AAC9D,eAAO,MAAM,cAAc,wBAAwB,CAAC;AAEpD,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAKnC;AAqBD,MAAM,WAAW,gBAAgB;IAC/B;iEAC6D;IAC7D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAClD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;gDAE4C;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,SAAS,CAAC;IACnE;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B;2DACuD;IACvD,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAiBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,CA6OjE"}
|
|
@@ -60,6 +60,7 @@ import { buildRangeGroups } from "../state/ranges.js";
|
|
|
60
60
|
import { SEARCH_I18N_KEYS } from "../i18n/keys.js";
|
|
61
61
|
import { FacetGroupControl } from "./FacetGroupControl.js";
|
|
62
62
|
import { RangeFilterRow } from "./RangeFilterRow.js";
|
|
63
|
+
import { geoSummaryFallback } from "./FacetPanelPane.js";
|
|
63
64
|
/** The class the scroller carries, for {@link chipRowCss}. */
|
|
64
65
|
export const CHIP_ROW_CLASS = "stapel-filter-chips";
|
|
65
66
|
/** The `href` the hoisted chip-row stylesheet is deduplicated by. */
|
|
@@ -141,17 +142,15 @@ export function FilterChips(props) {
|
|
|
141
142
|
const sheetFor = (id, title, body) => (_jsx(SkinDialog, { open: open === id, onClose: close, title: title, dismissLabel: t(SEARCH_I18N_KEYS.filtersDismiss), "data-testid": `filter-chip-sheet-${id}`, footer: _jsx(Button, { block: true, type: "primary", "data-testid": `filter-chip-apply-${id}`, "data-analytics": "none", "data-analytics-reason": "the filter is already applied; this closes the sheet", onClick: close, children: applyLabel }), children: body }));
|
|
142
143
|
const geo = state.geo;
|
|
143
144
|
const showGeoChip = props.renderGeoFilter !== undefined || geo !== undefined;
|
|
144
|
-
|
|
145
|
+
// Nothing applied: the chip is the FILTER's name ("Location"), because there
|
|
146
|
+
// is no constraint to describe yet. Applied: the host's name for the place,
|
|
147
|
+
// and failing that the sentence that admits the pair does not know it.
|
|
148
|
+
const geoChipLabel = geo === undefined
|
|
145
149
|
? t(SEARCH_I18N_KEYS.geoTitle)
|
|
146
|
-
:
|
|
147
|
-
? t(SEARCH_I18N_KEYS.geoBox)
|
|
148
|
-
: t(SEARCH_I18N_KEYS.geoCenter, {
|
|
149
|
-
lat: geo.lat.toFixed(3),
|
|
150
|
-
lon: geo.lon.toFixed(3),
|
|
151
|
-
});
|
|
150
|
+
: (props.geoLabel ?? geoSummaryFallback(geo, t));
|
|
152
151
|
return (_jsxs(_Fragment, { children: [_jsx("style", { href: CHIP_ROW_STYLE_HREF, precedence: "default", children: chipRowCss() }), _jsxs("div", { className: CHIP_ROW_CLASS, style: ROW, role: "group", "aria-label": t(SEARCH_I18N_KEYS.filtersChipsLabel), "data-testid": "search-filter-chips", "data-surface": surface, children: [_jsx(Button, { shape: "circle", "aria-label": t(SEARCH_I18N_KEYS.filtersAll), icon: _jsx(SlidersGlyph, {}), style: CHIP, "data-testid": "search-filters-open", "data-active": bag.activeFilters > 0 ? "true" : "false", "data-analytics": "none", "data-analytics-reason": "opening the filter sheet is a read, not a flow step", onClick: props.onOpenAll, children: bag.activeFilters > 0 && _jsx(ActiveDot, {}) }), showGeoChip && (_jsx(Button, { style: CHIP, shape: "round", type: geo !== undefined ? "primary" : "default", "data-testid": "search-chip-geo", "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
|
|
153
152
|
setOpen("geo");
|
|
154
|
-
}, children:
|
|
153
|
+
}, children: geoChipLabel })), ranges.map((group) => (_jsx(Button, { style: CHIP, shape: "round", type: group.active ? "primary" : "default", "data-testid": `search-chip-range-${group.slug}`, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
|
|
155
154
|
setOpen(`range:${group.slug}`);
|
|
156
155
|
}, children: group.label }, group.slug))), groups.map((group) => (_jsx(Button, { style: CHIP, shape: "round", type: group.selected.length > 0 ? "primary" : "default", "data-testid": `search-chip-${group.slug}`, "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
|
|
157
156
|
setOpen(`facet:${group.slug}`);
|
|
@@ -178,7 +177,7 @@ export function FilterChips(props) {
|
|
|
178
177
|
onChange: (next) => {
|
|
179
178
|
setGeo(next);
|
|
180
179
|
},
|
|
181
|
-
}) ?? _jsx(SlotPlaceholder, { name: "renderGeoFilter", "data-testid": "search-chip-geo-slot" }), geo !== undefined && (_jsxs(_Fragment, { children: [_jsx(Typography.Text, { type: "secondary", "data-testid": "search-chip-geo-summary", children:
|
|
180
|
+
}) ?? _jsx(SlotPlaceholder, { name: "renderGeoFilter", "data-testid": "search-chip-geo-slot" }), geo !== undefined && (_jsxs(_Fragment, { children: [_jsx(Typography.Text, { type: "secondary", "data-testid": "search-chip-geo-summary", children: geoChipLabel }), _jsx(Button, { style: { alignSelf: "flex-start" }, "data-testid": "search-chip-geo-clear", "data-analytics": "none", "data-analytics-reason": "a filter is a read, not a flow step", onClick: () => {
|
|
182
181
|
setGeo(null);
|
|
183
182
|
}, children: t(SEARCH_I18N_KEYS.geoClear) })] }))] }))] }));
|
|
184
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChips.js","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FilterChips.js","sourceRoot":"","sources":["../../src/default/FilterChips.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { ReactElement, ReactNode } from "react";
|
|
|
2
2
|
import type { FeatureDef } from "@stapel/attributes-react";
|
|
3
3
|
import type { SearchParamsAdapter } from "../headless/SearchStateProvider.js";
|
|
4
4
|
import type { ParseSearchStateOptions } from "../state/urlState.js";
|
|
5
|
+
import type { SearchGeo } from "../api/types.js";
|
|
5
6
|
import type { CategoryFilterSlotProps, GeoFilterSlotProps } from "./FacetPanelPane.js";
|
|
6
7
|
import type { SearchView } from "./ViewSwitch.js";
|
|
7
8
|
import type { DegradationNoticeVariant } from "./DegradationNotice.js";
|
|
@@ -37,6 +38,24 @@ export interface SearchPageProps extends ThemeModeProp, ParseSearchStateOptions
|
|
|
37
38
|
readonly renderCategoryFilter?: (slot: CategoryFilterSlotProps) => ReactNode;
|
|
38
39
|
/** The location control slot (`geo-react`). */
|
|
39
40
|
readonly renderGeoFilter?: (slot: GeoFilterSlotProps) => ReactNode;
|
|
41
|
+
/**
|
|
42
|
+
* What the current location is CALLED, in words — set once here and it
|
|
43
|
+
* reaches both filter surfaces, the desktop panel and the phone chip row.
|
|
44
|
+
* See {@link FacetPanelPaneProps.geoLabel}: this page never prints a
|
|
45
|
+
* coordinate, with or without it.
|
|
46
|
+
*/
|
|
47
|
+
readonly geoLabel?: ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Open the search centred where the visitor is, when the URL says nothing
|
|
50
|
+
* about location — see {@link SearchStateProviderProps.defaultGeo} for the
|
|
51
|
+
* four rules that keep it from overruling a link or a person.
|
|
52
|
+
*
|
|
53
|
+
* The host resolves the position; this page does not know what a map or a
|
|
54
|
+
* geocoder is and must not learn. A browser prompt (`usePermission`
|
|
55
|
+
* + `geolocation`) or the server's IP guess both arrive here as the same two
|
|
56
|
+
* numbers, and `geoLabel` is where the name of the place they mean comes in.
|
|
57
|
+
*/
|
|
58
|
+
readonly defaultGeo?: SearchGeo | undefined;
|
|
40
59
|
/** Container chrome under the results — e.g. the ranking-disclosure link. */
|
|
41
60
|
readonly footer?: ReactNode;
|
|
42
61
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchPage.d.ts","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SearchPage.d.ts","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,20 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
34
34
|
* behind a "Filters (N)" button and opens as a bottom sheet through the shared
|
|
35
35
|
* `SkinDialog`, with the count of what is applied on the button itself.
|
|
36
36
|
*
|
|
37
|
+
* ── Where the search opens, and what it calls the place ───────────────────
|
|
38
|
+
*
|
|
39
|
+
* `defaultGeo` centres a fresh search on the visitor — a granted browser
|
|
40
|
+
* prompt, or the server's IP guess when there was none — and `geoLabel` says
|
|
41
|
+
* what that place is CALLED. Both are the host's to resolve: this page has a
|
|
42
|
+
* `lat` and a `lon` in its query string and no way on earth to turn them into
|
|
43
|
+
* "Berlin Mitte", which is exactly why it must not print them. A search
|
|
44
|
+
* package that grew a geocoder to say a nicer sentence would have taken on the
|
|
45
|
+
* whole of `geo-react` to avoid one bad line.
|
|
46
|
+
*
|
|
47
|
+
* The centring is applied once, only into a URL that carries no location, and
|
|
48
|
+
* never again after the visitor has said anything about location themselves —
|
|
49
|
+
* see {@link SearchStateProviderProps.defaultGeo}, which owns the rules.
|
|
50
|
+
*
|
|
37
51
|
* ── The filter column is laid out only when there is something in it ──────
|
|
38
52
|
*
|
|
39
53
|
* `Col md={7}` was unconditional, and on a deployment whose search plan
|
|
@@ -172,7 +186,7 @@ function SearchPageBody(props) {
|
|
|
172
186
|
? { renderCategoryFilter: props.renderCategoryFilter }
|
|
173
187
|
: {}), ...(props.renderGeoFilter !== undefined
|
|
174
188
|
? { renderGeoFilter: props.renderGeoFilter }
|
|
175
|
-
: {}) }))] }));
|
|
189
|
+
: {}), ...(props.geoLabel !== undefined ? { geoLabel: props.geoLabel } : {}) }))] }));
|
|
176
190
|
// The toolbar over the results: how they are ARRANGED, how they are ORDERED,
|
|
177
191
|
// how many per page — and the surface's own action at the trailing end.
|
|
178
192
|
const toolbar = (_jsxs(Flex, { align: "center", wrap: true, gap: spacing[3], children: [_jsx(ViewSwitch, { views: views, value: view.id, onChange: changeView }), _jsx(SortSelect, {}), props.pageSize !== false && _jsx(PageSizeSelect, {}), props.resultsAction] }));
|
|
@@ -185,14 +199,14 @@ function SearchPageBody(props) {
|
|
|
185
199
|
setSheetOpen(true);
|
|
186
200
|
}, ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(props.renderGeoFilter !== undefined
|
|
187
201
|
? { renderGeoFilter: props.renderGeoFilter }
|
|
188
|
-
: {}) }), _jsx(SkinDialog, { open: sheetOpen, onClose: () => {
|
|
202
|
+
: {}), ...(props.geoLabel !== undefined ? { geoLabel: props.geoLabel } : {}) }), _jsx(SkinDialog, { open: sheetOpen, onClose: () => {
|
|
189
203
|
setSheetOpen(false);
|
|
190
204
|
}, title: t(SEARCH_I18N_KEYS.facetsTitle), dismissLabel: t(SEARCH_I18N_KEYS.filtersDismiss), "data-testid": "search-filters-sheet", footer: _jsx(Button, { block: true, type: "primary", "data-testid": "search-filters-apply", "data-analytics": "none", "data-analytics-reason": "the filters are already applied; this closes the sheet", onClick: () => {
|
|
191
205
|
setSheetOpen(false);
|
|
192
206
|
}, children: applyLabel }), children: panel }), results] })) : showFilters ? (_jsxs(Flex, { align: "flex-start", gap: spacing[5], "data-testid": "search-page-columns", children: [_jsx("div", { style: RAIL, children: panel }), _jsx("div", { style: RESULTS_COLUMN, children: results })] })) : (results)] }));
|
|
193
207
|
}
|
|
194
208
|
export function SearchPage(props) {
|
|
195
|
-
const { adapter, renderCard, categoryFeatures, locale, searchBox, languages, renderCategoryFilter, renderGeoFilter, footer, filtersHeader, resultsHeading, degradationNotice, filtersLayout, defaultFiltersOpen, pageSize, breadcrumb, views, defaultView, onViewChange, resultsAction, resultsHeadingLevel, mode, ...parseOptions } = props;
|
|
196
|
-
return (_jsx(SkinTheme, { surface: "base", ...(mode !== undefined ? { mode } : {}), children: _jsx(SearchStateProvider, { adapter: adapter, ...parseOptions, children: _jsx(SearchPageBody, { ...(renderCard !== undefined ? { renderCard } : {}), ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(searchBox !== undefined ? { searchBox } : {}), ...(languages !== undefined ? { languages } : {}), ...(renderCategoryFilter !== undefined ? { renderCategoryFilter } : {}), ...(renderGeoFilter !== undefined ? { renderGeoFilter } : {}), ...(footer !== undefined ? { footer } : {}), ...(filtersHeader !== undefined ? { filtersHeader } : {}), ...(resultsHeading !== undefined ? { resultsHeading } : {}), ...(degradationNotice !== undefined ? { degradationNotice } : {}), ...(filtersLayout !== undefined ? { filtersLayout } : {}), ...(defaultFiltersOpen !== undefined ? { defaultFiltersOpen } : {}), ...(pageSize !== undefined ? { pageSize } : {}), ...(breadcrumb !== undefined ? { breadcrumb } : {}), ...(views !== undefined ? { views } : {}), ...(defaultView !== undefined ? { defaultView } : {}), ...(onViewChange !== undefined ? { onViewChange } : {}), ...(resultsAction !== undefined ? { resultsAction } : {}), ...(resultsHeadingLevel !== undefined ? { resultsHeadingLevel } : {}) }) }) }));
|
|
209
|
+
const { adapter, renderCard, categoryFeatures, locale, searchBox, languages, renderCategoryFilter, renderGeoFilter, geoLabel, defaultGeo, footer, filtersHeader, resultsHeading, degradationNotice, filtersLayout, defaultFiltersOpen, pageSize, breadcrumb, views, defaultView, onViewChange, resultsAction, resultsHeadingLevel, mode, ...parseOptions } = props;
|
|
210
|
+
return (_jsx(SkinTheme, { surface: "base", ...(mode !== undefined ? { mode } : {}), children: _jsx(SearchStateProvider, { adapter: adapter, defaultGeo: defaultGeo, ...parseOptions, children: _jsx(SearchPageBody, { ...(renderCard !== undefined ? { renderCard } : {}), ...(categoryFeatures !== undefined ? { categoryFeatures } : {}), ...(locale !== undefined ? { locale } : {}), ...(searchBox !== undefined ? { searchBox } : {}), ...(languages !== undefined ? { languages } : {}), ...(renderCategoryFilter !== undefined ? { renderCategoryFilter } : {}), ...(renderGeoFilter !== undefined ? { renderGeoFilter } : {}), ...(geoLabel !== undefined ? { geoLabel } : {}), ...(footer !== undefined ? { footer } : {}), ...(filtersHeader !== undefined ? { filtersHeader } : {}), ...(resultsHeading !== undefined ? { resultsHeading } : {}), ...(degradationNotice !== undefined ? { degradationNotice } : {}), ...(filtersLayout !== undefined ? { filtersLayout } : {}), ...(defaultFiltersOpen !== undefined ? { defaultFiltersOpen } : {}), ...(pageSize !== undefined ? { pageSize } : {}), ...(breadcrumb !== undefined ? { breadcrumb } : {}), ...(views !== undefined ? { views } : {}), ...(defaultView !== undefined ? { defaultView } : {}), ...(onViewChange !== undefined ? { onViewChange } : {}), ...(resultsAction !== undefined ? { resultsAction } : {}), ...(resultsHeadingLevel !== undefined ? { resultsHeadingLevel } : {}) }) }) }));
|
|
197
211
|
}
|
|
198
212
|
//# sourceMappingURL=SearchPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchPage.js","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"SearchPage.js","sourceRoot":"","sources":["../../src/default/SearchPage.tsx"],"names":[],"mappings":"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"}
|
package/dist/default/index.d.ts
CHANGED
|
@@ -21,7 +21,12 @@
|
|
|
21
21
|
* owns walking the tree; this pair owns the `category` parameter.
|
|
22
22
|
* 4. **`renderGeoFilter`** — the location control. `geo-react` owns the map
|
|
23
23
|
* and the geocoder; this pair owns `lat`/`lon`/`radius_km`/`bbox`, and
|
|
24
|
-
* keeps the controls that WIDEN a location a link already carries.
|
|
24
|
+
* keeps the controls that WIDEN a location a link already carries. Its two
|
|
25
|
+
* companions divide the same seam the same way: `geoLabel` is what the
|
|
26
|
+
* current place is CALLED (owning a coordinate is not permission to print
|
|
27
|
+
* one), and `defaultGeo` is where a fresh search opens when the URL names
|
|
28
|
+
* nowhere — the visitor's own position, resolved by whoever is allowed to
|
|
29
|
+
* ask for it.
|
|
25
30
|
* 5. **retheming through the §68 token JSON** — every surface wraps itself
|
|
26
31
|
* in the shared `SkinTheme`, so a host's regenerated `--stapel-*` custom
|
|
27
32
|
* properties reach this skin with zero code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChG,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACtF,YAAY,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAG7E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/default/index.js
CHANGED
|
@@ -21,7 +21,12 @@
|
|
|
21
21
|
* owns walking the tree; this pair owns the `category` parameter.
|
|
22
22
|
* 4. **`renderGeoFilter`** — the location control. `geo-react` owns the map
|
|
23
23
|
* and the geocoder; this pair owns `lat`/`lon`/`radius_km`/`bbox`, and
|
|
24
|
-
* keeps the controls that WIDEN a location a link already carries.
|
|
24
|
+
* keeps the controls that WIDEN a location a link already carries. Its two
|
|
25
|
+
* companions divide the same seam the same way: `geoLabel` is what the
|
|
26
|
+
* current place is CALLED (owning a coordinate is not permission to print
|
|
27
|
+
* one), and `defaultGeo` is where a fresh search opens when the URL names
|
|
28
|
+
* nowhere — the visitor's own position, resolved by whoever is allowed to
|
|
29
|
+
* ask for it.
|
|
25
30
|
* 5. **retheming through the §68 token JSON** — every surface wraps itself
|
|
26
31
|
* in the shared `SkinTheme`, so a host's regenerated `--stapel-*` custom
|
|
27
32
|
* properties reach this skin with zero code.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/default/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,+EAA+E;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM9E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGhG,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGtF,+EAA+E;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -51,6 +51,41 @@ export interface SearchStateBag {
|
|
|
51
51
|
}
|
|
52
52
|
export interface SearchStateProviderProps extends ParseSearchStateOptions {
|
|
53
53
|
readonly adapter: SearchParamsAdapter;
|
|
54
|
+
/**
|
|
55
|
+
* Where to centre the results when the URL says nothing about location —
|
|
56
|
+
* the visitor's own position, as the HOST resolved it (a granted browser
|
|
57
|
+
* geolocation prompt, or the server's IP guess when there was none).
|
|
58
|
+
*
|
|
59
|
+
* Opt-in, and it is deliberately not one of the `default*` parse options
|
|
60
|
+
* beside it. Those are read-time fallbacks: `defaultCategory` fills a gap in
|
|
61
|
+
* the parsed state and never reaches the query string. A location cannot
|
|
62
|
+
* work that way. It has to be WRITTEN, once, because the URL is the state:
|
|
63
|
+
* a centre that lived only in the parse would vanish from a link the visitor
|
|
64
|
+
* shares, and — worse — would be re-applied on the very next render after
|
|
65
|
+
* they cleared it, which is a filter that will not come off.
|
|
66
|
+
*
|
|
67
|
+
* So the rules, all four of which are about not overruling a person:
|
|
68
|
+
*
|
|
69
|
+
* - **Only into an empty URL.** A link that carries `lat`/`lon` or `bbox`
|
|
70
|
+
* already means a place, and it must mean the same place for everybody
|
|
71
|
+
* who opens it. A default that overwrote it would make one address bar
|
|
72
|
+
* two different searches.
|
|
73
|
+
* - **Once.** Tracked as "has anyone spoken about location yet", in a ref —
|
|
74
|
+
* not by comparing the default against the current value, which cannot
|
|
75
|
+
* tell "the visitor cleared it" from "it has not been applied".
|
|
76
|
+
* - **Never after a clear.** `setGeo` marks the question answered, so a
|
|
77
|
+
* person who widens the search back to everywhere stays there.
|
|
78
|
+
* - **Late is fine.** A browser prompt and an IP round trip both resolve
|
|
79
|
+
* after the first paint, so `undefined` now and a value three renders
|
|
80
|
+
* later still applies — provided the URL is still empty of geo at that
|
|
81
|
+
* moment.
|
|
82
|
+
*
|
|
83
|
+
* It REPLACES the history entry rather than pushing one: the visitor did not
|
|
84
|
+
* perform this change, and Back should leave the page, not undo a centring
|
|
85
|
+
* they never asked for. The adapter's `setParams` takes `{ replace: true }`
|
|
86
|
+
* for exactly this, and the react-router binding honours it.
|
|
87
|
+
*/
|
|
88
|
+
readonly defaultGeo?: SearchGeo | undefined;
|
|
54
89
|
readonly children: ReactNode;
|
|
55
90
|
}
|
|
56
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchStateProvider.d.ts","sourceRoot":"","sources":["../../src/headless/SearchStateProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SearchStateProvider.d.ts","sourceRoot":"","sources":["../../src/headless/SearchStateProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAClF;AAED,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC3C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;IACxD,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,IAAI,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpE;6EACyE;IACzE,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACtC;AAID,MAAM,WAAW,wBAAyB,SAAQ,uBAAuB;IACvE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,wBAAwB,GAC9B,YAAY,CA2Gd;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,cAAc,CAQ/C"}
|