@mailwoman/react 10.0.0 → 10.2.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 (389) hide show
  1. package/README.md +18 -16
  2. package/fonts.css +97 -22
  3. package/lib/common/About.tsx +10 -10
  4. package/lib/common/ClientOnly.tsx +2 -14
  5. package/lib/common/CopyButton.tsx +9 -3
  6. package/lib/common/LoadingIndicator.tsx +13 -5
  7. package/lib/common/PresetChips.tsx +11 -8
  8. package/lib/common/confidence-tiers.ts +8 -7
  9. package/lib/common/cx.ts +3 -1
  10. package/lib/common/text-tokens.ts +10 -13
  11. package/lib/common/useBuildInfo.ts +54 -0
  12. package/lib/common/useClipboard.ts +2 -11
  13. package/lib/common.ts +22 -0
  14. package/lib/index.ts +27 -18
  15. package/lib/map/AppIdentity.tsx +89 -0
  16. package/lib/map/CompareToggle.tsx +8 -31
  17. package/lib/map/DebugInfo.tsx +75 -0
  18. package/lib/map/Geocoder.tsx +65 -50
  19. package/lib/map/GeocoderControls.tsx +425 -141
  20. package/lib/map/GraticuleLayer.tsx +56 -0
  21. package/lib/map/MapCanvas.tsx +26 -13
  22. package/lib/map/MapChipRow.tsx +4 -8
  23. package/lib/map/MapCompass.tsx +18 -25
  24. package/lib/map/MapControlStack.tsx +11 -10
  25. package/lib/map/MapFooter.tsx +5 -17
  26. package/lib/map/MapProgressBar.tsx +10 -13
  27. package/lib/map/MapSearchBar.tsx +31 -17
  28. package/lib/map/MapSheet.tsx +24 -15
  29. package/lib/map/OverlayLayers.tsx +14 -3
  30. package/lib/map/PlaceAutocomplete.tsx +12 -21
  31. package/lib/map/PlaceMarker.tsx +10 -4
  32. package/lib/map/ResolvedPlaceLayers.tsx +14 -15
  33. package/lib/map/ResultCamera.tsx +10 -31
  34. package/lib/map/ResultOverlay.tsx +14 -16
  35. package/lib/map/ResultPanel.tsx +1 -20
  36. package/lib/map/VersionPicker.tsx +10 -19
  37. package/lib/map/fake-runtime.ts +46 -19
  38. package/lib/map/geometry.ts +14 -47
  39. package/lib/map/graticule.ts +80 -0
  40. package/lib/map/map-debug.ts +4 -2
  41. package/lib/map/place-render.ts +30 -62
  42. package/lib/map/types.ts +57 -116
  43. package/lib/map/useCompareState.ts +5 -4
  44. package/lib/map/useGeocode.ts +7 -5
  45. package/lib/map/useMapBearing.ts +13 -13
  46. package/lib/map/useMapLabelPick.ts +21 -30
  47. package/lib/map/useMapPlaceRender.ts +3 -7
  48. package/lib/map/usePlaceAutocomplete.ts +44 -50
  49. package/lib/map.ts +92 -0
  50. package/lib/pipeline/CandidatePicker.tsx +13 -5
  51. package/lib/pipeline/ConfidenceCell.tsx +2 -2
  52. package/lib/pipeline/FailureDiagnostic.tsx +8 -2
  53. package/lib/pipeline/PipelineExplorer.tsx +6 -3
  54. package/lib/pipeline/QueryForm.tsx +5 -2
  55. package/lib/pipeline/ResolvedPlace.tsx +2 -2
  56. package/lib/pipeline/SpanHighlight.tsx +7 -5
  57. package/lib/pipeline/TimingPanel.tsx +1 -1
  58. package/lib/pipeline/TreeView.tsx +2 -2
  59. package/lib/pipeline/copy.ts +22 -25
  60. package/lib/pipeline/presets.ts +15 -13
  61. package/lib/pipeline/types.ts +20 -17
  62. package/lib/pipeline/useParsePipeline.ts +16 -13
  63. package/lib/pipeline.ts +36 -0
  64. package/lib/poi/AbstainPanel.tsx +1 -1
  65. package/lib/poi/LiveResultsBlock.tsx +2 -1
  66. package/lib/poi/POIExplorer.tsx +29 -17
  67. package/lib/poi/QueryInput.tsx +1 -1
  68. package/lib/poi/SubjectPanel.tsx +4 -3
  69. package/lib/poi/runtime.ts +14 -16
  70. package/lib/poi/types.ts +58 -47
  71. package/lib/poi/usePOISearch.ts +91 -82
  72. package/lib/poi.ts +40 -0
  73. package/lib/runtime/useReleaseRuntime.ts +122 -90
  74. package/lib/search/SearchModal.tsx +478 -0
  75. package/lib/search/search.css +282 -0
  76. package/lib/search/types.ts +68 -0
  77. package/lib/search.ts +11 -0
  78. package/out/common/About.d.ts +6 -6
  79. package/out/common/About.d.ts.map +1 -1
  80. package/out/common/About.js +1 -1
  81. package/out/common/About.js.map +1 -1
  82. package/out/common/ClientOnly.d.ts +2 -11
  83. package/out/common/ClientOnly.d.ts.map +1 -1
  84. package/out/common/ClientOnly.js +1 -13
  85. package/out/common/ClientOnly.js.map +1 -1
  86. package/out/common/CopyButton.d.ts +9 -3
  87. package/out/common/CopyButton.d.ts.map +1 -1
  88. package/out/common/CopyButton.js.map +1 -1
  89. package/out/common/LoadingIndicator.d.ts +13 -5
  90. package/out/common/LoadingIndicator.d.ts.map +1 -1
  91. package/out/common/LoadingIndicator.js.map +1 -1
  92. package/out/common/PresetChips.d.ts +11 -8
  93. package/out/common/PresetChips.d.ts.map +1 -1
  94. package/out/common/PresetChips.js.map +1 -1
  95. package/out/common/confidence-tiers.d.ts +8 -7
  96. package/out/common/confidence-tiers.d.ts.map +1 -1
  97. package/out/common/confidence-tiers.js +7 -6
  98. package/out/common/confidence-tiers.js.map +1 -1
  99. package/out/common/cx.d.ts +3 -1
  100. package/out/common/cx.d.ts.map +1 -1
  101. package/out/common/cx.js +3 -1
  102. package/out/common/cx.js.map +1 -1
  103. package/out/common/text-tokens.d.ts +6 -11
  104. package/out/common/text-tokens.d.ts.map +1 -1
  105. package/out/common/text-tokens.js +6 -3
  106. package/out/common/text-tokens.js.map +1 -1
  107. package/out/common/useBuildInfo.d.ts +27 -0
  108. package/out/common/useBuildInfo.d.ts.map +1 -0
  109. package/out/common/useBuildInfo.js +32 -0
  110. package/out/common/useBuildInfo.js.map +1 -0
  111. package/out/common/useClipboard.d.ts +1 -3
  112. package/out/common/useClipboard.d.ts.map +1 -1
  113. package/out/common/useClipboard.js +2 -11
  114. package/out/common/useClipboard.js.map +1 -1
  115. package/out/common.d.ts +22 -0
  116. package/out/common.d.ts.map +1 -0
  117. package/out/common.js +15 -0
  118. package/out/common.js.map +1 -0
  119. package/out/index.d.ts +26 -16
  120. package/out/index.d.ts.map +1 -1
  121. package/out/index.js +21 -15
  122. package/out/index.js.map +1 -1
  123. package/out/map/AppIdentity.d.ts +46 -0
  124. package/out/map/AppIdentity.d.ts.map +1 -0
  125. package/out/map/AppIdentity.js +16 -0
  126. package/out/map/AppIdentity.js.map +1 -0
  127. package/out/map/CompareToggle.d.ts +8 -31
  128. package/out/map/CompareToggle.d.ts.map +1 -1
  129. package/out/map/CompareToggle.js +4 -1
  130. package/out/map/CompareToggle.js.map +1 -1
  131. package/out/map/DebugInfo.d.ts +27 -0
  132. package/out/map/DebugInfo.d.ts.map +1 -0
  133. package/out/map/DebugInfo.js +36 -0
  134. package/out/map/DebugInfo.js.map +1 -0
  135. package/out/map/Geocoder.d.ts +41 -30
  136. package/out/map/Geocoder.d.ts.map +1 -1
  137. package/out/map/Geocoder.js +23 -37
  138. package/out/map/Geocoder.js.map +1 -1
  139. package/out/map/GeocoderControls.d.ts +15 -44
  140. package/out/map/GeocoderControls.d.ts.map +1 -1
  141. package/out/map/GeocoderControls.js +250 -39
  142. package/out/map/GeocoderControls.js.map +1 -1
  143. package/out/map/GraticuleLayer.d.ts +30 -0
  144. package/out/map/GraticuleLayer.d.ts.map +1 -0
  145. package/out/map/GraticuleLayer.js +25 -0
  146. package/out/map/GraticuleLayer.js.map +1 -0
  147. package/out/map/MapCanvas.d.ts +26 -13
  148. package/out/map/MapCanvas.d.ts.map +1 -1
  149. package/out/map/MapCanvas.js +5 -2
  150. package/out/map/MapCanvas.js.map +1 -1
  151. package/out/map/MapChipRow.d.ts +4 -8
  152. package/out/map/MapChipRow.d.ts.map +1 -1
  153. package/out/map/MapChipRow.js.map +1 -1
  154. package/out/map/MapCompass.d.ts +14 -21
  155. package/out/map/MapCompass.d.ts.map +1 -1
  156. package/out/map/MapCompass.js +5 -1
  157. package/out/map/MapCompass.js.map +1 -1
  158. package/out/map/MapControlStack.d.ts +11 -10
  159. package/out/map/MapControlStack.d.ts.map +1 -1
  160. package/out/map/MapControlStack.js +4 -1
  161. package/out/map/MapControlStack.js.map +1 -1
  162. package/out/map/MapFooter.d.ts +5 -16
  163. package/out/map/MapFooter.d.ts.map +1 -1
  164. package/out/map/MapFooter.js +0 -14
  165. package/out/map/MapFooter.js.map +1 -1
  166. package/out/map/MapProgressBar.d.ts +10 -13
  167. package/out/map/MapProgressBar.d.ts.map +1 -1
  168. package/out/map/MapProgressBar.js.map +1 -1
  169. package/out/map/MapSearchBar.d.ts +16 -17
  170. package/out/map/MapSearchBar.d.ts.map +1 -1
  171. package/out/map/MapSearchBar.js +6 -0
  172. package/out/map/MapSearchBar.js.map +1 -1
  173. package/out/map/MapSheet.d.ts +15 -12
  174. package/out/map/MapSheet.d.ts.map +1 -1
  175. package/out/map/MapSheet.js +8 -12
  176. package/out/map/MapSheet.js.map +1 -1
  177. package/out/map/OverlayLayers.d.ts +8 -2
  178. package/out/map/OverlayLayers.d.ts.map +1 -1
  179. package/out/map/OverlayLayers.js +3 -3
  180. package/out/map/OverlayLayers.js.map +1 -1
  181. package/out/map/PlaceAutocomplete.d.ts +12 -21
  182. package/out/map/PlaceAutocomplete.d.ts.map +1 -1
  183. package/out/map/PlaceAutocomplete.js +2 -1
  184. package/out/map/PlaceAutocomplete.js.map +1 -1
  185. package/out/map/PlaceMarker.d.ts +10 -4
  186. package/out/map/PlaceMarker.d.ts.map +1 -1
  187. package/out/map/PlaceMarker.js +3 -1
  188. package/out/map/PlaceMarker.js.map +1 -1
  189. package/out/map/ResolvedPlaceLayers.d.ts +14 -15
  190. package/out/map/ResolvedPlaceLayers.d.ts.map +1 -1
  191. package/out/map/ResolvedPlaceLayers.js +1 -1
  192. package/out/map/ResolvedPlaceLayers.js.map +1 -1
  193. package/out/map/ResultCamera.d.ts +10 -31
  194. package/out/map/ResultCamera.d.ts.map +1 -1
  195. package/out/map/ResultCamera.js +3 -28
  196. package/out/map/ResultCamera.js.map +1 -1
  197. package/out/map/ResultOverlay.d.ts +14 -16
  198. package/out/map/ResultOverlay.d.ts.map +1 -1
  199. package/out/map/ResultOverlay.js +1 -2
  200. package/out/map/ResultOverlay.js.map +1 -1
  201. package/out/map/ResultPanel.d.ts +1 -20
  202. package/out/map/ResultPanel.d.ts.map +1 -1
  203. package/out/map/ResultPanel.js.map +1 -1
  204. package/out/map/VersionPicker.d.ts +7 -19
  205. package/out/map/VersionPicker.d.ts.map +1 -1
  206. package/out/map/VersionPicker.js +5 -2
  207. package/out/map/VersionPicker.js.map +1 -1
  208. package/out/map/fake-runtime.d.ts +9 -11
  209. package/out/map/fake-runtime.d.ts.map +1 -1
  210. package/out/map/fake-runtime.js +45 -19
  211. package/out/map/fake-runtime.js.map +1 -1
  212. package/out/map/geometry.d.ts +13 -34
  213. package/out/map/geometry.d.ts.map +1 -1
  214. package/out/map/geometry.js +9 -34
  215. package/out/map/geometry.js.map +1 -1
  216. package/out/map/graticule.d.ts +17 -0
  217. package/out/map/graticule.d.ts.map +1 -0
  218. package/out/map/graticule.js +67 -0
  219. package/out/map/graticule.js.map +1 -0
  220. package/out/map/map-debug.d.ts +4 -2
  221. package/out/map/map-debug.d.ts.map +1 -1
  222. package/out/map/map-debug.js +1 -1
  223. package/out/map/map-debug.js.map +1 -1
  224. package/out/map/place-render.d.ts +25 -45
  225. package/out/map/place-render.d.ts.map +1 -1
  226. package/out/map/place-render.js +4 -39
  227. package/out/map/place-render.js.map +1 -1
  228. package/out/map/types.d.ts +57 -113
  229. package/out/map/types.d.ts.map +1 -1
  230. package/out/map/types.js +1 -10
  231. package/out/map/types.js.map +1 -1
  232. package/out/map/useCompareState.d.ts +5 -4
  233. package/out/map/useCompareState.d.ts.map +1 -1
  234. package/out/map/useCompareState.js +3 -3
  235. package/out/map/useCompareState.js.map +1 -1
  236. package/out/map/useGeocode.d.ts +5 -3
  237. package/out/map/useGeocode.d.ts.map +1 -1
  238. package/out/map/useGeocode.js +4 -4
  239. package/out/map/useGeocode.js.map +1 -1
  240. package/out/map/useMapBearing.d.ts +11 -11
  241. package/out/map/useMapBearing.d.ts.map +1 -1
  242. package/out/map/useMapBearing.js +6 -11
  243. package/out/map/useMapBearing.js.map +1 -1
  244. package/out/map/useMapLabelPick.d.ts +4 -14
  245. package/out/map/useMapLabelPick.d.ts.map +1 -1
  246. package/out/map/useMapLabelPick.js +21 -30
  247. package/out/map/useMapLabelPick.js.map +1 -1
  248. package/out/map/useMapPlaceRender.d.ts +3 -7
  249. package/out/map/useMapPlaceRender.d.ts.map +1 -1
  250. package/out/map/useMapPlaceRender.js +2 -6
  251. package/out/map/useMapPlaceRender.js.map +1 -1
  252. package/out/map/usePlaceAutocomplete.d.ts +30 -28
  253. package/out/map/usePlaceAutocomplete.d.ts.map +1 -1
  254. package/out/map/usePlaceAutocomplete.js +6 -33
  255. package/out/map/usePlaceAutocomplete.js.map +1 -1
  256. package/out/map.d.ts +67 -0
  257. package/out/map.d.ts.map +1 -0
  258. package/out/map.js +45 -0
  259. package/out/map.js.map +1 -0
  260. package/out/pipeline/CandidatePicker.d.ts +12 -2
  261. package/out/pipeline/CandidatePicker.d.ts.map +1 -1
  262. package/out/pipeline/CandidatePicker.js +1 -1
  263. package/out/pipeline/CandidatePicker.js.map +1 -1
  264. package/out/pipeline/ConfidenceCell.d.ts +2 -2
  265. package/out/pipeline/ConfidenceCell.d.ts.map +1 -1
  266. package/out/pipeline/ConfidenceCell.js +1 -1
  267. package/out/pipeline/FailureDiagnostic.d.ts +8 -2
  268. package/out/pipeline/FailureDiagnostic.d.ts.map +1 -1
  269. package/out/pipeline/FailureDiagnostic.js +3 -0
  270. package/out/pipeline/FailureDiagnostic.js.map +1 -1
  271. package/out/pipeline/PipelineExplorer.d.ts +6 -2
  272. package/out/pipeline/PipelineExplorer.d.ts.map +1 -1
  273. package/out/pipeline/PipelineExplorer.js +1 -1
  274. package/out/pipeline/PipelineExplorer.js.map +1 -1
  275. package/out/pipeline/QueryForm.d.ts +5 -2
  276. package/out/pipeline/QueryForm.d.ts.map +1 -1
  277. package/out/pipeline/QueryForm.js.map +1 -1
  278. package/out/pipeline/ResolvedPlace.d.ts +1 -1
  279. package/out/pipeline/ResolvedPlace.d.ts.map +1 -1
  280. package/out/pipeline/SpanHighlight.d.ts +4 -3
  281. package/out/pipeline/SpanHighlight.d.ts.map +1 -1
  282. package/out/pipeline/SpanHighlight.js +3 -2
  283. package/out/pipeline/SpanHighlight.js.map +1 -1
  284. package/out/pipeline/TimingPanel.d.ts +1 -1
  285. package/out/pipeline/TreeView.d.ts +1 -1
  286. package/out/pipeline/TreeView.js.map +1 -1
  287. package/out/pipeline/copy.d.ts +1 -1
  288. package/out/pipeline/copy.d.ts.map +1 -1
  289. package/out/pipeline/copy.js +4 -3
  290. package/out/pipeline/copy.js.map +1 -1
  291. package/out/pipeline/presets.d.ts +5 -4
  292. package/out/pipeline/presets.d.ts.map +1 -1
  293. package/out/pipeline/presets.js +15 -13
  294. package/out/pipeline/presets.js.map +1 -1
  295. package/out/pipeline/types.d.ts +20 -17
  296. package/out/pipeline/types.d.ts.map +1 -1
  297. package/out/pipeline/types.js +2 -4
  298. package/out/pipeline/types.js.map +1 -1
  299. package/out/pipeline/useParsePipeline.d.ts +14 -9
  300. package/out/pipeline/useParsePipeline.d.ts.map +1 -1
  301. package/out/pipeline/useParsePipeline.js +7 -8
  302. package/out/pipeline/useParsePipeline.js.map +1 -1
  303. package/out/pipeline.d.ts +33 -0
  304. package/out/pipeline.d.ts.map +1 -0
  305. package/out/pipeline.js +21 -0
  306. package/out/pipeline.js.map +1 -0
  307. package/out/poi/AbstainPanel.d.ts +1 -1
  308. package/out/poi/LiveResultsBlock.d.ts +2 -1
  309. package/out/poi/LiveResultsBlock.d.ts.map +1 -1
  310. package/out/poi/LiveResultsBlock.js.map +1 -1
  311. package/out/poi/POIExplorer.d.ts +22 -12
  312. package/out/poi/POIExplorer.d.ts.map +1 -1
  313. package/out/poi/POIExplorer.js +11 -10
  314. package/out/poi/POIExplorer.js.map +1 -1
  315. package/out/poi/QueryInput.d.ts +1 -1
  316. package/out/poi/SubjectPanel.d.ts +2 -2
  317. package/out/poi/SubjectPanel.d.ts.map +1 -1
  318. package/out/poi/SubjectPanel.js +2 -1
  319. package/out/poi/SubjectPanel.js.map +1 -1
  320. package/out/poi/runtime.d.ts +5 -14
  321. package/out/poi/runtime.d.ts.map +1 -1
  322. package/out/poi/runtime.js +14 -16
  323. package/out/poi/runtime.js.map +1 -1
  324. package/out/poi/types.d.ts +53 -45
  325. package/out/poi/types.d.ts.map +1 -1
  326. package/out/poi/types.js +2 -4
  327. package/out/poi/types.js.map +1 -1
  328. package/out/poi/usePOISearch.d.ts +30 -17
  329. package/out/poi/usePOISearch.d.ts.map +1 -1
  330. package/out/poi/usePOISearch.js +48 -64
  331. package/out/poi/usePOISearch.js.map +1 -1
  332. package/out/poi.d.ts +23 -0
  333. package/out/poi.d.ts.map +1 -0
  334. package/out/poi.js +15 -0
  335. package/out/poi.js.map +1 -0
  336. package/out/runtime/useReleaseRuntime.d.ts +63 -74
  337. package/out/runtime/useReleaseRuntime.d.ts.map +1 -1
  338. package/out/runtime/useReleaseRuntime.js +31 -32
  339. package/out/runtime/useReleaseRuntime.js.map +1 -1
  340. package/out/{runtime/index.d.ts → runtime.d.ts} +1 -1
  341. package/out/runtime.d.ts.map +1 -0
  342. package/out/{runtime/index.js → runtime.js} +1 -1
  343. package/out/runtime.js.map +1 -0
  344. package/out/search/SearchModal.d.ts +40 -0
  345. package/out/search/SearchModal.d.ts.map +1 -0
  346. package/out/search/SearchModal.js +255 -0
  347. package/out/search/SearchModal.js.map +1 -0
  348. package/out/search/types.d.ts +65 -0
  349. package/out/search/types.d.ts.map +1 -0
  350. package/out/search/types.js +13 -0
  351. package/out/search/types.js.map +1 -0
  352. package/out/search.d.ts +11 -0
  353. package/out/search.d.ts.map +1 -0
  354. package/out/search.js +9 -0
  355. package/out/search.js.map +1 -0
  356. package/package.json +73 -165
  357. package/styles.css +482 -266
  358. package/tokens/index.css +24 -6
  359. package/tokens/tokens.json +114 -6
  360. package/lib/common/index.ts +0 -22
  361. package/lib/map/BackendControl.tsx +0 -51
  362. package/lib/map/index.ts +0 -95
  363. package/lib/pipeline/index.ts +0 -36
  364. package/lib/poi/index.ts +0 -39
  365. package/out/common/index.d.ts +0 -22
  366. package/out/common/index.d.ts.map +0 -1
  367. package/out/common/index.js +0 -15
  368. package/out/common/index.js.map +0 -1
  369. package/out/map/BackendControl.d.ts +0 -32
  370. package/out/map/BackendControl.d.ts.map +0 -1
  371. package/out/map/BackendControl.js +0 -8
  372. package/out/map/BackendControl.js.map +0 -1
  373. package/out/map/index.d.ts +0 -69
  374. package/out/map/index.d.ts.map +0 -1
  375. package/out/map/index.js +0 -46
  376. package/out/map/index.js.map +0 -1
  377. package/out/pipeline/index.d.ts +0 -33
  378. package/out/pipeline/index.d.ts.map +0 -1
  379. package/out/pipeline/index.js +0 -21
  380. package/out/pipeline/index.js.map +0 -1
  381. package/out/poi/index.d.ts +0 -23
  382. package/out/poi/index.d.ts.map +0 -1
  383. package/out/poi/index.js +0 -15
  384. package/out/poi/index.js.map +0 -1
  385. package/out/runtime/index.d.ts.map +0 -1
  386. package/out/runtime/index.js.map +0 -1
  387. package/styleframe.config.ts +0 -329
  388. package/vitest.node.config.ts +0 -20
  389. /package/lib/{runtime/index.ts → runtime.ts} +0 -0
