@react-x11/components 0.4.0 → 0.6.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 (248) hide show
  1. package/README.md +143 -8
  2. package/dist/charts/components.d.ts +3 -1
  3. package/dist/charts/components.d.ts.map +1 -1
  4. package/dist/charts/components.js +8 -4
  5. package/dist/charts/components.js.map +1 -1
  6. package/dist/charts/node.d.ts +13 -6
  7. package/dist/charts/node.d.ts.map +1 -1
  8. package/dist/charts/node.js +75 -24
  9. package/dist/charts/node.js.map +1 -1
  10. package/dist/charts/render.d.ts +4 -0
  11. package/dist/charts/render.d.ts.map +1 -1
  12. package/dist/charts/render.js +11 -6
  13. package/dist/charts/render.js.map +1 -1
  14. package/dist/code-editor/node.d.ts +47 -16
  15. package/dist/code-editor/node.d.ts.map +1 -1
  16. package/dist/code-editor/node.js +121 -51
  17. package/dist/code-editor/node.js.map +1 -1
  18. package/dist/flow/draw.d.ts +19 -1
  19. package/dist/flow/draw.d.ts.map +1 -1
  20. package/dist/flow/draw.js +64 -35
  21. package/dist/flow/draw.js.map +1 -1
  22. package/dist/flow/index.d.ts.map +1 -1
  23. package/dist/flow/index.js +24 -8
  24. package/dist/flow/index.js.map +1 -1
  25. package/dist/flow/model.d.ts +4 -2
  26. package/dist/flow/model.d.ts.map +1 -1
  27. package/dist/flow/model.js +4 -2
  28. package/dist/flow/model.js.map +1 -1
  29. package/dist/flow/node.d.ts +40 -9
  30. package/dist/flow/node.d.ts.map +1 -1
  31. package/dist/flow/node.js +142 -53
  32. package/dist/flow/node.js.map +1 -1
  33. package/dist/flow/types.d.ts +46 -21
  34. package/dist/flow/types.d.ts.map +1 -1
  35. package/dist/formula/index.d.ts +4 -2
  36. package/dist/formula/index.d.ts.map +1 -1
  37. package/dist/formula/index.js.map +1 -1
  38. package/dist/formula/node.d.ts +5 -1
  39. package/dist/formula/node.d.ts.map +1 -1
  40. package/dist/formula/node.js +19 -3
  41. package/dist/formula/node.js.map +1 -1
  42. package/dist/html/controls.d.ts +4 -1
  43. package/dist/html/controls.d.ts.map +1 -1
  44. package/dist/html/controls.js.map +1 -1
  45. package/dist/html/css/cascade.d.ts +11 -5
  46. package/dist/html/css/cascade.d.ts.map +1 -1
  47. package/dist/html/css/cascade.js +18 -8
  48. package/dist/html/css/cascade.js.map +1 -1
  49. package/dist/html/css/parse.d.ts +15 -10
  50. package/dist/html/css/parse.d.ts.map +1 -1
  51. package/dist/html/css/parse.js +41 -16
  52. package/dist/html/css/parse.js.map +1 -1
  53. package/dist/html/css/style.d.ts +3 -0
  54. package/dist/html/css/style.d.ts.map +1 -1
  55. package/dist/html/css/style.js +3 -1
  56. package/dist/html/css/style.js.map +1 -1
  57. package/dist/html/css/values.d.ts +14 -1
  58. package/dist/html/css/values.d.ts.map +1 -1
  59. package/dist/html/css/values.js +11 -8
  60. package/dist/html/css/values.js.map +1 -1
  61. package/dist/html/index.d.ts.map +1 -1
  62. package/dist/html/index.js +1 -0
  63. package/dist/html/index.js.map +1 -1
  64. package/dist/html/layout/boxes.d.ts +12 -5
  65. package/dist/html/layout/boxes.d.ts.map +1 -1
  66. package/dist/html/layout/boxes.js +7 -4
  67. package/dist/html/layout/boxes.js.map +1 -1
  68. package/dist/html/layout/inline.d.ts.map +1 -1
  69. package/dist/html/layout/inline.js +22 -1
  70. package/dist/html/layout/inline.js.map +1 -1
  71. package/dist/html/node.d.ts +22 -8
  72. package/dist/html/node.d.ts.map +1 -1
  73. package/dist/html/node.js +97 -15
  74. package/dist/html/node.js.map +1 -1
  75. package/dist/html/paint.d.ts +3 -0
  76. package/dist/html/paint.d.ts.map +1 -1
  77. package/dist/html/paint.js +2 -2
  78. package/dist/html/paint.js.map +1 -1
  79. package/dist/index.d.ts +8 -2
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +21 -0
  82. package/dist/index.js.map +1 -1
  83. package/dist/maps/clip.d.ts +43 -0
  84. package/dist/maps/clip.d.ts.map +1 -0
  85. package/dist/maps/clip.js +171 -0
  86. package/dist/maps/clip.js.map +1 -0
  87. package/dist/maps/gzip.d.ts +15 -0
  88. package/dist/maps/gzip.d.ts.map +1 -0
  89. package/dist/maps/gzip.js +56 -0
  90. package/dist/maps/gzip.js.map +1 -0
  91. package/dist/maps/index.d.ts +55 -0
  92. package/dist/maps/index.d.ts.map +1 -0
  93. package/dist/maps/index.js +141 -0
  94. package/dist/maps/index.js.map +1 -0
  95. package/dist/maps/labels.d.ts +123 -0
  96. package/dist/maps/labels.d.ts.map +1 -0
  97. package/dist/maps/labels.js +323 -0
  98. package/dist/maps/labels.js.map +1 -0
  99. package/dist/maps/mvt.d.ts +244 -0
  100. package/dist/maps/mvt.d.ts.map +1 -0
  101. package/dist/maps/mvt.js +820 -0
  102. package/dist/maps/mvt.js.map +1 -0
  103. package/dist/maps/node.d.ts +278 -0
  104. package/dist/maps/node.d.ts.map +1 -0
  105. package/dist/maps/node.js +1459 -0
  106. package/dist/maps/node.js.map +1 -0
  107. package/dist/maps/overlay.d.ts +157 -0
  108. package/dist/maps/overlay.d.ts.map +1 -0
  109. package/dist/maps/overlay.js +472 -0
  110. package/dist/maps/overlay.js.map +1 -0
  111. package/dist/maps/paint.d.ts +226 -0
  112. package/dist/maps/paint.d.ts.map +1 -0
  113. package/dist/maps/paint.js +705 -0
  114. package/dist/maps/paint.js.map +1 -0
  115. package/dist/maps/proj.d.ts +281 -0
  116. package/dist/maps/proj.d.ts.map +1 -0
  117. package/dist/maps/proj.js +451 -0
  118. package/dist/maps/proj.js.map +1 -0
  119. package/dist/maps/sources.d.ts +256 -0
  120. package/dist/maps/sources.d.ts.map +1 -0
  121. package/dist/maps/sources.js +210 -0
  122. package/dist/maps/sources.js.map +1 -0
  123. package/dist/maps/style.d.ts +141 -0
  124. package/dist/maps/style.d.ts.map +1 -0
  125. package/dist/maps/style.js +147 -0
  126. package/dist/maps/style.js.map +1 -0
  127. package/dist/maps/styles.d.ts +82 -0
  128. package/dist/maps/styles.d.ts.map +1 -0
  129. package/dist/maps/styles.js +898 -0
  130. package/dist/maps/styles.js.map +1 -0
  131. package/dist/maps/tiles.d.ts +283 -0
  132. package/dist/maps/tiles.d.ts.map +1 -0
  133. package/dist/maps/tiles.js +469 -0
  134. package/dist/maps/tiles.js.map +1 -0
  135. package/dist/maps/types.d.ts +244 -0
  136. package/dist/maps/types.d.ts.map +1 -0
  137. package/dist/maps/types.js +2 -0
  138. package/dist/maps/types.js.map +1 -0
  139. package/dist/markdown/ast.d.ts +80 -6
  140. package/dist/markdown/ast.d.ts.map +1 -1
  141. package/dist/markdown/ast.js +13 -4
  142. package/dist/markdown/ast.js.map +1 -1
  143. package/dist/markdown/expressions.d.ts +27 -0
  144. package/dist/markdown/expressions.d.ts.map +1 -0
  145. package/dist/markdown/expressions.js +203 -0
  146. package/dist/markdown/expressions.js.map +1 -0
  147. package/dist/markdown/index.d.ts +61 -2
  148. package/dist/markdown/index.d.ts.map +1 -1
  149. package/dist/markdown/index.js +101 -2
  150. package/dist/markdown/index.js.map +1 -1
  151. package/dist/markdown/parse.d.ts +1 -1
  152. package/dist/markdown/parse.d.ts.map +1 -1
  153. package/dist/markdown/parse.js +163 -15
  154. package/dist/markdown/parse.js.map +1 -1
  155. package/dist/markdown/spans.d.ts.map +1 -1
  156. package/dist/markdown/spans.js +4 -0
  157. package/dist/markdown/spans.js.map +1 -1
  158. package/dist/markdown/tags.d.ts +35 -0
  159. package/dist/markdown/tags.d.ts.map +1 -0
  160. package/dist/markdown/tags.js +213 -0
  161. package/dist/markdown/tags.js.map +1 -0
  162. package/dist/reorder/hx.d.ts +18 -0
  163. package/dist/reorder/hx.d.ts.map +1 -0
  164. package/dist/reorder/hx.js +10 -0
  165. package/dist/reorder/hx.js.map +1 -0
  166. package/dist/reorder/index.d.ts +314 -0
  167. package/dist/reorder/index.d.ts.map +1 -0
  168. package/dist/reorder/index.js +1539 -0
  169. package/dist/reorder/index.js.map +1 -0
  170. package/dist/reorder/model.d.ts +107 -0
  171. package/dist/reorder/model.d.ts.map +1 -0
  172. package/dist/reorder/model.js +162 -0
  173. package/dist/reorder/model.js.map +1 -0
  174. package/dist/richtext/node.d.ts +15 -5
  175. package/dist/richtext/node.d.ts.map +1 -1
  176. package/dist/richtext/node.js +40 -11
  177. package/dist/richtext/node.js.map +1 -1
  178. package/dist/richtext/runs.d.ts +35 -13
  179. package/dist/richtext/runs.d.ts.map +1 -1
  180. package/dist/richtext/runs.js +83 -27
  181. package/dist/richtext/runs.js.map +1 -1
  182. package/dist/tabs/index.d.ts +17 -0
  183. package/dist/tabs/index.d.ts.map +1 -1
  184. package/dist/tabs/index.js +849 -186
  185. package/dist/tabs/index.js.map +1 -1
  186. package/dist/terminal/vt/fonts.d.ts +45 -15
  187. package/dist/terminal/vt/fonts.d.ts.map +1 -1
  188. package/dist/terminal/vt/fonts.js +89 -19
  189. package/dist/terminal/vt/fonts.js.map +1 -1
  190. package/dist/terminal/vt/node.d.ts +42 -0
  191. package/dist/terminal/vt/node.d.ts.map +1 -1
  192. package/dist/terminal/vt/node.js +95 -11
  193. package/dist/terminal/vt/node.js.map +1 -1
  194. package/dist/terminal/vt/renderer.d.ts.map +1 -1
  195. package/dist/terminal/vt/renderer.js +13 -3
  196. package/dist/terminal/vt/renderer.js.map +1 -1
  197. package/package.json +14 -3
  198. package/src/charts/components.ts +14 -7
  199. package/src/charts/node.ts +81 -26
  200. package/src/charts/render.ts +16 -6
  201. package/src/code-editor/node.ts +147 -53
  202. package/src/flow/draw.ts +104 -35
  203. package/src/flow/index.ts +33 -13
  204. package/src/flow/model.ts +4 -2
  205. package/src/flow/node.ts +158 -59
  206. package/src/flow/types.ts +46 -21
  207. package/src/formula/index.ts +4 -2
  208. package/src/formula/node.ts +24 -5
  209. package/src/html/controls.ts +4 -1
  210. package/src/html/css/cascade.ts +18 -7
  211. package/src/html/css/parse.ts +46 -21
  212. package/src/html/css/style.ts +6 -1
  213. package/src/html/css/values.ts +25 -9
  214. package/src/html/index.ts +1 -0
  215. package/src/html/layout/boxes.ts +19 -9
  216. package/src/html/layout/inline.ts +23 -1
  217. package/src/html/node.ts +110 -17
  218. package/src/html/paint.ts +17 -2
  219. package/src/index.ts +102 -0
  220. package/src/maps/clip.ts +184 -0
  221. package/src/maps/gzip.ts +66 -0
  222. package/src/maps/index.ts +316 -0
  223. package/src/maps/labels.ts +442 -0
  224. package/src/maps/mvt.ts +857 -0
  225. package/src/maps/node.ts +1819 -0
  226. package/src/maps/overlay.ts +639 -0
  227. package/src/maps/paint.ts +978 -0
  228. package/src/maps/proj.ts +641 -0
  229. package/src/maps/sources.ts +425 -0
  230. package/src/maps/style.ts +309 -0
  231. package/src/maps/styles.ts +1040 -0
  232. package/src/maps/tiles.ts +676 -0
  233. package/src/maps/types.ts +260 -0
  234. package/src/markdown/ast.ts +85 -9
  235. package/src/markdown/expressions.ts +223 -0
  236. package/src/markdown/index.ts +190 -5
  237. package/src/markdown/parse.ts +230 -15
  238. package/src/markdown/spans.ts +4 -0
  239. package/src/markdown/tags.ts +240 -0
  240. package/src/reorder/hx.ts +31 -0
  241. package/src/reorder/index.ts +2223 -0
  242. package/src/reorder/model.ts +232 -0
  243. package/src/richtext/node.ts +49 -14
  244. package/src/richtext/runs.ts +115 -30
  245. package/src/tabs/index.ts +1040 -204
  246. package/src/terminal/vt/fonts.ts +128 -36
  247. package/src/terminal/vt/node.ts +105 -12
  248. package/src/terminal/vt/renderer.ts +13 -3
