@fougere/nuxt 0.14.1-alpha.0 → 0.15.0-alpha.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fougere/nuxt",
3
- "version": "0.14.1-alpha.0",
3
+ "version": "0.15.0-alpha.0",
4
4
  "description": "The Nuxt module: Fougere's client primitives and server surface.",
5
5
  "keywords": [
6
6
  "fougere",
@@ -32,12 +32,12 @@
32
32
  "template"
33
33
  ],
34
34
  "dependencies": {
35
- "@fougere/app": "0.14.1-alpha.0",
36
- "@fougere/core": "0.14.1-alpha.0",
37
- "@fougere/defaults": "0.14.1-alpha.0",
35
+ "@fougere/app": "0.15.0-alpha.0",
36
+ "@fougere/core": "0.15.0-alpha.0",
37
+ "@fougere/defaults": "0.15.0-alpha.0",
38
38
  "@nuxt/kit": "^4.5.1",
39
39
  "jiti": "^2.6.1",
40
- "@fougere/compiler": "0.14.1-alpha.0"
40
+ "@fougere/compiler": "0.15.0-alpha.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@nuxt/schema": "^4.5.1",
@@ -1,25 +1,3 @@
1
1
  <template>
2
2
  <NuxtPage />
3
3
  </template>
4
-
5
- <style>
6
- :root { --fg: #1a1a1a; --muted: #6b7280; --border: #e5e7eb; --accent: #2563eb; }
7
- * { box-sizing: border-box; }
8
- body { margin: 0; font-family: system-ui, -apple-system, sans-serif; color: var(--fg); line-height: 1.6; }
9
- .wrap { max-width: 720px; margin: 3rem auto; padding: 0 1.5rem; }
10
- a { color: var(--accent); text-decoration: none; }
11
- a:hover { text-decoration: underline; }
12
- h1 { font-size: 1.6rem; margin-bottom: 0.25rem; }
13
- code { background: #f3f4f6; padding: 0.1rem 0.35rem; border-radius: 4px; font-size: 0.9em; }
14
- table { width: 100%; border-collapse: collapse; margin-top: 1rem; }
15
- th, td { text-align: left; padding: 0.6rem 0.5rem; border-bottom: 1px solid var(--border); }
16
- th { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); }
17
- label { display: block; font-size: 0.85rem; margin: 0.9rem 0 0.3rem; color: var(--muted); }
18
- input, textarea { width: 100%; padding: 0.5rem 0.6rem; border: 1px solid var(--border); border-radius: 6px; font: inherit; }
19
- button { padding: 0.5rem 0.9rem; border: 0; border-radius: 6px; background: var(--accent); color: #fff; font: inherit; cursor: pointer; }
20
- button:disabled { opacity: 0.5; cursor: default; }
21
- .badge { font-size: 0.72rem; padding: 0.15rem 0.55rem; border-radius: 999px; background: #f3f4f6; color: var(--muted); }
22
- .badge.published { background: #dcfce7; color: #166534; }
23
- .muted { color: var(--muted); }
24
- .err { color: #b91c1c; font-size: 0.9rem; }
25
- </style>
@@ -1,33 +1,36 @@
1
- <script setup lang="ts">
2
- // The four primitives are auto-imported by @fougere/nuxt — no import line to write.
3
- // They take an ENTITY, so this page names none: what is composed here is yours, and a
4
- // scaffold that guessed at an entity shipped a page that could not run.
5
- //
6
- // import Post from '@fronds/<your-frond>/entities/Post'
7
- // const { items, loading } = await useQuery(Post, 'list')
8
- // const { values, errors, submit } = useFormFor(Post)
9
- // const { execute } = useCommand(Post, 'publish')
10
- const { user } = useCurrentUser();
11
- </script>
12
-
13
1
  <template>
14
- <main class="wrap">
2
+ <main class="welcome">
15
3
  <h1>🌿 Fougere</h1>
16
- <p class="muted">
17
- The app boots, the fronds are scanned, the surface is mounted. Write a page against
18
- one of your entities — the commented block in this file is the whole API.
19
- </p>
20
- <p class="muted">Reader: <strong>{{ user?.name ?? 'nobody' }}</strong></p>
21
- <p class="muted">What to write, and why: <code>CLAUDE.md</code> at the workspace root.</p>
4
+ <p class="host">Your app is running on <strong>Nuxt</strong>.</p>
5
+ <ol>
6
+ <li><a href="https://fougere.dev/docs/guides/business-logic">Handle your business logic <span>→</span></a></li>
7
+ <li><a href="https://fougere.dev/docs/guides/data">Store your data <span>→</span></a></li>
8
+ <li><a href="https://fougere.dev/docs/guides/topology">Shape your topology <span>→</span></a></li>
9
+ </ol>
10
+ <footer><a href="https://fougere.dev/docs">Docs</a></footer>
22
11
  </main>
23
12
  </template>
24
13
 
25
14
  <style>
26
- :root { --fg: #1a1a1a; --muted: #6b7280; }
27
- * { box-sizing: border-box; }
28
- body { margin: 0; font-family: system-ui, -apple-system, sans-serif; color: var(--fg); line-height: 1.6; }
29
- .wrap { max-width: 720px; margin: 3rem auto; padding: 0 1.5rem; }
30
- h1 { font-size: 1.6rem; margin-bottom: 0.25rem; }
31
- code { background: #f3f4f6; padding: 0.1rem 0.35rem; border-radius: 4px; font-size: 0.9em; }
32
- .muted { color: var(--muted); }
15
+ :root {
16
+ color-scheme: light dark;
17
+ --ink: #25372d; --muted: #65736a; --line: #dce3d9; --green: #38714c; --wash: #eaf0e6; --bg: #f7f8f4;
18
+ }
19
+ @media (prefers-color-scheme: dark) {
20
+ :root { --ink: #e0e8df; --muted: #9ca99e; --line: #303c32; --green: #9bc99d; --wash: #29392c; --bg: #151c18; }
21
+ }
22
+ body { margin: 0; background: var(--bg); color: var(--ink); font: 15px/1.6 system-ui, sans-serif; }
23
+ .welcome { max-width: 520px; margin: 0 auto; padding: 64px 24px 40px; }
24
+ .welcome h1 { margin: 0; font-size: 20px; font-weight: 600; }
25
+ .welcome .host { margin: 12px 0 40px; color: var(--muted); }
26
+ .welcome .host strong { color: var(--ink); font-weight: 500; }
27
+ .welcome ol { margin: 0; padding-left: 32px; }
28
+ .welcome li { padding-left: 8px; border-bottom: 1px solid var(--line); }
29
+ .welcome li::marker { color: var(--muted); font-size: 12px; }
30
+ .welcome li a { display: flex; justify-content: space-between; gap: 20px; padding: 17px 12px; border-radius: 6px; color: inherit; font-size: 18px; text-decoration: none; }
31
+ .welcome li a span { color: var(--muted); }
32
+ .welcome li:first-child a { background: var(--wash); color: var(--green); font-weight: 600; }
33
+ .welcome li a:hover { background: var(--wash); color: var(--green); }
34
+ .welcome footer { margin-top: 32px; font-size: 13px; }
35
+ .welcome footer a { color: var(--muted); }
33
36
  </style>
@@ -0,0 +1,32 @@
1
+ {
2
+ "create": [
3
+ "create-nuxt@3",
4
+ "{dir}",
5
+ "--template",
6
+ "minimal",
7
+ "--packageManager",
8
+ "pnpm",
9
+ "--no-install",
10
+ "--gitInit",
11
+ "false",
12
+ "--force"
13
+ ],
14
+ "dependencies": {
15
+ "@fougere/core": "latest",
16
+ "@fougere/schema": "latest",
17
+ "@fougere/defaults": "latest",
18
+ "@fougere/container": "latest",
19
+ "better-sqlite3": "^13.0.3",
20
+ "kysely": "^0.28.17",
21
+ "@fougere/nuxt": "latest"
22
+ },
23
+ "wire": {
24
+ "kind": "nuxtModule",
25
+ "file": "nuxt.config.ts",
26
+ "module": "@fougere/nuxt",
27
+ "configKey": "fougere",
28
+ "options": {
29
+ "root": "../.."
30
+ }
31
+ }
32
+ }
@@ -1,6 +0,0 @@
1
- export default defineNuxtConfig({
2
- modules: ['@fougere/nuxt'],
3
- // Fronds are shared at the workspace root, two levels up from apps/<name>.
4
- fougere: { root: '../..' },
5
- compatibilityDate: '2026-07-20',
6
- });
@@ -1,19 +0,0 @@
1
- {
2
- "name": "fougere-app",
3
- "private": true,
4
- "type": "module",
5
- "scripts": {
6
- "dev": "nuxt dev",
7
- "build": "nuxt build"
8
- },
9
- "dependencies": {
10
- "@fougere/core": "latest",
11
- "@fougere/nuxt": "latest",
12
- "@fougere/schema": "latest",
13
- "@fougere/defaults": "latest",
14
- "better-sqlite3": "^13.0.3",
15
- "kysely": "^0.28.17",
16
- "nuxt": "^4.5.1",
17
- "@fougere/container": "latest"
18
- }
19
- }
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "./.nuxt/tsconfig.json"
3
- }