aem-eds-kit 0.4.48 → 0.4.57

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
@@ -6,6 +6,71 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ### Changed
10
+ - **Illustrations on the site** (EDS-077): design sources → `eds` → block,
11
+ the command workflow (start → build → check → ship), one per audit card,
12
+ `aem up` serves / `eds` writes, the three quick-start steps, an AEM dialog
13
+ mapped onto a UE model (migration guide), one cached Figma call and local
14
+ models (docs). Inline SVG in the hero's style, with titles and descriptions
15
+ for screen readers; on phones the wide ones scroll sideways.
16
+ - **`--sample` is the project's own example hero** (EDS-073), the same design
17
+ as `examples/figma-kit` and `site/example/`, instead of the third-party
18
+ "Kiri Bloom" hero (whose SVG wasn't valid XML: its comment held `--sample`).
19
+ New roadmap (Next / Then / Later) on the site and in the README; the README
20
+ opens with a 4-line quick start and a contents row.
21
+ - **Docs and site match the CLI again** (EDS-063). README screenshots of real
22
+ runs (the menu, `eds new`, `block from-design`, `migrate component`,
23
+ `block test` / `check`, the preview harness) and design-vs-block images;
24
+ `docs.html` gains `block test` / `block check`, local models and configuration
25
+ sections plus the missing flags; the site covers `eds new`, local models,
26
+ AEMaaCS proxy / Classic UI migration and the real Figma REST limits.
27
+ - **CHANGELOG split into the versions published on npm** (0.4.22, 0.4.25,
28
+ 0.4.26, 0.4.48), worked out from the CHANGELOG inside each npm package.
29
+ Version links point at npm; the GitHub release links never existed.
30
+
31
+ ### Fixed
32
+ - **Scraped designs keep section backgrounds and one-sided lines** (EDS-067).
33
+ A full-width band with no background of its own now carries the colour painted
34
+ behind it (`inheritedBackground`, usually the page background), which the prompt
35
+ tells the agent to put on the block's section; borders that differ per side
36
+ (a bottom rule only) are kept as `borderTop` / `borderBottom` etc., and the
37
+ `0px none` noise on most nodes is gone. `eds block preview` / `block test` /
38
+ `block check` now render the block inside the section > wrapper DOM aem.js
39
+ builds, so section styles show up there too.
40
+ - **`eds init --yes` no longer prompts for the authoring model** (EDS-061). It
41
+ detects it from the `fstab.yaml` mountpoint (AEM author → Universal Editor,
42
+ `content.da.live` → DA, Google Drive, SharePoint) or a crosswalk `paths.json`,
43
+ and stops with exit 1 and a `--authoring` hint when it can't tell. Interactively
44
+ the detected model is preselected.
45
+ - **`eds init --yes` no longer prompts for the project name** (EDS-058). Without
46
+ `--name` it now takes the folder name (or `package.json`'s, unless that is still
47
+ the boilerplate's own), so it runs in CI and without a terminal.
48
+ - **`eds sandbox new --ue` used a crosswalk boilerplate that doesn't exist**
49
+ (EDS-056): `adobe/aem-boilerplate-xwalk` is now `adobe-rnd/aem-boilerplate-xwalk`,
50
+ where the Universal Editor boilerplate actually lives.
51
+
52
+ ### Added
53
+ - **Any web page is a design source** (EDS-065). `block from-design` scrapes
54
+ every http(s) link that isn't Figma, Framer or Stitch (`--provider web`): a
55
+ live site you're rebuilding, an HTML mock-up, or the project's own example page
56
+ (`https://piotrgodycki.github.io/aem-eds-kit/example/ --name cards`). Before,
57
+ such a link was taken for a Figma URL and rejected.
58
+ - **`eds new [dir]`: clone the latest EDS boilerplate locally** (EDS-055). DA,
59
+ Universal Editor (crosswalk) or Commerce, or any repo / git URL; no GitHub auth.
60
+ Fresh git history by default, or `--keep-history` with an `upstream` remote;
61
+ `--ref`, `--remote`, `--install`; then `eds init`, with UE preselected for
62
+ crosswalk. Also first in the interactive menu.
63
+ - **Local models: Ollama and oMLX** (EDS-051). `--agent ollama | omlx | local`
64
+ runs `from-design` on a local model (Ollama's native API with `num_ctx`;
65
+ oMLX or any OpenAI-compatible server). The CLI embeds the design (scraped /
66
+ REST spec, SVG text) or attaches a PNG/JPG for a vision model, asks for every
67
+ file in a `=== FILE: … ===` format and writes them itself, only inside
68
+ `blocks/<name>/`. Model from `--model`, `local.model` or a coder model on the
69
+ server; context from `local.contextTokens` (default 32768, raised to fit).
70
+ Used automatically when no CLI agent is installed. New `--model` flag.
71
+
72
+ ## [0.4.48] - 2026-10-20
73
+
9
74
  ### Changed
10
75
  - **README rewritten for the npm page** (EDS-047): absolute links (relative
11
76
  ones break on npmjs.com), a docs / changelog / e2e links row, a "What it does"
@@ -17,29 +82,6 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
17
82
  hundreds of pixels of white and a height change inside them went unnoticed.
18
83
  Existing baselines need one `eds block test --update`; a run against an old
19
84
  baseline says so instead of reporting a size change.
20
- - **`block from-design` now fetches the design once into a cached snapshot,
21
- then generates from it** (fetch → cache → generate). The CLI resolves the
22
- design via the cheapest adapter - local SVG/PNG export, a cached snapshot
23
- (`tmp/eds-cli/design-cache/`), the **Figma REST** API (with a token), or a
24
- **single** Figma MCP call the agent caches - so retries and refine passes
25
- never re-fetch. Replaces the old flow where the agent made several MCP calls
26
- mid-generation. New `src/lib/figma/rest.ts` and `design-source.ts`.
27
- - **MCP usage cut to one call per block.** The prompt now uses only
28
- `get_design_context` (dropped `get_variable_defs`; `get_screenshot` is opt-in
29
- via `--screenshot`) - the Figma Dev Mode MCP server meters tool calls per plan
30
- (20/month on Starter or with a View/Collab seat; 200-600/day with Dev/Full on
31
- paid plans). Set a Figma token to fetch via REST instead, on its own budget.
32
- - **Block generation defaults to the fastest model (Haiku)**, overridable with
33
- `model` in config - block codegen is structured, bounded work.
34
- - **`eds block preview` no longer auto-launches.** After `from-design` you get a
35
- menu to refine the block or open the preview on demand; `--no-serve` became
36
- `--serve` (opt-in, non-interactive runs only).
37
- - **Shorter interactive-menu labels** (details moved to each choice's
38
- description).
39
- - **Smaller published package (~206 kB → ~73 kB packed; 808 kB → ~220 kB
40
- unpacked).** The build no longer ships a source map (it was ~60% of the
41
- package; re-enable ad hoc with `tsup --sourcemap`) and now minifies the single
42
- bundled binary (`dist/bin/eds.js` 265 kB → ~170 kB).
43
85
 
44
86
  ### Fixed
45
87
  - **Figma limits described correctly** (EDS-040). Code comments, README, docs
@@ -64,19 +106,6 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
64
106
  take the prompt as one command-line argument; past 96 KB (a scraped page of
65
107
  ~30 sections) it's replaced by a short instruction to read the saved prompt
66
108
  file, so the spawn can't hit Linux's 128 KB per-argument limit (E2BIG).
67
- - **Block preview blank-screen cases.** The harness now (a) reduces a full-HTML
68
- `_<name>.preview.html` mock to its `<body>` contents, (b) reveals the body past
69
- the EDS `body.appear` visibility gate (which `scripts.js` would normally flip),
70
- and (c) loads the block script via a defensive dynamic `import()` so a bad
71
- import (e.g. a missing `scripts/*.js`) shows the authored markup instead of a
72
- blank frame. The prompt now requires a bare preview fragment and self-contained
73
- block JS.
74
- - **`eds block preview header|footer`** now warns that these are page chrome and
75
- can't render standalone (they fetch the nav/footer fragment and need the full
76
- page runtime).
77
- - Removed the dangling `main`/`types` fields that pointed at a never-built
78
- `dist/index.js` (a bare `import "aem-eds-kit"` would have failed) - the package
79
- is a CLI, exposed via its `bin`.
80
109
 
81
110
  ### Added
82
111
  - **Changelog page on the site** (EDS-048): `site/changelog.html` is generated
@@ -102,6 +131,43 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
102
131
  datasource → text), smartimage, multifield (plain multi-value, or ACS
103
132
  `multifieldpanel` → container), tabpanel and `cqinclude`. Tested on the 22
