fix(ui): add dark mode styles to amber warning boxes app-wide
Amber alert boxes were missing dark: variants, rendering as muddy dark-orange in dark mode with near-unreadable text. Fixed in: - VacationClient (Pending Approvals banner) - VacationModal (conflict warning) - ResourceDetail (load error) - SkillMatrixUpload (replace warning) - AllocationModal (open demand toggle) - ProjectWizard (budget bar, post-creation warnings) Pattern: bg-amber-50 → dark:bg-amber-950/30, border-amber-200 → dark:border-amber-800, text-amber-7/800 → dark:text-amber-300/400 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -291,7 +291,7 @@ export function AllocationModal({ allocation, onClose, onSuccess }: AllocationMo
|
||||
{/* Form */}
|
||||
<form onSubmit={handleSubmit} className="px-6 py-5 space-y-4">
|
||||
{/* Demand toggle */}
|
||||
<div className="flex items-center gap-3 p-3 bg-amber-50 border border-amber-200 rounded-lg">
|
||||
<div className="flex items-center gap-3 p-3 bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg">
|
||||
<label className="flex items-center gap-2 text-sm cursor-pointer select-none flex-1">
|
||||
<input
|
||||
type="checkbox"
|
||||
|
||||
@@ -696,7 +696,7 @@ function Step3({ state, onChange }: Step3Props) {
|
||||
const remainingCents = projectBudgetCents - allocatedCents;
|
||||
const pct = projectBudgetCents > 0 ? Math.round((allocatedCents / projectBudgetCents) * 100) : 0;
|
||||
return (
|
||||
<div className={`mb-3 rounded-lg border p-3 text-xs ${remainingCents < 0 ? "bg-red-50 border-red-200 text-red-700" : remainingCents === 0 ? "bg-green-50 border-green-200 text-green-700" : "bg-amber-50 border-amber-200 text-amber-700"}`}>
|
||||
<div className={`mb-3 rounded-lg border p-3 text-xs ${remainingCents < 0 ? "bg-red-50 dark:bg-red-950/30 border-red-200 dark:border-red-800 text-red-700 dark:text-red-400" : remainingCents === 0 ? "bg-green-50 dark:bg-green-950/30 border-green-200 dark:border-green-800 text-green-700 dark:text-green-400" : "bg-amber-50 dark:bg-amber-950/30 border-amber-200 dark:border-amber-800 text-amber-700 dark:text-amber-300"}`}>
|
||||
<div className="flex items-center justify-between mb-1.5">
|
||||
<span className="font-semibold">Budget Allocation</span>
|
||||
<span>{pct}% allocated</span>
|
||||
@@ -1219,12 +1219,12 @@ function Step5({ state, onChange, onSubmit, isSubmitting, submitError, submitWar
|
||||
|
||||
{/* Post-creation warnings */}
|
||||
{submitWarnings.length > 0 && (
|
||||
<div className="px-3 py-2 bg-amber-50 border border-amber-200 rounded-lg text-sm text-amber-800 space-y-1">
|
||||
<div className="px-3 py-2 bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg text-sm text-amber-800 dark:text-amber-300 space-y-1">
|
||||
<p className="font-medium">Project created with warnings:</p>
|
||||
{submitWarnings.map((w, i) => (
|
||||
<p key={i} className="text-xs">{w}</p>
|
||||
))}
|
||||
<p className="text-xs mt-1 text-amber-600">You can fix these staffing items from the project detail page.</p>
|
||||
<p className="text-xs mt-1 text-amber-600 dark:text-amber-400">You can fix these staffing items from the project detail page.</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ export function ResourceDetail({ resourceId }: ResourceDetailProps) {
|
||||
if (error || !resource) {
|
||||
return (
|
||||
<div className="p-6">
|
||||
<div className="bg-amber-50 border border-amber-200 rounded-xl p-6 text-amber-800 text-sm">
|
||||
<div className="bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-xl p-6 text-amber-800 dark:text-amber-300 text-sm">
|
||||
This resource could not be loaded right now.{" "}
|
||||
<Link href="/resources" className="underline">Back to resources</Link>
|
||||
</div>
|
||||
|
||||
@@ -185,7 +185,7 @@ export function SkillMatrixUpload({ resourceId, isOwner, onClose, onSuccess }: P
|
||||
</p>
|
||||
)}
|
||||
|
||||
<p className="text-xs text-amber-700 bg-amber-50 border border-amber-200 rounded-lg px-3 py-2">
|
||||
<p className="text-xs text-amber-700 dark:text-amber-300 bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg px-3 py-2">
|
||||
This will <strong>replace all existing skills</strong> for this resource.
|
||||
</p>
|
||||
|
||||
|
||||
@@ -179,19 +179,19 @@ export function VacationClient() {
|
||||
<>
|
||||
{/* Pending approvals (manager view) */}
|
||||
{pendingList.length > 0 && (
|
||||
<div className="bg-amber-50 border border-amber-200 rounded-xl p-4">
|
||||
<div className="bg-amber-50 dark:bg-gray-800 border border-amber-200 dark:border-amber-700/50 rounded-xl p-4">
|
||||
<div className="flex items-center justify-between mb-3">
|
||||
<h2 className="text-sm font-semibold text-amber-800">
|
||||
<h2 className="text-sm font-semibold text-amber-800 dark:text-amber-400">
|
||||
Pending Approvals ({pendingList.length})
|
||||
</h2>
|
||||
{/* Batch controls */}
|
||||
<div className="flex items-center gap-2">
|
||||
<label className="flex items-center gap-1.5 text-xs text-amber-700 cursor-pointer">
|
||||
<label className="flex items-center gap-1.5 text-xs text-amber-700 dark:text-amber-400 cursor-pointer">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={allPendingSelected}
|
||||
onChange={toggleSelectAll}
|
||||
className="rounded border-amber-300 text-amber-600"
|
||||
className="rounded border-amber-300 dark:border-amber-600 text-amber-600"
|
||||
/>
|
||||
Select all
|
||||
</label>
|
||||
|
||||
@@ -317,7 +317,7 @@ export function VacationModal({ resourceId: initialResourceId, onClose, onSucces
|
||||
|
||||
{/* Conflict warning */}
|
||||
{existingVacations && existingVacations.length > 0 && (
|
||||
<div className="rounded-lg bg-amber-50 border border-amber-200 px-4 py-3 text-sm text-amber-700">
|
||||
<div className="rounded-lg bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 px-4 py-3 text-sm text-amber-700 dark:text-amber-300">
|
||||
<strong>Existing vacation in this period:</strong>
|
||||
<ul className="mt-1 space-y-0.5">
|
||||
{existingVacations.map((v) => (
|
||||
|
||||
Reference in New Issue
Block a user