Skip to content

Card meta migration, Astro 7, and the token-collapse adaptation - #5

Open
andrewlovseth-esa wants to merge 7 commits into
mainfrom
feat/card-meta-migration
Open

Card meta migration, Astro 7, and the token-collapse adaptation#5
andrewlovseth-esa wants to merge 7 commits into
mainfrom
feat/card-meta-migration

Conversation

@andrewlovseth-esa

Copy link
Copy Markdown
Collaborator

What this does

Adopts the meta prop from esassoc/ecology#34 across the spoke's esa-card usage: restating subtitles removed, descriptive ones moved into card bodies, identifying facts expressed as labeled meta pairs.

Astro 5 to 7.2.6. Build passes; the only new build noise is a lightningcss warning about a ':global' pseudo-class it does not recognize.

Runs the hub's migrate-tokens codemod over the whole spoke: content-* color names, the font-size scale, esa-button's variant grammar. The build reports zero deprecation warnings.

Adapts where the hub collapse removed distinctions this spoke used:

  • text-muted survives as the spoke token --bcn-content-muted (gray-500); the hub merged it into content-default-secondary, which Beacon keeps at gray-700.
  • The three glyph-overlay search fields re-point the field legos' private --_field-* hooks; the public --form-padding/height-* surface is gone. lego request: leading-icon slot on the field legos ecology#33 requests the leading-icon slot that retires this.
  • Inert --form-height-* declarations deleted; weight dropped from EsaIconLink call sites (the prop was removed upstream).

Review note

This spoke builds against the sibling ecology checkout via file: links, so review it together with esassoc/ecology#34: form controls sit at the hub's natural sizes (the compact Beacon scale has no lever anymore) and the flat 4px corner now applies to every md-radius surface.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Rd8hgM9z8vV2kHXScSDe8B

andrewlovseth and others added 7 commits August 16, 2026 12:31
…copy

The hero's two links collapse to one button; any [data-bcn-demo-open]
opens bcn-demo-dialog, a lego-composed form with no endpoint yet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LV6S3jtPh8cJw8fD6B6EtH
requirement-tracker: the Kanban and Timeline empty states carried
"Not part of this prototype pass — Grid is the wired view." typeset where
a user reads it. That is process narration about how the work was made,
not about the product. Removed; the plain description of what each view
shows is kept, since a user who clicks Kanban is owed an answer about
what Kanban would be.

esa-button-toggle spec page: esa-button-toggle.hint was removed from the
hub on 2026-08-16 (its only fill anywhere was "Pick a layout", restating a
control that already shows its own options). Drops the demo, the API row,
the aria-describedby note, and the now-unused --form-help-color from the
theming list.

Build clean: 191 pages.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LV6S3jtPh8cJw8fD6B6EtH
…o the body

esa-card.subtitle is deprecated in the hub as of today, replaced by a typed
meta prop that takes {label, value} pairs. This repo held five fills, and they
split cleanly in two.

Three were text about the surface, and each was already said by something
beside it. The oversight donut's caption restated its own <h4> and then told
the reader to click a segment that is already a link. "Route-miles by status"
sits above rows that each read "4.2 mi cleared of 9.8 mi"; "Miles cleared to
date, with the projected path…" sits above a legend naming all three series.
Deleted.

Two are stored fields, not captions: a settings section's description and a
flag group's. The registry mandates them ("the real app ships almost no help
text next to its settings; this schema makes the absence impossible"), so they
are content. A sentence has no field name to give and cannot be a meta pair, so
they read as the first line of the card body instead of squeezed into 13px
under the title.

Needs @esa/ecology at the meta commit — node_modules/@esa/ecology symlinks into
the hub working tree, so merge that branch first.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LV6S3jtPh8cJw8fD6B6EtH
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rd8hgM9z8vV2kHXScSDe8B
# Conflicts:
#	package-lock.json
#	package.json
…ment calls

The script rewrote 180+ files (color-text-* to content-*, type-size to
font-size, esa-button color= to variant=). Hand adaptations where the hub
merged names this spoke distinguished, or deleted hooks it leaned on:

- text-muted survives as spoke-owned --bcn-content-muted (gray-500); the hub
  folded it into content-default-secondary, which Beacon keeps at gray-700.
- The three glyph-overlay fields (BcnEvidenceSearch, BcnSettingsSearch,
  BcnKbHero) re-point the field legos' private --_field-* hooks — the public
  --form-padding/height/radius surface is gone with no successor. Documented
  reach-in; a leading-icon slot on the hub is the real fix.
- Inert --form-height re-points deleted: the theme's Beacon scale (24/28/36/44,
  intent recorded in the comment), two 24px remove buttons, two 32px filter-bar
  comboboxes (the mismatch they corrected died with the theme token).
- weight= stripped from 8 EsaIconLink sites (dropped upstream; label
  composites own type now); stale doc/handoff prose updated to match.

Build green, zero deprecation warnings; KB hero verified rendering (52px
gutter, font cascade through font:inherit).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rd8hgM9z8vV2kHXScSDe8B
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants