@cardenelabs/dragon 0.9.0 → 0.10.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cardenelabs/dragon",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "Dragon — Mermaid 感覚で animated SVG を生成する Text DSL。 cdl engine を内部利用。",
5
5
  "license": "MIT",
6
6
  "author": "cardene777",
@@ -56,7 +56,7 @@
56
56
  "prepublishOnly": "pnpm run typecheck && pnpm run test && pnpm run build"
57
57
  },
58
58
  "dependencies": {
59
- "@cardenelabs/cdl": "^0.11.0"
59
+ "@cardenelabs/cdl": "^0.12.0"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "react": "^19.0.0",
package/src/compile.ts CHANGED
@@ -560,10 +560,10 @@ function reportDocEyebrowNotHonored(doc: DslDocument, onNotice?: (n: CompileNoti
560
560
  }
561
561
 
562
562
  /**
563
- * 左から描く動きを持たない図種で段に `draw:` を書いた時に伝える (#1312)。
563
+ * 起点から描く動きを持たない図種で段に `draw:` を書いた時に伝える (#1312 / #1318)。
564
564
  *
565
- * 描く動きを持つのは今のところ折れ線だけ。 他の図種では書いても何も起きないため、
566
- * 黙って捨てると「書いたのに伸びない」 が手掛かりなしで起きる。
565
+ * 対応する 8 図種以外では書いても何も起きないため、黙って捨てると
566
+ * 「書いたのに現れない」 が手掛かりなしで起きる。
567
567
  *
568
568
  * 段ごとに知らせる = 5 段のうち 1 段だけに書いた形で、どの段が効いていないかを読めるようにする。
569
569
  */
@@ -598,10 +598,10 @@ function reportDrawNotHonored(doc: DslDocument, onNotice?: (n: CompileNotice) =>
598
598
  }
599
599
 
600
600
  /**
601
- * 段の `draw:` が効く図種 (#1312 / #1314)。
601
+ * 段の `draw:` が効く図種 (#1312 / #1314 / #1318)。
602
602
  *
603
603
  * **語と図種の対応表から導く** (`DRAW_TARGETS`)。 一覧を写すと、語を足した時に片方だけ
604
- * 古いまま残る。 描画側 (`cdl` の `CdlPhase.draw`) が対応する 3 種と一致する。
604
+ * 古いまま残る。 描画側 (`cdl` の `CdlPhase.draw`) が対応する 8 種と一致する。
605
605
  */
606
606
  const DRAWABLE_DOC_TYPES: ReadonlySet<PresetType> = new Set<PresetType>(DRAW_TARGETS.values());
607
607
 
@@ -5615,8 +5615,8 @@ function injectPhasesFallback(diagram: CdlDiagram, doc: DslDocument): void {
5615
5615
  // phase 注入。 CdlPhase.tweens[].stateId / sets[].stateId で state 参照 (state ではない)。
5616
5616
  for (const p of doc.animate.phases) {
5617
5617
  const activateIds: string[] = [...resolveIds(p.highlight ?? [])];
5618
- // `draw: line` を描画側の欄へ写す (#1312)。 相手は 1 箱で図全体を描く種別の箱で、
5619
- // 折れ線は必ずこの形になるため名前を書かせずに引ける。
5618
+ // `draw:` を描画側の欄へ写す (#1312 / #1314 / #1318)。 相手は 1 箱で図全体を描く
5619
+ // 対象 8 種の箱で、必ず 1 つに決まるため名前を書かせずに引ける。
5620
5620
  //
5621
5621
  // **`activate` と兼ねない**。 描画側は焦点と別集合で持つ (`cdl#512`) = 焦点が当たり
5622
5622
  // 続ける図で毎段引き直しになるため。 書いた段だけが欄を持つ
@@ -268,10 +268,9 @@ export interface JsonPhase {
268
268
  /** badge label */
269
269
  badge?: string;
270
270
  /**
271
- * その段で左の起点から描くもの (#1312)。 記法の `draw: line` と同じ。
271
+ * その段で起点から描くもの (#1312 / #1314 / #1318)。 記法の `draw:` と同じ。
272
272
  *
273
- * 受ける語は `line` だけ (`DRAW_WORDS`)。 折れ線の図で、その段の間に線が左端から
274
- * 右へ伸びる。
273
+ * 受ける 8 語は `DRAW_WORDS` が持つ。 語と同じ図種で、その段の間に図が起点から現れる。
275
274
  */
276
275
  draw?: string;
277
276
  /**
@@ -373,8 +373,8 @@
373
373
  },
374
374
  "draw": {
375
375
  "type": "string",
376
- "enum": ["line", "bar", "pie"],
377
- "description": "この phase で起点から描くもの。 語は図種と揃える。 line = 折れ線が左端から右へ伸びる / bar = 棒が横軸から上へ伸びる / pie = 扇が 12 時から時計回りに開く"
376
+ "enum": ["line", "bar", "pie", "journey", "mind", "tree", "gantt", "funnel"],
377
+ "description": "この phase で起点から描くもの。 語は図種と揃える。 line / journey = 線が左端から右へ伸びる / bar = 棒が横軸から上へ伸びる / pie = 扇が 12 時から時計回りに開く / mind = 枝が中心から外へ伸びる / tree = 枝が根から下へ伸びる / gantt = 帯が各始端から右へ伸びる / funnel = 段が上端から順に積まれる"
378
378
  },
379
379
  "tween": {
380
380
  "type": "object",
package/src/types.ts CHANGED
@@ -394,15 +394,15 @@ export type DslPhase = {
394
394
  body?: string;
395
395
  badge?: string;
396
396
  /**
397
- * その段で左の起点から描くもの (`draw: line`、 #1312)。
397
+ * その段で起点から描くもの (#1312 / #1314 / #1318)。
398
398
  *
399
- * 受ける語は今のところ `line` だけ。 折れ線 (`type: line`) の図で、その段の間に線が
400
- * 左端から右へ伸び、点と値の数字は線の先が届いた時に現れる。
399
+ * 受ける語は `line` / `bar` / `pie` / `journey` / `mind` / `tree` / `gantt` / `funnel`。
400
+ * 語と同じ図種で、その段の間に線・棒・扇・枝・帯・段が各図の起点から現れる。
401
401
  *
402
402
  * **最上位ではなく段に置く**。 記法は動き (`tween` / `set` / `focus` / `badge`) を段に、
403
- * 静的な性質 (`eyebrow` / `axes`) を最上位に書く分け方を既に持つ。 線が伸びるのは動き。
403
+ * 静的な性質 (`eyebrow` / `axes`) を最上位に書く分け方を既に持つ。 起点から描くのは動き。
404
404
  *
405
- * 相手の名前は書かせない = 折れ線は図全体を 1 箱で描くため相手が 1 つに決まる。
405
+ * 相手の名前は書かせない = 対象の 8 図種はいずれも図全体を 1 箱で描くため相手が決まる。
406
406
  */
407
407
  draw?: string;
408
408
  /**
package/src/v05/parser.ts CHANGED
@@ -2344,6 +2344,14 @@ const 段の項目の英語 = ["focus", "badge", "body", "description", "tween",
2344
2344
  * | `line` | `line` | 左端から右へ線が伸びる |
2345
2345
  * | `bar` | `bar` | 横軸から上へ棒が伸びる |
2346
2346
  * | `pie` | `pie` | 12 時から時計回りに扇が開く |
2347
+ * | `journey` | `journey` | 左端から右へ気持ちの線が伸びる |
2348
+ * | `mind` | `mind` | 中心から外へ枝が伸びる |
2349
+ * | `tree` | `tree` | 根から下へ枝が伸びる |
2350
+ * | `gantt` | `gantt` | 各帯の始端から右へ帯が伸びる |
2351
+ * | `funnel` | `funnel` | 上端から順に段が積まれる |
2352
+ *
2353
+ * `quadrant` は入れない。 4 つの区画に項目を置く図で **項目に順序が無く**、起点を決められない
2354
+ * (順番を書いた順で決めると、動きが図の意味を持たない)。
2347
2355
  *
2348
2356
  * いまは語と図種が同じ綴りだが、**同じものとして扱わない**。 語は書き手が書く名前で、
2349
2357
  * 図種は `type:` が取る値。 片方だけ別名を足したくなった時に、対応が表に残っている形にする。
@@ -2352,6 +2360,11 @@ export const DRAW_TARGETS: ReadonlyMap<string, PresetType> = new Map<string, Pre
2352
2360
  ["line", "line"],
2353
2361
  ["bar", "bar"],
2354
2362
  ["pie", "pie"],
2363
+ ["journey", "journey"],
2364
+ ["mind", "mind"],
2365
+ ["tree", "tree"],
2366
+ ["gantt", "gantt"],
2367
+ ["funnel", "funnel"],
2355
2368
  ]);
2356
2369
 
2357
2370
  /** `draw:` に書ける語。 表から導く (#1314) */