@@ -1,53 +1,241 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * @copyright Sister Software
4
- * @license AGPL-3.0
5
- * @author Teffen Ellis, et al.
6
- *
7
- * The geocoder's chrome over the map: a search pill on top, example chips on one line beneath it, a control column
8
- * down the right edge, and a result sheet that rises from the bottom when there is something to show.
9
- *
10
- * It replaces a 400px full-height panel that carried every control at once. The layout is the one the reference
11
- * map apps use, and the reason is the map: chrome that floats over it leaves the map the page, where a slab makes
12
- * the map the leftover third.
13
- *
14
- * NODE-SAFE: pure React + the shared units, no maplibre.
15
- */
16
- import { useCallback, useState } from "react";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
17
3
  import { useMapBearing } from "#map/useMapBearing";
18
4
  import { useMapLabelPick } from "#map/useMapLabelPick";
19
5
  import { LoadingIndicator } from "../common/LoadingIndicator.js";
20
- import { BackendControl } from "./BackendControl.js";
21
6
  import { CompareToggle } from "./CompareToggle.js";
7
+ import { DebugInfo } from "./DebugInfo.js";
22
8
  import { MapChipRow } from "./MapChipRow.js";
23
9
  import { MapCompass } from "./MapCompass.js";
24
10
  import { MapControlButton, MapControlGroup, MapControlStack } from "./MapControlStack.js";
