@almadar/mobile 1.1.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/README.md +203 -0
- package/dist/chunk-6RVITGGH.js +167 -0
- package/dist/chunk-6RVITGGH.js.map +1 -0
- package/dist/chunk-7C5JCLLY.js +1125 -0
- package/dist/chunk-7C5JCLLY.js.map +1 -0
- package/dist/chunk-CA6Z3OTE.js +247 -0
- package/dist/chunk-CA6Z3OTE.js.map +1 -0
- package/dist/chunk-CUAWHLEK.js +119 -0
- package/dist/chunk-CUAWHLEK.js.map +1 -0
- package/dist/chunk-DMLYJFYQ.js +816 -0
- package/dist/chunk-DMLYJFYQ.js.map +1 -0
- package/dist/chunk-DY52O4T3.js +795 -0
- package/dist/chunk-DY52O4T3.js.map +1 -0
- package/dist/chunk-LFHVNHVA.js +176 -0
- package/dist/chunk-LFHVNHVA.js.map +1 -0
- package/dist/chunk-MFU7Q7LU.js +206 -0
- package/dist/chunk-MFU7Q7LU.js.map +1 -0
- package/dist/chunk-S2IT7WZT.js +71 -0
- package/dist/chunk-S2IT7WZT.js.map +1 -0
- package/dist/chunk-T77JPOTP.js +11789 -0
- package/dist/chunk-T77JPOTP.js.map +1 -0
- package/dist/chunk-VLUJ7BXN.js +36 -0
- package/dist/chunk-VLUJ7BXN.js.map +1 -0
- package/dist/chunk-YMJZLYLV.js +4086 -0
- package/dist/chunk-YMJZLYLV.js.map +1 -0
- package/dist/chunk-YTVYMEKU.js +7 -0
- package/dist/chunk-YTVYMEKU.js.map +1 -0
- package/dist/components/atoms/Avatar.d.ts +17 -0
- package/dist/components/atoms/Avatar.d.ts.map +1 -0
- package/dist/components/atoms/Badge.d.ts +18 -0
- package/dist/components/atoms/Badge.d.ts.map +1 -0
- package/dist/components/atoms/Button.d.ts +20 -0
- package/dist/components/atoms/Button.d.ts.map +1 -0
- package/dist/components/atoms/Card.d.ts +21 -0
- package/dist/components/atoms/Card.d.ts.map +1 -0
- package/dist/components/atoms/Center.d.ts +14 -0
- package/dist/components/atoms/Center.d.ts.map +1 -0
- package/dist/components/atoms/Checkbox.d.ts +21 -0
- package/dist/components/atoms/Checkbox.d.ts.map +1 -0
- package/dist/components/atoms/ConditionalWrapper.d.ts +34 -0
- package/dist/components/atoms/ConditionalWrapper.d.ts.map +1 -0
- package/dist/components/atoms/Divider.d.ts +11 -0
- package/dist/components/atoms/Divider.d.ts.map +1 -0
- package/dist/components/atoms/Icon.d.ts +11 -0
- package/dist/components/atoms/Icon.d.ts.map +1 -0
- package/dist/components/atoms/Input.d.ts +21 -0
- package/dist/components/atoms/Input.d.ts.map +1 -0
- package/dist/components/atoms/Label.d.ts +12 -0
- package/dist/components/atoms/Label.d.ts.map +1 -0
- package/dist/components/atoms/Overlay.d.ts +16 -0
- package/dist/components/atoms/Overlay.d.ts.map +1 -0
- package/dist/components/atoms/ProgressBar.d.ts +18 -0
- package/dist/components/atoms/ProgressBar.d.ts.map +1 -0
- package/dist/components/atoms/Radio.d.ts +21 -0
- package/dist/components/atoms/Radio.d.ts.map +1 -0
- package/dist/components/atoms/Select.d.ts +27 -0
- package/dist/components/atoms/Select.d.ts.map +1 -0
- package/dist/components/atoms/Spacer.d.ts +20 -0
- package/dist/components/atoms/Spacer.d.ts.map +1 -0
- package/dist/components/atoms/Spinner.d.ts +11 -0
- package/dist/components/atoms/Spinner.d.ts.map +1 -0
- package/dist/components/atoms/Stack.d.ts +45 -0
- package/dist/components/atoms/Stack.d.ts.map +1 -0
- package/dist/components/atoms/Switch.d.ts +21 -0
- package/dist/components/atoms/Switch.d.ts.map +1 -0
- package/dist/components/atoms/Textarea.d.ts +22 -0
- package/dist/components/atoms/Textarea.d.ts.map +1 -0
- package/dist/components/atoms/Typography.d.ts +20 -0
- package/dist/components/atoms/Typography.d.ts.map +1 -0
- package/dist/components/atoms/game/ControlButton.d.ts +30 -0
- package/dist/components/atoms/game/ControlButton.d.ts.map +1 -0
- package/dist/components/atoms/game/HealthBar.d.ts +18 -0
- package/dist/components/atoms/game/HealthBar.d.ts.map +1 -0
- package/dist/components/atoms/game/ScoreDisplay.d.ts +20 -0
- package/dist/components/atoms/game/ScoreDisplay.d.ts.map +1 -0
- package/dist/components/atoms/game/Sprite.d.ts +41 -0
- package/dist/components/atoms/game/Sprite.d.ts.map +1 -0
- package/dist/components/atoms/game/StateIndicator.d.ts +22 -0
- package/dist/components/atoms/game/StateIndicator.d.ts.map +1 -0
- package/dist/components/atoms/game/index.d.ts +11 -0
- package/dist/components/atoms/game/index.d.ts.map +1 -0
- package/dist/components/atoms/index.d.ts +45 -0
- package/dist/components/atoms/index.d.ts.map +1 -0
- package/dist/components/atoms/index.js +69 -0
- package/dist/components/atoms/index.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +317 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/molecules/Alert.d.ts +22 -0
- package/dist/components/molecules/Alert.d.ts.map +1 -0
- package/dist/components/molecules/Breadcrumb.d.ts +16 -0
- package/dist/components/molecules/Breadcrumb.d.ts.map +1 -0
- package/dist/components/molecules/ButtonGroup.d.ts +23 -0
- package/dist/components/molecules/ButtonGroup.d.ts.map +1 -0
- package/dist/components/molecules/CodeBlock.d.ts +26 -0
- package/dist/components/molecules/CodeBlock.d.ts.map +1 -0
- package/dist/components/molecules/Container.d.ts +20 -0
- package/dist/components/molecules/Container.d.ts.map +1 -0
- package/dist/components/molecules/Drawer.d.ts +11 -0
- package/dist/components/molecules/Drawer.d.ts.map +1 -0
- package/dist/components/molecules/EmptyState.d.ts +7 -0
- package/dist/components/molecules/EmptyState.d.ts.map +1 -0
- package/dist/components/molecules/ErrorBoundary.d.ts +29 -0
- package/dist/components/molecules/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/molecules/ErrorState.d.ts +7 -0
- package/dist/components/molecules/ErrorState.d.ts.map +1 -0
- package/dist/components/molecules/FilterGroup.d.ts +54 -0
- package/dist/components/molecules/FilterGroup.d.ts.map +1 -0
- package/dist/components/molecules/Flex.d.ts +31 -0
- package/dist/components/molecules/Flex.d.ts.map +1 -0
- package/dist/components/molecules/FloatingActionButton.d.ts +33 -0
- package/dist/components/molecules/FloatingActionButton.d.ts.map +1 -0
- package/dist/components/molecules/FormField.d.ts +12 -0
- package/dist/components/molecules/FormField.d.ts.map +1 -0
- package/dist/components/molecules/FormSectionHeader.d.ts +15 -0
- package/dist/components/molecules/FormSectionHeader.d.ts.map +1 -0
- package/dist/components/molecules/Grid.d.ts +24 -0
- package/dist/components/molecules/Grid.d.ts.map +1 -0
- package/dist/components/molecules/InputGroup.d.ts +18 -0
- package/dist/components/molecules/InputGroup.d.ts.map +1 -0
- package/dist/components/molecules/List.d.ts +16 -0
- package/dist/components/molecules/List.d.ts.map +1 -0
- package/dist/components/molecules/LoadingState.d.ts +6 -0
- package/dist/components/molecules/LoadingState.d.ts.map +1 -0
- package/dist/components/molecules/MarkdownContent.d.ts +18 -0
- package/dist/components/molecules/MarkdownContent.d.ts.map +1 -0
- package/dist/components/molecules/Menu.d.ts +19 -0
- package/dist/components/molecules/Menu.d.ts.map +1 -0
- package/dist/components/molecules/Meter.d.ts +58 -0
- package/dist/components/molecules/Meter.d.ts.map +1 -0
- package/dist/components/molecules/Modal.d.ts +22 -0
- package/dist/components/molecules/Modal.d.ts.map +1 -0
- package/dist/components/molecules/Navigation.d.ts +72 -0
- package/dist/components/molecules/Navigation.d.ts.map +1 -0
- package/dist/components/molecules/Pagination.d.ts +30 -0
- package/dist/components/molecules/Pagination.d.ts.map +1 -0
- package/dist/components/molecules/Popover.d.ts +11 -0
- package/dist/components/molecules/Popover.d.ts.map +1 -0
- package/dist/components/molecules/QuizBlock.d.ts +35 -0
- package/dist/components/molecules/QuizBlock.d.ts.map +1 -0
- package/dist/components/molecules/RelationSelect.d.ts +38 -0
- package/dist/components/molecules/RelationSelect.d.ts.map +1 -0
- package/dist/components/molecules/RepeatableFormSection.d.ts +46 -0
- package/dist/components/molecules/RepeatableFormSection.d.ts.map +1 -0
- package/dist/components/molecules/ScaledDiagram.d.ts +41 -0
- package/dist/components/molecules/ScaledDiagram.d.ts.map +1 -0
- package/dist/components/molecules/SearchInput.d.ts +22 -0
- package/dist/components/molecules/SearchInput.d.ts.map +1 -0
- package/dist/components/molecules/SidePanel.d.ts +49 -0
- package/dist/components/molecules/SidePanel.d.ts.map +1 -0
- package/dist/components/molecules/SimpleGrid.d.ts +17 -0
- package/dist/components/molecules/SimpleGrid.d.ts.map +1 -0
- package/dist/components/molecules/Skeleton.d.ts +12 -0
- package/dist/components/molecules/Skeleton.d.ts.map +1 -0
- package/dist/components/molecules/Tabs.d.ts +25 -0
- package/dist/components/molecules/Tabs.d.ts.map +1 -0
- package/dist/components/molecules/Toast.d.ts +18 -0
- package/dist/components/molecules/Toast.d.ts.map +1 -0
- package/dist/components/molecules/Tooltip.d.ts +11 -0
- package/dist/components/molecules/Tooltip.d.ts.map +1 -0
- package/dist/components/molecules/WizardNavigation.d.ts +36 -0
- package/dist/components/molecules/WizardNavigation.d.ts.map +1 -0
- package/dist/components/molecules/WizardProgress.d.ts +26 -0
- package/dist/components/molecules/WizardProgress.d.ts.map +1 -0
- package/dist/components/molecules/game/ActionButtons.d.ts +30 -0
- package/dist/components/molecules/game/ActionButtons.d.ts.map +1 -0
- package/dist/components/molecules/game/DPad.d.ts +19 -0
- package/dist/components/molecules/game/DPad.d.ts.map +1 -0
- package/dist/components/molecules/game/StatBadge.d.ts +26 -0
- package/dist/components/molecules/game/StatBadge.d.ts.map +1 -0
- package/dist/components/molecules/game/index.d.ts +7 -0
- package/dist/components/molecules/game/index.d.ts.map +1 -0
- package/dist/components/molecules/index.d.ts +79 -0
- package/dist/components/molecules/index.d.ts.map +1 -0
- package/dist/components/molecules/index.js +96 -0
- package/dist/components/molecules/index.js.map +1 -0
- package/dist/components/organisms/CardGrid.d.ts +16 -0
- package/dist/components/organisms/CardGrid.d.ts.map +1 -0
- package/dist/components/organisms/Chart.d.ts +26 -0
- package/dist/components/organisms/Chart.d.ts.map +1 -0
- package/dist/components/organisms/CodeViewer.d.ts +29 -0
- package/dist/components/organisms/CodeViewer.d.ts.map +1 -0
- package/dist/components/organisms/ComponentPatterns.d.ts +34 -0
- package/dist/components/organisms/ComponentPatterns.d.ts.map +1 -0
- package/dist/components/organisms/ConfirmDialog.d.ts +46 -0
- package/dist/components/organisms/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/organisms/ContentRenderer.d.ts +37 -0
- package/dist/components/organisms/ContentRenderer.d.ts.map +1 -0
- package/dist/components/organisms/CustomPattern.d.ts +36 -0
- package/dist/components/organisms/CustomPattern.d.ts.map +1 -0
- package/dist/components/organisms/DataTable.d.ts +22 -0
- package/dist/components/organisms/DataTable.d.ts.map +1 -0
- package/dist/components/organisms/DetailPanel.d.ts +17 -0
- package/dist/components/organisms/DetailPanel.d.ts.map +1 -0
- package/dist/components/organisms/DocumentViewer.d.ts +34 -0
- package/dist/components/organisms/DocumentViewer.d.ts.map +1 -0
- package/dist/components/organisms/DrawerSlot.d.ts +38 -0
- package/dist/components/organisms/DrawerSlot.d.ts.map +1 -0
- package/dist/components/organisms/EntityCard.d.ts +11 -0
- package/dist/components/organisms/EntityCard.d.ts.map +1 -0
- package/dist/components/organisms/EntityList.d.ts +17 -0
- package/dist/components/organisms/EntityList.d.ts.map +1 -0
- package/dist/components/organisms/Form.d.ts +49 -0
- package/dist/components/organisms/Form.d.ts.map +1 -0
- package/dist/components/organisms/FormSection.d.ts +9 -0
- package/dist/components/organisms/FormSection.d.ts.map +1 -0
- package/dist/components/organisms/Header.d.ts +24 -0
- package/dist/components/organisms/Header.d.ts.map +1 -0
- package/dist/components/organisms/LayoutPatterns.d.ts +39 -0
- package/dist/components/organisms/LayoutPatterns.d.ts.map +1 -0
- package/dist/components/organisms/MasterDetail.d.ts +39 -0
- package/dist/components/organisms/MasterDetail.d.ts.map +1 -0
- package/dist/components/organisms/MediaGallery.d.ts +35 -0
- package/dist/components/organisms/MediaGallery.d.ts.map +1 -0
- package/dist/components/organisms/ModalSlot.d.ts +35 -0
- package/dist/components/organisms/ModalSlot.d.ts.map +1 -0
- package/dist/components/organisms/PageHeader.d.ts +15 -0
- package/dist/components/organisms/PageHeader.d.ts.map +1 -0
- package/dist/components/organisms/Section.d.ts +52 -0
- package/dist/components/organisms/Section.d.ts.map +1 -0
- package/dist/components/organisms/Sidebar.d.ts +54 -0
- package/dist/components/organisms/Sidebar.d.ts.map +1 -0
- package/dist/components/organisms/SignaturePad.d.ts +44 -0
- package/dist/components/organisms/SignaturePad.d.ts.map +1 -0
- package/dist/components/organisms/Split.d.ts +34 -0
- package/dist/components/organisms/Split.d.ts.map +1 -0
- package/dist/components/organisms/StatCard.d.ts +20 -0
- package/dist/components/organisms/StatCard.d.ts.map +1 -0
- package/dist/components/organisms/StateMachineView.d.ts +41 -0
- package/dist/components/organisms/StateMachineView.d.ts.map +1 -0
- package/dist/components/organisms/Table.d.ts +104 -0
- package/dist/components/organisms/Table.d.ts.map +1 -0
- package/dist/components/organisms/Timeline.d.ts +19 -0
- package/dist/components/organisms/Timeline.d.ts.map +1 -0
- package/dist/components/organisms/ToastSlot.d.ts +30 -0
- package/dist/components/organisms/ToastSlot.d.ts.map +1 -0
- package/dist/components/organisms/UISlotRenderer.d.ts +35 -0
- package/dist/components/organisms/UISlotRenderer.d.ts.map +1 -0
- package/dist/components/organisms/WizardContainer.d.ts +25 -0
- package/dist/components/organisms/WizardContainer.d.ts.map +1 -0
- package/dist/components/organisms/book/BookChapterView.d.ts +26 -0
- package/dist/components/organisms/book/BookChapterView.d.ts.map +1 -0
- package/dist/components/organisms/book/BookCoverPage.d.ts +38 -0
- package/dist/components/organisms/book/BookCoverPage.d.ts.map +1 -0
- package/dist/components/organisms/book/BookNavBar.d.ts +40 -0
- package/dist/components/organisms/book/BookNavBar.d.ts.map +1 -0
- package/dist/components/organisms/book/BookTableOfContents.d.ts +32 -0
- package/dist/components/organisms/book/BookTableOfContents.d.ts.map +1 -0
- package/dist/components/organisms/book/BookViewer.d.ts +36 -0
- package/dist/components/organisms/book/BookViewer.d.ts.map +1 -0
- package/dist/components/organisms/book/index.d.ts +11 -0
- package/dist/components/organisms/book/index.d.ts.map +1 -0
- package/dist/components/organisms/game/BattleBoard.d.ts +38 -0
- package/dist/components/organisms/game/BattleBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/CanvasEffect.d.ts +26 -0
- package/dist/components/organisms/game/CanvasEffect.d.ts.map +1 -0
- package/dist/components/organisms/game/CastleBoard.d.ts +30 -0
- package/dist/components/organisms/game/CastleBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/CombatLog.d.ts +23 -0
- package/dist/components/organisms/game/CombatLog.d.ts.map +1 -0
- package/dist/components/organisms/game/DialogueBox.d.ts +40 -0
- package/dist/components/organisms/game/DialogueBox.d.ts.map +1 -0
- package/dist/components/organisms/game/GameAudioProvider.d.ts +50 -0
- package/dist/components/organisms/game/GameAudioProvider.d.ts.map +1 -0
- package/dist/components/organisms/game/GameAudioToggle.d.ts +18 -0
- package/dist/components/organisms/game/GameAudioToggle.d.ts.map +1 -0
- package/dist/components/organisms/game/GameCanvas3D.d.ts +53 -0
- package/dist/components/organisms/game/GameCanvas3D.d.ts.map +1 -0
- package/dist/components/organisms/game/GameHud.d.ts +40 -0
- package/dist/components/organisms/game/GameHud.d.ts.map +1 -0
- package/dist/components/organisms/game/GameMenu.d.ts +34 -0
- package/dist/components/organisms/game/GameMenu.d.ts.map +1 -0
- package/dist/components/organisms/game/GameOverScreen.d.ts +36 -0
- package/dist/components/organisms/game/GameOverScreen.d.ts.map +1 -0
- package/dist/components/organisms/game/InventoryPanel.d.ts +38 -0
- package/dist/components/organisms/game/InventoryPanel.d.ts.map +1 -0
- package/dist/components/organisms/game/IsometricCanvas.d.ts +54 -0
- package/dist/components/organisms/game/IsometricCanvas.d.ts.map +1 -0
- package/dist/components/organisms/game/TraitSlot.d.ts +29 -0
- package/dist/components/organisms/game/TraitSlot.d.ts.map +1 -0
- package/dist/components/organisms/game/TraitStateViewer.d.ts +28 -0
- package/dist/components/organisms/game/TraitStateViewer.d.ts.map +1 -0
- package/dist/components/organisms/game/UncontrolledBattleBoard.d.ts +30 -0
- package/dist/components/organisms/game/UncontrolledBattleBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/WorldMapBoard.d.ts +40 -0
- package/dist/components/organisms/game/WorldMapBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/index.d.ts +37 -0
- package/dist/components/organisms/game/index.d.ts.map +1 -0
- package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts +41 -0
- package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts.map +1 -0
- package/dist/components/organisms/game/physics-sim/SimulationControls.d.ts +38 -0
- package/dist/components/organisms/game/physics-sim/SimulationControls.d.ts.map +1 -0
- package/dist/components/organisms/game/physics-sim/SimulationGraph.d.ts +35 -0
- package/dist/components/organisms/game/physics-sim/SimulationGraph.d.ts.map +1 -0
- package/dist/components/organisms/game/physics-sim/index.d.ts +7 -0
- package/dist/components/organisms/game/physics-sim/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/builder/BuilderBoard.d.ts +55 -0
- package/dist/components/organisms/game/puzzles/builder/BuilderBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/builder/index.d.ts +3 -0
- package/dist/components/organisms/game/puzzles/builder/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/classifier/ClassifierBoard.d.ts +56 -0
- package/dist/components/organisms/game/puzzles/classifier/ClassifierBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/classifier/index.d.ts +3 -0
- package/dist/components/organisms/game/puzzles/classifier/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/debugger/DebuggerBoard.d.ts +48 -0
- package/dist/components/organisms/game/puzzles/debugger/DebuggerBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/debugger/index.d.ts +3 -0
- package/dist/components/organisms/game/puzzles/debugger/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/event-handler/EventHandlerBoard.d.ts +56 -0
- package/dist/components/organisms/game/puzzles/event-handler/EventHandlerBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/event-handler/EventLog.d.ts +33 -0
- package/dist/components/organisms/game/puzzles/event-handler/EventLog.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/event-handler/ObjectRulePanel.d.ts +41 -0
- package/dist/components/organisms/game/puzzles/event-handler/ObjectRulePanel.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/event-handler/RuleEditor.d.ts +39 -0
- package/dist/components/organisms/game/puzzles/event-handler/RuleEditor.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/event-handler/index.d.ts +9 -0
- package/dist/components/organisms/game/puzzles/event-handler/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/index.d.ts +49 -0
- package/dist/components/organisms/game/puzzles/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/negotiator/NegotiatorBoard.d.ts +54 -0
- package/dist/components/organisms/game/puzzles/negotiator/NegotiatorBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/negotiator/index.d.ts +3 -0
- package/dist/components/organisms/game/puzzles/negotiator/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts +32 -0
- package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts +27 -0
- package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts +31 -0
- package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/sequencer/SequencerBoard.d.ts +67 -0
- package/dist/components/organisms/game/puzzles/sequencer/SequencerBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/sequencer/index.d.ts +3 -0
- package/dist/components/organisms/game/puzzles/sequencer/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/simulator/SimulatorBoard.d.ts +55 -0
- package/dist/components/organisms/game/puzzles/simulator/SimulatorBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/simulator/index.d.ts +3 -0
- package/dist/components/organisms/game/puzzles/simulator/index.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts +40 -0
- package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts +78 -0
- package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts +29 -0
- package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts +33 -0
- package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts +38 -0
- package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts.map +1 -0
- package/dist/components/organisms/game/puzzles/state-architect/index.d.ts +3 -0
- package/dist/components/organisms/game/puzzles/state-architect/index.d.ts.map +1 -0
- package/dist/components/organisms/index.d.ts +68 -0
- package/dist/components/organisms/index.d.ts.map +1 -0
- package/dist/components/organisms/index.js +168 -0
- package/dist/components/organisms/index.js.map +1 -0
- package/dist/components/organisms/layout/DashboardGrid.d.ts +25 -0
- package/dist/components/organisms/layout/DashboardGrid.d.ts.map +1 -0
- package/dist/components/organisms/layout/SplitPane.d.ts +25 -0
- package/dist/components/organisms/layout/SplitPane.d.ts.map +1 -0
- package/dist/components/organisms/layout/TabbedContainer.d.ts +26 -0
- package/dist/components/organisms/layout/TabbedContainer.d.ts.map +1 -0
- package/dist/components/organisms/layout/index.d.ts +7 -0
- package/dist/components/organisms/layout/index.d.ts.map +1 -0
- package/dist/components/templates/AuthLayout.d.ts +20 -0
- package/dist/components/templates/AuthLayout.d.ts.map +1 -0
- package/dist/components/templates/BattleTemplate.d.ts +31 -0
- package/dist/components/templates/BattleTemplate.d.ts.map +1 -0
- package/dist/components/templates/CastleTemplate.d.ts +32 -0
- package/dist/components/templates/CastleTemplate.d.ts.map +1 -0
- package/dist/components/templates/CounterTemplate.d.ts +32 -0
- package/dist/components/templates/CounterTemplate.d.ts.map +1 -0
- package/dist/components/templates/DashboardLayout.d.ts +20 -0
- package/dist/components/templates/DashboardLayout.d.ts.map +1 -0
- package/dist/components/templates/GameShell.d.ts +29 -0
- package/dist/components/templates/GameShell.d.ts.map +1 -0
- package/dist/components/templates/GameTemplate.d.ts +55 -0
- package/dist/components/templates/GameTemplate.d.ts.map +1 -0
- package/dist/components/templates/WorldMapTemplate.d.ts +35 -0
- package/dist/components/templates/WorldMapTemplate.d.ts.map +1 -0
- package/dist/components/templates/index.d.ts +17 -0
- package/dist/components/templates/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +34 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useEventBus.d.ts +2 -0
- package/dist/hooks/useEventBus.d.ts.map +1 -0
- package/dist/hooks/useInfiniteScroll.d.ts +32 -0
- package/dist/hooks/useInfiniteScroll.d.ts.map +1 -0
- package/dist/hooks/useKeyboard.d.ts +11 -0
- package/dist/hooks/useKeyboard.d.ts.map +1 -0
- package/dist/hooks/useNavigation.d.ts +41 -0
- package/dist/hooks/useNavigation.d.ts.map +1 -0
- package/dist/hooks/usePullToRefresh.d.ts +29 -0
- package/dist/hooks/usePullToRefresh.d.ts.map +1 -0
- package/dist/hooks/useSafeAreaInsets.d.ts +29 -0
- package/dist/hooks/useSafeAreaInsets.d.ts.map +1 -0
- package/dist/hooks/useScrollHeader.d.ts +33 -0
- package/dist/hooks/useScrollHeader.d.ts.map +1 -0
- package/dist/hooks/useThemeStyles.d.ts +26 -0
- package/dist/hooks/useThemeStyles.d.ts.map +1 -0
- package/dist/hooks/useTraitState.d.ts +11 -0
- package/dist/hooks/useTraitState.d.ts.map +1 -0
- package/dist/hooks/useUIEvents.d.ts +2 -0
- package/dist/hooks/useUIEvents.d.ts.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1264 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/cn.d.ts +2 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +18 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/theme.d.ts +13 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/providers/EventBusProvider.d.ts +2 -0
- package/dist/providers/EventBusProvider.d.ts.map +1 -0
- package/dist/providers/ThemeContext.d.ts +91 -0
- package/dist/providers/ThemeContext.d.ts.map +1 -0
- package/dist/providers/ThemeProvider.d.ts +10 -0
- package/dist/providers/ThemeProvider.d.ts.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +14 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/themes/almadar.d.ts +8 -0
- package/dist/themes/almadar.d.ts.map +1 -0
- package/dist/themes/index.d.ts +90 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/index.js +10 -0
- package/package.json +109 -0
package/README.md
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# @almadar/mobile
|
|
2
|
+
|
|
3
|
+
React Native UI components for the Almadar platform. This package provides mobile-optimized components that mirror the functionality of @almadar/ui while following React Native patterns and best practices.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **154 Components** - Comprehensive component library (100% of @almadar/ui)
|
|
8
|
+
- **Event Bus Architecture** - Declarative event-driven interactions
|
|
9
|
+
- **Closed Circuit Props** - Consistent loading, error, and entity states
|
|
10
|
+
- **Theme System** - Full light/dark theme support with CSS variable parity
|
|
11
|
+
- **TypeScript** - Full type safety
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @almadar/mobile
|
|
17
|
+
# or
|
|
18
|
+
yarn add @almadar/mobile
|
|
19
|
+
# or
|
|
20
|
+
pnpm add @almadar/mobile
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
import { ThemeProvider, Button, Card, VStack } from '@almadar/mobile';
|
|
27
|
+
|
|
28
|
+
function App() {
|
|
29
|
+
return (
|
|
30
|
+
<ThemeProvider>
|
|
31
|
+
<VStack spacing={16} style={{ padding: 16 }}>
|
|
32
|
+
<Card>
|
|
33
|
+
<Button
|
|
34
|
+
variant="primary"
|
|
35
|
+
action="SUBMIT_FORM"
|
|
36
|
+
actionPayload={{ formId: 'contact' }}
|
|
37
|
+
>
|
|
38
|
+
Submit
|
|
39
|
+
</Button>
|
|
40
|
+
</Card>
|
|
41
|
+
</VStack>
|
|
42
|
+
</ThemeProvider>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Component Architecture
|
|
48
|
+
|
|
49
|
+
### Closed Circuit Props
|
|
50
|
+
|
|
51
|
+
All components implement the closed circuit pattern:
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
interface ComponentProps {
|
|
55
|
+
// Visual state
|
|
56
|
+
isLoading?: boolean; // Shows LoadingState when true
|
|
57
|
+
error?: Error | null; // Shows ErrorState when present
|
|
58
|
+
entity?: string; // Entity name for auto-fetch
|
|
59
|
+
|
|
60
|
+
// Styling
|
|
61
|
+
style?: ViewStyle; // React Native styles
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Event Bus Pattern
|
|
66
|
+
|
|
67
|
+
Interactive components use the event bus for loose coupling:
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
<Button
|
|
71
|
+
action="SAVE_ITEM" // Emits 'UI:SAVE_ITEM'
|
|
72
|
+
actionPayload={{ id: 1 }} // Event payload
|
|
73
|
+
onPress={() => {}} // Optional callback
|
|
74
|
+
>
|
|
75
|
+
Save
|
|
76
|
+
</Button>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Events follow the pattern: `UI:EVENT_NAME`
|
|
80
|
+
|
|
81
|
+
## Component Categories
|
|
82
|
+
|
|
83
|
+
### Atoms (16 components)
|
|
84
|
+
Basic building blocks:
|
|
85
|
+
- **Layout**: VStack, HStack, Box, Center
|
|
86
|
+
- **Typography**: Typography
|
|
87
|
+
- **Form**: Button, Input, Label, Checkbox, Radio, Switch, Textarea, Select, Spinner, ProgressBar
|
|
88
|
+
- **Display**: Card, Badge, Avatar, Divider, Icon
|
|
89
|
+
|
|
90
|
+
### Molecules (18 components)
|
|
91
|
+
Composite components:
|
|
92
|
+
- **Feedback**: Alert, Toast, Skeleton, LoadingState, ErrorState, EmptyState
|
|
93
|
+
- **Form**: FormField, FormSectionHeader, InputGroup, SearchInput, ButtonGroup
|
|
94
|
+
- **Navigation**: Tabs, Breadcrumb
|
|
95
|
+
- **Overlay**: Modal, Drawer, Tooltip, Popover, Menu
|
|
96
|
+
|
|
97
|
+
### Organisms (28 components)
|
|
98
|
+
Complex components:
|
|
99
|
+
- **Layout**: Header, PageHeader, DashboardLayout, AuthLayout
|
|
100
|
+
- **Data**: DataTable, StatCard, Timeline, EntityList, EntityCard, CardGrid
|
|
101
|
+
- **Form**: FormSection, WizardContainer, DetailPanel
|
|
102
|
+
- **Game**: BattleBoard, CastleBoard, WorldMapBoard, IsometricCanvas, GameCanvas3D, CombatLog, DialogueBox, GameHud, InventoryPanel, GameMenu, GameOverScreen, GameAudioProvider, GameAudioToggle, TraitSlot, TraitStateViewer, UncontrolledBattleBoard, CanvasEffect
|
|
103
|
+
|
|
104
|
+
### Templates (2 components)
|
|
105
|
+
Page layouts:
|
|
106
|
+
- **DashboardLayout** - Main app layout with header
|
|
107
|
+
- **AuthLayout** - Login/register layouts with keyboard avoiding
|
|
108
|
+
|
|
109
|
+
### Hooks (9 hooks)
|
|
110
|
+
- **useEventBus** - Event bus integration
|
|
111
|
+
- **useTheme** - Theme access
|
|
112
|
+
- **useThemeStyles** - Theme-aware StyleSheet
|
|
113
|
+
- **useNavigation** - Navigation helpers
|
|
114
|
+
- **useScrollHeader** - Collapsible headers
|
|
115
|
+
- **useSafeAreaInsets** - Safe area handling
|
|
116
|
+
- **usePullToRefresh** - Pull-to-refresh
|
|
117
|
+
- **useInfiniteScroll** - Infinite scroll
|
|
118
|
+
|
|
119
|
+
## Theming
|
|
120
|
+
|
|
121
|
+
Themes match @almadar/ui CSS variables:
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
const theme = {
|
|
125
|
+
colors: {
|
|
126
|
+
primary: '#14b8a6',
|
|
127
|
+
'primary-hover': '#0d9488',
|
|
128
|
+
'primary-foreground': '#ffffff',
|
|
129
|
+
// ... all CSS variables mapped
|
|
130
|
+
},
|
|
131
|
+
borderRadius: {
|
|
132
|
+
sm: 6,
|
|
133
|
+
md: 10,
|
|
134
|
+
lg: 14,
|
|
135
|
+
xl: 20,
|
|
136
|
+
full: 9999,
|
|
137
|
+
},
|
|
138
|
+
shadows: {
|
|
139
|
+
sm: { shadowColor, shadowOffset, shadowOpacity, shadowRadius, elevation },
|
|
140
|
+
main: { ... },
|
|
141
|
+
lg: { ... },
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Phase Implementation Summary
|
|
147
|
+
|
|
148
|
+
| Phase | Components Added | Coverage |
|
|
149
|
+
|-------|------------------|----------|
|
|
150
|
+
| Phase 1: Foundation | +10 | Atoms: 19% → 52% |
|
|
151
|
+
| Phase 2: Navigation | +6 | Organisms: 5% → 11% |
|
|
152
|
+
| Phase 3: Data Display | +10 | Molecules: 15% → 44% |
|
|
153
|
+
| Phase 4: Advanced UI | +9 | Molecules: 36% → 50% |
|
|
154
|
+
| Phase 5: Game Systems | +17 | Organisms: 11% → 28% |
|
|
155
|
+
| Phase 6: Layout & Containers | +7 | Atoms/Molecules: expansion |
|
|
156
|
+
| Phase 7: UI Enhancement | +8 | Molecules: expansion |
|
|
157
|
+
| Phase 8: Data Display | +10 | Organisms: expansion |
|
|
158
|
+
| Phase 9: Form & Input | +6 | Molecules/Organisms: expansion |
|
|
159
|
+
| Phase 10: Layout Structure | +8 | Organisms: expansion |
|
|
160
|
+
| Phase 11: Slots & Layouts | +5 | Organisms: expansion |
|
|
161
|
+
| Phase 12: Book Components | +5 | Organisms: book/ |
|
|
162
|
+
| Phase 13: Game Templates | +9 | Templates: expansion |
|
|
163
|
+
| Phase 14: Puzzle Games | +16 | Organisms: puzzles/ |
|
|
164
|
+
| Phase 15: Physics Sim | +3 | Organisms: physics-sim/ |
|
|
165
|
+
| Phase 16: Specialized Views | +8 | Organisms: various |
|
|
166
|
+
| **Total** | **+132** | **13% → 100%** |
|
|
167
|
+
|
|
168
|
+
## Migration from @almadar/ui
|
|
169
|
+
|
|
170
|
+
### Web to Mobile Mapping
|
|
171
|
+
|
|
172
|
+
| Web (@almadar/ui) | Mobile (@almadar/mobile) |
|
|
173
|
+
|-------------------|--------------------------|
|
|
174
|
+
| `onClick` | `onPress` |
|
|
175
|
+
| `className` | `style` (ViewStyle) |
|
|
176
|
+
| `action` | `action` (same) |
|
|
177
|
+
| `eventBus.emit('EVENT')` | `eventBus.emit('UI:EVENT')` |
|
|
178
|
+
|
|
179
|
+
### Example Migration
|
|
180
|
+
|
|
181
|
+
**Web:**
|
|
182
|
+
```tsx
|
|
183
|
+
<Button
|
|
184
|
+
onClick={() => {}}
|
|
185
|
+
className="my-button"
|
|
186
|
+
>
|
|
187
|
+
Click
|
|
188
|
+
</Button>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Mobile:**
|
|
192
|
+
```tsx
|
|
193
|
+
<Button
|
|
194
|
+
onPress={() => {}}
|
|
195
|
+
style={{ marginTop: 8 }}
|
|
196
|
+
>
|
|
197
|
+
Click
|
|
198
|
+
</Button>
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## License
|
|
202
|
+
|
|
203
|
+
MIT
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useEventBus
|
|
3
|
+
} from "./chunk-YTVYMEKU.js";
|
|
4
|
+
import {
|
|
5
|
+
useTheme
|
|
6
|
+
} from "./chunk-CUAWHLEK.js";
|
|
7
|
+
|
|
8
|
+
// src/components/atoms/Label.tsx
|
|
9
|
+
import React from "react";
|
|
10
|
+
import { Text, StyleSheet } from "react-native";
|
|
11
|
+
var Label = ({
|
|
12
|
+
children,
|
|
13
|
+
required = false,
|
|
14
|
+
disabled = false,
|
|
15
|
+
style
|
|
16
|
+
}) => {
|
|
17
|
+
const theme = useTheme();
|
|
18
|
+
return /* @__PURE__ */ React.createElement(
|
|
19
|
+
Text,
|
|
20
|
+
{
|
|
21
|
+
style: [
|
|
22
|
+
styles.label,
|
|
23
|
+
{
|
|
24
|
+
color: disabled ? theme.colors["muted-foreground"] : theme.colors.foreground
|
|
25
|
+
},
|
|
26
|
+
style
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
children,
|
|
30
|
+
required && /* @__PURE__ */ React.createElement(Text, { style: [styles.required, { color: theme.colors.error }] }, " *")
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
var styles = StyleSheet.create({
|
|
34
|
+
label: {
|
|
35
|
+
fontSize: 14,
|
|
36
|
+
fontWeight: "500",
|
|
37
|
+
marginBottom: 6
|
|
38
|
+
},
|
|
39
|
+
required: {
|
|
40
|
+
fontWeight: "400"
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
Label.displayName = "Label";
|
|
44
|
+
|
|
45
|
+
// src/components/atoms/game/ControlButton.tsx
|
|
46
|
+
import React2, { useState, useCallback } from "react";
|
|
47
|
+
import {
|
|
48
|
+
TouchableOpacity,
|
|
49
|
+
Text as Text2,
|
|
50
|
+
StyleSheet as StyleSheet2
|
|
51
|
+
} from "react-native";
|
|
52
|
+
var sizeMap = {
|
|
53
|
+
sm: { width: 40, height: 40, fontSize: 14 },
|
|
54
|
+
md: { width: 56, height: 56, fontSize: 16 },
|
|
55
|
+
lg: { width: 72, height: 72, fontSize: 20 },
|
|
56
|
+
xl: { width: 96, height: 96, fontSize: 24 }
|
|
57
|
+
};
|
|
58
|
+
var shapeMap = {
|
|
59
|
+
circle: 9999,
|
|
60
|
+
rounded: 12,
|
|
61
|
+
square: 4
|
|
62
|
+
};
|
|
63
|
+
var variantMap = {
|
|
64
|
+
primary: {
|
|
65
|
+
backgroundColor: "#2563eb",
|
|
66
|
+
borderColor: "#60a5fa",
|
|
67
|
+
textColor: "#ffffff"
|
|
68
|
+
},
|
|
69
|
+
secondary: {
|
|
70
|
+
backgroundColor: "#374151",
|
|
71
|
+
borderColor: "#6b7280",
|
|
72
|
+
textColor: "#ffffff"
|
|
73
|
+
},
|
|
74
|
+
ghost: {
|
|
75
|
+
backgroundColor: "transparent",
|
|
76
|
+
borderColor: "rgba(255,255,255,0.3)",
|
|
77
|
+
textColor: "#ffffff"
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var ControlButton = ({
|
|
81
|
+
label,
|
|
82
|
+
icon,
|
|
83
|
+
size = "md",
|
|
84
|
+
shape = "circle",
|
|
85
|
+
variant = "secondary",
|
|
86
|
+
onPress,
|
|
87
|
+
onRelease,
|
|
88
|
+
pressEvent,
|
|
89
|
+
releaseEvent,
|
|
90
|
+
pressed,
|
|
91
|
+
disabled,
|
|
92
|
+
style
|
|
93
|
+
}) => {
|
|
94
|
+
useTheme();
|
|
95
|
+
const eventBus = useEventBus();
|
|
96
|
+
const [isPressed, setIsPressed] = useState(false);
|
|
97
|
+
const actualPressed = pressed ?? isPressed;
|
|
98
|
+
const sizeConfig = sizeMap[size] ?? sizeMap.md;
|
|
99
|
+
const borderRadius = shapeMap[shape] ?? shapeMap.circle;
|
|
100
|
+
const variantConfig = variantMap[variant] ?? variantMap.secondary;
|
|
101
|
+
const handlePressIn = useCallback(
|
|
102
|
+
(_e) => {
|
|
103
|
+
if (disabled) return;
|
|
104
|
+
setIsPressed(true);
|
|
105
|
+
if (pressEvent) eventBus.emit(`UI:${pressEvent}`, {});
|
|
106
|
+
onPress?.();
|
|
107
|
+
},
|
|
108
|
+
[disabled, pressEvent, eventBus, onPress]
|
|
109
|
+
);
|
|
110
|
+
const handlePressOut = useCallback(
|
|
111
|
+
(_e) => {
|
|
112
|
+
if (disabled) return;
|
|
113
|
+
setIsPressed(false);
|
|
114
|
+
if (releaseEvent) eventBus.emit(`UI:${releaseEvent}`, {});
|
|
115
|
+
onRelease?.();
|
|
116
|
+
},
|
|
117
|
+
[disabled, releaseEvent, eventBus, onRelease]
|
|
118
|
+
);
|
|
119
|
+
return /* @__PURE__ */ React2.createElement(
|
|
120
|
+
TouchableOpacity,
|
|
121
|
+
{
|
|
122
|
+
activeOpacity: 0.8,
|
|
123
|
+
disabled,
|
|
124
|
+
onPressIn: handlePressIn,
|
|
125
|
+
onPressOut: handlePressOut,
|
|
126
|
+
style: [
|
|
127
|
+
styles2.button,
|
|
128
|
+
{
|
|
129
|
+
width: sizeConfig.width,
|
|
130
|
+
height: sizeConfig.height,
|
|
131
|
+
borderRadius,
|
|
132
|
+
backgroundColor: variantConfig.backgroundColor,
|
|
133
|
+
borderColor: variantConfig.borderColor,
|
|
134
|
+
opacity: disabled ? 0.5 : 1,
|
|
135
|
+
transform: [{ scale: actualPressed ? 0.95 : 1 }]
|
|
136
|
+
},
|
|
137
|
+
style
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
icon ? /* @__PURE__ */ React2.createElement(Text2, { style: { fontSize: sizeConfig.fontSize * 1.5 } }, icon) : label ? /* @__PURE__ */ React2.createElement(
|
|
141
|
+
Text2,
|
|
142
|
+
{
|
|
143
|
+
style: {
|
|
144
|
+
fontSize: sizeConfig.fontSize,
|
|
145
|
+
color: variantConfig.textColor,
|
|
146
|
+
fontWeight: "700"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
label
|
|
150
|
+
) : null
|
|
151
|
+
);
|
|
152
|
+
};
|
|
153
|
+
var styles2 = StyleSheet2.create({
|
|
154
|
+
button: {
|
|
155
|
+
justifyContent: "center",
|
|
156
|
+
alignItems: "center",
|
|
157
|
+
borderWidth: 2,
|
|
158
|
+
userSelect: "none"
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
ControlButton.displayName = "ControlButton";
|
|
162
|
+
|
|
163
|
+
export {
|
|
164
|
+
Label,
|
|
165
|
+
ControlButton
|
|
166
|
+
};
|
|
167
|
+
//# sourceMappingURL=chunk-6RVITGGH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/atoms/Label.tsx","../src/components/atoms/game/ControlButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, StyleSheet, TextStyle } from 'react-native';\nimport { useTheme } from '../../providers/ThemeContext';\n\nexport interface LabelProps {\n children: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n style?: TextStyle;\n /** Entity name for schema-driven auto-fetch */\n entity?: string;\n}\n\nexport const Label: React.FC<LabelProps> = ({\n children,\n required = false,\n disabled = false,\n style,\n}) => {\n const theme = useTheme();\n\n return (\n <Text\n style={[\n styles.label,\n {\n color: disabled \n ? theme.colors['muted-foreground'] \n : theme.colors.foreground,\n },\n style,\n ]}\n >\n {children}\n {required && (\n <Text style={[styles.required, { color: theme.colors.error }]}>\n {' *'}\n </Text>\n )}\n </Text>\n );\n};\n\nconst styles = StyleSheet.create({\n label: {\n fontSize: 14,\n fontWeight: '500',\n marginBottom: 6,\n },\n required: {\n fontWeight: '400',\n },\n});\n\nLabel.displayName = 'Label';\n","import React, { useState, useCallback } from 'react';\nimport { \n TouchableOpacity, \n Text, \n StyleSheet, \n GestureResponderEvent,\n ViewStyle \n} from 'react-native';\nimport { useTheme } from '../../../providers/ThemeContext';\nimport { useEventBus } from '../../../hooks/useEventBus';\n\nexport interface ControlButtonProps {\n /** Button label text */\n label?: string;\n /** Icon component or emoji */\n icon?: React.ReactNode;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg' | 'xl' | string;\n /** Shape variant */\n shape?: 'circle' | 'rounded' | 'square' | string;\n /** Visual variant */\n variant?: 'primary' | 'secondary' | 'ghost' | string;\n /** Called when button is pressed */\n onPress?: () => void;\n /** Called when button is released */\n onRelease?: () => void;\n /** Declarative event name emitted on press via useEventBus */\n pressEvent?: string;\n /** Declarative event name emitted on release via useEventBus */\n releaseEvent?: string;\n /** Whether the button is currently pressed */\n pressed?: boolean;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** Additional styles */\n style?: ViewStyle;\n}\n\nconst sizeMap: Record<string, { width: number; height: number; fontSize: number }> = {\n sm: { width: 40, height: 40, fontSize: 14 },\n md: { width: 56, height: 56, fontSize: 16 },\n lg: { width: 72, height: 72, fontSize: 20 },\n xl: { width: 96, height: 96, fontSize: 24 },\n};\n\nconst shapeMap: Record<string, number> = {\n circle: 9999,\n rounded: 12,\n square: 4,\n};\n\nconst variantMap: Record<string, { backgroundColor: string; borderColor: string; textColor: string }> = {\n primary: { \n backgroundColor: '#2563eb', \n borderColor: '#60a5fa',\n textColor: '#ffffff',\n },\n secondary: { \n backgroundColor: '#374151', \n borderColor: '#6b7280',\n textColor: '#ffffff',\n },\n ghost: { \n backgroundColor: 'transparent', \n borderColor: 'rgba(255,255,255,0.3)',\n textColor: '#ffffff',\n },\n};\n\nexport const ControlButton: React.FC<ControlButtonProps> = ({\n label,\n icon,\n size = 'md',\n shape = 'circle',\n variant = 'secondary',\n onPress,\n onRelease,\n pressEvent,\n releaseEvent,\n pressed,\n disabled,\n style,\n}) => {\n useTheme(); // Theme hook required by pattern\n const eventBus = useEventBus();\n const [isPressed, setIsPressed] = useState(false);\n const actualPressed = pressed ?? isPressed;\n\n const sizeConfig = sizeMap[size] ?? sizeMap.md;\n const borderRadius = shapeMap[shape] ?? shapeMap.circle;\n const variantConfig = variantMap[variant] ?? variantMap.secondary;\n\n const handlePressIn = useCallback(\n (_e: GestureResponderEvent) => {\n if (disabled) return;\n setIsPressed(true);\n if (pressEvent) eventBus.emit(`UI:${pressEvent}`, {});\n onPress?.();\n },\n [disabled, pressEvent, eventBus, onPress]\n );\n\n const handlePressOut = useCallback(\n (_e: GestureResponderEvent) => {\n if (disabled) return;\n setIsPressed(false);\n if (releaseEvent) eventBus.emit(`UI:${releaseEvent}`, {});\n onRelease?.();\n },\n [disabled, releaseEvent, eventBus, onRelease]\n );\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={disabled}\n onPressIn={handlePressIn}\n onPressOut={handlePressOut}\n style={[\n styles.button,\n {\n width: sizeConfig.width,\n height: sizeConfig.height,\n borderRadius,\n backgroundColor: variantConfig.backgroundColor,\n borderColor: variantConfig.borderColor,\n opacity: disabled ? 0.5 : 1,\n transform: [{ scale: actualPressed ? 0.95 : 1 }],\n },\n style as never,\n ]}\n >\n {icon ? (\n <Text style={{ fontSize: sizeConfig.fontSize * 1.5 }}>\n {icon as string}\n </Text>\n ) : label ? (\n <Text\n style={{\n fontSize: sizeConfig.fontSize,\n color: variantConfig.textColor,\n fontWeight: '700',\n }}\n >\n {label}\n </Text>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst styles = StyleSheet.create({\n button: {\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 2,\n userSelect: 'none',\n },\n});\n\nControlButton.displayName = 'ControlButton';\n"],"mappings":"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","names":["React","Text","StyleSheet","React","styles","Text","StyleSheet"]}
|