@diagrammo/dgmo 0.93.0 → 0.95.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 (122) hide show
  1. package/dist/advanced.d.ts +98 -21
  2. package/dist/advanced.js +79 -61
  3. package/dist/block.d.ts +6 -0
  4. package/dist/block.js +23 -20
  5. package/dist/chart-meta.js +9 -9
  6. package/dist/{charts-d3-ERYYVGP6.js → charts-d3-SZV2SFTM.js} +2 -2
  7. package/dist/{chunk-J6AEKIRQ.js → chunk-2I4UQG7W.js} +1 -1
  8. package/dist/{chunk-LDDDKWL6.js → chunk-2J2CWWWK.js} +1 -1
  9. package/dist/{chunk-QDRCWVV3.js → chunk-4EX4OKGZ.js} +71 -8
  10. package/dist/{chunk-A5WIAMCT.js → chunk-4UVCTLRH.js} +1 -1
  11. package/dist/{chunk-KCMGIYPO.js → chunk-5XBYLYYI.js} +1 -1
  12. package/dist/{chunk-XUTR7GNT.js → chunk-62GLKE6Q.js} +68 -29
  13. package/dist/{chunk-D6PVMUCX.js → chunk-67N26CER.js} +4 -4
  14. package/dist/{chunk-IIV4SMJL.js → chunk-6EFCOES2.js} +370 -285
  15. package/dist/{chunk-TNV4F5WA.js → chunk-7IALGIOI.js} +2 -2
  16. package/dist/{chunk-MB2SQF7N.js → chunk-7WEYXYLC.js} +1 -1
  17. package/dist/{chunk-4RY5D5RE.js → chunk-AM42TLSZ.js} +98 -93
  18. package/dist/{chunk-J43OCO22.js → chunk-BCV2VJTM.js} +2 -2
  19. package/dist/{chunk-7OWK5K5C.js → chunk-BH2SF4TT.js} +2 -2
  20. package/dist/{chunk-UVX3IYXF.js → chunk-BTP2BMWN.js} +4 -4
  21. package/dist/{chunk-MUJVNSEW.js → chunk-C6G36F5S.js} +1 -1
  22. package/dist/{chunk-ZTLMEBAC.js → chunk-E7F76M3U.js} +208 -26
  23. package/dist/{chunk-AUS7V54P.js → chunk-ERT7XDQW.js} +1 -1
  24. package/dist/{chunk-WK5QEYFA.js → chunk-EXHXTMVR.js} +3 -3
  25. package/dist/{chunk-YXXIRM4C.js → chunk-FWVE373X.js} +2 -2
  26. package/dist/{chunk-EQWC76GQ.js → chunk-GWQRTA5W.js} +2 -2
  27. package/dist/{chunk-GJXMG4S3.js → chunk-HHVIE45A.js} +1 -1
  28. package/dist/{chunk-4FT5KQ7H.js → chunk-IGJEKO2P.js} +1 -1
  29. package/dist/{chunk-KRU2LCIP.js → chunk-IHN6WDEY.js} +1 -1
  30. package/dist/{chunk-QT3KDDXK.js → chunk-IN7XI6NO.js} +0 -7
  31. package/dist/{chunk-NMK7KJZZ.js → chunk-IQN2NGEU.js} +4 -4
  32. package/dist/{chunk-M6ZQAFPD.js → chunk-IY62DXT2.js} +1 -1
  33. package/dist/{chunk-4WQX55VX.js → chunk-IZHGT5HD.js} +31 -5
  34. package/dist/{chunk-CYDM2XII.js → chunk-JJ7RGTAU.js} +56 -7
  35. package/dist/{chunk-NJJCTEBM.js → chunk-KLBTJEIK.js} +1 -1
  36. package/dist/{chunk-KHL652SX.js → chunk-KSZB7TIY.js} +1 -1
  37. package/dist/{chunk-KPSSNGAE.js → chunk-L5S32VZJ.js} +4 -4
  38. package/dist/{chunk-472EOHVW.js → chunk-LAXMUSGW.js} +31 -5
  39. package/dist/{chunk-M4NV5PPU.js → chunk-LJGE43SG.js} +1 -1
  40. package/dist/{chunk-VSOZZYLK.js → chunk-NERQSSYD.js} +20 -9
  41. package/dist/{chunk-UG7AQQNR.js → chunk-OSSTOSXU.js} +2 -2
  42. package/dist/{chunk-YDZIVDVR.js → chunk-P5XA627W.js} +7 -7
  43. package/dist/{chunk-DRQSB72S.js → chunk-PGBTUGDB.js} +2 -2
  44. package/dist/{chunk-65GPEV5V.js → chunk-QKPOIJBT.js} +2 -2
  45. package/dist/{chunk-QJOVZ4TC.js → chunk-QPQWY5RU.js} +1 -1
  46. package/dist/{chunk-P7TRFL4P.js → chunk-R46N5KR4.js} +2 -0
  47. package/dist/{chunk-LNVB75QU.js → chunk-RBVFNUAL.js} +1 -1
  48. package/dist/{chunk-DAHQL57W.js → chunk-RITTLIDJ.js} +1 -1
  49. package/dist/{chunk-2TFXRBCD.js → chunk-RQTDUZUH.js} +3 -3
  50. package/dist/{chunk-Q7Y6JQ3R.js → chunk-S4SJ4LLY.js} +1 -1
  51. package/dist/{chunk-LUDUDBO6.js → chunk-S5Y3OO3V.js} +2 -2
  52. package/dist/{chunk-3GCASUWA.js → chunk-TASRGDYP.js} +1 -1
  53. package/dist/{chunk-5HAYT43L.js → chunk-U6VS3T2M.js} +19 -3
  54. package/dist/{chunk-42UJ23H3.js → chunk-UIEKW4SG.js} +1 -0
  55. package/dist/{chunk-IESUM4N5.js → chunk-USE6HIOZ.js} +95 -62
  56. package/dist/{chunk-FIYW7JW4.js → chunk-USZLHYEQ.js} +1 -1
  57. package/dist/{chunk-U7U64UUN.js → chunk-V5D6GDNK.js} +4 -4
  58. package/dist/{chunk-ADVGV3P7.js → chunk-VB4VMB2I.js} +7 -5
  59. package/dist/{chunk-CQYFZOUC.js → chunk-VBMRZCMQ.js} +1 -1
  60. package/dist/{chunk-USAGHYRD.js → chunk-VF7IKIRS.js} +2 -2
  61. package/dist/{chunk-EJS3K44P.js → chunk-VGAMBOOC.js} +5 -3
  62. package/dist/{chunk-P5FUWXPW.js → chunk-VTESGA5F.js} +7 -5
  63. package/dist/chunk-WTTIODDV.js +9 -0
  64. package/dist/{chunk-5CBX66KB.js → chunk-XJQ6Z3FO.js} +2 -2
  65. package/dist/{chunk-KPGPK4SK.js → chunk-XOMIYMQ3.js} +6 -6
  66. package/dist/{chunk-KCHQVED5.js → chunk-YQMIKX54.js} +43 -7
  67. package/dist/completion-registry.js +3 -0
  68. package/dist/copy-image.d.ts +34 -0
  69. package/dist/copy-image.js +96 -0
  70. package/dist/countdown.js +1 -1
  71. package/dist/{dgmo-router-CZN36TR3.js → dgmo-router-6YLKM6WU.js} +13 -13
  72. package/dist/{dimensions-7HHKO5BS.js → dimensions-DS6FWLRY.js} +2 -2
  73. package/dist/{flowchart-parser-4MZPWYK6.js → flowchart-parser-J3VWIFWB.js} +5 -5
  74. package/dist/{flowchart-renderer-5XDN575E.js → flowchart-renderer-FECH5KK5.js} +14 -12
  75. package/dist/index.js +19 -19
  76. package/dist/layout-5SZ5A64I.js +24 -0
  77. package/dist/{layout-5GHV7HNM.js → layout-EWXHEXNS.js} +11 -10
  78. package/dist/{layout-QXGPY7KA.js → layout-TIBRMWHL.js} +7 -6
  79. package/dist/layout-VDCJOZSH.js +11 -0
  80. package/dist/layout-YBMT74MG.js +24 -0
  81. package/dist/{layout-search-EMTCDC3C.js → layout-search-AWPJWBKT.js} +9 -8
  82. package/dist/{parser-R3LPEQIT.js → parser-AR2GON37.js} +2 -2
  83. package/dist/{parser-YX72VLDZ.js → parser-BTSTKY5G.js} +5 -5
  84. package/dist/{parser-OGF2CDA6.js → parser-MA7L3XND.js} +5 -5
  85. package/dist/{parser-VKYUAT4Y.js → parser-ZRIZFDZY.js} +5 -5
  86. package/dist/{redraw-T324XAF3.js → redraw-AHW7EUUF.js} +2 -2
  87. package/dist/{redraw-MSXU4ZD2.js → redraw-STZ4WJAI.js} +3 -3
  88. package/dist/{renderer-HYGTMBHT.js → renderer-2LYX6NHN.js} +3 -3
  89. package/dist/{renderer-XJMVG2WJ.js → renderer-2QPHDBZY.js} +5 -5
  90. package/dist/{renderer-GPAVVUET.js → renderer-3NLDX7DQ.js} +3 -3
  91. package/dist/{renderer-IHCWBFPI.js → renderer-4VGO27EE.js} +14 -13
  92. package/dist/{renderer-JJ4QW3SK.js → renderer-6BDK47V6.js} +1 -1
  93. package/dist/{renderer-FL7EOSBU.js → renderer-7OGGV327.js} +3 -3
  94. package/dist/{renderer-5ITLW7MX.js → renderer-ACQQ2JXA.js} +6 -4
  95. package/dist/{renderer-37PLQHVB.js → renderer-BXD5KVSR.js} +2 -2
  96. package/dist/{renderer-TSCSZ6CL.js → renderer-HX6ICPDX.js} +2 -2
  97. package/dist/{renderer-BO73LSVT.js → renderer-IGSHD3OT.js} +4 -4
  98. package/dist/{renderer-DD6T3C4J.js → renderer-ISQJ2ELA.js} +2 -2
  99. package/dist/{renderer-CNRQFIEI.js → renderer-IVHD7ENY.js} +4 -4
  100. package/dist/{renderer-POBGKIUT.js → renderer-IXBOT6DU.js} +3 -3
  101. package/dist/{renderer-GFALLIYT.js → renderer-JYHA6R2D.js} +3 -3
  102. package/dist/{renderer-GOXAP2IE.js → renderer-KJ3V5BYP.js} +2 -2
  103. package/dist/{renderer-GFGFHYWY.js → renderer-MWZC7TMD.js} +2 -2
  104. package/dist/{renderer-3F47TPZ2.js → renderer-O6RP52CQ.js} +2 -2
  105. package/dist/{renderer-PBKTAWQV.js → renderer-P3WR7TKD.js} +14 -13
  106. package/dist/{renderer-VDBNC7A6.js → renderer-QTPWRRJ7.js} +2 -2
  107. package/dist/{renderer-J3QWK6IM.js → renderer-RUSQJFFC.js} +3 -3
  108. package/dist/{renderer-7Y3LR4R2.js → renderer-TINHO2IO.js} +2 -2
  109. package/dist/{renderer-J6H4Q3RM.js → renderer-UGW4N2W5.js} +4 -3
  110. package/dist/{renderer-EVKWGUGT.js → renderer-UTEEJDGB.js} +4 -3
  111. package/dist/{renderer-ISDKO3DI.js → renderer-WPN2SXGT.js} +2 -2
  112. package/dist/{renderer-6GJWADLO.js → renderer-XCLARXCK.js} +2 -2
  113. package/dist/{renderer-RDI2RYUP.js → renderer-XDX6S7OV.js} +3 -3
  114. package/dist/{renderer-VI34SD5V.js → renderer-Y47EM337.js} +6 -6
  115. package/dist/{renderer-HJ54YXT3.js → renderer-ZV6KCLCL.js} +14 -14
  116. package/dist/{state-parser-NPYTMRXP.js → state-parser-PMNHLHLE.js} +5 -5
  117. package/dist/{state-renderer-44K2KDX7.js → state-renderer-JQ5DS66J.js} +14 -13
  118. package/docs/language-reference.md +2 -2
  119. package/package.json +5 -1
  120. package/dist/layout-33FHGDEV.js +0 -23
  121. package/dist/layout-FTOGDNUL.js +0 -23
  122. package/dist/layout-J3AGFZZ7.js +0 -10
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  searchPlacement
3
- } from "./chunk-LDDDKWL6.js";
3
+ } from "./chunk-2J2CWWWK.js";
4
4
  import {
5
5
  buildPlacedNotes,
6
6
  noteCanvasShift,
7
7
  resolveNotes
8
- } from "./chunk-NJJCTEBM.js";
8
+ } from "./chunk-KLBTJEIK.js";
9
9
  import {
10
10
  measureText
11
11
  } from "./chunk-KAO7JL4I.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  stripInlineMarkdown
