@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.
@@ -1,7 +1,9 @@
1
+ import { z } from 'zod';
2
+
1
3
  // src/patterns/patterns-registry.json
2
4
  var patterns_registry_default = {
3
5
  version: "1.0.0",
4
- exportedAt: "2026-07-13T15:27:57.365Z",
6
+ exportedAt: "2026-07-21T09:54:57.379Z",
5
7
  patterns: {
6
8
  "entity-table": {
7
9
  type: "entity-table",
@@ -706,7 +708,7 @@ var patterns_registry_default = {
706
708
  types: [
707
709
  "function"
708
710
  ],
709
- description: "renderItem prop",
711
+ description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
710
712
  kind: "callback",
711
713
  callbackArgs: [
712
714
  {
@@ -876,15 +878,6 @@ var patterns_registry_default = {
876
878
  ],
877
879
  typicalSize: "medium",
878
880
  propsSchema: {
879
- entity: {
880
- types: [
881
- "object",
882
- "array"
883
- ],
884
- description: "Entity record or array of records \u2014 pre-resolved by the trait via render-ui after a fetch emit",
885
- kind: "entity",
886
- cardinality: "collection"
887
- },
888
881
  className: {
889
882
  types: [
890
883
  "string"
@@ -988,6 +981,15 @@ var patterns_registry_default = {
988
981
  ]
989
982
  }
990
983
  },
984
+ entity: {
985
+ types: [
986
+ "object",
987
+ "array"
988
+ ],
989
+ description: "Entity data (single record or collection).",
990
+ kind: "entity",
991
+ cardinality: "collection"
992
+ },
991
993
  minCardWidth: {
992
994
  types: [
993
995
  "number"
@@ -3521,7 +3523,8 @@ var patterns_registry_default = {
3521
3523
  category: "filter",
3522
3524
  tier: "molecules",
3523
3525
  family: "core",
3524
- description: "Multiple filter controls",
3526
+ description: "FilterGroup \u2014 a panel of filter controls that narrows a collection by field values.",
3527
+ capabilities: "search refinement panel, facet filters, admin list filters, records filter sidebar, filter chips panel",
3525
3528
  suggestedFor: [
3526
3529
  "list pages with filterable data"
3527
3530
  ],
@@ -3722,18 +3725,6 @@ var patterns_registry_default = {
3722
3725
  role: {
3723
3726
  types: [
3724
3727
  "string"
3725
- ],
3726
- enumValues: [
3727
- "player",
3728
- "enemy",
3729
- "npc",
3730
- "item",
3731
- "tile",
3732
- "projectile",
3733
- "effect",
3734
- "ui",
3735
- "decoration",
3736
- "vehicle"
3737
3728
  ]
3738
3729
  },
3739
3730
  category: {
@@ -3763,6 +3754,11 @@ var patterns_registry_default = {
3763
3754
  "isometric"
3764
3755
  ]
3765
3756
  },
3757
+ variant: {
3758
+ types: [
3759
+ "string"
3760
+ ]
3761
+ },
3766
3762
  dimension: {
3767
3763
  types: [
3768
3764
  "string"
@@ -3783,6 +3779,16 @@ var patterns_registry_default = {
3783
3779
  "8:1"
3784
3780
  ]
3785
3781
  },
3782
+ atlas: {
3783
+ types: [
3784
+ "asset"
3785
+ ]
3786
+ },
3787
+ sprite: {
3788
+ types: [
3789
+ "string"
3790
+ ]
3791
+ },
3786
3792
  name: {
3787
3793
  types: [
3788
3794
  "string"
@@ -3795,7 +3801,9 @@ var patterns_registry_default = {
3795
3801
  }
3796
3802
  },
3797
3803
  required: [
3798
- "url"
3804
+ "url",
3805
+ "role",
3806
+ "category"
3799
3807
  ]
3800
3808
  },
3801
3809
  badge: {
@@ -3874,18 +3882,6 @@ var patterns_registry_default = {
3874
3882
  role: {
3875
3883
  types: [
3876
3884
  "string"
3877
- ],
3878
- enumValues: [
3879
- "player",
3880
- "enemy",
3881
- "npc",
3882
- "item",
3883
- "tile",
3884
- "projectile",
3885
- "effect",
3886
- "ui",
3887
- "decoration",
3888
- "vehicle"
3889
3885
  ]
3890
3886
  },
3891
3887
  category: {
@@ -3915,6 +3911,11 @@ var patterns_registry_default = {
3915
3911
  "isometric"
3916
3912
  ]
3917
3913
  },
3914
+ variant: {
3915
+ types: [
3916
+ "string"
3917
+ ]
3918
+ },
3918
3919
  dimension: {
3919
3920
  types: [
3920
3921
  "string"
@@ -3935,6 +3936,16 @@ var patterns_registry_default = {
3935
3936
  "8:1"
3936
3937
  ]
3937
3938
  },
3939
+ atlas: {
3940
+ types: [
3941
+ "asset"
3942
+ ]
3943
+ },
3944
+ sprite: {
3945
+ types: [
3946
+ "string"
3947
+ ]
3948
+ },
3938
3949
  name: {
3939
3950
  types: [
3940
3951
  "string"
@@ -3947,7 +3958,9 @@ var patterns_registry_default = {
3947
3958
  }
3948
3959
  },
3949
3960
  required: [
3950
- "url"
3961
+ "url",
3962
+ "role",
3963
+ "category"
3951
3964
  ]
3952
3965
  },
3953
3966
  badge: {
@@ -4223,7 +4236,7 @@ var patterns_registry_default = {
4223
4236
  types: [
4224
4237
  "string"
4225
4238
  ],
4226
- description: "Declarative step click event \u2014 emits UI:{stepClickEvent} with { stepIndex }",
4239
+ 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.",
4227
4240
  kind: "event-ref",
4228
4241
  emitPayloadSchema: [
4229
4242
  {
@@ -5385,6 +5398,13 @@ var patterns_registry_default = {
5385
5398
  "string"
5386
5399
  ],
5387
5400
  description: "className prop"
5401
+ },
5402
+ fullPage: {
5403
+ types: [
5404
+ "boolean"
5405
+ ],
5406
+ description: "Center over the whole viewport (fix: inset-0 overlay) instead of inline.",
5407
+ default: false
5388
5408
  }
5389
5409
  }
5390
5410
  },
@@ -5576,6 +5596,14 @@ var patterns_registry_default = {
5576
5596
  kind: "callback",
5577
5597
  callbackArgs: []
5578
5598
  },
5599
+ onExited: {
5600
+ types: [
5601
+ "function"
5602
+ ],
5603
+ description: "Fires after the exit animation completes (the modal is about to unmount).",
5604
+ kind: "callback",
5605
+ callbackArgs: []
5606
+ },
5579
5607
  title: {
5580
5608
  types: [
5581
5609
  "string"
@@ -6885,18 +6913,6 @@ var patterns_registry_default = {
6885
6913
  role: {
6886
6914
  types: [
6887
6915
  "string"
6888
- ],
6889
- enumValues: [
6890
- "player",
6891
- "enemy",
6892
- "npc",
6893
- "item",
6894
- "tile",
6895
- "projectile",
6896
- "effect",
6897
- "ui",
6898
- "decoration",
6899
- "vehicle"
6900
6916
  ]
6901
6917
  },
6902
6918
  category: {
@@ -6926,6 +6942,11 @@ var patterns_registry_default = {
6926
6942
  "isometric"
6927
6943
  ]
6928
6944
  },
6945
+ variant: {
6946
+ types: [
6947
+ "string"
6948
+ ]
6949
+ },
6929
6950
  dimension: {
6930
6951
  types: [
6931
6952
  "string"
@@ -6946,6 +6967,16 @@ var patterns_registry_default = {
6946
6967
  "8:1"
6947
6968
  ]
6948
6969
  },
6970
+ atlas: {
6971
+ types: [
6972
+ "asset"
6973
+ ]
6974
+ },
6975
+ sprite: {
6976
+ types: [
6977
+ "string"
6978
+ ]
6979
+ },
6949
6980
  name: {
6950
6981
  types: [
6951
6982
  "string"
@@ -6958,7 +6989,9 @@ var patterns_registry_default = {
6958
6989
  }
6959
6990
  },
6960
6991
  propertyRequired: [
6961
- "url"
6992
+ "url",
6993
+ "role",
6994
+ "category"
6962
6995
  ]
6963
6996
  },
6964
6997
  action: {
@@ -7078,18 +7111,6 @@ var patterns_registry_default = {
7078
7111
  role: {
7079
7112
  types: [
7080
7113
  "string"
7081
- ],
7082
- enumValues: [
7083
- "player",
7084
- "enemy",
7085
- "npc",
7086
- "item",
7087
- "tile",
7088
- "projectile",
7089
- "effect",
7090
- "ui",
7091
- "decoration",
7092
- "vehicle"
7093
7114
  ]
7094
7115
  },
7095
7116
  category: {
@@ -7119,6 +7140,11 @@ var patterns_registry_default = {
7119
7140
  "isometric"
7120
7141
  ]
7121
7142
  },
7143
+ variant: {
7144
+ types: [
7145
+ "string"
7146
+ ]
7147
+ },
7122
7148
  dimension: {
7123
7149
  types: [
7124
7150
  "string"
@@ -7139,6 +7165,16 @@ var patterns_registry_default = {
7139
7165
  "8:1"
7140
7166
  ]
7141
7167
  },
7168
+ atlas: {
7169
+ types: [
7170
+ "asset"
7171
+ ]
7172
+ },
7173
+ sprite: {
7174
+ types: [
7175
+ "string"
7176
+ ]
7177
+ },
7142
7178
  name: {
7143
7179
  types: [
7144
7180
  "string"
@@ -7151,7 +7187,9 @@ var patterns_registry_default = {
7151
7187
  }
7152
7188
  },
7153
7189
  propertyRequired: [
7154
- "url"
7190
+ "url",
7191
+ "role",
7192
+ "category"
7155
7193
  ]
7156
7194
  },
7157
7195
  onRemove: {
@@ -7672,7 +7710,7 @@ var patterns_registry_default = {
7672
7710
  types: [
7673
7711
  "string"
7674
7712
  ],
7675
- description: "Input type - supports 'select' and 'textarea' in addition to standard types",
7713
+ 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.",
7676
7714
  enumValues: [
7677
7715
  "text",
7678
7716
  "email",
@@ -8892,7 +8930,8 @@ var patterns_registry_default = {
8892
8930
  category: "form",
8893
8931
  tier: "molecules",
8894
8932
  family: "core",
8895
- description: "Repeatable form section for multiple entries",
8933
+ description: "RepeatableFormSection \u2014 a form section that repeats a fixed group of fields, letting the user add or remove entries.",
8934
+ capabilities: "dynamic line items, repeatable field group, add/remove entry rows, multi-entry form block",
8896
8935
  suggestedFor: [
8897
8936
  "repeating fields",
8898
8937
  "dynamic forms",
@@ -8950,7 +8989,7 @@ var patterns_registry_default = {
8950
8989
  types: [
8951
8990
  "function"
8952
8991
  ],
8953
- description: "Render function for each item",
8992
+ description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
8954
8993
  required: true,
8955
8994
  kind: "callback",
8956
8995
  callbackArgs: [
@@ -9792,133 +9831,184 @@ var patterns_registry_default = {
9792
9831
  ],
9793
9832
  typicalSize: "medium",
9794
9833
  propsSchema: {
9795
- className: {
9834
+ children: {
9796
9835
  types: [
9797
- "string"
9836
+ "node"
9798
9837
  ],
9799
- description: "Additional CSS classes"
9838
+ description: "Button group content (Button components) - use this OR primary/secondary"
9800
9839
  },
9801
- isLoading: {
9802
- types: [
9803
- "boolean"
9804
- ],
9805
- description: "Loading state indicator"
9806
- },
9807
- error: {
9840
+ primary: {
9808
9841
  types: [
9809
9842
  "object"
9810
9843
  ],
9811
- description: "Error state (UiError)",
9844
+ description: "Primary action button config (for form-actions pattern) Accepts Readonly for compatibility with generated const objects",
9812
9845
  properties: {
9813
- message: {
9846
+ label: {
9814
9847
  types: [
9815
9848
  "string"
9816
9849
  ]
9817
9850
  },
9818
- name: {
9851
+ actionType: {
9819
9852
  types: [
9820
9853
  "string"
9821
9854
  ]
9822
9855
  },
9823
- code: {
9856
+ event: {
9824
9857
  types: [
9825
9858
  "string"
9826
9859
  ]
9827
9860
  },
9828
- stack: {
9861
+ navigatesTo: {
9862
+ types: [
9863
+ "string"
9864
+ ]
9865
+ },
9866
+ variant: {
9829
9867
  types: [
9830
9868
  "string"
9831
9869
  ]
9832
9870
  }
9833
9871
  },
9834
9872
  propertyRequired: [
9835
- "message"
9873
+ "label"
9836
9874
  ]
9837
9875
  },
9838
- sortBy: {
9876
+ secondary: {
9839
9877
  types: [
9840
- "string"
9878
+ "array"
9841
9879
  ],
9842
- description: "Current sort field"
9880
+ description: "Secondary action buttons config (for form-actions pattern) Accepts readonly array for compatibility with generated const arrays",
9881
+ items: {
9882
+ types: [
9883
+ "object"
9884
+ ],
9885
+ properties: {
9886
+ label: {
9887
+ types: [
9888
+ "string"
9889
+ ]
9890
+ },
9891
+ actionType: {
9892
+ types: [
9893
+ "string"
9894
+ ]
9895
+ },
9896
+ event: {
9897
+ types: [
9898
+ "string"
9899
+ ]
9900
+ },
9901
+ navigatesTo: {
9902
+ types: [
9903
+ "string"
9904
+ ]
9905
+ },
9906
+ variant: {
9907
+ types: [
9908
+ "string"
9909
+ ]
9910
+ }
9911
+ },
9912
+ required: [
9913
+ "label"
9914
+ ]
9915
+ }
9843
9916
  },
9844
- sortDirection: {
9917
+ variant: {
9845
9918
  types: [
9846
9919
  "string"
9847
9920
  ],
9848
- description: "Current sort direction",
9921
+ description: "Visual variant",
9849
9922
  enumValues: [
9850
- "asc",
9851
- "desc"
9852
- ]
9853
- },
9854
- searchValue: {
9855
- types: [
9856
- "string"
9923
+ "default",
9924
+ "segmented",
9925
+ "toggle"
9857
9926
  ],
9858
- description: "Current search query value"
9927
+ default: "default"
9859
9928
  },
9860
- page: {
9929
+ orientation: {
9861
9930
  types: [
9862
- "number"
9931
+ "string"
9863
9932
  ],
9864
- description: "Current page number"
9865
- },
9866
- pageSize: {
9867
- types: [
9868
- "number"
9933
+ description: "Orientation",
9934
+ enumValues: [
9935
+ "horizontal",
9936
+ "vertical"
9869
9937
  ],
9870
- description: "Number of items per page"
9938
+ default: "horizontal"
9871
9939
  },
9872
- totalCount: {
9940
+ className: {
9873
9941
  types: [
9874
- "number"
9942
+ "string"
9875
9943
  ],
9876
- description: "Total number of items"
9944
+ description: "Additional CSS classes"
9877
9945
  },
9878
- activeFilters: {
9946
+ entity: {
9879
9947
  types: [
9880
- "object"
9948
+ "string"
9881
9949
  ],
9882
- description: "Active filters"
9950
+ description: "Entity type for filter-group pattern (schema metadata)"
9883
9951
  },
9884
- selectedIds: {
9952
+ filters: {
9885
9953
  types: [
9886
9954
  "array"
9887
9955
  ],
9888
- description: "Currently selected item IDs",
9956
+ description: "Filter definitions for filter-group pattern",
9889
9957
  items: {
9890
9958
  types: [
9891
- "string",
9892
- "number"
9959
+ "object"
9960
+ ],
9961
+ properties: {
9962
+ field: {
9963
+ types: [
9964
+ "string"
9965
+ ]
9966
+ },
9967
+ label: {
9968
+ types: [
9969
+ "string"
9970
+ ]
9971
+ },
9972
+ type: {
9973
+ types: [
9974
+ "string"
9975
+ ],
9976
+ enumValues: [
9977
+ "checkbox",
9978
+ "select",
9979
+ "toggle"
9980
+ ]
9981
+ },
9982
+ options: {
9983
+ types: [
9984
+ "array"
9985
+ ],
9986
+ items: {
9987
+ types: [
9988
+ "string"
9989
+ ]
9990
+ }
9991
+ }
9992
+ },
9993
+ required: [
9994
+ "field",
9995
+ "label"
9893
9996
  ]
9894
9997
  }
9895
9998
  },
9896
- children: {
9897
- types: [
9898
- "node"
9899
- ],
9900
- description: "children prop",
9901
- required: true
9902
- },
9903
- sticky: {
9904
- types: [
9905
- "boolean"
9906
- ],
9907
- description: "Sticky at bottom",
9908
- default: false
9909
- },
9910
- align: {
9999
+ look: {
9911
10000
  types: [
9912
10001
  "string"
9913
10002
  ],
9914
- description: "Alignment",
10003
+ description: "Layer 2 visual treatment for the action-cluster (form-actions) pattern.",
9915
10004
  enumValues: [
9916
- "left",
9917
- "right",
9918
- "between",
9919
- "center"
10005
+ "right-aligned-buttons",
10006
+ "floating-bar",
10007
+ "inline-row",
10008
+ "dropdown-menu",
10009
+ "command-palette-trigger"
9920
10010
  ],
9921
- default: "right"
10011
+ default: "right-aligned-buttons"
9922
10012
  }
9923
10013
  }
9924
10014
  },
@@ -10386,7 +10476,7 @@ var patterns_registry_default = {
10386
10476
  types: [
10387
10477
  "string"
10388
10478
  ],
10389
- description: "Input type - supports 'select' and 'textarea' in addition to standard types",
10479
+ 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.",
10390
10480
  enumValues: [
10391
10481
  "text",
10392
10482
  "email",
@@ -12859,18 +12949,6 @@ var patterns_registry_default = {
12859
12949
  role: {
12860
12950
  types: [
12861
12951
  "string"
12862
- ],
12863
- enumValues: [
12864
- "player",
12865
- "enemy",
12866
- "npc",
12867
- "item",
12868
- "tile",
12869
- "projectile",
12870
- "effect",
12871
- "ui",
12872
- "decoration",
12873
- "vehicle"
12874
12952
  ]
12875
12953
  },
12876
12954
  category: {
@@ -12900,6 +12978,11 @@ var patterns_registry_default = {
12900
12978
  "isometric"
12901
12979
  ]
12902
12980
  },
12981
+ variant: {
12982
+ types: [
12983
+ "string"
12984
+ ]
12985
+ },
12903
12986
  dimension: {
12904
12987
  types: [
12905
12988
  "string"
@@ -12920,6 +13003,16 @@ var patterns_registry_default = {
12920
13003
  "8:1"
12921
13004
  ]
12922
13005
  },
13006
+ atlas: {
13007
+ types: [
13008
+ "asset"
13009
+ ]
13010
+ },
13011
+ sprite: {
13012
+ types: [
13013
+ "string"
13014
+ ]
13015
+ },
12923
13016
  name: {
12924
13017
  types: [
12925
13018
  "string"
@@ -12932,14 +13025,16 @@ var patterns_registry_default = {
12932
13025
  }
12933
13026
  },
12934
13027
  propertyRequired: [
12935
- "url"
13028
+ "url",
13029
+ "role",
13030
+ "category"
12936
13031
  ]
12937
13032
  },
12938
13033
  hudBackgroundAsset: {
12939
13034
  types: [
12940
13035
  "object"
12941
13036
  ],
12942
- description: "9-sliced panel skin for the HUD chips row + title chip.",
13037
+ description: "Per-call-site 9-sliced panel override. Chrome normally comes from the active theme; most callers leave this unset.",
12943
13038
  properties: {
12944
13039
  url: {
12945
13040
  types: [
@@ -12949,18 +13044,6 @@ var patterns_registry_default = {
12949
13044
  role: {
12950
13045
  types: [
12951
13046
  "string"
12952
- ],
12953
- enumValues: [
12954
- "player",
12955
- "enemy",
12956
- "npc",
12957
- "item",
12958
- "tile",
12959
- "projectile",
12960
- "effect",
12961
- "ui",
12962
- "decoration",
12963
- "vehicle"
12964
13047
  ]
12965
13048
  },
12966
13049
  category: {
@@ -12990,6 +13073,11 @@ var patterns_registry_default = {
12990
13073
  "isometric"
12991
13074
  ]
12992
13075
  },
13076
+ variant: {
13077
+ types: [
13078
+ "string"
13079
+ ]
13080
+ },
12993
13081
  dimension: {
12994
13082
  types: [
12995
13083
  "string"
@@ -13010,6 +13098,16 @@ var patterns_registry_default = {
13010
13098
  "8:1"
13011
13099
  ]
13012
13100
  },
13101
+ atlas: {
13102
+ types: [
13103
+ "asset"
13104
+ ]
13105
+ },
13106
+ sprite: {
13107
+ types: [
13108
+ "string"
13109
+ ]
13110
+ },
13013
13111
  name: {
13014
13112
  types: [
13015
13113
  "string"
@@ -13022,7 +13120,9 @@ var patterns_registry_default = {
13022
13120
  }
13023
13121
  },
13024
13122
  propertyRequired: [
13025
- "url"
13123
+ "url",
13124
+ "role",
13125
+ "category"
13026
13126
  ]
13027
13127
  },
13028
13128
  fontFamily: {
@@ -13031,6 +13131,12 @@ var patterns_registry_default = {
13031
13131
  ],
13032
13132
  description: "Game font key (future | future-narrow | pixel | blocks | mini) or a CSS font-family.",
13033
13133
  default: "future"
13134
+ },
13135
+ "data-theme": {
13136
+ types: [
13137
+ "string"
13138
+ ],
13139
+ description: 'Scopes an `@almadar/ui` theme (e.g. "game-sci-fi-dark") to this shell\'s subtree.'
13034
13140
  }
13035
13141
  }
13036
13142
  },
@@ -14084,7 +14190,8 @@ var patterns_registry_default = {
14084
14190
  category: "form",
14085
14191
  tier: "molecules",
14086
14192
  family: "core",
14087
- description: "Canvas-based signature capture pad with draw, clear, and confirm actions",
14193
+ description: "SignaturePad \u2014 a draw-to-sign canvas that captures a handwritten signature or initials.",
14194
+ capabilities: "e-signature capture, sign-here field, consent signature, initial-here field, wet-signature substitute",
14088
14195
  suggestedFor: [
14089
14196
  "form signing",
14090
14197
  "approval workflows",
@@ -14489,6 +14596,11 @@ var patterns_registry_default = {
14489
14596
  "number"
14490
14597
  ]
14491
14598
  },
14599
+ badge: {
14600
+ types: [
14601
+ "number"
14602
+ ]
14603
+ },
14492
14604
  x: {
14493
14605
  types: [
14494
14606
  "number"
@@ -14509,7 +14621,7 @@ var patterns_registry_default = {
14509
14621
  types: [
14510
14622
  "array"
14511
14623
  ],
14512
- description: "Graph edges",
14624
+ description: "Graph edges (the only rendered links)",
14513
14625
  items: {
14514
14626
  types: [
14515
14627
  "object"
@@ -14547,6 +14659,39 @@ var patterns_registry_default = {
14547
14659
  ]
14548
14660
  }
14549
14661
  },
14662
+ similarity: {
14663
+ types: [
14664
+ "array"
14665
+ ],
14666
+ 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.",
14667
+ items: {
14668
+ types: [
14669
+ "object"
14670
+ ],
14671
+ properties: {
14672
+ source: {
14673
+ types: [
14674
+ "string"
14675
+ ]
14676
+ },
14677
+ target: {
14678
+ types: [
14679
+ "string"
14680
+ ]
14681
+ },
14682
+ weight: {
14683
+ types: [
14684
+ "number"
14685
+ ]
14686
+ }
14687
+ },
14688
+ required: [
14689
+ "source",
14690
+ "target",
14691
+ "weight"
14692
+ ]
14693
+ }
14694
+ },
14550
14695
  height: {
14551
14696
  types: [
14552
14697
  "number"
@@ -14656,6 +14801,11 @@ var patterns_registry_default = {
14656
14801
  "number"
14657
14802
  ]
14658
14803
  },
14804
+ badge: {
14805
+ types: [
14806
+ "number"
14807
+ ]
14808
+ },
14659
14809
  x: {
14660
14810
  types: [
14661
14811
  "number"
@@ -14714,6 +14864,74 @@ var patterns_registry_default = {
14714
14864
  "number"
14715
14865
  ]
14716
14866
  },
14867
+ badge: {
14868
+ types: [
14869
+ "number"
14870
+ ]
14871
+ },
14872
+ x: {
14873
+ types: [
14874
+ "number"
14875
+ ]
14876
+ },
14877
+ y: {
14878
+ types: [
14879
+ "number"
14880
+ ]
14881
+ }
14882
+ },
14883
+ required: [
14884
+ "id"
14885
+ ]
14886
+ }
14887
+ }
14888
+ ]
14889
+ },
14890
+ onBadgeClick: {
14891
+ types: [
14892
+ "function"
14893
+ ],
14894
+ description: "On node badge click (e.g. to expand a merged cluster).",
14895
+ kind: "callback",
14896
+ callbackArgs: [
14897
+ {
14898
+ name: "node",
14899
+ type: "object",
14900
+ schema: {
14901
+ types: [
14902
+ "object"
14903
+ ],
14904
+ properties: {
14905
+ id: {
14906
+ types: [
14907
+ "string"
14908
+ ]
14909
+ },
14910
+ label: {
14911
+ types: [
14912
+ "string"
14913
+ ]
14914
+ },
14915
+ group: {
14916
+ types: [
14917
+ "string"
14918
+ ]
14919
+ },
14920
+ color: {
14921
+ types: [
14922
+ "string"
14923
+ ]
14924
+ },
14925
+ size: {
14926
+ types: [
14927
+ "number"
14928
+ ]
14929
+ },
14930
+ badge: {
14931
+ types: [
14932
+ "number"
14933
+ ]
14934
+ },
14717
14935
  x: {
14718
14936
  types: [
14719
14937
  "number"
@@ -14950,7 +15168,8 @@ var patterns_registry_default = {
14950
15168
  category: "component",
14951
15169
  tier: "molecules",
14952
15170
  family: "core",
14953
- 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",
15171
+ description: "QuizBlock \u2014 a single quiz question with answer choices and submit/reveal feedback.",
15172
+ capabilities: "multiple-choice quiz, test question, exam item, assessment question, knowledge check, trivia question",
14954
15173
  suggestedFor: [
14955
15174
  "quiz",
14956
15175
  "block",
@@ -16202,7 +16421,8 @@ var patterns_registry_default = {
16202
16421
  category: "display",
16203
16422
  tier: "molecules",
16204
16423
  family: "core",
16205
- description: "FlipCard component",
16424
+ description: "FlipCard \u2014 flip card that reveals a hidden back face on tap or click, toggling between a front and back content slot.",
16425
+ capabilities: "flashcard, study deck, spaced-repetition review card, memorization drill, quiz reveal card, question/answer card, before/after reveal, term-and-definition card",
16206
16426
  suggestedFor: [
16207
16427
  "flip",
16208
16428
  "card",
@@ -16659,7 +16879,8 @@ var patterns_registry_default = {
16659
16879
  category: "display",
16660
16880
  tier: "molecules",
16661
16881
  family: "core",
16662
- description: "DataGrid component",
16882
+ description: "DataGrid \u2014 structured records grid rendering rows over configurable columns, with sort, select, and drag-reorder.",
16883
+ capabilities: "admin table, records grid, user list, CRUD list, manage-records view, spreadsheet-style data grid, sortable columns",
16663
16884
  suggestedFor: [
16664
16885
  "data",
16665
16886
  "grid",
@@ -16729,7 +16950,7 @@ var patterns_registry_default = {
16729
16950
  types: [
16730
16951
  "array"
16731
16952
  ],
16732
- 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.",
16953
+ 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.",
16733
16954
  items: {
16734
16955
  types: [
16735
16956
  "object"
@@ -17061,7 +17282,7 @@ var patterns_registry_default = {
17061
17282
  types: [
17062
17283
  "function"
17063
17284
  ],
17064
- 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.',
17285
+ 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.',
17065
17286
  kind: "callback",
17066
17287
  callbackArgs: [
17067
17288
  {
@@ -17174,7 +17395,7 @@ var patterns_registry_default = {
17174
17395
  types: [
17175
17396
  "array"
17176
17397
  ],
17177
- 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.",
17398
+ 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.",
17178
17399
  items: {
17179
17400
  types: [
17180
17401
  "object"
@@ -17578,7 +17799,7 @@ var patterns_registry_default = {
17578
17799
  types: [
17579
17800
  "function"
17580
17801
  ],
17581
- 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.',
17802
+ 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.',
17582
17803
  kind: "callback",
17583
17804
  callbackArgs: [
17584
17805
  {
@@ -18608,6 +18829,12 @@ var patterns_registry_default = {
18608
18829
  ],
18609
18830
  description: "Text to display after the number"
18610
18831
  },
18832
+ format: {
18833
+ types: [
18834
+ "string"
18835
+ ],
18836
+ description: `Display format: "number" (locale grouping), "currency" ($x.xx), "percent" (rounded %). Unset preserves the value's own decimals.`
18837
+ },
18611
18838
  className: {
18612
18839
  types: [
18613
18840
  "string"
@@ -18794,7 +19021,7 @@ var patterns_registry_default = {
18794
19021
  types: [
18795
19022
  "function"
18796
19023
  ],
18797
- description: "Render function for each slide",
19024
+ description: "Render function for each slide. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
18798
19025
  kind: "callback",
18799
19026
  callbackArgs: [
18800
19027
  {
@@ -18945,7 +19172,8 @@ var patterns_registry_default = {
18945
19172
  category: "display",
18946
19173
  tier: "molecules",
18947
19174
  family: "core",
18948
- description: "SortableList component",
19175
+ description: "SortableList \u2014 a drag-and-drop reorderable list of items.",
19176
+ capabilities: "checklist, task list, to-do list, priority list, ranked list, drag-to-reorder queue",
18949
19177
  suggestedFor: [
18950
19178
  "sortable",
18951
19179
  "list",
@@ -18967,7 +19195,7 @@ var patterns_registry_default = {
18967
19195
  types: [
18968
19196
  "function"
18969
19197
  ],
18970
- description: "renderItem prop",
19198
+ description: "Render function for each item. In .lolo: renderItem: (fn item <Component \u2026={@item.field}/>), binding per-item fields via @item.field.",
18971
19199
  required: true,
18972
19200
  kind: "callback",
18973
19201
  callbackArgs: [
@@ -19552,7 +19780,8 @@ var patterns_registry_default = {
19552
19780
  category: "display",
19553
19781
  tier: "molecules",
19554
19782
  family: "marketing",
19555
- description: "CaseStudyCard component",
19783
+ description: "CaseStudyCard \u2014 a card summarizing a customer case study with logo, headline result, and link.",
19784
+ capabilities: "customer story, success story, client story card, results showcase, proof-point card",
19556
19785
  suggestedFor: [
19557
19786
  "case",
19558
19787
  "study",
@@ -19711,7 +19940,8 @@ var patterns_registry_default = {
19711
19940
  category: "display",
19712
19941
  tier: "molecules",
19713
19942
  family: "marketing",
19714
- description: "FeatureCard component",
19943
+ description: "FeatureCard \u2014 an icon-led card pairing a title and description to call out a single product feature.",
19944
+ capabilities: "feature highlight, benefit callout, product capability card, feature-grid tile",
19715
19945
  suggestedFor: [
19716
19946
  "feature",
19717
19947
  "card",
@@ -20119,7 +20349,8 @@ var patterns_registry_default = {
20119
20349
  category: "display",
20120
20350
  tier: "molecules",
20121
20351
  family: "marketing",
20122
- description: "PricingCard component",
20352
+ description: "PricingCard \u2014 a single pricing-tier card with price, billing period, feature list, and call-to-action.",
20353
+ capabilities: "pricing tier, plan card, subscription tier, plan comparison card, price plan",
20123
20354
  suggestedFor: [
20124
20355
  "pricing",
20125
20356
  "card",
@@ -25851,18 +26082,6 @@ var patterns_registry_default = {
25851
26082
  role: {
25852
26083
  types: [
25853
26084
  "string"
25854
- ],
25855
- enumValues: [
25856
- "player",
25857
- "enemy",
25858
- "npc",
25859
- "item",
25860
- "tile",
25861
- "projectile",
25862
- "effect",
25863
- "ui",
25864
- "decoration",
25865
- "vehicle"
25866
26085
  ]
25867
26086
  },
25868
26087
  category: {
@@ -25892,6 +26111,11 @@ var patterns_registry_default = {
25892
26111
  "isometric"
25893
26112
  ]
25894
26113
  },
26114
+ variant: {
26115
+ types: [
26116
+ "string"
26117
+ ]
26118
+ },
25895
26119
  dimension: {
25896
26120
  types: [
25897
26121
  "string"
@@ -25912,6 +26136,16 @@ var patterns_registry_default = {
25912
26136
  "8:1"
25913
26137
  ]
25914
26138
  },
26139
+ atlas: {
26140
+ types: [
26141
+ "asset"
26142
+ ]
26143
+ },
26144
+ sprite: {
26145
+ types: [
26146
+ "string"
26147
+ ]
26148
+ },
25915
26149
  name: {
25916
26150
  types: [
25917
26151
  "string"
@@ -25924,7 +26158,9 @@ var patterns_registry_default = {
25924
26158
  }
25925
26159
  },
25926
26160
  propertyRequired: [
25927
- "url"
26161
+ "url",
26162
+ "role",
26163
+ "category"
25928
26164
  ]
25929
26165
  },
25930
26166
  icon: {
@@ -26011,18 +26247,6 @@ var patterns_registry_default = {
26011
26247
  role: {
26012
26248
  types: [
26013
26249
  "string"
26014
- ],
26015
- enumValues: [
26016
- "player",
26017
- "enemy",
26018
- "npc",
26019
- "item",
26020
- "tile",
26021
- "projectile",
26022
- "effect",
26023
- "ui",
26024
- "decoration",
26025
- "vehicle"
26026
26250
  ]
26027
26251
  },
26028
26252
  category: {
@@ -26052,6 +26276,11 @@ var patterns_registry_default = {
26052
26276
  "isometric"
26053
26277
  ]
26054
26278
  },
26279
+ variant: {
26280
+ types: [
26281
+ "string"
26282
+ ]
26283
+ },
26055
26284
  dimension: {
26056
26285
  types: [
26057
26286
  "string"
@@ -26072,6 +26301,16 @@ var patterns_registry_default = {
26072
26301
  "8:1"
26073
26302
  ]
26074
26303
  },
26304
+ atlas: {
26305
+ types: [
26306
+ "asset"
26307
+ ]
26308
+ },
26309
+ sprite: {
26310
+ types: [
26311
+ "string"
26312
+ ]
26313
+ },
26075
26314
  name: {
26076
26315
  types: [
26077
26316
  "string"
@@ -26084,7 +26323,9 @@ var patterns_registry_default = {
26084
26323
  }
26085
26324
  },
26086
26325
  propertyRequired: [
26087
- "url"
26326
+ "url",
26327
+ "role",
26328
+ "category"
26088
26329
  ]
26089
26330
  },
26090
26331
  label: {
@@ -26229,18 +26470,6 @@ var patterns_registry_default = {
26229
26470
  role: {
26230
26471
  types: [
26231
26472
  "string"
26232
- ],
26233
- enumValues: [
26234
- "player",
26235
- "enemy",
26236
- "npc",
26237
- "item",
26238
- "tile",
26239
- "projectile",
26240
- "effect",
26241
- "ui",
26242
- "decoration",
26243
- "vehicle"
26244
26473
  ]
26245
26474
  },
26246
26475
  category: {
@@ -26270,6 +26499,11 @@ var patterns_registry_default = {
26270
26499
  "isometric"
26271
26500
  ]
26272
26501
  },
26502
+ variant: {
26503
+ types: [
26504
+ "string"
26505
+ ]
26506
+ },
26273
26507
  dimension: {
26274
26508
  types: [
26275
26509
  "string"
@@ -26290,6 +26524,16 @@ var patterns_registry_default = {
26290
26524
  "8:1"
26291
26525
  ]
26292
26526
  },
26527
+ atlas: {
26528
+ types: [
26529
+ "asset"
26530
+ ]
26531
+ },
26532
+ sprite: {
26533
+ types: [
26534
+ "string"
26535
+ ]
26536
+ },
26293
26537
  name: {
26294
26538
  types: [
26295
26539
  "string"
@@ -26302,7 +26546,9 @@ var patterns_registry_default = {
26302
26546
  }
26303
26547
  },
26304
26548
  propertyRequired: [
26305
- "url"
26549
+ "url",
26550
+ "role",
26551
+ "category"
26306
26552
  ]
26307
26553
  },
26308
26554
  position: {
@@ -26443,18 +26689,6 @@ var patterns_registry_default = {
26443
26689
  role: {
26444
26690
  types: [
26445
26691
  "string"
26446
- ],
26447
- enumValues: [
26448
- "player",
26449
- "enemy",
26450
- "npc",
26451
- "item",
26452
- "tile",
26453
- "projectile",
26454
- "effect",
26455
- "ui",
26456
- "decoration",
26457
- "vehicle"
26458
26692
  ]
26459
26693
  },
26460
26694
  category: {
@@ -26484,6 +26718,11 @@ var patterns_registry_default = {
26484
26718
  "isometric"
26485
26719
  ]
26486
26720
  },
26721
+ variant: {
26722
+ types: [
26723
+ "string"
26724
+ ]
26725
+ },
26487
26726
  dimension: {
26488
26727
  types: [
26489
26728
  "string"
@@ -26504,6 +26743,16 @@ var patterns_registry_default = {
26504
26743
  "8:1"
26505
26744
  ]
26506
26745
  },
26746
+ atlas: {
26747
+ types: [
26748
+ "asset"
26749
+ ]
26750
+ },
26751
+ sprite: {
26752
+ types: [
26753
+ "string"
26754
+ ]
26755
+ },
26507
26756
  name: {
26508
26757
  types: [
26509
26758
  "string"
@@ -26516,7 +26765,9 @@ var patterns_registry_default = {
26516
26765
  }
26517
26766
  },
26518
26767
  propertyRequired: [
26519
- "url"
26768
+ "url",
26769
+ "role",
26770
+ "category"
26520
26771
  ]
26521
26772
  },
26522
26773
  fillAsset: {
@@ -26533,18 +26784,6 @@ var patterns_registry_default = {
26533
26784
  role: {
26534
26785
  types: [
26535
26786
  "string"
26536
- ],
26537
- enumValues: [
26538
- "player",
26539
- "enemy",
26540
- "npc",
26541
- "item",
26542
- "tile",
26543
- "projectile",
26544
- "effect",
26545
- "ui",
26546
- "decoration",
26547
- "vehicle"
26548
26787
  ]
26549
26788
  },
26550
26789
  category: {
@@ -26574,6 +26813,11 @@ var patterns_registry_default = {
26574
26813
  "isometric"
26575
26814
  ]
26576
26815
  },
26816
+ variant: {
26817
+ types: [
26818
+ "string"
26819
+ ]
26820
+ },
26577
26821
  dimension: {
26578
26822
  types: [
26579
26823
  "string"
@@ -26594,6 +26838,16 @@ var patterns_registry_default = {
26594
26838
  "8:1"
26595
26839
  ]
26596
26840
  },
26841
+ atlas: {
26842
+ types: [
26843
+ "asset"
26844
+ ]
26845
+ },
26846
+ sprite: {
26847
+ types: [
26848
+ "string"
26849
+ ]
26850
+ },
26597
26851
  name: {
26598
26852
  types: [
26599
26853
  "string"
@@ -26606,7 +26860,9 @@ var patterns_registry_default = {
26606
26860
  }
26607
26861
  },
26608
26862
  propertyRequired: [
26609
- "url"
26863
+ "url",
26864
+ "role",
26865
+ "category"
26610
26866
  ]
26611
26867
  }
26612
26868
  }
@@ -26638,18 +26894,6 @@ var patterns_registry_default = {
26638
26894
  role: {
26639
26895
  types: [
26640
26896
  "string"
26641
- ],
26642
- enumValues: [
26643
- "player",
26644
- "enemy",
26645
- "npc",
26646
- "item",
26647
- "tile",
26648
- "projectile",
26649
- "effect",
26650
- "ui",
26651
- "decoration",
26652
- "vehicle"
26653
26897
  ]
26654
26898
  },
26655
26899
  category: {
@@ -26679,6 +26923,11 @@ var patterns_registry_default = {
26679
26923
  "isometric"
26680
26924
  ]
26681
26925
  },
26926
+ variant: {
26927
+ types: [
26928
+ "string"
26929
+ ]
26930
+ },
26682
26931
  dimension: {
26683
26932
  types: [
26684
26933
  "string"
@@ -26699,6 +26948,16 @@ var patterns_registry_default = {
26699
26948
  "8:1"
26700
26949
  ]
26701
26950
  },
26951
+ atlas: {
26952
+ types: [
26953
+ "asset"
26954
+ ]
26955
+ },
26956
+ sprite: {
26957
+ types: [
26958
+ "string"
26959
+ ]
26960
+ },
26702
26961
  name: {
26703
26962
  types: [
26704
26963
  "string"
@@ -26711,7 +26970,9 @@ var patterns_registry_default = {
26711
26970
  }
26712
26971
  },
26713
26972
  propertyRequired: [
26714
- "url"
26973
+ "url",
26974
+ "role",
26975
+ "category"
26715
26976
  ]
26716
26977
  },
26717
26978
  value: {
@@ -26846,18 +27107,6 @@ var patterns_registry_default = {
26846
27107
  role: {
26847
27108
  types: [
26848
27109
  "string"
26849
- ],
26850
- enumValues: [
26851
- "player",
26852
- "enemy",
26853
- "npc",
26854
- "item",
26855
- "tile",
26856
- "projectile",
26857
- "effect",
26858
- "ui",
26859
- "decoration",
26860
- "vehicle"
26861
27110
  ]
26862
27111
  },
26863
27112
  category: {
@@ -26887,6 +27136,11 @@ var patterns_registry_default = {
26887
27136
  "isometric"
26888
27137
  ]
26889
27138
  },
27139
+ variant: {
27140
+ types: [
27141
+ "string"
27142
+ ]
27143
+ },
26890
27144
  dimension: {
26891
27145
  types: [
26892
27146
  "string"
@@ -26907,6 +27161,16 @@ var patterns_registry_default = {
26907
27161
  "8:1"
26908
27162
  ]
26909
27163
  },
27164
+ atlas: {
27165
+ types: [
27166
+ "asset"
27167
+ ]
27168
+ },
27169
+ sprite: {
27170
+ types: [
27171
+ "string"
27172
+ ]
27173
+ },
26910
27174
  name: {
26911
27175
  types: [
26912
27176
  "string"
@@ -26919,7 +27183,9 @@ var patterns_registry_default = {
26919
27183
  }
26920
27184
  },
26921
27185
  propertyRequired: [
26922
- "url"
27186
+ "url",
27187
+ "role",
27188
+ "category"
26923
27189
  ]
26924
27190
  }
26925
27191
  }
@@ -28453,7 +28719,8 @@ var patterns_registry_default = {
28453
28719
  category: "display",
28454
28720
  tier: "molecules",
28455
28721
  family: "avl",
28456
- description: "ModuleCard component",
28722
+ description: "ModuleCard \u2014 a card summarizing one course module or lesson with progress and entry point.",
28723
+ capabilities: "course module card, lesson card, curriculum unit card, learning-path step card",
28457
28724
  suggestedFor: [
28458
28725
  "module",
28459
28726
  "card",
@@ -28595,18 +28862,6 @@ var patterns_registry_default = {
28595
28862
  role: {
28596
28863
  types: [
28597
28864
  "string"
28598
- ],
28599
- enumValues: [
28600
- "player",
28601
- "enemy",
28602
- "npc",
28603
- "item",
28604
- "tile",
28605
- "projectile",
28606
- "effect",
28607
- "ui",
28608
- "decoration",
28609
- "vehicle"
28610
28865
  ]
28611
28866
  },
28612
28867
  category: {
@@ -28636,6 +28891,11 @@ var patterns_registry_default = {
28636
28891
  "isometric"
28637
28892
  ]
28638
28893
  },
28894
+ variant: {
28895
+ types: [
28896
+ "string"
28897
+ ]
28898
+ },
28639
28899
  dimension: {
28640
28900
  types: [
28641
28901
  "string"
@@ -28656,6 +28916,16 @@ var patterns_registry_default = {
28656
28916
  "8:1"
28657
28917
  ]
28658
28918
  },
28919
+ atlas: {
28920
+ types: [
28921
+ "asset"
28922
+ ]
28923
+ },
28924
+ sprite: {
28925
+ types: [
28926
+ "string"
28927
+ ]
28928
+ },
28659
28929
  name: {
28660
28930
  types: [
28661
28931
  "string"
@@ -28668,7 +28938,9 @@ var patterns_registry_default = {
28668
28938
  }
28669
28939
  },
28670
28940
  required: [
28671
- "url"
28941
+ "url",
28942
+ "role",
28943
+ "category"
28672
28944
  ]
28673
28945
  },
28674
28946
  format: {
@@ -28948,18 +29220,6 @@ var patterns_registry_default = {
28948
29220
  role: {
28949
29221
  types: [
28950
29222
  "string"
28951
- ],
28952
- enumValues: [
28953
- "player",
28954
- "enemy",
28955
- "npc",
28956
- "item",
28957
- "tile",
28958
- "projectile",
28959
- "effect",
28960
- "ui",
28961
- "decoration",
28962
- "vehicle"
28963
29223
  ]
28964
29224
  },
28965
29225
  category: {
@@ -28989,6 +29249,11 @@ var patterns_registry_default = {
28989
29249
  "isometric"
28990
29250
  ]
28991
29251
  },
29252
+ variant: {
29253
+ types: [
29254
+ "string"
29255
+ ]
29256
+ },
28992
29257
  dimension: {
28993
29258
  types: [
28994
29259
  "string"
@@ -29009,6 +29274,16 @@ var patterns_registry_default = {
29009
29274
  "8:1"
29010
29275
  ]
29011
29276
  },
29277
+ atlas: {
29278
+ types: [
29279
+ "asset"
29280
+ ]
29281
+ },
29282
+ sprite: {
29283
+ types: [
29284
+ "string"
29285
+ ]
29286
+ },
29012
29287
  name: {
29013
29288
  types: [
29014
29289
  "string"
@@ -29021,7 +29296,9 @@ var patterns_registry_default = {
29021
29296
  }
29022
29297
  },
29023
29298
  propertyRequired: [
29024
- "url"
29299
+ "url",
29300
+ "role",
29301
+ "category"
29025
29302
  ]
29026
29303
  },
29027
29304
  className: {
@@ -29059,18 +29336,6 @@ var patterns_registry_default = {
29059
29336
  role: {
29060
29337
  types: [
29061
29338
  "string"
29062
- ],
29063
- enumValues: [
29064
- "player",
29065
- "enemy",
29066
- "npc",
29067
- "item",
29068
- "tile",
29069
- "projectile",
29070
- "effect",
29071
- "ui",
29072
- "decoration",
29073
- "vehicle"
29074
29339
  ]
29075
29340
  },
29076
29341
  category: {
@@ -29100,6 +29365,11 @@ var patterns_registry_default = {
29100
29365
  "isometric"
29101
29366
  ]
29102
29367
  },
29368
+ variant: {
29369
+ types: [
29370
+ "string"
29371
+ ]
29372
+ },
29103
29373
  dimension: {
29104
29374
  types: [
29105
29375
  "string"
@@ -29120,6 +29390,16 @@ var patterns_registry_default = {
29120
29390
  "8:1"
29121
29391
  ]
29122
29392
  },
29393
+ atlas: {
29394
+ types: [
29395
+ "asset"
29396
+ ]
29397
+ },
29398
+ sprite: {
29399
+ types: [
29400
+ "string"
29401
+ ]
29402
+ },
29123
29403
  name: {
29124
29404
  types: [
29125
29405
  "string"
@@ -29132,7 +29412,9 @@ var patterns_registry_default = {
29132
29412
  }
29133
29413
  },
29134
29414
  propertyRequired: [
29135
- "url"
29415
+ "url",
29416
+ "role",
29417
+ "category"
29136
29418
  ]
29137
29419
  },
29138
29420
  iconUrl: {
@@ -29149,18 +29431,6 @@ var patterns_registry_default = {
29149
29431
  role: {
29150
29432
  types: [
29151
29433
  "string"
29152
- ],
29153
- enumValues: [
29154
- "player",
29155
- "enemy",
29156
- "npc",
29157
- "item",
29158
- "tile",
29159
- "projectile",
29160
- "effect",
29161
- "ui",
29162
- "decoration",
29163
- "vehicle"
29164
29434
  ]
29165
29435
  },
29166
29436
  category: {
@@ -29190,6 +29460,11 @@ var patterns_registry_default = {
29190
29460
  "isometric"
29191
29461
  ]
29192
29462
  },
29463
+ variant: {
29464
+ types: [
29465
+ "string"
29466
+ ]
29467
+ },
29193
29468
  dimension: {
29194
29469
  types: [
29195
29470
  "string"
@@ -29210,6 +29485,16 @@ var patterns_registry_default = {
29210
29485
  "8:1"
29211
29486
  ]
29212
29487
  },
29488
+ atlas: {
29489
+ types: [
29490
+ "asset"
29491
+ ]
29492
+ },
29493
+ sprite: {
29494
+ types: [
29495
+ "string"
29496
+ ]
29497
+ },
29213
29498
  name: {
29214
29499
  types: [
29215
29500
  "string"
@@ -29222,7 +29507,9 @@ var patterns_registry_default = {
29222
29507
  }
29223
29508
  },
29224
29509
  propertyRequired: [
29225
- "url"
29510
+ "url",
29511
+ "role",
29512
+ "category"
29226
29513
  ]
29227
29514
  },
29228
29515
  label: {
@@ -29815,18 +30102,6 @@ var patterns_registry_default = {
29815
30102
  role: {
29816
30103
  types: [
29817
30104
  "string"
29818
- ],
29819
- enumValues: [
29820
- "player",
29821
- "enemy",
29822
- "npc",
29823
- "item",
29824
- "tile",
29825
- "projectile",
29826
- "effect",
29827
- "ui",
29828
- "decoration",
29829
- "vehicle"
29830
30105
  ]
29831
30106
  },
29832
30107
  category: {
@@ -29856,6 +30131,11 @@ var patterns_registry_default = {
29856
30131
  "isometric"
29857
30132
  ]
29858
30133
  },
30134
+ variant: {
30135
+ types: [
30136
+ "string"
30137
+ ]
30138
+ },
29859
30139
  dimension: {
29860
30140
  types: [
29861
30141
  "string"
@@ -29876,6 +30156,16 @@ var patterns_registry_default = {
29876
30156
  "8:1"
29877
30157
  ]
29878
30158
  },
30159
+ atlas: {
30160
+ types: [
30161
+ "asset"
30162
+ ]
30163
+ },
30164
+ sprite: {
30165
+ types: [
30166
+ "string"
30167
+ ]
30168
+ },
29879
30169
  name: {
29880
30170
  types: [
29881
30171
  "string"
@@ -29888,7 +30178,9 @@ var patterns_registry_default = {
29888
30178
  }
29889
30179
  },
29890
30180
  propertyRequired: [
29891
- "url"
30181
+ "url",
30182
+ "role",
30183
+ "category"
29892
30184
  ]
29893
30185
  },
29894
30186
  offAsset: {
@@ -29905,18 +30197,6 @@ var patterns_registry_default = {
29905
30197
  role: {
29906
30198
  types: [
29907
30199
  "string"
29908
- ],
29909
- enumValues: [
29910
- "player",
29911
- "enemy",
29912
- "npc",
29913
- "item",
29914
- "tile",
29915
- "projectile",
29916
- "effect",
29917
- "ui",
29918
- "decoration",
29919
- "vehicle"
29920
30200
  ]
29921
30201
  },
29922
30202
  category: {
@@ -29946,6 +30226,11 @@ var patterns_registry_default = {
29946
30226
  "isometric"
29947
30227
  ]
29948
30228
  },
30229
+ variant: {
30230
+ types: [
30231
+ "string"
30232
+ ]
30233
+ },
29949
30234
  dimension: {
29950
30235
  types: [
29951
30236
  "string"
@@ -29966,6 +30251,16 @@ var patterns_registry_default = {
29966
30251
  "8:1"
29967
30252
  ]
29968
30253
  },
30254
+ atlas: {
30255
+ types: [
30256
+ "asset"
30257
+ ]
30258
+ },
30259
+ sprite: {
30260
+ types: [
30261
+ "string"
30262
+ ]
30263
+ },
29969
30264
  name: {
29970
30265
  types: [
29971
30266
  "string"
@@ -29978,7 +30273,9 @@ var patterns_registry_default = {
29978
30273
  }
29979
30274
  },
29980
30275
  propertyRequired: [
29981
- "url"
30276
+ "url",
30277
+ "role",
30278
+ "category"
29982
30279
  ]
29983
30280
  }
29984
30281
  }
@@ -30047,18 +30344,6 @@ var patterns_registry_default = {
30047
30344
  role: {
30048
30345
  types: [
30049
30346
  "string"
30050
- ],
30051
- enumValues: [
30052
- "player",
30053
- "enemy",
30054
- "npc",
30055
- "item",
30056
- "tile",
30057
- "projectile",
30058
- "effect",
30059
- "ui",
30060
- "decoration",
30061
- "vehicle"
30062
30347
  ]
30063
30348
  },
30064
30349
  category: {
@@ -30088,6 +30373,11 @@ var patterns_registry_default = {
30088
30373
  "isometric"
30089
30374
  ]
30090
30375
  },
30376
+ variant: {
30377
+ types: [
30378
+ "string"
30379
+ ]
30380
+ },
30091
30381
  dimension: {
30092
30382
  types: [
30093
30383
  "string"
@@ -30108,6 +30398,16 @@ var patterns_registry_default = {
30108
30398
  "8:1"
30109
30399
  ]
30110
30400
  },
30401
+ atlas: {
30402
+ types: [
30403
+ "asset"
30404
+ ]
30405
+ },
30406
+ sprite: {
30407
+ types: [
30408
+ "string"
30409
+ ]
30410
+ },
30111
30411
  name: {
30112
30412
  types: [
30113
30413
  "string"
@@ -30120,7 +30420,9 @@ var patterns_registry_default = {
30120
30420
  }
30121
30421
  },
30122
30422
  required: [
30123
- "url"
30423
+ "url",
30424
+ "role",
30425
+ "category"
30124
30426
  ]
30125
30427
  },
30126
30428
  stateMachine: {
@@ -30215,18 +30517,6 @@ var patterns_registry_default = {
30215
30517
  role: {
30216
30518
  types: [
30217
30519
  "string"
30218
- ],
30219
- enumValues: [
30220
- "player",
30221
- "enemy",
30222
- "npc",
30223
- "item",
30224
- "tile",
30225
- "projectile",
30226
- "effect",
30227
- "ui",
30228
- "decoration",
30229
- "vehicle"
30230
30520
  ]
30231
30521
  },
30232
30522
  category: {
@@ -30256,6 +30546,11 @@ var patterns_registry_default = {
30256
30546
  "isometric"
30257
30547
  ]
30258
30548
  },
30549
+ variant: {
30550
+ types: [
30551
+ "string"
30552
+ ]
30553
+ },
30259
30554
  dimension: {
30260
30555
  types: [
30261
30556
  "string"
@@ -30276,6 +30571,16 @@ var patterns_registry_default = {
30276
30571
  "8:1"
30277
30572
  ]
30278
30573
  },
30574
+ atlas: {
30575
+ types: [
30576
+ "asset"
30577
+ ]
30578
+ },
30579
+ sprite: {
30580
+ types: [
30581
+ "string"
30582
+ ]
30583
+ },
30279
30584
  name: {
30280
30585
  types: [
30281
30586
  "string"
@@ -30288,7 +30593,9 @@ var patterns_registry_default = {
30288
30593
  }
30289
30594
  },
30290
30595
  propertyRequired: [
30291
- "url"
30596
+ "url",
30597
+ "role",
30598
+ "category"
30292
30599
  ]
30293
30600
  },
30294
30601
  className: {
@@ -30387,18 +30694,6 @@ var patterns_registry_default = {
30387
30694
  role: {
30388
30695
  types: [
30389
30696
  "string"
30390
- ],
30391
- enumValues: [
30392
- "player",
30393
- "enemy",
30394
- "npc",
30395
- "item",
30396
- "tile",
30397
- "projectile",
30398
- "effect",
30399
- "ui",
30400
- "decoration",
30401
- "vehicle"
30402
30697
  ]
30403
30698
  },
30404
30699
  category: {
@@ -30428,6 +30723,11 @@ var patterns_registry_default = {
30428
30723
  "isometric"
30429
30724
  ]
30430
30725
  },
30726
+ variant: {
30727
+ types: [
30728
+ "string"
30729
+ ]
30730
+ },
30431
30731
  dimension: {
30432
30732
  types: [
30433
30733
  "string"
@@ -30448,6 +30748,16 @@ var patterns_registry_default = {
30448
30748
  "8:1"
30449
30749
  ]
30450
30750
  },
30751
+ atlas: {
30752
+ types: [
30753
+ "asset"
30754
+ ]
30755
+ },
30756
+ sprite: {
30757
+ types: [
30758
+ "string"
30759
+ ]
30760
+ },
30451
30761
  name: {
30452
30762
  types: [
30453
30763
  "string"
@@ -30460,7 +30770,9 @@ var patterns_registry_default = {
30460
30770
  }
30461
30771
  },
30462
30772
  required: [
30463
- "url"
30773
+ "url",
30774
+ "role",
30775
+ "category"
30464
30776
  ]
30465
30777
  },
30466
30778
  stateMachine: {
@@ -30538,18 +30850,6 @@ var patterns_registry_default = {
30538
30850
  role: {
30539
30851
  types: [
30540
30852
  "string"
30541
- ],
30542
- enumValues: [
30543
- "player",
30544
- "enemy",
30545
- "npc",
30546
- "item",
30547
- "tile",
30548
- "projectile",
30549
- "effect",
30550
- "ui",
30551
- "decoration",
30552
- "vehicle"
30553
30853
  ]
30554
30854
  },
30555
30855
  category: {
@@ -30579,6 +30879,11 @@ var patterns_registry_default = {
30579
30879
  "isometric"
30580
30880
  ]
30581
30881
  },
30882
+ variant: {
30883
+ types: [
30884
+ "string"
30885
+ ]
30886
+ },
30582
30887
  dimension: {
30583
30888
  types: [
30584
30889
  "string"
@@ -30599,6 +30904,16 @@ var patterns_registry_default = {
30599
30904
  "8:1"
30600
30905
  ]
30601
30906
  },
30907
+ atlas: {
30908
+ types: [
30909
+ "asset"
30910
+ ]
30911
+ },
30912
+ sprite: {
30913
+ types: [
30914
+ "string"
30915
+ ]
30916
+ },
30602
30917
  name: {
30603
30918
  types: [
30604
30919
  "string"
@@ -30611,7 +30926,9 @@ var patterns_registry_default = {
30611
30926
  }
30612
30927
  },
30613
30928
  required: [
30614
- "url"
30929
+ "url",
30930
+ "role",
30931
+ "category"
30615
30932
  ]
30616
30933
  },
30617
30934
  stateMachine: {
@@ -30766,18 +31083,6 @@ var patterns_registry_default = {
30766
31083
  role: {
30767
31084
  types: [
30768
31085
  "string"
30769
- ],
30770
- enumValues: [
30771
- "player",
30772
- "enemy",
30773
- "npc",
30774
- "item",
30775
- "tile",
30776
- "projectile",
30777
- "effect",
30778
- "ui",
30779
- "decoration",
30780
- "vehicle"
30781
31086
  ]
30782
31087
  },
30783
31088
  category: {
@@ -30807,6 +31112,11 @@ var patterns_registry_default = {
30807
31112
  "isometric"
30808
31113
  ]
30809
31114
  },
31115
+ variant: {
31116
+ types: [
31117
+ "string"
31118
+ ]
31119
+ },
30810
31120
  dimension: {
30811
31121
  types: [
30812
31122
  "string"
@@ -30827,6 +31137,16 @@ var patterns_registry_default = {
30827
31137
  "8:1"
30828
31138
  ]
30829
31139
  },
31140
+ atlas: {
31141
+ types: [
31142
+ "asset"
31143
+ ]
31144
+ },
31145
+ sprite: {
31146
+ types: [
31147
+ "string"
31148
+ ]
31149
+ },
30830
31150
  name: {
30831
31151
  types: [
30832
31152
  "string"
@@ -30839,7 +31159,9 @@ var patterns_registry_default = {
30839
31159
  }
30840
31160
  },
30841
31161
  required: [
30842
- "url"
31162
+ "url",
31163
+ "role",
31164
+ "category"
30843
31165
  ]
30844
31166
  },
30845
31167
  stateMachine: {
@@ -31086,18 +31408,6 @@ var patterns_registry_default = {
31086
31408
  role: {
31087
31409
  types: [
31088
31410
  "string"
31089
- ],
31090
- enumValues: [
31091
- "player",
31092
- "enemy",
31093
- "npc",
31094
- "item",
31095
- "tile",
31096
- "projectile",
31097
- "effect",
31098
- "ui",
31099
- "decoration",
31100
- "vehicle"
31101
31411
  ]
31102
31412
  },
31103
31413
  category: {
@@ -31127,6 +31437,11 @@ var patterns_registry_default = {
31127
31437
  "isometric"
31128
31438
  ]
31129
31439
  },
31440
+ variant: {
31441
+ types: [
31442
+ "string"
31443
+ ]
31444
+ },
31130
31445
  dimension: {
31131
31446
  types: [
31132
31447
  "string"
@@ -31147,6 +31462,16 @@ var patterns_registry_default = {
31147
31462
  "8:1"
31148
31463
  ]
31149
31464
  },
31465
+ atlas: {
31466
+ types: [
31467
+ "asset"
31468
+ ]
31469
+ },
31470
+ sprite: {
31471
+ types: [
31472
+ "string"
31473
+ ]
31474
+ },
31150
31475
  name: {
31151
31476
  types: [
31152
31477
  "string"
@@ -31159,7 +31484,9 @@ var patterns_registry_default = {
31159
31484
  }
31160
31485
  },
31161
31486
  required: [
31162
- "url"
31487
+ "url",
31488
+ "role",
31489
+ "category"
31163
31490
  ]
31164
31491
  },
31165
31492
  stateMachine: {
@@ -31284,18 +31611,6 @@ var patterns_registry_default = {
31284
31611
  role: {
31285
31612
  types: [
31286
31613
  "string"
31287
- ],
31288
- enumValues: [
31289
- "player",
31290
- "enemy",
31291
- "npc",
31292
- "item",
31293
- "tile",
31294
- "projectile",
31295
- "effect",
31296
- "ui",
31297
- "decoration",
31298
- "vehicle"
31299
31614
  ]
31300
31615
  },
31301
31616
  category: {
@@ -31325,6 +31640,11 @@ var patterns_registry_default = {
31325
31640
  "isometric"
31326
31641
  ]
31327
31642
  },
31643
+ variant: {
31644
+ types: [
31645
+ "string"
31646
+ ]
31647
+ },
31328
31648
  dimension: {
31329
31649
  types: [
31330
31650
  "string"
@@ -31345,6 +31665,16 @@ var patterns_registry_default = {
31345
31665
  "8:1"
31346
31666
  ]
31347
31667
  },
31668
+ atlas: {
31669
+ types: [
31670
+ "asset"
31671
+ ]
31672
+ },
31673
+ sprite: {
31674
+ types: [
31675
+ "string"
31676
+ ]
31677
+ },
31348
31678
  name: {
31349
31679
  types: [
31350
31680
  "string"
@@ -31357,7 +31687,9 @@ var patterns_registry_default = {
31357
31687
  }
31358
31688
  },
31359
31689
  required: [
31360
- "url"
31690
+ "url",
31691
+ "role",
31692
+ "category"
31361
31693
  ]
31362
31694
  },
31363
31695
  stateMachine: {
@@ -31437,18 +31769,6 @@ var patterns_registry_default = {
31437
31769
  role: {
31438
31770
  types: [
31439
31771
  "string"
31440
- ],
31441
- enumValues: [
31442
- "player",
31443
- "enemy",
31444
- "npc",
31445
- "item",
31446
- "tile",
31447
- "projectile",
31448
- "effect",
31449
- "ui",
31450
- "decoration",
31451
- "vehicle"
31452
31772
  ]
31453
31773
  },
31454
31774
  category: {
@@ -31478,6 +31798,11 @@ var patterns_registry_default = {
31478
31798
  "isometric"
31479
31799
  ]
31480
31800
  },
31801
+ variant: {
31802
+ types: [
31803
+ "string"
31804
+ ]
31805
+ },
31481
31806
  dimension: {
31482
31807
  types: [
31483
31808
  "string"
@@ -31498,6 +31823,16 @@ var patterns_registry_default = {
31498
31823
  "8:1"
31499
31824
  ]
31500
31825
  },
31826
+ atlas: {
31827
+ types: [
31828
+ "asset"
31829
+ ]
31830
+ },
31831
+ sprite: {
31832
+ types: [
31833
+ "string"
31834
+ ]
31835
+ },
31501
31836
  name: {
31502
31837
  types: [
31503
31838
  "string"
@@ -31510,7 +31845,9 @@ var patterns_registry_default = {
31510
31845
  }
31511
31846
  },
31512
31847
  required: [
31513
- "url"
31848
+ "url",
31849
+ "role",
31850
+ "category"
31514
31851
  ]
31515
31852
  },
31516
31853
  stateMachine: {
@@ -32300,7 +32637,8 @@ var patterns_registry_default = {
32300
32637
  category: "component",
32301
32638
  tier: "atoms",
32302
32639
  family: "core",
32303
- 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.",
32640
+ description: "Aside \u2014 a secondary side panel that hosts navigation links or supplementary content alongside a main content area.",
32641
+ capabilities: "settings navigation sidebar, preferences menu panel, account settings nav, secondary panel, side navigation rail",
32304
32642
  suggestedFor: [
32305
32643
  "aside"
32306
32644
  ],
@@ -32557,7 +32895,8 @@ var patterns_registry_default = {
32557
32895
  category: "display",
32558
32896
  tier: "molecules",
32559
32897
  family: "core",
32560
- description: "TableView component",
32898
+ description: "TableView \u2014 sortable, selectable data table rendering rows over configurable columns, with inline row actions and grouping.",
32899
+ capabilities: "admin console table, records list, CRUD data table, user list, manage-users grid, sortable columns, row selection with bulk actions, grouped list view",
32561
32900
  suggestedFor: [
32562
32901
  "table",
32563
32902
  "view",
@@ -32989,7 +33328,7 @@ var patterns_registry_default = {
32989
33328
  types: [
32990
33329
  "function"
32991
33330
  ],
32992
- description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop.',
33331
+ 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.',
32993
33332
  kind: "callback",
32994
33333
  callbackArgs: [
32995
33334
  {
@@ -34237,18 +34576,6 @@ var patterns_registry_default = {
34237
34576
  role: {
34238
34577
  types: [
34239
34578
  "string"
34240
- ],
34241
- enumValues: [
34242
- "player",
34243
- "enemy",
34244
- "npc",
34245
- "item",
34246
- "tile",
34247
- "projectile",
34248
- "effect",
34249
- "ui",
34250
- "decoration",
34251
- "vehicle"
34252
34579
  ]
34253
34580
  },
34254
34581
  category: {
@@ -34278,6 +34605,11 @@ var patterns_registry_default = {
34278
34605
  "isometric"
34279
34606
  ]
34280
34607
  },
34608
+ variant: {
34609
+ types: [
34610
+ "string"
34611
+ ]
34612
+ },
34281
34613
  dimension: {
34282
34614
  types: [
34283
34615
  "string"
@@ -34298,6 +34630,16 @@ var patterns_registry_default = {
34298
34630
  "8:1"
34299
34631
  ]
34300
34632
  },
34633
+ atlas: {
34634
+ types: [
34635
+ "asset"
34636
+ ]
34637
+ },
34638
+ sprite: {
34639
+ types: [
34640
+ "string"
34641
+ ]
34642
+ },
34301
34643
  name: {
34302
34644
  types: [
34303
34645
  "string"
@@ -34310,7 +34652,9 @@ var patterns_registry_default = {
34310
34652
  }
34311
34653
  },
34312
34654
  propertyRequired: [
34313
- "url"
34655
+ "url",
34656
+ "role",
34657
+ "category"
34314
34658
  ]
34315
34659
  },
34316
34660
  tileClickEvent: {
@@ -34550,18 +34894,6 @@ var patterns_registry_default = {
34550
34894
  role: {
34551
34895
  types: [
34552
34896
  "string"
34553
- ],
34554
- enumValues: [
34555
- "player",
34556
- "enemy",
34557
- "npc",
34558
- "item",
34559
- "tile",
34560
- "projectile",
34561
- "effect",
34562
- "ui",
34563
- "decoration",
34564
- "vehicle"
34565
34897
  ]
34566
34898
  },
34567
34899
  category: {
@@ -34591,6 +34923,11 @@ var patterns_registry_default = {
34591
34923
  "isometric"
34592
34924
  ]
34593
34925
  },
34926
+ variant: {
34927
+ types: [
34928
+ "string"
34929
+ ]
34930
+ },
34594
34931
  dimension: {
34595
34932
  types: [
34596
34933
  "string"
@@ -34611,6 +34948,16 @@ var patterns_registry_default = {
34611
34948
  "8:1"
34612
34949
  ]
34613
34950
  },
34951
+ atlas: {
34952
+ types: [
34953
+ "asset"
34954
+ ]
34955
+ },
34956
+ sprite: {
34957
+ types: [
34958
+ "string"
34959
+ ]
34960
+ },
34614
34961
  name: {
34615
34962
  types: [
34616
34963
  "string"
@@ -34623,7 +34970,9 @@ var patterns_registry_default = {
34623
34970
  }
34624
34971
  },
34625
34972
  required: [
34626
- "url"
34973
+ "url",
34974
+ "role",
34975
+ "category"
34627
34976
  ]
34628
34977
  },
34629
34978
  variant: {
@@ -34773,18 +35122,6 @@ var patterns_registry_default = {
34773
35122
  role: {
34774
35123
  types: [
34775
35124
  "string"
34776
- ],
34777
- enumValues: [
34778
- "player",
34779
- "enemy",
34780
- "npc",
34781
- "item",
34782
- "tile",
34783
- "projectile",
34784
- "effect",
34785
- "ui",
34786
- "decoration",
34787
- "vehicle"
34788
35125
  ]
34789
35126
  },
34790
35127
  category: {
@@ -34814,6 +35151,11 @@ var patterns_registry_default = {
34814
35151
  "isometric"
34815
35152
  ]
34816
35153
  },
35154
+ variant: {
35155
+ types: [
35156
+ "string"
35157
+ ]
35158
+ },
34817
35159
  dimension: {
34818
35160
  types: [
34819
35161
  "string"
@@ -34834,6 +35176,16 @@ var patterns_registry_default = {
34834
35176
  "8:1"
34835
35177
  ]
34836
35178
  },
35179
+ atlas: {
35180
+ types: [
35181
+ "asset"
35182
+ ]
35183
+ },
35184
+ sprite: {
35185
+ types: [
35186
+ "string"
35187
+ ]
35188
+ },
34837
35189
  name: {
34838
35190
  types: [
34839
35191
  "string"
@@ -34846,7 +35198,9 @@ var patterns_registry_default = {
34846
35198
  }
34847
35199
  },
34848
35200
  required: [
34849
- "url"
35201
+ "url",
35202
+ "role",
35203
+ "category"
34850
35204
  ]
34851
35205
  }
34852
35206
  },
@@ -34903,18 +35257,6 @@ var patterns_registry_default = {
34903
35257
  role: {
34904
35258
  types: [
34905
35259
  "string"
34906
- ],
34907
- enumValues: [
34908
- "player",
34909
- "enemy",
34910
- "npc",
34911
- "item",
34912
- "tile",
34913
- "projectile",
34914
- "effect",
34915
- "ui",
34916
- "decoration",
34917
- "vehicle"
34918
35260
  ]
34919
35261
  },
34920
35262
  category: {
@@ -34944,6 +35286,11 @@ var patterns_registry_default = {
34944
35286
  "isometric"
34945
35287
  ]
34946
35288
  },
35289
+ variant: {
35290
+ types: [
35291
+ "string"
35292
+ ]
35293
+ },
34947
35294
  dimension: {
34948
35295
  types: [
34949
35296
  "string"
@@ -34964,6 +35311,16 @@ var patterns_registry_default = {
34964
35311
  "8:1"
34965
35312
  ]
34966
35313
  },
35314
+ atlas: {
35315
+ types: [
35316
+ "asset"
35317
+ ]
35318
+ },
35319
+ sprite: {
35320
+ types: [
35321
+ "string"
35322
+ ]
35323
+ },
34967
35324
  name: {
34968
35325
  types: [
34969
35326
  "string"
@@ -34976,7 +35333,9 @@ var patterns_registry_default = {
34976
35333
  }
34977
35334
  },
34978
35335
  propertyRequired: [
34979
- "url"
35336
+ "url",
35337
+ "role",
35338
+ "category"
34980
35339
  ]
34981
35340
  },
34982
35341
  icon: {
@@ -37660,7 +38019,8 @@ var patterns_registry_default = {
37660
38019
  category: "display",
37661
38020
  tier: "atoms",
37662
38021
  family: "marketing",
37663
- description: "MarketingStatCard component",
38022
+ description: "MarketingStatCard \u2014 a single number-highlight card pairing a large value with a label and trend delta.",
38023
+ capabilities: "KPI card, metric tile, dashboard stat card, number card, big-number widget, stat highlight, key metric callout",
37664
38024
  suggestedFor: [
37665
38025
  "marketing",
37666
38026
  "stat",
@@ -38595,31 +38955,31 @@ var patterns_registry_default = {
38595
38955
  types: [
38596
38956
  "number"
38597
38957
  ],
38598
- description: "Rect width in px."
38958
+ description: "Rect width in world units (fractions of `projector.tileWidth`)."
38599
38959
  },
38600
38960
  height: {
38601
38961
  types: [
38602
38962
  "number"
38603
38963
  ],
38604
- description: "Rect height in px."
38964
+ description: "Rect height in world units (fractions of `projector.tileWidth`)."
38605
38965
  },
38606
38966
  radiusX: {
38607
38967
  types: [
38608
38968
  "number"
38609
38969
  ],
38610
- description: "Ellipse horizontal radius in px."
38970
+ description: "Ellipse horizontal radius in world units (fractions of `projector.tileWidth`)."
38611
38971
  },
38612
38972
  radiusY: {
38613
38973
  types: [
38614
38974
  "number"
38615
38975
  ],
38616
- description: "Ellipse vertical radius in px; omitted \u2192 `radiusX` (a circle)."
38976
+ description: "Ellipse vertical radius in world units; omitted \u2192 `radiusX` (a circle)."
38617
38977
  },
38618
38978
  offsetX: {
38619
38979
  types: [
38620
38980
  "number"
38621
38981
  ],
38622
- description: "Fine px nudge from the anchor point (e.g. a disc drawn at `groundY - 8*scale`)."
38982
+ description: "Fine nudge from the anchor point in world units."
38623
38983
  },
38624
38984
  offsetY: {
38625
38985
  types: [
@@ -38631,7 +38991,7 @@ var patterns_registry_default = {
38631
38991
  types: [
38632
38992
  "array"
38633
38993
  ],
38634
- description: "Poly vertices as px offsets relative to the cell's projected top-left.",
38994
+ description: "Poly vertices as world-unit offsets relative to the cell's projected top-left.",
38635
38995
  items: {
38636
38996
  types: [
38637
38997
  "object"
@@ -38735,18 +39095,6 @@ var patterns_registry_default = {
38735
39095
  role: {
38736
39096
  types: [
38737
39097
  "string"
38738
- ],
38739
- enumValues: [
38740
- "player",
38741
- "enemy",
38742
- "npc",
38743
- "item",
38744
- "tile",
38745
- "projectile",
38746
- "effect",
38747
- "ui",
38748
- "decoration",
38749
- "vehicle"
38750
39098
  ]
38751
39099
  },
38752
39100
  category: {
@@ -38776,6 +39124,11 @@ var patterns_registry_default = {
38776
39124
  "isometric"
38777
39125
  ]
38778
39126
  },
39127
+ variant: {
39128
+ types: [
39129
+ "string"
39130
+ ]
39131
+ },
38779
39132
  dimension: {
38780
39133
  types: [
38781
39134
  "string"
@@ -38796,6 +39149,16 @@ var patterns_registry_default = {
38796
39149
  "8:1"
38797
39150
  ]
38798
39151
  },
39152
+ atlas: {
39153
+ types: [
39154
+ "asset"
39155
+ ]
39156
+ },
39157
+ sprite: {
39158
+ types: [
39159
+ "string"
39160
+ ]
39161
+ },
38799
39162
  name: {
38800
39163
  types: [
38801
39164
  "string"
@@ -38808,7 +39171,9 @@ var patterns_registry_default = {
38808
39171
  }
38809
39172
  },
38810
39173
  propertyRequired: [
38811
- "url"
39174
+ "url",
39175
+ "role",
39176
+ "category"
38812
39177
  ]
38813
39178
  },
38814
39179
  anchor: {
@@ -39222,18 +39587,6 @@ var patterns_registry_default = {
39222
39587
  role: {
39223
39588
  types: [
39224
39589
  "string"
39225
- ],
39226
- enumValues: [
39227
- "player",
39228
- "enemy",
39229
- "npc",
39230
- "item",
39231
- "tile",
39232
- "projectile",
39233
- "effect",
39234
- "ui",
39235
- "decoration",
39236
- "vehicle"
39237
39590
  ]
39238
39591
  },
39239
39592
  category: {
@@ -39263,6 +39616,11 @@ var patterns_registry_default = {
39263
39616
  "isometric"
39264
39617
  ]
39265
39618
  },
39619
+ variant: {
39620
+ types: [
39621
+ "string"
39622
+ ]
39623
+ },
39266
39624
  dimension: {
39267
39625
  types: [
39268
39626
  "string"
@@ -39283,6 +39641,16 @@ var patterns_registry_default = {
39283
39641
  "8:1"
39284
39642
  ]
39285
39643
  },
39644
+ atlas: {
39645
+ types: [
39646
+ "asset"
39647
+ ]
39648
+ },
39649
+ sprite: {
39650
+ types: [
39651
+ "string"
39652
+ ]
39653
+ },
39286
39654
  name: {
39287
39655
  types: [
39288
39656
  "string"
@@ -39295,7 +39663,9 @@ var patterns_registry_default = {
39295
39663
  }
39296
39664
  },
39297
39665
  required: [
39298
- "url"
39666
+ "url",
39667
+ "role",
39668
+ "category"
39299
39669
  ]
39300
39670
  },
39301
39671
  anchor: {
@@ -39574,18 +39944,6 @@ var patterns_registry_default = {
39574
39944
  role: {
39575
39945
  types: [
39576
39946
  "string"
39577
- ],
39578
- enumValues: [
39579
- "player",
39580
- "enemy",
39581
- "npc",
39582
- "item",
39583
- "tile",
39584
- "projectile",
39585
- "effect",
39586
- "ui",
39587
- "decoration",
39588
- "vehicle"
39589
39947
  ]
39590
39948
  },
39591
39949
  category: {
@@ -39615,6 +39973,11 @@ var patterns_registry_default = {
39615
39973
  "isometric"
39616
39974
  ]
39617
39975
  },
39976
+ variant: {
39977
+ types: [
39978
+ "string"
39979
+ ]
39980
+ },
39618
39981
  dimension: {
39619
39982
  types: [
39620
39983
  "string"
@@ -39635,6 +39998,16 @@ var patterns_registry_default = {
39635
39998
  "8:1"
39636
39999
  ]
39637
40000
  },
40001
+ atlas: {
40002
+ types: [
40003
+ "asset"
40004
+ ]
40005
+ },
40006
+ sprite: {
40007
+ types: [
40008
+ "string"
40009
+ ]
40010
+ },
39638
40011
  name: {
39639
40012
  types: [
39640
40013
  "string"
@@ -39647,7 +40020,9 @@ var patterns_registry_default = {
39647
40020
  }
39648
40021
  },
39649
40022
  propertyRequired: [
39650
- "url"
40023
+ "url",
40024
+ "role",
40025
+ "category"
39651
40026
  ]
39652
40027
  },
39653
40028
  backgroundColor: {
@@ -39822,6 +40197,74 @@ var patterns_registry_default = {
39822
40197
  }
39823
40198
  },
39824
40199
  drawHost: true
40200
+ },
40201
+ presence: {
40202
+ type: "presence",
40203
+ category: "component",
40204
+ tier: "atoms",
40205
+ family: "core",
40206
+ description: "Presence component",
40207
+ suggestedFor: [
40208
+ "presence"
40209
+ ],
40210
+ typicalSize: "small",
40211
+ propsSchema: {
40212
+ show: {
40213
+ types: [
40214
+ "boolean"
40215
+ ],
40216
+ description: "When false, the exit animation runs, then children unmount.",
40217
+ required: true
40218
+ },
40219
+ className: {
40220
+ types: [
40221
+ "string"
40222
+ ],
40223
+ description: "className prop"
40224
+ },
40225
+ children: {
40226
+ types: [
40227
+ "node"
40228
+ ],
40229
+ description: "children prop",
40230
+ required: true
40231
+ }
40232
+ }
40233
+ },
40234
+ "page-transition": {
40235
+ type: "page-transition",
40236
+ category: "component",
40237
+ tier: "molecules",
40238
+ family: "core",
40239
+ description: "PageTransition component",
40240
+ suggestedFor: [
40241
+ "page",
40242
+ "transition",
40243
+ "page transition"
40244
+ ],
40245
+ typicalSize: "medium",
40246
+ propsSchema: {
40247
+ locationKey: {
40248
+ types: [
40249
+ "string"
40250
+ ],
40251
+ description: "Value that changes on navigation (e.g. `location.pathname`).",
40252
+ required: true
40253
+ },
40254
+ children: {
40255
+ types: [
40256
+ "node"
40257
+ ],
40258
+ description: "children prop",
40259
+ required: true
40260
+ },
40261
+ className: {
40262
+ types: [
40263
+ "string"
40264
+ ],
40265
+ description: "className prop"
40266
+ }
40267
+ }
39825
40268
  }
39826
40269
  },
39827
40270
  categories: [
@@ -40449,7 +40892,7 @@ var integrators_registry_default = {
40449
40892
  // src/patterns/component-mapping.json
40450
40893
  var component_mapping_default = {
40451
40894
  version: "1.0.0",
40452
- exportedAt: "2026-07-13T15:27:57.365Z",
40895
+ exportedAt: "2026-07-21T09:54:57.379Z",
40453
40896
  mappings: {
40454
40897
  "page-header": {
40455
40898
  component: "PageHeader",
@@ -40487,8 +40930,8 @@ var component_mapping_default = {
40487
40930
  category: "form"
40488
40931
  },
40489
40932
  "form-actions": {
40490
- component: "FormActions",
40491
- importPath: "@/components/core/molecules/FormSection",
40933
+ component: "ButtonGroup",
40934
+ importPath: "@/components/core/molecules/ButtonGroup",
40492
40935
  category: "form"
40493
40936
  },
40494
40937
  "filter-group": {
@@ -41797,6 +42240,16 @@ var component_mapping_default = {
41797
42240
  component: "Canvas",
41798
42241
  importPath: "@/components/game/molecules/Canvas",
41799
42242
  category: "game"
42243
+ },
42244
+ presence: {
42245
+ component: "Presence",
42246
+ importPath: "@/components/core/atoms/Presence",
42247
+ category: "component"
42248
+ },
42249
+ "page-transition": {
42250
+ component: "PageTransition",
42251
+ importPath: "@/components/core/molecules/PageTransition",
42252
+ category: "component"
41800
42253
  }
41801
42254
  }
41802
42255
  };
@@ -41804,7 +42257,7 @@ var component_mapping_default = {
41804
42257
  // src/patterns/event-contracts.json
41805
42258
  var event_contracts_default = {
41806
42259
  version: "1.0.0",
41807
- exportedAt: "2026-07-13T15:27:57.365Z",
42260
+ exportedAt: "2026-07-21T09:54:57.379Z",
41808
42261
  contracts: {
41809
42262
  form: {
41810
42263
  emits: [
@@ -41897,7 +42350,14 @@ var event_contracts_default = {
41897
42350
  "form-actions": {
41898
42351
  emits: [
41899
42352
  {
41900
- event: "TOGGLE_COLLAPSE",
42353
+ event: "DISPATCH",
42354
+ trigger: "action",
42355
+ payload: {
42356
+ type: "object"
42357
+ }
42358
+ },
42359
+ {
42360
+ event: "NAVIGATE",
41901
42361
  trigger: "action",
41902
42362
  payload: {
41903
42363
  type: "object"
@@ -41905,7 +42365,7 @@ var event_contracts_default = {
41905
42365
  }
41906
42366
  ],
41907
42367
  requires: [],
41908
- entityAware: false,
42368
+ entityAware: true,
41909
42369
  configDriven: true
41910
42370
  },
41911
42371
  "entity-table": {
@@ -43097,11 +43557,13 @@ var PATTERN_TYPES = [
43097
43557
  "orbital-visualization",
43098
43558
  "overlay",
43099
43559
  "page-header",
43560
+ "page-transition",
43100
43561
  "pagination",
43101
43562
  "pattern-tile",
43102
43563
  "physics-canvas",
43103
43564
  "popover",
43104
43565
  "positioned-canvas",
43566
+ "presence",
43105
43567
  "pricing-card",
43106
43568
  "pricing-grid",
43107
43569
  "pricing-organism",
@@ -43291,10 +43753,13 @@ var ORB_ALLOWED_ENTITY_PATTERNS = /* @__PURE__ */ new Set([
43291
43753
  "data-grid",
43292
43754
  "search-input",
43293
43755
  "form-section",
43294
- "meter"
43756
+ "meter",
43757
+ "table-view",
43758
+ "filter-group",
43759
+ "timeline",
43760
+ "media-gallery"
43295
43761
  ]);
43296
43762
  var ORB_EXCLUDED_CATEGORIES = /* @__PURE__ */ new Set([
43297
- "game",
43298
43763
  "debug",
43299
43764
  "template"
43300
43765
  ]);
@@ -43374,6 +43839,41 @@ function getOrbAllowedPatternsFiltered(patternNames) {
43374
43839
  }
43375
43840
  return lines.join("\n");
43376
43841
  }
43842
+ var JsonValueSchema = z.lazy(
43843
+ () => z.union([z.string(), z.number(), z.boolean(), z.null(), z.array(JsonValueSchema), z.record(JsonValueSchema)])
43844
+ );
43845
+ function isJsonObject(value) {
43846
+ return value !== null && typeof value === "object" && !Array.isArray(value);
43847
+ }
43848
+ function isJsonArray(value) {
43849
+ return Array.isArray(value);
43850
+ }
43851
+
43852
+ // src/patterns/helpers/render-ui-pattern-types.ts
43853
+ function collectPatternTypeTokens(node, out) {
43854
+ if (!isJsonObject(node)) return;
43855
+ const type = node["type"];
43856
+ if (typeof type === "string" && !type.startsWith("@")) out.add(type);
43857
+ const children = node["children"];
43858
+ if (isJsonArray(children)) {
43859
+ for (const child of children) collectPatternTypeTokens(child, out);
43860
+ }
43861
+ }
43862
+ function collectRenderUiPatternTypes(ir, out) {
43863
+ if (isJsonArray(ir)) {
43864
+ if (ir.length >= 3 && ir[0] === "render-ui" && typeof ir[1] === "string") {
43865
+ collectPatternTypeTokens(ir[2], out);
43866
+ }
43867
+ for (const item of ir) collectRenderUiPatternTypes(item, out);
43868
+ } else if (isJsonObject(ir)) {
43869
+ for (const value of Object.values(ir)) collectRenderUiPatternTypes(value, out);
43870
+ }
43871
+ }
43872
+ function renderUiPatternTypesOf(ir) {
43873
+ const out = /* @__PURE__ */ new Set();
43874
+ collectRenderUiPatternTypes(ir, out);
43875
+ return out;
43876
+ }
43377
43877
 
43378
43878
  // src/patterns/helpers/pattern-recommender.ts
43379
43879
  var DOMAIN_KEYWORDS = {
@@ -43628,6 +44128,6 @@ function propHostsDrawables(schema) {
43628
44128
  return false;
43629
44129
  }
43630
44130
 
43631
- export { COMPONENT_MAPPING, EVENT_CONTRACTS, INTEGRATORS_REGISTRY, PATTERN_REGISTRY, PATTERN_TYPES, buildRecommendationContext, component_mapping_default as componentMapping, event_contracts_default as eventContracts, findCompatiblePatterns, formatRecommendationsForPrompt, generatePatternDescription, getAllPatternTypes, getComponentForPattern, getEmittedEvents, getEntityCardinality, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPatternActionsRef, getPatternDefinition, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, integrators_registry_default as integratorsRegistry, isDrawHostPattern, isDrawablePattern, isEntityAwarePattern, isValidPatternType, patterns_registry_default as patternsRegistry, recommendPatterns, registry };
44131
+ export { COMPONENT_MAPPING, EVENT_CONTRACTS, INTEGRATORS_REGISTRY, PATTERN_REGISTRY, PATTERN_TYPES, buildRecommendationContext, collectRenderUiPatternTypes, component_mapping_default as componentMapping, event_contracts_default as eventContracts, findCompatiblePatterns, formatRecommendationsForPrompt, generatePatternDescription, getAllPatternTypes, getComponentForPattern, getEmittedEvents, getEntityCardinality, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPatternActionsRef, getPatternDefinition, getPatternMetadata, getPatternPropsCompact, getPatternsGroupedByCategory, integrators_registry_default as integratorsRegistry, isDrawHostPattern, isDrawablePattern, isEntityAwarePattern, isValidPatternType, patterns_registry_default as patternsRegistry, recommendPatterns, registry, renderUiPatternTypesOf };
43632
44132
  //# sourceMappingURL=index.js.map
43633
44133
  //# sourceMappingURL=index.js.map