<?php
/**
 * Free + core Elementor widget catalog data.
 *
 * Harvested from the convenience-tool registrations in class-widget-abilities.php.
 * Plain data — see EMCP_Tools_Widget_Catalog for the read API.
 *
 * @package EMCP_Tools
 * @since   3.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

return array(
	'heading' => array(
		'tier'     => 'free',
		'title'    => 'Heading',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Section titles and headlines with full typography, text stroke, text shadow, blend mode, and hover color.',
		'keywords' => array( 'heading', 'title', 'headline', 'h1', 'h2', 'text' ),
		'params'   => array(
			'title'                         => array( 'type' => 'string', 'description' => 'Heading text.' ),
			'header_size'                   => array( 'type' => 'string', 'enum' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p' ), 'description' => 'HTML tag. Default: h2.' ),
			'size'                          => array( 'type' => 'string', 'enum' => array( 'default', 'small', 'medium', 'large', 'xl', 'xxl' ), 'description' => 'Elementor size preset.' ),
			'align'                         => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right', 'justify' ), 'description' => 'Text alignment. Responsive: align_tablet, align_mobile.' ),
			'title_color'                   => array( 'type' => 'string', 'description' => 'Heading color (hex/rgba).' ),
			'title_hover_color'             => array( 'type' => 'string', 'description' => 'Heading hover color (hex/rgba).' ),
			'link'                          => array( 'type' => 'object', 'description' => 'Link: {url, is_external, nofollow}.' ),
			'blend_mode'                    => array( 'type' => 'string', 'enum' => array( '', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'saturation', 'color', 'difference', 'exclusion', 'hue', 'luminosity' ), 'description' => 'CSS blend mode.' ),
			'typography_typography'         => array( 'type' => 'string', 'description' => 'Set to "custom" to enable typography controls.' ),
			'typography_font_family'        => array( 'type' => 'string', 'description' => 'Font family (e.g. "Roboto", "Montserrat").' ),
			'typography_font_size'          => array( 'type' => 'object', 'description' => 'Font size: {size, unit}. Units: px, em, rem, vw.' ),
			'typography_font_weight'        => array( 'type' => 'string', 'enum' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', 'normal', 'bold' ), 'description' => 'Font weight.' ),
			'typography_text_transform'     => array( 'type' => 'string', 'enum' => array( '', 'uppercase', 'lowercase', 'capitalize', 'none' ), 'description' => 'Text transform.' ),
			'typography_font_style'         => array( 'type' => 'string', 'enum' => array( '', 'normal', 'italic', 'oblique' ), 'description' => 'Font style.' ),
			'typography_text_decoration'    => array( 'type' => 'string', 'enum' => array( '', 'none', 'underline', 'overline', 'line-through' ), 'description' => 'Text decoration.' ),
			'typography_line_height'        => array( 'type' => 'object', 'description' => 'Line height: {size, unit}. Units: px, em.' ),
			'typography_letter_spacing'     => array( 'type' => 'object', 'description' => 'Letter spacing: {size, unit}. Units: px, em.' ),
			'typography_word_spacing'       => array( 'type' => 'object', 'description' => 'Word spacing: {size, unit}.' ),
			'text_stroke_text_stroke'       => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Enable text stroke.' ),
			'text_stroke_stroke_width'      => array( 'type' => 'object', 'description' => 'Stroke width: {size, unit}.' ),
			'text_stroke_stroke_color'      => array( 'type' => 'string', 'description' => 'Stroke color (hex/rgba).' ),
			'title_text_shadow_text_shadow' => array( 'type' => 'object', 'description' => 'Text shadow: {horizontal, vertical, blur, color}.' ),
		),
		'required' => array( 'title' ),
		'defaults' => array( 'header_size' => 'h2' ),
	),
	'text-editor' => array(
		'tier'     => 'free',
		'title'    => 'Text Editor',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Rich body copy and paragraphs with drop cap, multi-column text, alignment, color, and typography.',
		'keywords' => array( 'text', 'editor', 'paragraph', 'content', 'wysiwyg', 'body' ),
		'params'   => array(
			'editor'                    => array( 'type' => 'string', 'description' => 'HTML content.' ),
			'align'                     => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right', 'justify' ), 'description' => 'Text alignment. Responsive: align_tablet, align_mobile.' ),
			'text_color'                => array( 'type' => 'string', 'description' => 'Text color (hex/rgba).' ),
			'drop_cap'                  => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Enable drop cap on first letter.' ),
			'column_gap'                => array( 'type' => 'object', 'description' => 'Column gap: {size, unit}. Works with text_columns.' ),
			'text_columns'              => array( 'type' => 'string', 'description' => 'Number of text columns (1-10).' ),
			'typography_typography'     => array( 'type' => 'string', 'description' => 'Set to "custom" to enable typography controls.' ),
			'typography_font_family'    => array( 'type' => 'string', 'description' => 'Font family.' ),
			'typography_font_size'      => array( 'type' => 'object', 'description' => 'Font size: {size, unit}.' ),
			'typography_font_weight'    => array( 'type' => 'string', 'enum' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', 'normal', 'bold' ), 'description' => 'Font weight.' ),
			'typography_text_transform' => array( 'type' => 'string', 'enum' => array( '', 'uppercase', 'lowercase', 'capitalize', 'none' ), 'description' => 'Text transform.' ),
			'typography_line_height'    => array( 'type' => 'object', 'description' => 'Line height: {size, unit}.' ),
			'typography_letter_spacing' => array( 'type' => 'object', 'description' => 'Letter spacing: {size, unit}.' ),
		),
		'required' => array( 'editor' ),
		'defaults' => array(),
	),
	'image' => array(
		'tier'     => 'free',
		'title'    => 'Image',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Single image with sizing, caption, link, border, radius, box shadow, CSS filters, and hover effects.',
		'keywords' => array( 'image', 'picture', 'photo', 'media', 'graphic' ),
		'params'   => array(
			'image'                             => array( 'type' => 'object', 'description' => 'Image object with url (required) and optional id.' ),
			'image_size'                        => array( 'type' => 'string', 'enum' => array( 'thumbnail', 'medium', 'medium_large', 'large', 'full' ), 'description' => 'Image size preset.' ),
			'align'                             => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right' ), 'description' => 'Image alignment. Responsive: align_tablet, align_mobile.' ),
			'caption_source'                    => array( 'type' => 'string', 'enum' => array( 'none', 'attachment', 'custom' ), 'description' => 'Caption source.' ),
			'caption'                           => array( 'type' => 'string', 'description' => 'Custom caption text.' ),
			'link_to'                           => array( 'type' => 'string', 'enum' => array( 'none', 'file', 'custom' ), 'description' => 'Link behavior.' ),
			'link'                              => array( 'type' => 'object', 'description' => 'Link: {url, is_external, nofollow}.' ),
			'width'                             => array( 'type' => 'object', 'description' => 'Image width: {size, unit}. Units: px, %, vw.' ),
			'max_width'                         => array( 'type' => 'object', 'description' => 'Max width: {size, unit}.' ),
			'height'                            => array( 'type' => 'object', 'description' => 'Image height: {size, unit}.' ),
			'object_fit'                        => array( 'type' => 'string', 'enum' => array( '', 'fill', 'cover', 'contain' ), 'description' => 'Object fit when height is set.' ),
			'opacity'                           => array( 'type' => 'object', 'description' => 'Image opacity: {size, unit}. 0-1 range.' ),
			'hover_animation'                   => array( 'type' => 'string', 'description' => 'Hover animation (grow, shrink, pulse, push, etc).' ),
			'hover_opacity'                     => array( 'type' => 'object', 'description' => 'Hover opacity: {size, unit}. 0-1 range.' ),
			'css_filters_css_filter'            => array( 'type' => 'string', 'enum' => array( 'custom', '' ), 'description' => 'Set to "custom" to enable CSS filter controls.' ),
			'css_filters_blur'                  => array( 'type' => 'object', 'description' => 'Blur: {size, unit}. px.' ),
			'css_filters_brightness'            => array( 'type' => 'object', 'description' => 'Brightness: {size, unit}. 0-200%.' ),
			'css_filters_contrast'              => array( 'type' => 'object', 'description' => 'Contrast: {size, unit}. 0-200%.' ),
			'css_filters_saturate'              => array( 'type' => 'object', 'description' => 'Saturation: {size, unit}. 0-200%.' ),
			'css_filters_hue'                   => array( 'type' => 'object', 'description' => 'Hue rotation: {size, unit}. 0-360deg.' ),
			'image_border_border'               => array( 'type' => 'string', 'enum' => array( '', 'solid', 'double', 'dotted', 'dashed', 'groove' ), 'description' => 'Border style.' ),
			'image_border_width'                => array( 'type' => 'object', 'description' => 'Border width: {top, right, bottom, left, unit, isLinked}.' ),
			'image_border_color'                => array( 'type' => 'string', 'description' => 'Border color.' ),
			'image_border_radius'               => array( 'type' => 'object', 'description' => 'Border radius: {top, right, bottom, left, unit, isLinked}.' ),
			'image_box_shadow_box_shadow_type'  => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Enable box shadow.' ),
			'image_box_shadow_box_shadow'       => array( 'type' => 'object', 'description' => 'Box shadow: {horizontal, vertical, blur, spread, color}.' ),
		),
		'required' => array( 'image' ),
		'defaults' => array(),
	),
	'button' => array(
		'tier'     => 'free',
		'title'    => 'Button',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Call-to-action buttons with text, link, icon, sizing, and full color/border/typography styling.',
		'keywords' => array( 'button', 'cta', 'link', 'action' ),
		'params'   => array(
			'text'                              => array( 'type' => 'string', 'description' => 'Button text.' ),
			'link'                              => array( 'type' => 'object', 'description' => 'Link: {url, is_external, nofollow}.' ),
			'size'                              => array( 'type' => 'string', 'enum' => array( 'xs', 'sm', 'md', 'lg', 'xl' ), 'description' => 'Button size.' ),
			'button_type'                       => array( 'type' => 'string', 'enum' => array( '', 'info', 'success', 'warning', 'danger' ), 'description' => 'Button style type.' ),
			'align'                             => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right', 'justify' ), 'description' => 'Button alignment. Responsive: align_tablet, align_mobile.' ),
			'selected_icon'                     => array( 'type' => 'object', 'description' => 'Icon object with value and library.' ),
			'icon_align'                        => array( 'type' => 'string', 'enum' => array( 'row', 'row-reverse' ), 'description' => 'Icon position.' ),
			'icon_indent'                       => array( 'type' => 'object', 'description' => 'Icon spacing: {size, unit}.' ),
			'button_text_color'                 => array( 'type' => 'string', 'description' => 'Text color (hex/rgba).' ),
			'background_color'                  => array( 'type' => 'string', 'description' => 'Background color (hex/rgba).' ),
			'hover_color'                       => array( 'type' => 'string', 'description' => 'Hover text color.' ),
			'button_background_hover_color'     => array( 'type' => 'string', 'description' => 'Hover background color.' ),
			'hover_animation'                   => array( 'type' => 'string', 'description' => 'Hover animation (e.g. grow, shrink, pulse, push).' ),
			'border_border'                     => array( 'type' => 'string', 'enum' => array( '', 'solid', 'double', 'dotted', 'dashed', 'groove' ), 'description' => 'Border style.' ),
			'border_width'                      => array( 'type' => 'object', 'description' => 'Border width: {top, right, bottom, left, unit, isLinked}.' ),
			'border_color'                      => array( 'type' => 'string', 'description' => 'Border color.' ),
			'border_radius'                     => array( 'type' => 'object', 'description' => 'Border radius: {top, right, bottom, left, unit, isLinked}.' ),
			'button_box_shadow_box_shadow_type' => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Enable box shadow.' ),
			'button_box_shadow_box_shadow'      => array( 'type' => 'object', 'description' => 'Box shadow: {horizontal, vertical, blur, spread, color}.' ),
			'typography_typography'             => array( 'type' => 'string', 'description' => 'Set to "custom" to enable typography controls.' ),
			'typography_font_family'            => array( 'type' => 'string', 'description' => 'Font family.' ),
			'typography_font_size'              => array( 'type' => 'object', 'description' => 'Font size: {size, unit}.' ),
			'typography_font_weight'            => array( 'type' => 'string', 'enum' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', 'normal', 'bold' ), 'description' => 'Font weight.' ),
			'typography_text_transform'         => array( 'type' => 'string', 'enum' => array( '', 'uppercase', 'lowercase', 'capitalize', 'none' ), 'description' => 'Text transform.' ),
			'typography_letter_spacing'         => array( 'type' => 'object', 'description' => 'Letter spacing: {size, unit}.' ),
			'text_shadow_text_shadow'           => array( 'type' => 'object', 'description' => 'Text shadow: {horizontal, vertical, blur, color}.' ),
			'button_padding'                    => array( 'type' => 'object', 'description' => 'Button padding: {top, right, bottom, left, unit, isLinked}.' ),
		),
		'required' => array( 'text' ),
		'defaults' => array( 'text' => 'Click here', 'size' => 'sm' ),
	),
	'video' => array(
		'tier'     => 'free',
		'title'    => 'Video',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Embed YouTube, Vimeo, Dailymotion, or self-hosted video with start/end time, lazy load, overlay, and play icon.',
		'keywords' => array( 'video', 'youtube', 'vimeo', 'embed', 'player', 'media' ),
		'params'   => array(
			'video_type'         => array( 'type' => 'string', 'enum' => array( 'youtube', 'vimeo', 'dailymotion', 'hosted' ), 'description' => 'Video source type.' ),
			'youtube_url'        => array( 'type' => 'string', 'description' => 'YouTube URL.' ),
			'vimeo_url'          => array( 'type' => 'string', 'description' => 'Vimeo URL.' ),
			'dailymotion_url'    => array( 'type' => 'string', 'description' => 'Dailymotion URL.' ),
			'insert_url'         => array( 'type' => 'object', 'description' => 'Self-hosted video URL object: {url}.' ),
			'autoplay'           => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Autoplay on load.' ),
			'mute'               => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Mute audio.' ),
			'loop'               => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Loop video.' ),
			'controls'           => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Show player controls.' ),
			'start'              => array( 'type' => 'integer', 'description' => 'Start time in seconds.' ),
			'end'                => array( 'type' => 'integer', 'description' => 'End time in seconds.' ),
			'yt_privacy'         => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'YouTube privacy-enhanced mode.' ),
			'lazy_load'          => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Lazy load the video.' ),
			'rel'                => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Show related videos at end (YouTube).' ),
			'modestbranding'     => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Modest branding (YouTube).' ),
			'show_image_overlay' => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Show image overlay (poster).' ),
			'image_overlay'      => array( 'type' => 'object', 'description' => 'Overlay image: {url, id}.' ),
			'show_play_icon'     => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Show play icon on overlay.' ),
			'aspect_ratio'       => array( 'type' => 'string', 'enum' => array( '169', '219', '43', '32', '11', '916' ), 'description' => 'Video aspect ratio. Values: 169=16:9, 219=21:9, 43=4:3, 32=3:2, 11=1:1, 916=9:16.' ),
		),
		'required' => array(),
		'defaults' => array( 'video_type' => 'youtube' ),
	),
	'icon' => array(
		'tier'     => 'free',
		'title'    => 'Icon',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Single Font Awesome or SVG icon with view modes, hover colors, rotation, padding, and hover animation.',
		'keywords' => array( 'icon', 'svg', 'fontawesome', 'symbol', 'glyph' ),
		'params'   => array(
			'selected_icon'         => array( 'type' => 'object', 'description' => 'Icon object. Font Awesome: { "value": "fas fa-star", "library": "fa-solid" }. SVG: { "value": { "id": 123, "url": "..." }, "library": "svg" }. Libraries: fa-solid, fa-regular, fa-brands.' ),
			'view'                  => array( 'type' => 'string', 'enum' => array( 'default', 'stacked', 'framed' ), 'description' => 'Icon view mode.' ),
			'shape'                 => array( 'type' => 'string', 'enum' => array( 'circle', 'square' ), 'description' => 'Icon shape (for stacked/framed).' ),
			'primary_color'         => array( 'type' => 'string', 'description' => 'Primary/icon color (hex/rgba).' ),
			'secondary_color'       => array( 'type' => 'string', 'description' => 'Secondary/background color for stacked/framed (hex/rgba).' ),
			'hover_primary_color'   => array( 'type' => 'string', 'description' => 'Hover icon color.' ),
			'hover_secondary_color' => array( 'type' => 'string', 'description' => 'Hover background color for stacked/framed.' ),
			'hover_animation'       => array( 'type' => 'string', 'description' => 'Hover animation (grow, shrink, pulse, push, etc).' ),
			'size'                  => array( 'type' => 'object', 'description' => 'Icon size: {size, unit}.' ),
			'icon_padding'          => array( 'type' => 'object', 'description' => 'Icon padding: {size, unit}. For stacked/framed.' ),
			'rotate'                => array( 'type' => 'object', 'description' => 'Icon rotation: {size, unit}. Degrees.' ),
			'border_width'          => array( 'type' => 'object', 'description' => 'Border width for framed view: {size, unit}.' ),
			'border_radius'         => array( 'type' => 'object', 'description' => 'Border radius: {size, unit}.' ),
			'link'                  => array( 'type' => 'object', 'description' => 'Link: {url, is_external, nofollow}.' ),
			'align'                 => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right' ), 'description' => 'Icon alignment. Responsive: align_tablet, align_mobile.' ),
		),
		'required' => array(),
		'defaults' => array( 'selected_icon' => array( 'value' => 'fas fa-star', 'library' => 'fa-solid' ) ),
	),
	'spacer' => array(
		'tier'     => 'free',
		'title'    => 'Spacer',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Adds vertical empty space between elements.',
		'keywords' => array( 'spacer', 'space', 'gap', 'spacing', 'whitespace' ),
		'params'   => array(
			'space' => array( 'type' => 'object', 'description' => 'Spacer height: { "size": 50, "unit": "px" }.' ),
		),
		'required' => array(),
		'defaults' => array( 'space' => array( 'size' => 50, 'unit' => 'px' ) ),
	),
	'divider' => array(
		'tier'     => 'free',
		'title'    => 'Divider',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Horizontal separator line with style, weight, color, and width controls.',
		'keywords' => array( 'divider', 'separator', 'line', 'rule', 'hr' ),
		'params'   => array(
			'style'  => array( 'type' => 'string', 'enum' => array( 'solid', 'dashed', 'dotted', 'double' ), 'description' => 'Divider line style.' ),
			'weight' => array( 'type' => 'object', 'description' => 'Line weight: { "size": 1, "unit": "px" }.' ),
			'color'  => array( 'type' => 'string', 'description' => 'Divider color (hex).' ),
			'width'  => array( 'type' => 'object', 'description' => 'Divider width: { "size": 100, "unit": "%" }.' ),
			'gap'    => array( 'type' => 'object', 'description' => 'Gap above/below: { "size": 15, "unit": "px" }.' ),
		),
		'required' => array(),
		'defaults' => array( 'style' => 'solid' ),
	),
	'icon-box' => array(
		'tier'     => 'free',
		'title'    => 'Icon Box',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Feature/service card combining an icon, title, and description with position, typography, and hover styling.',
		'keywords' => array( 'icon', 'box', 'feature', 'service', 'card' ),
		'params'   => array(
			'selected_icon'                      => array( 'type' => 'object', 'description' => 'Icon object. Font Awesome: { "value": "fas fa-star", "library": "fa-solid" }. SVG: { "value": { "id": 123, "url": "..." }, "library": "svg" }.' ),
			'title_text'                         => array( 'type' => 'string', 'description' => 'Box title.' ),
			'description_text'                   => array( 'type' => 'string', 'description' => 'Box description.' ),
			'view'                               => array( 'type' => 'string', 'enum' => array( 'default', 'stacked', 'framed' ), 'description' => 'Icon view mode.' ),
			'shape'                              => array( 'type' => 'string', 'enum' => array( 'circle', 'square' ), 'description' => 'Icon shape.' ),
			'position'                           => array( 'type' => 'string', 'enum' => array( 'top', 'left', 'right' ), 'description' => 'Icon position relative to content.' ),
			'title_size'                         => array( 'type' => 'string', 'enum' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p' ), 'description' => 'Title HTML tag. Default: h3.' ),
			'link'                               => array( 'type' => 'object', 'description' => 'Link: {url, is_external, nofollow}.' ),
			'title_color'                        => array( 'type' => 'string', 'description' => 'Title color (hex/rgba).' ),
			'description_color'                  => array( 'type' => 'string', 'description' => 'Description color (hex/rgba).' ),
			'primary_color'                      => array( 'type' => 'string', 'description' => 'Icon primary color.' ),
			'secondary_color'                    => array( 'type' => 'string', 'description' => 'Icon secondary/background color.' ),
			'hover_primary_color'                => array( 'type' => 'string', 'description' => 'Hover icon color.' ),
			'hover_secondary_color'              => array( 'type' => 'string', 'description' => 'Hover icon background color.' ),
			'hover_animation'                    => array( 'type' => 'string', 'description' => 'Hover animation.' ),
			'icon_space'                         => array( 'type' => 'object', 'description' => 'Space between icon and content: {size, unit}.' ),
			'icon_size'                          => array( 'type' => 'object', 'description' => 'Icon size: {size, unit}.' ),
			'title_bottom_space'                 => array( 'type' => 'object', 'description' => 'Space below title: {size, unit}.' ),
			'title_typography_typography'        => array( 'type' => 'string', 'description' => 'Set to "custom" to enable title typography.' ),
			'title_typography_font_family'       => array( 'type' => 'string', 'description' => 'Title font family.' ),
			'title_typography_font_size'         => array( 'type' => 'object', 'description' => 'Title font size: {size, unit}.' ),
			'title_typography_font_weight'       => array( 'type' => 'string', 'enum' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', 'normal', 'bold' ), 'description' => 'Title font weight.' ),
			'description_typography_typography'  => array( 'type' => 'string', 'description' => 'Set to "custom" to enable description typography.' ),
			'description_typography_font_family' => array( 'type' => 'string', 'description' => 'Description font family.' ),
			'description_typography_font_size'   => array( 'type' => 'object', 'description' => 'Description font size: {size, unit}.' ),
		),
		'required' => array( 'title_text' ),
		'defaults' => array( 'selected_icon' => array( 'value' => 'fas fa-star', 'library' => 'fa-solid' ) ),
	),
	'accordion' => array(
		'tier'     => 'free',
		'title'    => 'Accordion',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Collapsible FAQ-style panels with title/content colors, typography, icons, and optional FAQ schema.',
		'keywords' => array( 'accordion', 'faq', 'collapse', 'toggle', 'expand' ),
		'params'   => array(
			'tabs'                          => array(
				'type'        => 'array',
				'description' => 'Array of accordion items with tab_title and tab_content.',
				'items'       => array(
					'type'       => 'object',
					'properties' => array(
						'tab_title'   => array( 'type' => 'string' ),
						'tab_content' => array( 'type' => 'string' ),
					),
				),
			),
			'selected_icon'                  => array( 'type' => 'object', 'description' => 'Icon when collapsed. Default: fas fa-plus.' ),
			'selected_active_icon'           => array( 'type' => 'object', 'description' => 'Icon when expanded. Default: fas fa-minus.' ),
			'title_html_tag'                 => array( 'type' => 'string', 'enum' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div' ), 'description' => 'Title HTML tag. Default: div.' ),
			'faq_schema'                     => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Enable FAQ schema markup.' ),
			'title_color'                    => array( 'type' => 'string', 'description' => 'Title text color.' ),
			'title_background'               => array( 'type' => 'string', 'description' => 'Title background color.' ),
			'tab_active_color'               => array( 'type' => 'string', 'description' => 'Active title text color.' ),
			'tab_active_background'          => array( 'type' => 'string', 'description' => 'Active title background color.' ),
			'title_padding'                  => array( 'type' => 'object', 'description' => 'Title padding: {top, right, bottom, left, unit, isLinked}.' ),
			'icon_color'                     => array( 'type' => 'string', 'description' => 'Icon color.' ),
			'icon_active_color'              => array( 'type' => 'string', 'description' => 'Active icon color.' ),
			'icon_space'                     => array( 'type' => 'object', 'description' => 'Space between icon and title: {size, unit}.' ),
			'content_color'                  => array( 'type' => 'string', 'description' => 'Content text color.' ),
			'content_background_color'       => array( 'type' => 'string', 'description' => 'Content background color.' ),
			'content_padding'                => array( 'type' => 'object', 'description' => 'Content padding: {top, right, bottom, left, unit, isLinked}.' ),
			'border_width'                   => array( 'type' => 'object', 'description' => 'Item border width: {size, unit}.' ),
			'border_color'                   => array( 'type' => 'string', 'description' => 'Item border color.' ),
			'title_typography_typography'    => array( 'type' => 'string', 'description' => 'Set to "custom" to enable title typography.' ),
			'title_typography_font_family'   => array( 'type' => 'string', 'description' => 'Title font family.' ),
			'title_typography_font_size'     => array( 'type' => 'object', 'description' => 'Title font size: {size, unit}.' ),
			'title_typography_font_weight'   => array( 'type' => 'string', 'enum' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', 'normal', 'bold' ), 'description' => 'Title font weight.' ),
			'content_typography_typography'  => array( 'type' => 'string', 'description' => 'Set to "custom" to enable content typography.' ),
			'content_typography_font_family' => array( 'type' => 'string', 'description' => 'Content font family.' ),
			'content_typography_font_size'   => array( 'type' => 'object', 'description' => 'Content font size: {size, unit}.' ),
		),
		'required' => array( 'tabs' ),
		'defaults' => array( 'title_html_tag' => 'div' ),
	),
	'alert' => array(
		'tier'     => 'free',
		'title'    => 'Alert',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Dismissible notice/callout box with a type, title, and description.',
		'keywords' => array( 'alert', 'notice', 'warning', 'message', 'callout' ),
		'params'   => array(
			'alert_type'        => array( 'type' => 'string', 'enum' => array( 'info', 'success', 'warning', 'danger' ), 'description' => 'Alert type. Default: info.' ),
			'alert_title'       => array( 'type' => 'string', 'description' => 'Alert title.' ),
			'alert_description' => array( 'type' => 'string', 'description' => 'Alert description/content.' ),
			'show_dismiss'      => array( 'type' => 'string', 'enum' => array( 'show', '' ), 'description' => 'Show dismiss button. Default: show.' ),
		),
		'required' => array( 'alert_title' ),
		'defaults' => array( 'alert_type' => 'info', 'show_dismiss' => 'show' ),
	),
	'counter' => array(
		'tier'     => 'free',
		'title'    => 'Counter',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Animated number that counts up to a target, with prefix/suffix and label.',
		'keywords' => array( 'counter', 'number', 'stat', 'count', 'animated' ),
		'params'   => array(
			'starting_number'    => array( 'type' => 'integer', 'description' => 'Start value. Default: 0.' ),
			'ending_number'      => array( 'type' => 'integer', 'description' => 'End value. Default: 100.' ),
			'prefix'             => array( 'type' => 'string', 'description' => 'Text before number (e.g. "$").' ),
			'suffix'             => array( 'type' => 'string', 'description' => 'Text after number (e.g. "%", "+").' ),
			'duration'           => array( 'type' => 'integer', 'description' => 'Animation duration in ms. Default: 2000.' ),
			'thousand_separator' => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Show thousand separators.' ),
			'title'              => array( 'type' => 'string', 'description' => 'Counter label/title.' ),
		),
		'required' => array( 'ending_number' ),
		'defaults' => array( 'starting_number' => 0, 'ending_number' => 100, 'duration' => 2000 ),
	),
	'google_maps' => array(
		'tier'     => 'free',
		'title'    => 'Google Maps',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Embedded Google Map for an address or location with zoom and height controls.',
		'keywords' => array( 'map', 'google', 'maps', 'location', 'address' ),
		'params'   => array(
			'address' => array( 'type' => 'string', 'description' => 'Location address or search query.' ),
			'zoom'    => array( 'type' => 'object', 'description' => 'Zoom level: { "size": 10, "unit": "px" }. Range 1-20.' ),
			'height'  => array( 'type' => 'object', 'description' => 'Map height: { "size": 300, "unit": "px" }.' ),
		),
		'required' => array( 'address' ),
		'defaults' => array( 'zoom' => array( 'size' => 10, 'unit' => 'px' ) ),
	),
	'icon-list' => array(
		'tier'     => 'free',
		'title'    => 'Icon List',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'List of items each with an icon and text, ideal for feature lists, checklists, and contact info.',
		'keywords' => array( 'icon', 'list', 'features', 'checklist', 'bullets' ),
		'params'   => array(
			'icon_list' => array(
				'type'        => 'array',
				'description' => 'Array of list items with text, selected_icon, and optional link.',
				'items'       => array(
					'type'       => 'object',
					'properties' => array(
						'text'          => array( 'type' => 'string' ),
						'selected_icon' => array( 'type' => 'object' ),
						'link'          => array( 'type' => 'object' ),
					),
				),
			),
			'view'      => array( 'type' => 'string', 'enum' => array( 'traditional', 'inline' ), 'description' => 'Layout: traditional (vertical) or inline. Default: traditional.' ),
		),
		'required' => array( 'icon_list' ),
		'defaults' => array( 'view' => 'traditional' ),
	),
	'image-box' => array(
		'tier'     => 'free',
		'title'    => 'Image Box',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Card combining an image, title, and description, great for service or feature cards.',
		'keywords' => array( 'image', 'box', 'card', 'service', 'feature' ),
		'params'   => array(
			'image'            => array( 'type' => 'object', 'description' => 'Image object with url and optional id.' ),
			'title_text'       => array( 'type' => 'string', 'description' => 'Box title.' ),
			'description_text' => array( 'type' => 'string', 'description' => 'Box description.' ),
			'link'             => array( 'type' => 'object', 'description' => 'Link object with url key.' ),
			'title_size'       => array( 'type' => 'string', 'enum' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p' ), 'description' => 'Title HTML tag. Default: h3.' ),
		),
		'required' => array( 'title_text' ),
		'defaults' => array( 'title_size' => 'h3' ),
	),
	'image-carousel' => array(
		'tier'     => 'free',
		'title'    => 'Image Carousel',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Rotating image slider with configurable slides per view, navigation, and autoplay.',
		'keywords' => array( 'carousel', 'slider', 'image', 'gallery', 'slideshow' ),
		'params'   => array(
			'carousel'       => array(
				'type'        => 'array',
				'description' => 'Array of image objects with url and optional id.',
				'items'       => array(
					'type'       => 'object',
					'properties' => array(
						'url' => array( 'type' => 'string' ),
						'id'  => array( 'type' => 'integer' ),
					),
				),
			),
			'slides_to_show' => array( 'type' => 'string', 'enum' => array( '1', '2', '3', '4', '5', '6', '7', '8', '9', '10' ), 'description' => 'Number of slides visible.' ),
			'navigation'     => array( 'type' => 'string', 'enum' => array( 'both', 'arrows', 'dots', 'none' ), 'description' => 'Navigation type. Default: both.' ),
			'autoplay'       => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Autoplay slides. Default: yes.' ),
			'autoplay_speed' => array( 'type' => 'integer', 'description' => 'Autoplay interval in ms. Default: 5000.' ),
			'infinite'       => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Infinite loop. Default: yes.' ),
		),
		'required' => array( 'carousel' ),
		'defaults' => array( 'navigation' => 'both', 'autoplay' => 'yes', 'infinite' => 'yes', 'autoplay_speed' => 5000 ),
	),
	'progress' => array(
		'tier'     => 'free',
		'title'    => 'Progress Bar',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Animated progress bar with a label, percentage, and color preset.',
		'keywords' => array( 'progress', 'bar', 'percentage', 'skill', 'meter' ),
		'params'   => array(
			'title'              => array( 'type' => 'string', 'description' => 'Progress bar label.' ),
			'progress_type'      => array( 'type' => 'string', 'enum' => array( '', 'info', 'success', 'warning', 'danger' ), 'description' => 'Color preset type.' ),
			'percent'            => array( 'type' => 'object', 'description' => 'Progress percentage: { "size": 50, "unit": "%" }.' ),
			'display_percentage' => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Show percentage value. Default: yes.' ),
			'inner_text'         => array( 'type' => 'string', 'description' => 'Text inside the progress bar.' ),
		),
		'required' => array(),
		'defaults' => array( 'percent' => array( 'size' => 50, 'unit' => '%' ), 'display_percentage' => 'yes' ),
	),
	'social-icons' => array(
		'tier'     => 'free',
		'title'    => 'Social Icons',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Row of linked social media icons for headers and footers, with shape and alignment options.',
		'keywords' => array( 'social', 'icons', 'links', 'facebook', 'share' ),
		'params'   => array(
			'social_icon_list' => array(
				'type'        => 'array',
				'description' => 'Array of social items with social_icon and link.',
				'items'       => array(
					'type'       => 'object',
					'properties' => array(
						'social_icon' => array( 'type' => 'object', 'description' => 'Icon: { "value": "fab fa-facebook", "library": "fa-brands" }.' ),
						'link'        => array( 'type' => 'object', 'description' => 'URL object with url key.' ),
					),
				),
			),
			'shape'            => array( 'type' => 'string', 'enum' => array( 'rounded', 'square', 'circle' ), 'description' => 'Icon shape. Default: rounded.' ),
			'columns'          => array( 'type' => 'integer', 'description' => 'Grid columns. 0 = auto.' ),
			'align'            => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right' ), 'description' => 'Alignment. Default: center.' ),
		),
		'required' => array( 'social_icon_list' ),
		'defaults' => array( 'shape' => 'rounded' ),
	),
	'star-rating' => array(
		'tier'     => 'free',
		'title'    => 'Star Rating',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Displays a star rating value on a 5 or 10 scale with an optional title.',
		'keywords' => array( 'star', 'rating', 'review', 'stars', 'score' ),
		'params'   => array(
			'rating_scale' => array( 'type' => 'string', 'enum' => array( '5', '10' ), 'description' => 'Rating scale. Default: 5.' ),
			'rating'       => array( 'type' => 'object', 'description' => 'Rating value: { "size": 5, "unit": "px" }. Step: 0.1.' ),
			'star_style'   => array( 'type' => 'string', 'enum' => array( 'star_fontawesome', 'star_unicode' ), 'description' => 'Star icon style.' ),
			'title'        => array( 'type' => 'string', 'description' => 'Optional rating title.' ),
		),
		'required' => array(),
		'defaults' => array( 'rating_scale' => '5', 'rating' => array( 'size' => 5, 'unit' => 'px' ) ),
	),
	'tabs' => array(
		'tier'     => 'free',
		'title'    => 'Tabs',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Tabbed content panels in a horizontal or vertical layout.',
		'keywords' => array( 'tabs', 'tabbed', 'content', 'panels', 'switch' ),
		'params'   => array(
			'tabs' => array(
				'type'        => 'array',
				'description' => 'Array of tab items with tab_title and tab_content.',
				'items'       => array(
					'type'       => 'object',
					'properties' => array(
						'tab_title'   => array( 'type' => 'string' ),
						'tab_content' => array( 'type' => 'string' ),
					),
				),
			),
			'type' => array( 'type' => 'string', 'enum' => array( 'horizontal', 'vertical' ), 'description' => 'Tab layout direction. Default: horizontal.' ),
		),
		'required' => array( 'tabs' ),
		'defaults' => array( 'type' => 'horizontal' ),
	),
	'testimonial' => array(
		'tier'     => 'free',
		'title'    => 'Testimonial',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Single customer testimonial with quote, author name, job title, and image.',
		'keywords' => array( 'testimonial', 'quote', 'review', 'author', 'customer' ),
		'params'   => array(
			'testimonial_content'        => array( 'type' => 'string', 'description' => 'Testimonial/quote text.' ),
			'testimonial_image'          => array( 'type' => 'object', 'description' => 'Author image object with url and optional id.' ),
			'testimonial_name'           => array( 'type' => 'string', 'description' => 'Author name.' ),
			'testimonial_job'            => array( 'type' => 'string', 'description' => 'Author job title/role.' ),
			'testimonial_image_position' => array( 'type' => 'string', 'enum' => array( 'aside', 'top' ), 'description' => 'Image position. Default: aside.' ),
		),
		'required' => array( 'testimonial_content', 'testimonial_name' ),
		'defaults' => array( 'testimonial_image_position' => 'aside' ),
	),
	'toggle' => array(
		'tier'     => 'free',
		'title'    => 'Toggle',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Expandable content items where multiple can stay open at once, with full title/content styling.',
		'keywords' => array( 'toggle', 'accordion', 'faq', 'collapse', 'expand' ),
		'params'   => array(
			'tabs'                          => array(
				'type'        => 'array',
				'description' => 'Array of toggle items with tab_title and tab_content.',
				'items'       => array(
					'type'       => 'object',
					'properties' => array(
						'tab_title'   => array( 'type' => 'string' ),
						'tab_content' => array( 'type' => 'string' ),
					),
				),
			),
			'selected_icon'                  => array( 'type' => 'object', 'description' => 'Icon when collapsed.' ),
			'selected_active_icon'           => array( 'type' => 'object', 'description' => 'Icon when expanded.' ),
			'title_html_tag'                 => array( 'type' => 'string', 'enum' => array( 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div' ), 'description' => 'Title HTML tag. Default: div.' ),
			'title_color'                    => array( 'type' => 'string', 'description' => 'Title text color.' ),
			'title_background'               => array( 'type' => 'string', 'description' => 'Title background color.' ),
			'tab_active_color'               => array( 'type' => 'string', 'description' => 'Active title text color.' ),
			'tab_active_background'          => array( 'type' => 'string', 'description' => 'Active title background color.' ),
			'title_padding'                  => array( 'type' => 'object', 'description' => 'Title padding: {top, right, bottom, left, unit, isLinked}.' ),
			'icon_color'                     => array( 'type' => 'string', 'description' => 'Icon color.' ),
			'icon_active_color'              => array( 'type' => 'string', 'description' => 'Active icon color.' ),
			'icon_space'                     => array( 'type' => 'object', 'description' => 'Space between icon and title: {size, unit}.' ),
			'content_color'                  => array( 'type' => 'string', 'description' => 'Content text color.' ),
			'content_background_color'       => array( 'type' => 'string', 'description' => 'Content background color.' ),
			'content_padding'                => array( 'type' => 'object', 'description' => 'Content padding: {top, right, bottom, left, unit, isLinked}.' ),
			'border_width'                   => array( 'type' => 'object', 'description' => 'Item border width: {size, unit}.' ),
			'border_color'                   => array( 'type' => 'string', 'description' => 'Item border color.' ),
			'title_typography_typography'    => array( 'type' => 'string', 'description' => 'Set to "custom" to enable title typography.' ),
			'title_typography_font_family'   => array( 'type' => 'string', 'description' => 'Title font family.' ),
			'title_typography_font_size'     => array( 'type' => 'object', 'description' => 'Title font size: {size, unit}.' ),
			'title_typography_font_weight'   => array( 'type' => 'string', 'enum' => array( '100', '200', '300', '400', '500', '600', '700', '800', '900', 'normal', 'bold' ), 'description' => 'Title font weight.' ),
			'content_typography_typography'  => array( 'type' => 'string', 'description' => 'Set to "custom" to enable content typography.' ),
			'content_typography_font_family' => array( 'type' => 'string', 'description' => 'Content font family.' ),
			'content_typography_font_size'   => array( 'type' => 'object', 'description' => 'Content font size: {size, unit}.' ),
		),
		'required' => array( 'tabs' ),
		'defaults' => array( 'title_html_tag' => 'div' ),
	),
	'html' => array(
		'tier'     => 'free',
		'title'    => 'HTML',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Embeds arbitrary custom HTML/code markup into the page.',
		'keywords' => array( 'html', 'code', 'embed', 'custom', 'markup' ),
		'params'   => array(
			'html' => array( 'type' => 'string', 'description' => 'Custom HTML/code content.' ),
		),
		'required' => array( 'html' ),
		'defaults' => array(),
	),
	'menu-anchor' => array(
		'tier'     => 'free',
		'title'    => 'Menu Anchor',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Adds a named anchor point for one-page (jump-link) navigation.',
		'keywords' => array( 'anchor', 'menu', 'navigation', 'jump', 'link' ),
		'params'   => array(
			'anchor' => array( 'type' => 'string', 'description' => 'The anchor ID (used in menu links as #id).' ),
		),
		'required' => array( 'anchor' ),
		'defaults' => array(),
	),
	'shortcode' => array(
		'tier'     => 'free',
		'title'    => 'Shortcode',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Renders a WordPress shortcode inside the page.',
		'keywords' => array( 'shortcode', 'wordpress', 'plugin', 'embed', 'code' ),
		'params'   => array(
			'shortcode' => array( 'type' => 'string', 'description' => 'The shortcode to render, e.g. [contact-form-7 id="123"].' ),
		),
		'required' => array( 'shortcode' ),
		'defaults' => array(),
	),
	'rating' => array(
		'tier'     => 'free',
		'title'    => 'Rating',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Star/icon rating display with configurable scale, icon, size, and marked/unmarked colors.',
		'keywords' => array( 'rating', 'star', 'icon', 'score', 'review' ),
		'params'   => array(
			'rating_scale'        => array( 'type' => 'object', 'description' => 'Rating scale: { "size": 5, "unit": "px" }. Default 5.' ),
			'rating_value'        => array( 'type' => 'number', 'description' => 'Rating value (e.g. 4.5).' ),
			'rating_icon'         => array( 'type' => 'object', 'description' => 'Icon object, e.g. { "value": "eicon-star", "library": "eicons" }.' ),
			'icon_alignment'      => array( 'type' => 'string', 'enum' => array( 'start', 'center', 'end' ), 'description' => 'Icon alignment.' ),
			'icon_size'           => array( 'type' => 'object', 'description' => 'Icon size: { "size": 24, "unit": "px" }.' ),
			'icon_gap'            => array( 'type' => 'object', 'description' => 'Space between icons: { "size": 5, "unit": "px" }.' ),
			'icon_color'          => array( 'type' => 'string', 'description' => 'Marked icon color (hex).' ),
			'icon_unmarked_color' => array( 'type' => 'string', 'description' => 'Unmarked icon color (hex).' ),
		),
		'required' => array(),
		'defaults' => array( 'rating_value' => 5 ),
	),
	'text-path' => array(
		'tier'     => 'free',
		'title'    => 'Text Path',
		'category' => 'basic',
		'requires' => null,
		'use_case' => 'Renders text along a curved or custom SVG path (wave, arc, circle, etc.) with stroke and typography.',
		'keywords' => array( 'text', 'path', 'curved', 'svg', 'circle' ),
		'params'   => array(
			'text'                        => array( 'type' => 'string', 'description' => 'The text content.' ),
			'path'                        => array( 'type' => 'string', 'enum' => array( 'wave', 'arc', 'circle', 'line', 'oval', 'spiral', 'custom' ), 'description' => 'Path shape type. Default: wave.' ),
			'custom_path'                 => array( 'type' => 'object', 'description' => 'Custom SVG path object (when path=custom).' ),
			'link'                        => array( 'type' => 'object', 'description' => 'Link object: { "url": "...", "is_external": true }.' ),
			'align'                       => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right' ), 'description' => 'Text alignment.' ),
			'text_path_direction'         => array( 'type' => 'string', 'enum' => array( '', 'rtl', 'ltr' ), 'description' => 'Text direction.' ),
			'show_path'                   => array( 'type' => 'string', 'enum' => array( 'yes', '' ), 'description' => 'Show the SVG path line.' ),
			'size'                        => array( 'type' => 'object', 'description' => 'Path size: { "size": 500, "unit": "px" }.' ),
			'rotation'                    => array( 'type' => 'object', 'description' => 'Rotation: { "size": 0, "unit": "px" }.' ),
			'start_point'                 => array( 'type' => 'object', 'description' => 'Starting point (%): { "size": 0, "unit": "px" }.' ),
			'text_color_normal'           => array( 'type' => 'string', 'description' => 'Text color (hex).' ),
			'text_color_hover'            => array( 'type' => 'string', 'description' => 'Text hover color (hex).' ),
			'stroke_color_normal'         => array( 'type' => 'string', 'description' => 'Path stroke color (hex).' ),
			'stroke_width_normal'         => array( 'type' => 'object', 'description' => 'Path stroke width: { "size": 1, "unit": "px" }.' ),
			'text_typography_typography'  => array( 'type' => 'string', 'description' => 'Set to "yes" for custom typography.' ),
			'text_typography_font_family' => array( 'type' => 'string', 'description' => 'Font family name.' ),
			'text_typography_font_size'   => array( 'type' => 'object', 'description' => 'Font size: { "size": 20, "unit": "px" }.' ),
			'text_typography_font_weight' => array( 'type' => 'string', 'description' => 'Font weight (100-900, normal, bold).' ),
		),
		'required' => array(),
		'defaults' => array( 'text' => 'Add Your Curvy Text Here', 'path' => 'wave' ),
	),
);
