@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
@@ -0,0 +1,255 @@
1
+ import { 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 docs search modal. A native `<dialog>` opened with `showModal()` supplies the focus trap, the inert
8
+ * background, the backdrop, the close on Escape and the return of focus to the opener. The query field is an
9
+ * `<input type="search">` with the ARIA combobox role. DOM focus stays on the input, and
10
+ * `aria-activedescendant` identifies the selected hit. The component owns no data access: `search` is
11
+ * passed in. Recent queries are a per-viewer convenience in `localStorage`; the modal renders the same
12
+ * without them.
13
+ */
14
+ import { stringifyJSON, tryParsingJSON } from "@mailwoman/core/json";
15
+ import { useEffect, useId, useMemo, useRef, useState } from "react";
16
+ import { useDebouncedValue } from "#common/useDebouncedValue";
17
+ const DEBOUNCE_MS = 150;
18
+ /**
19
+ * How long a request runs before the live region announces that the index is loading.
20
+ */
21
+ const LOADING_ANNOUNCE_MS = 300;
22
+ const MAX_QUERY_LENGTH = 200;
23
+ const DEFAULT_CATEGORY = "Documentation";
24
+ const RECENT_LIMIT = 5;
25
+ /**
26
+ * The site-relative link for a hit.
27
+ */
28
+ export function hitHref(hit) {
29
+ return hit.anchor === "" ? hit.url : `${hit.url}#${hit.anchor}`;
30
+ }
31
+ function statusText(status) {
32
+ if (status.kind === "failed")
33
+ return "Search is unavailable. Try again in a moment.";
34
+ if (status.kind === "loading")
35
+ return "Loading the search index…";
36
+ if (status.kind === "idle")
37
+ return "";
38
+ const { response } = status;
39
+ if (!response.hits.length)
40
+ return `No results for “${response.query}”.`;
41
+ return response.hits.length === 1 ? "1 result." : `${response.hits.length} results.`;
42
+ }
43
+ /**
44
+ * The ranges of `text` that match a query token, case-insensitively, for emphasis in a title.
45
+ */
46
+ function tokenRanges(text, query) {
47
+ const lower = text.toLowerCase();
48
+ const ranges = [];
49
+ for (const token of new Set(query
50
+ .toLowerCase()
51
+ .split(/\s+/)
52
+ .filter((part) => part.length >= 2))) {
53
+ for (let index = lower.indexOf(token); index >= 0; index = lower.indexOf(token, index + token.length)) {
54
+ ranges.push([index, index + token.length]);
55
+ }
56
+ }
57
+ return ranges.toSorted((a, b) => a[0] - b[0]);
58
+ }
59
+ function emphasized(text, ranges) {
60
+ const parts = [];
61
+ let cursor = 0;
62
+ for (const [start, end] of ranges) {
63
+ if (start < cursor)
64
+ continue;
65
+ parts.push(text.slice(cursor, start), _jsx("mark", { children: text.slice(start, end) }, start));
66
+ cursor = end;
67
+ }
68
+ parts.push(text.slice(cursor));
69
+ return parts;
70
+ }
71
+ /**
72
+ * The deepest heading of a hit is its title.
73
+ * The headings between the category and it are its path.
74
+ */
75
+ function headings(hit) {
76
+ const named = hit.hierarchy.slice(1).filter((entry) => entry !== null);
77
+ const title = named.at(-1) ?? hit.url;
78
+ return { title, path: named.slice(0, -1) };
79
+ }
80
+ function readRecent(key) {
81
+ if (!key)
82
+ return [];
83
+ try {
84
+ const stored = tryParsingJSON(globalThis.localStorage.getItem(key));
85
+ return Array.isArray(stored) ? stored.filter((entry) => typeof entry === "string") : [];
86
+ }
87
+ catch {
88
+ return [];
89
+ }
90
+ }
91
+ function writeRecent(key, entries) {
92
+ if (!key)
93
+ return;
94
+ try {
95
+ globalThis.localStorage.setItem(key, stringifyJSON(entries));
96
+ }
97
+ catch {
98
+ // Storage can be absent or blocked.
99
+ // The modal works without it.
100
+ }
101
+ }
102
+ const SearchIcon = () => (_jsxs("svg", { className: "mw-search__icon", viewBox: "0 0 20 20", "aria-hidden": "true", focusable: "false", children: [_jsx("circle", { cx: "8.5", cy: "8.5", r: "5.5", fill: "none", stroke: "currentColor", strokeWidth: "2" }), _jsx("path", { d: "M13 13l4.5 4.5", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" })] }));
103
+ const Spinner = () => (_jsx("svg", { className: "mw-search__icon mw-search__icon--spinning", viewBox: "0 0 20 20", "aria-hidden": "true", focusable: "false", children: _jsx("circle", { cx: "10", cy: "10", r: "7", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeDasharray: "22 22", strokeLinecap: "round" }) }));
104
+ export function SearchModal({ open, onClose, onNavigate, search, recentKey }) {
105
+ const dialogRef = useRef(null);
106
+ const inputRef = useRef(null);
107
+ const baseID = useId();
108
+ const listboxID = `${baseID}-listbox`;
109
+ const [query, setQuery] = useState("");
110
+ const [settled, setSettled] = useState({ kind: "idle" });
111
+ const [selected, setSelected] = useState(0);
112
+ const [loading, setLoading] = useState(false);
113
+ const [recent, setRecent] = useState([]);
114
+ const trimmed = query.trim().slice(0, MAX_QUERY_LENGTH);
115
+ const debounced = useDebouncedValue(trimmed, DEBOUNCE_MS);
116
+ useEffect(() => {
117
+ const dialog = dialogRef.current;
118
+ if (!dialog)
119
+ return;
120
+ if (open && !dialog.open) {
121
+ dialog.showModal();
122
+ inputRef.current?.focus();
123
+ setRecent(readRecent(recentKey));
124
+ }
125
+ else if (!open && dialog.open) {
126
+ dialog.close();
127
+ }
128
+ }, [open, recentKey]);
129
+ useEffect(() => {
130
+ if (debounced === "")
131
+ return;
132
+ // The abort of the earlier request keeps a late response from replacing newer results.
133
+ const controller = new AbortController();
134
+ const loadingTimer = setTimeout(() => setLoading(true), LOADING_ANNOUNCE_MS);
135
+ search(debounced, controller.signal).then((response) => {
136
+ if (controller.signal.aborted)
137
+ return;
138
+ clearTimeout(loadingTimer);
139
+ setLoading(false);
140
+ setSettled({ kind: "results", response });
141
+ setSelected(0);
142
+ }, () => {
143
+ if (controller.signal.aborted)
144
+ return;
145
+ clearTimeout(loadingTimer);
146
+ setLoading(false);
147
+ setSettled({ kind: "failed" });
148
+ });
149
+ return () => {
150
+ clearTimeout(loadingTimer);
151
+ setLoading(false);
152
+ controller.abort();
153
+ };
154
+ }, [debounced, search]);
155
+ // An empty query shows no results, whatever the last settled response was.
156
+ const status = debounced === "" ? { kind: "idle" } : settled;
157
+ const response = status.kind === "results" ? status.response : undefined;
158
+ // The announcement reports a slow request while the last results stay on screen.
159
+ const announced = loading && debounced !== "" ? { kind: "loading" } : status;
160
+ const groups = useMemo(() => {
161
+ const hits = response?.hits ?? [];
162
+ const byCategory = new Map();
163
+ for (const hit of hits) {
164
+ const category = hit.hierarchy[0] ?? DEFAULT_CATEGORY;
165
+ byCategory.set(category, [...(byCategory.get(category) ?? []), hit]);
166
+ }
167
+ // Options are numbered in display order so the arrow keys follow what the reader sees.
168
+ let order = 0;
169
+ return [...byCategory].map(([category, entries]) => ({
170
+ category,
171
+ entries: entries.map((hit) => ({ hit, order: order++ })),
172
+ }));
173
+ }, [response]);
174
+ const ordered = groups.flatMap((group) => group.entries);
175
+ const optionID = (order) => `${baseID}-option-${order}`;
176
+ const emphasis = response?.corrected ?? debounced;
177
+ function remember(text) {
178
+ const entries = [text, ...recent.filter((entry) => entry !== text)].slice(0, RECENT_LIMIT);
179
+ setRecent(entries);
180
+ writeRecent(recentKey, entries);
181
+ }
182
+ function forget(text) {
183
+ const entries = recent.filter((entry) => entry !== text);
184
+ setRecent(entries);
185
+ writeRecent(recentKey, entries);
186
+ }
187
+ function go(hit) {
188
+ const href = hitHref(hit);
189
+ if (trimmed !== "") {
190
+ remember(trimmed);
191
+ }
192
+ onClose();
193
+ if (onNavigate) {
194
+ onNavigate(href);
195
+ }
196
+ else {
197
+ globalThis.location.assign(href);
198
+ }
199
+ }
200
+ function onKeyDown(event) {
201
+ // A key that commits or edits an IME composition is not a command.
202
+ if (event.nativeEvent.isComposing)
203
+ return;
204
+ if (!ordered.length)
205
+ return;
206
+ const last = ordered.length - 1;
207
+ const next = event.key === "ArrowDown"
208
+ ? selected === last
209
+ ? 0
210
+ : selected + 1
211
+ : event.key === "ArrowUp"
212
+ ? selected === 0
213
+ ? last
214
+ : selected - 1
215
+ : event.key === "Home"
216
+ ? 0
217
+ : event.key === "End"
218
+ ? last
219
+ : undefined;
220
+ if (next !== undefined) {
221
+ event.preventDefault();
222
+ setSelected(next);
223
+ document.getElementById(optionID(next))?.scrollIntoView({ block: "nearest" });
224
+ }
225
+ else if (event.key === "Enter") {
226
+ event.preventDefault();
227
+ // The hits on screen answer an earlier query until the debounce settles.
228
+ if (trimmed !== debounced)
229
+ return;
230
+ const entry = ordered[selected];
231
+ if (entry) {
232
+ go(entry.hit);
233
+ }
234
+ }
235
+ }
236
+ function onDialogClick(event) {
237
+ // A click whose target is the dialog element itself landed on the backdrop.
238
+ if (event.target === event.currentTarget) {
239
+ event.currentTarget.close();
240
+ }
241
+ }
242
+ function onLinkClick(event, hit) {
243
+ if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0)
244
+ return;
245
+ event.preventDefault();
246
+ go(hit);
247
+ }
248
+ const showRecent = trimmed === "" && recent.length > 0;
249
+ const noResults = response !== undefined && response.hits.length === 0;
250
+ return (_jsxs("dialog", { ref: dialogRef, className: "mw-search", "aria-label": "Search the documentation", onClose: onClose, onClick: onDialogClick, children: [_jsxs("form", { role: "search", className: "mw-search__form", onSubmit: (event) => event.preventDefault(), children: [_jsxs("label", { className: "mw-search__field", children: [loading ? _jsx(Spinner, {}) : _jsx(SearchIcon, {}), _jsx("input", { ref: inputRef, type: "search", className: "mw-search__input", role: "combobox", "aria-label": "Search the documentation", "aria-autocomplete": "list", "aria-expanded": ordered.length > 0, "aria-controls": listboxID, "aria-activedescendant": ordered.length ? optionID(selected) : undefined, autoComplete: "off", spellCheck: false, maxLength: MAX_QUERY_LENGTH, placeholder: "Search the documentation", value: query, onChange: (event) => setQuery(event.target.value), onKeyDown: onKeyDown })] }), _jsx("button", { type: "button", className: "mw-search__cancel", onClick: () => dialogRef.current?.close(), children: "Cancel" })] }), response?.corrected != null && (_jsxs("p", { className: "mw-search__corrected", children: ["Showing results for \u201C", response.corrected, "\u201D"] })), _jsxs("div", { className: "mw-search__body", children: [showRecent && (_jsxs("section", { className: "mw-search__recent", "aria-label": "Recent searches", children: [_jsx("div", { className: "mw-search__category", children: "Recent" }), _jsx("ul", { className: "mw-search__recent-list", children: recent.map((entry) => (_jsxs("li", { className: "mw-search__recent-item", children: [_jsx("button", { type: "button", className: "mw-search__recent-query", onClick: () => setQuery(entry), children: entry }), _jsx("button", { type: "button", className: "mw-search__recent-remove", "aria-label": `Remove “${entry}” from recent searches`, onClick: () => forget(entry), children: "\u00D7" })] }, entry))) })] })), noResults && (_jsxs("p", { className: "mw-search__empty", children: ["No results for \u201C", response.query, "\u201D. Try a different spelling or a shorter query."] })), _jsx("div", { id: listboxID, role: "listbox", "aria-label": "Search results", className: "mw-search__results", children: groups.map((group, groupIndex) => (_jsxs("div", { role: "group", "aria-labelledby": `${baseID}-group-${groupIndex}`, className: "mw-search__group", children: [_jsx("div", { id: `${baseID}-group-${groupIndex}`, className: "mw-search__category", children: group.category }), group.entries.map(({ hit, order }) => {
251
+ const { title, path } = headings(hit);
252
+ return (_jsxs("a", { id: optionID(order), role: "option", "aria-selected": order === selected, href: hitHref(hit), tabIndex: -1, className: `mw-search__option ${hit.anchor === "" ? "mw-search__option--page" : "mw-search__option--section"}`, onPointerMove: () => setSelected(order), onClick: (event) => onLinkClick(event, hit), children: [path.length > 0 && _jsx("span", { className: "mw-search__path", children: path.join(" › ") }), _jsx("span", { className: "mw-search__title", children: emphasized(title, tokenRanges(title, emphasis)) }), hit.snippet !== "" && (_jsx("span", { className: "mw-search__snippet", children: emphasized(hit.snippet, hit.highlights) }))] }, order));
253
+ })] }, group.category))) })] }), _jsxs("footer", { className: "mw-search__footer", children: [_jsx("p", { "aria-live": "polite", className: "mw-search__status", children: statusText(announced) }), _jsxs("ul", { className: "mw-search__hints", "aria-label": "Keyboard shortcuts", children: [_jsxs("li", { children: [_jsx("kbd", { children: "\u21B5" }), " open"] }), _jsxs("li", { children: [_jsx("kbd", { children: "\u2191" }), _jsx("kbd", { children: "\u2193" }), " move"] }), _jsxs("li", { children: [_jsx("kbd", { children: "esc" }), " close"] })] })] })] }));
254
+ }
255
+ //# sourceMappingURL=SearchModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchModal.js","sourceRoot":"","sources":["../../lib/search/SearchModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * The record the docs build indexes and the response the search modal renders. The modal and the
7
+ * query code share these through `import type`.
8
+ */
9
+ /**
10
+ * The number of hierarchy entries: the sidebar category, then `h1` through `h6`.
11
+ */
12
+ export declare const HIERARCHY_DEPTH = 7;
13
+ export interface SearchRecord {
14
+ /**
15
+ * The first 32 hex characters of `sha256(url + "#" + anchor + "\n" + position)`.
16
+ */
17
+ id: string;
18
+ /**
19
+ * Site-relative path without the anchor, such as `/docs/developers/reference/cli`.
20
+ */
21
+ url: string;
22
+ /**
23
+ * The heading id the record links to, or the empty string for the top of the page.
24
+ */
25
+ anchor: string;
26
+ /**
27
+ * Seven entries, `lvl0` through `lvl6`, with `null` below the record's own level.
28
+ */
29
+ hierarchy: (string | null)[];
30
+ /**
31
+ * Aggregated text under the heading, or the empty string for a heading without body text.
32
+ */
33
+ content: string;
34
+ /**
35
+ * Depth of the deepest non-null hierarchy entry, 0 through 6.
36
+ */
37
+ level: number;
38
+ /**
39
+ * Zero-based order of the record on its page.
40
+ */
41
+ position: number;
42
+ }
43
+ export interface SearchHit {
44
+ url: string;
45
+ anchor: string;
46
+ hierarchy: (string | null)[];
47
+ /**
48
+ * At most 160 characters of content around the first match.
49
+ */
50
+ snippet: string;
51
+ /**
52
+ * Character ranges within `snippet` that matched a query token.
53
+ */
54
+ highlights: [start: number, end: number][];
55
+ }
56
+ export interface SearchResponse {
57
+ query: string;
58
+ /**
59
+ * The text actually searched when a token was corrected against the vocabulary.
60
+ * It is `null` when no token was.
61
+ */
62
+ corrected: string | null;
63
+ hits: SearchHit[];
64
+ }
65
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/search/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,SAAS;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;IAC5B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAA;CAC1C;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,SAAS,EAAE,CAAA;CACjB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * The record the docs build indexes and the response the search modal renders. The modal and the
7
+ * query code share these through `import type`.
8
+ */
9
+ /**
10
+ * The number of hierarchy entries: the sidebar category, then `h1` through `h6`.
11
+ */
12
+ export const HIERARCHY_DEPTH = 7;
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/search/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ * @file The docs search modal and its wire types.
6
+ */
7
+ export { hitHref, SearchModal } from "./search/SearchModal.tsx";
8
+ export type { SearchModalProps } from "./search/SearchModal.tsx";
9
+ export { HIERARCHY_DEPTH } from "./search/types.ts";
10
+ export type { SearchHit, SearchRecord, SearchResponse } from "./search/types.ts";
11
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../lib/search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA"}
package/out/search.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ * @file The docs search modal and its wire types.
6
+ */
7
+ export { hitHref, SearchModal } from "./search/SearchModal.js";
8
+ export { HIERARCHY_DEPTH } from "./search/types.js";
9
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../lib/search.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAA0B,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}