@react-x11/components 0.3.0 → 0.5.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 (314) hide show
  1. package/README.md +131 -4
  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 +11 -1
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +26 -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/qml/containers.d.ts +3 -0
  140. package/dist/qml/containers.d.ts.map +1 -0
  141. package/dist/qml/containers.js +331 -0
  142. package/dist/qml/containers.js.map +1 -0
  143. package/dist/qml/controls.d.ts +12 -0
  144. package/dist/qml/controls.d.ts.map +1 -0
  145. package/dist/qml/controls.js +21 -0
  146. package/dist/qml/controls.js.map +1 -0
  147. package/dist/qml/globals.d.ts +6 -0
  148. package/dist/qml/globals.d.ts.map +1 -0
  149. package/dist/qml/globals.js +25 -0
  150. package/dist/qml/globals.js.map +1 -0
  151. package/dist/qml/index.d.ts +15 -0
  152. package/dist/qml/index.d.ts.map +1 -0
  153. package/dist/qml/index.js +25 -0
  154. package/dist/qml/index.js.map +1 -0
  155. package/dist/qml/interaction.d.ts +12 -0
  156. package/dist/qml/interaction.d.ts.map +1 -0
  157. package/dist/qml/interaction.js +246 -0
  158. package/dist/qml/interaction.js.map +1 -0
  159. package/dist/qml/ir.d.ts +106 -0
  160. package/dist/qml/ir.d.ts.map +1 -0
  161. package/dist/qml/ir.js +7 -0
  162. package/dist/qml/ir.js.map +1 -0
  163. package/dist/qml/layouts.d.ts +3 -0
  164. package/dist/qml/layouts.d.ts.map +1 -0
  165. package/dist/qml/layouts.js +122 -0
  166. package/dist/qml/layouts.js.map +1 -0
  167. package/dist/qml/models.d.ts +14 -0
  168. package/dist/qml/models.d.ts.map +1 -0
  169. package/dist/qml/models.js +80 -0
  170. package/dist/qml/models.js.map +1 -0
  171. package/dist/qml/objects.d.ts +228 -0
  172. package/dist/qml/objects.d.ts.map +1 -0
  173. package/dist/qml/objects.js +1103 -0
  174. package/dist/qml/objects.js.map +1 -0
  175. package/dist/qml/parse.d.ts +10 -0
  176. package/dist/qml/parse.d.ts.map +1 -0
  177. package/dist/qml/parse.js +607 -0
  178. package/dist/qml/parse.js.map +1 -0
  179. package/dist/qml/qtquick.d.ts +7 -0
  180. package/dist/qml/qtquick.d.ts.map +1 -0
  181. package/dist/qml/qtquick.js +347 -0
  182. package/dist/qml/qtquick.js.map +1 -0
  183. package/dist/qml/react.d.ts +83 -0
  184. package/dist/qml/react.d.ts.map +1 -0
  185. package/dist/qml/react.js +323 -0
  186. package/dist/qml/react.js.map +1 -0
  187. package/dist/qml/resolver.d.ts +38 -0
  188. package/dist/qml/resolver.d.ts.map +1 -0
  189. package/dist/qml/resolver.js +64 -0
  190. package/dist/qml/resolver.js.map +1 -0
  191. package/dist/qml/slots.d.ts +65 -0
  192. package/dist/qml/slots.d.ts.map +1 -0
  193. package/dist/qml/slots.js +230 -0
  194. package/dist/qml/slots.js.map +1 -0
  195. package/dist/qml/states.d.ts +5 -0
  196. package/dist/qml/states.d.ts.map +1 -0
  197. package/dist/qml/states.js +276 -0
  198. package/dist/qml/states.js.map +1 -0
  199. package/dist/qml/view-utils.d.ts +42 -0
  200. package/dist/qml/view-utils.d.ts.map +1 -0
  201. package/dist/qml/view-utils.js +121 -0
  202. package/dist/qml/view-utils.js.map +1 -0
  203. package/dist/reorder/hx.d.ts +18 -0
  204. package/dist/reorder/hx.d.ts.map +1 -0
  205. package/dist/reorder/hx.js +10 -0
  206. package/dist/reorder/hx.js.map +1 -0
  207. package/dist/reorder/index.d.ts +314 -0
  208. package/dist/reorder/index.d.ts.map +1 -0
  209. package/dist/reorder/index.js +1539 -0
  210. package/dist/reorder/index.js.map +1 -0
  211. package/dist/reorder/model.d.ts +107 -0
  212. package/dist/reorder/model.d.ts.map +1 -0
  213. package/dist/reorder/model.js +162 -0
  214. package/dist/reorder/model.js.map +1 -0
  215. package/dist/richtext/node.d.ts +15 -5
  216. package/dist/richtext/node.d.ts.map +1 -1
  217. package/dist/richtext/node.js +40 -11
  218. package/dist/richtext/node.js.map +1 -1
  219. package/dist/richtext/runs.d.ts +35 -13
  220. package/dist/richtext/runs.d.ts.map +1 -1
  221. package/dist/richtext/runs.js +83 -27
  222. package/dist/richtext/runs.js.map +1 -1
  223. package/dist/tabs/hx.d.ts +18 -0
  224. package/dist/tabs/hx.d.ts.map +1 -0
  225. package/dist/tabs/hx.js +10 -0
  226. package/dist/tabs/hx.js.map +1 -0
  227. package/dist/tabs/index.d.ts +160 -0
  228. package/dist/tabs/index.d.ts.map +1 -0
  229. package/dist/tabs/index.js +1265 -0
  230. package/dist/tabs/index.js.map +1 -0
  231. package/dist/terminal/vt/fonts.d.ts +45 -15
  232. package/dist/terminal/vt/fonts.d.ts.map +1 -1
  233. package/dist/terminal/vt/fonts.js +89 -19
  234. package/dist/terminal/vt/fonts.js.map +1 -1
  235. package/dist/terminal/vt/index.d.ts +1 -1
  236. package/dist/terminal/vt/index.d.ts.map +1 -1
  237. package/dist/terminal/vt/index.js +3 -3
  238. package/dist/terminal/vt/index.js.map +1 -1
  239. package/dist/terminal/vt/node.d.ts +42 -0
  240. package/dist/terminal/vt/node.d.ts.map +1 -1
  241. package/dist/terminal/vt/node.js +95 -11
  242. package/dist/terminal/vt/node.js.map +1 -1
  243. package/dist/terminal/vt/pty.d.ts +16 -0
  244. package/dist/terminal/vt/pty.d.ts.map +1 -1
  245. package/dist/terminal/vt/pty.js +186 -0
  246. package/dist/terminal/vt/pty.js.map +1 -1
  247. package/dist/terminal/vt/renderer.d.ts.map +1 -1
  248. package/dist/terminal/vt/renderer.js +13 -3
  249. package/dist/terminal/vt/renderer.js.map +1 -1
  250. package/package.json +23 -3
  251. package/src/charts/components.ts +14 -7
  252. package/src/charts/node.ts +81 -26
  253. package/src/charts/render.ts +16 -6
  254. package/src/code-editor/node.ts +147 -53
  255. package/src/flow/draw.ts +104 -35
  256. package/src/flow/index.ts +33 -13
  257. package/src/flow/model.ts +4 -2
  258. package/src/flow/node.ts +158 -59
  259. package/src/flow/types.ts +46 -21
  260. package/src/formula/index.ts +4 -2
  261. package/src/formula/node.ts +24 -5
  262. package/src/html/controls.ts +4 -1
  263. package/src/html/css/cascade.ts +18 -7
  264. package/src/html/css/parse.ts +46 -21
  265. package/src/html/css/style.ts +6 -1
  266. package/src/html/css/values.ts +25 -9
  267. package/src/html/index.ts +1 -0
  268. package/src/html/layout/boxes.ts +19 -9
  269. package/src/html/layout/inline.ts +23 -1
  270. package/src/html/node.ts +110 -17
  271. package/src/html/paint.ts +17 -2
  272. package/src/index.ts +142 -0
  273. package/src/maps/clip.ts +184 -0
  274. package/src/maps/gzip.ts +66 -0
  275. package/src/maps/index.ts +316 -0
  276. package/src/maps/labels.ts +442 -0
  277. package/src/maps/mvt.ts +857 -0
  278. package/src/maps/node.ts +1819 -0
  279. package/src/maps/overlay.ts +639 -0
  280. package/src/maps/paint.ts +978 -0
  281. package/src/maps/proj.ts +641 -0
  282. package/src/maps/sources.ts +425 -0
  283. package/src/maps/style.ts +309 -0
  284. package/src/maps/styles.ts +1040 -0
  285. package/src/maps/tiles.ts +676 -0
  286. package/src/maps/types.ts +260 -0
  287. package/src/qml/containers.tsx +380 -0
  288. package/src/qml/controls.tsx +47 -0
  289. package/src/qml/globals.ts +33 -0
  290. package/src/qml/index.ts +67 -0
  291. package/src/qml/interaction.tsx +317 -0
  292. package/src/qml/ir.ts +80 -0
  293. package/src/qml/layouts.tsx +141 -0
  294. package/src/qml/models.ts +101 -0
  295. package/src/qml/objects.ts +1431 -0
  296. package/src/qml/parse.ts +624 -0
  297. package/src/qml/qtquick.tsx +413 -0
  298. package/src/qml/react.tsx +454 -0
  299. package/src/qml/resolver.ts +99 -0
  300. package/src/qml/slots.ts +249 -0
  301. package/src/qml/states.ts +318 -0
  302. package/src/qml/view-utils.ts +140 -0
  303. package/src/reorder/hx.ts +31 -0
  304. package/src/reorder/index.ts +2223 -0
  305. package/src/reorder/model.ts +232 -0
  306. package/src/richtext/node.ts +49 -14
  307. package/src/richtext/runs.ts +115 -30
  308. package/src/tabs/hx.ts +31 -0
  309. package/src/tabs/index.ts +1686 -0
  310. package/src/terminal/vt/fonts.ts +128 -36
  311. package/src/terminal/vt/index.ts +4 -2
  312. package/src/terminal/vt/node.ts +105 -12
  313. package/src/terminal/vt/pty.ts +243 -0
  314. 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. |
