@almadar/patterns 2.49.0 → 2.51.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,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-06-18T09:49:37.603Z",
3
+ "exportedAt": "2026-06-18T22:45:03.741Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -7596,16 +7596,10 @@
7596
7596
  },
7597
7597
  "onValueChange": {
7598
7598
  "types": [
7599
- "function"
7599
+ "function",
7600
+ "string"
7600
7601
  ],
7601
- "description": "Value-based callback receives the selected string (or string[] for multiple).",
7602
- "kind": "callback",
7603
- "callbackArgs": [
7604
- {
7605
- "name": "value",
7606
- "type": "string"
7607
- }
7608
- ]
7602
+ "description": "Value-based change: a React callback (internal use) OR a declarative event key that emits `{ value }` on the bus (render-ui / lolo authoring). Mirrors the `onChange` handler|event convention so it's an event-emitting prop, not a bare callback."
7609
7603
  }
7610
7604
  }
7611
7605
  },
@@ -14281,6 +14275,11 @@
14281
14275
  "object"
14282
14276
  ]
14283
14277
  },
14278
+ "modelUrl": {
14279
+ "types": [
14280
+ "object"
14281
+ ]
14282
+ },
14284
14283
  "unitType": {
14285
14284
  "types": [
14286
14285
  "string"
@@ -14638,6 +14637,11 @@
14638
14637
  "object"
14639
14638
  ]
14640
14639
  },
14640
+ "modelUrl": {
14641
+ "types": [
14642
+ "object"
14643
+ ]
14644
+ },
14641
14645
  "unitType": {
14642
14646
  "types": [
14643
14647
  "string"
@@ -15016,6 +15020,11 @@
15016
15020
  "object"
15017
15021
  ]
15018
15022
  },
15023
+ "modelUrl": {
15024
+ "types": [
15025
+ "object"
15026
+ ]
15027
+ },
15019
15028
  "unitType": {
15020
15029
  "types": [
15021
15030
  "string"
@@ -30539,6 +30548,11 @@
30539
30548
  "asset"
30540
30549
  ]
30541
30550
  },
30551
+ "modelUrl": {
30552
+ "types": [
30553
+ "asset"
30554
+ ]
30555
+ },
30542
30556
  "unitType": {
30543
30557
  "types": [
30544
30558
  "string"
@@ -31072,6 +31086,11 @@
31072
31086
  "asset"
31073
31087
  ]
31074
31088
  },
31089
+ "modelUrl": {
31090
+ "types": [
31091
+ "asset"
31092
+ ]
31093
+ },
31075
31094
  "unitType": {
31076
31095
  "types": [
31077
31096
  "string"
@@ -32749,6 +32768,11 @@
32749
32768
  "asset"
32750
32769
  ]
32751
32770
  },
32771
+ "modelUrl": {
32772
+ "types": [
32773
+ "asset"
32774
+ ]
32775
+ },
32752
32776
  "unitType": {
32753
32777
  "types": [
32754
32778
  "string"
@@ -34448,6 +34472,11 @@
34448
34472
  "asset"
34449
34473
  ]
34450
34474
  },
34475
+ "modelUrl": {
34476
+ "types": [
34477
+ "asset"
34478
+ ]
34479
+ },
34451
34480
  "unitType": {
34452
34481
  "types": [
34453
34482
  "string"
@@ -34825,6 +34854,11 @@
34825
34854
  "asset"
34826
34855
  ]
34827
34856
  },
34857
+ "modelUrl": {
34858
+ "types": [
34859
+ "asset"
34860
+ ]
34861
+ },
34828
34862
  "unitType": {
34829
34863
  "types": [
34830
34864
  "string"
@@ -35175,6 +35209,11 @@
35175
35209
  "asset"
35176
35210
  ]
35177
35211
  },
35212
+ "modelUrl": {
35213
+ "types": [
35214
+ "asset"
35215
+ ]
35216
+ },
35178
35217
  "unitType": {
35179
35218
  "types": [
35180
35219
  "string"
@@ -35525,6 +35564,11 @@
35525
35564
  "asset"
35526
35565
  ]
35527
35566
  },
35567
+ "modelUrl": {
35568
+ "types": [
35569
+ "asset"
35570
+ ]
35571
+ },
35528
35572
  "unitType": {
35529
35573
  "types": [
35530
35574
  "string"
@@ -35875,6 +35919,11 @@
35875
35919
  "asset"
35876
35920
  ]
35877
35921
  },
