Skip to content

Forms becomes a real app inside WP Explorer - #20

Merged
AllTerrainDeveloper merged 1 commit into
mainfrom
feature/wp-explorer-forms-app
Aug 19, 2026
Merged

AllTerrainDeveloper merged 1 commit into
mainfrom
feature/wp-explorer-forms-app

Conversation

@AllTerrainDeveloper

Copy link
Copy Markdown
Owner

User-tested on 8889 across several rounds. Built on OpenStation's new Explorer surface (registerEntityKind, detail-route dispatch for plugin kinds, contextual preview actions, editAction) — the shell-side halves live in WordPress/openstation branch add/my-wordpress-edit-action.

What's inside

  • The Forms section as a native-feeling app: Explorer-format icon tiles with vitals, search, a list pane with stat cards (Entries/Unread/Views/Conversion), the shared action row, half-scale live thumbnail and shortcode.
  • Navigate into a form via a real detail route — the shell's own breadcrumb (Site › Forms › <form>), no second trail. Inside: the form tile (opens the builder), Entries and Report as doors to their windows, and the full-size live preview filling the folder.
  • Race-free deep links: per-surface requested-form store (handoff.ts) consumed by each window's start() on cold mounts + immediate events for warm ones. Kills the analytics correct-then-first-form flash at its root (unconditional formId = forms[0] stomp).
  • Site-theme bleed shield: .atf-form :is(label, legend, …) { color: inherit } — a site theme's label { color: … } can no longer paint dark answers onto a dark form theme; button deliberately excluded (the submit colours itself — the black-on-blue Send regression is covered by the exclusion).
  • Dark themes' controls become visible: Neon/Midnight/Terminal border tokens bumped past 3:1 vs their surfaces (were 1.39/1.58/2.35) — radio circles and scale chips readable.
  • Canvas honesty: the dark-canvas ground uses var(--atf-text) instead of forcing #f0f0f1.
  • Narrow builder: the single side rail follows the work — palette when adding, inspector when a field is selected (atfb--has-selection + container queries), at both ≤900px and ≤640px.

Verified live (Playwright on 8889)

Shell crumbs update natively; folder = cards + 3 tiles + inline 100% preview; entries/report/builder deep-links open on the clicked form and stay there past autosave; Neon option labels rgb(242,240,255), circle borders rgb(82,74,138); Send white-on-blue; rail swap select/deselect.

607 PHPUnit ✓ · 261 vitest ✓ · tsc clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_0119U4sRRWGcTQdwYreTwpAp

Built on the Explorer's new surface (registerEntityKind, detail-route
dispatch, preview-action contexts, per-section editAction):

The section renders as the file manager around it renders things —
icon tiles in a grid, searchable, each wearing its vitals — and a form
double-clicks open into a folder whose breadcrumb is the shell's own:
Site › Forms › Team pulse survey. Inside, the hierarchy deliberately
stops: the form tile opens the builder, Entries and Report are doors to
their windows, and the rest of the folder is the live front end at full
size, because looking at a form is what a file manager's quick look is
for and the space was sitting there unused. The list pane keeps the
half-scale thumbnail, the stat cards and the action row.

Deep links stopped racing: the requested-form store grew per-surface
keys (builder, entries, analytics), every deep link writes the store
before opening — the window's own start() consumes it cold — and warm
windows take an immediate event. The analytics flash, where the right
report rendered and start() stomped it back to the first form, is gone
with the unconditional default that caused it.

Three rendering truths repaired along the way. Site themes colour bare
elements (label { color: … }) and beat inheritance, so everything
form.css did not colour explicitly arrived slate-on-dark — an
inheritance shield outranks them now, with button deliberately absent
because the submit colours itself. Dark themes drew controls with
borders their own surfaces swallowed (Neon 1.39:1) — Neon, Midnight and
Terminal borders now clear 3:1. And the dark canvas stopped forcing
#f0f0f1 where the theme's own text token belongs.

The builder's narrow window earns its inspector back: one rail's worth
of room follows the work — palette while adding, inspector the moment a
field is selected — via an atfb--has-selection class the container
queries read.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0119U4sRRWGcTQdwYreTwpAp
@AllTerrainDeveloper
AllTerrainDeveloper merged commit 57c693a into main Aug 19, 2026
3 checks passed
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.

1 participant