@kurly-growth/growthman 0.1.13 → 0.1.14

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 (287) hide show
  1. package/CLAUDE.md +58 -0
  2. package/app/globals.css +125 -0
  3. package/app/layout.tsx +36 -0
  4. package/app/page.tsx +213 -0
  5. package/bin/cli.js +12 -2
  6. package/components/api-test-dialog.tsx +222 -0
  7. package/components/endpoint-edit-dialog.tsx +181 -0
  8. package/components/endpoint-table.tsx +147 -0
  9. package/components/openapi-upload-dialog.tsx +213 -0
  10. package/components/ui/button.tsx +62 -0
  11. package/components/ui/checkbox.tsx +32 -0
  12. package/components/ui/dialog.tsx +143 -0
  13. package/components/ui/input.tsx +21 -0
  14. package/components/ui/label.tsx +24 -0
  15. package/components/ui/sonner.tsx +37 -0
  16. package/components/ui/table.tsx +116 -0
  17. package/components/ui/textarea.tsx +18 -0
  18. package/components.json +22 -0
  19. package/next-env.d.ts +6 -0
  20. package/package.json +10 -19
  21. package/pnpm-workspace.yaml +4 -0
  22. package/postcss.config.mjs +7 -0
  23. package/prisma/prisma/dev.db +0 -0
  24. package/.next/BUILD_ID +0 -1
  25. package/.next/app-path-routes-manifest.json +0 -12
  26. package/.next/build/chunks/[root-of-the-server]__51225daf._.js +0 -206
  27. package/.next/build/chunks/[root-of-the-server]__51225daf._.js.map +0 -8
  28. package/.next/build/chunks/[root-of-the-server]__974941ed._.js +0 -500
  29. package/.next/build/chunks/[root-of-the-server]__974941ed._.js.map +0 -11
  30. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_6920245c._.js +0 -13
  31. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_6920245c._.js.map +0 -5
  32. package/.next/build/chunks/[turbopack]_runtime.js +0 -795
  33. package/.next/build/chunks/[turbopack]_runtime.js.map +0 -10
  34. package/.next/build/chunks/node_modules_fe693df6._.js +0 -6758
  35. package/.next/build/chunks/node_modules_fe693df6._.js.map +0 -47
  36. package/.next/build/package.json +0 -1
  37. package/.next/build/postcss.js +0 -6
  38. package/.next/build/postcss.js.map +0 -5
  39. package/.next/build-manifest.json +0 -19
  40. package/.next/diagnostics/build-diagnostics.json +0 -6
  41. package/.next/diagnostics/framework.json +0 -1
  42. package/.next/export-marker.json +0 -6
  43. package/.next/fallback-build-manifest.json +0 -12
  44. package/.next/images-manifest.json +0 -66
  45. package/.next/next-minimal-server.js.nft.json +0 -1
  46. package/.next/next-server.js.nft.json +0 -1
  47. package/.next/package.json +0 -1
  48. package/.next/prerender-manifest.json +0 -114
  49. package/.next/required-server-files.js +0 -163
  50. package/.next/required-server-files.json +0 -163
  51. package/.next/routes-manifest.json +0 -109
  52. package/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
  53. package/.next/server/app/_global-error/page/build-manifest.json +0 -16
  54. package/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
  55. package/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
  56. package/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
  57. package/.next/server/app/_global-error/page.js +0 -11
  58. package/.next/server/app/_global-error/page.js.map +0 -5
  59. package/.next/server/app/_global-error/page.js.nft.json +0 -1
  60. package/.next/server/app/_global-error/page_client-reference-manifest.js +0 -2
  61. package/.next/server/app/_global-error.html +0 -2
  62. package/.next/server/app/_global-error.meta +0 -15
  63. package/.next/server/app/_global-error.rsc +0 -13
  64. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +0 -5
  65. package/.next/server/app/_global-error.segments/_full.segment.rsc +0 -13
  66. package/.next/server/app/_global-error.segments/_head.segment.rsc +0 -6
  67. package/.next/server/app/_global-error.segments/_index.segment.rsc +0 -4
  68. package/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
  69. package/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
  70. package/.next/server/app/_not-found/page/build-manifest.json +0 -16
  71. package/.next/server/app/_not-found/page/next-font-manifest.json +0 -11
  72. package/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
  73. package/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
  74. package/.next/server/app/_not-found/page.js +0 -14
  75. package/.next/server/app/_not-found/page.js.map +0 -5
  76. package/.next/server/app/_not-found/page.js.nft.json +0 -1
  77. package/.next/server/app/_not-found/page_client-reference-manifest.js +0 -2
  78. package/.next/server/app/_not-found.html +0 -1
  79. package/.next/server/app/_not-found.meta +0 -16
  80. package/.next/server/app/_not-found.rsc +0 -15
  81. package/.next/server/app/_not-found.segments/_full.segment.rsc +0 -15
  82. package/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
  83. package/.next/server/app/_not-found.segments/_index.segment.rsc +0 -6
  84. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
  85. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -4
  86. package/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -2
  87. package/.next/server/app/api/endpoints/[id]/route/app-paths-manifest.json +0 -3
  88. package/.next/server/app/api/endpoints/[id]/route/build-manifest.json +0 -11
  89. package/.next/server/app/api/endpoints/[id]/route/server-reference-manifest.json +0 -4
  90. package/.next/server/app/api/endpoints/[id]/route.js +0 -7
  91. package/.next/server/app/api/endpoints/[id]/route.js.map +0 -5
  92. package/.next/server/app/api/endpoints/[id]/route.js.nft.json +0 -1
  93. package/.next/server/app/api/endpoints/[id]/route_client-reference-manifest.js +0 -2
  94. package/.next/server/app/api/endpoints/bulk/route/app-paths-manifest.json +0 -3
  95. package/.next/server/app/api/endpoints/bulk/route/build-manifest.json +0 -11
  96. package/.next/server/app/api/endpoints/bulk/route/server-reference-manifest.json +0 -4
  97. package/.next/server/app/api/endpoints/bulk/route.js +0 -7
  98. package/.next/server/app/api/endpoints/bulk/route.js.map +0 -5
  99. package/.next/server/app/api/endpoints/bulk/route.js.nft.json +0 -1
  100. package/.next/server/app/api/endpoints/bulk/route_client-reference-manifest.js +0 -2
  101. package/.next/server/app/api/endpoints/import/route/app-paths-manifest.json +0 -3
  102. package/.next/server/app/api/endpoints/import/route/build-manifest.json +0 -11
  103. package/.next/server/app/api/endpoints/import/route/server-reference-manifest.json +0 -4
  104. package/.next/server/app/api/endpoints/import/route.js +0 -7
  105. package/.next/server/app/api/endpoints/import/route.js.map +0 -5
  106. package/.next/server/app/api/endpoints/import/route.js.nft.json +0 -1
  107. package/.next/server/app/api/endpoints/import/route_client-reference-manifest.js +0 -2
  108. package/.next/server/app/api/endpoints/route/app-paths-manifest.json +0 -3
  109. package/.next/server/app/api/endpoints/route/build-manifest.json +0 -11
  110. package/.next/server/app/api/endpoints/route/server-reference-manifest.json +0 -4
  111. package/.next/server/app/api/endpoints/route.js +0 -7
  112. package/.next/server/app/api/endpoints/route.js.map +0 -5
  113. package/.next/server/app/api/endpoints/route.js.nft.json +0 -1
  114. package/.next/server/app/api/endpoints/route_client-reference-manifest.js +0 -2
  115. package/.next/server/app/api/endpoints/sync/route/app-paths-manifest.json +0 -3
  116. package/.next/server/app/api/endpoints/sync/route/build-manifest.json +0 -11
  117. package/.next/server/app/api/endpoints/sync/route/server-reference-manifest.json +0 -4
  118. package/.next/server/app/api/endpoints/sync/route.js +0 -7
  119. package/.next/server/app/api/endpoints/sync/route.js.map +0 -5
  120. package/.next/server/app/api/endpoints/sync/route.js.nft.json +0 -1
  121. package/.next/server/app/api/endpoints/sync/route_client-reference-manifest.js +0 -2
  122. package/.next/server/app/api/mock/[...slug]/route/app-paths-manifest.json +0 -3
  123. package/.next/server/app/api/mock/[...slug]/route/build-manifest.json +0 -11
  124. package/.next/server/app/api/mock/[...slug]/route/server-reference-manifest.json +0 -4
  125. package/.next/server/app/api/mock/[...slug]/route.js +0 -8
  126. package/.next/server/app/api/mock/[...slug]/route.js.map +0 -5
  127. package/.next/server/app/api/mock/[...slug]/route.js.nft.json +0 -1
  128. package/.next/server/app/api/mock/[...slug]/route_client-reference-manifest.js +0 -2
  129. package/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
  130. package/.next/server/app/favicon.ico/route/build-manifest.json +0 -11
  131. package/.next/server/app/favicon.ico/route.js +0 -7
  132. package/.next/server/app/favicon.ico/route.js.map +0 -5
  133. package/.next/server/app/favicon.ico/route.js.nft.json +0 -1
  134. package/.next/server/app/favicon.ico.meta +0 -1
  135. package/.next/server/app/index.html +0 -1
  136. package/.next/server/app/index.meta +0 -14
  137. package/.next/server/app/index.rsc +0 -21
  138. package/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -9
  139. package/.next/server/app/index.segments/_full.segment.rsc +0 -21
  140. package/.next/server/app/index.segments/_head.segment.rsc +0 -6
  141. package/.next/server/app/index.segments/_index.segment.rsc +0 -6
  142. package/.next/server/app/index.segments/_tree.segment.rsc +0 -4
  143. package/.next/server/app/page/app-paths-manifest.json +0 -3
  144. package/.next/server/app/page/build-manifest.json +0 -16
  145. package/.next/server/app/page/next-font-manifest.json +0 -11
  146. package/.next/server/app/page/react-loadable-manifest.json +0 -8
  147. package/.next/server/app/page/server-reference-manifest.json +0 -4
  148. package/.next/server/app/page.js +0 -16
  149. package/.next/server/app/page.js.map +0 -5
  150. package/.next/server/app/page.js.nft.json +0 -1
  151. package/.next/server/app/page_client-reference-manifest.js +0 -2
  152. package/.next/server/app-paths-manifest.json +0 -12
  153. package/.next/server/chunks/1629d_next_dist_esm_build_templates_app-route_498527d5.js +0 -3
  154. package/.next/server/chunks/1629d_next_dist_esm_build_templates_app-route_498527d5.js.map +0 -1
  155. package/.next/server/chunks/[externals]__cf2ccb51._.js +0 -3
  156. package/.next/server/chunks/[externals]__cf2ccb51._.js.map +0 -1
  157. package/.next/server/chunks/[externals]_next_dist_8dbe5856._.js +0 -3
  158. package/.next/server/chunks/[externals]_next_dist_8dbe5856._.js.map +0 -1
  159. package/.next/server/chunks/[root-of-the-server]__3534fecc._.js +0 -3
  160. package/.next/server/chunks/[root-of-the-server]__3534fecc._.js.map +0 -1
  161. package/.next/server/chunks/[root-of-the-server]__461ea613._.js +0 -21
  162. package/.next/server/chunks/[root-of-the-server]__461ea613._.js.map +0 -1
  163. package/.next/server/chunks/[root-of-the-server]__4929acb0._.js +0 -129
  164. package/.next/server/chunks/[root-of-the-server]__4929acb0._.js.map +0 -1
  165. package/.next/server/chunks/[root-of-the-server]__909218aa._.js +0 -3
  166. package/.next/server/chunks/[root-of-the-server]__909218aa._.js.map +0 -1
  167. package/.next/server/chunks/[root-of-the-server]__a6c01a13._.js +0 -3
  168. package/.next/server/chunks/[root-of-the-server]__a6c01a13._.js.map +0 -1
  169. package/.next/server/chunks/[root-of-the-server]__db1127cf._.js +0 -3
  170. package/.next/server/chunks/[root-of-the-server]__db1127cf._.js.map +0 -1
  171. package/.next/server/chunks/[root-of-the-server]__e46f3e25._.js +0 -3
  172. package/.next/server/chunks/[root-of-the-server]__e46f3e25._.js.map +0 -1
  173. package/.next/server/chunks/[turbopack]_runtime.js +0 -795
  174. package/.next/server/chunks/[turbopack]_runtime.js.map +0 -10
  175. package/.next/server/chunks/_next-internal_server_app_api_endpoints_[id]_route_actions_b91cfc4c.js +0 -3
  176. package/.next/server/chunks/_next-internal_server_app_api_endpoints_[id]_route_actions_b91cfc4c.js.map +0 -1
  177. package/.next/server/chunks/_next-internal_server_app_api_endpoints_bulk_route_actions_560cc6cd.js +0 -3
  178. package/.next/server/chunks/_next-internal_server_app_api_endpoints_bulk_route_actions_560cc6cd.js.map +0 -1
  179. package/.next/server/chunks/_next-internal_server_app_api_endpoints_import_route_actions_f2444950.js +0 -3
  180. package/.next/server/chunks/_next-internal_server_app_api_endpoints_import_route_actions_f2444950.js.map +0 -1
  181. package/.next/server/chunks/_next-internal_server_app_api_endpoints_route_actions_49d8ad56.js +0 -3
  182. package/.next/server/chunks/_next-internal_server_app_api_endpoints_route_actions_49d8ad56.js.map +0 -1
  183. package/.next/server/chunks/_next-internal_server_app_api_endpoints_sync_route_actions_0f446550.js +0 -3
  184. package/.next/server/chunks/_next-internal_server_app_api_endpoints_sync_route_actions_0f446550.js.map +0 -1
  185. package/.next/server/chunks/_next-internal_server_app_api_mock_[___slug]_route_actions_be875f77.js +0 -3
  186. package/.next/server/chunks/_next-internal_server_app_api_mock_[___slug]_route_actions_be875f77.js.map +0 -1
  187. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_353150a5.js +0 -3
  188. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_353150a5.js.map +0 -1
  189. package/.next/server/chunks/node_modules__pnpm_a61fb769._.js +0 -3
  190. package/.next/server/chunks/node_modules__pnpm_a61fb769._.js.map +0 -1
  191. package/.next/server/chunks/ssr/1629d_next_dist_1a21bde7._.js +0 -6
  192. package/.next/server/chunks/ssr/1629d_next_dist_1a21bde7._.js.map +0 -1
  193. package/.next/server/chunks/ssr/1629d_next_dist_8dc31fba._.js +0 -3
  194. package/.next/server/chunks/ssr/1629d_next_dist_8dc31fba._.js.map +0 -1
  195. package/.next/server/chunks/ssr/1629d_next_dist_client_components_b01b33e4._.js +0 -3
  196. package/.next/server/chunks/ssr/1629d_next_dist_client_components_b01b33e4._.js.map +0 -1
  197. package/.next/server/chunks/ssr/1629d_next_dist_client_components_builtin_forbidden_4cab2078.js +0 -3
  198. package/.next/server/chunks/ssr/1629d_next_dist_client_components_builtin_forbidden_4cab2078.js.map +0 -1
  199. package/.next/server/chunks/ssr/1629d_next_dist_client_components_builtin_global-error_0d5cb623.js +0 -3
  200. package/.next/server/chunks/ssr/1629d_next_dist_client_components_builtin_global-error_0d5cb623.js.map +0 -1
  201. package/.next/server/chunks/ssr/1629d_next_dist_client_components_builtin_unauthorized_b8fbdcad.js +0 -3
  202. package/.next/server/chunks/ssr/1629d_next_dist_client_components_builtin_unauthorized_b8fbdcad.js.map +0 -1
  203. package/.next/server/chunks/ssr/1629d_next_dist_d78dee57._.js +0 -4
  204. package/.next/server/chunks/ssr/1629d_next_dist_d78dee57._.js.map +0 -1
  205. package/.next/server/chunks/ssr/1629d_next_dist_esm_build_templates_app-page_d4e9464b.js +0 -4
  206. package/.next/server/chunks/ssr/1629d_next_dist_esm_build_templates_app-page_d4e9464b.js.map +0 -1
  207. package/.next/server/chunks/ssr/67049_lucide-react_dist_esm_createLucideIcon_22fe2e14.js +0 -3
  208. package/.next/server/chunks/ssr/67049_lucide-react_dist_esm_createLucideIcon_22fe2e14.js.map +0 -1
  209. package/.next/server/chunks/ssr/[externals]_next_dist_server_app-render_work-async-storage_external_1f8eeae7.js +0 -3
  210. package/.next/server/chunks/ssr/[externals]_next_dist_server_app-render_work-async-storage_external_1f8eeae7.js.map +0 -1
  211. package/.next/server/chunks/ssr/[root-of-the-server]__14f4396a._.js +0 -10
  212. package/.next/server/chunks/ssr/[root-of-the-server]__14f4396a._.js.map +0 -1
  213. package/.next/server/chunks/ssr/[root-of-the-server]__3064bf15._.js +0 -3
  214. package/.next/server/chunks/ssr/[root-of-the-server]__3064bf15._.js.map +0 -1
  215. package/.next/server/chunks/ssr/[root-of-the-server]__4ff41ba3._.js +0 -4
  216. package/.next/server/chunks/ssr/[root-of-the-server]__4ff41ba3._.js.map +0 -1
  217. package/.next/server/chunks/ssr/[root-of-the-server]__57c5da8e._.js +0 -3
  218. package/.next/server/chunks/ssr/[root-of-the-server]__57c5da8e._.js.map +0 -1
  219. package/.next/server/chunks/ssr/[root-of-the-server]__67653b38._.js +0 -3
  220. package/.next/server/chunks/ssr/[root-of-the-server]__67653b38._.js.map +0 -1
  221. package/.next/server/chunks/ssr/[root-of-the-server]__7d48410d._.js +0 -3
  222. package/.next/server/chunks/ssr/[root-of-the-server]__7d48410d._.js.map +0 -1
  223. package/.next/server/chunks/ssr/[root-of-the-server]__a49eaf36._.js +0 -3
  224. package/.next/server/chunks/ssr/[root-of-the-server]__a49eaf36._.js.map +0 -1
  225. package/.next/server/chunks/ssr/[root-of-the-server]__b0617f51._.js +0 -3
  226. package/.next/server/chunks/ssr/[root-of-the-server]__b0617f51._.js.map +0 -1
  227. package/.next/server/chunks/ssr/[root-of-the-server]__cc026bde._.js +0 -3
  228. package/.next/server/chunks/ssr/[root-of-the-server]__cc026bde._.js.map +0 -1
  229. package/.next/server/chunks/ssr/[root-of-the-server]__d079898e._.js +0 -3
  230. package/.next/server/chunks/ssr/[root-of-the-server]__d079898e._.js.map +0 -1
  231. package/.next/server/chunks/ssr/[root-of-the-server]__d3649e47._.js +0 -3
  232. package/.next/server/chunks/ssr/[root-of-the-server]__d3649e47._.js.map +0 -1
  233. package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -795
  234. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -10
  235. package/.next/server/chunks/ssr/_9b6e3dc4._.js +0 -3
  236. package/.next/server/chunks/ssr/_9b6e3dc4._.js.map +0 -1
  237. package/.next/server/chunks/ssr/_a437ac52._.js +0 -7
  238. package/.next/server/chunks/ssr/_a437ac52._.js.map +0 -1
  239. package/.next/server/chunks/ssr/_b62b070d._.js +0 -4
  240. package/.next/server/chunks/ssr/_b62b070d._.js.map +0 -1
  241. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_75761787.js +0 -3
  242. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_75761787.js.map +0 -1
  243. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_554ec2bf.js +0 -3
  244. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_554ec2bf.js.map +0 -1
  245. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_39d4fc33.js +0 -3
  246. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_39d4fc33.js.map +0 -1
  247. package/.next/server/chunks/ssr/app_b9b1292a._.js +0 -3
  248. package/.next/server/chunks/ssr/app_b9b1292a._.js.map +0 -1
  249. package/.next/server/functions-config-manifest.json +0 -4
  250. package/.next/server/interception-route-rewrite-manifest.js +0 -1
  251. package/.next/server/middleware-build-manifest.js +0 -20
  252. package/.next/server/middleware-manifest.json +0 -6
  253. package/.next/server/next-font-manifest.js +0 -1
  254. package/.next/server/next-font-manifest.json +0 -15
  255. package/.next/server/pages/404.html +0 -1
  256. package/.next/server/pages/500.html +0 -2
  257. package/.next/server/pages-manifest.json +0 -4
  258. package/.next/server/server-reference-manifest.js +0 -1
  259. package/.next/server/server-reference-manifest.json +0 -5
  260. package/.next/static/chunks/16403d658c649f0f.js +0 -1
  261. package/.next/static/chunks/2422cfacfdb28c2c.js +0 -5
  262. package/.next/static/chunks/42572c067be8ea0f.js +0 -1
  263. package/.next/static/chunks/5045da71379799ce.js +0 -1
  264. package/.next/static/chunks/6e04dfc4035d7150.js +0 -5
  265. package/.next/static/chunks/8155485116e3ff24.js +0 -1
  266. package/.next/static/chunks/a66e09a7c2336f67.js +0 -1
  267. package/.next/static/chunks/a6dad97d9634a72d.js +0 -1
  268. package/.next/static/chunks/a6dad97d9634a72d.js.map +0 -1
  269. package/.next/static/chunks/da3f3e4f37f68cee.css +0 -3
  270. package/.next/static/chunks/f1cfb69226717279.js +0 -1
  271. package/.next/static/chunks/turbopack-7027959231bb432a.js +0 -4
  272. package/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  273. package/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  274. package/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  275. package/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  276. package/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  277. package/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  278. package/.next/static/media/favicon.de6b30f1.ico +0 -0
  279. package/.next/static/rD3QdLXPN9C3vquucAUu6/_buildManifest.js +0 -11
  280. package/.next/static/rD3QdLXPN9C3vquucAUu6/_clientMiddlewareManifest.json +0 -1
  281. package/.next/static/rD3QdLXPN9C3vquucAUu6/_ssgManifest.js +0 -1
  282. package/.next/trace +0 -1
  283. package/.next/trace-build +0 -1
  284. package/.next/turbopack +0 -0
  285. package/.next/types/routes.d.ts +0 -78
  286. package/.next/types/validator.ts +0 -124
  287. /package/{.next/server/app/favicon.ico.body → app/favicon.ico} +0 -0
