@ankhorage/templates 0.1.1 → 1.1.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 (173) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +73 -13
  3. package/dist/generators/create-category-app.d.ts +1 -1
  4. package/dist/generators/create-category-app.d.ts.map +1 -1
  5. package/dist/generators/create-category-app.js +1 -1
  6. package/dist/generators/create-category-app.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/internal/defaults.d.ts.map +1 -1
  12. package/dist/internal/defaults.js +8 -6
  13. package/dist/internal/defaults.js.map +1 -1
  14. package/dist/internal/zora-nodes.d.ts +11 -4
  15. package/dist/internal/zora-nodes.d.ts.map +1 -1
  16. package/dist/internal/zora-nodes.js.map +1 -1
  17. package/dist/templates/shared/auth.d.ts +4 -0
  18. package/dist/templates/shared/auth.d.ts.map +1 -0
  19. package/dist/templates/shared/auth.js +4 -0
  20. package/dist/templates/shared/auth.js.map +1 -0
  21. package/dist/templates/shared/create-manifest-shell.d.ts +13 -0
  22. package/dist/templates/shared/create-manifest-shell.d.ts.map +1 -0
  23. package/dist/templates/shared/create-manifest-shell.js +18 -0
  24. package/dist/templates/shared/create-manifest-shell.js.map +1 -0
  25. package/dist/templates/shared/create-theme.d.ts +10 -0
  26. package/dist/templates/shared/create-theme.d.ts.map +1 -0
  27. package/dist/templates/shared/create-theme.js +19 -0
  28. package/dist/templates/shared/create-theme.js.map +1 -0
  29. package/dist/templates/shared/index.d.ts +7 -0
  30. package/dist/templates/shared/index.d.ts.map +1 -0
  31. package/dist/templates/shared/index.js +7 -0
  32. package/dist/templates/shared/index.js.map +1 -0
  33. package/dist/templates/shared/route.d.ts +10 -0
  34. package/dist/templates/shared/route.d.ts.map +1 -0
  35. package/dist/templates/shared/route.js +9 -0
  36. package/dist/templates/shared/route.js.map +1 -0
  37. package/dist/templates/shared/screen.d.ts +9 -0
  38. package/dist/templates/shared/screen.d.ts.map +1 -0
  39. package/dist/templates/shared/screen.js +10 -0
  40. package/dist/templates/shared/screen.js.map +1 -0
  41. package/dist/templates/shared/zora-node-helpers.d.ts +13 -0
  42. package/dist/templates/shared/zora-node-helpers.d.ts.map +1 -0
  43. package/dist/templates/shared/zora-node-helpers.js +28 -0
  44. package/dist/templates/shared/zora-node-helpers.js.map +1 -0
  45. package/dist/templates/starter/categories/fallback/default.template.d.ts +4 -0
  46. package/dist/templates/starter/categories/fallback/default.template.d.ts.map +1 -0
  47. package/dist/templates/starter/categories/fallback/default.template.js +17 -0
  48. package/dist/templates/starter/categories/fallback/default.template.js.map +1 -0
  49. package/dist/templates/starter/categories/fallback/index.d.ts +9 -0
  50. package/dist/templates/starter/categories/fallback/index.d.ts.map +1 -0
  51. package/dist/templates/starter/categories/fallback/index.js +11 -0
  52. package/dist/templates/starter/categories/fallback/index.js.map +1 -0
  53. package/dist/templates/starter/categories/fallback/routes.d.ts +10 -0
  54. package/dist/templates/starter/categories/fallback/routes.d.ts.map +1 -0
  55. package/dist/templates/starter/categories/fallback/routes.js +22 -0
  56. package/dist/templates/starter/categories/fallback/routes.js.map +1 -0
  57. package/dist/templates/starter/categories/fallback/screens.d.ts +5 -0
  58. package/dist/templates/starter/categories/fallback/screens.d.ts.map +1 -0
  59. package/dist/templates/starter/categories/fallback/screens.js +172 -0
  60. package/dist/templates/starter/categories/fallback/screens.js.map +1 -0
  61. package/dist/templates/starter/categories/food-drink/content.d.ts +80 -0
  62. package/dist/templates/starter/categories/food-drink/content.d.ts.map +1 -0
  63. package/dist/templates/starter/categories/food-drink/content.js +100 -0
  64. package/dist/templates/starter/categories/food-drink/content.js.map +1 -0
  65. package/dist/templates/starter/categories/food-drink/default.template.d.ts +4 -0
  66. package/dist/templates/starter/categories/food-drink/default.template.d.ts.map +1 -0
  67. package/dist/templates/starter/categories/food-drink/default.template.js +17 -0
  68. package/dist/templates/starter/categories/food-drink/default.template.js.map +1 -0
  69. package/dist/templates/starter/categories/food-drink/index.d.ts +9 -0
  70. package/dist/templates/starter/categories/food-drink/index.d.ts.map +1 -0
  71. package/dist/templates/starter/categories/food-drink/index.js +11 -0
  72. package/dist/templates/starter/categories/food-drink/index.js.map +1 -0
  73. package/dist/templates/starter/categories/food-drink/routes.d.ts +11 -0
  74. package/dist/templates/starter/categories/food-drink/routes.d.ts.map +1 -0
  75. package/dist/templates/starter/categories/food-drink/routes.js +49 -0
  76. package/dist/templates/starter/categories/food-drink/routes.js.map +1 -0
  77. package/dist/templates/starter/categories/food-drink/screens.d.ts +5 -0
  78. package/dist/templates/starter/categories/food-drink/screens.d.ts.map +1 -0
  79. package/dist/templates/starter/categories/food-drink/screens.js +92 -0
  80. package/dist/templates/starter/categories/food-drink/screens.js.map +1 -0
  81. package/dist/templates/starter/categories/health-fitness/content.d.ts +80 -0
  82. package/dist/templates/starter/categories/health-fitness/content.d.ts.map +1 -0
  83. package/dist/templates/starter/categories/health-fitness/content.js +100 -0
  84. package/dist/templates/starter/categories/health-fitness/content.js.map +1 -0
  85. package/dist/templates/starter/categories/health-fitness/default.template.d.ts +4 -0
  86. package/dist/templates/starter/categories/health-fitness/default.template.d.ts.map +1 -0
  87. package/dist/templates/starter/categories/health-fitness/default.template.js +17 -0
  88. package/dist/templates/starter/categories/health-fitness/default.template.js.map +1 -0
  89. package/dist/templates/starter/categories/health-fitness/index.d.ts +9 -0
  90. package/dist/templates/starter/categories/health-fitness/index.d.ts.map +1 -0
  91. package/dist/templates/starter/categories/health-fitness/index.js +11 -0
  92. package/dist/templates/starter/categories/health-fitness/index.js.map +1 -0
  93. package/dist/templates/starter/categories/health-fitness/routes.d.ts +11 -0
  94. package/dist/templates/starter/categories/health-fitness/routes.d.ts.map +1 -0
  95. package/dist/templates/starter/categories/health-fitness/routes.js +49 -0
  96. package/dist/templates/starter/categories/health-fitness/routes.js.map +1 -0
  97. package/dist/templates/starter/categories/health-fitness/screens.d.ts +5 -0
  98. package/dist/templates/starter/categories/health-fitness/screens.d.ts.map +1 -0
  99. package/dist/templates/starter/categories/health-fitness/screens.js +88 -0
  100. package/dist/templates/starter/categories/health-fitness/screens.js.map +1 -0
  101. package/dist/templates/starter/categories/shopping-commerce/content.d.ts +80 -0
  102. package/dist/templates/starter/categories/shopping-commerce/content.d.ts.map +1 -0
  103. package/dist/templates/starter/categories/shopping-commerce/content.js +100 -0
  104. package/dist/templates/starter/categories/shopping-commerce/content.js.map +1 -0
  105. package/dist/templates/starter/categories/shopping-commerce/default.template.d.ts +4 -0
  106. package/dist/templates/starter/categories/shopping-commerce/default.template.d.ts.map +1 -0
  107. package/dist/templates/starter/categories/shopping-commerce/default.template.js +17 -0
  108. package/dist/templates/starter/categories/shopping-commerce/default.template.js.map +1 -0
  109. package/dist/templates/starter/categories/shopping-commerce/index.d.ts +9 -0
  110. package/dist/templates/starter/categories/shopping-commerce/index.d.ts.map +1 -0
  111. package/dist/templates/starter/categories/shopping-commerce/index.js +11 -0
  112. package/dist/templates/starter/categories/shopping-commerce/index.js.map +1 -0
  113. package/dist/templates/starter/categories/shopping-commerce/routes.d.ts +11 -0
  114. package/dist/templates/starter/categories/shopping-commerce/routes.d.ts.map +1 -0
  115. package/dist/templates/starter/categories/shopping-commerce/routes.js +49 -0
  116. package/dist/templates/starter/categories/shopping-commerce/routes.js.map +1 -0
  117. package/dist/templates/starter/categories/shopping-commerce/screens.d.ts +5 -0
  118. package/dist/templates/starter/categories/shopping-commerce/screens.d.ts.map +1 -0
  119. package/dist/templates/starter/categories/shopping-commerce/screens.js +88 -0
  120. package/dist/templates/starter/categories/shopping-commerce/screens.js.map +1 -0
  121. package/dist/templates/starter/categories/social-community/community.template.d.ts +4 -0
  122. package/dist/templates/starter/categories/social-community/community.template.d.ts.map +1 -0
  123. package/dist/templates/starter/categories/social-community/community.template.js +17 -0
  124. package/dist/templates/starter/categories/social-community/community.template.js.map +1 -0
  125. package/dist/templates/starter/categories/social-community/content.d.ts +183 -0
  126. package/dist/templates/starter/categories/social-community/content.d.ts.map +1 -0
  127. package/dist/templates/starter/categories/social-community/content.js +231 -0
  128. package/dist/templates/starter/categories/social-community/content.js.map +1 -0
  129. package/dist/templates/starter/categories/social-community/creator.template.d.ts +4 -0
  130. package/dist/templates/starter/categories/social-community/creator.template.d.ts.map +1 -0
  131. package/dist/templates/starter/categories/social-community/creator.template.js +17 -0
  132. package/dist/templates/starter/categories/social-community/creator.template.js.map +1 -0
  133. package/dist/templates/starter/categories/social-community/index.d.ts +10 -0
  134. package/dist/templates/starter/categories/social-community/index.d.ts.map +1 -0
  135. package/dist/templates/starter/categories/social-community/index.js +25 -0
  136. package/dist/templates/starter/categories/social-community/index.js.map +1 -0
  137. package/dist/templates/starter/categories/social-community/routes.community.d.ts +11 -0
  138. package/dist/templates/starter/categories/social-community/routes.community.d.ts.map +1 -0
  139. package/dist/templates/starter/categories/social-community/routes.community.js +49 -0
  140. package/dist/templates/starter/categories/social-community/routes.community.js.map +1 -0
  141. package/dist/templates/starter/categories/social-community/routes.creator.d.ts +11 -0
  142. package/dist/templates/starter/categories/social-community/routes.creator.d.ts.map +1 -0
  143. package/dist/templates/starter/categories/social-community/routes.creator.js +49 -0
  144. package/dist/templates/starter/categories/social-community/routes.creator.js.map +1 -0
  145. package/dist/templates/starter/categories/social-community/screens.community.d.ts +5 -0
  146. package/dist/templates/starter/categories/social-community/screens.community.d.ts.map +1 -0
  147. package/dist/templates/starter/categories/social-community/screens.community.js +95 -0
  148. package/dist/templates/starter/categories/social-community/screens.community.js.map +1 -0
  149. package/dist/templates/starter/categories/social-community/screens.creator.d.ts +5 -0
  150. package/dist/templates/starter/categories/social-community/screens.creator.d.ts.map +1 -0
  151. package/dist/templates/starter/categories/social-community/screens.creator.js +95 -0
  152. package/dist/templates/starter/categories/social-community/screens.creator.js.map +1 -0
  153. package/dist/templates/starter/index.d.ts +2 -0
  154. package/dist/templates/starter/index.d.ts.map +1 -0
  155. package/dist/templates/starter/index.js +2 -0
  156. package/dist/templates/starter/index.js.map +1 -0
  157. package/dist/templates/starter/starter.registry.d.ts +5 -0
  158. package/dist/templates/starter/starter.registry.d.ts.map +1 -0
  159. package/dist/templates/starter/starter.registry.js +34 -0
  160. package/dist/templates/starter/starter.registry.js.map +1 -0
  161. package/dist/templates/starter/starter.template.d.ts +6 -0
  162. package/dist/templates/starter/starter.template.d.ts.map +1 -0
  163. package/dist/templates/starter/starter.template.js +8 -0
  164. package/dist/templates/starter/starter.template.js.map +1 -0
  165. package/dist/templates/starter/starter.types.d.ts +33 -0
  166. package/dist/templates/starter/starter.types.d.ts.map +1 -0
  167. package/dist/templates/starter/starter.types.js +2 -0
  168. package/dist/templates/starter/starter.types.js.map +1 -0
  169. package/dist/templates/starter.template.d.ts +1 -18
  170. package/dist/templates/starter.template.d.ts.map +1 -1
  171. package/dist/templates/starter.template.js +1 -214
  172. package/dist/templates/starter.template.js.map +1 -1
  173. package/package.json +17 -7
