⎇ df089f0585e52435c1525abdf3a2c728cb5bc77a
crates/core/brahman-cards/templates/ui_module_basic.ncl
Historia
crudo
feat(brahman-cards): templates Nickel canónicos para cada body kind
1# `ui_module_basic.ncl` — template canónico para Cards de tipo
2# UiModule (descriptores de módulos para metainterfaz yahweh).
3#
4# Use case típico: declarar un módulo nuevo sobrescribiendo `id`,
5# `label`, y aportando los `entities`/`menu`/`views` propios:
6#
7# let base = import "ui_module_basic.ncl" in
8# base & {
9# id = "customers",
10# label = "Clientes",
11# entities = [
12# { name = "Customer", label = "Cliente", fields = [...] },
13# ],
14# menu = [{ label = "Listar", view = "list" }],
15# views = { list = { kind = "list", ... } },
16# }
17#
18# El brazo lo dispatcha al `UiModuleJsonReader` por la presencia
19# simultánea de `entities` Y `views` Y `menu`.
20
21{
22 # Identidad: override siempre.
23 id | String | default = "TEMPLATE_ID",
24 label | String | default = "TEMPLATE_LABEL",
25
26 # Subtítulo opcional (tooltip en el sidebar). null por default.
27 description | default = null,
28
29 # Las 3 listas/maps son el **payload** real del módulo. El
30 # template las deja vacías para que el usuario las defina sin
31 # heredar nada útil-pero-equivocado de un default.
32 entities | default = [],
33 menu | default = [],
34 views | default = {},
35}