{#- The application shell, the template shell('app') names. It draws the menus from the framework's menu registry, menu_sections() in the sidebar and user_menu_sections() in the account menu, the entries features register in their init_feature, and opens the widget slots every application shell provides (layout.head.css, layout.header.menu, layout.navbar.items, layout.navbar.user, layout.footer, layout.scripts). A shell draws the registry or the menu slots, never both, or every entry of a feature that still fills its slot shows twice: the slots features filled before the registry are drawn only while the registry has nothing for the account, the menu of a product whose features do not register yet. -#} {%- macro slot(name) -%} {% for hook in get_template_hooks(name) %}{{ hook() | safe }} {% endfor %} {%- endmacro -%} {%- macro sidebar_section(section) -%} {% if section.label %}