From 8328354ac5cb79faeba472b26f4ee53d9da406dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Engl=C3=B6f=20Ytterstr=C3=B6m?= Date: Fri, 26 Dec 2025 18:09:17 +0100 Subject: [PATCH] 2026, next try --- data/default-state.js | 925 ++++++++++++++++------------------ package-lock.json | 12 + src/App.svelte | 4 +- src/lib/Arc.svelte | 32 +- src/lib/CardioProgress.svelte | 43 -- src/lib/GymProgress.svelte | 6 +- src/lib/Info.svelte | 24 +- src/lib/Summary.svelte | 29 +- src/lib/WalksProgress.svelte | 48 ++ src/lib/store.ts | 3 +- 10 files changed, 547 insertions(+), 579 deletions(-) delete mode 100644 src/lib/CardioProgress.svelte create mode 100644 src/lib/WalksProgress.svelte diff --git a/data/default-state.js b/data/default-state.js index 9e47dcd..7c83499 100644 --- a/data/default-state.js +++ b/data/default-state.js @@ -1,384 +1,112 @@ -const cardio = [ - { - run_for: [4, 3], - pause_for: 2, - planned_at: "2025-02-05", - completed: false, - completed_at: null, - }, - { - run_for: [5, 4], - pause_for: 2, - planned_at: "2025-02-07", - completed: false, - completed_at: null, - }, - { - run_for: [6, 5], - pause_for: 2, - planned_at: "2025-02-10", - completed: false, - completed_at: null, - }, - { - run_for: [7, 6], - pause_for: 2, - planned_at: "2025-02-12", - completed: false, - completed_at: null, - }, - { - run_for: [12], - pause_for: 5, - planned_at: "2025-02-14", - completed: false, - completed_at: null, - }, - { - run_for: [7, 6], - pause_for: 2, - planned_at: "2025-02-17", - completed: false, - completed_at: null, - }, - { - run_for: [8, 7], - pause_for: 2, - planned_at: "2025-02-19", - completed: false, - completed_at: null, - }, - { - run_for: [14], - pause_for: 5, - planned_at: "2025-02-21", - completed: false, - completed_at: null, - }, - { - run_for: [8, 7], - pause_for: 2, - planned_at: "2025-02-24", - completed: false, - completed_at: null, - }, - { - run_for: [9, 8], - pause_for: 2, - planned_at: "2025-02-26", - completed: false, - completed_at: null, - }, - { - run_for: [16], - pause_for: 5, - planned_at: "2025-02-28", - completed: false, - completed_at: null, - }, - { - run_for: [9, 8], - pause_for: 2, - planned_at: "2025-03-03", - completed: false, - completed_at: null, - }, - { - run_for: [10, 9], - pause_for: 2, - planned_at: "2025-03-05", - completed: false, - completed_at: null, - }, - { - run_for: [20], - pause_for: 5, - planned_at: "2025-03-07", - completed: false, - completed_at: null, - }, - { - run_for: [10, 9], - pause_for: 2, - planned_at: "2025-03-10", - completed: false, - completed_at: null, - }, - { - run_for: [11, 10], - pause_for: 2, - planned_at: "2025-03-12", - completed: false, - completed_at: null, - }, - { - run_for: [23], - pause_for: 5, - planned_at: "2025-03-14", - completed: false, - completed_at: null, - }, - { - run_for: [11, 10], - pause_for: 2, - planned_at: "2025-03-17", - completed: false, - completed_at: null, - }, - { - run_for: [12, 11], - pause_for: 2, - planned_at: "2025-03-19", - completed: false, - completed_at: null, - }, - { - run_for: [26], - pause_for: 5, - planned_at: "2025-03-21", - completed: false, - completed_at: null, - }, - { - run_for: [12, 11], - pause_for: 2, - planned_at: "2025-03-24", - completed: false, - completed_at: null, - }, - { - run_for: [13, 12], - pause_for: 2, - planned_at: "2025-03-26", - completed: false, - completed_at: null, - }, - { - run_for: [30], - pause_for: 5, - planned_at: "2025-03-28", - completed: false, - completed_at: null, - }, -]; - const gym = [ { - name: "rehab 1/3", - planned_at: "2025-02-02", - completed: true, - completed_at: "2025-02-02", - }, - { - name: "rehab 2/3", - planned_at: "2025-02-04", + name: "rehab 1/2", + planned_at: "2025-12-31", completed: false, completed_at: null, }, { - name: "rehab 3/3", - planned_at: "2025-02-06", - completed: false, - completed_at: null, - }, - { - name: "A 1:1", - planned_at: "2025-02-09", - completed: false, - completed_at: null, - }, - { - name: "A 1:2", - planned_at: "2025-02-11", - completed: false, - completed_at: null, - }, - { - name: "A 1:3", - planned_at: "2025-02-13", - completed: false, - completed_at: null, - }, - { - name: "A 2:1", - planned_at: "2025-02-16", - completed: false, - completed_at: null, - }, - { - name: "A 2:2", - planned_at: "2025-02-18", - completed: false, - completed_at: null, - }, - { - name: "A 2:3", - planned_at: "2025-02-20", - completed: false, - completed_at: null, - }, - { - name: "A 3:1", - planned_at: "2025-02-23", - completed: false, - completed_at: null, - }, - { - name: "A 3:2", - planned_at: "2025-02-25", - completed: false, - completed_at: null, - }, - { - name: "A 3:3", - planned_at: "2025-02-27", - completed: false, - completed_at: null, - }, - { - name: "A 4:1", - planned_at: "2025-03-02", - completed: false, - completed_at: null, - }, - { - name: "A 4:2", - planned_at: "2025-03-04", - completed: false, - completed_at: null, - }, - { - name: "A 4:3", - planned_at: "2025-03-06", - completed: false, - completed_at: null, - }, - { - name: "B 1:1", - planned_at: "2025-03-09", - completed: false, - completed_at: null, - }, - { - name: "B 1:2", - planned_at: "2025-03-11", - completed: false, - completed_at: null, - }, - { - name: "B 1:3", - planned_at: "2025-03-13", - completed: false, - completed_at: null, - }, - { - name: "B 2:1", - planned_at: "2025-03-16", - completed: false, - completed_at: null, - }, - { - name: "B 2:2", - planned_at: "2025-03-18", - completed: false, - completed_at: null, - }, - { - name: "B 2:3", - planned_at: "2025-03-20", - completed: false, - completed_at: null, - }, - { - name: "B 3:1", - planned_at: "2025-03-23", - completed: false, - completed_at: null, - }, - { - name: "B 3:2", - planned_at: "2025-03-25", - completed: false, - completed_at: null, - }, - { - name: "B 3:3", - planned_at: "2025-03-27", - completed: false, - completed_at: null, - }, - { - name: "B 4:1", - planned_at: "2025-03-30", - completed: false, - completed_at: null, - }, - { - name: "B 4:2", - planned_at: "2025-04-01", - completed: false, - completed_at: null, - }, - { - name: "B 4:3", - planned_at: "2025-04-03", - completed: false, - completed_at: null, - }, - { - name: "C 1:1", - planned_at: "2025-04-06", - completed: false, - completed_at: null, - }, - { - name: "C 1:2", - planned_at: "2025-04-08", - completed: false, - completed_at: null, - }, - { - name: "C 1:3", - planned_at: "2025-04-10", - completed: false, - completed_at: null, - }, - { - name: "C 2:1", - planned_at: "2025-04-13", - completed: false, - completed_at: null, - }, - { - name: "C 2:2", - planned_at: "2025-04-15", - completed: false, - completed_at: null, - }, - { - name: "C 2:3", - planned_at: "2025-04-17", - completed: false, - completed_at: null, - }, - { - name: "C 3:1", - planned_at: "2025-04-20", - completed: false, - completed_at: null, - }, - { - name: "C 3:2", - planned_at: "2025-04-22", - completed: false, - completed_at: null, - }, - { - name: "C 3:3", - planned_at: "2025-04-24", + name: "rehab 2/2", + planned_at: "2026-01-02", completed: false, completed_at: null, }, + { name: "PLL 1:1", planned_at: "2026-01-05", completed: false, completed_at: null }, + { name: "PLL 1:2", planned_at: "2026-01-06", completed: false, completed_at: null }, + { name: "PLL 1:3", planned_at: "2026-01-07", completed: false, completed_at: null }, + { name: "PLL 1:4", planned_at: "2026-01-09", completed: false, completed_at: null }, + { name: "PLL 2:1", planned_at: "2026-01-12", completed: false, completed_at: null }, + { name: "PLL 2:2", planned_at: "2026-01-13", completed: false, completed_at: null }, + { name: "PLL 2:3", planned_at: "2026-01-14", completed: false, completed_at: null }, + { name: "PLL 2:4", planned_at: "2026-01-16", completed: false, completed_at: null }, + { name: "PLL 3:1", planned_at: "2026-01-19", completed: false, completed_at: null }, + { name: "PLL 3:2", planned_at: "2026-01-20", completed: false, completed_at: null }, + { name: "PLL 3:3", planned_at: "2026-01-21", completed: false, completed_at: null }, + { name: "PLL 3:4", planned_at: "2026-01-23", completed: false, completed_at: null }, + { name: "PLL 4:1", planned_at: "2026-01-26", completed: false, completed_at: null }, + { name: "PLL 4:2", planned_at: "2026-01-27", completed: false, completed_at: null }, + { name: "PLL 4:3", planned_at: "2026-01-28", completed: false, completed_at: null }, + { name: "PLL 4:4", planned_at: "2026-01-30", completed: false, completed_at: null }, + { name: "PLL 5:1", planned_at: "2026-02-02", completed: false, completed_at: null }, + { name: "PLL 5:2", planned_at: "2026-02-03", completed: false, completed_at: null }, + { name: "PLL 5:3", planned_at: "2026-02-04", completed: false, completed_at: null }, + { name: "PLL 5:4", planned_at: "2026-02-06", completed: false, completed_at: null }, + { name: "PLL 6:1", planned_at: "2026-02-09", completed: false, completed_at: null }, + { name: "PLL 6:2", planned_at: "2026-02-10", completed: false, completed_at: null }, + { name: "PLL 6:3", planned_at: "2026-02-11", completed: false, completed_at: null }, + { name: "PLL 6:4", planned_at: "2026-02-13", completed: false, completed_at: null }, + { name: "PLL 1:1", planned_at: "2026-02-16", completed: false, completed_at: null }, + { name: "PLL 1:2", planned_at: "2026-02-17", completed: false, completed_at: null }, + { name: "PLL 1:3", planned_at: "2026-02-18", completed: false, completed_at: null }, + { name: "PLL 1:4", planned_at: "2026-02-20", completed: false, completed_at: null }, + { name: "PLL 2:1", planned_at: "2026-02-23", completed: false, completed_at: null }, + { name: "PLL 2:2", planned_at: "2026-02-24", completed: false, completed_at: null }, + { name: "PLL 2:3", planned_at: "2026-02-25", completed: false, completed_at: null }, + { name: "PLL 2:4", planned_at: "2026-02-27", completed: false, completed_at: null }, + { name: "PLL 3:1", planned_at: "2026-03-02", completed: false, completed_at: null }, + { name: "PLL 3:2", planned_at: "2026-03-03", completed: false, completed_at: null }, + { name: "PLL 3:3", planned_at: "2026-03-04", completed: false, completed_at: null }, + { name: "PLL 3:4", planned_at: "2026-03-06", completed: false, completed_at: null }, + { name: "PLL 4:1", planned_at: "2026-03-09", completed: false, completed_at: null }, + { name: "PLL 4:2", planned_at: "2026-03-10", completed: false, completed_at: null }, + { name: "PLL 4:3", planned_at: "2026-03-11", completed: false, completed_at: null }, + { name: "PLL 4:4", planned_at: "2026-03-13", completed: false, completed_at: null }, + { name: "PLL 5:1", planned_at: "2026-03-16", completed: false, completed_at: null }, + { name: "PLL 5:2", planned_at: "2026-03-17", completed: false, completed_at: null }, + { name: "PLL 5:3", planned_at: "2026-03-18", completed: false, completed_at: null }, + { name: "PLL 5:4", planned_at: "2026-03-20", completed: false, completed_at: null }, + { name: "PLL 6:1", planned_at: "2026-03-23", completed: false, completed_at: null }, + { name: "PLL 6:2", planned_at: "2026-03-24", completed: false, completed_at: null }, + { name: "PLL 6:3", planned_at: "2026-03-25", completed: false, completed_at: null }, + { name: "PLL 6:4", planned_at: "2026-03-27", completed: false, completed_at: null }, + { name: "PLL 1:1", planned_at: "2026-03-30", completed: false, completed_at: null }, + { name: "PLL 1:2", planned_at: "2026-03-31", completed: false, completed_at: null }, + { name: "PLL 1:3", planned_at: "2026-04-01", completed: false, completed_at: null }, + { name: "PLL 1:4", planned_at: "2026-04-03", completed: false, completed_at: null }, + { name: "PLL 2:1", planned_at: "2026-04-06", completed: false, completed_at: null }, + { name: "PLL 2:2", planned_at: "2026-04-07", completed: false, completed_at: null }, + { name: "PLL 2:3", planned_at: "2026-04-08", completed: false, completed_at: null }, + { name: "PLL 2:4", planned_at: "2026-04-10", completed: false, completed_at: null }, + { name: "PLL 3:1", planned_at: "2026-04-13", completed: false, completed_at: null }, + { name: "PLL 3:2", planned_at: "2026-04-14", completed: false, completed_at: null }, + { name: "PLL 3:3", planned_at: "2026-04-15", completed: false, completed_at: null }, + { name: "PLL 3:4", planned_at: "2026-04-17", completed: false, completed_at: null }, + { name: "PLL 4:1", planned_at: "2026-04-20", completed: false, completed_at: null }, + { name: "PLL 4:2", planned_at: "2026-04-21", completed: false, completed_at: null }, + { name: "PLL 4:3", planned_at: "2026-04-22", completed: false, completed_at: null }, + { name: "PLL 4:4", planned_at: "2026-04-24", completed: false, completed_at: null }, + { name: "PLL 5:1", planned_at: "2026-04-27", completed: false, completed_at: null }, + { name: "PLL 5:2", planned_at: "2026-04-28", completed: false, completed_at: null }, + { name: "PLL 5:3", planned_at: "2026-04-29", completed: false, completed_at: null }, + { name: "PLL 5:4", planned_at: "2026-05-01", completed: false, completed_at: null }, + { name: "PLL 6:1", planned_at: "2026-05-04", completed: false, completed_at: null }, + { name: "PLL 6:2", planned_at: "2026-05-05", completed: false, completed_at: null }, + { name: "PLL 6:3", planned_at: "2026-05-06", completed: false, completed_at: null }, + { name: "PLL 6:4", planned_at: "2026-05-08", completed: false, completed_at: null }, + { name: "PLL 1:1", planned_at: "2026-05-11", completed: false, completed_at: null }, + { name: "PLL 1:2", planned_at: "2026-05-12", completed: false, completed_at: null }, + { name: "PLL 1:3", planned_at: "2026-05-13", completed: false, completed_at: null }, + { name: "PLL 1:4", planned_at: "2026-05-15", completed: false, completed_at: null }, + { name: "PLL 2:1", planned_at: "2026-05-18", completed: false, completed_at: null }, + { name: "PLL 2:2", planned_at: "2026-05-19", completed: false, completed_at: null }, + { name: "PLL 2:3", planned_at: "2026-05-20", completed: false, completed_at: null }, + { name: "PLL 2:4", planned_at: "2026-05-22", completed: false, completed_at: null }, + { name: "PLL 3:1", planned_at: "2026-05-25", completed: false, completed_at: null }, + { name: "PLL 3:2", planned_at: "2026-05-26", completed: false, completed_at: null }, + { name: "PLL 3:3", planned_at: "2026-05-27", completed: false, completed_at: null }, + { name: "PLL 3:4", planned_at: "2026-05-29", completed: false, completed_at: null }, + { name: "PLL 4:1", planned_at: "2026-06-01", completed: false, completed_at: null }, + { name: "PLL 4:2", planned_at: "2026-06-02", completed: false, completed_at: null }, + { name: "PLL 4:3", planned_at: "2026-06-03", completed: false, completed_at: null }, + { name: "PLL 4:4", planned_at: "2026-06-05", completed: false, completed_at: null }, + { name: "PLL 5:1", planned_at: "2026-06-08", completed: false, completed_at: null }, + { name: "PLL 5:2", planned_at: "2026-06-09", completed: false, completed_at: null }, + { name: "PLL 5:3", planned_at: "2026-06-10", completed: false, completed_at: null }, + { name: "PLL 5:4", planned_at: "2026-06-12", completed: false, completed_at: null }, + { name: "PLL 6:1", planned_at: "2026-06-15", completed: false, completed_at: null }, + { name: "PLL 6:2", planned_at: "2026-06-16", completed: false, completed_at: null }, + { name: "PLL 6:3", planned_at: "2026-06-18", completed: false, completed_at: null }, + { name: "PLL 6:4", planned_at: "2026-06-20", completed: false, completed_at: null }, ]; const fast = [ @@ -399,120 +127,349 @@ const fast = [ ]; const diet = [ - { date: "2025-02-10", completed: false }, - { date: "2025-02-11", completed: false }, - { date: "2025-02-12", completed: false }, - { date: "2025-02-13", completed: false }, - { date: "2025-02-14", completed: false }, - { date: "2025-02-15", completed: false }, - { date: "2025-02-16", completed: false }, - { date: "2025-02-17", completed: false }, - { date: "2025-02-18", completed: false }, - { date: "2025-02-19", completed: false }, - { date: "2025-02-10", completed: false }, - { date: "2025-02-21", completed: false }, - { date: "2025-02-22", completed: false }, - { date: "2025-02-23", completed: false }, - { date: "2025-02-24", completed: false }, - { date: "2025-02-25", completed: false }, - { date: "2025-02-26", completed: false }, - { date: "2025-02-27", completed: false }, - { date: "2025-02-28", completed: false }, - { date: "2025-03-01", completed: false }, - { date: "2025-03-02", completed: false }, - { date: "2025-03-03", completed: false }, - { date: "2025-03-04", excluded: true, because: "Semmeldagen" }, - { date: "2025-03-05", completed: false }, - { date: "2025-03-06", completed: false }, - { date: "2025-03-07", completed: false }, - { date: "2025-03-08", completed: false }, - { date: "2025-03-09", completed: false }, - { date: "2025-03-10", completed: false }, - { date: "2025-03-11", completed: false }, - { date: "2025-03-12", completed: false }, - { date: "2025-03-13", completed: false }, - { date: "2025-03-14", completed: false }, - { date: "2025-03-15", completed: false }, - { date: "2025-03-16", completed: false }, - { date: "2025-03-17", completed: false }, - { date: "2025-03-18", completed: false }, - { date: "2025-03-19", completed: false }, - { date: "2025-03-20", completed: false }, - { date: "2025-03-21", completed: false }, - { date: "2025-03-22", completed: false }, - { date: "2025-03-23", completed: false }, - { date: "2025-03-24", completed: false }, - { date: "2025-03-25", completed: false }, - { date: "2025-03-26", completed: false }, - { date: "2025-03-27", completed: false }, - { date: "2025-03-28", completed: false }, - { date: "2025-03-29", excluded: true, because: "Födelsedag" }, - { date: "2025-03-30", completed: false }, - { date: "2025-03-31", completed: false }, - { date: "2025-04-01", completed: false }, - { date: "2025-04-02", completed: false }, - { date: "2025-04-03", completed: false }, - { date: "2025-04-04", completed: false }, - { date: "2025-04-05", completed: false }, - { date: "2025-04-06", completed: false }, - { date: "2025-04-07", completed: false }, - { date: "2025-04-08", completed: false }, - { date: "2025-04-09", completed: false }, - { date: "2025-04-10", completed: false }, - { date: "2025-04-11", completed: false }, - { date: "2025-04-12", completed: false }, - { date: "2025-04-13", completed: false }, - { date: "2025-04-14", completed: false }, - { date: "2025-04-15", completed: false }, - { date: "2025-04-16", completed: false }, - { date: "2025-04-17", excluded: true, because: "Påsk" }, - { date: "2025-04-18", completed: false }, - { date: "2025-04-19", completed: false }, - { date: "2025-04-10", completed: false }, - { date: "2025-04-21", completed: false }, - { date: "2025-04-22", completed: false }, - { date: "2025-04-23", completed: false }, - { date: "2025-04-24", completed: false }, - { date: "2025-04-25", completed: false }, - { date: "2025-04-26", completed: false }, - { date: "2025-04-27", completed: false }, - { date: "2025-04-28", completed: false }, - { date: "2025-04-29", completed: false }, - { date: "2025-04-30", completed: false }, - { date: "2025-05-01", completed: false }, - { date: "2025-05-02", completed: false }, - { date: "2025-05-03", completed: false }, - { date: "2025-05-04", completed: false }, - { date: "2025-05-05", completed: false }, - { date: "2025-05-06", completed: false }, - { date: "2025-05-07", completed: false }, - { date: "2025-05-08", completed: false }, - { date: "2025-05-09", completed: false }, - { date: "2025-05-10", completed: false }, - { date: "2025-05-11", completed: false }, - { date: "2025-05-12", completed: false }, - { date: "2025-05-13", completed: false }, - { date: "2025-05-14", completed: false }, - { date: "2025-05-15", completed: false }, - { date: "2025-05-16", completed: false }, - { date: "2025-05-17", completed: false }, - { date: "2025-05-18", completed: false }, - { date: "2025-05-19", completed: false }, - { date: "2025-05-10", completed: false }, - { date: "2025-05-21", completed: false }, - { date: "2025-05-22", completed: false }, - { date: "2025-05-23", completed: false }, - { date: "2025-05-24", completed: false }, - { date: "2025-05-25", completed: false }, - { date: "2025-05-26", completed: false }, - { date: "2025-05-27", completed: false }, - { date: "2025-05-28", completed: false }, - { date: "2025-05-29", completed: false }, - { date: "2025-05-30", completed: false }, - { date: "2025-05-31", completed: false }, + { date: "2026-01-05", completed: false }, + { date: "2026-01-06", completed: false }, + { date: "2026-01-07", completed: false }, + { date: "2026-01-08", completed: false }, + { date: "2026-01-09", completed: false }, + { date: "2026-01-10", completed: false }, + { date: "2026-01-11", completed: false }, + { date: "2026-01-12", completed: false }, + { date: "2026-01-13", completed: false }, + { date: "2026-01-14", completed: false }, + { date: "2026-01-15", completed: false }, + { date: "2026-01-16", completed: false }, + { date: "2026-01-17", completed: false }, + { date: "2026-01-18", completed: false }, + { date: "2026-01-19", completed: false }, + { date: "2026-01-20", completed: false }, + { date: "2026-01-21", completed: false }, + { date: "2026-01-22", completed: false }, + { date: "2026-01-23", completed: false }, + { date: "2026-01-24", completed: false }, + { date: "2026-01-25", completed: false }, + { date: "2026-01-26", completed: false }, + { date: "2026-01-27", completed: false }, + { date: "2026-01-28", completed: false }, + { date: "2026-01-29", completed: false }, + { date: "2026-01-30", completed: false }, + { date: "2026-01-31", completed: false }, + { date: "2026-02-10", completed: false }, + { date: "2026-02-11", completed: false }, + { date: "2026-02-12", completed: false }, + { date: "2026-02-13", completed: false }, + { date: "2026-02-14", completed: false }, + { date: "2026-02-15", completed: false }, + { date: "2026-02-16", completed: false }, + { date: "2026-02-17", completed: false }, + { date: "2026-02-18", completed: false }, + { date: "2026-02-19", completed: false }, + { date: "2026-02-20", completed: false }, + { date: "2026-02-21", completed: false }, + { date: "2026-02-22", completed: false }, + { date: "2026-02-23", completed: false }, + { date: "2026-02-24", completed: false }, + { date: "2026-02-25", completed: false }, + { date: "2026-02-26", completed: false }, + { date: "2026-02-27", completed: false }, + { date: "2026-02-28", completed: false }, + { date: "2026-03-01", completed: false }, + { date: "2026-03-02", completed: false }, + { date: "2026-03-03", completed: false }, + { date: "2026-03-04", completed: false }, + { date: "2026-03-05", completed: false }, + { date: "2026-03-06", completed: false }, + { date: "2026-03-07", completed: false }, + { date: "2026-03-08", completed: false }, + { date: "2026-03-09", completed: false }, + { date: "2026-03-10", completed: false }, + { date: "2026-03-11", completed: false }, + { date: "2026-03-12", completed: false }, + { date: "2026-03-13", completed: false }, + { date: "2026-03-14", completed: false }, + { date: "2026-03-15", completed: false }, + { date: "2026-03-16", completed: false }, + { date: "2026-03-17", completed: false }, + { date: "2026-03-18", completed: false }, + { date: "2026-03-19", completed: false }, + { date: "2026-03-20", completed: false }, + { date: "2026-03-21", completed: false }, + { date: "2026-03-22", completed: false }, + { date: "2026-03-23", completed: false }, + { date: "2026-03-24", completed: false }, + { date: "2026-03-25", completed: false }, + { date: "2026-03-26", completed: false }, + { date: "2026-03-27", completed: false }, + { date: "2026-03-28", completed: false }, + { date: "2026-03-29", completed: false }, + { date: "2026-03-30", completed: false }, + { date: "2026-03-31", completed: false }, + { date: "2026-04-01", completed: false }, + { date: "2026-04-02", completed: false }, + { date: "2026-04-03", completed: false }, + { date: "2026-04-04", completed: false }, + { date: "2026-04-05", completed: false }, + { date: "2026-04-06", completed: false }, + { date: "2026-04-07", completed: false }, + { date: "2026-04-08", completed: false }, + { date: "2026-04-09", completed: false }, + { date: "2026-04-10", completed: false }, + { date: "2026-04-11", completed: false }, + { date: "2026-04-12", completed: false }, + { date: "2026-04-13", completed: false }, + { date: "2026-04-14", completed: false }, + { date: "2026-04-15", completed: false }, + { date: "2026-04-16", completed: false }, + { date: "2026-04-17", completed: false }, + { date: "2026-04-18", completed: false }, + { date: "2026-04-19", completed: false }, + { date: "2026-04-20", completed: false }, + { date: "2026-04-21", completed: false }, + { date: "2026-04-22", completed: false }, + { date: "2026-04-23", completed: false }, + { date: "2026-04-24", completed: false }, + { date: "2026-04-25", completed: false }, + { date: "2026-04-26", completed: false }, + { date: "2026-04-27", completed: false }, + { date: "2026-04-28", completed: false }, + { date: "2026-04-29", completed: false }, + { date: "2026-04-30", completed: false }, + { date: "2026-05-01", completed: false }, + { date: "2026-05-02", completed: false }, + { date: "2026-05-03", completed: false }, + { date: "2026-05-04", completed: false }, + { date: "2026-05-05", completed: false }, + { date: "2026-05-06", completed: false }, + { date: "2026-05-07", completed: false }, + { date: "2026-05-08", completed: false }, + { date: "2026-05-09", completed: false }, + { date: "2026-05-10", completed: false }, + { date: "2026-05-11", completed: false }, + { date: "2026-05-12", completed: false }, + { date: "2026-05-13", completed: false }, + { date: "2026-05-14", completed: false }, + { date: "2026-05-15", completed: false }, + { date: "2026-05-16", completed: false }, + { date: "2026-05-17", completed: false }, + { date: "2026-05-18", completed: false }, + { date: "2026-05-19", completed: false }, + { date: "2026-05-20", completed: false }, + { date: "2026-05-21", completed: false }, + { date: "2026-05-22", completed: false }, + { date: "2026-05-23", completed: false }, + { date: "2026-05-24", completed: false }, + { date: "2026-05-25", completed: false }, + { date: "2026-05-26", completed: false }, + { date: "2026-05-27", completed: false }, + { date: "2026-05-28", completed: false }, + { date: "2026-05-29", completed: false }, + { date: "2026-05-30", completed: false }, + { date: "2026-05-31", completed: false }, + { date: "2026-06-01", completed: false }, + { date: "2026-06-02", completed: false }, + { date: "2026-06-03", completed: false }, + { date: "2026-06-04", completed: false }, + { date: "2026-06-05", completed: false }, + { date: "2026-06-06", completed: false }, + { date: "2026-06-07", completed: false }, + { date: "2026-06-08", completed: false }, + { date: "2026-06-09", completed: false }, + { date: "2026-06-10", completed: false }, + { date: "2026-06-11", completed: false }, + { date: "2026-06-12", completed: false }, + { date: "2026-06-13", completed: false }, + { date: "2026-06-14", completed: false }, + { date: "2026-06-15", completed: false }, + { date: "2026-06-16", completed: false }, + { date: "2026-06-17", completed: false }, + { date: "2026-06-18", completed: false }, + { date: "2026-06-19", completed: false }, + { date: "2026-06-20", completed: false }, + { date: "2026-06-21", completed: false }, + { date: "2026-06-22", completed: false }, + { date: "2026-06-23", completed: false }, + { date: "2026-06-24", completed: false }, + { date: "2026-06-25", completed: false }, + { date: "2026-06-26", completed: false }, + { date: "2026-06-27", completed: false }, + { date: "2026-06-28", completed: false }, + { date: "2026-06-29", completed: false }, + { date: "2026-06-30", completed: false }, ]; + +const walks = [ + { date: "2026-01-05", completed: false }, + { date: "2026-01-06", completed: false }, + { date: "2026-01-07", completed: false }, + { date: "2026-01-08", completed: false }, + { date: "2026-01-09", completed: false }, + { date: "2026-01-10", completed: false }, + { date: "2026-01-11", completed: false }, + { date: "2026-01-12", completed: false }, + { date: "2026-01-13", completed: false }, + { date: "2026-01-14", completed: false }, + { date: "2026-01-15", completed: false }, + { date: "2026-01-16", completed: false }, + { date: "2026-01-17", completed: false }, + { date: "2026-01-18", completed: false }, + { date: "2026-01-19", completed: false }, + { date: "2026-01-20", completed: false }, + { date: "2026-01-21", completed: false }, + { date: "2026-01-22", completed: false }, + { date: "2026-01-23", completed: false }, + { date: "2026-01-24", completed: false }, + { date: "2026-01-25", completed: false }, + { date: "2026-01-26", completed: false }, + { date: "2026-01-27", completed: false }, + { date: "2026-01-28", completed: false }, + { date: "2026-01-29", completed: false }, + { date: "2026-01-30", completed: false }, + { date: "2026-01-31", completed: false }, + { date: "2026-02-10", completed: false }, + { date: "2026-02-11", completed: false }, + { date: "2026-02-12", completed: false }, + { date: "2026-02-13", completed: false }, + { date: "2026-02-14", completed: false }, + { date: "2026-02-15", completed: false }, + { date: "2026-02-16", completed: false }, + { date: "2026-02-17", completed: false }, + { date: "2026-02-18", completed: false }, + { date: "2026-02-19", completed: false }, + { date: "2026-02-20", completed: false }, + { date: "2026-02-21", completed: false }, + { date: "2026-02-22", completed: false }, + { date: "2026-02-23", completed: false }, + { date: "2026-02-24", completed: false }, + { date: "2026-02-25", completed: false }, + { date: "2026-02-26", completed: false }, + { date: "2026-02-27", completed: false }, + { date: "2026-02-28", completed: false }, + { date: "2026-03-01", completed: false }, + { date: "2026-03-02", completed: false }, + { date: "2026-03-03", completed: false }, + { date: "2026-03-04", completed: false }, + { date: "2026-03-05", completed: false }, + { date: "2026-03-06", completed: false }, + { date: "2026-03-07", completed: false }, + { date: "2026-03-08", completed: false }, + { date: "2026-03-09", completed: false }, + { date: "2026-03-10", completed: false }, + { date: "2026-03-11", completed: false }, + { date: "2026-03-12", completed: false }, + { date: "2026-03-13", completed: false }, + { date: "2026-03-14", completed: false }, + { date: "2026-03-15", completed: false }, + { date: "2026-03-16", completed: false }, + { date: "2026-03-17", completed: false }, + { date: "2026-03-18", completed: false }, + { date: "2026-03-19", completed: false }, + { date: "2026-03-20", completed: false }, + { date: "2026-03-21", completed: false }, + { date: "2026-03-22", completed: false }, + { date: "2026-03-23", completed: false }, + { date: "2026-03-24", completed: false }, + { date: "2026-03-25", completed: false }, + { date: "2026-03-26", completed: false }, + { date: "2026-03-27", completed: false }, + { date: "2026-03-28", completed: false }, + { date: "2026-03-29", completed: false }, + { date: "2026-03-30", completed: false }, + { date: "2026-03-31", completed: false }, + { date: "2026-04-01", completed: false }, + { date: "2026-04-02", completed: false }, + { date: "2026-04-03", completed: false }, + { date: "2026-04-04", completed: false }, + { date: "2026-04-05", completed: false }, + { date: "2026-04-06", completed: false }, + { date: "2026-04-07", completed: false }, + { date: "2026-04-08", completed: false }, + { date: "2026-04-09", completed: false }, + { date: "2026-04-10", completed: false }, + { date: "2026-04-11", completed: false }, + { date: "2026-04-12", completed: false }, + { date: "2026-04-13", completed: false }, + { date: "2026-04-14", completed: false }, + { date: "2026-04-15", completed: false }, + { date: "2026-04-16", completed: false }, + { date: "2026-04-17", completed: false }, + { date: "2026-04-18", completed: false }, + { date: "2026-04-19", completed: false }, + { date: "2026-04-20", completed: false }, + { date: "2026-04-21", completed: false }, + { date: "2026-04-22", completed: false }, + { date: "2026-04-23", completed: false }, + { date: "2026-04-24", completed: false }, + { date: "2026-04-25", completed: false }, + { date: "2026-04-26", completed: false }, + { date: "2026-04-27", completed: false }, + { date: "2026-04-28", completed: false }, + { date: "2026-04-29", completed: false }, + { date: "2026-04-30", completed: false }, + { date: "2026-05-01", completed: false }, + { date: "2026-05-02", completed: false }, + { date: "2026-05-03", completed: false }, + { date: "2026-05-04", completed: false }, + { date: "2026-05-05", completed: false }, + { date: "2026-05-06", completed: false }, + { date: "2026-05-07", completed: false }, + { date: "2026-05-08", completed: false }, + { date: "2026-05-09", completed: false }, + { date: "2026-05-10", completed: false }, + { date: "2026-05-11", completed: false }, + { date: "2026-05-12", completed: false }, + { date: "2026-05-13", completed: false }, + { date: "2026-05-14", completed: false }, + { date: "2026-05-15", completed: false }, + { date: "2026-05-16", completed: false }, + { date: "2026-05-17", completed: false }, + { date: "2026-05-18", completed: false }, + { date: "2026-05-19", completed: false }, + { date: "2026-05-20", completed: false }, + { date: "2026-05-21", completed: false }, + { date: "2026-05-22", completed: false }, + { date: "2026-05-23", completed: false }, + { date: "2026-05-24", completed: false }, + { date: "2026-05-25", completed: false }, + { date: "2026-05-26", completed: false }, + { date: "2026-05-27", completed: false }, + { date: "2026-05-28", completed: false }, + { date: "2026-05-29", completed: false }, + { date: "2026-05-30", completed: false }, + { date: "2026-05-31", completed: false }, + { date: "2026-06-01", completed: false }, + { date: "2026-06-02", completed: false }, + { date: "2026-06-03", completed: false }, + { date: "2026-06-04", completed: false }, + { date: "2026-06-05", completed: false }, + { date: "2026-06-06", completed: false }, + { date: "2026-06-07", completed: false }, + { date: "2026-06-08", completed: false }, + { date: "2026-06-09", completed: false }, + { date: "2026-06-10", completed: false }, + { date: "2026-06-11", completed: false }, + { date: "2026-06-12", completed: false }, + { date: "2026-06-13", completed: false }, + { date: "2026-06-14", completed: false }, + { date: "2026-06-15", completed: false }, + { date: "2026-06-16", completed: false }, + { date: "2026-06-17", completed: false }, + { date: "2026-06-18", completed: false }, + { date: "2026-06-19", completed: false }, + { date: "2026-06-20", completed: false }, + { date: "2026-06-21", completed: false }, + { date: "2026-06-22", completed: false }, + { date: "2026-06-23", completed: false }, + { date: "2026-06-24", completed: false }, + { date: "2026-06-25", completed: false }, + { date: "2026-06-26", completed: false }, + { date: "2026-06-27", completed: false }, + { date: "2026-06-28", completed: false }, + { date: "2026-06-29", completed: false }, + { date: "2026-06-30", completed: false }, +]; + export default { - cardio, + walks, gym, diet, fast, diff --git a/package-lock.json b/package-lock.json index 9e73e09..fef2bc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,6 +84,7 @@ "integrity": "sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", @@ -2401,6 +2402,7 @@ "integrity": "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.0", @@ -2474,6 +2476,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2496,6 +2499,7 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -2703,6 +2707,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", @@ -4459,6 +4464,7 @@ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -4511,6 +4517,7 @@ "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -5217,6 +5224,7 @@ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.19.6.tgz", "integrity": "sha512-6ydekB3qyqUal+UhfMjmVOjRGtxysR8vuiMhi2nwuBtPJWnctVlsGspjVFB05qmR+TXI1emuqtZt81c0XiFleA==", "license": "MIT", + "peer": true, "dependencies": { "@ampproject/remapping": "^2.3.0", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -5308,6 +5316,7 @@ "integrity": "sha512-w8CXxxbFA5zfNsR/i8HZq5bvn18AK0O9jj7hyo1YqkovLxEFa0uP0LCVGZRqiRaKRFxXhELBp8SteeAjEnfeJg==", "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -5442,6 +5451,7 @@ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5584,6 +5594,7 @@ "integrity": "sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.24.2", "postcss": "^8.4.49", @@ -5989,6 +6000,7 @@ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "rollup": "dist/bin/rollup" }, diff --git a/src/App.svelte b/src/App.svelte index f82e52f..7cd836a 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -4,7 +4,7 @@ import { currentView } from "./lib/store"; import Summary from "./lib/Summary.svelte"; import GymProgress from "./lib/GymProgress.svelte"; - import CardioProgress from "./lib/CardioProgress.svelte"; + import WalksProgress from "./lib/WalksProgress.svelte"; import DietProgress from "./lib/DietProgress.svelte"; import FastProgress from "./lib/FastProgress.svelte"; import Info from "./lib/Info.svelte"; @@ -18,7 +18,7 @@ {/if} {#if $currentView === 2} - + {/if} {#if $currentView === 3} diff --git a/src/lib/Arc.svelte b/src/lib/Arc.svelte index 041b03d..b0dc2dd 100644 --- a/src/lib/Arc.svelte +++ b/src/lib/Arc.svelte @@ -1,14 +1,14 @@ @@ -129,7 +133,7 @@ fill="#fff" opacity="0.066" d={points( - size / 2 - level * (segmentHeight + 4), + size / 2 - level * (segmentHeight + 6), span, segmentHeight, )} @@ -138,18 +142,18 @@ class={c} fill="currentColor" d={points( - size / 2 - level * (segmentHeight + 4), + size / 2 - level * (segmentHeight + 6), progress * span, segmentHeight, )} /> {/each} diff --git a/src/lib/CardioProgress.svelte b/src/lib/CardioProgress.svelte deleted file mode 100644 index 5422ef1..0000000 --- a/src/lib/CardioProgress.svelte +++ /dev/null @@ -1,43 +0,0 @@ - - -
- -

- Konditionsträning: {done} av {remaining} -

-
-
- -
- {#each $cardio as col, i} -
- -
- {/each} -
-
- - diff --git a/src/lib/GymProgress.svelte b/src/lib/GymProgress.svelte index 2910127..3a406c7 100644 --- a/src/lib/GymProgress.svelte +++ b/src/lib/GymProgress.svelte @@ -2,7 +2,7 @@ import { gym } from "./store"; import {dm, back } from "./common"; const remaining = $gym.length; - const days = ["sön", "tis", "tor"]; + const days = ["mån", "tis", "ons", "fre"]; let done = $derived($gym.filter((c) => c.completed).length); @@ -33,6 +33,10 @@ border-top: 4px solid rgba(0, 0, 0, 0.2) } + .calendar { + grid-template-columns: repeat(4, 1fr); + } + article:nth-child(1) { grid-column: 3; } diff --git a/src/lib/Info.svelte b/src/lib/Info.svelte index 39690f6..d8e9636 100644 --- a/src/lib/Info.svelte +++ b/src/lib/Info.svelte @@ -12,25 +12,19 @@

Hej, Anders har en 40-årskris xD

-

Dessutom hägrar en vecka på Sweden rock festival. - Ryggen och benen behöver vara i form.

För att göra träningen litet mer belönande skapades denna app för att ge honom möjlighet att bocka i allt han gör.

-

Börja löpträna

-

Anders har tidigare löptränat, men inte gjort det kontinuerligt sedan 2017.

-

Metod: löpträning 3 gånger per vecka: 2 pass med 2 intervaller, ett långpass. Linjär - progression med 60–120 sekunders ökning per pass.

- Mål: 5km löpning efter 7 veckor. -

Återuppta styrkelyft

-

Anders föredrar baslyft med frivikter. Hans PB slogs senast januari 2023.

+

Daglig stegräkning

+

Anders jobbar på kontor och behöver se till att röra sig.

+ Minst 10 000 steg varje dag. +

Återuppta styrketräning

+

Anders föredrar baslyft med frivikter. Hans PB slogs senast januari 2023. Han behöver prioritera att bygga litet muskler.

- Metod: styrketräning 3 gånger per vecka. 4 veckor grundträning (A-blocket), - 4 veckor specialiserad träning (B-blocket), 3 veckor toppning (C-blocket). + Metod: Powerbuilding, 4ggr/vecka.

- Mål: 11 veckors träning, med avslutande toppning och - styrkelyftstotal. + Mål: 24 veckors träning.

Inleda diet

Anders har ett uppskattat BMI på 28-32 vid start av denna utmaning. @@ -38,7 +32,7 @@

Metod: Följa Alan Thralls tips, som listas nedan. - Anders cheat meals: Semla på semmeldagen, fika på födelsedagen, liten godispåse på lördagar. + Anders cheat meals: Semla på semmeldagen, fika på födelsedagen.

    @@ -59,7 +53,7 @@
-

Mål: Följa ovan kostråd 16 veckor, med fördefinierade cheat meals.

+

Mål: Följa ovan kostråd jan–juni, med fördefinierade cheat meals.

Vem?

Anders skapade denna PWA. Han är en webbutvecklare som är pappa, älskar hårdrock och föredrar att diff --git a/src/lib/Summary.svelte b/src/lib/Summary.svelte index 28697e0..7c5ed9e 100644 --- a/src/lib/Summary.svelte +++ b/src/lib/Summary.svelte @@ -1,9 +1,8 @@ + +

+ +

+ Stegutmaning: {done} av {remaining} +

+
+
+ +
+ {#each $walks as day, i} +
+ {#if day.excluded} +
+ {day.because} +
+ {:else} + + {/if} +
+ {/each} +
+
+ + diff --git a/src/lib/store.ts b/src/lib/store.ts index 9bc5ef5..cb72cd4 100644 --- a/src/lib/store.ts +++ b/src/lib/store.ts @@ -3,8 +3,7 @@ import { persisted } from "svelte-persisted-store"; import defaultState from "../../data/default-state"; export const currentView = writable(0); - -export const cardio = persisted("cardio", defaultState.cardio); +export const walks = persisted("walks", defaultState.walks); export const gym = persisted("gym", defaultState.gym); export const diet = persisted("diet", defaultState.diet); export const fast = persisted("fast", defaultState.fast);