From 7d610df9d0cd5a9cba90df0e9f279551fa4f09b7 Mon Sep 17 00:00:00 2001 From: "k.hiro1818" Date: Sun, 18 Oct 2026 10:06:13 +0000 Subject: [PATCH 1/2] refactor: replace deprecated lucide icon aliases with canonical names Co-Authored-By: Claude Sonnet 5.5 --- .../lucide-deprecated-icon-aliases/plan.md | 57 +++++++++++++++++++ .../detail/WorkBookTasksTable.svelte | 4 +- src/lib/components/LabelWithTooltips.svelte | 4 +- src/lib/components/Tabs/TabItemWrapper.svelte | 4 +- src/lib/components/TooltipWrapper.svelte | 4 +- 5 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 docs/dev-notes/2026-10-18/lucide-deprecated-icon-aliases/plan.md diff --git a/docs/dev-notes/2026-10-18/lucide-deprecated-icon-aliases/plan.md b/docs/dev-notes/2026-10-18/lucide-deprecated-icon-aliases/plan.md new file mode 100644 index 000000000..957068387 --- /dev/null +++ b/docs/dev-notes/2026-10-18/lucide-deprecated-icon-aliases/plan.md @@ -0,0 +1,57 @@ +# @lucide/svelte の非推奨アイコン別名を推奨名へ置き換える + +## 概要 + +[upstream-pr-review/plan.md](../../2026-06-28/upstream-pr-review/plan.md) の宿題11を解消する。 +@lucide/svelte 1.59.0 で、使用中の `circle-help` と `trash-2` は推奨名を re-export するだけの非推奨別名になっている。次のメジャーで別名が削除されるとビルドエラーになるため、先に import を推奨名へ置き換える。 +`#4186`(`user_edit.spec.ts` の修正)とは別のブランチ・PR にする。ブランチは `origin/staging`(`395a5424`)から切る。 + +## 変更内容 + +| 旧(非推奨別名) | 新(推奨名) | ファイル | +| ---------------------------------------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `CircleHelp` from `@lucide/svelte/icons/circle-help` | `CircleQuestionMark` from `@lucide/svelte/icons/circle-question-mark` | `src/lib/components/LabelWithTooltips.svelte`・`src/lib/components/TooltipWrapper.svelte`・`src/lib/components/Tabs/TabItemWrapper.svelte` | +| `Trash2` from `@lucide/svelte/icons/trash-2` | `Trash` from `@lucide/svelte/icons/trash` | `src/features/workbooks/components/detail/WorkBookTasksTable.svelte` | + +- 各ファイルで、import 文とテンプレート内のコンポーネント名の2か所を置き換える。props(`class`・`id`)は変えない。 +- 別名は推奨名のコンポーネントをそのまま re-export しているため、描画される SVG は変わらない。 + +## 設計判断 + +- **import 名も推奨名に揃える:** パスだけ変えて `CircleHelp` という名前を残すと、grep したときに非推奨名が残っているように見えるため。 +- **テストは追加しない:** 分岐のない置き換えで、描画も変わらない。既存の unit test・`pnpm check`・build で、import の解決と型を確かめる。 +- **非推奨別名を検出する lint ルールは追加しない:** 該当は今回の4ファイルだけで、新しい別名は Renovate PR のレビュー(注意事項9の手順)で拾えるため(YAGNI)。 + +## 採用しなかった案 + +- **次のメジャーまで待つ:** ビルドエラーになってから直すことになり、メジャー更新の PR に無関係な変更が混ざる。 +- **`@lucide/svelte` の barrel から名前付き import に変える:** 現行の29か所すべてがサブパス import で、tree-shaking の前提も変わるため。 + +## フェーズ + +### Phase 1: ブランチの作成 + +```bash +git switch -c <ブランチ名> origin/staging +``` + +### Phase 2: 4ファイルの置き換え + +上の表のとおりに置き換える。 + +### Phase 3: 検証 + +```bash +rg -n "circle-help|trash-2|CircleHelp|Trash2" src e2e # 0 件 +pnpm format && pnpm lint && pnpm check +pnpm test:unit +pnpm build +git diff --check +``` + +- 置き換えた4コンポーネントのアイコンが表示されることを、dev サーバーで目視確認する(ツールチップのアイコン、タブのヘルプアイコン、問題集編集の削除ボタン)。 + +### Phase 4: 記録 + +- [upstream-pr-review/plan.md](../../2026-06-28/upstream-pr-review/plan.md) の宿題11を削除し、注意事項9の追記と台帳 #4185 の行に、置き換えが済んだことを書き足す。 +- 本計画を完了記録に書き直す。 diff --git a/src/features/workbooks/components/detail/WorkBookTasksTable.svelte b/src/features/workbooks/components/detail/WorkBookTasksTable.svelte index 342c45730..cfbdcd86e 100644 --- a/src/features/workbooks/components/detail/WorkBookTasksTable.svelte +++ b/src/features/workbooks/components/detail/WorkBookTasksTable.svelte @@ -9,7 +9,7 @@ TableHead, TableHeadCell, } from 'flowbite-svelte'; - import Trash2 from '@lucide/svelte/icons/trash-2'; + import Trash from '@lucide/svelte/icons/trash'; import GradeLabel from '$lib/components/GradeLabel.svelte'; import ExternalLinkWrapper from '$lib/components/ExternalLinkWrapper.svelte'; @@ -238,7 +238,7 @@ }} disabled={isDeleting} > - + 削除 diff --git a/src/lib/components/LabelWithTooltips.svelte b/src/lib/components/LabelWithTooltips.svelte index e9d39933c..33a7bc636 100644 --- a/src/lib/components/LabelWithTooltips.svelte +++ b/src/lib/components/LabelWithTooltips.svelte @@ -1,6 +1,6 @@