@cloudcannon/configuration-types 0.0.53 → 0.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,15 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-schemas.schema.json",
4
3
  "type": "object",
5
4
  "propertyNames": {
6
5
  "type": "string"
7
6
  },
8
7
  "additionalProperties": {
9
- "title": "Schema",
10
- "description": "This key defines your schemas, which are the structured data formats for your content files.",
11
8
  "type": "object",
12
9
  "properties": {
13
10
  "path": {
14
- "description": "This key defines the path to the schema file relative to the root folder of the site.",
15
11
  "type": "string",
12
+ "description": "This key defines the path to the schema file relative to the root folder of the site.",
16
13
  "documented": true,
17
14
  "title": "path",
18
15
  "markdownDescription": "This key defines the path to the schema file relative to the root folder of the site."
@@ -158,13 +155,14 @@
158
155
  "path"
159
156
  ],
160
157
  "additionalProperties": false,
158
+ "title": "Schema",
159
+ "description": "This key defines your schemas, which are the structured data formats for your content files.",
161
160
  "documented": true,
162
161
  "markdownDescription": "This key defines your schemas, which are the structured data formats for your content files."
163
162
  },
163
+ "$id": "https://github.com/cloudcannon/configuration-types/releases/latest/download/cloudcannon-schemas.schema.json",
164
164
  "definitions": {
165
165
  "icon": {
166
- "title": "Icon",
167
- "description": "Material Symbol icon names available in CloudCannon for UI elements and content previews.",
168
166
  "type": "string",
169
167
  "enum": [
170
168
  "123",
@@ -3752,12 +3750,12 @@
3752
3750
  "zoom_out",
3753
3751
  "zoom_out_map"
3754
3752
  ],
3753
+ "title": "Icon",
3754
+ "description": "Material Symbol icon names available in CloudCannon for UI elements and content previews.",
3755
3755
  "documented": false,
3756
3756
  "markdownDescription": "Material Symbol icon names available in CloudCannon for UI elements and content previews."
3757
3757
  },
3758
3758
  "type.create": {
3759
- "title": "Create",
3760
- "description": "This key defines the path to which CloudCannon will save new files in a Collection.\n\nCloudCannon generates \"Create Paths\" when you open the *Review changes* modal.\n\nFor more information, please read our documentation on [Create Paths](https://cloudcannon.com/documentation/articles/set-the-path-for-new-files/).\n\n## Examples\n\nIn this example, CloudCannon will generate a Create Path for new files in the `blog` Collection using the `date` and `title` structured data keys. For example, CloudCannon will generate a create path of `blog/2024-10-31-spooky-getaway.md` for a file with the date 31st October 2024 and the title \"Spooky Getaway\".\n\n```yaml\ncollections_config:\n blog:\n create:\n extra_data:\n filename: '{date|year}-{date|month}-{date|day}-{title}'\n path: '[relative_base_path]/{filename|slugify}.[ext]'\n```",
3761
3759
  "type": "object",
3762
3760
  "properties": {
3763
3761
  "path": {
@@ -3838,12 +3836,12 @@
3838
3836
  }
3839
3837
  },
3840
3838
  "additionalProperties": false,
3839
+ "title": "Create",
3840
+ "description": "This key defines the path to which CloudCannon will save new files in a Collection.\n\nCloudCannon generates \"Create Paths\" when you open the *Review changes* modal.\n\nFor more information, please read our documentation on [Create Paths](https://cloudcannon.com/documentation/articles/set-the-path-for-new-files/).\n\n## Examples\n\nIn this example, CloudCannon will generate a Create Path for new files in the `blog` Collection using the `date` and `title` structured data keys. For example, CloudCannon will generate a create path of `blog/2024-10-31-spooky-getaway.md` for a file with the date 31st October 2024 and the title \"Spooky Getaway\".\n\n```yaml\ncollections_config:\n blog:\n create:\n extra_data:\n filename: '{date|year}-{date|month}-{date|day}-{title}'\n path: '[relative_base_path]/{filename|slugify}.[ext]'\n```",
3841
3841
  "documented": true,
3842
3842
  "markdownDescription": "This key defines the path to which CloudCannon will save new files in a Collection.\n\nCloudCannon generates \"Create Paths\" when you open the *Review changes* modal.\n\nFor more information, please read our documentation on [Create Paths](https://cloudcannon.com/documentation/articles/set-the-path-for-new-files/).\n\n## Examples\n\nIn this example, CloudCannon will generate a Create Path for new files in the `blog` Collection using the `date` and `title` structured data keys. For example, CloudCannon will generate a create path of `blog/2024-10-31-spooky-getaway.md` for a file with the date 31st October 2024 and the title \"Spooky Getaway\".\n\n```yaml\ncollections_config:\n blog:\n create:\n extra_data:\n filename: '{date|year}-{date|month}-{date|day}-{title}'\n path: '[relative_base_path]/{filename|slugify}.[ext]'\n```"
3843
3843
  },
3844
3844
  "type._inputs": {
3845
- "title": "Inputs",
3846
- "description": "This key defines which inputs are available at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_inputs` will default to any\nvalues configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\n## Examples\n\nIn this example, we have configured the `date_created` key as a *Date and Time Input*, which will automatically populate when you create a file using this input. Editors cannot alter this input as the interface is disabled.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n comment: UTC +0 timezone\n context:\n open: false\n title: Help\n icon: help\n content: This date field will automatically populate when you create an article.\n hidden: false\n disabled: true\n instance_value: NOW\n cascade: true\n options:\n timezone: Etc/UTC\n```\n\nIn this example, we have configured the `blog_tags` key as a *Multiselect Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n blog_tags:\n type: multiselect\n label: Blog type\n comment: Select a blog type\n context:\n open: false\n title: Help\n icon: help\n content: |\n Blog tags help our users filter articles by topic.\n options:\n values:\n - Opinion\n - Feature\n - Resource\n```",
3847
3845
  "type": "object",
3848
3846
  "propertyNames": {
3849
3847
  "type": "string"
@@ -3851,15 +3849,14 @@
3851
3849
  "additionalProperties": {
3852
3850
  "$ref": "#/definitions/Input"
3853
3851
  },
3852
+ "title": "Inputs",
3853
+ "description": "This key defines which inputs are available at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_inputs` will default to any\nvalues configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\n## Examples\n\nIn this example, we have configured the `date_created` key as a *Date and Time Input*, which will automatically populate when you create a file using this input. Editors cannot alter this input as the interface is disabled.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n comment: UTC +0 timezone\n context:\n open: false\n title: Help\n icon: help\n content: This date field will automatically populate when you create an article.\n hidden: false\n disabled: true\n instance_value: NOW\n cascade: true\n options:\n timezone: Etc/UTC\n```\n\nIn this example, we have configured the `blog_tags` key as a *Multiselect Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n blog_tags:\n type: multiselect\n label: Blog type\n comment: Select a blog type\n context:\n open: false\n title: Help\n icon: help\n content: |\n Blog tags help our users filter articles by topic.\n options:\n values:\n - Opinion\n - Feature\n - Resource\n```",
3854
3854
  "documented": true,
3855
3855
  "markdownDescription": "This key defines which inputs are available at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_inputs` will default to any\nvalues configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\n## Examples\n\nIn this example, we have configured the `date_created` key as a *Date and Time Input*, which will automatically populate when you create a file using this input. Editors cannot alter this input as the interface is disabled.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n comment: UTC +0 timezone\n context:\n open: false\n title: Help\n icon: help\n content: This date field will automatically populate when you create an article.\n hidden: false\n disabled: true\n instance_value: NOW\n cascade: true\n options:\n timezone: Etc/UTC\n```\n\nIn this example, we have configured the `blog_tags` key as a *Multiselect Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n blog_tags:\n type: multiselect\n label: Blog type\n comment: Select a blog type\n context:\n open: false\n title: Help\n icon: help\n content: |\n Blog tags help our users filter articles by topic.\n options:\n values:\n - Opinion\n - Feature\n - Resource\n```"
3856
3856
  },
3857
3857
  "Input": {
3858
- "title": "Input",
3859
3858
  "anyOf": [
3860
3859
  {
3861
- "title": "Known Input",
3862
- "description": "This key defines an input configuration at a given level of the configuration cascade.\n\nThe value is an object that can contain `type`, `label`, `options`, `disabled`, `hidden`, and other input-specific properties. Each input configuration defines how team members interact with data in the *Data Editor*.\n\nFor more information, please read our documentation on [inputs](https://cloudcannon.com/documentation/articles/what-are-inputs/).\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n title:\n type: text\n label: Title\n```",
3863
3860
  "oneOf": [
3864
3861
  {
3865
3862
  "$ref": "#/definitions/TextInput"
@@ -3919,6 +3916,8 @@
3919
3916
  "$ref": "#/definitions/AutoInput"
3920
3917
  }
3921
3918
  ],
3919
+ "title": "Known Input",
3920
+ "description": "This key defines an input configuration at a given level of the configuration cascade.\n\nThe value is an object that can contain `type`, `label`, `options`, `disabled`, `hidden`, and other input-specific properties. Each input configuration defines how team members interact with data in the *Data Editor*.\n\nFor more information, please read our documentation on [inputs](https://cloudcannon.com/documentation/articles/what-are-inputs/).\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n title:\n type: text\n label: Title\n```",
3922
3921
  "documented": true,
3923
3922
  "markdownDescription": "This key defines an input configuration at a given level of the configuration cascade.\n\nThe value is an object that can contain `type`, `label`, `options`, `disabled`, `hidden`, and other input-specific properties. Each input configuration defines how team members interact with data in the *Data Editor*.\n\nFor more information, please read our documentation on [inputs](https://cloudcannon.com/documentation/articles/what-are-inputs/).\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n title:\n type: text\n label: Title\n```"
3924
3923
  },
@@ -3926,13 +3925,12 @@
3926
3925
  "$ref": "#/definitions/UnknownInput"
3927
3926
  }
3928
3927
  ],
3928
+ "title": "Input",
3929
3929
  "documented": true,
3930
3930
  "description": "This key defines an input configuration at a given level of the configuration cascade.\n\nThe value is an object that can contain `type`, `label`, `options`, `disabled`, `hidden`, and other input-specific properties. Each input configuration defines how team members interact with data in the *Data Editor*.\n\nFor more information, please read our documentation on [inputs](https://cloudcannon.com/documentation/articles/what-are-inputs/).\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n title:\n type: text\n label: Title\n```",
3931
3931
  "markdownDescription": "This key defines an input configuration at a given level of the configuration cascade.\n\nThe value is an object that can contain `type`, `label`, `options`, `disabled`, `hidden`, and other input-specific properties. Each input configuration defines how team members interact with data in the *Data Editor*.\n\nFor more information, please read our documentation on [inputs](https://cloudcannon.com/documentation/articles/what-are-inputs/).\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _inputs:\n title:\n type: text\n label: Title\n```"
3932
3932
  },
3933
3933
  "TextInput": {
3934
- "title": "Text Input",
3935
- "description": "This key defines a simple editing interface for plain text.\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input*.\n\n```yaml\n_inputs:\n title:\n type: text\n label: Blog Title\n```",
3936
3934
  "type": "object",
3937
3935
  "properties": {
3938
3936
  "comment": {
@@ -3977,8 +3975,6 @@
3977
3975
  "$ref": "#/definitions/type._inputs.*.cascade"
3978
3976
  },
3979
3977
  "type": {
3980
- "title": "Type",
3981
- "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* type.\n\n```yaml\n_inputs:\n title:\n type: text\n```",
3982
3978
  "type": "string",
3983
3979
  "enum": [
3984
3980
  "text",
@@ -3990,11 +3986,12 @@
3990
3986
  "github",
3991
3987
  "instagram"
3992
3988
  ],
3989
+ "title": "Type",
3990
+ "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* type.\n\n```yaml\n_inputs:\n title:\n type: text\n```",
3993
3991
  "documented": true,
3994
3992
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input* type.\n\n```yaml\n_inputs:\n title:\n type: text\n```"
3995
3993
  },
3996
3994
  "options": {
3997
- "description": "This key defines options that are specific to Text Inputs.\n\n## Examples\n\nIn this example, we have configured *Text Input* options including comment and icon.\n\n```yaml\n_inputs:\n title:\n type: text\n options:\n comment: Enter a title\n icon: title\n```",
3998
3995
  "type": "object",
3999
3996
  "properties": {
4000
3997
  "max_length": {
@@ -4102,6 +4099,7 @@
4102
4099
  }
4103
4100
  },
4104
4101
  "additionalProperties": false,
4102
+ "description": "This key defines options that are specific to Text Inputs.\n\n## Examples\n\nIn this example, we have configured *Text Input* options including comment and icon.\n\n```yaml\n_inputs:\n title:\n type: text\n options:\n comment: Enter a title\n icon: title\n```",
4105
4103
  "documented": true,
4106
4104
  "title": "options",
4107
4105
  "markdownDescription": "This key defines options that are specific to Text Inputs.\n\n## Examples\n\nIn this example, we have configured *Text Input* options including comment and icon.\n\n```yaml\n_inputs:\n title:\n type: text\n options:\n comment: Enter a title\n icon: title\n```"
@@ -4111,6 +4109,8 @@
4111
4109
  "type"
4112
4110
  ],
4113
4111
  "additionalProperties": false,
4112
+ "title": "Text Input",
4113
+ "description": "This key defines a simple editing interface for plain text.\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input*.\n\n```yaml\n_inputs:\n title:\n type: text\n label: Blog Title\n```",
4114
4114
  "documented": true,
4115
4115
  "markdownDescription": "This key defines a simple editing interface for plain text.\n\n## Examples\n\nIn this example, we have configured the `title` key as a *Text Input*.\n\n```yaml\n_inputs:\n title:\n type: text\n label: Blog Title\n```"
4116
4116
  },
@@ -4122,7 +4122,6 @@
4122
4122
  "markdownDescription": "This key defines the subtitle text above an Input.\n\nCloudCannon supports a limited selection of Markdown formatting for the value of this key: links, bold, italic, subscript, superscript, and inline\ncode.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we want to add helpful guidance for our `page_description` Input.\n\n```yaml\n_inputs:\n page_description:\n type: text\n label: Page Description\n comment: Enter a brief description of this page for search engines\n```"
4123
4123
  },
4124
4124
  "type._inputs.*.context": {
4125
- "description": "This key defines a context box for extra information about an Input.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we want to add a context box to our `date_created` Input to explain its purpose.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n instance_value: NOW\n context:\n open: false\n title: Help\n icon: help\n content: This date field will automatically populate when you create an article.\n```",
4126
4125
  "type": "object",
4127
4126
  "properties": {
4128
4127
  "content": {
@@ -4160,18 +4159,17 @@
4160
4159
  }
4161
4160
  },
4162
4161
  "additionalProperties": false,
4162
+ "description": "This key defines a context box for extra information about an Input.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we want to add a context box to our `date_created` Input to explain its purpose.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n instance_value: NOW\n context:\n open: false\n title: Help\n icon: help\n content: This date field will automatically populate when you create an article.\n```",
4163
4163
  "documented": true,
4164
4164
  "title": "context",
4165
4165
  "markdownDescription": "This key defines a context box for extra information about an Input.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we want to add a context box to our `date_created` Input to explain its purpose.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n instance_value: NOW\n context:\n open: false\n title: Help\n icon: help\n content: This date field will automatically populate when you create an article.\n```"
4166
4166
  },
4167
4167
  "type.documentation": {
4168
- "title": "Documentation",
4169
- "description": "This key defines the documentation link at the top of a *Collection browser*.\n\nCollection documentation is useful for assisting your team members.\n\n## Examples\n\nIn this example, the documentation link for the `data` Collection goes to [CloudCannon Documentation](https://cloudcannon.com/documentation/).\n\n```yaml\ncollections_config:\n data:\n documentation:\n url: https://cloudcannon.com/documentation/\n text: CloudCannon Documentation\n icon: star\n```",
4170
4168
  "type": "object",
4171
4169
  "properties": {
4172
4170
  "url": {
4173
- "description": "This key defines the URL for the documentation link at the top of a *Collection browser*.\n\nYou must define this key for the\n`documentation` object to function.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we have configured the `blog` Collection documentation link to go to `example.com`.\n\n```yaml\ncollections_config:\n blog:\n documentation:\n url: https://example.com\n```",
4174
4171
  "type": "string",
4172
+ "description": "This key defines the URL for the documentation link at the top of a *Collection browser*.\n\nYou must define this key for the\n`documentation` object to function.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we have configured the `blog` Collection documentation link to go to `example.com`.\n\n```yaml\ncollections_config:\n blog:\n documentation:\n url: https://example.com\n```",
4175
4173
  "documented": true,
4176
4174
  "title": "url",
4177
4175
  "markdownDescription": "This key defines the URL for the documentation link at the top of a *Collection browser*.\n\nYou must define this key for the\n`documentation` object to function.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we have configured the `blog` Collection documentation link to go to `example.com`.\n\n```yaml\ncollections_config:\n blog:\n documentation:\n url: https://example.com\n```"
@@ -4200,6 +4198,8 @@
4200
4198
  "url"
4201
4199
  ],
4202
4200
  "additionalProperties": false,
4201
+ "title": "Documentation",
4202
+ "description": "This key defines the documentation link at the top of a *Collection browser*.\n\nCollection documentation is useful for assisting your team members.\n\n## Examples\n\nIn this example, the documentation link for the `data` Collection goes to [CloudCannon Documentation](https://cloudcannon.com/documentation/).\n\n```yaml\ncollections_config:\n data:\n documentation:\n url: https://cloudcannon.com/documentation/\n text: CloudCannon Documentation\n icon: star\n```",
4203
4203
  "documented": true,
4204
4204
  "markdownDescription": "This key defines the documentation link at the top of a *Collection browser*.\n\nCollection documentation is useful for assisting your team members.\n\n## Examples\n\nIn this example, the documentation link for the `data` Collection goes to [CloudCannon Documentation](https://cloudcannon.com/documentation/).\n\n```yaml\ncollections_config:\n data:\n documentation:\n url: https://cloudcannon.com/documentation/\n text: CloudCannon Documentation\n icon: star\n```"
4205
4205
  },
@@ -4215,15 +4215,15 @@
4215
4215
  "default": false,
4216
4216
  "anyOf": [
4217
4217
  {
4218
- "title": "Boolean Hidden",
4219
4218
  "type": "boolean",
4219
+ "title": "Boolean Hidden",
4220
4220
  "documented": true,
4221
4221
  "description": "This key represents a boolean value for the `hidden` key that toggles whether CloudCannon hides an input from view.\n\nWhen set to `true`, CloudCannon hides the input from the *Data Editor* and the sidebar of the *Visual Editor* or *Content Editor*. The input still exists in the file and can be edited in the *Source Editor*.\n\nWhen set to `false`, CloudCannon displays the input normally.\n\nBy default, this key follows the input naming convention where key names beginning with an underscore are hidden (`true`). Otherwise, this key defaults to `false` (i.e., the input is visible).\n\n## Examples\n\nIn this example, we have configured an input to be hidden using a boolean value, making it only editable in the *Source Editor*.\n\n```yaml\n_inputs:\n internal_id:\n type: text\n label: Internal ID\n hidden: true\n```",
4222
4222
  "markdownDescription": "This key represents a boolean value for the `hidden` key that toggles whether CloudCannon hides an input from view.\n\nWhen set to `true`, CloudCannon hides the input from the *Data Editor* and the sidebar of the *Visual Editor* or *Content Editor*. The input still exists in the file and can be edited in the *Source Editor*.\n\nWhen set to `false`, CloudCannon displays the input normally.\n\nBy default, this key follows the input naming convention where key names beginning with an underscore are hidden (`true`). Otherwise, this key defaults to `false` (i.e., the input is visible).\n\n## Examples\n\nIn this example, we have configured an input to be hidden using a boolean value, making it only editable in the *Source Editor*.\n\n```yaml\n_inputs:\n internal_id:\n type: text\n label: Internal ID\n hidden: true\n```"
4223
4223
  },
4224
4224
  {
4225
- "title": "Query String Hidden",
4226
4225
  "type": "string",
4226
+ "title": "Query String Hidden",
4227
4227
  "documented": true,
4228
4228
  "description": "This key represents a query string value for the `hidden` key that conditionally hides an input based on another input's value.\n\nThe value is a string that references a sibling input key name. CloudCannon evaluates the referenced input's value to determine whether to hide this input.\n\nWhen the referenced input is truthy, CloudCannon hides this input. You can reverse this behavior by prefixing the string with `!`.\n\nFor reverse values in YAML files, the string should be wrapped in single or double quotation marks.\n\n## Examples\n\nIn this example, we have configured an input to be hidden when the `published` input is truthy.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n draft_notes:\n type: textarea\n label: Draft notes\n hidden: published\n```\n\nIn this example, we have configured an input to be hidden when the `published` input is falsy using the `!` prefix.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n publish_date:\n type: datetime\n label: Publish date\n hidden: '!published'\n```",
4229
4229
  "markdownDescription": "This key represents a query string value for the `hidden` key that conditionally hides an input based on another input's value.\n\nThe value is a string that references a sibling input key name. CloudCannon evaluates the referenced input's value to determine whether to hide this input.\n\nWhen the referenced input is truthy, CloudCannon hides this input. You can reverse this behavior by prefixing the string with `!`.\n\nFor reverse values in YAML files, the string should be wrapped in single or double quotation marks.\n\n## Examples\n\nIn this example, we have configured an input to be hidden when the `published` input is truthy.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n draft_notes:\n type: textarea\n label: Draft notes\n hidden: published\n```\n\nIn this example, we have configured an input to be hidden when the `published` input is falsy using the `!` prefix.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n publish_date:\n type: datetime\n label: Publish date\n hidden: '!published'\n```"
@@ -4238,15 +4238,15 @@
4238
4238
  "default": false,
4239
4239
  "anyOf": [
4240
4240
  {
4241
- "title": "Boolean",
4242
4241
  "type": "boolean",
4242
+ "title": "Boolean",
4243
4243
  "documented": true,
4244
4244
  "description": "This key represents a boolean value for the `disabled` key that toggles whether CloudCannon prevents editing of an input value.\n\nWhen set to `true`, CloudCannon prevents team members from editing the input value in the *Data Editor* or the sidebar of the *Visual Editor* or *Content Editor*. The input value is still displayed but cannot be modified outside of the *Source Editor*.\n\nWhen set to `false`, team members can edit the input value normally.\n\nBy default, this key is `false` (i.e., team members can edit input values).\n\n## Examples\n\nIn this example, we have configured a datetime input to be disabled using a boolean value, preventing editors from modifying the automatically generated date.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n disabled: true\n instance_value: NOW\n```",
4245
4245
  "markdownDescription": "This key represents a boolean value for the `disabled` key that toggles whether CloudCannon prevents editing of an input value.\n\nWhen set to `true`, CloudCannon prevents team members from editing the input value in the *Data Editor* or the sidebar of the *Visual Editor* or *Content Editor*. The input value is still displayed but cannot be modified outside of the *Source Editor*.\n\nWhen set to `false`, team members can edit the input value normally.\n\nBy default, this key is `false` (i.e., team members can edit input values).\n\n## Examples\n\nIn this example, we have configured a datetime input to be disabled using a boolean value, preventing editors from modifying the automatically generated date.\n\n```yaml\n_inputs:\n date_created:\n type: datetime\n label: Date of article creation\n disabled: true\n instance_value: NOW\n```"
4246
4246
  },
4247
4247
  {
4248
- "title": "Query String",
4249
4248
  "type": "string",
4249
+ "title": "Query String",
4250
4250
  "documented": true,
4251
4251
  "description": "This key represents a query string value for the `disabled` key that conditionally prevents editing of an input value based on another input's value.\n\nThe value is a string that references a sibling input key name. CloudCannon evaluates the referenced input's value to determine whether to disable this input.\n\nWhen the referenced input is truthy, CloudCannon disables this input. You can reverse this behavior by prefixing the string with `!`.\n\nFor reverse values in YAML files, the string should be wrapped in single or double quotation marks.\n\n## Examples\n\nIn this example, we have configured an input to be disabled when the `published` input is truthy.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n edit_date:\n type: datetime\n label: Last edited\n disabled: published\n```\n\nIn this example, we have configured an input to be disabled when the `published` input is falsy using the `!` prefix.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n draft_notes:\n type: textarea\n label: Draft notes\n disabled: '!published'\n```",
4252
4252
  "markdownDescription": "This key represents a query string value for the `disabled` key that conditionally prevents editing of an input value based on another input's value.\n\nThe value is a string that references a sibling input key name. CloudCannon evaluates the referenced input's value to determine whether to disable this input.\n\nWhen the referenced input is truthy, CloudCannon disables this input. You can reverse this behavior by prefixing the string with `!`.\n\nFor reverse values in YAML files, the string should be wrapped in single or double quotation marks.\n\n## Examples\n\nIn this example, we have configured an input to be disabled when the `published` input is truthy.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n edit_date:\n type: datetime\n label: Last edited\n disabled: published\n```\n\nIn this example, we have configured an input to be disabled when the `published` input is falsy using the `!` prefix.\n\n```yaml\n_inputs:\n published:\n type: checkbox\n label: Published\n draft_notes:\n type: textarea\n label: Draft notes\n disabled: '!published'\n```"
@@ -4462,8 +4462,8 @@
4462
4462
  "markdownDescription": "This key defines a custom error message that explains why a value has failed the validation criteria from `options.required`.\n\nThis key requires you to define `options.required`.\n\nThis key has no default.\n\nThis key is available for Array, Code, Color, Date and Time, File, Number, Object, Select and Multiselect, Text, Rich Text, and URL Inputs.\n\n## Examples\n\nIn this example, we prompt our team to use enter an Input value using a required message.\n\n```yaml\n_inputs:\n author:\n type: text\n comment: Enter the name of the author for this blog post.\n options:\n required: true\n required_message: You are not allowed to leave this blank.\n```"
4463
4463
  },
4464
4464
  "type._inputs.*.options.empty_type(text)": {
4465
- "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.",
4466
4465
  "default": "null",
4466
+ "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.",
4467
4467
  "type": "string",
4468
4468
  "enum": [
4469
4469
  "null",
@@ -4489,17 +4489,16 @@
4489
4489
  "title": "icon_color(previewentries)"
4490
4490
  },
4491
4491
  "type.preview-entry.(array)": {
4492
- "title": "Array Preview Entry",
4493
4492
  "type": "array",
4494
4493
  "items": {
4495
4494
  "$ref": "#/definitions/type.preview-entry"
4496
4495
  },
4496
+ "title": "Array Preview Entry",
4497
4497
  "documented": true,
4498
4498
  "description": "This key represents an array of preview entries for displaying data on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an array of preview entry objects, strings, or `false` values. Each preview entry object can contain a `key`, `template`, or `text` property. When multiple entries are provided, CloudCannon will use them in order as fallback options.\n\n## Examples\n\nIn this example, we have configured an array of preview entries with an array of values to provide fallback options. CloudCannon will use the value of `title` first, then the `{name}` template, and finally fall back to the static text value.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n - template: '{name}'\n - text: 'Untitled'\n```",
4499
4499
  "markdownDescription": "This key represents an array of preview entries for displaying data on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an array of preview entry objects, strings, or `false` values. Each preview entry object can contain a `key`, `template`, or `text` property. When multiple entries are provided, CloudCannon will use them in order as fallback options.\n\n## Examples\n\nIn this example, we have configured an array of preview entries with an array of values to provide fallback options. CloudCannon will use the value of `title` first, then the `{name}` template, and finally fall back to the static text value.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n - template: '{name}'\n - text: 'Untitled'\n```"
4500
4500
  },
4501
4501
  "type.preview-entry": {
4502
- "title": "Preview Entry",
4503
4502
  "anyOf": [
4504
4503
  {
4505
4504
  "$ref": "#/definitions/type.preview-entry.(key)"
@@ -4517,17 +4516,17 @@
4517
4516
  "$ref": "#/definitions/type.preview-entry.(false)"
4518
4517
  }
4519
4518
  ],
4519
+ "title": "Preview Entry",
4520
4520
  "documented": true,
4521
4521
  "description": "This key defines a preview entry configuration for displaying data on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value can be an object with a `key`, `template`, or `text` property, a raw text string, `false`, or an array of these values. When multiple entries are provided, CloudCannon will use them in order as fallback options. Preview entries are used to configure how data is displayed in card previews.\n\n## Examples\n\nIn this example, we have configured a preview entry with an array of values to provide fallback options. CloudCannon will use the value of `title` first, then the `{name}` template, and finally fall back to the static text value.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n - template: '{name}'\n - text: 'Untitled'\n```\n\nIn this example, we have configured a preview entry to display the `title` key.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n```",
4522
4522
  "markdownDescription": "This key defines a preview entry configuration for displaying data on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value can be an object with a `key`, `template`, or `text` property, a raw text string, `false`, or an array of these values. When multiple entries are provided, CloudCannon will use them in order as fallback options. Preview entries are used to configure how data is displayed in card previews.\n\n## Examples\n\nIn this example, we have configured a preview entry with an array of values to provide fallback options. CloudCannon will use the value of `title` first, then the `{name}` template, and finally fall back to the static text value.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n - template: '{name}'\n - text: 'Untitled'\n```\n\nIn this example, we have configured a preview entry to display the `title` key.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n```"
4523
4523
  },
4524
4524
  "type.preview-entry.(key)": {
4525
- "title": "Key Preview Entry",
4526
4525
  "type": "object",
4527
4526
  "properties": {
4528
4527
  "key": {
4529
- "title": "Key Value",
4530
4528
  "type": "string",
4529
+ "title": "Key Value",
4531
4530
  "documented": true,
4532
4531
  "description": "This key defines the data key name to display in a key preview entry.\n\nThe value is a string that specifies the name of a data key whose value will be displayed on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\n## Examples\n\nIn this example, we have configured the key value to display the `title` field.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n```",
4533
4532
  "markdownDescription": "This key defines the data key name to display in a key preview entry.\n\nThe value is a string that specifies the name of a data key whose value will be displayed on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\n## Examples\n\nIn this example, we have configured the key value to display the `title` field.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n```"
@@ -4537,17 +4536,17 @@
4537
4536
  "key"
4538
4537
  ],
4539
4538
  "additionalProperties": false,
4539
+ "title": "Key Preview Entry",
4540
4540
  "documented": true,
4541
4541
  "description": "This key represents a key preview entry type for displaying data from a specific key on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an object that contains a `key` property with a string value. This displays the value of the specified data key in card previews.\n\n## Examples\n\nIn this example, we have configured a key preview entry to display the `title` key.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n```",
4542
4542
  "markdownDescription": "This key represents a key preview entry type for displaying data from a specific key on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an object that contains a `key` property with a string value. This displays the value of the specified data key in card previews.\n\n## Examples\n\nIn this example, we have configured a key preview entry to display the `title` key.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n```"
4543
4543
  },
4544
4544
  "type.preview-entry.(template)": {
4545
- "title": "Template Preview Entry",
4546
4545
  "type": "object",
4547
4546
  "properties": {
4548
4547
  "template": {
4549
- "title": "Template Value",
4550
4548
  "type": "string",
4549
+ "title": "Template Value",
4551
4550
  "documented": true,
4552
4551
  "description": "This key defines the template string to use in a template preview entry.\n\nThe value is a string that specifies a template with placeholders (e.g., `{name}`, `{date}`) that will be replaced with data values when displayed on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\n## Examples\n\nIn this example, we have configured the template value to display author and date.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - template: '{author} - {date}'\n```",
4553
4552
  "markdownDescription": "This key defines the template string to use in a template preview entry.\n\nThe value is a string that specifies a template with placeholders (e.g., `{name}`, `{date}`) that will be replaced with data values when displayed on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\n## Examples\n\nIn this example, we have configured the template value to display author and date.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - template: '{author} - {date}'\n```"
@@ -4557,17 +4556,17 @@
4557
4556
  "template"
4558
4557
  ],
4559
4558
  "additionalProperties": false,
4559
+ "title": "Template Preview Entry",
4560
4560
  "documented": true,
4561
4561
  "description": "This key represents a template preview entry type for displaying formatted text using a template on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an object that contains a `template` property with a string value. This displays formatted text using template syntax (e.g., `{name}`) in card previews.\n\n## Examples\n\nIn this example, we have configured a template preview entry to display formatted text.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - template: '{author} - {date}'\n```",
4562
4562
  "markdownDescription": "This key represents a template preview entry type for displaying formatted text using a template on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an object that contains a `template` property with a string value. This displays formatted text using template syntax (e.g., `{name}`) in card previews.\n\n## Examples\n\nIn this example, we have configured a template preview entry to display formatted text.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - template: '{author} - {date}'\n```"
4563
4563
  },
4564
4564
  "type.preview-entry.(text)": {
4565
- "title": "Text Preview Entry",
4566
4565
  "type": "object",
4567
4566
  "properties": {
4568
4567
  "text": {
4569
- "title": "Text Value",
4570
4568
  "type": "string",
4569
+ "title": "Text Value",
4571
4570
  "documented": true,
4572
4571
  "description": "This key defines the static text string to display in a text preview entry.\n\nThe value is a string that specifies static text to display on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\n## Examples\n\nIn this example, we have configured the text value to display a static fallback message.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - text: 'Untitled'\n```",
4573
4572
  "markdownDescription": "This key defines the static text string to display in a text preview entry.\n\nThe value is a string that specifies static text to display on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\n## Examples\n\nIn this example, we have configured the text value to display a static fallback message.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - text: 'Untitled'\n```"
@@ -4577,28 +4576,27 @@
4577
4576
  "text"
4578
4577
  ],
4579
4578
  "additionalProperties": false,
4579
+ "title": "Text Preview Entry",
4580
4580
  "documented": true,
4581
4581
  "description": "This key represents a text preview entry type for displaying static text on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an object that contains a `text` property with a string value. This displays static text in card previews.\n\n## Examples\n\nIn this example, we have configured a text preview entry to display static text.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - text: 'Untitled'\n```",
4582
4582
  "markdownDescription": "This key represents a text preview entry type for displaying static text on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is an object that contains a `text` property with a string value. This displays static text in card previews.\n\n## Examples\n\nIn this example, we have configured a text preview entry to display static text.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - text: 'Untitled'\n```"
4583
4583
  },
4584
4584
  "type.preview-entry.(raw-text)": {
4585
- "title": "Raw Text Preview Entry",
4586
4585
  "type": "string",
4586
+ "title": "Raw Text Preview Entry",
4587
4587
  "documented": true,
4588
4588
  "description": "This key represents a raw text preview entry type for displaying static text on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is a string that specifies static text to display in card previews. This is equivalent to using `{ text: \"...\" }` but in a simpler format.\n\n## Examples\n\nIn this example, we have configured a raw text preview entry to display static text.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text: 'Untitled'\n```",
4589
4589
  "markdownDescription": "This key represents a raw text preview entry type for displaying static text on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value is a string that specifies static text to display in card previews. This is equivalent to using `{ text: \"...\" }` but in a simpler format.\n\n## Examples\n\nIn this example, we have configured a raw text preview entry to display static text.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text: 'Untitled'\n```"
4590
4590
  },
4591
4591
  "type.preview-entry.(false)": {
4592
- "title": "False Preview Entry",
4593
4592
  "type": "boolean",
4594
4593
  "const": false,
4594
+ "title": "False Preview Entry",
4595
4595
  "documented": true,
4596
4596
  "description": "This key represents a preview entry that disables the preview display for a specific field on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value must be `false`. Setting a preview entry to `false` will hide that preview element.\n\n## Examples\n\nIn this example, we have configured the preview text to be disabled.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text: false\n```",
4597
4597
  "markdownDescription": "This key represents a preview entry that disables the preview display for a specific field on *Cards* in the *Collection browser*, *Structures*, and *Snippets*.\n\nThe value must be `false`. Setting a preview entry to `false` will hide that preview element.\n\n## Examples\n\nIn this example, we have configured the preview text to be disabled.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text: false\n```"
4598
4598
  },
4599
4599
  "TextareaInput": {
4600
- "title": "Textarea Input",
4601
- "description": "This key defines an editing interface for plain text.\n\n## Examples\n\nIn this example, we have configured the `description` key as a *Textarea Input*.\n\n```yaml\n_inputs:\n description:\n type: textarea\n label: Description\n```",
4602
4600
  "type": "object",
4603
4601
  "properties": {
4604
4602
  "comment": {
@@ -4643,15 +4641,14 @@
4643
4641
  "$ref": "#/definitions/type._inputs.*.cascade"
4644
4642
  },
4645
4643
  "type": {
4646
- "title": "Type",
4647
- "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `description` key as a *Textarea Input* type.\n\n```yaml\n_inputs:\n description:\n type: textarea\n```",
4648
4644
  "type": "string",
4649
4645
  "const": "textarea",
4646
+ "title": "Type",
4647
+ "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `description` key as a *Textarea Input* type.\n\n```yaml\n_inputs:\n description:\n type: textarea\n```",
4650
4648
  "documented": true,
4651
4649
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `description` key as a *Textarea Input* type.\n\n```yaml\n_inputs:\n description:\n type: textarea\n```"
4652
4650
  },
4653
4651
  "options": {
4654
- "description": "This key defines options that are specific to Textarea Inputs.\n\n## Examples\n\nIn this example, we have configured *Textarea Input* options including comment and character count.\n\n```yaml\n_inputs:\n description:\n type: textarea\n options:\n comment: Enter a description\n show_count: true\n```",
4655
4652
  "type": "object",
4656
4653
  "properties": {
4657
4654
  "max_length": {
@@ -4734,6 +4731,7 @@
4734
4731
  }
4735
4732
  },
4736
4733
  "additionalProperties": false,
4734
+ "description": "This key defines options that are specific to Textarea Inputs.\n\n## Examples\n\nIn this example, we have configured *Textarea Input* options including comment and character count.\n\n```yaml\n_inputs:\n description:\n type: textarea\n options:\n comment: Enter a description\n show_count: true\n```",
4737
4735
  "documented": true,
4738
4736
  "title": "options",
4739
4737
  "markdownDescription": "This key defines options that are specific to Textarea Inputs.\n\n## Examples\n\nIn this example, we have configured *Textarea Input* options including comment and character count.\n\n```yaml\n_inputs:\n description:\n type: textarea\n options:\n comment: Enter a description\n show_count: true\n```"
@@ -4743,12 +4741,12 @@
4743
4741
  "type"
4744
4742
  ],
4745
4743
  "additionalProperties": false,
4744
+ "title": "Textarea Input",
4745
+ "description": "This key defines an editing interface for plain text.\n\n## Examples\n\nIn this example, we have configured the `description` key as a *Textarea Input*.\n\n```yaml\n_inputs:\n description:\n type: textarea\n label: Description\n```",
4746
4746
  "documented": true,
4747
4747
  "markdownDescription": "This key defines an editing interface for plain text.\n\n## Examples\n\nIn this example, we have configured the `description` key as a *Textarea Input*.\n\n```yaml\n_inputs:\n description:\n type: textarea\n label: Description\n```"
4748
4748
  },
4749
4749
  "CodeInput": {
4750
- "title": "Code Input",
4751
- "description": "This key defines an editing interface for code or mono-spaced plain text content.",
4752
4750
  "type": "object",
4753
4751
  "properties": {
4754
4752
  "comment": {
@@ -4793,15 +4791,14 @@
4793
4791
  "$ref": "#/definitions/type._inputs.*.cascade"
4794
4792
  },
4795
4793
  "type": {
4796
- "title": "Type",
4797
- "description": "This key defines the input type, which controls how this input appears and behaves.",
4798
4794
  "type": "string",
4799
4795
  "const": "code",
4796
+ "title": "Type",
4797
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
4800
4798
  "documented": true,
4801
4799
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
4802
4800
  },
4803
4801
  "options": {
4804
- "description": "This key defines options that are specific to Code Inputs.",
4805
4802
  "type": "object",
4806
4803
  "properties": {
4807
4804
  "tab_size": {
@@ -4930,6 +4927,7 @@
4930
4927
  }
4931
4928
  },
4932
4929
  "additionalProperties": false,
4930
+ "description": "This key defines options that are specific to Code Inputs.",
4933
4931
  "documented": true,
4934
4932
  "title": "options",
4935
4933
  "markdownDescription": "This key defines options that are specific to Code Inputs."
@@ -4939,6 +4937,8 @@
4939
4937
  "type"
4940
4938
  ],
4941
4939
  "additionalProperties": false,
4940
+ "title": "Code Input",
4941
+ "description": "This key defines an editing interface for code or mono-spaced plain text content.",
4942
4942
  "documented": true,
4943
4943
  "markdownDescription": "This key defines an editing interface for code or mono-spaced plain text content."
4944
4944
  },
@@ -4975,8 +4975,6 @@
4975
4975
  "title": "theme(theme)"
4976
4976
  },
4977
4977
  "Syntax": {
4978
- "title": "Syntax",
4979
- "description": "Available syntax highlighting languages for code editors in CloudCannon.",
4980
4978
  "type": "string",
4981
4979
  "enum": [
4982
4980
  "c_cpp",
@@ -5048,12 +5046,12 @@
5048
5046
  "xquery",
5049
5047
  "yaml"
5050
5048
  ],
5049
+ "title": "Syntax",
5050
+ "description": "Available syntax highlighting languages for code editors in CloudCannon.",
5051
5051
  "documented": false,
5052
5052
  "markdownDescription": "Available syntax highlighting languages for code editors in CloudCannon."
5053
5053
  },
5054
5054
  "ColorInput": {
5055
- "title": "Color Input",
5056
- "description": "This key defines an editing interface for color values.",
5057
5055
  "type": "object",
5058
5056
  "properties": {
5059
5057
  "comment": {
@@ -5098,15 +5096,14 @@
5098
5096
  "$ref": "#/definitions/type._inputs.*.cascade"
5099
5097
  },
5100
5098
  "type": {
5101
- "title": "Type",
5102
- "description": "This key defines the input type, which controls how this input appears and behaves.",
5103
5099
  "type": "string",
5104
5100
  "const": "color",
5101
+ "title": "Type",
5102
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
5105
5103
  "documented": true,
5106
5104
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
5107
5105
  },
5108
5106
  "options": {
5109
- "description": "This key defines options that are specific to Color Inputs.",
5110
5107
  "type": "object",
5111
5108
  "properties": {
5112
5109
  "max_length": {
@@ -5216,6 +5213,7 @@
5216
5213
  }
5217
5214
  },
5218
5215
  "additionalProperties": false,
5216
+ "description": "This key defines options that are specific to Color Inputs.",
5219
5217
  "documented": true,
5220
5218
  "title": "options",
5221
5219
  "markdownDescription": "This key defines options that are specific to Color Inputs."
@@ -5225,12 +5223,12 @@
5225
5223
  "type"
5226
5224
  ],
5227
5225
  "additionalProperties": false,
5226
+ "title": "Color Input",
5227
+ "description": "This key defines an editing interface for color values.",
5228
5228
  "documented": true,
5229
5229
  "markdownDescription": "This key defines an editing interface for color values."
5230
5230
  },
5231
5231
  "BooleanInput": {
5232
- "title": "Boolean Input",
5233
- "description": "This key defines an editing interface for true or false values.\n\n## Examples\n\nIn this example, we have configured the `featured` key as a *Boolean Input*.\n\n```yaml\n_inputs:\n featured:\n type: switch\n label: Featured\n```",
5234
5232
  "type": "object",
5235
5233
  "properties": {
5236
5234
  "comment": {
@@ -5275,13 +5273,13 @@
5275
5273
  "$ref": "#/definitions/type._inputs.*.cascade"
5276
5274
  },
5277
5275
  "type": {
5278
- "title": "Type",
5279
- "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `featured` key as a *Boolean Input* type.\n\n```yaml\n_inputs:\n featured:\n type: switch\n```",
5280
5276
  "type": "string",
5281
5277
  "enum": [
5282
5278
  "checkbox",
5283
5279
  "switch"
5284
5280
  ],
5281
+ "title": "Type",
5282
+ "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `featured` key as a *Boolean Input* type.\n\n```yaml\n_inputs:\n featured:\n type: switch\n```",
5285
5283
  "documented": true,
5286
5284
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `featured` key as a *Boolean Input* type.\n\n```yaml\n_inputs:\n featured:\n type: switch\n```"
5287
5285
  }
@@ -5290,12 +5288,12 @@
5290
5288
  "type"
5291
5289
  ],
5292
5290
  "additionalProperties": false,
5291
+ "title": "Boolean Input",
5292
+ "description": "This key defines an editing interface for true or false values.\n\n## Examples\n\nIn this example, we have configured the `featured` key as a *Boolean Input*.\n\n```yaml\n_inputs:\n featured:\n type: switch\n label: Featured\n```",
5293
5293
  "documented": true,
5294
5294
  "markdownDescription": "This key defines an editing interface for true or false values.\n\n## Examples\n\nIn this example, we have configured the `featured` key as a *Boolean Input*.\n\n```yaml\n_inputs:\n featured:\n type: switch\n label: Featured\n```"
5295
5295
  },
5296
5296
  "NumberInput": {
5297
- "title": "Number Input",
5298
- "description": "This key defines an editing interface for numeric values.\n\n## Examples\n\nIn this example, we have configured the `quantity` key as a *Number Input*.\n\n```yaml\n_inputs:\n quantity:\n type: number\n label: Quantity\n```",
5299
5297
  "type": "object",
5300
5298
  "properties": {
5301
5299
  "comment": {
@@ -5340,15 +5338,14 @@
5340
5338
  "$ref": "#/definitions/type._inputs.*.cascade"
5341
5339
  },
5342
5340
  "type": {
5343
- "title": "Type",
5344
- "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `quantity` key as a *Number Input* type.\n\n```yaml\n_inputs:\n quantity:\n type: number\n```",
5345
5341
  "type": "string",
5346
5342
  "const": "number",
5343
+ "title": "Type",
5344
+ "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `quantity` key as a *Number Input* type.\n\n```yaml\n_inputs:\n quantity:\n type: number\n```",
5347
5345
  "documented": true,
5348
5346
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `quantity` key as a *Number Input* type.\n\n```yaml\n_inputs:\n quantity:\n type: number\n```"
5349
5347
  },
5350
5348
  "options": {
5351
- "description": "This key defines options that are specific to Number Inputs.\n\n## Examples\n\nIn this example, we have configured *Number Input* options including min and max values.\n\n```yaml\n_inputs:\n quantity:\n type: number\n options:\n min: 1\n max: 100\n```",
5352
5349
  "type": "object",
5353
5350
  "properties": {
5354
5351
  "required": {
@@ -5395,6 +5392,7 @@
5395
5392
  }
5396
5393
  },
5397
5394
  "additionalProperties": false,
5395
+ "description": "This key defines options that are specific to Number Inputs.\n\n## Examples\n\nIn this example, we have configured *Number Input* options including min and max values.\n\n```yaml\n_inputs:\n quantity:\n type: number\n options:\n min: 1\n max: 100\n```",
5398
5396
  "documented": true,
5399
5397
  "title": "options",
5400
5398
  "markdownDescription": "This key defines options that are specific to Number Inputs.\n\n## Examples\n\nIn this example, we have configured *Number Input* options including min and max values.\n\n```yaml\n_inputs:\n quantity:\n type: number\n options:\n min: 1\n max: 100\n```"
@@ -5404,12 +5402,14 @@
5404
5402
  "type"
5405
5403
  ],
5406
5404
  "additionalProperties": false,
5405
+ "title": "Number Input",
5406
+ "description": "This key defines an editing interface for numeric values.\n\n## Examples\n\nIn this example, we have configured the `quantity` key as a *Number Input*.\n\n```yaml\n_inputs:\n quantity:\n type: number\n label: Quantity\n```",
5407
5407
  "documented": true,
5408
5408
  "markdownDescription": "This key defines an editing interface for numeric values.\n\n## Examples\n\nIn this example, we have configured the `quantity` key as a *Number Input*.\n\n```yaml\n_inputs:\n quantity:\n type: number\n label: Quantity\n```"
5409
5409
  },
5410
5410
  "type._inputs.*.options.empty_type(number)": {
5411
- "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty number values will be saved.\n\n```yaml\n_inputs:\n quantity:\n type: number\n options:\n empty_type: number\n```",
5412
5411
  "default": "null",
5412
+ "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty number values will be saved.\n\n```yaml\n_inputs:\n quantity:\n type: number\n options:\n empty_type: number\n```",
5413
5413
  "type": "string",
5414
5414
  "enum": [
5415
5415
  "null",
@@ -5420,15 +5420,15 @@
5420
5420
  "markdownDescription": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty number values will be saved.\n\n```yaml\n_inputs:\n quantity:\n type: number\n options:\n empty_type: number\n```"
5421
5421
  },
5422
5422
  "type._inputs.*.options.min": {
5423
- "description": "This key defines the minimum numerical value CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from entering a lesser numerical value.\n\nIf the Input already contains a lesser numerical value, CloudCannon will require you to enter a valid value to save your changes, or discard your\nunsaved changes.\n\nThis key is required for `range` inputs.\n\nValue can be any number.\n\nIf `options.max` is also configured, this key cannot be a greater number.\n\nThis key has no default.\n\nThis key is available for Number Inputs.\n\n## Examples\n\nIn this example, we want to add a rating out of five for each article in our travel blog using the `rating` Input. This Input limits you to a minimum rating of one.\n\n```yaml\n_inputs:\n rating:\n type: number\n comment: How highly did you rate this experience?\n options:\n max: 5\n min: 1\n```",
5424
5423
  "type": "number",
5424
+ "description": "This key defines the minimum numerical value CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from entering a lesser numerical value.\n\nIf the Input already contains a lesser numerical value, CloudCannon will require you to enter a valid value to save your changes, or discard your\nunsaved changes.\n\nThis key is required for `range` inputs.\n\nValue can be any number.\n\nIf `options.max` is also configured, this key cannot be a greater number.\n\nThis key has no default.\n\nThis key is available for Number Inputs.\n\n## Examples\n\nIn this example, we want to add a rating out of five for each article in our travel blog using the `rating` Input. This Input limits you to a minimum rating of one.\n\n```yaml\n_inputs:\n rating:\n type: number\n comment: How highly did you rate this experience?\n options:\n max: 5\n min: 1\n```",
5425
5425
  "documented": true,
5426
5426
  "title": "min",
5427
5427
  "markdownDescription": "This key defines the minimum numerical value CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from entering a lesser numerical value.\n\nIf the Input already contains a lesser numerical value, CloudCannon will require you to enter a valid value to save your changes, or discard your\nunsaved changes.\n\nThis key is required for `range` inputs.\n\nValue can be any number.\n\nIf `options.max` is also configured, this key cannot be a greater number.\n\nThis key has no default.\n\nThis key is available for Number Inputs.\n\n## Examples\n\nIn this example, we want to add a rating out of five for each article in our travel blog using the `rating` Input. This Input limits you to a minimum rating of one.\n\n```yaml\n_inputs:\n rating:\n type: number\n comment: How highly did you rate this experience?\n options:\n max: 5\n min: 1\n```"
5428
5428
  },
5429
5429
  "type._inputs.*.options.max": {
5430
- "description": "This key defines the maximum numerical value CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from entering a greater numerical value.\n\nIf the Input already contains a greater numerical value, CloudCannon will require you to enter a valid value to save your changes, or discard your\nunsaved changes.\n\nThis key is required for `range` inputs.\n\nValue can be any integer.\n\nIf `options.min` is also configured, this key cannot be a lesser number.\n\nThis key has no default.\n\nThis key is available for Number Inputs.\n\n## Examples\n\nIn this example, we want to add a rating out of five for each article in our travel blog using the `rating` Input. This Input limits you to a maximum rating of five.\n\n```yaml\n_inputs:\n rating:\n type: number\n comment: How highly did you rate this experience?\n options:\n max: 5\n min: 1\n```",
5431
5430
  "type": "number",
5431
+ "description": "This key defines the maximum numerical value CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from entering a greater numerical value.\n\nIf the Input already contains a greater numerical value, CloudCannon will require you to enter a valid value to save your changes, or discard your\nunsaved changes.\n\nThis key is required for `range` inputs.\n\nValue can be any integer.\n\nIf `options.min` is also configured, this key cannot be a lesser number.\n\nThis key has no default.\n\nThis key is available for Number Inputs.\n\n## Examples\n\nIn this example, we want to add a rating out of five for each article in our travel blog using the `rating` Input. This Input limits you to a maximum rating of five.\n\n```yaml\n_inputs:\n rating:\n type: number\n comment: How highly did you rate this experience?\n options:\n max: 5\n min: 1\n```",
5432
5432
  "documented": true,
5433
5433
  "title": "max",
5434
5434
  "markdownDescription": "This key defines the maximum numerical value CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from entering a greater numerical value.\n\nIf the Input already contains a greater numerical value, CloudCannon will require you to enter a valid value to save your changes, or discard your\nunsaved changes.\n\nThis key is required for `range` inputs.\n\nValue can be any integer.\n\nIf `options.min` is also configured, this key cannot be a lesser number.\n\nThis key has no default.\n\nThis key is available for Number Inputs.\n\n## Examples\n\nIn this example, we want to add a rating out of five for each article in our travel blog using the `rating` Input. This Input limits you to a maximum rating of five.\n\n```yaml\n_inputs:\n rating:\n type: number\n comment: How highly did you rate this experience?\n options:\n max: 5\n min: 1\n```"
@@ -5455,8 +5455,6 @@
5455
5455
  "markdownDescription": "This key defines a custom error message that explains why a value has failed the validation criteria from `options.max`.\nThis key requires you to define `options.max`.\n\nThis key has no default.\n\nThis key is available for Number Inputs.\n\n## Examples\n\nIn this example, we prompt our team to enter a valid number using a custom message.\n\n```yaml\n_inputs:\n rating:\n type: number\n comment: How highly did you rate this experience?\n options:\n max: 5\n max_message: Cannot be more than 5\n min: 1\n min_message: Cannot be less than 1\n```"
5456
5456
  },
5457
5457
  "RangeInput": {
5458
- "title": "Range Input",
5459
- "description": "This key defines a slider interface for selecting a numeric value.",
5460
5458
  "type": "object",
5461
5459
  "properties": {
5462
5460
  "comment": {
@@ -5501,15 +5499,14 @@
5501
5499
  "$ref": "#/definitions/type._inputs.*.cascade"
5502
5500
  },
5503
5501
  "type": {
5504
- "title": "Type",
5505
- "description": "This key defines the input type, which controls how this input appears and behaves.",
5506
5502
  "type": "string",
5507
5503
  "const": "range",
5504
+ "title": "Type",
5505
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
5508
5506
  "documented": true,
5509
5507
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
5510
5508
  },
5511
5509
  "options": {
5512
- "description": "This key defines options that are specific to Range Inputs.",
5513
5510
  "type": "object",
5514
5511
  "properties": {
5515
5512
  "required": {
@@ -5548,6 +5545,7 @@
5548
5545
  "max"
5549
5546
  ],
5550
5547
  "additionalProperties": false,
5548
+ "description": "This key defines options that are specific to Range Inputs.",
5551
5549
  "documented": true,
5552
5550
  "title": "options",
5553
5551
  "markdownDescription": "This key defines options that are specific to Range Inputs."
@@ -5557,12 +5555,12 @@
5557
5555
  "type"
5558
5556
  ],
5559
5557
  "additionalProperties": false,
5558
+ "title": "Range Input",
5559
+ "description": "This key defines a slider interface for selecting a numeric value.",
5560
5560
  "documented": true,
5561
5561
  "markdownDescription": "This key defines a slider interface for selecting a numeric value."
5562
5562
  },
5563
5563
  "RichTextInput": {
5564
- "title": "Rich Text Input",
5565
- "description": "This key defines an editing interface for HTML markup content.",
5566
5564
  "type": "object",
5567
5565
  "properties": {
5568
5566
  "comment": {
@@ -5607,18 +5605,17 @@
5607
5605
  "$ref": "#/definitions/type._inputs.*.cascade"
5608
5606
  },
5609
5607
  "type": {
5610
- "title": "Type",
5611
- "description": "This key defines the input type, which controls how this input appears and behaves.",
5612
5608
  "type": "string",
5613
5609
  "enum": [
5614
5610
  "html",
5615
5611
  "markdown"
5616
5612
  ],
5613
+ "title": "Type",
5614
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
5617
5615
  "documented": true,
5618
5616
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
5619
5617
  },
5620
5618
  "options": {
5621
- "description": "This key defines options that are specific to Rich Text Inputs.",
5622
5619
  "type": "object",
5623
5620
  "properties": {
5624
5621
  "mime_type": {
@@ -5824,11 +5821,11 @@
5824
5821
  },
5825
5822
  "allow_resize": {
5826
5823
  "deprecated": true,
5827
- "description": "**⚠️ DEPRECATED:** This key is deprecated. Use `preview_resize` instead.\nThis key toggles whether CloudCannon will show the resize handler to vertically resize the input.\n\nSetting this key to `false` will hide the resize handler.\n\nBy default, this key is `true` (i.e., the resize handler is shown).",
5828
5824
  "type": "boolean",
5829
5825
  "documented": true,
5830
5826
  "title": "allow_resize",
5831
- "markdownDescription": "**⚠️ DEPRECATED:** This key is deprecated. Use `preview_resize` instead.\nThis key toggles whether CloudCannon will show the resize handler to vertically resize the input.\n\nSetting this key to `false` will hide the resize handler.\n\nBy default, this key is `true` (i.e., the resize handler is shown)."
5827
+ "description": "This key is deprecated. Use `preview_resize` instead.\n\nThis key toggles whether CloudCannon will show the resize handler to vertically resize the input.\n\nSetting this key to `false` will hide the resize handler.\n\nBy default, this key is `true` (i.e., the resize handler is shown).",
5828
+ "markdownDescription": "This key is deprecated. Use `preview_resize` instead.\n\nThis key toggles whether CloudCannon will show the resize handler to vertically resize the input.\n\nSetting this key to `false` will hide the resize handler.\n\nBy default, this key is `true` (i.e., the resize handler is shown)."
5832
5829
  },
5833
5830
  "prevent_resize": {
5834
5831
  "description": "Shows or hides the resize handler to vertically resize the input.",
@@ -5847,6 +5844,7 @@
5847
5844
  }
5848
5845
  },
5849
5846
  "additionalProperties": false,
5847
+ "description": "This key defines options that are specific to Rich Text Inputs.",
5850
5848
  "documented": true,
5851
5849
  "title": "options",
5852
5850
  "markdownDescription": "This key defines options that are specific to Rich Text Inputs."
@@ -5856,6 +5854,8 @@
5856
5854
  "type"
5857
5855
  ],
5858
5856
  "additionalProperties": false,
5857
+ "title": "Rich Text Input",
5858
+ "description": "This key defines an editing interface for HTML markup content.",
5859
5859
  "documented": true,
5860
5860
  "markdownDescription": "This key defines an editing interface for HTML markup content."
5861
5861
  },
@@ -5945,8 +5945,8 @@
5945
5945
  "type": "object",
5946
5946
  "properties": {
5947
5947
  "size": {
5948
- "description": "This key defines a number suffixed with \"x\" (relative size) or \"w\" (fixed width) for setting the dimensions of the image (e.g. 2x, 3x, 100w, 360w).\n\n## Examples\n\nIn this example, we have configured a size definition for an *Image Input* to create a 2x relative size image.\n\n```yaml\n_inputs:\n hero_image:\n type: image\n options:\n sizes:\n - size: 2x\n```",
5949
5948
  "type": "string",
5949
+ "description": "This key defines a number suffixed with \"x\" (relative size) or \"w\" (fixed width) for setting the dimensions of the image (e.g. 2x, 3x, 100w, 360w).\n\n## Examples\n\nIn this example, we have configured a size definition for an *Image Input* to create a 2x relative size image.\n\n```yaml\n_inputs:\n hero_image:\n type: image\n options:\n sizes:\n - size: 2x\n```",
5950
5950
  "documented": true,
5951
5951
  "title": "size",
5952
5952
  "markdownDescription": "This key defines a number suffixed with \"x\" (relative size) or \"w\" (fixed width) for setting the dimensions of the image (e.g. 2x, 3x, 100w, 360w).\n\n## Examples\n\nIn this example, we have configured a size definition for an *Image Input* to create a 2x relative size image.\n\n```yaml\n_inputs:\n hero_image:\n type: image\n options:\n sizes:\n - size: 2x\n```"
@@ -5972,7 +5972,6 @@
5972
5972
  "markdownDescription": "This key defines definitions for creating additional images of different sizes when uploading or selecting existing files.\n\n## Examples\n\nIn this example, we have configured an *Image Input* to create additional images of different sizes when uploading or selecting files.\n\n```yaml\n_inputs:\n hero_image:\n type: image\n options:\n sizes:\n - size: 2x\n - size: 3x\n```"
5973
5973
  },
5974
5974
  "type.paths": {
5975
- "title": "Paths",
5976
5975
  "type": "object",
5977
5976
  "properties": {
5978
5977
  "static": {
@@ -5998,6 +5997,7 @@
5998
5997
  }
5999
5998
  },
6000
5999
  "additionalProperties": false,
6000
+ "title": "Paths",
6001
6001
  "documented": true,
6002
6002
  "description": "This key defines paths for your Rich Text editors or File inputs.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `paths` will default to any\nvalues configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\n## Examples\n\nIn this example, we have configured paths for the `blog` Collection to set custom upload and static paths.\n\n```yaml\ncollections_config:\n blog:\n paths:\n uploads: /uploads/blog/\n static: /assets/\n```",
6003
6003
  "markdownDescription": "This key defines paths for your Rich Text editors or File inputs.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `paths` will default to any\nvalues configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\n## Examples\n\nIn this example, we have configured paths for the `blog` Collection to set custom upload and static paths.\n\n```yaml\ncollections_config:\n blog:\n paths:\n uploads: /uploads/blog/\n static: /assets/\n```"
@@ -6319,8 +6319,6 @@
6319
6319
  "markdownDescription": "This key toggles whether CloudCannon will display a tool in your WYSIWYG toolbar to merge a list item with the item below it in an ordered or unordered list.\n\nSetting this key to `true` will enable a tool in your WYSIWYG toolbar to merge a list item with the item below it."
6320
6320
  },
6321
6321
  "DateInput": {
6322
- "title": "Date/Datetime Input",
6323
- "description": "This key defines an editing interface for date and/or time values.",
6324
6322
  "type": "object",
6325
6323
  "properties": {
6326
6324
  "comment": {
@@ -6365,18 +6363,17 @@
6365
6363
  "$ref": "#/definitions/type._inputs.*.cascade"
6366
6364
  },
6367
6365
  "type": {
6368
- "title": "Type",
6369
- "description": "This key defines the input type, which controls how this input appears and behaves.",
6370
6366
  "type": "string",
6371
6367
  "enum": [
6372
6368
  "date",
6373
6369
  "datetime"
6374
6370
  ],
6371
+ "title": "Type",
6372
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
6375
6373
  "documented": true,
6376
6374
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
6377
6375
  },
6378
6376
  "options": {
6379
- "description": "This key defines options that are specific to Date Inputs.",
6380
6377
  "type": "object",
6381
6378
  "properties": {
6382
6379
  "required": {
@@ -6409,10 +6406,10 @@
6409
6406
  "description": "This key defines the earliest date and time, inclusive, that CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from selecting an earlier date and time.\n\nIf the Input already contains an earlier date and time, CloudCannon will require you to change it to a valid value to save your changes, or discard\nyour unsaved changes.\n\nValue must be in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.\n\nThe value can have quotation marks or no quotation marks.\n\nIf `options.end_before` is also configured, this key cannot be a later date and time.\n\nThis key has no default.\n\nThis key is available for Date and Time Inputs.\n\n## Examples\n\nIn this example, we want our team to enter the date and time of an event in the `2022_event` Input. This Input will only allow dates on or after January 1st, 2022.\n\n```yaml\n_inputs:\n 2022_event:\n type: datetime\n options:\n start_from: 2022-01-01T00:00:00Z\n end_before: 2023-01-01T00:00:00Z\n```",
6410
6407
  "anyOf": [
6411
6408
  {
6412
- "title": "String Start From",
6413
6409
  "type": "string",
6414
6410
  "format": "date-time",
6415
6411
  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z||([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
6412
+ "title": "String Start From",
6416
6413
  "documented": true,
6417
6414
  "description": "This key defines the earliest date and time, inclusive, that CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from selecting an earlier date and time.\n\nIf the Input already contains an earlier date and time, CloudCannon will require you to change it to a valid value to save your changes, or discard\nyour unsaved changes.\n\nValue must be in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format and should be in quotes.\n\nIf `options.end_before` is also configured, this key cannot be a later date and time.\n\nThis key has no default.\n\nThis key is available for Date and Time Inputs.",
6418
6415
  "markdownDescription": "This key defines the earliest date and time, inclusive, that CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from selecting an earlier date and time.\n\nIf the Input already contains an earlier date and time, CloudCannon will require you to change it to a valid value to save your changes, or discard\nyour unsaved changes.\n\nValue must be in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format and should be in quotes.\n\nIf `options.end_before` is also configured, this key cannot be a later date and time.\n\nThis key has no default.\n\nThis key is available for Date and Time Inputs."
@@ -6439,10 +6436,10 @@
6439
6436
  "description": "This key defines the date and time, exclusive, that CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from selecting a later date and time.\n\nIf the Input already contains a later date and time, CloudCannon will require you to change it to a valid value to save your changes, or discard your\nunsaved changes.\n\nValue must be in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.\n\nThe value can have quotation marks or no quotation marks.\n\nIf `options.start_from` is also configured, this key cannot be an earlier date and time.\n\nThis key has no default.\n\nThis key is available for Date and Time Inputs.\n\n## Examples\n\nIn this example, we want our team to enter the date and time of an event in the `2022_event` Input. This Input will only allow dates before January 1st, 2023.\n\n```yaml\n_inputs:\n 2022_event:\n type: datetime\n options:\n start_from: 2022-01-01T00:00:00Z\n end_before: 2023-01-01T00:00:00Z\n```",
6440
6437
  "anyOf": [
6441
6438
  {
6442
- "title": "String End Before",
6443
6439
  "type": "string",
6444
6440
  "format": "date-time",
6445
6441
  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z||([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
6442
+ "title": "String End Before",
6446
6443
  "documented": true,
6447
6444
  "description": "This key defines the date and time, exclusive, that CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from selecting a later date and time.\n\nIf the Input already contains a later date and time, CloudCannon will require you to change it to a valid value to save your changes, or discard your\nunsaved changes.\n\nValue must be in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.\n\nIf `options.start_from` is also configured, this key cannot be an earlier date and time.\n\nThis key has no default.\n\nThis key is available for Date and Time Inputs.",
6448
6445
  "markdownDescription": "This key defines the date and time, exclusive, that CloudCannon will allow in an Input.\n\nWhen configured, CloudCannon will prevent you from selecting a later date and time.\n\nIf the Input already contains a later date and time, CloudCannon will require you to change it to a valid value to save your changes, or discard your\nunsaved changes.\n\nValue must be in [ISO8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.\n\nIf `options.start_from` is also configured, this key cannot be an earlier date and time.\n\nThis key has no default.\n\nThis key is available for Date and Time Inputs."
@@ -6467,6 +6464,7 @@
6467
6464
  }
6468
6465
  },
6469
6466
  "additionalProperties": false,
6467
+ "description": "This key defines options that are specific to Date Inputs.",
6470
6468
  "documented": true,
6471
6469
  "title": "options",
6472
6470
  "markdownDescription": "This key defines options that are specific to Date Inputs."
@@ -6476,11 +6474,12 @@
6476
6474
  "type"
6477
6475
  ],
6478
6476
  "additionalProperties": false,
6477
+ "title": "Date/Datetime Input",
6478
+ "description": "This key defines an editing interface for date and/or time values.",
6479
6479
  "documented": true,
6480
6480
  "markdownDescription": "This key defines an editing interface for date and/or time values."
6481
6481
  },
6482
6482
  "type.timezone": {
6483
- "title": "Timezone",
6484
6483
  "type": "string",
6485
6484
  "enum": [
6486
6485
  "Africa/Abidjan",
@@ -7079,13 +7078,12 @@
7079
7078
  "WET",
7080
7079
  "Zulu"
7081
7080
  ],
7081
+ "title": "Timezone",
7082
7082
  "documented": true,
7083
7083
  "description": "This key defines the timezone for your Site.\n\nValue must be in IANA timezone format.\n\nFor more information, please read our documentation on [Date and Time inputs](https://cloudcannon.com/documentation/articles/what-are-date-and-time-inputs/).",
7084
7084
  "markdownDescription": "This key defines the timezone for your Site.\n\nValue must be in IANA timezone format.\n\nFor more information, please read our documentation on [Date and Time inputs](https://cloudcannon.com/documentation/articles/what-are-date-and-time-inputs/)."
7085
7085
  },
7086
7086
  "TimeInput": {
7087
- "title": "Time Input",
7088
- "description": "This key defines an editing interface for time values only.",
7089
7087
  "type": "object",
7090
7088
  "properties": {
7091
7089
  "comment": {
@@ -7130,15 +7128,14 @@
7130
7128
  "$ref": "#/definitions/type._inputs.*.cascade"
7131
7129
  },
7132
7130
  "type": {
7133
- "title": "Type",
7134
- "description": "This key defines the input type, which controls how this input appears and behaves.",
7135
7131
  "type": "string",
7136
7132
  "const": "time",
7133
+ "title": "Type",
7134
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
7137
7135
  "documented": true,
7138
7136
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
7139
7137
  },
7140
7138
  "options": {
7141
- "description": "This key defines options that are specific to Time Inputs.",
7142
7139
  "type": "object",
7143
7140
  "properties": {
7144
7141
  "required": {
@@ -7158,6 +7155,7 @@
7158
7155
  }
7159
7156
  },
7160
7157
  "additionalProperties": false,
7158
+ "description": "This key defines options that are specific to Time Inputs.",
7161
7159
  "documented": true,
7162
7160
  "title": "options",
7163
7161
  "markdownDescription": "This key defines options that are specific to Time Inputs."
@@ -7167,12 +7165,12 @@
7167
7165
  "type"
7168
7166
  ],
7169
7167
  "additionalProperties": false,
7168
+ "title": "Time Input",
7169
+ "description": "This key defines an editing interface for time values only.",
7170
7170
  "documented": true,
7171
7171
  "markdownDescription": "This key defines an editing interface for time values only."
7172
7172
  },
7173
7173
  "FileInput": {
7174
- "title": "File Input",
7175
- "description": "This key defines an editing interface for uploading files to your repository or DAM and browsing existing assets.",
7176
7174
  "type": "object",
7177
7175
  "properties": {
7178
7176
  "comment": {
@@ -7217,19 +7215,18 @@
7217
7215
  "$ref": "#/definitions/type._inputs.*.cascade"
7218
7216
  },
7219
7217
  "type": {
7220
- "title": "Type",
7221
- "description": "This key defines the input type, which controls how this input appears and behaves.",
7222
7218
  "type": "string",
7223
7219
  "enum": [
7224
7220
  "file",
7225
7221
  "document",
7226
7222
  "image"
7227
7223
  ],
7224
+ "title": "Type",
7225
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
7228
7226
  "documented": true,
7229
7227
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
7230
7228
  },
7231
7229
  "options": {
7232
- "description": "This key defines options that are specific to File Inputs.",
7233
7230
  "type": "object",
7234
7231
  "properties": {
7235
7232
  "mime_type": {
@@ -7351,6 +7348,7 @@
7351
7348
  }
7352
7349
  },
7353
7350
  "additionalProperties": false,
7351
+ "description": "This key defines options that are specific to File Inputs.",
7354
7352
  "documented": true,
7355
7353
  "title": "options",
7356
7354
  "markdownDescription": "This key defines options that are specific to File Inputs."
@@ -7360,6 +7358,8 @@
7360
7358
  "type"
7361
7359
  ],
7362
7360
  "additionalProperties": false,
7361
+ "title": "File Input",
7362
+ "description": "This key defines an editing interface for uploading files to your repository or DAM and browsing existing assets.",
7363
7363
  "documented": true,
7364
7364
  "markdownDescription": "This key defines an editing interface for uploading files to your repository or DAM and browsing existing assets."
7365
7365
  },
@@ -7367,18 +7367,18 @@
7367
7367
  "description": "This key defines which file types are available to select or upload to this input.\n\nAccepted format is an array or comma-separated string of MIME types.\n\nThe special value \"*\" means any type is accepted.\n\n## Examples\n\nIn this example, we have configured a *Image Input* to accept only JPEG or PNG files.\n\n```yaml\n_inputs:\n featured_image:\n type: image\n options:\n accepts_mime_types:\n - image/jpeg\n - image/png\n```",
7368
7368
  "anyOf": [
7369
7369
  {
7370
- "title": "Comma Separated Accepts Mime Types",
7371
7370
  "type": "string",
7371
+ "title": "Comma Separated Accepts Mime Types",
7372
7372
  "documented": true,
7373
7373
  "description": "This key represents a comma-separated string format for the `accepts_mime_types` key that restricts which file types are available to select or upload in *File Inputs*.\n\nThe value is a string containing MIME types separated by commas. Each MIME type specifies a file type that CloudCannon will allow for this input.\n\nAvailable MIME types include image formats (`image/x-icon`, `image/gif`, `image/jpeg`, `image/png`, `image/webp`, `image/bmp`, `image/svg+xml`) and document formats (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`).\n\nUse the comma-separated format when you prefer a more compact configuration or when working with a small number of MIME types.\n\nThe special value `\"*\"` means any file type is accepted.\n\n## Examples\n\nIn this example, we have configured a *File Input* to accept only image files using a comma-separated string of image MIME types.\n\n```yaml\n_inputs:\n hero_image:\n type: file\n label: Hero Image\n options:\n accepts_mime_types: 'image/jpeg,image/png,image/webp'\n```\n\nIn this example, we have configured a *File Input* to accept only document files using a comma-separated string of document MIME types.\n\n```yaml\n_inputs:\n document:\n type: file\n label: Document\n options:\n accepts_mime_types: 'application/pdf,application/msword'\n```\n\nIn this example, we have configured a *File Input* to accept any file type using the special `\"*\"` value.\n\n```yaml\n_inputs:\n any_file:\n type: file\n label: Any File\n options:\n accepts_mime_types: '*'\n```",
7374
7374
  "markdownDescription": "This key represents a comma-separated string format for the `accepts_mime_types` key that restricts which file types are available to select or upload in *File Inputs*.\n\nThe value is a string containing MIME types separated by commas. Each MIME type specifies a file type that CloudCannon will allow for this input.\n\nAvailable MIME types include image formats (`image/x-icon`, `image/gif`, `image/jpeg`, `image/png`, `image/webp`, `image/bmp`, `image/svg+xml`) and document formats (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`).\n\nUse the comma-separated format when you prefer a more compact configuration or when working with a small number of MIME types.\n\nThe special value `\"*\"` means any file type is accepted.\n\n## Examples\n\nIn this example, we have configured a *File Input* to accept only image files using a comma-separated string of image MIME types.\n\n```yaml\n_inputs:\n hero_image:\n type: file\n label: Hero Image\n options:\n accepts_mime_types: 'image/jpeg,image/png,image/webp'\n```\n\nIn this example, we have configured a *File Input* to accept only document files using a comma-separated string of document MIME types.\n\n```yaml\n_inputs:\n document:\n type: file\n label: Document\n options:\n accepts_mime_types: 'application/pdf,application/msword'\n```\n\nIn this example, we have configured a *File Input* to accept any file type using the special `\"*\"` value.\n\n```yaml\n_inputs:\n any_file:\n type: file\n label: Any File\n options:\n accepts_mime_types: '*'\n```"
7375
7375
  },
7376
7376
  {
7377
- "title": "Array Accepts Mime Types",
7378
7377
  "type": "array",
7379
7378
  "items": {
7380
7379
  "$ref": "#/definitions/MimeType"
7381
7380
  },
7381
+ "title": "Array Accepts Mime Types",
7382
7382
  "documented": true,
7383
7383
  "description": "This key represents an array format for the `accepts_mime_types` key that restricts which file types are available to select or upload in *File Inputs*.\n\nThe value is an array of MIME type strings. Each string specifies a file type that CloudCannon will allow for this input.\n\nAvailable MIME types include image formats (`image/x-icon`, `image/gif`, `image/jpeg`, `image/png`, `image/webp`, `image/bmp`, `image/svg+xml`) and document formats (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`).\n\nUse the array format when you want to explicitly list multiple MIME types, making it easier to read and maintain in your configuration.\n\n## Examples\n\nIn this example, we have configured a *File Input* to accept only image files using an array of image MIME types.\n\n```yaml\n_inputs:\n hero_image:\n type: file\n label: Hero Image\n options:\n accepts_mime_types:\n - image/jpeg\n - image/png\n - image/webp\n```\n\nIn this example, we have configured a *File Input* to accept only document files using an array of document MIME types.\n\n```yaml\n_inputs:\n document:\n type: file\n label: Document\n options:\n accepts_mime_types:\n - application/pdf\n - application/msword\n - application/vnd.openxmlformats-officedocument.wordprocessingml.document\n```",
7384
7384
  "markdownDescription": "This key represents an array format for the `accepts_mime_types` key that restricts which file types are available to select or upload in *File Inputs*.\n\nThe value is an array of MIME type strings. Each string specifies a file type that CloudCannon will allow for this input.\n\nAvailable MIME types include image formats (`image/x-icon`, `image/gif`, `image/jpeg`, `image/png`, `image/webp`, `image/bmp`, `image/svg+xml`) and document formats (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`).\n\nUse the array format when you want to explicitly list multiple MIME types, making it easier to read and maintain in your configuration.\n\n## Examples\n\nIn this example, we have configured a *File Input* to accept only image files using an array of image MIME types.\n\n```yaml\n_inputs:\n hero_image:\n type: file\n label: Hero Image\n options:\n accepts_mime_types:\n - image/jpeg\n - image/png\n - image/webp\n```\n\nIn this example, we have configured a *File Input* to accept only document files using an array of document MIME types.\n\n```yaml\n_inputs:\n document:\n type: file\n label: Document\n options:\n accepts_mime_types:\n - application/pdf\n - application/msword\n - application/vnd.openxmlformats-officedocument.wordprocessingml.document\n```"
@@ -7389,8 +7389,6 @@
7389
7389
  "markdownDescription": "This key defines which file types are available to select or upload to this input.\n\nAccepted format is an array or comma-separated string of MIME types.\n\nThe special value \"*\" means any type is accepted.\n\n## Examples\n\nIn this example, we have configured a *Image Input* to accept only JPEG or PNG files.\n\n```yaml\n_inputs:\n featured_image:\n type: image\n options:\n accepts_mime_types:\n - image/jpeg\n - image/png\n```"
7390
7390
  },
7391
7391
  "MimeType": {
7392
- "title": "Mime Type",
7393
- "description": "This key represents an array format for the `accepts_mime_types` key that restricts which file types are available to select or upload in *File Inputs*.\n\nThe value is an array of MIME type strings. Each string specifies a file type that CloudCannon will allow for this input.\n\nAvailable MIME types include image formats (`image/x-icon`, `image/gif`, `image/jpeg`, `image/png`, `image/webp`, `image/bmp`, `image/svg+xml`) and document formats (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`).\n\nUse the array format when you want to explicitly list multiple MIME types, making it easier to read and maintain in your configuration.\n\n## Examples\n\nIn this example, we have configured a *File Input* to accept only image files using an array of image MIME types.\n\n```yaml\n_inputs:\n hero_image:\n type: file\n label: Hero Image\n options:\n accepts_mime_types:\n - image/jpeg\n - image/png\n - image/webp\n```\n\nIn this example, we have configured a *File Input* to accept only document files using an array of document MIME types.\n\n```yaml\n_inputs:\n document:\n type: file\n label: Document\n options:\n accepts_mime_types:\n - application/pdf\n - application/msword\n - application/vnd.openxmlformats-officedocument.wordprocessingml.document\n```",
7394
7392
  "type": "string",
7395
7393
  "enum": [
7396
7394
  "x-world/x-3dmf",
@@ -7827,6 +7825,8 @@
7827
7825
  "multipart/x-zip",
7828
7826
  "text/x-script.zsh"
7829
7827
  ],
7828
+ "title": "Mime Type",
7829
+ "description": "This key represents an array format for the `accepts_mime_types` key that restricts which file types are available to select or upload in *File Inputs*.\n\nThe value is an array of MIME type strings. Each string specifies a file type that CloudCannon will allow for this input.\n\nAvailable MIME types include image formats (`image/x-icon`, `image/gif`, `image/jpeg`, `image/png`, `image/webp`, `image/bmp`, `image/svg+xml`) and document formats (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`).\n\nUse the array format when you want to explicitly list multiple MIME types, making it easier to read and maintain in your configuration.\n\n## Examples\n\nIn this example, we have configured a *File Input* to accept only image files using an array of image MIME types.\n\n```yaml\n_inputs:\n hero_image:\n type: file\n label: Hero Image\n options:\n accepts_mime_types:\n - image/jpeg\n - image/png\n - image/webp\n```\n\nIn this example, we have configured a *File Input* to accept only document files using an array of document MIME types.\n\n```yaml\n_inputs:\n document:\n type: file\n label: Document\n options:\n accepts_mime_types:\n - application/pdf\n - application/msword\n - application/vnd.openxmlformats-officedocument.wordprocessingml.document\n```",
7830
7830
  "documented": true,
7831
7831
  "markdownDescription": "This key represents an array format for the `accepts_mime_types` key that restricts which file types are available to select or upload in *File Inputs*.\n\nThe value is an array of MIME type strings. Each string specifies a file type that CloudCannon will allow for this input.\n\nAvailable MIME types include image formats (`image/x-icon`, `image/gif`, `image/jpeg`, `image/png`, `image/webp`, `image/bmp`, `image/svg+xml`) and document formats (`application/pdf`, `application/msword`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`, `application/vnd.ms-powerpoint`, `application/vnd.openxmlformats-officedocument.presentationml.presentation`).\n\nUse the array format when you want to explicitly list multiple MIME types, making it easier to read and maintain in your configuration.\n\n## Examples\n\nIn this example, we have configured a *File Input* to accept only image files using an array of image MIME types.\n\n```yaml\n_inputs:\n hero_image:\n type: file\n label: Hero Image\n options:\n accepts_mime_types:\n - image/jpeg\n - image/png\n - image/webp\n```\n\nIn this example, we have configured a *File Input* to accept only document files using an array of document MIME types.\n\n```yaml\n_inputs:\n document:\n type: file\n label: Document\n options:\n accepts_mime_types:\n - application/pdf\n - application/msword\n - application/vnd.openxmlformats-officedocument.wordprocessingml.document\n```"
7832
7832
  },
@@ -7869,8 +7869,6 @@
7869
7869
  "markdownDescription": "This key toggles whether CloudCannon will prevent file uploads inside the \"Select existing file/image\" file browser modal window.\n\nSetting this key to `true` will prevent file uploads inside the file browser modal window.\n\n## Examples\n\nIn this example, CloudCannon will disable the option to upload files inside the file browser modal window.\n\n```yaml\n_inputs:\n image:\n type: file\n options:\n disable_upload_file_in_file_browser: true\n```"
7870
7870
  },
7871
7871
  "UrlInput": {
7872
- "title": "URL Input",
7873
- "description": "This key defines an editing interface for relative, absolute, and fully qualified URLs.",
7874
7872
  "type": "object",
7875
7873
  "properties": {
7876
7874
  "comment": {
@@ -7915,15 +7913,14 @@
7915
7913
  "$ref": "#/definitions/type._inputs.*.cascade"
7916
7914
  },
7917
7915
  "type": {
7918
- "title": "Type",
7919
- "description": "This key defines the input type, which controls how this input appears and behaves.",
7920
7916
  "type": "string",
7921
7917
  "const": "url",
7918
+ "title": "Type",
7919
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
7922
7920
  "documented": true,
7923
7921
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
7924
7922
  },
7925
7923
  "options": {
7926
- "description": "This key defines options that are specific to URL Inputs.",
7927
7924
  "type": "object",
7928
7925
  "properties": {
7929
7926
  "mime_type": {
@@ -8077,6 +8074,7 @@
8077
8074
  }
8078
8075
  },
8079
8076
  "additionalProperties": false,
8077
+ "description": "This key defines options that are specific to URL Inputs.",
8080
8078
  "documented": true,
8081
8079
  "title": "options",
8082
8080
  "markdownDescription": "This key defines options that are specific to URL Inputs."
@@ -8086,12 +8084,12 @@
8086
8084
  "type"
8087
8085
  ],
8088
8086
  "additionalProperties": false,
8087
+ "title": "URL Input",
8088
+ "description": "This key defines an editing interface for relative, absolute, and fully qualified URLs.",
8089
8089
  "documented": true,
8090
8090
  "markdownDescription": "This key defines an editing interface for relative, absolute, and fully qualified URLs."
8091
8091
  },
8092
8092
  "SelectInput": {
8093
- "title": "Select Input",
8094
- "description": "This key defines an editing interface for data with multiple predefined options.\n\nSelect inputs only allow one value.\n\n## Examples\n\nIn this example, we have configured the `category` key as a *Select Input*.\n\n```yaml\n_inputs:\n category:\n type: select\n label: Category\n options:\n values:\n - Blog\n - News\n - Events\n```",
8095
8093
  "type": "object",
8096
8094
  "properties": {
8097
8095
  "comment": {
@@ -8136,15 +8134,14 @@
8136
8134
  "$ref": "#/definitions/type._inputs.*.cascade"
8137
8135
  },
8138
8136
  "type": {
8139
- "title": "Type",
8140
- "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `category` key as a *Select Input* type.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n```",
8141
8137
  "type": "string",
8142
8138
  "const": "select",
8139
+ "title": "Type",
8140
+ "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `category` key as a *Select Input* type.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n```",
8143
8141
  "documented": true,
8144
8142
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `category` key as a *Select Input* type.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n```"
8145
8143
  },
8146
8144
  "options": {
8147
- "description": "This key defines options that are specific to Select Inputs.\n\n## Examples\n\nIn this example, we have configured *Select Input* options including values.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n```",
8148
8145
  "type": "object",
8149
8146
  "properties": {
8150
8147
  "required": {
@@ -8248,6 +8245,7 @@
8248
8245
  }
8249
8246
  },
8250
8247
  "additionalProperties": false,
8248
+ "description": "This key defines options that are specific to Select Inputs.\n\n## Examples\n\nIn this example, we have configured *Select Input* options including values.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n```",
8251
8249
  "documented": true,
8252
8250
  "title": "options",
8253
8251
  "markdownDescription": "This key defines options that are specific to Select Inputs.\n\n## Examples\n\nIn this example, we have configured *Select Input* options including values.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n```"
@@ -8257,11 +8255,12 @@
8257
8255
  "type"
8258
8256
  ],
8259
8257
  "additionalProperties": false,
8258
+ "title": "Select Input",
8259
+ "description": "This key defines an editing interface for data with multiple predefined options.\n\nSelect inputs only allow one value.\n\n## Examples\n\nIn this example, we have configured the `category` key as a *Select Input*.\n\n```yaml\n_inputs:\n category:\n type: select\n label: Category\n options:\n values:\n - Blog\n - News\n - Events\n```",
8260
8260
  "documented": true,
8261
8261
  "markdownDescription": "This key defines an editing interface for data with multiple predefined options.\n\nSelect inputs only allow one value.\n\n## Examples\n\nIn this example, we have configured the `category` key as a *Select Input*.\n\n```yaml\n_inputs:\n category:\n type: select\n label: Category\n options:\n values:\n - Blog\n - News\n - Events\n```"
8262
8262
  },
8263
8263
  "type.preview": {
8264
- "title": "Preview",
8265
8264
  "type": "object",
8266
8265
  "properties": {
8267
8266
  "text": {
@@ -8293,6 +8292,7 @@
8293
8292
  }
8294
8293
  },
8295
8294
  "additionalProperties": false,
8295
+ "title": "Preview",
8296
8296
  "documented": true,
8297
8297
  "description": "This key defines the appearance of a Card.\n\nYou can configure Card preview for [Collections](https://cloudcannon.com/documentation/articles/what-is-a-collection/), [Schemas](https://cloudcannon.com/documentation/articles/what-is-a-schema/),\n[Object inputs](https://cloudcannon.com/documentation/articles/what-is-an-object-input/), [Array inputs](https://cloudcannon.com/documentation/articles/what-is-an-array-input/), [Select\ninputs](https://cloudcannon.com/documentation/articles/what-is-a-select-input/), [Structures](https://cloudcannon.com/documentation/articles/what-is-a-structure/), the Structure modal,\n[Snippets](https://cloudcannon.com/documentation/articles/what-is-a-snippet/), and the Snippet modal.\n\nFor more information about previews, please read our documentation on [configuring card previews](https://cloudcannon.com/documentation/articles/configure-your-card-previews/).\n\n## Examples\n\nIn this example, we have configured the appearance of file Cards in the *Collection browser*.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n subtext:\n - key: author\n icon: edit_note\n icon_color:\n - key: color\n - '#ff0000'\n image:\n - key: image\n metadata:\n - template: [url]\n - icon: event\n text:\n - template: 'Published on {date|date_long}'\n gallery:\n - key: featured_image\n```\n\nIn this example, we have configured the appearance of Cards in inputs using the Structure `staff`.\n\n```yaml\n_structures:\n staff:\n values:\n - value:\n _type: Employee\n name:\n job_description:\n profile_picture:\n preview:\n text:\n - key: name\n - Employee\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: support_agent\n - value:\n _type: Manager\n name:\n job_description:\n profile_picture:\n url:\n preview:\n text:\n - key: name\n - Manager\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: face\n```",
8298
8298
  "markdownDescription": "This key defines the appearance of a Card.\n\nYou can configure Card preview for [Collections](https://cloudcannon.com/documentation/articles/what-is-a-collection/), [Schemas](https://cloudcannon.com/documentation/articles/what-is-a-schema/),\n[Object inputs](https://cloudcannon.com/documentation/articles/what-is-an-object-input/), [Array inputs](https://cloudcannon.com/documentation/articles/what-is-an-array-input/), [Select\ninputs](https://cloudcannon.com/documentation/articles/what-is-a-select-input/), [Structures](https://cloudcannon.com/documentation/articles/what-is-a-structure/), the Structure modal,\n[Snippets](https://cloudcannon.com/documentation/articles/what-is-a-snippet/), and the Snippet modal.\n\nFor more information about previews, please read our documentation on [configuring card previews](https://cloudcannon.com/documentation/articles/configure-your-card-previews/).\n\n## Examples\n\nIn this example, we have configured the appearance of file Cards in the *Collection browser*.\n\n```yaml\ncollections_config:\n blog:\n preview:\n text:\n - key: title\n subtext:\n - key: author\n icon: edit_note\n icon_color:\n - key: color\n - '#ff0000'\n image:\n - key: image\n metadata:\n - template: [url]\n - icon: event\n text:\n - template: 'Published on {date|date_long}'\n gallery:\n - key: featured_image\n```\n\nIn this example, we have configured the appearance of Cards in inputs using the Structure `staff`.\n\n```yaml\n_structures:\n staff:\n values:\n - value:\n _type: Employee\n name:\n job_description:\n profile_picture:\n preview:\n text:\n - key: name\n - Employee\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: support_agent\n - value:\n _type: Manager\n name:\n job_description:\n profile_picture:\n url:\n preview:\n text:\n - key: name\n - Manager\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: face\n```"
@@ -8489,37 +8489,35 @@
8489
8489
  },
8490
8490
  "type._inputs.*.options.allow_empty": {
8491
8491
  "deprecated": true,
8492
- "description": "**⚠️ DEPRECATED:** This key is deprecated. If you want to prevent empty values, we recommend setting `_inputs.*.options.required` to `true` instead.\n\nThis key toggles whether CloudCannon will accept empty values, and pre-select the first option if opened with an empty value.\n\nSetting this key to `true` will allow CloudCannon to accept empty values.\n\n## Examples\n\nIn this example, CloudCannon will accept empty values for a *Select Input*.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n allow_empty: true\n```",
8492
+ "description": "This key is deprecated. If you want to prevent empty values, we recommend setting `_inputs.*.options.required` to `true` instead.\n\nThis key toggles whether CloudCannon will accept empty values, and pre-select the first option if opened with an empty value.\n\nSetting this key to `true` will allow CloudCannon to accept empty values.\n\n## Examples\n\nIn this example, CloudCannon will accept empty values for a *Select Input*.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n allow_empty: true\n```",
8493
8493
  "type": "boolean",
8494
8494
  "documented": true,
8495
8495
  "title": "allow_empty",
8496
- "markdownDescription": "**⚠️ DEPRECATED:** This key is deprecated. If you want to prevent empty values, we recommend setting `_inputs.*.options.required` to `true` instead.\n\nThis key toggles whether CloudCannon will accept empty values, and pre-select the first option if opened with an empty value.\n\nSetting this key to `true` will allow CloudCannon to accept empty values.\n\n## Examples\n\nIn this example, CloudCannon will accept empty values for a *Select Input*.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n allow_empty: true\n```"
8496
+ "markdownDescription": "This key is deprecated. If you want to prevent empty values, we recommend setting `_inputs.*.options.required` to `true` instead.\n\nThis key toggles whether CloudCannon will accept empty values, and pre-select the first option if opened with an empty value.\n\nSetting this key to `true` will allow CloudCannon to accept empty values.\n\n## Examples\n\nIn this example, CloudCannon will accept empty values for a *Select Input*.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n allow_empty: true\n```"
8497
8497
  },
8498
8498
  "type._inputs.*.options.values": {
8499
8499
  "description": "This key defines the values available to choose from.\n\nOptional, defaults to fetching values from the naming convention (e.g. `colors` or `my_colors` for data set `colors`).\n\n## Examples\n\nIn this example, we have configured a *Select Input* with custom values to choose from.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n```",
8500
8500
  "anyOf": [
8501
8501
  {
8502
+ "type": "string",
8502
8503
  "title": "Dataset Reference Values",
8503
8504
  "description": "This key defines a reference to a dataset.",
8504
- "type": "string",
8505
8505
  "documented": true,
8506
8506
  "markdownDescription": "This key defines a reference to a dataset."
8507
8507
  },
8508
8508
  {
8509
- "description": "Data formats for populating select and multiselect input options, supporting arrays and objects.",
8510
8509
  "anyOf": [
8511
8510
  {
8512
- "title": "Text Array",
8513
8511
  "type": "array",
8514
8512
  "items": {
8515
8513
  "type": "string",
8516
8514
  "documented": false,
8517
8515
  "title": "values(any-of-1)(text-array)[*]"
8518
8516
  },
8517
+ "title": "Text Array",
8519
8518
  "documented": false
8520
8519
  },
8521
8520
  {
8522
- "title": "Text Object",
8523
8521
  "type": "object",
8524
8522
  "propertyNames": {
8525
8523
  "type": "string"
@@ -8529,10 +8527,10 @@
8529
8527
  "documented": false,
8530
8528
  "title": "values(any-of-1)(text-object).*"
8531
8529
  },
8530
+ "title": "Text Object",
8532
8531
  "documented": false
8533
8532
  },
8534
8533
  {
8535
- "title": "Object Array",
8536
8534
  "type": "array",
8537
8535
  "items": {
8538
8536
  "type": "object",
@@ -8543,18 +8541,20 @@
8543
8541
  "documented": false,
8544
8542
  "title": "values(any-of-1)(object-array)[*]"
8545
8543
  },
8544
+ "title": "Object Array",
8546
8545
  "documented": false
8547
8546
  },
8548
8547
  {
8549
- "title": "Object",
8550
8548
  "type": "object",
8551
8549
  "propertyNames": {
8552
8550
  "type": "string"
8553
8551
  },
8554
8552
  "additionalProperties": {},
8553
+ "title": "Object",
8555
8554
  "documented": false
8556
8555
  }
8557
8556
  ],
8557
+ "description": "Data formats for populating select and multiselect input options, supporting arrays and objects.",
8558
8558
  "documented": false,
8559
8559
  "title": "values(any-of-1)",
8560
8560
  "markdownDescription": "Data formats for populating select and multiselect input options, supporting arrays and objects."
@@ -8598,8 +8598,6 @@
8598
8598
  "markdownDescription": "This key defines how CloudCannon should render selectable options in the dropdown of a *Select Input*.\n\n## Examples\n\nIn this example, we have configured a *Select Input* to display options using the card view.\n\n```yaml\n_inputs:\n category:\n type: select\n options:\n values:\n - Blog\n - News\n - Events\n picker_view: card\n```"
8599
8599
  },
8600
8600
  "MultiselectInput": {
8601
- "title": "Multiselect Input",
8602
- "description": "This key defines an editing interface for data with multiple predefined options.\n\nMultiselect inputs allow several values.\n\n## Examples\n\nIn this example, we have configured the `tags` key as a *Multiselect Input*.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n label: Tags\n options:\n values:\n - featured\n - news\n - events\n```",
8603
8601
  "type": "object",
8604
8602
  "properties": {
8605
8603
  "comment": {
@@ -8644,15 +8642,14 @@
8644
8642
  "$ref": "#/definitions/type._inputs.*.cascade"
8645
8643
  },
8646
8644
  "type": {
8647
- "title": "Type",
8648
- "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `tags` key as a *Multiselect Input* type.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n```",
8649
8645
  "type": "string",
8650
8646
  "const": "multiselect",
8647
+ "title": "Type",
8648
+ "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `tags` key as a *Multiselect Input* type.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n```",
8651
8649
  "documented": true,
8652
8650
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `tags` key as a *Multiselect Input* type.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n```"
8653
8651
  },
8654
8652
  "options": {
8655
- "description": "This key defines options that are specific to Multiselect Inputs.\n\n## Examples\n\nIn this example, we have configured *Multiselect Input* options including values.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n options:\n values:\n - featured\n - news\n - events\n```",
8656
8653
  "type": "object",
8657
8654
  "properties": {
8658
8655
  "required": {
@@ -8726,6 +8723,7 @@
8726
8723
  }
8727
8724
  },
8728
8725
  "additionalProperties": false,
8726
+ "description": "This key defines options that are specific to Multiselect Inputs.\n\n## Examples\n\nIn this example, we have configured *Multiselect Input* options including values.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n options:\n values:\n - featured\n - news\n - events\n```",
8729
8727
  "documented": true,
8730
8728
  "title": "options",
8731
8729
  "markdownDescription": "This key defines options that are specific to Multiselect Inputs.\n\n## Examples\n\nIn this example, we have configured *Multiselect Input* options including values.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n options:\n values:\n - featured\n - news\n - events\n```"
@@ -8735,6 +8733,8 @@
8735
8733
  "type"
8736
8734
  ],
8737
8735
  "additionalProperties": false,
8736
+ "title": "Multiselect Input",
8737
+ "description": "This key defines an editing interface for data with multiple predefined options.\n\nMultiselect inputs allow several values.\n\n## Examples\n\nIn this example, we have configured the `tags` key as a *Multiselect Input*.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n label: Tags\n options:\n values:\n - featured\n - news\n - events\n```",
8738
8738
  "documented": true,
8739
8739
  "markdownDescription": "This key defines an editing interface for data with multiple predefined options.\n\nMultiselect inputs allow several values.\n\n## Examples\n\nIn this example, we have configured the `tags` key as a *Multiselect Input*.\n\n```yaml\n_inputs:\n tags:\n type: multiselect\n label: Tags\n options:\n values:\n - featured\n - news\n - events\n```"
8740
8740
  },
@@ -8781,8 +8781,8 @@
8781
8781
  "markdownDescription": "This key defines a custom error message that explains why a value has failed the validation criteria from `options.unique_on`.\nThis key requires you to define `options.unique_on`.\n\nThis key has no default.\n\nThis key is available for Array inputs.\n\n## Examples\n\nIn this example, we want our team to add article filepaths to the `related_articles` Input. This Input requires all the filepaths to be unique.\n\n```yaml\n_inputs:\n related_articles:\n type: array\n options:\n unique_on: '$.path'\n unique_on_message: The value for path must be different for all items.\n```\n\n```yaml\nrelated_articles:\n - path: /articles/first-article.md\n featured: true\n - path: /articles/first-article.md\n featured: false\n```"
8782
8782
  },
8783
8783
  "type._inputs.*.options.empty_type(array)": {
8784
- "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty array values will be saved.\n\n```yaml\n_inputs:\n tags:\n type: array\n options:\n empty_type: array\n```",
8785
8784
  "default": "null",
8785
+ "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty array values will be saved.\n\n```yaml\n_inputs:\n tags:\n type: array\n options:\n empty_type: array\n```",
8786
8786
  "type": "string",
8787
8787
  "enum": [
8788
8788
  "null",
@@ -8793,8 +8793,6 @@
8793
8793
  "markdownDescription": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty array values will be saved.\n\n```yaml\n_inputs:\n tags:\n type: array\n options:\n empty_type: array\n```"
8794
8794
  },
8795
8795
  "ChoiceInput": {
8796
- "title": "Choice Input",
8797
- "description": "This key defines an editing interface for data with multiple predefined options.\n\nChoice inputs only allow one value.\n\n## Examples\n\nIn this example, we have configured the `status` key as a *Choice Input*.\n\n```yaml\n_inputs:\n status:\n type: choice\n label: Status\n options:\n values:\n - draft\n - published\n - archived\n```",
8798
8796
  "type": "object",
8799
8797
  "properties": {
8800
8798
  "comment": {
@@ -8839,15 +8837,14 @@
8839
8837
  "$ref": "#/definitions/type._inputs.*.cascade"
8840
8838
  },
8841
8839
  "type": {
8842
- "title": "Type",
8843
- "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `status` key as a *Choice Input* type.\n\n```yaml\n_inputs:\n status:\n type: choice\n```",
8844
8840
  "type": "string",
8845
8841
  "const": "choice",
8842
+ "title": "Type",
8843
+ "description": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `status` key as a *Choice Input* type.\n\n```yaml\n_inputs:\n status:\n type: choice\n```",
8846
8844
  "documented": true,
8847
8845
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves.\n\n## Examples\n\nIn this example, we have configured the `status` key as a *Choice Input* type.\n\n```yaml\n_inputs:\n status:\n type: choice\n```"
8848
8846
  },
8849
8847
  "options": {
8850
- "description": "This key defines options that are specific to Choice Inputs.\n\n## Examples\n\nIn this example, we have configured *Choice Input* options including values.\n\n```yaml\n_inputs:\n status:\n type: choice\n options:\n values:\n - draft\n - published\n - archived\n```",
8851
8848
  "type": "object",
8852
8849
  "properties": {
8853
8850
  "required": {
@@ -8948,6 +8945,7 @@
8948
8945
  }
8949
8946
  },
8950
8947
  "additionalProperties": false,
8948
+ "description": "This key defines options that are specific to Choice Inputs.\n\n## Examples\n\nIn this example, we have configured *Choice Input* options including values.\n\n```yaml\n_inputs:\n status:\n type: choice\n options:\n values:\n - draft\n - published\n - archived\n```",
8951
8949
  "documented": true,
8952
8950
  "title": "options",
8953
8951
  "markdownDescription": "This key defines options that are specific to Choice Inputs.\n\n## Examples\n\nIn this example, we have configured *Choice Input* options including values.\n\n```yaml\n_inputs:\n status:\n type: choice\n options:\n values:\n - draft\n - published\n - archived\n```"
@@ -8957,12 +8955,12 @@
8957
8955
  "type"
8958
8956
  ],
8959
8957
  "additionalProperties": false,
8958
+ "title": "Choice Input",
8959
+ "description": "This key defines an editing interface for data with multiple predefined options.\n\nChoice inputs only allow one value.\n\n## Examples\n\nIn this example, we have configured the `status` key as a *Choice Input*.\n\n```yaml\n_inputs:\n status:\n type: choice\n label: Status\n options:\n values:\n - draft\n - published\n - archived\n```",
8960
8960
  "documented": true,
8961
8961
  "markdownDescription": "This key defines an editing interface for data with multiple predefined options.\n\nChoice inputs only allow one value.\n\n## Examples\n\nIn this example, we have configured the `status` key as a *Choice Input*.\n\n```yaml\n_inputs:\n status:\n type: choice\n label: Status\n options:\n values:\n - draft\n - published\n - archived\n```"
8962
8962
  },
8963
8963
  "MultichoiceInput": {
8964
- "title": "Multichoice Input",
8965
- "description": "This key defines an editing interface for data with multiple predefined options.\n\nMultichoice inputs allow several values.\n\n## Examples\n\nIn this example, we have configured the `categories` key as a *Multichoice Input*.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n label: Categories\n options:\n values:\n - technology\n - design\n - business\n```",
8966
8964
  "type": "object",
8967
8965
  "properties": {
8968
8966
  "comment": {
@@ -9007,15 +9005,14 @@
9007
9005
  "$ref": "#/definitions/type._inputs.*.cascade"
9008
9006
  },
9009
9007
  "type": {
9010
- "title": "Type",
9011
- "description": "This key defines the type of editing interface used for an Input.\n\nEach Input type has a different appearance and functionality, processes and accepts different types of values, and has different configuration\noptions.\n\nValue can be one of the following: `auto`, `checkbox`, `switch`, `code`, `color`, `datetime`, `date`, `time`, `file`, `document`, `image`, `number`,\n`range`, `object`, `array`, `select`, `multiselect`, `choice`, `multichoice`, `text`, `textarea`, `email`, `html`, `markdown`, or `url`.\n\nIf the type or value of an Input is misconfigured, CloudCannon will display an orange warning instead of an Input.\n\nIf type is not configured for an Input, CloudCannon will attempt to determine Input type based on value or key name conventions.\n\n## Examples\n\nIn this example, we have configured the `categories` key as a *Multichoice Input* type.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n```",
9012
9008
  "type": "string",
9013
9009
  "const": "multichoice",
9010
+ "title": "Type",
9011
+ "description": "This key defines the type of editing interface used for an Input.\n\nEach Input type has a different appearance and functionality, processes and accepts different types of values, and has different configuration\noptions.\n\nValue can be one of the following: `auto`, `checkbox`, `switch`, `code`, `color`, `datetime`, `date`, `time`, `file`, `document`, `image`, `number`,\n`range`, `object`, `array`, `select`, `multiselect`, `choice`, `multichoice`, `text`, `textarea`, `email`, `html`, `markdown`, or `url`.\n\nIf the type or value of an Input is misconfigured, CloudCannon will display an orange warning instead of an Input.\n\nIf type is not configured for an Input, CloudCannon will attempt to determine Input type based on value or key name conventions.\n\n## Examples\n\nIn this example, we have configured the `categories` key as a *Multichoice Input* type.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n```",
9014
9012
  "documented": true,
9015
9013
  "markdownDescription": "This key defines the type of editing interface used for an Input.\n\nEach Input type has a different appearance and functionality, processes and accepts different types of values, and has different configuration\noptions.\n\nValue can be one of the following: `auto`, `checkbox`, `switch`, `code`, `color`, `datetime`, `date`, `time`, `file`, `document`, `image`, `number`,\n`range`, `object`, `array`, `select`, `multiselect`, `choice`, `multichoice`, `text`, `textarea`, `email`, `html`, `markdown`, or `url`.\n\nIf the type or value of an Input is misconfigured, CloudCannon will display an orange warning instead of an Input.\n\nIf type is not configured for an Input, CloudCannon will attempt to determine Input type based on value or key name conventions.\n\n## Examples\n\nIn this example, we have configured the `categories` key as a *Multichoice Input* type.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n```"
9016
9014
  },
9017
9015
  "options": {
9018
- "description": "This key defines options that are specific to Multichoice Inputs.\n\n## Examples\n\nIn this example, we have configured *Multichoice Input* options including values.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n options:\n values:\n - technology\n - design\n - business\n```",
9019
9016
  "type": "object",
9020
9017
  "properties": {
9021
9018
  "required": {
@@ -9086,6 +9083,7 @@
9086
9083
  }
9087
9084
  },
9088
9085
  "additionalProperties": false,
9086
+ "description": "This key defines options that are specific to Multichoice Inputs.\n\n## Examples\n\nIn this example, we have configured *Multichoice Input* options including values.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n options:\n values:\n - technology\n - design\n - business\n```",
9089
9087
  "documented": true,
9090
9088
  "title": "options",
9091
9089
  "markdownDescription": "This key defines options that are specific to Multichoice Inputs.\n\n## Examples\n\nIn this example, we have configured *Multichoice Input* options including values.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n options:\n values:\n - technology\n - design\n - business\n```"
@@ -9095,12 +9093,12 @@
9095
9093
  "type"
9096
9094
  ],
9097
9095
  "additionalProperties": false,
9096
+ "title": "Multichoice Input",
9097
+ "description": "This key defines an editing interface for data with multiple predefined options.\n\nMultichoice inputs allow several values.\n\n## Examples\n\nIn this example, we have configured the `categories` key as a *Multichoice Input*.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n label: Categories\n options:\n values:\n - technology\n - design\n - business\n```",
9098
9098
  "documented": true,
9099
9099
  "markdownDescription": "This key defines an editing interface for data with multiple predefined options.\n\nMultichoice inputs allow several values.\n\n## Examples\n\nIn this example, we have configured the `categories` key as a *Multichoice Input*.\n\n```yaml\n_inputs:\n categories:\n type: multichoice\n label: Categories\n options:\n values:\n - technology\n - design\n - business\n```"
9100
9100
  },
9101
9101
  "ObjectInput": {
9102
- "title": "Object Input",
9103
- "description": "This key defines a user interface for a group of inputs.",
9104
9102
  "type": "object",
9105
9103
  "properties": {
9106
9104
  "comment": {
@@ -9145,15 +9143,14 @@
9145
9143
  "$ref": "#/definitions/type._inputs.*.cascade"
9146
9144
  },
9147
9145
  "type": {
9148
- "title": "Type",
9149
- "description": "This key defines the input type, which controls how this input appears and behaves.",
9150
9146
  "type": "string",
9151
9147
  "const": "object",
9148
+ "title": "Type",
9149
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
9152
9150
  "documented": true,
9153
9151
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
9154
9152
  },
9155
9153
  "options": {
9156
- "description": "This key defines options that are specific to Object Inputs.",
9157
9154
  "type": "object",
9158
9155
  "properties": {
9159
9156
  "required": {
@@ -9376,6 +9373,7 @@
9376
9373
  }
9377
9374
  },
9378
9375
  "additionalProperties": false,
9376
+ "description": "This key defines options that are specific to Object Inputs.",
9379
9377
  "documented": true,
9380
9378
  "title": "options",
9381
9379
  "markdownDescription": "This key defines options that are specific to Object Inputs."
@@ -9385,12 +9383,14 @@
9385
9383
  "type"
9386
9384
  ],
9387
9385
  "additionalProperties": false,
9386
+ "title": "Object Input",
9387
+ "description": "This key defines a user interface for a group of inputs.",
9388
9388
  "documented": true,
9389
9389
  "markdownDescription": "This key defines a user interface for a group of inputs."
9390
9390
  },
9391
9391
  "type._inputs.*.options.empty_type(object)": {
9392
- "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty object values will be saved.\n\n```yaml\n_inputs:\n metadata:\n type: object\n options:\n empty_type: object\n```",
9393
9392
  "default": "null",
9393
+ "description": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty object values will be saved.\n\n```yaml\n_inputs:\n metadata:\n type: object\n options:\n empty_type: object\n```",
9394
9394
  "type": "string",
9395
9395
  "enum": [
9396
9396
  "null",
@@ -9401,15 +9401,13 @@
9401
9401
  "markdownDescription": "This key defines how an 'empty' value will be saved. Does not apply to existing empty values.\n\n## Examples\n\nIn this example, we have configured how empty object values will be saved.\n\n```yaml\n_inputs:\n metadata:\n type: object\n options:\n empty_type: object\n```"
9402
9402
  },
9403
9403
  "type.structure-reference": {
9404
+ "type": "string",
9404
9405
  "title": "Structure Reference",
9405
9406
  "description": "A reference to an existing structure.",
9406
- "type": "string",
9407
9407
  "documented": true,
9408
9408
  "markdownDescription": "A reference to an existing structure."
9409
9409
  },
9410
9410
  "type.structure": {
9411
- "title": "Structure",
9412
- "description": "This key defines data formats when adding new items to arrays and objects, with options for how editors choose from available values.",
9413
9411
  "type": "object",
9414
9412
  "properties": {
9415
9413
  "reorder_inputs": {
@@ -9445,11 +9443,11 @@
9445
9443
  "markdownDescription": "This key toggles whether CloudCannon will remove inputs that are not present in a Structure from a file before loading it in an Editing Interface.\n\nSetting this key to `true` will remove inputs that are not present in a Structure from a file before loading it in an Editing Interface. Non-Structure inputs will not be visible in the [Visual Editor](https://cloudcannon.com/documentation/articles/what-is-the-visual-editor/), [Content\nEditor](https://cloudcannon.com/documentation/articles/what-is-the-content-editor/), or [Data Editor](https://cloudcannon.com/documentation/articles/what-is-the-data-editor/), and saving the file\nwill remove them from the file before persisting the changes to your Git repository.\n\nYou can also configure this behavior for specific values of a Structure using `values[*].remove_extra_inputs`.\n\n## Examples\n\nIn this example, we want to delete old inputs that are not in the Structure from the associated file.\n\n```yaml\n_structures:\n related_articles:\n remove_extra_inputs: true\n values:\n - value:\n name:\n description:\n url:\n```"
9446
9444
  },
9447
9445
  "values": {
9448
- "description": "This key defines the options available for a Structure.\n\nYou must define this key for the Structure to function.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we want to add the `title`, `subtitle`, `author`, `featured_image`, and `url` fields to Object or Array inputs that reference this Structure.\n\n```yaml\n_structures:\n related_articles:\n values:\n - label: Blog\n id:\n default: true\n tabbed: false\n tags:\n - blog\n value:\n title:\n subtitle:\n author:\n featured_image:\n url:\n _inputs:\n featured_image:\n type: image\n options:\n width: 50\n height: 50\n groups:\n - heading: Titles\n inputs:\n - title\n - subtitle\n - heading: Details\n inputs:\n - author\n - image\n - url\n preview:\n text:\n - template: \"{title}\"\n subtext:\n - template: \"By {author}\"\n image:\n - key: image\n picker_preview:\n text: Blog\n subtext: Add a related blog\n icon: post_add\n```",
9449
9446
  "type": "array",
9450
9447
  "items": {
9451
9448
  "$ref": "#/definitions/type.structure.values.[*]"
9452
9449
  },
9450
+ "description": "This key defines the options available for a Structure.\n\nYou must define this key for the Structure to function.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we want to add the `title`, `subtitle`, `author`, `featured_image`, and `url` fields to Object or Array inputs that reference this Structure.\n\n```yaml\n_structures:\n related_articles:\n values:\n - label: Blog\n id:\n default: true\n tabbed: false\n tags:\n - blog\n value:\n title:\n subtitle:\n author:\n featured_image:\n url:\n _inputs:\n featured_image:\n type: image\n options:\n width: 50\n height: 50\n groups:\n - heading: Titles\n inputs:\n - title\n - subtitle\n - heading: Details\n inputs:\n - author\n - image\n - url\n preview:\n text:\n - template: \"{title}\"\n subtext:\n - template: \"By {author}\"\n image:\n - key: image\n picker_preview:\n text: Blog\n subtext: Add a related blog\n icon: post_add\n```",
9453
9451
  "documented": true,
9454
9452
  "title": "values",
9455
9453
  "markdownDescription": "This key defines the options available for a Structure.\n\nYou must define this key for the Structure to function.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we want to add the `title`, `subtitle`, `author`, `featured_image`, and `url` fields to Object or Array inputs that reference this Structure.\n\n```yaml\n_structures:\n related_articles:\n values:\n - label: Blog\n id:\n default: true\n tabbed: false\n tags:\n - blog\n value:\n title:\n subtitle:\n author:\n featured_image:\n url:\n _inputs:\n featured_image:\n type: image\n options:\n width: 50\n height: 50\n groups:\n - heading: Titles\n inputs:\n - title\n - subtitle\n - heading: Details\n inputs:\n - author\n - image\n - url\n preview:\n text:\n - template: \"{title}\"\n subtext:\n - template: \"By {author}\"\n image:\n - key: image\n picker_preview:\n text: Blog\n subtext: Add a related blog\n icon: post_add\n```"
@@ -9493,12 +9491,12 @@
9493
9491
  "values"
9494
9492
  ],
9495
9493
  "additionalProperties": false,
9494
+ "title": "Structure",
9495
+ "description": "This key defines data formats when adding new items to arrays and objects, with options for how editors choose from available values.",
9496
9496
  "documented": true,
9497
9497
  "markdownDescription": "This key defines data formats when adding new items to arrays and objects, with options for how editors choose from available values."
9498
9498
  },
9499
9499
  "type.structure.values.[*]": {
9500
- "title": "Structure Value",
9501
- "description": "This key represents a single value option within a structure, defining the data format and appearance for content editors.",
9502
9500
  "type": "object",
9503
9501
  "properties": {
9504
9502
  "reorder_inputs": {
@@ -9759,6 +9757,8 @@
9759
9757
  "value"
9760
9758
  ],
9761
9759
  "additionalProperties": false,
9760
+ "title": "Structure Value",
9761
+ "description": "This key represents a single value option within a structure, defining the data format and appearance for content editors.",
9762
9762
  "documented": true,
9763
9763
  "markdownDescription": "This key represents a single value option within a structure, defining the data format and appearance for content editors."
9764
9764
  },
@@ -9777,27 +9777,23 @@
9777
9777
  "markdownDescription": "This key defines globs that filter which files CloudCannon should use for *Input* configuration.\n\nValues in this array are relative to the root of your repository (i.e., `/`, not the value of `source`) and must end in the file extension\n`.cloudcannon.inputs.yml`.\n\nYou can use this key anywhere you would use the `_inputs` key in the configuration cascade.\n\nThis key has no default.\n\n## Examples\n\nIn this example, we have several *Input Configuration Files* in the `.cloudcannon/inputs/` folder, with each file containing multiple *Input* definitions. The value of the `_inputs_from_glob` key tells CloudCannon to only use the `seo.cloudcannon.inputs.yml` and `blog-details.cloudcannon.inputs.yml` files in that folder.\n\n```yaml\ncollections_config:\n posts:\n path: content/posts\n icon: event\n inputs_from_glob:\n - '/.cloudcannon/inputs/seo.cloudcannon.inputs.yml'\n - '/.cloudcannon/inputs/blogDetails.cloudcannon.inputs.yml'\n```\n\n```yaml\nseo_title:\n type: text\n options:\n required: true\n max_length: 50\nseo_description:\n type: textarea\n options:\n show_count: true\n required: true\n max_length: 125\nseo_image:\n type: image\n options:\n path:\n uploads: images\n accepts_mime_types:\n - image/png\n - image/jpeg\n required: true\n pattern: (?i)\\.(jpe?g|png)$\n pattern_message: Please select a JPG or PNG image file\n```"
9778
9778
  },
9779
9779
  "type._select_data": {
9780
- "title": "Select Data",
9781
- "description": "This key defines defines fixed data sets to populate Select and Multiselect inputs at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_select_data` will default to\nany values configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\nFor more information, please read our documentation on [Select and Multiselect inputs](https://cloudcannon.com/documentation/articles/what-is-a-select-input/#fixed-data-sets).\n\n## Examples\n\nIn this example, we have configured the `blog_tags` Multiselect input for the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _select_data:\n blog_topics:\n - Opinion\n - Feature\n - Resource\n```",
9782
9780
  "type": "object",
9783
9781
  "propertyNames": {
9784
9782
  "type": "string"
9785
9783
  },
9786
9784
  "additionalProperties": {
9787
- "description": "This key defines data formats for populating select and multiselect input options, supporting arrays and objects.",
9788
9785
  "anyOf": [
9789
9786
  {
9790
- "title": "Text Array Select Data",
9791
9787
  "type": "array",
9792
9788
  "items": {
9793
9789
  "type": "string",
9794
9790
  "documented": true,
9795
9791
  "title": "*(text-array)[*]"
9796
9792
  },
9793
+ "title": "Text Array Select Data",
9797
9794
  "documented": true
9798
9795
  },
9799
9796
  {
9800
- "title": "Text Object Select Data",
9801
9797
  "type": "object",
9802
9798
  "propertyNames": {
9803
9799
  "type": "string"
@@ -9807,10 +9803,10 @@
9807
9803
  "documented": true,
9808
9804
  "title": "*(text-object).*"
9809
9805
  },
9806
+ "title": "Text Object Select Data",
9810
9807
  "documented": true
9811
9808
  },
9812
9809
  {
9813
- "title": "Object Array Select Data",
9814
9810
  "type": "array",
9815
9811
  "items": {
9816
9812
  "type": "object",
@@ -9821,28 +9817,30 @@
9821
9817
  "documented": true,
9822
9818
  "title": "*(object-array)[*]"
9823
9819
  },
9820
+ "title": "Object Array Select Data",
9824
9821
  "documented": true
9825
9822
  },
9826
9823
  {
9827
- "title": "Object Select Data",
9828
9824
  "type": "object",
9829
9825
  "propertyNames": {
9830
9826
  "type": "string"
9831
9827
  },
9832
9828
  "additionalProperties": {},
9829
+ "title": "Object Select Data",
9833
9830
  "documented": true
9834
9831
  }
9835
9832
  ],
9833
+ "description": "This key defines data formats for populating select and multiselect input options, supporting arrays and objects.",
9836
9834
  "documented": true,
9837
9835
  "title": "_select_data.*",
9838
9836
  "markdownDescription": "This key defines data formats for populating select and multiselect input options, supporting arrays and objects."
9839
9837
  },
9838
+ "title": "Select Data",
9839
+ "description": "This key defines defines fixed data sets to populate Select and Multiselect inputs at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_select_data` will default to\nany values configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\nFor more information, please read our documentation on [Select and Multiselect inputs](https://cloudcannon.com/documentation/articles/what-is-a-select-input/#fixed-data-sets).\n\n## Examples\n\nIn this example, we have configured the `blog_tags` Multiselect input for the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _select_data:\n blog_topics:\n - Opinion\n - Feature\n - Resource\n```",
9840
9840
  "documented": true,
9841
9841
  "markdownDescription": "This key defines defines fixed data sets to populate Select and Multiselect inputs at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_select_data` will default to\nany values configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\nFor more information, please read our documentation on [Select and Multiselect inputs](https://cloudcannon.com/documentation/articles/what-is-a-select-input/#fixed-data-sets).\n\n## Examples\n\nIn this example, we have configured the `blog_tags` Multiselect input for the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _select_data:\n blog_topics:\n - Opinion\n - Feature\n - Resource\n```"
9842
9842
  },
9843
9843
  "type._structures": {
9844
- "title": "Structures",
9845
- "description": "This key defines which structures are available for [Object inputs](https://cloudcannon.com/documentation/articles/what-is-an-object-input/) and [Array\ninputs](https://cloudcannon.com/documentation/articles/what-is-an-array-input/) at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_structures` will default to\nany values configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\nFor more information, please read our documentation on [structures](https://cloudcannon.com/documentation/articles/what-is-a-structure/).\n\n## Examples\n\nIn this example, we want to populate an Array input in the `blog` Collection with Related Articles, including the `name`, `description`, and `url` fields.\n\n```yaml\ncollections_config:\n blog:\n _structures:\n related_articles:\n style: select\n values:\n - preview:\n text:\n - key: name\n subtext:\n - key: url\n value:\n name:\n description:\n url:\n```\n\nIn this example, we want to populate an Array input with Staff members, including the `name`, `job_description`, and `profile_picture` fields for all staff types, and the `url` field for Managers only.\n\n```yaml\n_structures:\n staff:\n style: modal\n hide_extra_inputs: false\n values:\n - value:\n _type: Employee\n name:\n job_description:\n profile_picture:\n preview:\n text:\n - key: name\n - Employee\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: support_agent\n - value:\n _type: Manager\n name:\n job_description:\n profile_picture:\n url:\n preview:\n text:\n - key: name\n - Manager\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: face\n```",
9846
9844
  "type": "object",
9847
9845
  "propertyNames": {
9848
9846
  "type": "string"
@@ -9850,6 +9848,8 @@
9850
9848
  "additionalProperties": {
9851
9849
  "$ref": "#/definitions/type.structure"
9852
9850
  },
9851
+ "title": "Structures",
9852
+ "description": "This key defines which structures are available for [Object inputs](https://cloudcannon.com/documentation/articles/what-is-an-object-input/) and [Array\ninputs](https://cloudcannon.com/documentation/articles/what-is-an-array-input/) at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_structures` will default to\nany values configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\nFor more information, please read our documentation on [structures](https://cloudcannon.com/documentation/articles/what-is-a-structure/).\n\n## Examples\n\nIn this example, we want to populate an Array input in the `blog` Collection with Related Articles, including the `name`, `description`, and `url` fields.\n\n```yaml\ncollections_config:\n blog:\n _structures:\n related_articles:\n style: select\n values:\n - preview:\n text:\n - key: name\n subtext:\n - key: url\n value:\n name:\n description:\n url:\n```\n\nIn this example, we want to populate an Array input with Staff members, including the `name`, `job_description`, and `profile_picture` fields for all staff types, and the `url` field for Managers only.\n\n```yaml\n_structures:\n staff:\n style: modal\n hide_extra_inputs: false\n values:\n - value:\n _type: Employee\n name:\n job_description:\n profile_picture:\n preview:\n text:\n - key: name\n - Employee\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: support_agent\n - value:\n _type: Manager\n name:\n job_description:\n profile_picture:\n url:\n preview:\n text:\n - key: name\n - Manager\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: face\n```",
9853
9853
  "documented": true,
9854
9854
  "markdownDescription": "This key defines which structures are available for [Object inputs](https://cloudcannon.com/documentation/articles/what-is-an-object-input/) and [Array\ninputs](https://cloudcannon.com/documentation/articles/what-is-an-array-input/) at a given level of the configuration cascade.\n\nThis key has no default.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_structures` will default to\nany values configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\nFor more information, please read our documentation on [structures](https://cloudcannon.com/documentation/articles/what-is-a-structure/).\n\n## Examples\n\nIn this example, we want to populate an Array input in the `blog` Collection with Related Articles, including the `name`, `description`, and `url` fields.\n\n```yaml\ncollections_config:\n blog:\n _structures:\n related_articles:\n style: select\n values:\n - preview:\n text:\n - key: name\n subtext:\n - key: url\n value:\n name:\n description:\n url:\n```\n\nIn this example, we want to populate an Array input with Staff members, including the `name`, `job_description`, and `profile_picture` fields for all staff types, and the `url` field for Managers only.\n\n```yaml\n_structures:\n staff:\n style: modal\n hide_extra_inputs: false\n values:\n - value:\n _type: Employee\n name:\n job_description:\n profile_picture:\n preview:\n text:\n - key: name\n - Employee\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: support_agent\n - value:\n _type: Manager\n name:\n job_description:\n profile_picture:\n url:\n preview:\n text:\n - key: name\n - Manager\n subtext:\n - key: job_description\n - Description of position\n image:\n - key: profile_picture\n icon: face\n```"
9855
9855
  },
@@ -9875,8 +9875,6 @@
9875
9875
  "markdownDescription": "This key defines the subtitle text above the key input when adding or renaming entries within a mutable *Object Input*.\n\nThe value is a string that supports a limited selection of Markdown formatting: links, bold, italic, subscript, superscript, and inline code elements are allowed.\n\nAvailable for Mutable Objects only.\n\n## Examples\n\nIn this example, we have configured a comment with Markdown formatting to provide help text above the key input.\n\n```yaml\n_inputs:\n metadata:\n type: object\n options:\n allow_create: true\n entries:\n comment: Key names should be **lowercase** and use underscores (e.g., `article_title`)\n```"
9876
9876
  },
9877
9877
  "ArrayInput": {
9878
- "title": "Array Input",
9879
- "description": "This key defines a user interface for lists of inputs or input groups.",
9880
9878
  "type": "object",
9881
9879
  "properties": {
9882
9880
  "comment": {
@@ -9921,15 +9919,14 @@
9921
9919
  "$ref": "#/definitions/type._inputs.*.cascade"
9922
9920
  },
9923
9921
  "type": {
9924
- "title": "Type",
9925
- "description": "This key defines the input type, which controls how this input appears and behaves.",
9926
9922
  "type": "string",
9927
9923
  "const": "array",
9924
+ "title": "Type",
9925
+ "description": "This key defines the input type, which controls how this input appears and behaves.",
9928
9926
  "documented": true,
9929
9927
  "markdownDescription": "This key defines the input type, which controls how this input appears and behaves."
9930
9928
  },
9931
9929
  "options": {
9932
- "description": "This key defines options that are specific to Array Inputs.",
9933
9930
  "type": "object",
9934
9931
  "properties": {
9935
9932
  "required": {
@@ -9990,6 +9987,7 @@
9990
9987
  }
9991
9988
  },
9992
9989
  "additionalProperties": false,
9990
+ "description": "This key defines options that are specific to Array Inputs.",
9993
9991
  "documented": true,
9994
9992
  "title": "options",
9995
9993
  "markdownDescription": "This key defines options that are specific to Array Inputs."
@@ -9999,6 +9997,8 @@
9999
9997
  "type"
10000
9998
  ],
10001
9999
  "additionalProperties": false,
10000
+ "title": "Array Input",
10001
+ "description": "This key defines a user interface for lists of inputs or input groups.",
10002
10002
  "documented": true,
10003
10003
  "markdownDescription": "This key defines a user interface for lists of inputs or input groups."
10004
10004
  },
@@ -10027,9 +10027,6 @@
10027
10027
  "markdownDescription": "This key toggles whether CloudCannon will hide the controls on each item for moving them.\n\nSetting this key to `true` will hide the controls for moving items.\n\nBy default, this key is `false` (i.e., the controls for moving items are displayed)."
10028
10028
  },
10029
10029
  "AutoInput": {
10030
- "title": "Automatic Input",
10031
- "description": "Provides a default user interface based on the data contained.",
10032
- "excludeFromDocumentation": true,
10033
10030
  "type": "object",
10034
10031
  "properties": {
10035
10032
  "comment": {
@@ -10074,10 +10071,10 @@
10074
10071
  "$ref": "#/definitions/type._inputs.*.cascade"
10075
10072
  },
10076
10073
  "type": {
10077
- "title": "Type",
10078
- "description": "Sets an input type, which controls how this input appears and behaves.",
10079
10074
  "type": "string",
10080
10075
  "const": "auto",
10076
+ "title": "Type",
10077
+ "description": "Sets an input type, which controls how this input appears and behaves.",
10081
10078
  "documented": false,
10082
10079
  "markdownDescription": "Sets an input type, which controls how this input appears and behaves."
10083
10080
  },
@@ -10092,13 +10089,13 @@
10092
10089
  "type"
10093
10090
  ],
10094
10091
  "additionalProperties": false,
10092
+ "title": "Automatic Input",
10093
+ "description": "Provides a default user interface based on the data contained.",
10094
+ "excludeFromDocumentation": true,
10095
10095
  "documented": false,
10096
10096
  "markdownDescription": "Provides a default user interface based on the data contained."
10097
10097
  },
10098
10098
  "UnknownInput": {
10099
- "title": "Unknown Input",
10100
- "description": "Provides a default user interface based on the data contained.",
10101
- "excludeFromDocumentation": true,
10102
10099
  "type": "object",
10103
10100
  "properties": {
10104
10101
  "comment": {
@@ -10150,6 +10147,9 @@
10150
10147
  }
10151
10148
  },
10152
10149
  "additionalProperties": false,
10150
+ "title": "Unknown Input",
10151
+ "description": "Provides a default user interface based on the data contained.",
10152
+ "excludeFromDocumentation": true,
10153
10153
  "documented": false,
10154
10154
  "markdownDescription": "Provides a default user interface based on the data contained."
10155
10155
  },
@@ -10165,14 +10165,14 @@
10165
10165
  "markdownDescription": "This key defines which editing interfaces are available by default for files at a given level of the configuration cascade.\n\nWhether an editing interface is available for a specific file is determined by other factors.\n\nValues can be one of the following: `visual`, `content`, or `data`.\n\nSpecifying one or more editing interfaces will disable all unspecified editing interfaces.\n\nYou cannot disable the Source Editor with this key.\n\nBy default, this key is set to `visual`, `content`, and `data`.\n\nIf undefined at higher levels of the [configuration cascade](https://cloudcannon.com/documentation/articles/using-the-configuration-cascade/), `_enabled_editables` will\ndefault to any values configured in the [CloudCannon configuration file](https://cloudcannon.com/documentation/articles/what-is-the-cloudcannon-configuration-file/).\n\nFor more information, please read our documentation on the [Visual Editor](https://cloudcannon.com/documentation/articles/what-is-the-visual-editor/), [Content\nEditor](https://cloudcannon.com/documentation/articles/what-is-the-content-editor/), [Data Editor](https://cloudcannon.com/documentation/articles/what-is-the-data-editor/), and [Source\nEditor](https://cloudcannon.com/documentation/articles/what-is-the-source-editor/).\n\n## Examples\n\nIn this example, we have enabled only the [Content Editor](https://cloudcannon.com/documentation/articles/what-is-the-content-editor/) in the `blog` Collection.\n\n```yaml\ncollections_config:\n blog:\n _enabled_editors:\n - content\n```"
10166
10166
  },
10167
10167
  "EditorKey": {
10168
- "title": "Editor Key",
10169
- "description": "This key defines the available editors in CloudCannon: visual, content, and data editors.",
10170
10168
  "type": "string",
10171
10169
  "enum": [
10172
10170
  "visual",
10173
10171
  "content",
10174
10172
  "data"
10175
10173
  ],
10174
+ "title": "Editor Key",
10175
+ "description": "This key defines the available editors in CloudCannon: visual, content, and data editors.",
10176
10176
  "documented": true,
10177
10177
  "markdownDescription": "This key defines the available editors in CloudCannon: visual, content, and data editors."
10178
10178
  },