3
- } from "./chunk-65GPEV5V.js";
3
+ } from "./chunk-QKPOIJBT.js";
4
4
 
5
5
  // src/utils/wrapped-desc.ts
6
6
  var BULLET_PREFIX = "\u2022 ";
@@ -620,6 +620,88 @@ function layoutEdgeLabels(args) {
620
620
  return chosen;
621
621
  }
622
622
 
623
+ // src/map/dot-labels.ts
624
+ var DOT_LABEL_GAP = 3;
625
+ function dotLabelRect(dot, w, h, side) {
626
+ const GAP2 = DOT_LABEL_GAP;
627
+ switch (side) {
628
+ case "right":
629
+ return { x: dot.cx + dot.r + GAP2, y: dot.cy - h / 2, w, h };
630
+ case "left":
631
+ return { x: dot.cx - dot.r - GAP2 - w, y: dot.cy - h / 2, w, h };
632
+ case "above":
633
+ return { x: dot.cx - w / 2, y: dot.cy - dot.r - GAP2 - h, w, h };
634
+ case "below":
635
+ return { x: dot.cx - w / 2, y: dot.cy + dot.r + GAP2, w, h };
636
+ // Diagonal corners: offset both axes by (r+GAP)/√2 so the box's near
637
+ // corner clears the dot rim by the same gap as a cardinal side.
638
+ case "below-right": {
639
+ const d = (dot.r + GAP2) * 0.7071;
640
+ return { x: dot.cx + d, y: dot.cy + d, w, h };
641
+ }
642
+ case "below-left": {
643
+ const d = (dot.r + GAP2) * 0.7071;
644
+ return { x: dot.cx - d - w, y: dot.cy + d, w, h };
645
+ }
646
+ case "above-right": {
647
+ const d = (dot.r + GAP2) * 0.7071;
648
+ return { x: dot.cx + d, y: dot.cy - d - h, w, h };
649
+ }
650
+ case "above-left": {
651
+ const d = (dot.r + GAP2) * 0.7071;
652
+ return { x: dot.cx - d - w, y: dot.cy - d - h, w, h };
653
+ }
654
+ }
655
+ }
656
+ function dotLabelFits(rect, width, height, collides) {
657
+ return rect.x >= 0 && rect.x + rect.w <= width && rect.y >= 0 && rect.y + rect.h <= height && !collides(rect);
658
+ }
659
+ var CLEAR_CAP = 48;
660
+ var CLEAR_W = 8;
661
+ var WATER_W = 0.25;
662
+ var LEGIBILITY = {
663
+ right: 160,
664
+ left: 160,
665
+ above: 100,
666
+ below: 100,
667
+ "below-right": 0,
668
+ "below-left": 0,
669
+ "above-right": 0,
670
+ "above-left": 0
671
+ };
672
+ var ALL_SIDES = Object.keys(LEGIBILITY);
673
+ function ptSegDist(px, py, ax, ay, bx, by) {
674
+ const dx = bx - ax;
675
+ const dy = by - ay;
676
+ const len2 = dx * dx + dy * dy;
677
+ let t = len2 > 0 ? ((px - ax) * dx + (py - ay) * dy) / len2 : 0;
678
+ t = Math.max(0, Math.min(1, t));
679
+ return Math.hypot(px - (ax + t * dx), py - (ay + t * dy));
680
+ }
681
+ function clearanceOf(rect, ownId, dots, segments) {
682
+ const cxL = rect.x + rect.w / 2;
683
+ const cyL = rect.y + rect.h / 2;
684
+ let d = CLEAR_CAP;
685
+ for (const q of dots) {
686
+ if (q.id === ownId) continue;
687
+ d = Math.min(d, Math.hypot(q.cx - cxL, q.cy - cyL) - q.r);
688
+ }
689
+ for (const s of segments)
690
+ d = Math.min(d, ptSegDist(cxL, cyL, s[0], s[1], s[2], s[3]));
691
+ return Math.max(0, d);
692
+ }
693
+ function placeDotLabel(args) {
694
+ const { dot, w, h, width, height, collides, dots, segments, openness } = args;
695
+ let best = null;
696
+ for (const side of ALL_SIDES) {
697
+ const rect = dotLabelRect(dot, w, h, side);
698
+ if (!dotLabelFits(rect, width, height, collides)) continue;
699
+ const v = CLEAR_W * clearanceOf(rect, dot.id, dots, segments) + WATER_W * openness(rect) + LEGIBILITY[side];
700
+ if (best === null || v > best.v) best = { side, rect, v };
701
+ }
702
+ return best && { side: best.side, rect: best.rect };
703
+ }
704
+
623
705
  // src/map/connectors.ts
