@almadar/ui 5.105.0 → 5.108.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.
Files changed (146) hide show
  1. package/dist/avl/index.cjs +2127 -5818
  2. package/dist/avl/index.js +1234 -4925
  3. package/dist/components/{game/2d → core}/atoms/GameIcon.d.ts +1 -1
  4. package/dist/components/core/atoms/index.d.ts +2 -1
  5. package/dist/components/core/molecules/index.d.ts +1 -1
  6. package/dist/components/core/organisms/index.d.ts +1 -1
  7. package/dist/components/core/templates/index.d.ts +1 -2
  8. package/dist/components/game/{2d/atoms → atoms}/ChoiceButton.d.ts +1 -1
  9. package/dist/components/game/{2d/atoms → atoms}/ControlButton.d.ts +1 -1
  10. package/dist/components/game/atoms/DrawShape.d.ts +50 -0
  11. package/dist/components/game/atoms/DrawSprite.d.ts +47 -0
  12. package/dist/components/game/atoms/DrawText.d.ts +31 -0
  13. package/dist/components/game/{2d/atoms → atoms}/GameAudioToggle.d.ts +1 -1
  14. package/dist/components/game/{2d/atoms → atoms}/MiniMap.d.ts +1 -1
  15. package/dist/components/game/{2d/atoms → atoms}/ScoreDisplay.d.ts +1 -1
  16. package/dist/components/game/{2d/atoms → atoms}/StateIndicator.d.ts +1 -1
  17. package/dist/components/game/{2d/molecules → molecules}/ActionTile.d.ts +1 -1
  18. package/dist/components/game/molecules/Canvas.d.ts +96 -0
  19. package/dist/components/game/molecules/Canvas2D.d.ts +120 -0
  20. package/dist/components/game/{2d/molecules → molecules}/ControlGrid.d.ts +1 -1
  21. package/dist/components/game/molecules/DrawShapeLayer.d.ts +19 -0
  22. package/dist/components/game/molecules/DrawSpriteLayer.d.ts +21 -0
  23. package/dist/components/game/molecules/DrawTextLayer.d.ts +22 -0
  24. package/dist/components/game/{2d/molecules → molecules}/GameHud.d.ts +1 -1
  25. package/dist/components/game/{2d/molecules → molecules}/StatBadge.d.ts +1 -1
  26. package/dist/components/game/{2d/molecules → molecules}/StateNode.d.ts +1 -1
  27. package/dist/components/game/{2d/molecules → molecules}/TraitSlot.d.ts +1 -1
  28. package/dist/components/game/{2d/molecules → molecules}/TraitStateViewer.d.ts +1 -1
  29. package/dist/components/game/{2d/molecules → molecules}/TransitionArrow.d.ts +1 -1
  30. package/dist/components/game/molecules/index.d.ts +39 -0
  31. package/dist/components/game/patterns.d.ts +20 -0
  32. package/dist/components/index.cjs +2417 -5988
  33. package/dist/components/index.js +1520 -5074
  34. package/dist/{components/game/shared/hooks → hooks}/useCamera.d.ts +1 -1
  35. package/dist/{components/game/shared/hooks → hooks}/useUnitSpriteAtlas.d.ts +2 -2
  36. package/dist/lib/drawable/contract.d.ts +68 -0
  37. package/dist/lib/drawable/hitTest.d.ts +23 -0
  38. package/dist/lib/drawable/paintDispatch.d.ts +22 -0
  39. package/dist/lib/drawable/projector.d.ts +14 -0
  40. package/dist/lib/drawable/projector3d.d.ts +20 -0
  41. package/dist/lib/drawable/three/Canvas3DHost.d.ts +178 -0
  42. package/dist/lib/drawable/three/Drawable3D.d.ts +20 -0
  43. package/dist/lib/drawable/three/GameCamera3D.d.ts +16 -0
  44. package/dist/lib/drawable/three/game3dTheme.d.ts +14 -0
  45. package/dist/{components/game/shared → lib/drawable/three}/hooks/useGameCanvas3DEvents.d.ts +4 -3
  46. package/dist/{components/game/3d → lib/drawable/three}/index.cjs +2223 -4466
  47. package/dist/{components/game/3d → lib/drawable/three}/index.css +3 -3
  48. package/dist/lib/drawable/three/index.d.ts +39 -0
  49. package/dist/{components/game/3d → lib/drawable/three}/index.js +2132 -4375
  50. package/dist/lib/drawable/three/mesh3d.d.ts +28 -0
  51. package/dist/{components/game/shared/index.d.ts → lib/gameShared.d.ts} +1 -2
  52. package/dist/lib/imageCache.d.ts +9 -0
  53. package/dist/lib/painter2d.d.ts +81 -0
  54. package/dist/{components/game/shared/lib → lib}/puzzleObject.d.ts +11 -2
  55. package/dist/lib/webPainter2d.d.ts +7 -0
  56. package/dist/marketing/index.cjs +10 -0
  57. package/dist/marketing/index.js +10 -0
  58. package/dist/{components/game/shared/providers → providers}/GameAudioProvider.d.ts +1 -1
  59. package/dist/providers/index.cjs +2524 -5889
  60. package/dist/providers/index.d.ts +2 -0
  61. package/dist/providers/index.js +1743 -5112
  62. package/dist/runtime/index.cjs +1982 -5673
  63. package/dist/runtime/index.js +1208 -4899
  64. package/package.json +13 -13
  65. package/dist/components/game/2d/atoms/ActionButton.d.ts +0 -31
  66. package/dist/components/game/2d/atoms/ComboCounter.d.ts +0 -20
  67. package/dist/components/game/2d/atoms/DamageNumber.d.ts +0 -18
  68. package/dist/components/game/2d/atoms/GameCard.d.ts +0 -34
  69. package/dist/components/game/2d/atoms/ItemSlot.d.ts +0 -31
  70. package/dist/components/game/2d/atoms/ResourceCounter.d.ts +0 -26
  71. package/dist/components/game/2d/atoms/Sprite.d.ts +0 -52
  72. package/dist/components/game/2d/atoms/StatusEffect.d.ts +0 -25
  73. package/dist/components/game/2d/atoms/TurnIndicator.d.ts +0 -22
  74. package/dist/components/game/2d/atoms/WaypointMarker.d.ts +0 -23
  75. package/dist/components/game/2d/molecules/Canvas2D.d.ts +0 -175
  76. package/dist/components/game/2d/molecules/EventLog.d.ts +0 -31
  77. package/dist/components/game/2d/molecules/InventoryGrid.d.ts +0 -35
  78. package/dist/components/game/2d/molecules/ObjectRulePanel.d.ts +0 -32
  79. package/dist/components/game/2d/molecules/ResourceBar.d.ts +0 -26
  80. package/dist/components/game/2d/molecules/RuleEditor.d.ts +0 -39
  81. package/dist/components/game/2d/molecules/SideCanvas2D.d.ts +0 -36
  82. package/dist/components/game/2d/molecules/VariablePanel.d.ts +0 -28
  83. package/dist/components/game/2d/molecules/index.d.ts +0 -66
  84. package/dist/components/game/2d/organisms/BuilderBoard.d.ts +0 -60
  85. package/dist/components/game/2d/organisms/ClassifierBoard.d.ts +0 -66
  86. package/dist/components/game/2d/organisms/DebuggerBoard.d.ts +0 -61
  87. package/dist/components/game/2d/organisms/EventHandlerBoard.d.ts +0 -42
  88. package/dist/components/game/2d/organisms/NegotiatorBoard.d.ts +0 -56
  89. package/dist/components/game/2d/organisms/SequencerBoard.d.ts +0 -69
  90. package/dist/components/game/2d/organisms/SimulatorBoard.d.ts +0 -58
  91. package/dist/components/game/2d/organisms/StateArchitectBoard.d.ts +0 -61
  92. package/dist/components/game/2d/templates/GameTemplate.d.ts +0 -35
  93. package/dist/components/game/3d/atoms/EventMarker3D.d.ts +0 -17
  94. package/dist/components/game/3d/atoms/SpriteBillboard3D.d.ts +0 -18
  95. package/dist/components/game/3d/index.d.ts +0 -13
  96. package/dist/components/game/3d/molecules/FeatureMesh3D.d.ts +0 -21
  97. package/dist/components/game/3d/molecules/GameCamera3D.d.ts +0 -35
  98. package/dist/components/game/3d/molecules/GameCanvas3D.d.ts +0 -259
  99. package/dist/components/game/3d/molecules/SideScene3D.d.ts +0 -31
  100. package/dist/components/game/3d/molecules/TileMesh3D.d.ts +0 -28
  101. package/dist/components/game/3d/molecules/UnitMesh3D.d.ts +0 -29
  102. package/dist/components/game/3d/molecules/index.d.ts +0 -35
  103. package/dist/components/game/3d/organisms/GameBoard3D.d.ts +0 -66
  104. package/dist/components/game/3d/patterns.d.ts +0 -20
  105. package/dist/components/game/3d/templates/GameCanvas3DBattleTemplate.d.ts +0 -82
  106. package/dist/components/game/3d/templates/GameCanvas3DCastleTemplate.d.ts +0 -87
  107. package/dist/components/game/3d/templates/GameCanvas3DWorldMapTemplate.d.ts +0 -95
  108. package/dist/components/game/shared/effects.d.ts +0 -253
  109. package/dist/components/game/shared/game3dTheme.d.ts +0 -55
  110. package/dist/components/game/shared/lib/game3dAssetManifest.d.ts +0 -48
  111. /package/dist/components/game/{2d/atoms → atoms}/DialogueBubble.d.ts +0 -0
  112. /package/dist/components/game/{2d/atoms → atoms}/HealthBar.d.ts +0 -0
  113. /package/dist/components/game/{2d/atoms → atoms}/TimerDisplay.d.ts +0 -0
  114. /package/dist/components/game/{2d/molecules → molecules}/ActionPalette.d.ts +0 -0
  115. /package/dist/components/game/{2d/molecules → molecules}/GameMenu.d.ts +0 -0
  116. /package/dist/components/game/{2d/molecules → molecules}/SequenceBar.d.ts +0 -0
  117. /package/dist/components/game/{2d/molecules → molecules}/StateGraph.d.ts +0 -0
  118. /package/dist/components/game/{2d/molecules → molecules}/StateJsonView.d.ts +0 -0
  119. /package/dist/components/game/{2d/templates → templates}/GameShell.d.ts +0 -0
  120. /package/dist/{components/game/shared/hooks → hooks}/useGameAudio.d.ts +0 -0
  121. /package/dist/{components/game/shared → hooks}/useImageCache.d.ts +0 -0
  122. /package/dist/{components/game/shared → lib}/boardEntity.d.ts +0 -0
  123. /package/dist/{components/game/3d/molecules → lib/drawable/three}/Camera3D.d.ts +0 -0
  124. /package/dist/{components/game/3d/molecules → lib/drawable/three}/Canvas3DErrorBoundary.d.ts +0 -0
  125. /package/dist/{components/game/3d/molecules → lib/drawable/three}/Canvas3DLoadingState.d.ts +0 -0
  126. /package/dist/{components/game/3d/molecules → lib/drawable/three}/Lighting3D.d.ts +0 -0
  127. /package/dist/{components/game/3d/molecules → lib/drawable/three}/ModelLoader.d.ts +0 -0
  128. /package/dist/{components/game/3d/molecules → lib/drawable/three}/Scene3D.d.ts +0 -0
  129. /package/dist/{components/game/shared → lib/drawable/three}/hooks/useAssetLoader.d.ts +0 -0
  130. /package/dist/{components/game/shared → lib/drawable/three}/hooks/useRaycaster.d.ts +0 -0
  131. /package/dist/{components/game/shared → lib/drawable/three}/hooks/useSceneGraph.d.ts +0 -0
  132. /package/dist/{components/game/shared → lib/drawable/three}/hooks/useThree.d.ts +0 -0
  133. /package/dist/{components/game/shared → lib/drawable/three}/lib/AssetLoader.d.ts +0 -0
  134. /package/dist/{components/game/shared → lib/drawable/three}/lib/culling.d.ts +0 -0
  135. /package/dist/{components/game/shared → lib/drawable/three}/lib/grid3D.d.ts +0 -0
  136. /package/dist/{components/game/shared/lib → lib}/editorUtils.d.ts +0 -0
  137. /package/dist/{components/game/shared → lib}/game.d.ts +0 -0
  138. /package/dist/{components/game/shared → lib}/isometric.d.ts +0 -0
  139. /package/dist/{components/game/shared → lib}/isometricTypes.d.ts +0 -0
  140. /package/dist/{components/game/shared → lib}/makeAsset.d.ts +0 -0
  141. /package/dist/{components/game/shared/lib → lib}/mechanics.d.ts +0 -0
  142. /package/dist/{components/game/shared/lib → lib}/physicsPresets.d.ts +0 -0
  143. /package/dist/{components/game/shared/lib → lib}/physicsTypes.d.ts +0 -0
  144. /package/dist/{components/game/shared → lib}/spriteAnimation.d.ts +0 -0
  145. /package/dist/{components/game/shared → lib}/spriteAnimationTypes.d.ts +0 -0
  146. /package/dist/{components/game/shared → lib}/spriteSheetConstants.d.ts +0 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * R3F mesh backends for the neutral drawable atoms — the 3D twin of the atoms'
