@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,163 @@
1
+ "use strict";
2
+ // File: underpeaks_codegen/packages/generator-flutter/src/templates/theme.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.generateTheme = generateTheme;
5
+ function hexToColor(hex) {
6
+ const clean = hex.replace('#', '').toUpperCase();
7
+ return `const Color(0xFF${clean})`;
8
+ }
9
+ function fontToGoogleFont(font) {
10
+ const map = {
11
+ 'Inter': 'GoogleFonts.inter()',
12
+ 'Roboto': 'GoogleFonts.roboto()',
13
+ 'Montserrat': 'GoogleFonts.montserrat()',
14
+ 'Lato': 'GoogleFonts.lato()',
15
+ 'Open Sans': 'GoogleFonts.openSans()',
16
+ 'Poppins': 'GoogleFonts.poppins()',
17
+ 'Raleway': 'GoogleFonts.raleway()',
18
+ 'DM Sans': 'GoogleFonts.dmSans()',
19
+ 'Sora': 'GoogleFonts.sora()',
20
+ 'Space Grotesk': 'GoogleFonts.spaceGrotesk()',
21
+ };
22
+ return map[font] ?? 'GoogleFonts.inter()';
23
+ }
24
+ function radiusToDouble(radius) {
25
+ const map = {
26
+ 'none': '0',
27
+ 'sm': '4',
28
+ 'md': '8',
29
+ 'lg': '12',
30
+ 'xl': '16',
31
+ 'full': '999',
32
+ };
33
+ return map[radius] ?? '8';
34
+ }
35
+ function generateTheme(theme) {
36
+ const c = theme.colours;
37
+ const t = theme.typography;
38
+ const s = theme.spacing;
39
+ const primary = hexToColor(c['primary'] ?? '#000000');
40
+ const onPrimary = hexToColor(c['primary-fg'] ?? '#ffffff');
41
+ const secondary = hexToColor(c['secondary'] ?? '#404040');
42
+ const background = hexToColor(c['background'] ?? '#ffffff');
43
+ const surface = hexToColor(c['surface'] ?? '#ffffff');
44
+ const error = hexToColor(c['danger'] ?? '#ef4444');
45
+ const radius = radiusToDouble(s.radius);
46
+ const headFont = fontToGoogleFont(t.headingFont);
47
+ const bodyFont = fontToGoogleFont(t.bodyFont);
48
+ const lines = [];
49
+ lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
50
+ lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
51
+ lines.push(`// Regenerate: nxf generate flutter`);
52
+ lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
53
+ lines.push(``);
54
+ lines.push(`import 'package:flutter/material.dart';`);
55
+ lines.push(`import 'package:google_fonts/google_fonts.dart';`);
56
+ lines.push(``);
57
+ lines.push(`class AppTheme {`);
58
+ lines.push(` AppTheme._();`);
59
+ lines.push(``);
60
+ lines.push(` // ── Colours ─────────────────────────────────────────────────────────────`);
61
+ lines.push(``);
62
+ lines.push(` static const primary = ${primary};`);
63
+ lines.push(` static const onPrimary = ${onPrimary};`);
64
+ lines.push(` static const secondary = ${secondary};`);
65
+ lines.push(` static const background = ${background};`);
66
+ lines.push(` static const surface = ${surface};`);
67
+ lines.push(` static const error = ${error};`);
68
+ lines.push(``);
69
+ lines.push(` // ── Radius ──────────────────────────────────────────────────────────────`);
70
+ lines.push(``);
71
+ lines.push(` static const double borderRadius = ${radius};`);
72
+ lines.push(``);
73
+ lines.push(` // ── Light theme ─────────────────────────────────────────────────────────`);
74
+ lines.push(``);
75
+ lines.push(` static ThemeData get light => ThemeData(`);
76
+ lines.push(` useMaterial3: true,`);
77
+ lines.push(` colorScheme: ColorScheme.fromSeed(`);
78
+ lines.push(` seedColor: primary,`);
79
+ lines.push(` primary: primary,`);
80
+ lines.push(` onPrimary: onPrimary,`);
81
+ lines.push(` secondary: secondary,`);
82
+ lines.push(` background: background,`);
83
+ lines.push(` surface: surface,`);
84
+ lines.push(` error: error,`);
85
+ lines.push(` brightness: Brightness.light,`);
86
+ lines.push(` ),`);
87
+ lines.push(` textTheme: _textTheme,`);
88
+ lines.push(` appBarTheme: AppBarTheme(`);
89
+ lines.push(` backgroundColor: primary,`);
90
+ lines.push(` foregroundColor: onPrimary,`);
91
+ lines.push(` elevation: 0,`);
92
+ lines.push(` titleTextStyle: ${headFont}.copyWith(`);
93
+ lines.push(` color: onPrimary,`);
94
+ lines.push(` fontSize: 18,`);
95
+ lines.push(` fontWeight: FontWeight.w600,`);
96
+ lines.push(` ),`);
97
+ lines.push(` ),`);
98
+ lines.push(` elevatedButtonTheme: ElevatedButtonThemeData(`);
99
+ lines.push(` style: ElevatedButton.styleFrom(`);
100
+ lines.push(` backgroundColor: primary,`);
101
+ lines.push(` foregroundColor: onPrimary,`);
102
+ lines.push(` shape: RoundedRectangleBorder(`);
103
+ lines.push(` borderRadius: BorderRadius.circular(borderRadius),`);
104
+ lines.push(` ),`);
105
+ lines.push(` ),`);
106
+ lines.push(` ),`);
107
+ lines.push(` filledButtonTheme: FilledButtonThemeData(`);
108
+ lines.push(` style: FilledButton.styleFrom(`);
109
+ lines.push(` backgroundColor: primary,`);
110
+ lines.push(` foregroundColor: onPrimary,`);
111
+ lines.push(` minimumSize: const Size(double.infinity, 48),`);
112
+ lines.push(` shape: RoundedRectangleBorder(`);
113
+ lines.push(` borderRadius: BorderRadius.circular(borderRadius),`);
114
+ lines.push(` ),`);
115
+ lines.push(` ),`);
116
+ lines.push(` ),`);
117
+ lines.push(` inputDecorationTheme: InputDecorationTheme(`);
118
+ lines.push(` border: OutlineInputBorder(`);
119
+ lines.push(` borderRadius: BorderRadius.circular(borderRadius),`);
120
+ lines.push(` ),`);
121
+ lines.push(` focusedBorder: OutlineInputBorder(`);
122
+ lines.push(` borderRadius: BorderRadius.circular(borderRadius),`);
123
+ lines.push(` borderSide: const BorderSide(color: primary, width: 2),`);
124
+ lines.push(` ),`);
125
+ lines.push(` ),`);
126
+ lines.push(` cardTheme: CardTheme(`);
127
+ lines.push(` elevation: 2,`);
128
+ lines.push(` shape: RoundedRectangleBorder(`);
129
+ lines.push(` borderRadius: BorderRadius.circular(borderRadius),`);
130
+ lines.push(` ),`);
131
+ lines.push(` ),`);
132
+ lines.push(` );`);
133
+ lines.push(``);
134
+ lines.push(` // ── Dark theme ──────────────────────────────────────────────────────────`);
135
+ lines.push(``);
136
+ lines.push(` static ThemeData get dark => light.copyWith(`);
137
+ lines.push(` colorScheme: ColorScheme.fromSeed(`);
138
+ lines.push(` seedColor: primary,`);
139
+ lines.push(` primary: primary,`);
140
+ lines.push(` onPrimary: onPrimary,`);
141
+ lines.push(` brightness: Brightness.dark,`);
142
+ lines.push(` ),`);
143
+ lines.push(` );`);
144
+ lines.push(``);
145
+ lines.push(` // ── Text theme ──────────────────────────────────────────────────────────`);
146
+ lines.push(``);
147
+ lines.push(` static TextTheme get _textTheme => TextTheme(`);
148
+ lines.push(` headlineLarge: ${headFont}.copyWith(fontSize: 32, fontWeight: FontWeight.bold),`);
149
+ lines.push(` headlineMedium: ${headFont}.copyWith(fontSize: 24, fontWeight: FontWeight.bold),`);
150
+ lines.push(` headlineSmall: ${headFont}.copyWith(fontSize: 20, fontWeight: FontWeight.w600),`);
151
+ lines.push(` bodyLarge: ${bodyFont}.copyWith(fontSize: 16),`);
152
+ lines.push(` bodyMedium: ${bodyFont}.copyWith(fontSize: 14),`);
153
+ lines.push(` bodySmall: ${bodyFont}.copyWith(fontSize: 12),`);
154
+ lines.push(` labelMedium: ${bodyFont}.copyWith(fontSize: 12, fontWeight: FontWeight.w500),`);
155
+ lines.push(` );`);
156
+ lines.push(`}`);
157
+ return {
158
+ path: 'lib/generated/theme/app_theme.g.dart',
159
+ content: lines.join('\n'),
160
+ category: 'generated',
161
+ };
162
+ }
163
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/templates/theme.ts"],"names":[],"mappings":";AAAA,6EAA6E;;AAqC7E,sCAkIC;AAnKD,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAChD,OAAO,mBAAmB,KAAK,GAAG,CAAA;AACpC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,MAAM,GAAG,GAA2B;QAClC,OAAO,EAAU,qBAAqB;QACtC,QAAQ,EAAS,sBAAsB;QACvC,YAAY,EAAK,0BAA0B;QAC3C,MAAM,EAAW,oBAAoB;QACrC,WAAW,EAAM,wBAAwB;QACzC,SAAS,EAAQ,uBAAuB;QACxC,SAAS,EAAQ,uBAAuB;QACxC,SAAS,EAAQ,sBAAsB;QACvC,MAAM,EAAW,oBAAoB;QACrC,eAAe,EAAE,4BAA4B;KAC9C,CAAA;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAA;AAC3C,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,GAAG;QACX,IAAI,EAAI,GAAG;QACX,IAAI,EAAI,GAAG;QACX,IAAI,EAAI,IAAI;QACZ,IAAI,EAAI,IAAI;QACZ,MAAM,EAAE,KAAK;KACd,CAAA;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAA;AAC3B,CAAC;AAED,SAAgB,aAAa,CAAC,KAAgB;IAC5C,MAAM,CAAC,GAAU,KAAK,CAAC,OAAO,CAAA;IAC9B,MAAM,CAAC,GAAU,KAAK,CAAC,UAAU,CAAA;IACjC,MAAM,CAAC,GAAU,KAAK,CAAC,OAAO,CAAA;IAC9B,MAAM,OAAO,GAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAO,SAAS,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAK,SAAS,CAAC,CAAA;IAC1D,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAO,SAAS,CAAC,CAAA;IACzD,MAAM,KAAK,GAAM,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAS,SAAS,CAAC,CAAA;IAC1D,MAAM,MAAM,GAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAE7C,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACrD,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAC9B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+BAA+B,OAAO,GAAG,CAAC,CAAA;IACrD,KAAK,CAAC,IAAI,CAAC,+BAA+B,SAAS,GAAG,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,+BAA+B,SAAS,GAAG,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,+BAA+B,UAAU,GAAG,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,+BAA+B,OAAO,GAAG,CAAC,CAAA;IACrD,KAAK,CAAC,IAAI,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAA;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,wCAAwC,MAAM,GAAG,CAAC,CAAA;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACrD,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAC1C,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAC1C,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAC3C,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAC3C,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAC7C,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IACvC,KAAK,CAAC,IAAI,CAAC,0BAA0B,QAAQ,YAAY,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAC5C,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACrC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAClD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;IAC/D,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAA;IAC3D,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAClD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IACvE,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACxB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;IAC7D,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;IACxE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;IACxE,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;IAC/E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;IACvC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACjC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAClD,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;IACxE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACpD,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACxC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;IAC1C,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACpB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;IAC7D,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,uDAAuD,CAAC,CAAA;IAClG,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,uDAAuD,CAAC,CAAA;IAClG,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,uDAAuD,CAAC,CAAA;IAClG,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,0BAA0B,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,0BAA0B,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,0BAA0B,CAAC,CAAA;IACrE,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,uDAAuD,CAAC,CAAA;IAClG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAM,sCAAsC;QAChD,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateValidators(): GeneratedFile;
3
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/templates/validators.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,kBAAkB,IAAI,aAAa,CAkClD"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ // File: underpeaks_codegen/packages/generator-flutter/src/templates/validators.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.generateValidators = generateValidators;
5
+ function generateValidators() {
6
+ const lines = [];
7
+ lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
8
+ lines.push(`// Form validators — you own this file, edit the rules to suit your app.`);
9
+ lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
10
+ lines.push(``);
11
+ lines.push(`final _emailRegex = RegExp(r"^[\\w.+-]+@[\\w-]+\\.[\\w.-]+$");`);
12
+ lines.push(``);
13
+ lines.push(`String? validateEmail(String? v) {`);
14
+ lines.push(` final value = (v ?? '').trim();`);
15
+ lines.push(` if (value.isEmpty) return 'Email is required';`);
16
+ lines.push(` if (!_emailRegex.hasMatch(value)) return 'Enter a valid email address';`);
17
+ lines.push(` return null;`);
18
+ lines.push(`}`);
19
+ lines.push(``);
20
+ lines.push(`/// Signup / reset only. Sign-in checks presence only — existing`);
21
+ lines.push(`/// accounts may predate this rule.`);
22
+ lines.push(`String? validatePassword(String? v) {`);
23
+ lines.push(` final value = v ?? '';`);
24
+ lines.push(` if (value.isEmpty) return 'Password is required';`);
25
+ lines.push(` if (value.length < 8) return 'Must be at least 8 characters';`);
26
+ lines.push(` if (!value.contains(RegExp(r'[A-Z]'))) return 'Must include an uppercase letter';`);
27
+ lines.push(` if (!value.contains(RegExp(r'[a-z]'))) return 'Must include a lowercase letter';`);
28
+ lines.push(` if (!value.contains(RegExp(r'[0-9]'))) return 'Must include a number';`);
29
+ lines.push(` if (!value.contains(RegExp(r'[^A-Za-z0-9]'))) return 'Must include a symbol';`);
30
+ lines.push(` return null;`);
31
+ lines.push(`}`);
32
+ return {
33
+ path: 'lib/config/validators.dart',
34
+ content: lines.join('\n'),
35
+ category: 'customizable',
36
+ };
37
+ }
38
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/templates/validators.ts"],"names":[],"mappings":";AAAA,kFAAkF;;AAIlF,gDAkCC;AAlCD,SAAgB,kBAAkB;IAChC,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACvD,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAA;IACtF,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IAC5E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IAChD,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IAC/C,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAC9D,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAA;IACvF,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAA;IAC9E,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACjD,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACnD,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;IACjE,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC7E,KAAK,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAA;IACjG,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAA;IAChG,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAA;IACtF,KAAK,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAA;IAC7F,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAM,4BAA4B;QACtC,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,cAAc;KACzB,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Model, GeneratedFile } from '@underpeaks/generator-core';
2
+ export declare function generateCardWidget(model: Model): GeneratedFile;
3
+ //# sourceMappingURL=widget-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-card.d.ts","sourceRoot":"","sources":["../../src/templates/widget-card.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAQtE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAuF9D"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ // File: underpeaks_codegen/packages/generator-flutter/src/templates/widget-card.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.generateCardWidget = generateCardWidget;
5
+ const generator_core_1 = require("@underpeaks/generator-core");
6
+ function generateCardWidget(model) {
7
+ const className = (0, generator_core_1.modelToClassName)(model.name);
8
+ const fileName = (0, generator_core_1.modelToFileName)(model.name);
9
+ const pk = (0, generator_core_1.getPrimaryKey)(model);
10
+ const pkName = pk?.name ?? 'id';
11
+ const columns = (0, generator_core_1.getVisibleColumns)(model).slice(0, 3);
12
+ const titleField = columns[0]?.name ?? pkName;
13
+ const subField = columns[1]?.name ?? null;
14
+ const lines = [];
15
+ lines.push(`// GENERATED BY UNDERPEAKS CODEGEN v1.0.0`);
16
+ lines.push(`// Widget: ${className}Card`);
17
+ lines.push(`// Presentation layer — generated once, you own this file.`);
18
+ lines.push(`// Regenerate: nxf generate flutter --include-views`);
19
+ lines.push(`// ignore_for_file: lines_longer_than_80_chars`);
20
+ lines.push(``);
21
+ lines.push(`import 'package:flutter/material.dart';`);
22
+ lines.push(`import '../../generated/models/${fileName}.g.dart';`);
23
+ lines.push(``);
24
+ lines.push(`class ${className}Card extends StatelessWidget {`);
25
+ lines.push(` final ${className} item;`);
26
+ lines.push(` final VoidCallback onTap;`);
27
+ lines.push(` final VoidCallback? onDelete;`);
28
+ lines.push(``);
29
+ lines.push(` const ${className}Card({`);
30
+ lines.push(` super.key,`);
31
+ lines.push(` required this.item,`);
32
+ lines.push(` required this.onTap,`);
33
+ lines.push(` this.onDelete,`);
34
+ lines.push(` });`);
35
+ lines.push(``);
36
+ lines.push(` @override`);
37
+ lines.push(` Widget build(BuildContext context) {`);
38
+ lines.push(` return Card(`);
39
+ lines.push(` clipBehavior: Clip.antiAlias,`);
40
+ lines.push(` child: InkWell(`);
41
+ lines.push(` onTap: onTap,`);
42
+ lines.push(` child: Padding(`);
43
+ lines.push(` padding: const EdgeInsets.all(16),`);
44
+ lines.push(` child: Row(`);
45
+ lines.push(` children: [`);
46
+ lines.push(` Expanded(`);
47
+ lines.push(` child: Column(`);
48
+ lines.push(` crossAxisAlignment: CrossAxisAlignment.start,`);
49
+ lines.push(` children: [`);
50
+ lines.push(` Text(`);
51
+ lines.push(` item.${titleField}?.toString() ?? '—',`);
52
+ lines.push(` style: Theme.of(context).textTheme.titleMedium?.copyWith(`);
53
+ lines.push(` fontWeight: FontWeight.w600,`);
54
+ lines.push(` ),`);
55
+ lines.push(` maxLines: 2,`);
56
+ lines.push(` overflow: TextOverflow.ellipsis,`);
57
+ lines.push(` ),`);
58
+ if (subField) {
59
+ lines.push(` const SizedBox(height: 4),`);
60
+ lines.push(` Text(`);
61
+ lines.push(` item.${subField}?.toString() ?? '',`);
62
+ lines.push(` style: Theme.of(context).textTheme.bodySmall?.copyWith(`);
63
+ lines.push(` color: Colors.grey,`);
64
+ lines.push(` ),`);
65
+ lines.push(` maxLines: 1,`);
66
+ lines.push(` overflow: TextOverflow.ellipsis,`);
67
+ lines.push(` ),`);
68
+ }
69
+ lines.push(` ],`);
70
+ lines.push(` ),`);
71
+ lines.push(` ),`);
72
+ lines.push(` if (onDelete != null)`);
73
+ lines.push(` IconButton(`);
74
+ lines.push(` icon: const Icon(Icons.delete_outline, color: Colors.red),`);
75
+ lines.push(` onPressed: onDelete,`);
76
+ lines.push(` iconSize: 20,`);
77
+ lines.push(` ),`);
78
+ lines.push(` ],`);
79
+ lines.push(` ),`);
80
+ lines.push(` ),`);
81
+ lines.push(` ),`);
82
+ lines.push(` );`);
83
+ lines.push(` }`);
84
+ lines.push(`}`);
85
+ return {
86
+ path: `lib/presentation/widgets/${fileName}_card.dart`,
87
+ content: lines.join('\n'),
88
+ category: 'customizable',
89
+ };
90
+ }
91
+ //# sourceMappingURL=widget-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-card.js","sourceRoot":"","sources":["../../src/templates/widget-card.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@underpeaks/generator-flutter",
3
+ "version": "1.0.19",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "dev": "tsc --watch",
12
+ "clean": "rm -rf dist"
13
+ },
14
+ "dependencies": {
15
+ "@underpeaks/generator-core": "1.0.0"
16
+ },
17
+ "devDependencies": {
18
+ "typescript": "^5.0.0",
19
+ "@types/node": "^20.0.0"
20
+ },
21
+ "publishConfig": {
22
+ "access": "public"
23
+ }
24
+ }