@takagaki/cortex-decisions-viewer 0.12.184 → 0.12.186

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/dist/render.js CHANGED
@@ -5874,6 +5874,8 @@ a.ds-tile:hover { text-decoration: none; }
5874
5874
  .mt-shot / .mt-carousel-video と同じ「width:100%; height:auto」に任せ、
5875
5875
  枚数を切り替えるたびに高さが変わる(ガタつきはあるが、CSP安全性を優先する) */
5876
5876
  .mt-carousel { margin: 6px 0 0; max-width: 640px; }
5877
+ /* Backlog のモーダルの動画(#1353): 幅は480pxを上限に(狭い画面では100%まで縮む)・モーダルの左右中央に置く */
5878
+ .mt-carousel-center { max-width: 480px; margin-left: auto; margin-right: auto; }
5877
5879
  .mt-carousel-slide[hidden] { display: none; }
5878
5880
  .mt-carousel-slide .mt-shot { margin: 0; }
5879
5881
  .mt-carousel-video { display: block; width: 100%; height: auto; margin: 0; border: 1px solid var(--border); border-radius: 6px; background: #000; }
@@ -6828,13 +6830,18 @@ ${story_1.splitByNameLinks.toString()}
6828
6830
  var FIGMA_SHOT_STEP1 = "${figma_guide_images_1.FIGMA_GUIDE_STEP1}";
6829
6831
  var FIGMA_SHOT_STEP2 = "${figma_guide_images_1.FIGMA_GUIDE_STEP2}";
6830
6832
  var FIGMA_SHOT_STEP3 = "${figma_guide_images_1.FIGMA_GUIDE_STEP3}";
6831
- // Backlog の手順動画のポスターと手順画像5枚(#1353)。理由は src/backlog-guide-images.ts
6833
+ // Backlog の手順動画のポスターと手順画像10枚(#1353)。理由は src/backlog-guide-images.ts
6832
6834
  var BACKLOG_SHOT_POSTER = "${backlog_guide_images_1.BACKLOG_GUIDE_POSTER}";
6833
6835
  var BACKLOG_SHOT_STEP1 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP1}";
6834
6836
  var BACKLOG_SHOT_STEP2 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP2}";
6835
6837
  var BACKLOG_SHOT_STEP3 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP3}";
6836
6838
  var BACKLOG_SHOT_STEP4 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP4}";
6837
6839
  var BACKLOG_SHOT_STEP5 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP5}";
6840
+ var BACKLOG_SHOT_STEP6 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP6}";
6841
+ var BACKLOG_SHOT_STEP7 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP7}";
6842
+ var BACKLOG_SHOT_STEP8 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP8}";
6843
+ var BACKLOG_SHOT_STEP9 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP9}";
6844
+ var BACKLOG_SHOT_STEP10 = "${backlog_guide_images_1.BACKLOG_GUIDE_STEP10}";
6838
6845
 
