Skip to content

Convert canonical standalone search controls to native blocks - #647

Merged
chubes4 merged 3 commits into
trunkfrom
fix/619-fse-native-forms
Jul 21, 2026
Merged

Convert canonical standalone search controls to native blocks#647
chubes4 merged 3 commits into
trunkfrom
fix/619-fse-native-forms

Conversation

@chubes4

@chubes4 chubes4 commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • convert strict, script-free, single-input search controls using the canonical WordPress query name s to dynamic core/search blocks
  • preserve arbitrary HTML search controls, ID-addressable controls, runtime targets, and wrappers with additional descendants on existing preservation paths
  • restore the package boundary: php-transformer contains no active Figma-specific source, test, tool, or documentation knowledge
  • move the Figma acceptance contract to repository scope and make figma-transformer supply its DOM identity attributes explicitly
  • add dedicated CI for the Figma owner and generic visual-parity tools

Addresses #619.

Architecture

figma-transformer
  owns .fig semantics and Figma DOM identity attributes
          |
          | generic HTML + explicit provider configuration
          v
php-transformer
  owns format-neutral HTML -> blocks and generic visual probes

Historical generated CHANGELOG.md entries are unchanged per repository policy.

How to test

  1. Run cd php-transformer && composer install --no-interaction --prefer-dist && composer validate --strict && composer test.
  2. From the repository root, run php tests/contract/production-acceptance-matrix.php.
  3. Run cd figma-transformer && composer install --no-interaction --prefer-dist && composer validate --strict && composer test.
  4. Run cd php-transformer/tools/visual-parity && npm ci && npm test.
  5. Confirm the PHP Transformer package contains no active Figma references with grep -RniE "figma|data-figma" php-transformer/src php-transformer/tests php-transformer/tools.

Behavior and compatibility

  • Native conversion is based only on generic HTML semantics: one script-free search input, no ID, canonical query name s, and no additional descendants.
  • Arbitrary search forms and runtime-addressable controls retain existing preservation behavior.
  • The generic DOM provider defaults change from product-specific attributes to data-node-id and data-node-name; callers with other emitter contracts now configure those attributes explicitly.
  • figma-transformer preserves its existing DOM-box behavior by supplying its own attribute contract.
  • No public PHP APIs or extension paths change.

Evidence

  • Full PHP Transformer suite passes, including 244 parity fixtures and package install proof.
  • Repository production acceptance contract passes from its new owning scope.
  • Figma Transformer contract passes and now verifies explicit DOM identity configuration.
  • Generic visual-parity smoke and browser geometry suites pass.
  • Real FSE import through the generic boundary passes with native conversion rate 1.0, generated core/html count 0, and 141/141 editor-valid blocks.

AI assistance

  • AI assistance: Yes
  • Tool(s): OpenCode with openai/gpt-5.6-sol
  • Used for: Root-cause analysis, architecture correction, implementation, regression tests, and verification under Chris Huber direction.

@chubes4 chubes4 changed the title Convert synthetic Figma search controls to native blocks Convert canonical standalone search controls to native blocks Jul 21, 2026
@chubes4
chubes4 merged commit 1f6454a into trunk Jul 21, 2026
4 checks passed
@chubes4
chubes4 deleted the fix/619-fse-native-forms branch July 21, 2026 01:49
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