@ankhorage/templates 1.0.0 → 1.1.1
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/CHANGELOG.md +12 -0
- package/README.md +69 -13
- package/dist/generators/create-category-app.d.ts +1 -1
- package/dist/generators/create-category-app.d.ts.map +1 -1
- package/dist/generators/create-category-app.js +1 -1
- package/dist/generators/create-category-app.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/templates/shared/auth.d.ts +4 -0
- package/dist/templates/shared/auth.d.ts.map +1 -0
- package/dist/templates/shared/auth.js +4 -0
- package/dist/templates/shared/auth.js.map +1 -0
- package/dist/templates/shared/create-manifest-shell.d.ts +13 -0
- package/dist/templates/shared/create-manifest-shell.d.ts.map +1 -0
- package/dist/templates/shared/create-manifest-shell.js +18 -0
- package/dist/templates/shared/create-manifest-shell.js.map +1 -0
- package/dist/templates/shared/create-theme.d.ts +10 -0
- package/dist/templates/shared/create-theme.d.ts.map +1 -0
- package/dist/templates/shared/create-theme.js +19 -0
- package/dist/templates/shared/create-theme.js.map +1 -0
- package/dist/templates/shared/index.d.ts +7 -0
- package/dist/templates/shared/index.d.ts.map +1 -0
- package/dist/templates/shared/index.js +7 -0
- package/dist/templates/shared/index.js.map +1 -0
- package/dist/templates/shared/route.d.ts +10 -0
- package/dist/templates/shared/route.d.ts.map +1 -0
- package/dist/templates/shared/route.js +9 -0
- package/dist/templates/shared/route.js.map +1 -0
- package/dist/templates/shared/screen.d.ts +9 -0
- package/dist/templates/shared/screen.d.ts.map +1 -0
- package/dist/templates/shared/screen.js +10 -0
- package/dist/templates/shared/screen.js.map +1 -0
- package/dist/templates/shared/zora-node-helpers.d.ts +13 -0
- package/dist/templates/shared/zora-node-helpers.d.ts.map +1 -0
- package/dist/templates/shared/zora-node-helpers.js +28 -0
- package/dist/templates/shared/zora-node-helpers.js.map +1 -0
- package/dist/templates/starter/categories/fallback/default.template.d.ts +4 -0
- package/dist/templates/starter/categories/fallback/default.template.d.ts.map +1 -0
- package/dist/templates/starter/categories/fallback/default.template.js +17 -0
- package/dist/templates/starter/categories/fallback/default.template.js.map +1 -0
- package/dist/templates/starter/categories/fallback/index.d.ts +9 -0
- package/dist/templates/starter/categories/fallback/index.d.ts.map +1 -0
- package/dist/templates/starter/categories/fallback/index.js +11 -0
- package/dist/templates/starter/categories/fallback/index.js.map +1 -0
- package/dist/templates/starter/categories/fallback/routes.d.ts +9 -0
- package/dist/templates/starter/categories/fallback/routes.d.ts.map +1 -0
- package/dist/templates/starter/categories/fallback/routes.js +20 -0
- package/dist/templates/starter/categories/fallback/routes.js.map +1 -0
- package/dist/templates/starter/categories/fallback/screens.d.ts +5 -0
- package/dist/templates/starter/categories/fallback/screens.d.ts.map +1 -0
- package/dist/templates/starter/categories/fallback/screens.js +126 -0
- package/dist/templates/starter/categories/fallback/screens.js.map +1 -0
- package/dist/templates/starter/categories/food-drink/content.d.ts +80 -0
- package/dist/templates/starter/categories/food-drink/content.d.ts.map +1 -0
- package/dist/templates/starter/categories/food-drink/content.js +100 -0
- package/dist/templates/starter/categories/food-drink/content.js.map +1 -0
- package/dist/templates/starter/categories/food-drink/default.template.d.ts +4 -0
- package/dist/templates/starter/categories/food-drink/default.template.d.ts.map +1 -0
- package/dist/templates/starter/categories/food-drink/default.template.js +17 -0
- package/dist/templates/starter/categories/food-drink/default.template.js.map +1 -0
- package/dist/templates/starter/categories/food-drink/index.d.ts +9 -0
- package/dist/templates/starter/categories/food-drink/index.d.ts.map +1 -0
- package/dist/templates/starter/categories/food-drink/index.js +11 -0
- package/dist/templates/starter/categories/food-drink/index.js.map +1 -0
- package/dist/templates/starter/categories/food-drink/routes.d.ts +11 -0
- package/dist/templates/starter/categories/food-drink/routes.d.ts.map +1 -0
- package/dist/templates/starter/categories/food-drink/routes.js +49 -0
- package/dist/templates/starter/categories/food-drink/routes.js.map +1 -0
- package/dist/templates/starter/categories/food-drink/screens.d.ts +5 -0
- package/dist/templates/starter/categories/food-drink/screens.d.ts.map +1 -0
- package/dist/templates/starter/categories/food-drink/screens.js +92 -0
- package/dist/templates/starter/categories/food-drink/screens.js.map +1 -0
- package/dist/templates/starter/categories/health-fitness/content.d.ts +80 -0
- package/dist/templates/starter/categories/health-fitness/content.d.ts.map +1 -0
- package/dist/templates/starter/categories/health-fitness/content.js +100 -0
- package/dist/templates/starter/categories/health-fitness/content.js.map +1 -0
- package/dist/templates/starter/categories/health-fitness/default.template.d.ts +4 -0
- package/dist/templates/starter/categories/health-fitness/default.template.d.ts.map +1 -0
- package/dist/templates/starter/categories/health-fitness/default.template.js +17 -0
- package/dist/templates/starter/categories/health-fitness/default.template.js.map +1 -0
- package/dist/templates/starter/categories/health-fitness/index.d.ts +9 -0
- package/dist/templates/starter/categories/health-fitness/index.d.ts.map +1 -0
- package/dist/templates/starter/categories/health-fitness/index.js +11 -0
- package/dist/templates/starter/categories/health-fitness/index.js.map +1 -0
- package/dist/templates/starter/categories/health-fitness/routes.d.ts +11 -0
- package/dist/templates/starter/categories/health-fitness/routes.d.ts.map +1 -0
- package/dist/templates/starter/categories/health-fitness/routes.js +49 -0
- package/dist/templates/starter/categories/health-fitness/routes.js.map +1 -0
- package/dist/templates/starter/categories/health-fitness/screens.d.ts +5 -0
- package/dist/templates/starter/categories/health-fitness/screens.d.ts.map +1 -0
- package/dist/templates/starter/categories/health-fitness/screens.js +88 -0
- package/dist/templates/starter/categories/health-fitness/screens.js.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/content.d.ts +80 -0
- package/dist/templates/starter/categories/shopping-commerce/content.d.ts.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/content.js +100 -0
- package/dist/templates/starter/categories/shopping-commerce/content.js.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/default.template.d.ts +4 -0
- package/dist/templates/starter/categories/shopping-commerce/default.template.d.ts.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/default.template.js +17 -0
- package/dist/templates/starter/categories/shopping-commerce/default.template.js.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/index.d.ts +9 -0
- package/dist/templates/starter/categories/shopping-commerce/index.d.ts.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/index.js +11 -0
- package/dist/templates/starter/categories/shopping-commerce/index.js.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/routes.d.ts +11 -0
- package/dist/templates/starter/categories/shopping-commerce/routes.d.ts.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/routes.js +49 -0
- package/dist/templates/starter/categories/shopping-commerce/routes.js.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/screens.d.ts +5 -0
- package/dist/templates/starter/categories/shopping-commerce/screens.d.ts.map +1 -0
- package/dist/templates/starter/categories/shopping-commerce/screens.js +88 -0
- package/dist/templates/starter/categories/shopping-commerce/screens.js.map +1 -0
- package/dist/templates/starter/categories/social-community/community.template.d.ts +4 -0
- package/dist/templates/starter/categories/social-community/community.template.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/community.template.js +17 -0
- package/dist/templates/starter/categories/social-community/community.template.js.map +1 -0
- package/dist/templates/starter/categories/social-community/content.d.ts +183 -0
- package/dist/templates/starter/categories/social-community/content.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/content.js +231 -0
- package/dist/templates/starter/categories/social-community/content.js.map +1 -0
- package/dist/templates/starter/categories/social-community/creator.template.d.ts +4 -0
- package/dist/templates/starter/categories/social-community/creator.template.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/creator.template.js +17 -0
- package/dist/templates/starter/categories/social-community/creator.template.js.map +1 -0
- package/dist/templates/starter/categories/social-community/index.d.ts +10 -0
- package/dist/templates/starter/categories/social-community/index.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/index.js +25 -0
- package/dist/templates/starter/categories/social-community/index.js.map +1 -0
- package/dist/templates/starter/categories/social-community/routes.community.d.ts +11 -0
- package/dist/templates/starter/categories/social-community/routes.community.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/routes.community.js +49 -0
- package/dist/templates/starter/categories/social-community/routes.community.js.map +1 -0
- package/dist/templates/starter/categories/social-community/routes.creator.d.ts +11 -0
- package/dist/templates/starter/categories/social-community/routes.creator.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/routes.creator.js +49 -0
- package/dist/templates/starter/categories/social-community/routes.creator.js.map +1 -0
- package/dist/templates/starter/categories/social-community/screens.community.d.ts +5 -0
- package/dist/templates/starter/categories/social-community/screens.community.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/screens.community.js +95 -0
- package/dist/templates/starter/categories/social-community/screens.community.js.map +1 -0
- package/dist/templates/starter/categories/social-community/screens.creator.d.ts +5 -0
- package/dist/templates/starter/categories/social-community/screens.creator.d.ts.map +1 -0
- package/dist/templates/starter/categories/social-community/screens.creator.js +95 -0
- package/dist/templates/starter/categories/social-community/screens.creator.js.map +1 -0
- package/dist/templates/starter/index.d.ts +2 -0
- package/dist/templates/starter/index.d.ts.map +1 -0
- package/dist/templates/starter/index.js +2 -0
- package/dist/templates/starter/index.js.map +1 -0
- package/dist/templates/starter/starter.registry.d.ts +5 -0
- package/dist/templates/starter/starter.registry.d.ts.map +1 -0
- package/dist/templates/starter/starter.registry.js +34 -0
- package/dist/templates/starter/starter.registry.js.map +1 -0
- package/dist/templates/starter/starter.template.d.ts +6 -0
- package/dist/templates/starter/starter.template.d.ts.map +1 -0
- package/dist/templates/starter/starter.template.js +8 -0
- package/dist/templates/starter/starter.template.js.map +1 -0
- package/dist/templates/starter/starter.types.d.ts +33 -0
- package/dist/templates/starter/starter.types.d.ts.map +1 -0
- package/dist/templates/starter/starter.types.js +2 -0
- package/dist/templates/starter/starter.types.js.map +1 -0
- package/dist/templates/starter.template.d.ts +1 -18
- package/dist/templates/starter.template.d.ts.map +1 -1
- package/dist/templates/starter.template.js +1 -214
- package/dist/templates/starter.template.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { createScreen, createZoraNode } from '../../../shared';
|
|
2
|
+
const DEFAULT_FOCUS_AREAS = [
|
|
3
|
+
'Primary experience',
|
|
4
|
+
'Supporting content',
|
|
5
|
+
'Operational settings',
|
|
6
|
+
];
|
|
7
|
+
export function createFallbackScreens(seed, idPrefix, screenIds) {
|
|
8
|
+
const focusAreas = seed.focusAreas ?? DEFAULT_FOCUS_AREAS;
|
|
9
|
+
return {
|
|
10
|
+
[screenIds.home]: createScreen({
|
|
11
|
+
id: screenIds.home,
|
|
12
|
+
name: 'Home',
|
|
13
|
+
title: seed.appName,
|
|
14
|
+
description: `Starter experience for ${seed.categoryLabel}.`,
|
|
15
|
+
root: createZoraNode(`${idPrefix}-home-page`, 'Page', { width: 'wide', testID: `${idPrefix}-home-page` }, [
|
|
16
|
+
createZoraNode(`${idPrefix}-home-header`, 'PageHeader', {
|
|
17
|
+
eyebrow: seed.categoryLabel,
|
|
18
|
+
title: seed.appName,
|
|
19
|
+
description: `Starter experience for ${seed.summary}.`,
|
|
20
|
+
}),
|
|
21
|
+
createZoraNode(`${idPrefix}-home-section`, 'PageSection', {
|
|
22
|
+
title: 'Launch surface',
|
|
23
|
+
description: 'Use this starter as the base for navigation, content modules, and onboarding.',
|
|
24
|
+
}, [
|
|
25
|
+
createZoraNode(`${idPrefix}-overview-panel`, 'Panel', {
|
|
26
|
+
title: 'Preset-driven structure',
|
|
27
|
+
description: 'Templates define layout and flows. Presets inject category branding and defaults.',
|
|
28
|
+
tone: 'subtle',
|
|
29
|
+
}, [
|
|
30
|
+
createZoraNode(`${idPrefix}-overview-notice`, 'Notice', {
|
|
31
|
+
title: 'ZORA-first authoring',
|
|
32
|
+
description: 'This screen uses ZORA layout and pattern nodes instead of legacy Surface-only trees.',
|
|
33
|
+
tone: 'primary',
|
|
34
|
+
}),
|
|
35
|
+
createZoraNode(`${idPrefix}-focus-card-1`, 'Card', {
|
|
36
|
+
eyebrow: 'Focus area',
|
|
37
|
+
title: focusAreas[0],
|
|
38
|
+
description: `Use this panel to shape the primary ${seed.categoryLabel.toLowerCase()} flow.`,
|
|
39
|
+
tone: 'outline',
|
|
40
|
+
}),
|
|
41
|
+
createZoraNode(`${idPrefix}-focus-card-2`, 'Card', {
|
|
42
|
+
eyebrow: 'Focus area',
|
|
43
|
+
title: focusAreas[1],
|
|
44
|
+
description: 'Add the supporting content, filters, and state to match your product.',
|
|
45
|
+
tone: 'outline',
|
|
46
|
+
}),
|
|
47
|
+
createZoraNode(`${idPrefix}-focus-card-3`, 'Card', {
|
|
48
|
+
eyebrow: 'Focus area',
|
|
49
|
+
title: focusAreas[2],
|
|
50
|
+
description: 'Keep the third block flexible for analytics, recommendations, or community features.',
|
|
51
|
+
tone: 'outline',
|
|
52
|
+
}),
|
|
53
|
+
createZoraNode(`${idPrefix}-overview-button`, 'Button', {
|
|
54
|
+
children: 'Customize this starter',
|
|
55
|
+
tone: 'primary',
|
|
56
|
+
emphasis: 'solid',
|
|
57
|
+
size: 'm',
|
|
58
|
+
fullWidth: true,
|
|
59
|
+
}),
|
|
60
|
+
]),
|
|
61
|
+
]),
|
|
62
|
+
]),
|
|
63
|
+
}),
|
|
64
|
+
[screenIds.details]: createScreen({
|
|
65
|
+
id: screenIds.details,
|
|
66
|
+
name: 'Details',
|
|
67
|
+
title: 'Details',
|
|
68
|
+
description: 'Secondary informational screen for the starter template.',
|
|
69
|
+
root: createZoraNode(`${idPrefix}-details-page`, 'Page', { width: 'default' }, [
|
|
70
|
+
createZoraNode(`${idPrefix}-details-header`, 'PageHeader', {
|
|
71
|
+
eyebrow: 'Starter module',
|
|
72
|
+
title: 'Detail screen',
|
|
73
|
+
description: 'Use this route for previews, drill-downs, or richer storytelling.',
|
|
74
|
+
}),
|
|
75
|
+
createZoraNode(`${idPrefix}-details-section`, 'PageSection', {
|
|
76
|
+
title: 'Placeholder state',
|
|
77
|
+
description: 'Replace the placeholder with ZORA cards, panels, or task-specific layouts.',
|
|
78
|
+
}, [
|
|
79
|
+
createZoraNode(`${idPrefix}-details-empty`, 'EmptyState', {
|
|
80
|
+
eyebrow: seed.categoryLabel,
|
|
81
|
+
title: 'Ready for detail content',
|
|
82
|
+
description: 'The starter keeps a secondary route available so navigation can evolve without structural rewrites.',
|
|
83
|
+
}),
|
|
84
|
+
]),
|
|
85
|
+
]),
|
|
86
|
+
}),
|
|
87
|
+
[screenIds.settings]: createScreen({
|
|
88
|
+
id: screenIds.settings,
|
|
89
|
+
name: 'Settings',
|
|
90
|
+
title: 'Settings',
|
|
91
|
+
description: 'Configuration screen for starter defaults.',
|
|
92
|
+
root: createZoraNode(`${idPrefix}-settings-page`, 'Page', { width: 'default' }, [
|
|
93
|
+
createZoraNode(`${idPrefix}-settings-header`, 'PageHeader', {
|
|
94
|
+
eyebrow: 'Operations',
|
|
95
|
+
title: 'Settings',
|
|
96
|
+
description: 'Starter defaults for localization, auth flow, and deployment assumptions.',
|
|
97
|
+
}),
|
|
98
|
+
createZoraNode(`${idPrefix}-settings-section`, 'PageSection', {
|
|
99
|
+
title: 'Manifest defaults',
|
|
100
|
+
description: 'These rows mirror the baseline config shipped with the template package.',
|
|
101
|
+
}, [
|
|
102
|
+
createZoraNode(`${idPrefix}-settings-header-row`, 'SectionHeader', {
|
|
103
|
+
title: 'Initial configuration',
|
|
104
|
+
description: 'Tune these values or override them at generation time.',
|
|
105
|
+
}),
|
|
106
|
+
createZoraNode(`${idPrefix}-settings-row-locale`, 'SettingsRow', {
|
|
107
|
+
title: 'Default locale',
|
|
108
|
+
description: 'Localization starts with a single default locale.',
|
|
109
|
+
meta: 'en',
|
|
110
|
+
}),
|
|
111
|
+
createZoraNode(`${idPrefix}-settings-row-auth`, 'SettingsRow', {
|
|
112
|
+
title: 'Auth scope',
|
|
113
|
+
description: 'Global auth is enabled in the base infra profile.',
|
|
114
|
+
meta: 'global',
|
|
115
|
+
}),
|
|
116
|
+
createZoraNode(`${idPrefix}-settings-row-deploy`, 'SettingsRow', {
|
|
117
|
+
title: 'Deployment target',
|
|
118
|
+
description: 'The starter ships with a local minikube deployment target.',
|
|
119
|
+
meta: 'minikube',
|
|
120
|
+
}),
|
|
121
|
+
]),
|
|
122
|
+
]),
|
|
123
|
+
}),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=screens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/fallback/screens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export declare const foodDrinkContent: {
|
|
2
|
+
readonly discover: {
|
|
3
|
+
readonly eyebrow: "Restaurant discovery";
|
|
4
|
+
readonly title: "Discover what is ready now";
|
|
5
|
+
readonly description: "Highlight locations, featured dishes, and timely offers for food and drink apps.";
|
|
6
|
+
readonly sections: readonly [{
|
|
7
|
+
readonly title: "Featured today";
|
|
8
|
+
readonly description: "Give the first screen strong restaurant and dish signals.";
|
|
9
|
+
readonly cards: readonly [{
|
|
10
|
+
readonly eyebrow: "Chef pick";
|
|
11
|
+
readonly title: "Roasted cauliflower bowl";
|
|
12
|
+
readonly description: "A sample featured dish with dietary tags and prep notes.";
|
|
13
|
+
}, {
|
|
14
|
+
readonly eyebrow: "Nearby";
|
|
15
|
+
readonly title: "Downtown lunch menu";
|
|
16
|
+
readonly description: "Reserve this card for location-aware recommendations.";
|
|
17
|
+
}];
|
|
18
|
+
}];
|
|
19
|
+
};
|
|
20
|
+
readonly menu: {
|
|
21
|
+
readonly eyebrow: "Menu";
|
|
22
|
+
readonly title: "Menu sections and dietary tags";
|
|
23
|
+
readonly description: "Organize dishes by course, preference, availability, and service window.";
|
|
24
|
+
readonly sections: readonly [{
|
|
25
|
+
readonly title: "Menu structure";
|
|
26
|
+
readonly description: "Start with the sections a restaurant or ordering app needs.";
|
|
27
|
+
readonly cards: readonly [{
|
|
28
|
+
readonly eyebrow: "Lunch";
|
|
29
|
+
readonly title: "Seasonal mains";
|
|
30
|
+
readonly description: "Group dishes by service window and kitchen availability.";
|
|
31
|
+
}, {
|
|
32
|
+
readonly eyebrow: "Dietary";
|
|
33
|
+
readonly title: "Vegetarian and gluten-free";
|
|
34
|
+
readonly description: "Keep dietary tags visible before runtime filtering is added.";
|
|
35
|
+
}];
|
|
36
|
+
}];
|
|
37
|
+
};
|
|
38
|
+
readonly reservations: {
|
|
39
|
+
readonly eyebrow: "Booking";
|
|
40
|
+
readonly title: "Reservations and table requests";
|
|
41
|
+
readonly description: "Prepare a booking surface for time, party size, and special requests.";
|
|
42
|
+
readonly sections: readonly [{
|
|
43
|
+
readonly title: "Upcoming service";
|
|
44
|
+
readonly description: "Model the states needed for restaurant booking workflows.";
|
|
45
|
+
readonly cards: readonly [{
|
|
46
|
+
readonly eyebrow: "Tonight";
|
|
47
|
+
readonly title: "Two tables at 19:30";
|
|
48
|
+
readonly description: "Show booked, waitlisted, and open capacity states.";
|
|
49
|
+
}, {
|
|
50
|
+
readonly eyebrow: "Request";
|
|
51
|
+
readonly title: "Patio preference";
|
|
52
|
+
readonly description: "Reserve space for guest notes and seating preferences.";
|
|
53
|
+
}];
|
|
54
|
+
}];
|
|
55
|
+
};
|
|
56
|
+
readonly orders: {
|
|
57
|
+
readonly eyebrow: "Orders";
|
|
58
|
+
readonly title: "Current and recent orders";
|
|
59
|
+
readonly description: "Track pickup, delivery, dine-in, and loyalty activity.";
|
|
60
|
+
readonly sections: readonly [{
|
|
61
|
+
readonly title: "Order states";
|
|
62
|
+
readonly description: "Seed the route with realistic fulfillment placeholders.";
|
|
63
|
+
readonly cards: readonly [{
|
|
64
|
+
readonly eyebrow: "Preparing";
|
|
65
|
+
readonly title: "Order #1048";
|
|
66
|
+
readonly description: "A current order row with status and ETA.";
|
|
67
|
+
}, {
|
|
68
|
+
readonly eyebrow: "Past order";
|
|
69
|
+
readonly title: "Friday dinner pickup";
|
|
70
|
+
readonly description: "A previous order row for receipts and reordering.";
|
|
71
|
+
}];
|
|
72
|
+
}];
|
|
73
|
+
};
|
|
74
|
+
readonly profile: {
|
|
75
|
+
readonly eyebrow: "Guest profile";
|
|
76
|
+
readonly title: "Preferences and loyalty";
|
|
77
|
+
readonly description: "Keep dietary preferences, favorite locations, and rewards visible.";
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/content.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGnB,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export const foodDrinkContent = {
|
|
2
|
+
discover: {
|
|
3
|
+
eyebrow: 'Restaurant discovery',
|
|
4
|
+
title: 'Discover what is ready now',
|
|
5
|
+
description: 'Highlight locations, featured dishes, and timely offers for food and drink apps.',
|
|
6
|
+
sections: [
|
|
7
|
+
{
|
|
8
|
+
title: 'Featured today',
|
|
9
|
+
description: 'Give the first screen strong restaurant and dish signals.',
|
|
10
|
+
cards: [
|
|
11
|
+
{
|
|
12
|
+
eyebrow: 'Chef pick',
|
|
13
|
+
title: 'Roasted cauliflower bowl',
|
|
14
|
+
description: 'A sample featured dish with dietary tags and prep notes.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
eyebrow: 'Nearby',
|
|
18
|
+
title: 'Downtown lunch menu',
|
|
19
|
+
description: 'Reserve this card for location-aware recommendations.',
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
menu: {
|
|
26
|
+
eyebrow: 'Menu',
|
|
27
|
+
title: 'Menu sections and dietary tags',
|
|
28
|
+
description: 'Organize dishes by course, preference, availability, and service window.',
|
|
29
|
+
sections: [
|
|
30
|
+
{
|
|
31
|
+
title: 'Menu structure',
|
|
32
|
+
description: 'Start with the sections a restaurant or ordering app needs.',
|
|
33
|
+
cards: [
|
|
34
|
+
{
|
|
35
|
+
eyebrow: 'Lunch',
|
|
36
|
+
title: 'Seasonal mains',
|
|
37
|
+
description: 'Group dishes by service window and kitchen availability.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
eyebrow: 'Dietary',
|
|
41
|
+
title: 'Vegetarian and gluten-free',
|
|
42
|
+
description: 'Keep dietary tags visible before runtime filtering is added.',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
reservations: {
|
|
49
|
+
eyebrow: 'Booking',
|
|
50
|
+
title: 'Reservations and table requests',
|
|
51
|
+
description: 'Prepare a booking surface for time, party size, and special requests.',
|
|
52
|
+
sections: [
|
|
53
|
+
{
|
|
54
|
+
title: 'Upcoming service',
|
|
55
|
+
description: 'Model the states needed for restaurant booking workflows.',
|
|
56
|
+
cards: [
|
|
57
|
+
{
|
|
58
|
+
eyebrow: 'Tonight',
|
|
59
|
+
title: 'Two tables at 19:30',
|
|
60
|
+
description: 'Show booked, waitlisted, and open capacity states.',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
eyebrow: 'Request',
|
|
64
|
+
title: 'Patio preference',
|
|
65
|
+
description: 'Reserve space for guest notes and seating preferences.',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
orders: {
|
|
72
|
+
eyebrow: 'Orders',
|
|
73
|
+
title: 'Current and recent orders',
|
|
74
|
+
description: 'Track pickup, delivery, dine-in, and loyalty activity.',
|
|
75
|
+
sections: [
|
|
76
|
+
{
|
|
77
|
+
title: 'Order states',
|
|
78
|
+
description: 'Seed the route with realistic fulfillment placeholders.',
|
|
79
|
+
cards: [
|
|
80
|
+
{
|
|
81
|
+
eyebrow: 'Preparing',
|
|
82
|
+
title: 'Order #1048',
|
|
83
|
+
description: 'A current order row with status and ETA.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
eyebrow: 'Past order',
|
|
87
|
+
title: 'Friday dinner pickup',
|
|
88
|
+
description: 'A previous order row for receipts and reordering.',
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
profile: {
|
|
95
|
+
eyebrow: 'Guest profile',
|
|
96
|
+
title: 'Preferences and loyalty',
|
|
97
|
+
description: 'Keep dietary preferences, favorite locations, and rewards visible.',
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,EAAE;QACR,OAAO,EAAE,sBAAsB;QAC/B,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,kFAAkF;QAC/F,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,2DAA2D;gBACxE,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,WAAW;wBACpB,KAAK,EAAE,0BAA0B;wBACjC,WAAW,EAAE,0DAA0D;qBACxE;oBACD;wBACE,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,qBAAqB;wBAC5B,WAAW,EAAE,uDAAuD;qBACrE;iBACF;aACF;SACF;KACF;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,0EAA0E;QACvF,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,6DAA6D;gBAC1E,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,gBAAgB;wBACvB,WAAW,EAAE,0DAA0D;qBACxE;oBACD;wBACE,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,4BAA4B;wBACnC,WAAW,EAAE,8DAA8D;qBAC5E;iBACF;aACF;SACF;KACF;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,2DAA2D;gBACxE,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,qBAAqB;wBAC5B,WAAW,EAAE,oDAAoD;qBAClE;oBACD;wBACE,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,kBAAkB;wBACzB,WAAW,EAAE,wDAAwD;qBACtE;iBACF;aACF;SACF;KACF;IACD,MAAM,EAAE;QACN,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,cAAc;gBACrB,WAAW,EAAE,yDAAyD;gBACtE,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,WAAW;wBACpB,KAAK,EAAE,aAAa;wBACpB,WAAW,EAAE,0CAA0C;qBACxD;oBACD;wBACE,OAAO,EAAE,YAAY;wBACrB,KAAK,EAAE,sBAAsB;wBAC7B,WAAW,EAAE,mDAAmD;qBACjE;iBACF;aACF;SACF;KACF;IACD,OAAO,EAAE;QACP,OAAO,EAAE,eAAe;QACxB,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,oEAAoE;KAClF;CACO,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.template.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/default.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAY9E"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DEFAULT_TEMPLATE_VERSION } from '../../../../internal/defaults';
|
|
2
|
+
import { createManifestShell, createTheme } from '../../../shared';
|
|
3
|
+
import { createFoodDrinkNavigator, createFoodDrinkScreenIds } from './routes';
|
|
4
|
+
import { createFoodDrinkScreens } from './screens';
|
|
5
|
+
export function createFoodDrinkStarterTemplate(seed) {
|
|
6
|
+
const idPrefix = `${seed.category}-starter`;
|
|
7
|
+
const theme = createTheme(seed);
|
|
8
|
+
const screenIds = createFoodDrinkScreenIds(idPrefix);
|
|
9
|
+
return createManifestShell({
|
|
10
|
+
seed,
|
|
11
|
+
theme,
|
|
12
|
+
version: seed.version ?? DEFAULT_TEMPLATE_VERSION,
|
|
13
|
+
navigator: createFoodDrinkNavigator(screenIds),
|
|
14
|
+
screens: createFoodDrinkScreens(seed, idPrefix, screenIds),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=default.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.template.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/default.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,UAAU,8BAA8B,CAAC,IAAkB;IAC/D,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,UAAU,CAAC;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IAErD,OAAO,mBAAmB,CAAC;QACzB,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,wBAAwB,CAAC,SAAS,CAAC;QAC9C,OAAO,EAAE,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createFoodDrinkStarterTemplate } from './default.template';
|
|
2
|
+
export { createFoodDrinkStarterTemplate } from './default.template';
|
|
3
|
+
export declare const foodDrinkStarterTemplates: {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
description: string;
|
|
7
|
+
create: typeof createFoodDrinkStarterTemplate;
|
|
8
|
+
}[];
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,eAAO,MAAM,yBAAyB;;;;;GAOkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFoodDrinkStarterTemplate } from './default.template';
|
|
2
|
+
export { createFoodDrinkStarterTemplate } from './default.template';
|
|
3
|
+
export const foodDrinkStarterTemplates = [
|
|
4
|
+
{
|
|
5
|
+
id: 'default',
|
|
6
|
+
label: 'Restaurant and ordering',
|
|
7
|
+
description: 'A discover, menu, reservations, orders, and profile starter for food apps.',
|
|
8
|
+
create: createFoodDrinkStarterTemplate,
|
|
9
|
+
},
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,yBAAyB;QAChC,WAAW,EAAE,4EAA4E;QACzF,MAAM,EAAE,8BAA8B;KACvC;CACqD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AppManifest } from '@ankhorage/contracts';
|
|
2
|
+
export interface FoodDrinkScreenIds {
|
|
3
|
+
discover: string;
|
|
4
|
+
menu: string;
|
|
5
|
+
reservations: string;
|
|
6
|
+
orders: string;
|
|
7
|
+
profile: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function createFoodDrinkScreenIds(idPrefix: string): FoodDrinkScreenIds;
|
|
10
|
+
export declare function createFoodDrinkNavigator(screenIds: FoodDrinkScreenIds): AppManifest['navigator'];
|
|
11
|
+
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAQ7E;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC,CAqChG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { createRoute } from '../../../shared';
|
|
2
|
+
export function createFoodDrinkScreenIds(idPrefix) {
|
|
3
|
+
return {
|
|
4
|
+
discover: `${idPrefix}-discover`,
|
|
5
|
+
menu: `${idPrefix}-menu`,
|
|
6
|
+
reservations: `${idPrefix}-reservations`,
|
|
7
|
+
orders: `${idPrefix}-orders`,
|
|
8
|
+
profile: `${idPrefix}-profile`,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export function createFoodDrinkNavigator(screenIds) {
|
|
12
|
+
return {
|
|
13
|
+
type: 'tabs',
|
|
14
|
+
initialRouteName: 'index',
|
|
15
|
+
routes: [
|
|
16
|
+
createRoute({
|
|
17
|
+
name: 'index',
|
|
18
|
+
screenId: screenIds.discover,
|
|
19
|
+
label: 'Discover',
|
|
20
|
+
icon: { provider: 'material-community', name: 'silverware-fork-knife' },
|
|
21
|
+
}),
|
|
22
|
+
createRoute({
|
|
23
|
+
name: 'menu',
|
|
24
|
+
screenId: screenIds.menu,
|
|
25
|
+
label: 'Menu',
|
|
26
|
+
icon: { provider: 'material-community', name: 'book-open-page-variant-outline' },
|
|
27
|
+
}),
|
|
28
|
+
createRoute({
|
|
29
|
+
name: 'reservations',
|
|
30
|
+
screenId: screenIds.reservations,
|
|
31
|
+
label: 'Reservations',
|
|
32
|
+
icon: { provider: 'material-community', name: 'calendar-clock-outline' },
|
|
33
|
+
}),
|
|
34
|
+
createRoute({
|
|
35
|
+
name: 'orders',
|
|
36
|
+
screenId: screenIds.orders,
|
|
37
|
+
label: 'Orders',
|
|
38
|
+
icon: { provider: 'material-community', name: 'receipt-text-outline' },
|
|
39
|
+
}),
|
|
40
|
+
createRoute({
|
|
41
|
+
name: 'profile',
|
|
42
|
+
screenId: screenIds.profile,
|
|
43
|
+
label: 'Profile',
|
|
44
|
+
icon: { provider: 'material-community', name: 'account-heart-outline' },
|
|
45
|
+
}),
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAU9C,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,OAAO;QACL,QAAQ,EAAE,GAAG,QAAQ,WAAW;QAChC,IAAI,EAAE,GAAG,QAAQ,OAAO;QACxB,YAAY,EAAE,GAAG,QAAQ,eAAe;QACxC,MAAM,EAAE,GAAG,QAAQ,SAAS;QAC5B,OAAO,EAAE,GAAG,QAAQ,UAAU;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAA6B;IACpE,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,gBAAgB,EAAE,OAAO;QACzB,MAAM,EAAE;YACN,WAAW,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,uBAAuB,EAAE;aACxE,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,SAAS,CAAC,IAAI;gBACxB,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,gCAAgC,EAAE;aACjF,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,SAAS,CAAC,YAAY;gBAChC,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,wBAAwB,EAAE;aACzE,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,SAAS,CAAC,MAAM;gBAC1B,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,sBAAsB,EAAE;aACvE,CAAC;YACF,WAAW,CAAC;gBACV,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,SAAS,CAAC,OAAO;gBAC3B,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,uBAAuB,EAAE;aACxE,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AppManifest } from '@ankhorage/contracts';
|
|
2
|
+
import type { TemplateSeed } from '../../starter.types';
|
|
3
|
+
import type { FoodDrinkScreenIds } from './routes';
|
|
4
|
+
export declare function createFoodDrinkScreens(seed: TemplateSeed, idPrefix: string, screenIds: FoodDrinkScreenIds): AppManifest['screens'];
|
|
5
|
+
//# sourceMappingURL=screens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/screens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAyEnD,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,kBAAkB,GAC5B,WAAW,CAAC,SAAS,CAAC,CAiExB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { createHeader, createPage, createScreen, createSection, createSettingsSection, createZoraNode, } from '../../../shared';
|
|
2
|
+
import { foodDrinkContent } from './content';
|
|
3
|
+
function createFoodDrinkContentScreen(args) {
|
|
4
|
+
const sectionNodes = args.content.sections.map((section, sectionIndex) => createSection(`${args.idPrefix}-${args.name.toLowerCase()}-section-${sectionIndex + 1}`, { title: section.title, description: section.description }, [
|
|
5
|
+
createZoraNode(`${args.idPrefix}-${args.name.toLowerCase()}-panel-${sectionIndex + 1}`, 'Panel', {
|
|
6
|
+
title: section.title,
|
|
7
|
+
description: section.description,
|
|
8
|
+
tone: 'subtle',
|
|
9
|
+
}, section.cards.map((card, cardIndex) => createZoraNode(`${args.idPrefix}-${args.name.toLowerCase()}-card-${sectionIndex + 1}-${cardIndex + 1}`, 'Card', {
|
|
10
|
+
eyebrow: card.eyebrow,
|
|
11
|
+
title: card.title,
|
|
12
|
+
description: card.description,
|
|
13
|
+
tone: 'outline',
|
|
14
|
+
}))),
|
|
15
|
+
]));
|
|
16
|
+
return createScreen({
|
|
17
|
+
id: args.screenId,
|
|
18
|
+
name: args.name,
|
|
19
|
+
title: args.content.title,
|
|
20
|
+
description: args.content.description,
|
|
21
|
+
root: createPage(`${args.idPrefix}-${args.name.toLowerCase()}-page`, { width: 'wide' }, [
|
|
22
|
+
createHeader(`${args.idPrefix}-${args.name.toLowerCase()}-header`, {
|
|
23
|
+
eyebrow: args.content.eyebrow,
|
|
24
|
+
title: args.content.title,
|
|
25
|
+
description: args.content.description,
|
|
26
|
+
}),
|
|
27
|
+
...sectionNodes,
|
|
28
|
+
]),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export function createFoodDrinkScreens(seed, idPrefix, screenIds) {
|
|
32
|
+
return {
|
|
33
|
+
[screenIds.discover]: createFoodDrinkContentScreen({
|
|
34
|
+
idPrefix,
|
|
35
|
+
screenId: screenIds.discover,
|
|
36
|
+
name: 'Discover',
|
|
37
|
+
content: foodDrinkContent.discover,
|
|
38
|
+
}),
|
|
39
|
+
[screenIds.menu]: createFoodDrinkContentScreen({
|
|
40
|
+
idPrefix,
|
|
41
|
+
screenId: screenIds.menu,
|
|
42
|
+
name: 'Menu',
|
|
43
|
+
content: foodDrinkContent.menu,
|
|
44
|
+
}),
|
|
45
|
+
[screenIds.reservations]: createFoodDrinkContentScreen({
|
|
46
|
+
idPrefix,
|
|
47
|
+
screenId: screenIds.reservations,
|
|
48
|
+
name: 'Reservations',
|
|
49
|
+
content: foodDrinkContent.reservations,
|
|
50
|
+
}),
|
|
51
|
+
[screenIds.orders]: createFoodDrinkContentScreen({
|
|
52
|
+
idPrefix,
|
|
53
|
+
screenId: screenIds.orders,
|
|
54
|
+
name: 'Orders',
|
|
55
|
+
content: foodDrinkContent.orders,
|
|
56
|
+
}),
|
|
57
|
+
[screenIds.profile]: createScreen({
|
|
58
|
+
id: screenIds.profile,
|
|
59
|
+
name: 'Profile',
|
|
60
|
+
title: foodDrinkContent.profile.title,
|
|
61
|
+
description: foodDrinkContent.profile.description,
|
|
62
|
+
root: createPage(`${idPrefix}-profile-page`, { width: 'default' }, [
|
|
63
|
+
createHeader(`${idPrefix}-profile-header`, {
|
|
64
|
+
eyebrow: foodDrinkContent.profile.eyebrow,
|
|
65
|
+
title: foodDrinkContent.profile.title,
|
|
66
|
+
description: foodDrinkContent.profile.description,
|
|
67
|
+
}),
|
|
68
|
+
createSettingsSection(`${idPrefix}-profile`, 'Guest defaults', 'Model the account fields a restaurant app needs before runtime profile wiring.', [
|
|
69
|
+
{
|
|
70
|
+
id: 'dietary-row',
|
|
71
|
+
title: 'Dietary preferences',
|
|
72
|
+
description: 'Vegetarian, gluten-free, allergens, and favorite cuisines.',
|
|
73
|
+
meta: 'editable',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 'loyalty-row',
|
|
77
|
+
title: 'Loyalty status',
|
|
78
|
+
description: 'Reward points and membership tier can be attached here.',
|
|
79
|
+
meta: 'starter',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'auth-row',
|
|
83
|
+
title: 'Auth scope',
|
|
84
|
+
description: `${seed.categoryLabel} inherits the manifest infra auth setting.`,
|
|
85
|
+
meta: 'global',
|
|
86
|
+
},
|
|
87
|
+
]),
|
|
88
|
+
]),
|
|
89
|
+
}),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=screens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/food-drink/screens.ts"],"names":[],"mappings":"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"}
|