@nice2dev/ui-graphics 1.0.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 (511) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/LICENSE +21 -0
  3. package/README.md +339 -0
  4. package/dist/cjs/animation/AnimatedPerson.js +153 -0
  5. package/dist/cjs/animation/AnimatedPerson.js.map +1 -0
  6. package/dist/cjs/animation/AnimationEditor.js +106 -0
  7. package/dist/cjs/animation/AnimationEditor.js.map +1 -0
  8. package/dist/cjs/animation/Audience.js +59 -0
  9. package/dist/cjs/animation/Audience.js.map +1 -0
  10. package/dist/cjs/animation/BodyRenderer.js +33 -0
  11. package/dist/cjs/animation/BodyRenderer.js.map +1 -0
  12. package/dist/cjs/animation/animationHelper.js +272 -0
  13. package/dist/cjs/animation/animationHelper.js.map +1 -0
  14. package/dist/cjs/animation/characterTypes.js +75 -0
  15. package/dist/cjs/animation/characterTypes.js.map +1 -0
  16. package/dist/cjs/animation/choreoDSL.js +190 -0
  17. package/dist/cjs/animation/choreoDSL.js.map +1 -0
  18. package/dist/cjs/animation/choreography.js +41 -0
  19. package/dist/cjs/animation/choreography.js.map +1 -0
  20. package/dist/cjs/animation/karaokeIntegration.js +98 -0
  21. package/dist/cjs/animation/karaokeIntegration.js.map +1 -0
  22. package/dist/cjs/animation/lottieExport.js +128 -0
  23. package/dist/cjs/animation/lottieExport.js.map +1 -0
  24. package/dist/cjs/animation/motionPath.js +196 -0
  25. package/dist/cjs/animation/motionPath.js.map +1 -0
  26. package/dist/cjs/animation/physics.js +201 -0
  27. package/dist/cjs/animation/physics.js.map +1 -0
  28. package/dist/cjs/animation/rig/RigPlayer.js +63 -0
  29. package/dist/cjs/animation/rig/RigPlayer.js.map +1 -0
  30. package/dist/cjs/animation/rig/RiggedBody.js +30 -0
  31. package/dist/cjs/animation/rig/RiggedBody.js.map +1 -0
  32. package/dist/cjs/animation/rig/choreoRigBridge.js +63 -0
  33. package/dist/cjs/animation/rig/choreoRigBridge.js.map +1 -0
  34. package/dist/cjs/animation/rig/ik.js +22 -0
  35. package/dist/cjs/animation/rig/ik.js.map +1 -0
  36. package/dist/cjs/animation/rig/poseOps.js +49 -0
  37. package/dist/cjs/animation/rig/poseOps.js.map +1 -0
  38. package/dist/cjs/animation/rig/presets.js +60 -0
  39. package/dist/cjs/animation/rig/presets.js.map +1 -0
  40. package/dist/cjs/animation/rig/rigMath.js +41 -0
  41. package/dist/cjs/animation/rig/rigMath.js.map +1 -0
  42. package/dist/cjs/animation/rig/rigTypes.js +44 -0
  43. package/dist/cjs/animation/rig/rigTypes.js.map +1 -0
  44. package/dist/cjs/animation/shapes/arms.js +15 -0
  45. package/dist/cjs/animation/shapes/arms.js.map +1 -0
  46. package/dist/cjs/animation/shapes/eyes.js +52 -0
  47. package/dist/cjs/animation/shapes/eyes.js.map +1 -0
  48. package/dist/cjs/animation/shapes/hair.js +55 -0
  49. package/dist/cjs/animation/shapes/hair.js.map +1 -0
  50. package/dist/cjs/animation/shapes/heads.js +62 -0
  51. package/dist/cjs/animation/shapes/heads.js.map +1 -0
  52. package/dist/cjs/animation/shapes/headwear.js +44 -0
  53. package/dist/cjs/animation/shapes/headwear.js.map +1 -0
  54. package/dist/cjs/animation/shapes/legs.js +15 -0
  55. package/dist/cjs/animation/shapes/legs.js.map +1 -0
  56. package/dist/cjs/animation/shapes/mouths.js +53 -0
  57. package/dist/cjs/animation/shapes/mouths.js.map +1 -0
  58. package/dist/cjs/animation/shapes/noses.js +31 -0
  59. package/dist/cjs/animation/shapes/noses.js.map +1 -0
  60. package/dist/cjs/animation/shapes/outfits.js +43 -0
  61. package/dist/cjs/animation/shapes/outfits.js.map +1 -0
  62. package/dist/cjs/animation/shapes/torsos.js +13 -0
  63. package/dist/cjs/animation/shapes/torsos.js.map +1 -0
  64. package/dist/cjs/animation/spineExport.js +132 -0
  65. package/dist/cjs/animation/spineExport.js.map +1 -0
  66. package/dist/cjs/core/LocalUI.js +54 -0
  67. package/dist/cjs/core/LocalUI.js.map +1 -0
  68. package/dist/cjs/core/collaboration.js +259 -0
  69. package/dist/cjs/core/collaboration.js.map +1 -0
  70. package/dist/cjs/core/colorBlindness.js +97 -0
  71. package/dist/cjs/core/colorBlindness.js.map +1 -0
  72. package/dist/cjs/core/dragDrop.js +168 -0
  73. package/dist/cjs/core/dragDrop.js.map +1 -0
  74. package/dist/cjs/core/fixes.js +185 -0
  75. package/dist/cjs/core/fixes.js.map +1 -0
  76. package/dist/cjs/core/gridGuides.js +245 -0
  77. package/dist/cjs/core/gridGuides.js.map +1 -0
  78. package/dist/cjs/core/historyVisual.js +124 -0
  79. package/dist/cjs/core/historyVisual.js.map +1 -0
  80. package/dist/cjs/core/i18n.js +16 -0
  81. package/dist/cjs/core/i18n.js.map +1 -0
  82. package/dist/cjs/core/integrations.js +261 -0
  83. package/dist/cjs/core/integrations.js.map +1 -0
  84. package/dist/cjs/core/minimap.js +142 -0
  85. package/dist/cjs/core/minimap.js.map +1 -0
  86. package/dist/cjs/core/plugins.js +129 -0
  87. package/dist/cjs/core/plugins.js.map +1 -0
  88. package/dist/cjs/core/rtl.js +102 -0
  89. package/dist/cjs/core/rtl.js.map +1 -0
  90. package/dist/cjs/core/shortcuts.js +205 -0
  91. package/dist/cjs/core/shortcuts.js.map +1 -0
  92. package/dist/cjs/core/theme.js +171 -0
  93. package/dist/cjs/core/theme.js.map +1 -0
  94. package/dist/cjs/font/NiceFontEditor.js +193 -0
  95. package/dist/cjs/font/NiceFontEditor.js.map +1 -0
  96. package/dist/cjs/game/GameAsset2dEditor.js +371 -0
  97. package/dist/cjs/game/GameAsset2dEditor.js.map +1 -0
  98. package/dist/cjs/game/GameAsset2dEditor.module.css.js +6 -0
  99. package/dist/cjs/game/GameAsset2dEditor.module.css.js.map +1 -0
  100. package/dist/cjs/game/gameAssetTypes.js +20 -0
  101. package/dist/cjs/game/gameAssetTypes.js.map +1 -0
  102. package/dist/cjs/game/gameAssetUtils.js +475 -0
  103. package/dist/cjs/game/gameAssetUtils.js.map +1 -0
  104. package/dist/cjs/game/useGameAssetEditor.js +761 -0
  105. package/dist/cjs/game/useGameAssetEditor.js.map +1 -0
  106. package/dist/cjs/icon/NiceIconEditor.js +249 -0
  107. package/dist/cjs/icon/NiceIconEditor.js.map +1 -0
  108. package/dist/cjs/index.js +264 -0
  109. package/dist/cjs/index.js.map +1 -0
  110. package/dist/cjs/nice2dev-ui/dist/index.js +32070 -0
  111. package/dist/cjs/nice2dev-ui/dist/index.js.map +1 -0
  112. package/dist/cjs/nice2dev-ui-graphics.css +1 -0
  113. package/dist/cjs/photo/FilterThumb.js +29 -0
  114. package/dist/cjs/photo/FilterThumb.js.map +1 -0
  115. package/dist/cjs/photo/PhotoEditor.js +20 -0
  116. package/dist/cjs/photo/PhotoEditor.js.map +1 -0
  117. package/dist/cjs/photo/PhotoEditor.module.css.js +6 -0
  118. package/dist/cjs/photo/PhotoEditor.module.css.js.map +1 -0
  119. package/dist/cjs/photo/PhotoEditorCanvas.js +59 -0
  120. package/dist/cjs/photo/PhotoEditorCanvas.js.map +1 -0
  121. package/dist/cjs/photo/PhotoEditorLeftPanel.js +174 -0
  122. package/dist/cjs/photo/PhotoEditorLeftPanel.js.map +1 -0
  123. package/dist/cjs/photo/PhotoEditorToolbar.js +15 -0
  124. package/dist/cjs/photo/PhotoEditorToolbar.js.map +1 -0
  125. package/dist/cjs/photo/photoEditorActions.js +80 -0
  126. package/dist/cjs/photo/photoEditorActions.js.map +1 -0
  127. package/dist/cjs/photo/photoEditorTypes.js +40 -0
  128. package/dist/cjs/photo/photoEditorTypes.js.map +1 -0
  129. package/dist/cjs/photo/photoFilters.js +880 -0
  130. package/dist/cjs/photo/photoFilters.js.map +1 -0
  131. package/dist/cjs/photo/photoOverlays.js +651 -0
  132. package/dist/cjs/photo/photoOverlays.js.map +1 -0
  133. package/dist/cjs/photo/photoSelection.js +547 -0
  134. package/dist/cjs/photo/photoSelection.js.map +1 -0
  135. package/dist/cjs/photo/usePhotoEditor.js +640 -0
  136. package/dist/cjs/photo/usePhotoEditor.js.map +1 -0
  137. package/dist/cjs/pixel/HSVPicker.js +173 -0
  138. package/dist/cjs/pixel/HSVPicker.js.map +1 -0
  139. package/dist/cjs/pixel/PixelEditor.js +28 -0
  140. package/dist/cjs/pixel/PixelEditor.js.map +1 -0
  141. package/dist/cjs/pixel/PixelEditor.module.css.js +6 -0
  142. package/dist/cjs/pixel/PixelEditor.module.css.js.map +1 -0
  143. package/dist/cjs/pixel/PixelEditorCanvas.js +15 -0
  144. package/dist/cjs/pixel/PixelEditorCanvas.js.map +1 -0
  145. package/dist/cjs/pixel/PixelEditorMenuBar.js +11 -0
  146. package/dist/cjs/pixel/PixelEditorMenuBar.js.map +1 -0
  147. package/dist/cjs/pixel/PixelEditorRightPanel.js +15 -0
  148. package/dist/cjs/pixel/PixelEditorRightPanel.js.map +1 -0
  149. package/dist/cjs/pixel/PixelEditorStatusBar.js +15 -0
  150. package/dist/cjs/pixel/PixelEditorStatusBar.js.map +1 -0
  151. package/dist/cjs/pixel/PixelEditorTimeline.js +11 -0
  152. package/dist/cjs/pixel/PixelEditorTimeline.js.map +1 -0
  153. package/dist/cjs/pixel/PixelEditorToolbar.js +16 -0
  154. package/dist/cjs/pixel/PixelEditorToolbar.js.map +1 -0
  155. package/dist/cjs/pixel/asepriteFormat.js +512 -0
  156. package/dist/cjs/pixel/asepriteFormat.js.map +1 -0
  157. package/dist/cjs/pixel/pixelEditorExports.js +471 -0
  158. package/dist/cjs/pixel/pixelEditorExports.js.map +1 -0
  159. package/dist/cjs/pixel/pixelEditorTypes.js +102 -0
  160. package/dist/cjs/pixel/pixelEditorTypes.js.map +1 -0
  161. package/dist/cjs/pixel/pixelEditorUtils.js +664 -0
  162. package/dist/cjs/pixel/pixelEditorUtils.js.map +1 -0
  163. package/dist/cjs/pixel/usePixelEditor.js +1112 -0
  164. package/dist/cjs/pixel/usePixelEditor.js.map +1 -0
  165. package/dist/cjs/texture/Nice3DTexturePainter.js +236 -0
  166. package/dist/cjs/texture/Nice3DTexturePainter.js.map +1 -0
  167. package/dist/cjs/ui/NiceUIDesigner.js +191 -0
  168. package/dist/cjs/ui/NiceUIDesigner.js.map +1 -0
  169. package/dist/cjs/vector/VectorEditor.js +31 -0
  170. package/dist/cjs/vector/VectorEditor.js.map +1 -0
  171. package/dist/cjs/vector/VectorEditor.module.css.js +6 -0
  172. package/dist/cjs/vector/VectorEditor.module.css.js.map +1 -0
  173. package/dist/cjs/vector/VectorEditorMenuBar.js +16 -0
  174. package/dist/cjs/vector/VectorEditorMenuBar.js.map +1 -0
  175. package/dist/cjs/vector/VectorEditorRightPanel.js +126 -0
  176. package/dist/cjs/vector/VectorEditorRightPanel.js.map +1 -0
  177. package/dist/cjs/vector/VectorEditorShapeRenderer.js +55 -0
  178. package/dist/cjs/vector/VectorEditorShapeRenderer.js.map +1 -0
  179. package/dist/cjs/vector/VectorEditorStatusBar.js +14 -0
  180. package/dist/cjs/vector/VectorEditorStatusBar.js.map +1 -0
  181. package/dist/cjs/vector/useVectorEditor.js +613 -0
  182. package/dist/cjs/vector/useVectorEditor.js.map +1 -0
  183. package/dist/cjs/vector/vectorBooleanOps.js +511 -0
  184. package/dist/cjs/vector/vectorBooleanOps.js.map +1 -0
  185. package/dist/cjs/vector/vectorEditorExport.js +159 -0
  186. package/dist/cjs/vector/vectorEditorExport.js.map +1 -0
  187. package/dist/cjs/vector/vectorEditorImport.js +150 -0
  188. package/dist/cjs/vector/vectorEditorImport.js.map +1 -0
  189. package/dist/cjs/vector/vectorEditorTypes.js +72 -0
  190. package/dist/cjs/vector/vectorEditorTypes.js.map +1 -0
  191. package/dist/cjs/vector/vectorGradients.js +201 -0
  192. package/dist/cjs/vector/vectorGradients.js.map +1 -0
  193. package/dist/esm/animation/AnimatedPerson.js +151 -0
  194. package/dist/esm/animation/AnimatedPerson.js.map +1 -0
  195. package/dist/esm/animation/AnimationEditor.js +104 -0
  196. package/dist/esm/animation/AnimationEditor.js.map +1 -0
  197. package/dist/esm/animation/Audience.js +57 -0
  198. package/dist/esm/animation/Audience.js.map +1 -0
  199. package/dist/esm/animation/BodyRenderer.js +28 -0
  200. package/dist/esm/animation/BodyRenderer.js.map +1 -0
  201. package/dist/esm/animation/animationHelper.js +268 -0
  202. package/dist/esm/animation/animationHelper.js.map +1 -0
  203. package/dist/esm/animation/characterTypes.js +70 -0
  204. package/dist/esm/animation/characterTypes.js.map +1 -0
  205. package/dist/esm/animation/choreoDSL.js +182 -0
  206. package/dist/esm/animation/choreoDSL.js.map +1 -0
  207. package/dist/esm/animation/choreography.js +36 -0
  208. package/dist/esm/animation/choreography.js.map +1 -0
  209. package/dist/esm/animation/karaokeIntegration.js +91 -0
  210. package/dist/esm/animation/karaokeIntegration.js.map +1 -0
  211. package/dist/esm/animation/lottieExport.js +123 -0
  212. package/dist/esm/animation/lottieExport.js.map +1 -0
  213. package/dist/esm/animation/motionPath.js +185 -0
  214. package/dist/esm/animation/motionPath.js.map +1 -0
  215. package/dist/esm/animation/physics.js +192 -0
  216. package/dist/esm/animation/physics.js.map +1 -0
  217. package/dist/esm/animation/rig/RigPlayer.js +61 -0
  218. package/dist/esm/animation/rig/RigPlayer.js.map +1 -0
  219. package/dist/esm/animation/rig/RiggedBody.js +28 -0
  220. package/dist/esm/animation/rig/RiggedBody.js.map +1 -0
  221. package/dist/esm/animation/rig/choreoRigBridge.js +60 -0
  222. package/dist/esm/animation/rig/choreoRigBridge.js.map +1 -0
  223. package/dist/esm/animation/rig/ik.js +20 -0
  224. package/dist/esm/animation/rig/ik.js.map +1 -0
  225. package/dist/esm/animation/rig/poseOps.js +45 -0
  226. package/dist/esm/animation/rig/poseOps.js.map +1 -0
  227. package/dist/esm/animation/rig/presets.js +53 -0
  228. package/dist/esm/animation/rig/presets.js.map +1 -0
  229. package/dist/esm/animation/rig/rigMath.js +37 -0
  230. package/dist/esm/animation/rig/rigMath.js.map +1 -0
  231. package/dist/esm/animation/rig/rigTypes.js +40 -0
  232. package/dist/esm/animation/rig/rigTypes.js.map +1 -0
  233. package/dist/esm/animation/shapes/arms.js +13 -0
  234. package/dist/esm/animation/shapes/arms.js.map +1 -0
  235. package/dist/esm/animation/shapes/eyes.js +45 -0
  236. package/dist/esm/animation/shapes/eyes.js.map +1 -0
  237. package/dist/esm/animation/shapes/hair.js +46 -0
  238. package/dist/esm/animation/shapes/hair.js.map +1 -0
  239. package/dist/esm/animation/shapes/heads.js +52 -0
  240. package/dist/esm/animation/shapes/heads.js.map +1 -0
  241. package/dist/esm/animation/shapes/headwear.js +36 -0
  242. package/dist/esm/animation/shapes/headwear.js.map +1 -0
  243. package/dist/esm/animation/shapes/legs.js +13 -0
  244. package/dist/esm/animation/shapes/legs.js.map +1 -0
  245. package/dist/esm/animation/shapes/mouths.js +45 -0
  246. package/dist/esm/animation/shapes/mouths.js.map +1 -0
  247. package/dist/esm/animation/shapes/noses.js +23 -0
  248. package/dist/esm/animation/shapes/noses.js.map +1 -0
  249. package/dist/esm/animation/shapes/outfits.js +37 -0
  250. package/dist/esm/animation/shapes/outfits.js.map +1 -0
  251. package/dist/esm/animation/shapes/torsos.js +11 -0
  252. package/dist/esm/animation/shapes/torsos.js.map +1 -0
  253. package/dist/esm/animation/spineExport.js +128 -0
  254. package/dist/esm/animation/spineExport.js.map +1 -0
  255. package/dist/esm/core/LocalUI.js +50 -0
  256. package/dist/esm/core/LocalUI.js.map +1 -0
  257. package/dist/esm/core/collaboration.js +252 -0
  258. package/dist/esm/core/collaboration.js.map +1 -0
  259. package/dist/esm/core/colorBlindness.js +90 -0
  260. package/dist/esm/core/colorBlindness.js.map +1 -0
  261. package/dist/esm/core/dragDrop.js +165 -0
  262. package/dist/esm/core/dragDrop.js.map +1 -0
  263. package/dist/esm/core/fixes.js +179 -0
  264. package/dist/esm/core/fixes.js.map +1 -0
  265. package/dist/esm/core/gridGuides.js +232 -0
  266. package/dist/esm/core/gridGuides.js.map +1 -0
  267. package/dist/esm/core/historyVisual.js +121 -0
  268. package/dist/esm/core/historyVisual.js.map +1 -0
  269. package/dist/esm/core/i18n.js +13 -0
  270. package/dist/esm/core/i18n.js.map +1 -0
  271. package/dist/esm/core/integrations.js +254 -0
  272. package/dist/esm/core/integrations.js.map +1 -0
  273. package/dist/esm/core/minimap.js +139 -0
  274. package/dist/esm/core/minimap.js.map +1 -0
  275. package/dist/esm/core/plugins.js +124 -0
  276. package/dist/esm/core/plugins.js.map +1 -0
  277. package/dist/esm/core/rtl.js +95 -0
  278. package/dist/esm/core/rtl.js.map +1 -0
  279. package/dist/esm/core/shortcuts.js +200 -0
  280. package/dist/esm/core/shortcuts.js.map +1 -0
  281. package/dist/esm/core/theme.js +162 -0
  282. package/dist/esm/core/theme.js.map +1 -0
  283. package/dist/esm/font/NiceFontEditor.js +189 -0
  284. package/dist/esm/font/NiceFontEditor.js.map +1 -0
  285. package/dist/esm/game/GameAsset2dEditor.js +369 -0
  286. package/dist/esm/game/GameAsset2dEditor.js.map +1 -0
  287. package/dist/esm/game/GameAsset2dEditor.module.css.js +4 -0
  288. package/dist/esm/game/GameAsset2dEditor.module.css.js.map +1 -0
  289. package/dist/esm/game/gameAssetTypes.js +18 -0
  290. package/dist/esm/game/gameAssetTypes.js.map +1 -0
  291. package/dist/esm/game/gameAssetUtils.js +456 -0
  292. package/dist/esm/game/gameAssetUtils.js.map +1 -0
  293. package/dist/esm/game/useGameAssetEditor.js +759 -0
  294. package/dist/esm/game/useGameAssetEditor.js.map +1 -0
  295. package/dist/esm/icon/NiceIconEditor.js +246 -0
  296. package/dist/esm/icon/NiceIconEditor.js.map +1 -0
  297. package/dist/esm/index.js +59 -0
  298. package/dist/esm/index.js.map +1 -0
  299. package/dist/esm/nice2dev-ui/dist/index.js +31720 -0
  300. package/dist/esm/nice2dev-ui/dist/index.js.map +1 -0
  301. package/dist/esm/nice2dev-ui-graphics.css +1 -0
  302. package/dist/esm/photo/FilterThumb.js +27 -0
  303. package/dist/esm/photo/FilterThumb.js.map +1 -0
  304. package/dist/esm/photo/PhotoEditor.js +18 -0
  305. package/dist/esm/photo/PhotoEditor.js.map +1 -0
  306. package/dist/esm/photo/PhotoEditor.module.css.js +4 -0
  307. package/dist/esm/photo/PhotoEditor.module.css.js.map +1 -0
  308. package/dist/esm/photo/PhotoEditorCanvas.js +57 -0
  309. package/dist/esm/photo/PhotoEditorCanvas.js.map +1 -0
  310. package/dist/esm/photo/PhotoEditorLeftPanel.js +172 -0
  311. package/dist/esm/photo/PhotoEditorLeftPanel.js.map +1 -0
  312. package/dist/esm/photo/PhotoEditorToolbar.js +13 -0
  313. package/dist/esm/photo/PhotoEditorToolbar.js.map +1 -0
  314. package/dist/esm/photo/photoEditorActions.js +75 -0
  315. package/dist/esm/photo/photoEditorActions.js.map +1 -0
  316. package/dist/esm/photo/photoEditorTypes.js +36 -0
  317. package/dist/esm/photo/photoEditorTypes.js.map +1 -0
  318. package/dist/esm/photo/photoFilters.js +871 -0
  319. package/dist/esm/photo/photoFilters.js.map +1 -0
  320. package/dist/esm/photo/photoOverlays.js +636 -0
  321. package/dist/esm/photo/photoOverlays.js.map +1 -0
  322. package/dist/esm/photo/photoSelection.js +535 -0
  323. package/dist/esm/photo/photoSelection.js.map +1 -0
  324. package/dist/esm/photo/usePhotoEditor.js +638 -0
  325. package/dist/esm/photo/usePhotoEditor.js.map +1 -0
  326. package/dist/esm/pixel/HSVPicker.js +171 -0
  327. package/dist/esm/pixel/HSVPicker.js.map +1 -0
  328. package/dist/esm/pixel/PixelEditor.js +26 -0
  329. package/dist/esm/pixel/PixelEditor.js.map +1 -0
  330. package/dist/esm/pixel/PixelEditor.module.css.js +4 -0
  331. package/dist/esm/pixel/PixelEditor.module.css.js.map +1 -0
  332. package/dist/esm/pixel/PixelEditorCanvas.js +13 -0
  333. package/dist/esm/pixel/PixelEditorCanvas.js.map +1 -0
  334. package/dist/esm/pixel/PixelEditorMenuBar.js +9 -0
  335. package/dist/esm/pixel/PixelEditorMenuBar.js.map +1 -0
  336. package/dist/esm/pixel/PixelEditorRightPanel.js +13 -0
  337. package/dist/esm/pixel/PixelEditorRightPanel.js.map +1 -0
  338. package/dist/esm/pixel/PixelEditorStatusBar.js +13 -0
  339. package/dist/esm/pixel/PixelEditorStatusBar.js.map +1 -0
  340. package/dist/esm/pixel/PixelEditorTimeline.js +9 -0
  341. package/dist/esm/pixel/PixelEditorTimeline.js.map +1 -0
  342. package/dist/esm/pixel/PixelEditorToolbar.js +14 -0
  343. package/dist/esm/pixel/PixelEditorToolbar.js.map +1 -0
  344. package/dist/esm/pixel/asepriteFormat.js +505 -0
  345. package/dist/esm/pixel/asepriteFormat.js.map +1 -0
  346. package/dist/esm/pixel/pixelEditorExports.js +461 -0
  347. package/dist/esm/pixel/pixelEditorExports.js.map +1 -0
  348. package/dist/esm/pixel/pixelEditorTypes.js +90 -0
  349. package/dist/esm/pixel/pixelEditorTypes.js.map +1 -0
  350. package/dist/esm/pixel/pixelEditorUtils.js +631 -0
  351. package/dist/esm/pixel/pixelEditorUtils.js.map +1 -0
  352. package/dist/esm/pixel/usePixelEditor.js +1110 -0
  353. package/dist/esm/pixel/usePixelEditor.js.map +1 -0
  354. package/dist/esm/texture/Nice3DTexturePainter.js +233 -0
  355. package/dist/esm/texture/Nice3DTexturePainter.js.map +1 -0
  356. package/dist/esm/ui/NiceUIDesigner.js +187 -0
  357. package/dist/esm/ui/NiceUIDesigner.js.map +1 -0
  358. package/dist/esm/vector/VectorEditor.js +29 -0
  359. package/dist/esm/vector/VectorEditor.js.map +1 -0
  360. package/dist/esm/vector/VectorEditor.module.css.js +4 -0
  361. package/dist/esm/vector/VectorEditor.module.css.js.map +1 -0
  362. package/dist/esm/vector/VectorEditorMenuBar.js +14 -0
  363. package/dist/esm/vector/VectorEditorMenuBar.js.map +1 -0
  364. package/dist/esm/vector/VectorEditorRightPanel.js +124 -0
  365. package/dist/esm/vector/VectorEditorRightPanel.js.map +1 -0
  366. package/dist/esm/vector/VectorEditorShapeRenderer.js +53 -0
  367. package/dist/esm/vector/VectorEditorShapeRenderer.js.map +1 -0
  368. package/dist/esm/vector/VectorEditorStatusBar.js +12 -0
  369. package/dist/esm/vector/VectorEditorStatusBar.js.map +1 -0
  370. package/dist/esm/vector/useVectorEditor.js +611 -0
  371. package/dist/esm/vector/useVectorEditor.js.map +1 -0
  372. package/dist/esm/vector/vectorBooleanOps.js +507 -0
  373. package/dist/esm/vector/vectorBooleanOps.js.map +1 -0
  374. package/dist/esm/vector/vectorEditorExport.js +152 -0
  375. package/dist/esm/vector/vectorEditorExport.js.map +1 -0
  376. package/dist/esm/vector/vectorEditorImport.js +148 -0
  377. package/dist/esm/vector/vectorEditorImport.js.map +1 -0
  378. package/dist/esm/vector/vectorEditorTypes.js +63 -0
  379. package/dist/esm/vector/vectorEditorTypes.js.map +1 -0
  380. package/dist/esm/vector/vectorGradients.js +193 -0
  381. package/dist/esm/vector/vectorGradients.js.map +1 -0
  382. package/dist/types/__benchmarks__/bench.d.ts +13 -0
  383. package/dist/types/__tests__/setup.d.ts +4 -0
  384. package/dist/types/animation/AnimatedPerson.d.ts +14 -0
  385. package/dist/types/animation/AnimationEditor.d.ts +20 -0
  386. package/dist/types/animation/Audience.d.ts +11 -0
  387. package/dist/types/animation/BodyRenderer.d.ts +12 -0
  388. package/dist/types/animation/animationHelper.d.ts +28 -0
  389. package/dist/types/animation/characterTypes.d.ts +37 -0
  390. package/dist/types/animation/choreoDSL.d.ts +88 -0
  391. package/dist/types/animation/choreography.d.ts +8 -0
  392. package/dist/types/animation/karaokeIntegration.d.ts +31 -0
  393. package/dist/types/animation/lottieExport.d.ts +77 -0
  394. package/dist/types/animation/motionPath.d.ts +60 -0
  395. package/dist/types/animation/physics.d.ts +73 -0
  396. package/dist/types/animation/rig/RigPlayer.d.ts +32 -0
  397. package/dist/types/animation/rig/RiggedBody.d.ts +19 -0
  398. package/dist/types/animation/rig/choreoRigBridge.d.ts +9 -0
  399. package/dist/types/animation/rig/ik.d.ts +8 -0
  400. package/dist/types/animation/rig/poseOps.d.ts +14 -0
  401. package/dist/types/animation/rig/presets.d.ts +13 -0
  402. package/dist/types/animation/rig/rigMath.d.ts +7 -0
  403. package/dist/types/animation/rig/rigTypes.d.ts +38 -0
  404. package/dist/types/animation/shapes/arms.d.ts +10 -0
  405. package/dist/types/animation/shapes/eyes.d.ts +17 -0
  406. package/dist/types/animation/shapes/hair.d.ts +17 -0
  407. package/dist/types/animation/shapes/heads.d.ts +18 -0
  408. package/dist/types/animation/shapes/headwear.d.ts +16 -0
  409. package/dist/types/animation/shapes/legs.d.ts +10 -0
  410. package/dist/types/animation/shapes/mouths.d.ts +17 -0
  411. package/dist/types/animation/shapes/noses.d.ts +17 -0
  412. package/dist/types/animation/shapes/outfits.d.ts +14 -0
  413. package/dist/types/animation/shapes/torsos.d.ts +9 -0
  414. package/dist/types/animation/spineExport.d.ts +66 -0
  415. package/dist/types/core/LocalUI.d.ts +21 -0
  416. package/dist/types/core/collaboration.d.ts +164 -0
  417. package/dist/types/core/colorBlindness.d.ts +24 -0
  418. package/dist/types/core/dragDrop.d.ts +46 -0
  419. package/dist/types/core/fixes.d.ts +80 -0
  420. package/dist/types/core/gridGuides.d.ts +70 -0
  421. package/dist/types/core/historyVisual.d.ts +915 -0
  422. package/dist/types/core/i18n.d.ts +27 -0
  423. package/dist/types/core/integrations.d.ts +103 -0
  424. package/dist/types/core/minimap.d.ts +49 -0
  425. package/dist/types/core/plugins.d.ts +111 -0
  426. package/dist/types/core/rtl.d.ts +32 -0
  427. package/dist/types/core/shortcuts.d.ts +150 -0
  428. package/dist/types/core/theme.d.ts +78 -0
  429. package/dist/types/core/useGamepad.d.ts +64 -0
  430. package/dist/types/core/usePointerPressure.d.ts +88 -0
  431. package/dist/types/font/NiceFontEditor.d.ts +62 -0
  432. package/dist/types/game/AnimationPreviewPlayer.d.ts +29 -0
  433. package/dist/types/game/CollisionEditor.d.ts +101 -0
  434. package/dist/types/game/GameAsset2dEditor.d.ts +17 -0
  435. package/dist/types/game/GameAssetExportPanel.d.ts +20 -0
  436. package/dist/types/game/IsometricEditor.d.ts +22 -0
  437. package/dist/types/game/IsometricTilePanel.d.ts +18 -0
  438. package/dist/types/game/gameAssetExport.d.ts +160 -0
  439. package/dist/types/game/gameAssetTypes.d.ts +238 -0
  440. package/dist/types/game/gameAssetUtils.d.ts +23 -0
  441. package/dist/types/game/index.d.ts +8 -0
  442. package/dist/types/game/isometricTiles.d.ts +250 -0
  443. package/dist/types/game/useAnimationPreview.d.ts +63 -0
  444. package/dist/types/game/useCollisionEditor.d.ts +96 -0
  445. package/dist/types/game/useGameAssetEditor.d.ts +79 -0
  446. package/dist/types/game/useGameAssetExport.d.ts +82 -0
  447. package/dist/types/icon/NiceIconEditor.d.ts +79 -0
  448. package/dist/types/index.d.ts +85 -0
  449. package/dist/types/photo/BatchProcessingPanel.d.ts +13 -0
  450. package/dist/types/photo/FaceDetectionPanel.d.ts +18 -0
  451. package/dist/types/photo/FilterThumb.d.ts +14 -0
  452. package/dist/types/photo/PerspectiveCorrectionPanel.d.ts +17 -0
  453. package/dist/types/photo/PhotoEditor.d.ts +2 -0
  454. package/dist/types/photo/PhotoEditorCanvas.d.ts +14 -0
  455. package/dist/types/photo/PhotoEditorLeftPanel.d.ts +13 -0
  456. package/dist/types/photo/PhotoEditorToolbar.d.ts +13 -0
  457. package/dist/types/photo/RawFilePanel.d.ts +14 -0
  458. package/dist/types/photo/StyleTransferPanel.d.ts +15 -0
  459. package/dist/types/photo/aiStyleTransfer.d.ts +58 -0
  460. package/dist/types/photo/batchProcessing.d.ts +95 -0
  461. package/dist/types/photo/faceDetection.d.ts +103 -0
  462. package/dist/types/photo/index.d.ts +17 -0
  463. package/dist/types/photo/perspectiveCorrection.d.ts +134 -0
  464. package/dist/types/photo/photoEditorActions.d.ts +40 -0
  465. package/dist/types/photo/photoEditorTypes.d.ts +34 -0
  466. package/dist/types/photo/photoFilters.d.ts +55 -0
  467. package/dist/types/photo/photoOverlays.d.ts +126 -0
  468. package/dist/types/photo/photoSelection.d.ts +56 -0
  469. package/dist/types/photo/rawFileSupport.d.ts +124 -0
  470. package/dist/types/photo/usePhotoEditor.d.ts +123 -0
  471. package/dist/types/pixel/HSVPicker.d.ts +11 -0
  472. package/dist/types/pixel/PaletteExtractorPanel.d.ts +16 -0
  473. package/dist/types/pixel/PixelEditor.d.ts +17 -0
  474. package/dist/types/pixel/PixelEditorCanvas.d.ts +10 -0
  475. package/dist/types/pixel/PixelEditorMenuBar.d.ts +11 -0
  476. package/dist/types/pixel/PixelEditorRightPanel.d.ts +11 -0
  477. package/dist/types/pixel/PixelEditorStatusBar.d.ts +11 -0
  478. package/dist/types/pixel/PixelEditorTimeline.d.ts +11 -0
  479. package/dist/types/pixel/PixelEditorToolbar.d.ts +11 -0
  480. package/dist/types/pixel/TileMapPanel.d.ts +14 -0
  481. package/dist/types/pixel/asepriteFormat.d.ts +62 -0
  482. package/dist/types/pixel/paletteExtractor.d.ts +73 -0
  483. package/dist/types/pixel/pixelEditorExports.d.ts +31 -0
  484. package/dist/types/pixel/pixelEditorTypes.d.ts +51 -0
  485. package/dist/types/pixel/pixelEditorUtils.d.ts +136 -0
  486. package/dist/types/pixel/tileMapMode.d.ts +122 -0
  487. package/dist/types/pixel/usePixelEditor.d.ts +114 -0
  488. package/dist/types/texture/Nice3DTexturePainter.d.ts +55 -0
  489. package/dist/types/ui/NiceUIDesigner.d.ts +43 -0
  490. package/dist/types/vector/PathSimplificationPanel.d.ts +15 -0
  491. package/dist/types/vector/PdfExportPanel.d.ts +20 -0
  492. package/dist/types/vector/TextOnPathPanel.d.ts +26 -0
  493. package/dist/types/vector/VectorEditor.d.ts +32 -0
  494. package/dist/types/vector/VectorEditorMenuBar.d.ts +8 -0
  495. package/dist/types/vector/VectorEditorRightPanel.d.ts +7 -0
  496. package/dist/types/vector/VectorEditorShapeRenderer.d.ts +9 -0
  497. package/dist/types/vector/VectorEditorStatusBar.d.ts +9 -0
  498. package/dist/types/vector/VectorFilterPanel.d.ts +19 -0
  499. package/dist/types/vector/VectorPatternPanel.d.ts +21 -0
  500. package/dist/types/vector/pathSimplification.d.ts +135 -0
  501. package/dist/types/vector/pdfExport.d.ts +65 -0
  502. package/dist/types/vector/textOnPath.d.ts +145 -0
  503. package/dist/types/vector/useVectorEditor.d.ts +90 -0
  504. package/dist/types/vector/vectorBooleanOps.d.ts +22 -0
  505. package/dist/types/vector/vectorEditorExport.d.ts +8 -0
  506. package/dist/types/vector/vectorEditorImport.d.ts +7 -0
  507. package/dist/types/vector/vectorEditorTypes.d.ts +47 -0
  508. package/dist/types/vector/vectorGradients.d.ts +64 -0
  509. package/dist/types/vector/vectorPatternFills.d.ts +101 -0
  510. package/dist/types/vector/vectorSvgFilters.d.ts +134 -0
  511. package/package.json +93 -0
