# Vendored UI-Assets

Alle Dateien liegen statisch im Repo (kein Node.js/NPM auf dem Zielsystem, kein Build-Schritt).
Erneuern mit: `python tools/vendor_ui.py` (Dev-Umgebung;committete Dateien werden bei
identischem Inhalt nicht überschrieben).

| Datei | Quelle | Lizenz | SHA-256 |
|---|---|---|---|
| `lit-core.min.js` | https://cdn.jsdelivr.net/gh/lit/dist@3/core/lit-core.min.js (Lit 3) | BSD-3-Clause | `F607F470475D8AB790754CB70F72CDBE2390C4A57AB59DF6CDB360EEB72BD87C` |
| `axe.min.js` | https://cdn.jsdelivr.net/npm/axe-core@4.10.2/axe.min.js (axe-core 4.10.2) | MPL-2.0 | `B511CD9DEC01C76F4B2AD1723B66B6DB37D4C2EB4ED199076E1829D9EE7B75E3` |
| `lucide-sprite.html` | https://cdn.jsdelivr.net/npm/lucide-static@0.462.0/icons/\<name\>.svg (Lucide 0.462.0) | ISC | `63095A5504E631DA0AA663FB7408A423989DDAD410C4222304C4F654CE97FD08` |
| `lucide-icons.js` | dito (dieselbe SVG-Innereien je Icon, als ES-Modul `export const ICONS`) | ISC | `A665B41EEF15A796CD6F8634DEAE82FC16368EC300F164CD4408E3B0C6D5A567` |

## Hinweise

- **Lit-Importpfad** für alle Komponenten:
  `import { LitElement, html, css } from '../vendor/lit-core.min.js';`
  Exporte: `LitElement`, `html`, `css`, `nothing` (ESM).
- **Inline-Icons (Standardweg seit 2026-11-06)**: `lucide-icons.js` ist ein reines
  ES-Modul (`export const ICONS` — Werte sind die SVG-Innereien je Icon, kein IIFE,
  kein DOM-Zugriff, kein `fetch`). Komponenten importieren daraus ausschließlich über
  `static/components/icons.js` (`iconSvg`/`fuelleIcons`) — nie direkt. Der
  Sprite `lucide-sprite.html` (Symbol-IDs `#icon-<name>`) bleibt als Legacy-Artefakt
  für Auslieferungs-Kompatibilität liegen, wird von keiner Komponente mehr referenziert.
  Lucide hat mehrere Icons umbenannt (`alert-triangle`→`triangle-alert`,
  `alert-circle`→`circle-alert`, `check-circle-2`→`circle-check`,
  `upload-cloud`→`cloud-upload`); geholt wird die aktuelle Datei, der Icon-Name bleibt
  der vereinbarte alte Name (Erzeugung in `tools/vendor_ui.py`, Alias-Tabelle).
- **Fonts** (nicht unter `vendor/`, liegen in `static/fonts/`):
  `eurostilemnextended.woff2` und `eurostilemnextended_bold.woff2` stammen von
  www.renosan.de (Haus-Material, proprietär, interne Nutzung im eigenen Unternehmen —
  Nutzerentscheidung 2026-11-05); deklariert in `static/fonts/fonts.css`
  (Familien `eurostilemnextendedregular` / `eurostilemnextendedbold` **und** Alias
  `Eurostile Extended` mit `font-weight` 400/700 auf denselben Dateien — der
  Alias-Name ist der aus `static/tokens.css` contractierte Familienname).
  `open-sans-latin.woff2` ist die **variable** Woff2 (latin-Subset) von Google Fonts;
  sie deckt die Schnitte 400 und 600 ab und wird in `fonts.css` in zwei
  `@font-face`-Blöcken (`font-family: "Open Sans"`, `font-weight` 400/600) deklariert.
  Erzeugung von `fonts.css` und Download der Woff2: `python tools/vendor_ui.py fonts`.

| Font-Datei | Quelle | Lizenz | SHA-256 |
|---|---|---|---|
| `../fonts/eurostilemnextended.woff2` | https://www.renosan.de/_assets/…/css/app.css → ../fonts/ | proprietär (Haus-Material) | `C38FE1206874A9867FA6C2567828E97F5466281521BF59D49CC281D6EF7A2372` |
| `../fonts/eurostilemnextended_bold.woff2` | https://www.renosan.de/_assets/…/css/app.css → ../fonts/ | proprietär (Haus-Material) | `520B3BB61B5F2779B7A7160E055ADA508D97A52DD85202969EA4D1DA26561EDF` |
| `../fonts/open-sans-latin.woff2` | https://fonts.gstatic.com/s/opensans/v44/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2 (Google Fonts, css2-API mit Chrome-UA, latin-Subset, variable Schrift) | SIL Open Font License 1.1 (https://scripts.sil.org/OFL) | `D8E4FE0452AA2076429A9BB5D8757D00A994DD95986CF950E9A1A371B9A072A0` |
| `../fonts/chakra-petch-300.woff2` | https://fonts.gstatic.com/s/chakrapetch/v13/… (Google Fonts, css2-API mit Chrome-UA, latin-Subset, Schnitt 300) | SIL Open Font License 1.1 (https://scripts.sil.org/OFL) | `A02DD3805B4144162914DFF96A638E79DA5950232D6A22AECFC2B100B375469D` |
| `../fonts/chakra-petch-400.woff2` | dito, Schnitt 400 | SIL Open Font License 1.1 | `7D75BE85DD1627E27EC151E9A3701E661BC4F8C2A93611BDD92F3A05D6BBD942` |
| `../fonts/chakra-petch-500.woff2` | dito, Schnitt 500 | SIL Open Font License 1.1 | `36AD966CB653DE70BA37355C41003B02DE8940B2DF6CBCD46480A6AD8CADD65D` |
| `../fonts/chakra-petch-600.woff2` | dito, Schnitt 600 | SIL Open Font License 1.1 | `A5888696E9EB1B4BBBECC8EB3922B8369F49D4BDDB72263E033CBD17F399BE76` |
| `../fonts/chakra-petch-700.woff2` | dito, Schnitt 700 | SIL Open Font License 1.1 | `CE5095DC1CB200AAA939E38067A0677018D10E9F26EC38CDCF1557AC524FC775` |