25
11
  import { MapProgressBar } from "./MapProgressBar.js";
26
- import { MapSearchBar } from "./MapSearchBar.js";
27
- import { MapSheet } from "./MapSheet.js";
12
+ import { MapSearchBar, SearchGlyph } from "./MapSearchBar.js";
13
+ import { MapSheet, SheetClose } from "./MapSheet.js";
28
14
  import { PlaceAutocomplete } from "./PlaceAutocomplete.js";
29
15
  import { ResultPanel } from "./ResultPanel.js";
30
16
  import { VersionPicker } from "./VersionPicker.js";
31
17
  /**
32
- * The chrome. Everything positioned here floats over the map; nothing occupies a column of the page.
18
+ * The media query for the bottom-drawer layout.
19
+ * It must match the breakpoint in `styles.css`.
20
+ */
21
+ const DRAWER_LAYOUT = "(max-width: 600px)";
22
+ /**
23
+ * The pointer travel, in px, that turns a press on the header into a drag instead of a tap.
24
+ */
25
+ const DRAG_TRAVEL_PX = 3;
26
+ /**
27
+ * The downward travel, in px, that turns a pull at the top of the panel's scroll into a drawer drag.
28
+ */
29
+ const OVERSCROLL_PROMOTE_PX = 8;
30
+ /**
31
+ * Renders the search and result panels, map control rail and side sheets over the map.
32
+ *
33
+ * On narrow screens, users can drag the search panel between bottom-drawer detents.
33
34
  */