3
+ * 2D `paint*` fns. Kept HERE (not in the atom files) so the `three`/`drei`/`fiber`
4
+ * dependency stays out of the 2D paint path; only the 3D dispatcher `Drawable3D`
5
+ * (→ used by `GameCanvas3D`, itself in the code-split 3D surface) imports this.
6
+ * Each mesh consumes the SAME descriptor as its 2D painter, so canvas-2d and
7
+ * canvas-3d render the same `children`.
8
+ */
9
+ import React from 'react';
10
+ import type { DrawSpriteProps } from '../../../components/game/atoms/DrawSprite';
11
+ import type { DrawShapeProps } from '../../../components/game/atoms/DrawShape';
12
+ import type { DrawTextProps } from '../../../components/game/atoms/DrawText';
13
+ import type { Projector3D } from '../projector3d';
14
+ /** R3F mesh backend for `draw-sprite`: a GLB via `ModelLoader` when `asset.dimension === '3d'`; else a billboard. */
15
+ export declare function Sprite3D({ node, projector }: {
16
+ node: DrawSpriteProps;
17
+ projector: Projector3D;
18
+ }): React.JSX.Element | null;
19
+ /** R3F mesh backend for `draw-shape`: a flat mesh on the ground plane. */
20
+ export declare function Shape3D({ node, projector }: {
21
+ node: DrawShapeProps;
22
+ projector: Projector3D;
23
+ }): React.JSX.Element | null;
24
+ /** R3F mesh backend for `draw-text`: a billboarded drei `<Text>` above the scene position. */
25
+ export declare function Text3D({ node, projector }: {
26
+ node: DrawTextProps;
27
+ projector: Projector3D;
28
+ }): React.JSX.Element | null;
@@ -9,10 +9,9 @@ export type { IsometricTile, IsometricUnit, IsometricFeature, CameraState, } fro
9
9
  export type { AnimationName, FacingDirection, SpriteDirection, ResolvedFrame, UnitAnimationState, SpriteFrameDims, SpriteSheetUrls, AnimationDef, } from './spriteAnimationTypes';
