@mailwoman/react 9.3.0 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/fonts.css +59 -0
  2. package/lib/common/About.tsx +89 -0
  3. package/lib/common/KindBadge.tsx +2 -7
  4. package/lib/common/confidence-tiers.ts +50 -0
  5. package/lib/common/text-tokens.ts +88 -0
  6. package/lib/index.ts +30 -28
  7. package/lib/map/CompareToggle.tsx +2 -2
  8. package/lib/map/{GeocoderDemo.tsx → Geocoder.tsx} +40 -40
  9. package/lib/map/{DemoControls.tsx → GeocoderControls.tsx} +16 -17
  10. package/lib/map/{DemoMap.tsx → MapCanvas.tsx} +15 -15
  11. package/lib/map/PlaceMarker.tsx +1 -1
  12. package/lib/map/ResolvedPlaceLayers.tsx +3 -3
  13. package/lib/map/ResultCamera.tsx +1 -1
  14. package/lib/map/ResultPanel.tsx +2 -2
  15. package/lib/map/VersionPicker.tsx +3 -3
  16. package/lib/map/fake-runtime.ts +122 -0
  17. package/lib/map/index.ts +16 -16
  18. package/lib/map/map-debug.ts +51 -0
  19. package/lib/map/place-render.ts +3 -2
  20. package/lib/map/types.ts +41 -39
  21. package/lib/map/{useDemoGeocode.ts → useGeocode.ts} +8 -8
  22. package/lib/pipeline/CandidatePicker.tsx +1 -1
  23. package/lib/pipeline/ComponentTable.tsx +1 -2
  24. package/lib/pipeline/ConfidenceCell.tsx +7 -19
  25. package/lib/pipeline/FailureDiagnostic.tsx +56 -0
  26. package/lib/pipeline/ResolvedPlace.tsx +17 -4
  27. package/lib/pipeline/SpanHighlight.tsx +97 -0
  28. package/lib/pipeline/TimingPanel.tsx +65 -0
  29. package/lib/pipeline/TreeView.tsx +55 -0
  30. package/lib/pipeline/copy.ts +1 -1
  31. package/lib/pipeline/types.ts +2 -75
  32. package/lib/pipeline/useParsePipeline.ts +2 -1
  33. package/lib/poi/types.ts +2 -1
  34. package/lib/runtime/{useDemoRuntime.ts → useReleaseRuntime.ts} +22 -24
  35. package/out/common/About.d.ts +12 -0
  36. package/out/common/About.d.ts.map +1 -0
  37. package/out/common/About.js +5 -0
  38. package/out/common/About.js.map +1 -0
  39. package/out/common/KindBadge.d.ts +2 -9
  40. package/out/common/KindBadge.d.ts.map +1 -1
  41. package/out/common/KindBadge.js.map +1 -1
  42. package/out/common/confidence-tiers.d.ts +36 -0
  43. package/out/common/confidence-tiers.d.ts.map +1 -0
  44. package/out/common/confidence-tiers.js +42 -0
  45. package/out/common/confidence-tiers.js.map +1 -0
  46. package/out/common/text-tokens.d.ts +46 -0
  47. package/out/common/text-tokens.d.ts.map +1 -0
  48. package/out/common/text-tokens.js +52 -0
  49. package/out/common/text-tokens.js.map +1 -0
  50. package/out/index.d.ts +14 -5
  51. package/out/index.d.ts.map +1 -1
  52. package/out/index.js +8 -2
  53. package/out/index.js.map +1 -1
  54. package/out/map/CompareToggle.d.ts +2 -2
  55. package/out/map/CompareToggle.d.ts.map +1 -1
  56. package/out/map/{GeocoderDemo.d.ts → Geocoder.d.ts} +17 -17
  57. package/out/map/Geocoder.d.ts.map +1 -0
  58. package/out/map/{GeocoderDemo.js → Geocoder.js} +25 -25
  59. package/out/map/Geocoder.js.map +1 -0
  60. package/out/map/{DemoControls.d.ts → GeocoderControls.d.ts} +16 -17
  61. package/out/map/GeocoderControls.d.ts.map +1 -0
  62. package/out/map/{DemoControls.js → GeocoderControls.js} +2 -2
  63. package/out/map/GeocoderControls.js.map +1 -0
  64. package/out/map/{DemoMap.d.ts → MapCanvas.d.ts} +15 -15
  65. package/out/map/MapCanvas.d.ts.map +1 -0
  66. package/out/map/{DemoMap.js → MapCanvas.js} +2 -2
  67. package/out/map/MapCanvas.js.map +1 -0
  68. package/out/map/PlaceMarker.d.ts +1 -1
  69. package/out/map/ResolvedPlaceLayers.d.ts +3 -3
  70. package/out/map/ResultCamera.d.ts +1 -1
  71. package/out/map/ResultCamera.js +1 -1
  72. package/out/map/ResultPanel.d.ts +2 -2
  73. package/out/map/ResultPanel.d.ts.map +1 -1
  74. package/out/map/ResultPanel.js.map +1 -1
  75. package/out/map/VersionPicker.d.ts +3 -3
  76. package/out/map/VersionPicker.d.ts.map +1 -1
  77. package/out/map/fake-runtime.d.ts +38 -0
  78. package/out/map/fake-runtime.d.ts.map +1 -0
  79. package/out/map/fake-runtime.js +107 -0
  80. package/out/map/fake-runtime.js.map +1 -0
  81. package/out/map/index.d.ts +10 -10
  82. package/out/map/index.d.ts.map +1 -1
  83. package/out/map/index.js +6 -6
  84. package/out/map/index.js.map +1 -1
  85. package/out/map/map-debug.d.ts +31 -0
  86. package/out/map/map-debug.d.ts.map +1 -0
  87. package/out/map/map-debug.js +31 -0
  88. package/out/map/map-debug.js.map +1 -0
  89. package/out/map/place-render.d.ts +2 -2
  90. package/out/map/place-render.d.ts.map +1 -1
  91. package/out/map/place-render.js +1 -1
  92. package/out/map/place-render.js.map +1 -1
  93. package/out/map/types.d.ts +41 -39
  94. package/out/map/types.d.ts.map +1 -1
  95. package/out/map/types.js +5 -5
  96. package/out/map/{useDemoGeocode.d.ts → useGeocode.d.ts} +9 -9
  97. package/out/map/useGeocode.d.ts.map +1 -0
  98. package/out/map/{useDemoGeocode.js → useGeocode.js} +4 -4
  99. package/out/map/useGeocode.js.map +1 -0
  100. package/out/pipeline/CandidatePicker.d.ts +1 -1
  101. package/out/pipeline/CandidatePicker.d.ts.map +1 -1
  102. package/out/pipeline/CandidatePicker.js.map +1 -1
  103. package/out/pipeline/ComponentTable.d.ts +1 -1
  104. package/out/pipeline/ComponentTable.d.ts.map +1 -1
  105. package/out/pipeline/ComponentTable.js.map +1 -1
  106. package/out/pipeline/ConfidenceCell.d.ts +2 -2
  107. package/out/pipeline/ConfidenceCell.d.ts.map +1 -1
  108. package/out/pipeline/ConfidenceCell.js +4 -16
  109. package/out/pipeline/ConfidenceCell.js.map +1 -1
  110. package/out/pipeline/FailureDiagnostic.d.ts +15 -0
  111. package/out/pipeline/FailureDiagnostic.d.ts.map +1 -0
  112. package/out/pipeline/FailureDiagnostic.js +21 -0
  113. package/out/pipeline/FailureDiagnostic.js.map +1 -0
  114. package/out/pipeline/ResolvedPlace.d.ts +1 -1
  115. package/out/pipeline/ResolvedPlace.d.ts.map +1 -1
  116. package/out/pipeline/ResolvedPlace.js +4 -10
  117. package/out/pipeline/ResolvedPlace.js.map +1 -1
  118. package/out/pipeline/SpanHighlight.d.ts +23 -0
  119. package/out/pipeline/SpanHighlight.d.ts.map +1 -0
  120. package/out/pipeline/SpanHighlight.js +31 -0
  121. package/out/pipeline/SpanHighlight.js.map +1 -0
  122. package/out/pipeline/TimingPanel.d.ts +16 -0
  123. package/out/pipeline/TimingPanel.d.ts.map +1 -0
  124. package/out/pipeline/TimingPanel.js +20 -0
  125. package/out/pipeline/TimingPanel.js.map +1 -0
  126. package/out/pipeline/TreeView.d.ts +17 -0
  127. package/out/pipeline/TreeView.d.ts.map +1 -0
  128. package/out/pipeline/TreeView.js +15 -0
  129. package/out/pipeline/TreeView.js.map +1 -0
  130. package/out/pipeline/copy.d.ts +1 -1
  131. package/out/pipeline/copy.d.ts.map +1 -1
  132. package/out/pipeline/types.d.ts +2 -68
  133. package/out/pipeline/types.d.ts.map +1 -1
  134. package/out/pipeline/types.js +1 -1
  135. package/out/pipeline/useParsePipeline.d.ts +2 -1
  136. package/out/pipeline/useParsePipeline.d.ts.map +1 -1
  137. package/out/pipeline/useParsePipeline.js.map +1 -1
  138. package/out/poi/types.d.ts +2 -1
  139. package/out/poi/types.d.ts.map +1 -1
  140. package/out/runtime/{useDemoRuntime.d.ts → useReleaseRuntime.d.ts} +18 -20
  141. package/out/runtime/useReleaseRuntime.d.ts.map +1 -0
  142. package/out/runtime/{useDemoRuntime.js → useReleaseRuntime.js} +4 -4
  143. package/out/runtime/useReleaseRuntime.js.map +1 -0
  144. package/package.json +139 -29
  145. package/styleframe.config.ts +321 -0
  146. package/styles.css +1074 -664
  147. package/tokens/index.css +115 -0
  148. package/tokens/tokens.json +521 -0
  149. package/tokens/tokens.resolver.json +185 -0
  150. package/out/map/DemoControls.d.ts.map +0 -1
  151. package/out/map/DemoControls.js.map +0 -1
  152. package/out/map/DemoMap.d.ts.map +0 -1
  153. package/out/map/DemoMap.js.map +0 -1
  154. package/out/map/GeocoderDemo.d.ts.map +0 -1
  155. package/out/map/GeocoderDemo.js.map +0 -1
  156. package/out/map/useDemoGeocode.d.ts.map +0 -1
  157. package/out/map/useDemoGeocode.js.map +0 -1
  158. package/out/runtime/useDemoRuntime.d.ts.map +0 -1
  159. package/out/runtime/useDemoRuntime.js.map +0 -1
