xonecode 0.1.0

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.
Files changed (187) hide show
  1. package/README.md +167 -0
  2. package/dist/agent/authEnDisco.js +56 -0
  3. package/dist/agent/authEnDisco.js.map +1 -0
  4. package/dist/agent/configEnDisco.js +109 -0
  5. package/dist/agent/configEnDisco.js.map +1 -0
  6. package/dist/agent/crearProyecto.js +34 -0
  7. package/dist/agent/crearProyecto.js.map +1 -0
  8. package/dist/agent/entorno.js +124 -0
  9. package/dist/agent/entorno.js.map +1 -0
  10. package/dist/agent/guionizado.js +53 -0
  11. package/dist/agent/guionizado.js.map +1 -0
  12. package/dist/agent/instantanea.js +129 -0
  13. package/dist/agent/instantanea.js.map +1 -0
  14. package/dist/agent/interrupts.js +83 -0
  15. package/dist/agent/interrupts.js.map +1 -0
  16. package/dist/agent/mensajes.js +24 -0
  17. package/dist/agent/mensajes.js.map +1 -0
  18. package/dist/agent/modelos.js +42 -0
  19. package/dist/agent/modelos.js.map +1 -0
  20. package/dist/agent/normalizar.js +20 -0
  21. package/dist/agent/normalizar.js.map +1 -0
  22. package/dist/agent/perfiles.js +103 -0
  23. package/dist/agent/perfiles.js.map +1 -0
  24. package/dist/agent/proyecto.js +107 -0
  25. package/dist/agent/proyecto.js.map +1 -0
  26. package/dist/agent/puente.js +142 -0
  27. package/dist/agent/puente.js.map +1 -0
  28. package/dist/agent/resumenDeTool.js +48 -0
  29. package/dist/agent/resumenDeTool.js.map +1 -0
  30. package/dist/agent/skills.js +65 -0
  31. package/dist/agent/skills.js.map +1 -0
  32. package/dist/agent/textoDeTool.js +113 -0
  33. package/dist/agent/textoDeTool.js.map +1 -0
  34. package/dist/agent/turnoReal.js +173 -0
  35. package/dist/agent/turnoReal.js.map +1 -0
  36. package/dist/agent/verificador.js +65 -0
  37. package/dist/agent/verificador.js.map +1 -0
  38. package/dist/agent/xoneAgent.js +106 -0
  39. package/dist/agent/xoneAgent.js.map +1 -0
  40. package/dist/bin.js +9 -0
  41. package/dist/bin.js.map +1 -0
  42. package/dist/cli/aprobar.js +82 -0
  43. package/dist/cli/aprobar.js.map +1 -0
  44. package/dist/cli/config.js +133 -0
  45. package/dist/cli/config.js.map +1 -0
  46. package/dist/cli/consola.js +346 -0
  47. package/dist/cli/consola.js.map +1 -0
  48. package/dist/cli/describe.js +53 -0
  49. package/dist/cli/describe.js.map +1 -0
  50. package/dist/cli/doctor.js +45 -0
  51. package/dist/cli/doctor.js.map +1 -0
  52. package/dist/cli/main.js +520 -0
  53. package/dist/cli/main.js.map +1 -0
  54. package/dist/cli/markdown.js +90 -0
  55. package/dist/cli/markdown.js.map +1 -0
  56. package/dist/cli/run.js +164 -0
  57. package/dist/cli/run.js.map +1 -0
  58. package/dist/cli/spinner.js +89 -0
  59. package/dist/cli/spinner.js.map +1 -0
  60. package/dist/cli/stdio.js +193 -0
  61. package/dist/cli/stdio.js.map +1 -0
  62. package/dist/cli/tema.js +40 -0
  63. package/dist/cli/tema.js.map +1 -0
  64. package/dist/cli/verify.js +62 -0
  65. package/dist/cli/verify.js.map +1 -0
  66. package/dist/core/bitacora.js +30 -0
  67. package/dist/core/bitacora.js.map +1 -0
  68. package/dist/core/config.js +236 -0
  69. package/dist/core/config.js.map +1 -0
  70. package/dist/core/contextos.js +56 -0
  71. package/dist/core/contextos.js.map +1 -0
  72. package/dist/core/deps.js +51 -0
  73. package/dist/core/deps.js.map +1 -0
  74. package/dist/core/diff.js +79 -0
  75. package/dist/core/diff.js.map +1 -0
  76. package/dist/core/esqueleto.js +366 -0
  77. package/dist/core/esqueleto.js.map +1 -0
  78. package/dist/core/events.js +2 -0
  79. package/dist/core/events.js.map +1 -0
  80. package/dist/core/modelos.js +85 -0
  81. package/dist/core/modelos.js.map +1 -0
  82. package/dist/core/notify.js +106 -0
  83. package/dist/core/notify.js.map +1 -0
  84. package/dist/core/ports.js +114 -0
  85. package/dist/core/ports.js.map +1 -0
  86. package/dist/core/turno.js +127 -0
  87. package/dist/core/turno.js.map +1 -0
  88. package/dist/vendor/hitl.js +103 -0
  89. package/dist/vendor/hitl.js.map +1 -0
  90. package/dist/vendor/skillLoaders/catalog.js +74 -0
  91. package/dist/vendor/skillLoaders/catalog.js.map +1 -0
  92. package/dist/vendor/tokenTracking.js +58 -0
  93. package/dist/vendor/tokenTracking.js.map +1 -0
  94. package/package.json +41 -0
  95. package/skills/xone-debugging/SKILL.md +52 -0
  96. package/skills/xone-debugging/references/faq.md +561 -0
  97. package/skills/xone-debugging/references/troubleshooting-y-glosario.md +429 -0
  98. package/skills/xone-development/SKILL.md +105 -0
  99. package/skills/xone-development/references/anti-patrones.md +94 -0
  100. package/skills/xone-development/references/css/atributos-por-categoria.md +509 -0
  101. package/skills/xone-development/references/css/buenas-practicas-y-parser.md +419 -0
  102. package/skills/xone-development/references/css/dinamicos-cascada-y-componentes.md +550 -0
  103. package/skills/xone-development/references/css/patrones-material-y-temas.md +1140 -0
  104. package/skills/xone-development/references/css/propiedades-y-herencia.md +885 -0
  105. package/skills/xone-development/references/css/selectores-unidades-colores.md +840 -0
  106. package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +457 -0
  107. package/skills/xone-development/references/datos/appdata.md +611 -0
  108. package/skills/xone-development/references/datos/http-sqlmanager-y-crypto.md +720 -0
  109. package/skills/xone-development/references/datos/http.md +366 -0
  110. package/skills/xone-development/references/datos/oauth2-y-replica.md +156 -0
  111. package/skills/xone-development/references/device/biometria-imagedrawing-y-otros.md +544 -0
  112. package/skills/xone-development/references/device/objetos-de-dispositivo.md +583 -0
  113. package/skills/xone-development/references/device/systemsettings-referencia-ampliada.md +396 -0
  114. package/skills/xone-development/references/device/systemsettings-y-permisos.md +342 -0
  115. package/skills/xone-development/references/fundamentos/conceptos-clave.md +695 -0
  116. package/skills/xone-development/references/fundamentos/configuracion-app-xml-ini-mappings.md +668 -0
  117. package/skills/xone-development/references/fundamentos/errores-comunes.md +312 -0
  118. package/skills/xone-development/references/fundamentos/navegacion-convenciones-y-primer-proyecto.md +576 -0
  119. package/skills/xone-development/references/fundamentos/plataforma-y-anatomia-de-proyecto.md +387 -0
  120. package/skills/xone-development/references/indice-completo.md +77 -0
  121. package/skills/xone-development/references/javascript/coleccion-error-y-usuario.md +260 -0
  122. package/skills/xone-development/references/javascript/debugging-y-best-practices.md +245 -0
  123. package/skills/xone-development/references/javascript/metodos-de-los-controles.md +556 -0
  124. package/skills/xone-development/references/javascript/metodos-nativos-de-la-vista.md +114 -0
  125. package/skills/xone-development/references/javascript/motor-js-y-contexto-de-ejecucion.md +319 -0
  126. package/skills/xone-development/references/javascript/objeto-ai-llm-en-dispositivo.md +358 -0
  127. package/skills/xone-development/references/javascript/objetos-creables-a-m.md +527 -0
  128. package/skills/xone-development/references/javascript/objetos-creables-n-z.md +385 -0
  129. package/skills/xone-development/references/javascript/patrones-criticos-seguridad-y-rendimiento.md +595 -0
  130. package/skills/xone-development/references/javascript/patrones-de-navegacion-datos-y-codigo.md +751 -0
  131. package/skills/xone-development/references/javascript/patrones-de-ui-voz-integracion-y-seguridad.md +701 -0
  132. package/skills/xone-development/references/javascript/plantillas-y-funciones-utilitarias.md +647 -0
  133. package/skills/xone-development/references/javascript/self-y-dataobject.md +449 -0
  134. package/skills/xone-development/references/javascript/singletons-globales.md +361 -0
  135. package/skills/xone-development/references/javascript/ui-catalogo-de-metodos.md +464 -0
  136. package/skills/xone-development/references/javascript/ui-gps-camara-y-multimedia.md +506 -0
  137. package/skills/xone-development/references/javascript/ui-navegacion-mensajes-y-vista.md +422 -0
  138. package/skills/xone-development/references/resumen-js-datos-dispositivo.md +80 -0
  139. package/skills/xone-development/references/resumen-xml-y-css.md +74 -0
  140. package/skills/xone-development/references/tipos-de-prop.md +28 -0
  141. package/skills/xone-development/references/xml-ui/asfilter-visibilidad-eventos-y-macros.md +576 -0
  142. package/skills/xone-development/references/xml-ui/atributos-coll-group-frame.md +235 -0
  143. package/skills/xone-development/references/xml-ui/atributos-method-macro-script-event-app.md +244 -0
  144. package/skills/xone-development/references/xml-ui/atributos-prop.md +439 -0
  145. package/skills/xone-development/references/xml-ui/contents-y-macros.md +392 -0
  146. package/skills/xone-development/references/xml-ui/errores-comunes-xml.md +245 -0
  147. package/skills/xone-development/references/xml-ui/estructura-y-nodo-coll.md +326 -0
  148. package/skills/xone-development/references/xml-ui/eventos-ciclo-de-vida-e-interaccion.md +704 -0
  149. package/skills/xone-development/references/xml-ui/eventos-sistema-login-y-personalizados.md +944 -0
  150. package/skills/xone-development/references/xml-ui/layouts-herencia-y-buenas-practicas.md +618 -0
  151. package/skills/xone-development/references/xml-ui/mapas.md +685 -0
  152. package/skills/xone-development/references/xml-ui/mappings-y-colecciones-separadas.md +148 -0
  153. package/skills/xone-development/references/xml-ui/nodos-group-y-frame.md +666 -0
  154. package/skills/xone-development/references/xml-ui/patrones-de-pantalla.md +643 -0
  155. package/skills/xone-development/references/xml-ui/prop-atributos-y-condiciones.md +298 -0
  156. package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +493 -0
  157. package/skills/xone-development/references/xml-ui/prop-tipos-combos-y-controles.md +664 -0
  158. package/skills/xone-development/references/xml-ui/prop-tipos-listas-y-mapas.md +412 -0
  159. package/skills/xone-plan-builder/SKILL.md +183 -0
  160. package/skills/xone-plan-builder/agents/openai.yaml +5 -0
  161. package/skills/xone-plan-builder/references/TASKS-FORMAT.md +132 -0
  162. package/skills/xone-project-generator/SKILL.md +111 -0
  163. package/skills/xone-project-generator/references/canonical-sizes.md +292 -0
  164. package/skills/xone-project-generator/references/colecciones-base.md +16 -0
  165. package/skills/xone-project-generator/references/convenciones-de-nombres.md +16 -0
  166. package/skills/xone-project-generator/references/ejemplos-por-sector-y-prohibiciones.md +140 -0
  167. package/skills/xone-project-generator/references/fase-3-estilos-css.md +597 -0
  168. package/skills/xone-project-generator/references/fase-6-colecciones.md +762 -0
  169. package/skills/xone-project-generator/references/fase-7-asfilter-e-integraciones.md +142 -0
  170. package/skills/xone-project-generator/references/fase-7-entidades-y-estructura-de-pantalla.md +494 -0
  171. package/skills/xone-project-generator/references/fase-7-plantilla-consola.md +477 -0
  172. package/skills/xone-project-generator/references/fase-7-plantillas-de-pantalla.md +302 -0
  173. package/skills/xone-project-generator/references/fase-7-viewmodes-graficos-y-listas.md +681 -0
  174. package/skills/xone-project-generator/references/fase-7-viewmodes-mapa-y-calendario.md +479 -0
  175. package/skills/xone-project-generator/references/fases-0-2-analisis-y-modelo-de-datos.md +350 -0
  176. package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +194 -0
  177. package/skills/xone-project-generator/references/fases-4-5-estructura-y-configuracion.md +587 -0
  178. package/skills/xone-project-generator/references/fases-8-9-eventos-y-javascript.md +861 -0
  179. package/skills/xone-project-generator/references/flujo-de-generacion.md +67 -0
  180. package/skills/xone-project-generator/references/plantillas-estandar.md +98 -0
  181. package/skills/xone-project-generator/references/tamanos-canonicos.md +49 -0
  182. package/skills/xone-review/SKILL.md +189 -0
  183. package/skills/xone-spec-builder/SKILL.md +235 -0
  184. package/skills/xone-spec-builder/agents/openai.yaml +5 -0
  185. package/skills/xone-spec-builder/references/ADR-FORMAT.md +55 -0
  186. package/skills/xone-spec-builder/references/CONTEXT-FORMAT.md +42 -0
  187. package/skills/xone-spec-builder/references/PLAN-FORMAT.md +120 -0
