@ankhorage/templates 6.0.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/commands.d.ts +6 -2
  3. package/dist/commands.d.ts.map +1 -1
  4. package/dist/internal/zora-nodes.d.ts +3 -1
  5. package/dist/internal/zora-nodes.d.ts.map +1 -1
  6. package/dist/internal/zora-nodes.js.map +1 -1
  7. package/dist/templates/shared/zora-node-helpers.d.ts.map +1 -1
  8. package/dist/templates/shared/zora-node-helpers.js +8 -0
  9. package/dist/templates/shared/zora-node-helpers.js.map +1 -1
  10. package/dist/templates/starter/categories/fallback/screens.d.ts.map +1 -1
  11. package/dist/templates/starter/categories/fallback/screens.js +8 -0
  12. package/dist/templates/starter/categories/fallback/screens.js.map +1 -1
  13. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/api.d.ts +3 -0
  14. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/api.d.ts.map +1 -0
  15. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/api.js +18 -0
  16. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/api.js.map +1 -0
  17. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiEndpoints.d.ts +165 -0
  18. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiEndpoints.d.ts.map +1 -0
  19. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiEndpoints.js +138 -0
  20. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiEndpoints.js.map +1 -0
  21. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiSchemas.d.ts +33 -0
  22. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiSchemas.d.ts.map +1 -0
  23. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiSchemas.js +80 -0
  24. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/apiSchemas.js.map +1 -0
  25. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.d.ts.map +1 -1
  26. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.js +32 -125
  27. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/bindings.js.map +1 -1
  28. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/catalogScreenBody.d.ts +3 -0
  29. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/catalogScreenBody.d.ts.map +1 -0
  30. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/catalogScreenBody.js +44 -0
  31. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/catalogScreenBody.js.map +1 -0
  32. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/contentScreen.d.ts +29 -0
  33. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/contentScreen.d.ts.map +1 -0
  34. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/contentScreen.js +32 -0
  35. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/contentScreen.js.map +1 -0
  36. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productCreateScreenBody.d.ts +3 -0
  37. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productCreateScreenBody.d.ts.map +1 -0
  38. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productCreateScreenBody.js +88 -0
  39. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productCreateScreenBody.js.map +1 -0
  40. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productDetailScreenBody.d.ts +8 -0
  41. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productDetailScreenBody.d.ts.map +1 -0
  42. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productDetailScreenBody.js +96 -0
  43. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/productDetailScreenBody.js.map +1 -0
  44. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/scanScreenBody.d.ts +3 -0
  45. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/scanScreenBody.d.ts.map +1 -0
  46. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/scanScreenBody.js +20 -0
  47. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/scanScreenBody.js.map +1 -0
  48. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.d.ts.map +1 -1
  49. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.js +24 -385
  50. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.js.map +1 -1
  51. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/settingsScreen.d.ts +8 -0
  52. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/settingsScreen.d.ts.map +1 -0
  53. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/settingsScreen.js +44 -0
  54. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/settingsScreen.js.map +1 -0
  55. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/template.d.ts.map +1 -1
  56. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/template.js +2 -5
  57. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/template.js.map +1 -1
  58. package/package.json +3 -4
  59. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.d.ts +0 -3
  60. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.d.ts.map +0 -1
  61. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.js +0 -14
  62. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.js.map +0 -1
  63. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/externalDataSource.d.ts +0 -3
  64. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/externalDataSource.d.ts.map +0 -1
  65. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/externalDataSource.js +0 -46
  66. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/externalDataSource.js.map +0 -1
  67. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/generatedApi.d.ts +0 -3
  68. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/generatedApi.d.ts.map +0 -1
  69. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/generatedApi.js +0 -43
  70. package/dist/templates/starter/categories/food-drink/nutrition-catalog-scan/generatedApi.js.map +0 -1
@@ -1,446 +1,85 @@
1
- import { createScreen, createScreenRoot, createSection, createSettingsSection, createZoraNode, } from '../../../../shared';
1
+ import { createNutritionCatalogBody } from './catalogScreenBody';
2
2
  import { nutritionCatalogScanContent } from './content';
