@mailwoman/react 9.3.0 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/fonts.css +59 -0
  2. package/lib/common/About.tsx +89 -0
  3. package/lib/common/KindBadge.tsx +2 -7
  4. package/lib/common/confidence-tiers.ts +50 -0
  5. package/lib/common/text-tokens.ts +88 -0
  6. package/lib/index.ts +30 -28
  7. package/lib/map/CompareToggle.tsx +2 -2
  8. package/lib/map/{GeocoderDemo.tsx → Geocoder.tsx} +40 -40
  9. package/lib/map/{DemoControls.tsx → GeocoderControls.tsx} +16 -17
  10. package/lib/map/{DemoMap.tsx → MapCanvas.tsx} +15 -15
  11. package/lib/map/PlaceMarker.tsx +1 -1
  12. package/lib/map/ResolvedPlaceLayers.tsx +3 -3
  13. package/lib/map/ResultCamera.tsx +1 -1
  14. package/lib/map/ResultPanel.tsx +2 -2
  15. package/lib/map/VersionPicker.tsx +3 -3
  16. package/lib/map/fake-runtime.ts +122 -0
  17. package/lib/map/index.ts +16 -16
  18. package/lib/map/map-debug.ts +51 -0
  19. package/lib/map/place-render.ts +3 -2
  20. package/lib/map/types.ts +41 -39
  21. package/lib/map/{useDemoGeocode.ts → useGeocode.ts} +8 -8
  22. package/lib/pipeline/CandidatePicker.tsx +1 -1
  23. package/lib/pipeline/ComponentTable.tsx +1 -2
  24. package/lib/pipeline/ConfidenceCell.tsx +7 -19
  25. package/lib/pipeline/FailureDiagnostic.tsx +56 -0
  26. package/lib/pipeline/ResolvedPlace.tsx +17 -4
  27. package/lib/pipeline/SpanHighlight.tsx +97 -0
  28. package/lib/pipeline/TimingPanel.tsx +65 -0
  29. package/lib/pipeline/TreeView.tsx +55 -0
  30. package/lib/pipeline/copy.ts +1 -1
  31. package/lib/pipeline/types.ts +2 -75
  32. package/lib/pipeline/useParsePipeline.ts +2 -1
  33. package/lib/poi/types.ts +2 -1
  34. package/lib/runtime/{useDemoRuntime.ts → useReleaseRuntime.ts} +22 -24
  35. package/out/common/About.d.ts +12 -0
  36. package/out/common/About.d.ts.map +1 -0
  37. package/out/common/About.js +5 -0
  38. package/out/common/About.js.map +1 -0
  39. package/out/common/KindBadge.d.ts +2 -9
  40. package/out/common/KindBadge.d.ts.map +1 -1
  41. package/out/common/KindBadge.js.map +1 -1
  42. package/out/common/confidence-tiers.d.ts +36 -0
  43. package/out/common/confidence-tiers.d.ts.map +1 -0
  44. package/out/common/confidence-tiers.js +42 -0
  45. package/out/common/confidence-tiers.js.map +1 -0
  46. package/out/common/text-tokens.d.ts +46 -0
  47. package/out/common/text-tokens.d.ts.map +1 -0
  48. package/out/common/text-tokens.js +52 -0
  49. package/out/common/text-tokens.js.map +1 -0
  50. package/out/index.d.ts +14 -5
  51. package/out/index.d.ts.map +1 -1
  52. package/out/index.js +8 -2
  53. package/out/index.js.map +1 -1
  54. package/out/map/CompareToggle.d.ts +2 -2
  55. package/out/map/CompareToggle.d.ts.map +1 -1
  56. package/out/map/{GeocoderDemo.d.ts → Geocoder.d.ts} +17 -17
  57. package/out/map/Geocoder.d.ts.map +1 -0
  58. package/out/map/{GeocoderDemo.js → Geocoder.js} +25 -25
  59. package/out/map/Geocoder.js.map +1 -0
  60. package/out/map/{DemoControls.d.ts → GeocoderControls.d.ts} +16 -17
  61. package/out/map/GeocoderControls.d.ts.map +1 -0
  62. package/out/map/{DemoControls.js → GeocoderControls.js} +2 -2
  63. package/out/map/GeocoderControls.js.map +1 -0
  64. package/out/map/{DemoMap.d.ts → MapCanvas.d.ts} +15 -15
  65. package/out/map/MapCanvas.d.ts.map +1 -0
  66. package/out/map/{DemoMap.js → MapCanvas.js} +2 -2
  67. package/out/map/MapCanvas.js.map +1 -0
  68. package/out/map/PlaceMarker.d.ts +1 -1
  69. package/out/map/ResolvedPlaceLayers.d.ts +3 -3
  70. package/out/map/ResultCamera.d.ts +1 -1
  71. package/out/map/ResultCamera.js +1 -1
  72. package/out/map/ResultPanel.d.ts +2 -2
  73. package/out/map/ResultPanel.d.ts.map +1 -1
  74. package/out/map/ResultPanel.js.map +1 -1
  75. package/out/map/VersionPicker.d.ts +3 -3
  76. package/out/map/VersionPicker.d.ts.map +1 -1
  77. package/out/map/fake-runtime.d.ts +38 -0
  78. package/out/map/fake-runtime.d.ts.map +1 -0
  79. package/out/map/fake-runtime.js +107 -0
  80. package/out/map/fake-runtime.js.map +1 -0
  81. package/out/map/index.d.ts +10 -10
  82. package/out/map/index.d.ts.map +1 -1
  83. package/out/map/index.js +6 -6
  84. package/out/map/index.js.map +1 -1
  85. package/out/map/map-debug.d.ts +31 -0
  86. package/out/map/map-debug.d.ts.map +1 -0
  87. package/out/map/map-debug.js +31 -0
  88. package/out/map/map-debug.js.map +1 -0
  89. package/out/map/place-render.d.ts +2 -2
  90. package/out/map/place-render.d.ts.map +1 -1
  91. package/out/map/place-render.js +1 -1
  92. package/out/map/place-render.js.map +1 -1
  93. package/out/map/types.d.ts +41 -39
  94. package/out/map/types.d.ts.map +1 -1
  95. package/out/map/types.js +5 -5
  96. package/out/map/{useDemoGeocode.d.ts → useGeocode.d.ts} +9 -9
  97. package/out/map/useGeocode.d.ts.map +1 -0
  98. package/out/map/{useDemoGeocode.js → useGeocode.js} +4 -4
  99. package/out/map/useGeocode.js.map +1 -0
  100. package/out/pipeline/CandidatePicker.d.ts +1 -1
  101. package/out/pipeline/CandidatePicker.d.ts.map +1 -1
  102. package/out/pipeline/CandidatePicker.js.map +1 -1
  103. package/out/pipeline/ComponentTable.d.ts +1 -1
  104. package/out/pipeline/ComponentTable.d.ts.map +1 -1
  105. package/out/pipeline/ComponentTable.js.map +1 -1
  106. package/out/pipeline/ConfidenceCell.d.ts +2 -2
  107. package/out/pipeline/ConfidenceCell.d.ts.map +1 -1
  108. package/out/pipeline/ConfidenceCell.js +4 -16
  109. package/out/pipeline/ConfidenceCell.js.map +1 -1
  110. package/out/pipeline/FailureDiagnostic.d.ts +15 -0
  111. package/out/pipeline/FailureDiagnostic.d.ts.map +1 -0
  112. package/out/pipeline/FailureDiagnostic.js +21 -0
  113. package/out/pipeline/FailureDiagnostic.js.map +1 -0
  114. package/out/pipeline/ResolvedPlace.d.ts +1 -1
  115. package/out/pipeline/ResolvedPlace.d.ts.map +1 -1
  116. package/out/pipeline/ResolvedPlace.js +4 -10
  117. package/out/pipeline/ResolvedPlace.js.map +1 -1
  118. package/out/pipeline/SpanHighlight.d.ts +23 -0
  119. package/out/pipeline/SpanHighlight.d.ts.map +1 -0
  120. package/out/pipeline/SpanHighlight.js +31 -0
  121. package/out/pipeline/SpanHighlight.js.map +1 -0
  122. package/out/pipeline/TimingPanel.d.ts +16 -0
  123. package/out/pipeline/TimingPanel.d.ts.map +1 -0
  124. package/out/pipeline/TimingPanel.js +20 -0
  125. package/out/pipeline/TimingPanel.js.map +1 -0
  126. package/out/pipeline/TreeView.d.ts +17 -0
  127. package/out/pipeline/TreeView.d.ts.map +1 -0
  128. package/out/pipeline/TreeView.js +15 -0
  129. package/out/pipeline/TreeView.js.map +1 -0
  130. package/out/pipeline/copy.d.ts +1 -1
  131. package/out/pipeline/copy.d.ts.map +1 -1
  132. package/out/pipeline/types.d.ts +2 -68
  133. package/out/pipeline/types.d.ts.map +1 -1
  134. package/out/pipeline/types.js +1 -1
  135. package/out/pipeline/useParsePipeline.d.ts +2 -1
  136. package/out/pipeline/useParsePipeline.d.ts.map +1 -1
  137. package/out/pipeline/useParsePipeline.js.map +1 -1
  138. package/out/poi/types.d.ts +2 -1
  139. package/out/poi/types.d.ts.map +1 -1
  140. package/out/runtime/{useDemoRuntime.d.ts → useReleaseRuntime.d.ts} +18 -20
  141. package/out/runtime/useReleaseRuntime.d.ts.map +1 -0
  142. package/out/runtime/{useDemoRuntime.js → useReleaseRuntime.js} +4 -4
  143. package/out/runtime/useReleaseRuntime.js.map +1 -0
  144. package/package.json +139 -29
  145. package/styleframe.config.ts +321 -0
  146. package/styles.css +1074 -664
  147. package/tokens/index.css +115 -0
  148. package/tokens/tokens.json +521 -0
  149. package/tokens/tokens.resolver.json +185 -0
  150. package/out/map/DemoControls.d.ts.map +0 -1
  151. package/out/map/DemoControls.js.map +0 -1
  152. package/out/map/DemoMap.d.ts.map +0 -1
  153. package/out/map/DemoMap.js.map +0 -1
  154. package/out/map/GeocoderDemo.d.ts.map +0 -1
  155. package/out/map/GeocoderDemo.js.map +0 -1
  156. package/out/map/useDemoGeocode.d.ts.map +0 -1
  157. package/out/map/useDemoGeocode.js.map +0 -1
  158. package/out/runtime/useDemoRuntime.d.ts.map +0 -1
  159. package/out/runtime/useDemoRuntime.js.map +0 -1
