@tinya-code/gas-admin-ui 0.2.0-alpha.11 → 0.2.0-alpha.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinya-code/gas-admin-ui",
3
- "version": "0.2.0-alpha.11",
3
+ "version": "0.2.0-alpha.13",
4
4
  "description": "Motor de render Angular para admin CRUD: declará ResourceSchema y el motor dibuja vistas, campos y widgets.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3307,6 +3307,115 @@ export declare const columnFormatDescriptors: readonly RenderDescriptor[];
3307
3307
  * existe para los 20 campos y los 6 widgets.
3308
3308
  */
3309
3309
  export declare const COLUMN_FORMAT_TYPES: readonly ["text", "badge", "thumbnail", "boolean", "number", "currency", "date"];
3310
+ /**
3311
+ * Descripciones centralizadas del catálogo de campos del motor `@tinya-code/gas-admin-ui`.
3312
+ *
3313
+ * Este archivo es el único lugar donde se editan los textos descriptivos de
3314
+ * cada propiedad del schema. Los JSDoc de `schema.model.ts` usan estos mismos
3315
+ * textos para que el editor (VSCode) muestre tooltips al pasar el cursor
3316
+ * sobre una propiedad del schema del consumidor.
3317
+ *
3318
+ * Estructura: clave de propiedad → descripción en español.
3319
+ *
3320
+ * Uso en el consumidor (loyalty-admin, etc.):
3321
+ * import { schemaDescriptions } from '@tinya-code/gas-admin-ui';
3322
+ * schemaDescriptions['docLink']; // 'URL de documentación externa para este campo.'
3323
+ *
3324
+ * Nota: este objeto no se renderiza en la UI; solo existe para documentación
3325
+ * y tooltips del editor. Para renderizar tooltips en el formulario usa
3326
+ * `description` en cada campo del schema del consumidor.
3327
+ */
3328
+ export declare const schemaDescriptions: {
3329
+ readonly key: "Nombre de la propiedad en el JSON que envía/recibe el back.";
3330
+ readonly label: "Rótulo visible para el usuario en el formulario y la ficha.";
3331
+ readonly help: "Texto corto de ayuda que se muestra debajo del campo.";
3332
+ readonly placeholder: "Texto sugerente que se muestra dentro del input cuando está vacío.";
3333
+ readonly required: "Si es obligatorio. El back también lo valida (R7.4).";
3334
+ readonly default: "Valor por defecto si el registro no trae este campo (ej. `default: \"none\"` en un `select`/`dropdown`).";
3335
+ readonly readonly: "Si el campo es solo lectura (no editable en el formulario).";
3336
+ readonly readonlyOn: "Bloquea el campo solo en creación, solo en edición o siempre.";
3337
+ readonly readonlyWhen: "Condición bajo la cual el campo es solo lectura (expresión sobre otros campos).";
3338
+ readonly visibleWhen: "Condición bajo la cual el campo se muestra u oculta.";
3339
+ readonly hiddenOn: "Oculta el campo en creación, en edición o siempre.";
3340
+ readonly dependsOn: "Selección dependiente (guía §1: país → ciudad). Clave del campo padre del mismo nivel.";
3341
+ readonly validators: "Reglas de validación (mínimo, máximo, patrón, unicidad, etc.).";
3342
+ readonly width: "Ancho en la grilla del formulario (1–12), igual que un widget del dashboard.";
3343
+ readonly section: "Id de la sección/pestaña del layout a la que pertenece (base.md §4).";
3344
+ readonly read: "Código de nivel de acceso requerido para leer el campo.";
3345
+ readonly write: "Código de nivel de acceso requerido para escribir el campo.";
3346
+ readonly description: "Descripción corta de para qué sirve este campo. Se muestra como tooltip al pasar el cursor sobre el rótulo.";
3347
+ readonly docLink: "URL de documentación externa para este campo (se abre al hacer clic en el tooltip).";
3348
+ readonly value: "Valor que se envía al back cuando se elige esta opción.";
3349
+ readonly labelOption: "Texto visible de la opción.";
3350
+ readonly disabled: "Si la opción está deshabilitada (no se puede elegir).";
3351
+ readonly type: "Tipo de campo: `text`, `color`, `number`, `currency`, `boolean`, `select`, `dropdown`, `rich-select`, `multiselect`, `url`, `email`, `phone`, `date`, `time`, `readonly-text`, `slug`, `textarea`, `relation`, `image`, `file`, `group`, `list`, `string-list`, `key-value`.";
3352
+ readonly maxLength: "Longitud máxima de caracteres permitida.";
3353
+ readonly pattern: "Expresión regular que debe cumplir el valor.";
3354
+ readonly rows: "Número de filas visibles del textarea.";
3355
+ readonly minWords: "Cantidad mínima de palabras.";
3356
+ readonly maxWords: "Cantidad máxima de palabras.";
3357
+ readonly tokens: "Marcadores insertables como chips bajo el área (plantillas de mensaje).";
3358
+ readonly from: "Campo del registro del que se autogenera el slug.";
3359
+ readonly lockAfterCreate: "Bloquea el campo una vez creado el registro (por defecto: sí).";
3360
+ readonly min: "Valor mínimo permitido.";
3361
+ readonly max: "Valor máximo permitido.";
3362
+ readonly step: "Incremento entre valores permitidos.";
3363
+ readonly decimals: "Número de decimales mostrados.";
3364
+ readonly currencyFrom: "Campo del registro del que se toma la moneda (ej. `currency`).";
3365
+ readonly trueLabel: "Texto que se muestra cuando el valor es verdadero.";
3366
+ readonly falseLabel: "Texto que se muestra cuando el valor es falso.";
3367
+ readonly source: "De dónde salen las opciones: `{ resource, view?, params?, … }` (F8 · R6.5).";
3368
+ readonly resource: "Recurso declarado (`resource.id`): su listado es el de las opciones.";
3369
+ readonly view: "Vista declarada en `resource.views` (opcional): filtra en el back.";
3370
+ readonly params: "Valores interpolados para la vista (`{campo}` ← contexto).";
3371
+ readonly labelField: "Etiqueta por defecto de las filas (si no, `titleField` del recurso).";
3372
+ readonly valueField: "Valor por defecto de las filas (si no, `keyField` del recurso).";
3373
+ readonly secondaryField: "Segundo dato a mostrar junto a la etiqueta (ej. \"Juan Pérez · DNI 123\").";
3374
+ readonly onlyActive: "Cargar solo registros activos (lo exige además la FK en el back).";
3375
+ readonly accept: "Tipos aceptados (ej. `image/*`, `image/png,image/jpeg` o `pdf,docx`).";
3376
+ readonly maxSizeMB: "Tamaño máximo del archivo en megabytes.";
3377
+ readonly aspectRatio: "Relación de aspecto de la vista previa (ej. `16/9`).";
3378
+ readonly previewSize: "Tamaño de la vista previa.";
3379
+ readonly formatCurrency: "Campo del registro del que se toma la moneda (ej. `currency`).";
3380
+ readonly display: "Presentación del grupo: `card`, `collapsible` o `inline`.";
3381
+ readonly fields: "Campos de cada item (cualquier tipo, incluso `group` o `list`).";
3382
+ readonly minItems: "Cantidad mínima de items.";
3383
+ readonly maxItems: "Cantidad máxima de items.";
3384
+ readonly sortable: "Si se puede reordenar (por defecto: sí).";
3385
+ readonly positionField: "Campo donde se guarda el orden dentro de cada item (`position`).";
3386
+ readonly addLabel: "Etiqueta del botón para agregar un item nuevo.";
3387
+ readonly emptyText: "Texto que se muestra cuando no hay items.";
3388
+ readonly itemDisplay: "Cómo se muestra cada item: `card`, `row` o `accordion`.";
3389
+ readonly itemFields: "Campos de cada item (cualquier tipo, incluso `group` o `list`).";
3390
+ readonly itemTitle: "Campo del item usado como título cuando está colapsado.";
3391
+ readonly primaryFirst: "El primer item tiene significado especial (ej. imagen principal).";
3392
+ readonly itemType: "Tipo permitido de cada item (base.md §9: solo `text`, `url` o `email`).";
3393
+ readonly sort: "Si la lista se ordena alfabéticamente o por posición.";
3394
+ readonly filter: "Si el listado permite filtrado por texto.";
3395
+ readonly search: "Campos buscables en el listado.";
3396
+ readonly filters: "Filtros declarados para el listado.";
3397
+ readonly listColumns: "Columnas que se muestran en el listado.";
3398
+ readonly searchable: "Si el campo es buscable.";
3399
+ readonly filterable: "Si el campo es filtrable.";
3400
+ readonly sortableItems: "Si los items de la lista se pueden reordenar.";
3401
+ readonly groupBy: "Campo por el que agrupar los items.";
3402
+ readonly cardWidth: "Ancho de cada tarjeta de opción en la grilla (1–12). Por defecto `4` (3 tarjetas por fila en escritorio).";
3403
+ readonly cardCols: "Cuántas tarjetas mostrar por fila en el punto de ruptura `lg`. Sobrescribe el cálculo automático basado en `cardWidth`.";
3404
+ readonly hintMetric: "Texto secundario bajo la cifra (estático, va en el schema).";
3405
+ readonly unitChart: "Sufijo de las cifras del eje («unidades», «S/»).";
3406
+ readonly segments: "Segmentos de la barra de distribución porcentual.";
3407
+ readonly actions: "Acciones de navegación por fila.";
3408
+ readonly labelAction: "Etiqueta de la acción.";
3409
+ readonly icon: "Icono de la acción.";
3410
+ readonly navigateTo: "Ruta de destino de la acción.";
3411
+ readonly variant: "Variante visual: `primary`, `secondary` u `outline`.";
3412
+ readonly widgets: "Widgets del panel. Se declara en `ResourceSchema.widgets` — no en `fields`, porque un KPI no es un campo.";
3413
+ readonly mobileWidth: "Ancho en la grilla en mobile (1–12). Por defecto `12` (ancho completo, apilado).";
3414
+ readonly sourceWidget: "De dónde saca sus datos: `DataSource` o `{ kind: \"payload\" }`.";
3415
+ readonly hintWidget: "Texto secundario bajo la cifra (estático, va en el schema).";
3416
+ readonly unitWidget: "Sufijo de las cifras del eje.";
3417
+ };
3418
+ export type SchemaDescriptionKey = keyof typeof schemaDescriptions;
3310
3419
  export declare const layoutDescriptors: readonly LayoutDescriptor[];
3311
3420
  export declare const viewDescriptors: readonly RenderDescriptor[];
3312
3421
  /**