From a23f2e52c2d72f16e1294b38b389270a211d0619 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 5 Oct 2026 08:05:49 +0000 Subject: [PATCH] =?UTF-8?q?Relaunch:=20Station=20=C3=96ffnungszeiten=20liv?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vierter Eintrag der Funktionen-Gruppe (nach der News-Pinnwand, „Bald verfügbar“, ohne Preis): - Website: Bäckerei Sonnenschein mit großer Status-Pille und Hinweis-Leiste „Betriebsurlaub 12.–26. Oktober“ (gleitet per transform ein, der Inhalt rückt nach), Desktop und Handy. - Handy-Ebene: Finger tippt „Hinweis-Leiste anlegen“ (HINWEIS_PUNKT, Platzhalter bis zur Aufnahme). - Uhr-Regler: echter Schieberegler unter dem MacBook (inaktiv: aria-hidden + inert) und in der Handy-Karte. - ZeitenSteuerung (setzeUhr(null) beim Verlassen), lazy-Chunks, Kundenportal importiert aus ablauf.ts nur Typen. - Pins in relaunch-kundenportal.test.tsx auf neun Stationen angepasst (Als App = Marke 8), Spezifikations-Zähler mitgezogen. ACHTUNG: public/relaunch/portal/phone-12-zeiten-{390,780}.webp sind vorläufig Kopien von phone-9-termine (damit Build und Tests laufen); Task 36 ersetzt sie durch die echte Aufnahme. Co-Authored-By: Claude Opus 5.5 --- .../specs/2026-10-01-relaunch-design.md | 4 +- .../specs/2026-10-04-funktionen-demos.md | 2 +- .../relaunch/portal/phone-12-zeiten-390.webp | Bin 0 -> 17154 bytes .../relaunch/portal/phone-12-zeiten-780.webp | Bin 0 -> 39116 bytes src/components/home/Kundenportal.tsx | 74 ++- src/components/home/demos/steuerung.tsx | 19 +- .../home/demos/zeiten/ZeitenHandy.tsx | 31 ++ .../home/demos/zeiten/ZeitenRegler.tsx | 48 ++ .../home/demos/zeiten/ZeitenSeite.tsx | 138 +++++ src/components/home/demos/zeiten/zeiten.css | 341 ++++++++++++ src/components/home/kundenportal.css | 12 +- src/test/demo-chat-vorschau.test.tsx | 4 +- src/test/demo-zeiten.test.tsx | 519 +++++++++++++++++- src/test/relaunch-kundenportal.test.tsx | 98 ++-- 14 files changed, 1234 insertions(+), 56 deletions(-) create mode 100644 public/relaunch/portal/phone-12-zeiten-390.webp create mode 100644 public/relaunch/portal/phone-12-zeiten-780.webp create mode 100644 src/components/home/demos/zeiten/ZeitenHandy.tsx create mode 100644 src/components/home/demos/zeiten/ZeitenRegler.tsx create mode 100644 src/components/home/demos/zeiten/ZeitenSeite.tsx create mode 100644 src/components/home/demos/zeiten/zeiten.css diff --git a/docs/superpowers/specs/2026-10-01-relaunch-design.md b/docs/superpowers/specs/2026-10-01-relaunch-design.md index 42060f9..b4ba598 100644 --- a/docs/superpowers/specs/2026-10-01-relaunch-design.md +++ b/docs/superpowers/specs/2026-10-01-relaunch-design.md @@ -249,7 +249,7 @@ Texte in **[eckigen Klammern]** brauchen die Freigabe des Inhabers (Abschnitt 11 - Keine festgepinnte Bühne. - Stattdessen eine **Wisch-Reihe** (9.4) mit je einem Handy-Screenshot im Rahmen und der Bildunterschrift darunter. - Die letzte Karte „Als App“ zeigt `phone-2-projekte-lang`. Es schiebt sich langsam nach oben, solange die Karte sichtbar ist. -- Bei O9 = ja höchstens 7 Karten. +- Bei O9 = ja höchstens 9 Karten (Stand mit „Öffnungszeiten live“: die Funktions-Reihe hat neun Stationen). **Schrittzeile unter dem Portal** (ersetzt „So arbeiten wir“): - Text: „**1** Kennenlernen · **2** Angebot mit Preis · **3** Bauen mit Vorschau und Ihrer Freigabe · **4** Online – Hosting und Pflege auf Wunsch im Abo“ @@ -496,7 +496,7 @@ Vor jedem Löschen prüfen, dass nichts mehr die Datei importiert. - Die Fokusreihenfolge entspricht der Anzeige. - Kein `aria-live`, keine automatische Bewegung. - **Ab 900 px** zeigt jeder Abschnitt seine Desktop-Darstellung (Liste, Raster oder Bühne). Auf dem Desktop bleibt keine Wisch-Reihe übrig. -- **Grenze:** Höchstens 7 Karten je Reihe. +- **Grenze:** Höchstens 9 Karten je Reihe (Stand mit „Öffnungszeiten live“; vorher 7). ### 9.5 Bilder - **Format und Auslieferung:** diff --git a/docs/superpowers/specs/2026-10-04-funktionen-demos.md b/docs/superpowers/specs/2026-10-04-funktionen-demos.md index f1a849c..4da026f 100644 --- a/docs/superpowers/specs/2026-10-04-funktionen-demos.md +++ b/docs/superpowers/specs/2026-10-04-funktionen-demos.md @@ -130,7 +130,7 @@ reagiert auf Tippen (Zone antippen ⇒ Diagnose unter der Karte). möglichst als eigener Chunk (`React.lazy`), damit die Startseite nicht schwerer wird. - Inaktive Ebenen der Bühne bekommen `pointer-events: none`, damit nur die sichtbare Website auf die Maus reagiert. - Tests: Vitest je Demo (Rendern Desktop/Handy, statischer Endzustand ohne Bewegung, Diagnose-Logik, - keine fokussierbaren Elemente in der Website); `relaunch-kundenportal.test.tsx` auf 8 Stationen angepasst. + keine fokussierbaren Elemente in der Website); `relaunch-kundenportal.test.tsx` auf 8 Stationen angepasst (seit „Öffnungszeiten live“: 9 Stationen). `sofort-paket.test.tsx` (Scans gegen verbotene Aussagen) bleibt grün. ## 5. Offen für den Inhaber diff --git a/public/relaunch/portal/phone-12-zeiten-390.webp b/public/relaunch/portal/phone-12-zeiten-390.webp new file mode 100644 index 0000000000000000000000000000000000000000..eafaaa0f4d0e5e370079fb00adb214f80c3eb49d GIT binary patch literal 17154 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 J00000006a+?u7sV literal 0 HcmV?d00001 diff --git a/public/relaunch/portal/phone-12-zeiten-780.webp b/public/relaunch/portal/phone-12-zeiten-780.webp new file mode 100644 index 0000000000000000000000000000000000000000..6dca1c9bc5bb8c55aec2ad7ea7f9bd5e06b00573 GIT binary patch literal 39116 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 sD%6&?J (f.bald ? import("./demos/chat/ChatHandy")); const TerminSteuerung = lazyMitVorladen(() => import("./demos/steuerung").then((m) => ({ default: m.TerminSteuerung }))); const HeatmapSteuerung = lazyMitVorladen(() => import("./demos/steuerung").then((m) => ({ default: m.HeatmapSteuerung }))); const PinnwandSteuerung = lazyMitVorladen(() => import("./demos/steuerung").then((m) => ({ default: m.PinnwandSteuerung }))); +const ZeitenSteuerung = lazyMitVorladen(() => import("./demos/steuerung").then((m) => ({ default: m.ZeitenSteuerung }))); const TerminSeite = lazyMitVorladen(() => import("./demos/termin/TerminSeite")); const TerminHandy = lazyMitVorladen(() => import("./demos/termin/TerminHandy")); const HeatmapSeite = lazyMitVorladen(() => import("./demos/heatmap/HeatmapSeite")); const HeatmapDiagnose = lazyMitVorladen(() => import("./demos/heatmap/HeatmapDiagnose")); const PinnwandSeite = lazyMitVorladen(() => import("./demos/pinnwand/PinnwandSeite")); const PinnwandHandy = lazyMitVorladen(() => import("./demos/pinnwand/PinnwandHandy")); +const ZeitenSeite = lazyMitVorladen(() => import("./demos/zeiten/ZeitenSeite")); +const ZeitenHandy = lazyMitVorladen(() => import("./demos/zeiten/ZeitenHandy")); +const ZeitenRegler = lazyMitVorladen(() => import("./demos/zeiten/ZeitenRegler")); /** Chunks je Demo; die Website-Chunks (Seite, Diagnose) und der Taktgeber laden gleichzeitig. */ const VORLADEN: Record void)[]> = { @@ -254,6 +271,7 @@ const VORLADEN: Record void)[]> = { termin: [TerminSteuerung.vorladen, TerminSeite.vorladen, TerminHandy.vorladen], heatmap: [HeatmapSteuerung.vorladen, HeatmapSeite.vorladen, HeatmapDiagnose.vorladen], pinnwand: [PinnwandSteuerung.vorladen, PinnwandSeite.vorladen, PinnwandHandy.vorladen], + zeiten: [ZeitenSteuerung.vorladen, ZeitenSeite.vorladen, ZeitenHandy.vorladen, ZeitenRegler.vorladen], }; /** Hintergrund der Beispiel-Websites, solange ihr Chunk lädt (statt einer schwarzen Fläche im MacBook). */ @@ -263,6 +281,7 @@ const PLATZHALTER: Record = { termin: "#f6f1ea", heatmap: "#141414", pinnwand: "#f7f2e6", + zeiten: "#f7f0e4", }; const Platzhalter = ({ art }: { art: LadeArt }) => ( @@ -664,6 +694,19 @@ const Buehne = () => { ) : null} + {/* Öffnungszeiten live: der Uhr-Regler (echter Schieberegler), nur bei aktiver Station sichtbar und bedienbar */} +
+ {demoEingehaengt("zeiten") ? ( + + + + ) : null} +
{FUNKTIONEN.filter((f) => ladeArt(f) && f.hinweis).map((f) => (

{ ); }; +/** Öffnungszeiten-Karte: die Website im Handy, darunter der Uhr-Regler (Ziehen ändert Status und Uhrzeit auf der Website). */ +const ZeitenKarte = ({ f }: { f: Funktion }) => { + const k = useKarte("zeiten"); + const [z, setZ] = useState(null); + return ( + + {k.gesehen ? : null} + + } + > + {k.gesehen ? : null} + {k.gesehen ? : null} + + ); +}; + /** Heatmap-Karte: Tippen auf eine Zone wählt sie, darunter erscheint die kompakte Diagnose. */ const HeatmapKarte = ({ f }: { f: Funktion }) => { const k = useKarte("heatmap"); @@ -825,13 +888,14 @@ const HeatmapKarte = ({ f }: { f: Funktion }) => { const HandyReihe = () => (

- + {FUNKTIONEN.map((f) => { if (f.lang) return ; if (f.live === "chat") return ; if (f.demo === "termin") return ; if (f.demo === "heatmap") return ; if (f.demo === "pinnwand") return ; + if (f.demo === "zeiten") return ; return (
diff --git a/src/components/home/demos/steuerung.tsx b/src/components/home/demos/steuerung.tsx index 14b6efc..a3ba49f 100644 --- a/src/components/home/demos/steuerung.tsx +++ b/src/components/home/demos/steuerung.tsx @@ -3,9 +3,10 @@ import { useTerminAblauf, type TerminZustand } from "./termin/ablauf"; import { useHeatmapAblauf, type HeatmapZustand } from "./heatmap/ablauf"; import { usePinnwandAblauf, type PinnwandZustand } from "./pinnwand/ablauf"; import { useChatAblauf, type ChatZustand } from "./chat/ablauf"; +import { useZeitenAblauf, type ZeitenZustand } from "./zeiten/ablauf"; /** - * Taktgeber der Demos (drei Funktionen und der Chat) als unsichtbare Bauteile (rendern nichts, melden nur ihren Zustand). + * Taktgeber der Demos (vier Funktionen und der Chat) als unsichtbare Bauteile (rendern nichts, melden nur ihren Zustand). * Sie liegen in einem eigenen Chunk, damit die Startseite die Ablauf-Logik erst lädt, wenn die Kundenportal-Bühne * eine Demo-Station fast erreicht (Spezifikation 4). Die Bühne hält den gemeldeten Zustand und gibt denselben * Zustand an Website, Handy-Ebene und Diagnose. @@ -51,3 +52,19 @@ export const HeatmapSteuerung = memo(function HeatmapSteuerung({ useEffect(() => onZustand(zustand), [zustand, onZustand]); return null; }); + +/** `aktiv`: Station ist die aktive; sonst geht eine Bedienung des Uhr-Reglers zurück an den Ablauf (beim nächsten Mal von vorn). */ +export const ZeitenSteuerung = memo(function ZeitenSteuerung({ + laeuft, + statisch, + aktiv, + onZustand, +}: Props & { aktiv: boolean }) { + const zustand = useZeitenAblauf(laeuft, statisch); + const { setzeUhr } = zustand; + useEffect(() => { + if (!aktiv) setzeUhr(null); + }, [aktiv, setzeUhr]); + useEffect(() => onZustand(zustand), [zustand, onZustand]); + return null; +}); diff --git a/src/components/home/demos/zeiten/ZeitenHandy.tsx b/src/components/home/demos/zeiten/ZeitenHandy.tsx new file mode 100644 index 0000000..46a0392 --- /dev/null +++ b/src/components/home/demos/zeiten/ZeitenHandy.tsx @@ -0,0 +1,31 @@ +import { DemoZeiger } from "../gemeinsam"; +import { HINWEIS_ANLEGEN_PUNKT, type ZeitenZustand } from "./ablauf"; + +/** Wo der Finger wartet, bevor er zum Knopf gleitet (unten rechts, neben dem Home-Balken). */ +const RUHE = { x: 318, y: 842 }; + +// Inline, damit die Ebene die Fläche genau überdeckt und nichts anklickt, auch ohne geladenes CSS. +const EBENE = { position: "absolute", inset: 0, pointerEvents: "none", overflow: "hidden" } as const; + +type Props = { + zustand: ZeitenZustand; + /** Mitte des Knopfes „Hinweis-Leiste anlegen“ im Portal-Bild; Standard: HINWEIS_ANLEGEN_PUNKT. */ + punkt?: { x: number; y: number }; +}; + +/** + * Live-Ebene über dem Portal-Screenshot im iPhone der Bühne (402 x 874, transparent, pointer-events none): + * in Phase „tippen“ gleitet ein Finger auf „Hinweis-Leiste anlegen“ und tippt; danach gleitet auf der Website die Leiste ein. + * Davor (Uhr läuft) wartet der Finger unsichtbar in der Ruhelage, damit er beim Start von dort zum Knopf gleitet. + */ +const ZeitenHandy = ({ zustand, punkt = HINWEIS_ANLEGEN_PUNKT }: Props) => { + const amKnopf = zustand.phase === "tippen" || zustand.phase === "leiste"; + const ziel = amKnopf ? punkt : RUHE; + return ( + + ); +}; + +export default ZeitenHandy; diff --git a/src/components/home/demos/zeiten/ZeitenRegler.tsx b/src/components/home/demos/zeiten/ZeitenRegler.tsx new file mode 100644 index 0000000..4d0c05f --- /dev/null +++ b/src/components/home/demos/zeiten/ZeitenRegler.tsx @@ -0,0 +1,48 @@ +import { useId } from "react"; +import { ZEITEN_START, ZEIT_MAX, ZEIT_MIN, ZEIT_SCHRITT, formatUhr, type ZeitenZustand } from "./ablauf"; +import "./zeiten.css"; + +/** + * Der Uhr-Regler unter dem MacBook (Station „Öffnungszeiten live“): ein echter Schieberegler (input type=range) mit Label, + * der Uhrzeit und dem Statussatz der Bäckerei zu dieser Uhrzeit. Wer ihn anfasst, hält den Automatiklauf an; + * die Website zeigt dann den Status der gewählten Uhrzeit. Normaler Seitenmaßstab mit den Seitentoken, hell und dunkel. + * `kompakt` ist für die Handy-Karte (schmal, bis 320 px). + * Der Statussatz meldet sich Screenreadern (aria-live) nur nach einer Bedienung, nicht beim Automatiklauf. + */ + +type Props = { zustand?: ZeitenZustand; kompakt?: boolean }; + +const ZeitenRegler = ({ zustand = ZEITEN_START, kompakt = false }: Props) => { + const id = useId(); + const { uhr, status, bedient } = zustand; + return ( +
+
+ + +
+ zustand.setzeUhr(Number(e.target.value))} + /> +

+