@@ -0,0 +1,107 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * A fake geocoder runtime: canned parse + resolve, an offline stub map style, canned autocomplete, a version list.
7
+ * No network, no ONNX, no maplibre at run time — everything is data. It is what the stories and component tests
8
+ * mount, and what a host mounts to show the UI without the model.
9
+ */
10
+ /**
11
+ * An offline stub map style — one solid `background` layer, zero sources, zero network. Safe for headless Storybook.
12
+ */
13
+ export const STUB_MAP_STYLE = {
14
+ version: 8,
15
+ name: "demo-runtime-stub",
16
+ sources: {},
17
+ layers: [{ id: "background", type: "background", paint: { "background-color": "#dfe7ee" } }],
18
+ };
19
+ /**
20
+ * Canned place-autocomplete suggestions — a synchronous fake for the FST prefix-walk.
21
+ */
22
+ export const FAKE_SUGGESTIONS = [
23
+ { value: "New York", placetype: "locality" },
24
+ { value: "New Orleans", placetype: "locality" },
25
+ { value: "Newark", placetype: "locality" },
26
+ ];
27
+ /**
28
+ * A fake DEMO runtime — the map analogue of {@link makePipelineRuntime}. It composes the pipeline fake (canned
29
+ * parse+resolve) with the map surface: the offline stub style, a version list, a backend, an injected autocomplete, and
30
+ * a `resolveMapPlace` that hands the selected candidate a bbox so the declarative overlays draw a marker + outline. No
31
+ * network, no ONNX, no maplibre-at-runtime — everything is data. `runParseWithBias` delegates to the base parse (the
32
+ * bias is ignored by the fake but present so the parameter is exercised).
33
+ */
34
+ export function makeFakeGeocoderRuntime(overrides = {}) {
35
+ const base = makePipelineRuntime();
36
+ return {
37
+ ...base,
38
+ mapStyle: STUB_MAP_STYLE,
39
+ initialCenter: [-74.006, 40.7128],
40
+ initialZoom: 3,
41
+ overlays: [],
42
+ runParseWithBias: (input, _bias, hooks) => base.runParse(input, hooks),
43
+ autocomplete: async (query) => FAKE_SUGGESTIONS.filter((s) => s.value.toLowerCase().startsWith(query.toLowerCase())),
44
+ availableVersions: [
45
+ { version: "v7.2.0", label: "v7.2.0 (latest)" },
46
+ { version: "v7.1.0", label: "v7.1.0" },
47
+ { version: "v6.4.0", label: "v6.4.0" },
48
+ ],
49
+ selectedVersion: "v7.2.0",
50
+ selectVersion: () => { },
51
+ activeBackend: "webgpu (28 MB int8)",
52
+ forceWASM: false,
53
+ setForceWASM: () => { },
54
+ // Enrich the selected candidate with a bbox so an outline renders (case 4: bbox → approximate circle + fit).
55
+ resolveMapPlace: (candidate) => ({
56
+ ...candidate,
57
+ bbox: {
58
+ minLat: candidate.lat - 0.15,
59
+ maxLat: candidate.lat + 0.15,
60
+ minLon: candidate.lon - 0.15,
61
+ maxLon: candidate.lon + 0.15,
62
+ },
63
+ }),
64
+ ...overrides,
65
+ };
66
+ }
67
+ /**
68
+ * A fixed, fully-populated parse+resolve result — the shared fixture behind the pipeline runtime + the result panel.
69
+ */
70
+ export function makeFakeParseResult(input = "350 5th Ave, New York, NY 10118") {
71
+ return {
72
+ input,
73
+ tree: { roots: [{ tag: "locality", value: "New York" }] },
74
+ nodes: [
75
+ { tag: "house_number", value: "350", confidence: 0.97, start: 0, end: 3 },
76
+ { tag: "street", value: "5th Ave", confidence: 0.88, start: 4, end: 11 },
77
+ { tag: "locality", value: "New York", confidence: 0.71 },
78
+ ],
79
+ kindResult: { kind: "structured_address", confidence: 0.95, alternatives: [] },
80
+ timing: { shape: 0.4, classify: 12.1, resolve: 4.2 },
81
+ resolved: { id: 85_977_539, name: "New York", placetype: "locality", lat: 40.7128, lon: -74.006, score: 0.82 },
82
+ candidates: [
83
+ { id: 85_977_539, name: "New York", placetype: "locality", lat: 40.7128, lon: -74.006, score: 0.82 },
84
+ { id: 101_715_829, name: "New York", placetype: "region", lat: 43, lon: -75, score: 0.55 },
85
+ ],
86
+ fstActive: true,
87
+ fstProvenance: { builtAt: "2026-07-01T00:00:00Z", stateCount: 51, placeCount: 94_000, importanceMatches: 12_000 },
88
+ };
89
+ }
90
+ /**
91
+ * A fake parse+resolve runtime that returns a fixed, fully-populated result.
92
+ */
93
+ export function makePipelineRuntime(overrides = {}) {
94
+ return {
95
+ ready: true,
96
+ parseStageLabels: ["Analyzing input shape…", "Running neural classifier…", "Resolving in gazetteer…"],
97
+ errorMessage: null,
98
+ loading: null,
99
+ runParse: async (input, { onStage }) => {
100
+ onStage(1);
101
+ onStage(2);
102
+ return makeFakeParseResult(input);
103
+ },
104
+ ...overrides,
105
+ };
106
+ }
107
+ //# sourceMappingURL=fake-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake-runtime.js","sourceRoot":"","sources":["../../lib/map/fake-runtime.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * `@mailwoman/react/map` — the geocoder-demo map surface, kept behind its OWN subpath so `maplibre-gl`
6
+ * `@mailwoman/react/map` — the geocoder map surface, kept behind its OWN subpath so `maplibre-gl`
7
7
  * / `react-map-gl` (WebGL + DOM at import) never enter the package-root graph. Importing this subpath
