@almadar/patterns 2.5.0 → 2.6.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-03-10T17:18:23.379Z",
3
+ "exportedAt": "2026-03-11T04:10:55.563Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -8859,18 +8859,6 @@
8859
8859
  ],
8860
8860
  "typicalSize": "large",
8861
8861
  "propsSchema": {
8862
- "entity": {
8863
- "types": [
8864
- "string"
8865
- ],
8866
- "description": "Entity name for schema-driven integration"
8867
- },
8868
- "data": {
8869
- "types": [
8870
- "array"
8871
- ],
8872
- "description": "Data array provided by the trait via render-ui"
8873
- },
8874
8862
  "className": {
8875
8863
  "types": [
8876
8864
  "string"
@@ -8885,63 +8873,15 @@
8885
8873
  },
8886
8874
  "error": {
8887
8875
  "types": [
8888
- "object"
8876
+ "error"
8889
8877
  ],
8890
8878
  "description": "Error state"
8891
8879
  },
8892
- "sortBy": {
8893
- "types": [
8894
- "string"
8895
- ],
8896
- "description": "Current sort field"
8897
- },
8898
- "sortDirection": {
8899
- "types": [
8900
- "string"
8901
- ],
8902
- "description": "Current sort direction"
8903
- },
8904
- "searchValue": {
8905
- "types": [
8906
- "string"
8907
- ],
8908
- "description": "Current search query value"
8909
- },
8910
- "page": {
8911
- "types": [
8912
- "number"
8913
- ],
8914
- "description": "Current page number"
8915
- },
8916
- "pageSize": {
8917
- "types": [
8918
- "number"
8919
- ],
8920
- "description": "Number of items per page"
8921
- },
8922
- "totalCount": {
8923
- "types": [
8924
- "number"
8925
- ],
8926
- "description": "Total number of items"
8927
- },
8928
- "activeFilters": {
8929
- "types": [
8930
- "object"
8931
- ],
8932
- "description": "Active filters"
8933
- },
8934
- "selectedIds": {
8935
- "types": [
8936
- "array"
8937
- ],
8938
- "description": "Currently selected item IDs"
8939
- },
8940
8880
  "tiles": {
8941
8881
  "types": [
8942
8882
  "array"
8943
8883
  ],
8944
- "description": "EntityDisplayProps provides: className, isLoading, error, entity,"
8884
+ "description": "--- Grid data ---"
8945
8885
  },
8946
8886
  "units": {
8947
8887
  "types": [
@@ -8989,19 +8929,19 @@
8989
8929
  "types": [
8990
8930
  "function"
8991
8931
  ],
8992
- "description": "eslint-disable-next-line almadar/organism-no-callback-props"
8932
+ "description": "onUnitClick prop"
8993
8933
  },
8994
8934
  "onTileHover": {
8995
8935
  "types": [
8996
8936
  "function"
8997
8937
  ],
8998
- "description": "eslint-disable-next-line almadar/organism-no-callback-props"
8938
+ "description": "onTileHover prop"
8999
8939
  },
9000
8940
  "onTileLeave": {
9001
8941
  "types": [
9002
8942
  "function"
9003
8943
  ],
9004
- "description": "eslint-disable-next-line almadar/organism-no-callback-props"
8944
+ "description": "onTileLeave prop"
9005
8945
  },
9006
8946
  "tileClickEvent": {
9007
8947
  "types": [
@@ -14382,7 +14322,7 @@
14382
14322
  "types": [
14383
14323
  "platformerplayer"
14384
14324
  ],
14385
- "description": "Player entity data"
14325
+ "description": "Player state data"
14386
14326
  },
14387
14327
  "platforms": {
14388
14328
  "types": [
@@ -14479,12 +14419,6 @@
14479
14419
  "string"
14480
14420
  ],
14481
14421
  "description": "Additional CSS classes"
14482
- },
14483
- "entity": {
14484
- "types": [
14485
- "object"
14486
- ],
14487
- "description": "Entity data (schema binding)"
14488
14422
  }
14489
14423
  }
14490
14424
  },
@@ -15532,6 +15466,1202 @@
15532
15466
  }
15533
15467
  }
15534
15468
  },
