@almadar/core 10.41.0 → 10.43.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
@@ -486,7 +486,7 @@ var OrbitalEntitySchema = z.object({
486
486
  identity: z.boolean().optional(),
487
487
  collection: z.string().optional(),
488
488
  fields: z.array(EntityFieldSchema).min(1, "At least one field is required"),
489
- instances: z.array(z.record(z.unknown())).optional(),
489
+ instances: z.array(z.record(JsonValueSchema)).optional(),
490
490
  timestamps: z.boolean().optional(),
491
491
  softDelete: z.boolean().optional(),
492
492
  description: z.string().optional(),
@@ -517,97 +517,15 @@ function isFieldValue(value) {
517
517
  }
518
518
  return false;
519
519
  }
520
- var UI_SLOTS = [
521
- // App slots
522
- "main",
523
- "sidebar",
524
- "modal",
525
- "drawer",
526
- "overlay",
527
- "center",
528
- "toast",
529
- "floating",
530
- "system",
531
- // For invisible system components (InputListener, CollisionDetector)
532
- "content",
533
- "screen",
534
- // Game HUD slots
535
- "hud",
536
- "hud-top",
537
- "hud-bottom",
538
- "hud.health",
539
- "hud.score",
540
- "hud.inventory",
541
- "hud.stamina",
542
- // Game overlay slots
543
- "overlay.inventory",
544
- "overlay.dialogue",
545
- "overlay.menu",
546
- "overlay.pause"
547
- ];
548
- var UISlotSchema = z.enum(UI_SLOTS);
549
- var EffectSchema = z.array(z.unknown()).min(1).refine(
550
- (arr) => typeof arr[0] === "string",
551
- { message: "Effect must be an S-expression with a string operator as first element" }
520
+ var SExprDataSchema = z.lazy(
521
+ () => z.union([SExprAtomSchema, z.array(SExprDataSchema)])
552
522
  );
553
- function isEffect(value) {
554
- return Array.isArray(value) && value.length > 0 && typeof value[0] === "string";
555
- }
556
- var isSExprEffect = isEffect;
557
- function set(binding, value) {
558
- return ["set", binding, value];
559
- }
560
- function emit(event, payload) {
561
- return payload ? ["emit", event, payload] : ["emit", event];
562
- }
563
- function navigate(path, params) {
564
- return params ? ["navigate", path, params] : ["navigate", path];
565
- }
566
- function renderUI(target, pattern, props) {
567
- return props ? ["render-ui", target, pattern, props] : ["render-ui", target, pattern];
568
- }
569
- function persist(action, entity, data) {
570
- if (action === "create" || action === "update") {
571
- return ["persist", action, entity, data];
572
- }
573
- return data ? ["persist", action, entity, data] : ["persist", action, entity];
574
- }
575
- function callService(serviceName, config) {
576
- return ["call-service", serviceName, config];
577
- }
578
- function spawn(entity, initialState) {
579
- return initialState ? ["spawn", entity, initialState] : ["spawn", entity];
580
- }
581
- function despawn(entityId) {
582
- return ["despawn", entityId];
583
- }
584
- function doEffects(...effects) {
585
- return ["do", ...effects];
586
- }
587
- function notify(channel, message, recipient) {
588
- return recipient ? ["notify", channel, message, recipient] : ["notify", channel, message];
589
- }
590
- function ref(binding, selector) {
591
- return selector ? ["ref", binding, selector] : ["ref", binding];
592
- }
593
- function deref(binding, selector) {
594
- return selector ? ["deref", binding, selector] : ["deref", binding];
595
- }
596
- function swap(binding, transform) {
597
- return ["swap!", binding, transform];
598
- }
599
- function watch(binding, event, options) {
600
- return options ? ["watch", binding, event, options] : ["watch", binding, event];
601
- }
602
- function atomic(...effects) {
603
- return ["atomic", ...effects];
604
- }
605
523
  var SExprAtomSchema = z.union([
606
524
  z.string(),
607
525
  z.number(),
608
526
  z.boolean(),
609
527
  z.null(),
610
- z.record(z.unknown())
528
+ z.record(SExprDataSchema)
611
529
  // Objects for payload data
612
530
  ]);
613
531
  var SExprSchema = z.lazy(
@@ -706,6 +624,93 @@ function isEventPayloadValue(value) {
706
624
  return false;
707
625
  }
708
626
 
627
+ // src/types/effect.ts
628
+ var UI_SLOTS = [
629
+ // App slots
630
+ "main",
631
+ "sidebar",
632
+ "modal",
633
+ "drawer",
634
+ "overlay",
635
+ "center",
636
+ "toast",
637
+ "floating",
638
+ "system",
639
+ // For invisible system components (InputListener, CollisionDetector)
640
+ "content",
641
+ "screen",
642
+ // Game HUD slots
643
+ "hud",
644
+ "hud-top",
645
+ "hud-bottom",
646
+ "hud.health",
647
+ "hud.score",
648
+ "hud.inventory",
649
+ "hud.stamina",
650
+ // Game overlay slots
651
+ "overlay.inventory",
652
+ "overlay.dialogue",
653
+ "overlay.menu",
654
+ "overlay.pause"
655
+ ];
656
+ var UISlotSchema = z.enum(UI_SLOTS);
657
+ var EffectSchema = z.array(SExprDataSchema).min(1).refine(
658
+ (arr) => typeof arr[0] === "string",
659
+ { message: "Effect must be an S-expression with a string operator as first element" }
660
+ );
661
+ function isEffect(value) {
662
+ return Array.isArray(value) && value.length > 0 && typeof value[0] === "string";
663
+ }
664
+ var isSExprEffect = isEffect;
665
+ function set(binding, value) {
666
+ return ["set", binding, value];
667
+ }
668
+ function emit(event, payload) {
669
+ return payload ? ["emit", event, payload] : ["emit", event];
670
+ }
671
+ function navigate(path, params) {
672
+ return params ? ["navigate", path, params] : ["navigate", path];
673
+ }
674
+ function renderUI(target, pattern, props) {
675
+ return props ? ["render-ui", target, pattern, props] : ["render-ui", target, pattern];
676
+ }
677
+ function persist(action, entity, data) {
678
+ if (action === "create" || action === "update") {
679
+ return ["persist", action, entity, data];
680
+ }
681
+ return data ? ["persist", action, entity, data] : ["persist", action, entity];
682
+ }
683
+ function callService(serviceName, config) {
684
+ return ["call-service", serviceName, config];
685
+ }
686
+ function spawn(entity, initialState) {
687
+ return initialState ? ["spawn", entity, initialState] : ["spawn", entity];
688
+ }
689
+ function despawn(entityId) {
690
+ return ["despawn", entityId];
691
+ }
692
+ function doEffects(...effects) {
693
+ return ["do", ...effects];
694
+ }
695
+ function notify(channel, message, recipient) {
696
+ return recipient ? ["notify", channel, message, recipient] : ["notify", channel, message];
697
+ }
698
+ function ref(binding, selector) {
699
+ return selector ? ["ref", binding, selector] : ["ref", binding];
700
+ }
701
+ function deref(binding, selector) {
702
+ return selector ? ["deref", binding, selector] : ["deref", binding];
703
+ }
704
+ function swap(binding, transform) {
705
+ return ["swap!", binding, transform];
706
+ }
707
+ function watch(binding, event, options) {
708
+ return options ? ["watch", binding, event, options] : ["watch", binding, event];
709
+ }
710
+ function atomic(...effects) {
711
+ return ["atomic", ...effects];
712
+ }
713
+
709
714
  // src/types/state-machine.ts
710
715
  var StateSchema = z.object({
711
716
  name: z.string().min(1, "State name is required"),
@@ -1011,12 +1016,9 @@ var TraitReferenceSchema = z.object({
1011
1016
  // through to the recursive TraitConfigValue union.
1012
1017
  config: z.record(z.union([ConfigFieldDeclarationSchema, TraitConfigValueSchema])).optional(),
1013
1018
  appliesTo: z.array(z.string()).optional(),
1014
- // Phase F.7: zod accepts an array (the inliner validates element
1015
- // shape). The full ListenDefinition shape isn't recursively encoded
1016
- // here because TraitReference is the call-site form — listen entries
1017
- // pasted in are already-resolved structured definitions, not nested
1018
- // overrides.
1019
- listens: z.array(z.unknown()).optional(),
1019
+ // Phase F.7: caller-supplied listen entries are already-resolved
1020
+ // structured definitions (see `TraitReference.listens`).
1021
+ listens: z.array(TraitEventListenerSchema).optional(),
1020
1022
  emitsScope: z.enum(["internal", "external"]).optional(),
1021
1023
  // Phase F.8: per-transition effects override. The keys are event
1022
1024
  // names (the transition triggers AFTER renames); values are SExpr
@@ -1038,6 +1040,22 @@ var TraitReferenceSchema = z.object({
1038
1040
  path: ["events"]
1039
1041
  }
1040
1042
  );
1043
+ var TraitUIBindingSchema = z.record(
1044
+ z.object({
1045
+ presentation: z.enum(["modal", "drawer", "popover", "inline", "confirm-dialog"]),
1046
+ content: z.union([z.record(JsonValueSchema), z.array(z.record(JsonValueSchema))]),
1047
+ props: z.object({
1048
+ size: z.enum(["sm", "md", "lg", "xl", "full"]).optional(),
1049
+ position: z.enum(["left", "right", "top", "bottom", "center"]).optional(),
1050
+ title: z.string().optional(),
1051
+ closable: z.boolean().optional(),
1052
+ width: z.string().optional(),
1053
+ showProgress: z.boolean().optional(),
1054
+ step: z.number().optional(),
1055
+ totalSteps: z.number().optional()
1056
+ }).optional()
1057
+ })
1058
+ );
1041
1059
  var TraitScopeSchema = z.enum(["instance", "collection"]);
1042
1060
  var EntityFieldContractSchema = z.object({
1043
1061
  requires: z.array(z.string()),
@@ -1071,26 +1089,14 @@ var TraitSchema = z.object({
1071
1089
  ticks: z.array(TraitTickSchema).optional(),
1072
1090
  emits: z.array(TraitEventContractSchema).optional(),
1073
1091
  listens: z.array(TraitEventListenerSchema).optional(),
1074
- ui: z.record(z.unknown()).optional(),
1092
+ ui: TraitUIBindingSchema.optional(),
1075
1093
  config: DeclaredTraitConfigSchema.optional(),
1076
1094
  sourceBehavior: SourceBehaviorMetadataSchema.optional(),
1077
1095
  sourceEntityDefinition: EntitySchema.optional()
1078
1096
  });
1079
1097
  var TraitRefSchema = z.union([
1080
1098
  z.string().min(1),
1081
- z.object({
1082
- ref: z.string().min(1),
1083
- config: TraitConfigSchema.optional(),
1084
- linkedEntity: z.string().optional(),
1085
- name: z.string().optional(),
1086
- // Phase F.4: same non-empty refine as TraitReferenceSchema.events.
1087
- // Both schemas accept the same call-site argument shape, so the
1088
- // validators should agree.
1089
- events: z.record(
1090
- z.string().min(1, "events key (atom event name) must be non-empty"),
1091
- z.string().min(1, "events value (caller event name) must be non-empty")
1092
- ).optional()
1093
- }),
1099
+ TraitReferenceSchema,
1094
1100
  TraitSchema
1095
1101
  // Allow inline trait definitions
1096
1102
  ]);
@@ -1937,6 +1943,29 @@ var BINDING_CONTEXT_RULES = {
1937
1943
  description: "Ticks can access entity fields, current state, time, trait config (@config.X) for parameterized atoms, and the authenticated user context (@user.id, @user.role). Same substitution semantics as guards/effects."
1938
1944
  }
1939
1945
  };
1946
+ var RENDER_BINDING_MARKER = "$renderBinding";
1947
+ function isRenderBindingMarker(value) {
1948
+ return typeof value === "object" && value !== null && !Array.isArray(value) && RENDER_BINDING_MARKER in value && value[RENDER_BINDING_MARKER] === true;
1949
+ }
1950
+ var ENTITY_BINDING_RE = /@entity(?=[.\[\]]|$)/;
1951
+ var PAYLOAD_BINDING_RE = /@(?:callsitePayload|payload)(?=[.\[\]]|$)/;
1952
+ function containsEntityBinding(value) {
1953
+ if (typeof value === "string") return ENTITY_BINDING_RE.test(value);
1954
+ if (Array.isArray(value)) return value.some(containsEntityBinding);
1955
+ if (value !== null && typeof value === "object") {
1956
+ if (isRenderBindingMarker(value)) return true;
1957
+ return Object.values(value).some(containsEntityBinding);
1958
+ }
1959
+ return false;
1960
+ }
1961
+ function containsPayloadBinding(value) {
1962
+ if (typeof value === "string") return PAYLOAD_BINDING_RE.test(value);
1963
+ if (Array.isArray(value)) return value.some(containsPayloadBinding);
1964
+ if (value !== null && typeof value === "object") {
1965
+ return Object.values(value).some(containsPayloadBinding);
1966
+ }
1967
+ return false;
1968
+ }
1940
1969
  function validateBindingInContext(binding, context) {
1941
1970
  const rules = BINDING_CONTEXT_RULES[context];
1942
1971
  if (binding.type === "core") {
@@ -2005,6 +2034,12 @@ var MOCK_PERSONAS = [
2005
2034
  { id: "member-1", name: "Maya Member", email: "maya@example.com", role: "member", permissions: ["read"] },
2006
2035
  { id: "customer-1", name: "Cai Customer", email: "cai@example.com", role: "customer", permissions: ["read"] }
2007
2036
  ];
2037
+ var DEFAULT_VIEWER = {
2038
+ id: "viewer-1",
2039
+ name: "Dev Viewer",
2040
+ email: "viewer@example.com",
2041
+ role: ""
2042
+ };
2008
2043
  function findMockPersona(idOrRole) {
2009
2044
  return MOCK_PERSONAS.find((p) => p.id === idOrRole) ?? MOCK_PERSONAS.find((p) => p.role === idOrRole);
2010
2045
  }
@@ -2112,7 +2147,7 @@ function getInteractionModelForDomain(domain) {
2112
2147
  // src/patterns/patterns-registry.json
2113
2148
  var patterns_registry_default = {
2114
2149
  version: "1.0.0",
2115
- exportedAt: "2026-07-28T14:48:23.507Z",
2150
+ exportedAt: "2026-07-29T19:32:01.461Z",
2116
2151
  patterns: {
2117
2152
  "entity-table": {
2118
2153
  type: "entity-table",
@@ -10607,6 +10642,25 @@ var patterns_registry_default = {
10607
10642
  description: "Show arrow",
10608
10643
  default: true
10609
10644
  },
10645
+ open: {
10646
+ types: [
10647
+ "boolean"
10648
+ ],
10649
+ description: "Controlled open state. When set, the host owns visibility and the popover reports intent through onOpenChange instead of toggling itself."
10650
+ },
10651
+ onOpenChange: {
10652
+ types: [
10653
+ "function"
10654
+ ],
10655
+ description: "Fired when the popover wants to change visibility (trigger click, outside click)",
10656
+ kind: "callback",
10657
+ callbackArgs: [
10658
+ {
10659
+ name: "open",
10660
+ type: "boolean"
10661
+ }
10662
+ ]
10663
+ },
10610
10664
  className: {
10611
10665
  types: [
10612
10666
  "string"
@@ -20269,6 +20323,22 @@ var patterns_registry_default = {
20269
20323
  description: 'Max items to show before "Show More" button. Defaults to 5. Set to 0 to disable.',
20270
20324
  default: 5
20271
20325
  },
20326
+ sortBy: {
20327
+ types: [
20328
+ "string"
20329
+ ],
20330
+ description: "Field name to order rows by. Values are compared by their own type \u2014 numbers numerically, date-like strings chronologically, everything else alphabetically \u2014 never by what the field is called. Empty cells sort last. Unset leaves the incoming order untouched. Orders only the rows already fetched: a collection larger than its `limit` still needs ordering at the data layer."
20331
+ },
20332
+ sortDirection: {
20333
+ types: [
20334
+ "string"
20335
+ ],
20336
+ description: "Direction for `sortBy`. Defaults to ascending.",
20337
+ enumValues: [
20338
+ "asc",
20339
+ "desc"
20340
+ ]
20341
+ },
20272
20342
  look: {
20273
20343
  types: [
20274
20344
  "string"
@@ -35643,6 +35713,13 @@ var patterns_registry_default = {
35643
35713
  ],
35644
35714
  description: 'Max inline action buttons before the rest collapse into a "\u22EF" overflow menu. Omit = all inline.'
35645
35715
  },
35716
+ itemClickEvent: {
35717
+ types: [
35718
+ "string"
35719
+ ],
35720
+ description: "When set, the whole row is clickable and emits UI:{itemClickEvent} with { id, row } (action-button clicks stopPropagation so they still win). Mirrors DataList's contract.",
35721
+ kind: "event"
35722
+ },
35646
35723
  selectable: {
35647
35724
  types: [
35648
35725
  "boolean"
@@ -37161,9 +37238,22 @@ var patterns_registry_default = {
37161
37238
  types: [
37162
37239
  "number"
37163
37240
  ],
37164
- description: "Render scale (0.4 = 40% zoom). Ignored by `free`/`side` (world-pixel-direct).",
37241
+ description: "Render scale, legacy-squared semantics: on-screen cell \u2248 `256 \xD7 scale\xB2` px (the authored contract every board tuned its value for). Converted internally to the single camera zoom against the board's native tile width, so the cell pitch follows the asset while the on-screen size stays as authored. Ignored when `fit` is on; passed through raw for `free`/`side` (world-pixel-direct).",
37165
37242
  default: 0.4
37166
37243
  },
37244
+ tileWidth: {
37245
+ types: [
37246
+ "number"
37247
+ ],
37248
+ description: "Native tile/cell width in source px for this board's asset (e.g. 16 for Kenney tiny-dungeon, ~128 for iso blocks). The grid cell pitch follows the asset, so tile textures map 1:1 (crisp, no stretch). Defaults to the detected atlas tile width, else 256."
37249
+ },
37250
+ fit: {
37251
+ types: [
37252
+ "boolean"
37253
+ ],
37254
+ description: "Auto-fit the board's grid extent to the viewport (default false \u2014 boards render at their authored `scale` and overflow \u2192 pan). Opt in for whole-board-overview boards. User wheel/pinch zoom always wins after the initial fit.",
37255
+ default: false
37256
+ },
37167
37257
  showMinimap: {
37168
37258
  types: [
37169
37259
  "boolean"
@@ -41319,7 +41409,8 @@ var patterns_registry_default = {
41319
41409
  "cell",
41320
41410
  "rect",
41321
41411
  "ellipse",
41322
- "poly"
41412
+ "poly",
41413
+ "path"
41323
41414
  ]
41324
41415
  },
41325
41416
  position: {
@@ -41404,6 +41495,12 @@ var patterns_registry_default = {
41404
41495
  ]
41405
41496
  }
41406
41497
  },
41498
+ d: {
41499
+ types: [
41500
+ "string"
41501
+ ],
41502
+ description: "SVG path data in world units relative to the cell's projected top-left \u2014 same coordinate convention as `points`."
41503
+ },
41407
41504
  fill: {
41408
41505
  types: [
41409
41506
  "string"
@@ -41592,13 +41689,13 @@ var patterns_registry_default = {
41592
41689
  types: [
41593
41690
  "number"
41594
41691
  ],
41595
- description: "Draw width in world units (fractions of `projector.tileWidth`); omitted \u2192 resolved source width in px."
41692
+ description: "Draw width in world units (fractions of `projector.tileWidth`). Omitted \u2192 one cell on tile grids (`flat`/`iso`/`hex`); native source px on `free`/`side`."
41596
41693
  },
41597
41694
  height: {
41598
41695
  types: [
41599
41696
  "number"
41600
41697
  ],
41601
- description: "Draw height in world units (fractions of `projector.tileWidth`); omitted \u2192 resolved source height in px."
41698
+ description: "Draw height in world units (fractions of `projector.tileWidth`). Omitted \u2192 one cell on tile grids (`flat`/`iso`/`hex`); native source px on `free`/`side`."
41602
41699
  },
41603
41700
  frame: {
41604
41701
  types: [
@@ -41804,7 +41901,8 @@ var patterns_registry_default = {
41804
41901
  "cell",
41805
41902
  "rect",
41806
41903
  "ellipse",
41807
- "poly"
41904
+ "poly",
41905
+ "path"
41808
41906
  ]
41809
41907
  },
41810
41908
  position: {
@@ -41879,6 +41977,11 @@ var patterns_registry_default = {
41879
41977
  ]
41880
41978
  }
41881
41979
  },
41980
+ d: {
41981
+ types: [
41982
+ "string"
41983
+ ]
41984
+ },
41882
41985
  fill: {
41883
41986
  types: [
41884
41987
  "string"
@@ -42335,6 +42438,18 @@ var patterns_registry_default = {
42335
42438
  ],
42336
42439
  description: "Minimap overlay (2D)."
42337
42440
  },
42441
+ fit: {
42442
+ types: [
42443
+ "boolean"
42444
+ ],
42445
+ description: "Auto-fit the board's grid extent to the viewport (2D grid layouts; default false \u2014 boards render at their authored `camera.zoom` scale)."
42446
+ },
42447
+ tileWidth: {
42448
+ types: [
42449
+ "number"
42450
+ ],
42451
+ description: "Native tile/cell width in source px of the board's asset (2D grid layouts; defaults to the detected atlas tile width, else 256)."
42452
+ },
42338
42453
  backgroundImage: {
42339
42454
  types: [
42340
42455
  "asset",
@@ -43026,175 +43141,72 @@ var patterns_registry_default = {
43026
43141
  }
43027
43142
  }
43028
43143
  },
43029
- "svg-draw-group": {
43030
- type: "svg-draw-group",
43144
+ "draw-group": {
43145
+ type: "draw-group",
43031
43146
  category: "game",
43032
43147
  tier: "atoms",
43033
43148
  family: "game",
43034
- description: "SvgDrawGroup component",
43149
+ description: "DrawGroup component",
43035
43150
  suggestedFor: [
43036
- "svg",
43037
43151
  "draw",
43038
43152
  "group",
43039
- "svg draw group"
43040
- ],
43041
- typicalSize: "small",
43042
- propsSchema: {
43043
- x: {
43044
- types: [
43045
- "number"
43046
- ],
43047
- description: "Grid-cell x of the group's origin.",
43048
- default: 0
43049
- },
43050
- y: {
43051
- types: [
43052
- "number"
43053
- ],
43054
- description: "Grid-cell y of the group's origin.",
43055
- default: 0
43056
- },
43057
- scale: {
43058
- types: [
43059
- "number"
43060
- ],
43061
- description: "Uniform scale applied after the translate."
43062
- },
43063
- rotate: {
43064
- types: [
43065
- "number"
43066
- ],
43067
- description: "Rotation in degrees applied after the translate."
43068
- },
43069
- opacity: {
43070
- types: [
43071
- "number"
43072
- ],
43073
- description: "0..1 opacity."
43074
- },
43075
- className: {
43076
- types: [
43077
- "string"
43078
- ],
43079
- description: "Additional CSS classes"
43080
- },
43081
- children: {
43082
- types: [
43083
- "node"
43084
- ],
43085
- description: "children prop"
43086
- }
43087
- }
43088
- },
43089
- "svg-draw-shape": {
43090
- type: "svg-draw-shape",
43091
- category: "game",
43092
- tier: "atoms",
43093
- family: "game",
43094
- description: "SvgDrawShape component",
43095
- suggestedFor: [
43096
- "svg",
43097
- "draw",
43098
- "shape",
43099
- "svg draw shape"
43153
+ "draw group"
43100
43154
  ],
43101
43155
  typicalSize: "small",
43102
43156
  propsSchema: {
43103
- shape: {
43157
+ id: {
43104
43158
  types: [
43105
43159
  "string"
43106
43160
  ],
43107
- description: "shape prop",
43108
- required: true,
43109
- enumValues: [
43110
- "rect",
43111
- "circle",
43112
- "ellipse",
43113
- "polygon",
43114
- "polyline",
43115
- "path",
43116
- "line"
43117
- ]
43118
- },
43119
- x: {
43120
- types: [
43121
- "number"
43122
- ],
43123
- description: "Grid-cell x of the element's translated origin.",
43124
- required: true
43161
+ description: "Optional source-tagged hit-test handle \u2014 the host indexes the drawable's ScenePos\u2192id so a pointer/raycast at that cell resolves to this id (unit/entity click). No id \u2192 the host emits only the coordinate (tile click)."
43125
43162
  },
43126
- y: {
43163
+ type: {
43127
43164
  types: [
43128
- "number"
43165
+ "unknown"
43129
43166
  ],
43130
- description: "Grid-cell y of the element's translated origin.",
43167
+ description: "type prop",
43131
43168
  required: true
43132
43169
  },
43133
- width: {
43134
- types: [
43135
- "number"
43136
- ],
43137
- description: "Rect width in cell units."
43138
- },
43139
- height: {
43140
- types: [
43141
- "number"
43142
- ],
43143
- description: "Rect height in cell units."
43144
- },
43145
- radius: {
43146
- types: [
43147
- "number"
43148
- ],
43149
- description: "Circle radius / ellipse horizontal radius in cell units."
43150
- },
43151
- radiusY: {
43152
- types: [
43153
- "number"
43154
- ],
43155
- description: "Ellipse vertical radius in cell units; omitted \u2192 `radius` (a circle)."
43156
- },
43157
- points: {
43158
- types: [
43159
- "string"
43160
- ],
43161
- description: "Polygon/polyline points, viewBox units relative to the translated origin."
43162
- },
43163
- d: {
43170
+ position: {
43164
43171
  types: [
43165
- "string"
43172
+ "object"
43166
43173
  ],
43167
- description: "Path data, viewBox units relative to the translated origin."
43168
- },
43169
- x2: {
43170
- types: [
43171
- "number"
43174
+ description: "Logical scene position; the projector maps it to pixels / world.",
43175
+ required: true,
43176
+ properties: {
43177
+ x: {
43178
+ types: [
43179
+ "number"
43180
+ ]
43181
+ },
43182
+ y: {
43183
+ types: [
43184
+ "number"
43185
+ ]
43186
+ },
43187
+ z: {
43188
+ types: [
43189
+ "number"
43190
+ ]
43191
+ }
43192
+ },
43193
+ propertyRequired: [
43194
+ "x",
43195
+ "y"
43172
43196
  ],
43173
- description: "Line end x in cell units."
43197
+ scenePos: true
43174
43198
  },
43175
- y2: {
43199
+ scale: {
43176
43200
  types: [
43177
43201
  "number"
43178
43202
  ],
43179
- description: "Line end y in cell units."
43180
- },
43181
- fill: {
43182
- types: [
43183
- "string"
43184
- ],
43185
- description: "fill prop"
43186
- },
43187
- stroke: {
43188
- types: [
43189
- "string"
43190
- ],
43191
- description: "stroke prop"
43203
+ description: "Uniform scale applied to the whole group."
43192
43204
  },
43193
- strokeWidth: {
43205
+ rotate: {
43194
43206
  types: [
43195
43207
  "number"
43196
43208
  ],
43197
- description: "strokeWidth prop"
43209
+ description: "Rotation in radians (painter units)."
43198
43210
  },
43199
43211
  opacity: {
43200
43212
  types: [
@@ -43202,266 +43214,74 @@ var patterns_registry_default = {
43202
43214
  ],
43203
43215
  description: "0..1 opacity."
43204
43216
  },
43205
- className: {
43206
- types: [
43207
- "string"
43208
- ],
43209
- description: "Additional CSS classes"
43210
- }
43211
- }
43212
- },
43213
- "svg-draw-text": {
43214
- type: "svg-draw-text",
43215
- category: "game",
43216
- tier: "atoms",
43217
- family: "game",
43218
- description: "SvgDrawText component",
43219
- suggestedFor: [
43220
- "svg",
43221
- "draw",
43222
- "text",
43223
- "svg draw text"
43224
- ],
43225
- typicalSize: "small",
43226
- propsSchema: {
43227
- x: {
43228
- types: [
43229
- "number"
43230
- ],
43231
- description: "Grid-cell x of the text anchor.",
43232
- required: true
43233
- },
43234
- y: {
43235
- types: [
43236
- "number"
43237
- ],
43238
- description: "Grid-cell y of the text anchor.",
43239
- required: true
43240
- },
43241
- text: {
43242
- types: [
43243
- "string"
43244
- ],
43245
- description: "The text content.",
43246
- required: true
43247
- },
43248
- size: {
43249
- types: [
43250
- "number"
43251
- ],
43252
- description: "Font size in viewBox units (default 12).",
43253
- default: 12
43254
- },
43255
- fill: {
43256
- types: [
43257
- "string"
43258
- ],
43259
- description: "fill prop",
43260
- default: "var(--color-foreground)"
43261
- },
43262
- anchor: {
43263
- types: [
43264
- "string"
43265
- ],
43266
- description: "Text anchor (default 'middle').",
43267
- enumValues: [
43268
- "start",
43269
- "middle",
43270
- "end"
43271
- ],
43272
- default: "middle"
43273
- },
43274
- className: {
43275
- types: [
43276
- "string"
43277
- ],
43278
- description: "Additional CSS classes"
43279
- }
43280
- }
43281
- },
43282
- "svg-draw-shape-layer": {
43283
- type: "svg-draw-shape-layer",
43284
- category: "game",
43285
- tier: "molecules",
43286
- family: "game",
43287
- description: "SvgDrawShapeLayer component",
43288
- suggestedFor: [
43289
- "svg",
43290
- "draw",
43291
- "shape",
43292
- "layer",
43293
- "svg draw shape layer"
43294
- ],
43295
- typicalSize: "medium",
43296
- propsSchema: {
43297
43217
  items: {
43298
43218
  types: [
43299
43219
  "array"
43300
43220
  ],
43301
- description: "items prop",
43221
+ description: "The grouped drawables, painted through the normal dispatch.",
43302
43222
  required: true,
43303
43223
  items: {
43304
43224
  types: [
43305
43225
  "object"
43306
43226
  ],
43307
- properties: {
43308
- id: {
43309
- types: [
43310
- "string"
43311
- ]
43312
- }
43313
- },
43314
- required: [
43315
- "id"
43316
- ]
43227
+ drawableSlot: true
43317
43228
  }
43318
- },
43319
- fill: {
43320
- types: [
43321
- "string"
43322
- ],
43323
- description: "Default fill for items that don't set one."
43324
- },
43325
- stroke: {
43326
- types: [
43327
- "string"
43328
- ],
43329
- description: "Default stroke for items that don't set one."
43330
- },
43331
- strokeWidth: {
43332
- types: [
43333
- "number"
43334
- ],
43335
- description: "Default strokeWidth for items that don't set one."
43336
- },
43337
- opacity: {
43338
- types: [
43339
- "number"
43340
- ],
43341
- description: "Default 0..1 opacity for items that don't set one."
43342
43229
  }
43343
- }
43230
+ },
43231
+ drawable: true,
43232
+ drawHost: true
43344
43233
  },
43345
- "svg-stage": {
43346
- type: "svg-stage",
43347
- category: "game",
43234
+ "emoji-picker": {
43235
+ type: "emoji-picker",
43236
+ category: "component",
43348
43237
  tier: "molecules",
43349
- family: "game",
43350
- description: "SvgStage component",
43238
+ family: "core",
43239
+ description: "EmojiPicker component",
43351
43240
  suggestedFor: [
43352
- "svg",
43353
- "stage",
43354
- "svg stage"
43241
+ "emoji",
43242
+ "picker",
43243
+ "emoji picker"
43355
43244
  ],
43356
43245
  typicalSize: "medium",
43357
43246
  propsSchema: {
43358
- cols: {
43359
- types: [
43360
- "number"
43361
- ],
43362
- description: "Grid width in cells.",
43363
- required: true
43364
- },
43365
- rows: {
43366
- types: [
43367
- "number"
43368
- ],
43369
- description: "Grid height in cells.",
43370
- required: true
43371
- },
43372
- tileSize: {
43373
- types: [
43374
- "number"
43375
- ],
43376
- description: "ViewBox units per cell (default 32); viewBox is `0 0 cols*tileSize rows*tileSize`.",
43377
- default: 32
43378
- },
43379
- background: {
43247
+ pickEvent: {
43380
43248
  types: [
43381
43249
  "string"
43382
43250
  ],
43383
- description: "Background rect fill (default `var(--color-background)`).",
43384
- default: "var(--color-background)"
43251
+ description: "Declarative event name \u2014 picking an emoji emits UI:{pickEvent} with { emoji } via eventBus",
43252
+ kind: "event"
43385
43253
  },
43386
- tileClickEvent: {
43254
+ position: {
43387
43255
  types: [
43388
43256
  "string"
43389
43257
  ],
43390
- description: "Emitted as `UI:<event>` with `{ x, y }` cell coords on pointer up (<5px drag).",
43391
- kind: "event-ref",
43392
- emitPayloadSchema: [
43393
- {
43394
- name: "x",
43395
- type: "number",
43396
- required: true
43397
- },
43398
- {
43399
- name: "y",
43400
- type: "number",
43401
- required: true
43402
- }
43403
- ]
43404
- },
43405
- tileHoverEvent: {
43406
- types: [
43407
- "string"
43258
+ description: "Which side of the trigger the panel opens on",
43259
+ enumValues: [
43260
+ "top",
43261
+ "bottom"
43408
43262
  ],
43409
- description: "Emitted as `UI:<event>` with `{ x, y }` cell coords on pointer move.",
43410
- kind: "event-ref",
43411
- emitPayloadSchema: [
43412
- {
43413
- name: "x",
43414
- type: "number",
43415
- required: true
43416
- },
43417
- {
43418
- name: "y",
43419
- type: "number",
43420
- required: true
43421
- }
43422
- ]
43263
+ default: "top"
43423
43264
  },
43424
- tileLeaveEvent: {
43265
+ triggerIcon: {
43425
43266
  types: [
43267
+ "icon",
43426
43268
  "string"
43427
43269
  ],
43428
- description: "Emitted as `UI:<event>` with `{}` when the pointer leaves the stage.",
43429
- kind: "event-ref",
43430
- emitPayloadSchema: []
43270
+ description: "Icon shown on the trigger button",
43271
+ default: "smile"
43431
43272
  },
43432
- keyMap: {
43273
+ triggerLabel: {
43433
43274
  types: [
43434
- "object"
43435
- ],
43436
- description: "Keyboard \u2192 semantic events: `e.code` \u2192 event name, emitted as `UI:<event>` with `{}`.",
43437
- mapValue: {
43438
- types: [
43439
- "string"
43440
- ]
43441
- }
43442
- },
43443
- keyUpMap: {
43444
- types: [
43445
- "object"
43275
+ "string"
43446
43276
  ],
43447
- description: "Keyup counterpart of `keyMap`.",
43448
- mapValue: {
43449
- types: [
43450
- "string"
43451
- ]
43452
- }
43277
+ description: "Accessible label for the trigger button",
43278
+ default: "Add emoji"
43453
43279
  },
43454
43280
  className: {
43455
43281
  types: [
43456
43282
  "string"
43457
43283
  ],
43458
- description: "Additional CSS classes"
43459
- },
43460
- children: {
43461
- types: [
43462
- "node"
43463
- ],
43464
- description: "children prop"
43284
+ description: "Additional CSS classes applied to the trigger button"
43465
43285
  }
43466
43286
  }
43467
43287
  }
@@ -44385,7 +44205,7 @@ var integrators_registry_default = {
44385
44205
  // src/patterns/component-mapping.json
44386
44206
  var component_mapping_default = {
44387
44207
  version: "1.0.0",
44388
- exportedAt: "2026-07-28T14:48:23.507Z",
44208
+ exportedAt: "2026-07-29T19:32:01.461Z",
44389
44209
  mappings: {
44390
44210
  "page-header": {
44391
44211
  component: "PageHeader",
@@ -45759,30 +45579,15 @@ var component_mapping_default = {
45759
45579
  importPath: "@/components/core/molecules/ImportSourcePicker",
45760
45580
  category: "component"
45761
45581
  },
45762
- "svg-draw-group": {
45763
- component: "SvgDrawGroup",
45764
- importPath: "@/components/game/atoms/SvgDrawGroup",
45765
- category: "game"
45766
- },
45767
- "svg-draw-shape": {
45768
- component: "SvgDrawShape",
45769
- importPath: "@/components/game/atoms/SvgDrawShape",
45770
- category: "game"
45771
- },
45772
- "svg-draw-text": {
45773
- component: "SvgDrawText",
45774
- importPath: "@/components/game/atoms/SvgDrawText",
45775
- category: "game"
45776
- },
45777
- "svg-draw-shape-layer": {
45778
- component: "SvgDrawShapeLayer",
45779
- importPath: "@/components/game/molecules/SvgDrawShapeLayer",
45582
+ "draw-group": {
45583
+ component: "DrawGroup",
45584
+ importPath: "@/components/game/atoms/DrawGroup",
45780
45585
  category: "game"
45781
45586
  },
45782
- "svg-stage": {
45783
- component: "SvgStage",
45784
- importPath: "@/components/game/molecules/SvgStage",
45785
- category: "game"
45587
+ "emoji-picker": {
45588
+ component: "EmojiPicker",
45589
+ importPath: "@/components/core/molecules/EmojiPicker",
45590
+ category: "component"
45786
45591
  }
45787
45592
  }
45788
45593
  };
@@ -45790,7 +45595,7 @@ var component_mapping_default = {
45790
45595
  // src/patterns/event-contracts.json
45791
45596
  var event_contracts_default = {
45792
45597
  version: "1.0.0",
45793
- exportedAt: "2026-07-28T14:48:23.507Z",
45598
+ exportedAt: "2026-07-29T19:32:01.461Z",
45794
45599
  contracts: {
45795
45600
  form: {
45796
45601
  emits: [
@@ -47020,6 +46825,7 @@ var PATTERN_TYPES = [
47020
46825
  "doc-sidebar",
47021
46826
  "doc-toc",
47022
46827
  "document-viewer",
46828
+ "draw-group",
47023
46829
  "draw-shape",
47024
46830
  "draw-shape-layer",
47025
46831
  "draw-sprite",
@@ -47029,6 +46835,7 @@ var PATTERN_TYPES = [
47029
46835
  "drawer",
47030
46836
  "drawer-slot",
47031
46837
  "edge-decoration",
46838
+ "emoji-picker",
47032
46839
  "empty-state",
47033
46840
  "entity-cards",
47034
46841
  "entity-list",
@@ -47171,10 +46978,6 @@ var PATTERN_TYPES = [
47171
46978
  "subagent-trace-panel",
47172
46979
  "svg-branch",
47173
46980
  "svg-connection",
47174
- "svg-draw-group",
47175
- "svg-draw-shape",
47176
- "svg-draw-shape-layer",
47177
- "svg-draw-text",
47178
46981
  "svg-flow",
47179
46982
  "svg-grid",
47180
46983
  "svg-lobe",
@@ -47185,7 +46988,6 @@ var PATTERN_TYPES = [
47185
46988
  "svg-ring",
47186
46989
  "svg-shield",
47187
46990
  "svg-stack",
47188
- "svg-stage",
47189
46991
  "swipeable-row",
47190
46992
  "switch",
47191
46993
  "tabbed-container",
@@ -48451,6 +48253,30 @@ function collectTraitConfigRefAdjacency(orbital) {
48451
48253
  }
48452
48254
  return out;
48453
48255
  }
48256
+ function traitDeclaresConfigForward(trait) {
48257
+ const config = trait?.config;
48258
+ if (!config) return false;
48259
+ let found = false;
48260
+ const walk = (value) => {
48261
+ if (found || value === null || value === void 0) return;
48262
+ if (typeof value === "string") {
48263
+ if (CONFIG_FORWARD_RE.test(value)) found = true;
48264
+ return;
48265
+ }
48266
+ if (Array.isArray(value)) {
48267
+ for (const item of value) walk(item);
48268
+ return;
48269
+ }
48270
+ if (typeof value === "object") {
48271
+ for (const v of Object.values(value)) walk(v);
48272
+ }
48273
+ };
48274
+ for (const field of Object.values(config)) {
48275
+ walk(field?.default);
48276
+ if (found) return true;
48277
+ }
48278
+ return false;
48279
+ }
48454
48280
  function resolveForwardsDeep(value, referrerConfig, consumed) {
48455
48281
  if (typeof value === "string") {
48456
48282
  const match = CONFIG_FORWARD_RE.exec(value);
@@ -50790,6 +50616,6 @@ function mergeEntityFrame(current, orderedWrites) {
50790
50616
  return next;
50791
50617
  }
50792
50618
 
50793
- export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ANONYMOUS_USER, 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, DEV_TOKEN_PREFIX, DeclaredTraitConfigSchema, DensitySliceSchema, DensityTokensSchema, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EVENT_CONTRACTS, EffectSchema, ElevationSliceSchema, ElevationTokensSchema, EntityCallSchema, EntityFieldContractSchema, EntityFieldSchema, EntityIdSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntitySchema, EntitySemanticRoleSchema, EventIdSchema, EventListenerSchema, EventPayloadFieldSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpressionSchema, FIELD_TYPES, FieldSchema, FieldTypeSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, INTEGRATORS_REGISTRY, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IdentityLedgerSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, LedgerEntrySchema, LedgerKindSchema, ListenSourceSchema, MOCK_PERSONAS, 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, SECRET_CONFIG_TYPES, SEMANTIC_STRING_TYPES, 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, TickIntervalSchema, 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, applyListenPayloadMapping, applyRenderOverlay, asEntityId, asEventId, asOrbitalId, asPageId, asPaletteEntryId, asServiceId, asThemeId, asTraitId, atomic, buildEdgeCoveringWalk, buildGuardPayloads, buildRecommendationContext, buildReplayPaths, buildResolvedTraitConfigs, buildStateGraph, callService, categorizeRemovals, classifyWorkflow, clearSchemaCache, collectBindings, collectEmbeddedTraitReferrers, collectReachableStates, collectRenderUiPatternTypes, collectTraitConfigRefAdjacency, collectTraitEmbedAdjacency, component_mapping_default as componentMapping, composeBehaviors, configRefEventKnob, constTruth, contractFieldName, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, decodeDevIdentityToken, deref, deriveCollection, deriveInputType, describeTensorMismatch, despawn, detectLayoutStrategy, detectPageContentReduction, diffFactoryCalls, diffOrbitalSchemas, diffSchemaSemantics, diffSchemas, doEffects, emit, encodeDevIdentityToken, event_contracts_default as eventContracts, extractPayloadFieldRef, findCompatiblePatterns, findMockPersona, findService, fingerprintNode, formatRecommendationsForPrompt, gatherTensorLastDim, 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, isContentBodyPattern, isContentBodyPatternType, isDestructiveChange, isDrawHostPattern, isDrawablePattern, isEffect, isEmailValue, isEntityAwarePattern, isEntityCall, isEntityId, isEntityReference, isEntityReferenceAny, isEventId, isEventPayloadValue, isFieldValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMainSlotRenderUi, isMcpService, isOrbitalDefinition, isOrbitalId, isPageId, isPageReference, isPageReferenceObject, isPageReferenceString, isPaletteEntryId, isPhoneValue, isPlanSnapshot, isReferenceConfigType, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isSecretConfigType, isSemanticStringType, isSemanticStringValue, isServiceId, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isTensorValue, isThemeId, isThemeReference, isTraitFieldRef, isTraitId, isUrlValue, isUuidValue, isValidBinding, isValidPatternType, ledgerCurName, ledgerRename, ledgerResolveName, mapTensorLastDim, mergeEntityFrame, mintId, navigate, navigatePatternPath, normalizeCallSiteConfigToValues, normalizeTraitRef, normalizeUserContext, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, patterns_registry_default as patternsRegistry, persist, persistenceModeAllowsOverrides, recommendPatterns, ref, registry, removeChildAtPath, renderUI, renderUiPatternTypesOf, replaceChildAtPath, requiresConfirmation, resolveConfigRefEventName, resolvePersonaSpec, safeParseOrbitalSchema, schemaToIR, set, setPropAtPath, sexpr, spawn, summarizeOrbital, summarizeSchema, swap, tensorLastDimSize, tensorShape, toBindingRoot, translateOverlaysToParams, validateAssetAnimations, validateBindingInContext, validateContract, walkSExpr, walkStatePairs, watch, widenTier };
50619
+ export { AGENT_DOMAIN_CATEGORIES, ALLOWED_CUSTOM_COMPONENTS, ANIMATION_NAMES, ANONYMOUS_USER, 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, DEFAULT_VIEWER, DEV_TOKEN_PREFIX, DeclaredTraitConfigSchema, DensitySliceSchema, DensityTokensSchema, DesignPreferencesSchema, DesignTokensSchema, DomainCategorySchema, DomainContextSchema, DomainVocabularySchema, ENTITY_ROLES, EVENT_CONTRACTS, EffectSchema, ElevationSliceSchema, ElevationTokensSchema, EntityCallSchema, EntityFieldContractSchema, EntityFieldSchema, EntityIdSchema, EntityPersistenceSchema, EntityRefSchema, EntityRefStringSchema, EntityRoleSchema, EntitySchema, EntitySemanticRoleSchema, EventIdSchema, EventListenerSchema, EventPayloadFieldSchema, EventSchema, EventScopeSchema, EventSemanticRoleSchema, EventSourceSchema, ExpressionSchema, FIELD_TYPES, FieldSchema, FieldTypeSchema, GameSubCategorySchema, GeometrySliceSchema, GeometryTokensSchema, GuardSchema, INTEGRATORS_REGISTRY, IconFamilySchema, IconographySliceSchema, IconographyTokensSchema, IdentityLedgerSchema, IllustrationSliceSchema, IllustrationStyleSchema, IllustrationTokensSchema, InteractionModelSchema, KNOWN_VALIDATION_ERROR_CODES, LedgerEntrySchema, LedgerKindSchema, ListenSourceSchema, MOCK_PERSONAS, 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, RENDER_BINDING_MARKER, RelatedLinkSchema, RelationConfigSchema, RequiredFieldSchema, RestAuthConfigSchema, RestServiceDefSchema, SECRET_CONFIG_TYPES, SEMANTIC_STRING_TYPES, SERVICE_TYPES, SExprAtomSchema, SExprDataSchema, 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, TickIntervalSchema, TilesheetSchema, TraitCategorySchema, TraitConfigSchema, TraitConfigValueSchema, TraitDataEntitySchema, TraitEntityFieldSchema, TraitEventContractSchema, TraitEventListenerSchema, TraitFieldRefSchema, TraitIdSchema, TraitRefSchema, TraitReferenceSchema, TraitSchema, TraitTickSchema, TraitUIBindingSchema, TransitionSchema, TypeIntentMapSchema, TypeIntentSchema, TypeScaleEntrySchema, TypeScaleSchema, TypeScaleTokensSchema, TypeSizeKeySchema, TypeSliceSchema, TypeSlotSchema, TypeWeightSchema, UISlotSchema, UI_SLOTS, UXHintsSchema, UseDeclarationSchema, UserPersonaSchema, VISUAL_STYLES, ViewTypeSchema, VisualStyleSchema, answerToMutations, answersToMutations, applyEventWiring, applyFactoryCallPlanMutation, applyListenPayloadMapping, applyRenderOverlay, asEntityId, asEventId, asOrbitalId, asPageId, asPaletteEntryId, asServiceId, asThemeId, asTraitId, atomic, buildEdgeCoveringWalk, buildGuardPayloads, buildRecommendationContext, buildReplayPaths, buildResolvedTraitConfigs, buildStateGraph, callService, categorizeRemovals, classifyWorkflow, clearSchemaCache, collectBindings, collectEmbeddedTraitReferrers, collectReachableStates, collectRenderUiPatternTypes, collectTraitConfigRefAdjacency, collectTraitEmbedAdjacency, component_mapping_default as componentMapping, composeBehaviors, configRefEventKnob, constTruth, containsEntityBinding, containsPayloadBinding, contractFieldName, createAssetKey, createEmptyResolvedPage, createEmptyResolvedTrait, createLazyService, createResolvedField, createTypedEventBus, decodeDevIdentityToken, deref, deriveCollection, deriveInputType, describeTensorMismatch, despawn, detectLayoutStrategy, detectPageContentReduction, diffFactoryCalls, diffOrbitalSchemas, diffSchemaSemantics, diffSchemas, doEffects, emit, encodeDevIdentityToken, event_contracts_default as eventContracts, extractPayloadFieldRef, findCompatiblePatterns, findMockPersona, findService, fingerprintNode, formatRecommendationsForPrompt, gatherTensorLastDim, 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, isContentBodyPattern, isContentBodyPatternType, isDestructiveChange, isDrawHostPattern, isDrawablePattern, isEffect, isEmailValue, isEntityAwarePattern, isEntityCall, isEntityId, isEntityReference, isEntityReferenceAny, isEventId, isEventPayloadValue, isFieldValue, isImportedTraitRef, isInlineTrait, isJsonArray, isJsonObject, isJsonPrimitive, isKnownValidationErrorCode, isMainSlotRenderUi, isMcpService, isOrbitalDefinition, isOrbitalId, isPageId, isPageReference, isPageReferenceObject, isPageReferenceString, isPaletteEntryId, isPhoneValue, isPlanSnapshot, isReferenceConfigType, isRenderBindingMarker, isResolvedIR, isRestService, isRuntimeEntity, isSExpr, isSExprAtom, isSExprCall, isSExprEffect, isSecretConfigType, isSemanticStringType, isSemanticStringValue, isServiceId, isServiceReference, isServiceReferenceObject, isSessionHistoryEntry, isSocketService, isTensorValue, isThemeId, isThemeReference, isTraitFieldRef, isTraitId, isUrlValue, isUuidValue, isValidBinding, isValidPatternType, ledgerCurName, ledgerRename, ledgerResolveName, mapTensorLastDim, mergeEntityFrame, mintId, navigate, navigatePatternPath, normalizeCallSiteConfigToValues, normalizeTraitRef, normalizeUserContext, notify, parseAssetKey, parseBinding, parseEntityRef, parseImportedTraitRef, parseOrbitalSchema, parsePageRef, parseServiceRef, patterns_registry_default as patternsRegistry, persist, persistenceModeAllowsOverrides, recommendPatterns, ref, registry, removeChildAtPath, renderUI, renderUiPatternTypesOf, replaceChildAtPath, requiresConfirmation, resolveConfigRefEventName, resolvePersonaSpec, safeParseOrbitalSchema, schemaToIR, set, setPropAtPath, sexpr, spawn, summarizeOrbital, summarizeSchema, swap, tensorLastDimSize, tensorShape, toBindingRoot, traitDeclaresConfigForward, translateOverlaysToParams, validateAssetAnimations, validateBindingInContext, validateContract, walkSExpr, walkStatePairs, watch, widenTier };
50794
50620
  //# sourceMappingURL=index.js.map
50795
50621
  //# sourceMappingURL=index.js.map