8
8
  * pulls the map deps; importing `@mailwoman/react` (root) does not. Consumers who only want the
9
9
  * parse/POI explorers never pay for maplibre.
@@ -11,9 +11,9 @@
11
11
  * The host must supply `maplibre-gl` + `react-map-gl` (peer deps) and import
12
12
  * `maplibre-gl/dist/maplibre-gl.css` + `@mailwoman/react/styles.css` itself.
13
13
  */
14
- export { DemoMap } from "./DemoMap.tsx";
15
- export type { DemoMapExtraProps, DemoMapProps, DemoMapStyle } from "./DemoMap.tsx";
16
- export type { DemoBackend, DemoCompareContext, DemoPanels, DemoResultContext, DemoRuntime, DemoVersionOption, LngLatTuple, MapBias, OverlaySpec, Suggestion, } from "#map/types";
14
+ export { MapCanvas } from "./MapCanvas.tsx";
15
+ export type { MapCanvasExtraProps, MapCanvasProps, MapCanvasStyle } from "./MapCanvas.tsx";
16
+ export type { CompareContext, GeocoderPanels, GeocoderRuntime, InferenceBackend, LngLatTuple, MapBias, OverlaySpec, ResultContext, Suggestion, VersionOption, } from "#map/types";
17
17
  export { approxCircleGeometry, bboxToBounds, geomBounds, radiusCircleGeometry } from "#map/geometry";
