@omniharmonic/openspace-cli 0.1.9 → 0.1.11

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.
@@ -1,9 +1,9 @@
1
1
  import { createRequire as __osCreateRequire } from "node:module"; const require = __osCreateRequire(import.meta.url);
2
2
  import {
3
3
  crawlGeneric
4
- } from "./chunk-TOGLFCCF.js";
4
+ } from "./chunk-OS5MWJZG.js";
5
5
  import "./chunk-26AZCID5.js";
6
6
  export {
7
7
  crawlGeneric
8
8
  };
9
- //# sourceMappingURL=crawl-WHPHNZRG.js.map
9
+ //# sourceMappingURL=crawl-OAR25BYI.js.map
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { Command } from 'commander';
2
2
  import { ChildProcess } from 'node:child_process';
3
3
 
4
4
  type Severity = "error" | "warning";
5
- type CheckRule = "schema" | "block" | "link" | "redirect" | "image" | "media" | "size" | "secret" | "gating";
5
+ type CheckRule = "schema" | "block" | "link" | "redirect" | "image" | "media" | "size" | "secret" | "gating" | "component" | "kit";
6
6
  interface Finding {
7
7
  severity: Severity;
8
8
  rule: CheckRule;
package/dist/index.js CHANGED
@@ -6,9 +6,9 @@ import {
6
6
  formatReport,
7
7
  run,
8
8
  runCheck
9
- } from "./chunk-ZOCHSBTR.js";
10
- import "./chunk-TOGLFCCF.js";
11
- import "./chunk-KAJOS2YV.js";
9
+ } from "./chunk-WK2BKRNV.js";
10
+ import "./chunk-OS5MWJZG.js";
11
+ import "./chunk-FPW2XAQ5.js";
12
12
  import "./chunk-26AZCID5.js";
13
13
 
14
14
  // src/index.ts
@@ -36,6 +36,7 @@ content/pages/home.json the home page (slug ""); other pages mirror their U
36
36
  content/pages/about.json → /about/ content/pages/services/pricing.json → /services/pricing/
37
37
  content/collections/<name>/_collection.json collection kind, list + item page layout, feeds
38
38
  content/collections/<name>/<slug>.mdoc one item: YAML frontmatter + Markdoc body
39
+ content/components/<name>.json a custom component (designer section)
39
40
  media/ images ≤ 2400px on the long edge, audio, files
