@almadar/core 10.86.0 → 10.87.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.
Files changed (41) hide show
  1. package/dist/builders.d.ts +5 -4
  2. package/dist/builders.js +68 -29
  3. package/dist/builders.js.map +1 -1
  4. package/dist/{effect-BgDiw_bG.d.ts → effect-DMA97JxX.d.ts} +22 -6
  5. package/dist/{entityAccess-DK5S_2cT.d.ts → entityAccess-DNDEF75i.d.ts} +2 -2
  6. package/dist/{expression-Fk8bQWef.d.ts → expression-WfTp2arD.d.ts} +2 -65
  7. package/dist/factory/index.d.ts +6 -5
  8. package/dist/factory/index.js +1194 -401
  9. package/dist/factory/index.js.map +1 -1
  10. package/dist/factory-runtime/index.d.ts +35 -5
  11. package/dist/factory-runtime/index.js +127 -52
  12. package/dist/factory-runtime/index.js.map +1 -1
  13. package/dist/i18n/index.d.ts +111 -1
  14. package/dist/i18n/index.js +500 -19
  15. package/dist/i18n/index.js.map +1 -1
  16. package/dist/{index-ChYsqVJj.d.ts → index-xZP_Ajx3.d.ts} +18 -5
  17. package/dist/index.d.ts +82 -14
  18. package/dist/index.js +1876 -333
  19. package/dist/index.js.map +1 -1
  20. package/dist/json-D8gmyK3l.d.ts +65 -0
  21. package/dist/mock/index.d.ts +129 -12
  22. package/dist/mock/index.js +192 -61
  23. package/dist/mock/index.js.map +1 -1
  24. package/dist/patterns/component-mapping.json +1 -1
  25. package/dist/patterns/event-contracts.json +1 -1
  26. package/dist/patterns/index.d.ts +2525 -609
  27. package/dist/patterns/index.js +1238 -384
  28. package/dist/patterns/index.js.map +1 -1
  29. package/dist/patterns/integrators-registry.json +107 -23
  30. package/dist/patterns/patterns-registry.json +1170 -400
  31. package/dist/patterns/registry.json +1170 -400
  32. package/dist/patterns/services-registry.json +170 -35
  33. package/dist/{schema-BhfQb1oe.d.ts → schema-_SPrm5Ic.d.ts} +46381 -21335
  34. package/dist/state-machine/index.d.ts +2 -1
  35. package/dist/trait-9tfq2tQb.d.ts +10554 -0
  36. package/dist/types/index.d.ts +7 -6
  37. package/dist/types/index.js +132 -43
  38. package/dist/types/index.js.map +1 -1
  39. package/dist/{types-CCAmdxcH.d.ts → types-CjRjhiaO.d.ts} +19 -3
  40. package/package.json +2 -2
  41. package/dist/trait-pavNlGqm.d.ts +0 -5385
