@pasosdejesus/m 0.15.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 (324) hide show
  1. package/dist/blockchain/deployments.d.ts +40 -0
  2. package/dist/blockchain/deployments.d.ts.map +1 -0
  3. package/dist/blockchain/deployments.js +64 -0
  4. package/dist/debug/DebugConsole.d.ts +22 -0
  5. package/dist/debug/DebugConsole.d.ts.map +1 -0
  6. package/dist/debug/DebugConsole.js +79 -0
  7. package/dist/debug/Logger.d.ts +38 -0
  8. package/dist/debug/Logger.d.ts.map +1 -0
  9. package/dist/debug/Logger.js +94 -0
  10. package/dist/debug/index.d.ts +6 -0
  11. package/dist/debug/index.d.ts.map +1 -0
  12. package/dist/debug/index.js +4 -0
  13. package/dist/debug/useLogger.d.ts +14 -0
  14. package/dist/debug/useLogger.d.ts.map +1 -0
  15. package/dist/debug/useLogger.js +23 -0
  16. package/dist/debug/utils.d.ts +10 -0
  17. package/dist/debug/utils.d.ts.map +1 -0
  18. package/dist/debug/utils.js +53 -0
  19. package/dist/e2e/assertions.d.ts +5 -0
  20. package/dist/e2e/assertions.d.ts.map +1 -0
  21. package/dist/e2e/assertions.js +18 -0
  22. package/dist/e2e/browser.d.ts +37 -0
  23. package/dist/e2e/browser.d.ts.map +1 -0
  24. package/dist/e2e/browser.js +97 -0
  25. package/dist/e2e/env.d.ts +18 -0
  26. package/dist/e2e/env.d.ts.map +1 -0
  27. package/dist/e2e/env.js +57 -0
  28. package/dist/e2e/index.d.ts +11 -0
  29. package/dist/e2e/index.d.ts.map +1 -0
  30. package/dist/e2e/index.js +8 -0
  31. package/dist/e2e/navigation.d.ts +4 -0
  32. package/dist/e2e/navigation.d.ts.map +1 -0
  33. package/dist/e2e/navigation.js +32 -0
  34. package/dist/e2e/siwe-mock.d.ts +11 -0
  35. package/dist/e2e/siwe-mock.d.ts.map +1 -0
  36. package/dist/e2e/siwe-mock.js +112 -0
  37. package/dist/e2e/siwe.d.ts +15 -0
  38. package/dist/e2e/siwe.d.ts.map +1 -0
  39. package/dist/e2e/siwe.js +85 -0
  40. package/dist/e2e/wallet-mock.d.ts +13 -0
  41. package/dist/e2e/wallet-mock.d.ts.map +1 -0
  42. package/dist/e2e/wallet-mock.js +91 -0
  43. package/dist/i18n/common-cli.d.ts +11 -0
  44. package/dist/i18n/common-cli.d.ts.map +1 -0
  45. package/dist/i18n/common-cli.js +22 -0
  46. package/dist/i18n/createTranslator.d.ts +28 -0
  47. package/dist/i18n/createTranslator.d.ts.map +1 -0
  48. package/dist/i18n/createTranslator.js +48 -0
  49. package/dist/i18n/index.d.ts +4 -0
  50. package/dist/i18n/index.d.ts.map +1 -0
  51. package/dist/i18n/index.js +2 -0
  52. package/dist/i18n/locales/cli.d.ts +3 -0
  53. package/dist/i18n/locales/cli.d.ts.map +1 -0
  54. package/dist/i18n/locales/cli.js +180 -0
  55. package/dist/i18n/types.d.ts +3 -0
  56. package/dist/i18n/types.d.ts.map +1 -0
  57. package/dist/i18n/types.js +1 -0
  58. package/dist/index.d.ts +2 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +15 -0
  61. package/dist/index.test.d.ts +2 -0
  62. package/dist/index.test.d.ts.map +1 -0
  63. package/dist/index.test.js +10 -0
  64. package/dist/m.d.ts +2 -0
  65. package/dist/m.d.ts.map +1 -0
  66. package/dist/m.js +334 -0
  67. package/dist/plugin.d.ts +10 -0
  68. package/dist/plugin.d.ts.map +1 -0
  69. package/dist/plugin.js +7 -0
  70. package/dist/shadcn_components/cn.d.ts +13 -0
  71. package/dist/shadcn_components/cn.d.ts.map +1 -0
  72. package/dist/shadcn_components/cn.js +15 -0
  73. package/dist/shadcn_components/ui/accordion.d.ts +8 -0
  74. package/dist/shadcn_components/ui/accordion.d.ts.map +1 -0
  75. package/dist/shadcn_components/ui/accordion.js +14 -0
  76. package/dist/shadcn_components/ui/alert-dialog.d.ts +21 -0
  77. package/dist/shadcn_components/ui/alert-dialog.d.ts.map +1 -0
  78. package/dist/shadcn_components/ui/alert-dialog.js +27 -0
  79. package/dist/shadcn_components/ui/alert.d.ts +9 -0
  80. package/dist/shadcn_components/ui/alert.d.ts.map +1 -0
  81. package/dist/shadcn_components/ui/alert.js +22 -0
  82. package/dist/shadcn_components/ui/avatar.d.ts +7 -0
  83. package/dist/shadcn_components/ui/avatar.d.ts.map +1 -0
  84. package/dist/shadcn_components/ui/avatar.js +12 -0
  85. package/dist/shadcn_components/ui/badge.d.ts +10 -0
  86. package/dist/shadcn_components/ui/badge.d.ts.map +1 -0
  87. package/dist/shadcn_components/ui/badge.js +22 -0
  88. package/dist/shadcn_components/ui/button.d.ts +11 -0
  89. package/dist/shadcn_components/ui/button.d.ts.map +1 -0
  90. package/dist/shadcn_components/ui/button.js +31 -0
  91. package/dist/shadcn_components/ui/card.d.ts +10 -0
  92. package/dist/shadcn_components/ui/card.d.ts.map +1 -0
  93. package/dist/shadcn_components/ui/card.js +24 -0
  94. package/dist/shadcn_components/ui/checkbox.d.ts +5 -0
  95. package/dist/shadcn_components/ui/checkbox.d.ts.map +1 -0
  96. package/dist/shadcn_components/ui/checkbox.js +9 -0
  97. package/dist/shadcn_components/ui/dialog.d.ts +20 -0
  98. package/dist/shadcn_components/ui/dialog.d.ts.map +1 -0
  99. package/dist/shadcn_components/ui/dialog.js +23 -0
  100. package/dist/shadcn_components/ui/dropdown-menu.d.ts +28 -0
  101. package/dist/shadcn_components/ui/dropdown-menu.d.ts.map +1 -0
  102. package/dist/shadcn_components/ui/dropdown-menu.js +36 -0
  103. package/dist/shadcn_components/ui/form.d.ts +24 -0
  104. package/dist/shadcn_components/ui/form.d.ts.map +1 -0
  105. package/dist/shadcn_components/ui/form.js +63 -0
  106. package/dist/shadcn_components/ui/input.d.ts +4 -0
  107. package/dist/shadcn_components/ui/input.d.ts.map +1 -0
  108. package/dist/shadcn_components/ui/input.js +6 -0
  109. package/dist/shadcn_components/ui/label.d.ts +6 -0
  110. package/dist/shadcn_components/ui/label.d.ts.map +1 -0
  111. package/dist/shadcn_components/ui/label.js +10 -0
  112. package/dist/shadcn_components/ui/menubar.d.ts +29 -0
  113. package/dist/shadcn_components/ui/menubar.d.ts.map +1 -0
  114. package/dist/shadcn_components/ui/menubar.js +46 -0
  115. package/dist/shadcn_components/ui/popover.d.ts +7 -0
  116. package/dist/shadcn_components/ui/popover.d.ts.map +1 -0
  117. package/dist/shadcn_components/ui/popover.js +10 -0
  118. package/dist/shadcn_components/ui/progress.d.ts +5 -0
  119. package/dist/shadcn_components/ui/progress.d.ts.map +1 -0
  120. package/dist/shadcn_components/ui/progress.js +8 -0
  121. package/dist/shadcn_components/ui/radio-group.d.ts +6 -0
  122. package/dist/shadcn_components/ui/radio-group.d.ts.map +1 -0
  123. package/dist/shadcn_components/ui/radio-group.js +15 -0
  124. package/dist/shadcn_components/ui/scroll-area.d.ts +6 -0
  125. package/dist/shadcn_components/ui/scroll-area.d.ts.map +1 -0
  126. package/dist/shadcn_components/ui/scroll-area.js +12 -0
  127. package/dist/shadcn_components/ui/select.d.ts +14 -0
  128. package/dist/shadcn_components/ui/select.d.ts.map +1 -0
  129. package/dist/shadcn_components/ui/select.js +27 -0
  130. package/dist/shadcn_components/ui/separator.d.ts +5 -0
  131. package/dist/shadcn_components/ui/separator.d.ts.map +1 -0
  132. package/dist/shadcn_components/ui/separator.js +8 -0
  133. package/dist/shadcn_components/ui/sheet.d.ts +26 -0
  134. package/dist/shadcn_components/ui/sheet.d.ts.map +1 -0
  135. package/dist/shadcn_components/ui/sheet.js +37 -0
  136. package/dist/shadcn_components/ui/skeleton.d.ts +3 -0
  137. package/dist/shadcn_components/ui/skeleton.d.ts.map +1 -0
  138. package/dist/shadcn_components/ui/skeleton.js +6 -0
  139. package/dist/shadcn_components/ui/slider.d.ts +5 -0
  140. package/dist/shadcn_components/ui/slider.d.ts.map +1 -0
  141. package/dist/shadcn_components/ui/slider.js +8 -0
  142. package/dist/shadcn_components/ui/switch.d.ts +5 -0
  143. package/dist/shadcn_components/ui/switch.d.ts.map +1 -0
  144. package/dist/shadcn_components/ui/switch.js +8 -0
  145. package/dist/shadcn_components/ui/table.d.ts +11 -0
  146. package/dist/shadcn_components/ui/table.d.ts.map +1 -0
  147. package/dist/shadcn_components/ui/table.js +20 -0
  148. package/dist/shadcn_components/ui/tabs.d.ts +8 -0
  149. package/dist/shadcn_components/ui/tabs.d.ts.map +1 -0
  150. package/dist/shadcn_components/ui/tabs.js +13 -0
  151. package/dist/shadcn_components/ui/textarea.d.ts +4 -0
  152. package/dist/shadcn_components/ui/textarea.d.ts.map +1 -0
  153. package/dist/shadcn_components/ui/textarea.js +8 -0
  154. package/dist/shadcn_components/ui/toast.d.ts +16 -0
  155. package/dist/shadcn_components/ui/toast.d.ts.map +1 -0
  156. package/dist/shadcn_components/ui/toast.js +34 -0
  157. package/dist/shadcn_components/ui/toaster.d.ts +2 -0
  158. package/dist/shadcn_components/ui/toaster.d.ts.map +1 -0
  159. package/dist/shadcn_components/ui/toaster.js +10 -0
  160. package/dist/shadcn_components/ui/tooltip.d.ts +8 -0
  161. package/dist/shadcn_components/ui/tooltip.d.ts.map +1 -0
  162. package/dist/shadcn_components/ui/tooltip.js +11 -0
  163. package/dist/shadcn_components/ui/use-toast.d.ts +45 -0
  164. package/dist/shadcn_components/ui/use-toast.d.ts.map +1 -0
  165. package/dist/shadcn_components/ui/use-toast.js +126 -0
  166. package/dist/tasks/context.d.ts +13 -0
  167. package/dist/tasks/context.d.ts.map +1 -0
  168. package/dist/tasks/context.js +310 -0
  169. package/dist/tasks/create.d.ts +2 -0
  170. package/dist/tasks/create.d.ts.map +1 -0
  171. package/dist/tasks/create.js +91 -0
  172. package/dist/tasks/db.d.ts +19 -0
  173. package/dist/tasks/db.d.ts.map +1 -0
  174. package/dist/tasks/db.js +791 -0
  175. package/dist/tasks/e2e.d.ts +2 -0
  176. package/dist/tasks/e2e.d.ts.map +1 -0
  177. package/dist/tasks/e2e.js +124 -0
  178. package/dist/tasks/edit.d.ts +7 -0
  179. package/dist/tasks/edit.d.ts.map +1 -0
  180. package/dist/tasks/edit.js +471 -0
  181. package/dist/tasks/engine.d.ts +2 -0
  182. package/dist/tasks/engine.d.ts.map +1 -0
  183. package/dist/tasks/engine.js +149 -0
  184. package/dist/tasks/env-diff.d.ts +2 -0
  185. package/dist/tasks/env-diff.d.ts.map +1 -0
  186. package/dist/tasks/env-diff.js +140 -0
  187. package/dist/tasks/fuzzy.d.ts +9 -0
  188. package/dist/tasks/fuzzy.d.ts.map +1 -0
  189. package/dist/tasks/fuzzy.js +153 -0
  190. package/dist/tasks/glob.d.ts +5 -0
  191. package/dist/tasks/glob.d.ts.map +1 -0
  192. package/dist/tasks/glob.js +57 -0
  193. package/dist/tasks/grep.d.ts +9 -0
  194. package/dist/tasks/grep.d.ts.map +1 -0
  195. package/dist/tasks/grep.js +93 -0
  196. package/dist/tasks/readfile.d.ts +2 -0
  197. package/dist/tasks/readfile.d.ts.map +1 -0
  198. package/dist/tasks/readfile.js +177 -0
  199. package/dist/tasks/update.d.ts +5 -0
  200. package/dist/tasks/update.d.ts.map +1 -0
  201. package/dist/tasks/update.js +200 -0
  202. package/dist/tasks/util.d.ts +12 -0
  203. package/dist/tasks/util.d.ts.map +1 -0
  204. package/dist/tasks/util.js +42 -0
  205. package/dist/tasks/wallet.d.ts +2 -0
  206. package/dist/tasks/wallet.d.ts.map +1 -0
  207. package/dist/tasks/wallet.js +697 -0
  208. package/dist/tasks/writefile.d.ts +2 -0
  209. package/dist/tasks/writefile.d.ts.map +1 -0
  210. package/dist/tasks/writefile.js +66 -0
  211. package/dist/templates/AGENTS.md.hbs +81 -0
  212. package/dist/templates/ARCHITECTURE.md.hbs +146 -0
  213. package/dist/templates/CONTRIBUTING.md.hbs +83 -0
  214. package/dist/templates/LICENCIA.md +21 -0
  215. package/dist/templates/LICENSE.md +15 -0
  216. package/dist/templates/Makefile +16 -0
  217. package/dist/templates/README.md.hbs +111 -0
  218. package/dist/templates/apps/.env.example.hbs +75 -0
  219. package/dist/templates/apps/hardhat/.prettierrc +16 -0
  220. package/dist/templates/apps/hardhat/MOCK_USDT_README.md +20 -0
  221. package/dist/templates/apps/hardhat/Makefile +13 -0
  222. package/dist/templates/apps/hardhat/README.md +129 -0
  223. package/dist/templates/apps/hardhat/bin/MusdtVerification +4 -0
  224. package/dist/templates/apps/hardhat/bin/approveDepositOwner +7 -0
  225. package/dist/templates/apps/hardhat/bin/contractVerification +9 -0
  226. package/dist/templates/apps/hardhat/bin/deployMockUSDT +7 -0
  227. package/dist/templates/apps/hardhat/bin/prepadJ.sh +14 -0
  228. package/dist/templates/apps/hardhat/bin/verifyMockUSDT +7 -0
  229. package/dist/templates/apps/hardhat/contracts/MockUSDT.sol +47 -0
  230. package/dist/templates/apps/hardhat/hardhat.config.ts +102 -0
  231. package/dist/templates/apps/hardhat/package.json +55 -0
  232. package/dist/templates/apps/hardhat/scripts/approveDepositOwner.ts +22 -0
  233. package/dist/templates/apps/hardhat/scripts/deployMockUSDT.ts +49 -0
  234. package/dist/templates/apps/hardhat/scripts/verifyDeployment.ts +93 -0
  235. package/dist/templates/apps/hardhat/scripts/verifyMockUSDT.ts +52 -0
  236. package/dist/templates/apps/hardhat/sync-abis.mjs +58 -0
  237. package/dist/templates/apps/hardhat/test/MockUSDT.test.ts +40 -0
  238. package/dist/templates/apps/hardhat/tsconfig.json +27 -0
  239. package/dist/templates/apps/nextjs/.config/kysely.config.ts +36 -0
  240. package/dist/templates/apps/nextjs/Makefile +24 -0
  241. package/dist/templates/apps/nextjs/README.md.hbs +76 -0
  242. package/dist/templates/apps/nextjs/abis/IERC20.json +74 -0
  243. package/dist/templates/apps/nextjs/abis/MockUSDT.json +242 -0
  244. package/dist/templates/apps/nextjs/abis/ReentrancyGuard.json +1 -0
  245. package/dist/templates/apps/nextjs/app/globals.css +3 -0
  246. package/dist/templates/apps/nextjs/app/layout.tsx.hbs +26 -0
  247. package/dist/templates/apps/nextjs/app/page.tsx.hbs +225 -0
  248. package/dist/templates/apps/nextjs/app/testui/page.tsx +371 -0
  249. package/dist/templates/apps/nextjs/bin/m +8 -0
  250. package/dist/templates/apps/nextjs/components.json +21 -0
  251. package/dist/templates/apps/nextjs/next-env.d.ts +5 -0
  252. package/dist/templates/apps/nextjs/next.config.ts +10 -0
  253. package/dist/templates/apps/nextjs/package.json.hbs +48 -0
  254. package/dist/templates/apps/nextjs/pnpm-workspace.yaml +13 -0
  255. package/dist/templates/apps/nextjs/postcss.config.mjs +6 -0
  256. package/dist/templates/apps/nextjs/tailwind.config.js +11 -0
  257. package/dist/templates/apps/nextjs/tests/helpers.ts +31 -0
  258. package/dist/templates/apps/nextjs/tests/index.test.ts +7 -0
  259. package/dist/templates/apps/nextjs/tests/setup-env.ts.hbs +8 -0
  260. package/dist/templates/apps/nextjs/tests/test-utils.example.test.ts +168 -0
  261. package/dist/templates/apps/nextjs/tsconfig.json +44 -0
  262. package/dist/templates/apps/nextjs/tsconfig.test.json +38 -0
  263. package/dist/templates/apps/nextjs/vitest.config.ts +13 -0
  264. package/dist/test-utils/fs-mocks.d.ts +32 -0
  265. package/dist/test-utils/fs-mocks.d.ts.map +1 -0
  266. package/dist/test-utils/fs-mocks.js +63 -0
  267. package/dist/test-utils/i18n-mock.d.ts +21 -0
  268. package/dist/test-utils/i18n-mock.d.ts.map +1 -0
  269. package/dist/test-utils/i18n-mock.js +29 -0
  270. package/dist/test-utils/index.d.ts +12 -0
  271. package/dist/test-utils/index.d.ts.map +1 -0
  272. package/dist/test-utils/index.js +11 -0
  273. package/dist/test-utils/kysely-mocks.d.ts +298 -0
  274. package/dist/test-utils/kysely-mocks.d.ts.map +1 -0
  275. package/dist/test-utils/kysely-mocks.js +173 -0
  276. package/dist/test-utils/radix-mocks.d.ts +134 -0
  277. package/dist/test-utils/radix-mocks.d.ts.map +1 -0
  278. package/dist/test-utils/radix-mocks.js +175 -0
  279. package/dist/test-utils/rainbowkit-mocks.d.ts +80 -0
  280. package/dist/test-utils/rainbowkit-mocks.d.ts.map +1 -0
  281. package/dist/test-utils/rainbowkit-mocks.js +247 -0
  282. package/dist/test-utils/viem-mocks.d.ts +86 -0
  283. package/dist/test-utils/viem-mocks.d.ts.map +1 -0
  284. package/dist/test-utils/viem-mocks.js +54 -0
  285. package/dist/util/cli-parser.d.ts +20 -0
  286. package/dist/util/cli-parser.d.ts.map +1 -0
  287. package/dist/util/cli-parser.js +38 -0
  288. package/dist/util/colors.d.ts +5 -0
  289. package/dist/util/colors.d.ts.map +1 -0
  290. package/dist/util/colors.js +5 -0
  291. package/dist/util/locale.d.ts +3 -0
  292. package/dist/util/locale.d.ts.map +1 -0
  293. package/dist/util/locale.js +10 -0
  294. package/dist/wba/client.d.ts +19 -0
  295. package/dist/wba/client.d.ts.map +1 -0
  296. package/dist/wba/client.js +31 -0
  297. package/dist/wba/index.d.ts +4 -0
  298. package/dist/wba/index.d.ts.map +1 -0
  299. package/dist/wba/index.js +2 -0
  300. package/dist/wba/routes/event.d.ts +32 -0
  301. package/dist/wba/routes/event.d.ts.map +1 -0
  302. package/dist/wba/routes/event.js +42 -0
  303. package/dist/wba/routes/index.d.ts +3 -0
  304. package/dist/wba/routes/index.d.ts.map +1 -0
  305. package/dist/wba/routes/index.js +2 -0
  306. package/dist/wba/routes/summary.d.ts +44 -0
  307. package/dist/wba/routes/summary.d.ts.map +1 -0
  308. package/dist/wba/routes/summary.js +146 -0
  309. package/dist/wba/server.d.ts +18 -0
  310. package/dist/wba/server.d.ts.map +1 -0
  311. package/dist/wba/server.js +29 -0
  312. package/dist/wba/types.d.ts +68 -0
  313. package/dist/wba/types.d.ts.map +1 -0
  314. package/dist/wba/types.js +6 -0
  315. package/package.json +223 -0
  316. package/src/blockchain/README.md +80 -0
  317. package/src/debug/README.md +94 -0
  318. package/src/e2e/README.md +105 -0
  319. package/src/i18n/README.md +143 -0
  320. package/src/shadcn_components/README.md +125 -0
  321. package/src/tasks/README.md +69 -0
  322. package/src/test-utils/README.md +638 -0
  323. package/src/util/README.md +18 -0
  324. package/src/wba/README.md +175 -0
