@yahoo/uds-create-config 4.26.5 → 4.26.7

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.
@@ -58,7 +58,7 @@ declare const ReactNativeSystem: ConfigClass<{
58
58
  pagesDir: _$zod.ZodOptional<_$zod.ZodString>;
59
59
  port: _$zod.ZodOptional<_$zod.ZodNumber>;
60
60
  }, _$zod_v4_core0.$strict>>;
61
- }, "canvas" | "css" | "playground"> & {
61
+ }, "css" | "playground" | "canvas"> & {
62
62
  canvas: _$zod.ZodOptional<_$zod.ZodObject<{
63
63
  packageAliases: _$zod.ZodOptional<_$zod.ZodRecord<_$zod.ZodString, _$zod.ZodString>>;
64
64
  }, _$zod_v4_core0.$strict>>;
@@ -1537,7 +1537,7 @@ declare const ReactNativeSystem: ConfigClass<{
1537
1537
  arbitrary: _$zod.ZodDefault<_$zod.ZodBoolean>;
1538
1538
  negates: _$zod.ZodDefault<_$zod.ZodBoolean>;
1539
1539
  opacityOf: _$zod.ZodOptional<_$zod.ZodLazy<_$zod.ZodType<Ref, unknown, _$zod_v4_core0.$ZodTypeInternals<Ref, unknown>>>>;
1540
- }, "values" | "classPrefix" | "properties"> & {
1540
+ }, "values" | "properties" | "classPrefix"> & {
1541
1541
  properties: _$zod.ZodArray<_$zod.ZodPipe<_$zod.ZodPipe<_$zod.ZodString, _$zod.ZodTransform<string, string>>, _$zod.ZodEnum<{
1542
1542
  filter: "filter";
1543
1543
  transform: "transform";
@@ -1562,14 +1562,7 @@ declare const ReactNativeSystem: ConfigClass<{
1562
1562
  overflow: "overflow";
1563
1563
  padding: "padding";
1564
1564
  width: "width";
1565
- elevation: "elevation";
1566
1565
  fontFamily: "fontFamily";
1567
- fontSize: "fontSize";
1568
- fontStyle: "fontStyle";
1569
- fontVariant: "fontVariant";
1570
- fontWeight: "fontWeight";
1571
- letterSpacing: "letterSpacing";
1572
- pointerEvents: "pointerEvents";
1573
1566
  alignContent: "alignContent";
1574
1567
  alignItems: "alignItems";
1575
1568
  alignSelf: "alignSelf";
@@ -1611,6 +1604,7 @@ declare const ReactNativeSystem: ConfigClass<{
1611
1604
  boxShadow: "boxShadow";
1612
1605
  boxSizing: "boxSizing";
1613
1606
  columnGap: "columnGap";
1607
+ elevation: "elevation";
1614
1608
  experimental_backgroundImage: "experimental_backgroundImage";
1615
1609
  experimental_backgroundPosition: "experimental_backgroundPosition";
1616
1610
  experimental_backgroundRepeat: "experimental_backgroundRepeat";
@@ -1620,6 +1614,10 @@ declare const ReactNativeSystem: ConfigClass<{
1620
1614
  flexGrow: "flexGrow";
1621
1615
  flexShrink: "flexShrink";
1622
1616
  flexWrap: "flexWrap";
1617
+ fontSize: "fontSize";
1618
+ fontStyle: "fontStyle";
1619
+ fontVariant: "fontVariant";
1620
+ fontWeight: "fontWeight";
1623
1621
  includeFontPadding: "includeFontPadding";
1624
1622
  insetBlock: "insetBlock";
1625
1623
  insetBlockEnd: "insetBlockEnd";
@@ -1628,6 +1626,7 @@ declare const ReactNativeSystem: ConfigClass<{
1628
1626
  insetInlineEnd: "insetInlineEnd";
1629
1627
  insetInlineStart: "insetInlineStart";
1630
1628
  justifyContent: "justifyContent";
1629
+ letterSpacing: "letterSpacing";
1631
1630
  lineHeight: "lineHeight";
1632
1631
  marginBlock: "marginBlock";
1633
1632
  marginBlockEnd: "marginBlockEnd";
@@ -1668,6 +1667,7 @@ declare const ReactNativeSystem: ConfigClass<{
1668
1667
  paddingStart: "paddingStart";
1669
1668
  paddingTop: "paddingTop";
1670
1669
  paddingVertical: "paddingVertical";
1670
+ pointerEvents: "pointerEvents";
1671
1671
  resizeMode: "resizeMode";
1672
1672
  rotation: "rotation";
1673
1673
  rowGap: "rowGap";
@@ -2265,7 +2265,7 @@ declare const ReactNativeSystem: ConfigClass<{
2265
2265
  pagesDir: _$zod.ZodOptional<_$zod.ZodString>;
2266
2266
  port: _$zod.ZodOptional<_$zod.ZodNumber>;
2267
2267
  }, _$zod_v4_core0.$strict>>;
2268
- }, "canvas" | "css" | "playground"> & {
2268
+ }, "css" | "playground" | "canvas"> & {
2269
2269
  canvas: _$zod.ZodOptional<_$zod.ZodObject<{
2270
2270
  packageAliases: _$zod.ZodOptional<_$zod.ZodRecord<_$zod.ZodString, _$zod.ZodString>>;
2271
2271
  }, _$zod_v4_core0.$strict>>;
@@ -3744,7 +3744,7 @@ declare const ReactNativeSystem: ConfigClass<{
3744
3744
  arbitrary: _$zod.ZodDefault<_$zod.ZodBoolean>;
3745
3745
  negates: _$zod.ZodDefault<_$zod.ZodBoolean>;
3746
3746
  opacityOf: _$zod.ZodOptional<_$zod.ZodLazy<_$zod.ZodType<Ref, unknown, _$zod_v4_core0.$ZodTypeInternals<Ref, unknown>>>>;
3747
- }, "values" | "classPrefix" | "properties"> & {
3747
+ }, "values" | "properties" | "classPrefix"> & {
3748
3748
  properties: _$zod.ZodArray<_$zod.ZodPipe<_$zod.ZodPipe<_$zod.ZodString, _$zod.ZodTransform<string, string>>, _$zod.ZodEnum<{
3749
3749
  filter: "filter";
3750
3750
  transform: "transform";
@@ -3769,14 +3769,7 @@ declare const ReactNativeSystem: ConfigClass<{
3769
3769
  overflow: "overflow";
3770
3770
  padding: "padding";
3771
3771
  width: "width";
3772
- elevation: "elevation";
3773
3772
  fontFamily: "fontFamily";
3774
- fontSize: "fontSize";
3775
- fontStyle: "fontStyle";
3776
- fontVariant: "fontVariant";
3777
- fontWeight: "fontWeight";
3778
- letterSpacing: "letterSpacing";
3779
- pointerEvents: "pointerEvents";
3780
3773
  alignContent: "alignContent";
3781
3774
  alignItems: "alignItems";
3782
3775
  alignSelf: "alignSelf";
@@ -3818,6 +3811,7 @@ declare const ReactNativeSystem: ConfigClass<{
3818
3811
  boxShadow: "boxShadow";
3819
3812
  boxSizing: "boxSizing";
3820
3813
  columnGap: "columnGap";
3814
+ elevation: "elevation";
3821
3815
  experimental_backgroundImage: "experimental_backgroundImage";
3822
3816
  experimental_backgroundPosition: "experimental_backgroundPosition";
3823
3817
  experimental_backgroundRepeat: "experimental_backgroundRepeat";
@@ -3827,6 +3821,10 @@ declare const ReactNativeSystem: ConfigClass<{
3827
3821
  flexGrow: "flexGrow";
3828
3822
  flexShrink: "flexShrink";
3829
3823
  flexWrap: "flexWrap";
3824
+ fontSize: "fontSize";
3825
+ fontStyle: "fontStyle";
3826
+ fontVariant: "fontVariant";
3827
+ fontWeight: "fontWeight";
3830
3828
  includeFontPadding: "includeFontPadding";
3831
3829
  insetBlock: "insetBlock";
3832
3830
  insetBlockEnd: "insetBlockEnd";
@@ -3835,6 +3833,7 @@ declare const ReactNativeSystem: ConfigClass<{
3835
3833
  insetInlineEnd: "insetInlineEnd";
3836
3834
  insetInlineStart: "insetInlineStart";
3837
3835
  justifyContent: "justifyContent";
3836
+ letterSpacing: "letterSpacing";
3838
3837
  lineHeight: "lineHeight";
3839
3838
  marginBlock: "marginBlock";
3840
3839
  marginBlockEnd: "marginBlockEnd";
@@ -3875,6 +3874,7 @@ declare const ReactNativeSystem: ConfigClass<{
3875
3874
  paddingStart: "paddingStart";
3876
3875
  paddingTop: "paddingTop";
3877
3876
  paddingVertical: "paddingVertical";
3877
+ pointerEvents: "pointerEvents";
3878
3878
  resizeMode: "resizeMode";
3879
3879
  rotation: "rotation";
3880
3880
  rowGap: "rowGap";
@@ -1,7 +1,7 @@
1
- import { Settings } from "../entities/system/Settings.js";
2
1
  import { Font } from "../entities/system/Font.js";
3
2
  import { Composite } from "../entities/system/Composite.js";
4
3
  import { Modifier } from "../entities/system/Modifier.js";
4
+ import { Settings } from "../entities/system/Settings.js";
5
5
  import { StyleProperty } from "../entities/system/StyleProperty.js";
6
6
  import { Package } from "../entities/system/Package.js";
7
7
  import { File } from "../entities/system/File.js";
@@ -36,7 +36,7 @@ declare const NativeSettings: EntityClass<z.ZodObject<Omit<{
36
36
  pagesDir: z.ZodOptional<z.ZodString>;
37
37
  port: z.ZodOptional<z.ZodNumber>;
38
38
  }, z.core.$strict>>;
39
- }, "canvas" | "css" | "playground"> & {
39
+ }, "css" | "playground" | "canvas"> & {
40
40
  canvas: z.ZodOptional<z.ZodObject<{
41
41
  packageAliases: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
42
42
  }, z.core.$strict>>;
@@ -30,14 +30,7 @@ declare const rnStyleKey: z.ZodEnum<{
30
30
  overflow: "overflow";
31
31
  padding: "padding";
32
32
  width: "width";
33
- elevation: "elevation";
34
33
  fontFamily: "fontFamily";
35
- fontSize: "fontSize";
36
- fontStyle: "fontStyle";
37
- fontVariant: "fontVariant";
38
- fontWeight: "fontWeight";
39
- letterSpacing: "letterSpacing";
40
- pointerEvents: "pointerEvents";
41
34
  alignContent: "alignContent";
42
35
  alignItems: "alignItems";
43
36
  alignSelf: "alignSelf";
@@ -79,6 +72,7 @@ declare const rnStyleKey: z.ZodEnum<{
79
72
  boxShadow: "boxShadow";
80
73
  boxSizing: "boxSizing";
81
74
  columnGap: "columnGap";
75
+ elevation: "elevation";
82
76
  experimental_backgroundImage: "experimental_backgroundImage";
83
77
  experimental_backgroundPosition: "experimental_backgroundPosition";
84
78
  experimental_backgroundRepeat: "experimental_backgroundRepeat";
@@ -88,6 +82,10 @@ declare const rnStyleKey: z.ZodEnum<{
88
82
  flexGrow: "flexGrow";
89
83
  flexShrink: "flexShrink";
90
84
  flexWrap: "flexWrap";
85
+ fontSize: "fontSize";
86
+ fontStyle: "fontStyle";
87
+ fontVariant: "fontVariant";
88
+ fontWeight: "fontWeight";
91
89
  includeFontPadding: "includeFontPadding";
92
90
  insetBlock: "insetBlock";
93
91
  insetBlockEnd: "insetBlockEnd";
@@ -96,6 +94,7 @@ declare const rnStyleKey: z.ZodEnum<{
96
94
  insetInlineEnd: "insetInlineEnd";
97
95
  insetInlineStart: "insetInlineStart";
98
96
  justifyContent: "justifyContent";
97
+ letterSpacing: "letterSpacing";
99
98
  lineHeight: "lineHeight";
100
99
  marginBlock: "marginBlock";
101
100
  marginBlockEnd: "marginBlockEnd";
@@ -136,6 +135,7 @@ declare const rnStyleKey: z.ZodEnum<{
136
135
  paddingStart: "paddingStart";
137
136
  paddingTop: "paddingTop";
138
137
  paddingVertical: "paddingVertical";
138
+ pointerEvents: "pointerEvents";
139
139
  resizeMode: "resizeMode";
140
140
  rotation: "rotation";
141
141
  rowGap: "rowGap";
@@ -172,7 +172,7 @@ declare const NativeStyleProperty: EntityClass<z.ZodObject<Omit<{
172
172
  arbitrary: z.ZodDefault<z.ZodBoolean>;
173
173
  negates: z.ZodDefault<z.ZodBoolean>;
174
174
  opacityOf: z.ZodOptional<z.ZodLazy<z.ZodType<Ref, unknown, z.core.$ZodTypeInternals<Ref, unknown>>>>;
175
- }, "values" | "classPrefix" | "properties"> & {
175
+ }, "values" | "properties" | "classPrefix"> & {
176
176
  properties: z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodEnum<{
177
177
  filter: "filter";
178
178
  transform: "transform";
@@ -197,14 +197,7 @@ declare const NativeStyleProperty: EntityClass<z.ZodObject<Omit<{
197
197
  overflow: "overflow";
198
198
  padding: "padding";
199
199
  width: "width";
200
- elevation: "elevation";
201
200
  fontFamily: "fontFamily";
202
- fontSize: "fontSize";
203
- fontStyle: "fontStyle";
204
- fontVariant: "fontVariant";
205
- fontWeight: "fontWeight";
206
- letterSpacing: "letterSpacing";
207
- pointerEvents: "pointerEvents";
208
201
  alignContent: "alignContent";
209
202
  alignItems: "alignItems";
210
203
  alignSelf: "alignSelf";
@@ -246,6 +239,7 @@ declare const NativeStyleProperty: EntityClass<z.ZodObject<Omit<{
246
239
  boxShadow: "boxShadow";
247
240
  boxSizing: "boxSizing";
248
241
  columnGap: "columnGap";
242
+ elevation: "elevation";
249
243
  experimental_backgroundImage: "experimental_backgroundImage";
250
244
  experimental_backgroundPosition: "experimental_backgroundPosition";
251
245
  experimental_backgroundRepeat: "experimental_backgroundRepeat";
@@ -255,6 +249,10 @@ declare const NativeStyleProperty: EntityClass<z.ZodObject<Omit<{
255
249
  flexGrow: "flexGrow";
256
250
  flexShrink: "flexShrink";
257
251
  flexWrap: "flexWrap";
252
+ fontSize: "fontSize";
253
+ fontStyle: "fontStyle";
254
+ fontVariant: "fontVariant";
255
+ fontWeight: "fontWeight";
258
256
  includeFontPadding: "includeFontPadding";
259
257
  insetBlock: "insetBlock";
260
258
  insetBlockEnd: "insetBlockEnd";
@@ -263,6 +261,7 @@ declare const NativeStyleProperty: EntityClass<z.ZodObject<Omit<{
263
261
  insetInlineEnd: "insetInlineEnd";
264
262
  insetInlineStart: "insetInlineStart";
265
263
  justifyContent: "justifyContent";
264
+ letterSpacing: "letterSpacing";
266
265
  lineHeight: "lineHeight";
267
266
  marginBlock: "marginBlock";
268
267
  marginBlockEnd: "marginBlockEnd";
@@ -303,6 +302,7 @@ declare const NativeStyleProperty: EntityClass<z.ZodObject<Omit<{
303
302
  paddingStart: "paddingStart";
304
303
  paddingTop: "paddingTop";
305
304
  paddingVertical: "paddingVertical";
305
+ pointerEvents: "pointerEvents";
306
306
  resizeMode: "resizeMode";
307
307
  rotation: "rotation";
308
308
  rowGap: "rowGap";
@@ -1,17 +1,18 @@
1
- import { canonicalCondition, isRef, kindOf, pathOf, ref, refLeaf, refSchema, splitRef } from "../../framework/utils/refs.js";
2
- import { childrenPolicy, forwardedPropName } from "./element.js";
3
1
  import { reject, rejectData } from "../../framework/rejection.js";
2
+ import { canonicalCondition, isRef, kindOf, pathOf, ref, refLeaf, refSchema, splitRef } from "../../framework/utils/refs.js";
4
3
  import { isPlainObject } from "../../framework/utils/field-path.js";
5
4
  import { pathInput } from "../../framework/schemas.js";
6
5
  import { defineEntity } from "../../framework/defineEntity.js";
7
6
  import { defineSubEntity } from "../../framework/defineSubEntity.js";
8
7
  import { derivedColor, gradient } from "./color.js";
8
+ import { childrenPolicy, forwardedPropName } from "./element.js";
9
9
  import { listedIn } from "../../framework/utils/enumerated.js";
10
10
  import { valueSchemaOf } from "../../framework/value-domain.js";
11
11
  import { bindPreviewGlyphs, glyphLeafOf } from "./glyph-identity.js";
12
12
  import { Style, addBagKeyIssues, anatomyPropValue, bagNameEdges, bagRewriteName, bindBagTokens, collectBag, isPlainRecord, openBag, styleValue } from "./style-bag.js";
13
13
  import { storedPreview } from "../../framework/preview-store.js";
14
14
  import { glyphPropsOf, propValueDomain, refListOf, resolveComponentProps, stylePropValueLeaves, validateComponentProps } from "../../framework/projections.js";
15
+ import { carriesContent, intoName, isValueSlot, renderBoundProp, routedPropIn, routesContent } from "../../framework/prop-surface.js";
15
16
  import { slotAnatomyPropOf, slotTargetsOf, withoutTruthyTerm } from "../../framework/render-spec.js";
16
17
  import { listSlots, namedSlots, slotHostedBy, slotOf } from "../../spec/slot.js";
17
18
  import { cellAt } from "../../spec/cell.js";
@@ -21,7 +22,6 @@ import { File } from "./File.js";
21
22
  import { iconDomainInvariants } from "./icon-domain-invariants.js";
22
23
  import { rootLayerInvariants } from "./root-layer-invariants.js";
23
24
  import { Token } from "./Token.js";
24
- import { carriesContent, intoName, isValueSlot, renderBoundProp, routedPropIn, routesContent } from "../../framework/prop-surface.js";
25
25
  import { z } from "zod";
26
26
  //#region src/entities/system/Component.ts
27
27
  /**
@@ -1,7 +1,7 @@
1
- import { buildFields } from "../../configs/build-options.js";
2
- import { parseRootFontSize } from "../../css/root-font-size.js";
3
1
  import { defineEntity } from "../../framework/defineEntity.js";
4
2
  import { defineSubEntity } from "../../framework/defineSubEntity.js";
3
+ import { buildFields } from "../../configs/build-options.js";
4
+ import { parseRootFontSize } from "../../css/root-font-size.js";
5
5
  import { z } from "zod";
6
6
  //#region src/entities/system/Settings.ts
7
7
  /**
@@ -1,5 +1,5 @@
1
- import { MINTED, collectRefs, isMintedRow, kindOf, pathOf, rewriteRefs, sourceOf, splitRef } from "../../framework/utils/refs.js";
2
1
  import { rejectData } from "../../framework/rejection.js";
2
+ import { MINTED, collectRefs, isMintedRow, kindOf, pathOf, rewriteRefs, sourceOf, splitRef } from "../../framework/utils/refs.js";
3
3
  import { kindBorrowable } from "../../framework/registry.js";
4
4
  import { File } from "./File.js";
5
5
  import { componentModuleFilePaths, componentRegistryImports } from "./component-module.js";
@@ -1,7 +1,7 @@
1
1
  import { createSliceMemo } from "../../framework/memo.js";
2
2
  import { glyphComponentOf, glyphLibrariesOf, iconToolOf, resolveComponentProps } from "../../framework/projections.js";
3
- import { Component } from "./Component.js";
4
3
  import { isValueSlot } from "../../framework/prop-surface.js";
4
+ import { Component } from "./Component.js";
5
5
  import { parseGlyphType } from "../../spec/glyph-jsx.js";
6
6
  import { Icon } from "./Icon.js";
7
7
  //#region src/entities/system/icon-library.ts
@@ -1,5 +1,5 @@
1
- import { collectRefs, isMintedRow, ref, sourceOf, splitRef } from "../../framework/utils/refs.js";
2
1
  import { rejectData } from "../../framework/rejection.js";
2
+ import { collectRefs, isMintedRow, ref, sourceOf, splitRef } from "../../framework/utils/refs.js";
3
3
  import { blockedBy } from "../../framework/plan.js";
4
4
  import { PIN_KIND, covers, declarationOf, narrowDeclaration } from "./link-declaration.js";
5
5
  import { planCopy, sourceEntries } from "./copy-plan.js";
@@ -1,6 +1,6 @@
1
- import { ENTITY_PATH_MESSAGE, MINTED, collectRefs, entityRefOf, isEntityPath, isExtendedRef, isMintedRow, isRef, kindOf, memberOf, memberRef, pathOf, qualifyRefs, ref, rewriteRefNamespace, rewriteRefSource, rewriteRefs, singletonRef, sourceOf, splitRef } from "./utils/refs.js";
2
1
  import "./config-operation-kind.js";
3
2
  import { ConfigFormatError, ConfigRejection, isConfigRejection, issuePath, refusalIssues, reject, rejectData, rejectInvalid, rejectReferrers } from "./rejection.js";
3
+ import { ENTITY_PATH_MESSAGE, MINTED, collectRefs, entityRefOf, isEntityPath, isExtendedRef, isMintedRow, isRef, kindOf, memberOf, memberRef, pathOf, qualifyRefs, ref, rewriteRefNamespace, rewriteRefSource, rewriteRefs, singletonRef, sourceOf, splitRef } from "./utils/refs.js";
4
4
  import { describePatch } from "./plan.js";
5
5
  import { applyPathDelta, isPlainObject, namedFields, pathSegments, sectionDelta, touchedFields } from "./utils/field-path.js";
6
6
  import { METADATA_KEYS, declaredField } from "./utils/field-schema.js";
@@ -1,5 +1,5 @@
1
- import { isExpression, readStatePointer, resolveVisibility, slotTargetsOf, valueForwardsOf } from "./render-spec.js";
2
1
  import { renderBindingsOf } from "./prop-surface.js";
2
+ import { isExpression, readStatePointer, resolveVisibility, slotTargetsOf, valueForwardsOf } from "./render-spec.js";
3
3
  //#region src/framework/bindings.ts
4
4
  const KIND_BY_KEY = [
5
5
  ["$bindState", "bindState"],
@@ -1,5 +1,5 @@
1
- import { isRef, kindOf, pathOf, ref, refSchema, refTo, sourceOf } from "./utils/refs.js";
2
1
  import { CONFIG_OPERATION_KIND } from "./config-operation-kind.js";
2
+ import { isRef, kindOf, pathOf, ref, refSchema, refTo, sourceOf } from "./utils/refs.js";
3
3
  import { resolveFields } from "./schemas.js";
4
4
  import { buildKind } from "./registry.js";
5
5
  import { brandGroup } from "./utils/group.js";
@@ -1,5 +1,5 @@
1
- import { MINTED, collectRefs, entityRefOf, isRef, kindOf, pathOf, ref, rewriteRefs, sourceOf } from "./utils/refs.js";
2
1
  import { rejectData } from "./rejection.js";
2
+ import { MINTED, collectRefs, entityRefOf, isRef, kindOf, pathOf, ref, rewriteRefs, sourceOf } from "./utils/refs.js";
3
3
  import { kindBorrowable } from "./registry.js";
4
4
  //#region src/framework/inline-sources.ts
5
5
  /**
@@ -1,5 +1,5 @@
1
- import { splitRef } from "./utils/refs.js";
2
1
  import { isConfigRejection } from "./rejection.js";
2
+ import { splitRef } from "./utils/refs.js";
3
3
  //#region src/framework/plan.ts
4
4
  /**
5
5
  * One line for a patch, read off the patch itself: its kind, what it did, and where. The payload
@@ -1,10 +1,10 @@
1
1
  import { isRef, kindOf, memberOf, pathOf, ref, refLeaf, sourceOf, splitRef } from "./utils/refs.js";
2
- import { forwardedPropName, forwardsOf, rootLayerOf } from "../entities/system/element.js";
3
- import { classPrefixOf, varPrefixOf } from "../entities/system/Settings.js";
4
2
  import { isComposedValue, renderComposedValue } from "../entities/system/composed-values.js";
3
+ import { forwardedPropName, forwardsOf, rootLayerOf } from "../entities/system/element.js";
5
4
  import { fontFamilyStack } from "../entities/system/Font.js";
6
5
  import { listedIn } from "./utils/enumerated.js";
7
6
  import { modifierCategory } from "../entities/system/Modifier.js";
7
+ import { classPrefixOf, varPrefixOf } from "../entities/system/Settings.js";
8
8
  import { StyleProperty, leavesOfStylePropValue } from "../entities/system/StyleProperty.js";
9
9
  import { createSliceMemo } from "./memo.js";
10
10
  import { isConditionalPreview, storedPreview, unconditionalPreviewProps } from "./preview-store.js";
@@ -20,6 +20,15 @@ interface RenderElement {
20
20
  /** json-render's own `on` grammar: event name → the actions it runs. Carried from the anatomy
21
21
  * for the component's own composition, so a click in a preview writes the state model. */
22
22
  readonly on?: unknown;
23
+ /** json-render's own repeat grammar: this element's children render once per item of the list at
24
+ * `statePath`, each inside the scope `$item` and `$index` read from. A nested list on the
25
+ * enclosing item is named as `{ $item: 'field' }`. */
26
+ readonly repeat?: {
27
+ readonly statePath: string | {
28
+ readonly $item: string;
29
+ };
30
+ readonly key?: string;
31
+ };
23
32
  }
24
33
  interface RenderSpec {
25
34
  readonly root: string;
@@ -3,11 +3,15 @@ import { renderedElement } from "../entities/system/element.js";
3
3
  import { createSliceMemo } from "./memo.js";
4
4
  import { unconditionalPreviewProps } from "./preview-store.js";
5
5
  import { authoredBag, authoredValue, declaredPropDefaults, memberFromLeaf, refListOf, resolveComponentProps, stylePropertyPathFor } from "./projections.js";
6
- import { componentLayerClass, componentPropClasses, componentRuleClasses, layerRoutedProps, splitStyleProps, styleRuleMotionClasses } from "./class-names.js";
7
- import { graftPreviewElements } from "../spec/preview-elements.js";
8
6
  import { slotHostLayer } from "./slot-host.js";
9
7
  import { forwardedLayers, intoName, isValueSlot, renderBindingsOf, routesContent } from "./prop-surface.js";
8
+ import { graftPreviewElements } from "../spec/preview-elements.js";
9
+ import { componentLayerClass, componentPropClasses, componentRuleClasses, layerRoutedProps, splitStyleProps, styleRuleMotionClasses } from "./class-names.js";
10
10
  //#region src/framework/render-spec.ts
11
+ /** A repeat source that is one prop binding: `{ "$state": "/stops" }`, settled by the cell alone. */
12
+ function isStateSource(source) {
13
+ return typeof source === "object" && source !== null && "$state" in source && Object.keys(source).length === 1;
14
+ }
11
15
  const refOf = (value) => typeof value?.__ref === "string" ? value.__ref : void 0;
12
16
  const layerOf = (element) => {
13
17
  const target = refOf(element);
@@ -251,12 +255,48 @@ function projectSpec(config, path) {
251
255
  ...node.on !== void 0 ? { on: node.on } : {}
252
256
  };
253
257
  }
258
+ repeatParents(anatomy, elements);
254
259
  return {
255
260
  root: entryKeyOf(elements),
256
261
  elements
257
262
  };
258
263
  }
259
264
  /**
265
+ * A node the render writes once per item of a prop's list, as json-render repeats it: the parent
266
+ * carries `repeat: { statePath }` and renders its children once per item, each inside the scope
267
+ * `$item` and `$index` read from, so the matrix unrolls the preview's list the way the module does.
268
+ * That spelling covers a parent whose every child is an arm of one `.map` over a prop. A parent that
269
+ * mixes repeated and single children, or a list a module-scope function computes, has no json-render
270
+ * spelling and is left as it was, each arm once; `expandSpec` settles those.
271
+ */
272
+ function repeatParents(anatomy, elements) {
273
+ for (const [key, node] of Object.entries(anatomy)) {
274
+ const children = node?.children ?? [];
275
+ const element = elements[key];
276
+ if (children.length === 0 || !element) continue;
277
+ const arms = children.map((child) => {
278
+ const repeat = anatomy[child]?.repeat;
279
+ return {
280
+ group: repeat?.group,
281
+ statePath: statePathOf(repeat?.source)
282
+ };
283
+ });
284
+ const [first] = arms;
285
+ if (!first?.statePath) continue;
286
+ if (!arms.every((arm) => arm.statePath === first.statePath && arm.group === first.group)) continue;
287
+ elements[key] = {
288
+ ...element,
289
+ repeat: { statePath: first.statePath }
290
+ };
291
+ }
292
+ }
293
+ /** The pointer a repeat source that is one prop binding names; nothing for a computed list. */
294
+ function statePathOf(source) {
295
+ if (!isStateSource(source)) return void 0;
296
+ const { $state } = source;
297
+ return typeof $state === "string" ? $state : void 0;
298
+ }
299
+ /**
260
300
  * The props a spec's actions write — the root of every `setState` path under any element's `on`.
261
301
  * These are the props a preview must keep LIVE: their conditions stay for the renderer to judge
262
302
  * against the state model rather than being settled once, and their styles paint per value.
@@ -1212,7 +1252,10 @@ function expandInstance(sink, path, instanceProps, content, hint, instanceSlots)
1212
1252
  row,
1213
1253
  settle: true
1214
1254
  });
1215
- if (!Array.isArray(list)) return keys.flatMap((key) => emitOne(key, keyHint, row));
1255
+ if (!Array.isArray(list)) {
1256
+ if (isStateSource(source)) return [];
1257
+ return keys.flatMap((key) => emitOne(key, keyHint, row));
1258
+ }
1216
1259
  const placed = [];
1217
1260
  list.forEach((item, index) => {
1218
1261
  const itemRow = {
@@ -1401,6 +1444,13 @@ function expandSpec(config, spec, options = {}) {
1401
1444
  on: element.on
1402
1445
  };
1403
1446
  }
1447
+ if (element.repeat !== void 0) {
1448
+ const target = sink.elements[placed];
1449
+ if (target && sameKeys(target.children, children)) sink.elements[placed] = {
1450
+ ...target,
1451
+ repeat: element.repeat
1452
+ };
1453
+ }
1404
1454
  emitting.delete(key);
1405
1455
  return placed;
1406
1456
  };
@@ -1414,6 +1464,9 @@ function expandSpec(config, spec, options = {}) {
1414
1464
  unresolved: [...sink.unresolved]
1415
1465
  };
1416
1466
  }
1467
+ function sameKeys(a, b) {
1468
+ return (a ?? []).length === b.length && b.every((key, i) => a?.[i] === key);
1469
+ }
1417
1470
  /**
1418
1471
  * One component instance, expanded from nothing but the config — what a canvas paints for a
1419
1472
  * component created in Studio.
package/dist/index.js CHANGED
@@ -1,12 +1,7 @@
1
1
  import { AI_LANES, GUIDANCE_LANES } from "./ai-lanes.js";
2
- import { CapturedNode, capturedFromDom, elementFromCaptured } from "./capture/captured-tree.js";
3
- import { ENTITY_PATH_MESSAGE, MINTED, collectRefs, entityRefOf, isEntityPath, isExtendedRef, isMintedRow, isRef, kindOf, memberOf, memberRef, orRef, pathOf, ref, refLeaf, refSchema, refTo, rewriteRefNamespace, rewriteRefSource, rewriteRefs, sourceOf, splitRef } from "./framework/utils/refs.js";
4
- import { VOID_ELEMENTS, childrenPolicy, forwardsOf, ownerOf, partsOf, renderedElement, renderedTarget, rootLayerOf } from "./entities/system/element.js";
5
- import { BUILD_DEFAULTS } from "./configs/build-options.js";
6
- import { resolveValueType, sniffValueType } from "./css/value-type.js";
7
- import { parseRootFontSize } from "./css/root-font-size.js";
8
2
  import { CONFIG_OPERATION_KIND } from "./framework/config-operation-kind.js";
9
3
  import { ConfigFormatError, ConfigRejection, isConfigFormatError, isConfigRejection } from "./framework/rejection.js";
4
+ import { ENTITY_PATH_MESSAGE, MINTED, collectRefs, entityRefOf, isEntityPath, isExtendedRef, isMintedRow, isRef, kindOf, memberOf, memberRef, orRef, pathOf, ref, refLeaf, refSchema, refTo, rewriteRefNamespace, rewriteRefSource, rewriteRefs, sourceOf, splitRef } from "./framework/utils/refs.js";
10
5
  import { describePatch } from "./framework/plan.js";
11
6
  import { applyPathDelta, isPlainObject, namedFields, pathDelta, pathSegments, setAtPath, touchedFields } from "./framework/utils/field-path.js";
12
7
  import { declaredField, deriveCreateSchema, deriveUpdateSchema, fieldKeys } from "./framework/utils/field-schema.js";
@@ -15,23 +10,28 @@ import { opsForKind } from "./framework/registry.js";
15
10
  import { GROUP, brandGroup, isGroupBody } from "./framework/utils/group.js";
16
11
  import { defineEntity } from "./framework/defineEntity.js";
17
12
  import { defineSubEntity } from "./framework/defineSubEntity.js";
18
- import { BuildSection, CSS_DEFAULTS, CssSection, PLAYGROUND_DEFAULTS, PlaygroundSection, Settings, SystemSection, classPrefixOf, cssPrefixes, varPrefixOf } from "./entities/system/Settings.js";
19
13
  import { DERIVED_COLOR_SPACE, alpha, darken, isDerivedColor, isGradient, lighten, linearGradient, mix, renderDerivedColor, renderGradient } from "./entities/system/color.js";
20
14
  import { isTransition, renderTransition, transition } from "./entities/system/transition.js";
21
15
  import { composedValueAuthoring, composedValueFormOf, composedValueForms, composedValueSchemas, isComposedValue, renderComposedValue } from "./entities/system/composed-values.js";
16
+ import { VOID_ELEMENTS, childrenPolicy, forwardsOf, ownerOf, partsOf, renderedElement, renderedTarget, rootLayerOf } from "./entities/system/element.js";
22
17
  import { Font, FontFile, fontFamilyStack } from "./entities/system/Font.js";
23
18
  import { CSS_PROPERTY_NAMES, CSS_WIDE_KEYWORDS, cssProperty, cssValueIssue, isCssProperty } from "./css/values.js";
24
19
  import { valueLeavesOf, valueSchemaOf } from "./framework/value-domain.js";
25
20
  import { Composite } from "./entities/system/Composite.js";
26
21
  import { MODIFIER_CATEGORIES, Modifier, WEB_ACTIVATIONS, modeAxes, modifierAxes, modifierAxis, modifierCategory, modifierGroupFields, modifierInvariants, modifierLeaf } from "./entities/system/Modifier.js";
22
+ import { BUILD_DEFAULTS } from "./configs/build-options.js";
23
+ import { resolveValueType, sniffValueType } from "./css/value-type.js";
24
+ import { parseRootFontSize } from "./css/root-font-size.js";
25
+ import { BuildSection, CSS_DEFAULTS, CssSection, PLAYGROUND_DEFAULTS, PlaygroundSection, Settings, SystemSection, classPrefixOf, cssPrefixes, varPrefixOf } from "./entities/system/Settings.js";
27
26
  import { isIdentifier, isReservedWord } from "./framework/utils/identifier.js";
28
27
  import { STYLE_PROP_VALUE_FORMS, STYLE_PROP_VALUE_LEAVES, StyleProperty, classifyStylePropValue, cssPropertyNames, leavesOfStylePropValue, stylePropValueFormOf, stylePropValueSchema, toCssPropertyName } from "./entities/system/StyleProperty.js";
29
28
  import { createSliceMemo } from "./framework/memo.js";
30
29
  import { UNCONDITIONAL_PREVIEW_KEY, storedPreview, unconditionalPreviewProps } from "./framework/preview-store.js";
31
30
  import { authoredBag, authoredValue, className, cssPropValue, cssVar, cssVarRef, declaredPropDefaults, declaredPropRouting, glyphComponentOf, glyphLibrariesOf, glyphPropsOf, iconToolAxisOptions, iconToolOf, keyedPreviewConditions, memberFromLeaf, memberLeaves, negatedCssValue, opacityPercentage, previewConditionalProps, previewConditions, previewDefaults, previewMatrix, propOwner, propValueDomain, propValueFromAxis, refListOf, renderStyleValue, resolveComponentProps, resolveFieldValue, resolveTokenValue, resolveTokenValueUnder, routedBag, sourceVarPrefix, styleAliasesOf, styleDeclarations, stylePropEntries, stylePropLeafForToken, stylePropNegates, stylePropTokenGroup, stylePropTokenPath, stylePropTokenValues, stylePropValueFromLeaf, stylePropValueLeaves, stylePropValues, stylePropertiesWriting, stylePropertyAccepts, stylePropertyFor, stylePropertyPathFor, validateComponentProps } from "./framework/projections.js";
31
+ import { codeSlotsOf, forwardClaims, forwardedLayers, intoName, isValueSlot, layerPropRoutes, propApplies, propRegistryRef, renderBindingsOf, routedProp, routedPropIn, routesContent, slotCodeForms, standsInForCode, surfaceProp, surfaceProps } from "./framework/prop-surface.js";
32
+ import { graftPreviewElements, isPreviewElement } from "./spec/preview-elements.js";
32
33
  import { layerStyles, ruleApplies } from "./framework/layer-styles.js";
33
34
  import { componentClassBase, componentCompositeClasses, componentLayerClass, componentMotionClasses, componentPropClasses, componentRuleClasses, forceModeAttribute, forceModeAttributeOf, forceModeProp, forceModePropGroup, forceModePropValue, forceModeProps, forceStateAttribute, isForceModeProp, kebabComponent, layerRoutedProps, modifierUtilitiesUsed, motionClassName, ruleCondition, splitStyleProps, stylePropClassBase, stylePropClassName, stylePropClasses, styleRuleMotionClasses } from "./framework/class-names.js";
34
- import { graftPreviewElements, isPreviewElement } from "./spec/preview-elements.js";
35
35
  import { ANATOMY_MARKER, anatomyElementComponent, anatomyTextProp, boundElementType, componentSpec, deriveSpec, entryKeyOf, expandComponent, expandSpec, instanceSpec, layerTextProp, liveStateProps, previewSpec, propInto, propsIntoLayer, readStatePointer, resolveValue, resolveVisibility, routeOf, slotTargetsOf, specWithResolvedVisibility, statePointerProp, valueForwardsOf, visibilityStateProps, visibilityTerms, withoutTruthyTerm, wrappedElementKey } from "./framework/render-spec.js";
36
36
  import { instanceHolding } from "./spec/instance.js";
37
37
  import { Package } from "./entities/system/Package.js";
@@ -39,7 +39,7 @@ import { File, SCRIPT_EXTENSIONS, isBinaryAsset } from "./entities/system/File.j
39
39
  import { TOKEN_READERS, isTokenReader, rootFontSize, spellTokenRead, tokenExists, tokenValueRow, tokenValueRows } from "./entities/system/token-values.js";
40
40
  import { Token, defineOverride, overrideCondition, overrideKey, overrideKeyModifiers, overrideModifiers } from "./entities/system/Token.js";
41
41
  import { Component, SLOT_CODE_FORMS, blankComponentBody, canonicalWhen, forwardedNames, layerRef, ownValues, ownsItsValues, valueRef } from "./entities/system/Component.js";
42
- import { codeSlotsOf, forwardClaims, forwardedLayers, intoName, isValueSlot, layerPropRoutes, propApplies, propRegistryRef, renderBindingsOf, routedProp, routedPropIn, routesContent, slotCodeForms, standsInForCode, surfaceProp, surfaceProps } from "./framework/prop-surface.js";
42
+ import { CapturedNode, capturedFromDom, elementFromCaptured } from "./capture/captured-tree.js";
43
43
  import { classGrammar } from "./capture/class-grammar.js";
44
44
  import { specFromCapture } from "./capture/capture-to-spec.js";
45
45
  import { ICON_METADATA_FORMATS, iconMemberMetadata, iconMetadata, iconMetadataDeclaration, iconMetadataFile, iconMetadataFileJsonSchema, iconMetadataFormat, tablerExportName } from "./entities/system/icon-metadata.js";
package/dist/spec/cell.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { canonicalCondition, refLeaf } from "../framework/utils/refs.js";
2
2
  import { holdingPreviewConditions, previewConditionalProps, previewDefaults } from "../framework/projections.js";
3
+ import { propApplies, surfaceProps } from "../framework/prop-surface.js";
3
4
  import { ruleApplies } from "../framework/layer-styles.js";
4
5
  import { propsIntoLayer } from "../framework/render-spec.js";
5
6
  import { cellAtDefaults, parsePreviewContentKey, previewConditionAt, previewValueSource } from "./preview-content.js";
6
7
  import { listSlots, slotOf } from "./slot.js";
7
- import { propApplies, surfaceProps } from "../framework/prop-surface.js";
8
8
  //#region src/spec/cell.ts
9
9
  /** A stored condition with every ref read as its leaf. */
10
10
  function leaves(when) {
@@ -1,10 +1,10 @@
1
1
  import { isRef, kindOf, pathOf, refLeaf } from "../framework/utils/refs.js";
2
2
  import { rootLayerOf } from "../entities/system/element.js";
3
3
  import { declaredPropDefaults } from "../framework/projections.js";
4
+ import { isValueSlot } from "../framework/prop-surface.js";
4
5
  import { isPreviewElement } from "./preview-elements.js";
5
6
  import { entryKeyOf, resolveVisibility, slotTargetsOf } from "../framework/render-spec.js";
6
7
  import { Component } from "../entities/system/Component.js";
7
- import { isValueSlot } from "../framework/prop-surface.js";
8
8
  //#region src/spec/detach.ts
9
9
  /**
10
10
  * Detaching a placed instance: the layer that renders a component becomes that component's anatomy,
@@ -1,5 +1,5 @@
1
- import { Component } from "../entities/system/Component.js";
2
1
  import { surfaceProps } from "../framework/prop-surface.js";
2
+ import { Component } from "../entities/system/Component.js";
3
3
  //#region src/spec/prop-conditions.ts
4
4
  /**
5
5
  * What a prop's `when` may name, for the form that authors one.
package/dist/spec/slot.js CHANGED
@@ -3,10 +3,10 @@ import { rootLayerOf } from "../entities/system/element.js";
3
3
  import { createSliceMemo } from "../framework/memo.js";
4
4
  import "../framework/preview-store.js";
5
5
  import { resolveComponentProps } from "../framework/projections.js";
6
+ import { routesIntoText } from "../framework/prop-surface.js";
6
7
  import { isPreviewElement } from "./preview-elements.js";
7
8
  import { slotTargetsOf } from "../framework/render-spec.js";
8
9
  import { previewConditionAt, previewContentList, previewValueSource } from "./preview-content.js";
9
- import { routesIntoText } from "../framework/prop-surface.js";
10
10
  //#region src/spec/slot.ts
11
11
  /**
12
12
  * A slot of a component: one prop that content is placed in, as the config states it.