@mailwoman/react 9.1.0 → 9.3.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 (211) hide show
  1. package/README.md +2 -2
  2. package/{common → lib/common}/ClientOnly.tsx +18 -6
  3. package/{common → lib/common}/CopyButton.tsx +1 -1
  4. package/{common → lib/common}/LoadingIndicator.tsx +1 -1
  5. package/{index.ts → lib/index.ts} +17 -17
  6. package/{map → lib/map}/CompareToggle.tsx +1 -1
  7. package/{map → lib/map}/DemoControls.tsx +5 -4
  8. package/{map → lib/map}/DemoMap.tsx +2 -2
  9. package/{map → lib/map}/GeocoderDemo.tsx +32 -8
  10. package/{map → lib/map}/OverlayLayers.tsx +3 -3
  11. package/{map → lib/map}/PlaceAutocomplete.tsx +2 -2
  12. package/{map → lib/map}/ResolvedPlaceLayers.tsx +2 -1
  13. package/{map → lib/map}/ResultCamera.tsx +2 -2
  14. package/{map → lib/map}/ResultOverlay.tsx +2 -2
  15. package/{map → lib/map}/ResultPanel.tsx +3 -2
  16. package/{map → lib/map}/VersionPicker.tsx +1 -1
  17. package/{map → lib/map}/geometry.ts +7 -7
  18. package/{map → lib/map}/index.ts +12 -12
  19. package/{map → lib/map}/place-render.ts +3 -3
  20. package/{map → lib/map}/types.ts +12 -9
  21. package/{map → lib/map}/useDemoGeocode.ts +4 -4
  22. package/{map → lib/map}/useMapPlaceRender.ts +2 -2
  23. package/{map → lib/map}/usePlaceAutocomplete.ts +39 -27
  24. package/{pipeline → lib/pipeline}/CandidatePicker.tsx +2 -2
  25. package/{pipeline → lib/pipeline}/ComponentTable.tsx +2 -1
  26. package/{pipeline → lib/pipeline}/ConfidenceCell.tsx +1 -1
  27. package/{pipeline → lib/pipeline}/PipelineExplorer.tsx +5 -4
  28. package/{pipeline → lib/pipeline}/QueryForm.tsx +2 -2
  29. package/{pipeline → lib/pipeline}/ResolvedPlace.tsx +1 -1
  30. package/{pipeline → lib/pipeline}/copy.ts +1 -1
  31. package/{pipeline → lib/pipeline}/presets.ts +2 -1
  32. package/{pipeline → lib/pipeline}/useParsePipeline.ts +1 -1
  33. package/{poi → lib/poi}/LiveResultsBlock.tsx +2 -2
  34. package/{poi → lib/poi}/POIExplorer.tsx +4 -3
  35. package/{poi → lib/poi}/SubjectPanel.tsx +1 -1
  36. package/{poi → lib/poi}/runtime.ts +3 -3
  37. package/{poi → lib/poi}/types.ts +1 -1
  38. package/{poi → lib/poi}/usePOISearch.ts +77 -51
  39. package/{runtime → lib/runtime}/useDemoRuntime.ts +8 -5
  40. package/out/common/ClientOnly.d.ts +5 -2
  41. package/out/common/ClientOnly.d.ts.map +1 -1
  42. package/out/common/ClientOnly.js +13 -5
  43. package/out/common/ClientOnly.js.map +1 -1
  44. package/out/common/CopyButton.d.ts.map +1 -1
  45. package/out/common/CopyButton.js +1 -1
  46. package/out/common/CopyButton.js.map +1 -1
  47. package/out/common/KindBadge.d.ts.map +1 -1
  48. package/out/common/KindBadge.js.map +1 -1
  49. package/out/common/LoadingIndicator.d.ts.map +1 -1
  50. package/out/common/LoadingIndicator.js +1 -1
  51. package/out/common/LoadingIndicator.js.map +1 -1
  52. package/out/common/PresetChips.d.ts.map +1 -1
  53. package/out/common/PresetChips.js.map +1 -1
  54. package/out/common/cx.d.ts.map +1 -1
  55. package/out/common/cx.js.map +1 -1
  56. package/out/common/useClipboard.d.ts.map +1 -1
  57. package/out/common/useClipboard.js.map +1 -1
  58. package/out/common/useDebouncedValue.d.ts.map +1 -1
  59. package/out/common/useDebouncedValue.js.map +1 -1
  60. package/out/index.d.ts +17 -17
  61. package/out/index.d.ts.map +1 -1
  62. package/out/index.js +9 -9
  63. package/out/index.js.map +1 -1
  64. package/out/map/BackendControl.d.ts.map +1 -1
  65. package/out/map/BackendControl.js.map +1 -1
  66. package/out/map/CompareToggle.d.ts +1 -1
  67. package/out/map/CompareToggle.d.ts.map +1 -1
  68. package/out/map/CompareToggle.js.map +1 -1
  69. package/out/map/DemoControls.d.ts +4 -4
  70. package/out/map/DemoControls.d.ts.map +1 -1
  71. package/out/map/DemoControls.js.map +1 -1
  72. package/out/map/DemoMap.d.ts +2 -2
  73. package/out/map/DemoMap.d.ts.map +1 -1
  74. package/out/map/DemoMap.js.map +1 -1
  75. package/out/map/GeocoderDemo.d.ts +3 -3
  76. package/out/map/GeocoderDemo.d.ts.map +1 -1
  77. package/out/map/GeocoderDemo.js +25 -6
  78. package/out/map/GeocoderDemo.js.map +1 -1
  79. package/out/map/OverlayLayers.d.ts +3 -3
  80. package/out/map/OverlayLayers.d.ts.map +1 -1
  81. package/out/map/OverlayLayers.js +2 -2
  82. package/out/map/OverlayLayers.js.map +1 -1
  83. package/out/map/PlaceAutocomplete.d.ts +1 -1
  84. package/out/map/PlaceAutocomplete.d.ts.map +1 -1
  85. package/out/map/PlaceAutocomplete.js +1 -1
  86. package/out/map/PlaceAutocomplete.js.map +1 -1
  87. package/out/map/PlaceMarker.d.ts.map +1 -1
  88. package/out/map/PlaceMarker.js.map +1 -1
  89. package/out/map/ResolvedPlaceLayers.d.ts +1 -1
  90. package/out/map/ResolvedPlaceLayers.d.ts.map +1 -1
  91. package/out/map/ResolvedPlaceLayers.js.map +1 -1
  92. package/out/map/ResultCamera.d.ts +2 -2
  93. package/out/map/ResultCamera.d.ts.map +1 -1
  94. package/out/map/ResultCamera.js +1 -1
  95. package/out/map/ResultCamera.js.map +1 -1
  96. package/out/map/ResultOverlay.d.ts +2 -2
  97. package/out/map/ResultOverlay.d.ts.map +1 -1
  98. package/out/map/ResultOverlay.js.map +1 -1
  99. package/out/map/ResultPanel.d.ts +1 -1
  100. package/out/map/ResultPanel.d.ts.map +1 -1
  101. package/out/map/ResultPanel.js +1 -1
  102. package/out/map/ResultPanel.js.map +1 -1
  103. package/out/map/VersionPicker.d.ts +1 -1
  104. package/out/map/VersionPicker.d.ts.map +1 -1
  105. package/out/map/VersionPicker.js.map +1 -1
  106. package/out/map/geometry.d.ts.map +1 -1
  107. package/out/map/geometry.js +7 -7
  108. package/out/map/geometry.js.map +1 -1
  109. package/out/map/index.d.ts +12 -12
  110. package/out/map/index.d.ts.map +1 -1
  111. package/out/map/index.js +6 -6
  112. package/out/map/index.js.map +1 -1
  113. package/out/map/place-render.d.ts +2 -2
  114. package/out/map/place-render.d.ts.map +1 -1
  115. package/out/map/place-render.js +1 -1
  116. package/out/map/place-render.js.map +1 -1
  117. package/out/map/types.d.ts +11 -9
  118. package/out/map/types.d.ts.map +1 -1
  119. package/out/map/types.js +2 -2
  120. package/out/map/types.js.map +1 -1
  121. package/out/map/useCompareState.d.ts.map +1 -1
  122. package/out/map/useCompareState.js.map +1 -1
  123. package/out/map/useDemoGeocode.d.ts +3 -3
  124. package/out/map/useDemoGeocode.d.ts.map +1 -1
  125. package/out/map/useDemoGeocode.js +1 -1
  126. package/out/map/useDemoGeocode.js.map +1 -1
  127. package/out/map/useMapPlaceRender.d.ts +1 -1
  128. package/out/map/useMapPlaceRender.d.ts.map +1 -1
  129. package/out/map/useMapPlaceRender.js +1 -1
  130. package/out/map/useMapPlaceRender.js.map +1 -1
  131. package/out/map/usePlaceAutocomplete.d.ts +1 -1
  132. package/out/map/usePlaceAutocomplete.d.ts.map +1 -1
  133. package/out/map/usePlaceAutocomplete.js +34 -23
  134. package/out/map/usePlaceAutocomplete.js.map +1 -1
  135. package/out/pipeline/CandidatePicker.d.ts +1 -1
  136. package/out/pipeline/CandidatePicker.d.ts.map +1 -1
  137. package/out/pipeline/CandidatePicker.js +1 -1
  138. package/out/pipeline/CandidatePicker.js.map +1 -1
  139. package/out/pipeline/ComponentTable.d.ts +1 -1
  140. package/out/pipeline/ComponentTable.d.ts.map +1 -1
  141. package/out/pipeline/ComponentTable.js.map +1 -1
  142. package/out/pipeline/ConfidenceCell.d.ts.map +1 -1
  143. package/out/pipeline/ConfidenceCell.js +1 -1
  144. package/out/pipeline/ConfidenceCell.js.map +1 -1
  145. package/out/pipeline/PipelineExplorer.d.ts +1 -1
  146. package/out/pipeline/PipelineExplorer.d.ts.map +1 -1
  147. package/out/pipeline/PipelineExplorer.js +3 -3
  148. package/out/pipeline/PipelineExplorer.js.map +1 -1
  149. package/out/pipeline/QueryForm.d.ts +2 -2
  150. package/out/pipeline/QueryForm.d.ts.map +1 -1
  151. package/out/pipeline/QueryForm.js.map +1 -1
  152. package/out/pipeline/ResolvedPlace.d.ts +1 -1
  153. package/out/pipeline/ResolvedPlace.d.ts.map +1 -1
  154. package/out/pipeline/ResolvedPlace.js.map +1 -1
  155. package/out/pipeline/copy.d.ts +1 -1
  156. package/out/pipeline/copy.d.ts.map +1 -1
  157. package/out/pipeline/copy.js.map +1 -1
  158. package/out/pipeline/presets.d.ts.map +1 -1
  159. package/out/pipeline/presets.js +2 -1
  160. package/out/pipeline/presets.js.map +1 -1
  161. package/out/pipeline/types.d.ts.map +1 -1
  162. package/out/pipeline/types.js.map +1 -1
  163. package/out/pipeline/useParsePipeline.d.ts +1 -1
  164. package/out/pipeline/useParsePipeline.d.ts.map +1 -1
  165. package/out/pipeline/useParsePipeline.js.map +1 -1
  166. package/out/poi/AbstainPanel.d.ts.map +1 -1
  167. package/out/poi/AbstainPanel.js.map +1 -1
  168. package/out/poi/LiveResultsBlock.d.ts +1 -1
  169. package/out/poi/LiveResultsBlock.d.ts.map +1 -1
  170. package/out/poi/LiveResultsBlock.js +1 -1
  171. package/out/poi/LiveResultsBlock.js.map +1 -1
  172. package/out/poi/OverpassBlock.d.ts.map +1 -1
  173. package/out/poi/OverpassBlock.js.map +1 -1
  174. package/out/poi/POIExplorer.d.ts +1 -1
  175. package/out/poi/POIExplorer.d.ts.map +1 -1
  176. package/out/poi/POIExplorer.js +2 -2
  177. package/out/poi/POIExplorer.js.map +1 -1
  178. package/out/poi/QueryInput.d.ts.map +1 -1
  179. package/out/poi/QueryInput.js.map +1 -1
  180. package/out/poi/SubjectPanel.d.ts +1 -1
  181. package/out/poi/SubjectPanel.d.ts.map +1 -1
  182. package/out/poi/SubjectPanel.js.map +1 -1
  183. package/out/poi/runtime.d.ts +1 -1
  184. package/out/poi/runtime.d.ts.map +1 -1
  185. package/out/poi/runtime.js.map +1 -1
  186. package/out/poi/types.d.ts +1 -1
  187. package/out/poi/types.d.ts.map +1 -1
  188. package/out/poi/types.js +1 -1
  189. package/out/poi/types.js.map +1 -1
  190. package/out/poi/usePOISearch.d.ts +1 -1
  191. package/out/poi/usePOISearch.d.ts.map +1 -1
  192. package/out/poi/usePOISearch.js +75 -48
  193. package/out/poi/usePOISearch.js.map +1 -1
  194. package/out/runtime/useDemoRuntime.d.ts +2 -2
  195. package/out/runtime/useDemoRuntime.d.ts.map +1 -1
  196. package/out/runtime/useDemoRuntime.js +7 -5
  197. package/out/runtime/useDemoRuntime.js.map +1 -1
  198. package/package.json +338 -18
  199. package/styles.css +49 -19
  200. /package/{common → lib/common}/KindBadge.tsx +0 -0
  201. /package/{common → lib/common}/PresetChips.tsx +0 -0
  202. /package/{common → lib/common}/cx.ts +0 -0
  203. /package/{common → lib/common}/useClipboard.ts +0 -0
  204. /package/{common → lib/common}/useDebouncedValue.ts +0 -0
  205. /package/{map → lib/map}/BackendControl.tsx +0 -0
  206. /package/{map → lib/map}/PlaceMarker.tsx +0 -0
  207. /package/{map → lib/map}/useCompareState.ts +0 -0
  208. /package/{pipeline → lib/pipeline}/types.ts +0 -0
  209. /package/{poi → lib/poi}/AbstainPanel.tsx +0 -0
  210. /package/{poi → lib/poi}/OverpassBlock.tsx +0 -0
  211. /package/{poi → lib/poi}/QueryInput.tsx +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SubjectPanel.js","sourceRoot":"","sources":["../../poi/SubjectPanel.tsx"],"names":[],"mappings":";AAkBA;;GAEG;AACH,SAAS,WAAW,CAAC,EAAE,OAAO,EAAqB;IAClD,OAAO,CACN,cAAI,SAAS,EAAC,oBAAoB,aACjC,0CAAuB,EACvB,uBACC,yBAAO,OAAO,CAAC,aAAa,GAAQ,GAChC,EACL,sCAAmB,EACnB,yBAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,SAAO,EAChD,kCAAe,EACf,uBAAK,OAAO,CAAC,SAAS,IAAI,oDAA4B,GAAM,IACxD,CACL,CAAA;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACN,8BACC,eAAK,SAAS,EAAC,iBAAiB,aAC/B,eAAM,SAAS,EAAC,kBAAkB,YAAE,OAAO,CAAC,IAAI,GAAQ,EACxD,eAAM,SAAS,EAAC,4CAA4C,sBAAa,EACxE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,YACC,SAAS,EAAC,iBAAiB,EAC3B,IAAI,EAAE,iCAAiC,OAAO,CAAC,QAAQ,EAAE,EACzD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,YAAY,YAEf,OAAO,CAAC,QAAQ,GACd,CACJ,CAAC,CAAC,CAAC,IAAI,IACH,EAEN,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,EAEjC,YAAG,SAAS,EAAC,kBAAkB,0GAE3B,IACF,CACH,CAAA;IACF,CAAC;IAED,OAAO,CACN,8BACC,eAAK,SAAS,EAAC,iBAAiB,aAC/B,eAAM,SAAS,EAAC,kBAAkB,YAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAQ,EACjE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,mBAAmB,4BAAmB,CAAC,CAAC,CAAC,IAAI,IAC9E,EAEN,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,EAEhC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CACrB,YAAG,SAAS,EAAC,kBAAkB,8GAE3B,CACJ,CAAC,CAAC,CAAC,IAAI,IACN,CACH,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"SubjectPanel.js","sourceRoot":"","sources":["../../lib/poi/SubjectPanel.tsx"],"names":[],"mappings":";AAkBA;;GAEG;AACH,SAAS,WAAW,CAAC,EAAE,OAAO,EAAqB;IAClD,OAAO,CACN,cAAI,SAAS,EAAC,oBAAoB,aACjC,0CAAuB,EACvB,uBACC,yBAAO,OAAO,CAAC,aAAa,GAAQ,GAChC,EACL,sCAAmB,EACnB,yBAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,CAAC,SAAO,EAChD,kCAAe,EACf,uBAAK,OAAO,CAAC,SAAS,IAAI,oDAA4B,GAAM,IACxD,CACL,CAAA;AACF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAE,OAAO,EAAqB;IAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACN,8BACC,eAAK,SAAS,EAAC,iBAAiB,aAC/B,eAAM,SAAS,EAAC,kBAAkB,YAAE,OAAO,CAAC,IAAI,GAAQ,EACxD,eAAM,SAAS,EAAC,4CAA4C,sBAAa,EACxE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CACnB,YACC,SAAS,EAAC,iBAAiB,EAC3B,IAAI,EAAE,iCAAiC,OAAO,CAAC,QAAQ,EAAE,EACzD,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,YAAY,YAEf,OAAO,CAAC,QAAQ,GACd,CACJ,CAAC,CAAC,CAAC,IAAI,IACH,EAEN,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,EAEjC,YAAG,SAAS,EAAC,kBAAkB,0GAE3B,IACF,CACH,CAAA;IACF,CAAC;IAED,OAAO,CACN,8BACC,eAAK,SAAS,EAAC,iBAAiB,aAC/B,eAAM,SAAS,EAAC,kBAAkB,YAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAQ,EACjE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,mBAAmB,4BAAmB,CAAC,CAAC,CAAC,IAAI,IAC9E,EAEN,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,EAEhC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CACrB,YAAG,SAAS,EAAC,kBAAkB,8GAE3B,CACJ,CAAC,CAAC,CAAC,IAAI,IACN,CACH,CAAA;AACF,CAAC"}
