@yahoo/uds-create-config 5.37.5 → 5.39.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.
@@ -71,6 +71,8 @@ import { tokenOverridesListMigration } from "../migrations/20261013164300_token_
71
71
  import { linkExcludeOpMigration } from "../migrations/20261013182150_link_exclude_op.js";
72
72
  import { fontFacesMigration } from "../migrations/20261013201548_font_faces.js";
73
73
  import { maxAndMinMigration } from "../migrations/20261015171036_max_and_min.js";
74
+ import { componentStyleSetMigration } from "../migrations/20261015192819_component_style_set.js";
75
+ import { componentElementSwapMigration } from "../migrations/20261015202345_component_element_swap.js";
74
76
  const System = defineConfig({
75
77
  name: WEB_CONFIG_NAME,
76
78
  description: "A design system: the values, primitives and compositions an app is built from. A ref is written `{ \"__ref\": \"<kind>:<path>\" }`, so a token is `{ \"__ref\": \"token:<group>/<name>\" }` and a token group is `{ \"__ref\": \"token:<group>\" }`. Build it in this order. Tokens first, in groups by purpose (colors, spacing, radii, type sizes), since everything else names them. Then style properties, each with `values` holding one ref to the token group whose members it accepts (`{ \"__ref\": \"token:color\" }`), so a prop takes token names rather than raw CSS; add a string keyword only for a value no token holds. A style rule's bag holds a prop's values (`\"padding\": \"4\"`, `\"bg\": \"brand\"`), never raw CSS. Then a few primitive components, one layer each, whose props are style properties (a box for layout and surface, a text for type, a pressable for interaction). Then every other component composed from those primitives: its layers name a primitive or an element, its anatomy places them (a node renders a layer, a tag or `Slot` where a slot prop's content lands; `children` is the edge list; `visible` is `{ \"$state\": \"<prop>\" }`; a prop shown in a nested layer is a `forward` route, and `$state` never sits in a node's props), and its style rules set style-property values per layer, keyed by prop values when a variant changes them. Modes (a dark mode is `{ type: \"selector\", value: \".dark\" }`) change token values through a token's `overrides`, so a component never restyles for a mode; modifiers (hover, focus, disabled) name a state, and a style rule applies under one as a `_hover` block inside a layer bag. Composites bundle style values that recur. Last, register canvas roles: the canvas draws with them, one entity per tool (`frame` for the layout primitive, `text` for the text primitive, `image`) whose entries name the components that tool inserts, and a tool whose role is unregistered is disabled. Give each component a `preview` entry under `*` so it shows content, and never write a CSS property name where a style-property name belongs.",
@@ -153,5 +155,7 @@ if (!registeredSchemaMigrations().has(20261013164300)) registerSchemaMigrations(
153
155
  if (!registeredSchemaMigrations().has(20261013182150)) registerSchemaMigrations(linkExcludeOpMigration);
154
156
  if (!registeredSchemaMigrations().has(20261013201548)) registerSchemaMigrations(fontFacesMigration);
155
157
  if (!registeredSchemaMigrations().has(20261015171036)) registerSchemaMigrations(maxAndMinMigration);
158
+ if (!registeredSchemaMigrations().has(20261015192819)) registerSchemaMigrations(componentStyleSetMigration);
159
+ if (!registeredSchemaMigrations().has(20261015202345)) registerSchemaMigrations(componentElementSwapMigration);
156
160
  //#endregion
157
161
  export { System };
@@ -774,6 +774,21 @@ declare const ComponentEntity: EntityClass<z.ZodObject<{
774
774
  }, z.core.$strip>;
775
775
  }, z.core.$strip>;
776
776
  };
777
+ readonly 'style-set': {
778
+ readonly input: z.ZodObject<{
779
+ path: z.ZodType<string, string | undefined, z.core.$ZodTypeInternals<string, string | undefined>>;
780
+ data: z.ZodObject<{
781
+ changes: z.ZodArray<z.ZodObject<{
782
+ layer: z.ZodString;
783
+ prop: z.ZodString;
784
+ value: z.ZodUnknown;
785
+ when: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
786
+ state: z.ZodOptional<z.ZodString>;
787
+ modifiers: z.ZodOptional<z.ZodArray<z.ZodString>>;
788
+ }, z.core.$strip>>;
789
+ }, z.core.$strip>;
790
+ }, z.core.$strip>;
791
+ };
777
792
  readonly 'element-delete': {
778
793
  readonly input: z.ZodObject<{
779
794
  path: z.ZodType<string, string | undefined, z.core.$ZodTypeInternals<string, string | undefined>>;
@@ -807,6 +822,17 @@ declare const ComponentEntity: EntityClass<z.ZodObject<{
807
822
  }, z.core.$strip>;
808
823
  }, z.core.$strip>;
809
824
  };
825
+ readonly 'element-swap': {
826
+ readonly input: z.ZodObject<{
827
+ path: z.ZodType<string, string | undefined, z.core.$ZodTypeInternals<string, string | undefined>>;
828
+ key: z.ZodString;
829
+ data: z.ZodObject<{
830
+ element: z.ZodObject<{
831
+ __ref: z.ZodString;
832
+ }, z.core.$strip>;
833
+ }, z.core.$strip>;
834
+ }, z.core.$strip>;
835
+ };
810
836
  readonly validate: {
811
837
  readonly input: z.ZodObject<{
812
838
  path: z.ZodType<string, string | undefined, z.core.$ZodTypeInternals<string, string | undefined>>;
@@ -7,7 +7,7 @@ import { shadowValue } from "./shadow.js";
7
7
  import { defineEntity } from "../../framework/defineEntity.js";
8
8
  import { defineSubEntity, orList } from "../../framework/defineSubEntity.js";
9
9
  import { childrenPolicy, forwardedPropName } from "./element.js";
10
- import { interactionKey, interactionModifiers } from "../../framework/interaction-conditions.js";
10
+ import { interactionKey, interactionModifiers, isInteractionModifier } from "../../framework/interaction-conditions.js";
11
11
  import { translateLinkedStyleBags } from "./linked-style-values.js";
12
12
  import { listedIn } from "../../framework/utils/enumerated.js";
13
13
  import { valueSchemaOf } from "../../framework/value-domain.js";
@@ -16,12 +16,13 @@ import { bindPreviewGlyphs, glyphMemberRefIn } from "./glyph-identity.js";
16
16
  import { Style, addBagKeyIssues, anatomyPropValue, bagNameEdges, bagRewriteName, bindBagTokens, collectBag, isPlainRecord, openBag, styleValue } from "./style-bag.js";
17
17
  import { storedPreview } from "../../framework/preview-store.js";
18
18
  import { glyphPropsOf, glyphPropsOfBody, propOwner, propValueDomain, refListOf, resolveComponentProps, stylePropNumberUnit, stylePropValueLeaves, validateComponentProps } from "../../framework/projections.js";
19
- import { carriesContent, intoName, isValueSlot, renderBoundProp, routedPropIn, routesContent } from "../../framework/prop-surface.js";
19
+ import { carriesContent, intoName, isValueSlot, renderBoundProp, routedPropIn, routesContent, surfaceProps } from "../../framework/prop-surface.js";
20
20
  import { slotAnatomyPropOf, slotTargetsOf, withoutTruthyTerm } from "../../framework/render-spec.js";
21
21
  import { listSlots, namedSlots, slotHostedBy, slotOf, slotsFor } from "../../spec/slot.js";
22
22
  import { cellAt } from "../../spec/cell.js";
23
23
  import { instanceAt } from "../../spec/instance.js";
24
24
  import { forwardOptions, forwardsWrite } from "./component-forwards.js";
25
+ import { checkStyleSet, styleSetEdits } from "./component-style-set.js";
25
26
  import { File } from "./File.js";
26
27
  import { forwardRouteInvariants, refusedRoutes } from "./forward-route-invariants.js";
27
28
  import { iconDomainInvariants } from "./icon-domain-invariants.js";
@@ -762,15 +763,24 @@ function buildBagFor(config, layerElement) {
762
763
  let bag;
763
764
  const nested = z.lazy(() => bag).optional();
764
765
  for (const mod of config.list("modifier")) shape[`_${mod.leaf}`] = nested;
766
+ const keys = new Set(Object.keys(shape));
765
767
  bag = z.object(shape).catchall(styleValue).superRefine((parsed, ctx) => addBagKeyIssues({
766
768
  config,
767
769
  bag: parsed,
768
770
  ctx,
769
771
  nested: false,
770
- declared: new Set(Object.keys(shape))
772
+ declared: keys
771
773
  })).transform((parsed) => bindBagTokens(config, parsed));
774
+ bagKeys.set(bag, keys);
772
775
  return bag;
773
776
  }
777
+ /** The keys each built bag declares, modifier blocks included. */
778
+ const bagKeys = /* @__PURE__ */ new WeakMap();
779
+ /** Whether a layer's bag declares `key`: a style property, a prop or slot of the layer's component,
780
+ * `as`, a key a kind owns, or a modifier block. */
781
+ function bagDeclares({ config, layerElement, key }) {
782
+ return bagKeys.get(bagFor(config, layerElement))?.has(key) ?? false;
783
+ }
774
784
  /**
775
785
  * Every registered style property as a bag key, built once per config.
776
786
  *
@@ -1397,6 +1407,20 @@ function anatomySubtreeContains(anatomy, ancestor, key) {
1397
1407
  }
1398
1408
  return false;
1399
1409
  }
1410
+ /** Whether `from`, or a component its layers render, is `to`. */
1411
+ function componentReaches({ config, from, to }) {
1412
+ const seen = /* @__PURE__ */ new Set();
1413
+ const queue = [from];
1414
+ while (queue.length > 0) {
1415
+ const current = queue.shift();
1416
+ if (current === void 0 || seen.has(current)) continue;
1417
+ if (current === to) return true;
1418
+ seen.add(current);
1419
+ const layers = (config.resolve("component", current)?.toJSON())?.layers;
1420
+ for (const layer of Object.values(layers ?? {})) if (isRef(layer) && kindOf(layer) === "component") queue.push(pathOf(layer.__ref));
1421
+ }
1422
+ return false;
1423
+ }
1400
1424
  /** The component body as `element-move` reads it — re-resolved between writes so each step builds
1401
1425
  * on the previous one's result rather than the pre-move snapshot. */
1402
1426
  function resolveMoveBody(config, path) {
@@ -2310,6 +2334,53 @@ count: z.number().int().min(1).max(50).optional() }).prefault({})
2310
2334
  }
2311
2335
  },
