@almadar/shell-web 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AvlGlyph-PIXU6QH5.js +5 -0
- package/dist/AvlStateMachine-CKGMECMG.js +8 -0
- package/dist/{AvlTransitionDetail-63SD6GZF.js → AvlTransitionDetail-QZX6G5KJ.js} +4 -5
- package/dist/AvlTransitionExplainer-26WLEIC6.js +11 -0
- package/dist/BehaviorView-JLZ4PKWY.js +10 -0
- package/dist/{FileTree-BCFnBEuQ.d.ts → FileTree-B3GDAjaQ.d.ts} +131 -4
- package/dist/{FlowCanvas-AUMTWMNG.js → FlowCanvas-RPII4V24.js} +10 -13
- package/dist/{FlowCanvas-3JRMNJLV.css → FlowCanvas-VWUPMBKB.css} +189 -191
- package/dist/{GameAudioProvider-ceM_n0ey.d.ts → GameAudioProvider-D7wo5ryN.d.ts} +1 -1
- package/dist/{KernelEngineContext-CcxGYtlr.d.ts → KernelEngineContext-CPeWQMAz.d.ts} +15 -2
- package/dist/ModuleCard-NJD6JQGD.js +6 -0
- package/dist/{OrbInspector-QCPEPUPH.js → OrbInspector-OWWKPOBF.js} +10 -13
- package/dist/{OrbInspector-MHLJ6OEE.css → OrbInspector-VMTMZHNQ.css} +189 -191
- package/dist/{Select-B-iDdnvE.d.ts → Select-C2Uq6t86.d.ts} +1 -1
- package/dist/{UISlotRenderer-KVFO6J7R.css → UISlotRenderer-BIS6KT7T.css} +189 -191
- package/dist/{UISlotRenderer-C7WWOK43.js → UISlotRenderer-PY7FIJXN.js} +10 -13
- package/dist/avl/index.css +189 -191
- package/dist/avl/index.d.ts +19 -7
- package/dist/avl/index.js +157 -26
- package/dist/{chunk-TUPZWTRE.js → chunk-2WGR4TDJ.js} +464 -35
- package/dist/{chunk-SP5CDJ6K.js → chunk-4YJ53G7S.js} +3 -3
- package/dist/{chunk-HH5KSMH5.js → chunk-7N6ZPHQ5.js} +1 -1
- package/dist/{chunk-CPLN6NBQ.js → chunk-AGVSO4WY.js} +2 -3
- package/dist/{chunk-UXLE3IPR.js → chunk-FAKU5F62.js} +205 -4
- package/dist/{chunk-TXAUOLWZ.js → chunk-M74BCDBQ.js} +1 -1
- package/dist/{chunk-LHP2TK7O.js → chunk-MS4K3K2R.js} +2908 -4574
- package/dist/{chunk-K4MOPSEL.js → chunk-OWNG4JZI.js} +3 -4
- package/dist/{chunk-AB3X7QTE.js → chunk-PRLHKBXG.js} +1 -2
- package/dist/{chunk-X3DMMX27.js → chunk-VHC2M26B.js} +1 -1
- package/dist/{chunk-E6KA4J6N.js → chunk-VUIACGDU.js} +3 -4
- package/dist/{chunk-ROICKAU7.js → chunk-YYIHRIDH.js} +1 -1
- package/dist/{chunk-3VZ36ZKO.js → chunk-ZDRDJKYB.js} +5 -2
- package/dist/components/index.css +189 -191
- package/dist/components/index.d.ts +417 -173
- package/dist/components/index.js +14 -17
- package/dist/core.d.ts +3 -3
- package/dist/{fx-CmQjnHmT.d.ts → fx-Br8zjvu9.d.ts} +6 -6
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -2
- package/dist/{kernel-client-TZKGHJRY.js → kernel-client-JW6OH5FX.js} +24 -3
- package/dist/{kernel-wire-wNdAPfhJ.d.ts → kernel-wire-DGAySGhX.d.ts} +7 -0
- package/dist/lib/index.d.ts +2 -3
- package/dist/lib/index.js +2 -3
- package/dist/providers/index.css +189 -191
- package/dist/providers/index.d.ts +6 -8
- package/dist/providers/index.js +10 -14
- package/dist/runtime/index.css +189 -191
- package/dist/runtime/index.d.ts +6 -1
- package/dist/runtime/index.js +10 -13
- package/dist/test-support.js +2 -2
- package/dist/{paintDispatch-CuJLsr9Y.d.ts → verificationRegistry-oopV1J1n.d.ts} +127 -15
- package/package.json +8 -36
- package/dist/AvlGlyph-EPJKFEO3.js +0 -6
- package/dist/AvlStateMachine-RKZIKNGC.js +0 -9
- package/dist/AvlTransitionExplainer-ZBTLOM3T.js +0 -12
- package/dist/BehaviorView-YS5G4GNB.js +0 -11
- package/dist/Canvas3DHost-BkZQB5l2.d.ts +0 -552
- package/dist/ModuleCard-QHDGK5XK.js +0 -7
- package/dist/avl-3d-context-BycmO6tG.d.ts +0 -201
- package/dist/avl-schema-parser-CtJxJ9KU.d.ts +0 -132
- package/dist/avl-zoom-state-CKMVuBFg.d.ts +0 -17
- package/dist/chunk-4T3P43NS.js +0 -1133
- package/dist/chunk-DZBQA2OW.js +0 -176
- package/dist/chunk-EOWMARUB.js +0 -16
- package/dist/chunk-GFXCPUMX.js +0 -1334
- package/dist/chunk-ILZ7ORX7.js +0 -432
- package/dist/three/index.css +0 -503
- package/dist/three/index.d.ts +0 -1185
- package/dist/three/index.js +0 -3908
- package/dist/verificationRegistry-CVrcxG1s.d.ts +0 -122
package/dist/components/index.js
CHANGED
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
export { assertUniqueSlotsPerHost } from '../chunk-5QTYQTPS.js';
|
|
3
|
-
export { BehaviorView } from '../chunk-
|
|
4
|
-
export { ModuleCard } from '../chunk-
|
|
3
|
+
export { BehaviorView } from '../chunk-YYIHRIDH.js';
|
|
4
|
+
export { ModuleCard } from '../chunk-VUIACGDU.js';
|
|
5
5
|
import { JsonTreeEditor } from '../chunk-ILQXJ2AR.js';
|
|
6
6
|
export { JsonTreeEditor } from '../chunk-ILQXJ2AR.js';
|
|
7
7
|
export { SharedEntityStoreContext, createSharedEntityStore, runTickFrame, useAgentChat, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useExtensions, useFileEditor, useFileSystem, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, usePreview, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useTickVisibility, useTraitListens, useUIEvents, useValidation } from '../chunk-UU57VNS2.js';
|
|
8
|
-
import { resolveSheetDirection, frameRect, GridPicker, FormSection } from '../chunk-
|
|
9
|
-
export { Card as ActionCard, ActionPalette, ActionTile, ActivationBlock, ActivityRail, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AuthLayout, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Carousel, ChangeList, Chart, ChartLegend, ChatBar, ChemistryCanvas, ChoiceButton, CodeBlock, CodeRunnerPanel, CommandPalette, CommitRow, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DetailPanel, DialogueBubble, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, DrawShapeLayer, DrawSprite, DrawSpriteLayer, DrawText, DrawTextLayer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EmojiPicker, ErrorBoundary, ErrorState, FEATURE_COLORS, FLOOR_HEIGHT, FeatureCard, FeatureGrid, FilterGroup, Flex, FlipCard, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, FxOverlay, GameAudioContext, GameAudioCue, GameAudioProvider, GameAudioToggle, GameHud, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, GuestView, Header, HealthBar, IconButton, ImportPreviewTree, ImportProgress, ImportSourcePicker, InputGroup, JazariStateMachine, LearningCanvas,
|
|
8
|
+
import { resolveSheetDirection, frameRect, GridPicker, FormSection } from '../chunk-MS4K3K2R.js';
|
|
9
|
+
export { Card as ActionCard, ActionPalette, ActionTile, ActivationBlock, ActivityRail, AgentActivityFeed, AgentActivityRow, AgentChatFeed, AgentThinkingRow, Alert, AlgoGraphCanvas, AlgorithmCanvas, AnimatedCounter, AuthLayout, BiologyCanvas, BloomQuizBlock, BranchingLogicBuilder, Breadcrumb, ButtonGroup, COMPACT_MEDIA_QUERY, CalendarGrid, Canvas, Canvas2D, Carousel, ChangeList, Chart, ChartLegend, ChatBar, ChemistryCanvas, ChoiceButton, CodeBlock, CodeRunnerPanel, CommandPalette, CommitRow, ConfirmDialog, ConnectionBlock, Container, ContentRenderer, ControlButton, ControlGrid, CounterTemplate, DEFAULT_LIKERT_OPTION_KEYS, DEFAULT_MATRIX_COLUMN_KEYS, DIAMOND_TOP_Y, DashboardGrid, DashboardLayout, DataGrid, DataList, DateRangePicker, DateRangeSelector, DetailPanel, DialogueBubble, DocBreadcrumb, DocPagination, DocSearch, DocSidebar, DocTOC, DockLayout, DocumentDetails, DocumentPanel, DocumentViewer, StateMachineView as DomStateMachineVisualizer, DrawFxLayer, DrawGroup, DrawMesh, DrawShape, DrawShapeLayer, DrawSkinnedMesh, DrawSprite, DrawSpriteLayer, DrawText, DrawTextLayer, Drawer, DrawerSlot, ELEMENT_SELECTED_EVENT, EdgeDecoration, EmojiPicker, ErrorBoundary, ErrorState, FEATURE_COLORS, FLOOR_HEIGHT, FeatureCard, FeatureGrid, FilterGroup, Flex, FlipCard, FloatingActionButton, FloatingToolbar, Form, FormActions, FormField, FormLayout, FormSection, FormSectionHeader, FxOverlay, GameAudioContext, GameAudioCue, GameAudioProvider, GameAudioToggle, GameHud, GameMenu, GameShell, Gantt, GenericAppTemplate, GeometricPattern, GradientDivider, GraphCanvas, GraphView, Grid, GridPicker, GuestView, Header, HealthBar, IconButton, ImportPreviewTree, ImportProgress, ImportSourcePicker, InputGroup, JazariStateMachine, LearningCanvas, Lightbox, LikertScale, LineChart, LoadingState, MachinePanel, MapView, MarkdownContent, MasterDetailLayout, MathCanvas, MatrixQuestion, MediaGallery, Menu, Meter, Modal, ModalSlot, Navigation, NumberStepper, OptionConstraintGroup, StateMachineView as OrbitalStateMachineView, OrbitalVisualization, PageHeader, PageTransition, Pagination, PhysicsCanvas, PositionedCanvas, ProgressDots, PullToRefresh, QrScanner, QuizBlock, ReflectionBlock, RelationSelect, RepeatableFormSection, ReplyTree, RichTextEditor, RuntimeDebugger, SHEET_COLUMNS, SPRITE_SHEET_LAYOUT, ScaledDiagram, ScoreDisplay, SearchInput, Section, SegmentRenderer, SequenceBar, SidePanel, Sidebar, SignaturePad, SimpleGrid, Skeleton, SkeletonTree, SlotContentRenderer, SocialProof, SortableList, Split, SplitPane, StarRating, StatBadge, StatCard, StatDisplay, StateGraph, StateJsonView, StateMachineView, SubagentTracePanel, SwipeableRow, TILE_HEIGHT, TILE_WIDTH, TabbedContainer, TableView, Tabs, TagInput, Timeline, TimerDisplay, Toast, ToastSlot, TopNavItem, TraitFrame, TraitSlot, TraitStateViewer, UISlotComponent, UISlotRenderer, UploadDropZone, VersionDiff, ViolationAlert, VoteStack, WizardContainer, WizardNavigation, WizardProgress, activityRowFacts, applyCompletion, applySuggestions, createUnitAnimationState, dispatchCommandPaletteCommand, getCurrentFrame, groupIntoConversations, inferDirection, isoToScreen, parseEditFocus, preloadCodeHighlighter, registerCodeLanguageLoader, renderPatternValue, resolveFrame, resolveSheetDirection, sanitizeRichHtml, screenToIso, tickAnimationState, toCodeLanguage, transitionAnimation, useCamera, useCompactLayout, useDockLayout, useGameAudio, useGameAudioContext, useImageCache } from '../chunk-MS4K3K2R.js';
|
|
10
10
|
export { FileTree } from '../chunk-57DC34LY.js';
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-4YJ53G7S.js';
|
|
12
|
+
import '../chunk-AGVSO4WY.js';
|
|
13
|
+
import '../chunk-7N6ZPHQ5.js';
|
|
14
14
|
export { Accordion } from '../chunk-REXYVBUO.js';
|
|
15
15
|
export { EmptyState } from '../chunk-AGXD77SL.js';
|
|
16
|
-
import '../chunk-
|
|
17
|
-
import { ThemedPortal } from '../chunk-AB3X7QTE.js';
|
|
18
|
-
export { Popover, Tooltip } from '../chunk-AB3X7QTE.js';
|
|
19
|
-
import '../chunk-DZBQA2OW.js';
|
|
20
|
-
export { parseLessonSegments, parseMarkdownWithCodeBlocks } from '../chunk-TUPZWTRE.js';
|
|
21
|
-
import '../chunk-TZZBINQY.js';
|
|
22
|
-
export { DrawFxLayer, DrawGroup, DrawMesh, DrawShape, DrawSkinnedMesh } from '../chunk-4T3P43NS.js';
|
|
16
|
+
import '../chunk-M74BCDBQ.js';
|
|
23
17
|
import '../chunk-PCR37T3U.js';
|
|
24
|
-
import '../chunk-
|
|
25
|
-
|
|
26
|
-
import '../chunk-
|
|
18
|
+
import { ThemedPortal } from '../chunk-PRLHKBXG.js';
|
|
19
|
+
export { Popover, Tooltip } from '../chunk-PRLHKBXG.js';
|
|
20
|
+
import '../chunk-FAKU5F62.js';
|
|
21
|
+
export { parseLessonSegments, parseMarkdownWithCodeBlocks } from '../chunk-2WGR4TDJ.js';
|
|
22
|
+
import '../chunk-TZZBINQY.js';
|
|
23
|
+
import '../chunk-ZDRDJKYB.js';
|
|
27
24
|
export { claimDelivery, keyChord, mergeCaptureTables, parseQueryBinding, useAuthContext, useCanvasGestures, useDragReorder, useKeyboardRouter, useLongPress, usePageHead, usePullToRefresh, useQuerySingleton, useSwipeGesture } from '../chunk-PRXQGGCO.js';
|
|
28
25
|
export { ALMADAR_DND_MIME, useDraggable, useDropZone } from '../chunk-VO2TTLS5.js';
|
|
29
26
|
import '../chunk-AE7VCQB6.js';
|
package/dist/core.d.ts
CHANGED
|
@@ -2,9 +2,9 @@ import * as React$1 from 'react';
|
|
|
2
2
|
import React__default, { RefObject } from 'react';
|
|
3
3
|
import { A11yProps, AssetUrl, EventKey, TextureAtlas, Tilesheet, SpriteSheetAtlas, EventPayload, EventEmit, FieldValue, SExpr, Asset, OrbitalSchema, OrbitalPage, NavStackEntry, IconFamily as IconFamily$1, JsonValue, SurfaceMode } from '@almadar/core';
|
|
4
4
|
export { BusEvent, BusEventListener, BusEventSource, BusEventListener as EventListener, SurfaceMode, Unsubscribe, comparePathSpecificity, matchPath, matchPathAmong } from '@almadar/core';
|
|
5
|
-
import { I as IconInput } from './fx-
|
|
6
|
-
export { B as Badge, b as BadgeColor, c as BadgeProps, d as BadgeSize, e as BadgeVariant, C as CONFETTI_BURST_KEYFRAMES, f as CONFETTI_COLORS, g as ColorToken, h as ConfettiParticle, D as DisplayField, i as DisplayFieldFormat, j as DisplayFieldVariant, F as FxItem, k as FxLifecycle, l as FxOverlayItem, m as FxOverlayKind, a as FxPreset, n as FxProceduralShape, o as FxSpace, p as FxView, q as Icon, r as IconAnimation, s as IconProps, t as IconSize, u as ImageSource, L as LinkAction, P as Point, R as Rect, U as UiError, v as createConfettiParticles, w as fxHash01, x as fxLifecycle, y as resolveFxView, z as resolveIcon } from './fx-
|
|
7
|
-
export { B as Button, a as ButtonProps, b as ButtonSize, c as ButtonVariant, I as Input, d as InputProps, P as PatternTile, e as PatternTileProps, f as PatternVariant, S as Select, g as SelectOption, h as SelectOptionGroup, i as SelectProps, j as getTileDimensions } from './Select-
|
|
5
|
+
import { I as IconInput } from './fx-Br8zjvu9.js';
|
|
6
|
+
export { B as Badge, b as BadgeColor, c as BadgeProps, d as BadgeSize, e as BadgeVariant, C as CONFETTI_BURST_KEYFRAMES, f as CONFETTI_COLORS, g as ColorToken, h as ConfettiParticle, D as DisplayField, i as DisplayFieldFormat, j as DisplayFieldVariant, F as FxItem, k as FxLifecycle, l as FxOverlayItem, m as FxOverlayKind, a as FxPreset, n as FxProceduralShape, o as FxSpace, p as FxView, q as Icon, r as IconAnimation, s as IconProps, t as IconSize, u as ImageSource, L as LinkAction, P as Point, R as Rect, U as UiError, v as createConfettiParticles, w as fxHash01, x as fxLifecycle, y as resolveFxView, z as resolveIcon } from './fx-Br8zjvu9.js';
|
|
7
|
+
export { B as Button, a as ButtonProps, b as ButtonSize, c as ButtonVariant, I as Input, d as InputProps, P as PatternTile, e as PatternTileProps, f as PatternVariant, S as Select, g as SelectOption, h as SelectOptionGroup, i as SelectProps, j as getTileDimensions } from './Select-C2Uq6t86.js';
|
|
8
8
|
export { E as EventBusContext, a as EventBusContextType, b as EventBusContextTypeExtended, c as EventBusProvider, V as VideoEmbed, d as VideoEmbedProps, e as VideoErrorPayload, f as VideoPlayPayload, g as VideoReadyPayload, h as getGlobalEventBus, s as setGlobalEventBus, u as useEmitEvent, i as useEventBus, j as useEventListener, k as useEventSubscription, l as useRootEventBus } from './EventBusProvider-BFFHfN4O.js';
|
|
9
9
|
import { ClassValue } from 'clsx';
|
|
10
10
|
import { LucideIcon } from 'lucide-react';
|
|
@@ -198,7 +198,7 @@ interface FxItem {
|
|
|
198
198
|
id: string;
|
|
199
199
|
/** Effect-kind key into the consumer-declared `FxPreset[]` table. */
|
|
200
200
|
type: string;
|
|
201
|
-
/**
|
|
201
|
+
/** Scene position `{x, y: ground row, z: height}`; the fx mechanic stamps it from `x`/`z`/`y`, and the layer refuses an item without it. */
|
|
202
202
|
position?: ScenePos;
|
|
203
203
|
/** Scene x in world units. */
|
|
204
204
|
x: number;
|
|
@@ -253,11 +253,11 @@ interface FxPreset {
|
|
|
253
253
|
/** Glow strength — soft shadow blur in world units around procedural particles. */
|
|
254
254
|
glow?: number;
|
|
255
255
|
/** Downward acceleration in world-units/sec² applied to the drift. */
|
|
256
|
-
gravity
|
|
257
|
-
/**
|
|
258
|
-
vx
|
|
259
|
-
vy
|
|
260
|
-
vz
|
|
256
|
+
gravity: number;
|
|
257
|
+
/** Drift velocities in world-units/sec; an item's own velocity wins. `vy` is the height axis, read in 3D only. */
|
|
258
|
+
vx: number;
|
|
259
|
+
vy: number;
|
|
260
|
+
vz: number;
|
|
261
261
|
/** Render substrate routing for this kind. */
|
|
262
262
|
space?: FxSpace;
|
|
263
263
|
/** Screen-space render kind for this kind. */
|
package/dist/index.d.ts
CHANGED
|
@@ -130,6 +130,8 @@ interface BrowserStoreTransportOptions {
|
|
|
130
130
|
secretPorts?: SecretPorts;
|
|
131
131
|
/** The host's `os` port (`createFetchOsHost(fetch)`); absent, every `os` ask of a leg is denied. */
|
|
132
132
|
os?: OsHostPort;
|
|
133
|
+
/** The browser's GPU answerer (the kernel module's `GpuHost`), installed into the kernel; absent, every `gpu/` ask answers `unsupported`. */
|
|
134
|
+
gpu?: KernelHostPorts['gpu'];
|
|
133
135
|
}
|
|
134
136
|
declare function openBrowserStoreTransport(options: BrowserStoreTransportOptions): Promise<EventTransport>;
|
|
135
137
|
/**
|
|
@@ -152,6 +154,8 @@ interface BrowserHostOptions {
|
|
|
152
154
|
tabs?: BrowserTabPort;
|
|
153
155
|
/** The host's `os` port (`createFetchOsHost(fetch)`): the browser's only os operation is `os/fetch`; absent, every `os` ask is denied. */
|
|
154
156
|
os?: OsHostPort;
|
|
157
|
+
/** The browser's GPU answerer (the kernel module's `GpuHost`), installed into the kernel: every `gpu/` ask is answered there and its bytes never reach this host; absent, a `gpu/` ask answers `unsupported`. */
|
|
158
|
+
gpu?: KernelHostPorts['gpu'];
|
|
155
159
|
factory?: IDBFactory;
|
|
156
160
|
/** The viewer's locale: a first visit starts with the entity's `instances` written for it. */
|
|
157
161
|
locale?: string;
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { runTickFrame, createTickDriver } from './chunk-AU7O65OX.js';
|
|
3
3
|
export { createTickDriver, runTickFrame } from './chunk-AU7O65OX.js';
|
|
4
|
-
import { wrapCallbackForEvent, validateSlotContent, local_store_transport_exports, pushPerfEntry, perfTimeAsync, perfTime, perfStore, perfStart, perfGauge, perfEnd, openLocalKernel, openBundledBrowserStore, openBrowserStoreTransport, openBrowserStore, openBrowserHost, nativeMemoryPersistence, getOrbitalVerification, eventRouteKey, ensureVerificationApi, createSlotSetter, createResidenceTransport, collectEmbeddedTraits, clearPerf, buildOrbitalsByTrait, browserStoreName, bindTraitStateGetter, bindEventBus, assertIsSlotManager, assertIsMultiSourceSlotManager, aggregateSlotContent, RendererContractViolationError, PERF_NAMESPACE, webHostActions } from './chunk-
|
|
5
|
-
export { PERF_NAMESPACE, RendererContractViolationError, aggregateSlotContent, assertIsMultiSourceSlotManager, assertIsSlotManager, bindEventBus, bindTraitStateGetter, browserStoreName, buildOrbitalsByTrait, clearPerf, collectEmbeddedTraits, createResidenceTransport, createSlotSetter, ensureVerificationApi, eventRouteKey, getOrbitalVerification, nativeMemoryPersistence, openBrowserHost, openBrowserStore, openBrowserStoreTransport, openBundledBrowserStore, openLocalKernel, perfEnd, perfGauge, perfStart, perfStore, perfTime, perfTimeAsync, pushPerfEntry, validateSlotContent, wrapCallbackForEvent } from './chunk-
|
|
4
|
+
import { wrapCallbackForEvent, validateSlotContent, local_store_transport_exports, pushPerfEntry, perfTimeAsync, perfTime, perfStore, perfStart, perfGauge, perfEnd, openLocalKernel, openBundledBrowserStore, openBrowserStoreTransport, openBrowserStore, openBrowserHost, nativeMemoryPersistence, getOrbitalVerification, eventRouteKey, ensureVerificationApi, createSlotSetter, createResidenceTransport, collectEmbeddedTraits, clearPerf, buildOrbitalsByTrait, browserStoreName, bindTraitStateGetter, bindEventBus, assertIsSlotManager, assertIsMultiSourceSlotManager, aggregateSlotContent, RendererContractViolationError, PERF_NAMESPACE, webHostActions } from './chunk-ZDRDJKYB.js';
|
|
5
|
+
export { PERF_NAMESPACE, RendererContractViolationError, aggregateSlotContent, assertIsMultiSourceSlotManager, assertIsSlotManager, bindEventBus, bindTraitStateGetter, browserStoreName, buildOrbitalsByTrait, clearPerf, collectEmbeddedTraits, createResidenceTransport, createSlotSetter, ensureVerificationApi, eventRouteKey, getOrbitalVerification, nativeMemoryPersistence, openBrowserHost, openBrowserStore, openBrowserStoreTransport, openBundledBrowserStore, openLocalKernel, perfEnd, perfGauge, perfStart, perfStore, perfTime, perfTimeAsync, pushPerfEntry, validateSlotContent, wrapCallbackForEvent } from './chunk-ZDRDJKYB.js';
|
|
6
6
|
import { __export, __reExport } from './chunk-G7DCAZ22.js';
|
|
7
7
|
export * from '@almadar/shell-runtime/kernel/wire';
|
|
8
8
|
export * from '@almadar/shell-runtime/kernel/decode';
|
|
@@ -2,10 +2,11 @@ import { createTickDriver, runTickFrame } from './chunk-AU7O65OX.js';
|
|
|
2
2
|
import { presenceGroup, getTraitPresence } from './chunk-4YXBKHHM.js';
|
|
3
3
|
import './chunk-G7DCAZ22.js';
|
|
4
4
|
import { isJsonObject } from '@almadar/core';
|
|
5
|
-
import { createLocalFold,
|
|
5
|
+
import { createLocalFold, paintResponse, traceResponse } from '@almadar/shell-runtime';
|
|
6
6
|
import { TraitMountError } from '@almadar/shell-runtime/client/trait-mount-error';
|
|
7
7
|
import { SessionEndedError } from '@almadar/shell-runtime/client/EventTransport';
|
|
8
8
|
import { createLogger } from '@almadar/logger';
|
|
9
|
+
import { decodeHeldCompletion } from '@almadar/shell-runtime/kernel/decode';
|
|
9
10
|
|
|
10
11
|
var log = createLogger("almadar:ui:kernel-client");
|
|
11
12
|
var nextClientSerial = 0;
|
|
@@ -27,8 +28,9 @@ function createKernelClient(opts) {
|
|
|
27
28
|
const { store, traitIndex, transport } = opts;
|
|
28
29
|
let loaded;
|
|
29
30
|
const configs = /* @__PURE__ */ new Map();
|
|
30
|
-
const ready = opts.instance.then((k) => {
|
|
31
|
+
const ready = Promise.all([opts.instance, opts.gpu]).then(([k, gpu]) => {
|
|
31
32
|
loaded = k;
|
|
33
|
+
if (gpu !== void 0) k.installGpu(gpu, (json) => deliverGpuCompletion(k, json));
|
|
32
34
|
return k;
|
|
33
35
|
});
|
|
34
36
|
ready.catch(() => void 0);
|
|
@@ -273,13 +275,30 @@ function createKernelClient(opts) {
|
|
|
273
275
|
store.notify();
|
|
274
276
|
return { response, mode: parse(k.dispatchMode(request.runTick.trait)) };
|
|
275
277
|
}
|
|
276
|
-
const wire = parse(k.dispatch(traitName, request.entityId, request.event, payloadJson(request.payload)));
|
|
278
|
+
const wire = parse(request.heldPayload !== void 0 ? k.dispatchHeld(traitName, request.entityId, request.event, request.heldPayload) : k.dispatch(traitName, request.entityId, request.event, payloadJson(request.payload)));
|
|
277
279
|
try {
|
|
278
280
|
return await settleDispatch(k, wire, request, hooks, progress);
|
|
279
281
|
} finally {
|
|
280
282
|
endFlight(k, wire.flight);
|
|
281
283
|
}
|
|
282
284
|
};
|
|
285
|
+
const framePainters = /* @__PURE__ */ new Set();
|
|
286
|
+
const deliverGpuCompletion = (k, json) => {
|
|
287
|
+
const completion = decodeHeldCompletion(json);
|
|
288
|
+
if (completion === null) return;
|
|
289
|
+
const request = {
|
|
290
|
+
event: completion.event,
|
|
291
|
+
targetTrait: completion.traitName,
|
|
292
|
+
heldPayload: completion.heldPayload,
|
|
293
|
+
...completion.entityId !== void 0 ? { entityId: completion.entityId } : {}
|
|
294
|
+
};
|
|
295
|
+
dispatchOne(request, [], false).then((outcome) => {
|
|
296
|
+
for (const paint of framePainters) paint([outcome]);
|
|
297
|
+
}).catch((error) => {
|
|
298
|
+
k.dropHeldPayload(completion.heldPayload);
|
|
299
|
+
log.error("gpu-completion-failed", { trait: completion.traitName, event: completion.event, error: error.message });
|
|
300
|
+
});
|
|
301
|
+
};
|
|
283
302
|
const settleDispatch = async (k, wire, request, hooks, progress) => {
|
|
284
303
|
log.debug("dispatch", { trait: wire.seed.trait, event: request.event, mode: wire.mode, legs: wire.serverLegs.length, success: wire.response.success, states: wire.response.states, effects: (wire.response.clientEffectsByTrait ?? []).map((e) => `${e.traitName}:${e.effect[0]}:${e.effect[1] ?? ""}`), emitted: wire.response.emittedEvents.map((e) => e.event) });
|
|
285
304
|
trace(k, wire.response);
|
|
@@ -441,6 +460,7 @@ function createKernelClient(opts) {
|
|
|
441
460
|
framePause: () => loaded?.framePause(),
|
|
442
461
|
frameResume: () => loaded?.frameResume(),
|
|
443
462
|
startFrames: (onFrame, schedule = defaultFrameScheduler) => {
|
|
463
|
+
framePainters.add(onFrame);
|
|
444
464
|
const presence = getTraitPresence();
|
|
445
465
|
const releases = visibleGroups.map(([, group]) => presence.watch(group));
|
|
446
466
|
let stopped = false;
|
|
@@ -486,6 +506,7 @@ function createKernelClient(opts) {
|
|
|
486
506
|
}).catch((error) => log.error("kernel-frame-failed", { error: error.message }));
|
|
487
507
|
return () => {
|
|
488
508
|
stopped = true;
|
|
509
|
+
framePainters.delete(onFrame);
|
|
489
510
|
driver?.stop();
|
|
490
511
|
releases.forEach((release2) => release2());
|
|
491
512
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { KernelGpuHost } from '@almadar/shell-runtime/kernel/wire';
|
|
1
2
|
import { KernelModule as KernelModule$1 } from '@almadar/shell-browser/kv';
|
|
2
3
|
import './verification-C5pTeMJv.js';
|
|
3
4
|
|
|
@@ -11,6 +12,12 @@ import './verification-C5pTeMJv.js';
|
|
|
11
12
|
/** The `Kernel` class `@almadar/kernel` exports: JSON strings in, JSON strings out. */
|
|
12
13
|
interface KernelInstance {
|
|
13
14
|
dispatch(traitName: string, entityId: string | undefined, event: string, payloadJson?: string): string;
|
|
15
|
+
/** Install the GPU answerer: every `gpu/` ask is held in the kernel and answered in ask order, and each outcome's route event reaches `completed` as `HeldGpuCompletion` JSON (`null` when it takes no route) for the host to dispatch with `dispatchHeld`. */
|
|
16
|
+
installGpu(gpu: KernelGpuHost, completed: (completionJson: string) => void): void;
|
|
17
|
+
/** `dispatch` with the payload the kernel holds under `heldPayload` (a gpu completion's), taken once. */
|
|
18
|
+
dispatchHeld(traitName: string, entityId: string | undefined, event: string, heldPayload: number): string;
|
|
19
|
+
/** Drop a held completion payload no dispatch will take. */
|
|
20
|
+
dropHeldPayload(heldPayload: number): boolean;
|
|
14
21
|
/** A flight for work the kernel did not wire (a dispatch the host ran on its own, a frame's browser leg). */
|
|
15
22
|
openFlight(): number;
|
|
16
23
|
/** `applyServerResponse` in flight order (EXEC-CONC-8): a `FoldProgressWire` as JSON, folded now or queued behind an older flight. */
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { FieldValue, EntityRow, EventKey, EnterAnimation } from '@almadar/core';
|
|
2
2
|
export { AssetLoadStatus, BridgeHealth, CheckStatus, EffectTrace, EventLogEntry, OrbitalVerificationAPI, ServerResponseTrace, TraitStateSnapshot, TransitionTrace, VerificationCheck, VerificationSnapshot, VerificationSummary, getNestedValue } from '@almadar/core';
|
|
3
3
|
export { p as profilerOnRender, u as usePerfBuffer } from '../perf-CKiBKbkw.js';
|
|
4
|
-
export { T as TraitSnapshotGetter, b as bindCanvasCapture, a as bindConfigApplier, c as bindEventBus, d as bindLastDrawables, e as bindTraitStateGetter, f as clearVerification, g as getAllChecks, h as getBridgeHealth, i as getSnapshot, j as getSummary, k as getTraitSnapshots, l as getTransitions, m as getTransitionsForTrait, r as recordOrbitalResponse, n as recordServerResponse, o as recordTransition, p as recordingTransport, q as registerCheck, s as registerTraitSnapshot, t as serverEffectTraces, u as subscribeToVerification, v as updateAssetStatus, w as updateBridgeHealth, x as updateCheck, y as verifierAttached, z as waitForTransition } from '../verificationRegistry-
|
|
4
|
+
export { T as TraitSnapshotGetter, b as bindCanvasCapture, a as bindConfigApplier, c as bindEventBus, d as bindLastDrawables, e as bindTraitStateGetter, f as clearVerification, g as getAllChecks, h as getBridgeHealth, i as getSnapshot, j as getSummary, k as getTraitSnapshots, l as getTransitions, m as getTransitionsForTrait, r as recordOrbitalResponse, n as recordServerResponse, o as recordTransition, p as recordingTransport, q as registerCheck, s as registerTraitSnapshot, t as serverEffectTraces, u as subscribeToVerification, v as updateAssetStatus, w as updateBridgeHealth, x as updateCheck, y as verifierAttached, z as waitForTransition } from '../verificationRegistry-oopV1J1n.js';
|
|
5
5
|
export { A as ApplyOperatorInput, a as ApplyOperatorResult, C as ContentSegment, E as EDITOR_MOTIONS, b as EDITOR_OPERATORS, c as EditorMotion, d as EditorOperator, I as INDENT_UNIT, L as LessonSegment, e as applyMotion, f as applyOperator, i as isEditorMotion, g as isEditorOperator, m as motionRange, p as parseContentSegments, h as parseLessonSegments, j as parseMarkdownWithCodeBlocks } from '../parseLessonSegments-GpCeMrb2.js';
|
|
6
6
|
export { D as DENSITY_ELEMENT_VARS, a as DENSITY_SPACING_VARS, b as DIAGRAM_VARS, E as ELEVATION_VARS, F as FlatVarEntry, G as GEOMETRY_VARS, I as ICONOGRAPHY_VARS, L as LEGACY_PREFIXES, M as MOTION_DURATION_KEYS, c as MOTION_EASING_KEYS, d as MOTION_INTENT_VARS, e as MOTION_SHAPE_VARS, S as SCENE_VARS, f as SURFACE_VARS, g as StringValueKey, h as TYPE_FAMILY_VARS, i as TYPE_HEADING_VARS, j as TYPE_INTENT_VARS, k as TYPE_SIZE_KEYS, T as ThemeMode, l as enterKeyframe, r as resolveThemeForRuntime, t as themeTokensToCssVars } from '../themeTokens-CRd8AEDF.js';
|
|
7
7
|
export { a as PERF_NAMESPACE, P as PerfEntry, c as clearPerf, p as perfEnd, g as perfGauge, b as perfStart, d as perfTime, i as perfTimeAsync } from '../perf-Dr28-AgT.js';
|
|
8
8
|
import 'react';
|
|
9
9
|
import '../verification-C5pTeMJv.js';
|
|
10
|
-
import '../
|
|
11
|
-
import '../fx-CmQjnHmT.js';
|
|
10
|
+
import '../fx-Br8zjvu9.js';
|
|
12
11
|
import 'lucide-react';
|
|
13
12
|
import '../EventBusProvider-BFFHfN4O.js';
|
|
14
13
|
import '@almadar/shell-runtime/client/EventTransport';
|
package/dist/lib/index.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { EDITOR_MOTIONS, EDITOR_OPERATORS, ENTER_SLOT_CLASS, INDENT_UNIT, MAX_ENTER_DELAY, applyMotion, applyOperator, asEnterAnimation, clearDebugEvents, clearEntityProvider, clearGuardHistory, clearTicks, clearTraits, computeLineDiff, debug, debugCollision, debugError, debugGameState, debugGroup, debugGroupEnd, debugInput, debugPhysics, debugTable, debugTime, debugTimeEnd, debugWarn, enterClassName, getAllTicks, getAllTraits, getDebugEvents, getEntitiesByType, getEntityById, getEntitySnapshot, getEventsBySource, getEventsByType, getGuardEvaluationsForTrait, getGuardHistory, getNestedValue, getRecentEvents, getRecentGuardEvaluations, getTick, getTrait, initDebugShortcut, isDebugEnabled, isEditorMotion, isEditorOperator, logDebugEvent, logEffectExecuted, logError, logEventFired, logInfo, logStateChange, logWarning, motionRange, onDebugToggle, parseContentSegments, parseLessonSegments, parseMarkdownWithCodeBlocks2 as parseMarkdownWithCodeBlocks, profilerOnRender, recordGuardEvaluation, registerTick, registerTrait, resolveImageUrl, setDebugEnabled, setEntityProvider, setTickActive, subscribeToDebugEvents, subscribeToGuardChanges, subscribeToTickChanges, subscribeToTraitChanges, toggleDebug, unregisterTick, unregisterTrait, updateGuardResult, updateTickExecution, updateTraitState, usePerfBuffer } from '../chunk-
|
|
2
|
+
export { EDITOR_MOTIONS, EDITOR_OPERATORS, ENTER_SLOT_CLASS, INDENT_UNIT, MAX_ENTER_DELAY, applyMotion, applyOperator, asEnterAnimation, bindCanvasCapture, bindConfigApplier, bindEventBus, bindLastDrawables, bindTraitStateGetter, clearDebugEvents, clearEntityProvider, clearGuardHistory, clearTicks, clearTraits, clearVerification, computeLineDiff, debug, debugCollision, debugError, debugGameState, debugGroup, debugGroupEnd, debugInput, debugPhysics, debugTable, debugTime, debugTimeEnd, debugWarn, enterClassName, getAllChecks, getAllTicks, getAllTraits, getBridgeHealth, getDebugEvents, getEntitiesByType, getEntityById, getEntitySnapshot, getEventsBySource, getEventsByType, getGuardEvaluationsForTrait, getGuardHistory, getNestedValue, getRecentEvents, getRecentGuardEvaluations, getSnapshot, getSummary, getTick, getTrait, getTraitSnapshots, getTransitions, getTransitionsForTrait, initDebugShortcut, isDebugEnabled, isEditableTarget, isEditorMotion, isEditorOperator, keyMapCode, logDebugEvent, logEffectExecuted, logError, logEventFired, logInfo, logStateChange, logWarning, motionRange, onDebugToggle, parseContentSegments, parseLessonSegments, parseMarkdownWithCodeBlocks2 as parseMarkdownWithCodeBlocks, profilerOnRender, recordGuardEvaluation, recordOrbitalResponse, recordServerResponse, recordTransition, recordingTransport, registerCheck, registerTick, registerTrait, registerTraitSnapshot, resolveImageUrl, resolveKeyMapEvent, serverEffectTraces, setDebugEnabled, setEntityProvider, setTickActive, subscribeToDebugEvents, subscribeToGuardChanges, subscribeToTickChanges, subscribeToTraitChanges, subscribeToVerification, toggleDebug, unregisterTick, unregisterTrait, updateAssetStatus, updateBridgeHealth, updateCheck, updateGuardResult, updateTickExecution, updateTraitState, usePerfBuffer, verifierAttached, waitForTransition } from '../chunk-2WGR4TDJ.js';
|
|
3
3
|
export { arrowheadPath, brainIconPath, eightPointedStarPath, gearTeethPath, lockIconPath, pipeIconPath } from '../chunk-TZZBINQY.js';
|
|
4
|
-
export {
|
|
5
|
-
export { PERF_NAMESPACE, clearPerf, perfEnd, perfGauge, perfStart, perfTime, perfTimeAsync } from '../chunk-3VZ36ZKO.js';
|
|
4
|
+
export { PERF_NAMESPACE, clearPerf, perfEnd, perfGauge, perfStart, perfTime, perfTimeAsync } from '../chunk-ZDRDJKYB.js';
|
|
6
5
|
export { DENSITY_ELEMENT_VARS, DENSITY_SPACING_VARS, DIAGRAM_VARS, ELEVATION_VARS, GEOMETRY_VARS, ICONOGRAPHY_VARS, LEGACY_PREFIXES, MOTION_DURATION_KEYS, MOTION_EASING_KEYS, MOTION_INTENT_VARS, MOTION_SHAPE_VARS, SCENE_VARS, SURFACE_VARS, TYPE_FAMILY_VARS, TYPE_HEADING_VARS, TYPE_INTENT_VARS, TYPE_SIZE_KEYS, enterKeyframe, resolveThemeForRuntime, themeTokensToCssVars } from '../chunk-3BBUBJFF.js';
|
|
7
6
|
import '../chunk-4YXBKHHM.js';
|
|
8
7
|
import '../chunk-G7DCAZ22.js';
|
package/dist/providers/index.css
CHANGED
|
@@ -1160,7 +1160,195 @@ body {
|
|
|
1160
1160
|
counter-reset: katexEqnNo mmlEqnNo;
|
|
1161
1161
|
}
|
|
1162
1162
|
|
|
1163
|
-
/* src/lib/drawable/
|
|
1163
|
+
/* src/lib/drawable/orbital/OrbitalCanvas3D.css */
|
|
1164
|
+
.game-canvas-3d {
|
|
1165
|
+
background: #1a1a2e;
|
|
1166
|
+
border-radius: 8px;
|
|
1167
|
+
}
|
|
1168
|
+
.game-canvas-3d canvas {
|
|
1169
|
+
display: block;
|
|
1170
|
+
width: 100%;
|
|
1171
|
+
height: 100%;
|
|
1172
|
+
}
|
|
1173
|
+
.game-canvas-3d--loading {
|
|
1174
|
+
display: flex;
|
|
1175
|
+
align-items: center;
|
|
1176
|
+
justify-content: center;
|
|
1177
|
+
background:
|
|
1178
|
+
linear-gradient(
|
|
1179
|
+
135deg,
|
|
1180
|
+
#1a1a2e 0%,
|
|
1181
|
+
#16213e 100%);
|
|
1182
|
+
}
|
|
1183
|
+
.game-canvas-3d__loading {
|
|
1184
|
+
padding: 20px 40px;
|
|
1185
|
+
background: rgba(255, 255, 255, 0.1);
|
|
1186
|
+
border-radius: 8px;
|
|
1187
|
+
color: #ffffff;
|
|
1188
|
+
font-size: 16px;
|
|
1189
|
+
animation: pulse 1.5s ease-in-out infinite;
|
|
1190
|
+
}
|
|
1191
|
+
.game-canvas-3d--error {
|
|
1192
|
+
display: flex;
|
|
1193
|
+
align-items: center;
|
|
1194
|
+
justify-content: center;
|
|
1195
|
+
background:
|
|
1196
|
+
linear-gradient(
|
|
1197
|
+
135deg,
|
|
1198
|
+
#2e1a1a 0%,
|
|
1199
|
+
#3e1616 100%);
|
|
1200
|
+
}
|
|
1201
|
+
.game-canvas-3d__error {
|
|
1202
|
+
position: relative;
|
|
1203
|
+
z-index: 1;
|
|
1204
|
+
padding: 20px 40px;
|
|
1205
|
+
background: rgba(255, 0, 0, 0.2);
|
|
1206
|
+
border: 1px solid rgba(255, 0, 0, 0.3);
|
|
1207
|
+
border-radius: 8px;
|
|
1208
|
+
color: #ff6b6b;
|
|
1209
|
+
font-size: 14px;
|
|
1210
|
+
}
|
|
1211
|
+
.game-canvas-3d__coordinates {
|
|
1212
|
+
position: absolute;
|
|
1213
|
+
bottom: 20px;
|
|
1214
|
+
left: 20px;
|
|
1215
|
+
padding: 8px 16px;
|
|
1216
|
+
background: rgba(0, 0, 0, 0.7);
|
|
1217
|
+
border-radius: 4px;
|
|
1218
|
+
color: #ffffff;
|
|
1219
|
+
font-family: monospace;
|
|
1220
|
+
font-size: 12px;
|
|
1221
|
+
pointer-events: none;
|
|
1222
|
+
z-index: 10;
|
|
1223
|
+
}
|
|
1224
|
+
.game-canvas-3d__tile-info {
|
|
1225
|
+
position: absolute;
|
|
1226
|
+
top: 20px;
|
|
1227
|
+
left: 20px;
|
|
1228
|
+
padding: 12px 16px;
|
|
1229
|
+
background: rgba(0, 0, 0, 0.8);
|
|
1230
|
+
border-radius: 6px;
|
|
1231
|
+
color: #ffffff;
|
|
1232
|
+
pointer-events: none;
|
|
1233
|
+
z-index: 10;
|
|
1234
|
+
min-width: 120px;
|
|
1235
|
+
}
|
|
1236
|
+
.tile-info__type {
|
|
1237
|
+
font-weight: 600;
|
|
1238
|
+
font-size: 14px;
|
|
1239
|
+
text-transform: capitalize;
|
|
1240
|
+
margin-bottom: 4px;
|
|
1241
|
+
}
|
|
1242
|
+
.tile-info__terrain {
|
|
1243
|
+
font-size: 12px;
|
|
1244
|
+
color: #aaaaaa;
|
|
1245
|
+
}
|
|
1246
|
+
@keyframes pulse {
|
|
1247
|
+
0%, 100% {
|
|
1248
|
+
opacity: 1;
|
|
1249
|
+
}
|
|
1250
|
+
50% {
|
|
1251
|
+
opacity: 0.5;
|
|
1252
|
+
}
|
|
1253
|
+
}
|
|
1254
|
+
.game-canvas-3d[data-camera-mode=isometric]::before {
|
|
1255
|
+
content: "Isometric";
|
|
1256
|
+
position: absolute;
|
|
1257
|
+
top: 20px;
|
|
1258
|
+
right: 20px;
|
|
1259
|
+
padding: 6px 12px;
|
|
1260
|
+
background: rgba(0, 0, 0, 0.6);
|
|
1261
|
+
border-radius: 4px;
|
|
1262
|
+
color: #ffffff;
|
|
1263
|
+
font-size: 11px;
|
|
1264
|
+
text-transform: uppercase;
|
|
1265
|
+
letter-spacing: 1px;
|
|
1266
|
+
pointer-events: none;
|
|
1267
|
+
}
|
|
1268
|
+
.game-canvas-3d[data-camera-mode=perspective]::before {
|
|
1269
|
+
content: "Perspective";
|
|
1270
|
+
position: absolute;
|
|
1271
|
+
top: 20px;
|
|
1272
|
+
right: 20px;
|
|
1273
|
+
padding: 6px 12px;
|
|
1274
|
+
background: rgba(0, 0, 0, 0.6);
|
|
1275
|
+
border-radius: 4px;
|
|
1276
|
+
color: #ffffff;
|
|
1277
|
+
font-size: 11px;
|
|
1278
|
+
text-transform: uppercase;
|
|
1279
|
+
letter-spacing: 1px;
|
|
1280
|
+
pointer-events: none;
|
|
1281
|
+
}
|
|
1282
|
+
.game-canvas-3d[data-camera-mode=top-down]::before {
|
|
1283
|
+
content: "Top Down";
|
|
1284
|
+
position: absolute;
|
|
1285
|
+
top: 20px;
|
|
1286
|
+
right: 20px;
|
|
1287
|
+
padding: 6px 12px;
|
|
1288
|
+
background: rgba(0, 0, 0, 0.6);
|
|
1289
|
+
border-radius: 4px;
|
|
1290
|
+
color: #ffffff;
|
|
1291
|
+
font-size: 11px;
|
|
1292
|
+
text-transform: uppercase;
|
|
1293
|
+
letter-spacing: 1px;
|
|
1294
|
+
pointer-events: none;
|
|
1295
|
+
}
|
|
1296
|
+
.game-canvas-3d[data-overlay=hidden] .game-canvas-3d__coordinates,
|
|
1297
|
+
.game-canvas-3d[data-overlay=hidden] .game-canvas-3d__tile-info,
|
|
1298
|
+
.game-canvas-3d[data-overlay=hidden]::before {
|
|
1299
|
+
display: none;
|
|
1300
|
+
}
|
|
1301
|
+
.game-canvas-3d[data-orientation=rotated] {
|
|
1302
|
+
}
|
|
1303
|
+
.game-canvas-3d canvas {
|
|
1304
|
+
cursor: crosshair;
|
|
1305
|
+
}
|
|
1306
|
+
.game-canvas-3d canvas:active {
|
|
1307
|
+
cursor: grabbing;
|
|
1308
|
+
}
|
|
1309
|
+
@media (max-width: 768px) {
|
|
1310
|
+
.game-canvas-3d__coordinates,
|
|
1311
|
+
.game-canvas-3d__tile-info {
|
|
1312
|
+
font-size: 10px;
|
|
1313
|
+
padding: 6px 10px;
|
|
1314
|
+
}
|
|
1315
|
+
.game-canvas-3d::before {
|
|
1316
|
+
font-size: 9px;
|
|
1317
|
+
padding: 4px 8px;
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
.game-canvas-3d:focus {
|
|
1321
|
+
outline: 2px solid #4488ff;
|
|
1322
|
+
outline-offset: 2px;
|
|
1323
|
+
}
|
|
1324
|
+
.game-canvas-3d canvas {
|
|
1325
|
+
transition: opacity 0.3s ease;
|
|
1326
|
+
}
|
|
1327
|
+
.game-canvas-3d__context-menu {
|
|
1328
|
+
position: absolute;
|
|
1329
|
+
background: rgba(0, 0, 0, 0.9);
|
|
1330
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
1331
|
+
border-radius: 6px;
|
|
1332
|
+
padding: 8px 0;
|
|
1333
|
+
min-width: 150px;
|
|
1334
|
+
z-index: 100;
|
|
1335
|
+
}
|
|
1336
|
+
.game-canvas-3d__context-menu-item {
|
|
1337
|
+
padding: 8px 16px;
|
|
1338
|
+
color: #ffffff;
|
|
1339
|
+
cursor: pointer;
|
|
1340
|
+
font-size: 13px;
|
|
1341
|
+
transition: background 0.15s ease;
|
|
1342
|
+
}
|
|
1343
|
+
.game-canvas-3d__context-menu-item:hover {
|
|
1344
|
+
background: rgba(255, 255, 255, 0.1);
|
|
1345
|
+
}
|
|
1346
|
+
.game-canvas-3d__context-menu-item--danger {
|
|
1347
|
+
color: #ff6b6b;
|
|
1348
|
+
}
|
|
1349
|
+
.game-canvas-3d__context-menu-item--danger:hover {
|
|
1350
|
+
background: rgba(255, 0, 0, 0.2);
|
|
1351
|
+
}
|
|
1164
1352
|
.canvas-3d-loading {
|
|
1165
1353
|
position: absolute;
|
|
1166
1354
|
inset: 0;
|
|
@@ -1312,8 +1500,6 @@ body {
|
|
|
1312
1500
|
font-size: 12px;
|
|
1313
1501
|
}
|
|
1314
1502
|
}
|
|
1315
|
-
|
|
1316
|
-
/* src/lib/drawable/three/Canvas3DErrorBoundary.css */
|
|
1317
1503
|
.canvas-3d-error {
|
|
1318
1504
|
position: absolute;
|
|
1319
1505
|
inset: 0;
|
|
@@ -1476,194 +1662,6 @@ body {
|
|
|
1476
1662
|
}
|
|
1477
1663
|
}
|
|
1478
1664
|
|
|
1479
|
-
/* src/lib/drawable/three/Canvas3DHost.css */
|
|
1480
|
-
.game-canvas-3d {
|
|
1481
|
-
background: #1a1a2e;
|
|
1482
|
-
border-radius: 8px;
|
|
1483
|
-
}
|
|
1484
|
-
.game-canvas-3d canvas {
|
|
1485
|
-
display: block;
|
|
1486
|
-
width: 100%;
|
|
1487
|
-
height: 100%;
|
|
1488
|
-
}
|
|
1489
|
-
.game-canvas-3d--loading {
|
|
1490
|
-
display: flex;
|
|
1491
|
-
align-items: center;
|
|
1492
|
-
justify-content: center;
|
|
1493
|
-
background:
|
|
1494
|
-
linear-gradient(
|
|
1495
|
-
135deg,
|
|
1496
|
-
#1a1a2e 0%,
|
|
1497
|
-
#16213e 100%);
|
|
1498
|
-
}
|
|
1499
|
-
.game-canvas-3d__loading {
|
|
1500
|
-
padding: 20px 40px;
|
|
1501
|
-
background: rgba(255, 255, 255, 0.1);
|
|
1502
|
-
border-radius: 8px;
|
|
1503
|
-
color: #ffffff;
|
|
1504
|
-
font-size: 16px;
|
|
1505
|
-
animation: pulse 1.5s ease-in-out infinite;
|
|
1506
|
-
}
|
|
1507
|
-
.game-canvas-3d--error {
|
|
1508
|
-
display: flex;
|
|
1509
|
-
align-items: center;
|
|
1510
|
-
justify-content: center;
|
|
1511
|
-
background:
|
|
1512
|
-
linear-gradient(
|
|
1513
|
-
135deg,
|
|
1514
|
-
#2e1a1a 0%,
|
|
1515
|
-
#3e1616 100%);
|
|
1516
|
-
}
|
|
1517
|
-
.game-canvas-3d__error {
|
|
1518
|
-
padding: 20px 40px;
|
|
1519
|
-
background: rgba(255, 0, 0, 0.2);
|
|
1520
|
-
border: 1px solid rgba(255, 0, 0, 0.3);
|
|
1521
|
-
border-radius: 8px;
|
|
1522
|
-
color: #ff6b6b;
|
|
1523
|
-
font-size: 14px;
|
|
1524
|
-
}
|
|
1525
|
-
.game-canvas-3d__coordinates {
|
|
1526
|
-
position: absolute;
|
|
1527
|
-
bottom: 20px;
|
|
1528
|
-
left: 20px;
|
|
1529
|
-
padding: 8px 16px;
|
|
1530
|
-
background: rgba(0, 0, 0, 0.7);
|
|
1531
|
-
border-radius: 4px;
|
|
1532
|
-
color: #ffffff;
|
|
1533
|
-
font-family: monospace;
|
|
1534
|
-
font-size: 12px;
|
|
1535
|
-
pointer-events: none;
|
|
1536
|
-
z-index: 10;
|
|
1537
|
-
}
|
|
1538
|
-
.game-canvas-3d__tile-info {
|
|
1539
|
-
position: absolute;
|
|
1540
|
-
top: 20px;
|
|
1541
|
-
left: 20px;
|
|
1542
|
-
padding: 12px 16px;
|
|
1543
|
-
background: rgba(0, 0, 0, 0.8);
|
|
1544
|
-
border-radius: 6px;
|
|
1545
|
-
color: #ffffff;
|
|
1546
|
-
pointer-events: none;
|
|
1547
|
-
z-index: 10;
|
|
1548
|
-
min-width: 120px;
|
|
1549
|
-
}
|
|
1550
|
-
.tile-info__type {
|
|
1551
|
-
font-weight: 600;
|
|
1552
|
-
font-size: 14px;
|
|
1553
|
-
text-transform: capitalize;
|
|
1554
|
-
margin-bottom: 4px;
|
|
1555
|
-
}
|
|
1556
|
-
.tile-info__terrain {
|
|
1557
|
-
font-size: 12px;
|
|
1558
|
-
color: #aaaaaa;
|
|
1559
|
-
}
|
|
1560
|
-
@keyframes pulse {
|
|
1561
|
-
0%, 100% {
|
|
1562
|
-
opacity: 1;
|
|
1563
|
-
}
|
|
1564
|
-
50% {
|
|
1565
|
-
opacity: 0.5;
|
|
1566
|
-
}
|
|
1567
|
-
}
|
|
1568
|
-
.game-canvas-3d[data-camera-mode=isometric]::before {
|
|
1569
|
-
content: "Isometric";
|
|
1570
|
-
position: absolute;
|
|
1571
|
-
top: 20px;
|
|
1572
|
-
right: 20px;
|
|
1573
|
-
padding: 6px 12px;
|
|
1574
|
-
background: rgba(0, 0, 0, 0.6);
|
|
1575
|
-
border-radius: 4px;
|
|
1576
|
-
color: #ffffff;
|
|
1577
|
-
font-size: 11px;
|
|
1578
|
-
text-transform: uppercase;
|
|
1579
|
-
letter-spacing: 1px;
|
|
1580
|
-
pointer-events: none;
|
|
1581
|
-
}
|
|
1582
|
-
.game-canvas-3d[data-camera-mode=perspective]::before {
|
|
1583
|
-
content: "Perspective";
|
|
1584
|
-
position: absolute;
|
|
1585
|
-
top: 20px;
|
|
1586
|
-
right: 20px;
|
|
1587
|
-
padding: 6px 12px;
|
|
1588
|
-
background: rgba(0, 0, 0, 0.6);
|
|
1589
|
-
border-radius: 4px;
|
|
1590
|
-
color: #ffffff;
|
|
1591
|
-
font-size: 11px;
|
|
1592
|
-
text-transform: uppercase;
|
|
1593
|
-
letter-spacing: 1px;
|
|
1594
|
-
pointer-events: none;
|
|
1595
|
-
}
|
|
1596
|
-
.game-canvas-3d[data-camera-mode=top-down]::before {
|
|
1597
|
-
content: "Top Down";
|
|
1598
|
-
position: absolute;
|
|
1599
|
-
top: 20px;
|
|
1600
|
-
right: 20px;
|
|
1601
|
-
padding: 6px 12px;
|
|
1602
|
-
background: rgba(0, 0, 0, 0.6);
|
|
1603
|
-
border-radius: 4px;
|
|
1604
|
-
color: #ffffff;
|
|
1605
|
-
font-size: 11px;
|
|
1606
|
-
text-transform: uppercase;
|
|
1607
|
-
letter-spacing: 1px;
|
|
1608
|
-
pointer-events: none;
|
|
1609
|
-
}
|
|
1610
|
-
.game-canvas-3d[data-overlay=hidden] .game-canvas-3d__coordinates,
|
|
1611
|
-
.game-canvas-3d[data-overlay=hidden] .game-canvas-3d__tile-info,
|
|
1612
|
-
.game-canvas-3d[data-overlay=hidden]::before {
|
|
1613
|
-
display: none;
|
|
1614
|
-
}
|
|
1615
|
-
.game-canvas-3d[data-orientation=rotated] {
|
|
1616
|
-
}
|
|
1617
|
-
.game-canvas-3d canvas {
|
|
1618
|
-
cursor: crosshair;
|
|
1619
|
-
}
|
|
1620
|
-
.game-canvas-3d canvas:active {
|
|
1621
|
-
cursor: grabbing;
|
|
1622
|
-
}
|
|
1623
|
-
@media (max-width: 768px) {
|
|
1624
|
-
.game-canvas-3d__coordinates,
|
|
1625
|
-
.game-canvas-3d__tile-info {
|
|
1626
|
-
font-size: 10px;
|
|
1627
|
-
padding: 6px 10px;
|
|
1628
|
-
}
|
|
1629
|
-
.game-canvas-3d::before {
|
|
1630
|
-
font-size: 9px;
|
|
1631
|
-
padding: 4px 8px;
|
|
1632
|
-
}
|
|
1633
|
-
}
|
|
1634
|
-
.game-canvas-3d:focus {
|
|
1635
|
-
outline: 2px solid #4488ff;
|
|
1636
|
-
outline-offset: 2px;
|
|
1637
|
-
}
|
|
1638
|
-
.game-canvas-3d canvas {
|
|
1639
|
-
transition: opacity 0.3s ease;
|
|
1640
|
-
}
|
|
1641
|
-
.game-canvas-3d__context-menu {
|
|
1642
|
-
position: absolute;
|
|
1643
|
-
background: rgba(0, 0, 0, 0.9);
|
|
1644
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
1645
|
-
border-radius: 6px;
|
|
1646
|
-
padding: 8px 0;
|
|
1647
|
-
min-width: 150px;
|
|
1648
|
-
z-index: 100;
|
|
1649
|
-
}
|
|
1650
|
-
.game-canvas-3d__context-menu-item {
|
|
1651
|
-
padding: 8px 16px;
|
|
1652
|
-
color: #ffffff;
|
|
1653
|
-
cursor: pointer;
|
|
1654
|
-
font-size: 13px;
|
|
1655
|
-
transition: background 0.15s ease;
|
|
1656
|
-
}
|
|
1657
|
-
.game-canvas-3d__context-menu-item:hover {
|
|
1658
|
-
background: rgba(255, 255, 255, 0.1);
|
|
1659
|
-
}
|
|
1660
|
-
.game-canvas-3d__context-menu-item--danger {
|
|
1661
|
-
color: #ff6b6b;
|
|
1662
|
-
}
|
|
1663
|
-
.game-canvas-3d__context-menu-item--danger:hover {
|
|
1664
|
-
background: rgba(255, 0, 0, 0.2);
|
|
1665
|
-
}
|
|
1666
|
-
|
|
1667
1665
|
/* src/components/core/organisms/debug/RuntimeDebugger.css */
|
|
1668
1666
|
.runtime-debugger {
|
|
1669
1667
|
font-family:
|