create-muten 0.0.17 → 0.0.18

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/README.md CHANGED
@@ -61,7 +61,6 @@ In an interactive terminal it prompts for a few things (defaults in parentheses)
61
61
  | Prompt | Options | Default |
62
62
  |---|---|---|
63
63
  | **Project name** | any valid folder name | `muten-app` |
64
- | **Template** | `muten` / `muten + React` / `muten + Svelte` | `muten` |
65
64
  | **Styling** | `CSS` / `SCSS` / `Tailwind CSS` / `DaisyUI` (brings Tailwind) | `CSS` |
66
65
  | **Add Vercel deploy config?** | `Y` / `n` | `n` |
67
66
  | **Desktop app (Tauri)?** | `Y` / `n` | `n` |
@@ -77,25 +76,12 @@ component classes on top (and brings Tailwind). You always style via `class("…
77
76
  - **Tauri** adds `src-tauri/` (a native desktop app - ships the OS webview, *not* a browser) + a `tauri` script:
78
77
  `npm run tauri dev` / `tauri build`. Needs the [Rust toolchain](https://rustup.rs) installed (not auto-installed).
79
78
 
80
- ## Templates (flavors)
81
-
82
- Every flavor scaffolds the **same** welcome page and the same `.muten` workflow, the only difference is
83
- whether a framework's island plugin is pre-wired:
84
-
85
- | Template | What you get |
86
- |---|---|
87
- | **muten** | pure muten - the AI-first DSL, zero framework runtime |
88
- | **muten + React** | same, plus `@vitejs/plugin-react` + React, so you can drop in a **React island** (shadcn/Radix, any React lib) |
89
- | **muten + Svelte** | same, plus `@sveltejs/vite-plugin-svelte` + Svelte, for **Svelte islands** (a lighter runtime) |
90
-
91
- An *island* is a real framework component used as a node - `use X from "react:./X.jsx"` →
92
- `X(value: s, onChange: act) client:visible` (props ↓ + events ↑, lazy + code-split). Default to `.muten`;
93
- reach for an island only for a widget muten can't express.
79
+ ## Styling
94
80
 
95
81
  When **Tailwind or DaisyUI** is added, `theme.muten` is centralized to **match Tailwind's scale** (so
96
82
  `style()` tokens and Tailwind utilities share one scale, e.g. `style(gap.md)` == `gap-4`); plain CSS/SCSS
97
83
  keeps the default scale. **DaisyUI** adds component classes (`btn`, `card`, `modal`) usable in `class("…")` -
98
- pure classes, no React; behavior is Muten state + `on()`.
84
+ pure classes; behavior is Muten state + `on()`.
99
85
 
100
86
  If you accept the last prompt it runs `<pm> install` followed by `<pm> run dev`, your app is live in a
101
87
  single step. Choosing SCSS also adds `sass` and switches the stylesheet to `.scss` automatically.
@@ -113,7 +99,6 @@ create-muten my-app --css --no-install # just scaffold, decide later
113
99
  | Flag | Effect |
114
100
  |---|---|
115
101
  | `<name>` | the project folder (positional argument) |
116
- | `--template <muten\|react\|svelte>` | flavor (default: `muten`); `--react` / `--svelte` are shortcuts |
117
102
  | `--css` / `--scss` | pick the stylesheet (default: `css`) |
118
103
  | `--tailwind` | add Tailwind CSS v4 on top of CSS (forces `--css`) |
119
104
  | `--daisyui` | add DaisyUI component classes (implies `--tailwind`) |
@@ -154,22 +139,22 @@ declarative 80% - CRUD, dashboards, catalogs, content, internal tools. For the r
154
139
 
155
140
  - **Pure muten**: CRUD / SaaS / catalog / dashboard / content: pages, routing, `state`/`store` (with page→store
156
141
  action composition), `query` over REST, `Form` (text/number/email/bool/enum + validation), `DataTable`,
157
- `when`/`each`, SSG + SEO, and the bounded **list toolkit**: inline objects, `patch` in-place edit, `each…where`
158
- filter, aggregates (`sum`/`count`/`avg`/`min`/`max`), `sort`/`sortDesc`. The declarative 80%, zero extra deps.
142
+ `when`/`each`, SSG + SEO, and the bounded **list toolkit**: inline objects, `patch where`/`remove where` edits,
143
+ `each…where` filter, aggregates (`sum`/`count`/`avg`/`min`/`max by`), `sort`/`sortDesc by`, `toggle`. The
144
+ declarative 80%, zero extra deps.
159
145
  - **muten + the platform** *(no framework runtime)* - native HTML (`<input type="date">`, `<dialog>`) + `class()`,
160
146
  CSS libs (Tailwind / DaisyUI), **vanilla JS via `Custom`** (charts, maps, date-pickers, rich-text, grids),
161
- `use fmt from "./lib.ts"` for any JS logic. Almost every "hard widget" lands here, *without React*.
162
- - **Svelte / React island** (`--svelte` / `--react`) - only when the component *is* a framework component
163
- (shadcn/ui, a React-only lib). Ships that runtime, lazy + code-split. The narrow last resort.
147
+ `use fmt from "./lib.ts"` for any JS logic. Almost every "hard widget" lands here - muten ships zero framework
148
+ runtime, so there is no React/Svelte escape; foreign UI comes in as a vanilla `Custom` component.
164
149
 
165
- **Deploy, honestly:** `npm run dev` runs every tier. For production, pure-muten static content can ship via
166
- `muten build` (zero-JS HTML); the moment you use `use`/islands/shared cross-page state, deploy with a normal
150
+ **Deploy, honestly:** `npm run dev` runs both tiers. For production, pure-muten static content can ship via
151
+ `muten build` (zero-JS HTML); the moment you use `use`/`Custom`/shared cross-page state, deploy with a normal
167
152
  `vite build` (it bundles them - the static build doesn't). Most real apps use `vite build`.
168
153
 
169
- Full reference (every primitive, the three tiers, the roadmap): [`@muten/core`](https://www.npmjs.com/package/@muten/core).
154
+ Full reference (every primitive, the tiers, the roadmap): [`@muten/core`](https://www.npmjs.com/package/@muten/core).
170
155
 
171
- > **Status: pre-1.0.** The core (language, compiler, CLI, Vite plugin, extension, islands) is solid; the
172
- > ecosystem is young and full island SSR is experimental. Great for real apps, not yet for critical production.
156
+ > **Status: pre-1.0.** The core (language, compiler, CLI, Vite plugin, extension) is solid; the
157
+ > ecosystem is young. Great for real apps, not yet for critical production.
173
158
 
174
159
  ## Requirements
175
160
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-muten",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "description": "Scaffold a new Muten app.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,7 +24,7 @@ Page class("welcome") {
24
24
  Stack class("card") { Title "Edit this page" h3 class("card-title") Text "src/pages/home/home.muten" class("card-text") }
25
25
  Stack class("card") { Title "Add a route" h3 class("card-title") Text "Map URLs to pages in src/app.muten" class("card-text") }
26
26
  Stack class("card") { Title "Style it" h3 class("card-title") Text "class(…) plus your CSS in src/styles.css — Tailwind optional" class("card-text") }
27
- Stack class("card") { Title "Need React or Svelte?" h3 class("card-title") Text "Drop a real component in as an island, lazy and code-split" class("card-text") }
27
+ Stack class("card") { Title "Need a JS widget?" h3 class("card-title") Text "Mount any vanilla-JS library with a Custom component" class("card-text") }
28
28
  }
29
29
  }
30
30