create-mendix-widget-gleam 2.0.13 → 2.0.15

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 (205) hide show
  1. package/README.md +3 -2
  2. package/package.json +5 -1
  3. package/src/index.mjs +22 -7
  4. package/src/templates/readme_md.mjs +6 -6
  5. package/template/docs/glendix_guide.md +204 -1
  6. package/template/gleam.toml +1 -1
  7. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache +0 -0
  8. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_inline +0 -0
  9. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_meta +0 -0
  10. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache +0 -0
  11. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_inline +0 -0
  12. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_meta +0 -0
  13. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache +0 -0
  14. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_inline +0 -0
  15. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_meta +0 -0
  16. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache +0 -0
  17. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_inline +0 -0
  18. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_meta +0 -0
  19. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache +0 -0
  20. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_inline +0 -0
  21. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_meta +0 -0
  22. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache +0 -0
  23. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_inline +0 -0
  24. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_meta +0 -0
  25. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache +0 -0
  26. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_inline +0 -0
  27. package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_meta +0 -0
  28. package/tui/build/dev/javascript/etch/etch/command.mjs +479 -0
  29. package/tui/build/dev/javascript/etch/etch/cursor.mjs +164 -0
  30. package/tui/build/dev/javascript/etch/etch/event.mjs +2399 -0
  31. package/tui/build/dev/javascript/etch/etch/internal/consts.mjs +3 -0
  32. package/tui/build/dev/javascript/etch/etch/stdout.mjs +375 -0
  33. package/tui/build/dev/javascript/etch/etch/style.mjs +741 -0
  34. package/tui/build/dev/javascript/etch/etch/terminal.mjs +137 -0
  35. package/tui/build/dev/javascript/etch/gleam.mjs +1 -0
  36. package/tui/build/dev/javascript/etch/input/event_ffi.erl +73 -0
  37. package/tui/build/dev/javascript/etch/input/input_ffi.mjs +192 -0
  38. package/tui/build/dev/javascript/etch/input/signal_handler.erl +33 -0
  39. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.erl +22 -0
  40. package/tui/build/dev/javascript/etch/terminal/terminal_ffi.mjs +37 -0
  41. package/tui/build/dev/javascript/etch/terminal/tty_state.erl +29 -0
  42. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache +0 -0
  43. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_inline +0 -0
  44. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_meta +0 -0
  45. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache +0 -0
  46. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_inline +0 -0
  47. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta +0 -0
  48. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache +0 -0
  49. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_inline +0 -0
  50. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta +0 -0
  51. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache +0 -0
  52. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_inline +0 -0
  53. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta +0 -0
  54. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache +0 -0
  55. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_inline +0 -0
  56. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_meta +0 -0
  57. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache +0 -0
  58. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_inline +0 -0
  59. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta +0 -0
  60. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache +0 -0
  61. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_inline +0 -0
  62. package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_meta +0 -0
  63. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/application.mjs +38 -0
  64. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/atom.mjs +2 -0
  65. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/charlist.mjs +1 -0
  66. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/node.mjs +12 -0
  67. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/port.mjs +1 -0
  68. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/process.mjs +161 -0
  69. package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/reference.mjs +1 -0
  70. package/tui/build/dev/javascript/gleam_erlang/gleam.mjs +1 -0
  71. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@application.erl +43 -0
  72. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@atom.erl +94 -0
  73. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@charlist.erl +42 -0
  74. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@node.erl +80 -0
  75. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@port.erl +8 -0
  76. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@process.erl +868 -0
  77. package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@reference.erl +21 -0
  78. package/tui/build/dev/javascript/gleam_erlang/gleam_erlang_ffi.erl +164 -0
  79. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache +0 -0
  80. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_inline +0 -0
  81. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_meta +0 -0
  82. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache +0 -0
  83. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_inline +0 -0
  84. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_meta +0 -0
  85. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache +0 -0
  86. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_inline +0 -0
  87. package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_meta +0 -0
  88. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/array.mjs +24 -0
  89. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/promise.mjs +105 -0
  90. package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/symbol.mjs +7 -0
  91. package/tui/build/dev/javascript/gleam_javascript/gleam.mjs +1 -0
  92. package/tui/build/dev/javascript/gleam_javascript/gleam_javascript_ffi.mjs +133 -0
  93. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache +0 -0
  94. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_inline +0 -0
  95. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta +0 -0
  96. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache +0 -0
  97. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_inline +0 -0
  98. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta +0 -0
  99. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache +0 -0
  100. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_inline +0 -0
  101. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_meta +0 -0
  102. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache +0 -0
  103. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_inline +0 -0
  104. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta +0 -0
  105. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache +0 -0
  106. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_inline +0 -0
  107. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta +0 -0
  108. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache +0 -0
  109. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_inline +0 -0
  110. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_meta +0 -0
  111. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache +0 -0
  112. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_inline +0 -0
  113. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta +0 -0
  114. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache +0 -0
  115. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_inline +0 -0
  116. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta +0 -0
  117. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache +0 -0
  118. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_inline +0 -0
  119. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta +0 -0
  120. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache +0 -0
  121. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_inline +0 -0
  122. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta +0 -0
  123. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache +0 -0
  124. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_inline +0 -0
  125. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta +0 -0
  126. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache +0 -0
  127. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_inline +0 -0
  128. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta +0 -0
  129. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache +0 -0
  130. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_inline +0 -0
  131. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta +0 -0
  132. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache +0 -0
  133. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_inline +0 -0
  134. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta +0 -0
  135. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache +0 -0
  136. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_inline +0 -0
  137. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta +0 -0
  138. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache +0 -0
  139. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_inline +0 -0
  140. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta +0 -0
  141. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache +0 -0
  142. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_inline +0 -0
  143. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta +0 -0
  144. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache +0 -0
  145. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_inline +0 -0
  146. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_meta +0 -0
  147. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache +0 -0
  148. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_inline +0 -0
  149. package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta +0 -0
  150. package/tui/build/dev/javascript/gleam_stdlib/dict.mjs +710 -0
  151. package/tui/build/dev/javascript/gleam_stdlib/gleam/bit_array.mjs +286 -0
  152. package/tui/build/dev/javascript/gleam_stdlib/gleam/bool.mjs +295 -0
  153. package/tui/build/dev/javascript/gleam_stdlib/gleam/bytes_tree.mjs +225 -0
  154. package/tui/build/dev/javascript/gleam_stdlib/gleam/dict.mjs +455 -0
  155. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic/decode.mjs +993 -0
  156. package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic.mjs +35 -0
  157. package/tui/build/dev/javascript/gleam_stdlib/gleam/float.mjs +528 -0
  158. package/tui/build/dev/javascript/gleam_stdlib/gleam/function.mjs +6 -0
  159. package/tui/build/dev/javascript/gleam_stdlib/gleam/int.mjs +764 -0
  160. package/tui/build/dev/javascript/gleam_stdlib/gleam/io.mjs +8 -0
  161. package/tui/build/dev/javascript/gleam_stdlib/gleam/list.mjs +3063 -0
  162. package/tui/build/dev/javascript/gleam_stdlib/gleam/option.mjs +386 -0
  163. package/tui/build/dev/javascript/gleam_stdlib/gleam/order.mjs +166 -0
  164. package/tui/build/dev/javascript/gleam_stdlib/gleam/pair.mjs +96 -0
  165. package/tui/build/dev/javascript/gleam_stdlib/gleam/result.mjs +448 -0
  166. package/tui/build/dev/javascript/gleam_stdlib/gleam/set.mjs +413 -0
  167. package/tui/build/dev/javascript/gleam_stdlib/gleam/string.mjs +695 -0
  168. package/tui/build/dev/javascript/gleam_stdlib/gleam/string_tree.mjs +128 -0
  169. package/tui/build/dev/javascript/gleam_stdlib/gleam/uri.mjs +1151 -0
  170. package/tui/build/dev/javascript/gleam_stdlib/gleam.mjs +1 -0
  171. package/tui/build/dev/javascript/gleam_stdlib/gleam@bit_array.erl +347 -0
  172. package/tui/build/dev/javascript/gleam_stdlib/gleam@bool.erl +334 -0
  173. package/tui/build/dev/javascript/gleam_stdlib/gleam@bytes_tree.erl +211 -0
  174. package/tui/build/dev/javascript/gleam_stdlib/gleam@dict.erl +513 -0
  175. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic.erl +105 -0
  176. package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic@decode.erl +1114 -0
  177. package/tui/build/dev/javascript/gleam_stdlib/gleam@float.erl +711 -0
  178. package/tui/build/dev/javascript/gleam_stdlib/gleam@function.erl +18 -0
  179. package/tui/build/dev/javascript/gleam_stdlib/gleam@int.erl +972 -0
  180. package/tui/build/dev/javascript/gleam_stdlib/gleam@io.erl +76 -0
  181. package/tui/build/dev/javascript/gleam_stdlib/gleam@list.erl +2735 -0
  182. package/tui/build/dev/javascript/gleam_stdlib/gleam@option.erl +381 -0
  183. package/tui/build/dev/javascript/gleam_stdlib/gleam@order.erl +188 -0
  184. package/tui/build/dev/javascript/gleam_stdlib/gleam@pair.erl +104 -0
  185. package/tui/build/dev/javascript/gleam_stdlib/gleam@result.erl +500 -0
  186. package/tui/build/dev/javascript/gleam_stdlib/gleam@set.erl +430 -0
  187. package/tui/build/dev/javascript/gleam_stdlib/gleam@string.erl +964 -0
  188. package/tui/build/dev/javascript/gleam_stdlib/gleam@string_tree.erl +202 -0
  189. package/tui/build/dev/javascript/gleam_stdlib/gleam@uri.erl +1042 -0
  190. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.erl +534 -0
  191. package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.mjs +1133 -0
  192. package/tui/build/dev/javascript/gleam_version +1 -0
  193. package/tui/build/dev/javascript/prelude.mjs +1575 -0
  194. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache +0 -0
  195. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_inline +0 -0
  196. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_meta +0 -0
  197. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_warnings +0 -0
  198. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache +0 -0
  199. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_inline +0 -0
  200. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_meta +0 -0
  201. package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_warnings +0 -0
  202. package/tui/build/dev/javascript/tui/gleam.mjs +1 -0
  203. package/tui/build/dev/javascript/tui/tui/prompt.mjs +521 -0
  204. package/tui/build/dev/javascript/tui/tui.mjs +334 -0
  205. package/tui/build/dev/javascript/tui/tui_ffi.mjs +32 -0