@@ -0,0 +1,143 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as DialogPrimitive from "@radix-ui/react-dialog"
5
+ import { XIcon } from "lucide-react"
6
+
7
+ import { cn } from "@/lib/utils"
8
+
9
+ function Dialog({
10
+ ...props
11
+ }: React.ComponentProps<typeof DialogPrimitive.Root>) {
12
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />
13
+ }
14
+
15
+ function DialogTrigger({
16
+ ...props
17
+ }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
18
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />
19
+ }
20
+
21
+ function DialogPortal({
22
+ ...props
23
+ }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
24
+ return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />
25
+ }
26
+
27
+ function DialogClose({
28
+ ...props
29
+ }: React.ComponentProps<typeof DialogPrimitive.Close>) {
30
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />
31
+ }
32
+
33
+ function DialogOverlay({
34
+ className,
35
+ ...props
36
+ }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
37
+ return (
38
+ <DialogPrimitive.Overlay
39
+ data-slot="dialog-overlay"
40
+ className={cn(
41
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
42
+ className
43
+ )}
44
+ {...props}
45
+ />
46
+ )
47
+ }
48
+
49
+ function DialogContent({
50
+ className,
51
+ children,
52
+ showCloseButton = true,
53
+ ...props
54
+ }: React.ComponentProps<typeof DialogPrimitive.Content> & {
55
+ showCloseButton?: boolean
56
+ }) {
57
+ return (
58
+ <DialogPortal data-slot="dialog-portal">
59
+ <DialogOverlay />
60
+ <DialogPrimitive.Content
61
+ data-slot="dialog-content"
62
+ className={cn(
63
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none",
64
+ className
65
+ )}
66
+ {...props}
67
+ >
68
+ {children}
69
+ {showCloseButton && (
70
+ <DialogPrimitive.Close
71
+ data-slot="dialog-close"
72
+ className="ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
73
+ >
74
+ <XIcon />
75
+ <span className="sr-only">Close</span>
76
+ </DialogPrimitive.Close>
77
+ )}
78
+ </DialogPrimitive.Content>
79
+ </DialogPortal>
80
+ )
81
+ }
82
+
83
+ function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
84
+ return (
85
+ <div
86
+ data-slot="dialog-header"
87
+ className={cn("flex flex-col gap-2 text-center sm:text-left", className)}
88
+ {...props}
89
+ />
90
+ )
91
+ }
92
+
93
+ function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
94
+ return (
95
+ <div
96
+ data-slot="dialog-footer"
97
+ className={cn(
98
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
99
+ className
100
+ )}
101
+ {...props}
102
+ />
103
+ )
104
+ }
105
+
106
+ function DialogTitle({
107
+ className,
108
+ ...props
109
+ }: React.ComponentProps<typeof DialogPrimitive.Title>) {
110
+ return (
111
+ <DialogPrimitive.Title
112
+ data-slot="dialog-title"
113
+ className={cn("text-lg leading-none font-semibold", className)}
114
+ {...props}
115
+ />
116
+ )
117
+ }
118
+
119
+ function DialogDescription({
120
+ className,
121
+ ...props
122
+ }: React.ComponentProps<typeof DialogPrimitive.Description>) {
123
+ return (
124
+ <DialogPrimitive.Description
125
+ data-slot="dialog-description"
126
+ className={cn("text-muted-foreground text-sm", className)}
127
+ {...props}
128
+ />
129
+ )
130
+ }
131
+
132
+ export {
133
+ Dialog,
134
+ DialogClose,
135
+ DialogContent,
136
+ DialogDescription,
137
+ DialogFooter,
138
+ DialogHeader,
139
+ DialogOverlay,
140
+ DialogPortal,
141
+ DialogTitle,
142
+ DialogTrigger,
143
+ }
@@ -0,0 +1,21 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ function Input({ className, type, ...props }: React.ComponentProps<"input">) {
6
+ return (
7
+ <input
8
+ type={type}
9
+ data-slot="input"
10
+ className={cn(
11
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
12
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
13
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
14
+ className
15
+ )}
16
+ {...props}
17
+ />
18
+ )
19
+ }
20
+
21
+ export { Input }
@@ -0,0 +1,24 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as LabelPrimitive from "@radix-ui/react-label"
5
+
6
+ import { cn } from "@/lib/utils"
7
+
8
+ function Label({
9
+ className,
10
+ ...props
11
+ }: React.ComponentProps<typeof LabelPrimitive.Root>) {
12
+ return (
13
+ <LabelPrimitive.Root
14
+ data-slot="label"
15
+ className={cn(
16
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
17
+ className
18
+ )}
19
+ {...props}
20
+ />
21
+ )
22
+ }
23
+
24
+ export { Label }
@@ -0,0 +1,37 @@
1
+ "use client"
2
+
3
+ import {
4
+ CircleCheckIcon,
5
+ InfoIcon,
6
+ Loader2Icon,
7
+ OctagonXIcon,
8
+ TriangleAlertIcon,
9
+ } from "lucide-react"
10
+ import { Toaster as Sonner, type ToasterProps } from "sonner"
11
+
12
+ const Toaster = ({ ...props }: ToasterProps) => {
13
+ return (
14
+ <Sonner
15
+ theme="light"
16
+ className="toaster group"
17
+ icons={{
18
+ success: <CircleCheckIcon className="size-4" />,
19
+ info: <InfoIcon className="size-4" />,
20
+ warning: <TriangleAlertIcon className="size-4" />,
21
+ error: <OctagonXIcon className="size-4" />,
22
+ loading: <Loader2Icon className="size-4 animate-spin" />,
23
+ }}
24
+ style={
25
+ {
26
+ "--normal-bg": "var(--popover)",
27
+ "--normal-text": "var(--popover-foreground)",
28
+ "--normal-border": "var(--border)",
29
+ "--border-radius": "var(--radius)",
30
+ } as React.CSSProperties
31
+ }
32
+ {...props}
33
+ />
34
+ )
35
+ }
36
+
37
+ export { Toaster }
@@ -0,0 +1,116 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+
5
+ import { cn } from "@/lib/utils"
6
+
7
+ function Table({ className, ...props }: React.ComponentProps<"table">) {
8
+ return (
9
+ <div
10
+ data-slot="table-container"
11
+ className="relative w-full overflow-x-auto"
12
+ >
13
+ <table
14
+ data-slot="table"
15
+ className={cn("w-full caption-bottom text-sm", className)}
16
+ {...props}
17
+ />
18
+ </div>
19
+ )
20
+ }
21
+
22
+ function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
23
+ return (
24
+ <thead
25
+ data-slot="table-header"
26
+ className={cn("[&_tr]:border-b", className)}
27
+ {...props}
28
+ />
29
+ )
30
+ }
31
+
32
+ function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
33
+ return (
34
+ <tbody
35
+ data-slot="table-body"
36
+ className={cn("[&_tr:last-child]:border-0", className)}
37
+ {...props}
38
+ />
39
+ )
40
+ }
41
+
42
+ function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) {
43
+ return (
44
+ <tfoot
45
+ data-slot="table-footer"
46
+ className={cn(
47
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
48
+ className
49
+ )}
50
+ {...props}
51
+ />
52
+ )
53
+ }
54
+
55
+ function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
56
+ return (
57
+ <tr
58
+ data-slot="table-row"
59
+ className={cn(
60
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
61
+ className
62
+ )}
63
+ {...props}
64
+ />
65
+ )
66
+ }
67
+
68
+ function TableHead({ className, ...props }: React.ComponentProps<"th">) {
69
+ return (
70
+ <th
71
+ data-slot="table-head"
72
+ className={cn(
73
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
74
+ className
75
+ )}
76
+ {...props}
77
+ />
78
+ )
79
+ }
80
+
81
+ function TableCell({ className, ...props }: React.ComponentProps<"td">) {
82
+ return (
83
+ <td
84
+ data-slot="table-cell"
85
+ className={cn(
86
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
87
+ className
88
+ )}
89
+ {...props}
90
+ />
91
+ )
92
+ }
93
+
94
+ function TableCaption({
95
+ className,
96
+ ...props
97
+ }: React.ComponentProps<"caption">) {
98
+ return (
99
+ <caption
100
+ data-slot="table-caption"
101
+ className={cn("text-muted-foreground mt-4 text-sm", className)}
102
+ {...props}
103
+ />
104
+ )
105
+ }
106
+
107
+ export {
108
+ Table,
109
+ TableHeader,
110
+ TableBody,
111
+ TableFooter,
112
+ TableHead,
113
+ TableRow,
114
+ TableCell,
115
+ TableCaption,
116
+ }
@@ -0,0 +1,18 @@
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ function Textarea({ className, ...props }: React.ComponentProps<"textarea">) {
6
+ return (
7
+ <textarea
8
+ data-slot="textarea"
9
+ className={cn(
10
+ "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
11
+ className
12
+ )}
13
+ {...props}
14
+ />
15
+ )
16
+ }
17
+
18
+ export { Textarea }
@@ -0,0 +1,22 @@
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
+ "iconLibrary": "lucide",
14
+ "aliases": {
15
+ "components": "@/components",
16
+ "utils": "@/lib/utils",
17
+ "ui": "@/components/ui",
18
+ "lib": "@/lib",
19
+ "hooks": "@/hooks"
20
+ },
21
+ "registries": {}
22
+ }
package/next-env.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /// <reference types="next" />
2
+ /// <reference types="next/image-types/global" />
3
+ import "./.next/types/routes.d.ts";
4
+
5
+ // NOTE: This file should not be edited
6
+ // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kurly-growth/growthman",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Local mock API server with UI dashboard",
5
5
  "bin": {
6
6
  "growthman": "./bin/cli.js"
@@ -8,16 +8,7 @@
8
8
  "publishConfig": {
9
9
  "access": "public"
10
10
  },
11
- "files": [
12
- "bin",
13
- ".next",
14
- "!.next/cache",
15
- "!.next/dev",
16
- "prisma/schema.prisma",
17
- "public"
18
- ],
19
11
  "scripts": {
20
- "prepack": "next build",
21
12
  "postinstall": "prisma generate",
22
13
  "dev": "next dev -p ${PORT:-3100}",
23
14
  "dev:clean": "npx prisma db seed && next dev -p ${PORT:-3100}",
@@ -40,6 +31,10 @@
40
31
  "@radix-ui/react-dialog": "^1.1.15",
41
32
  "@radix-ui/react-label": "^2.1.8",
42
33
  "@radix-ui/react-slot": "^1.2.4",
34
+ "@tailwindcss/postcss": "^4",
35
+ "@types/node": "^20",
36
+ "@types/react": "^19",
37
+ "@types/react-dom": "^19",
43
38
  "class-variance-authority": "^0.7.1",
44
39
  "clsx": "^2.1.1",
45
40
  "lucide-react": "^0.562.0",
@@ -50,18 +45,14 @@
50
45
  "react": "19.2.3",
51
46
  "react-dom": "19.2.3",
52
47
  "sonner": "^2.0.7",
53
- "tailwind-merge": "^3.4.0"
48
+ "tailwind-merge": "^3.4.0",
49
+ "tailwindcss": "^4",
50
+ "tw-animate-css": "^1.4.0",
51
+ "typescript": "^5"
54
52
  },
55
53
  "devDependencies": {
56
- "@tailwindcss/postcss": "^4",
57
- "@types/node": "^20",
58
- "@types/react": "^19",
59
- "@types/react-dom": "^19",
60
54
  "eslint": "^9",
61
55
  "eslint-config-next": "16.1.1",
62
- "tailwindcss": "^4",
63
- "tsx": "^4.21.0",
64
- "tw-animate-css": "^1.4.0",
65
- "typescript": "^5"
56
+ "tsx": "^4.21.0"
66
57
  }
67
58
  }
@@ -0,0 +1,4 @@
1
+ onlyBuiltDependencies:
2
+ - "@prisma/client"
3
+ - "@prisma/engines"
4
+ - "prisma"
@@ -0,0 +1,7 @@
1
+ const config = {
2
+ plugins: {
3
+ "@tailwindcss/postcss": {},
4
+ },
5
+ };
6
+
7
+ export default config;
Binary file
package/.next/BUILD_ID DELETED
@@ -1 +0,0 @@
1
- rD3QdLXPN9C3vquucAUu6
@@ -1,12 +0,0 @@
1
- {
2
- "/_global-error/page": "/_global-error",
3
- "/_not-found/page": "/_not-found",
4
- "/api/endpoints/[id]/route": "/api/endpoints/[id]",
5
- "/api/endpoints/bulk/route": "/api/endpoints/bulk",
6
- "/api/endpoints/import/route": "/api/endpoints/import",
7
- "/api/endpoints/route": "/api/endpoints",
8
- "/api/endpoints/sync/route": "/api/endpoints/sync",
9
- "/api/mock/[...slug]/route": "/api/mock/[...slug]",
10
- "/favicon.ico/route": "/favicon.ico",
11
- "/page": "/"
12
- }