efficient-storefront-blocks 0.52.0 → 0.53.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
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.53.0 — 2026-10-21
6
+
7
+ - **Collections and the wheel listing (List) draw Width's two rows** (Background, Content; efficient-web-builder 30.1). Each says `widthRows: "two"`. Their content ran edge to edge with a gutter; at Content's Content width their side padding now pulls the content in to `--sf-content-cap`, the same expression the Product Hero uses (`max(gutter, (100% - cap) / 2 + gutter)`). With nothing published it is the plain gutter, so no page moves: rendered with 5 stored widths on 0.51.0 and here, every text box and band box lands on the same pixels at 1920, 1280 and 390 px (10 cases).
8
+ - **The published page reads Site styles › Width.** `RenderClient` (`lib/puck/render-client`, the one place a storefront page mounts the builder's `PageRender`) takes `sectionBackgroundWidth` and `sectionContentWidth` and hands them to `PageRender` as `siteWidthsMetadata(...)`. Before this, the site's Background and Content defaults reached the editor only. **For hosts:** pass the theme row's two values (the backend serves both since #3476 / #3520: `sectionBackgroundWidth`, `sectionContentWidth`). A host that passes nothing draws what it always drew. Guard: `scripts/test-render-client-site-widths.tsx` (red first).
9
+ - **Events** needs no change here: efficient-web-builder 30.1.2 draws it as a band section from outside (its words already sit in `SITE_COLUMN`).
10
+ - Still on one row: CatalogFilterBar, by decision (a sticky bar: a band box stops the stick, and two published bars store Content width, which draws that box today), and BrandStrip (0 live nodes and no styles; its future is Lewis's call).
11
+ - Guards: `scripts/test-section-band.tsx` §7 (red without the flag); `test-box-width-control` reads the gutter inside the `--sf-content-cap` padding as the gutter, as it read the old `--sf-page-cap` one.
12
+ - **The easel names the builder passes through come from efficient-easel** (SSOT, harness DUP-1). Six builder modules hand on an easel screen name beside their own code (`lib/web-backend` hands on `WebsiteBackendError`, `provideHostFailures` and `WebsiteBackendErrorKind`; `lib/puck/slot-specs` `SlotSectionSpec`; `lib/puck/add-palette` `matchesQuery`; `lib/puck/footer-blocks` `BlockChoice`). 9 files here took them from the builder module. Each now names its easel subpath, so the builder can drop the pass-throughs. The package's public `WebsiteBackendError` and `WebsiteBackendErrorKind` are the same class and type, now exported from easel's `screen/lib/backend-error`. No stored value and nothing on screen changes.
13
+ - `lib/puck/slot-seeds` no longer hands on `NodeDefaults` and `SlotSectionSpec` (only one guard read them there). `src/render` takes `SlotSectionSpec` as a type only, so the render side stays inside easel's render group.
14
+ - Guard: `scripts/test-easel-names-from-easel.ts` adds a test (red first) that no file takes one of these names from the builder module that passes it on, by import, re-export, `import()`, `import("…").Name` or a namespace import.
15
+
5
16
  ## 0.52.0 — 2026-10-21
6
17
 
7
18
  - **MAJOR for hosts: builder 30** (a section has two widths, Background and Content; Lewis 2026-10-20, mockup v6). The ranges (peer and dev) are efficient-web-builder `^30.1.1` (was `^29.0.0`). The theme row (`public.d.ts` `SiteThemeRow`) gains `section_background_width` and `section_content_width`; the words catalogue is regenerated.
@@ -1 +1 @@
1
- "use client";import{zi as t}from"./chunk-WVQKGOJK.js";import"./chunk-HQ2Q5HZE.js";import"./chunk-VHOOQYWZ.js";import"./chunk-Y6SLVHK3.js";import{jsx as e}from"react/jsx-runtime";import{default as r}from"efficient-easel/screen/components/ScreenStoreProvider";function p(o){return e(r,{...o,parts:t})}export{p as default};
1
+ "use client";import{yi as t}from"./chunk-SQYA5VYV.js";import"./chunk-HQ2Q5HZE.js";import"./chunk-VHOOQYWZ.js";import"./chunk-Y6SLVHK3.js";import{jsx as e}from"react/jsx-runtime";import{default as r}from"efficient-easel/screen/components/ScreenStoreProvider";function p(o){return e(r,{...o,parts:t})}export{p as default};