624
706
  var W_MIN = 1.25;
625
707
  var W_MAX = 8;
@@ -2920,7 +3002,7 @@ function layoutMap(resolvedIn, data, size, opts) {
2920
3002
  const text = labelText(p);
2921
3003
  return { text, w: measureLegendText(text, FONT2) };
2922
3004
  };
2923
- const GAP2 = 3;
3005
+ const GAP2 = DOT_LABEL_GAP;
2924
3006
  const POI_EDGE_CLEAR = Math.max(
2925
3007
  20,
2926
3008
  Math.round(Math.min(width, height) * 0.03)
@@ -2932,46 +3014,7 @@ function layoutMap(resolvedIn, data, size, opts) {
2932
3014
  if (arr) arr.push(p);
2933
3015
  else clusterMembersById.set(p.clusterId, [p]);
2934
3016
  }
2935
- const inlineRect = (p, w, side) => {
2936
- switch (side) {
2937
- case "right":
2938
- return { x: p.cx + p.r + GAP2, y: p.cy - poiLabH / 2, w, h: poiLabH };
2939
- case "left":
2940
- return {
2941
- x: p.cx - p.r - GAP2 - w,
2942
- y: p.cy - poiLabH / 2,
2943
- w,
2944
- h: poiLabH
2945
- };
2946
- case "above":
2947
- return {
2948
- x: p.cx - w / 2,
2949
- y: p.cy - p.r - GAP2 - poiLabH,
2950
- w,
2951
- h: poiLabH
2952
- };
2953
- case "below":
2954
- return { x: p.cx - w / 2, y: p.cy + p.r + GAP2, w, h: poiLabH };
2955
- // Diagonal corners: offset both axes by (r+GAP)/√2 so the box's near
2956
- // corner clears the dot rim by the same gap as a cardinal side.
2957
- case "below-right": {
2958
- const d = (p.r + GAP2) * 0.7071;
2959
- return { x: p.cx + d, y: p.cy + d, w, h: poiLabH };
2960
- }
2961
- case "below-left": {
2962
- const d = (p.r + GAP2) * 0.7071;
2963
- return { x: p.cx - d - w, y: p.cy + d, w, h: poiLabH };
2964
- }
2965
- case "above-right": {
2966
- const d = (p.r + GAP2) * 0.7071;
2967
- return { x: p.cx + d, y: p.cy - d - poiLabH, w, h: poiLabH };
2968
- }
2969
- case "above-left": {
2970
- const d = (p.r + GAP2) * 0.7071;
2971
- return { x: p.cx - d - w, y: p.cy - d - poiLabH, w, h: poiLabH };
2972
- }
2973
- }
2974
- };
3017
+ const inlineRect = (p, w, side) => dotLabelRect(p, w, poiLabH, side);
2975
3018
  const pushInline = (p, text, w, side, clusterId) => {
2976
3019
  const rect = inlineRect(p, w, side);
2977
3020
  obstacles.push(rect);
@@ -2992,10 +3035,6 @@ function layoutMap(resolvedIn, data, size, opts) {
2992
3035
  ...clusterId !== void 0 && { clusterMember: clusterId }
2993
3036
  });
2994
3037
  };
