Contains shared infrastructure for all coop services: - shared/ (factory, urls, user_loader, context, internal_api, jinja_setup) - models/ (User, Order, Calendar, Ticket, Product, Ghost CMS) - db/ (SQLAlchemy async session, base) - suma_browser/app/ (csrf, middleware, errors, authz, redis_cacher, payments, filters, utils) - suma_browser/templates/ (shared base layouts, macros, error pages) - static/ (CSS, JS, fonts, images) - alembic/ (database migrations) - config/ (app-config.yaml) - editor/ (Lexical editor Node.js build) - requirements.txt Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 lines
1.4 KiB
HTML
52 lines
1.4 KiB
HTML
{# templates/macros/layout.html #}
|
|
|
|
{% macro details(group = '', _class='') %}
|
|
<details
|
|
class="group{{group}} p-2 {{_class}}" data-toggle-group="mobile-panels">
|
|
{{ caller() }}
|
|
</details>
|
|
{%- endmacro %}
|
|
|
|
{% macro summary(id, _class=None, oob=False) %}
|
|
<summary>
|
|
<header class="z-50">
|
|
<div
|
|
id="{{id}}"
|
|
{% if oob %}
|
|
hx-swap-oob="true"
|
|
{% endif %}
|
|
class="{{'flex justify-between items-start gap-2' if not _class else _class}}">
|
|
{{ caller() }}
|
|
</div>
|
|
</header>
|
|
</summary>
|
|
{%- endmacro %}
|
|
|
|
{% macro filter_summary(id, current_local_href, search, search_count, hx_select, oob=True) %}
|
|
<summary class="bg-white/90">
|
|
<div class="flex flex-row items-start">
|
|
<div>
|
|
{% include '_types/blog/mobile/_filter/_hamburger.html' %}
|
|
</div>
|
|
<div
|
|
id="{{id}}"
|
|
class="flex-1 md:hidden grid grid-cols-12 items-center gap-3"
|
|
>
|
|
<div class="flex flex-col items-start gap-2">
|
|
{{ caller() }}
|
|
|
|
</div>
|
|
</div>
|
|
{% import '_types/browse/mobile/_filter/search.html' as s %}
|
|
{{ s.search(current_local_href, search, search_count, hx_select) }}
|
|
</div>
|
|
</summary>
|
|
{%- endmacro %}
|
|
|
|
|
|
{% macro menu(id, _class="") %}
|
|
<div id="{{id}}" hx-swap-oob="outerHTML" class="{{_class}}">
|
|
{{ caller() }}
|
|
</div>
|
|
{%- endmacro %}
|