@maizzle/framework 6.0.0-9 → 6.0.0-rc.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 (614) hide show
  1. package/bin/maizzle.mjs +10 -0
  2. package/dist/build.d.mts +19 -0
  3. package/dist/build.d.mts.map +1 -0
  4. package/dist/build.mjs +121 -0
  5. package/dist/build.mjs.map +1 -0
  6. package/dist/components/Button.vue +141 -0
  7. package/dist/components/Divider.vue +105 -0
  8. package/dist/components/NoWidows.vue +123 -0
  9. package/dist/components/NotOutlook.vue +17 -0
  10. package/dist/components/Outlook.vue +74 -0
  11. package/dist/components/Spacer.vue +36 -0
  12. package/dist/components/Vml.vue +89 -0
  13. package/dist/components/WithUrl.vue +190 -0
  14. package/dist/components/utils.d.mts +5 -0
  15. package/dist/components/utils.d.mts.map +1 -0
  16. package/dist/components/utils.mjs +9 -0
  17. package/dist/components/utils.mjs.map +1 -0
  18. package/dist/components/utils.ts +6 -0
  19. package/dist/composables/defineConfig.d.mts +14 -0
  20. package/dist/composables/defineConfig.d.mts.map +1 -0
  21. package/dist/composables/defineConfig.mjs +34 -0
  22. package/dist/composables/defineConfig.mjs.map +1 -0
  23. package/dist/composables/renderContext.d.mts +19 -0
  24. package/dist/composables/renderContext.d.mts.map +1 -0
  25. package/dist/composables/renderContext.mjs +6 -0
  26. package/dist/composables/renderContext.mjs.map +1 -0
  27. package/dist/composables/useConfig.d.mts +9 -0
  28. package/dist/composables/useConfig.d.mts.map +1 -0
  29. package/dist/composables/useConfig.mjs +13 -0
  30. package/dist/composables/useConfig.mjs.map +1 -0
  31. package/dist/composables/useDoctype.d.mts +13 -0
  32. package/dist/composables/useDoctype.d.mts.map +1 -0
  33. package/dist/composables/useDoctype.mjs +20 -0
  34. package/dist/composables/useDoctype.mjs.map +1 -0
  35. package/dist/composables/useEvent.d.mts +17 -0
  36. package/dist/composables/useEvent.d.mts.map +1 -0
  37. package/dist/composables/useEvent.mjs +25 -0
  38. package/dist/composables/useEvent.mjs.map +1 -0
  39. package/dist/composables/usePlaintext.d.mts +19 -0
  40. package/dist/composables/usePlaintext.d.mts.map +1 -0
  41. package/dist/composables/usePlaintext.mjs +22 -0
  42. package/dist/composables/usePlaintext.mjs.map +1 -0
  43. package/dist/config/defaults.d.mts +6 -0
  44. package/dist/config/defaults.d.mts.map +1 -0
  45. package/dist/config/defaults.mjs +28 -0
  46. package/dist/config/defaults.mjs.map +1 -0
  47. package/dist/config/index.d.mts +15 -0
  48. package/dist/config/index.d.mts.map +1 -0
  49. package/dist/config/index.mjs +47 -0
  50. package/dist/config/index.mjs.map +1 -0
  51. package/dist/events/index.d.mts +91 -0
  52. package/dist/events/index.d.mts.map +1 -0
  53. package/dist/events/index.mjs +110 -0
  54. package/dist/events/index.mjs.map +1 -0
  55. package/dist/index.d.mts +29 -0
  56. package/dist/index.mjs +29 -0
  57. package/dist/plaintext.d.mts +5 -0
  58. package/dist/plaintext.d.mts.map +1 -0
  59. package/dist/plaintext.mjs +15 -0
  60. package/dist/plaintext.mjs.map +1 -0
  61. package/dist/plugin.d.mts +17 -0
  62. package/dist/plugin.d.mts.map +1 -0
  63. package/dist/plugin.mjs +41 -0
  64. package/dist/plugin.mjs.map +1 -0
  65. package/dist/plugins/postcss/mergeMediaQueries.d.mts +18 -0
  66. package/dist/plugins/postcss/mergeMediaQueries.d.mts.map +1 -0
  67. package/dist/plugins/postcss/mergeMediaQueries.mjs +22 -0
  68. package/dist/plugins/postcss/mergeMediaQueries.mjs.map +1 -0
  69. package/dist/plugins/postcss/pruneVars.d.mts +8 -0
  70. package/dist/plugins/postcss/pruneVars.d.mts.map +1 -0
  71. package/dist/plugins/postcss/pruneVars.mjs +49 -0
  72. package/dist/plugins/postcss/pruneVars.mjs.map +1 -0
  73. package/dist/plugins/postcss/removeDeclarations.d.mts +12 -0
  74. package/dist/plugins/postcss/removeDeclarations.d.mts.map +1 -0
  75. package/dist/plugins/postcss/removeDeclarations.mjs +45 -0
  76. package/dist/plugins/postcss/removeDeclarations.mjs.map +1 -0
  77. package/dist/plugins/postcss/tailwindCleanup.d.mts +18 -0
  78. package/dist/plugins/postcss/tailwindCleanup.d.mts.map +1 -0
  79. package/dist/plugins/postcss/tailwindCleanup.mjs +35 -0
  80. package/dist/plugins/postcss/tailwindCleanup.mjs.map +1 -0
  81. package/dist/render/createRenderer.d.mts +34 -0
  82. package/dist/render/createRenderer.d.mts.map +1 -0
  83. package/dist/render/createRenderer.mjs +149 -0
  84. package/dist/render/createRenderer.mjs.map +1 -0
  85. package/dist/render/index.d.mts +26 -0
  86. package/dist/render/index.d.mts.map +1 -0
  87. package/dist/render/index.mjs +40 -0
  88. package/dist/render/index.mjs.map +1 -0
  89. package/dist/serve.d.mts +25 -0
  90. package/dist/serve.d.mts.map +1 -0
  91. package/dist/serve.mjs +402 -0
  92. package/dist/serve.mjs.map +1 -0
  93. package/dist/server/compatibility.d.mts +6 -0
  94. package/dist/server/compatibility.d.mts.map +1 -0
  95. package/dist/server/compatibility.mjs +83 -0
  96. package/dist/server/compatibility.mjs.map +1 -0
  97. package/dist/server/linter.d.mts +6 -0
  98. package/dist/server/linter.d.mts.map +1 -0
  99. package/dist/server/linter.mjs +200 -0
  100. package/dist/server/linter.mjs.map +1 -0
  101. package/dist/server/ui/App.vue +360 -0
  102. package/dist/server/ui/components/ui/button/Button.vue +31 -0
  103. package/dist/server/ui/components/ui/button/index.ts +38 -0
  104. package/dist/server/ui/components/ui/command/Command.vue +87 -0
  105. package/dist/server/ui/components/ui/command/CommandDialog.vue +31 -0
  106. package/dist/server/ui/components/ui/command/CommandEmpty.vue +27 -0
  107. package/dist/server/ui/components/ui/command/CommandGroup.vue +45 -0
  108. package/dist/server/ui/components/ui/command/CommandInput.vue +39 -0
  109. package/dist/server/ui/components/ui/command/CommandItem.vue +76 -0
  110. package/dist/server/ui/components/ui/command/CommandList.vue +25 -0
  111. package/dist/server/ui/components/ui/command/CommandSeparator.vue +21 -0
  112. package/dist/server/ui/components/ui/command/CommandShortcut.vue +17 -0
  113. package/dist/server/ui/components/ui/command/index.ts +25 -0
  114. package/dist/server/ui/components/ui/dialog/Dialog.vue +19 -0
  115. package/dist/server/ui/components/ui/dialog/DialogClose.vue +15 -0
  116. package/dist/server/ui/components/ui/dialog/DialogContent.vue +53 -0
  117. package/dist/server/ui/components/ui/dialog/DialogDescription.vue +23 -0
  118. package/dist/server/ui/components/ui/dialog/DialogFooter.vue +27 -0
  119. package/dist/server/ui/components/ui/dialog/DialogHeader.vue +17 -0
  120. package/dist/server/ui/components/ui/dialog/DialogOverlay.vue +21 -0
  121. package/dist/server/ui/components/ui/dialog/DialogScrollContent.vue +59 -0
  122. package/dist/server/ui/components/ui/dialog/DialogTitle.vue +23 -0
  123. package/dist/server/ui/components/ui/dialog/DialogTrigger.vue +15 -0
  124. package/dist/server/ui/components/ui/dialog/index.ts +10 -0
  125. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenu.vue +19 -0
  126. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  127. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  128. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  129. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  130. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  131. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  132. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  133. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  134. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  135. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  136. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  137. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  138. package/dist/server/ui/components/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  139. package/dist/server/ui/components/ui/dropdown-menu/index.ts +16 -0
  140. package/dist/server/ui/components/ui/empty/Empty.vue +20 -0
  141. package/dist/server/ui/components/ui/empty/EmptyContent.vue +20 -0
  142. package/dist/server/ui/components/ui/empty/EmptyDescription.vue +20 -0
  143. package/dist/server/ui/components/ui/empty/EmptyHeader.vue +20 -0
  144. package/dist/server/ui/components/ui/empty/EmptyMedia.vue +21 -0
  145. package/dist/server/ui/components/ui/empty/EmptyTitle.vue +17 -0
  146. package/dist/server/ui/components/ui/empty/index.ts +26 -0
  147. package/dist/server/ui/components/ui/input/Input.vue +33 -0
  148. package/dist/server/ui/components/ui/input/index.ts +1 -0
  149. package/dist/server/ui/components/ui/kbd/Kbd.vue +20 -0
  150. package/dist/server/ui/components/ui/kbd/KbdGroup.vue +17 -0
  151. package/dist/server/ui/components/ui/kbd/index.ts +2 -0
  152. package/dist/server/ui/components/ui/resizable/ResizableHandle.vue +30 -0
  153. package/dist/server/ui/components/ui/resizable/ResizablePanel.vue +21 -0
  154. package/dist/server/ui/components/ui/resizable/ResizablePanelGroup.vue +25 -0
  155. package/dist/server/ui/components/ui/resizable/index.ts +3 -0
  156. package/dist/server/ui/components/ui/scroll-area/ScrollArea.vue +33 -0
  157. package/dist/server/ui/components/ui/scroll-area/ScrollBar.vue +32 -0
  158. package/dist/server/ui/components/ui/scroll-area/index.ts +2 -0
  159. package/dist/server/ui/components/ui/separator/Separator.vue +29 -0
  160. package/dist/server/ui/components/ui/separator/index.ts +1 -0
  161. package/dist/server/ui/components/ui/sheet/Sheet.vue +19 -0
  162. package/dist/server/ui/components/ui/sheet/SheetClose.vue +15 -0
  163. package/dist/server/ui/components/ui/sheet/SheetContent.vue +62 -0
  164. package/dist/server/ui/components/ui/sheet/SheetDescription.vue +21 -0
  165. package/dist/server/ui/components/ui/sheet/SheetFooter.vue +16 -0
  166. package/dist/server/ui/components/ui/sheet/SheetHeader.vue +15 -0
  167. package/dist/server/ui/components/ui/sheet/SheetOverlay.vue +21 -0
  168. package/dist/server/ui/components/ui/sheet/SheetTitle.vue +21 -0
  169. package/dist/server/ui/components/ui/sheet/SheetTrigger.vue +15 -0
  170. package/dist/server/ui/components/ui/sheet/index.ts +8 -0
  171. package/dist/server/ui/components/ui/sidebar/Sidebar.vue +96 -0
  172. package/dist/server/ui/components/ui/sidebar/SidebarContent.vue +18 -0
  173. package/dist/server/ui/components/ui/sidebar/SidebarFooter.vue +18 -0
  174. package/dist/server/ui/components/ui/sidebar/SidebarGroup.vue +18 -0
  175. package/dist/server/ui/components/ui/sidebar/SidebarGroupAction.vue +27 -0
  176. package/dist/server/ui/components/ui/sidebar/SidebarGroupContent.vue +18 -0
  177. package/dist/server/ui/components/ui/sidebar/SidebarGroupLabel.vue +25 -0
  178. package/dist/server/ui/components/ui/sidebar/SidebarHeader.vue +18 -0
  179. package/dist/server/ui/components/ui/sidebar/SidebarInput.vue +31 -0
  180. package/dist/server/ui/components/ui/sidebar/SidebarInset.vue +21 -0
  181. package/dist/server/ui/components/ui/sidebar/SidebarMenu.vue +18 -0
  182. package/dist/server/ui/components/ui/sidebar/SidebarMenuAction.vue +35 -0
  183. package/dist/server/ui/components/ui/sidebar/SidebarMenuBadge.vue +26 -0
  184. package/dist/server/ui/components/ui/sidebar/SidebarMenuButton.vue +48 -0
  185. package/dist/server/ui/components/ui/sidebar/SidebarMenuButtonChild.vue +36 -0
  186. package/dist/server/ui/components/ui/sidebar/SidebarMenuItem.vue +18 -0
  187. package/dist/server/ui/components/ui/sidebar/SidebarMenuSkeleton.vue +35 -0
  188. package/dist/server/ui/components/ui/sidebar/SidebarMenuSub.vue +22 -0
  189. package/dist/server/ui/components/ui/sidebar/SidebarMenuSubButton.vue +36 -0
  190. package/dist/server/ui/components/ui/sidebar/SidebarMenuSubItem.vue +18 -0
  191. package/dist/server/ui/components/ui/sidebar/SidebarProvider.vue +82 -0
  192. package/dist/server/ui/components/ui/sidebar/SidebarRail.vue +33 -0
  193. package/dist/server/ui/components/ui/sidebar/SidebarSeparator.vue +19 -0
  194. package/dist/server/ui/components/ui/sidebar/SidebarTrigger.vue +28 -0
  195. package/dist/server/ui/components/ui/sidebar/index.ts +60 -0
  196. package/dist/server/ui/components/ui/sidebar/utils.ts +19 -0
  197. package/dist/server/ui/components/ui/skeleton/Skeleton.vue +17 -0
  198. package/dist/server/ui/components/ui/skeleton/index.ts +1 -0
  199. package/dist/server/ui/components/ui/tabs/Tabs.vue +24 -0
  200. package/dist/server/ui/components/ui/tabs/TabsContent.vue +21 -0
  201. package/dist/server/ui/components/ui/tabs/TabsList.vue +24 -0
  202. package/dist/server/ui/components/ui/tabs/TabsTrigger.vue +26 -0
  203. package/dist/server/ui/components/ui/tabs/index.ts +4 -0
  204. package/dist/server/ui/components/ui/toggle/Toggle.vue +35 -0
  205. package/dist/server/ui/components/ui/toggle/index.ts +28 -0
  206. package/dist/server/ui/components/ui/toggle-group/ToggleGroup.vue +49 -0
  207. package/dist/server/ui/components/ui/toggle-group/ToggleGroupItem.vue +46 -0
  208. package/dist/server/ui/components/ui/toggle-group/index.ts +2 -0
  209. package/dist/server/ui/components/ui/tooltip/Tooltip.vue +19 -0
  210. package/dist/server/ui/components/ui/tooltip/TooltipContent.vue +34 -0
  211. package/dist/server/ui/components/ui/tooltip/TooltipProvider.vue +14 -0
  212. package/dist/server/ui/components/ui/tooltip/TooltipTrigger.vue +15 -0
  213. package/dist/server/ui/components/ui/tooltip/index.ts +4 -0
  214. package/dist/server/ui/favicon.svg +1 -0
  215. package/dist/server/ui/index.html +13 -0
  216. package/dist/server/ui/lib/utils.ts +7 -0
  217. package/dist/server/ui/logo-gradient.svg +1 -0
  218. package/dist/server/ui/logo.svg +1 -0
  219. package/dist/server/ui/main.css +129 -0
  220. package/dist/server/ui/main.ts +16 -0
  221. package/dist/server/ui/mark-gradient.svg +1 -0
  222. package/dist/server/ui/mark.svg +1 -0
  223. package/dist/server/ui/pages/Home.vue +39 -0
  224. package/dist/server/ui/pages/Preview.vue +609 -0
  225. package/dist/server/ui/stripes.svg +174 -0
  226. package/dist/transformers/addAttributes.d.mts +32 -0
  227. package/dist/transformers/addAttributes.d.mts.map +1 -0
  228. package/dist/transformers/addAttributes.mjs +101 -0
  229. package/dist/transformers/addAttributes.mjs.map +1 -0
  230. package/dist/transformers/attributeToStyle.d.mts +25 -0
  231. package/dist/transformers/attributeToStyle.d.mts.map +1 -0
  232. package/dist/transformers/attributeToStyle.mjs +80 -0
  233. package/dist/transformers/attributeToStyle.mjs.map +1 -0
  234. package/dist/transformers/base.d.mts +8 -0
  235. package/dist/transformers/base.d.mts.map +1 -0
  236. package/dist/transformers/base.mjs +160 -0
  237. package/dist/transformers/base.mjs.map +1 -0
  238. package/dist/transformers/entities.d.mts +8 -0
  239. package/dist/transformers/entities.d.mts.map +1 -0
  240. package/dist/transformers/entities.mjs +38 -0
  241. package/dist/transformers/entities.mjs.map +1 -0
  242. package/dist/transformers/format.d.mts +15 -0
  243. package/dist/transformers/format.d.mts.map +1 -0
  244. package/dist/transformers/format.mjs +26 -0
  245. package/dist/transformers/format.mjs.map +1 -0
  246. package/dist/transformers/index.d.mts +35 -0
  247. package/dist/transformers/index.d.mts.map +1 -0
  248. package/dist/transformers/index.mjs +73 -0
  249. package/dist/transformers/index.mjs.map +1 -0
  250. package/dist/transformers/inlineCSS.d.mts +30 -0
  251. package/dist/transformers/inlineCSS.d.mts.map +1 -0
  252. package/dist/transformers/inlineCSS.mjs +79 -0
  253. package/dist/transformers/inlineCSS.mjs.map +1 -0
  254. package/dist/transformers/inlineLink.d.mts +14 -0
  255. package/dist/transformers/inlineLink.d.mts.map +1 -0
  256. package/dist/transformers/inlineLink.mjs +76 -0
  257. package/dist/transformers/inlineLink.mjs.map +1 -0
  258. package/dist/transformers/minify.d.mts +17 -0
  259. package/dist/transformers/minify.d.mts.map +1 -0
  260. package/dist/transformers/minify.mjs +24 -0
  261. package/dist/transformers/minify.mjs.map +1 -0
  262. package/dist/transformers/purgeCSS.d.mts +23 -0
  263. package/dist/transformers/purgeCSS.d.mts.map +1 -0
  264. package/dist/transformers/purgeCSS.mjs +66 -0
  265. package/dist/transformers/purgeCSS.mjs.map +1 -0
  266. package/dist/transformers/removeAttributes.d.mts +31 -0
  267. package/dist/transformers/removeAttributes.d.mts.map +1 -0
  268. package/dist/transformers/removeAttributes.mjs +63 -0
  269. package/dist/transformers/removeAttributes.mjs.map +1 -0
  270. package/dist/transformers/replaceStrings.d.mts +16 -0
  271. package/dist/transformers/replaceStrings.d.mts.map +1 -0
  272. package/dist/transformers/replaceStrings.mjs +19 -0
  273. package/dist/transformers/replaceStrings.mjs.map +1 -0
  274. package/dist/transformers/safeClassNames.d.mts +22 -0
  275. package/dist/transformers/safeClassNames.d.mts.map +1 -0
  276. package/dist/transformers/safeClassNames.mjs +103 -0
  277. package/dist/transformers/safeClassNames.mjs.map +1 -0
  278. package/dist/transformers/shorthandCSS.d.mts +24 -0
  279. package/dist/transformers/shorthandCSS.d.mts.map +1 -0
  280. package/dist/transformers/shorthandCSS.mjs +48 -0
  281. package/dist/transformers/shorthandCSS.mjs.map +1 -0
  282. package/dist/transformers/tailwindcss.d.mts +20 -0
  283. package/dist/transformers/tailwindcss.d.mts.map +1 -0
  284. package/dist/transformers/tailwindcss.mjs +136 -0
  285. package/dist/transformers/tailwindcss.mjs.map +1 -0
  286. package/dist/transformers/urlQuery.d.mts +24 -0
  287. package/dist/transformers/urlQuery.d.mts.map +1 -0
  288. package/dist/transformers/urlQuery.mjs +65 -0
  289. package/dist/transformers/urlQuery.mjs.map +1 -0
  290. package/dist/types/config.d.mts +129 -0
  291. package/dist/types/config.d.mts.map +1 -0
  292. package/dist/types/config.mjs +1 -0
  293. package/dist/types/index.d.mts +2 -0
  294. package/dist/types/index.mjs +1 -0
  295. package/dist/utils/ast/index.d.mts +4 -0
  296. package/dist/utils/ast/index.mjs +5 -0
  297. package/dist/utils/ast/parser.d.mts +7 -0
  298. package/dist/utils/ast/parser.d.mts.map +1 -0
  299. package/dist/utils/ast/parser.mjs +15 -0
  300. package/dist/utils/ast/parser.mjs.map +1 -0
  301. package/dist/utils/ast/serializer.d.mts +7 -0
  302. package/dist/utils/ast/serializer.d.mts.map +1 -0
  303. package/dist/utils/ast/serializer.mjs +13 -0
  304. package/dist/utils/ast/serializer.mjs.map +1 -0
  305. package/dist/utils/ast/walker.d.mts +7 -0
  306. package/dist/utils/ast/walker.d.mts.map +1 -0
  307. package/dist/utils/ast/walker.mjs +12 -0
  308. package/dist/utils/ast/walker.mjs.map +1 -0
  309. package/dist/utils/url.d.mts +8 -0
  310. package/dist/utils/url.d.mts.map +1 -0
  311. package/dist/utils/url.mjs +32 -0
  312. package/dist/utils/url.mjs.map +1 -0
  313. package/node_modules/@clack/core/CHANGELOG.md +257 -0
  314. package/node_modules/@clack/core/LICENSE +9 -0
  315. package/node_modules/@clack/core/README.md +22 -0
  316. package/node_modules/@clack/core/dist/index.cjs +15 -0
  317. package/node_modules/@clack/core/dist/index.cjs.map +1 -0
  318. package/node_modules/@clack/core/dist/index.d.cts +211 -0
  319. package/node_modules/@clack/core/dist/index.d.mts +211 -0
  320. package/node_modules/@clack/core/dist/index.d.ts +211 -0
  321. package/node_modules/@clack/core/dist/index.mjs +15 -0
  322. package/node_modules/@clack/core/dist/index.mjs.map +1 -0
  323. package/node_modules/@clack/core/package.json +62 -0
  324. package/node_modules/@clack/prompts/CHANGELOG.md +412 -0
  325. package/node_modules/@clack/prompts/LICENSE +9 -0
  326. package/node_modules/@clack/prompts/README.md +207 -0
  327. package/node_modules/@clack/prompts/dist/index.cjs +87 -0
  328. package/node_modules/@clack/prompts/dist/index.cjs.map +1 -0
  329. package/node_modules/@clack/prompts/dist/index.d.cts +165 -0
  330. package/node_modules/@clack/prompts/dist/index.d.mts +165 -0
  331. package/node_modules/@clack/prompts/dist/index.d.ts +165 -0
  332. package/node_modules/@clack/prompts/dist/index.mjs +87 -0
  333. package/node_modules/@clack/prompts/dist/index.mjs.map +1 -0
  334. package/node_modules/@clack/prompts/package.json +61 -0
  335. package/node_modules/@maizzle/cli/LICENSE +21 -0
  336. package/node_modules/@maizzle/cli/README.md +58 -0
  337. package/node_modules/@maizzle/cli/dist/commands/make/component.d.mts +4 -0
  338. package/node_modules/@maizzle/cli/dist/commands/make/component.mjs +31 -0
  339. package/node_modules/@maizzle/cli/dist/commands/make/config.d.mts +4 -0
  340. package/node_modules/@maizzle/cli/dist/commands/make/config.mjs +21 -0
  341. package/node_modules/@maizzle/cli/dist/commands/make/layout.d.mts +4 -0
  342. package/node_modules/@maizzle/cli/dist/commands/make/layout.mjs +31 -0
  343. package/node_modules/@maizzle/cli/dist/commands/make/scaffold.d.mts +5 -0
  344. package/node_modules/@maizzle/cli/dist/commands/make/scaffold.mjs +28 -0
  345. package/node_modules/@maizzle/cli/dist/commands/make/stubs/component.vue +9 -0
  346. package/node_modules/@maizzle/cli/dist/commands/make/stubs/config.ts +9 -0
  347. package/node_modules/@maizzle/cli/dist/commands/make/stubs/layout.vue +39 -0
  348. package/node_modules/@maizzle/cli/dist/commands/make/stubs/template.vue +8 -0
  349. package/node_modules/@maizzle/cli/dist/commands/make/template.d.mts +4 -0
  350. package/node_modules/@maizzle/cli/dist/commands/make/template.mjs +31 -0
  351. package/node_modules/@maizzle/cli/dist/index.d.mts +8 -0
  352. package/node_modules/@maizzle/cli/dist/index.mjs +42 -0
  353. package/node_modules/@maizzle/cli/package.json +59 -0
  354. package/node_modules/citty/LICENSE +36 -0
  355. package/node_modules/citty/README.md +134 -0
  356. package/node_modules/citty/dist/index.cjs +475 -0
  357. package/node_modules/citty/dist/index.d.cts +80 -0
  358. package/node_modules/citty/dist/index.d.mts +80 -0
  359. package/node_modules/citty/dist/index.d.ts +80 -0
  360. package/node_modules/citty/dist/index.mjs +463 -0
  361. package/node_modules/citty/package.json +49 -0
  362. package/node_modules/commander/LICENSE +22 -0
  363. package/node_modules/commander/Readme.md +1149 -0
  364. package/node_modules/commander/esm.mjs +16 -0
  365. package/node_modules/commander/index.js +24 -0
  366. package/node_modules/commander/lib/argument.js +149 -0
  367. package/node_modules/commander/lib/command.js +2662 -0
  368. package/node_modules/commander/lib/error.js +39 -0
  369. package/node_modules/commander/lib/help.js +709 -0
  370. package/node_modules/commander/lib/option.js +367 -0
  371. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  372. package/node_modules/commander/package-support.json +16 -0
  373. package/node_modules/commander/package.json +82 -0
  374. package/node_modules/commander/typings/esm.d.mts +3 -0
  375. package/node_modules/commander/typings/index.d.ts +1045 -0
  376. package/node_modules/consola/LICENSE +47 -0
  377. package/node_modules/consola/README.md +352 -0
  378. package/node_modules/consola/basic.d.ts +1 -0
  379. package/node_modules/consola/browser.d.ts +1 -0
  380. package/node_modules/consola/core.d.ts +1 -0
  381. package/node_modules/consola/dist/basic.cjs +32 -0
  382. package/node_modules/consola/dist/basic.d.cts +23 -0
  383. package/node_modules/consola/dist/basic.d.mts +21 -0
  384. package/node_modules/consola/dist/basic.d.ts +23 -0
  385. package/node_modules/consola/dist/basic.mjs +24 -0
  386. package/node_modules/consola/dist/browser.cjs +84 -0
  387. package/node_modules/consola/dist/browser.d.cts +23 -0
  388. package/node_modules/consola/dist/browser.d.mts +21 -0
  389. package/node_modules/consola/dist/browser.d.ts +23 -0
  390. package/node_modules/consola/dist/browser.mjs +76 -0
  391. package/node_modules/consola/dist/chunks/prompt.cjs +288 -0
  392. package/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  393. package/node_modules/consola/dist/core.cjs +517 -0
  394. package/node_modules/consola/dist/core.d.cts +459 -0
  395. package/node_modules/consola/dist/core.d.mts +459 -0
  396. package/node_modules/consola/dist/core.d.ts +459 -0
  397. package/node_modules/consola/dist/core.mjs +512 -0
  398. package/node_modules/consola/dist/index.cjs +663 -0
  399. package/node_modules/consola/dist/index.d.cts +24 -0
  400. package/node_modules/consola/dist/index.d.mts +22 -0
  401. package/node_modules/consola/dist/index.d.ts +24 -0
  402. package/node_modules/consola/dist/index.mjs +651 -0
  403. package/node_modules/consola/dist/shared/consola.DCGIlDNP.cjs +75 -0
  404. package/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  405. package/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  406. package/node_modules/consola/dist/shared/consola.DwRq1yyg.cjs +312 -0
  407. package/node_modules/consola/dist/utils.cjs +64 -0
  408. package/node_modules/consola/dist/utils.d.cts +286 -0
  409. package/node_modules/consola/dist/utils.d.mts +286 -0
  410. package/node_modules/consola/dist/utils.d.ts +286 -0
  411. package/node_modules/consola/dist/utils.mjs +54 -0
  412. package/node_modules/consola/lib/index.cjs +10 -0
  413. package/node_modules/consola/package.json +136 -0
  414. package/node_modules/consola/utils.d.ts +1 -0
  415. package/node_modules/create-maizzle/README.md +86 -0
  416. package/node_modules/create-maizzle/bin/create-maizzle.mjs +4 -0
  417. package/node_modules/create-maizzle/node_modules/@clack/core/CHANGELOG.md +340 -0
  418. package/node_modules/create-maizzle/node_modules/@clack/core/LICENSE +9 -0
  419. package/node_modules/create-maizzle/node_modules/@clack/core/README.md +22 -0
  420. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.d.mts +349 -0
  421. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.mjs +11 -0
  422. package/node_modules/create-maizzle/node_modules/@clack/core/dist/index.mjs.map +1 -0
  423. package/node_modules/create-maizzle/node_modules/@clack/core/package.json +60 -0
  424. package/node_modules/create-maizzle/node_modules/@clack/prompts/CHANGELOG.md +576 -0
  425. package/node_modules/create-maizzle/node_modules/@clack/prompts/LICENSE +9 -0
  426. package/node_modules/create-maizzle/node_modules/@clack/prompts/README.md +270 -0
  427. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.d.mts +391 -0
  428. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.mjs +137 -0
  429. package/node_modules/create-maizzle/node_modules/@clack/prompts/dist/index.mjs.map +1 -0
  430. package/node_modules/create-maizzle/node_modules/@clack/prompts/package.json +65 -0
  431. package/node_modules/create-maizzle/package.json +47 -0
  432. package/node_modules/create-maizzle/src/index.js +242 -0
  433. package/node_modules/defu/LICENSE +21 -0
  434. package/node_modules/defu/README.md +171 -0
  435. package/node_modules/defu/dist/defu.cjs +77 -0
  436. package/node_modules/defu/dist/defu.d.cts +31 -0
  437. package/node_modules/defu/dist/defu.d.mts +29 -0
  438. package/node_modules/defu/dist/defu.d.ts +31 -0
  439. package/node_modules/defu/dist/defu.mjs +69 -0
  440. package/node_modules/defu/lib/defu.cjs +10 -0
  441. package/node_modules/defu/lib/defu.d.cts +12 -0
  442. package/node_modules/defu/package.json +48 -0
  443. package/node_modules/fast-string-truncated-width/dist/index.d.ts +4 -0
  444. package/node_modules/fast-string-truncated-width/dist/index.js +171 -0
  445. package/node_modules/fast-string-truncated-width/dist/types.d.ts +22 -0
  446. package/node_modules/fast-string-truncated-width/dist/types.js +2 -0
  447. package/node_modules/fast-string-truncated-width/dist/utils.d.ts +4 -0
  448. package/node_modules/fast-string-truncated-width/dist/utils.js +15 -0
  449. package/node_modules/fast-string-truncated-width/license +21 -0
  450. package/node_modules/fast-string-truncated-width/package.json +35 -0
  451. package/node_modules/fast-string-truncated-width/readme.md +60 -0
  452. package/node_modules/fast-string-width/dist/index.d.ts +4 -0
  453. package/node_modules/fast-string-width/dist/index.js +14 -0
  454. package/node_modules/fast-string-width/license +21 -0
  455. package/node_modules/fast-string-width/package.json +34 -0
  456. package/node_modules/fast-string-width/readme.md +45 -0
  457. package/node_modules/fast-wrap-ansi/LICENSE +23 -0
  458. package/node_modules/fast-wrap-ansi/README.md +26 -0
  459. package/node_modules/fast-wrap-ansi/lib/main.d.ts +6 -0
  460. package/node_modules/fast-wrap-ansi/lib/main.js +216 -0
  461. package/node_modules/fast-wrap-ansi/lib/main.js.map +1 -0
  462. package/node_modules/fast-wrap-ansi/package.json +51 -0
  463. package/node_modules/giget/LICENSE +184 -0
  464. package/node_modules/giget/README.md +248 -0
  465. package/node_modules/giget/dist/cli.mjs +112 -0
  466. package/node_modules/giget/dist/index.d.mts +49 -0
  467. package/node_modules/giget/dist/index.mjs +22 -0
  468. package/node_modules/giget/dist/shared/giget.OCaTp9b-.mjs +468 -0
  469. package/node_modules/giget/package.json +62 -0
  470. package/node_modules/node-fetch-native/LICENSE +114 -0
  471. package/node_modules/node-fetch-native/README.md +225 -0
  472. package/node_modules/node-fetch-native/dist/chunks/multipart-parser.cjs +2 -0
  473. package/node_modules/node-fetch-native/dist/chunks/multipart-parser.mjs +2 -0
  474. package/node_modules/node-fetch-native/dist/index.cjs +1 -0
  475. package/node_modules/node-fetch-native/dist/index.mjs +1 -0
  476. package/node_modules/node-fetch-native/dist/native.cjs +1 -0
  477. package/node_modules/node-fetch-native/dist/native.mjs +1 -0
  478. package/node_modules/node-fetch-native/dist/node.cjs +19 -0
  479. package/node_modules/node-fetch-native/dist/node.mjs +19 -0
  480. package/node_modules/node-fetch-native/dist/polyfill.cjs +1 -0
  481. package/node_modules/node-fetch-native/dist/polyfill.mjs +1 -0
  482. package/node_modules/node-fetch-native/dist/proxy-stub.cjs +1 -0
  483. package/node_modules/node-fetch-native/dist/proxy-stub.mjs +1 -0
  484. package/node_modules/node-fetch-native/dist/proxy.cjs +58 -0
  485. package/node_modules/node-fetch-native/dist/shared/node-fetch-native.DfbY2q-x.mjs +1 -0
  486. package/node_modules/node-fetch-native/dist/shared/node-fetch-native.DhEqb06g.cjs +1 -0
  487. package/node_modules/node-fetch-native/index.d.ts +1 -0
  488. package/node_modules/node-fetch-native/lib/empty.cjs +0 -0
  489. package/node_modules/node-fetch-native/lib/empty.mjs +0 -0
  490. package/node_modules/node-fetch-native/lib/index.cjs +11 -0
  491. package/node_modules/node-fetch-native/lib/index.d.cts +10 -0
  492. package/node_modules/node-fetch-native/lib/index.d.mts +10 -0
  493. package/node_modules/node-fetch-native/lib/index.d.ts +10 -0
  494. package/node_modules/node-fetch-native/lib/native.cjs +11 -0
  495. package/node_modules/node-fetch-native/lib/polyfill.d.cts +1 -0
  496. package/node_modules/node-fetch-native/lib/polyfill.d.mts +1 -0
  497. package/node_modules/node-fetch-native/lib/polyfill.d.ts +1 -0
  498. package/node_modules/node-fetch-native/lib/proxy.d.ts +32 -0
  499. package/node_modules/node-fetch-native/node.d.ts +1 -0
  500. package/node_modules/node-fetch-native/package.json +138 -0
  501. package/node_modules/node-fetch-native/polyfill.d.ts +1 -0
  502. package/node_modules/node-fetch-native/proxy.d.ts +1 -0
  503. package/node_modules/nypm/LICENSE +21 -0
  504. package/node_modules/nypm/README.md +152 -0
  505. package/node_modules/nypm/dist/cli.d.mts +1 -0
  506. package/node_modules/nypm/dist/cli.mjs +460 -0
  507. package/node_modules/nypm/dist/index.d.mts +209 -0
  508. package/node_modules/nypm/dist/index.mjs +423 -0
  509. package/node_modules/nypm/node_modules/citty/LICENSE +21 -0
  510. package/node_modules/nypm/node_modules/citty/README.md +231 -0
  511. package/node_modules/nypm/node_modules/citty/dist/THIRD-PARTY-LICENSES.md +33 -0
  512. package/node_modules/nypm/node_modules/citty/dist/_chunks/libs/scule.mjs +70 -0
  513. package/node_modules/nypm/node_modules/citty/dist/index.d.mts +112 -0
  514. package/node_modules/nypm/node_modules/citty/dist/index.mjs +425 -0
  515. package/node_modules/nypm/node_modules/citty/package.json +42 -0
  516. package/node_modules/nypm/package.json +54 -0
  517. package/node_modules/pathe/LICENSE +70 -0
  518. package/node_modules/pathe/README.md +73 -0
  519. package/node_modules/pathe/dist/index.cjs +39 -0
  520. package/node_modules/pathe/dist/index.d.cts +47 -0
  521. package/node_modules/pathe/dist/index.d.mts +47 -0
  522. package/node_modules/pathe/dist/index.d.ts +47 -0
  523. package/node_modules/pathe/dist/index.mjs +19 -0
  524. package/node_modules/pathe/dist/shared/pathe.BSlhyZSM.cjs +266 -0
  525. package/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs +249 -0
  526. package/node_modules/pathe/dist/utils.cjs +82 -0
  527. package/node_modules/pathe/dist/utils.d.cts +32 -0
  528. package/node_modules/pathe/dist/utils.d.mts +32 -0
  529. package/node_modules/pathe/dist/utils.d.ts +32 -0
  530. package/node_modules/pathe/dist/utils.mjs +77 -0
  531. package/node_modules/pathe/package.json +61 -0
  532. package/node_modules/pathe/utils.d.ts +1 -0
  533. package/node_modules/picocolors/LICENSE +15 -0
  534. package/node_modules/picocolors/README.md +21 -0
  535. package/node_modules/picocolors/package.json +25 -0
  536. package/node_modules/picocolors/picocolors.browser.js +4 -0
  537. package/node_modules/picocolors/picocolors.d.ts +5 -0
  538. package/node_modules/picocolors/picocolors.js +75 -0
  539. package/node_modules/picocolors/types.d.ts +51 -0
  540. package/node_modules/sisteransi/license +21 -0
  541. package/node_modules/sisteransi/package.json +34 -0
  542. package/node_modules/sisteransi/readme.md +113 -0
  543. package/node_modules/sisteransi/src/index.js +58 -0
  544. package/node_modules/sisteransi/src/sisteransi.d.ts +35 -0
  545. package/node_modules/tinyexec/LICENSE +21 -0
  546. package/node_modules/tinyexec/README.md +269 -0
  547. package/node_modules/tinyexec/dist/LICENSES.txt +83 -0
  548. package/node_modules/tinyexec/dist/main.d.mts +71 -0
  549. package/node_modules/tinyexec/dist/main.mjs +642 -0
  550. package/node_modules/tinyexec/package.json +62 -0
  551. package/package.json +74 -73
  552. package/CHANGELOG.md +0 -770
  553. package/bin/maizzle +0 -5
  554. package/src/commands/build.js +0 -348
  555. package/src/commands/serve.js +0 -3
  556. package/src/generators/plaintext.js +0 -222
  557. package/src/generators/render.js +0 -129
  558. package/src/index.js +0 -49
  559. package/src/posthtml/defaultComponentsConfig.js +0 -19
  560. package/src/posthtml/defaultConfig.js +0 -14
  561. package/src/posthtml/index.js +0 -102
  562. package/src/posthtml/plugins/combineMediaQueries.js +0 -42
  563. package/src/posthtml/plugins/envAttributes.js +0 -32
  564. package/src/posthtml/plugins/envTags.js +0 -33
  565. package/src/posthtml/plugins/expandLinkTag.js +0 -59
  566. package/src/posthtml/plugins/postcss/compileCss.js +0 -125
  567. package/src/posthtml/plugins/removeRawStyleAttributes.js +0 -30
  568. package/src/server/client.js +0 -182
  569. package/src/server/index.js +0 -464
  570. package/src/server/routes/hmr.js +0 -26
  571. package/src/server/routes/index.js +0 -77
  572. package/src/server/views/404.html +0 -59
  573. package/src/server/views/error.html +0 -83
  574. package/src/server/views/index.html +0 -172
  575. package/src/server/websockets.js +0 -27
  576. package/src/transformers/addAttributes.js +0 -29
  577. package/src/transformers/attributeToStyle.js +0 -90
  578. package/src/transformers/baseUrl.js +0 -154
  579. package/src/transformers/core.js +0 -32
  580. package/src/transformers/filters/defaultFilters.js +0 -146
  581. package/src/transformers/filters/index.js +0 -18
  582. package/src/transformers/index.js +0 -259
  583. package/src/transformers/inline.js +0 -306
  584. package/src/transformers/markdown.js +0 -26
  585. package/src/transformers/minify.js +0 -27
  586. package/src/transformers/posthtmlMso.js +0 -14
  587. package/src/transformers/prettify.js +0 -29
  588. package/src/transformers/preventWidows.js +0 -37
  589. package/src/transformers/purge.js +0 -56
  590. package/src/transformers/removeAttributes.js +0 -55
  591. package/src/transformers/replaceStrings.js +0 -37
  592. package/src/transformers/safeClassNames.js +0 -29
  593. package/src/transformers/shorthandCss.js +0 -20
  594. package/src/transformers/sixHex.js +0 -30
  595. package/src/transformers/template.js +0 -26
  596. package/src/transformers/urlParameters.js +0 -20
  597. package/src/transformers/useAttributeSizes.js +0 -63
  598. package/src/utils/getConfigByFilePath.js +0 -143
  599. package/src/utils/node.js +0 -68
  600. package/src/utils/string.js +0 -186
  601. package/types/build.d.ts +0 -166
  602. package/types/config.d.ts +0 -638
  603. package/types/css/combineMediaQueries.d.ts +0 -90
  604. package/types/css/inline.d.ts +0 -218
  605. package/types/css/purge.d.ts +0 -125
  606. package/types/events.d.ts +0 -153
  607. package/types/index.d.ts +0 -232
  608. package/types/markdown.d.ts +0 -33
  609. package/types/minify.d.ts +0 -138
  610. package/types/plaintext.d.ts +0 -56
  611. package/types/posthtml.d.ts +0 -162
  612. package/types/render.d.ts +0 -13
  613. package/types/urlParameters.d.ts +0 -40
  614. package/types/widowWords.d.ts +0 -38
