grmenu 4.1.0 → 5.0.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.
data/data/help.txt CHANGED
@@ -8,8 +8,8 @@
8
8
  {bright_cyan}╚═══════════════════════════════════════════════════════════════════════════════════╝{reset}
9
9
 
10
10
  {bright_cyan}╔═══════════════════════════════════════════════════════════════════════════════════╗{reset}
11
- {bright_cyan}║{bright_yellow} DOCUMENTACION Y GUIA COMPLETA DE PARAMETROS (v4.1.0) {bright_cyan}║{reset}
12
- {bright_cyan}║{gray} Soporte Raton SGR 1006, Submenus en Cascada 3 Niveles, Pestanas y CSS .gr {bright_cyan}║{reset}
11
+ {bright_cyan}║{bright_yellow} DOCUMENTACION Y GUIA COMPLETA DE PARAMETROS (v5.0.0) {bright_cyan}║{reset}
12
+ {bright_cyan}║{gray} Formularios, Modales 3D, Window BG, Raton SGR 1006, Submenus y Temas CSS .gr {bright_cyan}║{reset}
13
13
  {bright_cyan}╚═══════════════════════════════════════════════════════════════════════════════════╝{reset}
14
14
 
15
15
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
@@ -143,7 +143,7 @@
143
143
  - {cyan}search:{reset} [Boolean] Activa buscador en vivo reactivo escribiendo texto.
144
144
  - {cyan}sort:{reset} [Boolean] Permite ordenar columnas en orden asc/desc pulsando 's'.
145
145
  - {cyan}page_size:{reset} [Integer] Limite de filas visibles con auto-scroll.
146
- - {cyan}header_color:{reset} [String] Color del encabezado de columnas (soporta neon).
146
+ - {cyan}header_color:{reset} [String] Color del encabezado de columnas (soporta cromatico).
147
147
  - {cyan}selected_row:{reset} [String] Color de la fila seleccionada.
148
148
  - {cyan}Teclas:{reset} {yellow}↑ / ↓{reset} (navegar), {yellow}s{reset} (ordenar), {yellow}Enter{reset} (elegir fila), {yellow}Esc / q{reset} (salir).
149
149
  - {cyan}Retorna:{reset} La fila seleccionada por el usuario (o nil si cancela).
@@ -152,11 +152,11 @@
152
152
  Recuadro estilizado para reportes y mensajes. Incluye word-wrapping automatico
153
153
  para parrafos largos sin deformar bordes ni desbordar la consola.
154
154
  Acepta argumentos posicionales y por palabra clave:
155
- - {bright_white}GRmenu.card("Titulo Noticia", "Cuerpo del mensaje...", style: 3, border_color: "neon_cyan"){reset}
155
+ - {bright_white}GRmenu.card("Titulo Noticia", "Cuerpo del mensaje...", style: 3, border_color: "chromatic_cyan"){reset}
156
156
  - {bright_white}GRmenu.card("Solo Mensaje sin Titulo", pause: false){reset}
157
157
  - {bright_white}GRmenu.card(title: "Status", content: "OK", style: 7, border_color: "green", pause: false){reset}
158
158
  - {cyan}pause:{reset} [Boolean] Si es true (default en standalone), espera Enter; si es false (ideal para sleep), no bloquea.
159
- - {cyan}border_color:{reset} [String] Color del marco (soporta hex, neon y "rgb").
159
+ - {cyan}border_color:{reset} [String] Color del marco (soporta hex, cromatico y "rgb").
160
160
  - {cyan}title_color:{reset} [String] Color del texto del titulo.
161
161
  - {cyan}content_color:{reset}[String] Color del contenido.
162
162
  - {cyan}style:{reset} [Integer 1..20] Estilo de marco (default: 7).
@@ -170,8 +170,121 @@
170
170
  - Acepta {cyan}pause: false{reset} para desvanecer sin bloquear.
171
171
  - Soporta colores personalizados con {cyan}border_color:{reset} y {cyan}title_color:{reset}.
172
172
 
