Skip to content

Commit 500a98b

Browse files
committed
refactor(ui): restyle adopt page to match the sync page
- Add a visual pipeline (Agents target -> Adopt -> Source) with the same hand-drawn wavy connectors and pill stages the sync page uses - Move the primary action into a centered control card with a status summary line (N adoptable / M conflicts), mirroring sync's stat parts - Replace the dry-run/force checkboxes with a SplitButton: primary Adopt, with Preview (dry run) and Force adopt in the dropdown, matching sync's action affordance. Conflicting skills are now always selectable but default off; plain Adopt skips them, Force adopt overwrites - Show the all-managed state inline in the control card instead of a separate empty card - Add adopt.pipeline.*, adopt.stat.*, adopt.button.forceAdopt keys across all 11 locales
1 parent fb42bb1 commit 500a98b

16 files changed

Lines changed: 317 additions & 117 deletions

File tree

ui/src/components/Layout.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
FolderPlus,
88
RefreshCw,
99
ArrowDownToLine,
10-
PackagePlus,
1110
Archive,
1211
Trash2,
1312
GitBranch,
@@ -69,7 +68,6 @@ const navGroups: NavGroup[] = [
6968
items: [
7069
{ to: '/sync', icon: RefreshCw, labelKey: 'layout.nav.sync' },
7170
{ to: '/collect', icon: ArrowDownToLine, labelKey: 'layout.nav.collect' },
72-
{ to: '/adopt', icon: PackagePlus, labelKey: 'layout.nav.adopt' },
7371
{ to: '/install', icon: Download, labelKey: 'layout.nav.install' },
7472
{ to: '/update', icon: ArrowUpCircle, labelKey: 'layout.nav.update' },
7573
{ to: '/uninstall', icon: Trash2, labelKey: 'layout.nav.uninstall' },

ui/src/i18n/locales/de.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "Übernehme...",
77
"adopt.button.adoptCount": "{count} übernehmen",
88
"adopt.button.previewCount": "{count} in Vorschau",
9+
"adopt.button.forceAdopt": "{count} erzwungen übernehmen",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "Übernehmen",
12+
"adopt.pipeline.source": "Quelle",
13+
"adopt.stat.adoptable": "übernehmbar",
14+
"adopt.stat.conflicts": "Konflikte",
915
"adopt.control.dryRun": "Probelauf (nur Vorschau, keine Änderungen)",
1016
"adopt.control.force": "Erzwingen (vorhandene in der Quelle überschreiben)",
1117
"adopt.empty.title": "Nichts zu übernehmen",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "Neueste:",
482488
"doctor.version.title": "Version",
483489
"doctor.version.updateAvailable": "Update verfügbar",
490+
"doctor.adopt.title": "Externe CLI-Skills",
491+
"doctor.adopt.badge": "Reparieren",
492+
"doctor.adopt.description": "Öffne eine Adopt-Vorschau, wenn eine andere CLI Skills im agents-Ziel abgelegt hat und skillshare sie übernehmen soll.",
493+
"doctor.adopt.action": "Adopt öffnen",
484494
"extras.addExtra": "Extra hinzufügen",
485495
"extras.addExtraTitle": "Extra hinzufügen",
486496
"extras.addTarget": "Ziel hinzufügen",

ui/src/i18n/locales/en.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,12 @@
446446
"adopt.button.applying": "Adopting...",
447447
"adopt.button.adoptCount": "Adopt {count}",
448448
"adopt.button.previewCount": "Preview {count}",
449+
"adopt.button.forceAdopt": "Force adopt {count}",
450+
"adopt.pipeline.agents": "Agents",
451+
"adopt.pipeline.engine": "Adopt",
452+
"adopt.pipeline.source": "Source",
453+
"adopt.stat.adoptable": "adoptable",
454+
"adopt.stat.conflicts": "conflicts",
449455
"adopt.control.dryRun": "Dry run (preview only, no changes)",
450456
"adopt.control.force": "Force (overwrite existing in source)",
451457
"adopt.empty.title": "Nothing to adopt",
@@ -541,6 +547,10 @@
541547
"doctor.version.latest": "Latest:",
542548
"doctor.version.title": "Version",
543549
"doctor.version.updateAvailable": "Update available",
550+
"doctor.adopt.title": "External CLI skills",
551+
"doctor.adopt.badge": "Repair",
552+
"doctor.adopt.description": "Preview Adopt when another CLI has dropped skills into the agents target and you need to bring them under skillshare.",
553+
"doctor.adopt.action": "Open Adopt",
544554
"doctor.skillignore.ignoredSkills": "Ignored Skills",
545555
"doctor.suggestions": "Suggestions",
546556
"doctor.skillignore.patterns": "Patterns",

ui/src/i18n/locales/es.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "Adoptando...",
77
"adopt.button.adoptCount": "Adoptar {count}",
88
"adopt.button.previewCount": "Previsualizar {count}",
9+
"adopt.button.forceAdopt": "Forzar adopción {count}",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "Adoptar",
12+
"adopt.pipeline.source": "Origen",
13+
"adopt.stat.adoptable": "adoptables",
14+
"adopt.stat.conflicts": "conflictos",
915
"adopt.control.dryRun": "Simulación (solo vista previa, sin cambios)",
1016
"adopt.control.force": "Forzar (sobrescribir las existentes en el origen)",
1117
"adopt.empty.title": "Nada que adoptar",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "Más reciente:",
482488
"doctor.version.title": "Versión",
483489
"doctor.version.updateAvailable": "Actualización disponible",
490+
"doctor.adopt.title": "Skills de CLI externas",
491+
"doctor.adopt.badge": "Reparar",
492+
"doctor.adopt.description": "Previsualiza Adopt cuando otra CLI dejó skills en el destino agents y necesitas ponerlas bajo skillshare.",
493+
"doctor.adopt.action": "Abrir Adopt",
484494
"extras.addExtra": "Añadir extra",
485495
"extras.addExtraTitle": "Añadir extra",
486496
"extras.addTarget": "Añadir destino",

ui/src/i18n/locales/fa.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "در حال پذیرش...",
77
"adopt.button.adoptCount": "پذیرش {count}",
88
"adopt.button.previewCount": "پیش‌نمایش {count}",
9+
"adopt.button.forceAdopt": "پذیرش اجباری {count}",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "پذیرش",
12+
"adopt.pipeline.source": "منبع",
13+
"adopt.stat.adoptable": "قابل‌پذیرش",
14+
"adopt.stat.conflicts": "تعارض",
915
"adopt.control.dryRun": "اجرای آزمایشی (فقط پیش‌نمایش، بدون تغییر)",
1016
"adopt.control.force": "اجباری (بازنویسی موارد موجود در منبع)",
1117
"adopt.empty.title": "چیزی برای پذیرش نیست",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "آخرین:",
482488
"doctor.version.title": "نسخه",
483489
"doctor.version.updateAvailable": "به‌روزرسانی موجود است",
490+
"doctor.adopt.title": "Skillهای CLI خارجی",
491+
"doctor.adopt.badge": "ترمیم",
492+
"doctor.adopt.description": "وقتی یک CLI دیگر skills را در هدف agents گذاشته و باید آن‌ها را زیر مدیریت skillshare ببرید، Adopt را پیش‌نمایش کنید.",
493+
"doctor.adopt.action": "باز کردن Adopt",
484494
"extras.addExtra": "افزودن مورد اضافی",
485495
"extras.addExtraTitle": "افزودن مورد اضافی",
486496
"extras.addTarget": "افزودن هدف",

ui/src/i18n/locales/fr.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "Adoption en cours...",
77
"adopt.button.adoptCount": "Adopter {count}",
88
"adopt.button.previewCount": "Aperçu de {count}",
9+
"adopt.button.forceAdopt": "Forcer l'adoption de {count}",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "Adopter",
12+
"adopt.pipeline.source": "Source",
13+
"adopt.stat.adoptable": "adoptables",
14+
"adopt.stat.conflicts": "conflits",
915
"adopt.control.dryRun": "Simulation (aperçu seulement, aucune modification)",
1016
"adopt.control.force": "Forcer (écraser l'existant dans la source)",
1117
"adopt.empty.title": "Rien à adopter",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "Dernière :",
482488
"doctor.version.title": "Version",
483489
"doctor.version.updateAvailable": "Mise à jour disponible",
490+
"doctor.adopt.title": "Skills de CLI externes",
491+
"doctor.adopt.badge": "Réparer",
492+
"doctor.adopt.description": "Prévisualisez Adopt lorsqu'une autre CLI a déposé des skills dans la cible agents et que vous devez les remettre sous skillshare.",
493+
"doctor.adopt.action": "Ouvrir Adopt",
484494
"extras.addExtra": "Ajouter un extra",
485495
"extras.addExtraTitle": "Ajouter un extra",
486496
"extras.addTarget": "Ajouter une cible",

ui/src/i18n/locales/id.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "Mengadopsi...",
77
"adopt.button.adoptCount": "Adopsi {count}",
88
"adopt.button.previewCount": "Pratinjau {count}",
9+
"adopt.button.forceAdopt": "Paksa adopsi {count}",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "Adopsi",
12+
"adopt.pipeline.source": "Source",
13+
"adopt.stat.adoptable": "dapat diadopsi",
14+
"adopt.stat.conflicts": "konflik",
915
"adopt.control.dryRun": "Uji coba (hanya pratinjau, tanpa perubahan)",
1016
"adopt.control.force": "Paksa (timpa yang sudah ada di source)",
1117
"adopt.empty.title": "Tidak ada yang perlu diadopsi",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "Terbaru:",
482488
"doctor.version.title": "Versi",
483489
"doctor.version.updateAvailable": "Pembaruan tersedia",
490+
"doctor.adopt.title": "Skill CLI eksternal",
491+
"doctor.adopt.badge": "Perbaiki",
492+
"doctor.adopt.description": "Pratinjau Adopt saat CLI lain menaruh skill di target agents dan Anda perlu membawanya ke pengelolaan skillshare.",
493+
"doctor.adopt.action": "Buka Adopt",
484494
"extras.addExtra": "Tambah Extra",
485495
"extras.addExtraTitle": "Tambah Extra",
486496
"extras.addTarget": "Tambah Target",

ui/src/i18n/locales/ja.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "取り込み中...",
77
"adopt.button.adoptCount": "{count} 件を取り込む",
88
"adopt.button.previewCount": "{count} 件をプレビュー",
9+
"adopt.button.forceAdopt": "{count} 件を強制取り込み",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "取り込み",
12+
"adopt.pipeline.source": "Source",
13+
"adopt.stat.adoptable": "取り込み可能",
14+
"adopt.stat.conflicts": "競合",
915
"adopt.control.dryRun": "ドライラン(プレビューのみ、変更なし)",
1016
"adopt.control.force": "強制(source の既存を上書き)",
1117
"adopt.empty.title": "取り込み対象なし",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "最新:",
482488
"doctor.version.title": "バージョン",
483489
"doctor.version.updateAvailable": "更新あり",
490+
"doctor.adopt.title": "外部 CLI スキル",
491+
"doctor.adopt.badge": "修復",
492+
"doctor.adopt.description": "別の CLI が agents ターゲットにスキルを配置し、skillshare 管理へ戻す必要がある場合は Adopt をプレビューします。",
493+
"doctor.adopt.action": "Adopt を開く",
484494
"extras.addExtra": "Extra を追加",
485495
"extras.addExtraTitle": "Extra を追加",
486496
"extras.addTarget": "ターゲットを追加",

ui/src/i18n/locales/ko.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "가져오는 중...",
77
"adopt.button.adoptCount": "{count}개 가져오기",
88
"adopt.button.previewCount": "{count}개 미리보기",
9+
"adopt.button.forceAdopt": "{count}개 강제 가져오기",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "가져오기",
12+
"adopt.pipeline.source": "소스",
13+
"adopt.stat.adoptable": "가져올 수 있음",
14+
"adopt.stat.conflicts": "충돌",
915
"adopt.control.dryRun": "시험 실행 (미리보기만, 변경 없음)",
1016
"adopt.control.force": "강제 (소스의 기존 항목 덮어쓰기)",
1117
"adopt.empty.title": "가져올 항목 없음",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "최신:",
482488
"doctor.version.title": "버전",
483489
"doctor.version.updateAvailable": "업데이트 가능",
490+
"doctor.adopt.title": "외부 CLI Skills",
491+
"doctor.adopt.badge": "복구",
492+
"doctor.adopt.description": "다른 CLI가 agents 대상에 skills를 넣었고 skillshare 관리로 가져와야 할 때 Adopt를 미리 확인합니다.",
493+
"doctor.adopt.action": "Adopt 열기",
484494
"extras.addExtra": "Extra 추가",
485495
"extras.addExtraTitle": "Extra 추가",
486496
"extras.addTarget": "대상 추가",

ui/src/i18n/locales/pt-BR.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66
"adopt.button.applying": "Adotando...",
77
"adopt.button.adoptCount": "Adotar {count}",
88
"adopt.button.previewCount": "Pré-visualizar {count}",
9+
"adopt.button.forceAdopt": "Forçar adoção de {count}",
10+
"adopt.pipeline.agents": "Agents",
11+
"adopt.pipeline.engine": "Adotar",
12+
"adopt.pipeline.source": "Source",
13+
"adopt.stat.adoptable": "adotáveis",
14+
"adopt.stat.conflicts": "conflitos",
915
"adopt.control.dryRun": "Simulação (apenas pré-visualização, sem alterações)",
1016
"adopt.control.force": "Forçar (sobrescrever existentes no source)",
1117
"adopt.empty.title": "Nada para adotar",
@@ -481,6 +487,10 @@
481487
"doctor.version.latest": "Mais recente:",
482488
"doctor.version.title": "Versão",
483489
"doctor.version.updateAvailable": "Atualização disponível",
490+
"doctor.adopt.title": "Skills de CLIs externas",
491+
"doctor.adopt.badge": "Reparar",
492+
"doctor.adopt.description": "Pré-visualize Adopt quando outra CLI colocou skills no alvo agents e você precisa trazê-las para o skillshare.",
493+
"doctor.adopt.action": "Abrir Adopt",
484494
"extras.addExtra": "Adicionar Extra",
485495
"extras.addExtraTitle": "Adicionar Extra",
486496
"extras.addTarget": "Adicionar Destino",

0 commit comments

Comments
 (0)