package/README.md CHANGED
@@ -125,8 +125,10 @@ import type { CodeEditorProps } from '@react-x11/components';
125
125
  | `CodeEditor` | `@react-x11/components/code-editor` | Multiline code editing: highlighting, completion. |
126
126
  | `Flow` | `@react-x11/components/flow` | A directed-graph editor: nodes, edges, pan and zoom. |
127
127
  | `Html` | `@react-x11/components/html` | A static HTML + CSS document, selectable, with seams. |
128
+ | `Map` | `@react-x11/components/maps` | A 2D vector-tile map: pan, zoom, markers, overlays. |
128
129
  | `Markdown` | `@react-x11/components/markdown` | Streaming-friendly GFM with cross-block selection. |
129
130
  | `MediaPlayer` | `@react-x11/components/media-player` | mpv or VLC, embedded, with real transport control. |
131
+ | `ReorderList` … | `@react-x11/components/reorder` | A drag-and-drop list, over core's own drag and drop. |
130
132
  | `Table` | `@react-x11/components/table` | A data table: sortable, virtualized, any row height. |
131
133
  | `Terminal` | `@react-x11/components/terminal` | A real terminal: an embedded emulator, or its own. |
132
134
  | `TerminalOutput` | `@react-x11/components/terminal-output` | A captured session, rendered. `<Terminal>`'s static sibling. |