10
10
  export { createInitialGameState, calculateValidMoves, calculateAttackTargets, } from './game';
11
11
  export type { Position, GameUnit, UnitTrait, BoardTile, GamePhase, GameState, GameAction, } from './game';
12
- export * from './effects';
13
12
  export * from './boardEntity';
14
13
  export * from './makeAsset';
15
- export { useImageCache } from './useImageCache';
14
+ export { useImageCache } from '../hooks/useImageCache';
16
15
  export { isoToScreen, screenToIso, TILE_WIDTH, TILE_HEIGHT, FLOOR_HEIGHT, DIAMOND_TOP_Y, FEATURE_COLORS, } from './isometric';
17
16
  export type { TileLayout } from './isometric';
18
17
  export { inferDirection, resolveSheetDirection, getCurrentFrame, resolveFrame, createUnitAnimationState, transitionAnimation, tickAnimationState, } from './spriteAnimation';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Return the decoded image for `url`, or `null` if it is not ready yet (a load
3
+ * is kicked off on the first miss). Safe to call every frame — cached after the
4
+ * first request. SSR-safe: returns `null` without a DOM. `onReady` (optional)
5
+ * fires once when a pending load resolves so a caller can trigger a re-draw.
6
+ */
7
+ export declare function getOrLoadImage(url: string, onReady?: () => void): HTMLImageElement | null;
8
+ /** Test/reset hook — clears the module cache. */
9
+ export declare function clearImageCache(): void;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Painter2D — the portable 2D draw seam.
3
+ *
4
+ * A small verb set that every drawable atom paints through, so a scene stays a
5
+ * pure descriptor tree with no `CanvasRenderingContext2D` reference of its own.
6
+ * The web implementation (`createWebPainter`) wraps a `ctx`; a native platform
7
+ * ships its own implementation of the SAME interface — that is the cross-platform
8
+ * driver (draw-list over DOM overlays). This file is DOM-free: it is the shared
9
+ * contract, importable by any target.
10
+ *
11
+ * Coordinates are PIXELS in the painter's current transform. Scene→pixel mapping
12
+ * is the host projector's job (it maps a core `ScenePos` before calling here), so
13
+ * the painter carries no scene/projection semantics.
14
+ */
15
+ /** An opaque, painter-owned handle to a resolved texture (web: a decoded image). */
16
+ export interface TextureHandle {
17
+ readonly width: number;
18
+ readonly height: number;
19
+ }
20
+ /** Destination rectangle for a blit; `w`/`h` omitted → the source's natural size. */
21
+ export interface BlitDest {
22
+ x: number;
23
+ y: number;
24
+ w?: number;
25
+ h?: number;
26
+ }
27
+ /** Source sub-rectangle within a texture (an atlas frame). Omitted → whole texture. */
28
+ export interface BlitSrc {
29
+ x: number;
30
+ y: number;
31
+ w: number;
32
+ h: number;
33
+ }
34
+ /** A polyline/polygon vertex in pixel space. */
35
+ export interface PainterPoint {
36
+ x: number;
37
+ y: number;
38
+ }
39
+ export interface TextStyle {
40
+ color: string;
41
+ /** CSS font shorthand (e.g. `"12px sans-serif"`). */
42
+ font?: string;
43
+ align?: CanvasTextAlign;
44
+ baseline?: CanvasTextBaseline;
45
+ }
46
+ /** A drop shadow applied to subsequent draws until cleared. */
47
+ export interface PainterShadow {
48
+ color: string;
49
+ blur: number;
50
+ }
51
+ /**
52
+ * The verb set. Roughly the union of what `Canvas2D`'s draw passes call on a 2D
53
+ * context, reframed as painter-neutral operations so the same drawable atoms
54
+ * paint identically on web `ctx` and on a native surface.
55
+ */
56
+ export interface Painter2D {
57
+ /** Reset the surface to `width`×`height` logical px at device-pixel-ratio `dpr`. */
58
+ setViewport(width: number, height: number, dpr: number): void;
59
+ /** Clear the whole surface. */
60
+ clear(): void;
61
+ save(): void;
62
+ restore(): void;
63
+ translate(x: number, y: number): void;
64
+ scale(sx: number, sy: number): void;
65
+ rotate(radians: number): void;
66
+ /** Global alpha (0..1) for subsequent draws. */
67
+ setAlpha(alpha: number): void;
68
+ /** Drop shadow for subsequent draws; `null` clears it. */
69
+ setShadow(shadow: PainterShadow | null): void;
70
+ /** Resolve a texture URL to a handle, or `null` if not loaded yet (load is kicked off). */
71
+ resolveTexture(url: string): TextureHandle | null;
72
+ /** Blit a (sub-rect of a) texture to a destination rectangle. */
73
+ blit(tex: TextureHandle, dest: BlitDest, src?: BlitSrc): void;
74
+ fillRect(x: number, y: number, w: number, h: number, color: string): void;
75
+ strokeRect(x: number, y: number, w: number, h: number, color: string, lineWidth?: number): void;
76
+ fillPoly(points: readonly PainterPoint[], color: string): void;
77
+ strokePoly(points: readonly PainterPoint[], color: string, lineWidth?: number, closed?: boolean): void;
78
+ fillEllipse(cx: number, cy: number, rx: number, ry: number, color: string): void;
79
+ strokeEllipse(cx: number, cy: number, rx: number, ry: number, color: string, lineWidth?: number): void;
80
+ text(str: string, x: number, y: number, style: TextStyle): void;
81
+ }
@@ -4,12 +4,21 @@
4
4
  *
