This commit is contained in:
Benjamin Toby 2026-03-04 18:00:26 +01:00
parent 86cfe54f6e
commit c8c4d1e97d
17 changed files with 604 additions and 210 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "twui"]
path = twui
url = https://git.tben.me/Moduletrace/tailwind-ui-library.git

669
bun.lock

File diff suppressed because it is too large Load Diff

View File

@ -3,27 +3,43 @@
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev",
"pm2:dev": "pm2 start --name turboci-web 'bunx next dev' && pm2 start --name turboci-cron 'bun --watch src/cron/index.ts'", "pm2:dev": "pm2 start --name turboci-web 'bunx next dev' && pm2 start --name turboci-cron 'bun --watch src/cron/index.ts'",
"pm2:start": "pm2 start --name turboci-web 'bunx next start' && pm2 start --name turboci-cron 'bun src/cron/index.ts'", "pm2:start": "pm2 start --name turboci-web 'bunx next start' && pm2 start --name turboci-cron 'bun src/cron/index.ts'",
"pm2:kill": "pm2 kill", "pm2:kill": "pm2 kill",
"twui:update": "git submodule update --remote twui",
"build": "next build" "build": "next build"
}, },
"dependencies": { "dependencies": {
"@moduletrace/bun-sqlite": "^1.0.5", "@moduletrace/bun-sqlite": "^1.0.5",
"@moduletrace/datasquirel": "^5.7.57", "@moduletrace/datasquirel": "^5.7.57",
"@radix-ui/themes": "^3.3.0", "gray-matter": "^4.0.3",
"html-to-react": "^1.7.0",
"lodash": "^4.17.23",
"lucide-react": "^0.577.0",
"mdx": "^0.3.1",
"next": "16.1.6", "next": "16.1.6",
"next-mdx-remote": "^6.0.0",
"openai": "^6.25.0",
"react": "19.2.3", "react": "19.2.3",
"react-dom": "19.2.3" "react-code-blocks": "^0.1.6",
"react-dom": "19.2.3",
"react-responsive-modal": "^7.1.0",
"rehype-prism-plus": "^2.0.2",
"remark-gfm": "^4.0.1",
"tailwind-merge": "^3.5.0"
}, },
"devDependencies": { "devDependencies": {
"@next/mdx": "^16.1.6",
"@tailwindcss/postcss": "^4", "@tailwindcss/postcss": "^4",
"@types/ace": "^0.0.52",
"@types/bun": "^1.3.10", "@types/bun": "^1.3.10",
"@types/mdx": "^2.0.13",
"@types/node": "^20", "@types/node": "^20",
"@types/react": "^19", "@types/react": "^19.2.14",
"@types/react-dom": "^19", "@types/react-dom": "^19.2.3",
"tailwindcss": "^4", "tailwindcss": "^4.2.1",
"typescript": "^5" "typescript": "^5.9.3"
}, },
"ignoreScripts": [ "ignoreScripts": [
"sharp", "sharp",

View File

@ -0,0 +1,5 @@
import Stack from "@/twui/components/layout/Stack";
export default function LoginForm() {
return <Stack></Stack>;
}

View File

@ -1,11 +1,13 @@
import { Box, Card, Heading } from "@radix-ui/themes"; import Paper from "@/twui/components/elements/Paper";
import H2 from "@/twui/components/layout/H2";
import Stack from "@/twui/components/layout/Stack";
export default function Main() { export default function Main() {
return ( return (
<Card> <Paper>
<Box> <Stack>
<Heading size={"5"}>Home</Heading> <H2>Home</H2>
</Box> </Stack>
</Card> </Paper>
); );
} }

View File

@ -1,11 +1,21 @@
import { Box, Card, Heading } from "@radix-ui/themes"; import Stack from "@/twui/components/layout/Stack";
import LoginForm from "../auth/login/(partials)/login-form";
import H2 from "@/twui/components/layout/H2";
import Section from "@/twui/components/layout/Section";
import Container from "@/twui/components/layout/Container";
import Center from "@/twui/components/layout/Center";
export default function Main() { export default function Main() {
return ( return (
<Card className="max-w-4xl w-full xl:p-8"> <Section className="w-full h-full">
<Box> <Container className="w-full h-full">
<Heading size={"5"}>Login</Heading> <Center>
</Box> <Stack className="flex-col" gap={"5"}>
</Card> <H2>Welcome</H2>
<LoginForm />
</Stack>
</Center>
</Container>
</Section>
); );
} }

View File

@ -1,4 +1,4 @@
import grabTurboCiConfig from "@/utils/grab-turboci-config"; import grabTurboCiConfig from "@/src/utils/grab-turboci-config";
export default async function cronCheckServices() { export default async function cronCheckServices() {
const config = grabTurboCiConfig(); const config = grabTurboCiConfig();

View File

@ -1,4 +1,4 @@
import { AppData } from "@/data/app-data"; import { AppData } from "@/src/data/app-data";
import cronCheckServices from "./functions/check-services"; import cronCheckServices from "./functions/check-services";
while (true) { while (true) {

View File

@ -1,14 +1,13 @@
import { Box, Container, Section } from "@radix-ui/themes"; import Center from "@/twui/components/layout/Center";
import Main from "@/twui/components/layout/Main";
import { PropsWithChildren } from "react"; import { PropsWithChildren } from "react";
type Props = PropsWithChildren & {}; type Props = PropsWithChildren & {};
export default function Layout({ children }: Props) { export default function Layout({ children }: Props) {
return ( return (
<Section className="w-screen h-screen flex flex-col items-center justify-center"> <Main className="w-screen h-screen overflow-hidden">
<Container className="flex flex-col items-center justify-center"> <Center>{children}</Center>
<Box>{children}</Box> </Main>
</Container>
</Section>
); );
} }

View File

@ -1,13 +1,7 @@
import "@/styles/globals.css"; import "@/src/styles/globals.css";
import "@radix-ui/themes/styles.css";
import type { AppProps } from "next/app"; import type { AppProps } from "next/app";
import { Theme } from "@radix-ui/themes";
export default function App({ Component, pageProps }: AppProps) { export default function App({ Component, pageProps }: AppProps) {
return ( return <Component {...pageProps} />;
<Theme>
<Component {...pageProps} />
</Theme>
);
} }

View File

@ -1,5 +1,5 @@
import Main from "@/components/pages/auth/login"; import Main from "@/src/components/pages/auth/login";
import Layout from "@/layouts/login"; import Layout from "@/src/layouts/login";
export default function LoginPage() { export default function LoginPage() {
return ( return (

View File

@ -1,6 +1,5 @@
import Main from "@/components/pages/home"; import Main from "@/src/components/pages/home";
import Layout from "@/layouts/login"; import Layout from "@/src/layouts/login";
import { Heading } from "@radix-ui/themes";
export default function Home() { export default function Home() {
return ( return (

View File

@ -1,26 +1,13 @@
@import "tailwindcss"; @import "../../twui/components/base.css";
:root {
--background: #ffffff;
--foreground: #171717;
}
@theme inline { @theme inline {
--color-background: var(--background); --breakpoint-xs: 350px;
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}
@media (prefers-color-scheme: dark) { --color-background-light: #ffffff;
:root { --color-foreground-light: #171717;
--background: #0a0a0a; --color-background-dark: #0c0e11;
--foreground: #ededed; --color-foreground-dark: #ededed;
}
}
body { --color-price: #16946a;
background: var(--background); --color-price-dark: #77ceb1;
color: var(--foreground);
font-family: Arial, Helvetica, sans-serif;
} }

View File

@ -1,3 +1,5 @@
import { AppData } from "../data/app-data";
type Params = { type Params = {
cmd: string; cmd: string;
cwd?: string; cwd?: string;

View File

@ -1,6 +1,6 @@
import fs from "fs"; import fs from "fs";
import grabDirNames from "./grab-dir-names"; import grabDirNames from "./grab-dir-names";
import { TCIGlobalConfig } from "@/types"; import { TCIGlobalConfig } from "@/src/types";
export default function grabTurboCiConfig() { export default function grabTurboCiConfig() {
const { TURBOCI_CONFIG_JSON_FILE } = grabDirNames(); const { TURBOCI_CONFIG_JSON_FILE } = grabDirNames();

View File

@ -14,7 +14,7 @@
"jsx": "react-jsx", "jsx": "react-jsx",
"incremental": true, "incremental": true,
"paths": { "paths": {
"@/*": ["./src/*"] "@/*": ["./*"]
} }
}, },
"include": [ "include": [
@ -23,8 +23,7 @@
"**/*.tsx", "**/*.tsx",
".next/types/**/*.ts", ".next/types/**/*.ts",
".next/dev/types/**/*.ts", ".next/dev/types/**/*.ts",
"**/*.mts", "**/*.mts"
"src"
], ],
"exclude": ["node_modules"] "exclude": ["node_modules"]
} }

1
twui Submodule

@ -0,0 +1 @@
Subproject commit 89e673bb59809ba2be04a43ed8c9b5775c580237