2995
- const inlineFits = (p, w, side) => {
2996
- const rect = inlineRect(p, w, side);
2997
- return rect.x >= 0 && rect.x + rect.w <= width && rect.y >= 0 && rect.y + rect.h <= height && !collides(rect);
2998
- };
2999
3038
  const GROUP_R = 30;
3000
3039
  const groups2 = [];
3001
3040
  for (const p of ordered) {
@@ -3135,7 +3174,7 @@ function layoutMap(resolvedIn, data, size, opts) {
3135
3174
  ];
3136
3175
  const side = order.find((s) => {
3137
3176
  const rect = inlineRect(p, w, s);
3138
- return rect.x >= 0 && rect.x + rect.w <= width && rect.y >= 0 && rect.y + rect.h <= height && !collides(rect) && !temp.some((t) => rectsOverlap(t, rect));
3177
+ return dotLabelFits(rect, width, height, collides) && !temp.some((t) => rectsOverlap(t, rect));
3139
3178
  });
3140
3179
  if (side === void 0) return false;
3141
3180
  temp.push(inlineRect(p, w, side));
@@ -3154,62 +3193,28 @@ function layoutMap(resolvedIn, data, size, opts) {
3154
3193
  const side = cleanR && cleanL ? defaultColumnSide(items) : cleanR ? "right" : cleanL ? "left" : defaultColumnSide(items);
3155
3194
  commitColumn(items, side, clusterId);
3156
3195
  }
3157
- const CLEAR_CAP = 48;
3158
- const CLEAR_W = 8;
3159
- const WATER_W = 0.25;
3160
- const ptSegDist = (px, py, ax, ay, bx, by) => {
3161
- const dx = bx - ax;
3162
- const dy = by - ay;
3163
- const len2 = dx * dx + dy * dy;
3164
- let t = len2 > 0 ? ((px - ax) * dx + (py - ay) * dy) / len2 : 0;
3165
- t = Math.max(0, Math.min(1, t));
3166
- return Math.hypot(px - (ax + t * dx), py - (ay + t * dy));
3167
- };
3168
- const clearanceOf = (rect, ownId) => {
3169
- const cxL = rect.x + rect.w / 2;
3170
- const cyL = rect.y + rect.h / 2;
3171
- let d = CLEAR_CAP;
3172
- for (const q of pois) {
3173
- if (q.id === ownId) continue;
3174
- d = Math.min(d, Math.hypot(q.cx - cxL, q.cy - cyL) - q.r);
3175
- }
3176
- for (const s of legSegments)
3177
- d = Math.min(d, ptSegDist(cxL, cyL, s[0], s[1], s[2], s[3]));
3178
- return Math.max(0, d);
3179
- };
3180
- const LEGIBILITY = {
3181
- right: 160,
3182
- left: 160,
3183
- above: 100,
3184
- below: 100,
3185
- "below-right": 0,
3186
- "below-left": 0,
3187
- "above-right": 0,
3188
- "above-left": 0
3189
- };
3190
- const ALL_SIDES = Object.keys(LEGIBILITY);
3191
- const placementScore = (p, w, side) => {
3192
- const rect = inlineRect(p, w, side);
3193
- return CLEAR_W * clearanceOf(rect, p.id) + WATER_W * openness(rect) + LEGIBILITY[side];
3194
- };
3195
3196
  const maxExtent = MAX_CLUSTER_EXTENT_FACTOR * Math.min(width, height);
3196
3197
  const clusterPending = [];
3197
3198
  for (const g of groups2) {
3198
3199
  const items = makeItems(g);
3199
3200
  if (g.length === 1) {
3200
3201
  const { p, text, w } = items[0];
3201
- const scored = ALL_SIDES.filter((s) => inlineFits(p, w, s)).map(
3202
- (s) => ({
3203
- s,
3204
- v: placementScore(p, w, s)
3205
- })
3206
- );
3207
- if (scored.length === 0) {
3202
+ const placed = placeDotLabel({
3203
+ dot: p,
3204
+ w,
3205
+ h: poiLabH,
3206
+ width,
3207
+ height,
3208
+ collides,
3209
+ dots: pois,
3210
+ segments: legSegments,
3211
+ openness
3212
+ });
3213
+ if (placed === null) {
3208
3214
  commitColumn(items, defaultColumnSide(items));
3209
3215
  continue;
3210
3216
  }
3211
- const side = scored.reduce((b, c) => c.v > b.v ? c : b).s;
3212
- pushInline(p, text, w, side);
3217
+ pushInline(p, text, w, placed.side);
3213
3218
  continue;
3214
3219
  }
3215
3220
  const left = Math.min(...items.map((o) => o.p.cx - o.p.r));
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  searchPlacement
3
- } from "./chunk-LDDDKWL6.js";
3
+ } from "./chunk-2J2CWWWK.js";
4
4
  import {
5
5
  buildPlacedNotes,
6
6
  noteCanvasShift,
7
7
  resolveNotes
8
- } from "./chunk-NJJCTEBM.js";
8
+ } from "./chunk-KLBTJEIK.js";
9
9
  import {
10
10
  measureText
11
11
  } from "./chunk-KAO7JL4I.js";
