From 01a37dfe85c21297f235d347798ede3c8d8fe462 Mon Sep 17 00:00:00 2001
From: Maximilian Schulz <83698606+maxschulz-COL@users.noreply.github.com>
Date: Wed, 28 Aug 2024 09:34:43 +0200
Subject: [PATCH] [Release] Release of vizro 0.1.21 (#657)

---
 vizro-core/CHANGELOG.md                       |   14 +
 ...819_173836_antony.milne_remove_snyk_etc.md |   48 -
 .../changelog.d/20240820_131820_runner.md     |   48 -
 .../20240820_144247_alexey_snigir_0_1_20.md   |   48 -
 .../20240820_192710_maximilian_schulz.md      |   47 -
 ...turn_empty_data_frame_from_tables_build.md |   46 -
 ...1704_huong_li_nguyen_consolidate_themes.md |   47 -
 ...11009_huong_li_nguyen_replace_kpi_cards.md |   48 -
 ...15_huong_li_nguyen_remove_kpi_dashboard.md |   48 -
 ...240828_085439_maximilian_schulz_0_1_21.md} |    0
 vizro-core/mkdocs.yml                         |    2 +-
 vizro-core/schemas/0.1.21.dev0.json           | 1402 -----------------
 .../schemas/{0.1.20.json => 0.1.21.json}      |    0
 vizro-core/src/vizro/__init__.py              |    2 +-
 14 files changed, 16 insertions(+), 1784 deletions(-)
 delete mode 100644 vizro-core/changelog.d/20240819_173836_antony.milne_remove_snyk_etc.md
 delete mode 100644 vizro-core/changelog.d/20240820_131820_runner.md
 delete mode 100644 vizro-core/changelog.d/20240820_144247_alexey_snigir_0_1_20.md
 delete mode 100644 vizro-core/changelog.d/20240820_192710_maximilian_schulz.md
 delete mode 100644 vizro-core/changelog.d/20240821_165515_petar_pejovic_return_empty_data_frame_from_tables_build.md
 delete mode 100644 vizro-core/changelog.d/20240822_151704_huong_li_nguyen_consolidate_themes.md
 delete mode 100644 vizro-core/changelog.d/20240826_111009_huong_li_nguyen_replace_kpi_cards.md
 delete mode 100644 vizro-core/changelog.d/20240826_141315_huong_li_nguyen_remove_kpi_dashboard.md
 rename vizro-core/changelog.d/{20240816_150226_huong_li_nguyen_add_third_batch_charts.md => 20240828_085439_maximilian_schulz_0_1_21.md} (100%)
 delete mode 100644 vizro-core/schemas/0.1.21.dev0.json
 rename vizro-core/schemas/{0.1.20.json => 0.1.21.json} (100%)

