# BW Pre-Heading — Session Log

Append-only, newest first. Format: see §11 of PLUGIN.md.

---

## 2026-05-01 — placeholder-only behaviour for eyebrow text → 0.1.3

**Goal:** Make `Enter text here` behave as a real RichText *placeholder* (hint text that vanishes on first keypress) rather than as a literal default value the author has to manually clear.
**Done:**
- `blocks/bw-pre-heading/block.json` — `eyebrowText.default` changed from `"Enter text here"` to `""`.
- `blocks/bw-pre-heading/render.php` — fallback for the missing-attribute branch changed from `'Enter text here'` to `''` so the frontend never echoes the placeholder string verbatim.
- Editor placeholder string in `index.js` left untouched — RichText already hides it the moment the field is non-empty, which is the desired UX.
- Bumped plugin header `Version:` + `BW_PRE_HEADING_VERSION` to `0.1.3`, `index.asset.php` `version` to `1.0.3`, `CLAUDE.md` header.
- Added `[0.1.3]` entry to `CHANGELOG.md`. Updated `README.md`, `docs/SPEC.md`, `docs/ARCHITECTURE.md`, `docs/TESTING.md` to describe the new "empty default + placeholder hint" model.
**Left off at:** 0.1.3 ready. Authors who insert a fresh block now see only the prompt-arrow icon plus the greyed-out placeholder hint; nothing is committed to post content until they actually type.
**Notes:** Existing block instances that already stored the literal string `Enter text here` from 0.1.2 will continue to render that string verbatim (it's a real attribute value now, no longer a default). That's intentional — we don't silently mutate stored content. Authors who want the new behaviour for old blocks can clear the field manually.

## 2026-05-01 — generic placeholder copy → 0.1.2

**Goal:** Replace the Prompt Victoria-specific eyebrow text `November 5, 2026 · Victoria Conference Centre` with a generic `Enter text here` so the plugin ships neutral default copy.
**Done:**
- Updated default in `blocks/bw-pre-heading/block.json`.
- Updated RichText placeholder in `blocks/bw-pre-heading/index.js` and switched its `__()` text domain from `kadence-child` to `bw-pre-heading`.
- Updated render fallback in `blocks/bw-pre-heading/render.php`.
- Updated docs: `README.md`, `docs/SPEC.md`, `docs/ARCHITECTURE.md`, `docs/TESTING.md`.
- Bumped plugin header `Version:` + `BW_PRE_HEADING_VERSION` to `0.1.2`, `index.asset.php` version to `1.0.2`, `CLAUDE.md` header.
- Added `[0.1.2]` entry to `CHANGELOG.md`.
**Left off at:** 0.1.2 ready. Existing block instances that already store custom (or the previous default) text are unaffected — server-side render uses whatever is stored in `eyebrowText`. Only freshly inserted blocks, and blocks where the user clears the RichText field, will display the new generic copy.
**Notes:** Dropped the `·` separator and `date · venue` structural pattern entirely — the new copy is fully neutral, treating the block as a generic eyebrow rather than a date/venue pairing.

## 2026-04-24 — brand color swap → 0.1.1

**Goal:** Replace the "gold" brand hex from `#FBB040` to `#f58220` across the block.
**Done:**
- Updated enum + defaults in `blocks/bw-pre-heading/block.json` (both `promptColor` and `textColor`).
- Updated whitelist + fallback defaults in `blocks/bw-pre-heading/render.php`.
- Updated `COLOR_OPTIONS` label + value in `blocks/bw-pre-heading/index.js`.
- Updated mentions in `README.md`, `docs/SPEC.md`, `docs/ARCHITECTURE.md`.
- Bumped plugin header `Version:` + `BW_PRE_HEADING_VERSION` constant to `0.1.1`, `index.asset.php` version to `1.0.1`, `CLAUDE.md` header.
- Added `[0.1.1]` entry to `CHANGELOG.md` under `### Changed`.
**Left off at:** 0.1.1 ready. Existing post content that stored `promptColor: "#FBB040"` will fail the new enum's in_array check on render and fall back to the new `#f58220` default automatically — no DB migration needed.
**Notes:** Label text in the dropdown was mechanically updated to `Gold (#f58220)`; we kept the "Gold" conceptual slot name even though `#f58220` is closer to orange, since the brand token role is what matters.

## 2026-04-24 — scaffold + lift from child theme

**Goal:** Convert the `bw/pre-heading` block from a child-theme-bound registration into a standalone, portable plugin so it can be dropped into any WordPress project.
**Done:**
- Scaffolded plugin skeleton at `wp-content/plugins/bw-pre-heading/` per PLUGIN.md §3/§14.
- Copied block source (`block.json`, `index.js`, `index.asset.php`, `render.php`, `style.css`, `editor.css`) from `kadence-child/blocks/bw-pre-heading/` into `plugins/bw-pre-heading/blocks/bw-pre-heading/`.
- Wrote `bw-pre-heading.php` main file with `BW_PRE_HEADING_*` constants and an `init` hook that calls `register_block_type()` against the block directory.
- Removed the block registration from `kadence-child/functions.php` to avoid a duplicate-registration conflict.
- Wrote full docs set (SPEC, ARCHITECTURE, TESTING, ROADMAP, KNOWN-ISSUES, HANDOFF-NOTES) plus README, CLAUDE, CHANGELOG, LICENSE.
**Left off at:** Plugin scaffolded at 0.1.0. Theme still has the orphan `blocks/bw-pre-heading/` folder (not registered, just files) — left in place so the user can confirm plugin works before deleting.
**Notes:** Most recent pre-lift change was switching the eyebrow text font to Space Grotesk 14px / 600 / 0.14em — that is included in the copied `style.css`. Space Grotesk itself is not enqueued; see `docs/KNOWN-ISSUES.md`.