@@ -0,0 +1,225 @@
1
+ // @ts-nocheck
2
+ export default function Home() {
3
+ return (
4
+ <div className="max-w-6xl mx-auto p-8 space-y-12">
5
+ {/* Header */}
6
+ <header className="text-center space-y-4">
7
+ <h1 className="text-4xl font-bold tracking-tight">
8
+ Welcome to <span className="text-blue-600">{{name}}</span>
9
+ </h1>
10
+ <p className="text-xl text-gray-600 max-w-3xl mx-auto">
11
+ {{description}}
12
+ </p>
13
+ </header>
14
+
15
+ {/* Biblical Verse Highlight */}
16
+ <section className="bg-gradient-to-r from-blue-50 to-indigo-50 rounded-2xl p-8 border border-blue-100">
17
+ <div className="max-w-3xl mx-auto text-center">
18
+ <div className="inline-block bg-white/80 px-4 py-2 rounded-full mb-4 text-sm font-semibold text-blue-700">
19
+ 📖 Daily Verse
20
+ </div>
21
+ <blockquote className="text-2xl font-serif italic text-gray-800 mb-4">
22
+ “Y todo lo que hagĂĄis, hacedlo de corazĂłn, como para el Señor y no para los hombres.”
23
+ </blockquote>
24
+ <p className="text-gray-600 font-medium">
25
+ — Colosenses 3:23 (RVR1960)
26
+ </p>
27
+ <p className="mt-4 text-gray-500 max-w-2xl mx-auto">
28
+ This verse reminds us that our work—including software development—is an offering to God,
29
+ done with excellence and integrity.
30
+ </p>
31
+ </div>
32
+ </section>
33
+
34
+ {/* UI Components Showcase */}
35
+ <section className="space-y-8">
36
+ <h2 className="text-3xl font-bold border-b pb-2">UI Components Showcase</h2>
37
+ <p className="text-gray-600">
38
+ Below are examples of UI elements built with Tailwind CSS, demonstrating the design system available in this framework.
39
+ </p>
40
+
41
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
42
+ {/* Buttons */}
43
+ <div className="space-y-4 p-6 border rounded-xl">
44
+ <h3 className="text-xl font-semibold">Buttons</h3>
45
+ <div className="flex flex-wrap gap-3">
46
+ <button className="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition">
47
+ Primary
48
+ </button>
49
+ <button className="px-4 py-2 bg-gray-200 text-gray-800 rounded-lg hover:bg-gray-300 transition">
50
+ Secondary
51
+ </button>
52
+ <button className="px-4 py-2 border border-red-300 text-red-600 rounded-lg hover:bg-red-50 transition">
53
+ Destructive
54
+ </button>
55
+ <button className="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50 transition">
56
+ Outline
57
+ </button>
58
+ </div>
59
+ </div>
60
+
61
+ {/* Card */}
62
+ <div className="space-y-4 p-6 border rounded-xl">
63
+ <h3 className="text-xl font-semibold">Card</h3>
64
+ <div className="border rounded-lg overflow-hidden shadow-sm">
65
+ <div className="bg-gradient-to-r from-blue-500 to-purple-600 p-4 text-white">
66
+ <h4 className="font-bold text-lg">Project Dashboard</h4>
67
+ <p className="text-blue-100">Overview of your application</p>
68
+ </div>
69
+ <div className="p-4">
70
+ <p className="text-gray-700">
71
+ This card demonstrates a common layout for dashboard items. Cards are versatile containers for content.
72
+ </p>
73
+ <div className="mt-4 flex justify-between items-center">
74
+ <span className="text-sm text-gray-500">Updated just now</span>
75
+ <button className="text-sm px-3 py-1 bg-blue-100 text-blue-700 rounded hover:bg-blue-200">
76
+ View
77
+ </button>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </div>
82
+
83
+ {/* Alerts */}
84
+ <div className="space-y-4 p-6 border rounded-xl">
85
+ <h3 className="text-xl font-semibold">Alerts</h3>
86
+ <div className="space-y-3">
87
+ <div className="p-4 bg-green-50 border border-green-200 rounded-lg">
88
+ <div className="flex items-center">
89
+ <div className="text-green-600 font-bold mr-2">✓</div>
90
+ <p className="text-green-800">Success! Your changes have been saved.</p>
91
+ </div>
92
+ </div>
93
+ <div className="p-4 bg-yellow-50 border border-yellow-200 rounded-lg">
94
+ <div className="flex items-center">
95
+ <div className="text-yellow-600 font-bold mr-2">⚠</div>
96
+ <p className="text-yellow-800">Warning: This action cannot be undone.</p>
97
+ </div>
98
+ </div>
99
+ <div className="p-4 bg-red-50 border border-red-200 rounded-lg">
100
+ <div className="flex items-center">
101
+ <div className="text-red-600 font-bold mr-2">✗</div>
102
+ <p className="text-red-800">Error: Unable to process your request.</p>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+
108
+ {/* Badges */}
109
+ <div className="space-y-4 p-6 border rounded-xl">
110
+ <h3 className="text-xl font-semibold">Badges</h3>
111
+ <div className="flex flex-wrap gap-2">
112
+ <span className="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm font-medium">
113
+ React
114
+ </span>
115
+ <span className="px-3 py-1 bg-green-100 text-green-800 rounded-full text-sm font-medium">
116
+ Next.js
117
+ </span>
118
+ <span className="px-3 py-1 bg-purple-100 text-purple-800 rounded-full text-sm font-medium">
119
+ TypeScript
120
+ </span>
121
+ <span className="px-3 py-1 bg-yellow-100 text-yellow-800 rounded-full text-sm font-medium">
122
+ Tailwind
123
+ </span>
124
+ <span className="px-3 py-1 bg-red-100 text-red-800 rounded-full text-sm font-medium">
125
+ PostgreSQL
126
+ </span>
127
+ </div>
128
+ </div>
129
+
130
+ {/* Progress */}
131
+ <div className="space-y-4 p-6 border rounded-xl">
132
+ <h3 className="text-xl font-semibold">Progress</h3>
133
+ <div className="space-y-4">
134
+ <div>
135
+ <div className="flex justify-between mb-1">
136
+ <span className="text-gray-700">Project Completion</span>
137
+ <span className="font-medium">75%</span>
138
+ </div>
139
+ <div className="h-2 bg-gray-200 rounded-full overflow-hidden">
140
+ <div className="h-full bg-green-500 rounded-full" style={ { width: "75%" } }></div>
141
+ </div>
142
+ </div>
143
+ <div>
144
+ <div className="flex justify-between mb-1">
145
+ <span className="text-gray-700">Testing Coverage</span>
146
+ <span className="font-medium">90%</span>
147
+ </div>
148
+ <div className="h-2 bg-gray-200 rounded-full overflow-hidden">
149
+ <div className="h-full bg-blue-500 rounded-full" style={ { width: "90%" } }></div>
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+
155
+ {/* Input & Form */}
156
+ <div className="space-y-4 p-6 border rounded-xl">
157
+ <h3 className="text-xl font-semibold">Form Elements</h3>
158
+ <div className="space-y-4">
159
+ <div>
160
+ <label className="block text-sm font-medium text-gray-700 mb-1">Email Address</label>
161
+ <input
162
+ type="email"
163
+ className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition"
164
+ placeholder="you@example.com"
165
+ />
166
+ </div>
167
+ <div>
168
+ <label className="block text-sm font-medium text-gray-700 mb-1">Message</label>
169
+ <textarea
170
+ className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition"
171
+ rows={3}
172
+ placeholder="Your message here..."
173
+ />
174
+ </div>
175
+ <div className="flex items-center">
176
+ <input
177
+ type="checkbox"
178
+ id="subscribe"
179
+ className="h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500"
180
+ />
181
+ <label htmlFor="subscribe" className="ml-2 text-gray-700">
182
+ Subscribe to updates
183
+ </label>
184
+ </div>
185
+ <button className="w-full px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition">
186
+ Submit Form
187
+ </button>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ </section>
192
+
193
+ {/* Project Information */}
194
+ <section className="mt-12 p-8 bg-gray-50 rounded-2xl">
195
+ <h2 className="text-3xl font-bold mb-6">Project Information</h2>
196
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-6">
197
+ <div className="text-center p-4 bg-white rounded-xl border">
198
+ <div className="text-2xl font-bold text-blue-600">Next.js</div>
199
+ <div className="text-gray-600">15.5.12</div>
200
+ </div>
201
+ <div className="text-center p-4 bg-white rounded-xl border">
202
+ <div className="text-2xl font-bold text-blue-600">React</div>
203
+ <div className="text-gray-600">18.3.1</div>
204
+ </div>
205
+ <div className="text-center p-4 bg-white rounded-xl border">
206
+ <div className="text-2xl font-bold text-blue-600">TypeScript</div>
207
+ <div className="text-gray-600">5.9.3</div>
208
+ </div>
209
+ <div className="text-center p-4 bg-white rounded-xl border">
210
+ <div className="text-2xl font-bold text-blue-600">Tailwind</div>
211
+ <div className="text-gray-600">3.4.19</div>
212
+ </div>
213
+ </div>
214
+ <div className="mt-8 text-center">
215
+ <p className="text-gray-600">
216
+ This project is maintained with diligence and love, following the principle of Colossians 3:23.
217
+ </p>
218
+ <p className="mt-2 text-sm text-gray-500">
219
+ Built with the @pasosdejesus/m framework ‱ {new Date().getFullYear()}
220
+ </p>
221
+ </div>
222
+ </section>
223
+ </div>
224
+ );
225
+ }
@@ -0,0 +1,371 @@
1
+ 'use client'
2
+
3
+ import * as React from 'react'
4
+ import {
5
+ Accordion,
6
+ AccordionItem,
7
+ AccordionTrigger,
8
+ AccordionContent,
9
+ } from '@pasosdejesus/m/shadcn-components/ui/accordion'
10
+ import { Alert, AlertTitle, AlertDescription } from '@pasosdejesus/m/shadcn-components/ui/alert'
11
+ import {
12
+ AlertDialog,
13
+ AlertDialogTrigger,
14
+ AlertDialogContent,
15
+ AlertDialogHeader,
16
+ AlertDialogTitle,
17
+ AlertDialogDescription,
18
+ AlertDialogAction,
19
+ AlertDialogCancel,
20
+ } from '@pasosdejesus/m/shadcn-components/ui/alert-dialog'
21
+ import { Avatar, AvatarImage, AvatarFallback } from '@pasosdejesus/m/shadcn-components/ui/avatar'
22
+ import { Badge } from '@pasosdejesus/m/shadcn-components/ui/badge'
23
+ import { Button } from '@pasosdejesus/m/shadcn-components/ui/button'
24
+ import { Card, CardHeader, CardTitle, CardContent } from '@pasosdejesus/m/shadcn-components/ui/card'
25
+ import { Checkbox } from '@pasosdejesus/m/shadcn-components/ui/checkbox'
26
+ import {
27
+ Dialog,
28
+ DialogTrigger,
29
+ DialogContent,
30
+ DialogHeader,
31
+ DialogTitle,
32
+ DialogDescription,
33
+ } from '@pasosdejesus/m/shadcn-components/ui/dialog'
34
+ import {
35
+ DropdownMenu,
36
+ DropdownMenuTrigger,
37
+ DropdownMenuContent,
38
+ DropdownMenuItem,
39
+ } from '@pasosdejesus/m/shadcn-components/ui/dropdown-menu'
40
+ import { Input } from '@pasosdejesus/m/shadcn-components/ui/input'
41
+ import { Label } from '@pasosdejesus/m/shadcn-components/ui/label'
42
+ import {
43
+ Menubar,
44
+ MenubarMenu,
45
+ MenubarTrigger,
46
+ MenubarContent,
47
+ MenubarItem,
48
+ } from '@pasosdejesus/m/shadcn-components/ui/menubar'
49
+ import {
50
+ Popover,
51
+ PopoverTrigger,
52
+ PopoverContent,
53
+ } from '@pasosdejesus/m/shadcn-components/ui/popover'
54
+ import { Progress } from '@pasosdejesus/m/shadcn-components/ui/progress'
55
+ import {
56
+ RadioGroup,
57
+ RadioGroupItem,
58
+ } from '@pasosdejesus/m/shadcn-components/ui/radio-group'
59
+ import { ScrollArea } from '@pasosdejesus/m/shadcn-components/ui/scroll-area'
60
+ import {
61
+ Select,
62
+ SelectTrigger,
63
+ SelectValue,
64
+ SelectContent,
65
+ SelectItem,
66
+ } from '@pasosdejesus/m/shadcn-components/ui/select'
67
+ import { Separator } from '@pasosdejesus/m/shadcn-components/ui/separator'
68
+ import {
69
+ Sheet,
70
+ SheetTrigger,
71
+ SheetContent,
72
+ SheetHeader,
73
+ SheetTitle,
74
+ SheetDescription,
75
+ } from '@pasosdejesus/m/shadcn-components/ui/sheet'
76
+ import { Skeleton } from '@pasosdejesus/m/shadcn-components/ui/skeleton'
77
+ import { Slider } from '@pasosdejesus/m/shadcn-components/ui/slider'
78
+ import { Switch } from '@pasosdejesus/m/shadcn-components/ui/switch'
79
+ import {
80
+ Table,
81
+ TableHeader,
82
+ TableRow,
83
+ TableHead,
84
+ TableBody,
85
+ TableCell,
86
+ } from '@pasosdejesus/m/shadcn-components/ui/table'
87
+ import {
88
+ Tabs,
89
+ TabsList,
90
+ TabsTrigger,
91
+ TabsContent,
92
+ } from '@pasosdejesus/m/shadcn-components/ui/tabs'
93
+ import { Textarea } from '@pasosdejesus/m/shadcn-components/ui/textarea'
94
+ import { Toast, ToastProvider, ToastViewport } from '@pasosdejesus/m/shadcn-components/ui/toast'
95
+ import { Toaster } from '@pasosdejesus/m/shadcn-components/ui/toaster'
96
+ import {
97
+ Tooltip,
98
+ TooltipTrigger,
99
+ TooltipContent,
100
+ TooltipProvider,
101
+ } from '@pasosdejesus/m/shadcn-components/ui/tooltip'
102
+
103
+ function TestSection({ title, children }: { title: string; children: React.ReactNode }) {
104
+ return (
105
+ <div className="mb-8 p-4 border rounded-lg">
106
+ <h2 className="text-lg font-bold mb-4">{title}</h2>
107
+ <div className="flex flex-wrap gap-4 items-start">{children}</div>
108
+ </div>
109
+ )
110
+ }
111
+
112
+ export default function TestUI() {
113
+ const [progress, setProgress] = React.useState(45)
114
+
115
+ return (
116
+ <div className="p-8 max-w-4xl mx-auto">
117
+ <h1 className="text-2xl font-bold mb-8">shadcn Components Test</h1>
118
+ <p className="text-muted-foreground mb-8">
119
+ All components imported from @pasosdejesus/m/shadcn-components/ui/*
120
+ </p>
121
+
122
+ <TestSection title="Accordion">
123
+ <Accordion type="single" collapsible className="w-full">
124
+ <AccordionItem value="item-1">
125
+ <AccordionTrigger>Is it accessible?</AccordionTrigger>
126
+ <AccordionContent>Yes. It uses Radix UI primitives.</AccordionContent>
127
+ </AccordionItem>
128
+ </Accordion>
129
+ </TestSection>
130
+
131
+ <TestSection title="Alert">
132
+ <Alert>
133
+ <AlertTitle>Heads up!</AlertTitle>
134
+ <AlertDescription>This is an alert component.</AlertDescription>
135
+ </Alert>
136
+ </TestSection>
137
+
138
+ <TestSection title="AlertDialog">
139
+ <AlertDialog>
140
+ <AlertDialogTrigger asChild>
141
+ <Button variant="outline">Open Dialog</Button>
142
+ </AlertDialogTrigger>
143
+ <AlertDialogContent>
144
+ <AlertDialogHeader>
145
+ <AlertDialogTitle>Are you sure?</AlertDialogTitle>
146
+ <AlertDialogDescription>This action cannot be undone.</AlertDialogDescription>
147
+ </AlertDialogHeader>
148
+ <AlertDialogAction>Continue</AlertDialogAction>
149
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
150
+ </AlertDialogContent>
151
+ </AlertDialog>
152
+ </TestSection>
153
+
154
+ <TestSection title="Avatar">
155
+ <Avatar>
156
+ <AvatarImage src="https://github.com/shadcn.png" />
157
+ <AvatarFallback>CN</AvatarFallback>
158
+ </Avatar>
159
+ </TestSection>
160
+
161
+ <TestSection title="Badge">
162
+ <Badge>Badge</Badge>
163
+ </TestSection>
164
+
165
+ <TestSection title="Button">
166
+ <Button>Click me</Button>
167
+ <Button variant="destructive">Delete</Button>
168
+ <Button variant="outline">Outline</Button>
169
+ </TestSection>
170
+
171
+ <TestSection title="Card">
172
+ <Card className="w-60">
173
+ <CardHeader>
174
+ <CardTitle>Card Title</CardTitle>
175
+ </CardHeader>
176
+ <CardContent>Card content here.</CardContent>
177
+ </Card>
178
+ </TestSection>
179
+
180
+ <TestSection title="Checkbox">
181
+ <div className="flex items-center gap-2">
182
+ <Checkbox id="c1" />
183
+ <Label htmlFor="c1">Accept terms</Label>
184
+ </div>
185
+ </TestSection>
186
+
187
+ <TestSection title="Dialog">
188
+ <Dialog>
189
+ <DialogTrigger asChild>
190
+ <Button variant="outline">Open Dialog</Button>
191
+ </DialogTrigger>
192
+ <DialogContent>
193
+ <DialogHeader>
194
+ <DialogTitle>Dialog Title</DialogTitle>
195
+ <DialogDescription>Dialog description.</DialogDescription>
196
+ </DialogHeader>
197
+ </DialogContent>
198
+ </Dialog>
199
+ </TestSection>
200
+
201
+ <TestSection title="DropdownMenu">
202
+ <DropdownMenu>
203
+ <DropdownMenuTrigger asChild>
204
+ <Button variant="outline">Menu</Button>
205
+ </DropdownMenuTrigger>
206
+ <DropdownMenuContent>
207
+ <DropdownMenuItem>Item 1</DropdownMenuItem>
208
+ <DropdownMenuItem>Item 2</DropdownMenuItem>
209
+ </DropdownMenuContent>
210
+ </DropdownMenu>
211
+ </TestSection>
212
+
213
+ <TestSection title="Input + Label">
214
+ <div className="grid w-60 gap-2">
215
+ <Label htmlFor="name">Name</Label>
216
+ <Input id="name" placeholder="Enter your name" />
217
+ </div>
218
+ </TestSection>
219
+
220
+ <TestSection title="Menubar">
221
+ <Menubar>
222
+ <MenubarMenu>
223
+ <MenubarTrigger>File</MenubarTrigger>
224
+ <MenubarContent>
225
+ <MenubarItem>New</MenubarItem>
226
+ <MenubarItem>Open</MenubarItem>
227
+ </MenubarContent>
228
+ </MenubarMenu>
229
+ </Menubar>
230
+ </TestSection>
231
+
232
+ <TestSection title="Popover">
233
+ <Popover>
234
+ <PopoverTrigger asChild>
235
+ <Button variant="outline">Open Popover</Button>
236
+ </PopoverTrigger>
237
+ <PopoverContent>Popover content here.</PopoverContent>
238
+ </Popover>
239
+ </TestSection>
240
+
241
+ <TestSection title="Progress">
242
+ <Progress value={progress} className="w-60" />
243
+ </TestSection>
244
+
245
+ <TestSection title="RadioGroup">
246
+ <RadioGroup defaultValue="option-1">
247
+ <div className="flex items-center gap-2">
248
+ <RadioGroupItem value="option-1" id="r1" />
249
+ <Label htmlFor="r1">Option 1</Label>
250
+ </div>
251
+ <div className="flex items-center gap-2">
252
+ <RadioGroupItem value="option-2" id="r2" />
253
+ <Label htmlFor="r2">Option 2</Label>
254
+ </div>
255
+ </RadioGroup>
256
+ </TestSection>
257
+
258
+ <TestSection title="ScrollArea">
259
+ <ScrollArea className="h-20 w-60 border rounded p-2">
260
+ <div className="h-40">Scrollable content line 1<br />line 2<br />line 3<br />line 4</div>
261
+ </ScrollArea>
262
+ </TestSection>
263
+
264
+ <TestSection title="Select">
265
+ <Select>
266
+ <SelectTrigger className="w-40">
267
+ <SelectValue placeholder="Select..." />
268
+ </SelectTrigger>
269
+ <SelectContent>
270
+ <SelectItem value="1">Option 1</SelectItem>
271
+ <SelectItem value="2">Option 2</SelectItem>
272
+ </SelectContent>
273
+ </Select>
274
+ </TestSection>
275
+
276
+ <TestSection title="Separator">
277
+ <div>
278
+ <span>Above</span>
279
+ <Separator className="my-2" />
280
+ <span>Below</span>
281
+ </div>
282
+ </TestSection>
283
+
284
+ <TestSection title="Sheet">
285
+ <Sheet>
286
+ <SheetTrigger asChild>
287
+ <Button variant="outline">Open Sheet</Button>
288
+ </SheetTrigger>
289
+ <SheetContent>
290
+ <SheetHeader>
291
+ <SheetTitle>Sheet Title</SheetTitle>
292
+ <SheetDescription>Sheet description.</SheetDescription>
293
+ </SheetHeader>
294
+ </SheetContent>
295
+ </Sheet>
296
+ </TestSection>
297
+
298
+ <TestSection title="Skeleton">
299
+ <div className="space-y-2 w-60">
300
+ <Skeleton className="h-4 w-full" />
301
+ <Skeleton className="h-4 w-3/4" />
302
+ </div>
303
+ </TestSection>
304
+
305
+ <TestSection title="Slider">
306
+ <Slider defaultValue={[50]} max={100} step={1} className="w-60" />
307
+ </TestSection>
308
+
309
+ <TestSection title="Switch">
310
+ <div className="flex items-center gap-2">
311
+ <Switch id="s1" />
312
+ <Label htmlFor="s1">Airplane mode</Label>
313
+ </div>
314
+ </TestSection>
315
+
316
+ <TestSection title="Table">
317
+ <Table>
318
+ <TableHeader>
319
+ <TableRow>
320
+ <TableHead>Name</TableHead>
321
+ <TableHead>Email</TableHead>
322
+ </TableRow>
323
+ </TableHeader>
324
+ <TableBody>
325
+ <TableRow>
326
+ <TableCell>John</TableCell>
327
+ <TableCell>john@example.com</TableCell>
328
+ </TableRow>
329
+ </TableBody>
330
+ </Table>
331
+ </TestSection>
332
+
333
+ <TestSection title="Tabs">
334
+ <Tabs defaultValue="tab1">
335
+ <TabsList>
336
+ <TabsTrigger value="tab1">Tab 1</TabsTrigger>
337
+ <TabsTrigger value="tab2">Tab 2</TabsTrigger>
338
+ </TabsList>
339
+ <TabsContent value="tab1">Content 1</TabsContent>
340
+ <TabsContent value="tab2">Content 2</TabsContent>
341
+ </Tabs>
342
+ </TestSection>
343
+
344
+ <TestSection title="Textarea">
345
+ <Textarea placeholder="Write something..." className="w-60" />
346
+ </TestSection>
347
+
348
+ <TestSection title="Toast">
349
+ <ToastProvider>
350
+ <Toast>Default toast</Toast>
351
+ <ToastViewport />
352
+ </ToastProvider>
353
+ </TestSection>
354
+
355
+ <TestSection title="Toaster">
356
+ <Toaster />
357
+ </TestSection>
358
+
359
+ <TestSection title="Tooltip">
360
+ <TooltipProvider>
361
+ <Tooltip>
362
+ <TooltipTrigger asChild>
363
+ <Button variant="outline">Hover me</Button>
364
+ </TooltipTrigger>
365
+ <TooltipContent>Tooltip content</TooltipContent>
366
+ </Tooltip>
367
+ </TooltipProvider>
368
+ </TestSection>
369
+ </div>
370
+ )
371
+ }
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+
8
+ import(join(__dirname, '..', 'node_modules', '@pasosdejesus', 'm', 'dist', 'm.js'));
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "new-york",
4
+ "rsc": true,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "",
8
+ "css": "app/globals.css",
9
+ "baseColor": "neutral",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/lib",
18
+ "hooks": "@/lib/hooks"
19
+ },
20
+ "iconLibrary": "lucide"
21
+ }
@@ -0,0 +1,5 @@
1
+ /// <reference types="next" />
2
+ /// <reference types="next/image-types/global" />
3
+
4
+ // NOTE: This file should not be edited
5
+ // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
@@ -0,0 +1,10 @@
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ outputFileTracingRoot: process.cwd(),
4
+ // Silencia la advertencia de mĂșltiples lockfiles
5
+ experimental: {
6
+ externalDir: true,
7
+ },
8
+ };
9
+
10
+ export default nextConfig;