@almadar/mobile 1.2.4 → 1.4.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.
Files changed (154) hide show
  1. package/dist/chunk-4GLV4XIP.js +140 -0
  2. package/dist/chunk-4GLV4XIP.js.map +1 -0
  3. package/dist/{chunk-QUFLYKWA.js → chunk-A6AK75GP.js} +43 -554
  4. package/dist/chunk-A6AK75GP.js.map +1 -0
  5. package/dist/chunk-BUN5QD6C.js +525 -0
  6. package/dist/chunk-BUN5QD6C.js.map +1 -0
  7. package/dist/{chunk-PBO6ZN2M.js → chunk-C3USTXJ7.js} +1372 -2255
  8. package/dist/chunk-C3USTXJ7.js.map +1 -0
  9. package/dist/{chunk-5U5Z65ZO.js → chunk-DNC6CO6E.js} +58 -187
  10. package/dist/chunk-DNC6CO6E.js.map +1 -0
  11. package/dist/chunk-I6UYSB5R.js +935 -0
  12. package/dist/chunk-I6UYSB5R.js.map +1 -0
  13. package/dist/{chunk-ETD72PHO.js → chunk-SLYJ52HW.js} +30 -21
  14. package/dist/chunk-SLYJ52HW.js.map +1 -0
  15. package/dist/chunk-UIU7NWN2.js +924 -0
  16. package/dist/chunk-UIU7NWN2.js.map +1 -0
  17. package/dist/{chunk-BFRVXKSP.js → chunk-VNRKHWR7.js} +87 -4
  18. package/dist/chunk-VNRKHWR7.js.map +1 -0
  19. package/dist/{chunk-CA6Z3OTE.js → chunk-WHAG42QJ.js} +1 -1
  20. package/dist/chunk-WHAG42QJ.js.map +1 -0
  21. package/dist/{chunk-GMR5FKKB.js → chunk-XWPR5FXS.js} +2 -2
  22. package/dist/chunk-XWPR5FXS.js.map +1 -0
  23. package/dist/{chunk-MLTSQPVN.js → chunk-YWQRLHTP.js} +2 -2
  24. package/dist/chunk-YWQRLHTP.js.map +1 -0
  25. package/dist/components/atoms/Button.d.ts +3 -2
  26. package/dist/components/atoms/Button.d.ts.map +1 -1
  27. package/dist/components/atoms/Card.d.ts +3 -2
  28. package/dist/components/atoms/Card.d.ts.map +1 -1
  29. package/dist/components/atoms/Checkbox.d.ts +3 -2
  30. package/dist/components/atoms/Checkbox.d.ts.map +1 -1
  31. package/dist/components/atoms/DayCell.d.ts +3 -2
  32. package/dist/components/atoms/DayCell.d.ts.map +1 -1
  33. package/dist/components/atoms/InfiniteScrollSentinel.d.ts +3 -2
  34. package/dist/components/atoms/InfiniteScrollSentinel.d.ts.map +1 -1
  35. package/dist/components/atoms/Radio.d.ts +3 -2
  36. package/dist/components/atoms/Radio.d.ts.map +1 -1
  37. package/dist/components/atoms/RangeSlider.d.ts +3 -2
  38. package/dist/components/atoms/RangeSlider.d.ts.map +1 -1
  39. package/dist/components/atoms/Select.d.ts +3 -2
  40. package/dist/components/atoms/Select.d.ts.map +1 -1
  41. package/dist/components/atoms/Switch.d.ts +3 -2
  42. package/dist/components/atoms/Switch.d.ts.map +1 -1
  43. package/dist/components/atoms/TextHighlight.d.ts +3 -2
  44. package/dist/components/atoms/TextHighlight.d.ts.map +1 -1
  45. package/dist/components/atoms/game/OrbitalGameCanvas.d.ts +25 -0
  46. package/dist/components/atoms/game/OrbitalGameCanvas.d.ts.map +1 -0
  47. package/dist/components/atoms/game/index.d.ts +2 -0
  48. package/dist/components/atoms/game/index.d.ts.map +1 -1
  49. package/dist/components/atoms/index.d.ts +4 -4
  50. package/dist/components/atoms/index.d.ts.map +1 -1
  51. package/dist/components/atoms/index.js +14 -9
  52. package/dist/components/index.d.ts +1 -0
  53. package/dist/components/index.d.ts.map +1 -1
  54. package/dist/components/index.js +47 -20
  55. package/dist/components/molecules/Alert.d.ts +3 -2
  56. package/dist/components/molecules/Alert.d.ts.map +1 -1
  57. package/dist/components/molecules/DataGrid.d.ts +6 -5
  58. package/dist/components/molecules/DataGrid.d.ts.map +1 -1
  59. package/dist/components/molecules/DataList.d.ts +5 -4
  60. package/dist/components/molecules/DataList.d.ts.map +1 -1
  61. package/dist/components/molecules/NumberStepper.d.ts +3 -2
  62. package/dist/components/molecules/NumberStepper.d.ts.map +1 -1
  63. package/dist/components/molecules/PullToRefresh.d.ts +3 -2
  64. package/dist/components/molecules/PullToRefresh.d.ts.map +1 -1
  65. package/dist/components/molecules/RelationSelect.d.ts +3 -2
  66. package/dist/components/molecules/RelationSelect.d.ts.map +1 -1
  67. package/dist/components/molecules/RepeatableFormSection.d.ts +6 -5
  68. package/dist/components/molecules/RepeatableFormSection.d.ts.map +1 -1
  69. package/dist/components/molecules/SortableList.d.ts +2 -1
  70. package/dist/components/molecules/SortableList.d.ts.map +1 -1
  71. package/dist/components/molecules/StarRating.d.ts +3 -2
  72. package/dist/components/molecules/StarRating.d.ts.map +1 -1
  73. package/dist/components/molecules/SwipeableRow.d.ts +3 -2
  74. package/dist/components/molecules/SwipeableRow.d.ts.map +1 -1
  75. package/dist/components/molecules/Toast.d.ts +3 -2
  76. package/dist/components/molecules/Toast.d.ts.map +1 -1
  77. package/dist/components/molecules/index.js +9 -6
  78. package/dist/components/organisms/CardGrid.d.ts +6 -5
  79. package/dist/components/organisms/CardGrid.d.ts.map +1 -1
  80. package/dist/components/organisms/ComponentPatterns.d.ts.map +1 -1
  81. package/dist/components/organisms/ContentRenderer.d.ts.map +1 -1
  82. package/dist/components/organisms/DataTable.d.ts +2 -4
  83. package/dist/components/organisms/DataTable.d.ts.map +1 -1
  84. package/dist/components/organisms/DocumentViewer.d.ts.map +1 -1
  85. package/dist/components/organisms/DrawerSlot.d.ts +5 -4
  86. package/dist/components/organisms/DrawerSlot.d.ts.map +1 -1
  87. package/dist/components/organisms/FormSection.d.ts +8 -1
  88. package/dist/components/organisms/FormSection.d.ts.map +1 -1
  89. package/dist/components/organisms/Header.d.ts +3 -2
  90. package/dist/components/organisms/Header.d.ts.map +1 -1
  91. package/dist/components/organisms/LayoutPatterns.d.ts.map +1 -1
  92. package/dist/components/organisms/MasterDetail.d.ts.map +1 -1
  93. package/dist/components/organisms/MediaGallery.d.ts +2 -1
  94. package/dist/components/organisms/MediaGallery.d.ts.map +1 -1
  95. package/dist/components/organisms/ModalSlot.d.ts +5 -4
  96. package/dist/components/organisms/ModalSlot.d.ts.map +1 -1
  97. package/dist/components/organisms/PageHeader.d.ts +7 -0
  98. package/dist/components/organisms/PageHeader.d.ts.map +1 -1
  99. package/dist/components/organisms/SignaturePad.d.ts.map +1 -1
  100. package/dist/components/organisms/StatCard.d.ts +3 -2
  101. package/dist/components/organisms/StatCard.d.ts.map +1 -1
  102. package/dist/components/organisms/StateMachineView.d.ts.map +1 -1
  103. package/dist/components/organisms/Table.d.ts.map +1 -1
  104. package/dist/components/organisms/ToastSlot.d.ts +6 -5
  105. package/dist/components/organisms/ToastSlot.d.ts.map +1 -1
  106. package/dist/components/organisms/UISlotRenderer.d.ts +2 -1
  107. package/dist/components/organisms/UISlotRenderer.d.ts.map +1 -1
  108. package/dist/components/organisms/book/BookChapterView.d.ts +2 -1
  109. package/dist/components/organisms/book/BookChapterView.d.ts.map +1 -1
  110. package/dist/components/organisms/book/BookCoverPage.d.ts +2 -1
  111. package/dist/components/organisms/book/BookCoverPage.d.ts.map +1 -1
  112. package/dist/components/organisms/book/BookNavBar.d.ts +2 -1
  113. package/dist/components/organisms/book/BookNavBar.d.ts.map +1 -1
  114. package/dist/components/organisms/book/BookTableOfContents.d.ts +2 -1
  115. package/dist/components/organisms/book/BookTableOfContents.d.ts.map +1 -1
  116. package/dist/components/organisms/book/BookViewer.d.ts +2 -1
  117. package/dist/components/organisms/book/BookViewer.d.ts.map +1 -1
  118. package/dist/components/organisms/game/DialogueBox.d.ts.map +1 -1
  119. package/dist/components/organisms/game/InventoryPanel.d.ts.map +1 -1
  120. package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts.map +1 -1
  121. package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts.map +1 -1
  122. package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts.map +1 -1
  123. package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts.map +1 -1
  124. package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts.map +1 -1
  125. package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts.map +1 -1
  126. package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts.map +1 -1
  127. package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts.map +1 -1
  128. package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts.map +1 -1
  129. package/dist/components/organisms/index.d.ts +1 -1
  130. package/dist/components/organisms/index.d.ts.map +1 -1
  131. package/dist/components/organisms/index.js +14 -10
  132. package/dist/components/organisms/layout/DashboardGrid.d.ts +3 -2
  133. package/dist/components/organisms/layout/DashboardGrid.d.ts.map +1 -1
  134. package/dist/components/templates/BattleTemplate.d.ts.map +1 -1
  135. package/dist/components/templates/index.js +26 -0
  136. package/dist/components/templates/index.js.map +1 -0
  137. package/dist/hooks/index.js +1 -1
  138. package/dist/hooks/useTraitState.d.ts +3 -3
  139. package/dist/hooks/useTraitState.d.ts.map +1 -1
  140. package/dist/index.d.ts +1 -0
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +40 -907
  143. package/dist/index.js.map +1 -1
  144. package/dist/types/index.d.ts +7 -0
  145. package/dist/types/index.d.ts.map +1 -0
  146. package/package.json +14 -7
  147. package/dist/chunk-5U5Z65ZO.js.map +0 -1
  148. package/dist/chunk-BFRVXKSP.js.map +0 -1
  149. package/dist/chunk-CA6Z3OTE.js.map +0 -1
  150. package/dist/chunk-ETD72PHO.js.map +0 -1
  151. package/dist/chunk-GMR5FKKB.js.map +0 -1
  152. package/dist/chunk-MLTSQPVN.js.map +0 -1
  153. package/dist/chunk-PBO6ZN2M.js.map +0 -1
  154. package/dist/chunk-QUFLYKWA.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/organisms/Header.tsx","../src/components/organisms/game/BattleBoard.tsx","../src/components/organisms/game/CastleBoard.tsx","../src/components/organisms/game/GameHud.tsx","../src/components/organisms/game/GameMenu.tsx","../src/components/organisms/game/WorldMapBoard.tsx"],"sourcesContent":["import React from 'react';\nimport { \n TouchableOpacity, \n StyleSheet, \n ViewStyle,\n StatusBar,\n SafeAreaView \n} from 'react-native';\nimport { useTheme } from '../../providers/ThemeContext';\nimport { useEventBus } from '../../hooks/useEventBus';\nimport { Typography } from '../atoms/Typography';\nimport { LoadingState } from '../molecules/LoadingState';\nimport { ErrorState } from '../molecules/ErrorState';\nimport { HStack } from '../atoms/Stack';\nimport type { EventKey, EventPayload } from '../../types';\n\n\nexport interface HeaderAction {\n icon?: React.ReactNode;\n label?: string;\n action?: EventKey;\n actionPayload?: EventPayload;\n onPress?: () => void;\n}\n\nexport interface HeaderProps {\n title?: string;\n showBackButton?: boolean;\n onBack?: () => void;\n backAction?: string;\n rightActions?: HeaderAction[];\n leftElement?: React.ReactNode;\n style?: ViewStyle;\n /** Loading state indicator */\n isLoading?: boolean;\n /** Error state */\n error?: Error | null;\n}\n\nexport const Header: React.FC<HeaderProps> = ({\n title,\n showBackButton = false,\n onBack,\n backAction,\n rightActions = [],\n leftElement,\n style,\n isLoading,\n error,\n}) => {\n const theme = useTheme();\n const eventBus = useEventBus();\n\n const handleBack = () => {\n if (backAction) {\n eventBus.emit(`UI:${backAction}`);\n }\n onBack?.();\n };\n\n const handleAction = (action: HeaderAction) => {\n if (action.action) {\n eventBus.emit(`UI:${action.action}`, action.actionPayload);\n }\n action.onPress?.();\n };\n\n if (isLoading) {\n return (\n <SafeAreaView style={[styles.container, { backgroundColor: theme.colors.card }, style]}>\n <StatusBar barStyle=\"dark-content\" backgroundColor={theme.colors.card} />\n <LoadingState message=\"Loading...\" />\n </SafeAreaView>\n );\n }\n\n if (error) {\n return (\n <SafeAreaView style={[styles.container, { backgroundColor: theme.colors.card }, style]}>\n <StatusBar barStyle=\"dark-content\" backgroundColor={theme.colors.card} />\n <ErrorState message={error.message} />\n </SafeAreaView>\n );\n }\n\n return (\n <SafeAreaView style={[styles.container, { backgroundColor: theme.colors.card }, style]}>\n <StatusBar barStyle=\"dark-content\" backgroundColor={theme.colors.card} />\n <HStack align=\"center\" justify=\"space-between\" style={styles.content}>\n <HStack align=\"center\" spacing={8} style={styles.left}>\n {showBackButton && (\n <TouchableOpacity \n onPress={handleBack}\n style={styles.backButton}\n >\n <Typography variant=\"h4\" style={{ color: theme.colors.primary }}>\n ←\n </Typography>\n </TouchableOpacity>\n )}\n {leftElement}\n {title && (\n <Typography variant=\"h4\" style={{ color: theme.colors.foreground }}>\n {title}\n </Typography>\n )}\n </HStack>\n\n {rightActions.length > 0 && (\n <HStack align=\"center\" spacing={12}>\n {rightActions.map((action, index) => (\n <TouchableOpacity\n key={index}\n onPress={() => handleAction(action)}\n style={styles.actionButton}\n >\n {action.icon || (\n action.label && (\n <Typography variant=\"body\" style={{ color: theme.colors.primary }}>\n {action.label}\n </Typography>\n )\n )}\n </TouchableOpacity>\n ))}\n </HStack>\n )}\n </HStack>\n </SafeAreaView>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.1,\n shadowRadius: 2,\n elevation: 3,\n zIndex: 100,\n },\n content: {\n height: 56,\n paddingHorizontal: 16,\n },\n left: {\n flex: 1,\n },\n backButton: {\n padding: 8,\n marginLeft: -8,\n },\n actionButton: {\n padding: 8,\n },\n});\n\nHeader.displayName = 'Header';\n","import React from 'react';\nimport { \n View, \n Text, \n TouchableOpacity,\n StyleSheet, \n ViewStyle\n} from 'react-native';\nimport { useTheme } from '../../../providers/ThemeContext';\nimport { useEventBus } from '../../../hooks/useEventBus';\nimport { Card } from '../../atoms/Card';\nimport { Typography } from '../../atoms/Typography';\nimport { VStack, HStack } from '../../atoms/Stack';\n\nexport interface BattleUnit {\n id: string;\n name: string;\n hp: number;\n maxHp: number;\n mp?: number;\n maxMp?: number;\n level?: number;\n avatar?: string;\n isPlayer?: boolean;\n isDead?: boolean;\n status?: string[];\n}\n\nexport interface BattleBoardProps {\n /** Units on the battlefield */\n units: BattleUnit[];\n /** Currently active unit ID */\n activeUnitId?: string;\n /** Selected unit ID */\n selectedUnitId?: string;\n /** Turn number */\n turn?: number;\n /** Available actions for active unit */\n actions?: string[];\n /** Callback when unit is selected */\n onSelectUnit?: (unitId: string) => void;\n /** Callback when action is selected */\n onAction?: (action: string) => void;\n /** Event names */\n selectUnitEvent?: string;\n actionEvent?: string;\n /** Additional styles */\n style?: ViewStyle;\n}\n\nexport const BattleBoard: React.FC<BattleBoardProps> = ({\n units,\n activeUnitId,\n selectedUnitId,\n turn = 1,\n actions = [],\n onSelectUnit,\n onAction,\n selectUnitEvent,\n actionEvent,\n style,\n}) => {\n useTheme(); // Theme hook required by pattern\n const eventBus = useEventBus();\n\n const handleSelectUnit = (unitId: string) => {\n if (selectUnitEvent) eventBus.emit(`UI:${selectUnitEvent}`, { unitId });\n onSelectUnit?.(unitId);\n };\n\n const handleAction = (action: string) => {\n if (actionEvent) eventBus.emit(`UI:${actionEvent}`, { action });\n onAction?.(action);\n };\n\n const playerUnits = units.filter(u => u.isPlayer);\n const enemyUnits = units.filter(u => !u.isPlayer);\n\n const renderUnit = (unit: BattleUnit) => {\n const isActive = unit.id === activeUnitId;\n const isSelected = unit.id === selectedUnitId;\n const hpPercent = (unit.hp / unit.maxHp) * 100;\n\n return (\n <TouchableOpacity\n key={unit.id}\n onPress={() => handleSelectUnit(unit.id)}\n style={[\n styles.unitCard,\n {\n backgroundColor: unit.isDead ? '#374151' : '#1f2937',\n borderColor: isActive ? '#fbbf24' : isSelected ? '#3b82f6' : '#4b5563',\n borderWidth: isActive ? 2 : isSelected ? 2 : 1,\n opacity: unit.isDead ? 0.6 : 1,\n },\n ]}\n >\n <View style={styles.avatar}>\n <Text style={styles.avatarText}>\n {unit.avatar || (unit.isPlayer ? '🧙' : '👹')}\n </Text>\n </View>\n \n <VStack spacing={4} style={styles.unitInfo}>\n <Text style={styles.unitName} numberOfLines={1}>\n {unit.name}\n </Text>\n \n {/* HP Bar */}\n <View style={styles.barContainer}>\n <View style={[styles.hpBar, { width: `${hpPercent}%` }]} />\n </View>\n \n <Text style={styles.hpText}>\n {unit.hp}/{unit.maxHp} HP\n </Text>\n \n {unit.mp !== undefined && unit.maxMp !== undefined && (\n <>\n <View style={styles.barContainer}>\n <View \n style={[\n styles.mpBar, \n { width: `${(unit.mp / unit.maxMp) * 100}%` }\n ]} \n />\n </View>\n <Text style={styles.mpText}>\n {unit.mp}/{unit.maxMp} MP\n </Text>\n </>\n )}\n \n {unit.status && unit.status.length > 0 && (\n <HStack spacing={4} style={styles.statusContainer}>\n {unit.status.map((s, i) => (\n <Text key={i} style={styles.statusBadge}>{s}</Text>\n ))}\n </HStack>\n )}\n </VStack>\n </TouchableOpacity>\n );\n };\n\n return (\n <Card style={[styles.container, ...(style ? [style] : [])]}>\n <VStack spacing={16}>\n {/* Turn indicator */}\n <View style={styles.turnBar}>\n <Typography variant=\"h4\" style={{ color: '#fbbf24' }}>\n TURN {turn}\n </Typography>\n {activeUnitId && (\n <Text style={styles.activeText}>\n Active: {units.find(u => u.id === activeUnitId)?.name}\n </Text>\n )}\n </View>\n\n {/* Battlefield */}\n <View style={styles.battlefield}>\n {/* Player side */}\n <VStack spacing={8} style={styles.side}>\n <Text style={styles.sideLabel}>ALLIES</Text>\n {playerUnits.map(renderUnit)}\n </VStack>\n\n <View style={styles.vsDivider}>\n <Text style={styles.vsText}>VS</Text>\n </View>\n\n {/* Enemy side */}\n <VStack spacing={8} style={styles.side}>\n <Text style={styles.sideLabel}>ENEMIES</Text>\n {enemyUnits.map(renderUnit)}\n </VStack>\n </View>\n\n {/* Action bar */}\n {actions.length > 0 && (\n <View style={styles.actionBar}>\n <HStack spacing={8} style={styles.actionContainer}>\n {actions.map(action => (\n <TouchableOpacity\n key={action}\n onPress={() => handleAction(action)}\n style={styles.actionButton}\n >\n <Text style={styles.actionText}>{action.toUpperCase()}</Text>\n </TouchableOpacity>\n ))}\n </HStack>\n </View>\n )}\n </VStack>\n </Card>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n padding: 16,\n },\n turnBar: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingHorizontal: 16,\n paddingVertical: 12,\n backgroundColor: '#111827',\n borderRadius: 8,\n },\n activeText: {\n color: '#9ca3af',\n fontSize: 14,\n },\n battlefield: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n gap: 16,\n },\n side: {\n flex: 1,\n },\n sideLabel: {\n color: '#6b7280',\n fontSize: 12,\n fontWeight: '700',\n textAlign: 'center',\n marginBottom: 8,\n },\n vsDivider: {\n justifyContent: 'center',\n alignItems: 'center',\n },\n vsText: {\n color: '#ef4444',\n fontSize: 20,\n fontWeight: '800',\n },\n unitCard: {\n flexDirection: 'row',\n padding: 12,\n borderRadius: 8,\n borderWidth: 1,\n gap: 12,\n },\n avatar: {\n width: 48,\n height: 48,\n borderRadius: 24,\n backgroundColor: '#374151',\n justifyContent: 'center',\n alignItems: 'center',\n },\n avatarText: {\n fontSize: 24,\n },\n unitInfo: {\n flex: 1,\n },\n unitName: {\n color: '#fff',\n fontSize: 14,\n fontWeight: '600',\n },\n barContainer: {\n height: 6,\n backgroundColor: '#374151',\n borderRadius: 3,\n overflow: 'hidden',\n },\n hpBar: {\n height: '100%',\n backgroundColor: '#22c55e',\n },\n mpBar: {\n height: '100%',\n backgroundColor: '#3b82f6',\n },\n hpText: {\n color: '#9ca3af',\n fontSize: 10,\n },\n mpText: {\n color: '#6b7280',\n fontSize: 10,\n },\n statusContainer: {\n flexWrap: 'wrap',\n },\n statusBadge: {\n backgroundColor: '#6b7280',\n color: '#fff',\n fontSize: 10,\n paddingHorizontal: 4,\n paddingVertical: 2,\n borderRadius: 4,\n },\n actionBar: {\n padding: 12,\n backgroundColor: '#111827',\n borderRadius: 8,\n },\n actionContainer: {\n justifyContent: 'center',\n flexWrap: 'wrap',\n },\n actionButton: {\n backgroundColor: '#374151',\n paddingHorizontal: 16,\n paddingVertical: 10,\n borderRadius: 6,\n },\n actionText: {\n color: '#fff',\n fontWeight: '600',\n fontSize: 14,\n },\n});\n\nBattleBoard.displayName = 'BattleBoard';\n","import React from 'react';\nimport { \n View, \n Text, \n TouchableOpacity,\n StyleSheet, \n ViewStyle,\n ScrollView \n} from 'react-native';\nimport { useTheme } from '../../../providers/ThemeContext';\nimport { useEventBus } from '../../../hooks/useEventBus';\nimport { Card } from '../../atoms/Card';\nimport { Typography } from '../../atoms/Typography';\nimport { VStack, HStack } from '../../atoms/Stack';\n\nexport interface CastleRoom {\n id: string;\n name: string;\n icon?: string;\n description?: string;\n unlocked?: boolean;\n visited?: boolean;\n level?: number;\n x: number;\n y: number;\n connections?: string[];\n}\n\nexport interface CastleBoardProps {\n /** All rooms in the castle */\n rooms: CastleRoom[];\n /** Current room ID */\n currentRoomId?: string;\n /** Callback when room is selected */\n onSelectRoom?: (roomId: string) => void;\n /** Event name for room selection */\n selectRoomEvent?: string;\n /** Castle name/title */\n title?: string;\n /** Additional styles */\n style?: ViewStyle;\n}\n\nexport const CastleBoard: React.FC<CastleBoardProps> = ({\n rooms,\n currentRoomId,\n onSelectRoom,\n selectRoomEvent,\n title,\n style,\n}) => {\n useTheme(); // Theme hook required by pattern\n const eventBus = useEventBus();\n\n const handleSelectRoom = (roomId: string) => {\n if (selectRoomEvent) eventBus.emit(`UI:${selectRoomEvent}`, { roomId });\n onSelectRoom?.(roomId);\n };\n\n // Group rooms by floor/level for vertical layout\n const roomsByLevel = rooms.reduce((acc, room) => {\n const level = room.level || 1;\n if (!acc[level]) acc[level] = [];\n acc[level].push(room);\n return acc;\n }, {} as Record<number, CastleRoom[]>);\n\n const sortedLevels = Object.keys(roomsByLevel)\n .map(Number)\n .sort((a, b) => b - a); // Highest level at top\n\n const renderRoom = (room: CastleRoom) => {\n const isCurrent = room.id === currentRoomId;\n const isUnlocked = room.unlocked !== false;\n const isVisited = room.visited;\n\n return (\n <TouchableOpacity\n key={room.id}\n onPress={() => isUnlocked && handleSelectRoom(room.id)}\n disabled={!isUnlocked}\n style={[\n styles.room,\n {\n backgroundColor: isCurrent \n ? '#fbbf24' \n : isVisited \n ? '#374151' \n : '#1f2937',\n borderColor: isCurrent ? '#f59e0b' : isUnlocked ? '#4b5563' : '#1f2937',\n borderWidth: 2,\n opacity: isUnlocked ? 1 : 0.4,\n },\n ]}\n >\n <Text style={{ fontSize: 24 }}>\n {isUnlocked ? (room.icon || '🚪') : '🔒'}\n </Text>\n <Text \n style={[\n styles.roomName,\n { color: isCurrent ? '#000' : '#fff' }\n ]} \n numberOfLines={1}\n >\n {isUnlocked ? room.name : '???'}\n </Text>\n </TouchableOpacity>\n );\n };\n\n const currentRoom = rooms.find(r => r.id === currentRoomId);\n\n return (\n <Card style={[styles.container, ...(style ? [style] : [])]}>\n <VStack spacing={16}>\n {/* Header */}\n <View style={styles.header}>\n <Typography variant=\"h3\" style={{ color: '#fff' }}>\n {title || '🏰 Castle'}\n </Typography>\n {currentRoom && (\n <Text style={styles.currentRoom}>\n Location: {currentRoom.name}\n </Text>\n )}\n </View>\n\n {/* Map */}\n <ScrollView \n style={styles.mapContainer}\n contentContainerStyle={styles.mapContent}\n showsVerticalScrollIndicator={false}\n >\n {sortedLevels.map(level => (\n <View key={level} style={styles.floor}>\n <Text style={styles.floorLabel}>F{level}</Text>\n <HStack spacing={12} style={styles.floorRooms}>\n {roomsByLevel[level].map(renderRoom)}\n </HStack>\n </View>\n ))}\n </ScrollView>\n\n {/* Selected room info */}\n {currentRoom && (\n <View style={styles.roomInfo}>\n <Typography variant=\"h4\" style={{ color: '#fbbf24' }}>\n {currentRoom.icon} {currentRoom.name}\n </Typography>\n {currentRoom.description && (\n <Text style={styles.description}>\n {currentRoom.description}\n </Text>\n )}\n <Text style={styles.connections}>\n Connections: {currentRoom.connections?.length || 0}\n </Text>\n </View>\n )}\n </VStack>\n </Card>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n padding: 16,\n },\n header: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingBottom: 12,\n borderBottomWidth: 1,\n borderBottomColor: '#374151',\n },\n currentRoom: {\n color: '#9ca3af',\n fontSize: 12,\n },\n mapContainer: {\n maxHeight: 300,\n },\n mapContent: {\n paddingVertical: 8,\n },\n floor: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n marginBottom: 16,\n },\n floorLabel: {\n color: '#6b7280',\n fontSize: 12,\n fontWeight: '700',\n width: 24,\n },\n floorRooms: {\n flexWrap: 'wrap',\n },\n room: {\n width: 80,\n height: 80,\n borderRadius: 8,\n justifyContent: 'center',\n alignItems: 'center',\n gap: 4,\n },\n roomName: {\n fontSize: 10,\n fontWeight: '600',\n textAlign: 'center',\n maxWidth: 70,\n },\n roomInfo: {\n padding: 12,\n backgroundColor: '#111827',\n borderRadius: 8,\n gap: 8,\n },\n description: {\n color: '#9ca3af',\n fontSize: 14,\n lineHeight: 20,\n },\n connections: {\n color: '#6b7280',\n fontSize: 12,\n },\n});\n\nCastleBoard.displayName = 'CastleBoard';\n","import React from 'react';\nimport { View, StyleSheet, ViewStyle } from 'react-native';\nimport { StatBadge, StatBadgeProps } from '../../molecules/game/StatBadge';\n\nexport interface GameHudStat extends Omit<StatBadgeProps, 'size'> {\n /** Data source entity name */\n source?: string;\n /** Field name in the source */\n field?: string;\n}\n\n/**\n * Schema-style HUD element definition.\n * Used when elements are passed from schema render_ui effects.\n */\nexport interface GameHudElement {\n type: string;\n bind?: string;\n position?: string;\n label?: string;\n}\n\nexport interface GameHudProps {\n /** Position of the HUD */\n position?: 'top' | 'bottom' | 'corners' | string;\n /** Stats to display */\n stats?: readonly GameHudStat[];\n /** Alias for stats (schema compatibility) */\n items?: readonly GameHudStat[];\n /**\n * Schema-style elements array (alternative to stats).\n * Converted to stats internally for backwards compatibility.\n */\n elements?: readonly GameHudElement[];\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Additional styles */\n style?: ViewStyle;\n /** Whether to use a semi-transparent background */\n transparent?: boolean;\n}\n\n/**\n * Convert schema-style elements to GameHudStat format.\n */\nfunction convertElementsToStats(\n elements: readonly GameHudElement[],\n): GameHudStat[] {\n return elements.map((el) => {\n // Parse bind format: \"entity.field\" -> source + field\n const [source, field] = el.bind?.split('.') ?? [];\n\n // Map element type to stat label\n const labelMap: Record<string, string> = {\n 'health-bar': 'Health',\n 'score-display': 'Score',\n lives: 'Lives',\n timer: 'Time',\n };\n\n return {\n label: el.label || labelMap[el.type] || el.type,\n source,\n field,\n };\n });\n}\n\nexport const GameHud: React.FC<GameHudProps> = ({\n position: propPosition,\n stats: propStats,\n items,\n elements,\n size = 'md',\n style,\n transparent = true,\n}) => {\n // Convert elements to stats if provided, with items as alias for stats\n const stats =\n propStats ?? items ?? (elements ? convertElementsToStats(elements) : []);\n\n // Determine position from props or derive from elements\n const position = propPosition ?? 'corners';\n\n if (position === 'corners') {\n // Split stats between corners\n const leftStats = stats.slice(0, Math.ceil(stats.length / 2));\n const rightStats = stats.slice(Math.ceil(stats.length / 2));\n\n return (\n <View style={[styles.cornersContainer, ...(style ? [style] : [])]}>\n {/* Top-left */}\n <View style={styles.topLeft}>\n {leftStats.map((stat, i) => (\n <StatBadge key={i} {...stat} size={size} />\n ))}\n </View>\n\n {/* Top-right */}\n <View style={styles.topRight}>\n {rightStats.map((stat, i) => (\n <StatBadge key={i} {...stat} size={size} />\n ))}\n </View>\n </View>\n );\n }\n\n const positionStyle = position === 'bottom' ? styles.bottomPosition : styles.topPosition;\n\n return (\n <View\n style={[\n styles.container,\n positionStyle,\n transparent && styles.transparent,\n ...(style ? [style] : []),\n ]}\n >\n <View style={styles.statsRow}>\n {stats.map((stat, i) => (\n <StatBadge key={i} {...stat} size={size} />\n ))}\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n left: 0,\n right: 0,\n zIndex: 10,\n padding: 16,\n },\n topPosition: {\n top: 0,\n },\n bottomPosition: {\n bottom: 0,\n },\n transparent: {\n backgroundColor: 'rgba(0,0,0,0.5)',\n },\n cornersContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n pointerEvents: 'none',\n },\n topLeft: {\n position: 'absolute',\n top: 16,\n left: 16,\n gap: 8,\n pointerEvents: 'auto',\n },\n topRight: {\n position: 'absolute',\n top: 16,\n right: 16,\n gap: 8,\n alignItems: 'flex-end',\n pointerEvents: 'auto',\n },\n statsRow: {\n flexDirection: 'row',\n gap: 16,\n },\n});\n\nGameHud.displayName = 'GameHud';\n","import React from 'react';\nimport { \n View, \n Text, \n TouchableOpacity,\n StyleSheet, \n ViewStyle,\n Image,\n ImageBackground,\n Dimensions \n} from 'react-native';\nimport { useTheme } from '../../../providers/ThemeContext';\nimport { useEventBus } from '../../../hooks/useEventBus';\n\nimport { Typography } from '../../atoms/Typography';\nimport { VStack } from '../../atoms/Stack';\n\nexport interface MenuOption {\n id?: string;\n label: string;\n event?: string;\n navigatesTo?: string;\n variant?: \"primary\" | \"secondary\" | \"ghost\" | string;\n disabled?: boolean;\n subLabel?: string;\n action?: string;\n}\n\nexport interface GameMenuProps {\n /** Main title */\n title: string;\n /** Subtitle or tagline */\n subtitle?: string;\n /** Menu options - each renders as a button */\n options?: readonly MenuOption[];\n /** Alias for options */\n menuItems?: readonly MenuOption[];\n /** Callback when an option is selected */\n onSelect?: (option: MenuOption) => void;\n /** Optional eventBus instance */\n eventBus?: unknown;\n /** Background image URL */\n background?: string;\n /** Logo image URL */\n logo?: string;\n /** Additional styles */\n style?: ViewStyle;\n}\n\nconst { width, height } = Dimensions.get('window');\n\nexport const GameMenu: React.FC<GameMenuProps> = ({\n title,\n subtitle,\n options = [],\n menuItems,\n onSelect,\n eventBus,\n background,\n logo,\n style,\n}) => {\n const theme = useTheme();\n const defaultEventBus = useEventBus();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bus = (eventBus || defaultEventBus) as { emit: (event: string, data?: unknown) => void };\n const items = menuItems || options;\n\n const handleOptionPress = React.useCallback((option: MenuOption) => {\n if (option.disabled) return;\n \n // Emit event if specified\n if (option.event) {\n bus.emit(`UI:${option.event}`, option);\n }\n \n // Navigate if specified\n if (option.navigatesTo) {\n bus.emit('UI:navigate', { to: option.navigatesTo });\n }\n \n onSelect?.(option);\n }, [onSelect, bus]);\n\n const getVariantStyle = (variant?: string) => {\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: theme.colors.primary,\n borderColor: theme.colors.primary,\n };\n case 'secondary':\n return {\n backgroundColor: 'transparent',\n borderColor: theme.colors.primary,\n };\n case 'ghost':\n return {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n };\n default:\n return {\n backgroundColor: '#374151',\n borderColor: '#4b5563',\n };\n }\n };\n\n const content = (\n <VStack \n spacing={24} \n align=\"center\" \n justify=\"center\"\n style={[styles.container, ...(style ? [style] : [])]}\n >\n {/* Logo */}\n {logo && (\n <Image \n source={{ uri: logo }} \n style={styles.logo}\n resizeMode=\"contain\"\n />\n )}\n\n {/* Title Section */}\n <VStack spacing={8} align=\"center\">\n <Typography \n variant=\"h1\" \n style={{\n fontSize: 36,\n color: '#fff',\n textShadowColor: 'rgba(0,0,0,0.5)',\n textShadowOffset: { width: 0, height: 2 },\n textShadowRadius: 4,\n }}\n >\n {title}\n </Typography>\n {subtitle && (\n <Typography \n variant=\"h4\" \n style={{ color: '#9ca3af' }}\n >\n {subtitle}\n </Typography>\n )}\n </VStack>\n\n {/* Menu Options */}\n <VStack spacing={12} style={styles.optionsContainer}>\n {items.map((option, index) => (\n <TouchableOpacity\n key={option.id || index}\n onPress={() => handleOptionPress(option)}\n disabled={option.disabled}\n style={[\n styles.optionButton,\n getVariantStyle(option.variant),\n option.disabled && styles.optionDisabled,\n ]}\n >\n <VStack spacing={2} align=\"center\">\n <Text style={[\n styles.optionLabel,\n option.variant === 'primary' && styles.optionLabelPrimary,\n ]}>\n {option.label}\n </Text>\n {option.subLabel && (\n <Text style={styles.optionSubLabel}>\n {option.subLabel}\n </Text>\n )}\n </VStack>\n </TouchableOpacity>\n ))}\n </VStack>\n </VStack>\n );\n\n if (background) {\n return (\n <ImageBackground\n source={{ uri: background }}\n style={styles.background}\n resizeMode=\"cover\"\n >\n <View style={styles.overlay}>\n {content}\n </View>\n </ImageBackground>\n );\n }\n\n return (\n <View style={[styles.background, { backgroundColor: '#0f172a' }]}>\n {content}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n background: {\n flex: 1,\n width: width,\n height: height,\n },\n overlay: {\n flex: 1,\n backgroundColor: 'rgba(0,0,0,0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n },\n container: {\n padding: 24,\n },\n logo: {\n width: 120,\n height: 120,\n },\n optionsContainer: {\n width: '100%',\n maxWidth: 320,\n },\n optionButton: {\n paddingVertical: 16,\n paddingHorizontal: 32,\n borderRadius: 8,\n borderWidth: 2,\n alignItems: 'center',\n },\n optionDisabled: {\n opacity: 0.5,\n },\n optionLabel: {\n color: '#fff',\n fontSize: 18,\n fontWeight: '600',\n },\n optionLabelPrimary: {\n fontWeight: '700',\n },\n optionSubLabel: {\n color: '#9ca3af',\n fontSize: 12,\n },\n});\n\nGameMenu.displayName = 'GameMenu';\n","import React from 'react';\nimport { \n View, \n Text, \n TouchableOpacity,\n StyleSheet, \n ViewStyle,\n ScrollView\n} from 'react-native';\nimport { useTheme } from '../../../providers/ThemeContext';\nimport { useEventBus } from '../../../hooks/useEventBus';\nimport { Card } from '../../atoms/Card';\nimport { Typography } from '../../atoms/Typography';\nimport { VStack } from '../../atoms/Stack';\n\n\n\nexport interface MapNode {\n id: string;\n name: string;\n x: number; // 0-100 percentage\n y: number; // 0-100 percentage\n type?: 'start' | 'boss' | 'shop' | 'event' | 'combat' | 'rest';\n icon?: string;\n visited?: boolean;\n available?: boolean;\n locked?: boolean;\n tooltip?: string;\n}\n\nexport interface MapConnection {\n from: string;\n to: string;\n}\n\nexport interface WorldMapBoardProps {\n /** All nodes on the map */\n nodes: MapNode[];\n /** Connections between nodes */\n connections?: MapConnection[];\n /** Currently selected node ID */\n currentNodeId?: string;\n /** Player position node ID */\n playerNodeId?: string;\n /** Map title */\n title?: string;\n /** Current act/region name */\n act?: string;\n /** Callback when node is selected */\n onSelectNode?: (nodeId: string) => void;\n /** Event name for node selection */\n selectNodeEvent?: string;\n /** Additional styles */\n style?: ViewStyle;\n}\n\nexport const WorldMapBoard: React.FC<WorldMapBoardProps> = ({\n nodes,\n connections = [],\n currentNodeId,\n playerNodeId,\n title,\n act,\n onSelectNode,\n selectNodeEvent,\n style,\n}) => {\n useTheme(); // Theme hook required by pattern\n const eventBus = useEventBus();\n\n const handleSelectNode = (nodeId: string) => {\n if (selectNodeEvent) eventBus.emit(`UI:${selectNodeEvent}`, { nodeId });\n onSelectNode?.(nodeId);\n };\n\n const getNodeIcon = (type?: string) => {\n switch (type) {\n case 'start': return '🏁';\n case 'boss': return '👹';\n case 'shop': return '🏪';\n case 'event': return '❓';\n case 'rest': return '🔥';\n case 'combat':\n default: return '⚔️';\n }\n };\n\n const getNodeColor = (node: MapNode) => {\n if (node.id === playerNodeId) return '#22c55e';\n if (node.locked) return '#374151';\n if (node.visited) return '#6b7280';\n if (node.available) return '#fbbf24';\n return '#4b5563';\n };\n\n const currentNode = nodes.find(n => n.id === currentNodeId);\n const playerNode = nodes.find(n => n.id === playerNodeId);\n\n return (\n <Card style={[styles.container, ...(style ? [style] : [])]}>\n <VStack spacing={12}>\n {/* Header */}\n <View style={styles.header}>\n <View>\n <Typography variant=\"h3\" style={{ color: '#fff' }}>\n {title || '🗺️ World Map'}\n </Typography>\n {act && (\n <Text style={styles.actLabel}>{act}</Text>\n )}\n </View>\n {playerNode && (\n <View style={styles.playerBadge}>\n <Text style={styles.playerText}>You are here</Text>\n </View>\n )}\n </View>\n\n {/* Map area */}\n <ScrollView \n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.mapScrollContent}\n >\n <View style={styles.mapArea}>\n {/* Connection lines - simplified as dotted paths */}\n {connections.map((conn, idx) => {\n const fromNode = nodes.find(n => n.id === conn.from);\n const toNode = nodes.find(n => n.id === conn.to);\n if (!fromNode || !toNode) return null;\n \n return (\n <View\n key={idx}\n style={[\n styles.connection,\n {\n left: `${Math.min(fromNode.x, toNode.x)}%`,\n top: `${Math.min(fromNode.y, toNode.y)}%`,\n width: `${Math.abs(toNode.x - fromNode.x)}%`,\n height: `${Math.abs(toNode.y - fromNode.y)}%`,\n },\n ]}\n />\n );\n })}\n\n {/* Nodes */}\n {nodes.map(node => (\n <TouchableOpacity\n key={node.id}\n onPress={() => !node.locked && handleSelectNode(node.id)}\n disabled={node.locked}\n style={[\n styles.node,\n {\n left: `${node.x}%`,\n top: `${node.y}%`,\n backgroundColor: getNodeColor(node),\n opacity: node.locked ? 0.3 : 1,\n borderWidth: node.id === currentNodeId ? 3 : 0,\n borderColor: '#fff',\n },\n ]}\n >\n <Text style={styles.nodeIcon}>\n {node.icon || getNodeIcon(node.type)}\n </Text>\n \n {/* Player indicator */}\n {node.id === playerNodeId && (\n <View style={styles.playerIndicator}>\n <Text>🧙</Text>\n </View>\n )}\n </TouchableOpacity>\n ))}\n </View>\n </ScrollView>\n\n {/* Legend */}\n <View style={styles.legend}>\n <Text style={styles.legendTitle}>Legend</Text>\n <View style={styles.legendItems}>\n {[\n { type: 'combat', label: 'Combat', icon: '⚔️' },\n { type: 'shop', label: 'Shop', icon: '🏪' },\n { type: 'event', label: 'Event', icon: '❓' },\n { type: 'rest', label: 'Rest', icon: '🔥' },\n { type: 'boss', label: 'Boss', icon: '👹' },\n ].map(item => (\n <View key={item.type} style={styles.legendItem}>\n <Text>{item.icon}</Text>\n <Text style={styles.legendText}>{item.label}</Text>\n </View>\n ))}\n </View>\n </View>\n\n {/* Selected node info */}\n {currentNode && (\n <View style={styles.nodeInfo}>\n <Typography variant=\"h4\">\n {currentNode.icon || getNodeIcon(currentNode.type)} {currentNode.name}\n </Typography>\n {currentNode.tooltip && (\n <Text style={styles.tooltip}>{currentNode.tooltip}</Text>\n )}\n {!currentNode.available && !currentNode.visited && (\n <Text style={styles.lockedText}>🔒 Locked</Text>\n )}\n </View>\n )}\n </VStack>\n </Card>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n padding: 16,\n },\n header: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n actLabel: {\n color: '#6b7280',\n fontSize: 12,\n marginTop: 4,\n },\n playerBadge: {\n backgroundColor: '#22c55e',\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 12,\n },\n playerText: {\n color: '#fff',\n fontSize: 12,\n fontWeight: '600',\n },\n mapScrollContent: {\n paddingHorizontal: 8,\n },\n mapArea: {\n width: 600,\n height: 400,\n backgroundColor: '#111827',\n borderRadius: 12,\n position: 'relative',\n },\n connection: {\n position: 'absolute',\n borderWidth: 1,\n borderColor: '#4b5563',\n borderStyle: 'dashed',\n },\n node: {\n position: 'absolute',\n width: 48,\n height: 48,\n borderRadius: 24,\n justifyContent: 'center',\n alignItems: 'center',\n transform: [{ translateX: -24 }, { translateY: -24 }],\n marginLeft: 24,\n marginTop: 24,\n },\n nodeIcon: {\n fontSize: 20,\n },\n playerIndicator: {\n position: 'absolute',\n top: -12,\n backgroundColor: '#22c55e',\n padding: 4,\n borderRadius: 12,\n },\n legend: {\n padding: 12,\n backgroundColor: '#1f2937',\n borderRadius: 8,\n },\n legendTitle: {\n color: '#9ca3af',\n fontSize: 12,\n fontWeight: '700',\n marginBottom: 8,\n },\n legendItems: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 16,\n },\n legendItem: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n legendText: {\n color: '#fff',\n fontSize: 12,\n },\n nodeInfo: {\n padding: 12,\n backgroundColor: '#1f2937',\n borderRadius: 8,\n },\n tooltip: {\n color: '#9ca3af',\n fontSize: 14,\n marginTop: 4,\n },\n lockedText: {\n color: '#ef4444',\n fontSize: 12,\n marginTop: 4,\n },\n});\n\nWorldMapBoard.displayName = 'WorldMapBoard';\n"],"mappings":"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","names":["React","TouchableOpacity","StyleSheet","React","TouchableOpacity","styles","StyleSheet","React","View","Text","TouchableOpacity","StyleSheet","React","TouchableOpacity","styles","Text","View","StyleSheet","React","View","StyleSheet","React","View","styles","StyleSheet","React","View","Text","TouchableOpacity","StyleSheet","React","styles","TouchableOpacity","Text","View","StyleSheet","React","View","Text","TouchableOpacity","StyleSheet","ScrollView","React","styles","View","Text","ScrollView","TouchableOpacity","StyleSheet"]}
@@ -6,25 +6,27 @@ import {
6
6
  DayCell,
7
7
  InfiniteScrollSentinel,
8
8
  Label
9
- } from "./chunk-MLTSQPVN.js";
9
+ } from "./chunk-YWQRLHTP.js";
10
10
  import {
11
11
  EmptyState
12
- } from "./chunk-5U5Z65ZO.js";
12
+ } from "./chunk-4GLV4XIP.js";
13
13
  import {
14
14
  Badge,
15
+ Divider,
16
+ Icon,
17
+ Input,
18
+ ProgressBar,
19
+ Select
20
+ } from "./chunk-BUN5QD6C.js";
21
+ import {
15
22
  Button,
16
23
  Card,
17
- Divider,
18
24
  ErrorState,
19
25
  HStack,
20
- Icon,
21
- Input,
22
26
  LoadingState,
23
- ProgressBar,
24
- Select,
25
27
  Typography,
26
28
  VStack
27
- } from "./chunk-QUFLYKWA.js";
29
+ } from "./chunk-A6AK75GP.js";
28
30
  import {
29
31
  useEventBus
30
32
  } from "./chunk-YTVYMEKU.js";
