+ {/* Topbar */}
+
+
+ Documento di Soluzione · {header.clientName} · {header.date}
+
+
+ {String(current + 1).padStart(2, "0")} / {String(total).padStart(2, "0")}
+
+
- {/* Contenuto slide */}
-
- {slides[current].component}
-
+ {/* Contenuto slide — riempie esattamente lo spazio tra le due barre fisse */}
+
+ {slides[current].component}
+
- {/* Bottom nav */}
-
);
}
diff --git a/src/components/public/proposal/sections/AcceptSection.tsx b/src/components/public/proposal/sections/AcceptSection.tsx
index c96350d..fb8c57c 100644
--- a/src/components/public/proposal/sections/AcceptSection.tsx
+++ b/src/components/public/proposal/sections/AcceptSection.tsx
@@ -44,7 +44,7 @@ export function AcceptSection({ slug, tiers, header, onAccept, onReject }: Props
}
return (
-
+
Accettazione formale
diff --git a/src/components/public/proposal/sections/ChapterDivider.tsx b/src/components/public/proposal/sections/ChapterDivider.tsx
index fe5d196..c985685 100644
--- a/src/components/public/proposal/sections/ChapterDivider.tsx
+++ b/src/components/public/proposal/sections/ChapterDivider.tsx
@@ -2,7 +2,7 @@ type Props = { number: string; title: string; subtitle: string };
export function ChapterDivider({ number, title, subtitle }: Props) {
return (
-
+
Capitolo
{number}
diff --git a/src/components/public/proposal/sections/ClosingSection.tsx b/src/components/public/proposal/sections/ClosingSection.tsx
index 0a348a7..7febaa9 100644
--- a/src/components/public/proposal/sections/ClosingSection.tsx
+++ b/src/components/public/proposal/sections/ClosingSection.tsx
@@ -11,7 +11,7 @@ type Props = {
export function ClosingSection({ consultant, header, state, selectedTier, acceptedAt }: Props) {
return (
-
+
Come si parte
diff --git a/src/components/public/proposal/sections/ComparisonMatrixSection.tsx b/src/components/public/proposal/sections/ComparisonMatrixSection.tsx
index 98ecc33..15e5b06 100644
--- a/src/components/public/proposal/sections/ComparisonMatrixSection.tsx
+++ b/src/components/public/proposal/sections/ComparisonMatrixSection.tsx
@@ -10,7 +10,7 @@ export function ComparisonMatrixSection({ matrix, tiers }: Props) {
const tierLetters = tiers.map((t) => t.tierLetter);
return (
-
+
Riepilogo del lavoro
diff --git a/src/components/public/proposal/sections/CoverSection.tsx b/src/components/public/proposal/sections/CoverSection.tsx
index e9ed287..fd96506 100644
--- a/src/components/public/proposal/sections/CoverSection.tsx
+++ b/src/components/public/proposal/sections/CoverSection.tsx
@@ -4,7 +4,7 @@ type Props = { header: AssembledProposal["header"] };
export function CoverSection({ header }: Props) {
return (
-
+
Documento di Soluzione
diff --git a/src/components/public/proposal/sections/DeliverablesSection.tsx b/src/components/public/proposal/sections/DeliverablesSection.tsx
index 7caf224..7e92cb6 100644
--- a/src/components/public/proposal/sections/DeliverablesSection.tsx
+++ b/src/components/public/proposal/sections/DeliverablesSection.tsx
@@ -5,7 +5,7 @@ type Props = { deliverables: ProposalContent["deliverables"] };
export function DeliverablesSection({ deliverables }: Props) {
return (
-
+
{/* Deliverable */}
diff --git a/src/components/public/proposal/sections/FactsSection.tsx b/src/components/public/proposal/sections/FactsSection.tsx
index 6cde045..660cf02 100644
--- a/src/components/public/proposal/sections/FactsSection.tsx
+++ b/src/components/public/proposal/sections/FactsSection.tsx
@@ -4,7 +4,7 @@ type Props = { consultant: ConsultantProfile };
export function FactsSection({ consultant }: Props) {
return (
-
+
Tre fatti
diff --git a/src/components/public/proposal/sections/IndexSection.tsx b/src/components/public/proposal/sections/IndexSection.tsx
index 0a09f82..878a3bd 100644
--- a/src/components/public/proposal/sections/IndexSection.tsx
+++ b/src/components/public/proposal/sections/IndexSection.tsx
@@ -8,7 +8,7 @@ const CHAPTERS = [
export function IndexSection() {
return (
-
+
Sommario
Cinque capitoli.
diff --git a/src/components/public/proposal/sections/NextStepsSection.tsx b/src/components/public/proposal/sections/NextStepsSection.tsx
index 8a5f9ba..a6d5942 100644
--- a/src/components/public/proposal/sections/NextStepsSection.tsx
+++ b/src/components/public/proposal/sections/NextStepsSection.tsx
@@ -12,7 +12,7 @@ export function NextStepsSection({ consultant, header }: Props) {
const expiryNote = `Valida ${header.validityDays} giorni dalla data di invio.`;
return (
-
+
Come procedere ora
diff --git a/src/components/public/proposal/sections/PricingSection.tsx b/src/components/public/proposal/sections/PricingSection.tsx
index 1cbfb79..e63a5fe 100644
--- a/src/components/public/proposal/sections/PricingSection.tsx
+++ b/src/components/public/proposal/sections/PricingSection.tsx
@@ -10,7 +10,7 @@ function formatEur(val: string | null | undefined): string {
export function PricingSection({ tiers }: Props) {
return (
-
+
Le tre opzioni
diff --git a/src/components/public/proposal/sections/ProblemNodeSection.tsx b/src/components/public/proposal/sections/ProblemNodeSection.tsx
index dfe4b6d..b99bc2d 100644
--- a/src/components/public/proposal/sections/ProblemNodeSection.tsx
+++ b/src/components/public/proposal/sections/ProblemNodeSection.tsx
@@ -4,7 +4,7 @@ type Props = { problem: ProblemNode };
export function ProblemNodeSection({ problem }: Props) {
return (
-
+
Problema {problem.id} · {problem.subtitle}
diff --git a/src/components/public/proposal/sections/ScopeSection.tsx b/src/components/public/proposal/sections/ScopeSection.tsx
index a97f129..a4aa313 100644
--- a/src/components/public/proposal/sections/ScopeSection.tsx
+++ b/src/components/public/proposal/sections/ScopeSection.tsx
@@ -5,7 +5,7 @@ type Props = { scope: ProposalContent["scope"] };
export function ScopeSection({ scope }: Props) {
return (
-
+
{/* Scope */}
diff --git a/src/components/public/proposal/sections/SolutionNodeSection.tsx b/src/components/public/proposal/sections/SolutionNodeSection.tsx
index 37407c3..cacb108 100644
--- a/src/components/public/proposal/sections/SolutionNodeSection.tsx
+++ b/src/components/public/proposal/sections/SolutionNodeSection.tsx
@@ -4,7 +4,7 @@ type Props = { solution: SolutionNode };
export function SolutionNodeSection({ solution }: Props) {
return (
-
+
{solution.subtitle}
diff --git a/src/components/public/proposal/sections/SolutionSynthesisSection.tsx b/src/components/public/proposal/sections/SolutionSynthesisSection.tsx
index b3a7e96..23be14b 100644
--- a/src/components/public/proposal/sections/SolutionSynthesisSection.tsx
+++ b/src/components/public/proposal/sections/SolutionSynthesisSection.tsx
@@ -4,7 +4,7 @@ type Props = { synthesis: ProposalContent["solutionSynthesis"] };
export function SolutionSynthesisSection({ synthesis }: Props) {
return (
-
+
Sintesi della soluzione
diff --git a/src/components/public/proposal/sections/StagesRecapSection.tsx b/src/components/public/proposal/sections/StagesRecapSection.tsx
index 7fdf9e0..9bdcb8b 100644
--- a/src/components/public/proposal/sections/StagesRecapSection.tsx
+++ b/src/components/public/proposal/sections/StagesRecapSection.tsx
@@ -4,7 +4,7 @@ type Props = { stages: ProposalContent["stagesRecap"]["stages"] };
export function StagesRecapSection({ stages }: Props) {
return (
-
+
Recap del progresso
diff --git a/src/components/public/proposal/sections/StrategistSection.tsx b/src/components/public/proposal/sections/StrategistSection.tsx
index 3761158..cb793d2 100644
--- a/src/components/public/proposal/sections/StrategistSection.tsx
+++ b/src/components/public/proposal/sections/StrategistSection.tsx
@@ -5,7 +5,7 @@ type Props = { consultant: ConsultantProfile };
export function StrategistSection({ consultant }: Props) {
return (
-
+
{/* Foto */}
diff --git a/src/components/public/proposal/sections/SynthesisDiagramSection.tsx b/src/components/public/proposal/sections/SynthesisDiagramSection.tsx
index 14c712f..73332c8 100644
--- a/src/components/public/proposal/sections/SynthesisDiagramSection.tsx
+++ b/src/components/public/proposal/sections/SynthesisDiagramSection.tsx
@@ -7,7 +7,7 @@ type Props = {
export function SynthesisDiagramSection({ synthesis }: Props) {
return (
-
+
Sintesi del problema
diff --git a/src/components/public/proposal/sections/TestimonialsSection.tsx b/src/components/public/proposal/sections/TestimonialsSection.tsx
index 78c9608..d364861 100644
--- a/src/components/public/proposal/sections/TestimonialsSection.tsx
+++ b/src/components/public/proposal/sections/TestimonialsSection.tsx
@@ -11,7 +11,7 @@ export function TestimonialsSection({ testimonials, page, totalPages }: Props) {
const slice = testimonials.slice((page - 1) * perPage, page * perPage);
return (
-
+
Pagina {page} di {totalPages} · Cosa dicono di me
diff --git a/src/components/public/proposal/sections/TimelineSection.tsx b/src/components/public/proposal/sections/TimelineSection.tsx
index 2729c3e..aa26257 100644
--- a/src/components/public/proposal/sections/TimelineSection.tsx
+++ b/src/components/public/proposal/sections/TimelineSection.tsx
@@ -12,7 +12,7 @@ export function TimelineSection({ timeline }: Props) {
const weeks = Array.from({ length: timeline.totalWeeks }, (_, i) => i + 1);
return (
-
+
Timeline
diff --git a/src/components/public/proposal/sections/VisionSection.tsx b/src/components/public/proposal/sections/VisionSection.tsx
index e75955f..3f5921f 100644
--- a/src/components/public/proposal/sections/VisionSection.tsx
+++ b/src/components/public/proposal/sections/VisionSection.tsx
@@ -11,7 +11,7 @@ export function VisionSection({ vision, header }: Props) {
const mid = Math.floor(words.length / 2);
return (
-