173
+ {bright_green}* GRmenu.div(long = nil, color = "blue", level = 1, char = "─"){reset}
174
+ Dibuja una linea divisoria con soporte de colores ANSI o efecto arcoiris "rgb".
175
+
176
+ {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
177
+ {bright_yellow}[5] FORMULARIOS Y MODALES FLOTANTES 3D (WIDGETS NATIVOS){reset}
178
+ {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
179
+
180
+ {bright_green}* GRmenu.form(titulo = "Formulario", **opciones, &bloque){reset}
181
+ Constructor interactivo de formularios multi-campo en una sola pantalla.
182
+ Soporta campos de texto, contrasenas, numeros con limites/pasos, selectores y booleanos.
183
+ Incluye barrita de cursor {bright_white}│{reset} en tiempo real, sombra proyectada 3D ({gray}▒▒{reset}),
184
+ navegacion por Tab/flechas y retorno estructurado como un {bright_yellow}Hash{reset} de Ruby ({white}{ key: valor, ... }{reset}).
185
+
186
+ {cyan}Sintaxis DSL por Bloque:{reset}
187
+ {bright_white}datos = GRmenu.form("Nuevo Usuario", color: "cyan", style: 3, shadow: true) do |f|{reset}
188
+ {bright_white} f.text :nombre, "Nombre Completo:", placeholder: "Ej. Gabo Dev"{reset}
189
+ {bright_white} f.password :password, "Contrasena:", mask: "*"{reset}
190
+ {bright_white} f.number :puerto, "Puerto TCP:", default: 8080, min: 1024, max: 65535, step: 1{reset}
191
+ {bright_white} f.select :entorno, "Ambiente:", ["Desarrollo", "Staging", "Produccion"]{reset}
192
+ {bright_white} f.boolean :activo, "¿Habilitar SSL?", default: true{reset}
193
+ {bright_white}end{reset}
194
+ {bright_white}# Retorna: { nombre: "Gabo Dev", password: "...", puerto: 8080, entorno: "...", activo: true }{reset}
195
+ {bright_white}# Si el usuario presiona Esc o [ Cancelar ], retorna nil.{reset}
196
+
197
+ {cyan}Tipos de Campos Disponibles en el Builder (f):{reset}
198
+ - {bright_white}f.text(key, label, default: "", placeholder: ""){reset}
199
+ Campo de entrada de texto editable con barrita indicadora de cursor {bright_white}│{reset}.
200
+ - {bright_white}f.password(key, label, default: "", mask: "*"){reset}
201
+ Campo protegido de contrasena. Oculta los caracteres reales tras la mascara especificada.
202
+ - {bright_white}f.number(key, label, default: 0, min: nil, max: nil, step: 1){reset}
203
+ Campo numerico con limites opcionales min/max. Permite escribir digitos directamente o usar
204
+ las teclas {yellow}+{reset} / {yellow}-{reset} y {yellow}←{reset} / {yellow}→{reset} para incrementar/decrementar por paso.
205
+ - {bright_white}f.select(key, label, opciones = [], default: nil){reset}
206
+ Selector interactivo inline {cyan}< Opcion >{reset}. Cicla opciones con {yellow}← / →{reset} o {yellow}Espacio{reset}.
207
+ - {bright_white}f.boolean(key, label, default: false){reset} (Alias: {bright_white}f.checkbox{reset})
208
+ Casilla interactiva {green}[X] Si{reset} / {red}[ ] No{reset}. Alterna con {yellow}Espacio{reset} o {yellow}s / n / y{reset}.
209
+
210
+ {cyan}Parametros de Configuracion de GRmenu.form:{reset}
211
+ - {cyan}title:{reset} [String] Titulo centrado en el marco superior.
212
+ - {cyan}color / border_color:{reset} Color del marco exterior (soporta hex, cromatico o "rgb").
213
+ - {cyan}title_color:{reset} Color del texto del titulo superior.
214
+ - {cyan}focus_color:{reset} Color del campo y botones activos cuando tienen foco (default: "green").
215
+ - {cyan}cursor_char:{reset} Caracter para la barrita de cursor activa (default: "│").
216
+ - {cyan}style:{reset} Estilo de borde (1 al 20, default: 3).
217
+ - {cyan}shadow:{reset} [Boolean] Proyeccion de sombra 3D lateral e inferior (default: true).
218
+ - {cyan}submit_label:{reset} Etiqueta del boton de confirmacion (default: "Guardar").
219
+ - {cyan}cancel_label:{reset} Etiqueta del boton de cancelacion (default: "Cancelar").
220
+
221
+ {cyan}Atajos y Navegacion en Formulario:{reset}
222
+ - {yellow}Tab / ↓{reset}: Avanzar al siguiente campo o boton.
223
+ - {yellow}Shift+Tab / ↑{reset}: Retroceder al campo o boton anterior.
224
+ - {yellow}Enter{reset}: En campos de texto/numero pasa al siguiente campo; en botones ejecuta Guardar o Cancelar.
225
+ - {yellow}← / →{reset}: Mover la barrita de cursor {bright_white}│{reset} dentro del texto, o cambiar opcion en selectores.
226
+ - {yellow}Home / Ctrl+A{reset}: Mover el cursor al inicio del texto.
227
+ - {yellow}End / Ctrl+E{reset}: Mover el cursor al final del texto.
228
+ - {yellow}Ctrl+U{reset}: Limpiar por completo el campo actual.
229
+ - {yellow}Backspace / Delete{reset}: Borrar el caracter anterior o posterior a la barrita de cursor.
230
+ - {yellow}Esc{reset}: Cancelar el formulario inmediatamente (retorna nil).
231
+
232
+ {bright_green}* GRmenu.modal(title_o_content, ...){reset} (Alias: {bright_white}GRmenu.popup{reset})
233
+ Ventana emergente flotante con sombra proyectada 3D ({gray}▒▒{reset}), auto-centrado en pantalla,
234
+ ajuste de texto automatico (word-wrapping) y botones de accion interactivos con foco navegable.
235
+
236
+ {cyan}Ejemplos de Uso:{reset}
237
+ {bright_white}boton = GRmenu.modal({reset}
238
+ {bright_white} title: "Actualizacion de Servidor",{reset}
239
+ {bright_white} content: "Se han descargado 42 paquetes nuevos.\n¿Deseas instalarlos ahora?",{reset}
240
+ {bright_white} buttons: ["Instalar Ahora", "Posponer", "Cancelar"],{reset}
241
+ {bright_white} color: "cyan",{reset}
242
+ {bright_white} style: 3,{reset}
243
+ {bright_white} shadow: true{reset}
244
+ {bright_white}){reset}
245
+ {bright_white}# Retorna el String del boton elegido: "Instalar Ahora", "Posponer", o nil si pulsa Esc.{reset}
246
+
247
+ {cyan}Parametros de Configuracion de GRmenu.modal:{reset}
248
+ - {cyan}title:{reset} [String] Titulo del recuadro superior.
249
+ - {cyan}content:{reset} [String] Mensaje interior (soporta saltos de linea y parrafos largos).
250
+ - {cyan}buttons:{reset} [Array] Lista de etiquetas de botones (default: ["Aceptar"]).
251
+ - {cyan}color / border_color:{reset} Color del marco (soporta hex, cromatico o "rgb").
252
+ - {cyan}title_color:{reset} Color del titulo.
253
+ - {cyan}content_color:{reset} Color del texto del cuerpo.
254
+ - {cyan}shadow:{reset} [Boolean] Muestra sombra proyectada 3D {gray}▒▒{reset} (default: true).
255
+ - {cyan}style:{reset} Estilo de borde (1 al 20, default: 3).
256
+ - {cyan}Teclas:{reset} {yellow}← / → / Tab / Shift+Tab{reset} para alternar botones, {yellow}Enter / Espacio{reset} para pulsar boton, {yellow}Esc{reset} para cancelar.
257
+
173
258
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
174
- {bright_yellow}[5] PESTANAS, ENTRADA DE DATOS (INPUT), MODALES Y CONTROLES{reset}
259
+ {bright_yellow}[6] CONTROL DE COLOR Y FONDO DE VENTANA: GRmenu.window{reset}
260
+ {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
261
+ Permite pintar el fondo global de toda la terminal mediante secuencias de escape nativas
262
+ OSC 11 (`\e]11;#hex\a`) y borrado con extension de color de fondo (ANSI BCE `\e[2J\e[H`).
263
+
264
+ {cyan}Seguridad y Auto-Restauracion Limpia:{reset}
265
+ {bright_green}¡Totalmente seguro!{reset} GRmenu registra limpiadores automaticos con {bright_white}at_exit{reset} y trampa
266
+ de senales ({bright_white}SIGINT{reset}, {bright_white}SIGTERM{reset}, {bright_white}SIGHUP{reset}). Si el programa finaliza, falla con una excepcion,
267
+ o el usuario pulsa Ctrl+C, el fondo de la terminal {bright_yellow}siempre vuelve a su color natural original{reset}
268
+ mediante OSC 111 (`\e]111\a`) sin necesidad de llamar metodos de reseteo manualmente.
269
+
270
+ {cyan}Metodos del Modulo GRmenu.window:{reset}
271
+ {bright_green}* GRmenu.window.color(valor){reset} (Alias: {bright_white}GRmenu.window.bg(valor){reset})
272
+ Cambia el color de fondo de la ventana completa de la consola. Acepta:
273
+ - {bright_white}Hexadecimal directo:{reset} {cyan}GRmenu.window.color("#1a1b26"){reset}, {cyan}GRmenu.window.bg("#0f172a"){reset}
274
+ - {bright_white}Nombres integrados:{reset} {cyan}GRmenu.window.color("red"){reset}, {cyan}GRmenu.window.bg("blue"){reset}
275
+ - {bright_white}Nuevo alias espanol:{reset} {cyan}GRmenu.window.color("negro"){reset} (o "black")
276
+ - {bright_white}Arreglos RGB [R, G, B]:{reset}{cyan}GRmenu.window.bg([15, 32, 39]){reset}
277
+
278
+ {bright_green}* GRmenu.window.reset{reset}
279
+ Restaura de forma inmediata el color de fondo predeterminado de la terminal (OSC 111).
280
+ (Util si deseas volver al fondo normal en medio de la ejecucion de tu script).
281
+
282
+ {bright_green}* GRmenu.window.title(texto){reset}
283
+ Cambia el titulo superior de la ventana o pestana de la terminal (OSC 0).
284
+ Ejemplo: {bright_white}GRmenu.window.title("Panel de Control - v4.2"){reset}
285
+
286
+ {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
287
+ {bright_yellow}[7] PESTANAS, ENTRADA DE DATOS (INPUT) Y CONTROLES INTERACTIVOS{reset}
175
288
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
176
289
 
177
290
  {bright_green}* GRmenu.tabs(tabs_hash, title: nil, style: 3, mouse: false, ...){reset}
@@ -179,16 +292,16 @@
179
292
  {bright_white}GRmenu.tabs({{reset}
180
293
  {bright_white} "Servidores" => [["NGINX", -> {}], ["Apache", -> {}]],{reset}
181
294
  {bright_white} "Bases de Datos" => [["Postgres", -> {}], ["Redis", -> {}]],{reset}
182
- {bright_white} "Ajustes" => [["Tema Neon", -> {}]]{reset}
295
+ {bright_white} "Ajustes" => [["Tema Cromatico", -> {}]]{reset}
183
296
  {bright_white}}, title: "Panel Multitarea", style: 3, mouse: true).draw{reset}
184
297
  - {cyan}Navegacion:{reset} Pulsa {yellow}Tab{reset} para avanzar de pestana, {yellow}Shift+Tab{reset} para retroceder, o haz {yellow}clic{reset} en el titulo de la pestana.
185
298
 
186
299
  {bright_green}* GRmenu.input(prompt_o_titulo, ...){reset}
187
- Rediseno de caja de texto con marco integrado, titulo superior centrado en el borde,
188
- etiqueta interna ({cyan}label:{reset}), cursor de bloque en vivo {bright_white}█{reset} y soporte de contrasenas.
300
+ Caja de captura de texto interactiva con titulo superior centrado en el marco,
301
+ etiqueta interna ({cyan}label:{reset}), cursor en vivo {bright_white}█{reset} y soporte de contrasenas.
189
302
  Acepta argumentos posicionales o por palabra clave:
190
303
  - {bright_white}servidor = GRmenu.input(title: "Configuracion", label: "URL del Host:", default: "http://localhost:8080", style: 3){reset}
191
- - {bright_white}token = GRmenu.input(title: "Seguridad", label: "Token Secreto:", password: true, style: 3, border_color: "neon_red"){reset}
304
+ - {bright_white}token = GRmenu.input(title: "Seguridad", label: "Token Secreto:", password: true, style: 3, border_color: "chromatic_red"){reset}
192
305
  - {bright_white}nombre = GRmenu.input("Ingresa tu Nombre:", default: "admin"){reset}
193
306
  - {cyan}password:{reset} [Boolean] Enmascara el texto con asteriscos (****).
194
307
  - {cyan}default:{reset} [String] Valor inicial pre-rellenado editable.
@@ -210,21 +323,21 @@
210
323
  - {cyan}Retorna:{reset} {bright_yellow}Numeric{reset} con el valor seleccionado.
211
324
 
212
325
  {bright_green}* GRmenu.confirm(pregunta, ...){reset}
213
- Modal interactivo con botones [ Sí ] y [ No ].
326
+ Modal interactivo rapido con botones [ Sí ] y [ No ].
214
327
  - Acepta {bright_white}GRmenu.confirm("¿Deseas reiniciar?", default: true, style: 3){reset} o {bright_white}confirm(question: "...", default: false){reset}.
215
328
  - {cyan}Teclas:{reset} {yellow}← / → / Tab{reset}, {yellow}s / y{reset} (Si), {yellow}n{reset} (No), {yellow}Enter{reset}.
216
329
  - {cyan}Retorna:{reset} {bright_yellow}true{reset} o {bright_yellow}false{reset}.
217
330
 
218
331
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
219
- {bright_yellow}[6] BARRA DE PROGRESO, SPINNER E IMAGENES ANSI TRUECOLOR{reset}
332
+ {bright_yellow}[8] BARRA DE PROGRESO, SPINNER E IMAGENES ANSI TRUECOLOR{reset}
220
333
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
221
334
 
222
335
  {bright_green}* GRmenu.progress(total = 100, ... &bloque){reset}
223
336
  Barra de progreso fluida con soporte de status dinamico protegido contra desbordes.
224
- - Acepta {bright_white}GRmenu.progress(100, title: "Descargando") do |bar| ... end{reset} o con keyword {bright_white}progress(total: 50){reset}.
337
+ - Acepta {bright_white}GRmenu.progress(100, title: "Descargando") do |bar| ... bar.advance; bar.status = "Ok" end{reset}.
225
338
 
226
339
  {bright_green}* GRmenu.spinner(mensaje = "Cargando...", ... &bloque){reset}
227
- Indicador giratorio animado en hilo de ejecucion secundario mientras el bloque corre.
340
+ Indicador giratorio animado en hilo secundario concurrente mientras el bloque se ejecuta.
228
341
  - Acepta {bright_white}GRmenu.spinner("Compilando assets...") { sleep 1.5 }{reset} o {bright_white}spinner(message: "..."){reset}.
229
342
 
230
343
  {bright_green}* GRmenu.image(filepath, width: 40, height: nil, style: 3, color: "cyan", center: true){reset}
@@ -234,26 +347,26 @@
234
347
  - Soporte completo para fondos transparentes (canal alfa PNG).
235
348
 
236
349
  {bright_green}* GRmenu.banner(texto, delay = 0, color: "magenta", level: 2, style: 3, font: 1){reset}
237
- Convierte cadenas en arte ASCII 3D con bordes y fuentes personalizables.
350
+ Convierte cadenas de texto en arte ASCII 3D con bordes y fuentes seleccionables.
238
351
 
239
352
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
240
- {bright_yellow}[7] SISTEMA DE TEMAS .gr (CSS PARA TUI) Y EXPORTACION{reset}
353
+ {bright_yellow}[9] SISTEMA DE TEMAS .gr (CSS PARA TUI) Y EXPORTACION{reset}
241
354
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
242
355
 
243
356
  {cyan}1. Temas Predefinidos Disponibles:{reset}
244
- {bright_white}GRmenu.theme(:neon_red){reset} # Rojo neon vibrante con bordes dobles
245
- {bright_white}GRmenu.theme(:cyberpunk){reset} # Neones cian, amarillo y Chroma RGB animado
246
- {bright_white}GRmenu.theme(:matrix){reset} # Verdes fosforescentes estilo Hacker
247
- {bright_white}GRmenu.theme(:dracula){reset} # Morados oscuros, rosas y cian
248
- {bright_white}GRmenu.theme(:nord){reset} # Azules articos y tonos frios escandinavos
249
- {bright_white}GRmenu.theme(:monokai){reset} # Paleta calida amarilla, magenta y naranja
250
- {bright_white}GRmenu.theme(:sunset){reset} # Degradados rojo fuego, naranja y dorado
251
-
252
- {cyan}2. Especificacion Completa de Bloques en un Archivo o Bloque CSS .gr:{reset}
357
+ {bright_white}GRmenu.theme(:chromatic_red){reset} # Rojo cromatico vibrante con bordes dobles
358
+ {bright_white}GRmenu.theme(:cyberpunk){reset} # Cromaticos cian, amarillo y Chroma RGB animado
359
+ {bright_white}GRmenu.theme(:matrix){reset} # Verdes fosforescentes estilo Hacker
360
+ {bright_white}GRmenu.theme(:dracula){reset} # Morados oscuros, rosas y cian
361
+ {bright_white}GRmenu.theme(:nord){reset} # Azules articos y tonos frios escandinavos
362
+ {bright_white}GRmenu.theme(:monokai){reset} # Paleta calida amarilla, magenta y naranja
363
+ {bright_white}GRmenu.theme(:sunset){reset} # Degradados fuego, naranja y dorado
364
+
365
+ {cyan}2. Especificacion Completa de Bloques en Archivos o Bloques CSS .gr:{reset}
253
366
  {gray}GRmenu::config<-1->{reset}
254
- {white}@theme:: "CyberNeon"{reset}
367
+ {white}@theme:: "CyberChromatic"{reset}
255
368
  {white}@author:: "GRcode"{reset}
256
- {white}@version:: "4.1"{reset}
369
+ {white}@version:: "4.2"{reset}
257
370
 
258
371
  {cyan}<<menu{reset}
259
372
  {white}style:: 3{reset} # Estilo de marco 1..20
@@ -263,35 +376,28 @@
263
376
  {white}center:: true{reset} # Centrado en consola (true / false)
264
377
  {white}mouse:: true{reset} # Activa soporte de raton (true / false)
265
378
  {white}desc_prefix:: [i]{reset} # Prefijo de tooltip ("[i]", "*", "->")
266
- {white}border:: neon_cyan:1{reset} # color:brillo (soporta "rgb:2")
267
- {white}title:: neon_yellow:2{reset}
268
- {white}focus:: neon_red:2{reset}
379
+ {white}border:: chromatic_cyan:1{reset} # color:brillo (soporta "rgb:2")
380
+ {white}title:: chromatic_yellow:2{reset}
381
+ {white}focus:: chromatic_red:2{reset}
269
382
  {white}options:: white:1{reset}
270
- {white}banner:: neon_magenta:2{reset}
383
+ {white}banner:: chromatic_magenta:2{reset}
271
384
  {white}subtitle:: cyan:1{reset}
272
385
  {white}divider:: blue:1{reset}
273
386
  {cyan}>>{reset}
274
387
 
275
388
  {cyan}<<submenu{reset}
276
389
  {white}style:: 3{reset} # Estilo de marco del submenu
277
- {white}border:: neon_yellow:1{reset} # Borde de las cajas laterales
278
- {white}focus:: neon_cyan:2{reset} # Opcion seleccionada en el submenu
390
+ {white}border:: chromatic_yellow:1{reset} # Borde de las cajas laterales
391
+ {white}focus:: chromatic_cyan:2{reset} # Opcion seleccionada en el submenu
279
392
  {white}options:: white:1{reset} # Opciones inactivas
280
- {white}title:: neon_yellow:2{reset} # Titulo de la caja del submenu
281
- {white}arrow:: neon_cyan:2{reset} # Color de la flecha indicadora ▶
393
+ {white}title:: chromatic_yellow:2{reset} # Titulo de la caja del submenu
394
+ {white}arrow:: chromatic_cyan:2{reset} # Color de la flecha indicadora ▶
282
395
  {cyan}>>{reset}
283
396
 
284
397
  {cyan}<<tabs{reset}
285
- {white}active_tab:: neon_yellow:2{reset}# Color de la pestana seleccionada [ Tab ]
398
+ {white}active_tab:: chromatic_yellow:2{reset}# Color de la pestana seleccionada [ Tab ]
286
399
  {white}tab_color:: gray:1{reset} # Color de las pestanas inactivas
287
- {white}indicator:: neon_cyan:2{reset} # Color de los corchetes o separadores
288
- {cyan}>>{reset}
289
-
290
- {cyan}<<input{reset}
291
- {white}style:: 3{reset} # Estilo de marco del input
292
- {white}border_color:: neon_cyan:1{reset}# Marco de la caja
293
- {white}title_color:: neon_yellow:2{reset}# Titulo centrado en marco superior
294
- {white}label_color:: white:2{reset} # Etiqueta interior del campo
400
+ {white}indicator:: chromatic_cyan:2{reset} # Color de los corchetes o separadores
295
401
  {cyan}>>{reset}
296
402
 
297
403
  {cyan}<<table{reset}
@@ -325,20 +431,43 @@
325
431
  {white}unchecked_mark:: [ ]{reset}
326
432
  {cyan}>>{reset}
327
433
 
328
- {cyan}3. Exportacion e Importacion:{reset}
329
- - {bright_white}menu.style(<<-GR ... GR){reset} Inyeccion directa de CSS.
330
- - {bright_white}menu.export_theme("tema.gr"){reset} Exporta el tema activo.
434
+ {cyan}<<input{reset}
435
+ {white}style:: 3{reset} # Estilo de marco de la caja de entrada
436
+ {white}border_color:: chromatic_cyan:1{reset}# Color del borde
437
+ {white}title_color:: chromatic_yellow:2{reset}# Color del titulo centrado superior
438
+ {white}label_color:: white:2{reset} # Color de la etiqueta del campo
439
+ {cyan}>>{reset}
440
+
441
+ {cyan}<<modal{reset}
442
+ {white}style:: 3{reset} # Estilo de marco de la ventana emergente 3D
443
+ {white}border_color:: chromatic_cyan:1{reset}# Color del borde
444
+ {white}title_color:: chromatic_yellow:2{reset}# Color del titulo centrado
445
+ {white}content_color:: white:1{reset} # Color del texto del mensaje
446
+ {white}shadow:: true{reset} # Proyeccion de sombra 3D
447
+ {cyan}>>{reset}
448
+
449
+ {cyan}<<form{reset}
450
+ {white}style:: 3{reset} # Estilo de marco del formulario multi-campo
451
+ {white}border_color:: chromatic_cyan:1{reset}# Color del marco exterior
452
+ {white}title_color:: chromatic_yellow:2{reset}# Color del titulo del formulario
453
+ {white}focus_color:: green:2{reset} # Color de resalto del campo y botones activos
454
+ {white}shadow:: true{reset} # Proyeccion de sombra 3D
455
+ {cyan}>>{reset}
456
+
457
+ {cyan}3. Exportacion e Importacion de Temas:{reset}
458
+ - {bright_white}menu.style(<<-GR ... GR){reset} Inyeccion directa de CSS inline.
459
+ - {bright_white}menu.export_theme("mi_tema.gr"){reset} Exporta el tema activo a un archivo .gr.
331
460
  - {bright_white}$ ruby app.rb -theme -o mi_tema.gr{reset} Exportacion automatica por CLI.
332
461
 
333
462
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
334
- {bright_yellow}[8] MODULO DE COLORES: Color / C Y PERSONALIZACION HEXADECIMAL{reset}
463
+ {bright_yellow}[10] MODULO DE COLORES: Color / C Y PERSONALIZACION HEXADECIMAL{reset}
335
464
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
336
- {cyan}1. Como Usar Colores Personalizados (Hexadecimal y Neon):{reset}
337
- El motor soporta de forma 100% nativa TrueColor (24 bits) en tres vias:
465
+ {cyan}1. Como Usar Colores Personalizados (Hexadecimal y Cromatico):{reset}
466
+ El motor soporta TrueColor nativo de 24 bits en todas sus interfaces:
338
467
 
339
468
  {white}A) En Codigo Normal con menu.set_style:{reset}
340
469
  {bright_white}menu.set_style.border("#FF0055").title("#00F5FF").focus("gold"){reset}
341
- {bright_white}menu.set_style.banner("neon_emerald").subtitle("#A6E3A1"){reset}
470
+ {bright_white}menu.set_style.banner("chromatic_emerald").subtitle("#A6E3A1"){reset}
342
471
 
343
472
  {white}B) En CSS Inline tipo <style> (menu.style <<-GR ... GR):{reset}
344
473
  {bright_white}menu.style(<<-GR){reset}
@@ -349,43 +478,44 @@
349
478
 
350
479
  {white}C) Directamente con el modulo Color / C:{reset}
351
480
  {bright_white}puts Color.hex("#FF0055", "Texto Carmesi Hex"){reset}
352
- {bright_white}puts Color.neon_emerald("Texto Esmeralda Neon"){reset}
481
+ {bright_white}puts Color.chromatic_emerald("Texto Esmeralda Cromatico"){reset}
482
+ {bright_white}puts Color.bold("Texto en Negrita"){reset}
353
483
 
354
- {cyan}2. Catalogo de 90+ Colores (Cada uno con version Normal y version Neon):{reset}
484
+ {cyan}2. Catalogo de 90+ Colores (Cada uno con version Normal y version Cromatica):{reset}
355
485
  {bright_yellow}Metales y Joyas:{reset}
356
- - gold / neon_gold | silver / neon_silver | platinum / neon_platinum
357
- - bronze / neon_bronze | copper / neon_copper | ruby / neon_ruby
358
- - emerald / neon_emerald | sapphire / neon_sapphire
486
+ - gold / chromatic_gold | silver / chromatic_silver | platinum / chromatic_platinum
487
+ - bronze / chromatic_bronze | copper / chromatic_copper | ruby / chromatic_ruby
488
+ - emerald / chromatic_emerald | sapphire / chromatic_sapphire
359
489
 
360
490
  {bright_yellow}Fuego, Atardecer y Calidos:{reset}
361
- - crimson / neon_crimson | scarlet / neon_scarlet | coral / neon_coral
362
- - amber / neon_amber | peach / neon_peach | orange / neon_orange
363
- - red / neon_red | yellow / neon_yellow
491
+ - crimson / chromatic_crimson | scarlet / chromatic_scarlet | coral / chromatic_coral
492
+ - amber / chromatic_amber | peach / chromatic_peach | orange / chromatic_orange
493
+ - red / chromatic_red | yellow / chromatic_yellow
364
494
 
365
495
  {bright_yellow}Naturaleza, Menta y Verdes:{reset}
366
- - lime / neon_lime | mint / neon_mint | jade / neon_jade
367
- - forest / neon_forest | teal / neon_teal | green / neon_green
496
+ - lime / chromatic_lime | mint / chromatic_mint | jade / chromatic_jade
497
+ - forest / chromatic_forest | teal / chromatic_teal | green / chromatic_green
368
498
 
369
499
  {bright_yellow}Agua, Cielo y Tonos Frios:{reset}
370
- - turquoise / neon_turquoise | sky / neon_sky | azure / neon_azure
371
- - cobalt / neon_cobalt | ice / neon_ice | cyan / neon_cyan
372
- - aqua / neon_aqua | blue / neon_blue
500
+ - turquoise / chromatic_turquoise | sky / chromatic_sky | azure / chromatic_azure
501
+ - cobalt / chromatic_cobalt | ice / chromatic_ice | cyan / chromatic_cyan
502
+ - aqua / chromatic_aqua | blue / chromatic_blue
373
503
 
374
504
  {bright_yellow}Pasteles, Morados y Rosas:{reset}
375
- - lavender / neon_lavender | mauve / neon_mauve | violet / neon_violet
376
- - indigo / neon_indigo | fuchsia / neon_fuchsia | rose / neon_rose
377
- - hot_pink / neon_hot_pink | pink / neon_pink | purple / neon_purple
378
- - magenta / neon_magenta
505
+ - lavender / chromatic_lavender | mauve / chromatic_mauve | violet / chromatic_violet
506
+ - indigo / chromatic_indigo | fuchsia / chromatic_fuchsia | rose / chromatic_rose
507
+ - hot_pink / chromatic_hot_pink | pink / chromatic_pink | purple / chromatic_purple
508
+ - magenta / chromatic_magenta
379
509
 
380
510
  {bright_yellow}Terminal, Hacker y Monitores:{reset}
381
- - matrix / neon_matrix | charcoal / neon_charcoal | white / neon_white
382
- - gray | black
511
+ - matrix / chromatic_matrix | charcoal / chromatic_charcoal | white / chromatic_white
512
+ - gray / bright_gray | black / negro
383
513
 
384
514
  {cyan}3. Modo Dinamico Arcoiris (Chroma Loop):{reset}
385
515
  - {bright_yellow}rgb{reset} / {bright_yellow}rainbow{reset} / {bright_yellow}chroma{reset} -> Espectro animado continuo a 30 FPS en vivo.
386
516
 
387
517
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
388
- {bright_yellow}[9] FUENTES ASCII 3D PARA BANNERS (font: 1 al 10){reset}
518
+ {bright_yellow}[11] FUENTES ASCII 3D PARA BANNERS (font: 1 al 10){reset}
389
519
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
390
520
  {yellow} 1{reset} -> ANSI Shadow 3D (Default) {yellow} 6{reset} -> Modular Pipe 3D
391
521
  {yellow} 2{reset} -> Slant 3D (FIGlet) {yellow} 7{reset} -> Bubble / Round Gothic
@@ -394,7 +524,7 @@
394
524
  {yellow} 5{reset} -> Small Slant / Mini 3D {yellow}10{reset} -> Arcade Stars Matrix
395
525
 
396
526
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
397
- {bright_yellow}[10] ESTILOS DE MARCO Y BORDES (style: 1 al 20){reset}
527
+ {bright_yellow}[12] ESTILOS DE MARCO Y BORDES (style: 1 al 20){reset}
398
528
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
399
529
  {yellow} 1{reset} -> ##### (Hash) {yellow}11{reset} -> ░░░░░ (Sombreado suave)
400
530
  {yellow} 2{reset} -> ┌───┐ (Linea simple) {yellow}12{reset} -> █████ (Bloque solido)
@@ -408,25 +538,28 @@
408
538
  {yellow}10{reset} -> ▒▒▒▒▒ (Sombreado medio) {yellow}20{reset} -> ★☆☆☆★ (Estrellas)
409
539
 
410
540
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
411
- {bright_yellow}[11] NAVEGACION POR TECLADO Y CONTROLES CON RATON{reset}
541
+ {bright_yellow}[13] NAVEGACION POR TECLADO Y CONTROLES CON RATON{reset}
412
542
  {bright_magenta}═════════════════════════════════════════════════════════════════════════════════════{reset}
413
- * {bright_yellow}↑ (Arriba):{reset} Mover foco arriba. En el tope salta al fondo (Snake loop).
414
- * {bright_yellow}↓ (Abajo):{reset} Mover foco abajo. En el fondo salta al tope (Snake loop).
415
- * {bright_yellow}Tab / Shift+Tab:{reset} En menus con pestanas (tabs), cambia a la siguiente o anterior pestana.
416
- * {bright_yellow}→ (Derecha):{reset} En opciones con submenus (▶), despliega el submenu lateral (hasta 3 niveles).
417
- * {bright_yellow}← / Esc:{reset} En submenus laterales, cierra el nivel actual y regresa al nivel anterior.
418
- * {bright_yellow}Enter:{reset} Ejecuta la opcion seleccionada o confirma modal/tabla.
543
+ * {bright_yellow}↑ (Arriba):{reset} Mover foco arriba. En formularios/pestanas retrocede al elemento anterior.
544
+ * {bright_yellow}↓ (Abajo):{reset} Mover foco abajo. En formularios/pestanas avanza al elemento siguiente.
545
+ * {bright_yellow}Tab / Shift+Tab:{reset} En pestanas y formularios, avanza o retrocede entre campos y botones.
546
+ * {bright_yellow}→ (Derecha):{reset} En submenus despliega el siguiente nivel; en formularios mueve el cursor {bright_white}│{reset} a la derecha o incrementa selector.
547
+ * {bright_yellow}← (Izquierda):{reset} En submenus regresa al nivel anterior; en formularios mueve el cursor {bright_white}│{reset} a la izquierda o retrocede selector.
548
+ * {bright_yellow}Home / Ctrl+A:{reset} En campos de texto de formularios, salta al inicio de la linea.
549
+ * {bright_yellow}End / Ctrl+E:{reset} En campos de texto de formularios, salta al final de la linea.
550
+ * {bright_yellow}Enter:{reset} Ejecuta la opcion activa, confirma formulario/modal/tabla o avanza de campo.
551
+ * {bright_yellow}Esc / q:{reset} Cierra submenu, cancela formulario o modal (retorna nil), o sale del menu.
552
+ * {bright_yellow}Espacio:{reset} Alterna casillas en checkbox y booleanos ([X] / [ ]), o cicla selectores.
553
+ * {bright_yellow}+ / -:{reset} En campos numericos de formularios, incrementa o decrementa el valor por paso.
554
+ * {bright_yellow}Backspace / Delete:{reset} Borra caracteres a la izquierda o derecha de la barrita de cursor {bright_white}│{reset}.
555
+ * {bright_yellow}Ctrl+U:{reset} Limpia por completo el contenido del campo de texto o buscador actual.
556
+ * {bright_yellow}s:{reset} En tablas interactivas, ordena las filas por la columna activa.
557
+ * {bright_yellow}a / n / i:{reset} En listas checkbox: (a) marcar todos, (n) ninguno, (i) invertir seleccion.
419
558
  * {bright_yellow}Raton (mouse: true):{reset}
420
- - {cyan}Clic izquierdo:{reset} Enfoca la opcion pulsada; si ya esta enfocada, ejecuta inmediatamente.
421
- - {cyan}Clic en submenus:{reset}Abre o enfoca la caja del submenu correspondiente.
422
- - {cyan}Clic en pestanas:{reset}Cambia inmediatamente a la pestana sobre la que se hizo clic.
423
- - {cyan}Rueda de scroll:{reset} Desplaza el foco arriba o abajo (↑ / ↓) fluidamente en el panel activo.
424
- - {cyan}Clic en ▲ / ▼:{reset} Avanza o retrocede de pagina cuando hay paginacion.
425
- * {bright_yellow}s:{reset} En tablas interactivas, ordena por la columna activa.
426
- * {bright_yellow}Espacio:{reset} En casillas de verificacion (checkbox), marca/desmarca.
427
- * {bright_yellow}a / n / i:{reset} En checkbox: (a) marcar todos, (n) ninguno, (i) invertir.
428
- * {bright_yellow}q / Esc:{reset} Sale del menu, cancela modal o limpia buscador.
429
- * {bright_yellow}Backspace:{reset} En buscadores e inputs, borra la ultima letra.
430
- * {bright_yellow}Ctrl+U:{reset} En buscadores e inputs, limpia toda la linea escrita.
559
+ - {cyan}Clic izquierdo:{reset} Enfoca la opcion pulsada; si ya esta enfocada, ejecuta inmediatamente.
560
+ - {cyan}Clic en submenus:{reset} Abre o enfoca la caja del submenu correspondiente.
561
+ - {cyan}Clic en pestanas:{reset} Cambia inmediatamente a la pestana seleccionada con el puntero.
562
+ - {cyan}Rueda de scroll:{reset} Desplaza el foco arriba o abajo (↑ / ↓) fluidamente en el panel activo.
563
+ - {cyan}Clic en ▲ / ▼:{reset} Avanza o retrocede de pagina cuando hay paginacion.
431
564
 
432
565
  {bright_blue}─────────────────────────────────────────────────────────────────────────────────────{reset}
@@ -0,0 +1,74 @@
1
+ GRmenu::config<-1->
2
+
3
+ @theme:: "Chromatic Red"
4
+ @author:: "grcode"
5
+ @version:: "1.0"
6
+
7
+ <<menu
8
+ style:: 3
9
+ banner_style:: 3
10
+ font:: 1
11
+ animate:: diagonal
12
+ desc_prefix:: [!]
13
+ center:: true
14
+ border:: chromatic_red:2
15
+ title:: chromatic_red:2
16
+ focus:: chromatic_yellow:2
17
+ options:: white:1
18
+ banner:: chromatic_red:2
19
+ subtitle:: chromatic_pink:2
20
+ divider:: chromatic_red:1
21
+ >>
22
+
23
+ <<table
24
+ style:: 3
25
+ header_color:: chromatic_yellow:2
26
+ border_color:: chromatic_red:2
27
+ selected_row:: chromatic_red:2
28
+ row_color:: white:1
29
+ zebra_striping:: true
30
+ >>
31
+
32
+ <<card
33
+ style:: 7
34
+ border_color:: chromatic_red:2
35
+ title_color:: chromatic_yellow:2
36
+ content_color:: white:1
37
+ >>
38
+
39
+ <<slider
40
+ style:: 3
41
+ color:: chromatic_red:2
42
+ fill_char:: █
43
+ empty_char:: ░
44
+ >>
45
+
46
+ <<checkbox
47
+ style:: 3
48
+ color:: chromatic_red:2
49
+ checked_mark:: [X]
50
+ unchecked_mark:: [ ]
51
+ >>
52
+
53
+ <<input
54
+ style:: 3
55
+ border_color:: chromatic_red:2
56
+ title_color:: chromatic_yellow:2
57
+ label_color:: white:1
58
+ >>
59
+
60
+ <<modal
61
+ style:: 3
62
+ border_color:: chromatic_red:2
63
+ title_color:: chromatic_yellow:2
64
+ content_color:: white:1
65
+ shadow:: true
66
+ >>
67
+
68
+ <<form
69
+ style:: 3
70
+ border_color:: chromatic_red:2
71
+ title_color:: chromatic_yellow:2
72
+ focus_color:: chromatic_yellow:2
73
+ shadow:: true
74
+ >>
@@ -52,9 +52,25 @@ GRmenu::config<-1->
52
52
  unchecked_mark:: [ ]
53
53
  >>
54
54
 
55
+ <<input
56
+ style:: 3
57
+ border_color:: rgb:2
58
+ title_color:: yellow:2
59
+ label_color:: cyan:2
60
+ >>
61
+
55
62
  <<modal
56
63
  style:: 3
57
64
  border_color:: rgb:2
58
- prompt_color:: yellow:2
59
- mask_char:: *
65
+ title_color:: yellow:2
66
+ content_color:: white:1
67
+ shadow:: true
68
+ >>
69
+
70
+ <<form
71
+ style:: 3
72
+ border_color:: rgb:2
73
+ title_color:: yellow:2
74
+ focus_color:: cyan:2
75
+ shadow:: true
60
76
  >>
@@ -52,9 +52,25 @@ GRmenu::config<-1->
52
52
  unchecked_mark:: [ ]
53
53
  >>
54
54
 
55
+ <<input
56
+ style:: 7
57
+ border_color:: purple:2
58
+ title_color:: pink:2
59
+ label_color:: cyan:2
60
+ >>
61
+
55
62
  <<modal
56
63
  style:: 7
57
64
  border_color:: purple:2
58
- prompt_color:: cyan:2
59
- mask_char:: *
65
+ title_color:: pink:2
66
+ content_color:: white:1
67
+ shadow:: true
68
+ >>
69
+
70
+ <<form
71
+ style:: 7
72
+ border_color:: purple:2
73
+ title_color:: pink:2
74
+ focus_color:: green:2
75
+ shadow:: true
60
76
  >>
@@ -52,9 +52,25 @@ GRmenu::config<-1->
52
52
  unchecked_mark:: [ ]
53
53
  >>
54
54
 
55
+ <<input
56
+ style:: 2
57
+ border_color:: green:2
58
+ title_color:: green:2
59
+ label_color:: green:2
60
+ >>
61
+
55
62
  <<modal
56
63
  style:: 2
57
64
  border_color:: green:2
58
- prompt_color:: green:2
59
- mask_char:: *
65
+ title_color:: green:2
66
+ content_color:: green:1
67
+ shadow:: true
68
+ >>
69
+
70
+ <<form
71
+ style:: 2
72
+ border_color:: green:2
73
+ title_color:: green:2
74
+ focus_color:: green:2
75
+ shadow:: true
60
76
  >>