18
18
  export type { BoundsTuple, PlaceBBox, PlaceGeometry } from "#map/geometry";
19
19
  export { cameraToViewState, computeMapPlaceRenderSpec } from "#map/place-render";
@@ -33,18 +33,18 @@ export { BackendControl } from "./BackendControl.tsx";
33
33
  export type { BackendControlProps } from "./BackendControl.tsx";
34
34
  export { CompareToggle } from "./CompareToggle.tsx";
35
35
  export type { CompareToggleProps } from "./CompareToggle.tsx";
36
- export { DemoControls } from "./DemoControls.tsx";
37
- export type { DemoControlsProps } from "./DemoControls.tsx";
38
- export { GeocoderDemo } from "./GeocoderDemo.tsx";
39
- export type { GeocoderDemoProps } from "./GeocoderDemo.tsx";
36
+ export { Geocoder } from "./Geocoder.tsx";
37
+ export type { GeocoderProps } from "./Geocoder.tsx";
38
+ export { GeocoderControls } from "./GeocoderControls.tsx";
39
+ export type { GeocoderControlsProps } from "./GeocoderControls.tsx";
40
40
  export { PlaceAutocomplete } from "./PlaceAutocomplete.tsx";
41
41
  export type { PlaceAutocompleteProps } from "./PlaceAutocomplete.tsx";
42
42
  export { ResultPanel } from "./ResultPanel.tsx";
43
43
  export type { ResultPanelProps } from "./ResultPanel.tsx";
44
44
  export { useCompareState } from "#map/useCompareState";
45
45
  export type { UseCompareState } from "#map/useCompareState";
46
- export { useDemoGeocode } from "#map/useDemoGeocode";
47
- export type { UseDemoGeocode, UseDemoGeocodeOptions } from "#map/useDemoGeocode";
46
+ export { useGeocode } from "#map/useGeocode";
47
+ export type { UseGeocode, UseGeocodeOptions } from "#map/useGeocode";
48
48
  export { usePlaceAutocomplete } from "#map/usePlaceAutocomplete";
49
49
  export type { AutocompleteInputProps, UsePlaceAutocomplete, UsePlaceAutocompleteOptions, } from "#map/usePlaceAutocomplete";
50
50
  export { VersionPicker } from "./VersionPicker.tsx";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAElF,YAAY,EACX,WAAW,EACX,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,WAAW,EACX,UAAU,GACV,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpG,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAChF,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,YAAY,EACX,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,GAC3B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAE1F,YAAY,EACX,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,aAAa,GACb,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpG,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAChF,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,YAAY,EACX,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,GAC3B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA"}
package/out/map/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * `@mailwoman/react/map` — the geocoder-demo map surface, kept behind its OWN subpath so `maplibre-gl`
6
+ * `@mailwoman/react/map` — the geocoder map surface, kept behind its OWN subpath so `maplibre-gl`
7
7
  * / `react-map-gl` (WebGL + DOM at import) never enter the package-root graph. Importing this subpath
8
8
  * pulls the map deps; importing `@mailwoman/react` (root) does not. Consumers who only want the
9
9
  * parse/POI explorers never pay for maplibre.
@@ -11,7 +11,7 @@
11
11
  * The host must supply `maplibre-gl` + `react-map-gl` (peer deps) and import
12
12
  * `maplibre-gl/dist/maplibre-gl.css` + `@mailwoman/react/styles.css` itself.
13
13
  */
14
- export { DemoMap } from "./DemoMap.js";
14
+ export { MapCanvas } from "./MapCanvas.js";
15
15
  // ── Pure geometry + render spec (node-safe; no react-map-gl at runtime) ──────
16
16
  export { approxCircleGeometry, bboxToBounds, geomBounds, radiusCircleGeometry } from "#map/geometry";
17
17
  export { cameraToViewState, computeMapPlaceRenderSpec } from "#map/place-render";
@@ -22,15 +22,15 @@ export { PlaceMarker } from "./PlaceMarker.js";
22
22
  export { ResolvedPlaceLayers } from "./ResolvedPlaceLayers.js";
23
23
  export { ResultCamera } from "./ResultCamera.js";
