/** * About & Help modal body (spec §01B/§01C). * * Rendered inside ModalShell — no backdrop, close button, or focus trap here; * the shell owns all of that (docs/architecture/03 → Layer 3). This component * is pure content: app identity, keyboard shortcuts (§01D), and privacy posture * (SOUL.md — local-only, no accounts, no telemetry). */ import styles from './AboutModal.module.css'; /** True when the user agent is macOS / iOS — drives the Cmd vs. Ctrl label. */ const isMac = /Mac|iPhone|iPad|iPod/.test(navigator.platform); const mod = isMac ? '⌘' : 'Ctrl'; /** Keyboard shortcut rows sourced from spec §01D. */ const SHORTCUTS: readonly { keys: string; action: string }[] = [ { keys: `${mod}+Shift+N`, action: 'Create a new snippet' }, { keys: `${mod}+K`, action: 'Toggle the Datasets manager' }, { keys: `${mod}+S`, action: 'Publish the current snippet draft' }, { keys: `${mod}+,`, action: 'Open editor settings' }, { keys: 'Esc', action: 'Close the active modal' }, ]; export function AboutModal() { return (
v{__APP_VERSION__}
A local-first workspace for authoring, organizing, and previewing Vega-Lite charts. Edit JSON, see the chart update live, and keep a personal library of snippets — with no account, no server, and full offline support.
| {keys} | {action} |
Astrolabe runs entirely in your browser. Your snippets, datasets, and settings are stored locally and never leave your machine.