@getvitops/cli 0.6.0 → 0.7.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +169 -0
  2. package/README.md +6 -0
  3. package/package.json +5 -4
package/CHANGELOG.md ADDED
@@ -0,0 +1,169 @@
1
+ # @getvitops/cli
2
+
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 44de07f: Split the button pattern into two tiers named by intent: `.cta` (persuasion) and `.btn`
8
+ (affordance).
9
+
10
+ **Breaking: a bare `<button>` is no longer a filled brand-primary button.** It now renders as a
11
+ quiet interactive control — geometry, cursor, subtle hover, focus ring — with no fill, no
12
+ `font-weight: 600`, and no shadow.
13
+
14
+ **Migration:** add `class="cta"` to any button that should stay prominent. Submit buttons, hero
15
+ actions, and anything driving a conversion are the usual candidates; dialog closes, toolbar
16
+ buttons, icon buttons and toggles should keep the new default. If you want the old behaviour
17
+ globally, set `patterns.items.btn` in your `design-system.json` back to the previous filled base.
18
+
19
+ New in this release:
20
+ - **`.cta`** — filled, bolder, roomier, lifts on hover. It is a class, not an element rule, so it
21
+ finally works on `<a>` — which is what a call to action usually is, since it navigates. Role
22
+ variants: `.cta-{success,danger,warning,info}`.
23
+ - **`.btn`** — the affordance tier. Emitted as one zero-specificity `:where(button, .btn)` rule, so
24
+ a bare `<button>` gets it with no class, `.btn` carries it to any other tag, and any explicit
25
+ class (including `.cta`, or a component's own class) overrides it without `!important`.
26
+ - **`:where(a, .link)`** — the link pattern now pairs its element with a class the same way.
27
+ - A pattern may now set **both `element` and `class`**, emitting one combined
28
+ `:where(<element>, .<class>)` rule. This is the general mechanism behind the above.
29
+ - A pattern may declare **`fill: true|false`** to state whether states and role variants drive
30
+ `background-color` (plus `on-solid` text) or `color`, instead of relying on the previous
31
+ inference from the pattern's name and base declarations. Existing configs are unaffected — the
32
+ old inference is still the fallback.
33
+
34
+ **Breaking: `chip` is retired as vocabulary.** The two small-label patterns are now split by
35
+ behaviour, not size: **`badge`** is a _static_ label (status, count, category) and **`tag`** is an
36
+ _editable and/or dismissable_ one (e.g. entries in a filter list).
37
+ - `.chip-list` → **`.tag-list`**, and its `--*-chip-list` / `--chip-list-focus-color` tokens →
38
+ `--*-tag-list` / `--tag-list-focus-color`.
39
+ - `.chip-list__chip` and `.chip-list__chip-remove` are **removed**. A tag list is a list of tags, so
40
+ its items are now the existing `.tag` / `.tag__remove` — which also means they pick up tag role
41
+ variants. **Migration:** replace `<span class="chip-list__chip">x <button
42
+ class="chip-list__chip-remove">` with `<span class="tag">x <button class="tag__remove">`. Note the
43
+ items change appearance: `.tag` is outlined (border + neutral text) where the old chip was filled
44
+ with `--color-surface-muted`.
45
+ - The `radii.chip` primitive is **removed** from the example config; it was only ever an alias of
46
+ `--br-tag`. Consumers who set `--br-chip` should use `--br-tag`.
47
+
48
+ **Pattern geometry now resolves through the group alias layer.** Every grouped pattern already
49
+ emitted `--<prop>-<name>-group` aliases (e.g. `--br-btn-group: var(--br-control)`), but most
50
+ patterns bypassed them and hard-coded `var(--br-control, …)` into the rule. `btn`, `cta`, `badge`,
51
+ `tag`, `card` and `status` now reference the alias and restate only their deviations via
52
+ `overrides`, so the whole chain — `--p-btn` → `--p-btn-group` → `--p-control` → `--p-default` — is
53
+ live CSS custom properties, inspectable and editable in the browser. Computed values are unchanged.
54
+
55
+ Also fixed:
56
+ - Role variants on element patterns were emitted at specificity 0-1-1 (`button.danger`), which
57
+ outranked any plain class. They now emit as `:where(button, .btn).danger, .btn-danger` — both at
58
+ class specificity, and reachable from a non-`<button>` host.
59
+ - The `link` pattern declared `default_role: "brand-primary"` while hard-coding a `ui-primary` base
60
+ colour, so hovering shifted hue instead of intensifying. Its `default_role` is now `ui-primary`.
61
+ - `@getvitops/astro`'s `FormRenderer` defaulted its submit button to `class="btn btn-primary"`, a
62
+ class that never existed and a role that is not emitted; it now defaults to `.cta`.
63
+ - The Tailwind bundle is no longer assembled during `css` / `bricks` builds, where it was computed
64
+ and discarded (it also read every framework partial off disk).
65
+
66
+ - 44de07f: Shared toolchain version + changelogs that reach consumers.
67
+ - **`@getvitops/astro` now shares the toolchain version** (`core`/`generator`/`utils`/`cli`/`vite`),
68
+ so it moves from its own `0.4.x` line onto the group's. The number changes; the package does not —
69
+ install it at the same version as `@getvitops/cli`. It was already being bumped on every toolchain
70
+ release by its dependency updates, and it depends on core, generator, utils _and_ vite, so a
71
+ separate version line cost the same churn while leaving the compatible pairing implicit. The
72
+ lockstep is load-bearing: the generator ships a snapshot of core's CSS + web-component bundles
73
+ while the Astro integration copies the _installed_ core's bundles, so mismatched versions can leave
74
+ the CSS and the components disagreeing.
75
+
76
+ - **Every package now ships its `CHANGELOG.md` in the published tarball.** npm does not include
77
+ changelogs by default, so none of this history previously reached anyone who installed the
78
+ packages. Per-package history now reads from `node_modules/@getvitops/<pkg>/CHANGELOG.md`;
79
+ curated toolchain-level release notes live in the repo's root `CHANGELOG.md`.
80
+
81
+ ### Patch Changes
82
+
83
+ - @getvitops/generator@0.7.0
84
+ - @getvitops/utils@0.7.0
85
+
86
+ ## 0.6.0
87
+
88
+ ### Minor Changes
89
+
90
+ - 2cc847d: Package-resident agent skill + `vitops docs`:
91
+ - `@getvitops/cli` now ships the `vitops-design-system` agent skill inside the package
92
+ (`skill/SKILL.md`). `vitops agents` no longer emits a generated skill into the repo — it
93
+ symlinks `.agents/skills/` and `.claude/skills/` entries to the installed package (logical
94
+ `node_modules/@getvitops/cli/skill` target, surviving version bumps) and writes the
95
+ AGENTS.md pointer block. Old generated-skill directories are migrated automatically;
96
+ `--docs-dir` keeps the emit-files layout.
97
+ - New `vitops docs [topic]` command prints reference docs to stdout, rendered live from the
98
+ project's `design-system.json` (topics: classes, authoring, formats, color, scales,
99
+ patterns, elements; `--all` concatenates).
100
+ - `renderSkill()` removed from `@getvitops/generator` (superseded by the packaged skill).
101
+
102
+ ### Patch Changes
103
+
104
+ - Updated dependencies [2cc847d]
105
+ - @getvitops/generator@0.6.0
106
+ - @getvitops/utils@0.6.0
107
+
108
+ ## 0.5.0
109
+
110
+ ### Minor Changes
111
+
112
+ - Ship design-system context to downstream agents:
113
+ - JSON Schema descriptions: every `design-system.json` and site-config field now carries a
114
+ `description` (authored in the zod schemas via `desc()`), emitted into `schema.json` /
115
+ `site.schema.json` for editor hovers and agent consumption.
116
+ - New generated OKF docs: `authoring.md` (field reference walked from the JSON Schema),
117
+ `formats.md` (tailwind vs css vs bricks, including the TW_CLASH utilities Tailwind
118
+ provides natively), and `concepts/{color,scales,patterns}.md` (seeded OKLCH colour
119
+ system, fluid modular scales, pattern token cascade + override hooks).
120
+ - `vitops agents` now emits a generated `vitops-design-system` agent skill into
121
+ `.agents/skills/vitops-design-system/` (SKILL.md + the docs bundle as `references/`,
122
+ with an idempotent `.claude/skills/` symlink) and writes a compact pointer block into
123
+ `AGENTS.md`. Pass `--docs-dir` for the legacy docs-only layout.
124
+ - `TW_CLASH` and `BASE_HOOK` are exported from `@getvitops/generator`.
125
+
126
+ ### Patch Changes
127
+
128
+ - Updated dependencies
129
+ - @getvitops/generator@0.5.0
130
+ - @getvitops/utils@0.5.0
131
+
132
+ ## 0.4.0
133
+
134
+ ### Patch Changes
135
+
136
+ - Updated dependencies [d7e6491]
137
+ - @getvitops/utils@0.4.0
138
+ - @getvitops/generator@0.4.0
139
+
140
+ ## 0.3.0
141
+
142
+ ### Patch Changes
143
+
144
+ - Updated dependencies
145
+ - @getvitops/utils@0.3.0
146
+ - @getvitops/generator@0.3.0
147
+
148
+ ## 0.2.1
149
+
150
+ ### Patch Changes
151
+
152
+ - Updated dependencies [d28aae7]
153
+ - @getvitops/generator@0.2.1
154
+ - @getvitops/utils@0.2.1
155
+
156
+ ## 0.2.0
157
+
158
+ ### Minor Changes
159
+
160
+ - d35515e: Add `vitops agents` — writes a managed, marker-delimited block into a consumer's `AGENTS.md`
161
+ (or `--out CLAUDE.md`) so AI coding agents can discover the CLI and the design-system class/element
162
+ vocabulary. Idempotent (re-run to update between the `<!-- vitops:start -->`/`<!-- vitops:end -->`
163
+ markers) and also emits the OKF docs bundle it points at (`--docs-dir`, default `.vitops/docs`).
164
+
165
+ ### Patch Changes
166
+
167
+ - Updated dependencies
168
+ - @getvitops/generator@0.2.0
169
+ - @getvitops/utils@0.2.0
package/README.md CHANGED
@@ -113,3 +113,9 @@ layout still works: `vitops agents --docs-dir .vitops/docs` writes the full docs
113
113
  and points the AGENTS.md block at them (no skill link).
