@almadar/patterns 2.5.0 → 2.6.2

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