@@ -287,9 +289,20 @@ per top-level block on the raw source text, so appending to the tail
287
289
  re-renders the tail alone. `npm run examples:markdown` streams a document
288
290
  in live.
289
291
 
290
- MDX is on the roadmap, not in the box: the AST reserves a `component` node
291
- and the renderer is ordinary React composition, so user components can
292
- interleave including mid-stream once the parser learns the syntax.
292
+ **MDX, in block position.** `components={{ Chart }}` lets a document put a
293
+ component between two paragraphs, with markdown children, mid-stream and
294
+ evaluating nothing: an attribute is a string, `true`, or the `JSON.parse` of
295
+ a `{…}`. A tag is a component _iff its name is a key in that map_, so a
296
+ document that never passes the prop parses exactly as it did before, and one
297
+ from a stranger can only reach what you already exposed.
298
+
299
+ Adding `scope={{ quarters }}` is the second rung and a different statement:
300
+ `{…}` compiles, `{...spread}` works, and a brace in the prose renders its
301
+ value. There is no sandbox, so `components` decides what a document may
302
+ _reach_ and `scope` decides whether it may _compute_ — which matters when the
303
+ input is model output. A tag in the middle of a sentence is still text; the
304
+ inline half needs a `<richtext>` that can reserve advance width for an
305
+ element. [docs/prd-mdx.md](docs/prd-mdx.md) is the design record.
293
306
 
294
307
  ## HTML
295
308
 
@@ -461,6 +474,53 @@ pipeline beside galleries of the sizes and variants;
461
474
  [the reference](docs/components/timeline.md) has the rest, including why
462
475
  every indicator's chip is opaque.
463
476
 
477
+ ## A drag-and-drop list
478
+
479
+ `<ReorderList>` is a list the user reorders by dragging its items — or by
480
+ lifting one from the keyboard and walking it with the arrows — and a
481
+ kanban board when several lists share a `group`. It is the sortable layer
482
+ over react-x11's own drag and drop, the position `@dnd-kit/sortable` holds
483
+ over `@dnd-kit/core`: the threshold, the auto-scroll, the preview window
484
+ and the promotion of the same drag to XDND when the pointer leaves the app
485
+ are core's, and what is here is the insertion arithmetic, the indicator,
486
+ the keyboard model and an event vocabulary that speaks list-and-index.
487
+
488
+ ```jsx
489
+ import {
490
+ ReorderList,
491
+ ReorderItem,
492
+ arrayMove,
493
+ } from '@react-x11/components/reorder';
494
+
495
+ <ReorderList
496
+ onReorder={(e) => setTodos((list) => arrayMove(list, e.from, e.to))}
497
+ >
498
+ {todos.map((todo) => (
499
+ <ReorderItem key={todo.id} id={todo.id}>
500
+ <text>{todo.title}</text>
501
+ </ReorderItem>
502
+ ))}
503
+ </ReorderList>;
504
+ ```
505
+
506
+ Every rung is a small diff on that: a `<ReorderHandle>` inside an item
507
+ makes the grip the only press target, `group` on several lists makes a
508
+ board (`onInsert` on the list it landed in, `onRemove` on the one it
509
+ left), `canDrop` refuses a drop the group would otherwise take, `combine`
510
+ turns the middle of an item into a merge target, `selected` makes a drag
511
+ carry several rows at once, `dragActions={['copy']}` turns a list into a
512
+ palette, `dragData` on an item lets a file manager take it, `accept` on the
513
+ list lets it take files, and `children` as a function of the item's state
514
+ (or `useReorderItem()` deeper inside) lets the content say what is
515
+ happening to it. The list's own `onDragStart` / `onDragUpdate` /
516
+ `onDragEnd` report the gesture from either input, and `preview` decides
517
+ whether the ghost is a popup that follows the pointer over other
518
+ applications — the default — or a copy drawn inside the list. `npm run examples:reorder` shows all four;
519
+ [the reference](docs/components/reorder.md) has the rest, and
520
+ [the PRD](docs/prd-reorder.md) has the survey of dnd-kit, hello-pangea,
521
+ pragmatic-drag-and-drop, React Aria and Framer's `Reorder` it was designed
522
+ against.
523
+
464
524
  ## The disclosure tree
465
525
 
466
526
  `<Tree>` is a **successor to react-x11's own `<Tree>`, which core is
@@ -707,10 +767,11 @@ states. Three things follow, and all three are the point:
707
767
 
708
768
  - **It re-renders as the viewport moves.** That is the cost the drawn path
709
769
  exists to avoid, so it is paid by the nodes that ask for it and no others.
