8f51b5144a4752744eb62edc78ca0bd8127e1583
Both panels had a ~90-line near-byte-identical per-item field editor (boolean->checkbox, number->number, /color/->color, long->textarea, else text, fields derived from Object.keys(items[0])). Moved into a new ArrayItemFieldsEditor component in ArrayItemFields.tsx used by both. SectionTypePanel keeps its own FeaturesGrid special-case (key === 'features' -> FeaturesEditor) and its empty-array guard ahead of the shared call. Behavior-preserving (task E4.2). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
Visual drag-and-drop website builder using GrapesJS
Languages
TypeScript
61.2%
HTML
17.1%
JavaScript
17%
CSS
3.6%
PHP
0.8%
Other
0.3%