@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.
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/patterns-registry.json
2
2
  var patterns_registry_default = {
3
3
  version: "1.0.0",
4
- exportedAt: "2026-03-10T17:18:23.379Z",
4
+ exportedAt: "2026-03-11T04:10:55.563Z",
5
5
  patterns: {
6
6
  "entity-table": {
7
7
  type: "entity-table",
@@ -8860,18 +8860,6 @@ var patterns_registry_default = {
8860
8860
  ],
8861
8861
  typicalSize: "large",
8862
8862
  propsSchema: {
8863
- entity: {
8864
- types: [
8865
- "string"
8866
- ],
8867
- description: "Entity name for schema-driven integration"
8868
- },
8869
- data: {
8870
- types: [
8871
- "array"
8872
- ],
8873
- description: "Data array provided by the trait via render-ui"
8874
- },
8875
8863
  className: {
8876
8864
  types: [
8877
8865
  "string"
@@ -8886,63 +8874,15 @@ var patterns_registry_default = {
8886
8874
  },
8887
8875
  error: {
8888
8876
  types: [
8889
- "object"
8877
+ "error"
8890
8878
  ],
8891
8879
  description: "Error state"
8892
8880
  },
8893
- sortBy: {
8894
- types: [
8895
- "string"
8896
- ],
8897
- description: "Current sort field"
8898
- },
8899
- sortDirection: {
8900
- types: [
8901
- "string"
8902
- ],
8903
- description: "Current sort direction"
8904
- },
8905
- searchValue: {
8906
- types: [
8907
- "string"
8908
- ],
8909
- description: "Current search query value"
8910
- },
8911
- page: {
8912
- types: [
8913
- "number"
8914
- ],
8915
- description: "Current page number"
8916
- },
8917
- pageSize: {
8918
- types: [
8919
- "number"
8920
- ],
8921
- description: "Number of items per page"
8922
- },
8923
- totalCount: {
8924
- types: [
8925
- "number"
8926
- ],
8927
- description: "Total number of items"
8928
- },
8929
- activeFilters: {
8930
- types: [
8931
- "object"
8932
- ],
8933
- description: "Active filters"
8934
- },
8935
- selectedIds: {
8936
- types: [
8937
- "array"
8938
- ],
8939
- description: "Currently selected item IDs"
8940
- },
8941
8881
  tiles: {
8942
8882
  types: [
8943
8883
  "array"
8944
8884
  ],
8945
- description: "EntityDisplayProps provides: className, isLoading, error, entity,"
8885
+ description: "--- Grid data ---"
8946
8886
  },
8947
8887
  units: {
8948
8888
  types: [
@@ -8990,19 +8930,19 @@ var patterns_registry_default = {
8990
8930
  types: [
8991
8931
  "function"
8992
8932
  ],
8993
- description: "eslint-disable-next-line almadar/organism-no-callback-props"
8933
+ description: "onUnitClick prop"
8994
8934
  },
8995
8935
  onTileHover: {
8996
8936
  types: [
8997
8937
  "function"
8998
8938
  ],
8999
- description: "eslint-disable-next-line almadar/organism-no-callback-props"
8939
+ description: "onTileHover prop"
9000
8940
  },
9001
8941
  onTileLeave: {
9002
8942
  types: [
9003
8943
  "function"
9004
8944
  ],
9005
- description: "eslint-disable-next-line almadar/organism-no-callback-props"
8945
+ description: "onTileLeave prop"
9006
8946
  },
9007
8947
  tileClickEvent: {
9008
8948
  types: [
@@ -14383,7 +14323,7 @@ var patterns_registry_default = {
14383
14323
  types: [
14384
14324
  "platformerplayer"
14385
14325
  ],
14386
- description: "Player entity data"
14326
+ description: "Player state data"
14387
14327
  },
14388
14328
  platforms: {
14389
14329
  types: [
@@ -14480,12 +14420,6 @@ var patterns_registry_default = {
14480
14420
  "string"
14481
14421
  ],
14482
14422
  description: "Additional CSS classes"
14483
- },
14484
- entity: {
14485
- types: [
14486
- "object"
14487
- ],
14488
- description: "Entity data (schema binding)"
14489
14423
  }
14490
14424
  }
14491
14425
  },
@@ -15533,191 +15467,1387 @@ var patterns_registry_default = {
15533
15467
  }
15534
15468
  }
15535
15469
  },
15536
- heading: {
15537
- type: "heading",
15470
+ "action-button": {
15471
+ type: "action-button",
15538
15472
  category: "component",
15539
- description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
15473
+ description: "ActionButton component",
15540
15474
  suggestedFor: [
15541
- "typography"
15475
+ "action",
15476
+ "button",
15477
+ "action button"
15542
15478
  ],
15543
15479
  typicalSize: "small",
15544
15480
  propsSchema: {
15545
- variant: {
15481
+ label: {
15546
15482
  types: [
15547
- "typographyvariant"
15483
+ "string"
15548
15484
  ],
15549
- description: "Typography variant"
15485
+ description: "Button label text",
15486
+ required: true
15550
15487
  },
15551
- level: {
15488
+ icon: {
15489
+ types: [
15490
+ "node"
15491
+ ],
15492
+ description: "Icon displayed before the label"
15493
+ },
15494
+ cooldown: {
15552
15495
  types: [
15553
15496
  "number"
15554
15497
  ],
15555
- description: "Heading level (1-6) - alternative to variant for headings"
15498
+ description: "Cooldown progress from 0 (ready) to 1 (full cooldown)"
15556
15499
  },
15557
- color: {
15500
+ disabled: {
15558
15501
  types: [
15559
- "string"
15502
+ "boolean"
15560
15503
  ],
15561
- description: "Text color"
15504
+ description: "Whether the button is disabled"
15562
15505
  },
15563
- align: {
15506
+ hotkey: {
15564
15507
  types: [
15565
15508
  "string"
15566
15509
  ],
15567
- description: "Text alignment"
15510
+ description: "Keyboard hotkey to display as a badge"
15568
15511
  },
15569
- weight: {
15512
+ size: {
15570
15513
  types: [
15571
15514
  "string"
15572
15515
  ],
15573
- description: "Font weight override"
15516
+ description: "Size variant"
15574
15517
  },
15575
- size: {
15518
+ variant: {
15576
15519
  types: [
15577
- "typographysize"
15520
+ "string"
15578
15521
  ],
15579
- description: "Font size override"
15522
+ description: "Visual variant"
15580
15523
  },
15581
- truncate: {
15524
+ onClick: {
15582
15525
  types: [
15583
- "boolean"
15526
+ "function"
15584
15527
  ],
15585
- description: "Truncate with ellipsis (single line)"
15528
+ description: "Click handler"
15586
15529
  },
15587
- overflow: {
15530
+ className: {
15588
15531
  types: [
15589
15532
  "string"
15590
15533
  ],
15591
- description: "Overflow handling mode"
15592
- },
15593
- as: {
15534
+ description: "Additional CSS classes"
15535
+ }
15536
+ }
15537
+ },
15538
+ "choice-button": {
15539
+ type: "choice-button",
15540
+ category: "component",
15541
+ description: "ChoiceButton component",
15542
+ suggestedFor: [
15543
+ "choice",
15544
+ "button",
15545
+ "choice button"
15546
+ ],
15547
+ typicalSize: "small",
15548
+ propsSchema: {
15549
+ text: {
15594
15550
  types: [
15595
- "unknown"
15551
+ "string"
15596
15552
  ],
15597
- description: "Custom HTML element"
15553
+ description: "Choice text content",
15554
+ required: true
15598
15555
  },
15599
- id: {
15556
+ index: {
15600
15557
  types: [
15601
- "string"
15558
+ "number"
15602
15559
  ],
15603
- description: "HTML id attribute"
15560
+ description: "Choice index number (displayed as prefix)"
15604
15561
  },
15605
- className: {
15562
+ disabled: {
15606
15563
  types: [
15607
- "string"
15564
+ "boolean"
15608
15565
  ],
15609
- description: "Additional class names"
15566
+ description: "Whether the choice is disabled"
15610
15567
  },
15611
- style: {
15568
+ selected: {
15612
15569
  types: [
15613
- "object"
15570
+ "boolean"
15614
15571
  ],
15615
- description: "Inline style"
15572
+ description: "Whether the choice is currently selected"
15616
15573
  },
15617
- content: {
15574
+ onClick: {
15618
15575
  types: [
15619
- "node"
15576
+ "function"
15620
15577
  ],
15621
- description: "Text content (alternative to children)"
15578
+ description: "Click handler"
15622
15579
  },
15623
- children: {
15580
+ className: {
15624
15581
  types: [
15625
- "node"
15582
+ "string"
15626
15583
  ],
15627
- description: "Children elements"
15584
+ description: "Additional CSS classes"
15628
15585
  }
15629
15586
  }
15630
15587
  },
15631
- text: {
15632
- type: "text",
15588
+ "combo-counter": {
15589
+ type: "combo-counter",
15633
15590
  category: "component",
15634
- description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
15591
+ description: "ComboCounter component",
15635
15592
  suggestedFor: [
15636
- "typography"
15593
+ "combo",
15594
+ "counter",
15595
+ "combo counter"
15637
15596
  ],
15638
15597
  typicalSize: "small",
15639
15598
  propsSchema: {
15640
- variant: {
15599
+ combo: {
15641
15600
  types: [
15642
- "typographyvariant"
15601
+ "number"
15643
15602
  ],
15644
- description: "Typography variant"
15603
+ description: "Current combo count",
15604
+ required: true
15645
15605
  },
15646
- level: {
15606
+ multiplier: {
15647
15607
  types: [
15648
15608
  "number"
15649
15609
  ],
15650
- description: "Heading level (1-6) - alternative to variant for headings"
15610
+ description: "Score multiplier"
15651
15611
  },
15652
- color: {
15612
+ streak: {
15613
+ types: [
15614
+ "number"
15615
+ ],
15616
+ description: "Current streak"
15617
+ },
15618
+ size: {
15653
15619
  types: [
15654
15620
  "string"
15655
15621
  ],
15656
- description: "Text color"
15622
+ description: "Size variant"
15657
15623
  },
15658
- align: {
15624
+ className: {
15659
15625
  types: [
15660
15626
  "string"
15661
15627
  ],
15662
- description: "Text alignment"
15628
+ description: "Additional CSS classes"
15629
+ }
15630
+ }
15631
+ },
15632
+ "damage-number": {
15633
+ type: "damage-number",
15634
+ category: "component",
15635
+ description: "DamageNumber component",
15636
+ suggestedFor: [
15637
+ "damage",
15638
+ "number",
15639
+ "damage number"
15640
+ ],
15641
+ typicalSize: "small",
15642
+ propsSchema: {
15643
+ value: {
15644
+ types: [
15645
+ "number"
15646
+ ],
15647
+ description: "The damage/heal value to display",
15648
+ required: true
15663
15649
  },
15664
- weight: {
15650
+ type: {
15665
15651
  types: [
15666
15652
  "string"
15667
15653
  ],
15668
- description: "Font weight override"
15654
+ description: "Type of number display"
15669
15655
  },
15670
15656
  size: {
15671
15657
  types: [
15672
- "typographysize"
15658
+ "string"
15673
15659
  ],
15674
- description: "Font size override"
15660
+ description: "Size variant"
15675
15661
  },
15676
- truncate: {
15662
+ className: {
15677
15663
  types: [
15678
- "boolean"
15664
+ "string"
15679
15665
  ],
15680
- description: "Truncate with ellipsis (single line)"
15666
+ description: "Additional CSS classes"
15667
+ }
15668
+ }
15669
+ },
15670
+ "dialogue-bubble": {
15671
+ type: "dialogue-bubble",
15672
+ category: "game",
15673
+ description: "DialogueBubble component",
15674
+ suggestedFor: [
15675
+ "dialogue",
15676
+ "bubble",
15677
+ "dialogue bubble"
15678
+ ],
15679
+ typicalSize: "small",
15680
+ propsSchema: {
15681
+ speaker: {
15682
+ types: [
15683
+ "string"
15684
+ ],
15685
+ description: "Speaker name displayed at the top"
15681
15686
  },
15682
- overflow: {
15687
+ text: {
15683
15688
  types: [
15684
15689
  "string"
15685
15690
  ],
15686
- description: "Overflow handling mode"
15691
+ description: "Dialogue text content",
15692
+ required: true
15687
15693
  },
15688
- as: {
15694
+ portrait: {
15689
15695
  types: [
15690
- "unknown"
15696
+ "string"
15691
15697
  ],
15692
- description: "Custom HTML element"
15698
+ description: "URL for the speaker portrait image"
15693
15699
  },
15694
- id: {
15700
+ position: {
15695
15701
  types: [
15696
15702
  "string"
15697
15703
  ],
15698
- description: "HTML id attribute"
15704
+ description: "Position of the bubble on screen"
15699
15705
  },
15700
15706
  className: {
15701
15707
  types: [
15702
15708
  "string"
15703
15709
  ],
15704
- description: "Additional class names"
15710
+ description: "Additional CSS classes"
15711
+ }
15712
+ }
15713
+ },
15714
+ "item-slot": {
15715
+ type: "item-slot",
15716
+ category: "layout",
15717
+ description: "ItemSlot component",
15718
+ suggestedFor: [
15719
+ "item",
15720
+ "slot",
15721
+ "item slot"
15722
+ ],
15723
+ typicalSize: "small",
15724
+ propsSchema: {
15725
+ icon: {
15726
+ types: [
15727
+ "node"
15728
+ ],
15729
+ description: "Icon component or emoji"
15705
15730
  },
15706
- style: {
15731
+ label: {
15707
15732
  types: [
15708
- "object"
15733
+ "string"
15709
15734
  ],
15710
- description: "Inline style"
15735
+ description: "Item label"
15711
15736
  },
15712
- content: {
15737
+ quantity: {
15713
15738
  types: [
15714
- "node"
15739
+ "number"
15715
15740
  ],
15716
- description: "Text content (alternative to children)"
15741
+ description: "Stack quantity"
15717
15742
  },
15718
- children: {
15743
+ rarity: {
15719
15744
  types: [
15720
- "node"
15745
+ "string"
15746
+ ],
15747
+ description: "Rarity tier affecting border color"
15748
+ },
15749
+ empty: {
15750
+ types: [
15751
+ "boolean"
15752
+ ],
15753
+ description: "Whether the slot is empty"
15754
+ },
15755
+ size: {
15756
+ types: [
15757
+ "string"
15758
+ ],
15759
+ description: "Size variant"
15760
+ },
15761
+ selected: {
15762
+ types: [
15763
+ "boolean"
15764
+ ],
15765
+ description: "Whether the slot is selected"
15766
+ },
15767
+ onClick: {
15768
+ types: [
15769
+ "function"
15770
+ ],
15771
+ description: "Click handler"
15772
+ },
15773
+ className: {
15774
+ types: [
15775
+ "string"
15776
+ ],
15777
+ description: "Additional CSS classes"
15778
+ }
15779
+ }
15780
+ },
15781
+ "mini-map": {
15782
+ type: "mini-map",
15783
+ category: "component",
15784
+ description: "MiniMap component",
15785
+ suggestedFor: [
15786
+ "mini",
15787
+ "map",
15788
+ "mini map"
15789
+ ],
15790
+ typicalSize: "small",
15791
+ propsSchema: {
15792
+ tiles: {
15793
+ types: [
15794
+ "array"
15795
+ ],
15796
+ description: "Tile data: each tile renders as a 1px dot at (x,y) with the given color"
15797
+ },
15798
+ units: {
15799
+ types: [
15800
+ "array"
15801
+ ],
15802
+ description: "Unit positions: each unit renders as a 2px dot"
15803
+ },
15804
+ width: {
15805
+ types: [
15806
+ "number"
15807
+ ],
15808
+ description: "Canvas display width in pixels"
15809
+ },
15810
+ height: {
15811
+ types: [
15812
+ "number"
15813
+ ],
15814
+ description: "Canvas display height in pixels"
15815
+ },
15816
+ mapWidth: {
15817
+ types: [
15818
+ "number"
15819
+ ],
15820
+ description: "Logical map width (for coordinate scaling)"
15821
+ },
15822
+ mapHeight: {
15823
+ types: [
15824
+ "number"
15825
+ ],
15826
+ description: "Logical map height (for coordinate scaling)"
15827
+ },
15828
+ viewportRect: {
15829
+ types: [
15830
+ "object"
15831
+ ],
15832
+ description: "Viewport rectangle outline"
15833
+ },
15834
+ className: {
15835
+ types: [
15836
+ "string"
15837
+ ],
15838
+ description: "Additional CSS classes"
15839
+ }
15840
+ }
15841
+ },
15842
+ "resource-counter": {
15843
+ type: "resource-counter",
15844
+ category: "component",
15845
+ description: "ResourceCounter component",
15846
+ suggestedFor: [
15847
+ "resource",
15848
+ "counter",
15849
+ "resource counter"
15850
+ ],
15851
+ typicalSize: "small",
15852
+ propsSchema: {
15853
+ icon: {
15854
+ types: [
15855
+ "node"
15856
+ ],
15857
+ description: "Icon component or emoji"
15858
+ },
15859
+ label: {
15860
+ types: [
15861
+ "string"
15862
+ ],
15863
+ description: "Resource label",
15864
+ required: true
15865
+ },
15866
+ value: {
15867
+ types: [
15868
+ "number"
15869
+ ],
15870
+ description: "Current value",
15871
+ required: true
15872
+ },
15873
+ max: {
15874
+ types: [
15875
+ "number"
15876
+ ],
15877
+ description: "Maximum value"
15878
+ },
15879
+ color: {
15880
+ types: [
15881
+ "string"
15882
+ ],
15883
+ description: "Accent color class (e.g. 'text-yellow-400')"
15884
+ },
15885
+ size: {
15886
+ types: [
15887
+ "string"
15888
+ ],
15889
+ description: "Size variant"
15890
+ },
15891
+ className: {
15892
+ types: [
15893
+ "string"
15894
+ ],
15895
+ description: "Additional CSS classes"
15896
+ }
15897
+ }
15898
+ },
15899
+ "status-effect": {
15900
+ type: "status-effect",
15901
+ category: "display",
15902
+ description: "StatusEffect component",
15903
+ suggestedFor: [
15904
+ "status",
15905
+ "effect",
15906
+ "status effect"
15907
+ ],
15908
+ typicalSize: "small",
15909
+ propsSchema: {
15910
+ icon: {
15911
+ types: [
15912
+ "node"
15913
+ ],
15914
+ description: "Icon to display for the effect",
15915
+ required: true
15916
+ },
15917
+ label: {
15918
+ types: [
15919
+ "string"
15920
+ ],
15921
+ description: "Label describing the effect"
15922
+ },
15923
+ duration: {
15924
+ types: [
15925
+ "number"
15926
+ ],
15927
+ description: "Remaining duration in seconds"
15928
+ },
15929
+ stacks: {
15930
+ types: [
15931
+ "number"
15932
+ ],
15933
+ description: "Number of stacks"
15934
+ },
15935
+ variant: {
15936
+ types: [
15937
+ "string"
15938
+ ],
15939
+ description: "Effect type"
15940
+ },
15941
+ size: {
15942
+ types: [
15943
+ "string"
15944
+ ],
15945
+ description: "Size variant"
15946
+ },
15947
+ className: {
15948
+ types: [
15949
+ "string"
15950
+ ],
15951
+ description: "Additional CSS classes"
15952
+ }
15953
+ }
15954
+ },
15955
+ "timer-display": {
15956
+ type: "timer-display",
15957
+ category: "component",
15958
+ description: "TimerDisplay component",
15959
+ suggestedFor: [
15960
+ "timer",
15961
+ "display",
15962
+ "timer display"
15963
+ ],
15964
+ typicalSize: "small",
15965
+ propsSchema: {
15966
+ seconds: {
15967
+ types: [
15968
+ "number"
15969
+ ],
15970
+ description: "Time in seconds",
15971
+ required: true
15972
+ },
15973
+ running: {
15974
+ types: [
15975
+ "boolean"
15976
+ ],
15977
+ description: "Whether the timer is running"
15978
+ },
15979
+ format: {
15980
+ types: [
15981
+ "string"
15982
+ ],
15983
+ description: "Display format"
15984
+ },
15985
+ size: {
15986
+ types: [
15987
+ "string"
15988
+ ],
15989
+ description: "Size variant"
15990
+ },
15991
+ className: {
15992
+ types: [
15993
+ "string"
15994
+ ],
15995
+ description: "Additional CSS classes"
15996
+ },
15997
+ lowThreshold: {
15998
+ types: [
15999
+ "number"
16000
+ ],
16001
+ description: "Seconds below which to pulse red"
16002
+ }
16003
+ }
16004
+ },
16005
+ "turn-indicator": {
16006
+ type: "turn-indicator",
16007
+ category: "component",
16008
+ description: "TurnIndicator component",
16009
+ suggestedFor: [
16010
+ "turn",
16011
+ "indicator",
16012
+ "turn indicator"
16013
+ ],
16014
+ typicalSize: "small",
16015
+ propsSchema: {
16016
+ currentTurn: {
16017
+ types: [
16018
+ "number"
16019
+ ],
16020
+ description: "Current turn number",
16021
+ required: true
16022
+ },
16023
+ maxTurns: {
16024
+ types: [
16025
+ "number"
16026
+ ],
16027
+ description: "Maximum number of turns"
16028
+ },
16029
+ activeTeam: {
16030
+ types: [
16031
+ "string"
16032
+ ],
16033
+ description: "Name of the active team"
16034
+ },
16035
+ phase: {
16036
+ types: [
16037
+ "string"
16038
+ ],
16039
+ description: "Current phase label"
16040
+ },
16041
+ size: {
16042
+ types: [
16043
+ "string"
16044
+ ],
16045
+ description: "Size variant"
16046
+ },
16047
+ className: {
16048
+ types: [
16049
+ "string"
16050
+ ],
16051
+ description: "Additional CSS classes"
16052
+ }
16053
+ }
16054
+ },
16055
+ "waypoint-marker": {
16056
+ type: "waypoint-marker",
16057
+ category: "component",
16058
+ description: "WaypointMarker component",
16059
+ suggestedFor: [
16060
+ "waypoint",
16061
+ "marker",
16062
+ "waypoint marker"
16063
+ ],
16064
+ typicalSize: "small",
16065
+ propsSchema: {
16066
+ label: {
16067
+ types: [
16068
+ "string"
16069
+ ],
16070
+ description: "Label text below the marker"
16071
+ },
16072
+ icon: {
16073
+ types: [
16074
+ "node"
16075
+ ],
16076
+ description: "Custom icon to render inside the marker"
16077
+ },
16078
+ active: {
16079
+ types: [
16080
+ "boolean"
16081
+ ],
16082
+ description: "Whether this waypoint is currently active"
16083
+ },
16084
+ completed: {
16085
+ types: [
16086
+ "boolean"
16087
+ ],
16088
+ description: "Whether this waypoint has been completed"
16089
+ },
16090
+ size: {
16091
+ types: [
16092
+ "string"
16093
+ ],
16094
+ description: "Size variant"
16095
+ },
16096
+ className: {
16097
+ types: [
16098
+ "string"
16099
+ ],
16100
+ description: "Additional CSS classes"
16101
+ }
16102
+ }
16103
+ },
16104
+ "x-p-bar": {
16105
+ type: "x-p-bar",
16106
+ category: "component",
16107
+ description: "XPBar component",
16108
+ suggestedFor: [
16109
+ "bar",
16110
+ "x p bar"
16111
+ ],
16112
+ typicalSize: "small",
16113
+ propsSchema: {
16114
+ current: {
16115
+ types: [
16116
+ "number"
16117
+ ],
16118
+ description: "Current XP value",
16119
+ required: true
16120
+ },
16121
+ max: {
16122
+ types: [
16123
+ "number"
16124
+ ],
16125
+ description: "XP needed for next level",
16126
+ required: true
16127
+ },
16128
+ level: {
16129
+ types: [
16130
+ "number"
16131
+ ],
16132
+ description: "Current level"
16133
+ },
16134
+ showLabel: {
16135
+ types: [
16136
+ "boolean"
16137
+ ],
16138
+ description: "Whether to show the XP label"
16139
+ },
16140
+ size: {
16141
+ types: [
16142
+ "string"
16143
+ ],
16144
+ description: "Size variant"
16145
+ },
16146
+ animated: {
16147
+ types: [
16148
+ "boolean"
16149
+ ],
16150
+ description: "Animate the fill bar"
16151
+ },
16152
+ className: {
16153
+ types: [
16154
+ "string"
16155
+ ],
16156
+ description: "Additional CSS classes"
16157
+ }
16158
+ }
16159
+ },
16160
+ "crafting-recipe": {
16161
+ type: "crafting-recipe",
16162
+ category: "component",
16163
+ description: "CraftingRecipe component",
16164
+ suggestedFor: [
16165
+ "crafting",
16166
+ "recipe",
16167
+ "crafting recipe"
16168
+ ],
16169
+ typicalSize: "medium",
16170
+ propsSchema: {
16171
+ inputs: {
16172
+ types: [
16173
+ "array"
16174
+ ],
16175
+ description: "Input ingredients for the recipe",
16176
+ required: true
16177
+ },
16178
+ output: {
16179
+ types: [
16180
+ "object"
16181
+ ],
16182
+ description: "Output item produced by the recipe",
16183
+ required: true
16184
+ },
16185
+ canCraft: {
16186
+ types: [
16187
+ "boolean"
16188
+ ],
16189
+ description: "Whether the player has enough ingredients to craft"
16190
+ },
16191
+ onCraft: {
16192
+ types: [
16193
+ "function"
16194
+ ],
16195
+ description: "Callback when the craft button is clicked"
16196
+ },
16197
+ craftEvent: {
16198
+ types: [
16199
+ "string"
16200
+ ],
16201
+ description: "Event bus event name for crafting"
16202
+ },
16203
+ className: {
16204
+ types: [
16205
+ "string"
16206
+ ],
16207
+ description: "Additional CSS classes"
16208
+ }
16209
+ }
16210
+ },
16211
+ "enemy-plate": {
16212
+ type: "enemy-plate",
16213
+ category: "component",
16214
+ description: "EnemyPlate component",
16215
+ suggestedFor: [
16216
+ "enemy",
16217
+ "plate",
16218
+ "enemy plate"
16219
+ ],
16220
+ typicalSize: "medium",
16221
+ propsSchema: {
16222
+ name: {
16223
+ types: [
16224
+ "string"
16225
+ ],
16226
+ description: "Enemy name",
16227
+ required: true
16228
+ },
16229
+ health: {
16230
+ types: [
16231
+ "number"
16232
+ ],
16233
+ description: "Current health",
16234
+ required: true
16235
+ },
16236
+ maxHealth: {
16237
+ types: [
16238
+ "number"
16239
+ ],
16240
+ description: "Maximum health",
16241
+ required: true
16242
+ },
16243
+ level: {
16244
+ types: [
16245
+ "number"
16246
+ ],
16247
+ description: "Enemy level"
16248
+ },
16249
+ effects: {
16250
+ types: [
16251
+ "array"
16252
+ ],
16253
+ description: "Active status effects"
16254
+ },
16255
+ className: {
16256
+ types: [
16257
+ "string"
16258
+ ],
16259
+ description: "Additional CSS classes"
16260
+ }
16261
+ }
16262
+ },
16263
+ "game-canvas2-d": {
16264
+ type: "game-canvas2-d",
16265
+ category: "game",
16266
+ description: "GameCanvas2D component",
16267
+ suggestedFor: [
16268
+ "game",
16269
+ "canvas2",
16270
+ "game canvas2 d"
16271
+ ],
16272
+ typicalSize: "medium",
16273
+ propsSchema: {
16274
+ width: {
16275
+ types: [
16276
+ "number"
16277
+ ],
16278
+ description: "Canvas width in pixels"
16279
+ },
16280
+ height: {
16281
+ types: [
16282
+ "number"
16283
+ ],
16284
+ description: "Canvas height in pixels"
16285
+ },
16286
+ onDraw: {
16287
+ types: [
16288
+ "function"
16289
+ ],
16290
+ description: "Called each frame with the 2D context and current frame count"
16291
+ },
16292
+ onTick: {
16293
+ types: [
16294
+ "function"
16295
+ ],
16296
+ description: "Called each tick with delta time in seconds"
16297
+ },
16298
+ fps: {
16299
+ types: [
16300
+ "number"
16301
+ ],
16302
+ description: "Target frames per second"
16303
+ },
16304
+ className: {
16305
+ types: [
16306
+ "string"
16307
+ ],
16308
+ description: "Additional CSS classes"
16309
+ }
16310
+ }
16311
+ },
16312
+ "health-panel": {
16313
+ type: "health-panel",
16314
+ category: "component",
16315
+ description: "HealthPanel component",
16316
+ suggestedFor: [
16317
+ "health",
16318
+ "panel",
16319
+ "health panel"
16320
+ ],
16321
+ typicalSize: "medium",
16322
+ propsSchema: {
16323
+ current: {
16324
+ types: [
16325
+ "number"
16326
+ ],
16327
+ description: "Current health value",
16328
+ required: true
16329
+ },
16330
+ max: {
16331
+ types: [
16332
+ "number"
16333
+ ],
16334
+ description: "Maximum health value",
16335
+ required: true
16336
+ },
16337
+ shield: {
16338
+ types: [
16339
+ "number"
16340
+ ],
16341
+ description: "Shield/armor points"
16342
+ },
16343
+ label: {
16344
+ types: [
16345
+ "string"
16346
+ ],
16347
+ description: "Label shown above the bar"
16348
+ },
16349
+ effects: {
16350
+ types: [
16351
+ "array"
16352
+ ],
16353
+ description: "Active status effects displayed as small badges"
16354
+ },
16355
+ showNumbers: {
16356
+ types: [
16357
+ "boolean"
16358
+ ],
16359
+ description: "Whether to display numeric HP values"
16360
+ },
16361
+ size: {
16362
+ types: [
16363
+ "string"
16364
+ ],
16365
+ description: "Size variant"
16366
+ },
16367
+ className: {
16368
+ types: [
16369
+ "string"
16370
+ ],
16371
+ description: "Additional CSS classes"
16372
+ }
16373
+ }
16374
+ },
16375
+ "inventory-grid": {
16376
+ type: "inventory-grid",
16377
+ category: "game",
16378
+ description: "InventoryGrid component",
16379
+ suggestedFor: [
16380
+ "inventory",
16381
+ "grid",
16382
+ "inventory grid"
16383
+ ],
16384
+ typicalSize: "medium",
16385
+ propsSchema: {
16386
+ items: {
16387
+ types: [
16388
+ "array"
16389
+ ],
16390
+ description: "Array of items to display in the grid",
16391
+ required: true
16392
+ },
16393
+ columns: {
16394
+ types: [
16395
+ "number"
16396
+ ],
16397
+ description: "Number of columns in the grid"
16398
+ },
16399
+ totalSlots: {
16400
+ types: [
16401
+ "number"
16402
+ ],
16403
+ description: "Total number of slots (empty slots fill remaining space)"
16404
+ },
16405
+ selectedId: {
16406
+ types: [
16407
+ "string"
16408
+ ],
16409
+ description: "Currently selected item ID"
16410
+ },
16411
+ onSelect: {
16412
+ types: [
16413
+ "function"
16414
+ ],
16415
+ description: "Callback when an item is selected"
16416
+ },
16417
+ selectEvent: {
16418
+ types: [
16419
+ "string"
16420
+ ],
16421
+ description: "Event bus event name for selection"
16422
+ },
16423
+ size: {
16424
+ types: [
16425
+ "string"
16426
+ ],
16427
+ description: "Size variant for all item slots"
16428
+ },
16429
+ className: {
16430
+ types: [
16431
+ "string"
16432
+ ],
16433
+ description: "Additional CSS classes"
16434
+ }
16435
+ }
16436
+ },
16437
+ "powerup-slots": {
16438
+ type: "powerup-slots",
16439
+ category: "layout",
16440
+ description: "PowerupSlots component",
16441
+ suggestedFor: [
16442
+ "powerup",
16443
+ "slots",
16444
+ "powerup slots"
16445
+ ],
16446
+ typicalSize: "medium",
16447
+ propsSchema: {
16448
+ active: {
16449
+ types: [
16450
+ "array"
16451
+ ],
16452
+ description: "Array of active powerups",
16453
+ required: true
16454
+ },
16455
+ maxSlots: {
16456
+ types: [
16457
+ "number"
16458
+ ],
16459
+ description: "Maximum number of powerup slots"
16460
+ },
16461
+ className: {
16462
+ types: [
16463
+ "string"
16464
+ ],
16465
+ description: "Additional CSS classes"
16466
+ }
16467
+ }
16468
+ },
16469
+ "quest-tracker": {
16470
+ type: "quest-tracker",
16471
+ category: "component",
16472
+ description: "QuestTracker component",
16473
+ suggestedFor: [
16474
+ "quest",
16475
+ "tracker",
16476
+ "quest tracker"
16477
+ ],
16478
+ typicalSize: "medium",
16479
+ propsSchema: {
16480
+ quests: {
16481
+ types: [
16482
+ "array"
16483
+ ],
16484
+ description: "Array of quests to display",
16485
+ required: true
16486
+ },
16487
+ activeQuestId: {
16488
+ types: [
16489
+ "string"
16490
+ ],
16491
+ description: "ID of the currently active quest"
16492
+ },
16493
+ className: {
16494
+ types: [
16495
+ "string"
16496
+ ],
16497
+ description: "Additional CSS classes"
16498
+ }
16499
+ }
16500
+ },
16501
+ "resource-bar": {
16502
+ type: "resource-bar",
16503
+ category: "component",
16504
+ description: "ResourceBar component",
16505
+ suggestedFor: [
16506
+ "resource",
16507
+ "bar",
16508
+ "resource bar"
16509
+ ],
16510
+ typicalSize: "medium",
16511
+ propsSchema: {
16512
+ resources: {
16513
+ types: [
16514
+ "array"
16515
+ ],
16516
+ description: "Resources to display",
16517
+ required: true
16518
+ },
16519
+ size: {
16520
+ types: [
16521
+ "string"
16522
+ ],
16523
+ description: "Size variant"
16524
+ },
16525
+ className: {
16526
+ types: [
16527
+ "string"
16528
+ ],
16529
+ description: "Additional CSS classes"
16530
+ }
16531
+ }
16532
+ },
16533
+ "score-board": {
16534
+ type: "score-board",
16535
+ category: "game",
16536
+ description: "ScoreBoard component",
16537
+ suggestedFor: [
16538
+ "score",
16539
+ "board",
16540
+ "score board"
16541
+ ],
16542
+ typicalSize: "medium",
16543
+ propsSchema: {
16544
+ score: {
16545
+ types: [
16546
+ "number"
16547
+ ],
16548
+ description: "Current score",
16549
+ required: true
16550
+ },
16551
+ highScore: {
16552
+ types: [
16553
+ "number"
16554
+ ],
16555
+ description: "All-time high score"
16556
+ },
16557
+ combo: {
16558
+ types: [
16559
+ "number"
16560
+ ],
16561
+ description: "Current combo count"
16562
+ },
16563
+ multiplier: {
16564
+ types: [
16565
+ "number"
16566
+ ],
16567
+ description: "Score multiplier"
16568
+ },
16569
+ level: {
16570
+ types: [
16571
+ "number"
16572
+ ],
16573
+ description: "Current level"
16574
+ },
16575
+ className: {
16576
+ types: [
16577
+ "string"
16578
+ ],
16579
+ description: "Additional CSS classes"
16580
+ }
16581
+ }
16582
+ },
16583
+ "turn-panel": {
16584
+ type: "turn-panel",
16585
+ category: "component",
16586
+ description: "TurnPanel component",
16587
+ suggestedFor: [
16588
+ "turn",
16589
+ "panel",
16590
+ "turn panel"
16591
+ ],
16592
+ typicalSize: "medium",
16593
+ propsSchema: {
16594
+ currentTurn: {
16595
+ types: [
16596
+ "number"
16597
+ ],
16598
+ description: "Current turn number",
16599
+ required: true
16600
+ },
16601
+ maxTurns: {
16602
+ types: [
16603
+ "number"
16604
+ ],
16605
+ description: "Maximum number of turns"
16606
+ },
16607
+ phase: {
16608
+ types: [
16609
+ "string"
16610
+ ],
16611
+ description: "Current phase label"
16612
+ },
16613
+ activeTeam: {
16614
+ types: [
16615
+ "string"
16616
+ ],
16617
+ description: "Active team name"
16618
+ },
16619
+ actions: {
16620
+ types: [
16621
+ "array"
16622
+ ],
16623
+ description: "Action buttons to display"
16624
+ },
16625
+ className: {
16626
+ types: [
16627
+ "string"
16628
+ ],
16629
+ description: "Additional CSS classes"
16630
+ }
16631
+ }
16632
+ },
16633
+ "unit-command-bar": {
16634
+ type: "unit-command-bar",
16635
+ category: "component",
16636
+ description: "UnitCommandBar component",
16637
+ suggestedFor: [
16638
+ "unit",
16639
+ "command",
16640
+ "bar",
16641
+ "unit command bar"
16642
+ ],
16643
+ typicalSize: "medium",
16644
+ propsSchema: {
16645
+ commands: {
16646
+ types: [
16647
+ "array"
16648
+ ],
16649
+ description: "Available commands",
16650
+ required: true
16651
+ },
16652
+ selectedUnitId: {
16653
+ types: [
16654
+ "string"
16655
+ ],
16656
+ description: "ID of the currently selected unit"
16657
+ },
16658
+ className: {
16659
+ types: [
16660
+ "string"
16661
+ ],
16662
+ description: "Additional CSS classes"
16663
+ }
16664
+ }
16665
+ },
16666
+ heading: {
16667
+ type: "heading",
16668
+ category: "component",
16669
+ description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
16670
+ suggestedFor: [
16671
+ "typography"
16672
+ ],
16673
+ typicalSize: "small",
16674
+ propsSchema: {
16675
+ variant: {
16676
+ types: [
16677
+ "typographyvariant"
16678
+ ],
16679
+ description: "Typography variant"
16680
+ },
16681
+ level: {
16682
+ types: [
16683
+ "number"
16684
+ ],
16685
+ description: "Heading level (1-6) - alternative to variant for headings"
16686
+ },
16687
+ color: {
16688
+ types: [
16689
+ "string"
16690
+ ],
16691
+ description: "Text color"
16692
+ },
16693
+ align: {
16694
+ types: [
16695
+ "string"
16696
+ ],
16697
+ description: "Text alignment"
16698
+ },
16699
+ weight: {
16700
+ types: [
16701
+ "string"
16702
+ ],
16703
+ description: "Font weight override"
16704
+ },
16705
+ size: {
16706
+ types: [
16707
+ "typographysize"
16708
+ ],
16709
+ description: "Font size override"
16710
+ },
16711
+ truncate: {
16712
+ types: [
16713
+ "boolean"
16714
+ ],
16715
+ description: "Truncate with ellipsis (single line)"
16716
+ },
16717
+ overflow: {
16718
+ types: [
16719
+ "string"
16720
+ ],
16721
+ description: "Overflow handling mode"
16722
+ },
16723
+ as: {
16724
+ types: [
16725
+ "unknown"
16726
+ ],
16727
+ description: "Custom HTML element"
16728
+ },
16729
+ id: {
16730
+ types: [
16731
+ "string"
16732
+ ],
16733
+ description: "HTML id attribute"
16734
+ },
16735
+ className: {
16736
+ types: [
16737
+ "string"
16738
+ ],
16739
+ description: "Additional class names"
16740
+ },
16741
+ style: {
16742
+ types: [
16743
+ "object"
16744
+ ],
16745
+ description: "Inline style"
16746
+ },
16747
+ content: {
16748
+ types: [
16749
+ "node"
16750
+ ],
16751
+ description: "Text content (alternative to children)"
16752
+ },
16753
+ children: {
16754
+ types: [
16755
+ "node"
16756
+ ],
16757
+ description: "Children elements"
16758
+ }
16759
+ }
16760
+ },
16761
+ text: {
16762
+ type: "text",
16763
+ category: "component",
16764
+ description: "Alias for typography \u2014 Typography Atom Component Text elements following the KFlow design system with theme-aware styling.",
16765
+ suggestedFor: [
16766
+ "typography"
16767
+ ],
16768
+ typicalSize: "small",
16769
+ propsSchema: {
16770
+ variant: {
16771
+ types: [
16772
+ "typographyvariant"
16773
+ ],
16774
+ description: "Typography variant"
16775
+ },
16776
+ level: {
16777
+ types: [
16778
+ "number"
16779
+ ],
16780
+ description: "Heading level (1-6) - alternative to variant for headings"
16781
+ },
16782
+ color: {
16783
+ types: [
16784
+ "string"
16785
+ ],
16786
+ description: "Text color"
16787
+ },
16788
+ align: {
16789
+ types: [
16790
+ "string"
16791
+ ],
16792
+ description: "Text alignment"
16793
+ },
16794
+ weight: {
16795
+ types: [
16796
+ "string"
16797
+ ],
16798
+ description: "Font weight override"
16799
+ },
16800
+ size: {
16801
+ types: [
16802
+ "typographysize"
16803
+ ],
16804
+ description: "Font size override"
16805
+ },
16806
+ truncate: {
16807
+ types: [
16808
+ "boolean"
16809
+ ],
16810
+ description: "Truncate with ellipsis (single line)"
16811
+ },
16812
+ overflow: {
16813
+ types: [
16814
+ "string"
16815
+ ],
16816
+ description: "Overflow handling mode"
16817
+ },
16818
+ as: {
16819
+ types: [
16820
+ "unknown"
16821
+ ],
16822
+ description: "Custom HTML element"
16823
+ },
16824
+ id: {
16825
+ types: [
16826
+ "string"
16827
+ ],
16828
+ description: "HTML id attribute"
16829
+ },
16830
+ className: {
16831
+ types: [
16832
+ "string"
16833
+ ],
16834
+ description: "Additional class names"
16835
+ },
16836
+ style: {
16837
+ types: [
16838
+ "object"
16839
+ ],
16840
+ description: "Inline style"
16841
+ },
16842
+ content: {
16843
+ types: [
16844
+ "node"
16845
+ ],
16846
+ description: "Text content (alternative to children)"
16847
+ },
16848
+ children: {
16849
+ types: [
16850
+ "node"
15721
16851
  ],
15722
16852
  description: "Children elements"
15723
16853
  }
@@ -16349,7 +17479,7 @@ var integrators_registry_default = {
16349
17479
  // src/component-mapping.json
16350
17480
  var component_mapping_default = {
16351
17481
  version: "1.0.0",
16352
- exportedAt: "2026-03-10T17:18:23.379Z",
17482
+ exportedAt: "2026-03-11T04:10:55.563Z",
16353
17483
  mappings: {
16354
17484
  "page-header": {
16355
17485
  component: "PageHeader",
@@ -17439,6 +18569,126 @@ var component_mapping_default = {
17439
18569
  importPath: "@/components/molecules/SwipeableRow",
17440
18570
  category: "component"
17441
18571
  },
18572
+ "action-button": {
18573
+ component: "ActionButton",
18574
+ importPath: "@/components/atoms/ActionButton",
18575
+ category: "component"
18576
+ },
18577
+ "choice-button": {
18578
+ component: "ChoiceButton",
18579
+ importPath: "@/components/atoms/ChoiceButton",
18580
+ category: "component"
18581
+ },
18582
+ "combo-counter": {
18583
+ component: "ComboCounter",
18584
+ importPath: "@/components/atoms/ComboCounter",
18585
+ category: "component"
18586
+ },
18587
+ "damage-number": {
18588
+ component: "DamageNumber",
18589
+ importPath: "@/components/atoms/DamageNumber",
18590
+ category: "component"
18591
+ },
18592
+ "dialogue-bubble": {
18593
+ component: "DialogueBubble",
18594
+ importPath: "@/components/atoms/DialogueBubble",
18595
+ category: "game"
18596
+ },
18597
+ "item-slot": {
18598
+ component: "ItemSlot",
18599
+ importPath: "@/components/atoms/ItemSlot",
18600
+ category: "layout"
18601
+ },
18602
+ "mini-map": {
18603
+ component: "MiniMap",
18604
+ importPath: "@/components/atoms/MiniMap",
18605
+ category: "component"
18606
+ },
18607
+ "resource-counter": {
18608
+ component: "ResourceCounter",
18609
+ importPath: "@/components/atoms/ResourceCounter",
18610
+ category: "component"
18611
+ },
18612
+ "status-effect": {
18613
+ component: "StatusEffect",
18614
+ importPath: "@/components/atoms/StatusEffect",
18615
+ category: "display"
18616
+ },
18617
+ "timer-display": {
18618
+ component: "TimerDisplay",
18619
+ importPath: "@/components/atoms/TimerDisplay",
18620
+ category: "component"
18621
+ },
18622
+ "turn-indicator": {
18623
+ component: "TurnIndicator",
18624
+ importPath: "@/components/atoms/TurnIndicator",
18625
+ category: "component"
18626
+ },
18627
+ "waypoint-marker": {
18628
+ component: "WaypointMarker",
18629
+ importPath: "@/components/atoms/WaypointMarker",
18630
+ category: "component"
18631
+ },
18632
+ "x-p-bar": {
18633
+ component: "XPBar",
18634
+ importPath: "@/components/atoms/XPBar",
18635
+ category: "component"
18636
+ },
18637
+ "crafting-recipe": {
18638
+ component: "CraftingRecipe",
18639
+ importPath: "@/components/molecules/CraftingRecipe",
18640
+ category: "component"
18641
+ },
18642
+ "enemy-plate": {
18643
+ component: "EnemyPlate",
18644
+ importPath: "@/components/molecules/EnemyPlate",
18645
+ category: "component"
18646
+ },
18647
+ "game-canvas2-d": {
18648
+ component: "GameCanvas2D",
18649
+ importPath: "@/components/molecules/GameCanvas2D",
18650
+ category: "game"
18651
+ },
18652
+ "health-panel": {
18653
+ component: "HealthPanel",
18654
+ importPath: "@/components/molecules/HealthPanel",
18655
+ category: "component"
18656
+ },
18657
+ "inventory-grid": {
18658
+ component: "InventoryGrid",
18659
+ importPath: "@/components/molecules/InventoryGrid",
18660
+ category: "game"
18661
+ },
18662
+ "powerup-slots": {
18663
+ component: "PowerupSlots",
18664
+ importPath: "@/components/molecules/PowerupSlots",
18665
+ category: "layout"
18666
+ },
18667
+ "quest-tracker": {
18668
+ component: "QuestTracker",
18669
+ importPath: "@/components/molecules/QuestTracker",
18670
+ category: "component"
18671
+ },
18672
+ "resource-bar": {
18673
+ component: "ResourceBar",
18674
+ importPath: "@/components/molecules/ResourceBar",
18675
+ category: "component"
18676
+ },
18677
+ "score-board": {
18678
+ component: "ScoreBoard",
18679
+ importPath: "@/components/molecules/ScoreBoard",
18680
+ category: "game"
18681
+ },
18682
+ "turn-panel": {
18683
+ component: "TurnPanel",
18684
+ importPath: "@/components/molecules/TurnPanel",
18685
+ category: "component"
18686
+ },
18687
+ "unit-command-bar": {
18688
+ component: "UnitCommandBar",
18689
+ importPath: "@/components/molecules/UnitCommandBar",
18690
+ category: "component"
18691
+ },
17442
18692
  heading: {
17443
18693
  component: "Typography",
17444
18694
  importPath: "@/components/atoms/Typography",
@@ -17455,7 +18705,7 @@ var component_mapping_default = {
17455
18705
  // src/event-contracts.json
17456
18706
  var event_contracts_default = {
17457
18707
  version: "1.0.0",
17458
- exportedAt: "2026-03-10T17:18:23.379Z",
18708
+ exportedAt: "2026-03-11T04:10:55.563Z",
17459
18709
  contracts: {
17460
18710
  form: {
17461
18711
  emits: [
@@ -18587,7 +19837,7 @@ var event_contracts_default = {
18587
19837
  }
18588
19838
  ],
18589
19839
  requires: [],
18590
- entityAware: true
19840
+ entityAware: false
18591
19841
  },
18592
19842
  "trait-slot": {
18593
19843
  emits: [