Initial commit -- Core Cooldown v0.1.0

This commit is contained in:
2026-02-07 01:12:32 +02:00
commit 48cbbfa552
47 changed files with 15106 additions and 0 deletions

115
src/lib/utils/activities.ts Normal file
View File

@@ -0,0 +1,115 @@
export interface BreakActivity {
category: "eyes" | "stretch" | "breathing" | "movement";
text: string;
}
export const breakActivities: BreakActivity[] = [
// Eyes
{ category: "eyes", text: "Look at something 20 feet away for 20 seconds" },
{ category: "eyes", text: "Close your eyes and gently press your palms over them" },
{ category: "eyes", text: "Slowly roll your eyes in circles, 5 times each direction" },
{ category: "eyes", text: "Focus on a distant object, then a near one — repeat 5 times" },
{ category: "eyes", text: "Blink rapidly 20 times to refresh your eyes" },
{ category: "eyes", text: "Look up, down, left, right — hold each for 2 seconds" },
{ category: "eyes", text: "Cup your hands over closed eyes and breathe deeply" },
{ category: "eyes", text: "Trace a figure-8 with your eyes, slowly" },
{ category: "eyes", text: "Look out the nearest window and find the farthest point" },
{ category: "eyes", text: "Gently massage your temples in small circles" },
{ category: "eyes", text: "Close your eyes and visualize a calm, dark space for 20 seconds" },
{ category: "eyes", text: "Warm your palms by rubbing them together, then rest them over closed eyes" },
{ category: "eyes", text: "Slowly shift your gaze along the horizon line outside" },
{ category: "eyes", text: "Focus on the tip of your nose for 5 seconds, then a far wall" },
{ category: "eyes", text: "Look at something green — plants reduce eye strain naturally" },
{ category: "eyes", text: "Close your eyes and gently press your eyebrows outward from center" },
{ category: "eyes", text: "Squeeze your eyes shut for 3 seconds, then open wide — repeat 5 times" },
{ category: "eyes", text: "Trace the outline of a window frame with your eyes, slowly" },
// Stretches
{ category: "stretch", text: "Roll your shoulders backward slowly, 5 times" },
{ category: "stretch", text: "Interlace fingers behind your back and open your chest" },
{ category: "stretch", text: "Tilt your head to each side, holding for 10 seconds" },
{ category: "stretch", text: "Stretch your arms overhead and reach for the ceiling" },
{ category: "stretch", text: "Rotate your wrists in circles, 10 times each direction" },
{ category: "stretch", text: "Clasp hands together and push palms away from you" },
{ category: "stretch", text: "Gently twist your torso left and right from your chair" },
{ category: "stretch", text: "Drop your chin to your chest and slowly roll your neck" },
{ category: "stretch", text: "Extend each arm across your chest, hold for 15 seconds" },
{ category: "stretch", text: "Open and close your hands, spreading fingers wide" },
{ category: "stretch", text: "Place your right hand on your left knee and twist gently — switch sides" },
{ category: "stretch", text: "Reach one arm overhead and lean to the opposite side, hold 10 seconds each" },
{ category: "stretch", text: "Interlace your fingers and flip your palms to the ceiling, push up" },
{ category: "stretch", text: "Pull each finger gently backward for 3 seconds to stretch your forearms" },
{ category: "stretch", text: "Press your palms together at chest height and push for 10 seconds" },
{ category: "stretch", text: "Sit tall, reach behind to grab the back of your chair, and open your chest" },
{ category: "stretch", text: "Cross one ankle over the opposite knee and lean forward gently" },
{ category: "stretch", text: "Shrug your shoulders up to your ears, hold 5 seconds, release slowly" },
// Breathing
{ category: "breathing", text: "Inhale for 4 seconds, hold for 4, exhale for 6" },
{ category: "breathing", text: "Take 5 deep belly breaths — feel your diaphragm expand" },
{ category: "breathing", text: "Box breathing: inhale 4s, hold 4s, exhale 4s, hold 4s" },
{ category: "breathing", text: "Breathe in through your nose, out through your mouth — 5 times" },
{ category: "breathing", text: "Sigh deeply 3 times to release tension" },
{ category: "breathing", text: "Place a hand on your chest and breathe so only your belly moves" },
{ category: "breathing", text: "Alternate nostril breathing: 3 cycles each side" },
{ category: "breathing", text: "Exhale completely, then take the deepest breath you can" },
{ category: "breathing", text: "Count your breaths backward from 10 to 1" },
{ category: "breathing", text: "Breathe in calm, breathe out tension — 5 rounds" },
{ category: "breathing", text: "4-7-8 breathing: inhale 4s, hold 7s, exhale slowly for 8s" },
{ category: "breathing", text: "Take 3 breaths making your exhale twice as long as your inhale" },
{ category: "breathing", text: "Breathe in for 2 counts, out for 2 — gradually increase to 6 each" },
{ category: "breathing", text: "Hum gently on each exhale for 5 breaths — feel the vibration in your chest" },
{ category: "breathing", text: "Imagine breathing in cool blue air and exhaling warm red air — 5 rounds" },
{ category: "breathing", text: "Place both hands on your ribs and breathe so you feel them expand sideways" },
{ category: "breathing", text: "Breathe in through pursed lips slowly, then exhale in a long, steady stream" },
// Movement
{ category: "movement", text: "Stand up and walk to the nearest window" },
{ category: "movement", text: "Do 10 standing calf raises" },
{ category: "movement", text: "Walk to get a glass of water" },
{ category: "movement", text: "Stand and do 5 gentle squats" },
{ category: "movement", text: "Take a short walk around your room" },
{ category: "movement", text: "Stand on one foot for 15 seconds, then switch" },
{ category: "movement", text: "Do 10 arm circles, forward then backward" },
{ category: "movement", text: "March in place for 30 seconds" },
{ category: "movement", text: "Shake out your hands and arms for 10 seconds" },
{ category: "movement", text: "Stand up, touch your toes, and slowly rise" },
{ category: "movement", text: "Walk to the farthest room in your home and back" },
{ category: "movement", text: "Do 5 wall push-ups — hands on the wall, lean in and push back" },
{ category: "movement", text: "Stand up and slowly shift your weight side to side for 20 seconds" },
{ category: "movement", text: "Walk in a small circle, paying attention to each footstep" },
{ category: "movement", text: "Rise onto your tiptoes, hold for 5 seconds, lower slowly — repeat 5 times" },
{ category: "movement", text: "Do a gentle standing forward fold — let your arms hang loose" },
{ category: "movement", text: "Step away from your desk and do 10 hip circles in each direction" },
{ category: "movement", text: "Stand with your back against a wall and slide down into a gentle wall sit for 15 seconds" },
];
const categoryIcons: Record<BreakActivity["category"], string> = {
eyes: "👁",
stretch: "🤸",
breathing: "🌬",
movement: "🚶",
};
const categoryLabels: Record<BreakActivity["category"], string> = {
eyes: "Eye Exercise",
stretch: "Stretch",
breathing: "Breathing",
movement: "Movement",
};
export function getCategoryIcon(cat: BreakActivity["category"]): string {
return categoryIcons[cat];
}
export function getCategoryLabel(cat: BreakActivity["category"]): string {
return categoryLabels[cat];
}
/** Pick a random activity, optionally excluding a previous one */
export function pickRandomActivity(exclude?: BreakActivity): BreakActivity {
const pool = exclude
? breakActivities.filter((a) => a.text !== exclude.text)
: breakActivities;
return pool[Math.floor(Math.random() * pool.length)];
}