Skip to content

Report 13 -- Visual Grid Migration Plan: Before & After Per Datatype

Date: 2026-02-26 Sources: 03-v8-grid-baseline.md, 11-grid-dedup-deep-investigation.md, 12-grid-architecture-explained.md, _blockgrid-configs.json


Introduction

This document provides a side-by-side visual mapping of every v8 Grid datatype to its v17 BlockGrid equivalent. For each of the 14 datatypes, it shows the complete v8 configuration (templates, rows, areas, editors) and the corresponding v17 element type hierarchy (row configs, layouts, area wrappers, settings, content types).

Why per-datatype architecture is correct: Report 11 confirmed that ZERO layouts are truly identical across datatypes. Even when column structures match (e.g., every "Half" is 6+6), the allowed editor lists differ because each datatype has a different content element type set. Area wrappers encode those editor permissions and therefore MUST remain per-datatype. Sharing layout element types would save only ~42 empty records while adding complexity and risk.

NOTE -- Naming Convention Used in This Document

Throughout the V17 BlockGrid diagrams, element types are shown as: "Display Name" (technical_alias)

  • Display Name = what editors see in the Umbraco backoffice (e.g., "Full Width", "Row Settings")
  • Alias = the technical identifier used in code and configuration (e.g., grid_1534_layout_fullwidth)
  • The alias format is: grid_{v8DataTypeId}_{category}_{sanitizedName} where category is one of layout, areawrapper, rowconfig, rowsettings, cellsettings, blocksettings

Hierarchy Architecture & Fix Status

Hierarchy Fix Applied

The Layout AllowAtRoot flag was changed from true to false in GridConfigurationMigrationService.cs line 2843. Previously, Layout blocks were allowed at root, which meant an editor could drop a layout directly onto the grid surface without a Row Config parent. This broke the intended strict nesting model.

Corrected hierarchy (enforced after fix):

Row Config (AllowAtRoot=true, AllowInAreas=false)
  └─ Layout (AllowAtRoot=false, AllowInAreas=true)
       └─ Area Wrapper (AllowAtRoot=false, AllowInAreas=true) — carries cellSettings for v8 cell styles
            └─ Content Element Types (AllowAtRoot=false, AllowInAreas=true)

Every level below Row Config now has AllowAtRoot=false, guaranteeing that blocks can only appear at the correct depth. Row Configs are the only blocks permitted at root. Layouts must be placed inside a Row Config area. Area Wrappers must be placed inside a Layout area. Content elements must be placed inside an Area Wrapper area.

Why Area Wrappers Are Essential

Area Wrappers exist to preserve v8 cell-level styles (background-color, background-image, padding, margin, CSS classes, AOS animations). In the v8 Grid, each cell (column) within a row could carry its own styles and settings independently of the row and independently of the content placed inside it. The Area Wrapper is the v17 block that corresponds to that cell.

In the v17 renderer, these cell-level styles are read by:

  • BlockGridExtensions.BuildStyleAttribute() — constructs inline style="" attributes from the Area Wrapper's attached cellSettings element (background-color, background-image, padding, margin).
  • BlockGridExtensions.BuildHtmlAttributes() — constructs HTML attributes from the Area Wrapper's attached cellSettings element (CSS class, ID, data-aos-* animation attributes).

Without Area Wrappers, there would be no block to attach cell settings to, and all v8 cell-level styling would be silently lost during migration. The column <div> in BootstrapGrid.cshtml would render with no styles, no classes, and no animation attributes.

Content Migration Status

Status: IMPLEMENTED — The production content migration (GridLayoutToBlockGridMigrator.cs) already creates proper 4-level nesting. ConvertRowAsync() creates Layout blocks with row settings, CreateAreaWrapperBlockAsync() creates Area Wrapper blocks with cell settings, and ConvertMultiSectionTemplateAsync() wraps multi-section templates in Row Config blocks. The older GridContentMigrationService.cs is an unused secondary code path.

The production content migration is called by SqlMigrationService.TransformGridLayoutValueAsync() and implements the full hierarchy:

Row Config block  ← ConvertMultiSectionTemplateAsync()
  └─ Layout block  ← ConvertRowAsync(), with rowSettings attached
       └─ Area Wrapper block  ← CreateAreaWrapperBlockAsync(), with cellSettings attached carrying cell styles
            └─ Content Element Types (the actual editor content — RTE, media, DTGE, etc.)

Backoffice UX: Overhead Clicks & Mitigations

The 4-level hierarchy approximately doubles the number of editor clicks compared to v8:

Scenario V8 Clicks V17 Clicks Overhead
Add full-width RTE block ~3 ~7 +133%
Add 2-column layout with content ~5 ~11 +120%
Add 3-column with styled background ~7 ~15 +114%

Why this is necessary: Area Wrappers are the ONLY place where v8 cell-level styles (background-color, background-image, padding, margin, CSS classes, AOS animations) are preserved. Without them, all cell styling from v8 is lost. The BlockGridExtensions.BuildStyleAttribute() and BuildHtmlAttributes() methods read settings from Area Wrapper blocks.

Mitigation Strategies:

  1. Content Templates (Lowest Effort, Highest Impact for New Pages) Pre-populate new pages with the Row Config + Layout + Area Wrapper hierarchy already in place. Editors create pages from templates and only need to click into content areas to add/edit content blocks. This eliminates all hierarchy setup clicks for pages created from templates.

  2. Custom "Quick Add" Backoffice Extension (Medium Effort, Highest Impact for Existing Pages) Build a toolbar button offering presets: "Add Full Width Row", "Add Two Column Row", "Add Three Column Row". Each preset auto-inserts the complete Row Config + Layout + Area Wrapper chain in one click. This reduces the workflow from ~7 clicks to ~3 clicks, matching v8 experience.

  3. Auto-Insert Single-Choice Levels (Medium Effort, Targeted Impact) For the 5 datatypes with only 1 Row Config option (Cookie Grid, Footer Grid, Full Width Grid, Homepage Grid, Sp with Nav Left), auto-insert the Row Config when the editor first adds content — skipping the catalogue since there's only one choice. Saves 1 click per interaction on these datatypes.

Practical Recommendation: Start with Content Templates (quick to set up in the Umbraco backoffice, no code required). If editors still find the workflow too cumbersome after launch, build the Quick Add extension as a phase 2 enhancement.


BlockGrid Hierarchy Rules

The v17 BlockGrid uses a four-level nesting model. Every content block placed by an editor passes through this chain:

Row Config (root block, allowAtRoot=true, allowInAreas=false)
  +-- Layout (allowAtRoot=false, allowInAreas=true)
       +-- Area Wrapper (allowAtRoot=false, allowInAreas=true)
            +-- Content Element Types (editors placed here)

Row Config = corresponds to v8 "Template" (page-level section layout). Its areas allow layouts. Layout = corresponds to v8 "Row" (content row within a section). Its areas allow area wrappers. Area Wrapper = one per layout area. Its single inner "content" area allows specific content element types. Content Element Types = shared across all datatypes. Corresponds to v8 grid editors (RTE, media, DTGE types, etc.).

Settings element types (row settings, cell settings, block settings) attach to blocks to carry style/config properties like CSS class, background image, background color, padding, margin, animation attributes.


V8→V17 Settings Mapping: Row, Cell, Control → Block Settings

This section explains exactly how v8 Grid concepts map to v17 BlockGrid concepts, particularly where settings (styles and config) are applied. This is critical for ensuring the renderer (BootstrapGrid.cshtml) reads settings from the correct block level.

V8 Grid Structure

In Umbraco v8, the Grid Editor has three levels that can carry settings:

Template (page section — e.g., "1 column layout", "Left Nav")
  +-- Row (layout — e.g., "FullWidth", "Half", "Thirds")
  |   Settings applied: ROW STYLES + ROW SETTINGS
  |   - Row styles:    background-image, background-color, padding, margin
  |   - Row settings:  class, ID, data-aos (animation), data-aos-offset, data-aos-easing
  |
  +-- Cell (column within the row — the area, e.g., "col-6", "col-4")
  |   Settings applied: CELL STYLES + CELL SETTINGS
  |   - Cell styles:   background-color (per-column color)
  |   - Cell settings: (none in most datatypes)
  |
  +-- Control (the actual widget/editor — e.g., RTE, media, heading)
      Settings applied: NONE (controls have no settings in v8 Grid)

Key V8 Behavior: - The Row wrapper <div> gets row styles/settings as HTML attributes and inline styles - Each Cell (column) <div> gets cell styles as inline styles - Controls have no settings — they are raw content blocks

V17 BlockGrid Mapping