15469
+ "action-button": {
15470
+ "type": "action-button",
15471
+ "category": "component",
15472
+ "description": "ActionButton component",
15473
+ "suggestedFor": [
15474
+ "action",
15475
+ "button",
15476
+ "action button"
15477
+ ],
15478
+ "typicalSize": "small",
15479
+ "propsSchema": {
15480
+ "label": {
15481
+ "types": [
15482
+ "string"
15483
+ ],
15484
+ "description": "Button label text",
15485
+ "required": true
15486
+ },
15487
+ "icon": {
15488
+ "types": [
15489
+ "node"
15490
+ ],
15491
+ "description": "Icon displayed before the label"
15492
+ },
15493
+ "cooldown": {
15494
+ "types": [
15495
+ "number"
15496
+ ],
15497
+ "description": "Cooldown progress from 0 (ready) to 1 (full cooldown)"
15498
+ },
15499
+ "disabled": {
15500
+ "types": [
15501
+ "boolean"
15502
+ ],
15503
+ "description": "Whether the button is disabled"
15504
+ },
15505
+ "hotkey": {
15506
+ "types": [
15507
+ "string"
15508
+ ],
15509
+ "description": "Keyboard hotkey to display as a badge"
15510
+ },
15511
+ "size": {
15512
+ "types": [
15513
+ "string"
15514
+ ],
15515
+ "description": "Size variant"
15516
+ },
15517
+ "variant": {
15518
+ "types": [
15519
+ "string"
15520
+ ],
15521
+ "description": "Visual variant"
15522
+ },
15523
+ "onClick": {
15524
+ "types": [
15525
+ "function"
15526
+ ],
15527
+ "description": "Click handler"
15528
+ },
15529
+ "className": {
15530
+ "types": [
15531
+ "string"
15532
+ ],
15533
+ "description": "Additional CSS classes"
15534
+ }
15535
+ }
15536
+ },
15537
+ "choice-button": {
15538
+ "type": "choice-button",
15539
+ "category": "component",
15540
+ "description": "ChoiceButton component",
15541
+ "suggestedFor": [
15542
+ "choice",
15543
+ "button",
15544
+ "choice button"
15545
+ ],
15546
+ "typicalSize": "small",
15547
+ "propsSchema": {
15548
+ "text": {
15549
+ "types": [
15550
+ "string"
15551
+ ],
15552
+ "description": "Choice text content",
15553
+ "required": true
15554
+ },
15555
+ "index": {
15556
+ "types": [
15557
+ "number"
15558
+ ],
15559
+ "description": "Choice index number (displayed as prefix)"
15560
+ },
15561
+ "disabled": {
15562
+ "types": [
15563
+ "boolean"
15564
+ ],
15565
+ "description": "Whether the choice is disabled"
15566
+ },
15567
+ "selected": {
15568
+ "types": [
15569
+ "boolean"
15570
+ ],
15571
+ "description": "Whether the choice is currently selected"
15572
+ },
15573
+ "onClick": {
15574
+ "types": [
15575
+ "function"
15576
+ ],
15577
+ "description": "Click handler"
15578
+ },
15579
+ "className": {
15580
+ "types": [
15581
+ "string"
15582
+ ],
15583
+ "description": "Additional CSS classes"
15584
+ }
15585
+ }
15586
+ },
15587
+ "combo-counter": {
15588
+ "type": "combo-counter",
15589
+ "category": "component",
15590
+ "description": "ComboCounter component",
15591
+ "suggestedFor": [
15592
+ "combo",
15593
+ "counter",
15594
+ "combo counter"
15595
+ ],
15596
+ "typicalSize": "small",
15597
+ "propsSchema": {
15598
+ "combo": {
15599
+ "types": [
15600
+ "number"
15601
+ ],
15602
+ "description": "Current combo count",
15603
+ "required": true
15604
+ },
15605
+ "multiplier": {
15606
+ "types": [
15607
+ "number"
15608
+ ],
15609
+ "description": "Score multiplier"
15610
+ },
15611
+ "streak": {
15612
+ "types": [
15613
+ "number"
15614
+ ],
15615
+ "description": "Current streak"
15616
+ },
15617
+ "size": {
15618
+ "types": [
15619
+ "string"
15620
+ ],
15621
+ "description": "Size variant"
15622
+ },
15623
+ "className": {
15624
+ "types": [
15625
+ "string"
15626
+ ],
15627
+ "description": "Additional CSS classes"
15628
+ }
15629
+ }
15630
+ },
15631
+ "damage-number": {
15632
+ "type": "damage-number",
15633
+ "category": "component",
15634
+ "description": "DamageNumber component",
15635
+ "suggestedFor": [
15636
+ "damage",
15637
+ "number",
15638
+ "damage number"
15639
+ ],
15640
+ "typicalSize": "small",
15641
+ "propsSchema": {
15642
+ "value": {
15643
+ "types": [
15644
+ "number"
15645
+ ],
15646
+ "description": "The damage/heal value to display",
15647
+ "required": true
15648
+ },
15649
+ "type": {
15650
+ "types": [
15651
+ "string"
15652
+ ],
15653
+ "description": "Type of number display"
15654
+ },
15655
+ "size": {
15656
+ "types": [
15657
+ "string"
15658
+ ],
15659
+ "description": "Size variant"
15660
+ },
15661
+ "className": {
15662
+ "types": [
15663
+ "string"
15664
+ ],
15665
+ "description": "Additional CSS classes"
15666
+ }
15667
+ }
15668
+ },
15669
+ "dialogue-bubble": {
15670
+ "type": "dialogue-bubble",
15671
+ "category": "game",
15672
+ "description": "DialogueBubble component",
15673
+ "suggestedFor": [
15674
+ "dialogue",
15675
+ "bubble",
15676
+ "dialogue bubble"
15677
+ ],
15678
+ "typicalSize": "small",
15679
+ "propsSchema": {
15680
+ "speaker": {
15681
+ "types": [
15682
+ "string"
15683
+ ],
15684
+ "description": "Speaker name displayed at the top"
15685
+ },
15686
+ "text": {
15687
+ "types": [
15688
+ "string"
15689
+ ],
15690
+ "description": "Dialogue text content",
15691
+ "required": true
15692
+ },
15693
+ "portrait": {
15694
+ "types": [
15695
+ "string"
15696
+ ],
15697
+ "description": "URL for the speaker portrait image"
15698
+ },
15699
+ "position": {
15700
+ "types": [
15701
+ "string"
15702
+ ],
15703
+ "description": "Position of the bubble on screen"
15704
+ },
15705
+ "className": {
15706
+ "types": [
15707
+ "string"
15708
+ ],
15709
+ "description": "Additional CSS classes"
15710
+ }
15711
+ }
15712
+ },
15713
+ "item-slot": {
15714
+ "type": "item-slot",
15715
+ "category": "layout",
15716
+ "description": "ItemSlot component",
15717
+ "suggestedFor": [
15718
+ "item",
15719
+ "slot",
15720
+ "item slot"
15721
+ ],
15722
+ "typicalSize": "small",
15723
+ "propsSchema": {
15724
+ "icon": {
15725
+ "types": [
15726
+ "node"
15727
+ ],
15728
+ "description": "Icon component or emoji"
15729
+ },
15730
+ "label": {
15731
+ "types": [
15732
+ "string"
15733
+ ],
15734
+ "description": "Item label"
15735
+ },
15736
+ "quantity": {
15737
+ "types": [
15738
+ "number"
15739
+ ],
15740
+ "description": "Stack quantity"
15741
+ },
15742
+ "rarity": {
15743
+ "types": [
15744
+ "string"
15745
+ ],
15746
+ "description": "Rarity tier affecting border color"
15747
+ },
15748
+ "empty": {
15749
+ "types": [
15750
+ "boolean"
15751
+ ],
15752
+ "description": "Whether the slot is empty"
15753
+ },
15754
+ "size": {
15755
+ "types": [
15756
+ "string"
15757
+ ],
15758
+ "description": "Size variant"
15759
+ },
15760
+ "selected": {
15761
+ "types": [
15762
+ "boolean"
15763
+ ],
15764
+ "description": "Whether the slot is selected"
15765
+ },
15766
+ "onClick": {
15767
+ "types": [
15768
+ "function"
15769
+ ],
15770
+ "description": "Click handler"
15771
+ },
15772
+ "className": {
15773
+ "types": [
15774
+ "string"
15775
+ ],
15776
+ "description": "Additional CSS classes"
15777
+ }
15778
+ }
15779
+ },
15780
+ "mini-map": {
15781
+ "type": "mini-map",
15782
+ "category": "component",
15783
+ "description": "MiniMap component",
15784
+ "suggestedFor": [
15785
+ "mini",
15786
+ "map",
15787
+ "mini map"
15788
+ ],
15789
+ "typicalSize": "small",
15790
+ "propsSchema": {
15791
+ "tiles": {
15792
+ "types": [
15793
+ "array"
15794
+ ],
15795
+ "description": "Tile data: each tile renders as a 1px dot at (x,y) with the given color"
15796
+ },
15797
+ "units": {
15798
+ "types": [
15799
+ "array"
15800
+ ],
15801
+ "description": "Unit positions: each unit renders as a 2px dot"
15802
+ },
15803
+ "width": {
15804
+ "types": [
15805
+ "number"
15806
+ ],
15807
+ "description": "Canvas display width in pixels"
15808
+ },
15809
+ "height": {
15810
+ "types": [
15811
+ "number"
15812
+ ],
15813
+ "description": "Canvas display height in pixels"
15814
+ },
15815
+ "mapWidth": {
15816
+ "types": [
15817
+ "number"
15818
+ ],
15819
+ "description": "Logical map width (for coordinate scaling)"
15820
+ },
15821
+ "mapHeight": {
15822
+ "types": [
15823
+ "number"
15824
+ ],
15825
+ "description": "Logical map height (for coordinate scaling)"
15826
+ },
15827
+ "viewportRect": {
15828
+ "types": [
15829
+ "object"
15830
+ ],
15831
+ "description": "Viewport rectangle outline"
15832
+ },
15833
+ "className": {
15834
+ "types": [
15835
+ "string"
15836
+ ],
15837
+ "description": "Additional CSS classes"
15838
+ }
15839
+ }
15840
+ },
15841
+ "resource-counter": {
15842
+ "type": "resource-counter",
15843
+ "category": "component",
15844
+ "description": "ResourceCounter component",
15845
+ "suggestedFor": [
15846
+ "resource",
15847
+ "counter",
15848
+ "resource counter"
15849
+ ],
15850
+ "typicalSize": "small",
15851
+ "propsSchema": {
15852
+ "icon": {
15853
+ "types": [
15854
+ "node"
15855
+ ],
15856
+ "description": "Icon component or emoji"
15857
+ },
15858
+ "label": {
15859
+ "types": [
15860
+ "string"
15861
+ ],
15862
+ "description": "Resource label",
15863
+ "required": true
15864
+ },
15865
+ "value": {
15866
+ "types": [
15867
+ "number"
15868
+ ],
15869
+ "description": "Current value",
15870
+ "required": true
15871
+ },
15872
+ "max": {
15873
+ "types": [
15874
+ "number"
15875
+ ],
15876
+ "description": "Maximum value"
15877
+ },
15878
+ "color": {
15879
+ "types": [
15880
+ "string"
15881
+ ],
15882
+ "description": "Accent color class (e.g. 'text-yellow-400')"
15883
+ },
15884
+ "size": {
15885
+ "types": [
15886
+ "string"
15887
+ ],
15888
+ "description": "Size variant"
15889
+ },
15890
+ "className": {
15891
+ "types": [
15892
+ "string"
15893
+ ],
15894
+ "description": "Additional CSS classes"
15895
+ }
15896
+ }
15897
+ },
15898
+ "status-effect": {
15899
+ "type": "status-effect",
15900
+ "category": "display",
15901
+ "description": "StatusEffect component",
15902
+ "suggestedFor": [
15903
+ "status",
15904
+ "effect",
15905
+ "status effect"
15906
+ ],
15907
+ "typicalSize": "small",
15908
+ "propsSchema": {
15909
+ "icon": {
15910
+ "types": [
15911
+ "node"
15912
+ ],
15913
+ "description": "Icon to display for the effect",
15914
+ "required": true
15915
+ },
15916
+ "label": {
15917
+ "types": [
15918
+ "string"
15919
+ ],
15920
+ "description": "Label describing the effect"
15921
+ },
15922
+ "duration": {
15923
+ "types": [
15924
+ "number"
15925
+ ],
15926
+ "description": "Remaining duration in seconds"
15927
+ },
15928
+ "stacks": {
15929
+ "types": [
15930
+ "number"
15931
+ ],
15932
+ "description": "Number of stacks"
15933
+ },
15934
+ "variant": {
15935
+ "types": [
15936
+ "string"
15937
+ ],
15938
+ "description": "Effect type"
15939
+ },
15940
+ "size": {
15941
+ "types": [
15942
+ "string"
15943
+ ],
15944
+ "description": "Size variant"
15945
+ },
15946
+ "className": {
15947
+ "types": [
15948
+ "string"
15949
+ ],
15950
+ "description": "Additional CSS classes"
15951
+ }
15952
+ }
15953
+ },
15954
+ "timer-display": {
15955
+ "type": "timer-display",
15956
+ "category": "component",
15957
+ "description": "TimerDisplay component",
15958
+ "suggestedFor": [
15959
+ "timer",
15960
+ "display",
15961
+ "timer display"
15962
+ ],
15963
+ "typicalSize": "small",
15964
+ "propsSchema": {
15965
+ "seconds": {
15966
+ "types": [
15967
+ "number"
15968
+ ],
15969
+ "description": "Time in seconds",
15970
+ "required": true
15971
+ },
15972
+ "running": {
15973
+ "types": [
15974
+ "boolean"
15975
+ ],
15976
+ "description": "Whether the timer is running"
15977
+ },
15978
+ "format": {
15979
+ "types": [
15980
+ "string"
15981
+ ],
15982
+ "description": "Display format"
15983
+ },
15984
+ "size": {
15985
+ "types": [
15986
+ "string"
15987
+ ],
15988
+ "description": "Size variant"
15989
+ },
15990
+ "className": {
15991
+ "types": [
15992
+ "string"
15993
+ ],
15994
+ "description": "Additional CSS classes"
15995
+ },
15996
+ "lowThreshold": {
15997
+ "types": [
15998
+ "number"
15999
+ ],
16000
+ "description": "Seconds below which to pulse red"
16001
+ }
16002
+ }
16003
+ },
16004
+ "turn-indicator": {
16005
+ "type": "turn-indicator",
16006
+ "category": "component",
16007
+ "description": "TurnIndicator component",
16008
+ "suggestedFor": [
16009
+ "turn",
16010
+ "indicator",
16011
+ "turn indicator"
16012
+ ],
16013
+ "typicalSize": "small",
16014
+ "propsSchema": {
16015
+ "currentTurn": {
16016
+ "types": [
16017
+ "number"
16018
+ ],
16019
+ "description": "Current turn number",
16020
+ "required": true
16021
+ },
16022
+ "maxTurns": {
16023
+ "types": [
16024
+ "number"
16025
+ ],
16026
+ "description": "Maximum number of turns"
16027
+ },
16028
+ "activeTeam": {
16029
+ "types": [
16030
+ "string"
16031
+ ],
16032
+ "description": "Name of the active team"
16033
+ },
16034
+ "phase": {
16035
+ "types": [
16036
+ "string"
16037
+ ],
16038
+ "description": "Current phase label"
16039
+ },
16040
+ "size": {
16041
+ "types": [
16042
+ "string"
16043
+ ],
16044
+ "description": "Size variant"
16045
+ },
16046
+ "className": {
16047
+ "types": [
16048
+ "string"
16049
+ ],
16050
+ "description": "Additional CSS classes"
16051
+ }
16052
+ }
16053
+ },
16054
+ "waypoint-marker": {
16055
+ "type": "waypoint-marker",
16056
+ "category": "component",
16057
+ "description": "WaypointMarker component",
16058
+ "suggestedFor": [
16059
+ "waypoint",
16060
+ "marker",
16061
+ "waypoint marker"
16062
+ ],
16063
+ "typicalSize": "small",
16064
+ "propsSchema": {
16065
+ "label": {
16066
+ "types": [
16067
+ "string"
16068
+ ],
16069
+ "description": "Label text below the marker"
16070
+ },
16071
+ "icon": {
16072
+ "types": [
16073
+ "node"
16074
+ ],
16075
+ "description": "Custom icon to render inside the marker"
16076
+ },
16077
+ "active": {
16078
+ "types": [
16079
+ "boolean"
16080
+ ],
16081
+ "description": "Whether this waypoint is currently active"
16082
+ },
16083
+ "completed": {
16084
+ "types": [
16085
+ "boolean"
16086
+ ],
16087
+ "description": "Whether this waypoint has been completed"
16088
+ },
16089
+ "size": {
16090
+ "types": [
16091
+ "string"
16092
+ ],
16093
+ "description": "Size variant"
16094
+ },
16095
+ "className": {
16096
+ "types": [
16097
+ "string"
16098
+ ],
16099
+ "description": "Additional CSS classes"
16100
+ }
16101
+ }
16102
+ },
16103
+ "x-p-bar": {
16104
+ "type": "x-p-bar",
16105
+ "category": "component",
16106
+ "description": "XPBar component",
16107
+ "suggestedFor": [
16108
+ "bar",
16109
+ "x p bar"
16110
+ ],
16111
+ "typicalSize": "small",
16112
+ "propsSchema": {
16113
+ "current": {
16114
+ "types": [
16115
+ "number"
16116
+ ],
16117
+ "description": "Current XP value",
16118
+ "required": true
16119
+ },
16120
+ "max": {
16121
+ "types": [
16122
+ "number"
16123
+ ],
16124
+ "description": "XP needed for next level",
16125
+ "required": true
16126
+ },
16127
+ "level": {
16128
+ "types": [
16129
+ "number"
16130
+ ],
16131
+ "description": "Current level"
16132
+ },
16133
+ "showLabel": {
16134
+ "types": [
16135
+ "boolean"
16136
+ ],
16137
+ "description": "Whether to show the XP label"
16138
+ },
16139
+ "size": {
16140
+ "types": [
16141
+ "string"
16142
+ ],
16143
+ "description": "Size variant"
16144
+ },
16145
+ "animated": {
16146
+ "types": [
16147
+ "boolean"
16148
+ ],
16149
+ "description": "Animate the fill bar"
16150
+ },
16151
+ "className": {
16152
+ "types": [
16153
+ "string"
16154
+ ],
16155
+ "description": "Additional CSS classes"
16156
+ }
16157
+ }
16158
+ },
16159
+ "crafting-recipe": {
16160
+ "type": "crafting-recipe",
16161
+ "category": "component",
16162
+ "description": "CraftingRecipe component",
16163
+ "suggestedFor": [
16164
+ "crafting",
16165
+ "recipe",
16166
+ "crafting recipe"
16167
+ ],
16168
+ "typicalSize": "medium",
16169
+ "propsSchema": {
16170
+ "inputs": {
16171
+ "types": [
16172
+ "array"
16173
+ ],
16174
+ "description": "Input ingredients for the recipe",
16175
+ "required": true
16176
+ },
16177
+ "output": {
16178
+ "types": [
16179
+ "object"
16180
+ ],
16181
+ "description": "Output item produced by the recipe",
16182
+ "required": true
16183
+ },
16184
+ "canCraft": {
16185
+ "types": [
16186
+ "boolean"
16187
+ ],
16188
+ "description": "Whether the player has enough ingredients to craft"
16189
+ },
16190
+ "onCraft": {
16191
+ "types": [
16192
+ "function"
16193
+ ],
16194
+ "description": "Callback when the craft button is clicked"
16195
+ },
16196
+ "craftEvent": {
16197
+ "types": [
16198
+ "string"
16199
+ ],
16200
+ "description": "Event bus event name for crafting"
16201
+ },
16202
+ "className": {
16203
+ "types": [
16204
+ "string"
16205
+ ],
16206
+ "description": "Additional CSS classes"
16207
+ }
16208
+ }
16209
+ },
16210
+ "enemy-plate": {
16211
+ "type": "enemy-plate",
16212
+ "category": "component",
16213
+ "description": "EnemyPlate component",
16214
+ "suggestedFor": [
16215
+ "enemy",
16216
+ "plate",
16217
+ "enemy plate"
16218
+ ],
16219
+ "typicalSize": "medium",
16220
+ "propsSchema": {
16221
+ "name": {
16222
+ "types": [
16223
+ "string"
16224
+ ],
16225
+ "description": "Enemy name",
16226
+ "required": true
16227
+ },
16228
+ "health": {
16229
+ "types": [
16230
+ "number"
16231
+ ],
16232
+ "description": "Current health",
16233
+ "required": true
16234
+ },
16235
+ "maxHealth": {
16236
+ "types": [
16237
+ "number"
16238
+ ],
16239
+ "description": "Maximum health",
16240
+ "required": true
16241
+ },
16242
+ "level": {
16243
+ "types": [
16244
+ "number"
16245
+ ],
16246
+ "description": "Enemy level"
16247
+ },
16248
+ "effects": {
16249
+ "types": [
16250
+ "array"
16251
+ ],
16252
+ "description": "Active status effects"
16253
+ },
16254
+ "className": {
16255
+ "types": [
16256
+ "string"
16257
+ ],
16258
+ "description": "Additional CSS classes"
16259
+ }
16260
+ }
16261
+ },
16262
+ "game-canvas2-d": {
16263
+ "type": "game-canvas2-d",
16264
+ "category": "game",
16265
+ "description": "GameCanvas2D component",
16266
+ "suggestedFor": [
16267
+ "game",
16268
+ "canvas2",
16269
+ "game canvas2 d"
16270
+ ],
16271
+ "typicalSize": "medium",
16272
+ "propsSchema": {
16273
+ "width": {
16274
+ "types": [
16275
+ "number"
16276
+ ],
16277
+ "description": "Canvas width in pixels"
16278
+ },
16279
+ "height": {
16280
+ "types": [
16281
+ "number"
16282
+ ],
16283
+ "description": "Canvas height in pixels"
16284
+ },
16285
+ "onDraw": {
16286
+ "types": [
16287
+ "function"
16288
+ ],
16289
+ "description": "Called each frame with the 2D context and current frame count"
16290
+ },
16291
+ "onTick": {
16292
+ "types": [
16293
+ "function"
16294
+ ],
16295
+ "description": "Called each tick with delta time in seconds"
16296
+ },
16297
+ "fps": {
16298
+ "types": [
16299
+ "number"
16300
+ ],
16301
+ "description": "Target frames per second"
16302
+ },
16303
+ "className": {
16304
+ "types": [
16305
+ "string"
16306
+ ],
16307
+ "description": "Additional CSS classes"
16308
+ }
16309
+ }
16310
+ },
16311
+ "health-panel": {
16312
+ "type": "health-panel",
16313
+ "category": "component",
16314
+ "description": "HealthPanel component",
16315
+ "suggestedFor": [
16316
+ "health",
16317
+ "panel",
16318
+ "health panel"
16319
+ ],
16320
+ "typicalSize": "medium",
16321
+ "propsSchema": {
16322
+ "current": {
16323
+ "types": [
16324
+ "number"
16325
+ ],
16326
+ "description": "Current health value",
16327
+ "required": true
16328
+ },
16329
+ "max": {
16330
+ "types": [
16331
+ "number"
16332
+ ],
16333
+ "description": "Maximum health value",
16334
+ "required": true
16335
+ },
16336
+ "shield": {
16337
+ "types": [
16338
+ "number"
16339
+ ],
16340
+ "description": "Shield/armor points"
16341
+ },
16342
+ "label": {
16343
+ "types": [
16344
+ "string"
16345
+ ],
16346
+ "description": "Label shown above the bar"
16347
+ },
16348
+ "effects": {
16349
+ "types": [
16350
+ "array"
16351
+ ],
16352
+ "description": "Active status effects displayed as small badges"
16353
+ },
16354
+ "showNumbers": {
16355
+ "types": [
16356
+ "boolean"
16357
+ ],
16358
+ "description": "Whether to display numeric HP values"
16359
+ },
16360
+ "size": {
16361
+ "types": [
16362
+ "string"
16363
+ ],
16364
+ "description": "Size variant"
16365
+ },
16366
+ "className": {
16367
+ "types": [
16368
+ "string"
16369
+ ],
16370
+ "description": "Additional CSS classes"
16371
+ }
16372
+ }
16373
+ },
16374
+ "inventory-grid": {
16375
+ "type": "inventory-grid",
16376
+ "category": "game",
16377
+ "description": "InventoryGrid component",
16378
+ "suggestedFor": [
16379
+ "inventory",
16380
+ "grid",
16381
+ "inventory grid"
16382
+ ],
16383
+ "typicalSize": "medium",
16384
+ "propsSchema": {
16385
+ "items": {
16386
+ "types": [
16387
+ "array"
16388
+ ],
16389
+ "description": "Array of items to display in the grid",
16390
+ "required": true
16391
+ },
16392
+ "columns": {
16393
+ "types": [
16394
+ "number"
16395
+ ],
16396
+ "description": "Number of columns in the grid"
16397
+ },
16398
+ "totalSlots": {
16399
+ "types": [
16400
+ "number"
16401
+ ],
16402
+ "description": "Total number of slots (empty slots fill remaining space)"
16403
+ },
16404
+ "selectedId": {
16405
+ "types": [
16406
+ "string"
16407
+ ],
16408
+ "description": "Currently selected item ID"
16409
+ },
16410
+ "onSelect": {
16411
+ "types": [
16412
+ "function"
16413
+ ],
16414
+ "description": "Callback when an item is selected"
16415
+ },
16416
+ "selectEvent": {
16417
+ "types": [
16418
+ "string"
16419
+ ],
16420
+ "description": "Event bus event name for selection"
16421
+ },
16422
+ "size": {
16423
+ "types": [
16424
+ "string"
16425
+ ],
16426
+ "description": "Size variant for all item slots"
16427
+ },
16428
+ "className": {
16429
+ "types": [
16430
+ "string"
16431
+ ],
16432
+ "description": "Additional CSS classes"
16433
+ }
16434
+ }
16435
+ },
16436
+ "powerup-slots": {
16437
+ "type": "powerup-slots",
16438
+ "category": "layout",
16439
+ "description": "PowerupSlots component",
16440
+ "suggestedFor": [
16441
+ "powerup",
16442
+ "slots",
16443
+ "powerup slots"
16444
+ ],
16445
+ "typicalSize": "medium",
16446
+ "propsSchema": {
16447
+ "active": {
16448
+ "types": [
16449
+ "array"
16450
+ ],
16451
+ "description": "Array of active powerups",
16452
+ "required": true
16453
+ },
16454
+ "maxSlots": {
16455
+ "types": [
16456
+ "number"
16457
+ ],
16458
+ "description": "Maximum number of powerup slots"
16459
+ },
16460
+ "className": {
16461
+ "types": [
16462
+ "string"
16463
+ ],
16464
+ "description": "Additional CSS classes"
16465
+ }
16466
+ }
16467
+ },
16468
+ "quest-tracker": {
16469
+ "type": "quest-tracker",
16470
+ "category": "component",
16471
+ "description": "QuestTracker component",
16472
+ "suggestedFor": [
16473
+ "quest",
16474
+ "tracker",
16475
+ "quest tracker"
16476
+ ],
16477
+ "typicalSize": "medium",
16478
+ "propsSchema": {
16479
+ "quests": {
16480
+ "types": [
16481
+ "array"
16482
+ ],
16483
+ "description": "Array of quests to display",
16484
+ "required": true
16485
+ },
16486
+ "activeQuestId": {
16487
+ "types": [
16488
+ "string"
16489
+ ],
16490
+ "description": "ID of the currently active quest"
16491
+ },
16492
+ "className": {
16493
+ "types": [
16494
+ "string"
16495
+ ],
16496
+ "description": "Additional CSS classes"
16497
+ }
16498
+ }
16499
+ },
16500
+ "resource-bar": {
16501
+ "type": "resource-bar",
16502
+ "category": "component",
16503
+ "description": "ResourceBar component",
16504
+ "suggestedFor": [
16505
+ "resource",
16506
+ "bar",
16507
+ "resource bar"
16508
+ ],
16509
+ "typicalSize": "medium",
16510
+ "propsSchema": {
16511
+ "resources": {
16512
+ "types": [
16513
+ "array"
16514
+ ],
16515
+ "description": "Resources to display",
16516
+ "required": true
16517
+ },
16518
+ "size": {
16519
+ "types": [
16520
+ "string"
16521
+ ],
16522
+ "description": "Size variant"
16523
+ },
16524
+ "className": {
16525
+ "types": [
16526
+ "string"
16527
+ ],
16528
+ "description": "Additional CSS classes"
16529
+ }
16530
+ }
16531
+ },
16532
+ "score-board": {
16533
+ "type": "score-board",
16534
+ "category": "game",
16535
+ "description": "ScoreBoard component",
16536
+ "suggestedFor": [
16537
+ "score",
16538
+ "board",
16539
+ "score board"
16540
+ ],
16541
+ "typicalSize": "medium",
16542
+ "propsSchema": {
16543
+ "score": {
16544
+ "types": [
16545
+ "number"
16546
+ ],
16547
+ "description": "Current score",
16548
+ "required": true
16549
+ },
16550
+ "highScore": {
16551
+ "types": [
16552
+ "number"
16553
+ ],
16554
+ "description": "All-time high score"
16555
+ },
16556
+ "combo": {
16557
+ "types": [
16558
+ "number"
16559
+ ],
16560
+ "description": "Current combo count"
16561
+ },
16562
+ "multiplier": {
16563
+ "types": [
16564
+ "number"
16565
+ ],
16566
+ "description": "Score multiplier"
16567
+ },
16568
+ "level": {
16569
+ "types": [
16570
+ "number"
16571
+ ],
16572
+ "description": "Current level"
16573
+ },
16574
+ "className": {
16575
+ "types": [
16576
+ "string"
16577
+ ],
16578
+ "description": "Additional CSS classes"
16579
+ }
16580
+ }
16581
+ },
16582
+ "turn-panel": {
16583
+ "type": "turn-panel",
16584
+ "category": "component",
16585
+ "description": "TurnPanel component",
16586
+ "suggestedFor": [
16587
+ "turn",
16588
+ "panel",
16589
+ "turn panel"
16590
+ ],
16591
+ "typicalSize": "medium",
16592
+ "propsSchema": {
16593
+ "currentTurn": {
16594
+ "types": [
16595
+ "number"
16596
+ ],
16597
+ "description": "Current turn number",
16598
+ "required": true
16599
+ },
16600
+ "maxTurns": {
16601
+ "types": [
16602
+ "number"
16603
+ ],
16604
+ "description": "Maximum number of turns"
16605
+ },
16606
+ "phase": {
16607
+ "types": [
16608
+ "string"
16609
+ ],
16610
+ "description": "Current phase label"
16611
+ },
16612
+ "activeTeam": {
16613
+ "types": [
16614
+ "string"
16615
+ ],
16616
+ "description": "Active team name"
16617
+ },
16618
+ "actions": {
16619
+ "types": [
16620
+ "array"
16621
+ ],
16622
+ "description": "Action buttons to display"
16623
+ },
16624
+ "className": {
16625
+ "types": [
16626
+ "string"
16627
+ ],
16628
+ "description": "Additional CSS classes"
16629
+ }
16630
+ }
16631
+ },
16632
+ "unit-command-bar": {
16633
+ "type": "unit-command-bar",
16634
+ "category": "component",
16635
+ "description": "UnitCommandBar component",
16636
+ "suggestedFor": [
16637
+ "unit",
16638
+ "command",
16639
+ "bar",
16640
+ "unit command bar"
16641
+ ],
16642
+ "typicalSize": "medium",
16643
+ "propsSchema": {
16644
+ "commands": {
16645
+ "types": [
16646
+ "array"
16647
+ ],
16648
+ "description": "Available commands",
16649
+ "required": true
16650
+ },
16651
+ "selectedUnitId": {
16652
+ "types": [
16653
+ "string"
16654
+ ],
16655
+ "description": "ID of the currently selected unit"
16656
+ },
16657
+ "className": {
16658
+ "types": [
16659
+ "string"
16660
+ ],
16661
+ "description": "Additional CSS classes"
16662
+ }
16663
+ }
16664
+ },
15535
16665
  "heading": {
15536
16666
  "type": "heading",
15537
16667
  "category": "component",