710
- - **It does not scale with the zoom.** The box does; there is no transform
711
- here. Content is laid out to the zoomed box at its natural size and
712
- clipped, and below `zoom` 0.6 it is not mounted at all the pane draws the
713
- card instead.
770
+ - **It zooms with the pane.** The subtree is mounted under a `scale` box, so
771
+ everything in it is written in graph units a plain `fontSize: 11`, no
772
+ `zoom` anywhere and comes out at the size the card is drawn at, text
773
+ shaped at that size rather than stretched. Below `zoom` 0.6 it is not
774
+ mounted at all: too small to read, and the pane draws the card instead.
714
775
  - **`headerHeight` is what keeps the node draggable.** The body starts below
715
776
  it, so there is always somewhere to grab that is not a text field.
716
777
 
@@ -726,6 +787,77 @@ loop, and a live count of X requests and bytes per frame.
726
787
 
727
788
  [rf]: https://reactflow.dev/
728
789
 
790
+ ## The map
791
+
792
+ A slippy map: vector tiles decoded and drawn, panned, zoomed, with markers
793
+ you can click and lines, areas and circles over the top.
794
+
795
+ ```jsx
796
+ import { Map, osmVectorSource } from '@react-x11/components/maps';
797
+
798
+ // Nothing in this package fetches. You supply the request; the adapter
799
+ // supplies the URL, the schema and the attribution.
800
+ const source = osmVectorSource({
801
+ fetch: async (url, signal) => {
802
+ const response = await fetch(url, { signal });
803
+ if (response.status === 404) return null;
804
+ return new Uint8Array(await response.arrayBuffer());
805
+ },
806
+ });
807
+
808
+ <Map
809
+ sources={[source]}
810
+ defaultCamera={{ center: { lon: -0.1281, lat: 51.508 }, zoom: 13 }}
811
+ markers={[{ id: 'home', position: { lon: -0.1281, lat: 51.508 } }]}
812
+ onMarkerClick={(marker) => select(marker.id)}
813
+ style={{ height: 400 }}
814
+ />;
815
+ ```
816
+
817
+ The format is [Mapbox Vector Tile][mvt] — what Mapbox, MapTiler, Protomaps,
818
+ Esri, TomTom, Azure Maps and OpenStreetMap's own tile server all serve — and
819
+ the default style is written against **Shortbread**, the schema OSM cuts its
820
+ own tiles in, so `osmVectorSource()` and nothing else is a working map.
821
+ Raster tiles work too, as pixels you decode.
822
+
823
+ **Nothing here fetches**, and that is the feature rather than an omission.
824
+ A component whose default made requests would decide, on your behalf, whose
825
+ servers your application talks to, what its user agent says and whose usage
826
+ policy it is now bound by. So a source is a `load` function you write, the
827
+ way `<Html onResource>` is — and the attribution a source carries is drawn
828
+ in the corner, because for open data that is a licence condition rather
829
+ than a nicety.
830
+
831
+ It is one element that draws the whole map, for the reason `<Flow>` is: pan
832
+ and zoom are a transform, this renderer has none, and a composed map would
833
+ re-render every road through React on every pointer step. What a map adds
834
+ to that case is that the scene arrives a tile at a time and a dense city
835
+ tile is 50-140 ms to rasterize — real work for a software rasterizer over a
836
+ hundred thousand vertices. So the component is built so that cost is never
837
+ _in_ a frame: each tile is rasterized once into its own surface, a **pan
838
+ composites those surfaces at new offsets and a fractional zoom composites
839
+ them scaled**, and rasterization itself is budgeted and resumable, a style
840
+ layer at a time. Measured on real OpenStreetMap tiles for central London and
841
+ Tokyo, a pan and a zoom rasterize _nothing_ and paint in 0-11 ms a frame on
842
+ both the X11 and the macOS backends; a cold dense city view fills in over
843
+ about a second, in frames that are individually cheap.
844
+
845
+ Markers are the client API you actually reach for, and the only thing on
846
+ the map that is an object rather than cartography — which is why markers,
847
+ and only markers, are what a screen reader meets. `overlays` covers the
848
+ rest: a route (`decodePolyline` reads what every routing engine answers
849
+ with), a traffic segment, a transit shape, a GeoJSON layer
850
+ (`geoJsonOverlays`).
851
+
852
+ `npm run examples:maps` is a working map over the real network — try
853
+ `-- tokyo` or `-- --dark`. [docs/prd-maps.md](docs/prd-maps.md) is the
854
+ design record: which formats and providers are actually usable (Google's
855
+ vector schema is not published; Apple has no tile endpoint at all), what
856
+ "traffic, routes and transit" reduce to, and every measurement behind the
857
+ architecture.
858
+
859
+ [mvt]: https://github.com/mapbox/vector-tile-spec
860
+
729
861
  ## The user's real calendar
730
862
 
731
863
  `useDesktopCalendarEvents` reads the calendars the desktop already has —
@@ -1045,7 +1177,10 @@ Candidates to move here:
1045
1177
  - The 3D scene graph and a Three.js / react-three-fiber-shaped layer, with
1046
1178
  `<glarea>` itself staying in core.
1047
1179
  - `<Tabs>`, undecided — it may well stay in core.
1048
- - MDX support in `<Markdown>`see the note in that section.
1180
+ - The inline half of MDX a component in the middle of a sentence, which is
1181
+ gated on a `<richtext>` run that can reserve advance width for an embedded
1182
+ element. Block-position components and expressions have shipped;
1183
+ [docs/prd-mdx.md](docs/prd-mdx.md) has what is left.
1049
1184
  - A StatusNotifierItem host, beside `<TrayHost>` rather than inside it: the
1050
1185
  D-Bus way modern applications publish a tray icon. It pairs with core's
1051
1186
  `dbusmenu.js`, and a complete panel wants both.
