<!DOCTYPE html>
<html lang="{{ app.request.locale|slice(0, 2) }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
{% block seo_title %}
{{ sylius_template_event('dedi_sylius_seo_plugin.title', { resource: product ?? taxon ?? vendor ?? page ?? sylius.channel }) }}
{% endblock %}
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png?v=1.0.0">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png?v=1.0.0">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png?v=1.0.0">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon/favicon-96x96.png?v=1.0.0">
<link rel="icon" type="image/svg+xml" href="/favicon/favicon.svg?v=1.0.0">
<link rel="mask-icon" href="/favicon/safari-pinned-tab.svg?v=1.0.0" color="#5bbad5">
<link rel="shortcut icon" href="/favicon/favicon.ico?v=1.0.0">
<meta name="theme-color" content="#ffffff">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
{% include '@SyliusShop/_links.html.twig' %}
{% include '@SyliusShop/_clarity.html.twig' %}
{% block seo_metatags %}
{{ sylius_template_event('dedi_sylius_seo_plugin.metatags', { resource: product ?? taxon ?? vendor ?? page ?? sylius.channel }) }}
{{ sylius_template_event('dedi_sylius_seo_plugin.rich_snippets') }}
{% if is_noindex_path(app.request.pathinfo, app.request.query.all) %}
<meta name="robots" content="noindex, nofollow">
{% endif %}
{% set resourceToUse = taxon is defined ? taxon : (vendor is defined ? vendor : (page is defined ? page : null)) %}
{% if resourceToUse is not null %}
<script type="application/ld+json">
{{ generate_schema_markup(resourceToUse) | json_encode(constant('JSON_PRETTY_PRINT')) | replace({'\\/':'/'}) | raw }}
</script>
{% endif %}
{% endblock %}
{% block stylesheets %}
{{ sylius_template_event('sylius.shop.layout.stylesheets') }}
<style>
.tw.flag {
visibility: hidden !important;
}
</style>
{% endblock %}
{{ sylius_template_event('sylius.shop.layout.head') }}
</head>
<body class="pushable">
{{ render_esi(path('ch_cookie_consent.show_if_cookie_consent_not_set', { 'locale' : app.request.locale })) }}
{{ sylius_template_event('sylius.shop.layout.before_body') }}
{% block messages %}
<div class="hyf-messages"></div>
{% endblock %}
{% block sidebar %}
<div class="ui right wide sidebar vertical menu overlay mobile-sidebar">
{{ sylius_template_event('sylius.shop.layout.sidebar') }}
</div>
{% endblock %}
{% block accountSidebar %}
{% if app.user != null %}
<div class="ui left wide sidebar vertical menu overlay mobile-account-sidebar">
{% include 'Context/Vendor/Menu/_mobileMenu.html.twig' %}
</div>
{% endif %}
{% endblock %}
<div class="pusher" data-route="{{ app.request.get('_route') }}">
{% block top %}
<div id="menu" class="top-menu bg-white">
<div class="ui container">
<div class="top-bar">
{% include "@SyliusShop/Layout/Header/_logo.html.twig" %}
{{ sylius_template_event('sylius.shop.layout.topbar') }}
</div>
</div>
</div>
{% endblock %}
{% block header %}
<div id="menu-categories" class="bg-topaz-100">
<div class="ui container">
{% include '@SyliusShop/Layout/Header/_menu.html.twig' %}
</div>
</div>
{% endblock %}
{# AI Search Bar - static in introduction on homepage, floating on all other pages #}
{% set currentRoute = app.request.get('_route') %}
{% set isHomepage = currentRoute == 'sylius_shop_homepage' %}
{% set isBot = app.request.attributes.get('is_bot', false) %}
{% set hideFloatingSearch =
'/account/' in app.request.pathInfo or
currentRoute starts with 'bitbag_sylius_organization_plugin_shop_account_' or
currentRoute starts with 'sylius_shop_account_' or
currentRoute starts with 'sylius_shop_cart_' or
currentRoute starts with 'sylius_shop_checkout_' or
currentRoute starts with 'sylius_shop_order_' or
currentRoute == 'app_crfq_create' %}
{% if isHomepage %}
{% include '@SyliusShop/Homepage/introduction.html.twig' %}
<div class="ui hidden divider"></div>
{% endif %}
{% if not is_mobile() %}
<div class="ui hidden divider"></div>
{% endif %}
<div class="ui container">
{% include '@SyliusShop/_flashes.html.twig' %}
{{ sylius_template_event('sylius.shop.layout.before_content') }}
{% block content %}
{% endblock %}
{{ sylius_template_event('sylius.shop.layout.after_content') }}
</div>
{% if not isHomepage and not isBot and not hideFloatingSearch %}
{% include '@SyliusShop/Homepage/_aiSearch.html.twig' with {'floating': true} %}
{% endif %}
{% block footer %}
{% include '@SyliusShop/_footer.html.twig' %}
{% endblock %}
</div>
{% block javascripts %}
{{ sylius_template_event('sylius.shop.layout.javascripts') }}
<script>
// Make compare variables globally available for webpack bundled scripts
window.addToCompareSuccessTitle = '{{ 'sylius.ui.success'|trans }}';
window.addToCompareSuccess = '{{ 'app.product_compare.added'|trans }}';
window.addToCompareErrorTitle = '{{ 'sylius.ui.error'|trans }}';
window.addToCompareError = '{{ 'app.product_compare.fail'|trans }}';
window.visitComparisonPage = '{{ 'app.ui.visit_comparison_page'|trans }}';
window.browseCompare = '{{ 'app.ui.product.card.in_comparison'|trans }}';
window.comparisonPageUrl = '{{ path('app_shop_product_compare_show') }}';
window.addToCompareUrl = '{{ path('app_shop_product_compare_add_to_compare', {'productId': '{id}'}) }}';
window.checkSvgPath = '{{ asset('build/shop/images/check.svg', 'shop') }}';
// Wishlist global variables
window.addToListErrorTitle = '{{ 'sylius.ui.error'|trans }}';
window.addToListError = '{{ 'app.ui.failed_to_add_to_list'|trans }}';
window.inList = '{{ 'sylius.ui.added_to_list'|trans }}';
window.listPageUrl = '{{ path('bitbag_sylius_wishlist_plugin_shop_locale_wishlist_list_products') }}';
// Password validation translations
window.translations = window.translations || {};
window.translations.passwordsMustMatch = "{{ 'app.ui.form.passwords_must_match'|trans|e('js') }}";
window.translations.passwordStrength = {
enterPass: "{{ 'app.ui.form.password_strength.enter_pass'|trans|e('js') }}",
shortPass: "{{ 'app.ui.form.password_strength.short_pass'|trans|e('js') }}",
containsField: "{{ 'app.ui.form.password_strength.contains_field'|trans|e('js') }}",
reallyInsecure: "{{ 'app.ui.form.password_strength.really_insecure'|trans|e('js') }}",
weak: "{{ 'app.ui.form.password_strength.weak'|trans|e('js') }}",
medium: "{{ 'app.ui.form.password_strength.medium'|trans|e('js') }}",
strong: "{{ 'app.ui.form.password_strength.strong'|trans|e('js') }}"
};
</script>
{# Initialize tooltips globally #}
<script>
$(document).ready(function () {
$("[data-content],[data-html]").each(function () {
var position = $(this).attr("data-position") || "bottom center";
var opts = {hoverable: true, position: position};
if ($(this).hasClass('custom-tooltip')) {
opts.className = { popup: 'ui popup custom-tooltip-popup' };
}
$(this).popup(opts);
});
});
</script>
{% endblock %}
{% block confirmationModal %}
{% include '@SyliusUi/Modal/_confirmation.html.twig' %}
{% endblock %}
{{ sylius_template_event('sylius.shop.layout.after_body') }}
</body>
</html>