Row Config (= v8 Template)
  Attached settings: NONE (row configs are structural only)

  +-- Layout (= v8 Row)
  |   Attached settings: rowSettings element type
  |   - Carries: class, ID, background-image, background-color,
  |     padding, margin, data-aos, data-aos-offset, data-aos-easing, visible
  |   - BootstrapGrid.cshtml reads: rowBlock.Settings → BuildHtmlAttributes() + BuildStyleAttribute()
  |   - Renders as: outer row wrapper <div> with all row styles/attributes
  |
  +-- Area Wrapper (= v8 Cell/Column)
  |   Attached settings: cellSettings element type
  |   - Carries: background-color (per-column color)
  |   - BootstrapGrid.cshtml reads: areaWrapper.Settings → BuildHtmlAttributes() + BuildStyleAttribute()
  |   - Renders as: inner column <div> with cell background-color
  |
  +-- Content Block (= v8 Control)
      Attached settings: blockSettings element type
      - Carries: same properties as rowSettings + hidden flag
      - NEW in v17: Controls CAN have settings (not possible in v8 Grid)
      - Used for per-block visibility toggle and additional styling

How the Renderer Uses Settings

In BootstrapGrid.cshtml, the rendering chain is:

// 1. ROW LEVEL — reads Layout block's Settings (= v8 Row settings)
var rowSettings = rowBlock.Settings;                    // <-- rowSettings element type
var rowAttrs = rowSettings.BuildHtmlAttributes();       // class, ID, data-aos-*
var rowStyle = rowSettings.BuildStyleAttribute();       // background-image, bg-color, padding, margin
// Renders: <div {rowAttrs} style="{rowStyle}">

// 2. COLUMN LEVEL — reads Area Wrapper block's Settings (= v8 Cell settings)
var areaSettings = areaWrapper.Settings;                // <-- cellSettings element type
var areaAttrs = areaSettings.BuildHtmlAttributes();     // class (if any)
var areaStyle = areaSettings.BuildStyleAttribute();     // background-color
// Renders: <div class="col-lg-{span}" {areaAttrs} style="{areaStyle}">

// 3. CONTENT LEVEL — individual block Settings (= v8 had no equivalent)
// Content blocks render via their own partial views
// blockSettings can control visibility, additional CSS class, etc.

Settings Property Mapping Table

V8 Property Apply To (v8) V17 Settings Type V17 Property Alias CSS/HTML Output
background-image Row style rowSettings setABackgroundImage / backgroundImage style="background-image: url('...')"
background-color (row) Row style rowSettings backgroundColor / background-color style="background-color: #hex"
background-color (cell) Cell style cellSettings backgroundColor / background-color style="background-color: #hex"
padding Row style rowSettings padding (+ top/bottom/left/right) style="padding: ..."
margin Row style rowSettings margin (+ top/bottom/left/right) style="margin: ..."
class Row setting rowSettings class class="user-class"
ID Row setting rowSettings elementId id="user-id"
data-aos Row setting rowSettings animationStyle data-aos="fade-up"
data-aos-offset Row setting rowSettings animationOffset data-aos-offset="200"
data-aos-easing Row setting rowSettings animationEasing data-aos-easing="ease-in"
visible N/A (new) rowSettings / blockSettings visible Controls visibility

Settings Signatures by DataType

Not all datatypes have the same settings properties. The v8 grid configurations differ:

Signature Row Styles Row Settings Cell Styles DataTypes
A (Standard) bgImage, bgColor, padding, margin class bgColor 1055, 1093, 1127, 1151, 1459, 1683, 1709, 1257, 2236
B (Full Animation) A + same class, ID, data-aos, data-aos-offset, data-aos-delay, data-aos-duration, data-aos-easing bgColor 1534 (Animated Grid)
C (Partial Animation) A + same class, ID, data-aos, data-aos-offset, data-aos-easing bgColor 1803 (Standard Page Full Width)
D (Minimal + bgColor) bgImage, bgColor class bgColor 1780 (services Grid)
E (Minimal) bgImage class none 1736 (Full width Grid), 1798 (Sp with Nav Left)

Migration Tool Code Reference

The migration tool creates settings element types in CreateSettingsElementTypesAsync(): - rowSettings: Combines row styles + row settings into one element type - cellSettings: Contains cell styles only (typically just background-color) - blockSettings: Mirrors rowSettings properties + adds hidden/visible flag

All three settings types use dataTypeId in their alias and GUID:

grid_{dataTypeId}_rowsettings
grid_{dataTypeId}_cellsettings
grid_{dataTypeId}_blocksettings

The BuildBlockGridConfigurationAsync() method then attaches these as settingsElementTypeKey on the appropriate block entries in the BlockGrid configuration JSON.


Per-Datatype Visual Plans


DataType 1: Animated Grid (V8 ID: 1534)

V8 Configuration:

Grid DataType: Animated Grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "2 column layout" -> [4 + 8]
+-- Template: (unnamed)         -> [8 + 4] (allowAll)
|
+-- Row: "FullWidth" -> 1 area
|   +-- Area 0 (12 cols): 42 specific editors
|       rte, media, quote, headingItem, slider, faqWithSchema, qrCodeItem, ...
|
+-- Row: "Half" -> 2 areas
|   +-- Area 0 (6 cols): allowAll
|   +-- Area 1 (6 cols): allowAll
|
+-- Row: "Thirds" -> 3 areas
    +-- Area 0 (4 cols): allowAll
    +-- Area 1 (4 cols): allowAll
    +-- Area 2 (4 cols): allowAll

Settings (row): class, ID, data-aos, data-aos-offset, data-aos-easing
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Animated Grid
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1534_rowconfig_1ColumnLayout)  -> allows all 3 layouts
|   +-- "2 Column Layout" (grid_1534_rowconfig_2ColumnLayout)  -> allows all 3 layouts
|   +-- "(unnamed)" (grid_1534_rowconfig_(unnamed))            -> allows all 3 layouts
|
+-- [Layouts]
|   +-- "Full Width" (grid_1534_layout_fullwidth) -> 1 area
|   |   +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1534_areawrapper_fullwidth_0)
|   +-- "Half" (grid_1534_layout_half) -> 2 areas
|   |   +-- Area 0 (col-6):  -> "Half / Area 0" (grid_1534_areawrapper_half_0)
|   |   +-- Area 1 (col-6):  -> "Half / Area 1" (grid_1534_areawrapper_half_1)
|   +-- "Thirds" (grid_1534_layout_thirds) -> 3 areas
|       +-- Area 0 (col-4):  -> "Thirds / Area 0" (grid_1534_areawrapper_thirds_0)
|       +-- Area 1 (col-4):  -> "Thirds / Area 1" (grid_1534_areawrapper_thirds_1)
|       +-- Area 2 (col-4):  -> "Thirds / Area 2" (grid_1534_areawrapper_thirds_2)
|
+-- [Area Wrappers]
|   +-- "Full Width / Area 0" (grid_1534_areawrapper_fullwidth_0) -> allows: 42 specific content types
|   +-- "Half / Area 0" (grid_1534_areawrapper_half_0)            -> allows: all 50 content types (allowAll)
|   +-- "Half / Area 1" (grid_1534_areawrapper_half_1)            -> allows: all 50 content types (allowAll)
|   +-- "Thirds / Area 0" (grid_1534_areawrapper_thirds_0)        -> allows: all 50 content types (allowAll)
|   +-- "Thirds / Area 1" (grid_1534_areawrapper_thirds_1)        -> allows: all 50 content types (allowAll)
|   +-- "Thirds / Area 2" (grid_1534_areawrapper_thirds_2)        -> allows: all 50 content types (allowAll)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1534_rowsettings)     (props: class, ID, data-aos, data-aos-offset,
|   |                                               data-aos-easing, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1534_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1534_blocksettings)  (props: mirrors row settings + hidden)
|
+-- [Shared Content Types]: ~50 types (rte, media, quote, embed, headingItem,
    stripedList, slider, faqWithSchema, TestimonialCompleteGridEditor, ...)

Folder Organization:

GridEditors/
+-- Animated Grid/
    +-- Layouts/       -> FullWidth, Half, Thirds
    +-- Area Wrappers/ -> 6 wrappers
    +-- Row Configs/   -> 1ColumnLayout, 2ColumnLayout, (unnamed)
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 2: Article Controls (V8 ID: 1055) -- MISSING FROM V17

V8 Configuration:

Grid DataType: Article Controls - article Grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "Left Nav"        -> [4 + 8]
+-- Template: "Right Nav"       -> [8 + 4] (allowAll)
|
+-- Row: "Full Width" -> 1 area
|   +-- Area 0 (12 cols): 27 specific editors
|       rte, media, embed, quote, headingItem, stripedList, NumberedList, ...
|
+-- Row: "Half" -> 2 areas
|   +-- Area 0 (6 cols): 18 specific editors (no videoFullWidth, no umbraco_form_picker)
|   +-- Area 1 (6 cols): 19 specific editors (has videoFullWidth + umbraco_form_picker)
|
+-- Row: "Thirds" -> 3 areas
    +-- Area 0 (4 cols): 12 specific editors (no quote)
    +-- Area 1 (4 cols): 13 specific editors (has quote)
    +-- Area 2 (4 cols): 13 specific editors (has quote)

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
Used by: articleControls (12 content nodes)

V17 BlockGrid (After Migration) -- EXPECTED but MISSING:

!! Article Controls (DT 1055) is MISSING from v17 BlockGrid configs !!
!! 12 content nodes use this datatype - this is a migration tool bug !!

