Root causes:
1. Font/color CSS consumption rules were added to platform blocks.css
but editor preview uses the THEME's blocks.css (which lacked them)
2. Reset buttons sent empty string which failed validation → 400 →
preview died silently
Fix: Added --sf-title-size/--sf-text-size/--sf-accent-c/--sf-btn-c
consumption rules to themes/trade-pro/blocks.css; reset now uses
clearStyleField() which deletes the key instead of setting ''.
Co-Authored-By: Claude Code <noreply@anthropic.com>
- blueprints: register trust_bar (icon/title/text items) and applications_band
(2x2 dark-band tiles) block types; render with escaped items, ordinal icon
fallback, 8-item cap; auto-exposed in editor via /api/editor/blocks and
grouped under business in the studio palette
- blocks.css: platform base layer for both blocks (app/static + trade-pro
Layer A kept verbatim in sync) + trade-pro bridge vocabulary (icon-circle,
hairline dividers, navy->brand gradient band, glass tiles, 900/620
breakpoints, reduced-motion) without touching canvas hooks
- tests: test_trade_pro_home_block_driven covers the full studio-draft
PUT -> publish -> build chain; 8 block types on the homepage, template
markers absent under layout_mode=replace, clean build report
- scripts/setup_home_blocks.py: production write path for site 483295c29ea0
(login -> draft -> publish -> build -> verify); real catalogue counts feed
the stats block; run after the Docker image picks up the new block types
Co-Authored-By: Claude Code <noreply@anthropic.com>
Task 13a. Rewrite themes/trade-pro/blocks.css as two layers:
- Layer A: current app/static/blocks.css verbatim (old theme copy was stale,
missing V8.34+ hero slider / layout-variant / card-style rules); keeps all
platform contracts (site-runtime.js hero track, responsive.py 820/540 device
semantics, card-style/fit variants, V8.33.1 section-vs-inner class fix).
- Layer B: .sf-theme-trade-pro scoped bridge to the sf-tp-* template language:
hero (dark gradient + scrim + inverse button), features (soft band + white
cards + icon-circle index), collection (hairline cards, hover lift, 4:3
media, pill tag), image_text (1fr/1.22fr + photo frame), stats (white stat
bar with hairline dividers), cta (gradient band + ghost button), richtext
(article-body typography incl. tables), plus gallery/faq/tabs/carousel/
video/pricing/attributes in the same tokens. 68 distinct --sf-tp-* token
references; breakpoints 900/620 follow the template.
Section backgrounds use a .sf-canvas chain (0,4,0) so they beat pro-base's
later-loading .pro-custom-content rules in both static and editor cascades;
user inline --sf-bg/--sf-fg still win via var() fallbacks; canvas hooks
(block-id attrs, selection outlines, site-design padding/h1 controls)
untouched.
Tests: test_trade_pro_blocks_visual_bridge covers distribution (theme file
served verbatim, not platform), full multi-block DOM structure with pro.js
filter hooks, scoped rule/token/breakpoint contracts and editor-safety
red lines. 36/36 in test_theme_registry + test_theme_pro_v3; full suite
453 passed / 11 failed (identical to pre-change baseline).
Co-Authored-By: Claude Code <noreply@anthropic.com>
V8.33.0 absorbed our entire platform patch set as native features
(discovery/env_for macro override/blocks.css priority/type-mapping fix/
frontend entries/locale override) and synced trade-pro from our remote;
V8.33.1 adds HESU PIPE industrial-theme home fixes (1.3.1).
Zero patch re-application this round — all verified native. Theme
suites 35/35; full run 428 passed + same 10 known Windows env fails
(FAILED set unchanged). Live: container 8.33.1-dev.1 healthy, hesupipe
192 entries intact, trade-pro build 203 pages 0 errors.
Patch registry retired to archive — future upgrades are plain overlay.
Co-Authored-By: Claude Code <noreply@anthropic.com>
- remove themes/trade-pro/blocks.css (52-byte placeholder shadowed the
platform 7KB block stylesheet via copy_blocks_css) and drop it from
manifest styles; Phase 3 brings real component styles
- page-presets.json: all editor/bootstrap copy translated to trade B2B
English; ids, block types, structure and hrefs identical to industrial
- fallback nav widened to all 7 default sections (Brands/Cases restored)
so the documented false-positive window only relabels, never drops
coverage; comment added next to the tp_needs_en_nav set
- test anchors '>Products<' on the built home page
Co-Authored-By: Claude Code <noreply@anthropic.com>
Fifth built-in theme: English-first international B2B skeleton registered
via manifest discovery, builds real sites end-to-end. pro.html derives
from industrial with lang=en, href-set value-comparison English fallback
nav (header + footer), sf-tp-* button classes and hard-coded #0b3d91
theme-color until the map entry lands. pages/ ships all 14 kinds; macro
library is an English passthrough copy pending the Phase 3 cms port.
Co-Authored-By: Claude Code <noreply@anthropic.com>