@getvitops/generator 8.3.0-alpha.0 → 8.3.0-alpha.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/CHANGELOG.md CHANGED
@@ -1,5 +1,76 @@
1
1
  # @getvitops/generator
2
2
 
3
+ ## 8.3.0-alpha.2
4
+
5
+ ### Minor Changes
6
+
7
+ - 0a47856: Build correctness and gaps from the second upstream round.
8
+
9
+ - **`@getvitops/emdash`: fixes a circular import that emptied the plugin block map in the static build.** `Section.astro` and `WidgetArea.astro` imported `emdash/ui` statically, which imports `virtual:emdash/block-components`, which is `@getvitops/emdash/astro` again. Depending on import order, every `vitops_*` block inside a section body was dropped from prerendered pages with only a `PortableText [components.type] is missing …` warning. Both now import it lazily, and a test fails if any renderer imports `emdash/ui` statically. No code change needed in sites.
10
+ - **`@getvitops/cli`: `vitops emdash build`** runs `astro build` and then `check-prerender`, and fails when the build reports a block type with no component (reported once per type). The template's `build`, `deploy` and `deploy:dev` scripts use it; existing sites replace `astro build && vitops emdash check-prerender` with `vitops emdash build`. `check-prerender` also warns (fails with `--strict`) on a page without exactly one `<h1>`.
11
+ - **`@getvitops/emdash`: `vitops_hero` and `vitops_section` heading level** accepts `h1`–`h6` and `p` (a heading that is styled but not in the outline). The hero defaults to `h1`; set the level to `2` on a page whose layout already renders an `h1` (the template's seed does).
12
+ - **`@getvitops/emdash`: `vitops_logos`** shows an entry's name as text (`.logos__name`) when it has no image. `@getvitops/core` adds the rule (all formats).
13
+ - **`@getvitops/emdash`: an empty content widget** (no text, no blocks) no longer renders its title, and an area whose widgets are all empty renders nothing.
14
+ - **`@getvitops/create`:** the template's `pages` collection gets `urlPattern: "/{slug}"` (the sitemap listed `/pages/<slug>`, which 404s; existing sites change it under Content Types), and `.gitignore` ignores only `src/styles/tailwind.css` and `tokens.json`, so site CSS kept in `src/styles/` is committed.
15
+ - **`@getvitops/emdash`: per-item colour.** The rows of `vitops_cards`, `vitops_stats`, `vitops_steps` and the hero's `cards` take their own `tone` / `color` (blank inherits the block's), so one block can hold a pine item and an amber one. Hero cards also take an `eyebrow` and a button (`ctaLabel` / `ctaHref`; with a button the card is no longer a stretched link).
16
+ - **`@getvitops/generator` / `@getvitops/emdash`: solid fills read.** The generator emits `--color-<hue>-<step>-on` for every step of every hue, the foreground for a fill at that step picked by the same APCA rule as `text-on-<role>` (css and tailwind formats, a plain `:root`, not `@theme`). A block fill chosen by `color` (hue and step) uses it instead of a fixed white..
17
+ - **`@getvitops/core`: `.counter__value.sr-only`** hides itself, so a build that never emitted the `.sr-only` utility no longer shows a counting figure twice (all formats).
18
+ - **`@getvitops/astro` / `@getvitops/core`: `SiteFooter` groups.** A top-level item of the `footer-sitemap` menu with children becomes a column (its label is the heading, its children the links, one level only); childless items stay in the flat list. Each column is a named `<nav>`.
19
+ - **`@getvitops/astro`: planned links and header buttons.** A menu item with `draft` in its CSS classes stays in the menu but is not rendered (at every level, in the header and the footer). `<SiteNav>` has an `actions` slot for header buttons that are not menu items, and an item with `cta` in its CSS classes renders as a button.
20
+ - **`@getvitops/cli`: `check-prerender` warnings** (fail with `--strict`): links to pages the build did not produce, a form with no delivery address (no `site.notifications.email`, location `email` or `site.crm`), and form fields missing from every `site.templates` form entry (the generated privacy policy reads those). It reads `./site.json`, or `--site=<path>`. `vitops setup … --dry-run` is accepted as `--dry`.
21
+ - **`@getvitops/emdash` / `@getvitops/astro`: "tick any number" form field** (`vitops_form` field kind `checkboxes`): a fieldset of checkboxes sharing one name. The conversion route joins repeated values (`IT, Marketing`) instead of keeping the last. The "required" toggle is not applied to the group (HTML cannot require one of several).
22
+ - **`@getvitops/core`: size hooks.** `.steps__title`, `.stats__figure` and `.card__title` read `--steps-title-size` (default one step below `heading`), `--stats-figure-size` and `--card-title-size`, set on the block through its `style` field. They set the `--heading-fs` / `--display-fs` properties the type-role utilities already read, so no extra class or prop is needed (all formats).
23
+ - **`@getvitops/create`:** the template's `site.json` lists its contact form under `site.templates`, so the privacy policy inventory and the new check agree.
24
+ - **`@getvitops/emdash`: `theme` on every block, on widget areas and on your own markup.** A `theme` select (`<role>` tinted, `<role>:solid` filled, populated from the site's roles by a new `themes/list` route) is a common field on every `vitops_*` block, applied to the block's own root with the role's computed readable text. `<VitopsWidgetArea theme="…">` takes the same, and `themeAttrs('surface')` gives `{ class, style }` for a layout `<body>`. `vitops_section`'s existing `theme` now goes through the same path.
25
+ - **`@getvitops/cli` / `@getvitops/emdash`: pages with a dropped block fail the build.** `vitops_section` and widget areas emit an invisible `<template data-vitops-unrendered="…">` for any body block with no renderer, and `check-prerender` fails the page naming the types (nested bodies only; `vitops emdash build` also scans the build log, which covers top-level bodies). A regression test imports the plugin entry first with a mock of the real virtual module, so the old import cycle fails it.
26
+ - **`@getvitops/emdash`: `formTemplateFromBlock(block)`** turns a saved `vitops_form` value into a `site.templates` form entry (names as submitted, a `checkboxes` field as a `checkbox` with options), to paste into `site.json` so the generated privacy policy lists what the form collects. The build cannot read the CMS database, so this is run by hand; `check-prerender` warns when fields are missing.
27
+ - **`@getvitops/utils`: `hasFormDelivery`** (`@getvitops/utils/notify`): the one test for "has this form anywhere to go", used by `check-prerender`.
28
+ - **`@getvitops/emdash`:** a `color` hue tint now flips with the colour scheme (`light-dark()`); hero option cards sit at `h2` under an `h1` hero; menu items also accept `hidden: true` (same as the `draft` class); `vitops docs blocks` documents `theme`, the per-row colours, the `--<role>-fs` type-size hook and the form checks.
29
+ - **`@getvitops/create`:** the template redirects `/home` to `/`, and the guides use `vp exec` instead of `vpx`.
30
+
31
+ ### Patch Changes
32
+
33
+ - 0a47856: **Breaking: every block type is now `vitops_<name>`** (`vitops_cards`, `vitops_hero`, `vitops_actionLink`, …), where the Portable Text blocks were `vitops.<name>` and the section block type was already `vitops_section`. EmDash validates a block type's slug as `[a-z][a-z0-9_]*`, so `vitops.section` was never possible and the toolkit had two styles for one kind of thing. Underscore is the one form valid everywhere, so it is now the only one.
34
+
35
+ Migration: in stored content and in `seed/seed.json`, rename `_type` values from `vitops.<name>` to `vitops_<name>`; in `PortableText` `components`, rename the keys the same way; the `blocks: { include, exclude }` option takes full type names, so rename those too. `vt_*` names in a site are that site's own types and are unaffected. A search-and-replace of `vitops.(actionLink|imageCompare|copyButton|banner|details|carousel|gallery|cards|accordion|hero|marquee|logos|steps|stats|callout|entries|pricing|embed|form|reviews|nav|badges|widgetArea)` with `vitops_$1` covers it. `vitops emdash build` reports any block left on the old name as having no component.
36
+
37
+ - Updated dependencies [0a47856]
38
+ - @getvitops/utils@8.3.0-alpha.2
39
+ - @getvitops/config@8.3.0-alpha.2
40
+
41
+ ## 8.3.0-alpha.1
42
+
43
+ ### Minor Changes
44
+
45
+ - 24c568b: Escape hatches on every block, a section theme, widget areas, a badges block, Tailwind scanning of package renderers, and a sturdier `vitops audit`.
46
+
47
+ **@getvitops/emdash**
48
+
49
+ - Every `vitops.*` block and `vitops_section` gains three fields: `anchor` (rendered as the `id`, so `#contact` works), `className` (`class_name` on the section type: block-type slugs are lowercase) and `style`. `style` takes CSS custom properties only (`--p-card: 2rem`); any other declaration, and any value containing `url(`, `@`, `{`, `}` or a backslash, is dropped. With the `tailwind` format a class typed in the CMS only works if the site already uses it. They are applied to the block's own outermost element (the grid `<ul>` for `vitops.cards`), never an extra wrapper, so a block's markup is the same whether or not an editor fills them in.
50
+ - `vitops_section` gains a `theme` select: a role, or `<role>:solid`, with readable text chosen by the generator's contrast rules. It overrides `tone`/`color`/`solid`, which stay for existing content. Other site roles still go through `tone`.
51
+ - New `vitops.badges` block (a row of `.badge` or `.tag` labels, each with an optional tone, icon and link) and `vitops.widgetArea` block, plus `<VitopsWidgetArea name level />` from `@getvitops/emdash/astro`. A widget area is content defined once under Widgets and shown wherever it is placed. An area cannot hold another area, and an area containing a `core:*` component widget is rendered by EmDash's own renderer.
52
+ - Existing sites: re-run the block-type seed only on a new database; on an existing one add the `theme`, `anchor`, `className` and `style` fields to the `vitops_section` block type in the admin.
53
+
54
+ **@getvitops/create**: the emdash template seeds `announcement` and `pre-footer` widget areas, renders them in `Layout.astro`, and documents when to use a Section, a block or a widget area. Sites scaffolded earlier add the two `<VitopsWidgetArea>` lines and the `widgetAreas` seed entries by hand.
55
+
56
+ **@getvitops/generator / astro / vite** (`tailwind` format only): the Astro integration now adds `@source` lines for `@getvitops/astro` and `@getvitops/emdash`, because Tailwind v4 does not scan `node_modules`; utilities used only by their renderers (`font-display`, `font-caption`, `font-footnote`) were never emitted and the page silently rendered at body size. New `sources` option on `generate()` and the Vite plugin. A site's `src/package-classes.txt` workaround can be deleted. css and bricks: no change.
57
+
58
+ **@getvitops/cli**: `vitops emdash check-prerender` now also warns when a page uses a type-role class (`font-display`, …) the built CSS has no rule for; `--strict` makes it fail. `vitops audit` checks for its optional packages and a Chromium binary before starting the preview server (so a failed run no longer leaves port 4398 busy), stops the server on Ctrl+C and termination, and takes its page list from the built sitemap, then the menus; the guessed defaults (`/privacy`, `/contact`, …) are used only when neither exists.
59
+
60
+ **@getvitops/utils**: the audit helpers behind the above (`preflight`, `fetchSitemapPaths`, `sitemapLocs`, `pathsFromSitemapLocs`).
61
+
62
+ **@getvitops/core** (all formats): new `.block-anchor` rule gives an anchored block `scroll-margin-top: var(--header-offset, 5rem)`; set `--header-offset` to a sticky header's height. New `widget-area.css` partial. No other consumer-facing change.
63
+
64
+ The other fixed-group packages: no consumer-facing change beyond the above.
65
+
66
+ **Also fixed in the emdash template** (`site.json`): it defined only the `display`, `heading` and `body` type roles while the blocks use `title`, `eyebrow`, `lead`, `caption` and `footnote`, so those rendered at body size with no rule behind them. The roles are added with the reference design system's specs. A site scaffolded earlier adds the same five entries under `designSystem.themes.default.typography.roles`; `vitops emdash check-prerender` now names any that are missing.
67
+
68
+ ### Patch Changes
69
+
70
+ - Updated dependencies [24c568b]
71
+ - @getvitops/utils@8.3.0-alpha.1
72
+ - @getvitops/config@8.3.0-alpha.1
73
+
3
74
  ## 8.3.0-alpha.0
4
75
 
5
76
  ### Minor Changes
@@ -74,6 +74,7 @@
74
74
  @import './patterns/marquee.css';
75
75
  @import './patterns/tone.css';
76
76
  @import './patterns/section.css';
77
+ @import './patterns/widget-area.css';
77
78
  @import './patterns/steps.css';
78
79
  @import './patterns/stats.css';
79
80
  @import './patterns/callout.css';
@@ -33,3 +33,9 @@ wc-cards {
33
33
  [data-card-link] {
34
34
  cursor: pointer;
35
35
  }
36
+
37
+ /* A card's title keeps the heading role's size unless `--card-title-size` is set on the block
38
+ (its `style` field). The role utility reads --heading-fs; `inherit` passes through the site's. */
39
+ .card__title {
40
+ --heading-fs: var(--card-title-size, inherit);
41
+ }
@@ -17,6 +17,11 @@
17
17
  * `display: none`/`visibility: hidden` stops contributing to the accessible
18
18
  * name, and that name must read the final value for the whole animation, not
19
19
  * just at rest.
20
+ *
21
+ * The visually-hidden rule is restated here for `.counter__value.sr-only` rather than left to the
22
+ * utility: a site whose build does not emit `.sr-only` (the tailwind format only generates
23
+ * utilities it sees used, and does not scan packages) would otherwise show the figure twice
24
+ * while it counts, once as text and once as the animation.
20
25
  */
21
26
  @property --_n {
22
27
  syntax: '<number>';
@@ -28,6 +33,18 @@
28
33
  display: none;
29
34
  }
30
35
 
36
+ .counter__value.sr-only {
37
+ position: absolute;
38
+ inline-size: 1px;
39
+ block-size: 1px;
40
+ margin: -1px;
41
+ padding: 0;
42
+ overflow: hidden;
43
+ clip-path: inset(50%);
44
+ white-space: nowrap;
45
+ border: 0;
46
+ }
47
+
31
48
  wc-counter[running] .counter__presentation {
32
49
  display: inline;
33
50
  animation: counter-run var(--counter-duration, 1.2s) var(--counter-easing, var(--custom-ease-out))
@@ -6,6 +6,9 @@
6
6
  * Each item is a plain image, or a link around one. Marks are normalised to a common
7
7
  * height rather than a common width, because logos vary far more in aspect ratio than
8
8
  * in how tall they should read. `--grayscale` quiets them until hover or focus.
9
+ *
10
+ * An entry with no image is its name set as text (`.logos__name`): a partner without a wordmark
11
+ * still belongs in the row. The name is sized from the same `--logos-height` so it reads as a mark.
9
12
  */
10
13
  .logos {
11
14
  display: flex;
@@ -30,6 +33,23 @@
30
33
  object-fit: contain;
31
34
  }
32
35
 
36
+ .logos__name {
37
+ font-size: calc(var(--logos-height, 2.5rem) * 0.55);
38
+ line-height: 1.1;
39
+ font-weight: 600;
40
+ text-align: center;
41
+ text-wrap: balance;
42
+ }
43
+
44
+ &.logos--grayscale .logos__item .logos__name {
45
+ opacity: 0.7;
46
+ transition: opacity 0.2s;
47
+ }
48
+
49
+ &.logos--grayscale .logos__item:is(:hover, :focus-within) .logos__name {
50
+ opacity: 1;
51
+ }
52
+
33
53
  &.logos--grayscale .logos__item img {
34
54
  filter: grayscale(1);
35
55
  opacity: 0.7;
@@ -51,3 +51,11 @@
51
51
  align-items: start;
52
52
  }
53
53
  }
54
+
55
+ /*
56
+ * A block given an anchor id (`@getvitops/emdash`'s `anchor` field). The offset keeps the target
57
+ * clear of a sticky header; set `--header-offset` to the header's height. All formats.
58
+ */
59
+ .block-anchor {
60
+ scroll-margin-top: var(--header-offset, 5rem);
61
+ }
@@ -536,7 +536,7 @@
536
536
  }
537
537
  }
