@underpeaks/generator-flutter 1.0.19

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 (277) hide show
  1. package/dist/adapters/bloc/bloc.d.ts +3 -0
  2. package/dist/adapters/bloc/bloc.d.ts.map +1 -0
  3. package/dist/adapters/bloc/bloc.js +283 -0
  4. package/dist/adapters/bloc/bloc.js.map +1 -0
  5. package/dist/adapters/provider/provider.d.ts +3 -0
  6. package/dist/adapters/provider/provider.d.ts.map +1 -0
  7. package/dist/adapters/provider/provider.js +182 -0
  8. package/dist/adapters/provider/provider.js.map +1 -0
  9. package/dist/adapters/riverpod/provider.d.ts +3 -0
  10. package/dist/adapters/riverpod/provider.d.ts.map +1 -0
  11. package/dist/adapters/riverpod/provider.js +230 -0
  12. package/dist/adapters/riverpod/provider.js.map +1 -0
  13. package/dist/generator.d.ts +3 -0
  14. package/dist/generator.d.ts.map +1 -0
  15. package/dist/generator.js +199 -0
  16. package/dist/generator.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +6 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/integrations/algolia.d.ts +3 -0
  22. package/dist/integrations/algolia.d.ts.map +1 -0
  23. package/dist/integrations/algolia.js +51 -0
  24. package/dist/integrations/algolia.js.map +1 -0
  25. package/dist/integrations/anthropic.d.ts +3 -0
  26. package/dist/integrations/anthropic.d.ts.map +1 -0
  27. package/dist/integrations/anthropic.js +49 -0
  28. package/dist/integrations/anthropic.js.map +1 -0
  29. package/dist/integrations/aws-s3.d.ts +3 -0
  30. package/dist/integrations/aws-s3.d.ts.map +1 -0
  31. package/dist/integrations/aws-s3.js +67 -0
  32. package/dist/integrations/aws-s3.js.map +1 -0
  33. package/dist/integrations/clerk.d.ts +3 -0
  34. package/dist/integrations/clerk.d.ts.map +1 -0
  35. package/dist/integrations/clerk.js +68 -0
  36. package/dist/integrations/clerk.js.map +1 -0
  37. package/dist/integrations/cloudinary.d.ts +3 -0
  38. package/dist/integrations/cloudinary.d.ts.map +1 -0
  39. package/dist/integrations/cloudinary.js +64 -0
  40. package/dist/integrations/cloudinary.js.map +1 -0
  41. package/dist/integrations/crisp.d.ts +3 -0
  42. package/dist/integrations/crisp.d.ts.map +1 -0
  43. package/dist/integrations/crisp.js +42 -0
  44. package/dist/integrations/crisp.js.map +1 -0
  45. package/dist/integrations/firebase.d.ts +3 -0
  46. package/dist/integrations/firebase.d.ts.map +1 -0
  47. package/dist/integrations/firebase.js +78 -0
  48. package/dist/integrations/firebase.js.map +1 -0
  49. package/dist/integrations/flutterwave.d.ts +3 -0
  50. package/dist/integrations/flutterwave.d.ts.map +1 -0
  51. package/dist/integrations/flutterwave.js +58 -0
  52. package/dist/integrations/flutterwave.js.map +1 -0
  53. package/dist/integrations/gemini.d.ts +3 -0
  54. package/dist/integrations/gemini.d.ts.map +1 -0
  55. package/dist/integrations/gemini.js +49 -0
  56. package/dist/integrations/gemini.js.map +1 -0
  57. package/dist/integrations/github.d.ts +3 -0
  58. package/dist/integrations/github.d.ts.map +1 -0
  59. package/dist/integrations/github.js +58 -0
  60. package/dist/integrations/github.js.map +1 -0
  61. package/dist/integrations/hubspot.d.ts +3 -0
  62. package/dist/integrations/hubspot.d.ts.map +1 -0
  63. package/dist/integrations/hubspot.js +70 -0
  64. package/dist/integrations/hubspot.js.map +1 -0
  65. package/dist/integrations/index.d.ts +3 -0
  66. package/dist/integrations/index.d.ts.map +1 -0
  67. package/dist/integrations/index.js +63 -0
  68. package/dist/integrations/index.js.map +1 -0
  69. package/dist/integrations/lemonsqueezy.d.ts +3 -0
  70. package/dist/integrations/lemonsqueezy.d.ts.map +1 -0
  71. package/dist/integrations/lemonsqueezy.js +49 -0
  72. package/dist/integrations/lemonsqueezy.js.map +1 -0
  73. package/dist/integrations/mailchimp.d.ts +3 -0
  74. package/dist/integrations/mailchimp.d.ts.map +1 -0
  75. package/dist/integrations/mailchimp.js +49 -0
  76. package/dist/integrations/mailchimp.js.map +1 -0
  77. package/dist/integrations/openai.d.ts +3 -0
  78. package/dist/integrations/openai.d.ts.map +1 -0
  79. package/dist/integrations/openai.js +55 -0
  80. package/dist/integrations/openai.js.map +1 -0
  81. package/dist/integrations/payfast.d.ts +3 -0
  82. package/dist/integrations/payfast.d.ts.map +1 -0
  83. package/dist/integrations/payfast.js +55 -0
  84. package/dist/integrations/payfast.js.map +1 -0
  85. package/dist/integrations/pusher.d.ts +3 -0
  86. package/dist/integrations/pusher.d.ts.map +1 -0
  87. package/dist/integrations/pusher.js +64 -0
  88. package/dist/integrations/pusher.js.map +1 -0
  89. package/dist/integrations/resend.d.ts +3 -0
  90. package/dist/integrations/resend.d.ts.map +1 -0
  91. package/dist/integrations/resend.js +51 -0
  92. package/dist/integrations/resend.js.map +1 -0
  93. package/dist/integrations/sendgrid.d.ts +3 -0
  94. package/dist/integrations/sendgrid.d.ts.map +1 -0
  95. package/dist/integrations/sendgrid.js +49 -0
  96. package/dist/integrations/sendgrid.js.map +1 -0
  97. package/dist/integrations/sentry.d.ts +3 -0
  98. package/dist/integrations/sentry.d.ts.map +1 -0
  99. package/dist/integrations/sentry.js +62 -0
  100. package/dist/integrations/sentry.js.map +1 -0
  101. package/dist/integrations/slack.d.ts +3 -0
  102. package/dist/integrations/slack.d.ts.map +1 -0
  103. package/dist/integrations/slack.js +41 -0
  104. package/dist/integrations/slack.js.map +1 -0
  105. package/dist/integrations/storage.d.ts +3 -0
  106. package/dist/integrations/storage.d.ts.map +1 -0
  107. package/dist/integrations/storage.js +106 -0
  108. package/dist/integrations/storage.js.map +1 -0
  109. package/dist/integrations/stripe.d.ts +3 -0
  110. package/dist/integrations/stripe.d.ts.map +1 -0
  111. package/dist/integrations/stripe.js +78 -0
  112. package/dist/integrations/stripe.js.map +1 -0
  113. package/dist/integrations/twilio.d.ts +3 -0
  114. package/dist/integrations/twilio.d.ts.map +1 -0
  115. package/dist/integrations/twilio.js +54 -0
  116. package/dist/integrations/twilio.js.map +1 -0
  117. package/dist/integrations/uploadthing.d.ts +3 -0
  118. package/dist/integrations/uploadthing.d.ts.map +1 -0
  119. package/dist/integrations/uploadthing.js +57 -0
  120. package/dist/integrations/uploadthing.js.map +1 -0
  121. package/dist/templates/api-builder.d.ts +12 -0
  122. package/dist/templates/api-builder.d.ts.map +1 -0
  123. package/dist/templates/api-builder.js +104 -0
  124. package/dist/templates/api-builder.js.map +1 -0
  125. package/dist/templates/api-config.d.ts +3 -0
  126. package/dist/templates/api-config.d.ts.map +1 -0
  127. package/dist/templates/api-config.js +60 -0
  128. package/dist/templates/api-config.js.map +1 -0
  129. package/dist/templates/env.d.ts +3 -0
  130. package/dist/templates/env.d.ts.map +1 -0
  131. package/dist/templates/env.js +27 -0
  132. package/dist/templates/env.js.map +1 -0
  133. package/dist/templates/gitignore.d.ts +3 -0
  134. package/dist/templates/gitignore.d.ts.map +1 -0
  135. package/dist/templates/gitignore.js +61 -0
  136. package/dist/templates/gitignore.js.map +1 -0
  137. package/dist/templates/main.d.ts +3 -0
  138. package/dist/templates/main.d.ts.map +1 -0
  139. package/dist/templates/main.js +66 -0
  140. package/dist/templates/main.js.map +1 -0
  141. package/dist/templates/model.d.ts +3 -0
  142. package/dist/templates/model.d.ts.map +1 -0
  143. package/dist/templates/model.js +104 -0
  144. package/dist/templates/model.js.map +1 -0
  145. package/dist/templates/navigation.d.ts +3 -0
  146. package/dist/templates/navigation.d.ts.map +1 -0
  147. package/dist/templates/navigation.js +306 -0
  148. package/dist/templates/navigation.js.map +1 -0
  149. package/dist/templates/page-auth.d.ts +3 -0
  150. package/dist/templates/page-auth.d.ts.map +1 -0
  151. package/dist/templates/page-auth.js +523 -0
  152. package/dist/templates/page-auth.js.map +1 -0
  153. package/dist/templates/page-blog-post.d.ts +3 -0
  154. package/dist/templates/page-blog-post.d.ts.map +1 -0
  155. package/dist/templates/page-blog-post.js +118 -0
  156. package/dist/templates/page-blog-post.js.map +1 -0
  157. package/dist/templates/page-calendar.d.ts +3 -0
  158. package/dist/templates/page-calendar.d.ts.map +1 -0
  159. package/dist/templates/page-calendar.js +173 -0
  160. package/dist/templates/page-calendar.js.map +1 -0
  161. package/dist/templates/page-cart.d.ts +3 -0
  162. package/dist/templates/page-cart.d.ts.map +1 -0
  163. package/dist/templates/page-cart.js +151 -0
  164. package/dist/templates/page-cart.js.map +1 -0
  165. package/dist/templates/page-chat.d.ts +3 -0
  166. package/dist/templates/page-chat.d.ts.map +1 -0
  167. package/dist/templates/page-chat.js +158 -0
  168. package/dist/templates/page-chat.js.map +1 -0
  169. package/dist/templates/page-checkout.d.ts +3 -0
  170. package/dist/templates/page-checkout.d.ts.map +1 -0
  171. package/dist/templates/page-checkout.js +180 -0
  172. package/dist/templates/page-checkout.js.map +1 -0
  173. package/dist/templates/page-contact.d.ts +1 -0
  174. package/dist/templates/page-contact.d.ts.map +1 -0
  175. package/dist/templates/page-contact.js +143 -0
  176. package/dist/templates/page-contact.js.map +1 -0
  177. package/dist/templates/page-custom.d.ts +3 -0
  178. package/dist/templates/page-custom.d.ts.map +1 -0
  179. package/dist/templates/page-custom.js +45 -0
  180. package/dist/templates/page-custom.js.map +1 -0
  181. package/dist/templates/page-dashboard.d.ts +3 -0
  182. package/dist/templates/page-dashboard.d.ts.map +1 -0
  183. package/dist/templates/page-dashboard.js +157 -0
  184. package/dist/templates/page-dashboard.js.map +1 -0
  185. package/dist/templates/page-detail.d.ts +3 -0
  186. package/dist/templates/page-detail.d.ts.map +1 -0
  187. package/dist/templates/page-detail.js +165 -0
  188. package/dist/templates/page-detail.js.map +1 -0
  189. package/dist/templates/page-feed.d.ts +3 -0
  190. package/dist/templates/page-feed.d.ts.map +1 -0
  191. package/dist/templates/page-feed.js +168 -0
  192. package/dist/templates/page-feed.js.map +1 -0
  193. package/dist/templates/page-form.d.ts +3 -0
  194. package/dist/templates/page-form.d.ts.map +1 -0
  195. package/dist/templates/page-form.js +205 -0
  196. package/dist/templates/page-form.js.map +1 -0
  197. package/dist/templates/page-gallery.d.ts +3 -0
  198. package/dist/templates/page-gallery.d.ts.map +1 -0
  199. package/dist/templates/page-gallery.js +152 -0
  200. package/dist/templates/page-gallery.js.map +1 -0
  201. package/dist/templates/page-invoice.d.ts +3 -0
  202. package/dist/templates/page-invoice.d.ts.map +1 -0
  203. package/dist/templates/page-invoice.js +144 -0
  204. package/dist/templates/page-invoice.js.map +1 -0
  205. package/dist/templates/page-kanban.d.ts +3 -0
  206. package/dist/templates/page-kanban.d.ts.map +1 -0
  207. package/dist/templates/page-kanban.js +114 -0
  208. package/dist/templates/page-kanban.js.map +1 -0
  209. package/dist/templates/page-list.d.ts +3 -0
  210. package/dist/templates/page-list.d.ts.map +1 -0
  211. package/dist/templates/page-list.js +284 -0
  212. package/dist/templates/page-list.js.map +1 -0
  213. package/dist/templates/page-map.d.ts +3 -0
  214. package/dist/templates/page-map.d.ts.map +1 -0
  215. package/dist/templates/page-map.js +94 -0
  216. package/dist/templates/page-map.js.map +1 -0
  217. package/dist/templates/page-messages.d.ts +3 -0
  218. package/dist/templates/page-messages.d.ts.map +1 -0
  219. package/dist/templates/page-messages.js +48 -0
  220. package/dist/templates/page-messages.js.map +1 -0
  221. package/dist/templates/page-onboarding.d.ts +3 -0
  222. package/dist/templates/page-onboarding.d.ts.map +1 -0
  223. package/dist/templates/page-onboarding.js +164 -0
  224. package/dist/templates/page-onboarding.js.map +1 -0
  225. package/dist/templates/page-otp.d.ts +3 -0
  226. package/dist/templates/page-otp.d.ts.map +1 -0
  227. package/dist/templates/page-otp.js +216 -0
  228. package/dist/templates/page-otp.js.map +1 -0
  229. package/dist/templates/page-profile.d.ts +3 -0
  230. package/dist/templates/page-profile.d.ts.map +1 -0
  231. package/dist/templates/page-profile.js +159 -0
  232. package/dist/templates/page-profile.js.map +1 -0
  233. package/dist/templates/page-reset-password.d.ts +3 -0
  234. package/dist/templates/page-reset-password.d.ts.map +1 -0
  235. package/dist/templates/page-reset-password.js +168 -0
  236. package/dist/templates/page-reset-password.js.map +1 -0
  237. package/dist/templates/page-search.d.ts +3 -0
  238. package/dist/templates/page-search.d.ts.map +1 -0
  239. package/dist/templates/page-search.js +112 -0
  240. package/dist/templates/page-search.js.map +1 -0
  241. package/dist/templates/page-settings.d.ts +3 -0
  242. package/dist/templates/page-settings.d.ts.map +1 -0
  243. package/dist/templates/page-settings.js +123 -0
  244. package/dist/templates/page-settings.js.map +1 -0
  245. package/dist/templates/page-splash.d.ts +3 -0
  246. package/dist/templates/page-splash.d.ts.map +1 -0
  247. package/dist/templates/page-splash.js +93 -0
  248. package/dist/templates/page-splash.js.map +1 -0
  249. package/dist/templates/page-wallet.d.ts +3 -0
  250. package/dist/templates/page-wallet.d.ts.map +1 -0
  251. package/dist/templates/page-wallet.js +97 -0
  252. package/dist/templates/page-wallet.js.map +1 -0
  253. package/dist/templates/pubspec.d.ts +3 -0
  254. package/dist/templates/pubspec.d.ts.map +1 -0
  255. package/dist/templates/pubspec.js +72 -0
  256. package/dist/templates/pubspec.js.map +1 -0
  257. package/dist/templates/readme.d.ts +3 -0
  258. package/dist/templates/readme.d.ts.map +1 -0
  259. package/dist/templates/readme.js +111 -0
  260. package/dist/templates/readme.js.map +1 -0
  261. package/dist/templates/repository.d.ts +3 -0
  262. package/dist/templates/repository.d.ts.map +1 -0
  263. package/dist/templates/repository.js +224 -0
  264. package/dist/templates/repository.js.map +1 -0
  265. package/dist/templates/theme.d.ts +3 -0
  266. package/dist/templates/theme.d.ts.map +1 -0
  267. package/dist/templates/theme.js +163 -0
  268. package/dist/templates/theme.js.map +1 -0
  269. package/dist/templates/validators.d.ts +3 -0
  270. package/dist/templates/validators.d.ts.map +1 -0
  271. package/dist/templates/validators.js +38 -0
  272. package/dist/templates/validators.js.map +1 -0
  273. package/dist/templates/widget-card.d.ts +3 -0
  274. package/dist/templates/widget-card.d.ts.map +1 -0
  275. package/dist/templates/widget-card.js +91 -0
  276. package/dist/templates/widget-card.js.map +1 -0
  277. package/package.json +24 -0
