import { useState } from “react”; // Each Nisan day has two segments: EVENING (night) then DAYTIME // Hebrew day runs sunset-to-sunset: night comes FIRST, then day // American label shows what we would call those same hours const days = [ { nisan: 8, evening: { american: “WED EVENING”, events: [], tomb: null }, daytime: { american: “THURSDAY”, events: [“Jericho. Zacchaeus encounter.”], tomb: null, ref: “LUKE 19:1”, inferred: true }, type: “transit”, }, { nisan: 9, evening: { american: “THU EVENING”, events: [“Overnight in Jericho”], tomb: null, inferred: true }, daytime: { american: “FRIDAY”, events: [“Departs Jericho. Arrives Bethany.”], tomb: null, ref: “JOHN 12:1”, anchor: true, note: “SIX DAYS BEFORE PASSOVER — primary anchor” }, type: “anchor”, }, { nisan: 10, evening: { american: “FRI EVENING”, events: [“Sabbath begins. Dinner at Bethany. Mary anoints Jesus.”], tomb: null, ref: “JOHN 12:2” }, daytime: { american: “SATURDAY”, events: [“Triumphal Entry — Palm Saturday not Palm Sunday”, “Lamb of God presented to Jerusalem”], tomb: null, ref: “JOHN 12:12 // EXODUS 12:3”, note: “PASSOVER LAMB PRESENTED — Exodus 12:3 fulfilled” }, type: “lamb”, }, { nisan: 11, evening: { american: “SAT EVENING”, events: [], tomb: null }, daytime: { american: “SUNDAY”, events: [“Rest at Bethany”], tomb: null, inferred: true }, type: “transit”, }, { nisan: 12, evening: { american: “SUN EVENING”, events: [], tomb: null }, daytime: { american: “MONDAY”, events: [“Fig tree cursed. Temple cleansed.”], tomb: null, ref: “MARK 11:15”, inferred: true }, type: “transit”, }, { nisan: 13, evening: { american: “MON EVENING”, events: [], tomb: null }, daytime: { american: “TUESDAY”, events: [“Bethany. Olivet Discourse.”], tomb: null, ref: “MARK 13”, inferred: true }, type: “transit”, }, { nisan: 14, evening: { american: “TUE EVENING”, events: [“Upper Room meal”, “Arrest in Gethsemane”, “Trial before Sanhedrin”], tomb: null, ref: “JOHN 19:14” }, daytime: { american: “WEDNESDAY”, events: [“Trial before Pilate”, “Crucifixion”, “Death at 3pm”, “Burial before sunset”], tomb: null, ref: “JOHN 19:14 // EXODUS 12:6”, note: “PREPARATION DAY // PASSOVER LAMB SLAUGHTERED AT TWILIGHT” }, type: “crucifixion”, }, { nisan: 15, evening: { american: “WED EVENING”, events: [“High Sabbath begins at sunset”, “Tomb sealed”], tomb: { label: “NIGHT 1” }, ref: “JOHN 19:31” }, daytime: { american: “THURSDAY”, events: [“Passover. Feast of Unleavened Bread.”, “Megas sabbaton — holy convocation”], tomb: { label: “DAY 1” }, ref: “LEV 23:7”, note: “HIGH SABBATH // NOT THE WEEKLY SABBATH” }, type: “high-sabbath”, }, { nisan: 16, evening: { american: “THU EVENING”, events: [“High Sabbath ends at sunset”, “Women may now move”], tomb: { label: “NIGHT 2” } }, daytime: { american: “FRIDAY”, events: [“Women BUY spices — Mark 16:1”, “Women PREPARE spices — Luke 23:56”], tomb: { label: “DAY 2” }, ref: “MARK 16:1 // LUKE 23:56”, note: “GAP DAY — resolves the two-verse contradiction” }, type: “gap”, }, { nisan: 17, evening: { american: “FRI EVENING”, events: [“Weekly Sabbath begins at sunset”], tomb: { label: “NIGHT 3” }, ref: “LUKE 23:56” }, daytime: { american: “SATURDAY”, events: [“Women rest — fourth commandment”], tomb: { label: “DAY 3” }, ref: “LUKE 23:56” }, type: “sabbath”, }, { nisan: 18, evening: { american: “SAT EVENING”, events: [“Weekly Sabbath ends at sunset”, “Resurrection”], tomb: null }, daytime: { american: “SUNDAY”, events: [“Women arrive at tomb at sunrise”, “The tomb is empty”, “Jesus is alive”], tomb: null, ref: “MARK 16:2”, note: “MATTHEW 12:40 — THREE DAYS AND THREE NIGHTS FULFILLED” }, type: “resurrection”, }, ]; const theme = { transit: { accent: “#cccccc”, title: “#aaaaaa”, nightBg: “#fafafa”, dayBg: “#ffffff” }, anchor: { accent: “#228844”, title: “#1a6633”, nightBg: “#f5faf7”, dayBg: “#edf7f1” }, lamb: { accent: “#aa7700”, title: “#885500”, nightBg: “#fdf8f0”, dayBg: “#faf3e3” }, crucifixion: { accent: “#cc1100”, title: “#aa0000”, nightBg: “#fff5f5”, dayBg: “#ffecec” }, “high-sabbath”: { accent: “#cc5500”, title: “#aa3300”, nightBg: “#fff8f3”, dayBg: “#fff0e6” }, gap: { accent: “#888800”, title: “#666600”, nightBg: “#fafaf0”, dayBg: “#f5f5e0” }, sabbath: { accent: “#2255cc”, title: “#1133aa”, nightBg: “#f5f7ff”, dayBg: “#edf0ff” }, resurrection: { accent: “#116633”, title: “#0d5529”, nightBg: “#f0faf5”, dayBg: “#e3f5ec” }, }; const NIGHT_BG = “#f0f0f0”; // universal night tint const DAY_BG = “#ffffff”; // universal day white function TombBadge({ label, night }) { return ( {label} ); } export default function Timeline() { const [open, setOpen] = useState(null); return (
``` {/* HEADER */}
NISAN CALENDAR // PASSION WEEK
THE WEDNESDAY
CRUCIFIXION
"For just as Jonah was in the belly of the huge fish for three days and three nights, so the Son of Man will be in the heart of the earth for three days and three nights."
MATTHEW 12:40 NET
{/* DAY RECKONING KEY */}
HOW A DAY IS COUNTED
{/* Hebrew */}
HEBREW RECKONING
EVENING NIGHT
MORNING DAY
Day begins at sunset.
Evening comes first, then morning.
Genesis 1:5 — "there was evening,
and there was morning."
{/* American */}
AMERICAN RECKONING
12:00 AM MIDNIGHT
EVENING NIGHT
Day begins at midnight.
Morning comes first, night ends the day.
Evening belongs to the same calendar date
it started on at midnight.
{/* COLUMN HEADERS */}
EVENING / NIGHT
Hebrew day begins here
MORNING / DAY
American date changes here
{/* ROWS */} {days.map((d, i) => { const p = theme[d.type]; const isOpen = open === i; const isKey = d.type !== "transit"; return (
setOpen(isOpen ? null : i)} style={{ display: "grid", gridTemplateColumns: "48px 8px 1fr 1fr", columnGap: 0, borderBottom: `1px solid ${isKey ? "#dddddd" : "#f0f0f0"}`, borderLeft: `3px solid ${isKey ? p.accent : "#eeeeee"}`, }} > {/* Nisan number */}
{d.nisan}
NISAN
{/* Dot */}
{/* EVENING / NIGHT segment */}
{d.evening.american}
{d.evening.events.map((e, j) => (
{e}
))} {d.evening.tomb && ( )} {d.evening.ref && !d.daytime.ref && (
{d.evening.ref}
)}
{/* DAYTIME segment */}
{d.daytime.american}
{d.daytime.events.map((e, j) => (
{e}
))} {d.daytime.tomb && ( )} {d.daytime.ref && (
{d.daytime.ref}
)} {d.daytime.note && isOpen && (
{d.daytime.note}
)} {d.daytime.inferred && (
INFERRED
)}
); })}
{/* FOOTER */}
{/* Matt 12:40 */}
MATTHEW 12:40 // SIGN OF JONAH // FULFILLED
{[ { label: "WED NIGHT", night: true }, { label: "THU NIGHT", night: true }, { label: "FRI NIGHT", night: true }, { label: "THU DAY", night: false }, { label: "FRI DAY", night: false }, { label: "SAT DAY", night: false }, ].map((item, i) => (
{item.label}
))}
{/* Typology */}
PASSOVER LAMB TYPOLOGY
{[ { ref: "EXODUS 12:3", nisan: "NISAN 10", type: "LAMB SELECTED", fulfill: "Jesus presents himself to Jerusalem on lamb selection day", col: theme.lamb.title, bdr: theme.lamb.accent, }, { ref: "EXODUS 12:6", nisan: "NISAN 14", type: "LAMB SLAUGHTERED AT TWILIGHT", fulfill: "Jesus crucified on Preparation Day before sunset", col: theme.crucifixion.title, bdr: theme.crucifixion.accent, }, { ref: "JOHN 1:29", nisan: null, type: "LAMB OF GOD", fulfill: "Takes away the sin of the world", col: theme.resurrection.title, bdr: theme.resurrection.accent, }, ].map((row, i) => (
{row.ref}
{row.nisan && (
{row.nisan}
)}
{row.type}
{row.fulfill}
))}
{/* Two sabbath */}
TWO SABBATH RESOLUTION
{[ { ref: "MARK 16:1", text: "Women buy spices after the sabbath.", col: theme["high-sabbath"].title }, { ref: "LUKE 23:56", text: "Women prepare spices then rest on the sabbath.", col: theme.sabbath.title }, ].map((row, i) => (
{row.ref} {row.text}
))}
Nisan 16 Friday is the only day that satisfies both statements without contradiction. The Friday crucifixion view produces an irreconcilable conflict between these two verses.
{/* Closing */}
TAP ANY ROW TO EXPAND // NET BIBLE TRANSLATION
``` ); }