@@ -0,0 +1,95 @@
1
+ import { createHeader, createPage, createScreen, createSection, createSettingsSection, createZoraNode, } from '../../../shared';
2
+ import { creatorSocialContent } from './content';
3
+ function createCreatorScreen(args) {
4
+ const sectionNodes = args.content.sections.map((section, sectionIndex) => createSection(`${args.idPrefix}-${args.name.toLowerCase()}-section-${sectionIndex + 1}`, {
5
+ title: section.title,
6
+ description: section.description,
7
+ }, [
8
+ createZoraNode(`${args.idPrefix}-${args.name.toLowerCase()}-panel-${sectionIndex + 1}`, 'Panel', {
9
+ title: section.title,
10
+ description: section.description,
11
+ tone: 'subtle',
12
+ }, section.cards.map((card, cardIndex) => createZoraNode(`${args.idPrefix}-${args.name.toLowerCase()}-card-${sectionIndex + 1}-${cardIndex + 1}`, 'Card', {
13
+ eyebrow: card.eyebrow,
14
+ title: card.title,
15
+ description: card.description,
16
+ tone: 'outline',
17
+ }))),
18
+ ]));
19
+ return createScreen({
20
+ id: args.screenId,
21
+ name: args.name,
22
+ title: args.content.title,
23
+ description: args.content.description,
24
+ root: createPage(`${args.idPrefix}-${args.name.toLowerCase()}-page`, { width: 'wide' }, [
25
+ createHeader(`${args.idPrefix}-${args.name.toLowerCase()}-header`, {
26
+ eyebrow: args.content.eyebrow,
27
+ title: args.content.title,
28
+ description: args.content.description,
29
+ }),
30
+ ...sectionNodes,
31
+ ]),
32
+ });
33
+ }
34
+ export function createCreatorSocialScreens(seed, idPrefix, screenIds) {
35
+ return {
36
+ [screenIds.studio]: createCreatorScreen({
37
+ idPrefix,
38
+ screenId: screenIds.studio,
39
+ name: 'Studio',
40
+ content: creatorSocialContent.studio,
41
+ }),
42
+ [screenIds.posts]: createCreatorScreen({
43
+ idPrefix,
44
+ screenId: screenIds.posts,
45
+ name: 'Posts',
46
+ content: creatorSocialContent.posts,
47
+ }),
48
+ [screenIds.audience]: createCreatorScreen({
49
+ idPrefix,
50
+ screenId: screenIds.audience,
51
+ name: 'Audience',
52
+ content: creatorSocialContent.audience,
53
+ }),
54
+ [screenIds.insights]: createCreatorScreen({
55
+ idPrefix,
56
+ screenId: screenIds.insights,
57
+ name: 'Insights',
58
+ content: creatorSocialContent.insights,
59
+ }),
60
+ [screenIds.settings]: createScreen({
61
+ id: screenIds.settings,
62
+ name: 'Settings',
63
+ title: 'Creator settings',
64
+ description: creatorSocialContent.settings.description,
65
+ root: createPage(`${idPrefix}-settings-page`, { width: 'default' }, [
66
+ createHeader(`${idPrefix}-settings-header`, {
67
+ eyebrow: creatorSocialContent.settings.eyebrow,
68
+ title: creatorSocialContent.settings.title,
69
+ description: creatorSocialContent.settings.description,
70
+ }),
71
+ createSettingsSection(`${idPrefix}-settings`, 'Publishing defaults', 'Model profile, notification, and publishing preferences for a creator-led app.', [
72
+ {
73
+ id: 'profile-row',
74
+ title: 'Public profile',
75
+ description: 'Creator profile fields are ready for avatar, bio, and links.',
76
+ meta: 'ready',
77
+ },
78
+ {
79
+ id: 'publish-row',
80
+ title: 'Publishing review',
81
+ description: 'Drafts can move through review before scheduling.',
82
+ meta: 'manual',
83
+ },
84
+ {
85
+ id: 'auth-row',
86
+ title: 'Auth scope',
87
+ description: `${seed.categoryLabel} inherits the manifest infra auth setting.`,
88
+ meta: 'global',
89
+ },
90
+ ]),
91
+ ]),
92
+ }),
93
+ };
94
+ }
95
+ //# sourceMappingURL=screens.creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screens.creator.js","sourceRoot":"","sources":["../../../../../src/templates/starter/categories/social-community/screens.creator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { createStarterTemplate, TEMPLATE_KINDS, type CategoryStarterTemplateDefinition, type StarterTemplateFactory, type StarterTemplateId, type StarterTemplateOptions, type StarterTemplateSelection, type TemplateKind, type TemplateSeed, } from './starter.template';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createStarterTemplate, TEMPLATE_KINDS, } from './starter.template';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/starter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,GAQf,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AppCategory } from '@ankhorage/contracts';
2
+ import type { CategoryStarterTemplateDefinition, TemplateSeed } from './starter.types';
3
+ export declare function resolveStarterTemplate(seed: TemplateSeed, templateId?: string): CategoryStarterTemplateDefinition;
4
+ export declare function listStarterTemplates(category?: AppCategory): readonly CategoryStarterTemplateDefinition[];
5
+ //# sourceMappingURL=starter.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.registry.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOxD,OAAO,KAAK,EAAE,iCAAiC,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqBvF,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,UAAU,SAAY,GACrB,iCAAiC,CAMnC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,WAAW,GACrB,SAAS,iCAAiC,EAAE,CAa9C"}
@@ -0,0 +1,34 @@
1
+ import { fallbackStarterTemplates } from './categories/fallback';
2
+ import { foodDrinkStarterTemplates } from './categories/food-drink';
3
+ import { healthFitnessStarterTemplates } from './categories/health-fitness';
4
+ import { shoppingCommerceStarterTemplates } from './categories/shopping-commerce';
5
+ import { socialCommunityStarterTemplates } from './categories/social-community';
6
+ const STARTER_TEMPLATE_REGISTRY = {
7
+ food_drink: foodDrinkStarterTemplates,
8
+ health_fitness: healthFitnessStarterTemplates,
9
+ shopping_commerce: shoppingCommerceStarterTemplates,
10
+ social_community: socialCommunityStarterTemplates,
11
+ };
12
+ function resolveFallbackTemplate() {
13
+ const fallbackDefault = fallbackStarterTemplates.find((template) => template.id === 'default');
14
+ if (!fallbackDefault) {
15
+ throw new Error('Fallback starter template registry is missing default template.');
16
+ }
17
+ return fallbackDefault;
18
+ }
19
+ export function resolveStarterTemplate(seed, templateId = 'default') {
20
+ const categoryTemplates = STARTER_TEMPLATE_REGISTRY[seed.category];
21
+ const selected = categoryTemplates?.find((template) => template.id === templateId);
22
+ const categoryDefault = categoryTemplates?.find((template) => template.id === 'default');
23
+ return selected ?? categoryDefault ?? resolveFallbackTemplate();
24
+ }
25
+ export function listStarterTemplates(category) {
26
+ if (category) {
27
+ return STARTER_TEMPLATE_REGISTRY[category] ?? fallbackStarterTemplates;
28
+ }
29
+ const registeredTemplates = Object.values(STARTER_TEMPLATE_REGISTRY)
30
+ .filter((templates) => templates !== undefined)
31
+ .flatMap((templates) => templates);
32
+ return [...fallbackStarterTemplates, ...registeredTemplates];
33
+ }
34
+ //# sourceMappingURL=starter.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.registry.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAGhF,MAAM,yBAAyB,GAE3B;IACF,UAAU,EAAE,yBAAyB;IACrC,cAAc,EAAE,6BAA6B;IAC7C,iBAAiB,EAAE,gCAAgC;IACnD,gBAAgB,EAAE,+BAA+B;CAClD,CAAC;AAEF,SAAS,uBAAuB;IAC9B,MAAM,eAAe,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAE/F,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,IAAkB,EAClB,UAAU,GAAG,SAAS;IAEtB,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,iBAAiB,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,iBAAiB,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;IAEzF,OAAO,QAAQ,IAAI,eAAe,IAAI,uBAAuB,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAsB;IAEtB,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,yBAAyB,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC;IACzE,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC;SACjE,MAAM,CACL,CAAC,SAAS,EAA6D,EAAE,CACvE,SAAS,KAAK,SAAS,CAC1B;SACA,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;IAErC,OAAO,CAAC,GAAG,wBAAwB,EAAE,GAAG,mBAAmB,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { AppManifest } from '@ankhorage/contracts';
2
+ import { TEMPLATE_KINDS, type StarterTemplateOptions, type TemplateSeed } from './starter.types';
3
+ export { TEMPLATE_KINDS };
4
+ export type { CategoryStarterTemplateDefinition, StarterTemplateFactory, StarterTemplateId, StarterTemplateOptions, StarterTemplateSelection, TemplateKind, TemplateSeed, } from './starter.types';
5
+ export declare function createStarterTemplate(seed: TemplateSeed, options?: StarterTemplateOptions): AppManifest;
6
+ //# sourceMappingURL=starter.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.template.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EACV,iCAAiC,EACjC,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,sBAA2B,GACnC,WAAW,CAGb"}
@@ -0,0 +1,8 @@
1
+ import { resolveStarterTemplate } from './starter.registry';
2
+ import { TEMPLATE_KINDS } from './starter.types';
3
+ export { TEMPLATE_KINDS };
4
+ export function createStarterTemplate(seed, options = {}) {
5
+ const template = resolveStarterTemplate(seed, options.templateId);
6
+ return template.create(seed, options);
7
+ }
8
+ //# sourceMappingURL=starter.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.template.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAkD,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAAE,cAAc,EAAE,CAAC;AAW1B,MAAM,UAAU,qBAAqB,CACnC,IAAkB,EAClB,UAAkC,EAAE;IAEpC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { AppCategory, AppManifest, ThemeConfig } from '@ankhorage/contracts';
2
+ export declare const TEMPLATE_KINDS: readonly ["starter"];
3
+ export type TemplateKind = (typeof TEMPLATE_KINDS)[number];
4
+ export type StarterTemplateId = string;
5
+ export interface StarterTemplateSelection {
6
+ category: AppCategory;
7
+ templateId?: StarterTemplateId;
8
+ }
9
+ export interface TemplateSeed {
10
+ category: AppCategory;
11
+ categoryLabel: string;
12
+ appName: string;
13
+ slug: string;
14
+ summary: string;
15
+ focusAreas?: readonly [string, string, string];
16
+ primaryColor: string;
17
+ harmony: ThemeConfig['light']['harmony'];
18
+ systemTone: ThemeConfig['light']['systemTone'];
19
+ version?: string;
20
+ themeId?: string;
21
+ themeName?: string;
22
+ }
23
+ export interface StarterTemplateOptions {
24
+ templateId?: StarterTemplateId;
25
+ }
26
+ export type StarterTemplateFactory = (seed: TemplateSeed, options?: StarterTemplateOptions) => AppManifest;
27
+ export interface CategoryStarterTemplateDefinition {
28
+ id: StarterTemplateId;
29
+ label: string;
30
+ description: string;
31
+ create: StarterTemplateFactory;
32
+ }
33
+ //# sourceMappingURL=starter.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.types.d.ts","sourceRoot":"","sources":["../../../src/templates/starter/starter.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAElF,eAAO,MAAM,cAAc,sBAAuB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,sBAAsB,KAC7B,WAAW,CAAC;AAEjB,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,iBAAiB,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,sBAAsB,CAAC;CAChC"}
@@ -0,0 +1,2 @@
1
+ export const TEMPLATE_KINDS = ['starter'];
2
+ //# sourceMappingURL=starter.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter.types.js","sourceRoot":"","sources":["../../../src/templates/starter/starter.types.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAS,CAAU,CAAC"}
@@ -1,19 +1,2 @@
1
- import type { AppCategory, AppManifest, ThemeConfig } from '@ankhorage/contracts';
2
- export declare const TEMPLATE_KINDS: readonly ["starter"];
3
- export type TemplateKind = (typeof TEMPLATE_KINDS)[number];
4
- export interface TemplateSeed {
5
- category: AppCategory;
6
- categoryLabel: string;
7
- appName: string;
8
- slug: string;
9
- summary: string;
10
- focusAreas: readonly [string, string, string];
11
- primaryColor: string;
12
- harmony: ThemeConfig['light']['harmony'];
13
- systemTone: ThemeConfig['light']['systemTone'];
14
- version?: string;
15
- themeId?: string;
16
- themeName?: string;
17
- }
18
- export declare function createStarterTemplate(seed: TemplateSeed): AppManifest;
1
+ export { createStarterTemplate, TEMPLATE_KINDS, type CategoryStarterTemplateDefinition, type StarterTemplateFactory, type StarterTemplateId, type StarterTemplateOptions, type StarterTemplateSelection, type TemplateKind, type TemplateSeed, } from './starter';
19
2
  //# sourceMappingURL=starter.template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"starter.template.d.ts","sourceRoot":"","sources":["../../src/templates/starter.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWlF,eAAO,MAAM,cAAc,sBAAuB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAuPrE"}