34
- export function GeocoderControls({ runtime, geocode, autocomplete, compare, panels, presets, placeholder, map = null, onSubmitQuery, onSelectVersion, onForceWASMChange, developer = false, }) {
35
+ export function GeocoderControls({ runtime, geocode, autocomplete, compare, panels, presets, placeholder, map = null, initialQuery = null, onSubmitQuery, onSelectVersion, developer = false, }) {
35
36
  const versions = runtime.availableVersions ?? [];
36
37
  const { busy, result, selectedCandidate } = geocode;
37
38
  const loading = runtime.loading;
38
39
  const errorMessage = geocode.parseError ?? runtime.errorMessage ?? null;
39
- // One sheet at a time. Two open at once stack on the same edge, and on a phone each is the full panel.
40
+ // Only one side sheet is open at a time, because two would stack on the same edge.
40
41
  const [openSheet, setOpenSheet] = useState(developer ? "developer" : null);
42
+ // This flag hides the result panel until the next query resets it.
43
+ const [resultDismissed, setResultDismissed] = useState(false);
44
+ // The drawer height is in px.
45
+ // A `null` height leaves the size to the stylesheet.
46
+ const sheetRef = useRef(null);
47
+ const [sheetHeight, setSheetHeight] = useState(null);
48
+ const sheetDragRef = useRef(null);
49
+ // The detents are computed on each call, so a rotated or resized viewport needs no resize listener.
50
+ const sheetDetents = useCallback(() => {
51
+ const viewport = window.innerHeight;
52
+ return {
53
+ medium: viewport * 0.52,
54
+ large: viewport * 0.88,
55
+ floor: viewport * 0.15,
56
+ // A drag released below this height dismisses the result.
57
+ dismissBelow: viewport * 0.28,
58
+ // At or below this height, the drawer counts as collapsed.
59
+ // The control rail then returns.
60
+ collapsedBelow: viewport * 0.2,
61
+ };
62
+ }, []);
63
+ // This ref holds a pull that started at the top of the panel's scroll.
64
+ // It becomes a drag after `OVERSCROLL_PROMOTE_PX` of downward travel.
65
+ const overscrollRef = useRef(null);
66
+ // Drag gestures apply only in the drawer layout.
67
+ // The desktop column is sized by its content.
68
+ const isDrawerLayout = () => globalThis.window !== undefined && globalThis.matchMedia(DRAWER_LAYOUT).matches;
69
+ const beginSheetDrag = useCallback((clientY, pointerId) => {
70
+ const sheet = sheetRef.current;
71
+ if (!sheet)
72
+ return;
73
+ sheet.setPointerCapture(pointerId);
74
+ sheetDragRef.current = { startY: clientY, startHeight: sheet.getBoundingClientRect().height, moved: false };
75
+ }, []);
76
+ // The whole header is the grab target, except the search input and the close button.
77
+ const onHeaderPointerDown = useCallback((event) => {
78
+ if (!isDrawerLayout())
79
+ return;
80
+ if (event.target instanceof Element && event.target.closest("input, .mw-map-sheet__close"))
81
+ return;
82
+ beginSheetDrag(event.clientY, event.pointerId);
83
+ }, [beginSheetDrag]);
84
+ const onGripPointerMove = useCallback((event) => {
85
+ const drag = sheetDragRef.current;
86
+ if (!drag)
87
+ return;
88
+ // An upward drag makes the drawer taller, so the delta is inverted against the pointer's y.
89
+ const delta = drag.startY - event.clientY;
90
+ if (Math.abs(delta) > DRAG_TRAVEL_PX) {
91
+ drag.moved = true;
92
+ }
93
+ const { floor, large } = sheetDetents();
94
+ setSheetHeight(Math.min(large, Math.max(floor, drag.startHeight + delta)));
95
+ }, [sheetDetents]);
96
+ // A tap, keyboard activation of the handle and the handle's `aria-expanded` state
97
+ // all use this midpoint to select the drawer detent.
98
+ const detentMidpoint = useCallback(() => {
99
+ const { medium, large } = sheetDetents();
100
+ return (medium + large) / 2;
101
+ }, [sheetDetents]);
102
+ const atLargeDetent = () => sheetHeight !== null && sheetHeight > detentMidpoint();
103
+ const toggleDetent = useCallback(() => {
104
+ const { medium, large } = sheetDetents();
105
+ const current = sheetRef.current?.getBoundingClientRect().height ?? medium;
106
+ setSheetHeight(current > detentMidpoint() ? medium : large);
107
+ }, [sheetDetents, detentMidpoint]);
108
+ const onGripPointerUp = useCallback(() => {
109
+ const drag = sheetDragRef.current;
110
+ if (!drag)
111
+ return;
112
+ sheetDragRef.current = null;
113
+ const { medium, large, dismissBelow } = sheetDetents();
114
+ const midpoint = (medium + large) / 2;
115
+ const current = sheetRef.current?.getBoundingClientRect().height ?? medium;
116
+ // A press without travel counts as a tap.
117
+ // It toggles between the two detents.
118
+ if (!drag.moved) {
119
+ toggleDetent();
120
+ return;
121
+ }
122
+ if (current < dismissBelow) {
123
+ setResultDismissed(true);
124
+ setSheetHeight(null);
125
+ return;
126
+ }
127
+ setSheetHeight(current > midpoint ? large : medium);
128
+ }, [sheetDetents, toggleDetent]);
129
+ // A downward pull on a panel scrolled to its top drags the drawer down.
130
+ // This handler only arms the pull; `onPanelPointerMove` promotes it, so taps
131
+ // and upward scrolls are unaffected.
132
+ const onPanelPointerDown = useCallback((event) => {
133
+ if (!isDrawerLayout())
134
+ return;
135
+ if (sheetDragRef.current)
136
+ return;
137
+ const sheet = sheetRef.current;
138
+ if (!sheet || sheet.scrollTop > 0)
139
+ return;
140
+ if (event.target instanceof Element && event.target.closest(".mw-map-panel__header"))
141
+ return;
142
+ overscrollRef.current = { startY: event.clientY, pointerId: event.pointerId };
143
+ }, []);
144
+ const onPanelPointerMove = useCallback((event) => {
145
+ if (sheetDragRef.current) {
146
+ onGripPointerMove(event);
147
+ return;
148
+ }
149
+ const armed = overscrollRef.current;
150
+ if (!armed || armed.pointerId !== event.pointerId)
151
+ return;
152
+ const sheet = sheetRef.current;
153
+ if (!sheet)
154
+ return;
155
+ if (sheet.scrollTop > 0) {
156
+ overscrollRef.current = null;
157
+ return;
158
+ }
159
+ if (event.clientY - armed.startY < OVERSCROLL_PROMOTE_PX)
160
+ return;
161
+ overscrollRef.current = null;
162
+ // The drag starts from the pull's origin, so the drawer does not jump by the threshold.
163
+ sheetDragRef.current = { startY: armed.startY, startHeight: sheet.getBoundingClientRect().height, moved: true };
164
+ sheet.setPointerCapture(event.pointerId);
165
+ onGripPointerMove(event);
166
+ }, [onGripPointerMove]);
167
+ const onPanelPointerUp = useCallback(() => {
168
+ overscrollRef.current = null;
169
+ onGripPointerUp();
170
+ }, [onGripPointerUp]);
41
171
  const { bearing, resetNorth } = useMapBearing(map);
42
172
  const toggleSheet = (name) => setOpenSheet((current) => (current === name ? null : name));
43
173
  const closeSheet = useCallback(() => setOpenSheet(null), []);
44
- // Every path that starts a query goes through here, so the URL is written in exactly one place — the event that
45
- // caused it, rather than an effect watching the result after the fact.
174
+ // Every user-initiated query goes through this function, so `onSubmitQuery` fires from one place.
46
175
  const runQuery = useCallback((query) => {
176
+ // A new query shows the result panel again at its default height.
177
+ setResultDismissed(false);
178
+ setSheetHeight(null);
47
179
  onSubmitQuery?.(query);
48
180
  void geocode.submit(query);
49
181
  }, [onSubmitQuery, geocode]);
50
- // A label on the map is a search a visitor already typed by pointing at it.
182
+ // The initial query waits for `runtime.ready` because the parse pipeline drops
183
+ // a submit made before the model loads.
184
+ // The ref makes it run once, so a later render cannot overwrite the user's own query.
185
+ const autoRanInitialQuery = useRef(false);
186
+ useEffect(() => {
187
+ if (autoRanInitialQuery.current)
188
+ return;
189
+ if (!initialQuery || !runtime.ready)
190
+ return;
191
+ autoRanInitialQuery.current = true;
192
+ // This calls `geocode.submit` directly because the query is already in the URL.
193
+ void geocode.submit(initialQuery);
194
+ }, [initialQuery, runtime.ready, geocode]);
195
+ // A drawer-breakpoint crossing clears any dragged height.
196
+ // The height could clip the desktop column.
197
+ useEffect(() => {
198
+ const query = globalThis.matchMedia(DRAWER_LAYOUT);
199
+ const onChange = () => setSheetHeight(null);
200
+ query.addEventListener("change", onChange);
201
+ return () => query.removeEventListener("change", onChange);
202
+ }, []);
203
+ // A user pan, zoom, or rotate shrinks the drawer to its floor detent without dismissing the result.
204
+ // Programmatic camera moves, such as the fly-to after a query, have no `originalEvent` and are ignored.
205
+ useEffect(() => {
206
+ if (!map)
207
+ return;
208
+ const collapse = (event) => {
209
+ if (!event.originalEvent)
210
+ return;
211
+ if (!isDrawerLayout())
212
+ return;
213
+ const { floor } = sheetDetents();
214
+ setSheetHeight((current) => (current !== null && current <= floor ? current : floor));
215
+ };
216
+ map.on("dragstart", collapse);
217
+ map.on("zoomstart", collapse);
218
+ map.on("rotatestart", collapse);
219
+ return () => {
220
+ map.off("dragstart", collapse);
221
+ map.off("zoomstart", collapse);
222
+ map.off("rotatestart", collapse);
223
+ };
224
+ }, [map, sheetDetents]);
225
+ // Escape dismisses the result only while no side sheet is open.
226
+ // `MapSheet` also listens for Escape on the document, so one keystroke would otherwise close both.
227
+ useEffect(() => {
228
+ if (openSheet)
229
+ return;
230
+ const onKeyDown = (event) => {
231
+ if (event.key === "Escape") {
232
+ setResultDismissed(true);
233
+ }
234
+ };
235
+ document.addEventListener("keydown", onKeyDown);
236
+ return () => document.removeEventListener("keydown", onKeyDown);
237
+ }, [openSheet]);
238
+ // A map-label click searches for its name.
51
239
  const pickLabel = useCallback((name) => {
52
240
  geocode.setText(name);
53
241
  geocode.reset();
@@ -55,25 +243,48 @@ export function GeocoderControls({ runtime, geocode, autocomplete, compare, pane
55
243
  }, [geocode, runQuery]);
56
244
  useMapLabelPick(map, pickLabel);
57
245
  const chips = presets.map((preset) => ({ label: preset.label, value: preset.value }));
58
- // The bundle load no longer opens the result sheet: it reports on the bar at the top of the viewport and in the
59
- // footer, so an empty sheet does not sit over the map for the length of a 38 MB download.
60
- const showSheet = Boolean(busy || result || errorMessage);
246
+ // The model download does not open the result panel.
247
+ // The progress bar reports it instead.
248
+ const showSheet = Boolean(busy || result || errorMessage) && !resultDismissed;
249
+ // The control rail hides while the drawer is raised above its collapsed height.
250
+ const drawerRaised = showSheet &&
251
+ (sheetHeight === null || (globalThis.window !== undefined && sheetHeight > sheetDetents().collapsedBelow));
61
252
  const bundleLoading = Boolean(loading && !runtime.ready);
62
253
  const steps = loading?.stepLabels.length ?? 0;
63
- return (_jsxs(_Fragment, { children: [_jsx(MapProgressBar, { active: bundleLoading, fraction: steps ? ((loading?.stepIndex ?? 0) + 1) / steps : null, label: "Loading the geocoder" }), _jsxs("div", { className: "mw-map-chrome mw-map-chrome--top", children: [_jsx("form", { className: "mw-map-chrome__search", onSubmit: (event) => {
64
- event.preventDefault();
65
- runQuery(geocode.text);
66
- }, children: _jsx(MapSearchBar, { label: "Search addresses", leading: _jsx("span", { "aria-hidden": "true", children: "\u2315" }), busy: busy, children: _jsx("input", { id: "mw-pipeline-input", type: "search", "aria-label": "Address", value: geocode.text, onChange: (event) => geocode.setText(event.target.value), disabled: !runtime.ready, placeholder: placeholder, onKeyDown: autocomplete.onInputKeyDown, ...autocomplete.inputProps }) }) }), _jsx(PlaceAutocomplete, { suggestions: autocomplete.suggestions, activeIndex: autocomplete.activeIndex, onPick: autocomplete.pick, onHover: autocomplete.setActiveIndex, listboxID: autocomplete.listboxID, optionID: autocomplete.optionID }), _jsx(MapChipRow, { chips: chips, label: "Example addresses", activeValue: geocode.text, disabled: !runtime.ready || busy, onPick: (value) => {
254
+ // The model downloads during the first step.
255
+ // While bytes arrive, the bar follows the byte fraction scaled into the first step's share,
256
+ // so it does not move backwards when step progress takes over.
257
+ const stepFraction = steps ? ((loading?.stepIndex ?? 0) + 1) / steps : null;
258
+ const byteFraction = loading?.byteFraction;
259
+ const fraction = typeof byteFraction === "number" && steps ? (byteFraction * 1) / steps : (byteFraction ?? stepFraction);
260
+ return (_jsxs(_Fragment, { children: [_jsx(MapProgressBar, { active: bundleLoading, fraction: fraction, label: "Loading the geocoder" }), _jsxs("section", { className: "mw-map-panel", "aria-label": "Search and results", ref: sheetRef, onPointerDown: onPanelPointerDown, onPointerMove: onPanelPointerMove, onPointerUp: onPanelPointerUp, onPointerCancel: onPanelPointerUp, ...(sheetHeight === null ? {} : { style: { maxHeight: `${Math.round(sheetHeight)}px` } }), children: [_jsxs("div", { className: "mw-map-panel__header", onPointerDown: onHeaderPointerDown, children: [_jsxs("div", { className: "mw-map-panel__grip", children: [showSheet ? (_jsx("button", { type: "button", className: "mw-map-sheet__handle", "aria-label": "Resize the panel", "aria-expanded": atLargeDetent(),
261
+ // The header handles pointer gestures.
262
+ // A click with `detail === 0` comes from the keyboard,
263
+ // so only that toggles the detent here.
264
+ onClick: (event) => {
265
+ if (event.detail !== 0)
266
+ return;
267
+ toggleDetent();
268
+ } })) : null, showSheet ? (_jsx(SheetClose, { label: "Close the result", className: "mw-map-sheet__close--floating", onClose: () => setResultDismissed(true) })) : null] }), _jsx("form", { className: "mw-map-panel__search", onSubmit: (event) => {
269
+ event.preventDefault();
270
+ runQuery(geocode.text);
271
+ }, children: _jsx(MapSearchBar, { label: "Search addresses", leading: _jsx(SearchGlyph, {}), busy: busy, children: _jsx("input", { id: "mw-pipeline-input", type: "search", "aria-label": "Address", value: geocode.text, onChange: (event) => geocode.setText(event.target.value),
272
+ // Focus selects the value only while it equals the placeholder, so typing replaces it.
273
+ onFocus: (event) => {
274
+ if (placeholder && event.currentTarget.value === placeholder) {
275
+ event.currentTarget.select();
276
+ }
277
+ }, disabled: !runtime.ready, placeholder: placeholder, onKeyDown: autocomplete.onInputKeyDown, ...autocomplete.inputProps }) }) })] }), _jsx(PlaceAutocomplete, { suggestions: autocomplete.suggestions, activeIndex: autocomplete.activeIndex, onPick: autocomplete.pick, onHover: autocomplete.setActiveIndex, listboxID: autocomplete.listboxID, optionID: autocomplete.optionID }), _jsx(MapChipRow, { chips: chips, label: "Example addresses", activeValue: geocode.text, disabled: !runtime.ready || busy, onPick: (value) => {
67
278
  geocode.setText(value);
68
279
  geocode.reset();
69
280
  runQuery(value);
70
- } }), panels.bias] }), _jsxs(MapControlStack, { label: "Map controls", children: [_jsxs(MapControlGroup, { children: [_jsx(MapControlButton, { label: "About this geocoder", active: openSheet === "about", onPress: () => toggleSheet("about"), children: _jsx("span", { "aria-hidden": "true", children: "i" }) }), panels.layers ? (_jsx(MapControlButton, { label: "Map layers", active: openSheet === "layers", onPress: () => toggleSheet("layers"), children: _jsx("span", { "aria-hidden": "true", children: "\u2261" }) })) : null, _jsx(MapControlButton, { label: "Developer controls", active: openSheet === "developer", onPress: () => toggleSheet("developer"), children: _jsx("span", { "aria-hidden": "true", children: "\u2699" }) })] }), _jsx(MapControlGroup, { className: "mw-map-control-group--compass", children: _jsx(MapCompass, { bearing: bearing, onResetNorth: resetNorth }) })] }), openSheet === "about" ? (_jsx(MapSheet, { title: "About", onClose: closeSheet, children: panels.header })) : null, openSheet === "layers" ? (_jsx(MapSheet, { title: "Layers", onClose: closeSheet, children: panels.layers?.({ map }) })) : null, openSheet === "developer" ? (_jsxs(MapSheet, { title: "Developer", onClose: closeSheet, children: [panels.releaseInfo ? (_jsxs("div", { className: "mw-map-sheet__row", children: [_jsx("span", { className: "mw-map-sheet__label", children: "This release" }), panels.releaseInfo] })) : null, _jsx("div", { className: "mw-map-sheet__row", children: _jsx(VersionPicker, { versions: versions, selected: runtime.selectedVersion ?? null, onSelect: onSelectVersion, disabled: busy }) }), _jsx("div", { className: "mw-map-sheet__row", children: _jsx(BackendControl, { activeBackend: runtime.activeBackend, forceWASM: runtime.forceWASM ?? false, onForceWASMChange: onForceWASMChange }) }), _jsx("div", { className: "mw-map-sheet__row", children: _jsx(CompareToggle, { versions: versions, primaryVersion: runtime.selectedVersion ?? null, compareMode: compare.compareMode, onCompareModeChange: compare.setCompareMode, compareVersion: compare.compareVersion, onCompareVersionChange: compare.setCompareVersion, disabled: busy }) }), panels.developerExtras] })) : null, showSheet ? (_jsxs("section", { className: "mw-map-sheet mw-map-sheet--bottom", "aria-label": "Result", children: [_jsx("div", { className: "mw-map-sheet__handle", "aria-hidden": "true" }), errorMessage ? _jsx("p", { className: "mw-error", children: errorMessage }) : null, panels.aboveResult ? panels.aboveResult({ result }) : null, busy ? (_jsx("div", { className: "mw-result", children: _jsx(LoadingIndicator, { mode: "staged", steps: runtime.parseStageLabels, activeStep: geocode.parseStage }) })) : result ? (panels.result ? (panels.result({
71
- result,
72
- selectedCandidate,
73
- selectedCandidateIndex: geocode.selectedCandidateIndex,
74
- onSelectCandidate: geocode.selectCandidate,
75
- })) : (_jsx(ResultPanel, { result: result, selectedCandidate: selectedCandidate, selectedCandidateIndex: geocode.selectedCandidateIndex, onSelectCandidate: geocode.selectCandidate, extras: panels.extras, failure: panels.failure }))) : null, panels.compare
76
- ? panels.compare({ result, compareMode: compare.compareMode, compareVersion: compare.compareVersion })
77
- : null, panels.permalink ? _jsx("div", { className: "mw-map-sheet__actions", children: panels.permalink(geocode.text) }) : null] })) : null, panels.footer] }));
281
+ } }), panels.bias, showSheet ? (_jsxs("div", { className: "mw-map-panel__result", children: [errorMessage ? _jsx("p", { className: "mw-error", children: errorMessage }) : null, panels.aboveResult ? panels.aboveResult({ result }) : null, busy ? (_jsx("div", { className: "mw-result", children: _jsx(LoadingIndicator, { mode: "staged", steps: runtime.parseStageLabels, activeStep: geocode.parseStage }) })) : result ? (panels.result ? (panels.result({
282
+ result,
283
+ selectedCandidate,
284
+ selectedCandidateIndex: geocode.selectedCandidateIndex,
285
+ onSelectCandidate: geocode.selectCandidate,
286
+ })) : (_jsx(ResultPanel, { result: result, selectedCandidate: selectedCandidate, selectedCandidateIndex: geocode.selectedCandidateIndex, onSelectCandidate: geocode.selectCandidate, extras: panels.extras, failure: panels.failure }))) : null, panels.compare
287
+ ? panels.compare({ result, compareMode: compare.compareMode, compareVersion: compare.compareVersion })
288
+ : null, panels.permalink ? _jsx("div", { className: "mw-map-sheet__actions", children: panels.permalink(geocode.text) }) : null] })) : null] }), _jsxs(MapControlStack, { label: "Map controls", className: drawerRaised ? "mw-map-control-stack--drawer-open" : undefined, children: [_jsxs(MapControlGroup, { children: [_jsx(MapControlButton, { label: "About this geocoder", active: openSheet === "about", onPress: () => toggleSheet("about"), children: _jsx("span", { "aria-hidden": "true", children: "i" }) }), panels.layers ? (_jsx(MapControlButton, { label: "Map layers", active: openSheet === "layers", onPress: () => toggleSheet("layers"), children: _jsx("span", { "aria-hidden": "true", children: "\u2261" }) })) : null, _jsx(MapControlButton, { label: "Developer controls", active: openSheet === "developer", onPress: () => toggleSheet("developer"), children: _jsx("span", { "aria-hidden": "true", children: "\u2699" }) })] }), _jsx(MapControlGroup, { className: "mw-map-control-group--compass", children: _jsx(MapCompass, { bearing: bearing, onResetNorth: resetNorth }) })] }), openSheet === "about" ? (_jsx(MapSheet, { title: "About", onClose: closeSheet, children: panels.header })) : null, openSheet === "layers" ? (_jsx(MapSheet, { title: "Layers", onClose: closeSheet, children: panels.layers?.({ map }) })) : null, openSheet === "developer" ? (_jsxs(MapSheet, { title: "Developer", onClose: closeSheet, children: [panels.releaseInfo ? (_jsxs("div", { className: "mw-map-sheet__row", children: [_jsx("span", { className: "mw-map-sheet__label", children: "This release" }), panels.releaseInfo] })) : null, _jsx("div", { className: "mw-map-sheet__row", children: _jsx(VersionPicker, { versions: versions, selected: runtime.selectedVersion ?? null, onSelect: onSelectVersion, disabled: busy }) }), _jsxs("div", { className: "mw-map-sheet__row", children: [_jsx("span", { className: "mw-map-sheet__label", children: "Debug info" }), _jsx(DebugInfo, { activeBackend: runtime.activeBackend, selectedVersion: runtime.selectedVersion, ready: runtime.ready })] }), _jsx("div", { className: "mw-map-sheet__row", children: _jsx(CompareToggle, { versions: versions, primaryVersion: runtime.selectedVersion ?? null, compareMode: compare.compareMode, onCompareModeChange: compare.setCompareMode, compareVersion: compare.compareVersion, onCompareVersionChange: compare.setCompareVersion, disabled: busy }) }), panels.developerExtras] })) : null, panels.footer] }));
78
289
  }
79
290
  //# sourceMappingURL=GeocoderControls.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeocoderControls.js","sourceRoot":"","sources":["../../lib/map/GeocoderControls.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeocoderControls.js","sourceRoot":"","sources":["../../lib/map/GeocoderControls.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * Draws a grid of meridians and parallels under the basemap so that the globe is readable while
7
+ * tiles load. Loaded tiles cover the grid.
8
+ */
9
+ import { type ReactNode } from "react";
10
+ /**
11
+ * Props for {@link GraticuleLayer}.
12
+ */
13
+ export interface GraticuleLayerProps {
14
+ /**
15
+ * The basemap layer to draw the grid beneath.
16
+ * Without it, the grid is drawn on top.
17
+ */
18
+ beforeID?: string;
19
+ /**
20
+ * Hides the grid.
21
+ *
22
+ * @defaultValue `false`
23
+ */
24
+ hidden?: boolean;
25
+ }
26
+ /**
27
+ * Renders the graticule source and line layer.
28
+ */
29
+ export declare function GraticuleLayer({ beforeID, hidden }: GraticuleLayerProps): ReactNode;
30
+ //# sourceMappingURL=GraticuleLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraticuleLayer.d.ts","sourceRoot":"","sources":["../../lib/map/GraticuleLayer.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAA;AAK/C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAc,EAAE,EAAE,mBAAmB,GAAG,SAAS,CAqB3F"}
@@ -0,0 +1,25 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @copyright Sister Software
4
+ * @license AGPL-3.0
5
+ * @author Teffen Ellis, et al.
6
+ *
7
+ * Draws a grid of meridians and parallels under the basemap so that the globe is readable while
8
+ * tiles load. Loaded tiles cover the grid.
9
+ */
10
+ import { useMemo } from "react";
11
+ import { Layer, Source } from "react-map-gl/maplibre";
12
+ import { buildGraticule } from "./graticule.js";
13
+ /**
14
+ * Renders the graticule source and line layer.
15
+ */
16
+ export function GraticuleLayer({ beforeID, hidden = false }) {
17
+ const data = useMemo(() => buildGraticule(), []);
18
+ return (_jsxs(_Fragment, { children: [_jsx(Source, { id: "mw-graticule", type: "geojson", data: data }), _jsx(Layer, { id: "mw-graticule-line", type: "line", source: "mw-graticule", ...(beforeID ? { beforeId: beforeID } : {}), layout: { visibility: hidden ? "none" : "visible", "line-cap": "round" }, paint: {
19
+ "line-color": "#8aa0c8",
20
+ // The grid fades out by zoom 8, where map detail makes it unnecessary.
21
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.3, 3, 0.2, 6, 0.09, 8, 0],
22
+ "line-width": ["interpolate", ["linear"], ["zoom"], 0, 0.5, 4, 0.75],
23
+ } })] }));
24
+ }
25
+ //# sourceMappingURL=GraticuleLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraticuleLayer.js","sourceRoot":"","sources":["../../lib/map/GraticuleLayer.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAkB,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAmB/C;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAuB;IAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAA;IAEhD,OAAO,CACN,8BACC,KAAC,MAAM,IAAC,EAAE,EAAC,cAAc,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAE,IAAI,GAAI,EACvD,KAAC,KAAK,IACL,EAAE,EAAC,mBAAmB,EACtB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,KACjB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC5C,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EACxE,KAAK,EAAE;oBACN,YAAY,EAAE,SAAS;oBACvB,uEAAuE;oBACvE,cAAc,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBACpF,YAAY,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC;iBACpE,GACA,IACA,CACH,CAAA;AACF,CAAC"}
@@ -5,18 +5,18 @@
5
5
  *
6
6
  * `<MapCanvas>` — the declarative map shell for the geocoder demo, over `react-map-gl/maplibre` (v8).
7
7
  * Phase 1 is the shell only: a `<Map>` that takes a host-composed `mapStyle`, an initial (or
8
- * controlled) view state, and a `children` slot for the overlays/markers that land in later phases.
8
+ * controlled) view state and a `children` slot for overlays/markers from later phases.
9
9
  * No overlay/marker/camera logic lives here yet.
10
10
  *
11
- * NODE-IMPORT SAFETY: this module imports `react-map-gl/maplibre` (which pulls `maplibre-gl` — WebGL
12
- * + DOM at import) at module scope, so it is reachable ONLY through the `@mailwoman/react/map`
11
+ * node-import safety: this module imports `react-map-gl/maplibre` (which pulls `maplibre-gl` — WebGL
12
+ * + DOM at import) at module scope, so it is reachable only through the `@mailwoman/react/map`
13
13
  * subpath, never from the package root (`index.ts`). The bare `import("@mailwoman/react")` a node
14
14
  * consumer (or the CI smoke IMPORT_CHECK) runs must never transitively load this file. Keep it out of
15
15
  * the root barrel.
16
16
  *
17
17
  * CSS: the package imports no CSS from its modules (the node-safe invariant), so a host that renders
18
18
  * `<MapCanvas>` must import `maplibre-gl/dist/maplibre-gl.css` itself (plus `@mailwoman/react/styles.css`
19
- * for the `.mw-demo-map` container). `<MapCanvas>` is intrinsically a client component — a host that
19
+ * for the `.mw-demo-map` container). `<MapCanvas>` is intrinsically a client component. A host that
20
20
  * server-renders should wrap it in a client boundary (the package's `ClientOnly`), exactly as the
21
21
  * composed `Geocoder` will in a later phase.
22
22
  */
@@ -27,8 +27,10 @@ import type { MapProps, MapRef, ViewStateChangeEvent } from "react-map-gl/maplib
27
27
  */
28
28
  export type MapCanvasStyle = NonNullable<MapProps["mapStyle"]>;
29
29
  /**
30
- * Override for the `<Map>` props `<MapCanvas>` does not surface explicitly (e.g. `minZoom`, `attributionControl`,
31
- * `maplibreLogo`). The controlled fields MapCanvas owns are omitted so they can't be set twice.
30
+ * Override for the `<Map>` props `<MapCanvas>` does not surface explicitly
31
+ * (e.g. `minZoom`, `attributionControl`, `maplibreLogo`).
32
+ *
33
+ * The controlled fields MapCanvas owns are omitted so they can't be set twice.
32
34
  */
33
35
  export type MapCanvasExtraProps = Partial<Omit<MapProps, "mapStyle" | "initialViewState" | "viewState" | "onMove" | "children" | "style" | "ref">>;
34
36
  export interface MapCanvasProps {
@@ -37,11 +39,15 @@ export interface MapCanvasProps {
37
39
  */
38
40
  mapStyle: MapCanvasStyle;
39
41
  /**
40
- * Uncontrolled initial camera. Use this OR `viewState`, not both.
42
+ * Uncontrolled initial camera.
43
+ *
44
+ * Use this or `viewState`, not both.
41
45
  */
42
46
  initialViewState?: MapProps["initialViewState"];
43
47
  /**
44
- * Controlled camera. Pair with `onMove` to persist it.
48
+ * Controlled camera.
49
+ *
50
+ * Pair with `onMove` to persist it.
45
51
  */
46
52
  viewState?: MapProps["viewState"];
47
53
  /**
@@ -49,7 +55,9 @@ export interface MapCanvasProps {
49
55
  */
50
56
  onMove?: (event: ViewStateChangeEvent) => void;
51
57
  /**
52
- * Map projection. @default "globe" (matches the docs `DashboardMap`).
58
+ * Map projection.
59
+ *
60
+ * @defaultValue `"globe"` (matches the docs `DashboardMap`).
53
61
  */
54
62
  projection?: MapProps["projection"];
55
63
  /**
@@ -57,7 +65,9 @@ export interface MapCanvasProps {
57
65
  */
58
66
  mapRef?: Ref<MapRef>;
59
67
  /**
60
- * Overlays, markers, and controls — rendered as `<Map>` children. Empty in phase 1.
68
+ * Overlays, markers and controls — rendered as `<Map>` children.
69
+ *
70
+ * Empty in phase 1.
61
71
  */
62
72
  children?: ReactNode;
63
73
  /**
@@ -69,13 +79,16 @@ export interface MapCanvasProps {
69
79
  */
70
80
  style?: CSSProperties;
71
81
  /**
72
- * Remaining `<Map>` props MapCanvas does not surface explicitly.
82
+ * Other `<Map>` props that MapCanvas does not surface explicitly.
73
83
  */
74
84
  mapProps?: MapCanvasExtraProps;
75
85
  }
76
86
  /**
77
- * The controlled-viewport map shell. Renders a sized wrapper around a `react-map-gl/maplibre` `<Map>`; everything
78
- * host-specific (the composed `mapStyle`, the initial center) is injected, and overlays ride in as `children`.
87
+ * The controlled-viewport map shell.
88
+ *
89
+ * Renders a sized wrapper around a `react-map-gl/maplibre` `<Map>`; everything
90
+ * host-specific (the composed `mapStyle`, the initial center) is injected.
91
+ * Overlays arrive as `children`.
79
92
  */
80
93
  export declare function MapCanvas({ mapStyle, initialViewState, viewState, onMove, projection, mapRef, children, className, style, mapProps, }: MapCanvasProps): ReactNode;
81
94
  //# sourceMappingURL=MapCanvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MapCanvas.d.ts","sourceRoot":"","sources":["../../lib/map/MapCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAEnF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AAE9D;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACxC,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC,CACvG,CAAA;AAED,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAA;IACxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IAC/C;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACzB,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,UAAoB,EACpB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,GACR,EAAE,cAAc,GAAG,SAAS,CAmB5B"}
1
+ {"version":3,"file":"MapCanvas.d.ts","sourceRoot":"","sources":["../../lib/map/MapCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAEnF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACxC,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,kBAAkB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC,CACvG,CAAA;AAED,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,QAAQ,EAAE,cAAc,CAAA;IACxB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA;IAC/C;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACjC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAA;IAC9C;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAA;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAID;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACzB,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,UAAoB,EACpB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,GACR,EAAE,cAAc,GAAG,SAAS,CAmB5B"}
@@ -2,8 +2,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Map } from "react-map-gl/maplibre";
3
3
  const FILL = { width: "100%", height: "100%" };
4
4
  /**
5
- * The controlled-viewport map shell. Renders a sized wrapper around a `react-map-gl/maplibre` `<Map>`; everything
6
- * host-specific (the composed `mapStyle`, the initial center) is injected, and overlays ride in as `children`.
5
+ * The controlled-viewport map shell.
6
+ *
7
+ * Renders a sized wrapper around a `react-map-gl/maplibre` `<Map>`; everything
8
+ * host-specific (the composed `mapStyle`, the initial center) is injected.
9
+ * Overlays arrive as `children`.
7
10
  */
8
11
  export function MapCanvas({ mapStyle, initialViewState, viewState, onMove, projection = "globe", mapRef, children, className, style, mapProps, }) {
9
12
  const wrapperClassName = className ? `mw-demo-map ${className}` : "mw-demo-map";
@@ -1 +1 @@
1
- {"version":3,"file":"MapCanvas.js","sourceRoot":"","sources":["../../lib/map/MapCanvas.tsx"],"names":[],"mappings":";AAwBA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AA2D3C,MAAM,IAAI,GAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAE7D;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACzB,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,UAAU,GAAG,OAAO,EACpB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,GACQ;IAChB,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;IAE/E,OAAO,CACN,cAAK,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,YAC7C,KAAC,GAAG,OACC,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,IAAI,YAEV,QAAQ,GACJ,GACD,CACN,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"MapCanvas.js","sourceRoot":"","sources":["../../lib/map/MapCanvas.tsx"],"names":[],"mappings":";AAwBA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAqE3C,MAAM,IAAI,GAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,EACzB,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,UAAU,GAAG,OAAO,EACpB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,QAAQ,GACQ;IAChB,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;IAE/E,OAAO,CACN,cAAK,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,YAC7C,KAAC,GAAG,OACC,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,IAAI,YAEV,QAAQ,GACJ,GACD,CACN,CAAA;AACF,CAAC"}
@@ -3,13 +3,7 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * `<MapChipRow>` — the row of example queries under a search bar.
7
- *
8
- * It SCROLLS horizontally and never wraps. Earth's twelve examples wrapped down five ragged rows (3/3/2/1/1/1) and
9
- * took a third of the panel; one scrolling line is the shape the reference map apps use, and it costs a fixed
10
- * height whatever the number of examples.
11
- *
12
- * NODE-SAFE: pure React, no maplibre.
6
+ * Render example-query chips in a single horizontally scrollable row.
13
7
  */
14
8
  import type { ReactNode } from "react";
15
9
  export interface MapChip {
@@ -18,7 +12,9 @@ export interface MapChip {
18
12
  */
19
13
  label: string;
20
14
  /**
21
- * The query the chip stands for, handed back on press. Defaults to the label.
15
+ * The query the chip stands for, handed back on press.
16
+ *
17
+ * @defaultValue the label.
22
18
  */
23
19
  value?: string;
24
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MapChipRow.d.ts","sourceRoot":"","sources":["../../lib/map/MapChipRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,GAAG,SAAS,CAyBjH"}
1
+ {"version":3,"file":"MapChipRow.d.ts","sourceRoot":"","sources":["../../lib/map/MapChipRow.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;CAChB;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB;;OAEG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,eAAe,GAAG,SAAS,CAyBjH"}