@@ -8,10 +8,10 @@ import {
8
8
  } from "./chunk-VLC6WNRD.js";
9
9
  import {
10
10
  wrapDescriptionLines
11
- } from "./chunk-MB2SQF7N.js";
11
+ } from "./chunk-7WEYXYLC.js";
12
12
  import {
13
13
  renderInlineText
14
- } from "./chunk-65GPEV5V.js";
14
+ } from "./chunk-QKPOIJBT.js";
15
15
  import {
16
16
  FONT_FAMILY
17
17
  } from "./chunk-ICLB27PZ.js";
@@ -15,16 +15,16 @@ import {
15
15
  } from "./chunk-CDM6XMOT.js";
16
16
  import {
17
17
  looksLikeFlowchart
18
- } from "./chunk-M6ZQAFPD.js";
18
+ } from "./chunk-IY62DXT2.js";
19
19
  import {
20
20
  looksLikeState
21
- } from "./chunk-M4NV5PPU.js";
21
+ } from "./chunk-LJGE43SG.js";
22
22
  import {
23
23
  looksLikeERDiagram
24
- } from "./chunk-Q7Y6JQ3R.js";
24
+ } from "./chunk-S4SJ4LLY.js";
25
25
  import {
26
26
  looksLikeClassDiagram
27
- } from "./chunk-KCMGIYPO.js";
27
+ } from "./chunk-5XBYLYYI.js";
28
28
  import {
29
29
  parseFirstLine
30
30
  } from "./chunk-TIIZIAGS.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-2CW5ZTNH.js";
8
8
  import {
9
9
  layoutInlineHeader
10
- } from "./chunk-42UJ23H3.js";
10
+ } from "./chunk-UIEKW4SG.js";
11
11
  import {
12
12
  TITLE_FONT_SIZE,
13
13
  TITLE_FONT_WEIGHT,