@vgai/engine 0.2.0 → 0.3.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 (541) hide show
  1. package/README.md +3 -1
  2. package/dist/adapter/authoring.d.ts +404 -0
  3. package/dist/adapter/authoring.d.ts.map +1 -0
  4. package/dist/adapter/authoring.js +22 -0
  5. package/dist/adapter/colyseus-networking-adapter.d.ts +43 -0
  6. package/dist/adapter/colyseus-networking-adapter.d.ts.map +1 -0
  7. package/dist/adapter/colyseus-networking-adapter.js +38 -0
  8. package/dist/adapter/first-party-systems.d.ts +38 -0
  9. package/dist/adapter/first-party-systems.d.ts.map +1 -0
  10. package/dist/adapter/first-party-systems.js +77 -0
  11. package/dist/adapter/game-adapter.d.ts +133 -0
  12. package/dist/adapter/game-adapter.d.ts.map +1 -0
  13. package/dist/adapter/game-adapter.js +10 -0
  14. package/dist/adapter/host-context.d.ts +73 -0
  15. package/dist/adapter/host-context.d.ts.map +1 -0
  16. package/dist/adapter/host-context.js +16 -0
  17. package/dist/adapter/index.d.ts +22 -0
  18. package/dist/adapter/index.d.ts.map +1 -0
  19. package/dist/adapter/index.js +15 -0
  20. package/dist/adapter/ingest/game-contract.d.ts +53 -0
  21. package/dist/adapter/ingest/game-contract.d.ts.map +1 -0
  22. package/dist/adapter/ingest/game-contract.js +30 -0
  23. package/dist/adapter/ingest/overlay-applier.d.ts +118 -0
  24. package/dist/adapter/ingest/overlay-applier.d.ts.map +1 -0
  25. package/dist/adapter/ingest/overlay-applier.js +132 -0
  26. package/dist/adapter/ingest/overlay-apply.d.ts +60 -0
  27. package/dist/adapter/ingest/overlay-apply.d.ts.map +1 -0
  28. package/dist/adapter/ingest/overlay-apply.js +101 -0
  29. package/dist/adapter/ingest/overlay-file.d.ts +79 -0
  30. package/dist/adapter/ingest/overlay-file.d.ts.map +1 -0
  31. package/dist/adapter/ingest/overlay-file.js +66 -0
  32. package/dist/adapter/ingest/overlay-report.d.ts +113 -0
  33. package/dist/adapter/ingest/overlay-report.d.ts.map +1 -0
  34. package/dist/adapter/ingest/overlay-report.js +103 -0
  35. package/dist/adapter/ingest/scene-capture.d.ts +97 -0
  36. package/dist/adapter/ingest/scene-capture.d.ts.map +1 -0
  37. package/dist/adapter/ingest/scene-capture.js +248 -0
  38. package/dist/adapter/ingest/upstream-pin.d.ts +47 -0
  39. package/dist/adapter/ingest/upstream-pin.d.ts.map +1 -0
  40. package/dist/adapter/ingest/upstream-pin.js +50 -0
  41. package/dist/adapter/loop-gate-report.d.ts +34 -0
  42. package/dist/adapter/loop-gate-report.d.ts.map +1 -0
  43. package/dist/adapter/loop-gate-report.js +37 -0
  44. package/dist/adapter/rapier-physics-adapter.d.ts +12 -0
  45. package/dist/adapter/rapier-physics-adapter.d.ts.map +1 -0
  46. package/dist/adapter/rapier-physics-adapter.js +46 -0
  47. package/dist/adapter/system-adapter.d.ts +133 -0
  48. package/dist/adapter/system-adapter.d.ts.map +1 -0
  49. package/dist/adapter/system-adapter.js +13 -0
  50. package/dist/adapter/transform.d.ts +18 -0
  51. package/dist/adapter/transform.d.ts.map +1 -0
  52. package/dist/adapter/transform.js +1 -0
  53. package/dist/adapter/vgai-scene-game-adapter.d.ts +116 -0
  54. package/dist/adapter/vgai-scene-game-adapter.d.ts.map +1 -0
  55. package/dist/adapter/vgai-scene-game-adapter.js +714 -0
  56. package/dist/adapter/world-kind.d.ts +30 -0
  57. package/dist/adapter/world-kind.d.ts.map +1 -0
  58. package/dist/adapter/world-kind.js +18 -0
  59. package/dist/ai/navigation.d.ts +64 -0
  60. package/dist/ai/navigation.d.ts.map +1 -0
  61. package/dist/ai/navigation.js +133 -0
  62. package/dist/animation/anim-graph-types.d.ts +25 -0
  63. package/dist/animation/anim-graph-types.d.ts.map +1 -0
  64. package/dist/animation/anim-graph-types.js +1 -0
  65. package/dist/animation/animation-clock.d.ts +213 -0
  66. package/dist/animation/animation-clock.d.ts.map +1 -0
  67. package/dist/animation/animation-clock.js +301 -0
  68. package/dist/animation/blend-node.d.ts +22 -0
  69. package/dist/animation/blend-node.d.ts.map +1 -0
  70. package/dist/animation/blend-node.js +97 -0
  71. package/dist/animation/camera-ownership.d.ts +250 -0
  72. package/dist/animation/camera-ownership.d.ts.map +1 -0
  73. package/dist/animation/camera-ownership.js +169 -0
  74. package/dist/animation/cinematic-cues.d.ts +200 -0
  75. package/dist/animation/cinematic-cues.d.ts.map +1 -0
  76. package/dist/animation/cinematic-cues.js +213 -0
  77. package/dist/animation/clip-map.d.ts +12 -0
  78. package/dist/animation/clip-map.d.ts.map +1 -0
  79. package/dist/animation/clip-map.js +37 -0
  80. package/dist/animation/gsap-registration.d.ts +119 -0
  81. package/dist/animation/gsap-registration.d.ts.map +1 -0
  82. package/dist/animation/gsap-registration.js +92 -0
  83. package/dist/animation/theatre-clock-binding.d.ts +89 -0
  84. package/dist/animation/theatre-clock-binding.d.ts.map +1 -0
  85. package/dist/animation/theatre-clock-binding.js +29 -0
  86. package/dist/animation/theatre-director.d.ts +242 -0
  87. package/dist/animation/theatre-director.d.ts.map +1 -0
  88. package/dist/animation/theatre-director.js +235 -0
  89. package/dist/animation/theatre-object-binding.d.ts +305 -0
  90. package/dist/animation/theatre-object-binding.d.ts.map +1 -0
  91. package/dist/animation/theatre-object-binding.js +351 -0
  92. package/dist/animation/xstate-animation-binding.d.ts +111 -0
  93. package/dist/animation/xstate-animation-binding.d.ts.map +1 -0
  94. package/dist/animation/xstate-animation-binding.js +307 -0
  95. package/dist/animation/xstate-animation-meta.d.ts +228 -0
  96. package/dist/animation/xstate-animation-meta.d.ts.map +1 -0
  97. package/dist/animation/xstate-animation-meta.js +221 -0
  98. package/dist/assets.d.ts +26 -0
  99. package/dist/assets.d.ts.map +1 -0
  100. package/dist/assets.js +55 -0
  101. package/dist/audio/index.d.ts +4 -0
  102. package/dist/audio/index.d.ts.map +1 -0
  103. package/dist/audio/index.js +24 -0
  104. package/dist/audio/tone-clock-binding.d.ts +75 -0
  105. package/dist/audio/tone-clock-binding.d.ts.map +1 -0
  106. package/dist/audio/tone-clock-binding.js +29 -0
  107. package/dist/audio/tone-context.d.ts +114 -0
  108. package/dist/audio/tone-context.d.ts.map +1 -0
  109. package/dist/audio/tone-context.js +39 -0
  110. package/dist/audio/tone-offline-render.d.ts +90 -0
  111. package/dist/audio/tone-offline-render.d.ts.map +1 -0
  112. package/dist/audio/tone-offline-render.js +56 -0
  113. package/dist/audio/wav-encode.d.ts +38 -0
  114. package/dist/audio/wav-encode.d.ts.map +1 -0
  115. package/dist/audio/wav-encode.js +97 -0
  116. package/dist/core/game-loop.d.ts +21 -0
  117. package/dist/core/game-loop.d.ts.map +1 -0
  118. package/dist/core/game-loop.js +130 -0
  119. package/dist/core/system-runner.d.ts +120 -0
  120. package/dist/core/system-runner.d.ts.map +1 -0
  121. package/dist/core/system-runner.js +286 -0
  122. package/dist/core/types.d.ts +58 -0
  123. package/dist/core/types.d.ts.map +1 -0
  124. package/dist/core/types.js +25 -0
  125. package/dist/data/data-asset.d.ts +101 -0
  126. package/dist/data/data-asset.d.ts.map +1 -0
  127. package/dist/data/data-asset.js +122 -0
  128. package/dist/data/data-check-core.d.ts +110 -0
  129. package/dist/data/data-check-core.d.ts.map +1 -0
  130. package/dist/data/data-check-core.js +178 -0
  131. package/dist/data/data-ref.d.ts +79 -0
  132. package/dist/data/data-ref.d.ts.map +1 -0
  133. package/dist/data/data-ref.js +130 -0
  134. package/dist/data/vite-plugin-data.d.ts +79 -0
  135. package/dist/data/vite-plugin-data.d.ts.map +1 -0
  136. package/dist/data/vite-plugin-data.js +217 -0
  137. package/dist/dev/console-bridge.d.ts +22 -0
  138. package/dist/dev/console-bridge.d.ts.map +1 -0
  139. package/dist/dev/console-bridge.js +71 -0
  140. package/dist/dev/debug-draw.d.ts +24 -0
  141. package/dist/dev/debug-draw.d.ts.map +1 -0
  142. package/dist/dev/debug-draw.js +73 -0
  143. package/dist/dev/logger.d.ts +30 -0
  144. package/dist/dev/logger.d.ts.map +1 -0
  145. package/dist/dev/logger.js +90 -0
  146. package/dist/ecs/component-manager.d.ts +189 -0
  147. package/dist/ecs/component-manager.d.ts.map +1 -0
  148. package/dist/ecs/component-manager.js +676 -0
  149. package/dist/ecs/game-component.d.ts +97 -0
  150. package/dist/ecs/game-component.d.ts.map +1 -0
  151. package/dist/ecs/game-component.js +80 -0
  152. package/dist/ecs/hmr-swap-report.d.ts +53 -0
  153. package/dist/ecs/hmr-swap-report.d.ts.map +1 -0
  154. package/dist/ecs/hmr-swap-report.js +55 -0
  155. package/dist/index.d.ts +37 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +30 -0
  158. package/dist/input/input-manager.d.ts +596 -0
  159. package/dist/input/input-manager.d.ts.map +1 -0
  160. package/dist/input/input-manager.js +1564 -0
  161. package/dist/input/input-types.d.ts +171 -0
  162. package/dist/input/input-types.d.ts.map +1 -0
  163. package/dist/input/input-types.js +1 -0
  164. package/dist/input/prompt-labels.d.ts +21 -0
  165. package/dist/input/prompt-labels.d.ts.map +1 -0
  166. package/dist/input/prompt-labels.js +121 -0
  167. package/dist/input/rebind-controller.d.ts +59 -0
  168. package/dist/input/rebind-controller.d.ts.map +1 -0
  169. package/dist/input/rebind-controller.js +85 -0
  170. package/dist/input/schema.d.ts +16 -0
  171. package/dist/input/schema.d.ts.map +1 -0
  172. package/dist/input/schema.js +228 -0
  173. package/dist/loader.d.ts +43 -0
  174. package/dist/loader.d.ts.map +1 -0
  175. package/dist/loader.js +59 -0
  176. package/dist/manifest/index.d.ts +5 -0
  177. package/dist/manifest/index.d.ts.map +1 -0
  178. package/dist/manifest/index.js +8 -0
  179. package/dist/manifest/load-file.d.ts +4 -0
  180. package/dist/manifest/load-file.d.ts.map +1 -0
  181. package/dist/manifest/load-file.js +14 -0
  182. package/dist/manifest/load.d.ts +117 -0
  183. package/dist/manifest/load.d.ts.map +1 -0
  184. package/dist/manifest/load.js +255 -0
  185. package/dist/manifest/schema.d.ts +173 -0
  186. package/dist/manifest/schema.d.ts.map +1 -0
  187. package/dist/manifest/schema.js +302 -0
  188. package/dist/physics/collision-system.d.ts +41 -0
  189. package/dist/physics/collision-system.d.ts.map +1 -0
  190. package/dist/physics/collision-system.js +64 -0
  191. package/dist/physics/physics-registry.d.ts +45 -0
  192. package/dist/physics/physics-registry.d.ts.map +1 -0
  193. package/dist/physics/physics-registry.js +65 -0
  194. package/dist/physics/transform-writer.d.ts +16 -0
  195. package/dist/physics/transform-writer.d.ts.map +1 -0
  196. package/dist/physics/transform-writer.js +38 -0
  197. package/dist/physics/trigger-dispatch.d.ts +24 -0
  198. package/dist/physics/trigger-dispatch.d.ts.map +1 -0
  199. package/dist/physics/trigger-dispatch.js +80 -0
  200. package/dist/react/game-state.d.ts +105 -0
  201. package/dist/react/game-state.d.ts.map +1 -0
  202. package/dist/react/game-state.js +144 -0
  203. package/dist/react/use-data.d.ts +60 -0
  204. package/dist/react/use-data.d.ts.map +1 -0
  205. package/dist/react/use-data.js +96 -0
  206. package/dist/react/use-selection.d.ts +75 -0
  207. package/dist/react/use-selection.d.ts.map +1 -0
  208. package/dist/react/use-selection.js +90 -0
  209. package/dist/render/auto-batcher.d.ts +34 -0
  210. package/dist/render/auto-batcher.d.ts.map +1 -0
  211. package/dist/render/auto-batcher.js +140 -0
  212. package/dist/render/render-batch-system.d.ts +33 -0
  213. package/dist/render/render-batch-system.d.ts.map +1 -0
  214. package/dist/render/render-batch-system.js +230 -0
  215. package/dist/render/render-features.d.ts +47 -0
  216. package/dist/render/render-features.d.ts.map +1 -0
  217. package/dist/render/render-features.js +105 -0
  218. package/dist/render/render-settings.d.ts +36 -0
  219. package/dist/render/render-settings.d.ts.map +1 -0
  220. package/dist/render/render-settings.js +51 -0
  221. package/dist/runtime/create-runtime.d.ts +280 -0
  222. package/dist/runtime/create-runtime.d.ts.map +1 -0
  223. package/dist/runtime/create-runtime.js +795 -0
  224. package/dist/runtime/frame-selector-cache.d.ts +41 -0
  225. package/dist/runtime/frame-selector-cache.d.ts.map +1 -0
  226. package/dist/runtime/frame-selector-cache.js +65 -0
  227. package/dist/runtime/game.d.ts +433 -0
  228. package/dist/runtime/game.d.ts.map +1 -0
  229. package/dist/runtime/game.js +569 -0
  230. package/dist/runtime/input-router.d.ts +78 -0
  231. package/dist/runtime/input-router.d.ts.map +1 -0
  232. package/dist/runtime/input-router.js +171 -0
  233. package/dist/runtime/mount-game.d.ts +129 -0
  234. package/dist/runtime/mount-game.d.ts.map +1 -0
  235. package/dist/runtime/mount-game.js +152 -0
  236. package/dist/runtime/mount-manifest.d.ts +119 -0
  237. package/dist/runtime/mount-manifest.d.ts.map +1 -0
  238. package/dist/runtime/mount-manifest.js +204 -0
  239. package/dist/runtime/render-audio-control.d.ts +110 -0
  240. package/dist/runtime/render-audio-control.d.ts.map +1 -0
  241. package/dist/runtime/render-audio-control.js +111 -0
  242. package/dist/runtime/render-control.d.ts +291 -0
  243. package/dist/runtime/render-control.d.ts.map +1 -0
  244. package/dist/runtime/render-control.js +264 -0
  245. package/dist/runtime/render-seed.d.ts +57 -0
  246. package/dist/runtime/render-seed.d.ts.map +1 -0
  247. package/dist/runtime/render-seed.js +74 -0
  248. package/dist/runtime/scene-ui-bridge.d.ts +69 -0
  249. package/dist/runtime/scene-ui-bridge.d.ts.map +1 -0
  250. package/dist/runtime/scene-ui-bridge.js +23 -0
  251. package/dist/runtime/scene-ui-data.d.ts +13 -0
  252. package/dist/runtime/scene-ui-data.d.ts.map +1 -0
  253. package/dist/runtime/scene-ui-data.js +92 -0
  254. package/dist/runtime/state-bridge.d.ts +47 -0
  255. package/dist/runtime/state-bridge.d.ts.map +1 -0
  256. package/dist/runtime/state-bridge.js +53 -0
  257. package/dist/runtime/types.d.ts +179 -0
  258. package/dist/runtime/types.d.ts.map +1 -0
  259. package/dist/runtime/types.js +1 -0
  260. package/dist/scene/asset-loaders.d.ts +79 -0
  261. package/dist/scene/asset-loaders.d.ts.map +1 -0
  262. package/dist/scene/asset-loaders.js +141 -0
  263. package/dist/scene/asset-paths.d.ts +11 -0
  264. package/dist/scene/asset-paths.d.ts.map +1 -0
  265. package/dist/scene/asset-paths.js +108 -0
  266. package/dist/scene/asset-ref-check.d.ts +88 -0
  267. package/dist/scene/asset-ref-check.d.ts.map +1 -0
  268. package/dist/scene/asset-ref-check.js +214 -0
  269. package/dist/scene/asset-registry.d.ts +30 -0
  270. package/dist/scene/asset-registry.d.ts.map +1 -0
  271. package/dist/scene/asset-registry.js +50 -0
  272. package/dist/scene/collider-dimensions.d.ts +63 -0
  273. package/dist/scene/collider-dimensions.d.ts.map +1 -0
  274. package/dist/scene/collider-dimensions.js +98 -0
  275. package/dist/scene/component-registry.d.ts +17 -0
  276. package/dist/scene/component-registry.d.ts.map +1 -0
  277. package/dist/scene/component-registry.js +28 -0
  278. package/dist/scene/defaults.d.ts +252 -0
  279. package/dist/scene/defaults.d.ts.map +1 -0
  280. package/dist/scene/defaults.js +151 -0
  281. package/dist/scene/geometries/index.d.ts +8 -0
  282. package/dist/scene/geometries/index.d.ts.map +1 -0
  283. package/dist/scene/geometries/index.js +7 -0
  284. package/dist/scene/geometries/terrain.d.ts +2 -0
  285. package/dist/scene/geometries/terrain.d.ts.map +1 -0
  286. package/dist/scene/geometries/terrain.js +37 -0
  287. package/dist/scene/geometry-registry.d.ts +24 -0
  288. package/dist/scene/geometry-registry.d.ts.map +1 -0
  289. package/dist/scene/geometry-registry.js +20 -0
  290. package/dist/scene/instance-registry.d.ts +36 -0
  291. package/dist/scene/instance-registry.d.ts.map +1 -0
  292. package/dist/scene/instance-registry.js +55 -0
  293. package/dist/scene/instancers/grid.d.ts +2 -0
  294. package/dist/scene/instancers/grid.d.ts.map +1 -0
  295. package/dist/scene/instancers/grid.js +36 -0
  296. package/dist/scene/instancers/index.d.ts +8 -0
  297. package/dist/scene/instancers/index.d.ts.map +1 -0
  298. package/dist/scene/instancers/index.js +7 -0
  299. package/dist/scene/light-camera-factory.d.ts +23 -0
  300. package/dist/scene/light-camera-factory.d.ts.map +1 -0
  301. package/dist/scene/light-camera-factory.js +68 -0
  302. package/dist/scene/material-factory.d.ts +17 -0
  303. package/dist/scene/material-factory.d.ts.map +1 -0
  304. package/dist/scene/material-factory.js +197 -0
  305. package/dist/scene/material-registry.d.ts +40 -0
  306. package/dist/scene/material-registry.d.ts.map +1 -0
  307. package/dist/scene/material-registry.js +44 -0
  308. package/dist/scene/materials/index.d.ts +8 -0
  309. package/dist/scene/materials/index.d.ts.map +1 -0
  310. package/dist/scene/materials/index.js +7 -0
  311. package/dist/scene/materials/water.d.ts +2 -0
  312. package/dist/scene/materials/water.d.ts.map +1 -0
  313. package/dist/scene/materials/water.js +54 -0
  314. package/dist/scene/parse.d.ts +23 -0
  315. package/dist/scene/parse.d.ts.map +1 -0
  316. package/dist/scene/parse.js +179 -0
  317. package/dist/scene/particles-factory.d.ts +33 -0
  318. package/dist/scene/particles-factory.d.ts.map +1 -0
  319. package/dist/scene/particles-factory.js +282 -0
  320. package/dist/scene/scene-apply.d.ts +109 -0
  321. package/dist/scene/scene-apply.d.ts.map +1 -0
  322. package/dist/scene/scene-apply.js +326 -0
  323. package/dist/scene/scene-diff-schema.d.ts +285 -0
  324. package/dist/scene/scene-diff-schema.d.ts.map +1 -0
  325. package/dist/scene/scene-diff-schema.js +92 -0
  326. package/dist/scene/scene-diff-types.d.ts +40 -0
  327. package/dist/scene/scene-diff-types.d.ts.map +1 -0
  328. package/dist/scene/scene-diff-types.js +14 -0
  329. package/dist/scene/scene-loader.d.ts +177 -0
  330. package/dist/scene/scene-loader.d.ts.map +1 -0
  331. package/dist/scene/scene-loader.js +1213 -0
  332. package/dist/scene/scene-query.d.ts +11 -0
  333. package/dist/scene/scene-query.d.ts.map +1 -0
  334. package/dist/scene/scene-query.js +63 -0
  335. package/dist/scene/scene-types.d.ts +10 -0
  336. package/dist/scene/scene-types.d.ts.map +1 -0
  337. package/dist/scene/scene-types.js +8 -0
  338. package/dist/scene/scene-version.d.ts +26 -0
  339. package/dist/scene/scene-version.d.ts.map +1 -0
  340. package/dist/scene/scene-version.js +34 -0
  341. package/dist/scene/schema/animation.d.ts +8 -0
  342. package/dist/scene/schema/animation.d.ts.map +1 -0
  343. package/dist/scene/schema/animation.js +42 -0
  344. package/dist/scene/schema/audio.d.ts +13 -0
  345. package/dist/scene/schema/audio.d.ts.map +1 -0
  346. package/dist/scene/schema/audio.js +22 -0
  347. package/dist/scene/schema/camera.d.ts +28 -0
  348. package/dist/scene/schema/camera.d.ts.map +1 -0
  349. package/dist/scene/schema/camera.js +17 -0
  350. package/dist/scene/schema/collider.d.ts +40 -0
  351. package/dist/scene/schema/collider.d.ts.map +1 -0
  352. package/dist/scene/schema/collider.js +55 -0
  353. package/dist/scene/schema/entity-ref.d.ts +31 -0
  354. package/dist/scene/schema/entity-ref.d.ts.map +1 -0
  355. package/dist/scene/schema/entity-ref.js +61 -0
  356. package/dist/scene/schema/entity.d.ts +1036 -0
  357. package/dist/scene/schema/entity.d.ts.map +1 -0
  358. package/dist/scene/schema/entity.js +153 -0
  359. package/dist/scene/schema/environment.d.ts +425 -0
  360. package/dist/scene/schema/environment.d.ts.map +1 -0
  361. package/dist/scene/schema/environment.js +357 -0
  362. package/dist/scene/schema/index.d.ts +39 -0
  363. package/dist/scene/schema/index.d.ts.map +1 -0
  364. package/dist/scene/schema/index.js +20 -0
  365. package/dist/scene/schema/instances.d.ts +14 -0
  366. package/dist/scene/schema/instances.d.ts.map +1 -0
  367. package/dist/scene/schema/instances.js +28 -0
  368. package/dist/scene/schema/joint.d.ts +23 -0
  369. package/dist/scene/schema/joint.d.ts.map +1 -0
  370. package/dist/scene/schema/joint.js +23 -0
  371. package/dist/scene/schema/light.d.ts +38 -0
  372. package/dist/scene/schema/light.d.ts.map +1 -0
  373. package/dist/scene/schema/light.js +26 -0
  374. package/dist/scene/schema/material.d.ts +199 -0
  375. package/dist/scene/schema/material.d.ts.map +1 -0
  376. package/dist/scene/schema/material.js +99 -0
  377. package/dist/scene/schema/mesh.d.ts +48 -0
  378. package/dist/scene/schema/mesh.d.ts.map +1 -0
  379. package/dist/scene/schema/mesh.js +82 -0
  380. package/dist/scene/schema/particles.d.ts +2178 -0
  381. package/dist/scene/schema/particles.d.ts.map +1 -0
  382. package/dist/scene/schema/particles.js +321 -0
  383. package/dist/scene/schema/physics.d.ts +56 -0
  384. package/dist/scene/schema/physics.d.ts.map +1 -0
  385. package/dist/scene/schema/physics.js +37 -0
  386. package/dist/scene/schema/scene-file.d.ts +304 -0
  387. package/dist/scene/schema/scene-file.d.ts.map +1 -0
  388. package/dist/scene/schema/scene-file.js +262 -0
  389. package/dist/scene/schema/shadow.d.ts +28 -0
  390. package/dist/scene/schema/shadow.d.ts.map +1 -0
  391. package/dist/scene/schema/shadow.js +20 -0
  392. package/dist/scene/schema/spline.d.ts +25 -0
  393. package/dist/scene/schema/spline.d.ts.map +1 -0
  394. package/dist/scene/schema/spline.js +15 -0
  395. package/dist/scene/schema/tuples.d.ts +12 -0
  396. package/dist/scene/schema/tuples.d.ts.map +1 -0
  397. package/dist/scene/schema/tuples.js +14 -0
  398. package/dist/scene/schema/ui.d.ts +880 -0
  399. package/dist/scene/schema/ui.d.ts.map +1 -0
  400. package/dist/scene/schema/ui.js +506 -0
  401. package/dist/scene/user-data.d.ts +171 -0
  402. package/dist/scene/user-data.d.ts.map +1 -0
  403. package/dist/scene/user-data.js +137 -0
  404. package/dist/setup/setup-audio.d.ts +20 -0
  405. package/dist/setup/setup-audio.d.ts.map +1 -0
  406. package/dist/setup/setup-audio.js +41 -0
  407. package/dist/setup/setup-particles.d.ts +17 -0
  408. package/dist/setup/setup-particles.d.ts.map +1 -0
  409. package/dist/setup/setup-particles.js +16 -0
  410. package/dist/setup/setup-physics.d.ts +25 -0
  411. package/dist/setup/setup-physics.d.ts.map +1 -0
  412. package/dist/setup/setup-physics.js +51 -0
  413. package/dist/setup/setup-renderer.d.ts +69 -0
  414. package/dist/setup/setup-renderer.d.ts.map +1 -0
  415. package/dist/setup/setup-renderer.js +363 -0
  416. package/dist/tools/define-tool.d.ts +105 -0
  417. package/dist/tools/define-tool.d.ts.map +1 -0
  418. package/dist/tools/define-tool.js +82 -0
  419. package/dist/world2d/authoring-2d.d.ts +76 -0
  420. package/dist/world2d/authoring-2d.d.ts.map +1 -0
  421. package/dist/world2d/authoring-2d.js +176 -0
  422. package/dist/world2d/capture-to-scene2d.d.ts +5 -0
  423. package/dist/world2d/capture-to-scene2d.d.ts.map +1 -0
  424. package/dist/world2d/capture-to-scene2d.js +49 -0
  425. package/dist/world2d/collision-2d.d.ts +52 -0
  426. package/dist/world2d/collision-2d.d.ts.map +1 -0
  427. package/dist/world2d/collision-2d.js +70 -0
  428. package/dist/world2d/components-2d.d.ts +47 -0
  429. package/dist/world2d/components-2d.d.ts.map +1 -0
  430. package/dist/world2d/components-2d.js +77 -0
  431. package/dist/world2d/index.d.ts +34 -0
  432. package/dist/world2d/index.d.ts.map +1 -0
  433. package/dist/world2d/index.js +32 -0
  434. package/dist/world2d/ingest-iframe-2d.d.ts +82 -0
  435. package/dist/world2d/ingest-iframe-2d.d.ts.map +1 -0
  436. package/dist/world2d/ingest-iframe-2d.js +166 -0
  437. package/dist/world2d/ingest2d.d.ts +97 -0
  438. package/dist/world2d/ingest2d.d.ts.map +1 -0
  439. package/dist/world2d/ingest2d.js +40 -0
  440. package/dist/world2d/physics2d-registry.d.ts +24 -0
  441. package/dist/world2d/physics2d-registry.d.ts.map +1 -0
  442. package/dist/world2d/physics2d-registry.js +38 -0
  443. package/dist/world2d/pixi-game-adapter.d.ts +107 -0
  444. package/dist/world2d/pixi-game-adapter.d.ts.map +1 -0
  445. package/dist/world2d/pixi-game-adapter.js +211 -0
  446. package/dist/world2d/pixi-surface.d.ts +39 -0
  447. package/dist/world2d/pixi-surface.d.ts.map +1 -0
  448. package/dist/world2d/pixi-surface.js +47 -0
  449. package/dist/world2d/scene-capture-2d.d.ts +43 -0
  450. package/dist/world2d/scene-capture-2d.d.ts.map +1 -0
  451. package/dist/world2d/scene-capture-2d.js +92 -0
  452. package/dist/world2d/scene2d-loader.d.ts +27 -0
  453. package/dist/world2d/scene2d-loader.d.ts.map +1 -0
  454. package/dist/world2d/scene2d-loader.js +274 -0
  455. package/dist/world2d/schema/entity2d.d.ts +102 -0
  456. package/dist/world2d/schema/entity2d.d.ts.map +1 -0
  457. package/dist/world2d/schema/entity2d.js +119 -0
  458. package/dist/world2d/schema/physics2d.d.ts +46 -0
  459. package/dist/world2d/schema/physics2d.d.ts.map +1 -0
  460. package/dist/world2d/schema/physics2d.js +45 -0
  461. package/dist/world2d/schema/sprite.d.ts +42 -0
  462. package/dist/world2d/schema/sprite.d.ts.map +1 -0
  463. package/dist/world2d/schema/sprite.js +63 -0
  464. package/dist/world2d/schema/tilemap.d.ts +15 -0
  465. package/dist/world2d/schema/tilemap.d.ts.map +1 -0
  466. package/dist/world2d/schema/tilemap.js +19 -0
  467. package/dist/world2d/schema/tuples2d.d.ts +20 -0
  468. package/dist/world2d/schema/tuples2d.d.ts.map +1 -0
  469. package/dist/world2d/schema/tuples2d.js +19 -0
  470. package/dist/world2d/system-adapters-2d.d.ts +16 -0
  471. package/dist/world2d/system-adapters-2d.d.ts.map +1 -0
  472. package/dist/world2d/system-adapters-2d.js +37 -0
  473. package/dist/world2d/transform-writer-2d.d.ts +16 -0
  474. package/dist/world2d/transform-writer-2d.d.ts.map +1 -0
  475. package/dist/world2d/transform-writer-2d.js +22 -0
  476. package/dist/world2d/types.d.ts +53 -0
  477. package/dist/world2d/types.d.ts.map +1 -0
  478. package/dist/world2d/types.js +1 -0
  479. package/package.json +18 -4
  480. package/src/adapter/authoring.ts +10 -0
  481. package/src/adapter/first-party-systems.ts +23 -34
  482. package/src/adapter/index.ts +1 -3
  483. package/src/adapter/system-adapter.ts +15 -22
  484. package/src/adapter/vgai-scene-game-adapter.ts +5 -14
  485. package/src/animation/anim-graph-types.ts +12 -43
  486. package/src/animation/animation-clock.ts +479 -0
  487. package/src/animation/camera-ownership.ts +467 -0
  488. package/src/animation/cinematic-cues.ts +451 -0
  489. package/src/animation/clip-map.ts +41 -0
  490. package/src/animation/gsap-registration.ts +184 -0
  491. package/src/animation/theatre-clock-binding.ts +111 -0
  492. package/src/animation/theatre-director.ts +347 -0
  493. package/src/animation/theatre-object-binding.ts +661 -0
  494. package/src/animation/xstate-animation-binding.ts +398 -0
  495. package/src/animation/xstate-animation-meta.ts +282 -0
  496. package/src/audio/index.ts +39 -7
  497. package/src/audio/tone-clock-binding.ts +98 -0
  498. package/src/audio/tone-context.ts +129 -0
  499. package/src/audio/tone-offline-render.ts +167 -0
  500. package/src/audio/wav-encode.ts +119 -0
  501. package/src/core/game-loop.ts +17 -0
  502. package/src/core/types.ts +13 -0
  503. package/src/data/data-asset.ts +167 -0
  504. package/src/data/data-check-core.ts +242 -0
  505. package/src/data/data-ref.ts +145 -0
  506. package/src/data/vite-plugin-data.ts +290 -0
  507. package/src/index.ts +48 -0
  508. package/src/input/input-manager.ts +1206 -32
  509. package/src/input/input-types.ts +155 -3
  510. package/src/input/prompt-labels.ts +122 -0
  511. package/src/input/rebind-controller.ts +105 -0
  512. package/src/input/schema.ts +206 -52
  513. package/src/react/use-data.ts +114 -0
  514. package/src/react/use-selection.tsx +135 -0
  515. package/src/runtime/create-runtime.ts +30 -9
  516. package/src/runtime/render-audio-control.ts +168 -0
  517. package/src/runtime/render-control.ts +522 -0
  518. package/src/runtime/render-seed.ts +79 -0
  519. package/src/runtime/types.ts +0 -5
  520. package/src/scene/asset-loaders.ts +10 -36
  521. package/src/scene/asset-paths.ts +0 -2
  522. package/src/scene/asset-ref-check.ts +248 -0
  523. package/src/scene/parse.ts +133 -0
  524. package/src/scene/scene-loader.ts +81 -96
  525. package/src/scene/schema/animation.ts +30 -79
  526. package/src/scene/schema/entity.ts +20 -0
  527. package/src/scene/schema/index.ts +2 -12
  528. package/src/scene/user-data.ts +8 -9
  529. package/src/setup/setup-renderer.ts +9 -2
  530. package/src/tools/define-tool.ts +152 -0
  531. package/src/animation/anim-graph.ts +0 -406
  532. package/src/animation/anim-system.ts +0 -28
  533. package/src/animation/property-track.ts +0 -178
  534. package/src/animation/schema.ts +0 -204
  535. package/src/audio/ambient.ts +0 -300
  536. package/src/audio/impacts.ts +0 -212
  537. package/src/audio/movement.ts +0 -140
  538. package/src/audio/musical.ts +0 -200
  539. package/src/audio/ui-sounds.ts +0 -171
  540. package/src/audio/vehicle.ts +0 -235
  541. package/src/audio/weapons.ts +0 -152
