@almadar/ui 5.110.0 → 5.112.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/GameAudioProvider-CPGwD49P.d.cts +151 -0
- package/dist/GameAudioProvider-CPGwD49P.d.ts +151 -0
- package/dist/TraitProvider-YkK6tXDw.d.cts +236 -0
- package/dist/TraitProvider-YkK6tXDw.d.ts +236 -0
- package/dist/{providers/UISlotContext.d.ts → UISlotContext-C1FsU9GB.d.ts} +14 -10
- package/dist/UISlotContext-D8_SoDsD.d.cts +79 -0
- package/dist/UserContext-bziZwgFL.d.cts +278 -0
- package/dist/UserContext-bziZwgFL.d.ts +278 -0
- package/dist/avl/index.cjs +126 -29
- package/dist/avl/index.js +128 -31
- package/dist/avl-schema-parser-DKRm-nyh.d.cts +611 -0
- package/dist/avl-schema-parser-DKRm-nyh.d.ts +611 -0
- package/dist/cn-BbPvQLHt.d.cts +294 -0
- package/dist/cn-BbPvQLHt.d.ts +294 -0
- package/dist/components/index.cjs +56 -18
- package/dist/components/index.d.cts +11224 -0
- package/dist/components/index.d.ts +11224 -6
- package/dist/components/index.js +56 -18
- package/dist/{lib/themeTokens.d.ts → context/index.d.cts} +13 -4
- package/dist/context/index.d.ts +62 -9
- package/dist/{types/event-bus-types.d.ts → event-bus-types-Bl78kokd.d.cts} +7 -6
- package/dist/event-bus-types-Bl78kokd.d.ts +65 -0
- package/dist/hooks/index.d.cts +995 -0
- package/dist/hooks/index.d.ts +994 -32
- package/dist/lib/drawable/three/index.cjs +317 -178
- package/dist/lib/drawable/three/index.d.cts +1484 -0
- package/dist/lib/drawable/three/index.d.ts +1483 -38
- package/dist/lib/drawable/three/index.js +161 -22
- package/dist/lib/index.cjs +8 -0
- package/dist/lib/index.d.cts +504 -0
- package/dist/lib/index.d.ts +503 -18
- package/dist/lib/index.js +8 -1
- package/dist/locales/index.d.cts +22 -0
- package/dist/locales/index.d.ts +7 -5
- package/dist/offline-executor-aRuNznZx.d.cts +520 -0
- package/dist/offline-executor-aRuNznZx.d.ts +520 -0
- package/dist/providers/index.cjs +56 -18
- package/dist/providers/index.d.cts +428 -0
- package/dist/providers/index.d.ts +427 -26
- package/dist/providers/index.js +56 -18
- package/dist/renderer/index.cjs +1 -1
- package/dist/renderer/index.d.cts +343 -0
- package/dist/renderer/index.d.ts +337 -22
- package/dist/renderer/index.js +1 -1
- package/dist/runtime/index.cjs +126 -29
- package/dist/runtime/index.d.cts +426 -0
- package/dist/runtime/index.d.ts +421 -16
- package/dist/runtime/index.js +128 -31
- package/dist/useEventBus-CQWyAWpK.d.ts +65 -0
- package/dist/useEventBus-Ckr4wqW3.d.cts +65 -0
- package/dist/{hooks/useUISlots.d.ts → useUISlots-BesZYMks.d.cts} +16 -14
- package/dist/useUISlots-BesZYMks.d.ts +216 -0
- package/package.json +13 -13
- package/dist/avl/index.d.cts +0 -1853
- package/dist/avl/index.d.ts +0 -64
- package/dist/components/avl/atoms/Avl3DLabel.d.ts +0 -23
- package/dist/components/avl/atoms/Avl3DTooltip.d.ts +0 -25
- package/dist/components/avl/atoms/AvlApplication.d.ts +0 -8
- package/dist/components/avl/atoms/AvlBinding.d.ts +0 -12
- package/dist/components/avl/atoms/AvlBindingRef.d.ts +0 -7
- package/dist/components/avl/atoms/AvlEffect.d.ts +0 -10
- package/dist/components/avl/atoms/AvlEntity.d.ts +0 -9
- package/dist/components/avl/atoms/AvlEvent.d.ts +0 -7
- package/dist/components/avl/atoms/AvlField.d.ts +0 -10
- package/dist/components/avl/atoms/AvlFieldType.d.ts +0 -8
- package/dist/components/avl/atoms/AvlGuard.d.ts +0 -7
- package/dist/components/avl/atoms/AvlLiteral.d.ts +0 -7
- package/dist/components/avl/atoms/AvlOperator.d.ts +0 -8
- package/dist/components/avl/atoms/AvlOrbital.d.ts +0 -11
- package/dist/components/avl/atoms/AvlPage.d.ts +0 -7
- package/dist/components/avl/atoms/AvlPersistence.d.ts +0 -8
- package/dist/components/avl/atoms/AvlSExpr.d.ts +0 -8
- package/dist/components/avl/atoms/AvlState.d.ts +0 -15
- package/dist/components/avl/atoms/AvlTrait.d.ts +0 -13
- package/dist/components/avl/atoms/AvlTransition.d.ts +0 -18
- package/dist/components/avl/atoms/index.d.ts +0 -24
- package/dist/components/avl/hooks/useCanvasDnd.d.ts +0 -155
- package/dist/components/avl/lib/avl-3d-layout.d.ts +0 -116
- package/dist/components/avl/lib/avl-behavior-compose-converter.d.ts +0 -55
- package/dist/components/avl/lib/avl-elk-layout.d.ts +0 -55
- package/dist/components/avl/lib/avl-flow-converter.d.ts +0 -17
- package/dist/components/avl/lib/avl-layout.d.ts +0 -32
- package/dist/components/avl/lib/avl-preview-converter.d.ts +0 -71
- package/dist/components/avl/lib/avl-schema-parser.d.ts +0 -128
- package/dist/components/avl/lib/avl-story-schemas.d.ts +0 -34
- package/dist/components/avl/lib/avl-zoom-band.d.ts +0 -19
- package/dist/components/avl/lib/avl-zoom-state.d.ts +0 -72
- package/dist/components/avl/lib/derive-edit-focus.d.ts +0 -8
- package/dist/components/avl/lib/wire-validation.d.ts +0 -30
- package/dist/components/avl/molecules/Avl3DCrossWire.d.ts +0 -22
- package/dist/components/avl/molecules/Avl3DEntityCore.d.ts +0 -26
- package/dist/components/avl/molecules/Avl3DExprTree.d.ts +0 -21
- package/dist/components/avl/molecules/Avl3DOrbitalNode.d.ts +0 -29
- package/dist/components/avl/molecules/Avl3DStateNode.d.ts +0 -34
- package/dist/components/avl/molecules/Avl3DTransitionArc.d.ts +0 -38
- package/dist/components/avl/molecules/AvlBackwardEdge.d.ts +0 -8
- package/dist/components/avl/molecules/AvlBehaviorGlyph.d.ts +0 -61
- package/dist/components/avl/molecules/AvlBindingEdge.d.ts +0 -9
- package/dist/components/avl/molecules/AvlClosedCircuit.d.ts +0 -20
- package/dist/components/avl/molecules/AvlEmitListen.d.ts +0 -16
- package/dist/components/avl/molecules/AvlEventWireEdge.d.ts +0 -15
- package/dist/components/avl/molecules/AvlExprTree.d.ts +0 -13
- package/dist/components/avl/molecules/AvlOrbitalNode.d.ts +0 -12
- package/dist/components/avl/molecules/AvlOrbitalUnit.d.ts +0 -20
- package/dist/components/avl/molecules/AvlPageEdge.d.ts +0 -8
- package/dist/components/avl/molecules/AvlSlotMap.d.ts +0 -18
- package/dist/components/avl/molecules/AvlStateMachine.d.ts +0 -22
- package/dist/components/avl/molecules/AvlSwimLane.d.ts +0 -10
- package/dist/components/avl/molecules/AvlTransitionEdge.d.ts +0 -17
- package/dist/components/avl/molecules/AvlTransitionLane.d.ts +0 -18
- package/dist/components/avl/molecules/BehaviorComposeNode.d.ts +0 -13
- package/dist/components/avl/molecules/BehaviorView.d.ts +0 -12
- package/dist/components/avl/molecules/DetailView.d.ts +0 -13
- package/dist/components/avl/molecules/EventFlowEdge.d.ts +0 -13
- package/dist/components/avl/molecules/MiniStateMachine.d.ts +0 -14
- package/dist/components/avl/molecules/ModuleCard.d.ts +0 -22
- package/dist/components/avl/molecules/OrbPreviewNode.d.ts +0 -38
- package/dist/components/avl/molecules/SystemNode.d.ts +0 -12
- package/dist/components/avl/molecules/TraitCardNode.d.ts +0 -33
- package/dist/components/avl/molecules/index.d.ts +0 -38
- package/dist/components/avl/organisms/Avl3DApplicationScene.d.ts +0 -19
- package/dist/components/avl/organisms/Avl3DEffects.d.ts +0 -18
- package/dist/components/avl/organisms/Avl3DOrbitalScene.d.ts +0 -23
- package/dist/components/avl/organisms/Avl3DTraitScene.d.ts +0 -19
- package/dist/components/avl/organisms/Avl3DTransitionScene.d.ts +0 -17
- package/dist/components/avl/organisms/Avl3DViewer.d.ts +0 -40
- package/dist/components/avl/organisms/AvlClickTarget.d.ts +0 -31
- package/dist/components/avl/organisms/AvlCosmicZoom.d.ts +0 -41
- package/dist/components/avl/organisms/AvlLegend.d.ts +0 -15
- package/dist/components/avl/organisms/AvlOrbitalsCosmicZoom.d.ts +0 -54
- package/dist/components/avl/organisms/AvlTraitScene.d.ts +0 -17
- package/dist/components/avl/organisms/AvlTransitionDetail.d.ts +0 -20
- package/dist/components/avl/organisms/AvlTransitionScene.d.ts +0 -13
- package/dist/components/avl/organisms/FlowCanvas.d.ts +0 -134
- package/dist/components/avl/organisms/OrbInspector.d.ts +0 -45
- package/dist/components/avl/organisms/ZoomBreadcrumb.d.ts +0 -16
- package/dist/components/avl/organisms/ZoomLegend.d.ts +0 -10
- package/dist/components/avl/organisms/index.d.ts +0 -19
- package/dist/components/avl/providers/avl-3d-context.d.ts +0 -32
- package/dist/components/avl/types/avl-atom-types.d.ts +0 -53
- package/dist/components/avl/types/avl-behavior-compose-types.d.ts +0 -120
- package/dist/components/avl/types/avl-canvas-types.d.ts +0 -39
- package/dist/components/avl/types/avl-preview-types.d.ts +0 -240
- package/dist/components/core/atoms/Aside.d.ts +0 -15
- package/dist/components/core/atoms/AtlasImage.d.ts +0 -58
- package/dist/components/core/atoms/Avatar.d.ts +0 -61
- package/dist/components/core/atoms/Badge.d.ts +0 -29
- package/dist/components/core/atoms/Box.d.ts +0 -68
- package/dist/components/core/atoms/Button.d.ts +0 -33
- package/dist/components/core/atoms/Card.d.ts +0 -34
- package/dist/components/core/atoms/Center.d.ts +0 -33
- package/dist/components/core/atoms/Checkbox.d.ts +0 -14
- package/dist/components/core/atoms/ConditionalWrapper.d.ts +0 -69
- package/dist/components/core/atoms/ConfettiEffect.d.ts +0 -19
- package/dist/components/core/atoms/DayCell.d.ts +0 -22
- package/dist/components/core/atoms/Dialog.d.ts +0 -18
- package/dist/components/core/atoms/Divider.d.ts +0 -29
- package/dist/components/core/atoms/FilterPill.d.ts +0 -30
- package/dist/components/core/atoms/FlipContainer.d.ts +0 -21
- package/dist/components/core/atoms/GameIcon.d.ts +0 -19
- package/dist/components/core/atoms/Icon.d.ts +0 -57
- package/dist/components/core/atoms/InfiniteScrollSentinel.d.ts +0 -24
- package/dist/components/core/atoms/Input.d.ts +0 -39
- package/dist/components/core/atoms/Label.d.ts +0 -12
- package/dist/components/core/atoms/LawReferenceTooltip.d.ts +0 -48
- package/dist/components/core/atoms/Overlay.d.ts +0 -17
- package/dist/components/core/atoms/ProgressBar.d.ts +0 -63
- package/dist/components/core/atoms/Radio.d.ts +0 -35
- package/dist/components/core/atoms/RangeSlider.d.ts +0 -34
- package/dist/components/core/atoms/SectionHeader.d.ts +0 -14
- package/dist/components/core/atoms/Select.d.ts +0 -49
- package/dist/components/core/atoms/Spacer.d.ts +0 -25
- package/dist/components/core/atoms/Sparkline.d.ts +0 -30
- package/dist/components/core/atoms/Spinner.d.ts +0 -10
- package/dist/components/core/atoms/Stack.d.ts +0 -67
- package/dist/components/core/atoms/StatusDot.d.ts +0 -16
- package/dist/components/core/atoms/Switch.d.ts +0 -12
- package/dist/components/core/atoms/TextHighlight.d.ts +0 -54
- package/dist/components/core/atoms/Textarea.d.ts +0 -17
- package/dist/components/core/atoms/ThemeToggle.d.ts +0 -33
- package/dist/components/core/atoms/TimeSlotCell.d.ts +0 -23
- package/dist/components/core/atoms/TraitFrame.d.ts +0 -54
- package/dist/components/core/atoms/TrendIndicator.d.ts +0 -20
- package/dist/components/core/atoms/TypewriterText.d.ts +0 -20
- package/dist/components/core/atoms/Typography.d.ts +0 -39
- package/dist/components/core/atoms/index.d.ts +0 -52
- package/dist/components/core/atoms/svg/SvgBranch.d.ts +0 -16
- package/dist/components/core/atoms/svg/SvgConnection.d.ts +0 -17
- package/dist/components/core/atoms/svg/SvgFlow.d.ts +0 -14
- package/dist/components/core/atoms/svg/SvgGrid.d.ts +0 -18
- package/dist/components/core/atoms/svg/SvgLobe.d.ts +0 -17
- package/dist/components/core/atoms/svg/SvgMesh.d.ts +0 -16
- package/dist/components/core/atoms/svg/SvgMorph.d.ts +0 -15
- package/dist/components/core/atoms/svg/SvgNode.d.ts +0 -16
- package/dist/components/core/atoms/svg/SvgPulse.d.ts +0 -16
- package/dist/components/core/atoms/svg/SvgRing.d.ts +0 -17
- package/dist/components/core/atoms/svg/SvgShield.d.ts +0 -15
- package/dist/components/core/atoms/svg/SvgStack.d.ts +0 -17
- package/dist/components/core/atoms/svg/index.d.ts +0 -12
- package/dist/components/core/atoms/types.d.ts +0 -47
- package/dist/components/core/molecules/Accordion.d.ts +0 -71
- package/dist/components/core/molecules/ActivationBlock.d.ts +0 -22
- package/dist/components/core/molecules/Alert.d.ts +0 -25
- package/dist/components/core/molecules/AnimatedCounter.d.ts +0 -18
- package/dist/components/core/molecules/AssetPicker.d.ts +0 -21
- package/dist/components/core/molecules/BloomQuizBlock.d.ts +0 -25
- package/dist/components/core/molecules/BranchingLogicBuilder.d.ts +0 -33
- package/dist/components/core/molecules/Breadcrumb.d.ts +0 -55
- package/dist/components/core/molecules/ButtonGroup.d.ts +0 -77
- package/dist/components/core/molecules/CalendarGrid.d.ts +0 -61
- package/dist/components/core/molecules/Card.d.ts +0 -58
- package/dist/components/core/molecules/Carousel.d.ts +0 -42
- package/dist/components/core/molecules/Chart.d.ts +0 -106
- package/dist/components/core/molecules/ChartLegend.d.ts +0 -20
- package/dist/components/core/molecules/Coachmark.d.ts +0 -47
- package/dist/components/core/molecules/ConfirmDialog.d.ts +0 -49
- package/dist/components/core/molecules/ConnectionBlock.d.ts +0 -18
- package/dist/components/core/molecules/Container.d.ts +0 -30
- package/dist/components/core/molecules/ContentRenderer.d.ts +0 -23
- package/dist/components/core/molecules/DataGrid.d.ts +0 -117
- package/dist/components/core/molecules/DataList.d.ts +0 -129
- package/dist/components/core/molecules/DateRangePicker.d.ts +0 -56
- package/dist/components/core/molecules/DateRangeSelector.d.ts +0 -21
- package/dist/components/core/molecules/DocBreadcrumb.d.ts +0 -20
- package/dist/components/core/molecules/DocPagination.d.ts +0 -21
- package/dist/components/core/molecules/DocSearch.d.ts +0 -22
- package/dist/components/core/molecules/DocSidebar.d.ts +0 -24
- package/dist/components/core/molecules/DocTOC.d.ts +0 -24
- package/dist/components/core/molecules/DocumentViewer.d.ts +0 -61
- package/dist/components/core/molecules/Drawer.d.ts +0 -47
- package/dist/components/core/molecules/EdgeDecoration.d.ts +0 -36
- package/dist/components/core/molecules/EmptyState.d.ts +0 -29
- package/dist/components/core/molecules/ErrorBoundary.d.ts +0 -54
- package/dist/components/core/molecules/ErrorState.d.ts +0 -14
- package/dist/components/core/molecules/FeatureGrid.d.ts +0 -19
- package/dist/components/core/molecules/FileTree.d.ts +0 -37
- package/dist/components/core/molecules/FilterGroup.d.ts +0 -61
- package/dist/components/core/molecules/Flex.d.ts +0 -43
- package/dist/components/core/molecules/FlipCard.d.ts +0 -24
- package/dist/components/core/molecules/FloatingActionButton.d.ts +0 -83
- package/dist/components/core/molecules/FormField.d.ts +0 -16
- package/dist/components/core/molecules/FormSection.d.ts +0 -39
- package/dist/components/core/molecules/FormSectionHeader.d.ts +0 -31
- package/dist/components/core/molecules/GradientDivider.d.ts +0 -15
- package/dist/components/core/molecules/GraphCanvas.d.ts +0 -83
- package/dist/components/core/molecules/GraphView.d.ts +0 -45
- package/dist/components/core/molecules/Grid.d.ts +0 -54
- package/dist/components/core/molecules/GridPicker.d.ts +0 -44
- package/dist/components/core/molecules/Header.d.ts +0 -113
- package/dist/components/core/molecules/IconPicker.d.ts +0 -18
- package/dist/components/core/molecules/InputGroup.d.ts +0 -24
- package/dist/components/core/molecules/JazariStateMachine.d.ts +0 -34
- package/dist/components/core/molecules/JsonTreeEditor.d.ts +0 -13
- package/dist/components/core/molecules/Lightbox.d.ts +0 -26
- package/dist/components/core/molecules/LikertScale.d.ts +0 -34
- package/dist/components/core/molecules/LineChart.d.ts +0 -35
- package/dist/components/core/molecules/LoadingState.d.ts +0 -7
- package/dist/components/core/molecules/MapView.d.ts +0 -87
- package/dist/components/core/molecules/MatrixQuestion.d.ts +0 -35
- package/dist/components/core/molecules/Menu.d.ts +0 -44
- package/dist/components/core/molecules/Meter.d.ts +0 -52
- package/dist/components/core/molecules/Modal.d.ts +0 -36
- package/dist/components/core/molecules/Navigation.d.ts +0 -67
- package/dist/components/core/molecules/NodeSlotEditor.d.ts +0 -17
- package/dist/components/core/molecules/NumberStepper.d.ts +0 -28
- package/dist/components/core/molecules/OnboardingSpotlight.d.ts +0 -27
- package/dist/components/core/molecules/OptionConstraintGroup.d.ts +0 -44
- package/dist/components/core/molecules/OrbitalVisualization.d.ts +0 -48
- package/dist/components/core/molecules/PageHeader.d.ts +0 -60
- package/dist/components/core/molecules/Pagination.d.ts +0 -71
- package/dist/components/core/molecules/Popover.d.ts +0 -39
- package/dist/components/core/molecules/PositionedCanvas.d.ts +0 -40
- package/dist/components/core/molecules/ProgressDots.d.ts +0 -24
- package/dist/components/core/molecules/PropertyInspector.d.ts +0 -38
- package/dist/components/core/molecules/PullToRefresh.d.ts +0 -22
- package/dist/components/core/molecules/QrScanner.d.ts +0 -24
- package/dist/components/core/molecules/QuizBlock.d.ts +0 -20
- package/dist/components/core/molecules/ReflectionBlock.d.ts +0 -23
- package/dist/components/core/molecules/RelationSelect.d.ts +0 -48
- package/dist/components/core/molecules/RepeatableFormSection.d.ts +0 -60
- package/dist/components/core/molecules/ReplyTree.d.ts +0 -46
- package/dist/components/core/molecules/RichBlockEditor.d.ts +0 -43
- package/dist/components/core/molecules/ScaledDiagram.d.ts +0 -20
- package/dist/components/core/molecules/SearchInput.d.ts +0 -60
- package/dist/components/core/molecules/Section.d.ts +0 -43
- package/dist/components/core/molecules/SidePanel.d.ts +0 -53
- package/dist/components/core/molecules/Sidebar.d.ts +0 -72
- package/dist/components/core/molecules/SignaturePad.d.ts +0 -46
- package/dist/components/core/molecules/SimpleGrid.d.ts +0 -27
- package/dist/components/core/molecules/Skeleton.d.ts +0 -35
- package/dist/components/core/molecules/SocialProof.d.ts +0 -25
- package/dist/components/core/molecules/SortableList.d.ts +0 -19
- package/dist/components/core/molecules/Split.d.ts +0 -41
- package/dist/components/core/molecules/StarRating.d.ts +0 -27
- package/dist/components/core/molecules/StatDisplay.d.ts +0 -58
- package/dist/components/core/molecules/SwipeableRow.d.ts +0 -26
- package/dist/components/core/molecules/TableView.d.ts +0 -111
- package/dist/components/core/molecules/Tabs.d.ts +0 -60
- package/dist/components/core/molecules/TagInput.d.ts +0 -52
- package/dist/components/core/molecules/Toast.d.ts +0 -36
- package/dist/components/core/molecules/Tooltip.d.ts +0 -25
- package/dist/components/core/molecules/UploadDropZone.d.ts +0 -28
- package/dist/components/core/molecules/VersionDiff.d.ts +0 -62
- package/dist/components/core/molecules/ViolationAlert.d.ts +0 -46
- package/dist/components/core/molecules/VoteStack.d.ts +0 -35
- package/dist/components/core/molecules/WizardContainer.d.ts +0 -166
- package/dist/components/core/molecules/WizardNavigation.d.ts +0 -61
- package/dist/components/core/molecules/WizardProgress.d.ts +0 -45
- package/dist/components/core/molecules/index.d.ts +0 -138
- package/dist/components/core/molecules/lessonSegmentUtils.d.ts +0 -18
- package/dist/components/core/molecules/markdown/CodeBlock.d.ts +0 -108
- package/dist/components/core/molecules/markdown/MarkdownContent.d.ts +0 -26
- package/dist/components/core/molecules/markdown/index.d.ts +0 -2
- package/dist/components/core/molecules/parseLessonSegments.d.ts +0 -44
- package/dist/components/core/molecules/useDataDnd.d.ts +0 -63
- package/dist/components/core/organisms/CardGrid.d.ts +0 -84
- package/dist/components/core/organisms/ChatBar.d.ts +0 -31
- package/dist/components/core/organisms/CodeRunnerPanel.d.ts +0 -42
- package/dist/components/core/organisms/ComponentPatterns.d.ts +0 -185
- package/dist/components/core/organisms/CustomPattern.d.ts +0 -105
- package/dist/components/core/organisms/DataTable.d.ts +0 -79
- package/dist/components/core/organisms/DetailPanel.d.ts +0 -80
- package/dist/components/core/organisms/DrawerSlot.d.ts +0 -42
- package/dist/components/core/organisms/Form.d.ts +0 -214
- package/dist/components/core/organisms/LayoutPatterns.d.ts +0 -108
- package/dist/components/core/organisms/List.d.ts +0 -81
- package/dist/components/core/organisms/MasterDetail.d.ts +0 -35
- package/dist/components/core/organisms/MediaGallery.d.ts +0 -63
- package/dist/components/core/organisms/ModalSlot.d.ts +0 -38
- package/dist/components/core/organisms/NotifyListener.d.ts +0 -15
- package/dist/components/core/organisms/SegmentRenderer.d.ts +0 -38
- package/dist/components/core/organisms/StatCard.d.ts +0 -65
- package/dist/components/core/organisms/StateMachineView.d.ts +0 -45
- package/dist/components/core/organisms/SubagentTracePanel.d.ts +0 -50
- package/dist/components/core/organisms/Timeline.d.ts +0 -71
- package/dist/components/core/organisms/ToastSlot.d.ts +0 -41
- package/dist/components/core/organisms/UISlotRenderer.d.ts +0 -116
- package/dist/components/core/organisms/book/index.d.ts +0 -7
- package/dist/components/core/organisms/book/types.d.ts +0 -62
- package/dist/components/core/organisms/component-registry.generated.d.ts +0 -9
- package/dist/components/core/organisms/debug/RuntimeDebugger.d.ts +0 -29
- package/dist/components/core/organisms/debug/WalkMinimap.d.ts +0 -17
- package/dist/components/core/organisms/debug/hooks/useDebugData.d.ts +0 -25
- package/dist/components/core/organisms/debug/index.d.ts +0 -13
- package/dist/components/core/organisms/debug/tabs/EntitiesTab.d.ts +0 -14
- package/dist/components/core/organisms/debug/tabs/EventDispatcherTab.d.ts +0 -18
- package/dist/components/core/organisms/debug/tabs/EventFlowTab.d.ts +0 -14
- package/dist/components/core/organisms/debug/tabs/GuardsPanel.d.ts +0 -14
- package/dist/components/core/organisms/debug/tabs/ServerBridgeTab.d.ts +0 -20
- package/dist/components/core/organisms/debug/tabs/TicksTab.d.ts +0 -14
- package/dist/components/core/organisms/debug/tabs/TraitsTab.d.ts +0 -14
- package/dist/components/core/organisms/debug/tabs/TransitionTimeline.d.ts +0 -19
- package/dist/components/core/organisms/debug/tabs/VerificationTab.d.ts +0 -17
- package/dist/components/core/organisms/index.d.ts +0 -33
- package/dist/components/core/organisms/layout/DashboardGrid.d.ts +0 -33
- package/dist/components/core/organisms/layout/MasterDetailLayout.d.ts +0 -32
- package/dist/components/core/organisms/layout/SplitPane.d.ts +0 -34
- package/dist/components/core/organisms/layout/TabbedContainer.d.ts +0 -42
- package/dist/components/core/organisms/layout/index.d.ts +0 -9
- package/dist/components/core/organisms/marketing-types.d.ts +0 -8
- package/dist/components/core/organisms/trace-edit-focus.d.ts +0 -14
- package/dist/components/core/organisms/types.d.ts +0 -72
- package/dist/components/core/templates/CounterTemplate.d.ts +0 -51
- package/dist/components/core/templates/DashboardLayout.d.ts +0 -110
- package/dist/components/core/templates/GenericAppTemplate.d.ts +0 -24
- package/dist/components/core/templates/index.d.ts +0 -10
- package/dist/components/core/templates/types.d.ts +0 -35
- package/dist/components/game/atoms/ChoiceButton.d.ts +0 -29
- package/dist/components/game/atoms/ControlButton.d.ts +0 -35
- package/dist/components/game/atoms/DialogueBubble.d.ts +0 -26
- package/dist/components/game/atoms/DrawShape.d.ts +0 -50
- package/dist/components/game/atoms/DrawSprite.d.ts +0 -47
- package/dist/components/game/atoms/DrawText.d.ts +0 -31
- package/dist/components/game/atoms/GameAudioToggle.d.ts +0 -34
- package/dist/components/game/atoms/HealthBar.d.ts +0 -32
- package/dist/components/game/atoms/MiniMap.d.ts +0 -40
- package/dist/components/game/atoms/ScoreDisplay.d.ts +0 -25
- package/dist/components/game/atoms/StateIndicator.d.ts +0 -29
- package/dist/components/game/atoms/TimerDisplay.d.ts +0 -22
- package/dist/components/game/molecules/ActionPalette.d.ts +0 -34
- package/dist/components/game/molecules/ActionTile.d.ts +0 -30
- package/dist/components/game/molecules/Canvas.d.ts +0 -96
- package/dist/components/game/molecules/Canvas2D.d.ts +0 -120
- package/dist/components/game/molecules/ControlGrid.d.ts +0 -49
- package/dist/components/game/molecules/DrawShapeLayer.d.ts +0 -19
- package/dist/components/game/molecules/DrawSpriteLayer.d.ts +0 -21
- package/dist/components/game/molecules/DrawTextLayer.d.ts +0 -22
- package/dist/components/game/molecules/GameHud.d.ts +0 -52
- package/dist/components/game/molecules/GameMenu.d.ts +0 -42
- package/dist/components/game/molecules/SequenceBar.d.ts +0 -51
- package/dist/components/game/molecules/StatBadge.d.ts +0 -39
- package/dist/components/game/molecules/StateGraph.d.ts +0 -38
- package/dist/components/game/molecules/StateJsonView.d.ts +0 -37
- package/dist/components/game/molecules/StateNode.d.ts +0 -31
- package/dist/components/game/molecules/TraitSlot.d.ts +0 -99
- package/dist/components/game/molecules/TraitStateViewer.d.ts +0 -52
- package/dist/components/game/molecules/TransitionArrow.d.ts +0 -31
- package/dist/components/game/molecules/index.d.ts +0 -39
- package/dist/components/game/patterns.d.ts +0 -20
- package/dist/components/game/templates/GameShell.d.ts +0 -35
- package/dist/components/learning/atoms/LearningCanvas.d.ts +0 -80
- package/dist/components/learning/molecules/AlgorithmCanvas.d.ts +0 -58
- package/dist/components/learning/molecules/BiologyCanvas.d.ts +0 -47
- package/dist/components/learning/molecules/ChemistryCanvas.d.ts +0 -55
- package/dist/components/learning/molecules/MathCanvas.d.ts +0 -61
- package/dist/components/learning/molecules/PhysicsCanvas.d.ts +0 -54
- package/dist/components/marketing/atoms/AnimatedCounter.d.ts +0 -20
- package/dist/components/marketing/atoms/AnimatedGraphic.d.ts +0 -32
- package/dist/components/marketing/atoms/AnimatedReveal.d.ts +0 -26
- package/dist/components/marketing/atoms/ContentSection.d.ts +0 -16
- package/dist/components/marketing/atoms/MarketingStatCard.d.ts +0 -13
- package/dist/components/marketing/atoms/PatternTile.d.ts +0 -41
- package/dist/components/marketing/molecules/ArticleSection.d.ts +0 -18
- package/dist/components/marketing/molecules/CTABanner.d.ts +0 -26
- package/dist/components/marketing/molecules/CaseStudyCard.d.ts +0 -24
- package/dist/components/marketing/molecules/CommunityLinks.d.ts +0 -28
- package/dist/components/marketing/molecules/FeatureCard.d.ts +0 -26
- package/dist/components/marketing/molecules/GeometricPattern.d.ts +0 -33
- package/dist/components/marketing/molecules/HeroSection.d.ts +0 -28
- package/dist/components/marketing/molecules/InstallBox.d.ts +0 -16
- package/dist/components/marketing/molecules/MarketingFooter.d.ts +0 -29
- package/dist/components/marketing/molecules/PricingCard.d.ts +0 -19
- package/dist/components/marketing/molecules/PricingGrid.d.ts +0 -13
- package/dist/components/marketing/molecules/PullQuote.d.ts +0 -14
- package/dist/components/marketing/molecules/ServiceCatalog.d.ts +0 -19
- package/dist/components/marketing/molecules/ShowcaseCard.d.ts +0 -18
- package/dist/components/marketing/molecules/SplitSection.d.ts +0 -19
- package/dist/components/marketing/molecules/StatsGrid.d.ts +0 -18
- package/dist/components/marketing/molecules/StepFlow.d.ts +0 -21
- package/dist/components/marketing/molecules/TagCloud.d.ts +0 -18
- package/dist/components/marketing/molecules/TeamCard.d.ts +0 -19
- package/dist/components/marketing/organisms/CaseStudyOrganism.d.ts +0 -29
- package/dist/components/marketing/organisms/FeatureGridOrganism.d.ts +0 -30
- package/dist/components/marketing/organisms/HeroOrganism.d.ts +0 -42
- package/dist/components/marketing/organisms/PricingOrganism.d.ts +0 -33
- package/dist/components/marketing/organisms/ShowcaseOrganism.d.ts +0 -34
- package/dist/components/marketing/organisms/StatsOrganism.d.ts +0 -23
- package/dist/components/marketing/organisms/StepFlowOrganism.d.ts +0 -29
- package/dist/components/marketing/organisms/TeamOrganism.d.ts +0 -28
- package/dist/components/marketing/organisms/book/BookChapterView.d.ts +0 -21
- package/dist/components/marketing/organisms/book/BookCoverPage.d.ts +0 -21
- package/dist/components/marketing/organisms/book/BookNavBar.d.ts +0 -19
- package/dist/components/marketing/organisms/book/BookTableOfContents.d.ts +0 -20
- package/dist/components/marketing/organisms/book/BookViewer.d.ts +0 -31
- package/dist/components/marketing/templates/AboutPageTemplate.d.ts +0 -53
- package/dist/components/marketing/templates/AuthLayout.d.ts +0 -15
- package/dist/components/marketing/templates/FeatureDetailPageTemplate.d.ts +0 -37
- package/dist/components/marketing/templates/LandingPageTemplate.d.ts +0 -70
- package/dist/components/marketing/templates/PricingPageTemplate.d.ts +0 -44
- package/dist/hooks/useAgentChat.d.ts +0 -105
- package/dist/hooks/useAlmadarDndCollision.d.ts +0 -34
- package/dist/hooks/useAuthContext.d.ts +0 -25
- package/dist/hooks/useCamera.d.ts +0 -57
- package/dist/hooks/useCanvasGestures.d.ts +0 -44
- package/dist/hooks/useClientEffects.d.ts +0 -88
- package/dist/hooks/useCompile.d.ts +0 -18
- package/dist/hooks/useDeepAgentGeneration.d.ts +0 -46
- package/dist/hooks/useDragReorder.d.ts +0 -26
- package/dist/hooks/useDraggable.d.ts +0 -25
- package/dist/hooks/useDropZone.d.ts +0 -23
- package/dist/hooks/useEventBus.d.ts +0 -99
- package/dist/hooks/useExtensions.d.ts +0 -32
- package/dist/hooks/useFileEditor.d.ts +0 -32
- package/dist/hooks/useFileSystem.d.ts +0 -50
- package/dist/hooks/useGameAudio.d.ts +0 -47
- package/dist/hooks/useGitHub.d.ts +0 -58
- package/dist/hooks/useImageCache.d.ts +0 -16
- package/dist/hooks/useInfiniteScroll.d.ts +0 -13
- package/dist/hooks/useLongPress.d.ts +0 -16
- package/dist/hooks/useOrbitalHistory.d.ts +0 -39
- package/dist/hooks/usePreview.d.ts +0 -57
- package/dist/hooks/usePullToRefresh.d.ts +0 -25
- package/dist/hooks/useQuerySingleton.d.ts +0 -79
- package/dist/hooks/useRenderInterpolation.d.ts +0 -33
- package/dist/hooks/useResolvedSchema.d.ts +0 -45
- package/dist/hooks/useSharedEntityStore.d.ts +0 -53
- package/dist/hooks/useSwipeGesture.d.ts +0 -26
- package/dist/hooks/useTapReveal.d.ts +0 -32
- package/dist/hooks/useTraitStateMachine.d.ts +0 -136
- package/dist/hooks/useTranslate.d.ts +0 -35
- package/dist/hooks/useUIEvents.d.ts +0 -41
- package/dist/hooks/useUnitSpriteAtlas.d.ts +0 -24
- package/dist/hooks/useValidation.d.ts +0 -46
- package/dist/lib/api-client.d.ts +0 -43
- package/dist/lib/atlasSlice.d.ts +0 -58
- package/dist/lib/boardEntity.d.ts +0 -44
- package/dist/lib/client-effect-executor.d.ts +0 -57
- package/dist/lib/cn.d.ts +0 -6
- package/dist/lib/createClientEffectHandlers.d.ts +0 -42
- package/dist/lib/data-resolver.d.ts +0 -55
- package/dist/lib/debug.d.ts +0 -36
- package/dist/lib/debugRegistry.d.ts +0 -30
- package/dist/lib/debugUtils.d.ts +0 -27
- package/dist/lib/drawable/contract.d.ts +0 -68
- package/dist/lib/drawable/hitTest.d.ts +0 -23
- package/dist/lib/drawable/paintDispatch.d.ts +0 -22
- package/dist/lib/drawable/projector.d.ts +0 -14
- package/dist/lib/drawable/projector3d.d.ts +0 -20
- package/dist/lib/drawable/three/Camera3D.d.ts +0 -60
- package/dist/lib/drawable/three/Canvas3DErrorBoundary.d.ts +0 -51
- package/dist/lib/drawable/three/Canvas3DHost.d.ts +0 -178
- package/dist/lib/drawable/three/Canvas3DLoadingState.d.ts +0 -44
- package/dist/lib/drawable/three/Drawable3D.d.ts +0 -20
- package/dist/lib/drawable/three/GameCamera3D.d.ts +0 -16
- package/dist/lib/drawable/three/Lighting3D.d.ts +0 -55
- package/dist/lib/drawable/three/ModelLoader.d.ts +0 -52
- package/dist/lib/drawable/three/Scene3D.d.ts +0 -37
- package/dist/lib/drawable/three/game3dTheme.d.ts +0 -14
- package/dist/lib/drawable/three/hooks/useAssetLoader.d.ts +0 -58
- package/dist/lib/drawable/three/hooks/useGameCanvas3DEvents.d.ts +0 -124
- package/dist/lib/drawable/three/hooks/useRaycaster.d.ts +0 -86
- package/dist/lib/drawable/three/hooks/useSceneGraph.d.ts +0 -67
- package/dist/lib/drawable/three/hooks/useThree.d.ts +0 -58
- package/dist/lib/drawable/three/lib/AssetLoader.d.ts +0 -80
- package/dist/lib/drawable/three/lib/culling.d.ts +0 -134
- package/dist/lib/drawable/three/lib/grid3D.d.ts +0 -154
- package/dist/lib/drawable/three/mesh3d.d.ts +0 -28
- package/dist/lib/editorUtils.d.ts +0 -114
- package/dist/lib/embedded-traits.d.ts +0 -39
- package/dist/lib/entityDebug.d.ts +0 -39
- package/dist/lib/fn-form-lambda.d.ts +0 -27
- package/dist/lib/game.d.ts +0 -92
- package/dist/lib/gameShared.d.ts +0 -18
- package/dist/lib/getNestedValue.d.ts +0 -34
- package/dist/lib/guardRegistry.d.ts +0 -33
- package/dist/lib/iconFamily.d.ts +0 -41
- package/dist/lib/imageCache.d.ts +0 -9
- package/dist/lib/init.d.ts +0 -14
- package/dist/lib/isometric.d.ts +0 -121
- package/dist/lib/isometricTypes.d.ts +0 -141
- package/dist/lib/jazari/index.d.ts +0 -5
- package/dist/lib/jazari/layout.d.ts +0 -31
- package/dist/lib/jazari/svg-paths.d.ts +0 -61
- package/dist/lib/jazari/types.d.ts +0 -91
- package/dist/lib/makeAsset.d.ts +0 -5
- package/dist/lib/mechanics.d.ts +0 -4
- package/dist/lib/offline-executor.d.ts +0 -239
- package/dist/lib/orbitalsByTrait.d.ts +0 -34
- package/dist/lib/painter2d.d.ts +0 -81
- package/dist/lib/parseContentSegments.d.ts +0 -42
- package/dist/lib/pattern-resolver.d.ts +0 -88
- package/dist/lib/perf.d.ts +0 -32
- package/dist/lib/physicsPresets.d.ts +0 -4
- package/dist/lib/physicsTypes.d.ts +0 -43
- package/dist/lib/prepareSchemaForPreview.d.ts +0 -71
- package/dist/lib/puzzleObject.d.ts +0 -41
- package/dist/lib/slot-definitions.d.ts +0 -33
- package/dist/lib/spriteAnimation.d.ts +0 -85
- package/dist/lib/spriteAnimationTypes.d.ts +0 -72
- package/dist/lib/spriteSheetConstants.d.ts +0 -16
- package/dist/lib/tickRegistry.d.ts +0 -40
- package/dist/lib/trait-binding-resolver.d.ts +0 -57
- package/dist/lib/traitRegistry.d.ts +0 -34
- package/dist/lib/verificationRegistry.d.ts +0 -91
- package/dist/lib/visualizer/browser.d.ts +0 -48
- package/dist/lib/visualizer/index.d.ts +0 -144
- package/dist/lib/webPainter2d.d.ts +0 -7
- package/dist/lib/wrapCallbackForEvent.d.ts +0 -16
- package/dist/marketing/index.d.cts +0 -1067
- package/dist/marketing/index.d.ts +0 -72
- package/dist/providers/CurrentPagePathContext.d.ts +0 -9
- package/dist/providers/DesignThemeContext.d.ts +0 -21
- package/dist/providers/EntitySchemaContext.d.ts +0 -81
- package/dist/providers/EventBusProvider.d.ts +0 -47
- package/dist/providers/GameAudioProvider.d.ts +0 -53
- package/dist/providers/OfflineModeProvider.d.ts +0 -79
- package/dist/providers/OrbitalProvider.d.ts +0 -110
- package/dist/providers/OrbitalThemeProvider.d.ts +0 -37
- package/dist/providers/SelectionProvider.d.ts +0 -82
- package/dist/providers/ServerBridge.d.ts +0 -102
- package/dist/providers/ThemeContext.d.ts +0 -104
- package/dist/providers/TraitProvider.d.ts +0 -53
- package/dist/providers/TraitScopeProvider.d.ts +0 -43
- package/dist/providers/UserContext.d.ts +0 -112
- package/dist/providers/VerificationProvider.d.ts +0 -64
- package/dist/providers/navigation.d.ts +0 -142
- package/dist/runtime/BrowserPlayground.d.ts +0 -34
- package/dist/runtime/OrbPreview.d.ts +0 -84
- package/dist/scripts/audit-tailwind-safelist.d.ts +0 -27
- package/dist/scripts/generate-design-system.d.ts +0 -29
- package/dist/scripts/generate-theme-from-schema.d.ts +0 -10
- package/dist/scripts/generate.d.ts +0 -12
- package/dist/scripts/suggest-components.d.ts +0 -31
- package/dist/scripts/types.d.ts +0 -129
- package/dist/tsup.config.d.ts +0 -3
- package/dist/types/renderer-types.d.ts +0 -146
- package/dist/types/runtime-types.d.ts +0 -21
- package/dist/types/slot-types.d.ts +0 -49
- package/dist/vitest.config.d.ts +0 -2
|
@@ -0,0 +1,520 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { FieldValue, OrbitalSchema, OrbitalPage, PatternConfig, EntityRow, UISlot } from '@almadar/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* NavigationContext - Schema-Driven Navigation for Orbital Runtime
|
|
6
|
+
*
|
|
7
|
+
* Provides navigation within the orbital schema without react-router dependency.
|
|
8
|
+
* Navigation works by:
|
|
9
|
+
* 1. Matching path to a page in the schema
|
|
10
|
+
* 2. Extracting route params (e.g., /inspection/:id → { id: "123" })
|
|
11
|
+
* 3. Switching active page
|
|
12
|
+
* 4. Triggering INIT with merged payload
|
|
13
|
+
*
|
|
14
|
+
* This approach works whether OrbitalRuntime is standalone or embedded in another app.
|
|
15
|
+
*
|
|
16
|
+
* Used by both:
|
|
17
|
+
* - Builder runtime (interpreted execution)
|
|
18
|
+
* - Compiled shells (generated applications)
|
|
19
|
+
*
|
|
20
|
+
* @packageDocumentation
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Match a concrete path against a pattern with :param placeholders.
|
|
25
|
+
* Returns null if no match, or the extracted params if match.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* matchPath('/inspection/:id', '/inspection/123') // { id: '123' }
|
|
29
|
+
* matchPath('/users/:userId/posts/:postId', '/users/42/posts/7') // { userId: '42', postId: '7' }
|
|
30
|
+
* matchPath('/about', '/about') // {}
|
|
31
|
+
* matchPath('/about', '/contact') // null
|
|
32
|
+
*/
|
|
33
|
+
declare function matchPath(pattern: string, path: string): Record<string, string> | null;
|
|
34
|
+
/**
|
|
35
|
+
* Extract route params from a path given its pattern.
|
|
36
|
+
* Wrapper around matchPath for explicit use.
|
|
37
|
+
*/
|
|
38
|
+
declare function extractRouteParams(pattern: string, path: string): Record<string, string>;
|
|
39
|
+
/**
|
|
40
|
+
* Check if a path matches a pattern.
|
|
41
|
+
*/
|
|
42
|
+
declare function pathMatches(pattern: string, path: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Find a page in the schema by matching its path pattern against a concrete path.
|
|
45
|
+
* Returns the page and extracted route params.
|
|
46
|
+
*/
|
|
47
|
+
declare function findPageByPath(schema: OrbitalSchema, path: string): {
|
|
48
|
+
page: OrbitalPage;
|
|
49
|
+
params: Record<string, string>;
|
|
50
|
+
orbitalName: string;
|
|
51
|
+
} | null;
|
|
52
|
+
/**
|
|
53
|
+
* Find a page by name.
|
|
54
|
+
*/
|
|
55
|
+
declare function findPageByName(schema: OrbitalSchema, pageName: string): {
|
|
56
|
+
page: OrbitalPage;
|
|
57
|
+
orbitalName: string;
|
|
58
|
+
} | null;
|
|
59
|
+
/**
|
|
60
|
+
* Get the first page in the schema (default page).
|
|
61
|
+
*/
|
|
62
|
+
declare function getDefaultPage(schema: OrbitalSchema): {
|
|
63
|
+
page: OrbitalPage;
|
|
64
|
+
orbitalName: string;
|
|
65
|
+
} | null;
|
|
66
|
+
/**
|
|
67
|
+
* Get all pages from the schema.
|
|
68
|
+
*/
|
|
69
|
+
declare function getAllPages(schema: OrbitalSchema): Array<{
|
|
70
|
+
page: OrbitalPage;
|
|
71
|
+
orbitalName: string;
|
|
72
|
+
}>;
|
|
73
|
+
interface NavigationState {
|
|
74
|
+
/** Current active page name */
|
|
75
|
+
activePage: string;
|
|
76
|
+
/** Current path (for URL sync) */
|
|
77
|
+
currentPath: string;
|
|
78
|
+
/** Payload to pass to INIT when page loads */
|
|
79
|
+
initPayload: Record<string, FieldValue>;
|
|
80
|
+
/** Navigation counter (increments on each navigation) */
|
|
81
|
+
navigationId: number;
|
|
82
|
+
}
|
|
83
|
+
interface NavigationContextValue {
|
|
84
|
+
/** Current navigation state */
|
|
85
|
+
state: NavigationState;
|
|
86
|
+
/** Navigate to a path with optional payload */
|
|
87
|
+
navigateTo: (path: string, payload?: Record<string, FieldValue>) => void;
|
|
88
|
+
/** Navigate to a page by name with optional payload */
|
|
89
|
+
navigateToPage: (pageName: string, payload?: Record<string, FieldValue>) => void;
|
|
90
|
+
/** The schema being navigated */
|
|
91
|
+
schema: OrbitalSchema;
|
|
92
|
+
/** Whether navigation is ready (schema loaded) */
|
|
93
|
+
isReady: boolean;
|
|
94
|
+
}
|
|
95
|
+
interface NavigationProviderProps {
|
|
96
|
+
/** The schema to navigate within */
|
|
97
|
+
schema: OrbitalSchema;
|
|
98
|
+
/** Initial page name (optional, defaults to first page) */
|
|
99
|
+
initialPage?: string;
|
|
100
|
+
/** Whether to update browser URL on navigation (default: true) */
|
|
101
|
+
updateUrl?: boolean;
|
|
102
|
+
/** Callback when navigation occurs */
|
|
103
|
+
onNavigate?: (pageName: string, path: string, payload: Record<string, FieldValue>) => void;
|
|
104
|
+
/** Children */
|
|
105
|
+
children: React__default.ReactNode;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* NavigationProvider - Provides schema-driven navigation context
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```tsx
|
|
112
|
+
* <NavigationProvider schema={mySchema}>
|
|
113
|
+
* <OrbitalRuntimeContent />
|
|
114
|
+
* </NavigationProvider>
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
declare function NavigationProvider({ schema, initialPage, updateUrl, onNavigate, children, }: NavigationProviderProps): React__default.ReactElement;
|
|
118
|
+
/**
|
|
119
|
+
* Hook to access navigation context.
|
|
120
|
+
* Returns null if not within NavigationProvider.
|
|
121
|
+
*/
|
|
122
|
+
declare function useNavigation(): NavigationContextValue | null;
|
|
123
|
+
/**
|
|
124
|
+
* Hook to get the navigateTo function.
|
|
125
|
+
* Returns a no-op function if not within NavigationProvider.
|
|
126
|
+
*/
|
|
127
|
+
declare function useNavigateTo(): (path: string, payload?: Record<string, FieldValue>) => void;
|
|
128
|
+
/**
|
|
129
|
+
* Hook to get current navigation state.
|
|
130
|
+
*/
|
|
131
|
+
declare function useNavigationState(): NavigationState | null;
|
|
132
|
+
/**
|
|
133
|
+
* Hook to get the current INIT payload (for passing to trait INIT events).
|
|
134
|
+
*/
|
|
135
|
+
declare function useInitPayload(): Record<string, FieldValue>;
|
|
136
|
+
/**
|
|
137
|
+
* Hook to get current active page name.
|
|
138
|
+
*/
|
|
139
|
+
declare function useActivePage(): string | null;
|
|
140
|
+
/**
|
|
141
|
+
* Hook to get navigation ID (changes on each navigation, useful for triggering effects).
|
|
142
|
+
*/
|
|
143
|
+
declare function useNavigationId(): number;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Shared Renderer Types
|
|
147
|
+
*
|
|
148
|
+
* Type definitions used by both Builder and compiled shells for
|
|
149
|
+
* the dual execution model. These types define the contract between
|
|
150
|
+
* server and client for effect execution.
|
|
151
|
+
*
|
|
152
|
+
* @packageDocumentation
|
|
153
|
+
*/
|
|
154
|
+
|
|
155
|
+
type ClientEffect = ['render-ui', string, PatternConfig | null] | ['navigate', string, Record<string, FieldValue>?] | ['notify', string, NotifyOptions?] | ['emit', string, FieldValue?];
|
|
156
|
+
/**
|
|
157
|
+
* Options for notify effect
|
|
158
|
+
*/
|
|
159
|
+
interface NotifyOptions {
|
|
160
|
+
type?: 'success' | 'error' | 'info' | 'warning';
|
|
161
|
+
duration?: number;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Resolved pattern with component information from component-mapping.json
|
|
165
|
+
*/
|
|
166
|
+
interface MappedPattern {
|
|
167
|
+
/** Component name (e.g., 'DataTable') */
|
|
168
|
+
component: string;
|
|
169
|
+
/** Import path for the component */
|
|
170
|
+
importPath: string;
|
|
171
|
+
/** Pattern category (e.g., 'display', 'form') */
|
|
172
|
+
category: string;
|
|
173
|
+
/** Validated and normalized props */
|
|
174
|
+
validatedProps: Record<string, FieldValue>;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Response from server after processing an event.
|
|
178
|
+
* This is the unified response format for both Builder and compiled shells.
|
|
179
|
+
*/
|
|
180
|
+
interface EventResponse {
|
|
181
|
+
/** Whether the event was processed successfully */
|
|
182
|
+
success: boolean;
|
|
183
|
+
/** New state after transition (if transition occurred) */
|
|
184
|
+
newState?: string;
|
|
185
|
+
/** Data fetched by server effects (e.g., { Task: [...] }) */
|
|
186
|
+
data?: Record<string, EntityRow[]>;
|
|
187
|
+
/** Client effects to execute (render-ui, navigate, notify, emit) */
|
|
188
|
+
clientEffects?: ClientEffect[];
|
|
189
|
+
/** Results of individual effect executions (for debugging) */
|
|
190
|
+
effectResults?: Array<{
|
|
191
|
+
effect: string;
|
|
192
|
+
success: boolean;
|
|
193
|
+
data?: FieldValue;
|
|
194
|
+
error?: string;
|
|
195
|
+
}>;
|
|
196
|
+
/** Error message if success is false */
|
|
197
|
+
error?: string;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Configuration for the client effect executor.
|
|
201
|
+
* Provides implementations for each effect type.
|
|
202
|
+
*/
|
|
203
|
+
interface ClientEffectExecutorConfig {
|
|
204
|
+
/**
|
|
205
|
+
* Render a pattern to a slot.
|
|
206
|
+
* Called for 'render-ui' effects.
|
|
207
|
+
*/
|
|
208
|
+
renderToSlot: (slot: string, pattern: PatternConfig | null) => void;
|
|
209
|
+
/**
|
|
210
|
+
* Navigate to a route.
|
|
211
|
+
* Called for 'navigate' effects.
|
|
212
|
+
*/
|
|
213
|
+
navigate: (path: string, params?: Record<string, FieldValue>) => void;
|
|
214
|
+
/**
|
|
215
|
+
* Show a notification.
|
|
216
|
+
* Called for 'notify' effects.
|
|
217
|
+
*/
|
|
218
|
+
notify: (message: string, options?: NotifyOptions) => void;
|
|
219
|
+
/**
|
|
220
|
+
* Emit an event to the event bus.
|
|
221
|
+
* Called for 'emit' effects.
|
|
222
|
+
*/
|
|
223
|
+
eventBus: {
|
|
224
|
+
emit: (event: string, payload?: FieldValue) => void;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* Optional: Data from server response for render-ui.
|
|
228
|
+
* Components can use this to access fetched entity data.
|
|
229
|
+
*/
|
|
230
|
+
data?: Record<string, EntityRow[]>;
|
|
231
|
+
/**
|
|
232
|
+
* Optional: Callback when all effects have been executed.
|
|
233
|
+
*/
|
|
234
|
+
onComplete?: () => void;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Slot type classification
|
|
238
|
+
*/
|
|
239
|
+
type SlotType = 'inline' | 'portal';
|
|
240
|
+
/**
|
|
241
|
+
* Definition of a slot including its rendering behavior
|
|
242
|
+
*/
|
|
243
|
+
interface SlotDefinition {
|
|
244
|
+
/** Slot name */
|
|
245
|
+
name: UISlot;
|
|
246
|
+
/** Whether to render inline or via portal */
|
|
247
|
+
type: SlotType;
|
|
248
|
+
/** For portal slots: where to render (default: document.body) */
|
|
249
|
+
portalTarget?: string;
|
|
250
|
+
/** Z-index for portal slots */
|
|
251
|
+
zIndex?: number;
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Context for resolving entity data.
|
|
255
|
+
* Supports multiple data sources with priority.
|
|
256
|
+
*/
|
|
257
|
+
interface DataContext {
|
|
258
|
+
/** Server-provided data (highest priority) */
|
|
259
|
+
fetchedData?: Record<string, EntityRow[]>;
|
|
260
|
+
/** In-memory mock data (for Builder preview) */
|
|
261
|
+
entityStore?: {
|
|
262
|
+
getRecords: (entityName: string) => EntityRow[];
|
|
263
|
+
};
|
|
264
|
+
/** Query singleton for filtering */
|
|
265
|
+
querySingleton?: {
|
|
266
|
+
getFilters: (queryRef: string) => Record<string, FieldValue>;
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Result of data resolution
|
|
271
|
+
*/
|
|
272
|
+
interface DataResolution {
|
|
273
|
+
/** Resolved data array */
|
|
274
|
+
data: EntityRow[];
|
|
275
|
+
/** Whether data is still loading */
|
|
276
|
+
loading: boolean;
|
|
277
|
+
/** Error if resolution failed */
|
|
278
|
+
error?: Error;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Offline Effect Executor
|
|
283
|
+
*
|
|
284
|
+
* Enables client-only mode for applications that need to work without
|
|
285
|
+
* server connectivity. Provides:
|
|
286
|
+
* - Mock data providers for simulating server responses
|
|
287
|
+
* - Local effect execution without server round-trip
|
|
288
|
+
* - Sync queue for effects that need server persistence when back online
|
|
289
|
+
*
|
|
290
|
+
* Used by both Builder preview (offline mode) and compiled shells (PWA mode).
|
|
291
|
+
*
|
|
292
|
+
* @packageDocumentation
|
|
293
|
+
*/
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Effect that needs to be synced to server when online
|
|
297
|
+
*/
|
|
298
|
+
interface PendingSyncEffect {
|
|
299
|
+
/** Unique ID for this effect */
|
|
300
|
+
id: string;
|
|
301
|
+
/** Timestamp when effect was queued */
|
|
302
|
+
timestamp: number;
|
|
303
|
+
/** Effect type (persist, call-service, etc.) */
|
|
304
|
+
type: string;
|
|
305
|
+
/** Effect payload */
|
|
306
|
+
payload: Record<string, FieldValue>;
|
|
307
|
+
/** Number of retry attempts */
|
|
308
|
+
retries: number;
|
|
309
|
+
/** Maximum retries before giving up */
|
|
310
|
+
maxRetries: number;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Configuration for offline executor
|
|
314
|
+
*/
|
|
315
|
+
interface OfflineExecutorConfig extends ClientEffectExecutorConfig {
|
|
316
|
+
/**
|
|
317
|
+
* Mock data provider for simulating fetch responses.
|
|
318
|
+
* Returns data for a given entity name.
|
|
319
|
+
*/
|
|
320
|
+
mockDataProvider?: (entityName: string) => EntityRow[];
|
|
321
|
+
/**
|
|
322
|
+
* Whether to queue server effects for sync when online.
|
|
323
|
+
* Default: true
|
|
324
|
+
*/
|
|
325
|
+
enableSyncQueue?: boolean;
|
|
326
|
+
/**
|
|
327
|
+
* Maximum number of effects to queue before dropping oldest.
|
|
328
|
+
* Default: 100
|
|
329
|
+
*/
|
|
330
|
+
maxQueueSize?: number;
|
|
331
|
+
/**
|
|
332
|
+
* Callback when an effect is added to sync queue.
|
|
333
|
+
*/
|
|
334
|
+
onEffectQueued?: (effect: PendingSyncEffect) => void;
|
|
335
|
+
/**
|
|
336
|
+
* Callback when sync queue changes.
|
|
337
|
+
*/
|
|
338
|
+
onQueueChange?: (queue: PendingSyncEffect[]) => void;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Offline executor state
|
|
342
|
+
*/
|
|
343
|
+
interface OfflineExecutorState {
|
|
344
|
+
/** Whether we're in offline mode */
|
|
345
|
+
isOffline: boolean;
|
|
346
|
+
/** Pending effects waiting for sync */
|
|
347
|
+
syncQueue: PendingSyncEffect[];
|
|
348
|
+
/** Number of effects processed locally */
|
|
349
|
+
localEffectsProcessed: number;
|
|
350
|
+
/** Number of effects synced to server */
|
|
351
|
+
effectsSynced: number;
|
|
352
|
+
/** Last sync attempt timestamp */
|
|
353
|
+
lastSyncAttempt?: number;
|
|
354
|
+
/** Last successful sync timestamp */
|
|
355
|
+
lastSuccessfulSync?: number;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* OfflineExecutor - Handles effects in offline/client-only mode.
|
|
359
|
+
*
|
|
360
|
+
* Features:
|
|
361
|
+
* - Executes client effects immediately (render-ui, navigate, notify, emit)
|
|
362
|
+
* - Queues server effects (persist, fetch, call-service) for later sync
|
|
363
|
+
* - Provides mock data for fetch effects when offline
|
|
364
|
+
* - Syncs queued effects when connection is restored
|
|
365
|
+
*
|
|
366
|
+
* @example
|
|
367
|
+
* ```typescript
|
|
368
|
+
* const executor = new OfflineExecutor({
|
|
369
|
+
* renderToSlot: (slot, pattern) => slotManager.render(slot, pattern),
|
|
370
|
+
* navigate: (path) => router.push(path),
|
|
371
|
+
* notify: (message, opts) => toast.show(message, opts),
|
|
372
|
+
* eventBus: { emit: (event, payload) => bus.emit(event, payload) },
|
|
373
|
+
* mockDataProvider: (entityName) => mockStore.getAll(entityName),
|
|
374
|
+
* });
|
|
375
|
+
*
|
|
376
|
+
* // Process effects locally
|
|
377
|
+
* const response = executor.processEventOffline('LOAD', { id: '123' });
|
|
378
|
+
*
|
|
379
|
+
* // When back online
|
|
380
|
+
* await executor.syncPendingEffects(serverUrl);
|
|
381
|
+
* ```
|
|
382
|
+
*/
|
|
383
|
+
declare class OfflineExecutor {
|
|
384
|
+
private config;
|
|
385
|
+
private state;
|
|
386
|
+
private storage;
|
|
387
|
+
constructor(config: OfflineExecutorConfig);
|
|
388
|
+
/**
|
|
389
|
+
* Check if we're online (browser API)
|
|
390
|
+
*/
|
|
391
|
+
private checkOnline;
|
|
392
|
+
/**
|
|
393
|
+
* Handle going online
|
|
394
|
+
*/
|
|
395
|
+
private handleOnline;
|
|
396
|
+
/**
|
|
397
|
+
* Handle going offline
|
|
398
|
+
*/
|
|
399
|
+
private handleOffline;
|
|
400
|
+
/**
|
|
401
|
+
* Load sync queue from localStorage
|
|
402
|
+
*/
|
|
403
|
+
private loadSyncQueue;
|
|
404
|
+
/**
|
|
405
|
+
* Save sync queue to localStorage
|
|
406
|
+
*/
|
|
407
|
+
private saveSyncQueue;
|
|
408
|
+
/**
|
|
409
|
+
* Add an effect to the sync queue
|
|
410
|
+
*/
|
|
411
|
+
private queueForSync;
|
|
412
|
+
/**
|
|
413
|
+
* Execute client effects immediately.
|
|
414
|
+
*/
|
|
415
|
+
executeClientEffects(effects: ClientEffect[]): void;
|
|
416
|
+
/**
|
|
417
|
+
* Process an event in offline mode.
|
|
418
|
+
*
|
|
419
|
+
* Returns a simulated EventResponse with mock data.
|
|
420
|
+
* Client effects are executed immediately.
|
|
421
|
+
* Server effects are queued for sync.
|
|
422
|
+
*/
|
|
423
|
+
processEventOffline(event: string, payload?: Record<string, FieldValue>, effects?: Array<FieldValue[]>): EventResponse;
|
|
424
|
+
/**
|
|
425
|
+
* Sync pending effects to server.
|
|
426
|
+
*
|
|
427
|
+
* @param serverUrl - Base URL for the orbital server
|
|
428
|
+
* @param authToken - Optional auth token for requests
|
|
429
|
+
* @returns Number of successfully synced effects
|
|
430
|
+
*/
|
|
431
|
+
syncPendingEffects(serverUrl: string, authToken?: string): Promise<number>;
|
|
432
|
+
/**
|
|
433
|
+
* Get current executor state
|
|
434
|
+
*/
|
|
435
|
+
getState(): OfflineExecutorState;
|
|
436
|
+
/**
|
|
437
|
+
* Get number of pending effects
|
|
438
|
+
*/
|
|
439
|
+
getPendingCount(): number;
|
|
440
|
+
/**
|
|
441
|
+
* Clear the sync queue
|
|
442
|
+
*/
|
|
443
|
+
clearQueue(): void;
|
|
444
|
+
/**
|
|
445
|
+
* Dispose the executor and clean up listeners
|
|
446
|
+
*/
|
|
447
|
+
dispose(): void;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Create an offline executor with sensible defaults.
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* ```typescript
|
|
454
|
+
* const executor = createOfflineExecutor({
|
|
455
|
+
* renderToSlot: slotManager.render,
|
|
456
|
+
* navigate: router.push,
|
|
457
|
+
* notify: toast.show,
|
|
458
|
+
* eventBus: { emit: bus.emit },
|
|
459
|
+
* mockDataProvider: (entity) => store.getAll(entity),
|
|
460
|
+
* });
|
|
461
|
+
* ```
|
|
462
|
+
*/
|
|
463
|
+
declare function createOfflineExecutor(config: OfflineExecutorConfig): OfflineExecutor;
|
|
464
|
+
/**
|
|
465
|
+
* Options for useOfflineExecutor hook
|
|
466
|
+
*/
|
|
467
|
+
interface UseOfflineExecutorOptions extends OfflineExecutorConfig {
|
|
468
|
+
/** Server URL for syncing */
|
|
469
|
+
serverUrl?: string;
|
|
470
|
+
/** Auth token for server requests */
|
|
471
|
+
authToken?: string;
|
|
472
|
+
/** Auto-sync when coming back online */
|
|
473
|
+
autoSync?: boolean;
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Result of useOfflineExecutor hook
|
|
477
|
+
*/
|
|
478
|
+
interface UseOfflineExecutorResult {
|
|
479
|
+
/** Current executor state */
|
|
480
|
+
state: OfflineExecutorState;
|
|
481
|
+
/** Whether we're offline */
|
|
482
|
+
isOffline: boolean;
|
|
483
|
+
/** Number of pending effects */
|
|
484
|
+
pendingCount: number;
|
|
485
|
+
/** Execute client effects */
|
|
486
|
+
executeClientEffects: (effects: ClientEffect[]) => void;
|
|
487
|
+
/** Process event offline */
|
|
488
|
+
processEventOffline: (event: string, payload?: Record<string, FieldValue>, effects?: Array<FieldValue[]>) => EventResponse;
|
|
489
|
+
/** Manually trigger sync */
|
|
490
|
+
sync: () => Promise<number>;
|
|
491
|
+
/** Clear the queue */
|
|
492
|
+
clearQueue: () => void;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* React hook for offline effect execution.
|
|
496
|
+
*
|
|
497
|
+
* @example
|
|
498
|
+
* ```tsx
|
|
499
|
+
* function MyComponent() {
|
|
500
|
+
* const { isOffline, pendingCount, processEventOffline, sync } = useOfflineExecutor({
|
|
501
|
+
* renderToSlot: slotManager.render,
|
|
502
|
+
* navigate: router.push,
|
|
503
|
+
* notify: toast.show,
|
|
504
|
+
* eventBus: { emit: bus.emit },
|
|
505
|
+
* serverUrl: '/api/orbitals',
|
|
506
|
+
* autoSync: true,
|
|
507
|
+
* });
|
|
508
|
+
*
|
|
509
|
+
* return (
|
|
510
|
+
* <div>
|
|
511
|
+
* {isOffline && <Banner>Offline - {pendingCount} changes pending</Banner>}
|
|
512
|
+
* <button onClick={() => processEventOffline('SAVE', data)}>Save</button>
|
|
513
|
+
* </div>
|
|
514
|
+
* );
|
|
515
|
+
* }
|
|
516
|
+
* ```
|
|
517
|
+
*/
|
|
518
|
+
declare function useOfflineExecutor(options: UseOfflineExecutorOptions): UseOfflineExecutorResult;
|
|
519
|
+
|
|
520
|
+
export { type ClientEffect as C, type DataContext as D, type EventResponse as E, type MappedPattern as M, type NavigationContextValue as N, OfflineExecutor as O, type PendingSyncEffect as P, type SlotDefinition as S, type UseOfflineExecutorResult as U, type UseOfflineExecutorOptions as a, NavigationProvider as b, type NavigationProviderProps as c, type NavigationState as d, extractRouteParams as e, findPageByName as f, findPageByPath as g, getAllPages as h, getDefaultPage as i, useInitPayload as j, useNavigateTo as k, useNavigation as l, matchPath as m, useNavigationId as n, useNavigationState as o, pathMatches as p, type ClientEffectExecutorConfig as q, type NotifyOptions as r, type DataResolution as s, type OfflineExecutorConfig as t, useActivePage as u, type OfflineExecutorState as v, type SlotType as w, createOfflineExecutor as x, useOfflineExecutor as y };
|
package/dist/providers/index.cjs
CHANGED
|
@@ -41,7 +41,7 @@ var core$1 = require('@dnd-kit/core');
|
|
|
41
41
|
var sortable = require('@dnd-kit/sortable');
|
|
42
42
|
var utilities = require('@dnd-kit/utilities');
|
|
43
43
|
var react = require('@xyflow/react');
|
|
44
|
-
var patterns = require('@almadar/patterns');
|
|
44
|
+
var patterns = require('@almadar/core/patterns');
|
|
45
45
|
|
|
46
46
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
47
47
|
|
|
@@ -7407,6 +7407,13 @@ function bindCanvasCapture(captureFn) {
|
|
|
7407
7407
|
window.__orbitalVerification.captureFrame = captureFn;
|
|
7408
7408
|
}
|
|
7409
7409
|
}
|
|
7410
|
+
function bindLastDrawables(getDrawables) {
|
|
7411
|
+
if (typeof window === "undefined") return;
|
|
7412
|
+
exposeOnWindow();
|
|
7413
|
+
if (window.__orbitalVerification) {
|
|
7414
|
+
window.__orbitalVerification.getLastDrawables = getDrawables;
|
|
7415
|
+
}
|
|
7416
|
+
}
|
|
7410
7417
|
function updateAssetStatus(url, status) {
|
|
7411
7418
|
if (typeof window === "undefined") return;
|
|
7412
7419
|
exposeOnWindow();
|
|
@@ -8812,8 +8819,12 @@ var init_MiniMap = __esm({
|
|
|
8812
8819
|
MiniMap.displayName = "MiniMap";
|
|
8813
8820
|
}
|
|
8814
8821
|
});
|
|
8815
|
-
function useCamera() {
|
|
8816
|
-
const cameraRef = React83.useRef({
|
|
8822
|
+
function useCamera(initial) {
|
|
8823
|
+
const cameraRef = React83.useRef({
|
|
8824
|
+
x: initial?.x ?? 0,
|
|
8825
|
+
y: initial?.y ?? 0,
|
|
8826
|
+
zoom: initial?.zoom ?? 1
|
|
8827
|
+
});
|
|
8817
8828
|
const targetCameraRef = React83.useRef(null);
|
|
8818
8829
|
const isDraggingRef = React83.useRef(false);
|
|
8819
8830
|
const dragDistanceRef = React83.useRef(0);
|
|
@@ -9251,8 +9262,9 @@ var init_DrawSprite = __esm({
|
|
|
9251
9262
|
if (!r) return;
|
|
9252
9263
|
src = { x: r.sx, y: r.sy, w: r.sw, h: r.sh };
|
|
9253
9264
|
}
|
|
9254
|
-
const
|
|
9255
|
-
const
|
|
9265
|
+
const tw = dctx.projector.tileWidth;
|
|
9266
|
+
const w = node.width !== void 0 ? node.width * tw : src ? src.w : tex.width;
|
|
9267
|
+
const h = node.height !== void 0 ? node.height * tw : src ? src.h : tex.height;
|
|
9256
9268
|
const anchor = node.anchor ?? "top-left";
|
|
9257
9269
|
const p = dctx.projector.anchorPoint(node.position, anchor);
|
|
9258
9270
|
const dx = anchor === "top-left" ? p.x : p.x - w / 2;
|
|
@@ -9299,27 +9311,30 @@ var init_DrawShape = __esm({
|
|
|
9299
9311
|
}
|
|
9300
9312
|
case "rect": {
|
|
9301
9313
|
const p = dctx.projector.anchorPoint(node.position, node.anchor ?? "top-left");
|
|
9302
|
-
const
|
|
9303
|
-
const
|
|
9304
|
-
const
|
|
9305
|
-
const
|
|
9314
|
+
const tw = dctx.projector.tileWidth;
|
|
9315
|
+
const x = p.x + (node.offsetX ?? 0) * tw;
|
|
9316
|
+
const y = p.y + (node.offsetY ?? 0) * tw;
|
|
9317
|
+
const w = (node.width ?? 0) * tw;
|
|
9318
|
+
const h = (node.height ?? 0) * tw;
|
|
9306
9319
|
if (node.fill) painter.fillRect(x, y, w, h, node.fill);
|
|
9307
9320
|
if (node.stroke) painter.strokeRect(x, y, w, h, node.stroke, node.strokeWidth ?? 1);
|
|
9308
9321
|
break;
|
|
9309
9322
|
}
|
|
9310
9323
|
case "ellipse": {
|
|
9311
9324
|
const p = dctx.projector.anchorPoint(node.position, node.anchor ?? "ground");
|
|
9312
|
-
const
|
|
9313
|
-
const
|
|
9314
|
-
const
|
|
9315
|
-
const
|
|
9325
|
+
const tw = dctx.projector.tileWidth;
|
|
9326
|
+
const cx = p.x + (node.offsetX ?? 0) * tw;
|
|
9327
|
+
const cy = p.y + (node.offsetY ?? 0) * tw;
|
|
9328
|
+
const rx = (node.radiusX ?? 0) * tw;
|
|
9329
|
+
const ry = (node.radiusY ?? rx) * tw;
|
|
9316
9330
|
if (node.fill) painter.fillEllipse(cx, cy, rx, ry, node.fill);
|
|
9317
9331
|
if (node.stroke) painter.strokeEllipse(cx, cy, rx, ry, node.stroke, node.strokeWidth ?? 1);
|
|
9318
9332
|
break;
|
|
9319
9333
|
}
|
|
9320
9334
|
case "poly": {
|
|
9321
9335
|
const base = dctx.projector.project(node.position);
|
|
9322
|
-
const
|
|
9336
|
+
const tw = dctx.projector.tileWidth;
|
|
9337
|
+
const pts = (node.points ?? []).map((pt) => ({ x: base.x + pt.x * tw, y: base.y + pt.y * tw }));
|
|
9323
9338
|
if (node.fill) painter.fillPoly(pts, node.fill);
|
|
9324
9339
|
if (node.stroke) painter.strokePoly(pts, node.stroke, node.strokeWidth ?? 1, true);
|
|
9325
9340
|
break;
|
|
@@ -9485,9 +9500,17 @@ function Canvas2D({
|
|
|
9485
9500
|
scale = 0.4,
|
|
9486
9501
|
showMinimap = true,
|
|
9487
9502
|
followTarget,
|
|
9503
|
+
cameraPos,
|
|
9488
9504
|
bgColor
|
|
9489
9505
|
}) {
|
|
9506
|
+
const layerSummaries = drawables?.map((d) => {
|
|
9507
|
+
if (!d || typeof d !== "object") return d;
|
|
9508
|
+
const rec = d;
|
|
9509
|
+
return { type: rec.type, itemsLen: Array.isArray(rec.items) ? rec.items.length : void 0, firstItem: Array.isArray(rec.items) ? rec.items[0] : void 0 };
|
|
9510
|
+
});
|
|
9511
|
+
console.error("[debug:Canvas2D] " + JSON.stringify({ projection, scale, cameraMode: camera, cameraPos, drawablesCount: drawables?.length, layerSummaries }));
|
|
9490
9512
|
const backgroundImage = normalizeBackdrop(backgroundImageRaw);
|
|
9513
|
+
const instanceId = React83.useMemo(() => Math.random().toString(36).slice(2, 8), []);
|
|
9491
9514
|
const isFree = projection === "free";
|
|
9492
9515
|
const squareGrid = projection === "flat" || isFree || projection === "side";
|
|
9493
9516
|
const layout = projection === "side" ? "free" : projection;
|
|
@@ -9550,10 +9573,12 @@ function Canvas2D({
|
|
|
9550
9573
|
const canvas = canvasRef.current;
|
|
9551
9574
|
if (!canvas) return;
|
|
9552
9575
|
bindCanvasCapture(() => canvas.toDataURL("image/png"));
|
|
9576
|
+
bindLastDrawables(() => drawables ?? null);
|
|
9553
9577
|
return () => {
|
|
9554
9578
|
bindCanvasCapture(() => null);
|
|
9579
|
+
bindLastDrawables(() => null);
|
|
9555
9580
|
};
|
|
9556
|
-
}, []);
|
|
9581
|
+
}, [drawables]);
|
|
9557
9582
|
const enableCamera = camera === "pan-zoom";
|
|
9558
9583
|
const {
|
|
9559
9584
|
cameraRef,
|
|
@@ -9567,8 +9592,8 @@ function Canvas2D({
|
|
|
9567
9592
|
zoomAtPoint,
|
|
9568
9593
|
screenToWorld,
|
|
9569
9594
|
lerpToTarget
|
|
9570
|
-
} = useCamera();
|
|
9571
|
-
const [, setAtlasVersion] = React83.useState(0);
|
|
9595
|
+
} = useCamera({ zoom: scale });
|
|
9596
|
+
const [atlasVersion, setAtlasVersion] = React83.useState(0);
|
|
9572
9597
|
const bumpAtlas = React83.useCallback(() => setAtlasVersion((v) => v + 1), []);
|
|
9573
9598
|
const miniMapTiles = React83.useMemo(() => {
|
|
9574
9599
|
if (!showMinimap) return [];
|
|
@@ -9613,6 +9638,14 @@ function Canvas2D({
|
|
|
9613
9638
|
}
|
|
9614
9639
|
if (!drawables || drawables.length === 0) return;
|
|
9615
9640
|
const cam = cameraRef.current;
|
|
9641
|
+
if (cameraPos && dragDistance() === 0) {
|
|
9642
|
+
const p = projector.anchorPoint(cameraPos, "center");
|
|
9643
|
+
cam.x = p.x - viewportSize.width / 2;
|
|
9644
|
+
cam.y = p.y - viewportSize.height / 2;
|
|
9645
|
+
}
|
|
9646
|
+
const containerRect = containerRef.current?.getBoundingClientRect();
|
|
9647
|
+
const canvasRect = canvas.getBoundingClientRect();
|
|
9648
|
+
console.error("[debug:Canvas2D:draw:" + instanceId + "] " + JSON.stringify({ viewportSize, baseOffsetX, cam: { x: cam.x, y: cam.y, zoom: cam.zoom }, cameraPos, containerRect: containerRect ? { width: containerRect.width, height: containerRect.height } : null, canvasRect: canvasRect ? { width: canvasRect.width, height: canvasRect.height } : null }));
|
|
9616
9649
|
const painter = createWebPainter(ctx, bumpAtlas);
|
|
9617
9650
|
painter.save();
|
|
9618
9651
|
painter.translate(viewportSize.width / 2, viewportSize.height / 2);
|
|
@@ -9636,6 +9669,9 @@ function Canvas2D({
|
|
|
9636
9669
|
React83.useEffect(() => {
|
|
9637
9670
|
draw();
|
|
9638
9671
|
}, [_imagePendingCount, draw]);
|
|
9672
|
+
React83.useEffect(() => {
|
|
9673
|
+
draw();
|
|
9674
|
+
}, [atlasVersion, draw]);
|
|
9639
9675
|
React83.useEffect(() => {
|
|
9640
9676
|
if (camera !== "follow" || !followTarget) return;
|
|
9641
9677
|
let running = true;
|
|
@@ -9880,6 +9916,7 @@ function Canvas({
|
|
|
9880
9916
|
keyMap,
|
|
9881
9917
|
keyUpMap
|
|
9882
9918
|
}) {
|
|
9919
|
+
console.error("[debug:Canvas] " + JSON.stringify({ mode, drawablesCount: drawables?.length, projection, camera }));
|
|
9883
9920
|
const zoom = camera?.zoom;
|
|
9884
9921
|
if (mode === "3d") {
|
|
9885
9922
|
const props3d = {
|
|
@@ -9919,6 +9956,7 @@ function Canvas({
|
|
|
9919
9956
|
camera: to2DCamera(camera?.mode),
|
|
9920
9957
|
...zoom !== void 0 ? { scale: zoom } : {},
|
|
9921
9958
|
...camera?.target !== void 0 ? { followTarget: camera.target } : {},
|
|
9959
|
+
...camera?.pos !== void 0 ? { cameraPos: camera.pos } : {},
|
|
9922
9960
|
showMinimap,
|
|
9923
9961
|
backgroundImage,
|
|
9924
9962
|
...backgroundColor !== void 0 ? { bgColor: backgroundColor } : {},
|
|
@@ -44297,7 +44335,7 @@ function SlotContentRenderer({
|
|
|
44297
44335
|
const childrenConfig = content.props.children;
|
|
44298
44336
|
const isSingleChild = typeof childrenConfig === "string" || typeof childrenConfig === "object" && childrenConfig !== null && !Array.isArray(childrenConfig) && "type" in childrenConfig;
|
|
44299
44337
|
const hasChildren = PATTERNS_WITH_CHILDREN.has(content.pattern) || Array.isArray(childrenConfig) && childrenConfig.length > 0 || isSingleChild;
|
|
44300
|
-
const isDrawHost = patterns.
|
|
44338
|
+
const isDrawHost = patterns.isDrawHostPattern(content.pattern);
|
|
44301
44339
|
const myPath = patternPath ?? "root";
|
|
44302
44340
|
const renderedChildren = hasChildren && !isDrawHost ? renderPatternChildren(childrenConfig, onDismiss, content.id, myPath, content.sourceTrait, {
|
|
44303
44341
|
slot: content.slot,
|