@@ -3690,12 +3692,13 @@ var RepeatableFormSection = ({
3690
3692
  };
3691
3693
  const newItems = [...items, newItem];
3692
3694
  setItems(newItems);
3693
- eventBus.emit(`UI:${addEvent}`, {
3695
+ const addPayload = {
3694
3696
  entity,
3695
3697
  item: newItem,
3696
3698
  index: newItems.length - 1,
3697
3699
  totalItems: newItems.length
3698
- });
3700
+ };
3701
+ eventBus.emit(`UI:${addEvent}`, addPayload);
3699
3702
  onChange?.(newItems);
3700
3703
  }, [items, maxItems, generateId, entity, addEvent, onChange, eventBus]);
3701
3704
  const handleRemoveItem = useCallback5((index) => {
@@ -3705,12 +3708,13 @@ var RepeatableFormSection = ({
3705
3708
  const removedItem = items[index];
3706
3709
  const newItems = items.filter((_, i) => i !== index);
3707
3710
  setItems(newItems);
3708
- eventBus.emit(`UI:${removeEvent}`, {
3711
+ const removePayload = {
3709
3712
  entity,
3710
3713
  item: removedItem,
3711
3714
  index,
3712
3715
  totalItems: newItems.length
3713
- });
3716
+ };
3717
+ eventBus.emit(`UI:${removeEvent}`, removePayload);
3714
3718
  onChange?.(newItems);
3715
3719
  }, [items, minItems, entity, removeEvent, onChange, eventBus]);
3716
3720
  const handleUpdateItem = useCallback5((index, data) => {
@@ -3718,12 +3722,13 @@ var RepeatableFormSection = ({
3718
3722
  (item, i) => i === index ? { ...item, data: { ...item.data, ...data } } : item
3719
3723
  );
3720
3724
  setItems(newItems);
3721
- eventBus.emit(`UI:${updateEvent}`, {
3725
+ const updatePayload = {
3722
3726
  entity,
3723
3727
  item: newItems[index],
3724
3728
  index,
3725
3729
  data
3726
- });
3730
+ };
3731
+ eventBus.emit(`UI:${updateEvent}`, updatePayload);
3727
3732
  onChange?.(newItems);
3728
3733
  }, [items, entity, updateEvent, onChange, eventBus]);
3729
3734
  const canAdd = items.length < maxItems;
@@ -4150,7 +4155,7 @@ var DataList = ({
4150
4155
  const eventBus = useEventBus();
4151
4156
  const [visibleCount, setVisibleCount] = useState12(pageSize || Infinity);
4152
4157
  const fields = fieldsProp ?? columnsProp ?? [];
4153
- const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
4158
+ const allData = [...entity];
4154
4159
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
4155
4160
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
4156
4161
  const titleField = fields.find((f) => f.variant === "h3" || f.variant === "h4") ?? fields[0];
@@ -4163,7 +4168,8 @@ var DataList = ({
4163
4168
  if (error) return /* @__PURE__ */ React35.createElement(ErrorState, { message: error.message });
4164
4169
  if (data.length === 0) return /* @__PURE__ */ React35.createElement(EmptyState, { message: "No items found" });
4165
4170
  const handleAction = (action, itemData) => {
4166
- eventBus.emit(`UI:${action.event}`, { id: itemData.id, row: itemData });
4171
+ const payload = { id: itemData.id, row: itemData };
4172
+ eventBus.emit(`UI:${action.event}`, payload);
4167
4173
  };
4168
4174
  const isCard = variant === "card";
4169
4175
  const isCompact = variant === "compact";
@@ -4409,7 +4415,7 @@ var DataGrid = ({
4409
4415
  const [selectedIds, setSelectedIds] = useState13(/* @__PURE__ */ new Set());
4410
4416
  const [visibleCount, setVisibleCount] = useState13(pageSize || Infinity);
4411
4417
  const fields = fieldsProp ?? columnsProp ?? [];
4412
- const allData = Array.isArray(entity) ? entity : entity ? [entity] : [];
4418
+ const allData = [...entity];
4413
4419
  const data = pageSize > 0 ? allData.slice(0, visibleCount) : allData;
4414
4420
  const hasMoreLocal = pageSize > 0 && visibleCount < allData.length;
4415
4421
  const titleField = fields.find((f) => f.variant === "h3" || f.variant === "h4") ?? fields[0];
@@ -4423,7 +4429,8 @@ var DataGrid = ({
4423
4429
  if (next.has(id)) next.delete(id);
4424
4430
  else next.add(id);
4425
4431
  if (selectionEvent) {
4426
- eventBus.emit(`UI:${selectionEvent}`, { selectedIds: Array.from(next) });
4432
+ const payload = { selectedIds: Array.from(next) };
4433
+ eventBus.emit(`UI:${selectionEvent}`, payload);
4427
4434
  }
4428
4435
  return next;
4429
4436
  });
@@ -4436,7 +4443,8 @@ var DataGrid = ({
4436
4443
  const gapSize = gapValues5[gap];
4437
4444
  const cardWidth = (screenWidth - gapSize * (cols + 1)) / cols;
4438
4445
  const handleAction = (action, itemData) => {
4439
- eventBus.emit(`UI:${action.event}`, { id: itemData.id, row: itemData });
4446
+ const payload = { id: itemData.id, row: itemData };
4447
+ eventBus.emit(`UI:${action.event}`, payload);
4440
4448
  };
4441
4449
  const renderCard = ({ item: itemData, index }) => {
4442
4450
  const id = String(itemData.id ?? index);
@@ -4973,7 +4981,8 @@ var SortableList = ({
4973
4981
  next.splice(toIndex, 0, moved);
4974
4982
  onReorder?.(next);
4975
4983
  if (reorderEvent) {
4976
- eventBus.emit(`UI:${reorderEvent}`, { items: next, fromIndex, toIndex });
4984
+ const payload = { items: next, fromIndex, toIndex };
4985
+ eventBus.emit(`UI:${reorderEvent}`, payload);
4977
4986
  }
4978
4987
  return next;
4979
4988
  });
@@ -5608,4 +5617,4 @@ export {
5608
5617
  Lightbox,
5609
5618
  ScaledDiagram
5610
5619
  };
5611
- //# sourceMappingURL=chunk-ETD72PHO.js.map
5620
+ //# sourceMappingURL=chunk-SLYJ52HW.js.map