import { useEffect, useRef, useState, type CSSProperties } from 'react'
/** Eine Palette für Kalender **und** Termine – zwei getrennte Listen liefen
* sonst mit der Zeit auseinander, und ein Termin in einer Farbe, die es als
* Kalenderfarbe nicht gibt, sieht aus wie ein Fehler. */
export const palette = [
'#4285f4', '#ea4335', '#fbbc04', '#34a853',
'#a142f4', '#ff6d00', '#00acc1', '#607d8b',
]
/**
* Schiebeschalter statt Kästchen.
*
* Nicht nur Zierde: „Ganztägig" schaltet das Formular um (die Uhrzeitfelder
* verschwinden). Ein Kästchen liest sich wie eine Angabe, die man nebenbei
* ankreuzt – ein Schalter zeigt, dass hier etwas umgestellt wird.
*/
export function Toggle({ checked, onChange, disabled, label }: {
checked: boolean
onChange: (v: boolean) => void
disabled?: boolean
label: string
}) {
return (
)
}
/**
* Farbwahl als Kreise. Der gewählte Kreis ist gefüllt, die anderen sind
* Umrisse – dieselbe Sprache wie in der Kalenderliste, wo ein gefüllter
* Punkt „wird angezeigt" heißt.
*/
export function ColorSwatches({ value, onChange, inherit, disabled }: {
value: string
onChange: (c: string) => void
/** Ist sie gesetzt, gibt es zusätzlich die Wahl „Farbe des Kalenders"
* (leerer Wert) und dieser Kreis zeigt sie an. */
inherit?: string
disabled?: boolean
}) {
const dot = (color: string, selected: boolean, onClick: () => void, key: string, title: string) => (
)
return (