package/dist/index.js CHANGED
@@ -95,6 +95,50 @@ function ulid() {
95
95
  function mintId(kind) {
96
96
  return brand(ID_PREFIXES[kind] + ulid());
97
97
  }
98
+ var U64_MASK = (1n << 64n) - 1n;
99
+ var BODY_TIME_MASK = (1n << 50n) - 1n;
100
+ var BODY_RANDOM_MASK = (1n << 80n) - 1n;
101
+ var FNV_PRIME_64 = 0x100000001b3n;
102
+ var FNV_OFFSET_1 = 0xcbf29ce484222325n;
103
+ var FNV_OFFSET_2 = (0x100000001b3n ^ 0xdeadbeefn) & U64_MASK;
104
+ function splitmix64(x) {
105
+ let z19 = x + 0x9e3779b97f4a7c15n & U64_MASK;
106
+ z19 = (z19 ^ z19 >> 30n) * 0xbf58476d1ce4e5b9n & U64_MASK;
107
+ z19 = (z19 ^ z19 >> 27n) * 0x94d049bb133111ebn & U64_MASK;
108
+ return (z19 ^ z19 >> 31n) & U64_MASK;
109
+ }
110
+ function fnv1a64(data, offset) {
111
+ let h = offset & U64_MASK;
112
+ for (const b of data) {
113
+ h = (h ^ BigInt(b)) & U64_MASK;
114
+ h = h * FNV_PRIME_64 & U64_MASK;
115
+ }
116
+ return h;
117
+ }
118
+ function pushBase32(value, nChars) {
119
+ let v = value;
120
+ const chars = new Array(nChars);
121
+ for (let i = nChars - 1; i >= 0; i--) {
122
+ chars[i] = CROCKFORD[Number(v & 0x1fn)];
123
+ v >>= 5n;
124
+ }
125
+ return chars.join("");
126
+ }
127
+ function deriveId(parentId, discriminator) {
128
+ const kind = idKindOf(parentId) ?? "trait";
129
+ const encoder = new TextEncoder();
130
+ const parentBytes = encoder.encode(parentId);
131
+ const discBytes = encoder.encode(discriminator);
132
+ const data = new Uint8Array(parentBytes.length + 1 + discBytes.length);
133
+ data.set(parentBytes, 0);
134
+ data[parentBytes.length] = 31;
135
+ data.set(discBytes, parentBytes.length + 1);
136
+ const h1 = splitmix64(fnv1a64(data, FNV_OFFSET_1));
137
+ const h2 = splitmix64(fnv1a64(data, FNV_OFFSET_2));
138
+ const timeBits = (h1 << 64n | h2) & BODY_TIME_MASK;
139
+ const randBits = (h2 << 64n | h1) & BODY_RANDOM_MASK;
140
+ return ID_PREFIXES[kind] + pushBase32(timeBits, 10) + pushBase32(randBits, 16);
141
+ }
98
142
  function ledgerResolveName(ledger, kind, name) {
99
143
  for (const [id, entry] of Object.entries(ledger.entries)) {
100
144
  if (entry.kind === kind && entry.curName === name) return id;
@@ -793,6 +837,9 @@ var EntityPersistenceSchema = z.enum([
793
837
  ]);
794
838
  var OrbitalEntitySchema = z.object({
795
839
  name: z.string().min(1, "Entity name is required"),
840
+ // V4 arena id (`EntityDefinition.id`); declared so the strip-mode zod gate
841
+ // carries an imported entity's id through instead of erasing it.
842
+ id: EntityIdSchema.optional(),
796
843
  persistence: EntityPersistenceSchema.default("persistent"),
797
844
  shared: z.boolean().optional(),
798
845
  // Must stay in step with the Rust serde field (`EntityDefinition.identity`,
@@ -960,7 +1007,8 @@ var PayloadFieldSchema = z.object({
960
1007
  type: z.string().min(1),
961
1008
  required: z.boolean().optional(),
962
1009
  properties: z.lazy(() => z.array(PayloadFieldSchema)).optional(),
963
- typeWhen: z.array(PayloadTypeWhenSchema).optional()
1010
+ typeWhen: z.array(PayloadTypeWhenSchema).optional(),
1011
+ entity: z.string().min(1).optional()
964
1012
  });
965
1013
  var EventSchema = z.object({
966
1014
  key: z.string().min(1, "Event key is required"),
@@ -1053,6 +1101,19 @@ function maskSecretConfigValues(config, values) {
1053
1101
  }
1054
1102
  return masked;
1055
1103
  }
1104
+ function overrideDeclaredKnobs(declared, overrides) {
1105
+ const out = { ...declared };
1106
+ for (const key of Object.keys(overrides)) {
1107
+ const field = declared[key];
1108
+ if (field === void 0) {
1109
+ throw new Error(
1110
+ `overrideDeclaredKnobs: config override "${key}" is not a declared knob (ORB_O_CONFIG_UNKNOWN_KEY). Declared: ${Object.keys(declared).join(", ") || "(none)"}`
1111
+ );
1112
+ }
1113
+ out[key] = { ...field, default: overrides[key] };
1114
+ }
1115
+ return out;
1116
+ }
1056
1117
  var ConfigFieldItemsDeclarationSchema = z.lazy(
1057
1118
  () => z.object({
1058
1119
  type: z.string().optional(),
@@ -1072,7 +1133,8 @@ var ConfigFieldDeclarationSchema = z.object({
1072
1133
  values: z.array(z.string()).optional(),
1073
1134
  synonyms: z.string().optional(),
1074
1135
  items: ConfigFieldItemsDeclarationSchema.optional(),
1075
- properties: z.lazy(() => z.record(TraitEntityFieldSchema)).optional()
1136
+ properties: z.lazy(() => z.record(TraitEntityFieldSchema)).optional(),
1137
+ forwardedFrom: z.string().optional()
1076
1138
  });
1077
1139
  var DeclaredTraitConfigSchema = z.record(
1078
1140
  ConfigFieldDeclarationSchema
@@ -1094,31 +1156,32 @@ var TraitCategorySchema = z.enum([
1094
1156
  "game-board",
1095
1157
  "game-puzzle"
1096
1158
  ]);
1159
+ var TRAIT_FIELD_TYPES = [
1160
+ "string",
1161
+ "number",
1162
+ "boolean",
1163
+ "date",
1164
+ "array",
1165
+ "object",
1166
+ "timestamp",
1167
+ "datetime",
1168
+ "enum",
1169
+ "email",
1170
+ "url",
1171
+ "phone",
1172
+ "uuid",
1173
+ "image",
1174
+ "trait",
1175
+ "slot",
1176
+ "pattern",
1177
+ "node",
1178
+ "event",
1179
+ "scalar",
1180
+ "union"
1181
+ ];
1097
1182
  var TraitEntityFieldSchema = z.object({
1098
1183
  name: z.string().min(1),
1099
- type: z.enum([
1100
- "string",
1101
- "number",
1102
- "boolean",
1103
- "date",
1104
- "array",
1105
- "object",
1106
- "timestamp",
1107
- "datetime",
1108
- "enum",
1109
- "email",
1110
- "url",
1111
- "phone",
1112
- "uuid",
1113
- "image",
1114
- "trait",
1115
- "slot",
1116
- "pattern",
1117
- // `node` was missing here while being a real `TraitFieldType` member
1118
- // — the same latent-drift trap `event` would otherwise repeat.
1119
- "node",
1120
- "event"
1121
- ]),
1184
+ type: z.enum(TRAIT_FIELD_TYPES),
1122
1185
  required: z.boolean().optional(),
1123
1186
  default: TraitConfigValueSchema.optional(),
1124
1187
  values: z.array(z.string()).optional(),
@@ -1173,7 +1236,7 @@ var EventPayloadFieldSchema = z.object({
1173
1236
  type: z.string().min(1),
1174
1237
  required: z.boolean().optional(),
1175
1238
  description: z.string().optional(),
1176
- entityType: z.string().optional(),
1239
+ entity: z.string().optional(),
1177
1240
  properties: z.lazy(() => z.array(EventPayloadFieldSchema)).optional(),
1178
1241
  typeWhen: z.array(PayloadTypeWhenSchema).optional()
1179
1242
  });
@@ -1245,8 +1308,7 @@ var TraitEventListenerSchema = z.object({
1245
1308
  });
1246
1309
  var RequiredFieldSchema = z.object({
1247
1310
  name: z.string().min(1),
1248
- // `node` was missing here too (same drift as TraitEntityFieldSchema above).
1249
- type: z.enum(["string", "number", "boolean", "date", "array", "object", "timestamp", "datetime", "enum", "email", "url", "phone", "uuid", "image", "trait", "slot", "pattern", "node", "event"]),
1311
+ type: z.enum(TRAIT_FIELD_TYPES),
1250
1312
  description: z.string().optional()
1251
1313
  });
1252
1314
  var TraitReferenceSchema = z.object({
@@ -1265,6 +1327,7 @@ var TraitReferenceSchema = z.object({
1265
1327
  z.string().min(1, "events value (caller event name) must be non-empty")
1266
1328
  ).optional(),
1267
1329
  eventIds: z.record(z.string().min(1), EventIdSchema).optional(),
1330
+ _resolved: z.lazy(() => TraitSchema).optional(),
1268
1331
  // 3-II type-parameter arguments (see `TraitReference.typeArgs`).
1269
1332
  typeArgs: z.record(
1270
1333
  z.string().min(1, "typeArgs key (declared param name) must be non-empty"),
@@ -1957,7 +2020,8 @@ var UseDeclarationSchema = z.object({
1957
2020
  as: z.string().min(1, "Alias is required").regex(
1958
2021
  /^[A-Z][a-zA-Z0-9]*$/,
1959
2022
  'Alias must be PascalCase (e.g., "Health", "GameCore")'
1960
- )
2023
+ ),
2024
+ config: DeclaredTraitConfigSchema.optional()
1961
2025
  });
1962
2026
  function expectedEntityName(decl) {
1963
2027
  switch (decl.kind) {
@@ -2063,6 +2127,30 @@ var PageRefSchema = z.union([
2063
2127
  PageRefStringSchema,
2064
2128
  PageRefObjectSchema
2065
2129
  ]);
2130
+ var OrbitalRefStringSchema = z.string().regex(
2131
+ /^[A-Z][a-zA-Z0-9]*\.orbitals\.[A-Z][a-zA-Z0-9]*$/,
2132
+ 'Orbital reference must be "Alias.orbitals.OrbitalName"'
2133
+ );
2134
+ var OrbitalRefObjectSchema = z.object({
2135
+ ref: OrbitalRefStringSchema,
2136
+ refId: OrbitalIdSchema.optional(),
2137
+ entity: z.string().optional(),
2138
+ fields: z.record(z.string()).optional(),
2139
+ pages: z.record(z.string()).optional(),
2140
+ omit: z.array(z.string()).optional(),
2141
+ only: z.array(z.string()).optional(),
2142
+ config: DeclaredTraitConfigSchema.optional(),
2143
+ events: z.record(z.string()).optional(),
2144
+ roles: z.record(z.string(), z.array(z.string())).optional(),
2145
+ entities: z.record(z.string(), z.string()).optional(),
2146
+ mounts: z.record(z.string(), z.array(z.string())).optional(),
2147
+ extend: z.array(EntityFieldSchema).optional()
2148
+ });
2149
+ function parseOrbitalRef(ref2) {
2150
+ const match = ref2.match(/^([A-Z][a-zA-Z0-9]*)\.orbitals\.([A-Z][a-zA-Z0-9]*)$/);
2151
+ if (!match) return null;
2152
+ return { alias: match[1], orbitalName: match[2] };
2153
+ }
2066
2154
  z.string().regex(
2067
2155
  /^([A-Z][a-zA-Z0-9]*\.traits\.)?[A-Z][a-zA-Z0-9]*$/,
2068
2156
  'Trait reference must be "TraitName" or "Alias.traits.TraitName"'
@@ -2123,6 +2211,15 @@ var OrbitalDefinitionSchema = z.object({
2123
2211
  services: z.array(ServiceRefSchema).optional(),
2124
2212
  // Components (inline or reference)
2125
2213
  entity: EntityRefSchema,
2214
+ // Mirrors the `OrbitalDefinition.auxiliaryEntities` type field — WAS
2215
+ // undeclared here, so `OrbitalSchemaSchema.safeParse` (every load through
2216
+ // `external-loader.ts`) silently stripped it on every externally-loaded
2217
+ // orbital (zod drops unrecognized keys by default), while a schema parsed
2218
+ // directly via `JSON.parse` kept it. Found via the entity-field auto-merge
2219
+ // rebind-target fallback landing on the wrong entity for any RECURSIVELY
2220
+ // loaded `uses` file (`packages/almadar-runtime/src/resolver/
2221
+ // reference-resolver.ts`'s `mergeImportedEntityFieldsIntoOrbital`).
2222
+ auxiliaryEntities: z.array(EntityRefSchema).optional(),
2126
2223
  traits: z.array(TraitRefSchema),
2127
2224
  pages: z.array(PageRefSchema),
2128
2225
  // Event interface (trait-centric model) - computed by resolver
@@ -2130,6 +2227,10 @@ var OrbitalDefinitionSchema = z.object({
2130
2227
  listens: z.array(ComputedEventListenerSchema).optional(),
2131
2228
  // Filter for exposed events (trait-centric model)
2132
2229
  exposes: z.array(z.string()).optional(),
2230
+ // This orbital's own declared knobs (§4.5)
2231
+ config: DeclaredTraitConfigSchema.optional(),
2232
+ // Transient — set by lowering, cleared by inline/resolve
2233
+ reference: OrbitalRefObjectSchema.optional(),
2133
2234
  // Context fields - persisted throughout orbital lifecycle
2134
2235
  domainContext: DomainContextSchema.optional(),
2135
2236
  design: DesignPreferencesSchema.optional(),
@@ -2141,18 +2242,6 @@ function isOrbitalDefinition(orbital) {
2141
2242
  return "entity" in orbital;
2142
2243
  }
2143
2244
  var OrbitalUnitSchema = OrbitalSchema;
2144
- var OrbitalConfigSchema = z.object({
2145
- theme: z.object({
2146
- primary: z.string().optional(),
2147
- secondary: z.string().optional(),
2148
- mode: z.enum(["light", "dark", "system"]).optional()
2149
- }).optional(),
2150
- features: z.record(z.boolean()).optional(),
2151
- api: z.object({
2152
- baseUrl: z.string().optional(),
2153
- timeout: z.number().optional()
2154
- }).optional()
2155
- });
2156
2245
  var ConfigProvenanceRecordSchema = z.object({
2157
2246
  trait: z.string(),
2158
2247
  patternPath: z.string().optional(),
@@ -2178,7 +2267,7 @@ var OrbitalSchemaSchema = z.object({
2178
2267
  customPatterns: CustomPatternMapSchema,
2179
2268
  orbitals: z.array(OrbitalSchema).min(1, "At least one orbital is required"),
2180
2269
  services: z.array(ServiceDefinitionSchema).optional(),
2181
- config: OrbitalConfigSchema.optional(),
2270
+ config: DeclaredTraitConfigSchema.optional(),
2182
2271
  _metadata: SchemaMetadataSchema.optional(),
2183
2272
  // V4 identity — optional/dual-carry until the Phase-7 flip. Present on
2184
2273
  // id-carrying `.orb` files so `parseOrbitalSchema` preserves them instead
@@ -2484,11 +2573,12 @@ function getInteractionModelForDomain(domain) {
2484
2573
  // src/patterns/patterns-registry.json
2485
2574
  var patterns_registry_default = {
2486
2575
  version: "1.0.0",
2487
- exportedAt: "2026-09-05T01:37:56.135Z",
2576
+ exportedAt: "2026-09-07T02:55:20.374Z",
2488
2577
  patterns: {
2489
2578
  "entity-table": {
2490
2579
  type: "entity-table",
2491
2580
  category: "display",
2581
+ sourceFile: "components/core/organisms/DataTable.tsx",
2492
2582
  tier: "organisms",
2493
2583
  family: "core",
2494
2584
  description: "Data table with columns and sorting",
@@ -2735,7 +2825,8 @@ var patterns_registry_default = {
2735
2825
  event: {
2736
2826
  types: [
2737
2827
  "string"
2738
- ]
2828
+ ],
2829
+ kind: "event"
2739
2830
  },
2740
2831
  navigatesTo: {
2741
2832
  types: [
@@ -2802,7 +2893,8 @@ var patterns_registry_default = {
2802
2893
  event: {
2803
2894
  types: [
2804
2895
  "string"
2805
- ]
2896
+ ],
2897
+ kind: "event"
2806
2898
  }
2807
2899
  },
2808
2900
  propertyRequired: [
@@ -2874,7 +2966,8 @@ var patterns_registry_default = {
2874
2966
  event: {
2875
2967
  types: [
2876
2968
  "string"
2877
- ]
2969
+ ],
2970
+ kind: "event"
2878
2971
  }
2879
2972
  },
2880
2973
  required: [
@@ -2922,7 +3015,8 @@ var patterns_registry_default = {
2922
3015
  event: {
2923
3016
  types: [
2924
3017
  "string"
2925
- ]
3018
+ ],
3019
+ kind: "event"
2926
3020
  }
2927
3021
  },
2928
3022
  required: [
@@ -2962,6 +3056,7 @@ var patterns_registry_default = {
2962
3056
  "entity-list": {
2963
3057
  type: "entity-list",
2964
3058
  category: "display",
3059
+ sourceFile: "components/core/organisms/List.tsx",
2965
3060
  tier: "organisms",
2966
3061
  family: "core",
2967
3062
  description: "Vertical list of items",
@@ -3122,7 +3217,8 @@ var patterns_registry_default = {
3122
3217
  event: {
3123
3218
  types: [
3124
3219
  "string"
3125
- ]
3220
+ ],
3221
+ kind: "event"
3126
3222
  },
3127
3223
  navigatesTo: {
3128
3224
  types: [
@@ -3271,7 +3367,6 @@ var patterns_registry_default = {
3271
3367
  types: [
3272
3368
  "object"
3273
3369
  ],
3274
- freeform: true,
3275
3370
  controlValue: true
3276
3371
  }
3277
3372
  }
@@ -3345,6 +3440,7 @@ var patterns_registry_default = {
3345
3440
  "entity-cards": {
3346
3441
  type: "entity-cards",
3347
3442
  category: "display",
3443
+ sourceFile: "components/core/organisms/CardGrid.tsx",
3348
3444
  tier: "organisms",
3349
3445
  family: "core",
3350
3446
  description: "Grid of cards for visual content",
@@ -3626,7 +3722,8 @@ var patterns_registry_default = {
3626
3722
  event: {
3627
3723
  types: [
3628
3724
  "string"
3629
- ]
3725
+ ],
3726
+ kind: "event"
3630
3727
  },
3631
3728
  navigatesTo: {
3632
3729
  types: [
@@ -3684,6 +3781,7 @@ var patterns_registry_default = {
3684
3781
  "detail-panel": {
3685
3782
  type: "detail-panel",
3686
3783
  category: "display",
3784
+ sourceFile: "components/core/organisms/DetailPanel.tsx",
3687
3785
  tier: "organisms",
3688
3786
  family: "core",
3689
3787
  description: "Detail view panel for drawers/sidebars",
@@ -3965,7 +4063,8 @@ var patterns_registry_default = {
3965
4063
  event: {
3966
4064
  types: [
3967
4065
  "string"
3968
- ]
4066
+ ],
4067
+ kind: "event"
3969
4068
  },
3970
4069
  navigatesTo: {
3971
4070
  types: [
@@ -4021,7 +4120,8 @@ var patterns_registry_default = {
4021
4120
  event: {
4022
4121
  types: [
4023
4122
  "string"
4024
- ]
4123
+ ],
4124
+ kind: "event"
4025
4125
  },
4026
4126
  navigatesTo: {
4027
4127
  types: [
@@ -4233,6 +4333,7 @@ var patterns_registry_default = {
4233
4333
  "page-header": {
4234
4334
  type: "page-header",
4235
4335
  category: "header",
4336
+ sourceFile: "components/core/molecules/PageHeader.tsx",
4236
4337
  tier: "molecules",
4237
4338
  family: "core",
4238
4339
  description: "Page title with optional breadcrumb and action buttons",
@@ -4358,7 +4459,8 @@ var patterns_registry_default = {
4358
4459
  event: {
4359
4460
  types: [
4360
4461
  "string"
4361
- ]
4462
+ ],
4463
+ kind: "event"
4362
4464
  },
4363
4465
  variant: {
4364
4466
  types: [
@@ -4498,6 +4600,7 @@ var patterns_registry_default = {
4498
4600
  form: {
4499
4601
  type: "form",
4500
4602
  category: "form",
4603
+ sourceFile: "components/core/organisms/Form.tsx",
4501
4604
  tier: "organisms",
4502
4605
  family: "core",
4503
4606
  description: "Complete form with fields and actions",
@@ -4622,7 +4725,6 @@ var patterns_registry_default = {
4622
4725
  types: [
4623
4726
  "object"
4624
4727
  ],
4625
- freeform: true,
4626
4728
  controlValue: true
4627
4729
  },
4628
4730
  options: {
@@ -5066,7 +5168,6 @@ var patterns_registry_default = {
5066
5168
  types: [
5067
5169
  "object"
5068
5170
  ],
5069
- freeform: true,
5070
5171
  controlValue: true
5071
5172
  }
5072
5173
  },
@@ -5078,7 +5179,6 @@ var patterns_registry_default = {
5078
5179
  types: [
5079
5180
  "object"
5080
5181
  ],
5081
- freeform: true,
5082
5182
  controlValue: true
5083
5183
  }
5084
5184
  },
@@ -5090,7 +5190,6 @@ var patterns_registry_default = {
5090
5190
  types: [
5091
5191
  "object"
5092
5192
  ],
5093
- freeform: true,
5094
5193
  controlValue: true
5095
5194
  }
5096
5195
  },
@@ -5102,7 +5201,6 @@ var patterns_registry_default = {
5102
5201
  types: [
5103
5202
  "object"
5104
5203
  ],
5105
- freeform: true,
5106
5204
  controlValue: true
5107
5205
  }
5108
5206
  }
@@ -5185,7 +5283,6 @@ var patterns_registry_default = {
5185
5283
  types: [
5186
5284
  "object"
5187
5285
  ],
5188
- freeform: true,
5189
5286
  controlValue: true
5190
5287
  },
5191
5288
  options: {
@@ -5390,7 +5487,6 @@ var patterns_registry_default = {
5390
5487
  types: [
5391
5488
  "object"
5392
5489
  ],
5393
- freeform: true,
5394
5490
  controlValue: true
5395
5491
  }
5396
5492
  }
@@ -5421,6 +5517,7 @@ var patterns_registry_default = {
5421
5517
  "form-section": {
5422
5518
  type: "form-section",
5423
5519
  category: "form",
5520
+ sourceFile: "components/core/organisms/Form.tsx",
5424
5521
  tier: "organisms",
5425
5522
  family: "core",
5426
5523
  description: "Alias for form \u2014 Complete form with fields and actions",
@@ -5545,7 +5642,6 @@ var patterns_registry_default = {
5545
5642
  types: [
5546
5643
  "object"
5547
5644
  ],
5548
- freeform: true,
5549
5645
  controlValue: true
5550
5646
  },
5551
5647
  options: {
@@ -5989,7 +6085,6 @@ var patterns_registry_default = {
5989
6085
  types: [
5990
6086
  "object"
5991
6087
  ],
5992
- freeform: true,
5993
6088
  controlValue: true
5994
6089
  }
5995
6090
  },
@@ -6001,7 +6096,6 @@ var patterns_registry_default = {
6001
6096
  types: [
6002
6097
  "object"
6003
6098
  ],
6004
- freeform: true,
6005
6099
  controlValue: true
6006
6100
  }
6007
6101
  },
@@ -6013,7 +6107,6 @@ var patterns_registry_default = {
6013
6107
  types: [
6014
6108
  "object"
6015
6109
  ],
6016
- freeform: true,
6017
6110
  controlValue: true
6018
6111
  }
6019
6112
  },
@@ -6025,7 +6118,6 @@ var patterns_registry_default = {
6025
6118
  types: [
6026
6119
  "object"
6027
6120
  ],
6028
- freeform: true,
6029
6121
  controlValue: true
6030
6122
  }
6031
6123
  }
@@ -6108,7 +6200,6 @@ var patterns_registry_default = {
6108
6200
  types: [
6109
6201
  "object"
6110
6202
  ],
6111
- freeform: true,
6112
6203
  controlValue: true
6113
6204
  },
6114
6205
  options: {
@@ -6313,7 +6404,6 @@ var patterns_registry_default = {
6313
6404
  types: [
6314
6405
  "object"
6315
6406
  ],
6316
- freeform: true,
6317
6407
  controlValue: true
6318
6408
  }
6319
6409
  }
@@ -6672,6 +6762,7 @@ var patterns_registry_default = {
6672
6762
  tabs: {
6673
6763
  type: "tabs",
6674
6764
  category: "navigation",
6765
+ sourceFile: "components/core/molecules/Tabs.tsx",
6675
6766
  tier: "molecules",
6676
6767
  family: "core",
6677
6768
  description: "Tab navigation within page",
@@ -6827,7 +6918,8 @@ var patterns_registry_default = {
6827
6918
  event: {
6828
6919
  types: [
6829
6920
  "string"
6830
- ]
6921
+ ],
6922
+ kind: "event"
6831
6923
  },
6832
6924
  active: {
6833
6925
  types: [
@@ -6986,7 +7078,8 @@ var patterns_registry_default = {
6986
7078
  event: {
6987
7079
  types: [
6988
7080
  "string"
6989
- ]
7081
+ ],
7082
+ kind: "event"
6990
7083
  },
6991
7084
  active: {
6992
7085
  types: [
@@ -7072,6 +7165,7 @@ var patterns_registry_default = {
7072
7165
  breadcrumb: {
7073
7166
  type: "breadcrumb",
7074
7167
  category: "navigation",
7168
+ sourceFile: "components/core/molecules/Breadcrumb.tsx",
7075
7169
  tier: "molecules",
7076
7170
  family: "core",
7077
7171
  description: "Breadcrumb navigation",
@@ -7127,7 +7221,8 @@ var patterns_registry_default = {
7127
7221
  event: {
7128
7222
  types: [
7129
7223
  "string"
7130
- ]
7224
+ ],
7225
+ kind: "event"
7131
7226
  }
7132
7227
  },
7133
7228
  required: [
@@ -7463,6 +7558,7 @@ var patterns_registry_default = {
7463
7558
  "wizard-container": {
7464
7559
  type: "wizard-container",
7465
7560
  category: "navigation",
7561
+ sourceFile: "components/core/molecules/WizardContainer.tsx",
7466
7562
  tier: "molecules",
7467
7563
  family: "core",
7468
7564
  description: "Multi-step wizard container",
@@ -7688,7 +7784,6 @@ var patterns_registry_default = {
7688
7784
  types: [
7689
7785
  "object"
7690
7786
  ],
7691
- freeform: true,
7692
7787
  controlValue: true
7693
7788
  }
7694
7789
  },
@@ -7710,7 +7805,6 @@ var patterns_registry_default = {
7710
7805
  types: [
7711
7806
  "object"
7712
7807
  ],
7713
- freeform: true,
7714
7808
  controlValue: true
7715
7809
  }
7716
7810
  },
@@ -7753,7 +7847,6 @@ var patterns_registry_default = {
7753
7847
  types: [
7754
7848
  "object"
7755
7849
  ],
7756
- freeform: true,
7757
7850
  controlValue: true
7758
7851
  }
7759
7852
  },
@@ -7765,7 +7858,6 @@ var patterns_registry_default = {
7765
7858
  types: [
7766
7859
  "object"
7767
7860
  ],
7768
- freeform: true,
7769
7861
  controlValue: true
7770
7862
  }
7771
7863
  },
@@ -7777,7 +7869,6 @@ var patterns_registry_default = {
7777
7869
  types: [
7778
7870
  "object"
7779
7871
  ],
7780
- freeform: true,
7781
7872
  controlValue: true
7782
7873
  }
7783
7874
  },
@@ -7799,7 +7890,6 @@ var patterns_registry_default = {
7799
7890
  types: [
7800
7891
  "object"
7801
7892
  ],
7802
- freeform: true,
7803
7893
  controlValue: true
7804
7894
  }
7805
7895
  },
@@ -7927,7 +8017,8 @@ var patterns_registry_default = {
7927
8017
  types: [
7928
8018
  "object"
7929
8019
  ],
7930
- cyclic: true
8020
+ cyclic: true,
8021
+ cyclicTypeName: "WizardSection"
7931
8022
  }
7932
8023
  },
7933
8024
  condition: {
@@ -7989,7 +8080,6 @@ var patterns_registry_default = {
7989
8080
  types: [
7990
8081
  "object"
7991
8082
  ],
7992
- freeform: true,
7993
8083
  controlValue: true
7994
8084
  }
7995
8085
  },
@@ -9492,8 +9582,7 @@ var patterns_registry_default = {
9492
9582
  "object"
9493
9583
  ],
9494
9584
  description: "Payload to include with the action event",
9495
- payloadFor: "action",
9496
- freeform: true
9585
+ payloadFor: "action"
9497
9586
  },
9498
9587
  hoverEvent: {
9499
9588
  types: [
@@ -10165,8 +10254,7 @@ var patterns_registry_default = {
10165
10254
  "object"
10166
10255
  ],
10167
10256
  description: "Payload to include with the action event",
10168
- payloadFor: "action",
10169
- freeform: true
10257
+ payloadFor: "action"
10170
10258
  },
10171
10259
  label: {
10172
10260
  types: [
@@ -10472,8 +10560,7 @@ var patterns_registry_default = {
10472
10560
  "object"
10473
10561
  ],
10474
10562
  description: "Payload to include with the action event",
10475
- payloadFor: "action",
10476
- freeform: true
10563
+ payloadFor: "action"
10477
10564
  }
10478
10565
  }
10479
10566
  },
@@ -11708,6 +11795,7 @@ var patterns_registry_default = {
11708
11795
  menu: {
11709
11796
  type: "menu",
11710
11797
  category: "component",
11798
+ sourceFile: "components/core/molecules/Menu.tsx",
11711
11799
  tier: "molecules",
11712
11800
  family: "core",
11713
11801
  description: "Dropdown menu",
@@ -11778,7 +11866,8 @@ var patterns_registry_default = {
11778
11866
  event: {
11779
11867
  types: [
11780
11868
  "string"
11781
- ]
11869
+ ],
11870
+ kind: "event"
11782
11871
  },
11783
11872
  url: {
11784
11873
  types: [
@@ -11802,7 +11891,8 @@ var patterns_registry_default = {
11802
11891
  types: [
11803
11892
  "object"
11804
11893
  ],
11805
- cyclic: true
11894
+ cyclic: true,
11895
+ cyclicTypeName: "MenuItem"
11806
11896
  }
11807
11897
  }
11808
11898
  },
@@ -12370,6 +12460,7 @@ var patterns_registry_default = {
12370
12460
  "conditional-wrapper": {
12371
12461
  type: "conditional-wrapper",
12372
12462
  category: "component",
12463
+ sourceFile: "components/core/atoms/ConditionalWrapper.tsx",
12373
12464
  tier: "atoms",
12374
12465
  family: "core",
12375
12466
  description: "ConditionalWrapper Atom Component A wrapper component that conditionally renders its children based on S-expression evaluation. Used for dynamic field visibility in inspection forms.",
@@ -12401,7 +12492,6 @@ var patterns_registry_default = {
12401
12492
  types: [
12402
12493
  "object"
12403
12494
  ],
12404
- freeform: true,
12405
12495
  controlValue: true
12406
12496
  }
12407
12497
  },
@@ -12413,7 +12503,6 @@ var patterns_registry_default = {
12413
12503
  types: [
12414
12504
  "object"
12415
12505
  ],
12416
- freeform: true,
12417
12506
  controlValue: true
12418
12507
  }
12419
12508
  },
@@ -12425,7 +12514,6 @@ var patterns_registry_default = {
12425
12514
  types: [
12426
12515
  "object"
12427
12516
  ],
12428
- freeform: true,
12429
12517
  controlValue: true
12430
12518
  }
12431
12519
  },
@@ -12437,7 +12525,6 @@ var patterns_registry_default = {
12437
12525
  types: [
12438
12526
  "object"
12439
12527
  ],
12440
- freeform: true,
12441
12528
  controlValue: true
12442
12529
  }
12443
12530
  }
@@ -12773,8 +12860,7 @@ var patterns_registry_default = {
12773
12860
  "object"
12774
12861
  ],
12775
12862
  description: "Payload to include with the action event",
12776
- payloadFor: "action",
12777
- freeform: true
12863
+ payloadFor: "action"
12778
12864
  },
12779
12865
  responsive: {
12780
12866
  types: [
@@ -13121,6 +13207,7 @@ var patterns_registry_default = {
13121
13207
  "form-actions": {
13122
13208
  type: "form-actions",
13123
13209
  category: "component",
13210
+ sourceFile: "components/core/molecules/ButtonGroup.tsx",
13124
13211
  tier: "molecules",
13125
13212
  family: "core",
13126
13213
  description: "ButtonGroup Molecule Component A component for grouping buttons together with connected styling. Supports both children-based and form-actions pattern (primary/secondary) usage. Uses Button atoms.",
@@ -13156,7 +13243,8 @@ var patterns_registry_default = {
13156
13243
  event: {
13157
13244
  types: [
13158
13245
  "string"
13159
- ]
13246
+ ],
13247
+ kind: "event"
13160
13248
  },
13161
13249
  navigatesTo: {
13162
13250
  types: [
@@ -13198,7 +13286,8 @@ var patterns_registry_default = {
13198
13286
  event: {
13199
13287
  types: [
13200
13288
  "string"
13201
- ]
13289
+ ],
13290
+ kind: "event"
13202
13291
  },
13203
13292
  navigatesTo: {
13204
13293
  types: [
@@ -13484,6 +13573,7 @@ var patterns_registry_default = {
13484
13573
  "floating-action-button": {
13485
13574
  type: "floating-action-button",
13486
13575
  category: "component",
13576
+ sourceFile: "components/core/molecules/FloatingActionButton.tsx",
13487
13577
  tier: "molecules",
13488
13578
  family: "core",
13489
13579
  description: "FloatingActionButton Molecule Component A floating action button that can expand into multiple actions vertically. Uses Button atom.",
@@ -13508,7 +13598,6 @@ var patterns_registry_default = {
13508
13598
  ],
13509
13599
  description: "Payload to include with the dispatched action event.",
13510
13600
  payloadFor: "action",
13511
- freeform: true,
13512
13601
  eventPayloadBrand: true
13513
13602
  },
13514
13603
  actions: {
@@ -13547,7 +13636,8 @@ var patterns_registry_default = {
13547
13636
  event: {
13548
13637
  types: [
13549
13638
  "string"
13550
- ]
13639
+ ],
13640
+ kind: "event"
13551
13641
  },
13552
13642
  variant: {
13553
13643
  types: [
@@ -14762,6 +14852,7 @@ var patterns_registry_default = {
14762
14852
  navigation: {
14763
14853
  type: "navigation",
14764
14854
  category: "navigation",
14855
+ sourceFile: "components/core/molecules/Navigation.tsx",
14765
14856
  tier: "molecules",
14766
14857
  family: "core",
14767
14858
  description: "Navigation Organism Component A navigation component with items, active indicators, icons, and badges. Uses Menu, ButtonGroup molecules and Button, Icon, Badge, Typography, Divider atoms.",
@@ -14831,7 +14922,8 @@ var patterns_registry_default = {
14831
14922
  types: [
14832
14923
  "object"
14833
14924
  ],
14834
- cyclic: true
14925
+ cyclic: true,
14926
+ cyclicTypeName: "NavigationItem"
14835
14927
  }
14836
14928
  }
14837
14929
  },
@@ -14900,6 +14992,7 @@ var patterns_registry_default = {
14900
14992
  "orbital-visualization": {
14901
14993
  type: "orbital-visualization",
14902
14994
  category: "display",
14995
+ sourceFile: "components/core/molecules/OrbitalVisualization.tsx",
14903
14996
  tier: "molecules",
14904
14997
  family: "core",
14905
14998
  description: "OrbitalVisualization Component Visualizes KFlow schemas as atomic orbitals based on complexity. Uses CSS 3D transforms for lightweight rendering without Three.js. Orbital Types (based on complexity score): - 1s (1-3): Simple sphere - Red - 2s (4-8): Larger sphere - Orange - 2p (9-15): Dumbbell shape - Yellow - 3s (16-25): Sphere with node - Green - 3p (26-40): Complex dumbbell - Blue - 3d (41-60): Cloverleaf - Indigo - 4f (61+): Multi-lobe - Violet",
@@ -14914,18 +15007,12 @@ var patterns_registry_default = {
14914
15007
  types: [
14915
15008
  "object"
14916
15009
  ],
14917
- description: "Full KFlow schema object",
15010
+ description: "Complexity-scoring summary of a KFlow schema (counts only \u2014 see {@link OrbitalVisualizationSchemaSummary}).",
14918
15011
  properties: {
14919
15012
  dataEntities: {
14920
15013
  types: [
14921
- "array"
14922
- ],
14923
- items: {
14924
- types: [
14925
- "object"
14926
- ],
14927
- freeform: true
14928
- }
15014
+ "number"
15015
+ ]
14929
15016
  },
14930
15017
  ui: {
14931
15018
  types: [
@@ -14943,14 +15030,8 @@ var patterns_registry_default = {
14943
15030
  properties: {
14944
15031
  sections: {
14945
15032
  types: [
14946
- "array"
14947
- ],
14948
- items: {
14949
- types: [
14950
- "object"
14951
- ],
14952
- freeform: true
14953
- }
15033
+ "number"
15034
+ ]
14954
15035
  }
14955
15036
  }
14956
15037
  }
@@ -14959,14 +15040,8 @@ var patterns_registry_default = {
14959
15040
  },
14960
15041
  traits: {
14961
15042
  types: [
14962
- "array"
14963
- ],
14964
- items: {
14965
- types: [
14966
- "object"
14967
- ],
14968
- freeform: true
14969
- }
15043
+ "number"
15044
+ ]
14970
15045
  }
14971
15046
  }
14972
15047
  },
@@ -15193,6 +15268,7 @@ var patterns_registry_default = {
15193
15268
  sidebar: {
15194
15269
  type: "sidebar",
15195
15270
  category: "navigation",
15271
+ sourceFile: "components/core/molecules/Sidebar.tsx",
15196
15272
  tier: "molecules",
15197
15273
  family: "core",
15198
15274
  description: "Sidebar Organism Component A sidebar component with logo, navigation items, user section, and collapse/expand. Styled to match the main Layout component with theme-aware CSS variables.",
@@ -15324,7 +15400,8 @@ var patterns_registry_default = {
15324
15400
  types: [
15325
15401
  "object"
15326
15402
  ],
15327
- cyclic: true
15403
+ cyclic: true,
15404
+ cyclicTypeName: "SidebarItem"
15328
15405
  }
15329
15406
  }
15330
15407
  },
@@ -15408,6 +15485,7 @@ var patterns_registry_default = {
15408
15485
  split: {
15409
15486
  type: "split",
15410
15487
  category: "layout",
15488
+ sourceFile: "components/core/molecules/Split.tsx",
15411
15489
  tier: "molecules",
15412
15490
  family: "core",
15413
15491
  description: "Split Component A two-column layout with configurable ratios. Perfect for sidebar/content layouts or side-by-side comparisons.",
@@ -15515,8 +15593,7 @@ var patterns_registry_default = {
15515
15593
  items: {
15516
15594
  types: [
15517
15595
  "node"
15518
- ],
15519
- freeform: true
15596
+ ]
15520
15597
  }
15521
15598
  },
15522
15599
  isLoading: {
@@ -15861,6 +15938,7 @@ var patterns_registry_default = {
15861
15938
  "dashboard-layout": {
15862
15939
  type: "dashboard-layout",
15863
15940
  category: "template",
15941
+ sourceFile: "components/core/templates/DashboardLayout.tsx",
15864
15942
  tier: "templates",
15865
15943
  family: "core",
15866
15944
  description: "DashboardLayout component",
@@ -15924,7 +16002,8 @@ var patterns_registry_default = {
15924
16002
  types: [
15925
16003
  "object"
15926
16004
  ],
15927
- cyclic: true
16005
+ cyclic: true,
16006
+ cyclicTypeName: "NavItem"
15928
16007
  }
15929
16008
  }
15930
16009
  },
@@ -16027,7 +16106,8 @@ var patterns_registry_default = {
16027
16106
  event: {
16028
16107
  types: [
16029
16108
  "string"
16030
- ]
16109
+ ],
16110
+ kind: "event"
16031
16111
  },
16032
16112
  navigatesTo: {
16033
16113
  types: [
@@ -16500,6 +16580,7 @@ var patterns_registry_default = {
16500
16580
  chart: {
16501
16581
  type: "chart",
16502
16582
  category: "visualization",
16583
+ sourceFile: "components/core/molecules/Chart.tsx",
16503
16584
  tier: "molecules",
16504
16585
  family: "core",
16505
16586
  description: "Data visualization chart supporting bar, line, pie, area, and donut types",
@@ -16771,7 +16852,8 @@ var patterns_registry_default = {
16771
16852
  event: {
16772
16853
  types: [
16773
16854
  "string"
16774
- ]
16855
+ ],
16856
+ kind: "event"
16775
16857
  },
16776
16858
  navigatesTo: {
16777
16859
  types: [
@@ -16843,6 +16925,7 @@ var patterns_registry_default = {
16843
16925
  meter: {
16844
16926
  type: "meter",
16845
16927
  category: "visualization",
16928
+ sourceFile: "components/core/molecules/Meter.tsx",
16846
16929
  tier: "molecules",
16847
16930
  family: "core",
16848
16931
  description: "Gauge/meter component for displaying a value within a range with thresholds",
@@ -16977,7 +17060,8 @@ var patterns_registry_default = {
16977
17060
  event: {
16978
17061
  types: [
16979
17062
  "string"
16980
- ]
17063
+ ],
17064
+ kind: "event"
16981
17065
  },
16982
17066
  navigatesTo: {
16983
17067
  types: [
@@ -17049,6 +17133,7 @@ var patterns_registry_default = {
17049
17133
  timeline: {
17050
17134
  type: "timeline",
17051
17135
  category: "display",
17136
+ sourceFile: "components/core/organisms/Timeline.tsx",
17052
17137
  tier: "organisms",
17053
17138
  family: "core",
17054
17139
  description: "Vertical timeline for displaying chronological events with status indicators",
@@ -17215,7 +17300,8 @@ var patterns_registry_default = {
17215
17300
  event: {
17216
17301
  types: [
17217
17302
  "string"
17218
- ]
17303
+ ],
17304
+ kind: "event"
17219
17305
  },
17220
17306
  navigatesTo: {
17221
17307
  types: [
@@ -17256,6 +17342,7 @@ var patterns_registry_default = {
17256
17342
  "media-gallery": {
17257
17343
  type: "media-gallery",
17258
17344
  category: "media",
17345
+ sourceFile: "components/core/organisms/MediaGallery.tsx",
17259
17346
  tier: "organisms",
17260
17347
  family: "core",
17261
17348
  description: "Grid gallery for images and media with lightbox, selection, and upload",
@@ -17526,7 +17613,8 @@ var patterns_registry_default = {
17526
17613
  event: {
17527
17614
  types: [
17528
17615
  "string"
17529
- ]
17616
+ ],
17617
+ kind: "event"
17530
17618
  },
17531
17619
  navigatesTo: {
17532
17620
  types: [
@@ -17707,6 +17795,7 @@ var patterns_registry_default = {
17707
17795
  "document-viewer": {
17708
17796
  type: "document-viewer",
17709
17797
  category: "display",
17798
+ sourceFile: "components/core/molecules/DocumentViewer.tsx",
17710
17799
  tier: "molecules",
17711
17800
  family: "core",
17712
17801
  description: "Document viewer for PDFs, text, HTML, and markdown with zoom and pagination",
@@ -17810,7 +17899,8 @@ var patterns_registry_default = {
17810
17899
  event: {
17811
17900
  types: [
17812
17901
  "string"
17813
- ]
17902
+ ],
17903
+ kind: "event"
17814
17904
  },
17815
17905
  navigatesTo: {
17816
17906
  types: [
@@ -17924,6 +18014,7 @@ var patterns_registry_default = {
17924
18014
  "graph-canvas": {
17925
18015
  type: "graph-canvas",
17926
18016
  category: "game",
18017
+ sourceFile: "components/core/molecules/GraphCanvas.tsx",
17927
18018
  tier: "molecules",
17928
18019
  family: "core",
17929
18020
  description: "Force-directed graph visualization for node-link data with interactive zoom, pan, and layout",
@@ -18186,7 +18277,8 @@ var patterns_registry_default = {
18186
18277
  event: {
18187
18278
  types: [
18188
18279
  "string"
18189
- ]
18280
+ ],
18281
+ kind: "event"
18190
18282
  },
18191
18283
  navigatesTo: {
18192
18284
  types: [
@@ -18809,6 +18901,7 @@ var patterns_registry_default = {
18809
18901
  "code-block": {
18810
18902
  type: "code-block",
18811
18903
  category: "component",
18904
+ sourceFile: "components/core/molecules/markdown/CodeBlock.tsx",
18812
18905
  tier: "molecules",
18813
18906
  family: "core",
18814
18907
  description: "CodeBlock Molecule Component A syntax-highlighted code block with copy-to-clipboard functionality. Preserves scroll position during re-renders. Event Contract: - Emits: UI:COPY_CODE { language, success }",
@@ -19093,6 +19186,17 @@ var patterns_registry_default = {
19093
19186
  ]
19094
19187
  }
19095
19188
  },
19189
+ naturalLanguages: {
19190
+ types: [
19191
+ "array"
19192
+ ],
19193
+ description: "Show the program in these natural languages as tabs, translating on the fly. Only meaningful for `language` 'lolo' / 'orb'; ignored otherwise. Fewer than two entries renders exactly as without the prop. `editable` wins: editing a translation is not a thing, so the English source is shown and this is ignored.",
19194
+ items: {
19195
+ types: [
19196
+ "object"
19197
+ ]
19198
+ }
19199
+ },
19096
19200
  actions: {
19097
19201
  types: [
19098
19202
  "array"
@@ -19113,7 +19217,8 @@ var patterns_registry_default = {
19113
19217
  event: {
19114
19218
  types: [
19115
19219
  "string"
19116
- ]
19220
+ ],
19221
+ kind: "event"
19117
19222
  },
19118
19223
  navigatesTo: {
19119
19224
  types: [
@@ -20373,8 +20478,7 @@ var patterns_registry_default = {
20373
20478
  "object"
20374
20479
  ],
20375
20480
  description: "Additional payload for long-press events",
20376
- payloadFor: "longPressEvent",
20377
- freeform: true
20481
+ payloadFor: "longPressEvent"
20378
20482
  },
20379
20483
  swipeLeftEvent: {
20380
20484
  types: [
@@ -21074,6 +21178,7 @@ var patterns_registry_default = {
21074
21178
  "data-grid": {
21075
21179
  type: "data-grid",
21076
21180
  category: "display",
21181
+ sourceFile: "components/core/molecules/DataGrid.tsx",
21077
21182
  tier: "molecules",
21078
21183
  family: "core",
21079
21184
  description: "DataGrid \u2014 structured records grid rendering rows over configurable columns, with sort, select, and drag-reorder.",
@@ -21299,7 +21404,8 @@ var patterns_registry_default = {
21299
21404
  event: {
21300
21405
  types: [
21301
21406
  "string"
21302
- ]
21407
+ ],
21408
+ kind: "event"
21303
21409
  },
21304
21410
  navigatesTo: {
21305
21411
  types: [
@@ -21540,6 +21646,7 @@ var patterns_registry_default = {
21540
21646
  "data-list": {
21541
21647
  type: "data-list",
21542
21648
  category: "display",
21649
+ sourceFile: "components/core/molecules/DataList.tsx",
21543
21650
  tier: "molecules",
21544
21651
  family: "core",
21545
21652
  description: "DataList component",
@@ -21745,7 +21852,8 @@ var patterns_registry_default = {
21745
21852
  event: {
21746
21853
  types: [
21747
21854
  "string"
21748
- ]
21855
+ ],
21856
+ kind: "event"
21749
21857
  },
21750
21858
  icon: {
21751
21859
  types: [
@@ -22504,8 +22612,7 @@ var patterns_registry_default = {
22504
22612
  "object"
22505
22613
  ],
22506
22614
  description: "Payload to include with the action event",
22507
- payloadFor: "action",
22508
- freeform: true
22615
+ payloadFor: "action"
22509
22616
  },
22510
22617
  onChange: {
22511
22618
  types: [
@@ -22854,8 +22961,7 @@ var patterns_registry_default = {
22854
22961
  "object"
22855
22962
  ],
22856
22963
  description: "Payload to include with the action event",
22857
- payloadFor: "action",
22858
- freeform: true
22964
+ payloadFor: "action"
22859
22965
  },
22860
22966
  className: {
22861
22967
  types: [
@@ -22947,8 +23053,7 @@ var patterns_registry_default = {
22947
23053
  "object"
22948
23054
  ],
22949
23055
  description: "Payload to include with the action event",
22950
- payloadFor: "action",
22951
- freeform: true
23056
+ payloadFor: "action"
22952
23057
  },
22953
23058
  onChange: {
22954
23059
  types: [
@@ -23093,8 +23198,7 @@ var patterns_registry_default = {
23093
23198
  "object"
23094
23199
  ],
23095
23200
  description: "Payload to include with the action event",
23096
- payloadFor: "action",
23097
- freeform: true
23201
+ payloadFor: "action"
23098
23202
  },
23099
23203
  onFiles: {
23100
23204
  types: [
@@ -23251,8 +23355,7 @@ var patterns_registry_default = {
23251
23355
  "object"
23252
23356
  ],
23253
23357
  description: "Optional payload to include with the load-more event",
23254
- payloadFor: "loadMoreEvent",
23255
- freeform: true
23358
+ payloadFor: "loadMoreEvent"
23256
23359
  },
23257
23360
  isLoading: {
23258
23361
  types: [
@@ -23336,6 +23439,7 @@ var patterns_registry_default = {
23336
23439
  carousel: {
23337
23440
  type: "carousel",
23338
23441
  category: "component",
23442
+ sourceFile: "components/core/molecules/Carousel.tsx",
23339
23443
  tier: "molecules",
23340
23444
  family: "core",
23341
23445
  description: "Carousel component",
@@ -23354,8 +23458,23 @@ var patterns_registry_default = {
23354
23458
  types: [
23355
23459
  "object"
23356
23460
  ],
23357
- freeform: true,
23358
- genericParam: true
23461
+ properties: {
23462
+ id: {
23463
+ types: [
23464
+ "string"
23465
+ ]
23466
+ },
23467
+ title: {
23468
+ types: [
23469
+ "string"
23470
+ ]
23471
+ },
23472
+ image: {
23473
+ types: [
23474
+ "asset"
23475
+ ]
23476
+ }
23477
+ }
23359
23478
  }
23360
23479
  },
23361
23480
  renderItem: {
@@ -23367,7 +23486,29 @@ var patterns_registry_default = {
23367
23486
  callbackArgs: [
23368
23487
  {
23369
23488
  name: "item",
23370
- type: "object"
23489
+ type: "object",
23490
+ schema: {
23491
+ types: [
23492
+ "object"
23493
+ ],
23494
+ properties: {
23495
+ id: {
23496
+ types: [
23497
+ "string"
23498
+ ]
23499
+ },
23500
+ title: {
23501
+ types: [
23502
+ "string"
23503
+ ]
23504
+ },
23505
+ image: {
23506
+ types: [
23507
+ "asset"
23508
+ ]
23509
+ }
23510
+ }
23511
+ }
23371
23512
  },
23372
23513
  {
23373
23514
  name: "index",
@@ -23385,7 +23526,29 @@ var patterns_registry_default = {
23385
23526
  callbackArgs: [
23386
23527
  {
23387
23528
  name: "item",
23388
- type: "object"
23529
+ type: "object",
23530
+ schema: {
23531
+ types: [
23532
+ "object"
23533
+ ],
23534
+ properties: {
23535
+ id: {
23536
+ types: [
23537
+ "string"
23538
+ ]
23539
+ },
23540
+ title: {
23541
+ types: [
23542
+ "string"
23543
+ ]
23544
+ },
23545
+ image: {
23546
+ types: [
23547
+ "asset"
23548
+ ]
23549
+ }
23550
+ }
23551
+ }
23389
23552
  },
23390
23553
  {
23391
23554
  name: "index",
@@ -23449,7 +23612,12 @@ var patterns_registry_default = {
23449
23612
  ],
23450
23613
  description: "Payload to include with the slide change event",
23451
23614
  payloadFor: "slideChangeEvent",
23452
- freeform: true
23615
+ mapValue: {
23616
+ types: [
23617
+ "object"
23618
+ ],
23619
+ jsonValueBrand: true
23620
+ }
23453
23621
  },
23454
23622
  className: {
23455
23623
  types: [
@@ -23485,8 +23653,7 @@ var patterns_registry_default = {
23485
23653
  "object"
23486
23654
  ],
23487
23655
  description: "Payload to include with the refresh event",
23488
- payloadFor: "refreshEvent",
23489
- freeform: true
23656
+ payloadFor: "refreshEvent"
23490
23657
  },
23491
23658
  threshold: {
23492
23659
  types: [
@@ -23584,8 +23751,7 @@ var patterns_registry_default = {
23584
23751
  "object"
23585
23752
  ],
23586
23753
  description: "reorderPayload prop",
23587
- payloadFor: "reorderEvent",
23588
- freeform: true
23754
+ payloadFor: "reorderEvent"
23589
23755
  },
23590
23756
  dragHandlePosition: {
23591
23757
  types: [
@@ -23609,6 +23775,7 @@ var patterns_registry_default = {
23609
23775
  "swipeable-row": {
23610
23776
  type: "swipeable-row",
23611
23777
  category: "component",
23778
+ sourceFile: "components/core/molecules/SwipeableRow.tsx",
23612
23779
  tier: "molecules",
23613
23780
  family: "core",
23614
23781
  description: "SwipeableRow component",
@@ -23656,14 +23823,15 @@ var patterns_registry_default = {
23656
23823
  event: {
23657
23824
  types: [
23658
23825
  "string"
23659
- ]
23826
+ ],
23827
+ kind: "event"
23660
23828
  },
23661
23829
  eventPayload: {
23662
23830
  types: [
23663
23831
  "object"
23664
23832
  ],
23665
- freeform: true,
23666
- eventPayloadBrand: true
23833
+ eventPayloadBrand: true,
23834
+ payloadFor: "event"
23667
23835
  }
23668
23836
  },
23669
23837
  required: [
@@ -23710,14 +23878,15 @@ var patterns_registry_default = {
23710
23878
  event: {
23711
23879
  types: [
23712
23880
  "string"
23713
- ]
23881
+ ],
23882
+ kind: "event"
23714
23883
  },
23715
23884
  eventPayload: {
23716
23885
  types: [
23717
23886
  "object"
23718
23887
  ],
23719
- freeform: true,
23720
- eventPayloadBrand: true
23888
+ eventPayloadBrand: true,
23889
+ payloadFor: "event"
23721
23890
  }
23722
23891
  },
23723
23892
  required: [
@@ -23746,8 +23915,8 @@ var patterns_registry_default = {
23746
23915
  "object"
23747
23916
  ],
23748
23917
  description: "itemData prop",
23749
- freeform: true,
23750
- eventPayloadBrand: true
23918
+ kind: "entity",
23919
+ cardinality: "record"
23751
23920
  },
23752
23921
  className: {
23753
23922
  types: [
@@ -28736,6 +28905,7 @@ var patterns_registry_default = {
28736
28905
  "file-tree": {
28737
28906
  type: "file-tree",
28738
28907
  category: "component",
28908
+ sourceFile: "components/core/molecules/FileTree.tsx",
28739
28909
  tier: "molecules",
28740
28910
  family: "core",
28741
28911
  description: "FileTree component",
@@ -28783,7 +28953,8 @@ var patterns_registry_default = {
28783
28953
  types: [
28784
28954
  "object"
28785
28955
  ],
28786
- cyclic: true
28956
+ cyclic: true,
28957
+ cyclicTypeName: "FileTreeNode"
28787
28958
  }
28788
28959
  },
28789
28960
  size: {
@@ -29853,6 +30024,7 @@ var patterns_registry_default = {
29853
30024
  "reply-tree": {
29854
30025
  type: "reply-tree",
29855
30026
  category: "display",
30027
+ sourceFile: "components/core/molecules/ReplyTree.tsx",
29856
30028
  tier: "molecules",
29857
30029
  family: "core",
29858
30030
  description: "ReplyTree component",
@@ -29922,7 +30094,8 @@ var patterns_registry_default = {
29922
30094
  "object",
29923
30095
  "array"
29924
30096
  ],
29925
- cyclic: true
30097
+ cyclic: true,
30098
+ cyclicTypeName: "ReplyNodeRow"
29926
30099
  }
29927
30100
  }
29928
30101
  },
@@ -33076,6 +33249,7 @@ var patterns_registry_default = {
33076
33249
  "doc-sidebar": {
33077
33250
  type: "doc-sidebar",
33078
33251
  category: "navigation",
33252
+ sourceFile: "components/core/molecules/DocSidebar.tsx",
33079
33253
  tier: "molecules",
33080
33254
  family: "core",
33081
33255
  description: "DocSidebar component",
@@ -33115,7 +33289,8 @@ var patterns_registry_default = {
33115
33289
  types: [
33116
33290
  "object"
33117
33291
  ],
33118
- cyclic: true
33292
+ cyclic: true,
33293
+ cyclicTypeName: "DocSidebarItem"
33119
33294
  }
33120
33295
  },
33121
33296
  active: {
@@ -34020,84 +34195,540 @@ var patterns_registry_default = {
34020
34195
  "object"
34021
34196
  ],
34022
34197
  properties: {
34023
- source: {
34024
- types: [
34025
- "string"
34026
- ]
34027
- },
34028
- field: {
34029
- types: [
34030
- "string"
34031
- ]
34032
- }
34033
- }
34034
- }
34035
- },
34036
- items: {
34037
- types: [
34038
- "array"
34039
- ],
34040
- description: "Alias for stats (schema compatibility)",
34041
- items: {
34042
- types: [
34043
- "object"
34044
- ],
34045
- properties: {
34046
- source: {
34047
- types: [
34048
- "string"
34049
- ]
34050
- },
34051
- field: {
34052
- types: [
34053
- "string"
34054
- ]
34055
- }
34056
- }
34057
- }
34058
- },
34059
- elements: {
34060
- types: [
34061
- "array"
34062
- ],
34063
- description: "Schema-style elements array (alternative to stats). Converted to stats internally for backwards compatibility.",
34064
- items: {
34065
- types: [
34066
- "object"
34067
- ],
34068
- properties: {
34069
- type: {
34070
- types: [
34071
- "string"
34072
- ]
34073
- },
34074
- bind: {
34075
- types: [
34076
- "string"
34077
- ]
34078
- },
34079
- position: {
34080
- types: [
34081
- "string"
34082
- ]
34083
- },
34084
- label: {
34085
- types: [
34086
- "string"
34087
- ]
34088
- },
34089
- value: {
34090
- types: [
34091
- "number",
34092
- "string"
34093
- ]
34094
- },
34095
- icon: {
34096
- types: [
34097
- "icon",
34098
- "string"
34099
- ]
34100
- },
34198
+ assetUrl: {
34199
+ types: [
34200
+ "object"
34201
+ ],
34202
+ properties: {
34203
+ url: {
34204
+ types: [
34205
+ "asset"
34206
+ ]
34207
+ },
34208
+ role: {
34209
+ types: [
34210
+ "string"
34211
+ ]
34212
+ },
34213
+ category: {
34214
+ types: [
34215
+ "string"
34216
+ ]
34217
+ },
34218
+ animations: {
34219
+ types: [
34220
+ "array"
34221
+ ],
34222
+ items: {
34223
+ types: [
34224
+ "string"
34225
+ ]
34226
+ }
34227
+ },
34228
+ style: {
34229
+ types: [
34230
+ "string"
34231
+ ],
34232
+ enumValues: [
34233
+ "pixel",
34234
+ "vector",
34235
+ "hd",
34236
+ "1-bit",
34237
+ "isometric"
34238
+ ]
34239
+ },
34240
+ variant: {
34241
+ types: [
34242
+ "string"
34243
+ ]
34244
+ },
34245
+ dimension: {
34246
+ types: [
34247
+ "string"
34248
+ ],
34249
+ enumValues: [
34250
+ "2d",
34251
+ "3d"
34252
+ ]
34253
+ },
34254
+ aspect: {
34255
+ types: [
34256
+ "string"
34257
+ ],
34258
+ enumValues: [
34259
+ "1:1",
34260
+ "16:9",
34261
+ "5:7",
34262
+ "8:1"
34263
+ ]
34264
+ },
34265
+ atlas: {
34266
+ types: [
34267
+ "asset"
34268
+ ]
34269
+ },
34270
+ sprite: {
34271
+ types: [
34272
+ "string"
34273
+ ]
34274
+ },
34275
+ name: {
34276
+ types: [
34277
+ "string"
34278
+ ]
34279
+ },
34280
+ thumbnailUrl: {
34281
+ types: [
34282
+ "string"
34283
+ ]
34284
+ }
34285
+ },
34286
+ required: [
34287
+ "url",
34288
+ "role",
34289
+ "category"
34290
+ ]
34291
+ },
34292
+ iconUrl: {
34293
+ types: [
34294
+ "object"
34295
+ ],
34296
+ properties: {
34297
+ url: {
34298
+ types: [
34299
+ "asset"
34300
+ ]
34301
+ },
34302
+ role: {
34303
+ types: [
34304
+ "string"
34305
+ ]
34306
+ },
34307
+ category: {
34308
+ types: [
34309
+ "string"
34310
+ ]
34311
+ },
34312
+ animations: {
34313
+ types: [
34314
+ "array"
34315
+ ],
34316
+ items: {
34317
+ types: [
34318
+ "string"
34319
+ ]
34320
+ }
34321
+ },
34322
+ style: {
34323
+ types: [
34324
+ "string"
34325
+ ],
34326
+ enumValues: [
34327
+ "pixel",
34328
+ "vector",
34329
+ "hd",
34330
+ "1-bit",
34331
+ "isometric"
34332
+ ]
34333
+ },
34334
+ variant: {
34335
+ types: [
34336
+ "string"
34337
+ ]
34338
+ },
34339
+ dimension: {
34340
+ types: [
34341
+ "string"
34342
+ ],
34343
+ enumValues: [
34344
+ "2d",
34345
+ "3d"
34346
+ ]
34347
+ },
34348
+ aspect: {
34349
+ types: [
34350
+ "string"
34351
+ ],
34352
+ enumValues: [
34353
+ "1:1",
34354
+ "16:9",
34355
+ "5:7",
34356
+ "8:1"
34357
+ ]
34358
+ },
34359
+ atlas: {
34360
+ types: [
34361
+ "asset"
34362
+ ]
34363
+ },
34364
+ sprite: {
34365
+ types: [
34366
+ "string"
34367
+ ]
34368
+ },
34369
+ name: {
34370
+ types: [
34371
+ "string"
34372
+ ]
34373
+ },
34374
+ thumbnailUrl: {
34375
+ types: [
34376
+ "string"
34377
+ ]
34378
+ }
34379
+ },
34380
+ required: [
34381
+ "url",
34382
+ "role",
34383
+ "category"
34384
+ ]
34385
+ },
34386
+ label: {
34387
+ types: [
34388
+ "string"
34389
+ ]
34390
+ },
34391
+ value: {
34392
+ types: [
34393
+ "number",
34394
+ "string"
34395
+ ]
34396
+ },
34397
+ max: {
34398
+ types: [
34399
+ "number"
34400
+ ]
34401
+ },
34402
+ source: {
34403
+ types: [
34404
+ "string"
34405
+ ]
34406
+ },
34407
+ field: {
34408
+ types: [
34409
+ "string"
34410
+ ]
34411
+ },
34412
+ format: {
34413
+ types: [
34414
+ "string"
34415
+ ]
34416
+ },
34417
+ icon: {
34418
+ types: [
34419
+ "icon",
34420
+ "string"
34421
+ ]
34422
+ },
34423
+ variant: {
34424
+ types: [
34425
+ "string"
34426
+ ]
34427
+ },
34428
+ className: {
34429
+ types: [
34430
+ "string"
34431
+ ]
34432
+ }
34433
+ },
34434
+ required: [
34435
+ "label"
34436
+ ]
34437
+ }
34438
+ },
34439
+ items: {
34440
+ types: [
34441
+ "array"
34442
+ ],
34443
+ description: "Alias for stats (schema compatibility)",
34444
+ items: {
34445
+ types: [
34446
+ "object"
34447
+ ],
34448
+ properties: {
34449
+ assetUrl: {
34450
+ types: [
34451
+ "object"
34452
+ ],
34453
+ properties: {
34454
+ url: {
34455
+ types: [
34456
+ "asset"
34457
+ ]
34458
+ },
34459
+ role: {
34460
+ types: [
34461
+ "string"
34462
+ ]
34463
+ },
34464
+ category: {
34465
+ types: [
34466
+ "string"
34467
+ ]
34468
+ },
34469
+ animations: {
34470
+ types: [
34471
+ "array"
34472
+ ],
34473
+ items: {
34474
+ types: [
34475
+ "string"
34476
+ ]
34477
+ }
34478
+ },
34479
+ style: {
34480
+ types: [
34481
+ "string"
34482
+ ],
34483
+ enumValues: [
34484
+ "pixel",
34485
+ "vector",
34486
+ "hd",
34487
+ "1-bit",
34488
+ "isometric"
34489
+ ]
34490
+ },
34491
+ variant: {
34492
+ types: [
34493
+ "string"
34494
+ ]
34495
+ },
34496
+ dimension: {
34497
+ types: [
34498
+ "string"
34499
+ ],
34500
+ enumValues: [
34501
+ "2d",
34502
+ "3d"
34503
+ ]
34504
+ },
34505
+ aspect: {
34506
+ types: [
34507
+ "string"
34508
+ ],
34509
+ enumValues: [
34510
+ "1:1",
34511
+ "16:9",
34512
+ "5:7",
34513
+ "8:1"
34514
+ ]
34515
+ },
34516
+ atlas: {
34517
+ types: [
34518
+ "asset"
34519
+ ]
34520
+ },
34521
+ sprite: {
34522
+ types: [
34523
+ "string"
34524
+ ]
34525
+ },
34526
+ name: {
34527
+ types: [
34528
+ "string"
34529
+ ]
34530
+ },
34531
+ thumbnailUrl: {
34532
+ types: [
34533
+ "string"
34534
+ ]
34535
+ }
34536
+ },
34537
+ required: [
34538
+ "url",
34539
+ "role",
34540
+ "category"
34541
+ ]
34542
+ },
34543
+ iconUrl: {
34544
+ types: [
34545
+ "object"
34546
+ ],
34547
+ properties: {
34548
+ url: {
34549
+ types: [
34550
+ "asset"
34551
+ ]
34552
+ },
34553
+ role: {
34554
+ types: [
34555
+ "string"
34556
+ ]
34557
+ },
34558
+ category: {
34559
+ types: [
34560
+ "string"
34561
+ ]
34562
+ },
34563
+ animations: {
34564
+ types: [
34565
+ "array"
34566
+ ],
34567
+ items: {
34568
+ types: [
34569
+ "string"
34570
+ ]
34571
+ }
34572
+ },
34573
+ style: {
34574
+ types: [
34575
+ "string"
34576
+ ],
34577
+ enumValues: [
34578
+ "pixel",
34579
+ "vector",
34580
+ "hd",
34581
+ "1-bit",
34582
+ "isometric"
34583
+ ]
34584
+ },
34585
+ variant: {
34586
+ types: [
34587
+ "string"
34588
+ ]
34589
+ },
34590
+ dimension: {
34591
+ types: [
34592
+ "string"
34593
+ ],
34594
+ enumValues: [
34595
+ "2d",
34596
+ "3d"
34597
+ ]
34598
+ },
34599
+ aspect: {
34600
+ types: [
34601
+ "string"
34602
+ ],
34603
+ enumValues: [
34604
+ "1:1",
34605
+ "16:9",
34606
+ "5:7",
34607
+ "8:1"
34608
+ ]
34609
+ },
34610
+ atlas: {
34611
+ types: [
34612
+ "asset"
34613
+ ]
34614
+ },
34615
+ sprite: {
34616
+ types: [
34617
+ "string"
34618
+ ]
34619
+ },
34620
+ name: {
34621
+ types: [
34622
+ "string"
34623
+ ]
34624
+ },
34625
+ thumbnailUrl: {
34626
+ types: [
34627
+ "string"
34628
+ ]
34629
+ }
34630
+ },
34631
+ required: [
34632
+ "url",
34633
+ "role",
34634
+ "category"
34635
+ ]
34636
+ },
34637
+ label: {
34638
+ types: [
34639
+ "string"
34640
+ ]
34641
+ },
34642
+ value: {
34643
+ types: [
34644
+ "number",
34645
+ "string"
34646
+ ]
34647
+ },
34648
+ max: {
34649
+ types: [
34650
+ "number"
34651
+ ]
34652
+ },
34653
+ source: {
34654
+ types: [
34655
+ "string"
34656
+ ]
34657
+ },
34658
+ field: {
34659
+ types: [
34660
+ "string"
34661
+ ]
34662
+ },
34663
+ format: {
34664
+ types: [
34665
+ "string"
34666
+ ]
34667
+ },
34668
+ icon: {
34669
+ types: [
34670
+ "icon",
34671
+ "string"
34672
+ ]
34673
+ },
34674
+ variant: {
34675
+ types: [
34676
+ "string"
34677
+ ]
34678
+ },
34679
+ className: {
34680
+ types: [
34681
+ "string"
34682
+ ]
34683
+ }
34684
+ },
34685
+ required: [
34686
+ "label"
34687
+ ]
34688
+ }
34689
+ },
34690
+ elements: {
34691
+ types: [
34692
+ "array"
34693
+ ],
34694
+ description: "Schema-style elements array (alternative to stats). Converted to stats internally for backwards compatibility.",
34695
+ items: {
34696
+ types: [
34697
+ "object"
34698
+ ],
34699
+ properties: {
34700
+ type: {
34701
+ types: [
34702
+ "string"
34703
+ ]
34704
+ },
34705
+ bind: {
34706
+ types: [
34707
+ "string"
34708
+ ]
34709
+ },
34710
+ position: {
34711
+ types: [
34712
+ "string"
34713
+ ]
34714
+ },
34715
+ label: {
34716
+ types: [
34717
+ "string"
34718
+ ]
34719
+ },
34720
+ value: {
34721
+ types: [
34722
+ "number",
34723
+ "string"
34724
+ ]
34725
+ },
34726
+ icon: {
34727
+ types: [
34728
+ "icon",
34729
+ "string"
34730
+ ]
34731
+ },
34101
34732
  assetUrl: {
34102
34733
  types: [
34103
34734
  "object"
@@ -34246,6 +34877,7 @@ var patterns_registry_default = {
34246
34877
  "game-menu": {
34247
34878
  type: "game-menu",
34248
34879
  category: "game",
34880
+ sourceFile: "components/game/molecules/GameMenu.tsx",
34249
34881
  tier: "molecules",
34250
34882
  family: "game",
34251
34883
  description: "GameMenu component",
@@ -34295,7 +34927,8 @@ var patterns_registry_default = {
34295
34927
  event: {
34296
34928
  types: [
34297
34929
  "string"
34298
- ]
34930
+ ],
34931
+ kind: "event"
34299
34932
  },
34300
34933
  navigatesTo: {
34301
34934
  types: [
@@ -34348,7 +34981,8 @@ var patterns_registry_default = {
34348
34981
  event: {
34349
34982
  types: [
34350
34983
  "string"
34351
- ]
34984
+ ],
34985
+ kind: "event"
34352
34986
  },
34353
34987
  navigatesTo: {
34354
34988
  types: [
@@ -34404,7 +35038,8 @@ var patterns_registry_default = {
34404
35038
  event: {
34405
35039
  types: [
34406
35040
  "string"
34407
- ]
35041
+ ],
35042
+ kind: "event"
34408
35043
  },
34409
35044
  navigatesTo: {
34410
35045
  types: [
@@ -38717,6 +39352,7 @@ var patterns_registry_default = {
38717
39352
  "table-view": {
38718
39353
  type: "table-view",
38719
39354
  category: "display",
39355
+ sourceFile: "components/core/molecules/TableView.tsx",
38720
39356
  tier: "molecules",
38721
39357
  family: "core",
38722
39358
  description: "TableView \u2014 sortable, selectable data table rendering rows over configurable columns, with inline row actions and grouping.",
@@ -38986,7 +39622,8 @@ var patterns_registry_default = {
38986
39622
  event: {
38987
39623
  types: [
38988
39624
  "string"
38989
- ]
39625
+ ],
39626
+ kind: "event"
38990
39627
  },
38991
39628
  icon: {
38992
39629
  types: [
@@ -40155,6 +40792,7 @@ var patterns_registry_default = {
40155
40792
  "subagent-trace-panel": {
40156
40793
  type: "subagent-trace-panel",
40157
40794
  category: "display",
40795
+ sourceFile: "components/core/organisms/SubagentTracePanel.tsx",
40158
40796
  tier: "organisms",
40159
40797
  family: "core",
40160
40798
  description: "SubagentTracePanel component",
@@ -40282,7 +40920,102 @@ var patterns_registry_default = {
40282
40920
  types: [
40283
40921
  "object"
40284
40922
  ],
40285
- freeform: true
40923
+ properties: {
40924
+ id: {
40925
+ types: [
40926
+ "string"
40927
+ ]
40928
+ },
40929
+ name: {
40930
+ types: [
40931
+ "string"
40932
+ ]
40933
+ },
40934
+ role: {
40935
+ types: [
40936
+ "string"
40937
+ ]
40938
+ },
40939
+ orbitalName: {
40940
+ types: [
40941
+ "string"
40942
+ ]
40943
+ },
40944
+ parentId: {
40945
+ types: [
40946
+ "string"
40947
+ ]
40948
+ },
40949
+ status: {
40950
+ types: [
40951
+ "string"
40952
+ ],
40953
+ enumValues: [
40954
+ "running",
40955
+ "complete",
40956
+ "error"
40957
+ ]
40958
+ },
40959
+ task: {
40960
+ types: [
40961
+ "string"
40962
+ ]
40963
+ },
40964
+ messages: {
40965
+ types: [
40966
+ "array"
40967
+ ],
40968
+ items: {
40969
+ types: [
40970
+ "object"
40971
+ ],
40972
+ properties: {
40973
+ message: {
40974
+ types: [
40975
+ "string"
40976
+ ]
40977
+ },
40978
+ tool: {
40979
+ types: [
40980
+ "string"
40981
+ ]
40982
+ },
40983
+ timestamp: {
40984
+ types: [
40985
+ "number"
40986
+ ]
40987
+ }
40988
+ },
40989
+ required: [
40990
+ "message",
40991
+ "timestamp"
40992
+ ]
40993
+ }
40994
+ },
40995
+ durationMs: {
40996
+ types: [
40997
+ "number"
40998
+ ]
40999
+ },
41000
+ timeline: {
41001
+ types: [
41002
+ "array"
41003
+ ],
41004
+ items: {
41005
+ types: [
41006
+ "object"
41007
+ ]
41008
+ }
41009
+ }
41010
+ },
41011
+ required: [
41012
+ "id",
41013
+ "name",
41014
+ "role",
41015
+ "status",
41016
+ "task",
41017
+ "messages"
41018
+ ]
40286
41019
  }
40287
41020
  },
40288
41021
  focusedOrbital: {
@@ -40327,8 +41060,7 @@ var patterns_registry_default = {
40327
41060
  items: {
40328
41061
  types: [
40329
41062
  "object"
40330
- ],
40331
- freeform: true
41063
+ ]
40332
41064
  }
40333
41065
  },
40334
41066
  coordinatorMessages: {
@@ -40340,7 +41072,81 @@ var patterns_registry_default = {
40340
41072
  types: [
40341
41073
  "object"
40342
41074
  ],
40343
- freeform: true
41075
+ properties: {
41076
+ role: {
41077
+ types: [
41078
+ "string"
41079
+ ],
41080
+ enumValues: [
41081
+ "system",
41082
+ "user",
41083
+ "assistant",
41084
+ "tool"
41085
+ ]
41086
+ },
41087
+ content: {
41088
+ types: [
41089
+ "string"
41090
+ ]
41091
+ },
41092
+ toolCalls: {
41093
+ types: [
41094
+ "array"
41095
+ ],
41096
+ items: {
41097
+ types: [
41098
+ "object"
41099
+ ],
41100
+ properties: {
41101
+ id: {
41102
+ types: [
41103
+ "string"
41104
+ ]
41105
+ },
41106
+ name: {
41107
+ types: [
41108
+ "string"
41109
+ ]
41110
+ },
41111
+ args: {
41112
+ types: [
41113
+ "object"
41114
+ ],
41115
+ mapValue: {
41116
+ types: [
41117
+ "object"
41118
+ ],
41119
+ jsonValueBrand: true
41120
+ }
41121
+ }
41122
+ },
41123
+ required: [
41124
+ "id",
41125
+ "name",
41126
+ "args"
41127
+ ]
41128
+ }
41129
+ },
41130
+ toolCallId: {
41131
+ types: [
41132
+ "string"
41133
+ ]
41134
+ },
41135
+ toolName: {
41136
+ types: [
41137
+ "string"
41138
+ ]
41139
+ },
41140
+ reasoningContent: {
41141
+ types: [
41142
+ "string"
41143
+ ]
41144
+ }
41145
+ },
41146
+ required: [
41147
+ "role",
41148
+ "content"
41149
+ ]
40344
41150
  }
40345
41151
  },
40346
41152
  mode: {
@@ -41527,8 +42333,7 @@ var patterns_registry_default = {
41527
42333
  "object"
41528
42334
  ],
41529
42335
  description: "Payload to include with the action event",
41530
- payloadFor: "action",
41531
- freeform: true
42336
+ payloadFor: "action"
41532
42337
  },
41533
42338
  responsive: {
41534
42339
  types: [
@@ -41698,8 +42503,7 @@ var patterns_registry_default = {
41698
42503
  "object"
41699
42504
  ],
41700
42505
  description: "Payload to include with the action event",
41701
- payloadFor: "action",
41702
- freeform: true
42506
+ payloadFor: "action"
41703
42507
  },
41704
42508
  responsive: {
41705
42509
  types: [
@@ -48712,6 +49516,21 @@ var patterns_registry_default = {
48712
49516
  ],
48713
49517
  description: "asset prop",
48714
49518
  properties: {
49519
+ url: {
49520
+ types: [
49521
+ "string"
49522
+ ]
49523
+ },
49524
+ atlas: {
49525
+ types: [
49526
+ "string"
49527
+ ]
49528
+ },
49529
+ sprite: {
49530
+ types: [
49531
+ "string"
49532
+ ]
49533
+ },
48715
49534
  name: {
48716
49535
  types: [
48717
49536
  "string"
@@ -48811,6 +49630,21 @@ var patterns_registry_default = {
48811
49630
  ],
48812
49631
  description: "asset prop",
48813
49632
  properties: {
49633
+ url: {
49634
+ types: [
49635
+ "string"
49636
+ ]
49637
+ },
49638
+ atlas: {
49639
+ types: [
49640
+ "string"
49641
+ ]
49642
+ },
49643
+ sprite: {
49644
+ types: [
49645
+ "string"
49646
+ ]
49647
+ },
48814
49648
  name: {
48815
49649
  types: [
48816
49650
  "string"
@@ -50028,6 +50862,11 @@ var patterns_registry_default = {
50028
50862
  "draw-shape"
50029
50863
  ]
50030
50864
  },
50865
+ id: {
50866
+ types: [
50867
+ "string"
50868
+ ]
50869
+ },
50031
50870
  shape: {
50032
50871
  types: [
50033
50872
  "string"
@@ -50719,6 +51558,11 @@ var patterns_registry_default = {
50719
51558
  "draw-sprite"
50720
51559
  ]
50721
51560
  },
51561
+ id: {
51562
+ types: [
51563
+ "string"
51564
+ ]
51565
+ },
50722
51566
  position: {
50723
51567
  types: [
50724
51568
  "object"
@@ -51004,6 +51848,11 @@ var patterns_registry_default = {
51004
51848
  "draw-text"
51005
51849
  ]
51006
51850
  },
51851
+ id: {
51852
+ types: [
51853
+ "string"
51854
+ ]
51855
+ },
51007
51856
  text: {
51008
51857
  types: [
51009
51858
  "string"
@@ -51948,6 +52797,7 @@ var patterns_registry_default = {
51948
52797
  "import-preview-tree": {
51949
52798
  type: "import-preview-tree",
51950
52799
  category: "component",
52800
+ sourceFile: "components/core/molecules/import/ImportPreviewTree.tsx",
51951
52801
  tier: "molecules",
51952
52802
  family: "core",
51953
52803
  description: "ImportPreviewTree component",
@@ -51988,7 +52838,6 @@ var patterns_registry_default = {
51988
52838
  types: [
51989
52839
  "object"
51990
52840
  ],
51991
- freeform: true,
51992
52841
  controlValue: true
51993
52842
  }
51994
52843
  },
@@ -54283,6 +55132,7 @@ var patterns_registry_default = {
54283
55132
  "document-panel": {
54284
55133
  type: "document-panel",
54285
55134
  category: "component",
55135
+ sourceFile: "components/core/molecules/DocumentPanel.tsx",
54286
55136
  tier: "molecules",
54287
55137
  family: "core",
54288
55138
  description: "DocumentPanel \u2014 a record rendered as one continuous document: editable title over the rich-text body, editing controls tucked into the header corner.",
@@ -54351,7 +55201,8 @@ var patterns_registry_default = {
54351
55201
  event: {
54352
55202
  types: [
54353
55203
  "string"
54354
- ]
55204
+ ],
55205
+ kind: "event"
54355
55206
  },
54356
55207
  icon: {
54357
55208
  types: [
@@ -54485,6 +55336,7 @@ var patterns_registry_default = {
54485
55336
  "document-details": {
54486
55337
  type: "document-details",
54487
55338
  category: "display",
55339
+ sourceFile: "components/core/molecules/DocumentDetails.tsx",
54488
55340
  tier: "molecules",
54489
55341
  family: "core",
54490
55342
  description: "DocumentDetails \u2014 the document's metadata as a compact settings card for the rail beside a DocumentPanel, each property committing in place.",
@@ -54607,7 +55459,6 @@ var patterns_registry_default = {
54607
55459
  types: [
54608
55460
  "object"
54609
55461
  ],
54610
- freeform: true,
54611
55462
  controlValue: true
54612
55463
  }
54613
55464
  }
@@ -54655,6 +55506,7 @@ var patterns_registry_default = {
54655
55506
  "floating-toolbar": {
54656
55507
  type: "floating-toolbar",
54657
55508
  category: "component",
55509
+ sourceFile: "components/core/molecules/FloatingToolbar.tsx",
54658
55510
  tier: "molecules",
54659
55511
  family: "core",
54660
55512
  description: "FloatingToolbar component",
@@ -54695,19 +55547,21 @@ var patterns_registry_default = {
54695
55547
  event: {
54696
55548
  types: [
54697
55549
  "string"
54698
- ]
55550
+ ],
55551
+ kind: "event"
54699
55552
  },
54700
55553
  action: {
54701
55554
  types: [
54702
55555
  "string"
54703
- ]
55556
+ ],
55557
+ kind: "event"
54704
55558
  },
54705
55559
  actionPayload: {
54706
55560
  types: [
54707
55561
  "object"
54708
55562
  ],
54709
- freeform: true,
54710
- eventPayloadBrand: true
55563
+ eventPayloadBrand: true,
55564
+ payloadFor: "action"
54711
55565
  },
54712
55566
  active: {
54713
55567
  types: [
@@ -54986,6 +55840,7 @@ var patterns_registry_default = {
54986
55840
  "command-palette": {
54987
55841
  type: "command-palette",
54988
55842
  category: "component",
55843
+ sourceFile: "components/core/molecules/CommandPalette.tsx",
54989
55844
  tier: "molecules",
54990
55845
  family: "core",
54991
55846
  description: "CommandPalette component",
@@ -55072,19 +55927,21 @@ var patterns_registry_default = {
55072
55927
  event: {
55073
55928
  types: [
55074
55929
  "string"
55075
- ]
55930
+ ],
55931
+ kind: "event"
55076
55932
  },
55077
55933
  action: {
55078
55934
  types: [
55079
55935
  "string"
55080
- ]
55936
+ ],
55937
+ kind: "event"
55081
55938
  },
55082
55939
  actionPayload: {
55083
55940
  types: [
55084
55941
  "object"
55085
55942
  ],
55086
- freeform: true,
55087
- eventPayloadBrand: true
55943
+ eventPayloadBrand: true,
55944
+ payloadFor: "action"
55088
55945
  }
55089
55946
  },
55090
55947
  required: [
@@ -55152,19 +56009,21 @@ var patterns_registry_default = {
55152
56009
  event: {
55153
56010
  types: [
55154
56011
  "string"
55155
- ]
56012
+ ],
56013
+ kind: "event"
55156
56014
  },
55157
56015
  action: {
55158
56016
  types: [
55159
56017
  "string"
55160
- ]
56018
+ ],
56019
+ kind: "event"
55161
56020
  },
55162
56021
  actionPayload: {
55163
56022
  types: [
55164
56023
  "object"
55165
56024
  ],
55166
- freeform: true,
55167
- eventPayloadBrand: true
56025
+ eventPayloadBrand: true,
56026
+ payloadFor: "action"
55168
56027
  }
55169
56028
  },
55170
56029
  required: [
@@ -55464,7 +56323,7 @@ var patterns_registry_default = {
55464
56323
  // src/patterns/integrators-registry.json
55465
56324
  var integrators_registry_default = {
55466
56325
  version: "1.0.0",
55467
- exportedAt: "2026-09-03T18:48:24.308Z",
56326
+ exportedAt: "2026-09-07T01:58:57.916Z",
55468
56327
  integrators: {
55469
56328
  github: {
55470
56329
  name: "github",
@@ -55866,7 +56725,10 @@ var integrators_registry_default = {
55866
56725
  name: "metadata",
55867
56726
  type: "object",
55868
56727
  required: false,
55869
- description: "Arbitrary key-value tags attached to the PaymentIntent (string values only)."
56728
+ description: "Arbitrary key-value tags attached to the PaymentIntent (string values only).",
56729
+ mapValue: {
56730
+ type: "string"
56731
+ }
55870
56732
  }
55871
56733
  ],
55872
56734
  responseShape: {
@@ -56334,7 +57196,10 @@ var integrators_registry_default = {
56334
57196
  name: "payload",
56335
57197
  type: "object",
56336
57198
  required: false,
56337
- description: "Event payload; defaults to an empty object."
57199
+ description: "Event payload; defaults to an empty object.",
57200
+ mapValue: {
57201
+ type: "string"
57202
+ }
56338
57203
  },
56339
57204
  {
56340
57205
  name: "secret",
@@ -57326,7 +58191,10 @@ var integrators_registry_default = {
57326
58191
  name: "buildArgs",
57327
58192
  type: "object",
57328
58193
  required: false,
57329
- description: "Build-time --build-arg values."
58194
+ description: "Build-time --build-arg values.",
58195
+ mapValue: {
58196
+ type: "string"
58197
+ }
57330
58198
  }
57331
58199
  ],
57332
58200
  responseShape: {
@@ -57379,7 +58247,10 @@ var integrators_registry_default = {
57379
58247
  name: "env",
57380
58248
  type: "object",
57381
58249
  required: false,
57382
- description: "Environment variables set inside the container."
58250
+ description: "Environment variables set inside the container.",
58251
+ mapValue: {
58252
+ type: "string"
58253
+ }
57383
58254
  },
57384
58255
  {
57385
58256
  name: "volumes",
@@ -57685,9 +58556,12 @@ var integrators_registry_default = {
57685
58556
  },
57686
58557
  {
57687
58558
  name: "metadata",
57688
- type: "IntegrationParams",
58559
+ type: "object",
57689
58560
  required: false,
57690
- description: "Arbitrary metadata stored alongside the object (in-memory backend only)."
58561
+ description: "Object metadata stored alongside the content (S3-compatible object stores carry metadata as string headers \u2014 never structured values).",
58562
+ mapValue: {
58563
+ type: "string"
58564
+ }
57691
58565
  }
57692
58566
  ],
57693
58567
  responseShape: {
@@ -57807,7 +58681,12 @@ var integrators_registry_default = {
57807
58681
  content: "string",
57808
58682
  contentType: "string",
57809
58683
  size: "number",
57810
- metadata: "IntegrationParams"
58684
+ metadata: {
58685
+ type: "object",
58686
+ mapValue: {
58687
+ type: "string"
58688
+ }
58689
+ }
57811
58690
  }
57812
58691
  },
57813
58692
  {
@@ -57940,7 +58819,8 @@ var integrators_registry_default = {
57940
58819
  name: "payload",
57941
58820
  type: "ServiceParams",
57942
58821
  required: true,
57943
- description: "Arbitrary job payload."
58822
+ description: "Job payload \u2014 the caller declares its own shape.",
58823
+ shapedBy: "payload"
57944
58824
  },
57945
58825
  {
57946
58826
  name: "delay",
@@ -57972,7 +58852,29 @@ var integrators_registry_default = {
57972
58852
  }
57973
58853
  ],
57974
58854
  responseShape: {
57975
- job: "object | null"
58855
+ job: {
58856
+ type: "QueueJob | null",
58857
+ properties: {
58858
+ id: {
58859
+ type: "string",
58860
+ required: true
58861
+ },
58862
+ payload: {
58863
+ type: "ServiceParams",
58864
+ required: true,
58865
+ description: "Whatever `enqueue` was given \u2014 the caller declares its own shape.",
58866
+ shapedBy: "payload"
58867
+ },
58868
+ enqueuedAt: {
58869
+ type: "number",
58870
+ required: true
58871
+ },
58872
+ priority: {
58873
+ type: "number",
58874
+ required: true
58875
+ }
58876
+ }
58877
+ }
57976
58878
  }
57977
58879
  },
57978
58880
  {
@@ -57988,7 +58890,29 @@ var integrators_registry_default = {
57988
58890
  ],
57989
58891
  responseShape: {
57990
58892
  status: "'pending' | 'processing' | 'completed' | 'failed'",
57991
- job: "object | null"
58893
+ job: {
58894
+ type: "QueueJob | null",
58895
+ properties: {
58896
+ id: {
58897
+ type: "string",
58898
+ required: true
58899
+ },
58900
+ payload: {
58901
+ type: "ServiceParams",
58902
+ required: true,
58903
+ description: "Whatever `enqueue` was given \u2014 the caller declares its own shape.",
58904
+ shapedBy: "payload"
58905
+ },
58906
+ enqueuedAt: {
58907
+ type: "number",
58908
+ required: true
58909
+ },
58910
+ priority: {
58911
+ type: "number",
58912
+ required: true
58913
+ }
58914
+ }
58915
+ }
57992
58916
  }
57993
58917
  },
57994
58918
  {
@@ -58005,7 +58929,8 @@ var integrators_registry_default = {
58005
58929
  name: "result",
58006
58930
  type: "ServiceParams",
58007
58931
  required: false,
58008
- description: "Result payload to attach to the job."
58932
+ description: "Result payload to attach to the job \u2014 the caller declares its own shape (not necessarily the same shape as the job's `payload`).",
58933
+ shapedBy: "result"
58009
58934
  }
58010
58935
  ],
58011
58936
  responseShape: {
@@ -58084,7 +59009,10 @@ var integrators_registry_default = {
58084
59009
  }
58085
59010
  ],
58086
59011
  responseShape: {
58087
- value: "ServiceParams"
59012
+ value: {
59013
+ type: "ServiceParams",
59014
+ shapedBy: "value"
59015
+ }
58088
59016
  }
58089
59017
  },
58090
59018
  {
@@ -58101,7 +59029,8 @@ var integrators_registry_default = {
58101
59029
  name: "value",
58102
59030
  type: "ServiceParams",
58103
59031
  required: true,
58104
- description: "Value to store."
59032
+ description: "Value to store \u2014 the caller declares its own shape.",
59033
+ shapedBy: "value"
58105
59034
  },
58106
59035
  {
58107
59036
  name: "ttl",
@@ -58228,7 +59157,8 @@ var integrators_registry_default = {
58228
59157
  name: "message",
58229
59158
  type: "ServiceParams",
58230
59159
  required: true,
58231
- description: "Message payload."
59160
+ description: "Message payload \u2014 the caller declares its own shape.",
59161
+ shapedBy: "message"
58232
59162
  }
58233
59163
  ],
58234
59164
  responseShape: {
@@ -58516,9 +59446,12 @@ var integrators_registry_default = {
58516
59446
  },
58517
59447
  {
58518
59448
  name: "attributes",
58519
- type: "IntegrationParams",
59449
+ type: "object",
58520
59450
  required: false,
58521
- description: "Key-value attributes attached to the span."
59451
+ description: "Key-value attributes attached to the span (OTel attribute values are scalar).",
59452
+ mapValue: {
59453
+ type: "string | number | boolean"
59454
+ }
58522
59455
  },
58523
59456
  {
58524
59457
  name: "traceId",
@@ -58571,9 +59504,12 @@ var integrators_registry_default = {
58571
59504
  },
58572
59505
  {
58573
59506
  name: "attributes",
58574
- type: "IntegrationParams",
59507
+ type: "object",
58575
59508
  required: false,
58576
- description: "Key-value attributes attached to the event."
59509
+ description: "Key-value attributes attached to the event (OTel attribute values are scalar).",
59510
+ mapValue: {
59511
+ type: "string | number | boolean"
59512
+ }
58577
59513
  }
58578
59514
  ],
58579
59515
  responseShape: {
@@ -58604,9 +59540,12 @@ var integrators_registry_default = {
58604
59540
  },
58605
59541
  {
58606
59542
  name: "labels",
58607
- type: "IntegrationParams",
59543
+ type: "object",
58608
59544
  required: false,
58609
- description: "Key-value labels attached to the metric (replaces prior labels on the same name)."
59545
+ description: "Key-value labels attached to the metric (replaces prior labels on the same name; OTel label values are scalar).",
59546
+ mapValue: {
59547
+ type: "string | number | boolean"
59548
+ }
58610
59549
  }
58611
59550
  ],
58612
59551
  responseShape: {
@@ -58690,7 +59629,8 @@ var integrators_registry_default = {
58690
59629
  name: "context",
58691
59630
  type: "IntegrationParams",
58692
59631
  required: false,
58693
- description: "Extra context passed through to the agent."
59632
+ description: "Extra context passed through to the agent \u2014 the caller declares its own shape.",
59633
+ shapedBy: "context"
58694
59634
  }
58695
59635
  ],
58696
59636
  responseShape: {
@@ -58816,7 +59756,10 @@ var integrators_registry_default = {
58816
59756
  }
58817
59757
  ],
58818
59758
  responseShape: {
58819
- rows: "DatabaseRow[]",
59759
+ rows: {
59760
+ type: "DatabaseRow[]",
59761
+ shapedBy: "rows"
59762
+ },
58820
59763
  rowCount: "number"
58821
59764
  }
58822
59765
  }
@@ -58982,7 +59925,7 @@ var integrators_registry_default = {
58982
59925
  // src/patterns/component-mapping.json
58983
59926
  var component_mapping_default = {
58984
59927
  version: "1.0.0",
58985
- exportedAt: "2026-09-05T01:37:56.135Z",
59928
+ exportedAt: "2026-09-07T02:55:20.374Z",
58986
59929
  mappings: {
58987
59930
  "page-header": {
58988
59931
  component: "PageHeader",
@@ -60427,7 +61370,7 @@ var component_mapping_default = {
60427
61370
  // src/patterns/event-contracts.json
60428
61371
  var event_contracts_default = {
60429
61372
  version: "1.0.0",
60430
- exportedAt: "2026-09-05T01:37:56.135Z",
61373
+ exportedAt: "2026-09-07T02:55:20.374Z",
60431
61374
  contracts: {
60432
61375
  form: {
60433
61376
  emits: [
@@ -62892,7 +63835,6 @@ function schemaToIR(schema, useCache = true) {
62892
63835
  const entity = {
62893
63836
  name: entityDef.name,
62894
63837
  description: entityDef.description,
62895
- // eslint-disable-next-line almadar/no-record-string-unknown -- icon is an optional extension not on Entity type
62896
63838
  icon: entityDef.icon,
62897
63839
  collection: entityDef.collection || entityDef.name.toLowerCase() + "s",
62898
63840
  fields: (entityDef.fields || []).filter(
@@ -62901,7 +63843,6 @@ function schemaToIR(schema, useCache = true) {
62901
63843
  name: field.name,
62902
63844
  type: field.type,
62903
63845
  tsType: inferTsType2(field.type),
62904
- // eslint-disable-next-line almadar/no-record-string-unknown -- description is an optional extension not on EntityField type
62905
63846
  description: field.description,
62906
63847
  default: field.default,
62907
63848
  required: field.required ?? false,
@@ -62929,8 +63870,7 @@ function schemaToIR(schema, useCache = true) {
62929
63870
  ir.entities.set(entity.name, entity);
62930
63871
  }
62931
63872
  for (const rawTrait of orbital.traits || []) {
62932
- const wrap = rawTrait;
62933
- const maybeResolved = wrap._resolved;
63873
+ const maybeResolved = typeof rawTrait === "object" && "ref" in rawTrait ? rawTrait._resolved : void 0;
62934
63874
  const trait = maybeResolved && maybeResolved.stateMachine ? maybeResolved : rawTrait;
62935
63875
  if (!trait.name) continue;
62936
63876
  const resolvedTrait = {
@@ -63090,6 +64030,16 @@ function getTrait(ir, traitName) {
63090
64030
  // src/embedded-trait-config.ts
63091
64031
  var TRAIT_BINDING_PREFIX = "@trait.";
63092
64032
  var CONFIG_FORWARD_RE = /^@config\.([A-Za-z_][A-Za-z0-9_]*)$/;
64033
+ var CALLSITE_PAYLOAD_PREFIX = "@callsitePayload.";
64034
+ function valueContainsPrefixedString(value, prefix) {
64035
+ if (value === null || value === void 0) return false;
64036
+ if (typeof value === "string") return value.startsWith(prefix);
64037
+ if (Array.isArray(value)) return value.some((item) => valueContainsPrefixedString(item, prefix));
64038
+ if (typeof value === "object") {
64039
+ return Object.values(value).some((v) => valueContainsPrefixedString(v, prefix));
64040
+ }
64041
+ return false;
64042
+ }
63093
64043
  function collectTraitRefsFromValue(value, into) {
63094
64044
  if (value === null || value === void 0) return;
63095
64045
  if (typeof value === "string") {
@@ -63223,8 +64173,33 @@ function resolveForwardsDeep(value, referrerConfig, consumed) {
63223
64173
  }
63224
64174
  return value;
63225
64175
  }
64176
+ function fromDeclared(declared) {
64177
+ if (!declared) return void 0;
64178
+ const out = {};
64179
+ let any = false;
64180
+ for (const [key, field] of Object.entries(declared)) {
64181
+ if (field.default !== void 0) {
64182
+ out[key] = field.default;
64183
+ any = true;
64184
+ }
64185
+ }
64186
+ return any ? out : void 0;
64187
+ }
64188
+ function applyForwardRung(out, rungConfig) {
64189
+ if (!rungConfig) return;
64190
+ const consumed = /* @__PURE__ */ new Map();
64191
+ for (const [key, value] of Object.entries(out)) {
64192
+ out[key] = resolveForwardsDeep(value, rungConfig, consumed);
64193
+ }
64194
+ for (const [key, value] of consumed) {
64195
+ if (!(key in out)) {
64196
+ out[key] = value;
64197
+ }
64198
+ }
64199
+ }
63226
64200
  function buildResolvedTraitConfigs(schema) {
63227
64201
  const rawByName = {};
64202
+ const orbitalByTrait = {};
63228
64203
  if (!schema?.orbitals) return {};
63229
64204
  for (const orbital of schema.orbitals) {
63230
64205
  const traitRefs = orbital.traits;
@@ -63232,6 +64207,9 @@ function buildResolvedTraitConfigs(schema) {
63232
64207
  for (const t of traitRefs) {
63233
64208
  if (typeof t === "string") continue;
63234
64209
  const name = t.name ?? t.ref;
64210
+ if (typeof name === "string") {
64211
+ orbitalByTrait[name] = orbital;
64212
+ }
63235
64213
  const config = t.config;
63236
64214
  if (typeof name === "string" && config !== void 0) {
63237
64215
  rawByName[name] = { ...t, config };
@@ -63251,18 +64229,9 @@ function buildResolvedTraitConfigs(schema) {
63251
64229
  resolving.add(name);
63252
64230
  const out = { ...base };
63253
64231
  const referrer = referrerByChild.get(name);
63254
- if (referrer && referrer !== name) {
63255
- const referrerConfig = resolveConfig(referrer);
63256
- const consumed = /* @__PURE__ */ new Map();
63257
- for (const [key, value] of Object.entries(out)) {
63258
- out[key] = resolveForwardsDeep(value, referrerConfig, consumed);
63259
- }
63260
- for (const [key, value] of consumed) {
63261
- if (!(key in out)) {
63262
- out[key] = value;
63263
- }
63264
- }
63265
- }
64232
+ applyForwardRung(out, referrer && referrer !== name ? resolveConfig(referrer) : void 0);
64233
+ applyForwardRung(out, fromDeclared(orbitalByTrait[name]?.config));
64234
+ applyForwardRung(out, fromDeclared(schema?.config));
63266
64235
  resolving.delete(name);
63267
64236
  resolved.set(name, out);
63268
64237
  return out;
@@ -63274,6 +64243,77 @@ function buildResolvedTraitConfigs(schema) {
63274
64243
  }
63275
64244
  return map;
63276
64245
  }
64246
+ function traitReferencesCallsitePayload(trait) {
64247
+ if (!trait) return false;
64248
+ if (trait.config && valueContainsPrefixedString(trait.config, CALLSITE_PAYLOAD_PREFIX)) {
64249
+ return true;
64250
+ }
64251
+ const stateMachine = trait.stateMachine;
64252
+ if (stateMachine && valueContainsPrefixedString(stateMachine, CALLSITE_PAYLOAD_PREFIX)) {
64253
+ return true;
64254
+ }
64255
+ return false;
64256
+ }
64257
+ function collectCallsiteCaptureChildren(orbital) {
64258
+ const adjacency = collectTraitEmbedAdjacency(orbital);
64259
+ const traitsByName = /* @__PURE__ */ new Map();
64260
+ const traits = orbital.traits;
64261
+ if (Array.isArray(traits)) {
64262
+ for (const traitRef of traits) {
64263
+ const target = targetTraitOf(traitRef);
64264
+ if (target?.name) traitsByName.set(target.name, target);
64265
+ }
64266
+ }
64267
+ const reachesCapture = /* @__PURE__ */ new Map();
64268
+ function traitReachesCapture(name, seen) {
64269
+ const cached = reachesCapture.get(name);
64270
+ if (cached !== void 0) return cached;
64271
+ if (seen.has(name)) return false;
64272
+ seen.add(name);
64273
+ const trait = traitsByName.get(name);
64274
+ if (trait && traitReferencesCallsitePayload(trait)) {
64275
+ reachesCapture.set(name, true);
64276
+ return true;
64277
+ }
64278
+ const children = adjacency.get(name);
64279
+ if (children) {
64280
+ for (const child of children) {
64281
+ if (traitReachesCapture(child, seen)) {
64282
+ reachesCapture.set(name, true);
64283
+ return true;
64284
+ }
64285
+ }
64286
+ }
64287
+ reachesCapture.set(name, false);
64288
+ return false;
64289
+ }
64290
+ const out = /* @__PURE__ */ new Map();
64291
+ for (const [referrer, children] of adjacency) {
64292
+ const keep = /* @__PURE__ */ new Set();
64293
+ for (const child of children) {
64294
+ if (traitReachesCapture(child, /* @__PURE__ */ new Set())) keep.add(child);
64295
+ }
64296
+ if (keep.size > 0) out.set(referrer, keep);
64297
+ }
64298
+ return out;
64299
+ }
64300
+
64301
+ // src/lib/get-nested-value.ts
64302
+ function getNestedValue(obj, path) {
64303
+ if (obj === null || obj === void 0 || !path) return void 0;
64304
+ if (typeof obj !== "object" || Array.isArray(obj)) return void 0;
64305
+ if (!path.includes(".")) {
64306
+ return obj[path];
64307
+ }
64308
+ const parts = path.split(".");
64309
+ let value = obj;
64310
+ for (const part of parts) {
64311
+ if (value === null || value === void 0) return void 0;
64312
+ if (typeof value !== "object" || Array.isArray(value)) return void 0;
64313
+ value = value[part];
64314
+ }
64315
+ return value;
64316
+ }
63277
64317
 
63278
64318
  // src/page-content-owner.ts
63279
64319
  function writesContentMain(effects) {
@@ -64118,6 +65158,16 @@ function rehydrateKnobDefs(catalog) {
64118
65158
  mutable.overridableConfigKeys = knobs;
64119
65159
  delete mutable.overridableConfigKeyRefs;
64120
65160
  }
65161
+ const configRefs = sig.configRefs;
65162
+ if (configRefs === void 0) continue;
65163
+ const configKnobs = [];
65164
+ for (const i of configRefs) {
65165
+ const knob = table[i];
65166
+ if (knob !== void 0) configKnobs.push(knob);
65167
+ }
65168
+ const mutableSig = sig;
65169
+ mutableSig.config = configKnobs;
65170
+ delete mutableSig.configRefs;
64121
65171
  }
64122
65172
  return catalog;
64123
65173
  }
@@ -65063,6 +66113,18 @@ function signatureToParamsSchema(signature, options) {
65063
66113
  description: "Theme key \u2014 the full `data-theme` value applied to the layout root (e.g. linear-clean-light, terminal-dark, game-adventure-dark). Plan-level: pick ONE for the whole app \u2014 it is threaded to every orbital. Omit to leave the factory default."
65064
66114
  }
65065
66115
  };
66116
+ if (signature.config && signature.config.length > 0) {
66117
+ const configProps = {};
66118
+ for (const knob of signature.config) {
66119
+ configProps[knob.key] = knobToSchema(knob, void 0, traitRefValues);
66120
+ }
66121
+ properties.config = {
66122
+ type: "object",
66123
+ additionalProperties: false,
66124
+ description: "This orbital's own declared knobs (Orbital.config). Only the keys shown are valid.",
66125
+ properties: configProps
66126
+ };
66127
+ }
65066
66128
  if (allowPersistenceOverride) {
65067
66129
  properties.collection = {
65068
66130
  type: "string",
@@ -66749,7 +67811,13 @@ var en_default = {
66749
67811
  events: "events",
66750
67812
  event: "event",
66751
67813
  emitsScope: "emitsScope",
66752
- identity: "identity"
67814
+ identity: "identity",
67815
+ pages: "pages",
67816
+ omit: "omit",
67817
+ only: "only",
67818
+ roles: "roles",
67819
+ entities: "entities",
67820
+ extend: "extend"
66753
67821
  },
66754
67822
  shapes: {
66755
67823
  Entity: "Entity",
@@ -66842,7 +67910,6 @@ var en_default = {
66842
67910
  duration: "duration",
66843
67911
  money: "money",
66844
67912
  scalar: "scalar",
66845
- opaque: "opaque",
66846
67913
  file: "file",
66847
67914
  email: "email",
66848
67915
  url: "url",
@@ -66885,12 +67952,12 @@ var en_default = {
66885
67952
  "3xl": "3xl",
66886
67953
  "4xl": "4xl",
66887
67954
  _metadata: "_metadata",
67955
+ _resolved: "_resolved",
66888
67956
  accent: "accent",
66889
67957
  accentForeground: "accentForeground",
66890
67958
  access_waivers: "access_waivers",
66891
67959
  alias: "alias",
66892
67960
  animations: "animations",
66893
- api: "api",
66894
67961
  appliesTo: "appliesTo",
66895
67962
  as: "as",
66896
67963
  aspect: "aspect",
@@ -66977,6 +68044,7 @@ var en_default = {
66977
68044
  emptyAsset: "emptyAsset",
66978
68045
  enabled: "enabled",
66979
68046
  enter: "enter",
68047
+ entities: "entities",
66980
68048
  entity: "entity",
66981
68049
  entityBindingDescription: "entityBindingDescription",
66982
68050
  entityBindingSynonyms: "entityBindingSynonyms",
@@ -66984,7 +68052,6 @@ var en_default = {
66984
68052
  entityId: "entityId",
66985
68053
  entityRebindable: "entityRebindable",
66986
68054
  entityRefIds: "entityRefIds",
66987
- entityType: "entityType",
66988
68055
  entries: "entries",
66989
68056
  env: "env",
66990
68057
  equals: "equals",
@@ -66999,17 +68066,18 @@ var en_default = {
66999
68066
  expand: "expand",
67000
68067
  expects: "expects",
67001
68068
  exposes: "exposes",
68069
+ extend: "extend",
67002
68070
  extends: "extends",
67003
68071
  extendsId: "extendsId",
67004
68072
  family: "family",
67005
68073
  fast: "fast",
67006
- features: "features",
67007
68074
  field: "field",
67008
68075
  fields: "fields",
67009
68076
  flowPattern: "flowPattern",
67010
68077
  foreground: "foreground",
67011
68078
  foreignKey: "foreignKey",
67012
68079
  formPattern: "formPattern",
68080
+ forwardedFrom: "forwardedFrom",
67013
68081
  from: "from",
67014
68082
  geometry: "geometry",
67015
68083
  guard: "guard",
@@ -67060,18 +68128,20 @@ var en_default = {
67060
68128
  max: "max",
67061
68129
  maxAttempts: "maxAttempts",
67062
68130
  min: "min",
67063
- mode: "mode",
67064
68131
  monoFamily: "monoFamily",
67065
68132
  motion: "motion",
68133
+ mounts: "mounts",
67066
68134
  muted: "muted",
67067
68135
  mutedForeground: "mutedForeground",
67068
68136
  name: "name",
67069
68137
  normal: "normal",
67070
68138
  numeric: "numeric",
68139
+ omit: "omit",
67071
68140
  onDelete: "onDelete",
67072
68141
  onEntry: "onEntry",
67073
68142
  onExit: "onExit",
67074
68143
  onboardingAsset: "onboardingAsset",
68144
+ only: "only",
67075
68145
  orbital: "orbital",
67076
68146
  orbitalId: "orbitalId",
67077
68147
  orbitals: "orbitals",
@@ -67114,6 +68184,7 @@ var en_default = {
67114
68184
  reconnect: "reconnect",
67115
68185
  ref: "ref",
67116
68186
  refId: "refId",
68187
+ reference: "reference",
67117
68188
  relatedLinks: "relatedLinks",
67118
68189
  relation: "relation",
67119
68190
  renames: "renames",
@@ -67126,6 +68197,7 @@ var en_default = {
67126
68197
  resource: "resource",
67127
68198
  ring: "ring",
67128
68199
  role: "role",
68200
+ roles: "roles",
67129
68201
  rowHeightCompact: "rowHeightCompact",
67130
68202
  rowHeightNormal: "rowHeightNormal",
67131
68203
  rowHeightSpacious: "rowHeightSpacious",
@@ -67284,7 +68356,13 @@ var ar_default = {
67284
68356
  events: "\u0623\u062D\u062F\u0627\u062B",
67285
68357
  event: "\u062D\u062F\u062B",
67286
68358
  emitsScope: "\u0646\u0637\u0627\u0642_\u0627\u0644\u0625\u0635\u062F\u0627\u0631",
67287
- identity: "\u0647\u0648\u064A\u0629"
68359
+ identity: "\u0647\u0648\u064A\u0629",
68360
+ pages: "\u0635\u0641\u062D\u0627\u062A",
68361
+ omit: "\u0627\u0633\u062A\u0628\u0639\u0627\u062F",
68362
+ only: "\u0641\u0642\u0637",
68363
+ roles: "\u0623\u062F\u0648\u0627\u0631",
68364
+ entities: "\u0643\u064A\u0627\u0646\u0627\u062A",
68365
+ extend: "\u0627\u0645\u062A\u062F\u0627\u062F"
67288
68366
  },
67289
68367
  shapes: {
67290
68368
  Entity: "\u0643\u064A\u0627\u0646",
@@ -67377,7 +68455,6 @@ var ar_default = {
67377
68455
  duration: "\u0645\u062F\u0629",
67378
68456
  money: "\u0645\u0628\u0644\u063A_\u0645\u0627\u0644\u064A",
67379
68457
  scalar: "\u0639\u062F\u062F\u064A",
67380
- opaque: "\u0645\u0639\u062A\u0645",
67381
68458
  file: "\u0645\u0644\u0641",
67382
68459
  email: "\u0628\u0631\u064A\u062F_\u0625\u0644\u0643\u062A\u0631\u0648\u0646\u064A",
67383
68460
  url: "\u0631\u0627\u0628\u0637",
@@ -67420,12 +68497,12 @@ var ar_default = {
67420
68497
  "3xl": "3\u0643\u0628\u064A\u0631",
67421
68498
  "4xl": "4\u0643\u0628\u064A\u0631",
67422
68499
  _metadata: "\u0628\u064A\u0627\u0646\u0627\u062A_\u0648\u0635\u0641\u064A\u0629",
68500
+ _resolved: "_\u0645\u062D\u0644\u0648\u0644",
67423
68501
  accent: "\u062A\u0645\u064A\u064A\u0632",
67424
68502
  accentForeground: "\u0645\u0642\u062F\u0645\u0629_\u0627\u0644\u062A\u0645\u064A\u064A\u0632",
67425
68503
  access_waivers: "\u0625\u0639\u0641\u0627\u0621\u0627\u062A_\u0627\u0644\u0648\u0635\u0648\u0644",
67426
68504
  alias: "\u0627\u0633\u0645_\u0645\u0633\u062A\u0639\u0627\u0631",
67427
68505
  animations: "\u0631\u0633\u0648\u0645_\u0645\u062A\u062D\u0631\u0643\u0629",
67428
- api: "\u0648\u0627\u062C\u0647\u0629_\u0628\u0631\u0645\u062C\u064A\u0629",
67429
68506
  appliesTo: "\u064A\u0646\u0637\u0628\u0642_\u0639\u0644\u0649",
67430
68507
  as: "\u0643\u0640",
67431
68508
  aspect: "\u0646\u0633\u0628\u0629",
@@ -67512,6 +68589,7 @@ var ar_default = {
67512
68589
  emptyAsset: "\u0623\u0635\u0644_\u0641\u0627\u0631\u063A",
67513
68590
  enabled: "\u0645\u064F\u0641\u0639\u0651\u0644",
67514
68591
  enter: "\u062F\u062E\u0648\u0644",
68592
+ entities: "\u0643\u064A\u0627\u0646\u0627\u062A",
67515
68593
  entity: "\u0643\u064A\u0627\u0646",
67516
68594
  entityBindingDescription: "\u0648\u0635\u0641_\u0631\u0628\u0637_\u0627\u0644\u0643\u064A\u0627\u0646",
67517
68595
  entityBindingSynonyms: "\u0645\u0631\u0627\u062F\u0641\u0627\u062A_\u0631\u0628\u0637_\u0627\u0644\u0643\u064A\u0627\u0646",
@@ -67519,7 +68597,6 @@ var ar_default = {
67519
68597
  entityId: "\u0645\u0639\u0631\u0641_\u0627\u0644\u0643\u064A\u0627\u0646",
67520
68598
  entityRebindable: "\u0642\u0627\u0628\u0644_\u0644\u0625\u0639\u0627\u062F\u0629_\u0631\u0628\u0637_\u0627\u0644\u0643\u064A\u0627\u0646",
67521
68599
  entityRefIds: "\u0645\u0639\u0631\u0641\u0627\u062A_\u0645\u0631\u062C\u0639_\u0627\u0644\u0643\u064A\u0627\u0646",
67522
- entityType: "\u0646\u0648\u0639_\u0627\u0644\u0643\u064A\u0627\u0646",
67523
68600
  entries: "\u0625\u062F\u062E\u0627\u0644\u0627\u062A",
67524
68601
  env: "\u0628\u064A\u0626\u0629",
67525
68602
  equals: "\u064A\u0633\u0627\u0648\u064A",
@@ -67534,17 +68611,18 @@ var ar_default = {
67534
68611
  expand: "\u062A\u0648\u0633\u064A\u0639",
67535
68612
  expects: "\u064A\u062A\u0648\u0642\u0639",
67536
68613
  exposes: "\u064A\u0639\u0631\u0636",
68614
+ extend: "\u0627\u0645\u062A\u062F\u0627\u062F",
67537
68615
  extends: "\u064A\u0645\u062A\u062F",
67538
68616
  extendsId: "\u0645\u0639\u0631\u0641_\u0627\u0644\u0627\u0645\u062A\u062F\u0627\u062F",
67539
68617
  family: "\u0639\u0627\u0626\u0644\u0629",
67540
68618
  fast: "\u0633\u0631\u064A\u0639",
67541
- features: "\u0645\u064A\u0632\u0627\u062A",
67542
68619
  field: "\u062D\u0642\u0644",
67543
68620
  fields: "\u062D\u0642\u0648\u0644",
67544
68621
  flowPattern: "\u0646\u0645\u0637_\u0627\u0644\u062A\u062F\u0641\u0642",
67545
68622
  foreground: "\u0645\u0642\u062F\u0645\u0629",
67546
68623
  foreignKey: "\u0645\u0641\u062A\u0627\u062D_\u0623\u062C\u0646\u0628\u064A",
67547
68624
  formPattern: "\u0646\u0645\u0637_\u0627\u0644\u0646\u0645\u0648\u0630\u062C",
68625
+ forwardedFrom: "\u0645\u0648\u062C\u0647_\u0645\u0646",
67548
68626
  from: "\u0645\u0646",
67549
68627
  geometry: "\u0647\u0646\u062F\u0633\u0629",
67550
68628
  guard: "\u062D\u0627\u0631\u0633",
@@ -67595,18 +68673,20 @@ var ar_default = {
67595
68673
  max: "\u0623\u0642\u0635\u0649",
67596
68674
  maxAttempts: "\u0623\u0642\u0635\u0649_\u0639\u062F\u062F_\u0645\u062D\u0627\u0648\u0644\u0627\u062A",
67597
68675
  min: "\u0623\u062F\u0646\u0649",
67598
- mode: "\u0648\u0636\u0639",
67599
68676
  monoFamily: "\u0639\u0627\u0626\u0644\u0629_\u0623\u062D\u0627\u062F\u064A\u0629_\u0627\u0644\u0645\u0633\u0627\u0641\u0629",
67600
68677
  motion: "\u062D\u0631\u0643\u0629",
68678
+ mounts: "\u062A\u0631\u0643\u064A\u0628\u0627\u062A",
67601
68679
  muted: "\u062E\u0627\u0641\u062A",
67602
68680
  mutedForeground: "\u0645\u0642\u062F\u0645\u0629_\u062E\u0627\u0641\u062A\u0629",
67603
68681
  name: "\u0627\u0633\u0645",
67604
68682
  normal: "\u0639\u0627\u062F\u064A",
67605
68683
  numeric: "\u0631\u0642\u0645\u064A",
68684
+ omit: "\u0627\u0633\u062A\u0628\u0639\u0627\u062F",
67606
68685
  onDelete: "\u0639\u0646\u062F_\u0627\u0644\u062D\u0630\u0641",
67607
68686
  onEntry: "\u0639\u0646\u062F_\u0627\u0644\u062F\u062E\u0648\u0644",
67608
68687
  onExit: "\u0639\u0646\u062F_\u0627\u0644\u062E\u0631\u0648\u062C",
67609
68688
  onboardingAsset: "\u0623\u0635\u0644_\u0627\u0644\u062A\u0623\u0647\u064A\u0644",
68689
+ only: "\u0641\u0642\u0637",
67610
68690
  orbital: "\u0645\u062F\u0627\u0631",
67611
68691
  orbitalId: "\u0645\u0639\u0631\u0641_\u0627\u0644\u0645\u062F\u0627\u0631",
67612
68692
  orbitals: "\u0645\u062F\u0627\u0631\u0627\u062A",
@@ -67649,6 +68729,7 @@ var ar_default = {
67649
68729
  reconnect: "\u0625\u0639\u0627\u062F\u0629_\u0627\u0644\u0627\u062A\u0635\u0627\u0644",
67650
68730
  ref: "\u0645\u0631\u062C\u0639",
67651
68731
  refId: "\u0645\u0639\u0631\u0641_\u0627\u0644\u0645\u0631\u062C\u0639",
68732
+ reference: "\u0645\u0631\u062C\u0639\u064A\u0629",
67652
68733
  relatedLinks: "\u0631\u0648\u0627\u0628\u0637_\u0630\u0627\u062A_\u0635\u0644\u0629",
67653
68734
  relation: "\u0639\u0644\u0627\u0642\u0629",
67654
68735
  renames: "\u0625\u0639\u0627\u062F\u0629_\u062A\u0633\u0645\u064A\u0629",
@@ -67661,6 +68742,7 @@ var ar_default = {
67661
68742
  resource: "\u0645\u0648\u0631\u062F",
67662
68743
  ring: "\u062D\u0644\u0642\u0629",
67663
68744
  role: "\u062F\u0648\u0631",
68745
+ roles: "\u0623\u062F\u0648\u0627\u0631",
67664
68746
  rowHeightCompact: "\u0627\u0631\u062A\u0641\u0627\u0639_\u0627\u0644\u0635\u0641_\u0627\u0644\u0645\u0636\u063A\u0648\u0637",
67665
68747
  rowHeightNormal: "\u0627\u0631\u062A\u0641\u0627\u0639_\u0627\u0644\u0635\u0641_\u0627\u0644\u0639\u0627\u062F\u064A",
67666
68748
  rowHeightSpacious: "\u0627\u0631\u062A\u0641\u0627\u0639_\u0627\u0644\u0635\u0641_\u0627\u0644\u0648\u0627\u0633\u0639",
@@ -67819,7 +68901,13 @@ var sl_default = {
67819
68901
  events: "dogodki",
67820
68902
  event: "dogodek",
67821
68903
  emitsScope: "oddajaObseg",
67822
- identity: "identiteta"
68904
+ identity: "identiteta",
68905
+ pages: "strani",
68906
+ omit: "izloci",
68907
+ only: "samo",
68908
+ roles: "vloge",
68909
+ entities: "entitete",
68910
+ extend: "razsiritev"
67823
68911
  },
67824
68912
  shapes: {
67825
68913
  Entity: "Entiteta",
@@ -67912,7 +69000,6 @@ var sl_default = {
67912
69000
  duration: "trajanje",
67913
69001
  money: "denar",
67914
69002
  scalar: "skalar",
67915
- opaque: "nepregledno",
67916
69003
  file: "datoteka",
67917
69004
  email: "eposta",
67918
69005
  url: "url",
@@ -67955,12 +69042,12 @@ var sl_default = {
67955
69042
  "3xl": "3xv",
67956
69043
  "4xl": "4xv",
67957
69044
  _metadata: "_metapodatki",
69045
+ _resolved: "_razresen",
67958
69046
  accent: "poudarek",
67959
69047
  accentForeground: "poudarekOspredje",
67960
69048
  access_waivers: "dostop_izjeme",
67961
69049
  alias: "vzdevek",
67962
69050
  animations: "animacije",
67963
- api: "api",
67964
69051
  appliesTo: "veljaZa",
67965
69052
  as: "kot",
67966
69053
  aspect: "razmerje",
@@ -68047,6 +69134,7 @@ var sl_default = {
68047
69134
  emptyAsset: "sredstvoPrazno",
68048
69135
  enabled: "omogoceno",
68049
69136
  enter: "vstop",
69137
+ entities: "entitete",
68050
69138
  entity: "entiteta",
68051
69139
  entityBindingDescription: "entitetaVezavaOpis",
68052
69140
  entityBindingSynonyms: "entitetaVezavaSopomenke",
@@ -68054,7 +69142,6 @@ var sl_default = {
68054
69142
  entityId: "entitetaId",
68055
69143
  entityRebindable: "entitetaPrevezljivo",
68056
69144
  entityRefIds: "entitetaSklicIdji",
68057
- entityType: "entitetaTip",
68058
69145
  entries: "vnosi",
68059
69146
  env: "okolje",
68060
69147
  equals: "enako",
@@ -68069,17 +69156,18 @@ var sl_default = {
68069
69156
  expand: "razpni",
68070
69157
  expects: "pricakuje",
68071
69158
  exposes: "izpostavlja",
69159
+ extend: "razsiritev",
68072
69160
  extends: "razsiri",
68073
69161
  extendsId: "razsiriId",
68074
69162
  family: "druzina",
68075
69163
  fast: "hitro",
68076
- features: "znacilke",
68077
69164
  field: "polje",
68078
69165
  fields: "polja",
68079
69166
  flowPattern: "vzorecPoteka",
68080
69167
  foreground: "ospredje",
68081
69168
  foreignKey: "tujiKljuc",
68082
69169
  formPattern: "vzorecObrazca",
69170
+ forwardedFrom: "posredovanoOd",
68083
69171
  from: "iz",
68084
69172
  geometry: "geometrija",
68085
69173
  guard: "strazar",
@@ -68130,18 +69218,20 @@ var sl_default = {
68130
69218
  max: "najvec",
68131
69219
  maxAttempts: "najvecPoskusov",
68132
69220
  min: "najmanj",
68133
- mode: "nacin",
68134
69221
  monoFamily: "monoDruzina",
68135
69222
  motion: "gibanje",
69223
+ mounts: "priklopi",
68136
69224
  muted: "zaduseno",
68137
69225
  mutedForeground: "zadusenoOspredje",
68138
69226
  name: "ime",
68139
69227
  normal: "normalno",
68140
69228
  numeric: "stevilsko",
69229
+ omit: "izloci",
68141
69230
  onDelete: "obIzbrisi",
68142
69231
  onEntry: "obVnos",
68143
69232
  onExit: "obIzhod",
68144
69233
  onboardingAsset: "sredstvoUvod",
69234
+ only: "samo",
68145
69235
  orbital: "orbitala",
68146
69236
  orbitalId: "orbitalaId",
68147
69237
  orbitals: "orbitale",
@@ -68184,6 +69274,7 @@ var sl_default = {
68184
69274
  reconnect: "ponovnaPovezava",
68185
69275
  ref: "sklic",
68186
69276
  refId: "sklicId",
69277
+ reference: "referenca",
68187
69278
  relatedLinks: "povezanePovezave",
68188
69279
  relation: "relacija",
68189
69280
  renames: "preimenovanja",
@@ -68196,6 +69287,7 @@ var sl_default = {
68196
69287
  resource: "vir",
68197
69288
  ring: "obroc",
68198
69289
  role: "vloga",
69290
+ roles: "vloge",
68199
69291
  rowHeightCompact: "visinaVrsticeStisnjena",
68200
69292
  rowHeightNormal: "visinaVrsticeNormalna",
68201
69293
  rowHeightSpacious: "visinaVrsticeProstorna",
@@ -68313,6 +69405,457 @@ var sl_default = {
68313
69405
  }
68314
69406
  };
68315
69407
 
69408
+ // src/i18n/lolo-lexer.ts
69409
+ var IDENT_START = /[\p{L}_]/u;
69410
+ var IDENT_CONTINUE = /[\p{L}\p{N}_/-]/u;
69411
+ var SIGIL_CONTINUE = /[\p{L}\p{N}_.]/u;
69412
+ var DIGIT = /[0-9]/;
69413
+ function lexLolo(source) {
69414
+ const tokens = [];
69415
+ let i = 0;
69416
+ const n = source.length;
69417
+ const push = (kind, start, end, text, textStart) => {
69418
+ tokens.push({
69419
+ kind,
69420
+ start,
69421
+ end,
69422
+ text: text ?? source.slice(start, end),
69423
+ textStart: textStart ?? start
69424
+ });
69425
+ };
69426
+ while (i < n) {
69427
+ const c = source[i];
69428
+ if (c === " " || c === " " || c === "\r" || c === "\n") {
69429
+ i++;
69430
+ continue;
69431
+ }
69432
+ if (c === "#") {
69433
+ const start2 = i;
69434
+ if (source[i + 1] === "=") {
69435
+ const close = source.indexOf("=#", i + 2);
69436
+ i = close === -1 ? n : close + 2;
69437
+ } else {
69438
+ const nl = source.indexOf("\n", i);
69439
+ i = nl === -1 ? n : nl;
69440
+ }
69441
+ push("comment", start2, i);
69442
+ continue;
69443
+ }
69444
+ if (c === ";" && source[i + 1] === ";") {
69445
+ const start2 = i;
69446
+ const nl = source.indexOf("\n", i);
69447
+ i = nl === -1 ? n : nl;
69448
+ push("comment", start2, i);
69449
+ continue;
69450
+ }
69451
+ if (c === '"') {
69452
+ const start2 = i;
69453
+ i++;
69454
+ while (i < n) {
69455
+ if (source[i] === "\\") {
69456
+ i += 2;
69457
+ continue;
69458
+ }
69459
+ if (source[i] === '"') {
69460
+ i++;
69461
+ break;
69462
+ }
69463
+ i++;
69464
+ }
69465
+ push("string", start2, Math.min(i, n));
69466
+ continue;
69467
+ }
69468
+ if (c === "@") {
69469
+ const start2 = i;
69470
+ i++;
69471
+ if (source[i] === "(") {
69472
+ i++;
69473
+ push("punct", start2, i);
69474
+ continue;
69475
+ }
69476
+ const nameStart = i;
69477
+ while (i < n && SIGIL_CONTINUE.test(source[i])) i++;
69478
+ push("sigil", start2, i, source.slice(nameStart, i), nameStart);
69479
+ continue;
69480
+ }
69481
+ if (c === "?") {
69482
+ const start2 = i;
69483
+ i++;
69484
+ if (i < n && IDENT_START.test(source[i])) {
69485
+ const nameStart = i;
69486
+ while (i < n && SIGIL_CONTINUE.test(source[i])) i++;
69487
+ push("payload-sigil", start2, i, source.slice(nameStart, i), nameStart);
69488
+ } else {
69489
+ push("payload-sigil", start2, i, "", i);
69490
+ }
69491
+ continue;
69492
+ }
69493
+ if (c === "-") {
69494
+ const start2 = i;
69495
+ if (source[i + 1] === ">") {
69496
+ i += 2;
69497
+ push("punct", start2, i);
69498
+ } else if (source[i + 1] === "-") {
69499
+ i += 2;
69500
+ push("punct", start2, i);
69501
+ } else if (source[i + 1] !== void 0 && DIGIT.test(source[i + 1])) {
69502
+ i++;
69503
+ while (i < n && (DIGIT.test(source[i]) || source[i] === ".")) i++;
69504
+ push("number", start2, i);
69505
+ } else {
69506
+ i++;
69507
+ push("identifier", start2, i);
69508
+ }
69509
+ continue;
69510
+ }
69511
+ if (DIGIT.test(c)) {
69512
+ const start2 = i;
69513
+ while (i < n && (DIGIT.test(source[i]) || source[i] === ".")) i++;
69514
+ push("number", start2, i);
69515
+ continue;
69516
+ }
69517
+ if (c === "=" || c === "!" || c === "<" || c === ">") {
69518
+ const start2 = i;
69519
+ i++;
69520
+ if (source[i] === "=") i++;
69521
+ const two = i - start2 === 2;
69522
+ push(two ? "identifier" : "punct", start2, i);
69523
+ continue;
69524
+ }
69525
+ if (c === "+" || c === "*" || c === "/" || c === "%") {
69526
+ const start2 = i;
69527
+ i++;
69528
+ push("identifier", start2, i);
69529
+ continue;
69530
+ }
69531
+ if (IDENT_START.test(c)) {
69532
+ const start2 = i;
69533
+ while (i < n && IDENT_CONTINUE.test(source[i])) i++;
69534
+ const text = source.slice(start2, i);
69535
+ push(text === "true" || text === "false" || text === "null" ? "literal" : "identifier", start2, i, text);
69536
+ continue;
69537
+ }
69538
+ const start = i;
69539
+ i++;
69540
+ if (c === ":" && source[i] === ":") i++;
69541
+ push("punct", start, i);
69542
+ }
69543
+ return tokens;
69544
+ }
69545
+
69546
+ // src/i18n/localize.ts
69547
+ var LOLO_SECTIONS = [
69548
+ "keywords",
69549
+ "shapes",
69550
+ "tags",
69551
+ "categories",
69552
+ "capabilities",
69553
+ "annotations",
69554
+ "sigils",
69555
+ "effects",
69556
+ "types",
69557
+ "units",
69558
+ "literals",
69559
+ "reservedEvents"
69560
+ ];
69561
+ var CANON_ANY_ORDER = [
69562
+ "keywords",
69563
+ "shapes",
69564
+ "tags",
69565
+ "categories",
69566
+ "capabilities",
69567
+ "annotations",
69568
+ "sigils",
69569
+ "types",
69570
+ "units",
69571
+ "literals",
69572
+ "reservedEvents"
69573
+ ];
69574
+ function forward(lang, sections, resolutionOrder, operators) {
69575
+ const canon = (native) => {
69576
+ for (const section of resolutionOrder) {
69577
+ for (const [english, value] of Object.entries(coreTables[lang][section])) {
69578
+ if (value === native) return english;
69579
+ }
69580
+ }
69581
+ if (operators) {
69582
+ for (const [english, value] of Object.entries(operators.operators)) {
69583
+ if (value === native) return english;
69584
+ }
69585
+ }
69586
+ return void 0;
69587
+ };
69588
+ const map = /* @__PURE__ */ new Map();
69589
+ const add = (english, native) => {
69590
+ if (canon(native) !== english) return;
69591
+ map.set(english, native);
69592
+ };
69593
+ for (const section of sections) {
69594
+ for (const [english, native] of Object.entries(coreTables[lang][section])) {
69595
+ add(english, native);
69596
+ }
69597
+ }
69598
+ if (operators) {
69599
+ for (const [english, native] of Object.entries(operators.operators)) {
69600
+ add(english, native);
69601
+ }
69602
+ }
69603
+ return map;
69604
+ }
69605
+ function localizeMap(lang, operators) {
69606
+ return forward(lang, LOLO_SECTIONS, CANON_ANY_ORDER, operators);
69607
+ }
69608
+ function isWordShaped(english) {
69609
+ return /^[A-Za-z_][A-Za-z0-9_/-]*$/.test(english);
69610
+ }
69611
+ var FIELD_BLOCK_HEADS = /* @__PURE__ */ new Set(["entity", "type", "config", "params", "variants", "tokens", "event"]);
69612
+ var EVENT_BLOCK_HEADS = /* @__PURE__ */ new Set(["listens", "emits", "events"]);
69613
+ var NAME_INTRODUCING = /* @__PURE__ */ new Set([
69614
+ "app",
69615
+ "orbital",
69616
+ "entity",
69617
+ "trait",
69618
+ "state",
69619
+ "page",
69620
+ "type",
69621
+ "event",
69622
+ "uses",
69623
+ "theme",
69624
+ "as",
69625
+ "extend"
69626
+ ]);
69627
+ var NAME_PUNCT = /* @__PURE__ */ new Set(["->", "-->", "\u2192", ".", "--"]);
69628
+ function localizeLoloSource(source, lang, options = {}) {
69629
+ if (lang === "en") return source;
69630
+ const { operators } = options;
69631
+ const keywords = forward(lang, ["keywords"], CANON_ANY_ORDER);
69632
+ const shapes = forward(lang, ["shapes"], CANON_ANY_ORDER);
69633
+ const types = forward(lang, ["types"], ["types"]);
69634
+ const modifiers = forward(lang, ["tags", "categories", "capabilities", "keywords"], CANON_ANY_ORDER);
69635
+ const heads = forward(lang, ["effects"], ["effects"], operators);
69636
+ const sigils = forward(lang, ["sigils", "annotations"], ["sigils", "annotations"]);
69637
+ const bindingSigils = forward(lang, ["sigils"], ["sigils", "annotations"]);
69638
+ const literals = forward(lang, ["literals"], ["literals"]);
69639
+ const units = forward(lang, ["units"], ["units"]);
69640
+ const reservedEvents = forward(lang, ["reservedEvents"], ["reservedEvents"]);
69641
+ const tokens = lexLolo(source);
69642
+ const edits = [];
69643
+ const stack = [
69644
+ {
69645
+ kind: "root",
69646
+ stmtHead: void 0,
69647
+ blockHead: void 0,
69648
+ afterColon: false,
69649
+ sawEquals: false,
69650
+ refBody: false,
69651
+ parenHead: void 0,
69652
+ binderSeen: false
69653
+ }
69654
+ ];
69655
+ const top = () => stack[stack.length - 1];
69656
+ let prev;
69657
+ const replace = (token, map) => {
69658
+ if (!isWordShaped(token.text)) return;
69659
+ const native = map.get(token.text);
69660
+ if (native === void 0 || native === token.text) return;
69661
+ edits.push({ start: token.textStart, end: token.end, text: native });
69662
+ };
69663
+ for (let index = 0; index < tokens.length; index++) {
69664
+ const token = tokens[index];
69665
+ if (token.kind === "comment") continue;
69666
+ const frame = top();
69667
+ const startsStatement = prev === void 0 || prev.text === "{" || prev.text === "}" || source.slice(prev.end, token.start).includes("\n");
69668
+ if (startsStatement) {
69669
+ frame.stmtHead = void 0;
69670
+ frame.afterColon = false;
69671
+ frame.sawEquals = false;
69672
+ }
69673
+ if (token.kind === "punct") {
69674
+ const text = source.slice(token.start, token.end);
69675
+ const child = (kind) => ({
69676
+ kind,
69677
+ stmtHead: void 0,
69678
+ blockHead: frame.stmtHead,
69679
+ afterColon: false,
69680
+ sawEquals: false,
69681
+ refBody: frame.refBody || frame.sawEquals,
69682
+ parenHead: void 0,
69683
+ binderSeen: false
69684
+ });
69685
+ if (text === "(" || text === "@(") {
69686
+ stack.push({ ...child(parenFrame(frame, prev)), blockHead: void 0 });
69687
+ if (top().kind === "binder-list") frame.binderSeen = true;
69688
+ } else if (text === "{") {
69689
+ stack.push(child(braceFrame(frame, prev)));
69690
+ } else if (text === "[") {
69691
+ stack.push(child(bracketFrame(frame, prev)));
69692
+ } else if (text === ")" || text === "}" || text === "]") {
69693
+ if (stack.length > 1) stack.pop();
69694
+ top().afterColon = false;
69695
+ top().sawEquals = false;
69696
+ } else if (text === ":") {
69697
+ frame.afterColon = true;
69698
+ } else if (text === "=") {
69699
+ frame.afterColon = false;
69700
+ frame.sawEquals = true;
69701
+ } else if (text === ",") {
69702
+ frame.afterColon = false;
69703
+ frame.sawEquals = false;
69704
+ frame.stmtHead = void 0;
69705
+ }
69706
+ prev = token;
69707
+ continue;
69708
+ }
69709
+ const opaque = frame.kind === "object" || frame.kind === "array" || frame.kind === "binder-list" || frame.kind === "binder-pair" && prev !== void 0 && prev.text === "(";
69710
+ if (token.kind === "sigil") {
69711
+ const dot = token.text.indexOf(".");
69712
+ const root = dot === -1 ? token.text : token.text.slice(0, dot);
69713
+ const native = (opaque || frame.kind === "paren" ? bindingSigils : sigils).get(root);
69714
+ if (native !== void 0 && native !== root) {
69715
+ edits.push({ start: token.textStart, end: token.textStart + root.length, text: native });
69716
+ }
69717
+ prev = token;
69718
+ continue;
69719
+ }
69720
+ if (token.kind === "payload-sigil" || token.kind === "string" || token.kind === "number") {
69721
+ prev = token;
69722
+ continue;
69723
+ }
69724
+ if (token.kind === "literal") {
69725
+ if (!opaque) replace(token, literals);
69726
+ prev = token;
69727
+ continue;
69728
+ }
69729
+ const prevText = prev === void 0 ? void 0 : source.slice(prev.start, prev.end);
69730
+ const afterName = prevText !== void 0 && (NAME_INTRODUCING.has(prevText) || NAME_PUNCT.has(prevText));
69731
+ if (token.text === "INIT" && !opaque && !frame.sawEquals) {
69732
+ replace(token, reservedEvents);
69733
+ if (frame.stmtHead === void 0) frame.stmtHead = token.text;
69734
+ prev = token;
69735
+ continue;
69736
+ }
69737
+ if (!opaque && !startsStatement && prev !== void 0 && prev.kind === "number") {
69738
+ replace(token, units);
69739
+ prev = token;
69740
+ continue;
69741
+ }
69742
+ switch (frame.kind) {
69743
+ case "paren": {
69744
+ if (prevText === "(") {
69745
+ frame.parenHead = token.text;
69746
+ replace(token, heads);
69747
+ }
69748
+ break;
69749
+ }
69750
+ case "binder-list":
69751
+ case "binder-pair":
69752
+ break;
69753
+ case "object":
69754
+ case "array":
69755
+ break;
69756
+ case "mods":
69757
+ if (!frame.afterColon) replace(token, modifiers);
69758
+ break;
69759
+ case "type-array":
69760
+ replace(token, types);
69761
+ break;
69762
+ case "block-fields": {
69763
+ if (frame.afterColon && !afterName) replace(token, types);
69764
+ break;
69765
+ }
69766
+ case "root":
69767
+ case "block-body": {
69768
+ if (!afterName) replace(token, frame.afterColon ? types : keywords);
69769
+ break;
69770
+ }
69771
+ }
69772
+ if ((frame.kind === "root" || frame.kind === "block-body") && prevText === "=") {
69773
+ replace(token, shapes);
69774
+ }
69775
+ if (frame.stmtHead === void 0) frame.stmtHead = token.text;
69776
+ prev = token;
69777
+ }
69778
+ return applyEdits(source, edits);
69779
+ }
69780
+ function parenFrame(frame, prev) {
69781
+ if (frame.kind === "binder-list") return "binder-pair";
69782
+ if (frame.kind === "paren" && !frame.binderSeen && prev !== void 0 && prev.text === frame.parenHead && (frame.parenHead === "let" || frame.parenHead === "fn" || frame.parenHead === "lambda")) {
69783
+ return "binder-list";
69784
+ }
69785
+ return "paren";
69786
+ }
69787
+ function braceFrame(frame, prev) {
69788
+ if (isExpression(frame.kind)) return "object";
69789
+ if (frame.kind === "block-fields" && prev !== void 0 && prev.text === "=") return "object";
69790
+ if (frame.refBody && frame.stmtHead === "config") return "object";
69791
+ if (frame.blockHead !== void 0 && EVENT_BLOCK_HEADS.has(frame.blockHead)) return "block-fields";
69792
+ if (frame.kind === "type-array") return "block-fields";
69793
+ if (frame.kind === "block-fields" && frame.afterColon) return "block-fields";
69794
+ const head = frame.stmtHead;
69795
+ return head !== void 0 && FIELD_BLOCK_HEADS.has(head) ? "block-fields" : "block-body";
69796
+ }
69797
+ function bracketFrame(frame, prev) {
69798
+ if (isExpression(frame.kind)) return "array";
69799
+ if (prev !== void 0 && prev.text === "=") return "array";
69800
+ if (frame.afterColon) return frame.kind === "block-fields" ? "type-array" : "array";
69801
+ return "mods";
69802
+ }
69803
+ function isExpression(kind) {
69804
+ return kind === "paren" || kind === "object" || kind === "array" || kind === "binder-list" || kind === "binder-pair";
69805
+ }
69806
+ function applyEdits(source, edits) {
69807
+ if (edits.length === 0) return source;
69808
+ edits.sort((a, b) => a.start - b.start);
69809
+ let out = "";
69810
+ let cursor = 0;
69811
+ for (const edit of edits) {
69812
+ if (edit.start < cursor) continue;
69813
+ out += source.slice(cursor, edit.start) + edit.text;
69814
+ cursor = edit.end;
69815
+ }
69816
+ return out + source.slice(cursor);
69817
+ }
69818
+ function localizeOrbValue(value, lang, options = {}) {
69819
+ if (lang === "en") return value;
69820
+ const orbKeys = forward(lang, ["orb"], ["orb"]);
69821
+ const types = forward(lang, ["types"], ["types"]);
69822
+ const heads = forward(lang, ["effects"], ["effects"], options.operators);
69823
+ const sigils = forward(lang, ["sigils"], ["sigils", "annotations"]);
69824
+ const walk = (node) => {
69825
+ if (Array.isArray(node)) {
69826
+ const items = node.map(walk);
69827
+ const head = items[0];
69828
+ if (typeof head === "string") {
69829
+ const native = heads.get(head);
69830
+ if (native !== void 0) items[0] = native;
69831
+ }
69832
+ return items;
69833
+ }
69834
+ if (node !== null && typeof node === "object") {
69835
+ const out = {};
69836
+ for (const [key, child] of Object.entries(node)) {
69837
+ const nativeKey = orbKeys.get(key) ?? key;
69838
+ let next = walk(child);
69839
+ if (key === "type" && typeof next === "string") {
69840
+ next = types.get(next) ?? next;
69841
+ }
69842
+ out[nativeKey] = next;
69843
+ }
69844
+ return out;
69845
+ }
69846
+ if (typeof node === "string" && node.startsWith("@")) {
69847
+ const rest = node.slice(1);
69848
+ const dot = rest.indexOf(".");
69849
+ const root = dot === -1 ? rest : rest.slice(0, dot);
69850
+ const native = sigils.get(root);
69851
+ if (native === void 0) return node;
69852
+ return dot === -1 ? `@${native}` : `@${native}${rest.slice(dot)}`;
69853
+ }
69854
+ return node;
69855
+ };
69856
+ return walk(value);
69857
+ }
69858
+
68316
69859
  // src/i18n/index.ts
68317
69860
  var LANGUAGE_CODES = ["en", "ar", "sl"];
68318
69861
  var I18N_SECTIONS = [
@@ -68615,6 +70158,6 @@ function reportIdenticalToEnglish(input) {
68615
70158
  return problems;
68616
70159
  }
68617
70160
 
68618
- export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ANONYMOUS_USER, ASSET_ASPECTS, ASSET_DIMENSIONS, AgentDomainCategorySchema, AnimationDefSchema, AnimationNameSchema, AssetAspectSchema, AssetCatalogEntrySchema, AssetCatalogSchema, AssetDimensionSchema, AssetSchema, AudioManifestSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BINDING_ROOTS, BindingSchema, CAMERA_MODES, COMPONENT_MAPPING, CONFIG_REF_EVENT_PATTERN, CORE_BINDINGS, CameraModeSchema, CameraSchema, ColorSliceSchema, ColorTokensSchema, ComputedEventContractSchema, ComputedEventListenerSchema, ConfigFieldDeclarationSchema, ConfigProvenanceRecordSchema, CustomPatternDefinitionSchema, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DEFAULT_UNIT_ANIMATION_ROWS, DEFAULT_VIEWER, DEV_TOKEN_PREFIX, DeclaredTraitConfigSchema, DensitySliceSchema, DensityTokensSchema, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EVENT_CONTRACTS, EffectSchema, ElevationSliceSchema, ElevationTokensSchema, EntityCallSchema, EntityFieldContractSchema, EntityFieldSchema, EntityIdSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntitySchema, EntitySemanticRoleSchema, EventIdSchema, EventListenerSchema, EventPayloadFieldSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpectDeclarationSchema, ExpressionSchema, FIELD_TYPES, FieldSchema, FieldTypeSchema, FileValueSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, I18N_SECTIONS, INTEGRATORS_REGISTRY, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IdentityLedgerSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, LANGUAGE_CODES, LOLO_FIRST_TOKEN_KEYWORDS, LedgerEntrySchema, LedgerKindSchema, ListenSourceSchema, MANIFEST_ASSET_LICENSES, MANIFEST_CANVAS_AFFINITIES, MANIFEST_ENTRY_KINDS, MANIFEST_SOURCE_CATALOGS, ManifestAssetLicenseSchema, ManifestCanvasAffinitySchema, ManifestEntryKindSchema, ManifestEntrySchema, ManifestFrameSpecSchema, ManifestSourceCatalogSchema, McpServiceDefSchema, MotionDurationKeySchema, MotionDurationPaletteSchema, MotionEasingKeySchema, MotionEasingPaletteSchema, MotionIntentMapSchema, MotionIntentSchema, MotionSliceSchema, MotionTokensSchema, NodeClassificationSchema, OrbitalConfigSchema, OrbitalDefinitionSchema, OrbitalEntitySchema, OrbitalIdSchema, OrbitalPageSchema, OrbitalPageStrictSchema, OrbitalSchemaSchema, OrbitalTraitRefSchema, OrbitalUnitSchema, OrbitalSchema as OrbitalZodSchema, PATTERN_REGISTRY, PATTERN_TYPES, PageIdSchema, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRefSchema, PaletteEntryIdSchema, PatternTypeSchema, PayloadFieldSchema, PayloadTypeWhenSchema, REFERENCE_CONFIG_TYPES, RENDER_BINDING_MARKER, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, RestAuthConfigSchema, RestServiceDefSchema, SECRET_CONFIG_TYPES, SEMANTIC_STRING_TYPES, SERVICE_TYPES, SExprAtomSchema, SExprDataSchema, SExprSchema, SHEET_PROJECTIONS, SPRITE_DIRECTIONS, SPRITE_SHEET_LAYOUT, ScenePosSchema, SchemaMetadataSchema, SemanticAssetRefSchema, ServiceDefinitionSchema, ServiceIdSchema, ServiceRefObjectSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SheetProjectionSchema, SkinSpecSchema, SocketEventsSchema, SocketServiceDefSchema, SoundEntrySchema, SpacingScaleSchema, SpriteDirectionSchema, SpriteSheetAtlasSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SubTextureSchema, SuggestedGuardSchema, TextureAtlasSchema, ThemeDefinitionSchema, ThemeIdSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TickIntervalSchema, TilesheetSchema, TraitCategorySchema, TraitConfigSchema, TraitConfigValueSchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitFieldRefSchema, TraitIdSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TraitUIBindingSchema, TransitionSchema, TypeIntentMapSchema, TypeIntentSchema, TypeScaleEntrySchema, TypeScaleSchema, TypeScaleTokensSchema, TypeSizeKeySchema, TypeSliceSchema, TypeSlotSchema, TypeWeightSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, aliasMap, answerToMutations, answersToMutations, applyEventWiring, applyFactoryCallPlanMutation, applyListenPayloadMapping, applyRenderOverlay, asEntityId, asEventId, asOrbitalId, asPageId, asPaletteEntryId, asServiceId, asThemeId, asTraitId, assertNoUnsatisfiableEnum, atomic, buildEdgeCoveringWalk, buildGuardPayloads, buildRecommendationContext, buildReplayPaths, buildResolvedTraitConfigs, buildStateGraph, callService, categorizeRemovals, checkI18nCoverage, classifyWorkflow, clearSchemaCache, collectBindings, collectEmbeddedTraitReferrers, collectReachableStates, collectRenderUiPatternTypes, collectTraitConfigRefAdjacency, collectTraitEmbedAdjacency, component_mapping_default as componentMapping, composeBehaviors, configRefEventKnob, constTruth, containsEntityBinding, containsPayloadBinding, contractFieldName, coreTables, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, decodeDevIdentityToken, defaultUnitAtlas, deref, deriveCollection, deriveExpectations, deriveInputType, describeTensorMismatch, despawn, detectLayoutStrategy, detectPageContentReduction, diffFactoryCalls, diffOrbitalSchemas, diffSchemaSemantics, diffSchemas, doEffects, emit, encodeDevIdentityToken, entityAccessPolicies, entityAccessTable, event_contracts_default as eventContracts, eventKeyPropsOf, eventListPropsOf, expectedEntityName, extractPayloadFieldRef, findCompatiblePatterns, findPersonaInRoster, findService, fingerprintNode, formatRecommendationsForPrompt, gatherTensorLastDim, generatePatternDescription, generateQuestions, getAllPatternTypes, getArgs, getBindingExamples, getComponentForPattern, getDefaultAnimationsForRole, getEmittedEvents, getEntity, getEntityCardinality, getInteractionModelForDomain, getOperator, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPage, getPages, getPatternActionsRef, getPatternDefinition, getPatternFieldsContract, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, getRemovals, getSchemaCacheStats, getServiceNames, getTrait, getTraitConfig, getTraitName, getVocabulary, hasService, hasSignificantPageReduction, idKindOf, idPrefix, inferTsType, insertChildAtPath, integrators_registry_default as integratorsRegistry, isBinding, isCallSiteConfigDeclaration, isCircuitEvent, isContentBodyPattern, isContentBodyPatternType, isContentMainWriter, isDestructiveChange, isDrawHostPattern, isDrawablePattern, isEffect, isEmailValue, isEntityAwarePattern, isEntityCall, isEntityId, isEntityReference, isEntityReferenceAny, isEventId, isEventPayloadValue, isFieldValue, isFileValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMainSlotRenderUi, isMcpService, isOrbitalDefinition, isOrbitalId, isPageId, isPageReference, isPageReferenceObject, isPageReferenceString, isPaletteEntryId, isPhoneValue, isPlanSnapshot, isReferenceConfigType, isRenderBindingMarker, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isSecretConfigType, isSemanticStringType, isSemanticStringValue, isServiceId, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isTensorValue, isThemeId, isThemeReference, isTraitFieldRef, isTraitId, isUrlValue, isUuidValue, isValidBinding, isValidPatternType, isValueInputPattern, languageOfLoloFirstToken, languageOfOrbTopLevelKeys, ledgerCurName, ledgerRename, ledgerResolveName, manifestToAssetCatalog, mapTensorLastDim, maskSecretConfigValues, matchAssetQuery, mergeEntityFrame, mintId, navigate, navigateBack, navigatePatternPath, normalizeCallSiteConfigToValues, normalizeTraitRef, normalizeUserContext, notify, parseAssetKey, parseAssetQuery, parseBinding, parseEntityRef, parseI18nTables, parseImportedTraitRef, parseOperatorTables, parseOrbitalSchema, parsePageRef, parseServiceRef, patterns_registry_default as patternsRegistry, persist, persistenceModeAllowsOverrides, personaFromIdentityRow, recommendPatterns, reduceToOwners, ref, registry, rehydrateKnobDefs, removeChildAtPath, renderUI, renderUiPatternTypesOf, replaceChildAtPath, reportIdenticalToEnglish, requiresConfirmation, resolveConfigRefEventName, resolveContentOwners, resolveDefaultViewer, resolvePageContentOwner, resolvePersonaSpec, safeParseOrbitalSchema, schemaToIR, set, setPropAtPath, sexpr, signatureToParamsSchema, spawn, summarizeOrbital, summarizeSchema, swap, tensorLastDimSize, tensorShape, toBindingRoot, traitDeclaresConfigForward, translateOverlaysToParams, validateAssetAnimations, validateBindingInContext, validateContract, walkSExpr, walkStatePairs, watch, widenTier };
70161
+ export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ANONYMOUS_USER, ASSET_ASPECTS, ASSET_DIMENSIONS, AgentDomainCategorySchema, AnimationDefSchema, AnimationNameSchema, AssetAspectSchema, AssetCatalogEntrySchema, AssetCatalogSchema, AssetDimensionSchema, AssetSchema, AudioManifestSchema, BINDING_CONTEXT_RULES, BINDING_DOCS, BINDING_ROOTS, BindingSchema, CAMERA_MODES, COMPONENT_MAPPING, CONFIG_REF_EVENT_PATTERN, CORE_BINDINGS, CameraModeSchema, CameraSchema, ColorSliceSchema, ColorTokensSchema, ComputedEventContractSchema, ComputedEventListenerSchema, ConfigFieldDeclarationSchema, ConfigProvenanceRecordSchema, CustomPatternDefinitionSchema, CustomPatternMapSchema, DEFAULT_INTERACTION_MODELS, DEFAULT_UNIT_ANIMATION_ROWS, DEFAULT_VIEWER, DEV_TOKEN_PREFIX, DeclaredTraitConfigSchema, DensitySliceSchema, DensityTokensSchema, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EVENT_CONTRACTS, EffectSchema, ElevationSliceSchema, ElevationTokensSchema, EntityCallSchema, EntityFieldContractSchema, EntityFieldSchema, EntityIdSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntitySchema, EntitySemanticRoleSchema, EventIdSchema, EventListenerSchema, EventPayloadFieldSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpectDeclarationSchema, ExpressionSchema, FIELD_TYPES, FieldSchema, FieldTypeSchema, FileValueSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, I18N_SECTIONS, INTEGRATORS_REGISTRY, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IdentityLedgerSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, LANGUAGE_CODES, LOLO_FIRST_TOKEN_KEYWORDS, LedgerEntrySchema, LedgerKindSchema, ListenSourceSchema, MANIFEST_ASSET_LICENSES, MANIFEST_CANVAS_AFFINITIES, MANIFEST_ENTRY_KINDS, MANIFEST_SOURCE_CATALOGS, ManifestAssetLicenseSchema, ManifestCanvasAffinitySchema, ManifestEntryKindSchema, ManifestEntrySchema, ManifestFrameSpecSchema, ManifestSourceCatalogSchema, McpServiceDefSchema, MotionDurationKeySchema, MotionDurationPaletteSchema, MotionEasingKeySchema, MotionEasingPaletteSchema, MotionIntentMapSchema, MotionIntentSchema, MotionSliceSchema, MotionTokensSchema, NodeClassificationSchema, OrbitalDefinitionSchema, OrbitalEntitySchema, OrbitalIdSchema, OrbitalPageSchema, OrbitalPageStrictSchema, OrbitalRefObjectSchema, OrbitalRefStringSchema, OrbitalSchemaSchema, OrbitalTraitRefSchema, OrbitalUnitSchema, OrbitalSchema as OrbitalZodSchema, PATTERN_REGISTRY, PATTERN_TYPES, PageIdSchema, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRefSchema, PaletteEntryIdSchema, PatternTypeSchema, PayloadFieldSchema, PayloadTypeWhenSchema, REFERENCE_CONFIG_TYPES, RENDER_BINDING_MARKER, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, RestAuthConfigSchema, RestServiceDefSchema, SECRET_CONFIG_TYPES, SEMANTIC_STRING_TYPES, SERVICE_TYPES, SExprAtomSchema, SExprDataSchema, SExprSchema, SHEET_PROJECTIONS, SPRITE_DIRECTIONS, SPRITE_SHEET_LAYOUT, ScenePosSchema, SchemaMetadataSchema, SemanticAssetRefSchema, ServiceDefinitionSchema, ServiceIdSchema, ServiceRefObjectSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SheetProjectionSchema, SkinSpecSchema, SocketEventsSchema, SocketServiceDefSchema, SoundEntrySchema, SpacingScaleSchema, SpriteDirectionSchema, SpriteSheetAtlasSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SubTextureSchema, SuggestedGuardSchema, TextureAtlasSchema, ThemeDefinitionSchema, ThemeIdSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TickIntervalSchema, TilesheetSchema, TraitCategorySchema, TraitConfigSchema, TraitConfigValueSchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitFieldRefSchema, TraitIdSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TraitUIBindingSchema, TransitionSchema, TypeIntentMapSchema, TypeIntentSchema, TypeScaleEntrySchema, TypeScaleSchema, TypeScaleTokensSchema, TypeSizeKeySchema, TypeSliceSchema, TypeSlotSchema, TypeWeightSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, aliasMap, answerToMutations, answersToMutations, applyEventWiring, applyFactoryCallPlanMutation, applyListenPayloadMapping, applyRenderOverlay, asEntityId, asEventId, asOrbitalId, asPageId, asPaletteEntryId, asServiceId, asThemeId, asTraitId, assertNoUnsatisfiableEnum, atomic, buildEdgeCoveringWalk, buildGuardPayloads, buildRecommendationContext, buildReplayPaths, buildResolvedTraitConfigs, buildStateGraph, callService, categorizeRemovals, checkI18nCoverage, classifyWorkflow, clearSchemaCache, collectBindings, collectCallsiteCaptureChildren, collectEmbeddedTraitReferrers, collectReachableStates, collectRenderUiPatternTypes, collectTraitConfigRefAdjacency, collectTraitEmbedAdjacency, component_mapping_default as componentMapping, composeBehaviors, configRefEventKnob, constTruth, containsEntityBinding, containsPayloadBinding, contractFieldName, coreTables, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, decodeDevIdentityToken, defaultUnitAtlas, deref, deriveCollection, deriveExpectations, deriveId, deriveInputType, describeTensorMismatch, despawn, detectLayoutStrategy, detectPageContentReduction, diffFactoryCalls, diffOrbitalSchemas, diffSchemaSemantics, diffSchemas, doEffects, emit, encodeDevIdentityToken, entityAccessPolicies, entityAccessTable, event_contracts_default as eventContracts, eventKeyPropsOf, eventListPropsOf, expectedEntityName, extractPayloadFieldRef, findCompatiblePatterns, findPersonaInRoster, findService, fingerprintNode, formatRecommendationsForPrompt, gatherTensorLastDim, generatePatternDescription, generateQuestions, getAllPatternTypes, getArgs, getBindingExamples, getComponentForPattern, getDefaultAnimationsForRole, getEmittedEvents, getEntity, getEntityCardinality, getInteractionModelForDomain, getNestedValue, getOperator, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPage, getPages, getPatternActionsRef, getPatternDefinition, getPatternFieldsContract, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, getRemovals, getSchemaCacheStats, getServiceNames, getTrait, getTraitConfig, getTraitName, getVocabulary, hasService, hasSignificantPageReduction, idKindOf, idPrefix, inferTsType, insertChildAtPath, integrators_registry_default as integratorsRegistry, isBinding, isCallSiteConfigDeclaration, isCircuitEvent, isContentBodyPattern, isContentBodyPatternType, isContentMainWriter, isDestructiveChange, isDrawHostPattern, isDrawablePattern, isEffect, isEmailValue, isEntityAwarePattern, isEntityCall, isEntityId, isEntityReference, isEntityReferenceAny, isEventId, isEventPayloadValue, isFieldValue, isFileValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMainSlotRenderUi, isMcpService, isOrbitalDefinition, isOrbitalId, isPageId, isPageReference, isPageReferenceObject, isPageReferenceString, isPaletteEntryId, isPhoneValue, isPlanSnapshot, isReferenceConfigType, isRenderBindingMarker, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isSecretConfigType, isSemanticStringType, isSemanticStringValue, isServiceId, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isTensorValue, isThemeId, isThemeReference, isTraitFieldRef, isTraitId, isUrlValue, isUuidValue, isValidBinding, isValidPatternType, isValueInputPattern, languageOfLoloFirstToken, languageOfOrbTopLevelKeys, ledgerCurName, ledgerRename, ledgerResolveName, lexLolo, localizeLoloSource, localizeMap, localizeOrbValue, manifestToAssetCatalog, mapTensorLastDim, maskSecretConfigValues, matchAssetQuery, mergeEntityFrame, mintId, navigate, navigateBack, navigatePatternPath, normalizeCallSiteConfigToValues, normalizeTraitRef, normalizeUserContext, notify, overrideDeclaredKnobs, parseAssetKey, parseAssetQuery, parseBinding, parseEntityRef, parseI18nTables, parseImportedTraitRef, parseOperatorTables, parseOrbitalRef, parseOrbitalSchema, parsePageRef, parseServiceRef, patterns_registry_default as patternsRegistry, persist, persistenceModeAllowsOverrides, personaFromIdentityRow, recommendPatterns, reduceToOwners, ref, registry, rehydrateKnobDefs, removeChildAtPath, renderUI, renderUiPatternTypesOf, replaceChildAtPath, reportIdenticalToEnglish, requiresConfirmation, resolveConfigRefEventName, resolveContentOwners, resolveDefaultViewer, resolvePageContentOwner, resolvePersonaSpec, safeParseOrbitalSchema, schemaToIR, set, setPropAtPath, sexpr, signatureToParamsSchema, spawn, summarizeOrbital, summarizeSchema, swap, tensorLastDimSize, tensorShape, toBindingRoot, traitDeclaresConfigForward, traitReferencesCallsitePayload, translateOverlaysToParams, validateAssetAnimations, validateBindingInContext, validateContract, walkSExpr, walkStatePairs, watch, widenTier };
68619
70162
  //# sourceMappingURL=index.js.map
68620
70163
  //# sourceMappingURL=index.js.map