538
538
 
539
- /* ── In-page menu (`vitops.nav` block) ─────────────────────────────────────────
539
+ /* ── In-page menu (`vitops_nav` block) ─────────────────────────────────────────
540
540
  *
541
541
  * A menu read in the body of a page — a site map, a section's links, footer-style columns —
542
542
  * as plain nested lists. No disclosure and no drawer: that is the header's job (`.sitenav`).
@@ -613,6 +613,14 @@
613
613
  }
614
614
  }
615
615
 
616
+ /* Header buttons that are not menu items (`<SiteNav><a slot="actions" class="cta">…`). */
617
+ .sitenav__actions {
618
+ display: flex;
619
+ flex-wrap: wrap;
620
+ align-items: center;
621
+ gap: 0.5rem;
622
+ }
623
+
616
624
  /* ── Footer (`<SiteFooter>`) ───────────────────────────────────────────────── */
617
625
  .sitefooter {
618
626
  margin-block-start: var(--space-2xl, 3rem);
@@ -639,6 +647,16 @@
639
647
  gap: 0.25rem 1.25rem;
640
648
  }
641
649
 
650
+ .sitefooter__heading {
651
+ margin: 0 0 0.5rem;
652
+ }
653
+
654
+ /* A column from a menu item with children: a heading over a stacked list. */
655
+ .sitefooter__list--column {
656
+ flex-direction: column;
657
+ gap: 0.125rem;
658
+ }
659
+
642
660
  .sitefooter__link {
643
661
  color: inherit;
644
662
  text-decoration: underline;
@@ -34,6 +34,9 @@
34
34
  }
