@nowline/layout 0.2.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 (183) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +103 -0
  3. package/dist/band-scale.d.ts +56 -0
  4. package/dist/band-scale.d.ts.map +1 -0
  5. package/dist/band-scale.js +86 -0
  6. package/dist/band-scale.js.map +1 -0
  7. package/dist/calendar.d.ts +79 -0
  8. package/dist/calendar.d.ts.map +1 -0
  9. package/dist/calendar.js +210 -0
  10. package/dist/calendar.js.map +1 -0
  11. package/dist/capacity.d.ts +72 -0
  12. package/dist/capacity.d.ts.map +1 -0
  13. package/dist/capacity.js +163 -0
  14. package/dist/capacity.js.map +1 -0
  15. package/dist/dsl-utils.d.ts +5 -0
  16. package/dist/dsl-utils.d.ts.map +1 -0
  17. package/dist/dsl-utils.js +28 -0
  18. package/dist/dsl-utils.js.map +1 -0
  19. package/dist/edge-routing.d.ts +89 -0
  20. package/dist/edge-routing.d.ts.map +1 -0
  21. package/dist/edge-routing.js +435 -0
  22. package/dist/edge-routing.js.map +1 -0
  23. package/dist/frame-tab-geometry.d.ts +78 -0
  24. package/dist/frame-tab-geometry.d.ts.map +1 -0
  25. package/dist/frame-tab-geometry.js +115 -0
  26. package/dist/frame-tab-geometry.js.map +1 -0
  27. package/dist/header-card-geometry.d.ts +29 -0
  28. package/dist/header-card-geometry.d.ts.map +1 -0
  29. package/dist/header-card-geometry.js +41 -0
  30. package/dist/header-card-geometry.js.map +1 -0
  31. package/dist/i18n.d.ts +48 -0
  32. package/dist/i18n.d.ts.map +1 -0
  33. package/dist/i18n.js +114 -0
  34. package/dist/i18n.js.map +1 -0
  35. package/dist/include-chrome-geometry.d.ts +86 -0
  36. package/dist/include-chrome-geometry.d.ts.map +1 -0
  37. package/dist/include-chrome-geometry.js +104 -0
  38. package/dist/include-chrome-geometry.js.map +1 -0
  39. package/dist/index.d.ts +11 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +10 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/item-bar-geometry.d.ts +127 -0
  44. package/dist/item-bar-geometry.d.ts.map +1 -0
  45. package/dist/item-bar-geometry.js +173 -0
  46. package/dist/item-bar-geometry.js.map +1 -0
  47. package/dist/lane-utilization.d.ts +90 -0
  48. package/dist/lane-utilization.d.ts.map +1 -0
  49. package/dist/lane-utilization.js +206 -0
  50. package/dist/lane-utilization.js.map +1 -0
  51. package/dist/layout-context.d.ts +143 -0
  52. package/dist/layout-context.d.ts.map +1 -0
  53. package/dist/layout-context.js +8 -0
  54. package/dist/layout-context.js.map +1 -0
  55. package/dist/layout.d.ts +18 -0
  56. package/dist/layout.d.ts.map +1 -0
  57. package/dist/layout.js +1213 -0
  58. package/dist/layout.js.map +1 -0
  59. package/dist/nodes/anchor-node.d.ts +16 -0
  60. package/dist/nodes/anchor-node.d.ts.map +1 -0
  61. package/dist/nodes/anchor-node.js +68 -0
  62. package/dist/nodes/anchor-node.js.map +1 -0
  63. package/dist/nodes/footnote-node.d.ts +10 -0
  64. package/dist/nodes/footnote-node.d.ts.map +1 -0
  65. package/dist/nodes/footnote-node.js +41 -0
  66. package/dist/nodes/footnote-node.js.map +1 -0
  67. package/dist/nodes/group-node.d.ts +29 -0
  68. package/dist/nodes/group-node.d.ts.map +1 -0
  69. package/dist/nodes/group-node.js +187 -0
  70. package/dist/nodes/group-node.js.map +1 -0
  71. package/dist/nodes/include-node.d.ts +16 -0
  72. package/dist/nodes/include-node.d.ts.map +1 -0
  73. package/dist/nodes/include-node.js +117 -0
  74. package/dist/nodes/include-node.js.map +1 -0
  75. package/dist/nodes/item-node.d.ts +51 -0
  76. package/dist/nodes/item-node.d.ts.map +1 -0
  77. package/dist/nodes/item-node.js +108 -0
  78. package/dist/nodes/item-node.js.map +1 -0
  79. package/dist/nodes/marker-geometry.d.ts +22 -0
  80. package/dist/nodes/marker-geometry.d.ts.map +1 -0
  81. package/dist/nodes/marker-geometry.js +38 -0
  82. package/dist/nodes/marker-geometry.js.map +1 -0
  83. package/dist/nodes/milestone-node.d.ts +48 -0
  84. package/dist/nodes/milestone-node.d.ts.map +1 -0
  85. package/dist/nodes/milestone-node.js +210 -0
  86. package/dist/nodes/milestone-node.js.map +1 -0
  87. package/dist/nodes/parallel-node.d.ts +21 -0
  88. package/dist/nodes/parallel-node.d.ts.map +1 -0
  89. package/dist/nodes/parallel-node.js +80 -0
  90. package/dist/nodes/parallel-node.js.map +1 -0
  91. package/dist/nodes/roadmap-node.d.ts +76 -0
  92. package/dist/nodes/roadmap-node.d.ts.map +1 -0
  93. package/dist/nodes/roadmap-node.js +788 -0
  94. package/dist/nodes/roadmap-node.js.map +1 -0
  95. package/dist/nodes/swimlane-node.d.ts +38 -0
  96. package/dist/nodes/swimlane-node.d.ts.map +1 -0
  97. package/dist/nodes/swimlane-node.js +308 -0
  98. package/dist/nodes/swimlane-node.js.map +1 -0
  99. package/dist/renderable.d.ts +44 -0
  100. package/dist/renderable.d.ts.map +1 -0
  101. package/dist/renderable.js +21 -0
  102. package/dist/renderable.js.map +1 -0
  103. package/dist/row-packer.d.ts +125 -0
  104. package/dist/row-packer.d.ts.map +1 -0
  105. package/dist/row-packer.js +169 -0
  106. package/dist/row-packer.js.map +1 -0
  107. package/dist/style-resolution.d.ts +14 -0
  108. package/dist/style-resolution.d.ts.map +1 -0
  109. package/dist/style-resolution.js +191 -0
  110. package/dist/style-resolution.js.map +1 -0
  111. package/dist/themes/dark.d.ts +4 -0
  112. package/dist/themes/dark.d.ts.map +1 -0
  113. package/dist/themes/dark.js +241 -0
  114. package/dist/themes/dark.js.map +1 -0
  115. package/dist/themes/index.d.ts +15 -0
  116. package/dist/themes/index.d.ts.map +1 -0
  117. package/dist/themes/index.js +30 -0
  118. package/dist/themes/index.js.map +1 -0
  119. package/dist/themes/light.d.ts +4 -0
  120. package/dist/themes/light.d.ts.map +1 -0
  121. package/dist/themes/light.js +248 -0
  122. package/dist/themes/light.js.map +1 -0
  123. package/dist/themes/shape.d.ts +194 -0
  124. package/dist/themes/shape.d.ts.map +1 -0
  125. package/dist/themes/shape.js +6 -0
  126. package/dist/themes/shape.js.map +1 -0
  127. package/dist/themes/shared.d.ts +145 -0
  128. package/dist/themes/shared.d.ts.map +1 -0
  129. package/dist/themes/shared.js +310 -0
  130. package/dist/themes/shared.js.map +1 -0
  131. package/dist/time-scale.d.ts +39 -0
  132. package/dist/time-scale.d.ts.map +1 -0
  133. package/dist/time-scale.js +62 -0
  134. package/dist/time-scale.js.map +1 -0
  135. package/dist/types.d.ts +483 -0
  136. package/dist/types.d.ts.map +1 -0
  137. package/dist/types.js +6 -0
  138. package/dist/types.js.map +1 -0
  139. package/dist/view-preset.d.ts +23 -0
  140. package/dist/view-preset.d.ts.map +1 -0
  141. package/dist/view-preset.js +146 -0
  142. package/dist/view-preset.js.map +1 -0
  143. package/dist/working-calendar.d.ts +14 -0
  144. package/dist/working-calendar.d.ts.map +1 -0
  145. package/dist/working-calendar.js +74 -0
  146. package/dist/working-calendar.js.map +1 -0
  147. package/package.json +37 -0
  148. package/src/band-scale.ts +115 -0
  149. package/src/calendar.ts +244 -0
  150. package/src/capacity.ts +191 -0
  151. package/src/dsl-utils.ts +30 -0
  152. package/src/edge-routing.ts +550 -0
  153. package/src/frame-tab-geometry.ts +165 -0
  154. package/src/header-card-geometry.ts +48 -0
  155. package/src/i18n.ts +124 -0
  156. package/src/include-chrome-geometry.ts +156 -0
  157. package/src/index.ts +116 -0
  158. package/src/item-bar-geometry.ts +222 -0
  159. package/src/lane-utilization.ts +259 -0
  160. package/src/layout-context.ts +182 -0
  161. package/src/layout.ts +1446 -0
  162. package/src/nodes/anchor-node.ts +77 -0
  163. package/src/nodes/footnote-node.ts +60 -0
  164. package/src/nodes/group-node.ts +252 -0
  165. package/src/nodes/include-node.ts +168 -0
  166. package/src/nodes/item-node.ts +171 -0
  167. package/src/nodes/marker-geometry.ts +43 -0
  168. package/src/nodes/milestone-node.ts +263 -0
  169. package/src/nodes/parallel-node.ts +101 -0
  170. package/src/nodes/roadmap-node.ts +957 -0
  171. package/src/nodes/swimlane-node.ts +423 -0
  172. package/src/renderable.ts +68 -0
  173. package/src/row-packer.ts +271 -0
  174. package/src/style-resolution.ts +243 -0
  175. package/src/themes/dark.ts +244 -0
  176. package/src/themes/index.ts +36 -0
  177. package/src/themes/light.ts +251 -0
  178. package/src/themes/shape.ts +230 -0
  179. package/src/themes/shared.ts +369 -0
  180. package/src/time-scale.ts +78 -0
  181. package/src/types.ts +607 -0
  182. package/src/view-preset.ts +180 -0
  183. package/src/working-calendar.ts +91 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roadmap-node.js","sourceRoot":"","sources":["../../src/nodes/roadmap-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { EntityProperty, GroupBlock, ItemDeclaration, ParallelBlock, SwimlaneDeclaration } from '@nowline/core';