@@ -3,9 +3,9 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * `useDemoGeocode` — the parse+resolve state machine for the geocoder map demo. It REUSES the pipeline's
6
+ * `useGeocode` — the parse+resolve state machine for the geocoder map. It REUSES the pipeline's
7
7
  * `useParsePipeline` (text / busy / stage / result / candidate selection) and layers on the two map-only
8
- * concerns the demo adds over the base explorer:
8
+ * concerns the geocoder adds over the base explorer:
9
9
  *
10
10
  * 1. Viewport bias — when the runtime exposes `runParseWithBias`, the current map center (read through
11
11
  * an injected `getBias`, itself reading the `MapRef`) rides along as a soft proximity prior. The
@@ -18,13 +18,13 @@
18
18
  * callback, so this hook stays independent of the map binding.
19
19
  */
20
20
  import type { ResolvedMapPlace } from "#map/place-render";
21
- import type { DemoRuntime, MapBias } from "#map/types";
21
+ import type { GeocoderRuntime, MapBias } from "#map/types";
22
22
  import { type UseParsePipeline } from "#pipeline/useParsePipeline";
23
- export interface UseDemoGeocodeOptions {
23
+ export interface UseGeocodeOptions {
24
24
  /**
25
- * The injected demo runtime (extends `PipelineRuntime` with the map + bias surface).
25
+ * The injected geocoder runtime (extends `PipelineRuntime` with the map + bias surface).
26
26
  */
27
- runtime: DemoRuntime;
27
+ runtime: GeocoderRuntime;
28
28
  /**
29
29
  * Address to pre-fill.
30
30
  */
@@ -34,11 +34,11 @@ export interface UseDemoGeocodeOptions {
34
34
  */
35
35
  getBias?: () => MapBias | null;
36
36
  }
37
- export interface UseDemoGeocode extends UseParsePipeline {
37
+ export interface UseGeocode extends UseParsePipeline {
38
38
  /**
39
39
  * The selected candidate enriched into the map-render shape (bbox / tier / polygon), or `null`.
40
40
  */
41
41
  mapPlace: ResolvedMapPlace | null;
42
42
  }
43
- export declare function useDemoGeocode({ runtime, defaultText, getBias }: UseDemoGeocodeOptions): UseDemoGeocode;
44
- //# sourceMappingURL=useDemoGeocode.d.ts.map
43
+ export declare function useGeocode({ runtime, defaultText, getBias }: UseGeocodeOptions): UseGeocode;
44
+ //# sourceMappingURL=useGeocode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGeocode.d.ts","sourceRoot":"","sources":["../../lib/map/useGeocode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE1D,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAEpF,MAAM,WAAW,iBAAiB;IACjC;;OAEG;IACH,OAAO,EAAE,eAAe,CAAA;IACxB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IACnD;;OAEG;IACH,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAA;CACjC;AAED,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,iBAAiB,GAAG,UAAU,CAyB3F"}
@@ -3,9 +3,9 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * `useDemoGeocode` — the parse+resolve state machine for the geocoder map demo. It REUSES the pipeline's
6
+ * `useGeocode` — the parse+resolve state machine for the geocoder map. It REUSES the pipeline's
7
7
  * `useParsePipeline` (text / busy / stage / result / candidate selection) and layers on the two map-only
8
- * concerns the demo adds over the base explorer:
8
+ * concerns the geocoder adds over the base explorer:
9
9
  *
10
10
  * 1. Viewport bias — when the runtime exposes `runParseWithBias`, the current map center (read through
11
11
  * an injected `getBias`, itself reading the `MapRef`) rides along as a soft proximity prior. The
@@ -19,7 +19,7 @@
19
19
  */
20
20
  import { useMemo } from "react";
21
21
  import { useParsePipeline } from "#pipeline/useParsePipeline";
22
- export function useDemoGeocode({ runtime, defaultText, getBias }) {
22
+ export function useGeocode({ runtime, defaultText, getBias }) {
23
23
  // Bind the viewport bias into a derived `runParse` so `useParsePipeline` is reused unchanged. When the runtime has no
24
24
  // bias-aware parse, pass it straight through.
25
25
  const geoRuntime = useMemo(() => {
@@ -41,4 +41,4 @@ export function useDemoGeocode({ runtime, defaultText, getBias }) {
41
41
  }, [pipeline.selectedCandidate, pipeline.result, runtime]);
42
42
  return { ...pipeline, mapPlace };
43
43
  }
44
- //# sourceMappingURL=useDemoGeocode.js.map
44
+ //# sourceMappingURL=useGeocode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGeocode.js","sourceRoot":"","sources":["../../lib/map/useGeocode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAK/B,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAA;AAwBpF,MAAM,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAqB;IAC9E,sHAAsH;IACtH,8CAA8C;IAC9C,MAAM,UAAU,GAAG,OAAO,CAAkB,GAAG,EAAE;QAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAEzC,IAAI,CAAC,QAAQ;YAAE,OAAO,OAAO,CAAA;QAE7B,OAAO;YACN,GAAG,OAAO;YACV,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,KAAK,CAAC;SACvE,CAAA;IACF,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IAEtB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;IAEvE,MAAM,QAAQ,GAAG,OAAO,CAA0B,GAAG,EAAE;QACtD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QAEhE,OAAO,OAAO,CAAC,eAAe;YAC7B,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC;YACtE,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAA;IAC9B,CAAC,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAE1D,OAAO,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAA;AACjC,CAAC"}
@@ -6,8 +6,8 @@
6
6
  * `CandidatePicker` — the ranked list of alternate gazetteer candidates; clicking one selects it.
7
7
  * Presentational; the selected index is owned by the caller (the pipeline hook).
8
8
  */
9
+ import type { ResolvedPlaceView } from "@mailwoman/core/pipeline/client-result";
9
10
  import type { ReactNode } from "react";
10
- import type { ResolvedPlaceView } from "#pipeline/types";
11
11
  export interface CandidatePickerProps {
12
12
  candidates: ResolvedPlaceView[];
13
13
  selectedIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"CandidatePicker.d.ts","sourceRoot":"","sources":["../../lib/pipeline/CandidatePicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExD,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC;AAED,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAAG,SAAS,CAwBxG"}
1
+ {"version":3,"file":"CandidatePicker.d.ts","sourceRoot":"","sources":["../../lib/pipeline/CandidatePicker.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACjC;AAED,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,oBAAoB,GAAG,SAAS,CAwBxG"}
@@ -1 +1 @@
1
- {"version":3,"file":"CandidatePicker.js","sourceRoot":"","sources":["../../lib/pipeline/CandidatePicker.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAS/B,MAAM,UAAU,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAwB;IAC5F,OAAO,CACN,eAAK,SAAS,EAAC,eAAe,aAC7B,+CAAuB,UAAU,CAAC,MAAM,GAAG,CAAC,SAAO,EACnD,aAAI,SAAS,EAAC,qBAAqB,YACjC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,uBACC,kBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,EAAE,4BAA4B,EAAE,CAAC,KAAK,aAAa,EAAE,CAAC,EAC1F,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,GAAG,SAAS,CAAC,SAAS,UAAU,SAAS,CAAC,EAAE,YAAY,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAE3F,gBAAM,SAAS,EAAC,qBAAqB,kBAAG,CAAC,GAAG,CAAC,IAAQ,EACrD,eAAM,SAAS,EAAC,qBAAqB,YAAE,SAAS,CAAC,IAAI,GAAQ,EAC7D,gBAAM,SAAS,EAAC,qBAAqB,aACnC,SAAS,CAAC,SAAS,cAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAC7C,IACC,IAZD,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE,CAa1B,CACL,CAAC,GACE,IACA,CACN,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"CandidatePicker.js","sourceRoot":"","sources":["../../lib/pipeline/CandidatePicker.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAQ/B,MAAM,UAAU,eAAe,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAwB;IAC5F,OAAO,CACN,eAAK,SAAS,EAAC,eAAe,aAC7B,+CAAuB,UAAU,CAAC,MAAM,GAAG,CAAC,SAAO,EACnD,aAAI,SAAS,EAAC,qBAAqB,YACjC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,uBACC,kBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,EAAE,4BAA4B,EAAE,CAAC,KAAK,aAAa,EAAE,CAAC,EAC1F,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,GAAG,SAAS,CAAC,SAAS,UAAU,SAAS,CAAC,EAAE,YAAY,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAE3F,gBAAM,SAAS,EAAC,qBAAqB,kBAAG,CAAC,GAAG,CAAC,IAAQ,EACrD,eAAM,SAAS,EAAC,qBAAqB,YAAE,SAAS,CAAC,IAAI,GAAQ,EAC7D,gBAAM,SAAS,EAAC,qBAAqB,aACnC,SAAS,CAAC,SAAS,cAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAC7C,IACC,IAZD,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC,EAAE,CAa1B,CACL,CAAC,GACE,IACA,CACN,CAAA;AACF,CAAC"}
@@ -5,8 +5,8 @@
5
5
  *
6
6
  * `ComponentTable` — the tag / value / confidence table of decoded components. Presentational.
7
7
  */
8
+ import type { ParsedComponent } from "@mailwoman/core/pipeline/client-result";
8
9
  import type { ReactNode } from "react";
9
- import type { ParsedComponent } from "#pipeline/types";
10
10
  export interface ComponentTableProps {
11
11
  nodes: ParsedComponent[];
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentTable.d.ts","sourceRoot":"","sources":["../../lib/pipeline/ComponentTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAItD,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,eAAe,EAAE,CAAA;CACxB;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,GAAG,SAAS,CAuBxE"}
1
+ {"version":3,"file":"ComponentTable.d.ts","sourceRoot":"","sources":["../../lib/pipeline/ComponentTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,eAAe,EAAE,CAAA;CACxB;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,GAAG,SAAS,CAuBxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentTable.js","sourceRoot":"","sources":["../../lib/pipeline/ComponentTable.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AAMrD,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAuB;IAC5D,OAAO,CACN,iBAAO,SAAS,EAAC,eAAe,aAC/B,0BACC,yBACC,+BAAY,EACZ,iCAAc,EACd,sCAAmB,IACf,GACE,EACR,0BACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,yBACC,uBAAK,IAAI,CAAC,GAAG,GAAM,EACnB,uBAAK,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,GAAM,EACnC,uBACC,KAAC,cAAc,IAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAI,GAC3C,KALG,CAAC,CAML,CACL,CAAC,GACK,IACD,CACR,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"ComponentTable.js","sourceRoot":"","sources":["../../lib/pipeline/ComponentTable.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAsB,CAAA;AAMrD,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAuB;IAC5D,OAAO,CACN,iBAAO,SAAS,EAAC,eAAe,aAC/B,0BACC,yBACC,+BAAY,EACZ,iCAAc,EACd,sCAAmB,IACf,GACE,EACR,0BACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,yBACC,uBAAK,IAAI,CAAC,GAAG,GAAM,EACnB,uBAAK,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,GAAM,EACnC,uBACC,KAAC,cAAc,IAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAI,GAC3C,KALG,CAAC,CAML,CACL,CAAC,GACK,IACD,CACR,CAAA;AACF,CAAC"}
@@ -3,8 +3,8 @@
3
3
  * @license AGPL-3.0
4
4
  * @author Teffen Ellis, et al.
5
5
  *
6
- * `ConfidenceCell` — a compact confidence bar + value for the component table. Tiers the fill colour
7
- * at 0.8 / 0.5. Presentational.
6
+ * `ConfidenceCell` — a compact confidence bar + value for the component table. The fill colour follows the shared
7
+ * confidence tiers. Presentational.
8
8
  */
9
9
  export interface ConfidenceCellProps {
10
10
  confidence?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfidenceCell.d.ts","sourceRoot":"","sources":["../../lib/pipeline/ConfidenceCell.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoBH,MAAM,WAAW,mBAAmB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE,mBAAmB,+BAWjE"}
1
+ {"version":3,"file":"ConfidenceCell.d.ts","sourceRoot":"","sources":["../../lib/pipeline/ConfidenceCell.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,mBAAmB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE,mBAAmB,+BAcjE"}
@@ -4,27 +4,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  * @license AGPL-3.0
5
5
  * @author Teffen Ellis, et al.
6
6
  *
7
- * `ConfidenceCell` — a compact confidence bar + value for the component table. Tiers the fill colour
8
- * at 0.8 / 0.5. Presentational.
7
+ * `ConfidenceCell` — a compact confidence bar + value for the component table. The fill colour follows the shared
8
+ * confidence tiers. Presentational.
9
9
  */
10
+ import { confidenceTierOrMid } from "#common/confidence-tiers";
10
11
  import { cx } from "#common/cx";
11
- /**
12
- * At or above this the cell is drawn as high-confidence. Presentation only — see docs/src/shared/confidence-tiers.ts.
13
- */
14
- const HIGH_CONFIDENCE_MIN = 0.8;
15
- /**
16
- * At or above this the cell is drawn as medium-confidence; below it, low.
17
- */
18
- const MID_CONFIDENCE_MIN = 0.5;
19
- function tier(confidence) {
20
- if (confidence == null)
21
- return "mid";
22
- return confidence >= HIGH_CONFIDENCE_MIN ? "high" : confidence >= MID_CONFIDENCE_MIN ? "mid" : "low";
23
- }
24
12
  export function ConfidenceCell({ confidence }) {
25
13
  if (confidence == null)
26
14
  return _jsx("span", { className: "mw-conf__dash", children: "\u2014" });
27
15
  const pct = Math.max(0, Math.min(1, confidence)) * 100;
28
- return (_jsxs("div", { className: "mw-conf", children: [_jsx("div", { className: cx("mw-conf__bar", `mw-conf__bar--${tier(confidence)}`), style: { width: `${pct}%` } }), _jsx("span", { className: "mw-conf__value", children: confidence.toFixed(2) })] }));
16
+ return (_jsxs("div", { className: "mw-conf", children: [_jsx("div", { className: cx("mw-conf__bar", `mw-conf__bar--${confidenceTierOrMid(confidence)}`), style: { width: `${pct}%` } }), _jsx("span", { className: "mw-conf__value", children: confidence.toFixed(2) })] }));
29
17
  }
30
18
  //# sourceMappingURL=ConfidenceCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfidenceCell.js","sourceRoot":"","sources":["../../lib/pipeline/ConfidenceCell.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAE/B;;GAEG;AACH,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B;;GAEG;AACH,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B,SAAS,IAAI,CAAC,UAAmB;IAChC,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,KAAK,CAAA;IAEpC,OAAO,UAAU,IAAI,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AACrG,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,EAAE,UAAU,EAAuB;IACjE,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,eAAM,SAAS,EAAC,eAAe,uBAAS,CAAA;IAEvE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,CAAA;IAEtD,OAAO,CACN,eAAK,SAAS,EAAC,SAAS,aACvB,cAAK,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,iBAAiB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAAI,EACxG,eAAM,SAAS,EAAC,gBAAgB,YAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAQ,IAC1D,CACN,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"ConfidenceCell.js","sourceRoot":"","sources":["../../lib/pipeline/ConfidenceCell.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAM/B,MAAM,UAAU,cAAc,CAAC,EAAE,UAAU,EAAuB;IACjE,IAAI,UAAU,IAAI,IAAI;QAAE,OAAO,eAAM,SAAS,EAAC,eAAe,uBAAS,CAAA;IAEvE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,CAAA;IAEtD,OAAO,CACN,eAAK,SAAS,EAAC,SAAS,aACvB,cACC,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,iBAAiB,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC,EACjF,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAC1B,EACF,eAAM,SAAS,EAAC,gBAAgB,YAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAQ,IAC1D,CACN,CAAA;AACF,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `FailureDiagnostic` — what to say when nothing resolved. It reads the parsed components and names the missing
7
+ * piece a person can add (a city, a state), so the answer is a next step rather than "no hit".
8
+ */
9
+ import type { ParsedComponent } from "@mailwoman/core/pipeline/client-result";
10
+ import type { ReactNode } from "react";
11
+ export interface FailureDiagnosticProps {
12
+ nodes: ParsedComponent[];
13
+ }
14
+ export declare function FailureDiagnostic({ nodes }: FailureDiagnosticProps): ReactNode;
15
+ //# sourceMappingURL=FailureDiagnostic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FailureDiagnostic.d.ts","sourceRoot":"","sources":["../../lib/pipeline/FailureDiagnostic.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,sBAAsB;IACtC,KAAK,EAAE,eAAe,EAAE,CAAA;CACxB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,sBAAsB,GAAG,SAAS,CAuC9E"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function FailureDiagnostic({ nodes }) {
3
+ const hasLocality = nodes.some((n) => n.tag === "locality");
4
+ const hasPostcode = nodes.some((n) => n.tag === "postcode");
5
+ const hasRegion = nodes.some((n) => n.tag === "region");
6
+ const hints = [];
7
+ if (!hasLocality && !hasPostcode) {
8
+ hints.push("The parser found no city or postcode in this input. Try adding one — e.g. append ', Chicago, IL 60613'.");
9
+ }
10
+ if (hasPostcode && !hasLocality) {
11
+ hints.push("Only a postcode was extracted. WOF ships placeholder coordinates (0, 0) for about 22% of US postcodes, and the cascade drops those.");
12
+ }
13
+ if (hasLocality && !hasRegion) {
14
+ hints.push("No state in the parse. US localities share names across states (Springfield, Portland, …); add a state to disambiguate.");
15
+ }
16
+ if (!hints.length) {
17
+ hints.push("The parsed components look reasonable, but the gazetteer does not index this entry.");
18
+ }
19
+ return (_jsxs("div", { className: "mw-failure", children: [_jsx("h2", { children: "No gazetteer hit" }), _jsx("ul", { children: hints.map((hint, i) => (_jsx("li", { children: hint }, i))) })] }));
20
+ }
21
+ //# sourceMappingURL=FailureDiagnostic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FailureDiagnostic.js","sourceRoot":"","sources":["../../lib/pipeline/FailureDiagnostic.tsx"],"names":[],"mappings":";AAgBA,MAAM,UAAU,iBAAiB,CAAC,EAAE,KAAK,EAA0B;IAClE,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAA;IAEvD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CACT,yGAAyG,CACzG,CAAA;IACF,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CACT,qIAAqI,CACrI,CAAA;IACF,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACT,yHAAyH,CACzH,CAAA;IACF,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAA;IAClG,CAAC;IAED,OAAO,CACN,eAAK,SAAS,EAAC,YAAY,aAC1B,4CAAyB,EACzB,uBACE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,uBAAa,IAAI,IAAR,CAAC,CAAa,CACvB,CAAC,GACE,IACA,CACN,CAAA;AACF,CAAC"}
@@ -6,8 +6,8 @@
6
6
  * `ResolvedPlace` — the "Resolved place" detail list (name, placetype, WOF id, coords, score) plus an
7
7
  * optional dual-role note. Presentational.
8
8
  */
9
+ import type { DualRoleView, ResolvedPlaceView } from "@mailwoman/core/pipeline/client-result";
9
10
  import { type ReactNode } from "react";
10
- import type { DualRoleView, ResolvedPlaceView } from "#pipeline/types";
11
11
  export interface ResolvedPlaceProps {
12
12
  place: ResolvedPlaceView;
13
13
  dualRoles?: DualRoleView[];
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvedPlace.d.ts","sourceRoot":"","sources":["../../lib/pipeline/ResolvedPlace.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEtE,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,iBAAiB,CAAA;IACxB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,SAAS,CA+BjF"}
1
+ {"version":3,"file":"ResolvedPlace.d.ts","sourceRoot":"","sources":["../../lib/pipeline/ResolvedPlace.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC7F,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhD,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,iBAAiB,CAAA;IACxB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,kBAAkB,GAAG,SAAS,CA6CjF"}
@@ -1,14 +1,8 @@
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
- * `ResolvedPlace` — the "Resolved place" detail list (name, placetype, WOF id, coords, score) plus an
8
- * optional dual-role note. Presentational.
9
- */
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
10
2
  import { Fragment } from "react";
11
3
  export function ResolvedPlace({ place, dualRoles }) {
12
- return (_jsxs("div", { className: "mw-resolved", children: [_jsx("h2", { children: "Resolved place" }), _jsxs("dl", { children: [_jsx("dt", { children: "name" }), _jsx("dd", { children: place.name }), _jsx("dt", { children: "placetype" }), _jsx("dd", { children: place.placetype }), _jsx("dt", { children: "WOF id" }), _jsx("dd", { children: place.id }), _jsx("dt", { children: "coords" }), _jsxs("dd", { children: [place.lat.toFixed(4), ", ", place.lon.toFixed(4)] }), _jsx("dt", { children: "score" }), _jsx("dd", { children: place.score.toFixed(3) })] }), dualRoles && dualRoles.length ? (_jsxs("p", { className: "mw-resolved__dual", children: ["\uD83C\uDFDB\uFE0F ", _jsx("strong", { children: "Dual-role place." }), " ", place.name, " also resolves as", " ", dualRoles.map((role, i) => (_jsxs(Fragment, { children: [i > 0 ? ", " : "", "a ", _jsx("strong", { children: role.role }), " (", role.relationshipType.replaceAll("-", " "), ")"] }, `${role.role}-${role.id}`))), "."] })) : null] }));
4
+ return (_jsxs("div", { className: "mw-resolved", children: [_jsx("h2", { children: "Resolved place" }), _jsxs("dl", { children: [_jsx("dt", { children: "name" }), _jsx("dd", { children: place.name }), _jsx("dt", { children: "placetype" }), _jsx("dd", { children: place.placetype }), place.tier ? (_jsxs(_Fragment, { children: [_jsx("dt", { children: "precision" }), _jsx("dd", { children: place.tier === "address_point"
5
+ ? "📍 exact address point (≤10 m)"
6
+ : `≈ interpolated · ±${place.uncertaintyM ?? "?"} m` })] })) : (_jsxs(_Fragment, { children: [_jsx("dt", { children: "WOF id" }), _jsx("dd", { children: place.id })] })), _jsx("dt", { children: "coords" }), _jsxs("dd", { children: [place.lat.toFixed(4), ", ", place.lon.toFixed(4)] }), _jsx("dt", { children: "score" }), _jsx("dd", { children: place.score.toFixed(3) })] }), dualRoles && dualRoles.length ? (_jsxs("p", { className: "mw-resolved__dual", children: ["\uD83C\uDFDB\uFE0F ", _jsx("strong", { children: "Dual-role place." }), " ", place.name, " also resolves as", " ", dualRoles.map((role, i) => (_jsxs(Fragment, { children: [i > 0 ? ", " : "", "a ", _jsx("strong", { children: role.role }), " (", role.relationshipType.replaceAll("-", " "), ")"] }, `${role.role}-${role.id}`))), "."] })) : null] }));
13
7
  }
14
8
  //# sourceMappingURL=ResolvedPlace.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResolvedPlace.js","sourceRoot":"","sources":["../../lib/pipeline/ResolvedPlace.tsx"],"names":[],"mappings":";AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAShD,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAsB;IACrE,OAAO,CACN,eAAK,SAAS,EAAC,aAAa,aAC3B,0CAAuB,EACvB,yBACC,gCAAa,EACb,uBAAK,KAAK,CAAC,IAAI,GAAM,EACrB,qCAAkB,EAClB,uBAAK,KAAK,CAAC,SAAS,GAAM,EAC1B,kCAAe,EACf,uBAAK,KAAK,CAAC,EAAE,GAAM,EACnB,kCAAe,EACf,yBACE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IACzC,EACL,iCAAc,EACd,uBAAK,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAM,IAC7B,EACJ,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAChC,aAAG,SAAS,EAAC,mBAAmB,oCAC3B,gDAAiC,OAAE,KAAK,CAAC,IAAI,uBAAmB,GAAG,EACtE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,MAAC,QAAQ,eACP,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAG,2BAAS,IAAI,CAAC,IAAI,GAAU,QAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,UADhF,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAE7B,CACX,CAAC,SAEC,CACJ,CAAC,CAAC,CAAC,IAAI,IACH,CACN,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"ResolvedPlace.js","sourceRoot":"","sources":["../../lib/pipeline/ResolvedPlace.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AAOhD,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAsB;IACrE,OAAO,CACN,eAAK,SAAS,EAAC,aAAa,aAC3B,0CAAuB,EACvB,yBACC,gCAAa,EACb,uBAAK,KAAK,CAAC,IAAI,GAAM,EACrB,qCAAkB,EAClB,uBAAK,KAAK,CAAC,SAAS,GAAM,EACzB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAEb,8BACC,qCAAkB,EAClB,uBACE,KAAK,CAAC,IAAI,KAAK,eAAe;oCAC9B,CAAC,CAAC,gCAAgC;oCAClC,CAAC,CAAC,qBAAqB,KAAK,CAAC,YAAY,IAAI,GAAG,IAAI,GACjD,IACH,CACH,CAAC,CAAC,CAAC,CACH,8BACC,kCAAe,EACf,uBAAK,KAAK,CAAC,EAAE,GAAM,IACjB,CACH,EACD,kCAAe,EACf,yBACE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IACzC,EACL,iCAAc,EACd,uBAAK,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAM,IAC7B,EACJ,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAChC,aAAG,SAAS,EAAC,mBAAmB,oCAC3B,gDAAiC,OAAE,KAAK,CAAC,IAAI,uBAAmB,GAAG,EACtE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,MAAC,QAAQ,eACP,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAG,2BAAS,IAAI,CAAC,IAAI,GAAU,QAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,UADhF,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAE7B,CACX,CAAC,SAEC,CACJ,CAAC,CAAC,CAAC,IAAI,IACH,CACN,CAAA;AACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `SpanHighlight` — a displaCy-style span ribbon over the raw input: each tagged span is a column with the text on
7
+ * top, tinted by its confidence tier, and the tag beneath. Gaps (delimiters, unparsed characters) fall through as
8
+ * plain text, so a dropped span is visible as a literal break in the colour.
9
+ */
10
+ import type { ParsedComponent } from "@mailwoman/core/pipeline/client-result";
11
+ import type { ReactNode } from "react";
12
+ export interface SpanHighlightProps {
13
+ /**
14
+ * The raw text handed to the parser — `nodes[].start/end` index into this.
15
+ */
16
+ input: string;
17
+ /**
18
+ * Flattened parse nodes; only those with numeric `start`/`end` are rendered.
19
+ */
20
+ nodes: ParsedComponent[];
21
+ }
22
+ export declare function SpanHighlight({ input, nodes }: SpanHighlightProps): ReactNode;
23
+ //# sourceMappingURL=SpanHighlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpanHighlight.d.ts","sourceRoot":"","sources":["../../lib/pipeline/SpanHighlight.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKtC,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,KAAK,EAAE,eAAe,EAAE,CAAA;CACxB;AASD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAAG,SAAS,CA8D7E"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { confidenceTierOrMid } from "#common/confidence-tiers";
3
+ import { shortestSpanOwners } from "#common/text-tokens";
4
+ export function SpanHighlight({ input, nodes }) {
5
+ if (!input)
6
+ return null;
7
+ // Keep only well-formed spans that index into the input.
8
+ const spans = nodes.filter((n) => typeof n.start === "number" &&
9
+ typeof n.end === "number" &&
10
+ n.start >= 0 &&
11
+ n.end > n.start &&
12
+ n.end <= input.length);
13
+ if (!spans.length)
14
+ return null;
15
+ // Per-character owner: the most specific (shortest) span covering it, the same rule the word-level panels apply
16
+ // per word. The leaf always wins whatever nesting the tree hands over, so every character renders once.
17
+ const characters = Array.from({ length: input.length }, (_, i) => ({ start: i, end: i + 1 }));
18
+ const owner = shortestSpanOwners(characters, spans);
19
+ // Coalesce runs of the same owner into segments.
20
+ const segments = [];
21
+ let from = 0;
22
+ for (let i = 1; i <= input.length; i++) {
23
+ if (i === input.length || owner[i] !== owner[from]) {
24
+ const ownerIndex = owner[from] ?? -1;
25
+ segments.push({ text: input.slice(from, i), node: ownerIndex === -1 ? null : (spans[ownerIndex] ?? null) });
26
+ from = i;
27
+ }
28
+ }
29
+ return (_jsxs("div", { className: "mw-spans", children: [_jsxs("div", { className: "mw-spans__legend", children: [_jsx("span", { children: "confidence" }), _jsx("span", { className: "mw-spans__swatch mw-spans__swatch--low" }), " low", _jsx("span", { className: "mw-spans__swatch mw-spans__swatch--mid" }), " mid", _jsx("span", { className: "mw-spans__swatch mw-spans__swatch--high" }), " high"] }), _jsx("div", { className: "mw-spans__track", children: segments.map((seg, i) => seg.node ? (_jsxs("span", { className: `mw-spans__seg mw-spans__seg--${confidenceTierOrMid(seg.node.confidence)}`, title: `${seg.node.tag}${seg.node.confidence != null ? ` · ${seg.node.confidence.toFixed(2)}` : ""}`, children: [_jsx("span", { className: "mw-spans__text", children: seg.text }), _jsx("span", { className: "mw-spans__tag", children: seg.node.tag })] }, i)) : (_jsx("span", { className: "mw-spans__gap", children: seg.text }, i))) })] }));
30
+ }
31
+ //# sourceMappingURL=SpanHighlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpanHighlight.js","sourceRoot":"","sources":["../../lib/pipeline/SpanHighlight.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `TimingPanel` — the per-stage timing breakdown: a stacked bar sized by each stage's wall-clock, plus a legend.
7
+ * Stage colours are distinct hues, never the confidence red/amber/green, because they encode the pipeline stage and
8
+ * not quality.
9
+ */
10
+ import type { StageTiming } from "@mailwoman/core/pipeline/client-result";
11
+ import type { ReactNode } from "react";
12
+ export interface TimingPanelProps {
13
+ timing: StageTiming;
14
+ }
15
+ export declare function TimingPanel({ timing }: TimingPanelProps): ReactNode;
16
+ //# sourceMappingURL=TimingPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimingPanel.d.ts","sourceRoot":"","sources":["../../lib/pipeline/TimingPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,WAAW,CAAA;CACnB;AAYD,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,SAAS,CAqCnE"}
@@ -0,0 +1,20 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ const STAGES = [
3
+ { key: "shape", label: "shape + kind" },
4
+ { key: "classify", label: "classify" },
5
+ { key: "resolve", label: "resolve" },
6
+ ];
7
+ function formatMilliseconds(ms) {
8
+ return ms >= 100 ? `${Math.round(ms)} ms` : `${ms.toFixed(1)} ms`;
9
+ }
10
+ export function TimingPanel({ timing }) {
11
+ const present = STAGES.flatMap((stage) => {
12
+ const ms = timing[stage.key];
13
+ return typeof ms === "number" ? [{ ...stage, ms }] : [];
14
+ });
15
+ const total = present.reduce((sum, stage) => sum + stage.ms, 0);
16
+ if (total <= 0)
17
+ return null;
18
+ return (_jsxs("div", { className: "mw-timing", children: [_jsxs("div", { className: "mw-timing__heading", children: ["Timing ", _jsxs("span", { className: "mw-timing__total", children: [formatMilliseconds(total), " total"] })] }), _jsx("div", { className: "mw-timing__bar", children: present.map((stage) => (_jsx("div", { className: `mw-timing__seg mw-timing__seg--${stage.key}`, style: { width: `${Math.max((stage.ms / total) * 100, 1.5)}%` }, title: `${stage.label}: ${formatMilliseconds(stage.ms)}` }, stage.key))) }), _jsx("div", { className: "mw-timing__legend", children: present.map((stage) => (_jsxs("span", { className: "mw-timing__item", children: [_jsx("span", { className: `mw-timing__swatch mw-timing__seg--${stage.key}` }), stage.label, " ", _jsx("span", { className: "mw-timing__ms", children: formatMilliseconds(stage.ms) })] }, stage.key))) })] }));
19
+ }
20
+ //# sourceMappingURL=TimingPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimingPanel.js","sourceRoot":"","sources":["../../lib/pipeline/TimingPanel.tsx"],"names":[],"mappings":";AAiBA,MAAM,MAAM,GAA6D;IACxE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE;IACvC,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACtC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;CACpC,CAAA;AAED,SAAS,kBAAkB,CAAC,EAAU;IACrC,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,MAAM,EAAoB;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE5B,OAAO,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAE/D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAE3B,OAAO,CACN,eAAK,SAAS,EAAC,WAAW,aACzB,eAAK,SAAS,EAAC,oBAAoB,wBAC3B,gBAAM,SAAS,EAAC,kBAAkB,aAAE,kBAAkB,CAAC,KAAK,CAAC,cAAc,IAC7E,EACN,cAAK,SAAS,EAAC,gBAAgB,YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAEvB,cAEC,SAAS,EAAE,kCAAkC,KAAK,CAAC,GAAG,EAAE,EACxD,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAC/D,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAHnD,KAAK,CAAC,GAAG,CAIb,CACF,CAAC,GACG,EACN,cAAK,SAAS,EAAC,mBAAmB,YAChC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACvB,gBAAsB,SAAS,EAAC,iBAAiB,aAChD,eAAM,SAAS,EAAE,qCAAqC,KAAK,CAAC,GAAG,EAAE,GAAI,EACpE,KAAK,CAAC,KAAK,OAAE,eAAM,SAAS,EAAC,eAAe,YAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAQ,KAFzE,KAAK,CAAC,GAAG,CAGb,CACP,CAAC,GACG,IACD,CACN,CAAA;AACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ *
6
+ * `TreeView` — the parse's containment tree as nested lists with a guide rail per level. The tag tint follows the
7
+ * confidence tier; the value and score render in monospace.
8
+ */
9
+ import type { ReactNode } from "react";
10
+ export interface TreeViewProps {
11
+ /**
12
+ * The parser's `AddressTree` (`result.tree`): the view reads `.roots` and recurses `.children`.
13
+ */
14
+ tree: unknown;
15
+ }
16
+ export declare function TreeView({ tree }: TreeViewProps): ReactNode;
17
+ //# sourceMappingURL=TreeView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../lib/pipeline/TreeView.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAWtC,MAAM,WAAW,aAAa;IAC7B;;OAEG;IACH,IAAI,EAAE,OAAO,CAAA;CACb;AAuBD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,aAAa,GAAG,SAAS,CAM3D"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { confidenceTierOrMid } from "#common/confidence-tiers";
3
+ function renderNode(node, path) {
4
+ if (typeof node.tag !== "string")
5
+ return null;
6
+ const kids = Array.isArray(node.children) ? node.children : [];
7
+ return (_jsxs("li", { className: "mw-tree__node", children: [_jsxs("span", { className: "mw-tree__row", children: [_jsx("span", { className: `mw-tree__tag mw-tree__tag--${confidenceTierOrMid(node.confidence)}`, children: node.tag }), node.value != null && String(node.value) !== "" ? (_jsx("span", { className: "mw-tree__value", children: String(node.value) })) : null, typeof node.confidence === "number" ? (_jsx("span", { className: "mw-tree__conf", children: node.confidence.toFixed(2) })) : null] }), kids.length ? _jsx("ul", { className: "mw-tree__children", children: kids.map((c, i) => renderNode(c, `${path}.${i}`)) }) : null] }, path));
8
+ }
9
+ export function TreeView({ tree }) {
10
+ const roots = tree?.roots;
11
+ if (!Array.isArray(roots) || !roots.length)
12
+ return null;
13
+ return _jsx("ul", { className: "mw-tree mw-tree__children", children: roots.map((n, i) => renderNode(n, String(i))) });
14
+ }
15
+ //# sourceMappingURL=TreeView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.js","sourceRoot":"","sources":["../../lib/pipeline/TreeView.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAgB9D,SAAS,UAAU,CAAC,IAAc,EAAE,IAAY;IAC/C,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE7C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAE9D,OAAO,CACN,cAAe,SAAS,EAAC,eAAe,aACvC,gBAAM,SAAS,EAAC,cAAc,aAC7B,eAAM,SAAS,EAAE,8BAA8B,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAG,IAAI,CAAC,GAAG,GAAQ,EACvG,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAClD,eAAM,SAAS,EAAC,gBAAgB,YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAQ,CAC5D,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CACtC,eAAM,SAAS,EAAC,eAAe,YAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAQ,CACnE,CAAC,CAAC,CAAC,IAAI,IACF,EACN,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,aAAI,SAAS,EAAC,mBAAmB,YAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,GAAM,CAAC,CAAC,CAAC,IAAI,KAVxG,IAAI,CAWR,CACL,CAAA;AACF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAiB;IAC/C,MAAM,KAAK,GAAI,IAAiD,EAAE,KAAK,CAAA;IAEvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAEvD,OAAO,aAAI,SAAS,EAAC,2BAA2B,YAAG,KAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAM,CAAA;AACtH,CAAC"}
@@ -6,6 +6,6 @@
6
6
  * Builds the "Copy JSON" payload for a parse result — the components + the selected resolved place,
7
7
  * pretty-printed. Pure; shared by the explorer's copy button.
8
8
  */
9
- import type { ParseResult, ResolvedPlaceView } from "#pipeline/types";
9
+ import type { ParseResult, ResolvedPlaceView } from "@mailwoman/core/pipeline/client-result";
10
10
  export declare function buildParsePayload(result: ParseResult, selected: ResolvedPlaceView | null): string;
11
11
  //# sourceMappingURL=copy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../lib/pipeline/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAErE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAyBjG"}
1
+ {"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../lib/pipeline/copy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE5F,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAyBjG"}
@@ -5,77 +5,11 @@
5
5
  *
6
6
  * Types for the pipeline (parse + resolve) explorer. The model/gazetteer runtime is INJECTED as a
7
7
  * {@link PipelineRuntime}: this package owns the UI state machine + presentation, while the host
8
- * (the docs site's DemoEmbed, or any app) owns loading ONNX/WOF and executing a parse. That keeps
8
+ * (the docs site's RuntimeEmbed, or any app) owns loading ONNX/WOF and executing a parse. That keeps
9
9
  * onnxruntime-web, sql.js-httpvfs, and node builtins entirely out of this package's browser graph.
10
10
  */
11
+ import type { ParseResult } from "@mailwoman/core/pipeline/client-result";
11
12
  import type { ReactNode } from "react";
12
- import type { KindBadgeResult } from "../common/KindBadge.tsx";
13
- /**
14
- * One decoded component, as the table + span views render it. Offsets index into `ParseResult.input`.
15
- */
16
- export interface ParsedComponent {
17
- tag: string;
18
- value?: unknown;
19
- confidence?: number;
20
- start?: number;
21
- end?: number;
22
- }
23
- /**
24
- * A resolved gazetteer place, projected to what the "Resolved place" panel + copy payload need.
25
- */
26
- export interface ResolvedPlaceView {
27
- id: number;
28
- name: string;
29
- placetype: string;
30
- lat: number;
31
- lon: number;
32
- score: number;
33
- }
34
- /**
35
- * An additional admin role a resolved place also fulfils (the dual-role / city-state relation, #402).
36
- */
37
- export interface DualRoleView {
38
- id: number;
39
- name: string;
40
- placetype: string;
41
- relationshipType: string;
42
- role: string;
43
- }
44
- /**
45
- * Per-stage wall-clock (ms) for one parse. `resolve` is absent when the lookup is skipped.
46
- */
47
- export interface StageTiming {
48
- shape: number;
49
- classify: number;
50
- resolve?: number;
51
- }
52
- /**
53
- * FST gazetteer-prior provenance, as the "FST prior" disclosure renders it.
54
- */
55
- export interface FSTProvenance {
56
- builtAt: string;
57
- stateCount: number;
58
- placeCount: number;
59
- importanceMatches: number;
60
- }
61
- /**
62
- * The presentational projection of one parse+resolve. The host's `runParse` produces it.
63
- */
64
- export interface ParseResult {
65
- input: string;
66
- /**
67
- * Opaque hierarchy — handed straight to a host-injected tree/visualizer panel.
68
- */
69
- tree: unknown;
70
- nodes: ParsedComponent[];
71
- kindResult?: KindBadgeResult;
72
- timing?: StageTiming;
73
- resolved: ResolvedPlaceView | null;
74
- candidates: ResolvedPlaceView[];
75
- fstActive: boolean;
76
- fstProvenance?: FSTProvenance | null;
77
- dualRoles?: DualRoleView[];
78
- }
79
13
  /**
80
14
  * Bundle-load progress surfaced before the runtime is `ready`.
81
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/pipeline/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,eAAe,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAClC,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IACpC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9F;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACrC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAAA;IAC3C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAAA;CAC5C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/pipeline/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;IACd;;OAEG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9F;;OAEG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B;;OAEG;IACH,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACrC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;OAEG;IACH,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B;;OAEG;IACH,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAAA;IAC3C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAAA;CAC5C"}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * Types for the pipeline (parse + resolve) explorer. The model/gazetteer runtime is INJECTED as a
7
7
  * {@link PipelineRuntime}: this package owns the UI state machine + presentation, while the host
8
- * (the docs site's DemoEmbed, or any app) owns loading ONNX/WOF and executing a parse. That keeps
8
+ * (the docs site's RuntimeEmbed, or any app) owns loading ONNX/WOF and executing a parse. That keeps
9
9
  * onnxruntime-web, sql.js-httpvfs, and node builtins entirely out of this package's browser graph.
10
10
  */
11
11
  export {};
@@ -8,7 +8,8 @@
8
8
  * to the injected {@link PipelineRuntime}. No model or gazetteer code lives here — it just drives the
9
9
  * contract and shapes the UI state.
10
10
  */
11
- import type { ParseResult, PipelineRuntime, ResolvedPlaceView } from "#pipeline/types";
11
+ import type { ParseResult, ResolvedPlaceView } from "@mailwoman/core/pipeline/client-result";
12
+ import type { PipelineRuntime } from "#pipeline/types";
12
13
  export interface UseParsePipelineOptions {
13
14
  runtime: PipelineRuntime;
14
15
  defaultText: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useParsePipeline.d.ts","sourceRoot":"","sources":["../../lib/pipeline/useParsePipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEtF,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,eAAe,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,IAAI,EAAE,OAAO,CAAA;IACb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;CACjB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,uBAAuB,GAAG,gBAAgB,CA6CpG"}
1
+ {"version":3,"file":"useParsePipeline.d.ts","sourceRoot":"","sources":["../../lib/pipeline/useParsePipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAG5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,eAAe,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/B,IAAI,EAAE,OAAO,CAAA;IACb;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;;OAEG;IACH,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC3C;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;CACjB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,uBAAuB,GAAG,gBAAgB,CA6CpG"}
@@ -1 +1 @@
1
- {"version":3,"file":"useParsePipeline.js","sourceRoot":"","sources":["../../lib/pipeline/useParsePipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAmC7C,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAW,EAA2B;IACjF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAA;IAC9D,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEjE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI;YAAE,OAAM;QAElC,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,aAAa,CAAC,CAAC,CAAC,CAAA;QAChB,aAAa,CAAC,IAAI,CAAC,CAAA;QAEnB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;YACvE,yBAAyB,CAAC,CAAC,CAAC,CAAA;YAC5B,SAAS,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACtE,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,CAAA;YACd,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;IACF,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAEzB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAEpD,4CAA4C;IAC5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAErH,OAAO;QACN,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,UAAU;QACV,MAAM;QACN,UAAU;QACV,sBAAsB;QACtB,eAAe,EAAE,yBAAyB;QAC1C,iBAAiB;QACjB,MAAM;QACN,KAAK;KACL,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"useParsePipeline.js","sourceRoot":"","sources":["../../lib/pipeline/useParsePipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAmC7C,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,WAAW,EAA2B;IACjF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAA;IAC9D,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAEjE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI;YAAE,OAAM;QAElC,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,aAAa,CAAC,CAAC,CAAC,CAAA;QAChB,aAAa,CAAC,IAAI,CAAC,CAAA;QAEnB,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;YACvE,yBAAyB,CAAC,CAAC,CAAC,CAAA;YAC5B,SAAS,CAAC,MAAM,CAAC,CAAA;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,aAAa,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACtE,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,CAAA;YACd,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;IACF,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAEzB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAEpD,4CAA4C;IAC5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAErH,OAAO;QACN,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,UAAU;QACV,MAAM;QACN,UAAU;QACV,sBAAsB;QACtB,eAAe,EAAE,yBAAyB;QAC1C,iBAAiB;QACjB,MAAM;QACN,KAAK;KACL,CAAA;AACF,CAAC"}