35
35
 
36
36
  .stats__figure {
37
+ /* Display size by default; --stats-figure-size on the block overrides it (the role utility
38
+ reads --display-fs). `inherit` passes through whatever the site set for the role. */
39
+ --display-fs: var(--stats-figure-size, inherit);
37
40
  color: var(--tone-fg, inherit);
38
41
  font-variant-numeric: tabular-nums;
39
42
  }
@@ -69,6 +69,13 @@
69
69
  .steps__text {
70
70
  margin: 0;
71
71
  }
72
+
73
+ /* A step title is a sub-heading, not a section heading: one notch down from the role's size.
74
+ Set --steps-title-size on the block (its `style` field) to change it. The role utility reads
75
+ --heading-fs, so this sets the property it already consumes rather than fighting its layer. */
76
+ .steps__title {
77
+ --heading-fs: var(--steps-title-size, var(--text-l, 1.2rem));
78
+ }
72
79
  }
73
80
 
74
81
  /* Side by side once there is room: the marker sits above its text and the line runs across. */
@@ -0,0 +1,22 @@
1
+ /*
2
+ * Widget area — editor-managed regions (a footer column, a pre-footer call to action, a
3
+ * sidebar) rendered by `@getvitops/emdash`'s `<VitopsWidgetArea>`. Structure only: a widget is
4
+ * a titled group, a menu widget a plain link list. Colour and type come from the roles and the
5
+ * `.link` / `.font-heading` classes the markup already carries.
6
+ */
7
+ .widget-area {
8
+ display: grid;
9
+ gap: var(--widget-area-gap, 1.5rem);
10
+ }
11
+
12
+ .widget__menu ul {
13
+ display: grid;
14
+ gap: var(--widget-menu-gap, 0.5rem);
15
+ margin: 0;
16
+ padding: 0;
17
+ list-style: none;
18
+ }
19
+
20
+ .widget__title {
21
+ margin-block-end: var(--widget-title-gap, 0.75rem);
22
+ }
package/dist/index.d.mts CHANGED
@@ -63,6 +63,14 @@ interface GenerateOptions {
63
63
  * would be out of proportion. Set explicitly, it wins over the site config.
64
64
  */
65
65
  systemColorScheme?: boolean;
66
+ /**
67
+ * `tailwind` format only: directories (or globs) Tailwind should scan for class names, written
68
+ * as `@source` lines after `@import "tailwindcss"`. Paths are relative to the emitted
69
+ * `tailwind.css`. Tailwind v4 does not scan `node_modules`, so a utility used only by a package's
70
+ * own renderer (`font-display` in `vitops_stats`) is otherwise never generated — silently.
71
+ * Ignored by the css and bricks formats, which ship every framework class.
72
+ */
73
+ sources?: string[];
66
74
  }