@@ -0,0 +1,509 @@
1
+ # XOne CSS — Tablas de atributos por categoría
2
+
3
+ > Fuente: `xone/v2/xone-project-generator/references/xone-css-styling-guide.md` §4–§16, §21, §26, §28. Referencia de la skill; el índice está en [../../SKILL.md](../../SKILL.md).
4
+
5
+ Contenido: tablas compactas de atributos: tipografía, dimensiones, márgenes/padding, colores y fondos, alineación, etiquetas, bordes, texto y campos, imágenes e iconos, checkbox y toggles, visibilidad, elevación, atributos de coll · machine learning · transparencia alpha ARGB · errores comunes y equivalencias CSS web ↔ XOne
6
+
7
+ ---
8
+
9
+ ## 4. Atributos CSS - Tipografía
10
+
11
+ | Atributo | Valores | Descripción |
12
+ |----------|---------|-------------|
13
+ | `fontname` | `NombreFuente.ttf` | Fuente personalizada (archivo .ttf en carpeta fonts/) |
14
+ | `fontsize` | Número, **escala 1-12** (el parser acepta 1-50) | Tamaño fuente (sin unidad) |
15
+ | `fontbold` | `true` / `false` | Negrita |
16
+ | `fontitalic` | `true` / `false` | Cursiva |
17
+ | `forecolor` | `#RRGGBB` / `#AARRGGBB` | Color texto y etiqueta |
18
+ | `forecolor-disabled` | `#RRGGBB` | Color fuente cuando deshabilitado |
19
+ | `text-forecolor` | `#RRGGBB` | Color texto editable |
20
+ | `text-forecolor-disabled` | `#RRGGBB` | Color texto deshabilitado |
21
+ | `text-fontsize` | Número | Tamaño fuente del texto editable |
22
+ | `labelfont-size` / `labelfontsize` | Número | Tamaño fuente etiqueta |
23
+ | `textfont-size` / `textfontsize` / `text-font-size` | Número | Tamaño fuente texto editable |
24
+ | `labelfont-bold` | `true` / `false` | Etiqueta negrita |
25
+ | `textfont-bold` | `true` / `false` | Texto editable negrita |
26
+ | `textfont-italic` | `true` / `false` | Texto editable cursiva |
27
+ | `labelshadow` | `true` / `false` | Sombra en etiqueta |
28
+
29
+ > **`fontsize` no está en puntos ni en `dp`: es una escala pequeña a la que el runtime SUMA el
30
+ > factor de la plataforma.** El cálculo, leído en el runtime iOS
31
+ > (`XoneApp::calculateSizeFont`): en iPhone `puntos = fontsize + factor` (y `fontsize + factor/2`
32
+ > si `fontsize <= 2`); en iPad, `fontsize + 4 + factor`. El factor sale de `app.xml` —
33
+ > `ios-font-factor` y `android-font-factor`, **uno por plataforma**. Los valores del proyecto:
34
+ > **`android-font-factor="7"` e `ios-font-factor="8"`**.
35
+ >
36
+ > De ahí que los valores útiles vivan en **1-12** (texto `5`, título de sección `7`, topbar
37
+ > `10`-`11`): con factor 8, un `fontsize="5"` son 13 pt. El `1-50` de la tabla es lo que el
38
+ > parser ACEPTA, no lo que tiene sentido escribir — un `fontsize: 14` no da error, da 22 pt.
39
+ > **Los ejemplos de este fichero anteriores a esta nota usan valores tipo Material (`14`, `16`)
40
+ > heredados del corpus original: cópiales la forma, no el número.**
41
+ >
42
+ > Y el corolario que importa al portar entre proyectos: **los dos factores se afinan por
43
+ > separado** y en un proyecto real pueden diferir mucho (`android-font-factor="13"` con
44
+ > `ios-font-factor="5"`), así que un `fontsize` copiado de otro proyecto sin mirar su `app.xml`
45
+ > no significa nada.
46
+
47
+
48
+ ```css
49
+ .tituloSeccion {
50
+ fontname: Roboto-Bold.ttf;
51
+ fontsize: 20;
52
+ forecolor: #212121;
53
+ }
54
+ ```
55
+
56
+ ---
57
+
58
+ ## 5. Atributos CSS - Dimensiones y Unidades
59
+
60
+ | Atributo | Valores | Descripción |
61
+ |----------|---------|-------------|
62
+ | `width` | `Np` / `N%` | Ancho del elemento |
63
+ | `height` | `Np` / `N%` / `-2` | Alto del elemento. `-2` = alto definido por contenido |
64
+ | `size` | Número | Tamaño máximo de caracteres también es el tamaño máximo en la base de datos |
65
+ | `fieldsize` | Número | Tamaño de campo visual, es la cantidad de espacio que ocupa calculado ancho de carácter x valor de fieldsize |
66
+
67
+ | Unidad | Recomendado | Descripción |
68
+ |--------|-------------|-------------|
69
+ | `p` | SI | Puntos XOne: 1p = 1px en la resolución de referencia (NO equivale al `dp` de Android) |
70
+ | `%` | SI | Porcentaje del contenedor padre |
71
+ | `px` | NO | Pixeles físicos (no escala) |
72
+
73
+ > **REGLA:** Siempre usar `p` para fijos y `%` para responsivos. NUNCA `px`, `em`, `rem`.
74
+
75
+ ---
76
+
77
+ ## 6. Atributos CSS - Margenes y Padding
78
+
79
+ | Atributo | Valores | Descripción |
80
+ |----------|---------|-------------|
81
+ | `tmargin` | `Np` / `N%` | Margen superior |
82
+ | `bmargin` | `Np` / `N%` | Margen inferior |
83
+ | `lmargin` | `Np` / `N%` | Margen izquierdo |
84
+ | `rmargin` | `Np` / `N%` | Margen derecho |
85
+ | `tpadding` | `Np` | Padding superior |
86
+ | `bpadding` | `Np` | Padding inferior |
87
+ | `lpadding` | `Np` | Padding izquierdo |
88
+ | `rpadding` | `Np` | Padding derecho |
89
+
90
+ No existe atributo abreviado `margin` o `padding`.
91
+
92
+ ---
93
+
94
+ ## 7. Atributos CSS - Colores y Fondos
95
+
96
+ | Atributo | Valores | Descripción |
97
+ |----------|---------|-------------|
98
+ | `bgcolor` | `#RRGGBB` / `#AARRGGBB` | Color de fondo |
99
+ | `bgcolor-disabled` | `#RRGGBB` | Color de fondo cuando deshabilitado |
100
+ | `bgcolor-focus` | `#RRGGBB` | Color de fondo al recibir foco |
101
+ | `forecolor` | `#RRGGBB` / `#AARRGGBB` | Color primer plano |
102
+ | `text-bgcolor` | `#RRGGBB` | Fondo texto editable |
103
+ | `text-bgcolor-focus` | `#RRGGBB` | Fondo texto al recibir foco |
104
+ | `text-bgcolor-disabled` | `#RRGGBB` | Fondo texto deshabilitado |
105
+ | `border-color` | `#RRGGBB` | Color borde |
106
+ | `text-border-color` | `#RRGGBB` | Color borde texto |
107
+ | `imgbk` | `nombre.png` / `nombre.svg` | Imagen de fondo (PNG, JPG o SVG) |
108
+
109
+ > **ATENCION:** El formato alpha en XOne es `#AARRGGBB` (alpha PRIMERO), NO `#RRGGBBAA`.
110
+
111
+ ---
112
+
113
+ ## 8. Atributos CSS - Alineacion y Layout
114
+
115
+ | Atributo | Valores | Descripción |
116
+ |----------|---------|-------------|
117
+ | `align` | Combinacion con `\|` | Alineacion combinada |
118
+ | `text-align` | `left` / `center` / `right` | Alineacion texto |
119
+ | `newline` | `true` / `false` | Nueva linea |
120
+ | `scroll` | `true` / `false` | Scroll |
121
+ | `fixed` | `true` / `false` | Elemento fijo |
122
+ | `orientation` | `top` / `bottom` | Ancla del fijo |
123
+ | `floating` | `true` / `false` | Frame flotante |
124
+ | `top` | `Np` | Posición vertical de frame flotante |
125
+ | `left` | `Np` | Posición horizontal de frame flotante |
126
+ | `framebox` | `true` / `false` | Estilo de caja del frame (dibuja borde visual alrededor del frame) |
127
+
128
+ Valores de align: `left`, `center`, `right`, `top`, `bottom`. Combinar con `|`: `top|left`, `bottom|center`.
129
+
130
+ ```css
131
+ /* Footer fijo anclado abajo */
132
+ .frameFooter {
133
+ width: 100%;
134
+ height: 120p;
135
+ bgcolor: #FFFFFF;
136
+ fixed: true;
137
+ orientation: bottom;
138
+ }
139
+
140
+ /* FAB flotante posicionado */
141
+ .btnFAB {
142
+ width: 112p;
143
+ height: 112p;
144
+ bgcolor: #FFC107;
145
+ border-corner-radius: 56;
146
+ labelwidth: 0;
147
+ img-width: 48p;
148
+ img-height: 48p;
149
+ floating: true;
150
+ }
151
+ ```
152
+
153
+ ---
154
+
155
+ ## 9. Atributos CSS - Etiquetas (Labels)
156
+
157
+ | Atributo | Valores | Descripción |
158
+ |----------|---------|-------------|
159
+ | `labelwidth` | 0-100 | Proporcion ancho etiqueta (0=sin etiqueta) |
160
+ | `labelbox` | `true` / `false` | Caja contenedora |
161
+ | `label-wrap` | `true` / `false` | Wrap del texto |
162
+ | `title` | `"texto"` | Texto etiqueta |
163
+ | `tooltip` | `"texto"` | Placeholder |
164
+
165
+ ---
166
+
167
+ ## 10. Atributos CSS - Bordes
168
+
169
+ ### Bordes de texto
170
+
171
+ | Atributo | Valores | Descripción |
172
+ |----------|---------|-------------|
173
+ | `text-border` | `true` / `false` | Borde alrededor texto |
174
+ | `text-border-left` | `true` / `false` | Borde izquierdo del texto |
175
+ | `text-border-right` | `true` / `false` | Borde derecho del texto |
176
+ | `text-border-top` | `true` / `false` | Borde superior del texto |
177
+ | `text-border-bottom` | `true` / `false` | Borde inferior del texto |
178
+ | `text-border-color` | `#RRGGBB` | Color borde texto |
179
+ | `text-border-width` | `Np` | Grosor del borde de texto |
180
+
181
+ ### Bordes de contenedor
182
+
183
+ | Atributo | Valores | Descripción |
184
+ |----------|---------|-------------|
185
+ | `border` | `true` / `false` | Borde general |
186
+ | `border-width` | Número | Grosor borde |
187
+ | `border-color` | `#RRGGBB` | Color borde |
188
+ | `border-corner-radius` | Número | Radio de todas las esquinas |
189
+ | `border-corner-radius-top-left` | Número | Radio esquina superior izquierda |
190
+ | `border-corner-radius-top-right` | Número | Radio esquina superior derecha |
191
+ | `border-corner-radius-bottom-left` | Número | Radio esquina inferior izquierda |
192
+ | `border-corner-radius-bottom-right` | Número | Radio esquina inferior derecha |
193
+ | `border-top` | `true` / `false` | Borde superior |
194
+ | `border-top-color` | `#RRGGBB` | Color borde sup |
195
+ | `border-bottom` | `true` / `false` | Borde inferior |
196
+ | `border-bottom-color` | `#RRGGBB` | Color borde inf |
197
+ | `framebox` | `true` / `false` | Borde frame |
198
+ | `grid-framebox` | `true` / `false` | Borde frame grid |
199
+ | `grid-text-border` | `true` / `false` | Borde texto grid |
200
+
201
+ ### Patron Material Design (borde inferior)
202
+
203
+ ```css
204
+ .inputMaterial {
205
+ text-border: true;
206
+ text-border-left: false;
207
+ text-border-right: false;
208
+ text-border-top: false;
209
+ text-border-bottom: true;
210
+ text-border-color: #BDBDBD;
211
+ }
212
+
213
+ .inputMaterialEnfocado {
214
+ extends: .inputMaterial;
215
+ text-border-color: #1565C0;
216
+ }
217
+ ```
218
+
219
+ ### Patron: Panel con esquinas superiores
220
+
221
+ ```css
222
+ .panelInferior {
223
+ width: 100%;
224
+ bgcolor: #FFFFFF;
225
+ border-corner-radius-top-left: 24;
226
+ border-corner-radius-top-right: 24;
227
+ }
228
+ ```
229
+
230
+ ---
231
+
232
+ ## 11. Atributos CSS - Texto y Campos
233
+
234
+ | Atributo | Valores | Descripción |
235
+ |----------|---------|-------------|
236
+ | `lines` | Número | Lineas visibles |
237
+ | `fixed-lines` | `true` / `false` | Altura fija por lineas |
238
+ | `locked` | `true` / `false` | Solo lectura |
239
+ | `locking` | `true` / `false` | Bloqueo persistente |
240
+ | `mask` | `"formato"` | Mascara formato |
241
+ | `zoom-controls` | `true` / `false` | Zoom en webviews |
242
+
243
+ ---
244
+
245
+ ## 12. Atributos CSS - Imágenes e Iconos
246
+
247
+ ### Generales
248
+
249
+ | Atributo | Valores | Descripción |
250
+ |----------|---------|-------------|
251
+ | `img` | `nombre.png` | Imagen principal |
252
+ | `imgbk` | `nombre.png` | Imagen fondo |
253
+ | `imgsel` / `img-sel` | `nombre.png` | Imagen seleccionada |
254
+ | `img-width` | Número | Ancho icono |
255
+ | `img-height` | Número | Alto icono |
256
+
257
+ ### Iconos del sistema
258
+
259
+ | Normal | Seleccionado | Descripción |
260
+ |--------|-------------|-------------|
261
+ | `img-spinner` | `img-spinner-sel` | Combo/selector |
262
+ | `img-search` | `img-search-sel` | Busqueda |
263
+ | `img-delete` | `img-delete-sel` | Eliminar |
264
+ | `img-undo` | `img-undo-sel` | Deshacer |
265
+ | `img-phone` | `img-phone-sel` | Telefono |
266
+ | `img-date` | `img-date-sel` | Fecha |
267
+ | `img-time` | `img-time-sel` | Hora |
268
+ | `img-checked` | `img-checked-disabled` | Checkbox marcado |
269
+ | `img-unchecked` | `img-unchecked-disabled` | Checkbox desmarcado |
270
+ | `img-camera` | `img-camera-sel` | Camara |
271
+ | `img-video` | `img-video-sel` | Video |
272
+ | `img-sign` | `img-sign-sel` | Firma |
273
+ | `img-att` | `img-att-sel` | Adjuntos |
274
+
275
+ ### Configuración completa (proyecto real)
276
+
277
+ ```css
278
+ prop {
279
+ img-spinner: bt_Arrow_down.png;
280
+ img-spinner-sel: bt_Arrow_down_Sel.png;
281
+ img-search: bt_Lupa.png;
282
+ img-search-sel: bt_Lupa_sel.png;
283
+ img-delete: bt_Delete.png;
284
+ img-delete-sel: bt_Delete_sel.png;
285
+ img-undo: undo.png;
286
+ img-undo-sel: undo_click.png;
287
+ img-phone: bt_Phone.png;
288
+ img-phone-sel: bt_Phone_sel.png;
289
+ img-date: bt_Date.png;
290
+ img-date-sel: bt_Date_sel.png;
291
+ img-time: bt_Time.png;
292
+ img-time-sel: bt_Time_sel.png;
293
+ img-checked: bt_check.png;
294
+ img-checked-disabled: bt_check_disabled.png;
295
+ img-unchecked: bt_uncheck.png;
296
+ img-unchecked-disabled: bt_uncheck_disabled.png;
297
+ img-att: bt_attach.png;
298
+ img-att-sel: bt_attach_sel.png;
299
+ img-camera: bt_camera.png;
300
+ img-camera-sel: bt_camera_sel.png;
301
+ img-video: bt_camera.png;
302
+ img-video-sel: bt_camera_sel.png;
303
+ img-height: 28;
304
+ img-width: 28;
305
+ }
306
+ ```
307
+
308
+ ---
309
+
310
+ ## 13. Atributos CSS - Checkbox y Controles Toggle
311
+
312
+ ### Checkbox
313
+
314
+ | Atributo | Valores | Descripción |
315
+ |----------|---------|-------------|
316
+ | `check-color-checked` | `#RRGGBB` | Color del checkbox cuando esta marcado |
317
+ | `check-color-unchecked` | `#RRGGBB` | Color del checkbox cuando esta desmarcado |
318
+ | `check-color-checked-disabled` | `#RRGGBB` | Color marcado deshabilitado |
319
+ | `check-color-unchecked-disabled` | `#RRGGBB` | Color desmarcado deshabilitado |
320
+ | `apply-css` | `true` / `false` | Aplicar estilos CSS al componente |
321
+
322
+ ```css
323
+ .xnCheckbox {
324
+ extends: prop;
325
+ apply-css: true;
326
+ labelwidth: 1;
327
+ img-width: 50p;
328
+ text-bgcolor: #00000000;
329
+ }
330
+
331
+ /* Checkbox con colores personalizados */
332
+ prop:NC {
333
+ extends: prop;
334
+ apply-css: true;
335
+ check-color-checked: #1565C0;
336
+ check-color-unchecked: #9E9E9E;
337
+ check-color-checked-disabled: #BBDEFB;
338
+ check-color-unchecked-disabled: #E0E0E0;
339
+ }
340
+ ```
341
+
342
+ ### Controles Slider y Switch
343
+
344
+ | Atributo | Valores | Descripción |
345
+ |----------|---------|-------------|
346
+ | `track-color` | `#RRGGBB` | Color de la pista (barra) del slider o switch |
347
+ | `thumb-color` | `#RRGGBB` | Color del pulgar (control deslizable) del slider o switch |
348
+
349
+ ```css
350
+ .switchPersonalizado {
351
+ track-color: #BBDEFB;
352
+ thumb-color: #1565C0;
353
+ }
354
+ ```
355
+
356
+ ---
357
+
358
+ ## 14. Atributos CSS - Visibilidad y Estado
359
+
360
+ | Valor | Edición | Lista | Contents |
361
+ |-------|:-------:|:-----:|:--------:|
362
+ | `0` | Oculto | Oculto | Oculto |
363
+ | `1` | Visible | Oculto | Oculto |
364
+ | `2` | Oculto | Visible | Oculto |
365
+ | `4` | Oculto | Oculto | Visible |
366
+ | `7` | Visible | Visible | Visible |
367
+
368
+ Otros atributos de estado:
369
+
370
+ | Atributo | Valores | Descripción |
371
+ |----------|---------|-------------|
372
+ | `ripple-effect` | `true` / `false` | Efecto ripple Material Design al pulsar el elemento |
373
+ | `undo-button` | `true` / `false` | Mostrar botón deshacer |
374
+ | `apply-css` | `true` / `false` | Aplicar estilos CSS al componente |
375
+ | `locked` | `true` / `false` | Campo de solo lectura |
376
+ | `locking` | `true` / `false` | Comportamiento de bloqueo persistente |
377
+
378
+ ---
379
+
380
+ ## 15. Atributos CSS - Elevacion y Sombras
381
+
382
+ | Atributo | Valores | Descripción |
383
+ |----------|---------|-------------|
384
+ | `elevation` | Número (0-24) | Elevacion del elemento (genera sombra en Android, estilo Material Design) |
385
+ | `shadow-color` | `#RRGGBB` | Color de la sombra |
386
+
387
+ ```css
388
+ .tarjetaElevada {
389
+ bgcolor: #FFFFFF;
390
+ border-corner-radius: 12;
391
+ elevation: 5;
392
+ }
393
+
394
+ .tarjetaFlotante {
395
+ bgcolor: #FFFFFF;
396
+ border-corner-radius: 16;
397
+ elevation: 12;
398
+ shadow-color: #1A000000;
399
+ }
400
+ ```
401
+
402
+ > **NOTA:** La elevacion funciona principalmente en Android. En iOS el efecto puede variar. Como alternativa se pueden usar bordes sutiles para simular profundidad en iOS.
403
+
404
+ ---
405
+
406
+ ## 16. Atributos de Coleccion (`coll`)
407
+
408
+ ### General
409
+
410
+ | Atributo | Valores | Descripción |
411
+ |----------|---------|-------------|
412
+ | `notab` | `true`/`false` | Sin pestanas |
413
+ | `group-swipe` | `true`/`false` | Swipe entre grupos |
414
+ | `show-toolbar` | `true`/`false` | Mostrar toolbar |
415
+ | `editmask` | Número | Mascara de edición (0 = sin mascara) |
416
+ | `nomenmask` | Número | Mascara de nomenclatura |
417
+ | `dependent` | `true`/`false` | Coleccion dependiente |
418
+ | `check-owner` | `true`/`false` | Verificar propietario |
419
+ | `show-selected-item` | `true`/`false` | Mostrar item seleccionado |
420
+ | `selected-item-start-index` | Número | Índice inicial de selección (-1=ninguno) |
421
+ | `viewmode` | `gridview`/`mapview`/`listview` | Modo de visualizacion |
422
+ | `gallery-columns` | Número | Columnas en modo galería |
423
+ | `drawer-orientation` | `left`/`right` | Orientación del drawer |
424
+
425
+ ### Celdas Grid
426
+
427
+ | Atributo | Valores | Descripción |
428
+ |----------|---------|-------------|
429
+ | `cell-bgcolor` | `#RRGGBB` | Fondo celda |
430
+ | `cell-forecolor` | `#RRGGBB` | Texto celda |
431
+ | `cell-odd-color` | `#RRGGBB` | Color celdas impares (alternancia) |
432
+ | `cell-even-color` | `#RRGGBB` | Color celdas pares (alternancia) |
433
+ | `cell-border` | `true`/`false` | Borde celdas |
434
+ | `cell-border-color` | `#RRGGBB` | Color borde celda |
435
+ | `cell-border-width` | Número | Grosor borde |
436
+ | `cell-tpadding` / `cell-bpadding` | `Np` | Padding celda |
437
+ | `cell-align` | `left`/`center`/`right` | Alineacion celda |
438
+ | `cell-selected-bgcolor` | `#RRGGBB`/`#AARRGGBB` | Fondo selección |
439
+ | `cell-selected-forecolor` | `#RRGGBB` | Texto selección |
440
+
441
+ ### Tabs
442
+
443
+ | Atributo | Valores | Descripción |
444
+ |----------|---------|-------------|
445
+ | `tab-visible` | `true`/`false` | Mostrar tabs |
446
+ | `tab-height` | `Np` | Altura tabs |
447
+ | `tab-fontsize` | Número | Tamaño fuente |
448
+ | `tab-bgcolor` | `#RRGGBB` | Fondo tabs |
449
+ | `tab-forecolor` | `#RRGGBB` | Texto tabs |
450
+ | `tab-selected-forecolor` | `#RRGGBB` | Texto seleccionado |
451
+ | `tab-indicator-color` | `#RRGGBB` | Indicador |
452
+
453
+ ### Animaciones de coleccion
454
+
455
+ | Atributo | Valores | Descripción |
456
+ |----------|---------|-------------|
457
+ | `animation-in` | Token animación | Animación de entrada |
458
+ | `animation-out` | Token animación | Animación de salida |
459
+
460
+ ```css
461
+ coll {
462
+ notab: true;
463
+ group-swipe: false;
464
+ show-toolbar: false;
465
+ editmask: 0;
466
+ cell-bgcolor: #F2F2F2;
467
+ cell-border-color: #00000000;
468
+ cell-border-width: 0;
469
+ cell-selected-bgcolor: #00000000;
470
+ show-selected-item: false;
471
+ selected-item-start-index: -1;
472
+ animation-in: "##RIGHT_IN##";
473
+ animation-out: "##RIGHT_OUT##";
474
+ }
475
+ ```
476
+
477
+ ## 21. Machine Learning
478
+
479
+ `ml-model-descriptor: modelo.json` - Separar por plataforma con `default_ios.css`.
480
+
481
+ ## 26. Referencia de Transparencia Alpha (ARGB)
482
+
483
+ | % | Hex | Negro | Blanco |
484
+ |:-:|:---:|:-----:|:------:|
485
+ | 100% | FF | #FF000000 | #FFFFFFFF |
486
+ | 90% | E6 | #E6000000 | #E6FFFFFF |
487
+ | 80% | CC | #CC000000 | #CCFFFFFF |
488
+ | 70% | B3 | #B3000000 | #B3FFFFFF |
489
+ | 60% | 99 | #99000000 | #99FFFFFF |
490
+ | 50% | 80 | #80000000 | #80FFFFFF |
491
+ | 40% | 66 | #66000000 | #66FFFFFF |
492
+ | 30% | 4D | #4D000000 | #4DFFFFFF |
493
+ | 20% | 33 | #33000000 | #33FFFFFF |
494
+ | 10% | 1A | #1A000000 | #1AFFFFFF |
495
+ | 0% | 00 | #00000000 | #00FFFFFF |
496
+
497
+ Intermedios: 95%=F2, 85%=D9, 75%=BF, 65%=A6, 55%=8C, 45%=73, 35%=59, 25%=40, 15%=26, 5%=0D
498
+
499
+ ## 28. Errores Comunes
500
+
501
+ | Error | Incorrecto | Correcto |
502
+ |-------|-----------|----------|
503
+ | Unidades web | `font-size: 14px` | `fontsize: 14` |
504
+ | Guiones básicos | `bg-color: #FFF` | `bgcolor: #FFFFFF` |
505
+ | Alpha RGBA | `#00000080` | `#80000000` (ARGB) |
506
+ | Abreviados | `margin: 10p` | `tmargin: 10p; bmargin: 10p; ...` |
507
+ | Selectores web | `div.header {}` | `.header {}` |
508
+ | Sin extends | Duplicar atributos | `extends: .base; bgcolor: #NEW;` |
509
+