104
133
  Classic UI dialogs of ACS Commons 3.14: 21 migrate, 63 valid fields.
134
+
135
+ ## [0.4.26] - 2026-10-12
136
+
137
+ ### Changed
138
+ - **`block from-design` now fetches the design once into a cached snapshot,
139
+ then generates from it** (fetch → cache → generate). The CLI resolves the
140
+ design via the cheapest adapter - local SVG/PNG export, a cached snapshot
141
+ (`tmp/eds-cli/design-cache/`), the **Figma REST** API (with a token), or a
142
+ **single** Figma MCP call the agent caches - so retries and refine passes
143
+ never re-fetch. Replaces the old flow where the agent made several MCP calls
144
+ mid-generation. New `src/lib/figma/rest.ts` and `design-source.ts`.
145
+ - **MCP usage cut to one call per block.** The prompt now uses only
146
+ `get_design_context` (dropped `get_variable_defs`; `get_screenshot` is opt-in
147
+ via `--screenshot`) - the Figma Dev Mode MCP server meters tool calls per plan
148
+ (20/month on Starter or with a View/Collab seat; 200-600/day with Dev/Full on
149
+ paid plans). Set a Figma token to fetch via REST instead, on its own budget.
150
+ - **Block generation defaults to the fastest model (Haiku)**, overridable with
151
+ `model` in config - block codegen is structured, bounded work.
152
+ - **`eds block preview` no longer auto-launches.** After `from-design` you get a
153
+ menu to refine the block or open the preview on demand; `--no-serve` became
154
+ `--serve` (opt-in, non-interactive runs only).
155
+ - **Shorter interactive-menu labels** (details moved to each choice's
156
+ description).
157
+
158
+ ### Fixed
159
+ - **Block preview blank-screen cases.** The harness now (a) reduces a full-HTML
160
+ `_<name>.preview.html` mock to its `<body>` contents, (b) reveals the body past
161
+ the EDS `body.appear` visibility gate (which `scripts.js` would normally flip),
162
+ and (c) loads the block script via a defensive dynamic `import()` so a bad
163
+ import (e.g. a missing `scripts/*.js`) shows the authored markup instead of a
164
+ blank frame. The prompt now requires a bare preview fragment and self-contained
165
+ block JS.
166
+ - **`eds block preview header|footer`** now warns that these are page chrome and
167
+ can't render standalone (they fetch the nav/footer fragment and need the full
168
+ page runtime).
169
+
170
+ ### Added
105
171
  - **`eds block preview` with no name → a live gallery of every content block**,