24
24
  export { ResultOverlay } from "./ResultOverlay.js";
25
- // ── Demo controls + composed demo (phase 4) ─────────────────────────────────
25
+ // ── Geocoder controls + the composed geocoder ────────────────────────────────
26
26
  export { BackendControl } from "./BackendControl.js";
27
27
  export { CompareToggle } from "./CompareToggle.js";
28
- export { DemoControls } from "./DemoControls.js";
29
- export { GeocoderDemo } from "./GeocoderDemo.js";
28
+ export { Geocoder } from "./Geocoder.js";
29
+ export { GeocoderControls } from "./GeocoderControls.js";
30
30
  export { PlaceAutocomplete } from "./PlaceAutocomplete.js";
31
31
  export { ResultPanel } from "./ResultPanel.js";
32
32
  export { useCompareState } from "#map/useCompareState";
33
- export { useDemoGeocode } from "#map/useDemoGeocode";
33
+ export { useGeocode } from "#map/useGeocode";
34
34
  export { usePlaceAutocomplete } from "#map/usePlaceAutocomplete";
35
35
  export { VersionPicker } from "./VersionPicker.js";
36
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAe,CAAA;AAgBvC,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpG,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,gFAAgF;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAGnD,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAQhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/map/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAA;AAgB3C,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpG,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,gFAAgF;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAgB,CAAA;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAA;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAA;AAE3D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAQhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ * @file The bare MapLibre control both debug panels portal into.
6
+ *
7
+ * `DashboardMap`'s inspector and the demo page's `_debug.tsx` panel each need an `IControl` whose
8
+ * only job is to own a container element for `createPortal`. The class was duplicated in both;
9
+ * the position and container class are the only differences, so they are parameters here.
10
+ */
11
+ import type { ControlPosition } from "maplibre-gl";
12
+ import type { IControl, MapInstance } from "react-map-gl/maplibre";
13
+ export interface DebugControlBaseOptions {
14
+ /**
15
+ * Class applied to the portal container.
16
+ */
17
+ className?: string;
18
+ /**
19
+ * Where MapLibre docks the control. @default "bottom-left"
20
+ */
21
+ position?: ControlPosition;
22
+ }
23
+ export declare class DebugControlBase implements IControl {
24
+ #private;
25
+ readonly container: HTMLElement;
26
+ constructor({ className, position }?: DebugControlBaseOptions);
27
+ onAdd(_map: MapInstance): HTMLElement;
28
+ onRemove(_map: MapInstance): void;
29
+ getDefaultPosition(): ControlPosition;
30
+ }
31
+ //# sourceMappingURL=map-debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-debug.d.ts","sourceRoot":"","sources":["../../lib/map/map-debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAElE,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAA;CAC1B;AAED,qBAAa,gBAAiB,YAAW,QAAQ;;IAChD,SAAgB,SAAS,EAAE,WAAW,CAAA;gBAG1B,EAAE,SAAS,EAAE,QAAwB,EAAE,GAAE,uBAA4B;IAU1E,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;IAIrC,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAIjC,kBAAkB,IAAI,eAAe;CAG5C"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ * @file The bare MapLibre control both debug panels portal into.
6
+ *
7
+ * `DashboardMap`'s inspector and the demo page's `_debug.tsx` panel each need an `IControl` whose
8
+ * only job is to own a container element for `createPortal`. The class was duplicated in both;
9
+ * the position and container class are the only differences, so they are parameters here.
10
+ */
11
+ export class DebugControlBase {
12
+ container;
13
+ #position;
14
+ constructor({ className, position = "bottom-left" } = {}) {
15
+ this.container = document.createElement("div");
16
+ if (className) {
17
+ this.container.classList.add(className);
18
+ }
19
+ this.#position = position;
20
+ }
21
+ onAdd(_map) {
22
+ return this.container;
23
+ }
24
+ onRemove(_map) {
25
+ this.container.remove();
26
+ }
27
+ getDefaultPosition() {
28
+ return this.#position;
29
+ }
30
+ }
31
+ //# sourceMappingURL=map-debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-debug.js","sourceRoot":"","sources":["../../lib/map/map-debug.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,MAAM,OAAO,gBAAgB;IACZ,SAAS,CAAa;IAC7B,SAAS,CAAiB;IAEnC,YAAY,EAAE,SAAS,EAAE,QAAQ,GAAG,aAAa,KAA8B,EAAE;QAChF,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAE9C,IAAI,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAA;IACtB,CAAC;IAEM,QAAQ,CAAC,IAAiB;QAChC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC;IAEM,kBAAkB;QACxB,OAAO,IAAI,CAAC,SAAS,CAAA;IACtB,CAAC;CACD"}
@@ -18,8 +18,8 @@
18
18
  * 4. bbox with real extent → bbox-sized approximate circle, fit the bbox
19
19
  * 5. bare point → no outline, fly to zoom 12
20
20
  */
21
+ import type { ResolvedPlaceView } from "@mailwoman/core/pipeline/client-result";
21
22
  import type { BoundsTuple, PlaceBBox, PlaceGeometry } from "#map/geometry";
22
- import type { ResolvedPlaceView } from "#pipeline/types";
23
23
  /**
24
24
  * `[longitude, latitude]`.
25
25
  */