114
114
 
115
115
  Powered by [`@getvitops/generator`](https://www.npmjs.com/package/@getvitops/generator).
116
+
117
+ ## Changelog
118
+
119
+ This package's history: [`CHANGELOG.md`](./CHANGELOG.md) (shipped in the npm tarball, so it
120
+ also reads from `node_modules/@getvitops/cli/CHANGELOG.md`). `@getvitops/core`, `generator`,
121
+ `utils`, `cli`, `vite` and `astro` share one version and are released together.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getvitops/cli",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "CLI for the Vitops design-system generator: generate, init, and validate a design-system.json.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -8,7 +8,8 @@
8
8
  },
9
9
  "files": [
10
10
  "dist",
11
- "skill"
11
+ "skill",
12
+ "CHANGELOG.md"
12
13
  ],
13
14
  "type": "module",
14
15
  "exports": {
@@ -21,8 +22,8 @@
21
22
  "access": "public"
22
23
  },
23
24
  "dependencies": {
24
- "@getvitops/generator": "0.6.0",
25
- "@getvitops/utils": "0.6.0"
25
+ "@getvitops/generator": "0.7.0",
26
+ "@getvitops/utils": "0.7.0"
26
27
  },
27
28
  "devDependencies": {
28
29
  "vitest": "^4.1.9"