@icarusmx/creta 1.5.4 → 1.5.6

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 (31) hide show
  1. package/lib/builders/MenuBuilder.js +23 -4
  2. package/lib/exercises/array-object-manipulation.md +1281 -0
  3. package/lib/exercises/git-stash-workflow.md +426 -0
  4. package/lib/exercises/railway-deployment.md +1185 -0
  5. package/lib/papers/bitcoin/bitcoin.md +92 -0
  6. package/lib/papers/mapreduce/mapreduce.md +476 -0
  7. package/lib/papers/spark/spark.md +49 -0
  8. package/package.json +5 -1
  9. package/ascii-logo.txt +0 -8
  10. package/codex-refactor.txt +0 -13
  11. package/docs/diagrams/README.md +0 -131
  12. package/docs/diagrams/architecture-overview.mmd +0 -71
  13. package/docs/diagrams/architecture.svg +0 -1
  14. package/docs/diagrams/ecosystem-integration.mmd +0 -49
  15. package/docs/diagrams/evolution-phases.mmd +0 -49
  16. package/docs/diagrams/output.svg +0 -1
  17. package/docs/diagrams/phase2-command-help-flow.mmd +0 -51
  18. package/docs/diagrams/user-journey.mmd +0 -78
  19. package/ejemplo.sh +0 -3
  20. package/refactor.txt +0 -581
  21. package/templates/sveltekit-portfolio/package.json +0 -20
  22. package/templates/sveltekit-portfolio/src/app.css +0 -51
  23. package/templates/sveltekit-portfolio/src/app.html +0 -12
  24. package/templates/sveltekit-portfolio/src/routes/+layout.svelte +0 -108
  25. package/templates/sveltekit-portfolio/src/routes/+page.svelte +0 -79
  26. package/templates/sveltekit-portfolio/static/favicon.png +0 -0
  27. package/templates/sveltekit-portfolio/svelte.config.js +0 -10
  28. package/templates/sveltekit-portfolio/vite.config.js +0 -10
  29. package/test/enunciados.test.js +0 -72
  30. package/test/sintaxis-menu.test.js +0 -45
  31. package/wea-fome-qlia.sh +0 -92
@@ -53,12 +53,13 @@ export class MenuBuilder {
53
53
 
54
54
  renderOption(option, isSelected, index) {
55
55
  const prefix = isSelected ? '▶ ' : ' '
56
+ const number = `${index + 1}.`
56
57
  const label = option.title || option.label || `Opción ${index + 1}`
57
58
 
58
59
  if (isSelected) {
59
- console.log(`\x1b[36m${prefix}${label}\x1b[0m`)
60
+ console.log(`\x1b[36m${prefix}${number} ${label}\x1b[0m`)
60
61
  } else {
61
- console.log(`${prefix}${label}`)
62
+ console.log(`${prefix}${number} ${label}`)
62
63
  }
63
64
 
64
65
  if (option.description) {
@@ -117,10 +118,28 @@ export class MenuBuilder {
117
118
  return
118
119
  }
119
120
 
120
- if (key === '\u001b[A') {
121
+ // Handle number keys (1-9)
122
+ const numberMatch = key.match(/^[1-9]$/)
123
+ if (numberMatch) {
124
+ const num = parseInt(key, 10)
125
+ const targetIndex = num - 1
126
+
127
+ // Check if the number is within range
128
+ if (targetIndex >= 0 && targetIndex < this.config.options.length) {
129
+ const choice = this.config.options[targetIndex]
130
+ cleanup()
131
+ resolve(choice)
132
+ return
133
+ }
134
+ }
135
+
136
+ // Arrow keys or vim-style navigation
137
+ if (key === '\u001b[A' || key === 'k') {
138
+ // Up arrow or 'k'
121
139
  selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : this.config.options.length - 1
122
140
  render()
123
- } else if (key === '\u001b[B') {
141
+ } else if (key === '\u001b[B' || key === 'j') {
142
+ // Down arrow or 'j'
124
143
  selectedIndex = selectedIndex < this.config.options.length - 1 ? selectedIndex + 1 : 0
125
144
  render()
126
145
  }