@nowline/layout 0.8.6 → 0.9.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
@@ -1 +1 @@
1
- {"version":3,"file":"edge-routing.js","sourceRoot":"","sources":["../src/edge-routing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edge-routing.js","sourceRoot":"","sources":["../src/edge-routing.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
+ /** Font size (px) of the 600-weight title in `FONT_STACK.sans`. */
2
+ export declare const FRAME_TAB_TITLE_FONT_SIZE_PX = 12;
3
+ /** Font size (px) of the regular-weight owner name in `FONT_STACK.sans`. */
4
+ export declare const FRAME_TAB_OWNER_FONT_SIZE_PX = 10;
5
+ /** Estimated rendered width (px) of a frame-tab title. */
6
+ export declare function estimateFrameTabTitleWidth(title: string): number;
7
+ /** Estimated rendered width (px) of a frame-tab owner name, without its glyph. */
8
+ export declare function estimateFrameTabOwnerWidth(owner: string): number;
1
9
  /**
2
- * Px-per-char for a 12 pt 600-weight title in `FONT_STACK.sans`.
3
- * Calibrated against system-ui at 12 pt bold (~6.3 px/char actual);
4
- * 6.5 leaves a small safety margin without producing a wide gap to
5
- * the owner / badge that follows.
10
+ * Size (px) of the person / people glyph that leads the owner name. One
11
+ * em of the 10 pt owner text, like the lane capacity badge's glyph.
6
12
  */
7
- export declare const FRAME_TAB_TITLE_PX_PER_CHAR = 6.5;
8
- /**
9
- * Px-per-char for a 10 pt regular owner suffix in `FONT_STACK.sans`.
10
- * Calibrated against system-ui at 10 pt regular (~5 px/char actual).
11
- */
12
- export declare const FRAME_TAB_OWNER_PX_PER_CHAR = 5;
13
+ export declare const FRAME_TAB_OWNER_GLYPH_PX = 10;
14
+ /** Gap (px) between the owner glyph and the owner name. */
15
+ export declare const FRAME_TAB_OWNER_GLYPH_GAP_PX = 3;
13
16
  /**
14
17
  * Visible gap (px) between adjacent text elements inside the chiclet:
15
18
  * title→owner, owner→badge, and (no-owner) title→badge. Small enough
@@ -33,7 +36,10 @@ export declare const FRAME_TAB_OFFSET_FROM_BOX_PX = 10;
33
36
  export interface FrameTabGeometry {
34
37
  /** Estimated rendered width (px) of the title text, no min-clamp. */
35
38
  titleTextWidth: number;
36
- /** Estimated rendered width (px) of the owner suffix; 0 when no owner. */
39
+ /**
40
+ * Estimated rendered width (px) of the owner suffix, glyph and name
41
+ * together; 0 when no owner.
42
+ */
37
43
  ownerTextWidth: number;
38
44
  /** Width (px) of the capacity badge as supplied by the caller; 0 when none. */
39
45
  capacityBadgeWidth: number;
@@ -41,8 +47,10 @@ export interface FrameTabGeometry {
41
47
  footnoteIndicatorWidth: number;
42
48
  /** Canvas X (px) where the title text is painted. */
43
49
  titleX: number;
44
- /** Canvas X (px) where the owner text is painted; 0 when no owner. */
50
+ /** Canvas X (px) where the owner glyph is painted; 0 when no owner. */
45
51
  ownerX: number;
52
+ /** Canvas X (px) where the owner name is painted, past the glyph; 0 when no owner. */
53
+ ownerTextX: number;
46
54
  /** Canvas X (px) where the capacity badge starts; 0 when no badge. */
47
55
  badgeX: number;
48
56
  /**
@@ -59,7 +67,9 @@ export interface FrameTabGeometry {
59
67
  rightX: number;
60
68
  }
61
69
  /**
62
- * Single source of truth for the swimlane chiclet's geometry.
70
+ * Single source of truth for the swimlane chiclet's geometry. Layout
71
+ * calls it once per lane and carries the result on
72
+ * `PositionedSwimlane.tab`; the renderer draws from that.
63
73
  *
64
74
  * `capacityBadgeWidth` and `footnoteIndicatorWidth` are supplied by
65
75
  * the caller — they depend on resolved icon shape / footnote-indicator
@@ -69,7 +79,7 @@ export interface FrameTabGeometry {
69
79
  *
70
80
  * Layout order inside the chiclet, left → right:
71
81
  *
72
- * [LEFT_INSET] title (INNER_GAP) owner (INNER_GAP) badge (INNER_GAP) footnote [RIGHT_INSET]
82
+ * [LEFT_INSET] title (INNER_GAP) glyph owner (INNER_GAP) badge (INNER_GAP) footnote [RIGHT_INSET]
73
83
  *
74
84
  * Each element is optional except title; gaps are inserted only between
75
85
  * present elements.
@@ -1 +1 @@
1
- {"version":3,"file":"frame-tab-geometry.d.ts","sourceRoot":"","sources":["../src/frame-tab-geometry.ts"],"names":[],"mappings":"AA0BA;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,iGAAiG;AACjG,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,uFAAuF;AACvF,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC7B,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,sBAAsB,EAAE,MAAM,CAAC;IAE/B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,kBAAkB,GAAE,MAAU,EAC9B,sBAAsB,GAAE,MAAU,GACnC,gBAAgB,CA8ClB"}
1
+ {"version":3,"file":"frame-tab-geometry.d.ts","sourceRoot":"","sources":["../src/frame-tab-geometry.ts"],"names":[],"mappings":"AA2BA,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,KAAK,CAAC;AA8B/C,0DAA0D;AAC1D,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,2DAA2D;AAC3D,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,iGAAiG;AACjG,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,uFAAuF;AACvF,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC7B,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,sBAAsB,EAAE,MAAM,CAAC;IAE/B,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,kBAAkB,GAAE,MAAU,EAC9B,sBAAsB,GAAE,MAAU,GACnC,gBAAgB,CAoDlB"}
@@ -1,8 +1,9 @@
1
1
  // Frame-tab chiclet geometry — the rounded label tab that overhangs a
2
- // swimlane's frame. Both the layout (collision math) and the renderer
3
- // (drawing) call `frameTabGeometry` so the chiclet's painted footprint
4
- // matches the bounding box layout reserves for it, and so the same
5
- // helper computes WHERE inside the chiclet each text element lands.
2
+ // swimlane's frame. Layout calls `frameTabGeometry` once per lane, with
3
+ // the owner's display title, uses it for the collision math and carries
4
+ // it on `PositionedSwimlane.tab`; the renderer draws from that, so the
5
+ // chiclet's painted footprint is the box layout reserved for it, and the
6
+ // same helper computes WHERE inside the chiclet each text element lands.
6
7
  //
7
8
  // Design note: this helper separates two concerns that used to be
8
9
  // conflated in a single set of "column widths":
@@ -18,23 +19,60 @@
18
19
  // chip. This means short labels naturally shrink-wrap their
19
20
  // chiclet rather than reserving a wide whitespace column.
20
21
  //
21
- // The per-char width factors are calibrated to actual avg-char-width
22
- // of the system sans-serif stack at the relevant font sizes / weights.
23
- // They lean slightly conservative (~5 % over actual) so the chiclet
24
- // never visually clips its label even when the runtime font's metrics
25
- // exceed the calibration target.
26
- /**
27
- * Px-per-char for a 12 pt 600-weight title in `FONT_STACK.sans`.
28
- * Calibrated against system-ui at 12 pt bold (~6.3 px/char actual);
29
- * 6.5 leaves a small safety margin without producing a wide gap to
30
- * the owner / badge that follows.
31
- */
32
- export const FRAME_TAB_TITLE_PX_PER_CHAR = 6.5;
22
+ // The width factors are calibrated to the system sans-serif stack at
23
+ // the relevant font sizes / weights. Title and owner use per-character
24
+ // width classes rather than one average: a flat average let wide text
25
+ // ("Headcount", "Sam Chen") overrun its estimate by most of the inner
26
+ // gap while narrow text ("Sprint pts") reserved a wide hole.
27
+ /** Font size (px) of the 600-weight title in `FONT_STACK.sans`. */
28
+ export const FRAME_TAB_TITLE_FONT_SIZE_PX = 12;
29
+ /** Font size (px) of the regular-weight owner name in `FONT_STACK.sans`. */
30
+ export const FRAME_TAB_OWNER_FONT_SIZE_PX = 10;
31
+ // Width classes, in em. Calibrated against system-ui (Inter) at 12px
32
+ // semibold, the widest common resolution of the stack, so other system
33
+ // fonts land at or slightly inside the estimate.
34
+ const NARROW_EM = 0.28;
35
+ const SEMI_NARROW_EM = 0.4;
36
+ const WIDE_EM = 0.9;
37
+ const CAPITAL_OR_DIGIT_EM = 0.7;
38
+ const DEFAULT_EM = 0.6;
39
+ const NARROW_CHARS = new Set(" ijlI.,:;!'|`");
40
+ const SEMI_NARROW_CHARS = new Set('frt()[]{}/\\1-_"');
41
+ const WIDE_CHARS = new Set('mwMW@%');
42
+ // Regular weight draws about 5 % narrower per em than semibold, which
43
+ // the classes are calibrated to (Inter at 10px regular).
44
+ const REGULAR_WEIGHT_SCALE = 0.95;
45
+ function estimateClassedEm(text) {
46
+ let em = 0;
47
+ for (const ch of text) {
48
+ if (NARROW_CHARS.has(ch))
49
+ em += NARROW_EM;
50
+ else if (SEMI_NARROW_CHARS.has(ch))
51
+ em += SEMI_NARROW_EM;
52
+ else if (WIDE_CHARS.has(ch))
53
+ em += WIDE_EM;
54
+ else if (/[A-Z0-9]/.test(ch))
55
+ em += CAPITAL_OR_DIGIT_EM;
56
+ else
57
+ em += DEFAULT_EM;
58
+ }
59
+ return em;
60
+ }
61
+ /** Estimated rendered width (px) of a frame-tab title. */
62
+ export function estimateFrameTabTitleWidth(title) {
63
+ return estimateClassedEm(title) * FRAME_TAB_TITLE_FONT_SIZE_PX;
64
+ }
65
+ /** Estimated rendered width (px) of a frame-tab owner name, without its glyph. */
66
+ export function estimateFrameTabOwnerWidth(owner) {
67
+ return estimateClassedEm(owner) * FRAME_TAB_OWNER_FONT_SIZE_PX * REGULAR_WEIGHT_SCALE;
68
+ }
33
69
  /**
34
- * Px-per-char for a 10 pt regular owner suffix in `FONT_STACK.sans`.
35
- * Calibrated against system-ui at 10 pt regular (~5 px/char actual).
70
+ * Size (px) of the person / people glyph that leads the owner name. One
71
+ * em of the 10 pt owner text, like the lane capacity badge's glyph.
36
72
  */
37
- export const FRAME_TAB_OWNER_PX_PER_CHAR = 5;
73
+ export const FRAME_TAB_OWNER_GLYPH_PX = 10;
74
+ /** Gap (px) between the owner glyph and the owner name. */
75
+ export const FRAME_TAB_OWNER_GLYPH_GAP_PX = 3;
38
76
  /**
39
77
  * Visible gap (px) between adjacent text elements inside the chiclet:
40
78
  * title→owner, owner→badge, and (no-owner) title→badge. Small enough
@@ -56,7 +94,9 @@ export const FRAME_TAB_MIN_WIDTH_PX = 56;
56
94
  /** Horizontal offset (px) from the swimlane box's left edge to the tab's left edge. */
57
95
  export const FRAME_TAB_OFFSET_FROM_BOX_PX = 10;
58
96
  /**
59
- * Single source of truth for the swimlane chiclet's geometry.
97
+ * Single source of truth for the swimlane chiclet's geometry. Layout
98
+ * calls it once per lane and carries the result on
99
+ * `PositionedSwimlane.tab`; the renderer draws from that.
60
100
  *
61
101
  * `capacityBadgeWidth` and `footnoteIndicatorWidth` are supplied by
62
102
  * the caller — they depend on resolved icon shape / footnote-indicator
@@ -66,7 +106,7 @@ export const FRAME_TAB_OFFSET_FROM_BOX_PX = 10;
66
106
  *
67
107
  * Layout order inside the chiclet, left → right:
68
108
  *
69
- * [LEFT_INSET] title (INNER_GAP) owner (INNER_GAP) badge (INNER_GAP) footnote [RIGHT_INSET]
109
+ * [LEFT_INSET] title (INNER_GAP) glyph owner (INNER_GAP) badge (INNER_GAP) footnote [RIGHT_INSET]
70
110
  *
71
111
  * Each element is optional except title; gaps are inserted only between
72
112
  * present elements.
@@ -74,13 +114,18 @@ export const FRAME_TAB_OFFSET_FROM_BOX_PX = 10;
74
114
  export function frameTabGeometry(boxX, title, owner, capacityBadgeWidth = 0, footnoteIndicatorWidth = 0) {
75
115
  const tabX = boxX + FRAME_TAB_OFFSET_FROM_BOX_PX;
76
116
  const titleX = tabX + FRAME_TAB_LEFT_INSET_PX;
77
- const titleTextWidth = title.length * FRAME_TAB_TITLE_PX_PER_CHAR;
117
+ const titleTextWidth = estimateFrameTabTitleWidth(title);
78
118
  let cursorX = titleX + titleTextWidth;
79
119
  let ownerTextWidth = 0;
80
120
  let ownerX = 0;
121
+ let ownerTextX = 0;
81
122
  if (owner) {
82
- ownerTextWidth = `owner: ${owner}`.length * FRAME_TAB_OWNER_PX_PER_CHAR;
123
+ ownerTextWidth =
124
+ FRAME_TAB_OWNER_GLYPH_PX +
125
+ FRAME_TAB_OWNER_GLYPH_GAP_PX +
126
+ estimateFrameTabOwnerWidth(owner);
83
127
  ownerX = cursorX + FRAME_TAB_INNER_GAP_PX;
128
+ ownerTextX = ownerX + FRAME_TAB_OWNER_GLYPH_PX + FRAME_TAB_OWNER_GLYPH_GAP_PX;
84
129
  cursorX = ownerX + ownerTextWidth;
85
130
  }
86
131
  let badgeX = 0;
@@ -105,6 +150,7 @@ export function frameTabGeometry(boxX, title, owner, capacityBadgeWidth = 0, foo
105
150
  footnoteIndicatorWidth,
106
151
  titleX,
107
152
  ownerX,
153
+ ownerTextX,
108
154
  badgeX,
109
155
  footnoteRightX,
110
156
  tabX,
@@ -1 +1 @@
1
- {"version":3,"file":"frame-tab-geometry.js","sourceRoot":"","sources":["../src/frame-tab-geometry.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,sEAAsE;AACtE,uEAAuE;AACvE,mEAAmE;AACnE,oEAAoE;AACpE,EAAE;AACF,kEAAkE;AAClE,gDAAgD;AAChD,EAAE;AACF,qEAAqE;AACrE,8DAA8D;AAC9D,sEAAsE;AACtE,yDAAyD;AACzD,EAAE;AACF,oEAAoE;AACpE,mEAAmE;AACnE,qEAAqE;AACrE,gEAAgE;AAChE,8DAA8D;AAC9D,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,oEAAoE;AACpE,sEAAsE;AACtE,iCAAiC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,iGAAiG;AACjG,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,uFAAuF;AACvF,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAiC/C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAC5B,IAAY,EACZ,KAAa,EACb,KAAyB,EACzB,kBAAkB,GAAW,CAAC,EAC9B,sBAAsB,GAAW,CAAC;IAElC,MAAM,IAAI,GAAG,IAAI,GAAG,4BAA4B,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,uBAAuB,CAAC;IAE9C,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,GAAG,2BAA2B,CAAC;IAClE,IAAI,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;IAEtC,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,KAAK,EAAE,CAAC;QACR,cAAc,GAAG,UAAU,KAAK,EAAE,CAAC,MAAM,GAAG,2BAA2B,CAAC;QACxE,MAAM,GAAG,OAAO,GAAG,sBAAsB,CAAC;QAC1C,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,OAAO,GAAG,sBAAsB,CAAC;QAC1C,OAAO,GAAG,MAAM,GAAG,kBAAkB,CAAC;IAC1C,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC7B,4DAA4D;QAC5D,6DAA6D;QAC7D,+CAA+C;QAC/C,cAAc,GAAG,OAAO,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;QAC3E,OAAO,GAAG,cAAc,CAAC;IAC7B,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,wBAAwB,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAExD,OAAO;QACH,cAAc;QACd,cAAc;QACd,kBAAkB;QAClB,sBAAsB;QACtB,MAAM;QACN,MAAM;QACN,MAAM;QACN,cAAc;QACd,IAAI;QACJ,IAAI;QACJ,MAAM,EAAE,IAAI,GAAG,IAAI;KACtB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"frame-tab-geometry.js","sourceRoot":"","sources":["../src/frame-tab-geometry.ts"],"names":[],"mappings":"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"}
@@ -26,4 +26,16 @@ export declare const HEADER_TITLE_TO_AUTHOR_GAP_PX = 18;
26
26
  export declare const HEADER_TITLE_FONT_SIZE_PX = 16;
27
27
  /** Font size (px) of the author text (subtitle). */
28
28
  export declare const HEADER_AUTHOR_FONT_SIZE_PX = 11;
29
+ /** Horizontal gap (px) between a company logo and the title / author text. */
30
+ export declare const HEADER_LOGO_GAP_PX = 12;
31
+ /**
32
+ * Minimum clearance (px) above and below a company logo inside the card.
33
+ * A logo taller than the text block grows the card to keep it.
34
+ */
35
+ export declare const HEADER_LOGO_PAD_Y_PX = 10;
36
+ /**
37
+ * Widest a company logo may draw (px). A logo whose `logo-size:` height
38
+ * would make it wider scales down uniformly until it fits.
39
+ */
40
+ export declare const HEADER_LOGO_MAX_WIDTH_PX = 160;
29
41
  //# sourceMappingURL=header-card-geometry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-card-geometry.d.ts","sourceRoot":"","sources":["../src/header-card-geometry.ts"],"names":[],"mappings":"AAaA,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,wCAAwC;AACxC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,oDAAoD;AACpD,eAAO,MAAM,0BAA0B,KAAK,CAAC"}
1
+ {"version":3,"file":"header-card-geometry.d.ts","sourceRoot":"","sources":["../src/header-card-geometry.ts"],"names":[],"mappings":"AAaA,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,qEAAqE;AACrE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAEhD,wCAAwC;AACxC,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,oDAAoD;AACpD,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC"}
@@ -1,14 +1,14 @@
1
1
  // Header card geometry — sizing and text-stack metrics for the
2
2
  // "header card" that sits beside the timeline (title + author block).
3
3
  //
4
- // Layout owns the card *size* (computed up-front in `sizeBesideHeader`
4
+ // Layout owns the card *size* (computed up-front in `HeaderNode.measure`
5
5
  // from wrapped title/author text). The renderer paints the rectangle +
6
6
  // text using the *same* paddings, line heights, and font sizes so the
7
7
  // card is laid out and drawn consistently.
8
8
  //
9
9
  // Bumping any of these constants changes the visible size of the
10
10
  // header card and the position of every text line inside it. Always
11
- // keep the layout's `sizeBesideHeader` and the renderer's
11
+ // keep the layout's `HeaderNode` and the renderer's
12
12
  // `renderHeader` aligned by going through this module.
13
13
  /** Horizontal padding (px) inside the card from edge to text. */
14
14
  export const HEADER_CARD_PADDING_X = 16;
@@ -38,4 +38,16 @@ export const HEADER_TITLE_TO_AUTHOR_GAP_PX = 18;
38
38
  export const HEADER_TITLE_FONT_SIZE_PX = 16;
39
39
  /** Font size (px) of the author text (subtitle). */
40
40
  export const HEADER_AUTHOR_FONT_SIZE_PX = 11;
41
+ /** Horizontal gap (px) between a company logo and the title / author text. */
42
+ export const HEADER_LOGO_GAP_PX = 12;
43
+ /**
44
+ * Minimum clearance (px) above and below a company logo inside the card.
45
+ * A logo taller than the text block grows the card to keep it.
46
+ */
47
+ export const HEADER_LOGO_PAD_Y_PX = 10;
48
+ /**
49
+ * Widest a company logo may draw (px). A logo whose `logo-size:` height
50
+ * would make it wider scales down uniformly until it fits.
51
+ */
52
+ export const HEADER_LOGO_MAX_WIDTH_PX = 160;
41
53
  //# sourceMappingURL=header-card-geometry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-card-geometry.js","sourceRoot":"","sources":["../src/header-card-geometry.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sEAAsE;AACtE,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,2CAA2C;AAC3C,EAAE;AACF,iEAAiE;AACjE,oEAAoE;AACpE,0DAA0D;AAC1D,uDAAuD;AAEvD,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,qEAAqE;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,wCAAwC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"header-card-geometry.js","sourceRoot":"","sources":["../src/header-card-geometry.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sEAAsE;AACtE,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,sEAAsE;AACtE,2CAA2C;AAC3C,EAAE;AACF,iEAAiE;AACjE,oEAAoE;AACpE,oDAAoD;AACpD,uDAAuD;AAEvD,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C,qEAAqE;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC;AAEhD,wCAAwC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAE7C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { NowlineFile } from '@nowline/core';
2
+ import { LOGO_SIZE_PX } from './themes/shared.js';
3
+ /** Intrinsic size of a loaded logo, in its own units (only the ratio matters). */
4
+ export interface LogoDimensions {
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export type LogoSizePreset = keyof typeof LOGO_SIZE_PX;
9
+ /** A logo at its drawn size, with the asset path and the size it was loaded at. */
10
+ export type ScaledLogo = LogoDimensions & {
11
+ assetRef: string;
12
+ intrinsic: LogoDimensions;
13
+ };
14
+ /** The roadmap's `logo:` path as written, or undefined when it declares none. */
15
+ export declare function roadmapLogoRef(file: NowlineFile): string | undefined;
16
+ /**
17
+ * The drawn logo size: height from `logo-size:`, width from the intrinsic
18
+ * aspect ratio, so the slot always matches the logo's shape and the logo
19
+ * fills it exactly whether the source is larger or smaller. A logo wider
20
+ * than `HEADER_LOGO_MAX_WIDTH_PX` at that height scales down uniformly.
21
+ */
22
+ export declare function scaleLogo(intrinsic: LogoDimensions, preset: LogoSizePreset): LogoDimensions;
23
+ /**
24
+ * The drawn logo size for this file, or undefined when it declares no
25
+ * `logo:` or the caller supplied no usable intrinsic size.
26
+ */
27
+ export declare function resolveHeaderLogo(file: NowlineFile, intrinsic: LogoDimensions | undefined): ScaledLogo | undefined;
28
+ //# sourceMappingURL=header-logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-logo.d.ts","sourceRoot":"","sources":["../src/header-logo.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,YAAY,CAAC;AAEvD,mFAAmF;AACnF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,CAAC;AAE1F,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAGpE;AAOD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,GAAG,cAAc,CAS3F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,cAAc,GAAG,SAAS,GACtC,UAAU,GAAG,SAAS,CAMxB"}
@@ -0,0 +1,51 @@
1
+ // Company logo sizing for the roadmap header (`logo:` / `logo-size:`,
2
+ // specs/rendering.md § Company Logo Size Presets).
3
+ //
4
+ // Layout never reads asset bytes. The caller loads the logo before layout,
5
+ // reads its intrinsic size, and passes that in as `LayoutOptions.logo`;
6
+ // layout only scales it to the `logo-size:` slot. A roadmap that declares
7
+ // `logo:` without that input (missing file, no asset access) lays out as
8
+ // if it had no logo.
9
+ import { propValue } from './dsl-utils.js';
10
+ import { HEADER_LOGO_MAX_WIDTH_PX } from './header-card-geometry.js';
11
+ import { LOGO_SIZE_PX } from './themes/shared.js';
12
+ /** The roadmap's `logo:` path as written, or undefined when it declares none. */
13
+ export function roadmapLogoRef(file) {
14
+ const ref = propValue(file.roadmapDecl?.properties ?? [], 'logo');
15
+ return ref ? ref : undefined;
16
+ }
17
+ function logoSizePreset(file) {
18
+ const raw = propValue(file.roadmapDecl?.properties ?? [], 'logo-size');
19
+ return raw !== undefined && raw in LOGO_SIZE_PX ? raw : 'md';
20
+ }
21
+ /**
22
+ * The drawn logo size: height from `logo-size:`, width from the intrinsic
23
+ * aspect ratio, so the slot always matches the logo's shape and the logo
24
+ * fills it exactly whether the source is larger or smaller. A logo wider
25
+ * than `HEADER_LOGO_MAX_WIDTH_PX` at that height scales down uniformly.
26
+ */
27
+ export function scaleLogo(intrinsic, preset) {
28
+ const aspect = intrinsic.width / intrinsic.height;
29
+ let height = LOGO_SIZE_PX[preset];
30
+ let width = height * aspect;
31
+ if (width > HEADER_LOGO_MAX_WIDTH_PX) {
32
+ width = HEADER_LOGO_MAX_WIDTH_PX;
33
+ height = width / aspect;
34
+ }
35
+ return { width, height };
36
+ }
37
+ /**
38
+ * The drawn logo size for this file, or undefined when it declares no
39
+ * `logo:` or the caller supplied no usable intrinsic size.
40
+ */
41
+ export function resolveHeaderLogo(file, intrinsic) {
42
+ const assetRef = roadmapLogoRef(file);
43
+ if (!assetRef || !intrinsic)
44
+ return undefined;
45
+ if (!(intrinsic.width > 0 && intrinsic.height > 0))
46
+ return undefined;
47
+ if (!Number.isFinite(intrinsic.width) || !Number.isFinite(intrinsic.height))
48
+ return undefined;
49
+ return { ...scaleLogo(intrinsic, logoSizePreset(file)), assetRef, intrinsic };
50
+ }
51
+ //# sourceMappingURL=header-logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-logo.js","sourceRoot":"","sources":["../src/header-logo.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,mDAAmD;AACnD,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,0EAA0E;AAC1E,yEAAyE;AACzE,qBAAqB;AAGrB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAalD,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,IAAiB;IACrC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IACvE,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,IAAI,YAAY,CAAC,CAAC,CAAE,GAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;AACrF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,SAAyB,EAAE,MAAsB;IACvE,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAClD,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5B,IAAI,KAAK,GAAG,wBAAwB,EAAE,CAAC;QACnC,KAAK,GAAG,wBAAwB,CAAC;QACjC,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC7B,IAAiB,EACjB,SAAqC;IAErC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9F,OAAO,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAClF,CAAC"}
package/dist/i18n.d.ts CHANGED
@@ -4,6 +4,17 @@ export interface LocaleStrings {
4
4
  nowLabel: string;
5
5
  /** Prefix used when the timeline scale is quarters (e.g. `Q1 2026` / `T1 2026`). */
6
6
  quarterPrefix: string;
7
+ /**
8
+ * Wave strip tooltip: names the member that sets the wave's end
9
+ * (`Launch · 2026-02-02 – 2026-02-23 · held by i2`; specs/waves.md §9.1).
10
+ */
11
+ waveHeldBy: string;
12
+ /** Marks an empty wave in its tooltip (`Hardening (TBD) · 2026-01-19 · no items`). */
13
+ waveNoItems: string;
14
+ /** Added to a background item's hover tooltip (specs/waves.md §9.3). */
15
+ waveBackgroundItem: string;
16
+ /** Legend entry beside the hatch swatch (specs/waves.md §9.5). */
17
+ waveLegendBackground: string;
7
18
  }
8
19
  /**
9
20
  * Resolve the effective locale for the rendered artifact.
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC1B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC;CACzB;AAyBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,eAAe,EAAE,MAAM,GAAG,SAAS,GACpC,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAa3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWtD"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC1B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAmCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,eAAe,EAAE,MAAM,GAAG,SAAS,GACpC,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAa3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWtD"}
package/dist/i18n.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // Locale-aware strings used by the layout pipeline. Owns three things:
2
2
  // - The BCP-47 fallback chain (`fr-CA → fr → en-US`).
3
3
  // - A small message table for chrome strings the renderer paints
4
- // directly (now-pill, quarter prefix).
4
+ // directly (now-pill, quarter prefix, wave strip / legend / tooltips).
5
5
  // - The locale token passed to `Intl.DateTimeFormat` for axis labels.
6
6
  //
7
7
  // Today the table is inline; m-loc-d / m-loc-e (per `specs/localization.md`)
@@ -20,6 +20,10 @@ const BUNDLES = {
20
20
  'en-US': {
21
21
  nowLabel: 'now',
22
22
  quarterPrefix: 'Q',
23
+ waveHeldBy: 'held by',
24
+ waveNoItems: 'no items',
25
+ waveBackgroundItem: 'Background (no wave)',
26
+ waveLegendBackground: 'Background work (not in a wave)',
23
27
  },
24
28
  fr: {
25
29
  // Short form of "maintenant"; keeps the pill compact while staying
@@ -28,6 +32,12 @@ const BUNDLES = {
28
32
  nowLabel: 'maint.',
29
33
  // `T` for trimestre — the standard French business convention.
30
34
  quarterPrefix: 'T',
35
+ // "Vague" is feminine; the strings agree with it. Colons take a
36
+ // no-break space (U+00A0), as in `messages.fr.ts`.
37
+ waveHeldBy: 'retenue par',
38
+ waveNoItems: 'aucun élément',
39
+ waveBackgroundItem: 'Travail de fond (hors vague)',
40
+ waveLegendBackground: 'Travail de fond (dans aucune vague)',
31
41
  },
32
42
  };
33
43
  /**
package/dist/i18n.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wDAAwD;AACxD,mEAAmE;AACnE,2CAA2C;AAC3C,wEAAwE;AACxE,EAAE;AACF,6EAA6E;AAC7E,uEAAuE;AACvE,iEAAiE;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAStC,sEAAsE;AACtE,wEAAwE;AACxE,8CAA8C;AAC9C,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,kEAAkE;AAClE,iDAAiD;AACjD,MAAM,OAAO,GAA2C;IACpD,OAAO,EAAE;QACL,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,GAAG;KACrB;IACD,EAAE,EAAE;QACA,mEAAmE;QACnE,mEAAmE;QACnE,qDAAqD;QACrD,QAAQ,EAAE,QAAQ;QAClB,+DAA+D;QAC/D,aAAa,EAAE,GAAG;KACrB;CACJ,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CACzB,QAA4B,EAC5B,eAAmC;IAEnC,OAAO,eAAe,IAAI,QAAQ,IAAI,cAAc,CAAC;AACzD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAA4B,EAAE,CAAC;YAC/D,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;IACL,CAAC;IACD,uEAAuE;IACvE,OAAO,MAAuB,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,IAAI,CAAC;YAAE,MAAM;QACrB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,KAAK;SACP,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,gEAAgE;QAChE,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wDAAwD;AACxD,mEAAmE;AACnE,2EAA2E;AAC3E,wEAAwE;AACxE,EAAE;AACF,6EAA6E;AAC7E,uEAAuE;AACvE,iEAAiE;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAoBtC,sEAAsE;AACtE,wEAAwE;AACxE,8CAA8C;AAC9C,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,kEAAkE;AAClE,iDAAiD;AACjD,MAAM,OAAO,GAA2C;IACpD,OAAO,EAAE;QACL,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,GAAG;QAClB,UAAU,EAAE,SAAS;QACrB,WAAW,EAAE,UAAU;QACvB,kBAAkB,EAAE,sBAAsB;QAC1C,oBAAoB,EAAE,iCAAiC;KAC1D;IACD,EAAE,EAAE;QACA,mEAAmE;QACnE,mEAAmE;QACnE,qDAAqD;QACrD,QAAQ,EAAE,QAAQ;QAClB,+DAA+D;QAC/D,aAAa,EAAE,GAAG;QAClB,gEAAgE;QAChE,mDAAmD;QACnD,UAAU,EAAE,aAAa;QACzB,WAAW,EAAE,eAAe;QAC5B,kBAAkB,EAAE,8BAA8B;QAClD,oBAAoB,EAAE,qCAAqC;KAC9D;CACJ,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,aAAa,CACzB,QAA4B,EAC5B,eAAmC;IAEnC,OAAO,eAAe,IAAI,QAAQ,IAAI,cAAc,CAAC;AACzD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAA4B,EAAE,CAAC;YAC/D,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzD,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;IACL,CAAC;IACD,uEAAuE;IACvE,OAAO,MAAuB,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,IAAI,CAAC;YAAE,MAAM;QACrB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,KAAK;SACP,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACjB,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,gEAAgE;QAChE,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,15 +1,27 @@
1
- export { estimateCapacitySuffixWidth, formatCapacityNumber, parseCapacityValue, type ResolvedCapacityIcon, resolveCapacityIcon, } from './capacity.js';
2
- export { FRAME_TAB_INNER_GAP_PX, FRAME_TAB_LEFT_INSET_PX, FRAME_TAB_MIN_WIDTH_PX, FRAME_TAB_OFFSET_FROM_BOX_PX, FRAME_TAB_OWNER_PX_PER_CHAR, FRAME_TAB_RIGHT_INSET_PX, FRAME_TAB_TITLE_PX_PER_CHAR, type FrameTabGeometry, frameTabGeometry, } from './frame-tab-geometry.js';
3
- export { HEADER_AUTHOR_FONT_SIZE_PX, HEADER_AUTHOR_LINE_HEIGHT_PX, HEADER_CARD_PADDING_BOTTOM, HEADER_CARD_PADDING_TOP, HEADER_CARD_PADDING_X, HEADER_TITLE_FONT_SIZE_PX, HEADER_TITLE_LINE_HEIGHT_PX, HEADER_TITLE_TO_AUTHOR_GAP_PX, } from './header-card-geometry.js';
1
+ export type { CalendarConfig, CalendarMode } from './calendar.js';
2
+ export { type ResolvedCalendar, resolveWorkingCalendar } from './calendar-resolver.js';
3
+ export { type CappedPixelsPerDayInput, cappedPixelsPerDay, MIN_PIXELS_PER_DAY, } from './canvas-width.js';
4
+ export { capacityIconDxTerms, estimateCapacitySuffixWidth, formatCapacityNumber, META_SUFFIX_DX_EM, parseCapacityValue, type ResolvedCapacityIcon, resolveCapacityIcon, } from './capacity.js';
5
+ export { CONTAINER_BODY_FILL_OPACITY, CONTAINER_BODY_PAD_PX, CONTAINER_BRACKET_LINE_OFFSET_PX, CONTAINER_HEADER_BAND_PX, CONTAINER_HEADER_TITLE_BASELINE_PX, CONTAINER_HEADER_TITLE_FONT_SIZE_PX, CONTAINER_MAX_FILLED_DEPTH, CONTAINER_NESTED_BODY_FILL_OPACITY, containerHeaderTitleX, } from './container-header-geometry.js';
6
+ export { ARROW_HEAD_LENGTH_PX, ARROW_HEAD_MIN_PX, ARROW_HEAD_WIDTH_PX, } from './edge-routing.js';
7
+ export { estimateFrameTabOwnerWidth, estimateFrameTabTitleWidth, FRAME_TAB_INNER_GAP_PX, FRAME_TAB_LEFT_INSET_PX, FRAME_TAB_MIN_WIDTH_PX, FRAME_TAB_OFFSET_FROM_BOX_PX, FRAME_TAB_OWNER_FONT_SIZE_PX, FRAME_TAB_OWNER_GLYPH_GAP_PX, FRAME_TAB_OWNER_GLYPH_PX, FRAME_TAB_RIGHT_INSET_PX, FRAME_TAB_TITLE_FONT_SIZE_PX, type FrameTabGeometry, frameTabGeometry, } from './frame-tab-geometry.js';
8
+ export { HEADER_AUTHOR_FONT_SIZE_PX, HEADER_AUTHOR_LINE_HEIGHT_PX, HEADER_CARD_PADDING_BOTTOM, HEADER_CARD_PADDING_TOP, HEADER_CARD_PADDING_X, HEADER_LOGO_GAP_PX, HEADER_LOGO_MAX_WIDTH_PX, HEADER_LOGO_PAD_Y_PX, HEADER_TITLE_FONT_SIZE_PX, HEADER_TITLE_LINE_HEIGHT_PX, HEADER_TITLE_TO_AUTHOR_GAP_PX, } from './header-card-geometry.js';
9
+ export { type LogoDimensions, type LogoSizePreset, roadmapLogoRef, scaleLogo, } from './header-logo.js';
4
10
  export { INCLUDE_CHROME_BADGE_GAP_PX, INCLUDE_CHROME_BADGE_SIZE_PX, INCLUDE_CHROME_OFFSET_FROM_BOX_PX, INCLUDE_CHROME_SOURCE_GAP_PX, INCLUDE_CHROME_SOURCE_HALO_PAD_PX, INCLUDE_CHROME_SOURCE_PER_CHAR_PX, INCLUDE_CHROME_TAB_LABEL_PER_CHAR_PX, INCLUDE_CHROME_TAB_LEFT_INSET_PX, INCLUDE_CHROME_TAB_MIN_WIDTH_PX, INCLUDE_CHROME_TAB_RIGHT_INSET_PX, type IncludeChromeGeometry, includeChromeGeometry, } from './include-chrome-geometry.js';
5
- export { ITEM_CAPTION_INSET_X_PX, ITEM_CAPTION_META_BASELINE_OFFSET_PX, ITEM_CAPTION_META_FONT_SIZE_PX, ITEM_CAPTION_SPILL_GAP_PX, ITEM_CAPTION_TITLE_BASELINE_OFFSET_PX, ITEM_CAPTION_TITLE_FONT_SIZE_PX, ITEM_DECORATION_SPILL_GAP_PX, ITEM_FOOTNOTE_INDICATOR_BASELINE_OFFSET_PX, ITEM_FOOTNOTE_INDICATOR_INSET_RIGHT_PX, ITEM_FOOTNOTE_INDICATOR_STEP_PX, ITEM_LINK_ICON_INSET_PX, ITEM_LINK_ICON_TILE_SIZE_PX, ITEM_STATUS_DOT_INSET_RIGHT_PX, ITEM_STATUS_DOT_INSET_TOP_PX, ITEM_STATUS_DOT_RADIUS_PX, LABEL_CHIP_GAP_ABOVE_PROGRESS_STRIP_PX, LABEL_CHIP_GAP_BETWEEN_PX, LABEL_CHIP_HEIGHT_PX, MIN_BAR_WIDTH_FOR_DOT_PX, MIN_BAR_WIDTH_FOR_FOOTNOTE_PX, MIN_BAR_WIDTH_FOR_LINK_AND_DOT_PX, } from './item-bar-geometry.js';
11
+ export { computeTitleBarExtra, ITEM_CAPTION_INSET_X_PX, ITEM_CAPTION_META_BASELINE_OFFSET_PX, ITEM_CAPTION_META_FONT_SIZE_PX, ITEM_CAPTION_SPILL_GAP_PX, ITEM_CAPTION_TITLE_BASELINE_OFFSET_PX, ITEM_CAPTION_TITLE_FONT_SIZE_PX, ITEM_CAPTION_TITLE_LINE_HEIGHT_PX, ITEM_CAPTION_TITLE_MAX_LINES, ITEM_DECORATION_SPILL_GAP_PX, ITEM_FOOTNOTE_INDICATOR_BASELINE_OFFSET_PX, ITEM_FOOTNOTE_INDICATOR_FONT_SIZE_PX, ITEM_FOOTNOTE_INDICATOR_INSET_RIGHT_PX, ITEM_FOOTNOTE_INDICATOR_STEP_PX, ITEM_LINK_ICON_INSET_PX, ITEM_LINK_ICON_TILE_SIZE_PX, ITEM_LINK_ICON_TO_CAPTION_GAP_PX, ITEM_STATUS_DOT_INSET_RIGHT_PX, ITEM_STATUS_DOT_INSET_TOP_PX, ITEM_STATUS_DOT_RADIUS_PX, type ItemCaptionAfterGlyph, itemCaptionInsetX, itemCaptionLastBaselineOffset, itemCaptionMetaBaselineOffset, itemTitleFirstLineRightReservePx, LABEL_CHIP_GAP_ABOVE_PROGRESS_STRIP_PX, LABEL_CHIP_GAP_BETWEEN_PX, LABEL_CHIP_HEIGHT_PX, MIN_BAR_WIDTH_FOR_DOT_PX, MIN_BAR_WIDTH_FOR_FOOTNOTE_PX, MIN_BAR_WIDTH_FOR_LINK_AND_DOT_PX, } from './item-bar-geometry.js';
6
12
  export type { LayoutOptions, LayoutResult } from './layout.js';
7
13
  export { layoutRoadmap } from './layout.js';
8
14
  export { collectLayoutInsights, type LayoutInsight, type LayoutInsightContext, type LayoutInsightSeverity, } from './layout-insights.js';
9
- export { civilDateInZone, type NormalizedZone, normalizeZone, type ResolveTodayOptions, resolveToday, TimezoneError, } from './resolve-today.js';
10
- export type { RoadmapSchedule, ScheduledItem, ScheduleOptions } from './schedule.js';
15
+ export { MARKER_BOLD_WIDTH_FACTOR } from './nodes/marker-geometry.js';
16
+ export { isNonWorkingDisplay, NON_WORKING_DISPLAYS, type NonWorkingDisplay, parseNonWorkingDisplay, } from './non-working-display.js';
17
+ export { civilDateInZone, hasImpossibleNowDate, type NormalizedZone, normalizeZone, type ResolveTodayOptions, resolveToday, TimezoneError, } from './resolve-today.js';
18
+ export type { RoadmapSchedule, ScheduledItem, ScheduledWave, ScheduleExtent, ScheduleOptions, } from './schedule.js';
11
19
  export { scheduleRoadmap } from './schedule.js';
12
- export { darkTheme, grayscaleTheme, lightTheme, normalizeThemeName, type Theme, type ThemeName, themes, } from './themes/index.js';
13
- export { ACCENT_DASH_PATTERN, ATTRIBUTION_BAR_LOGICAL_WIDTH, ATTRIBUTION_BAR_LOGICAL_X, ATTRIBUTION_INE_LOGICAL_X, ATTRIBUTION_LINK, ATTRIBUTION_NOW_LOGICAL_X, ATTRIBUTION_PREFIX_FONT_SIZE, ATTRIBUTION_SCALE, ATTRIBUTION_TEXT, ATTRIBUTION_WORDMARK_FONT_SIZE, CORNER_RADIUS_PX, EDGE_CORNER_RADIUS, FONT_STACK, FOOTNOTE_HEADER_BASELINE_OFFSET_PX, FOOTNOTE_HEADER_HEIGHT_PX, FOOTNOTE_PANEL_PADDING_PX, FOOTNOTE_ROW_HEIGHT, FRAME_TAB_HEIGHT_PX, FRAME_TAB_LABEL_BASELINE_OFFSET_PX, GROUP_BOTTOM_PAD_PX, GROUP_BRACKET_LABEL_OVERHANG_PX, GROUP_TITLE_TAB_CHAR_WIDTH_PX, GROUP_TITLE_TAB_GUTTER_PX, GROUP_TITLE_TAB_HEIGHT_PX, GROUP_TITLE_TAB_LABEL_BASELINE_OFFSET_PX, GROUP_TITLE_TAB_LABEL_FONT_SIZE_PX, GROUP_TITLE_TAB_PAD_X_PX, NOW_PILL_CORNER_RADIUS_PX, NOW_PILL_HEIGHT_PX, NOW_PILL_LABEL_BASELINE_OFFSET_PX, NOW_PILL_LABEL_FONT_SIZE_PX, NOW_PILL_LABEL_INSET_X_PX, NOW_PILL_WIDTH_PX, NOWLINE_STROKE_WIDTH_PX, PROGRESS_STRIP_HEIGHT_PX, TEXT_SIZE_PX, TIMELINE_TICK_LABEL_BASELINE_OFFSET_PX, TIMELINE_TICK_PANEL_HEIGHT_PX, TRACK_BLOCK_TAIL_GUTTER_PX, } from './themes/shared.js';
20
+ export { estimateTextWidth } from './text-measure.js';
21
+ export { contrastRatio, relativeLuminance } from './themes/contrast.js';
22
+ export { darkTheme, grayscaleTheme, lightTheme, normalizeThemeName, THEME_NAMES, type Theme, type ThemeName, themes, } from './themes/index.js';
23
+ export { ACCENT_DASH_PATTERN, ATTRIBUTION_BAR_LOGICAL_WIDTH, ATTRIBUTION_BAR_LOGICAL_X, ATTRIBUTION_INE_LOGICAL_X, ATTRIBUTION_LINK, ATTRIBUTION_NOW_LOGICAL_X, ATTRIBUTION_PREFIX_FONT_SIZE, ATTRIBUTION_SCALE, ATTRIBUTION_TEXT, ATTRIBUTION_WORDMARK_FONT_SIZE, CORNER_RADIUS_PX, EDGE_CORNER_RADIUS, FONT_STACK, FOOTNOTE_HEADER_BASELINE_OFFSET_PX, FOOTNOTE_HEADER_HEIGHT_PX, FOOTNOTE_PANEL_PADDING_PX, FOOTNOTE_ROW_HEIGHT, FRAME_TAB_HEIGHT_PX, FRAME_TAB_LABEL_BASELINE_OFFSET_PX, HEADER_HEIGHT_PX, NON_WORKING_FILL_OPACITY, NOW_PILL_CORNER_RADIUS_PX, NOW_PILL_HEIGHT_PX, NOW_PILL_LABEL_BASELINE_OFFSET_PX, NOW_PILL_LABEL_FONT_SIZE_PX, NOW_PILL_LABEL_INSET_X_PX, NOW_PILL_WIDTH_PX, NOWLINE_STROKE_WIDTH_PX, PROGRESS_STRIP_HEIGHT_PX, TEXT_SIZE_PX, TIMELINE_TICK_LABEL_BASELINE_OFFSET_PX, TIMELINE_TICK_LABEL_FONT_SIZE_PX, TIMELINE_TICK_PANEL_HEIGHT_PX, timelineTickLabelBaselineOffsetPx, WAVE_BOUNDARY_WIDTH_PX, WAVE_CELL_INSET_PX, WAVE_CROSS_DASH, WAVE_HATCH_OPACITY, WAVE_HATCH_STROKE_PX, WAVE_HATCH_TILE_PX, WAVE_LABEL_HALO_INSET_Y_PX, WAVE_LABEL_HALO_PAD_PX, WAVE_LEGEND_BASELINE_OFFSET_PX, WAVE_LEGEND_GAP_PX, WAVE_LEGEND_LINE_PX, WAVE_LEGEND_SWATCH_GAP_PX, WAVE_LEGEND_SWATCH_HEIGHT_PX, WAVE_LEGEND_SWATCH_WIDTH_PX, WAVE_STRIP_HEIGHT_PX, WAVE_STRIP_LABEL_FONT_SIZE_PX, WAVE_STRIP_LABEL_PAD_PX, WAVE_STYLED_STRIP_MIX_OPACITY, WAVE_STYLED_TINT_OPACITY, } from './themes/shared.js';
14
24
  export * from './types.js';
25
+ export type { CalendarException, WorkingCalendar, WorkingExceptionRun, } from './working-calendar.js';
26
+ export { calendarExceptions } from './working-calendar.js';
15
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,mBAAmB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,gBAAgB,EACrB,gBAAgB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,GAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACH,2BAA2B,EAC3B,4BAA4B,EAC5B,iCAAiC,EACjC,4BAA4B,EAC5B,iCAAiC,EACjC,iCAAiC,EACjC,oCAAoC,EACpC,gCAAgC,EAChC,+BAA+B,EAC/B,iCAAiC,EACjC,KAAK,qBAAqB,EAC1B,qBAAqB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,uBAAuB,EACvB,oCAAoC,EACpC,8BAA8B,EAC9B,yBAAyB,EACzB,qCAAqC,EACrC,+BAA+B,EAC/B,4BAA4B,EAC5B,0CAA0C,EAC1C,sCAAsC,EACtC,+BAA+B,EAC/B,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,yBAAyB,EACzB,sCAAsC,EACtC,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,EAC7B,iCAAiC,GACpC,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACH,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACH,eAAe,EACf,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,mBAAmB,EACxB,YAAY,EACZ,aAAa,GAChB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACH,SAAS,EACT,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,KAAK,KAAK,EACV,KAAK,SAAS,EACd,MAAM,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,EACjB,gBAAgB,EAChB,8BAA8B,EAC9B,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,mBAAmB,EACnB,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,wCAAwC,EACxC,kCAAkC,EAClC,wBAAwB,EACxB,yBAAyB,EACzB,kBAAkB,EAClB,iCAAiC,EACjC,2BAA2B,EAC3B,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,sCAAsC,EACtC,6BAA6B,EAC7B,0BAA0B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}