@@ -0,0 +1,880 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * A declarative binding to the game's reactive data source. The runtime resolves
4
+ * `source` (a dotted path, e.g. "player.health") against the UIDataSource the
5
+ * game provides; `mode` controls write-back for input controls (two-way / MVVM).
6
+ */
7
+ export declare const UIBindingSchema: z.ZodObject<{
8
+ source: z.ZodString;
9
+ mode: z.ZodOptional<z.ZodEnum<{
10
+ "one-way": "one-way";
11
+ "two-way": "two-way";
12
+ }>>;
13
+ transform: z.ZodOptional<z.ZodString>;
14
+ fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
15
+ }, z.core.$strip>;
16
+ export type UIBinding = z.infer<typeof UIBindingSchema>;
17
+ export declare const UILayoutSchema: z.ZodObject<{
18
+ position: z.ZodOptional<z.ZodEnum<{
19
+ flow: "flow";
20
+ absolute: "absolute";
21
+ }>>;
22
+ anchor: z.ZodOptional<z.ZodObject<{
23
+ left: z.ZodNumber;
24
+ top: z.ZodNumber;
25
+ right: z.ZodNumber;
26
+ bottom: z.ZodNumber;
27
+ }, z.core.$strip>>;
28
+ offset: z.ZodOptional<z.ZodObject<{
29
+ left: z.ZodNumber;
30
+ top: z.ZodNumber;
31
+ right: z.ZodNumber;
32
+ bottom: z.ZodNumber;
33
+ }, z.core.$strip>>;
34
+ pivot: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
35
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
36
+ height: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
37
+ minWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
38
+ maxWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
39
+ minHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
40
+ maxHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
41
+ aspectRatio: z.ZodOptional<z.ZodNumber>;
42
+ direction: z.ZodOptional<z.ZodEnum<{
43
+ column: "column";
44
+ row: "row";
45
+ "row-reverse": "row-reverse";
46
+ "column-reverse": "column-reverse";
47
+ }>>;
48
+ justify: z.ZodOptional<z.ZodEnum<{
49
+ start: "start";
50
+ center: "center";
51
+ end: "end";
52
+ "space-between": "space-between";
53
+ "space-around": "space-around";
54
+ "space-evenly": "space-evenly";
55
+ }>>;
56
+ align: z.ZodOptional<z.ZodEnum<{
57
+ start: "start";
58
+ center: "center";
59
+ end: "end";
60
+ stretch: "stretch";
61
+ baseline: "baseline";
62
+ }>>;
63
+ wrap: z.ZodOptional<z.ZodBoolean>;
64
+ gap: z.ZodOptional<z.ZodNumber>;
65
+ columns: z.ZodOptional<z.ZodNumber>;
66
+ grow: z.ZodOptional<z.ZodNumber>;
67
+ shrink: z.ZodOptional<z.ZodNumber>;
68
+ basis: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
69
+ alignSelf: z.ZodOptional<z.ZodEnum<{
70
+ auto: "auto";
71
+ start: "start";
72
+ center: "center";
73
+ end: "end";
74
+ stretch: "stretch";
75
+ baseline: "baseline";
76
+ }>>;
77
+ padding: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
78
+ margin: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
79
+ zIndex: z.ZodOptional<z.ZodNumber>;
80
+ overflow: z.ZodOptional<z.ZodEnum<{
81
+ auto: "auto";
82
+ visible: "visible";
83
+ hidden: "hidden";
84
+ scroll: "scroll";
85
+ }>>;
86
+ }, z.core.$strip>;
87
+ export type UILayout = z.infer<typeof UILayoutSchema>;
88
+ /**
89
+ * A flat style bag. Values are literal CSS-ish values OR theme-token refs
90
+ * ("$accent"). Kept open (record) for forward-compat, with the common authored
91
+ * properties documented. Numbers are treated as px where a length is expected.
92
+ */
93
+ export declare const UIStyleSchema: z.ZodObject<{
94
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
95
+ backgroundImage: z.ZodOptional<z.ZodString>;
96
+ backgroundSize: z.ZodOptional<z.ZodString>;
97
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
98
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
99
+ fontFamily: z.ZodOptional<z.ZodString>;
100
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
101
+ fontStyle: z.ZodOptional<z.ZodString>;
102
+ textAlign: z.ZodOptional<z.ZodEnum<{
103
+ center: "center";
104
+ left: "left";
105
+ right: "right";
106
+ justify: "justify";
107
+ }>>;
108
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
109
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
110
+ opacity: z.ZodOptional<z.ZodNumber>;
111
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
112
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
113
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
114
+ borderStyle: z.ZodOptional<z.ZodEnum<{
115
+ none: "none";
116
+ solid: "solid";
117
+ dashed: "dashed";
118
+ dotted: "dotted";
119
+ }>>;
120
+ boxShadow: z.ZodOptional<z.ZodString>;
121
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
122
+ cursor: z.ZodOptional<z.ZodString>;
123
+ transition: z.ZodOptional<z.ZodString>;
124
+ }, z.core.$strip>;
125
+ export type UIStyle = z.infer<typeof UIStyleSchema>;
126
+ /** Per-state style overrides (F3): normal is the base style; these layer on top. */
127
+ export declare const UIStateStylesSchema: z.ZodObject<{
128
+ hover: z.ZodOptional<z.ZodObject<{
129
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
130
+ backgroundImage: z.ZodOptional<z.ZodString>;
131
+ backgroundSize: z.ZodOptional<z.ZodString>;
132
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
133
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
134
+ fontFamily: z.ZodOptional<z.ZodString>;
135
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
136
+ fontStyle: z.ZodOptional<z.ZodString>;
137
+ textAlign: z.ZodOptional<z.ZodEnum<{
138
+ center: "center";
139
+ left: "left";
140
+ right: "right";
141
+ justify: "justify";
142
+ }>>;
143
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
144
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
145
+ opacity: z.ZodOptional<z.ZodNumber>;
146
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
147
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
148
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
149
+ borderStyle: z.ZodOptional<z.ZodEnum<{
150
+ none: "none";
151
+ solid: "solid";
152
+ dashed: "dashed";
153
+ dotted: "dotted";
154
+ }>>;
155
+ boxShadow: z.ZodOptional<z.ZodString>;
156
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
157
+ cursor: z.ZodOptional<z.ZodString>;
158
+ transition: z.ZodOptional<z.ZodString>;
159
+ }, z.core.$strip>>;
160
+ pressed: z.ZodOptional<z.ZodObject<{
161
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
162
+ backgroundImage: z.ZodOptional<z.ZodString>;
163
+ backgroundSize: z.ZodOptional<z.ZodString>;
164
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
165
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
166
+ fontFamily: z.ZodOptional<z.ZodString>;
167
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
168
+ fontStyle: z.ZodOptional<z.ZodString>;
169
+ textAlign: z.ZodOptional<z.ZodEnum<{
170
+ center: "center";
171
+ left: "left";
172
+ right: "right";
173
+ justify: "justify";
174
+ }>>;
175
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
176
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
177
+ opacity: z.ZodOptional<z.ZodNumber>;
178
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
179
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
180
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
181
+ borderStyle: z.ZodOptional<z.ZodEnum<{
182
+ none: "none";
183
+ solid: "solid";
184
+ dashed: "dashed";
185
+ dotted: "dotted";
186
+ }>>;
187
+ boxShadow: z.ZodOptional<z.ZodString>;
188
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
189
+ cursor: z.ZodOptional<z.ZodString>;
190
+ transition: z.ZodOptional<z.ZodString>;
191
+ }, z.core.$strip>>;
192
+ disabled: z.ZodOptional<z.ZodObject<{
193
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
194
+ backgroundImage: z.ZodOptional<z.ZodString>;
195
+ backgroundSize: z.ZodOptional<z.ZodString>;
196
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
197
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
198
+ fontFamily: z.ZodOptional<z.ZodString>;
199
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
200
+ fontStyle: z.ZodOptional<z.ZodString>;
201
+ textAlign: z.ZodOptional<z.ZodEnum<{
202
+ center: "center";
203
+ left: "left";
204
+ right: "right";
205
+ justify: "justify";
206
+ }>>;
207
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
208
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
209
+ opacity: z.ZodOptional<z.ZodNumber>;
210
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
211
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
212
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
213
+ borderStyle: z.ZodOptional<z.ZodEnum<{
214
+ none: "none";
215
+ solid: "solid";
216
+ dashed: "dashed";
217
+ dotted: "dotted";
218
+ }>>;
219
+ boxShadow: z.ZodOptional<z.ZodString>;
220
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
221
+ cursor: z.ZodOptional<z.ZodString>;
222
+ transition: z.ZodOptional<z.ZodString>;
223
+ }, z.core.$strip>>;
224
+ focus: z.ZodOptional<z.ZodObject<{
225
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
226
+ backgroundImage: z.ZodOptional<z.ZodString>;
227
+ backgroundSize: z.ZodOptional<z.ZodString>;
228
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
229
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
230
+ fontFamily: z.ZodOptional<z.ZodString>;
231
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
232
+ fontStyle: z.ZodOptional<z.ZodString>;
233
+ textAlign: z.ZodOptional<z.ZodEnum<{
234
+ center: "center";
235
+ left: "left";
236
+ right: "right";
237
+ justify: "justify";
238
+ }>>;
239
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
240
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
241
+ opacity: z.ZodOptional<z.ZodNumber>;
242
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
243
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
244
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
245
+ borderStyle: z.ZodOptional<z.ZodEnum<{
246
+ none: "none";
247
+ solid: "solid";
248
+ dashed: "dashed";
249
+ dotted: "dotted";
250
+ }>>;
251
+ boxShadow: z.ZodOptional<z.ZodString>;
252
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
253
+ cursor: z.ZodOptional<z.ZodString>;
254
+ transition: z.ZodOptional<z.ZodString>;
255
+ }, z.core.$strip>>;
256
+ }, z.core.$strip>;
257
+ /**
258
+ * A reusable theme/style resource (F1). `tokens` is a flat map of token name ->
259
+ * value referenced by style props as "$name". `variants` are named style
260
+ * variations of a base look (F4 / Godot type variations). Authored inline on a
261
+ * UI root OR as a standalone `.uitheme.json` referenced by `themeRef`.
262
+ */
263
+ export declare const UIThemeSchema: z.ZodObject<{
264
+ name: z.ZodString;
265
+ tokens: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
266
+ variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
267
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
268
+ backgroundImage: z.ZodOptional<z.ZodString>;
269
+ backgroundSize: z.ZodOptional<z.ZodString>;
270
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
271
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
272
+ fontFamily: z.ZodOptional<z.ZodString>;
273
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
274
+ fontStyle: z.ZodOptional<z.ZodString>;
275
+ textAlign: z.ZodOptional<z.ZodEnum<{
276
+ center: "center";
277
+ left: "left";
278
+ right: "right";
279
+ justify: "justify";
280
+ }>>;
281
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
282
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
283
+ opacity: z.ZodOptional<z.ZodNumber>;
284
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
285
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
286
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
287
+ borderStyle: z.ZodOptional<z.ZodEnum<{
288
+ none: "none";
289
+ solid: "solid";
290
+ dashed: "dashed";
291
+ dotted: "dotted";
292
+ }>>;
293
+ boxShadow: z.ZodOptional<z.ZodString>;
294
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
295
+ cursor: z.ZodOptional<z.ZodString>;
296
+ transition: z.ZodOptional<z.ZodString>;
297
+ }, z.core.$strip>>>;
298
+ }, z.core.$strip>;
299
+ export type UITheme = z.infer<typeof UIThemeSchema>;
300
+ /** Standalone theme asset file (.uitheme.json) — the chosen theme file boundary. */
301
+ export declare const UIThemeFileSchema: z.ZodObject<{
302
+ version: z.ZodNumber;
303
+ theme: z.ZodObject<{
304
+ name: z.ZodString;
305
+ tokens: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
306
+ variants: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
307
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
308
+ backgroundImage: z.ZodOptional<z.ZodString>;
309
+ backgroundSize: z.ZodOptional<z.ZodString>;
310
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
311
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
312
+ fontFamily: z.ZodOptional<z.ZodString>;
313
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
314
+ fontStyle: z.ZodOptional<z.ZodString>;
315
+ textAlign: z.ZodOptional<z.ZodEnum<{
316
+ center: "center";
317
+ left: "left";
318
+ right: "right";
319
+ justify: "justify";
320
+ }>>;
321
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
322
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
323
+ opacity: z.ZodOptional<z.ZodNumber>;
324
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
325
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
326
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
327
+ borderStyle: z.ZodOptional<z.ZodEnum<{
328
+ none: "none";
329
+ solid: "solid";
330
+ dashed: "dashed";
331
+ dotted: "dotted";
332
+ }>>;
333
+ boxShadow: z.ZodOptional<z.ZodString>;
334
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
335
+ cursor: z.ZodOptional<z.ZodString>;
336
+ transition: z.ZodOptional<z.ZodString>;
337
+ }, z.core.$strip>>>;
338
+ }, z.core.$strip>;
339
+ }, z.core.$strip>;
340
+ export type UIThemeFile = z.infer<typeof UIThemeFileSchema>;
341
+ /**
342
+ * Node kinds. Containers (canvas/box/grid/stack/scroll/panel/tab/center/wrap/
343
+ * aspect/sizebox) arrange children; controls (text/richtext/button/image/input/
344
+ * toggle/slider/dropdown/progress) are leaves; `component` references a reusable
345
+ * React component or a saved UI prefab.
346
+ */
347
+ export declare const UINodeKindSchema: z.ZodEnum<{
348
+ input: "input";
349
+ toggle: "toggle";
350
+ box: "box";
351
+ grid: "grid";
352
+ center: "center";
353
+ wrap: "wrap";
354
+ scroll: "scroll";
355
+ canvas: "canvas";
356
+ stack: "stack";
357
+ panel: "panel";
358
+ aspect: "aspect";
359
+ sizebox: "sizebox";
360
+ tab: "tab";
361
+ text: "text";
362
+ richtext: "richtext";
363
+ button: "button";
364
+ image: "image";
365
+ slider: "slider";
366
+ dropdown: "dropdown";
367
+ progress: "progress";
368
+ component: "component";
369
+ }>;
370
+ export type UINodeKind = z.infer<typeof UINodeKindSchema>;
371
+ /** Easing applied to the segment LEAVING a keyframe toward the next. */
372
+ export declare const UIEasingSchema: z.ZodEnum<{
373
+ linear: "linear";
374
+ "ease-in": "ease-in";
375
+ "ease-out": "ease-out";
376
+ "ease-in-out": "ease-in-out";
377
+ step: "step";
378
+ }>;
379
+ export type UIEasing = z.infer<typeof UIEasingSchema>;
380
+ /**
381
+ * The animatable properties. Curated so each maps to a GPU-friendly CSS output
382
+ * (transform/opacity/color/size) — animating these does not reflow per frame.
383
+ */
384
+ export declare const UIAnimatablePropertySchema: z.ZodEnum<{
385
+ color: "color";
386
+ width: "width";
387
+ height: "height";
388
+ scale: "scale";
389
+ opacity: "opacity";
390
+ backgroundColor: "backgroundColor";
391
+ translateX: "translateX";
392
+ translateY: "translateY";
393
+ rotate: "rotate";
394
+ }>;
395
+ export type UIAnimatableProperty = z.infer<typeof UIAnimatablePropertySchema>;
396
+ /** A single keyframe: a value at a time (seconds), with the easing leaving it. */
397
+ export declare const UIKeyframeSchema: z.ZodObject<{
398
+ time: z.ZodNumber;
399
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
400
+ easing: z.ZodOptional<z.ZodEnum<{
401
+ linear: "linear";
402
+ "ease-in": "ease-in";
403
+ "ease-out": "ease-out";
404
+ "ease-in-out": "ease-in-out";
405
+ step: "step";
406
+ }>>;
407
+ }, z.core.$strip>;
408
+ export type UIKeyframe = z.infer<typeof UIKeyframeSchema>;
409
+ /** A track animates ONE property via an ordered list of keyframes (S1). */
410
+ export declare const UITrackSchema: z.ZodObject<{
411
+ property: z.ZodEnum<{
412
+ color: "color";
413
+ width: "width";
414
+ height: "height";
415
+ scale: "scale";
416
+ opacity: "opacity";
417
+ backgroundColor: "backgroundColor";
418
+ translateX: "translateX";
419
+ translateY: "translateY";
420
+ rotate: "rotate";
421
+ }>;
422
+ keyframes: z.ZodArray<z.ZodObject<{
423
+ time: z.ZodNumber;
424
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
425
+ easing: z.ZodOptional<z.ZodEnum<{
426
+ linear: "linear";
427
+ "ease-in": "ease-in";
428
+ "ease-out": "ease-out";
429
+ "ease-in-out": "ease-in-out";
430
+ step: "step";
431
+ }>>;
432
+ }, z.core.$strip>>;
433
+ }, z.core.$strip>;
434
+ export type UITrack = z.infer<typeof UITrackSchema>;
435
+ /** A named animation clip: multiple tracks (multi-property), duration, loop (S1). */
436
+ declare const UIAnimationBase: z.ZodObject<{
437
+ name: z.ZodString;
438
+ duration: z.ZodNumber;
439
+ loop: z.ZodOptional<z.ZodBoolean>;
440
+ autoplay: z.ZodOptional<z.ZodBoolean>;
441
+ playOnEvent: z.ZodOptional<z.ZodString>;
442
+ tracks: z.ZodArray<z.ZodObject<{
443
+ property: z.ZodEnum<{
444
+ color: "color";
445
+ width: "width";
446
+ height: "height";
447
+ scale: "scale";
448
+ opacity: "opacity";
449
+ backgroundColor: "backgroundColor";
450
+ translateX: "translateX";
451
+ translateY: "translateY";
452
+ rotate: "rotate";
453
+ }>;
454
+ keyframes: z.ZodArray<z.ZodObject<{
455
+ time: z.ZodNumber;
456
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
457
+ easing: z.ZodOptional<z.ZodEnum<{
458
+ linear: "linear";
459
+ "ease-in": "ease-in";
460
+ "ease-out": "ease-out";
461
+ "ease-in-out": "ease-in-out";
462
+ step: "step";
463
+ }>>;
464
+ }, z.core.$strip>>;
465
+ }, z.core.$strip>>;
466
+ }, z.core.$strip>;
467
+ export declare const UIAnimationSchema: z.ZodObject<{
468
+ name: z.ZodString;
469
+ duration: z.ZodNumber;
470
+ loop: z.ZodOptional<z.ZodBoolean>;
471
+ autoplay: z.ZodOptional<z.ZodBoolean>;
472
+ playOnEvent: z.ZodOptional<z.ZodString>;
473
+ tracks: z.ZodArray<z.ZodObject<{
474
+ property: z.ZodEnum<{
475
+ color: "color";
476
+ width: "width";
477
+ height: "height";
478
+ scale: "scale";
479
+ opacity: "opacity";
480
+ backgroundColor: "backgroundColor";
481
+ translateX: "translateX";
482
+ translateY: "translateY";
483
+ rotate: "rotate";
484
+ }>;
485
+ keyframes: z.ZodArray<z.ZodObject<{
486
+ time: z.ZodNumber;
487
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
488
+ easing: z.ZodOptional<z.ZodEnum<{
489
+ linear: "linear";
490
+ "ease-in": "ease-in";
491
+ "ease-out": "ease-out";
492
+ "ease-in-out": "ease-in-out";
493
+ step: "step";
494
+ }>>;
495
+ }, z.core.$strip>>;
496
+ }, z.core.$strip>>;
497
+ }, z.core.$strip>;
498
+ export type UIAnimation = z.infer<typeof UIAnimationBase>;
499
+ /**
500
+ * Recursive UI node. Typed via z.lazy like SceneEntity. `children` nest the tree.
501
+ */
502
+ export type UINode = z.infer<typeof UINodeBase> & {
503
+ children?: UINode[] | undefined;
504
+ };
505
+ declare const UINodeBase: z.ZodObject<{
506
+ id: z.ZodOptional<z.ZodString>;
507
+ name: z.ZodString;
508
+ kind: z.ZodEnum<{
509
+ input: "input";
510
+ toggle: "toggle";
511
+ box: "box";
512
+ grid: "grid";
513
+ center: "center";
514
+ wrap: "wrap";
515
+ scroll: "scroll";
516
+ canvas: "canvas";
517
+ stack: "stack";
518
+ panel: "panel";
519
+ aspect: "aspect";
520
+ sizebox: "sizebox";
521
+ tab: "tab";
522
+ text: "text";
523
+ richtext: "richtext";
524
+ button: "button";
525
+ image: "image";
526
+ slider: "slider";
527
+ dropdown: "dropdown";
528
+ progress: "progress";
529
+ component: "component";
530
+ }>;
531
+ visible: z.ZodOptional<z.ZodBoolean>;
532
+ locked: z.ZodOptional<z.ZodBoolean>;
533
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
534
+ layout: z.ZodOptional<z.ZodObject<{
535
+ position: z.ZodOptional<z.ZodEnum<{
536
+ flow: "flow";
537
+ absolute: "absolute";
538
+ }>>;
539
+ anchor: z.ZodOptional<z.ZodObject<{
540
+ left: z.ZodNumber;
541
+ top: z.ZodNumber;
542
+ right: z.ZodNumber;
543
+ bottom: z.ZodNumber;
544
+ }, z.core.$strip>>;
545
+ offset: z.ZodOptional<z.ZodObject<{
546
+ left: z.ZodNumber;
547
+ top: z.ZodNumber;
548
+ right: z.ZodNumber;
549
+ bottom: z.ZodNumber;
550
+ }, z.core.$strip>>;
551
+ pivot: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
552
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
553
+ height: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
554
+ minWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
555
+ maxWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
556
+ minHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
557
+ maxHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
558
+ aspectRatio: z.ZodOptional<z.ZodNumber>;
559
+ direction: z.ZodOptional<z.ZodEnum<{
560
+ column: "column";
561
+ row: "row";
562
+ "row-reverse": "row-reverse";
563
+ "column-reverse": "column-reverse";
564
+ }>>;
565
+ justify: z.ZodOptional<z.ZodEnum<{
566
+ start: "start";
567
+ center: "center";
568
+ end: "end";
569
+ "space-between": "space-between";
570
+ "space-around": "space-around";
571
+ "space-evenly": "space-evenly";
572
+ }>>;
573
+ align: z.ZodOptional<z.ZodEnum<{
574
+ start: "start";
575
+ center: "center";
576
+ end: "end";
577
+ stretch: "stretch";
578
+ baseline: "baseline";
579
+ }>>;
580
+ wrap: z.ZodOptional<z.ZodBoolean>;
581
+ gap: z.ZodOptional<z.ZodNumber>;
582
+ columns: z.ZodOptional<z.ZodNumber>;
583
+ grow: z.ZodOptional<z.ZodNumber>;
584
+ shrink: z.ZodOptional<z.ZodNumber>;
585
+ basis: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
586
+ alignSelf: z.ZodOptional<z.ZodEnum<{
587
+ auto: "auto";
588
+ start: "start";
589
+ center: "center";
590
+ end: "end";
591
+ stretch: "stretch";
592
+ baseline: "baseline";
593
+ }>>;
594
+ padding: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
595
+ margin: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
596
+ zIndex: z.ZodOptional<z.ZodNumber>;
597
+ overflow: z.ZodOptional<z.ZodEnum<{
598
+ auto: "auto";
599
+ visible: "visible";
600
+ hidden: "hidden";
601
+ scroll: "scroll";
602
+ }>>;
603
+ }, z.core.$strip>>;
604
+ style: z.ZodOptional<z.ZodObject<{
605
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
606
+ backgroundImage: z.ZodOptional<z.ZodString>;
607
+ backgroundSize: z.ZodOptional<z.ZodString>;
608
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
609
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
610
+ fontFamily: z.ZodOptional<z.ZodString>;
611
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
612
+ fontStyle: z.ZodOptional<z.ZodString>;
613
+ textAlign: z.ZodOptional<z.ZodEnum<{
614
+ center: "center";
615
+ left: "left";
616
+ right: "right";
617
+ justify: "justify";
618
+ }>>;
619
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
620
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
621
+ opacity: z.ZodOptional<z.ZodNumber>;
622
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
623
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
624
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
625
+ borderStyle: z.ZodOptional<z.ZodEnum<{
626
+ none: "none";
627
+ solid: "solid";
628
+ dashed: "dashed";
629
+ dotted: "dotted";
630
+ }>>;
631
+ boxShadow: z.ZodOptional<z.ZodString>;
632
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
633
+ cursor: z.ZodOptional<z.ZodString>;
634
+ transition: z.ZodOptional<z.ZodString>;
635
+ }, z.core.$strip>>;
636
+ states: z.ZodOptional<z.ZodObject<{
637
+ hover: z.ZodOptional<z.ZodObject<{
638
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
639
+ backgroundImage: z.ZodOptional<z.ZodString>;
640
+ backgroundSize: z.ZodOptional<z.ZodString>;
641
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
642
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
643
+ fontFamily: z.ZodOptional<z.ZodString>;
644
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
645
+ fontStyle: z.ZodOptional<z.ZodString>;
646
+ textAlign: z.ZodOptional<z.ZodEnum<{
647
+ center: "center";
648
+ left: "left";
649
+ right: "right";
650
+ justify: "justify";
651
+ }>>;
652
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
653
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
654
+ opacity: z.ZodOptional<z.ZodNumber>;
655
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
656
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
657
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
658
+ borderStyle: z.ZodOptional<z.ZodEnum<{
659
+ none: "none";
660
+ solid: "solid";
661
+ dashed: "dashed";
662
+ dotted: "dotted";
663
+ }>>;
664
+ boxShadow: z.ZodOptional<z.ZodString>;
665
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
666
+ cursor: z.ZodOptional<z.ZodString>;
667
+ transition: z.ZodOptional<z.ZodString>;
668
+ }, z.core.$strip>>;
669
+ pressed: z.ZodOptional<z.ZodObject<{
670
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
671
+ backgroundImage: z.ZodOptional<z.ZodString>;
672
+ backgroundSize: z.ZodOptional<z.ZodString>;
673
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
674
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
675
+ fontFamily: z.ZodOptional<z.ZodString>;
676
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
677
+ fontStyle: z.ZodOptional<z.ZodString>;
678
+ textAlign: z.ZodOptional<z.ZodEnum<{
679
+ center: "center";
680
+ left: "left";
681
+ right: "right";
682
+ justify: "justify";
683
+ }>>;
684
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
685
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
686
+ opacity: z.ZodOptional<z.ZodNumber>;
687
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
688
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
689
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
690
+ borderStyle: z.ZodOptional<z.ZodEnum<{
691
+ none: "none";
692
+ solid: "solid";
693
+ dashed: "dashed";
694
+ dotted: "dotted";
695
+ }>>;
696
+ boxShadow: z.ZodOptional<z.ZodString>;
697
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
698
+ cursor: z.ZodOptional<z.ZodString>;
699
+ transition: z.ZodOptional<z.ZodString>;
700
+ }, z.core.$strip>>;
701
+ disabled: z.ZodOptional<z.ZodObject<{
702
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
703
+ backgroundImage: z.ZodOptional<z.ZodString>;
704
+ backgroundSize: z.ZodOptional<z.ZodString>;
705
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
706
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
707
+ fontFamily: z.ZodOptional<z.ZodString>;
708
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
709
+ fontStyle: z.ZodOptional<z.ZodString>;
710
+ textAlign: z.ZodOptional<z.ZodEnum<{
711
+ center: "center";
712
+ left: "left";
713
+ right: "right";
714
+ justify: "justify";
715
+ }>>;
716
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
717
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
718
+ opacity: z.ZodOptional<z.ZodNumber>;
719
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
720
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
721
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
722
+ borderStyle: z.ZodOptional<z.ZodEnum<{
723
+ none: "none";
724
+ solid: "solid";
725
+ dashed: "dashed";
726
+ dotted: "dotted";
727
+ }>>;
728
+ boxShadow: z.ZodOptional<z.ZodString>;
729
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
730
+ cursor: z.ZodOptional<z.ZodString>;
731
+ transition: z.ZodOptional<z.ZodString>;
732
+ }, z.core.$strip>>;
733
+ focus: z.ZodOptional<z.ZodObject<{
734
+ backgroundColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
735
+ backgroundImage: z.ZodOptional<z.ZodString>;
736
+ backgroundSize: z.ZodOptional<z.ZodString>;
737
+ color: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
738
+ fontSize: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
739
+ fontFamily: z.ZodOptional<z.ZodString>;
740
+ fontWeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
741
+ fontStyle: z.ZodOptional<z.ZodString>;
742
+ textAlign: z.ZodOptional<z.ZodEnum<{
743
+ center: "center";
744
+ left: "left";
745
+ right: "right";
746
+ justify: "justify";
747
+ }>>;
748
+ lineHeight: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
749
+ letterSpacing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
750
+ opacity: z.ZodOptional<z.ZodNumber>;
751
+ borderRadius: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
752
+ borderWidth: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
753
+ borderColor: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
754
+ borderStyle: z.ZodOptional<z.ZodEnum<{
755
+ none: "none";
756
+ solid: "solid";
757
+ dashed: "dashed";
758
+ dotted: "dotted";
759
+ }>>;
760
+ boxShadow: z.ZodOptional<z.ZodString>;
761
+ sliceInset: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
762
+ cursor: z.ZodOptional<z.ZodString>;
763
+ transition: z.ZodOptional<z.ZodString>;
764
+ }, z.core.$strip>>;
765
+ }, z.core.$strip>>;
766
+ variant: z.ZodOptional<z.ZodString>;
767
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString>, z.ZodArray<z.ZodNumber>, z.ZodObject<{
768
+ $bind: z.ZodObject<{
769
+ source: z.ZodString;
770
+ mode: z.ZodOptional<z.ZodEnum<{
771
+ "one-way": "one-way";
772
+ "two-way": "two-way";
773
+ }>>;
774
+ transform: z.ZodOptional<z.ZodString>;
775
+ fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
776
+ }, z.core.$strip>;
777
+ }, z.core.$strip>]>>>;
778
+ bindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
779
+ source: z.ZodString;
780
+ mode: z.ZodOptional<z.ZodEnum<{
781
+ "one-way": "one-way";
782
+ "two-way": "two-way";
783
+ }>>;
784
+ transform: z.ZodOptional<z.ZodString>;
785
+ fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
786
+ }, z.core.$strip>>>;
787
+ events: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
788
+ component: z.ZodOptional<z.ZodString>;
789
+ repeat: z.ZodOptional<z.ZodObject<{
790
+ items: z.ZodObject<{
791
+ source: z.ZodString;
792
+ mode: z.ZodOptional<z.ZodEnum<{
793
+ "one-way": "one-way";
794
+ "two-way": "two-way";
795
+ }>>;
796
+ transform: z.ZodOptional<z.ZodString>;
797
+ fallback: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
798
+ }, z.core.$strip>;
799
+ as: z.ZodString;
800
+ keyPath: z.ZodOptional<z.ZodString>;
801
+ }, z.core.$strip>>;
802
+ animations: z.ZodOptional<z.ZodArray<z.ZodObject<{
803
+ name: z.ZodString;
804
+ duration: z.ZodNumber;
805
+ loop: z.ZodOptional<z.ZodBoolean>;
806
+ autoplay: z.ZodOptional<z.ZodBoolean>;
807
+ playOnEvent: z.ZodOptional<z.ZodString>;
808
+ tracks: z.ZodArray<z.ZodObject<{
809
+ property: z.ZodEnum<{
810
+ color: "color";
811
+ width: "width";
812
+ height: "height";
813
+ scale: "scale";
814
+ opacity: "opacity";
815
+ backgroundColor: "backgroundColor";
816
+ translateX: "translateX";
817
+ translateY: "translateY";
818
+ rotate: "rotate";
819
+ }>;
820
+ keyframes: z.ZodArray<z.ZodObject<{
821
+ time: z.ZodNumber;
822
+ value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
823
+ easing: z.ZodOptional<z.ZodEnum<{
824
+ linear: "linear";
825
+ "ease-in": "ease-in";
826
+ "ease-out": "ease-out";
827
+ "ease-in-out": "ease-in-out";
828
+ step: "step";
829
+ }>>;
830
+ }, z.core.$strip>>;
831
+ }, z.core.$strip>>;
832
+ }, z.core.$strip>>>;
833
+ }, z.core.$strip>;
834
+ export declare const UINodeSchema: z.ZodType<UINode>;
835
+ /** Responsive scaling config for a UI root (I1/I2). */
836
+ declare const UIScalingSchema: z.ZodObject<{
837
+ referenceWidth: z.ZodNumber;
838
+ referenceHeight: z.ZodNumber;
839
+ mode: z.ZodOptional<z.ZodEnum<{
840
+ "scale-with-size": "scale-with-size";
841
+ "constant-pixel": "constant-pixel";
842
+ "constant-physical": "constant-physical";
843
+ }>>;
844
+ aspect: z.ZodOptional<z.ZodEnum<{
845
+ expand: "expand";
846
+ keep: "keep";
847
+ "keep-width": "keep-width";
848
+ "keep-height": "keep-height";
849
+ }>>;
850
+ match: z.ZodOptional<z.ZodNumber>;
851
+ }, z.core.$strip>;
852
+ /**
853
+ * A UI root — a canvas placed screen-space or screen-tracked to a 3D entity (A3).
854
+ * Carries the responsive scaling config and an optional inline theme / theme ref.
855
+ */
856
+ export declare const UIRootSchema: z.ZodType<UIRoot>;
857
+ export type UIRoot = z.infer<typeof UINodeBase> & {
858
+ kind: 'canvas';
859
+ space?: 'screen' | 'world-tracked' | undefined;
860
+ trackEntity?: string | undefined;
861
+ scaling?: z.infer<typeof UIScalingSchema> | undefined;
862
+ theme?: UITheme | undefined;
863
+ themeRef?: string | undefined;
864
+ locale?: string | undefined;
865
+ children?: UINode[] | undefined;
866
+ };
867
+ /**
868
+ * A saved reusable UI prefab/component (H1). Mirrors PrefabFile but for a UI
869
+ * subtree, with declared exposed props/slots (H3).
870
+ */
871
+ export declare const UIPrefabFileSchema: z.ZodObject<{
872
+ version: z.ZodNumber;
873
+ name: z.ZodString;
874
+ root: z.ZodType<UINode, unknown, z.core.$ZodTypeInternals<UINode, unknown>>;
875
+ exposedProps: z.ZodOptional<z.ZodArray<z.ZodString>>;
876
+ slots: z.ZodOptional<z.ZodArray<z.ZodString>>;
877
+ }, z.core.$strip>;
878
+ export type UIPrefabFile = z.infer<typeof UIPrefabFileSchema>;
879
+ export {};
880
+ //# sourceMappingURL=ui.d.ts.map