@getvitops/create 0.3.3 → 0.4.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/CHANGELOG.md CHANGED
@@ -1,5 +1,55 @@
1
1
  # @getvitops/create
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - bf453b0: Scaffolded projects now track the current toolchain instead of a version frozen at authoring time.
8
+
9
+ The emdash template pinned `@getvitops/astro: ^0.7.0`, `@getvitops/cli: ^0.4.0` and
10
+ `@getvitops/emdash: ^0.2.1` — ranges that were right when written and then quietly weren't. Anyone
11
+ running `vp create @getvitops:emdash` through the whole 1.0 release got a project a full major
12
+ behind, which looks like a working scaffold and isn't. Every `@getvitops/*` dependency is now
13
+ `latest`, which is the correct answer here precisely because these packages move in lockstep: a
14
+ scaffold wants the set that was released together, not whichever versions someone last remembered
15
+ to type.
16
+
17
+ **Also fixed: `vite` and `vite-plus` were `catalog:`.** That is a pnpm protocol which only resolves
18
+ inside this monorepo, and the publish-time rewrite that handles it for a package's own dependencies
19
+ does not reach inside `templates/**` — those ship as verbatim data. So the scaffold succeeded and
20
+ the first `install` in it failed on an unresolvable specifier. Both now say `latest`.
21
+
22
+ A test over every template's `package.json` now rejects `workspace:`/`catalog:` specifiers and
23
+ requires `@getvitops/*` deps to be `latest`, so neither can come back silently.
24
+
25
+ ## 0.3.4
26
+
27
+ ### Patch Changes
28
+
29
+ - bb92a14: Update the `emdash` template for the target-prefixed colour grammar.
30
+
31
+ The template's `design-system.json` and layout referenced tokens the generator no longer
32
+ emits — `--surface-bg`, `--surface-bg-muted`, `--neutral-border` — so a freshly scaffolded
33
+ project rendered a transparent card on a borderless footer. They now read
34
+ `--color-bg-surface-muted`, `--color-bg-surface-x-muted` and `--color-border-neutral`, and
35
+ `colors.utilities` picks up the new `icon` tier.
36
+
37
+ Existing scaffolds are unaffected until you upgrade `@getvitops/*`; when you do, the
38
+ [colour grammar migration table](https://www.npmjs.com/package/@getvitops/generator) applies
39
+ to your own `design-system.json` the same way.
40
+
41
+ - bb92a14: Docs: import the Astro integration as `vitops`, and document the fourth output format.
42
+
43
+ Every example now reads `import vitops from '@getvitops/astro'` and calls `vitops({ … })`,
44
+ including the scaffolded `emdash` template. The default export is unchanged, so this is a
45
+ naming convention in the docs rather than an API change — existing configs that bind it as
46
+ `getvitops` keep working.
47
+
48
+ The `@getvitops/generator` and `@getvitops/cli` docs also describe the `design` format, which
49
+ was shipped without a mention in either package's output table: `--format design` writes a
50
+ single `DESIGN.md` and no CSS, so a run that composes it with a stylesheet wants its own
51
+ `--out` (the brief conventionally sits at a repo root, the stylesheet does not).
52
+
3
53
  ## 0.3.3
4
54
 
5
55
  ### Patch Changes
package/README.md CHANGED
@@ -24,7 +24,7 @@ vp create @getvitops:emdash
24
24
  An [EmDash CMS](https://docs.emdashcms.com) website on Cloudflare Workers,
25
25
  with every relevant `@getvitops/*` package pre-wired:
26
26
 
27
- - **`@getvitops/astro`** — the `getvitops()` integration: design-system CSS
27
+ - **`@getvitops/astro`** — the `vitops()` integration: design-system CSS
28
28
  generated from `design-system.json` (Tailwind v4 format, layout-scoped via
29
29
  `css.inject: false`), favicons/PWA from `src/assets/logo.svg`, and the
30
30
  web-component runtime copied into `public/vitops/`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getvitops/create",
3
- "version": "0.3.3",
3
+ "version": "0.4.0",
4
4
  "description": "Project templates for the Vitops design system — scaffold wired-up sites with `vp create @getvitops`.",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -11,6 +11,9 @@
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
14
+ "devDependencies": {
15
+ "vitest": "^4.1.9"
16
+ },
14
17
  "createConfig": {
15
18
  "templates": [
16
19
  {
@@ -6,7 +6,7 @@ styled by the Vitops design system.
6
6
  - `design-system.json` is the single source of truth for the design system
7
7
  (colors, type, spacing, patterns, animations). Never edit
8
8
  `src/styles/tailwind.css` — it is generated from the JSON by the
9
- `getvitops()` integration on every dev/build and is gitignored.
9
+ `vitops()` integration on every dev/build and is gitignored.
10
10
  - Content lives in the EmDash database, not in the repo. Query it with
11
11
  `getEmDashCollection` / `getEmDashEntry` from `emdash`; render Portable Text
12
12
  with `<PortableText />` from `emdash/ui` (the Vitops blocks from
@@ -39,7 +39,16 @@ styled by the Vitops design system.
39
39
  auto-merge; merging deploys prod. Only run it when the user explicitly asks
40
40
  to promote/ship to production.
41
41
  - Sample legal pages (`/terms`, `/privacy`) ship as seeded placeholder content
42
- — remind the user to replace them before launch.
42
+ — remind the user to replace them before launch. They are deliberately short
43
+ and obviously unfinished; do not "improve" them into something that reads as
44
+ a finished policy, because the risk here is a plausible-looking document
45
+ getting shipped unread.
46
+ To replace them properly, write a site config and run
47
+ `npx vitops legal --format portable-text --out ./legal`, then paste each
48
+ document's blocks into the page in the admin. That renders a real policy from
49
+ what the site actually does — the analytics provider it uses, the fields its
50
+ forms collect, where it deploys — rather than from guesses. It still needs
51
+ review before launch.
43
52
 
44
53
  ## Docs MCP servers
45
54
 
@@ -37,6 +37,17 @@ the seed: home, about, terms (`/terms`), and privacy policy (`/privacy`).
37
37
  Until then the home route shows a friendly empty state. Unknown paths render
38
38
  `src/pages/404.astro`.
39
39
 
40
+ The two legal pages are placeholders. To generate real ones from what your site
41
+ actually does, describe it in a site config and run:
42
+
43
+ ```sh
44
+ npx vitops legal --format portable-text --out ./legal
45
+ ```
46
+
47
+ Then paste each document's blocks into the matching page in the admin. The
48
+ output is generated from your config, not legal advice — have it reviewed
49
+ before you publish.
50
+
40
51
  ## Deploy
41
52
 
42
53
  ```bash
@@ -132,7 +143,7 @@ and media in the storage backend (bucket/directory copy).
132
143
  ## The design system
133
144
 
134
145
  `design-system.json` is the single source of truth for colors, type, spacing,
135
- shadows, patterns, and animations. The `getvitops()` integration regenerates
146
+ shadows, patterns, and animations. The `vitops()` integration regenerates
136
147
  `src/styles/tailwind.css` from it on dev/build (the file is gitignored — edit
137
148
  the JSON, not the CSS). `Layout.astro` imports the stylesheet so the admin
138
149
  routes stay unstyled by it.
@@ -15,7 +15,7 @@ worker-configuration.d.ts
15
15
  # node hosting target: SQLite db + local uploads
16
16
  data/
17
17
 
18
- # generated by the getvitops() integration on dev/build
18
+ # generated by the vitops() integration on dev/build
19
19
  src/styles/
20
20
  public/vitops/
21
21
 
@@ -1,5 +1,5 @@
1
1
  import react from '@astrojs/react';
2
- import getvitops from '@getvitops/astro';
2
+ import vitops from '@getvitops/astro';
3
3
  import { vitopsEmdash, vitopsHosting } from '@getvitops/emdash';
4
4
  import { defineConfig } from 'astro/config';
5
5
  import emdash from 'emdash/astro';
@@ -32,7 +32,7 @@ export default defineConfig({
32
32
  // which emits the web-component runtime tags.
33
33
  plugins: [vitopsEmdash()],
34
34
  }),
35
- getvitops({
35
+ vitops({
36
36
  favicon: {
37
37
  source: 'src/assets/logo.svg',
38
38
  name: 'My EmDash Site',
@@ -18,7 +18,7 @@
18
18
  "warning": "sun",
19
19
  "danger": "rose"
20
20
  },
21
- "utilities": ["bg", "text", "border"]
21
+ "utilities": ["bg", "text", "icon", "border"]
22
22
  },
23
23
  "shadows": {
24
24
  "sm": "0 1px 2px rgb(0 0 0 / 0.08)",
@@ -49,7 +49,7 @@
49
49
  "patterns": {
50
50
  "defaults": {
51
51
  "ds": "none",
52
- "b": "1px solid var(--surface-bg-muted)",
52
+ "b": "1px solid var(--color-bg-surface-x-muted)",
53
53
  "br": "0.375rem",
54
54
  "p": "1rem",
55
55
  "fs": "1rem"
@@ -99,7 +99,7 @@
99
99
  "base": {
100
100
  "border-radius": "var(--br-card-group)",
101
101
  "padding": "1.5rem",
102
- "background": "var(--surface-bg)",
102
+ "background": "var(--color-bg-surface-muted)",
103
103
  "border": "var(--b-card-group)",
104
104
  "box-shadow": "var(--ds-card-group)"
105
105
  },
@@ -19,8 +19,8 @@
19
19
  "@astrojs/cloudflare": "^14.0.0",
20
20
  "@astrojs/react": "^6.0.0",
21
21
  "@emdash-cms/cloudflare": "^0.31.0",
22
- "@getvitops/astro": "^0.7.0",
23
- "@getvitops/emdash": "^0.2.1",
22
+ "@getvitops/astro": "latest",
23
+ "@getvitops/emdash": "latest",
24
24
  "astro": "^7.1.2",
25
25
  "emdash": "^0.31.0",
26
26
  "react": "^19.2.4",
@@ -29,10 +29,10 @@
29
29
  "devDependencies": {
30
30
  "@astrojs/check": "^0.9.7",
31
31
  "@cloudflare/workers-types": "^4.20260305.1",
32
- "@getvitops/cli": "^0.4.0",
32
+ "@getvitops/cli": "latest",
33
33
  "typescript": "^6.0.3",
34
- "vite": "catalog:",
35
- "vite-plus": "catalog:",
34
+ "vite": "latest",
35
+ "vite-plus": "latest",
36
36
  "wrangler": "^4.111.0"
37
37
  },
38
38
  "devEngines": {
@@ -1,6 +1,6 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
2
2
  <!-- Placeholder mark — replace with your brand. This file is also the
3
- favicon/PWA source (see astro.config.mjs → getvitops({ favicon })). -->
3
+ favicon/PWA source (see astro.config.mjs → vitops({ favicon })). -->
4
4
  <rect width="64" height="64" rx="14" fill="#2e9b73" />
5
5
  <path d="M18 24l14 20 14-20" fill="none" stroke="#fff" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" />
6
6
  </svg>
@@ -3,7 +3,7 @@ import VitopsHead from '@getvitops/astro/Head.astro';
3
3
  import { getMenu, getSiteSettings } from 'emdash';
4
4
  import { createPublicPageContext } from 'emdash/page';
5
5
  import { EmDashHead } from 'emdash/ui';
6
- // Design-system CSS, layout-scoped (getvitops css.inject: false): only pages
6
+ // Design-system CSS, layout-scoped (vitops css.inject: false): only pages
7
7
  // rendered through this layout get it — keeps it out of /_emdash/admin, while
8
8
  // EmDash previews (rendered through this layout) keep it.
9
9
  import '../styles/tailwind.css';
@@ -126,7 +126,7 @@ const year = new Date().getFullYear();
126
126
  footer {
127
127
  margin-block-start: var(--space-2xl);
128
128
  padding-block: var(--space-l);
129
- border-block-start: 1px solid var(--neutral-border);
129
+ border-block-start: 1px solid var(--color-border-neutral);
130
130
  }
131
131
  </style>
132
132
  </body>