eb4290a45e10f90d3427b3a410bd63263d8824df
FeaturesGrid, Tabs, Accordion, PricingTable, Testimonials, Gallery, ContentSlider, NumberCounter, Menu, SocialLinks, Navbar and ContactForm store their content in array props rather than Craft child nodes, so the Layers tree showed nothing underneath them. This adds the pure deriveVirtualRows() function and VIRTUAL_CHILD_PROPS registry the Layers panel will consume in a later task. Verified the registry against each component's actual item interface: corrected Tabs (label field is `label`, not `title` -- TabItem has no `title`) and Content Slider (label field is `heading`, not `title` -- Slide has no `title`). Both would have silently fallen back to "Tab N" / "Slide N" for every existing site. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Languages
TypeScript
75.9%
JavaScript
12.3%
HTML
8.6%
CSS
2.6%
PHP
0.4%
Other
0.2%