35922
+ "modelUrl": {
35923
+ "types": [
35924
+ "asset"
35925
+ ]
35926
+ },
35878
35927
  "unitType": {
35879
35928
  "types": [
35880
35929
  "string"
@@ -36212,6 +36261,11 @@
36212
36261
  "asset"
36213
36262
  ]
36214
36263
  },
36264
+ "modelUrl": {
36265
+ "types": [
36266
+ "asset"
36267
+ ]
36268
+ },
36215
36269
  "unitType": {
36216
36270
  "types": [
36217
36271
  "string"
@@ -37595,6 +37649,11 @@
37595
37649
  "object"
37596
37650
  ]
37597
37651
  },
37652
+ "modelUrl": {
37653
+ "types": [
37654
+ "object"
37655
+ ]
37656
+ },
37598
37657
  "unitType": {
37599
37658
  "types": [
37600
37659
  "string"
@@ -37985,6 +38044,11 @@
37985
38044
  "asset"
37986
38045
  ]
37987
38046
  },
38047
+ "modelUrl": {
38048
+ "types": [
38049
+ "asset"
38050
+ ]
38051
+ },
37988
38052
  "unitType": {
37989
38053
  "types": [
37990
38054
  "string"
@@ -43986,6 +44050,11 @@
43986
44050
  "object"
43987
44051
  ]
43988
44052
  },
44053
+ "modelUrl": {
44054
+ "types": [
44055
+ "object"
44056
+ ]
44057
+ },
43989
44058
  "unitType": {
43990
44059
  "types": [
43991
44060
  "string"
@@ -44390,10 +44459,36 @@
44390
44459
  },
44391
44460
  {
44392
44461
  "name": "event",
44393
- "type": "object"
44462
+ "type": "object",
44463
+ "schema": {
44464
+ "types": [
44465
+ "object"
44466
+ ],
44467
+ "properties": {
44468
+ "clientX": {
44469
+ "types": [
44470
+ "number"
44471
+ ]
44472
+ },
44473
+ "clientY": {
44474
+ "types": [
44475
+ "number"
44476
+ ]
44477
+ },
44478
+ "button": {
44479
+ "types": [
44480
+ "number"
44481
+ ]
44482
+ }
44483
+ },
44484
+ "required": [
44485
+ "clientX",
44486
+ "clientY",
44487
+ "button"
44488
+ ]
44489
+ }
44394
44490
  }
44395
- ],
44396
- "nonEmittable": true
44491
+ ]
44397
44492
  },
44398
44493
  "onUnitClick": {
44399
44494
  "types": [
@@ -44456,6 +44551,11 @@
44456
44551
  "object"
44457
44552
  ]
44458
44553
  },
44554
+ "modelUrl": {
44555
+ "types": [
44556
+ "object"
44557
+ ]
44558
+ },
44459
44559
  "unitType": {
44460
44560
  "types": [
44461
44561
  "string"
@@ -44578,10 +44678,36 @@
44578
44678
  },
44579
44679
  {
44580
44680
  "name": "event",
44581
- "type": "object"
44681
+ "type": "object",
44682
+ "schema": {
44683
+ "types": [
44684
+ "object"
44685
+ ],
44686
+ "properties": {
44687
+ "clientX": {
44688
+ "types": [
44689
+ "number"
44690
+ ]
44691
+ },
44692
+ "clientY": {
44693
+ "types": [
44694
+ "number"
44695
+ ]
44696
+ },
44697
+ "button": {
44698
+ "types": [
44699
+ "number"
44700
+ ]
44701
+ }
44702
+ },
44703
+ "required": [
44704
+ "clientX",
44705
+ "clientY",
44706
+ "button"
44707
+ ]
44708
+ }
44582
44709
  }
44583
- ],
44584
- "nonEmittable": true
44710
+ ]
44585
44711
  },
44586
44712
  "onFeatureClick": {
44587
44713
  "types": [
@@ -44653,10 +44779,36 @@
44653
44779
  },
44654
44780
  {
44655
44781
  "name": "event",
44656
- "type": "object"
44782
+ "type": "object",
44783
+ "schema": {
44784
+ "types": [
44785
+ "object"
44786
+ ],
44787
+ "properties": {
44788
+ "clientX": {
44789
+ "types": [
44790
+ "number"
44791
+ ]
44792
+ },
44793
+ "clientY": {
44794
+ "types": [
44795
+ "number"
44796
+ ]
44797
+ },
44798
+ "button": {
44799
+ "types": [
44800
+ "number"
44801
+ ]
44802
+ }
44803
+ },
44804
+ "required": [
44805
+ "clientX",
44806
+ "clientY",
44807
+ "button"
44808
+ ]
44809
+ }
44657
44810
  }
44658
- ],
44659
- "nonEmittable": true
44811
+ ]
44660
44812
  },
