INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(396, 0x61646d696e, 0x7374796c655f6578706f7274, 0, '<xf:if is=\"$asArchive\">\n	<xf:title>{{ phrase(\'export_style_as_archive:\') }} {$style.title}</xf:title>\n<xf:else />\n	<xf:title>{{ phrase(\'export_style_as_xml:\') }} {$style.title}</xf:title>\n</xf:if>\n\n<xf:set var=\"$addOnRepo\" value=\"{{ $xf.app.em.getRepository(\'XF:AddOn\') }}\" />\n\n<xf:form action=\"{{ link(($asArchive ? \'styles/export-archive\' : \'styles/export\'), $style) }}\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:if is=\"$asArchive\">\n				<xf:inforow>\n					<div class=\"blockMessage blockMessage--important\"><strong>{{ phrase(\'note:\') }}</strong> {{ phrase(\'style_archives_only_contain_files_extensions_x\', {\'extensions\': $allowedExtensions|join(\', \')}) }}</div>\n				</xf:inforow>\n			</xf:if>\n			<xf:formrow label=\"{{ phrase(\'style\') }}\">{$style.title}</xf:formrow>\n\n			<xf:selectrow name=\"addon_id\"\n				label=\"{{ phrase(\'export_from_add_on\') }}\">\n\n				<xf:option>{{ phrase(\'(all)\') }}</xf:option>\n				<xf:foreach loop=\"$addOnRepo.findAddOnsForList().fetch()\" value=\"$addOn\">\n					<xf:option value=\"{$addOn.addon_id}\">{$addOn.title}</xf:option>\n				</xf:foreach>\n			</xf:selectrow>\n\n			<xf:if is=\"$xf.designer OR $xf.development\">\n				<xf:checkboxrow>\n					<xf:option name=\"independent\"\n						label=\"{{ phrase(\'export_as_independent_style\') }}\"\n						hint=\"{{ phrase(\'if_selected_customizations_in_parent_styles_will_be_included\') }}\" />\n				</xf:checkboxrow>\n			</xf:if>\n		</div>\n		<xf:submitrow icon=\"export\" />\n	</div>\n</xf:form>', 0x[encoded data, 25996 characters], 0x5846, 2030033, '2.3.0 Beta 3', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(397, 0x61646d696e, 0x7374796c655f696d706f7274, 0, '<xf:title>{{ phrase(\'import_style\') }}</xf:title>\n\n<xf:form action=\"{{ link(\'styles/import\') }}\" upload=\"true\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:if is=\"$canSupportStyleArchives\">\n				<xf:uploadrow name=\"upload\" accept=\".xml,.zip\"\n					label=\"{{ phrase(\'import_from_uploaded_xml_or_archive_file\') }}\" />\n			<xf:else />\n				<xf:uploadrow name=\"upload\" accept=\".xml\"\n					label=\"{{ phrase(\'import_from_uploaded_xml_file\') }}\" />\n			</xf:if>\n\n			<xf:radiorow name=\"target\"\n				label=\"{{ phrase(\'import_as\') }}\">\n\n				<xf:option value=\"new\" checked=\"checked\"\n					label=\"{{ phrase(\'child_of_style:\') }}\">\n\n					<xf:select name=\"parent_style_id\">\n						<xf:option>{{ phrase(\'(no_parent)\') }}</xf:option>\n						<xf:foreach loop=\"$styleTree.getFlattened(0)\" value=\"$treeEntry\">\n							<xf:option value=\"{$treeEntry.record.style_id}\">\n								{{ repeat(\'--\', $treeEntry.depth) }} {$treeEntry.record.title}\n							</xf:option>\n						</xf:foreach>\n					</xf:select>\n				</xf:option>\n				<xf:option value=\"overwrite\"\n					label=\"{{ phrase(\'overwrite_style\') }}\">\n\n					<xf:select name=\"overwrite_style_id\">\n						<xf:foreach loop=\"$styleTree.getFlattened(0)\" value=\"$treeEntry\">\n							<xf:option value=\"{$treeEntry.record.style_id}\">{{ repeat(\'--\', $treeEntry.depth) }}\n								{$treeEntry.record.title}\n							</xf:option>\n						</xf:foreach>\n					</xf:select>\n				</xf:option>\n			</xf:radiorow>\n\n			<xf:checkboxrow>\n				<xf:option name=\"force\">\n					<xf:label>{{ phrase(\'skip_import_checks\') }}</xf:label>\n					<xf:hint>{{ phrase(\'selecting_bypass_checks_made_by_import_prevent_accidents\') }}</xf:hint>\n				</xf:option>\n			</xf:checkboxrow>\n\n		</div>\n		<xf:submitrow icon=\"import\" />\n	</div>\n</xf:form>', 0x[encoded data, 30210 characters], 0x5846, 2020010, '2.2.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(398, 0x61646d696e, 0x7374796c655f6c697374, 0, '<xf:title>{{ phrase(\'styles\') }}</xf:title>\n\n<xf:pageaction>\n	<xf:button href=\"{{ link(\'styles/add\') }}\" icon=\"add\">{{ phrase(\'add_style\') }}</xf:button>\n	<xf:button href=\"{{ link(\'styles/import\') }}\" icon=\"import\" />\n</xf:pageaction>\n\n<xf:macro id=\"style_list\" arg-children=\"!\" arg-defaultStyleId=\"!\" arg-depth=\"1\" arg-canSupportStyleArchives=\"{{ false }}\">\n	<xf:if is=\"$children is not empty\">\n		<xf:foreach loop=\"$children\" value=\"$child\">\n			<xf:macro id=\"style_list_entry\"\n				arg-style=\"{$child.record}\"\n				arg-children=\"{$child.children}\"\n				arg-defaultStyleId=\"{$defaultStyleId}\"\n				arg-depth=\"{$depth}\"\n				arg-canSupportStyleArchives=\"{$canSupportStyleArchives}\" />\n		</xf:foreach>\n	</xf:if>\n</xf:macro>\n\n<xf:macro id=\"style_list_entry\" arg-style=\"!\" arg-children=\"!\" arg-defaultStyleId=\"!\" arg-depth=\"1\" arg-canSupportStyleArchives=\"{{ false }}\">\n	<xf:datarow>\n\n		<xf:main\n			hash=\"{$style.style_id}\"\n			href=\"{{ ($style.style_id ? link(\'styles/edit\', $style) : \'\') }}\"\n			label=\"{$style.title}\"\n			explain=\"{$style.description}\"\n			class=\"dataList-cell--d{$depth}\">\n\n			<xf:hint><xf:if is=\"$xf.designer AND $style.designer_mode\">\n				{{ phrase(\'designer_mode_enabled:\') }} {$style.designer_mode}\n			</xf:if></xf:hint>\n		</xf:main>\n\n		<xf:if is=\"$style.style_id\">\n			<xf:toggle name=\"user_selectable[{$style.style_id}]\"\n				selected=\"$style.user_selectable\"\n				class=\"dataList-cell--separated u-hideMedium\"\n				submit=\"true\"\n				tooltip=\"{{ phrase(\'enable_disable_user_selection_x\', {\'title\': $style.title}) }}\" />\n			<xf:toggle name=\"default_style_id\"\n				type=\"radio\"\n				value=\"{$style.style_id}\"\n				selected=\"{{ $defaultStyleId == $style.style_id ? 1 : 0 }}\"\n				class=\"dataList-cell--separated\"\n				submit=\"true\" />\n		<xf:else />\n			<xf:cell class=\"u-hideMedium\">&nbsp;</xf:cell>\n			<xf:cell>&nbsp;</xf:cell>\n		</xf:if>\n\n		<xf:if is=\"$style.canEdit()\">\n			<xf:action href=\"{{ link(\'styles/templates\', $style) }}\" class=\"dataList-cell--responsiveMenuItem\">{{ phrase(\'templates\') }}</xf:action>\n			<xf:action href=\"{{ link(\'styles/style-properties\', $style) }}\" class=\"dataList-cell--responsiveMenuItem\">{{ phrase(\'style_properties\') }}</xf:action>\n		<xf:else />\n			<xf:cell class=\"dataList-cell--alt dataList-cell--fauxResponsiveMenuItem\"> </xf:cell>\n			<xf:cell class=\"dataList-cell--alt dataList-cell--fauxResponsiveMenuItem\">&nbsp;</xf:cell>\n		</xf:if>\n\n		<xf:if is=\"$style.style_id\">\n			<xf:popup label=\"&#8226;&#8226;&#8226;\">\n				<div class=\"menu\" data-menu=\"menu\" aria-hidden=\"true\" data-menu-builder=\"dataList\">\n					<div class=\"menu-content\">\n						<h3 class=\"menu-header\">{{ phrase(\'more_options\') }}</h3>\n						<a href=\"{{ link(\'styles/export\', $style) }}\" class=\"menu-linkRow\" data-xf-click=\"overlay\">{{ phrase(\'export_as_xml\') }}</a>\n						<xf:if is=\"$canSupportStyleArchives\">\n							<a href=\"{{ link(\'styles/export-archive\', $style) }}\" class=\"menu-linkRow\" data-xf-click=\"overlay\">{{ phrase(\'export_as_archive\') }}</a>\n						</xf:if>\n						<a href=\"{{ link(\'styles/customized-components\', $style) }}\" class=\"menu-linkRow\">{{ phrase(\'customized_components\') }}</a>\n						<div class=\"js-menuBuilderTarget u-showMediumBlock\"></div>\n					</div>\n				</div>\n			</xf:popup>\n		<xf:else />\n			<xf:cell class=\"dataList-cell--alt\">&nbsp;</xf:cell>\n		</xf:if>\n\n		<xf:if is=\"$style.style_id\">\n			<xf:delete href=\"{{ link(\'styles/delete\', $style) }}\" />\n		<xf:else />\n			<xf:cell class=\"dataList-cell--alt\">&nbsp;</xf:cell>\n		</xf:if>\n\n	</xf:datarow>\n	<xf:macro id=\"style_list\"\n		arg-children=\"{$children}\"\n		arg-depth=\"{{ $depth + 1 }}\"\n		arg-defaultStyleId=\"{$defaultStyleId}\"\n		arg-canSupportStyleArchives=\"{$canSupportStyleArchives}\" />\n</xf:macro>\n\n<xf:if is=\"$styleTree is not empty\">\n	<xf:form action=\"{{ link(\'styles/toggle\') }}\" class=\"block\" ajax=\"true\">\n		<div class=\"block-outer\">\n			<xf:macro id=\"filter_macros::quick_filter\" arg-key=\"styles\" arg-class=\"block-outer-opposite\" />\n		</div>\n		<div class=\"block-container\">\n			<div class=\"block-body\">\n				<xf:datalist>\n					<xf:macro id=\"style_list\" arg-children=\"{$styleTree}\"\n						arg-defaultStyleId=\"{$xf.options.defaultStyleId}\"\n						arg-canSupportStyleArchives=\"{$canSupportStyleArchives}\" />\n				</xf:datalist>\n			</div>\n			<div class=\"block-footer\">\n				<span class=\"block-footer-counter\">{{ display_totals($styleTree.getFlattened(0)) }}</span>\n			</div>\n		</div>\n	</xf:form>\n</xf:if>', 0x[encoded data, 68756 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(399, 0x61646d696e, 0x7374796c655f6d6163726f73, 0, '<xf:macro id=\"style_change_menu\"\n	arg-styleTree=\"!\"\n	arg-route=\"!\"\n	arg-routeParams=\"{{ {} }}\"\n	arg-currentStyle=\"{{ null }}\"\n	arg-linkClass=\"button button--link\">\n\n	<a class=\"{$linkClass} menuTrigger\"\n		data-xf-click=\"menu\"\n		role=\"button\"\n		tabindex=\"0\"\n		aria-expanded=\"false\"\n		aria-haspopup=\"true\">{{ phrase(\'style:\') }} {$currentStyle.title}</a>\n\n	<div class=\"menu\" data-menu=\"menu\" aria-hidden=\"true\">\n		<div class=\"menu-content\">\n			<h3 class=\"menu-header\">{{ phrase(\'styles\') }}</h3>\n			<xf:foreach loop=\"$styleTree.getFlattened()\" value=\"$treeEntry\">\n				<a href=\"{{ link($route, $treeEntry.record, $routeParams) }}\"\n					class=\"menu-linkRow {{ ($currentStyle && $currentStyle.style_id == $treeEntry.record.style_id) ? \'is-selected\' : \'\' }}\">\n					<span class=\"u-depth{$treeEntry.depth}\">{$treeEntry.record.title}</span>\n				</a>\n			</xf:foreach>\n		</div>\n	</div>\n</xf:macro>\n\n<xf:macro id=\"style_select\"\n	arg-styleTree=\"!\"\n	arg-styleId=\"!\"\n	arg-name=\"style_id\"\n	arg-row=\"{{ true }}\">\n\n	<xf:set var=\"$select\">\n		<xf:select name=\"{$name}\" value=\"{$styleId}\">\n			<xf:foreach loop=\"{{ $styleTree.getFlattened() }}\" value=\"$treeEntry\">\n				<xf:option value=\"{$treeEntry.record.style_id}\">{{ repeat(\'--\', $treeEntry.depth) }} {$treeEntry.record.title}</xf:option>\n			</xf:foreach>\n		</xf:select>\n	</xf:set>\n\n	<xf:if is=\"$row\">\n		<xf:formrow rowtype=\"input\"\n			label=\"{{ phrase(\'style\') }}\">\n\n			{$select|raw}\n		</xf:formrow>\n	<xf:else />\n		{$select|raw}\n	</xf:if>\n</xf:macro>', 0x[encoded data, 27068 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057),
(400, 0x61646d696e, 0x7374796c655f6d6173735f726576657274, 0, '<xf:title>{{ phrase(\'confirm_action\') }}</xf:title>\n\n<xf:form action=\"{{ link(\'styles/mass-revert\', $style) }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:inforow rowtype=\"confirm\">\n				{{ phrase(\'please_confirm_reversion_of_customized_components_from_style\', {\'numTemplates\': count($templateIds), \'numProperties\': count($propertyIds), \'style\': $style.title}) }}\n			</xf:inforow>\n		</div>\n		<xf:submitrow submit=\"{{ phrase(\'revert\') }}\" rowtype=\"simple\" name=\"perform_revert\" value=\"1\" />\n	</div>\n	<xf:redirect />\n	<xf:foreach loop=\"$templateIds\" value=\"$templateId\">\n		<xf:hiddenval name=\"template_ids[]\">{$templateId}</xf:hiddenval>\n	</xf:foreach>\n	<xf:foreach loop=\"$propertyIds\" value=\"$propertyId\">\n		<xf:hiddenval name=\"property_ids[]\">{$propertyId}</xf:hiddenval>\n	</xf:foreach>\n</xf:form>', 0x[encoded data, 14028 characters], 0x5846, 2000010, '2.0.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(401, 0x61646d696e, 0x7374796c655f70726f706572746965732e6c657373, 0, '@_stylePropertiesInputWidth: 300px;\n\n.cssCustomHighlight\n{\n	.hint\n	{\n		display: none;\n	}\n\n	&.cssCustomHighlight--custom\n	{\n		color: red;\n\n		.hint.hint--custom\n		{\n			display: unset;\n		}\n	}\n\n	&.cssCustomHighlight--inherited\n	{\n		color: orange;\n\n		.hint.hint--inherited\n		{\n			display: unset;\n		}\n	}\n\n	&.cssCustomHighlight--added\n	{\n		color: green;\n\n		.hint.hint--added\n		{\n			display: unset;\n		}\n	}\n}\n\n.cssPropertyWrapper\n{\n	.formRow-hint--customState\n	{\n		float: right;\n\n		> span\n		{\n			font-size: @xf-fontSizeSmallest;\n			font-weight: @xf-fontWeightHeavy;\n			vertical-align: .3em;\n		}\n	}\n\n	> h3.block-header\n	{\n		display: grid;\n		grid-template-columns: 1fr auto;\n\n		&::before,\n		&::after\n		{\n			display: none;\n		}\n	}\n}\n\n.cssPropertyDescription\n{\n	.m-clearFix();\n\n	font-size: @xf-fontSizeSmall;\n	color: @xf-textColorDimmed;\n}\n\n.cssProperty\n{\n	margin: 0;\n	padding: 0;\n	list-style: none;\n	display: flex;\n	flex-wrap: wrap;\n\n	> li\n	{\n		display: inline-block;\n		vertical-align: top;\n		margin-top: @xf-paddingLargest;\n		margin-right: 20px;\n		max-width: 100%;\n	}\n}\n\n.cssPropertyExtra\n{\n	.cssPropertyHeader\n	{\n		margin-bottom: 3px;\n	}\n\n	.input,\n	.codeEditor\n	{\n		width: 450px;\n		max-width: 100%;\n	}\n}\n\n.m-cssPropertyHeaderText()\n{\n	font-size: @xf-fontSizeLarge;\n	font-weight: @xf-fontWeightNormal;\n	color: @xf-textColorFeature;\n}\n\n.cssPropertyHeader\n{\n	margin: 0;\n	padding: 0;\n	.m-cssPropertyHeaderText();\n	padding-bottom: 2px;\n	border-bottom: 1px solid @xf-borderColor;\n}\n\n.cssPropertyRevert\n{\n	font-size: @xf-fontSizeSmaller;\n	float: right;\n}\n\ntable.cssPropertySet\n{\n	border: none;\n	border-spacing: 0;\n	border-collapse: collapse;\n\n	td\n	{\n		padding: 3px;\n\n		&:first-child\n		{\n			padding-left: 0;\n		}\n\n		&:last-child\n		{\n			padding-right: 0;\n		}\n	}\n}\n\n.cssPropertySet-headerRow\n{\n	th\n	{\n		font-size: @xf-fontSizeSmaller;\n		font-weight: @xf-fontWeightNormal;\n		text-align: left;\n		vertical-align: baseline;\n		padding: 0 4px;\n\n		&.cssPropertySet-headerSetLabel\n		{\n			.m-cssPropertyHeaderText();\n			padding-left: 0;\n			padding-right: 6px;\n		}\n	}\n\n	&.cssPropertySet-headerRow--separated th\n	{\n		border-bottom: 1px solid @xf-borderColor;\n		padding-bottom: 2px;\n	}\n}\n\n.cssPropertySet-rowLabel\n{\n	font-size: @xf-fontSizeSmall;\n	font-weight: @xf-fontWeightNormal;\n	text-align: right;\n}\n\n.input\n{\n	&.input--cssProp\n	{\n		font-size: @xf-fontSizeSmall;\n		padding: @xf-paddingSmall;\n	}\n\n	&.input--cssLength\n	{\n		text-align: right;\n		width: 120px;\n	}\n\n	&.input--colorWidthMatched\n	{\n		width: @_stylePropertiesInputWidth;\n		max-width: 100%;\n	}\n\n	.p-styleProperties &.input--number\n	{\n		width: @_stylePropertiesInputWidth;\n		max-width: 100%;\n		text-align: left;\n\n		&.js-numberBoxTextInput\n		{\n			width: (@_stylePropertiesInputWidth - 70px);\n		}\n	}\n}\n\n.p-styleProperties .inputGroup--color.inputGroup--color--showTxt\n{\n	flex: 1 1 50%;\n	display: grid;\n	gap: @xf-paddingSmall;\n	grid-template-columns: 1fr 1fr 1fr 4em;\n	grid-template-areas:\n		\'txt txt txt swatch\'\n		\'h s l swatch\';\n\n	input[type=text]\n	{\n		grid-area: txt;\n\n		& + .inputGroup-text\n		{\n			display: contents;\n\n			.colorPickerBox\n			{\n				width: unset;\n				height: unset;\n				grid-area: swatch;\n				border-radius: 4px;\n\n				&.is-unknown\n				{\n					&::after\n					{\n						font-size: @xf-fontSizeLargest;\n						line-height: 52px;\n					}\n				}\n			}\n		}\n	}\n\n	&.inputGroup.inputGroup--joined .input\n	{\n		border-radius: 0;\n	}\n\n	.inputGroup-text--hslTxt\n	{\n		font-size: @xf-fontSizeSmallest;\n		color: @xf-linkColor;\n\n		> *::before\n		{\n			color: @xf-textColorMuted;\n		}\n\n		> .js-hslTxt-h::before { content: \'H: \'; }\n		> .js-hslTxt-s::before { content: \'S: \'; }\n		> .js-hslTxt-l::before { content: \'L: \'; }\n	}\n}\n\n.p-styleProperties .formRow--variationHeadings\n{\n	> dt,\n	> dd\n	{\n		padding: 0;\n	}\n\n	ul\n	{\n		display: flex;\n		font-size: @xf-fontSizeSmall;\n		font-variant: all-small-caps;\n\n		li\n		{\n			flex: 1 1 auto;\n			padding: @xf-paddingSmall @xf-formRowPaddingHOuter 0;\n		}\n	}\n}\n\n.inputChoices\n{\n	&.inputChoices--cssTextOptions\n	{\n		> li\n		{\n			display: inline-block;\n			margin-bottom: 0;\n			margin-right: 10px;\n			font-size: @xf-fontSizeSmall;\n\n			&:last-child\n			{\n				margin-right: 0;\n			}\n		}\n	}\n}\n\n.formRow\n{\n	.formRow-revert\n	{\n		margin-top: @xf-paddingMedium;\n		font-size: @xf-fontSizeSmaller;\n	}\n\n	.formRow-hint--customState\n	{\n		display: block;\n		font-size: @xf-fontSizeSmallest;\n\n		.iconic-label\n		{\n			font-weight: @xf-fontWeightHeavy;\n		}\n	}\n}\n\n@media (max-width: @xf-responsiveNarrow)\n{\n	.p-styleProperties .inputGroup--color,\n	.input.input--colorWidthMatched\n	{\n		width: 200px;\n	}\n\n	.cssProperty\n	{\n		display: block;\n\n		> li\n		{\n			display: block;\n			margin-right: 0;\n		}\n	}\n\n	.cssPropertySet\n	{\n		width: 100%;\n\n		.input--cssLength\n		{\n			width: 80px;\n		}\n\n		.inputGroup.inputGroup--colorSmall\n		{\n			width: 130px;\n		}\n\n		.colorPickerBox\n		{\n			width: 30px;\n		}\n	}\n\n	.cssPropertyExtra .input,\n	.cssPropertyExtra .codeEditor\n	{\n		width: calc(~\'100vw - 45px\');\n	}\n}', 0x[encoded data, 10090 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(402, 0x61646d696e, 0x7374796c655f70726f70657274795f65646974, 0, '<xf:if is=\"$property.isInsert()\">\n	<xf:title>{{ phrase(\'add_property\') }}</xf:title>\n<xf:else />\n	<xf:title>{{ phrase(\'edit_property:\') }} {$property.master_title}</xf:title>\n</xf:if>\n\n<xf:pageaction if=\"$property.isUpdate()\">\n	<xf:button href=\"{{ link(\'style-properties/delete\', $property) }}\" icon=\"delete\" overlay=\"true\" />\n</xf:pageaction>\n\n<xf:form action=\"{{ link(\'style-properties//save\', $property) }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:formrow label=\"{{ phrase(\'style\') }}\">\n\n				{$style.title}\n				<xf:hiddenval name=\"style_id\">{$style.style_id}</xf:hiddenval>\n			</xf:formrow>\n\n			<xf:textboxrow name=\"property_name\" value=\"{$property}\"\n				label=\"{{ phrase(\'property_name\') }}\"\n				explain=\"{{ phrase(\'this_is_how_you_will_refer_to_property_in_template\') }}\"\n				dir=\"ltr\" />\n\n			<xf:textboxrow name=\"title\" value=\"{$property.master_title}\"\n				maxlength=\"{{ max_length($property, \'title\') }}\"\n				label=\"{{ phrase(\'title\') }}\" />\n\n			<xf:textarearow name=\"description\" value=\"{$property.master_description}\" autosize=\"true\"\n				maxlength=\"{{ max_length($property, \'description\') }}\"\n				label=\"{{ phrase(\'description\') }}\" />\n\n			<hr class=\"formRowSep\" />\n\n			<xf:radiorow name=\"property_type\" value=\"{{ $property.property_type ?: \'css\' }}\"\n				label=\"{{ phrase(\'type\') }}\">\n\n				<xf:option value=\"css\" data-xf-init=\"disabler\" data-container=\".js-propertyTypeCss\" data-hide=\"true\">\n					CSS</xf:option>\n				<xf:option value=\"value\" data-xf-init=\"disabler\" data-container=\".js-propertyTypeValue\" data-hide=\"true\">\n					{{ phrase(\'value\') }}</xf:option>\n\n			</xf:radiorow>\n\n			<div class=\"js-propertyTypeCss\">\n				<xf:checkboxrow name=\"css_components\" value=\"{{ $property.css_components }}\" listclass=\"listColumns\"\n					label=\"{{ phrase(\'css_components\') }}\">\n\n					<xf:option value=\"text\">{{ phrase(\'text\') }}</xf:option>\n					<xf:option value=\"background\">{{ phrase(\'background\') }}</xf:option>\n					<xf:option value=\"border\">{{ phrase(\'border\') }}</xf:option>\n					<xf:option value=\"border_radius\">{{ phrase(\'border_radius\') }}</xf:option>\n					<xf:option value=\"border_width_simple\">{{ phrase(\'simple_border_width\') }}</xf:option>\n					<xf:option value=\"border_color_simple\">{{ phrase(\'simple_border_color\') }}</xf:option>\n					<xf:option value=\"border_radius_simple\">{{ phrase(\'simple_border_radius\') }}</xf:option>\n					<xf:option value=\"padding\">{{ phrase(\'padding\') }}</xf:option>\n					<xf:option value=\"extra\">{{ phrase(\'extra\') }}</xf:option>\n					<xf:explain>{{ phrase(\'css_components_explain\') }}</xf:explain>\n				</xf:checkboxrow>\n			</div>\n			<div class=\"js-propertyTypeValue\">\n				<xf:radiorow name=\"value_type\" value=\"{{ $property.value_type ?: \'string\' }}\" listclass=\"listColumns\"\n					label=\"{{ phrase(\'value_type\') }}\">\n\n					<xf:option value=\"string\">{{ phrase(\'string\') }}</xf:option>\n					<xf:option value=\"color\">{{ phrase(\'color\') }}</xf:option>\n					<xf:option value=\"unit\">{{ phrase(\'unit\') }}</xf:option>\n					<xf:option value=\"number\">{{ phrase(\'number\') }}</xf:option>\n					<xf:option value=\"boolean\">{{ phrase(\'boolean\') }}</xf:option>\n					<xf:option value=\"radio\">{{ phrase(\'radio_buttons\') }}</xf:option>\n					<xf:option value=\"select\">{{ phrase(\'select_menu\') }}</xf:option>\n					<xf:option value=\"template\">{{ phrase(\'template\') }}</xf:option>\n				</xf:radiorow>\n\n				<xf:if is=\"!$property.exists() || $property.canHaveVariations()\">\n					<xf:checkboxrow>\n						<xf:option name=\"has_variations\" checked=\"{$property.has_variations}\"\n							label=\"{{ phrase(\'enable_variations\') }}\"\n							hint=\"{{ phrase(\'enable_variations_hint\') }}\" />\n					</xf:checkboxrow>\n				</xf:if>\n\n				<xf:textarearow name=\"value_parameters\" value=\"{$property}\" autosize=\"true\"\n					label=\"{{ phrase(\'value_formatting_parameters\') }}\"\n					code=\"true\" />\n\n				<xf:textboxrow name=\"depends_on\" value=\"{$property}\"\n					label=\"{{ phrase(\'depends_on\') }}\"\n					explain=\"{{ phrase(\'depends_on_explain\') }}\"\n					dir=\"ltr\" />\n\n				<xf:textboxrow name=\"value_group\" value=\"{$property}\"\n					label=\"{{ phrase(\'value_grouping\') }}\"\n					explain=\"{{ phrase(\'value_grouping_explain\') }}\"\n					dir=\"ltr\" />\n			</div>\n\n			<hr class=\"formRowSep\" />\n\n			<xf:selectrow name=\"group_name\" value=\"{$property}\"\n				label=\"{{ phrase(\'group\') }}\">\n				<xf:option value=\"\">&nbsp;</xf:option>\n				<xf:foreach loop=\"$groups\" value=\"$group\">\n					<xf:option value=\"{$group.group_name}\">{$group.title}</xf:option>\n				</xf:foreach>\n			</xf:selectrow>\n\n			<xf:macro id=\"display_order_macros::row\" arg-value=\"{$property}\" />\n\n			<xf:if is=\"$style.style_id == 0\">\n				<xf:macro id=\"addon_macros::addon_edit\" arg-addOnId=\"{$property.addon_id}\" />\n			</xf:if>\n		</div>\n		<xf:submitrow icon=\"save\" sticky=\"true\" />\n	</div>\n</xf:form>', 0x[encoded data, 78506 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(403, 0x61646d696e, 0x7374796c655f70726f70657274795f67726f75705f65646974, 0, '<xf:if is=\"$group.isInsert()\">\n	<xf:title>{{ phrase(\'add_property_group\') }}</xf:title>\n<xf:else />\n	<xf:title>{{ phrase(\'edit_property_group:\') }} {$group.master_title}</xf:title>\n</xf:if>\n\n<xf:pageaction if=\"$group.isUpdate()\">\n	<xf:button href=\"{{ link(\'style-properties/groups/delete\', $group) }}\" icon=\"delete\" overlay=\"true\" />\n</xf:pageaction>\n\n<xf:form action=\"{{ link(\'style-properties/groups/save\', $group) }}\" ajax=\"true\" class=\"block\">\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:formrow label=\"{{ phrase(\'style\') }}\">\n				{$style.title}\n				<xf:hiddenval name=\"style_id\">{$style.style_id}</xf:hiddenval>\n			</xf:formrow>\n\n			<xf:textboxrow name=\"group_name\" value=\"{$group}\"\n				label=\"{{ phrase(\'group_name\') }}\"\n				explain=\"{{ phrase(\'this_is_unique_identifier_for_this_group\') }}\"\n				dir=\"ltr\" />\n\n			<xf:textboxrow name=\"title\" value=\"{$group.master_title}\" maxlength=\"{{ max_length($group, \'title\') }}\"\n				label=\"{{ phrase(\'title\') }}\" />\n\n			<xf:textarearow name=\"description\" value=\"{$group.master_description}\" maxlength=\"{{ max_length($group, \'description\') }}\"\n				label=\"{{ phrase(\'description\') }}\" />\n\n			<xf:macro id=\"display_order_macros::row\" arg-value=\"{$group}\" />\n\n			<xf:if is=\"$style.style_id == 0\">\n				<xf:macro id=\"addon_macros::addon_edit\" arg-addOnId=\"{$group.addon_id}\" />\n			</xf:if>\n		</div>\n		<xf:submitrow icon=\"save\" sticky=\"true\" />\n	</div>\n</xf:form>', 0x[encoded data, 25036 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(404, 0x61646d696e, 0x7374796c655f70726f70657274795f67726f75705f6c697374, 0, '<xf:title>{$style.title} - {{ phrase(\'style_properties\') }}</xf:title>\n\n<xf:page option=\"breadcrumbPath\" value=\"styles\" />\n<xf:page option=\"section\" value=\"styleProperties\" />\n\n<xf:pageaction if=\"$style.canEditStylePropertyDefinitions()\">\n	<xf:button href=\"{{ link(\'style-properties/groups/add\', null, {\'style_id\': $style.style_id}) }}\" icon=\"add\">\n		{{ phrase(\'add_property_group\') }}\n	</xf:button>\n</xf:pageaction>\n\n<div class=\"block\">\n	<div class=\"block-outer\">\n		<xf:macro id=\"style_macros::style_change_menu\"\n			arg-styleTree=\"{$styleTree}\"\n			arg-currentStyle=\"{$style}\"\n			arg-route=\"styles/style-properties\" />\n	</div>\n	<div class=\"block-container\">\n		<div class=\"block-body\">\n			<xf:datalist>\n				<xf:foreach loop=\"$groups\" value=\"$group\">\n					<xf:set var=\"$canEdit\" value=\"{{ $group.canEdit() && $group.style_id == $style.style_id }}\" />\n					<xf:datarow\n						label=\"{$group.title}\"\n						href=\"{{ link(\'styles/style-properties/group\', $style, {\'group\': $group.group_name}) }}\"\n						explain=\"{$group.description}\"\n						delete=\"{{ $canEdit ? link(\'style-properties/groups/delete\', $group) : false }}\"\n						hash=\"{$group.group_name}\"\n						colspan=\"{{ $canEdit ? 1 : 3 }}\">\n\n						<xf:if is=\"$canEdit\">\n							<xf:action href=\"{{ link(\'style-properties/groups/edit\', $group) }}\">{{ phrase(\'edit\') }}</xf:action>\n						</xf:if>\n					</xf:datarow>\n				</xf:foreach>\n\n				<xf:if is=\"$hasUngrouped\">\n					<xf:datarow\n						label=\"{{ phrase(\'ungrouped_properties\') }}\"\n						href=\"{{ link(\'styles/style-properties/group\', $style, {\'ungrouped\': 1}) }}\"\n						colspan=\"3\" />\n				</xf:if>\n			</xf:datalist>\n		</div>\n	</div>\n</div>', 0x[encoded data, 29188 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
INSERT INTO `xf_template` (`template_id`, `type`, `title`, `style_id`, `template`, `template_parsed`, `addon_id`, `version_id`, `version_string`, `last_edit_date`) VALUES
(405, 0x61646d696e, 0x7374796c655f70726f70657274795f67726f75705f76696577, 0, '<xf:title>{{ $group ? $group.title : phrase(\'ungrouped_properties\') }}</xf:title>\n<xf:if is=\"$group\">\n	<xf:description>{$group.description}</xf:description>\n</xf:if>\n\n<xf:js src=\"xf/style_edit.js\" min=\"1\" />\n\n<xf:page option=\"breadcrumbPath\" value=\"styles\" />\n<xf:page option=\"section\" value=\"styleProperties\" />\n\n<xf:breadcrumb href=\"{{ link(\'styles/style-properties\', $style) }}\">{$style.title} - {{ phrase(\'style_properties\') }}</xf:breadcrumb>\n\n<xf:pageaction if=\"$style.canEditStylePropertyDefinitions() && $group\">\n	<xf:button href=\"{{ link(\'style-properties/add\', null, {\'style_id\': $style.style_id, \'group\': $group.group_name}) }}\"\n		icon=\"add\">\n		{{ phrase(\'add_property\') }}\n	</xf:button>\n\n	<xf:button href=\"{{ link(\'style-properties/groups/edit\', $group) }}\" data-xf-click=\"overlay\">\n		{{ phrase(\'edit\') }}\n	</xf:button>\n</xf:pageaction>\n\n<xf:if is=\"$propertyMap is not empty\">\n	<xf:form action=\"{{ link(\'styles/style-properties/group\', $style, $urlParams) }}\"\n		class=\"block p-styleProperties\"\n		ajax=\"true\"\n		data-redirect=\"false\"\n		data-json-name=\"json\" data-json-opt-in=\"properties,properties_listed\"\n		data-xf-init=\"style-properties-update\"\n		autocomplete=\"off\">\n\n		<div class=\"block-outer\">\n			<div class=\"block-outer-main\">\n				<xf:macro id=\"style_macros::style_change_menu\"\n					arg-styleTree=\"{$styleTree}\"\n					arg-currentStyle=\"{$style}\"\n					arg-route=\"styles/style-properties/group\"\n					arg-routeParams=\"{{ {\'group\': $group.group_name} }}\" />\n\n				<xf:button class=\"button--link menuTrigger\" data-xf-click=\"menu\" aria-expanded=\"false\" aria-haspopup=\"true\">{{ phrase(\'group:\') }} {$group.title}</xf:button>\n				<div class=\"menu\" data-menu=\"menu\" aria-hidden=\"true\">\n					<div class=\"menu-content\">\n						<h3 class=\"menu-header\">{{ phrase(\'groups\') }}</h3>\n						<div class=\"menu-scroller\">\n							<xf:foreach loop=\"$groups\" value=\"$_group\">\n								<a href=\"{{ link(\'styles/style-properties/group\', $style, {\'group\': $_group.group_name}) }}\"\n									class=\"menu-linkRow {{ ($group && $group.group_name == $_group.group_name) ? \'is-selected\' : \'\' }}\">{$_group.title}</a>\n							</xf:foreach>\n							<xf:if is=\"$hasUngrouped\">\n								<a href=\"{{ link(\'styles/style-properties/group\', $style, {\'ungrouped\': 1}) }}\"\n									class=\"menu-linkRow {{ !$group ? \'is-selected\' : \'\' }}\">\n									{{ phrase(\'ungrouped_properties\') }}</a>\n							</xf:if>\n						</div>\n					</div>\n				</div>\n			</div>\n		</div>\n		<div class=\"block-container\">\n			<xf:set var=\"$hasActive\" value=\"{{ false }}\" />\n			<xf:if contentcheck=\"true\">\n				<div data-toggle-wrapper=\"1\">\n					<h3 class=\"block-header\">\n						<span class=\"collapseTrigger collapseTrigger--block is-active\"\n							data-xf-click=\"toggle\"\n							data-target=\"< :up :next\"\n							data-xf-init=\"toggle-storage\"\n							data-storage-key=\"sp-settings-{$group.group_name}\">\n							{{ phrase(\'settings\') }}\n						</span>\n					</h3>\n					<div class=\"block-body block-body--collapsible is-active\">\n					<xf:contentcheck>\n						<xf:set var=\"$propValueGroup\" value=\"{{ null }}\" />\n						<xf:foreach loop=\"$propertyMap\" value=\"$map\" if=\"{$map.Property.property_type} == \'value\'\">\n							<xf:if is=\"$propValueGroup != $map.Property.value_group\">\n								<xf:if is=\"$map.Property.value_group_title\">\n									<span class=\"u-anchorTarget\" id=\"_{$map.Property.value_group}\"></span>\n									<div class=\"block-formSectionHeader\">\n										<span class=\"block-formSectionHeader-aligner\">\n											{$map.Property.value_group_title}\n										</span>\n									</div>\n								<xf:else />\n									<hr class=\"formRowSep\" />\n								</xf:if>\n								<xf:if is=\"$style.enable_variations\">\n									<xf:set var=\"$hasVariations\" value=\"{{ false }}\" />\n									<xf:foreach loop=\"$propertyMap\" value=\"$_map\" if=\"\n										{$_map.Property.property_type} == \'value\'\n										&& {$_map.Property.has_variations}\n										&& {$_map.Property.display_order} >= {$map.Property.display_order}\">\n										<xf:set var=\"$hasVariations\" value=\"{{ true }}\" />\n									</xf:foreach>\n									<xf:if is=\"$hasVariations == true\">\n										<dl class=\"formRow formRow--variationHeadings\">\n											<dt></dt>\n											<dd>\n												<ul class=\"listPlain u-muted\">\n													<xf:foreach loop=\"$style.getVariations()\" value=\"$variation\">\n														<li>{{ phrase_dynamic(\'style_variation.\' . $variation) }}</li>\n													</xf:foreach>\n												</ul>\n											</dd>\n										</dl>\n									</xf:if>\n								</xf:if>\n							</xf:if>\n							<xf:macro id=\"style_property_macros::property_edit\"\n								arg-property=\"{$map.Property}\"\n								arg-definitionEditable=\"{{ $map.isDefinitionEditable() }}\"\n								arg-customizationState=\"{{ $map.getCustomizationState() }}\"\n								arg-enableVariations=\"{$style.enable_variations}\" />\n							<xf:set var=\"$hasActive\" value=\"{{ true }}\" />\n							<xf:set var=\"$propValueGroup\" value=\"{$map.Property.value_group}\" />\n						</xf:foreach>\n					</xf:contentcheck>\n					</div>\n				</div>\n			</xf:if>\n\n			<xf:foreach loop=\"$propertyMap\" value=\"$map\" if=\"{$map.Property.property_type} == \'css\'\">\n				<xf:macro id=\"style_property_macros::property_edit\"\n					arg-property=\"{$map.Property}\"\n					arg-definitionEditable=\"{{ $map.isDefinitionEditable() }}\"\n					arg-customizationState=\"{{ $map.getCustomizationState() }}\"\n					arg-isActive=\"{{ $hasActive ? false : true }}\" />\n				<xf:set var=\"$hasActive\" value=\"{{ true }}\" />\n			</xf:foreach>\n\n			<xf:submitrow rowtype=\"simple\" icon=\"save\" sticky=\"true\" />\n		</div>\n	</xf:form>\n<xf:else />\n	<div class=\"blockMessage\">{{ phrase(\'this_group_does_not_have_any_style_properties\') }}</div>\n</xf:if>\n\n<xf:macro id=\"public:color_picker_macros::color_picker_scripts\" arg-colorData=\"{$colorData}\" />', 0x[encoded data, 84530 characters], 0x5846, 2030010, '2.3.0 Alpha', 1748686057);