@@ -461,6 +463,53 @@ pipeline beside galleries of the sizes and variants;
461
463
  [the reference](docs/components/timeline.md) has the rest, including why
462
464
  every indicator's chip is opaque.
463
465
 
466
+ ## A drag-and-drop list
467
+
468
+ `<ReorderList>` is a list the user reorders by dragging its items — or by
469
+ lifting one from the keyboard and walking it with the arrows — and a
470
+ kanban board when several lists share a `group`. It is the sortable layer
471
+ over react-x11's own drag and drop, the position `@dnd-kit/sortable` holds
472
+ over `@dnd-kit/core`: the threshold, the auto-scroll, the preview window
473
+ and the promotion of the same drag to XDND when the pointer leaves the app
474
+ are core's, and what is here is the insertion arithmetic, the indicator,
475
+ the keyboard model and an event vocabulary that speaks list-and-index.
476
+
477
+ ```jsx
478
+ import {
479
+ ReorderList,
480
+ ReorderItem,
481
+ arrayMove,
482
+ } from '@react-x11/components/reorder';
483
+
484
+ <ReorderList
485
+ onReorder={(e) => setTodos((list) => arrayMove(list, e.from, e.to))}
486
+ >
487
+ {todos.map((todo) => (
488
+ <ReorderItem key={todo.id} id={todo.id}>
489
+ <text>{todo.title}</text>
490
+ </ReorderItem>
491
+ ))}
492
+ </ReorderList>;
493
+ ```
494
+
495
+ Every rung is a small diff on that: a `<ReorderHandle>` inside an item
496
+ makes the grip the only press target, `group` on several lists makes a
497
+ board (`onInsert` on the list it landed in, `onRemove` on the one it
498
+ left), `canDrop` refuses a drop the group would otherwise take, `combine`
499
+ turns the middle of an item into a merge target, `selected` makes a drag
500
+ carry several rows at once, `dragActions={['copy']}` turns a list into a
501
+ palette, `dragData` on an item lets a file manager take it, `accept` on the
502
+ list lets it take files, and `children` as a function of the item's state
503
+ (or `useReorderItem()` deeper inside) lets the content say what is
504
+ happening to it. The list's own `onDragStart` / `onDragUpdate` /
505
+ `onDragEnd` report the gesture from either input, and `preview` decides
506
+ whether the ghost is a popup that follows the pointer over other
507
+ applications — the default — or a copy drawn inside the list. `npm run examples:reorder` shows all four;
508
+ [the reference](docs/components/reorder.md) has the rest, and
509
+ [the PRD](docs/prd-reorder.md) has the survey of dnd-kit, hello-pangea,
510
+ pragmatic-drag-and-drop, React Aria and Framer's `Reorder` it was designed
511
+ against.
512
+
464
513
  ## The disclosure tree