@@ -0,0 +1,165 @@
1
+ export { ClackSettings, isCancel, updateSettings } from '@clack/core';
2
+
3
+ interface TextOptions {
4
+ message: string;
5
+ placeholder?: string;
6
+ defaultValue?: string;
7
+ initialValue?: string;
8
+ validate?: (value: string) => string | Error | undefined;
9
+ }
10
+ declare const text: (opts: TextOptions) => Promise<string | symbol>;
11
+ interface PasswordOptions {
12
+ message: string;
13
+ mask?: string;
14
+ validate?: (value: string) => string | Error | undefined;
15
+ }
16
+ declare const password: (opts: PasswordOptions) => Promise<string | symbol>;
17
+ interface ConfirmOptions {
18
+ message: string;
19
+ active?: string;
20
+ inactive?: string;
21
+ initialValue?: boolean;
22
+ }
23
+ declare const confirm: (opts: ConfirmOptions) => Promise<boolean | symbol>;
24
+ type Primitive = Readonly<string | boolean | number>;
25
+ type Option<Value> = Value extends Primitive ? {
26
+ /**
27
+ * Internal data for this option.
28
+ */
29
+ value: Value;
30
+ /**
31
+ * The optional, user-facing text for this option.
32
+ *
33
+ * By default, the `value` is converted to a string.
34
+ */
35
+ label?: string;
36
+ /**
37
+ * An optional hint to display to the user when
38
+ * this option might be selected.
39
+ *
40
+ * By default, no `hint` is displayed.
41
+ */
42
+ hint?: string;
43
+ } : {
44
+ /**
45
+ * Internal data for this option.
46
+ */
47
+ value: Value;
48
+ /**
49
+ * Required. The user-facing text for this option.
50
+ */
51
+ label: string;
52
+ /**
53
+ * An optional hint to display to the user when
54
+ * this option might be selected.
55
+ *
56
+ * By default, no `hint` is displayed.
57
+ */
58
+ hint?: string;
59
+ };
60
+ interface SelectOptions<Value> {
61
+ message: string;
62
+ options: Option<Value>[];
63
+ initialValue?: Value;
64
+ maxItems?: number;
65
+ }
66
+ declare const select: <Value>(opts: SelectOptions<Value>) => Promise<symbol | Value>;
67
+ declare const selectKey: <Value extends string>(opts: SelectOptions<Value>) => Promise<symbol | Value>;
68
+ interface MultiSelectOptions<Value> {
69
+ message: string;
70
+ options: Option<Value>[];
71
+ initialValues?: Value[];
72
+ maxItems?: number;
73
+ required?: boolean;
74
+ cursorAt?: Value;
75
+ }
76
+ declare const multiselect: <Value>(opts: MultiSelectOptions<Value>) => Promise<symbol | Value[]>;
77
+ interface GroupMultiSelectOptions<Value> {
78
+ message: string;
79
+ options: Record<string, Option<Value>[]>;
80
+ initialValues?: Value[];
81
+ required?: boolean;
82
+ cursorAt?: Value;
83
+ selectableGroups?: boolean;
84
+ }
85
+ declare const groupMultiselect: <Value>(opts: GroupMultiSelectOptions<Value>) => Promise<symbol | Value[]>;
86
+ declare const note: (message?: string, title?: string) => void;
87
+ declare const cancel: (message?: string) => void;
88
+ declare const intro: (title?: string) => void;
89
+ declare const outro: (message?: string) => void;
90
+ type LogMessageOptions = {
91
+ symbol?: string;
92
+ };
93
+ declare const log: {
94
+ message: (message?: string, { symbol }?: LogMessageOptions) => void;
95
+ info: (message: string) => void;
96
+ success: (message: string) => void;
97
+ step: (message: string) => void;
98
+ warn: (message: string) => void;
99
+ /** alias for `log.warn()`. */
100
+ warning: (message: string) => void;
101
+ error: (message: string) => void;
102
+ };
103
+ declare const stream: {
104
+ message: (iterable: Iterable<string> | AsyncIterable<string>, { symbol }?: LogMessageOptions) => Promise<void>;
105
+ info: (iterable: Iterable<string> | AsyncIterable<string>) => Promise<void>;
106
+ success: (iterable: Iterable<string> | AsyncIterable<string>) => Promise<void>;
107
+ step: (iterable: Iterable<string> | AsyncIterable<string>) => Promise<void>;
108
+ warn: (iterable: Iterable<string> | AsyncIterable<string>) => Promise<void>;
109
+ /** alias for `log.warn()`. */
110
+ warning: (iterable: Iterable<string> | AsyncIterable<string>) => Promise<void>;
111
+ error: (iterable: Iterable<string> | AsyncIterable<string>) => Promise<void>;
112
+ };
113
+ interface SpinnerOptions {
114
+ indicator?: 'dots' | 'timer';
115
+ }
116
+ declare const spinner: ({ indicator }?: SpinnerOptions) => {
117
+ start: (msg?: string) => void;
118
+ stop: (msg?: string, code?: number) => void;
119
+ message: (msg?: string) => void;
120
+ };
121
+ type PromptGroupAwaitedReturn<T> = {
122
+ [P in keyof T]: Exclude<Awaited<T[P]>, symbol>;
123
+ };
124
+ interface PromptGroupOptions<T> {
125
+ /**
126
+ * Control how the group can be canceled
127
+ * if one of the prompts is canceled.
128
+ */
129
+ onCancel?: (opts: {
130
+ results: Prettify<Partial<PromptGroupAwaitedReturn<T>>>;
131
+ }) => void;
132
+ }
133
+ type Prettify<T> = {
134
+ [P in keyof T]: T[P];
135
+ } & {};
136
+ type PromptGroup<T> = {
137
+ [P in keyof T]: (opts: {
138
+ results: Prettify<Partial<PromptGroupAwaitedReturn<Omit<T, P>>>>;
139
+ }) => undefined | Promise<T[P] | undefined>;
140
+ };
141
+ /**
142
+ * Define a group of prompts to be displayed
143
+ * and return a results of objects within the group
144
+ */
145
+ declare const group: <T>(prompts: PromptGroup<T>, opts?: PromptGroupOptions<T> | undefined) => Promise<{ [P in keyof PromptGroupAwaitedReturn<T>]: PromptGroupAwaitedReturn<T>[P]; }>;
146
+ type Task = {
147
+ /**
148
+ * Task title
149
+ */
150
+ title: string;
151
+ /**
152
+ * Task function
153
+ */
154
+ task: (message: (string: string) => void) => string | Promise<string> | void | Promise<void>;
155
+ /**
156
+ * If enabled === false the task will be skipped
157
+ */
158
+ enabled?: boolean;
159
+ };
160
+ /**
161
+ * Define a group of tasks to be executed
162
+ */
163
+ declare const tasks: (tasks: Task[]) => Promise<void>;
164
+
165
+ export { type ConfirmOptions, type GroupMultiSelectOptions, type LogMessageOptions, type MultiSelectOptions, type Option, type PasswordOptions, type PromptGroup, type PromptGroupAwaitedReturn, type PromptGroupOptions, type SelectOptions, type SpinnerOptions, type Task, type TextOptions, cancel, confirm, group, groupMultiselect, intro, log, multiselect, note, outro, password, select, selectKey, spinner, stream, tasks, text };
@@ -0,0 +1,87 @@
1
+ import{stripVTControlCharacters as S}from"node:util";import{TextPrompt as Q,PasswordPrompt as X,ConfirmPrompt as Z,SelectPrompt as ee,SelectKeyPrompt as te,MultiSelectPrompt as re,GroupMultiSelectPrompt as se,isCancel as ie,block as ne}from"@clack/core";export{isCancel,updateSettings}from"@clack/core";import y from"node:process";import e from"picocolors";import{cursor as oe,erase as ae}from"sisteransi";function ce(){return y.platform!=="win32"?y.env.TERM!=="linux":!!y.env.CI||!!y.env.WT_SESSION||!!y.env.TERMINUS_SUBLIME||y.env.ConEmuTask==="{cmd::Cmder}"||y.env.TERM_PROGRAM==="Terminus-Sublime"||y.env.TERM_PROGRAM==="vscode"||y.env.TERM==="xterm-256color"||y.env.TERM==="alacritty"||y.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}const V=ce(),u=(t,n)=>V?t:n,le=u("\u25C6","*"),L=u("\u25A0","x"),W=u("\u25B2","x"),C=u("\u25C7","o"),ue=u("\u250C","T"),o=u("\u2502","|"),d=u("\u2514","\u2014"),k=u("\u25CF",">"),P=u("\u25CB"," "),A=u("\u25FB","[\u2022]"),T=u("\u25FC","[+]"),F=u("\u25FB","[ ]"),$e=u("\u25AA","\u2022"),_=u("\u2500","-"),me=u("\u256E","+"),de=u("\u251C","+"),pe=u("\u256F","+"),q=u("\u25CF","\u2022"),D=u("\u25C6","*"),U=u("\u25B2","!"),K=u("\u25A0","x"),b=t=>{switch(t){case"initial":case"active":return e.cyan(le);case"cancel":return e.red(L);case"error":return e.yellow(W);case"submit":return e.green(C)}},G=t=>{const{cursor:n,options:r,style:i}=t,s=t.maxItems??Number.POSITIVE_INFINITY,c=Math.max(process.stdout.rows-4,0),a=Math.min(c,Math.max(s,5));let l=0;n>=l+a-3?l=Math.max(Math.min(n-a+3,r.length-a),0):n<l+2&&(l=Math.max(n-2,0));const $=a<r.length&&l>0,g=a<r.length&&l+a<r.length;return r.slice(l,l+a).map((p,v,f)=>{const j=v===0&&$,E=v===f.length-1&&g;return j||E?e.dim("..."):i(p,v+l===n)})},he=t=>new Q({validate:t.validate,placeholder:t.placeholder,defaultValue:t.defaultValue,initialValue:t.initialValue,render(){const n=`${e.gray(o)}
2
+ ${b(this.state)} ${t.message}
3
+ `,r=t.placeholder?e.inverse(t.placeholder[0])+e.dim(t.placeholder.slice(1)):e.inverse(e.hidden("_")),i=this.value?this.valueWithCursor:r;switch(this.state){case"error":return`${n.trim()}
4
+ ${e.yellow(o)} ${i}
5
+ ${e.yellow(d)} ${e.yellow(this.error)}
6
+ `;case"submit":return`${n}${e.gray(o)} ${e.dim(this.value||t.placeholder)}`;case"cancel":return`${n}${e.gray(o)} ${e.strikethrough(e.dim(this.value??""))}${this.value?.trim()?`
7
+ ${e.gray(o)}`:""}`;default:return`${n}${e.cyan(o)} ${i}
8
+ ${e.cyan(d)}
9
+ `}}}).prompt(),ge=t=>new X({validate:t.validate,mask:t.mask??$e,render(){const n=`${e.gray(o)}
10
+ ${b(this.state)} ${t.message}
11
+ `,r=this.valueWithCursor,i=this.masked;switch(this.state){case"error":return`${n.trim()}
12
+ ${e.yellow(o)} ${i}
13
+ ${e.yellow(d)} ${e.yellow(this.error)}
14
+ `;case"submit":return`${n}${e.gray(o)} ${e.dim(i)}`;case"cancel":return`${n}${e.gray(o)} ${e.strikethrough(e.dim(i??""))}${i?`
15
+ ${e.gray(o)}`:""}`;default:return`${n}${e.cyan(o)} ${r}
16
+ ${e.cyan(d)}
17
+ `}}}).prompt(),ye=t=>{const n=t.active??"Yes",r=t.inactive??"No";return new Z({active:n,inactive:r,initialValue:t.initialValue??!0,render(){const i=`${e.gray(o)}
18
+ ${b(this.state)} ${t.message}
19
+ `,s=this.value?n:r;switch(this.state){case"submit":return`${i}${e.gray(o)} ${e.dim(s)}`;case"cancel":return`${i}${e.gray(o)} ${e.strikethrough(e.dim(s))}
20
+ ${e.gray(o)}`;default:return`${i}${e.cyan(o)} ${this.value?`${e.green(k)} ${n}`:`${e.dim(P)} ${e.dim(n)}`} ${e.dim("/")} ${this.value?`${e.dim(P)} ${e.dim(r)}`:`${e.green(k)} ${r}`}
21
+ ${e.cyan(d)}
22
+ `}}}).prompt()},ve=t=>{const n=(r,i)=>{const s=r.label??String(r.value);switch(i){case"selected":return`${e.dim(s)}`;case"active":return`${e.green(k)} ${s} ${r.hint?e.dim(`(${r.hint})`):""}`;case"cancelled":return`${e.strikethrough(e.dim(s))}`;default:return`${e.dim(P)} ${e.dim(s)}`}};return new ee({options:t.options,initialValue:t.initialValue,render(){const r=`${e.gray(o)}
23
+ ${b(this.state)} ${t.message}
24
+ `;switch(this.state){case"submit":return`${r}${e.gray(o)} ${n(this.options[this.cursor],"selected")}`;case"cancel":return`${r}${e.gray(o)} ${n(this.options[this.cursor],"cancelled")}
25
+ ${e.gray(o)}`;default:return`${r}${e.cyan(o)} ${G({cursor:this.cursor,options:this.options,maxItems:t.maxItems,style:(i,s)=>n(i,s?"active":"inactive")}).join(`
26
+ ${e.cyan(o)} `)}
27
+ ${e.cyan(d)}
28
+ `}}}).prompt()},we=t=>{const n=(r,i="inactive")=>{const s=r.label??String(r.value);return i==="selected"?`${e.dim(s)}`:i==="cancelled"?`${e.strikethrough(e.dim(s))}`:i==="active"?`${e.bgCyan(e.gray(` ${r.value} `))} ${s} ${r.hint?e.dim(`(${r.hint})`):""}`:`${e.gray(e.bgWhite(e.inverse(` ${r.value} `)))} ${s} ${r.hint?e.dim(`(${r.hint})`):""}`};return new te({options:t.options,initialValue:t.initialValue,render(){const r=`${e.gray(o)}
29
+ ${b(this.state)} ${t.message}
30
+ `;switch(this.state){case"submit":return`${r}${e.gray(o)} ${n(this.options.find(i=>i.value===this.value)??t.options[0],"selected")}`;case"cancel":return`${r}${e.gray(o)} ${n(this.options[0],"cancelled")}
31
+ ${e.gray(o)}`;default:return`${r}${e.cyan(o)} ${this.options.map((i,s)=>n(i,s===this.cursor?"active":"inactive")).join(`
32
+ ${e.cyan(o)} `)}
33
+ ${e.cyan(d)}
34
+ `}}}).prompt()},fe=t=>{const n=(r,i)=>{const s=r.label??String(r.value);return i==="active"?`${e.cyan(A)} ${s} ${r.hint?e.dim(`(${r.hint})`):""}`:i==="selected"?`${e.green(T)} ${e.dim(s)} ${r.hint?e.dim(`(${r.hint})`):""}`:i==="cancelled"?`${e.strikethrough(e.dim(s))}`:i==="active-selected"?`${e.green(T)} ${s} ${r.hint?e.dim(`(${r.hint})`):""}`:i==="submitted"?`${e.dim(s)}`:`${e.dim(F)} ${e.dim(s)}`};return new re({options:t.options,initialValues:t.initialValues,required:t.required??!0,cursorAt:t.cursorAt,validate(r){if(this.required&&r.length===0)return`Please select at least one option.
35
+ ${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(" space ")))} to select, ${e.gray(e.bgWhite(e.inverse(" enter ")))} to submit`))}`},render(){const r=`${e.gray(o)}
36
+ ${b(this.state)} ${t.message}
37
+ `,i=(s,c)=>{const a=this.value.includes(s.value);return c&&a?n(s,"active-selected"):a?n(s,"selected"):n(s,c?"active":"inactive")};switch(this.state){case"submit":return`${r}${e.gray(o)} ${this.options.filter(({value:s})=>this.value.includes(s)).map(s=>n(s,"submitted")).join(e.dim(", "))||e.dim("none")}`;case"cancel":{const s=this.options.filter(({value:c})=>this.value.includes(c)).map(c=>n(c,"cancelled")).join(e.dim(", "));return`${r}${e.gray(o)} ${s.trim()?`${s}
38
+ ${e.gray(o)}`:""}`}case"error":{const s=this.error.split(`
39
+ `).map((c,a)=>a===0?`${e.yellow(d)} ${e.yellow(c)}`:` ${c}`).join(`
40
+ `);return`${r+e.yellow(o)} ${G({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:i}).join(`
41
+ ${e.yellow(o)} `)}
42
+ ${s}
43
+ `}default:return`${r}${e.cyan(o)} ${G({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:i}).join(`
44
+ ${e.cyan(o)} `)}
45
+ ${e.cyan(d)}
46
+ `}}}).prompt()},be=t=>{const{selectableGroups:n=!0}=t,r=(i,s,c=[])=>{const a=i.label??String(i.value),l=typeof i.group=="string",$=l&&(c[c.indexOf(i)+1]??{group:!0}),g=l&&$.group===!0,p=l?n?`${g?d:o} `:" ":"";if(s==="active")return`${e.dim(p)}${e.cyan(A)} ${a} ${i.hint?e.dim(`(${i.hint})`):""}`;if(s==="group-active")return`${p}${e.cyan(A)} ${e.dim(a)}`;if(s==="group-active-selected")return`${p}${e.green(T)} ${e.dim(a)}`;if(s==="selected"){const f=l||n?e.green(T):"";return`${e.dim(p)}${f} ${e.dim(a)} ${i.hint?e.dim(`(${i.hint})`):""}`}if(s==="cancelled")return`${e.strikethrough(e.dim(a))}`;if(s==="active-selected")return`${e.dim(p)}${e.green(T)} ${a} ${i.hint?e.dim(`(${i.hint})`):""}`;if(s==="submitted")return`${e.dim(a)}`;const v=l||n?e.dim(F):"";return`${e.dim(p)}${v} ${e.dim(a)}`};return new se({options:t.options,initialValues:t.initialValues,required:t.required??!0,cursorAt:t.cursorAt,selectableGroups:n,validate(i){if(this.required&&i.length===0)return`Please select at least one option.
47
+ ${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(" space ")))} to select, ${e.gray(e.bgWhite(e.inverse(" enter ")))} to submit`))}`},render(){const i=`${e.gray(o)}
48
+ ${b(this.state)} ${t.message}
49
+ `;switch(this.state){case"submit":return`${i}${e.gray(o)} ${this.options.filter(({value:s})=>this.value.includes(s)).map(s=>r(s,"submitted")).join(e.dim(", "))}`;case"cancel":{const s=this.options.filter(({value:c})=>this.value.includes(c)).map(c=>r(c,"cancelled")).join(e.dim(", "));return`${i}${e.gray(o)} ${s.trim()?`${s}
50
+ ${e.gray(o)}`:""}`}case"error":{const s=this.error.split(`
51
+ `).map((c,a)=>a===0?`${e.yellow(d)} ${e.yellow(c)}`:` ${c}`).join(`
52
+ `);return`${i}${e.yellow(o)} ${this.options.map((c,a,l)=>{const $=this.value.includes(c.value)||c.group===!0&&this.isGroupSelected(`${c.value}`),g=a===this.cursor;return!g&&typeof c.group=="string"&&this.options[this.cursor].value===c.group?r(c,$?"group-active-selected":"group-active",l):g&&$?r(c,"active-selected",l):$?r(c,"selected",l):r(c,g?"active":"inactive",l)}).join(`
53
+ ${e.yellow(o)} `)}
54
+ ${s}
55
+ `}default:return`${i}${e.cyan(o)} ${this.options.map((s,c,a)=>{const l=this.value.includes(s.value)||s.group===!0&&this.isGroupSelected(`${s.value}`),$=c===this.cursor;return!$&&typeof s.group=="string"&&this.options[this.cursor].value===s.group?r(s,l?"group-active-selected":"group-active",a):$&&l?r(s,"active-selected",a):l?r(s,"selected",a):r(s,$?"active":"inactive",a)}).join(`
56
+ ${e.cyan(o)} `)}
57
+ ${e.cyan(d)}
58
+ `}}}).prompt()},Me=(t="",n="")=>{const r=`
59
+ ${t}
60
+ `.split(`
61
+ `),i=S(n).length,s=Math.max(r.reduce((a,l)=>{const $=S(l);return $.length>a?$.length:a},0),i)+2,c=r.map(a=>`${e.gray(o)} ${e.dim(a)}${" ".repeat(s-S(a).length)}${e.gray(o)}`).join(`
62
+ `);process.stdout.write(`${e.gray(o)}
63
+ ${e.green(C)} ${e.reset(n)} ${e.gray(_.repeat(Math.max(s-i-1,1))+me)}
64
+ ${c}
65
+ ${e.gray(de+_.repeat(s+2)+pe)}
66
+ `)},xe=(t="")=>{process.stdout.write(`${e.gray(d)} ${e.red(t)}
67
+
68
+ `)},Ie=(t="")=>{process.stdout.write(`${e.gray(ue)} ${t}
69
+ `)},Se=(t="")=>{process.stdout.write(`${e.gray(o)}
70
+ ${e.gray(d)} ${t}
71
+
72
+ `)},M={message:(t="",{symbol:n=e.gray(o)}={})=>{const r=[`${e.gray(o)}`];if(t){const[i,...s]=t.split(`
73
+ `);r.push(`${n} ${i}`,...s.map(c=>`${e.gray(o)} ${c}`))}process.stdout.write(`${r.join(`
74
+ `)}
75
+ `)},info:t=>{M.message(t,{symbol:e.blue(q)})},success:t=>{M.message(t,{symbol:e.green(D)})},step:t=>{M.message(t,{symbol:e.green(C)})},warn:t=>{M.message(t,{symbol:e.yellow(U)})},warning:t=>{M.warn(t)},error:t=>{M.message(t,{symbol:e.red(K)})}},J=`${e.gray(o)} `,x={message:async(t,{symbol:n=e.gray(o)}={})=>{process.stdout.write(`${e.gray(o)}
76
+ ${n} `);let r=3;for await(let i of t){i=i.replace(/\n/g,`
77
+ ${J}`),i.includes(`
78
+ `)&&(r=3+S(i.slice(i.lastIndexOf(`
79
+ `))).length);const s=S(i).length;r+s<process.stdout.columns?(r+=s,process.stdout.write(i)):(process.stdout.write(`
80
+ ${J}${i.trimStart()}`),r=3+S(i.trimStart()).length)}process.stdout.write(`
81
+ `)},info:t=>x.message(t,{symbol:e.blue(q)}),success:t=>x.message(t,{symbol:e.green(D)}),step:t=>x.message(t,{symbol:e.green(C)}),warn:t=>x.message(t,{symbol:e.yellow(U)}),warning:t=>x.warn(t),error:t=>x.message(t,{symbol:e.red(K)})},Y=({indicator:t="dots"}={})=>{const n=V?["\u25D2","\u25D0","\u25D3","\u25D1"]:["\u2022","o","O","0"],r=V?80:120,i=process.env.CI==="true";let s,c,a=!1,l="",$,g=performance.now();const p=m=>{const h=m>1?"Something went wrong":"Canceled";a&&N(h,m)},v=()=>p(2),f=()=>p(1),j=()=>{process.on("uncaughtExceptionMonitor",v),process.on("unhandledRejection",v),process.on("SIGINT",f),process.on("SIGTERM",f),process.on("exit",p)},E=()=>{process.removeListener("uncaughtExceptionMonitor",v),process.removeListener("unhandledRejection",v),process.removeListener("SIGINT",f),process.removeListener("SIGTERM",f),process.removeListener("exit",p)},B=()=>{if($===void 0)return;i&&process.stdout.write(`
82
+ `);const m=$.split(`
83
+ `);process.stdout.write(oe.move(-999,m.length-1)),process.stdout.write(ae.down(m.length))},R=m=>m.replace(/\.+$/,""),O=m=>{const h=(performance.now()-m)/1e3,w=Math.floor(h/60),I=Math.floor(h%60);return w>0?`[${w}m ${I}s]`:`[${I}s]`},H=(m="")=>{a=!0,s=ne(),l=R(m),g=performance.now(),process.stdout.write(`${e.gray(o)}
84
+ `);let h=0,w=0;j(),c=setInterval(()=>{if(i&&l===$)return;B(),$=l;const I=e.magenta(n[h]);if(i)process.stdout.write(`${I} ${l}...`);else if(t==="timer")process.stdout.write(`${I} ${l} ${O(g)}`);else{const z=".".repeat(Math.floor(w)).slice(0,3);process.stdout.write(`${I} ${l}${z}`)}h=h+1<n.length?h+1:0,w=w<n.length?w+.125:0},r)},N=(m="",h=0)=>{a=!1,clearInterval(c),B();const w=h===0?e.green(C):h===1?e.red(L):e.red(W);l=R(m??l),t==="timer"?process.stdout.write(`${w} ${l} ${O(g)}
85
+ `):process.stdout.write(`${w} ${l}
86
+ `),E(),s()};return{start:H,stop:N,message:(m="")=>{l=R(m??l)}}},Ce=async(t,n)=>{const r={},i=Object.keys(t);for(const s of i){const c=t[s],a=await c({results:r})?.catch(l=>{throw l});if(typeof n?.onCancel=="function"&&ie(a)){r[s]="canceled",n.onCancel({results:r});continue}r[s]=a}return r},Te=async t=>{for(const n of t){if(n.enabled===!1)continue;const r=Y();r.start(n.title);const i=await n.task(r.message);r.stop(i||n.title)}};export{xe as cancel,ye as confirm,Ce as group,be as groupMultiselect,Ie as intro,M as log,fe as multiselect,Me as note,Se as outro,ge as password,ve as select,we as selectKey,Y as spinner,x as stream,Te as tasks,he as text};
87
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/is-unicode-supported@1.3.0/node_modules/is-unicode-supported/index.js","../src/index.ts"],"sourcesContent":["import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tif (process.platform !== 'win32') {\n\t\treturn process.env.TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(process.env.CI)\n\t\t|| Boolean(process.env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(process.env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| process.env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| process.env.TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| process.env.TERM_PROGRAM === 'vscode'\n\t\t|| process.env.TERM === 'xterm-256color'\n\t\t|| process.env.TERM === 'alacritty'\n\t\t|| process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n","import { stripVTControlCharacters as strip } from 'node:util';\nimport {\n\tConfirmPrompt,\n\tGroupMultiSelectPrompt,\n\tMultiSelectPrompt,\n\tPasswordPrompt,\n\tSelectKeyPrompt,\n\tSelectPrompt,\n\ttype State,\n\tTextPrompt,\n\tblock,\n\tisCancel,\n} from '@clack/core';\nimport isUnicodeSupported from 'is-unicode-supported';\nimport color from 'picocolors';\nimport { cursor, erase } from 'sisteransi';\n\nexport { isCancel } from '@clack/core';\nexport { updateSettings, type ClackSettings } from '@clack/core';\n\nconst unicode = isUnicodeSupported();\nconst s = (c: string, fallback: string) => (unicode ? c : fallback);\nconst S_STEP_ACTIVE = s('◆', '*');\nconst S_STEP_CANCEL = s('■', 'x');\nconst S_STEP_ERROR = s('▲', 'x');\nconst S_STEP_SUBMIT = s('◇', 'o');\n\nconst S_BAR_START = s('┌', 'T');\nconst S_BAR = s('│', '|');\nconst S_BAR_END = s('└', '—');\n\nconst S_RADIO_ACTIVE = s('●', '>');\nconst S_RADIO_INACTIVE = s('○', ' ');\nconst S_CHECKBOX_ACTIVE = s('◻', '[•]');\nconst S_CHECKBOX_SELECTED = s('◼', '[+]');\nconst S_CHECKBOX_INACTIVE = s('◻', '[ ]');\nconst S_PASSWORD_MASK = s('▪', '•');\n\nconst S_BAR_H = s('─', '-');\nconst S_CORNER_TOP_RIGHT = s('╮', '+');\nconst S_CONNECT_LEFT = s('├', '+');\nconst S_CORNER_BOTTOM_RIGHT = s('╯', '+');\n\nconst S_INFO = s('●', '•');\nconst S_SUCCESS = s('◆', '*');\nconst S_WARN = s('▲', '!');\nconst S_ERROR = s('■', 'x');\n\nconst symbol = (state: State) => {\n\tswitch (state) {\n\t\tcase 'initial':\n\t\tcase 'active':\n\t\t\treturn color.cyan(S_STEP_ACTIVE);\n\t\tcase 'cancel':\n\t\t\treturn color.red(S_STEP_CANCEL);\n\t\tcase 'error':\n\t\t\treturn color.yellow(S_STEP_ERROR);\n\t\tcase 'submit':\n\t\t\treturn color.green(S_STEP_SUBMIT);\n\t}\n};\n\ninterface LimitOptionsParams<TOption> {\n\toptions: TOption[];\n\tmaxItems: number | undefined;\n\tcursor: number;\n\tstyle: (option: TOption, active: boolean) => string;\n}\n\nconst limitOptions = <TOption>(params: LimitOptionsParams<TOption>): string[] => {\n\tconst { cursor, options, style } = params;\n\n\tconst paramMaxItems = params.maxItems ?? Number.POSITIVE_INFINITY;\n\tconst outputMaxItems = Math.max(process.stdout.rows - 4, 0);\n\t// We clamp to minimum 5 because anything less doesn't make sense UX wise\n\tconst maxItems = Math.min(outputMaxItems, Math.max(paramMaxItems, 5));\n\tlet slidingWindowLocation = 0;\n\n\tif (cursor >= slidingWindowLocation + maxItems - 3) {\n\t\tslidingWindowLocation = Math.max(Math.min(cursor - maxItems + 3, options.length - maxItems), 0);\n\t} else if (cursor < slidingWindowLocation + 2) {\n\t\tslidingWindowLocation = Math.max(cursor - 2, 0);\n\t}\n\n\tconst shouldRenderTopEllipsis = maxItems < options.length && slidingWindowLocation > 0;\n\tconst shouldRenderBottomEllipsis =\n\t\tmaxItems < options.length && slidingWindowLocation + maxItems < options.length;\n\n\treturn options\n\t\t.slice(slidingWindowLocation, slidingWindowLocation + maxItems)\n\t\t.map((option, i, arr) => {\n\t\t\tconst isTopLimit = i === 0 && shouldRenderTopEllipsis;\n\t\t\tconst isBottomLimit = i === arr.length - 1 && shouldRenderBottomEllipsis;\n\t\t\treturn isTopLimit || isBottomLimit\n\t\t\t\t? color.dim('...')\n\t\t\t\t: style(option, i + slidingWindowLocation === cursor);\n\t\t});\n};\n\nexport interface TextOptions {\n\tmessage: string;\n\tplaceholder?: string;\n\tdefaultValue?: string;\n\tinitialValue?: string;\n\tvalidate?: (value: string) => string | Error | undefined;\n}\nexport const text = (opts: TextOptions) => {\n\treturn new TextPrompt({\n\t\tvalidate: opts.validate,\n\t\tplaceholder: opts.placeholder,\n\t\tdefaultValue: opts.defaultValue,\n\t\tinitialValue: opts.initialValue,\n\t\trender() {\n\t\t\tconst title = `${color.gray(S_BAR)}\\n${symbol(this.state)} ${opts.message}\\n`;\n\t\t\tconst placeholder = opts.placeholder\n\t\t\t\t? color.inverse(opts.placeholder[0]) + color.dim(opts.placeholder.slice(1))\n\t\t\t\t: color.inverse(color.hidden('_'));\n\t\t\tconst value = !this.value ? placeholder : this.valueWithCursor;\n\n\t\t\tswitch (this.state) {\n\t\t\t\tcase 'error':\n\t\t\t\t\treturn `${title.trim()}\\n${color.yellow(S_BAR)} ${value}\\n${color.yellow(\n\t\t\t\t\t\tS_BAR_END\n\t\t\t\t\t)} ${color.yellow(this.error)}\\n`;\n\t\t\t\tcase 'submit':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${color.dim(this.value || opts.placeholder)}`;\n\t\t\t\tcase 'cancel':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${color.strikethrough(\n\t\t\t\t\t\tcolor.dim(this.value ?? '')\n\t\t\t\t\t)}${this.value?.trim() ? `\\n${color.gray(S_BAR)}` : ''}`;\n\t\t\t\tdefault:\n\t\t\t\t\treturn `${title}${color.cyan(S_BAR)} ${value}\\n${color.cyan(S_BAR_END)}\\n`;\n\t\t\t}\n\t\t},\n\t}).prompt() as Promise<string | symbol>;\n};\n\nexport interface PasswordOptions {\n\tmessage: string;\n\tmask?: string;\n\tvalidate?: (value: string) => string | Error | undefined;\n}\nexport const password = (opts: PasswordOptions) => {\n\treturn new PasswordPrompt({\n\t\tvalidate: opts.validate,\n\t\tmask: opts.mask ?? S_PASSWORD_MASK,\n\t\trender() {\n\t\t\tconst title = `${color.gray(S_BAR)}\\n${symbol(this.state)} ${opts.message}\\n`;\n\t\t\tconst value = this.valueWithCursor;\n\t\t\tconst masked = this.masked;\n\n\t\t\tswitch (this.state) {\n\t\t\t\tcase 'error':\n\t\t\t\t\treturn `${title.trim()}\\n${color.yellow(S_BAR)} ${masked}\\n${color.yellow(\n\t\t\t\t\t\tS_BAR_END\n\t\t\t\t\t)} ${color.yellow(this.error)}\\n`;\n\t\t\t\tcase 'submit':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${color.dim(masked)}`;\n\t\t\t\tcase 'cancel':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${color.strikethrough(color.dim(masked ?? ''))}${\n\t\t\t\t\t\tmasked ? `\\n${color.gray(S_BAR)}` : ''\n\t\t\t\t\t}`;\n\t\t\t\tdefault:\n\t\t\t\t\treturn `${title}${color.cyan(S_BAR)} ${value}\\n${color.cyan(S_BAR_END)}\\n`;\n\t\t\t}\n\t\t},\n\t}).prompt() as Promise<string | symbol>;\n};\n\nexport interface ConfirmOptions {\n\tmessage: string;\n\tactive?: string;\n\tinactive?: string;\n\tinitialValue?: boolean;\n}\nexport const confirm = (opts: ConfirmOptions) => {\n\tconst active = opts.active ?? 'Yes';\n\tconst inactive = opts.inactive ?? 'No';\n\treturn new ConfirmPrompt({\n\t\tactive,\n\t\tinactive,\n\t\tinitialValue: opts.initialValue ?? true,\n\t\trender() {\n\t\t\tconst title = `${color.gray(S_BAR)}\\n${symbol(this.state)} ${opts.message}\\n`;\n\t\t\tconst value = this.value ? active : inactive;\n\n\t\t\tswitch (this.state) {\n\t\t\t\tcase 'submit':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${color.dim(value)}`;\n\t\t\t\tcase 'cancel':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${color.strikethrough(\n\t\t\t\t\t\tcolor.dim(value)\n\t\t\t\t\t)}\\n${color.gray(S_BAR)}`;\n\t\t\t\tdefault: {\n\t\t\t\t\treturn `${title}${color.cyan(S_BAR)} ${\n\t\t\t\t\t\tthis.value\n\t\t\t\t\t\t\t? `${color.green(S_RADIO_ACTIVE)} ${active}`\n\t\t\t\t\t\t\t: `${color.dim(S_RADIO_INACTIVE)} ${color.dim(active)}`\n\t\t\t\t\t} ${color.dim('/')} ${\n\t\t\t\t\t\t!this.value\n\t\t\t\t\t\t\t? `${color.green(S_RADIO_ACTIVE)} ${inactive}`\n\t\t\t\t\t\t\t: `${color.dim(S_RADIO_INACTIVE)} ${color.dim(inactive)}`\n\t\t\t\t\t}\\n${color.cyan(S_BAR_END)}\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}).prompt() as Promise<boolean | symbol>;\n};\n\ntype Primitive = Readonly<string | boolean | number>;\n\nexport type Option<Value> = Value extends Primitive\n\t? {\n\t\t\t/**\n\t\t\t * Internal data for this option.\n\t\t\t */\n\t\t\tvalue: Value;\n\t\t\t/**\n\t\t\t * The optional, user-facing text for this option.\n\t\t\t *\n\t\t\t * By default, the `value` is converted to a string.\n\t\t\t */\n\t\t\tlabel?: string;\n\t\t\t/**\n\t\t\t * An optional hint to display to the user when\n\t\t\t * this option might be selected.\n\t\t\t *\n\t\t\t * By default, no `hint` is displayed.\n\t\t\t */\n\t\t\thint?: string;\n\t\t}\n\t: {\n\t\t\t/**\n\t\t\t * Internal data for this option.\n\t\t\t */\n\t\t\tvalue: Value;\n\t\t\t/**\n\t\t\t * Required. The user-facing text for this option.\n\t\t\t */\n\t\t\tlabel: string;\n\t\t\t/**\n\t\t\t * An optional hint to display to the user when\n\t\t\t * this option might be selected.\n\t\t\t *\n\t\t\t * By default, no `hint` is displayed.\n\t\t\t */\n\t\t\thint?: string;\n\t\t};\n\nexport interface SelectOptions<Value> {\n\tmessage: string;\n\toptions: Option<Value>[];\n\tinitialValue?: Value;\n\tmaxItems?: number;\n}\n\nexport const select = <Value>(opts: SelectOptions<Value>) => {\n\tconst opt = (option: Option<Value>, state: 'inactive' | 'active' | 'selected' | 'cancelled') => {\n\t\tconst label = option.label ?? String(option.value);\n\t\tswitch (state) {\n\t\t\tcase 'selected':\n\t\t\t\treturn `${color.dim(label)}`;\n\t\t\tcase 'active':\n\t\t\t\treturn `${color.green(S_RADIO_ACTIVE)} ${label} ${\n\t\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t\t}`;\n\t\t\tcase 'cancelled':\n\t\t\t\treturn `${color.strikethrough(color.dim(label))}`;\n\t\t\tdefault:\n\t\t\t\treturn `${color.dim(S_RADIO_INACTIVE)} ${color.dim(label)}`;\n\t\t}\n\t};\n\n\treturn new SelectPrompt({\n\t\toptions: opts.options,\n\t\tinitialValue: opts.initialValue,\n\t\trender() {\n\t\t\tconst title = `${color.gray(S_BAR)}\\n${symbol(this.state)} ${opts.message}\\n`;\n\n\t\t\tswitch (this.state) {\n\t\t\t\tcase 'submit':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${opt(this.options[this.cursor], 'selected')}`;\n\t\t\t\tcase 'cancel':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${opt(\n\t\t\t\t\t\tthis.options[this.cursor],\n\t\t\t\t\t\t'cancelled'\n\t\t\t\t\t)}\\n${color.gray(S_BAR)}`;\n\t\t\t\tdefault: {\n\t\t\t\t\treturn `${title}${color.cyan(S_BAR)} ${limitOptions({\n\t\t\t\t\t\tcursor: this.cursor,\n\t\t\t\t\t\toptions: this.options,\n\t\t\t\t\t\tmaxItems: opts.maxItems,\n\t\t\t\t\t\tstyle: (item, active) => opt(item, active ? 'active' : 'inactive'),\n\t\t\t\t\t}).join(`\\n${color.cyan(S_BAR)} `)}\\n${color.cyan(S_BAR_END)}\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}).prompt() as Promise<Value | symbol>;\n};\n\nexport const selectKey = <Value extends string>(opts: SelectOptions<Value>) => {\n\tconst opt = (\n\t\toption: Option<Value>,\n\t\tstate: 'inactive' | 'active' | 'selected' | 'cancelled' = 'inactive'\n\t) => {\n\t\tconst label = option.label ?? String(option.value);\n\t\tif (state === 'selected') {\n\t\t\treturn `${color.dim(label)}`;\n\t\t}\n\t\tif (state === 'cancelled') {\n\t\t\treturn `${color.strikethrough(color.dim(label))}`;\n\t\t}\n\t\tif (state === 'active') {\n\t\t\treturn `${color.bgCyan(color.gray(` ${option.value} `))} ${label} ${\n\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t}`;\n\t\t}\n\t\treturn `${color.gray(color.bgWhite(color.inverse(` ${option.value} `)))} ${label} ${\n\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t}`;\n\t};\n\n\treturn new SelectKeyPrompt({\n\t\toptions: opts.options,\n\t\tinitialValue: opts.initialValue,\n\t\trender() {\n\t\t\tconst title = `${color.gray(S_BAR)}\\n${symbol(this.state)} ${opts.message}\\n`;\n\n\t\t\tswitch (this.state) {\n\t\t\t\tcase 'submit':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${opt(\n\t\t\t\t\t\tthis.options.find((opt) => opt.value === this.value) ?? opts.options[0],\n\t\t\t\t\t\t'selected'\n\t\t\t\t\t)}`;\n\t\t\t\tcase 'cancel':\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${opt(this.options[0], 'cancelled')}\\n${color.gray(\n\t\t\t\t\t\tS_BAR\n\t\t\t\t\t)}`;\n\t\t\t\tdefault: {\n\t\t\t\t\treturn `${title}${color.cyan(S_BAR)} ${this.options\n\t\t\t\t\t\t.map((option, i) => opt(option, i === this.cursor ? 'active' : 'inactive'))\n\t\t\t\t\t\t.join(`\\n${color.cyan(S_BAR)} `)}\\n${color.cyan(S_BAR_END)}\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}).prompt() as Promise<Value | symbol>;\n};\n\nexport interface MultiSelectOptions<Value> {\n\tmessage: string;\n\toptions: Option<Value>[];\n\tinitialValues?: Value[];\n\tmaxItems?: number;\n\trequired?: boolean;\n\tcursorAt?: Value;\n}\nexport const multiselect = <Value>(opts: MultiSelectOptions<Value>) => {\n\tconst opt = (\n\t\toption: Option<Value>,\n\t\tstate: 'inactive' | 'active' | 'selected' | 'active-selected' | 'submitted' | 'cancelled'\n\t) => {\n\t\tconst label = option.label ?? String(option.value);\n\t\tif (state === 'active') {\n\t\t\treturn `${color.cyan(S_CHECKBOX_ACTIVE)} ${label} ${\n\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t}`;\n\t\t}\n\t\tif (state === 'selected') {\n\t\t\treturn `${color.green(S_CHECKBOX_SELECTED)} ${color.dim(label)} ${\n\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t}`;\n\t\t}\n\t\tif (state === 'cancelled') {\n\t\t\treturn `${color.strikethrough(color.dim(label))}`;\n\t\t}\n\t\tif (state === 'active-selected') {\n\t\t\treturn `${color.green(S_CHECKBOX_SELECTED)} ${label} ${\n\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t}`;\n\t\t}\n\t\tif (state === 'submitted') {\n\t\t\treturn `${color.dim(label)}`;\n\t\t}\n\t\treturn `${color.dim(S_CHECKBOX_INACTIVE)} ${color.dim(label)}`;\n\t};\n\n\treturn new MultiSelectPrompt({\n\t\toptions: opts.options,\n\t\tinitialValues: opts.initialValues,\n\t\trequired: opts.required ?? true,\n\t\tcursorAt: opts.cursorAt,\n\t\tvalidate(selected: Value[]) {\n\t\t\tif (this.required && selected.length === 0)\n\t\t\t\treturn `Please select at least one option.\\n${color.reset(\n\t\t\t\t\tcolor.dim(\n\t\t\t\t\t\t`Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray(\n\t\t\t\t\t\t\tcolor.bgWhite(color.inverse(' enter '))\n\t\t\t\t\t\t)} to submit`\n\t\t\t\t\t)\n\t\t\t\t)}`;\n\t\t},\n\t\trender() {\n\t\t\tconst title = `${color.gray(S_BAR)}\\n${symbol(this.state)} ${opts.message}\\n`;\n\n\t\t\tconst styleOption = (option: Option<Value>, active: boolean) => {\n\t\t\t\tconst selected = this.value.includes(option.value);\n\t\t\t\tif (active && selected) {\n\t\t\t\t\treturn opt(option, 'active-selected');\n\t\t\t\t}\n\t\t\t\tif (selected) {\n\t\t\t\t\treturn opt(option, 'selected');\n\t\t\t\t}\n\t\t\t\treturn opt(option, active ? 'active' : 'inactive');\n\t\t\t};\n\n\t\t\tswitch (this.state) {\n\t\t\t\tcase 'submit': {\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${\n\t\t\t\t\t\tthis.options\n\t\t\t\t\t\t\t.filter(({ value }) => this.value.includes(value))\n\t\t\t\t\t\t\t.map((option) => opt(option, 'submitted'))\n\t\t\t\t\t\t\t.join(color.dim(', ')) || color.dim('none')\n\t\t\t\t\t}`;\n\t\t\t\t}\n\t\t\t\tcase 'cancel': {\n\t\t\t\t\tconst label = this.options\n\t\t\t\t\t\t.filter(({ value }) => this.value.includes(value))\n\t\t\t\t\t\t.map((option) => opt(option, 'cancelled'))\n\t\t\t\t\t\t.join(color.dim(', '));\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${\n\t\t\t\t\t\tlabel.trim() ? `${label}\\n${color.gray(S_BAR)}` : ''\n\t\t\t\t\t}`;\n\t\t\t\t}\n\t\t\t\tcase 'error': {\n\t\t\t\t\tconst footer = this.error\n\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t.map((ln, i) =>\n\t\t\t\t\t\t\ti === 0 ? `${color.yellow(S_BAR_END)} ${color.yellow(ln)}` : ` ${ln}`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('\\n');\n\t\t\t\t\treturn `${title + color.yellow(S_BAR)} ${limitOptions({\n\t\t\t\t\t\toptions: this.options,\n\t\t\t\t\t\tcursor: this.cursor,\n\t\t\t\t\t\tmaxItems: opts.maxItems,\n\t\t\t\t\t\tstyle: styleOption,\n\t\t\t\t\t}).join(`\\n${color.yellow(S_BAR)} `)}\\n${footer}\\n`;\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\treturn `${title}${color.cyan(S_BAR)} ${limitOptions({\n\t\t\t\t\t\toptions: this.options,\n\t\t\t\t\t\tcursor: this.cursor,\n\t\t\t\t\t\tmaxItems: opts.maxItems,\n\t\t\t\t\t\tstyle: styleOption,\n\t\t\t\t\t}).join(`\\n${color.cyan(S_BAR)} `)}\\n${color.cyan(S_BAR_END)}\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}).prompt() as Promise<Value[] | symbol>;\n};\n\nexport interface GroupMultiSelectOptions<Value> {\n\tmessage: string;\n\toptions: Record<string, Option<Value>[]>;\n\tinitialValues?: Value[];\n\trequired?: boolean;\n\tcursorAt?: Value;\n\tselectableGroups?: boolean;\n}\nexport const groupMultiselect = <Value>(opts: GroupMultiSelectOptions<Value>) => {\n\tconst { selectableGroups = true } = opts;\n\tconst opt = (\n\t\toption: Option<Value>,\n\t\tstate:\n\t\t\t| 'inactive'\n\t\t\t| 'active'\n\t\t\t| 'selected'\n\t\t\t| 'active-selected'\n\t\t\t| 'group-active'\n\t\t\t| 'group-active-selected'\n\t\t\t| 'submitted'\n\t\t\t| 'cancelled',\n\t\toptions: Option<Value>[] = []\n\t) => {\n\t\tconst label = option.label ?? String(option.value);\n\t\tconst isItem = typeof (option as any).group === 'string';\n\t\tconst next = isItem && (options[options.indexOf(option) + 1] ?? { group: true });\n\t\tconst isLast = isItem && (next as any).group === true;\n\t\tconst prefix = isItem ? (selectableGroups ? `${isLast ? S_BAR_END : S_BAR} ` : ' ') : '';\n\n\t\tif (state === 'active') {\n\t\t\treturn `${color.dim(prefix)}${color.cyan(S_CHECKBOX_ACTIVE)} ${label} ${\n\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t}`;\n\t\t}\n\t\tif (state === 'group-active') {\n\t\t\treturn `${prefix}${color.cyan(S_CHECKBOX_ACTIVE)} ${color.dim(label)}`;\n\t\t}\n\t\tif (state === 'group-active-selected') {\n\t\t\treturn `${prefix}${color.green(S_CHECKBOX_SELECTED)} ${color.dim(label)}`;\n\t\t}\n\t\tif (state === 'selected') {\n\t\t\tconst selectedCheckbox = isItem || selectableGroups ? color.green(S_CHECKBOX_SELECTED) : '';\n\t\t\treturn `${color.dim(prefix)}${selectedCheckbox} ${color.dim(label)} ${\n\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t}`;\n\t\t}\n\t\tif (state === 'cancelled') {\n\t\t\treturn `${color.strikethrough(color.dim(label))}`;\n\t\t}\n\t\tif (state === 'active-selected') {\n\t\t\treturn `${color.dim(prefix)}${color.green(S_CHECKBOX_SELECTED)} ${label} ${\n\t\t\t\toption.hint ? color.dim(`(${option.hint})`) : ''\n\t\t\t}`;\n\t\t}\n\t\tif (state === 'submitted') {\n\t\t\treturn `${color.dim(label)}`;\n\t\t}\n\t\tconst unselectedCheckbox = isItem || selectableGroups ? color.dim(S_CHECKBOX_INACTIVE) : '';\n\t\treturn `${color.dim(prefix)}${unselectedCheckbox} ${color.dim(label)}`;\n\t};\n\n\treturn new GroupMultiSelectPrompt({\n\t\toptions: opts.options,\n\t\tinitialValues: opts.initialValues,\n\t\trequired: opts.required ?? true,\n\t\tcursorAt: opts.cursorAt,\n\t\tselectableGroups,\n\t\tvalidate(selected: Value[]) {\n\t\t\tif (this.required && selected.length === 0)\n\t\t\t\treturn `Please select at least one option.\\n${color.reset(\n\t\t\t\t\tcolor.dim(\n\t\t\t\t\t\t`Press ${color.gray(color.bgWhite(color.inverse(' space ')))} to select, ${color.gray(\n\t\t\t\t\t\t\tcolor.bgWhite(color.inverse(' enter '))\n\t\t\t\t\t\t)} to submit`\n\t\t\t\t\t)\n\t\t\t\t)}`;\n\t\t},\n\t\trender() {\n\t\t\tconst title = `${color.gray(S_BAR)}\\n${symbol(this.state)} ${opts.message}\\n`;\n\n\t\t\tswitch (this.state) {\n\t\t\t\tcase 'submit': {\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${this.options\n\t\t\t\t\t\t.filter(({ value }) => this.value.includes(value))\n\t\t\t\t\t\t.map((option) => opt(option, 'submitted'))\n\t\t\t\t\t\t.join(color.dim(', '))}`;\n\t\t\t\t}\n\t\t\t\tcase 'cancel': {\n\t\t\t\t\tconst label = this.options\n\t\t\t\t\t\t.filter(({ value }) => this.value.includes(value))\n\t\t\t\t\t\t.map((option) => opt(option, 'cancelled'))\n\t\t\t\t\t\t.join(color.dim(', '));\n\t\t\t\t\treturn `${title}${color.gray(S_BAR)} ${\n\t\t\t\t\t\tlabel.trim() ? `${label}\\n${color.gray(S_BAR)}` : ''\n\t\t\t\t\t}`;\n\t\t\t\t}\n\t\t\t\tcase 'error': {\n\t\t\t\t\tconst footer = this.error\n\t\t\t\t\t\t.split('\\n')\n\t\t\t\t\t\t.map((ln, i) =>\n\t\t\t\t\t\t\ti === 0 ? `${color.yellow(S_BAR_END)} ${color.yellow(ln)}` : ` ${ln}`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('\\n');\n\t\t\t\t\treturn `${title}${color.yellow(S_BAR)} ${this.options\n\t\t\t\t\t\t.map((option, i, options) => {\n\t\t\t\t\t\t\tconst selected =\n\t\t\t\t\t\t\t\tthis.value.includes(option.value) ||\n\t\t\t\t\t\t\t\t(option.group === true && this.isGroupSelected(`${option.value}`));\n\t\t\t\t\t\t\tconst active = i === this.cursor;\n\t\t\t\t\t\t\tconst groupActive =\n\t\t\t\t\t\t\t\t!active &&\n\t\t\t\t\t\t\t\ttypeof option.group === 'string' &&\n\t\t\t\t\t\t\t\tthis.options[this.cursor].value === option.group;\n\t\t\t\t\t\t\tif (groupActive) {\n\t\t\t\t\t\t\t\treturn opt(option, selected ? 'group-active-selected' : 'group-active', options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (active && selected) {\n\t\t\t\t\t\t\t\treturn opt(option, 'active-selected', options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (selected) {\n\t\t\t\t\t\t\t\treturn opt(option, 'selected', options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn opt(option, active ? 'active' : 'inactive', options);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(`\\n${color.yellow(S_BAR)} `)}\\n${footer}\\n`;\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\treturn `${title}${color.cyan(S_BAR)} ${this.options\n\t\t\t\t\t\t.map((option, i, options) => {\n\t\t\t\t\t\t\tconst selected =\n\t\t\t\t\t\t\t\tthis.value.includes(option.value) ||\n\t\t\t\t\t\t\t\t(option.group === true && this.isGroupSelected(`${option.value}`));\n\t\t\t\t\t\t\tconst active = i === this.cursor;\n\t\t\t\t\t\t\tconst groupActive =\n\t\t\t\t\t\t\t\t!active &&\n\t\t\t\t\t\t\t\ttypeof option.group === 'string' &&\n\t\t\t\t\t\t\t\tthis.options[this.cursor].value === option.group;\n\t\t\t\t\t\t\tif (groupActive) {\n\t\t\t\t\t\t\t\treturn opt(option, selected ? 'group-active-selected' : 'group-active', options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (active && selected) {\n\t\t\t\t\t\t\t\treturn opt(option, 'active-selected', options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (selected) {\n\t\t\t\t\t\t\t\treturn opt(option, 'selected', options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn opt(option, active ? 'active' : 'inactive', options);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.join(`\\n${color.cyan(S_BAR)} `)}\\n${color.cyan(S_BAR_END)}\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t}).prompt() as Promise<Value[] | symbol>;\n};\n\nexport const note = (message = '', title = '') => {\n\tconst lines = `\\n${message}\\n`.split('\\n');\n\tconst titleLen = strip(title).length;\n\tconst len =\n\t\tMath.max(\n\t\t\tlines.reduce((sum, ln) => {\n\t\t\t\tconst line = strip(ln);\n\t\t\t\treturn line.length > sum ? line.length : sum;\n\t\t\t}, 0),\n\t\t\ttitleLen\n\t\t) + 2;\n\tconst msg = lines\n\t\t.map(\n\t\t\t(ln) =>\n\t\t\t\t`${color.gray(S_BAR)} ${color.dim(ln)}${' '.repeat(len - strip(ln).length)}${color.gray(\n\t\t\t\t\tS_BAR\n\t\t\t\t)}`\n\t\t)\n\t\t.join('\\n');\n\tprocess.stdout.write(\n\t\t`${color.gray(S_BAR)}\\n${color.green(S_STEP_SUBMIT)} ${color.reset(title)} ${color.gray(\n\t\t\tS_BAR_H.repeat(Math.max(len - titleLen - 1, 1)) + S_CORNER_TOP_RIGHT\n\t\t)}\\n${msg}\\n${color.gray(S_CONNECT_LEFT + S_BAR_H.repeat(len + 2) + S_CORNER_BOTTOM_RIGHT)}\\n`\n\t);\n};\n\nexport const cancel = (message = '') => {\n\tprocess.stdout.write(`${color.gray(S_BAR_END)} ${color.red(message)}\\n\\n`);\n};\n\nexport const intro = (title = '') => {\n\tprocess.stdout.write(`${color.gray(S_BAR_START)} ${title}\\n`);\n};\n\nexport const outro = (message = '') => {\n\tprocess.stdout.write(`${color.gray(S_BAR)}\\n${color.gray(S_BAR_END)} ${message}\\n\\n`);\n};\n\nexport type LogMessageOptions = {\n\tsymbol?: string;\n};\nexport const log = {\n\tmessage: (message = '', { symbol = color.gray(S_BAR) }: LogMessageOptions = {}) => {\n\t\tconst parts = [`${color.gray(S_BAR)}`];\n\t\tif (message) {\n\t\t\tconst [firstLine, ...lines] = message.split('\\n');\n\t\t\tparts.push(`${symbol} ${firstLine}`, ...lines.map((ln) => `${color.gray(S_BAR)} ${ln}`));\n\t\t}\n\t\tprocess.stdout.write(`${parts.join('\\n')}\\n`);\n\t},\n\tinfo: (message: string) => {\n\t\tlog.message(message, { symbol: color.blue(S_INFO) });\n\t},\n\tsuccess: (message: string) => {\n\t\tlog.message(message, { symbol: color.green(S_SUCCESS) });\n\t},\n\tstep: (message: string) => {\n\t\tlog.message(message, { symbol: color.green(S_STEP_SUBMIT) });\n\t},\n\twarn: (message: string) => {\n\t\tlog.message(message, { symbol: color.yellow(S_WARN) });\n\t},\n\t/** alias for `log.warn()`. */\n\twarning: (message: string) => {\n\t\tlog.warn(message);\n\t},\n\terror: (message: string) => {\n\t\tlog.message(message, { symbol: color.red(S_ERROR) });\n\t},\n};\n\nconst prefix = `${color.gray(S_BAR)} `;\nexport const stream = {\n\tmessage: async (\n\t\titerable: Iterable<string> | AsyncIterable<string>,\n\t\t{ symbol = color.gray(S_BAR) }: LogMessageOptions = {}\n\t) => {\n\t\tprocess.stdout.write(`${color.gray(S_BAR)}\\n${symbol} `);\n\t\tlet lineWidth = 3;\n\t\tfor await (let chunk of iterable) {\n\t\t\tchunk = chunk.replace(/\\n/g, `\\n${prefix}`);\n\t\t\tif (chunk.includes('\\n')) {\n\t\t\t\tlineWidth = 3 + strip(chunk.slice(chunk.lastIndexOf('\\n'))).length;\n\t\t\t}\n\t\t\tconst chunkLen = strip(chunk).length;\n\t\t\tif (lineWidth + chunkLen < process.stdout.columns) {\n\t\t\t\tlineWidth += chunkLen;\n\t\t\t\tprocess.stdout.write(chunk);\n\t\t\t} else {\n\t\t\t\tprocess.stdout.write(`\\n${prefix}${chunk.trimStart()}`);\n\t\t\t\tlineWidth = 3 + strip(chunk.trimStart()).length;\n\t\t\t}\n\t\t}\n\t\tprocess.stdout.write('\\n');\n\t},\n\tinfo: (iterable: Iterable<string> | AsyncIterable<string>) => {\n\t\treturn stream.message(iterable, { symbol: color.blue(S_INFO) });\n\t},\n\tsuccess: (iterable: Iterable<string> | AsyncIterable<string>) => {\n\t\treturn stream.message(iterable, { symbol: color.green(S_SUCCESS) });\n\t},\n\tstep: (iterable: Iterable<string> | AsyncIterable<string>) => {\n\t\treturn stream.message(iterable, { symbol: color.green(S_STEP_SUBMIT) });\n\t},\n\twarn: (iterable: Iterable<string> | AsyncIterable<string>) => {\n\t\treturn stream.message(iterable, { symbol: color.yellow(S_WARN) });\n\t},\n\t/** alias for `log.warn()`. */\n\twarning: (iterable: Iterable<string> | AsyncIterable<string>) => {\n\t\treturn stream.warn(iterable);\n\t},\n\terror: (iterable: Iterable<string> | AsyncIterable<string>) => {\n\t\treturn stream.message(iterable, { symbol: color.red(S_ERROR) });\n\t},\n};\n\nexport interface SpinnerOptions {\n\tindicator?: 'dots' | 'timer';\n}\n\nexport const spinner = ({ indicator = 'dots' }: SpinnerOptions = {}) => {\n\tconst frames = unicode ? ['◒', '◐', '◓', '◑'] : ['•', 'o', 'O', '0'];\n\tconst delay = unicode ? 80 : 120;\n\tconst isCI = process.env.CI === 'true';\n\n\tlet unblock: () => void;\n\tlet loop: NodeJS.Timeout;\n\tlet isSpinnerActive = false;\n\tlet _message = '';\n\tlet _prevMessage: string | undefined = undefined;\n\tlet _origin: number = performance.now();\n\n\tconst handleExit = (code: number) => {\n\t\tconst msg = code > 1 ? 'Something went wrong' : 'Canceled';\n\t\tif (isSpinnerActive) stop(msg, code);\n\t};\n\n\tconst errorEventHandler = () => handleExit(2);\n\tconst signalEventHandler = () => handleExit(1);\n\n\tconst registerHooks = () => {\n\t\t// Reference: https://nodejs.org/api/process.html#event-uncaughtexception\n\t\tprocess.on('uncaughtExceptionMonitor', errorEventHandler);\n\t\t// Reference: https://nodejs.org/api/process.html#event-unhandledrejection\n\t\tprocess.on('unhandledRejection', errorEventHandler);\n\t\t// Reference Signal Events: https://nodejs.org/api/process.html#signal-events\n\t\tprocess.on('SIGINT', signalEventHandler);\n\t\tprocess.on('SIGTERM', signalEventHandler);\n\t\tprocess.on('exit', handleExit);\n\t};\n\n\tconst clearHooks = () => {\n\t\tprocess.removeListener('uncaughtExceptionMonitor', errorEventHandler);\n\t\tprocess.removeListener('unhandledRejection', errorEventHandler);\n\t\tprocess.removeListener('SIGINT', signalEventHandler);\n\t\tprocess.removeListener('SIGTERM', signalEventHandler);\n\t\tprocess.removeListener('exit', handleExit);\n\t};\n\n\tconst clearPrevMessage = () => {\n\t\tif (_prevMessage === undefined) return;\n\t\tif (isCI) process.stdout.write('\\n');\n\t\tconst prevLines = _prevMessage.split('\\n');\n\t\tprocess.stdout.write(cursor.move(-999, prevLines.length - 1));\n\t\tprocess.stdout.write(erase.down(prevLines.length));\n\t};\n\n\tconst parseMessage = (msg: string): string => {\n\t\treturn msg.replace(/\\.+$/, '');\n\t};\n\n\tconst formatTimer = (origin: number): string => {\n\t\tconst duration = (performance.now() - origin) / 1000;\n\t\tconst min = Math.floor(duration / 60);\n\t\tconst secs = Math.floor(duration % 60);\n\t\treturn min > 0 ? `[${min}m ${secs}s]` : `[${secs}s]`;\n\t};\n\n\tconst start = (msg = ''): void => {\n\t\tisSpinnerActive = true;\n\t\tunblock = block();\n\t\t_message = parseMessage(msg);\n\t\t_origin = performance.now();\n\t\tprocess.stdout.write(`${color.gray(S_BAR)}\\n`);\n\t\tlet frameIndex = 0;\n\t\tlet indicatorTimer = 0;\n\t\tregisterHooks();\n\t\tloop = setInterval(() => {\n\t\t\tif (isCI && _message === _prevMessage) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tclearPrevMessage();\n\t\t\t_prevMessage = _message;\n\t\t\tconst frame = color.magenta(frames[frameIndex]);\n\n\t\t\tif (isCI) {\n\t\t\t\tprocess.stdout.write(`${frame} ${_message}...`);\n\t\t\t} else if (indicator === 'timer') {\n\t\t\t\tprocess.stdout.write(`${frame} ${_message} ${formatTimer(_origin)}`);\n\t\t\t} else {\n\t\t\t\tconst loadingDots = '.'.repeat(Math.floor(indicatorTimer)).slice(0, 3);\n\t\t\t\tprocess.stdout.write(`${frame} ${_message}${loadingDots}`);\n\t\t\t}\n\n\t\t\tframeIndex = frameIndex + 1 < frames.length ? frameIndex + 1 : 0;\n\t\t\tindicatorTimer = indicatorTimer < frames.length ? indicatorTimer + 0.125 : 0;\n\t\t}, delay);\n\t};\n\n\tconst stop = (msg = '', code = 0): void => {\n\t\tisSpinnerActive = false;\n\t\tclearInterval(loop);\n\t\tclearPrevMessage();\n\t\tconst step =\n\t\t\tcode === 0\n\t\t\t\t? color.green(S_STEP_SUBMIT)\n\t\t\t\t: code === 1\n\t\t\t\t\t? color.red(S_STEP_CANCEL)\n\t\t\t\t\t: color.red(S_STEP_ERROR);\n\t\t_message = parseMessage(msg ?? _message);\n\t\tif (indicator === 'timer') {\n\t\t\tprocess.stdout.write(`${step} ${_message} ${formatTimer(_origin)}\\n`);\n\t\t} else {\n\t\t\tprocess.stdout.write(`${step} ${_message}\\n`);\n\t\t}\n\t\tclearHooks();\n\t\tunblock();\n\t};\n\n\tconst message = (msg = ''): void => {\n\t\t_message = parseMessage(msg ?? _message);\n\t};\n\n\treturn {\n\t\tstart,\n\t\tstop,\n\t\tmessage,\n\t};\n};\n\nexport type PromptGroupAwaitedReturn<T> = {\n\t[P in keyof T]: Exclude<Awaited<T[P]>, symbol>;\n};\n\nexport interface PromptGroupOptions<T> {\n\t/**\n\t * Control how the group can be canceled\n\t * if one of the prompts is canceled.\n\t */\n\tonCancel?: (opts: { results: Prettify<Partial<PromptGroupAwaitedReturn<T>>> }) => void;\n}\n\ntype Prettify<T> = {\n\t[P in keyof T]: T[P];\n} & {};\n\nexport type PromptGroup<T> = {\n\t[P in keyof T]: (opts: {\n\t\tresults: Prettify<Partial<PromptGroupAwaitedReturn<Omit<T, P>>>>;\n\t}) => undefined | Promise<T[P] | undefined>;\n};\n\n/**\n * Define a group of prompts to be displayed\n * and return a results of objects within the group\n */\nexport const group = async <T>(\n\tprompts: PromptGroup<T>,\n\topts?: PromptGroupOptions<T>\n): Promise<Prettify<PromptGroupAwaitedReturn<T>>> => {\n\tconst results = {} as any;\n\tconst promptNames = Object.keys(prompts);\n\n\tfor (const name of promptNames) {\n\t\tconst prompt = prompts[name as keyof T];\n\t\tconst result = await prompt({ results })?.catch((e) => {\n\t\t\tthrow e;\n\t\t});\n\n\t\t// Pass the results to the onCancel function\n\t\t// so the user can decide what to do with the results\n\t\t// TODO: Switch to callback within core to avoid isCancel Fn\n\t\tif (typeof opts?.onCancel === 'function' && isCancel(result)) {\n\t\t\tresults[name] = 'canceled';\n\t\t\topts.onCancel({ results });\n\t\t\tcontinue;\n\t\t}\n\n\t\tresults[name] = result;\n\t}\n\n\treturn results;\n};\n\nexport type Task = {\n\t/**\n\t * Task title\n\t */\n\ttitle: string;\n\t/**\n\t * Task function\n\t */\n\ttask: (message: (string: string) => void) => string | Promise<string> | void | Promise<void>;\n\n\t/**\n\t * If enabled === false the task will be skipped\n\t */\n\tenabled?: boolean;\n};\n\n/**\n * Define a group of tasks to be executed\n */\nexport const tasks = async (tasks: Task[]) => {\n\tfor (const task of tasks) {\n\t\tif (task.enabled === false) continue;\n\n\t\tconst s = spinner();\n\t\ts.start(task.title);\n\t\tconst result = await task.task(s.message);\n\t\ts.stop(result || task.title);\n\t}\n};\n"],"names":["isUnicodeSupported","process","unicode","s","c","fallback","S_STEP_ACTIVE","S_STEP_CANCEL","S_STEP_ERROR","S_STEP_SUBMIT","S_BAR_START","S_BAR","S_BAR_END","S_RADIO_ACTIVE","S_RADIO_INACTIVE","S_CHECKBOX_ACTIVE","S_CHECKBOX_SELECTED","S_CHECKBOX_INACTIVE","S_PASSWORD_MASK","S_BAR_H","S_CORNER_TOP_RIGHT","S_CONNECT_LEFT","S_CORNER_BOTTOM_RIGHT","S_INFO","S_SUCCESS","S_WARN","S_ERROR","symbol","state","color","limitOptions","params","cursor","options","style","paramMaxItems","outputMaxItems","maxItems","slidingWindowLocation","shouldRenderTopEllipsis","shouldRenderBottomEllipsis","option","i","arr","isTopLimit","isBottomLimit","text","opts","TextPrompt","title","placeholder","value","password","PasswordPrompt","masked","confirm","active","inactive","ConfirmPrompt","select","opt","label","SelectPrompt","item","selectKey","SelectKeyPrompt","multiselect","MultiSelectPrompt","selected","styleOption","footer","ln","groupMultiselect","selectableGroups","isItem","next","isLast","prefix","selectedCheckbox","unselectedCheckbox","GroupMultiSelectPrompt","note","message","lines","titleLen","strip","len","sum","line","msg","cancel","intro","outro","log","parts","firstLine","stream","iterable","lineWidth","chunk","chunkLen","spinner","indicator","frames","delay","isCI","unblock","loop","isSpinnerActive","_message","_prevMessage","_origin","handleExit","code","stop","errorEventHandler","signalEventHandler","registerHooks","clearHooks","clearPrevMessage","prevLines","erase","parseMessage","formatTimer","origin","duration","min","secs","start","block","frameIndex","indicatorTimer","frame","loadingDots","step","group","prompts","results","promptNames","name","prompt","result","e","isCancel","tasks","task"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@clack/prompts",
3
+ "version": "0.10.1",
4
+ "type": "module",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.mjs",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.mjs",
11
+ "require": "./dist/index.cjs"
12
+ },
13
+ "./package.json": "./package.json"
14
+ },
15
+ "types": "./dist/index.d.ts",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/bombshell-dev/clack.git",
19
+ "directory": "packages/prompts"
20
+ },
21
+ "bugs": {
22
+ "url": "https://github.com/bombshell-dev/clack/issues"
23
+ },
24
+ "homepage": "https://github.com/bombshell-dev/clack/tree/main/packages/prompts#readme",
25
+ "files": [
26
+ "dist",
27
+ "CHANGELOG.md"
28
+ ],
29
+ "author": {
30
+ "name": "Nate Moore",
31
+ "email": "nate@natemoo.re",
32
+ "url": "https://twitter.com/n_moore"
33
+ },
34
+ "license": "MIT",
35
+ "keywords": [
36
+ "ask",
37
+ "clack",
38
+ "cli",
39
+ "command-line",
40
+ "command",
41
+ "input",
42
+ "interact",
43
+ "interface",
44
+ "menu",
45
+ "prompt",
46
+ "prompts",
47
+ "stdin",
48
+ "ui"
49
+ ],
50
+ "dependencies": {
51
+ "picocolors": "^1.0.0",
52
+ "sisteransi": "^1.0.5",
53
+ "@clack/core": "0.4.2"
54
+ },
55
+ "devDependencies": {
56
+ "is-unicode-supported": "^1.3.0"
57
+ },
58
+ "scripts": {
59
+ "build": "unbuild"
60
+ }
61
+ }
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) Cosmin Popovici
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,58 @@
1
+ <div align="center">
2
+ <p>
3
+ <a href="https://maizzle.com" target="_blank">
4
+ <picture>
5
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/maizzle/cli/HEAD/.github/cli-mark-dark.svg">
6
+ <img alt="Maizzle CLI" src="https://raw.githubusercontent.com/maizzle/cli/HEAD/.github/cli-mark-light.svg" width="300" height="225" style="max-width: 100%;">
7
+ </picture>
8
+ </a>
9
+ </p>
10
+ <p>The CLI tool for Maizzle</p>
11
+ <div>
12
+
13
+ [![Version][npm-version-shield]][npm]
14
+ [![Build][github-ci-shield]][github-ci]
15
+ [![Downloads][npm-stats-shield]][npm-stats]
16
+ [![License][license-shield]][license]
17
+
18
+ </div>
19
+ </div>
20
+
21
+ > **Note:** This repository contains the code for Maizzle's CLI tool. If you want to build HTML emails using Maizzle, visit the [Starter repository](https://github.com/maizzle/maizzle).
22
+
23
+ ## Installation
24
+
25
+ ```bash
26
+ npm install -g @maizzle/cli
27
+ ```
28
+
29
+ ## Usage
30
+
31
+ Create a new project using the interactive prompt:
32
+
33
+ ```bash
34
+ maizzle new
35
+ ```
36
+
37
+ Start a local development server by running the `serve` command in the project directory:
38
+
39
+ ```bash
40
+ maizzle serve
41
+ ```
42
+
43
+ Build for production:
44
+
45
+ ```bash
46
+ maizzle build
47
+ ```
48
+
49
+ Documentation is available at https://maizzle.com
50
+
51
+ [npm]: https://www.npmjs.com/package/@maizzle/cli
52
+ [npm-stats]: https://npm-stat.com/charts.html?package=%40maizzle%2Fcli&from=2019-03-27
53
+ [npm-version-shield]: https://img.shields.io/npm/v/@maizzle/cli.svg
54
+ [npm-stats-shield]: https://img.shields.io/npm/dt/@maizzle/cli.svg?color=4f46e5
55
+ [github-ci]: https://github.com/maizzle/cli/actions
56
+ [github-ci-shield]: https://github.com/maizzle/cli/actions/workflows/nodejs.yml/badge.svg
57
+ [license]: ./LICENSE
58
+ [license-shield]: https://img.shields.io/npm/l/@maizzle/cli.svg?color=0e9f6e
@@ -0,0 +1,4 @@
1
+ //#region src/commands/make/component.d.ts
2
+ declare function makeComponent(filePath?: string): Promise<void>;
3
+ //#endregion
4
+ export { makeComponent as default };
@@ -0,0 +1,31 @@
1
+ import { onCancel, scaffold } from "./scaffold.mjs";
2
+ import color from "picocolors";
3
+ import * as p from "@clack/prompts";
4
+ //#region src/commands/make/component.ts
5
+ async function makeComponent(filePath) {
6
+ if (filePath) {
7
+ await scaffold(filePath, "component.vue");
8
+ return;
9
+ }
10
+ p.intro(`${color.bgCyan(color.black(" maizzle make:component "))}`);
11
+ const result = await p.group({
12
+ filename: () => p.text({
13
+ message: "File name",
14
+ placeholder: "Button.vue",
15
+ validate: (value) => {
16
+ if (!value) return "Please enter a file name.";
17
+ }
18
+ }),
19
+ path: () => p.text({
20
+ message: "Directory to place it in",
21
+ placeholder: "./components",
22
+ validate: (value) => {
23
+ if (!value) return "Please enter a path.";
24
+ if (value[0] !== ".") return "Please enter a relative path.";
25
+ }
26
+ })
27
+ }, { onCancel });
28
+ await scaffold(`${result.path}/${result.filename}`, "component.vue");
29
+ }
30
+ //#endregion
31
+ export { makeComponent as default };
@@ -0,0 +1,4 @@
1
+ //#region src/commands/make/config.d.ts
2
+ declare function makeConfig(name?: string): Promise<void>;
3
+ //#endregion
4
+ export { makeConfig as default };
@@ -0,0 +1,21 @@
1
+ import { onCancel, scaffold } from "./scaffold.mjs";
2
+ import color from "picocolors";
3
+ import * as p from "@clack/prompts";
4
+ //#region src/commands/make/config.ts
5
+ async function makeConfig(name) {
6
+ if (name) {
7
+ await scaffold(`${name}.config.ts`, "config.ts");
8
+ return;
9
+ }
10
+ p.intro(`${color.bgCyan(color.black(" maizzle make:config "))}`);
11
+ await scaffold(`${(await p.group({ name: () => p.text({
12
+ message: "Config name",
13
+ placeholder: "production",
14
+ validate: (value) => {
15
+ if (!value) return "Please enter a config name.";
16
+ if (value.includes(" ")) return "Use - instead of spaces.";
17
+ }
18
+ }) }, { onCancel })).name}.config.ts`, "config.ts");
19
+ }
20
+ //#endregion
21
+ export { makeConfig as default };
@@ -0,0 +1,4 @@
1
+ //#region src/commands/make/layout.d.ts
2
+ declare function makeLayout(filePath?: string): Promise<void>;
3
+ //#endregion
4
+ export { makeLayout as default };