@nowline/layout 0.8.6 → 0.10.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 (338) hide show
  1. package/dist/axis-columns.d.ts +70 -0
  2. package/dist/axis-columns.d.ts.map +1 -0
  3. package/dist/axis-columns.js +104 -0
  4. package/dist/axis-columns.js.map +1 -0
  5. package/dist/calendar-resolver.d.ts +27 -0
  6. package/dist/calendar-resolver.d.ts.map +1 -0
  7. package/dist/calendar-resolver.js +132 -0
  8. package/dist/calendar-resolver.js.map +1 -0
  9. package/dist/calendar.d.ts +0 -19
  10. package/dist/calendar.d.ts.map +1 -1
  11. package/dist/calendar.js +4 -44
  12. package/dist/calendar.js.map +1 -1
  13. package/dist/canvas-width.d.ts +23 -0
  14. package/dist/canvas-width.d.ts.map +1 -0
  15. package/dist/canvas-width.js +26 -0
  16. package/dist/canvas-width.js.map +1 -0
  17. package/dist/capacity.d.ts +28 -0
  18. package/dist/capacity.d.ts.map +1 -1
  19. package/dist/capacity.js +64 -29
  20. package/dist/capacity.js.map +1 -1
  21. package/dist/chart-translation.d.ts +22 -0
  22. package/dist/chart-translation.d.ts.map +1 -0
  23. package/dist/chart-translation.js +83 -0
  24. package/dist/chart-translation.js.map +1 -0
  25. package/dist/container-header-geometry.d.ts +64 -0
  26. package/dist/container-header-geometry.d.ts.map +1 -0
  27. package/dist/container-header-geometry.js +89 -0
  28. package/dist/container-header-geometry.js.map +1 -0
  29. package/dist/dsl-utils.d.ts +3 -4
  30. package/dist/dsl-utils.d.ts.map +1 -1
  31. package/dist/dsl-utils.js +8 -25
  32. package/dist/dsl-utils.js.map +1 -1
  33. package/dist/edge-routing.d.ts +69 -78
  34. package/dist/edge-routing.d.ts.map +1 -1
  35. package/dist/edge-routing.js +271 -401
  36. package/dist/edge-routing.js.map +1 -1
  37. package/dist/frame-tab-geometry.d.ts +24 -14
  38. package/dist/frame-tab-geometry.d.ts.map +1 -1
  39. package/dist/frame-tab-geometry.js +69 -23
  40. package/dist/frame-tab-geometry.js.map +1 -1
  41. package/dist/header-card-geometry.d.ts +12 -0
  42. package/dist/header-card-geometry.d.ts.map +1 -1
  43. package/dist/header-card-geometry.js +14 -2
  44. package/dist/header-card-geometry.js.map +1 -1
  45. package/dist/header-logo.d.ts +28 -0
  46. package/dist/header-logo.d.ts.map +1 -0
  47. package/dist/header-logo.js +51 -0
  48. package/dist/header-logo.js.map +1 -0
  49. package/dist/i18n.d.ts +11 -0
  50. package/dist/i18n.d.ts.map +1 -1
  51. package/dist/i18n.js +11 -1
  52. package/dist/i18n.js.map +1 -1
  53. package/dist/index.d.ts +20 -8
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +17 -7
  56. package/dist/index.js.map +1 -1
  57. package/dist/inline-date-pin-geometry.d.ts +19 -11
  58. package/dist/inline-date-pin-geometry.d.ts.map +1 -1
  59. package/dist/inline-date-pin-geometry.js +45 -46
  60. package/dist/inline-date-pin-geometry.js.map +1 -1
  61. package/dist/item-bar-geometry.d.ts +192 -4
  62. package/dist/item-bar-geometry.d.ts.map +1 -1
  63. package/dist/item-bar-geometry.js +258 -5
  64. package/dist/item-bar-geometry.js.map +1 -1
  65. package/dist/item-port-geometry.d.ts +13 -0
  66. package/dist/item-port-geometry.d.ts.map +1 -0
  67. package/dist/item-port-geometry.js +63 -0
  68. package/dist/item-port-geometry.js.map +1 -0
  69. package/dist/layout-context.d.ts +115 -51
  70. package/dist/layout-context.d.ts.map +1 -1
  71. package/dist/layout-context.js +96 -5
  72. package/dist/layout-context.js.map +1 -1
  73. package/dist/layout-insights.d.ts.map +1 -1
  74. package/dist/layout-insights.js +73 -1
  75. package/dist/layout-insights.js.map +1 -1
  76. package/dist/layout.d.ts +35 -0
  77. package/dist/layout.d.ts.map +1 -1
  78. package/dist/layout.js +18 -1315
  79. package/dist/layout.js.map +1 -1
  80. package/dist/nodes/anchor-node.d.ts.map +1 -1
  81. package/dist/nodes/anchor-node.js +11 -4
  82. package/dist/nodes/anchor-node.js.map +1 -1
  83. package/dist/nodes/content-extent.d.ts +24 -0
  84. package/dist/nodes/content-extent.d.ts.map +1 -0
  85. package/dist/nodes/content-extent.js +100 -0
  86. package/dist/nodes/content-extent.js.map +1 -0
  87. package/dist/nodes/dependency-edges.d.ts +6 -0
  88. package/dist/nodes/dependency-edges.d.ts.map +1 -0
  89. package/dist/nodes/dependency-edges.js +148 -0
  90. package/dist/nodes/dependency-edges.js.map +1 -0
  91. package/dist/nodes/footnote-node.d.ts +24 -3
  92. package/dist/nodes/footnote-node.d.ts.map +1 -1
  93. package/dist/nodes/footnote-node.js +129 -25
  94. package/dist/nodes/footnote-node.js.map +1 -1
  95. package/dist/nodes/group-node.d.ts +10 -21
  96. package/dist/nodes/group-node.d.ts.map +1 -1
  97. package/dist/nodes/group-node.js +79 -152
  98. package/dist/nodes/group-node.js.map +1 -1
  99. package/dist/nodes/header-node.d.ts +56 -0
  100. package/dist/nodes/header-node.d.ts.map +1 -0
  101. package/dist/nodes/header-node.js +163 -0
  102. package/dist/nodes/header-node.js.map +1 -0
  103. package/dist/nodes/include-node.d.ts +22 -12
  104. package/dist/nodes/include-node.d.ts.map +1 -1
  105. package/dist/nodes/include-node.js +95 -62
  106. package/dist/nodes/include-node.js.map +1 -1
  107. package/dist/nodes/item-measure.d.ts +135 -0
  108. package/dist/nodes/item-measure.d.ts.map +1 -0
  109. package/dist/nodes/item-measure.js +514 -0
  110. package/dist/nodes/item-measure.js.map +1 -0
  111. package/dist/nodes/item-node.d.ts +162 -9
  112. package/dist/nodes/item-node.d.ts.map +1 -1
  113. package/dist/nodes/item-node.js +256 -69
  114. package/dist/nodes/item-node.js.map +1 -1
  115. package/dist/nodes/marker-band.d.ts +118 -0
  116. package/dist/nodes/marker-band.d.ts.map +1 -0
  117. package/dist/nodes/marker-band.js +303 -0
  118. package/dist/nodes/marker-band.js.map +1 -0
  119. package/dist/nodes/marker-geometry.js +1 -1
  120. package/dist/nodes/marker-geometry.js.map +1 -1
  121. package/dist/nodes/milestone-node.d.ts +112 -15
  122. package/dist/nodes/milestone-node.d.ts.map +1 -1
  123. package/dist/nodes/milestone-node.js +246 -95
  124. package/dist/nodes/milestone-node.js.map +1 -1
  125. package/dist/nodes/nowline-node.d.ts +8 -0
  126. package/dist/nodes/nowline-node.d.ts.map +1 -0
  127. package/dist/nodes/nowline-node.js +74 -0
  128. package/dist/nodes/nowline-node.js.map +1 -0
  129. package/dist/nodes/parallel-node.d.ts +7 -12
  130. package/dist/nodes/parallel-node.d.ts.map +1 -1
  131. package/dist/nodes/parallel-node.js +66 -30
  132. package/dist/nodes/parallel-node.js.map +1 -1
  133. package/dist/nodes/region-markers.d.ts +41 -0
  134. package/dist/nodes/region-markers.d.ts.map +1 -0
  135. package/dist/nodes/region-markers.js +130 -0
  136. package/dist/nodes/region-markers.js.map +1 -0
  137. package/dist/nodes/roadmap-node.d.ts +9 -72
  138. package/dist/nodes/roadmap-node.d.ts.map +1 -1
  139. package/dist/nodes/roadmap-node.js +38 -788
  140. package/dist/nodes/roadmap-node.js.map +1 -1
  141. package/dist/nodes/row-track.d.ts +33 -0
  142. package/dist/nodes/row-track.d.ts.map +1 -0
  143. package/dist/nodes/row-track.js +170 -0
  144. package/dist/nodes/row-track.js.map +1 -0
  145. package/dist/nodes/sequence-item.d.ts +25 -0
  146. package/dist/nodes/sequence-item.d.ts.map +1 -0
  147. package/dist/nodes/sequence-item.js +396 -0
  148. package/dist/nodes/sequence-item.js.map +1 -0
  149. package/dist/nodes/sequence-one.d.ts +5 -0
  150. package/dist/nodes/sequence-one.d.ts.map +1 -0
  151. package/dist/nodes/sequence-one.js +26 -0
  152. package/dist/nodes/sequence-one.js.map +1 -0
  153. package/dist/nodes/swimlane-node.d.ts +5 -17
  154. package/dist/nodes/swimlane-node.d.ts.map +1 -1
  155. package/dist/nodes/swimlane-node.js +62 -145
  156. package/dist/nodes/swimlane-node.js.map +1 -1
  157. package/dist/nodes/wave-node.d.ts +52 -0
  158. package/dist/nodes/wave-node.d.ts.map +1 -0
  159. package/dist/nodes/wave-node.js +483 -0
  160. package/dist/nodes/wave-node.js.map +1 -0
  161. package/dist/non-working-display.d.ts +14 -0
  162. package/dist/non-working-display.d.ts.map +1 -0
  163. package/dist/non-working-display.js +28 -0
  164. package/dist/non-working-display.js.map +1 -0
  165. package/dist/phases/date-window.d.ts +48 -0
  166. package/dist/phases/date-window.d.ts.map +1 -0
  167. package/dist/phases/date-window.js +130 -0
  168. package/dist/phases/date-window.js.map +1 -0
  169. package/dist/phases/finalize.d.ts +198 -0
  170. package/dist/phases/finalize.d.ts.map +1 -0
  171. package/dist/phases/finalize.js +1058 -0
  172. package/dist/phases/finalize.js.map +1 -0
  173. package/dist/phases/measure.d.ts +77 -0
  174. package/dist/phases/measure.d.ts.map +1 -0
  175. package/dist/phases/measure.js +222 -0
  176. package/dist/phases/measure.js.map +1 -0
  177. package/dist/phases/place.d.ts +28 -0
  178. package/dist/phases/place.d.ts.map +1 -0
  179. package/dist/phases/place.js +225 -0
  180. package/dist/phases/place.js.map +1 -0
  181. package/dist/renderable.d.ts.map +1 -1
  182. package/dist/renderable.js +23 -3
  183. package/dist/renderable.js.map +1 -1
  184. package/dist/resolve-today.d.ts +11 -1
  185. package/dist/resolve-today.d.ts.map +1 -1
  186. package/dist/resolve-today.js +26 -12
  187. package/dist/resolve-today.js.map +1 -1
  188. package/dist/row-packer.d.ts +42 -16
  189. package/dist/row-packer.d.ts.map +1 -1
  190. package/dist/row-packer.js +51 -78
  191. package/dist/row-packer.js.map +1 -1
  192. package/dist/schedule.d.ts +58 -1
  193. package/dist/schedule.d.ts.map +1 -1
  194. package/dist/schedule.js +280 -106
  195. package/dist/schedule.js.map +1 -1
  196. package/dist/start-rules.d.ts +27 -0
  197. package/dist/start-rules.d.ts.map +1 -0
  198. package/dist/start-rules.js +91 -0
  199. package/dist/start-rules.js.map +1 -0
  200. package/dist/start-terms.d.ts +23 -0
  201. package/dist/start-terms.d.ts.map +1 -0
  202. package/dist/start-terms.js +27 -0
  203. package/dist/start-terms.js.map +1 -0
  204. package/dist/status-dot.d.ts +46 -0
  205. package/dist/status-dot.d.ts.map +1 -0
  206. package/dist/status-dot.js +78 -0
  207. package/dist/status-dot.js.map +1 -0
  208. package/dist/style-resolution.d.ts.map +1 -1
  209. package/dist/style-resolution.js +23 -43
  210. package/dist/style-resolution.js.map +1 -1
  211. package/dist/text-measure.d.ts +28 -0
  212. package/dist/text-measure.d.ts.map +1 -0
  213. package/dist/text-measure.js +70 -0
  214. package/dist/text-measure.js.map +1 -0
  215. package/dist/themes/contrast.d.ts +4 -0
  216. package/dist/themes/contrast.d.ts.map +1 -0
  217. package/dist/themes/contrast.js +32 -0
  218. package/dist/themes/contrast.js.map +1 -0
  219. package/dist/themes/dark.d.ts.map +1 -1
  220. package/dist/themes/dark.js +28 -1
  221. package/dist/themes/dark.js.map +1 -1
  222. package/dist/themes/grayscale.d.ts.map +1 -1
  223. package/dist/themes/grayscale.js +28 -1
  224. package/dist/themes/grayscale.js.map +1 -1
  225. package/dist/themes/index.d.ts +4 -11
  226. package/dist/themes/index.d.ts.map +1 -1
  227. package/dist/themes/index.js +6 -4
  228. package/dist/themes/index.js.map +1 -1
  229. package/dist/themes/light.d.ts.map +1 -1
  230. package/dist/themes/light.js +28 -1
  231. package/dist/themes/light.js.map +1 -1
  232. package/dist/themes/shape.d.ts +31 -0
  233. package/dist/themes/shape.d.ts.map +1 -1
  234. package/dist/themes/shared.d.ts +44 -50
  235. package/dist/themes/shared.d.ts.map +1 -1
  236. package/dist/themes/shared.js +79 -83
  237. package/dist/themes/shared.js.map +1 -1
  238. package/dist/time-scale.d.ts +42 -6
  239. package/dist/time-scale.d.ts.map +1 -1
  240. package/dist/time-scale.js +109 -17
  241. package/dist/time-scale.js.map +1 -1
  242. package/dist/types.d.ts +528 -11
  243. package/dist/types.d.ts.map +1 -1
  244. package/dist/view-preset.d.ts +61 -6
  245. package/dist/view-preset.d.ts.map +1 -1
  246. package/dist/view-preset.js +439 -24
  247. package/dist/view-preset.js.map +1 -1
  248. package/dist/wave-barrier.d.ts +107 -0
  249. package/dist/wave-barrier.d.ts.map +1 -0
  250. package/dist/wave-barrier.js +174 -0
  251. package/dist/wave-barrier.js.map +1 -0
  252. package/dist/wave-hatch.d.ts +4 -0
  253. package/dist/wave-hatch.d.ts.map +1 -0
  254. package/dist/wave-hatch.js +21 -0
  255. package/dist/wave-hatch.js.map +1 -0
  256. package/dist/wave-layout.d.ts +99 -0
  257. package/dist/wave-layout.d.ts.map +1 -0
  258. package/dist/wave-layout.js +130 -0
  259. package/dist/wave-layout.js.map +1 -0
  260. package/dist/working-calendar.d.ts +128 -4
  261. package/dist/working-calendar.d.ts.map +1 -1
  262. package/dist/working-calendar.js +725 -51
  263. package/dist/working-calendar.js.map +1 -1
  264. package/dist/working-span.d.ts +11 -0
  265. package/dist/working-span.d.ts.map +1 -0
  266. package/dist/working-span.js +18 -0
  267. package/dist/working-span.js.map +1 -0
  268. package/package.json +4 -4
  269. package/src/axis-columns.ts +140 -0
  270. package/src/calendar-resolver.ts +161 -0
  271. package/src/calendar.ts +4 -45
  272. package/src/canvas-width.ts +36 -0
  273. package/src/capacity.ts +71 -30
  274. package/src/chart-translation.ts +88 -0
  275. package/src/container-header-geometry.ts +116 -0
  276. package/src/dsl-utils.ts +8 -26
  277. package/src/edge-routing.ts +347 -491
  278. package/src/frame-tab-geometry.ts +78 -25
  279. package/src/header-card-geometry.ts +17 -2
  280. package/src/header-logo.ts +67 -0
  281. package/src/i18n.ts +22 -1
  282. package/src/index.ts +97 -12
  283. package/src/inline-date-pin-geometry.ts +55 -58
  284. package/src/item-bar-geometry.ts +341 -5
  285. package/src/item-port-geometry.ts +69 -0
  286. package/src/layout-context.ts +210 -72
  287. package/src/layout-insights.ts +109 -2
  288. package/src/layout.ts +57 -1530
  289. package/src/nodes/anchor-node.ts +11 -4
  290. package/src/nodes/content-extent.ts +107 -0
  291. package/src/nodes/dependency-edges.ts +171 -0
  292. package/src/nodes/footnote-node.ts +171 -31
  293. package/src/nodes/group-node.ts +92 -214
  294. package/src/nodes/header-node.ts +255 -0
  295. package/src/nodes/include-node.ts +124 -110
  296. package/src/nodes/item-measure.ts +723 -0
  297. package/src/nodes/item-node.ts +358 -80
  298. package/src/nodes/marker-band.ts +406 -0
  299. package/src/nodes/marker-geometry.ts +1 -1
  300. package/src/nodes/milestone-node.ts +321 -136
  301. package/src/nodes/nowline-node.ts +87 -0
  302. package/src/nodes/parallel-node.ts +69 -38
  303. package/src/nodes/region-markers.ts +194 -0
  304. package/src/nodes/roadmap-node.ts +46 -950
  305. package/src/nodes/row-track.ts +217 -0
  306. package/src/nodes/sequence-item.ts +433 -0
  307. package/src/nodes/sequence-one.ts +40 -0
  308. package/src/nodes/swimlane-node.ts +66 -205
  309. package/src/nodes/wave-node.ts +609 -0
  310. package/src/non-working-display.ts +32 -0
  311. package/src/phases/date-window.ts +191 -0
  312. package/src/phases/finalize.ts +1303 -0
  313. package/src/phases/measure.ts +329 -0
  314. package/src/phases/place.ts +318 -0
  315. package/src/renderable.ts +23 -3
  316. package/src/resolve-today.ts +28 -25
  317. package/src/row-packer.ts +85 -84
  318. package/src/schedule.ts +362 -114
  319. package/src/start-rules.ts +113 -0
  320. package/src/start-terms.ts +38 -0
  321. package/src/status-dot.ts +81 -0
  322. package/src/style-resolution.ts +27 -57
  323. package/src/text-measure.ts +71 -0
  324. package/src/themes/contrast.ts +34 -0
  325. package/src/themes/dark.ts +28 -1
  326. package/src/themes/grayscale.ts +28 -1
  327. package/src/themes/index.ts +10 -7
  328. package/src/themes/light.ts +28 -1
  329. package/src/themes/shape.ts +38 -0
  330. package/src/themes/shared.ts +85 -93
  331. package/src/time-scale.ts +117 -19
  332. package/src/types.ts +529 -20
  333. package/src/view-preset.ts +520 -27
  334. package/src/wave-barrier.ts +242 -0
  335. package/src/wave-hatch.ts +25 -0
  336. package/src/wave-layout.ts +203 -0
  337. package/src/working-calendar.ts +875 -57
  338. package/src/working-span.ts +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalize.js","sourceRoot":"","sources":["../../src/phases/finalize.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { NowlineFile, ResolveResult } from '@nowline/core';