67
75
  interface GenerateResult {
68
76
  format: Format;
@@ -265,9 +273,9 @@ interface TierEntry {
265
273
  bricks?: string;
266
274
  /**
267
275
  * `@getvitops/emdash` Portable Text block `_type`s that render this pattern, e.g.
268
- * `vitops.carousel`. An array because one pattern can have several blocks
276
+ * `vitops_carousel`. An array because one pattern can have several blocks
269
277
  * (`details` has a single disclosure and an accordion group) and one block can span
270
- * patterns (`vitops.actionLink` is `link`, `btn` and `cta`).
278
+ * patterns (`vitops_actionLink` is `link`, `btn` and `cta`).
271
279
  *
272
280
  * Tier 3, a sibling of `astro` and `bricks`: a block is a platform wrapper that an
273
281
  * editor drops into a page, and each one is an adapter over this entry's Astro
@@ -678,7 +686,7 @@ export declare function toHtmlFragment(blocks: Block[]): string;
678
686
  * Two deliberate mappings:
679
687
  * - the `# ` heading is **dropped** — in EmDash the page title is a field
680
688
  * (`data.title`), and repeating it as the first content block renders twice;
681
- * - the review blockquote becomes a `vitops.banner` with `tone: "warning"`,
689
+ * - the review blockquote becomes a `vitops_banner` with `tone: "warning"`,
682
690
  * which is exactly the block the hand-written placeholder pages used.
683
691
  *
684
692
  * `_key`s are derived from position rather than randomness, so regenerating an
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/generate.ts","../src/docs.ts","../src/tiers.ts","../src/token-refs.ts","../src/legal/providers.ts","../src/legal/derive.ts","../src/legal/templates/cookies.ca.ts","../src/legal/templates/cookies.qc.ts","../src/legal/templates/privacy.ca.ts","../src/legal/templates/privacy.qc.ts","../src/legal/templates/terms.ca.ts","../src/legal/templates/terms.qc.ts","../src/legal/templates/index.ts","../src/legal/render.ts","../src/legal/index.ts","../src/robots.ts","../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/generate.ts","../src/docs.ts","../src/tiers.ts","../src/token-refs.ts","../src/legal/providers.ts","../src/legal/derive.ts","../src/legal/templates/cookies.ca.ts","../src/legal/templates/cookies.qc.ts","../src/legal/templates/privacy.ca.ts","../src/legal/templates/privacy.qc.ts","../src/legal/templates/terms.ca.ts","../src/legal/templates/terms.qc.ts","../src/legal/templates/index.ts","../src/legal/render.ts","../src/legal/index.ts","../src/robots.ts","../src/index.ts"],"mappings":"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"}