@yahoo/uds-create-config 2.24.0 → 2.25.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/dist/CompositeStyle.d.ts +4 -1
- package/dist/CompositeStyle.js +8 -1
- package/dist/native/NativeConfig.d.ts +14 -5
- package/dist/native/NativeConfig.js +38 -4
- package/dist/native/components.d.ts +139 -0
- package/dist/native/components.js +66 -0
- package/dist/native/index.d.ts +2 -1
- package/dist/native/index.js +1 -0
- package/dist/native/types.d.ts +9 -1
- package/dist/native/validation.js +283 -2
- package/dist/native.d.ts +3 -2
- package/dist/native.js +2 -1
- package/dist/renderer/wrapRegistry.js +5 -5
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +10 -0
- package/package.json +3 -3
|
@@ -10,13 +10,40 @@ const TOP_LEVEL_KEYS = new Set([
|
|
|
10
10
|
"builtAt",
|
|
11
11
|
"namespace",
|
|
12
12
|
"styleEngine",
|
|
13
|
+
"buildOptions",
|
|
13
14
|
"defaultModes",
|
|
14
15
|
"modes",
|
|
15
16
|
"tokenGroups",
|
|
16
17
|
"assetGroups",
|
|
18
|
+
"components",
|
|
19
|
+
"componentGroups",
|
|
17
20
|
"linkedSystems"
|
|
18
21
|
]);
|
|
19
22
|
const LINKED_SYSTEM_PIN_KEYS = new Set(["name", "version"]);
|
|
23
|
+
const BUILD_OPTIONS_KEYS = new Set(["componentsDir"]);
|
|
24
|
+
const COMPONENT_KEYS = new Set([
|
|
25
|
+
"id",
|
|
26
|
+
"layers",
|
|
27
|
+
"props",
|
|
28
|
+
"defaultProps",
|
|
29
|
+
"styles",
|
|
30
|
+
"label",
|
|
31
|
+
"description"
|
|
32
|
+
]);
|
|
33
|
+
const COMPONENT_CONFIG_KEYS = new Set([
|
|
34
|
+
"base",
|
|
35
|
+
"variants",
|
|
36
|
+
"booleans",
|
|
37
|
+
"runtimeStates",
|
|
38
|
+
"values",
|
|
39
|
+
"description"
|
|
40
|
+
]);
|
|
41
|
+
const LAYER_KEYS = new Set(["kind", "styleProp"]);
|
|
42
|
+
const COMPONENT_GROUP_KEYS = new Set([
|
|
43
|
+
"components",
|
|
44
|
+
"label",
|
|
45
|
+
"description"
|
|
46
|
+
]);
|
|
20
47
|
const GROUP_KEYS = new Set([
|
|
21
48
|
"tokens",
|
|
22
49
|
"label",
|
|
@@ -76,10 +103,13 @@ function validateSerializedNativeConfig(input, expectedSchemaVersion = 4) {
|
|
|
76
103
|
if (input.builtAt !== void 0 && typeof input.builtAt !== "string") push(diagnostics, "INVALID_SCHEMA", ["builtAt"], configDefinition, "builtAt must be a string when present.");
|
|
77
104
|
validateNamespace(input.namespace, diagnostics);
|
|
78
105
|
validateStyleEngine(input.styleEngine, diagnostics);
|
|
106
|
+
validateBuildOptions(input.buildOptions, diagnostics);
|
|
79
107
|
validateModes(input.modes, diagnostics);
|
|
80
108
|
validateDefaultModes(input.defaultModes, input.modes, diagnostics);
|
|
81
109
|
validateAssetGroups(input.assetGroups, diagnostics);
|
|
82
110
|
validateTokenGroups(input.tokenGroups, diagnostics);
|
|
111
|
+
validateComponents(input.components, diagnostics);
|
|
112
|
+
validateComponentGroups(input.componentGroups, input.components, diagnostics);
|
|
83
113
|
validateLinkedSystems(input.linkedSystems, diagnostics);
|
|
84
114
|
validateReferences(input, diagnostics);
|
|
85
115
|
validateModifierOwnership(input, diagnostics);
|
|
@@ -104,6 +134,235 @@ function validateLinkedSystems(value, diagnostics) {
|
|
|
104
134
|
if (typeof pin.version !== "string" || !EXACT_SEMVER_RE.test(pin.version)) push(diagnostics, "INVALID_SCHEMA", [...path, "version"], definition, "A linked-system pin requires an exact semver version (no ranges).");
|
|
105
135
|
}
|
|
106
136
|
}
|
|
137
|
+
function validateBuildOptions(value, diagnostics) {
|
|
138
|
+
if (value === void 0) return;
|
|
139
|
+
if (!isRecord(value)) {
|
|
140
|
+
push(diagnostics, "INVALID_SCHEMA", ["buildOptions"], { kind: "config" }, "Native buildOptions must be an object.");
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
reportUnknownKeys(value, BUILD_OPTIONS_KEYS, ["buildOptions"], { kind: "config" }, diagnostics);
|
|
144
|
+
if (value.componentsDir !== void 0 && (typeof value.componentsDir !== "string" || value.componentsDir.length === 0)) push(diagnostics, "INVALID_SCHEMA", ["buildOptions", "componentsDir"], { kind: "config" }, "Native componentsDir must be a non-empty path string.");
|
|
145
|
+
}
|
|
146
|
+
function validateComponents(value, diagnostics) {
|
|
147
|
+
if (value === void 0) return;
|
|
148
|
+
if (!isRecord(value)) {
|
|
149
|
+
push(diagnostics, "INVALID_SCHEMA", ["components"], { kind: "config" }, "Native components must be a record.");
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const ids = /* @__PURE__ */ new Map();
|
|
153
|
+
for (const [componentName, component] of Object.entries(value)) {
|
|
154
|
+
const path = ["components", componentName];
|
|
155
|
+
const definition = {
|
|
156
|
+
kind: "component",
|
|
157
|
+
name: componentName
|
|
158
|
+
};
|
|
159
|
+
if (!isRecord(component)) {
|
|
160
|
+
push(diagnostics, "INVALID_SCHEMA", path, definition, `Native component "${componentName}" must be an object.`);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
reportUnknownKeys(component, COMPONENT_KEYS, path, definition, diagnostics);
|
|
164
|
+
if (typeof component.id !== "string" || component.id.length === 0) push(diagnostics, "INVALID_SCHEMA", [...path, "id"], definition, `Native component "${componentName}" must declare a stable id.`);
|
|
165
|
+
else {
|
|
166
|
+
const owner = ids.get(component.id);
|
|
167
|
+
if (owner !== void 0) push(diagnostics, "INVALID_SCHEMA", [...path, "id"], definition, `Native component id "${component.id}" is already registered as "${owner}".`);
|
|
168
|
+
else ids.set(component.id, componentName);
|
|
169
|
+
}
|
|
170
|
+
const layerNames = validateComponentLayers(component.layers, [...path, "layers"], definition, diagnostics);
|
|
171
|
+
validateComponentConfig(component.styles, [...path, "styles"], definition, layerNames, diagnostics);
|
|
172
|
+
validateComponentProps(component.props, path, definition, diagnostics);
|
|
173
|
+
validateComponentStyleProps(component, path, definition, diagnostics);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
function validateComponentStyleProps(component, path, definition, diagnostics) {
|
|
177
|
+
const props = isRecord(component.props) ? component.props : {};
|
|
178
|
+
const styles = isRecord(component.styles) ? component.styles : {};
|
|
179
|
+
for (const [groupName, expectedKind] of [["variants", "variant"], ["booleans", "boolean"]]) {
|
|
180
|
+
const groups = styles[groupName];
|
|
181
|
+
if (!isRecord(groups)) continue;
|
|
182
|
+
for (const [propName, options] of Object.entries(groups)) {
|
|
183
|
+
const marker = props[propName];
|
|
184
|
+
if (!isRecord(marker) || marker.__kind !== expectedKind) {
|
|
185
|
+
push(diagnostics, "INVALID_REFERENCE", [
|
|
186
|
+
...path,
|
|
187
|
+
"styles",
|
|
188
|
+
groupName,
|
|
189
|
+
propName
|
|
190
|
+
], definition, `Native ${groupName} styles must target a ${expectedKind} component prop.`);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
if (!isRecord(options)) continue;
|
|
194
|
+
const allowedOptions = expectedKind === "variant" && Array.isArray(marker.values) ? new Set(marker.values.map(String)) : new Set(["true", "false"]);
|
|
195
|
+
for (const optionName of Object.keys(options)) if (!allowedOptions.has(optionName)) push(diagnostics, "INVALID_REFERENCE", [
|
|
196
|
+
...path,
|
|
197
|
+
"styles",
|
|
198
|
+
groupName,
|
|
199
|
+
propName,
|
|
200
|
+
optionName
|
|
201
|
+
], definition, expectedKind === "variant" ? `Native variant style option "${optionName}" is not declared by prop "${propName}".` : `Native boolean style option "${optionName}" must be true or false.`);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
function validateComponentProps(value, componentPath, definition, diagnostics) {
|
|
206
|
+
if (!isRecord(value)) {
|
|
207
|
+
push(diagnostics, "INVALID_SCHEMA", [...componentPath, "props"], definition, "Native component props must be a record.");
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
for (const [propName, marker] of Object.entries(value)) {
|
|
211
|
+
if (!isRecord(marker) || ![
|
|
212
|
+
"slot",
|
|
213
|
+
"boolean",
|
|
214
|
+
"string",
|
|
215
|
+
"number",
|
|
216
|
+
"variant"
|
|
217
|
+
].includes(String(marker.__kind))) {
|
|
218
|
+
push(diagnostics, "INVALID_SCHEMA", [
|
|
219
|
+
...componentPath,
|
|
220
|
+
"props",
|
|
221
|
+
propName
|
|
222
|
+
], definition, `Unknown native component prop marker "${String(isRecord(marker) ? marker.__kind : marker)}".`);
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
if (marker.__kind === "variant") {
|
|
226
|
+
if (!Array.isArray(marker.values) || marker.values.length === 0 || marker.values.some((option) => typeof option !== "string" && typeof option !== "number" || typeof option === "number" && !Number.isFinite(option))) push(diagnostics, "INVALID_SCHEMA", [
|
|
227
|
+
...componentPath,
|
|
228
|
+
"props",
|
|
229
|
+
propName,
|
|
230
|
+
"values"
|
|
231
|
+
], definition, "Native variant props require at least one finite number or string option.");
|
|
232
|
+
else if (new Set(marker.values.map(String)).size !== marker.values.length) push(diagnostics, "INVALID_SCHEMA", [
|
|
233
|
+
...componentPath,
|
|
234
|
+
"props",
|
|
235
|
+
propName,
|
|
236
|
+
"values"
|
|
237
|
+
], definition, "Native variant prop options must remain unique when serialized as object keys.");
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
function validateComponentLayers(value, path, definition, diagnostics) {
|
|
242
|
+
const names = /* @__PURE__ */ new Set();
|
|
243
|
+
if (!isRecord(value) || Object.keys(value).length === 0) {
|
|
244
|
+
push(diagnostics, "INVALID_SCHEMA", path, definition, "A native component must declare at least one layer.");
|
|
245
|
+
return names;
|
|
246
|
+
}
|
|
247
|
+
for (const [layerName, layer] of Object.entries(value)) {
|
|
248
|
+
names.add(layerName);
|
|
249
|
+
const layerPath = [...path, layerName];
|
|
250
|
+
if (!isRecord(layer)) {
|
|
251
|
+
push(diagnostics, "INVALID_SCHEMA", layerPath, definition, `Native layer "${layerName}" must be an object.`);
|
|
252
|
+
continue;
|
|
253
|
+
}
|
|
254
|
+
reportUnknownKeys(layer, LAYER_KEYS, layerPath, definition, diagnostics);
|
|
255
|
+
if (layer.kind !== "view" && layer.kind !== "text" && layer.kind !== "image") push(diagnostics, "INVALID_SCHEMA", [...layerPath, "kind"], definition, `Native layer "${layerName}" must use view, text, or image styles.`);
|
|
256
|
+
if (layer.styleProp !== void 0 && (typeof layer.styleProp !== "string" || layer.styleProp.length === 0)) push(diagnostics, "INVALID_SCHEMA", [...layerPath, "styleProp"], definition, "A public style prop name must be a non-empty string.");
|
|
257
|
+
}
|
|
258
|
+
return names;
|
|
259
|
+
}
|
|
260
|
+
function validateComponentConfig(value, path, definition, layerNames, diagnostics) {
|
|
261
|
+
if (!isRecord(value)) {
|
|
262
|
+
push(diagnostics, "INVALID_SCHEMA", path, definition, "Native component styles must be an object.");
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
reportUnknownKeys(value, COMPONENT_CONFIG_KEYS, path, definition, diagnostics);
|
|
266
|
+
validateLayerStyleMap(value.base, [...path, "base"], definition, layerNames, diagnostics);
|
|
267
|
+
for (const key of ["variants", "booleans"]) {
|
|
268
|
+
const groups = value[key];
|
|
269
|
+
if (groups === void 0) continue;
|
|
270
|
+
if (!isRecord(groups)) {
|
|
271
|
+
push(diagnostics, "INVALID_SCHEMA", [...path, key], definition, `${key} must be a record.`);
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
for (const [propName, values] of Object.entries(groups)) {
|
|
275
|
+
if (!isRecord(values)) {
|
|
276
|
+
push(diagnostics, "INVALID_SCHEMA", [
|
|
277
|
+
...path,
|
|
278
|
+
key,
|
|
279
|
+
propName
|
|
280
|
+
], definition, `${key} styles for "${propName}" must be an option record.`);
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
for (const [optionName, styles] of Object.entries(values)) validateLayerStyleMap(styles, [
|
|
284
|
+
...path,
|
|
285
|
+
key,
|
|
286
|
+
propName,
|
|
287
|
+
optionName
|
|
288
|
+
], definition, layerNames, diagnostics);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (value.runtimeStates !== void 0) if (!isRecord(value.runtimeStates)) push(diagnostics, "INVALID_SCHEMA", [...path, "runtimeStates"], definition, "Native runtimeStates must be a record.");
|
|
292
|
+
else for (const [stateName, styles] of Object.entries(value.runtimeStates)) validateLayerStyleMap(styles, [
|
|
293
|
+
...path,
|
|
294
|
+
"runtimeStates",
|
|
295
|
+
stateName
|
|
296
|
+
], definition, layerNames, diagnostics);
|
|
297
|
+
if (value.values !== void 0) if (!isRecord(value.values)) push(diagnostics, "INVALID_SCHEMA", [...path, "values"], definition, "Native named values must be a record.");
|
|
298
|
+
else for (const [name, namedValue] of Object.entries(value.values)) validateNativeValue(namedValue, [
|
|
299
|
+
...path,
|
|
300
|
+
"values",
|
|
301
|
+
name
|
|
302
|
+
], definition, diagnostics, true);
|
|
303
|
+
}
|
|
304
|
+
function validateLayerStyleMap(value, path, definition, layerNames, diagnostics) {
|
|
305
|
+
if (value === void 0) return;
|
|
306
|
+
if (!isRecord(value)) {
|
|
307
|
+
push(diagnostics, "INVALID_SCHEMA", path, definition, "Native component styles must be a layer record.");
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
for (const [layerName, styles] of Object.entries(value)) {
|
|
311
|
+
if (!layerNames.has(layerName)) {
|
|
312
|
+
push(diagnostics, "INVALID_REFERENCE", [...path, layerName], definition, `Native layer "${layerName}" is not declared by this component.`);
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
if (!isRecord(styles)) {
|
|
316
|
+
push(diagnostics, "INVALID_SCHEMA", [...path, layerName], definition, `Styles for layer "${layerName}" must be an object.`);
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
for (const [property, styleValue] of Object.entries(styles)) validateComponentStyleValue(styleValue, [
|
|
320
|
+
...path,
|
|
321
|
+
layerName,
|
|
322
|
+
property
|
|
323
|
+
], definition, diagnostics);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function validateComponentStyleValue(value, path, definition, diagnostics) {
|
|
327
|
+
if (Array.isArray(value)) {
|
|
328
|
+
value.forEach((entry, index) => {
|
|
329
|
+
validateComponentStyleValue(entry, [...path, index], definition, diagnostics);
|
|
330
|
+
});
|
|
331
|
+
return;
|
|
332
|
+
}
|
|
333
|
+
if (isRecord(value) && !("__kind" in value)) {
|
|
334
|
+
for (const [key, nested] of Object.entries(value)) validateComponentStyleValue(nested, [...path, key], definition, diagnostics);
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
validateNativeValue(value, path, definition, diagnostics, true);
|
|
338
|
+
}
|
|
339
|
+
function validateComponentGroups(value, components, diagnostics) {
|
|
340
|
+
if (value === void 0) return;
|
|
341
|
+
if (!isRecord(value)) {
|
|
342
|
+
push(diagnostics, "INVALID_SCHEMA", ["componentGroups"], { kind: "config" }, "Native componentGroups must be a record.");
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
const registered = isRecord(components) ? components : {};
|
|
346
|
+
for (const [groupName, group] of Object.entries(value)) {
|
|
347
|
+
const path = ["componentGroups", groupName];
|
|
348
|
+
const definition = {
|
|
349
|
+
kind: "componentGroup",
|
|
350
|
+
name: groupName
|
|
351
|
+
};
|
|
352
|
+
if (!isRecord(group)) {
|
|
353
|
+
push(diagnostics, "INVALID_SCHEMA", path, definition, `Native component group "${groupName}" must be an object.`);
|
|
354
|
+
continue;
|
|
355
|
+
}
|
|
356
|
+
reportUnknownKeys(group, COMPONENT_GROUP_KEYS, path, definition, diagnostics);
|
|
357
|
+
if (!Array.isArray(group.components) || group.components.length === 0) push(diagnostics, "INVALID_SCHEMA", [...path, "components"], definition, "A native component group must contain at least one component.");
|
|
358
|
+
else for (const [index, componentName] of group.components.entries()) if (typeof componentName !== "string" || !(componentName in registered)) push(diagnostics, "INVALID_REFERENCE", [
|
|
359
|
+
...path,
|
|
360
|
+
"components",
|
|
361
|
+
index
|
|
362
|
+
], definition, `Native component "${String(componentName)}" is not registered.`);
|
|
363
|
+
for (const key of ["label", "description"]) if (group[key] !== void 0 && typeof group[key] !== "string") push(diagnostics, "INVALID_SCHEMA", [...path, key], definition, `${key} must be a string.`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
107
366
|
function validateStyleEngine(value, diagnostics) {
|
|
108
367
|
if (value !== void 0 && value !== "react-native" && value !== "unistyles") push(diagnostics, "INVALID_SCHEMA", ["styleEngine"], { kind: "config" }, "Native styleEngine must be \"react-native\" or \"unistyles\" when present.");
|
|
109
368
|
}
|
|
@@ -376,9 +635,9 @@ function validateColorOperand(value, path, definition, diagnostics) {
|
|
|
376
635
|
push(diagnostics, "INVALID_NATIVE_VALUE", path, definition, "Native color expressions accept color strings, token references, or nested mix() expressions.");
|
|
377
636
|
}
|
|
378
637
|
function validateReferences(config, diagnostics) {
|
|
379
|
-
|
|
638
|
+
const tokenGroups = isRecord(config.tokenGroups) ? config.tokenGroups : {};
|
|
380
639
|
const tokens = /* @__PURE__ */ new Map();
|
|
381
|
-
for (const [groupName, group] of Object.entries(
|
|
640
|
+
for (const [groupName, group] of Object.entries(tokenGroups)) {
|
|
382
641
|
if (!isRecord(group) || !isRecord(group.tokens)) continue;
|
|
383
642
|
for (const [tokenName, definition] of Object.entries(group.tokens)) {
|
|
384
643
|
if (!isRecord(definition)) continue;
|
|
@@ -403,6 +662,28 @@ function validateReferences(config, diagnostics) {
|
|
|
403
662
|
}, tokens, assets, diagnostics);
|
|
404
663
|
for (const modifiers of contexts) resolveTokenContext(tokenRef, modifiers, modifierLookup, tokens, diagnostics, [], token.path);
|
|
405
664
|
}
|
|
665
|
+
for (const [componentName, component] of Object.entries(config.components ?? {})) collectComponentReferences(component, ["components", componentName], {
|
|
666
|
+
kind: "component",
|
|
667
|
+
name: componentName
|
|
668
|
+
}, tokens, assets, diagnostics);
|
|
669
|
+
}
|
|
670
|
+
function collectComponentReferences(value, path, definition, tokens, assets, diagnostics) {
|
|
671
|
+
if (Array.isArray(value)) {
|
|
672
|
+
value.forEach((entry, index) => {
|
|
673
|
+
collectComponentReferences(entry, [...path, index], definition, tokens, assets, diagnostics);
|
|
674
|
+
});
|
|
675
|
+
return;
|
|
676
|
+
}
|
|
677
|
+
if (!isRecord(value)) return;
|
|
678
|
+
if (isTokenRef(value)) {
|
|
679
|
+
if (typeof value.ref === "string" && !tokens.has(value.ref)) push(diagnostics, "UNRESOLVED_TOKEN_REFERENCE", path, definition, `Token reference "${value.ref}" does not resolve within this native config.`);
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
682
|
+
if (isAssetRef(value)) {
|
|
683
|
+
collectAllReferences(value, path, definition, tokens, assets, diagnostics);
|
|
684
|
+
return;
|
|
685
|
+
}
|
|
686
|
+
for (const [key, nested] of Object.entries(value)) collectComponentReferences(nested, [...path, key], definition, tokens, assets, diagnostics);
|
|
406
687
|
}
|
|
407
688
|
function collectAllReferences(value, path, definition, tokens, assets, diagnostics) {
|
|
408
689
|
walkValues(value, path, (entry, entryPath) => {
|
package/dist/native.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { AssetRef, TokenRef, asset, token } from "./refs.js";
|
|
2
2
|
import { ColorSpace, MixExpr, alpha, mix } from "./colorExpressions.js";
|
|
3
3
|
import { SystemLink, TokenType } from "./types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { NativeComponentBuilder, NativeComponentDefinition, NativeComponentGroupDefinition, NativeComponentProps, NativeComponentStyleHelpers, NativeComponentStyledBuilder, NativeComponentStyles, NativeLayerDefinition, NativeLayerKind, NativeLayerStyle, NativeLayerStyles, NativeRenderProps, NativeStyleValue, RegisteredNativeComponent, SerializedNativeComponentGroup, defineNativeComponent, defineNativeComponentGroup, nativeLayer } from "./native/components.js";
|
|
5
|
+
import { ModeDefinition, NativeAppearanceModeOption, NativeAssetGroupDefinition, NativeBuildOptions, NativeColorExpression, NativeDefaultModes, NativeFontAssetGroupDefinition, NativeFontAssetMember, NativeLiteral, NativeModeDefinition, NativeModeOptionDefinition, NativeSelectableValue, NativeStyleEngine, NativeTokenDefinition, NativeTokenGroupDefinition, NativeTokenValue, NativeViewportModeOption, OperatingSystemInput, OperatingSystemValue, SerializedNativeConfig } from "./native/types.js";
|
|
5
6
|
import { NativeAssetGroupBuilder, NativeFontAssetGroupConfig, defineAssetGroup } from "./native/assets.js";
|
|
6
7
|
import { defineMode } from "./native/modes.js";
|
|
7
8
|
import { NativeConfigDiagnostic, NativeConfigDiagnosticCode, validateSerializedNativeConfig } from "./native/validation.js";
|
|
8
9
|
import { NativeConfig, NativeConfigValidationError } from "./native/NativeConfig.js";
|
|
9
10
|
import { isOperatingSystemValue, operatingSystem } from "./native/values.js";
|
|
10
11
|
import { DefinedNativeTokenGroup, defineTokenGroup } from "./native/index.js";
|
|
11
|
-
export { AssetRef, ColorSpace, DefinedNativeTokenGroup, MixExpr, ModeDefinition, NativeAppearanceModeOption, NativeAssetGroupBuilder, NativeAssetGroupDefinition, NativeColorExpression, NativeConfig, NativeConfigDiagnostic, NativeConfigDiagnosticCode, NativeConfigValidationError, NativeDefaultModes, NativeFontAssetGroupConfig, NativeFontAssetGroupDefinition, NativeFontAssetMember, NativeLiteral, NativeModeDefinition, NativeModeOptionDefinition, NativeSelectableValue, NativeStyleEngine, NativeTokenDefinition, NativeTokenGroupDefinition, NativeTokenValue, NativeViewportModeOption, OperatingSystemInput, OperatingSystemValue, SerializedNativeConfig, SystemLink, TokenRef, TokenType, alpha, asset, defineAssetGroup, defineMode, defineTokenGroup, isOperatingSystemValue, mix, operatingSystem, token, validateSerializedNativeConfig };
|
|
12
|
+
export { AssetRef, ColorSpace, DefinedNativeTokenGroup, MixExpr, ModeDefinition, NativeAppearanceModeOption, NativeAssetGroupBuilder, NativeAssetGroupDefinition, NativeBuildOptions, NativeColorExpression, NativeComponentBuilder, NativeComponentDefinition, NativeComponentGroupDefinition, NativeComponentProps, NativeComponentStyleHelpers, NativeComponentStyledBuilder, NativeComponentStyles, NativeConfig, NativeConfigDiagnostic, NativeConfigDiagnosticCode, NativeConfigValidationError, NativeDefaultModes, NativeFontAssetGroupConfig, NativeFontAssetGroupDefinition, NativeFontAssetMember, NativeLayerDefinition, NativeLayerKind, NativeLayerStyle, NativeLayerStyles, NativeLiteral, NativeModeDefinition, NativeModeOptionDefinition, NativeRenderProps, NativeSelectableValue, NativeStyleEngine, NativeStyleValue, NativeTokenDefinition, NativeTokenGroupDefinition, NativeTokenValue, NativeViewportModeOption, OperatingSystemInput, OperatingSystemValue, RegisteredNativeComponent, SerializedNativeComponentGroup, SerializedNativeConfig, SystemLink, TokenRef, TokenType, alpha, asset, defineAssetGroup, defineMode, defineNativeComponent, defineNativeComponentGroup, defineTokenGroup, isOperatingSystemValue, mix, nativeLayer, operatingSystem, token, validateSerializedNativeConfig };
|
package/dist/native.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { asset, token } from "./refs.js";
|
|
2
2
|
import { alpha, mix } from "./colorExpressions.js";
|
|
3
3
|
import { defineAssetGroup } from "./native/assets.js";
|
|
4
|
+
import { defineNativeComponent, defineNativeComponentGroup, nativeLayer } from "./native/components.js";
|
|
4
5
|
import { defineMode } from "./native/modes.js";
|
|
5
6
|
import { isOperatingSystemValue, operatingSystem } from "./native/values.js";
|
|
6
7
|
import { validateSerializedNativeConfig } from "./native/validation.js";
|
|
7
8
|
import { NativeConfig, NativeConfigValidationError } from "./native/NativeConfig.js";
|
|
8
9
|
import { defineTokenGroup } from "./native/index.js";
|
|
9
|
-
export { NativeConfig, NativeConfigValidationError, alpha, asset, defineAssetGroup, defineMode, defineTokenGroup, isOperatingSystemValue, mix, operatingSystem, token, validateSerializedNativeConfig };
|
|
10
|
+
export { NativeConfig, NativeConfigValidationError, alpha, asset, defineAssetGroup, defineMode, defineNativeComponent, defineNativeComponentGroup, defineTokenGroup, isOperatingSystemValue, mix, nativeLayer, operatingSystem, token, validateSerializedNativeConfig };
|
|
@@ -22,16 +22,16 @@ import { wrapVoidElements } from "./wrappers/void-elements.js";
|
|
|
22
22
|
* seen the element.
|
|
23
23
|
*/
|
|
24
24
|
function wrapRegistry(reg, descriptor, assetMembersBySlug) {
|
|
25
|
-
return aliasHtmlTypes(wrapInlineStyleProps(wrapNormalizeHex(wrapEventBridge(
|
|
25
|
+
return aliasHtmlTypes(wrapInlineStyleProps(wrapNormalizeHex(wrapEventBridge(wrapComponentTypedSlots(wrapSlotResolution(wrapVoidElements({
|
|
26
26
|
...reg,
|
|
27
27
|
Fragment: reg.Fragment ?? FragmentRenderer,
|
|
28
28
|
Slot: reg.Slot ?? SlotRenderer
|
|
29
|
-
}
|
|
30
|
-
componentSlots: descriptor?.componentSlots,
|
|
31
|
-
assetMembersBySlug
|
|
32
|
-
}), {
|
|
29
|
+
}, {
|
|
33
30
|
voidComponents: descriptor?.voidComponents,
|
|
34
31
|
noChildrenComponents: descriptor?.noChildrenComponents
|
|
32
|
+
})), {
|
|
33
|
+
componentSlots: descriptor?.componentSlots,
|
|
34
|
+
assetMembersBySlug
|
|
35
35
|
}))), {
|
|
36
36
|
cssPropertyToStyleProp: descriptor?.cssPropertyToStyleProp,
|
|
37
37
|
layoutComponents: descriptor?.layoutComponents,
|