40
41
  ```
41
42
 
@@ -43,6 +44,17 @@ A page is `{ id, title, slug, seo?, sections: [...] }`; a section has a `layout`
43
44
  column spans that add up to 12, or `grid`) and `blocks`; a block is
44
45
  `{ id, type, v, fields, variant?, style? }`.
45
46
 
47
+ ## Custom components
48
+
49
+ Designer sections for moments the blocks can't express. `content/components/<name>.json` holds
50
+ typed `fields`, sample `defaults`, a logic-light `template` (`{{field}}`, `{{rich f}}`,
51
+ `{{image f}}`, `{{button f label=g}}`, `{{#if}}`, `{{#each}}`; no scripts, no raw HTML), scoped
52
+ `css` on theme tokens (`var(--os-color-…)`, `var(--os-space-…)`) and optional `js` (the body of
53
+ `function (root, ctx)`, progressive enhancement only, no network). Pages use one as a block
54
+ `{ "type": "component/<name>", "v": <version>, "fields": {…} }`. Every word, image and link is a
55
+ field, so owners keep editing in Studio. Prefer blocks and presets; `openspace check` enforces
56
+ the component gates (accessibility, reduced motion, budgets).
57
+
46
58
  ## Collection items (Markdoc)
47
59
 
48
60
  Frontmatter follows the collection kind (blog, events, portfolio, podcast, products): `title`,
@@ -123,7 +135,7 @@ Shows a small set of numbers as a bar, column, line or pie chart. Use: Up to ~12
123
135
  Parallel content in columns: a feature trio, numbered steps, or short offers. Use: When 2–4 items share the same shape. `steps` numbers them for a process; `cards` puts each on a surface. Avoid: Uneven text lengths across columns; more than four columns; long paragraphs.
124
136
 
125
137
  - Variants: `plain`, `cards`, `steps`
126
- - Fields: `items: list of { image?: image { src, alt }, heading: text ≤ 80, body: richText, link?: link, linkLabel?: text ≤ 30 }`, `columns: "2" | "3" | "4"`, `aspect: "original" | "1:1" | "4:5" | "2:3" | "3:2" | "16:9" | "21:9"`
138
+ - Fields: `items: list of { image?: image { src, alt }, heading: text ≤ 80, body: richText, link?: link, linkLabel?: text ≤ 30 }`, `columns: "2" | "3" | "4" | "5" | "6"`, `aspect: "original" | "1:1" | "4:5" | "2:3" | "3:2" | "16:9" | "21:9"`
127
139
 
128
140
  ### `contact-info` — Contact details
129
141
 
@@ -183,9 +195,9 @@ Several related photographs shown together. Use: Portfolios, spaces, events and
183
195
 
184
196
  ### `heading` — Heading
185
197
 
186
- A section heading with optional eyebrow and supporting line. Use: To open a section or introduce a group of blocks. `rule` adds a short accent line above, `underline` a line below, `split` puts the subheading beside the heading on wide screens. Avoid: Using headings for emphasis inside body copy (use text); skipping levels (h2 → h4); more than one Heading 1 per page.
198
+ A section heading with optional eyebrow and supporting line. Use: To open a section or introduce a group of blocks. `rule` adds a short accent line above, `eyebrow-rule` a short accent line between the eyebrow and the heading, `underline` a line below, `split` puts the subheading beside the heading on wide screens. Avoid: Using headings for emphasis inside body copy (use text); skipping levels (h2 → h4); more than one Heading 1 per page.
187
199
 
188
- - Variants: `plain`, `rule`, `underline`, `split`
200
+ - Variants: `plain`, `rule`, `underline`, `split`, `eyebrow-rule`
189
201
  - Fields: `eyebrow?: text ≤ 60`, `text: text ≤ 160`, `level: "h1" | "h2" | "h3" | "h4"`, `size: "auto" | "display" | "h1" | "h2" | "h3" | "h4"`, `subheading?: text ≤ 280`
190
202
 
191
203
  ### `hours` — Opening hours
@@ -270,7 +282,7 @@ Compares plans, packages or tiers with prices and what each includes. Use: Prici
270
282
  Sells one product from the shop: image, price, options and an Add to cart button. Use: Featuring a single product on a landing page or inside a story. The price shown comes from the catalog; checkout always re-reads prices on the server. Avoid: Products that don't exist in the shop collection; writing prices by hand in text blocks.
271
283
 
272
284
  - Variants: `card`, `split`, `minimal`
273
- - Fields: `product: reference`, `showDescription: boolean`, `quantity: boolean`, `buttonLabel: text ≤ 30`, `detailsLabel: text ≤ 30`
285
+ - Fields: `product: reference`, `showDescription: boolean`, `showTitle?: boolean`, `quantity: boolean`, `buttonLabel: text ≤ 30`, `detailsLabel: text ≤ 30`
274
286
 
275
287
  ### `quote` — Quote
276
288
 
@@ -347,7 +359,7 @@ Key figures that make a claim concrete (members, years, ratings, outcomes). Use:
347
359
  Lists items from a collection (blog posts, events, projects, episodes, products) as cards. Use: On the home page and landing pages to surface fresh content: the latest 3 posts, featured projects, upcoming events. `wall` is a masonry of images for portfolios; `carousel` saves space. Avoid: Using it as the main collection page (the collection's own list page does that); mixing unrelated filters; more than ~12 items.
348
360
 
349
361
  - Variants: `grid`, `list`, `carousel`, `wall`
350
- - Fields: `heading?: text ≤ 80`, `headingLevel: "h2" | "h3" | "h4"`, `source: reference`, `columns: "2" | "3" | "4"`, `showImage: boolean`, `showDate: boolean`, `showExcerpt: boolean`, `showMeta: boolean`, `linkLabel?: text ≤ 30`, `link?: link`, `emptyMessage: text ≤ 160`
362
+ - Fields: `heading?: text ≤ 80`, `headingLevel: "h2" | "h3" | "h4"`, `source: reference`, `columns: "2" | "3" | "4"`, `showImage: boolean`, `imageAspect?: "1:1" | "4:5" | "2:3" | "3:2" | "16:9" | "21:9"`, `showDate: boolean`, `showExcerpt: boolean`, `showMeta: boolean`, `linkLabel?: text ≤ 30`, `link?: link`, `emptyMessage: text ≤ 160`
351
363
 
352
364
  ### `table` — Comparison table
353
365
 
@@ -608,6 +608,7 @@
608
608
  },
609
609
  "columns": "3",
610
610
  "showImage": true,
611
+ "imageAspect": "3:2",
611
612
  "showDate": true,
612
613
  "showExcerpt": true,
613
614
  "showMeta": false,
@@ -260,6 +260,7 @@
260
260
  },
261
261
  "columns": "2",
262
262
  "showImage": true,
263
+ "imageAspect": "3:2",
263
264
  "showDate": false,
264
265
  "showExcerpt": false,
265
266
  "showMeta": false,
@@ -399,6 +399,7 @@
399
399
  },