@@ -90,7 +90,7 @@ export interface MapPlaceRenderSpec {
90
90
  */
91
91
  export declare function computeMapPlaceRenderSpec(place: ResolvedMapPlace): MapPlaceRenderSpec;
92
92
  /**
93
- * The DECLARATIVE camera path: reshape a `center` target into a `viewState` patch a controlled `<DemoMap viewState>`
93
+ * The DECLARATIVE camera path: reshape a `center` target into a `viewState` patch a controlled `<MapCanvas viewState>`
94
94
  * can apply directly (a hard jump, no animation). Returns `null` for a `bounds` target — fitting a box to the viewport
95
95
  * needs the map's pixel dimensions, which only the live map has, so that case is applied imperatively by
96
96
  * `<ResultCamera>`. Pure + node-testable.
@@ -1 +1 @@
1
- {"version":3,"file":"place-render.d.ts","sourceRoot":"","sources":["../../lib/map/place-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,cAAc,CAAA;AAExD;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IAC1D;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;IAC7B;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;CACvB;AAsBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,CAsDrF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,eAAe,GACrB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI9D"}
1
+ {"version":3,"file":"place-render.d.ts","sourceRoot":"","sources":["../../lib/map/place-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAG/E,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE1E;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAErC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,cAAc,CAAA;AAExD;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IAC1D;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACxB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB;;OAEG;IACH,OAAO,EAAE,aAAa,GAAG,IAAI,CAAA;IAC7B;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;CACvB;AAsBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,CAsDrF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,eAAe,GACrB;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI9D"}
@@ -91,7 +91,7 @@ export function computeMapPlaceRenderSpec(place) {
91
91
  };
92
92
  }
93
93
  /**
94
- * The DECLARATIVE camera path: reshape a `center` target into a `viewState` patch a controlled `<DemoMap viewState>`
94
+ * The DECLARATIVE camera path: reshape a `center` target into a `viewState` patch a controlled `<MapCanvas viewState>`
95
95
  * can apply directly (a hard jump, no animation). Returns `null` for a `bounds` target — fitting a box to the viewport
96
96
  * needs the map's pixel dimensions, which only the live map has, so that case is applied imperatively by
97
97
  * `<ResultCamera>`. Pure + node-testable.
@@ -1 +1 @@
1
- {"version":3,"file":"place-render.js","sourceRoot":"","sources":["../../lib/map/place-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"place-render.js","sourceRoot":"","sources":["../../lib/map/place-render.ts"],"names":[],"mappings":"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"}
@@ -3,22 +3,23 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Types for the geocoder-demo map surface. Mirrors the pipeline boundary: the package owns the UI state
7
- * machine + the declarative map, while the host injects a {@link DemoRuntime} that owns ONNX / httpvfs
8
- * / R2 and the composed map style. {@link DemoRuntime} EXTENDS {@link PipelineRuntime} so the shared
6
+ * Types for the geocoder map surface. Mirrors the pipeline boundary: the package owns the UI state
7
+ * machine + the declarative map, while the host injects a {@link GeocoderRuntime} that owns ONNX / httpvfs
8
+ * / R2 and the composed map style. {@link GeocoderRuntime} EXTENDS {@link PipelineRuntime} so the shared
9
9
  * `runParse` / `parseStageLabels` / `loading` contract is reused, and adds the map-specific surface
10
10
  * (style, overlays, initial center, viewport bias, backend/version selection). Phase 4 adds the
11
- * `resolveMapPlace` enricher, the {@link DemoPanels} injection bag, and the {@link DemoCompareContext}.
11
+ * `resolveMapPlace` enricher, the {@link GeocoderPanels} injection bag, and the {@link CompareContext}.
12
12
  *
13
13
  * The map-spec types are imported type-only from `react-map-gl/maplibre`; nothing here loads maplibre at
14
- * runtime, so this module stays node-safe (its concrete-value CONSUMERS — `DemoMap`, `GeocoderDemo` —
14
+ * runtime, so this module stays node-safe (its concrete-value CONSUMERS — `MapCanvas`, `Geocoder` —
15
15
  * are the ones behind the `@mailwoman/react/map` subpath).
16
16
  */
17
+ import type { ParseResult, ResolvedPlaceView } from "@mailwoman/core/pipeline/client-result";
17
18
  import type { ReactNode } from "react";
18
19
  import type { LayerSpecification, SourceSpecification } from "react-map-gl/maplibre";
19
20
  import type { LngLat, ResolvedMapPlace } from "#map/place-render";
20
- import type { ParseResult, PipelineRuntime, ResolvedPlaceView } from "#pipeline/types";
21
- import type { DemoMapStyle } from "./DemoMap.tsx";
21
+ import type { PipelineRuntime } from "#pipeline/types";
22
+ import type { MapCanvasStyle } from "./MapCanvas.tsx";
22
23
  /**
23
24
  * `[longitude, latitude]`.
24
25
  *
@@ -84,7 +85,7 @@ export interface Suggestion {
84
85
  /**
85
86
  * A selectable model bundle (version tag + a display label the picker shows).
86
87
  */
87
- export interface DemoVersionOption {
88
+ export interface VersionOption {
88
89
  /**
89
90
  * The version tag (e.g. a git tag or model-card version).
90
91
  */
@@ -95,21 +96,21 @@ export interface DemoVersionOption {
95
96
  label?: string;
96
97
  }
97
98
  /**
98
- * Which neural backend the demo is currently running on.
99
+ * Which neural backend the geocoder is currently running on.
99
100
  */
100
- export type DemoBackend = "webgpu" | "wasm";
101
+ export type InferenceBackend = "webgpu" | "wasm";
101
102
  /**
102
- * The injected demo runtime. Extends {@link PipelineRuntime} (shared `runParse` / `parseStageLabels` / `loading` /
103
- * `ready`) with the map + version/backend surface the demo needs. The host composes `mapStyle` (via cartographer's
103
+ * The injected geocoder runtime. Extends {@link PipelineRuntime} (shared `runParse` / `parseStageLabels` / `loading` /
104
+ * `ready`) with the map + version/backend surface the geocoder needs. The host composes `mapStyle` (via cartographer's
104
105
  * `StyleSpecificationComposer` + the tile-worker TileJSON), supplies the overlay specs, the initial center (from
105
106
  * geolocation), the FST autocomplete, and the calibrator — nothing in the package imports `@mailwoman/cartographer`,
106
- * `@mailwoman/neural-web`, httpvfs, or Docusaurus.
107
+ * `@mailwoman/neural`'s web loader, httpvfs, or Docusaurus.
107
108
  */
108
- export interface DemoRuntime extends PipelineRuntime {
109
+ export interface GeocoderRuntime extends PipelineRuntime {
109
110
  /**
110
111
  * The composed basemap style (URL or `StyleSpecification`).
111
112
  */
112
- mapStyle: DemoMapStyle;
113
+ mapStyle: MapCanvasStyle;
113
114
  /**
114
115
  * Host-supplied overlays (coverage, race-dots, …).
115
116
  */
@@ -123,7 +124,7 @@ export interface DemoRuntime extends PipelineRuntime {
123
124
  */
124
125
  initialZoom?: number;
125
126
  /**
126
- * A bias-aware parse. The map demo feeds the current viewport center as a soft prior; when absent the host falls back
127
+ * A bias-aware parse. The geocoder feeds the current viewport center as a soft prior; when absent the host falls back
127
128
  * to the base {@link PipelineRuntime.runParse}. Kept separate so the shared `runParse` contract is unchanged.
128
129
  */
129
130
  runParseWithBias?: (input: string, bias: MapBias | null, hooks: {
@@ -139,16 +140,16 @@ export interface DemoRuntime extends PipelineRuntime {
139
140
  calibrator?: (raw: number) => number | null;
140
141
  /**
141
142
  * Enrich the selected candidate into the richer {@link ResolvedMapPlace} the declarative map render consumes (bbox,
142
- * street tier + uncertainty, a pre-fetched crisp polygon) — the fields that live on the demo's `ResolvedHit` but not
143
+ * street tier + uncertainty, a pre-fetched crisp polygon) — the fields that live on the host's `ResolvedHit` but not
143
144
  * on the shared {@link ResolvedPlaceView}. The host owns this because those extras (and the async polygon fetch in the
144
- * real demo) are host/gazetteer concerns; the package keeps {@link ParseResult} unpolluted. Absent → the candidate
145
+ * real runtime) are host/gazetteer concerns; the package keeps {@link ParseResult} unpolluted. Absent → the candidate
145
146
  * renders as a bare point (marker + a mid-zoom fly-to). Returning `null` also renders nothing.
146
147
  */
147
148
  resolveMapPlace?: (candidate: ResolvedPlaceView, result: ParseResult) => ResolvedMapPlace | null;
148
149
  /**
149
150
  * The selectable model bundles the version picker offers.
150
151
  */
151
- availableVersions?: DemoVersionOption[];
152
+ availableVersions?: VersionOption[];
152
153
  /**
153
154
  * The currently-selected model version.
154
155
  */
@@ -171,9 +172,10 @@ export interface DemoRuntime extends PipelineRuntime {
171
172
  setForceWASM?: (forceWASM: boolean) => void;
172
173
  }
173
174
  /**
174
- * The compare-mode state a {@link DemoPanels.compare} render-prop receives (the second parse itself stays host-side).
175
+ * The compare-mode state a {@link GeocoderPanels.compare} render-prop receives (the second parse itself stays
176
+ * host-side).
175
177
  */
176
- export interface DemoCompareContext {
178
+ export interface CompareContext {
177
179
  /**
178
180
  * The current primary parse result, or `null` before the first submit.
179
181
  */
@@ -188,12 +190,12 @@ export interface DemoCompareContext {
188
190
  compareVersion: string | null;
189
191
  }
190
192
  /**
191
- * The state a {@link DemoPanels.result} render-prop receives, so a host can render its OWN result block (the docs
193
+ * The state a {@link GeocoderPanels.result} render-prop receives, so a host can render its OWN result block (a
192
194
  * `<ResultPanel>` with its span-highlight / timing / hierarchy / precision detail) in place of the package's default
193
195
  * {@link ResultPanel}. Everything the default panel needs is passed through; the candidate-selection state stays owned
194
- * by the package (`useDemoGeocode`).
196
+ * by the package (`useGeocode`).
195
197
  */
196
- export interface DemoResultContext {
198
+ export interface ResultContext {
197
199
  /**
198
200
  * The current parse+resolve result.
199
201
  */
@@ -212,14 +214,14 @@ export interface DemoResultContext {
212
214
  onSelectCandidate: (index: number) => void;
213
215
  }
214
216
  /**
215
- * Host-injected panels for {@link GeocoderDemo}, the map analogue of `PipelinePanels`. Each is an already-rendered
216
- * `ReactNode` (or a thunk of the parse result / compare state) so the package needs neither the heavy docs visualizers
217
- * (ModelVisualizer, VersionCompare, AboutDemo, PermalinkButton) nor their data types. Every field is optional — the
218
- * fake-runtime Storybook stories pass none and still render the whole demo.
217
+ * Host-injected panels for {@link Geocoder}, the map analogue of `PipelinePanels`. Each is an already-rendered
218
+ * `ReactNode` (or a thunk of the parse result / compare state) so the package needs neither the heavy host visualizers
219
+ * (ModelVisualizer, VersionCompare, About, PermalinkButton) nor their data types. Every field is optional — the
220
+ * fake-runtime Storybook stories pass none and still render the whole geocoder.
219
221
  */
220
- export interface DemoPanels {
222
+ export interface GeocoderPanels {
221
223
  /**
222
- * Rendered at the top of the control panel (e.g. the docs "About this demo").
224
+ * Rendered at the top of the control panel (e.g. the host's "About this geocoder").
223
225
  */
224
226
  header?: ReactNode;
225
227
  /**
@@ -231,9 +233,9 @@ export interface DemoPanels {
231
233
  */
232
234
  footer?: ReactNode;
233
235
  /**
234
- * A device-location / proximity-bias control, rendered between the query form and the autocomplete list (the demo's
235
- * "📍 Use my location" row). Host-owned so the geolocation permission + the bias it feeds into the host's
236
- * {@link DemoRuntime.runParseWithBias} stay a host concern.
236
+ * A device-location / proximity-bias control, rendered between the query form and the autocomplete list (the "📍 Use
237
+ * my location" row). Host-owned so the geolocation permission + the bias it feeds into the host's
238
+ * {@link GeocoderRuntime.runParseWithBias} stay a host concern.
237
239
  */
238
240
  bias?: ReactNode;
239
241
  /**
@@ -241,7 +243,7 @@ export interface DemoPanels {
241
243
  */
242
244
  extras?: (result: ParseResult) => ReactNode;
243
245
  /**
244
- * Rendered just above the result block (present or empty). The demo's opt-in display toggles live here — calibrated
246
+ * Rendered just above the result block (present or empty). The opt-in display toggles live here — calibrated
245
247
  * confidence + dev-mode — because the host owns both the toggle state AND the {@link result} / {@link debugDrawer}
246
248
  * renderers those toggles drive.
247
249
  */
@@ -250,10 +252,10 @@ export interface DemoPanels {
250
252
  }) => ReactNode;
251
253
  /**
252
254
  * Replace the package's default {@link ResultPanel} entirely. When provided, the host renders its own result block
253
- * (the docs `<ResultPanel>` — span highlight, timing, hierarchy, precision detail, calibrated confidences) from the
254
- * {@link DemoResultContext}. Absent → the built-in panel renders.
255
+ * (span highlight, timing, hierarchy, precision detail, calibrated confidences) from the {@link ResultContext}. Absent
256
+ * → the built-in panel renders.
255
257
  */
256
- result?: (context: DemoResultContext) => ReactNode;
258
+ result?: (context: ResultContext) => ReactNode;
257
259
  /**
258
260
  * Rendered in place of the resolved-place panel when nothing resolved (host's FailureDiagnostic). Ignored when
259
261
  * {@link result} is set.
@@ -262,7 +264,7 @@ export interface DemoPanels {
262
264
  /**
263
265
  * The version-compare view — the host renders its own diff from the compare state it owns.
264
266
  */
265
- compare?: (context: DemoCompareContext) => ReactNode;
267
+ compare?: (context: CompareContext) => ReactNode;
266
268
  /**
267
269
  * The model-visualizer / debug drawer, mounted beside the map (host's ModelVisualizer). A render-prop so the host can
268
270
  * trace the CURRENT result (its input) — the package passes the live parse result; the host decides on its own
@@ -272,7 +274,7 @@ export interface DemoPanels {
272
274
  result: ParseResult | null;
273
275
  }) => ReactNode;
274
276
  /**
275
- * Extra map controls mounted as `<DemoMap>` children (host's DebugControl / LayerToggle via `useControl`).
277
+ * Extra map controls mounted as `<MapCanvas>` children (host's DebugControl / LayerToggle via `useControl`).
276
278
  */
277
279
  mapControls?: ReactNode;
278
280
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/map/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/map/types.ts"],"names":[],"mappings":"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"}
package/out/map/types.js CHANGED
@@ -3,15 +3,15 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * Types for the geocoder-demo map surface. Mirrors the pipeline boundary: the package owns the UI state
7
- * machine + the declarative map, while the host injects a {@link DemoRuntime} that owns ONNX / httpvfs
8
- * / R2 and the composed map style. {@link DemoRuntime} EXTENDS {@link PipelineRuntime} so the shared
6
+ * Types for the geocoder map surface. Mirrors the pipeline boundary: the package owns the UI state
7
+ * machine + the declarative map, while the host injects a {@link GeocoderRuntime} that owns ONNX / httpvfs
8
+ * / R2 and the composed map style. {@link GeocoderRuntime} EXTENDS {@link PipelineRuntime} so the shared
9
9
  * `runParse` / `parseStageLabels` / `loading` contract is reused, and adds the map-specific surface
10
10
  * (style, overlays, initial center, viewport bias, backend/version selection). Phase 4 adds the
11
- * `resolveMapPlace` enricher, the {@link DemoPanels} injection bag, and the {@link DemoCompareContext}.
11
+ * `resolveMapPlace` enricher, the {@link GeocoderPanels} injection bag, and the {@link CompareContext}.
12
12
  *
13
13
  * The map-spec types are imported type-only from `react-map-gl/maplibre`; nothing here loads maplibre at
14
- * runtime, so this module stays node-safe (its concrete-value CONSUMERS — `DemoMap`, `GeocoderDemo` —
14
+ * runtime, so this module stays node-safe (its concrete-value CONSUMERS — `MapCanvas`, `Geocoder` —
15
15
  * are the ones behind the `@mailwoman/react/map` subpath).
16
16
  */
17
17
  export {};