Setting up client environment

This commit is contained in:
April Eaton 2026-01-09 23:44:58 +01:00
parent 0ab2b91c40
commit 61b1b3372b
Signed by: AprilEaton
GPG key ID: 0BCF829D48AE5C9D
13 changed files with 3419 additions and 0 deletions

3159
client/package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

19
client/package.json Normal file
View file

@ -0,0 +1,19 @@
{
"name": "parcel-react-client-starter",
"private": true,
"version": "0.0.0",
"source": "src/index.html",
"scripts": {
"start": "parcel",
"build": "parcel build"
},
"dependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
},
"devDependencies": {
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"parcel": "^2.14.0"
}
}

8
client/src/App.css Normal file
View file

@ -0,0 +1,8 @@
html {
color-scheme: light dark;
font-family: system-ui;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}

10
client/src/App.tsx Normal file
View file

@ -0,0 +1,10 @@
import './App.css';
export function App() {
return (
<>
<h1>Parcel React App</h1>
<p>Edit <code>src/App.tsx</code> to get started!</p>
</>
);
}

12
client/src/index.html Normal file
View file

@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Parcel React App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="index.tsx"></script>
</body>
</html>

11
client/src/index.tsx Normal file
View file

@ -0,0 +1,11 @@
import { createRoot } from 'react-dom/client';
import { StrictMode } from 'react';
import { App } from './App';
let container = document.getElementById("app")!;
let root = createRoot(container)
root.render(
<StrictMode>
<App />
</StrictMode>
);

29
client/tsconfig.json Normal file
View file

@ -0,0 +1,29 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig to read more about this file */
"target": "ES2020",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"jsx": "react-jsx",
"useDefineForClassFields": true,
/* Modules */
"module": "ESNext",
"moduleResolution": "bundler",
/* Emit */
"noEmit": true,
/* Interop Constraints */
"isolatedModules": true,
"allowSyntheticDefaultImports": true,
"allowImportingTsExtensions": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
/* Type Checking */
"strict": true,
/* Completeness */
"skipLibCheck": true
}
}