fix: migrate 11 remaining files missed by component sweep

editor-ai, guides, maintenance, scripts, settings, NavItem,
and dashboard active-glow removal.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Michael Chihlas
2026-03-22 02:26:25 -04:00
parent 756f78a1a9
commit 6ec05757a7
11 changed files with 17 additions and 20 deletions

View File

@@ -70,10 +70,7 @@ export function PerformanceCards() {
<button <button
key={card.label} key={card.label}
onClick={() => navigate(card.href)} onClick={() => navigate(card.href)}
className={cn( className="card-interactive p-4 text-left fade-in"
'card-interactive p-4 text-left fade-in',
i === 0 && 'active-glow'
)}
style={{ animationDelay: `${400 + i * 60}ms` }} style={{ animationDelay: `${400 + i * 60}ms` }}
> >
<div className="flex items-center justify-between mb-2"> <div className="flex items-center justify-between mb-2">

View File

@@ -18,7 +18,7 @@ export function QuickStats({ stats }: QuickStatsProps) {
{stats.map((stat, i) => ( {stats.map((stat, i) => (
<div <div
key={stat.label} key={stat.label}
className={cn('card-interactive p-4 fade-in', i === 0 && 'active-glow')} className={cn('card-interactive p-4 fade-in')}
style={{ animationDelay: `${50 + i * 30}ms` }} style={{ animationDelay: `${50 + i * 30}ms` }}
> >
<p className="font-sans text-xs text-[0.625rem] font-medium uppercase tracking-widest text-[#848b9b]"> <p className="font-sans text-xs text-[0.625rem] font-medium uppercase tracking-widest text-[#848b9b]">

View File

@@ -50,7 +50,7 @@ export function AIPromptDialog({
/> />
{/* Dialog */} {/* Dialog */}
<div className="glass-card-static relative w-full max-w-lg p-6 shadow-xl"> <div className="card-flat relative w-full max-w-lg p-6 shadow-xl">
<div className="flex items-center gap-2 mb-4"> <div className="flex items-center gap-2 mb-4">
<Sparkles className="h-5 w-5 text-primary" /> <Sparkles className="h-5 w-5 text-primary" />
<h2 className="text-lg font-heading font-semibold text-foreground"> <h2 className="text-lg font-heading font-semibold text-foreground">
@@ -90,7 +90,7 @@ export function AIPromptDialog({
<button <button
onClick={handleGenerate} onClick={handleGenerate}
disabled={!prompt.trim() || isGenerating} disabled={!prompt.trim() || isGenerating}
className="flex items-center gap-2 rounded-[10px] bg-gradient-brand px-4 py-2 text-sm font-semibold text-brand-dark shadow-lg shadow-primary/20 hover:opacity-90 active:scale-[0.97] transition-all disabled:opacity-50" className="flex items-center gap-2 rounded-lg bg-[#22d3ee] px-4 py-2 text-sm font-semibold text-white hover:brightness-110 active:scale-[0.98] transition-all disabled:opacity-50"
> >
{isGenerating ? ( {isGenerating ? (
<> <>

View File

@@ -84,7 +84,7 @@ export function ChatTab({ messages, input, onInputChange, onSend, isLoading }: C
<button <button
onClick={onSend} onClick={onSend}
disabled={!input.trim() || isLoading} disabled={!input.trim() || isLoading}
className="bg-gradient-brand text-brand-dark p-2.5 rounded-xl hover:opacity-90 active:scale-[0.97] transition-all disabled:opacity-40" className="bg-[#22d3ee] text-white p-2.5 rounded-xl hover:brightness-110 active:scale-[0.98] transition-all disabled:opacity-40"
> >
<Send size={16} /> <Send size={16} />
</button> </button>

View File

@@ -11,7 +11,7 @@ export function GuideCard({ guide }: GuideCardProps) {
return ( return (
<Link <Link
to={`/guides/${guide.slug}`} to={`/guides/${guide.slug}`}
className="glass-card block rounded-2xl p-5 transition-all" className="card-interactive block rounded-lg p-5 transition-all"
> >
<div className="flex items-start gap-3.5"> <div className="flex items-start gap-3.5">
<div className="flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-primary/10"> <div className="flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-primary/10">

View File

@@ -48,7 +48,7 @@ export function NavItem({ href, icon: Icon, label, badge, iconColor, matchPaths,
title={label} title={label}
> >
{isActive && ( {isActive && (
<div className="absolute left-0 top-1/2 h-6 w-[3px] -translate-y-1/2 rounded-r-full bg-gradient-brand" /> <div className="absolute left-0 top-1/2 h-6 w-[3px] -translate-y-1/2 rounded-r-full bg-[#22d3ee]" />
)} )}
<Icon size={18} className={cn('shrink-0', isActive ? 'opacity-100' : 'opacity-70')} style={iconColor ? { color: iconColor } : undefined} /> <Icon size={18} className={cn('shrink-0', isActive ? 'opacity-100' : 'opacity-70')} style={iconColor ? { color: iconColor } : undefined} />
{badge !== undefined && badge !== 0 && badge !== 'dot' && ( {badge !== undefined && badge !== 0 && badge !== 'dot' && (
@@ -76,7 +76,7 @@ export function NavItem({ href, icon: Icon, label, badge, iconColor, matchPaths,
> >
{/* Active indicator bar */} {/* Active indicator bar */}
{isActive && !isParentDimmed && ( {isActive && !isParentDimmed && (
<div className="absolute left-0 top-1/2 h-6 w-[3px] -translate-y-1/2 rounded-r-full bg-gradient-brand" /> <div className="absolute left-0 top-1/2 h-6 w-[3px] -translate-y-1/2 rounded-r-full bg-[#22d3ee]" />
)} )}
<Icon size={18} className={cn('shrink-0', isActive ? 'opacity-100' : 'opacity-70')} style={iconColor ? { color: iconColor } : undefined} /> <Icon size={18} className={cn('shrink-0', isActive ? 'opacity-100' : 'opacity-70')} style={iconColor ? { color: iconColor } : undefined} />

View File

@@ -192,7 +192,7 @@ export function BatchLaunchModal({ treeId, treeName, onClose, onLaunched }: Batc
<button <button
onClick={handleLaunch} onClick={handleLaunch}
disabled={isLaunching || targets.length === 0} disabled={isLaunching || targets.length === 0}
className="rounded-lg bg-gradient-brand px-4 py-2 text-[0.875rem] font-medium text-white shadow-lg shadow-primary/20 hover:opacity-90 disabled:opacity-50" className="rounded-lg bg-[#22d3ee] px-4 py-2 text-[0.875rem] font-medium text-white hover:brightness-110 disabled:opacity-50"
> >
{isLaunching ? 'Launching\u2026' : targets.length > 0 ? `Launch ${targets.length} Sessions` : 'Launch'} {isLaunching ? 'Launching\u2026' : targets.length > 0 ? `Launch ${targets.length} Sessions` : 'Launch'}
</button> </button>

View File

@@ -132,7 +132,7 @@ export function BatchStatusCard({ session, targetLabel, treeId, batchId }: Batch
{isNotStarted && ( {isNotStarted && (
<button <button
onClick={handleStart} onClick={handleStart}
className="flex items-center gap-1.5 rounded-lg bg-gradient-brand px-3 py-1.5 text-[0.8125rem] font-medium text-white shadow-xs shadow-primary/20 hover:opacity-90 transition-opacity" className="flex items-center gap-1.5 rounded-lg bg-[#22d3ee] px-3 py-1.5 text-[0.8125rem] font-medium text-white hover:brightness-110 transition-opacity"
> >
<Play className="h-3.5 w-3.5" /> <Play className="h-3.5 w-3.5" />
Start Start

View File

@@ -54,7 +54,7 @@ export function ScriptConfigurePane({ canGenerate, onBack }: Props) {
// Loading state // Loading state
if (isLoadingDetail) { if (isLoadingDetail) {
return ( return (
<div className="glass-card-static h-full flex flex-col p-4 overflow-y-auto"> <div className="card-flat h-full flex flex-col p-4 overflow-y-auto">
<button <button
type="button" type="button"
onClick={onBack} onClick={onBack}
@@ -73,7 +73,7 @@ export function ScriptConfigurePane({ canGenerate, onBack }: Props) {
// First-selection failure state // First-selection failure state
if (!selectedTemplate) { if (!selectedTemplate) {
return ( return (
<div className="glass-card-static h-full flex flex-col p-4 overflow-y-auto"> <div className="card-flat h-full flex flex-col p-4 overflow-y-auto">
<button <button
type="button" type="button"
onClick={onBack} onClick={onBack}
@@ -95,7 +95,7 @@ export function ScriptConfigurePane({ canGenerate, onBack }: Props) {
const extraTagCount = selectedTemplate.tags.length - 3 const extraTagCount = selectedTemplate.tags.length - 3
return ( return (
<div className="glass-card-static h-full flex flex-col p-4 overflow-y-auto"> <div className="card-flat h-full flex flex-col p-4 overflow-y-auto">
{/* Back button */} {/* Back button */}
<button <button
type="button" type="button"
@@ -171,7 +171,7 @@ export function ScriptConfigurePane({ canGenerate, onBack }: Props) {
type="button" type="button"
onClick={() => generate()} onClick={() => generate()}
disabled={isGenerating || !canGenerate} disabled={isGenerating || !canGenerate}
className="w-full flex items-center justify-center gap-1.5 bg-gradient-brand text-[#101114] font-semibold text-sm px-4 py-2 rounded-[10px] hover:opacity-90 active:scale-[0.97] transition-all shadow-lg shadow-primary/20 disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100" className="w-full flex items-center justify-center gap-1.5 bg-[#22d3ee] text-white font-semibold text-sm px-4 py-2 rounded-lg hover:brightness-110 active:scale-[0.98] transition-all disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100"
> >
{isGenerating && <Loader2 size={14} className="animate-spin" />} {isGenerating && <Loader2 size={14} className="animate-spin" />}
Generate Script Generate Script

View File

@@ -227,7 +227,7 @@ export function SessionFilters({ filters, onChange, onClear, trees }: SessionFil
setShowDatePicker(false) setShowDatePicker(false)
}} }}
className={cn( className={cn(
'flex-1 rounded-md bg-gradient-brand px-3 py-1.5 text-sm font-medium text-white shadow-lg shadow-primary/20', 'flex-1 rounded-md bg-[#22d3ee] px-3 py-1.5 text-sm font-medium text-white',
'hover:brightness-110' 'hover:brightness-110'
)} )}
> >

View File

@@ -112,7 +112,7 @@ export function BrandingSettings({ teamId }: BrandingSettingsProps) {
if (isLoading) { if (isLoading) {
return ( return (
<div className="glass-card-static p-4 sm:p-6"> <div className="card-flat p-4 sm:p-6">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Palette className="h-5 w-5 text-muted-foreground" /> <Palette className="h-5 w-5 text-muted-foreground" />
<h2 className="text-lg font-semibold text-foreground">Branding</h2> <h2 className="text-lg font-semibold text-foreground">Branding</h2>
@@ -127,7 +127,7 @@ export function BrandingSettings({ teamId }: BrandingSettingsProps) {
const hasChanges = companyName !== (branding?.company_display_name || '') || logoFile !== null const hasChanges = companyName !== (branding?.company_display_name || '') || logoFile !== null
return ( return (
<div className="glass-card-static p-4 sm:p-6"> <div className="card-flat p-4 sm:p-6">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Palette className="h-5 w-5 text-muted-foreground" /> <Palette className="h-5 w-5 text-muted-foreground" />
<h2 className="text-lg font-semibold text-foreground">Branding</h2> <h2 className="text-lg font-semibold text-foreground">Branding</h2>