465
514
 
466
515
  `<Tree>` is a **successor to react-x11's own `<Tree>`, which core is
@@ -707,10 +756,11 @@ states. Three things follow, and all three are the point:
707
756
 
708
757
  - **It re-renders as the viewport moves.** That is the cost the drawn path
709
758
  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.
759
+ - **It zooms with the pane.** The subtree is mounted under a `scale` box, so
760
+ everything in it is written in graph units a plain `fontSize: 11`, no
761
+ `zoom` anywhere and comes out at the size the card is drawn at, text
762
+ shaped at that size rather than stretched. Below `zoom` 0.6 it is not
763
+ mounted at all: too small to read, and the pane draws the card instead.
714
764
  - **`headerHeight` is what keeps the node draggable.** The body starts below
715
765
  it, so there is always somewhere to grab that is not a text field.
716
766
 
@@ -726,6 +776,77 @@ loop, and a live count of X requests and bytes per frame.
726
776
 
727
777
  [rf]: https://reactflow.dev/
728
778
 
779
+ ## The map
780
+
781
+ A slippy map: vector tiles decoded and drawn, panned, zoomed, with markers
782
+ you can click and lines, areas and circles over the top.
783
+
784
+ ```jsx
785
+ import { Map, osmVectorSource } from '@react-x11/components/maps';
786
+
787
+ // Nothing in this package fetches. You supply the request; the adapter
788
+ // supplies the URL, the schema and the attribution.
789
+ const source = osmVectorSource({
790
+ fetch: async (url, signal) => {
791
+ const response = await fetch(url, { signal });
792
+ if (response.status === 404) return null;
793
+ return new Uint8Array(await response.arrayBuffer());
794
+ },
795
+ });
796
+
797
+ <Map
798
+ sources={[source]}
799
+ defaultCamera={{ center: { lon: -0.1281, lat: 51.508 }, zoom: 13 }}
800
+ markers={[{ id: 'home', position: { lon: -0.1281, lat: 51.508 } }]}
801
+ onMarkerClick={(marker) => select(marker.id)}
802
+ style={{ height: 400 }}
803
+ />;
804
+ ```
805
+
806
+ The format is [Mapbox Vector Tile][mvt] — what Mapbox, MapTiler, Protomaps,
807
+ Esri, TomTom, Azure Maps and OpenStreetMap's own tile server all serve — and
808
+ the default style is written against **Shortbread**, the schema OSM cuts its
809
+ own tiles in, so `osmVectorSource()` and nothing else is a working map.
810
+ Raster tiles work too, as pixels you decode.
811
+
812
+ **Nothing here fetches**, and that is the feature rather than an omission.
813
+ A component whose default made requests would decide, on your behalf, whose
814
+ servers your application talks to, what its user agent says and whose usage
815
+ policy it is now bound by. So a source is a `load` function you write, the
816
+ way `<Html onResource>` is — and the attribution a source carries is drawn
817
+ in the corner, because for open data that is a licence condition rather
818
+ than a nicety.
819
+
820
+ It is one element that draws the whole map, for the reason `<Flow>` is: pan
821
+ and zoom are a transform, this renderer has none, and a composed map would
822
+ re-render every road through React on every pointer step. What a map adds
823
+ to that case is that the scene arrives a tile at a time and a dense city
824
+ tile is 50-140 ms to rasterize — real work for a software rasterizer over a
825
+ hundred thousand vertices. So the component is built so that cost is never
826
+ _in_ a frame: each tile is rasterized once into its own surface, a **pan
827
+ composites those surfaces at new offsets and a fractional zoom composites
828
+ them scaled**, and rasterization itself is budgeted and resumable, a style
829
+ layer at a time. Measured on real OpenStreetMap tiles for central London and
830
+ Tokyo, a pan and a zoom rasterize _nothing_ and paint in 0-11 ms a frame on
831
+ both the X11 and the macOS backends; a cold dense city view fills in over
832
+ about a second, in frames that are individually cheap.
833
+
834
+ Markers are the client API you actually reach for, and the only thing on
835
+ the map that is an object rather than cartography — which is why markers,
836
+ and only markers, are what a screen reader meets. `overlays` covers the
837
+ rest: a route (`decodePolyline` reads what every routing engine answers
838
+ with), a traffic segment, a transit shape, a GeoJSON layer
839
+ (`geoJsonOverlays`).
840
+
841
+ `npm run examples:maps` is a working map over the real network — try
842
+ `-- tokyo` or `-- --dark`. [docs/prd-maps.md](docs/prd-maps.md) is the
843
+ design record: which formats and providers are actually usable (Google's
844
+ vector schema is not published; Apple has no tile endpoint at all), what
845
+ "traffic, routes and transit" reduce to, and every measurement behind the
846
+ architecture.
847
+
848
+ [mvt]: https://github.com/mapbox/vector-tile-spec
849
+
729
850
  ## The user's real calendar
