The v3.1 converter now knows about Elementor, Bricks, Divi, Gutenberg, and Spectra (Ultimate Addons for Gutenberg). Each builder has its own block primitives — different class prefixes, different widget names. The mapper extracts the widget type from the rendered HTML and converts it to an FVS block.
| Builder | Block prefixes | Count |
|---|---|---|
| Elementor | .elementor-widget-{name}, data-widget_type | 42 widgets |
| + Essential Addons | .eael-{name} | 39 widgets |
| + Premium Addons | .premium-addon-{name} | 33 widgets |
| Bricks | .brxe-{name} | 37 elements |
| Divi | .et_pb_{name} | 51 modules |
| Gutenberg (core) | .wp-block-{name} | 49 blocks |
| + Spectra/UAGB | .wp-block-uagb-{name}, .uagb-{name} | 49 blocks |
Total: 300+ widget types across 5 builders + 2 addons.
| Site | Builder | Total blocks | High-confidence | % high |
|---|---|---|---|---|
| WPAstra.com | Astra + Spectra (UAGB) | 414 | 170 | 41% |
| ElegantThemes.com | WordPress + Extra | 76 | 0 | 0% |
| Source widget | Count | → FVS block |
|---|---|---|
| wp-block-uagb-container | 80 | rich-text/container |
| wp-block-uagb-info-box | 20 | card-grid/info |
| wp-block-uagb-image | 20 | image/single |
| wp-block-button | 14 | button/single |
| wp-block-uagb-advanced-heading | 9 | rich-text/text-heading |
| wp-block-uagb-counter__title | 7 | rich-text/counter |
| wp-block-uagb-buttons | 6 | button/group |
| wp-block-uagb-slider-child | 5 | carousel/item |
| wp-block-uagb-tabs-child | 4 | tabs/tabbed |
| wp-block-uagb-image-gallery | 3 | image-gallery/grid |
The scanner misidentified this as Squarespace (it's actually WordPress + Extra). The Extra theme is registered in the theme classifier but the converter doesn't know what to do with it — it falls back to role-based mapping for all blocks. Future: add an "extra" / "divi" / "elegant-themes" mapper.
classification.theme.builder_guess (most accurate)theme_guess (Gutenberg for known Gutenberg themes)Two main reasons a block doesn't get high-confidence mapping:
<div> with no widget class. The scanner sees a div, the mapper says "rich-text".