1
+ {"version":3,"file":"starter.template.d.ts","sourceRoot":"","sources":["../../src/templates/starter.template.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,KAAK,iCAAiC,EACtC,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,WAAW,CAAC"}
@@ -1,215 +1,2 @@
1
- import { BASE_INFRA, BASE_SETTINGS, DEFAULT_TEMPLATE_VERSION, DEFAULT_THEME_ID, DEFAULT_THEME_NAME, } from '../internal/defaults';
2
- import { createZoraNode } from '../internal/zora-nodes';
3
- export const TEMPLATE_KINDS = ['starter'];
4
- function createTheme(seed) {
5
- const themeId = seed.themeId ?? DEFAULT_THEME_ID;
6
- return {
7
- id: themeId,
8
- name: seed.themeName ?? DEFAULT_THEME_NAME,
9
- light: {
10
- primaryColor: seed.primaryColor,
11
- harmony: seed.harmony,
12
- systemTone: seed.systemTone,
13
- },
14
- dark: {
15
- primaryColor: seed.primaryColor,
16
- harmony: seed.harmony,
17
- systemTone: seed.systemTone,
18
- },
19
- };
20
- }
21
- export function createStarterTemplate(seed) {
22
- const idPrefix = `${seed.category}-starter`;
23
- const theme = createTheme(seed);
24
- const themeId = theme.id;
25
- const version = seed.version ?? DEFAULT_TEMPLATE_VERSION;
26
- const homeScreenId = `${idPrefix}-home`;
27
- const detailsScreenId = `${idPrefix}-details`;
28
- const settingsScreenId = `${idPrefix}-settings`;
29
- const loginScreenId = `${idPrefix}-login`;
30
- return {
31
- metadata: {
32
- name: seed.appName,
33
- slug: seed.slug,
34
- version,
35
- themeId,
36
- },
37
- themes: [theme],
38
- activeThemeId: themeId,
39
- infra: structuredClone(BASE_INFRA),
40
- settings: structuredClone(BASE_SETTINGS),
41
- navigator: {
42
- type: 'stack',
43
- initialRouteName: 'index',
44
- routes: [
45
- { name: 'index', screenId: homeScreenId, label: 'Home' },
46
- { name: 'details', screenId: detailsScreenId, label: 'Details' },
47
- { name: 'settings', screenId: settingsScreenId, label: 'Settings' },
48
- { name: 'login', screenId: loginScreenId, label: 'Login' },
49
- ],
50
- },
51
- screens: {
52
- [homeScreenId]: {
53
- id: homeScreenId,
54
- name: 'Home',
55
- title: seed.appName,
56
- description: `Starter experience for ${seed.categoryLabel}.`,
57
- root: createZoraNode(`${idPrefix}-home-page`, 'Page', { width: 'wide', testID: `${idPrefix}-home-page` }, [
58
- createZoraNode(`${idPrefix}-home-header`, 'PageHeader', {
59
- eyebrow: seed.categoryLabel,
60
- title: seed.appName,
61
- description: `Starter experience for ${seed.summary}.`,
62
- }),
63
- createZoraNode(`${idPrefix}-home-section`, 'PageSection', {
64
- title: 'Launch surface',
65
- description: 'Use this starter as the base for navigation, content modules, and onboarding.',
66
- }, [
67
- createZoraNode(`${idPrefix}-overview-panel`, 'Panel', {
68
- title: 'Preset-driven structure',
69
- description: 'Templates define layout and flows. Presets inject category branding and defaults.',
70
- tone: 'subtle',
71
- }, [
72
- createZoraNode(`${idPrefix}-overview-notice`, 'Notice', {
73
- title: 'ZORA-first authoring',
74
- description: 'This screen uses ZORA layout and pattern nodes instead of legacy Surface-only trees.',
75
- tone: 'primary',
76
- }),
77
- createZoraNode(`${idPrefix}-focus-card-1`, 'Card', {
78
- eyebrow: 'Focus area',
79
- title: seed.focusAreas[0],
80
- description: `Use this panel to shape the primary ${seed.categoryLabel.toLowerCase()} flow.`,
81
- tone: 'outline',
82
- }),
83
- createZoraNode(`${idPrefix}-focus-card-2`, 'Card', {
84
- eyebrow: 'Focus area',
85
- title: seed.focusAreas[1],
86
- description: 'Add the supporting content, filters, and state to match your product.',
87
- tone: 'outline',
88
- }),
89
- createZoraNode(`${idPrefix}-focus-card-3`, 'Card', {
90
- eyebrow: 'Focus area',
91
- title: seed.focusAreas[2],
92
- description: 'Keep the third block flexible for analytics, recommendations, or community features.',
93
- tone: 'outline',
94
- }),
95
- createZoraNode(`${idPrefix}-overview-button`, 'Button', {
96
- children: 'Customize this starter',
97
- tone: 'primary',
98
- emphasis: 'solid',
99
- size: 'm',
100
- fullWidth: true,
101
- }),
102
- ]),
103
- ]),
104
- ]),
105
- },
106
- [detailsScreenId]: {
107
- id: detailsScreenId,
108
- name: 'Details',
109
- title: 'Details',
110
- description: 'Secondary informational screen for the starter template.',
111
- root: createZoraNode(`${idPrefix}-details-page`, 'Page', { width: 'default' }, [
112
- createZoraNode(`${idPrefix}-details-header`, 'PageHeader', {
113
- eyebrow: 'Starter module',
114
- title: 'Detail screen',
115
- description: 'Use this route for previews, drill-downs, or richer storytelling.',
116
- }),
117
- createZoraNode(`${idPrefix}-details-section`, 'PageSection', {
118
- title: 'Placeholder state',
119
- description: 'Replace the placeholder with ZORA cards, panels, or task-specific layouts.',
120
- }, [
121
- createZoraNode(`${idPrefix}-details-empty`, 'EmptyState', {
122
- eyebrow: seed.categoryLabel,
123
- title: 'Ready for detail content',
124
- description: 'The starter keeps a secondary route available so navigation can evolve without structural rewrites.',
125
- }),
126
- ]),
127
- ]),
128
- },
129
- [settingsScreenId]: {
130
- id: settingsScreenId,
131
- name: 'Settings',
132
- title: 'Settings',
133
- description: 'Configuration screen for starter defaults.',
134
- root: createZoraNode(`${idPrefix}-settings-page`, 'Page', { width: 'default' }, [
135
- createZoraNode(`${idPrefix}-settings-header`, 'PageHeader', {
136
- eyebrow: 'Operations',
137
- title: 'Settings',
138
- description: 'Starter defaults for localization, auth flow, and deployment assumptions.',
139
- }),
140
- createZoraNode(`${idPrefix}-settings-section`, 'PageSection', {
141
- title: 'Manifest defaults',
142
- description: 'These rows mirror the baseline config shipped with the template package.',
143
- }, [
144
- createZoraNode(`${idPrefix}-settings-header-row`, 'SectionHeader', {
145
- title: 'Initial configuration',
146
- description: 'Tune these values or override them at generation time.',
147
- }),
148
- createZoraNode(`${idPrefix}-settings-row-locale`, 'SettingsRow', {
149
- title: 'Default locale',
150
- description: 'Localization starts with a single default locale.',
151
- meta: 'en',
152
- }),
153
- createZoraNode(`${idPrefix}-settings-row-auth`, 'SettingsRow', {
154
- title: 'Auth scope',
155
- description: 'Global auth is enabled in the base infra profile.',
156
- meta: 'global',
157
- }),
158
- createZoraNode(`${idPrefix}-settings-row-deploy`, 'SettingsRow', {
159
- title: 'Deployment target',
160
- description: 'The starter ships with a local minikube deployment target.',
161
- meta: 'minikube',
162
- }),
163
- ]),
164
- ]),
165
- },
166
- [loginScreenId]: {
167
- id: loginScreenId,
168
- name: 'Login',
169
- title: 'Login',
170
- description: 'Authentication entrypoint for the starter template.',
171
- root: createZoraNode(`${idPrefix}-auth-layout`, 'AuthLayout', {
172
- eyebrow: seed.categoryLabel,
173
- title: `Sign in to ${seed.appName}`,
174
- description: 'This starter includes a ZORA-based auth shell that matches the default global auth flow.',
175
- footer: 'Swap provider-specific wiring in CLI or Studio while preserving the manifest structure.',
176
- }, [
177
- createZoraNode(`${idPrefix}-auth-notice`, 'Notice', {
178
- title: 'Authentication placeholder',
179
- description: 'Replace inputs and actions with your runtime binding once auth is connected.',
180
- tone: 'neutral',
181
- }),
182
- createZoraNode(`${idPrefix}-auth-email-field`, 'FormField', {
183
- label: 'Email',
184
- description: 'Primary identifier',
185
- required: true,
186
- }, [
187
- createZoraNode(`${idPrefix}-auth-email-input`, 'Input', {
188
- placeholder: 'you@example.com',
189
- autoCapitalize: 'none',
190
- keyboardType: 'email-address',
191
- }),
192
- ]),
193
- createZoraNode(`${idPrefix}-auth-password-field`, 'FormField', {
194
- label: 'Password',
195
- helperText: 'Use a secure password manager in production.',
196
- required: true,
197
- }, [
198
- createZoraNode(`${idPrefix}-auth-password-input`, 'Input', {
199
- placeholder: 'Password',
200
- secureTextEntry: true,
201
- }),
202
- ]),
203
- createZoraNode(`${idPrefix}-auth-submit`, 'Button', {
204
- children: 'Continue',
205
- tone: 'primary',
206
- emphasis: 'solid',
207
- size: 'm',
208
- fullWidth: true,
209
- }),
210
- ]),
211
- },
212
- },
213
- };
214
- }
1
+ export { createStarterTemplate, TEMPLATE_KINDS, } from './starter';
215
2
  //# sourceMappingURL=starter.template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"starter.template.js","sourceRoot":"","sources":["../../src/templates/starter.template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"starter.template.js","sourceRoot":"","sources":["../../src/templates/starter.template.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,cAAc,GAQf,MAAM,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,15 @@
1
1
  {
2
2
  "name": "@ankhorage/templates",
3
- "version": "0.1.1",
3
+ "version": "1.1.0",
4
4
  "description": "Reusable Ankhorage app templates, presets, and manifest generators.",
5
+ "homepage": "https://github.com/ankhorage/templates#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/ankhorage/templates/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/ankhorage/templates.git"
12
+ },
5
13
  "license": "MIT",
6
14
  "type": "module",
7
15
  "publishConfig": {
@@ -28,17 +36,19 @@
28
36
  "format:check": "prettier --check .",
29
37
  "typecheck": "bun x tsc -p tsconfig.json --noEmit && bun x tsc -p tsconfig.test.json --noEmit",
30
38
  "test": "bun test",
31
- "prepublishOnly": "bun run typecheck && bun run build && bun test"
39
+ "prepublishOnly": "bun run typecheck && bun run build && bun test",
40
+ "version-packages": "changeset version"
32
41
  },
33
42
  "dependencies": {
34
- "@ankhorage/contracts": "^0.0.3",
35
- "@ankhorage/zora": "^0.0.2"
43
+ "@ankhorage/contracts": "^0.1.3",
44
+ "@ankhorage/zora": "^0.6.1"
36
45
  },
37
46
  "devDependencies": {
38
- "@ankhorage/devtools": "^1.0.0",
39
- "@types/bun": "^1.3.12",
47
+ "@ankhorage/devtools": "^1.0.1",
48
+ "@changesets/cli": "^2.31.0",
49
+ "@types/bun": "^1.3.13",
40
50
  "@types/react": "^19.2.14",
41
51
  "typescript": "^5.9.3"
42
52
  },
43
- "packageManager": "bun@1.3.11"
53
+ "packageManager": "bun@1.3.13"
44
54
  }