@@ -8,7 +8,7 @@
8
8
  * when the explorer actually mounts) and wires the kind classifier over it. Pure + browser-safe: no
9
9
  * network, no DOM — the whole intent path runs offline.
10
10
  */
11
- import type { POIRuntime } from "./types.ts";
11
+ import type { POIRuntime } from "#poi/types";
12
12
  /**
13
13
  * Build the POI runtime, dynamically importing the taxonomy + brand JSON so the tables land in their own chunk. A
14
14
  * static import would inline the whole snapshot into every consumer's bundle.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../poi/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C;;;;;;;;;GASG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAiC1D;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAMd,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,gBAAgB,sCAAuB,CAAA;AAEpD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIxD"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../lib/poi/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C;;;;;;;;;GASG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC,CAiC1D;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAMd,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,gBAAgB,sCAAuB,CAAA;AAEpD;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAIxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../poi/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAI7F;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IACnC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,MAAM,CAAC,4CAA4C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,MAAM,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACzE,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAiE,CAAC,CAAA;IACzG,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAmE,CAAC,CAAA;IAExG,qHAAqH;IACrH,sBAAsB;IACtB,MAAM,OAAO,GAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAE7D,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAC7B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC5B,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC5B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;YAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,oCAAoC,EAAE;IAC3E,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAChD,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,iCAAiC,EAAE;IACzE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC3D,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,yBAAyB,EAAE;CACxD,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAEpD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC/C,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA;IAEzD,OAAO,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../lib/poi/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAI7F;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IACnC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC7C,MAAM,CAAC,4CAA4C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,MAAM,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;KACzE,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAsD,CAAC,CAAA;IAC9F,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAwD,CAAC,CAAA;IAE7F,qHAAqH;IACrH,sBAAsB;IACtB,MAAM,OAAO,GAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAE7D,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAC7B,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,UAAU,EAAE,KAAK,CAAC,UAAU;aAC5B,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC5B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;YAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,KAAK,CAAC,UAAU;SAC5B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,CAAA;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,oCAAoC,EAAE;IAC3E,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAChD,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,iCAAiC,EAAE;IACzE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC3D,EAAE,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,yBAAyB,EAAE;CACxD,CAAA;AAEV;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AAEpD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC/C,IAAI,SAAS,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA;IAEzD,OAAO,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;AAC7C,CAAC"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Types for the POI explorer. The intent path (classification → subject → OverpassQL) is fully
7
7
  * self-contained over the pure `@mailwoman/*` packages; the live poi.db path is expressed only as an
8
- * INJECTED async function ({@link POILiveSearch}) so the httpvfs/worker machinery stays out of this
8
+ * INJECTED async function ({@link POILiveSearch}) so the httpvfs/worker implementation stays out of this
9
9
  * package's browser graph (it lives in the docs site, which knows where the layer is served).
10
10
  */
