# daditj/planning-semaine-card architecture

> Architecture diagram of the GitHub repository daditj/planning-semaine-card, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/daditj/planning-semaine-card
- Repository: https://github.com/daditj/planning-semaine-card

## Overview

This is a single-file Home Assistant Lovelace card for viewing and editing Schedule helpers. Its principal workflow loads a helper’s weekly ranges, renders them in vertical or horizontal form, accepts configuration-mode edits, and saves changes through Home Assistant’s schedule WebSocket API. The excerpts show the card, editor, translations and styling are implemented together; README documents additional display and editing capabilities. Internal details between excerpts are not assumed, so the graph keeps only relationships supported by the shown code or README.

Main entry points: [`planning-semaine-card.js`](https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js) (Card runtime)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_card["Schedule card"]
  node_card_runtime["Card runtime"]
  node_translations["Translations"]
  node_layout["Card layouts"]
  node_schedule_io["Schedule API access"]
end

subgraph group_editing["Editing and setup"]
  node_drag_edit["Range editing"]
  node_visual_editor["Visual editor"]
end

node_user(("Dashboard user"))
node_ha["Home Assistant"]
node_schedule[("Schedule helper")]

node_user -->|"views"| node_card_runtime
node_card_runtime -->|"loads and saves"| node_schedule_io
node_schedule_io -->|"calls WebSocket API"| node_ha
node_ha -->|"stores schedule"| node_schedule
node_card_runtime -->|"renders"| node_layout
node_layout -->|"uses labels"| node_translations
node_card_runtime -->|"handles pointer input"| node_drag_edit
node_drag_edit -->|"triggers save"| node_schedule_io
node_user -->|"configures card"| node_visual_editor

click node_card_runtime "https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js"
click node_translations "https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js"
click node_layout "https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js"
click node_schedule_io "https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js"
click node_drag_edit "https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js"
click node_visual_editor "https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_card_runtime,node_translations,node_layout,node_schedule_io,node_user toneBlue
class node_drag_edit,node_visual_editor,node_schedule toneAmber
class node_ha toneIndigo
```

## Components

### Schedule card

- [Card runtime](https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js): `planning-semaine-card.js`
- [Translations](https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js): `planning-semaine-card.js`
- [Card layouts](https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js): `planning-semaine-card.js`
- [Schedule API access](https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js): `planning-semaine-card.js`

### Editing and setup

- [Range editing](https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js): `planning-semaine-card.js`
- [Visual editor](https://github.com/daditj/planning-semaine-card/blob/main/planning-semaine-card.js): `planning-semaine-card.js`

### Other components

- **Dashboard user**
- **Home Assistant**
- **Schedule helper**

## Connections

- Dashboard user → Card runtime: views (evidence: `README.md`)
- Card runtime → Schedule API access: loads and saves (evidence: `planning-semaine-card.js`)
- Schedule API access → Home Assistant: calls WebSocket API (evidence: `planning-semaine-card.js`)
- Home Assistant → Schedule helper: stores schedule (evidence: `README.md`)
- Card runtime → Card layouts: renders (evidence: `planning-semaine-card.js`)
- Card layouts → Translations: uses labels (evidence: `planning-semaine-card.js`)
- Card runtime → Range editing: handles pointer input (evidence: `planning-semaine-card.js`)
- Range editing → Schedule API access: triggers save (evidence: `planning-semaine-card.js`)
- Dashboard user → Visual editor: configures card (evidence: `README.md`)
