@almadar/core 10.29.0 → 10.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,165 @@
1
1
  import { z } from 'zod';
2
2
 
3
3
  // src/types/orbital.ts
4
+ var ID_PREFIXES = {
5
+ orbital: "orb_",
6
+ entity: "ent_",
7
+ trait: "trt_",
8
+ event: "evt_",
9
+ page: "pag_",
10
+ service: "svc_",
11
+ theme: "thm_",
12
+ palette: "pal_"
13
+ };
14
+ function brand(value) {
15
+ return value;
16
+ }
17
+ function makeIdKind(kind) {
18
+ const prefix = ID_PREFIXES[kind];
19
+ const is = (value) => value.startsWith(prefix) && value.length > prefix.length;
20
+ const as = (value) => {
21
+ if (!is(value)) {
22
+ throw new Error(
23
+ `Expected ${kind} id (prefix "${prefix}"), got: ${JSON.stringify(value)}`
24
+ );
25
+ }
26
+ return brand(value);
27
+ };
28
+ return { prefix, is, as };
29
+ }
30
+ var orbitalKind = makeIdKind("orbital");
31
+ var entityKind = makeIdKind("entity");
32
+ var traitKind = makeIdKind("trait");
33
+ var eventKind = makeIdKind("event");
34
+ var pageKind = makeIdKind("page");
35
+ var serviceKind = makeIdKind("service");
36
+ var themeKind = makeIdKind("theme");
37
+ var paletteKind = makeIdKind("palette");
38
+ var isOrbitalId = orbitalKind.is;
39
+ var asOrbitalId = orbitalKind.as;
40
+ var isEntityId = entityKind.is;
41
+ var asEntityId = entityKind.as;
42
+ var isTraitId = traitKind.is;
43
+ var asTraitId = traitKind.as;
44
+ var isEventId = eventKind.is;
45
+ var asEventId = eventKind.as;
46
+ var isPageId = pageKind.is;
47
+ var asPageId = pageKind.as;
48
+ var isServiceId = serviceKind.is;
49
+ var asServiceId = serviceKind.as;
50
+ var isThemeId = themeKind.is;
51
+ var asThemeId = themeKind.as;
52
+ var isPaletteEntryId = paletteKind.is;
53
+ var asPaletteEntryId = paletteKind.as;
54
+ function idPrefix(kind) {
55
+ return ID_PREFIXES[kind];
56
+ }
57
+ function idKindOf(id) {
58
+ for (const kind of Object.keys(ID_PREFIXES)) {
59
+ const prefix = ID_PREFIXES[kind];
60
+ if (id.startsWith(prefix) && id.length > prefix.length) return kind;
61
+ }
62
+ return null;
63
+ }
64
+ var CROCKFORD = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
65
+ var TIME_LEN = 10;
66
+ var RANDOM_LEN = 16;
67
+ function randomBytes(len) {
68
+ const g = globalThis;
69
+ if (g.crypto?.getRandomValues) {
70
+ return g.crypto.getRandomValues(new Uint8Array(len));
71
+ }
72
+ throw new Error("mintId: no crypto.getRandomValues available in this runtime");
73
+ }
74
+ function encodeTime(now) {
75
+ let value = now;
76
+ let out = "";
77
+ for (let i = 0; i < TIME_LEN; i++) {
78
+ const mod = value % 32;
79
+ out = CROCKFORD[mod] + out;
80
+ value = (value - mod) / 32;
81
+ }
82
+ return out;
83
+ }
84
+ function encodeRandom() {
85
+ const bytes = randomBytes(RANDOM_LEN);
86
+ let out = "";
87
+ for (let i = 0; i < RANDOM_LEN; i++) {
88
+ out += CROCKFORD[bytes[i] & 31];
89
+ }
90
+ return out;
91
+ }
92
+ function ulid() {
93
+ return encodeTime(Date.now()) + encodeRandom();
94
+ }
95
+ function mintId(kind) {
96
+ return brand(ID_PREFIXES[kind] + ulid());
97
+ }
98
+ function ledgerResolveName(ledger, kind, name) {
99
+ for (const [id, entry] of Object.entries(ledger.entries)) {
100
+ if (entry.kind === kind && entry.curName === name) return id;
101
+ }
102
+ return null;
103
+ }
104
+ function ledgerRename(ledger, id, to, at) {
105
+ const entry = ledger.entries[id];
106
+ if (entry === void 0) return ledger;
107
+ const updated = {
108
+ ...entry,
109
+ curName: to,
110
+ renames: [...entry.renames, { from: entry.curName, to, at }]
111
+ };
112
+ return { ...ledger, entries: { ...ledger.entries, [id]: updated } };
113
+ }
114
+ function ledgerCurName(ledger, id) {
115
+ return ledger.entries[id]?.curName ?? null;
116
+ }
117
+ var OrbitalIdSchema = z.string().refine(isOrbitalId, { message: `Expected an orbital id (prefix "${ID_PREFIXES.orbital}")` });
118
+ var EntityIdSchema = z.string().refine(isEntityId, { message: `Expected an entity id (prefix "${ID_PREFIXES.entity}")` });
119
+ var TraitIdSchema = z.string().refine(isTraitId, { message: `Expected a trait id (prefix "${ID_PREFIXES.trait}")` });
120
+ var EventIdSchema = z.string().refine(isEventId, { message: `Expected an event id (prefix "${ID_PREFIXES.event}")` });
121
+ var PageIdSchema = z.string().refine(isPageId, { message: `Expected a page id (prefix "${ID_PREFIXES.page}")` });
122
+ var ServiceIdSchema = z.string().refine(isServiceId, { message: `Expected a service id (prefix "${ID_PREFIXES.service}")` });
123
+ var ThemeIdSchema = z.string().refine(isThemeId, { message: `Expected a theme id (prefix "${ID_PREFIXES.theme}")` });
124
+ var PaletteEntryIdSchema = z.string().refine(isPaletteEntryId, { message: `Expected a palette-entry id (prefix "${ID_PREFIXES.palette}")` });
125
+ var LedgerKindSchema = z.enum([
126
+ "orbital",
127
+ "entity",
128
+ "trait",
129
+ "event",
130
+ "page",
131
+ "service",
132
+ "theme"
133
+ ]);
134
+ var LedgerEntrySchema = z.object({
135
+ id: z.string(),
136
+ kind: LedgerKindSchema,
137
+ bakedName: z.string(),
138
+ curName: z.string(),
139
+ renames: z.array(
140
+ z.object({ from: z.string(), to: z.string(), at: z.string() })
141
+ ),
142
+ owner: z.enum(["std", "io", "workspace"]),
143
+ parent: TraitIdSchema.optional()
144
+ });
145
+ var IdentityLedgerSchema = z.object({
146
+ schemaVersion: z.literal(1),
147
+ entries: z.record(LedgerEntrySchema)
148
+ });
149
+ var JsonValueSchema = z.lazy(
150
+ () => z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(JsonValueSchema), z.record(JsonValueSchema)])
151
+ );
152
+ function isJsonPrimitive(value) {
153
+ return value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean";
154
+ }
155
+ function isJsonObject(value) {
156
+ return value !== null && typeof value === "object" && !Array.isArray(value);
157
+ }
158
+ function isJsonArray(value) {
159
+ return Array.isArray(value);
160
+ }
161
+
162
+ // src/types/field.ts
4
163
  var FieldTypeSchema = z.enum([
5
164
  "string",
6
165
  "number",
@@ -25,6 +184,7 @@ var RelationCardinalitySchema = z.enum([
25
184
  ]);
26
185
  var RelationConfigSchema = z.object({
27
186
  entity: z.string().min(1, "Target entity is required"),
187
+ entityId: EntityIdSchema.optional(),
28
188
  field: z.string().optional(),
29
189
  cardinality: RelationCardinalitySchema.optional(),
30
190
  onDelete: z.enum(["cascade", "nullify", "restrict"]).optional(),
@@ -35,6 +195,7 @@ var RelationConfigSchema = z.object({
35
195
  }).transform((data) => {
36
196
  const normalized = {
37
197
  entity: data.entity || data.target || "",
198
+ entityId: data.entityId,
38
199
  cardinality: data.cardinality || data.type,
39
200
  field: data.field,
40
201
  onDelete: data.onDelete
@@ -62,7 +223,7 @@ var EntityFieldSchema = z.lazy(() => {
62
223
  const baseFieldShape = {
63
224
  name: z.string().min(1, "Field name is required").optional(),
64
225
  required: z.boolean().optional(),
65
- default: z.unknown().optional(),
226
+ default: JsonValueSchema.optional(),
66
227
  format: FieldFormatSchema.optional(),
67
228
  min: z.number().optional(),
68
229
  max: z.number().optional(),
@@ -526,6 +687,7 @@ var PayloadFieldSchema = z.object({
526
687
  });
527
688
  var EventSchema = z.object({
528
689
  key: z.string().min(1, "Event key is required"),
690
+ id: EventIdSchema.optional(),
529
691
  name: z.string().min(1, "Event name is required"),
530
692
  description: z.string().optional(),
531
693
  synonyms: z.string().optional(),
@@ -543,6 +705,7 @@ var TransitionSchema = z.object({
543
705
  from: z.string().min(1, "Transition source state is required"),
544
706
  to: z.string().min(1, "Transition target state is required"),
545
707
  event: z.string().min(1, "Transition event is required"),
708
+ eventId: EventIdSchema.optional(),
546
709
  guard: ExpressionSchema.nullish(),
547
710
  effects: z.array(EffectSchema).optional(),
548
711
  description: z.string().nullish()
@@ -593,6 +756,10 @@ function normalizeCallSiteConfigToValues(config) {
593
756
  }
594
757
  return hasAny ? out : void 0;
595
758
  }
759
+ var REFERENCE_CONFIG_TYPES = ["entity", "trait", "event"];
760
+ function isReferenceConfigType(type) {
761
+ return REFERENCE_CONFIG_TYPES.includes(type);
762
+ }
596
763
  var ConfigFieldItemsDeclarationSchema = z.lazy(
597
764
  () => z.object({
598
765
  type: z.string().optional(),
@@ -603,6 +770,7 @@ var ConfigFieldItemsDeclarationSchema = z.lazy(
603
770
  var ConfigFieldDeclarationSchema = z.object({
604
771
  type: z.string(),
605
772
  default: TraitConfigValueSchema.optional(),
773
+ refId: z.string().optional(),
606
774
  required: z.boolean().optional(),
607
775
  label: z.string().optional(),
608
776
  description: z.string().optional(),
@@ -646,7 +814,7 @@ var TraitEntityFieldSchema = z.object({
646
814
  "enum"
647
815
  ]),
648
816
  required: z.boolean().optional(),
649
- default: z.unknown().optional(),
817
+ default: TraitConfigValueSchema.optional(),
650
818
  values: z.array(z.string()).optional(),
651
819
  items: ConfigFieldItemsDeclarationSchema.optional(),
652
820
  properties: z.lazy(() => z.record(TraitEntityFieldSchema)).optional()
@@ -668,9 +836,11 @@ var TraitTickSchema = z.object({
668
836
  interval: z.union([z.literal("frame"), z.number().positive()]),
669
837
  appliesTo: z.array(z.string()).optional(),
670
838
  pages: z.array(z.string()).optional(),
839
+ pageIds: z.array(PageIdSchema).optional(),
671
840
  guard: ExpressionSchema.optional(),
672
841
  effects: z.array(EffectSchema).min(1),
673
- emits: z.array(z.string()).optional()
842
+ emits: z.array(z.string()).optional(),
843
+ emitIds: z.array(EventIdSchema).optional()
674
844
  });
675
845
  var EventScopeSchema = z.enum(["internal", "external"]);
676
846
  var EventPayloadFieldSchema = z.object({
@@ -720,6 +890,7 @@ var TraitEventContractSchema = z.object({
720
890
  /^([A-Za-z][A-Za-z0-9_]*|@config\.[A-Za-z_][A-Za-z0-9_]*)$/,
721
891
  "Event name must start with a letter and contain only letters, digits, and underscores, or be a `@config.<knob>` reference"
722
892
  ),
893
+ eventId: EventIdSchema.optional(),
723
894
  description: z.string().optional(),
724
895
  synonyms: z.string().optional(),
725
896
  tier: z.string().optional(),
@@ -728,16 +899,24 @@ var TraitEventContractSchema = z.object({
728
899
  });
729
900
  var ListenSourceSchema = z.union([
730
901
  z.object({ kind: z.literal("any") }),
731
- z.object({ kind: z.literal("trait"), trait: z.string().min(1) }),
902
+ z.object({
903
+ kind: z.literal("trait"),
904
+ trait: z.string().min(1),
905
+ traitId: TraitIdSchema.optional()
906
+ }),
732
907
  z.object({
733
908
  kind: z.literal("orbital"),
734
909
  orbital: z.string().min(1),
735
- trait: z.string().min(1)
910
+ trait: z.string().min(1),
911
+ orbitalId: OrbitalIdSchema.optional(),
912
+ traitId: TraitIdSchema.optional()
736
913
  })
737
914
  ]);
738
915
  var TraitEventListenerSchema = z.object({
739
916
  event: z.string().min(1),
917
+ eventId: EventIdSchema.optional(),
740
918
  triggers: z.string().min(1),
919
+ triggersId: EventIdSchema.optional(),
741
920
  description: z.string().optional(),
742
921
  synonyms: z.string().optional(),
743
922
  tier: z.string().optional(),
@@ -753,14 +932,20 @@ var RequiredFieldSchema = z.object({
753
932
  });
754
933
  var TraitReferenceSchema = z.object({
755
934
  ref: z.string().min(1),
935
+ refId: TraitIdSchema.optional(),
936
+ // V4 local declaration id (see the interface doc) — declared so the
937
+ // strip-mode zod gate carries it through instead of dropping it.
938
+ id: TraitIdSchema.optional(),
756
939
  // Phase 1.2: optional registry path disambiguator, pairs with `ref`.
757
940
  from: z.string().optional(),
758
941
  linkedEntity: z.string().optional(),
942
+ linkedEntityId: EntityIdSchema.optional(),
759
943
  name: z.string().optional(),
760
944
  events: z.record(
761
945
  z.string().min(1, "events key (atom event name) must be non-empty"),
762
946
  z.string().min(1, "events value (caller event name) must be non-empty")
763
947
  ).optional(),
948
+ eventIds: z.record(z.string().min(1), EventIdSchema).optional(),
764
949
  fields: z.record(
765
950
  z.string().min(1, "fields key (canonical field name) must be non-empty"),
766
951
  z.string().min(1, "fields value (consumer field name) must be non-empty")
@@ -779,12 +964,11 @@ var TraitReferenceSchema = z.object({
779
964
  listens: z.array(z.unknown()).optional(),
780
965
  emitsScope: z.enum(["internal", "external"]).optional(),
781
966
  // Phase F.8: per-transition effects override. The keys are event
782
- // names (the transition triggers AFTER renames). Values are arrays
783
- // of SExpression-shaped data; the inliner validates the SExpression
784
- // shape during application, so the schema accepts loose `unknown[]`.
967
+ // names (the transition triggers AFTER renames); values are SExpr
968
+ // effect tuples.
785
969
  effects: z.record(
786
970
  z.string().min(1, "effects override key (event name) must be non-empty"),
787
- z.array(z.unknown())
971
+ z.array(SExprSchema)
788
972
  ).optional()
789
973
  }).refine(
790
974
  (ref2) => {
@@ -810,6 +994,7 @@ var SourceBehaviorMetadataSchema = z.object({
810
994
  originalName: z.string().min(1)
811
995
  });
812
996
  var TraitSchema = z.object({
997
+ id: TraitIdSchema.optional(),
813
998
  name: z.string().min(1),
814
999
  description: z.string().optional(),
815
1000
  description_visual_prompt: z.string().optional(),
@@ -821,6 +1006,9 @@ var TraitSchema = z.object({
821
1006
  capabilities: z.array(z.string()).optional(),
822
1007
  scope: TraitScopeSchema,
823
1008
  linkedEntity: z.string().optional(),
1009
+ linkedEntityId: EntityIdSchema.optional(),
1010
+ entityRefIds: z.record(z.string().min(1), EntityIdSchema).optional(),
1011
+ traitEmbedIds: z.record(z.string().min(1), TraitIdSchema).optional(),
824
1012
  requiredFields: z.array(RequiredFieldSchema).optional(),
825
1013
  dataEntities: z.array(TraitDataEntitySchema).optional(),
826
1014
  stateMachine: StateMachineSchema.optional(),
@@ -894,10 +1082,13 @@ var ViewTypeSchema = z.enum([
894
1082
  ]);
895
1083
  var PageTraitRefSchema = z.object({
896
1084
  ref: z.string().min(1, "Trait ref is required"),
1085
+ refId: TraitIdSchema.optional(),
897
1086
  linkedEntity: z.string().optional(),
1087
+ linkedEntityId: EntityIdSchema.optional(),
898
1088
  config: TraitConfigSchema.optional()
899
1089
  });
900
1090
  var OrbitalPageStrictSchema = z.object({
1091
+ id: PageIdSchema.optional(),
901
1092
  name: z.string().min(1, "Page name is required"),
902
1093
  path: z.string().min(1, "Page path is required").startsWith("/", "Path must start with /"),
903
1094
  primaryEntity: z.string().min(1, "Primary entity is required"),
@@ -905,6 +1096,7 @@ var OrbitalPageStrictSchema = z.object({
905
1096
  title: z.string().optional()
906
1097
  }).strict();
907
1098
  var OrbitalPageSchema = z.object({
1099
+ id: PageIdSchema.optional(),
908
1100
  name: z.string().min(1, "Page name is required"),
909
1101
  path: z.string().min(1, "Page path is required").startsWith("/", "Path must start with /"),
910
1102
  viewType: ViewTypeSchema.optional(),
@@ -1481,11 +1673,14 @@ var PageRefStringSchema = z.string().regex(
1481
1673
  );
1482
1674
  var PageRefObjectSchema = z.object({
1483
1675
  ref: PageRefStringSchema,
1676
+ refId: PageIdSchema.optional(),
1484
1677
  // Phase 1.2: optional registry path disambiguator, pairs with `ref`.
1485
1678
  from: z.string().optional(),
1486
1679
  path: z.string().startsWith("/").optional(),
1487
1680
  linkedEntity: z.string().optional(),
1488
- traits: z.array(TraitRefSchema).optional()
1681
+ linkedEntityId: EntityIdSchema.optional(),
1682
+ traits: z.array(TraitRefSchema).optional(),
1683
+ traitRefIds: z.array(TraitIdSchema).optional()
1489
1684
  });
1490
1685
  var PageRefSchema = z.union([
1491
1686
  PageSchema,
@@ -1539,6 +1734,7 @@ var ComputedEventListenerSchema = z.object({
1539
1734
  payloadMapping: z.record(z.string()).optional()
1540
1735
  });
1541
1736
  var OrbitalDefinitionSchema = z.object({
1737
+ id: OrbitalIdSchema.optional(),
1542
1738
  name: z.string().min(1, "Orbital name is required"),
1543
1739
  description: z.string().optional(),
1544
1740
  visual_prompt: z.string().optional(),
@@ -1603,7 +1799,12 @@ var OrbitalSchemaSchema = z.object({
1603
1799
  orbitals: z.array(OrbitalSchema).min(1, "At least one orbital is required"),
1604
1800
  services: z.array(ServiceDefinitionSchema).optional(),
1605
1801
  config: OrbitalConfigSchema.optional(),
1606
- _metadata: SchemaMetadataSchema.optional()
1802
+ _metadata: SchemaMetadataSchema.optional(),
1803
+ // V4 identity — optional/dual-carry until the Phase-7 flip. Present on
1804
+ // id-carrying `.orb` files so `parseOrbitalSchema` preserves them instead
1805
+ // of stripping unknown keys.
1806
+ schemaVersion: z.number().optional(),
1807
+ ledger: IdentityLedgerSchema.optional()
1607
1808
  });
1608
1809
  function parseOrbitalSchema(data) {
1609
1810
  return OrbitalSchemaSchema.parse(data);
@@ -1787,7 +1988,7 @@ function getInteractionModelForDomain(domain) {
1787
1988
  // src/patterns/patterns-registry.json
1788
1989
  var patterns_registry_default = {
1789
1990
  version: "1.0.0",
1790
- exportedAt: "2026-07-13T15:27:57.365Z",
1991
+ exportedAt: "2026-07-21T09:54:57.379Z",
1791
1992
  patterns: {
1792
1993
  "entity-table": {
1793
1994
  type: "entity-table",
@@ -2492,7 +2693,7 @@ var patterns_registry_default = {
2492
2693
  types: [
2493
2694
  "function"
2494
2695
  ],
2495
- description: "renderItem prop",
2696
+ description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
2496
2697
  kind: "callback",
2497
2698
  callbackArgs: [
2498
2699
  {
@@ -2662,15 +2863,6 @@ var patterns_registry_default = {
2662
2863
  ],
2663
2864
  typicalSize: "medium",
2664
2865
  propsSchema: {
2665
- entity: {
2666
- types: [
2667
- "object",
2668
- "array"
2669
- ],
2670
- description: "Entity record or array of records \u2014 pre-resolved by the trait via render-ui after a fetch emit",
2671
- kind: "entity",
2672
- cardinality: "collection"
2673
- },
2674
2866
  className: {
2675
2867
  types: [
2676
2868
  "string"
@@ -2774,6 +2966,15 @@ var patterns_registry_default = {
2774
2966
  ]
2775
2967
  }
2776
2968
  },
2969
+ entity: {
2970
+ types: [
2971
+ "object",
2972
+ "array"
2973
+ ],
2974
+ description: "Entity data (single record or collection).",
2975
+ kind: "entity",
2976
+ cardinality: "collection"
2977
+ },
2777
2978
  minCardWidth: {
2778
2979
  types: [
2779
2980
  "number"
@@ -5307,7 +5508,8 @@ var patterns_registry_default = {
5307
5508
  category: "filter",
5308
5509
  tier: "molecules",
5309
5510
  family: "core",
5310
- description: "Multiple filter controls",
5511
+ description: "FilterGroup \u2014 a panel of filter controls that narrows a collection by field values.",
5512
+ capabilities: "search refinement panel, facet filters, admin list filters, records filter sidebar, filter chips panel",
5311
5513
  suggestedFor: [
5312
5514
  "list pages with filterable data"
5313
5515
  ],
@@ -5508,18 +5710,6 @@ var patterns_registry_default = {
5508
5710
  role: {
5509
5711
  types: [
5510
5712
  "string"
5511
- ],
5512
- enumValues: [
5513
- "player",
5514
- "enemy",
5515
- "npc",
5516
- "item",
5517
- "tile",
5518
- "projectile",
5519
- "effect",
5520
- "ui",
5521
- "decoration",
5522
- "vehicle"
5523
5713
  ]
5524
5714
  },
5525
5715
  category: {
@@ -5549,6 +5739,11 @@ var patterns_registry_default = {
5549
5739
  "isometric"
5550
5740
  ]
5551
5741
  },
5742
+ variant: {
5743
+ types: [
5744
+ "string"
5745
+ ]
5746
+ },
5552
5747
  dimension: {
5553
5748
  types: [
5554
5749
  "string"
@@ -5569,6 +5764,16 @@ var patterns_registry_default = {
5569
5764
  "8:1"
5570
5765
  ]
5571
5766
  },
5767
+ atlas: {
5768
+ types: [
5769
+ "asset"
5770
+ ]
5771
+ },
5772
+ sprite: {
5773
+ types: [
5774
+ "string"
5775
+ ]
5776
+ },
5572
5777
  name: {
5573
5778
  types: [
5574
5779
  "string"
@@ -5581,7 +5786,9 @@ var patterns_registry_default = {
5581
5786
  }
5582
5787
  },
5583
5788
  required: [
5584
- "url"
5789
+ "url",
5790
+ "role",
5791
+ "category"
5585
5792
  ]
5586
5793
  },
5587
5794
  badge: {
@@ -5660,18 +5867,6 @@ var patterns_registry_default = {
5660
5867
  role: {
5661
5868
  types: [
5662
5869
  "string"
5663
- ],
5664
- enumValues: [
5665
- "player",
5666
- "enemy",
5667
- "npc",
5668
- "item",
5669
- "tile",
5670
- "projectile",
5671
- "effect",
5672
- "ui",
5673
- "decoration",
5674
- "vehicle"
5675
5870
  ]
5676
5871
  },
5677
5872
  category: {
@@ -5701,6 +5896,11 @@ var patterns_registry_default = {
5701
5896
  "isometric"
5702
5897
  ]
5703
5898
  },
5899
+ variant: {
5900
+ types: [
5901
+ "string"
5902
+ ]
5903
+ },
5704
5904
  dimension: {
5705
5905
  types: [
5706
5906
  "string"
@@ -5721,6 +5921,16 @@ var patterns_registry_default = {
5721
5921
  "8:1"
5722
5922
  ]
5723
5923
  },
5924
+ atlas: {
5925
+ types: [
5926
+ "asset"
5927
+ ]
5928
+ },
5929
+ sprite: {
5930
+ types: [
5931
+ "string"
5932
+ ]
5933
+ },
5724
5934
  name: {
5725
5935
  types: [
5726
5936
  "string"
@@ -5733,7 +5943,9 @@ var patterns_registry_default = {
5733
5943
  }
5734
5944
  },
5735
5945
  required: [
5736
- "url"
5946
+ "url",
5947
+ "role",
5948
+ "category"
5737
5949
  ]
5738
5950
  },
5739
5951
  badge: {
@@ -6009,7 +6221,7 @@ var patterns_registry_default = {
6009
6221
  types: [
6010
6222
  "string"
6011
6223
  ],
6012
- description: "Declarative step click event \u2014 emits UI:{stepClickEvent} with { stepIndex }",
6224
+ description: "Declarative step click event \u2014 emits UI:{stepClickEvent} with { stepIndex }. Setting it requires declaring that event (with a `{ stepIndex }` payload) and a transition handling it in the same trait; omit this prop for non-clickable progress indicators.",
6013
6225
  kind: "event-ref",
6014
6226
  emitPayloadSchema: [
6015
6227
  {
@@ -7171,6 +7383,13 @@ var patterns_registry_default = {
7171
7383
  "string"
7172
7384
  ],
7173
7385
  description: "className prop"
7386
+ },
7387
+ fullPage: {
7388
+ types: [
7389
+ "boolean"
7390
+ ],
7391
+ description: "Center over the whole viewport (fix: inset-0 overlay) instead of inline.",
7392
+ default: false
7174
7393
  }
7175
7394
  }
7176
7395
  },
@@ -7362,6 +7581,14 @@ var patterns_registry_default = {
7362
7581
  kind: "callback",
7363
7582
  callbackArgs: []
7364
7583
  },
7584
+ onExited: {
7585
+ types: [
7586
+ "function"
7587
+ ],
7588
+ description: "Fires after the exit animation completes (the modal is about to unmount).",
7589
+ kind: "callback",
7590
+ callbackArgs: []
7591
+ },
7365
7592
  title: {
7366
7593
  types: [
7367
7594
  "string"
@@ -8671,18 +8898,6 @@ var patterns_registry_default = {
8671
8898
  role: {
8672
8899
  types: [
8673
8900
  "string"
8674
- ],
8675
- enumValues: [
8676
- "player",
8677
- "enemy",
8678
- "npc",
8679
- "item",
8680
- "tile",
8681
- "projectile",
8682
- "effect",
8683
- "ui",
8684
- "decoration",
8685
- "vehicle"
8686
8901
  ]
8687
8902
  },
8688
8903
  category: {
@@ -8712,6 +8927,11 @@ var patterns_registry_default = {
8712
8927
  "isometric"
8713
8928
  ]
8714
8929
  },
8930
+ variant: {
8931
+ types: [
8932
+ "string"
8933
+ ]
8934
+ },
8715
8935
  dimension: {
8716
8936
  types: [
8717
8937
  "string"
@@ -8732,6 +8952,16 @@ var patterns_registry_default = {
8732
8952
  "8:1"
8733
8953
  ]
8734
8954
  },
8955
+ atlas: {
8956
+ types: [
8957
+ "asset"
8958
+ ]
8959
+ },
8960
+ sprite: {
8961
+ types: [
8962
+ "string"
8963
+ ]
8964
+ },
8735
8965
  name: {
8736
8966
  types: [
8737
8967
  "string"
@@ -8744,7 +8974,9 @@ var patterns_registry_default = {
8744
8974
  }
8745
8975
  },
8746
8976
  propertyRequired: [
8747
- "url"
8977
+ "url",
8978
+ "role",
8979
+ "category"
8748
8980
  ]
8749
8981
  },
8750
8982
  action: {
@@ -8864,18 +9096,6 @@ var patterns_registry_default = {
8864
9096
  role: {
8865
9097
  types: [
8866
9098
  "string"
8867
- ],
8868
- enumValues: [
8869
- "player",
8870
- "enemy",
8871
- "npc",
8872
- "item",
8873
- "tile",
8874
- "projectile",
8875
- "effect",
8876
- "ui",
8877
- "decoration",
8878
- "vehicle"
8879
9099
  ]
8880
9100
  },
8881
9101
  category: {
@@ -8905,6 +9125,11 @@ var patterns_registry_default = {
8905
9125
  "isometric"
8906
9126
  ]
8907
9127
  },
9128
+ variant: {
9129
+ types: [
9130
+ "string"
9131
+ ]
9132
+ },
8908
9133
  dimension: {
8909
9134
  types: [
8910
9135
  "string"
@@ -8925,6 +9150,16 @@ var patterns_registry_default = {
8925
9150
  "8:1"
8926
9151
  ]
8927
9152
  },
9153
+ atlas: {
9154
+ types: [
9155
+ "asset"
9156
+ ]
9157
+ },
9158
+ sprite: {
9159
+ types: [
9160
+ "string"
9161
+ ]
9162
+ },
8928
9163
  name: {
8929
9164
  types: [
8930
9165
  "string"
@@ -8937,7 +9172,9 @@ var patterns_registry_default = {
8937
9172
  }
8938
9173
  },
8939
9174
  propertyRequired: [
8940
- "url"
9175
+ "url",
9176
+ "role",
9177
+ "category"
8941
9178
  ]
8942
9179
  },
8943
9180
  onRemove: {
@@ -9458,7 +9695,7 @@ var patterns_registry_default = {
9458
9695
  types: [
9459
9696
  "string"
9460
9697
  ],
9461
- description: "Input type - supports 'select' and 'textarea' in addition to standard types",
9698
+ description: "Input type \u2014 selects the field's data mode. Use 'password' for masked credentials / secret / passphrase entry (there is no separate password pattern); 'email', 'tel', 'url', 'number', 'search', 'date', and 'time' for their respective values; and 'select' / 'textarea' for choice and multi-line entry in addition to the standard single-line types.",
9462
9699
  enumValues: [
9463
9700
  "text",
9464
9701
  "email",
@@ -10678,7 +10915,8 @@ var patterns_registry_default = {
10678
10915
  category: "form",
10679
10916
  tier: "molecules",
10680
10917
  family: "core",
10681
- description: "Repeatable form section for multiple entries",
10918
+ description: "RepeatableFormSection \u2014 a form section that repeats a fixed group of fields, letting the user add or remove entries.",
10919
+ capabilities: "dynamic line items, repeatable field group, add/remove entry rows, multi-entry form block",
10682
10920
  suggestedFor: [
10683
10921
  "repeating fields",
10684
10922
  "dynamic forms",
@@ -10736,7 +10974,7 @@ var patterns_registry_default = {
10736
10974
  types: [
10737
10975
  "function"
10738
10976
  ],
10739
- description: "Render function for each item",
10977
+ description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
10740
10978
  required: true,
10741
10979
  kind: "callback",
10742
10980
  callbackArgs: [
@@ -11578,133 +11816,184 @@ var patterns_registry_default = {
11578
11816
  ],
11579
11817
  typicalSize: "medium",
11580
11818
  propsSchema: {
11581
- className: {
11582
- types: [
11583
- "string"
11584
- ],
11585
- description: "Additional CSS classes"
11586
- },
11587
- isLoading: {
11819
+ children: {
11588
11820
  types: [
11589
- "boolean"
11821
+ "node"
11590
11822
  ],
11591
- description: "Loading state indicator"
11823
+ description: "Button group content (Button components) - use this OR primary/secondary"
11592
11824
  },
11593
- error: {
11825
+ primary: {
11594
11826
  types: [
11595
11827
  "object"
11596
11828
  ],
11597
- description: "Error state (UiError)",
11829
+ description: "Primary action button config (for form-actions pattern) Accepts Readonly for compatibility with generated const objects",
11598
11830
  properties: {
11599
- message: {
11831
+ label: {
11600
11832
  types: [
11601
11833
  "string"
11602
11834
  ]
11603
11835
  },
11604
- name: {
11836
+ actionType: {
11605
11837
  types: [
11606
11838
  "string"
11607
11839
  ]
11608
11840
  },
11609
- code: {
11841
+ event: {
11610
11842
  types: [
11611
11843
  "string"
11612
11844
  ]
11613
11845
  },
11614
- stack: {
11846
+ navigatesTo: {
11847
+ types: [
11848
+ "string"
11849
+ ]
11850
+ },
11851
+ variant: {
11615
11852
  types: [
11616
11853
  "string"
11617
11854
  ]
11618
11855
  }
11619
11856
  },
11620
11857
  propertyRequired: [
11621
- "message"
11858
+ "label"
11622
11859
  ]
11623
11860
  },
11624
- sortBy: {
11861
+ secondary: {
11625
11862
  types: [
11626
- "string"
11863
+ "array"
11627
11864
  ],
11628
- description: "Current sort field"
11865
+ description: "Secondary action buttons config (for form-actions pattern) Accepts readonly array for compatibility with generated const arrays",
11866
+ items: {
11867
+ types: [
11868
+ "object"
11869
+ ],
11870
+ properties: {
11871
+ label: {
11872
+ types: [
11873
+ "string"
11874
+ ]
11875
+ },
11876
+ actionType: {
11877
+ types: [
11878
+ "string"
11879
+ ]
11880
+ },
11881
+ event: {
11882
+ types: [
11883
+ "string"
11884
+ ]
11885
+ },
11886
+ navigatesTo: {
11887
+ types: [
11888
+ "string"
11889
+ ]
11890
+ },
11891
+ variant: {
11892
+ types: [
11893
+ "string"
11894
+ ]
11895
+ }
11896
+ },
11897
+ required: [
11898
+ "label"
11899
+ ]
11900
+ }
11629
11901
  },
11630
- sortDirection: {
11902
+ variant: {
11631
11903
  types: [
11632
11904
  "string"
11633
11905
  ],
11634
- description: "Current sort direction",
11906
+ description: "Visual variant",
11635
11907
  enumValues: [
11636
- "asc",
11637
- "desc"
11638
- ]
11639
- },
11640
- searchValue: {
11641
- types: [
11642
- "string"
11908
+ "default",
11909
+ "segmented",
11910
+ "toggle"
11643
11911
  ],
11644
- description: "Current search query value"
11912
+ default: "default"
11645
11913
  },
11646
- page: {
11914
+ orientation: {
11647
11915
  types: [
11648
- "number"
11916
+ "string"
11649
11917
  ],
11650
- description: "Current page number"
11651
- },
11652
- pageSize: {
11653
- types: [
11654
- "number"
11918
+ description: "Orientation",
11919
+ enumValues: [
11920
+ "horizontal",
11921
+ "vertical"
11655
11922
  ],
11656
- description: "Number of items per page"
11923
+ default: "horizontal"
11657
11924
  },
11658
- totalCount: {
11925
+ className: {
11659
11926
  types: [
11660
- "number"
11927
+ "string"
11661
11928
  ],
11662
- description: "Total number of items"
11929
+ description: "Additional CSS classes"
11663
11930
  },
11664
- activeFilters: {
11931
+ entity: {
11665
11932
  types: [
11666
- "object"
11933
+ "string"
11667
11934
  ],
11668
- description: "Active filters"
11935
+ description: "Entity type for filter-group pattern (schema metadata)"
11669
11936
  },
11670
- selectedIds: {
11937
+ filters: {
11671
11938
  types: [
11672
11939
  "array"
11673
11940
  ],
11674
- description: "Currently selected item IDs",
11941
+ description: "Filter definitions for filter-group pattern",
11675
11942
  items: {
11676
11943
  types: [
11677
- "string",
11678
- "number"
11944
+ "object"
11945
+ ],
11946
+ properties: {
11947
+ field: {
11948
+ types: [
11949
+ "string"
11950
+ ]
11951
+ },
11952
+ label: {
11953
+ types: [
11954
+ "string"
11955
+ ]
11956
+ },
11957
+ type: {
11958
+ types: [
11959
+ "string"
11960
+ ],
11961
+ enumValues: [
11962
+ "checkbox",
11963
+ "select",
11964
+ "toggle"
11965
+ ]
11966
+ },
11967
+ options: {
11968
+ types: [
11969
+ "array"
11970
+ ],
11971
+ items: {
11972
+ types: [
11973
+ "string"
11974
+ ]
11975
+ }
11976
+ }
11977
+ },
11978
+ required: [
11979
+ "field",
11980
+ "label"
11679
11981
  ]
11680
11982
  }
11681
11983
  },
11682
- children: {
11683
- types: [
11684
- "node"
11685
- ],
11686
- description: "children prop",
11687
- required: true
11688
- },
11689
- sticky: {
11690
- types: [
11691
- "boolean"
11692
- ],
11693
- description: "Sticky at bottom",
11694
- default: false
11695
- },
11696
- align: {
11984
+ look: {
11697
11985
  types: [
11698
11986
  "string"
11699
11987
  ],
11700
- description: "Alignment",
11988
+ description: "Layer 2 visual treatment for the action-cluster (form-actions) pattern.",
11701
11989
  enumValues: [
11702
- "left",
11703
- "right",
11704
- "between",
11705
- "center"
11990
+ "right-aligned-buttons",
11991
+ "floating-bar",
11992
+ "inline-row",
11993
+ "dropdown-menu",
11994
+ "command-palette-trigger"
11706
11995
  ],
11707
- default: "right"
11996
+ default: "right-aligned-buttons"
11708
11997
  }
11709
11998
  }
11710
11999
  },
@@ -12172,7 +12461,7 @@ var patterns_registry_default = {
12172
12461
  types: [
12173
12462
  "string"
12174
12463
  ],
12175
- description: "Input type - supports 'select' and 'textarea' in addition to standard types",
12464
+ description: "Input type \u2014 selects the field's data mode. Use 'password' for masked credentials / secret / passphrase entry (there is no separate password pattern); 'email', 'tel', 'url', 'number', 'search', 'date', and 'time' for their respective values; and 'select' / 'textarea' for choice and multi-line entry in addition to the standard single-line types.",
12176
12465
  enumValues: [
12177
12466
  "text",
12178
12467
  "email",
@@ -14645,18 +14934,6 @@ var patterns_registry_default = {
14645
14934
  role: {
14646
14935
  types: [
14647
14936
  "string"
14648
- ],
14649
- enumValues: [
14650
- "player",
14651
- "enemy",
14652
- "npc",
14653
- "item",
14654
- "tile",
14655
- "projectile",
14656
- "effect",
14657
- "ui",
14658
- "decoration",
14659
- "vehicle"
14660
14937
  ]
14661
14938
  },
14662
14939
  category: {
@@ -14686,6 +14963,11 @@ var patterns_registry_default = {
14686
14963
  "isometric"
14687
14964
  ]
14688
14965
  },
14966
+ variant: {
14967
+ types: [
14968
+ "string"
14969
+ ]
14970
+ },
14689
14971
  dimension: {
14690
14972
  types: [
14691
14973
  "string"
@@ -14706,6 +14988,16 @@ var patterns_registry_default = {
14706
14988
  "8:1"
14707
14989
  ]
14708
14990
  },
14991
+ atlas: {
14992
+ types: [
14993
+ "asset"
14994
+ ]
14995
+ },
14996
+ sprite: {
14997
+ types: [
14998
+ "string"
14999
+ ]
15000
+ },
14709
15001
  name: {
14710
15002
  types: [
14711
15003
  "string"
@@ -14718,14 +15010,16 @@ var patterns_registry_default = {
14718
15010
  }
14719
15011
  },
14720
15012
  propertyRequired: [
14721
- "url"
15013
+ "url",
15014
+ "role",
15015
+ "category"
14722
15016
  ]
14723
15017
  },
14724
15018
  hudBackgroundAsset: {
14725
15019
  types: [
14726
15020
  "object"
14727
15021
  ],
14728
- description: "9-sliced panel skin for the HUD chips row + title chip.",
15022
+ description: "Per-call-site 9-sliced panel override. Chrome normally comes from the active theme; most callers leave this unset.",
14729
15023
  properties: {
14730
15024
  url: {
14731
15025
  types: [
@@ -14735,18 +15029,6 @@ var patterns_registry_default = {
14735
15029
  role: {
14736
15030
  types: [
14737
15031
  "string"
14738
- ],
14739
- enumValues: [
14740
- "player",
14741
- "enemy",
14742
- "npc",
14743
- "item",
14744
- "tile",
14745
- "projectile",
14746
- "effect",
14747
- "ui",
14748
- "decoration",
14749
- "vehicle"
14750
15032
  ]
14751
15033
  },
14752
15034
  category: {
@@ -14776,6 +15058,11 @@ var patterns_registry_default = {
14776
15058
  "isometric"
14777
15059
  ]
14778
15060
  },
15061
+ variant: {
15062
+ types: [
15063
+ "string"
15064
+ ]
15065
+ },
14779
15066
  dimension: {
14780
15067
  types: [
14781
15068
  "string"
@@ -14796,6 +15083,16 @@ var patterns_registry_default = {
14796
15083
  "8:1"
14797
15084
  ]
14798
15085
  },
15086
+ atlas: {
15087
+ types: [
15088
+ "asset"
15089
+ ]
15090
+ },
15091
+ sprite: {
15092
+ types: [
15093
+ "string"
15094
+ ]
15095
+ },
14799
15096
  name: {
14800
15097
  types: [
14801
15098
  "string"
@@ -14808,7 +15105,9 @@ var patterns_registry_default = {
14808
15105
  }
14809
15106
  },
14810
15107
  propertyRequired: [
14811
- "url"
15108
+ "url",
15109
+ "role",
15110
+ "category"
14812
15111
  ]
14813
15112
  },
14814
15113
  fontFamily: {
@@ -14817,6 +15116,12 @@ var patterns_registry_default = {
14817
15116
  ],
14818
15117
  description: "Game font key (future | future-narrow | pixel | blocks | mini) or a CSS font-family.",
14819
15118
  default: "future"
15119
+ },
15120
+ "data-theme": {
15121
+ types: [
15122
+ "string"
15123
+ ],
15124
+ description: 'Scopes an `@almadar/ui` theme (e.g. "game-sci-fi-dark") to this shell\'s subtree.'
14820
15125
  }
14821
15126
  }
14822
15127
  },
@@ -15870,7 +16175,8 @@ var patterns_registry_default = {
15870
16175
  category: "form",
15871
16176
  tier: "molecules",
15872
16177
  family: "core",
15873
- description: "Canvas-based signature capture pad with draw, clear, and confirm actions",
16178
+ description: "SignaturePad \u2014 a draw-to-sign canvas that captures a handwritten signature or initials.",
16179
+ capabilities: "e-signature capture, sign-here field, consent signature, initial-here field, wet-signature substitute",
15874
16180
  suggestedFor: [
15875
16181
  "form signing",
15876
16182
  "approval workflows",
@@ -16275,6 +16581,11 @@ var patterns_registry_default = {
16275
16581
  "number"
16276
16582
  ]
16277
16583
  },
16584
+ badge: {
16585
+ types: [
16586
+ "number"
16587
+ ]
16588
+ },
16278
16589
  x: {
16279
16590
  types: [
16280
16591
  "number"
@@ -16295,7 +16606,7 @@ var patterns_registry_default = {
16295
16606
  types: [
16296
16607
  "array"
16297
16608
  ],
16298
- description: "Graph edges",
16609
+ description: "Graph edges (the only rendered links)",
16299
16610
  items: {
16300
16611
  types: [
16301
16612
  "object"
@@ -16333,6 +16644,39 @@ var patterns_registry_default = {
16333
16644
  ]
16334
16645
  }
16335
16646
  },
16647
+ similarity: {
16648
+ types: [
16649
+ "array"
16650
+ ],
16651
+ description: "All-pairs similarity (cosine 0\u20131) used ONLY for layout, never drawn. It is the secondary macro-layout: non-connected pairs get a weak spring (higher cosine \u21D2 closer) so clusters arrange relative to each other; drawn `edges` stay the primary tight structure. When omitted, edges alone drive the layout.",
16652
+ items: {
16653
+ types: [
16654
+ "object"
16655
+ ],
16656
+ properties: {
16657
+ source: {
16658
+ types: [
16659
+ "string"
16660
+ ]
16661
+ },
16662
+ target: {
16663
+ types: [
16664
+ "string"
16665
+ ]
16666
+ },
16667
+ weight: {
16668
+ types: [
16669
+ "number"
16670
+ ]
16671
+ }
16672
+ },
16673
+ required: [
16674
+ "source",
16675
+ "target",
16676
+ "weight"
16677
+ ]
16678
+ }
16679
+ },
16336
16680
  height: {
16337
16681
  types: [
16338
16682
  "number"
@@ -16442,6 +16786,11 @@ var patterns_registry_default = {
16442
16786
  "number"
16443
16787
  ]
16444
16788
  },
16789
+ badge: {
16790
+ types: [
16791
+ "number"
16792
+ ]
16793
+ },
16445
16794
  x: {
16446
16795
  types: [
16447
16796
  "number"
@@ -16500,6 +16849,74 @@ var patterns_registry_default = {
16500
16849
  "number"
16501
16850
  ]
16502
16851
  },
16852
+ badge: {
16853
+ types: [
16854
+ "number"
16855
+ ]
16856
+ },
16857
+ x: {
16858
+ types: [
16859
+ "number"
16860
+ ]
16861
+ },
16862
+ y: {
16863
+ types: [
16864
+ "number"
16865
+ ]
16866
+ }
16867
+ },
16868
+ required: [
16869
+ "id"
16870
+ ]
16871
+ }
16872
+ }
16873
+ ]
16874
+ },
16875
+ onBadgeClick: {
16876
+ types: [
16877
+ "function"
16878
+ ],
16879
+ description: "On node badge click (e.g. to expand a merged cluster).",
16880
+ kind: "callback",
16881
+ callbackArgs: [
16882
+ {
16883
+ name: "node",
16884
+ type: "object",
16885
+ schema: {
16886
+ types: [
16887
+ "object"
16888
+ ],
16889
+ properties: {
16890
+ id: {
16891
+ types: [
16892
+ "string"
16893
+ ]
16894
+ },
16895
+ label: {
16896
+ types: [
16897
+ "string"
16898
+ ]
16899
+ },
16900
+ group: {
16901
+ types: [
16902
+ "string"
16903
+ ]
16904
+ },
16905
+ color: {
16906
+ types: [
16907
+ "string"
16908
+ ]
16909
+ },
16910
+ size: {
16911
+ types: [
16912
+ "number"
16913
+ ]
16914
+ },
16915
+ badge: {
16916
+ types: [
16917
+ "number"
16918
+ ]
16919
+ },
16503
16920
  x: {
16504
16921
  types: [
16505
16922
  "number"
@@ -16736,7 +17153,8 @@ var patterns_registry_default = {
16736
17153
  category: "component",
16737
17154
  tier: "molecules",
16738
17155
  family: "core",
16739
- description: "QuizBlock Molecule Component A collapsible Q&A block for embedded quiz questions in content. Shows the question with a reveal button for the answer. Event Contract: - No events emitted (self-contained interaction) - entityAware: false",
17156
+ description: "QuizBlock \u2014 a single quiz question with answer choices and submit/reveal feedback.",
17157
+ capabilities: "multiple-choice quiz, test question, exam item, assessment question, knowledge check, trivia question",
16740
17158
  suggestedFor: [
16741
17159
  "quiz",
16742
17160
  "block",
@@ -17988,7 +18406,8 @@ var patterns_registry_default = {
17988
18406
  category: "display",
17989
18407
  tier: "molecules",
17990
18408
  family: "core",
17991
- description: "FlipCard component",
18409
+ description: "FlipCard \u2014 flip card that reveals a hidden back face on tap or click, toggling between a front and back content slot.",
18410
+ capabilities: "flashcard, study deck, spaced-repetition review card, memorization drill, quiz reveal card, question/answer card, before/after reveal, term-and-definition card",
17992
18411
  suggestedFor: [
17993
18412
  "flip",
17994
18413
  "card",
@@ -18445,7 +18864,8 @@ var patterns_registry_default = {
18445
18864
  category: "display",
18446
18865
  tier: "molecules",
18447
18866
  family: "core",
18448
- description: "DataGrid component",
18867
+ description: "DataGrid \u2014 structured records grid rendering rows over configurable columns, with sort, select, and drag-reorder.",
18868
+ capabilities: "admin table, records grid, user list, CRUD list, manage-records view, spreadsheet-style data grid, sortable columns",
18449
18869
  suggestedFor: [
18450
18870
  "data",
18451
18871
  "grid",
@@ -18515,7 +18935,7 @@ var patterns_registry_default = {
18515
18935
  types: [
18516
18936
  "array"
18517
18937
  ],
18518
- description: "Field definitions for rendering each card. The pattern contract in `@almadar/patterns` documents `columns` as the wire-format alias the compiler emits \u2014 both names resolve to the same shape here. Pass either.",
18938
+ description: "Field definitions for rendering each card. The pattern contract in `@almadar/core/patterns` documents `columns` as the wire-format alias the compiler emits \u2014 both names resolve to the same shape here. Pass either.",
18519
18939
  items: {
18520
18940
  types: [
18521
18941
  "object"
@@ -18847,7 +19267,7 @@ var patterns_registry_default = {
18847
19267
  types: [
18848
19268
  "function"
18849
19269
  ],
18850
- description: 'Per-item render function (schema-level alias for children render prop). In .orb schemas: ["fn", "item", { pattern tree with @item.field bindings }] The compiler converts this to the children render prop.',
19270
+ description: 'Per-item render function (schema-level alias for children render prop). In .orb schemas: ["fn", "item", { pattern tree with @item.field bindings }] The compiler converts this to the children render prop. In .lolo, author the per-item renderer as renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.',
18851
19271
  kind: "callback",
18852
19272
  callbackArgs: [
18853
19273
  {
@@ -18960,7 +19380,7 @@ var patterns_registry_default = {
18960
19380
  types: [
18961
19381
  "array"
18962
19382
  ],
18963
- description: "Field definitions for rendering each row. The pattern contract in `@almadar/patterns` documents `columns` as the wire-format alias the compiler emits \u2014 both names resolve to the same shape here. Pass either.",
19383
+ description: "Field definitions for rendering each row. The pattern contract in `@almadar/core/patterns` documents `columns` as the wire-format alias the compiler emits \u2014 both names resolve to the same shape here. Pass either.",
18964
19384
  items: {
18965
19385
  types: [
18966
19386
  "object"
@@ -19364,7 +19784,7 @@ var patterns_registry_default = {
19364
19784
  types: [
19365
19785
  "function"
19366
19786
  ],
19367
- description: 'Per-item render function (schema-level alias for children render prop). In .orb schemas: ["fn", "item", { pattern tree with @item.field bindings }] The compiler converts this to the children render prop.',
19787
+ description: 'Per-item render function (schema-level alias for children render prop). In .orb schemas: ["fn", "item", { pattern tree with @item.field bindings }] The compiler converts this to the children render prop. In .lolo, author the per-item renderer as renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.',
19368
19788
  kind: "callback",
19369
19789
  callbackArgs: [
19370
19790
  {
@@ -20394,6 +20814,12 @@ var patterns_registry_default = {
20394
20814
  ],
20395
20815
  description: "Text to display after the number"
20396
20816
  },
20817
+ format: {
20818
+ types: [
20819
+ "string"
20820
+ ],
20821
+ description: `Display format: "number" (locale grouping), "currency" ($x.xx), "percent" (rounded %). Unset preserves the value's own decimals.`
20822
+ },
20397
20823
  className: {
20398
20824
  types: [
20399
20825
  "string"
@@ -20580,7 +21006,7 @@ var patterns_registry_default = {
20580
21006
  types: [
20581
21007
  "function"
20582
21008
  ],
20583
- description: "Render function for each slide",
21009
+ description: "Render function for each slide. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
20584
21010
  kind: "callback",
20585
21011
  callbackArgs: [
20586
21012
  {
@@ -20731,7 +21157,8 @@ var patterns_registry_default = {
20731
21157
  category: "display",
20732
21158
  tier: "molecules",
20733
21159
  family: "core",
20734
- description: "SortableList component",
21160
+ description: "SortableList \u2014 a drag-and-drop reorderable list of items.",
21161
+ capabilities: "checklist, task list, to-do list, priority list, ranked list, drag-to-reorder queue",
20735
21162
  suggestedFor: [
20736
21163
  "sortable",
20737
21164
  "list",
@@ -20753,7 +21180,7 @@ var patterns_registry_default = {
20753
21180
  types: [
20754
21181
  "function"
20755
21182
  ],
20756
- description: "renderItem prop",
21183
+ description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
20757
21184
  required: true,
20758
21185
  kind: "callback",
20759
21186
  callbackArgs: [
@@ -21338,7 +21765,8 @@ var patterns_registry_default = {
21338
21765
  category: "display",
21339
21766
  tier: "molecules",
21340
21767
  family: "marketing",
21341
- description: "CaseStudyCard component",
21768
+ description: "CaseStudyCard \u2014 a card summarizing a customer case study with logo, headline result, and link.",
21769
+ capabilities: "customer story, success story, client story card, results showcase, proof-point card",
21342
21770
  suggestedFor: [
21343
21771
  "case",
21344
21772
  "study",
@@ -21497,7 +21925,8 @@ var patterns_registry_default = {
21497
21925
  category: "display",
21498
21926
  tier: "molecules",
21499
21927
  family: "marketing",
21500
- description: "FeatureCard component",
21928
+ description: "FeatureCard \u2014 an icon-led card pairing a title and description to call out a single product feature.",
21929
+ capabilities: "feature highlight, benefit callout, product capability card, feature-grid tile",
21501
21930
  suggestedFor: [
21502
21931
  "feature",
21503
21932
  "card",
@@ -21905,7 +22334,8 @@ var patterns_registry_default = {
21905
22334
  category: "display",
21906
22335
  tier: "molecules",
21907
22336
  family: "marketing",
21908
- description: "PricingCard component",
22337
+ description: "PricingCard \u2014 a single pricing-tier card with price, billing period, feature list, and call-to-action.",
22338
+ capabilities: "pricing tier, plan card, subscription tier, plan comparison card, price plan",
21909
22339
  suggestedFor: [
21910
22340
  "pricing",
21911
22341
  "card",
@@ -27637,18 +28067,6 @@ var patterns_registry_default = {
27637
28067
  role: {
27638
28068
  types: [
27639
28069
  "string"
27640
- ],
27641
- enumValues: [
27642
- "player",
27643
- "enemy",
27644
- "npc",
27645
- "item",
27646
- "tile",
27647
- "projectile",
27648
- "effect",
27649
- "ui",
27650
- "decoration",
27651
- "vehicle"
27652
28070
  ]
27653
28071
  },
27654
28072
  category: {
@@ -27678,6 +28096,11 @@ var patterns_registry_default = {
27678
28096
  "isometric"
27679
28097
  ]
27680
28098
  },
28099
+ variant: {
28100
+ types: [
28101
+ "string"
28102
+ ]
28103
+ },
27681
28104
  dimension: {
27682
28105
  types: [
27683
28106
  "string"
@@ -27698,6 +28121,16 @@ var patterns_registry_default = {
27698
28121
  "8:1"
27699
28122
  ]
27700
28123
  },
28124
+ atlas: {
28125
+ types: [
28126
+ "asset"
28127
+ ]
28128
+ },
28129
+ sprite: {
28130
+ types: [
28131
+ "string"
28132
+ ]
28133
+ },
27701
28134
  name: {
27702
28135
  types: [
27703
28136
  "string"
@@ -27710,7 +28143,9 @@ var patterns_registry_default = {
27710
28143
  }
27711
28144
  },
27712
28145
  propertyRequired: [
27713
- "url"
28146
+ "url",
28147
+ "role",
28148
+ "category"
27714
28149
  ]
27715
28150
  },
27716
28151
  icon: {
@@ -27797,18 +28232,6 @@ var patterns_registry_default = {
27797
28232
  role: {
27798
28233
  types: [
27799
28234
  "string"
27800
- ],
27801
- enumValues: [
27802
- "player",
27803
- "enemy",
27804
- "npc",
27805
- "item",
27806
- "tile",
27807
- "projectile",
27808
- "effect",
27809
- "ui",
27810
- "decoration",
27811
- "vehicle"
27812
28235
  ]
27813
28236
  },
27814
28237
  category: {
@@ -27838,6 +28261,11 @@ var patterns_registry_default = {
27838
28261
  "isometric"
27839
28262
  ]
27840
28263
  },
28264
+ variant: {
28265
+ types: [
28266
+ "string"
28267
+ ]
28268
+ },
27841
28269
  dimension: {
27842
28270
  types: [
27843
28271
  "string"
@@ -27858,6 +28286,16 @@ var patterns_registry_default = {
27858
28286
  "8:1"
27859
28287
  ]
27860
28288
  },
28289
+ atlas: {
28290
+ types: [
28291
+ "asset"
28292
+ ]
28293
+ },
28294
+ sprite: {
28295
+ types: [
28296
+ "string"
28297
+ ]
28298
+ },
27861
28299
  name: {
27862
28300
  types: [
27863
28301
  "string"
@@ -27870,7 +28308,9 @@ var patterns_registry_default = {
27870
28308
  }
27871
28309
  },
27872
28310
  propertyRequired: [
27873
- "url"
28311
+ "url",
28312
+ "role",
28313
+ "category"
27874
28314
  ]
27875
28315
  },
27876
28316
  label: {
@@ -28015,18 +28455,6 @@ var patterns_registry_default = {
28015
28455
  role: {
28016
28456
  types: [
28017
28457
  "string"
28018
- ],
28019
- enumValues: [
28020
- "player",
28021
- "enemy",
28022
- "npc",
28023
- "item",
28024
- "tile",
28025
- "projectile",
28026
- "effect",
28027
- "ui",
28028
- "decoration",
28029
- "vehicle"
28030
28458
  ]
28031
28459
  },
28032
28460
  category: {
@@ -28056,6 +28484,11 @@ var patterns_registry_default = {
28056
28484
  "isometric"
28057
28485
  ]
28058
28486
  },
28487
+ variant: {
28488
+ types: [
28489
+ "string"
28490
+ ]
28491
+ },
28059
28492
  dimension: {
28060
28493
  types: [
28061
28494
  "string"
@@ -28076,6 +28509,16 @@ var patterns_registry_default = {
28076
28509
  "8:1"
28077
28510
  ]
28078
28511
  },
28512
+ atlas: {
28513
+ types: [
28514
+ "asset"
28515
+ ]
28516
+ },
28517
+ sprite: {
28518
+ types: [
28519
+ "string"
28520
+ ]
28521
+ },
28079
28522
  name: {
28080
28523
  types: [
28081
28524
  "string"
@@ -28088,7 +28531,9 @@ var patterns_registry_default = {
28088
28531
  }
28089
28532
  },
28090
28533
  propertyRequired: [
28091
- "url"
28534
+ "url",
28535
+ "role",
28536
+ "category"
28092
28537
  ]
28093
28538
  },
28094
28539
  position: {
@@ -28229,18 +28674,6 @@ var patterns_registry_default = {
28229
28674
  role: {
28230
28675
  types: [
28231
28676
  "string"
28232
- ],
28233
- enumValues: [
28234
- "player",
28235
- "enemy",
28236
- "npc",
28237
- "item",
28238
- "tile",
28239
- "projectile",
28240
- "effect",
28241
- "ui",
28242
- "decoration",
28243
- "vehicle"
28244
28677
  ]
28245
28678
  },
28246
28679
  category: {
@@ -28270,6 +28703,11 @@ var patterns_registry_default = {
28270
28703
  "isometric"
28271
28704
  ]
28272
28705
  },
28706
+ variant: {
28707
+ types: [
28708
+ "string"
28709
+ ]
28710
+ },
28273
28711
  dimension: {
28274
28712
  types: [
28275
28713
  "string"
@@ -28290,6 +28728,16 @@ var patterns_registry_default = {
28290
28728
  "8:1"
28291
28729
  ]
28292
28730
  },
28731
+ atlas: {
28732
+ types: [
28733
+ "asset"
28734
+ ]
28735
+ },
28736
+ sprite: {
28737
+ types: [
28738
+ "string"
28739
+ ]
28740
+ },
28293
28741
  name: {
28294
28742
  types: [
28295
28743
  "string"
@@ -28302,7 +28750,9 @@ var patterns_registry_default = {
28302
28750
  }
28303
28751
  },
28304
28752
  propertyRequired: [
28305
- "url"
28753
+ "url",
28754
+ "role",
28755
+ "category"
28306
28756
  ]
28307
28757
  },
28308
28758
  fillAsset: {
@@ -28319,18 +28769,6 @@ var patterns_registry_default = {
28319
28769
  role: {
28320
28770
  types: [
28321
28771
  "string"
28322
- ],
28323
- enumValues: [
28324
- "player",
28325
- "enemy",
28326
- "npc",
28327
- "item",
28328
- "tile",
28329
- "projectile",
28330
- "effect",
28331
- "ui",
28332
- "decoration",
28333
- "vehicle"
28334
28772
  ]
28335
28773
  },
28336
28774
  category: {
@@ -28360,6 +28798,11 @@ var patterns_registry_default = {
28360
28798
  "isometric"
28361
28799
  ]
28362
28800
  },
28801
+ variant: {
28802
+ types: [
28803
+ "string"
28804
+ ]
28805
+ },
28363
28806
  dimension: {
28364
28807
  types: [
28365
28808
  "string"
@@ -28380,6 +28823,16 @@ var patterns_registry_default = {
28380
28823
  "8:1"
28381
28824
  ]
28382
28825
  },
28826
+ atlas: {
28827
+ types: [
28828
+ "asset"
28829
+ ]
28830
+ },
28831
+ sprite: {
28832
+ types: [
28833
+ "string"
28834
+ ]
28835
+ },
28383
28836
  name: {
28384
28837
  types: [
28385
28838
  "string"
@@ -28392,7 +28845,9 @@ var patterns_registry_default = {
28392
28845
  }
28393
28846
  },
28394
28847
  propertyRequired: [
28395
- "url"
28848
+ "url",
28849
+ "role",
28850
+ "category"
28396
28851
  ]
28397
28852
  }
28398
28853
  }
@@ -28424,18 +28879,6 @@ var patterns_registry_default = {
28424
28879
  role: {
28425
28880
  types: [
28426
28881
  "string"
28427
- ],
28428
- enumValues: [
28429
- "player",
28430
- "enemy",
28431
- "npc",
28432
- "item",
28433
- "tile",
28434
- "projectile",
28435
- "effect",
28436
- "ui",
28437
- "decoration",
28438
- "vehicle"
28439
28882
  ]
28440
28883
  },
28441
28884
  category: {
@@ -28465,6 +28908,11 @@ var patterns_registry_default = {
28465
28908
  "isometric"
28466
28909
  ]
28467
28910
  },
28911
+ variant: {
28912
+ types: [
28913
+ "string"
28914
+ ]
28915
+ },
28468
28916
  dimension: {
28469
28917
  types: [
28470
28918
  "string"
@@ -28485,6 +28933,16 @@ var patterns_registry_default = {
28485
28933
  "8:1"
28486
28934
  ]
28487
28935
  },
28936
+ atlas: {
28937
+ types: [
28938
+ "asset"
28939
+ ]
28940
+ },
28941
+ sprite: {
28942
+ types: [
28943
+ "string"
28944
+ ]
28945
+ },
28488
28946
  name: {
28489
28947
  types: [
28490
28948
  "string"
@@ -28497,7 +28955,9 @@ var patterns_registry_default = {
28497
28955
  }
28498
28956
  },
28499
28957
  propertyRequired: [
28500
- "url"
28958
+ "url",
28959
+ "role",
28960
+ "category"
28501
28961
  ]
28502
28962
  },
28503
28963
  value: {
@@ -28632,18 +29092,6 @@ var patterns_registry_default = {
28632
29092
  role: {
28633
29093
  types: [
28634
29094
  "string"
28635
- ],
28636
- enumValues: [
28637
- "player",
28638
- "enemy",
28639
- "npc",
28640
- "item",
28641
- "tile",
28642
- "projectile",
28643
- "effect",
28644
- "ui",
28645
- "decoration",
28646
- "vehicle"
28647
29095
  ]
28648
29096
  },
28649
29097
  category: {
@@ -28673,6 +29121,11 @@ var patterns_registry_default = {
28673
29121
  "isometric"
28674
29122
  ]
28675
29123
  },
29124
+ variant: {
29125
+ types: [
29126
+ "string"
29127
+ ]
29128
+ },
28676
29129
  dimension: {
28677
29130
  types: [
28678
29131
  "string"
@@ -28693,6 +29146,16 @@ var patterns_registry_default = {
28693
29146
  "8:1"
28694
29147
  ]
28695
29148
  },
29149
+ atlas: {
29150
+ types: [
29151
+ "asset"
29152
+ ]
29153
+ },
29154
+ sprite: {
29155
+ types: [
29156
+ "string"
29157
+ ]
29158
+ },
28696
29159
  name: {
28697
29160
  types: [
28698
29161
  "string"
@@ -28705,7 +29168,9 @@ var patterns_registry_default = {
28705
29168
  }
28706
29169
  },
28707
29170
  propertyRequired: [
28708
- "url"
29171
+ "url",
29172
+ "role",
29173
+ "category"
28709
29174
  ]
28710
29175
  }
28711
29176
  }
@@ -30239,7 +30704,8 @@ var patterns_registry_default = {
30239
30704
  category: "display",
30240
30705
  tier: "molecules",
30241
30706
  family: "avl",
30242
- description: "ModuleCard component",
30707
+ description: "ModuleCard \u2014 a card summarizing one course module or lesson with progress and entry point.",
30708
+ capabilities: "course module card, lesson card, curriculum unit card, learning-path step card",
30243
30709
  suggestedFor: [
30244
30710
  "module",
30245
30711
  "card",
@@ -30381,18 +30847,6 @@ var patterns_registry_default = {
30381
30847
  role: {
30382
30848
  types: [
30383
30849
  "string"
30384
- ],
30385
- enumValues: [
30386
- "player",
30387
- "enemy",
30388
- "npc",
30389
- "item",
30390
- "tile",
30391
- "projectile",
30392
- "effect",
30393
- "ui",
30394
- "decoration",
30395
- "vehicle"
30396
30850
  ]
30397
30851
  },
30398
30852
  category: {
@@ -30422,6 +30876,11 @@ var patterns_registry_default = {
30422
30876
  "isometric"
30423
30877
  ]
30424
30878
  },
30879
+ variant: {
30880
+ types: [
30881
+ "string"
30882
+ ]
30883
+ },
30425
30884
  dimension: {
30426
30885
  types: [
30427
30886
  "string"
@@ -30442,6 +30901,16 @@ var patterns_registry_default = {
30442
30901
  "8:1"
30443
30902
  ]
30444
30903
  },
30904
+ atlas: {
30905
+ types: [
30906
+ "asset"
30907
+ ]
30908
+ },
30909
+ sprite: {
30910
+ types: [
30911
+ "string"
30912
+ ]
30913
+ },
30445
30914
  name: {
30446
30915
  types: [
30447
30916
  "string"
@@ -30454,7 +30923,9 @@ var patterns_registry_default = {
30454
30923
  }
30455
30924
  },
30456
30925
  required: [
30457
- "url"
30926
+ "url",
30927
+ "role",
30928
+ "category"
30458
30929
  ]
30459
30930
  },
30460
30931
  format: {
@@ -30734,18 +31205,6 @@ var patterns_registry_default = {
30734
31205
  role: {
30735
31206
  types: [
30736
31207
  "string"
30737
- ],
30738
- enumValues: [
30739
- "player",
30740
- "enemy",
30741
- "npc",
30742
- "item",
30743
- "tile",
30744
- "projectile",
30745
- "effect",
30746
- "ui",
30747
- "decoration",
30748
- "vehicle"
30749
31208
  ]
30750
31209
  },
30751
31210
  category: {
@@ -30775,6 +31234,11 @@ var patterns_registry_default = {
30775
31234
  "isometric"
30776
31235
  ]
30777
31236
  },
31237
+ variant: {
31238
+ types: [
31239
+ "string"
31240
+ ]
31241
+ },
30778
31242
  dimension: {
30779
31243
  types: [
30780
31244
  "string"
@@ -30795,6 +31259,16 @@ var patterns_registry_default = {
30795
31259
  "8:1"
30796
31260
  ]
30797
31261
  },
31262
+ atlas: {
31263
+ types: [
31264
+ "asset"
31265
+ ]
31266
+ },
31267
+ sprite: {
31268
+ types: [
31269
+ "string"
31270
+ ]
31271
+ },
30798
31272
  name: {
30799
31273
  types: [
30800
31274
  "string"
@@ -30807,7 +31281,9 @@ var patterns_registry_default = {
30807
31281
  }
30808
31282
  },
30809
31283
  propertyRequired: [
30810
- "url"
31284
+ "url",
31285
+ "role",
31286
+ "category"
30811
31287
  ]
30812
31288
  },
30813
31289
  className: {
@@ -30845,18 +31321,6 @@ var patterns_registry_default = {
30845
31321
  role: {
30846
31322
  types: [
30847
31323
  "string"
30848
- ],
30849
- enumValues: [
30850
- "player",
30851
- "enemy",
30852
- "npc",
30853
- "item",
30854
- "tile",
30855
- "projectile",
30856
- "effect",
30857
- "ui",
30858
- "decoration",
30859
- "vehicle"
30860
31324
  ]
30861
31325
  },
30862
31326
  category: {
@@ -30886,6 +31350,11 @@ var patterns_registry_default = {
30886
31350
  "isometric"
30887
31351
  ]
30888
31352
  },
31353
+ variant: {
31354
+ types: [
31355
+ "string"
31356
+ ]
31357
+ },
30889
31358
  dimension: {
30890
31359
  types: [
30891
31360
  "string"
@@ -30906,6 +31375,16 @@ var patterns_registry_default = {
30906
31375
  "8:1"
30907
31376
  ]
30908
31377
  },
31378
+ atlas: {
31379
+ types: [
31380
+ "asset"
31381
+ ]
31382
+ },
31383
+ sprite: {
31384
+ types: [
31385
+ "string"
31386
+ ]
31387
+ },
30909
31388
  name: {
30910
31389
  types: [
30911
31390
  "string"
@@ -30918,7 +31397,9 @@ var patterns_registry_default = {
30918
31397
  }
30919
31398
  },
30920
31399
  propertyRequired: [
30921
- "url"
31400
+ "url",
31401
+ "role",
31402
+ "category"
30922
31403
  ]
30923
31404
  },
30924
31405
  iconUrl: {
@@ -30935,18 +31416,6 @@ var patterns_registry_default = {
30935
31416
  role: {
30936
31417
  types: [
30937
31418
  "string"
30938
- ],
30939
- enumValues: [
30940
- "player",
30941
- "enemy",
30942
- "npc",
30943
- "item",
30944
- "tile",
30945
- "projectile",
30946
- "effect",
30947
- "ui",
30948
- "decoration",
30949
- "vehicle"
30950
31419
  ]
30951
31420
  },
30952
31421
  category: {
@@ -30976,6 +31445,11 @@ var patterns_registry_default = {
30976
31445
  "isometric"
30977
31446
  ]
30978
31447
  },
31448
+ variant: {
31449
+ types: [
31450
+ "string"
31451
+ ]
31452
+ },
30979
31453
  dimension: {
30980
31454
  types: [
30981
31455
  "string"
@@ -30996,6 +31470,16 @@ var patterns_registry_default = {
30996
31470
  "8:1"
30997
31471
  ]
30998
31472
  },
31473
+ atlas: {
31474
+ types: [
31475
+ "asset"
31476
+ ]
31477
+ },
31478
+ sprite: {
31479
+ types: [
31480
+ "string"
31481
+ ]
31482
+ },
30999
31483
  name: {
31000
31484
  types: [
31001
31485
  "string"
@@ -31008,7 +31492,9 @@ var patterns_registry_default = {
31008
31492
  }
31009
31493
  },
31010
31494
  propertyRequired: [
31011
- "url"
31495
+ "url",
31496
+ "role",
31497
+ "category"
31012
31498
  ]
31013
31499
  },
31014
31500
  label: {
@@ -31601,18 +32087,6 @@ var patterns_registry_default = {
31601
32087
  role: {
31602
32088
  types: [
31603
32089
  "string"
31604
- ],
31605
- enumValues: [
31606
- "player",
31607
- "enemy",
31608
- "npc",
31609
- "item",
31610
- "tile",
31611
- "projectile",
31612
- "effect",
31613
- "ui",
31614
- "decoration",
31615
- "vehicle"
31616
32090
  ]
31617
32091
  },
31618
32092
  category: {
@@ -31642,6 +32116,11 @@ var patterns_registry_default = {
31642
32116
  "isometric"
31643
32117
  ]
31644
32118
  },
32119
+ variant: {
32120
+ types: [
32121
+ "string"
32122
+ ]
32123
+ },
31645
32124
  dimension: {
31646
32125
  types: [
31647
32126
  "string"
@@ -31662,6 +32141,16 @@ var patterns_registry_default = {
31662
32141
  "8:1"
31663
32142
  ]
31664
32143
  },
32144
+ atlas: {
32145
+ types: [
32146
+ "asset"
32147
+ ]
32148
+ },
32149
+ sprite: {
32150
+ types: [
32151
+ "string"
32152
+ ]
32153
+ },
31665
32154
  name: {
31666
32155
  types: [
31667
32156
  "string"
@@ -31674,7 +32163,9 @@ var patterns_registry_default = {
31674
32163
  }
31675
32164
  },
31676
32165
  propertyRequired: [
31677
- "url"
32166
+ "url",
32167
+ "role",
32168
+ "category"
31678
32169
  ]
31679
32170
  },
31680
32171
  offAsset: {
@@ -31691,18 +32182,6 @@ var patterns_registry_default = {
31691
32182
  role: {
31692
32183
  types: [
31693
32184
  "string"
31694
- ],
31695
- enumValues: [
31696
- "player",
31697
- "enemy",
31698
- "npc",
31699
- "item",
31700
- "tile",
31701
- "projectile",
31702
- "effect",
31703
- "ui",
31704
- "decoration",
31705
- "vehicle"
31706
32185
  ]
31707
32186
  },
31708
32187
  category: {
@@ -31732,6 +32211,11 @@ var patterns_registry_default = {
31732
32211
  "isometric"
31733
32212
  ]
31734
32213
  },
32214
+ variant: {
32215
+ types: [
32216
+ "string"
32217
+ ]
32218
+ },
31735
32219
  dimension: {
31736
32220
  types: [
31737
32221
  "string"
@@ -31752,6 +32236,16 @@ var patterns_registry_default = {
31752
32236
  "8:1"
31753
32237
  ]
31754
32238
  },
32239
+ atlas: {
32240
+ types: [
32241
+ "asset"
32242
+ ]
32243
+ },
32244
+ sprite: {
32245
+ types: [
32246
+ "string"
32247
+ ]
32248
+ },
31755
32249
  name: {
31756
32250
  types: [
31757
32251
  "string"
@@ -31764,7 +32258,9 @@ var patterns_registry_default = {
31764
32258
  }
31765
32259
  },
31766
32260
  propertyRequired: [
31767
- "url"
32261
+ "url",
32262
+ "role",
32263
+ "category"
31768
32264
  ]
31769
32265
  }
31770
32266
  }
@@ -31833,18 +32329,6 @@ var patterns_registry_default = {
31833
32329
  role: {
31834
32330
  types: [
31835
32331
  "string"
31836
- ],
31837
- enumValues: [
31838
- "player",
31839
- "enemy",
31840
- "npc",
31841
- "item",
31842
- "tile",
31843
- "projectile",
31844
- "effect",
31845
- "ui",
31846
- "decoration",
31847
- "vehicle"
31848
32332
  ]
31849
32333
  },
31850
32334
  category: {
@@ -31874,6 +32358,11 @@ var patterns_registry_default = {
31874
32358
  "isometric"
31875
32359
  ]
31876
32360
  },
32361
+ variant: {
32362
+ types: [
32363
+ "string"
32364
+ ]
32365
+ },
31877
32366
  dimension: {
31878
32367
  types: [
31879
32368
  "string"
@@ -31894,6 +32383,16 @@ var patterns_registry_default = {
31894
32383
  "8:1"
31895
32384
  ]
31896
32385
  },
32386
+ atlas: {
32387
+ types: [
32388
+ "asset"
32389
+ ]
32390
+ },
32391
+ sprite: {
32392
+ types: [
32393
+ "string"
32394
+ ]
32395
+ },
31897
32396
  name: {
31898
32397
  types: [
31899
32398
  "string"
@@ -31906,7 +32405,9 @@ var patterns_registry_default = {
31906
32405
  }
31907
32406
  },
31908
32407
  required: [
31909
- "url"
32408
+ "url",
32409
+ "role",
32410
+ "category"
31910
32411
  ]
31911
32412
  },
31912
32413
  stateMachine: {
@@ -32001,18 +32502,6 @@ var patterns_registry_default = {
32001
32502
  role: {
32002
32503
  types: [
32003
32504
  "string"
32004
- ],
32005
- enumValues: [
32006
- "player",
32007
- "enemy",
32008
- "npc",
32009
- "item",
32010
- "tile",
32011
- "projectile",
32012
- "effect",
32013
- "ui",
32014
- "decoration",
32015
- "vehicle"
32016
32505
  ]
32017
32506
  },
32018
32507
  category: {
@@ -32042,6 +32531,11 @@ var patterns_registry_default = {
32042
32531
  "isometric"
32043
32532
  ]
32044
32533
  },
32534
+ variant: {
32535
+ types: [
32536
+ "string"
32537
+ ]
32538
+ },
32045
32539
  dimension: {
32046
32540
  types: [
32047
32541
  "string"
@@ -32062,6 +32556,16 @@ var patterns_registry_default = {
32062
32556
  "8:1"
32063
32557
  ]
32064
32558
  },
32559
+ atlas: {
32560
+ types: [
32561
+ "asset"
32562
+ ]
32563
+ },
32564
+ sprite: {
32565
+ types: [
32566
+ "string"
32567
+ ]
32568
+ },
32065
32569
  name: {
32066
32570
  types: [
32067
32571
  "string"
@@ -32074,7 +32578,9 @@ var patterns_registry_default = {
32074
32578
  }
32075
32579
  },
32076
32580
  propertyRequired: [
32077
- "url"
32581
+ "url",
32582
+ "role",
32583
+ "category"
32078
32584
  ]
32079
32585
  },
32080
32586
  className: {
@@ -32173,18 +32679,6 @@ var patterns_registry_default = {
32173
32679
  role: {
32174
32680
  types: [
32175
32681
  "string"
32176
- ],
32177
- enumValues: [
32178
- "player",
32179
- "enemy",
32180
- "npc",
32181
- "item",
32182
- "tile",
32183
- "projectile",
32184
- "effect",
32185
- "ui",
32186
- "decoration",
32187
- "vehicle"
32188
32682
  ]
32189
32683
  },
32190
32684
  category: {
@@ -32214,6 +32708,11 @@ var patterns_registry_default = {
32214
32708
  "isometric"
32215
32709
  ]
32216
32710
  },
32711
+ variant: {
32712
+ types: [
32713
+ "string"
32714
+ ]
32715
+ },
32217
32716
  dimension: {
32218
32717
  types: [
32219
32718
  "string"
@@ -32234,6 +32733,16 @@ var patterns_registry_default = {
32234
32733
  "8:1"
32235
32734
  ]
32236
32735
  },
32736
+ atlas: {
32737
+ types: [
32738
+ "asset"
32739
+ ]
32740
+ },
32741
+ sprite: {
32742
+ types: [
32743
+ "string"
32744
+ ]
32745
+ },
32237
32746
  name: {
32238
32747
  types: [
32239
32748
  "string"
@@ -32246,7 +32755,9 @@ var patterns_registry_default = {
32246
32755
  }
32247
32756
  },
32248
32757
  required: [
32249
- "url"
32758
+ "url",
32759
+ "role",
32760
+ "category"
32250
32761
  ]
32251
32762
  },
32252
32763
  stateMachine: {
@@ -32324,18 +32835,6 @@ var patterns_registry_default = {
32324
32835
  role: {
32325
32836
  types: [
32326
32837
  "string"
32327
- ],
32328
- enumValues: [
32329
- "player",
32330
- "enemy",
32331
- "npc",
32332
- "item",
32333
- "tile",
32334
- "projectile",
32335
- "effect",
32336
- "ui",
32337
- "decoration",
32338
- "vehicle"
32339
32838
  ]
32340
32839
  },
32341
32840
  category: {
@@ -32365,6 +32864,11 @@ var patterns_registry_default = {
32365
32864
  "isometric"
32366
32865
  ]
32367
32866
  },
32867
+ variant: {
32868
+ types: [
32869
+ "string"
32870
+ ]
32871
+ },
32368
32872
  dimension: {
32369
32873
  types: [
32370
32874
  "string"
@@ -32385,6 +32889,16 @@ var patterns_registry_default = {
32385
32889
  "8:1"
32386
32890
  ]
32387
32891
  },
32892
+ atlas: {
32893
+ types: [
32894
+ "asset"
32895
+ ]
32896
+ },
32897
+ sprite: {
32898
+ types: [
32899
+ "string"
32900
+ ]
32901
+ },
32388
32902
  name: {
32389
32903
  types: [
32390
32904
  "string"
@@ -32397,7 +32911,9 @@ var patterns_registry_default = {
32397
32911
  }
32398
32912
  },
32399
32913
  required: [
32400
- "url"
32914
+ "url",
32915
+ "role",
32916
+ "category"
32401
32917
  ]
32402
32918
  },
32403
32919
  stateMachine: {
@@ -32552,18 +33068,6 @@ var patterns_registry_default = {
32552
33068
  role: {
32553
33069
  types: [
32554
33070
  "string"
32555
- ],
32556
- enumValues: [
32557
- "player",
32558
- "enemy",
32559
- "npc",
32560
- "item",
32561
- "tile",
32562
- "projectile",
32563
- "effect",
32564
- "ui",
32565
- "decoration",
32566
- "vehicle"
32567
33071
  ]
32568
33072
  },
32569
33073
  category: {
@@ -32593,6 +33097,11 @@ var patterns_registry_default = {
32593
33097
  "isometric"
32594
33098
  ]
32595
33099
  },
33100
+ variant: {
33101
+ types: [
33102
+ "string"
33103
+ ]
33104
+ },
32596
33105
  dimension: {
32597
33106
  types: [
32598
33107
  "string"
@@ -32613,6 +33122,16 @@ var patterns_registry_default = {
32613
33122
  "8:1"
32614
33123
  ]
32615
33124
  },
33125
+ atlas: {
33126
+ types: [
33127
+ "asset"
33128
+ ]
33129
+ },
33130
+ sprite: {
33131
+ types: [
33132
+ "string"
33133
+ ]
33134
+ },
32616
33135
  name: {
32617
33136
  types: [
32618
33137
  "string"
@@ -32625,7 +33144,9 @@ var patterns_registry_default = {
32625
33144
  }
32626
33145
  },
32627
33146
  required: [
32628
- "url"
33147
+ "url",
33148
+ "role",
33149
+ "category"
32629
33150
  ]
32630
33151
  },
32631
33152
  stateMachine: {
@@ -32872,18 +33393,6 @@ var patterns_registry_default = {
32872
33393
  role: {
32873
33394
  types: [
32874
33395
  "string"
32875
- ],
32876
- enumValues: [
32877
- "player",
32878
- "enemy",
32879
- "npc",
32880
- "item",
32881
- "tile",
32882
- "projectile",
32883
- "effect",
32884
- "ui",
32885
- "decoration",
32886
- "vehicle"
32887
33396
  ]
32888
33397
  },
32889
33398
  category: {
@@ -32913,6 +33422,11 @@ var patterns_registry_default = {
32913
33422
  "isometric"
32914
33423
  ]
32915
33424
  },
33425
+ variant: {
33426
+ types: [
33427
+ "string"
33428
+ ]
33429
+ },
32916
33430
  dimension: {
32917
33431
  types: [
32918
33432
  "string"
@@ -32933,6 +33447,16 @@ var patterns_registry_default = {
32933
33447
  "8:1"
32934
33448
  ]
32935
33449
  },
33450
+ atlas: {
33451
+ types: [
33452
+ "asset"
33453
+ ]
33454
+ },
33455
+ sprite: {
33456
+ types: [
33457
+ "string"
33458
+ ]
33459
+ },
32936
33460
  name: {
32937
33461
  types: [
32938
33462
  "string"
@@ -32945,7 +33469,9 @@ var patterns_registry_default = {
32945
33469
  }
32946
33470
  },
32947
33471
  required: [
32948
- "url"
33472
+ "url",
33473
+ "role",
33474
+ "category"
32949
33475
  ]
32950
33476
  },
32951
33477
  stateMachine: {
@@ -33070,18 +33596,6 @@ var patterns_registry_default = {
33070
33596
  role: {
33071
33597
  types: [
33072
33598
  "string"
33073
- ],
33074
- enumValues: [
33075
- "player",
33076
- "enemy",
33077
- "npc",
33078
- "item",
33079
- "tile",
33080
- "projectile",
33081
- "effect",
33082
- "ui",
33083
- "decoration",
33084
- "vehicle"
33085
33599
  ]
33086
33600
  },
33087
33601
  category: {
@@ -33111,6 +33625,11 @@ var patterns_registry_default = {
33111
33625
  "isometric"
33112
33626
  ]
33113
33627
  },
33628
+ variant: {
33629
+ types: [
33630
+ "string"
33631
+ ]
33632
+ },
33114
33633
  dimension: {
33115
33634
  types: [
33116
33635
  "string"
@@ -33131,6 +33650,16 @@ var patterns_registry_default = {
33131
33650
  "8:1"
33132
33651
  ]
33133
33652
  },
33653
+ atlas: {
33654
+ types: [
33655
+ "asset"
33656
+ ]
33657
+ },
33658
+ sprite: {
33659
+ types: [
33660
+ "string"
33661
+ ]
33662
+ },
33134
33663
  name: {
33135
33664
  types: [
33136
33665
  "string"
@@ -33143,7 +33672,9 @@ var patterns_registry_default = {
33143
33672
  }
33144
33673
  },
33145
33674
  required: [
33146
- "url"
33675
+ "url",
33676
+ "role",
33677
+ "category"
33147
33678
  ]
33148
33679
  },
33149
33680
  stateMachine: {
@@ -33223,18 +33754,6 @@ var patterns_registry_default = {
33223
33754
  role: {
33224
33755
  types: [
33225
33756
  "string"
33226
- ],
33227
- enumValues: [
33228
- "player",
33229
- "enemy",
33230
- "npc",
33231
- "item",
33232
- "tile",
33233
- "projectile",
33234
- "effect",
33235
- "ui",
33236
- "decoration",
33237
- "vehicle"
33238
33757
  ]
33239
33758
  },
33240
33759
  category: {
@@ -33264,6 +33783,11 @@ var patterns_registry_default = {
33264
33783
  "isometric"
33265
33784
  ]
33266
33785
  },
33786
+ variant: {
33787
+ types: [
33788
+ "string"
33789
+ ]
33790
+ },
33267
33791
  dimension: {
33268
33792
  types: [
33269
33793
  "string"
@@ -33284,6 +33808,16 @@ var patterns_registry_default = {
33284
33808
  "8:1"
33285
33809
  ]
33286
33810
  },
33811
+ atlas: {
33812
+ types: [
33813
+ "asset"
33814
+ ]
33815
+ },
33816
+ sprite: {
33817
+ types: [
33818
+ "string"
33819
+ ]
33820
+ },
33287
33821
  name: {
33288
33822
  types: [
33289
33823
  "string"
@@ -33296,7 +33830,9 @@ var patterns_registry_default = {
33296
33830
  }
33297
33831
  },
33298
33832
  required: [
33299
- "url"
33833
+ "url",
33834
+ "role",
33835
+ "category"
33300
33836
  ]
33301
33837
  },
33302
33838
  stateMachine: {
@@ -34086,7 +34622,8 @@ var patterns_registry_default = {
34086
34622
  category: "component",
34087
34623
  tier: "atoms",
34088
34624
  family: "core",
34089
- description: "Aside Atom Component Semantic wrapper for the native `<aside>` landmark. Owns raw HTML so molecules (SidePanel, navigation rails, callouts) can compose the semantic-aside primitive without falling back to a raw element.",
34625
+ description: "Aside \u2014 a secondary side panel that hosts navigation links or supplementary content alongside a main content area.",
34626
+ capabilities: "settings navigation sidebar, preferences menu panel, account settings nav, secondary panel, side navigation rail",
34090
34627
  suggestedFor: [
34091
34628
  "aside"
34092
34629
  ],
@@ -34343,7 +34880,8 @@ var patterns_registry_default = {
34343
34880
  category: "display",
34344
34881
  tier: "molecules",
34345
34882
  family: "core",
34346
- description: "TableView component",
34883
+ description: "TableView \u2014 sortable, selectable data table rendering rows over configurable columns, with inline row actions and grouping.",
34884
+ capabilities: "admin console table, records list, CRUD data table, user list, manage-users grid, sortable columns, row selection with bulk actions, grouped list view",
34347
34885
  suggestedFor: [
34348
34886
  "table",
34349
34887
  "view",
@@ -34775,7 +35313,7 @@ var patterns_registry_default = {
34775
35313
  types: [
34776
35314
  "function"
34777
35315
  ],
34778
- description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop.',
35316
+ description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop. In .lolo, author the per-row renderer as renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.',
34779
35317
  kind: "callback",
34780
35318
  callbackArgs: [
34781
35319
  {
@@ -36023,18 +36561,6 @@ var patterns_registry_default = {
36023
36561
  role: {
36024
36562
  types: [
36025
36563
  "string"
36026
- ],
36027
- enumValues: [
36028
- "player",
36029
- "enemy",
36030
- "npc",
36031
- "item",
36032
- "tile",
36033
- "projectile",
36034
- "effect",
36035
- "ui",
36036
- "decoration",
36037
- "vehicle"
36038
36564
  ]
36039
36565
  },
36040
36566
  category: {
@@ -36064,6 +36590,11 @@ var patterns_registry_default = {
36064
36590
  "isometric"
36065
36591
  ]
36066
36592
  },
36593
+ variant: {
36594
+ types: [
36595
+ "string"
36596
+ ]
36597
+ },
36067
36598
  dimension: {
36068
36599
  types: [
36069
36600
  "string"
@@ -36084,6 +36615,16 @@ var patterns_registry_default = {
36084
36615
  "8:1"
36085
36616
  ]
36086
36617
  },
36618
+ atlas: {
36619
+ types: [
36620
+ "asset"
36621
+ ]
36622
+ },
36623
+ sprite: {
36624
+ types: [
36625
+ "string"
36626
+ ]
36627
+ },
36087
36628
  name: {
36088
36629
  types: [
36089
36630
  "string"
@@ -36096,7 +36637,9 @@ var patterns_registry_default = {
36096
36637
  }
36097
36638
  },
36098
36639
  propertyRequired: [
36099
- "url"
36640
+ "url",
36641
+ "role",
36642
+ "category"
36100
36643
  ]
36101
36644
  },
36102
36645
  tileClickEvent: {
@@ -36336,18 +36879,6 @@ var patterns_registry_default = {
36336
36879
  role: {
36337
36880
  types: [
36338
36881
  "string"
36339
- ],
36340
- enumValues: [
36341
- "player",
36342
- "enemy",
36343
- "npc",
36344
- "item",
36345
- "tile",
36346
- "projectile",
36347
- "effect",
36348
- "ui",
36349
- "decoration",
36350
- "vehicle"
36351
36882
  ]
36352
36883
  },
36353
36884
  category: {
@@ -36377,6 +36908,11 @@ var patterns_registry_default = {
36377
36908
  "isometric"
36378
36909
  ]
36379
36910
  },
36911
+ variant: {
36912
+ types: [
36913
+ "string"
36914
+ ]
36915
+ },
36380
36916
  dimension: {
36381
36917
  types: [
36382
36918
  "string"
@@ -36397,6 +36933,16 @@ var patterns_registry_default = {
36397
36933
  "8:1"
36398
36934
  ]
36399
36935
  },
36936
+ atlas: {
36937
+ types: [
36938
+ "asset"
36939
+ ]
36940
+ },
36941
+ sprite: {
36942
+ types: [
36943
+ "string"
36944
+ ]
36945
+ },
36400
36946
  name: {
36401
36947
  types: [
36402
36948
  "string"
@@ -36409,7 +36955,9 @@ var patterns_registry_default = {
36409
36955
  }
36410
36956
  },
36411
36957
  required: [
36412
- "url"
36958
+ "url",
36959
+ "role",
36960
+ "category"
36413
36961
  ]
36414
36962
  },
36415
36963
  variant: {
@@ -36559,18 +37107,6 @@ var patterns_registry_default = {
36559
37107
  role: {
36560
37108
  types: [
36561
37109
  "string"
36562
- ],
36563
- enumValues: [
36564
- "player",
36565
- "enemy",
36566
- "npc",
36567
- "item",
36568
- "tile",
36569
- "projectile",
36570
- "effect",
36571
- "ui",
36572
- "decoration",
36573
- "vehicle"
36574
37110
  ]
36575
37111
  },
36576
37112
  category: {
@@ -36600,6 +37136,11 @@ var patterns_registry_default = {
36600
37136
  "isometric"
36601
37137
  ]
36602
37138
  },
37139
+ variant: {
37140
+ types: [
37141
+ "string"
37142
+ ]
37143
+ },
36603
37144
  dimension: {
36604
37145
  types: [
36605
37146
  "string"
@@ -36620,6 +37161,16 @@ var patterns_registry_default = {
36620
37161
  "8:1"
36621
37162
  ]
36622
37163
  },
37164
+ atlas: {
37165
+ types: [
37166
+ "asset"
37167
+ ]
37168
+ },
37169
+ sprite: {
37170
+ types: [
37171
+ "string"
37172
+ ]
37173
+ },
36623
37174
  name: {
36624
37175
  types: [
36625
37176
  "string"
@@ -36632,7 +37183,9 @@ var patterns_registry_default = {
36632
37183
  }
36633
37184
  },
36634
37185
  required: [
36635
- "url"
37186
+ "url",
37187
+ "role",
37188
+ "category"
36636
37189
  ]
36637
37190
  }
36638
37191
  },
@@ -36689,18 +37242,6 @@ var patterns_registry_default = {
36689
37242
  role: {
36690
37243
  types: [
36691
37244
  "string"
36692
- ],
36693
- enumValues: [
36694
- "player",
36695
- "enemy",
36696
- "npc",
36697
- "item",
36698
- "tile",
36699
- "projectile",
36700
- "effect",
36701
- "ui",
36702
- "decoration",
36703
- "vehicle"
36704
37245
  ]
36705
37246
  },
36706
37247
  category: {
@@ -36730,6 +37271,11 @@ var patterns_registry_default = {
36730
37271
  "isometric"
36731
37272
  ]
36732
37273
  },
37274
+ variant: {
37275
+ types: [
37276
+ "string"
37277
+ ]
37278
+ },
36733
37279
  dimension: {
36734
37280
  types: [
36735
37281
  "string"
@@ -36750,6 +37296,16 @@ var patterns_registry_default = {
36750
37296
  "8:1"
36751
37297
  ]
36752
37298
  },
37299
+ atlas: {
37300
+ types: [
37301
+ "asset"
37302
+ ]
37303
+ },
37304
+ sprite: {
37305
+ types: [
37306
+ "string"
37307
+ ]
37308
+ },
36753
37309
  name: {
36754
37310
  types: [
36755
37311
  "string"
@@ -36762,7 +37318,9 @@ var patterns_registry_default = {
36762
37318
  }
36763
37319
  },
36764
37320
  propertyRequired: [
36765
- "url"
37321
+ "url",
37322
+ "role",
37323
+ "category"
36766
37324
  ]
36767
37325
  },
36768
37326
  icon: {
@@ -39446,7 +40004,8 @@ var patterns_registry_default = {
39446
40004
  category: "display",
39447
40005
  tier: "atoms",
39448
40006
  family: "marketing",
39449
- description: "MarketingStatCard component",
40007
+ description: "MarketingStatCard \u2014 a single number-highlight card pairing a large value with a label and trend delta.",
40008
+ capabilities: "KPI card, metric tile, dashboard stat card, number card, big-number widget, stat highlight, key metric callout",
39450
40009
  suggestedFor: [
39451
40010
  "marketing",
39452
40011
  "stat",
@@ -40381,31 +40940,31 @@ var patterns_registry_default = {
40381
40940
  types: [
40382
40941
  "number"
40383
40942
  ],
40384
- description: "Rect width in px."
40943
+ description: "Rect width in world units (fractions of `projector.tileWidth`)."
40385
40944
  },
40386
40945
  height: {
40387
40946
  types: [
40388
40947
  "number"
40389
40948
  ],
40390
- description: "Rect height in px."
40949
+ description: "Rect height in world units (fractions of `projector.tileWidth`)."
40391
40950
  },
40392
40951
  radiusX: {
40393
40952
  types: [
40394
40953
  "number"
40395
40954
  ],
40396
- description: "Ellipse horizontal radius in px."
40955
+ description: "Ellipse horizontal radius in world units (fractions of `projector.tileWidth`)."
40397
40956
  },
40398
40957
  radiusY: {
40399
40958
  types: [
40400
40959
  "number"
40401
40960
  ],
40402
- description: "Ellipse vertical radius in px; omitted \u2192 `radiusX` (a circle)."
40961
+ description: "Ellipse vertical radius in world units; omitted \u2192 `radiusX` (a circle)."
40403
40962
  },
40404
40963
  offsetX: {
40405
40964
  types: [
40406
40965
  "number"
40407
40966
  ],
40408
- description: "Fine px nudge from the anchor point (e.g. a disc drawn at `groundY - 8*scale`)."
40967
+ description: "Fine nudge from the anchor point in world units."
40409
40968
  },
40410
40969
  offsetY: {
40411
40970
  types: [
@@ -40417,7 +40976,7 @@ var patterns_registry_default = {
40417
40976
  types: [
40418
40977
  "array"
40419
40978
  ],
40420
- description: "Poly vertices as px offsets relative to the cell's projected top-left.",
40979
+ description: "Poly vertices as world-unit offsets relative to the cell's projected top-left.",
40421
40980
  items: {
40422
40981
  types: [
40423
40982
  "object"
@@ -40521,18 +41080,6 @@ var patterns_registry_default = {
40521
41080
  role: {
40522
41081
  types: [
40523
41082
  "string"
40524
- ],
40525
- enumValues: [
40526
- "player",
40527
- "enemy",
40528
- "npc",
40529
- "item",
40530
- "tile",
40531
- "projectile",
40532
- "effect",
40533
- "ui",
40534
- "decoration",
40535
- "vehicle"
40536
41083
  ]
40537
41084
  },
40538
41085
  category: {
@@ -40562,6 +41109,11 @@ var patterns_registry_default = {
40562
41109
  "isometric"
40563
41110
  ]
40564
41111
  },
41112
+ variant: {
41113
+ types: [
41114
+ "string"
41115
+ ]
41116
+ },
40565
41117
  dimension: {
40566
41118
  types: [
40567
41119
  "string"
@@ -40582,6 +41134,16 @@ var patterns_registry_default = {
40582
41134
  "8:1"
40583
41135
  ]
40584
41136
  },
41137
+ atlas: {
41138
+ types: [
41139
+ "asset"
41140
+ ]
41141
+ },
41142
+ sprite: {
41143
+ types: [
41144
+ "string"
41145
+ ]
41146
+ },
40585
41147
  name: {
40586
41148
  types: [
40587
41149
  "string"
@@ -40594,7 +41156,9 @@ var patterns_registry_default = {
40594
41156
  }
40595
41157
  },
40596
41158
  propertyRequired: [
40597
- "url"
41159
+ "url",
41160
+ "role",
41161
+ "category"
40598
41162
  ]
40599
41163
  },
40600
41164
  anchor: {
@@ -41008,18 +41572,6 @@ var patterns_registry_default = {
41008
41572
  role: {
41009
41573
  types: [
41010
41574
  "string"
41011
- ],
41012
- enumValues: [
41013
- "player",
41014
- "enemy",
41015
- "npc",
41016
- "item",
41017
- "tile",
41018
- "projectile",
41019
- "effect",
41020
- "ui",
41021
- "decoration",
41022
- "vehicle"
41023
41575
  ]
41024
41576
  },
41025
41577
  category: {
@@ -41049,6 +41601,11 @@ var patterns_registry_default = {
41049
41601
  "isometric"
41050
41602
  ]
41051
41603
  },
41604
+ variant: {
41605
+ types: [
41606
+ "string"
41607
+ ]
41608
+ },
41052
41609
  dimension: {
41053
41610
  types: [
41054
41611
  "string"
@@ -41069,6 +41626,16 @@ var patterns_registry_default = {
41069
41626
  "8:1"
41070
41627
  ]
41071
41628
  },
41629
+ atlas: {
41630
+ types: [
41631
+ "asset"
41632
+ ]
41633
+ },
41634
+ sprite: {
41635
+ types: [
41636
+ "string"
41637
+ ]
41638
+ },
41072
41639
  name: {
41073
41640
  types: [
41074
41641
  "string"
@@ -41081,7 +41648,9 @@ var patterns_registry_default = {
41081
41648
  }
41082
41649
  },
41083
41650
  required: [
41084
- "url"
41651
+ "url",
41652
+ "role",
41653
+ "category"
41085
41654
  ]
41086
41655
  },
41087
41656
  anchor: {
@@ -41360,18 +41929,6 @@ var patterns_registry_default = {
41360
41929
  role: {
41361
41930
  types: [
41362
41931
  "string"
41363
- ],
41364
- enumValues: [
41365
- "player",
41366
- "enemy",
41367
- "npc",
41368
- "item",
41369
- "tile",
41370
- "projectile",
41371
- "effect",
41372
- "ui",
41373
- "decoration",
41374
- "vehicle"
41375
41932
  ]
41376
41933
  },
41377
41934
  category: {
@@ -41401,6 +41958,11 @@ var patterns_registry_default = {
41401
41958
  "isometric"
41402
41959
  ]
41403
41960
  },
41961
+ variant: {
41962
+ types: [
41963
+ "string"
41964
+ ]
41965
+ },
41404
41966
  dimension: {
41405
41967
  types: [
41406
41968
  "string"
@@ -41421,6 +41983,16 @@ var patterns_registry_default = {
41421
41983
  "8:1"
41422
41984
  ]
41423
41985
  },
41986
+ atlas: {
41987
+ types: [
41988
+ "asset"
41989
+ ]
41990
+ },
41991
+ sprite: {
41992
+ types: [
41993
+ "string"
41994
+ ]
41995
+ },
41424
41996
  name: {
41425
41997
  types: [
41426
41998
  "string"
@@ -41433,7 +42005,9 @@ var patterns_registry_default = {
41433
42005
  }
41434
42006
  },
41435
42007
  propertyRequired: [
41436
- "url"
42008
+ "url",
42009
+ "role",
42010
+ "category"
41437
42011
  ]
41438
42012
  },
41439
42013
  backgroundColor: {
@@ -41608,6 +42182,74 @@ var patterns_registry_default = {
41608
42182
  }
41609
42183
  },
41610
42184
  drawHost: true
42185
+ },
42186
+ presence: {
42187
+ type: "presence",
42188
+ category: "component",
42189
+ tier: "atoms",
42190
+ family: "core",
42191
+ description: "Presence component",
42192
+ suggestedFor: [
42193
+ "presence"
42194
+ ],
42195
+ typicalSize: "small",
42196
+ propsSchema: {
42197
+ show: {
42198
+ types: [
42199
+ "boolean"
42200
+ ],
42201
+ description: "When false, the exit animation runs, then children unmount.",
42202
+ required: true
42203
+ },
42204
+ className: {
42205
+ types: [
42206
+ "string"
42207
+ ],
42208
+ description: "className prop"
42209
+ },
42210
+ children: {
42211
+ types: [
42212
+ "node"
42213
+ ],
42214
+ description: "children prop",
42215
+ required: true
42216
+ }
42217
+ }
42218
+ },
42219
+ "page-transition": {
42220
+ type: "page-transition",
42221
+ category: "component",
42222
+ tier: "molecules",
42223
+ family: "core",
42224
+ description: "PageTransition component",
42225
+ suggestedFor: [
42226
+ "page",
42227
+ "transition",
42228
+ "page transition"
42229
+ ],
42230
+ typicalSize: "medium",
42231
+ propsSchema: {
42232
+ locationKey: {
42233
+ types: [
42234
+ "string"
42235
+ ],
42236
+ description: "Value that changes on navigation (e.g. `location.pathname`).",
42237
+ required: true
42238
+ },
42239
+ children: {
42240
+ types: [
42241
+ "node"
42242
+ ],
42243
+ description: "children prop",
42244
+ required: true
42245
+ },
42246
+ className: {
42247
+ types: [
42248
+ "string"
42249
+ ],
42250
+ description: "className prop"
42251
+ }
42252
+ }
41611
42253
  }
41612
42254
  },
41613
42255
  categories: [
@@ -42235,7 +42877,7 @@ var integrators_registry_default = {
42235
42877
  // src/patterns/component-mapping.json
42236
42878
  var component_mapping_default = {
42237
42879
  version: "1.0.0",
42238
- exportedAt: "2026-07-13T15:27:57.365Z",
42880
+ exportedAt: "2026-07-21T09:54:57.379Z",
42239
42881
  mappings: {
42240
42882
  "page-header": {
42241
42883
  component: "PageHeader",
@@ -42273,8 +42915,8 @@ var component_mapping_default = {
42273
42915
  category: "form"
42274
42916
  },
42275
42917
  "form-actions": {
42276
- component: "FormActions",
42277
- importPath: "@/components/core/molecules/FormSection",
42918
+ component: "ButtonGroup",
42919
+ importPath: "@/components/core/molecules/ButtonGroup",
42278
42920
  category: "form"
42279
42921
  },
42280
42922
  "filter-group": {
@@ -43583,6 +44225,16 @@ var component_mapping_default = {
43583
44225
  component: "Canvas",
43584
44226
  importPath: "@/components/game/molecules/Canvas",
43585
44227
  category: "game"
44228
+ },
44229
+ presence: {
44230
+ component: "Presence",
44231
+ importPath: "@/components/core/atoms/Presence",
44232
+ category: "component"
44233
+ },
44234
+ "page-transition": {
44235
+ component: "PageTransition",
44236
+ importPath: "@/components/core/molecules/PageTransition",
44237
+ category: "component"
43586
44238
  }
43587
44239
  }
43588
44240
  };
@@ -43590,7 +44242,7 @@ var component_mapping_default = {
43590
44242
  // src/patterns/event-contracts.json
43591
44243
  var event_contracts_default = {
43592
44244
  version: "1.0.0",
43593
- exportedAt: "2026-07-13T15:27:57.365Z",
44245
+ exportedAt: "2026-07-21T09:54:57.379Z",
43594
44246
  contracts: {
43595
44247
  form: {
43596
44248
  emits: [
@@ -43683,7 +44335,14 @@ var event_contracts_default = {
43683
44335
  "form-actions": {
43684
44336
  emits: [
43685
44337
  {
43686
- event: "TOGGLE_COLLAPSE",
44338
+ event: "DISPATCH",
44339
+ trigger: "action",
44340
+ payload: {
44341
+ type: "object"
44342
+ }
44343
+ },
44344
+ {
44345
+ event: "NAVIGATE",
43687
44346
  trigger: "action",
43688
44347
  payload: {
43689
44348
  type: "object"
@@ -43691,7 +44350,7 @@ var event_contracts_default = {
43691
44350
  }
43692
44351
  ],
43693
44352
  requires: [],
43694
- entityAware: false,
44353
+ entityAware: true,
43695
44354
  configDriven: true
43696
44355
  },
43697
44356
  "entity-table": {
@@ -44883,11 +45542,13 @@ var PATTERN_TYPES = [
44883
45542
  "orbital-visualization",
44884
45543
  "overlay",
44885
45544
  "page-header",
45545
+ "page-transition",
44886
45546
  "pagination",
44887
45547
  "pattern-tile",
44888
45548
  "physics-canvas",
44889
45549
  "popover",
44890
45550
  "positioned-canvas",
45551
+ "presence",
44891
45552
  "pricing-card",
44892
45553
  "pricing-grid",
44893
45554
  "pricing-organism",
@@ -45077,10 +45738,13 @@ var ORB_ALLOWED_ENTITY_PATTERNS = /* @__PURE__ */ new Set([
45077
45738
  "data-grid",
45078
45739
  "search-input",
45079
45740
  "form-section",
45080
- "meter"
45741
+ "meter",
45742
+ "table-view",
45743
+ "filter-group",
45744
+ "timeline",
45745
+ "media-gallery"
45081
45746
  ]);
45082
45747
  var ORB_EXCLUDED_CATEGORIES = /* @__PURE__ */ new Set([
45083
- "game",
45084
45748
  "debug",
45085
45749
  "template"
45086
45750
  ]);
@@ -45161,6 +45825,32 @@ function getOrbAllowedPatternsFiltered(patternNames) {
45161
45825
  return lines.join("\n");
45162
45826
  }
45163
45827
 
45828
+ // src/patterns/helpers/render-ui-pattern-types.ts
45829
+ function collectPatternTypeTokens(node, out) {
45830
+ if (!isJsonObject(node)) return;
45831
+ const type = node["type"];
45832
+ if (typeof type === "string" && !type.startsWith("@")) out.add(type);
45833
+ const children = node["children"];
45834
+ if (isJsonArray(children)) {
45835
+ for (const child of children) collectPatternTypeTokens(child, out);
45836
+ }
45837
+ }
45838
+ function collectRenderUiPatternTypes(ir, out) {
45839
+ if (isJsonArray(ir)) {
45840
+ if (ir.length >= 3 && ir[0] === "render-ui" && typeof ir[1] === "string") {
45841
+ collectPatternTypeTokens(ir[2], out);
45842
+ }
45843
+ for (const item of ir) collectRenderUiPatternTypes(item, out);
45844
+ } else if (isJsonObject(ir)) {
45845
+ for (const value of Object.values(ir)) collectRenderUiPatternTypes(value, out);
45846
+ }
45847
+ }
45848
+ function renderUiPatternTypesOf(ir) {
45849
+ const out = /* @__PURE__ */ new Set();
45850
+ collectRenderUiPatternTypes(ir, out);
45851
+ return out;
45852
+ }
45853
+
45164
45854
  // src/patterns/helpers/pattern-recommender.ts
45165
45855
  var DOMAIN_KEYWORDS = {
45166
45856
  business: ["admin panels", "data-dense views", "list pages", "data entry", "comparisons"],
@@ -45514,17 +46204,6 @@ function isResolvedIR(ir) {
45514
46204
  return typeof r.appName === "string" && r.traits instanceof Map && r.pages instanceof Map;
45515
46205
  }
45516
46206
 
45517
- // src/types/json.ts
45518
- function isJsonPrimitive(value) {
45519
- return value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean";
45520
- }
45521
- function isJsonObject(value) {
45522
- return value !== null && typeof value === "object" && !Array.isArray(value);
45523
- }
45524
- function isJsonArray(value) {
45525
- return Array.isArray(value);
45526
- }
45527
-
45528
46207
  // src/types/validation.ts
45529
46208
  var KNOWN_VALIDATION_ERROR_CODES = {
45530
46209
  // Binding (`@entity.X`, `@payload.Y`, `@state.Z`, `@now`, ...)
@@ -45689,7 +46368,13 @@ var KNOWN_VALIDATION_ERROR_CODES = {
45689
46368
  ORB_X_PAYLOAD_MISMATCH: "ORB_X_PAYLOAD_MISMATCH",
45690
46369
  ORB_X_RENDER_UI_EVENT_LITERAL_STALE: "ORB_X_RENDER_UI_EVENT_LITERAL_STALE",
45691
46370
  ORB_X_UNRESOLVED_PATTERN_FIELD_REF: "ORB_X_UNRESOLVED_PATTERN_FIELD_REF",
45692
- ORB_X_UNUSED_EMISSION: "ORB_X_UNUSED_EMISSION"
46371
+ ORB_X_UNUSED_EMISSION: "ORB_X_UNUSED_EMISSION",
46372
+ // Identity — V4 dual-carry id integrity (`ORB_ID_*`). Mirrors
46373
+ // `orbital-compiler/src/phases/validation/id_integrity.rs`.
46374
+ ORB_ID_UNKNOWN_REF: "ORB_ID_UNKNOWN_REF",
46375
+ ORB_ID_NAME_MISMATCH: "ORB_ID_NAME_MISMATCH",
46376
+ ORB_ID_KIND_MISMATCH: "ORB_ID_KIND_MISMATCH",
46377
+ ORB_ID_LEDGER_ORPHAN: "ORB_ID_LEDGER_ORPHAN"
45693
46378
  };
45694
46379
  function isKnownValidationErrorCode(code) {
45695
46380
  return code in KNOWN_VALIDATION_ERROR_CODES;
@@ -47814,13 +48499,40 @@ function applyEventWiring(orbitals, wiring) {
47814
48499
  }
47815
48500
 
47816
48501
  // src/builders/compose-behaviors.ts
48502
+ function isSchema(input) {
48503
+ return "orbitals" in input && Array.isArray(input.orbitals);
48504
+ }
47817
48505
  function asDefinitions(inputs) {
47818
- return inputs.flatMap((input) => {
47819
- if ("orbitals" in input && Array.isArray(input.orbitals)) {
47820
- return input.orbitals;
48506
+ return inputs.flatMap(
48507
+ (input) => isSchema(input) ? input.orbitals : [input]
48508
+ );
48509
+ }
48510
+ function mergeLedgers(inputs) {
48511
+ const merged = /* @__PURE__ */ new Map();
48512
+ let sawLedger = false;
48513
+ for (const input of inputs) {
48514
+ if (!isSchema(input) || input.ledger === void 0) continue;
48515
+ sawLedger = true;
48516
+ for (const [id, entry] of Object.entries(input.ledger.entries)) {
48517
+ if (!merged.has(id)) merged.set(id, entry);
47821
48518
  }
47822
- return [input];
47823
- });
48519
+ }
48520
+ if (!sawLedger) return void 0;
48521
+ const entries = {};
48522
+ for (const [id, entry] of [...merged.entries()].sort(
48523
+ ([a], [b]) => a < b ? -1 : a > b ? 1 : 0
48524
+ )) {
48525
+ entries[id] = entry;
48526
+ }
48527
+ return { schemaVersion: 1, entries };
48528
+ }
48529
+ function mergeSchemaVersions(inputs) {
48530
+ let max;
48531
+ for (const input of inputs) {
48532
+ if (!isSchema(input) || input.schemaVersion === void 0) continue;
48533
+ max = max === void 0 ? input.schemaVersion : Math.max(max, input.schemaVersion);
48534
+ }
48535
+ return max;
47824
48536
  }
47825
48537
  function toKebabCase(name) {
47826
48538
  return name.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
@@ -47890,10 +48602,14 @@ function composeBehaviors(input) {
47890
48602
  pages: page ? [page] : []
47891
48603
  };
47892
48604
  });
48605
+ const ledger = mergeLedgers(rawInputs);
48606
+ const schemaVersion = mergeSchemaVersions(rawInputs);
47893
48607
  const schema = {
47894
48608
  name: appName,
47895
48609
  version: "1.0.0",
47896
- orbitals: orbitalsWithPages
48610
+ orbitals: orbitalsWithPages,
48611
+ ...schemaVersion !== void 0 ? { schemaVersion } : {},
48612
+ ...ledger !== void 0 ? { ledger } : {}
47897
48613
  };
47898
48614
  return {
47899
48615
  schema,
@@ -48304,6 +49020,6 @@ function mergeEntityFrame(current, orderedWrites) {
48304
49020
  return next;
48305
49021
  }
48306
49022
 
48307
- export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ASSET_ASPECTS, ASSET_DIMENSIONS, AgentDomainCategorySchema, AnimationDefSchema, AnimationNameSchema, AssetAspectSchema, AssetCatalogEntrySchema, AssetCatalogSchema, AssetDimensionSchema, AssetSchema, 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, DeclaredTraitConfigSchema, DensitySliceSchema, DensityTokensSchema, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EVENT_CONTRACTS, EffectSchema, ElevationSliceSchema, ElevationTokensSchema, EntityCallSchema, EntityFieldContractSchema, EntityFieldSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntitySchema, EntitySemanticRoleSchema, EventListenerSchema, EventPayloadFieldSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpressionSchema, FieldFormatSchema, FieldSchema, FieldTypeSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, INTEGRATORS_REGISTRY, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, ListenSourceSchema, McpServiceDefSchema, MotionDurationKeySchema, MotionDurationPaletteSchema, MotionEasingKeySchema, MotionEasingPaletteSchema, MotionIntentMapSchema, MotionIntentSchema, MotionSliceSchema, MotionTokensSchema, NodeClassificationSchema, OrbitalConfigSchema, OrbitalDefinitionSchema, OrbitalEntitySchema, OrbitalPageSchema, OrbitalPageStrictSchema, OrbitalSchemaSchema, OrbitalTraitRefSchema, OrbitalUnitSchema, OrbitalSchema as OrbitalZodSchema, PATTERN_REGISTRY, PATTERN_TYPES, PageRefObjectSchema, PageRefSchema, PageRefStringSchema, PageSchema, PageTraitRefSchema, PatternTypeSchema, PayloadFieldSchema, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, RestAuthConfigSchema, RestServiceDefSchema, SERVICE_TYPES, SExprAtomSchema, SExprSchema, SPRITE_DIRECTIONS, ScenePosSchema, SchemaMetadataSchema, SemanticAssetRefSchema, ServiceDefinitionSchema, ServiceRefObjectSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SkinSpecSchema, SocketEventsSchema, SocketServiceDefSchema, SpacingScaleSchema, SpriteDirectionSchema, SpriteSheetAtlasSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SubTextureSchema, SuggestedGuardSchema, TextureAtlasSchema, ThemeDefinitionSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TilesheetSchema, TraitCategorySchema, TraitConfigSchema, TraitConfigValueSchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitFieldRefSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TransitionSchema, TypeIntentMapSchema, TypeIntentSchema, TypeScaleEntrySchema, TypeScaleSchema, TypeScaleTokensSchema, TypeSizeKeySchema, TypeSliceSchema, TypeSlotSchema, TypeWeightSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, answerToMutations, answersToMutations, applyEventWiring, applyFactoryCallPlanMutation, applyRenderOverlay, atomic, buildEdgeCoveringWalk, buildGuardPayloads, buildRecommendationContext, buildReplayPaths, buildResolvedTraitConfigs, buildStateGraph, callService, categorizeRemovals, classifyWorkflow, clearSchemaCache, collectBindings, collectEmbeddedTraitReferrers, collectReachableStates, component_mapping_default as componentMapping, composeBehaviors, configRefEventKnob, constTruth, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, deref, deriveCollection, deriveInputType, despawn, detectLayoutStrategy, detectPageContentReduction, diffFactoryCalls, diffOrbitalSchemas, diffSchemaSemantics, diffSchemas, doEffects, emit, event_contracts_default as eventContracts, extractPayloadFieldRef, findCompatiblePatterns, findService, fingerprintNode, formatRecommendationsForPrompt, generatePatternDescription, generateQuestions, getAllPatternTypes, getArgs, getBindingExamples, getComponentForPattern, getDefaultAnimationsForRole, getEmittedEvents, getEntity, getEntityCardinality, getInteractionModelForDomain, getOperator, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPage, getPages, getPatternActionsRef, getPatternDefinition, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, getRemovals, getSchemaCacheStats, getServiceNames, getTrait, getTraitConfig, getTraitName, hasService, hasSignificantPageReduction, inferTsType, insertChildAtPath, integrators_registry_default as integratorsRegistry, isBinding, isCallSiteConfigDeclaration, isCircuitEvent, isDestructiveChange, isDrawHostPattern, isDrawablePattern, isEffect, isEntityAwarePattern, isEntityCall, isEntityReference, isEntityReferenceAny, isEventPayloadValue, isFieldValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMcpService, isOrbitalDefinition, isPageReference, isPageReferenceObject, isPageReferenceString, isPlanSnapshot, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isThemeReference, isTraitFieldRef, isValidBinding, isValidPatternType, mergeEntityFrame, navigate, navigatePatternPath, normalizeCallSiteConfigToValues, normalizeTraitRef, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, patterns_registry_default as patternsRegistry, persist, persistenceModeAllowsOverrides, recommendPatterns, ref, registry, removeChildAtPath, renderUI, replaceChildAtPath, requiresConfirmation, resolveConfigRefEventName, safeParseOrbitalSchema, schemaToIR, set, setPropAtPath, sexpr, spawn, summarizeOrbital, summarizeSchema, swap, toBindingRoot, translateOverlaysToParams, validateAssetAnimations, validateBindingInContext, walkSExpr, walkStatePairs, watch, widenTier };
49023
+ export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ASSET_ASPECTS, ASSET_DIMENSIONS, AgentDomainCategorySchema, AnimationDefSchema, AnimationNameSchema, AssetAspectSchema, AssetCatalogEntrySchema, AssetCatalogSchema, AssetDimensionSchema, AssetSchema, 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, 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, ExpressionSchema, FieldFormatSchema, FieldSchema, FieldTypeSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, INTEGRATORS_REGISTRY, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IdentityLedgerSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, LedgerEntrySchema, LedgerKindSchema, ListenSourceSchema, 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, REFERENCE_CONFIG_TYPES, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, RestAuthConfigSchema, RestServiceDefSchema, SERVICE_TYPES, SExprAtomSchema, SExprSchema, SPRITE_DIRECTIONS, ScenePosSchema, SchemaMetadataSchema, SemanticAssetRefSchema, ServiceDefinitionSchema, ServiceIdSchema, ServiceRefObjectSchema, ServiceRefSchema, ServiceRefStringSchema, ServiceTypeSchema, SkinSpecSchema, SocketEventsSchema, SocketServiceDefSchema, SpacingScaleSchema, SpriteDirectionSchema, SpriteSheetAtlasSchema, StateMachineSchema, StateSchema, StateSemanticRoleSchema, SubTextureSchema, SuggestedGuardSchema, TextureAtlasSchema, ThemeDefinitionSchema, ThemeIdSchema, ThemeRefSchema, ThemeRefStringSchema, ThemeTokensSchema, ThemeVariantSchema, TilesheetSchema, TraitCategorySchema, TraitConfigSchema, TraitConfigValueSchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitFieldRefSchema, TraitIdSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TransitionSchema, TypeIntentMapSchema, TypeIntentSchema, TypeScaleEntrySchema, TypeScaleSchema, TypeScaleTokensSchema, TypeSizeKeySchema, TypeSliceSchema, TypeSlotSchema, TypeWeightSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, answerToMutations, answersToMutations, applyEventWiring, applyFactoryCallPlanMutation, applyRenderOverlay, asEntityId, asEventId, asOrbitalId, asPageId, asPaletteEntryId, asServiceId, asThemeId, asTraitId, atomic, buildEdgeCoveringWalk, buildGuardPayloads, buildRecommendationContext, buildReplayPaths, buildResolvedTraitConfigs, buildStateGraph, callService, categorizeRemovals, classifyWorkflow, clearSchemaCache, collectBindings, collectEmbeddedTraitReferrers, collectReachableStates, collectRenderUiPatternTypes, component_mapping_default as componentMapping, composeBehaviors, configRefEventKnob, constTruth, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, deref, deriveCollection, deriveInputType, despawn, detectLayoutStrategy, detectPageContentReduction, diffFactoryCalls, diffOrbitalSchemas, diffSchemaSemantics, diffSchemas, doEffects, emit, event_contracts_default as eventContracts, extractPayloadFieldRef, findCompatiblePatterns, findService, fingerprintNode, formatRecommendationsForPrompt, generatePatternDescription, generateQuestions, getAllPatternTypes, getArgs, getBindingExamples, getComponentForPattern, getDefaultAnimationsForRole, getEmittedEvents, getEntity, getEntityCardinality, getInteractionModelForDomain, getOperator, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPage, getPages, getPatternActionsRef, getPatternDefinition, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, getRemovals, getSchemaCacheStats, getServiceNames, getTrait, getTraitConfig, getTraitName, hasService, hasSignificantPageReduction, idKindOf, idPrefix, inferTsType, insertChildAtPath, integrators_registry_default as integratorsRegistry, isBinding, isCallSiteConfigDeclaration, isCircuitEvent, isDestructiveChange, isDrawHostPattern, isDrawablePattern, isEffect, isEntityAwarePattern, isEntityCall, isEntityId, isEntityReference, isEntityReferenceAny, isEventId, isEventPayloadValue, isFieldValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMcpService, isOrbitalDefinition, isOrbitalId, isPageId, isPageReference, isPageReferenceObject, isPageReferenceString, isPaletteEntryId, isPlanSnapshot, isReferenceConfigType, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isServiceId, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isThemeId, isThemeReference, isTraitFieldRef, isTraitId, isValidBinding, isValidPatternType, ledgerCurName, ledgerRename, ledgerResolveName, mergeEntityFrame, mintId, navigate, navigatePatternPath, normalizeCallSiteConfigToValues, normalizeTraitRef, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, patterns_registry_default as patternsRegistry, persist, persistenceModeAllowsOverrides, recommendPatterns, ref, registry, removeChildAtPath, renderUI, renderUiPatternTypesOf, replaceChildAtPath, requiresConfirmation, resolveConfigRefEventName, safeParseOrbitalSchema, schemaToIR, set, setPropAtPath, sexpr, spawn, summarizeOrbital, summarizeSchema, swap, toBindingRoot, translateOverlaysToParams, validateAssetAnimations, validateBindingInContext, walkSExpr, walkStatePairs, watch, widenTier };
48308
49024
  //# sourceMappingURL=index.js.map
48309
49025
  //# sourceMappingURL=index.js.map