Expected structure would be:
BlockGrid DataType: Article Controls
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1055_rowconfig_1ColumnLayout)
|   +-- "Left Nav" (grid_1055_rowconfig_leftNav)
|   +-- "Right Nav" (grid_1055_rowconfig_rightNav)
|
+-- [Layouts]
|   +-- "Full Width" (grid_1055_layout_fullwidth) -> 1 area (col-12)
|   +-- "Half" (grid_1055_layout_half)            -> 2 areas (col-6 + col-6)
|   +-- "Thirds" (grid_1055_layout_thirds)        -> 3 areas (col-4 + col-4 + col-4)
|
+-- [Area Wrappers] -> 6 wrappers
+-- [Settings]      -> "Row Settings", "Cell Settings", "Block Settings"
+-- [Content Types] -> ~27 types

ACTION REQUIRED: Investigate why DT 1055 BlockGrid configuration is absent despite having content in 12 nodes.


DataType 3: articleGrid (V8 ID: 1683)

V8 Configuration:

Grid DataType: articleGrid (12 columns)
+-- Template: "2 column layout" -> [8 + 4]
|
+-- Row: "Full" -> 1 area
|   +-- Area 0 (12 cols): 31 specific editors
|       rte, media, quote, headingItem, stripedList, linkListControl, ...
|
+-- Row: "half" -> 2 areas
|   +-- Area 0 (6 cols): allowAll
|   +-- Area 1 (6 cols): allowAll
|
+-- Row: "Thirds" -> 3 areas
    +-- Area 0 (4 cols): allowAll
    +-- Area 1 (4 cols): allowAll
    +-- Area 2 (4 cols): allowAll

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: articleGrid
+-- [Root Allowed - Row Configs]
|   +-- "2 Column Layout" (grid_1683_rowconfig_2ColumnLayout) -> allows all 3 layouts
|
+-- [Layouts]
|   +-- "Full" (grid_1683_layout_full) -> 1 area
|   |   +-- Area 0 (col-12): -> "Full / Area 0" (grid_1683_areawrapper_full_0)
|   +-- "Half" (grid_1683_layout_half) -> 2 areas
|   |   +-- Area 0 (col-6):  -> "Half / Area 0" (grid_1683_areawrapper_half_0)
|   |   +-- Area 1 (col-6):  -> "Half / Area 1" (grid_1683_areawrapper_half_1)
|   +-- "Thirds" (grid_1683_layout_thirds) -> 3 areas
|       +-- Area 0 (col-4):  -> "Thirds / Area 0" (grid_1683_areawrapper_thirds_0)
|       +-- Area 1 (col-4):  -> "Thirds / Area 1" (grid_1683_areawrapper_thirds_1)
|       +-- Area 2 (col-4):  -> "Thirds / Area 2" (grid_1683_areawrapper_thirds_2)
|
+-- [Area Wrappers]
|   +-- "Full / Area 0" (grid_1683_areawrapper_full_0)      -> allows: 31 specific content types
|   +-- "Half / Area 0" (grid_1683_areawrapper_half_0)      -> allows: all 35 content types (allowAll)
|   +-- "Half / Area 1" (grid_1683_areawrapper_half_1)      -> allows: all 35 content types (allowAll)
|   +-- "Thirds / Area 0" (grid_1683_areawrapper_thirds_0)  -> allows: all 35 content types (allowAll)
|   +-- "Thirds / Area 1" (grid_1683_areawrapper_thirds_1)  -> allows: all 35 content types (allowAll)
|   +-- "Thirds / Area 2" (grid_1683_areawrapper_thirds_2)  -> allows: all 35 content types (allowAll)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1683_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1683_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1683_blocksettings)
|
+-- [Shared Content Types]: ~35 types

Folder Organization:

GridEditors/
+-- articleGrid/
    +-- Layouts/       -> Full, Half, Thirds
    +-- Area Wrappers/ -> 6 wrappers
    +-- Row Configs/   -> 2ColumnLayout
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 4: Contact us Grid (V8 ID: 1093)

V8 Configuration:

Grid DataType: Contact us Grid (12 columns)
+-- Template: "Full width"  -> [12]
+-- Template: "Left Nav"    -> [4 + 8]
+-- Template: "Right Nav"   -> [8 + 4] (allowAll)
|
+-- Row: "Full Width" -> 1 area
|   +-- Area 0 (12 cols): 8 specific editors
|       media, embed, barChart, faqControls, GlobalAddress,
|       LargeGoogleMap, LargeLeafLetMap, headingItem
|
+-- Row: "Two & Two" -> 2 areas
    +-- Area 0 (6 cols): 1 editor (GlobalAddressCompleteGridEditor)
    +-- Area 1 (6 cols): 1 editor (umbraco_form_picker)

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Contact us Grid
+-- [Root Allowed - Row Configs]
|   +-- "Full Width" (grid_1093_rowconfig_fullWidth) -> allows all 2 layouts
|   +-- "Left Nav" (grid_1093_rowconfig_leftNav)     -> allows all 2 layouts
|   +-- "Right Nav" (grid_1093_rowconfig_rightNav)   -> allows all 2 layouts
|
+-- [Layouts]
|   +-- "Full Width" (grid_1093_layout_fullwidth) -> 1 area
|   |   +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1093_areawrapper_fullwidth_0)
|   +-- "Two & Two" (grid_1093_layout_twotwo) -> 2 areas
|       +-- Area 0 (col-6):  -> "Two & Two / Area 0" (grid_1093_areawrapper_twotwo_0)
|       +-- Area 1 (col-6):  -> "Two & Two / Area 1" (grid_1093_areawrapper_twotwo_1)
|
+-- [Area Wrappers]
|   +-- "Full Width / Area 0" (grid_1093_areawrapper_fullwidth_0) -> allows: 8 content types
|   +-- "Two & Two / Area 0" (grid_1093_areawrapper_twotwo_0)    -> allows: 1 content type (GlobalAddress)
|   +-- "Two & Two / Area 1" (grid_1093_areawrapper_twotwo_1)    -> allows: 1 content type (umbraco_form_picker)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1093_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1093_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1093_blocksettings)
|
+-- [Shared Content Types]: ~14 types

Folder Organization:

GridEditors/
+-- Contact us Grid/
    +-- Layouts/       -> FullWidth, Two & Two
    +-- Area Wrappers/ -> 3 wrappers
    +-- Row Configs/   -> fullWidth, leftNav, rightNav
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


V8 Configuration:

Grid DataType: Cookie Grid (12 columns)
+-- Template: "1 column layout" -> [12]
|
+-- Row: "Full" -> 1 area
|   +-- Area 0 (12 cols): allowAll
|
+-- Row: "Half" -> 2 areas
|   +-- Area 0 (6 cols): allowAll
|   +-- Area 1 (6 cols): allowAll
|
+-- Row: "Thirds" -> 3 areas
|   +-- Area 0 (4 cols): allowAll
|   +-- Area 1 (4 cols): allowAll
|   +-- Area 2 (4 cols): allowAll
|
+-- Row: "leftNav" -> 2 areas
    +-- Area 0 (4 cols): allowAll
    +-- Area 1 (8 cols): 3 editors (headline, rte, macro)

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Cookie Grid
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1709_rowconfig_1ColumnLayout) -> allows all 4 layouts
|
+-- [Layouts]
|   +-- "Full" (grid_1709_layout_full) -> 1 area
|   |   +-- Area 0 (col-12): -> "Full / Area 0" (grid_1709_areawrapper_full_0)
|   +-- "Half" (grid_1709_layout_half) -> 2 areas
|   |   +-- Area 0 (col-6):  -> "Half / Area 0" (grid_1709_areawrapper_half_0)
|   |   +-- Area 1 (col-6):  -> "Half / Area 1" (grid_1709_areawrapper_half_1)
|   +-- "Thirds" (grid_1709_layout_thirds) -> 3 areas
|   |   +-- Area 0 (col-4):  -> "Thirds / Area 0" (grid_1709_areawrapper_thirds_0)
|   |   +-- Area 1 (col-4):  -> "Thirds / Area 1" (grid_1709_areawrapper_thirds_1)
|   |   +-- Area 2 (col-4):  -> "Thirds / Area 2" (grid_1709_areawrapper_thirds_2)
|   +-- "Left Nav" (grid_1709_layout_leftnav) -> 2 areas
|       +-- Area 0 (col-4):  -> "Left Nav / Area 0" (grid_1709_areawrapper_leftnav_0)
|       +-- Area 1 (col-8):  -> "Left Nav / Area 1" (grid_1709_areawrapper_leftnav_1)
|
+-- [Area Wrappers]
|   +-- "Full / Area 0" (grid_1709_areawrapper_full_0)          -> allows: all 8 content types (allowAll)
|   +-- "Half / Area 0" (grid_1709_areawrapper_half_0)          -> allows: all 8 content types (allowAll)
|   +-- "Half / Area 1" (grid_1709_areawrapper_half_1)          -> allows: all 8 content types (allowAll)
|   +-- "Thirds / Area 0" (grid_1709_areawrapper_thirds_0)      -> allows: all 8 content types (allowAll)
|   +-- "Thirds / Area 1" (grid_1709_areawrapper_thirds_1)      -> allows: all 8 content types (allowAll)
|   +-- "Thirds / Area 2" (grid_1709_areawrapper_thirds_2)      -> allows: all 8 content types (allowAll)
|   +-- "Left Nav / Area 0" (grid_1709_areawrapper_leftnav_0)   -> allows: all 8 content types (allowAll)
|   +-- "Left Nav / Area 1" (grid_1709_areawrapper_leftnav_1)   -> allows: 3 content types (headline, rte, macro)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1709_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1709_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1709_blocksettings)
|
+-- [Shared Content Types]: ~8 types