2312
2336
  /**
2337
+ * Set or clear style properties on a component's layers for the cells a reach covers. The stored
2338
+ * write is `sub-update/styles`, one per rule the changes touch; this op works out which rule and
2339
+ * which address inside it from the reach, the way the component editor's "Apply to" does.
2340
+ */
2341
+ "style-set": {
2342
+ input: z.object({
2343
+ path: pathInput("component"),
2344
+ data: z.object({ changes: z.array(z.object({
2345
+ layer: z.string().min(1),
2346
+ prop: z.string().min(1),
2347
+ /** The value, or `null` to clear the property at this reach. */
2348
+ value: z.unknown(),
2349
+ when: z.record(z.string(), z.union([
2350
+ z.string(),
2351
+ z.number(),
2352
+ z.boolean()
2353
+ ])).optional(),
2354
+ state: z.string().min(1).optional(),
2355
+ modifiers: z.array(z.string().min(1)).optional()
2356
+ })).min(1) })
2357
+ }),
2358
+ readOnly: false,
2359
+ label: "Set layer styles",
2360
+ description: "Set or clear style properties on a component's layers for the instances a reach covers, the way the component editor's \"Apply to\" does. Each change names a `layer`, a style-prop `prop` and a `value` (`null` clears it). `when` pins variant, boolean or state props (`{ \"variant\": \"secondary\" }`) and the change lands in the rule with exactly that condition; leave it out for every instance. `state` is the state the change is made in (`\"hover\"`): an interaction becomes part of the rule's condition, any other modifier nests as a block in the layer's bag. `modifiers` nest further blocks, outermost first (`[\"dark\"]` for dark mode). Writes one `sub-update/styles` per rule touched, creating a rule its condition has none for.",
2361
+ scope: "item",
2362
+ title: (entity) => `Set ${entity} layer styles`,
2363
+ handler: (input, config) => {
2364
+ const path = String(input.path);
2365
+ const { changes } = input.data;
2366
+ checkStyleSet({
2367
+ config,
2368
+ path,
2369
+ changes,
2370
+ layerTakes: ({ layerElement, prop }) => bagDeclares({
2371
+ config,
2372
+ layerElement,
2373
+ key: prop
2374
+ })
2375
+ });
2376
+ return config.run(styleSetEdits({
2377
+ path,
2378
+ changes,
2379
+ isInteraction: (modifier) => isInteractionModifier(config, modifier)
2380
+ }));
2381
+ }
2382
+ },
2383
+ /**
2313
2384
  * Remove an element from a composition — the node, its layer, and everything that named it.
2314
2385
  *
2315
2386
  * A custom op for the same reason `element-insert` is: it writes more than one thing and either
@@ -2589,6 +2660,93 @@ subtree: z.boolean().default(true) }).optional()
2589
2660
  }))]);
2590
2661
  }
2591
2662
  },
2663
+ /**
2664
+ * Swap a layer for another component, the way `node/element-swap` swaps an element on a design
2665
+ * file: the layer renders the new component and keeps its place and the styles the new one takes.
2666
+ * Its children stay when the new component takes child nodes. When it takes none they go, except
2667
+ * a `Slot` node, which is where a slot prop's content lands and which the component still
2668
+ * declares.
2669
+ *
2670
+ * The removals run first, so the style rules they empty are gone before the layer's own bags are
2671
+ * pruned. A bag keeps the props the new component takes, so a `color` carries over to another
2672
+ * text component and nothing the new one can't apply is left stored.
2673
+ */
2674
+ "element-swap": {
2675
+ input: z.object({
2676
+ path: pathInput("component"),
2677
+ /** The layer to swap. */
2678
+ key: z.string(),
2679
+ data: z.object({
2680
+ /** The component the layer renders instead. */
2681
+ element: refSchema })
2682
+ }),
2683
+ readOnly: false,
2684
+ label: "Swap element",
2685
+ description: "Swap a component's layer for another component: the layer renders the new one and keeps the styles the new one takes. Its children stay when the new component takes child nodes; otherwise they go with their layers and styles, and a `Slot` node stays.",
2686
+ scope: "item",
2687
+ approval: "destructive",
2688
+ title: (entity) => `Swap ${entity} element`,
2689
+ handler: (input, config) => {
2690
+ const path = String(input.path);
2691
+ const key = String(input.key);
2692
+ const element = input.data.element;
2693
+ const body = resolveMoveBody(config, path);
2694
+ if (!body?.layers || !(key in body.layers)) reject("NOT_FOUND", `"${path}" has no layer "${key}" to swap.`);
2695
+ if (kindOf(element) !== "component") rejectData("A layer swaps for a component.", ["element"]);
2696
+ const target = pathOf(element.__ref);
2697
+ if (!config.resolve("component", target)) reject("NOT_FOUND", `There is no component "${target}" to swap to.`);
2698
+ if (componentReaches({
2699
+ config,
2700
+ from: target,
2701
+ to: path
2702
+ })) rejectData(`"${target}" renders "${path}", so swapping it in would make "${path}" render itself.`, ["element"]);
2703
+ const anatomy = body?.anatomy ?? {};
2704
+ const keepsChildren = childrenPolicy(config, target) === "nodes";
2705
+ let next = config.run((keepsChildren ? [] : anatomy[key]?.children ?? []).filter((child) => anatomy[child]?.element !== "Slot").map((child) => ({
2706
+ kind: "component",
2707
+ operation: "element-delete",
2708
+ path,
2709
+ key: child
2710
+ })));
2711
+ const taken = new Set(surfaceProps(next, target).map((prop) => prop.name));
2712
+ const styles = (next.resolve("component", path)?.toJSON())?.styles;
2713
+ for (const [condition, rule] of Object.entries(styles ?? {})) {
2714
+ const bag = rule.layers?.[key];
2715
+ if (!bag) continue;
2716
+ const dropped = Object.keys(bag).filter((prop) => !taken.has(prop));
2717
+ if (dropped.length === 0) continue;
2718
+ const kept = Object.fromEntries(Object.entries(bag).filter(([prop]) => taken.has(prop)));
2719
+ next = ruleStylesNothing({
2720
+ ...rule,
2721
+ layers: {
2722
+ ...rule.layers,
2723
+ [key]: kept
2724
+ }
2725
+ }) ? next.apply({
2726
+ kind: "component",
2727
+ operation: "sub-delete",
2728
+ path,
2729
+ field: "styles",
2730
+ key: condition
2731
+ }) : next.apply({
2732
+ kind: "component",
2733
+ operation: "sub-update",
2734
+ path,
2735
+ field: "styles",
2736
+ key: condition,
2737
+ data: Object.fromEntries(dropped.map((prop) => [`layers.${key}.${prop}`, null]))
2738
+ });
2739
+ }
2740
+ return next.apply({
2741
+ kind: "component",
2742
+ operation: "sub-upsert",
2743
+ path,
2744
+ field: "layers",
2745
+ key,
2746
+ data: element
2747
+ });
2748
+ }
2749
+ },
2592
2750
  validate: {
2593
2751
  input: z.object({
2594
2752
  path: pathInput("component"),
@@ -0,0 +1,39 @@
1
+ import { ConfigEdit } from "../../framework/config-op.js";
2
+ //#region src/entities/system/component-style-set.d.ts
3
+ /**
4
+ * One style property set or cleared on one layer of a component, and the cells it reaches.
5
+ *
6
+ * `when` pins the component's props (`{ variant: 'secondary' }`): the change lands in the rule with
7
+ * exactly that condition, which reaches every instance whose props hold it. `state` is the state the
8
+ * change is made in (`hover`): an interaction becomes part of the rule's condition, and any other
9
+ * modifier nests as a block in the layer's bag. `modifiers` nest further blocks inside that, outermost
10
+ * first (`['dark']` for a mode).
11
+ */
12
+ interface StyleSetChange {
13
+ readonly layer: string;
14
+ readonly prop: string;
15
+ /** The value, or `null` to clear the property at this reach. */
16
+ readonly value: unknown;
17
+ readonly when?: Readonly<Record<string, string | number | boolean>>;
18
+ readonly state?: string;
19
+ readonly modifiers?: readonly string[];
20
+ }
21
+ /**
22
+ * The `sub-update/styles` entries a set of style changes write: one per rule they touch, each a delta
23
+ * of addresses, so nothing a change doesn't name is touched.
24
+ *
25
+ * A rule's key is its condition, so a change at a condition with no rule yet creates one; `when` is
26
+ * carried on every entry for that reason. A cleared interaction change also clears the address the
27
+ * same change would have had as a nested block, so a value stored that way doesn't outlive the clear.
28
+ */
29
+ declare function styleSetEdits({
30
+ path,
31
+ changes,
32
+ isInteraction
33
+ }: {
34
+ path: string;
35
+ changes: readonly StyleSetChange[]; /** Whether a state is an interaction a rule can be conditioned on, by modifier leaf. */
36
+ isInteraction: (modifier: string) => boolean;
37
+ }): ConfigEdit[];
38
+ //#endregion
39
+ export { StyleSetChange, styleSetEdits };
@@ -0,0 +1,111 @@
1
+ import { reject } from "../../framework/rejection.js";
2
+ import { canonicalCondition } from "../../framework/utils/refs.js";
3
+ //#region src/entities/system/component-style-set.ts
4
+ /** A modifier as a style bag keys it: its leaf with a leading `_`. */
5
+ function bagKey(modifier) {
6
+ const name = modifier.startsWith("_") ? modifier.slice(1) : modifier;
7
+ return `_${name.slice(name.lastIndexOf("/") + 1)}`;
8
+ }
9
+ /** `layers.<layer>[.<modifier>]*.<prop>`, the address one change writes at. */
10
+ function addressOf({ layer, modifiers, prop }) {
11
+ return [
12
+ "layers",
13
+ layer,
14
+ ...modifiers.map(bagKey),
15
+ prop
16
+ ].join(".");
17
+ }
18
+ /**
19
+ * The `sub-update/styles` entries a set of style changes write: one per rule they touch, each a delta
20
+ * of addresses, so nothing a change doesn't name is touched.
21
+ *
22
+ * A rule's key is its condition, so a change at a condition with no rule yet creates one; `when` is
23
+ * carried on every entry for that reason. A cleared interaction change also clears the address the
24
+ * same change would have had as a nested block, so a value stored that way doesn't outlive the clear.
25
+ */
26
+ function styleSetEdits({ path, changes, isInteraction }) {
27
+ const rules = /* @__PURE__ */ new Map();
28
+ const ruleAt = (condition) => {
29
+ const when = Object.keys(condition).length > 0 ? { ...condition } : null;
30
+ const key = canonicalCondition(when);
31
+ let rule = rules.get(key);
32
+ if (!rule) {
33
+ rule = {
34
+ when,
35
+ delta: {}
36
+ };
37
+ rules.set(key, rule);
38
+ }
39
+ return rule;
40
+ };
41
+ for (const change of changes) {
42
+ const pins = change.when ?? {};
43
+ const nested = change.modifiers ?? [];
44
+ const { layer, prop } = change;
45
+ const clear = change.value === null;
46
+ if (change.state && isInteraction(bagKey(change.state).slice(1))) {
47
+ ruleAt({
48
+ ...pins,
49
+ [bagKey(change.state)]: true
50
+ }).delta[addressOf({
51
+ layer,
52
+ modifiers: nested,
53
+ prop
54
+ })] = change.value;
55
+ if (clear) ruleAt(pins).delta[addressOf({
56
+ layer,
57
+ modifiers: [change.state, ...nested],
58
+ prop
59
+ })] = null;
60
+ continue;
61
+ }
62
+ const modifiers = change.state ? [change.state, ...nested] : nested;
63
+ ruleAt(pins).delta[addressOf({
64
+ layer,
65
+ modifiers,
66
+ prop
67
+ })] = change.value;
68
+ }
69
+ return [...rules].filter(([, rule]) => Object.keys(rule.delta).length > 0).map(([key, rule]) => ({
70
+ kind: "component",
71
+ operation: "sub-update",
72
+ path,
73
+ field: "styles",
74
+ key,
75
+ data: {
76
+ when: rule.when,
77
+ ...rule.delta
78
+ }
79
+ }));
80
+ }
81
+ /**
82
+ * Refuses a change that names a layer the component doesn't have, a prop the layer can't take, a
83
+ * state or modifier the config doesn't register, or a pin no rule can be conditioned on: only a
84
+ * variant or boolean prop, or a state, conditions a rule.
85
+ *
86
+ * A stored rule's bag is open to any element attribute, so a misspelled prop would be written as one
87
+ * and paint nothing. Here only `data-` and `aria-` attributes pass beside what the layer declares.
88
+ */
89
+ function checkStyleSet({ config, path, changes, layerTakes }) {
90
+ const body = config.resolve("component", path)?.toJSON();
91
+ if (!body) reject("NOT_FOUND", `No component at "${path}".`);
92
+ const axes = /* @__PURE__ */ new Set();
93
+ for (const [name, decl] of Object.entries({
94
+ ...body.props,
95
+ ...body.states
96
+ })) if (decl?.type === "variant" || decl?.type === "boolean") axes.add(name);
97
+ const modifiers = new Set(config.list("modifier").map((modifier) => modifier.leaf));
98
+ const layers = body.layers ?? {};
99
+ for (const change of changes) {
100
+ if (!(change.layer in layers)) reject("NOT_FOUND", `"${path}" has no layer "${change.layer}".`);
101
+ const attribute = /^(data|aria)-/.test(change.prop);
102
+ if (change.prop.startsWith("_") || !attribute && !layerTakes({
103
+ layerElement: layers[change.layer],
104
+ prop: change.prop
105
+ })) reject("NOT_FOUND", `"${path}"'s "${change.layer}" layer takes no prop "${change.prop}". A state or modifier goes in \`state\` or \`modifiers\`.`);
106
+ for (const modifier of [...change.state ? [change.state] : [], ...change.modifiers ?? []]) if (!modifiers.has(bagKey(modifier).slice(1))) reject("NOT_FOUND", `No modifier "${modifier}" to style under.`);
107
+ for (const prop of Object.keys(change.when ?? {})) if (!axes.has(prop)) reject("NOT_FOUND", `"${path}" has no variant, boolean or state "${prop}" to condition a rule on.`);
108
+ }
109
+ }
110
+ //#endregion
111
+ export { checkStyleSet, styleSetEdits };
@@ -73,7 +73,7 @@ interface RecordedSource {
73
73
  * The dense-counter `2` a short-lived scheme stamped before the chain existed reads as the mint
74
74
  * that replaced it (see `detectedWireVersion`).
75
75
  */
76
- declare const SERIALIZED_CONFIG_VERSION = 20261015171036;
76
+ declare const SERIALIZED_CONFIG_VERSION = 20261015202345;
77
77
  interface SerializedConfig {
78
78
  /** See {@link SERIALIZED_CONFIG_VERSION}. Always written; a stored artifact may lack it. */
79
79
  readonly version: number;
@@ -5862,7 +5862,7 @@ var Config = class Config {
5862
5862
  * links from the provided sources. A declared `linkedKind` with no provided source throws. */
5863
5863
  hydrateFrom(stored, options) {
5864
5864
  const claimed = schemaVersionOf(stored);
5865
- if (claimed > 20261015171036) throw new SchemaVersionTooNew(claimed);
5865
+ if (claimed > 20261015202345) throw new SchemaVersionTooNew(claimed);
5866
5866
  const wire = upgradeSerializedConfig(stored);
5867
5867
  if (!Array.isArray(wire.ownedKinds) || typeof wire.items !== "object" || wire.items === null) throw new ConfigFormatError(`Config "${stored.name ?? "system-config"}" cannot be hydrated: this is not a serialized config-v2 config (no "ownedKinds"/"items"). A pre-cutover build artifact converts through the registered cutover migration — import the config type's module (e.g. \`configs/system\`) before hydrating.`);
5868
5868
  const leftover = wire.options;
@@ -15,7 +15,7 @@ import { Patch, SerializedConfig } from "./Config.js";
15
15
  * sets this constant to its own older timestamp; the merge ref then carries a registered migration
16
16
  * newer than the constant, and the assertion fails until the author re-mints.
17
17
  */
18
- declare const CURRENT_SCHEMA_VERSION = 20261015171036;
18
+ declare const CURRENT_SCHEMA_VERSION = 20261015202345;
19
19
  /** What the walkers need to see of an envelope — loose on purpose, so a typed `SerializedConfig`
20
20
  * and a raw old-shape record both flow in without casts. */
21
21
  interface VersionStamped {
@@ -13,7 +13,7 @@ import { ConfigFormatError } from "./rejection.js";
13
13
  * sets this constant to its own older timestamp; the merge ref then carries a registered migration
14
14
  * newer than the constant, and the assertion fails until the author re-mints.
15
15
  */
16
- const CURRENT_SCHEMA_VERSION = 20261015171036;
16
+ const CURRENT_SCHEMA_VERSION = 20261015202345;
17
17
  /** The mint that moved `options` into the `settings` kind — restated here, rather than imported
18
18
  * from the migration that owns it, because that migration imports this module. */
19
19
  const SETTINGS_AS_KIND_VERSION = 20260908171448;
@@ -45,7 +45,7 @@ function registerSchemaMigrations(...migrations) {
45
45
  for (const migration of migrations) {
46
46
  if (migration.version !== 1 && !isMintTimestamp(migration.version)) throw new Error(`Schema migration version ${migration.version} is not a mint timestamp — mint one with \`date +%Y%m%d%H%M%S\`, like a supabase migration.`);
47
47
  if (REGISTERED.has(migration.version)) throw new Error(`A schema migration at version ${migration.version} is already registered.`);
48
- if (migration.version > 20261015171036) throw new Error(`Schema migration ${migration.version} is newer than CURRENT_SCHEMA_VERSION (${CURRENT_SCHEMA_VERSION}) — a stale branch merged, or the mint forgot to bump the constant. Re-mint: set CURRENT_SCHEMA_VERSION to the newest migration version.`);
48
+ if (migration.version > 20261015202345) throw new Error(`Schema migration ${migration.version} is newer than CURRENT_SCHEMA_VERSION (${CURRENT_SCHEMA_VERSION}) — a stale branch merged, or the mint forgot to bump the constant. Re-mint: set CURRENT_SCHEMA_VERSION to the newest migration version.`);
49
49
  REGISTERED.set(migration.version, migration);
50
50
  }
51
51
  }
@@ -102,7 +102,7 @@ function pendingFor(version, target, options) {
102
102
  * Already-current input passes through untouched — same reference, so hot paths pay nothing.
103
103
  */
104
104
  function upgradeSerializedConfig(json, options) {
105
- const target = options?.target ?? 20261015171036;
105
+ const target = options?.target ?? 20261015202345;
106
106
  const version = detectedWireVersion(json);
107
107
  if (version > target) throw new SchemaVersionTooNew(version, target);
108
108
  const raw = json;
@@ -160,7 +160,7 @@ function upgradedSources(json, options) {
160
160
  * meaning under the current schema and replay skips it — reported by the caller, not swallowed here.
161
161
  */
162
162
  function upgradePatch(patch, writtenAt, options) {
163
- const target = options?.target ?? 20261015171036;
163
+ const target = options?.target ?? 20261015202345;
164
164
  if (writtenAt > target) throw new SchemaVersionTooNew(writtenAt, target);
165
165
  let current = patch;
166
166
  for (const migration of pendingFor(writtenAt, target, options)) {
@@ -179,7 +179,7 @@ function upgradePatch(patch, writtenAt, options) {
179
179
  * stamp would cause.
180
180
  */
181
181
  function upgradeDraftEntries(draft, options) {
182
- const target = options?.target ?? 20261015171036;
182
+ const target = options?.target ?? 20261015202345;
183
183
  const entries = [];
184
184
  const held = [];
185
185
  const retired = [];
package/dist/index.d.ts CHANGED
@@ -75,6 +75,7 @@ import { RelativeLineHeightValue, isRelativeLineHeightValue } from "./entities/s
75
75
  import { NativeToken, nativeTokenValue } from "./entities/native/NativeToken.js";
76
76
  import { CANVAS_ROLES, CanvasRole, CanvasRoleClass, CanvasRoleName } from "./entities/system/CanvasRole.js";
77
77
  import { COMPONENT_ENTRY_STATIC, CREATED_COMPONENT_DIRECTORY, ComponentModuleSource, ComponentRegistryImport, ComponentRegistryImportBinding, componentModuleFilePaths, componentModuleKey, componentModuleSource, componentRegistryImports, createdComponentFilePath, createdComponentPathOf, createdModuleKey, isCreatedComponent, linkedComponentModule, linkedModuleView } from "./entities/system/component-module.js";
78
+ import { StyleSetChange, styleSetEdits } from "./entities/system/component-style-set.js";
78
79
  import { Device, DeviceClass } from "./entities/system/Device.js";
79
80
  import { ChildrenPolicy, RenderedTarget, VOID_ELEMENTS, childrenPolicy, forwardsOf, ownerOf, partsOf, renderedElement, renderedTarget, rootLayerOf } from "./entities/system/element.js";
80
81
  import { File, FileClass, SCRIPT_EXTENSIONS, isBinaryAsset } from "./entities/system/File.js";
@@ -123,4 +124,4 @@ import { valueLeavesOf, valueSchemaOf } from "./framework/value-domain.js";
123
124
  import { views } from "./framework/views-facade.js";
124
125
  import { RN_STYLE_KEYS } from "./react-native/style-keys.generated.js";
125
126
  import { EditedCellContent, cellSeedSpec, editedCellContent, followCellContent, followingContent, resetCellContent, withCellValues } from "./spec/bake.js";
126
- export { AI_LANES, ANATOMY_MARKER, type Add, AiChat, type AiChatClass, AiFlow, type AiFlowClass, type AiFlowOrigin, AiGeneration, type AiGenerationClass, type AiLane, AiMessage, type AiMessageClass, type AiMultiAgentMode, type AnatomyIssue, type AnatomyIssueKind, type AnatomyReport, Annotation, type AnnotationClass, AnnotationFields, type AnnotationSegment, type AnySystemConfig, type AppliedOp, type AsInput, type AttachedSources, type Authored, type AuthoredComponent, type AuthoredProp, type AuthoredPropBody, type AuthoredStyleBag, type AuthoredStyleField, type AuthoringSignatureOptions, BUILD_DEFAULTS, type BatchReceipt, type BindingKind, type BreakOutcome, type BreakPlan, type BreakPlanInput, type BreakPlanRow, type BreakReach, BuildSection, type BuildSectionClass, CANVAS_ROLES, COMPONENT_ENTRY_STATIC, CONFIG_OPERATION_KIND, CREATED_COMPONENT_DIRECTORY, CSS_DEFAULTS, CSS_PROPERTY_NAMES, CSS_WIDE_KEYWORDS, CURRENT_SCHEMA_VERSION, type Calc, type CalcOperand, Canvas, type CanvasClass, CanvasConfig, type CanvasConfigClass, CanvasRole, type CanvasRoleClass, type CanvasRoleName, CanvasSection, type CanvasSectionClass, type CaptureToSpecOptions, type CaptureToSpecResult, type CapturedChild, type CapturedElement, CapturedNode, type CapturedNodeJson, type Spec as CapturedSpec, type SpecElement as CapturedSpecElement, type CapturedText, type Cell, type CellSlot, type Change, type ChangeHook, type ChangeTarget, type CheckedTokenRefPath, type ChildrenPolicy, type ClassGrammar, type CodeSlot, type Collection, type ColorValue, Component, type ComponentBody, type ComponentBuilder, type ComponentClass, type ComponentContractOf, type ComponentCreateInput, type ComponentElementBody, type ComponentInteraction, type ComponentItemInput, type ComponentModuleSource, type ComponentPropBody, type ComponentPropsOf, type ComponentReference, type ComponentRegistryImport, type ComponentRegistryImportBinding, type ComponentRuleClass, type ComponentSpec, type ComponentSpecs, type ComponentState, type ComponentStyleBody, type ComposedValue, type ComposedValueAuthoring, type ComposedValueForm, Composite, type CompositeClass, type ComputedFields, type ComputedFunctions, type ComputedInput, type ComputedMap, type ComputedValue, Config, type ConfigClass, type ConfigEdit, ConfigFormatError, type ConfigInstance, type ConfigIssue, type ConfigIssueCode, type ConfigKind, type ConfigOp, ConfigRejection, ConfigSession, type ConfigSessionOptions, type ConfigSink, type ConfigSource, type CopyPlan, type CopyPlanInput, type CopyPlanRow, type CreateInput, type CssGrammar, type CssPrefix, type CssPropertyEntry, CssSection, type CssSectionClass, DERIVED_COLOR_DEFAULT_SPACE, DERIVED_COLOR_SPACE, DERIVED_MUTATIONS, type DanglingDirective, type DanglingLocalRef, type DanglingRef, type DeclaredRuntimeModule, type DeletePlan, type DeriveMembers, type DerivedColor, type DerivedEntityClass, type DerivedOp, Device, type DeviceClass, type DiffOptions, type Divide, Documentation, type DocumentationClass, DocumentationLibrary, type DocumentationLibraryClass, type DomLikeElement, type DraftSource, ENTITY_PATH_MESSAGE, EXPORT_MEMBER, type EditedCellContent, type Edition, type ElementVisibility, type ElementVisibilityInput, type ElementVisibilitySchema, Entity, type EntityAddress, type EntityChange, type EntityClass, type EntityKind, type EntityMap, type EntryGroup, type ExpandOptions, type ExpansionResult, type ExtendedComponentRef, type ExtendedRef, type FieldsSchema, File, type FileClass, Font, type FontClass, FontFile, type FontFileClass, type ForwardBlockedReason, type ForwardClaims, type ForwardOption, type ForwardOptions, type ForwardRequest, GROUP, GUIDANCE_LANES, GlobalStyle, type GlobalStyleClass, type GlyphComponent, type GlyphExportRule, type GlyphSource, type GlyphValue, type GoverningCondition, type Gradient, type GroupBody, type GroupComputedInput, Guidance, type GuidanceClass, type GuidanceLane, type GuidanceScope, type GuidanceSegment, GuidanceStyle, type GuidanceStyleBody, type GuidanceStyleClass, type HasSnapshot, type HydrationOptions, ICON_METADATA_FORMATS, Icon, type IconAnswer, type IconClass, type IconGlyph, type IconHook, type IconLibrary, type IconMemberMetadata, type IconMetadataAdapter, type IconMetadataDeclaration, type IconMetadataFile, type IconMetadataFormat, type IconTool, type IconVariantAs, type IdentifiedOp, type InferredRename, type InlineMotion, type Instance, type InstanceSlot, type InstanceSpec, type InteractionCondition, type ItemOf, type KindRef, type KindSignature, type KindSlice, LINK_SLUG, LINK_SLUG_MESSAGE, type LayerElement, type LayerMap, type LayerPropDriver, type LayerStyleOptions, type LeafAddress, type LinkArrival, type LinkDeclaration, type LinkPaths, type LinkPlan, type LinkPlanInput, type LinkedElsewhere, LinkedSystem, type LinkedSystemClass, type LinkedSystemCreateInput, type LinkedSystemItemInput, type LinkedSystemResolver, type LinkedSystemState, type ListOptions, type LiveConfig, type LocalOverlay, MINTED, MODIFIER_CATEGORIES, MOTION_FACTORY, MOTION_VARIANT_STATES, type MarkerKind, type Max, type Min, type MisdeclaredOverlay, Modifier, type ModifierCategory, type ModifierClass, type ModifierGroupMeta, Motion, type MotionClass, type MotionPresetToken, type Multiply, NATIVE_ACTIVATIONS, type NativeActivation, type NativeFlexValue, NativeModifier, type NativeModifierClass, NativeSettings, NativeStyleProperty, NativeToken, Node, type NodeClass, type OklchColor, type OnLinked, type OpHandler, type OpInput, Operation, type OperationClass, type OrphanedMotionVariant, type OverlayVerb, type OverrideCondition, type OwnedRecords, PLACED_NODE_KEY, PLAYGROUND_DEFAULTS, Package, type PackageClass, Page, type PageClass, type Patch, type PathOf, type PickedComposite, type PinDirective, type PinOptions, type PinOptionsField, type PinOptionsInput, type PlacedMotion, type Plan, type PlanImpact, type PlanOp, PlaygroundSection, type PlaygroundSectionClass, Presence, type PresenceProps, type PreviewElement, type PreviewMatrix, type ProjectedVisibility, type PropCondition, type PropDecl, type PropDeclaration, type PropMap, type PropRoute, type PropShapeSchema, RN_STYLE_KEYS, ReactNativeSystem, type ReactNativeSystemClass, type ReactNativeSystemConfig, type RebaseConflict, type RebaseOrigin, type RebaseResult, type RecordedSource, type RedundantQualifier, type Ref, type RefGraph, type RefGraphEntry, type RefIndex, type RefIndexChange, type RefMember, type RefTarget, type RegisteredComponentContracts, type RegisteredComponentHandles, type RegisteredEntities, type RegisteredGroupPaths, type RegisteredMembers, type RegisteredModifiers, type RegisteredMotionRuntimes, type RegisteredPaths, type RegisteredStyleBag, type RegisteredStyleProps, type RegisteredTokenValues, type RelativeLineHeightValue, type RenamePlan, type RenderArgs, type RenderElement, type RenderSpec, type RenderedNode, type RenderedTarget, type RepeatRow, type RepeatSpec, type RequiredContent, type RequiredPropUnforwarded, type ResolveContext, type ResolveValueTypeInput, type ResolvedBinding, type ResolvedSource, type RootFontSize, SCRIPT_EXTENSIONS, SERIALIZED_CONFIG_VERSION, SIZE_TOLERANCE_PX, SLOT_CODE_FORMS, STYLE_PROPERTIES, STYLE_PROP_NUMBER_UNITS, STYLE_PROP_VALUE_FORMS, STYLE_PROP_VALUE_LEAVES, type SafelistEntry, type SchemaEntry, type SchemaMigration, SchemaVersionTooNew, type SerializedConfig, type SerializedSourceAnswer, Settings, type SettingsClass, type Shadow, type ShadowColor, type ShadowLayer, type ShadowParts, type SignatureOptions, type SkippedOp, type Slot, type SlotCell, type SlotCodeForm, type SlotDecl, type SlotHost, type SlotTarget, Snapshot, type Source, type SourceAnswer, type SourceChange, type SourceMap, type SourceResolution, type SourceResolutionSchemas, type SourceResolver, type SourceRowState, type SourceState, type SourceUnavailable, type SourcesBySlug, type SourcesOf, type SpecNode, type SplitStyleProps, type StampedPatch, type StoredConfig, type StoredPreviewCondition, type StyleClass, type StyleDeclarationGroup, type StylePropEntry, type StylePropLeaf, type StylePropNumberUnit, type StylePropValue, type StylePropValueCtx, type StylePropValueKind, StyleProperty, type StylePropertyClass, type StylePropertyItem, type StyleRuleInput, type StyleValue, type SubEntityClass, type SubPatch, type Subtract, type SurfaceCompositeProp, type SurfaceProp, type SurfacePropCondition, type SurfacePropKind, type SurfaceScalarProp, type SurfaceSlotProp, type SurfaceStylePropertyProp, type SurfaceVariantProp, System, type SystemClass, type SystemConfig, SystemSection, type SystemSectionClass, SystemSource, type SystemSourceClass, TOKEN_READERS, type TimingValue, Token, type TokenBinding, type TokenBody, type TokenClass, type TokenGroupReader, type TokenGroupVariableReader, type TokenMatch, type TokenReader, type TokenReaders, type TokenRefPath, type TokenReference, type TokenValueEntry, type TokenValueRow, type TokenValueState, type TokenVariableAsText, type TokenVariableReaders, Tool, type ToolClass, type Transition, type TransitionSegment, type TraverseOptions, type TreeNode, UDS_FORCE_STATES, UNCONDITIONAL_PREVIEW_KEY, UNREACHABLE, type UnadoptedDirective, type UnknownStyleLeaf, type UnlinkPlan, type UnlinkPlanInput, type UnreadableBorrow, type UnstatableCondition, type UnstatableOverride, type UpgradedDraft, type UserSchemas, VOID_ELEMENTS, type ValueOf, type ValueRefs, type ValueType, type VarNaming, type VariantValueBody, type VariantValues, type VisibilityOperator, type VisibilityTerm, WEB_ACTIVATIONS, type WalkOptions, type WebActivation, add, addressOf, adoptLinkedModule, alpha, anatomyElementComponent, anatomyIssueKey, anatomyTextProp, applyPathDelta, arbitraryClassName, arbitraryNeedsClass, authoredBag, authoredValue, authoringSignatures, baseOf, bindStateRef, bindingPath, blankComponentBody, bodyNumberLeaves, bodyNumberUnit, borrowedGroup, borrowedItem, boundElementType, brandGroup, buildRefGraph, buildRefIndex, calcFunction, calcOperands, calcOperator, canonicalWhen, canvasCellAt, canvasDefaultCoordinate, capturedFromDom, cellAxes, cellSeedSpec, changeOf, changeValueAt, changesOf, childrenPolicy, classGrammar, classLeaf, className, classPrefixOf, classSelector, classifyOverlay, classifyStylePropValue, codeSlotsOf, collectRefs, compareComponentRules, componentClassBase, componentCompositeClasses, componentInteractions, componentLayerClass, componentModuleFilePaths, componentModuleKey, componentModuleSource, componentMotionClasses, componentPropClasses, componentPropComposites, componentRegistryImports, componentRuleClasses, componentSpec, componentStateAttribute, componentStateAttributes, componentStateDefaults, componentStates, composedValueAuthoring, composedValueFormOf, composedValueForms, composedValueSchemas, condArms, condValue, containsMarker, convertLinkedTokenValue, createCanvasConfig, createSliceMemo, createdComponentFilePath, createdComponentPathOf, createdModuleKey, cssPrefixes, cssPropValue, cssProperty, cssPropertyNames, cssString, cssValueIssue, cssVar, cssVarRef, danglingDirectives, danglingLocalRefs, danglingSourcedRefs, darken, declarationKeyName, declarationText, declaredField, declaredPropDefaults, declaredPropRouting, declaredRuntimeModules, declaredVariants, declaresCssVariable, defineComponent, defineConfig, defineDerivedEntity, defineEntity, defineOverride, defineSubEntity, deriveCreateSchema, deriveSpec, deriveUpdateSchema, describeBody, describePatch, detectedWireVersion, diffRendered, divide, editOp, editedCellContent, elementFromCaptured, entityPathProblem, entityRefOf, entryKeyOf, evaluateCalc, excludedCondition, expandComponent, expandSpec, fieldKeys, followCellContent, followingContent, fontFamilyStack, fontFileDescriptors, forceModeAttribute, forceModeAttributeOf, forceModeProp, forceModePropGroup, forceModePropValue, forceModeProps, forceStateAttribute, forceStateSelector, forwardClaims, forwardRoutes, forwardedLayers, forwardedNames, forwardsOf, globalStyleName, glyphComponentOf, glyphExportNames, glyphExportRule, glyphLibrariesOf, glyphPropsOf, glyphSourcesOf, glyphType, glyphVariantProp, graftPreviewElements, guidanceReaches, guidanceScopeOf, guidanceTextOf, hasInteraction, hasJsMotion, heldLinked, iconCategories, iconLibraries, iconLibrary, iconMemberMetadata, iconMetadata, iconMetadataDeclaration, iconMetadataFile, iconMetadataFileJsonSchema, iconMetadataFormat, iconMetadataSourceFile, iconResolver, iconToolAxisOptions, iconToolFor, iconToolLibraries, iconToolOf, iconToolsOf, iconVariantAs, inferredRenames, inlineJsMotion, inlineMotionId, inlineMotionProps, inlineMotions, inlineRuleComposites, inputOf, instanceHolding, instanceSpec, interactionKey, interactionModifiers, intoName, isAdd, isAuthored, isBinaryAsset, isCalc, isComposedValue, isConfigFormatError, isConfigRejection, isCreatedComponent, isCssProperty, isCustomPropertyKey, isDeclaredElementProp, isDerivedColor, isDivide, isEntityPath, isExtendedRef, isFontFaceStyle, isFontFaceWeight, isForceModeProp, isGradient, isGroupBody, isIdentifier, isInlineMotion, isInteractionModifier, isLinkSlug, isMax, isMin, isMintedRow, isMultiply, isNativeConfig, isNativeFlexValue, isOklchColor, isPlainObject, isPreviewElement, isRef, isRelativeLineHeightValue, isReservedWord, isShadow, isSubtract, isSystemConfig, isTokenReader, isTransition, isValueSlot, jsMotionBody, jsMotionPresets, jsMotionPropFields, kebabComponent, keyedPreviewConditions, kindOf, kindsOf, layerJsMotionPresets, layerPropDrivers, layerPropRoutes, layerRef, layerRoutedProps, layerStyles, layerTextProp, leafAddresses, leafVerb, leavesOfStylePropValue, librariesBoundBy, libraryHolding, lighten, linearGradient, linkedComponentModule, linkedModuleView, linkedVarNaming, literalValueOf, liveStateProps, markerKind, matchEntities, matchTokens, max, memberFromLeaf, memberLeaves, memberOf, memberRef, memberVariantOptions, memoryConfigSource, min, misdeclaredOverlays, mix, modeAxes, modifierAxes, modifierAxis, modifierCategory, modifierGroupFields, modifierInvariants, modifierLeaf, modifierUtilitiesUsed, motionClassName, motionPresetTokens, motionVariantGroups, multiply, nameIconsInTree, nameStyleNumbers, namedFields, nativeFlexToWeb, nativeTokenValue, negatedCssValue, normalizeName, normalizeStyleValue, oklch, opOf, opVerb, opacityPercentage, opsForKind, orList, orRef, orphanedMotionVariants, overlayVerb, overrideCondition, overrideKey, overrideKeyModifiers, overrideModifiers, ownTextProp, ownValues, ownerOf, ownsItsValues, packageKey, packageName, parseRootFontSize, parseTokenValue, partsOf, pathDelta, pathOf, pathSegments, pinStyleNumbers, placedGlyphElement, placedMotions, planBreak, planCopy, planLink, planUnlink, prefixed, prepareLinkedTokenBody, previewConditionalProps, previewConditions, previewDefaults, previewMatrix, previewSpec, propApplies, propInto, propOwner, propRegistryRef, propValueDomain, propValueFromAxis, propsIntoLayer, readStatePointer, readsState, redundantQualifiers, ref, refGraphOf, refKey, refLeaf, refListOf, refOfKey, refSchema, refTo, registerSchemaMigrations, renderBindingsOf, renderComposedValue, renderDerivedColor, renderGradient, renderInterpolated, renderOklch, renderShadow, renderSignature, renderStyleValue, renderTransition, renderValue, renderedElement, renderedSignatureOf, renderedTarget, replaceRefMarkers, requiredContentCondition, requiredContentLayers, requiredPropsUnforwarded, resetCellContent, resolutionSchema, resolveBinding, resolveComponentProps, resolveFieldValue, resolveIconLibraries, resolveInputDir, resolveOutDir, resolveOutputAlias, resolveRegistryDir, resolveSourceAlias, resolveTokenValue, resolveTokenValueUnder, resolveValue, resolveValueType, resolveVisibility, resolvedSource, rewriteRefNamespace, rewriteRefSource, rewriteRefs, rewriteStyleNumbers, rnStyleKey, rootFontSize, rootLayerOf, routeOf, routedBag, routedProp, routedPropIn, routedSource, routesContent, routesOf, ruleApplies, ruleCondition, runChangeHooks, safelistEntrySchema, schemaVersionOf, searchEntities, searchTokens, setAtPath, shadow, signatureOf, slotCodeForms, slotTargetsOf, snapshotHtml, sniffValueType, sourceEntries, sourceHops, sourceOf, sourceOfGroup, sourceOfItem, sourceRowStates, sourceSlugFor, sourceUnavailable, sourceUnreachable, sourceVarPrefix, specFromCapture, specToNodePatches, specWithResolvedVisibility, spellTokenRead, splitRef, splitRefMarkers, splitStyleProps, splitVariants, stamp, standsInForCode, statePointerProp, stateRef, stateTest, stateVariantNames, storedPreview, styleAliasesOf, styleDeclarationGroups, styleDeclarations, styleNumberAsPainted, styleNumberReadingChanges, stylePropClassBase, stylePropClassName, stylePropClasses, stylePropEntries, stylePropLeafForToken, stylePropNegates, stylePropNumberCss, stylePropNumberLeaf, stylePropNumberLeaves, stylePropNumberName, stylePropNumberNamedLeaves, stylePropNumberUnit, stylePropNumberUnitRefusal, stylePropOffScaleLiteral, stylePropOwnClasses, stylePropTokenGroup, stylePropTokenPath, stylePropTokenValues, stylePropValueFormOf, stylePropValueFromLeaf, stylePropValueLeaves, stylePropValueSchema, stylePropValues, stylePropertiesWriting, stylePropertyAccepts, stylePropertyFor, stylePropertyPathFor, styleRuleMotionClasses, subtract, suggestLinkSlug, summarizeChanges, surfaceProp, surfaceProps, tablerExportName, tablerStyledExportName, toCssPropertyName, tokenBinding, tokenExists, tokenReference, tokenValueRow, tokenValueRows, tokenVariablesAsText, touchedFields, transition, unadoptedDirectives, unconditionalPreviewProps, unknownStyleLeaves, unreadableBorrows, unstatableConditions, unstatableOverrides, updateRefIndex, upgradeDraftEntries, upgradePatch, upgradeSerializedConfig, validateComponentProps, validateSpec, valueAt, valueForwardsOf, valueLeavesOf, valueRef, valueSchemaOf, valueTypeOf, varPrefixOf, views, visibilityStateProps, visibilityTerms, webFlexToNative, whenParts, withCellValues, withRequiredContentHidden, withoutTruthyTerm, wrappedElementKey };
127
+ export { AI_LANES, ANATOMY_MARKER, type Add, AiChat, type AiChatClass, AiFlow, type AiFlowClass, type AiFlowOrigin, AiGeneration, type AiGenerationClass, type AiLane, AiMessage, type AiMessageClass, type AiMultiAgentMode, type AnatomyIssue, type AnatomyIssueKind, type AnatomyReport, Annotation, type AnnotationClass, AnnotationFields, type AnnotationSegment, type AnySystemConfig, type AppliedOp, type AsInput, type AttachedSources, type Authored, type AuthoredComponent, type AuthoredProp, type AuthoredPropBody, type AuthoredStyleBag, type AuthoredStyleField, type AuthoringSignatureOptions, BUILD_DEFAULTS, type BatchReceipt, type BindingKind, type BreakOutcome, type BreakPlan, type BreakPlanInput, type BreakPlanRow, type BreakReach, BuildSection, type BuildSectionClass, CANVAS_ROLES, COMPONENT_ENTRY_STATIC, CONFIG_OPERATION_KIND, CREATED_COMPONENT_DIRECTORY, CSS_DEFAULTS, CSS_PROPERTY_NAMES, CSS_WIDE_KEYWORDS, CURRENT_SCHEMA_VERSION, type Calc, type CalcOperand, Canvas, type CanvasClass, CanvasConfig, type CanvasConfigClass, CanvasRole, type CanvasRoleClass, type CanvasRoleName, CanvasSection, type CanvasSectionClass, type CaptureToSpecOptions, type CaptureToSpecResult, type CapturedChild, type CapturedElement, CapturedNode, type CapturedNodeJson, type Spec as CapturedSpec, type SpecElement as CapturedSpecElement, type CapturedText, type Cell, type CellSlot, type Change, type ChangeHook, type ChangeTarget, type CheckedTokenRefPath, type ChildrenPolicy, type ClassGrammar, type CodeSlot, type Collection, type ColorValue, Component, type ComponentBody, type ComponentBuilder, type ComponentClass, type ComponentContractOf, type ComponentCreateInput, type ComponentElementBody, type ComponentInteraction, type ComponentItemInput, type ComponentModuleSource, type ComponentPropBody, type ComponentPropsOf, type ComponentReference, type ComponentRegistryImport, type ComponentRegistryImportBinding, type ComponentRuleClass, type ComponentSpec, type ComponentSpecs, type ComponentState, type ComponentStyleBody, type ComposedValue, type ComposedValueAuthoring, type ComposedValueForm, Composite, type CompositeClass, type ComputedFields, type ComputedFunctions, type ComputedInput, type ComputedMap, type ComputedValue, Config, type ConfigClass, type ConfigEdit, ConfigFormatError, type ConfigInstance, type ConfigIssue, type ConfigIssueCode, type ConfigKind, type ConfigOp, ConfigRejection, ConfigSession, type ConfigSessionOptions, type ConfigSink, type ConfigSource, type CopyPlan, type CopyPlanInput, type CopyPlanRow, type CreateInput, type CssGrammar, type CssPrefix, type CssPropertyEntry, CssSection, type CssSectionClass, DERIVED_COLOR_DEFAULT_SPACE, DERIVED_COLOR_SPACE, DERIVED_MUTATIONS, type DanglingDirective, type DanglingLocalRef, type DanglingRef, type DeclaredRuntimeModule, type DeletePlan, type DeriveMembers, type DerivedColor, type DerivedEntityClass, type DerivedOp, Device, type DeviceClass, type DiffOptions, type Divide, Documentation, type DocumentationClass, DocumentationLibrary, type DocumentationLibraryClass, type DomLikeElement, type DraftSource, ENTITY_PATH_MESSAGE, EXPORT_MEMBER, type EditedCellContent, type Edition, type ElementVisibility, type ElementVisibilityInput, type ElementVisibilitySchema, Entity, type EntityAddress, type EntityChange, type EntityClass, type EntityKind, type EntityMap, type EntryGroup, type ExpandOptions, type ExpansionResult, type ExtendedComponentRef, type ExtendedRef, type FieldsSchema, File, type FileClass, Font, type FontClass, FontFile, type FontFileClass, type ForwardBlockedReason, type ForwardClaims, type ForwardOption, type ForwardOptions, type ForwardRequest, GROUP, GUIDANCE_LANES, GlobalStyle, type GlobalStyleClass, type GlyphComponent, type GlyphExportRule, type GlyphSource, type GlyphValue, type GoverningCondition, type Gradient, type GroupBody, type GroupComputedInput, Guidance, type GuidanceClass, type GuidanceLane, type GuidanceScope, type GuidanceSegment, GuidanceStyle, type GuidanceStyleBody, type GuidanceStyleClass, type HasSnapshot, type HydrationOptions, ICON_METADATA_FORMATS, Icon, type IconAnswer, type IconClass, type IconGlyph, type IconHook, type IconLibrary, type IconMemberMetadata, type IconMetadataAdapter, type IconMetadataDeclaration, type IconMetadataFile, type IconMetadataFormat, type IconTool, type IconVariantAs, type IdentifiedOp, type InferredRename, type InlineMotion, type Instance, type InstanceSlot, type InstanceSpec, type InteractionCondition, type ItemOf, type KindRef, type KindSignature, type KindSlice, LINK_SLUG, LINK_SLUG_MESSAGE, type LayerElement, type LayerMap, type LayerPropDriver, type LayerStyleOptions, type LeafAddress, type LinkArrival, type LinkDeclaration, type LinkPaths, type LinkPlan, type LinkPlanInput, type LinkedElsewhere, LinkedSystem, type LinkedSystemClass, type LinkedSystemCreateInput, type LinkedSystemItemInput, type LinkedSystemResolver, type LinkedSystemState, type ListOptions, type LiveConfig, type LocalOverlay, MINTED, MODIFIER_CATEGORIES, MOTION_FACTORY, MOTION_VARIANT_STATES, type MarkerKind, type Max, type Min, type MisdeclaredOverlay, Modifier, type ModifierCategory, type ModifierClass, type ModifierGroupMeta, Motion, type MotionClass, type MotionPresetToken, type Multiply, NATIVE_ACTIVATIONS, type NativeActivation, type NativeFlexValue, NativeModifier, type NativeModifierClass, NativeSettings, NativeStyleProperty, NativeToken, Node, type NodeClass, type OklchColor, type OnLinked, type OpHandler, type OpInput, Operation, type OperationClass, type OrphanedMotionVariant, type OverlayVerb, type OverrideCondition, type OwnedRecords, PLACED_NODE_KEY, PLAYGROUND_DEFAULTS, Package, type PackageClass, Page, type PageClass, type Patch, type PathOf, type PickedComposite, type PinDirective, type PinOptions, type PinOptionsField, type PinOptionsInput, type PlacedMotion, type Plan, type PlanImpact, type PlanOp, PlaygroundSection, type PlaygroundSectionClass, Presence, type PresenceProps, type PreviewElement, type PreviewMatrix, type ProjectedVisibility, type PropCondition, type PropDecl, type PropDeclaration, type PropMap, type PropRoute, type PropShapeSchema, RN_STYLE_KEYS, ReactNativeSystem, type ReactNativeSystemClass, type ReactNativeSystemConfig, type RebaseConflict, type RebaseOrigin, type RebaseResult, type RecordedSource, type RedundantQualifier, type Ref, type RefGraph, type RefGraphEntry, type RefIndex, type RefIndexChange, type RefMember, type RefTarget, type RegisteredComponentContracts, type RegisteredComponentHandles, type RegisteredEntities, type RegisteredGroupPaths, type RegisteredMembers, type RegisteredModifiers, type RegisteredMotionRuntimes, type RegisteredPaths, type RegisteredStyleBag, type RegisteredStyleProps, type RegisteredTokenValues, type RelativeLineHeightValue, type RenamePlan, type RenderArgs, type RenderElement, type RenderSpec, type RenderedNode, type RenderedTarget, type RepeatRow, type RepeatSpec, type RequiredContent, type RequiredPropUnforwarded, type ResolveContext, type ResolveValueTypeInput, type ResolvedBinding, type ResolvedSource, type RootFontSize, SCRIPT_EXTENSIONS, SERIALIZED_CONFIG_VERSION, SIZE_TOLERANCE_PX, SLOT_CODE_FORMS, STYLE_PROPERTIES, STYLE_PROP_NUMBER_UNITS, STYLE_PROP_VALUE_FORMS, STYLE_PROP_VALUE_LEAVES, type SafelistEntry, type SchemaEntry, type SchemaMigration, SchemaVersionTooNew, type SerializedConfig, type SerializedSourceAnswer, Settings, type SettingsClass, type Shadow, type ShadowColor, type ShadowLayer, type ShadowParts, type SignatureOptions, type SkippedOp, type Slot, type SlotCell, type SlotCodeForm, type SlotDecl, type SlotHost, type SlotTarget, Snapshot, type Source, type SourceAnswer, type SourceChange, type SourceMap, type SourceResolution, type SourceResolutionSchemas, type SourceResolver, type SourceRowState, type SourceState, type SourceUnavailable, type SourcesBySlug, type SourcesOf, type SpecNode, type SplitStyleProps, type StampedPatch, type StoredConfig, type StoredPreviewCondition, type StyleClass, type StyleDeclarationGroup, type StylePropEntry, type StylePropLeaf, type StylePropNumberUnit, type StylePropValue, type StylePropValueCtx, type StylePropValueKind, StyleProperty, type StylePropertyClass, type StylePropertyItem, type StyleRuleInput, type StyleSetChange, type StyleValue, type SubEntityClass, type SubPatch, type Subtract, type SurfaceCompositeProp, type SurfaceProp, type SurfacePropCondition, type SurfacePropKind, type SurfaceScalarProp, type SurfaceSlotProp, type SurfaceStylePropertyProp, type SurfaceVariantProp, System, type SystemClass, type SystemConfig, SystemSection, type SystemSectionClass, SystemSource, type SystemSourceClass, TOKEN_READERS, type TimingValue, Token, type TokenBinding, type TokenBody, type TokenClass, type TokenGroupReader, type TokenGroupVariableReader, type TokenMatch, type TokenReader, type TokenReaders, type TokenRefPath, type TokenReference, type TokenValueEntry, type TokenValueRow, type TokenValueState, type TokenVariableAsText, type TokenVariableReaders, Tool, type ToolClass, type Transition, type TransitionSegment, type TraverseOptions, type TreeNode, UDS_FORCE_STATES, UNCONDITIONAL_PREVIEW_KEY, UNREACHABLE, type UnadoptedDirective, type UnknownStyleLeaf, type UnlinkPlan, type UnlinkPlanInput, type UnreadableBorrow, type UnstatableCondition, type UnstatableOverride, type UpgradedDraft, type UserSchemas, VOID_ELEMENTS, type ValueOf, type ValueRefs, type ValueType, type VarNaming, type VariantValueBody, type VariantValues, type VisibilityOperator, type VisibilityTerm, WEB_ACTIVATIONS, type WalkOptions, type WebActivation, add, addressOf, adoptLinkedModule, alpha, anatomyElementComponent, anatomyIssueKey, anatomyTextProp, applyPathDelta, arbitraryClassName, arbitraryNeedsClass, authoredBag, authoredValue, authoringSignatures, baseOf, bindStateRef, bindingPath, blankComponentBody, bodyNumberLeaves, bodyNumberUnit, borrowedGroup, borrowedItem, boundElementType, brandGroup, buildRefGraph, buildRefIndex, calcFunction, calcOperands, calcOperator, canonicalWhen, canvasCellAt, canvasDefaultCoordinate, capturedFromDom, cellAxes, cellSeedSpec, changeOf, changeValueAt, changesOf, childrenPolicy, classGrammar, classLeaf, className, classPrefixOf, classSelector, classifyOverlay, classifyStylePropValue, codeSlotsOf, collectRefs, compareComponentRules, componentClassBase, componentCompositeClasses, componentInteractions, componentLayerClass, componentModuleFilePaths, componentModuleKey, componentModuleSource, componentMotionClasses, componentPropClasses, componentPropComposites, componentRegistryImports, componentRuleClasses, componentSpec, componentStateAttribute, componentStateAttributes, componentStateDefaults, componentStates, composedValueAuthoring, composedValueFormOf, composedValueForms, composedValueSchemas, condArms, condValue, containsMarker, convertLinkedTokenValue, createCanvasConfig, createSliceMemo, createdComponentFilePath, createdComponentPathOf, createdModuleKey, cssPrefixes, cssPropValue, cssProperty, cssPropertyNames, cssString, cssValueIssue, cssVar, cssVarRef, danglingDirectives, danglingLocalRefs, danglingSourcedRefs, darken, declarationKeyName, declarationText, declaredField, declaredPropDefaults, declaredPropRouting, declaredRuntimeModules, declaredVariants, declaresCssVariable, defineComponent, defineConfig, defineDerivedEntity, defineEntity, defineOverride, defineSubEntity, deriveCreateSchema, deriveSpec, deriveUpdateSchema, describeBody, describePatch, detectedWireVersion, diffRendered, divide, editOp, editedCellContent, elementFromCaptured, entityPathProblem, entityRefOf, entryKeyOf, evaluateCalc, excludedCondition, expandComponent, expandSpec, fieldKeys, followCellContent, followingContent, fontFamilyStack, fontFileDescriptors, forceModeAttribute, forceModeAttributeOf, forceModeProp, forceModePropGroup, forceModePropValue, forceModeProps, forceStateAttribute, forceStateSelector, forwardClaims, forwardRoutes, forwardedLayers, forwardedNames, forwardsOf, globalStyleName, glyphComponentOf, glyphExportNames, glyphExportRule, glyphLibrariesOf, glyphPropsOf, glyphSourcesOf, glyphType, glyphVariantProp, graftPreviewElements, guidanceReaches, guidanceScopeOf, guidanceTextOf, hasInteraction, hasJsMotion, heldLinked, iconCategories, iconLibraries, iconLibrary, iconMemberMetadata, iconMetadata, iconMetadataDeclaration, iconMetadataFile, iconMetadataFileJsonSchema, iconMetadataFormat, iconMetadataSourceFile, iconResolver, iconToolAxisOptions, iconToolFor, iconToolLibraries, iconToolOf, iconToolsOf, iconVariantAs, inferredRenames, inlineJsMotion, inlineMotionId, inlineMotionProps, inlineMotions, inlineRuleComposites, inputOf, instanceHolding, instanceSpec, interactionKey, interactionModifiers, intoName, isAdd, isAuthored, isBinaryAsset, isCalc, isComposedValue, isConfigFormatError, isConfigRejection, isCreatedComponent, isCssProperty, isCustomPropertyKey, isDeclaredElementProp, isDerivedColor, isDivide, isEntityPath, isExtendedRef, isFontFaceStyle, isFontFaceWeight, isForceModeProp, isGradient, isGroupBody, isIdentifier, isInlineMotion, isInteractionModifier, isLinkSlug, isMax, isMin, isMintedRow, isMultiply, isNativeConfig, isNativeFlexValue, isOklchColor, isPlainObject, isPreviewElement, isRef, isRelativeLineHeightValue, isReservedWord, isShadow, isSubtract, isSystemConfig, isTokenReader, isTransition, isValueSlot, jsMotionBody, jsMotionPresets, jsMotionPropFields, kebabComponent, keyedPreviewConditions, kindOf, kindsOf, layerJsMotionPresets, layerPropDrivers, layerPropRoutes, layerRef, layerRoutedProps, layerStyles, layerTextProp, leafAddresses, leafVerb, leavesOfStylePropValue, librariesBoundBy, libraryHolding, lighten, linearGradient, linkedComponentModule, linkedModuleView, linkedVarNaming, literalValueOf, liveStateProps, markerKind, matchEntities, matchTokens, max, memberFromLeaf, memberLeaves, memberOf, memberRef, memberVariantOptions, memoryConfigSource, min, misdeclaredOverlays, mix, modeAxes, modifierAxes, modifierAxis, modifierCategory, modifierGroupFields, modifierInvariants, modifierLeaf, modifierUtilitiesUsed, motionClassName, motionPresetTokens, motionVariantGroups, multiply, nameIconsInTree, nameStyleNumbers, namedFields, nativeFlexToWeb, nativeTokenValue, negatedCssValue, normalizeName, normalizeStyleValue, oklch, opOf, opVerb, opacityPercentage, opsForKind, orList, orRef, orphanedMotionVariants, overlayVerb, overrideCondition, overrideKey, overrideKeyModifiers, overrideModifiers, ownTextProp, ownValues, ownerOf, ownsItsValues, packageKey, packageName, parseRootFontSize, parseTokenValue, partsOf, pathDelta, pathOf, pathSegments, pinStyleNumbers, placedGlyphElement, placedMotions, planBreak, planCopy, planLink, planUnlink, prefixed, prepareLinkedTokenBody, previewConditionalProps, previewConditions, previewDefaults, previewMatrix, previewSpec, propApplies, propInto, propOwner, propRegistryRef, propValueDomain, propValueFromAxis, propsIntoLayer, readStatePointer, readsState, redundantQualifiers, ref, refGraphOf, refKey, refLeaf, refListOf, refOfKey, refSchema, refTo, registerSchemaMigrations, renderBindingsOf, renderComposedValue, renderDerivedColor, renderGradient, renderInterpolated, renderOklch, renderShadow, renderSignature, renderStyleValue, renderTransition, renderValue, renderedElement, renderedSignatureOf, renderedTarget, replaceRefMarkers, requiredContentCondition, requiredContentLayers, requiredPropsUnforwarded, resetCellContent, resolutionSchema, resolveBinding, resolveComponentProps, resolveFieldValue, resolveIconLibraries, resolveInputDir, resolveOutDir, resolveOutputAlias, resolveRegistryDir, resolveSourceAlias, resolveTokenValue, resolveTokenValueUnder, resolveValue, resolveValueType, resolveVisibility, resolvedSource, rewriteRefNamespace, rewriteRefSource, rewriteRefs, rewriteStyleNumbers, rnStyleKey, rootFontSize, rootLayerOf, routeOf, routedBag, routedProp, routedPropIn, routedSource, routesContent, routesOf, ruleApplies, ruleCondition, runChangeHooks, safelistEntrySchema, schemaVersionOf, searchEntities, searchTokens, setAtPath, shadow, signatureOf, slotCodeForms, slotTargetsOf, snapshotHtml, sniffValueType, sourceEntries, sourceHops, sourceOf, sourceOfGroup, sourceOfItem, sourceRowStates, sourceSlugFor, sourceUnavailable, sourceUnreachable, sourceVarPrefix, specFromCapture, specToNodePatches, specWithResolvedVisibility, spellTokenRead, splitRef, splitRefMarkers, splitStyleProps, splitVariants, stamp, standsInForCode, statePointerProp, stateRef, stateTest, stateVariantNames, storedPreview, styleAliasesOf, styleDeclarationGroups, styleDeclarations, styleNumberAsPainted, styleNumberReadingChanges, stylePropClassBase, stylePropClassName, stylePropClasses, stylePropEntries, stylePropLeafForToken, stylePropNegates, stylePropNumberCss, stylePropNumberLeaf, stylePropNumberLeaves, stylePropNumberName, stylePropNumberNamedLeaves, stylePropNumberUnit, stylePropNumberUnitRefusal, stylePropOffScaleLiteral, stylePropOwnClasses, stylePropTokenGroup, stylePropTokenPath, stylePropTokenValues, stylePropValueFormOf, stylePropValueFromLeaf, stylePropValueLeaves, stylePropValueSchema, stylePropValues, stylePropertiesWriting, stylePropertyAccepts, stylePropertyFor, stylePropertyPathFor, styleRuleMotionClasses, styleSetEdits, subtract, suggestLinkSlug, summarizeChanges, surfaceProp, surfaceProps, tablerExportName, tablerStyledExportName, toCssPropertyName, tokenBinding, tokenExists, tokenReference, tokenValueRow, tokenValueRows, tokenVariablesAsText, touchedFields, transition, unadoptedDirectives, unconditionalPreviewProps, unknownStyleLeaves, unreadableBorrows, unstatableConditions, unstatableOverrides, updateRefIndex, upgradeDraftEntries, upgradePatch, upgradeSerializedConfig, validateComponentProps, validateSpec, valueAt, valueForwardsOf, valueLeavesOf, valueRef, valueSchemaOf, valueTypeOf, varPrefixOf, views, visibilityStateProps, visibilityTerms, webFlexToNative, whenParts, withCellValues, withRequiredContentHidden, withoutTruthyTerm, wrappedElementKey };