@ankhorage/templates 7.0.3 → 8.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.
- package/CHANGELOG.md +10 -0
- package/dist/authoring/compose-category-manifest.d.ts +40 -0
- package/dist/authoring/compose-category-manifest.d.ts.map +1 -0
- package/dist/authoring/compose-category-manifest.js +150 -0
- package/dist/authoring/compose-category-manifest.js.map +1 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +5 -2
- package/dist/catalog.js.map +1 -1
- package/dist/design/category-source.d.ts +557 -0
- package/dist/design/category-source.d.ts.map +1 -0
- package/dist/design/category-source.js +578 -0
- package/dist/design/category-source.js.map +1 -0
- package/dist/design/category-theme.d.ts +44 -0
- package/dist/design/category-theme.d.ts.map +1 -0
- package/dist/design/category-theme.js +146 -0
- package/dist/design/category-theme.js.map +1 -0
- package/dist/design/category-types.d.ts +73 -0
- package/dist/design/category-types.d.ts.map +1 -0
- package/dist/design/category-types.js +3 -0
- package/dist/design/category-types.js.map +1 -0
- package/dist/design/tone-catalog.d.ts +29 -0
- package/dist/design/tone-catalog.d.ts.map +1 -0
- package/dist/design/tone-catalog.js +254 -0
- package/dist/design/tone-catalog.js.map +1 -0
- package/dist/generators/create-category-app.d.ts.map +1 -1
- package/dist/generators/create-category-app.js +8 -2
- package/dist/generators/create-category-app.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/presets/category-presets.d.ts +4 -10
- package/dist/presets/category-presets.d.ts.map +1 -1
- package/dist/presets/category-presets.js +101 -209
- package/dist/presets/category-presets.js.map +1 -1
- package/dist/templates/shared/create-theme.d.ts +1 -0
- package/dist/templates/shared/create-theme.d.ts.map +1 -1
- package/dist/templates/shared/create-theme.js +2 -0
- package/dist/templates/shared/create-theme.js.map +1 -1
- package/dist/templates/starter/starter.registry.d.ts.map +1 -1
- package/dist/templates/starter/starter.registry.js +6 -11
- package/dist/templates/starter/starter.registry.js.map +1 -1
- package/dist/templates/starter/starter.template.d.ts.map +1 -1
- package/dist/templates/starter/starter.template.js +2 -1
- package/dist/templates/starter/starter.template.js.map +1 -1
- package/dist/templates/starter/starter.types.d.ts +1 -0
- package/dist/templates/starter/starter.types.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/templates/starter/categories/fallback/default.template.d.ts +0 -4
- package/dist/templates/starter/categories/fallback/default.template.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/default.template.js +0 -17
- package/dist/templates/starter/categories/fallback/default.template.js.map +0 -1
- package/dist/templates/starter/categories/fallback/index.d.ts +0 -8
- package/dist/templates/starter/categories/fallback/index.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/index.js +0 -10
- package/dist/templates/starter/categories/fallback/index.js.map +0 -1
- package/dist/templates/starter/categories/fallback/routes.d.ts +0 -9
- package/dist/templates/starter/categories/fallback/routes.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/routes.js +0 -20
- package/dist/templates/starter/categories/fallback/routes.js.map +0 -1
- package/dist/templates/starter/categories/fallback/screens.d.ts +0 -5
- package/dist/templates/starter/categories/fallback/screens.d.ts.map +0 -1
- package/dist/templates/starter/categories/fallback/screens.js +0 -133
- package/dist/templates/starter/categories/fallback/screens.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @ankhorage/templates
|
|
2
2
|
|
|
3
|
+
## 8.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 407303f: Make Templates the canonical owner of reconciled category design presets, the exhaustive mode-aware tone-pair catalog, ZORA-compiled category theme resolution, and deterministic manifest authoring diagnostics. Replace the former singular `primaryColor` and `harmony` preset fields with ordered reviewed recommendations, add durable intent/font/density/shape direction, and remove the invalid unknown-category fallback.
|
|
8
|
+
|
|
9
|
+
CHANGE REQUIRED: update `@ankhorage/zora` from `^3.3.3` to `^4.0.0` and add the direct `@ankhorage/color-theory` dependency used to construct branded compiler contrast inputs. Templates now consumes the ZORA 4 theme compiler and canonical MissingElement metadata.
|
|
10
|
+
|
|
11
|
+
VERIFIED: NO CHANGE REQUIRED for ZORA 3.3.4; that release only refreshed Surface and introduced no Templates API migration beyond the ZORA 4 compiler adoption above.
|
|
12
|
+
|
|
3
13
|
## 7.0.3
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type AppCategory, type AppManifest, type ComponentDataBindingRegistry, type DataSourceRegistry, type NavigatorSpec, type ScreenSpec } from '@ankhorage/contracts';
|
|
2
|
+
import { type CategoryDesignOverrides } from '../design/category-theme';
|
|
3
|
+
export type TemplateAuthoringState = 'draft' | 'release';
|
|
4
|
+
export type TemplateCompositionStatus = 'blocked' | 'ready';
|
|
5
|
+
export type TemplateCompositionDiagnosticCode = 'invalid-manifest' | 'missing-element' | 'missing-route-screen' | 'theme-compilation-error' | 'theme-intent-warning';
|
|
6
|
+
export interface TemplateCompositionDiagnostic {
|
|
7
|
+
readonly code: TemplateCompositionDiagnosticCode;
|
|
8
|
+
readonly severity: 'error' | 'warning';
|
|
9
|
+
readonly path: string;
|
|
10
|
+
readonly message: string;
|
|
11
|
+
readonly nodeId?: string;
|
|
12
|
+
readonly requestedCapability?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ComposeCategoryAppManifestInput {
|
|
15
|
+
readonly category: AppCategory;
|
|
16
|
+
readonly name?: string;
|
|
17
|
+
readonly slug?: string;
|
|
18
|
+
readonly version?: string;
|
|
19
|
+
readonly navigator: NavigatorSpec;
|
|
20
|
+
readonly screens: Readonly<Record<string, ScreenSpec>>;
|
|
21
|
+
readonly dataSources?: DataSourceRegistry;
|
|
22
|
+
readonly dataBindings?: ComponentDataBindingRegistry;
|
|
23
|
+
readonly modules?: readonly string[];
|
|
24
|
+
readonly modulesConfig?: Readonly<Record<string, unknown>>;
|
|
25
|
+
readonly theme?: CategoryDesignOverrides;
|
|
26
|
+
readonly authoringState?: TemplateAuthoringState;
|
|
27
|
+
}
|
|
28
|
+
export interface CategoryAppManifestComposition {
|
|
29
|
+
readonly manifest: AppManifest;
|
|
30
|
+
readonly diagnostics: readonly TemplateCompositionDiagnostic[];
|
|
31
|
+
readonly status: TemplateCompositionStatus;
|
|
32
|
+
readonly authoringState: TemplateAuthoringState;
|
|
33
|
+
}
|
|
34
|
+
/*** Validate one canonical manifest for catalog registration or release finalization. */
|
|
35
|
+
export declare function validateTemplateManifest(manifest: AppManifest, authoringState?: TemplateAuthoringState): CategoryAppManifestComposition;
|
|
36
|
+
/*** Compose canonical manifest inputs with a category/theme shell and explicit diagnostics. */
|
|
37
|
+
export declare function composeCategoryAppManifest(input: ComposeCategoryAppManifestInput): CategoryAppManifestComposition;
|
|
38
|
+
/*** Fail catalog registration or release finalization while any blocker remains. */
|
|
39
|
+
export declare function assertTemplateManifestReady(composition: CategoryAppManifestComposition): AppManifest;
|
|
40
|
+
//# sourceMappingURL=compose-category-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-category-manifest.d.ts","sourceRoot":"","sources":["../../src/authoring/compose-category-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAElB,KAAK,UAAU,EAEhB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,uBAAuB,EAAyB,MAAM,0BAA0B,CAAC;AAI/F,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AACzD,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,OAAO,CAAC;AAC5D,MAAM,MAAM,iCAAiC,GACzC,kBAAkB,GAClB,iBAAiB,GACjB,sBAAsB,GACtB,yBAAyB,GACzB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,iCAAiC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,4BAA4B,CAAC;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC;CAClD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,sBAAsB,CAAC;CACjD;AAED,yFAAyF;AACzF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EACrB,cAAc,GAAE,sBAAkC,GACjD,8BAA8B,CAsBhC;AA+FD,+FAA+F;AAC/F,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,GACrC,8BAA8B,CAmChC;AAED,oFAAoF;AACpF,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,8BAA8B,GAC1C,WAAW,CAUb"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { parseAppManifest, } from '@ankhorage/contracts';
|
|
2
|
+
import { ZORA_COMPONENT_META } from '@ankhorage/zora/metadata';
|
|
3
|
+
import { compileCategoryDesign } from '../design/category-theme';
|
|
4
|
+
import { BASE_INFRA, BASE_SETTINGS, DEFAULT_TEMPLATE_VERSION } from '../internal/defaults';
|
|
5
|
+
import { createManifestShell } from '../templates/shared/create-manifest-shell';
|
|
6
|
+
/*** Validate one canonical manifest for catalog registration or release finalization. */
|
|
7
|
+
export function validateTemplateManifest(manifest, authoringState = 'release') {
|
|
8
|
+
const parsed = parseAppManifest(manifest);
|
|
9
|
+
const diagnostics = [
|
|
10
|
+
...collectRouteDiagnostics(manifest.navigator, manifest.screens),
|
|
11
|
+
...collectMissingElementDiagnostics(manifest.screens),
|
|
12
|
+
...(parsed.ok
|
|
13
|
+
? []
|
|
14
|
+
: [
|
|
15
|
+
{
|
|
16
|
+
code: 'invalid-manifest',
|
|
17
|
+
severity: 'error',
|
|
18
|
+
path: 'manifest',
|
|
19
|
+
message: parsed.message,
|
|
20
|
+
},
|
|
21
|
+
]),
|
|
22
|
+
];
|
|
23
|
+
return {
|
|
24
|
+
manifest,
|
|
25
|
+
diagnostics,
|
|
26
|
+
status: diagnostics.some((diagnostic) => diagnostic.severity === 'error') ? 'blocked' : 'ready',
|
|
27
|
+
authoringState,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/*** Read a manifest string prop without treating arbitrary values as valid authoring metadata. */
|
|
31
|
+
function resolveStringProp(node, key) {
|
|
32
|
+
const value = Reflect.get(node.props ?? {}, key);
|
|
33
|
+
return typeof value === 'string' && value.trim() ? value : undefined;
|
|
34
|
+
}
|
|
35
|
+
/*** Ask ZORA metadata whether a manifest node is the canonical draft placeholder. */
|
|
36
|
+
function isMissingElement(node) {
|
|
37
|
+
const metadata = ZORA_COMPONENT_META.MissingElement;
|
|
38
|
+
if (!metadata)
|
|
39
|
+
throw new Error('ZORA metadata does not expose MissingElement.');
|
|
40
|
+
return node.type === metadata.name;
|
|
41
|
+
}
|
|
42
|
+
/*** Visit every manifest child branch, including repeat empty-state nodes. */
|
|
43
|
+
function visitNode(node, path, visitor) {
|
|
44
|
+
visitor(node, path);
|
|
45
|
+
node.children?.forEach((child, index) => visitNode(child, `${path}.children[${index}]`, visitor));
|
|
46
|
+
node.repeat?.empty?.forEach((child, index) => visitNode(child, `${path}.repeat.empty[${index}]`, visitor));
|
|
47
|
+
}
|
|
48
|
+
/*** Report every canonical ZORA MissingElement with its requested capability and location. */
|
|
49
|
+
function collectMissingElementDiagnostics(screens) {
|
|
50
|
+
const diagnostics = [];
|
|
51
|
+
for (const [screenId, screen] of Object.entries(screens)) {
|
|
52
|
+
visitNode(screen.root, `screens.${screenId}.root`, (node, path) => {
|
|
53
|
+
if (!isMissingElement(node))
|
|
54
|
+
return;
|
|
55
|
+
const requestedCapability = resolveStringProp(node, 'requestedCapability') ?? 'Unspecified interface capability';
|
|
56
|
+
diagnostics.push({
|
|
57
|
+
code: 'missing-element',
|
|
58
|
+
severity: 'error',
|
|
59
|
+
path,
|
|
60
|
+
nodeId: node.id,
|
|
61
|
+
requestedCapability,
|
|
62
|
+
message: `Node "${node.id}" requires missing capability "${requestedCapability}".`,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return diagnostics;
|
|
67
|
+
}
|
|
68
|
+
/*** Validate every route target recursively against the canonical screen registry. */
|
|
69
|
+
function collectRouteDiagnostics(navigator, screens, path = 'navigator') {
|
|
70
|
+
return navigator.routes.flatMap((route, index) => {
|
|
71
|
+
const routePath = `${path}.routes[${index}]`;
|
|
72
|
+
const own = route.screenId && !Reflect.has(screens, route.screenId)
|
|
73
|
+
? [
|
|
74
|
+
{
|
|
75
|
+
code: 'missing-route-screen',
|
|
76
|
+
severity: 'error',
|
|
77
|
+
path: `${routePath}.screenId`,
|
|
78
|
+
message: `Route "${route.name}" references unknown screen "${route.screenId}".`,
|
|
79
|
+
},
|
|
80
|
+
]
|
|
81
|
+
: [];
|
|
82
|
+
return route.navigator
|
|
83
|
+
? [...own, ...collectRouteDiagnostics(route.navigator, screens, `${routePath}.navigator`)]
|
|
84
|
+
: own;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/*** Convert owner theme evidence into template composition diagnostics. */
|
|
88
|
+
function collectThemeDiagnostics(design) {
|
|
89
|
+
const intent = design.diagnostics.map((diagnostic) => ({
|
|
90
|
+
code: 'theme-intent-warning',
|
|
91
|
+
severity: diagnostic.severity,
|
|
92
|
+
path: `theme.${diagnostic.path}`,
|
|
93
|
+
message: diagnostic.message,
|
|
94
|
+
}));
|
|
95
|
+
const compilation = design.computedTheme.diagnostics.map((diagnostic) => ({
|
|
96
|
+
code: 'theme-compilation-error',
|
|
97
|
+
severity: 'error',
|
|
98
|
+
path: `theme.${diagnostic.path}`,
|
|
99
|
+
message: diagnostic.message,
|
|
100
|
+
}));
|
|
101
|
+
return [...intent, ...compilation];
|
|
102
|
+
}
|
|
103
|
+
/*** Compose canonical manifest inputs with a category/theme shell and explicit diagnostics. */
|
|
104
|
+
export function composeCategoryAppManifest(input) {
|
|
105
|
+
const design = compileCategoryDesign(input.category, input.theme);
|
|
106
|
+
const { preset } = design;
|
|
107
|
+
const manifest = {
|
|
108
|
+
...createManifestShell({
|
|
109
|
+
seed: {
|
|
110
|
+
category: input.category,
|
|
111
|
+
appName: input.name ?? preset.defaultName,
|
|
112
|
+
slug: input.slug ?? preset.defaultSlug,
|
|
113
|
+
},
|
|
114
|
+
theme: design.themeConfig,
|
|
115
|
+
version: input.version ?? DEFAULT_TEMPLATE_VERSION,
|
|
116
|
+
navigator: input.navigator,
|
|
117
|
+
screens: { ...input.screens },
|
|
118
|
+
}),
|
|
119
|
+
infra: {
|
|
120
|
+
...structuredClone(BASE_INFRA),
|
|
121
|
+
modules: [...(input.modules ?? [])],
|
|
122
|
+
...(input.modulesConfig ? { modulesConfig: structuredClone(input.modulesConfig) } : {}),
|
|
123
|
+
},
|
|
124
|
+
settings: structuredClone(BASE_SETTINGS),
|
|
125
|
+
...(input.dataSources ? { dataSources: structuredClone(input.dataSources) } : {}),
|
|
126
|
+
...(input.dataBindings ? { dataBindings: structuredClone(input.dataBindings) } : {}),
|
|
127
|
+
};
|
|
128
|
+
const validation = validateTemplateManifest(manifest, input.authoringState);
|
|
129
|
+
const diagnostics = [
|
|
130
|
+
...collectThemeDiagnostics(design),
|
|
131
|
+
...validation.diagnostics,
|
|
132
|
+
];
|
|
133
|
+
return {
|
|
134
|
+
manifest,
|
|
135
|
+
diagnostics,
|
|
136
|
+
status: diagnostics.some((diagnostic) => diagnostic.severity === 'error') ? 'blocked' : 'ready',
|
|
137
|
+
authoringState: validation.authoringState,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/*** Fail catalog registration or release finalization while any blocker remains. */
|
|
141
|
+
export function assertTemplateManifestReady(composition) {
|
|
142
|
+
if (composition.status === 'blocked' || composition.authoringState !== 'release') {
|
|
143
|
+
const reasons = composition.diagnostics
|
|
144
|
+
.filter((diagnostic) => diagnostic.severity === 'error')
|
|
145
|
+
.map((diagnostic) => `${diagnostic.path}: ${diagnostic.message}`);
|
|
146
|
+
throw new Error(`Template manifest is not release-ready.${reasons.length ? ` ${reasons.join(' ')}` : ''}`);
|
|
147
|
+
}
|
|
148
|
+
return composition.manifest;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=compose-category-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-category-manifest.js","sourceRoot":"","sources":["../../src/authoring/compose-category-manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAUrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,oBAAoB,EAAE,CAQ3F;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,sBAAsB,GAC/B,oBAAoB,CAoBtB;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,GAAG,WAAW,CAUd"}
|
package/dist/catalog.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveCategoryDesignPreset } from './design/category-theme.js';
|
|
1
2
|
import { CATEGORY_PRESETS } from './presets/category-presets.js';
|
|
2
3
|
import { createStarterTemplate, listStarterTemplateSummaries, } from './templates/starter/index.js';
|
|
3
4
|
import { createTemplateSelector } from './templateSelector.js';
|
|
@@ -43,6 +44,7 @@ function createTemplateCatalogEntry(summary) {
|
|
|
43
44
|
}
|
|
44
45
|
function createTemplateSeed(args) {
|
|
45
46
|
const preset = CATEGORY_PRESETS[args.category];
|
|
47
|
+
const design = resolveCategoryDesignPreset(args.category);
|
|
46
48
|
return {
|
|
47
49
|
category: args.category,
|
|
48
50
|
categoryLabel: preset.label,
|
|
@@ -50,8 +52,9 @@ function createTemplateSeed(args) {
|
|
|
50
52
|
slug: args.projectSlug,
|
|
51
53
|
summary: preset.summary,
|
|
52
54
|
focusAreas: preset.focusAreas,
|
|
53
|
-
primaryColor:
|
|
54
|
-
harmony:
|
|
55
|
+
primaryColor: design.primaryColor,
|
|
56
|
+
harmony: design.harmony,
|
|
57
|
+
theme: design.themeConfig,
|
|
55
58
|
};
|
|
56
59
|
}
|
|
57
60
|
//# sourceMappingURL=catalog.js.map
|
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAG7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAU/D,MAAM,UAAU,mBAAmB,CAAC,QAAsB;IACxD,MAAM,OAAO,GAAG,4BAA4B,EAAE,CAAC;IAE/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAAgC;IAEhC,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAC5D,CAAC;IAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CACnE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAClC,CAAC;IAEF,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,QAAQ,kCAAkC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,QAAQ,2BAA2B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC3G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,IAIzC;IACC,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAChC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC,IAAI,EAAE;QACjC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;KACrC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,4BAA4B;IACnC,OAAO,4BAA4B,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,0BAA0B,CAAC,OAA+B;IACjE,OAAO;QACL,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QAC9D,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,EAAE;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAI3B;IACC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|