create-vista-app 0.2.16 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +535 -511
- package/bin/flash-template/app/index.tsx +86 -86
- package/bin/flash-template/app/root.tsx +35 -35
- package/package.json +3 -3
- package/template/README.md +46 -86
- package/template/app/globals.css +70 -70
- package/template/app/index.tsx +71 -71
- package/template/app/root.tsx +35 -35
- package/template/{utils → components}/theme-toggle.tsx +49 -49
- package/template/deploy/.dockerignore +10 -0
- package/template/deploy/Dockerfile +17 -0
- package/template/deploy/netlify.toml +7 -0
- package/template/deploy/render.yaml +16 -0
- package/template/deploy/vercel.json +16 -0
- package/template/deploy/wrangler.toml +3 -0
- package/template/tsconfig.json +4 -4
- package/template/vista-env.d.ts +12 -12
- package/template/vista.config.ts +21 -17
- package/template-typed/app/api/procedures/hello.ts +7 -7
- package/template-typed/app/api/routers/index.ts +8 -8
- package/template-typed/app/api/typed.ts +6 -6
- package/template-typed/vista.config.ts +21 -21
- package/LICENSE +0 -21
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import Image from 'vista/image';
|
|
2
|
-
import { ThemeToggle } from '../
|
|
3
|
-
|
|
4
|
-
export default function Index() {
|
|
5
|
-
return (
|
|
6
|
-
<main className="relative flex min-h-[100dvh] items-center overflow-hidden bg-background text-foreground selection:bg-primary/20 selection:text-primary">
|
|
7
|
-
<div className="pointer-events-none absolute top-0 right-0 h-[380px] w-[380px] translate-x-1/4 -translate-y-1/4 rounded-full bg-primary opacity-20 blur-[110px]" />
|
|
8
|
-
<div className="pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-primary/45 to-transparent" />
|
|
9
|
-
|
|
10
|
-
<section className="relative z-10 mx-auto w-full max-w-5xl px-6 py-8 md:px-10 lg:px-12">
|
|
11
|
-
<div className="absolute right-0 top-0">
|
|
12
|
-
<ThemeToggle compact />
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<div className="grid items-center gap-8 lg:grid-cols-[minmax(0,1.08fr)_minmax(300px,0.92fr)]">
|
|
16
|
-
<div className="max-w-2xl">
|
|
17
|
-
<div className="inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-[11px] font-medium uppercase tracking-[0.28em] text-primary">
|
|
18
|
-
Flashpack starter
|
|
19
|
-
</div>
|
|
20
|
-
<h1 className="mt-6 max-w-2xl text-balance text-[clamp(2.9rem,5.8vw,5rem)] font-semibold leading-[0.94] tracking-tight text-foreground">
|
|
21
|
-
Stay in flow while the app keeps moving.
|
|
22
|
-
</h1>
|
|
23
|
-
<p className="mt-5 max-w-xl text-pretty text-base leading-8 text-muted-foreground md:text-lg">
|
|
24
|
-
Flashpack keeps the Vista workflow familiar, but gives you a tighter edit loop, clearer runtime traces,
|
|
25
|
-
and a cleaner place to inspect what happened during dev, build, and start.
|
|
26
|
-
</p>
|
|
27
|
-
|
|
28
|
-
<div className="mt-6 flex flex-wrap items-center gap-3 text-sm text-muted-foreground">
|
|
29
|
-
<span className="rounded-full border border-border bg-panel px-4 py-2">
|
|
30
|
-
Same <code>vista dev</code> workflow
|
|
31
|
-
</span>
|
|
32
|
-
<span className="rounded-full border border-border bg-panel px-4 py-2">
|
|
33
|
-
Traceable output in <code>.flash/</code>
|
|
34
|
-
</span>
|
|
35
|
-
<a
|
|
36
|
-
href="https://vista.xyz/docs/env"
|
|
37
|
-
className="rounded-full border border-border bg-panel px-4 py-2 text-foreground transition-colors hover:border-primary/50 hover:text-primary"
|
|
38
|
-
>
|
|
39
|
-
Read the env guide
|
|
40
|
-
</a>
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
<p className="mt-5 text-sm text-muted-foreground">
|
|
44
|
-
Edit <code className="rounded bg-panel px-2 py-1 text-foreground">app/index.tsx</code> to shape this screen.
|
|
45
|
-
</p>
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
<aside className="space-y-4">
|
|
49
|
-
<div className="rounded-[1.9rem] border border-border bg-panel-elevated/80 p-6 shadow-[0_28px_75px_rgba(0,0,0,0.22)] backdrop-blur-sm">
|
|
50
|
-
<div className="mb-6 flex items-center justify-between text-[11px] uppercase tracking-[0.24em] text-muted-foreground">
|
|
51
|
-
<span>Vista</span>
|
|
52
|
-
<span>Flashpack</span>
|
|
53
|
-
</div>
|
|
54
|
-
<div className="flex justify-center">
|
|
55
|
-
<Image
|
|
56
|
-
src="/vista.svg"
|
|
57
|
-
alt="Vista Logo"
|
|
58
|
-
width={600}
|
|
59
|
-
height={600}
|
|
60
|
-
priority
|
|
61
|
-
unoptimized
|
|
62
|
-
className="h-auto w-[210px] opacity-95 dark:invert sm:w-[250px] lg:w-[280px]"
|
|
63
|
-
/>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
|
|
67
|
-
<div className="grid gap-4 sm:grid-cols-2">
|
|
68
|
-
<article className="rounded-[1.6rem] border border-border bg-panel p-5">
|
|
69
|
-
<p className="text-sm font-medium uppercase tracking-[0.22em] text-primary">Quicker feedback</p>
|
|
70
|
-
<p className="mt-3 text-sm leading-7 text-muted-foreground">
|
|
71
|
-
Keep editing without feeling pushed into long restart cycles every time the route tree shifts.
|
|
72
|
-
</p>
|
|
73
|
-
</article>
|
|
74
|
-
<article className="rounded-[1.6rem] border border-border bg-panel p-5">
|
|
75
|
-
<p className="text-sm font-medium uppercase tracking-[0.22em] text-primary">Readable artifacts</p>
|
|
76
|
-
<p className="mt-3 text-sm leading-7 text-muted-foreground">
|
|
77
|
-
Open graph, runtime, and log output when you want to understand how the engine moved.
|
|
78
|
-
</p>
|
|
79
|
-
</article>
|
|
80
|
-
</div>
|
|
81
|
-
</aside>
|
|
82
|
-
</div>
|
|
83
|
-
</section>
|
|
84
|
-
</main>
|
|
85
|
-
);
|
|
86
|
-
}
|
|
1
|
+
import Image from 'vista/image';
|
|
2
|
+
import { ThemeToggle } from '../components/theme-toggle';
|
|
3
|
+
|
|
4
|
+
export default function Index() {
|
|
5
|
+
return (
|
|
6
|
+
<main className="relative flex min-h-[100dvh] items-center overflow-hidden bg-background text-foreground selection:bg-primary/20 selection:text-primary">
|
|
7
|
+
<div className="pointer-events-none absolute top-0 right-0 h-[380px] w-[380px] translate-x-1/4 -translate-y-1/4 rounded-full bg-primary opacity-20 blur-[110px]" />
|
|
8
|
+
<div className="pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-primary/45 to-transparent" />
|
|
9
|
+
|
|
10
|
+
<section className="relative z-10 mx-auto w-full max-w-5xl px-6 py-8 md:px-10 lg:px-12">
|
|
11
|
+
<div className="absolute right-0 top-0">
|
|
12
|
+
<ThemeToggle compact />
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<div className="grid items-center gap-8 lg:grid-cols-[minmax(0,1.08fr)_minmax(300px,0.92fr)]">
|
|
16
|
+
<div className="max-w-2xl">
|
|
17
|
+
<div className="inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-[11px] font-medium uppercase tracking-[0.28em] text-primary">
|
|
18
|
+
Flashpack starter
|
|
19
|
+
</div>
|
|
20
|
+
<h1 className="mt-6 max-w-2xl text-balance text-[clamp(2.9rem,5.8vw,5rem)] font-semibold leading-[0.94] tracking-tight text-foreground">
|
|
21
|
+
Stay in flow while the app keeps moving.
|
|
22
|
+
</h1>
|
|
23
|
+
<p className="mt-5 max-w-xl text-pretty text-base leading-8 text-muted-foreground md:text-lg">
|
|
24
|
+
Flashpack keeps the Vista workflow familiar, but gives you a tighter edit loop, clearer runtime traces,
|
|
25
|
+
and a cleaner place to inspect what happened during dev, build, and start.
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<div className="mt-6 flex flex-wrap items-center gap-3 text-sm text-muted-foreground">
|
|
29
|
+
<span className="rounded-full border border-border bg-panel px-4 py-2">
|
|
30
|
+
Same <code>vista dev</code> workflow
|
|
31
|
+
</span>
|
|
32
|
+
<span className="rounded-full border border-border bg-panel px-4 py-2">
|
|
33
|
+
Traceable output in <code>.flash/</code>
|
|
34
|
+
</span>
|
|
35
|
+
<a
|
|
36
|
+
href="https://vista.xyz/docs/env"
|
|
37
|
+
className="rounded-full border border-border bg-panel px-4 py-2 text-foreground transition-colors hover:border-primary/50 hover:text-primary"
|
|
38
|
+
>
|
|
39
|
+
Read the env guide
|
|
40
|
+
</a>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<p className="mt-5 text-sm text-muted-foreground">
|
|
44
|
+
Edit <code className="rounded bg-panel px-2 py-1 text-foreground">app/index.tsx</code> to shape this screen.
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<aside className="space-y-4">
|
|
49
|
+
<div className="rounded-[1.9rem] border border-border bg-panel-elevated/80 p-6 shadow-[0_28px_75px_rgba(0,0,0,0.22)] backdrop-blur-sm">
|
|
50
|
+
<div className="mb-6 flex items-center justify-between text-[11px] uppercase tracking-[0.24em] text-muted-foreground">
|
|
51
|
+
<span>Vista</span>
|
|
52
|
+
<span>Flashpack</span>
|
|
53
|
+
</div>
|
|
54
|
+
<div className="flex justify-center">
|
|
55
|
+
<Image
|
|
56
|
+
src="/vista.svg"
|
|
57
|
+
alt="Vista Logo"
|
|
58
|
+
width={600}
|
|
59
|
+
height={600}
|
|
60
|
+
priority
|
|
61
|
+
unoptimized
|
|
62
|
+
className="h-auto w-[210px] opacity-95 dark:invert sm:w-[250px] lg:w-[280px]"
|
|
63
|
+
/>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<div className="grid gap-4 sm:grid-cols-2">
|
|
68
|
+
<article className="rounded-[1.6rem] border border-border bg-panel p-5">
|
|
69
|
+
<p className="text-sm font-medium uppercase tracking-[0.22em] text-primary">Quicker feedback</p>
|
|
70
|
+
<p className="mt-3 text-sm leading-7 text-muted-foreground">
|
|
71
|
+
Keep editing without feeling pushed into long restart cycles every time the route tree shifts.
|
|
72
|
+
</p>
|
|
73
|
+
</article>
|
|
74
|
+
<article className="rounded-[1.6rem] border border-border bg-panel p-5">
|
|
75
|
+
<p className="text-sm font-medium uppercase tracking-[0.22em] text-primary">Readable artifacts</p>
|
|
76
|
+
<p className="mt-3 text-sm leading-7 text-muted-foreground">
|
|
77
|
+
Open graph, runtime, and log output when you want to understand how the engine moved.
|
|
78
|
+
</p>
|
|
79
|
+
</article>
|
|
80
|
+
</div>
|
|
81
|
+
</aside>
|
|
82
|
+
</div>
|
|
83
|
+
</section>
|
|
84
|
+
</main>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import type { Metadata } from 'vista';
|
|
2
|
-
import { Geist, Geist_Mono } from 'vista/font/google';
|
|
3
|
-
import { ThemeProvider, ThemeScript } from 'vista/theme';
|
|
4
|
-
import './globals.css';
|
|
5
|
-
|
|
6
|
-
const geistSans = Geist({
|
|
7
|
-
variable: '--font-geist-sans',
|
|
8
|
-
subsets: ['latin'],
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
const geistMono = Geist_Mono({
|
|
12
|
-
variable: '--font-geist-mono',
|
|
13
|
-
subsets: ['latin'],
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
export const metadata: Metadata = {
|
|
17
|
-
title: 'My Vista App',
|
|
18
|
-
description: 'Built with Vista Framework',
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
22
|
-
return (
|
|
23
|
-
<html lang="en" suppressHydrationWarning>
|
|
24
|
-
<head>
|
|
25
|
-
<ThemeScript defaultTheme="dark" />
|
|
26
|
-
</head>
|
|
27
|
-
<body
|
|
28
|
-
className={`${geistSans.variable} ${geistMono.variable} min-h-screen overflow-x-hidden bg-background text-foreground antialiased`}
|
|
29
|
-
suppressHydrationWarning
|
|
30
|
-
>
|
|
31
|
-
<ThemeProvider defaultTheme="dark">{children}</ThemeProvider>
|
|
32
|
-
</body>
|
|
33
|
-
</html>
|
|
34
|
-
);
|
|
35
|
-
}
|
|
1
|
+
import type { Metadata } from 'vista';
|
|
2
|
+
import { Geist, Geist_Mono } from 'vista/font/google';
|
|
3
|
+
import { ThemeProvider, ThemeScript } from 'vista/theme';
|
|
4
|
+
import './globals.css';
|
|
5
|
+
|
|
6
|
+
const geistSans = Geist({
|
|
7
|
+
variable: '--font-geist-sans',
|
|
8
|
+
subsets: ['latin'],
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
const geistMono = Geist_Mono({
|
|
12
|
+
variable: '--font-geist-mono',
|
|
13
|
+
subsets: ['latin'],
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export const metadata: Metadata = {
|
|
17
|
+
title: 'My Vista App',
|
|
18
|
+
description: 'Built with Vista Framework',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
22
|
+
return (
|
|
23
|
+
<html lang="en" suppressHydrationWarning>
|
|
24
|
+
<head>
|
|
25
|
+
<ThemeScript defaultTheme="dark" />
|
|
26
|
+
</head>
|
|
27
|
+
<body
|
|
28
|
+
className={`${geistSans.variable} ${geistMono.variable} min-h-screen overflow-x-hidden bg-background text-foreground antialiased`}
|
|
29
|
+
suppressHydrationWarning
|
|
30
|
+
>
|
|
31
|
+
<ThemeProvider defaultTheme="dark">{children}</ThemeProvider>
|
|
32
|
+
</body>
|
|
33
|
+
</html>
|
|
34
|
+
);
|
|
35
|
+
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-vista-app",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Create Vista applications with one command",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-vista-app": "./bin/cli.js"
|
|
7
7
|
},
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
|
-
"url": "https://github.com/
|
|
10
|
+
"url": "https://github.com/Mantitup-Org/vista.git",
|
|
11
11
|
"directory": "packages/create-vista-app"
|
|
12
12
|
},
|
|
13
13
|
"author": "Vista Team",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"react": "^19.0.0",
|
|
36
36
|
"react-dom": "^19.0.0"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "d1b9f715d6365d8e1f553e96b752fbce8d98df7c"
|
|
39
39
|
}
|
package/template/README.md
CHANGED
|
@@ -1,100 +1,60 @@
|
|
|
1
|
-
# My Vista App
|
|
2
|
-
|
|
3
|
-
Built with [Vista.js](https://github.com/vistakit/Vista-Js) — the React framework for visionaries.
|
|
4
|
-
|
|
5
|
-
Selected engine for this app: `__VISTA_ENGINE__`
|
|
6
|
-
|
|
7
|
-
Typed API starter: `__VISTA_TYPED_API__`
|
|
1
|
+
# My Vista App
|
|
8
2
|
|
|
9
|
-
|
|
3
|
+
Built with [Vista.js](https://github.com/Mantitup-Org/vista).
|
|
10
4
|
|
|
11
|
-
|
|
5
|
+
Selected engine: `__VISTA_ENGINE__` · Typed API starter: `__VISTA_TYPED_API__`
|
|
6
|
+
|
|
7
|
+
## Run
|
|
12
8
|
|
|
13
9
|
```bash
|
|
14
10
|
npm run dev
|
|
15
|
-
# or
|
|
16
|
-
pnpm dev
|
|
17
11
|
```
|
|
18
12
|
|
|
19
|
-
Open [http://localhost:3003](http://localhost:3003)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
Open [http://localhost:3003](http://localhost:3003).
|
|
14
|
+
|
|
15
|
+
## What can you build?
|
|
16
|
+
|
|
17
|
+
| Goal | How |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Normal React UI | Add pages under `app/`. Use `'use client'` for interactive components. |
|
|
20
|
+
| Fullstack APIs | Add `app/api/**/route.ts`, or run `vista g api-init` for typed procedures. |
|
|
21
|
+
| Auth | `vista g auth` then set `AUTH_SECRET`. Opens `/signin` (POST credentials + OAuth) and gates `/account`. |
|
|
22
|
+
| AI chat agent | `vista g agent support` → edit `app/agents/support/agent.ts`. |
|
|
23
|
+
| RAG over your docs | Use `InMemoryVectorStore` + `createRetrieverTool` + optional `embedText` from `vista/ai`. |
|
|
26
24
|
|
|
27
|
-
## Project
|
|
25
|
+
## Project structure
|
|
28
26
|
|
|
29
27
|
```
|
|
30
28
|
app/
|
|
31
|
-
├── root.tsx # Root layout
|
|
32
|
-
├── index.tsx # Home
|
|
33
|
-
├── globals.css
|
|
34
|
-
└── about/
|
|
35
|
-
|
|
29
|
+
├── root.tsx # Root layout
|
|
30
|
+
├── index.tsx # Home → /
|
|
31
|
+
├── globals.css
|
|
32
|
+
└── about/page.tsx # → /about
|
|
33
|
+
components/
|
|
36
34
|
public/
|
|
37
|
-
|
|
38
|
-
vista.config.ts # Framework configuration
|
|
35
|
+
vista.config.ts
|
|
39
36
|
```
|
|
40
37
|
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
- `flashpack` (Rust-first path)
|
|
65
|
-
|
|
66
|
-
You can choose at scaffold time, but the generated app still uses the same `npm run dev`, `npm run build`, and `npm run start` scripts. Vista reads the selected engine from `vista.config.ts`.
|
|
67
|
-
|
|
68
|
-
Example:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
npx create-vista-app@latest my-vista-app --engine flashpack
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
The generated config looks like:
|
|
75
|
-
|
|
76
|
-
```ts
|
|
77
|
-
engine: {
|
|
78
|
-
variant: 'flashpack'
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Flashpack engine runtime/cache artifacts are stored in `.flash/`.
|
|
83
|
-
|
|
84
|
-
## Typed API Rollback
|
|
85
|
-
|
|
86
|
-
Typed API is experimental and can be disabled anytime from `vista.config.ts`:
|
|
87
|
-
|
|
88
|
-
```ts
|
|
89
|
-
experimental: {
|
|
90
|
-
typedApi: {
|
|
91
|
-
enabled: false
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
## Learn More
|
|
97
|
-
|
|
98
|
-
- [Vista.js GitHub](https://github.com/vistakit/Vista-Js)
|
|
99
|
-
- [React Server Components](https://react.dev/reference/rsc/server-components)
|
|
100
|
-
- [Tailwind CSS v4](https://tailwindcss.com)
|
|
38
|
+
## Commands
|
|
39
|
+
|
|
40
|
+
| Command | Description |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| `npm run dev` / `build` / `start` | Develop, build (`.vista/`), serve |
|
|
43
|
+
| `vista g api-init` | Typed API starter |
|
|
44
|
+
| `vista g auth` | Auth config, `/signin`, `/account`, middleware, SessionProvider |
|
|
45
|
+
| `vista g agent <name>` | Agent + streaming route + `app/AGENTS.md` |
|
|
46
|
+
| `npm run deploy` | Deploy helpers (Render, Vercel, Cloudflare, …) |
|
|
47
|
+
|
|
48
|
+
## Models (AI)
|
|
49
|
+
|
|
50
|
+
Set `VISTA_AI_MODEL`, for example:
|
|
51
|
+
|
|
52
|
+
- `openai:gpt-4o` · `groq:llama-3.1-8b-instant` · `nvidia:meta/llama-3.1-8b-instruct` · `ollama:llama3`
|
|
53
|
+
|
|
54
|
+
## Learn more
|
|
55
|
+
|
|
56
|
+
- [React app guide](https://vista-js.vercel.app/docs/getting-started/react-app)
|
|
57
|
+
- [Fullstack guide](https://vista-js.vercel.app/docs/getting-started/fullstack-app)
|
|
58
|
+
- [AI overview](https://vista-js.vercel.app/docs/ai/overview)
|
|
59
|
+
- [RAG guide](https://vista-js.vercel.app/docs/ai/rag)
|
|
60
|
+
- [GitHub](https://github.com/Mantitup-Org/vista)
|
package/template/app/globals.css
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
|
|
3
|
-
@custom-variant dark (&:where(.dark, .dark *));
|
|
4
|
-
|
|
5
|
-
@theme inline {
|
|
6
|
-
--color-background: var(--background);
|
|
7
|
-
--color-foreground: var(--foreground);
|
|
8
|
-
--color-primary: var(--primary);
|
|
9
|
-
--color-muted: var(--muted);
|
|
10
|
-
--color-muted-foreground: var(--muted-foreground);
|
|
11
|
-
--color-border: var(--border);
|
|
12
|
-
--color-panel: var(--panel);
|
|
13
|
-
--color-panel-elevated: var(--panel-elevated);
|
|
14
|
-
--font-sans: var(--font-geist-sans);
|
|
15
|
-
--font-mono: var(--font-geist-mono);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
html {
|
|
19
|
-
min-height: 100%;
|
|
20
|
-
overflow-x: hidden;
|
|
21
|
-
scrollbar-gutter: stable;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
:root {
|
|
25
|
-
--background: #f3e8d8;
|
|
26
|
-
--foreground: #171717;
|
|
27
|
-
--primary: #ff4c30;
|
|
28
|
-
--muted: #ebe4d9;
|
|
29
|
-
--muted-foreground: #5f6570;
|
|
30
|
-
--border: #ddd4c8;
|
|
31
|
-
--panel: rgba(255, 255, 255, 0.76);
|
|
32
|
-
--panel-elevated: rgba(255, 255, 255, 0.92);
|
|
33
|
-
color-scheme: light;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
:root.light {
|
|
37
|
-
--background: #f3e8d8;
|
|
38
|
-
--foreground: #171717;
|
|
39
|
-
--primary: #ff4c30;
|
|
40
|
-
--muted: #ebe4d9;
|
|
41
|
-
--muted-foreground: #5f6570;
|
|
42
|
-
--border: #ddd4c8;
|
|
43
|
-
--panel: rgba(255, 255, 255, 0.76);
|
|
44
|
-
--panel-elevated: rgba(255, 255, 255, 0.92);
|
|
45
|
-
color-scheme: light;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
:root.dark {
|
|
49
|
-
--background: #0a0a0a;
|
|
50
|
-
--foreground: #ededed;
|
|
51
|
-
--primary: #ff4c30;
|
|
52
|
-
--muted: #11141b;
|
|
53
|
-
--muted-foreground: #97a0af;
|
|
54
|
-
--border: #1f2632;
|
|
55
|
-
--panel: rgba(15, 20, 30, 0.76);
|
|
56
|
-
--panel-elevated: rgba(11, 16, 24, 0.9);
|
|
57
|
-
color-scheme: dark;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
body {
|
|
61
|
-
min-height: 100vh;
|
|
62
|
-
margin: 0;
|
|
63
|
-
background: var(--background);
|
|
64
|
-
color: var(--foreground);
|
|
65
|
-
font-family: var(--font-geist-sans), Arial, Helvetica, sans-serif;
|
|
66
|
-
overflow-x: hidden;
|
|
67
|
-
transition:
|
|
68
|
-
background-color 180ms ease,
|
|
69
|
-
color 180ms ease;
|
|
70
|
-
}
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
4
|
+
|
|
5
|
+
@theme inline {
|
|
6
|
+
--color-background: var(--background);
|
|
7
|
+
--color-foreground: var(--foreground);
|
|
8
|
+
--color-primary: var(--primary);
|
|
9
|
+
--color-muted: var(--muted);
|
|
10
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
11
|
+
--color-border: var(--border);
|
|
12
|
+
--color-panel: var(--panel);
|
|
13
|
+
--color-panel-elevated: var(--panel-elevated);
|
|
14
|
+
--font-sans: var(--font-geist-sans);
|
|
15
|
+
--font-mono: var(--font-geist-mono);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
html {
|
|
19
|
+
min-height: 100%;
|
|
20
|
+
overflow-x: hidden;
|
|
21
|
+
scrollbar-gutter: stable;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:root {
|
|
25
|
+
--background: #f3e8d8;
|
|
26
|
+
--foreground: #171717;
|
|
27
|
+
--primary: #ff4c30;
|
|
28
|
+
--muted: #ebe4d9;
|
|
29
|
+
--muted-foreground: #5f6570;
|
|
30
|
+
--border: #ddd4c8;
|
|
31
|
+
--panel: rgba(255, 255, 255, 0.76);
|
|
32
|
+
--panel-elevated: rgba(255, 255, 255, 0.92);
|
|
33
|
+
color-scheme: light;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:root.light {
|
|
37
|
+
--background: #f3e8d8;
|
|
38
|
+
--foreground: #171717;
|
|
39
|
+
--primary: #ff4c30;
|
|
40
|
+
--muted: #ebe4d9;
|
|
41
|
+
--muted-foreground: #5f6570;
|
|
42
|
+
--border: #ddd4c8;
|
|
43
|
+
--panel: rgba(255, 255, 255, 0.76);
|
|
44
|
+
--panel-elevated: rgba(255, 255, 255, 0.92);
|
|
45
|
+
color-scheme: light;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:root.dark {
|
|
49
|
+
--background: #0a0a0a;
|
|
50
|
+
--foreground: #ededed;
|
|
51
|
+
--primary: #ff4c30;
|
|
52
|
+
--muted: #11141b;
|
|
53
|
+
--muted-foreground: #97a0af;
|
|
54
|
+
--border: #1f2632;
|
|
55
|
+
--panel: rgba(15, 20, 30, 0.76);
|
|
56
|
+
--panel-elevated: rgba(11, 16, 24, 0.9);
|
|
57
|
+
color-scheme: dark;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
body {
|
|
61
|
+
min-height: 100vh;
|
|
62
|
+
margin: 0;
|
|
63
|
+
background: var(--background);
|
|
64
|
+
color: var(--foreground);
|
|
65
|
+
font-family: var(--font-geist-sans), Arial, Helvetica, sans-serif;
|
|
66
|
+
overflow-x: hidden;
|
|
67
|
+
transition:
|
|
68
|
+
background-color 180ms ease,
|
|
69
|
+
color 180ms ease;
|
|
70
|
+
}
|