2
+ import type { LayoutOptions } from '../layout.js';
3
+ import { HeaderNode, type MeasuredHeader } from '../nodes/header-node.js';
4
+ import { type DatePinnedMarker } from '../nodes/marker-band.js';
5
+ import { TimeScale } from '../time-scale.js';
6
+ import type { MarkerRowPlacement, PositionedTimelineScale } from '../types.js';
7
+ import { type ViewPreset } from '../view-preset.js';
8
+ import type { DateWindow, RoadmapScope } from './date-window.js';
9
+ export interface MeasuredRoadmap {
10
+ header: MeasuredHeader;
11
+ /** The node that measured the header; finalize places it (f15). */
12
+ headerNode: HeaderNode;
13
+ /** The natural axis. f2 keeps `originX` and `ppd` when it extends the scale. */
14
+ axis: {
15
+ originX: number;
16
+ ppd: number;
17
+ naturalWidth: number;
18
+ scale: TimeScale;
19
+ };
20
+ /** The canvas right edge before anything grows it: the natural axis plus a gutter. */
21
+ naturalChartRightX: number;
22
+ bands: HeaderBands;
23
+ /** Ticks and calendar runs for the natural window; f2 refreshes them. */
24
+ timeline: PositionedTimelineScale;
25
+ markers: MarkerEstimate;
26
+ }
27
+ /** The rows above the chart, top to bottom, and where the chart starts. */
28
+ export interface HeaderBands {
29
+ timelineY: number;
30
+ /**
31
+ * The now-pill row, reserved here when `today` falls inside the natural
32
+ * window. When the axis extension (f2) brings `today` in, f7 reserves it.
33
+ */
34
+ pillRowHeight: number;
35
+ tickPanelY: number;
36
+ tickPanelHeight: number;
37
+ waveStripY: number;
38
+ markerRowY: number;
39
+ /** Rows the pre-pack needed. f7 grows the band when the final pack needs more. */
40
+ estimatedMarkerRows: number;
41
+ /** Height of the rows above: pill row, tick panel, wave strip, estimated marker band. */
42
+ rowsHeight: number;
43
+ chartTopY: number;
44
+ /** Height of the mirrored bottom tick panel (f8); 0 when there is none. */
45
+ bottomTickPanelHeight: number;
46
+ }
47
+ export interface MarkerEstimate {
48
+ /** Date-pinned anchors and milestones with their x; they seed the entity edges. */
49
+ datePinned: ReadonlyArray<DatePinnedMarker>;
50
+ /** Pre-pack placements, already at the band's y. */
51
+ placements: ReadonlyMap<string, MarkerRowPlacement>;
52
+ /**
53
+ * Whether the band is drawn at all: the roadmap declares an anchor or a
54
+ * milestone, or the natural window holds a titled run or a working
55
+ * exception.
56
+ */
57
+ hasEntities: boolean;
58
+ }
59
+ export declare function measureRoadmap(file: NowlineFile, resolved: ResolveResult, options: LayoutOptions, scope: RoadmapScope, window: DateWindow): MeasuredRoadmap;
60
+ /**
61
+ * Where header rows `rowsHeight` tall start (the timeline y). In beside
62
+ * mode the header card's BOTTOM aligns with the bottom of the header rows
63
+ * so it visually anchors to the chart's top. When the card is taller than
64
+ * the rows + a 4 px top inset, push the timeline down so the card has room
65
+ * without clipping above the canvas.
66
+ */
67
+ export declare function headerRowsTimelineY(header: MeasuredHeader, rowsHeight: number): number;
68
+ /**
69
+ * Set (or refresh) the timeline's non-working runs from its current ticks,
70
+ * and its working exceptions. `nonWorkingDisplay` and `nonWorking` stay
71
+ * omitted when the window holds no non-working day, and `workingExceptions`
72
+ * when it holds no exception, so a calendar without either keeps its exact
73
+ * model shape. The extension pass only grows the window, so a refresh never
74
+ * loses an entry.
75
+ */
76
+ export declare function setCalendarRuns(timeline: PositionedTimelineScale, scale: TimeScale, unit: ViewPreset['unit']): void;
77
+ //# sourceMappingURL=measure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../src/phases/measure.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAEH,KAAK,gBAAgB,EAKxB,MAAM,yBAAyB,CAAC;AAWjC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAIH,KAAK,UAAU,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAKjE,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,mEAAmE;IACnE,UAAU,EAAE,UAAU,CAAC;IACvB,gFAAgF;IAChF,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;IAC/E,sFAAsF;IACtF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,yEAAyE;IACzE,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,cAAc,CAAC;CAC3B;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC3B,mFAAmF;IACnF,UAAU,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,oDAAoD;IACpD,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACpD;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,cAAc,CAC1B,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,UAAU,GACnB,eAAe,CAiMjB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,uBAAuB,EACjC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,GACzB,IAAI,CAQN"}
@@ -0,0 +1,222 @@
1
+ // Phase 2, measure (specs/layout-phases.md §3.3): everything the chart is
2
+ // laid out around, sized before any lane is placed. The header (its card
3
+ // fixes the chart's left edge and top), pixels per day and the natural
4
+ // time scale, the header rows above the chart (now-pill row, tick panel,
5
+ // wave strip, marker band) and the timeline of the natural window.
6
+ //
7
+ // The marker band is an estimate: floating milestones get their x only
8
+ // from placement, and an extended axis can add calendar runs, so finalize
9
+ // packs every marker again (f5) and grows the band when it needs more
10
+ // rows (f7). Nothing here reads placement state.
11
+ import { cappedPixelsPerDay } from '../canvas-width.js';
12
+ import { propValue } from '../dsl-utils.js';
13
+ import { resolveHeaderLogo } from '../header-logo.js';
14
+ import { HeaderNode } from '../nodes/header-node.js';
15
+ import { calendarMarkerEntries, datePinnedMarkerEntries, markerLabelsRightX, markerRowPlacements, packMarkerRow, } from '../nodes/marker-band.js';
16
+ import { MARKER_ROW_CENTER_OFFSET_PX, MARKER_ROW_PITCH_PX } from '../nodes/marker-geometry.js';
17
+ import { hasVisibleWaves } from '../schedule.js';
18
+ import { resolveStyle } from '../style-resolution.js';
19
+ import { estimateTextWidth } from '../text-measure.js';
20
+ import { GUTTER_PX, HEADER_HEIGHT_PX, NOW_PILL_HEIGHT_PX, WAVE_STRIP_HEIGHT_PX, } from '../themes/shared.js';
21
+ import { TimeScale } from '../time-scale.js';
22
+ import { buildHeaderTicks, buildNonWorkingRuns, buildWorkingExceptions, } from '../view-preset.js';
23
+ /** Gap (px) between the header rows and the chart top. */
24
+ const HEADER_ROWS_TO_CHART_GAP_PX = 8;
25
+ export function measureRoadmap(file, resolved, options, scope, window) {
26
+ const { locale, styleCtx } = scope;
27
+ const { calendar, preset: scale, startDate, timelineDays, nonWorking } = window;
28
+ const endDate = window.naturalEndDate;
29
+ // Waves only draw when one has items (specs/waves.md §9.1).
30
+ const plan = hasVisibleWaves(window.schedule) ? window.schedule.plan : undefined;
31
+ const headerStyle = scope.roadmapStyle;
32
+ // `top` (default) keeps the legacy single-strip header; `bottom`
33
+ // suppresses the top tick panel (now-pill and marker row stay
34
+ // at the top because anchors / milestones live there); `both`
35
+ // mirrors the strip at the chart bottom too. See specs/dsl.md
36
+ // and specs/rendering.md § Timeline Scale.
37
+ // `header-height` sizes every tick panel (top and mirrored bottom);
38
+ // `none` drops them all, whatever `timeline-position` asks for.
39
+ const tickPanelBucketHeight = HEADER_HEIGHT_PX[headerStyle.headerHeight] ??
40
+ HEADER_HEIGHT_PX.md;
41
+ const showTopTickPanel = tickPanelBucketHeight > 0 && headerStyle.timelinePosition !== 'bottom';
42
+ const showBottomTickPanel = tickPanelBucketHeight > 0 &&
43
+ (headerStyle.timelinePosition === 'bottom' || headerStyle.timelinePosition === 'both');
44
+ // Measure the header: the beside card's size or the above band's
45
+ // height, which fix the chart's left edge and top. The company logo
46
+ // (when the caller loaded one) widens the card by its slot and can
47
+ // make it taller; see header-logo.ts.
48
+ const titleStr = file.roadmapDecl?.title ?? file.roadmapDecl?.name ?? '';
49
+ const authorStr = propValue(file.roadmapDecl?.properties ?? [], 'author');
50
+ const headerNode = new HeaderNode({
51
+ title: titleStr,
52
+ author: authorStr,
53
+ style: headerStyle,
54
+ logo: resolveHeaderLogo(file, options.logo),
55
+ });
56
+ const measuredHeader = headerNode.measure();
57
+ const { chartLeftX } = measuredHeader;
58
+ // The chart sizes to natural content width (date window × ppd) plus
59
+ // chrome padding. `options.width`, when set, is a best-effort
60
+ // maximum canvas width: it shrinks ppd (never below
61
+ // `MIN_PIXELS_PER_DAY`) so header card + gutters + timeline fit,
62
+ // but caption spills and run labels can still grow the canvas
63
+ // past it in finalize. The two `GUTTER_PX` insets keep the header
64
+ // card and attribution wordmark from butting against the canvas edges.
65
+ const ppd = cappedPixelsPerDay({
66
+ naturalPixelsPerDay: scale.pixelsPerUnit / calendar.daysPerUnit(scale.unit),
67
+ dayCount: timelineDays,
68
+ chromeWidth: chartLeftX + 2 * GUTTER_PX,
69
+ maxWidth: options.width,
70
+ });
71
+ const naturalWidth = timelineDays * ppd;
72
+ const originX = chartLeftX + GUTTER_PX;
73
+ const totalChartWidth = naturalWidth;
74
+ // Header layout (top → bottom):
75
+ // 1. Now-pill row (16 px) — only when there's a now-line
76
+ // 2. Tick-label panel (`header-height`, 24 px at md) — unless
77
+ // `timeline-position:bottom` or `header-height:none`
78
+ // 3. Wave strip (20 px) — only when the roadmap declares waves
79
+ // 4. Marker row (≥26 px) — sized to the packed row count
80
+ // 5. 8 px gap, then the chart begins
81
+ const willHaveNowline = options.today !== undefined && options.today >= startDate && options.today <= endDate;
82
+ const pillRowHeight = willHaveNowline ? NOW_PILL_HEIGHT_PX : 0;
83
+ // When `timeline-position:bottom` or `header-height:none` is set,
84
+ // the top tick panel collapses to height 0 — the now-pill and
85
+ // marker row stack directly without the date strip between them.
86
+ const tickPanelHeight = showTopTickPanel ? tickPanelBucketHeight : 0;
87
+ // The wave strip (specs/waves.md §8.8) has a fixed height, so the
88
+ // chart top is known before the barrier passes run; it sits above
89
+ // the marker rows, so the post-hoc marker re-pack never moves it.
90
+ const waveStripHeight = plan ? WAVE_STRIP_HEIGHT_PX : 0;
91
+ // Build the time scale up front — packMarkerRow needs it to
92
+ // resolve date-pinned entity x positions before we can size the
93
+ // marker row band.
94
+ const timeScale = new TimeScale({
95
+ domain: [startDate, endDate],
96
+ range: [originX, originX + naturalWidth],
97
+ calendar,
98
+ nonWorking,
99
+ });
100
+ // Titled non-working runs and working exceptions join the marker
101
+ // row (5b). These are provisional: they size the band before the
102
+ // timeline exists, and their ticks only decide `seam`, which the
103
+ // labels never read. Finalize re-packs with the final ones.
104
+ const provisionalRunEntries = calendarMarkerEntries(buildNonWorkingRuns(timeScale, [], scale.unit, false), buildWorkingExceptions(timeScale));
105
+ const hasMarkerEntities = resolved.content.anchors.size + resolved.content.milestones.size > 0 ||
106
+ provisionalRunEntries.length > 0;
107
+ // Initial canvas extent = natural date window + canonical
108
+ // gutters. Item caption spills are unknown until the swimlane
109
+ // pass runs and grow the canvas in finalize. The now-pill doesn't
110
+ // contribute here — `buildNowline` flips it to flag mode whenever a
111
+ // centered pill would clip an edge.
112
+ const naturalChartRightX = originX + totalChartWidth + GUTTER_PX;
113
+ // Resolve each date-pinned anchor and milestone's x. Used both for
114
+ // the marker-row pack and for `after:` resolution downstream — an
115
+ // item with `after:kickoff` would otherwise see an empty
116
+ // entityRightEdges entry and silently fall through to `cursor.x`
117
+ // (= the chart origin). After-only milestones still resolve later
118
+ // once their predecessors are known.
119
+ const datePinnedEntries = datePinnedMarkerEntries(resolved.content.anchors, resolved.content.milestones, timeScale);
120
+ // Pack the date-pinned markers. Each entity gets a row index
121
+ // (0 = in-row baseline, 1 = bumped down by one step, …) and a
122
+ // label box that may be flipped to the LEFT side when the natural
123
+ // right-side label would overflow the canvas. Earlier
124
+ // entries claim row 0; later ones drop to row 1+ when their
125
+ // bounding box (diamond + label) overlaps an already-placed
126
+ // entry. The renderer reads `labelBox.x/y` directly.
127
+ // Titled runs and working exceptions pack after the markers. Every
128
+ // entry packs against
129
+ // the right edge the post-layout canvas growth will give its label.
130
+ const preliminaryEntries = [...datePinnedEntries, ...provisionalRunEntries];
131
+ const packed = packMarkerRow(preliminaryEntries, chartLeftX, markerLabelsRightX(preliminaryEntries, chartLeftX, naturalChartRightX, estimateTextWidth), estimateTextWidth);
132
+ const markerRowsCount = hasMarkerEntities ? Math.max(1, packed.rowCount) : 0;
133
+ const markerRowHeight = markerRowsCount * MARKER_ROW_PITCH_PX;
134
+ const headerRowsHeight = pillRowHeight + tickPanelHeight + waveStripHeight + markerRowHeight;
135
+ const timelineHeightBudget = headerRowsHeight + HEADER_ROWS_TO_CHART_GAP_PX;
136
+ const timelineY = headerRowsTimelineY(measuredHeader, headerRowsHeight);
137
+ const tickPanelY = timelineY + pillRowHeight;
138
+ const waveStripY = tickPanelY + tickPanelHeight;
139
+ const markerRowY = waveStripY + waveStripHeight;
140
+ const ticks = buildHeaderTicks(timeScale, scale, calendar, locale);
141
+ const timeline = {
142
+ box: { x: originX, y: timelineY, width: naturalWidth, height: 0 },
143
+ ticks,
144
+ pixelsPerDay: ppd,
145
+ originX,
146
+ startDate,
147
+ endDate,
148
+ labelStyle: resolveStyle('roadmap', [], styleCtx),
149
+ pillRowHeight,
150
+ tickPanelY,
151
+ tickPanelHeight,
152
+ markerRow: {
153
+ y: markerRowY + MARKER_ROW_CENTER_OFFSET_PX,
154
+ height: markerRowHeight,
155
+ collisionY: markerRowY - 8,
156
+ },
157
+ // `bottomTickPanelY` / `bottomTickPanelHeight` are filled in by
158
+ // finalize, AFTER swimlanes + includes are placed (and after the
159
+ // marker re-pack potentially grows the chart), so the panel sits
160
+ // directly above the footnote area.
161
+ minorGrid: headerStyle.minorGrid,
162
+ ...(plan ? { waveStrip: { y: waveStripY, height: waveStripHeight } } : {}),
163
+ };
164
+ setCalendarRuns(timeline, timeScale, scale.unit);
165
+ return {
166
+ header: measuredHeader,
167
+ headerNode,
168
+ axis: { originX, ppd, naturalWidth, scale: timeScale },
169
+ naturalChartRightX,
170
+ bands: {
171
+ timelineY,
172
+ pillRowHeight,
173
+ tickPanelY,
174
+ tickPanelHeight,
175
+ waveStripY,
176
+ markerRowY,
177
+ estimatedMarkerRows: markerRowsCount,
178
+ rowsHeight: headerRowsHeight,
179
+ chartTopY: timelineY + timelineHeightBudget,
180
+ bottomTickPanelHeight: showBottomTickPanel ? tickPanelBucketHeight : 0,
181
+ },
182
+ timeline,
183
+ markers: {
184
+ datePinned: datePinnedEntries,
185
+ // AnchorNode and MilestoneNode read these to recover both the y
186
+ // and the resolved label box; after-only milestones (not
187
+ // pre-positioned here) take the band's first row until the
188
+ // final pack.
189
+ placements: markerRowPlacements(packed.placements, markerRowY),
190
+ hasEntities: hasMarkerEntities,
191
+ },
192
+ };
193
+ }
194
+ /**
195
+ * Where header rows `rowsHeight` tall start (the timeline y). In beside
196
+ * mode the header card's BOTTOM aligns with the bottom of the header rows
197
+ * so it visually anchors to the chart's top. When the card is taller than
198
+ * the rows + a 4 px top inset, push the timeline down so the card has room
199
+ * without clipping above the canvas.
200
+ */
201
+ export function headerRowsTimelineY(header, rowsHeight) {
202
+ return Math.max(header.chartTopY, header.minRowsBottomY - rowsHeight);
203
+ }
204
+ /**
205
+ * Set (or refresh) the timeline's non-working runs from its current ticks,
206
+ * and its working exceptions. `nonWorkingDisplay` and `nonWorking` stay
207
+ * omitted when the window holds no non-working day, and `workingExceptions`
208
+ * when it holds no exception, so a calendar without either keeps its exact
209
+ * model shape. The extension pass only grows the window, so a refresh never
210
+ * loses an entry.
211
+ */
212
+ export function setCalendarRuns(timeline, scale, unit) {
213
+ const runs = buildNonWorkingRuns(scale, timeline.ticks, unit, timeline.minorGrid);
214
+ if (runs) {
215
+ timeline.nonWorkingDisplay = scale.showsNonWorking ? 'show' : 'hide';
216
+ timeline.nonWorking = runs;
217
+ }
218
+ const exceptions = buildWorkingExceptions(scale);
219
+ if (exceptions)
220
+ timeline.workingExceptions = exceptions;
221
+ }
222
+ //# sourceMappingURL=measure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../src/phases/measure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ResolveResult, SwimlaneDeclaration } from '@nowline/core';
2
+ import { type LayoutContext, type LayoutHelpers } from '../layout-context.js';
3
+ import { type MilestonePlacement } from '../nodes/milestone-node.js';
4
+ import type { PositionedIncludeRegion, PositionedRoadmap, PositionedSwimlane } from '../types.js';
5
+ import type { DateWindow, RoadmapScope } from './date-window.js';
6
+ import type { MeasuredRoadmap } from './measure.js';
7
+ /** A placed chart, every y in the chart's local frame (top at 0) until f7 translates it. */
8
+ export interface PlacedChart {
9
+ /** Entity maps and placed items of the kept pass; finalize reads them, never writes placements. */
10
+ ctx: LayoutContext;
11
+ swimlanes: PositionedSwimlane[];
12
+ includes: PositionedIncludeRegion[];
13
+ /**
14
+ * Each kept region's own context, in `includes` order: its placed
15
+ * items and marker edges, which its dependency edges read (f11).
16
+ */
17
+ regionContexts: LayoutContext[];
18
+ /** x, slack arrows and overrun; f6 adds the row and label box and builds `PositionedMilestone`. */
19
+ milestones: MilestonePlacement[];
20
+ laneEntries: SwimlaneDeclaration[];
21
+ /** Rightmost bar or spilled caption of the kept lane pass. */
22
+ maxRightX: number;
23
+ /** Bottom of the last lane or region (P5). */
24
+ bottomY: number;
25
+ waveSolve?: PositionedRoadmap['waveSolve'];
26
+ }
27
+ export declare function placeChart(resolved: ResolveResult, scope: RoadmapScope, window: DateWindow, measured: MeasuredRoadmap, helpers: LayoutHelpers): PlacedChart;
28
+ //# sourceMappingURL=place.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../src/phases/place.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAIxE,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGnG,OAAO,EAGH,KAAK,kBAAkB,EAC1B,MAAM,4BAA4B,CAAC;AAOpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AASlG,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,4FAA4F;AAC5F,MAAM,WAAW,WAAW;IACxB,mGAAmG;IACnG,GAAG,EAAE,aAAa,CAAC;IACnB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC;;;OAGG;IACH,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,mGAAmG;IACnG,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC9C;AAED,wBAAgB,UAAU,CACtB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,aAAa,GACvB,WAAW,CAiOb"}