Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
<?php

if (! function_exists('blocksy_assemble_selector')) {
	return;
}

$has_mega_menu = blocksy_akg('has_mega_menu', $atts, 'no' );
$mega_menu_width = blocksy_akg('mega_menu_width', $atts, 'content' );

blocksy_output_colors([
	'value' => blocksy_akg('menu_items_text', $atts),
	'default' => [
		'default' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
	],
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,
	'important' => true,

	'variables' => [
		'default' => [
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'container-suffix',
					'to_add' => '[class*="ct-mega-menu"] .sub-menu'
				])
			),
			'variable' => 'color'
		],
	],
]);

// column
blocksy_output_spacing([
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,
	'selector' => blocksy_assemble_selector($root_selector),
	'property' => 'columns-padding',
	'value' => blocksy_default_akg(
		'menu_column_padding', $atts,
		blocksy_spacing_value([
			'linked' => true,
		])
	)
]);

// heading
blocksy_output_font_css([
	'font_value' => blocksy_akg(
		'menu_items_heading_font',
		$atts,
		blocksy_typography_default_values([
			'size' => '15px',
			'variation' => 'n7',
		])
	),
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,
	'selector' => blocksy_assemble_selector(
		blocksy_mutate_selector([
			'selector' => blocksy_mutate_selector([
				'selector' => $root_selector,
				'operation' => 'container-suffix',
				'to_add' => '[class*="ct-mega-menu"] .ct-column-heading'
			]),
			'operation' => 'prefix',
			'to_add' => 'nav > ul >'
		])
	),
]);

blocksy_output_colors([
	'value' => blocksy_akg('menu_items_heading', $atts),
	'default' => [
		'default' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
	],
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,

	'variables' => [
		'default' => [
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => blocksy_mutate_selector([
						'selector' => $root_selector,
						'operation' => 'container-suffix',
						'to_add' => '[class*="ct-mega-menu"] .ct-column-heading'
					]),
					'operation' => 'prefix',
					'to_add' => 'nav > ul >'
				])
			),
			'variable' => 'headings-color'
		],
	],
]);

blocksy_output_colors([
	'value' => blocksy_akg('menu_item_heading', $atts),
	'default' => [
		'default' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
	],
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,
	'important' => true,

	'variables' => [
		'default' => [
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'suffix',
					'to_add' => '> .ct-column-heading'
				])
			),
			'variable' => 'headings-color'
		],
	],
]);

blocksy_output_colors([
	'value' => blocksy_akg('menu_items_links', $atts),
	'default' => [
		'default' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
		'hover' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
		'bg_hover' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
	],
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,
	'important' => true,

	'variables' => [
		'default' => [
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => blocksy_mutate_selector([
						'selector' => $root_selector,
						'operation' => 'container-suffix',
						'to_add' => '[class*="ct-mega-menu"] .sub-menu'
					]),
					'operation' => 'prefix',
					'to_add' => 'nav > ul >'
				])
			),
			'variable' => 'linkInitialColor'
		],

		'hover' => [
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => blocksy_mutate_selector([
						'selector' => $root_selector,
						'operation' => 'container-suffix',
						'to_add' => '[class*="ct-mega-menu"] .sub-menu'
					]),
					'operation' => 'prefix',
					'to_add' => 'nav > ul >'
				])
			),
			'variable' => 'linkHoverColor'
		],

		'bg_hover' => [
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => blocksy_mutate_selector([
						'selector' => $root_selector,
						'operation' => 'container-suffix',
						'to_add' => '[class*="ct-mega-menu"] .sub-menu'
					]),
					'operation' => 'prefix',
					'to_add' => 'nav > ul >'
				])
			),
			'variable' => 'dropdown-background-hover-color'
		],
	],
]);

$mega_menu_background_selector = '[class*="ct-mega-menu"] > .sub-menu';

if ($mega_menu_width === 'full_width') {
	$mega_menu_background_selector = '[class*="ct-mega-menu"] > .sub-menu:after';
}

