{# HyperWeave Icon Frame — Paradigm-dispatched (Principle 26, Session 2A+2B).

   Session 2A+2B migration: dispatch by `paradigm` name declared in
   `genome.paradigms.icon`. Four `icon_variant` context values still select
   the shape (circular vs square) and the paradigm selects the treatment
   (brutalist flat vs chrome specular).

   Built-in paradigms:
     "default" → brutalist partial (flat, sharp frame)
     "chrome"  → chrome partial (binary opposition, envelope gradient)

   FOUR frame variants selected by icon_variant context var:
     1. brutalist-circular  (brutalist genome, circular shape)
     2. brutalist-square    (brutalist genome, square shape)
     3. binary-circular     (chrome genome, circular shape — binary-opposition treatment)
     4. binary-square       (chrome genome, square shape — binary-opposition treatment)
   Extends document.svg.j2. #}
{% extends "document.svg.j2" %}

{% block defs %}
{% include "frames/icon/" ~ (paradigm | default("default")) ~ "-defs.j2" %}
{% endblock %}

{% block content %}
{% set icon_size = width | default(64) %}

{% include "frames/icon/" ~ (paradigm | default("default")) ~ "-content.j2" %}

{# Border motion SMIL overlay (shared across all paradigms) #}
{% if motion_border_defs | default('') %}
<defs>{{ motion_border_defs | safe }}</defs>
{% endif %}
{% if motion_border_overlay | default('') %}
{{ motion_border_overlay | safe }}
{% endif %}
{% endblock %}
