schematex 0.4.3 → 0.5.2

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 (98) hide show
  1. package/README.md +36 -7
  2. package/dist/ai/ai-sdk.cjs +19 -13
  3. package/dist/ai/ai-sdk.cjs.map +1 -1
  4. package/dist/ai/ai-sdk.d.cts +4 -3
  5. package/dist/ai/ai-sdk.d.ts +4 -3
  6. package/dist/ai/ai-sdk.js +15 -9
  7. package/dist/ai/ai-sdk.js.map +1 -1
  8. package/dist/ai/index.cjs +16 -12
  9. package/dist/ai/index.d.cts +20 -153
  10. package/dist/ai/index.d.ts +20 -153
  11. package/dist/ai/index.js +4 -4
  12. package/dist/api-C5SECOxZ.d.cts +69 -0
  13. package/dist/api-Cr_MxttI.d.ts +69 -0
  14. package/dist/browser.cjs +24 -6
  15. package/dist/browser.cjs.map +1 -1
  16. package/dist/browser.d.cts +12 -3
  17. package/dist/browser.d.ts +12 -3
  18. package/dist/browser.js +14 -6
  19. package/dist/browser.js.map +1 -1
  20. package/dist/{chunk-SMXU3KYA.cjs → chunk-4QPDZJAL.cjs} +6337 -120
  21. package/dist/chunk-4QPDZJAL.cjs.map +1 -0
  22. package/dist/{chunk-N3SLYVNW.cjs → chunk-HK56GQQP.cjs} +751 -80
  23. package/dist/chunk-HK56GQQP.cjs.map +1 -0
  24. package/dist/{chunk-KWQTF6ZL.js → chunk-OK5ZS3LU.js} +6330 -119
  25. package/dist/chunk-OK5ZS3LU.js.map +1 -0
  26. package/dist/{chunk-2Z543TC3.cjs → chunk-QMTWG6JL.cjs} +1297 -1151
  27. package/dist/chunk-QMTWG6JL.cjs.map +1 -0
  28. package/dist/{chunk-VITE3MZQ.cjs → chunk-QTNPMIO2.cjs} +99 -5
  29. package/dist/chunk-QTNPMIO2.cjs.map +1 -0
  30. package/dist/{chunk-6IGSKU6D.js → chunk-UFTYX73U.js} +99 -5
  31. package/dist/chunk-UFTYX73U.js.map +1 -0
  32. package/dist/{chunk-J7JWMQD5.js → chunk-VCH7RI5H.js} +1297 -1151
  33. package/dist/chunk-VCH7RI5H.js.map +1 -0
  34. package/dist/{chunk-UBTKM2TB.js → chunk-VKPCR7BG.js} +751 -81
  35. package/dist/chunk-VKPCR7BG.js.map +1 -0
  36. package/dist/diagrams/blockdiagram/index.d.cts +1 -1
  37. package/dist/diagrams/blockdiagram/index.d.ts +1 -1
  38. package/dist/diagrams/circuit/index.cjs +7 -7
  39. package/dist/diagrams/circuit/index.d.cts +1 -1
  40. package/dist/diagrams/circuit/index.d.ts +1 -1
  41. package/dist/diagrams/circuit/index.js +1 -1
  42. package/dist/diagrams/ecomap/index.d.cts +1 -1
  43. package/dist/diagrams/ecomap/index.d.ts +1 -1
  44. package/dist/diagrams/entity/index.d.cts +1 -1
  45. package/dist/diagrams/entity/index.d.ts +1 -1
  46. package/dist/diagrams/fishbone/index.d.cts +1 -1
  47. package/dist/diagrams/fishbone/index.d.ts +1 -1
  48. package/dist/diagrams/flowchart/index.cjs +7 -7
  49. package/dist/diagrams/flowchart/index.d.cts +2 -2
  50. package/dist/diagrams/flowchart/index.d.ts +2 -2
  51. package/dist/diagrams/flowchart/index.js +1 -1
  52. package/dist/diagrams/genogram/index.d.cts +1 -1
  53. package/dist/diagrams/genogram/index.d.ts +1 -1
  54. package/dist/diagrams/ladder/index.d.cts +1 -1
  55. package/dist/diagrams/ladder/index.d.ts +1 -1
  56. package/dist/diagrams/logic/index.d.cts +1 -1
  57. package/dist/diagrams/logic/index.d.ts +1 -1
  58. package/dist/diagrams/orgchart/index.d.cts +1 -1
  59. package/dist/diagrams/orgchart/index.d.ts +1 -1
  60. package/dist/diagrams/pedigree/index.d.cts +1 -1
  61. package/dist/diagrams/pedigree/index.d.ts +1 -1
  62. package/dist/diagrams/phylo/index.d.cts +1 -1
  63. package/dist/diagrams/phylo/index.d.ts +1 -1
  64. package/dist/diagrams/sld/index.d.cts +1 -1
  65. package/dist/diagrams/sld/index.d.ts +1 -1
  66. package/dist/diagrams/sociogram/index.d.cts +1 -1
  67. package/dist/diagrams/sociogram/index.d.ts +1 -1
  68. package/dist/diagrams/timing/index.d.cts +1 -1
  69. package/dist/diagrams/timing/index.d.ts +1 -1
  70. package/dist/diagrams/venn/index.d.cts +1 -1
  71. package/dist/diagrams/venn/index.d.ts +1 -1
  72. package/dist/{index-DYpJXJcy.d.cts → index-BD2yDfQM.d.cts} +1 -1
  73. package/dist/{index-BeUVaQiD.d.ts → index-C30zQWZI.d.ts} +1 -1
  74. package/dist/index.cjs +35 -11
  75. package/dist/index.d.cts +10 -4
  76. package/dist/index.d.ts +10 -4
  77. package/dist/index.js +3 -3
  78. package/dist/react.cjs +8 -10
  79. package/dist/react.cjs.map +1 -1
  80. package/dist/react.d.cts +3 -2
  81. package/dist/react.d.ts +3 -2
  82. package/dist/react.js +8 -10
  83. package/dist/react.js.map +1 -1
  84. package/dist/tools-BHWaJPOl.d.ts +153 -0
  85. package/dist/tools-DlpuE76u.d.cts +153 -0
  86. package/dist/{types-DKdo-Ua_.d.cts → types-WTr9W5Ud.d.cts} +3 -3
  87. package/dist/{types-DKdo-Ua_.d.ts → types-WTr9W5Ud.d.ts} +3 -3
  88. package/package.json +2 -2
  89. package/dist/api-BIj9t4Oc.d.cts +0 -22
  90. package/dist/api-BIj9t4Oc.d.ts +0 -22
  91. package/dist/chunk-2Z543TC3.cjs.map +0 -1
  92. package/dist/chunk-6IGSKU6D.js.map +0 -1
  93. package/dist/chunk-J7JWMQD5.js.map +0 -1
  94. package/dist/chunk-KWQTF6ZL.js.map +0 -1
  95. package/dist/chunk-N3SLYVNW.cjs.map +0 -1
  96. package/dist/chunk-SMXU3KYA.cjs.map +0 -1
  97. package/dist/chunk-UBTKM2TB.js.map +0 -1
  98. package/dist/chunk-VITE3MZQ.cjs.map +0 -1