blocksy_output_background_css([
	'selector' => blocksy_assemble_selector(
		blocksy_mutate_selector([
			'selector' => blocksy_mutate_selector([
				'selector' => $root_selector,
				'operation' => 'container-suffix',
				'to_add' => $mega_menu_background_selector
			]),
			'operation' => 'prefix',
			'to_add' => 'nav > ul >'
		])
	),
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,
	'value' => blocksy_akg('mega_menu_background', $atts,
		blocksy_background_default_value([
			'backgroundColor' => [
				'default' => [
					'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT')
				],
			],
		])
	)
]);

// shadow
blocksy_output_box_shadow([
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,
	'selector' => blocksy_assemble_selector(
		blocksy_mutate_selector([
			'selector' => blocksy_mutate_selector([
				'selector' => $root_selector,
				'operation' => 'container-suffix',
				'to_add' => '[class*="ct-mega-menu"] > .sub-menu'
			]),
			'operation' => 'prefix',
			'to_add' => 'nav > ul >'
		])
	),
	'important' => true,
	'value' => blocksy_akg('mega_menu_shadow', $atts, blocksy_box_shadow_value([
		'inherit' => true,
		'enable' => true,
		'h_offset' => 0,
		'v_offset' => 10,
		'blur' => 20,
		'spread' => 0,
		'inset' => false,
		'color' => [
			'color' => 'rgba(41, 51, 61, 0.1)',
		],
	])),
]);

// divider
$mega_menu_columns_divider_default = [
	'inherit' => true,
	'width' => 1,
	'style' => 'dashed',
	'color' => [
		'color' => 'rgba(255, 255, 255, 0.1)',
	]
];

$mega_menu_items_divider = blocksy_akg(
	'mega_menu_items_divider',
	$atts,
	$mega_menu_columns_divider_default
);

blocksy_output_border([
	'css' => $css,
	'selector' => blocksy_assemble_selector(
		blocksy_mutate_selector([
			'selector' => blocksy_mutate_selector([
				'selector' => $root_selector,
				'operation' => 'container-suffix',
				'to_add' => '[class*="ct-mega-menu"] .sub-menu'
			]),
			'operation' => 'prefix',
			'to_add' => 'nav > ul >'
		])
	),
	'variableName' => 'dropdown-divider',
	'important' => true,
	'value' => $mega_menu_items_divider,
	'default' => $mega_menu_columns_divider_default
]);

if ($mega_menu_items_divider['style'] === 'none') {
	$css->put(
		blocksy_assemble_selector(
			blocksy_mutate_selector([
				'selector' => blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'container-suffix',
					'to_add' => '[class*="ct-mega-menu"] .sub-menu'
				]),
				'operation' => 'prefix',
				'to_add' => 'nav > ul >'
			])
		),
		'--dropdown-divider-margin: 0px'
	);
} else {
	if (! $mega_menu_items_divider['inherit']) {
		$css->put(
			blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => blocksy_mutate_selector([
						'selector' => $root_selector,
						'operation' => 'container-suffix',
						'to_add' => '[class*="ct-mega-menu"] .sub-menu'
					]),
					'operation' => 'prefix',
					'to_add' => 'nav > ul >'
				])
			),
			'--dropdown-divider-margin: calc(var(--dropdown-items-spacing, 13px) - 3px)'
		);
	}
}


if ($has_mega_menu !== 'no') {
	blocksy_output_border([
		'css' => $css,
		'selector' => blocksy_assemble_selector(
			blocksy_mutate_selector([
				'selector' => blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'container-suffix',
					'to_add' => '[class*="ct-mega-menu"] > .sub-menu'
				]),
				'operation' => 'prefix',
				'to_add' => 'nav > ul >'
			])
		),
		'variableName' => 'dropdown-columns-divider',
		'value' => blocksy_akg('mega_menu_columns_divider', $atts),
		'default' => [
			// 'inherit' => true,
			'width' => 1,
			'style' => 'solid',
			'color' => [
				'color' => 'rgba(255, 255, 255, 0.1)',
			],
		]
	]);
}

// icon
$menu_item_icon_size = blocksy_akg( 'menu_item_icon_size', $atts, 20 );

if ($menu_item_icon_size !== 20) {
	blocksy_output_responsive([
		'css' => $css,
		'tablet_css' => $tablet_css,
		'mobile_css' => $mobile_css,
		'selector' => blocksy_assemble_selector($root_selector),
		'variableName' => 'icon-size',
		'value' => $menu_item_icon_size,
	]);
}