Folder Organization:

GridEditors/
+-- Cookie Grid/
    +-- Layouts/       -> Full, Half, Thirds, LeftNav
    +-- Area Wrappers/ -> 8 wrappers
    +-- Row Configs/   -> 1ColumnLayout
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


V8 Configuration:

Grid DataType: Footer Grid (12 columns)
+-- Template: "FullWidth" -> [12]
|
+-- Row: "FullWidth" -> 1 area
|   +-- Area 0 (12 cols): 20 specific editors
|       rte, media, embed, quote, headingItem, stripedList, linkListControl, ...
|
+-- Row: "Third" -> 3 areas
|   +-- Area 0 (4 cols): 10 editors (rte, media, quote, headingItem, LargeLeafLetMap, ...)
|   +-- Area 1 (4 cols): 10 editors (rte, media, quote, headingItem, CTA, ...)
|   +-- Area 2 (4 cols): 10 editors (rte, media, quote, headingItem, CTA, ...)
|
+-- Row: "six Five One" -> 3 areas
|   +-- Area 0 (6 cols): allowAll
|   +-- Area 1 (5 cols): 12 editors (rte, media, embed, headingItem, ...)
|   +-- Area 2 (1 col):  allowAll
|
+-- Row: "nineThree" -> 2 areas
|   +-- Area 0 (9 cols): allowAll
|   +-- Area 1 (3 cols): allowAll
|
+-- Row: "four five three" -> 3 areas
|   +-- Area 0 (5 cols): allowAll
|   +-- Area 1 (4 cols): allowAll
|   +-- Area 2 (3 cols): allowAll
|
+-- Row: "Sixths" -> 6 areas
    +-- Area 0-5 (2 cols each): all allowAll

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Footer Grid
+-- [Root Allowed - Row Configs]
|   +-- "Full Width" (grid_1127_rowconfig_fullwidth) -> allows all 6 layouts
|
+-- [Layouts]
|   +-- "Full Width" (grid_1127_layout_fullwidth)           -> 1 area (col-12)
|   +-- "Third" (grid_1127_layout_third)                    -> 3 areas (col-4 + col-4 + col-4)
|   +-- "Six Five One" (grid_1127_layout_sixfiveone)        -> 3 areas (col-6 + col-5 + col-1)
|   +-- "Nine Three" (grid_1127_layout_ninethree)           -> 2 areas (col-9 + col-3)
|   +-- "Four Five Three" (grid_1127_layout_fourfivethree)  -> 3 areas (col-5 + col-4 + col-3)
|   +-- "Sixths" (grid_1127_layout_sixths)                  -> 6 areas (col-2 x 6)
|
+-- [Area Wrappers]
|   +-- "Full Width / Area 0" (grid_1127_areawrapper_fullwidth_0)           -> allows: 20 content types
|   +-- "Third / Area 0" (grid_1127_areawrapper_third_0)                    -> allows: 10 content types
|   +-- "Third / Area 1" (grid_1127_areawrapper_third_1)                    -> allows: 10 content types
|   +-- "Third / Area 2" (grid_1127_areawrapper_third_2)                    -> allows: 10 content types
|   +-- "Six Five One / Area 0" (grid_1127_areawrapper_sixfiveone_0)        -> allows: all 31 (allowAll)
|   +-- "Six Five One / Area 1" (grid_1127_areawrapper_sixfiveone_1)        -> allows: 12 content types
|   +-- "Six Five One / Area 2" (grid_1127_areawrapper_sixfiveone_2)        -> allows: all 31 (allowAll)
|   +-- "Nine Three / Area 0" (grid_1127_areawrapper_ninethree_0)           -> allows: all 31 (allowAll)
|   +-- "Nine Three / Area 1" (grid_1127_areawrapper_ninethree_1)           -> allows: all 31 (allowAll)
|   +-- "Four Five Three / Area 0" (grid_1127_areawrapper_fourfivethree_0)  -> allows: all 31 (allowAll)
|   +-- "Four Five Three / Area 1" (grid_1127_areawrapper_fourfivethree_1)  -> allows: all 31 (allowAll)
|   +-- "Four Five Three / Area 2" (grid_1127_areawrapper_fourfivethree_2)  -> allows: all 31 (allowAll)
|   +-- "Sixths / Area 0" (grid_1127_areawrapper_sixths_0)                  -> allows: all 31 (allowAll)
|   +-- "Sixths / Area 1" (grid_1127_areawrapper_sixths_1)                  -> allows: all 31 (allowAll)
|   +-- "Sixths / Area 2" (grid_1127_areawrapper_sixths_2)                  -> allows: all 31 (allowAll)
|   +-- "Sixths / Area 3" (grid_1127_areawrapper_sixths_3)                  -> allows: all 31 (allowAll)
|   +-- "Sixths / Area 4" (grid_1127_areawrapper_sixths_4)                  -> allows: all 31 (allowAll)
|   +-- "Sixths / Area 5" (grid_1127_areawrapper_sixths_5)                  -> allows: all 31 (allowAll)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1127_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1127_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1127_blocksettings)
|
+-- [Shared Content Types]: ~31 types

Folder Organization:

GridEditors/
+-- Footer Grid/
    +-- Layouts/       -> FullWidth, Third, sixFiveOne, nineThree, fourFiveThree, Sixths
    +-- Area Wrappers/ -> 18 wrappers
    +-- Row Configs/   -> fullwidth
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 7: Full width Grid (V8 ID: 1736)

V8 Configuration:

Grid DataType: Full width Grid (12 columns)
+-- Template: "1 column layout" -> [12]
|
+-- Row: "Full Width" -> 1 area
|   +-- Area 0 (12 cols): 6 editors (rte, media, embed, quote, headingItem, psFancyVideo)
|
+-- Row: "Half" -> 2 areas
|   +-- Area 0 (6 cols): 6 editors (rte, media, embed, quote, headingItem, psStyledHeading)
|   +-- Area 1 (6 cols): 5 editors (rte, media, embed, quote, psStyledHeading)
|
+-- Row: "Thirds" -> 3 areas
    +-- Area 0 (4 cols): 6 editors (rte, media, embed, quote, headingItem, footerLinks)
    +-- Area 1 (4 cols): 6 editors (rte, media, embed, quote, headingItem, footerLinks)
    +-- Area 2 (4 cols): 6 editors (rte, media, embed, quote, headingItem, footerLinks)

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Full width Grid
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1736_rowconfig_1ColumnLayout) -> allows all 3 layouts
|
+-- [Layouts]
|   +-- "Full Width" (grid_1736_layout_fullwidth) -> 1 area
|   |   +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1736_areawrapper_fullwidth_0)
|   +-- "Half" (grid_1736_layout_half) -> 2 areas
|   |   +-- Area 0 (col-6):  -> "Half / Area 0" (grid_1736_areawrapper_half_0)
|   |   +-- Area 1 (col-6):  -> "Half / Area 1" (grid_1736_areawrapper_half_1)
|   +-- "Thirds" (grid_1736_layout_thirds) -> 3 areas
|       +-- Area 0 (col-4):  -> "Thirds / Area 0" (grid_1736_areawrapper_thirds_0)
|       +-- Area 1 (col-4):  -> "Thirds / Area 1" (grid_1736_areawrapper_thirds_1)
|       +-- Area 2 (col-4):  -> "Thirds / Area 2" (grid_1736_areawrapper_thirds_2)
|
+-- [Area Wrappers]
|   +-- "Full Width / Area 0" (grid_1736_areawrapper_fullwidth_0) -> allows: 6 content types
|   +-- "Half / Area 0" (grid_1736_areawrapper_half_0)            -> allows: 6 content types
|   +-- "Half / Area 1" (grid_1736_areawrapper_half_1)            -> allows: 5 content types (no headingItem)
|   +-- "Thirds / Area 0" (grid_1736_areawrapper_thirds_0)        -> allows: 6 content types
|   +-- "Thirds / Area 1" (grid_1736_areawrapper_thirds_1)        -> allows: 6 content types
|   +-- "Thirds / Area 2" (grid_1736_areawrapper_thirds_2)        -> allows: 6 content types
|
+-- [Settings]
|   +-- "Row Settings" (grid_1736_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1736_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1736_blocksettings)
|
+-- [Shared Content Types]: ~8 types

Folder Organization:

GridEditors/
+-- Full width Grid/
    +-- Layouts/       -> Full Width, Half, Thirds
    +-- Area Wrappers/ -> 6 wrappers
    +-- Row Configs/   -> 1ColumnLayout
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 8: Full Width Grid Bottom Controls (V8 ID: 1459)