diff --git a/vizro-core/CHANGELOG.md b/vizro-core/CHANGELOG.md
index da6a7a70b..8397de1e5 100644
--- a/vizro-core/CHANGELOG.md
+++ b/vizro-core/CHANGELOG.md
@@ -11,6 +11,20 @@ See the fragment files in the [changelog.d directory](https://github.com/mckinse
 
 <!-- scriv-insert-here -->
 
+<a id='changelog-0.1.21'></a>
+
+# 0.1.21 — 2024-08-28
+
+## Changed
+
+- Improve page loading time for `AgGrid`, `Table` and `Figure`. ([#644](https://github.com/mckinsey/vizro/pull/644))
+
+- Optimize vizro templates `vizro_dark` and `vizro_light` for charts. ([#645](https://github.com/mckinsey/vizro/pull/645))
+
+## Fixed
+
+- Fix persistence of `columnSize` and `selectedRows` for `AgGrid`. ([#644](https://github.com/mckinsey/vizro/pull/644))
+
 <a id='changelog-0.1.20'></a>
 
 # 0.1.20 — 2024-08-20
diff --git a/vizro-core/changelog.d/20240819_173836_antony.milne_remove_snyk_etc.md b/vizro-core/changelog.d/20240819_173836_antony.milne_remove_snyk_etc.md
deleted file mode 100644
index f1f65e73c..000000000
--- a/vizro-core/changelog.d/20240819_173836_antony.milne_remove_snyk_etc.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Changed
-
-- A bullet item for the Changed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Fixed
-
-- A bullet item for the Fixed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240820_131820_runner.md b/vizro-core/changelog.d/20240820_131820_runner.md
deleted file mode 100644
index f1f65e73c..000000000
--- a/vizro-core/changelog.d/20240820_131820_runner.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Changed
-
-- A bullet item for the Changed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Fixed
-
-- A bullet item for the Fixed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240820_144247_alexey_snigir_0_1_20.md b/vizro-core/changelog.d/20240820_144247_alexey_snigir_0_1_20.md
deleted file mode 100644
index f1f65e73c..000000000
--- a/vizro-core/changelog.d/20240820_144247_alexey_snigir_0_1_20.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Changed
-
-- A bullet item for the Changed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Fixed
-
-- A bullet item for the Fixed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240820_192710_maximilian_schulz.md b/vizro-core/changelog.d/20240820_192710_maximilian_schulz.md
deleted file mode 100644
index 0065dfe3c..000000000
--- a/vizro-core/changelog.d/20240820_192710_maximilian_schulz.md
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Changed
-
-- A bullet item for the Changed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-
-### Fixed
-
-- Fix py.cafe docs integration by pinning `ruff` dependency for mkdocs plugin. ([#640](https://github.com/mckinsey/vizro/pull/640))
-
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240821_165515_petar_pejovic_return_empty_data_frame_from_tables_build.md b/vizro-core/changelog.d/20240821_165515_petar_pejovic_return_empty_data_frame_from_tables_build.md
deleted file mode 100644
index e99e94ad9..000000000
--- a/vizro-core/changelog.d/20240821_165515_petar_pejovic_return_empty_data_frame_from_tables_build.md
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-
-### Changed
-
-- Improve page loading time for `AgGrid`, `Table` and `Figure`. ([#644](https://github.com/mckinsey/vizro/pull/644))
-
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-
-### Fixed
-
-- Fix persistence of `columnSize` and `selectedRows` for `AgGrid`. ([#644](https://github.com/mckinsey/vizro/pull/644))
-
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240822_151704_huong_li_nguyen_consolidate_themes.md b/vizro-core/changelog.d/20240822_151704_huong_li_nguyen_consolidate_themes.md
deleted file mode 100644
index 76526f896..000000000
--- a/vizro-core/changelog.d/20240822_151704_huong_li_nguyen_consolidate_themes.md
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-
-### Changed
-
-- Optimize vizro templates `vizro_dark` and `vizro_light` for charts. ([#645](https://github.com/mckinsey/vizro/pull/645))
-
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Fixed
-
-- A bullet item for the Fixed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240826_111009_huong_li_nguyen_replace_kpi_cards.md b/vizro-core/changelog.d/20240826_111009_huong_li_nguyen_replace_kpi_cards.md
deleted file mode 100644
index f1f65e73c..000000000
--- a/vizro-core/changelog.d/20240826_111009_huong_li_nguyen_replace_kpi_cards.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Changed
-
-- A bullet item for the Changed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Fixed
-
-- A bullet item for the Fixed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240826_141315_huong_li_nguyen_remove_kpi_dashboard.md b/vizro-core/changelog.d/20240826_141315_huong_li_nguyen_remove_kpi_dashboard.md
deleted file mode 100644
index f1f65e73c..000000000
--- a/vizro-core/changelog.d/20240826_141315_huong_li_nguyen_remove_kpi_dashboard.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--
-A new scriv changelog fragment.
-
-Uncomment the section that is right (remove the HTML comment wrapper).
--->
-
-<!--
-### Highlights ✨
-
-- A bullet item for the Highlights ✨ category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Removed
-
-- A bullet item for the Removed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Added
-
-- A bullet item for the Added category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Changed
-
-- A bullet item for the Changed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Deprecated
-
-- A bullet item for the Deprecated category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Fixed
-
-- A bullet item for the Fixed category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
-<!--
-### Security
-
-- A bullet item for the Security category with a link to the relevant PR at the end of your entry, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1))
-
--->
diff --git a/vizro-core/changelog.d/20240816_150226_huong_li_nguyen_add_third_batch_charts.md b/vizro-core/changelog.d/20240828_085439_maximilian_schulz_0_1_21.md
similarity index 100%
rename from vizro-core/changelog.d/20240816_150226_huong_li_nguyen_add_third_batch_charts.md
rename to vizro-core/changelog.d/20240828_085439_maximilian_schulz_0_1_21.md
diff --git a/vizro-core/mkdocs.yml b/vizro-core/mkdocs.yml
index de11688b8..cc9601229 100644
--- a/vizro-core/mkdocs.yml
+++ b/vizro-core/mkdocs.yml
@@ -109,7 +109,7 @@ markdown_extensions:
             kwds:
               type: vizro
               requirements: |
-                vizro==0.1.20
+                vizro==0.1.21
                 ruff==0.6.1  # mock
   - pymdownx.tabbed:
       alternate_style: true
diff --git a/vizro-core/schemas/0.1.21.dev0.json b/vizro-core/schemas/0.1.21.dev0.json
deleted file mode 100644
index 89b8fe8fc..000000000
--- a/vizro-core/schemas/0.1.21.dev0.json
+++ /dev/null
@@ -1,1402 +0,0 @@
-{
-  "title": "Dashboard",
-  "description": "Vizro Dashboard to be used within [`Vizro`][vizro._vizro.Vizro.build].\n\nArgs:\n    pages (List[Page]): See [`Page`][vizro.models.Page].\n    theme (Literal[\"vizro_dark\", \"vizro_light\"]): Layout theme to be applied across dashboard.\n        Defaults to `vizro_dark`.\n    navigation (Navigation): See [`Navigation`][vizro.models.Navigation]. Defaults to `None`.\n    title (str): Dashboard title to appear on every page on top left-side. Defaults to `\"\"`.",
-  "type": "object",
-  "properties": {
-    "id": {
-      "title": "Id",
-      "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-      "default": "",
-      "type": "string"
-    },
-    "pages": {
-      "title": "Pages",
-      "type": "array",
-      "items": {
-        "$ref": "#/definitions/Page"
-      }
-    },
-    "theme": {
-      "title": "Theme",
-      "description": "Layout theme to be applied across dashboard. Defaults to `vizro_dark`",
-      "default": "vizro_dark",
-      "enum": ["vizro_dark", "vizro_light"],
-      "type": "string"
-    },
-    "navigation": {
-      "$ref": "#/definitions/Navigation"
-    },
-    "title": {
-      "title": "Title",
-      "description": "Dashboard title to appear on every page on top left-side.",
-      "default": "",
-      "type": "string"
-    }
-  },
-  "required": ["pages"],
-  "additionalProperties": false,
-  "definitions": {
-    "Action": {
-      "title": "Action",
-      "description": "Action to be inserted into `actions` of relevant component.\n\nArgs:\n    function (CapturedCallable): Action function. See [`vizro.actions`][vizro.actions].\n    inputs (List[str]): Inputs in the form `<component_id>.<property>` passed to the action function.\n        Defaults to `[]`.\n    outputs (List[str]): Outputs in the form `<component_id>.<property>` changed by the action function.\n        Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "inputs": {
-          "title": "Inputs",
-          "description": "Inputs in the form `<component_id>.<property>` passed to the action function.",
-          "default": [],
-          "pattern": "^[^.]+[.][^.]+$",
-          "type": "array",
-          "items": {
-            "type": "string",
-            "pattern": "^[^.]+[.][^.]+$"
-          }
-        },
-        "outputs": {
-          "title": "Outputs",
-          "description": "Outputs in the form `<component_id>.<property>` changed by the action function.",
-          "default": [],
-          "pattern": "^[^.]+[.][^.]+$",
-          "type": "array",
-          "items": {
-            "type": "string",
-            "pattern": "^[^.]+[.][^.]+$"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "AgGrid": {
-      "title": "AgGrid",
-      "description": "Wrapper for `dash-ag-grid.AgGrid` to visualize grids in dashboard.\n\nArgs:\n    type (Literal[\"ag_grid\"]): Defaults to `\"ag_grid\"`.\n    figure (CapturedCallable): Function that returns a Dash AgGrid. See [`vizro.tables`][vizro.tables].\n    title (str): Title of the table. Defaults to `\"\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "ag_grid",
-          "enum": ["ag_grid"],
-          "type": "string"
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title of the AgGrid",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Button": {
-      "title": "Button",
-      "description": "Component provided to `Page` to trigger any defined `action` in `Page`.\n\nArgs:\n    type (Literal[\"button\"]): Defaults to `\"button\"`.\n    text (str): Text to be displayed on button. Defaults to `\"Click me!\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "button",
-          "enum": ["button"],
-          "type": "string"
-        },
-        "text": {
-          "title": "Text",
-          "description": "Text to be displayed on button.",
-          "default": "Click me!",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Card": {
-      "title": "Card",
-      "description": "Creates a card utilizing `dcc.Markdown` as title and text component.\n\nArgs:\n    type (Literal[\"card\"]): Defaults to `\"card\"`.\n    text (str): Markdown string to create card title/text that should adhere to the CommonMark Spec.\n    href (str): URL (relative or absolute) to navigate to. If not provided the Card serves as a text card\n        only. Defaults to `\"\"`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "card",
-          "enum": ["card"],
-          "type": "string"
-        },
-        "text": {
-          "title": "Text",
-          "description": "Markdown string to create card title/text that should adhere to the CommonMark Spec.",
-          "type": "string"
-        },
-        "href": {
-          "title": "Href",
-          "description": "URL (relative or absolute) to navigate to. If not provided the Card serves as a text card only.",
-          "default": "",
-          "type": "string"
-        }
-      },
-      "required": ["text"],
-      "additionalProperties": false
-    },
-    "Figure": {
-      "title": "Figure",
-      "description": "Creates a figure-like object that can be displayed in the dashboard and is reactive to controls.\n\nArgs:\n    type (Literal[\"figure\"]): Defaults to `\"figure\"`.\n    figure (CapturedCallable): Function that returns a figure-like object. See [`vizro.figures`][vizro.figures].",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "figure",
-          "enum": ["figure"],
-          "type": "string"
-        }
-      },
-      "additionalProperties": false
-    },
-    "Graph": {
-      "title": "Graph",
-      "description": "Wrapper for `dcc.Graph` to visualize charts in dashboard.\n\nArgs:\n    type (Literal[\"graph\"]): Defaults to `\"graph\"`.\n    figure (CapturedCallable): Function that returns a graph.\n        See `CapturedCallable`][vizro.models.types.CapturedCallable].\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "graph",
-          "enum": ["graph"],
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Table": {
-      "title": "Table",
-      "description": "Wrapper for `dash_table.DataTable` to visualize tables in dashboard.\n\nArgs:\n    type (Literal[\"table\"]): Defaults to `\"table\"`.\n    figure (CapturedCallable): Function that returns a Dash DataTable. See [`vizro.tables`][vizro.tables].\n    title (str): Title of the table. Defaults to `\"\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "table",
-          "enum": ["table"],
-          "type": "string"
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title of the table",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Tabs": {
-      "title": "Tabs",
-      "description": "Tabs to group together a set of containers on a page.\n\nArgs:\n    type (Literal[\"tabs\"]): Defaults to `\"tabs\"`.\n    tabs (List[Container]): See [`Container`][vizro.models.Container].",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "tabs",
-          "enum": ["tabs"],
-          "type": "string"
-        },
-        "tabs": {
-          "title": "Tabs",
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Container"
-          }
-        }
-      },
-      "required": ["tabs"],
-      "additionalProperties": false
-    },
-    "Layout": {
-      "title": "Layout",
-      "description": "Grid specification to place chart/components on the [`Page`][vizro.models.Page].\n\nArgs:\n    grid (List[List[int]]): Grid specification to arrange components on screen.\n    row_gap (str): Gap between rows in px. Defaults to `\"12px\"`.\n    col_gap (str): Gap between columns in px. Defaults to `\"12px\"`.\n    row_min_height (str): Minimum row height in px. Defaults to `\"0px\"`.\n    col_min_width (str): Minimum column width in px. Defaults to `\"0px\"`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "grid": {
-          "title": "Grid",
-          "description": "Grid specification to arrange components on screen.",
-          "type": "array",
-          "items": {
-            "type": "array",
-            "items": {
-              "type": "integer"
-            }
-          }
-        },
-        "row_gap": {
-          "title": "Row Gap",
-          "description": "Gap between rows in px. Defaults to 12px.",
-          "default": "24px",
-          "pattern": "[0-9]+px",
-          "type": "string"
-        },
-        "col_gap": {
-          "title": "Col Gap",
-          "description": "Gap between columns in px. Defaults to 12px.",
-          "default": "24px",
-          "pattern": "[0-9]+px",
-          "type": "string"
-        },
-        "row_min_height": {
-          "title": "Row Min Height",
-          "description": "Minimum row height in px. Defaults to 0px.",
-          "default": "0px",
-          "pattern": "[0-9]+px",
-          "type": "string"
-        },
-        "col_min_width": {
-          "title": "Col Min Width",
-          "description": "Minimum column width in px. Defaults to 0px.",
-          "default": "0px",
-          "pattern": "[0-9]+px",
-          "type": "string"
-        }
-      },
-      "required": ["grid"],
-      "additionalProperties": false
-    },
-    "Container": {
-      "title": "Container",
-      "description": "Container to group together a set of components on a page.\n\nArgs:\n    type (Literal[\"container\"]): Defaults to `\"container\"`.\n    components (List[ComponentType]): See [ComponentType][vizro.models.types.ComponentType]. At least one component\n        has to be provided.\n    title (str): Title to be displayed.\n    layout (Layout): Layout to place components in. Defaults to `None`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "container",
-          "enum": ["container"],
-          "type": "string"
-        },
-        "components": {
-          "title": "Components",
-          "type": "array",
-          "items": {
-            "discriminator": {
-              "propertyName": "type",
-              "mapping": {
-                "ag_grid": "#/definitions/AgGrid",
-                "button": "#/definitions/Button",
-                "card": "#/definitions/Card",
-                "container": "#/definitions/Container",
-                "figure": "#/definitions/Figure",
-                "graph": "#/definitions/Graph",
-                "table": "#/definitions/Table",
-                "tabs": "#/definitions/Tabs"
-              }
-            },
-            "oneOf": [
-              {
-                "$ref": "#/definitions/AgGrid"
-              },
-              {
-                "$ref": "#/definitions/Button"
-              },
-              {
-                "$ref": "#/definitions/Card"
-              },
-              {
-                "$ref": "#/definitions/Container"
-              },
-              {
-                "$ref": "#/definitions/Figure"
-              },
-              {
-                "$ref": "#/definitions/Graph"
-              },
-              {
-                "$ref": "#/definitions/Table"
-              },
-              {
-                "$ref": "#/definitions/Tabs"
-              }
-            ]
-          }
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed.",
-          "type": "string"
-        },
-        "layout": {
-          "$ref": "#/definitions/Layout"
-        }
-      },
-      "required": ["components", "title"],
-      "additionalProperties": false
-    },
-    "OptionsDictType": {
-      "title": "OptionsDictType",
-      "type": "object",
-      "properties": {
-        "label": {
-          "title": "Label",
-          "type": "string"
-        },
-        "value": {
-          "title": "Value",
-          "anyOf": [
-            {
-              "type": "boolean"
-            },
-            {
-              "type": "number"
-            },
-            {
-              "type": "string"
-            },
-            {
-              "type": "string",
-              "format": "date"
-            }
-          ]
-        }
-      },
-      "required": ["label", "value"],
-      "additionalProperties": false
-    },
-    "Checklist": {
-      "title": "Checklist",
-      "description": "Categorical multi-option selector `Checklist`.\n\nCan be provided to [`Filter`][vizro.models.Filter] or\n[`Parameter`][vizro.models.Parameter]. Based on the underlying\n[`dcc.Checklist`](https://dash.plotly.com/dash-core-components/checklist).\n\nArgs:\n    type (Literal[\"checklist\"]): Defaults to `\"checklist\"`.\n    options (OptionsType): See [`OptionsType`][vizro.models.types.OptionsType]. Defaults to `[]`.\n    value (Optional[MultiValueType]): See [`MultiValueType`][vizro.models.types.MultiValueType]. Defaults to `None`.\n    title (str): Title to be displayed. Defaults to `\"\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "checklist",
-          "enum": ["checklist"],
-          "type": "string"
-        },
-        "options": {
-          "title": "Options",
-          "default": [],
-          "anyOf": [
-            {
-              "type": "array",
-              "items": {
-                "type": "boolean"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "number"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string",
-                "format": "date"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/OptionsDictType"
-              }
-            }
-          ]
-        },
-        "value": {
-          "title": "Value",
-          "anyOf": [
-            {
-              "type": "array",
-              "items": {
-                "type": "boolean"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "number"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string",
-                "format": "date"
-              }
-            }
-          ]
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "DatePicker": {
-      "title": "DatePicker",
-      "description": "Temporal single/range option selector `DatePicker`.\n\nCan be provided to [`Filter`][vizro.models.Filter] or [`Parameter`][vizro.models.Parameter].\nBased on the underlying [`dmc.DatePicker`](https://www.dash-mantine-components.com/components/datepicker) or\n[`dmc.DateRangePicker`](https://www.dash-mantine-components.com/components/datepicker#daterangepicker).\n\nArgs:\n    type (Literal[\"date_picker\"]): Defaults to `\"date_picker\"`.\n    min (Optional[date]): Start date for date picker. Defaults to `None`.\n    max (Optional[date]): End date for date picker. Defaults to `None`.\n    value (Union[List[date], date]): Default date/dates for date picker. Defaults to `None`.\n    title (str): Title to be displayed. Defaults to `\"\"`.\n    range (bool): Boolean flag for displaying range picker. Default to `True`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "date_picker",
-          "enum": ["date_picker"],
-          "type": "string"
-        },
-        "min": {
-          "title": "Min",
-          "description": "Start date for date picker.",
-          "type": "string",
-          "format": "date"
-        },
-        "max": {
-          "title": "Max",
-          "description": "End date for date picker.",
-          "type": "string",
-          "format": "date"
-        },
-        "value": {
-          "title": "Value",
-          "description": "Default date for date picker",
-          "anyOf": [
-            {
-              "type": "array",
-              "items": {
-                "type": "string",
-                "format": "date"
-              }
-            },
-            {
-              "type": "string",
-              "format": "date"
-            }
-          ]
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed.",
-          "default": "",
-          "type": "string"
-        },
-        "range": {
-          "title": "Range",
-          "description": "Boolean flag for displaying range picker.",
-          "default": true,
-          "type": "boolean"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Dropdown": {
-      "title": "Dropdown",
-      "description": "Categorical single/multi-option selector `Dropdown`.\n\nCan be provided to [`Filter`][vizro.models.Filter] or\n[`Parameter`][vizro.models.Parameter]. Based on the underlying\n[`dcc.Dropdown`](https://dash.plotly.com/dash-core-components/dropdown).\n\nArgs:\n    type (Literal[\"dropdown\"]): Defaults to `\"dropdown\"`.\n    options (OptionsType): See [`OptionsType`][vizro.models.types.OptionsType]. Defaults to `[]`.\n    value (Optional[Union[SingleValueType, MultiValueType]]): See\n        [`SingleValueType`][vizro.models.types.SingleValueType] and\n        [`MultiValueType`][vizro.models.types.MultiValueType]. Defaults to `None`.\n    multi (bool): Whether to allow selection of multiple values. Defaults to `True`.\n    title (str): Title to be displayed. Defaults to `\"\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "dropdown",
-          "enum": ["dropdown"],
-          "type": "string"
-        },
-        "options": {
-          "title": "Options",
-          "default": [],
-          "anyOf": [
-            {
-              "type": "array",
-              "items": {
-                "type": "boolean"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "number"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string",
-                "format": "date"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/OptionsDictType"
-              }
-            }
-          ]
-        },
-        "value": {
-          "title": "Value",
-          "anyOf": [
-            {
-              "type": "boolean"
-            },
-            {
-              "type": "number"
-            },
-            {
-              "type": "string"
-            },
-            {
-              "type": "string",
-              "format": "date"
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "boolean"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "number"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string",
-                "format": "date"
-              }
-            }
-          ]
-        },
-        "multi": {
-          "title": "Multi",
-          "description": "Whether to allow selection of multiple values",
-          "default": true,
-          "type": "boolean"
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "RadioItems": {
-      "title": "RadioItems",
-      "description": "Categorical single-option selector `RadioItems`.\n\nCan be provided to [`Filter`][vizro.models.Filter] or\n[`Parameter`][vizro.models.Parameter]. Based on the underlying\n[`dcc.RadioItems`](https://dash.plotly.com/dash-core-components/radioitems).\n\nArgs:\n    type (Literal[\"radio_items\"]): Defaults to `\"radio_items\"`.\n    options (OptionsType): See [`OptionsType`][vizro.models.types.OptionsType]. Defaults to `[]`.\n    value (Optional[SingleValueType]): See [`SingleValueType`][vizro.models.types.SingleValueType].\n        Defaults to `None`.\n    title (str): Title to be displayed. Defaults to `\"\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "radio_items",
-          "enum": ["radio_items"],
-          "type": "string"
-        },
-        "options": {
-          "title": "Options",
-          "default": [],
-          "anyOf": [
-            {
-              "type": "array",
-              "items": {
-                "type": "boolean"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "number"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "type": "string",
-                "format": "date"
-              }
-            },
-            {
-              "type": "array",
-              "items": {
-                "$ref": "#/definitions/OptionsDictType"
-              }
-            }
-          ]
-        },
-        "value": {
-          "title": "Value",
-          "anyOf": [
-            {
-              "type": "boolean"
-            },
-            {
-              "type": "number"
-            },
-            {
-              "type": "string"
-            },
-            {
-              "type": "string",
-              "format": "date"
-            }
-          ]
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "RangeSlider": {
-      "title": "RangeSlider",
-      "description": "Numeric multi-option selector `RangeSlider`.\n\nCan be provided to [`Filter`][vizro.models.Filter] or\n[`Parameter`][vizro.models.Parameter]. Based on the underlying\n[`dcc.RangeSlider`](https://dash.plotly.com/dash-core-components/rangeslider).\n\nArgs:\n    type (Literal[\"range_slider\"]): Defaults to `\"range_slider\"`.\n    min (Optional[float]): Start value for slider. Defaults to `None`.\n    max (Optional[float]): End value for slider. Defaults to `None`.\n    step (Optional[float]): Step-size for marks on slider. Defaults to `None`.\n    marks (Optional[Dict[int, Union[str, dict]]]): Marks to be displayed on slider. Defaults to `{}`.\n    value (Optional[List[float]]): Default start and end value for slider. Must be 2 items. Defaults to `None`.\n    title (str): Title to be displayed. Defaults to `\"\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "range_slider",
-          "enum": ["range_slider"],
-          "type": "string"
-        },
-        "min": {
-          "title": "Min",
-          "description": "Start value for slider.",
-          "type": "number"
-        },
-        "max": {
-          "title": "Max",
-          "description": "End value for slider.",
-          "type": "number"
-        },
-        "step": {
-          "title": "Step",
-          "description": "Step-size for marks on slider.",
-          "type": "number"
-        },
-        "marks": {
-          "title": "Marks",
-          "description": "Marks to be displayed on slider.",
-          "default": {},
-          "type": "object",
-          "additionalProperties": {
-            "type": "string"
-          }
-        },
-        "value": {
-          "title": "Value",
-          "description": "Default start and end value for slider",
-          "minItems": 2,
-          "maxItems": 2,
-          "type": "array",
-          "items": {
-            "type": "number"
-          }
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed.",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Slider": {
-      "title": "Slider",
-      "description": "Numeric single-option selector `Slider`.\n\nCan be provided to [`Filter`][vizro.models.Filter] or\n[`Parameter`][vizro.models.Parameter]. Based on the underlying\n[`dcc.Slider`](https://dash.plotly.com/dash-core-components/slider).\n\nArgs:\n    type (Literal[\"range_slider\"]): Defaults to `\"range_slider\"`.\n    min (Optional[float]): Start value for slider. Defaults to `None`.\n    max (Optional[float]): End value for slider. Defaults to `None`.\n    step (Optional[float]): Step-size for marks on slider. Defaults to `None`.\n    marks (Optional[Dict[int, Union[str, dict]]]): Marks to be displayed on slider. Defaults to `{}`.\n    value (Optional[float]): Default value for slider. Defaults to `None`.\n    title (str): Title to be displayed. Defaults to `\"\"`.\n    actions (List[Action]): See [`Action`][vizro.models.Action]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "slider",
-          "enum": ["slider"],
-          "type": "string"
-        },
-        "min": {
-          "title": "Min",
-          "description": "Start value for slider.",
-          "type": "number"
-        },
-        "max": {
-          "title": "Max",
-          "description": "End value for slider.",
-          "type": "number"
-        },
-        "step": {
-          "title": "Step",
-          "description": "Step-size for marks on slider.",
-          "type": "number"
-        },
-        "marks": {
-          "title": "Marks",
-          "description": "Marks to be displayed on slider.",
-          "default": {},
-          "type": "object",
-          "additionalProperties": {
-            "type": "string"
-          }
-        },
-        "value": {
-          "title": "Value",
-          "description": "Default value for slider.",
-          "type": "number"
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed.",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Filter": {
-      "title": "Filter",
-      "description": "Filter the data supplied to `targets` on the [`Page`][vizro.models.Page].\n\nExamples:\n    >>> print(repr(Filter(column=\"species\")))\n\nArgs:\n    type (Literal[\"filter\"]): Defaults to `\"filter\"`.\n    column (str): Column of `DataFrame` to filter.\n    targets (List[ModelID]): Target component to be affected by filter. If none are given then target all components\n        on the page that use `column`.\n    selector (SelectorType): See [SelectorType][vizro.models.types.SelectorType]. Defaults to `None`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "filter",
-          "enum": ["filter"],
-          "type": "string"
-        },
-        "column": {
-          "title": "Column",
-          "description": "Column of DataFrame to filter.",
-          "type": "string"
-        },
-        "targets": {
-          "title": "Targets",
-          "description": "Target component to be affected by filter. If none are given then target all components on the page that use `column`.",
-          "default": [],
-          "type": "array",
-          "items": {
-            "type": "string"
-          }
-        },
-        "selector": {
-          "title": "Selector",
-          "description": "Selectors to be used inside a control.",
-          "discriminator": {
-            "propertyName": "type",
-            "mapping": {
-              "checklist": "#/definitions/Checklist",
-              "date_picker": "#/definitions/DatePicker",
-              "dropdown": "#/definitions/Dropdown",
-              "radio_items": "#/definitions/RadioItems",
-              "range_slider": "#/definitions/RangeSlider",
-              "slider": "#/definitions/Slider"
-            }
-          },
-          "oneOf": [
-            {
-              "$ref": "#/definitions/Checklist"
-            },
-            {
-              "$ref": "#/definitions/DatePicker"
-            },
-            {
-              "$ref": "#/definitions/Dropdown"
-            },
-            {
-              "$ref": "#/definitions/RadioItems"
-            },
-            {
-              "$ref": "#/definitions/RangeSlider"
-            },
-            {
-              "$ref": "#/definitions/Slider"
-            }
-          ]
-        }
-      },
-      "required": ["column"],
-      "additionalProperties": false
-    },
-    "Parameter": {
-      "title": "Parameter",
-      "description": "Alter the arguments supplied to any `targets` on the [`Page`][vizro.models.Page].\n\nExamples:\n    >>> Parameter(targets=[\"scatter.x\"], selector=Slider(min=0, max=1, default=0.8, title=\"Bubble opacity\"))\n\nArgs:\n    type (Literal[\"parameter\"]): Defaults to `\"parameter\"`.\n    targets (List[str]): Targets in the form of `<target_component>.<target_argument>`.\n    selector (SelectorType): See [SelectorType][vizro.models.types.SelectorType]. Converts selector value\n        `\"NONE\"` into `None` to allow optional parameters.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "parameter",
-          "enum": ["parameter"],
-          "type": "string"
-        },
-        "targets": {
-          "title": "Targets",
-          "description": "Targets in the form of `<target_component>.<target_argument>`.",
-          "type": "array",
-          "items": {
-            "type": "string"
-          }
-        },
-        "selector": {
-          "title": "Selector",
-          "description": "Selectors to be used inside a control.",
-          "discriminator": {
-            "propertyName": "type",
-            "mapping": {
-              "checklist": "#/definitions/Checklist",
-              "date_picker": "#/definitions/DatePicker",
-              "dropdown": "#/definitions/Dropdown",
-              "radio_items": "#/definitions/RadioItems",
-              "range_slider": "#/definitions/RangeSlider",
-              "slider": "#/definitions/Slider"
-            }
-          },
-          "oneOf": [
-            {
-              "$ref": "#/definitions/Checklist"
-            },
-            {
-              "$ref": "#/definitions/DatePicker"
-            },
-            {
-              "$ref": "#/definitions/Dropdown"
-            },
-            {
-              "$ref": "#/definitions/RadioItems"
-            },
-            {
-              "$ref": "#/definitions/RangeSlider"
-            },
-            {
-              "$ref": "#/definitions/Slider"
-            }
-          ]
-        }
-      },
-      "required": ["targets", "selector"],
-      "additionalProperties": false
-    },
-    "ActionsChain": {
-      "title": "ActionsChain",
-      "description": "All models that are registered to the model manager should inherit from this class.\n\nArgs:\n    id (str): ID to identify model. Must be unique throughout the whole dashboard. Defaults to `\"\"`.\n        When no ID is chosen, ID will be automatically generated.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "trigger": {
-          "title": "Trigger",
-          "type": "array",
-          "items": [
-            {
-              "title": "Component Id",
-              "type": "string"
-            },
-            {
-              "title": "Component Property",
-              "type": "string"
-            }
-          ],
-          "minItems": 2,
-          "maxItems": 2
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/Action"
-          }
-        }
-      },
-      "required": ["trigger"],
-      "additionalProperties": false
-    },
-    "Page": {
-      "title": "Page",
-      "description": "A page in [`Dashboard`][vizro.models.Dashboard] with its own URL path and place in the `Navigation`.\n\nArgs:\n    components (List[ComponentType]): See [ComponentType][vizro.models.types.ComponentType]. At least one component\n        has to be provided.\n    title (str): Title to be displayed.\n    description (str): Description for meta tags.\n    layout (Layout): Layout to place components in. Defaults to `None`.\n    controls (List[ControlType]): See [ControlType][vizro.models.types.ControlType]. Defaults to `[]`.\n    path (str): Path to navigate to page. Defaults to `\"\"`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "components": {
-          "title": "Components",
-          "type": "array",
-          "items": {
-            "discriminator": {
-              "propertyName": "type",
-              "mapping": {
-                "ag_grid": "#/definitions/AgGrid",
-                "button": "#/definitions/Button",
-                "card": "#/definitions/Card",
-                "container": "#/definitions/Container",
-                "figure": "#/definitions/Figure",
-                "graph": "#/definitions/Graph",
-                "table": "#/definitions/Table",
-                "tabs": "#/definitions/Tabs"
-              }
-            },
-            "oneOf": [
-              {
-                "$ref": "#/definitions/AgGrid"
-              },
-              {
-                "$ref": "#/definitions/Button"
-              },
-              {
-                "$ref": "#/definitions/Card"
-              },
-              {
-                "$ref": "#/definitions/Container"
-              },
-              {
-                "$ref": "#/definitions/Figure"
-              },
-              {
-                "$ref": "#/definitions/Graph"
-              },
-              {
-                "$ref": "#/definitions/Table"
-              },
-              {
-                "$ref": "#/definitions/Tabs"
-              }
-            ]
-          }
-        },
-        "title": {
-          "title": "Title",
-          "description": "Title to be displayed.",
-          "type": "string"
-        },
-        "description": {
-          "title": "Description",
-          "description": "Description for meta tags.",
-          "default": "",
-          "type": "string"
-        },
-        "layout": {
-          "$ref": "#/definitions/Layout"
-        },
-        "controls": {
-          "title": "Controls",
-          "default": [],
-          "type": "array",
-          "items": {
-            "discriminator": {
-              "propertyName": "type",
-              "mapping": {
-                "filter": "#/definitions/Filter",
-                "parameter": "#/definitions/Parameter"
-              }
-            },
-            "oneOf": [
-              {
-                "$ref": "#/definitions/Filter"
-              },
-              {
-                "$ref": "#/definitions/Parameter"
-              }
-            ]
-          }
-        },
-        "path": {
-          "title": "Path",
-          "description": "Path to navigate to page.",
-          "default": "",
-          "type": "string"
-        },
-        "actions": {
-          "title": "Actions",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/ActionsChain"
-          }
-        }
-      },
-      "required": ["components", "title"],
-      "additionalProperties": false
-    },
-    "Accordion": {
-      "title": "Accordion",
-      "description": "Accordion to be used as nav_selector in [`Navigation`][vizro.models.Navigation].\n\nArgs:\n    type (Literal[\"accordion\"]): Defaults to `\"accordion\"`.\n    pages (Dict[str, List[str]]): Mapping from name of a pages group to a list of page IDs. Defaults to `{}`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "accordion",
-          "enum": ["accordion"],
-          "type": "string"
-        },
-        "pages": {
-          "title": "Pages",
-          "description": "Mapping from name of a pages group to a list of page IDs.",
-          "default": {},
-          "type": "object",
-          "additionalProperties": {
-            "type": "array",
-            "items": {
-              "type": "string"
-            }
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "NavLink": {
-      "title": "NavLink",
-      "description": "Icon that serves as a navigation link to be used in navigation bar of Dashboard.\n\nArgs:\n    pages (NavPagesType): See [`NavPagesType`][vizro.models.types.NavPagesType]. Defaults to `[]`.\n    label (str): Text description of the icon for use in tooltip.\n    icon (str): Icon name from [Google Material icons library](https://fonts.google.com/icons). Defaults to `\"\"`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "pages": {
-          "title": "Pages",
-          "default": [],
-          "anyOf": [
-            {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            {
-              "type": "object",
-              "additionalProperties": {
-                "type": "array",
-                "items": {
-                  "type": "string"
-                }
-              }
-            }
-          ]
-        },
-        "label": {
-          "title": "Label",
-          "description": "Text description of the icon for use in tooltip.",
-          "type": "string"
-        },
-        "icon": {
-          "title": "Icon",
-          "description": "Icon name from Google Material icons library.",
-          "default": "",
-          "type": "string"
-        }
-      },
-      "required": ["label"],
-      "additionalProperties": false
-    },
-    "NavBar": {
-      "title": "NavBar",
-      "description": "Navigation bar to be used as a nav_selector for `Navigation`.\n\nArgs:\n    type (Literal[\"nav_bar\"]): Defaults to `\"nav_bar\"`.\n    pages (Dict[str, List[str]]): Mapping from name of a pages group to a list of page IDs. Defaults to `{}`.\n    items (List[NavLink]): See [`NavLink`][vizro.models.NavLink]. Defaults to `[]`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "type": {
-          "title": "Type",
-          "default": "nav_bar",
-          "enum": ["nav_bar"],
-          "type": "string"
-        },
-        "pages": {
-          "title": "Pages",
-          "description": "Mapping from name of a pages group to a list of page IDs.",
-          "default": {},
-          "type": "object",
-          "additionalProperties": {
-            "type": "array",
-            "items": {
-              "type": "string"
-            }
-          }
-        },
-        "items": {
-          "title": "Items",
-          "default": [],
-          "type": "array",
-          "items": {
-            "$ref": "#/definitions/NavLink"
-          }
-        }
-      },
-      "additionalProperties": false
-    },
-    "Navigation": {
-      "title": "Navigation",
-      "description": "Navigation in [`Dashboard`][vizro.models.Dashboard] to structure [`Pages`][vizro.models.Page].\n\nArgs:\n    pages (NavPagesType): See [`NavPagesType`][vizro.models.types.NavPagesType]. Defaults to `[]`.\n    nav_selector (NavSelectorType): See [`NavSelectorType`][vizro.models.types.NavSelectorType].\n        Defaults to `None`.",
-      "type": "object",
-      "properties": {
-        "id": {
-          "title": "Id",
-          "description": "ID to identify model. Must be unique throughout the whole dashboard.When no ID is chosen, ID will be automatically generated.",
-          "default": "",
-          "type": "string"
-        },
-        "pages": {
-          "title": "Pages",
-          "default": [],
-          "anyOf": [
-            {
-              "type": "array",
-              "items": {
-                "type": "string"
-              }
-            },
-            {
-              "type": "object",
-              "additionalProperties": {
-                "type": "array",
-                "items": {
-                  "type": "string"
-                }
-              }
-            }
-          ]
-        },
-        "nav_selector": {
-          "title": "Nav Selector",
-          "anyOf": [
-            {
-              "$ref": "#/definitions/Accordion"
-            },
-            {
-              "$ref": "#/definitions/NavBar"
-            }
-          ]
-        }
-      },
-      "additionalProperties": false
-    }
-  }
-}
diff --git a/vizro-core/schemas/0.1.20.json b/vizro-core/schemas/0.1.21.json
similarity index 100%
rename from vizro-core/schemas/0.1.20.json
rename to vizro-core/schemas/0.1.21.json
diff --git a/vizro-core/src/vizro/__init__.py b/vizro-core/src/vizro/__init__.py
index de93fc92f..7f695cfe1 100644
--- a/vizro-core/src/vizro/__init__.py
+++ b/vizro-core/src/vizro/__init__.py
@@ -13,7 +13,7 @@
 
 __all__ = ["Vizro"]
 
-__version__ = "0.1.21.dev0"
+__version__ = "0.1.21"
 
 
 # For the below _css_dist to be used by Dash, it must be retrieved by dash.resources.Css.get_all_css(). This means it