blocksy_output_colors([
	'value' => blocksy_akg('menu_item_icon_color', $atts),
	'default' => [
		'default' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
		'hover' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
		'active' => [ 'color' => Blocksy_Css_Injector::get_skip_rule_keyword('DEFAULT') ],
	],
	'css' => $css,
	'tablet_css' => $tablet_css,
	'mobile_css' => $mobile_css,

	'variables' => [
		'default' => [
			// 'selector' => blocksy_assemble_selector($root_selector),
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'suffix',
					'to_add' => '.ct-icon-container'
				])
			),
			'variable' => 'icon-color'
		],

		'hover' => [
			// 'selector' => blocksy_assemble_selector($root_selector),
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'suffix',
					'to_add' => '.ct-icon-container'
				])
			),
			'variable' => 'icon-hover-color'
		],

		'active' => [
			// 'selector' => blocksy_assemble_selector($root_selector),
			'selector' => blocksy_assemble_selector(
				blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'suffix',
					'to_add' => '.ct-icon-container'
				])
			),
			'variable' => 'icon-active-color'
		],
	],
	// 'important' => true,
]);


// badge
$menu_badge_vertical_alignment = blocksy_akg( 'menu_badge_vertical_alignment', $atts, 0 );

if ($menu_badge_vertical_alignment !== 0) {
	$css->put(
		blocksy_assemble_selector(
			blocksy_mutate_selector([
				'selector' => $root_selector,
				'operation' => 'suffix',
				'to_add' => '.ct-menu-badge'
			])
		),
		'--margin-top: ' . $menu_badge_vertical_alignment . 'px'
	);
}

$has_menu_badge = blocksy_akg( 'has_menu_badge', $atts, 'no' );

if ($has_menu_badge !== 'no' ) {
	blocksy_output_colors([
		'value' => blocksy_akg('menu_badge_font_color', $atts),
		'default' => [
			'default' => [ 'color' => '#ffffff' ],
		],
		'css' => $css,
		'tablet_css' => $tablet_css,
		'mobile_css' => $mobile_css,

		'variables' => [
			'default' => [
				'selector' => blocksy_assemble_selector(
					blocksy_mutate_selector([
						'selector' => $root_selector,
						'operation' => 'suffix',
						'to_add' => '> *:first-child .ct-menu-badge'
					])
				),
				'variable' => 'color'
			],
		],
	]);

	blocksy_output_colors([
		'value' => blocksy_akg('menu_badge_background', $atts),
		'default' => [
			'default' => [ 'color' => 'var(--paletteColor1)' ],
		],
		'css' => $css,
		'tablet_css' => $tablet_css,
		'mobile_css' => $mobile_css,

		'variables' => [
			'default' => [
				'selector' => blocksy_assemble_selector(
					blocksy_mutate_selector([
						'selector' => $root_selector,
						'operation' => 'suffix',
						'to_add' => '> *:first-child .ct-menu-badge'
					])
				),
				'variable' => 'background-color'
			],
		],
	]);
}


$mega_menu_columns = blocksy_akg('mega_menu_columns', $atts, '4');

if (
	$has_mega_menu === 'yes'
	&&
	intval($mega_menu_columns) !== 1
) {
	$css->put(
		blocksy_assemble_selector(
			blocksy_mutate_selector([
				'selector' => blocksy_mutate_selector([
					'selector' => $root_selector,
					'operation' => 'container-suffix',
					'to_add' => '[class*="ct-mega-menu"] > .sub-menu'
				]),
				'operation' => 'prefix',
				'to_add' => 'nav > ul >'
			])
		),
		'--grid-template-columns: ' . blocksy_akg(
			$mega_menu_columns . '_columns_layout',
			$atts,
			'repeat(' . $mega_menu_columns . ', 1fr)'
		)
	);
}


// custom width
if ($has_mega_menu !== 'no' && $mega_menu_width === 'custom') {
	$css->put(
		blocksy_assemble_selector(
			blocksy_mutate_selector([
				'selector' => $root_selector,
				'operation' => 'container-suffix',
				'to_add' => '.ct-mega-menu-custom-width .sub-menu'
			])
		),
		'--mega-menu-max-width: ' . blocksy_akg( 'mega_menu_custom_width', $atts, '400px' )
	);
}