Mirror av ms-ai-architect playground-arkitektur, tilpasset llm-security:
- 4 overflater (onboarding/home/catalog/project) med surface-router
- IndexedDB persistens (llm-security-playground-v1) + localStorage fallback
- Theme-bootstrap med FOUC-prevention og localStorage-persist
- 20 kommandoer i CATALOG (5 kategorier: discover/posture/findings-ops/
hardening/adversarial/mcp-ops) med full input_fields + report_archetype
- 5-gruppers onboarding (organisasjon/scope/profil/plattform/compliance)
med form-progress sidebar
- Home: 3 tracks + fleet-grid prosjektliste + tom-state med demo-data
- Katalog: ekspanderbare grupper med live-søk og forhåndsvisning
- Prosjekt-stub: 4 screen-tabs + 6 kategori-tabs + per-kommando
skjema/paste-import/rapport-soner
- Demo-state: Direktoratet for digital tjenesteutvikling med 2 prosjekter
- Eksport/import (JSON envelope), action-handlers (35), modal-portal
PARSERS + RENDERERS er tomme routing-objekter — fylles i Fase 2 (10 høy-prio
kommandoer) og Fase 3 (resterende 10). Paste-import viser «parser ikke
implementert»-guide-panel for kommandoer uten parser, og lagrer rå markdown
i state for fremtidig parsing.
Vendor: 27 filer synket fra shared/playground-design-system/
(MANIFEST.json sjekksum-låst, source_commit 487f7ae).
Verifisert: node --check OK (2737 linjer, 113733 char inline JS),
HTML-tag-balanse OK. Manuell smoke-test gjenstår.
Docs (plugin README, CLAUDE.md, rot-README) bumpes ved Fase 3-fullføring
sammen med plugin.json v7.5.0. Derfor [skip-docs] her.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
84 lines
2.2 KiB
CSS
84 lines
2.2 KiB
CSS
/* Code generated by sync-design-system.mjs; DO NOT EDIT. */
|
|
/*
|
|
* Self-hosted web fonts for Playground Design System.
|
|
*
|
|
* All three families are licensed under SIL Open Font License 1.1.
|
|
* Full license text and provenance: ./fonts/LICENSES.md
|
|
*
|
|
* Why self-hosted:
|
|
* - No external requests (no fonts.googleapis.com, no IP/UA leakage).
|
|
* - Works offline / behind air-gapped firewalls.
|
|
* - GDPR-compliant for Norwegian public-sector deployments.
|
|
*
|
|
* Bundle size: ~940 KB total across 9 woff2 files.
|
|
* Loaded via font-display: swap to avoid FOIT.
|
|
*/
|
|
|
|
/* ========== Inter (UI / body) ========== */
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-Regular.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-Medium.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-SemiBold.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Inter";
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
font-display: swap;
|
|
src: url("./fonts/Inter-Bold.woff2") format("woff2");
|
|
}
|
|
|
|
/* ========== JetBrains Mono (code) ========== */
|
|
@font-face {
|
|
font-family: "JetBrains Mono";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./fonts/JetBrainsMono-Regular.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "JetBrains Mono";
|
|
font-style: normal;
|
|
font-weight: 500;
|
|
font-display: swap;
|
|
src: url("./fonts/JetBrainsMono-Medium.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "JetBrains Mono";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./fonts/JetBrainsMono-SemiBold.woff2") format("woff2");
|
|
}
|
|
|
|
/* ========== Source Serif 4 (occasional editorial accents) ========== */
|
|
@font-face {
|
|
font-family: "Source Serif 4";
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
font-display: swap;
|
|
src: url("./fonts/SourceSerif4-Regular.woff2") format("woff2");
|
|
}
|
|
@font-face {
|
|
font-family: "Source Serif 4";
|
|
font-style: normal;
|
|
font-weight: 600;
|
|
font-display: swap;
|
|
src: url("./fonts/SourceSerif4-Semibold.woff2") format("woff2");
|
|
}
|