{% from "components/accordion/macro.njk" import accordion %}
{% from "components/back-link/macro.njk" import backLink %}
{% from "components/breadcrumbs/macro.njk" import breadcrumbs %}
{% from "components/button/macro.njk" import button %}
{% from "components/character-count/macro.njk" import characterCount %}
{% from "components/checkboxes/macro.njk" import checkboxes %}
{% from "components/date-input/macro.njk" import dateInput %}
{% from "components/details/macro.njk" import details %}
{% from "components/error-message/macro.njk" import errorMessage %}
{% from "components/error-summary/macro.njk" import errorSummary %}
{% from "components/fieldset/macro.njk" import fieldset %}
{% from "components/file-upload/macro.njk" import fileUpload %}
{% from "components/footer/macro.njk" import footer %}
{% from "components/header/macro.njk" import header %}
{% from "components/hint/macro.njk" import hint %}
{% from "components/input/macro.njk" import input %}
{% from "components/inset-text/macro.njk" import insetText %}
{% from "components/label/macro.njk" import label %}
{% from "components/panel/macro.njk" import panel %}
{% from "components/phase-banner/macro.njk" import phaseBanner %}
{% from "components/radios/macro.njk" import radios %}
{% from "components/select/macro.njk" import select %}
{% from "components/skip-link/macro.njk" import skipLink %}
{% from "components/summary-list/macro.njk" import summaryList %}
{% from "components/table/macro.njk" import table %}
{% from "components/tabs/macro.njk" import tabs %}
{% from "components/tag/macro.njk" import tag %}
{% from "components/textarea/macro.njk" import textarea %}
{% from "components/warning-text/macro.njk" import warningText %}
{% macro zashiki(params) %}
  {% if params.zashiki %}
    {#
      Top
    #}
    {% call fieldset (params.zashiki.group) %}
{{ zashiki(params.zashiki.fields) }}
    {% endcall %}
  {% else %}
    {#
      Below
    #}
    {% if params.component %}
      {% set field = params %}
{%- include "./component.njk" -%}

    {% elif params.type === 'string' %}
      {% set field = params %}
{%- include "./string.njk" -%}

    {% elif params.type === 'number' %}
      {% set field = params %}
{%- include "./number.njk" -%}

    {% elif params.type === 'object' %}
{%- include "./object.njk" -%}

    {% elif params.type === 'array' %}
{%- include "./array.njk" -%}

    {% elif params.type === 'boolean' %}
      {% set field = params %}
{%- include "./boolean.njk" -%}

    {% elif params.type === 'null' %}
      {% set field = params %}
{%- include "./null.njk" -%}

    {% endif %}
  {% endif %}
{% endmacro %}
