<?php

namespace YOOtheme;

return [
    'name' => 'panel-slider',
    'title' => 'Panel Slider',
    'group' => 'multiple items',
    'icon' => '${url:images/icon.svg}',
    'iconSmall' => '${url:images/iconSmall.svg}',
    'element' => true,
    'container' => true,
    'width' => 500,
    'defaults' => [
        'show_title' => true,
        'show_meta' => true,
        'show_content' => true,
        'show_image' => true,
        'show_video' => true,
        'show_link' => true,
        'show_hover_image' => true,
        'show_hover_video' => true,
        'slider_width' => 'fixed',
        'slider_width_default' => '1-1',
        'slider_width_medium' => '1-3',
        'slider_gap' => 'default',
        'slider_autoplay_pause' => true,
        'nav' => 'dotnav',
        'nav_align' => 'center',
        'nav_breakpoint' => 's',
        'slidenav' => 'outside',
        'slidenav_margin' => 'medium',
        'slidenav_breakpoint' => 'xl',
        'slidenav_outside_breakpoint' => 'xl',
        'panel_match' => true,
        'title_hover_style' => 'reset',
        'title_element' => 'h3',
        'title_align' => 'top',
        'title_grid_width' => '1-2',
        'title_grid_breakpoint' => 'm',
        'meta_style' => 'text-meta',
        'meta_align' => 'below-title',
        'meta_element' => 'div',
        'content_column_breakpoint' => 'm',
        'image_align' => 'top',
        'image_grid_width' => '1-2',
        'image_grid_breakpoint' => 'm',
        'image_svg_color' => 'emphasis',
        'link_text' => 'Read more',
        'link_style' => 'default',
        'margin_top' => 'default',
        'margin_bottom' => 'default',
    ],
    'placeholder' => [
        'children' => [
            [
                'type' => 'panel-slider_item',
            ],
            [
                'type' => 'panel-slider_item',
            ],
            [
                'type' => 'panel-slider_item',
            ],
            [
                'type' => 'panel-slider_item',
            ],
            [
                'type' => 'panel-slider_item',
            ],
        ],
    ],
    'updates' => __DIR__ . '/updates.php',
    'templates' => [
        'render' => __DIR__ . '/templates/template.php',
        'content' => __DIR__ . '/templates/content.php',
    ],
    'fields' => [
        'content' => [
            'label' => 'Items',
            'type' => 'content-items',
            'item' => 'panel-slider_item',
            'media' => [
                [
                    'type' => 'image',
                    'item' => [
                        'title' => 'title',
                        'image' => 'src',
                    ],
                ],
                [
                    'type' => 'video',
                    'item' => [
                        'title' => 'title',
                        'video' => 'src',
                    ],
                ],
            ],
        ],
        'show_title' => [
            'label' => 'Display',
            'type' => 'checkbox',
            'text' => 'Show the title',
        ],
        'show_meta' => [
            'type' => 'checkbox',
            'text' => 'Show the meta text',
        ],
        'show_content' => [
            'type' => 'checkbox',
            'text' => 'Show the content',
        ],
        'show_image' => [
            'type' => 'checkbox',
            'text' => 'Show the image',
        ],
        'show_video' => [
            'type' => 'checkbox',
            'text' => 'Show the video',
        ],
        'show_link' => [
            'type' => 'checkbox',
            'text' => 'Show the link',
        ],
        'show_hover_image' => [
            'type' => 'checkbox',
            'text' => 'Show the hover image',
        ],
        'show_hover_video' => [
            'description' =>
                'Show or hide content fields without the need to delete the content itself.',
            'type' => 'checkbox',
            'text' => 'Show the hover video',
        ],
        'slider_width' => [
            'label' => 'Item Width Mode',
            'description' =>
                'Define whether the width of the slider items is fixed or automatically expanded by its content widths.',
            'type' => 'select',
            'options' => [
                'Fixed' => 'fixed',
                'Auto' => '',
            ],
        ],
        'height_expand' => [
            'label' => 'Height',
            'type' => 'checkbox',
            'text' => 'Fill the available column space',
            'enable' => 'slider_width',
        ],
        'slider_gap' => [
            'label' => 'Column Gap',
            'description' => 'Set the size of the gap between the grid columns.',
            'type' => 'select',
            'options' => [
                'Small' => 'small',
                'Medium' => 'medium',
                'Default' => 'default',
                'Large' => 'large',
                'None' => '',
            ],
        ],
        'slider_divider' => [
            'label' => 'Divider',
            'description' => 'Show a divider between grid columns.',
            'type' => 'checkbox',
            'text' => 'Show dividers',
            'enable' => 'slider_gap',
        ],
        'slider_row_align' => [
            'label' => 'Alignment',
            'description' => 'Center grid rows vertically.',
            'type' => 'checkbox',
            'text' => 'Center rows',
        ],
        'slider_width_default' => [
            'label' => 'Phone Portrait',
            'description' =>
                'Set the item width for each breakpoint. <i>Inherit</i> refers to the item width of the next smaller screen size.',
            'type' => 'select',
            'options' => [
                '100%' => '1-1',
                '83%' => '5-6',
                '80%' => '4-5',
                '60%' => '3-5',
                '50%' => '1-2',
                '33%' => '1-3',
                '25%' => '1-4',
                '20%' => '1-5',
                '16%' => '1-6',
            ],
            'enable' => 'slider_width',
        ],
        'slider_width_small' => [
            'label' => 'Phone Landscape',
            'description' =>
                'Set the item width for each breakpoint. <i>Inherit</i> refers to the item width of the next smaller screen size.',
            'type' => 'select',
            'options' => [
                'Inherit' => '',
                '100%' => '1-1',
                '83%' => '5-6',
                '80%' => '4-5',
                '60%' => '3-5',
                '50%' => '1-2',
                '33%' => '1-3',
                '25%' => '1-4',
                '20%' => '1-5',
                '16%' => '1-6',
            ],
            'enable' => 'slider_width',
        ],
        'slider_width_medium' => [
            'label' => 'Tablet Landscape',
            'description' =>
                'Set the item width for each breakpoint. <i>Inherit</i> refers to the item width of the next smaller screen size.',
            'type' => 'select',
            'options' => [
                'Inherit' => '',
                '100%' => '1-1',
                '83%' => '5-6',
                '80%' => '4-5',
                '60%' => '3-5',
                '50%' => '1-2',
                '33%' => '1-3',
                '25%' => '1-4',
                '20%' => '1-5',
                '16%' => '1-6',
            ],
            'enable' => 'slider_width',
        ],
        'slider_width_large' => [
            'label' => 'Desktop',
            'description' =>
                'Set the item width for each breakpoint. <i>Inherit</i> refers to the item width of the next smaller screen size.',
            'type' => 'select',
            'options' => [
                'Inherit' => '',
                '100%' => '1-1',
                '83%' => '5-6',
                '80%' => '4-5',
                '60%' => '3-5',
                '50%' => '1-2',
                '33%' => '1-3',
                '25%' => '1-4',
                '20%' => '1-5',
                '16%' => '1-6',
            ],
            'enable' => 'slider_width',
        ],
        'slider_width_xlarge' => [
            'label' => 'Large Screens',
            'description' =>
                'Set the item width for each breakpoint. <i>Inherit</i> refers to the item width of the next smaller screen size.',
            'type' => 'select',
            'options' => [
                'Inherit' => '',
                '100%' => '1-1',
                '83%' => '5-6',
                '80%' => '4-5',
                '60%' => '3-5',
                '50%' => '1-2',
                '33%' => '1-3',
                '25%' => '1-4',
                '20%' => '1-5',
                '16%' => '1-6',
            ],
            'enable' => 'slider_width',
        ],
        'slider_sets' => [
            'label' => 'Sets',
            'description' =>
                'Group items into sets. The number of items within a set depends on the defined item width, e.g. <i>33%</i> means that each set contains 3 items.',
            'type' => 'checkbox',
            'text' => 'Slide all visible items at once',
            'enable' => '!slider_parallax',
        ],
        'slider_center' => [
            'label' => 'Center',
            'type' => 'checkbox',
            'text' => 'Center the active slide',
        ],
        'slider_finite' => [
            'label' => 'Finite',
            'type' => 'checkbox',
            'text' => 'Disable infinite scrolling',
        ],
        'slider_velocity' => [
            'label' => 'Velocity',
            'description' => 'Set the velocity in pixels per millisecond.',
            'type' => 'range',
            'attrs' => [
                'min' => 0.2,
                'max' => 3,
                'step' => 0.1,
                'placeholder' => '1',
            ],
            'enable' => '!slider_parallax',
        ],
        'slider_autoplay' => [
            'label' => 'Autoplay',
            'type' => 'checkbox',
            'text' => 'Enable autoplay',
            'enable' => '!slider_parallax',
        ],
        'slider_autoplay_pause' => [
            'type' => 'checkbox',
            'text' => 'Pause autoplay on hover',
            'enable' => '!slider_parallax && slider_autoplay',
        ],
        'slider_autoplay_interval' => [
            'label' => 'Autoplay Interval',
            'description' => 'Set the autoplay interval in seconds.',
            'type' => 'range',
            'attrs' => [
                'min' => 5,
                'max' => 15,
                'step' => 1,
                'placeholder' => '7',
            ],
            'enable' => '!slider_parallax && slider_autoplay',
        ],
        'slider_parallax' => [
            'label' => 'Parallax',
            'description' => 'Add a stepless parallax animation based on the scroll position.',
            'type' => 'checkbox',
            'text' => 'Enable parallax effect',
        ],
        'slider_parallax_easing' => [
            'label' => 'Parallax Easing',
            'description' =>
                'Set the animation easing. Zero transitions at an even speed, a negative value starts off quickly while a positive value starts off slowly.',
            'type' => 'range',
            'attrs' => [
                'min' => -2,
                'max' => 2,
                'step' => 0.1,
            ],
            'enable' => 'slider_parallax',
        ],
        'slider_parallax_target' => [
            'label' => 'Parallax Target',
            'description' =>
                'The animation starts and stops depending on the element position in the viewport. Alternatively, use the position of a parent container.',
            'type' => 'select',
            'options' => [
                'Element' => '',
                'Column' => '!.tm-grid-expand>*',
                'Row' => '!.tm-grid-expand',
                'Section' => '!.uk-section',
                'Next Section' => "![class*='uk-section-'] ~ [class*='uk-section-']",
            ],
            'enable' => 'slider_parallax',
        ],
        'slider_parallax_start' => [
            'enable' => 'slider_parallax',
        ],
        'slider_parallax_end' => [
            'enable' => 'slider_parallax',
        ],
        'nav' => [
            'label' => 'Navigation',
            'description' => 'Select the navigation type.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Dotnav' => 'dotnav',
            ],
        ],
        'nav_align' => [
            'label' => 'Position',
            'description' => 'Align the navigation items.',
            'type' => 'select',
            'options' => [
                'Left' => 'left',
                'Center' => 'center',
                'Right' => 'right',
            ],
            'enable' => 'nav',
        ],
        'nav_margin' => [
            'label' => 'Margin',
            'description' => 'Set the vertical margin.',
            'type' => 'select',
            'options' => [
                'X-Small' => 'xsmall',
                'Small' => 'small',
                'Default' => '',
                'Medium' => 'medium',
                'Large' => 'large',
            ],
            'enable' => 'nav',
        ],
        'nav_breakpoint' => [
            'label' => 'Breakpoint',
            'description' => 'Display the navigation only on this device width and larger.',
            'type' => 'select',
            'options' => [
                'Always' => '',
                'Small (Phone Landscape)' => 's',
                'Medium (Tablet Landscape)' => 'm',
                'Large (Desktop)' => 'l',
                'X-Large (Large Screens)' => 'xl',
            ],
            'enable' => 'nav',
        ],
        'slidenav' => [
            'label' => 'Position',
            'description' => 'Select the position of the slidenav.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Default' => 'default',
                'Outside' => 'outside',
                'Top Left' => 'top-left',
                'Top Right' => 'top-right',
                'Center Left' => 'center-left',
                'Center Right' => 'center-right',
                'Bottom Left' => 'bottom-left',
                'Bottom Center' => 'bottom-center',
                'Bottom Right' => 'bottom-right',
            ],
            'enable' => '!slider_parallax',
        ],
        'slidenav_hover' => [
            'type' => 'checkbox',
            'text' => 'Show on hover only',
            'enable' => 'slidenav && !slider_parallax',
        ],
        'slidenav_large' => [
            'type' => 'checkbox',
            'text' => 'Larger style',
            'enable' => 'slidenav && !slider_parallax',
        ],
        'slidenav_margin' => [
            'label' => 'Margin',
            'description' => 'Apply a margin between the slidenav and the slider container.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Small' => 'small',
                'Medium' => 'medium',
                'Large' => 'large',
            ],
            'enable' => 'slidenav && !slider_parallax',
        ],
        'slidenav_breakpoint' => [
            'label' => 'Breakpoint',
            'description' => 'Display the slidenav only on this device width and larger.',
            'type' => 'select',
            'options' => [
                'Always' => '',
                'Small (Phone Landscape)' => 's',
                'Medium (Tablet Landscape)' => 'm',
                'Large (Desktop)' => 'l',
                'X-Large (Large Screens)' => 'xl',
            ],
            'enable' => 'slidenav && !slider_parallax',
        ],
        'slidenav_outside_breakpoint' => [
            'label' => 'Outside Breakpoint',
            'description' =>
                'Display the slidenav outside only on this device width and larger. Otherwise, display it inside.',
            'type' => 'select',
            'options' => [
                'Small (Phone Landscape)' => 's',
                'Medium (Tablet Landscape)' => 'm',
                'Large (Desktop)' => 'l',
                'X-Large (Large Screens)' => 'xl',
            ],
            'enable' => "slidenav == 'outside' && !slider_parallax",
        ],
        'panel_style' => [
            'label' => 'Style',
            'description' => 'Select one of the boxed card or tile styles or a blank panel.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Card Default' => 'card-default',
                'Card Primary' => 'card-primary',
                'Card Secondary' => 'card-secondary',
                'Card Hover' => 'card-hover',
                'Card Overlay' => 'card-overlay',
                'Tile Default' => 'tile-default',
                'Tile Muted' => 'tile-muted',
                'Tile Primary' => 'tile-primary',
                'Tile Secondary' => 'tile-secondary',
            ],
        ],
        'panel_card_offset' => [
            'type' => 'checkbox',
            'text' => 'Add clipping offset',
            'enable' => 'panel_style',
        ],
        'panel_link' => [
            'label' => 'Link',
            'description' =>
                'Link the whole panel if a link exists. Optionally, add a hover style.',
            'type' => 'checkbox',
            'text' => 'Link panel',
            'enable' => 'show_link',
        ],
        'panel_link_hover' => [
            'type' => 'checkbox',
            'text' => 'Add hover style',
            'enable' =>
                'show_link && panel_link && $match(panel_style, \'card-(default|primary|secondary|overlay)|tile-\')',
        ],
        'panel_padding' => [
            'label' => 'Padding',
            'description' => 'Set the padding.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Small' => 'small',
                'Default' => 'default',
                'Large' => 'large',
            ],
            'enable' =>
                "panel_style || (!panel_style && (show_image || show_video) && image_align != 'between')",
        ],
        'panel_image_no_padding' => [
            'description' =>
                'Top, left or right aligned images can be attached to the panel edge. If the image is aligned to the left or right, it will also extend to cover the whole space.',
            'type' => 'checkbox',
            'text' => 'Align image without padding',
            'show' => 'panel_style',
            'enable' => "(show_image || show_video) && image_align != 'between'",
        ],
        'panel_match' => [
            'label' => 'Height',
            'type' => 'checkbox',
            'text' => 'Match panel heights',
        ],
        'image_expand' => [
            'type' => 'checkbox',
            'text' => 'Expand image',
            'enable' => 'panel_match',
        ],
        'title_style' => [
            'label' => 'Style',
            'description' =>
                'Title styles differ in font-size but may also come with a predefined color, size and font.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Heading 3X-Large' => 'heading-3xlarge',
                'Heading 2X-Large' => 'heading-2xlarge',
                'Heading X-Large' => 'heading-xlarge',
                'Heading Large' => 'heading-large',
                'Heading Medium' => 'heading-medium',
                'Heading Small' => 'heading-small',
                'Heading H1' => 'h1',
                'Heading H2' => 'h2',
                'Heading H3' => 'h3',
                'Heading H4' => 'h4',
                'Heading H5' => 'h5',
                'Heading H6' => 'h6',
                'Text Meta' => 'text-meta',
                'Text Lead' => 'text-lead',
                'Text Small' => 'text-small',
                'Text Large' => 'text-large',
            ],
            'enable' => 'show_title',
        ],
        'title_link' => [
            'label' => 'Link',
            'description' => 'Link the title if a link exists.',
            'type' => 'checkbox',
            'text' => 'Link title',
            'enable' => 'show_title && show_link',
        ],
        'title_hover_style' => [
            'label' => 'Hover Style',
            'description' => 'Set the hover style for a linked title.',
            'type' => 'select',
            'options' => [
                'None' => 'reset',
                'Heading Link' => 'heading',
                'Default Link' => '',
            ],
            'enable' => 'show_title && show_link && (title_link || panel_link)',
        ],
        'title_decoration' => [
            'label' => 'Decoration',
            'description' =>
                'Decorate the title with a divider, bullet or a line that is vertically centered to the heading.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Divider' => 'divider',
                'Bullet' => 'bullet',
                'Line' => 'line',
            ],
            'enable' => 'show_title',
        ],
        'title_font_family' => [
            'label' => 'Font Family',
            'description' =>
                'Select an alternative font family. Mind that not all styles have different font families.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Default' => 'default',
                'Primary' => 'primary',
                'Secondary' => 'secondary',
                'Tertiary' => 'tertiary',
            ],
            'enable' => 'show_title',
        ],
        'title_color' => [
            'label' => 'Color',
            'description' =>
                "Select the text color. If the Background option is selected, styles that don't apply a background image use the primary color instead.",
            'type' => 'select',
            'options' => [
                'None' => '',
                'Muted' => 'muted',
                'Emphasis' => 'emphasis',
                'Primary' => 'primary',
                'Secondary' => 'secondary',
                'Success' => 'success',
                'Warning' => 'warning',
                'Danger' => 'danger',
                'Background' => 'background',
            ],
            'enable' => 'show_title',
        ],
        'title_element' => [
            'label' => 'HTML Element',
            'description' =>
                'Set the level for the section heading or give it no semantic meaning.',
            'type' => 'select',
            'options' => [
                'h1' => 'h1',
                'h2' => 'h2',
                'h3' => 'h3',
                'h4' => 'h4',
                'h5' => 'h5',
                'h6' => 'h6',
                'div' => 'div',
            ],
            'enable' => 'show_title',
        ],
        'title_align' => [
            'label' => 'Alignment',
            'description' => 'Align the title to the top or left in regards to the content.',
            'type' => 'select',
            'options' => [
                'Top' => 'top',
                'Left' => 'left',
            ],
            'enable' => 'show_title',
        ],
        'title_grid_width' => [
            'label' => 'Grid Width',
            'description' =>
                'Define the width of the title within the grid. Choose between percent and fixed widths or expand columns to the width of their content.',
            'type' => 'select',
            'options' => [
                'Auto' => 'auto',
                'Expand' => 'expand',
                '80%' => '4-5',
                '75%' => '3-4',
                '66%' => '2-3',
                '60%' => '3-5',
                '50%' => '1-2',
                '40%' => '2-5',
                '33%' => '1-3',
                '25%' => '1-4',
                '20%' => '1-5',
                'Small' => 'small',
                'Medium' => 'medium',
                'Large' => 'large',
                'X-Large' => 'xlarge',
                '2X-Large' => '2xlarge',
            ],
            'enable' => "show_title && title_align == 'left'",
        ],
        'title_grid_column_gap' => [
            'label' => 'Grid Column Gap',
            'description' => 'Set the size of the gap between the title and the content.',
            'type' => 'select',
            'options' => [
                'Small' => 'small',
                'Medium' => 'medium',
                'Default' => '',
                'Large' => 'large',
                'None' => 'collapse',
            ],
            'enable' => "show_title && title_align == 'left'",
        ],
        'title_grid_row_gap' => [
            'label' => 'Grid Row Gap',
            'description' => 'Set the size of the gap if the grid items stack.',
            'type' => 'select',
            'options' => [
                'Small' => 'small',
                'Medium' => 'medium',
                'Default' => '',
                'Large' => 'large',
                'None' => 'collapse',
            ],
            'enable' => "show_title && title_align == 'left'",
        ],
        'title_grid_breakpoint' => [
            'label' => 'Grid Breakpoint',
            'description' => 'Set the breakpoint from which grid items will stack.',
            'type' => 'select',
            'options' => [
                'Always' => '',
                'Small (Phone Landscape)' => 's',
                'Medium (Tablet Landscape)' => 'm',
                'Large (Desktop)' => 'l',
                'X-Large (Large Screens)' => 'xl',
            ],
            'enable' => "show_title && title_align == 'left'",
        ],
        'title_margin' => [
            'label' => 'Margin Top',
            'description' =>
                'Set the top margin. Note that the margin will only apply if the content field immediately follows another content field.',
            'type' => 'select',
            'options' => [
                'X-Small' => 'xsmall',
                'Small' => 'small',
                'Default' => '',
                'Medium' => 'medium',
                'Large' => 'large',
                'X-Large' => 'xlarge',
                'None' => 'remove',
            ],
            'enable' => 'show_title',
        ],
        'title_margin_auto' => [
            'label' => 'Margin Bottom',
            'type' => 'checkbox',
            'text' => 'Auto',
            'enable' => 'show_title',
        ],
        'meta_style' => [
            'label' => 'Style',
            'description' =>
                'Select a predefined meta text style, including color, size and font-family.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Text Meta' => 'text-meta',
                'Text Lead' => 'text-lead',
                'Text Small' => 'text-small',
                'Text Large' => 'text-large',
                'Heading 3X-Large' => 'heading-3xlarge',
                'Heading 2X-Large' => 'heading-2xlarge',
                'Heading X-Large' => 'heading-xlarge',
                'Heading Large' => 'heading-large',
                'Heading Medium' => 'heading-medium',
                'Heading Small' => 'heading-small',
                'Heading H1' => 'h1',
                'Heading H2' => 'h2',
                'Heading H3' => 'h3',
                'Heading H4' => 'h4',
                'Heading H5' => 'h5',
                'Heading H6' => 'h6',
            ],
            'enable' => 'show_meta',
        ],
        'meta_color' => [
            'label' => 'Color',
            'description' => 'Select the text color.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Muted' => 'muted',
                'Emphasis' => 'emphasis',
                'Primary' => 'primary',
                'Secondary' => 'secondary',
                'Success' => 'success',
                'Warning' => 'warning',
                'Danger' => 'danger',
            ],
            'enable' => 'show_meta',
        ],
        'meta_align' => [
            'label' => 'Alignment',
            'description' => 'Align the meta text.',
            'type' => 'select',
            'options' => [
                'Above Title' => 'above-title',
                'Below Title' => 'below-title',
                'Above Content' => 'above-content',
                'Below Content' => 'below-content',
            ],
            'enable' => 'show_meta',
        ],
        'meta_element' => [
            'label' => 'HTML Element',
            'description' =>
                'Set the level for the section heading or give it no semantic meaning.',
            'type' => 'select',
            'options' => [
                'h1' => 'h1',
                'h2' => 'h2',
                'h3' => 'h3',
                'h4' => 'h4',
                'h5' => 'h5',
                'h6' => 'h6',
                'div' => 'div',
            ],
            'enable' => 'show_meta',
        ],
        'meta_margin' => [
            'label' => 'Margin Top',
            'description' =>
                'Set the top margin. Note that the margin will only apply if the content field immediately follows another content field.',
            'type' => 'select',
            'options' => [
                'X-Small' => 'xsmall',
                'Small' => 'small',
                'Default' => '',
                'Medium' => 'medium',
                'Large' => 'large',
                'X-Large' => 'xlarge',
                'None' => 'remove',
            ],
            'enable' => 'show_meta',
        ],
        'meta_margin_auto' => [
            'label' => 'Margin Bottom',
            'type' => 'checkbox',
            'text' => 'Auto',
            'enable' => 'show_meta',
        ],
        'content_style' => [
            'label' => 'Style',
            'description' =>
                'Select a predefined text style, including color, size and font-family.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Text Meta' => 'text-meta',
                'Text Lead' => 'text-lead',
                'Text Small' => 'text-small',
                'Text Large' => 'text-large',
                'Heading 3X-Large' => 'heading-3xlarge',
                'Heading 2X-Large' => 'heading-2xlarge',
                'Heading X-Large' => 'heading-xlarge',
                'Heading Large' => 'heading-large',
                'Heading Medium' => 'heading-medium',
                'Heading Small' => 'heading-small',
                'Heading H1' => 'h1',
                'Heading H2' => 'h2',
                'Heading H3' => 'h3',
                'Heading H4' => 'h4',
                'Heading H5' => 'h5',
                'Heading H6' => 'h6',
            ],
            'enable' => 'show_content',
        ],
        'content_align' => [
            'label' => 'Alignment',
            'type' => 'checkbox',
            'text' => 'Force left alignment',
            'enable' => 'show_content',
        ],
        'content_dropcap' => [
            'label' => 'Drop Cap',
            'description' => 'Display the first letter of the paragraph as a large initial.',
            'type' => 'checkbox',
            'text' => 'Enable drop cap',
            'enable' => 'show_content',
        ],
        'content_column' => [
            'label' => 'Columns',
            'description' => 'Set the number of text columns.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Halves' => '1-2',
                'Thirds' => '1-3',
                'Quarters' => '1-4',
                'Fifths' => '1-5',
                'Sixths' => '1-6',
            ],
            'enable' => 'show_content',
        ],
        'content_column_divider' => [
            'description' => 'Show a divider between text columns.',
            'type' => 'checkbox',
            'text' => 'Show dividers',
            'enable' => 'show_content && content_column',
        ],
        'content_column_breakpoint' => [
            'label' => 'Columns Breakpoint',
            'description' => 'Set the device width from which the text columns should apply.',
            'type' => 'select',
            'options' => [
                'Always' => '',
                'Small (Phone Landscape)' => 's',
                'Medium (Tablet Landscape)' => 'm',
                'Large (Desktop)' => 'l',
                'X-Large (Large Screens)' => 'xl',
            ],
            'enable' => 'show_content && content_column',
        ],
        'content_margin' => [
            'label' => 'Margin Top',
            'description' =>
                'Set the top margin. Note that the margin will only apply if the content field immediately follows another content field.',
            'type' => 'select',
            'options' => [
                'X-Small' => 'xsmall',
                'Small' => 'small',
                'Default' => '',
                'Medium' => 'medium',
                'Large' => 'large',
                'X-Large' => 'xlarge',
                'None' => 'remove',
            ],
            'enable' => 'show_content',
        ],
        'content_margin_auto' => [
            'label' => 'Margin Bottom',
            'type' => 'checkbox',
            'text' => 'Auto',
            'enable' => 'show_content',
        ],
        'image_width' => [
            'type' => 'number',
            'attrs' => [
                'placeholder' => 'auto',
            ],
            'enable' => 'show_image || show_video',
        ],
        'image_height' => [
            'type' => 'number',
            'attrs' => [
                'placeholder' => 'auto',
            ],
            'enable' => 'show_image || show_video',
        ],
        'image_loading' => [
            'label' => 'Loading',
            'description' =>
                'By default, images are loaded lazy. Enable eager loading for images in the initial viewport.',
            'type' => 'checkbox',
            'text' => 'Load image eagerly',
            'enable' => 'show_image || show_video',
        ],
        'image_border' => [
            'label' => 'Border',
            'description' => 'Select the image border style.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Rounded' => 'rounded',
                'Circle' => 'circle',
                'Pill' => 'pill',
            ],
            'enable' =>
                "(show_image || show_video) && (!panel_style || (panel_style && (!panel_image_no_padding || image_align == 'between')))",
        ],
        'image_link' => [
            'label' => 'Link',
            'description' => 'Link the image if a link exists.',
            'type' => 'checkbox',
            'text' => 'Link image',
            'enable' => '(show_image || show_video) && show_link',
        ],
        'image_transition' => [
            'label' => 'Hover Transition',
            'description' => 'Set the hover transition for a linked image.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Scale Up' => 'scale-up',
                'Scale Down' => 'scale-down',
            ],
            'enable' => '(show_image || show_video) && show_link && (image_link || panel_link)',
        ],
        'image_align' => [
            'label' => 'Alignment',
            'description' =>
                'Align the image to the top, left, right or place it between the title and the content.',
            'type' => 'select',
            'options' => [
                'Top' => 'top',
                'Bottom' => 'bottom',
                'Left' => 'left',
                'Right' => 'right',
                'Between' => 'between',
            ],
            'enable' => 'show_image || show_video',
        ],
        'image_grid_width' => [
            'label' => 'Grid Width',
            'description' =>
                'Define the width of the image within the grid. Choose between percent and fixed widths or expand columns to the width of their content.',
            'type' => 'select',
            'options' => [
                'Auto' => 'auto',
                '80%' => '4-5',
                '75%' => '3-4',
                '66%' => '2-3',
                '60%' => '3-5',
                '50%' => '1-2',
                '40%' => '2-5',
                '33%' => '1-3',
                '25%' => '1-4',
                '20%' => '1-5',
                'Small' => 'small',
                'Medium' => 'medium',
                'Large' => 'large',
                'X-Large' => 'xlarge',
                '2X-Large' => '2xlarge',
            ],
            'enable' => '(show_image || show_video) && $match(image_align, \'left|right\')',
        ],
        'image_grid_column_gap' => [
            'label' => 'Grid Column Gap',
            'description' => 'Set the size of the gap between the image and the content.',
            'type' => 'select',
            'options' => [
                'Small' => 'small',
                'Medium' => 'medium',
                'Default' => '',
                'Large' => 'large',
                'None' => 'collapse',
            ],
            'enable' =>
                '(show_image || show_video) && $match(image_align, \'left|right\') && !(panel_image_no_padding && panel_style)',
        ],
        'image_grid_row_gap' => [
            'label' => 'Grid Row Gap',
            'description' => 'Set the size of the gap if the grid items stack.',
            'type' => 'select',
            'options' => [
                'Small' => 'small',
                'Medium' => 'medium',
                'Default' => '',
                'Large' => 'large',
                'None' => 'collapse',
            ],
            'enable' =>
                '(show_image || show_video) && $match(image_align, \'left|right\') && !(panel_image_no_padding && panel_style)',
        ],
        'image_grid_breakpoint' => [
            'label' => 'Grid Breakpoint',
            'description' => 'Set the breakpoint from which grid items will stack.',
            'type' => 'select',
            'options' => [
                'Always' => '',
                'Small (Phone Landscape)' => 's',
                'Medium (Tablet Landscape)' => 'm',
                'Large (Desktop)' => 'l',
                'X-Large (Large Screens)' => 'xl',
            ],
            'enable' => '(show_image || show_video) && $match(image_align, \'left|right\')',
        ],
        'image_vertical_align' => [
            'label' => 'Vertical Alignment',
            'description' => 'Vertically center grid items.',
            'type' => 'checkbox',
            'text' => 'Center',
            'enable' => '(show_image || show_video) && $match(image_align, \'left|right\')',
        ],
        'image_margin' => [
            'label' => 'Margin Top',
            'description' =>
                'Set the top margin. Note that the margin will only apply if the content field immediately follows another content field.',
            'type' => 'select',
            'options' => [
                'X-Small' => 'xsmall',
                'Small' => 'small',
                'Default' => '',
                'Medium' => 'medium',
                'Large' => 'large',
                'X-Large' => 'xlarge',
                'None' => 'remove',
            ],
            'enable' =>
                "(show_image || show_video) && (image_align == 'between' || (image_align == 'bottom' && !(panel_style && panel_image_no_padding)))",
        ],
        'image_svg_inline' => [
            'label' => 'Inline SVG',
            'description' =>
                'Inject SVG images into the page markup so that they can easily be styled with CSS.',
            'type' => 'checkbox',
            'text' => 'Make SVG stylable with CSS',
            'enable' => 'show_image',
        ],
        'image_svg_animate' => [
            'type' => 'checkbox',
            'text' => 'Animate strokes',
            'enable' => 'show_image && image_svg_inline',
        ],
        'image_svg_color' => [
            'label' => 'Icon/SVG Color',
            'description' =>
                'Select the SVG color. It will only apply to supported elements defined in the SVG.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Muted' => 'muted',
                'Emphasis' => 'emphasis',
                'Primary' => 'primary',
                'Secondary' => 'secondary',
                'Success' => 'success',
                'Warning' => 'warning',
                'Danger' => 'danger',
            ],
            'enable' => 'show_image',
        ],
        'image_text_color' => [
            'label' => 'Text Color',
            'description' =>
                'Set light or dark color mode for text, buttons and controls if a sticky transparent navbar is displayed above.',
            'type' => 'select',
            'options' => [
                'None' => '',
                'Light' => 'light',
                'Dark' => 'dark',
            ],
            'source' => true,
            'enable' => 'show_image || show_video',
        ],
        'video_autoplay' => [
            'label' => 'Video Autoplay',
            'description' =>
                'Enable autoplay immediately, start as soon as the video enters the viewport or only on hover.',
            'type' => 'select',
            'options' => [
                'On' => '',
                'Inview' => 'inview',
                'Hover' => 'hover',
            ],
            'enable' => 'show_video',
        ],
        'video_autoplay_restart' => [
            'type' => 'checkbox',
            'text' => 'Restart from beginning',
            'enable' => 'show_video && video_autoplay',
        ],
        'link_text' => [
            'label' => 'Text',
            'description' => 'Enter the text for the link.',
            'enable' => 'show_link',
        ],
        'link_aria_label' => [
            'label' => 'ARIA Label',
            'description' =>
                'Enter a descriptive text label to make it accessible if the link has no visible text.',
            'enable' => 'show_link',
        ],
        'link_target' => [
            'label' => 'Attributes',
            'description'  => "Optionally, open the link in a new window, treat it as download, don't endorse the linked page or don't include the referrer header.",
            'type' => 'checkbox',
            'text' => 'Open in a new window',
            'enable' => 'show_link',
        ],
        'link_download' => [
            'type' => 'checkbox',
            'text' => 'Download',
            'enable' => 'show_link',
        ],
        'link_rel_nofollow' => [
            'type' => 'checkbox',
            'text' => 'Nofollow',
            'enable' => 'show_link',
        ],
        'link_rel_noreferrer' => [
            'type' => 'checkbox',
            'text' => 'Noreferrer',
            'enable' => 'show_link',
        ],
        'link_style' => [
            'label' => 'Style',
            'description' => 'Set the link style.',
            'type' => 'select',
            'options' => [
                'Button Default' => 'default',
                'Button Primary' => 'primary',
                'Button Secondary' => 'secondary',
                'Button Danger' => 'danger',
                'Button Text' => 'text',
                'Link' => '',
                'Link Muted' => 'link-muted',
                'Link Text' => 'link-text',
            ],
            'enable' => 'show_link',
        ],
        'link_size' => [
            'label' => 'Button Size',
            'description' => 'Set the button size.',
            'type' => 'select',
            'options' => [
                'Small' => 'small',
                'Default' => '',
                'Large' => 'large',
            ],
            'enable' => 'show_link && link_style && !$match(link_style, \'link-(muted|text)\')',
        ],
        'link_fullwidth' => [
            'type' => 'checkbox',
            'text' => 'Full width button',
            'enable' => 'show_link && link_style && !$match(link_style, \'link-(muted|text)\')',
        ],
        'link_margin' => [
            'label' => 'Margin Top',
            'description' =>
                'Set the top margin. Note that the margin will only apply if the content field immediately follows another content field.',
            'type' => 'select',
            'options' => [
                'X-Small' => 'xsmall',
                'Small' => 'small',
                'Default' => '',
                'Medium' => 'medium',
                'Large' => 'large',
                'X-Large' => 'xlarge',
                'None' => 'remove',
            ],
            'enable' => 'show_link',
        ],
        'position' => '${builder.position}',
        'position_left' => '${builder.position_left}',
        'position_right' => '${builder.position_right}',
        'position_top' => '${builder.position_top}',
        'position_bottom' => '${builder.position_bottom}',
        'position_z_index' => '${builder.position_z_index}',
        'blend' => '${builder.blend}',
        'margin_top' => '${builder.margin_top}',
        'margin_bottom' => '${builder.margin_bottom}',
        'maxwidth' => '${builder.maxwidth}',
        'maxwidth_breakpoint' => '${builder.maxwidth_breakpoint}',
        'block_align' => '${builder.block_align}',
        'block_align_breakpoint' => '${builder.block_align_breakpoint}',
        'block_align_fallback' => '${builder.block_align_fallback}',
        'text_align' => '${builder.text_align_justify}',
        'text_align_breakpoint' => '${builder.text_align_breakpoint}',
        'text_align_fallback' => '${builder.text_align_justify_fallback}',
        'animation' => '${builder.animation}',
        '_parallax_button' => '${builder._parallax_button}',
        'visibility' => '${builder.visibility}',
        'container_padding_remove' => '${builder.container_padding_remove}',
        'name' => '${builder.name}',
        'status' => '${builder.status}',
        'source' => '${builder.source}',
        'id' => '${builder.id}',
        'class' => '${builder.cls}',
        'attributes' => '${builder.attrs}',
        'css' => [
            'label' => 'CSS',
            'description' =>
                'Enter your own custom CSS. The following selectors will be prefixed automatically for this element: <code>.el-element</code>, <code>.el-item</code>, <code>.el-nav</code>, <code>.el-slidenav</code>, <code>.el-title</code>, <code>.el-meta</code>, <code>.el-content</code>, <code>.el-image</code>, <code>.el-link</code>, <code>.el-hover-image</code>',
            'type' => 'editor',
            'editor' => 'code',
            'mode' => 'css',
            'attrs' => [
                'debounce' => 500,
                'hints' => [
                    '.el-element',
                    '.el-item',
                    '.el-nav',
                    '.el-slidenav',
                    '.el-title',
                    '.el-meta',
                    '.el-content',
                    '.el-image',
                    '.el-link',
                    '.el-hover-image',
                ],
            ],
            'source' => true,
        ],
        'transform' => '${builder.transform}',
    ],
    'fieldset' => [
        'default' => [
            'type' => 'tabs',
            'fields' => [
                [
                    'title' => 'Content',
                    'fields' => [
                        'content',
                        'show_title',
                        'show_meta',
                        'show_content',
                        'show_image',
                        'show_video',
                        'show_link',
                        'show_hover_image',
                        'show_hover_video',
                    ],
                ],
                [
                    'title' => 'Settings',
                    'fields' => [
                        [
                            'label' => 'Slider',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'slider_width',
                                'height_expand',
                                'slider_gap',
                                'slider_divider',
                                'slider_row_align',
                            ],
                        ],
                        [
                            'label' => 'Item Width',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'slider_width_default',
                                'slider_width_small',
                                'slider_width_medium',
                                'slider_width_large',
                                'slider_width_xlarge',
                            ],
                        ],
                        [
                            'label' => 'Animation',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'slider_sets',
                                'slider_center',
                                'slider_finite',
                                'slider_velocity',
                                'slider_autoplay',
                                'slider_autoplay_pause',
                                'slider_autoplay_interval',
                                'slider_parallax',
                                'slider_parallax_easing',
                                'slider_parallax_target',
                                [
                                    'label' => 'Parallax Start/End',
                                    'description' =>
                                        "The animation starts when the element enters the viewport and ends when it leaves the viewport. Optionally, set a start and end offset, e.g. <code>100px</code>, <code>50vh</code> or <code>50vh + 50%</code>. Percent relates to the target's height.",
                                    'type' => 'grid',
                                    'width' => '1-2',
                                    'fields' => ['slider_parallax_start', 'slider_parallax_end'],
                                ],
                            ],
                        ],
                        [
                            'label' => 'Navigation',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => ['nav', 'nav_align', 'nav_margin', 'nav_breakpoint'],
                        ],
                        [
                            'label' => 'Slidenav',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'slidenav',
                                'slidenav_hover',
                                'slidenav_large',
                                'slidenav_margin',
                                'slidenav_breakpoint',
                                'slidenav_outside_breakpoint',
                            ],
                        ],
                        [
                            'label' => 'Panel',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'panel_style',
                                'panel_card_offset',
                                'panel_link',
                                'panel_link_hover',
                                'panel_padding',
                                'panel_image_no_padding',
                                'panel_match',
                                'image_expand',
                            ],
                        ],
                        [
                            'label' => 'Title',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'title_style',
                                'title_link',
                                'title_hover_style',
                                'title_decoration',
                                'title_font_family',
                                'title_color',
                                'title_element',
                                'title_align',
                                'title_grid_width',
                                'title_grid_column_gap',
                                'title_grid_row_gap',
                                'title_grid_breakpoint',
                                'title_margin',
                                'title_margin_auto',
                            ],
                        ],
                        [
                            'label' => 'Meta',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'meta_style',
                                'meta_color',
                                'meta_align',
                                'meta_element',
                                'meta_margin',
                                'meta_margin_auto',
                            ],
                        ],
                        [
                            'label' => 'Content',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'content_style',
                                'content_align',
                                'content_dropcap',
                                'content_column',
                                'content_column_divider',
                                'content_column_breakpoint',
                                'content_margin',
                                'content_margin_auto',
                            ],
                        ],
                        [
                            'label' => 'Image',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                [
                                    'label' => 'Width/Height',
                                    'description' =>
                                        'Setting just one value preserves the original proportions. The image will be resized and cropped automatically, and where possible, high resolution images will be auto-generated.',
                                    'type' => 'grid',
                                    'width' => '1-2',
                                    'fields' => ['image_width', 'image_height'],
                                ],
                                'image_loading',
                                'image_border',
                                'image_link',
                                'image_transition',
                                'image_align',
                                'image_grid_width',
                                'image_grid_column_gap',
                                'image_grid_row_gap',
                                'image_grid_breakpoint',
                                'image_vertical_align',
                                'image_margin',
                                'image_svg_inline',
                                'image_svg_animate',
                                'image_svg_color',
                                'image_text_color',
                                'video_autoplay',
                                'video_autoplay_restart',
                            ],
                        ],
                        [
                            'label' => 'Link',
                            'type' => 'group',
                            'divider' => true,
                            'fields' => [
                                'link_text',
                                'link_aria_label',
                                'link_target',
                                'link_download',
                                'link_rel_nofollow',
                                'link_rel_noreferrer',
                                'link_style',
                                'link_size',
                                'link_fullwidth',
                                'link_margin',
                            ],
                        ],
                        [
                            'label' => 'General',
                            'type' => 'group',
                            'fields' => [
                                'position',
                                'position_left',
                                'position_right',
                                'position_top',
                                'position_bottom',
                                'position_z_index',
                                'blend',
                                'margin_top',
                                'margin_bottom',
                                'maxwidth',
                                'maxwidth_breakpoint',
                                'block_align',
                                'block_align_breakpoint',
                                'block_align_fallback',
                                'text_align',
                                'text_align_breakpoint',
                                'text_align_fallback',
                                'animation',
                                '_parallax_button',
                                'visibility',
                                'container_padding_remove',
                            ],
                        ],
                    ],
                ],
                '${builder.advanced}',
            ],
        ],
    ],
];