6839
6846
  /**
6840
6847
  * コピーボタンの動き(copyRow と copyInline の共通部分)。clipboard が使えない環境では
@@ -6964,7 +6971,9 @@ ${story_1.splitByNameLinks.toString()}
6964
6971
  // (配るのは動画1本だけ。ポスターは宣言側が持つ)。あれば <video poster> に付ける
6965
6972
  // - shots は今の meta.shots と同じ形。画像は data URI 埋め込みのまま(変更なし)
6966
6973
  //
6967
- // 🔴 **ここでも幅の数字を呼び出し側に書かせない**(CSS の .mt-carousel 1 か所だけ)。
6974
+ // - guide.counter … true なら画面の説明文を「手順 N / 全体」だけにする(画像の中に文言がある手順用・Backlog)。
6975
+ // 動画スライドの説明文は空(読み上げ用は video の aria-label)。無ければ従来どおり各スライドの見出し
6976
+ // 🔴 **ここでも幅の数字を呼び出し側に書かせない**(CSS の .mt-carousel と、中央寄せ用の .mt-carousel-center だけ)。
6968
6977
  // ⚠ **表示切替は hidden 属性(DOM プロパティ代入)だけ**。インラインの style を書き込む
6969
6978
  // 手段(CSP の検査・csp-compatible.test.mjs が禁じる書き方)は使わない。
6970
6979
  // ⚠ ハンドラは全部 addEventListener(インラインの on* 属性は配信先の CSP が実行しない)。
@@ -6988,12 +6997,16 @@ ${story_1.splitByNameLinks.toString()}
6988
6997
  slides.push({
6989
6998
  node: el("video", videoAttrs),
6990
6999
  caption: guide.video.alt || "",
7000
+ label: null,
6991
7001
  });
6992
7002
  }
6993
- (guide.shots || []).forEach(function (shot) {
7003
+ var shotList = guide.shots || [];
7004
+ shotList.forEach(function (shot, shotIdx) {
6994
7005
  slides.push({
6995
7006
  node: guideShot({ src: shot.src, width: shot.width, height: shot.height, alt: shot.alt }),
6996
7007
  caption: shot.heading || shot.alt || "",
7008
+ // counter: true の手順は、画面の説明文を「手順 N / 全体」だけにする(画像の中に文言があるため)
7009
+ label: guide.counter ? "手順 " + (shotIdx + 1) + " / " + shotList.length : null,
6997
7010
  });
6998
7011
  });
6999
7012
  if (!slides.length) return null;
@@ -7030,7 +7043,8 @@ ${story_1.splitByNameLinks.toString()}
7030
7043
  // フォーカスが隠れたスライドの中にあったら外枠へ戻す(キーボード操作が途切れない)
7031
7044
  if (document.activeElement && document.activeElement !== root && viewport.contains(document.activeElement)
7032
7045
  && slideEls[current] && !slideEls[current].contains(document.activeElement)) root.focus();
7033
- caption.textContent = slides[current].caption;
7046
+ // 動画スライドに label は無い(counter 手順では説明文を出さない)。counter の無い手順は従来どおり caption
7047
+ caption.textContent = guide.counter ? (slides[current].label || "") : slides[current].caption;
7034
7048
  dotEls.forEach(function (dotEl, idx) {
7035
7049
  dotEl.classList.toggle("is-active", idx === current);
7036
7050
  if (idx === current) dotEl.setAttribute("aria-current", "true"); else dotEl.removeAttribute("aria-current");
@@ -12539,24 +12553,15 @@ ${story_1.splitByNameLinks.toString()}
12539
12553
  m.modal.appendChild(backlogDesc);
12540
12554
  // 🔴 **つなぎ方の動画(#1353)はモーダルの見出しのすぐ下(説明文より前)に置く。** 鍵の欄の「発行のしかた」の中に置くと、
12541
12555
  // 接続先が 0 件のあいだは鍵の欄ごと出ないので、いちばん要る最初のときに見えない。
12542
- // 接続先が 0 件のときは開いて出し、つないだあとは畳む(鍵の欄の中には置かない=同じ動画を 2 か所に出さない)
12543
- // 説明文は先に追加済みなので、説明文の前へ差し込む
12556
+ // **折りたたまない**(オーナー指摘・2026-10-19): 接続先の有無によらず、いつもそのまま出す。
12557
+ // 左右中央・幅の上限は CSS の .mt-carousel-center 1 か所。説明文は先に追加済みなので、説明文の前へ差し込む
12544
12558
  var backlogForm = SECRET_FORMS["backlog"];
12545
12559
  var backlogCarousel = backlogForm && backlogForm.guideInModal && backlogTargetsEditable()
12546
12560
  ? buildGuideCarousel("backlog", backlogForm.guide) : null;
12547
12561
  if (backlogCarousel) {
12548
- var guideFold = el("details", { class: "sec-fold mt-guide-fold", "data-guide-kind": "backlog" }, [
12549
- el("summary", { text: "つなぎ方を動画で見る" }),
12550
- backlogCarousel,
12551
- ]);
12552
- guideFold.open = keyTargetCount("課題管理") === 0;
12553
- // 閉じても <video> は DOM に残るので、再生中なら止める(音が鳴り続けない)
12554
- guideFold.addEventListener("toggle", function () {
12555
- if (guideFold.open) return;
12556
- var playing = guideFold.querySelector("video");
12557
- if (playing && typeof playing.pause === "function") playing.pause();
12558
- });
12559
- m.modal.insertBefore(guideFold, backlogDesc);
12562
+ backlogCarousel.classList.add("mt-carousel-center");
12563
+ backlogCarousel.setAttribute("data-guide-kind", "backlog");
12564
+ m.modal.insertBefore(backlogCarousel, backlogDesc);
12560
12565
  }
12561
12566
  } else if (cap === "開発") {
12562
12567
  // 🔴 **開発の開示文は「記録に使う・決定の抽出には使わない」(#660)。** 2026-09-18 の
@@ -18508,40 +18513,68 @@ ${story_1.splitByNameLinks.toString()}
18508
18513
  "(前の担当者のアカウントが無効になると同期が止まります)。",
18509
18514
  },
18510
18515
  // **手順の動画+画像(#1353)。** 動画の実 URL は guide に置かない(SITE.guideAssets.backlog.video・
18511
- // build.ts の GUIDE_VIDEO_SOURCES が注入する)。動画が無い配信先では画像5枚だけで成立する。
18512
- // 画像の並びは動画の流れ(URL をコピー → キーを発行 → 貼る → つながる)に揃える。
18516
+ // build.ts の GUIDE_VIDEO_SOURCES が注入する)。動画が無い配信先では画像10枚だけで成立する。
18517
+ // 画像の並びは手順の順(01→10: URL を貼る欄 → URL をコピー → キーを発行 → 貼る → つながる)。
18513
18518
  // 動画+画像は鍵の欄ではなく、モーダルの上(見出しの下・説明文の前)に出す(openCapabilityModal の Backlog の項)
18514
18519
  guideInModal: true,
18515
18520
  guide: {
18521
+ // 画像の説明文(カルーセルの下)は「手順 N / 10」だけを出す(画像の中に文言が入っているため)。
18522
+ // 読み上げ用の説明は各画像の alt と動画の aria-label に持たせる(画面には出さない)
18523
+ counter: true,
18516
18524
  video: {
18517
18525
  alt: "Backlog を Cortex につなぐ手順の動画(約1分30秒)。Backlog の URL のコピー、API キーの発行、操作タブへの貼り付け、接続OK の確認までを画面で見せます。",
18518
18526
  poster: BACKLOG_SHOT_POSTER,
18519
18527
  },
18520
18528
  shots: [
18521
18529
  {
18522
- src: BACKLOG_SHOT_STEP1, width: "1481", height: "993",
18523
- heading: "1. Backlog のアドレスバーから URL をコピー(操作タブの「接続先を追加」に貼る)",
18524
- alt: "Backlogのプロジェクトホーム。ブラウザのアドレスバーに cm1.backlog.jp/projects/PJ_CORTEX の形のURLが出ている。",
18530
+ src: BACKLOG_SHOT_STEP1, width: "770", height: "250",
18531
+ heading: "1. Cortex の欄に Backlog の URL を貼る",
18532
+ alt: "手順 1。Cortex の Backlog のモーダル。「接続先を追加」の URL の入力欄が赤枠で示され、「ここに Backlog の URL を貼ります」と書かれている。",
18533
+ },
18534
+ {
18535
+ src: BACKLOG_SHOT_STEP2, width: "620", height: "260",
18536
+ heading: "2. Backlog のホームで URL をコピー",
18537
+ alt: "手順 2。Backlog のプロジェクトホーム。アドレスバーの URL が赤枠で示され、「プロジェクトのホームで、この URL をコピー」と書かれている。",
18538
+ },
18539
+ {
18540
+ src: BACKLOG_SHOT_STEP3, width: "685", height: "180",
18541
+ heading: "3. 貼り付けて追加",
18542
+ alt: "手順 3。URL を貼った入力欄と「追加」ボタンが赤く囲まれ、「貼り付けて[追加]を押す」と書かれている。",
18543
+ },
18544
+ {
18545
+ src: BACKLOG_SHOT_STEP4, width: "790", height: "190",
18546
+ heading: "4. 接続先が並んだら API キーへ",
18547
+ alt: "手順 4。接続先の行が並び、「入れる」ボタンが赤く囲まれて、「接続先が並んだら、次は API キー」と書かれている。",
18548
+ },
18549
+ {
18550
+ src: BACKLOG_SHOT_STEP5, width: "540", height: "250",
18551
+ heading: "5. 右上のアイコンから個人設定",
18552
+ alt: "手順 5。Backlog の右上のアイコンのメニューで「個人設定」が赤枠で示されている。",
18553
+ },
18554
+ {
18555
+ src: BACKLOG_SHOT_STEP6, width: "560", height: "180",
18556
+ heading: "6. 左のメニューの API",
18557
+ alt: "手順 6。Backlog の個人設定の左のメニューで「API」が赤枠で示されている。",
18525
18558
  },
18526
18559
  {
18527
- src: BACKLOG_SHOT_STEP2, width: "1536", height: "766",
18528
- heading: "2. 個人設定 → API のメモに Cortex と入れて登録",
18529
- alt: "Backlogの個人設定のAPI画面。新しいAPIキーを発行する欄のメモに Cortex と入力されていて、登録ボタンを押す前の状態。",
18560
+ src: BACKLOG_SHOT_STEP7, width: "700", height: "180",
18561
+ heading: "7. メモに Cortex と入れて登録",
18562
+ alt: "手順 7。API の設定画面。メモ欄に「Cortex」と入っていて、「登録」ボタンが赤く囲まれている。",
18530
18563
  },
18531
18564
  {
18532
- src: BACKLOG_SHOT_STEP3, width: "1536", height: "766",
18533
- heading: "3. 発行された API キーをコピー",
18534
- alt: "登録されたAPIキーの一覧に、メモが Cortex の行が増えている。キーは先頭と末尾の文字だけ見え、行のコピーボタンでコピーできる。",
18565
+ src: BACKLOG_SHOT_STEP8, width: "700", height: "160",
18566
+ heading: "8. 発行された API キーをコピー",
18567
+ alt: "手順 8。登録された API キーの一覧で、メモが Cortex の行のコピーボタンが赤く囲まれ、「発行された API キーをコピー」と書かれている。",
18535
18568
  },
18536
18569
  {
18537
- src: BACKLOG_SHOT_STEP4, width: "1456", height: "819",
18538
- heading: "4. 操作タブの Backlog の入力欄に貼って保存",
18539
- alt: "Cortexの操作タブのBacklogのモーダル。API キーを入れる欄(表示は「トークンを貼り付け」)にカーソルがあり、その下に保存ボタンがある。",
18570
+ src: BACKLOG_SHOT_STEP9, width: "775", height: "140",
18571
+ heading: "9. 入れる → キーを貼って保存",
18572
+ alt: "手順 9。Cortex のモーダルで「入れる」を押して出た入力欄と「保存」ボタンが赤く囲まれ、「キーを貼って[保存]」と書かれている。",
18540
18573
  },
18541
18574
  {
18542
- src: BACKLOG_SHOT_STEP5, width: "1568", height: "773",
18543
- heading: "5. 「接続OK」と出れば完了",
18544
- alt: "Backlogのモーダルの接続先の行に、緑の「接続OK」の表示が出ている。登録済みと保存しましたの表示も出ている。",
18575
+ src: BACKLOG_SHOT_STEP10, width: "645", height: "130",
18576
+ heading: "10. 接続を確認して接続OK",
18577
+ alt: "手順 10。接続先の行に緑の「接続OK」が出ていて、「接続を確認」ボタンと一緒に赤く囲まれている。",
18545
18578
  },
18546
18579
  ],
18547
18580
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takagaki/cortex-decisions-viewer",
3
- "version": "0.12.184",
3
+ "version": "0.12.186",
4
4
  "description": "Cortexの意思決定記録(Decisions/*.md)を静的サイトにビルドして閲覧する。各レコードに「Edit on GitHub」リンクを付与する。",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
@@ -15,7 +15,7 @@
15
15
  "dist",
16
16
  "assets",
17
17
  "!assets/guides/backlog-poster.jpg",
18
- "!assets/guides/backlog-shots"
18
+ "!assets/guides/backlog-annotated"
19
19
  ],
20
20
  "engines": {
21
21
  "node": ">=18"