diff --git a/package.json b/package.json index 0545857..34f69c3 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "gen-branches && vite", + "dev": "npm run gen-branches && vite", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview", diff --git a/src/generated/branches.ts b/src/generated/branches.ts index 7a56c3b..a2905a9 100644 --- a/src/generated/branches.ts +++ b/src/generated/branches.ts @@ -2,12 +2,212 @@ import type { BranchData } from "../types"; const data: BranchData = { - "generatedAt": "2026-04-26T22:06:42.722Z", - "currentBranch": "", + "generatedAt": "2026-05-26T08:57:19.284Z", + "currentBranch": "sola4", "mainBranch": "master", "branches": [ { - "name": "master", + "name": "Eti-NewJoke", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Eti-Orenbach", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Hilla_Arye", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Hilla_Arye_2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Maayan-Bukrits", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "RivkaBarashi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Shira-Shemesh", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "ShiraShemesh2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_1", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_3", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "Vcomm_3_noaNew", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "ayala-joke2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "hadar-gerafi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "hadas-karasenti", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiter-2-RachelWeinberger", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kitera", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-1", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-1-chedvaf", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-1-efrat", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-2-yehudit", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-3", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-3-Ayelet", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "kiteria-3-ester", "parentBranch": null, "shortHash": "", "lastCommitMessage": "", @@ -15,157 +215,205 @@ const data: BranchData = { "isCurrent": false }, { - "name": "diamond", - "parentBranch": "master", - "shortHash": "234", - "lastCommitMessage": "diamond", + "name": "kiteria-3_RachelPanet", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "red", - "parentBranch": "diamond", - "shortHash": "23444", - "lastCommitMessage": "moshe", + "name": "kiteria_chedva", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "miri", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "miri", + "name": "maayan-vecomm-1-vecomm", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "roch", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", + "name": "maayan2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "roch", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", + "name": "master", + "parentBranch": null, + "shortHash": "0c10217", + "lastCommitMessage": "fix: instructions branch names", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "avi nos", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", - "isMergedIntoParent": true, + "name": "noa_gabay", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "shia cjss s", - "parentBranch": "red", - "shortHash": "23444", - "lastCommitMessage": "roch ", + "name": "shani", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "blue", - "parentBranch": "diamond", - "shortHash": "23444", - "lastCommitMessage": "moshe", + "name": "shani2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", "isMergedIntoParent": false, "isCurrent": false }, { - "name": "red", - "parentBranch": "diamond", - "shortHash": "23444", - "lastCommitMessage": "moshe", + "name": "shiraGidi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola", + "parentBranch": null, + "shortHash": "0c10217", + "lastCommitMessage": "fix: instructions branch names", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola3", + "parentBranch": null, + "shortHash": "0c10217", + "lastCommitMessage": "fix: instructions branch names", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "sola4", + "parentBranch": null, + "shortHash": "0c10217", + "lastCommitMessage": "fix: instructions branch names", "isMergedIntoParent": false, "isCurrent": true }, { - "name": "star", - "parentBranch": "master", - "shortHash": "23454", - "lastCommitMessage": "yos", - "isMergedIntoParent": true, + "name": "stars", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "green", - "parentBranch": "star", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "stars-green", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "tut", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "stars-green-bat-sheva-bloch", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "brach", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "stars-green-jonny-update-miryam-dahari", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "yochi", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "tamar-levi-branch", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "sjn cjknd", - "parentBranch": "green", - "shortHash": "23454", - "lastCommitMessage": "green", - "isMergedIntoParent": true, + "name": "team/vcomm/sub/vcomm3/noagabay", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "yellow", - "parentBranch": "star", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "tovi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "vcomm/vcomm-1/ShiraShemesh", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "hjdf df", - "parentBranch": "yellow", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "vcomm/vcomm-1/ShiraShemesh2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + }, + { + "name": "vcomm/vcomm-1/tova", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "gfkj dfkn", - "parentBranch": "yellow", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "vcomm/vcomm-1/tovi", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, { - "name": "fldngk df", - "parentBranch": "yellow", - "shortHash": "23454", - "lastCommitMessage": "yellow fkgnlfg df", - "isMergedIntoParent": true, + "name": "vcomm/vcomm-1/tovi-joke2", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, "isCurrent": false }, + { + "name": "vcomm/vcomm3/ayalaKlein", + "parentBranch": null, + "shortHash": "", + "lastCommitMessage": "", + "isMergedIntoParent": false, + "isCurrent": false + } ] }; diff --git a/src/students/index.ts b/src/students/index.ts index 61729ef..5498926 100644 --- a/src/students/index.ts +++ b/src/students/index.ts @@ -5,6 +5,8 @@ import DanaDuviJokePage from "./dana-duvi/JokePage"; import ChaniChanzinCard from "./chani-chanzin/Card"; import ChaniChanzinJokePage from "./chani-chanzin/JokePage"; +import yaelihainCard from "./yaeli-hain/Card"; +import yaelihainJokePage from "./yaeli-hain/JokePage"; import yaeliCard from "./yaeli-rosner/Card"; import yaeliJokePage from "./yaeli-rosner/JokePage"; @@ -31,6 +33,14 @@ const students: Student[] = [ CardComponent: ChaniChanzinCard, JokePageComponent: ChaniChanzinJokePage, }, + { + id: "yaeli-hain ", + name: "יעלי היין", + jokeTitle:"באגים", + CardComponent: yaelihainCard, + JokePageComponent: yaelihainJokePage, +}, + { id: "sara-levin", name: "שרה לוין", diff --git a/src/students/yaeli-hain/Card.tsx b/src/students/yaeli-hain/Card.tsx new file mode 100644 index 0000000..75a4b6d --- /dev/null +++ b/src/students/yaeli-hain/Card.tsx @@ -0,0 +1,12 @@ +import styles from "./styles.module.css"; +import { CardProps } from "../../types"; +import students from ".."; + +export default function yaelihainCard({ student, onClick }: CardProps) { + return ( +
+

{student.jokeTitle}

+

{student.name}

+
+ ); +} \ No newline at end of file diff --git a/src/students/yaeli-hain/JokePage.tsx b/src/students/yaeli-hain/JokePage.tsx new file mode 100644 index 0000000..b52847a --- /dev/null +++ b/src/students/yaeli-hain/JokePage.tsx @@ -0,0 +1,15 @@ +import styles from "./styles.module.css"; +import { PageProps } from "../../types"; + + +export default function yaelihainJokePage({ onBack }: PageProps) { + return ( +
+ +

למה מתכנתים אוהבים להשתמש במצב לילה (Dark Mode)? + + כי אור מושך באגים. 😉

+ +
+ ); +} \ No newline at end of file diff --git a/src/students/yaeli-hain/styles.module.css b/src/students/yaeli-hain/styles.module.css new file mode 100644 index 0000000..d28632a --- /dev/null +++ b/src/students/yaeli-hain/styles.module.css @@ -0,0 +1,147 @@ +/* styles.module.css + Grid + card styles for a "joke" list. Designed for CSS Modules. +*/ + +.jokeGrid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 16px; + align-items: start; + padding: 12px; +} + +/* Individual joke card */ +.jokeCard { + background: linear-gradient(180deg, #ffffff 0%, #fbfbfe 100%); + border: 1px solid rgba(20, 24, 40, 0.06); + border-radius: 12px; + box-shadow: 0 4px 12px rgba(18, 22, 45, 0.06); + padding: 14px; + display: flex; + flex-direction: column; + gap: 10px; + transition: transform 200ms ease, box-shadow 200ms ease; + overflow: hidden; + will-change: transform; +} +.jokeCard:hover, +.jokeCard:focus-within { + transform: translateY(-6px); + box-shadow: 0 10px 30px rgba(18, 22, 45, 0.12); +} + +/* Header: avatar + title/meta */ +.jokeHeader { + display: flex; + gap: 10px; + align-items: center; +} +.avatar { + width: 40px; + height: 40px; + flex: 0 0 40px; + border-radius: 999px; + background: linear-gradient(135deg, #7b61ff, #00c2ff); + display: inline-block; + box-shadow: inset 0 -6px 18px rgba(0,0,0,0.08); +} + +/* Setup text (the first part of the joke) */ +/* Grid background/color tweak */ +.jokeGrid { + background: linear-gradient(180deg, #f5f8ff 0%, #ffffff 100%); + border-radius: 14px; + padding: 14px; + border: 1px solid rgba(99,102,241,0.06); + box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset; +} + +/* Setup text (the first part of the joke) */ +.jokeSetup { + font-size: 16px; /* גדל */ + font-weight: 600; /* חזק יותר */ + color: #0b1220; /* כהה יותר לקריאות */ + line-height: 1.4; + margin: 0; + word-break: break-word; +} + +/* Punchline: hidden by default and revealed with a data attribute */ +.jokePunchline { + font-size: 16px; /* גדל */ + font-weight: 600; /* חזק יותר */ + color: #0b1220; + background: rgba(11, 18, 32, 0.02); + border-radius: 8px; + padding: 10px; + margin-top: 6px; + max-height: 0; + opacity: 0; + overflow: hidden; + transform-origin: top left; + transform: translateY(-6px) scale(0.995); + transition: opacity 220ms cubic-bezier(.2,.9,.2,1), max-height 220ms ease, transform 220ms ease; +} + +/* When the card has data-revealed="true" (toggle from JS or via aria-expanded), show the punchline */ +[data-revealed="true"] .jokePunchline { + max-height: 400px; /* large enough for typical punchlines */ + opacity: 1; + transform: none; +} + +/* Meta row: tags, date, actions */ +.jokeMeta { + display: flex; + gap: 8px; + align-items: center; + margin-top: auto; + justify-content: space-between; + font-size: 13px; /* מעט גדול יותר */ + color: #50555f; /* כהה יותר לקריאות */ +} +.tag { + background: rgba(99,102,241,0.08); + color: #4f46e5; + padding: 6px 8px; + border-radius: 999px; + white-space: nowrap; +} + +/* Simple action button (like reveal or vote) */ +.actionBtn { + background: transparent; + border: none; + color: #374151; + padding: 6px 8px; + border-radius: 8px; + cursor: pointer; + transition: background 160ms ease, color 160ms ease; + font-weight: 600; /* טיפה יותר ניגודיות לכפתורים */ +} +.actionBtn:hover, +.actionBtn:focus { + background: rgba(15,23,42,0.04); + color: #111827; +} + +/* Accessibility focus outline */ +.jokeCard:focus-within .actionBtn, +.actionBtn:focus { + outline: 3px solid rgba(59,130,246,0.18); + outline-offset: 2px; +} + +/* Responsive tweaks */ +@media (max-width: 520px) { + .jokeGrid { + gap: 10px; + padding: 10px; + border-radius: 12px; + background: linear-gradient(180deg, #fbfdff 0%, #ffffff 100%); + } + .avatar { width: 36px; height: 36px; } + .jokeSetup { font-size: 15px; } + .jokePunchline { font-size: 15px; } + .jokeMeta { font-size: 12px; } +} \ No newline at end of file