V8 Configuration:

Grid DataType: Full Width Grid Bottom Controls (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "2 column layout" -> [4 + 8]
|
+-- Row: "FullWidth" -> 1 area
|   +-- Area 0 (12 cols): 1 editor (rte only)
|
+-- Row: "LeftNav" -> 2 areas
    +-- Area 0 (4 cols): 1 editor (rte)
    +-- Area 1 (8 cols): 1 editor (rte)

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Full Width Grid Bottom Controls
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1459_rowconfig_1ColumnLayout) -> allows all 2 layouts
|   +-- "2 Column Layout" (grid_1459_rowconfig_2ColumnLayout) -> allows all 2 layouts
|
+-- [Layouts]
|   +-- "Full Width" (grid_1459_layout_fullwidth) -> 1 area
|   |   +-- Area 0 (col-12): -> "Full Width / Area 0" (grid_1459_areawrapper_fullwidth_0)
|   +-- "Left Nav" (grid_1459_layout_leftnav) -> 2 areas
|       +-- Area 0 (col-4):  -> "Left Nav / Area 0" (grid_1459_areawrapper_leftnav_0)
|       +-- Area 1 (col-8):  -> "Left Nav / Area 1" (grid_1459_areawrapper_leftnav_1)
|
+-- [Area Wrappers]
|   +-- "Full Width / Area 0" (grid_1459_areawrapper_fullwidth_0) -> allows: 1 content type (rte)
|   +-- "Left Nav / Area 0" (grid_1459_areawrapper_leftnav_0)     -> allows: 1 content type (rte)
|   +-- "Left Nav / Area 1" (grid_1459_areawrapper_leftnav_1)     -> allows: 1 content type (rte)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1459_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1459_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1459_blocksettings)
|
+-- [Shared Content Types]: 1 type (rte)

Folder Organization:

GridEditors/
+-- Full Width Grid Bottom Controls/
    +-- Layouts/       -> FullWidth, LeftNav
    +-- Area Wrappers/ -> 3 wrappers
    +-- Row Configs/   -> 1ColumnLayout, 2ColumnLayout
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 9: Homepage Grid (V8 ID: 1151)

V8 Configuration:

Grid DataType: Homepage Grid (12 columns)
+-- Template: "1 column layout" -> [12]
|
+-- Row: "fullWidth" -> 1 area
|   +-- Area 0 (12 cols): 38 specific editors
|       rte, media, quote, spotlightControls, headingItem, slider, HeroBar,
|       calculatorsGridEditor, NewsCompleteGridEditor, QuickLinksDropdown, ...
|
+-- Row: "Half" -> 2 areas
|   +-- Area 0 (6 cols): 23 editors (rte, media, embed, quote, spotlightControls, ...)
|   +-- Area 1 (6 cols): 22 editors (no barChart vs area 0)
|
+-- Row: "thirds" -> 3 areas
|   +-- Area 0 (4 cols): 14 editors
|   +-- Area 1 (4 cols): 14 editors
|   +-- Area 2 (4 cols): 15 editors (+instagramControls)
|
+-- Row: "two thirds" -> 2 areas
    +-- Area 0 (8 cols): allowAll
    +-- Area 1 (4 cols): allowAll

Settings (row): class, ID, data-aos, data-aos-offset, data-aos-delay,
                data-aos-duration, data-aos-easing
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Homepage Grid
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1151_rowconfig_1ColumnLayout) -> allows all 4 layouts
|
+-- [Layouts]
|   +-- "Full Width" (grid_1151_layout_fullwidth)    -> 1 area (col-12)
|   +-- "Half" (grid_1151_layout_half)               -> 2 areas (col-6 + col-6)
|   +-- "Thirds" (grid_1151_layout_thirds)           -> 3 areas (col-4 + col-4 + col-4)
|   +-- "Two Thirds" (grid_1151_layout_twothirds)    -> 2 areas (col-8 + col-4)
|
+-- [Area Wrappers]
|   +-- "Full Width / Area 0" (grid_1151_areawrapper_fullwidth_0)    -> allows: 38 content types
|   +-- "Half / Area 0" (grid_1151_areawrapper_half_0)               -> allows: 23 content types
|   +-- "Half / Area 1" (grid_1151_areawrapper_half_1)               -> allows: 22 content types
|   +-- "Thirds / Area 0" (grid_1151_areawrapper_thirds_0)           -> allows: 14 content types
|   +-- "Thirds / Area 1" (grid_1151_areawrapper_thirds_1)           -> allows: 14 content types
|   +-- "Thirds / Area 2" (grid_1151_areawrapper_thirds_2)           -> allows: 15 content types
|   +-- "Two Thirds / Area 0" (grid_1151_areawrapper_twothirds_0)    -> allows: all 61 (allowAll)
|   +-- "Two Thirds / Area 1" (grid_1151_areawrapper_twothirds_1)    -> allows: all 61 (allowAll)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1151_rowsettings)     (props: class, ID, data-aos, data-aos-offset,
|   |                                               data-aos-delay, data-aos-duration, data-aos-easing,
|   |                                               background-image, background-color, padding, margin, visible)
|   +-- "Cell Settings" (grid_1151_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1151_blocksettings)
|
+-- [Shared Content Types]: ~61 types

Folder Organization:

GridEditors/
+-- Homepage Grid/
    +-- Layouts/       -> fullWidth, Half, thirds, two thirds
    +-- Area Wrappers/ -> 8 wrappers
    +-- Row Configs/   -> 1ColumnLayout
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 10: services Grid (V8 ID: 1780)

V8 Configuration:

Grid DataType: services Grid (12 columns)
+-- Template: (unnamed) -> [4 + 8]
+-- Template: (unnamed) -> [12] (allowAll)
|
+-- Row: "Full" -> 1 area
|   +-- Area 0 (12 cols): 13 editors
|       rte, media, embed, quote, headingItem, psStyledHeading, imageList,
|       stripedList, donutChart, barChart, imageGalleryControl, psFancyVideo,
|       Services List
|
+-- Row: "Side Bar" -> 1 area
    +-- Area 0 (12 cols): 3 editors (newsWidget, Testimonial, SubMenu)

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: services Grid
+-- [Root Allowed - Row Configs]
|   +-- "(unnamed 1)" (grid_1780_rowconfig_(unnamed_1))  -> allows both layouts
|   +-- "(unnamed 2)" (grid_1780_rowconfig_(unnamed_2))  -> allows both layouts
|
+-- [Layouts]
|   +-- "Full" (grid_1780_layout_full)        -> 1 area (col-12)
|   +-- "Side Bar" (grid_1780_layout_sidebar) -> 1 area (col-12)
|
+-- [Area Wrappers]
|   +-- "Full / Area 0" (grid_1780_areawrapper_full_0)        -> allows: 13 content types
|   +-- "Side Bar / Area 0" (grid_1780_areawrapper_sidebar_0) -> allows: 3 content types
|
+-- [Settings]
|   +-- "Row Settings" (grid_1780_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1780_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1780_blocksettings)
|
+-- [Shared Content Types]: ~16 types

Note: Both templates are unnamed, which produces row configs with empty display names in the v17 backoffice.

Folder Organization:

GridEditors/
+-- services Grid/
    +-- Layouts/       -> Full, Side Bar
    +-- Area Wrappers/ -> 2 wrappers
    +-- Row Configs/   -> (unnamed), (unnamed)
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 11: Sp with Nav Left Grid (V8 ID: 1798)

V8 Configuration:

Grid DataType: Sp with Nav Left Grid (12 columns)
+-- Template: (unnamed) -> [12] (allowAll)
|
+-- Row: "Full Width" (name: Full) -> 1 area
|   +-- Area 0 (12 cols): 14 editors
|       SubMenu, subMenu, rte, media, embed, quote, headingItem,
|       psFancyVideo, NewsWidget, staffMembersControl, Testimonials,
|       TestimonialControl, testimonialControl, newsWidget
|
+-- Row: "half" (name: Half) -> 2 areas
|   +-- Area 0 (6 cols): 10 editors
|   +-- Area 1 (6 cols): 8 editors (no quote, no psStyledHeading)
|
+-- Row: "Thirds" -> 3 areas
    +-- Area 0 (4 cols): 8 editors
    +-- Area 1 (4 cols): 8 editors
    +-- Area 2 (4 cols): 8 editors