44661
44813
  "onCanvasClick": {
44662
44814
  "types": [
@@ -44667,10 +44819,36 @@
44667
44819
  "callbackArgs": [
44668
44820
  {
44669
44821
  "name": "event",
44670
- "type": "object"
44822
+ "type": "object",
44823
+ "schema": {
44824
+ "types": [
44825
+ "object"
44826
+ ],
44827
+ "properties": {
44828
+ "clientX": {
44829
+ "types": [
44830
+ "number"
44831
+ ]
44832
+ },
44833
+ "clientY": {
44834
+ "types": [
44835
+ "number"
44836
+ ]
44837
+ },
44838
+ "button": {
44839
+ "types": [
44840
+ "number"
44841
+ ]
44842
+ }
44843
+ },
44844
+ "required": [
44845
+ "clientX",
44846
+ "clientY",
44847
+ "button"
44848
+ ]
44849
+ }
44671
44850
  }
44672
- ],
44673
- "nonEmittable": true
44851
+ ]
44674
44852
  },
44675
44853
  "onTileHover": {
44676
44854
  "types": [
@@ -44756,10 +44934,36 @@
44756
44934
  },
44757
44935
  {
44758
44936
  "name": "event",
44759
- "type": "object"
44937
+ "type": "object",
44938
+ "schema": {
44939
+ "types": [
44940
+ "object"
44941
+ ],
44942
+ "properties": {
44943
+ "clientX": {
44944
+ "types": [
44945
+ "number"
44946
+ ]
44947
+ },
44948
+ "clientY": {
44949
+ "types": [
44950
+ "number"
44951
+ ]
44952
+ },
44953
+ "button": {
44954
+ "types": [
44955
+ "number"
44956
+ ]
44957
+ }
44958
+ },
44959
+ "required": [
44960
+ "clientX",
44961
+ "clientY",
44962
+ "button"
44963
+ ]
44964
+ }
44760
44965
  }
44761
- ],
44762
- "nonEmittable": true
44966
+ ]
44763
44967
  },
44764
44968
  "onUnitAnimation": {
44765
44969
  "types": [
@@ -45629,6 +45833,385 @@
45629
45833
  }
45630
45834
  }
45631
45835
  }
