feat: Client Portal redesign to Quiet Luxury + milestone stepper
- New MilestoneStepper primitive (horizontal per-phase progress) - Token-migrate portal shell, phase cards, sidebar cards, kanban to dual-theme - Soft-tint status pills (emerald/amber/muted) replacing solid badges - embedded prop on ClientDashboard fixes double-header in multi-project tabs Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
import type { ClientView } from '@/lib/client-view';
|
||||
import { Card } from '@/components/ui/card';
|
||||
|
||||
interface NotesSectionProps {
|
||||
notes: ClientView['notes'];
|
||||
@@ -8,7 +7,7 @@ interface NotesSectionProps {
|
||||
export function NotesSection({ notes }: NotesSectionProps) {
|
||||
if (notes.length === 0) {
|
||||
return (
|
||||
<p className="text-sm text-[#999999] italic">
|
||||
<p className="text-sm text-muted-foreground italic">
|
||||
Nessuna nota ancora registrata. Le decisioni appariranno qui man mano che il progetto avanza.
|
||||
</p>
|
||||
);
|
||||
@@ -28,20 +27,20 @@ export function NotesSection({ notes }: NotesSectionProps) {
|
||||
});
|
||||
|
||||
return (
|
||||
<Card
|
||||
<div
|
||||
key={note.id}
|
||||
className="rounded-lg border border-[#e5e5e5] bg-white shadow-none p-5"
|
||||
className="rounded-xl border border-border-light bg-card shadow-card p-5"
|
||||
>
|
||||
{/* Testo nota — sola lettura (D-12: admin scrive, cliente legge) */}
|
||||
<p className="text-sm text-[#1a1a1a] leading-relaxed whitespace-pre-wrap">
|
||||
<p className="text-xs text-foreground leading-relaxed whitespace-pre-wrap">
|
||||
{note.body}
|
||||
</p>
|
||||
|
||||
{/* Timestamp */}
|
||||
<p className="text-xs text-[#999999] mt-3">
|
||||
<p className="text-[11px] text-muted-foreground mt-3">
|
||||
{dateFormatted} alle {timeFormatted}
|
||||
</p>
|
||||
</Card>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user