@ikas/component-cli 1.4.0-beta.20 → 1.4.0-beta.200
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build-tools.d.ts +37 -0
- package/dist/build-tools.d.ts.map +1 -0
- package/dist/build-tools.js +36 -0
- package/dist/build-tools.js.map +1 -0
- package/dist/commands/add-sections-to-page.d.ts +3 -0
- package/dist/commands/add-sections-to-page.d.ts.map +1 -0
- package/dist/commands/add-sections-to-page.js +39 -0
- package/dist/commands/add-sections-to-page.js.map +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +11 -2
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +5 -165
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/config.d.ts +35 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +1068 -126
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/create-design-tokens.d.ts +24 -0
- package/dist/commands/create-design-tokens.d.ts.map +1 -0
- package/dist/commands/create-design-tokens.js +327 -0
- package/dist/commands/create-design-tokens.js.map +1 -0
- package/dist/commands/create-global-variable.d.ts +3 -0
- package/dist/commands/create-global-variable.d.ts.map +1 -0
- package/dist/commands/create-global-variable.js +73 -0
- package/dist/commands/create-global-variable.js.map +1 -0
- package/dist/commands/create-page.d.ts +3 -0
- package/dist/commands/create-page.d.ts.map +1 -0
- package/dist/commands/create-page.js +31 -0
- package/dist/commands/create-page.js.map +1 -0
- package/dist/commands/delete-page.d.ts +3 -0
- package/dist/commands/delete-page.d.ts.map +1 -0
- package/dist/commands/delete-page.js +28 -0
- package/dist/commands/delete-page.js.map +1 -0
- package/dist/commands/delete-theme-globals.d.ts +4 -0
- package/dist/commands/delete-theme-globals.d.ts.map +1 -0
- package/dist/commands/delete-theme-globals.js +48 -0
- package/dist/commands/delete-theme-globals.js.map +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +170 -31
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/enable-builtin-pages.d.ts +3 -0
- package/dist/commands/enable-builtin-pages.d.ts.map +1 -0
- package/dist/commands/enable-builtin-pages.js +27 -0
- package/dist/commands/enable-builtin-pages.js.map +1 -0
- package/dist/commands/get-component-props.d.ts +3 -0
- package/dist/commands/get-component-props.d.ts.map +1 -0
- package/dist/commands/get-component-props.js +32 -0
- package/dist/commands/get-component-props.js.map +1 -0
- package/dist/commands/get-page-by-type.d.ts +3 -0
- package/dist/commands/get-page-by-type.d.ts.map +1 -0
- package/dist/commands/get-page-by-type.js +25 -0
- package/dist/commands/get-page-by-type.js.map +1 -0
- package/dist/commands/get-section-values.d.ts +3 -0
- package/dist/commands/get-section-values.d.ts.map +1 -0
- package/dist/commands/get-section-values.js +39 -0
- package/dist/commands/get-section-values.js.map +1 -0
- package/dist/commands/list-builtin-pages.d.ts +3 -0
- package/dist/commands/list-builtin-pages.d.ts.map +1 -0
- package/dist/commands/list-builtin-pages.js +28 -0
- package/dist/commands/list-builtin-pages.js.map +1 -0
- package/dist/commands/list-entities.d.ts +3 -0
- package/dist/commands/list-entities.d.ts.map +1 -0
- package/dist/commands/list-entities.js +32 -0
- package/dist/commands/list-entities.js.map +1 -0
- package/dist/commands/list-page-sections.d.ts.map +1 -1
- package/dist/commands/list-page-sections.js +8 -2
- package/dist/commands/list-page-sections.js.map +1 -1
- package/dist/commands/list-theme-globals.d.ts +3 -0
- package/dist/commands/list-theme-globals.d.ts.map +1 -0
- package/dist/commands/list-theme-globals.js +22 -0
- package/dist/commands/list-theme-globals.js.map +1 -0
- package/dist/commands/move-page-section.d.ts +3 -0
- package/dist/commands/move-page-section.d.ts.map +1 -0
- package/dist/commands/move-page-section.js +62 -0
- package/dist/commands/move-page-section.js.map +1 -0
- package/dist/commands/publish-theme.d.ts +3 -0
- package/dist/commands/publish-theme.d.ts.map +1 -0
- package/dist/commands/publish-theme.js +29 -0
- package/dist/commands/publish-theme.js.map +1 -0
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +54 -3
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/remove-page-section.d.ts +3 -0
- package/dist/commands/remove-page-section.d.ts.map +1 -0
- package/dist/commands/remove-page-section.js +40 -0
- package/dist/commands/remove-page-section.js.map +1 -0
- package/dist/commands/search-products.d.ts +3 -0
- package/dist/commands/search-products.d.ts.map +1 -0
- package/dist/commands/search-products.js +40 -0
- package/dist/commands/search-products.js.map +1 -0
- package/dist/commands/update-builtin-page-prop.d.ts +3 -0
- package/dist/commands/update-builtin-page-prop.d.ts.map +1 -0
- package/dist/commands/update-builtin-page-prop.js +49 -0
- package/dist/commands/update-builtin-page-prop.js.map +1 -0
- package/dist/commands/update-global-variable.d.ts +3 -0
- package/dist/commands/update-global-variable.d.ts.map +1 -0
- package/dist/commands/update-global-variable.js +70 -0
- package/dist/commands/update-global-variable.js.map +1 -0
- package/dist/commands/update-page-sections.d.ts +3 -0
- package/dist/commands/update-page-sections.d.ts.map +1 -0
- package/dist/commands/update-page-sections.js +39 -0
- package/dist/commands/update-page-sections.js.map +1 -0
- package/dist/commands/update-section-prop.d.ts.map +1 -1
- package/dist/commands/update-section-prop.js +25 -8
- package/dist/commands/update-section-prop.js.map +1 -1
- package/dist/commands/upload-image.d.ts.map +1 -1
- package/dist/commands/upload-image.js +5 -46
- package/dist/commands/upload-image.js.map +1 -1
- package/dist/commands/upload-images.d.ts +3 -0
- package/dist/commands/upload-images.d.ts.map +1 -0
- package/dist/commands/upload-images.js +48 -0
- package/dist/commands/upload-images.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/compile.d.ts +17 -2
- package/dist/utils/compile.d.ts.map +1 -1
- package/dist/utils/compile.js +750 -117
- package/dist/utils/compile.js.map +1 -1
- package/dist/utils/component-helpers.d.ts +134 -2
- package/dist/utils/component-helpers.d.ts.map +1 -1
- package/dist/utils/component-helpers.js +360 -29
- package/dist/utils/component-helpers.js.map +1 -1
- package/dist/utils/css-import-resolver.d.ts +4 -1
- package/dist/utils/css-import-resolver.d.ts.map +1 -1
- package/dist/utils/css-import-resolver.js +9 -1
- package/dist/utils/css-import-resolver.js.map +1 -1
- package/dist/utils/editor-action-client.d.ts +4 -3
- package/dist/utils/editor-action-client.d.ts.map +1 -1
- package/dist/utils/editor-action-client.js +55 -19
- package/dist/utils/editor-action-client.js.map +1 -1
- package/dist/utils/esm-transform.d.ts +30 -0
- package/dist/utils/esm-transform.d.ts.map +1 -1
- package/dist/utils/esm-transform.js +169 -2
- package/dist/utils/esm-transform.js.map +1 -1
- package/dist/utils/find-component-for-file.d.ts +12 -0
- package/dist/utils/find-component-for-file.d.ts.map +1 -0
- package/dist/utils/find-component-for-file.js +24 -0
- package/dist/utils/find-component-for-file.js.map +1 -0
- package/dist/utils/forbid-deep-imports.d.ts +3 -0
- package/dist/utils/forbid-deep-imports.d.ts.map +1 -0
- package/dist/utils/forbid-deep-imports.js +54 -0
- package/dist/utils/forbid-deep-imports.js.map +1 -0
- package/dist/utils/forbid-external-packages.d.ts +26 -0
- package/dist/utils/forbid-external-packages.d.ts.map +1 -0
- package/dist/utils/forbid-external-packages.js +99 -0
- package/dist/utils/forbid-external-packages.js.map +1 -0
- package/dist/utils/load-image.d.ts +16 -0
- package/dist/utils/load-image.d.ts.map +1 -0
- package/dist/utils/load-image.js +50 -0
- package/dist/utils/load-image.js.map +1 -0
- package/dist/utils/vendor-storefront.d.ts +13 -0
- package/dist/utils/vendor-storefront.d.ts.map +1 -0
- package/dist/utils/vendor-storefront.js +91 -0
- package/dist/utils/vendor-storefront.js.map +1 -0
- package/dist/utils/websocket-server.d.ts +88 -5
- package/dist/utils/websocket-server.d.ts.map +1 -1
- package/dist/utils/websocket-server.js +241 -44
- package/dist/utils/websocket-server.js.map +1 -1
- package/package.json +17 -2
- package/templates/add/section.css +11 -0
- package/dist/commands/create.d.ts +0 -4
- package/dist/commands/create.d.ts.map +0 -1
- package/dist/commands/create.js +0 -228
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/proxy.d.ts +0 -39
- package/dist/commands/proxy.d.ts.map +0 -1
- package/dist/commands/proxy.js +0 -210
- package/dist/commands/proxy.js.map +0 -1
|
@@ -35,6 +35,40 @@ export function generateUniqueId() {
|
|
|
35
35
|
export function generateComponentId(projectId) {
|
|
36
36
|
return `${projectId}-${generateUniqueId()}`;
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* The editor's publish-id machinery (rewrite-asset-ids.ts, MIN_ROOT_ID_LENGTH = 6)
|
|
40
|
+
* treats a leading run of >=6 alphanumeric characters before a `-`/`_` separator as
|
|
41
|
+
* a strippable project prefix, and republish stability (insert-vs-version matching
|
|
42
|
+
* by source suffix) depends on every projectId satisfying that shape. A projectId
|
|
43
|
+
* that is shorter, or that contains a separator/non-alphanumeric character, shifts
|
|
44
|
+
* the prefix/suffix boundary and silently re-opens the duplicate-element bug.
|
|
45
|
+
* `generateProjectId()` always satisfies this; the check exists because
|
|
46
|
+
* ikas.config.json is hand-editable and parsed without a schema.
|
|
47
|
+
*/
|
|
48
|
+
export const PROJECT_ID_PATTERN = /^[A-Za-z0-9]{6,}$/;
|
|
49
|
+
export function isValidProjectId(projectId) {
|
|
50
|
+
return PROJECT_ID_PATTERN.test(projectId);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A component id is publishable when the editor's prefix-strip machinery parses it
|
|
54
|
+
* unambiguously: either a legacy atomic id (alphanumeric only, no separators) or a
|
|
55
|
+
* `<projectId>-<suffix>` form whose PREFIX meets the same >=6 floor as PROJECT_ID_PATTERN.
|
|
56
|
+
* The prefix must stay >=6 alphanumeric with NO separator (the editor strips exactly one
|
|
57
|
+
* leading `>=MIN_ROOT_ID_LENGTH` run before the first `-`/`_`); a short/separator-bearing
|
|
58
|
+
* prefix shifts that boundary and re-opens the duplicate-element bug.
|
|
59
|
+
*
|
|
60
|
+
* The SUFFIX, however, may be multi-segment (`<projectId>-hero-slider`,
|
|
61
|
+
* `<projectId>-product-detail-add-to-cart`): older CLI configs used human-readable
|
|
62
|
+
* suffixes, and those ids are already placed on published themes so they cannot be
|
|
63
|
+
* renamed. The editor's `normalizeSourceElementId` canonicalizes every suffix separator
|
|
64
|
+
* to `_`, so a hyphenated local suffix and its underscore-sterilized published form
|
|
65
|
+
* normalize to the same republish-invariant key — multi-segment suffixes match stably.
|
|
66
|
+
* Each segment must still be a non-empty alphanumeric run (no trailing/doubled separators).
|
|
67
|
+
*/
|
|
68
|
+
export const COMPONENT_ID_PATTERN = /^(?:[A-Za-z0-9]+|[A-Za-z0-9]{6,}(?:[-_][A-Za-z0-9]+)+)$/;
|
|
69
|
+
export function findInvalidComponentIds(components) {
|
|
70
|
+
return components.filter((c) => !COMPONENT_ID_PATTERN.test(c.id));
|
|
71
|
+
}
|
|
38
72
|
/**
|
|
39
73
|
* Validate that every entry in `input` is the id of a component currently in `components`.
|
|
40
74
|
* Returns the list of unknown entries (empty array means all valid).
|
|
@@ -96,8 +130,8 @@ export const PROP_TYPE_TO_TS = {
|
|
|
96
130
|
COLOR: "string",
|
|
97
131
|
PRODUCT: "IkasProduct | null",
|
|
98
132
|
PRODUCT_LIST: "IkasProductList",
|
|
99
|
-
PRODUCT_ATTRIBUTE: "
|
|
100
|
-
PRODUCT_ATTRIBUTE_LIST: "
|
|
133
|
+
PRODUCT_ATTRIBUTE: "IkasProductAttributeDetail | null",
|
|
134
|
+
PRODUCT_ATTRIBUTE_LIST: "IkasProductAttributeList",
|
|
101
135
|
CATEGORY: "IkasCategory | null",
|
|
102
136
|
CATEGORY_LIST: "IkasCategoryList",
|
|
103
137
|
BRAND: "IkasBrand | null",
|
|
@@ -111,6 +145,21 @@ export const PROP_TYPE_TO_TS = {
|
|
|
111
145
|
COMPONENT: "any",
|
|
112
146
|
COMPONENT_LIST: "any",
|
|
113
147
|
};
|
|
148
|
+
/**
|
|
149
|
+
* Pattern-element ("Font Style" / typography) enum sentinel. The editor builds
|
|
150
|
+
* this synthetic enum at theme time (createPatternElementEnum). Mirror of
|
|
151
|
+
* PATTERN_ELEMENT_ENUM_ID in @ikas/editor-models — kept local to avoid an
|
|
152
|
+
* editor-models dependency in the CLI.
|
|
153
|
+
*/
|
|
154
|
+
export const PATTERN_ELEMENT_ENUM_ID = "__patternElementEnum__";
|
|
155
|
+
/**
|
|
156
|
+
* Built-in enum type ids do not need to exist in config.customTypes: @ikas/*
|
|
157
|
+
* enums ship with the storefront models, and the pattern-element sentinel is
|
|
158
|
+
* resolved by the editor at theme time. Author-defined enums are NOT built-in.
|
|
159
|
+
*/
|
|
160
|
+
export function isBuiltInEnumTypeId(enumTypeId) {
|
|
161
|
+
return (enumTypeId.startsWith("@ikas/") || enumTypeId === PATTERN_ELEMENT_ENUM_ID);
|
|
162
|
+
}
|
|
114
163
|
export function toKebabCase(str) {
|
|
115
164
|
return str
|
|
116
165
|
.replace(/([a-z])([A-Z])/g, "$1-$2")
|
|
@@ -149,14 +198,16 @@ function resolveTypeId(typeId) {
|
|
|
149
198
|
*/
|
|
150
199
|
function resolveCustomEnumTypeName(enumTypeId, editorTypes, customTypes) {
|
|
151
200
|
if (editorTypes) {
|
|
152
|
-
const editorType = editorTypes.find(t => t.id === enumTypeId);
|
|
153
|
-
if (editorType?.enumOptions &&
|
|
201
|
+
const editorType = editorTypes.find((t) => t.id === enumTypeId);
|
|
202
|
+
if (editorType?.enumOptions &&
|
|
203
|
+
Object.keys(editorType.enumOptions).length > 0) {
|
|
154
204
|
return toPascalCase(editorType.name);
|
|
155
205
|
}
|
|
156
206
|
}
|
|
157
207
|
if (customTypes) {
|
|
158
|
-
const customType = customTypes.find(t => t.id === enumTypeId);
|
|
159
|
-
if (customType?.enumOptions &&
|
|
208
|
+
const customType = customTypes.find((t) => t.id === enumTypeId);
|
|
209
|
+
if (customType?.enumOptions &&
|
|
210
|
+
Object.keys(customType.enumOptions).length > 0) {
|
|
160
211
|
return toPascalCase(customType.name);
|
|
161
212
|
}
|
|
162
213
|
}
|
|
@@ -176,7 +227,9 @@ export function generateTypesFile(componentName, props, type, editorTypes, custo
|
|
|
176
227
|
typeIdResolved.set(prop.name, resolved.isArray ? `${resolved.typeName}[]` : resolved.typeName);
|
|
177
228
|
}
|
|
178
229
|
}
|
|
179
|
-
else if (prop.type === "ENUM" &&
|
|
230
|
+
else if (prop.type === "ENUM" &&
|
|
231
|
+
prop.enumTypeId &&
|
|
232
|
+
prop.enumTypeId !== PATTERN_ELEMENT_ENUM_ID) {
|
|
180
233
|
const resolved = resolveTypeId(prop.enumTypeId);
|
|
181
234
|
if (resolved) {
|
|
182
235
|
// Built-in enum — import from @ikas/bp-storefront
|
|
@@ -193,6 +246,9 @@ export function generateTypesFile(componentName, props, type, editorTypes, custo
|
|
|
193
246
|
}
|
|
194
247
|
}
|
|
195
248
|
else {
|
|
249
|
+
// Non-ENUM props, plus the font-style (pattern-element) sentinel whose
|
|
250
|
+
// runtime value is a plain pattern-element id string → PROP_TYPE_TO_TS
|
|
251
|
+
// (PROP_TYPE_TO_TS["ENUM"] === "string"), no import emitted.
|
|
196
252
|
const tsType = PROP_TYPE_TO_TS[prop.type];
|
|
197
253
|
if (tsType?.includes("Ikas")) {
|
|
198
254
|
const matches = tsType.match(/Ikas\w+/g);
|
|
@@ -298,6 +354,96 @@ export function collectUsedCustomTypeIds(customTypes, components) {
|
|
|
298
354
|
}
|
|
299
355
|
return used;
|
|
300
356
|
}
|
|
357
|
+
/**
|
|
358
|
+
* Enum ids referenced by ENUM theme settings. Their union types must be emitted into
|
|
359
|
+
* `global-types.ts` even when no component prop uses the enum, so the setting's value-map
|
|
360
|
+
* entry (and `themeValue()`) can narrow to it.
|
|
361
|
+
*/
|
|
362
|
+
export function collectThemeSettingEnumIds(themeSettings) {
|
|
363
|
+
const ids = new Set();
|
|
364
|
+
for (const s of themeSettings || []) {
|
|
365
|
+
if (s.type === "ENUM" && s.enumTypeId)
|
|
366
|
+
ids.add(s.enumTypeId);
|
|
367
|
+
}
|
|
368
|
+
return ids;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Map a global-variable kind to a TS type. Primitives narrowed; complex kinds stay `any`. An
|
|
372
|
+
* ENUM setting narrows to the union type THIS file declares for its enum: `resolveEnumTypeName`
|
|
373
|
+
* only knows the enums emitted above the theme block, so the map can never name an undeclared
|
|
374
|
+
* identifier. An ENUM whose enum is not emitted here — a deleted type, or a built-in `@ikas/*`
|
|
375
|
+
* enum (which the editor does not accept for a theme global, and whose import from
|
|
376
|
+
* `@ikas/bp-storefront` this generator cannot verify) — degrades to `string`.
|
|
377
|
+
*/
|
|
378
|
+
function themeSettingTsType(setting, resolveEnumTypeName) {
|
|
379
|
+
switch (setting.type) {
|
|
380
|
+
case "NUMBER":
|
|
381
|
+
return "number";
|
|
382
|
+
case "BOOLEAN":
|
|
383
|
+
return "boolean";
|
|
384
|
+
case "TEXT":
|
|
385
|
+
case "RICH_TEXT":
|
|
386
|
+
case "COLOR":
|
|
387
|
+
return "string";
|
|
388
|
+
case "ENUM":
|
|
389
|
+
return ((setting.enumTypeId && resolveEnumTypeName(setting.enumTypeId)) ||
|
|
390
|
+
"string");
|
|
391
|
+
default:
|
|
392
|
+
return "any"; // IMAGE, BORDER, SHADOW — object shapes can drift from runtime
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Import line for the typed theme-globals wrapper. Must sit at the top of the generated
|
|
397
|
+
* file (after the header). Emitted only when there are theme globals.
|
|
398
|
+
*
|
|
399
|
+
* A module augmentation can't deliver key-safety here: the runtime `getThemeSettingValue`
|
|
400
|
+
* is declared `(name: string): any`, so an added narrower overload never wins resolution —
|
|
401
|
+
* unknown keys still match `string` and return `any`. A generated wrapper whose parameter
|
|
402
|
+
* is `ThemeSettingName` (no `string` overload) does reject unknown keys and narrow the value.
|
|
403
|
+
*/
|
|
404
|
+
const THEME_GLOBALS_IMPORT = `import { getThemeSettingValue as _getThemeSettingValueRaw } from "@ikas/bp-storefront";\n`;
|
|
405
|
+
/**
|
|
406
|
+
* Sentinel that marks a generated `global-types.ts` as containing the theme-globals block.
|
|
407
|
+
* This is the exported symbol authors import (stable public API), and it must stay a substring
|
|
408
|
+
* of what {@link generateThemeGlobalsBlock} emits — keep the two in sync if that output changes.
|
|
409
|
+
*/
|
|
410
|
+
const THEME_GLOBALS_MARKER = "export type ThemeSettingName";
|
|
411
|
+
/**
|
|
412
|
+
* Build the theme-globals block for `src/global-types.ts`: the key union, a value-type map,
|
|
413
|
+
* and a type-safe `themeValue` wrapper (authors import it from `./global-types`). The wrapper
|
|
414
|
+
* is deliberately named differently from the SDK's `getThemeSettingValue` so authors can't
|
|
415
|
+
* accidentally import the untyped SDK version and lose key-safety (no shadowing).
|
|
416
|
+
* Returns "" when there are no globals (an empty union would resolve to `never`). The import
|
|
417
|
+
* the wrapper needs is emitted separately via {@link THEME_GLOBALS_IMPORT}.
|
|
418
|
+
*/
|
|
419
|
+
function generateThemeGlobalsBlock(themeSettings, resolveEnumTypeName = () => null) {
|
|
420
|
+
if (!themeSettings || themeSettings.length === 0)
|
|
421
|
+
return "";
|
|
422
|
+
const sorted = [...themeSettings].sort((a, b) => a.name.localeCompare(b.name));
|
|
423
|
+
const unionLines = sorted
|
|
424
|
+
.map((s) => {
|
|
425
|
+
// Escape the JSDoc comment terminator to avoid prematurely closing the
|
|
426
|
+
// generated `/** ... */` block when a displayName contains `*/`.
|
|
427
|
+
const label = String(s.displayName).replace(/\*\//g, "*\\/");
|
|
428
|
+
return ` /** ${label} (${s.type}) */\n | ${JSON.stringify(s.name)}`;
|
|
429
|
+
})
|
|
430
|
+
.join("\n");
|
|
431
|
+
const mapLines = sorted
|
|
432
|
+
.map((s) => ` ${JSON.stringify(s.name)}: ${themeSettingTsType(s, resolveEnumTypeName)};`)
|
|
433
|
+
.join("\n");
|
|
434
|
+
return (`\n/** Stable keys of theme global variables defined in the editor's "Styles" panel. */\n` +
|
|
435
|
+
`export type ThemeSettingName =\n${unionLines};\n\n` +
|
|
436
|
+
`/** Narrowed value type per global key (primitives and ENUM unions; complex kinds are \`any\`). */\n` +
|
|
437
|
+
`type ThemeSettingValueMap = {\n${mapLines}\n};\n\n` +
|
|
438
|
+
`/**\n` +
|
|
439
|
+
` * Type-safe theme global accessor — only accepts keys declared in the editor's Styles panel.\n` +
|
|
440
|
+
` * Import this from \`./global-types\`, not \`getThemeSettingValue\` from \`@ikas/bp-storefront\`\n` +
|
|
441
|
+
` * (that one is untyped: it accepts any string and returns \`any\`).\n` +
|
|
442
|
+
` */\n` +
|
|
443
|
+
`export function themeValue<K extends ThemeSettingName>(name: K): ThemeSettingValueMap[K] {\n` +
|
|
444
|
+
` return _getThemeSettingValueRaw(name) as ThemeSettingValueMap[K];\n` +
|
|
445
|
+
`}\n`);
|
|
446
|
+
}
|
|
301
447
|
/**
|
|
302
448
|
* Generate the content for `src/global-types.ts`.
|
|
303
449
|
* Collects all custom enum types from editorTypes (preferred) or customTypes (fallback)
|
|
@@ -311,8 +457,11 @@ export function generateGlobalTypesFile(editorTypes, customTypes,
|
|
|
311
457
|
* Callers should compute this from `config.components[*].props[*].enumTypeId`
|
|
312
458
|
* so unused enums are excluded from `global-types.ts`.
|
|
313
459
|
*/
|
|
314
|
-
usedEnumIds) {
|
|
460
|
+
usedEnumIds, themeSettings) {
|
|
315
461
|
const header = `// Auto-generated global type definitions for ikas code components.\n// This file is regenerated automatically — do not edit manually.\n`;
|
|
462
|
+
// Enums an ENUM theme setting selects from are emitted regardless of `usedEnumIds`: the
|
|
463
|
+
// setting's value-map entry names them, so they must exist even if no prop uses them.
|
|
464
|
+
const forcedEnumIds = collectThemeSettingEnumIds(themeSettings);
|
|
316
465
|
// Collect all custom enum types with their options
|
|
317
466
|
// Use a Map keyed by type ID to deduplicate
|
|
318
467
|
const enumTypes = new Map();
|
|
@@ -320,10 +469,10 @@ usedEnumIds) {
|
|
|
320
469
|
if (editorTypes) {
|
|
321
470
|
for (const t of editorTypes) {
|
|
322
471
|
if (t.enumOptions && Object.keys(t.enumOptions).length > 0) {
|
|
323
|
-
// Skip built-in types
|
|
324
|
-
if (t.id
|
|
472
|
+
// Skip built-in types (@ikas/* and the pattern-element font-style sentinel)
|
|
473
|
+
if (isBuiltInEnumTypeId(t.id))
|
|
325
474
|
continue;
|
|
326
|
-
if (usedEnumIds && !usedEnumIds.has(t.id))
|
|
475
|
+
if (usedEnumIds && !usedEnumIds.has(t.id) && !forcedEnumIds.has(t.id))
|
|
327
476
|
continue;
|
|
328
477
|
enumTypes.set(t.id, {
|
|
329
478
|
name: toPascalCase(t.name),
|
|
@@ -339,9 +488,9 @@ usedEnumIds) {
|
|
|
339
488
|
const id = t.id;
|
|
340
489
|
if (enumTypes.has(id))
|
|
341
490
|
continue;
|
|
342
|
-
if (id
|
|
491
|
+
if (isBuiltInEnumTypeId(id))
|
|
343
492
|
continue;
|
|
344
|
-
if (usedEnumIds && !usedEnumIds.has(id))
|
|
493
|
+
if (usedEnumIds && !usedEnumIds.has(id) && !forcedEnumIds.has(id))
|
|
345
494
|
continue;
|
|
346
495
|
if (t.enumOptions && Object.keys(t.enumOptions).length > 0) {
|
|
347
496
|
enumTypes.set(id, {
|
|
@@ -352,17 +501,56 @@ usedEnumIds) {
|
|
|
352
501
|
}
|
|
353
502
|
}
|
|
354
503
|
}
|
|
504
|
+
// The theme block may only name enum types declared in THIS file (see themeSettingTsType).
|
|
505
|
+
const resolveEnumTypeName = (enumTypeId) => enumTypes.get(enumTypeId)?.name ?? null;
|
|
506
|
+
const themeBlock = generateThemeGlobalsBlock(themeSettings, resolveEnumTypeName);
|
|
507
|
+
// The wrapper's runtime import must sit at the top of the file (after the header).
|
|
508
|
+
const themeImport = themeBlock ? THEME_GLOBALS_IMPORT : "";
|
|
355
509
|
if (enumTypes.size === 0) {
|
|
356
|
-
|
|
510
|
+
if (!themeBlock) {
|
|
511
|
+
return `${header}// Custom enum types from the editor will appear here.\n\nexport {};\n`;
|
|
512
|
+
}
|
|
513
|
+
return `${header}${themeImport}${themeBlock}`;
|
|
357
514
|
}
|
|
358
515
|
// Sort by type name for stable output
|
|
359
516
|
const sorted = Array.from(enumTypes.values()).sort((a, b) => a.name.localeCompare(b.name));
|
|
360
|
-
let content = `${header}\n`;
|
|
517
|
+
let content = `${header}${themeImport}\n`;
|
|
361
518
|
for (const enumType of sorted) {
|
|
362
|
-
const unionType = enumType.options.map(v => `"${v}"`).join(" | ");
|
|
519
|
+
const unionType = enumType.options.map((v) => `"${v}"`).join(" | ");
|
|
363
520
|
content += `/** Enum type: ${enumType.id} */\nexport type ${enumType.name} = ${unionType};\n`;
|
|
364
521
|
}
|
|
365
|
-
return content
|
|
522
|
+
return `${content}${themeBlock}`;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Decide whether freshly generated `global-types.ts` content should overwrite
|
|
526
|
+
* the existing file on disk.
|
|
527
|
+
*
|
|
528
|
+
* Guards the dev-server startup race: before the editor connects, the theme
|
|
529
|
+
* settings cache is empty, so the generated content omits the theme-globals
|
|
530
|
+
* block (`themeValue`, `ThemeSettingName`). Writing it would clobber the rich
|
|
531
|
+
* file left from the previous session and break every component that imports
|
|
532
|
+
* those exports until the editor reconnects and re-syncs. While theme settings
|
|
533
|
+
* are not yet cached, preserve an existing theme-globals block instead of
|
|
534
|
+
* stubbing it out — the editor's `onSyncTypes` is the authoritative writer once
|
|
535
|
+
* connected.
|
|
536
|
+
*
|
|
537
|
+
* @param existing current file content, or null if the file is absent
|
|
538
|
+
* @param next freshly generated content
|
|
539
|
+
* @param hasThemeSettingsCached whether the editor has synced theme settings yet
|
|
540
|
+
*/
|
|
541
|
+
export function shouldWriteGlobalTypes(existing, next, hasThemeSettingsCached) {
|
|
542
|
+
// No file yet — always write so imports resolve.
|
|
543
|
+
if (existing === null)
|
|
544
|
+
return true;
|
|
545
|
+
// Identical content — skip to avoid file-watcher loops.
|
|
546
|
+
if (existing === next)
|
|
547
|
+
return false;
|
|
548
|
+
// Editor has synced theme settings — it's authoritative, write freely.
|
|
549
|
+
if (hasThemeSettingsCached)
|
|
550
|
+
return true;
|
|
551
|
+
// Not synced yet: write unless we'd drop an existing theme-globals block for a stub.
|
|
552
|
+
return (!existing.includes(THEME_GLOBALS_MARKER) ||
|
|
553
|
+
next.includes(THEME_GLOBALS_MARKER));
|
|
366
554
|
}
|
|
367
555
|
export function generateComponentFile(componentName, props, type) {
|
|
368
556
|
const propsDestructure = props.map((p) => p.name).join(", ");
|
|
@@ -392,6 +580,39 @@ export function updateBarrelExport(projectRoot, componentNames) {
|
|
|
392
580
|
.join("\n") + "\n";
|
|
393
581
|
fs.writeFileSync(indexPath, content);
|
|
394
582
|
}
|
|
583
|
+
/**
|
|
584
|
+
* A config visibility gate in wire form, or nothing at all — spread it.
|
|
585
|
+
*
|
|
586
|
+
* Config names the governing prop; the editor needs its id, and ids are minted here from position.
|
|
587
|
+
* A gate naming a prop this component does not have is dropped rather than passed on: the editor
|
|
588
|
+
* would show the control anyway, and a dangling id in the theme is worse than none.
|
|
589
|
+
*/
|
|
590
|
+
export function resolveCondition(gate, propIdByName) {
|
|
591
|
+
if (!gate?.requiredProp)
|
|
592
|
+
return {};
|
|
593
|
+
const requiredPropId = propIdByName.get(gate.requiredProp);
|
|
594
|
+
if (!requiredPropId)
|
|
595
|
+
return {};
|
|
596
|
+
// An ENUM gate carries its option and no boolean state; a BOOLEAN one the reverse. Emitting only
|
|
597
|
+
// the half that applies keeps a stale option from a re-typed governing prop out of the theme.
|
|
598
|
+
if (gate.requiredEnumOptionValue !== undefined) {
|
|
599
|
+
return {
|
|
600
|
+
requiredPropId,
|
|
601
|
+
requiredEnumOptionId: gate.requiredEnumOptionId,
|
|
602
|
+
requiredEnumOptionValue: gate.requiredEnumOptionValue,
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
return { requiredPropId, requiredPropValue: gate.requiredPropValue ?? true };
|
|
606
|
+
}
|
|
607
|
+
/**
|
|
608
|
+
* Config prop name to the id this component's props are broadcast under.
|
|
609
|
+
*
|
|
610
|
+
* The formula is duplicated at each mapping site (dev broadcast, config rebuild, publish); this
|
|
611
|
+
* reads it back off whatever that site produced rather than restating it a fourth time.
|
|
612
|
+
*/
|
|
613
|
+
export function propIdsByName(props) {
|
|
614
|
+
return new Map(props.map((prop) => [prop.name, prop.id]));
|
|
615
|
+
}
|
|
395
616
|
/**
|
|
396
617
|
* Convert flat config-format prop groups into an IThemePropGroup[] hierarchy.
|
|
397
618
|
*
|
|
@@ -405,11 +626,14 @@ export function updateBarrelExport(projectRoot, componentNames) {
|
|
|
405
626
|
*/
|
|
406
627
|
export function buildPropGroupHierarchy(componentId, propGroups, props) {
|
|
407
628
|
const result = [];
|
|
629
|
+
// A group names its governing prop; the leaf wrappers below carry no gate of their own, because a
|
|
630
|
+
// prop's gate travels on the prop itself (see `resolveCondition` at each prop mapping site).
|
|
631
|
+
const propIdByName = propIdsByName(props);
|
|
408
632
|
for (const group of propGroups) {
|
|
409
633
|
const groupGlobalId = `${componentId}_pg_${group.id}`;
|
|
410
634
|
// Collect props assigned to this group
|
|
411
|
-
const groupProps = props.filter(p => p.groupId === group.id);
|
|
412
|
-
const propChildren = groupProps.map(p => ({
|
|
635
|
+
const groupProps = props.filter((p) => p.groupId === group.id);
|
|
636
|
+
const propChildren = groupProps.map((p) => ({
|
|
413
637
|
id: `${componentId}_pgp_${p.id}`,
|
|
414
638
|
propId: p.id,
|
|
415
639
|
}));
|
|
@@ -419,8 +643,8 @@ export function buildPropGroupHierarchy(componentId, propGroups, props) {
|
|
|
419
643
|
for (const child of group.children) {
|
|
420
644
|
const childGlobalId = `${componentId}_pg_${child.id}`;
|
|
421
645
|
// Collect props assigned to this child group
|
|
422
|
-
const childProps = props.filter(p => p.groupId === child.id);
|
|
423
|
-
const childPropChildren = childProps.map(p => ({
|
|
646
|
+
const childProps = props.filter((p) => p.groupId === child.id);
|
|
647
|
+
const childPropChildren = childProps.map((p) => ({
|
|
424
648
|
id: `${componentId}_pgp_${p.id}`,
|
|
425
649
|
propId: p.id,
|
|
426
650
|
}));
|
|
@@ -428,7 +652,10 @@ export function buildPropGroupHierarchy(componentId, propGroups, props) {
|
|
|
428
652
|
id: childGlobalId,
|
|
429
653
|
name: child.name,
|
|
430
654
|
...(child.description ? { description: child.description } : {}),
|
|
431
|
-
...(
|
|
655
|
+
...resolveCondition(child, propIdByName),
|
|
656
|
+
...(childPropChildren.length > 0
|
|
657
|
+
? { children: childPropChildren }
|
|
658
|
+
: {}),
|
|
432
659
|
});
|
|
433
660
|
}
|
|
434
661
|
}
|
|
@@ -437,19 +664,117 @@ export function buildPropGroupHierarchy(componentId, propGroups, props) {
|
|
|
437
664
|
id: groupGlobalId,
|
|
438
665
|
name: group.name,
|
|
439
666
|
...(group.description ? { description: group.description } : {}),
|
|
667
|
+
...resolveCondition(group, propIdByName),
|
|
440
668
|
...(allChildren.length > 0 ? { children: allChildren } : {}),
|
|
441
669
|
});
|
|
442
670
|
}
|
|
443
671
|
return result;
|
|
444
672
|
}
|
|
673
|
+
/** Every group id under `group`, itself included — the groups a prop assigned "inside" it can sit in. */
|
|
674
|
+
export function groupIdsUnder(group) {
|
|
675
|
+
return new Set([
|
|
676
|
+
group.id,
|
|
677
|
+
...(group.children || []).map((child) => child.id),
|
|
678
|
+
]);
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* Validate a visibility condition — the `requiredProp` family on a prop or a prop group — against
|
|
682
|
+
* the component it lives on. Returns an error message, or null when it is sound (or absent).
|
|
683
|
+
*
|
|
684
|
+
* What is rejected, and why each one would otherwise strand a control with no way to reach it:
|
|
685
|
+
*
|
|
686
|
+
* - a name no prop on this component has, or a prop that is not BOOLEAN — nothing to read a
|
|
687
|
+
* true/false off, so the gate could never resolve;
|
|
688
|
+
* - a prop gating itself, or a chain of props that comes back around to it — every prop in the
|
|
689
|
+
* cycle stays hidden forever, including the toggles that would let someone out of it;
|
|
690
|
+
* - an ENUM gate with no option to wait for, or an option value hung on a BOOLEAN prop;
|
|
691
|
+
* - a group gated by a toggle that lives inside it — turning that toggle off takes the toggle away
|
|
692
|
+
* with the rest of the group.
|
|
693
|
+
*/
|
|
694
|
+
export function visibilityGateError(component, gate, where, opts = {}) {
|
|
695
|
+
const { requiredProp, requiredPropValue, requiredEnumOptionValue } = gate;
|
|
696
|
+
if (requiredProp === undefined || requiredProp === null) {
|
|
697
|
+
return requiredPropValue === undefined &&
|
|
698
|
+
requiredEnumOptionValue === undefined
|
|
699
|
+
? null
|
|
700
|
+
: `${where} declares a visibility state with no requiredProp to read it off. Name the prop that gates it, or drop both.`;
|
|
701
|
+
}
|
|
702
|
+
if (typeof requiredProp !== "string" || !requiredProp) {
|
|
703
|
+
return `requiredProp on ${where} must be the name of a BOOLEAN or ENUM prop on this component.`;
|
|
704
|
+
}
|
|
705
|
+
if (requiredPropValue !== undefined &&
|
|
706
|
+
typeof requiredPropValue !== "boolean") {
|
|
707
|
+
return `requiredPropValue on ${where} must be true or false (it defaults to true).`;
|
|
708
|
+
}
|
|
709
|
+
if (opts.selfPropName && requiredProp === opts.selfPropName) {
|
|
710
|
+
return `${where} cannot gate itself on "${requiredProp}".`;
|
|
711
|
+
}
|
|
712
|
+
const governing = component.props.find((prop) => prop.name === requiredProp);
|
|
713
|
+
if (!governing) {
|
|
714
|
+
const names = component.props.map((prop) => prop.name).join(", ");
|
|
715
|
+
return `requiredProp "${requiredProp}" on ${where} is not a prop of component "${component.name}". Available props: ${names || "(none)"}.`;
|
|
716
|
+
}
|
|
717
|
+
if (governing.type !== "BOOLEAN" && governing.type !== "ENUM") {
|
|
718
|
+
return `requiredProp "${requiredProp}" on ${where} is a ${governing.type} prop; only a BOOLEAN or ENUM prop can gate visibility.`;
|
|
719
|
+
}
|
|
720
|
+
// An ENUM gate is meaningless without the option it waits for: nothing would ever match it, so
|
|
721
|
+
// the node would never appear at all.
|
|
722
|
+
if (governing.type === "ENUM" &&
|
|
723
|
+
typeof requiredEnumOptionValue !== "string") {
|
|
724
|
+
return `requiredProp "${requiredProp}" on ${where} is an ENUM prop, so requiredEnumOptionValue must name the option value that shows it.`;
|
|
725
|
+
}
|
|
726
|
+
if (governing.type === "BOOLEAN" && requiredEnumOptionValue !== undefined) {
|
|
727
|
+
return `requiredEnumOptionValue on ${where} has no meaning against the BOOLEAN prop "${requiredProp}" — use requiredPropValue instead.`;
|
|
728
|
+
}
|
|
729
|
+
if (opts.group &&
|
|
730
|
+
governing.groupId &&
|
|
731
|
+
groupIdsUnder(opts.group).has(governing.groupId)) {
|
|
732
|
+
return `requiredProp "${requiredProp}" on ${where} sits inside that group — hiding the group would take that control with it, leaving nothing to bring it back.`;
|
|
733
|
+
}
|
|
734
|
+
// Walk the chain the governing prop hangs on. It cannot come back to this prop, and it cannot
|
|
735
|
+
// close on itself either — a cycle anywhere in it hides everything on it.
|
|
736
|
+
const byName = new Map(component.props.map((prop) => [prop.name, prop]));
|
|
737
|
+
const seen = new Set([requiredProp]);
|
|
738
|
+
let current = governing.requiredProp;
|
|
739
|
+
while (current) {
|
|
740
|
+
if (opts.selfPropName && current === opts.selfPropName) {
|
|
741
|
+
return `requiredProp "${requiredProp}" on ${where} depends on it in turn — the two would hide each other permanently.`;
|
|
742
|
+
}
|
|
743
|
+
if (seen.has(current)) {
|
|
744
|
+
return `requiredProp "${requiredProp}" on ${where} sits in a visibility cycle through "${current}" — everything on it would stay hidden.`;
|
|
745
|
+
}
|
|
746
|
+
seen.add(current);
|
|
747
|
+
current = byName.get(current)?.requiredProp;
|
|
748
|
+
}
|
|
749
|
+
return null;
|
|
750
|
+
}
|
|
445
751
|
/**
|
|
446
752
|
* Validate prop groups configuration for a component.
|
|
447
753
|
* Returns an array of error messages (empty = valid).
|
|
448
754
|
*/
|
|
449
755
|
export function validatePropGroups(component) {
|
|
450
756
|
const errors = [];
|
|
451
|
-
const propGroups = component.propGroups;
|
|
452
|
-
|
|
757
|
+
const propGroups = component.propGroups || [];
|
|
758
|
+
// A prop can name a visibility gate whether or not this component has groups at all, so gates are
|
|
759
|
+
// checked before the group walk bails out below.
|
|
760
|
+
for (const prop of component.props) {
|
|
761
|
+
const error = visibilityGateError(component, prop, `prop "${prop.name}"`, {
|
|
762
|
+
selfPropName: prop.name,
|
|
763
|
+
});
|
|
764
|
+
if (error)
|
|
765
|
+
errors.push(error);
|
|
766
|
+
}
|
|
767
|
+
for (const group of [
|
|
768
|
+
...propGroups,
|
|
769
|
+
...propGroups.flatMap((group) => group.children || []),
|
|
770
|
+
]) {
|
|
771
|
+
const error = visibilityGateError(component, group, `group "${group.id}"`, {
|
|
772
|
+
group,
|
|
773
|
+
});
|
|
774
|
+
if (error)
|
|
775
|
+
errors.push(error);
|
|
776
|
+
}
|
|
777
|
+
if (propGroups.length === 0)
|
|
453
778
|
return errors;
|
|
454
779
|
// Collect all group IDs and check uniqueness
|
|
455
780
|
const allIds = new Set();
|
|
@@ -528,7 +853,9 @@ export function movePropGroupInTree(propGroups, propGroupId, parentGroupId, inde
|
|
|
528
853
|
const found = findPropGroup(propGroups, propGroupId);
|
|
529
854
|
if (!found)
|
|
530
855
|
throw new Error(`Prop group "${propGroupId}" not found`);
|
|
531
|
-
if (parentGroupId &&
|
|
856
|
+
if (parentGroupId &&
|
|
857
|
+
found.group.children &&
|
|
858
|
+
found.group.children.length > 0) {
|
|
532
859
|
throw new Error(`Cannot nest "${propGroupId}": it already has child groups`);
|
|
533
860
|
}
|
|
534
861
|
if (parentGroupId) {
|
|
@@ -542,10 +869,10 @@ export function movePropGroupInTree(propGroups, propGroupId, parentGroupId, inde
|
|
|
542
869
|
}
|
|
543
870
|
let roots = propGroups;
|
|
544
871
|
if (found.parent) {
|
|
545
|
-
found.parent.children = (found.parent.children || []).filter(c => c.id !== propGroupId);
|
|
872
|
+
found.parent.children = (found.parent.children || []).filter((c) => c.id !== propGroupId);
|
|
546
873
|
}
|
|
547
874
|
else {
|
|
548
|
-
roots = roots.filter(g => g.id !== propGroupId);
|
|
875
|
+
roots = roots.filter((g) => g.id !== propGroupId);
|
|
549
876
|
}
|
|
550
877
|
if (parentGroupId) {
|
|
551
878
|
const target = findPropGroup(roots, parentGroupId);
|
|
@@ -553,13 +880,17 @@ export function movePropGroupInTree(propGroups, propGroupId, parentGroupId, inde
|
|
|
553
880
|
throw new Error(`Target parent group "${parentGroupId}" not found after removal`);
|
|
554
881
|
if (!target.group.children)
|
|
555
882
|
target.group.children = [];
|
|
556
|
-
const insertAt = typeof index === "number" &&
|
|
883
|
+
const insertAt = typeof index === "number" &&
|
|
884
|
+
index >= 0 &&
|
|
885
|
+
index <= target.group.children.length
|
|
557
886
|
? index
|
|
558
887
|
: target.group.children.length;
|
|
559
888
|
target.group.children.splice(insertAt, 0, found.group);
|
|
560
889
|
}
|
|
561
890
|
else {
|
|
562
|
-
const insertAt = typeof index === "number" && index >= 0 && index <= roots.length
|
|
891
|
+
const insertAt = typeof index === "number" && index >= 0 && index <= roots.length
|
|
892
|
+
? index
|
|
893
|
+
: roots.length;
|
|
563
894
|
roots.splice(insertAt, 0, found.group);
|
|
564
895
|
}
|
|
565
896
|
return roots;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-helpers.js","sourceRoot":"","sources":["../../src/utils/component-helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component-helpers.js","sourceRoot":"","sources":["../../src/utils/component-helpers.ts"],"names":[],"mappings":"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"}
|