106
172
  each in its own width-honest iframe. Routes are computed per request, so a
107
173
  block generated while the gallery is open appears on the next reload
@@ -113,12 +179,31 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
113
179
  `figma.token` config, scope `file_content:read`) - a quota separate from the
114
180
  MCP tool-call limit. New flags `--mcp` (force MCP) and `--refresh` (ignore the
115
181
  cache).
182
+
183
+ ## [0.4.25] - 2026-10-09
184
+
185
+ ### Changed
186
+ - **Smaller published package (~206 kB → ~73 kB packed; 808 kB → ~220 kB
187
+ unpacked).** The build no longer ships a source map (it was ~60% of the
188
+ package; re-enable ad hoc with `tsup --sourcemap`) and now minifies the single
189
+ bundled binary (`dist/bin/eds.js` 265 kB → ~170 kB).
190
+
191
+ ### Fixed
192
+ - Removed the dangling `main`/`types` fields that pointed at a never-built
193
+ `dist/index.js` (a bare `import "aem-eds-kit"` would have failed) - the package
194
+ is a CLI, exposed via its `bin`.
195
+
196
+ ### Added
116
197
  - **`block from-design` records the design's frame widths** in the block's
117
198
  `.eds-meta.json` (`breakpoints`), so `eds block preview` is width-honest at the
118
199
  **real design widths**, not a fixed device set. The agent writes the widths it
119
200
  reads from the design (prompt instruction), `--widths 390,768,1440` overrides,
120
201
  and 375/768/1280 remains the fallback. New `src/lib/figma/breakpoints.ts`
121
202
  (`parseWidths` / `normalizeBreakpoints`), extended `edsMetaSchema`.
203
+
204
+ ## [0.4.22] - 2026-10-08
205
+
206
+ ### Added
122
207
  - **`eds init` writes a local-dev `.env` + `xwalk.json` by default.** `.env`
123
208
  carries the `aem up` config (`AEM_OPEN=/`, `AEM_PORT=3007`, `AEM_PAGES_URL`
124
209
  prefilled from the git remote); it's never overwritten and always gitignored.
@@ -419,25 +504,16 @@ harness, gradient ANSI logo. Not published (superseded by 0.3.0).
419
504
  Initial CLI scaffold: `block create`, `block from-figma`, `block list`,
420
505
  `figma setup`, `doctor`, `preview`, `publish`. Not published.
421
506
 
422
- [Unreleased]: https://github.com/piotrgodycki/aem-eds-kit/compare/v0.4.19...HEAD
423
- [0.4.19]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.19
424
- [0.4.18]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.18
425
- [0.4.17]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.17
426
- [0.4.16]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.16
427
- [0.4.15]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.15
428
- [0.4.14]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.14
429
- [0.4.13]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.13
430
- [0.4.12]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.12
431
- [0.4.11]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.11
432
- [0.4.10]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.10
433
- [0.4.9]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.9
434
- [0.4.8]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.8
435
- [0.4.7]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.7
436
- [0.4.6]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.6
437
- [0.4.5]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.5
438
- [0.4.4]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.4
439
- [0.4.3]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.3
440
- [0.4.2]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.2
441
- [0.4.1]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.1
442
- [0.4.0]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.4.0
443
- [0.3.0]: https://github.com/piotrgodycki/aem-eds-kit/releases/tag/v0.3.0
507
+ [Unreleased]: https://github.com/piotrgodycki/aem-eds-kit/commits/main
508
+ [0.4.48]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.48
509
+ [0.4.26]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.26
510
+ [0.4.25]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.25
511
+ [0.4.22]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.22
512
+ [0.4.16]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.16
513
+ [0.4.12]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.12
514
+ [0.4.9]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.9
515
+ [0.4.7]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.7
516
+ [0.4.4]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.4
517
+ [0.4.2]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.2
518
+ [0.4.1]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.1
519
+ [0.4.0]: https://www.npmjs.com/package/aem-eds-kit/v/0.4.0