module.exports = {
  "metadata": { "section": "Layout" },
  "definitions": {
    "LayoutNode": {
      "metadata": {
        "tsRicosNode": true,
        "examples": ["layout"],
        "description": "Used to wrap cells in layout container. When rendered, it cells one after the other in a row"
      },
      "properties": {
        "type": {
          "enum": ["LAYOUT"],
          "metadata": {
            "description": "Node type. \n Must be `LAYOUT`."
          }
        },
        "nodes": {
          "elements": {
            "ref": "LayoutCellNode"
          },
          "metadata": {
            "tsRicosNodesChildren": true,
            "description": "Cell items.",
            "validation": {
              "minSize": 1,
              "maxSize": 6
            }
          }
        }
      },
      "optionalProperties": {
        "id": {
          "type": "string",
          "metadata": {
            "format": "NODE_ID",
            "description": "[Node ID](#node-ids)."
          }
        },
        "layoutData": {
          "ref": "LayoutData",
          "metadata": {
            "description": "Layout details."
          }
        }
      }
    },
    "LayoutData": {
      "optionalProperties": {
        "containerData": {
          "ref": "PluginContainerData",
          "metadata": {
            "description": "Layout container styling."
          }
        },
        "backgroundColor": {
          "type": "string",
          "metadata": {
            "format": "COLOR_VALUE",
            "description": "Deprecated: Use `background` instead.",
            "deprecated": true
          }
        },
        "background": {
          "ref": "Background",
          "metadata": {
            "description": "Background styling (color or gradient)."
          }
        },
        "backgroundImage": {
          "ref": "BackgroundImage",
          "metadata": {
            "description": "Background image."
          }
        },
        "borderColor": {
          "type": "string",
          "metadata": {
            "format": "COLOR_VALUE",
            "description": "Border color as a hexadecimal value."
          }
        },
        "borderWidth": {
          "type": "int32",
          "metadata": {
            "description": "Border width in pixels."
          }
        },
        "borderRadius": {
          "type": "int32",
          "metadata": {
            "description": "Border radius in pixels."
          }
        },
        "backdropColor": {
          "type": "string",
          "metadata": {
            "format": "COLOR_VALUE",
            "description": "Deprecated: Use `backdrop` instead.",
            "deprecated": true
          }
        },
        "backdrop": {
          "ref": "Background",
          "metadata": {
            "description": "Backdrop styling (color or gradient)."
          }
        },
        "backdropImage": {
          "ref": "BackgroundImage",
          "metadata": {
            "description": "Backdrop image."
          }
        },
        "backdropPaddingTop": {
          "type": "int32",
          "metadata": {
            "description": "Backdrop padding top in pixels."
          }
        },
        "backdropPaddingBottom": {
          "type": "int32",
          "metadata": {
            "description": "Backdrop padding bottom in pixels."
          }
        },
        "gap": {
          "type": "int32",
          "metadata": {
            "description": "Horizontal and vertical gap between columns in pixels."
          }
        },
        "responsivenessBehaviour": {
          "ref": "LayoutData_ResponsivenessBehaviour",
          "metadata": {
            "description": "Responsiveness behaviour."
          }
        },
        "responsivenessBreakpoint": {
          "type": "int32",
          "metadata": {
            "description": "Size in pixels when responsivenessBehaviour applies."
          }
        },
        "cellPadding": {
          "elements": {
            "type": "uint32"
          },
          "metadata": {
            "description": "Padding in pixels for cells. Follows CSS order: top, right, bottom, left."
          }
        },
        "cellVerticalAlignment": {
          "ref": "VerticalAlignment",
          "metadata": {
            "description": "Vertical alignment for the cell's items."
          }
        },
        "designTarget": {
          "ref": "LayoutData_DesignTarget",
          "metadata": {
            "description": "Defines where selected design propertied applies to."
          }
        },
        "banner": {
          "ref": "LayoutData_Banner",
          "metadata": {
            "description": "Banner configuration. When present, this layout is attached to a document edge (top for banner, bottom for footer)."
          }
        }
      }
    },
    "LayoutData_Banner": {
      "metadata": {
        "description": "Edge banner configuration for layout."
      },
      "properties": {},
      "optionalProperties": {
        "position": {
          "ref": "LayoutData_BannerPosition",
          "metadata": {
            "description": "Edge position - top (banner) or bottom (footer)."
          }
        },
        "origin": {
          "ref": "LayoutData_BannerOrigin",
          "metadata": {
            "description": "Origin of the banner - whether it was created from an image or a layout."
          }
        }
      }
    },
    "LayoutData_BannerPosition": {
      "metadata": {
        "emitEnum": "LayoutData_BannerPosition",
        "description": "Edge position of the banner."
      },
      "enum": ["TOP", "BOTTOM"]
    },
    "LayoutData_BannerOrigin": {
      "metadata": {
        "emitEnum": "LayoutData_BannerOrigin",
        "description": "Origin type of the banner."
      },
      "enum": ["IMAGE", "LAYOUT"]
    },
    "LayoutData_ResponsivenessBehaviour": {
      "metadata": {
        "emitEnum": "LayoutData_ResponsivenessBehaviour",
        "description": "Responsiveness behaviour."
      },
      "enum": ["STACK", "WRAP"]
    },
    "LayoutData_DesignTarget": {
      "metadata": {
        "emitEnum": "LayoutData_DesignTarget",
        "description": "Defines where selected design propertied applies to."
      },
      "enum": ["LAYOUT", "CELL"]
    }
  }
}