diff --git a/src/assets/images/storia/organigramma.png b/src/assets/images/storia/organigramma.png deleted file mode 100644 index be4f2d9..0000000 Binary files a/src/assets/images/storia/organigramma.png and /dev/null differ diff --git a/src/components/storia/hero.tsx b/src/components/storia/hero.tsx index d74f088..6c26013 100644 --- a/src/components/storia/hero.tsx +++ b/src/components/storia/hero.tsx @@ -1,6 +1,6 @@ import Image from "next/image" import Link from "next/link" -import { FiArrowDown, FiArrowUpRight, FiUsers } from "react-icons/fi" +import { FiArrowDown, FiUsers } from "react-icons/fi" import { Glass } from "@/components/glass" import { GradientIcon } from "@/components/gradient-icon" import { Button } from "@/components/ui/button" @@ -22,12 +22,12 @@ export function HistoryHero() { return (
-
- -
+
diff --git a/src/components/storia/organization.tsx b/src/components/storia/organization.tsx index 229b7c5..7780ee4 100644 --- a/src/components/storia/organization.tsx +++ b/src/components/storia/organization.tsx @@ -1,13 +1,178 @@ -import Image from "next/image" import Link from "next/link" -import { FiArrowDown, FiMonitor } from "react-icons/fi" -import { LuCrown, LuShield, LuShieldCheck, LuUserCog } from "react-icons/lu" -import organizationImage from "@/assets/images/storia/organigramma.png" +import { FiArrowDown } from "react-icons/fi" +import { + LuBookUser, + LuCodeXml, + LuCrown, + LuGlobe, + LuHandshake, + LuPencilRuler, + LuShield, + LuShieldCheck, + LuUserCog, + LuUsersRound, +} from "react-icons/lu" import { CardIcon } from "@/components/card-icon" -import { Glass } from "@/components/glass" +import { GradientIcon } from "@/components/gradient-icon" import { Button } from "@/components/ui/button" +import { Card, CardTitle } from "@/components/ui/card" +import { cn } from "@/lib/utils" -const teams = ["HR", "IT", "Design e Marketing", "International", "Eventi"] +const teamLeads = [ + { title: "Team lead HR", icon: LuBookUser }, + { title: "Team lead IT", icon: LuCodeXml }, + { title: "Team lead Design & Marketing", icon: LuPencilRuler }, + { title: "Team lead International", icon: LuGlobe }, + { title: "Team lead Eventi & Partnership", icon: LuHandshake }, +] + +const nodeClassName = "[&_h3]:text-text-primary" +const mainNodeClassName = "[&_h3]:typo-title-large w-fit px-4 [&_h3]:whitespace-nowrap" + +type BranchPosition = "first" | "middle" | "last" | "only" + +/** Horizontal rail and arrow above one child of a branch: the rail runs from the first child's center to the last's. */ +function BranchArrow({ position }: { position: BranchPosition }) { + return ( +
+ {position !== "only" && ( + + )} + +
+ ) +} + +function branchPosition(index: number, count: number): BranchPosition { + if (count === 1) return "only" + if (index === 0) return "first" + return index === count - 1 ? "last" : "middle" +} + +function Stem() { + return +} + +function DesktopChart() { + return ( +
+ + +
+ {/* Rail from the center of the admin column (1/12) to the center of the Team growth columns (7/12) */} +
+ + + +
+
+ + + +
+
+ + +
    + {teamLeads.map((lead, index) => ( +
  • + +
    + +
    + +
  • + ))} +
+
+ + + + Membri dei team + + +
+
+
+
+ ) +} + +function MobileChart() { + return ( +
+ + +
+
+ + + +
+
+ + + +
+
+ + +
    + {teamLeads.map((lead) => ( +
  • + + + + {lead.title} + + +
  • + ))} +
+ + +
+
+
+ ) +} export function Organization() { return ( @@ -25,37 +190,14 @@ export function Organization() {
-
- Il Direttivo coordina i Capi admin e il Team growth. I Capi admin coordinano gli Admin. Il Team growth coordina i team lead HR, IT, Design e Marketing, International ed Eventi, con i rispettivi membri. -
- - -
- - - - - - - - -
    - {teams.map((team) => ( -
  • - -
  • - ))} -
- - -
-
-
+
) diff --git a/src/components/storia/timeline.tsx b/src/components/storia/timeline.tsx index f48e596..63b9304 100644 --- a/src/components/storia/timeline.tsx +++ b/src/components/storia/timeline.tsx @@ -59,7 +59,7 @@ export function Timeline() { } const chapterVisuals = [ -
+
{[ { icon: telegram.src, title: "Il primo gruppo" }, { icon: FiUser, title: "I primi admin e volontari" }, @@ -69,7 +69,7 @@ const chapterVisuals = [ ))}
, -
+
{[ { icon: FiClipboard, title: "Regole interne" }, { icon: FiUserCheck, title: "Comunicazioni selezionate" }, @@ -83,7 +83,7 @@ const chapterVisuals = [ /> ))}
, -
+
{[ { title: "5", caption: "persone", icon: FiUser }, { title: "~25", caption: "rappresentanti", icon: FiUsers }, @@ -92,7 +92,7 @@ const chapterVisuals = [ ))}
, -
+
, -
+
, -
+
{/* Figma "lightheme-XLarge text effect": #020618 → #6e6e6e at 82.69% */} -

- {title} + {/* The gradient is drawn per line (box-decoration-clone), so a title that wraps keeps the full effect on each line */} +

+ + {title} +