11
11
  import type { POIPhraseLookup, QueryKindResult, createKindClassifier } from "@mailwoman/kind-classifier";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../poi/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/poi/types.ts"],"names":[],"mappings":"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"}
package/out/poi/types.js CHANGED
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Types for the POI explorer. The intent path (classification → subject → OverpassQL) is fully
7
7
  * self-contained over the pure `@mailwoman/*` packages; the live poi.db path is expressed only as an
8
- * INJECTED async function ({@link POILiveSearch}) so the httpvfs/worker machinery stays out of this
8
+ * INJECTED async function ({@link POILiveSearch}) so the httpvfs/worker implementation stays out of this
9
9
  * package's browser graph (it lives in the docs site, which knows where the layer is served).
10
10
  */
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../poi/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../lib/poi/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -8,7 +8,7 @@
8
8
  * runtime loader and the live-search probe are both INJECTABLE, so stories/tests drive it with mocks
9
9
  * and no network or db. Presentation is entirely the caller's concern.
10
10
  */
11
- import type { LiveSearchState, LoadPOIRuntime, POIExplorerResult, POILiveSearch } from "./types.ts";
11
+ import type { LiveSearchState, LoadPOIRuntime, POIExplorerResult, POILiveSearch } from "#poi/types";
12
12
  export interface UsePOISearchOptions {
13
13
  /**
14
14
  * The current query text (controlled by the caller).
@@ -1 +1 @@
1
- {"version":3,"file":"usePOISearch.d.ts","sourceRoot":"","sources":["../../poi/usePOISearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAc,MAAM,YAAY,CAAA;AAE/G,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,YAAY,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAChC;;OAEG;IACH,UAAU,EAAE,eAAe,CAAA;IAC3B;;OAEG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/B;AA6BD,wBAAgB,YAAY,CAAC,EAC5B,IAAI,EACJ,WAA4B,EAC5B,aAAa,EACb,eAAuB,EACvB,UAAgB,GAChB,EAAE,mBAAmB,GAAG,YAAY,CAwJpC"}
1
+ {"version":3,"file":"usePOISearch.d.ts","sourceRoot":"","sources":["../../lib/poi/usePOISearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAc,MAAM,YAAY,CAAA;AAE/G,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,WAAW,CAAC,EAAE,cAAc,CAAA;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,YAAY,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAChC;;OAEG;IACH,UAAU,EAAE,eAAe,CAAA;IAC3B;;OAEG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/B;AA6BD,wBAAgB,YAAY,CAAC,EAC5B,IAAI,EACJ,WAA4B,EAC5B,aAAa,EACb,eAAuB,EACvB,UAAgB,GAChB,EAAE,mBAAmB,GAAG,YAAY,CAkLpC"}
@@ -11,9 +11,9 @@
11
11
  import { matchPOISubject } from "@mailwoman/kind-classifier";
12
12
  import { emitOverpassQL } from "@mailwoman/poi-taxonomy/overpass";
13
13
  import { computeQueryShape } from "@mailwoman/query-shape";
14
- import { useCallback, useEffect, useRef, useState } from "react";
15
- import { useDebouncedValue } from "../common/useDebouncedValue.js";
16
- import { loadPOIRuntime } from "./runtime.js";
14
+ import { useCallback, useEffect, useEffectEvent, useState } from "react";
15
+ import { useDebouncedValue } from "#common/useDebouncedValue";
16
+ import { loadPOIRuntime } from "#poi/runtime";
17
17
  /**
18
18
  * Compute the OverpassQL export for a matched subject, capturing any emitter error rather than throwing.
19
19
  */
@@ -23,11 +23,11 @@ function buildOverpass(runtime, categoryID, matchedPhrase, remainder) {
23
23
  return {};
24
24
  }
25
25
  const intent = {
26
- subject: { kind: "category", categoryID, matched: matchedPhrase },
26
+ subject: { kind: "category", categoryIDs: [categoryID], matched: matchedPhrase },
27
27
  ...(remainder ? { anchor: { text: remainder } } : {}),
28
28
  };
29
29
  try {
30
- return { overpassQL: emitOverpassQL(intent, category.osmTag ? { osmTag: category.osmTag } : {}) };
30
+ return { overpassQL: emitOverpassQL(intent, category.osmTag ? { osmTags: [category.osmTag] } : {}) };
31
31
  }
32
32
  catch (error) {
33
33
  return { overpassError: error instanceof Error ? error.message : String(error) };
@@ -35,17 +35,27 @@ function buildOverpass(runtime, categoryID, matchedPhrase, remainder) {
35
35
  }
36
36
  export function usePOISearch({ text, loadRuntime = loadPOIRuntime, runLiveSearch, brandLiveSearch = false, debounceMs = 250, }) {
37
37
  const [runtime, setRuntime] = useState(null);
38
- const [result, setResult] = useState(null);
39
- const [liveSearch, setLiveSearch] = useState({ status: "idle" });
38
+ /**
39
+ * The classify result KEYED BY the query that produced it. The visible result is derived during render
40
+ * (`storedResult.query === trimmedText ? … : null`), so a new query invalidates the old answer by derivation — the
41
+ * effect never writes state synchronously to "reset", which is the react(set-state-in-effect) shape the lint bump
42
+ * rightly flags.
43
+ */
44
+ const [storedResult, setStoredResult] = useState(null);
45
+ /**
46
+ * Live-search state, keyed the same way: launched FOR a query, visible only while that query stands.
47
+ */
48
+ const [storedLive, setStoredLive] = useState(null);
40
49
  const debouncedText = useDebouncedValue(text, debounceMs);
41
- // Capture the loader in a ref so the load fires exactly ONCE on mount, regardless of whether the
42
- // caller passes a fresh `loadRuntime` closure each render (an inline `async () => …` would otherwise
43
- // retrigger the effect reload re-render loop). The runtime is a load-once resource.
44
- const loadRuntimeRef = useRef(loadRuntime);
45
- loadRuntimeRef.current = loadRuntime;
50
+ const trimmedText = debouncedText.trim();
51
+ // The load fires exactly ONCE on mount regardless of whether the caller passes a fresh `loadRuntime`
52
+ // closure each render (an inline `async () => …` would otherwise retrigger the effect → reload →
53
+ // re-render loop). `useEffectEvent` reads the LATEST closure without joining the dependency list —
54
+ // the runtime is a load-once resource.
55
+ const loadRuntimeEvent = useEffectEvent(() => loadRuntime());
46
56
  useEffect(() => {
47
57
  let cancelled = false;
48
- loadRuntimeRef.current().then((loaded) => {
58
+ void loadRuntimeEvent().then((loaded) => {
49
59
  if (!cancelled) {
50
60
  setRuntime(loaded);
51
61
  }
@@ -55,17 +65,15 @@ export function usePOISearch({ text, loadRuntime = loadPOIRuntime, runLiveSearch
55
65
  };
56
66
  }, []);
57
67
  // Classify the debounced query and derive the subject + OverpassQL (async, so it lives in an effect).
68
+ // Every state write below happens after an await — invalidation on query change is handled by the
69
+ // key derivation above, not by a synchronous reset here.
58
70
  useEffect(() => {
59
71
  if (!runtime)
60
72
  return;
61
- let cancelled = false;
62
- const trimmed = debouncedText.trim();
63
- // A new query invalidates live results from the previous one.
64
- setLiveSearch({ status: "idle" });
65
- if (!trimmed) {
66
- setResult(null);
73
+ const trimmed = trimmedText;
74
+ if (!trimmed)
67
75
  return;
68
- }
76
+ let cancelled = false;
69
77
  const input = { raw: trimmed, normalized: trimmed };
70
78
  const shape = computeQueryShape(trimmed);
71
79
  runtime.classify(input, shape).then((kindResult) => {
@@ -73,47 +81,57 @@ export function usePOISearch({ text, loadRuntime = loadPOIRuntime, runLiveSearch
73
81
  return;
74
82
  const matched = kindResult.kind === "poi_query" ? matchPOISubject(trimmed, undefined, runtime.lexicon) : null;
75
83
  if (!matched) {
76
- setResult({ kindResult });
84
+ setStoredResult({ query: trimmed, value: { kindResult } });
77
85
  return;
78
86
  }
79
87
  // Brand subject: the lexicon carries the brand's canonical name as `categoryID` + its Wikidata QID. No category
80
88
  // record, no OverpassQL (brands are searched by QID against the layer's `brand_wikidata` index, not OSM tags).
81
89
  if ((matched.match.kind ?? "category") === "brand") {
82
- setResult({
83
- kindResult,
84
- subject: {
85
- kind: "brand",
86
- name: matched.match.categoryID,
87
- ...(matched.match.wikidata ? { wikidata: matched.match.wikidata } : {}),
88
- matchedPhrase: matched.match.matchedPhrase,
89
- confidence: matched.match.confidence,
90
- remainder: matched.remainder,
90
+ setStoredResult({
91
+ query: trimmed,
92
+ value: {
93
+ kindResult,
94
+ subject: {
95
+ kind: "brand",
96
+ name: matched.match.categoryID,
97
+ ...(matched.match.wikidata ? { wikidata: matched.match.wikidata } : {}),
98
+ matchedPhrase: matched.match.matchedPhrase,
99
+ confidence: matched.match.confidence,
100
+ remainder: matched.remainder,
101
+ },
91
102
  },
92
103
  });
93
104
  return;
94
105
  }
95
106
  const category = runtime.lookup.getPOICategory(matched.match.categoryID);
96
107
  if (!category) {
97
- setResult({ kindResult });
108
+ setStoredResult({ query: trimmed, value: { kindResult } });
98
109
  return;
99
110
  }
100
- setResult({
101
- kindResult,
102
- subject: {
103
- kind: "category",
104
- category,
105
- matchedPhrase: matched.match.matchedPhrase,
106
- confidence: matched.match.confidence,
107
- remainder: matched.remainder,
108
- buildLocal: runtime.lookup.requiresBuildLocalLayer(category),
111
+ setStoredResult({
112
+ query: trimmed,
113
+ value: {
114
+ kindResult,
115
+ subject: {
116
+ kind: "category",
117
+ category,
118
+ matchedPhrase: matched.match.matchedPhrase,
119
+ confidence: matched.match.confidence,
120
+ remainder: matched.remainder,
121
+ buildLocal: runtime.lookup.requiresBuildLocalLayer(category),
122
+ },
123
+ ...buildOverpass(runtime, matched.match.categoryID, matched.match.matchedPhrase, matched.remainder),
109
124
  },
110
- ...buildOverpass(runtime, matched.match.categoryID, matched.match.matchedPhrase, matched.remainder),
111
125
  });
112
126
  });
113
127
  return () => {
114
128
  cancelled = true;
115
129
  };
116
- }, [debouncedText, runtime]);
130
+ }, [trimmedText, runtime]);
131
+ // Derived visibility: an answer stands only while its query does. A new query reads as null/idle
132
+ // with no reset write anywhere.
133
+ const result = storedResult?.query === trimmedText ? storedResult.value : null;
134
+ const liveSearch = storedLive?.query === trimmedText ? storedLive.state : { status: "idle" };
117
135
  const subject = result?.subject;
118
136
  // A subject is live-searchable when a probe is wired, it has an anchor, and: a CATEGORY that isn't build-local, or a
119
137
  // BRAND with a QID AND a brand-capable probe (`brandLiveSearch`). Brands without a QID / without a brand probe show
@@ -126,7 +144,7 @@ export function usePOISearch({ text, loadRuntime = loadPOIRuntime, runLiveSearch
126
144
  return;
127
145
  if (subject.kind === "category" ? subject.buildLocal : !(brandLiveSearch && subject.wikidata))
128
146
  return;
129
- setLiveSearch({ status: "loading" });
147
+ setStoredLive({ query: trimmedText, state: { status: "loading" } });
130
148
  try {
131
149
  const outcome = await runLiveSearch(subject.kind === "brand"
132
150
  ? {
@@ -142,19 +160,28 @@ export function usePOISearch({ text, loadRuntime = loadPOIRuntime, runLiveSearch
142
160
  anchor: subject.remainder,
143
161
  });
144
162
  if (outcome.status === "success") {
145
- setLiveSearch({ status: "success", hits: outcome.hits, centerName: outcome.centerName });
163
+ setStoredLive({
164
+ query: trimmedText,
165
+ state: { status: "success", hits: outcome.hits, centerName: outcome.centerName },
166
+ });
146
167
  }
147
168
  else if (outcome.status === "unplaced") {
148
- setLiveSearch({ status: "error", message: `couldn't place "${outcome.anchor}"` });
169
+ setStoredLive({ query: trimmedText, state: { status: "error", message: `couldn't place "${outcome.anchor}"` } });
149
170
  }
150
171
  else {
151
- setLiveSearch({ status: "error", message: "the published POI layer isn't reachable" });
172
+ setStoredLive({
173
+ query: trimmedText,
174
+ state: { status: "error", message: "the published POI layer isn't reachable" },
175
+ });
152
176
  }
153
177
  }
154
178
  catch {
155
- setLiveSearch({ status: "error", message: "the published POI layer isn't reachable" });
179
+ setStoredLive({
180
+ query: trimmedText,
181
+ state: { status: "error", message: "the published POI layer isn't reachable" },
182
+ });
156
183
  }
157
- }, [runLiveSearch, runtime, subject, brandLiveSearch]);
184
+ }, [runLiveSearch, runtime, subject, brandLiveSearch, trimmedText]);
158
185
  return { runtimeReady: runtime !== null, result, liveSearch, canSearchLive, searchLive };
159
186
  }
160
187
  //# sourceMappingURL=usePOISearch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePOISearch.js","sourceRoot":"","sources":["../../poi/usePOISearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePOISearch.js","sourceRoot":"","sources":["../../lib/poi/usePOISearch.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * WOF opener, the FST fetch, the releases.json fetch) are INJECTED by the host as async functions, so
11
11
  * this module imports only React: no `onnxruntime-web`, no `sql.js-httpvfs`, no `maplibre-gl`, no
12
12
  * `fetch`-specific plumbing. That keeps it node-import-safe and root-exportable from
13
- * `@mailwoman/react` — the exact seam `PipelineRuntime` established, generalized to the loader itself.
13
+ * `@mailwoman/react` — the exact interface `PipelineRuntime` established, generalized to the loader itself.
14
14
  *
15
15
  * The hook is generic over `TAssets` (the opaque bundle the host's `loadAssets` returns — classifier,
16
16
  * FST, WOF lookup, calibrator, …) and `TRelease` (the host's release-manifest entry). The package
@@ -161,7 +161,7 @@ export interface DemoLoaderState<TAssets, TRelease extends DemoReleaseBase = Dem
161
161
  *
162
162
  * Sequence: on mount `loadManifest` runs and its `defaultVersion` becomes the selection; each version (or `forceWASM`)
163
163
  * change reloads the bundle via `loadAssets`, the previous load aborted first. The assets are revealed ATOMICALLY when
164
- * `loadAssets` resolves (so `ready` flips exactly once per load), and consumers gate on `ready`.
164
+ * `loadAssets` resolves (so `ready` flips exactly once per load), and consumers wait on `ready`.
165
165
  */
166
166
  export declare function useDemoRuntime<TAssets, TRelease extends DemoReleaseBase = DemoReleaseBase>(config: DemoRuntimeConfig<TAssets, TRelease>): DemoLoaderState<TAssets, TRelease>;
167
167
  //# sourceMappingURL=useDemoRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDemoRuntime.d.ts","sourceRoot":"","sources":["../../runtime/useDemoRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,QAAQ,SAAS,eAAe,GAAG,eAAe;IAC/E;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,QAAQ,EAAE,QAAQ,EAAE,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAA;IACnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC;;OAEG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACzC;;OAEG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC;;OAEG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,EAAE,QAAQ,SAAS,eAAe,GAAG,eAAe;IAC7F;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IAC7E;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/E;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,QAAQ,SAAS,eAAe,GAAG,eAAe;IAC3F;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;;OAEG;IACH,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAA;IAChC;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;;OAEG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,SAAS,eAAe,GAAG,eAAe,EACzF,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAC1C,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CA4HpC"}
1
+ {"version":3,"file":"useDemoRuntime.d.ts","sourceRoot":"","sources":["../../lib/runtime/useDemoRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,QAAQ,SAAS,eAAe,GAAG,eAAe;IAC/E;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;OAEG;IACH,QAAQ,EAAE,QAAQ,EAAE,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,MAAM,EAAE,WAAW,CAAA;IACnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC;;OAEG;IACH,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACzC;;OAEG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC;;OAEG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,OAAO,EAAE,QAAQ,SAAS,eAAe,GAAG,eAAe;IAC7F;;;OAGG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IAC7E;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/E;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,QAAQ,SAAS,eAAe,GAAG,eAAe;IAC3F;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;IACvC;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;;OAEG;IACH,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAA;IAChC;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;;OAEG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CAC1C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,QAAQ,SAAS,eAAe,GAAG,eAAe,EACzF,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAC1C,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CA+HpC"}
@@ -10,7 +10,7 @@
10
10
  * WOF opener, the FST fetch, the releases.json fetch) are INJECTED by the host as async functions, so
11
11
  * this module imports only React: no `onnxruntime-web`, no `sql.js-httpvfs`, no `maplibre-gl`, no
12
12
  * `fetch`-specific plumbing. That keeps it node-import-safe and root-exportable from
13
- * `@mailwoman/react` — the exact seam `PipelineRuntime` established, generalized to the loader itself.
13
+ * `@mailwoman/react` — the exact interface `PipelineRuntime` established, generalized to the loader itself.
14
14
  *
15
15
  * The hook is generic over `TAssets` (the opaque bundle the host's `loadAssets` returns — classifier,
16
16
  * FST, WOF lookup, calibrator, …) and `TRelease` (the host's release-manifest entry). The package
@@ -22,7 +22,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
22
22
  *
23
23
  * Sequence: on mount `loadManifest` runs and its `defaultVersion` becomes the selection; each version (or `forceWASM`)
24
24
  * change reloads the bundle via `loadAssets`, the previous load aborted first. The assets are revealed ATOMICALLY when
25
- * `loadAssets` resolves (so `ready` flips exactly once per load), and consumers gate on `ready`.
25
+ * `loadAssets` resolves (so `ready` flips exactly once per load), and consumers wait on `ready`.
26
26
  */
27
27
  export function useDemoRuntime(config) {
28
28
  const { initialProgress = "Loading releases…" } = config;
@@ -38,14 +38,16 @@ export function useDemoRuntime(config) {
38
38
  // Latest-ref the injected loaders: a host that re-creates them each render (an inline arrow) must NOT retrigger the
39
39
  // load effects, which key ONLY on version/backend. The effects read `.current` at run time.
40
40
  const loadManifestRef = useRef(config.loadManifest);
41
- loadManifestRef.current = config.loadManifest;
42
41
  const loadAssetsRef = useRef(config.loadAssets);
43
- loadAssetsRef.current = config.loadAssets;
44
42
  // Latest manifest for the version-load effect, so it can resolve the release WITHOUT depending on `manifest`
45
43
  // identity — which would double-fire the load the instant the manifest first arrives (the selection transition
46
44
  // null → defaultVersion already fires it once).
47
45
  const manifestRef = useRef(null);
48
- manifestRef.current = manifest;
46
+ useEffect(() => {
47
+ loadManifestRef.current = config.loadManifest;
48
+ loadAssetsRef.current = config.loadAssets;
49
+ manifestRef.current = manifest;
50
+ }, [config.loadAssets, config.loadManifest, manifest]);
49
51
  // Mount: fetch the manifest, then select the default version.
50
52
  useEffect(() => {
51
53
  const controller = new AbortController();
@@ -1 +1 @@
1
- {"version":3,"file":"useDemoRuntime.js","sourceRoot":"","sources":["../../runtime/useDemoRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDemoRuntime.js","sourceRoot":"","sources":["../../lib/runtime/useDemoRuntime.ts"],"names":[],"mappings":"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"}