@@ -112,7 +112,9 @@ export interface TooltipData {
112
112
  * tooltip itself uses. It is also the primitive an app builds pan and zoom
113
113
  * gestures on — the hit carries the plot rect (for pixels→domain-units)
114
114
  * and the x value under any window x, so a drag handler needs nothing
115
- * else from the chart's internals.
115
+ * else from the chart's internals. The x asked for and every pixel in the
116
+ * answer are **logical** window pixels — the unit a mouse event's `x`
117
+ * arrives in, whatever the display scale.
116
118
  */
117
119
  export interface ChartPlotHandle {
118
120
  hitAt(x: number): ChartHit | null;
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/charts/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/charts/components.ts"],"names":[],"mappings":"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"}
@@ -251,12 +251,16 @@ function makeCartesianChart(displayName) {
251
251
  sideRef.current = 'left';
252
252
  else if (x < hit.px - SIDE_HYSTERESIS)
253
253
  sideRef.current = 'right';
254
+ // Everything in a HoverState becomes a style length or an anchor
255
+ // point, so it is logical pixels: the hit already is, and `abs` is
256
+ // device (react-x11's docs/scale.md) — divided here, once.
257
+ const s = node.scale > 0 ? node.scale : 1;
254
258
  setHover({
255
259
  hit,
256
- originX: node.abs.x,
257
- originY: node.abs.y,
258
- width: node.abs.width,
259
- height: node.abs.height,
260
+ originX: node.abs.x / s,
261
+ originY: node.abs.y / s,
262
+ width: node.abs.width / s,
263
+ height: node.abs.height / s,
260
264
  pointerY: y,
261
265
  side: sideRef.current,
262
266
  });
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/charts/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/charts/components.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,qEAAqE;AACrE,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAC5E,qEAAqE;AACrE,0EAA0E;AAC1E,uEAAuE;AACvE,+DAA+D;AAC/D,+BAA+B;AAC/B,EAAE;AACF,uEAAuE;AACvE,wBAAwB;AACxB,EAAE;AACF,2EAA2E;AAC3E,sEAAsE;AACtE,yEAAyE;AACzE,0EAA0E;AAC1E,+BAA+B;AAC/B,0EAA0E;AAC1E,uEAAuE;AACvE,wEAAwE;AACxE,iEAAiE;AAEjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAOrC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAY5C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC;AAE9B,8EAA8E;AAE9E,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAc,EAAE,CAAC,CAAC;AAW3D;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,OAAO,CAAC,CACN,aAAa,CAAC,QAAQ,EACtB,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,EAC7B,EAAE,CACA,KAAK,EACL;QACE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC;QACjD,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC;KACxC,EACD,KAAK,CAAC,QAAQ,CACf,CACF,CAAC;AACJ,CAAC;AAwBD;;oEAEoE;AAEpE,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,MAAmB;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAcD,MAAM,UAAU,KAAK,CAAC,MAAkB;IACtC,OAAO,IAAI,CAAC;AACd,CAAC;AAWD,MAAM,UAAU,KAAK,CAAC,MAAkB;IACtC,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,UAAU,aAAa,CAAC,MAA0B;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AA0BD,MAAM,UAAU,YAAY,CAAC,MAAyB;IACpD,OAAO,IAAI,CAAC;AACd,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,MAAwB;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAqBD,8EAA8E;AAE9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAsB;IAChD,CAAC,UAAU,EAAE,MAAM,CAAC;IACpB,CAAC,UAAU,EAAE,MAAM,CAAC;IACpB,CAAC,SAAS,EAAE,KAAK,CAAC;IAClB,CAAC,aAAa,EAAE,SAAS,CAAC;CAC3B,CAAC,CAAC;AAWH,SAAS,UAAU,CAAC,QAAmB;IACrC,MAAM,GAAG,GAAiB;QACxB,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI;KACb,CAAC;IACF,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,OAAO;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAoB;aAClC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAmB,CAAC;aAC5D,IAAI,IAAI,KAAK,KAAK;YAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAmB,CAAC;aAC1D,IAAI,IAAI,KAAK,aAAa;YAC7B,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,KAA2B,CAAC;aAC1C,IAAI,IAAI,KAAK,YAAY;YAC5B,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,KAA0B,CAAC;aAC5C,IAAI,IAAI,KAAK,WAAW;YAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,KAAyB,CAAC;QAC5E,wEAAwE;QACxE,wEAAwE;IAC1E,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,KAAmB,EAAE,MAAmB;IACzD,MAAM,MAAM,GAAiB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC3C,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;YACnB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EACH,CAAC,CAAC,KAAK,CAAC,KAAK;gBACb,IAAI,CAAC,KAAK;gBACV,eAAe,CAAC,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC;YAC7C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO;YACrD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW;YAC7D,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW;YAC7D,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ;YAChC,GAAG,EACD,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI;gBAClB,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS;oBAClD,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;YACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;YAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,aAAa,CAAC,WAAW;SAChD,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,GAAa;QAClB,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI;QACjC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,MAAM;QACjC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,aAAa,CAAC,KAAK;QAChD,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC/C,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK;QAChC,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,aAAa,CAAC,WAAW;KACzD,CAAC;IACF,MAAM,CAAC,GAAa;QAClB,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,aAAa,CAAC,KAAK;QAChD,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QAC/C,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK;QAChC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM;QACnC,MAAM,EAAE,CAAC;KACV,CAAC;IACF,MAAM,IAAI,GAAoB,KAAK,CAAC,IAAI;QACtC,CAAC,CAAC;YACE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI;YACzC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK;SACvC;QACH,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED;sDACsD;AACtD,SAAS,OAAO,CAAC,KAAmB,EAAE,MAAmB;IACvD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,KAAK,CAAC,WAAW;YACnB,CAAC,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC,KAAK,CAAC,GAAG;YACX,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,KAAK,CAAC,MAAM;YACd,CAAC,CAAC,KAAK,CAAC,IAAI;SACb,CAAC;QACF,KAAK,CAAC,KAAK,IAAI;YACb,KAAK,CAAC,KAAK,CAAC,OAAO;YACnB,KAAK,CAAC,KAAK,CAAC,IAAI;YAChB,KAAK,CAAC,KAAK,CAAC,KAAK;YACjB,KAAK,CAAC,KAAK,CAAC,MAAM;YAClB,KAAK,CAAC,KAAK,CAAC,IAAI;YAChB,KAAK,CAAC,KAAK,CAAC,MAAM;SACnB;QACD,KAAK,CAAC,KAAK,IAAI;YACb,KAAK,CAAC,KAAK,CAAC,KAAK;YACjB,KAAK,CAAC,KAAK,CAAC,MAAM;YAClB,KAAK,CAAC,KAAK,CAAC,IAAI;YAChB,KAAK,CAAC,KAAK,CAAC,KAAK;SAClB;QACD,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1D,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAgCD;;+BAE+B;AAC/B,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,SAAS,kBAAkB,CACzB,WAAmB;IAEnB,SAAS,KAAK,CAAC,KAA0B;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,mEAAmE;QACnE,oEAAoE;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CACxB,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;QAC9B,uDAAuD;QACvD,CAAC,GAAG,CAAC,CACN,CAAC;QAEF,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAkB,EAAE,CAAC,CAAC,OAAO,CAAC;QAC7D,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QAC1C,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QAE1C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAuB,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAoB,IAAI,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAmB,OAAO,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAkC,IAAI,CAAC,CAAC;QAExE,mEAAmE;QACnE,sEAAsE;QACtE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAC/B,CAAC,CAAuB,EAAE,EAAE;YAC1B,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;YACpB,IAAI,OAAO,WAAW,KAAK,UAAU;gBAAE,WAAW,CAAC,CAAC,CAAC,CAAC;iBACjD,IAAI,WAAW,EAAE,CAAC;gBAEnB,WACD,CAAC,OAAO,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC;QACzC,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YACzC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO;YACT,CAAC;YACD,iEAAiE;YACjE,6DAA6D;YAC7D,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,eAAe;gBAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;iBACtD,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,eAAe;gBAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YACjE,iEAAiE;YACjE,mEAAmE;YACnE,2DAA2D;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,QAAQ,CAAC;gBACP,GAAG;gBACH,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBACvB,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;gBACvB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;gBACzB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;gBAC3B,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,OAAO,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC,CAAC;QACF,qEAAqE;QACrE,4DAA4D;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;QACjC,MAAM,WAAW,GAAG,KAAK,KAAK,IAAI,CAAC;QAEnC,oEAAoE;QACpE,sEAAsE;QACtE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW;gBAAE,OAAO;YACvC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAa,CAAC;gBAAE,OAAO;YACrD,OAAQ,IAAsB,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;gBAC9B,IAAI,CAAC;oBAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;QAEnC,kEAAkE;QAClE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;YACnB,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,IAAI,WAAW;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,uDAAuD;QACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAEX,mEAAmE;QACnE,qEAAqE;QACrE,iEAAiE;QACjE,qEAAqE;QACrE,+DAA+D;QAC/D,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,6BAA6B;QAC7B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEpD,mEAAmE;QACnE,uEAAuE;QACvE,uEAAuE;QACvE,sEAAsE;QACtE,MAAM,WAAW,GAAG,SAAS;YAC3B,CAAC,CAAC,CAAC,EAA4B,EAAE,EAAE;gBAC/B,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC3C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,YAAY,GAAG,SAAS;YAC5B,CAAC,CAAC,GAAG,EAAE;gBACH,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC3B,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAElE,MAAM,YAAY,GAAgB;YAChC,CAAC,CAAC,OAAO,EAAE;gBACT,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,OAAO;gBACZ,IAAI;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU;gBACV,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,iEAAiE;gBACjE,mEAAmE;gBACnE,gEAAgE;gBAChE,gEAAgE;gBAChE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;aAC/D,CAAC;SACZ,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,mBAAmB,CAChC,KAAK,EACL,KAAK,CAAC,OAAO,EACb,UAAU,EACV,KAAK,EACL,OAAO,EACP,KAAK,CAAC,KAAK,EAAE,IAAI,CAClB,CAAC;gBACF,IAAI,MAAM;oBAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM;YAC5B,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC;QAET,OAAO,EAAE,CACP,KAAK;QACL,qEAAqE;QACrE,sEAAsE;QACtE,+DAA+D;QAC/D,oEAAoE;QACpE,qEAAqE;QACrE,sEAAsE;QACtE,8DAA8D;QAC9D;YACE,KAAK,EAAE;gBACL,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gBACnE,KAAK,CAAC,KAAK;aACZ;YACD,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC;SACxC,EACD,KAAK,CAAC,MAAM,EAAE,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EACxD,EAAE,CACA,KAAK,EACL;YACE,KAAK,EAAE;gBACL,QAAQ,EAAE,CAAC;gBACX,aAAa,EAAE,QAAQ;gBACvB,QAAQ,EAAE,UAAU;gBACpB,2DAA2D;gBAC3D,4DAA4D;gBAC5D,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;aACZ;YACD,WAAW;YACX,YAAY;YACZ,WAAW;YACX,SAAS;SACV,EACD,GAAG,YAAY,CAChB,EACD,KAAK,CAAC,MAAM,EAAE,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CACzD,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;2CAG2C;AAC3C,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAE/D,8EAA8E;AAE9E;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,KAAiB,EACjB,OAAiC;IAEjC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC;IACrC,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAEpC,IAAI,OAAO,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CACN,EAAE,CAAC,KAAK,EAAE;YACR,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE,MAAM;gBACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5B,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;gBACnC,eAAe,EAAE,SAAS;aAC3B;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CACN,EAAE,CAAC,KAAK,EAAE;YACR,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE;YACrB,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE,MAAM;gBACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;gBAChC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC;gBACnC,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,YAAY,EAAE,CAAC;gBACf,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,aAAa;gBAC1B,eAAe,EAAE,CAAC,CAAC,KAAK;aACzB;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,qEAAqE;AACrE,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,mBAAmB,CAC1B,KAAiB,EACjB,OAAiC,EACjC,UAA2B,EAC3B,KAAkC,EAClC,SAAgD,EAChD,KAAgB;IAEhB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IACpC,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACrE,MAAM,QAAQ,GACZ,OAAO,EAAE,cAAc;QACvB,CAAC,CAAC,CAAkB,EAAE,EAAE;YACtB,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,UAAU,CAAC,CAAC;gBAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,mEAAmE;YACnE,4DAA4D;YAC5D,IAAI,KAAK,KAAK,MAAM;gBAAE,OAAO,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,MAAM,QAAQ,GACZ,OAAO,EAAE,SAAS;QAClB,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO;QAC9B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAU;YACzB,QAAQ,EAAE,UAAU;YACpB,aAAa,EAAE,MAAM;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG,CACX,CAAC,EACD,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC,EACzC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CACzB,CACF;YACD,aAAa,EAAE,QAAQ;YACvB,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,gEAAgE;YAChE,qEAAqE;YACrE,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,SAAS;YACtB,eAAe,EAAE,aAAa;SAC/B,CAAC;QACF,IAAI,IAAI,KAAK,MAAM;YACjB,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC;;YACrD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,qEAAqE;IACrE,wDAAwD;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAC3E,CAAC;IACF,OAAO,EAAE,CACP,OAAO,EACP;QACE,GAAG,EAAE,eAAe;QACpB,oEAAoE;QACpE,iEAAiE;QACjE,4CAA4C;QAC5C,KAAK;QACL,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,MAAM,EAAE;YACN,mEAAmE;YACnE,oDAAoD;YACpD,EAAE,EAAE,SAAyC;YAC7C,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE;YACjC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,EAAE;SACX;QACD,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE;YACL,eAAe,EAAE,KAAK,CAAC,UAAU;YACjC,wBAAwB,EAAE;gBACxB,eAAe,EAAE,aAAa;aAC/B;SACO;KACX,EACD,EAAE,CACA,KAAK,EACL;QACE,KAAK,EAAE;YACL,aAAa,EAAE,QAAQ;YACvB,OAAO,EAAE,CAAC;YACV,GAAG,EAAE,CAAC;YACN,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,SAAS;YACtB,eAAe,EAAE,aAAa;SAC/B;KACF,EACD,GAAG,OAAO,CACX,CACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAiB,EACjB,QAAwC,EACxC,QAA2C;IAE3C,MAAM,IAAI,GAAgB;QACxB,EAAE,CACA,MAAM,EACN,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAC9D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CACtB;KACF,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CACP,EAAE,CACA,KAAK,EACL;YACE,GAAG,EAAE,CAAC,CAAC,EAAE;YACT,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;SAC9D,EACD,EAAE,CAAC,KAAK,EAAE;YACR,KAAK,EAAE;gBACL,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,YAAY,EAAE,CAAC;gBACf,eAAe,EAAE,CAAC,CAAC,KAAK;aACzB;SACF,CAAC,EACF,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EACrE,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EACnD,EAAE,CACA,MAAM,EACN,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAC3C,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CACxB,CACF,CACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAE9E,SAAS,YAAY,CAAC,IAAc,EAAE,KAAuB;IAC3D,OAAO,EAAE,CACP,KAAK,EACL;QACE,GAAG,EAAE,UAAU,KAAK,EAAE;QACtB,KAAK,EAAE;YACL,aAAa,EAAE,KAAK;YACpB,cAAc,EAAE,QAAQ;YACxB,GAAG,EAAE,EAAE;YACP,UAAU,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,aAAa,EAAE,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACvC;KACF,EACD,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvB,EAAE,CACA,KAAK,EACL;QACE,GAAG,EAAE,CAAC,CAAC,EAAE;QACT,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;KAC9D,EACD,EAAE,CAAC,KAAK,EAAE;QACR,KAAK,EAAE;YACL,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,CAAC,CAAC,KAAK;SACzB;KACF,CAAC,EACF,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CACtE,CACF,CACF,CAAC;AACJ,CAAC"}
@@ -21,12 +21,14 @@ export interface ChartPlotProps {
21
21
  onFrameStats?: (stats: ChartFrameStats) => void;
22
22
  style?: Style | Style[];
23
23
  }
24
- /** What the tooltip layer gets for a pointer position. */
24
+ /** What the tooltip layer gets for a pointer position. Every pixel in it is
25
+ * a logical window pixel — the unit a mouse event's `x` arrives in and a
26
+ * style length is written in. */
25
27
  export interface ChartHit {
26
28
  index: number;
27
29
  /** The x value at that index — a label for band axes. */
28
30
  xValue: number | string;
29
- /** Snap position for the crosshair, window coordinates. */
31
+ /** Snap position for the crosshair, logical window coordinates. */
30
32
  px: number;
31
33
  /** The x domain's width (0 for band axes) — what a time-axis tooltip
32
34
  * sizes its default header format to, exactly as the ticks do. */
@@ -72,6 +74,9 @@ export declare class ChartPlotNode extends Node {
72
74
  * and rebuilt when membership or history changes.
73
75
  */
74
76
  private _stackTops;
77
+ /** Device pixels per logical pixel — the display scale this element's
78
+ * window resolved to, constant for the node's life. */
79
+ private get _scale();
75
80
  private _themeRecord;
76
81
  private _color;
77
82
  /** Measure one label through the font service, cached. Null without a
@@ -84,12 +89,14 @@ export declare class ChartPlotNode extends Node {
84
89
  private _paintCtx;
85
90
  paint(ctx: Context2D): void;
86
91
  private _paintGridAndAxes;
87
- /** The plot rectangle in window coordinates, for overlay positioning. */
92
+ /** The plot rectangle in logical window coordinates, for overlay
93
+ * positioning. */
88
94
  plotRect(): PlotRect | null;
95
+ private _logicalRect;
89
96
  /**
90
- * What is under a window-coordinate pointer x: the snapped index, its x
91
- * value, and every series' value and pixel position there. Null outside
92
- * the data or before layout. O(log n) against sorted data.
97
+ * What is under a logical window x: the snapped index, its x value, and
98
+ * every series' value and pixel position there. Null outside the data or
99
+ * before layout. O(log n) against sorted data.
93
100
  */
94
101
  hitAt(winX: number): ChartHit | null;
95
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/charts/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/charts/node.ts"],"names":[],"mappings":"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"}
@@ -179,6 +179,20 @@ export class ChartPlotNode extends Node {
179
179
  return entry;
180
180
  }
181
181
  // --- layout --------------------------------------------------------------
182
+ //
183
+ // Everything from here down is device pixels — `contentBox()`, the plot
184
+ // rect, the scales, the label metrics (shaped from `resolvedTextStyle()`,
185
+ // which core hands over already multiplied) and the paint context
186
+ // (react-x11's docs/scale.md). Two kinds of number are not, and each is
187
+ // converted once: the gutter constants and a spec's `width`/`height`,
188
+ // which are logical lengths and multiply on the way in; and the tooltip's
189
+ // questions (`plotRect`, `hitAt`), asked and answered in logical pixels
190
+ // because a mouse event's `x` and a style length both are.
191
+ /** Device pixels per logical pixel — the display scale this element's
192
+ * window resolved to, constant for the node's life. */
193
+ get _scale() {
194
+ return this.scale > 0 ? this.scale : 1;
195
+ }
182
196
  _themeRecord() {
183
197
  return this.theme;
184
198
  }
@@ -337,32 +351,35 @@ export class ChartPlotNode extends Node {
337
351
  const fmtY = formatters?.y ?? formatNumberTick;
338
352
  const yTickValues = spec.y.hide ? [] : linearTicks(yD0, yD1, spec.y.ticks);
339
353
  const yTickLabels = yTickValues.map((v) => fmtY(v));
340
- // -- gutters (the y gutter measures its own labels; fixed on the mock)
354
+ // -- gutters (the y gutter measures its own labels; fixed on the mock).
355
+ // The constants and a spec's own gutter sizes are logical pixels; the
356
+ // box they are subtracted from is device.
357
+ const s = this._scale;
341
358
  let left = 0;
342
359
  if (!spec.y.hide) {
343
360
  if (spec.y.width !== 'auto') {
344
- left = spec.y.width;
361
+ left = spec.y.width * s;
345
362
  }
346
363
  else {
347
364
  let max = 0;
348
365
  for (const text of yTickLabels) {
349
366
  const l = this._label(text, labelSize, labelColor);
350
367
  if (!l) {
351
- max = 34;
368
+ max = 34 * s;
352
369
  break;
353
370
  }
354
371
  if (l.width > max)
355
372
  max = l.width;
356
373
  }
357
- left = Math.ceil(max) + TICK_GAP + 2;
374
+ left = Math.ceil(max) + (TICK_GAP + 2) * s;
358
375
  }
359
376
  }
360
- const bottom = spec.x.hide ? 0 : spec.x.height || X_AXIS_HEIGHT;
377
+ const bottom = spec.x.hide ? 0 : (spec.x.height || X_AXIS_HEIGHT) * s;
361
378
  const plot = {
362
379
  x: box.x + left,
363
- y: box.y + PAD_TOP,
364
- width: Math.max(1, box.width - left - PAD_RIGHT),
365
- height: Math.max(1, box.height - PAD_TOP - bottom),
380
+ y: box.y + PAD_TOP * s,
381
+ width: Math.max(1, box.width - left - PAD_RIGHT * s),
382
+ height: Math.max(1, box.height - PAD_TOP * s - bottom),
366
383
  };
367
384
  const yScale = linearScale(yD0, yD1, plot.y + plot.height, plot.y);
368
385
  const yTicks = yTickValues.map((v, i) => ({
@@ -533,6 +550,7 @@ export class ChartPlotNode extends Node {
533
550
  yScale: layout.yScale,
534
551
  stats,
535
552
  host: this._host(),
553
+ scale: this._scale,
536
554
  };
537
555
  for (const geom of layout.geoms)
538
556
  renderSeries(env, geom);
@@ -563,6 +581,9 @@ export class ChartPlotNode extends Node {
563
581
  const lineColor = this._color('$border', '#cccccc');
564
582
  const labelColor = this._color('$textMuted', '#777777');
565
583
  const labelSize = Math.max(9, Math.round(this.resolvedTextStyle().size * 0.8));
584
+ // A rule is one logical pixel; the label offsets are logical too.
585
+ const s = this._scale;
586
+ const rule = Math.max(1, Math.round(s));
566
587
  // grid: 1px rules batched into one request per direction
567
588
  if (spec.grid) {
568
589
  const rects = [];
@@ -570,7 +591,7 @@ export class ChartPlotNode extends Node {
570
591
  for (const t of yTicks) {
571
592
  const y = Math.round(t.px);
572
593
  if (y > plot.y && y < plot.y + plot.height) {
573
- rects.push(plot.x, y, plot.width, 1);
594
+ rects.push(plot.x, y, plot.width, rule);
574
595
  }
575
596
  }
576
597
  }
@@ -578,7 +599,7 @@ export class ChartPlotNode extends Node {
578
599
  for (const t of xTicks) {
579
600
  const x = Math.round(t.px);
580
601
  if (x > plot.x && x < plot.x + plot.width) {
581
- rects.push(x, plot.y, 1, plot.height);
602
+ rects.push(x, plot.y, rule, plot.height);
582
603
  }
583
604
  }
584
605
  }
@@ -602,10 +623,11 @@ export class ChartPlotNode extends Node {
602
623
  // axis lines
603
624
  const axisRects = [];
604
625
  if (!spec.x.hide) {
605
- axisRects.push(plot.x, plot.y + plot.height, plot.width, 1);
626
+ axisRects.push(plot.x, plot.y + plot.height, plot.width, rule);
627
+ }
628
+ if (!spec.y.hide) {
629
+ axisRects.push(plot.x - rule, plot.y, rule, plot.height + rule);
606
630
  }
607
- if (!spec.y.hide)
608
- axisRects.push(plot.x - 1, plot.y, 1, plot.height + 1);
609
631
  if (axisRects.length) {
610
632
  ctx.save();
611
633
  ctx.fillStyle = lineColor;
@@ -626,12 +648,12 @@ export class ChartPlotNode extends Node {
626
648
  const l = this._label(t.label, labelSize, labelColor);
627
649
  if (!l)
628
650
  continue;
629
- l.draw(ctx, plot.x - TICK_GAP - l.width, t.px - l.height / 2);
651
+ l.draw(ctx, plot.x - TICK_GAP * s - l.width, t.px - l.height / 2);
630
652
  stats.commands++;
631
653
  }
632
654
  }
633
655
  if (!spec.x.hide) {
634
- const baseY = plot.y + plot.height + 4;
656
+ const baseY = plot.y + plot.height + 4 * s;
635
657
  let lastRight = -Infinity;
636
658
  for (const t of xTicks) {
637
659
  const l = this._label(t.label, labelSize, labelColor);
@@ -639,7 +661,7 @@ export class ChartPlotNode extends Node {
639
661
  continue;
640
662
  const x = t.px - l.width / 2;
641
663
  // drop labels that would collide rather than letting them smear
642
- if (x < lastRight + 4)
664
+ if (x < lastRight + 4 * s)
643
665
  continue;
644
666
  lastRight = x + l.width;
645
667
  l.draw(ctx, x, baseY);
@@ -648,14 +670,35 @@ export class ChartPlotNode extends Node {
648
670
  }
649
671
  }
650
672
  // --- the tooltip's questions --------------------------------------------
651
- /** The plot rectangle in window coordinates, for overlay positioning. */
673
+ //
674
+ // Asked and answered in **logical** window pixels: the x a caller has is a
675
+ // mouse event's, and what it does with the answer is position a style or
676
+ // anchor a popup. The layout is device, so the question is multiplied on
677
+ // the way in and every pixel in the answer divided on the way out. At 1x
678
+ // that is the identity, which is how a tooltip that compared the two
679
+ // directly worked everywhere until a 2x panel snapped it to the plot's
680
+ // left edge whatever the pointer did.
681
+ /** The plot rectangle in logical window coordinates, for overlay
682
+ * positioning. */
652
683
  plotRect() {
653
- return this._layout()?.plot ?? null;
684
+ const plot = this._layout()?.plot;
685
+ return plot ? this._logicalRect(plot) : null;
686
+ }
687
+ _logicalRect(rect) {
688
+ const s = this._scale;
689
+ if (s === 1)
690
+ return rect;
691
+ return {
692
+ x: rect.x / s,
693
+ y: rect.y / s,
694
+ width: rect.width / s,
695
+ height: rect.height / s,
696
+ };
654
697
  }
655
698
  /**
656
- * What is under a window-coordinate pointer x: the snapped index, its x
657
- * value, and every series' value and pixel position there. Null outside
658
- * the data or before layout. O(log n) against sorted data.
699
+ * What is under a logical window x: the snapped index, its x value, and
700
+ * every series' value and pixel position there. Null outside the data or
701
+ * before layout. O(log n) against sorted data.
659
702
  */
660
703
  hitAt(winX) {
661
704
  const layout = this._layout();
@@ -663,7 +706,8 @@ export class ChartPlotNode extends Node {
663
706
  if (!layout || !spec || layout.geoms.length === 0)
664
707
  return null;
665
708
  const { plot, xScale, yScale } = layout;
666
- const clamped = Math.max(plot.x, Math.min(plot.x + plot.width, winX));
709
+ const s = this._scale;
710
+ const clamped = Math.max(plot.x, Math.min(plot.x + plot.width, winX * s));
667
711
  let index;
668
712
  let px;
669
713
  let xValue;
@@ -708,13 +752,20 @@ export class ChartPlotNode extends Node {
708
752
  label: geom.spec.label,
709
753
  color: geom.color,
710
754
  value,
711
- py: yScale.scale(Number.isNaN(painted) ? value : painted),
755
+ py: yScale.scale(Number.isNaN(painted) ? value : painted) / s,
712
756
  });
713
757
  }
714
758
  if (points.length === 0)
715
759
  return null;
716
760
  const xSpan = xScale.kind === 'band' ? 0 : xScale.d1 - xScale.d0;
717
- return { index, xValue, px, xSpan, plot, points };
761
+ return {
762
+ index,
763
+ xValue,
764
+ px: px / s,
765
+ xSpan,
766
+ plot: this._logicalRect(plot),
767
+ points,
768
+ };
718
769
  }
719
770
  }
720
771
  //# sourceMappingURL=node.js.map