400
400
  "columns": "3",
401
401
  "showImage": false,
402
+ "imageAspect": "3:2",
402
403
  "showDate": true,
403
404
  "showExcerpt": true,
404
405
  "showMeta": false,
@@ -201,6 +201,7 @@
201
201
  },
202
202
  "columns": "3",
203
203
  "showImage": false,
204
+ "imageAspect": "3:2",
204
205
  "showDate": true,
205
206
  "showExcerpt": true,
206
207
  "showMeta": false,
@@ -242,6 +243,7 @@
242
243
  },
243
244
  "columns": "3",
244
245
  "showImage": true,
246
+ "imageAspect": "3:2",
245
247
  "showDate": true,
246
248
  "showExcerpt": true,
247
249
  "showMeta": true,
@@ -179,6 +179,7 @@
179
179
  },
180
180
  "columns": "2",
181
181
  "showImage": true,
182
+ "imageAspect": "3:2",
182
183
  "showDate": false,
183
184
  "showExcerpt": false,
184
185
  "showMeta": false,
@@ -330,6 +331,7 @@
330
331
  },
331
332
  "columns": "3",
332
333
  "showImage": false,
334
+ "imageAspect": "3:2",
333
335
  "showDate": true,
334
336
  "showExcerpt": true,
335
337
  "showMeta": false,
@@ -182,6 +182,7 @@
182
182
  },
183
183
  "columns": "2",
184
184
  "showImage": true,
185
+ "imageAspect": "3:2",
185
186
  "showDate": true,
186
187
  "showExcerpt": true,
187
188
  "showMeta": false,
@@ -704,6 +704,7 @@
704
704
  },
705
705
  "columns": "3",
706
706
  "showImage": false,
707
+ "imageAspect": "3:2",
707
708
  "showDate": true,
708
709
  "showExcerpt": true,
709
710
  "showMeta": false,
@@ -185,6 +185,7 @@
185
185
  },
186
186
  "columns": "3",
187
187
  "showImage": true,
188
+ "imageAspect": "3:2",
188
189
  "showDate": false,
189
190
  "showExcerpt": false,
190
191
  "showMeta": false,
@@ -516,6 +517,7 @@
516
517
  ]
517
518
  },
518
519
  "showDescription": true,
520
+ "showTitle": true,
519
521
  "quantity": true,
520
522
  "buttonLabel": "Add to cart",
521
523
  "detailsLabel": "See details"
@@ -469,6 +469,7 @@
469
469
  },
470
470
  "columns": "3",
471
471
  "showImage": true,
472
+ "imageAspect": "3:2",
472
473
  "showDate": false,
473
474
  "showExcerpt": true,
474
475
  "showMeta": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omniharmonic/openspace-cli",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "The openspace command line: check, dev, migrate, new, import, eject, agents-md, mcp.",
5
5
  "license": "MIT",
6
6
  "author": "The OpenSpace contributors",
@@ -39,13 +39,15 @@
39
39
  "typescript": "~5.9.3",
40
40
  "vitest": "^3.2.4",
41
41
  "zod": "^4.6.7",
42
- "@omniharmonic/openspace-blocks": "0.1.9",
43
- "@omniharmonic/openspace-mcp-tools": "0.1.9",
44
- "@omniharmonic/openspace-site-kit": "0.1.9",
42
+ "@omniharmonic/openspace-blocks": "0.1.11",
45
43
  "@omniharmonic/openspace-import": "0.1.2",
46
- "@omniharmonic/openspace-schema": "0.1.9",
44
+ "@omniharmonic/openspace-ops": "0.1.11",
45
+ "@omniharmonic/openspace-schema": "0.1.11",
46
+ "@omniharmonic/openspace-site-kit": "0.1.11",
47
+ "@omniharmonic/openspace-renderer": "0.1.11",
48
+ "@omniharmonic/openspace-mcp-tools": "0.1.11",
47
49
  "@omniharmonic/openspace-template-starter": "0.1.0",
48
- "@omniharmonic/openspace-ops": "0.1.9"
50
+ "@omniharmonic/openspace-lint": "0.1.11"
49
51
  },
50
52
  "dependencies": {
51
53
  "@modelcontextprotocol/sdk": "^1.32.2",