730
851
 
731
852
  `useDesktopCalendarEvents` reads the calendars the desktop already has —
@@ -891,6 +1012,12 @@ app installed may drag in. So an app installs the one it wants:
891
1012
  npm i node-pty # or: npm i @lydell/node-pty
892
1013
  ```
893
1014
 
1015
+ **Under Bun 1.4 or newer, install neither.** Bun ships a pty of its own
1016
+ (`Bun.spawn(argv, { terminal })`), so the vt backend uses it and no native
1017
+ module is probed, loaded or installed — the terminal works on a machine with
1018
+ no C toolchain. An app that wants node-pty back under Bun passes
1019
+ `pty={nodePtyHost()}`.
1020
+
894
1021
  With neither present, `status` is `'unavailable'` and `fallback` renders — an
895
1022
  ordinary state of a healthy machine, never a throw. `onError` says _which_
896
1023
  half is missing, and separates "nothing installed" from "installed but it
@@ -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":"AA0BA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;gCACgC;AAChC,KAAK,UAAU,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;AAGlC,OAAO,KAAK,EAAmB,QAAQ,EAAiB,MAAM,WAAW,CAAC;AAE1E,OAAO,KAAK,EAAiB,eAAe,EAAE,MAAM,WAAW,CAAC;AAGhE,OAAO,KAAK,EAEV,QAAQ,EACR,WAAW,EACX,eAAe,EACf,SAAS,EAKV,MAAM,WAAW,CAAC;AASnB,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,CAavE;AAID,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uEAAuE;IACvE,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAEpD;AACD,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAEpD;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAEnD;AACD,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAEvD;AAED,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAE9C;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAE9C;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAE9D;AAED,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,sDAAsD;IACtD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACpD,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,SAAS,CAAC;IAC1C;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAE5D;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAClC;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAE1D;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvE;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;CACnC;AA6ID,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,IAAI,EAAE,eAAe,CAAC;IACtB,qEAAqE;IACrE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,yEAAyE;IACzE,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AA8ND;;;2CAG2C;AAC3C,eAAO,MAAM,SAAS,UA3MX,mBAAmB,KAAK,YA2MqB,CAAC;AACzD,eAAO,MAAM,SAAS,UA5MX,mBAAmB,KAAK,YA4MqB,CAAC;AACzD,eAAO,MAAM,QAAQ,UA7MV,mBAAmB,KAAK,YA6MmB,CAAC;AACvD,eAAO,MAAM,YAAY,UA9Md,mBAAmB,KAAK,YA8M2B,CAAC"}
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":"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"}
@@ -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