{# One expense-account row from a loop-bound `row` view-model. All structure, wiring, and field names are literal here, built from `row.index` + the shared `urls`; only data (the Alpine x-data, db/id, errors, and the typeahead / location / money control contexts) comes from the view-model. The location cell (#account-location-N) swaps just itself on account change; the remove button swaps the whole #bulk-code-form. #}
{% with width="" x_data=row.account.x_data x_model=row.account.x_model key=row.account.key disabled=row.account.disabled a_xinit=row.account.a_xinit placeholder=row.account.placeholder hidden_attrs=row.account.hidden_attrs %}{% include "templates/components/typeahead.html" %}{% endwith %}

{{ row.account_error }}

{% with name=row.location.name variant="w-full" options=row.location.options %}{% include "templates/components/location-select.html" %}{% endwith %}

{{ row.location_error }}

{% with variant=row.pct.variant attrs=row.pct.attrs %}{% include "templates/components/money-input.html" %}{% endwith %}

{{ row.pct_error }}

{% include "templates/components/svg-x.html" %}