@almadar/ui 2.13.3 → 2.15.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-UNDQO6DL.js → chunk-4KP6IZEQ.js} +3 -3
- package/dist/chunk-4N3BAPDB.js +1667 -0
- package/dist/{chunk-PERGHHON.js → chunk-IRIGCHP4.js} +2 -12
- package/dist/{chunk-Y7IHEYYE.js → chunk-QU2X55WH.js} +11 -1
- package/dist/{chunk-4ZBSL37D.js → chunk-XL7WB2O5.js} +415 -58
- package/dist/{chunk-MSLMORZK.js → chunk-YPY74G7F.js} +13434 -2264
- package/dist/components/atoms/AnimatedCounter.d.ts +20 -0
- package/dist/components/atoms/Avatar.d.ts +58 -0
- package/dist/components/atoms/Badge.d.ts +14 -0
- package/dist/components/atoms/Box.d.ts +57 -0
- package/dist/components/atoms/Button.d.ts +24 -0
- package/dist/components/atoms/Card.d.ts +18 -0
- package/dist/components/atoms/Center.d.ts +33 -0
- package/dist/components/atoms/Checkbox.d.ts +9 -0
- package/dist/components/atoms/ConditionalWrapper.d.ts +68 -0
- package/dist/components/atoms/ConfettiEffect.d.ts +19 -0
- package/dist/components/atoms/DayCell.d.ts +21 -0
- package/dist/components/atoms/Divider.d.ts +29 -0
- package/dist/components/atoms/FlipContainer.d.ts +21 -0
- package/dist/components/atoms/Icon.d.ts +39 -0
- package/dist/components/atoms/InfiniteScrollSentinel.d.ts +23 -0
- package/dist/components/atoms/Input.d.ts +26 -0
- package/dist/components/atoms/Label.d.ts +5 -0
- package/dist/components/atoms/LawReferenceTooltip.d.ts +48 -0
- package/dist/components/atoms/Overlay.d.ts +16 -0
- package/dist/components/atoms/ProgressBar.d.ts +63 -0
- package/dist/components/atoms/Radio.d.ts +26 -0
- package/dist/components/atoms/RangeSlider.d.ts +31 -0
- package/dist/components/atoms/Select.d.ts +12 -0
- package/dist/components/atoms/Spacer.d.ts +25 -0
- package/dist/components/atoms/Spinner.d.ts +6 -0
- package/dist/components/atoms/Stack.d.ts +66 -0
- package/dist/components/atoms/StatusDot.d.ts +14 -0
- package/dist/components/atoms/Switch.d.ts +12 -0
- package/dist/components/atoms/TextHighlight.d.ts +53 -0
- package/dist/components/atoms/Textarea.d.ts +5 -0
- package/dist/components/atoms/ThemeSelector.d.ts +21 -0
- package/dist/components/atoms/ThemeToggle.d.ts +33 -0
- package/dist/components/atoms/TimeSlotCell.d.ts +23 -0
- package/dist/components/atoms/TrendIndicator.d.ts +18 -0
- package/dist/components/atoms/TypewriterText.d.ts +20 -0
- package/dist/components/atoms/Typography.d.ts +57 -0
- package/dist/components/atoms/game/ActionButton.d.ts +25 -0
- package/dist/components/atoms/game/ChoiceButton.d.ts +18 -0
- package/dist/components/atoms/game/ComboCounter.d.ts +16 -0
- package/dist/components/atoms/game/ControlButton.d.ts +31 -0
- package/dist/components/atoms/game/DamageNumber.d.ts +14 -0
- package/dist/components/atoms/game/DialogueBubble.d.ts +16 -0
- package/dist/components/atoms/game/HealthBar.d.ts +18 -0
- package/dist/components/atoms/game/ItemSlot.d.ts +25 -0
- package/dist/components/atoms/game/MiniMap.d.ts +36 -0
- package/dist/components/atoms/game/ResourceCounter.d.ts +21 -0
- package/dist/components/atoms/game/ScoreDisplay.d.ts +21 -0
- package/dist/components/atoms/game/Sprite.d.ts +63 -0
- package/dist/components/atoms/game/StateIndicator.d.ts +31 -0
- package/dist/components/atoms/game/StatusEffect.d.ts +21 -0
- package/dist/components/atoms/game/TimerDisplay.d.ts +18 -0
- package/dist/components/atoms/game/TurnIndicator.d.ts +18 -0
- package/dist/components/atoms/game/WaypointMarker.d.ts +19 -0
- package/dist/components/atoms/game/XPBar.d.ts +20 -0
- package/dist/components/atoms/game/index.d.ts +25 -0
- package/dist/components/atoms/index.d.ts +37 -0
- package/dist/components/index.css +508 -0
- package/dist/components/index.d.ts +6 -9788
- package/dist/components/index.js +769 -11187
- package/dist/components/molecules/Accordion.d.ts +67 -0
- package/dist/components/molecules/Alert.d.ts +24 -0
- package/dist/components/molecules/Breadcrumb.d.ts +55 -0
- package/dist/components/molecules/ButtonGroup.d.ts +67 -0
- package/dist/components/molecules/CalendarGrid.d.ts +43 -0
- package/dist/components/molecules/Card.d.ts +56 -0
- package/dist/components/molecules/Carousel.d.ts +31 -0
- package/dist/components/molecules/ChartLegend.d.ts +20 -0
- package/dist/components/molecules/Container.d.ts +30 -0
- package/dist/components/molecules/DataGrid.d.ts +75 -0
- package/dist/components/molecules/DataList.d.ts +95 -0
- package/dist/components/molecules/DateRangeSelector.d.ts +22 -0
- package/dist/components/molecules/Drawer.d.ts +46 -0
- package/dist/components/molecules/EmptyState.d.ts +25 -0
- package/dist/components/molecules/ErrorBoundary.d.ts +55 -0
- package/dist/components/molecules/ErrorState.d.ts +13 -0
- package/dist/components/molecules/FilterGroup.d.ts +54 -0
- package/dist/components/molecules/Flex.d.ts +43 -0
- package/dist/components/molecules/FlipCard.d.ts +25 -0
- package/dist/components/molecules/FloatingActionButton.d.ts +69 -0
- package/dist/components/molecules/FormField.d.ts +16 -0
- package/dist/components/molecules/FormSectionHeader.d.ts +30 -0
- package/dist/components/molecules/GraphView.d.ts +45 -0
- package/dist/components/molecules/Grid.d.ts +54 -0
- package/dist/components/molecules/InputGroup.d.ts +24 -0
- package/dist/components/molecules/Lightbox.d.ts +25 -0
- package/dist/components/molecules/LineChart.d.ts +33 -0
- package/dist/components/molecules/LoadingState.d.ts +7 -0
- package/dist/components/molecules/MapView.d.ts +40 -0
- package/dist/components/molecules/Menu.d.ts +40 -0
- package/dist/components/molecules/Meter.d.ts +51 -0
- package/dist/components/molecules/Modal.d.ts +28 -0
- package/dist/components/molecules/NumberStepper.d.ts +27 -0
- package/dist/components/molecules/Pagination.d.ts +66 -0
- package/dist/components/molecules/Popover.d.ts +39 -0
- package/dist/components/molecules/ProgressDots.d.ts +24 -0
- package/dist/components/molecules/PullToRefresh.d.ts +21 -0
- package/dist/components/molecules/QuizBlock.d.ts +20 -0
- package/dist/components/molecules/RelationSelect.d.ts +48 -0
- package/dist/components/molecules/RepeatableFormSection.d.ts +58 -0
- package/dist/components/molecules/ScaledDiagram.d.ts +20 -0
- package/dist/components/molecules/SearchInput.d.ts +60 -0
- package/dist/components/molecules/SidePanel.d.ts +47 -0
- package/dist/components/molecules/SimpleGrid.d.ts +27 -0
- package/dist/components/molecules/Skeleton.d.ts +35 -0
- package/dist/components/molecules/SortableList.d.ts +17 -0
- package/dist/components/molecules/StarRating.d.ts +26 -0
- package/dist/components/molecules/StatDisplay.d.ts +37 -0
- package/dist/components/molecules/SwipeableRow.d.ts +24 -0
- package/dist/components/molecules/Tabs.d.ts +45 -0
- package/dist/components/molecules/Toast.d.ts +35 -0
- package/dist/components/molecules/Tooltip.d.ts +25 -0
- package/dist/components/molecules/UploadDropZone.d.ts +26 -0
- package/dist/components/molecules/ViolationAlert.d.ts +49 -0
- package/dist/components/molecules/WizardNavigation.d.ts +51 -0
- package/dist/components/molecules/WizardProgress.d.ts +42 -0
- package/dist/components/molecules/game/ActionButtons.d.ts +34 -0
- package/dist/components/molecules/game/CombatLog.d.ts +30 -0
- package/dist/components/molecules/game/CraftingRecipe.d.ts +33 -0
- package/dist/components/molecules/game/DPad.d.ts +22 -0
- package/dist/components/molecules/game/DialogueBox.d.ts +78 -0
- package/dist/components/molecules/game/EnemyPlate.d.ts +27 -0
- package/dist/components/molecules/game/GameCanvas2D.d.ts +18 -0
- package/dist/components/molecules/game/GameHud.d.ts +49 -0
- package/dist/components/molecules/game/GameMenu.d.ts +43 -0
- package/dist/components/molecules/game/GameOverScreen.d.ts +56 -0
- package/dist/components/molecules/game/HealthPanel.d.ts +27 -0
- package/dist/components/molecules/game/InventoryGrid.d.ts +30 -0
- package/dist/components/molecules/game/InventoryPanel.d.ts +67 -0
- package/dist/components/molecules/game/IsometricCanvas.d.ts +127 -0
- package/dist/components/molecules/game/PlatformerCanvas.d.ts +52 -0
- package/dist/components/molecules/game/PowerupSlots.d.ts +23 -0
- package/dist/components/molecules/game/QuestTracker.d.ts +20 -0
- package/dist/components/molecules/game/ResourceBar.d.ts +23 -0
- package/dist/components/molecules/game/ScoreBoard.d.ts +18 -0
- package/dist/components/molecules/game/StatBadge.d.ts +27 -0
- package/dist/components/molecules/game/TurnPanel.d.ts +29 -0
- package/dist/components/molecules/game/UnitCommandBar.d.ts +25 -0
- package/dist/components/molecules/game/index.d.ts +30 -0
- package/dist/components/molecules/index.d.ts +59 -0
- package/dist/components/molecules/markdown/CodeBlock.d.ts +25 -0
- package/dist/components/molecules/markdown/MarkdownContent.d.ts +26 -0
- package/dist/components/molecules/markdown/index.d.ts +2 -0
- package/dist/components/organisms/CardGrid.d.ts +80 -0
- package/dist/components/organisms/Chart.d.ts +59 -0
- package/dist/components/organisms/CodeViewer.d.ts +67 -0
- package/dist/components/organisms/ComponentPatterns.d.ts +453 -0
- package/dist/components/organisms/ConfirmDialog.d.ts +50 -0
- package/dist/components/organisms/ContentRenderer.d.ts +23 -0
- package/dist/components/organisms/CustomPattern.d.ts +104 -0
- package/dist/components/organisms/DataTable.d.ts +67 -0
- package/dist/components/organisms/DetailPanel.d.ts +78 -0
- package/dist/components/organisms/DocumentViewer.d.ts +60 -0
- package/dist/components/organisms/DrawerSlot.d.ts +39 -0
- package/dist/components/organisms/Form.d.ts +206 -0
- package/dist/components/organisms/FormSection.d.ts +41 -0
- package/dist/components/organisms/GraphCanvas.d.ts +69 -0
- package/dist/components/organisms/Header.d.ts +110 -0
- package/dist/components/organisms/JazariStateMachine.d.ts +60 -0
- package/dist/components/organisms/LayoutPatterns.d.ts +181 -0
- package/dist/components/organisms/List.d.ts +78 -0
- package/dist/components/organisms/MasterDetail.d.ts +32 -0
- package/dist/components/organisms/MediaGallery.d.ts +57 -0
- package/dist/components/organisms/Meter.d.ts +58 -0
- package/dist/components/organisms/ModalSlot.d.ts +35 -0
- package/dist/components/organisms/Navigation.d.ts +68 -0
- package/dist/components/organisms/NotifyListener.d.ts +15 -0
- package/dist/components/organisms/OrbitalVisualization.d.ts +48 -0
- package/dist/components/organisms/PageHeader.d.ts +59 -0
- package/dist/components/organisms/Section.d.ts +44 -0
- package/dist/components/organisms/Sidebar.d.ts +63 -0
- package/dist/components/organisms/SignaturePad.d.ts +44 -0
- package/dist/components/organisms/Split.d.ts +42 -0
- package/dist/components/organisms/StatCard.d.ts +62 -0
- package/dist/components/organisms/StateMachineView.d.ts +36 -0
- package/dist/components/organisms/Table.d.ts +99 -0
- package/dist/components/organisms/Timeline.d.ts +49 -0
- package/dist/components/organisms/ToastSlot.d.ts +38 -0
- package/dist/components/organisms/UISlotRenderer.d.ts +112 -0
- package/dist/components/organisms/WizardContainer.d.ts +160 -0
- package/dist/components/organisms/book/BookChapterView.d.ts +17 -0
- package/dist/components/organisms/book/BookCoverPage.d.ts +20 -0
- package/dist/components/organisms/book/BookNavBar.d.ts +19 -0
- package/dist/components/organisms/book/BookTableOfContents.d.ts +18 -0
- package/dist/components/organisms/book/BookViewer.d.ts +28 -0
- package/dist/components/organisms/book/index.d.ts +7 -0
- package/dist/components/organisms/book/types.d.ts +77 -0
- package/dist/components/organisms/component-registry.generated.d.ts +9 -0
- package/dist/components/organisms/debug/RuntimeDebugger.d.ts +19 -0
- package/dist/components/organisms/debug/hooks/useDebugData.d.ts +25 -0
- package/dist/components/organisms/debug/index.d.ts +13 -0
- package/dist/components/organisms/debug/tabs/EntitiesTab.d.ts +13 -0
- package/dist/components/organisms/debug/tabs/EventDispatcherTab.d.ts +16 -0
- package/dist/components/organisms/debug/tabs/EventFlowTab.d.ts +9 -0
- package/dist/components/organisms/debug/tabs/GuardsPanel.d.ts +9 -0
- package/dist/components/organisms/debug/tabs/ServerBridgeTab.d.ts +9 -0
- package/dist/components/organisms/debug/tabs/TicksTab.d.ts +13 -0
- package/dist/components/organisms/debug/tabs/TraitsTab.d.ts +13 -0
- package/dist/components/organisms/debug/tabs/TransitionTimeline.d.ts +9 -0
- package/dist/components/organisms/debug/tabs/VerificationTab.d.ts +10 -0
- package/dist/components/organisms/game/BattleBoard.d.ts +175 -0
- package/dist/components/organisms/game/CanvasEffect.d.ts +68 -0
- package/dist/components/organisms/game/CastleBoard.d.ts +85 -0
- package/dist/components/organisms/game/CombatLog.d.ts +2 -0
- package/dist/components/organisms/game/DialogueBox.d.ts +2 -0
- package/dist/components/organisms/game/GameAudioProvider.d.ts +47 -0
- package/dist/components/organisms/game/GameAudioToggle.d.ts +28 -0
- package/dist/components/organisms/game/GameCanvas3D.d.ts +181 -0
- package/dist/components/organisms/game/GameHud.d.ts +2 -0
- package/dist/components/organisms/game/GameMenu.d.ts +2 -0
- package/dist/components/organisms/game/GameOverScreen.d.ts +2 -0
- package/dist/components/organisms/game/InventoryPanel.d.ts +2 -0
- package/dist/components/organisms/game/IsometricCanvas.d.ts +3 -0
- package/dist/components/organisms/game/PlatformerCanvas.d.ts +2 -0
- package/dist/components/organisms/game/TraitSlot.d.ts +90 -0
- package/dist/components/organisms/game/TraitStateViewer.d.ts +53 -0
- package/dist/components/organisms/game/UncontrolledBattleBoard.d.ts +26 -0
- package/dist/components/organisms/game/WorldMapBoard.d.ts +156 -0
- package/dist/components/organisms/game/editor/editorUtils.d.ts +109 -0
- package/dist/components/organisms/game/editor/index.d.ts +9 -0
- package/dist/components/organisms/game/hooks/useBattleState.d.ts +35 -0
- package/dist/components/organisms/game/hooks/useCamera.d.ts +41 -0
- package/dist/components/organisms/game/hooks/useGameAudio.d.ts +47 -0
- package/dist/components/organisms/game/hooks/useImageCache.d.ts +16 -0
- package/dist/components/organisms/game/hooks/usePhysics2D.d.ts +45 -0
- package/dist/components/organisms/game/hooks/useSpriteAnimations.d.ts +43 -0
- package/dist/components/organisms/game/index.d.ts +52 -0
- package/dist/components/organisms/game/managers/PhysicsManager.d.ts +103 -0
- package/dist/components/organisms/game/physics-sim/SimulationCanvas.d.ts +20 -0
- package/dist/components/organisms/game/physics-sim/SimulationControls.d.ts +28 -0
- package/dist/components/organisms/game/physics-sim/SimulationGraph.d.ts +25 -0
- package/dist/components/organisms/game/physics-sim/index.d.ts +7 -0
- package/dist/components/organisms/game/physics-sim/presets/index.d.ts +4 -0
- package/dist/components/organisms/game/physics-sim/presets/mechanics.d.ts +4 -0
- package/dist/components/organisms/game/physics-sim/presets/types.d.ts +43 -0
- package/dist/components/organisms/game/puzzles/builder/BuilderBoard.d.ts +52 -0
- package/dist/components/organisms/game/puzzles/builder/index.d.ts +2 -0
- package/dist/components/organisms/game/puzzles/classifier/ClassifierBoard.d.ts +53 -0
- package/dist/components/organisms/game/puzzles/classifier/index.d.ts +2 -0
- package/dist/components/organisms/game/puzzles/debugger/DebuggerBoard.d.ts +45 -0
- package/dist/components/organisms/game/puzzles/debugger/index.d.ts +2 -0
- package/dist/components/organisms/game/puzzles/event-handler/EventHandlerBoard.d.ts +55 -0
- package/dist/components/organisms/game/puzzles/event-handler/EventLog.d.ts +31 -0
- package/dist/components/organisms/game/puzzles/event-handler/ObjectRulePanel.d.ts +45 -0
- package/dist/components/organisms/game/puzzles/event-handler/RuleEditor.d.ts +41 -0
- package/dist/components/organisms/game/puzzles/event-handler/index.d.ts +8 -0
- package/dist/components/organisms/game/puzzles/negotiator/NegotiatorBoard.d.ts +54 -0
- package/dist/components/organisms/game/puzzles/negotiator/index.d.ts +2 -0
- package/dist/components/organisms/game/puzzles/sequencer/ActionPalette.d.ts +34 -0
- package/dist/components/organisms/game/puzzles/sequencer/ActionTile.d.ts +30 -0
- package/dist/components/organisms/game/puzzles/sequencer/SequenceBar.d.ts +41 -0
- package/dist/components/organisms/game/puzzles/sequencer/SequencerBoard.d.ts +72 -0
- package/dist/components/organisms/game/puzzles/sequencer/index.d.ts +8 -0
- package/dist/components/organisms/game/puzzles/simulator/SimulatorBoard.d.ts +54 -0
- package/dist/components/organisms/game/puzzles/simulator/index.d.ts +2 -0
- package/dist/components/organisms/game/puzzles/state-architect/CodeView.d.ts +24 -0
- package/dist/components/organisms/game/puzzles/state-architect/StateArchitectBoard.d.ts +76 -0
- package/dist/components/organisms/game/puzzles/state-architect/StateNode.d.ts +33 -0
- package/dist/components/organisms/game/puzzles/state-architect/TransitionArrow.d.ts +36 -0
- package/dist/components/organisms/game/puzzles/state-architect/VariablePanel.d.ts +28 -0
- package/dist/components/organisms/game/puzzles/state-architect/index.d.ts +10 -0
- package/dist/components/organisms/game/three/Camera3D.d.ts +60 -0
- package/dist/components/organisms/game/three/Lighting3D.d.ts +47 -0
- package/dist/components/organisms/game/three/Scene3D.d.ts +37 -0
- package/dist/components/organisms/game/three/components/Canvas3DErrorBoundary.d.ts +51 -0
- package/dist/components/organisms/game/three/components/Canvas3DLoadingState.d.ts +44 -0
- package/dist/components/organisms/game/three/components/ModelLoader.d.ts +44 -0
- package/dist/components/organisms/game/three/components/PhysicsObject3D.d.ts +74 -0
- package/dist/components/organisms/game/three/components/index.d.ts +10 -0
- package/dist/components/organisms/game/three/hooks/useAssetLoader.d.ts +58 -0
- package/dist/components/organisms/game/three/hooks/useGameCanvas3DEvents.d.ts +79 -0
- package/dist/components/organisms/game/three/hooks/useRaycaster.d.ts +86 -0
- package/dist/components/organisms/game/three/hooks/useSceneGraph.d.ts +66 -0
- package/dist/components/organisms/game/three/hooks/useThree.d.ts +58 -0
- package/dist/components/organisms/game/three/index.d.ts +18 -1228
- package/dist/components/organisms/game/three/index.js +49 -1709
- package/dist/components/organisms/game/three/loaders/AssetLoader.d.ts +80 -0
- package/dist/components/organisms/game/three/renderers/FeatureRenderer.d.ts +44 -0
- package/dist/components/organisms/game/three/renderers/FeatureRenderer3D.d.ts +44 -0
- package/dist/components/organisms/game/three/renderers/TileRenderer.d.ts +57 -0
- package/dist/components/organisms/game/three/renderers/UnitRenderer.d.ts +46 -0
- package/dist/components/organisms/game/three/renderers/index.d.ts +11 -0
- package/dist/components/organisms/game/three/utils/culling.d.ts +134 -0
- package/dist/components/organisms/game/three/utils/grid3D.d.ts +154 -0
- package/dist/components/organisms/game/types/effects.d.ts +253 -0
- package/dist/components/organisms/game/types/game.d.ts +92 -0
- package/dist/{isometric-ynNHVPZx.d.ts → components/organisms/game/types/isometric.d.ts} +4 -6
- package/dist/components/organisms/game/types/spriteAnimation.d.ts +73 -0
- package/dist/components/organisms/game/useCanvasEffects.d.ts +26 -0
- package/dist/components/organisms/game/utils/canvasEffects.d.ts +50 -0
- package/dist/components/organisms/game/utils/combatEffects.d.ts +64 -0
- package/dist/components/organisms/game/utils/combatPresets.d.ts +15 -0
- package/dist/components/organisms/game/utils/isometric.d.ts +61 -0
- package/dist/components/organisms/game/utils/spriteAnimation.d.ts +57 -0
- package/dist/components/organisms/game/utils/spriteSheetConstants.d.ts +16 -0
- package/dist/components/organisms/index.d.ts +38 -0
- package/dist/components/organisms/layout/DashboardGrid.d.ts +35 -0
- package/dist/components/organisms/layout/MasterDetail.d.ts +32 -0
- package/dist/components/organisms/layout/SplitPane.d.ts +34 -0
- package/dist/components/organisms/layout/TabbedContainer.d.ts +42 -0
- package/dist/components/organisms/layout/index.d.ts +9 -0
- package/dist/components/organisms/types.d.ts +63 -0
- package/dist/components/templates/AuthLayout.d.ts +14 -0
- package/dist/components/templates/BattleTemplate.d.ts +25 -0
- package/dist/components/templates/CastleTemplate.d.ts +23 -0
- package/dist/components/templates/CounterTemplate.d.ts +44 -0
- package/dist/components/templates/DashboardLayout.d.ts +34 -0
- package/dist/components/templates/GameCanvas3DBattleTemplate.d.ts +96 -0
- package/dist/components/templates/GameCanvas3DCastleTemplate.d.ts +90 -0
- package/dist/components/templates/GameCanvas3DWorldMapTemplate.d.ts +96 -0
- package/dist/components/templates/GameShell.d.ts +34 -0
- package/dist/components/templates/GameTemplate.d.ts +36 -0
- package/dist/components/templates/GenericAppTemplate.d.ts +30 -0
- package/dist/components/templates/WorldMapTemplate.d.ts +29 -0
- package/dist/components/templates/index.d.ts +10 -0
- package/dist/components/templates/types.d.ts +22 -0
- package/dist/context/DesignThemeContext.d.ts +21 -0
- package/dist/{ThemeContext-D9xUORq5.d.ts → context/ThemeContext.d.ts} +15 -16
- package/dist/context/UISlotContext.d.ts +75 -0
- package/dist/context/UserContext.d.ts +111 -0
- package/dist/context/index.d.ts +6 -206
- package/dist/{event-bus-types-CjJduURa.d.ts → hooks/event-bus-types.d.ts} +4 -6
- package/dist/hooks/index.d.ts +30 -1220
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/useAgentChat.d.ts +104 -0
- package/dist/hooks/useAuthContext.d.ts +25 -0
- package/dist/hooks/useCompile.d.ts +22 -0
- package/dist/hooks/useDeepAgentGeneration.d.ts +46 -0
- package/dist/hooks/useDragReorder.d.ts +26 -0
- package/dist/hooks/useEntities.d.ts +52 -0
- package/dist/hooks/useEntityData.d.ts +155 -0
- package/dist/hooks/useEntityMutations.d.ts +80 -0
- package/dist/hooks/useEventBus.d.ts +96 -0
- package/dist/hooks/useExtensions.d.ts +32 -0
- package/dist/hooks/useFileEditor.d.ts +32 -0
- package/dist/hooks/useFileSystem.d.ts +40 -0
- package/dist/hooks/useGitHub.d.ts +58 -0
- package/dist/hooks/useInfiniteScroll.d.ts +13 -0
- package/dist/hooks/useLongPress.d.ts +16 -0
- package/dist/hooks/useOrbitalHistory.d.ts +39 -0
- package/dist/hooks/useOrbitalMutations.d.ts +95 -0
- package/dist/hooks/usePinchZoom.d.ts +22 -0
- package/dist/hooks/usePreview.d.ts +57 -0
- package/dist/hooks/usePullToRefresh.d.ts +25 -0
- package/dist/hooks/useQuerySingleton.d.ts +78 -0
- package/dist/hooks/useResolvedEntity.d.ts +32 -0
- package/dist/hooks/useSwipeGesture.d.ts +26 -0
- package/dist/hooks/useTranslate.d.ts +35 -0
- package/dist/hooks/useUIEvents.d.ts +35 -0
- package/dist/{useUISlots-BBjNvQtb.d.ts → hooks/useUISlots.d.ts} +8 -9
- package/dist/hooks/useValidation.d.ts +46 -0
- package/dist/lib/api-client.d.ts +42 -0
- package/dist/lib/cn.d.ts +6 -0
- package/dist/lib/debug.d.ts +43 -0
- package/dist/lib/debugRegistry.d.ts +29 -0
- package/dist/lib/debugUtils.d.ts +27 -0
- package/dist/lib/entityDebug.d.ts +38 -0
- package/dist/lib/getNestedValue.d.ts +33 -0
- package/dist/lib/guardRegistry.d.ts +32 -0
- package/dist/lib/index.d.ts +17 -319
- package/dist/lib/index.js +1 -3
- package/dist/lib/jazari/index.d.ts +5 -0
- package/dist/lib/jazari/layout.d.ts +30 -0
- package/dist/lib/jazari/svg-paths.d.ts +61 -0
- package/dist/lib/jazari/types.d.ts +91 -0
- package/dist/lib/parseContentSegments.d.ts +41 -0
- package/dist/lib/tickRegistry.d.ts +40 -0
- package/dist/lib/traitRegistry.d.ts +34 -0
- package/dist/lib/verificationRegistry.d.ts +138 -0
- package/dist/lib/visualizer/browser.d.ts +47 -0
- package/dist/lib/visualizer/index.d.ts +143 -0
- package/dist/locales/index.d.ts +5 -7
- package/dist/providers/EventBusProvider.d.ts +60 -0
- package/dist/providers/FetchedDataProvider.d.ts +105 -0
- package/dist/providers/OfflineModeProvider.d.ts +79 -0
- package/dist/providers/OrbitalProvider.d.ts +101 -0
- package/dist/providers/SelectionProvider.d.ts +81 -0
- package/dist/providers/VerificationProvider.d.ts +63 -0
- package/dist/providers/index.css +599 -0
- package/dist/providers/index.d.ts +16 -464
- package/dist/providers/index.js +5 -4
- package/dist/renderer/client-effect-executor.d.ts +68 -0
- package/dist/renderer/data-resolver.d.ts +68 -0
- package/dist/renderer/index.d.ts +22 -519
- package/dist/renderer/init.d.ts +14 -0
- package/dist/renderer/navigation.d.ts +142 -0
- package/dist/{offline-executor-CHr4uAhf.d.ts → renderer/offline-executor.d.ts} +9 -172
- package/dist/renderer/pattern-resolver.d.ts +91 -0
- package/dist/renderer/slot-definitions.d.ts +45 -0
- package/dist/renderer/types.d.ts +160 -0
- package/dist/renderer/useClientEffects.d.ts +88 -0
- package/dist/runtime/EntitySchemaContext.d.ts +40 -0
- package/dist/runtime/TraitProvider.d.ts +52 -0
- package/dist/runtime/createClientEffectHandlers.d.ts +23 -0
- package/dist/runtime/index.css +599 -0
- package/dist/runtime/index.d.ts +10 -275
- package/dist/runtime/index.js +6 -6
- package/dist/runtime/types.d.ts +10 -0
- package/dist/runtime/ui/SlotsContext.d.ts +71 -0
- package/dist/runtime/useResolvedSchema.d.ts +45 -0
- package/dist/runtime/useTraitStateMachine.d.ts +48 -0
- package/dist/scripts/generate-design-system.d.ts +29 -0
- package/dist/scripts/generate-theme-from-schema.d.ts +10 -0
- package/dist/scripts/generate.d.ts +12 -0
- package/dist/scripts/suggest-components.d.ts +31 -0
- package/dist/scripts/types.d.ts +129 -0
- package/dist/stores/entityStore.d.ts +99 -0
- package/dist/stores/filtering.d.ts +51 -0
- package/dist/stores/index.d.ts +4 -148
- package/dist/tsup.config.d.ts +2 -0
- package/dist/vitest.config.d.ts +2 -0
- package/package.json +5 -4
- package/dist/chunk-42YQ6JVR.js +0 -48
- package/dist/chunk-WCTZ7WZX.js +0 -311
- package/dist/cn-C_ATNPvi.d.ts +0 -332
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas3DErrorBoundary
|
|
3
|
+
*
|
|
4
|
+
* Error boundary for 3D canvas components.
|
|
5
|
+
* Catches Three.js and React Three Fiber errors gracefully.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import { Component, type ReactNode, type ErrorInfo } from 'react';
|
|
10
|
+
import './Canvas3DErrorBoundary.css';
|
|
11
|
+
export interface Canvas3DErrorBoundaryProps {
|
|
12
|
+
/** Child components */
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
/** Custom fallback component */
|
|
15
|
+
fallback?: ReactNode;
|
|
16
|
+
/** Error callback */
|
|
17
|
+
onError?: (error: Error, errorInfo: ErrorInfo) => void;
|
|
18
|
+
/** Reset callback */
|
|
19
|
+
onReset?: () => void;
|
|
20
|
+
}
|
|
21
|
+
export interface Canvas3DErrorBoundaryState {
|
|
22
|
+
/** Whether an error has occurred */
|
|
23
|
+
hasError: boolean;
|
|
24
|
+
/** The error that occurred */
|
|
25
|
+
error: Error | null;
|
|
26
|
+
/** Error info from React */
|
|
27
|
+
errorInfo: ErrorInfo | null;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Canvas3DErrorBoundary Component
|
|
31
|
+
*
|
|
32
|
+
* Catches errors in 3D canvas and displays a user-friendly fallback.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* <Canvas3DErrorBoundary
|
|
37
|
+
* onError={(error) => console.error('3D Error:', error)}
|
|
38
|
+
* onReset={() => console.log('Resetting...')}
|
|
39
|
+
* >
|
|
40
|
+
* <GameCanvas3D {...props} />
|
|
41
|
+
* </Canvas3DErrorBoundary>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export declare class Canvas3DErrorBoundary extends Component<Canvas3DErrorBoundaryProps, Canvas3DErrorBoundaryState> {
|
|
45
|
+
constructor(props: Canvas3DErrorBoundaryProps);
|
|
46
|
+
static getDerivedStateFromError(error: Error): Canvas3DErrorBoundaryState;
|
|
47
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
48
|
+
handleReset: () => void;
|
|
49
|
+
render(): ReactNode;
|
|
50
|
+
}
|
|
51
|
+
export default Canvas3DErrorBoundary;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas3DLoadingState
|
|
3
|
+
*
|
|
4
|
+
* Loading state component for 3D canvas with progress indicator.
|
|
5
|
+
* Displays asset loading progress and estimated time remaining.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import './Canvas3DLoadingState.css';
|
|
11
|
+
export interface Canvas3DLoadingStateProps {
|
|
12
|
+
/** Current loading progress (0-100) */
|
|
13
|
+
progress?: number;
|
|
14
|
+
/** Number of assets loaded */
|
|
15
|
+
loaded?: number;
|
|
16
|
+
/** Total assets to load */
|
|
17
|
+
total?: number;
|
|
18
|
+
/** Loading message */
|
|
19
|
+
message?: string;
|
|
20
|
+
/** Secondary details message */
|
|
21
|
+
details?: string;
|
|
22
|
+
/** Whether to show spinner */
|
|
23
|
+
showSpinner?: boolean;
|
|
24
|
+
/** Custom className */
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Canvas3DLoadingState Component
|
|
29
|
+
*
|
|
30
|
+
* Displays loading progress for 3D assets.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* <Canvas3DLoadingState
|
|
35
|
+
* progress={65}
|
|
36
|
+
* loaded={13}
|
|
37
|
+
* total={20}
|
|
38
|
+
* message="Loading 3D models..."
|
|
39
|
+
* details="character-knight.glb"
|
|
40
|
+
* />
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function Canvas3DLoadingState({ progress, loaded, total, message, details, showSpinner, className, }: Canvas3DLoadingStateProps): React.JSX.Element;
|
|
44
|
+
export default Canvas3DLoadingState;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModelLoader Component
|
|
3
|
+
*
|
|
4
|
+
* React Three Fiber component for loading and displaying GLB/GLTF models from URLs.
|
|
5
|
+
* Handles loading states and errors without requiring React Suspense.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
export interface ModelLoaderProps {
|
|
11
|
+
/** URL to the GLB/GLTF model */
|
|
12
|
+
url: string;
|
|
13
|
+
/** Position [x, y, z] */
|
|
14
|
+
position?: [number, number, number];
|
|
15
|
+
/** Scale - either a single number or [x, y, z] */
|
|
16
|
+
scale?: number | [number, number, number];
|
|
17
|
+
/** Rotation in degrees [x, y, z] */
|
|
18
|
+
rotation?: [number, number, number];
|
|
19
|
+
/** Whether the model is selected */
|
|
20
|
+
isSelected?: boolean;
|
|
21
|
+
/** Whether the model is hovered */
|
|
22
|
+
isHovered?: boolean;
|
|
23
|
+
/** Click handler */
|
|
24
|
+
onClick?: () => void;
|
|
25
|
+
/** Hover handler */
|
|
26
|
+
onHover?: (hovered: boolean) => void;
|
|
27
|
+
/** Fallback geometry type */
|
|
28
|
+
fallbackGeometry?: 'box' | 'sphere' | 'cylinder' | 'none';
|
|
29
|
+
/** Enable shadows */
|
|
30
|
+
castShadow?: boolean;
|
|
31
|
+
/** Receive shadows */
|
|
32
|
+
receiveShadow?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Base path for shared resources (textures, materials).
|
|
35
|
+
* If not provided, auto-detected from the URL by looking for a `/3d/` segment.
|
|
36
|
+
* E.g. "https://host/3d/" so that "Textures/colormap.png" resolves correctly.
|
|
37
|
+
*/
|
|
38
|
+
resourceBasePath?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* ModelLoader component for rendering GLB models in React Three Fiber
|
|
42
|
+
*/
|
|
43
|
+
export declare function ModelLoader({ url, position, scale, rotation, isSelected, isHovered, onClick, onHover, fallbackGeometry, castShadow, receiveShadow, resourceBasePath, }: ModelLoaderProps): React.JSX.Element;
|
|
44
|
+
export default ModelLoader;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PhysicsObject3D Component
|
|
3
|
+
*
|
|
4
|
+
* Three.js component that syncs a 3D object's position with physics state.
|
|
5
|
+
* Use this to render physics-enabled entities in GameCanvas3D.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <PhysicsObject3D
|
|
10
|
+
* entityId="player-1"
|
|
11
|
+
* modelUrl="https://trait-wars-assets.web.app/3d/medieval/props/barrels.glb"
|
|
12
|
+
* initialPosition={[0, 10, 0]}
|
|
13
|
+
* mass={1}
|
|
14
|
+
* />
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @packageDocumentation
|
|
18
|
+
*/
|
|
19
|
+
import React from 'react';
|
|
20
|
+
export interface Physics3DState {
|
|
21
|
+
id: string;
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
z: number;
|
|
25
|
+
vx: number;
|
|
26
|
+
vy: number;
|
|
27
|
+
vz: number;
|
|
28
|
+
rx: number;
|
|
29
|
+
ry: number;
|
|
30
|
+
rz: number;
|
|
31
|
+
isGrounded: boolean;
|
|
32
|
+
gravity: number;
|
|
33
|
+
friction: number;
|
|
34
|
+
mass: number;
|
|
35
|
+
state: 'Active' | 'Frozen';
|
|
36
|
+
}
|
|
37
|
+
export interface PhysicsObject3DProps {
|
|
38
|
+
/** Unique entity ID */
|
|
39
|
+
entityId: string;
|
|
40
|
+
/** GLB model URL */
|
|
41
|
+
modelUrl: string;
|
|
42
|
+
/** Initial position [x, y, z] */
|
|
43
|
+
initialPosition?: [number, number, number];
|
|
44
|
+
/** Initial velocity [vx, vy, vz] */
|
|
45
|
+
initialVelocity?: [number, number, number];
|
|
46
|
+
/** Mass for collision response */
|
|
47
|
+
mass?: number;
|
|
48
|
+
/** Gravity force (default: 9.8) */
|
|
49
|
+
gravity?: number;
|
|
50
|
+
/** Ground plane Y position (default: 0) */
|
|
51
|
+
groundY?: number;
|
|
52
|
+
/** Model scale */
|
|
53
|
+
scale?: number | [number, number, number];
|
|
54
|
+
/** Called when physics state updates */
|
|
55
|
+
onPhysicsUpdate?: (state: Physics3DState) => void;
|
|
56
|
+
/** Called when object hits ground */
|
|
57
|
+
onGroundHit?: () => void;
|
|
58
|
+
/** Called when collision occurs */
|
|
59
|
+
onCollision?: (otherEntityId: string) => void;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 3D Physics-enabled object for GameCanvas3D
|
|
63
|
+
*/
|
|
64
|
+
export declare function PhysicsObject3D({ entityId, modelUrl, initialPosition, initialVelocity, mass, gravity, groundY, scale, onPhysicsUpdate, onGroundHit, onCollision, }: PhysicsObject3DProps): React.JSX.Element;
|
|
65
|
+
/**
|
|
66
|
+
* Hook for controlling a PhysicsObject3D from parent component
|
|
67
|
+
*/
|
|
68
|
+
export declare function usePhysics3DController(entityId: string): {
|
|
69
|
+
applyForce: (fx: number, fy: number, fz: number) => void;
|
|
70
|
+
setVelocity: (vx: number, vy: number, vz: number) => void;
|
|
71
|
+
setPosition: (x: number, y: number, z: number) => void;
|
|
72
|
+
jump: (force?: number) => void;
|
|
73
|
+
};
|
|
74
|
+
export default PhysicsObject3D;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 3D Components
|
|
3
|
+
*
|
|
4
|
+
* UI components for 3D canvas states and error handling.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
export { Canvas3DLoadingState, type Canvas3DLoadingStateProps, } from './Canvas3DLoadingState';
|
|
9
|
+
export { Canvas3DErrorBoundary, type Canvas3DErrorBoundaryProps, type Canvas3DErrorBoundaryState, } from './Canvas3DErrorBoundary';
|
|
10
|
+
export { ModelLoader, type ModelLoaderProps, } from './ModelLoader';
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { AssetLoader, LoadedModel } from '../loaders/AssetLoader';
|
|
3
|
+
export interface UseAssetLoaderOptions {
|
|
4
|
+
/** URLs to preload on mount */
|
|
5
|
+
preloadUrls?: string[];
|
|
6
|
+
/** Asset loader instance (uses singleton if not provided) */
|
|
7
|
+
loader?: AssetLoader;
|
|
8
|
+
}
|
|
9
|
+
export interface AssetLoadingState {
|
|
10
|
+
/** Whether assets are currently loading */
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
/** Loading progress (0-100) */
|
|
13
|
+
progress: number;
|
|
14
|
+
/** Number of loaded assets */
|
|
15
|
+
loaded: number;
|
|
16
|
+
/** Total assets to load */
|
|
17
|
+
total: number;
|
|
18
|
+
/** Any loading errors */
|
|
19
|
+
errors: string[];
|
|
20
|
+
}
|
|
21
|
+
export interface UseAssetLoaderReturn extends AssetLoadingState {
|
|
22
|
+
/** Load a single model */
|
|
23
|
+
loadModel: (url: string) => Promise<LoadedModel>;
|
|
24
|
+
/** Load a single OBJ model */
|
|
25
|
+
loadOBJ: (url: string) => Promise<THREE.Group>;
|
|
26
|
+
/** Load a single texture */
|
|
27
|
+
loadTexture: (url: string) => Promise<THREE.Texture>;
|
|
28
|
+
/** Preload multiple assets */
|
|
29
|
+
preload: (urls: string[]) => Promise<void>;
|
|
30
|
+
/** Check if model is cached */
|
|
31
|
+
hasModel: (url: string) => boolean;
|
|
32
|
+
/** Check if texture is cached */
|
|
33
|
+
hasTexture: (url: string) => boolean;
|
|
34
|
+
/** Get cached model */
|
|
35
|
+
getModel: (url: string) => LoadedModel | undefined;
|
|
36
|
+
/** Get cached texture */
|
|
37
|
+
getTexture: (url: string) => THREE.Texture | undefined;
|
|
38
|
+
/** Clear all caches */
|
|
39
|
+
clearCache: () => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Hook for managing 3D asset loading in React components
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```tsx
|
|
46
|
+
* const { loadModel, isLoading, progress } = useAssetLoader({
|
|
47
|
+
* preloadUrls: ['/assets/model.glb']
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* useEffect(() => {
|
|
51
|
+
* loadModel('/assets/character.glb').then((model) => {
|
|
52
|
+
* scene.add(model.scene);
|
|
53
|
+
* });
|
|
54
|
+
* }, []);
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function useAssetLoader(options?: UseAssetLoaderOptions): UseAssetLoaderReturn;
|
|
58
|
+
export default useAssetLoader;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { IsometricTile, IsometricUnit, IsometricFeature } from '../../types/isometric';
|
|
2
|
+
export interface GameCanvas3DEventConfig {
|
|
3
|
+
/** Event name for tile clicks */
|
|
4
|
+
tileClickEvent?: string;
|
|
5
|
+
/** Event name for unit clicks */
|
|
6
|
+
unitClickEvent?: string;
|
|
7
|
+
/** Event name for feature clicks */
|
|
8
|
+
featureClickEvent?: string;
|
|
9
|
+
/** Event name for canvas clicks */
|
|
10
|
+
canvasClickEvent?: string;
|
|
11
|
+
/** Event name for tile hover */
|
|
12
|
+
tileHoverEvent?: string;
|
|
13
|
+
/** Event name for tile leave */
|
|
14
|
+
tileLeaveEvent?: string;
|
|
15
|
+
/** Event name for unit animation changes */
|
|
16
|
+
unitAnimationEvent?: string;
|
|
17
|
+
/** Event name for camera changes */
|
|
18
|
+
cameraChangeEvent?: string;
|
|
19
|
+
}
|
|
20
|
+
/** Minimal mouse event interface — satisfied by both React.MouseEvent and ThreeEvent<MouseEvent> */
|
|
21
|
+
export interface MinimalMouseEvent {
|
|
22
|
+
clientX: number;
|
|
23
|
+
clientY: number;
|
|
24
|
+
button: number;
|
|
25
|
+
}
|
|
26
|
+
export interface UseGameCanvas3DEventsOptions extends GameCanvas3DEventConfig {
|
|
27
|
+
/** Callback for tile clicks (direct) */
|
|
28
|
+
onTileClick?: (tile: IsometricTile, event: React.MouseEvent) => void;
|
|
29
|
+
/** Callback for unit clicks (direct) */
|
|
30
|
+
onUnitClick?: (unit: IsometricUnit, event: React.MouseEvent) => void;
|
|
31
|
+
/** Callback for feature clicks (direct) */
|
|
32
|
+
onFeatureClick?: (feature: IsometricFeature, event: React.MouseEvent) => void;
|
|
33
|
+
/** Callback for canvas clicks (direct) */
|
|
34
|
+
onCanvasClick?: (event: React.MouseEvent) => void;
|
|
35
|
+
/** Callback for tile hover (direct) */
|
|
36
|
+
onTileHover?: (tile: IsometricTile | null, event: React.MouseEvent) => void;
|
|
37
|
+
/** Callback for unit animation changes (direct) */
|
|
38
|
+
onUnitAnimation?: (unitId: string, state: string) => void;
|
|
39
|
+
}
|
|
40
|
+
export interface UseGameCanvas3DEventsReturn {
|
|
41
|
+
/** Handle tile click - emits event and calls callback */
|
|
42
|
+
handleTileClick: (tile: IsometricTile, event: React.MouseEvent) => void;
|
|
43
|
+
/** Handle unit click - emits event and calls callback */
|
|
44
|
+
handleUnitClick: (unit: IsometricUnit, event: React.MouseEvent) => void;
|
|
45
|
+
/** Handle feature click - emits event and calls callback */
|
|
46
|
+
handleFeatureClick: (feature: IsometricFeature, event: React.MouseEvent) => void;
|
|
47
|
+
/** Handle canvas click - emits event and calls callback */
|
|
48
|
+
handleCanvasClick: (event: MinimalMouseEvent) => void;
|
|
49
|
+
/** Handle tile hover - emits event and calls callback */
|
|
50
|
+
handleTileHover: (tile: IsometricTile | null, event: React.MouseEvent) => void;
|
|
51
|
+
/** Handle unit animation - emits event and calls callback */
|
|
52
|
+
handleUnitAnimation: (unitId: string, state: string) => void;
|
|
53
|
+
/** Handle camera change - emits event */
|
|
54
|
+
handleCameraChange: (position: {
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
z: number;
|
|
58
|
+
}) => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Hook for integrating GameCanvas3D with the event bus
|
|
62
|
+
*
|
|
63
|
+
* Supports both declarative event props (tileClickEvent) and
|
|
64
|
+
* direct callback props (onTileClick).
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```tsx
|
|
68
|
+
* const events = useGameCanvas3DEvents({
|
|
69
|
+
* tileClickEvent: 'TILE_SELECTED',
|
|
70
|
+
* unitClickEvent: 'UNIT_SELECTED',
|
|
71
|
+
* onTileClick: (tile) => console.log('Tile:', tile)
|
|
72
|
+
* });
|
|
73
|
+
*
|
|
74
|
+
* // In component:
|
|
75
|
+
* <TileRenderer onTileClick={events.handleTileClick} />
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export declare function useGameCanvas3DEvents(options: UseGameCanvas3DEventsOptions): UseGameCanvas3DEventsReturn;
|
|
79
|
+
export default useGameCanvas3DEvents;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export interface RaycastHit {
|
|
3
|
+
/** Intersected object */
|
|
4
|
+
object: THREE.Object3D;
|
|
5
|
+
/** Intersection point */
|
|
6
|
+
point: THREE.Vector3;
|
|
7
|
+
/** Distance from camera */
|
|
8
|
+
distance: number;
|
|
9
|
+
/** UV coordinates (if available) */
|
|
10
|
+
uv?: THREE.Vector2;
|
|
11
|
+
/** Face normal */
|
|
12
|
+
face?: THREE.Face;
|
|
13
|
+
/** Face index */
|
|
14
|
+
faceIndex?: number;
|
|
15
|
+
/** Instance ID (for instanced meshes) */
|
|
16
|
+
instanceId?: number;
|
|
17
|
+
}
|
|
18
|
+
export interface GridHit {
|
|
19
|
+
/** Grid X coordinate */
|
|
20
|
+
gridX: number;
|
|
21
|
+
/** Grid Z coordinate */
|
|
22
|
+
gridZ: number;
|
|
23
|
+
/** World position */
|
|
24
|
+
worldPosition: THREE.Vector3;
|
|
25
|
+
/** Intersected object type */
|
|
26
|
+
objectType?: 'tile' | 'unit' | 'feature';
|
|
27
|
+
/** Object ID if available */
|
|
28
|
+
objectId?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface UseRaycasterOptions {
|
|
31
|
+
/** Camera reference */
|
|
32
|
+
camera: THREE.Camera | null;
|
|
33
|
+
/** Canvas element for coordinate conversion */
|
|
34
|
+
canvas: HTMLCanvasElement | null;
|
|
35
|
+
/** Grid cell size */
|
|
36
|
+
cellSize?: number;
|
|
37
|
+
/** Grid offset X */
|
|
38
|
+
offsetX?: number;
|
|
39
|
+
/** Grid offset Z */
|
|
40
|
+
offsetZ?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface UseRaycasterReturn {
|
|
43
|
+
/** Raycaster instance */
|
|
44
|
+
raycaster: React.MutableRefObject<THREE.Raycaster>;
|
|
45
|
+
/** Mouse vector instance */
|
|
46
|
+
mouse: React.MutableRefObject<THREE.Vector2>;
|
|
47
|
+
/** Get intersection at client coordinates */
|
|
48
|
+
getIntersection: (clientX: number, clientY: number, objects: THREE.Object3D[]) => RaycastHit | null;
|
|
49
|
+
/** Get all intersections at client coordinates */
|
|
50
|
+
getAllIntersections: (clientX: number, clientY: number, objects: THREE.Object3D[]) => RaycastHit[];
|
|
51
|
+
/** Get grid coordinates at client position */
|
|
52
|
+
getGridCoordinates: (clientX: number, clientY: number) => {
|
|
53
|
+
x: number;
|
|
54
|
+
z: number;
|
|
55
|
+
} | null;
|
|
56
|
+
/** Get tile at client position from scene */
|
|
57
|
+
getTileAtPosition: (clientX: number, clientY: number, scene: THREE.Scene) => GridHit | null;
|
|
58
|
+
/** Convert client coordinates to normalized device coordinates */
|
|
59
|
+
clientToNDC: (clientX: number, clientY: number) => {
|
|
60
|
+
x: number;
|
|
61
|
+
y: number;
|
|
62
|
+
};
|
|
63
|
+
/** Check if point is within canvas bounds */
|
|
64
|
+
isWithinCanvas: (clientX: number, clientY: number) => boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Hook for 3D raycasting operations
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```tsx
|
|
71
|
+
* const { getIntersection, getGridCoordinates } = useRaycaster({
|
|
72
|
+
* camera,
|
|
73
|
+
* canvas: canvasRef.current
|
|
74
|
+
* });
|
|
75
|
+
*
|
|
76
|
+
* const handleClick = (e: MouseEvent) => {
|
|
77
|
+
* const hit = getIntersection(e.clientX, e.clientY, tileMeshes);
|
|
78
|
+
* if (hit) {
|
|
79
|
+
* const grid = getGridCoordinates(e.clientX, e.clientY);
|
|
80
|
+
* console.log('Clicked grid:', grid);
|
|
81
|
+
* }
|
|
82
|
+
* };
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export declare function useRaycaster(options: UseRaycasterOptions): UseRaycasterReturn;
|
|
86
|
+
export default useRaycaster;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
export type NodeType = 'tile' | 'unit' | 'feature' | 'highlight' | 'effect';
|
|
3
|
+
export interface SceneGraphNode {
|
|
4
|
+
/** Unique node identifier */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Node type classification */
|
|
7
|
+
type: NodeType;
|
|
8
|
+
/** Three.js object */
|
|
9
|
+
mesh: THREE.Object3D;
|
|
10
|
+
/** World position */
|
|
11
|
+
position: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
z: number;
|
|
15
|
+
};
|
|
16
|
+
/** Grid position */
|
|
17
|
+
gridPosition: {
|
|
18
|
+
x: number;
|
|
19
|
+
z: number;
|
|
20
|
+
};
|
|
21
|
+
/** Optional metadata */
|
|
22
|
+
metadata?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface UseSceneGraphReturn {
|
|
25
|
+
/** Reference to the nodes map */
|
|
26
|
+
nodesRef: React.MutableRefObject<Map<string, SceneGraphNode>>;
|
|
27
|
+
/** Add a node to the scene */
|
|
28
|
+
addNode: (node: SceneGraphNode) => void;
|
|
29
|
+
/** Remove a node from the scene */
|
|
30
|
+
removeNode: (id: string) => void;
|
|
31
|
+
/** Get a node by ID */
|
|
32
|
+
getNode: (id: string) => SceneGraphNode | undefined;
|
|
33
|
+
/** Update node position */
|
|
34
|
+
updateNodePosition: (id: string, x: number, y: number, z: number) => void;
|
|
35
|
+
/** Update node grid position */
|
|
36
|
+
updateNodeGridPosition: (id: string, gridX: number, gridZ: number) => void;
|
|
37
|
+
/** Get node at grid position */
|
|
38
|
+
getNodeAtGrid: (x: number, z: number, type?: NodeType) => SceneGraphNode | undefined;
|
|
39
|
+
/** Get all nodes of a specific type */
|
|
40
|
+
getNodesByType: (type: NodeType) => SceneGraphNode[];
|
|
41
|
+
/** Get all nodes within a bounding box */
|
|
42
|
+
getNodesInBounds: (minX: number, maxX: number, minZ: number, maxZ: number) => SceneGraphNode[];
|
|
43
|
+
/** Clear all nodes */
|
|
44
|
+
clearNodes: () => void;
|
|
45
|
+
/** Count nodes by type */
|
|
46
|
+
countNodes: (type?: NodeType) => number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Hook for managing the 3D scene graph
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* const { addNode, removeNode, getNodeAtGrid } = useSceneGraph();
|
|
54
|
+
*
|
|
55
|
+
* // Add a tile
|
|
56
|
+
* addNode({
|
|
57
|
+
* id: 'tile-0-0',
|
|
58
|
+
* type: 'tile',
|
|
59
|
+
* mesh: tileMesh,
|
|
60
|
+
* position: { x: 0, y: 0, z: 0 },
|
|
61
|
+
* gridPosition: { x: 0, z: 0 }
|
|
62
|
+
* });
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export declare function useSceneGraph(): UseSceneGraphReturn;
|
|
66
|
+
export default useSceneGraph;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
3
|
+
import { AssetLoader } from '../loaders/AssetLoader';
|
|
4
|
+
export type CameraMode = 'isometric' | 'perspective' | 'top-down';
|
|
5
|
+
export interface UseThreeOptions {
|
|
6
|
+
/** Camera mode for viewing the scene */
|
|
7
|
+
cameraMode?: CameraMode;
|
|
8
|
+
/** Initial camera position [x, y, z] */
|
|
9
|
+
cameraPosition?: [number, number, number];
|
|
10
|
+
/** Background color */
|
|
11
|
+
backgroundColor?: string;
|
|
12
|
+
/** Enable shadows */
|
|
13
|
+
shadows?: boolean;
|
|
14
|
+
/** Enable grid helper */
|
|
15
|
+
showGrid?: boolean;
|
|
16
|
+
/** Grid size */
|
|
17
|
+
gridSize?: number;
|
|
18
|
+
/** Asset loader instance */
|
|
19
|
+
assetLoader?: AssetLoader;
|
|
20
|
+
}
|
|
21
|
+
export interface UseThreeReturn {
|
|
22
|
+
/** Canvas element reference (for React Three Fiber) */
|
|
23
|
+
canvasRef: React.RefObject<HTMLCanvasElement | null>;
|
|
24
|
+
/** Three.js renderer */
|
|
25
|
+
renderer: THREE.WebGLRenderer | null;
|
|
26
|
+
/** Three.js scene */
|
|
27
|
+
scene: THREE.Scene | null;
|
|
28
|
+
/** Three.js camera */
|
|
29
|
+
camera: THREE.Camera | null;
|
|
30
|
+
/** Orbit controls */
|
|
31
|
+
controls: OrbitControls | null;
|
|
32
|
+
/** Is scene ready */
|
|
33
|
+
isReady: boolean;
|
|
34
|
+
/** Canvas dimensions */
|
|
35
|
+
dimensions: {
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
};
|
|
39
|
+
/** Set camera position */
|
|
40
|
+
setCameraPosition: (x: number, y: number, z: number) => void;
|
|
41
|
+
/** Look at a specific point */
|
|
42
|
+
lookAt: (x: number, y: number, z: number) => void;
|
|
43
|
+
/** Reset camera to initial position */
|
|
44
|
+
resetCamera: () => void;
|
|
45
|
+
/** Fit view to bounds */
|
|
46
|
+
fitView: (bounds: {
|
|
47
|
+
minX: number;
|
|
48
|
+
maxX: number;
|
|
49
|
+
minZ: number;
|
|
50
|
+
maxZ: number;
|
|
51
|
+
}) => void;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Hook for managing a Three.js scene
|
|
55
|
+
* This is a lower-level hook used by GameCanvas3D
|
|
56
|
+
*/
|
|
57
|
+
export declare function useThree(options?: UseThreeOptions): UseThreeReturn;
|
|
58
|
+
export default useThree;
|