Settings (row): class
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Sp with Nav Left Grid
+-- [Root Allowed - Row Configs]
|   +-- "(unnamed)" (grid_1798_rowconfig_(unnamed)) -> allows all 3 layouts
|
+-- [Layouts]
|   +-- "Full" (grid_1798_layout_full)     -> 1 area (col-12)
|   +-- "Half" (grid_1798_layout_half)     -> 2 areas (col-6 + col-6)
|   +-- "Thirds" (grid_1798_layout_thirds) -> 3 areas (col-4 + col-4 + col-4)
|
+-- [Area Wrappers]
|   +-- "Full / Area 0" (grid_1798_areawrapper_full_0)      -> allows: 14 content types
|   +-- "Half / Area 0" (grid_1798_areawrapper_half_0)      -> allows: 10 content types
|   +-- "Half / Area 1" (grid_1798_areawrapper_half_1)      -> allows: 8 content types
|   +-- "Thirds / Area 0" (grid_1798_areawrapper_thirds_0)  -> allows: 8 content types
|   +-- "Thirds / Area 1" (grid_1798_areawrapper_thirds_1)  -> allows: 8 content types
|   +-- "Thirds / Area 2" (grid_1798_areawrapper_thirds_2)  -> allows: 8 content types
|
+-- [Settings]
|   +-- "Row Settings" (grid_1798_rowsettings)     (props: class, background-image, background-color,
|   |                                               padding, margin, visible)
|   +-- "Cell Settings" (grid_1798_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1798_blocksettings)
|
+-- [Shared Content Types]: ~12 types

Note: Template is unnamed, producing a row config with empty display name.

Folder Organization:

GridEditors/
+-- Sp with Nav Left Grid/
    +-- Layouts/       -> Full Width, half, Thirds
    +-- Area Wrappers/ -> 6 wrappers
    +-- Row Configs/   -> (unnamed)
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 12: Standard Page Full Width (V8 ID: 1803)

V8 Configuration:

Grid DataType: Standard Page Full Width - grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "Left Column"     -> [4 + 8] (allowAll for 8-col)
+-- Template: "right column"    -> [8 + 4] (allowAll for 8-col)
|
+-- Row: "Full" -> 1 area
|   +-- Area 0 (12 cols): 28 specific editors
|       rte, media, embed, quote, headingItem, styledListControl, barChart, ...
|
+-- Row: "Half" -> 2 areas
|   +-- Area 0 (6 cols): 25 editors
|   +-- Area 1 (6 cols): 26 editors (+careerWidgetControl)
|
+-- Row: "Thirds" -> 3 areas
|   +-- Area 0 (4 cols): 17 editors
|   +-- Area 1 (4 cols): 22 editors (+staffMembersControl, testimonialControl, ...)
|   +-- Area 2 (4 cols): 23 editors (+newsWidget, umbraco_form_picker, ...)
|
+-- Row: "sideBar" -> 1 area
|   +-- Area 0 (12 cols): 3 editors (SubMenu, Testimonial, NewsCompleteGridEditor)
|
+-- Row: "Career Full" -> 1 area
|   +-- Area 0 (12 cols): 1 editor (careerWidgetListControl)
|
+-- Row: "Career Half" -> 2 areas
|   +-- Area 0 (6 cols): 1 editor (careerWidgetControl)
|   +-- Area 1 (6 cols): 1 editor (careerWidgetControl)
|
+-- Row: "Two Five Five" -> 3 areas
|   +-- Area 0 (2 cols): allowAll
|   +-- Area 1 (5 cols): allowAll
|   +-- Area 2 (5 cols): allowAll
|
+-- Row: "CookieConsent" -> 1 area
    +-- Area 0 (12 cols): 1 editor (macro)

Settings (row): class
Styles (row): background-image, background-color (no padding/margin)
Styles (cell): background-color

V17 BlockGrid (After Migration):

BlockGrid DataType: Standard Page Full Width
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1803_rowconfig_1ColumnLayout) -> allows all 8 layouts
|   +-- "Left Column" (grid_1803_rowconfig_leftColumn)        -> allows all 8 layouts
|   +-- "Right Column" (grid_1803_rowconfig_rightColumn)      -> allows all 8 layouts
|
+-- [Layouts]
|   +-- "Full" (grid_1803_layout_full)                    -> 1 area (col-12)
|   +-- "Half" (grid_1803_layout_half)                    -> 2 areas (col-6 + col-6)
|   +-- "Thirds" (grid_1803_layout_thirds)                -> 3 areas (col-4 + col-4 + col-4)
|   +-- "Side Bar" (grid_1803_layout_sidebar)             -> 1 area (col-12)
|   +-- "Career Full" (grid_1803_layout_careerfull)       -> 1 area (col-12)
|   +-- "Career Half" (grid_1803_layout_careerhalf)       -> 2 areas (col-6 + col-6)
|   +-- "Two Five Five" (grid_1803_layout_twofivefive)    -> 3 areas (col-2 + col-5 + col-5)
|   +-- "Cookie Consent" (grid_1803_layout_cookieconsent) -> 1 area (col-12)
|
+-- [Area Wrappers]
|   +-- "Full / Area 0" (grid_1803_areawrapper_full_0)                    -> allows: 28 content types
|   +-- "Half / Area 0" (grid_1803_areawrapper_half_0)                    -> allows: 25 content types
|   +-- "Half / Area 1" (grid_1803_areawrapper_half_1)                    -> allows: 26 content types
|   +-- "Thirds / Area 0" (grid_1803_areawrapper_thirds_0)                -> allows: 17 content types
|   +-- "Thirds / Area 1" (grid_1803_areawrapper_thirds_1)                -> allows: 22 content types
|   +-- "Thirds / Area 2" (grid_1803_areawrapper_thirds_2)                -> allows: 23 content types
|   +-- "Side Bar / Area 0" (grid_1803_areawrapper_sidebar_0)             -> allows: 3 content types
|   +-- "Career Full / Area 0" (grid_1803_areawrapper_careerfull_0)       -> allows: 1 content type
|   +-- "Career Half / Area 0" (grid_1803_areawrapper_careerhalf_0)       -> allows: 1 content type
|   +-- "Career Half / Area 1" (grid_1803_areawrapper_careerhalf_1)       -> allows: 1 content type
|   +-- "Two Five Five / Area 0" (grid_1803_areawrapper_twofivefive_0)    -> allows: all 41 (allowAll)
|   +-- "Two Five Five / Area 1" (grid_1803_areawrapper_twofivefive_1)    -> allows: all 41 (allowAll)
|   +-- "Two Five Five / Area 2" (grid_1803_areawrapper_twofivefive_2)    -> allows: all 41 (allowAll)
|   +-- "Cookie Consent / Area 0" (grid_1803_areawrapper_cookieconsent_0) -> allows: 1 content type (macro)
|
+-- [Settings]
|   +-- "Row Settings" (grid_1803_rowsettings)     (props: class, background-image, background-color, visible)
|   +-- "Cell Settings" (grid_1803_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1803_blocksettings)
|
+-- [Shared Content Types]: ~41 types

Note: This DT uses colorpicker (not ColorPickerU8) for background-color and does NOT have padding/margin styles. Settings signature differs from the standard group (Signature D).

Folder Organization:

GridEditors/
+-- Standard Page Full Width/
    +-- Layouts/       -> Full, Half, Thirds, sideBar, Career Full, Career Half,
    |                     Two Five Five, CookieConsent
    +-- Area Wrappers/ -> 14 wrappers
    +-- Row Configs/   -> 1ColumnLayout, leftColumn, rightColumn
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 13: Standard Page Grid (V8 ID: 1257)

This is the most complex datatype with 17 row layouts and 3 templates.

V8 Configuration (first 6 rows in detail, remaining 11 summarized):

Grid DataType: Standard Page Grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "LeftSidebar"     -> [4 + 8] (allowAll for 8-col)
+-- Template: "RightSidebar"    -> [8 + 4]
|
+-- Row 1: "Full Width" -> 1 area
|   +-- Area 0 (12 cols): allowAll (all 108 content types)
|
+-- Row 2: "Half" -> 2 areas
|   +-- Area 0 (6 cols): 31 editors (rte, media, embed, quote, headingItem, ...)
|   +-- Area 1 (6 cols): 32 editors (+loanInputCTA, -GlobalAddress vs area 0)
|
+-- Row 3: "Thirds" -> 3 areas
|   +-- Area 0 (4 cols): 14 editors (no quote)
|   +-- Area 1 (4 cols): 15 editors (has quote)
|   +-- Area 2 (4 cols): 14 editors (no embed)
|
+-- Row 4: "SideBar" -> 1 area
|   +-- Area 0 (12 cols): 3 editors (rte, SubMenu, NewsCompleteGridEditor)
|
+-- Row 5: "Left Nav" -> 2 areas
|   +-- Area 0 (4 cols): allowAll
|   +-- Area 1 (8 cols): allowAll
|
+-- Row 6: "Right SideBar" -> 1 area
|   +-- Area 0 (12 cols): 24 editors

Remaining 11 rows (all unique to this DT):

+-- Row 7:  "five sevens"              -> 2 areas (5+7), both allowAll
+-- Row 8:  "full & thirds thirds"     -> 7 areas (12+4+4+4+4+4+4), restricted
|   Area 0: headingItem only
|   Areas 1-6: media, rte, headingItem
+-- Row 9:  "ICon Calc"                -> 3 areas (6+4+2), all allowAll
+-- Row 10: "Fours"                    -> 4 areas (3+3+3+3), restricted
|   All areas: headingItem, cardItem only
+-- Row 11: "text-button-block"        -> 2 areas (8+4), restricted
|   Area 0: 16 editors  |  Area 1: 14 editors
+-- Row 12: "membership-benefits"      -> 3 areas (6+6+12), restricted
|   Area 0: headingItem  |  Area 1: rte  |  Area 2: spotlightControls, Spotlight Grid Controls
+-- Row 13: "FaqHome"                  -> 1 area (12), restricted
|   Area 0: Faq Accordion Home, headingItem
+-- Row 14: "Services"                 -> 1 area (12), restricted
|   Area 0: Services List, Services List Image
+-- Row 15: "two-four-two-four"        -> 5 areas (2+3+2+3+2), all allowAll
+-- Row 16: "Loan Application Process" -> 5 areas (12+3+3+3+3), restricted
|   Area 0: headingItem  |  Areas 1-4: spotlightControls, Announcement, media, rte
+-- Row 17: "car draw text"            -> 2 areas (7+5), restricted
    Area 0: 3 editors  |  Area 1: 36 editors

