sketchmark 1.3.2 → 1.3.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,UAAU,EAoBX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAqC/C,qBAAa,UAAW,SAAQ,KAAK;IAG1B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;gBAFlB,GAAG,EAAE,MAAM,EACJ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;CAKrB;AAwCD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,UAAU,CAy/BzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,UAAU,EAoBX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAqC/C,qBAAa,UAAW,SAAQ,KAAK;IAG1B,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;gBAFlB,GAAG,EAAE,MAAM,EACJ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM;CAKrB;AAwCD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,UAAU,CA6gCzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/canvas/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,aAAa,CAAC;AAgCrB,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAQ,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAI,MAAM,CAAC;IACrB,MAAM,CAAC,EAAO,MAAM,CAAC;IACrB,KAAK,CAAC,EAAQ,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,OAAO,CAAC,EAAM,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAoGD,wBAAgB,cAAc,CAC5B,EAAE,EAAO,UAAU,EACnB,MAAM,EAAG,iBAAiB,EAC1B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAiaN;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/canvas/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,aAAa,CAAC;AAiCrB,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAQ,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,SAAS,CAAC,EAAI,MAAM,CAAC;IACrB,MAAM,CAAC,EAAO,MAAM,CAAC;IACrB,KAAK,CAAC,EAAQ,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,OAAO,CAAC,EAAM,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAoGD,wBAAgB,cAAc,CAC5B,EAAE,EAAO,UAAU,EACnB,MAAM,EAAG,iBAAiB,EAC1B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAoaN;AAGD,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/renderer/shapes/icon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,eAAO,MAAM,SAAS,EAAE,eAoGvB,CAAC"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/renderer/shapes/icon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,eAAO,MAAM,SAAS,EAAE,eAkGvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/renderer/shapes/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,eAAO,MAAM,UAAU,EAAE,eAqFxB,CAAC"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/renderer/shapes/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,eAAO,MAAM,UAAU,EAAE,eAoFxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SceneNode } from "../../scene";
2
+ export declare function usesBottomLabelStrip(shape: string): boolean;
3
+ export declare function getBottomLabelStripHeight(node: Pick<SceneNode, "shape" | "label">): number;
4
+ export declare function getBottomLabelContentHeight(node: Pick<SceneNode, "shape" | "label" | "h">): number;
5
+ export declare function getBottomLabelCenterY(node: Pick<SceneNode, "shape" | "label" | "y" | "h">): number;
6
+ //# sourceMappingURL=label-strip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-strip.d.ts","sourceRoot":"","sources":["../../../src/renderer/shapes/label-strip.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,GACvC,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,GAAG,CAAC,GAC7C,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,GACnD,MAAM,CAGR"}
@@ -1 +1 @@
1
- {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/renderer/shapes/line.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,eAAO,MAAM,SAAS,EAAE,eAkBvB,CAAC"}
1
+ {"version":3,"file":"line.d.ts","sourceRoot":"","sources":["../../../src/renderer/shapes/line.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI/C,eAAO,MAAM,SAAS,EAAE,eAkBvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/svg/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,aAAa,CAAC;AAmQrB,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,WAAW,GAAG,aAAa,EACtC,OAAO,GAAE,kBAAuB,GAC/B,aAAa,CA6kBf;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAKtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/svg/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAEX,MAAM,aAAa,CAAC;AAoQrB,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,WAAW,GAAG,aAAa,EACtC,OAAO,GAAE,kBAAuB,GAC/B,aAAa,CAglBf;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAKtD"}
@@ -11,6 +11,8 @@ export interface SceneNode extends SceneRect {
11
11
  id: string;
12
12
  shape: ASTNode["shape"];
13
13
  label: string;
14
+ labelDx?: number;
15
+ labelDy?: number;
14
16
  style: StyleProps;
15
17
  groupId?: string;
16
18
  width?: number;
@@ -36,6 +38,8 @@ export interface SceneEdge {
36
38
  to: string;
37
39
  connector: string;
38
40
  label?: string;
41
+ labelDx?: number;
42
+ labelDy?: number;
39
43
  fromAnchor?: string;
40
44
  toAnchor?: string;
41
45
  dashed: boolean;
@@ -46,6 +50,8 @@ export interface SceneEdge {
46
50
  export interface SceneGroup {
47
51
  id: string;
48
52
  label: string;
53
+ labelDx?: number;
54
+ labelDy?: number;
49
55
  parentId?: string;
50
56
  children: GroupChildRef[];
51
57
  layout: "row" | "column" | "grid" | "absolute";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scene/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scene/index.ts"],"names":[],"mappings":"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"}
@@ -601,6 +601,12 @@ var AIDiagram = (function (exports) {
601
601
  id,
602
602
  shape,
603
603
  label: props.label || "",
604
+ ...(props["label-dx"] !== undefined
605
+ ? { labelDx: parseFloat(props["label-dx"]) }
606
+ : {}),
607
+ ...(props["label-dy"] !== undefined
608
+ ? { labelDy: parseFloat(props["label-dy"]) }
609
+ : {}),
604
610
  ...(props.width ? { width: parseFloat(props.width) } : {}),
605
611
  ...(props.height ? { height: parseFloat(props.height) } : {}),
606
612
  ...(props.x ? { x: parseFloat(props.x) } : {}),
@@ -641,6 +647,12 @@ var AIDiagram = (function (exports) {
641
647
  id,
642
648
  shape: "note",
643
649
  label: (props.label ?? "").replace(/\\n/g, "\n"),
650
+ ...(props["label-dx"] !== undefined
651
+ ? { labelDx: parseFloat(props["label-dx"]) }
652
+ : {}),
653
+ ...(props["label-dy"] !== undefined
654
+ ? { labelDy: parseFloat(props["label-dy"]) }
655
+ : {}),
644
656
  theme: props.theme,
645
657
  ...(meta ? { meta } : {}),
646
658
  style: propsToStyle(props),
@@ -689,6 +701,8 @@ var AIDiagram = (function (exports) {
689
701
  kind: "group",
690
702
  id,
691
703
  label: props.label ?? "",
704
+ labelDx: props["label-dx"] !== undefined ? parseFloat(props["label-dx"]) : undefined,
705
+ labelDy: props["label-dy"] !== undefined ? parseFloat(props["label-dy"]) : undefined,
692
706
  children: [],
693
707
  layout: props.layout,
694
708
  columns: props.columns !== undefined ? parseInt(props.columns, 10) : undefined,
@@ -733,6 +747,8 @@ var AIDiagram = (function (exports) {
733
747
  to: toTok.value,
734
748
  connector: connector,
735
749
  label: props.label,
750
+ labelDx: props["label-dx"] !== undefined ? parseFloat(props["label-dx"]) : undefined,
751
+ labelDy: props["label-dy"] !== undefined ? parseFloat(props["label-dy"]) : undefined,
736
752
  fromAnchor: props["anchor-from"],
737
753
  toAnchor: props["anchor-to"],
738
754
  dashed,
@@ -1234,6 +1250,7 @@ var AIDiagram = (function (exports) {
1234
1250
  const NODE = {
1235
1251
  minW: 90, // minimum auto-sized node width (px)
1236
1252
  maxW: 300, // maximum auto-sized node width (px)
1253
+ mediaLabelH: 20, // reserved bottom strip for icon/image/line labels (px)
1237
1254
  basePad: 26, // base padding added to label width (px)
1238
1255
  };
1239
1256
  // ── Shape-specific sizing ──────────────────────────────────
@@ -3557,6 +3574,8 @@ var AIDiagram = (function (exports) {
3557
3574
  id: n.id,
3558
3575
  shape: n.shape,
3559
3576
  label: n.label,
3577
+ labelDx: n.labelDx,
3578
+ labelDy: n.labelDy,
3560
3579
  style: { ...ast.styles[n.id], ...themeStyle, ...n.style },
3561
3580
  groupId: nodeParentById.get(n.id),
3562
3581
  width: n.width,
@@ -3582,6 +3601,8 @@ var AIDiagram = (function (exports) {
3582
3601
  return {
3583
3602
  id: g.id,
3584
3603
  label: g.label,
3604
+ labelDx: g.labelDx,
3605
+ labelDy: g.labelDy,
3585
3606
  parentId: groupParentById.get(g.id),
3586
3607
  children: g.children,
3587
3608
  layout: (g.layout ?? "column"),
@@ -3659,6 +3680,8 @@ var AIDiagram = (function (exports) {
3659
3680
  to: e.to,
3660
3681
  connector: e.connector,
3661
3682
  label: e.label,
3683
+ labelDx: e.labelDx,
3684
+ labelDy: e.labelDy,
3662
3685
  fromAnchor: e.fromAnchor,
3663
3686
  toAnchor: e.toAnchor,
3664
3687
  dashed: e.dashed ?? false,
@@ -4000,10 +4023,25 @@ var AIDiagram = (function (exports) {
4000
4023
  },
4001
4024
  };
4002
4025
 
4026
+ const MEDIA_LABEL_SHAPES = new Set(["icon", "image", "line"]);
4027
+ function usesBottomLabelStrip(shape) {
4028
+ return MEDIA_LABEL_SHAPES.has(shape);
4029
+ }
4030
+ function getBottomLabelStripHeight(node) {
4031
+ return usesBottomLabelStrip(node.shape) && node.label ? NODE.mediaLabelH : 0;
4032
+ }
4033
+ function getBottomLabelContentHeight(node) {
4034
+ return node.h - getBottomLabelStripHeight(node);
4035
+ }
4036
+ function getBottomLabelCenterY(node) {
4037
+ const stripH = getBottomLabelStripHeight(node);
4038
+ return stripH > 0 ? node.y + node.h - stripH / 2 : node.y + node.h / 2;
4039
+ }
4040
+
4003
4041
  const iconShape = {
4004
4042
  size(n, labelW) {
4005
4043
  const iconBase = 48;
4006
- const labelH = n.label ? 20 : 0;
4044
+ const labelH = getBottomLabelStripHeight(n);
4007
4045
  n.w = n.w || Math.max(iconBase, n.label ? labelW : 0);
4008
4046
  n.h = n.h || (iconBase + labelH);
4009
4047
  },
@@ -4016,8 +4054,7 @@ var AIDiagram = (function (exports) {
4016
4054
  const iconColor = s.color
4017
4055
  ? encodeURIComponent(String(s.color))
4018
4056
  : encodeURIComponent(String(palette.nodeStroke));
4019
- const labelSpace = n.label ? 20 : 0;
4020
- const iconAreaH = n.h - labelSpace;
4057
+ const iconAreaH = getBottomLabelContentHeight(n);
4021
4058
  const iconSize = Math.min(n.w, iconAreaH) - 4;
4022
4059
  const iconUrl = `https://api.iconify.design/${prefix}/${name}.svg?color=${iconColor}&width=${iconSize}&height=${iconSize}`;
4023
4060
  const img = document.createElementNS(SVG_NS, "image");
@@ -4061,8 +4098,7 @@ var AIDiagram = (function (exports) {
4061
4098
  const iconColor = s.color
4062
4099
  ? encodeURIComponent(String(s.color))
4063
4100
  : encodeURIComponent(String(palette.nodeStroke));
4064
- const iconLabelSpace = n.label ? 20 : 0;
4065
- const iconAreaH = n.h - iconLabelSpace;
4101
+ const iconAreaH = getBottomLabelContentHeight(n);
4066
4102
  const iconSize = Math.min(n.w, iconAreaH) - 4;
4067
4103
  const iconUrl = `https://api.iconify.design/${prefix}/${name}.svg?color=${iconColor}&width=${iconSize}&height=${iconSize}`;
4068
4104
  const img = new Image();
@@ -4105,21 +4141,21 @@ var AIDiagram = (function (exports) {
4105
4141
  const w = n.w || Math.max(MIN_W, Math.min(MAX_W, labelW));
4106
4142
  n.w = w;
4107
4143
  if (!n.h) {
4144
+ const labelH = getBottomLabelStripHeight(n);
4108
4145
  if (labelW > w) {
4109
4146
  const fontSize = Number(n.style?.fontSize ?? 14);
4110
4147
  const lines = Math.ceil(labelW / (w - 16));
4111
- n.h = Math.max(52, lines * fontSize * 1.5 + 20);
4148
+ n.h = Math.max(52, lines * fontSize * 1.5 + labelH);
4112
4149
  }
4113
4150
  else {
4114
- n.h = 52;
4151
+ n.h = 52 + labelH;
4115
4152
  }
4116
4153
  }
4117
4154
  },
4118
4155
  renderSVG(rc, n, _palette, opts) {
4119
4156
  const s = n.style ?? {};
4120
4157
  if (n.imageUrl) {
4121
- const imgLabelSpace = n.label ? 20 : 0;
4122
- const imgAreaH = n.h - imgLabelSpace;
4158
+ const imgAreaH = getBottomLabelContentHeight(n);
4123
4159
  const img = document.createElementNS(SVG_NS, "image");
4124
4160
  img.setAttribute("href", n.imageUrl);
4125
4161
  img.setAttribute("x", String(n.x + 1));
@@ -4151,8 +4187,7 @@ var AIDiagram = (function (exports) {
4151
4187
  renderCanvas(rc, ctx, n, _palette, opts) {
4152
4188
  const s = n.style ?? {};
4153
4189
  if (n.imageUrl) {
4154
- const imgLblSpace = n.label ? 20 : 0;
4155
- const imgAreaH = n.h - imgLblSpace;
4190
+ const imgAreaH = getBottomLabelContentHeight(n);
4156
4191
  const img = new Image();
4157
4192
  img.crossOrigin = "anonymous";
4158
4193
  img.onload = () => {
@@ -4329,17 +4364,17 @@ var AIDiagram = (function (exports) {
4329
4364
 
4330
4365
  const lineShape = {
4331
4366
  size(n, labelW) {
4332
- const labelH = n.label ? 20 : 0;
4367
+ const labelH = getBottomLabelStripHeight(n);
4333
4368
  n.w = n.width ?? Math.max(MIN_W, labelW + 20);
4334
4369
  n.h = n.height ?? (6 + labelH);
4335
4370
  },
4336
4371
  renderSVG(rc, n, _palette, opts) {
4337
- const labelH = n.label ? 20 : 0;
4372
+ const labelH = getBottomLabelStripHeight(n);
4338
4373
  const lineY = n.y + (n.h - labelH) / 2;
4339
4374
  return [rc.line(n.x, lineY, n.x + n.w, lineY, opts)];
4340
4375
  },
4341
4376
  renderCanvas(rc, _ctx, n, _palette, opts) {
4342
- const labelH = n.label ? 20 : 0;
4377
+ const labelH = getBottomLabelStripHeight(n);
4343
4378
  const lineY = n.y + (n.h - labelH) / 2;
4344
4379
  rc.line(n.x, lineY, n.x + n.w, lineY, opts);
4345
4380
  },
@@ -5585,18 +5620,18 @@ var AIDiagram = (function (exports) {
5585
5620
  stroke: bgStroke, strokeWidth: Number(s.strokeWidth ?? 1.2),
5586
5621
  ...(s.strokeDash ? { strokeLineDash: s.strokeDash } : {}),
5587
5622
  }));
5623
+ const { px, py, pw, ph, titleH, cx, cy } = chartLayout(c);
5588
5624
  // Title
5589
5625
  if (c.label) {
5590
- cg.appendChild(mkT(c.label, c.x + c.w / 2, c.y + 14, cFontSize, cFontWeight, lc, 'middle', cFont));
5626
+ cg.appendChild(mkT(c.label, c.x + c.w / 2, c.y + titleH / 2 + 2, cFontSize, cFontWeight, lc, 'middle', cFont));
5591
5627
  }
5592
- const { px, py, pw, ph, cx, cy } = chartLayout(c);
5593
5628
  // ── Pie / Donut ──────────────────────────────────────────
5594
5629
  if (c.chartType === 'pie' || c.chartType === 'donut') {
5595
5630
  const { segments, total } = parsePie(c.data);
5596
- const r = Math.min(c.w * 0.38, (c.h - (c.label ? 24 : 8)) * 0.44);
5631
+ const r = Math.min(c.w * 0.38, (c.h - titleH) * 0.44);
5597
5632
  const ir = c.chartType === 'donut' ? r * 0.48 : 0;
5598
5633
  const legendX = c.x + 8;
5599
- const legendY = c.y + (c.label ? 28 : 12);
5634
+ const legendY = c.y + titleH + 4;
5600
5635
  let angle = -Math.PI / 2;
5601
5636
  for (const seg of segments) {
5602
5637
  const sweep = (seg.value / total) * Math.PI * 2;
@@ -5634,7 +5669,7 @@ var AIDiagram = (function (exports) {
5634
5669
  strokeWidth: 1.2,
5635
5670
  }));
5636
5671
  });
5637
- legend(cg, pts.map(p => p.label), CHART_COLORS, c.x + 8, c.y + (c.label ? 28 : 12), lc, cFont);
5672
+ legend(cg, pts.map(p => p.label), CHART_COLORS, c.x + 8, c.y + titleH + 4, lc, cFont);
5638
5673
  return cg;
5639
5674
  }
5640
5675
  // ── Bar / Line / Area ─────────────────────────────────────
@@ -8380,9 +8415,10 @@ var AIDiagram = (function (exports) {
8380
8415
  }));
8381
8416
  // ── Group label typography ──────────────────────────
8382
8417
  const gTypo = resolveTypography(gs, { fontSize: GROUP_LABEL.fontSize, fontWeight: GROUP_LABEL.fontWeight, textAlign: "left", padding: GROUP_LABEL.padding }, diagramFont, palette.groupLabel);
8383
- const gTextX = computeTextX(gTypo, g.x, g.w);
8418
+ const gTextX = computeTextX(gTypo, g.x, g.w) + (g.labelDx ?? 0);
8419
+ const gTextY = g.y + gTypo.padding + (g.labelDy ?? 0);
8384
8420
  if (g.label) {
8385
- gg.appendChild(mkText(g.label, gTextX, g.y + gTypo.padding, gTypo.fontSize, gTypo.fontWeight, gTypo.textColor, gTypo.textAnchor, gTypo.font, gTypo.letterSpacing));
8421
+ gg.appendChild(mkText(g.label, gTextX, gTextY, gTypo.fontSize, gTypo.fontWeight, gTypo.textColor, gTypo.textAnchor, gTypo.font, gTypo.letterSpacing));
8386
8422
  }
8387
8423
  GL.appendChild(gg);
8388
8424
  }
@@ -8434,8 +8470,8 @@ var AIDiagram = (function (exports) {
8434
8470
  eg.appendChild(startHead);
8435
8471
  }
8436
8472
  if (e.label) {
8437
- const mx = (x1 + x2) / 2 - ny * EDGE.labelOffset;
8438
- const my = (y1 + y2) / 2 + nx * EDGE.labelOffset;
8473
+ const mx = (x1 + x2) / 2 - ny * EDGE.labelOffset + (e.labelDx ?? 0);
8474
+ const my = (y1 + y2) / 2 + nx * EDGE.labelOffset + (e.labelDy ?? 0);
8439
8475
  const tw = Math.max(e.label.length * 7 + 12, 36);
8440
8476
  const bg = se("rect");
8441
8477
  bg.setAttribute("x", String(mx - tw / 2));
@@ -8503,7 +8539,7 @@ var AIDiagram = (function (exports) {
8503
8539
  // ── Node / text typography ─────────────────────────
8504
8540
  const isText = n.shape === "text";
8505
8541
  const isNote = n.shape === "note";
8506
- const isMediaShape = n.shape === "icon" || n.shape === "image" || n.shape === "line";
8542
+ const usesBottomStrip = usesBottomLabelStrip(n.shape);
8507
8543
  const typo = resolveTypography(n.style, {
8508
8544
  fontSize: isText ? 13 : isNote ? 12 : 14,
8509
8545
  fontWeight: isText || isNote ? 400 : 500,
@@ -8521,20 +8557,22 @@ var AIDiagram = (function (exports) {
8521
8557
  : n.x + typo.padding)
8522
8558
  : computeTextX(typo, n.x, n.w);
8523
8559
  const fontStr = buildFontStr(typo.fontSize, typo.fontWeight, typo.font);
8524
- const shouldWrap = !isMediaShape && !n.label.includes('\n');
8560
+ const shouldWrap = !usesBottomStrip && !n.label.includes('\n');
8525
8561
  const innerW = shapeInnerTextWidth(n.shape, n.w, typo.padding);
8526
8562
  const lines = shouldWrap
8527
8563
  ? wrapText(n.label, innerW, typo.fontSize, fontStr)
8528
8564
  : n.label.split('\n');
8529
- const textCY = isMediaShape
8530
- ? n.y + n.h - 10
8565
+ const textCY = usesBottomStrip
8566
+ ? getBottomLabelCenterY(n)
8531
8567
  : isNote
8532
8568
  ? computeTextCY(typo, n.y, n.h, lines.length, FOLD + typo.padding)
8533
8569
  : computeTextCY(typo, n.y, n.h, lines.length);
8570
+ const labelX = textX + (n.labelDx ?? 0);
8571
+ const labelY = textCY + (n.labelDy ?? 0);
8534
8572
  if (n.label) {
8535
8573
  ng.appendChild(lines.length > 1
8536
- ? mkMultilineText(lines, textX, textCY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAnchor, typo.lineHeight, typo.font, typo.letterSpacing)
8537
- : mkText(n.label, textX, textCY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAnchor, typo.font, typo.letterSpacing));
8574
+ ? mkMultilineText(lines, labelX, labelY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAnchor, typo.lineHeight, typo.font, typo.letterSpacing)
8575
+ : mkText(n.label, labelX, labelY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAnchor, typo.font, typo.letterSpacing));
8538
8576
  }
8539
8577
  if (options.interactive) {
8540
8578
  ng.style.cursor = "pointer";
@@ -8848,6 +8886,7 @@ var AIDiagram = (function (exports) {
8848
8886
  strokeWidth: Number(s.strokeWidth ?? 1.2),
8849
8887
  ...(s.strokeDash ? { strokeLineDash: s.strokeDash } : {}),
8850
8888
  });
8889
+ const { px, py, pw, ph, titleH, cx, cy } = chartLayout(c);
8851
8890
  // Title
8852
8891
  if (c.label) {
8853
8892
  ctx.save();
@@ -8855,17 +8894,16 @@ var AIDiagram = (function (exports) {
8855
8894
  ctx.fillStyle = lc;
8856
8895
  ctx.textAlign = 'center';
8857
8896
  ctx.textBaseline = 'middle';
8858
- ctx.fillText(c.label, c.x + c.w / 2, c.y + 14);
8897
+ ctx.fillText(c.label, c.x + c.w / 2, c.y + titleH / 2 + 2);
8859
8898
  ctx.restore();
8860
8899
  }
8861
- const { px, py, pw, ph, cx, cy } = chartLayout(c);
8862
8900
  // ── Pie / Donut ──────────────────────────────────────────
8863
8901
  if (c.chartType === 'pie' || c.chartType === 'donut') {
8864
8902
  const { segments, total } = parsePie(c.data);
8865
- const r = Math.min(c.w * 0.38, (c.h - (c.label ? 24 : 8)) * 0.44);
8903
+ const r = Math.min(c.w * 0.38, (c.h - titleH) * 0.44);
8866
8904
  const ir = c.chartType === 'donut' ? r * 0.48 : 0;
8867
8905
  const legendX = c.x + 8;
8868
- const legendY = c.y + (c.label ? 28 : 12);
8906
+ const legendY = c.y + titleH + 4;
8869
8907
  let angle = -Math.PI / 2;
8870
8908
  segments.forEach((seg, i) => {
8871
8909
  const sweep = (seg.value / total) * Math.PI * 2;
@@ -8893,7 +8931,7 @@ var AIDiagram = (function (exports) {
8893
8931
  strokeWidth: 1.2,
8894
8932
  });
8895
8933
  });
8896
- drawLegend(ctx, pts.map(p => p.label), CHART_COLORS, c.x + 8, c.y + (c.label ? 28 : 12), lc, cFont);
8934
+ drawLegend(ctx, pts.map(p => p.label), CHART_COLORS, c.x + 8, c.y + titleH + 4, lc, cFont);
8897
8935
  ctx.globalAlpha = 1;
8898
8936
  return;
8899
8937
  }
@@ -9128,8 +9166,9 @@ var AIDiagram = (function (exports) {
9128
9166
  });
9129
9167
  if (g.label) {
9130
9168
  const gTypo = resolveTypography(gs, { fontSize: GROUP_LABEL.fontSize, fontWeight: GROUP_LABEL.fontWeight, textAlign: "left", padding: GROUP_LABEL.padding }, diagramFont, palette.groupLabel);
9131
- const gTextX = computeTextX(gTypo, g.x, g.w);
9132
- drawText(ctx, g.label, gTextX, g.y + gTypo.padding + 2, gTypo.fontSize, gTypo.fontWeight, gTypo.textColor, gTypo.textAlign, gTypo.font, gTypo.letterSpacing);
9169
+ const gTextX = computeTextX(gTypo, g.x, g.w) + (g.labelDx ?? 0);
9170
+ const gTextY = g.y + gTypo.padding + 2 + (g.labelDy ?? 0);
9171
+ drawText(ctx, g.label, gTextX, gTextY, gTypo.fontSize, gTypo.fontWeight, gTypo.textColor, gTypo.textAlign, gTypo.font, gTypo.letterSpacing);
9133
9172
  }
9134
9173
  if (gs.opacity != null)
9135
9174
  ctx.globalAlpha = 1;
@@ -9167,8 +9206,8 @@ var AIDiagram = (function (exports) {
9167
9206
  if (arrowAt === 'start' || arrowAt === 'both')
9168
9207
  drawArrowHead(rc, x1, y1, Math.atan2(y1 - y2, x1 - x2), ecol, hashStr$3(e.from + 'back'));
9169
9208
  if (e.label) {
9170
- const mx = (x1 + x2) / 2 - ny * EDGE.labelOffset;
9171
- const my = (y1 + y2) / 2 + nx * EDGE.labelOffset;
9209
+ const mx = (x1 + x2) / 2 - ny * EDGE.labelOffset + (e.labelDx ?? 0);
9210
+ const my = (y1 + y2) / 2 + nx * EDGE.labelOffset + (e.labelDy ?? 0);
9172
9211
  // ── Edge label: font, font-size, letter-spacing ──
9173
9212
  // always center-anchored (single line)
9174
9213
  const eFontSize = Number(e.style?.fontSize ?? EDGE.labelFontSize);
@@ -9208,7 +9247,7 @@ var AIDiagram = (function (exports) {
9208
9247
  // ── Node / text typography ─────────────────────────
9209
9248
  const isText = n.shape === 'text';
9210
9249
  const isNote = n.shape === 'note';
9211
- const isMediaShape = n.shape === 'icon' || n.shape === 'image' || n.shape === 'line';
9250
+ const usesBottomStrip = usesBottomLabelStrip(n.shape);
9212
9251
  const typo = resolveTypography(n.style, {
9213
9252
  fontSize: isText ? 13 : isNote ? 12 : 14,
9214
9253
  fontWeight: isText || isNote ? 400 : 500,
@@ -9226,23 +9265,25 @@ var AIDiagram = (function (exports) {
9226
9265
  : n.x + typo.padding)
9227
9266
  : computeTextX(typo, n.x, n.w);
9228
9267
  const fontStr = buildFontStr(typo.fontSize, typo.fontWeight, typo.font);
9229
- const shouldWrap = !isMediaShape && !n.label.includes('\n');
9268
+ const shouldWrap = !usesBottomStrip && !n.label.includes('\n');
9230
9269
  const innerW = shapeInnerTextWidth(n.shape, n.w, typo.padding);
9231
9270
  const rawLines = n.label.split('\n');
9232
9271
  const lines = shouldWrap && rawLines.length === 1
9233
9272
  ? wrapText(n.label, innerW, typo.fontSize, fontStr)
9234
9273
  : rawLines;
9235
- const textCY = isMediaShape
9236
- ? n.y + n.h - 10
9274
+ const textCY = usesBottomStrip
9275
+ ? getBottomLabelCenterY(n)
9237
9276
  : isNote
9238
9277
  ? computeTextCY(typo, n.y, n.h, lines.length, FOLD + typo.padding)
9239
9278
  : computeTextCY(typo, n.y, n.h, lines.length);
9279
+ const labelX = textX + (n.labelDx ?? 0);
9280
+ const labelY = textCY + (n.labelDy ?? 0);
9240
9281
  if (n.label) {
9241
9282
  if (lines.length > 1) {
9242
- drawMultilineText(ctx, lines, textX, textCY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAlign, typo.lineHeight, typo.font, typo.letterSpacing);
9283
+ drawMultilineText(ctx, lines, labelX, labelY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAlign, typo.lineHeight, typo.font, typo.letterSpacing);
9243
9284
  }
9244
9285
  else {
9245
- drawText(ctx, lines[0] ?? '', textX, textCY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAlign, typo.font, typo.letterSpacing);
9286
+ drawText(ctx, lines[0] ?? '', labelX, labelY, typo.fontSize, typo.fontWeight, typo.textColor, typo.textAlign, typo.font, typo.letterSpacing);
9246
9287
  }
9247
9288
  }
9248
9289
  if (hasTx)
@@ -9580,7 +9621,7 @@ var AIDiagram = (function (exports) {
9580
9621
  [x + 1, y + h - 1],
9581
9622
  ]);
9582
9623
  case "line": {
9583
- const labelH = el.querySelector("text") ? 20 : 0;
9624
+ const labelH = el.querySelector("text") ? NODE.mediaLabelH : 0;
9584
9625
  const lineY = y + (h - labelH) / 2;
9585
9626
  return `M ${x} ${lineY} L ${x + w} ${lineY}`;
9586
9627
  }
@@ -12670,7 +12711,6 @@ var AIDiagram = (function (exports) {
12670
12711
  top: 0;
12671
12712
  left: 0;
12672
12713
  transform-origin: 0 0;
12673
- will-change: transform;
12674
12714
  }
12675
12715
 
12676
12716
  .skm-embed__error {
@@ -1 +1 @@
1
- {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/ui/embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/ui/embed.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sketchmark",
3
- "version": "1.3.2",
3
+ "version": "1.3.5",
4
4
  "description": "A plain-text DSL for hand-drawn diagrams. Write boxes, edges, and groups as code — renders sketchy SVG/Canvas via rough.js with a built-in step-by-step animation system.",
5
5
  "keywords": [
6
6
  "diagram",