addedInput schema / properties / sections / items / properties / blocks
Added value: +{
+ "description": "Anything else, in order: text, stats, table, chart, image, callout, checklist, quote, columns, divider, html",
+ "items": {
+ "anyOf": [
+ {
+ "anyOf": [
+ {
+ "properties": {
+ "text": {
+ "description": "**bold**, *italic*, [link](https://…), lines starting \"- \" or \"1. \" become lists",
+ "type": "string"
+ },
+ "type": {
+ "const": "text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "sub": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "stats",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "items"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "rows": {
+ "items": {
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "table",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "columns",
+ "rows"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "kind": {
+ "enum": [
+ "bar",
+ "line",
+ "donut"
+ ],
+ "type": "string"
+ },
+ "labels": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 36,
+ "type": "array"
+ },
+ "series": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "values": {
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "values"
+ ],
+ "type": "object"
+ },
+ "maxItems": 6,
+ "minItems": 1,
+ "type": "array"
+ },
+ "title": {
+ "type": "string"
+ },
+ "type": {
+ "const": "chart",
+ "type": "string"
+ },
+ "unit": {
+ "maxLength": 8,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "kind",
+ "labels",
+ "series"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "alt": {
+ "type": "string"
+ },
+ "caption": {
+ "type": "string"
+ },
+ "type": {
+ "const": "image",
+ "type": "string"
+ },
+ "url": {
+ "pattern": "^https:\\/\\/",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "text": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "tone": {
+ "enum": [
+ "win",
+ "info",
+ "warning"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "const": "callout",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "done": {
+ "type": "boolean"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "text"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "checklist",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "items"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "author": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "const": "quote",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "html": {
+ "description": "Cleaned to safe tags: no scripts, forms or frames; links https/mailto; images https",
+ "maxLength": 60000,
+ "type": "string"
+ },
+ "type": {
+ "const": "html",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "html"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "type": {
+ "const": "divider",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ {
+ "properties": {
+ "columns": {
+ "items": {
+ "items": {
+ "anyOf": [
+ {
+ "properties": {
+ "text": {
+ "description": "**bold**, *italic*, [link](https://…), lines starting \"- \" or \"1. \" become lists",
+ "type": "string"
+ },
+ "type": {
+ "const": "text",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "sub": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "label",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "stats",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "items"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "columns": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "rows": {
+ "items": {
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "table",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "columns",
+ "rows"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "kind": {
+ "enum": [
+ "bar",
+ "line",
+ "donut"
+ ],
+ "type": "string"
+ },
+ "labels": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 36,
+ "type": "array"
+ },
+ "series": {
+ "items": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "values": {
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "values"
+ ],
+ "type": "object"
+ },
+ "maxItems": 6,
+ "minItems": 1,
+ "type": "array"
+ },
+ "title": {
+ "type": "string"
+ },
+ "type": {
+ "const": "chart",
+ "type": "string"
+ },
+ "unit": {
+ "maxLength": 8,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "kind",
+ "labels",
+ "series"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "alt": {
+ "type": "string"
+ },
+ "caption": {
+ "type": "string"
+ },
+ "type": {
+ "const": "image",
+ "type": "string"
+ },
+ "url": {
+ "pattern": "^https:\\/\\/",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "url"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "text": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "tone": {
+ "enum": [
+ "win",
+ "info",
+ "warning"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "const": "callout",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "items": {
+ "items": {
+ "properties": {
+ "done": {
+ "type": "boolean"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "text"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "checklist",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "items"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "author": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "const": "quote",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "text"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "html": {
+ "description": "Cleaned to safe tags: no scripts, forms or frames; links https/mailto; images https",
+ "maxLength": 60000,
+ "type": "string"
+ },
+ "type": {
+ "const": "html",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "html"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "type": {
+ "const": "divider",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "type": "array"
+ },
+ "maxItems": 3,
+ "minItems": 1,
+ "type": "array"
+ },
+ "type": {
+ "const": "columns",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "columns"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "maxItems": 60,
+ "type": "array"
+}
addedInput schema / properties / style
Added value: +{
+ "description": "This report only, on top of the agency's and the client's style",
+ "properties": {
+ "accent_color": {
+ "pattern": "^#[0-9a-fA-F]{3,8}$",
+ "type": "string"
+ },
+ "agency_name": {
+ "maxLength": 120,
+ "type": "string"
+ },
+ "bg_color": {
+ "description": "Page background",
+ "pattern": "^#[0-9a-fA-F]{3,8}$",
+ "type": "string"
+ },
+ "contact_email": {
+ "maxLength": 200,
+ "type": "string"
+ },
+ "corner": {
+ "enum": [
+ "rounded",
+ "soft",
+ "square"
+ ],
+ "type": "string"
+ },
+ "cover": {
+ "description": "A cover page: logo, client, title, period, prepared by",
+ "type": "boolean"
+ },
+ "cover_note": {
+ "maxLength": 400,
+ "type": "string"
+ },
+ "custom_css": {
+ "description": "Any CSS for full control (classes: header, h1, h2, section, .stat, .chart, .callout, .quote, .checklist, .cover, table…). Cleaned: url(), @import and tags are removed.",
+ "maxLength": 20000,
+ "type": "string"
+ },
+ "density": {
+ "enum": [
+ "compact",
+ "comfortable",
+ "airy"
+ ],
+ "type": "string"
+ },
+ "font": {
+ "enum": [
+ "Inter",
+ "Roboto",
+ "Open Sans",
+ "Lato",
+ "Montserrat",
+ "Poppins",
+ "Source Sans 3",
+ "DM Sans",
+ "Work Sans",
+ "Nunito",
+ "Raleway",
+ "IBM Plex Sans",
+ "Space Grotesk",
+ "Manrope",
+ "Outfit",
+ "Merriweather",
+ "Lora",
+ "Playfair Display",
+ "Libre Baskerville",
+ "Roboto Slab"
+ ],
+ "type": "string"
+ },
+ "footer_note": {
+ "maxLength": 400,
+ "type": "string"
+ },
+ "header_style": {
+ "enum": [
+ "bar",
+ "minimal",
+ "band"
+ ],
+ "type": "string"
+ },
+ "heading_font": {
+ "enum": [
+ "Inter",
+ "Roboto",
+ "Open Sans",
+ "Lato",
+ "Montserrat",
+ "Poppins",
+ "Source Sans 3",
+ "DM Sans",
+ "Work Sans",
+ "Nunito",
+ "Raleway",
+ "IBM Plex Sans",
+ "Space Grotesk",
+ "Manrope",
+ "Outfit",
+ "Merriweather",
+ "Lora",
+ "Playfair Display",
+ "Libre Baskerville",
+ "Roboto Slab"
+ ],
+ "type": "string"
+ },
+ "logo_position": {
+ "enum": [
+ "left",
+ "center",
+ "right"
+ ],
+ "type": "string"
+ },
+ "logo_size": {
+ "enum": [
+ "small",
+ "medium",
+ "large"
+ ],
+ "type": "string"
+ },
+ "logo_url": {
+ "description": "An https image link; otherwise the logo uploaded on the dashboard",
+ "pattern": "^https:\\/\\/",
+ "type": "string"
+ },
+ "secondary_color": {
+ "description": "Second chart color and accents",
+ "pattern": "^#[0-9a-fA-F]{3,8}$",
+ "type": "string"
+ },
+ "text_color": {
+ "pattern": "^#[0-9a-fA-F]{3,8}$",
+ "type": "string"
+ }
+ },
+ "type": "object"
+}