@@ -0,0 +1 @@
1
+ export * from "../prelude.mjs";
@@ -0,0 +1,521 @@
1
+ import * as $command from "../../etch/etch/command.mjs";
2
+ import * as $event from "../../etch/etch/event.mjs";
3
+ import * as $stdout from "../../etch/etch/stdout.mjs";
4
+ import * as $style from "../../etch/etch/style.mjs";
5
+ import * as $terminal from "../../etch/etch/terminal.mjs";
6
+ import * as $promise from "../../gleam_javascript/gleam/javascript/promise.mjs";
7
+ import * as $list from "../../gleam_stdlib/gleam/list.mjs";
8
+ import * as $option from "../../gleam_stdlib/gleam/option.mjs";
9
+ import { None, Some } from "../../gleam_stdlib/gleam/option.mjs";
10
+ import * as $string from "../../gleam_stdlib/gleam/string.mjs";
11
+ import { Ok, Error, toList, Empty as $Empty } from "../gleam.mjs";
12
+
13
+ export function draw_header() {
14
+ return $stdout.execute(
15
+ toList([
16
+ new $command.SetForegroundColor(new $style.Cyan()),
17
+ new $command.SetAttributes(toList([new $style.Bold()])),
18
+ new $command.Println(" create-mendix-widget-gleam"),
19
+ new $command.ResetStyle(),
20
+ new $command.Println(""),
21
+ ]),
22
+ );
23
+ }
24
+
25
+ export function draw_completed(steps) {
26
+ return $list.each(
27
+ steps,
28
+ (step) => {
29
+ let label;
30
+ let value;
31
+ label = step[0];
32
+ value = step[1];
33
+ return $stdout.execute(
34
+ toList([
35
+ new $command.SetForegroundColor(new $style.Green()),
36
+ new $command.Print(" ✓ "),
37
+ new $command.ResetStyle(),
38
+ new $command.SetAttributes(toList([new $style.Bold()])),
39
+ new $command.Print(label),
40
+ new $command.ResetStyle(),
41
+ new $command.Println(": " + value),
42
+ ]),
43
+ );
44
+ },
45
+ );
46
+ }
47
+
48
+ function draw_hint(hint) {
49
+ return $stdout.execute(
50
+ toList([
51
+ new $command.Println(""),
52
+ new $command.SetForegroundColor(new $style.BrightGrey()),
53
+ new $command.Println(" " + hint),
54
+ new $command.ResetStyle(),
55
+ ]),
56
+ );
57
+ }
58
+
59
+ function clear_screen() {
60
+ return $stdout.execute(
61
+ toList([new $command.Clear(new $terminal.All()), new $command.MoveTo(0, 0)]),
62
+ );
63
+ }
64
+
65
+ function render_items(loop$items, loop$selected, loop$i) {
66
+ while (true) {
67
+ let items = loop$items;
68
+ let selected = loop$selected;
69
+ let i = loop$i;
70
+ if (items instanceof $Empty) {
71
+ return undefined;
72
+ } else {
73
+ let item = items.head;
74
+ let rest = items.tail;
75
+ let $ = i === selected;
76
+ if ($) {
77
+ $stdout.execute(
78
+ toList([
79
+ new $command.SetForegroundColor(new $style.Cyan()),
80
+ new $command.SetAttributes(toList([new $style.Bold()])),
81
+ new $command.Println(" ❯ " + item),
82
+ new $command.ResetStyle(),
83
+ ]),
84
+ )
85
+ } else {
86
+ $stdout.execute(
87
+ toList([
88
+ new $command.SetForegroundColor(new $style.White()),
89
+ new $command.Println(" " + item),
90
+ new $command.ResetStyle(),
91
+ ]),
92
+ )
93
+ }
94
+ loop$items = rest;
95
+ loop$selected = selected;
96
+ loop$i = i + 1;
97
+ }
98
+ }
99
+ }
100
+
101
+ function render_select(completed, title, items, selected, hint) {
102
+ clear_screen();
103
+ draw_header();
104
+ draw_completed(completed);
105
+ $stdout.execute(
106
+ toList([
107
+ new $command.Println(""),
108
+ new $command.SetAttributes(toList([new $style.Bold()])),
109
+ new $command.Println(" " + title),
110
+ new $command.ResetStyle(),
111
+ new $command.Println(""),
112
+ ]),
113
+ );
114
+ render_items(items, selected, 0);
115
+ return draw_hint(hint);
116
+ }
117
+
118
+ function select_loop(completed, title, items, selected, count, hint) {
119
+ return $promise.await$(
120
+ $event.read(),
121
+ (evt) => {
122
+ if (evt instanceof Some) {
123
+ let $ = evt[0];
124
+ if ($ instanceof Ok) {
125
+ let $1 = $[0];
126
+ if ($1 instanceof $event.Key) {
127
+ let $2 = $1[0].kind;
128
+ if ($2 instanceof $event.Press) {
129
+ let $3 = $1[0].code;
130
+ if ($3 instanceof $event.Char) {
131
+ let $4 = $1[0].modifiers.control;
132
+ if ($4) {
133
+ let $5 = $3[0];
134
+ if ($5 === "c") {
135
+ return $promise.resolve(-1);
136
+ } else {
137
+ return select_loop(
138
+ completed,
139
+ title,
140
+ items,
141
+ selected,
142
+ count,
143
+ hint,
144
+ );
145
+ }
146
+ } else {
147
+ return select_loop(
148
+ completed,
149
+ title,
150
+ items,
151
+ selected,
152
+ count,
153
+ hint,
154
+ );
155
+ }
156
+ } else if ($3 instanceof $event.UpArrow) {
157
+ let _block;
158
+ let $4 = selected > 0;
159
+ if ($4) {
160
+ _block = selected - 1;
161
+ } else {
162
+ _block = count - 1;
163
+ }
164
+ let s = _block;
165
+ render_select(completed, title, items, s, hint);
166
+ return select_loop(completed, title, items, s, count, hint);
167
+ } else if ($3 instanceof $event.DownArrow) {
168
+ let _block;
169
+ let $4 = selected < (count - 1);
170
+ if ($4) {
171
+ _block = selected + 1;
172
+ } else {
173
+ _block = 0;
174
+ }
175
+ let s = _block;
176
+ render_select(completed, title, items, s, hint);
177
+ return select_loop(completed, title, items, s, count, hint);
178
+ } else if ($3 instanceof $event.Enter) {
179
+ return $promise.resolve(selected);
180
+ } else if ($3 instanceof $event.Esc) {
181
+ return $promise.resolve(-1);
182
+ } else {
183
+ return select_loop(
184
+ completed,
185
+ title,
186
+ items,
187
+ selected,
188
+ count,
189
+ hint,
190
+ );
191
+ }
192
+ } else {
193
+ return select_loop(completed, title, items, selected, count, hint);
194
+ }
195
+ } else {
196
+ return select_loop(completed, title, items, selected, count, hint);
197
+ }
198
+ } else {
199
+ return select_loop(completed, title, items, selected, count, hint);
200
+ }
201
+ } else {
202
+ return select_loop(completed, title, items, selected, count, hint);
203
+ }
204
+ },
205
+ );
206
+ }
207
+
208
+ export function select(completed, title, items, default$, hint) {
209
+ render_select(completed, title, items, default$, hint);
210
+ return select_loop(
211
+ completed,
212
+ title,
213
+ items,
214
+ default$,
215
+ $list.length(items),
216
+ hint,
217
+ );
218
+ }
219
+
220
+ function render_input(completed, title, value, error, preview_lines, hint) {
221
+ clear_screen();
222
+ draw_header();
223
+ draw_completed(completed);
224
+ let prefix = (" " + title) + ": ";
225
+ $stdout.execute(
226
+ toList([
227
+ new $command.Println(""),
228
+ new $command.SetAttributes(toList([new $style.Bold()])),
229
+ new $command.Print(prefix),
230
+ new $command.ResetStyle(),
231
+ new $command.Println(value),
232
+ ]),
233
+ );
234
+ if (error instanceof Some) {
235
+ let err = error[0];
236
+ $stdout.execute(
237
+ toList([
238
+ new $command.SetForegroundColor(new $style.Red()),
239
+ new $command.Println(" " + err),
240
+ new $command.ResetStyle(),
241
+ ]),
242
+ )
243
+ } else {
244
+ if (preview_lines instanceof $Empty) {
245
+ $stdout.execute(toList([new $command.Println("")]))
246
+ } else {
247
+ let lines = preview_lines;
248
+ $stdout.execute(toList([new $command.Println("")]));
249
+ $list.each(
250
+ lines,
251
+ (line) => {
252
+ return $stdout.execute(
253
+ toList([
254
+ new $command.SetForegroundColor(new $style.BrightGrey()),
255
+ new $command.Println(" " + line),
256
+ new $command.ResetStyle(),
257
+ ]),
258
+ );
259
+ },
260
+ )
261
+ }
262
+ }
263
+ draw_hint(hint);
264
+ let input_row = (2 + $list.length(completed)) + 1;
265
+ let input_col = $string.length(prefix) + $string.length(value);
266
+ return $stdout.execute(
267
+ toList([
268
+ new $command.MoveTo(input_col, input_row),
269
+ new $command.ShowCursor(),
270
+ ]),
271
+ );
272
+ }
273
+
274
+ function input_loop(completed, title, value, validate, preview, hint) {
275
+ return $promise.await$(
276
+ $event.read(),
277
+ (evt) => {
278
+ if (evt instanceof Some) {
279
+ let $ = evt[0];
280
+ if ($ instanceof Ok) {
281
+ let $1 = $[0];
282
+ if ($1 instanceof $event.Key) {
283
+ let $2 = $1[0].modifiers.control;
284
+ if ($2) {
285
+ let $3 = $1[0].kind;
286
+ if ($3 instanceof $event.Press) {
287
+ let $4 = $1[0].code;
288
+ if ($4 instanceof $event.Char) {
289
+ let $5 = $4[0];
290
+ if ($5 === "c") {
291
+ return $promise.resolve(new Error(undefined));
292
+ } else {
293
+ return input_loop(
294
+ completed,
295
+ title,
296
+ value,
297
+ validate,
298
+ preview,
299
+ hint,
300
+ );
301
+ }
302
+ } else if ($4 instanceof $event.Enter) {
303
+ let trimmed = $string.trim(value);
304
+ let $5 = validate(trimmed);
305
+ if ($5 instanceof Some) {
306
+ return input_loop(
307
+ completed,
308
+ title,
309
+ value,
310
+ validate,
311
+ preview,
312
+ hint,
313
+ );
314
+ } else {
315
+ return $promise.resolve(new Ok(trimmed));
316
+ }
317
+ } else if ($4 instanceof $event.Backspace) {
318
+ let v = $string.drop_end(value, 1);
319
+ render_input(
320
+ completed,
321
+ title,
322
+ v,
323
+ validate(v),
324
+ preview(v),
325
+ hint,
326
+ );
327
+ return input_loop(
328
+ completed,
329
+ title,
330
+ v,
331
+ validate,
332
+ preview,
333
+ hint,
334
+ );
335
+ } else if ($4 instanceof $event.Esc) {
336
+ return $promise.resolve(new Error(undefined));
337
+ } else {
338
+ return input_loop(
339
+ completed,
340
+ title,
341
+ value,
342
+ validate,
343
+ preview,
344
+ hint,
345
+ );
346
+ }
347
+ } else {
348
+ return input_loop(
349
+ completed,
350
+ title,
351
+ value,
352
+ validate,
353
+ preview,
354
+ hint,
355
+ );
356
+ }
357
+ } else {
358
+ let $3 = $1[0].modifiers.alt;
359
+ if (!$3) {
360
+ let $4 = $1[0].kind;
361
+ if ($4 instanceof $event.Press) {
362
+ let $5 = $1[0].code;
363
+ if ($5 instanceof $event.Char) {
364
+ let c = $5[0];
365
+ let v = value + c;
366
+ render_input(
367
+ completed,
368
+ title,
369
+ v,
370
+ validate(v),
371
+ preview(v),
372
+ hint,
373
+ );
374
+ return input_loop(
375
+ completed,
376
+ title,
377
+ v,
378
+ validate,
379
+ preview,
380
+ hint,
381
+ );
382
+ } else if ($5 instanceof $event.Enter) {
383
+ let trimmed = $string.trim(value);
384
+ let $6 = validate(trimmed);
385
+ if ($6 instanceof Some) {
386
+ return input_loop(
387
+ completed,
388
+ title,
389
+ value,
390
+ validate,
391
+ preview,
392
+ hint,
393
+ );
394
+ } else {
395
+ return $promise.resolve(new Ok(trimmed));
396
+ }
397
+ } else if ($5 instanceof $event.Backspace) {
398
+ let v = $string.drop_end(value, 1);
399
+ render_input(
400
+ completed,
401
+ title,
402
+ v,
403
+ validate(v),
404
+ preview(v),
405
+ hint,
406
+ );
407
+ return input_loop(
408
+ completed,
409
+ title,
410
+ v,
411
+ validate,
412
+ preview,
413
+ hint,
414
+ );
415
+ } else if ($5 instanceof $event.Esc) {
416
+ return $promise.resolve(new Error(undefined));
417
+ } else {
418
+ return input_loop(
419
+ completed,
420
+ title,
421
+ value,
422
+ validate,
423
+ preview,
424
+ hint,
425
+ );
426
+ }
427
+ } else {
428
+ return input_loop(
429
+ completed,
430
+ title,
431
+ value,
432
+ validate,
433
+ preview,
434
+ hint,
435
+ );
436
+ }
437
+ } else {
438
+ let $4 = $1[0].kind;
439
+ if ($4 instanceof $event.Press) {
440
+ let $5 = $1[0].code;
441
+ if ($5 instanceof $event.Enter) {
442
+ let trimmed = $string.trim(value);
443
+ let $6 = validate(trimmed);
444
+ if ($6 instanceof Some) {
445
+ return input_loop(
446
+ completed,
447
+ title,
448
+ value,
449
+ validate,
450
+ preview,
451
+ hint,
452
+ );
453
+ } else {
454
+ return $promise.resolve(new Ok(trimmed));
455
+ }
456
+ } else if ($5 instanceof $event.Backspace) {
457
+ let v = $string.drop_end(value, 1);
458
+ render_input(
459
+ completed,
460
+ title,
461
+ v,
462
+ validate(v),
463
+ preview(v),
464
+ hint,
465
+ );
466
+ return input_loop(
467
+ completed,
468
+ title,
469
+ v,
470
+ validate,
471
+ preview,
472
+ hint,
473
+ );
474
+ } else if ($5 instanceof $event.Esc) {
475
+ return $promise.resolve(new Error(undefined));
476
+ } else {
477
+ return input_loop(
478
+ completed,
479
+ title,
480
+ value,
481
+ validate,
482
+ preview,
483
+ hint,
484
+ );
485
+ }
486
+ } else {
487
+ return input_loop(
488
+ completed,
489
+ title,
490
+ value,
491
+ validate,
492
+ preview,
493
+ hint,
494
+ );
495
+ }
496
+ }
497
+ }
498
+ } else {
499
+ return input_loop(completed, title, value, validate, preview, hint);
500
+ }
501
+ } else {
502
+ return input_loop(completed, title, value, validate, preview, hint);
503
+ }
504
+ } else {
505
+ return input_loop(completed, title, value, validate, preview, hint);
506
+ }
507
+ },
508
+ );
509
+ }
510
+
511
+ export function text_input(completed, title, initial, validate, preview, hint) {
512
+ render_input(
513
+ completed,
514
+ title,
515
+ initial,
516
+ validate(initial),
517
+ preview(initial),
518
+ hint,
519
+ );
520
+ return input_loop(completed, title, initial, validate, preview, hint);
521
+ }