diff --git a/package.json b/package.json
index 2387378..e29b348 100644
--- a/package.json
+++ b/package.json
@@ -17,8 +17,7 @@
"devDependencies": {
"@changesets/cli": "^2.27.1",
"@playwright/test": "^1.28.1",
- "@sveltejs/adapter-auto": "^3.0.0",
- "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/kit": "^2.5.0",
"@sveltejs/vite-plugin-svelte": "^3.0.0",
"@types/eslint": "8.56.0",
"eslint": "^8.56.0",
@@ -34,7 +33,6 @@
},
"type": "module",
"dependencies": {
- "@sveltejs/adapter-node": "^4.0.1",
"@sveltejs/adapter-static": "^3.0.1",
"@vincjo/datatables": "^1.14.4",
"@yanick/updeep-remeda": "^2.2.0",
diff --git a/src/lib/components/BggUser.svelte b/src/lib/components/BggUser.svelte
new file mode 100644
index 0000000..655171f
--- /dev/null
+++ b/src/lib/components/BggUser.svelte
@@ -0,0 +1,13 @@
+{username}
+
+
+
+
diff --git a/src/lib/directives/clickOutside.js b/src/lib/directives/clickOutside.js
new file mode 100644
index 0000000..ccaa7de
--- /dev/null
+++ b/src/lib/directives/clickOutside.js
@@ -0,0 +1,15 @@
+export default function clickOutside(node) {
+ const handleClick = (event) => {
+ if (node && !node.contains(event.target) && !event.defaultPrevented) {
+ node.dispatchEvent(new CustomEvent('click_outside', node));
+ }
+ };
+
+ document.addEventListener('click', handleClick, true);
+
+ return {
+ destroy() {
+ document.removeEventListener('click', handleClick, true);
+ },
+ };
+}
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 3dad5c6..285837c 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -2,20 +2,23 @@
Ottawa board games, trades and sales
+
+
+
diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte
index fbe1276..624a567 100644
--- a/src/routes/about/+page.svelte
+++ b/src/routes/about/+page.svelte
@@ -1,12 +1,3 @@
-
-
bgg.babyl.ca
is an aggregation of board games for sale or
diff --git a/src/routes/stats/+page.svelte b/src/routes/stats/+page.svelte
new file mode 100644
index 0000000..587ebb3
--- /dev/null
+++ b/src/routes/stats/+page.svelte
@@ -0,0 +1,50 @@
+
+ Currently listing {nbr_games} games from {nbr_sellers} sellers.
+
+ {#each Object.keys($sellers).sort() as username (username)}
+
+
+
+ {#if $sellers[username].neighbourhood}
+ ({$sellers[username].neighbourhood})
+ {/if}
+
+
+ {nbr_games_for(username)}
+
+
+ {/each}
+
+
+
+
+