diff --git a/apps/web/src/components/dashboard/AddWidgetModal.tsx b/apps/web/src/components/dashboard/AddWidgetModal.tsx index 74fba02..085fe38 100644 --- a/apps/web/src/components/dashboard/AddWidgetModal.tsx +++ b/apps/web/src/components/dashboard/AddWidgetModal.tsx @@ -16,14 +16,14 @@ export function AddWidgetModal({ onAdd, onClose }: AddWidgetModalProps) { if (e.target === e.currentTarget) onClose(); }} > -
+
{/* Header */} -
-

Add Widget

+
+

Add Widget

@@ -40,13 +40,13 @@ export function AddWidgetModal({ onAdd, onClose }: AddWidgetModalProps) { onAdd(def.type); onClose(); }} - className="flex items-start gap-4 p-4 border border-gray-200 rounded-xl hover:border-brand-400 hover:bg-brand-50 transition-colors text-left" + className="flex items-start gap-4 p-4 border border-gray-200 dark:border-gray-700 rounded-xl hover:border-brand-400 hover:bg-brand-50 dark:hover:border-[rgb(var(--accent-500))] dark:hover:bg-[rgb(var(--accent-500)/0.08)] transition-colors text-left" > {def.icon}
-
{def.label}
-
{def.description}
-
+
{def.label}
+
{def.description}
+
Default: {def.defaultSize.w}×{def.defaultSize.h} grid units
diff --git a/apps/web/src/components/dashboard/WidgetContainer.tsx b/apps/web/src/components/dashboard/WidgetContainer.tsx index f40fc62..046aaa7 100644 --- a/apps/web/src/components/dashboard/WidgetContainer.tsx +++ b/apps/web/src/components/dashboard/WidgetContainer.tsx @@ -74,7 +74,7 @@ export function WidgetContainer({ className={`rounded-xl border px-3 py-1.5 text-[11px] font-semibold transition ${ showDetails ? "border-brand-200 bg-brand-50 text-brand-700 hover:bg-brand-100 dark:border-brand-500/30 dark:bg-brand-500/10 dark:text-brand-300" - : "border-gray-200 bg-white/80 text-gray-500 hover:border-gray-300 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-900/70 dark:text-gray-400 dark:hover:text-gray-200" + : "border-gray-200 bg-white/80 text-gray-500 hover:border-gray-300 hover:text-gray-700 dark:border-gray-600/60 dark:bg-[rgb(var(--surface-elevated))] dark:text-gray-400 dark:hover:text-gray-200" }`} title={showDetails ? "Hide details" : "Show details"} > @@ -97,7 +97,7 @@ export function WidgetContainer({
-
+
{children}
diff --git a/apps/web/src/components/dashboard/widgets/PeakTimesChart.tsx b/apps/web/src/components/dashboard/widgets/PeakTimesChart.tsx index 0db0c14..bc8e30e 100644 --- a/apps/web/src/components/dashboard/widgets/PeakTimesChart.tsx +++ b/apps/web/src/components/dashboard/widgets/PeakTimesChart.tsx @@ -97,8 +97,8 @@ export default function PeakTimesChart({ } return ( -
-
+
+
Overall Utilization
@@ -173,15 +173,15 @@ export default function PeakTimesChart({ onClick={() => onSelectedPeriodChange?.(row.period)} style={{ backgroundColor: isPinned - ? "rgba(14, 165, 233, 0.08)" + ? "rgb(var(--accent-400) / 0.12)" : isActive - ? "rgba(148, 163, 184, 0.08)" + ? "rgb(var(--accent-400) / 0.05)" : "transparent", }} >
-
+
(
@@ -329,8 +329,8 @@ export function PeakTimesWidget({ config, onConfigChange }: WidgetProps) {
-
-
+
+
Department Utilization @@ -373,7 +373,7 @@ export function PeakTimesWidget({ config, onConfigChange }: WidgetProps) {
+
No department data in the selected month.
)} diff --git a/apps/web/src/components/dashboard/widgets/StatCardsWidget.tsx b/apps/web/src/components/dashboard/widgets/StatCardsWidget.tsx index 1ad8163..85dd01f 100644 --- a/apps/web/src/components/dashboard/widgets/StatCardsWidget.tsx +++ b/apps/web/src/components/dashboard/widgets/StatCardsWidget.tsx @@ -48,7 +48,7 @@ function StatCard({ return (
@@ -112,7 +112,7 @@ export function StatCardsWidget(props: Partial = {}) { {[...Array(4)].map((_, i) => (
diff --git a/apps/web/src/components/layout/AppShell.tsx b/apps/web/src/components/layout/AppShell.tsx index 312e80f..4585204 100644 --- a/apps/web/src/components/layout/AppShell.tsx +++ b/apps/web/src/components/layout/AppShell.tsx @@ -17,9 +17,13 @@ import { NavProgressBar } from "~/components/ui/NavProgressBar.js"; const SIDEBAR_COLLAPSED_KEY = "capakraken_sidebar_collapsed"; -function IconFrame({ children }: { children: ReactNode }) { +function IconFrame({ children, isActive }: { children: ReactNode; isActive?: boolean }) { return ( - + {children} ); @@ -348,7 +352,7 @@ const NavItemLink = memo(function NavItemLink({ transition={{ type: "spring", stiffness: 350, damping: 30 }} /> )} - {icon} + {icon} {!collapsed && {label}} diff --git a/apps/web/src/components/notifications/NotificationCenterClient.tsx b/apps/web/src/components/notifications/NotificationCenterClient.tsx index 23bc455..48db479 100644 --- a/apps/web/src/components/notifications/NotificationCenterClient.tsx +++ b/apps/web/src/components/notifications/NotificationCenterClient.tsx @@ -245,7 +245,7 @@ export function NotificationCenterClient() { if (isUnread) markRead.mutate({ id: n.id }); }} className={`w-full text-left rounded-xl border border-gray-200 dark:border-gray-700 px-4 py-3 transition-colors hover:bg-gray-50 dark:hover:bg-gray-800 ${ - isUnread ? "bg-blue-50/60 dark:bg-blue-900/10" : "bg-white dark:bg-gray-900/70" + isUnread ? "bg-blue-50/60 dark:bg-blue-900/10" : "bg-white dark:bg-[rgb(var(--surface-elevated))]" }`} >
@@ -320,7 +320,7 @@ export function NotificationCenterClient() { reminders.map((r) => (
diff --git a/apps/web/src/components/notifications/TaskCard.tsx b/apps/web/src/components/notifications/TaskCard.tsx index b7d9c9a..7599147 100644 --- a/apps/web/src/components/notifications/TaskCard.tsx +++ b/apps/web/src/components/notifications/TaskCard.tsx @@ -64,7 +64,7 @@ export function TaskCard({ task, onStatusChange, compact }: TaskCardProps) { ); return ( -
+
{/* Header row */}
diff --git a/apps/web/src/components/reports/ChargeabilityReportClient.tsx b/apps/web/src/components/reports/ChargeabilityReportClient.tsx index 5a48ccf..ec80d37 100644 --- a/apps/web/src/components/reports/ChargeabilityReportClient.tsx +++ b/apps/web/src/components/reports/ChargeabilityReportClient.tsx @@ -539,10 +539,10 @@ export function ChargeabilityReportClient() { return ( setExpandedResource(expandedResource === r.id ? null : r.id)} > - +
{r.displayName}
{[r.eid, formatLocation(r), r.orgUnit].filter(Boolean).join(" · ")} @@ -574,8 +574,8 @@ export function ChargeabilityReportClient() { function renderExpandedRow(r: ResourceRow) { if (expandedResource !== r.id) return null; return ( - - + +
Mgmt: {r.mgmtGroup ?? "—"} / {r.mgmtLevel ?? "—"}
Calendar basis: {formatLocation(r)}
@@ -592,7 +592,7 @@ export function ChargeabilityReportClient() { {r.months.map((m) => ( -
+
{pct(monthChargeabilityRatio(m))} {pct(monthBusinessDevelopmentRatio(m))} {pct(monthMarketDevelopmentInnovationRatio(m))} @@ -629,7 +629,7 @@ export function ChargeabilityReportClient() { ) { const bg = isOverall ? "bg-brand-50/90 dark:bg-brand-900/25" - : "bg-slate-100/90 dark:bg-slate-800/70"; + : "bg-slate-100/90 dark:bg-[rgb(var(--surface-elevated)/0.7)]"; return (
-
+
Location basis
{data.explainability.locationFields.map((field) => ( - + {toTitleLabel(field)} ))}
-
+
Month derivation
{data.explainability.monthDerivationFields.map((field) => ( - + {toTitleLabel(field)} ))}
-
+
Active filters
{data.explainability.activeFilters.length > 0 ? data.explainability.activeFilters.map((field) => ( @@ -879,7 +879,7 @@ export function ChargeabilityReportClient() { {toTitleLabel(field)} )) : ( - + none )} @@ -913,8 +913,8 @@ export function ChargeabilityReportClient() {
- - +
+
Resource FTE