@@ -0,0 +1,369 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useRef, useState, useMemo, useEffect, useCallback } from 'react';
3
+ import styles from './GameAsset2dEditor.module.css.js';
4
+ import { useGameAssetEditor } from './useGameAssetEditor.js';
5
+
6
+ /* ────────────────────────────────────────────────────────────────
7
+ MENU BAR
8
+ ──────────────────────────────────────────────────────────────── */
9
+ const MenuBar = ({ api }) => {
10
+ const fileInputRef = useRef(null);
11
+ return (jsxs("div", { className: styles.menuBar, children: [jsx("h3", { children: "\uD83C\uDFAE Game Asset Editor" }), jsxs("div", { className: styles.menuGroup, children: [jsx("button", { className: styles.menuBtn, onClick: () => api.newProject('New Project'), children: "\uD83D\uDCC4 New" }), jsx("button", { className: styles.menuBtn, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "\uD83D\uDCC2 Open" }), jsx("button", { className: styles.menuBtn, onClick: api.saveProject, children: "\uD83D\uDCBE Save" })] }), jsx("div", { className: styles.spacer }), jsxs("div", { className: styles.menuGroup, children: [jsx("button", { className: styles.menuBtn, onClick: api.undo, disabled: !api.canUndo, children: "\u21A9 Undo" }), jsx("button", { className: styles.menuBtn, onClick: api.redo, disabled: !api.canRedo, children: "\u21AA Redo" })] }), jsx("input", { ref: fileInputRef, type: "file", accept: ".json", style: { display: 'none' }, onChange: e => {
12
+ var _a;
13
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
14
+ if (file)
15
+ api.loadProject(file);
16
+ e.target.value = '';
17
+ } })] }));
18
+ };
19
+ /* ────────────────────────────────────────────────────────────────
20
+ MODE TABS
21
+ ──────────────────────────────────────────────────────────────── */
22
+ const ModeTabs = ({ api }) => {
23
+ const modes = [
24
+ { id: 'tilemap', label: 'Tile Map', icon: '🗺️' },
25
+ { id: 'spritesheet', label: 'Sprite Sheet', icon: '🖼️' },
26
+ { id: 'animation', label: 'Animation', icon: '🎬' },
27
+ { id: 'effects', label: 'Effects', icon: '✨' },
28
+ ];
29
+ return (jsx("div", { className: styles.modeTabs, children: modes.map(mode => (jsxs("button", { className: `${styles.modeTab} ${api.editorState.mode === mode.id ? styles.active : ''}`, onClick: () => api.setMode(mode.id), children: [mode.icon, " ", mode.label] }, mode.id))) }));
30
+ };
31
+ /* ────────────────────────────────────────────────────────────────
32
+ TILE MAP TOOLBAR
33
+ ──────────────────────────────────────────────────────────────── */
34
+ const TileMapToolbar = ({ api }) => {
35
+ const tools = [
36
+ { id: 'select', icon: '⬚', label: 'Select' },
37
+ { id: 'brush', icon: '✏', label: 'Brush' },
38
+ { id: 'eraser', icon: '⌫', label: 'Eraser' },
39
+ { id: 'fill', icon: '🪣', label: 'Fill' },
40
+ { id: 'rectangle', icon: '▢', label: 'Rectangle' },
41
+ { id: 'line', icon: '╱', label: 'Line' },
42
+ { id: 'eyedropper', icon: '💧', label: 'Eyedropper' },
43
+ ];
44
+ return (jsxs("div", { className: styles.toolbar, children: [jsx("div", { className: styles.toolGroup, children: tools.map(tool => (jsx("button", { className: `${styles.toolBtn} ${api.editorState.tileMapTool === tool.id ? styles.active : ''}`, onClick: () => api.setTileMapTool(tool.id), title: tool.label, children: tool.icon }, tool.id))) }), jsx("div", { className: styles.spacer }), jsx("button", { className: `${styles.toolBtn} ${api.editorState.showGrid ? styles.active : ''}`, onClick: api.toggleGrid, title: "Toggle Grid", children: "\u229E" }), jsx("button", { className: `${styles.toolBtn} ${api.editorState.showCollision ? styles.active : ''}`, onClick: api.toggleCollision, title: "Show Collision", children: "\u25C7" }), jsx("button", { className: `${styles.toolBtn} ${api.editorState.snapToGrid ? styles.active : ''}`, onClick: api.toggleSnap, title: "Snap to Grid", children: "\u22A1" })] }));
45
+ };
46
+ /* ────────────────────────────────────────────────────────────────
47
+ SPRITE SHEET TOOLBAR
48
+ ──────────────────────────────────────────────────────────────── */
49
+ const SpriteSheetToolbar = ({ api }) => {
50
+ const [sliceWidth, setSliceWidth] = useState(16);
51
+ const [sliceHeight, setSliceHeight] = useState(16);
52
+ return (jsxs("div", { className: styles.toolbar, children: [jsxs("div", { className: styles.toolGroup, children: [jsx("button", { className: `${styles.toolBtn} ${api.editorState.spriteSheetTool === 'select' ? styles.active : ''}`, onClick: () => api.setSpriteSheetTool('select'), title: "Select", children: "\u2B1A" }), jsx("button", { className: `${styles.toolBtn} ${api.editorState.spriteSheetTool === 'slice' ? styles.active : ''}`, onClick: () => api.setSpriteSheetTool('slice'), title: "Manual Slice", children: "\u2702" })] }), jsx("div", { className: styles.spacer }), jsxs("label", { style: { fontSize: 11, color: '#8892a8' }, children: ["Frame size:", jsx("input", { type: "number", value: sliceWidth, onChange: e => setSliceWidth(+e.target.value), style: { width: 40, margin: '0 4px' }, className: styles.panelInput }), "\u00D7", jsx("input", { type: "number", value: sliceHeight, onChange: e => setSliceHeight(+e.target.value), style: { width: 40, marginLeft: 4 }, className: styles.panelInput })] }), jsx("button", { className: styles.btnSecondary, onClick: () => api.autoSlice(sliceWidth, sliceHeight), style: { marginLeft: 8 }, children: "Auto Slice" }), jsx("button", { className: styles.btnSecondary, onClick: api.detectSprites, style: { marginLeft: 4 }, children: "Detect Sprites" })] }));
53
+ };
54
+ /* ────────────────────────────────────────────────────────────────
55
+ TILE PALETTE (LEFT PANEL)
56
+ ──────────────────────────────────────────────────────────────── */
57
+ const TilePalette = ({ api }) => {
58
+ const fileInputRef = useRef(null);
59
+ return (jsxs("div", { className: styles.leftPanel, children: [jsxs("div", { className: styles.panelHeader, children: [jsx("span", { children: "Tiles" }), jsx("button", { className: styles.menuBtn, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Add" })] }), jsx("div", { className: styles.panelContent, children: api.project.tileSets.length === 0 ? (jsxs("div", { className: styles.emptyState, children: [jsx("div", { className: styles.emptyStateText, children: "No tiles yet" }), jsx("button", { className: styles.btnSecondary, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Tiles" })] })) : (jsx("div", { className: styles.tilePalette, children: api.project.tileSets.map(tile => (jsx("div", { className: `${styles.tileItem} ${api.editorState.selectedTileId === tile.id ? styles.selected : ''}`, onClick: () => api.selectTile(tile.id), title: tile.name, children: jsx("img", { src: tile.thumbnail, alt: tile.name }) }, tile.id))) })) }), jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
60
+ var _a;
61
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
62
+ if (file)
63
+ api.importTileSet(file);
64
+ e.target.value = '';
65
+ } })] }));
66
+ };
67
+ /* ────────────────────────────────────────────────────────────────
68
+ LAYERS PANEL (RIGHT PANEL)
69
+ ──────────────────────────────────────────────────────────────── */
70
+ const LayersPanel = ({ api }) => {
71
+ const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
72
+ return (jsxs("div", { className: styles.rightPanel, children: [jsxs("div", { className: styles.panelHeader, children: [jsx("span", { children: "Layers" }), jsx("button", { className: styles.menuBtn, onClick: api.addLayer, disabled: !activeMap, children: "+ Add" })] }), jsx("div", { className: styles.panelContent, children: activeMap ? (jsx("div", { className: styles.layersList, children: [...activeMap.layers].reverse().map(layer => (jsxs("div", { className: `${styles.layerItem} ${api.editorState.activeLayerId === layer.id ? styles.selected : ''}`, onClick: () => api.selectLayer(layer.id), children: [jsx("button", { className: `${styles.layerVisibility} ${!layer.visible ? styles.hidden : ''}`, onClick: e => {
73
+ e.stopPropagation();
74
+ api.toggleLayerVisibility(layer.id);
75
+ }, children: layer.visible ? '👁' : '○' }), jsx("span", { className: styles.layerName, children: layer.name }), jsxs("span", { className: styles.layerOpacity, children: [Math.round(layer.opacity * 100), "%"] })] }, layer.id))) })) : (jsx("div", { className: styles.emptyState, children: jsx("div", { className: styles.emptyStateText, children: "No tile map selected" }) })) }), jsxs("div", { className: styles.panelHeader, children: [jsx("span", { children: "Maps" }), jsx("button", { className: styles.menuBtn, onClick: () => api.createTileMap('New Map', 32, 32), children: "+ New" })] }), jsx("div", { className: styles.panelContent, children: api.project.tileMaps.map(map => (jsxs("div", { className: `${styles.layerItem} ${api.editorState.activeTileMapId === map.id ? styles.selected : ''}`, onClick: () => api.selectTileMap(map.id), children: [jsx("span", { className: styles.layerName, children: map.name }), jsxs("span", { className: styles.layerOpacity, children: [map.width, "\u00D7", map.height] })] }, map.id))) })] }));
76
+ };
77
+ /* ────────────────────────────────────────────────────────────────
78
+ TILE MAP CANVAS
79
+ ──────────────────────────────────────────────────────────────── */
80
+ const TileMapCanvas = ({ api }) => {
81
+ const canvasRef = useRef(null);
82
+ const containerRef = useRef(null);
83
+ const [isDragging, setIsDragging] = useState(false);
84
+ const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
85
+ // Render the tile map
86
+ useEffect(() => {
87
+ var _a;
88
+ const canvas = canvasRef.current;
89
+ if (!canvas || !activeMap)
90
+ return;
91
+ const ctx = canvas.getContext('2d');
92
+ if (!ctx)
93
+ return;
94
+ canvas.width = activeMap.width * activeMap.tileWidth;
95
+ canvas.height = activeMap.height * activeMap.tileHeight;
96
+ // Background
97
+ ctx.fillStyle = activeMap.backgroundColor;
98
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
99
+ // Render layers
100
+ for (const layer of activeMap.layers.filter(l => l.visible)) {
101
+ ctx.globalAlpha = layer.opacity;
102
+ for (let y = 0; y < activeMap.height; y++) {
103
+ for (let x = 0; x < activeMap.width; x++) {
104
+ const tileId = (_a = layer.tiles[y]) === null || _a === void 0 ? void 0 : _a[x];
105
+ if (tileId) {
106
+ const tile = api.project.tileSets.find(t => t.id === tileId);
107
+ if (tile === null || tile === void 0 ? void 0 : tile.thumbnail) {
108
+ const img = new Image();
109
+ img.src = tile.thumbnail;
110
+ ctx.drawImage(img, x * activeMap.tileWidth, y * activeMap.tileHeight, activeMap.tileWidth, activeMap.tileHeight);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
116
+ // Grid overlay
117
+ if (api.editorState.showGrid) {
118
+ ctx.globalAlpha = 0.3;
119
+ ctx.strokeStyle = '#ffffff';
120
+ ctx.lineWidth = 1;
121
+ for (let x = 0; x <= activeMap.width; x++) {
122
+ ctx.beginPath();
123
+ ctx.moveTo(x * activeMap.tileWidth, 0);
124
+ ctx.lineTo(x * activeMap.tileWidth, canvas.height);
125
+ ctx.stroke();
126
+ }
127
+ for (let y = 0; y <= activeMap.height; y++) {
128
+ ctx.beginPath();
129
+ ctx.moveTo(0, y * activeMap.tileHeight);
130
+ ctx.lineTo(canvas.width, y * activeMap.tileHeight);
131
+ ctx.stroke();
132
+ }
133
+ }
134
+ ctx.globalAlpha = 1;
135
+ }, [activeMap, api.project.tileSets, api.editorState.showGrid]);
136
+ const handleCanvasClick = useCallback((e) => {
137
+ if (!activeMap || !api.editorState.activeLayerId || !api.editorState.selectedTileId)
138
+ return;
139
+ const canvas = canvasRef.current;
140
+ if (!canvas)
141
+ return;
142
+ const rect = canvas.getBoundingClientRect();
143
+ const scaleX = canvas.width / rect.width;
144
+ const scaleY = canvas.height / rect.height;
145
+ const x = Math.floor((e.clientX - rect.left) * scaleX / activeMap.tileWidth);
146
+ const y = Math.floor((e.clientY - rect.top) * scaleY / activeMap.tileHeight);
147
+ if (api.editorState.tileMapTool === 'brush') {
148
+ api.setTile(api.editorState.activeLayerId, x, y, api.editorState.selectedTileId);
149
+ }
150
+ else if (api.editorState.tileMapTool === 'eraser') {
151
+ api.setTile(api.editorState.activeLayerId, x, y, null);
152
+ }
153
+ else if (api.editorState.tileMapTool === 'fill') {
154
+ api.fillTiles(api.editorState.activeLayerId, x, y, api.editorState.selectedTileId);
155
+ }
156
+ }, [activeMap, api]);
157
+ return (jsx("div", { className: styles.viewport, ref: containerRef, children: activeMap ? (jsx("canvas", { ref: canvasRef, className: styles.viewportCanvas, style: {
158
+ transform: `translate(-50%, -50%) scale(${api.editorState.zoom})`,
159
+ }, onClick: handleCanvasClick, onMouseDown: () => setIsDragging(true), onMouseUp: () => setIsDragging(false), onMouseMove: e => {
160
+ if (isDragging && (api.editorState.tileMapTool === 'brush' || api.editorState.tileMapTool === 'eraser')) {
161
+ handleCanvasClick(e);
162
+ }
163
+ } })) : (jsxs("div", { className: styles.emptyState, children: [jsx("div", { className: styles.emptyStateText, children: "Create or select a tile map to start editing" }), jsx("button", { className: styles.btnPrimary, onClick: () => api.createTileMap('New Map', 32, 32), children: "Create Tile Map" })] })) }));
164
+ };
165
+ /* ────────────────────────────────────────────────────────────────
166
+ SPRITE SHEET CANVAS
167
+ ──────────────────────────────────────────────────────────────── */
168
+ const SpriteSheetCanvas = ({ api }) => {
169
+ const canvasRef = useRef(null);
170
+ const fileInputRef = useRef(null);
171
+ const activeSheet = api.project.spriteSheets.find(s => s.id === api.editorState.activeSpriteSheetId);
172
+ // Render sprite sheet with frame overlays
173
+ useEffect(() => {
174
+ const canvas = canvasRef.current;
175
+ if (!canvas || !(activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.image))
176
+ return;
177
+ const ctx = canvas.getContext('2d');
178
+ if (!ctx)
179
+ return;
180
+ canvas.width = activeSheet.width;
181
+ canvas.height = activeSheet.height;
182
+ // Draw image
183
+ ctx.drawImage(activeSheet.image, 0, 0);
184
+ // Draw frame overlays
185
+ ctx.strokeStyle = '#ffd369';
186
+ ctx.lineWidth = 2;
187
+ for (const frame of activeSheet.frames) {
188
+ const isSelected = api.editorState.selectedFrameIds.includes(frame.id);
189
+ ctx.strokeStyle = isSelected ? '#ffd369' : '#4a5a7e';
190
+ ctx.strokeRect(frame.x, frame.y, frame.width, frame.height);
191
+ // Draw pivot point
192
+ const pivotX = frame.x + frame.width * frame.pivotX;
193
+ const pivotY = frame.y + frame.height * frame.pivotY;
194
+ ctx.fillStyle = isSelected ? '#ffd369' : '#4a5a7e';
195
+ ctx.beginPath();
196
+ ctx.arc(pivotX, pivotY, 3, 0, Math.PI * 2);
197
+ ctx.fill();
198
+ }
199
+ }, [activeSheet, api.editorState.selectedFrameIds]);
200
+ const handleFrameClick = useCallback((e) => {
201
+ if (!activeSheet)
202
+ return;
203
+ const canvas = canvasRef.current;
204
+ if (!canvas)
205
+ return;
206
+ const rect = canvas.getBoundingClientRect();
207
+ const scaleX = canvas.width / rect.width;
208
+ const scaleY = canvas.height / rect.height;
209
+ const x = (e.clientX - rect.left) * scaleX;
210
+ const y = (e.clientY - rect.top) * scaleY;
211
+ // Find clicked frame
212
+ const clickedFrame = activeSheet.frames.find(f => x >= f.x && x <= f.x + f.width && y >= f.y && y <= f.y + f.height);
213
+ if (clickedFrame) {
214
+ if (e.ctrlKey || e.metaKey) {
215
+ // Toggle selection
216
+ const newSelection = api.editorState.selectedFrameIds.includes(clickedFrame.id)
217
+ ? api.editorState.selectedFrameIds.filter(id => id !== clickedFrame.id)
218
+ : [...api.editorState.selectedFrameIds, clickedFrame.id];
219
+ api.selectFrames(newSelection);
220
+ }
221
+ else {
222
+ api.selectFrames([clickedFrame.id]);
223
+ }
224
+ }
225
+ else {
226
+ api.selectFrames([]);
227
+ }
228
+ }, [activeSheet, api]);
229
+ return (jsx("div", { className: styles.viewport, children: activeSheet ? (jsx("canvas", { ref: canvasRef, className: styles.viewportCanvas, style: {
230
+ transform: `translate(-50%, -50%) scale(${api.editorState.zoom})`,
231
+ }, onClick: handleFrameClick })) : (jsxs("div", { className: styles.emptyState, children: [jsx("div", { className: styles.emptyStateText, children: "Import a sprite sheet to start" }), jsx("button", { className: styles.btnPrimary, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Sprite Sheet" }), jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
232
+ var _a;
233
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
234
+ if (file)
235
+ api.importSpriteSheet(file);
236
+ e.target.value = '';
237
+ } })] })) }));
238
+ };
239
+ /* ────────────────────────────────────────────────────────────────
240
+ SPRITE SHEETS LIST
241
+ ──────────────────────────────────────────────────────────────── */
242
+ const SpriteSheetsList = ({ api }) => {
243
+ const fileInputRef = useRef(null);
244
+ return (jsxs("div", { className: styles.leftPanel, children: [jsxs("div", { className: styles.panelHeader, children: [jsx("span", { children: "Sprite Sheets" }), jsx("button", { className: styles.menuBtn, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Import" })] }), jsx("div", { className: styles.panelContent, children: api.project.spriteSheets.length === 0 ? (jsx("div", { className: styles.emptyState, children: jsx("div", { className: styles.emptyStateText, children: "No sprite sheets" }) })) : (jsx("div", { className: styles.layersList, children: api.project.spriteSheets.map(sheet => (jsxs("div", { className: `${styles.layerItem} ${api.editorState.activeSpriteSheetId === sheet.id ? styles.selected : ''}`, onClick: () => api.selectSpriteSheet(sheet.id), children: [jsx("span", { className: styles.layerName, children: sheet.name }), jsxs("span", { className: styles.layerOpacity, children: [sheet.frames.length, " frames"] })] }, sheet.id))) })) }), jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
245
+ var _a;
246
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
247
+ if (file)
248
+ api.importSpriteSheet(file);
249
+ e.target.value = '';
250
+ } })] }));
251
+ };
252
+ /* ────────────────────────────────────────────────────────────────
253
+ FRAMES & ANIMATIONS PANEL
254
+ ──────────────────────────────────────────────────────────────── */
255
+ const FramesPanel = ({ api }) => {
256
+ var _a;
257
+ const [animName, setAnimName] = useState('');
258
+ const activeSheet = api.project.spriteSheets.find(s => s.id === api.editorState.activeSpriteSheetId);
259
+ const createAnimationFromSelection = useCallback(() => {
260
+ if (animName && api.editorState.selectedFrameIds.length > 0) {
261
+ api.createAnimation(animName, api.editorState.selectedFrameIds);
262
+ setAnimName('');
263
+ }
264
+ }, [animName, api]);
265
+ return (jsxs("div", { className: styles.rightPanel, children: [jsx("div", { className: styles.panelHeader, children: jsxs("span", { children: ["Frames (", (_a = activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.length) !== null && _a !== void 0 ? _a : 0, ")"] }) }), jsx("div", { className: styles.panelContent, style: { maxHeight: 200 }, children: activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.map(frame => (jsxs("div", { className: `${styles.layerItem} ${api.editorState.selectedFrameIds.includes(frame.id) ? styles.selected : ''}`, onClick: () => api.selectFrames([frame.id]), children: [jsx("span", { className: styles.layerName, children: frame.name }), jsxs("span", { className: styles.layerOpacity, children: [frame.width, "\u00D7", frame.height] })] }, frame.id))) }), jsx("div", { className: styles.panelHeader, children: jsx("span", { children: "Animations" }) }), jsxs("div", { className: styles.panelContent, children: [api.editorState.selectedFrameIds.length > 0 && (jsxs("div", { className: styles.panelSection, children: [jsx("input", { type: "text", className: styles.panelInput, placeholder: "Animation name...", value: animName, onChange: e => setAnimName(e.target.value) }), jsxs("button", { className: styles.btnPrimary, onClick: createAnimationFromSelection, style: { marginTop: 8, width: '100%' }, disabled: !animName, children: ["Create from ", api.editorState.selectedFrameIds.length, " frames"] })] })), activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.animations.map(anim => (jsxs("div", { className: styles.layerItem, children: [jsx("span", { className: styles.layerName, children: anim.name }), jsxs("span", { className: styles.layerOpacity, children: [anim.frameIds.length, "f"] }), jsx("button", { className: styles.effectRemove, onClick: () => api.removeAnimation(anim.id), children: "\u00D7" })] }, anim.id)))] })] }));
266
+ };
267
+ /* ────────────────────────────────────────────────────────────────
268
+ ANIMATION STATE MACHINE
269
+ ──────────────────────────────────────────────────────────────── */
270
+ const AnimationStateMachineView = ({ api }) => {
271
+ const [newStateName, setNewStateName] = useState('');
272
+ const activeSM = api.project.stateMachines.find(sm => sm.id === api.editorState.activeStateMachineId);
273
+ // Get all animations from all sprite sheets
274
+ const allAnimations = useMemo(() => {
275
+ const result = [];
276
+ for (const sheet of api.project.spriteSheets) {
277
+ for (const anim of sheet.animations) {
278
+ result.push({ ...anim, sheetName: sheet.name });
279
+ }
280
+ }
281
+ return result;
282
+ }, [api.project.spriteSheets]);
283
+ return (jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxs("div", { className: styles.leftPanel, children: [jsxs("div", { className: styles.panelHeader, children: [jsx("span", { children: "State Machines" }), jsx("button", { className: styles.menuBtn, onClick: () => api.createStateMachine('New State Machine'), children: "+ New" })] }), jsx("div", { className: styles.panelContent, style: { maxHeight: 150 }, children: api.project.stateMachines.map(sm => (jsxs("div", { className: `${styles.layerItem} ${api.editorState.activeStateMachineId === sm.id ? styles.selected : ''}`, onClick: () => api.selectStateMachine(sm.id), children: [jsx("span", { className: styles.layerName, children: sm.name }), jsxs("span", { className: styles.layerOpacity, children: [sm.states.length, " states"] })] }, sm.id))) }), activeSM && (jsxs(Fragment, { children: [jsx("div", { className: styles.panelHeader, children: jsx("span", { children: "States" }) }), jsxs("div", { className: styles.panelContent, children: [jsxs("div", { className: styles.panelSection, children: [jsx("input", { type: "text", className: styles.panelInput, placeholder: "State name...", value: newStateName, onChange: e => setNewStateName(e.target.value) }), allAnimations.length > 0 && newStateName && (jsxs("select", { className: styles.panelInput, style: { marginTop: 4 }, onChange: e => {
284
+ if (e.target.value) {
285
+ api.addState(newStateName, e.target.value);
286
+ setNewStateName('');
287
+ }
288
+ }, children: [jsx("option", { value: "", children: "Select animation..." }), allAnimations.map(anim => (jsxs("option", { value: anim.id, children: [anim.sheetName, ": ", anim.name] }, anim.id)))] }))] }), activeSM.states.map(state => (jsxs("div", { className: `${styles.layerItem} ${api.editorState.selectedStateId === state.id ? styles.selected : ''} ${activeSM.entryStateId === state.id ? styles.entry : ''}`, onClick: () => api.selectState(state.id), children: [jsxs("span", { className: styles.layerName, children: [activeSM.entryStateId === state.id && '▶ ', state.name] }), jsx("button", { className: styles.effectRemove, onClick: e => {
289
+ e.stopPropagation();
290
+ api.removeState(state.id);
291
+ }, children: "\u00D7" })] }, state.id)))] })] }))] }), jsx("div", { className: styles.stateGraph, children: activeSM ? (jsxs("svg", { width: "100%", height: "100%", children: [jsx("defs", { children: jsx("marker", { id: "arrowhead", markerWidth: "10", markerHeight: "7", refX: "9", refY: "3.5", orient: "auto", children: jsx("polygon", { points: "0 0, 10 3.5, 0 7", fill: "#4a5a7e" }) }) }), activeSM.transitions.map(trans => {
292
+ const from = activeSM.states.find(s => s.id === trans.fromStateId);
293
+ const to = activeSM.states.find(s => s.id === trans.toStateId);
294
+ if (!from || !to)
295
+ return null;
296
+ return (jsx("line", { x1: from.position.x + 60, y1: from.position.y + 20, x2: to.position.x + 60, y2: to.position.y + 20, className: styles.transition, onClick: () => api.removeTransition(trans.id) }, trans.id));
297
+ }), activeSM.states.map(state => {
298
+ var _a, _b;
299
+ return (jsx("foreignObject", { x: state.position.x, y: state.position.y, width: 120, height: 50, children: jsxs("div", { className: `${styles.stateNode} ${api.editorState.selectedStateId === state.id ? styles.selected : ''} ${activeSM.entryStateId === state.id ? styles.entry : ''}`, onClick: () => api.selectState(state.id), children: [jsx("div", { className: styles.stateNodeName, children: state.name }), jsx("div", { className: styles.stateNodeAnim, children: (_b = (_a = allAnimations.find(a => a.id === state.animationId)) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'No animation' })] }) }, state.id));
300
+ })] })) : (jsx("div", { className: styles.emptyState, children: jsx("div", { className: styles.emptyStateText, children: "Create a state machine to design animation flows" }) })) }), jsxs("div", { className: styles.rightPanel, children: [jsxs("div", { className: styles.panelHeader, children: [jsx("span", { children: "Parameters" }), jsx("button", { className: styles.menuBtn, onClick: () => api.addParameter('new_param', 'trigger'), disabled: !activeSM, children: "+ Add" })] }), jsx("div", { className: styles.panelContent, children: activeSM === null || activeSM === void 0 ? void 0 : activeSM.parameters.map(param => (jsxs("div", { className: styles.layerItem, children: [jsx("span", { className: styles.layerOpacity, children: param.type }), jsx("span", { className: styles.layerName, children: param.name }), jsx("button", { className: styles.effectRemove, onClick: () => api.removeParameter(param.id), children: "\u00D7" })] }, param.id))) }), jsx("div", { className: styles.panelHeader, children: jsx("span", { children: "Transitions" }) }), jsxs("div", { className: styles.panelContent, children: [activeSM === null || activeSM === void 0 ? void 0 : activeSM.transitions.map(trans => {
301
+ var _a, _b;
302
+ const from = activeSM.states.find(s => s.id === trans.fromStateId);
303
+ const to = activeSM.states.find(s => s.id === trans.toStateId);
304
+ return (jsxs("div", { className: styles.layerItem, children: [jsxs("span", { className: styles.layerName, children: [(_a = from === null || from === void 0 ? void 0 : from.name) !== null && _a !== void 0 ? _a : '?', " \u2192 ", (_b = to === null || to === void 0 ? void 0 : to.name) !== null && _b !== void 0 ? _b : '?'] }), jsx("button", { className: styles.effectRemove, onClick: () => api.removeTransition(trans.id), children: "\u00D7" })] }, trans.id));
305
+ }), api.editorState.selectedStateId && (jsxs("div", { className: styles.panelSection, style: { marginTop: 12 }, children: [jsx("label", { className: styles.panelLabel, children: "Add transition to:" }), jsxs("select", { className: styles.panelInput, onChange: e => {
306
+ if (e.target.value && api.editorState.selectedStateId) {
307
+ api.addTransition(api.editorState.selectedStateId, e.target.value);
308
+ }
309
+ }, children: [jsx("option", { value: "", children: "Select target state..." }), activeSM === null || activeSM === void 0 ? void 0 : activeSM.states.filter(s => s.id !== api.editorState.selectedStateId).map(s => (jsx("option", { value: s.id, children: s.name }, s.id)))] })] }))] })] })] }));
310
+ };
311
+ /* ────────────────────────────────────────────────────────────────
312
+ EFFECTS PANEL
313
+ ──────────────────────────────────────────────────────────────── */
314
+ const EffectsView = ({ api }) => {
315
+ const [currentEffects, setCurrentEffects] = useState([]);
316
+ const [presetName, setPresetName] = useState('');
317
+ const effectTypes = [
318
+ { type: 'brightness', label: 'Brightness' },
319
+ { type: 'contrast', label: 'Contrast' },
320
+ { type: 'saturation', label: 'Saturation' },
321
+ { type: 'hue-shift', label: 'Hue Shift' },
322
+ { type: 'invert', label: 'Invert' },
323
+ { type: 'pixelate', label: 'Pixelate' },
324
+ { type: 'outline', label: 'Outline' },
325
+ { type: 'tint', label: 'Tint' },
326
+ { type: 'blur', label: 'Blur' },
327
+ { type: 'glow', label: 'Glow' },
328
+ { type: 'shadow', label: 'Shadow' },
329
+ { type: 'palette-swap', label: 'Palette Swap' },
330
+ ];
331
+ return (jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxs("div", { className: styles.leftPanel, children: [jsx("div", { className: styles.panelHeader, children: jsx("span", { children: "Add Effect" }) }), jsx("div", { className: styles.panelContent, children: effectTypes.map(({ type, label }) => (jsx("button", { className: styles.layerItem, onClick: () => api.addEffect(type), style: { cursor: 'pointer', border: 'none', textAlign: 'left' }, children: jsx("span", { className: styles.layerName, children: label }) }, type))) }), jsx("div", { className: styles.panelHeader, children: jsx("span", { children: "Presets" }) }), jsxs("div", { className: styles.panelContent, children: [jsxs("div", { className: styles.panelSection, children: [jsx("input", { type: "text", className: styles.panelInput, placeholder: "Preset name...", value: presetName, onChange: e => setPresetName(e.target.value) }), jsx("button", { className: styles.btnSecondary, style: { marginTop: 4, width: '100%' }, onClick: () => {
332
+ if (presetName) {
333
+ api.saveEffectPreset(presetName);
334
+ setPresetName('');
335
+ }
336
+ }, disabled: !presetName, children: "Save Current Effects" })] }), api.project.effectPresets.map(preset => (jsxs("div", { className: styles.layerItem, onClick: () => api.loadEffectPreset(preset.id), style: { cursor: 'pointer' }, children: [jsx("span", { className: styles.layerName, children: preset.name }), jsxs("span", { className: styles.layerOpacity, children: [preset.effects.length, " effects"] })] }, preset.id)))] })] }), jsx("div", { className: styles.viewport, children: jsx("div", { className: styles.emptyState, children: jsx("div", { className: styles.emptyStateText, children: "Select a sprite or tile to preview effects" }) }) }), jsxs("div", { className: styles.rightPanel, children: [jsx("div", { className: styles.panelHeader, children: jsx("span", { children: "Active Effects" }) }), jsx("div", { className: styles.panelContent, children: jsx("div", { className: styles.effectsList, children: jsx("div", { className: styles.emptyState, children: jsx("div", { className: styles.emptyStateText, children: "Add effects from the left panel" }) }) }) })] })] }));
337
+ };
338
+ /* ────────────────────────────────────────────────────────────────
339
+ STATUS BAR
340
+ ──────────────────────────────────────────────────────────────── */
341
+ const StatusBar = ({ api }) => {
342
+ const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
343
+ const activeSheet = api.project.spriteSheets.find(s => s.id === api.editorState.activeSpriteSheetId);
344
+ return (jsxs("div", { className: styles.statusBar, children: [jsxs("span", { className: styles.statusItem, children: ["Mode: ", api.editorState.mode] }), api.editorState.mode === 'tilemap' && activeMap && (jsxs(Fragment, { children: [jsxs("span", { className: styles.statusItem, children: ["Map: ", activeMap.name, " (", activeMap.width, "\u00D7", activeMap.height, ")"] }), jsxs("span", { className: styles.statusItem, children: ["Tile: ", activeMap.tileWidth, "\u00D7", activeMap.tileHeight, "px"] })] })), api.editorState.mode === 'spritesheet' && activeSheet && (jsxs(Fragment, { children: [jsxs("span", { className: styles.statusItem, children: ["Sheet: ", activeSheet.name] }), jsxs("span", { className: styles.statusItem, children: ["Selected: ", api.editorState.selectedFrameIds.length, " frames"] })] })), jsxs("div", { className: styles.zoomControl, children: [jsx("button", { className: styles.zoomBtn, onClick: () => api.setZoom(api.editorState.zoom - 0.25), children: "\u2212" }), jsxs("span", { children: [Math.round(api.editorState.zoom * 100), "%"] }), jsx("button", { className: styles.zoomBtn, onClick: () => api.setZoom(api.editorState.zoom + 0.25), children: "+" }), jsx("button", { className: styles.zoomBtn, onClick: () => api.setZoom(1), children: "\u2299" })] })] }));
345
+ };
346
+ /* ────────────────────────────────────────────────────────────────
347
+ MAIN COMPONENT
348
+ ──────────────────────────────────────────────────────────────── */
349
+ const GameAsset2dEditor = ({ className, onSave, onExport, }) => {
350
+ const api = useGameAssetEditor({ onSave, onExport });
351
+ const renderModeContent = () => {
352
+ switch (api.editorState.mode) {
353
+ case 'tilemap':
354
+ return (jsxs(Fragment, { children: [jsx(TileMapToolbar, { api: api }), jsxs("div", { className: styles.mainArea, children: [jsx(TilePalette, { api: api }), jsx("div", { className: styles.centerArea, children: jsx(TileMapCanvas, { api: api }) }), jsx(LayersPanel, { api: api })] })] }));
355
+ case 'spritesheet':
356
+ return (jsxs(Fragment, { children: [jsx(SpriteSheetToolbar, { api: api }), jsxs("div", { className: styles.mainArea, children: [jsx(SpriteSheetsList, { api: api }), jsx("div", { className: styles.centerArea, children: jsx(SpriteSheetCanvas, { api: api }) }), jsx(FramesPanel, { api: api })] })] }));
357
+ case 'animation':
358
+ return (jsx("div", { className: styles.mainArea, children: jsx(AnimationStateMachineView, { api: api }) }));
359
+ case 'effects':
360
+ return (jsx("div", { className: styles.mainArea, children: jsx(EffectsView, { api: api }) }));
361
+ default:
362
+ return null;
363
+ }
364
+ };
365
+ return (jsxs("div", { className: `${styles.root} ${className || ''}`, children: [jsx(MenuBar, { api: api }), jsx(ModeTabs, { api: api }), renderModeContent(), jsx(StatusBar, { api: api })] }));
366
+ };
367
+
368
+ export { GameAsset2dEditor };
369
+ //# sourceMappingURL=GameAsset2dEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameAsset2dEditor.js","sources":["../../../src/game/GameAsset2dEditor.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var styles = {"root":"GameAsset2dEditor-module_root__WVJBM","menuBar":"GameAsset2dEditor-module_menuBar__WaEaU","menuGroup":"GameAsset2dEditor-module_menuGroup__EOreB","menuBtn":"GameAsset2dEditor-module_menuBtn__JYWXn","spacer":"GameAsset2dEditor-module_spacer__fPVeq","modeTabs":"GameAsset2dEditor-module_modeTabs__iKh7C","modeTab":"GameAsset2dEditor-module_modeTab__C12zt","active":"GameAsset2dEditor-module_active__DUroI","mainArea":"GameAsset2dEditor-module_mainArea__jwDUa","leftPanel":"GameAsset2dEditor-module_leftPanel__xxAg5","centerArea":"GameAsset2dEditor-module_centerArea__xr-Hn","rightPanel":"GameAsset2dEditor-module_rightPanel__YoNuc","toolbar":"GameAsset2dEditor-module_toolbar__hEC9S","toolGroup":"GameAsset2dEditor-module_toolGroup__Zbn47","toolBtn":"GameAsset2dEditor-module_toolBtn__5U7Rw","viewport":"GameAsset2dEditor-module_viewport__vEKEv","viewportCanvas":"GameAsset2dEditor-module_viewportCanvas__FJ5qA","panelHeader":"GameAsset2dEditor-module_panelHeader__xm2As","panelContent":"GameAsset2dEditor-module_panelContent__dvOGq","panelSection":"GameAsset2dEditor-module_panelSection__RQQDr","panelLabel":"GameAsset2dEditor-module_panelLabel__Ks-Wa","panelInput":"GameAsset2dEditor-module_panelInput__cxNiG","tilePalette":"GameAsset2dEditor-module_tilePalette__OpzmV","tileItem":"GameAsset2dEditor-module_tileItem__uWNS9","selected":"GameAsset2dEditor-module_selected__216IN","layersList":"GameAsset2dEditor-module_layersList__anFaG","layerItem":"GameAsset2dEditor-module_layerItem__XSGlu","layerVisibility":"GameAsset2dEditor-module_layerVisibility__RpHjV","hidden":"GameAsset2dEditor-module_hidden__mukOG","layerName":"GameAsset2dEditor-module_layerName__WBxq5","layerOpacity":"GameAsset2dEditor-module_layerOpacity__FpzL-","stateGraph":"GameAsset2dEditor-module_stateGraph__qAWlU","stateNode":"GameAsset2dEditor-module_stateNode__W9Z-g","entry":"GameAsset2dEditor-module_entry__cmA9n","stateNodeName":"GameAsset2dEditor-module_stateNodeName__TK5vs","stateNodeAnim":"GameAsset2dEditor-module_stateNodeAnim__VGwnV","transition":"GameAsset2dEditor-module_transition__FBbno","effectsList":"GameAsset2dEditor-module_effectsList__vHq4I","effectRemove":"GameAsset2dEditor-module_effectRemove__TSSdI","statusBar":"GameAsset2dEditor-module_statusBar__eOrNe","statusItem":"GameAsset2dEditor-module_statusItem__kKLHF","zoomControl":"GameAsset2dEditor-module_zoomControl__4YD9G","zoomBtn":"GameAsset2dEditor-module_zoomBtn__hxYik","btnPrimary":"GameAsset2dEditor-module_btnPrimary__Gzc25","btnSecondary":"GameAsset2dEditor-module_btnSecondary__G5nK5","emptyState":"GameAsset2dEditor-module_emptyState__3wryk","emptyStateText":"GameAsset2dEditor-module_emptyStateText__Q5V1a"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=GameAsset2dEditor.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameAsset2dEditor.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * gameAssetTypes.ts — Types for GameAsset2dEditor
3
+ *
4
+ * Supports tile maps, sprite sheets, animations, and game asset processing.
5
+ */
6
+ /* ────────────────────────────────────────────────────────────────
7
+ CONSTANTS
8
+ ──────────────────────────────────────────────────────────────── */
9
+ const DEFAULT_PROJECT_SETTINGS = {
10
+ defaultTileWidth: 16,
11
+ defaultTileHeight: 16,
12
+ pixelsPerUnit: 16,
13
+ exportFormat: 'json',
14
+ compressImages: true,
15
+ };
16
+
17
+ export { DEFAULT_PROJECT_SETTINGS };
18
+ //# sourceMappingURL=gameAssetTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gameAssetTypes.js","sources":["../../../src/game/gameAssetTypes.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;AAIG;AA0RH;;AAEmE;AA6B5D,MAAM,wBAAwB,GAAoB;AACvD,IAAA,gBAAgB,EAAE,EAAE;AACpB,IAAA,iBAAiB,EAAE,EAAE;AACrB,IAAA,aAAa,EAAE,EAAE;AACjB,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,cAAc,EAAE,IAAI;;;;;"}