Settings (row): class, ID, data-aos, data-aos-offset, data-aos-delay,
                data-aos-duration, data-aos-easing
Styles (row): background-image, background-color, padding, margin
Styles (cell): background-color
Used by: 6 document types (50 content nodes)

V17 BlockGrid (After Migration):

BlockGrid DataType: Standard Page Grid
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_1257_rowconfig_1ColumnLayout) -> allows all 17 layouts
|   +-- "Left Sidebar" (grid_1257_rowconfig_leftsidebar)      -> allows all 17 layouts
|   +-- "Right Sidebar" (grid_1257_rowconfig_rightsidebar)     -> allows all 17 layouts
|
+-- [Layouts] (17 total)
|   +-- "Full Width" (grid_1257_layout_fullwidth)                          -> 1 area (col-12)
|   +-- "Half" (grid_1257_layout_half)                                     -> 2 areas (col-6 + col-6)
|   +-- "Thirds" (grid_1257_layout_thirds)                                 -> 3 areas (col-4 x 3)
|   +-- "Side Bar" (grid_1257_layout_sidebar)                              -> 1 area (col-12)
|   +-- "Left Nav" (grid_1257_layout_leftnav)                              -> 2 areas (col-4 + col-8)
|   +-- "Right Side Bar" (grid_1257_layout_rightsidebar)                   -> 1 area (col-12)
|   +-- "Five Sevens" (grid_1257_layout_fivesevens)                        -> 2 areas (col-5 + col-7)
|   +-- "Full & Thirds Thirds" (grid_1257_layout_fullthirdsthirds)         -> 7 areas (col-12+col-4x6)
|   +-- "ICon Calc" (grid_1257_layout_iconcalc)                            -> 3 areas (col-6+col-4+col-2)
|   +-- "Fours" (grid_1257_layout_fours)                                   -> 4 areas (col-3 x 4)
|   +-- "Text Button Block" (grid_1257_layout_textbuttonblock)             -> 2 areas (col-8 + col-4)
|   +-- "Membership Benefits" (grid_1257_layout_membershipbenefits)        -> 3 areas (col-6+col-6+col-12)
|   +-- "FAQ Home" (grid_1257_layout_faqhome)                              -> 1 area (col-12)
|   +-- "Services" (grid_1257_layout_services)                             -> 1 area (col-12)
|   +-- "Two Four Two Four" (grid_1257_layout_twofourtwofour)              -> 5 areas (col-2+col-3+col-2+col-3+col-2)
|   +-- "Loan Application Process" (grid_1257_layout_loanapplicationprocess) -> 5 areas (col-12+col-3x4)
|   +-- "Car Draw Text" (grid_1257_layout_cardrawtext)                     -> 2 areas (col-7 + col-5)
|
+-- [Area Wrappers] (~36 total, one per layout-area combination)
|   +-- "Full Width / Area 0" (grid_1257_areawrapper_fullwidth_0)                          -> allows: all 108 (allowAll)
|   +-- "Half / Area 0" (grid_1257_areawrapper_half_0)                                     -> allows: 31 content types
|   +-- "Half / Area 1" (grid_1257_areawrapper_half_1)                                     -> allows: 32 content types
|   +-- "Thirds / Area 0" (grid_1257_areawrapper_thirds_0)                                 -> allows: 14 content types
|   +-- "Thirds / Area 1" (grid_1257_areawrapper_thirds_1)                                 -> allows: 15 content types
|   +-- "Thirds / Area 2" (grid_1257_areawrapper_thirds_2)                                 -> allows: 14 content types
|   +-- "Side Bar / Area 0" (grid_1257_areawrapper_sidebar_0)                              -> allows: 3 content types
|   +-- "Left Nav / Area 0" (grid_1257_areawrapper_leftnav_0)                              -> allows: all 108 (allowAll)
|   +-- "Left Nav / Area 1" (grid_1257_areawrapper_leftnav_1)                              -> allows: all 108 (allowAll)
|   +-- "Right Side Bar / Area 0" (grid_1257_areawrapper_rightsidebar_0)                   -> allows: 24 content types
|   +-- "Five Sevens / Area 0" (grid_1257_areawrapper_fivesevens_0)                        -> allows: all 108 (allowAll)
|   +-- "Five Sevens / Area 1" (grid_1257_areawrapper_fivesevens_1)                        -> allows: all 108 (allowAll)
|   +-- "Full & Thirds Thirds / Area 0" (grid_1257_areawrapper_fullthirdsthirds_0)         -> allows: 1 (headingItem)
|   +-- "Full & Thirds Thirds / Area 1..6" (grid_1257_areawrapper_fullthirdsthirds_1..6)   -> allows: 3 each (media, rte, headingItem)
|   +-- "ICon Calc / Area 0" (grid_1257_areawrapper_iconcalc_0)                            -> allows: all 108 (allowAll)
|   +-- "ICon Calc / Area 1" (grid_1257_areawrapper_iconcalc_1)                            -> allows: all 108 (allowAll)
|   +-- "ICon Calc / Area 2" (grid_1257_areawrapper_iconcalc_2)                            -> allows: all 108 (allowAll)
|   +-- "Fours / Area 0..3" (grid_1257_areawrapper_fours_0..3)                             -> allows: 2 each (headingItem, cardItem)
|   +-- "Text Button Block / Area 0" (grid_1257_areawrapper_textbuttonblock_0)             -> allows: 16 content types
|   +-- "Text Button Block / Area 1" (grid_1257_areawrapper_textbuttonblock_1)             -> allows: 14 content types
|   +-- "Membership Benefits / Area 0" (grid_1257_areawrapper_membershipbenefits_0)        -> allows: 1 (headingItem)
|   +-- "Membership Benefits / Area 1" (grid_1257_areawrapper_membershipbenefits_1)        -> allows: 1 (rte)
|   +-- "Membership Benefits / Area 2" (grid_1257_areawrapper_membershipbenefits_2)        -> allows: 2 (spotlightControls, ...)
|   +-- "FAQ Home / Area 0" (grid_1257_areawrapper_faqhome_0)                              -> allows: 2 content types
|   +-- "Services / Area 0" (grid_1257_areawrapper_services_0)                             -> allows: 2 content types
|   +-- "Two Four Two Four / Area 0..4" (grid_1257_areawrapper_twofourtwofour_0..4)        -> allows: all 108 each (allowAll)
|   +-- "Loan Application Process / Area 0" (grid_1257_areawrapper_loanapplicationprocess_0)     -> allows: 1 (headingItem)
|   +-- "Loan Application Process / Area 1..4" (grid_1257_areawrapper_loanapplicationprocess_1..4) -> allows: 4 each
|   +-- "Car Draw Text / Area 0" (grid_1257_areawrapper_cardrawtext_0)                     -> allows: 3 content types
|   +-- "Car Draw Text / Area 1" (grid_1257_areawrapper_cardrawtext_1)                     -> allows: 36 content types
|
+-- [Settings]
|   +-- "Row Settings" (grid_1257_rowsettings)     (props: class, ID, data-aos, data-aos-offset,
|   |                                               data-aos-delay, data-aos-duration, data-aos-easing,
|   |                                               background-image, background-color, padding, margin, visible)
|   +-- "Cell Settings" (grid_1257_cellsettings)   (props: background-color)
|   +-- "Block Settings" (grid_1257_blocksettings)
|
+-- [Shared Content Types]: ~108 types (largest set of any datatype)

Folder Organization:

GridEditors/
+-- Standard Page Grid/
    +-- Layouts/       -> 17 layouts (Full Width, Half, Thirds, SideBar, Left Nav,
    |                     Right SideBar, five sevens, full & thirds thirds,
    |                     ICon Calc, Fours, text-button-block, membership-benefits,
    |                     FaqHome, Services, two-four-two-four,
    |                     Loan Application Process, car draw text)
    +-- Area Wrappers/ -> ~36 wrappers
    +-- Row Configs/   -> 1ColumnLayout, leftsidebar, rightsidebar
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


DataType 14: test data type (V8 ID: 2236)

V8 Configuration:

Grid DataType: test data type - grid (12 columns)
+-- Template: "1 column layout" -> [12]
+-- Template: "2 column layout" -> [4 + 8]
|
+-- Row: "Headline" -> 1 area
|   +-- Area 0 (12 cols): (none specified)
|
+-- Row: "Article" -> 2 areas
    +-- Area 0 (4 cols): (none specified)
    +-- Area 1 (8 cols): (none specified)

