Regenerate package-lock.json with multiple dependency bumps and additions (including TanStack router, Tailwind, Lucide, Radix packages, testing and ESLint tooling) and updated transitive packages. Lockfile now contains new devDependencies and updated node_modules metadata. Also apply corresponding small updates to src/components/Header.tsx, src/components/Footer.tsx and src/routes/index.tsx to accommodate dependency and routing/ui changes.
Remove local view state from BlueprintBuilder and always render SetupSidebar with a fixed "blueprint" view. Update the BlueprintBuilder navigation handler to only perform route navigation (remove setView) and normalize conditionals. Add missing navigation targets to other builders so they can navigate back to /blueprint-builder (updated in config-builder, compose-builder, and scheduler-builder). This centralizes navigation behavior and prevents view-state drift in the sidebar.
Introduce VPN validation and warning UI, plus related UX and wiring changes.
- Add validation logic and tests: src/utils/validation/vpn.ts and __tests__/vpn.test.ts implement VPN config validation and a compact warning helper (vpnConfigWarning).
- Integrate VPN validation into YAML pipeline (useYamlValidation.ts) so VPN errors are surfaced with other config checks.
- Expand VPN UI: VpnFields and VpnTab get new toggles, Tailscale "serve" controls (target service, ports, protocol, cert domain), network-attachment UI, and an inline configuration warning; styles for warning/serve grid added to styles.css.
- Pass named services/networks through VpnTab and wire up updateVpnNetworks; add Toggle helper component.
- Services UX and tests: hide the trash icon for unnamed/imageless placeholder rows in ServicesTab and add tests (ServicesTab.test.tsx) to cover behavior; adjust removeService in compose-builder to keep a default service row and update selection logic.
- Misc: ensure GHCR image/repo names are lowercased in the CI workflow (.github/workflows/docker-build-push.yml) and minor import/prop updates in compose-builder route.
Header: navigate to /docker/compose-builder with state { openTemplates: true } instead of relying on a setTimeout-dispatched event. Compose builder: read router state on mount, open the templates modal if openTemplates is set, then replace navigation state to clear the flag; keep the existing event listener as well. CodeEditor: introduce timerRef and useMountEffect to clear the copy timeout on unmount and to avoid overlapping timers when the Copy button is pressed repeatedly.
Introduce a new Blueprint Builder feature and validation UI across the app. Adds a /blueprint-builder route and full builder UI (src/routes/blueprint-builder.tsx) plus blueprint types (src/types/blueprint.ts), generator/validator utils and tests (src/utils/blueprint/* and __tests__), and styles for the builder. Add a shadcn-compatible ValidatedShadField component and wire validated inputs (ValidatedShadField / ValidatedInput) into Network, Volume and VPN forms to provide inline validation and accessibility hints (aria-invalid/title). Template detail modal now pre-validates compose YAML and shows a validation banner and prevents import of invalid templates. Update header, sidebar and route tree to surface the new Blueprint nav item. Also add/adjust various validation helpers and small UX/accessibility tweaks (copy/download handlers, error titles).
Introduce a project-wide ESLint configuration with TypeScript/React rules (including a ban on direct useEffect and inline style object literals) and file-specific overrides. Update index.html to add theme-color meta tags and preload Google fonts. Expand package.json with new scripts (lint, typecheck, validate, extended test commands) and bump/add dev/dependencies for testing, linting, Radix UI, TanStack and tooling. Add many new components and tests (BrandMark, SetupSidebar, compose-builder UI and ServiceForm tabs, VPN tab, CodeMirror runtime, ThemeProvider, template UI and tests, icons), update existing components (CodeEditor, ConversionDialog, Header, Footer, MetaTags, SidebarUI) and hooks/routes. Add YAML generator and related utils, validation schemas, and numerous unit tests and fixtures. Misc: update tsconfig/vite config and styles.