@@ -822,15 +822,27 @@ function isFullWidth(code) {
822
822
  if (code >= 131072 && code <= 196607) return true;
823
823
  return false;
824
824
  }
825
- function measureLabelWidth(label) {
825
+ function labelLines(label) {
826
+ return String(label).split(/<br\s*\/?>|\n/i).map((line2) => line2.replace(/<\/?[bi]>/gi, ""));
827
+ }
828
+ function measureLineWidth(line2) {
826
829
  let w = 0;
827
- for (const ch of label) {
830
+ for (const ch of line2) {
828
831
  const code = ch.codePointAt(0) ?? 0;
829
832
  if (isFullWidth(code)) w += FC_CONST.cjkCharWidth;
830
833
  else w += FC_CONST.charWidth;
831
834
  }
832
835
  return w;
833
836
  }
837
+ function measureLabelWidth(label) {
838
+ const lines = labelLines(label);
839
+ let max = 0;
840
+ for (const line2 of lines) {
841
+ const w = measureLineWidth(line2);
842
+ if (w > max) max = w;
843
+ }
844
+ return max;
845
+ }
834
846
  function greedyFAS(nodeIds, edges) {
835
847
  const outAdj = /* @__PURE__ */ new Map();
836
848
  const inAdj = /* @__PURE__ */ new Map();
@@ -1263,6 +1275,85 @@ function laneBasedXCoords(layerNodes, pathOf, nodeSpacingX, segments) {
1263
1275
  }
1264
1276
  return result;
1265
1277
  }
1278
+ function enforceSequentialClusterLayers(ast, layerMap, edges) {
1279
+ const sgParent = /* @__PURE__ */ new Map();
1280
+ for (const sg of ast.subgraphs) {
1281
+ for (const childSg of sg.subgraphs) sgParent.set(childSg, sg.id);
1282
+ if (!sgParent.has(sg.id)) sgParent.set(sg.id, void 0);
1283
+ }
1284
+ const topLevel = ast.subgraphs.filter((sg) => !sgParent.get(sg.id));
1285
+ if (topLevel.length < 2) return;
1286
+ const collect = (sgId) => {
1287
+ const sg = ast.subgraphs.find((s) => s.id === sgId);
1288
+ if (!sg) return [];
1289
+ const ids = [...sg.children];
1290
+ for (const childSgId of sg.subgraphs) ids.push(...collect(childSgId));
1291
+ return ids;
1292
+ };
1293
+ const adjOut = /* @__PURE__ */ new Map();
1294
+ for (const e of edges) {
1295
+ if (!adjOut.has(e.from)) adjOut.set(e.from, []);
1296
+ adjOut.get(e.from).push(e.to);
1297
+ }
1298
+ const hasForwardEdge = (srcSgId, dstSgId) => {
1299
+ const srcIds = new Set(collect(srcSgId));
1300
+ const dstIds = new Set(collect(dstSgId));
1301
+ for (const id of srcIds) {
1302
+ for (const t of adjOut.get(id) ?? []) {
1303
+ if (dstIds.has(t)) return true;
1304
+ }
1305
+ }
1306
+ return false;
1307
+ };
1308
+ const chains = [];
1309
+ let cur = [];
1310
+ for (let i = 0; i < topLevel.length; i++) {
1311
+ const sg = topLevel[i];
1312
+ if (i === 0 || !hasForwardEdge(topLevel[i - 1].id, sg.id)) {
1313
+ if (cur.length > 1) chains.push(cur);
1314
+ cur = [sg.id];
1315
+ } else {
1316
+ cur.push(sg.id);
1317
+ }
1318
+ }
1319
+ if (cur.length > 1) chains.push(cur);
1320
+ if (chains.length === 0) return;
1321
+ for (const chain of chains) {
1322
+ let prevMax = -Infinity;
1323
+ for (const clusterId of chain) {
1324
+ const ids = collect(clusterId);
1325
+ if (ids.length === 0) continue;
1326
+ let curMin = Infinity;
1327
+ let curMax = -Infinity;
1328
+ for (const id of ids) {
1329
+ const l = layerMap.get(id) ?? 0;
1330
+ if (l < curMin) curMin = l;
1331
+ if (l > curMax) curMax = l;
1332
+ }
1333
+ const requiredMin = prevMax === -Infinity ? curMin : prevMax + 1;
1334
+ if (curMin < requiredMin) {
1335
+ const shift = requiredMin - curMin;
1336
+ const toShift = new Set(ids);
1337
+ const queue = [...ids];
1338
+ while (queue.length > 0) {
1339
+ const u = queue.shift();
1340
+ for (const t of adjOut.get(u) ?? []) {
1341
+ if (!toShift.has(t)) {
1342
+ toShift.add(t);
1343
+ queue.push(t);
1344
+ }
1345
+ }
1346
+ }
1347
+ for (const id of toShift) {
1348
+ layerMap.set(id, (layerMap.get(id) ?? 0) + shift);
1349
+ }
1350
+ prevMax = curMax + shift;
1351
+ } else {
1352
+ prevMax = curMax;
1353
+ }
1354
+ }
1355
+ }
1356
+ }
1266
1357
  function hasOverlappingTopLevelClusters(ast, layerMap, sgParent) {
1267
1358
  const topLevel = ast.subgraphs.filter((sg) => !sgParent.get(sg.id));
1268
1359
  if (topLevel.length < 2) return false;
@@ -1299,7 +1390,9 @@ function layoutFlowchart(ast) {
1299
1390
  Math.ceil(rawTextW) + FC_CONST.labelHPad * 2
1300
1391
  );
1301
1392
  let shapeW = Math.max(FC_CONST.minNodeWidth, labelW);
1302
- let shapeH = FC_CONST.nodeHeight;
1393
+ const nLines = labelLines(n.label).length;
1394
+ const multilineH = nLines > 1 ? FC_CONST.nodeHeight + (nLines - 1) * 14 : FC_CONST.nodeHeight;
1395
+ let shapeH = multilineH;
1303
1396
  if (n.shape === "diamond") {
1304
1397
  shapeW = Math.max(shapeW, labelW * 1.4);
1305
1398
  shapeH = Math.max(shapeH, 52);
@@ -1356,6 +1449,7 @@ function layoutFlowchart(ast) {
1356
1449
  };
1357
1450
  });
1358
1451
  const layerMap = longestPathLayers(allIds, ledges);
1452
+ enforceSequentialClusterLayers(ast, layerMap, ledges);
1359
1453
  let dummyCounter = 0;
1360
1454
  const dummies = [];
1361
1455
  const { updatedEdges } = insertDummies(ledges, layerMap, () => {
@@ -2143,5 +2237,5 @@ var flowchart = {
2143
2237
  };
2144
2238
 
2145
2239
  export { FC_CONST, flowchart, layoutFlowchart, parseFlowchart, renderFlowchart, renderFlowchartAST };
2146
- //# sourceMappingURL=chunk-6IGSKU6D.js.map
2147
- //# sourceMappingURL=chunk-6IGSKU6D.js.map
2240
+ //# sourceMappingURL=chunk-UFTYX73U.js.map
2241
+ //# sourceMappingURL=chunk-UFTYX73U.js.map