This plugin allows you to define some properties that will be editable either one by one, or by (visual) presets. You can also define which properties are available for editing.

string: Simple text inputnumber: Simple number inputboolean: Simple switch inputselect: Select inputimagevideo: Play on hoverprops: Choose with property field is displayedpresets: Display of not the presets previewstemplates defined in the plugin config for convinienceJSON field on one of your blocks/modelsPresentationBuzz JSON optionsHere's an example of plugin level configuration:
{ "settings": { "presets": { "display": true, "preview": { "aspectRatio": 1.77, "height": 200 } }, "props": { // can be an array of properties ids to display "display": true } }, // specify some templates to extends fields from "templates": { "image": { "settings": { "preset": { "display": true // and other settings... } }, "props": { "animated": { "type": "boolean", "label": "Animated", "default": true } } } }}Here's an example of a field level configuration
{ // extends from the "image" template "extends": "image", // some custom settings "settings": { "props": { "display": ["animated"] } }, "presets": [ { "label": "Animated image", "values": { "shape": "square", "animated": true }, // can be images or videos "preview": "https://..." }, { "label": "Non animated image", "values": { "shape": "circle", "animated": true }, // can be images or videos "preview": "https://..." } ], "props": { "shape": { "type": "select", "label": "Shape", "options": [ { "label": "Square", "value": "square" }, { "label": "Circle", "value": "circle" } ] } }}Here's the typescript types for convinience
export type TDatoPluginBuzzOptions = { settings?: TDatoPluginBuzzOptionsSettings presets?: Record<string, TDatoPluginBuzzOptionsPreset> props?: Record<string, TDatoPluginBuzzOptionsProp> extends?: string}
export type TDatoPluginBuzzOptionsConfig = { settings?: TDatoPluginBuzzOptionsSettings templates?: { [key: string]: TDatoPluginBuzzOptions }}
export type TDatoPluginBuzzOptionsPreset = { label: string values: { [key: string]: string | number | boolean } preview?: string}
export type TDatoPluginBuzzOptionsProp = | { label: string type: 'string' | 'number' | 'boolean' default?: string | number | boolean } | { type: 'string' | 'number' | 'select' options: { label: string value: string | number } }
export type TDatoPluginBuzzOptionsSettings = { debug?: { togglePropsKey?: boolean } presets?: { display?: boolean preview?: { aspectRatio: number height: number } } props: { display?: boolean | string[] }}