sketchmark 0.2.4 → 0.2.6

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/layout/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAKV,MAAM,UAAU,CAAC;AAoZlB,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB1E;AAoID,wBAAgB,MAAM,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CA+NjD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EAKV,MAAM,UAAU,CAAC;AAwZlB,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmB1E;AAoID,wBAAgB,MAAM,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CA+NjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAmBX,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA8B/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;AA6BD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAu7B7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAmBX,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA+B/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;AA6BD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAw7B7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/parser/tokenizer.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,OAAO,GACP,QAAQ,GACR,cAAc,GACd,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,SAAS,GACT,KAAK,GACL,SAAS,CAAC;AAEd,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,QAAQ,aA8DnB,CAAC;AAQH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAqJ7C"}
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/parser/tokenizer.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,OAAO,GACP,QAAQ,GACR,cAAc,GACd,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,KAAK,GACL,MAAM,GACN,SAAS,GACT,KAAK,GACL,SAAS,CAAC;AAEd,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,QAAQ,aA+DnB,CAAC;AAQH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAqJ7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/canvas/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAOX,MAAM,aAAa,CAAC;AAsCrB,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;AA2PD,wBAAgB,cAAc,CAC5B,EAAE,EAAO,UAAU,EACnB,MAAM,EAAG,iBAAiB,EAC1B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAycN;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,EAOX,MAAM,aAAa,CAAC;AAsCrB,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;AAySD,wBAAgB,cAAc,CAC5B,EAAE,EAAO,UAAU,EACnB,MAAM,EAAG,iBAAiB,EAC1B,OAAO,GAAE,qBAA0B,GAClC,IAAI,CA2cN;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":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/svg/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAMX,MAAM,aAAa,CAAC;AA0drB,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,CAgsBf;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,EAMX,MAAM,aAAa,CAAC;AAqhBrB,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,CAksBf;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAKtD"}
@@ -16,6 +16,7 @@ export interface SceneNode extends SceneRect {
16
16
  width?: number;
17
17
  height?: number;
18
18
  imageUrl?: string;
19
+ iconName?: string;
19
20
  meta?: Record<string, string>;
20
21
  x: number;
21
22
  y: number;
@@ -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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"}
@@ -20,6 +20,7 @@ var AIDiagram = (function (exports) {
20
20
  "parallelogram",
21
21
  "text",
22
22
  "image",
23
+ "icon",
23
24
  "group",
24
25
  "style",
25
26
  "step",
@@ -233,6 +234,7 @@ var AIDiagram = (function (exports) {
233
234
  "parallelogram",
234
235
  "text",
235
236
  "image",
237
+ "icon",
236
238
  ];
237
239
  const CHART_TYPES = [
238
240
  "bar-chart",
@@ -423,7 +425,7 @@ var AIDiagram = (function (exports) {
423
425
  kind: "node",
424
426
  id,
425
427
  shape,
426
- label: props.label || id,
428
+ label: props.label || (shape === "image" || shape === "icon" ? "" : id),
427
429
  ...(groupId ? { groupId } : {}),
428
430
  ...(props.width ? { width: parseFloat(props.width) } : {}),
429
431
  ...(props.height ? { height: parseFloat(props.height) } : {}),
@@ -432,6 +434,8 @@ var AIDiagram = (function (exports) {
432
434
  };
433
435
  if (props.url)
434
436
  node.imageUrl = props.url;
437
+ if (props.name)
438
+ node.iconName = props.name;
435
439
  return node;
436
440
  }
437
441
  function parseEdge(fromId, connector, rest) {
@@ -500,7 +504,7 @@ var AIDiagram = (function (exports) {
500
504
  j++;
501
505
  }
502
506
  // Support multiline via literal \n in label string
503
- const rawLabel = props.label ?? id;
507
+ const rawLabel = props.label ?? "";
504
508
  return {
505
509
  kind: "note",
506
510
  id,
@@ -1279,6 +1283,7 @@ var AIDiagram = (function (exports) {
1279
1283
  height: n.height,
1280
1284
  meta: n.meta,
1281
1285
  imageUrl: n.imageUrl,
1286
+ iconName: n.iconName,
1282
1287
  x: 0,
1283
1288
  y: 0,
1284
1289
  w: 0,
@@ -1505,6 +1510,10 @@ var AIDiagram = (function (exports) {
1505
1510
  }
1506
1511
  break;
1507
1512
  }
1513
+ case "icon":
1514
+ n.w = n.w || 48;
1515
+ n.h = n.h || (n.label !== n.id ? 64 : 48); // extra height for label
1516
+ break;
1508
1517
  default:
1509
1518
  n.w = n.w || Math.max(MIN_W, Math.min(MAX_W, labelW));
1510
1519
  n.h = n.h || 52;
@@ -5100,6 +5109,58 @@ var AIDiagram = (function (exports) {
5100
5109
  }
5101
5110
  case "text":
5102
5111
  return [];
5112
+ case "icon": {
5113
+ if (n.iconName) {
5114
+ const [prefix, name] = n.iconName.includes(":")
5115
+ ? n.iconName.split(":", 2)
5116
+ : ["mdi", n.iconName];
5117
+ const iconColor = s.color
5118
+ ? encodeURIComponent(String(s.color))
5119
+ : encodeURIComponent(String(palette.nodeStroke));
5120
+ const iconSize = Math.min(n.w, n.h) - 4;
5121
+ const iconUrl = `https://api.iconify.design/${prefix}/${name}.svg?color=${iconColor}&width=${iconSize}&height=${iconSize}`;
5122
+ const img = document.createElementNS(NS, "image");
5123
+ img.setAttribute("href", iconUrl);
5124
+ img.setAttribute("x", String(n.x + 1));
5125
+ img.setAttribute("y", String(n.y + 1));
5126
+ img.setAttribute("width", String(n.w - 2));
5127
+ img.setAttribute("height", String(n.h - 2));
5128
+ img.setAttribute("preserveAspectRatio", "xMidYMid meet");
5129
+ if (s.opacity != null)
5130
+ img.setAttribute("opacity", String(s.opacity));
5131
+ // clip-path for rounded corners (same as image)
5132
+ const clipId = `clip-${n.id}`;
5133
+ const defs = document.createElementNS(NS, "defs");
5134
+ const clip = document.createElementNS(NS, "clipPath");
5135
+ clip.setAttribute("id", clipId);
5136
+ const rect = document.createElementNS(NS, "rect");
5137
+ rect.setAttribute("x", String(n.x + 1));
5138
+ rect.setAttribute("y", String(n.y + 1));
5139
+ rect.setAttribute("width", String(n.w - 2));
5140
+ rect.setAttribute("height", String(n.h - 2));
5141
+ rect.setAttribute("rx", "6");
5142
+ clip.appendChild(rect);
5143
+ defs.appendChild(clip);
5144
+ img.setAttribute("clip-path", `url(#${clipId})`);
5145
+ // only draw border when stroke is explicitly set
5146
+ const els = [defs, img];
5147
+ if (s.stroke) {
5148
+ els.push(rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, {
5149
+ ...opts,
5150
+ fill: "none",
5151
+ }));
5152
+ }
5153
+ return els;
5154
+ }
5155
+ // fallback: placeholder square
5156
+ return [
5157
+ rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, {
5158
+ ...opts,
5159
+ fill: "#e0e0e0",
5160
+ stroke: "#999999",
5161
+ }),
5162
+ ];
5163
+ }
5103
5164
  case "image": {
5104
5165
  if (n.imageUrl) {
5105
5166
  const img = document.createElementNS(NS, "image");
@@ -5122,11 +5183,15 @@ var AIDiagram = (function (exports) {
5122
5183
  clip.appendChild(rect);
5123
5184
  defs.appendChild(clip);
5124
5185
  img.setAttribute("clip-path", `url(#${clipId})`);
5125
- const border = rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, {
5126
- ...opts,
5127
- fill: "none",
5128
- });
5129
- return [defs, img, border];
5186
+ // only draw border when stroke is explicitly set
5187
+ const els = [defs, img];
5188
+ if (s.stroke) {
5189
+ els.push(rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, {
5190
+ ...opts,
5191
+ fill: "none",
5192
+ }));
5193
+ }
5194
+ return els;
5130
5195
  }
5131
5196
  return [
5132
5197
  rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, {
@@ -5370,9 +5435,11 @@ var AIDiagram = (function (exports) {
5370
5435
  : verticalAlign === "bottom"
5371
5436
  ? nodeBodyBottom - blockH / 2
5372
5437
  : nodeBodyMid;
5373
- ng.appendChild(lines.length > 1
5374
- ? mkMultilineText(lines, textX, textCY, fontSize, fontWeight, textColor, textAnchor, lineHeight, nodeFont, letterSpacing)
5375
- : mkText(n.label, textX, textCY, fontSize, fontWeight, textColor, textAnchor, nodeFont, letterSpacing));
5438
+ if (n.label) {
5439
+ ng.appendChild(lines.length > 1
5440
+ ? mkMultilineText(lines, textX, textCY, fontSize, fontWeight, textColor, textAnchor, lineHeight, nodeFont, letterSpacing)
5441
+ : mkText(n.label, textX, textCY, fontSize, fontWeight, textColor, textAnchor, nodeFont, letterSpacing));
5442
+ }
5376
5443
  if (options.interactive) {
5377
5444
  ng.style.cursor = "pointer";
5378
5445
  ng.addEventListener("click", () => options.onNodeClick?.(n.id));
@@ -6070,6 +6137,50 @@ var AIDiagram = (function (exports) {
6070
6137
  break;
6071
6138
  case 'text':
6072
6139
  break; // no shape drawn
6140
+ case 'icon': {
6141
+ if (n.iconName) {
6142
+ const [prefix, name] = n.iconName.includes(':')
6143
+ ? n.iconName.split(':', 2)
6144
+ : ['mdi', n.iconName];
6145
+ const iconColor = s.color
6146
+ ? encodeURIComponent(String(s.color))
6147
+ : encodeURIComponent(String(palette.nodeStroke));
6148
+ const iconSize = Math.min(n.w, n.h) - 4;
6149
+ const iconUrl = `https://api.iconify.design/${prefix}/${name}.svg?color=${iconColor}&width=${iconSize}&height=${iconSize}`;
6150
+ const img = new Image();
6151
+ img.crossOrigin = 'anonymous';
6152
+ img.onload = () => {
6153
+ ctx.save();
6154
+ if (s.opacity != null)
6155
+ ctx.globalAlpha = Number(s.opacity);
6156
+ // clip-path for rounded corners (same as image)
6157
+ ctx.beginPath();
6158
+ const r = 6;
6159
+ ctx.moveTo(n.x + r, n.y);
6160
+ ctx.lineTo(n.x + n.w - r, n.y);
6161
+ ctx.quadraticCurveTo(n.x + n.w, n.y, n.x + n.w, n.y + r);
6162
+ ctx.lineTo(n.x + n.w, n.y + n.h - r);
6163
+ ctx.quadraticCurveTo(n.x + n.w, n.y + n.h, n.x + n.w - r, n.y + n.h);
6164
+ ctx.lineTo(n.x + r, n.y + n.h);
6165
+ ctx.quadraticCurveTo(n.x, n.y + n.h, n.x, n.y + n.h - r);
6166
+ ctx.lineTo(n.x, n.y + r);
6167
+ ctx.quadraticCurveTo(n.x, n.y, n.x + r, n.y);
6168
+ ctx.closePath();
6169
+ ctx.clip();
6170
+ ctx.drawImage(img, n.x + 1, n.y + 1, n.w - 2, n.h - 2);
6171
+ ctx.restore();
6172
+ // only draw border when stroke is explicitly set
6173
+ if (s.stroke) {
6174
+ rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, { ...opts, fill: 'none' });
6175
+ }
6176
+ };
6177
+ img.src = iconUrl;
6178
+ }
6179
+ else {
6180
+ rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, { ...opts, fill: '#e0e0e0', stroke: '#999999' });
6181
+ }
6182
+ return;
6183
+ }
6073
6184
  case 'image': {
6074
6185
  if (n.imageUrl) {
6075
6186
  const img = new Image();
@@ -6091,7 +6202,10 @@ var AIDiagram = (function (exports) {
6091
6202
  ctx.clip();
6092
6203
  ctx.drawImage(img, n.x + 1, n.y + 1, n.w - 2, n.h - 2);
6093
6204
  ctx.restore();
6094
- rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, { ...opts, fill: 'none' });
6205
+ // only draw border when stroke is explicitly set
6206
+ if (s.stroke) {
6207
+ rc.rectangle(n.x + 1, n.y + 1, n.w - 2, n.h - 2, { ...opts, fill: 'none' });
6208
+ }
6095
6209
  };
6096
6210
  img.src = n.imageUrl;
6097
6211
  }
@@ -6281,11 +6395,13 @@ var AIDiagram = (function (exports) {
6281
6395
  const textCY = vertAlign === 'top' ? nodeBodyTop + blockH / 2
6282
6396
  : vertAlign === 'bottom' ? nodeBodyBottom - blockH / 2
6283
6397
  : n.y + n.h / 2; // middle (default)
6284
- if (lines.length > 1) {
6285
- drawMultilineText(ctx, lines, textX, textCY, fontSize, fontWeight, textColor, textAlign, lineHeight, nodeFont, letterSpacing);
6286
- }
6287
- else {
6288
- drawText(ctx, lines[0] ?? '', textX, textCY, fontSize, fontWeight, textColor, textAlign, nodeFont, letterSpacing);
6398
+ if (n.label) {
6399
+ if (lines.length > 1) {
6400
+ drawMultilineText(ctx, lines, textX, textCY, fontSize, fontWeight, textColor, textAlign, lineHeight, nodeFont, letterSpacing);
6401
+ }
6402
+ else {
6403
+ drawText(ctx, lines[0] ?? '', textX, textCY, fontSize, fontWeight, textColor, textAlign, nodeFont, letterSpacing);
6404
+ }
6289
6405
  }
6290
6406
  if (n.style?.opacity != null)
6291
6407
  ctx.globalAlpha = 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sketchmark",
3
- "version": "0.2.4",
3
+ "version": "0.2.6",
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",