Settings (row): class
Styles (row): background-image (only)

V17 BlockGrid (After Migration):

BlockGrid DataType: test data type
+-- [Root Allowed - Row Configs]
|   +-- "1 Column Layout" (grid_2236_rowconfig_1ColumnLayout) -> allows both layouts
|   +-- "2 Column Layout" (grid_2236_rowconfig_2ColumnLayout) -> allows both layouts
|
+-- [Layouts]
|   +-- "Headline" (grid_2236_layout_headline) -> 1 area (col-12)
|   +-- "Article" (grid_2236_layout_article)   -> 2 areas (col-4 + col-8)
|
+-- [Area Wrappers]
|   +-- "Headline / Area 0" (grid_2236_areawrapper_headline_0) -> allows: 0 content types
|   +-- "Article / Area 0" (grid_2236_areawrapper_article_0)   -> allows: 0 content types
|   +-- "Article / Area 1" (grid_2236_areawrapper_article_1)   -> allows: 0 content types
|
+-- [Settings]
|   +-- "Row Settings" (grid_2236_rowsettings)     (props: class, background-image, visible)
|   +-- "Cell Settings" (grid_2236_cellsettings)   (props: none or minimal)
|   +-- "Block Settings" (grid_2236_blocksettings)
|
+-- [Shared Content Types]: 0 types (no editors configured)

Note: This appears to be a development/test datatype. No content editors are configured for any area. Consider removing from v17 after validating across all client databases.

Folder Organization:

GridEditors/
+-- test data type/
    +-- Layouts/       -> Headline, Article
    +-- Area Wrappers/ -> 3 wrappers (all empty allowance)
    +-- Row Configs/   -> 1ColumnLayout, 2ColumnLayout
    +-- Settings/      -> rowsettings, cellsettings, blocksettings


Summary Table

# DataType V8 ID Layouts Area Wrappers Row Configs Settings Content Types Total Per-DT
1 Animated Grid 1534 3 6 3 3 ~50 (shared) 15
2 Article Controls 1055 3 6 3 3 ~27 (shared) 15 (MISSING)
3 articleGrid 1683 3 6 1 3 ~35 (shared) 13
4 Contact us Grid 1093 2 3 3 3 ~14 (shared) 11
5 Cookie Grid 1709 4 8 1 3 ~8 (shared) 16
6 Footer Grid 1127 6 18 1 3 ~31 (shared) 28
7 Full width Grid 1736 3 6 1 3 ~8 (shared) 13
8 FW Grid Bottom 1459 2 3 2 3 1 (shared) 10
9 Homepage Grid 1151 4 8 1 3 ~61 (shared) 16
10 services Grid 1780 2 2 2 3 ~16 (shared) 9
11 Sp with Nav Left 1798 3 6 1 3 ~12 (shared) 13
12 Std Page FW 1803 8 14 3 3 ~41 (shared) 28
13 Standard Page Grid 1257 17 36 3 3 ~108 (shared) 59
14 test data type 2236 2 3 2 3 0 (shared) 10
TOTALS 62 125 27 42 ~108 unique 246

Additionally shared across all datatypes: - ~5 built-in content types: rte, media, quote, embed, submenu - ~28 grid_element_* content types - ~50-60 DTGE/Path A element types (original v8 aliases)

Grand total element types: ~330-340


Settings Signature Groups

Not all 14 datatypes use the same row/cell settings properties. The settings element types group into these signatures:

Signature Properties Datatypes Count
A: Standard class, bgImage, bgColor, padding, margin, visible articleGrid (1683), Contact us (1093), Cookie (1709), Footer (1127), Full width (1736), FW Bottom (1459), services (1780), Sp Nav Left (1798), Article Controls (1055) 9
B: Full Animation A + ID, data-aos, data-aos-offset, data-aos-delay, data-aos-duration, data-aos-easing Standard Page Grid (1257), Homepage Grid (1151) 2
C: Partial Animation A + ID, data-aos, data-aos-offset, data-aos-easing Animated Grid (1534) 1
D: Minimal + bgColor class, bgImage, bgColor, visible (no padding/margin) Std Page FW (1803) 1
E: Minimal class, bgImage, visible (no bgColor, no padding/margin) test data type (2236) 1

The 9 datatypes in Signature A could theoretically share a single settings element type, saving 8 records. This is deferred per Report 11 recommendation.


Decision: Keep Layouts Per-DataType

Layouts MUST remain per-datatype. The rationale:

  1. ZERO layouts are truly identical. Report 11 compared every shared layout name (fullwidth, half, thirds, leftnav, sidebar) across all datatypes. While column structures match, the allowed editor lists ALWAYS differ because each datatype has a different content element type set. No two datatypes have the same content type count or composition.

  2. Area wrappers cannot be shared. Even if layout element types were shared, the area wrappers that carry editor permissions would still need to be per-datatype. Sharing layouts would save only ~42 empty element type records.

  3. "allowAll" expands differently per datatype. When a v8 layout area has allowAll=true, the migration tool expands it to the full content type set for that specific datatype. Standard Page Grid's "allowAll" means 108 types; Cookie Grid's "allowAll" means 8 types. These produce fundamentally different specifiedAllowance arrays.

  4. Per-area differences within datatypes. Many layouts have different editor lists between their own areas (e.g., Standard Page Grid's "Half" has 31 editors in area 0 but 32 in area 1). This is the precise kind of granularity that per-datatype area wrappers preserve.

  5. Risk exceeds benefit. Sharing would require changes to GUID generation, tracker lookups, and content migration -- all for cosmetic savings of ~42 empty records. The recommendation from Reports 11 and 12 is unanimous: no action needed.


Missing: Article Controls (DT 1055)

Status: Article Controls (v8 ID 1055) is absent from the v17 BlockGrid configurations despite having 12 content nodes in the progresscu.ie database.

Evidence: - Report 11 Section 7: "Article Controls (v8 ID 1055) is missing from _blockgrid-configs.json" - Report 03 Section 4: 12 distinct content nodes use DT 1055 - Report 12 Section D.4: Lists DT 1055 infrastructure types in the GridEditors folder (the element types exist but the BlockGrid datatype config is missing or broken)

Impact: - The 12 content nodes using Article Controls grid will have no functioning BlockGrid editor in v17 - The infrastructure element types (layouts, area wrappers, row configs, settings) were created but are orphaned - Content data for these nodes may not render correctly

Expected v17 structure (if migration worked correctly): - 3 layouts: FullWidth, Half, Thirds - 6 area wrappers: fullwidth_0, half_0, half_1, thirds_0, thirds_1, thirds_2 - 3 row configs: 1ColumnLayout, leftNav, rightNav - 3 settings: rowsettings, cellsettings, blocksettings - ~27 shared content types

Action required: Investigate the migration tool to determine why the BlockGrid datatype configuration for DT 1055 was not created or was not correctly linked to its infrastructure element types.


Appendix: Complete Allowance Chain Example

To illustrate the full nesting for one concrete scenario -- an editor adding a "Half" row to a Standard Page:

User opens Standard Page in v17 backoffice
  |
  +-- BlockGrid property shows available ROOT blocks
  |   (Row Configs: "1 Column Layout", "Left Sidebar", "Right Sidebar")
  |
  +-- User picks "1 Column Layout" row config
  |   -> "1 Column Layout" (grid_1257_rowconfig_1ColumnLayout)
  |   -> Its area (12 cols) allows ALL 17 layout types
  |
  +-- User picks "Half" layout inside the row config area
  |   -> "Half" (grid_1257_layout_half)
  |   -> Area 0 (col-6) allows: "Half / Area 0" (grid_1257_areawrapper_half_0)
  |   -> Area 1 (col-6) allows: "Half / Area 1" (grid_1257_areawrapper_half_1)
  |
  +-- Area Wrapper "Half / Area 0" auto-wraps Area 0
  |   -> Its inner "content" area allows 31 content types:
  |      rte, media, embed, quote, headingItem, stripedList, NumberedList,
  |      imageList, videoPopOut, donutChart, imageGalleryControl,
  |      staffMemberControl, barChart, videoFullWidth, cardControl, ...
  |
  +-- Area Wrapper "Half / Area 1" auto-wraps Area 1
  |   -> Its inner "content" area allows 32 content types:
  |      rte, media, MACRO, quote, headingItem, stripedList, NumberedList,
  |      imageList, videoPopOut, donutChart, imageGalleryControl,
  |      staffMemberControl, barChart, videoFullWidth, cardControl, ...
  |      (Note: has "macro" + "loanInputCTA" instead of "embed" + "GlobalAddress")
  |
  +-- User adds RTE to left column, Media to right column
      -> grid_builtin_rte placed in "Half / Area 0"'s content area
      -> grid_builtin_media placed in "Half / Area 1"'s content area
      -> Both content blocks can have "Block Settings" (grid_1257_blocksettings) attached
      -> The Half layout block can have "Row Settings" (grid_1257_rowsettings) attached

This chain preserves the exact v8 editor permissions per area per layout per datatype.

Migration documentation by Double for Progress Credit Union