3
- const productDetailLoaderOperation = {
4
- dataSourceId: 'nutrition-products',
5
- endpointId: 'products',
6
- operationId: 'products.read',
7
- };
8
- function createContentScreen(args) {
9
- const idSegment = args.name.toLowerCase().replaceAll(' ', '-');
10
- const body = args.body ?? createSectionCards(args.idPrefix, idSegment, args.content.sections);
11
- return createScreen({
12
- id: args.screenId,
13
- name: args.name,
14
- title: args.content.title,
15
- description: args.content.description,
16
- root: createScreenRoot(`${args.idPrefix}-${idSegment}-screen`, { width: 'wide' }, [
17
- createZoraNode(`${args.idPrefix}-${idSegment}-header`, 'SectionHeader', {
18
- eyebrow: args.content.eyebrow,
19
- title: args.content.title,
20
- description: args.content.description,
21
- }),
22
- ...body,
23
- ]),
24
- dataLoaders: args.dataLoaders,
25
- requires: args.requires,
26
- });
27
- }
28
- function createSectionCards(idPrefix, idSegment, sections) {
29
- return sections.map((section, sectionIndex) => createSection(`${idPrefix}-${idSegment}-section-${sectionIndex + 1}`, { title: section.title, description: section.description }, [
30
- createZoraNode(`${idPrefix}-${idSegment}-panel-${sectionIndex + 1}`, 'Panel', { title: section.title, description: section.description, tone: 'subtle' }, section.cards.map((card, cardIndex) => createZoraNode(`${idPrefix}-${idSegment}-card-${sectionIndex + 1}-${cardIndex + 1}`, 'Card', {
31
- eyebrow: card.eyebrow,
32
- title: card.title,
33
- description: card.description,
34
- tone: 'outline',
35
- }))),
36
- ]));
37
- }
38
- function createDetailValueCard(args) {
39
- return createZoraNode(args.id, 'Card', {
40
- eyebrow: args.label,
41
- title: args.placeholder,
42
- tone: 'outline',
43
- });
44
- }
45
- function createProductsBody(idPrefix) {
46
- return [
47
- createZoraNode(`${idPrefix}-products-search-field`, 'FormField', {
48
- label: 'Search products',
49
- description: 'Search by product name, brand, barcode, or package label.',
50
- }),
51
- createZoraNode(`${idPrefix}-products-search-input`, 'Input', {
52
- placeholder: 'Search product name, brand, or barcode...',
53
- autoCapitalize: 'none',
54
- size: 'm',
55
- }),
56
- createSection(`${idPrefix}-products-grid-section`, {
57
- title: 'Products',
58
- description: 'Available products in the shared nutrition catalog.',
59
- }, [
60
- {
61
- id: `${idPrefix}-products-grid`,
62
- type: 'Grid',
63
- repeat: {
64
- source: {
65
- kind: 'operation',
66
- operation: {
67
- dataSourceId: 'nutrition-products',
68
- endpointId: 'products',
69
- operationId: 'products.list',
70
- },
71
- },
72
- itemAlias: 'item',
73
- keyPath: 'id',
74
- empty: [
75
- createZoraNode(`${idPrefix}-products-empty-state`, 'Notice', {
76
- title: 'No products found',
77
- description: 'Scan a barcode or create a product to start building the catalog.',
78
- }),
79
- ],
80
- },
81
- children: [createZoraNode(`${idPrefix}-product-card-template`, 'ProductCard')],
82
- },
83
- ]),
84
- ];
85
- }
86
- function createScanBody(idPrefix) {
87
- return [
88
- createZoraNode(`${idPrefix}-scan-scanner`, 'BarcodeScannerView', {
89
- permissionStatus: 'unknown',
90
- title: 'Scan product barcode',
91
- description: 'Point the camera at a barcode to look up or add a product.',
92
- overlayTitle: 'Align barcode',
93
- overlayDescription: 'Hold the barcode inside the frame. Scanning starts automatically.',
94
- cornerLabel: 'EAN',
95
- requestPermissionLabel: 'Allow camera access',
96
- manualEntryLabel: 'Enter barcode manually',
97
- }),
98
- createZoraNode(`${idPrefix}-scan-lookup-notice`, 'Notice', {
99
- title: 'Lookup behavior',
100
- description: 'GET /products/by-barcode/:barcode opens product detail on 200, opens create with a prefilled barcode on 404, and should surface retry messaging for 400 or 503 responses.',
101
- }),
102
- ];
103
- }
104
- function createProductDetailBody(idPrefix) {
105
- return [
106
- createSection(`${idPrefix}-detail-summary-section`, {
107
- title: 'Product details',
108
- description: 'Loaded through the generated product read operation using the current route param ID.',
109
- }, [
110
- createDetailValueCard({
111
- id: `${idPrefix}-detail-name-value`,
112
- label: 'Name',
113
- placeholder: 'Loading name...',
114
- }),
115
- createDetailValueCard({
116
- id: `${idPrefix}-detail-brand-value`,
117
- label: 'Brand',
118
- placeholder: 'Loading brand...',
119
- }),
120
- createDetailValueCard({
121
- id: `${idPrefix}-detail-package-label-value`,
122
- label: 'Package label',
123
- placeholder: 'Loading package label...',
124
- }),
125
- createDetailValueCard({
126
- id: `${idPrefix}-detail-barcode-value`,
127
- label: 'Barcode',
128
- placeholder: 'Loading barcode...',
129
- }),
130
- createDetailValueCard({
131
- id: `${idPrefix}-detail-barcode-type-value`,
132
- label: 'Barcode type',
133
- placeholder: 'Loading barcode type...',
134
- }),
135
- createDetailValueCard({
136
- id: `${idPrefix}-detail-created-at-value`,
137
- label: 'Created at',
138
- placeholder: 'Loading created timestamp...',
139
- }),
140
- createDetailValueCard({
141
- id: `${idPrefix}-detail-updated-at-value`,
142
- label: 'Updated at',
143
- placeholder: 'Loading updated timestamp...',
144
- }),
145
- ]),
146
- createSection(`${idPrefix}-detail-nutrition-section`, {
147
- title: 'Nutrition facts',
148
- description: 'Synchronous bindings read the cached product nutrition facts fields.',
149
- }, [
150
- createDetailValueCard({
151
- id: `${idPrefix}-detail-nutrition-basis-value`,
152
- label: 'Basis',
153
- placeholder: 'Loading basis...',
154
- }),
155
- createDetailValueCard({
156
- id: `${idPrefix}-detail-energy-kj-value`,
157
- label: 'Energy (kJ)',
158
- placeholder: 'Loading energy...',
159
- }),
160
- createDetailValueCard({
161
- id: `${idPrefix}-detail-energy-kcal-value`,
162
- label: 'Energy (kcal)',
163
- placeholder: 'Loading energy...',
164
- }),
165
- createDetailValueCard({
166
- id: `${idPrefix}-detail-fat-g-value`,
167
- label: 'Fat (g)',
168
- placeholder: 'Loading fat...',
169
- }),
170
- createDetailValueCard({
171
- id: `${idPrefix}-detail-saturated-fat-g-value`,
172
- label: 'Saturated fat (g)',
173
- placeholder: 'Loading saturated fat...',
174
- }),
175
- createDetailValueCard({
176
- id: `${idPrefix}-detail-carbohydrates-g-value`,
177
- label: 'Carbohydrates (g)',
178
- placeholder: 'Loading carbohydrates...',
179
- }),
180
- createDetailValueCard({
181
- id: `${idPrefix}-detail-sugars-g-value`,
182
- label: 'Sugars (g)',
183
- placeholder: 'Loading sugars...',
184
- }),
185
- createDetailValueCard({
186
- id: `${idPrefix}-detail-fiber-g-value`,
187
- label: 'Fiber (g)',
188
- placeholder: 'Loading fiber...',
189
- }),
190
- createDetailValueCard({
191
- id: `${idPrefix}-detail-protein-g-value`,
192
- label: 'Protein (g)',
193
- placeholder: 'Loading protein...',
194
- }),
195
- createDetailValueCard({
196
- id: `${idPrefix}-detail-salt-g-value`,
197
- label: 'Salt (g)',
198
- placeholder: 'Loading salt...',
199
- }),
200
- ]),
201
- createSection(`${idPrefix}-detail-images-section`, {
202
- title: 'Image refs',
203
- description: 'Cached product image refs render synchronously from the loader result.',
204
- }, [
205
- {
206
- id: `${idPrefix}-detail-image-ref-list`,
207
- type: 'Panel',
208
- props: {
209
- title: 'Product images',
210
- description: 'Each block reflects one image ref from the current product imageRefs field.',
211
- tone: 'subtle',
212
- },
213
- repeat: {
214
- source: {
215
- kind: 'operation',
216
- operation: productDetailLoaderOperation,
217
- path: 'imageRefs',
218
- },
219
- itemAlias: 'imageRef',
220
- keyPath: 'path',
221
- },
222
- children: [
223
- createDetailValueCard({
224
- id: `${idPrefix}-detail-image-ref-kind-value`,
225
- label: 'Kind',
226
- placeholder: 'Loading image kind...',
227
- }),
228
- createDetailValueCard({
229
- id: `${idPrefix}-detail-image-ref-bucket-value`,
230
- label: 'Bucket',
231
- placeholder: 'Loading bucket...',
232
- }),
233
- createDetailValueCard({
234
- id: `${idPrefix}-detail-image-ref-path-value`,
235
- label: 'Path',
236
- placeholder: 'Loading path...',
237
- }),
238
- createDetailValueCard({
239
- id: `${idPrefix}-detail-image-ref-public-url-value`,
240
- label: 'Public URL',
241
- placeholder: 'Loading image URL...',
242
- }),
243
- ],
244
- },
245
- ]),
246
- ];
247
- }
248
- function createProductFormPreview(idPrefix) {
249
- return createZoraNode(`${idPrefix}-create-form-panel`, 'Panel', {
250
- title: 'Direct product create form',
251
- description: 'Create a product directly when barcode lookup does not find a match.',
252
- tone: 'subtle',
253
- }, [
254
- createZoraNode(`${idPrefix}-create-barcode-field`, 'FormField', {
255
- label: 'Barcode',
256
- description: 'Prefilled from scan or manual entry; normalized before the generated create operation.',
257
- required: true,
258
- }),
259
- createZoraNode(`${idPrefix}-create-barcode-input`, 'Input', {
260
- placeholder: '7612345678901',
261
- keyboardType: 'number-pad',
262
- size: 'm',
263
- }),
264
- createZoraNode(`${idPrefix}-create-name-field`, 'FormField', {
265
- label: 'Product name',
266
- description: 'Required by the minimal request.',
267
- required: true,
268
- }),
269
- createZoraNode(`${idPrefix}-create-name-input`, 'Input', {
270
- placeholder: 'Product name',
271
- size: 'm',
272
- }),
273
- createZoraNode(`${idPrefix}-create-brand-field`, 'FormField', {
274
- label: 'Brand',
275
- description: 'Optional product brand.',
276
- }),
277
- createZoraNode(`${idPrefix}-create-brand-input`, 'Input', {
278
- placeholder: 'Brand',
279
- size: 'm',
280
- }),
281
- createZoraNode(`${idPrefix}-create-package-label-field`, 'FormField', {
282
- label: 'Package label',
283
- description: 'Optional package text such as 500ml or 6 x 33cl.',
284
- }),
285
- createZoraNode(`${idPrefix}-create-package-label-input`, 'Input', {
286
- placeholder: '500ml',
287
- size: 'm',
288
- }),
289
- createZoraNode(`${idPrefix}-create-nutrition-basis-field`, 'FormField', {
290
- label: 'nutritionFacts.basis',
291
- description: 'Use per_100g, per_100ml, or per_serving.',
292
- }),
293
- createZoraNode(`${idPrefix}-create-nutrition-basis-input`, 'Input', {
294
- placeholder: 'per_100g',
295
- autoCapitalize: 'none',
296
- size: 'm',
297
- }),
298
- createZoraNode(`${idPrefix}-create-nutrition-facts-field`, 'FormField', {
299
- label: 'nutritionFacts',
300
- description: 'Structured numeric fields such as energyKcal, proteinG, carbohydratesG, sugarsG, fatG, and saltG.',
301
- }),
302
- createZoraNode(`${idPrefix}-create-nutrition-facts-input`, 'Input', {
303
- placeholder: '{"energyKcal": 42, "proteinG": 3.4}',
304
- autoCapitalize: 'none',
305
- size: 'm',
306
- }),
307
- createZoraNode(`${idPrefix}-create-image-refs-field`, 'FormField', {
308
- label: 'imageRefs',
309
- description: 'Structured storage refs with bucket, path, kind, publicUrl, width, and height.',
310
- }),
311
- createZoraNode(`${idPrefix}-create-image-refs-input`, 'Input', {
312
- placeholder: '[{"bucket":"nutrition","path":"products/front.jpg"}]',
313
- autoCapitalize: 'none',
314
- size: 'm',
315
- }),
316
- createZoraNode(`${idPrefix}-create-duplicate-notice`, 'Notice', {
317
- title: 'Duplicate barcode handling',
318
- description: 'Barcode uniqueness is enforced by the generated database operation; duplicate inserts surface as database-operation diagnostics.',
319
- }),
320
- createZoraNode(`${idPrefix}-create-submit-button`, 'Button', {
321
- children: 'Create product',
322
- color: 'primary',
323
- size: 'm',
324
- fullWidth: true,
325
- }),
326
- createZoraNode(`${idPrefix}-create-error-notice`, 'Notice', {
327
- title: 'Validation and availability',
328
- description: 'The generated app should surface invalid input and database-operation diagnostics without assuming HTTP status codes.',
329
- }),
330
- ]);
331
- }
3
+ import { createNutritionContentScreen } from './contentScreen';
4
+ import { createNutritionProductCreateBody } from './productCreateScreenBody';
5
+ import { createNutritionProductDetailBody, nutritionProductDetailOperation, } from './productDetailScreenBody';
6
+ import { createNutritionScanBody } from './scanScreenBody';
7
+ import { createNutritionSettingsScreen } from './settingsScreen';
332
8
  export function createNutritionCatalogScanScreens(seed, idPrefix, screenIds) {
333
9
  return {
334
- [screenIds.catalog]: createContentScreen({
10
+ [screenIds.catalog]: createNutritionContentScreen({
335
11
  idPrefix,
336
12
  screenId: screenIds.catalog,
337
13
  name: 'Products',
338
14
  content: nutritionCatalogScanContent.catalog,
339
- body: createProductsBody(idPrefix),
15
+ body: createNutritionCatalogBody(idPrefix),
340
16
  }),
341
- [screenIds.scan]: createContentScreen({
17
+ [screenIds.scan]: createNutritionContentScreen({
342
18
  idPrefix,
343
19
  screenId: screenIds.scan,
344
20
  name: 'Scan',
345
21
  content: nutritionCatalogScanContent.scan,
346
- body: createScanBody(idPrefix),
22
+ body: createNutritionScanBody(idPrefix),
347
23
  requires: {
348
24
  permissions: [{ permission: 'camera' }],
349
25
  capabilities: [{ capability: 'barcodeScanner' }],
350
26
  },
351
27
  }),
352
- [screenIds.stats]: createContentScreen({
28
+ [screenIds.stats]: createNutritionContentScreen({
353
29
  idPrefix,
354
30
  screenId: screenIds.stats,
355
31
  name: 'Stats',
356
32
  content: nutritionCatalogScanContent.stats,
357
33
  }),
358
- [screenIds.profile]: createContentScreen({
34
+ [screenIds.profile]: createNutritionContentScreen({
359
35
  idPrefix,
360
36
  screenId: screenIds.profile,
361
37
  name: 'Profile',
362
38
  content: nutritionCatalogScanContent.profile,
363
39
  }),
364
- [screenIds.detail]: createContentScreen({
40
+ [screenIds.detail]: createNutritionContentScreen({
365
41
  idPrefix,
366
42
  screenId: screenIds.detail,
367
43
  name: 'Product Detail',
368
44
  content: nutritionCatalogScanContent.detail,
369
- body: createProductDetailBody(idPrefix),
45
+ body: createNutritionProductDetailBody(idPrefix),
370
46
  dataLoaders: [
371
47
  {
372
48
  kind: 'operation',
373
49
  id: 'product-detail',
374
- operation: productDetailLoaderOperation,
50
+ operation: nutritionProductDetailOperation,
375
51
  input: {
376
52
  id: {
377
53
  kind: 'source',
378
- source: {
379
- kind: 'context',
380
- path: 'route.params.id',
381
- },
54
+ source: { kind: 'context', path: 'route.params.id' },
382
55
  },
383
56
  },
384
57
  },
385
58
  ],
386
59
  }),
387
- [screenIds.create]: createContentScreen({
60
+ [screenIds.create]: createNutritionContentScreen({
388
61
  idPrefix,
389
62
  screenId: screenIds.create,
390
63
  name: 'Create',
391
64
  content: nutritionCatalogScanContent.create,
392
- body: [createProductFormPreview(idPrefix)],
65
+ body: createNutritionProductCreateBody(idPrefix),
393
66
  }),
394
- [screenIds.signIn]: createContentScreen({
67
+ [screenIds.signIn]: createNutritionContentScreen({
395
68
  idPrefix,
396
69
  screenId: screenIds.signIn,
397
70
  name: 'Sign In',
398
71
  content: nutritionCatalogScanContent.signIn,
399
72
  }),
400
- [screenIds.signUp]: createContentScreen({
73
+ [screenIds.signUp]: createNutritionContentScreen({
401
74
  idPrefix,
402
75
  screenId: screenIds.signUp,
403
76
  name: 'Sign Up',
404
77
  content: nutritionCatalogScanContent.signUp,
405
78
  }),
406
- [screenIds.settings]: createScreen({
407
- id: screenIds.settings,
408
- name: 'Settings',
409
- title: nutritionCatalogScanContent.settings.title,
410
- description: nutritionCatalogScanContent.settings.description,
411
- root: createScreenRoot(`${idPrefix}-settings-screen`, { width: 'default' }, [
412
- createZoraNode(`${idPrefix}-settings-header`, 'SectionHeader', {
413
- eyebrow: nutritionCatalogScanContent.settings.eyebrow,
414
- title: nutritionCatalogScanContent.settings.title,
415
- description: nutritionCatalogScanContent.settings.description,
416
- }),
417
- createSettingsSection(`${idPrefix}-settings-api`, 'Nutrition API', 'Runtime nutrition product lookup and CRUD should go through the nutrition API.', [
418
- {
419
- id: 'base-url-row',
420
- title: 'API base URL',
421
- description: 'Defaults to https://api.ankhorage.com/v1/nutrition.',
422
- meta: 'runtime',
423
- },
424
- {
425
- id: 'health-row',
426
- title: 'Health check',
427
- description: 'GET /health verifies that the nutrition backend is reachable.',
428
- meta: 'health',
429
- },
430
- {
431
- id: 'product-create-row',
432
- title: 'Product create endpoint',
433
- description: 'POST /products creates a product directly from the app.',
434
- meta: 'create',
435
- },
436
- {
437
- id: 'client-row',
438
- title: 'Client defaults',
439
- description: `${seed.appName} uses de-CH locale and normalizes barcode input before nutrition API lookup.`,
440
- meta: 'de-CH',
441
- },
442
- ]),
443
- ]),
79
+ [screenIds.settings]: createNutritionSettingsScreen({
80
+ seed,
81
+ idPrefix,
82
+ screenId: screenIds.settings,
444
83
  }),
445
84
  };
446
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/screens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { AppManifest } from '@ankhorage/contracts';
2
+ import type { TemplateSeed } from '../../../starter.types';
3
+ export declare function createNutritionSettingsScreen(args: {
4
+ readonly seed: TemplateSeed;
5
+ readonly idPrefix: string;
6
+ readonly screenId: string;
7
+ }): AppManifest['screens'][string];
8
+ //# sourceMappingURL=settingsScreen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settingsScreen.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/settingsScreen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,wBAAgB,6BAA6B,CAAC,IAAI,EAAE;IAClD,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CA6CjC"}
@@ -0,0 +1,44 @@
1
+ import { createScreen, createScreenRoot, createSettingsSection, createZoraNode, } from '../../../../shared';
2
+ import { nutritionCatalogScanContent } from './content';
3
+ export function createNutritionSettingsScreen(args) {
4
+ return createScreen({
5
+ id: args.screenId,
6
+ name: 'Settings',
7
+ title: nutritionCatalogScanContent.settings.title,
8
+ description: nutritionCatalogScanContent.settings.description,
9
+ root: createScreenRoot(`${args.idPrefix}-settings-screen`, { width: 'default' }, [
10
+ createZoraNode(`${args.idPrefix}-settings-header`, 'SectionHeader', {
11
+ eyebrow: nutritionCatalogScanContent.settings.eyebrow,
12
+ title: nutritionCatalogScanContent.settings.title,
13
+ description: nutritionCatalogScanContent.settings.description,
14
+ }),
15
+ createSettingsSection(`${args.idPrefix}-settings-api`, 'Nutrition API', 'Runtime product lookup and CRUD use one canonical external Nutrition API.', [
16
+ {
17
+ id: 'base-url-row',
18
+ title: 'API base URL',
19
+ description: 'https://api.ankhorage.com/v1/nutrition',
20
+ meta: 'runtime',
21
+ },
22
+ {
23
+ id: 'health-row',
24
+ title: 'Health check',
25
+ description: 'GET /health verifies that the Nutrition API is reachable.',
26
+ meta: 'health',
27
+ },
28
+ {
29
+ id: 'product-create-row',
30
+ title: 'Product create endpoint',
31
+ description: 'POST /products creates a product through the shared API.',
32
+ meta: 'create',
33
+ },
34
+ {
35
+ id: 'client-row',
36
+ title: 'Client defaults',
37
+ description: `${args.seed.appName} uses de-CH locale and canonical API bindings.`,
38
+ meta: 'de-CH',
39
+ },
40
+ ]),
41
+ ]),
42
+ });
43
+ }
44
+ //# sourceMappingURL=settingsScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settingsScreen.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/settingsScreen.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,UAAU,6BAA6B,CAAC,IAI7C;IACC,OAAO,YAAY,CAAC;QAClB,EAAE,EAAE,IAAI,CAAC,QAAQ;QACjB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,2BAA2B,CAAC,QAAQ,CAAC,KAAK;QACjD,WAAW,EAAE,2BAA2B,CAAC,QAAQ,CAAC,WAAW;QAC7D,IAAI,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,kBAAkB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC/E,cAAc,CAAC,GAAG,IAAI,CAAC,QAAQ,kBAAkB,EAAE,eAAe,EAAE;gBAClE,OAAO,EAAE,2BAA2B,CAAC,QAAQ,CAAC,OAAO;gBACrD,KAAK,EAAE,2BAA2B,CAAC,QAAQ,CAAC,KAAK;gBACjD,WAAW,EAAE,2BAA2B,CAAC,QAAQ,CAAC,WAAW;aAC9D,CAAC;YACF,qBAAqB,CACnB,GAAG,IAAI,CAAC,QAAQ,eAAe,EAC/B,eAAe,EACf,2EAA2E,EAC3E;gBACE;oBACE,EAAE,EAAE,cAAc;oBAClB,KAAK,EAAE,cAAc;oBACrB,WAAW,EAAE,wCAAwC;oBACrD,IAAI,EAAE,SAAS;iBAChB;gBACD;oBACE,EAAE,EAAE,YAAY;oBAChB,KAAK,EAAE,cAAc;oBACrB,WAAW,EAAE,2DAA2D;oBACxE,IAAI,EAAE,QAAQ;iBACf;gBACD;oBACE,EAAE,EAAE,oBAAoB;oBACxB,KAAK,EAAE,yBAAyB;oBAChC,WAAW,EAAE,0DAA0D;oBACvE,IAAI,EAAE,QAAQ;iBACf;gBACD;oBACE,EAAE,EAAE,YAAY;oBAChB,KAAK,EAAE,iBAAiB;oBACxB,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,gDAAgD;oBACjF,IAAI,EAAE,OAAO;iBACd;aACF,CACF;SACF,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CA6CzF"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAM3D,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CA2CzF"}
@@ -1,15 +1,13 @@
1
1
  import { DEFAULT_TEMPLATE_VERSION } from '../../../../../internal/defaults';
2
2
  import { createManifestShell, createTheme } from '../../../../shared';
3
+ import { createNutritionCatalogScanApi } from './api';
3
4
  import { createNutritionCatalogScanBindings } from './bindings';
4
- import { createNutritionCatalogScanDataSources } from './dataSources';
5
- import { createNutritionCatalogScanGeneratedApi } from './generatedApi';
6
5
  import { createNutritionCatalogScanNavigator, createNutritionCatalogScanScreenIds } from './routes';
7
6
  import { createNutritionCatalogScanScreens } from './screens';
8
7
  export function createNutritionCatalogScanStarterTemplate(seed) {
9
8
  const idPrefix = `${seed.category}-nutrition-catalog-scan`;
10
9
  const theme = createTheme(seed);
11
10
  const screenIds = createNutritionCatalogScanScreenIds(idPrefix);
12
- const generatedApi = createNutritionCatalogScanGeneratedApi();
13
11
  const manifest = createManifestShell({
14
12
  seed,
15
13
  theme,
@@ -19,11 +17,10 @@ export function createNutritionCatalogScanStarterTemplate(seed) {
19
17
  });
20
18
  return {
21
19
  ...manifest,
22
- generatedApis: { [generatedApi.id]: generatedApi },
23
20
  dataBindings: createNutritionCatalogScanBindings(idPrefix),
24
- dataSources: createNutritionCatalogScanDataSources(generatedApi),
25
21
  infra: {
26
22
  ...manifest.infra,
23
+ apis: [createNutritionCatalogScanApi()],
27
24
  auth: {
28
25
  scope: 'global',
29
26
  provider: 'supabase',
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,sCAAsC,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,UAAU,yCAAyC,CAAC,IAAkB;IAC1E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,yBAAyB,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,sCAAsC,EAAE,CAAC;IAC9D,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,iCAAiC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,QAAQ;QACX,aAAa,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE;QAClD,YAAY,EAAE,kCAAkC,CAAC,QAAQ,CAAC;QAC1D,WAAW,EAAE,qCAAqC,CAAC,YAAY,CAAC;QAChE,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE;oBACJ,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,UAAU;oBACxB,eAAe,EAAE,WAAW;oBAC5B,iBAAiB,EAAE,SAAS;iBAC7B;gBACD,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;gBAClC,MAAM,EAAE;oBACN,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC;oBACpD,YAAY,EAAE,qBAAqB;iBACpC;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC;oBAC7C,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE,YAAY;oBACxB,cAAc,EAAE,SAAS;oBACzB,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,UAAU,yCAAyC,CAAC,IAAkB;IAC1E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,yBAAyB,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,iCAAiC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,QAAQ;QACX,YAAY,EAAE,kCAAkC,CAAC,QAAQ,CAAC;QAC1D,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,IAAI,EAAE,CAAC,6BAA6B,EAAE,CAAC;YACvC,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE;oBACJ,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,UAAU;oBACxB,eAAe,EAAE,WAAW;oBAC5B,iBAAiB,EAAE,SAAS;iBAC7B;gBACD,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;gBAClC,MAAM,EAAE;oBACN,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC;oBACpD,YAAY,EAAE,qBAAqB;iBACpC;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC;oBAC7C,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE,YAAY;oBACxB,cAAc,EAAE,SAAS;oBACzB,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/templates",
3
- "version": "6.0.0",
3
+ "version": "7.0.0",
4
4
  "description": "Reusable Ankhorage app templates, presets, and manifest generators.",
5
5
  "homepage": "https://github.com/ankhorage/templates#readme",
6
6
  "bugs": {
@@ -74,9 +74,8 @@
74
74
  "version-packages": "changeset version"
75
75
  },
76
76
  "dependencies": {
77
- "@ankhorage/contracts": "^6.0.0",
78
- "@ankhorage/zora": "^2.9.0",
79
- "@ankhorage/data-sources": "^1.0.0"
77
+ "@ankhorage/contracts": "^8.0.0",
78
+ "@ankhorage/zora": "^2.11.0"
80
79
  },
81
80
  "devDependencies": {
82
81
  "@ankhorage/ankh": "^0.4.0",
@@ -1,3 +0,0 @@
1
- import type { AppManifest, GeneratedApiDefinition } from '@ankhorage/contracts';
2
- export declare function createNutritionCatalogScanDataSources(generatedApi: GeneratedApiDefinition): NonNullable<AppManifest['dataSources']>;
3
- //# sourceMappingURL=dataSources.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataSources.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/dataSources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAKhF,wBAAgB,qCAAqC,CACnD,YAAY,EAAE,sBAAsB,GACnC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAWzC"}