ID:WORK-117Status:done
Implement framework-agnostic extraction logic for component interface
Priority:highComplexity:moderateMilestone:v1.0.0Source:ADR-008
Add a shared extraction utility that partitions a serialized tag's children into three categories: properties (meta tags with property attribute), named refs (top-level children with data-name attribute), and anonymous content (everything else). This utility is framework-agnostic and will be consumed by each framework's renderer.
extractComponentInterface(tag) function in packages/transform/src/helpers.ts (or new file){ properties: Record<string, string>, refs: Record<string, SerializedTag[]>, children: RenderableTreeNode[] }attributes.property is set, keyed by property name, value from attributes.contentattributes['data-name'] is set, keyed by data-name valuepackages/transformCompleted: 2026-04-04
Branch: claude/adr-008-implementation-nBN9K
extractComponentInterface() and fromKebabCase() to packages/transform/src/helpers.tsComponentInterface type exportpackages/transform/src/index.tspackages/transform/test/extract-interface.test.tsdata-field attribute on meta tags (not property) since that's what createComponentRenderable actually producesdata-field values via fromKebabCase