LoVisual/frontend
loki5512344 1c94e0ebea
refactor(frontend): bring shared/ui and pages/public under the 4-file rule
Two directories had grown past the plan's ≤4 files per folder constraint:
shared/ui (5 primitives, and the kit keeps growing) and pages/public (5 pages,
counting auth/ as a subfolder).

Split shared/ui by concept — text-field/ and share-code/ each with their own
tests/ — and move PageTitle to shared/layout, where the rest of the page chrome
lives. Flat UI tests become per-component tests; the PageTitle test follows the
component. Move LoginPage and RegisterPage into the existing pages/public/auth/
beside the AuthSplit layout they both use.

No behaviour change: 83 tests, clean tsc build, 1 known oxlint warning.
2026-09-28 13:21:18 +02:00
..
public chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
scripts chore(history): squash 67 commit(s) from 2026-09-25 2026-09-25 20:22:13 +02:00
src refactor(frontend): bring shared/ui and pages/public under the 4-file rule 2026-09-28 13:21:18 +02:00
.env.example chore(history): squash 67 commit(s) from 2026-09-25 2026-09-25 20:22:13 +02:00
.gitignore chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
.oxlintrc.json chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
ARCHITECTURE.md refactor(frontend): bring shared/ui and pages/public under the 4-file rule 2026-09-28 13:21:18 +02:00
bun.lock chore(history): squash 67 commit(s) from 2026-09-25 2026-09-25 20:22:13 +02:00
index.html chore(history): squash 16 commit(s) from 2026-09-26 2026-09-26 15:26:37 +02:00
package.json chore(history): squash 67 commit(s) from 2026-09-25 2026-09-25 20:22:13 +02:00
PLAN.md chore(history): squash 67 commit(s) from 2026-09-25 2026-09-25 20:22:13 +02:00
README.md chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
tsconfig.app.json chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
tsconfig.json chore(history): squash 59 commit(s) from 2026-09-23 2026-09-23 22:38:08 +02:00
tsconfig.node.json chore(history): squash 67 commit(s) from 2026-09-25 2026-09-25 20:22:13 +02:00
vite.config.ts chore(history): squash 67 commit(s) from 2026-09-25 2026-09-25 20:22:13 +02:00

React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some Oxlint rules.

Currently, two official plugins are available:

React Compiler

The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.

Expanding the Oxlint configuration

If you are developing a production application, we recommend enabling type-aware lint rules by installing oxlint-tsgolint and editing .oxlintrc.json:

{
  "$schema": "./node_modules/oxlint/configuration_schema.json",
  "plugins": ["react", "typescript", "oxc"],
  "options": {
    "typeAware": true
  },
  "rules": {
    "react/rules-of-hooks": "error",
    "react/only-export-components": ["warn", { "allowConstantExport": true }]
  }
}

See the Oxlint rules documentation for the full list of rules and categories.