5
5
  * The puzzle objects the kid configures arrive as `entity.objects` (an array of
6
6
  * `EntityRow`). These helpers narrow the weakly-typed fields the panel reads.
7
- * `RuleDefinition` / `RuleOption` remain plain UI value DTOs (see `RuleEditor`).
7
+ * `RuleDefinition` / `RuleOption` are plain UI value DTOs, defined below.
8
8
  *
9
9
  * @packageDocumentation
10
10
  */
11
11
  import type { EntityWith } from '@almadar/core';
12
- import type { RuleDefinition, RuleOption } from '../../2d/molecules/RuleEditor';
12
+ /** A single Event-Handler puzzle rule: "when <event> then <action>". Plain value DTO. */
13
+ export type RuleDefinition = {
14
+ whenEvent: string;
15
+ thenAction: string;
16
+ };
17
+ /** An option (event or action) selectable in a puzzle rule. Plain value DTO. */
18
+ export interface RuleOption {
19
+ value: string;
20
+ label: string;
21
+ }
13
22
  type PuzzleObjectRow = EntityWith<{
14
23
  name?: string;
15
24
  icon?: string;
@@ -0,0 +1,7 @@
1
+ import type { Painter2D } from './painter2d';
2
+ /**
3
+ * Create a {@link Painter2D} backed by a web 2D context. `onAssetLoad` (optional)
4
+ * fires when a texture requested via `resolveTexture` finishes loading, so a
5
+ * draw-host can schedule a re-draw.
6
+ */
7
+ export declare function createWebPainter(ctx: CanvasRenderingContext2D, onAssetLoad?: () => void): Painter2D;
@@ -4633,6 +4633,15 @@ var tagVariantMap = {
4633
4633
  secondary: "secondary",
4634
4634
  accent: "info"
4635
4635
  };
4636
+ var backgroundStyles = {
4637
+ dark: "bg-foreground text-background",
4638
+ gradient: [
4639
+ "bg-[radial-gradient(ellipse_at_top,var(--color-primary)/0.08,transparent_60%),",
4640
+ "radial-gradient(ellipse_at_bottom_right,var(--color-accent)/0.06,transparent_50%)]",
4641
+ "bg-background"
4642
+ ].join(" "),
4643
+ subtle: "bg-muted/30"
4644
+ };
4636
4645
  var MarketingImage = ({ src, alt, className }) => /* @__PURE__ */ jsxRuntime.jsx(
4637
4646
  Box,
4638
4647
  {
@@ -4774,6 +4783,7 @@ var HeroSection = ({
4774
4783
  "w-full min-h-[60vh] flex items-center justify-center",
4775
4784
  "py-20",
4776
4785
  "relative overflow-hidden",
4786
+ backgroundStyles[background],
4777
4787
  className
4778
4788
  ),
4779
4789
  children: [
@@ -4612,6 +4612,15 @@ var tagVariantMap = {
4612
4612
  secondary: "secondary",
4613
4613
  accent: "info"
4614
4614
  };
4615
+ var backgroundStyles = {
4616
+ dark: "bg-foreground text-background",
4617
+ gradient: [
4618
+ "bg-[radial-gradient(ellipse_at_top,var(--color-primary)/0.08,transparent_60%),",
4619
+ "radial-gradient(ellipse_at_bottom_right,var(--color-accent)/0.06,transparent_50%)]",
4620
+ "bg-background"
4621
+ ].join(" "),
4622
+ subtle: "bg-muted/30"
4623
+ };
4615
4624
  var MarketingImage = ({ src, alt, className }) => /* @__PURE__ */ jsx(
4616
4625
  Box,
4617
4626
  {
@@ -4753,6 +4762,7 @@ var HeroSection = ({
4753
4762
  "w-full min-h-[60vh] flex items-center justify-center",
4754
4763
  "py-20",
4755
4764
  "relative overflow-hidden",
4765
+ backgroundStyles[background],
4756
4766
  className
4757
4767
  ),
4758
4768
  children: [
@@ -18,7 +18,7 @@
18
18
  */
19
19
  import React from 'react';
20
20
  import { type AudioManifest, type GameAudioControls } from '../hooks/useGameAudio';
21
- import type { UiError } from '../../../core/atoms/types';
21
+ import type { UiError } from '../components/core/atoms/types';
22
22
  export type GameAudioContextValue = Pick<GameAudioControls, 'muted' | 'setMuted' | 'masterVolume' | 'setMasterVolume' | 'play' | 'playMusic' | 'stopMusic'>;
23
23
  export declare const GameAudioContext: React.Context<GameAudioContextValue | null>;
24
24
  /**