@almadar/mobile 1.2.6 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4GLV4XIP.js +140 -0
- package/dist/chunk-4GLV4XIP.js.map +1 -0
- package/dist/{chunk-QUFLYKWA.js → chunk-A6AK75GP.js} +43 -554
- package/dist/chunk-A6AK75GP.js.map +1 -0
- package/dist/chunk-BUN5QD6C.js +525 -0
- package/dist/chunk-BUN5QD6C.js.map +1 -0
- package/dist/{chunk-PBO6ZN2M.js → chunk-C3USTXJ7.js} +1372 -2255
- package/dist/chunk-C3USTXJ7.js.map +1 -0
- package/dist/{chunk-5U5Z65ZO.js → chunk-DNC6CO6E.js} +58 -187
- package/dist/chunk-DNC6CO6E.js.map +1 -0
- package/dist/chunk-I6UYSB5R.js +935 -0
- package/dist/chunk-I6UYSB5R.js.map +1 -0
- package/dist/{chunk-ETD72PHO.js → chunk-SLYJ52HW.js} +30 -21
- package/dist/chunk-SLYJ52HW.js.map +1 -0
- package/dist/chunk-UIU7NWN2.js +924 -0
- package/dist/chunk-UIU7NWN2.js.map +1 -0
- package/dist/{chunk-BFRVXKSP.js → chunk-VNRKHWR7.js} +87 -4
- package/dist/chunk-VNRKHWR7.js.map +1 -0
- package/dist/{chunk-CA6Z3OTE.js → chunk-WHAG42QJ.js} +1 -1
- package/dist/chunk-WHAG42QJ.js.map +1 -0
- package/dist/{chunk-GMR5FKKB.js → chunk-XWPR5FXS.js} +2 -2
- package/dist/chunk-XWPR5FXS.js.map +1 -0
- package/dist/{chunk-MLTSQPVN.js → chunk-YWQRLHTP.js} +2 -2
- package/dist/chunk-YWQRLHTP.js.map +1 -0
- package/dist/components/atoms/Button.d.ts +3 -2
- package/dist/components/atoms/Button.d.ts.map +1 -1
- package/dist/components/atoms/Card.d.ts +3 -2
- package/dist/components/atoms/Card.d.ts.map +1 -1
- package/dist/components/atoms/Checkbox.d.ts +3 -2
- package/dist/components/atoms/Checkbox.d.ts.map +1 -1
- package/dist/components/atoms/DayCell.d.ts +3 -2
- package/dist/components/atoms/DayCell.d.ts.map +1 -1
- package/dist/components/atoms/InfiniteScrollSentinel.d.ts +3 -2
- package/dist/components/atoms/InfiniteScrollSentinel.d.ts.map +1 -1
- package/dist/components/atoms/Radio.d.ts +3 -2
- package/dist/components/atoms/Radio.d.ts.map +1 -1
- package/dist/components/atoms/RangeSlider.d.ts +3 -2
- package/dist/components/atoms/RangeSlider.d.ts.map +1 -1
- package/dist/components/atoms/Select.d.ts +3 -2
- package/dist/components/atoms/Select.d.ts.map +1 -1
- package/dist/components/atoms/Switch.d.ts +3 -2
- package/dist/components/atoms/Switch.d.ts.map +1 -1
- package/dist/components/atoms/TextHighlight.d.ts +3 -2
- package/dist/components/atoms/TextHighlight.d.ts.map +1 -1
- package/dist/components/atoms/game/OrbitalGameCanvas.d.ts +25 -0
- package/dist/components/atoms/game/OrbitalGameCanvas.d.ts.map +1 -0
- package/dist/components/atoms/game/index.d.ts +2 -0
- package/dist/components/atoms/game/index.d.ts.map +1 -1
- package/dist/components/atoms/index.d.ts +4 -4
- package/dist/components/atoms/index.d.ts.map +1 -1
- package/dist/components/atoms/index.js +14 -9
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +47 -20
- package/dist/components/molecules/Alert.d.ts +3 -2
- package/dist/components/molecules/Alert.d.ts.map +1 -1
- package/dist/components/molecules/DataGrid.d.ts +6 -5
- package/dist/components/molecules/DataGrid.d.ts.map +1 -1
- package/dist/components/molecules/DataList.d.ts +5 -4
- package/dist/components/molecules/DataList.d.ts.map +1 -1
- package/dist/components/molecules/NumberStepper.d.ts +3 -2
- package/dist/components/molecules/NumberStepper.d.ts.map +1 -1
- package/dist/components/molecules/PullToRefresh.d.ts +3 -2
- package/dist/components/molecules/PullToRefresh.d.ts.map +1 -1
- package/dist/components/molecules/RelationSelect.d.ts +3 -2
- package/dist/components/molecules/RelationSelect.d.ts.map +1 -1
- package/dist/components/molecules/RepeatableFormSection.d.ts +6 -5
- package/dist/components/molecules/RepeatableFormSection.d.ts.map +1 -1
- package/dist/components/molecules/SortableList.d.ts +2 -1
- package/dist/components/molecules/SortableList.d.ts.map +1 -1
- package/dist/components/molecules/StarRating.d.ts +3 -2
- package/dist/components/molecules/StarRating.d.ts.map +1 -1
- package/dist/components/molecules/SwipeableRow.d.ts +3 -2
- package/dist/components/molecules/SwipeableRow.d.ts.map +1 -1
- package/dist/components/molecules/Toast.d.ts +3 -2
- package/dist/components/molecules/Toast.d.ts.map +1 -1
- package/dist/components/molecules/index.js +9 -6
- package/dist/components/organisms/CardGrid.d.ts +6 -5
- package/dist/components/organisms/CardGrid.d.ts.map +1 -1
- package/dist/components/organisms/ComponentPatterns.d.ts.map +1 -1
- package/dist/components/organisms/ContentRenderer.d.ts.map +1 -1
- package/dist/components/organisms/DataTable.d.ts +2 -4
- package/dist/components/organisms/DataTable.d.ts.map +1 -1
- package/dist/components/organisms/DocumentViewer.d.ts.map +1 -1
- package/dist/components/organisms/DrawerSlot.d.ts +5 -4
- package/dist/components/organisms/DrawerSlot.d.ts.map +1 -1
- package/dist/components/organisms/FormSection.d.ts +8 -1
- package/dist/components/organisms/FormSection.d.ts.map +1 -1
- package/dist/components/organisms/Header.d.ts +3 -2
- package/dist/components/organisms/Header.d.ts.map +1 -1
- package/dist/components/organisms/LayoutPatterns.d.ts.map +1 -1
- package/dist/components/organisms/MasterDetail.d.ts.map +1 -1
- package/dist/components/organisms/MediaGallery.d.ts +2 -1
- package/dist/components/organisms/MediaGallery.d.ts.map +1 -1
- package/dist/components/organisms/ModalSlot.d.ts +5 -4
- package/dist/components/organisms/ModalSlot.d.ts.map +1 -1
- package/dist/components/organisms/PageHeader.d.ts +7 -0
- package/dist/components/organisms/PageHeader.d.ts.map +1 -1
- package/dist/components/organisms/SignaturePad.d.ts.map +1 -1
- package/dist/components/organisms/StatCard.d.ts +3 -2
- package/dist/components/organisms/StatCard.d.ts.map +1 -1
- package/dist/components/organisms/StateMachineView.d.ts.map +1 -1
- package/dist/components/organisms/Table.d.ts.map +1 -1
- package/dist/components/organisms/ToastSlot.d.ts +6 -5
- package/dist/components/organisms/ToastSlot.d.ts.map +1 -1
- package/dist/components/organisms/UISlotRenderer.d.ts +2 -1
- package/dist/components/organisms/UISlotRenderer.d.ts.map +1 -1
- package/dist/components/organisms/book/BookChapterView.d.ts +2 -1
- package/dist/components/organisms/book/BookChapterView.d.ts.map +1 -1
- package/dist/components/organisms/book/BookCoverPage.d.ts +2 -1
- package/dist/components/organisms/book/BookCoverPage.d.ts.map +1 -1
- package/dist/components/organisms/book/BookNavBar.d.ts +2 -1
- package/dist/components/organisms/book/BookNavBar.d.ts.map +1 -1
- package/dist/components/organisms/book/BookTableOfContents.d.ts +2 -1
- package/dist/components/organisms/book/BookTableOfContents.d.ts.map +1 -1
- package/dist/components/organisms/book/BookViewer.d.ts +2 -1
- package/dist/components/organisms/book/BookViewer.d.ts.map +1 -1
- package/dist/components/organisms/game/DialogueBox.d.ts.map +1 -1
- package/dist/components/organisms/game/InventoryPanel.d.ts.map +1 -1
- package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts.map +1 -1
- package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts.map +1 -1
- package/dist/components/organisms/index.d.ts +1 -1
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/components/organisms/index.js +14 -10
- package/dist/components/organisms/layout/DashboardGrid.d.ts +3 -2
- package/dist/components/organisms/layout/DashboardGrid.d.ts.map +1 -1
- package/dist/components/templates/BattleTemplate.d.ts.map +1 -1
- package/dist/components/templates/index.js +26 -0
- package/dist/components/templates/index.js.map +1 -0
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useTraitState.d.ts +3 -3
- package/dist/hooks/useTraitState.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -910
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +14 -16
- package/dist/chunk-5U5Z65ZO.js.map +0 -1
- package/dist/chunk-BFRVXKSP.js.map +0 -1
- package/dist/chunk-CA6Z3OTE.js.map +0 -1
- package/dist/chunk-ETD72PHO.js.map +0 -1
- package/dist/chunk-GMR5FKKB.js.map +0 -1
- package/dist/chunk-MLTSQPVN.js.map +0 -1
- package/dist/chunk-PBO6ZN2M.js.map +0 -1
- 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-
|
|
9
|
+
} from "./chunk-YWQRLHTP.js";
|
|
10
10
|
import {
|
|
11
11
|
EmptyState
|
|
12
|
-
} from "./chunk-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
5620
|
+
//# sourceMappingURL=chunk-SLYJ52HW.js.map
|