@motion-core/motion-gpu 0.4.1 → 0.4.2

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 (205) hide show
  1. package/dist/advanced.d.ts +1 -0
  2. package/dist/advanced.d.ts.map +1 -0
  3. package/dist/advanced.js +12 -6
  4. package/dist/core/advanced.d.ts +1 -0
  5. package/dist/core/advanced.d.ts.map +1 -0
  6. package/dist/core/advanced.js +12 -5
  7. package/dist/core/current-value.d.ts +1 -0
  8. package/dist/core/current-value.d.ts.map +1 -0
  9. package/dist/core/current-value.js +35 -34
  10. package/dist/core/current-value.js.map +1 -0
  11. package/dist/core/error-diagnostics.d.ts +1 -0
  12. package/dist/core/error-diagnostics.d.ts.map +1 -0
  13. package/dist/core/error-diagnostics.js +70 -137
  14. package/dist/core/error-diagnostics.js.map +1 -0
  15. package/dist/core/error-report.d.ts +1 -0
  16. package/dist/core/error-report.d.ts.map +1 -0
  17. package/dist/core/error-report.js +184 -233
  18. package/dist/core/error-report.js.map +1 -0
  19. package/dist/core/frame-registry.d.ts +1 -0
  20. package/dist/core/frame-registry.d.ts.map +1 -0
  21. package/dist/core/frame-registry.js +546 -662
  22. package/dist/core/frame-registry.js.map +1 -0
  23. package/dist/core/index.d.ts +1 -0
  24. package/dist/core/index.d.ts.map +1 -0
  25. package/dist/core/index.js +11 -12
  26. package/dist/core/material-preprocess.d.ts +1 -0
  27. package/dist/core/material-preprocess.d.ts.map +1 -0
  28. package/dist/core/material-preprocess.js +128 -151
  29. package/dist/core/material-preprocess.js.map +1 -0
  30. package/dist/core/material.d.ts +1 -0
  31. package/dist/core/material.d.ts.map +1 -0
  32. package/dist/core/material.js +263 -317
  33. package/dist/core/material.js.map +1 -0
  34. package/dist/core/recompile-policy.d.ts +1 -0
  35. package/dist/core/recompile-policy.d.ts.map +1 -0
  36. package/dist/core/recompile-policy.js +18 -13
  37. package/dist/core/recompile-policy.js.map +1 -0
  38. package/dist/core/render-graph.d.ts +1 -0
  39. package/dist/core/render-graph.d.ts.map +1 -0
  40. package/dist/core/render-graph.js +61 -68
  41. package/dist/core/render-graph.js.map +1 -0
  42. package/dist/core/render-targets.d.ts +1 -0
  43. package/dist/core/render-targets.d.ts.map +1 -0
  44. package/dist/core/render-targets.js +52 -53
  45. package/dist/core/render-targets.js.map +1 -0
  46. package/dist/core/renderer.d.ts +1 -0
  47. package/dist/core/renderer.d.ts.map +1 -0
  48. package/dist/core/renderer.js +942 -1081
  49. package/dist/core/renderer.js.map +1 -0
  50. package/dist/core/runtime-loop.d.ts +1 -0
  51. package/dist/core/runtime-loop.d.ts.map +1 -0
  52. package/dist/core/runtime-loop.js +305 -362
  53. package/dist/core/runtime-loop.js.map +1 -0
  54. package/dist/core/scheduler-helpers.d.ts +1 -0
  55. package/dist/core/scheduler-helpers.d.ts.map +1 -0
  56. package/dist/core/scheduler-helpers.js +52 -51
  57. package/dist/core/scheduler-helpers.js.map +1 -0
  58. package/dist/core/shader.d.ts +1 -0
  59. package/dist/core/shader.d.ts.map +1 -0
  60. package/dist/core/shader.js +92 -117
  61. package/dist/core/shader.js.map +1 -0
  62. package/dist/core/texture-loader.d.ts +1 -0
  63. package/dist/core/texture-loader.d.ts.map +1 -0
  64. package/dist/core/texture-loader.js +205 -273
  65. package/dist/core/texture-loader.js.map +1 -0
  66. package/dist/core/textures.d.ts +1 -0
  67. package/dist/core/textures.d.ts.map +1 -0
  68. package/dist/core/textures.js +106 -116
  69. package/dist/core/textures.js.map +1 -0
  70. package/dist/core/types.d.ts +1 -0
  71. package/dist/core/types.d.ts.map +1 -0
  72. package/dist/core/types.js +0 -4
  73. package/dist/core/uniforms.d.ts +1 -0
  74. package/dist/core/uniforms.d.ts.map +1 -0
  75. package/dist/core/uniforms.js +170 -191
  76. package/dist/core/uniforms.js.map +1 -0
  77. package/dist/index.d.ts +1 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +11 -6
  80. package/dist/passes/BlitPass.d.ts +1 -0
  81. package/dist/passes/BlitPass.d.ts.map +1 -0
  82. package/dist/passes/BlitPass.js +23 -18
  83. package/dist/passes/BlitPass.js.map +1 -0
  84. package/dist/passes/CopyPass.d.ts +1 -0
  85. package/dist/passes/CopyPass.d.ts.map +1 -0
  86. package/dist/passes/CopyPass.js +58 -52
  87. package/dist/passes/CopyPass.js.map +1 -0
  88. package/dist/passes/FullscreenPass.d.ts +1 -0
  89. package/dist/passes/FullscreenPass.d.ts.map +1 -0
  90. package/dist/passes/FullscreenPass.js +127 -130
  91. package/dist/passes/FullscreenPass.js.map +1 -0
  92. package/dist/passes/ShaderPass.d.ts +1 -0
  93. package/dist/passes/ShaderPass.d.ts.map +1 -0
  94. package/dist/passes/ShaderPass.js +40 -37
  95. package/dist/passes/ShaderPass.js.map +1 -0
  96. package/dist/passes/index.d.ts +1 -0
  97. package/dist/passes/index.d.ts.map +1 -0
  98. package/dist/passes/index.js +4 -3
  99. package/dist/react/FragCanvas.d.ts +1 -0
  100. package/dist/react/FragCanvas.d.ts.map +1 -0
  101. package/dist/react/FragCanvas.js +234 -211
  102. package/dist/react/FragCanvas.js.map +1 -0
  103. package/dist/react/MotionGPUErrorOverlay.d.ts +1 -0
  104. package/dist/react/MotionGPUErrorOverlay.d.ts.map +1 -0
  105. package/dist/react/MotionGPUErrorOverlay.js +96 -13
  106. package/dist/react/MotionGPUErrorOverlay.js.map +1 -0
  107. package/dist/react/Portal.d.ts +1 -0
  108. package/dist/react/Portal.d.ts.map +1 -0
  109. package/dist/react/Portal.js +18 -21
  110. package/dist/react/Portal.js.map +1 -0
  111. package/dist/react/advanced.d.ts +1 -0
  112. package/dist/react/advanced.d.ts.map +1 -0
  113. package/dist/react/advanced.js +12 -6
  114. package/dist/react/frame-context.d.ts +1 -0
  115. package/dist/react/frame-context.d.ts.map +1 -0
  116. package/dist/react/frame-context.js +88 -94
  117. package/dist/react/frame-context.js.map +1 -0
  118. package/dist/react/index.d.ts +1 -0
  119. package/dist/react/index.d.ts.map +1 -0
  120. package/dist/react/index.js +10 -9
  121. package/dist/react/motiongpu-context.d.ts +1 -0
  122. package/dist/react/motiongpu-context.d.ts.map +1 -0
  123. package/dist/react/motiongpu-context.js +18 -15
  124. package/dist/react/motiongpu-context.js.map +1 -0
  125. package/dist/react/use-motiongpu-user-context.d.ts +1 -0
  126. package/dist/react/use-motiongpu-user-context.d.ts.map +1 -0
  127. package/dist/react/use-motiongpu-user-context.js +83 -82
  128. package/dist/react/use-motiongpu-user-context.js.map +1 -0
  129. package/dist/react/use-texture.d.ts +1 -0
  130. package/dist/react/use-texture.d.ts.map +1 -0
  131. package/dist/react/use-texture.js +132 -152
  132. package/dist/react/use-texture.js.map +1 -0
  133. package/dist/svelte/FragCanvas.svelte.d.ts +1 -0
  134. package/dist/svelte/FragCanvas.svelte.d.ts.map +1 -0
  135. package/dist/svelte/MotionGPUErrorOverlay.svelte.d.ts +1 -0
  136. package/dist/svelte/MotionGPUErrorOverlay.svelte.d.ts.map +1 -0
  137. package/dist/svelte/Portal.svelte.d.ts +1 -0
  138. package/dist/svelte/Portal.svelte.d.ts.map +1 -0
  139. package/dist/svelte/advanced.d.ts +1 -0
  140. package/dist/svelte/advanced.d.ts.map +1 -0
  141. package/dist/svelte/advanced.js +11 -6
  142. package/dist/svelte/frame-context.d.ts +1 -0
  143. package/dist/svelte/frame-context.d.ts.map +1 -0
  144. package/dist/svelte/frame-context.js +27 -27
  145. package/dist/svelte/frame-context.js.map +1 -0
  146. package/dist/svelte/index.d.ts +1 -0
  147. package/dist/svelte/index.d.ts.map +1 -0
  148. package/dist/svelte/index.js +10 -9
  149. package/dist/svelte/motiongpu-context.d.ts +1 -0
  150. package/dist/svelte/motiongpu-context.d.ts.map +1 -0
  151. package/dist/svelte/motiongpu-context.js +24 -21
  152. package/dist/svelte/motiongpu-context.js.map +1 -0
  153. package/dist/svelte/use-motiongpu-user-context.d.ts +1 -0
  154. package/dist/svelte/use-motiongpu-user-context.d.ts.map +1 -0
  155. package/dist/svelte/use-motiongpu-user-context.js +69 -70
  156. package/dist/svelte/use-motiongpu-user-context.js.map +1 -0
  157. package/dist/svelte/use-texture.d.ts +1 -0
  158. package/dist/svelte/use-texture.d.ts.map +1 -0
  159. package/dist/svelte/use-texture.js +125 -147
  160. package/dist/svelte/use-texture.js.map +1 -0
  161. package/package.json +12 -7
  162. package/src/lib/advanced.ts +6 -0
  163. package/src/lib/core/advanced.ts +12 -0
  164. package/src/lib/core/current-value.ts +64 -0
  165. package/src/lib/core/error-diagnostics.ts +236 -0
  166. package/src/lib/core/error-report.ts +406 -0
  167. package/src/lib/core/frame-registry.ts +1189 -0
  168. package/src/lib/core/index.ts +77 -0
  169. package/src/lib/core/material-preprocess.ts +284 -0
  170. package/src/lib/core/material.ts +667 -0
  171. package/src/lib/core/recompile-policy.ts +31 -0
  172. package/src/lib/core/render-graph.ts +143 -0
  173. package/src/lib/core/render-targets.ts +107 -0
  174. package/src/lib/core/renderer.ts +1547 -0
  175. package/src/lib/core/runtime-loop.ts +458 -0
  176. package/src/lib/core/scheduler-helpers.ts +136 -0
  177. package/src/lib/core/shader.ts +258 -0
  178. package/src/lib/core/texture-loader.ts +476 -0
  179. package/src/lib/core/textures.ts +235 -0
  180. package/src/lib/core/types.ts +582 -0
  181. package/src/lib/core/uniforms.ts +282 -0
  182. package/src/lib/index.ts +6 -0
  183. package/src/lib/passes/BlitPass.ts +54 -0
  184. package/src/lib/passes/CopyPass.ts +80 -0
  185. package/src/lib/passes/FullscreenPass.ts +173 -0
  186. package/src/lib/passes/ShaderPass.ts +88 -0
  187. package/src/lib/passes/index.ts +3 -0
  188. package/src/lib/react/FragCanvas.tsx +345 -0
  189. package/src/lib/react/MotionGPUErrorOverlay.tsx +392 -0
  190. package/src/lib/react/Portal.tsx +34 -0
  191. package/src/lib/react/advanced.ts +36 -0
  192. package/src/lib/react/frame-context.ts +169 -0
  193. package/src/lib/react/index.ts +51 -0
  194. package/src/lib/react/motiongpu-context.ts +88 -0
  195. package/src/lib/react/use-motiongpu-user-context.ts +186 -0
  196. package/src/lib/react/use-texture.ts +233 -0
  197. package/src/lib/svelte/FragCanvas.svelte +249 -0
  198. package/src/lib/svelte/MotionGPUErrorOverlay.svelte +382 -0
  199. package/src/lib/svelte/Portal.svelte +31 -0
  200. package/src/lib/svelte/advanced.ts +32 -0
  201. package/src/lib/svelte/frame-context.ts +87 -0
  202. package/src/lib/svelte/index.ts +51 -0
  203. package/src/lib/svelte/motiongpu-context.ts +97 -0
  204. package/src/lib/svelte/use-motiongpu-user-context.ts +145 -0
  205. package/src/lib/svelte/use-texture.ts +232 -0