45836
+ },
45837
+ "activation-block": {
45838
+ "type": "activation-block",
45839
+ "category": "component",
45840
+ "tier": "molecules",
45841
+ "family": "core",
45842
+ "description": "ActivationBlock component",
45843
+ "suggestedFor": [
45844
+ "activation",
45845
+ "block",
45846
+ "activation block"
45847
+ ],
45848
+ "typicalSize": "medium",
45849
+ "propsSchema": {
45850
+ "question": {
45851
+ "types": [
45852
+ "string"
45853
+ ],
45854
+ "description": "The prior-knowledge question",
45855
+ "required": true
45856
+ },
45857
+ "savedResponse": {
45858
+ "types": [
45859
+ "string"
45860
+ ],
45861
+ "description": "Pre-filled response from saved state"
45862
+ },
45863
+ "saveEvent": {
45864
+ "types": [
45865
+ "string"
45866
+ ],
45867
+ "description": "Event name emitted on save/skip (as `UI:<saveEvent>`). Defaults to 'SAVE_ACTIVATION'.",
45868
+ "default": "SAVE_ACTIVATION"
45869
+ },
45870
+ "className": {
45871
+ "types": [
45872
+ "string"
45873
+ ],
45874
+ "description": "Additional CSS classes"
45875
+ }
45876
+ }
45877
+ },
45878
+ "bloom-quiz-block": {
45879
+ "type": "bloom-quiz-block",
45880
+ "category": "component",
45881
+ "tier": "molecules",
45882
+ "family": "core",
45883
+ "description": "BloomQuizBlock component",
45884
+ "suggestedFor": [
45885
+ "bloom",
45886
+ "quiz",
45887
+ "block",
45888
+ "bloom quiz block"
45889
+ ],
45890
+ "typicalSize": "medium",
45891
+ "propsSchema": {
45892
+ "level": {
45893
+ "types": [
45894
+ "string"
45895
+ ],
45896
+ "description": "level prop",
45897
+ "required": true,
45898
+ "enumValues": [
45899
+ "remember",
45900
+ "understand",
45901
+ "apply",
45902
+ "analyze",
45903
+ "evaluate",
45904
+ "create"
45905
+ ]
45906
+ },
45907
+ "question": {
45908
+ "types": [
45909
+ "string"
45910
+ ],
45911
+ "description": "question prop",
45912
+ "required": true
45913
+ },
45914
+ "answer": {
45915
+ "types": [
45916
+ "string"
45917
+ ],
45918
+ "description": "answer prop",
45919
+ "required": true
45920
+ },
45921
+ "index": {
45922
+ "types": [
45923
+ "number"
45924
+ ],
45925
+ "description": "Zero-based index (used in the emitted event payload)"
45926
+ },
45927
+ "isAnswered": {
45928
+ "types": [
45929
+ "boolean"
45930
+ ],
45931
+ "description": "Whether the learner has already answered"
45932
+ },
45933
+ "answerEvent": {
45934
+ "types": [
45935
+ "string"
45936
+ ],
45937
+ "description": "Event name emitted on first reveal (as `UI:<answerEvent>`). Defaults to 'ANSWER_BLOOM'.",
45938
+ "default": "ANSWER_BLOOM"
45939
+ },
45940
+ "className": {
45941
+ "types": [
45942
+ "string"
45943
+ ],
45944
+ "description": "Additional CSS classes"
45945
+ }
45946
+ }
45947
+ },
45948
+ "connection-block": {
45949
+ "type": "connection-block",
45950
+ "category": "component",
45951
+ "tier": "molecules",
45952
+ "family": "core",
45953
+ "description": "ConnectionBlock component",
45954
+ "suggestedFor": [
45955
+ "connection",
45956
+ "block",
45957
+ "connection block"
45958
+ ],
45959
+ "typicalSize": "medium",
45960
+ "propsSchema": {
45961
+ "content": {
45962
+ "types": [
45963
+ "string"
45964
+ ],
45965
+ "description": "Markdown content summarising what the learner already knows",
45966
+ "required": true
45967
+ },
45968
+ "className": {
45969
+ "types": [
45970
+ "string"
45971
+ ],
45972
+ "description": "Additional CSS classes"
45973
+ }
45974
+ }
45975
+ },
45976
+ "reflection-block": {
45977
+ "type": "reflection-block",
45978
+ "category": "component",
45979
+ "tier": "molecules",
45980
+ "family": "core",
45981
+ "description": "ReflectionBlock component",
45982
+ "suggestedFor": [
45983
+ "reflection",
45984
+ "block",
45985
+ "reflection block"
45986
+ ],
45987
+ "typicalSize": "medium",
45988
+ "propsSchema": {
45989
+ "prompt": {
45990
+ "types": [
45991
+ "string"
45992
+ ],
45993
+ "description": "The reflection prompt",
45994
+ "required": true
45995
+ },
45996
+ "index": {
45997
+ "types": [
45998
+ "number"
45999
+ ],
46000
+ "description": "Zero-based index of this block (used in the emitted event payload)",
46001
+ "required": true
46002
+ },
46003
+ "savedNote": {
46004
+ "types": [
46005
+ "string"
46006
+ ],
46007
+ "description": "Pre-filled note from saved state"
46008
+ },
46009
+ "saveEvent": {
46010
+ "types": [
46011
+ "string"
46012
+ ],
46013
+ "description": "Event name emitted on save (as `UI:<saveEvent>`). Defaults to 'SAVE_REFLECTION'.",
46014
+ "default": "SAVE_REFLECTION"
46015
+ },
46016
+ "className": {
46017
+ "types": [
46018
+ "string"
46019
+ ],
46020
+ "description": "Additional CSS classes"
46021
+ }
46022
+ }
46023
+ },
46024
+ "code-runner-panel": {
46025
+ "type": "code-runner-panel",
46026
+ "category": "display",
46027
+ "tier": "organisms",
46028
+ "family": "core",
46029
+ "description": "CodeRunnerPanel component",
46030
+ "suggestedFor": [
46031
+ "code",
46032
+ "runner",
46033
+ "panel",
46034
+ "code runner panel"
46035
+ ],
46036
+ "typicalSize": "large",
46037
+ "propsSchema": {
46038
+ "code": {
46039
+ "types": [
46040
+ "string"
46041
+ ],
46042
+ "description": "Initial code content",
46043
+ "required": true
46044
+ },
46045
+ "language": {
46046
+ "types": [
46047
+ "string"
46048
+ ],
46049
+ "description": "Programming language for syntax highlighting",
46050
+ "required": true
46051
+ },
46052
+ "runnable": {
46053
+ "types": [
46054
+ "boolean"
46055
+ ],
46056
+ "description": "Whether the panel allows running (false = read-only code block)",
46057
+ "default": true
46058
+ },
46059
+ "onRun": {
46060
+ "types": [
46061
+ "function"
46062
+ ],
46063
+ "description": "Simulate executing the code. Omit to render a read-only block. Real execution is a separate future track — this callback supplies deterministic simulated output for UI feedback.",
46064
+ "kind": "callback",
46065
+ "callbackArgs": [
46066
+ {
46067
+ "name": "code",
46068
+ "type": "string"
46069
+ }
46070
+ ],
46071
+ "renderCallback": true
46072
+ },
46073
+ "runEvent": {
46074
+ "types": [
46075
+ "string"
46076
+ ],
46077
+ "description": "Event name to emit on run (emitted as `UI:<runEvent>`). Defaults to 'RUN_CODE'.",
46078
+ "default": "RUN_CODE"
46079
+ },
46080
+ "className": {
46081
+ "types": [
46082
+ "string"
46083
+ ],
46084
+ "description": "Additional CSS classes"
46085
+ }
46086
+ }
46087
+ },
46088
+ "segment-renderer": {
46089
+ "type": "segment-renderer",
46090
+ "category": "display",
46091
+ "tier": "organisms",
46092
+ "family": "core",
46093
+ "description": "SegmentRenderer component",
46094
+ "suggestedFor": [
46095
+ "segment",
46096
+ "renderer",
46097
+ "segment renderer"
46098
+ ],
46099
+ "typicalSize": "large",
46100
+ "propsSchema": {
46101
+ "segments": {
46102
+ "types": [
46103
+ "array"
46104
+ ],
46105
+ "description": "Parsed lesson segments (see `parseLessonSegments`)",
46106
+ "required": true,
46107
+ "items": {
46108
+ "types": [
46109
+ "object"
46110
+ ],
46111
+ "properties": {
46112
+ "type": {
46113
+ "types": [
46114
+ "unknown"
46115
+ ]
46116
+ },
46117
+ "content": {
46118
+ "types": [
46119
+ "string"
46120
+ ]
46121
+ }
46122
+ },
46123
+ "required": [
46124
+ "type",
46125
+ "content"
46126
+ ]
46127
+ }
46128
+ },
46129
+ "className": {
46130
+ "types": [
46131
+ "string"
46132
+ ],
46133
+ "description": "Additional CSS classes for the root container"
46134
+ },
46135
+ "containerClassName": {
46136
+ "types": [
46137
+ "string"
46138
+ ],
46139
+ "description": "CSS classes for the outer wrapping div"
46140
+ },
46141
+ "userProgress": {
46142
+ "types": [
46143
+ "object"
46144
+ ],
46145
+ "description": "User progress for restoring activation/reflection state",
46146
+ "properties": {
46147
+ "activationResponse": {
46148
+ "types": [
46149
+ "string"
46150
+ ]
46151
+ },
46152
+ "reflectionNotes": {
46153
+ "types": [
46154
+ "array"
46155
+ ],
46156
+ "items": {
46157
+ "types": [
46158
+ "string"
46159
+ ]
46160
+ }
46161
+ },
46162
+ "bloomAnswered": {
46163
+ "types": [
46164
+ "object"
46165
+ ],
46166
+ "mapValue": {
46167
+ "types": [
46168
+ "boolean"
46169
+ ]
46170
+ }
46171
+ }
46172
+ }
46173
+ },
46174
+ "onRunCodeSimulation": {
46175
+ "types": [
46176
+ "function"
46177
+ ],
46178
+ "description": "Simulate executing runnable code blocks. Omit to render runnable blocks as read-only. Real execution is a future track.",
46179
+ "kind": "callback",
46180
+ "callbackArgs": [
46181
+ {
46182
+ "name": "code",
46183
+ "type": "string"
46184
+ },
46185
+ {
46186
+ "name": "language",
46187
+ "type": "string"
46188
+ }
46189
+ ],
46190
+ "renderCallback": true
46191
+ },
46192
+ "onRenderVisualization": {
46193
+ "types": [
46194
+ "function"
46195
+ ],
46196
+ "description": "Optional render slot for `visualization` segment types. When not provided, visualization segments are silently skipped. Callers can wire this to any custom component or orbital generator.",
46197
+ "kind": "callback",
46198
+ "callbackArgs": [
46199
+ {
46200
+ "name": "type",
46201
+ "type": "string"
46202
+ },
46203
+ {
46204
+ "name": "description",
46205
+ "type": "string"
46206
+ },
46207
+ {
46208
+ "name": "index",
46209
+ "type": "number"
46210
+ }
46211
+ ],
46212
+ "renderCallback": true
46213
+ }
46214
+ }
45632
46215
  }
45633
46216
  },
45634
46217
  "categories": [