diff --git a/public/media/bingo/basel.svg b/public/media/bingo/basel.svg
new file mode 100644
index 000000000..70f6586f2
--- /dev/null
+++ b/public/media/bingo/basel.svg
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/berlin.svg b/public/media/bingo/berlin.svg
new file mode 100644
index 000000000..be6767d8a
--- /dev/null
+++ b/public/media/bingo/berlin.svg
@@ -0,0 +1,34 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/bilbao.svg b/public/media/bingo/bilbao.svg
new file mode 100644
index 000000000..150581ce3
--- /dev/null
+++ b/public/media/bingo/bilbao.svg
@@ -0,0 +1,18 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/birmingham.svg b/public/media/bingo/birmingham.svg
new file mode 100644
index 000000000..37afb06f9
--- /dev/null
+++ b/public/media/bingo/birmingham.svg
@@ -0,0 +1,33 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/charleroi.svg b/public/media/bingo/charleroi.svg
new file mode 100644
index 000000000..49708a315
--- /dev/null
+++ b/public/media/bingo/charleroi.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/dublin.svg b/public/media/bingo/dublin.svg
new file mode 100644
index 000000000..709ef8579
--- /dev/null
+++ b/public/media/bingo/dublin.svg
@@ -0,0 +1,919 @@
+
+
diff --git a/public/media/bingo/edinburgh.svg b/public/media/bingo/edinburgh.svg
new file mode 100644
index 000000000..431f8443c
--- /dev/null
+++ b/public/media/bingo/edinburgh.svg
@@ -0,0 +1,68 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/florence.svg b/public/media/bingo/florence.svg
new file mode 100644
index 000000000..2cf2f11e0
--- /dev/null
+++ b/public/media/bingo/florence.svg
@@ -0,0 +1,27 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/geneva.svg b/public/media/bingo/geneva.svg
new file mode 100644
index 000000000..af78fff58
--- /dev/null
+++ b/public/media/bingo/geneva.svg
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/gothenburg.svg b/public/media/bingo/gothenburg.svg
new file mode 100644
index 000000000..8e7c56a89
--- /dev/null
+++ b/public/media/bingo/gothenburg.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/krakow.svg b/public/media/bingo/krakow.svg
new file mode 100644
index 000000000..480bed6d6
--- /dev/null
+++ b/public/media/bingo/krakow.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/online.svg b/public/media/bingo/online.svg
new file mode 100644
index 000000000..2dcd1f9ae
--- /dev/null
+++ b/public/media/bingo/online.svg
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/prague.svg b/public/media/bingo/prague.svg
new file mode 100644
index 000000000..91f9af2f7
--- /dev/null
+++ b/public/media/bingo/prague.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/remote.svg b/public/media/bingo/remote.svg
new file mode 100644
index 000000000..2dcd1f9ae
--- /dev/null
+++ b/public/media/bingo/remote.svg
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/rimini.svg b/public/media/bingo/rimini.svg
new file mode 100644
index 000000000..5e67f4682
--- /dev/null
+++ b/public/media/bingo/rimini.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/public/media/bingo/vilnius.svg b/public/media/bingo/vilnius.svg
new file mode 100644
index 000000000..779e82125
--- /dev/null
+++ b/public/media/bingo/vilnius.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/src/components/island/BingoCard.svelte b/src/components/island/BingoCard.svelte
new file mode 100644
index 000000000..a6d7f2cf2
--- /dev/null
+++ b/src/components/island/BingoCard.svelte
@@ -0,0 +1,529 @@
+
+
+
+
+ {checkedCount === 0
+ ? "Click each edition you've attended"
+ : checkedCount === 25
+ ? 'π You attended all 25 editions!'
+ : `${checkedCount} of 25 attended`}
+
+
+
+ {#each editions as edition, i}
+
+ {/each}
+
+
+
+
Share your card
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/sections/bingo.astro b/src/components/sections/bingo.astro
new file mode 100644
index 000000000..dcbbb8ef1
--- /dev/null
+++ b/src/components/sections/bingo.astro
@@ -0,0 +1,41 @@
+---
+import Section2 from "@ui/Section2.astro";
+import Display from "@ui/Display.astro";
+import BingoCard from "@components/island/BingoCard.svelte";
+---
+
+
+
+
+ Have you been there?
+
+
+
+
+
+
+
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index bf9196832..60ed1dd01 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -30,13 +30,14 @@ import "@styles/light-theme.css";
export interface Props {
title: string;
description: string;
+ image?: string;
hideHeader?: boolean;
hideFooter?: boolean;
}
const currentPath = Astro.url.pathname;
-const { title, description } = Astro.props;
+const { title, description, image } = Astro.props;
if (!title || !description) {
throw new Error(`${Astro.url.pathname} Both 'title' and 'description' must be set.`);
@@ -51,7 +52,7 @@ const hideFooter = Astro.props.hideFooter ?? false;
-
+
diff --git a/src/pages/bingo.astro b/src/pages/bingo.astro
new file mode 100644
index 000000000..b8ae523df
--- /dev/null
+++ b/src/pages/bingo.astro
@@ -0,0 +1,53 @@
+---
+import Layout from "@layouts/Layout.astro";
+import Section2 from "@ui/Section2.astro";
+import BingoCard from "@components/island/BingoCard.svelte";
+---
+
+
+
+
+
+
EuroPython Bingo
+
+ 25 editions. 14 cities. One community.
+ How many have you attended?
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/index.astro b/src/pages/index.astro
index 7b338812f..2d0f76a65 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -15,6 +15,7 @@ import EuroSciPy from "@sections/euroscipy.astro";
import CommunityPartners from "@sections/community-partners.astro";
import MediaPartners from "@sections/media-partners.astro";
import Connect from "@sections/connect.astro";
+import Bingo from "@sections/bingo.astro";
---
+