@@ -1,32 +1,32 @@
1
- import { getContext, onDestroy, setContext } from 'svelte';
2
- import { createFrameRegistry } from '../core/frame-registry.js';
1
+ import { createFrameRegistry } from "../core/frame-registry.js";
2
+ import { getContext, onDestroy, setContext } from "svelte";
3
+ //#region src/lib/svelte/frame-context.ts
3
4
  /**
4
- * Svelte context key for the active frame registry.
5
- */
6
- const FRAME_CONTEXT_KEY = Symbol('motiongpu.frame-context');
7
- export { createFrameRegistry };
5
+ * Svelte context key for the active frame registry.
6
+ */
7
+ var FRAME_CONTEXT_KEY = Symbol("motiongpu.frame-context");
8
8
  /**
9
- * Provides a frame registry through Svelte context.
10
- */
11
- export function provideFrameRegistry(registry) {
12
- setContext(FRAME_CONTEXT_KEY, registry);
9
+ * Provides a frame registry through Svelte context.
10
+ */
11
+ function provideFrameRegistry(registry) {
12
+ setContext(FRAME_CONTEXT_KEY, registry);
13
13
  }
14
14
  /**
15
- * Registers a callback in the active frame registry and auto-unsubscribes on destroy.
16
- */
17
- export function useFrame(keyOrCallback, callbackOrOptions, maybeOptions) {
18
- const registry = getContext(FRAME_CONTEXT_KEY);
19
- if (!registry) {
20
- throw new Error('useFrame must be used inside <FragCanvas>');
21
- }
22
- const registration = typeof keyOrCallback === 'function'
23
- ? registry.register(keyOrCallback, callbackOrOptions)
24
- : registry.register(keyOrCallback, callbackOrOptions, maybeOptions);
25
- onDestroy(registration.unsubscribe);
26
- return {
27
- task: registration.task,
28
- start: registration.start,
29
- stop: registration.stop,
30
- started: registration.started
31
- };
15
+ * Registers a callback in the active frame registry and auto-unsubscribes on destroy.
16
+ */
17
+ function useFrame(keyOrCallback, callbackOrOptions, maybeOptions) {
18
+ const registry = getContext(FRAME_CONTEXT_KEY);
19
+ if (!registry) throw new Error("useFrame must be used inside <FragCanvas>");
20
+ const registration = typeof keyOrCallback === "function" ? registry.register(keyOrCallback, callbackOrOptions) : registry.register(keyOrCallback, callbackOrOptions, maybeOptions);
21
+ onDestroy(registration.unsubscribe);
22
+ return {
23
+ task: registration.task,
24
+ start: registration.start,
25
+ stop: registration.stop,
26
+ started: registration.started
27
+ };
32
28
  }
29
+ //#endregion
30
+ export { createFrameRegistry, provideFrameRegistry, useFrame };
31
+
32
+ //# sourceMappingURL=frame-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-context.js","names":[],"sources":["../../src/lib/svelte/frame-context.ts"],"sourcesContent":["import { getContext, onDestroy, setContext } from 'svelte';\nimport {\n\tcreateFrameRegistry,\n\ttype FrameCallback,\n\ttype FrameKey,\n\ttype FrameProfilingSnapshot,\n\ttype FrameRegistry,\n\ttype FrameRunTimings,\n\ttype FrameScheduleSnapshot,\n\ttype FrameStage,\n\ttype FrameStageCallback,\n\ttype FrameTask,\n\ttype FrameTaskInvalidation,\n\ttype FrameTaskInvalidationToken,\n\ttype UseFrameOptions,\n\ttype UseFrameResult\n} from '../core/frame-registry.js';\n\n/**\n * Svelte context key for the active frame registry.\n */\nconst FRAME_CONTEXT_KEY = Symbol('motiongpu.frame-context');\n\nexport {\n\tcreateFrameRegistry,\n\ttype FrameCallback,\n\ttype FrameKey,\n\ttype FrameProfilingSnapshot,\n\ttype FrameRegistry,\n\ttype FrameRunTimings,\n\ttype FrameScheduleSnapshot,\n\ttype FrameStage,\n\ttype FrameStageCallback,\n\ttype FrameTask,\n\ttype FrameTaskInvalidation,\n\ttype FrameTaskInvalidationToken,\n\ttype UseFrameOptions,\n\ttype UseFrameResult\n};\n\n/**\n * Provides a frame registry through Svelte context.\n */\nexport function provideFrameRegistry(registry: FrameRegistry): void {\n\tsetContext(FRAME_CONTEXT_KEY, registry);\n}\n\n/**\n * Registers a frame callback using an auto-generated task key.\n */\nexport function useFrame(callback: FrameCallback, options?: UseFrameOptions): UseFrameResult;\n\n/**\n * Registers a frame callback with an explicit task key.\n */\nexport function useFrame(\n\tkey: FrameKey,\n\tcallback: FrameCallback,\n\toptions?: UseFrameOptions\n): UseFrameResult;\n\n/**\n * Registers a callback in the active frame registry and auto-unsubscribes on destroy.\n */\nexport function useFrame(\n\tkeyOrCallback: FrameKey | FrameCallback,\n\tcallbackOrOptions?: FrameCallback | UseFrameOptions,\n\tmaybeOptions?: UseFrameOptions\n): UseFrameResult {\n\tconst registry = getContext<FrameRegistry>(FRAME_CONTEXT_KEY);\n\tif (!registry) {\n\t\tthrow new Error('useFrame must be used inside <FragCanvas>');\n\t}\n\n\tconst registration =\n\t\ttypeof keyOrCallback === 'function'\n\t\t\t? registry.register(keyOrCallback, callbackOrOptions as UseFrameOptions | undefined)\n\t\t\t: registry.register(keyOrCallback, callbackOrOptions as FrameCallback, maybeOptions);\n\tonDestroy(registration.unsubscribe);\n\n\treturn {\n\t\ttask: registration.task,\n\t\tstart: registration.start,\n\t\tstop: registration.stop,\n\t\tstarted: registration.started\n\t};\n}\n"],"mappings":";;;;;;AAqBA,IAAM,oBAAoB,OAAO,0BAA0B;;;;AAsB3D,SAAgB,qBAAqB,UAA+B;AACnE,YAAW,mBAAmB,SAAS;;;;;AAoBxC,SAAgB,SACf,eACA,mBACA,cACiB;CACjB,MAAM,WAAW,WAA0B,kBAAkB;AAC7D,KAAI,CAAC,SACJ,OAAM,IAAI,MAAM,4CAA4C;CAG7D,MAAM,eACL,OAAO,kBAAkB,aACtB,SAAS,SAAS,eAAe,kBAAiD,GAClF,SAAS,SAAS,eAAe,mBAAoC,aAAa;AACtF,WAAU,aAAa,YAAY;AAEnC,QAAO;EACN,MAAM,aAAa;EACnB,OAAO,aAAa;EACpB,MAAM,aAAa;EACnB,SAAS,aAAa;EACtB"}
@@ -13,3 +13,4 @@ export type { FragMaterial, FragMaterialInput, MaterialIncludes, MaterialDefineV
13
13
  export type { MotionGPUContext } from './motiongpu-context.js';
14
14
  export type { UseFrameOptions, UseFrameResult } from './frame-context.js';
15
15
  export type { TextureUrlInput, UseTextureResult } from './use-texture.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/svelte/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACX,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,9 +1,10 @@
1
- /**
2
- * Svelte adapter entrypoint for MotionGPU.
3
- */
4
- export { default as FragCanvas } from './FragCanvas.svelte';
5
- export { defineMaterial } from '../core/material.js';
6
- export { BlitPass, CopyPass, ShaderPass } from '../passes/index.js';
7
- export { useMotionGPU } from './motiongpu-context.js';
8
- export { useFrame } from './frame-context.js';
9
- export { useTexture } from './use-texture.js';
1
+ import { defineMaterial } from "../core/material.js";
2
+ import { BlitPass } from "../passes/BlitPass.js";
3
+ import { CopyPass } from "../passes/CopyPass.js";
4
+ import { ShaderPass } from "../passes/ShaderPass.js";
5
+ import "../passes/index.js";
6
+ import { useMotionGPU } from "./motiongpu-context.js";
7
+ import { useFrame } from "./frame-context.js";
8
+ import { useTexture } from "./use-texture.js";
9
+ import FragCanvas from "./FragCanvas.svelte";
10
+ export { BlitPass, CopyPass, FragCanvas, ShaderPass, defineMaterial, useFrame, useMotionGPU, useTexture };
@@ -73,3 +73,4 @@ export declare function provideMotionGPUContext(context: MotionGPUContext): void
73
73
  * @throws {Error} When called outside `<FragCanvas>`.
74
74
  */
75
75
  export declare function useMotionGPU(): MotionGPUContext;
76
+ //# sourceMappingURL=motiongpu-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motiongpu-context.d.ts","sourceRoot":"","sources":["../../src/lib/svelte/motiongpu-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EACX,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAOjG,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,qBAAqB,EAAE,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtC;;OAEG;IACH,IAAI,EAAE,eAAe,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD;;OAEG;IACH,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC7B;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAClC;;OAEG;IACH,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACxC;;OAEG;IACH,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACrC;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAC3B;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,SAAS,EAAE,kBAAkB,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,gBAAgB,CAO/C"}
@@ -1,26 +1,29 @@
1
- import { getContext, setContext } from 'svelte';
1
+ import { getContext, setContext } from "svelte";
2
+ //#region src/lib/svelte/motiongpu-context.ts
2
3
  /**
3
- * Svelte context key used to expose `FragCanvas` runtime state.
4
- */
5
- const MOTIONGPU_CONTEXT_KEY = Symbol('motiongpu.context');
4
+ * Svelte context key used to expose `FragCanvas` runtime state.
5
+ */
6
+ var MOTIONGPU_CONTEXT_KEY = Symbol("motiongpu.context");
6
7
  /**
7
- * Registers the motiongpu context in the current Svelte component tree.
8
- *
9
- * @param context - Context payload to provide.
10
- */
11
- export function provideMotionGPUContext(context) {
12
- setContext(MOTIONGPU_CONTEXT_KEY, context);
8
+ * Registers the motiongpu context in the current Svelte component tree.
9
+ *
10
+ * @param context - Context payload to provide.
11
+ */
12
+ function provideMotionGPUContext(context) {
13
+ setContext(MOTIONGPU_CONTEXT_KEY, context);
13
14
  }
14
15
  /**
15
- * Returns the active motiongpu context.
16
- *
17
- * @returns Active context.
18
- * @throws {Error} When called outside `<FragCanvas>`.
19
- */
20
- export function useMotionGPU() {
21
- const context = getContext(MOTIONGPU_CONTEXT_KEY);
22
- if (!context) {
23
- throw new Error('useMotionGPU must be used inside <FragCanvas>');
24
- }
25
- return context;
16
+ * Returns the active motiongpu context.
17
+ *
18
+ * @returns Active context.
19
+ * @throws {Error} When called outside `<FragCanvas>`.
20
+ */
21
+ function useMotionGPU() {
22
+ const context = getContext(MOTIONGPU_CONTEXT_KEY);
23
+ if (!context) throw new Error("useMotionGPU must be used inside <FragCanvas>");
24
+ return context;
26
25
  }
26
+ //#endregion
27
+ export { provideMotionGPUContext, useMotionGPU };
28
+
29
+ //# sourceMappingURL=motiongpu-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motiongpu-context.js","names":[],"sources":["../../src/lib/svelte/motiongpu-context.ts"],"sourcesContent":["import { getContext, setContext } from 'svelte';\nimport type { RenderMode } from '../core/types.js';\nimport type { CurrentReadable, CurrentWritable } from '../core/current-value.js';\nimport type {\n\tFrameProfilingSnapshot,\n\tFrameRunTimings,\n\tFrameScheduleSnapshot\n} from '../core/frame-registry.js';\nimport type { MotionGPUScheduler as CoreMotionGPUScheduler } from '../core/scheduler-helpers.js';\n\n/**\n * Svelte context key used to expose `FragCanvas` runtime state.\n */\nconst MOTIONGPU_CONTEXT_KEY = Symbol('motiongpu.context');\n\nexport type MotionGPUScheduler = CoreMotionGPUScheduler;\nexport type { FrameProfilingSnapshot, FrameRunTimings, FrameScheduleSnapshot };\n\n/**\n * Namespace identifier for user-owned context entries.\n */\nexport type MotionGPUUserNamespace = string | symbol;\n\n/**\n * Shared user context store exposed by `FragCanvas`.\n */\nexport type MotionGPUUserContext = CurrentWritable<Record<MotionGPUUserNamespace, unknown>>;\n\n/**\n * Public `FragCanvas` runtime context available to hooks and user components.\n */\nexport interface MotionGPUContext {\n\t/**\n\t * Underlying canvas element used by the renderer.\n\t */\n\tcanvas: HTMLCanvasElement | undefined;\n\t/**\n\t * Reactive canvas pixel size.\n\t */\n\tsize: CurrentReadable<{ width: number; height: number }>;\n\t/**\n\t * Device pixel ratio multiplier.\n\t */\n\tdpr: CurrentWritable<number>;\n\t/**\n\t * Max frame delta clamp passed to scheduled callbacks.\n\t */\n\tmaxDelta: CurrentWritable<number>;\n\t/**\n\t * Scheduler render mode (`always`, `on-demand`, `manual`).\n\t */\n\trenderMode: CurrentWritable<RenderMode>;\n\t/**\n\t * Global toggle for automatic rendering.\n\t */\n\tautoRender: CurrentWritable<boolean>;\n\t/**\n\t * Namespaced user context store shared within the canvas subtree.\n\t */\n\tuser: MotionGPUUserContext;\n\t/**\n\t * Marks current frame as invalidated.\n\t */\n\tinvalidate: () => void;\n\t/**\n\t * Requests one manual frame advance.\n\t */\n\tadvance: () => void;\n\t/**\n\t * Public scheduler API.\n\t */\n\tscheduler: MotionGPUScheduler;\n}\n\n/**\n * Registers the motiongpu context in the current Svelte component tree.\n *\n * @param context - Context payload to provide.\n */\nexport function provideMotionGPUContext(context: MotionGPUContext): void {\n\tsetContext(MOTIONGPU_CONTEXT_KEY, context);\n}\n\n/**\n * Returns the active motiongpu context.\n *\n * @returns Active context.\n * @throws {Error} When called outside `<FragCanvas>`.\n */\nexport function useMotionGPU(): MotionGPUContext {\n\tconst context = getContext<MotionGPUContext>(MOTIONGPU_CONTEXT_KEY);\n\tif (!context) {\n\t\tthrow new Error('useMotionGPU must be used inside <FragCanvas>');\n\t}\n\n\treturn context;\n}\n"],"mappings":";;;;;AAaA,IAAM,wBAAwB,OAAO,oBAAoB;;;;;;AAkEzD,SAAgB,wBAAwB,SAAiC;AACxE,YAAW,uBAAuB,QAAQ;;;;;;;;AAS3C,SAAgB,eAAiC;CAChD,MAAM,UAAU,WAA6B,sBAAsB;AACnE,KAAI,CAAC,QACJ,OAAM,IAAI,MAAM,gDAAgD;AAGjE,QAAO"}
@@ -41,3 +41,4 @@ export declare function useMotionGPUUserContext<UC extends UserContextStore = Us
41
41
  */
42
42
  export declare function setMotionGPUUserContext<UCT = unknown>(namespace: MotionGPUUserNamespace, value: UCT | (() => UCT), options?: SetMotionGPUUserContextOptions): UCT | undefined;
43
43
  export {};
44
+ //# sourceMappingURL=use-motiongpu-user-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-motiongpu-user-context.d.ts","sourceRoot":"","sources":["../../src/lib/svelte/use-motiongpu-user-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAgB,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEnF;;GAEG;AACH,KAAK,gBAAgB,GAAG,MAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;AAOhE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACxC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CACpC;AASD;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,EAAE,SAAS,gBAAgB,GAAG,gBAAgB,KAC1C,eAAe,CAAC,EAAE,CAAC,CAAC;AAEzB;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,EAAE,SAAS,gBAAgB,GAAG,gBAAgB,EAC9C,CAAC,SAAS,MAAM,EAAE,GAAG,sBAAsB,GAAG,MAAM,EAAE,GAAG,sBAAsB,EAC9E,SAAS,EAAE,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAwCpD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,GAAG,OAAO,EACpD,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EACxB,OAAO,CAAC,EAAE,8BAA8B,GACtC,GAAG,GAAG,SAAS,CAuCjB"}
@@ -1,77 +1,76 @@
1
- import { useMotionGPU } from './motiongpu-context.js';
1
+ import { useMotionGPU } from "./motiongpu-context.js";
2
+ //#region src/lib/svelte/use-motiongpu-user-context.ts
2
3
  /**
3
- * Checks whether a value is a non-array object suitable for shallow merge.
4
- */
4
+ * Checks whether a value is a non-array object suitable for shallow merge.
5
+ */
5
6
  function isObjectEntry(value) {
6
- return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ return typeof value === "object" && value !== null && !Array.isArray(value);
7
8
  }
8
9
  /**
9
- * Read-only user context hook:
10
- * - no args: returns full user context store
11
- * - namespace: returns namespaced store view
12
- *
13
- * @param namespace - Optional namespace key.
14
- */
15
- export function useMotionGPUUserContext(namespace) {
16
- const userStore = useMotionGPU().user;
17
- if (namespace === undefined) {
18
- const allStore = {
19
- get current() {
20
- return userStore.current;
21
- },
22
- subscribe(run) {
23
- return userStore.subscribe((context) => run(context));
24
- }
25
- };
26
- return allStore;
27
- }
28
- const scopedStore = {
29
- get current() {
30
- return userStore.current[namespace];
31
- },
32
- subscribe(run) {
33
- return userStore.subscribe((context) => run(context[namespace]));
34
- }
35
- };
36
- return scopedStore;
10
+ * Read-only user context hook:
11
+ * - no args: returns full user context store
12
+ * - namespace: returns namespaced store view
13
+ *
14
+ * @param namespace - Optional namespace key.
15
+ */
16
+ function useMotionGPUUserContext(namespace) {
17
+ const userStore = useMotionGPU().user;
18
+ if (namespace === void 0) return {
19
+ get current() {
20
+ return userStore.current;
21
+ },
22
+ subscribe(run) {
23
+ return userStore.subscribe((context) => run(context));
24
+ }
25
+ };
26
+ return {
27
+ get current() {
28
+ return userStore.current[namespace];
29
+ },
30
+ subscribe(run) {
31
+ return userStore.subscribe((context) => run(context[namespace]));
32
+ }
33
+ };
37
34
  }
38
35
  /**
39
- * Sets a namespaced user context value with explicit write semantics.
40
- *
41
- * Returns the effective value stored under the namespace.
42
- */
43
- export function setMotionGPUUserContext(namespace, value, options) {
44
- const userStore = useMotionGPU().user;
45
- const mode = options?.existing ?? 'skip';
46
- const functionValueMode = options?.functionValue ?? 'factory';
47
- let resolvedValue;
48
- userStore.update((context) => {
49
- const hasExisting = namespace in context;
50
- if (hasExisting && mode === 'skip') {
51
- resolvedValue = context[namespace];
52
- return context;
53
- }
54
- const nextValue = typeof value === 'function' && functionValueMode === 'factory'
55
- ? value()
56
- : value;
57
- if (hasExisting && mode === 'merge') {
58
- const currentValue = context[namespace];
59
- if (isObjectEntry(currentValue) && isObjectEntry(nextValue)) {
60
- resolvedValue = {
61
- ...currentValue,
62
- ...nextValue
63
- };
64
- return {
65
- ...context,
66
- [namespace]: resolvedValue
67
- };
68
- }
69
- }
70
- resolvedValue = nextValue;
71
- return {
72
- ...context,
73
- [namespace]: nextValue
74
- };
75
- });
76
- return resolvedValue;
36
+ * Sets a namespaced user context value with explicit write semantics.
37
+ *
38
+ * Returns the effective value stored under the namespace.
39
+ */
40
+ function setMotionGPUUserContext(namespace, value, options) {
41
+ const userStore = useMotionGPU().user;
42
+ const mode = options?.existing ?? "skip";
43
+ const functionValueMode = options?.functionValue ?? "factory";
44
+ let resolvedValue;
45
+ userStore.update((context) => {
46
+ const hasExisting = namespace in context;
47
+ if (hasExisting && mode === "skip") {
48
+ resolvedValue = context[namespace];
49
+ return context;
50
+ }
51
+ const nextValue = typeof value === "function" && functionValueMode === "factory" ? value() : value;
52
+ if (hasExisting && mode === "merge") {
53
+ const currentValue = context[namespace];
54
+ if (isObjectEntry(currentValue) && isObjectEntry(nextValue)) {
55
+ resolvedValue = {
56
+ ...currentValue,
57
+ ...nextValue
58
+ };
59
+ return {
60
+ ...context,
61
+ [namespace]: resolvedValue
62
+ };
63
+ }
64
+ }
65
+ resolvedValue = nextValue;
66
+ return {
67
+ ...context,
68
+ [namespace]: nextValue
69
+ };
70
+ });
71
+ return resolvedValue;
77
72
  }
73
+ //#endregion
74
+ export { setMotionGPUUserContext, useMotionGPUUserContext };
75
+
76
+ //# sourceMappingURL=use-motiongpu-user-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-motiongpu-user-context.js","names":[],"sources":["../../src/lib/svelte/use-motiongpu-user-context.ts"],"sourcesContent":["import type { CurrentReadable } from '../core/current-value.js';\nimport { useMotionGPU, type MotionGPUUserNamespace } from './motiongpu-context.js';\n\n/**\n * Internal shape of the user context store.\n */\ntype UserContextStore = Record<MotionGPUUserNamespace, unknown>;\n\n/**\n * Object-like context payload used by merge semantics.\n */\ntype UserContextEntry = Record<string, unknown>;\n\n/**\n * Controls how a namespaced user context value behaves when already present.\n */\nexport interface SetMotionGPUUserContextOptions {\n\t/**\n\t * Conflict strategy when namespace already exists:\n\t * - `skip`: keep current value\n\t * - `replace`: replace current value\n\t * - `merge`: shallow merge object values, fallback to replace otherwise\n\t *\n\t * @default 'skip'\n\t */\n\texisting?: 'merge' | 'replace' | 'skip';\n\t/**\n\t * How function inputs should be interpreted:\n\t * - `factory`: call function and store its return value\n\t * - `value`: store function itself\n\t *\n\t * @default 'factory'\n\t */\n\tfunctionValue?: 'factory' | 'value';\n}\n\n/**\n * Checks whether a value is a non-array object suitable for shallow merge.\n */\nfunction isObjectEntry(value: unknown): value is UserContextEntry {\n\treturn typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Returns a read-only view of the entire motiongpu user context store.\n */\nexport function useMotionGPUUserContext<\n\tUC extends UserContextStore = UserContextStore\n>(): CurrentReadable<UC>;\n\n/**\n * Reads a namespaced user context value as a reactive readable store.\n */\nexport function useMotionGPUUserContext<\n\tUC extends UserContextStore = UserContextStore,\n\tK extends keyof UC & MotionGPUUserNamespace = keyof UC & MotionGPUUserNamespace\n>(namespace: K): CurrentReadable<UC[K] | undefined>;\n\n/**\n * Read-only user context hook:\n * - no args: returns full user context store\n * - namespace: returns namespaced store view\n *\n * @param namespace - Optional namespace key.\n */\nexport function useMotionGPUUserContext<\n\tUC extends UserContextStore = UserContextStore,\n\tK extends keyof UC & MotionGPUUserNamespace = keyof UC & MotionGPUUserNamespace\n>(namespace?: K): CurrentReadable<UC> | CurrentReadable<UC[K] | undefined> {\n\tconst userStore = useMotionGPU().user;\n\n\tif (namespace === undefined) {\n\t\tconst allStore: CurrentReadable<UC> = {\n\t\t\tget current() {\n\t\t\t\treturn userStore.current as UC;\n\t\t\t},\n\t\t\tsubscribe(run) {\n\t\t\t\treturn userStore.subscribe((context) => run(context as UC));\n\t\t\t}\n\t\t};\n\n\t\treturn allStore;\n\t}\n\n\tconst scopedStore: CurrentReadable<UC[K] | undefined> = {\n\t\tget current() {\n\t\t\treturn userStore.current[namespace] as UC[K] | undefined;\n\t\t},\n\t\tsubscribe(run) {\n\t\t\treturn userStore.subscribe((context) => run(context[namespace] as UC[K] | undefined));\n\t\t}\n\t};\n\n\treturn scopedStore;\n}\n\n/**\n * Sets a namespaced user context value with explicit write semantics.\n *\n * Returns the effective value stored under the namespace.\n */\nexport function setMotionGPUUserContext<UCT = unknown>(\n\tnamespace: MotionGPUUserNamespace,\n\tvalue: UCT | (() => UCT),\n\toptions?: SetMotionGPUUserContextOptions\n): UCT | undefined {\n\tconst userStore = useMotionGPU().user;\n\tconst mode = options?.existing ?? 'skip';\n\tconst functionValueMode = options?.functionValue ?? 'factory';\n\tlet resolvedValue: UCT | undefined;\n\n\tuserStore.update((context) => {\n\t\tconst hasExisting = namespace in context;\n\t\tif (hasExisting && mode === 'skip') {\n\t\t\tresolvedValue = context[namespace] as UCT | undefined;\n\t\t\treturn context;\n\t\t}\n\n\t\tconst nextValue =\n\t\t\ttypeof value === 'function' && functionValueMode === 'factory'\n\t\t\t\t? (value as () => UCT)()\n\t\t\t\t: (value as UCT);\n\t\tif (hasExisting && mode === 'merge') {\n\t\t\tconst currentValue = context[namespace];\n\t\t\tif (isObjectEntry(currentValue) && isObjectEntry(nextValue)) {\n\t\t\t\tresolvedValue = {\n\t\t\t\t\t...currentValue,\n\t\t\t\t\t...nextValue\n\t\t\t\t} as UCT;\n\t\t\t\treturn {\n\t\t\t\t\t...context,\n\t\t\t\t\t[namespace]: resolvedValue\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tresolvedValue = nextValue;\n\t\treturn {\n\t\t\t...context,\n\t\t\t[namespace]: nextValue\n\t\t};\n\t});\n\n\treturn resolvedValue;\n}\n"],"mappings":";;;;;AAuCA,SAAS,cAAc,OAA2C;AACjE,QAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM;;;;;;;;;AAyB5E,SAAgB,wBAGd,WAAyE;CAC1E,MAAM,YAAY,cAAc,CAAC;AAEjC,KAAI,cAAc,OAUjB,QATsC;EACrC,IAAI,UAAU;AACb,UAAO,UAAU;;EAElB,UAAU,KAAK;AACd,UAAO,UAAU,WAAW,YAAY,IAAI,QAAc,CAAC;;EAE5D;AAcF,QATwD;EACvD,IAAI,UAAU;AACb,UAAO,UAAU,QAAQ;;EAE1B,UAAU,KAAK;AACd,UAAO,UAAU,WAAW,YAAY,IAAI,QAAQ,WAAgC,CAAC;;EAEtF;;;;;;;AAUF,SAAgB,wBACf,WACA,OACA,SACkB;CAClB,MAAM,YAAY,cAAc,CAAC;CACjC,MAAM,OAAO,SAAS,YAAY;CAClC,MAAM,oBAAoB,SAAS,iBAAiB;CACpD,IAAI;AAEJ,WAAU,QAAQ,YAAY;EAC7B,MAAM,cAAc,aAAa;AACjC,MAAI,eAAe,SAAS,QAAQ;AACnC,mBAAgB,QAAQ;AACxB,UAAO;;EAGR,MAAM,YACL,OAAO,UAAU,cAAc,sBAAsB,YACjD,OAAqB,GACrB;AACL,MAAI,eAAe,SAAS,SAAS;GACpC,MAAM,eAAe,QAAQ;AAC7B,OAAI,cAAc,aAAa,IAAI,cAAc,UAAU,EAAE;AAC5D,oBAAgB;KACf,GAAG;KACH,GAAG;KACH;AACD,WAAO;KACN,GAAG;MACF,YAAY;KACb;;;AAIH,kBAAgB;AAChB,SAAO;GACN,GAAG;IACF,YAAY;GACb;GACA;AAEF,QAAO"}
@@ -42,3 +42,4 @@ export type TextureOptionsInput = TextureLoadOptions | (() => TextureLoadOptions
42
42
  * @returns Reactive texture loading state with reload support.
43
43
  */
44
44
  export declare function useTexture(urlInput: TextureUrlInput, optionsInput?: TextureOptionsInput): UseTextureResult;
45
+ //# sourceMappingURL=use-texture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-texture.d.ts","sourceRoot":"","sources":["../../src/lib/svelte/use-texture.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,eAAe,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAGN,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD;;OAEG;IACH,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAClC;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACrC;;OAEG;IACH,WAAW,EAAE,eAAe,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAC1D;;OAEG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC;AAkElF;;;;;;GAMG;AACH,wBAAgB,UAAU,CACzB,QAAQ,EAAE,eAAe,EACzB,YAAY,GAAE,mBAAwB,GACpC,gBAAgB,CA4GlB"}