@@ -0,0 +1,523 @@
1
+ "use strict";
2
+ // File: underpeaks_codegen/packages/generator-flutter/src/templates/page-auth.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.generateAuthPages = generateAuthPages;
5
+ // FIX: sign-in's "Forgot password?" and "Don't have an account? Sign up"
6
+ // buttons, and sign-up's "Already have an account? Sign in" button,
7
+ // previously hardcoded '/forgot-password' and '/sign-up' as literal route
8
+ // paths. Per navigation.ts, routes are built from each page's own `slug`
9
+ // field — there's no guarantee those pages exist at exactly those paths.
10
+ // generateAuthPages now accepts the full `pages` array and looks up the
11
+ // real slug for each target template_type, falling back to the old
12
+ // hardcoded default only if no matching page was actually defined (so a
13
+ // project missing one of these pages doesn't crash the generator, it just
14
+ // keeps the same best-effort default it had before).
15
+ function findAuthRoute(pages, templateType, fallback) {
16
+ const match = pages.find((p) => p.template_type === templateType);
17
+ return match ? `/${match.slug.replace(/^\//, '')}` : fallback;
18
+ }
19
+ function generateAuthPages(page, stateManager, pages) {
20
+ const files = [];
21
+ const forgotPasswordRoute = findAuthRoute(pages, 'forgot_password', '/forgot-password');
22
+ const signUpRoute = findAuthRoute(pages, 'sign_up', '/sign-up');
23
+ const signInRoute = findAuthRoute(pages, 'sign_in', '/sign-in');
24
+ if (page.template_type === 'sign_in') {
25
+ const lines = [];
26
+ lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
27
+ lines.push(`// Page: Sign In`);
28
+ lines.push(`// Presentation layer — generated once, you own this file.`);
29
+ lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
30
+ lines.push(``);
31
+ lines.push(`import 'package:flutter/material.dart';`);
32
+ lines.push(`import 'package:go_router/go_router.dart';`);
33
+ lines.push(`import 'dart:convert';`);
34
+ lines.push(`import 'package:http/http.dart' as http;`);
35
+ lines.push(`import '../../../config/api_config.dart';`);
36
+ lines.push(`import '../../../config/validators.dart';`);
37
+ lines.push(``);
38
+ lines.push(`class SignInView extends StatefulWidget {`);
39
+ lines.push(` const SignInView({super.key});`);
40
+ lines.push(``);
41
+ lines.push(` @override`);
42
+ lines.push(` State<SignInView> createState() => _SignInViewState();`);
43
+ lines.push(`}`);
44
+ lines.push(``);
45
+ lines.push(`class _SignInViewState extends State<SignInView> {`);
46
+ lines.push(` final _formKey = GlobalKey<FormState>();`);
47
+ lines.push(` final _emailCtrl = TextEditingController();`);
48
+ lines.push(` final _passCtrl = TextEditingController();`);
49
+ lines.push(` bool _loading = false;`);
50
+ lines.push(` bool _obscure = true;`);
51
+ lines.push(` String? _error;`);
52
+ lines.push(``);
53
+ lines.push(` @override`);
54
+ lines.push(` void dispose() {`);
55
+ lines.push(` _emailCtrl.dispose();`);
56
+ lines.push(` _passCtrl.dispose();`);
57
+ lines.push(` super.dispose();`);
58
+ lines.push(` }`);
59
+ lines.push(``);
60
+ lines.push(` Future<void> _signIn() async {`);
61
+ lines.push(` if (!_formKey.currentState!.validate()) return;`);
62
+ lines.push(` setState(() { _loading = true; _error = null; });`);
63
+ lines.push(` try {`);
64
+ lines.push(` final res = await http.post(`);
65
+ lines.push(` Uri.parse('\${ApiConfig.baseUrl}/api-public/v1/\${ApiConfig.projectId}/auth/signin'),`);
66
+ lines.push(` headers: {`);
67
+ lines.push(` 'Content-Type': 'application/json',`);
68
+ lines.push(` 'x-api-key': ApiConfig.apiKey,`);
69
+ lines.push(` },`);
70
+ lines.push(` body: jsonEncode({`);
71
+ lines.push(` 'email': _emailCtrl.text.trim(),`);
72
+ lines.push(` 'password': _passCtrl.text,`);
73
+ lines.push(` }),`);
74
+ lines.push(` );`);
75
+ lines.push(` if (res.statusCode == 200) {`);
76
+ lines.push(` final data = jsonDecode(res.body) as Map<String, dynamic>;`);
77
+ lines.push(` ApiConfig.setToken(data['token'] as String);`);
78
+ lines.push(` if (mounted) context.go('/home');`);
79
+ lines.push(` } else {`);
80
+ lines.push(` final data = jsonDecode(res.body) as Map<String, dynamic>;`);
81
+ lines.push(` setState(() => _error = data['error']?.toString() ?? 'Sign in failed');`);
82
+ lines.push(` }`);
83
+ lines.push(` } catch (e) {`);
84
+ lines.push(` setState(() => _error = 'Network error. Please try again.');`);
85
+ lines.push(` } finally {`);
86
+ lines.push(` if (mounted) setState(() => _loading = false);`);
87
+ lines.push(` }`);
88
+ lines.push(` }`);
89
+ lines.push(``);
90
+ lines.push(` @override`);
91
+ lines.push(` Widget build(BuildContext context) {`);
92
+ lines.push(` return Scaffold(`);
93
+ lines.push(` body: SafeArea(`);
94
+ lines.push(` child: Center(`);
95
+ lines.push(` child: SingleChildScrollView(`);
96
+ lines.push(` padding: const EdgeInsets.all(24),`);
97
+ lines.push(` child: Form(`);
98
+ lines.push(` key: _formKey,`);
99
+ lines.push(` child: Column(`);
100
+ lines.push(` crossAxisAlignment: CrossAxisAlignment.stretch,`);
101
+ lines.push(` children: [`);
102
+ lines.push(` Text(`);
103
+ lines.push(` 'Sign In',`);
104
+ lines.push(` style: Theme.of(context).textTheme.headlineMedium?.copyWith(`);
105
+ lines.push(` fontWeight: FontWeight.bold,`);
106
+ lines.push(` ),`);
107
+ lines.push(` textAlign: TextAlign.center,`);
108
+ lines.push(` ),`);
109
+ lines.push(` const SizedBox(height: 32),`);
110
+ lines.push(` TextFormField(`);
111
+ lines.push(` controller: _emailCtrl,`);
112
+ lines.push(` keyboardType: TextInputType.emailAddress,`);
113
+ lines.push(` decoration: const InputDecoration(`);
114
+ lines.push(` labelText: 'Email',`);
115
+ lines.push(` border: OutlineInputBorder(),`);
116
+ lines.push(` prefixIcon: Icon(Icons.email_outlined),`);
117
+ lines.push(` ),`);
118
+ lines.push(` validator: validateEmail,`);
119
+ lines.push(` ),`);
120
+ lines.push(` const SizedBox(height: 16),`);
121
+ lines.push(` TextFormField(`);
122
+ lines.push(` controller: _passCtrl,`);
123
+ lines.push(` obscureText: _obscure,`);
124
+ lines.push(` decoration: InputDecoration(`);
125
+ lines.push(` labelText: 'Password',`);
126
+ lines.push(` border: const OutlineInputBorder(),`);
127
+ lines.push(` prefixIcon: const Icon(Icons.lock_outlined),`);
128
+ lines.push(` suffixIcon: IconButton(`);
129
+ lines.push(` icon: Icon(`);
130
+ lines.push(` _obscure ? Icons.visibility : Icons.visibility_off,`);
131
+ lines.push(` ),`);
132
+ lines.push(` onPressed: () => setState(() => _obscure = !_obscure),`);
133
+ lines.push(` ),`);
134
+ lines.push(` ),`);
135
+ lines.push(` // Presence only — the server decides. Existing accounts`);
136
+ lines.push(` // may predate the strength rule.`);
137
+ lines.push(` validator: (v) => v == null || v.isEmpty`);
138
+ lines.push(` ? 'Password is required'`);
139
+ lines.push(` : null,`);
140
+ lines.push(` ),`);
141
+ lines.push(` if (_error != null) ...[`);
142
+ lines.push(` const SizedBox(height: 12),`);
143
+ lines.push(` Text(`);
144
+ lines.push(` _error!,`);
145
+ lines.push(` style: const TextStyle(color: Colors.red),`);
146
+ lines.push(` textAlign: TextAlign.center,`);
147
+ lines.push(` ),`);
148
+ lines.push(` ],`);
149
+ lines.push(` const SizedBox(height: 24),`);
150
+ lines.push(` FilledButton(`);
151
+ lines.push(` onPressed: _loading ? null : _signIn,`);
152
+ lines.push(` child: _loading`);
153
+ lines.push(` ? const SizedBox(`);
154
+ lines.push(` height: 20,`);
155
+ lines.push(` width: 20,`);
156
+ lines.push(` child: CircularProgressIndicator(`);
157
+ lines.push(` strokeWidth: 2,`);
158
+ lines.push(` color: Colors.white,`);
159
+ lines.push(` ),`);
160
+ lines.push(` )`);
161
+ lines.push(` : const Text('Sign In'),`);
162
+ lines.push(` ),`);
163
+ lines.push(` const SizedBox(height: 16),`);
164
+ lines.push(` TextButton(`);
165
+ lines.push(` onPressed: () => context.push('${forgotPasswordRoute}'),`);
166
+ lines.push(` child: const Text('Forgot password?'),`);
167
+ lines.push(` ),`);
168
+ lines.push(` TextButton(`);
169
+ lines.push(` onPressed: () => context.push('${signUpRoute}'),`);
170
+ lines.push(` child: const Text("Don't have an account? Sign up"),`);
171
+ lines.push(` ),`);
172
+ lines.push(` ],`);
173
+ lines.push(` ),`);
174
+ lines.push(` ),`);
175
+ lines.push(` ),`);
176
+ lines.push(` ),`);
177
+ lines.push(` ),`);
178
+ lines.push(` );`);
179
+ lines.push(` }`);
180
+ lines.push(`}`);
181
+ files.push({
182
+ path: 'lib/presentation/views/auth/sign_in_view.dart',
183
+ content: lines.join('\n'),
184
+ category: 'customizable',
185
+ });
186
+ }
187
+ if (page.template_type === 'sign_up') {
188
+ const lines = [];
189
+ lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
190
+ lines.push(`// Page: Sign Up`);
191
+ lines.push(`// Presentation layer — generated once, you own this file.`);
192
+ lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
193
+ lines.push(``);
194
+ lines.push(`import 'package:flutter/material.dart';`);
195
+ lines.push(`import 'package:go_router/go_router.dart';`);
196
+ lines.push(`import 'dart:convert';`);
197
+ lines.push(`import 'package:http/http.dart' as http;`);
198
+ lines.push(`import '../../../config/api_config.dart';`);
199
+ lines.push(`import '../../../config/validators.dart';`);
200
+ lines.push(``);
201
+ lines.push(`class SignUpView extends StatefulWidget {`);
202
+ lines.push(` const SignUpView({super.key});`);
203
+ lines.push(``);
204
+ lines.push(` @override`);
205
+ lines.push(` State<SignUpView> createState() => _SignUpViewState();`);
206
+ lines.push(`}`);
207
+ lines.push(``);
208
+ lines.push(`class _SignUpViewState extends State<SignUpView> {`);
209
+ lines.push(` final _formKey = GlobalKey<FormState>();`);
210
+ lines.push(` final _nameCtrl = TextEditingController();`);
211
+ lines.push(` final _emailCtrl = TextEditingController();`);
212
+ lines.push(` final _passCtrl = TextEditingController();`);
213
+ lines.push(` bool _loading = false;`);
214
+ lines.push(` bool _obscure = true;`);
215
+ lines.push(` String? _error;`);
216
+ lines.push(``);
217
+ lines.push(` @override`);
218
+ lines.push(` void dispose() {`);
219
+ lines.push(` _nameCtrl.dispose();`);
220
+ lines.push(` _emailCtrl.dispose();`);
221
+ lines.push(` _passCtrl.dispose();`);
222
+ lines.push(` super.dispose();`);
223
+ lines.push(` }`);
224
+ lines.push(``);
225
+ lines.push(` Future<void> _signUp() async {`);
226
+ lines.push(` if (!_formKey.currentState!.validate()) return;`);
227
+ lines.push(` setState(() { _loading = true; _error = null; });`);
228
+ lines.push(` try {`);
229
+ lines.push(` final res = await http.post(`);
230
+ lines.push(` Uri.parse('\${ApiConfig.baseUrl}/api-public/v1/\${ApiConfig.projectId}/auth/signup'),`);
231
+ lines.push(` headers: {`);
232
+ lines.push(` 'Content-Type': 'application/json',`);
233
+ lines.push(` 'x-api-key': ApiConfig.apiKey,`);
234
+ lines.push(` },`);
235
+ lines.push(` body: jsonEncode({`);
236
+ lines.push(` 'full_name': _nameCtrl.text.trim(),`);
237
+ lines.push(` 'email': _emailCtrl.text.trim(),`);
238
+ lines.push(` 'password': _passCtrl.text,`);
239
+ lines.push(` }),`);
240
+ lines.push(` );`);
241
+ lines.push(` if (res.statusCode == 201) {`);
242
+ lines.push(` final data = jsonDecode(res.body) as Map<String, dynamic>;`);
243
+ lines.push(` ApiConfig.setToken(data['token'] as String);`);
244
+ lines.push(` if (mounted) context.go('/home');`);
245
+ lines.push(` } else {`);
246
+ lines.push(` final data = jsonDecode(res.body) as Map<String, dynamic>;`);
247
+ lines.push(` setState(() => _error = data['error']?.toString() ?? 'Sign up failed');`);
248
+ lines.push(` }`);
249
+ lines.push(` } catch (e) {`);
250
+ lines.push(` setState(() => _error = 'Network error. Please try again.');`);
251
+ lines.push(` } finally {`);
252
+ lines.push(` if (mounted) setState(() => _loading = false);`);
253
+ lines.push(` }`);
254
+ lines.push(` }`);
255
+ lines.push(``);
256
+ lines.push(` @override`);
257
+ lines.push(` Widget build(BuildContext context) {`);
258
+ lines.push(` return Scaffold(`);
259
+ lines.push(` body: SafeArea(`);
260
+ lines.push(` child: Center(`);
261
+ lines.push(` child: SingleChildScrollView(`);
262
+ lines.push(` padding: const EdgeInsets.all(24),`);
263
+ lines.push(` child: Form(`);
264
+ lines.push(` key: _formKey,`);
265
+ lines.push(` child: Column(`);
266
+ lines.push(` crossAxisAlignment: CrossAxisAlignment.stretch,`);
267
+ lines.push(` children: [`);
268
+ lines.push(` Text(`);
269
+ lines.push(` 'Create Account',`);
270
+ lines.push(` style: Theme.of(context).textTheme.headlineMedium?.copyWith(`);
271
+ lines.push(` fontWeight: FontWeight.bold,`);
272
+ lines.push(` ),`);
273
+ lines.push(` textAlign: TextAlign.center,`);
274
+ lines.push(` ),`);
275
+ lines.push(` const SizedBox(height: 32),`);
276
+ lines.push(` TextFormField(`);
277
+ lines.push(` controller: _nameCtrl,`);
278
+ lines.push(` decoration: const InputDecoration(`);
279
+ lines.push(` labelText: 'Full Name',`);
280
+ lines.push(` border: OutlineInputBorder(),`);
281
+ lines.push(` prefixIcon: Icon(Icons.person_outlined),`);
282
+ lines.push(` ),`);
283
+ lines.push(` validator: (v) => v == null || v.trim().isEmpty`);
284
+ lines.push(` ? 'Name is required'`);
285
+ lines.push(` : null,`);
286
+ lines.push(` ),`);
287
+ lines.push(` const SizedBox(height: 16),`);
288
+ lines.push(` TextFormField(`);
289
+ lines.push(` controller: _emailCtrl,`);
290
+ lines.push(` keyboardType: TextInputType.emailAddress,`);
291
+ lines.push(` decoration: const InputDecoration(`);
292
+ lines.push(` labelText: 'Email',`);
293
+ lines.push(` border: OutlineInputBorder(),`);
294
+ lines.push(` prefixIcon: Icon(Icons.email_outlined),`);
295
+ lines.push(` ),`);
296
+ lines.push(` validator: validateEmail,`);
297
+ lines.push(` ),`);
298
+ lines.push(` const SizedBox(height: 16),`);
299
+ lines.push(` TextFormField(`);
300
+ lines.push(` controller: _passCtrl,`);
301
+ lines.push(` obscureText: _obscure,`);
302
+ lines.push(` decoration: InputDecoration(`);
303
+ lines.push(` labelText: 'Password',`);
304
+ lines.push(` helperText: 'Min 8 chars, upper + lower, number, symbol',`);
305
+ lines.push(` helperMaxLines: 2,`);
306
+ lines.push(` border: const OutlineInputBorder(),`);
307
+ lines.push(` prefixIcon: const Icon(Icons.lock_outlined),`);
308
+ lines.push(` suffixIcon: IconButton(`);
309
+ lines.push(` icon: Icon(`);
310
+ lines.push(` _obscure ? Icons.visibility : Icons.visibility_off,`);
311
+ lines.push(` ),`);
312
+ lines.push(` onPressed: () => setState(() => _obscure = !_obscure),`);
313
+ lines.push(` ),`);
314
+ lines.push(` ),`);
315
+ lines.push(` validator: validatePassword,`);
316
+ lines.push(` ),`);
317
+ lines.push(` if (_error != null) ...[`);
318
+ lines.push(` const SizedBox(height: 12),`);
319
+ lines.push(` Text(`);
320
+ lines.push(` _error!,`);
321
+ lines.push(` style: const TextStyle(color: Colors.red),`);
322
+ lines.push(` textAlign: TextAlign.center,`);
323
+ lines.push(` ),`);
324
+ lines.push(` ],`);
325
+ lines.push(` const SizedBox(height: 24),`);
326
+ lines.push(` FilledButton(`);
327
+ lines.push(` onPressed: _loading ? null : _signUp,`);
328
+ lines.push(` child: _loading`);
329
+ lines.push(` ? const SizedBox(`);
330
+ lines.push(` height: 20,`);
331
+ lines.push(` width: 20,`);
332
+ lines.push(` child: CircularProgressIndicator(`);
333
+ lines.push(` strokeWidth: 2,`);
334
+ lines.push(` color: Colors.white,`);
335
+ lines.push(` ),`);
336
+ lines.push(` )`);
337
+ lines.push(` : const Text('Create Account'),`);
338
+ lines.push(` ),`);
339
+ lines.push(` const SizedBox(height: 16),`);
340
+ lines.push(` TextButton(`);
341
+ lines.push(` onPressed: () => context.canPop() ? context.pop() : context.go('${signInRoute}'),`);
342
+ lines.push(` child: const Text('Already have an account? Sign in'),`);
343
+ lines.push(` ),`);
344
+ lines.push(` ],`);
345
+ lines.push(` ),`);
346
+ lines.push(` ),`);
347
+ lines.push(` ),`);
348
+ lines.push(` ),`);
349
+ lines.push(` ),`);
350
+ lines.push(` );`);
351
+ lines.push(` }`);
352
+ lines.push(`}`);
353
+ files.push({
354
+ path: 'lib/presentation/views/auth/sign_up_view.dart',
355
+ content: lines.join('\n'),
356
+ category: 'customizable',
357
+ });
358
+ }
359
+ if (page.template_type === 'forgot_password') {
360
+ const lines = [];
361
+ lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
362
+ lines.push(`// Page: Forgot Password`);
363
+ lines.push(`// Presentation layer — generated once, you own this file.`);
364
+ lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
365
+ lines.push(``);
366
+ lines.push(`import 'package:flutter/material.dart';`);
367
+ lines.push(`import 'package:go_router/go_router.dart';`);
368
+ lines.push(`import 'dart:convert';`);
369
+ lines.push(`import 'package:http/http.dart' as http;`);
370
+ lines.push(`import '../../../config/api_config.dart';`);
371
+ lines.push(`import '../../../config/validators.dart';`);
372
+ lines.push(``);
373
+ lines.push(`class ForgotPasswordView extends StatefulWidget {`);
374
+ lines.push(` const ForgotPasswordView({super.key});`);
375
+ lines.push(``);
376
+ lines.push(` @override`);
377
+ lines.push(` State<ForgotPasswordView> createState() => _ForgotPasswordViewState();`);
378
+ lines.push(`}`);
379
+ lines.push(``);
380
+ lines.push(`class _ForgotPasswordViewState extends State<ForgotPasswordView> {`);
381
+ lines.push(` final _formKey = GlobalKey<FormState>();`);
382
+ lines.push(` final _emailCtrl = TextEditingController();`);
383
+ lines.push(` bool _loading = false;`);
384
+ lines.push(` bool _sent = false;`);
385
+ lines.push(` String? _error;`);
386
+ lines.push(``);
387
+ lines.push(` @override`);
388
+ lines.push(` void dispose() {`);
389
+ lines.push(` _emailCtrl.dispose();`);
390
+ lines.push(` super.dispose();`);
391
+ lines.push(` }`);
392
+ lines.push(``);
393
+ lines.push(` Future<void> _submit() async {`);
394
+ lines.push(` if (!_formKey.currentState!.validate()) return;`);
395
+ lines.push(` setState(() { _loading = true; _error = null; });`);
396
+ lines.push(` try {`);
397
+ lines.push(` final res = await http.post(`);
398
+ lines.push(` Uri.parse('\${ApiConfig.baseUrl}/api-public/v1/\${ApiConfig.projectId}/auth/forgot-password'),`);
399
+ lines.push(` headers: {`);
400
+ lines.push(` 'Content-Type': 'application/json',`);
401
+ lines.push(` 'x-api-key': ApiConfig.apiKey,`);
402
+ lines.push(` },`);
403
+ lines.push(` body: jsonEncode({'email': _emailCtrl.text.trim()}),`);
404
+ lines.push(` );`);
405
+ lines.push(` if (res.statusCode == 200) {`);
406
+ lines.push(` setState(() => _sent = true);`);
407
+ lines.push(` } else {`);
408
+ lines.push(` final data = jsonDecode(res.body) as Map<String, dynamic>;`);
409
+ lines.push(` setState(() => _error = data['error']?.toString() ?? 'Request failed');`);
410
+ lines.push(` }`);
411
+ lines.push(` } catch (e) {`);
412
+ lines.push(` setState(() => _error = 'Network error. Please try again.');`);
413
+ lines.push(` } finally {`);
414
+ lines.push(` if (mounted) setState(() => _loading = false);`);
415
+ lines.push(` }`);
416
+ lines.push(` }`);
417
+ lines.push(``);
418
+ lines.push(` @override`);
419
+ lines.push(` Widget build(BuildContext context) {`);
420
+ lines.push(` return Scaffold(`);
421
+ lines.push(` appBar: AppBar(title: const Text('Forgot Password')),`);
422
+ lines.push(` body: SafeArea(`);
423
+ lines.push(` child: Center(`);
424
+ lines.push(` child: SingleChildScrollView(`);
425
+ lines.push(` padding: const EdgeInsets.all(24),`);
426
+ lines.push(` child: _sent`);
427
+ lines.push(` ? Column(`);
428
+ lines.push(` mainAxisAlignment: MainAxisAlignment.center,`);
429
+ lines.push(` children: [`);
430
+ lines.push(` const Icon(`);
431
+ lines.push(` Icons.mark_email_read,`);
432
+ lines.push(` size: 64,`);
433
+ lines.push(` color: Colors.green,`);
434
+ lines.push(` ),`);
435
+ lines.push(` const SizedBox(height: 16),`);
436
+ lines.push(` const Text(`);
437
+ lines.push(` 'Check your email',`);
438
+ lines.push(` style: TextStyle(`);
439
+ lines.push(` fontSize: 20,`);
440
+ lines.push(` fontWeight: FontWeight.bold,`);
441
+ lines.push(` ),`);
442
+ lines.push(` ),`);
443
+ lines.push(` const SizedBox(height: 8),`);
444
+ lines.push(` const Text(`);
445
+ lines.push(` 'We sent a password reset link to your email.',`);
446
+ lines.push(` textAlign: TextAlign.center,`);
447
+ lines.push(` ),`);
448
+ lines.push(` const SizedBox(height: 24),`);
449
+ lines.push(` TextButton(`);
450
+ lines.push(` onPressed: () => context.canPop() ? context.pop() : context.go('${signInRoute}'),`);
451
+ lines.push(` child: const Text('Back to Sign In'),`);
452
+ lines.push(` ),`);
453
+ lines.push(` ],`);
454
+ lines.push(` )`);
455
+ lines.push(` : Form(`);
456
+ lines.push(` key: _formKey,`);
457
+ lines.push(` child: Column(`);
458
+ lines.push(` crossAxisAlignment: CrossAxisAlignment.stretch,`);
459
+ lines.push(` children: [`);
460
+ lines.push(` const Text(`);
461
+ lines.push(` 'Reset Password',`);
462
+ lines.push(` style: TextStyle(`);
463
+ lines.push(` fontSize: 24,`);
464
+ lines.push(` fontWeight: FontWeight.bold,`);
465
+ lines.push(` ),`);
466
+ lines.push(` textAlign: TextAlign.center,`);
467
+ lines.push(` ),`);
468
+ lines.push(` const SizedBox(height: 8),`);
469
+ lines.push(` const Text(`);
470
+ lines.push(` 'Enter your email and we will send you a reset link.',`);
471
+ lines.push(` textAlign: TextAlign.center,`);
472
+ lines.push(` ),`);
473
+ lines.push(` const SizedBox(height: 32),`);
474
+ lines.push(` TextFormField(`);
475
+ lines.push(` controller: _emailCtrl,`);
476
+ lines.push(` keyboardType: TextInputType.emailAddress,`);
477
+ lines.push(` decoration: const InputDecoration(`);
478
+ lines.push(` labelText: 'Email',`);
479
+ lines.push(` border: OutlineInputBorder(),`);
480
+ lines.push(` prefixIcon: Icon(Icons.email_outlined),`);
481
+ lines.push(` ),`);
482
+ lines.push(` validator: validateEmail,`);
483
+ lines.push(` ),`);
484
+ lines.push(` if (_error != null) ...[`);
485
+ lines.push(` const SizedBox(height: 12),`);
486
+ lines.push(` Text(`);
487
+ lines.push(` _error!,`);
488
+ lines.push(` style: const TextStyle(color: Colors.red),`);
489
+ lines.push(` textAlign: TextAlign.center,`);
490
+ lines.push(` ),`);
491
+ lines.push(` ],`);
492
+ lines.push(` const SizedBox(height: 24),`);
493
+ lines.push(` FilledButton(`);
494
+ lines.push(` onPressed: _loading ? null : _submit,`);
495
+ lines.push(` child: _loading`);
496
+ lines.push(` ? const SizedBox(`);
497
+ lines.push(` height: 20,`);
498
+ lines.push(` width: 20,`);
499
+ lines.push(` child: CircularProgressIndicator(`);
500
+ lines.push(` strokeWidth: 2,`);
501
+ lines.push(` color: Colors.white,`);
502
+ lines.push(` ),`);
503
+ lines.push(` )`);
504
+ lines.push(` : const Text('Send Reset Link'),`);
505
+ lines.push(` ),`);
506
+ lines.push(` ],`);
507
+ lines.push(` ),`);
508
+ lines.push(` ),`);
509
+ lines.push(` ),`);
510
+ lines.push(` ),`);
511
+ lines.push(` ),`);
512
+ lines.push(` );`);
513
+ lines.push(` }`);
514
+ lines.push(`}`);
515
+ files.push({
516
+ path: 'lib/presentation/views/auth/forgot_password_view.dart',
517
+ content: lines.join('\n'),
518
+ category: 'customizable',
519
+ });
520
+ }
521
+ return files;
522
+ }
523
+ //# sourceMappingURL=page-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-auth.js","sourceRoot":"","sources":["../../src/templates/page-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Model, PageDef, GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateBlogPostPage(page: PageDef, model: Model, stateManager: string): GeneratedFile;
3
+ //# sourceMappingURL=page-blog-post.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-blog-post.d.ts","sourceRoot":"","sources":["../../src/templates/page-blog-post.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG/E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAiHrG"}