2
+ import type { LayoutContext, TrackCursor } from '../layout-context.js';
3
+ import type { PositionedItem, PositionedSwimlane, PositionedTrackChild } from '../types.js';
4
+ /** Helpers that SwimlaneNode delegates to until the rest of m2.5c lands. */
5
+ export interface SwimlaneNodeDeps {
6
+ sequenceItem: (child: ItemDeclaration, cursor: TrackCursor, ctx: LayoutContext, ownerOverride?: string) => PositionedItem;
7
+ sequenceOne: (child: ItemDeclaration | GroupBlock | ParallelBlock, cursor: TrackCursor, ctx: LayoutContext) => PositionedTrackChild;
8
+ resolveChildStart: (props: EntityProperty[], seqDefault: number, laneLeftX: number, ctx: LayoutContext) => number;
9
+ newCursor: (x: number, y: number) => TrackCursor;
10
+ estimateTextWidth: (text: string, fontSize: number) => number;
11
+ /** Predict the extra vertical height an item's wrapped label-chip
12
+ * rows will add to its bar; used to size the row-packer's row
13
+ * pitch ahead of the call to `sequenceItem`. */
14
+ predictItemChipExtraHeight: (item: ItemDeclaration, ctx: LayoutContext) => number;
15
+ }
16
+ export interface SwimlaneNodeInput {
17
+ lane: SwimlaneDeclaration;
18
+ bandIndex: number;
19
+ }
20
+ export interface PlacedSwimlaneGeometry {
21
+ positioned: PositionedSwimlane;
22
+ usedHeight: number;
23
+ /** Rightmost x reached by any item or its spilled caption. */
24
+ usedRightX: number;
25
+ }
26
+ /** Anchor point passed to `SwimlaneNode.place`. */
27
+ export interface SwimlaneOrigin {
28
+ x: number;
29
+ y: number;
30
+ }
31
+ export declare class SwimlaneNode {
32
+ readonly input: SwimlaneNodeInput;
33
+ private readonly deps;
34
+ constructor(input: SwimlaneNodeInput, deps: SwimlaneNodeDeps);
35
+ get id(): string;
36
+ place(origin: SwimlaneOrigin, ctx: LayoutContext): PlacedSwimlaneGeometry;
37
+ }
38
+ //# sourceMappingURL=swimlane-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swimlane-node.d.ts","sourceRoot":"","sources":["../../src/nodes/swimlane-node.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACR,cAAc,EACd,UAAU,EACV,eAAe,EACf,aAAa,EACb,mBAAmB,EACtB,MAAM,eAAe,CAAC;AAYvB,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvE,OAAO,KAAK,EAGR,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACvB,MAAM,aAAa,CAAC;AAkCrB,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC7B,YAAY,EAAE,CACV,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,aAAa,EAClB,aAAa,CAAC,EAAE,MAAM,KACrB,cAAc,CAAC;IACpB,WAAW,EAAE,CACT,KAAK,EAAE,eAAe,GAAG,UAAU,GAAG,aAAa,EACnD,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,aAAa,KACjB,oBAAoB,CAAC;IAC1B,iBAAiB,EAAE,CACf,KAAK,EAAE,cAAc,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,aAAa,KACjB,MAAM,CAAC;IACZ,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;IACjD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9D;;qDAEiD;IACjD,0BAA0B,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC;CACrF;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACnC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AA0ED,qBAAa,YAAY;aAED,KAAK,EAAE,iBAAiB;IAExC,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAFL,KAAK,EAAE,iBAAiB,EAEvB,IAAI,EAAE,gBAAgB;IAG3C,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,sBAAsB;CAqN5E"}
@@ -0,0 +1,308 @@
1
+ // SwimlaneNode — second Renderable entity in the m2.5c port. Owns the
2
+ // per-lane row-packing decisions (title-tab top-pad collapse, sibling row
3
+ // bumps, previous-title-spill carry-forward, parallels/groups owning
4
+ // fresh rows) and emits a `PositionedSwimlane` plus the band's used
5
+ // height.
6
+ //
7
+ // Step-2 transitional shape:
8
+ // - Item children flow through the injected `deps.sequenceItem`. Once
9
+ // ItemNode's wire-in is complete (step 1 — done) the production
10
+ // `sequenceItem` already routes through ItemNode internally; deferring
11
+ // the recursive Renderable call here keeps the diff small.
12
+ // - Parallel + group children flow through `deps.sequenceOne` until
13
+ // their own nodes land in step 3.
14
+ // - The Renderable interface's `measure(MeasureContext)` is not yet
15
+ // wired through the production pipeline. The composition-root work
16
+ // in step 5 (`RoadmapNode`) will exercise it; meanwhile the legacy
17
+ // two-pass "buildSwimlane returns positioned + usedHeight" shape is
18
+ // preserved.
19
+ import { isItemDeclaration } from '@nowline/core';
20
+ import { deriveItemDurationDays } from '../calendar.js';
21
+ import { estimateCapacitySuffixWidth, formatCapacityNumber, parseCapacityValue, resolveCapacityIcon, } from '../capacity.js';
22
+ import { propValue } from '../dsl-utils.js';
23
+ import { frameTabGeometry } from '../frame-tab-geometry.js';
24
+ import { computeLaneUtilization, resolveLaneUtilizationThresholds } from '../lane-utilization.js';
25
+ import { RowPacker } from '../row-packer.js';
26
+ import { resolveStyle } from '../style-resolution.js';
27
+ import { ITEM_INSET_PX, MIN_ITEM_WIDTH } from '../themes/shared.js';
28
+ /**
29
+ * Font size (px) the renderer uses for the lane capacity badge. Mirrors
30
+ * the owner-badge font size in `renderSwimlane` so the two reads as a
31
+ * single info row inside the chiclet. Width estimates here must use the
32
+ * same value or the geometry-collision math diverges from the painted
33
+ * footprint.
34
+ */
35
+ const LANE_CAPACITY_BADGE_FONT_SIZE_PX = 10;
36
+ /**
37
+ * Compute the lane's PositionedCapacity (or null when no `capacity:` is
38
+ * declared / value is non-positive) plus the px width the badge will
39
+ * occupy inside the frame tab. The width includes the bare badge —
40
+ * leading-separator handling lives in `frameTabGeometry`.
41
+ */
42
+ function resolveLaneCapacity(lane, style, symbols) {
43
+ const raw = propValue(lane.properties, 'capacity');
44
+ const value = parseCapacityValue(raw);
45
+ if (value === null)
46
+ return { capacity: null, badgeWidthPx: 0 };
47
+ const text = formatCapacityNumber(value);
48
+ const icon = resolveCapacityIcon(style.capacityIcon, symbols);
49
+ const badgeWidthPx = estimateCapacitySuffixWidth(text, icon, LANE_CAPACITY_BADGE_FONT_SIZE_PX);
50
+ return {
51
+ capacity: { value, text, icon },
52
+ badgeWidthPx,
53
+ };
54
+ }
55
+ const TAB_TOP_Y = 10; // matches renderer: tabY = box.y + 10
56
+ const TAB_BOTTOM_Y = 38; // tab (height 22) plus 6 px breathing room
57
+ const TAB_GUTTER_PX = 8;
58
+ /**
59
+ * Right edge (canvas px) of the lane title tab. Delegates to the
60
+ * shared `frameTabGeometry` helper that the renderer also uses, so
61
+ * the chiclet's collision footprint and its painted footprint stay
62
+ * exactly in sync. Capacity badge and footnote-indicator widths are
63
+ * added when present so the first-item collision math reserves
64
+ * enough horizontal space for the (now-wider) chiclet.
65
+ */
66
+ function computeLaneTabRightX(lane, capacityBadgeWidthPx, footnoteIndicatorWidthPx) {
67
+ const title = lane.title ?? lane.name ?? '';
68
+ if (!title)
69
+ return 0;
70
+ const ownerRaw = propValue(lane.properties, 'owner');
71
+ // Box is laid out at `box.x = 0` for top-level lanes; the helper
72
+ // adds the standard `FRAME_TAB_OFFSET_FROM_BOX_PX` itself.
73
+ return frameTabGeometry(0, title, ownerRaw ?? undefined, capacityBadgeWidthPx, footnoteIndicatorWidthPx).rightX;
74
+ }
75
+ /**
76
+ * Footnote indicators (1-based numbers) that name this lane via `on:`,
77
+ * sorted ascending. Empty when the lane has no name or no matching
78
+ * footnote hosts. Computed up-front so the chiclet width reservation
79
+ * and the painted footnote text use the same numbers.
80
+ */
81
+ function collectFootnoteIndicators(lane, ctx) {
82
+ if (!lane.name)
83
+ return [];
84
+ const out = [];
85
+ for (const [fid, host] of ctx.footnoteHosts.entries()) {
86
+ if (host.includes(lane.name)) {
87
+ const n = ctx.footnoteIndex.get(fid);
88
+ if (n !== undefined)
89
+ out.push(n);
90
+ }
91
+ }
92
+ out.sort((a, b) => a - b);
93
+ return out;
94
+ }
95
+ /**
96
+ * Desired starting x for the first non-description child of a lane.
97
+ * Returns undefined when the lane has no chartable children. Used by
98
+ * the top-pad collapse decision (a row whose first item lives past the
99
+ * tab can sit at TAB_TOP_Y; otherwise rows drop below the tab).
100
+ */
101
+ function firstChildStartX(lane, laneLeftX, ctx, deps) {
102
+ for (const child of lane.content) {
103
+ if (child.$type === 'DescriptionDirective')
104
+ continue;
105
+ const props = isItemDeclaration(child)
106
+ ? child.properties
107
+ : (child.properties ?? []);
108
+ return deps.resolveChildStart(props, laneLeftX, laneLeftX, ctx);
109
+ }
110
+ return undefined;
111
+ }
112
+ export class SwimlaneNode {
113
+ input;
114
+ deps;
115
+ constructor(input,
116
+ // biome-ignore lint/correctness/noUnusedPrivateClassMembers: accessed via `const { deps } = this` destructuring inside methods, which the analyzer does not detect.
117
+ deps) {
118
+ this.input = input;
119
+ this.deps = deps;
120
+ }
121
+ get id() {
122
+ return this.input.lane.name ?? '';
123
+ }
124
+ place(origin, ctx) {
125
+ const { lane, bandIndex } = this.input;
126
+ const { deps } = this;
127
+ const style = resolveStyle('swimlane', lane.properties, ctx.styleCtx);
128
+ const laneLeftX = origin.x;
129
+ const step = ctx.bandScale.step();
130
+ // Each swimlane root opens a fresh flow — its direct children
131
+ // chain in time, so a milestone's `after:` predecessors that
132
+ // share a swimlane collapse to the latest one in file order
133
+ // (file order encodes the dependency on its own). Restored at
134
+ // the bottom of `place()`.
135
+ const previousFlowKey = ctx.currentFlowKey;
136
+ ctx.currentFlowKey = `lane:${lane.name ?? bandIndex}`;
137
+ // Resolve lane capacity early — its width feeds into the
138
+ // chiclet's right-edge collision calculation, which determines
139
+ // whether the first row sits at TAB_TOP_Y or TAB_BOTTOM_Y.
140
+ const { capacity, badgeWidthPx } = resolveLaneCapacity(lane, style, ctx.symbols);
141
+ // Footnote indicators (the small "1, 2" red text in the upper
142
+ // right of the chiclet) need to be reserved in the chiclet's
143
+ // width too, otherwise they paint on top of the owner / badge
144
+ // for shrink-wrapped chiclets. Computed up front from the
145
+ // pre-resolved footnote index/host map.
146
+ const footnoteIndicators = collectFootnoteIndicators(lane, ctx);
147
+ const footnoteIndicatorWidthPx = footnoteIndicators.length > 0
148
+ ? deps.estimateTextWidth(footnoteIndicators.join(','), LANE_CAPACITY_BADGE_FONT_SIZE_PX)
149
+ : 0;
150
+ // Title-tab geometry (mirrors the renderer; see renderSwimlane).
151
+ const tabRightX = computeLaneTabRightX(lane, badgeWidthPx, footnoteIndicatorWidthPx);
152
+ // First-row Y: when the first child's desired x is past the title
153
+ // tab, top-align with the tab and reclaim ~28 px per lane.
154
+ // Otherwise drop below the tab.
155
+ const firstChildDesiredX = firstChildStartX(lane, laneLeftX, ctx, deps);
156
+ const canAlignFirstRowWithTab = !lane.title ||
157
+ firstChildDesiredX === undefined ||
158
+ firstChildDesiredX >= tabRightX + TAB_GUTTER_PX;
159
+ const startY = origin.y + (canAlignFirstRowWithTab ? TAB_TOP_Y : TAB_BOTTOM_Y);
160
+ // Topmost-fit row pack. See `RowPacker` for the full contract.
161
+ // The packer owns the rows; we feed it children in DSL order and
162
+ // it returns each child's resolved (rowIndex, y).
163
+ const packer = new RowPacker({
164
+ laneLeftX,
165
+ originY: startY,
166
+ minRowHeight: step,
167
+ slackCorridors: ctx.slackCorridors,
168
+ });
169
+ let timeCursorX = laneLeftX;
170
+ const children = [];
171
+ for (const child of lane.content) {
172
+ if (child.$type === 'DescriptionDirective')
173
+ continue;
174
+ if (!isItemDeclaration(child)) {
175
+ const blockProps = child.properties ?? [];
176
+ const blockStart = deps.resolveChildStart(blockProps, timeCursorX, laneLeftX, ctx);
177
+ const { rowIndex, y: blockY } = packer.placeBlock();
178
+ const cursor = deps.newCursor(blockStart, blockY);
179
+ const positioned = deps.sequenceOne(child, cursor, ctx);
180
+ children.push(positioned);
181
+ const blockEnd = positioned.box.x + positioned.box.width;
182
+ const blockHeight = Math.max(step, cursor.height);
183
+ packer.commitBlock({
184
+ rowIndex,
185
+ placed: positioned,
186
+ blockHeight,
187
+ blockEnd,
188
+ });
189
+ timeCursorX = Math.max(timeCursorX, blockEnd);
190
+ continue;
191
+ }
192
+ const props = child.properties;
193
+ const desiredStart = deps.resolveChildStart(props, timeCursorX, laneLeftX, ctx);
194
+ // Predict the item's logical extent so the row-pack can decide
195
+ // BEFORE handing off to sequenceItem. The arithmetic mirrors
196
+ // the duration → width math in `sequenceItem` (see
197
+ // packages/layout/src/layout.ts).
198
+ const durationDays = deriveItemDurationDays(props, ctx.sizes, ctx.cal);
199
+ const naturalWidth = Math.max(MIN_ITEM_WIDTH, durationDays * ctx.timeline.pixelsPerDay);
200
+ const desiredEnd = desiredStart + naturalWidth;
201
+ const childId = child.name ?? '';
202
+ const chipExtra = deps.predictItemChipExtraHeight(child, ctx);
203
+ const predictedHeight = step + chipExtra;
204
+ const { rowIndex, y: rowY } = packer.placeItem({
205
+ childId,
206
+ desiredStart,
207
+ desiredEnd,
208
+ // Row pitch = `step()` + extra chip-row height. Keeps
209
+ // the inter-row visible gap (= step - bandwidth) intact
210
+ // when an item's labels wrap and grow the bar.
211
+ predictedHeight,
212
+ });
213
+ const cursor = deps.newCursor(desiredStart, rowY);
214
+ const positioned = deps.sequenceItem(child, cursor, ctx);
215
+ children.push(positioned);
216
+ // Item end in LOGICAL space (one ITEM_INSET_PX past the visual
217
+ // bar's right edge). The next chained item starts here and
218
+ // lands edge-to-edge in time, with a 2 × ITEM_INSET_PX visible
219
+ // gutter between bars.
220
+ const itemLogicalEnd = positioned.box.x + positioned.box.width + ITEM_INSET_PX;
221
+ timeCursorX = Math.max(timeCursorX, itemLogicalEnd);
222
+ let spillReservation = null;
223
+ const hasAnySpill = positioned.textSpills ||
224
+ positioned.chipsOutside ||
225
+ positioned.dotSpills ||
226
+ positioned.iconSpills ||
227
+ positioned.footnoteSpills;
228
+ if (hasAnySpill) {
229
+ // `decorationsRightX` already aggregates the spilled
230
+ // dot / icon / footnote / caption right edges from
231
+ // `sequenceItem`; the chip column tracks separately
232
+ // via `chipsRightX`. Add a 6-px buffer so the next
233
+ // chained item's bar leaves a visible gutter past
234
+ // the spilled cluster instead of butting against it.
235
+ const farRight = Math.max(positioned.decorationsRightX, positioned.chipsOutside ? positioned.chipsRightX : 0);
236
+ spillReservation = farRight + 6;
237
+ }
238
+ packer.commitItem({
239
+ rowIndex,
240
+ placed: positioned,
241
+ logicalEnd: itemLogicalEnd,
242
+ spillReservation,
243
+ rowHeight: predictedHeight,
244
+ });
245
+ }
246
+ // `packer.usedHeight()` measures from `startY` (the first row,
247
+ // below the title tab); the swimlane band spans from `origin.y`
248
+ // (the band top, above the tab). Add the tab offset back so the
249
+ // band height covers everything the user sees.
250
+ const tabOffset = startY - origin.y;
251
+ const bandHeight = Math.max(step + 32, tabOffset + packer.usedHeight() + 16);
252
+ // Include the chiclet's right edge in the lane's reported
253
+ // right-extent so empty lanes still report a non-zero right edge
254
+ // — `buildIncludeRegions` uses this to size the include's dashed
255
+ // bracket around its content, and a lane with only a chiclet
256
+ // (no items) should still fit visibly inside that bracket.
257
+ const usedRightX = Math.max(packer.usedRightX(), tabRightX);
258
+ const box = {
259
+ x: 0,
260
+ y: origin.y,
261
+ width: ctx.chartRightX,
262
+ height: bandHeight,
263
+ };
264
+ // Owner display string: id → title for teams/people; falls back to id.
265
+ const ownerRaw = propValue(lane.properties, 'owner');
266
+ let ownerDisplay;
267
+ if (ownerRaw) {
268
+ const team = ctx.teams.get(ownerRaw);
269
+ const person = ctx.persons.get(ownerRaw);
270
+ ownerDisplay = team?.title ?? person?.title ?? ownerRaw;
271
+ }
272
+ // Lane utilization underline (m12). Computed *after* children are
273
+ // positioned so the contributors carry their final box.x / box.width.
274
+ // Returns null when the lane has no `capacity:`, no contributing
275
+ // items, or has opted out of every color band — the renderer reads
276
+ // null as "paint nothing".
277
+ const utilization = capacity
278
+ ? (() => {
279
+ const { warn, over } = resolveLaneUtilizationThresholds(lane, ctx.styleCtx.defaults);
280
+ return computeLaneUtilization({
281
+ children,
282
+ capacityValue: capacity.value,
283
+ warnFraction: warn,
284
+ overFraction: over,
285
+ });
286
+ })()
287
+ : null;
288
+ ctx.currentFlowKey = previousFlowKey;
289
+ return {
290
+ positioned: {
291
+ id: lane.name,
292
+ title: lane.title ?? lane.name ?? '',
293
+ box,
294
+ bandIndex,
295
+ children,
296
+ nested: [],
297
+ style,
298
+ owner: ownerDisplay,
299
+ footnoteIndicators,
300
+ capacity,
301
+ utilization,
302
+ },
303
+ usedHeight: bandHeight,
304
+ usedRightX,
305
+ };
306
+ }
307
+ }
308
+ //# sourceMappingURL=swimlane-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swimlane-node.js","sourceRoot":"","sources":["../../src/nodes/swimlane-node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { BandScale } from './band-scale.js';
2
+ import type { TimeScale } from './time-scale.js';
3
+ import type { ResolvedStyle } from './types.js';
4
+ export interface Point {
5
+ x: number;
6
+ y: number;
7
+ }
8
+ export interface IntrinsicSize {
9
+ /**
10
+ * Width the node wants. For time-driven entities (items, the
11
+ * timeline header) this comes from `TimeScale.forward(end) -
12
+ * forward(start)`; for static entities it's content-driven.
13
+ */
14
+ width: number;
15
+ /**
16
+ * Height the node wants. Bubbles up to the parent BandScale,
17
+ * which in v2 uses it to size band slots instead of a fixed
18
+ * `ITEM_ROW_HEIGHT` constant.
19
+ */
20
+ height: number;
21
+ }
22
+ export interface MeasureContext {
23
+ time: TimeScale;
24
+ bands: BandScale;
25
+ style: ResolvedStyle;
26
+ }
27
+ export interface PlaceContext extends MeasureContext {
28
+ /**
29
+ * Horizontal extent of the band background that owns this node.
30
+ * Used by swimlanes to draw their full-width tab + band fill;
31
+ * defaults to `time.range` when absent.
32
+ */
33
+ bandX?: number;
34
+ bandWidth?: number;
35
+ }
36
+ export interface Renderable<TPositioned> {
37
+ /** Stable id for the node (matches the DSL entity id). */
38
+ id: string;
39
+ /** Compute intrinsic size — pure and idempotent. */
40
+ measure(ctx: MeasureContext): IntrinsicSize;
41
+ /** Anchor + emit positioned form. May recurse into children. */
42
+ place(origin: Point, ctx: PlaceContext): TPositioned;
43
+ }
44
+ //# sourceMappingURL=renderable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../src/renderable.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,KAAK;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc;IAChD;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU,CAAC,WAAW;IACnC,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,aAAa,CAAC;IAC5C,gEAAgE;IAChE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,GAAG,WAAW,CAAC;CACxD"}
@@ -0,0 +1,21 @@
1
+ // Renderable — measure/place tree primitive that the m2.5c rewrite of
2
+ // `layout.ts` is built on. Each entity (item, swimlane, group, ...)
3
+ // implements this interface and reports its intrinsic size; parents
4
+ // stack children using BandScale and the children's reported heights.
5
+ //
6
+ // The interface intentionally separates two phases:
7
+ //
8
+ // 1. measure(ctx) -> IntrinsicSize
9
+ // Pure, idempotent. Computes width + height the node WANTS given
10
+ // the available scales and resolved style. No side effects.
11
+ //
12
+ // 2. place(origin, ctx) -> TPositioned
13
+ // Anchors the node at `origin` and emits its positioned form.
14
+ // Recursively places children inside this call.
15
+ //
16
+ // `place` may invoke `measure` again — implementations should make
17
+ // `measure` cheap. The production nodes (`ItemNode`, `SwimlaneNode`,
18
+ // etc. under `nodes/`) follow this pattern: place re-measures, but
19
+ // measure is O(content) without I/O.
20
+ export {};
21
+ //# sourceMappingURL=renderable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderable.js","sourceRoot":"","sources":["../src/renderable.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,oEAAoE;AACpE,oEAAoE;AACpE,sEAAsE;AACtE,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,qCAAqC;AACrC,sEAAsE;AACtE,iEAAiE;AACjE,EAAE;AACF,yCAAyC;AACzC,mEAAmE;AACnE,qDAAqD;AACrD,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,mEAAmE;AACnE,qCAAqC"}
@@ -0,0 +1,125 @@
1
+ import type { PositionedItem, PositionedTrackChild, SlackCorridor } from './types.js';
2
+ export interface PackedRow {
3
+ /** Top-y of the row in canvas px. */
4
+ y: number;
5
+ /** Visible height of the row. Grows with the tallest committed child. */
6
+ height: number;
7
+ /** Logical x of the rightmost extent reached by a committed child. */
8
+ rightEdge: number;
9
+ /** Reserved x for caption spill. Items whose `desiredStart < spillX`
10
+ * bump to a new row even if `rightEdge` would let them in. */
11
+ spillX: number;
12
+ /** Children placed in this row. Used when the row's height grows
13
+ * after later rows exist — every child in every later row shifts
14
+ * down by the delta. */
15
+ placedChildren: PositionedTrackChild[];
16
+ }
17
+ export interface RowPackerOptions {
18
+ /** Logical left x of the track this packer owns (lane left edge or
19
+ * group's content left). New rows reset their `rightEdge` /
20
+ * `spillX` to this value. */
21
+ laneLeftX: number;
22
+ /** Top-y of the first row. */
23
+ originY: number;
24
+ /** Minimum height of any row. Typically `bandScale.step()`. */
25
+ minRowHeight: number;
26
+ /** Slack-arrow corridors to avoid. Items whose vertical band
27
+ * intersects a corridor at the candidate row bump to a new row. */
28
+ slackCorridors: SlackCorridor[];
29
+ }
30
+ /** Item placement query — passed to `placeItem` BEFORE sequencing. */
31
+ export interface ItemPlacementInput {
32
+ /** Item id; corridor-bumping is skipped for the corridor's own
33
+ * predecessor (the slack arrow's source item is exempt). */
34
+ childId: string;
35
+ /** Logical left x where the item wants to start. */
36
+ desiredStart: number;
37
+ /** Logical right x of the item's natural extent. */
38
+ desiredEnd: number;
39
+ /** Predicted intrinsic height of the item. Used to set the row's
40
+ * initial height when this is the first item in a fresh row, or
41
+ * to grow the row when a taller item lands in an existing row. */
42
+ predictedHeight: number;
43
+ }
44
+ /** Result of a `placeItem` query. */
45
+ export interface ItemPlacement {
46
+ rowIndex: number;
47
+ y: number;
48
+ }
49
+ /** Item-commit payload — passed to `commitItem` AFTER sequencing. */
50
+ export interface ItemCommitInput {
51
+ rowIndex: number;
52
+ placed: PositionedItem;
53
+ /** Logical right edge of the placed item. Includes the trailing
54
+ * `ITEM_INSET_PX` so the next chained item butts edge-to-edge in
55
+ * logical space (with a 2 × ITEM_INSET_PX visible gutter between
56
+ * bars). */
57
+ logicalEnd: number;
58
+ /** Reserved spill x for captions that overflow the bar's right
59
+ * edge. `null` resets the row's spill reservation to `laneLeftX`. */
60
+ spillReservation: number | null;
61
+ /** Total vertical reservation the placed item needs (e.g. bar
62
+ * height plus a multi-row spilled chip column hanging below the
63
+ * bar). When omitted, the row only grows to `placed.box.height`,
64
+ * which is fine for items whose entire content fits inside the
65
+ * bar. Set this to `predictedHeight` from `placeItem(...)` when
66
+ * the item has a chip overhang so the row grows even if it
67
+ * landed in an EXISTING row (where the placement step ignores
68
+ * `predictedHeight`). */
69
+ rowHeight?: number;
70
+ }
71
+ /** Result of a `placeBlock` query (parallel/group as a child). */
72
+ export interface BlockPlacement {
73
+ rowIndex: number;
74
+ y: number;
75
+ }
76
+ /** Block-commit payload — passed to `commitBlock` AFTER sequencing. */
77
+ export interface BlockCommitInput {
78
+ rowIndex: number;
79
+ placed: PositionedTrackChild;
80
+ /** Total vertical extent the block occupies (the block's reported
81
+ * `box.height`). The row this block landed on grows to at least
82
+ * this height. */
83
+ blockHeight: number;
84
+ /** Logical right edge of the block. */
85
+ blockEnd: number;
86
+ }
87
+ export declare class RowPacker {
88
+ readonly rows: PackedRow[];
89
+ private readonly opts;
90
+ constructor(opts: RowPackerOptions);
91
+ /**
92
+ * Find the topmost row where the item's natural extent fits without
93
+ * colliding with sibling content or a slack corridor; appending a
94
+ * fresh row at the bottom when none of the existing rows fit.
95
+ */
96
+ placeItem(input: ItemPlacementInput): ItemPlacement;
97
+ /**
98
+ * Blocks (parallel / group) always claim a fresh row at the bottom
99
+ * of the stack so their inner sub-tracks have contiguous rows to
100
+ * expand into. If the bottom row is empty, we reuse it; otherwise
101
+ * we append.
102
+ */
103
+ placeBlock(): BlockPlacement;
104
+ /**
105
+ * Record a placed item back into its row. Grows the row's height to
106
+ * fit the item, advances `rightEdge`, sets the caption spill, and
107
+ * shifts later rows down if this row got taller.
108
+ */
109
+ commitItem(input: ItemCommitInput): void;
110
+ /**
111
+ * Record a placed block. Sets the row's height to the block's full
112
+ * height (blocks own their row, no other child shares it).
113
+ */
114
+ commitBlock(input: BlockCommitInput): void;
115
+ /** Total vertical extent reached (last row's bottom - originY). */
116
+ usedHeight(): number;
117
+ /** Rightmost extent reached — bar logical end OR caption spill,
118
+ * whichever is wider, across every row. Empty rows contribute
119
+ * `laneLeftX`. */
120
+ usedRightX(): number;
121
+ private rowIntersectsCorridor;
122
+ private appendRow;
123
+ private growRowHeight;
124
+ }
125
+ //# sourceMappingURL=row-packer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-packer.d.ts","sourceRoot":"","sources":["../src/row-packer.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,WAAW,SAAS;IACtB,qCAAqC;IACrC,CAAC,EAAE,MAAM,CAAC;IACV,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB;mEAC+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf;;6BAEyB;IACzB,cAAc,EAAE,oBAAoB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC7B;;kCAE8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB;wEACoE;IACpE,cAAc,EAAE,aAAa,EAAE,CAAC;CACnC;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IAC/B;iEAC6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB;;uEAEmE;IACnE,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACb;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;IACvB;;;iBAGa;IACb,UAAU,EAAE,MAAM,CAAC;IACnB;0EACsE;IACtE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;;;;8BAO0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACb;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;IAC7B;;uBAEmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IAClB,SAAgB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAE5B,IAAI,EAAE,gBAAgB;IAalC;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa;IAYnD;;;;;OAKG;IACH,UAAU,IAAI,cAAc;IAS5B;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IASxC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAQ1C,mEAAmE;IACnE,UAAU,IAAI,MAAM;IAKpB;;uBAEmB;IACnB,UAAU,IAAI,MAAM;IASpB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa;CAaxB"}