diff --git a/web-ui/app/_components/AgentUnavailableBanner.tsx b/web-ui/app/_components/AgentUnavailableBanner.tsx index ef4c6dc08..7de7cc735 100644 --- a/web-ui/app/_components/AgentUnavailableBanner.tsx +++ b/web-ui/app/_components/AgentUnavailableBanner.tsx @@ -78,6 +78,7 @@ export function AgentUnavailableBanner(

{error}

)}
+ {/* eslint-disable-next-line no-restricted-syntax -- warning-outline action; §10 has no warning variant */} + {/* eslint-disable-next-line no-restricted-syntax -- bespoke filled danger (bg-elevated); §4.2 danger variant is transparent */}
+ {/* eslint-disable-next-line no-restricted-syntax -- justify-between menu row with bespoke spinner, not a §4.2 CTA */} +
@@ -349,6 +351,7 @@ function Tab({ )} {canClose && !editing && ( + // eslint-disable-next-line no-restricted-syntax -- icon-only chrome (× close glyph) + {t('connectGithub')} + )} @@ -505,6 +510,7 @@ export function CreateIssueButton(): React.ReactElement {
{(['edit', 'preview'] as const).map((tab) => ( + // eslint-disable-next-line no-restricted-syntax -- segmented tab selector (edit/preview), not a §4.2 Button candidate - + {t('reformulate')} + )} {step === 'preview' && ( <> - - + {t('create')} + )} {step === 'done' && ( <> - - + + )}
@@ -668,6 +667,7 @@ export function CreateIssueButton(): React.ReactElement { return ( <> + {/* eslint-disable-next-line no-restricted-syntax -- icon-only header trigger (GitHub glyph), not a §4.2 Button candidate */} + {/* eslint-disable-next-line no-restricted-syntax -- icon-only chrome (× close glyph) */} + {/* eslint-disable-next-line no-restricted-syntax -- icon-only chrome (× close glyph) */} + {/* eslint-disable-next-line no-restricted-syntax -- bespoke bordered dismiss (paper/ink palette + uppercase tracking), not §4.2 secondary */} + )} {showWhy && !alreadyAcked && ( - + )} {alreadyAcked && ( @@ -254,13 +255,9 @@ export function SkillEditor({ pending={pending} label={willFork ? t('editor.forkAndSave') : t('editor.save')} /> - + ); diff --git a/web-ui/app/_components/admin/SkillImportModal.tsx b/web-ui/app/_components/admin/SkillImportModal.tsx index b262ee2f5..00c3f2bc8 100644 --- a/web-ui/app/_components/admin/SkillImportModal.tsx +++ b/web-ui/app/_components/admin/SkillImportModal.tsx @@ -9,6 +9,7 @@ import { type SkillImportResult, } from '../../_lib/agentBuilder'; import { supportDetail } from '../../_lib/scanFailure'; +import { Button } from '../ui/Button'; /** * Import a SKILL.md (paste or file) into the skills registry. Shows a dry-run @@ -77,6 +78,7 @@ export function SkillImportModal({

{t('title')}

{t('hint')}

+ {/* eslint-disable-next-line no-restricted-syntax -- bespoke dashed file-dropzone affordance, not a §4.2 Button variant */} + {!preview ? ( - + ) : ( - + )} diff --git a/web-ui/app/_components/admin/SkillsRegistry.tsx b/web-ui/app/_components/admin/SkillsRegistry.tsx index 96cf98df0..2c31ecfc7 100644 --- a/web-ui/app/_components/admin/SkillsRegistry.tsx +++ b/web-ui/app/_components/admin/SkillsRegistry.tsx @@ -13,6 +13,7 @@ import { type SkillResource, type SkillVerdictSeverity, } from '../../_lib/agentBuilder'; +import { Button } from '../ui/Button'; import { SkillEditor } from './SkillEditor'; import { SkillImportModal } from './SkillImportModal'; import { SKILL_VERDICT_LABEL_KEY, SkillVerdictBadge } from './SkillVerdictBadge'; @@ -142,13 +143,9 @@ export function SkillsRegistry({ ))} - + {filtered.length === 0 ? (

{t('empty')}

@@ -156,6 +153,7 @@ export function SkillsRegistry({