Column metadata for the catalogue admin tables, keyed by scope
(:catalogues, :suppliers, :manufacturers). Pure data — cell and
card rendering live in the LiveView. Labels are zero-arity fns so they
resolve in the request's current locale.
For :detail_items / :detail_categories, the list also folds in
enabled extensions' contributed columns (PhoenixKitCatalogue.Extensions.columns/1)
— off by default, ids namespaced under the extension's key, and
carrying their own render fn (see extension_columns/1) since the
catalogue can't hardcode a case clause for a column it doesn't know
about.
Summary
Functions
This scope's extension-contributed columns, keyed by their (already
namespaced) id — the shape a cell renderer needs: %{id => %{label:, render:}}. Empty for scopes extensions don't contribute to.
Types
@type scope() ::
:catalogues
| :suppliers
| :manufacturers
| :attribute_groups
| :detail_items
| :detail_categories
Functions
This scope's extension-contributed columns, keyed by their (already
namespaced) id — the shape a cell renderer needs: %{id => %{label:, render:}}. Empty for scopes extensions don't contribute to.
Callers that render a table once per page (not once per row) should
fetch this ONCE and pass it down, the same discipline
CatalogueDetailLive already applies to any_media_thumb?/2 — an
extension lookup inside a per-row loop would rescan on every cell.