fix: Blueprint list dark theme — target badges and sidebar categories
- PROJECT badge: dark:bg-purple-900/40 dark:text-purple-300 - RESOURCE badge: dark:bg-blue-900/40 dark:text-blue-300 - Global badge: dark:bg-amber-900/40 dark:text-amber-300 - Table rows: dark:hover:bg-gray-800/50, dark:border-gray-700/50 - Blueprint name: dark:text-gray-100 - Field/preset counts: dark:text-gray-400 - Sidebar category buttons in .map(): added missing dark: variants (root cause of persistent white hover backgrounds) Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -440,15 +440,15 @@ export function BlueprintFieldCatalog({
|
|||||||
{/* Search + category sidebar layout */}
|
{/* Search + category sidebar layout */}
|
||||||
<div className="flex flex-1 overflow-hidden">
|
<div className="flex flex-1 overflow-hidden">
|
||||||
{/* Category sidebar */}
|
{/* Category sidebar */}
|
||||||
<div className="w-48 shrink-0 border-r border-gray-200 dark:border-gray-700 bg-gray-50/50 dark:bg-slate-800/80 overflow-y-auto hidden md:block">
|
<div className="w-48 shrink-0 border-r border-gray-200 dark:border-gray-700 bg-gray-50/50 dark:bg-gray-900 overflow-y-auto hidden md:block">
|
||||||
<nav className="py-2">
|
<nav className="py-2">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setActiveCategory(null)}
|
onClick={() => setActiveCategory(null)}
|
||||||
className={`w-full text-left px-4 py-2 text-sm transition-colors ${
|
className={`w-full text-left px-4 py-2 text-sm transition-colors ${
|
||||||
activeCategory === null
|
activeCategory === null
|
||||||
? "bg-brand-100 dark:bg-brand-900/60 text-brand-700 dark:text-brand-200 font-medium"
|
? "bg-brand-100 dark:bg-gray-800 text-brand-700 dark:text-brand-400 font-medium border-l-2 border-brand-500"
|
||||||
: "text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700/60"
|
: "text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800/50 border-l-2 border-transparent"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
All Fields
|
All Fields
|
||||||
@@ -472,8 +472,8 @@ export function BlueprintFieldCatalog({
|
|||||||
onClick={() => setActiveCategory(name)}
|
onClick={() => setActiveCategory(name)}
|
||||||
className={`w-full text-left px-4 py-2 text-sm transition-colors ${
|
className={`w-full text-left px-4 py-2 text-sm transition-colors ${
|
||||||
activeCategory === name
|
activeCategory === name
|
||||||
? "bg-brand-50 text-brand-700 font-medium"
|
? "bg-brand-100 dark:bg-gray-800 text-brand-700 dark:text-brand-400 font-medium border-l-2 border-brand-500"
|
||||||
: "text-gray-600 hover:bg-gray-100"
|
: "text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800/50 border-l-2 border-transparent"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<span className="truncate block">{name}</span>
|
<span className="truncate block">{name}</span>
|
||||||
|
|||||||
@@ -369,7 +369,7 @@ export function BlueprintsClient() {
|
|||||||
const isProject = bp.target === "PROJECT";
|
const isProject = bp.target === "PROJECT";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<tr key={bp.id} className="border-b border-gray-100 last:border-b-0 hover:bg-gray-50 transition-colors">
|
<tr key={bp.id} className="border-b border-gray-100 dark:border-gray-700/50 last:border-b-0 hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors">
|
||||||
<td className="px-3 py-3">
|
<td className="px-3 py-3">
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
@@ -380,20 +380,20 @@ export function BlueprintsClient() {
|
|||||||
</td>
|
</td>
|
||||||
<td className="px-3 py-3">
|
<td className="px-3 py-3">
|
||||||
<div className="min-w-0">
|
<div className="min-w-0">
|
||||||
<div className="font-medium text-gray-900">{bp.name}</div>
|
<div className="font-medium text-gray-900 dark:text-gray-100">{bp.name}</div>
|
||||||
{bp.description && <div className="text-xs text-gray-500 mt-0.5 truncate">{bp.description}</div>}
|
{bp.description && <div className="text-xs text-gray-500 mt-0.5 truncate">{bp.description}</div>}
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-3 py-3">
|
<td className="px-3 py-3">
|
||||||
<span className={`inline-block px-2 py-0.5 text-xs rounded-full font-medium ${isProject ? "bg-purple-50 text-purple-700" : "bg-blue-50 text-blue-700"}`}>
|
<span className={`inline-block px-2 py-0.5 text-xs rounded-full font-medium ${isProject ? "bg-purple-50 text-purple-700 dark:bg-purple-900/40 dark:text-purple-300" : "bg-blue-50 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"}`}>
|
||||||
{bp.target}
|
{bp.target}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-3 py-3 text-center text-gray-600">{fieldCount}</td>
|
<td className="px-3 py-3 text-center text-gray-600 dark:text-gray-400">{fieldCount}</td>
|
||||||
<td className="px-3 py-3 text-center text-gray-600">{isProject ? presetCount : "—"}</td>
|
<td className="px-3 py-3 text-center text-gray-600 dark:text-gray-400">{isProject ? presetCount : "—"}</td>
|
||||||
<td className="px-3 py-3 text-center">
|
<td className="px-3 py-3 text-center">
|
||||||
{bp.isGlobal ? (
|
{bp.isGlobal ? (
|
||||||
<span className="inline-block px-2 py-0.5 text-xs rounded-full bg-amber-100 text-amber-700 font-medium">
|
<span className="inline-block px-2 py-0.5 text-xs rounded-full bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300 font-medium">
|
||||||
Global
|
Global
|
||||||
</span>
|
</span>
|
||||||
) : (
|
) : (
|
||||||
|
|||||||
Reference in New Issue
Block a user