@nowline/embed 0.0.0-dev.20261004042017.g9406f7f → 0.0.0-dev.20261004044228.g75c9ff9

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.
package/dist/meta.json CHANGED
@@ -5890,14 +5890,35 @@
5890
5890
  ],
5891
5891
  "format": "esm"
5892
5892
  },
5893
+ "../layout/dist/item-port-geometry.js": {
5894
+ "bytes": 2495,
5895
+ "imports": [
5896
+ {
5897
+ "path": "../layout/dist/themes/shared.js",
5898
+ "kind": "import-statement",
5899
+ "original": "./themes/shared.js"
5900
+ }
5901
+ ],
5902
+ "format": "esm"
5903
+ },
5893
5904
  "../layout/dist/layout-context.js": {
5894
5905
  "bytes": 390,
5895
5906
  "imports": [],
5896
5907
  "format": "esm"
5897
5908
  },
5909
+ "../layout/dist/positioned-shift.js": {
5910
+ "bytes": 2131,
5911
+ "imports": [],
5912
+ "format": "esm"
5913
+ },
5898
5914
  "../layout/dist/row-packer.js": {
5899
- "bytes": 6461,
5915
+ "bytes": 5831,
5900
5916
  "imports": [
5917
+ {
5918
+ "path": "../layout/dist/positioned-shift.js",
5919
+ "kind": "import-statement",
5920
+ "original": "./positioned-shift.js"
5921
+ },
5901
5922
  {
5902
5923
  "path": "<runtime>",
5903
5924
  "kind": "import-statement",
@@ -8743,7 +8764,7 @@
8743
8764
  "format": "esm"
8744
8765
  },
8745
8766
  "../layout/dist/nodes/include-node.js": {
8746
- "bytes": 5600,
8767
+ "bytes": 5470,
8747
8768
  "imports": [
8748
8769
  {
8749
8770
  "path": "../layout/dist/calendar.js",
@@ -8774,13 +8795,18 @@
8774
8795
  "format": "esm"
8775
8796
  },
8776
8797
  "../layout/dist/nodes/milestone-node.js": {
8777
- "bytes": 9145,
8798
+ "bytes": 9364,
8778
8799
  "imports": [
8779
8800
  {
8780
8801
  "path": "../layout/dist/dsl-utils.js",
8781
8802
  "kind": "import-statement",
8782
8803
  "original": "../dsl-utils.js"
8783
8804
  },
8805
+ {
8806
+ "path": "../layout/dist/item-port-geometry.js",
8807
+ "kind": "import-statement",
8808
+ "original": "../item-port-geometry.js"
8809
+ },
8784
8810
  {
8785
8811
  "path": "../layout/dist/style-resolution.js",
8786
8812
  "kind": "import-statement",
@@ -8800,7 +8826,7 @@
8800
8826
  "format": "esm"
8801
8827
  },
8802
8828
  "../layout/dist/nodes/roadmap-node.js": {
8803
- "bytes": 42143,
8829
+ "bytes": 40060,
8804
8830
  "imports": [
8805
8831
  {
8806
8832
  "path": "../layout/dist/band-scale.js",
@@ -8822,6 +8848,11 @@
8822
8848
  "kind": "import-statement",
8823
8849
  "original": "../i18n.js"
8824
8850
  },
8851
+ {
8852
+ "path": "../layout/dist/positioned-shift.js",
8853
+ "kind": "import-statement",
8854
+ "original": "../positioned-shift.js"
8855
+ },
8825
8856
  {
8826
8857
  "path": "../layout/dist/style-resolution.js",
8827
8858
  "kind": "import-statement",
@@ -8891,7 +8922,7 @@
8891
8922
  "format": "esm"
8892
8923
  },
8893
8924
  "../layout/dist/layout.js": {
8894
- "bytes": 68831,
8925
+ "bytes": 66761,
8895
8926
  "imports": [
8896
8927
  {
8897
8928
  "path": "../core/dist/index.js",
@@ -8938,6 +8969,11 @@
8938
8969
  "kind": "import-statement",
8939
8970
  "original": "./item-bar-geometry.js"
8940
8971
  },
8972
+ {
8973
+ "path": "../layout/dist/item-port-geometry.js",
8974
+ "kind": "import-statement",
8975
+ "original": "./item-port-geometry.js"
8976
+ },
8941
8977
  {
8942
8978
  "path": "../layout/dist/layout-context.js",
8943
8979
  "kind": "import-statement",
@@ -9388,7 +9424,7 @@
9388
9424
  "imports": [],
9389
9425
  "exports": [],
9390
9426
  "inputs": {},
9391
- "bytes": 3464017
9427
+ "bytes": 3462479
9392
9428
  },
9393
9429
  "dist/nowline.min.js": {
9394
9430
  "imports": [],
@@ -10373,11 +10409,17 @@
10373
10409
  "../layout/dist/inline-date-pin-geometry.js": {
10374
10410
  "bytesInOutput": 1028
10375
10411
  },
10412
+ "../layout/dist/item-port-geometry.js": {
10413
+ "bytesInOutput": 275
10414
+ },
10376
10415
  "../layout/dist/layout-context.js": {
10377
10416
  "bytesInOutput": 49
10378
10417
  },
10418
+ "../layout/dist/positioned-shift.js": {
10419
+ "bytesInOutput": 371
10420
+ },
10379
10421
  "../layout/dist/row-packer.js": {
10380
- "bytesInOutput": 2017
10422
+ "bytesInOutput": 1857
10381
10423
  },
10382
10424
  "../layout/dist/themes/dark.js": {
10383
10425
  "bytesInOutput": 3123
@@ -10578,16 +10620,16 @@
10578
10620
  "bytesInOutput": 2933
10579
10621
  },
10580
10622
  "../layout/dist/nodes/include-node.js": {
10581
- "bytesInOutput": 1441
10623
+ "bytesInOutput": 1359
10582
10624
  },
10583
10625
  "../layout/dist/nodes/milestone-node.js": {
10584
- "bytesInOutput": 2015
10626
+ "bytesInOutput": 2012
10585
10627
  },
10586
10628
  "../layout/dist/nodes/roadmap-node.js": {
10587
- "bytesInOutput": 8854
10629
+ "bytesInOutput": 8110
10588
10630
  },
10589
10631
  "../layout/dist/layout.js": {
10590
- "bytesInOutput": 13169
10632
+ "bytesInOutput": 12880
10591
10633
  },
10592
10634
  "../layout/dist/layout-insights.js": {
10593
10635
  "bytesInOutput": 1283
@@ -10647,7 +10689,7 @@
10647
10689
  "bytesInOutput": 257
10648
10690
  }
10649
10691
  },
10650
- "bytes": 673831
10692
+ "bytes": 673199
10651
10693
  }
10652
10694
  }
10653
10695
  }
@@ -1,4 +1,4 @@
1
- /*! @nowline/embed 0.0.0-dev.20261004042017.g9406f7f sha=9406f7f built=2026-10-04T00:19:51-04:00 */
1
+ /*! @nowline/embed 0.0.0-dev.20261004044228.g75c9ff9 sha=75c9ff9 built=2026-10-04T00:42:09-04:00 */
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -31720,11 +31720,61 @@ function pickInlineDate(values) {
31720
31720
  return void 0;
31721
31721
  }
31722
31722
 
31723
+ // ../layout/dist/item-port-geometry.js
31724
+ function progressStripMidY(item) {
31725
+ return item.box.y + item.box.height - PROGRESS_STRIP_HEIGHT_PX / 2;
31726
+ }
31727
+ function itemArrowTargetPort(item, bandwidth) {
31728
+ const { box } = item;
31729
+ return {
31730
+ x: box.x,
31731
+ y: item.textSpills ? box.y + box.height / 2 : box.y + bandwidth / 2
31732
+ };
31733
+ }
31734
+ function itemArrowSourcePort(item, bandwidth) {
31735
+ const { box } = item;
31736
+ return {
31737
+ x: box.x + box.width,
31738
+ y: item.textSpills ? progressStripMidY(item) : box.y + bandwidth / 2
31739
+ };
31740
+ }
31741
+ function itemSlackAttachY(item) {
31742
+ return item.textSpills ? progressStripMidY(item) : item.box.y + item.box.height / 2;
31743
+ }
31744
+
31723
31745
  // ../layout/dist/layout-context.js
31724
31746
  function newCursor(x2, y) {
31725
31747
  return { x: x2, y, height: 0, maxX: x2 };
31726
31748
  }
31727
31749
 
31750
+ // ../layout/dist/positioned-shift.js
31751
+ function shiftTrackChildY(child, dy) {
31752
+ child.box.y += dy;
31753
+ for (const pin of child.inlineDatePins ?? [])
31754
+ pin.glyphTopLeft.y += dy;
31755
+ if (child.kind === "item") {
31756
+ for (const chip of child.labelChips)
31757
+ chip.box.y += dy;
31758
+ if (child.overflowBox)
31759
+ child.overflowBox.y += dy;
31760
+ return;
31761
+ }
31762
+ for (const c of child.children)
31763
+ shiftTrackChildY(c, dy);
31764
+ }
31765
+ function shiftSwimlaneY(lane, dy) {
31766
+ lane.box.y += dy;
31767
+ for (const child of lane.children)
31768
+ shiftTrackChildY(child, dy);
31769
+ for (const nested of lane.nested)
31770
+ shiftSwimlaneY(nested, dy);
31771
+ }
31772
+ function shiftIncludeY(region, dy) {
31773
+ region.box.y += dy;
31774
+ for (const lane of region.nestedSwimlanes)
31775
+ shiftSwimlaneY(lane, dy);
31776
+ }
31777
+
31728
31778
  // ../layout/dist/row-packer.js
31729
31779
  var RowPacker = class {
31730
31780
  constructor(opts) {
@@ -31841,26 +31891,11 @@ var RowPacker = class {
31841
31891
  const r = this.rows[i2];
31842
31892
  r.y += delta;
31843
31893
  for (const child of r.placedChildren) {
31844
- shiftPositionedY(child, delta);
31894
+ shiftTrackChildY(child, delta);
31845
31895
  }
31846
31896
  }
31847
31897
  }
31848
31898
  };
31849
- function shiftPositionedY(p, dy) {
31850
- p.box.y += dy;
31851
- if (p.kind === "item") {
31852
- for (const chip of p.labelChips) {
31853
- chip.box.y += dy;
31854
- }
31855
- if (p.overflowBox) {
31856
- p.overflowBox.y += dy;
31857
- }
31858
- return;
31859
- }
31860
- for (const child of p.children) {
31861
- shiftPositionedY(child, dy);
31862
- }
31863
- }
31864
31899
 
31865
31900
  // ../layout/dist/themes/dark.js
31866
31901
  var darkNamed = {
@@ -35683,12 +35718,9 @@ function buildIncludeRegions(regions, ctx, startY, deps) {
35683
35718
  entityLeftEdges: /* @__PURE__ */ new Map(),
35684
35719
  entityRightEdges: /* @__PURE__ */ new Map(),
35685
35720
  entityMidpoints: /* @__PURE__ */ new Map(),
35686
- entityVisualLeftX: /* @__PURE__ */ new Map(),
35687
- entityVisualRightX: /* @__PURE__ */ new Map(),
35688
- itemArrowSource: /* @__PURE__ */ new Map(),
35721
+ placedItems: /* @__PURE__ */ new Map(),
35689
35722
  itemFlowKey: /* @__PURE__ */ new Map(),
35690
35723
  currentFlowKey: "",
35691
- itemSlackAttachY: /* @__PURE__ */ new Map(),
35692
35724
  slackCorridors: [],
35693
35725
  markerRowPlacements: /* @__PURE__ */ new Map(),
35694
35726
  chartTopY: innerStartY,
@@ -35741,11 +35773,11 @@ function buildIncludeRegions(regions, ctx, startY, deps) {
35741
35773
  function collectMilestonePredecessors(refs, ctx) {
35742
35774
  const out = [];
35743
35775
  for (const ref of refs) {
35744
- const visualRight = ctx.entityVisualRightX.get(ref);
35745
- const x2 = visualRight ?? ctx.entityRightEdges.get(ref);
35776
+ const item = ctx.placedItems.get(ref);
35777
+ const x2 = item ? item.box.x + item.box.width : ctx.entityRightEdges.get(ref);
35746
35778
  if (x2 === void 0)
35747
35779
  continue;
35748
- const y = ctx.itemSlackAttachY.get(ref) ?? ctx.entityMidpoints.get(ref)?.y ?? 0;
35780
+ const y = item ? itemSlackAttachY(item) : ctx.entityMidpoints.get(ref)?.y ?? 0;
35749
35781
  const flowKey = ctx.itemFlowKey.get(ref) ?? `marker:${ref}`;
35750
35782
  out.push({ ref, x: x2, y, flowKey });
35751
35783
  }
@@ -36039,12 +36071,9 @@ var RoadmapNode = class {
36039
36071
  entityLeftEdges: /* @__PURE__ */ new Map(),
36040
36072
  entityRightEdges: /* @__PURE__ */ new Map(),
36041
36073
  entityMidpoints: /* @__PURE__ */ new Map(),
36042
- entityVisualLeftX: /* @__PURE__ */ new Map(),
36043
- entityVisualRightX: /* @__PURE__ */ new Map(),
36044
- itemArrowSource: /* @__PURE__ */ new Map(),
36074
+ placedItems: /* @__PURE__ */ new Map(),
36045
36075
  itemFlowKey: /* @__PURE__ */ new Map(),
36046
36076
  currentFlowKey: "",
36047
- itemSlackAttachY: /* @__PURE__ */ new Map(),
36048
36077
  slackCorridors: [],
36049
36078
  markerRowPlacements,
36050
36079
  chartTopY: timelineY + timelineHeightBudget,
@@ -36098,10 +36127,7 @@ var RoadmapNode = class {
36098
36127
  ctx.entityLeftEdges = new Map(baselineEntityLeft);
36099
36128
  ctx.entityRightEdges = new Map(baselineEntityRight);
36100
36129
  ctx.entityMidpoints = new Map(baselineEntityMid);
36101
- ctx.itemSlackAttachY = /* @__PURE__ */ new Map();
36102
- ctx.entityVisualLeftX = /* @__PURE__ */ new Map();
36103
- ctx.entityVisualRightX = /* @__PURE__ */ new Map();
36104
- ctx.itemArrowSource = /* @__PURE__ */ new Map();
36130
+ ctx.placedItems = /* @__PURE__ */ new Map();
36105
36131
  ctx.itemFlowKey = /* @__PURE__ */ new Map();
36106
36132
  ctx.currentFlowKey = "";
36107
36133
  ctx.slackCorridors = corridors;
@@ -36213,17 +36239,6 @@ var RoadmapNode = class {
36213
36239
  shiftSwimlaneY(lane, deltaY);
36214
36240
  for (const inc of includes)
36215
36241
  shiftIncludeY(inc, deltaY);
36216
- for (const [id, m] of ctx.entityMidpoints) {
36217
- if (ctx.markerRowPlacements.has(id))
36218
- continue;
36219
- ctx.entityMidpoints.set(id, { x: m.x, y: m.y + deltaY });
36220
- }
36221
- for (const [id, y2] of ctx.itemSlackAttachY) {
36222
- ctx.itemSlackAttachY.set(id, y2 + deltaY);
36223
- }
36224
- for (const [id, p] of ctx.itemArrowSource) {
36225
- ctx.itemArrowSource.set(id, { x: p.x, y: p.y + deltaY });
36226
- }
36227
36242
  for (const m of milestones) {
36228
36243
  m.cutTopY = ctx.chartTopY;
36229
36244
  m.cutBottomY = ctx.swimlaneBottomY;
@@ -36348,30 +36363,6 @@ function collectSlackCorridors(milestones, ctx) {
36348
36363
  }
36349
36364
  return out;
36350
36365
  }
36351
- function shiftSwimlaneY(lane, dy) {
36352
- lane.box.y += dy;
36353
- for (const child of lane.children)
36354
- shiftTrackChildY(child, dy);
36355
- for (const nested of lane.nested)
36356
- shiftSwimlaneY(nested, dy);
36357
- }
36358
- function shiftTrackChildY(child, dy) {
36359
- child.box.y += dy;
36360
- if (child.kind === "item") {
36361
- if (child.overflowBox)
36362
- child.overflowBox.y += dy;
36363
- for (const chip of child.labelChips)
36364
- chip.box.y += dy;
36365
- return;
36366
- }
36367
- for (const c of child.children)
36368
- shiftTrackChildY(c, dy);
36369
- }
36370
- function shiftIncludeY(region, dy) {
36371
- region.box.y += dy;
36372
- for (const lane of region.nestedSwimlanes)
36373
- shiftSwimlaneY(lane, dy);
36374
- }
36375
36366
  function packMarkerRow(entries, chartLeftX, chartRightX, estimateTextWidth2) {
36376
36367
  const sorted = [...entries].sort((a, b) => a.centerX - b.centerX);
36377
36368
  const placements = /* @__PURE__ */ new Map();
@@ -36809,24 +36800,7 @@ function sequenceItem(node, cursor, ctx, ownerOverride) {
36809
36800
  ctx.entityRightEdges.set(id, logicalRight);
36810
36801
  }
36811
36802
  const drawKey = id ?? syntheticItemKey(node);
36812
- const attachMidY = itemBox.y + bandwidth / 2;
36813
- ctx.entityMidpoints.set(drawKey, {
36814
- x: (logicalLeft + logicalRight) / 2,
36815
- y: textSpills ? itemBox.y + itemBox.height / 2 : attachMidY
36816
- });
36817
- ctx.entityVisualLeftX.set(drawKey, itemBox.x);
36818
- ctx.entityVisualRightX.set(drawKey, itemBox.x + itemBox.width);
36819
- const arrowSource = textSpills ? {
36820
- x: itemBox.x + itemBox.width,
36821
- y: itemBox.y + itemBox.height - PROGRESS_STRIP_HEIGHT_PX / 2
36822
- } : {
36823
- x: itemBox.x + itemBox.width,
36824
- y: attachMidY
36825
- };
36826
- ctx.itemArrowSource.set(drawKey, arrowSource);
36827
36803
  ctx.itemFlowKey.set(drawKey, ctx.currentFlowKey);
36828
- const slackAttachY = textSpills ? itemBox.y + itemBox.height - PROGRESS_STRIP_HEIGHT_PX / 2 : itemBox.y + itemBox.height / 2;
36829
- ctx.itemSlackAttachY.set(drawKey, slackAttachY);
36830
36804
  cursor.x = logicalRight;
36831
36805
  cursor.maxX = Math.max(cursor.maxX, cursor.x);
36832
36806
  cursor.height = Math.max(cursor.height, ctx.bandScale.step() + barExtra);
@@ -36873,6 +36847,7 @@ function sequenceItem(node, cursor, ctx, ownerOverride) {
36873
36847
  style,
36874
36848
  inlineDatePins: inlineDatePins.length > 0 ? inlineDatePins : void 0
36875
36849
  };
36850
+ ctx.placedItems.set(drawKey, result);
36876
36851
  return result;
36877
36852
  }
36878
36853
  function sequenceParallel(node, cursor, ctx) {
@@ -37163,24 +37138,24 @@ function buildDependencies(items, swimlanes, includes, ctx) {
37163
37138
  const grid = new ChannelGrid(collectRoutingObstacles(swimlanes, includes));
37164
37139
  const requests = [];
37165
37140
  const pending = [];
37141
+ const bandwidth = ctx.bandScale.bandwidth();
37166
37142
  for (const [id, item] of items) {
37167
37143
  const afters = propValues(item.properties, "after");
37168
- const targetMid = ctx.entityMidpoints.get(id);
37169
- const targetVisualLeftX = ctx.entityVisualLeftX.get(id);
37170
- if (!targetMid || targetVisualLeftX === void 0)
37144
+ const target = ctx.placedItems.get(id);
37145
+ if (!target)
37171
37146
  continue;
37172
- const targetPoint = { x: targetVisualLeftX, y: targetMid.y };
37147
+ const targetPoint = itemArrowTargetPort(target, bandwidth);
37173
37148
  for (const pred of afters) {
37174
- const itemSource = ctx.itemArrowSource.get(pred);
37149
+ const predItem = ctx.placedItems.get(pred);
37175
37150
  let from;
37176
- const isMarkerPred = itemSource === void 0;
37177
- if (itemSource) {
37178
- from = itemSource;
37151
+ const isMarkerPred = predItem === void 0;
37152
+ if (predItem) {
37153
+ from = itemArrowSourcePort(predItem, bandwidth);
37179
37154
  } else {
37180
37155
  const markerMid = ctx.entityMidpoints.get(pred);
37181
37156
  if (!markerMid)
37182
37157
  continue;
37183
- from = { x: markerMid.x, y: targetMid.y };
37158
+ from = { x: markerMid.x, y: targetPoint.y };
37184
37159
  }
37185
37160
  if (!isMarkerPred && Math.abs(from.y - targetPoint.y) < 0.5 && targetPoint.x - from.x < 20) {
37186
37161
  continue;
@@ -40179,8 +40154,8 @@ function effectiveTheme(theme, systemTheme) {
40179
40154
  }
40180
40155
 
40181
40156
  // src/index.ts
40182
- var version = true ? "0.0.0-dev.20261004042017.g9406f7f" : "0.0.0";
40183
- var sha = true ? "9406f7f" : "unknown";
40157
+ var version = true ? "0.0.0-dev.20261004044228.g75c9ff9" : "0.0.0";
40158
+ var sha = true ? "75c9ff9" : "unknown";
40184
40159
  var DEFAULT_SELECTOR = "pre code.language-nowline, code.language-nowline";
40185
40160
  var initialConfig = {
40186
40161
  theme: "auto",