@underpeaks/generator-flutter 1.0.33 → 1.0.36
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.
- package/dist/adapters/bloc/bloc.js +1 -1
- package/dist/adapters/provider/provider.js +1 -1
- package/dist/adapters/riverpod/provider.js +1 -1
- package/dist/generator.d.ts +0 -10
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +75 -45
- package/dist/generator.js.map +1 -1
- package/dist/templates/env.d.ts.map +1 -1
- package/dist/templates/env.js +7 -0
- package/dist/templates/env.js.map +1 -1
- package/dist/templates/main.d.ts.map +1 -1
- package/dist/templates/main.js +3 -4
- package/dist/templates/main.js.map +1 -1
- package/dist/templates/model.d.ts.map +1 -1
- package/dist/templates/model.js +36 -73
- package/dist/templates/model.js.map +1 -1
- package/dist/templates/navigation.d.ts +1 -0
- package/dist/templates/navigation.d.ts.map +1 -1
- package/dist/templates/navigation.js +27 -26
- package/dist/templates/navigation.js.map +1 -1
- package/dist/templates/page-blog-post.d.ts +2 -2
- package/dist/templates/page-blog-post.d.ts.map +1 -1
- package/dist/templates/page-blog-post.js +49 -2
- package/dist/templates/page-blog-post.js.map +1 -1
- package/dist/templates/page-calendar.d.ts +2 -2
- package/dist/templates/page-calendar.d.ts.map +1 -1
- package/dist/templates/page-calendar.js +50 -2
- package/dist/templates/page-calendar.js.map +1 -1
- package/dist/templates/page-cart.d.ts +2 -2
- package/dist/templates/page-cart.d.ts.map +1 -1
- package/dist/templates/page-cart.js +32 -4
- package/dist/templates/page-cart.js.map +1 -1
- package/dist/templates/page-checkout.d.ts +2 -2
- package/dist/templates/page-checkout.d.ts.map +1 -1
- package/dist/templates/page-checkout.js +22 -2
- package/dist/templates/page-checkout.js.map +1 -1
- package/dist/templates/page-contact.d.ts +1 -0
- package/dist/templates/page-contact.js +1 -0
- package/dist/templates/page-contact.js.map +1 -1
- package/dist/templates/page-custom.d.ts +2 -2
- package/dist/templates/page-custom.d.ts.map +1 -1
- package/dist/templates/page-custom.js +50 -2
- package/dist/templates/page-custom.js.map +1 -1
- package/dist/templates/page-dashboard.d.ts +2 -2
- package/dist/templates/page-dashboard.d.ts.map +1 -1
- package/dist/templates/page-dashboard.js +102 -60
- package/dist/templates/page-dashboard.js.map +1 -1
- package/dist/templates/page-detail.d.ts +2 -2
- package/dist/templates/page-detail.d.ts.map +1 -1
- package/dist/templates/page-detail.js +188 -18
- package/dist/templates/page-detail.js.map +1 -1
- package/dist/templates/page-feed.d.ts +2 -2
- package/dist/templates/page-feed.d.ts.map +1 -1
- package/dist/templates/page-feed.js +40 -3
- package/dist/templates/page-feed.js.map +1 -1
- package/dist/templates/page-form.d.ts.map +1 -1
- package/dist/templates/page-form.js +779 -72
- package/dist/templates/page-form.js.map +1 -1
- package/dist/templates/page-gallery.d.ts +2 -2
- package/dist/templates/page-gallery.d.ts.map +1 -1
- package/dist/templates/page-gallery.js +61 -4
- package/dist/templates/page-gallery.js.map +1 -1
- package/dist/templates/page-invoice.d.ts +2 -2
- package/dist/templates/page-invoice.d.ts.map +1 -1
- package/dist/templates/page-invoice.js +45 -2
- package/dist/templates/page-invoice.js.map +1 -1
- package/dist/templates/page-kanban.d.ts +2 -2
- package/dist/templates/page-kanban.d.ts.map +1 -1
- package/dist/templates/page-kanban.js +112 -55
- package/dist/templates/page-kanban.js.map +1 -1
- package/dist/templates/page-landing-hero-cta.d.ts +2 -2
- package/dist/templates/page-landing-hero-cta.d.ts.map +1 -1
- package/dist/templates/page-landing-hero-cta.js +55 -4
- package/dist/templates/page-landing-hero-cta.js.map +1 -1
- package/dist/templates/page-landing-hero-features.d.ts +2 -2
- package/dist/templates/page-landing-hero-features.d.ts.map +1 -1
- package/dist/templates/page-landing-hero-features.js +32 -2
- package/dist/templates/page-landing-hero-features.js.map +1 -1
- package/dist/templates/page-landing-hero-pricing.d.ts +2 -2
- package/dist/templates/page-landing-hero-pricing.d.ts.map +1 -1
- package/dist/templates/page-landing-hero-pricing.js +32 -2
- package/dist/templates/page-landing-hero-pricing.js.map +1 -1
- package/dist/templates/page-landing-minimal.d.ts +2 -2
- package/dist/templates/page-landing-minimal.d.ts.map +1 -1
- package/dist/templates/page-landing-minimal.js +32 -2
- package/dist/templates/page-landing-minimal.js.map +1 -1
- package/dist/templates/page-list.d.ts +2 -2
- package/dist/templates/page-list.d.ts.map +1 -1
- package/dist/templates/page-list.js +72 -6
- package/dist/templates/page-list.js.map +1 -1
- package/dist/templates/page-messages.d.ts +2 -2
- package/dist/templates/page-messages.d.ts.map +1 -1
- package/dist/templates/page-messages.js +27 -2
- package/dist/templates/page-messages.js.map +1 -1
- package/dist/templates/page-onboarding.d.ts +2 -2
- package/dist/templates/page-onboarding.d.ts.map +1 -1
- package/dist/templates/page-onboarding.js +48 -3
- package/dist/templates/page-onboarding.js.map +1 -1
- package/dist/templates/page-otp.d.ts +2 -2
- package/dist/templates/page-otp.d.ts.map +1 -1
- package/dist/templates/page-otp.js +31 -3
- package/dist/templates/page-otp.js.map +1 -1
- package/dist/templates/page-profile.d.ts +2 -2
- package/dist/templates/page-profile.d.ts.map +1 -1
- package/dist/templates/page-profile.js +42 -2
- package/dist/templates/page-profile.js.map +1 -1
- package/dist/templates/page-reset-password.d.ts +2 -2
- package/dist/templates/page-reset-password.d.ts.map +1 -1
- package/dist/templates/page-reset-password.js +18 -2
- package/dist/templates/page-reset-password.js.map +1 -1
- package/dist/templates/page-search.d.ts +2 -2
- package/dist/templates/page-search.d.ts.map +1 -1
- package/dist/templates/page-search.js +63 -21
- package/dist/templates/page-search.js.map +1 -1
- package/dist/templates/page-settings.d.ts +2 -2
- package/dist/templates/page-settings.d.ts.map +1 -1
- package/dist/templates/page-settings.js +43 -5
- package/dist/templates/page-settings.js.map +1 -1
- package/dist/templates/page-splash.d.ts +2 -2
- package/dist/templates/page-splash.d.ts.map +1 -1
- package/dist/templates/page-splash.js +27 -7
- package/dist/templates/page-splash.js.map +1 -1
- package/dist/templates/page-wallet.d.ts +2 -2
- package/dist/templates/page-wallet.d.ts.map +1 -1
- package/dist/templates/page-wallet.js +50 -16
- package/dist/templates/page-wallet.js.map +1 -1
- package/dist/templates/pubspec.d.ts +1 -1
- package/dist/templates/pubspec.d.ts.map +1 -1
- package/dist/templates/pubspec.js +26 -1
- package/dist/templates/pubspec.js.map +1 -1
- package/dist/templates/repository.d.ts.map +1 -1
- package/dist/templates/repository.js +1 -1
- package/dist/templates/repository.js.map +1 -1
- package/dist/templates/widget-card.d.ts +1 -1
- package/dist/templates/widget-card.d.ts.map +1 -1
- package/dist/templates/widget-card.js +84 -39
- package/dist/templates/widget-card.js.map +1 -1
- package/dist/widgets/registry-display.d.ts.map +1 -1
- package/dist/widgets/registry-display.js +6 -5
- package/dist/widgets/registry-display.js.map +1 -1
- package/package.json +1 -1
|
@@ -123,7 +123,7 @@ class ${className}State {
|
|
|
123
123
|
// ignore_for_file: lines_longer_than_80_chars
|
|
124
124
|
|
|
125
125
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
126
|
-
import '../models/${fileName}.
|
|
126
|
+
import '../models/${fileName}.dart';
|
|
127
127
|
import '../repositories/${fileName}_repository.g.dart';
|
|
128
128
|
|
|
129
129
|
part '${fileName}_event.g.dart';
|
|
@@ -13,7 +13,7 @@ function generateProviderNotifier(model) {
|
|
|
13
13
|
// ignore_for_file: lines_longer_than_80_chars
|
|
14
14
|
|
|
15
15
|
import 'package:flutter/foundation.dart';
|
|
16
|
-
import '../models/${fileName}.
|
|
16
|
+
import '../models/${fileName}.dart';
|
|
17
17
|
import '../repositories/${fileName}_repository.g.dart';
|
|
18
18
|
|
|
19
19
|
class ${className}Notifier extends ChangeNotifier {
|
|
@@ -15,7 +15,7 @@ function generateRiverpodProvider(model) {
|
|
|
15
15
|
// ignore_for_file: lines_longer_than_80_chars
|
|
16
16
|
|
|
17
17
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
18
|
-
import '../models/${fileName}.
|
|
18
|
+
import '../models/${fileName}.dart';
|
|
19
19
|
import '../repositories/${fileName}_repository.g.dart';
|
|
20
20
|
|
|
21
21
|
// ── Repository Provider ───────────────────────────────────────────────────
|
package/dist/generator.d.ts
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
1
|
import type { ProjectData, GeneratedFile } from '@underpeaks/generator-core';
|
|
2
|
-
/**
|
|
3
|
-
* NOTE on widget dedup: this only decides WHICH unique ui_type widgets
|
|
4
|
-
* the project needs (via scanUsedUiTypes) — it always generates all of
|
|
5
|
-
* them fresh, every run. It does NOT know or care whether a developer
|
|
6
|
-
* has hand-edited a widget file on their own machine; the server has no
|
|
7
|
-
* visibility into the local filesystem to know that. That check —
|
|
8
|
-
* "is this file already customized on disk, so don't overwrite it" —
|
|
9
|
-
* lives in the CLI's extraction step instead (generate.ts), which is the
|
|
10
|
-
* only place that can actually see what's on disk.
|
|
11
|
-
*/
|
|
12
2
|
export declare function generateFlutter(data: ProjectData): Promise<{
|
|
13
3
|
files: GeneratedFile[];
|
|
14
4
|
widgetWarnings: {
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAoD5E
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAoD5E,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAAC,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,CAAC,CAyMnI"}
|
package/dist/generator.js
CHANGED
|
@@ -52,28 +52,15 @@ const provider_1 = require("./adapters/riverpod/provider");
|
|
|
52
52
|
const bloc_1 = require("./adapters/bloc/bloc");
|
|
53
53
|
const provider_2 = require("./adapters/provider/provider");
|
|
54
54
|
const validators_1 = require("./templates/validators");
|
|
55
|
-
/**
|
|
56
|
-
* NOTE on widget dedup: this only decides WHICH unique ui_type widgets
|
|
57
|
-
* the project needs (via scanUsedUiTypes) — it always generates all of
|
|
58
|
-
* them fresh, every run. It does NOT know or care whether a developer
|
|
59
|
-
* has hand-edited a widget file on their own machine; the server has no
|
|
60
|
-
* visibility into the local filesystem to know that. That check —
|
|
61
|
-
* "is this file already customized on disk, so don't overwrite it" —
|
|
62
|
-
* lives in the CLI's extraction step instead (generate.ts), which is the
|
|
63
|
-
* only place that can actually see what's on disk.
|
|
64
|
-
*/
|
|
65
55
|
async function generateFlutter(data) {
|
|
66
56
|
const filtered = (0, generator_core_1.filterProjectData)(data);
|
|
67
57
|
const files = [];
|
|
68
|
-
// ── Widget library (scanned + deduplicated by ui_type — one file per
|
|
69
|
-
// unique type actually used project-wide, never one per field) ────────
|
|
70
58
|
const usage = (0, generator_core_1.scanUsedUiTypes)(filtered.models, filtered.pages);
|
|
71
59
|
const resolved = (0, generator_core_1.resolveRequiredWidgets)(usage, { editRegistry: registry_edit_1.flutterEditRegistry, displayRegistry: registry_display_1.flutterDisplayRegistry });
|
|
72
60
|
files.push(...resolved.files);
|
|
73
61
|
if (resolved.missing.length > 0) {
|
|
74
62
|
console.warn(`[nxf] No widget registered for ui_type(s): ${resolved.missing.join(', ')} — these fields will not render.`);
|
|
75
63
|
}
|
|
76
|
-
// ── Generated layer (always regenerated) ──────────────────────────────────
|
|
77
64
|
for (const model of filtered.models) {
|
|
78
65
|
files.push((0, model_1.generateModel)(model, data.state_manager));
|
|
79
66
|
files.push((0, repository_1.generateRepository)(model, data.state_manager, data.source));
|
|
@@ -92,25 +79,40 @@ async function generateFlutter(data) {
|
|
|
92
79
|
files.push((0, navigation_1.generateNavigation)(filtered.pages, filtered.routes, filtered.models, data.state_manager));
|
|
93
80
|
if (data.theme)
|
|
94
81
|
files.push((0, theme_1.generateTheme)(data.theme));
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
82
|
+
// FIX: generateApiBuilderFlutter now returns null when there are no
|
|
83
|
+
// registered API Builder endpoints (previously always generated an
|
|
84
|
+
// empty custom_endpoints.g.dart shell file) — only push it if it
|
|
85
|
+
// actually produced something.
|
|
86
|
+
// CORE PARITY: API Builder and third-party Integrations are not a Core
|
|
87
|
+
// feature — explicitly gated on source !== 'core' rather than relying
|
|
88
|
+
// on data.endpoints/data.integrations happening to be empty for Core
|
|
89
|
+
// projects. If Core's own ProjectData assembly ever changes, this stays
|
|
90
|
+
// safe regardless.
|
|
91
|
+
if (data.source !== 'core') {
|
|
92
|
+
const apiBuilderFile = (0, api_builder_1.generateApiBuilderFlutter)(data.endpoints ?? []);
|
|
93
|
+
if (apiBuilderFile)
|
|
94
|
+
files.push(apiBuilderFile);
|
|
95
|
+
if (data.integrations && data.integrations.length > 0) {
|
|
96
|
+
files.push(...(0, index_1.generateFlutterIntegrations)(data.integrations));
|
|
97
|
+
}
|
|
98
98
|
}
|
|
99
99
|
files.push((0, storage_1.generateStorageFlutter)({}));
|
|
100
|
-
// ── Presentation layer (generated once, user owns) ────────────────────────
|
|
101
100
|
for (const page of filtered.pages) {
|
|
102
101
|
const model = filtered.models.find((m) => m.sm_id === page.model_id);
|
|
103
102
|
switch (page.template_type) {
|
|
104
103
|
case 'list':
|
|
105
104
|
case 'grid':
|
|
106
105
|
if (model) {
|
|
107
|
-
|
|
108
|
-
files.push((0,
|
|
106
|
+
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
107
|
+
files.push((0, page_list_1.generateListPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
108
|
+
files.push((0, widget_card_1.generateCardWidget)(model, data.project_type));
|
|
109
109
|
}
|
|
110
110
|
break;
|
|
111
111
|
case 'detail':
|
|
112
|
+
// NAVIGATOR: routes + pages now passed through so back/button
|
|
113
|
+
// triggers on this page can be wired to real generated links.
|
|
112
114
|
if (model)
|
|
113
|
-
files.push((0, page_detail_1.generateDetailPage)(page, model, data.state_manager));
|
|
115
|
+
files.push((0, page_detail_1.generateDetailPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
114
116
|
break;
|
|
115
117
|
case 'form':
|
|
116
118
|
case 'contact':
|
|
@@ -118,83 +120,106 @@ async function generateFlutter(data) {
|
|
|
118
120
|
files.push((0, page_form_1.generateFormPage)(page, model, data.state_manager));
|
|
119
121
|
break;
|
|
120
122
|
case 'gallery':
|
|
123
|
+
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
121
124
|
if (model)
|
|
122
|
-
files.push((0, page_gallery_1.generateGalleryPage)(page, model, data.state_manager));
|
|
125
|
+
files.push((0, page_gallery_1.generateGalleryPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
123
126
|
break;
|
|
124
127
|
case 'dashboard':
|
|
128
|
+
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
125
129
|
if (model)
|
|
126
|
-
files.push((0, page_dashboard_1.generateDashboardPage)(page, model, data.state_manager));
|
|
130
|
+
files.push((0, page_dashboard_1.generateDashboardPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
127
131
|
break;
|
|
128
132
|
case 'profile':
|
|
133
|
+
// NAVIGATOR: routes + pages passed through for back/button triggers.
|
|
129
134
|
if (model)
|
|
130
|
-
files.push((0, page_profile_1.generateProfilePage)(page, model, data.state_manager));
|
|
135
|
+
files.push((0, page_profile_1.generateProfilePage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
131
136
|
break;
|
|
132
137
|
case 'blog-post':
|
|
138
|
+
// NAVIGATOR: routes + pages passed through for back/button triggers.
|
|
133
139
|
if (model)
|
|
134
|
-
files.push((0, page_blog_post_1.generateBlogPostPage)(page, model, data.state_manager));
|
|
140
|
+
files.push((0, page_blog_post_1.generateBlogPostPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
135
141
|
break;
|
|
136
142
|
case 'cart':
|
|
143
|
+
// NAVIGATOR: routes passed through for back/button trigger overrides.
|
|
137
144
|
if (model)
|
|
138
|
-
files.push((0, page_cart_1.generateCartPage)(page, model, data.state_manager, filtered.pages));
|
|
145
|
+
files.push((0, page_cart_1.generateCartPage)(page, model, data.state_manager, filtered.pages, filtered.routes));
|
|
139
146
|
break;
|
|
140
147
|
case 'invoice':
|
|
148
|
+
// NAVIGATOR: routes + pages passed through for back/button triggers.
|
|
141
149
|
if (model)
|
|
142
|
-
files.push((0, page_invoice_1.generateInvoicePage)(page, model, data.state_manager));
|
|
150
|
+
files.push((0, page_invoice_1.generateInvoicePage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
143
151
|
break;
|
|
144
152
|
case 'feed':
|
|
153
|
+
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
145
154
|
if (model)
|
|
146
|
-
files.push((0, page_feed_1.generateFeedPage)(page, model, data.state_manager));
|
|
155
|
+
files.push((0, page_feed_1.generateFeedPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
147
156
|
break;
|
|
148
157
|
case 'search':
|
|
158
|
+
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
149
159
|
if (model)
|
|
150
|
-
files.push((0, page_search_1.generateSearchPage)(page, model, data.state_manager));
|
|
160
|
+
files.push((0, page_search_1.generateSearchPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
151
161
|
break;
|
|
152
162
|
case 'kanban':
|
|
163
|
+
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
153
164
|
if (model)
|
|
154
|
-
files.push((0, page_kanban_1.generateKanbanPage)(page, model, data.state_manager));
|
|
165
|
+
files.push((0, page_kanban_1.generateKanbanPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
155
166
|
break;
|
|
156
167
|
case 'calendar':
|
|
168
|
+
// NAVIGATOR: routes + pages passed through for card-tap/button triggers.
|
|
157
169
|
if (model)
|
|
158
|
-
files.push((0, page_calendar_1.generateCalendarPage)(page, model, data.state_manager));
|
|
170
|
+
files.push((0, page_calendar_1.generateCalendarPage)(page, model, data.state_manager, filtered.routes, filtered.pages));
|
|
159
171
|
break;
|
|
160
172
|
case 'checkout':
|
|
161
|
-
|
|
173
|
+
// NAVIGATOR: routes + pages passed through to override the
|
|
174
|
+
// post-order redirect (was a hardcoded '/orders' guess).
|
|
175
|
+
files.push((0, page_checkout_1.generateCheckoutPage)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
162
176
|
break;
|
|
163
177
|
case 'wallet':
|
|
164
|
-
|
|
178
|
+
// NAVIGATOR: routes + pages passed through for label-matched button routes.
|
|
179
|
+
files.push((0, page_wallet_1.generateWalletPage)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
165
180
|
break;
|
|
166
181
|
case 'chat':
|
|
167
182
|
files.push((0, page_chat_1.generateChatPage)(page, data.state_manager));
|
|
168
183
|
break;
|
|
169
184
|
case 'messages':
|
|
170
|
-
|
|
185
|
+
// NAVIGATOR: routes + pages passed through for label-matched button route.
|
|
186
|
+
files.push((0, page_messages_1.generateMessagesPage)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
171
187
|
break;
|
|
172
188
|
case 'map':
|
|
173
189
|
files.push((0, page_map_1.generateMapPage)(page, data.state_manager));
|
|
174
190
|
break;
|
|
175
191
|
case 'settings':
|
|
176
|
-
|
|
192
|
+
// NAVIGATOR: routes + pages passed through for label-matched button routes.
|
|
193
|
+
files.push((0, page_settings_1.generateSettingsPage)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
177
194
|
break;
|
|
178
195
|
case 'splash':
|
|
179
|
-
|
|
196
|
+
// NAVIGATOR: routes + pages passed through for post-auth-check overrides.
|
|
197
|
+
files.push((0, page_splash_1.generateSplashPage)(page, data.state_manager, filtered.pages, filtered.routes));
|
|
180
198
|
break;
|
|
181
199
|
case 'onboarding':
|
|
182
|
-
|
|
200
|
+
// NAVIGATOR: routes + pages passed through for button-trigger override.
|
|
201
|
+
files.push((0, page_onboarding_1.generateOnboardingPage)(page, data.state_manager, filtered.pages, filtered.routes));
|
|
183
202
|
break;
|
|
184
203
|
case 'custom':
|
|
185
|
-
|
|
204
|
+
// NAVIGATOR: routes + pages passed through for optional back/button.
|
|
205
|
+
files.push((0, page_custom_1.generateCustomPage)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
186
206
|
break;
|
|
187
207
|
case 'landing-hero-cta':
|
|
188
|
-
|
|
208
|
+
// NAVIGATOR: routes + pages passed through — fixes the previously
|
|
209
|
+
// no-op "Get Started" button when a button-trigger route exists.
|
|
210
|
+
files.push((0, page_landing_hero_cta_1.generateLandingHeroCta)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
189
211
|
break;
|
|
190
212
|
case 'landing-hero-features':
|
|
191
|
-
|
|
213
|
+
// NAVIGATOR: routes + pages passed through for swipe trigger.
|
|
214
|
+
files.push((0, page_landing_hero_features_1.generateLandingHeroFeatures)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
192
215
|
break;
|
|
193
216
|
case 'landing-hero-pricing':
|
|
194
|
-
|
|
217
|
+
// NAVIGATOR: routes + pages passed through for swipe trigger.
|
|
218
|
+
files.push((0, page_landing_hero_pricing_1.generateLandingHeroPricing)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
195
219
|
break;
|
|
196
220
|
case 'landing-minimal':
|
|
197
|
-
|
|
221
|
+
// NAVIGATOR: routes + pages passed through for swipe trigger.
|
|
222
|
+
files.push((0, page_landing_minimal_1.generateLandingMinimal)(page, data.state_manager, filtered.routes, filtered.pages));
|
|
198
223
|
break;
|
|
199
224
|
case 'sign_in':
|
|
200
225
|
case 'sign_up':
|
|
@@ -202,22 +227,27 @@ async function generateFlutter(data) {
|
|
|
202
227
|
files.push(...(0, page_auth_1.generateAuthPages)(page, data.state_manager, filtered.pages));
|
|
203
228
|
break;
|
|
204
229
|
case 'reset_password':
|
|
205
|
-
|
|
230
|
+
// NAVIGATOR: routes + pages passed through for button-trigger override.
|
|
231
|
+
files.push((0, page_reset_password_1.generateResetPasswordPage)(page, data.state_manager, filtered.pages, filtered.routes));
|
|
206
232
|
break;
|
|
207
233
|
case 'otp_request':
|
|
208
234
|
case 'otp_entry':
|
|
209
|
-
|
|
235
|
+
// NAVIGATOR: routes + pages passed through for button-trigger overrides.
|
|
236
|
+
files.push(...(0, page_otp_1.generateOtpPages)(page, data.state_manager, filtered.pages, filtered.routes));
|
|
210
237
|
break;
|
|
211
238
|
}
|
|
212
239
|
}
|
|
213
|
-
// ── Config + root ─────────────────────────────────────────────────────────
|
|
214
240
|
files.push((0, api_config_1.generateApiConfig)());
|
|
215
241
|
files.push((0, env_1.generateEnvTemplate)(data.project_id));
|
|
216
242
|
files.push((0, gitignore_1.generateGitignore)());
|
|
217
243
|
files.push((0, readme_1.generateReadme)(data.project_name));
|
|
218
|
-
|
|
244
|
+
// MAPS: compute project-wide whether any model has a location-input
|
|
245
|
+
// field, so pubspec only pulls in google_maps_flutter when actually needed.
|
|
246
|
+
const needsLocationAnywhere = filtered.models.some((m) => m.schema.columns.some((c) => c.ui_type === 'location-input'));
|
|
247
|
+
files.push((0, pubspec_1.generatePubspec)(data.project_name, data.state_manager, needsLocationAnywhere));
|
|
219
248
|
files.push((0, main_1.generateMain)(data.project_name, filtered.pages, data.state_manager));
|
|
220
249
|
files.push((0, validators_1.generateValidators)());
|
|
250
|
+
files.push((0, generator_core_1.buildManifestFile)(data.project_id, files));
|
|
221
251
|
return {
|
|
222
252
|
files,
|
|
223
253
|
widgetWarnings: { missing: resolved.missing },
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":";AAAA,uEAAuE;;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE/D,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CA8BpE"}
|
package/dist/templates/env.js
CHANGED
|
@@ -18,6 +18,13 @@ function generateEnvTemplate(projectId) {
|
|
|
18
18
|
lines.push(`# Your project API key (Studio/Core → Settings → API Keys)`);
|
|
19
19
|
lines.push(`# Public project identifier — calls still require user sign-in.`);
|
|
20
20
|
lines.push(`NXF_API_KEY=`);
|
|
21
|
+
lines.push(``);
|
|
22
|
+
lines.push(`# Google Maps API key — only required if your project uses a`);
|
|
23
|
+
lines.push(`# location-input field. Get one from https://console.cloud.google.com`);
|
|
24
|
+
lines.push(`# with the Maps SDK, Places API, and Geocoding API enabled.`);
|
|
25
|
+
lines.push(`# NOTE: this key also needs native platform registration that this`);
|
|
26
|
+
lines.push(`# generator does NOT set up for you — see README.md.`);
|
|
27
|
+
lines.push(`GOOGLE_MAPS_API_KEY=`);
|
|
21
28
|
return {
|
|
22
29
|
path: '.env.example',
|
|
23
30
|
content: lines.join('\n'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/templates/env.ts"],"names":[],"mappings":";;AAGA,kDA8BC;AA9BD,SAAgB,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACpE,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAA;IACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;IACtC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;IAC1D,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;IACjF,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC/B,KAAK,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAA;IACzC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;IACxE,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;IAC7E,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAA;IAC1E,KAAK,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAA;IACnF,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;IACzE,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;IAChF,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAClE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IAElC,OAAO;QACL,IAAI,EAAM,cAAc;QACxB,OAAO,EAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,QAAQ,EAAE,MAAM;KACjB,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,YAAY,CAC1B,WAAW,EAAG,MAAM,EACpB,KAAK,EAAS,OAAO,EAAE,EACvB,YAAY,EAAE,MAAM,GACnB,aAAa,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAExE,wBAAgB,YAAY,CAC1B,WAAW,EAAG,MAAM,EACpB,KAAK,EAAS,OAAO,EAAE,EACvB,YAAY,EAAE,MAAM,GACnB,aAAa,CA8Df"}
|
package/dist/templates/main.js
CHANGED
|
@@ -3,10 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.generateMain = generateMain;
|
|
5
5
|
function generateMain(projectName, pages, stateManager) {
|
|
6
|
-
const firstPage = pages.find((p) => ['bottom-nav', 'drawer-nav', 'sidebar-nav'].includes(p.nav_type ?? '')) ?? pages[0];
|
|
7
|
-
const firstRoute = firstPage
|
|
8
|
-
? `'/${firstPage.slug.replace(/^\//, '')}'`
|
|
9
|
-
: `'/'`;
|
|
10
6
|
const lines = [];
|
|
11
7
|
lines.push(`// GENERATED FILE — DO NOT EDIT MANUALLY`);
|
|
12
8
|
lines.push(`// Generated by Underpeaks CodeGen v1.0.0`);
|
|
@@ -47,6 +43,9 @@ function generateMain(projectName, pages, stateManager) {
|
|
|
47
43
|
lines.push(``);
|
|
48
44
|
lines.push(` @override`);
|
|
49
45
|
lines.push(` Widget build(BuildContext context) {`);
|
|
46
|
+
lines.push(` // NOTE: the start route is controlled by appRouter's own`);
|
|
47
|
+
lines.push(` // initialLocation (see generated/navigation/router.g.dart), which is`);
|
|
48
|
+
lines.push(` // built from real nav_settings — not decided here.`);
|
|
50
49
|
lines.push(` return MaterialApp.router(`);
|
|
51
50
|
lines.push(` title: '${projectName}',`);
|
|
52
51
|
lines.push(` theme: AppTheme.light,`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":";AAAA,4EAA4E;;AAI5E,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/templates/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAyBtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa,CAgD/E"}
|
package/dist/templates/model.js
CHANGED
|
@@ -3,100 +3,63 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.generateModel = generateModel;
|
|
5
5
|
const generator_core_1 = require("@underpeaks/generator-core");
|
|
6
|
+
// NOTE: the model source file can no longer be named `${fileName}.g.dart` —
|
|
7
|
+
// build_runner (freezed + json_serializable) generates its own
|
|
8
|
+
// `${fileName}.freezed.dart` and `${fileName}.g.dart` companion files
|
|
9
|
+
// alongside a plain `.dart` source, and a source file literally named
|
|
10
|
+
// `.g.dart` would collide with — and be silently overwritten or rejected
|
|
11
|
+
// by — build_runner's own output. The model now lives at
|
|
12
|
+
// `${fileName}.dart`; every template that imports the model file needs
|
|
13
|
+
// this path updated (see the accompanying find/fix sweep).
|
|
14
|
+
//
|
|
15
|
+
// FIX: was built from getVisibleColumns(), which excludes any field with
|
|
16
|
+
// hidden: true — meaning a hidden foreign key like order_id or tenant_id
|
|
17
|
+
// never existed on the model class at all, breaking create/update. Models
|
|
18
|
+
// must always include every real column; "hidden" only controls whether
|
|
19
|
+
// a widget renders for that field in forms/detail views, not whether the
|
|
20
|
+
// model itself carries the value.
|
|
6
21
|
function generateModel(model, stateManager) {
|
|
7
22
|
const className = (0, generator_core_1.modelToClassName)(model.name);
|
|
8
23
|
const fileName = (0, generator_core_1.modelToFileName)(model.name);
|
|
9
|
-
const columns = (0, generator_core_1.
|
|
24
|
+
const columns = (0, generator_core_1.getAllNonPrimaryColumns)(model);
|
|
10
25
|
const pk = (0, generator_core_1.getPrimaryKey)(model);
|
|
11
|
-
const pkName = pk?.name ?? 'id';
|
|
12
26
|
const allColumns = pk ? [pk, ...columns] : columns;
|
|
13
|
-
const fields = allColumns.map((col) => {
|
|
14
|
-
const { dartType } = (0, generator_core_1.parseColumnType)(col);
|
|
15
|
-
return ` final ${dartType} ${col.name};`;
|
|
16
|
-
}).join('\n');
|
|
17
27
|
const constructorParams = allColumns.map((col) => {
|
|
18
|
-
const { nullable } = (0, generator_core_1.parseColumnType)(col);
|
|
19
|
-
return nullable
|
|
20
|
-
? ` this.${col.name},`
|
|
21
|
-
: ` required this.${col.name},`;
|
|
22
|
-
}).join('\n');
|
|
23
|
-
const fromJsonFields = allColumns.map((col) => {
|
|
24
|
-
const { fromJson } = (0, generator_core_1.parseColumnType)(col);
|
|
25
|
-
return ` ${col.name}: ${fromJson},`;
|
|
26
|
-
}).join('\n');
|
|
27
|
-
const toJsonFields = allColumns.map((col) => {
|
|
28
|
-
const { toJson } = (0, generator_core_1.parseColumnType)(col);
|
|
29
|
-
return ` ${toJson},`;
|
|
30
|
-
}).join('\n');
|
|
31
|
-
const copyWithParams = allColumns.map((col) => {
|
|
32
|
-
const { dartType } = (0, generator_core_1.parseColumnType)(col);
|
|
28
|
+
const { dartType, nullable } = (0, generator_core_1.parseColumnType)(col);
|
|
33
29
|
const baseType = dartType.replace('?', '');
|
|
34
|
-
return
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return ` ${col.name}: ${col.name} ?? this.${col.name},`;
|
|
30
|
+
return nullable
|
|
31
|
+
? ` ${baseType}? ${col.name},`
|
|
32
|
+
: ` required ${baseType} ${col.name},`;
|
|
38
33
|
}).join('\n');
|
|
39
|
-
const equalsFields = allColumns
|
|
40
|
-
.map((col) => ` other.${col.name} == ${col.name}`)
|
|
41
|
-
.join(' &&\n');
|
|
42
|
-
const hashFields = allColumns.map((col) => col.name).join(', ');
|
|
43
34
|
const content = `// GENERATED FILE — DO NOT EDIT MANUALLY
|
|
44
35
|
// Generated by Underpeaks CodeGen v1.0.0
|
|
45
36
|
// Source model: ${model.name}
|
|
46
37
|
// Regenerate: nxf generate flutter --model=${className}
|
|
38
|
+
//
|
|
39
|
+
// This model uses Freezed + json_serializable. copyWith/==/hashCode/
|
|
40
|
+
// toString/fromJson/toJson are all generated by build_runner into
|
|
41
|
+
// ${fileName}.freezed.dart and ${fileName}.g.dart — the CLI runs
|
|
42
|
+
// build_runner automatically after generation, so those companion files
|
|
43
|
+
// will already exist by the time you open this project.
|
|
47
44
|
// ignore_for_file: lines_longer_than_80_chars
|
|
48
45
|
|
|
49
|
-
|
|
46
|
+
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
50
47
|
|
|
51
|
-
|
|
52
|
-
${
|
|
48
|
+
part '${fileName}.freezed.dart';
|
|
49
|
+
part '${fileName}.g.dart';
|
|
53
50
|
|
|
54
|
-
|
|
51
|
+
@freezed
|
|
52
|
+
class ${className} with _$${className} {
|
|
53
|
+
const factory ${className}({
|
|
55
54
|
${constructorParams}
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
// ── Serialisation ────────────────────────────────────────────────────────
|
|
59
|
-
|
|
60
|
-
factory ${className}.fromJson(Map<String, dynamic> json) {
|
|
61
|
-
return ${className}(
|
|
62
|
-
${fromJsonFields}
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
Map<String, dynamic> toJson() {
|
|
67
|
-
return {
|
|
68
|
-
${toJsonFields}
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// ── CopyWith ─────────────────────────────────────────────────────────────
|
|
73
|
-
|
|
74
|
-
${className} copyWith({
|
|
75
|
-
${copyWithParams}
|
|
76
|
-
}) {
|
|
77
|
-
return ${className}(
|
|
78
|
-
${copyWithFields}
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// ── Equality ─────────────────────────────────────────────────────────────
|
|
83
|
-
|
|
84
|
-
@override
|
|
85
|
-
bool operator ==(Object other) {
|
|
86
|
-
if (identical(this, other)) return true;
|
|
87
|
-
return other is ${className} &&
|
|
88
|
-
${equalsFields};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
@override
|
|
92
|
-
int get hashCode => Object.hash(${hashFields});
|
|
55
|
+
}) = _${className};
|
|
93
56
|
|
|
94
|
-
|
|
95
|
-
|
|
57
|
+
factory ${className}.fromJson(Map<String, dynamic> json) =>
|
|
58
|
+
_$${className}FromJson(json);
|
|
96
59
|
}
|
|
97
60
|
`;
|
|
98
61
|
return {
|
|
99
|
-
path: `lib/generated/models/${fileName}.
|
|
62
|
+
path: `lib/generated/models/${fileName}.dart`,
|
|
100
63
|
content,
|
|
101
64
|
category: 'generated',
|
|
102
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":";AAAA,6EAA6E;;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/templates/model.ts"],"names":[],"mappings":";AAAA,6EAA6E;;AA2B7E,sCAgDC;AAxED,+DAOmC;AAEnC,4EAA4E;AAC5E,+DAA+D;AAC/D,sEAAsE;AACtE,sEAAsE;AACtE,yEAAyE;AACzE,yDAAyD;AACzD,uEAAuE;AACvE,2DAA2D;AAC3D,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,yEAAyE;AACzE,kCAAkC;AAClC,SAAgB,aAAa,CAAC,KAAY,EAAE,YAAoB;IAC9D,MAAM,SAAS,GAAI,IAAA,iCAAgB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/C,MAAM,QAAQ,GAAK,IAAA,gCAAe,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAM,IAAA,wCAAuB,EAAC,KAAK,CAAC,CAAA;IACjD,MAAM,EAAE,GAAW,IAAA,8BAAa,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAElD,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAA,gCAAe,EAAC,GAAG,CAAC,CAAA;QACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC1C,OAAO,QAAQ;YACb,CAAC,CAAC,OAAO,QAAQ,KAAK,GAAG,CAAC,IAAI,GAAG;YACjC,CAAC,CAAC,gBAAgB,QAAQ,IAAI,GAAG,CAAC,IAAI,GAAG,CAAA;IAC7C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,OAAO,GAAG;;mBAEC,KAAK,CAAC,IAAI;8CACiB,SAAS;;;;KAIlD,QAAQ,qBAAqB,QAAQ;;;;;;;QAOlC,QAAQ;QACR,QAAQ;;;QAGR,SAAS,WAAW,SAAS;kBACnB,SAAS;EACzB,iBAAiB;UACT,SAAS;;YAEP,SAAS;UACX,SAAS;;CAElB,CAAA;IAEC,OAAO;QACL,IAAI,EAAM,wBAAwB,QAAQ,OAAO;QACjD,OAAO;QACP,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { Model, PageDef, PageRoute, GeneratedFile } from '@underpeaks/generator-core';
|
|
2
|
+
export declare function effectiveMobileBottom(page: PageDef): 'bottom-nav' | 'drawer-nav' | 'none';
|
|
2
3
|
export declare function generateNavigation(pages: PageDef[], routes: PageRoute[], models: Model[], stateManager: string): GeneratedFile;
|
|
3
4
|
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/templates/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/templates/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAiD1F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAQzF;AA6ED,wBAAgB,kBAAkB,CAChC,KAAK,EAAS,OAAO,EAAE,EACvB,MAAM,EAAQ,SAAS,EAAE,EACzB,MAAM,EAAQ,KAAK,EAAE,EACrB,YAAY,EAAE,MAAM,GACnB,aAAa,CAgMf"}
|