@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,371 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var GameAsset2dEditor_module = require('./GameAsset2dEditor.module.css.js');
6
+ var useGameAssetEditor = require('./useGameAssetEditor.js');
7
+
8
+ /* ────────────────────────────────────────────────────────────────
9
+ MENU BAR
10
+ ──────────────────────────────────────────────────────────────── */
11
+ const MenuBar = ({ api }) => {
12
+ const fileInputRef = React.useRef(null);
13
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuBar, children: [jsxRuntime.jsx("h3", { children: "\uD83C\uDFAE Game Asset Editor" }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuGroup, children: [jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => api.newProject('New Project'), children: "\uD83D\uDCC4 New" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "\uD83D\uDCC2 Open" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: api.saveProject, children: "\uD83D\uDCBE Save" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.menuGroup, children: [jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: api.undo, disabled: !api.canUndo, children: "\u21A9 Undo" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: api.redo, disabled: !api.canRedo, children: "\u21AA Redo" })] }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: ".json", style: { display: 'none' }, onChange: e => {
14
+ var _a;
15
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
16
+ if (file)
17
+ api.loadProject(file);
18
+ e.target.value = '';
19
+ } })] }));
20
+ };
21
+ /* ────────────────────────────────────────────────────────────────
22
+ MODE TABS
23
+ ──────────────────────────────────────────────────────────────── */
24
+ const ModeTabs = ({ api }) => {
25
+ const modes = [
26
+ { id: 'tilemap', label: 'Tile Map', icon: '🗺️' },
27
+ { id: 'spritesheet', label: 'Sprite Sheet', icon: '🖼️' },
28
+ { id: 'animation', label: 'Animation', icon: '🎬' },
29
+ { id: 'effects', label: 'Effects', icon: '✨' },
30
+ ];
31
+ return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.modeTabs, children: modes.map(mode => (jsxRuntime.jsxs("button", { className: `${GameAsset2dEditor_module.modeTab} ${api.editorState.mode === mode.id ? GameAsset2dEditor_module.active : ''}`, onClick: () => api.setMode(mode.id), children: [mode.icon, " ", mode.label] }, mode.id))) }));
32
+ };
33
+ /* ────────────────────────────────────────────────────────────────
34
+ TILE MAP TOOLBAR
35
+ ──────────────────────────────────────────────────────────────── */
36
+ const TileMapToolbar = ({ api }) => {
37
+ const tools = [
38
+ { id: 'select', icon: '⬚', label: 'Select' },
39
+ { id: 'brush', icon: '✏', label: 'Brush' },
40
+ { id: 'eraser', icon: '⌫', label: 'Eraser' },
41
+ { id: 'fill', icon: '🪣', label: 'Fill' },
42
+ { id: 'rectangle', icon: '▢', label: 'Rectangle' },
43
+ { id: 'line', icon: '╱', label: 'Line' },
44
+ { id: 'eyedropper', icon: '💧', label: 'Eyedropper' },
45
+ ];
46
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolbar, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.toolGroup, children: tools.map(tool => (jsxRuntime.jsx("button", { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.tileMapTool === tool.id ? GameAsset2dEditor_module.active : ''}`, onClick: () => api.setTileMapTool(tool.id), title: tool.label, children: tool.icon }, tool.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsx("button", { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.showGrid ? GameAsset2dEditor_module.active : ''}`, onClick: api.toggleGrid, title: "Toggle Grid", children: "\u229E" }), jsxRuntime.jsx("button", { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.showCollision ? GameAsset2dEditor_module.active : ''}`, onClick: api.toggleCollision, title: "Show Collision", children: "\u25C7" }), jsxRuntime.jsx("button", { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.snapToGrid ? GameAsset2dEditor_module.active : ''}`, onClick: api.toggleSnap, title: "Snap to Grid", children: "\u22A1" })] }));
47
+ };
48
+ /* ────────────────────────────────────────────────────────────────
49
+ SPRITE SHEET TOOLBAR
50
+ ──────────────────────────────────────────────────────────────── */
51
+ const SpriteSheetToolbar = ({ api }) => {
52
+ const [sliceWidth, setSliceWidth] = React.useState(16);
53
+ const [sliceHeight, setSliceHeight] = React.useState(16);
54
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolbar, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.toolGroup, children: [jsxRuntime.jsx("button", { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.spriteSheetTool === 'select' ? GameAsset2dEditor_module.active : ''}`, onClick: () => api.setSpriteSheetTool('select'), title: "Select", children: "\u2B1A" }), jsxRuntime.jsx("button", { className: `${GameAsset2dEditor_module.toolBtn} ${api.editorState.spriteSheetTool === 'slice' ? GameAsset2dEditor_module.active : ''}`, onClick: () => api.setSpriteSheetTool('slice'), title: "Manual Slice", children: "\u2702" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.spacer }), jsxRuntime.jsxs("label", { style: { fontSize: 11, color: '#8892a8' }, children: ["Frame size:", jsxRuntime.jsx("input", { type: "number", value: sliceWidth, onChange: e => setSliceWidth(+e.target.value), style: { width: 40, margin: '0 4px' }, className: GameAsset2dEditor_module.panelInput }), "\u00D7", jsxRuntime.jsx("input", { type: "number", value: sliceHeight, onChange: e => setSliceHeight(+e.target.value), style: { width: 40, marginLeft: 4 }, className: GameAsset2dEditor_module.panelInput })] }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.btnSecondary, onClick: () => api.autoSlice(sliceWidth, sliceHeight), style: { marginLeft: 8 }, children: "Auto Slice" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.btnSecondary, onClick: api.detectSprites, style: { marginLeft: 4 }, children: "Detect Sprites" })] }));
55
+ };
56
+ /* ────────────────────────────────────────────────────────────────
57
+ TILE PALETTE (LEFT PANEL)
58
+ ──────────────────────────────────────────────────────────────── */
59
+ const TilePalette = ({ api }) => {
60
+ const fileInputRef = React.useRef(null);
61
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Tiles" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.tileSets.length === 0 ? (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No tiles yet" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.btnSecondary, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Tiles" })] })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.tilePalette, children: api.project.tileSets.map(tile => (jsxRuntime.jsx("div", { className: `${GameAsset2dEditor_module.tileItem} ${api.editorState.selectedTileId === tile.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectTile(tile.id), title: tile.name, children: jsxRuntime.jsx("img", { src: tile.thumbnail, alt: tile.name }) }, tile.id))) })) }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
62
+ var _a;
63
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
64
+ if (file)
65
+ api.importTileSet(file);
66
+ e.target.value = '';
67
+ } })] }));
68
+ };
69
+ /* ────────────────────────────────────────────────────────────────
70
+ LAYERS PANEL (RIGHT PANEL)
71
+ ──────────────────────────────────────────────────────────────── */
72
+ const LayersPanel = ({ api }) => {
73
+ const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
74
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Layers" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: api.addLayer, disabled: !activeMap, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: activeMap ? (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.layersList, children: [...activeMap.layers].reverse().map(layer => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeLayerId === layer.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectLayer(layer.id), children: [jsxRuntime.jsx("button", { className: `${GameAsset2dEditor_module.layerVisibility} ${!layer.visible ? GameAsset2dEditor_module.hidden : ''}`, onClick: e => {
75
+ e.stopPropagation();
76
+ api.toggleLayerVisibility(layer.id);
77
+ }, children: layer.visible ? '👁' : '○' }), jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: layer.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [Math.round(layer.opacity * 100), "%"] })] }, layer.id))) })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No tile map selected" }) })) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Maps" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => api.createTileMap('New Map', 32, 32), children: "+ New" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.tileMaps.map(map => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeTileMapId === map.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectTileMap(map.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: map.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [map.width, "\u00D7", map.height] })] }, map.id))) })] }));
78
+ };
79
+ /* ────────────────────────────────────────────────────────────────
80
+ TILE MAP CANVAS
81
+ ──────────────────────────────────────────────────────────────── */
82
+ const TileMapCanvas = ({ api }) => {
83
+ const canvasRef = React.useRef(null);
84
+ const containerRef = React.useRef(null);
85
+ const [isDragging, setIsDragging] = React.useState(false);
86
+ const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
87
+ // Render the tile map
88
+ React.useEffect(() => {
89
+ var _a;
90
+ const canvas = canvasRef.current;
91
+ if (!canvas || !activeMap)
92
+ return;
93
+ const ctx = canvas.getContext('2d');
94
+ if (!ctx)
95
+ return;
96
+ canvas.width = activeMap.width * activeMap.tileWidth;
97
+ canvas.height = activeMap.height * activeMap.tileHeight;
98
+ // Background
99
+ ctx.fillStyle = activeMap.backgroundColor;
100
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
101
+ // Render layers
102
+ for (const layer of activeMap.layers.filter(l => l.visible)) {
103
+ ctx.globalAlpha = layer.opacity;
104
+ for (let y = 0; y < activeMap.height; y++) {
105
+ for (let x = 0; x < activeMap.width; x++) {
106
+ const tileId = (_a = layer.tiles[y]) === null || _a === void 0 ? void 0 : _a[x];
107
+ if (tileId) {
108
+ const tile = api.project.tileSets.find(t => t.id === tileId);
109
+ if (tile === null || tile === void 0 ? void 0 : tile.thumbnail) {
110
+ const img = new Image();
111
+ img.src = tile.thumbnail;
112
+ ctx.drawImage(img, x * activeMap.tileWidth, y * activeMap.tileHeight, activeMap.tileWidth, activeMap.tileHeight);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ }
118
+ // Grid overlay
119
+ if (api.editorState.showGrid) {
120
+ ctx.globalAlpha = 0.3;
121
+ ctx.strokeStyle = '#ffffff';
122
+ ctx.lineWidth = 1;
123
+ for (let x = 0; x <= activeMap.width; x++) {
124
+ ctx.beginPath();
125
+ ctx.moveTo(x * activeMap.tileWidth, 0);
126
+ ctx.lineTo(x * activeMap.tileWidth, canvas.height);
127
+ ctx.stroke();
128
+ }
129
+ for (let y = 0; y <= activeMap.height; y++) {
130
+ ctx.beginPath();
131
+ ctx.moveTo(0, y * activeMap.tileHeight);
132
+ ctx.lineTo(canvas.width, y * activeMap.tileHeight);
133
+ ctx.stroke();
134
+ }
135
+ }
136
+ ctx.globalAlpha = 1;
137
+ }, [activeMap, api.project.tileSets, api.editorState.showGrid]);
138
+ const handleCanvasClick = React.useCallback((e) => {
139
+ if (!activeMap || !api.editorState.activeLayerId || !api.editorState.selectedTileId)
140
+ return;
141
+ const canvas = canvasRef.current;
142
+ if (!canvas)
143
+ return;
144
+ const rect = canvas.getBoundingClientRect();
145
+ const scaleX = canvas.width / rect.width;
146
+ const scaleY = canvas.height / rect.height;
147
+ const x = Math.floor((e.clientX - rect.left) * scaleX / activeMap.tileWidth);
148
+ const y = Math.floor((e.clientY - rect.top) * scaleY / activeMap.tileHeight);
149
+ if (api.editorState.tileMapTool === 'brush') {
150
+ api.setTile(api.editorState.activeLayerId, x, y, api.editorState.selectedTileId);
151
+ }
152
+ else if (api.editorState.tileMapTool === 'eraser') {
153
+ api.setTile(api.editorState.activeLayerId, x, y, null);
154
+ }
155
+ else if (api.editorState.tileMapTool === 'fill') {
156
+ api.fillTiles(api.editorState.activeLayerId, x, y, api.editorState.selectedTileId);
157
+ }
158
+ }, [activeMap, api]);
159
+ return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.viewport, ref: containerRef, children: activeMap ? (jsxRuntime.jsx("canvas", { ref: canvasRef, className: GameAsset2dEditor_module.viewportCanvas, style: {
160
+ transform: `translate(-50%, -50%) scale(${api.editorState.zoom})`,
161
+ }, onClick: handleCanvasClick, onMouseDown: () => setIsDragging(true), onMouseUp: () => setIsDragging(false), onMouseMove: e => {
162
+ if (isDragging && (api.editorState.tileMapTool === 'brush' || api.editorState.tileMapTool === 'eraser')) {
163
+ handleCanvasClick(e);
164
+ }
165
+ } })) : (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Create or select a tile map to start editing" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.btnPrimary, onClick: () => api.createTileMap('New Map', 32, 32), children: "Create Tile Map" })] })) }));
166
+ };
167
+ /* ────────────────────────────────────────────────────────────────
168
+ SPRITE SHEET CANVAS
169
+ ──────────────────────────────────────────────────────────────── */
170
+ const SpriteSheetCanvas = ({ api }) => {
171
+ const canvasRef = React.useRef(null);
172
+ const fileInputRef = React.useRef(null);
173
+ const activeSheet = api.project.spriteSheets.find(s => s.id === api.editorState.activeSpriteSheetId);
174
+ // Render sprite sheet with frame overlays
175
+ React.useEffect(() => {
176
+ const canvas = canvasRef.current;
177
+ if (!canvas || !(activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.image))
178
+ return;
179
+ const ctx = canvas.getContext('2d');
180
+ if (!ctx)
181
+ return;
182
+ canvas.width = activeSheet.width;
183
+ canvas.height = activeSheet.height;
184
+ // Draw image
185
+ ctx.drawImage(activeSheet.image, 0, 0);
186
+ // Draw frame overlays
187
+ ctx.strokeStyle = '#ffd369';
188
+ ctx.lineWidth = 2;
189
+ for (const frame of activeSheet.frames) {
190
+ const isSelected = api.editorState.selectedFrameIds.includes(frame.id);
191
+ ctx.strokeStyle = isSelected ? '#ffd369' : '#4a5a7e';
192
+ ctx.strokeRect(frame.x, frame.y, frame.width, frame.height);
193
+ // Draw pivot point
194
+ const pivotX = frame.x + frame.width * frame.pivotX;
195
+ const pivotY = frame.y + frame.height * frame.pivotY;
196
+ ctx.fillStyle = isSelected ? '#ffd369' : '#4a5a7e';
197
+ ctx.beginPath();
198
+ ctx.arc(pivotX, pivotY, 3, 0, Math.PI * 2);
199
+ ctx.fill();
200
+ }
201
+ }, [activeSheet, api.editorState.selectedFrameIds]);
202
+ const handleFrameClick = React.useCallback((e) => {
203
+ if (!activeSheet)
204
+ return;
205
+ const canvas = canvasRef.current;
206
+ if (!canvas)
207
+ return;
208
+ const rect = canvas.getBoundingClientRect();
209
+ const scaleX = canvas.width / rect.width;
210
+ const scaleY = canvas.height / rect.height;
211
+ const x = (e.clientX - rect.left) * scaleX;
212
+ const y = (e.clientY - rect.top) * scaleY;
213
+ // Find clicked frame
214
+ const clickedFrame = activeSheet.frames.find(f => x >= f.x && x <= f.x + f.width && y >= f.y && y <= f.y + f.height);
215
+ if (clickedFrame) {
216
+ if (e.ctrlKey || e.metaKey) {
217
+ // Toggle selection
218
+ const newSelection = api.editorState.selectedFrameIds.includes(clickedFrame.id)
219
+ ? api.editorState.selectedFrameIds.filter(id => id !== clickedFrame.id)
220
+ : [...api.editorState.selectedFrameIds, clickedFrame.id];
221
+ api.selectFrames(newSelection);
222
+ }
223
+ else {
224
+ api.selectFrames([clickedFrame.id]);
225
+ }
226
+ }
227
+ else {
228
+ api.selectFrames([]);
229
+ }
230
+ }, [activeSheet, api]);
231
+ return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.viewport, children: activeSheet ? (jsxRuntime.jsx("canvas", { ref: canvasRef, className: GameAsset2dEditor_module.viewportCanvas, style: {
232
+ transform: `translate(-50%, -50%) scale(${api.editorState.zoom})`,
233
+ }, onClick: handleFrameClick })) : (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.emptyState, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Import a sprite sheet to start" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.btnPrimary, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Import Sprite Sheet" }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
234
+ var _a;
235
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
236
+ if (file)
237
+ api.importSpriteSheet(file);
238
+ e.target.value = '';
239
+ } })] })) }));
240
+ };
241
+ /* ────────────────────────────────────────────────────────────────
242
+ SPRITE SHEETS LIST
243
+ ──────────────────────────────────────────────────────────────── */
244
+ const SpriteSheetsList = ({ api }) => {
245
+ const fileInputRef = React.useRef(null);
246
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Sprite Sheets" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "+ Import" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: api.project.spriteSheets.length === 0 ? (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "No sprite sheets" }) })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.layersList, children: api.project.spriteSheets.map(sheet => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeSpriteSheetId === sheet.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectSpriteSheet(sheet.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: sheet.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [sheet.frames.length, " frames"] })] }, sheet.id))) })) }), jsxRuntime.jsx("input", { ref: fileInputRef, type: "file", accept: "image/*", style: { display: 'none' }, onChange: e => {
247
+ var _a;
248
+ const file = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0];
249
+ if (file)
250
+ api.importSpriteSheet(file);
251
+ e.target.value = '';
252
+ } })] }));
253
+ };
254
+ /* ────────────────────────────────────────────────────────────────
255
+ FRAMES & ANIMATIONS PANEL
256
+ ──────────────────────────────────────────────────────────────── */
257
+ const FramesPanel = ({ api }) => {
258
+ var _a;
259
+ const [animName, setAnimName] = React.useState('');
260
+ const activeSheet = api.project.spriteSheets.find(s => s.id === api.editorState.activeSpriteSheetId);
261
+ const createAnimationFromSelection = React.useCallback(() => {
262
+ if (animName && api.editorState.selectedFrameIds.length > 0) {
263
+ api.createAnimation(animName, api.editorState.selectedFrameIds);
264
+ setAnimName('');
265
+ }
266
+ }, [animName, api]);
267
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsxs("span", { children: ["Frames (", (_a = activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.length) !== null && _a !== void 0 ? _a : 0, ")"] }) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, style: { maxHeight: 200 }, children: activeSheet === null || activeSheet === void 0 ? void 0 : activeSheet.frames.map(frame => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.selectedFrameIds.includes(frame.id) ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectFrames([frame.id]), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: frame.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [frame.width, "\u00D7", frame.height] })] }, frame.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Animations" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [api.editorState.selectedFrameIds.length > 0 && (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx("input", { type: "text", className: GameAsset2dEditor_module.panelInput, placeholder: "Animation name...", value: animName, onChange: e => setAnimName(e.target.value) }), jsxRuntime.jsxs("button", { className: GameAsset2dEditor_module.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 => (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: anim.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [anim.frameIds.length, "f"] }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.effectRemove, onClick: () => api.removeAnimation(anim.id), children: "\u00D7" })] }, anim.id)))] })] }));
268
+ };
269
+ /* ────────────────────────────────────────────────────────────────
270
+ ANIMATION STATE MACHINE
271
+ ──────────────────────────────────────────────────────────────── */
272
+ const AnimationStateMachineView = ({ api }) => {
273
+ const [newStateName, setNewStateName] = React.useState('');
274
+ const activeSM = api.project.stateMachines.find(sm => sm.id === api.editorState.activeStateMachineId);
275
+ // Get all animations from all sprite sheets
276
+ const allAnimations = React.useMemo(() => {
277
+ const result = [];
278
+ for (const sheet of api.project.spriteSheets) {
279
+ for (const anim of sheet.animations) {
280
+ result.push({ ...anim, sheetName: sheet.name });
281
+ }
282
+ }
283
+ return result;
284
+ }, [api.project.spriteSheets]);
285
+ return (jsxRuntime.jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "State Machines" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => api.createStateMachine('New State Machine'), children: "+ New" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, style: { maxHeight: 150 }, children: api.project.stateMachines.map(sm => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.activeStateMachineId === sm.id ? GameAsset2dEditor_module.selected : ''}`, onClick: () => api.selectStateMachine(sm.id), children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: sm.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [sm.states.length, " states"] })] }, sm.id))) }), activeSM && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "States" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx("input", { type: "text", className: GameAsset2dEditor_module.panelInput, placeholder: "State name...", value: newStateName, onChange: e => setNewStateName(e.target.value) }), allAnimations.length > 0 && newStateName && (jsxRuntime.jsxs("select", { className: GameAsset2dEditor_module.panelInput, style: { marginTop: 4 }, onChange: e => {
286
+ if (e.target.value) {
287
+ api.addState(newStateName, e.target.value);
288
+ setNewStateName('');
289
+ }
290
+ }, children: [jsxRuntime.jsx("option", { value: "", children: "Select animation..." }), allAnimations.map(anim => (jsxRuntime.jsxs("option", { value: anim.id, children: [anim.sheetName, ": ", anim.name] }, anim.id)))] }))] }), activeSM.states.map(state => (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.layerItem} ${api.editorState.selectedStateId === state.id ? GameAsset2dEditor_module.selected : ''} ${activeSM.entryStateId === state.id ? GameAsset2dEditor_module.entry : ''}`, onClick: () => api.selectState(state.id), children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerName, children: [activeSM.entryStateId === state.id && '▶ ', state.name] }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.effectRemove, onClick: e => {
291
+ e.stopPropagation();
292
+ api.removeState(state.id);
293
+ }, children: "\u00D7" })] }, state.id)))] })] }))] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.stateGraph, children: activeSM ? (jsxRuntime.jsxs("svg", { width: "100%", height: "100%", children: [jsxRuntime.jsx("defs", { children: jsxRuntime.jsx("marker", { id: "arrowhead", markerWidth: "10", markerHeight: "7", refX: "9", refY: "3.5", orient: "auto", children: jsxRuntime.jsx("polygon", { points: "0 0, 10 3.5, 0 7", fill: "#4a5a7e" }) }) }), activeSM.transitions.map(trans => {
294
+ const from = activeSM.states.find(s => s.id === trans.fromStateId);
295
+ const to = activeSM.states.find(s => s.id === trans.toStateId);
296
+ if (!from || !to)
297
+ return null;
298
+ return (jsxRuntime.jsx("line", { x1: from.position.x + 60, y1: from.position.y + 20, x2: to.position.x + 60, y2: to.position.y + 20, className: GameAsset2dEditor_module.transition, onClick: () => api.removeTransition(trans.id) }, trans.id));
299
+ }), activeSM.states.map(state => {
300
+ var _a, _b;
301
+ return (jsxRuntime.jsx("foreignObject", { x: state.position.x, y: state.position.y, width: 120, height: 50, children: jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.stateNode} ${api.editorState.selectedStateId === state.id ? GameAsset2dEditor_module.selected : ''} ${activeSM.entryStateId === state.id ? GameAsset2dEditor_module.entry : ''}`, onClick: () => api.selectState(state.id), children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.stateNodeName, children: state.name }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.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));
302
+ })] })) : (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Create a state machine to design animation flows" }) })) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelHeader, children: [jsxRuntime.jsx("span", { children: "Parameters" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.menuBtn, onClick: () => api.addParameter('new_param', 'trigger'), disabled: !activeSM, children: "+ Add" })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: activeSM === null || activeSM === void 0 ? void 0 : activeSM.parameters.map(param => (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerOpacity, children: param.type }), jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: param.name }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.effectRemove, onClick: () => api.removeParameter(param.id), children: "\u00D7" })] }, param.id))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Transitions" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [activeSM === null || activeSM === void 0 ? void 0 : activeSM.transitions.map(trans => {
303
+ var _a, _b;
304
+ const from = activeSM.states.find(s => s.id === trans.fromStateId);
305
+ const to = activeSM.states.find(s => s.id === trans.toStateId);
306
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.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 : '?'] }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.effectRemove, onClick: () => api.removeTransition(trans.id), children: "\u00D7" })] }, trans.id));
307
+ }), api.editorState.selectedStateId && (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, style: { marginTop: 12 }, children: [jsxRuntime.jsx("label", { className: GameAsset2dEditor_module.panelLabel, children: "Add transition to:" }), jsxRuntime.jsxs("select", { className: GameAsset2dEditor_module.panelInput, onChange: e => {
308
+ if (e.target.value && api.editorState.selectedStateId) {
309
+ api.addTransition(api.editorState.selectedStateId, e.target.value);
310
+ }
311
+ }, children: [jsxRuntime.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 => (jsxRuntime.jsx("option", { value: s.id, children: s.name }, s.id)))] })] }))] })] })] }));
312
+ };
313
+ /* ────────────────────────────────────────────────────────────────
314
+ EFFECTS PANEL
315
+ ──────────────────────────────────────────────────────────────── */
316
+ const EffectsView = ({ api }) => {
317
+ const [currentEffects, setCurrentEffects] = React.useState([]);
318
+ const [presetName, setPresetName] = React.useState('');
319
+ const effectTypes = [
320
+ { type: 'brightness', label: 'Brightness' },
321
+ { type: 'contrast', label: 'Contrast' },
322
+ { type: 'saturation', label: 'Saturation' },
323
+ { type: 'hue-shift', label: 'Hue Shift' },
324
+ { type: 'invert', label: 'Invert' },
325
+ { type: 'pixelate', label: 'Pixelate' },
326
+ { type: 'outline', label: 'Outline' },
327
+ { type: 'tint', label: 'Tint' },
328
+ { type: 'blur', label: 'Blur' },
329
+ { type: 'glow', label: 'Glow' },
330
+ { type: 'shadow', label: 'Shadow' },
331
+ { type: 'palette-swap', label: 'Palette Swap' },
332
+ ];
333
+ return (jsxRuntime.jsxs("div", { style: { display: 'flex', flex: 1, overflow: 'hidden' }, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.leftPanel, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Add Effect" }) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: effectTypes.map(({ type, label }) => (jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.layerItem, onClick: () => api.addEffect(type), style: { cursor: 'pointer', border: 'none', textAlign: 'left' }, children: jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: label }) }, type))) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Presets" }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelContent, children: [jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.panelSection, children: [jsxRuntime.jsx("input", { type: "text", className: GameAsset2dEditor_module.panelInput, placeholder: "Preset name...", value: presetName, onChange: e => setPresetName(e.target.value) }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.btnSecondary, style: { marginTop: 4, width: '100%' }, onClick: () => {
334
+ if (presetName) {
335
+ api.saveEffectPreset(presetName);
336
+ setPresetName('');
337
+ }
338
+ }, disabled: !presetName, children: "Save Current Effects" })] }), api.project.effectPresets.map(preset => (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.layerItem, onClick: () => api.loadEffectPreset(preset.id), style: { cursor: 'pointer' }, children: [jsxRuntime.jsx("span", { className: GameAsset2dEditor_module.layerName, children: preset.name }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.layerOpacity, children: [preset.effects.length, " effects"] })] }, preset.id)))] })] }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.viewport, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Select a sprite or tile to preview effects" }) }) }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.rightPanel, children: [jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelHeader, children: jsxRuntime.jsx("span", { children: "Active Effects" }) }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.panelContent, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.effectsList, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyState, children: jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.emptyStateText, children: "Add effects from the left panel" }) }) }) })] })] }));
339
+ };
340
+ /* ────────────────────────────────────────────────────────────────
341
+ STATUS BAR
342
+ ──────────────────────────────────────────────────────────────── */
343
+ const StatusBar = ({ api }) => {
344
+ const activeMap = api.project.tileMaps.find(m => m.id === api.editorState.activeTileMapId);
345
+ const activeSheet = api.project.spriteSheets.find(s => s.id === api.editorState.activeSpriteSheetId);
346
+ return (jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.statusBar, children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Mode: ", api.editorState.mode] }), api.editorState.mode === 'tilemap' && activeMap && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Map: ", activeMap.name, " (", activeMap.width, "\u00D7", activeMap.height, ")"] }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Tile: ", activeMap.tileWidth, "\u00D7", activeMap.tileHeight, "px"] })] })), api.editorState.mode === 'spritesheet' && activeSheet && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Sheet: ", activeSheet.name] }), jsxRuntime.jsxs("span", { className: GameAsset2dEditor_module.statusItem, children: ["Selected: ", api.editorState.selectedFrameIds.length, " frames"] })] })), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.zoomControl, children: [jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.zoomBtn, onClick: () => api.setZoom(api.editorState.zoom - 0.25), children: "\u2212" }), jsxRuntime.jsxs("span", { children: [Math.round(api.editorState.zoom * 100), "%"] }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.zoomBtn, onClick: () => api.setZoom(api.editorState.zoom + 0.25), children: "+" }), jsxRuntime.jsx("button", { className: GameAsset2dEditor_module.zoomBtn, onClick: () => api.setZoom(1), children: "\u2299" })] })] }));
347
+ };
348
+ /* ────────────────────────────────────────────────────────────────
349
+ MAIN COMPONENT
350
+ ──────────────────────────────────────────────────────────────── */
351
+ const GameAsset2dEditor = ({ className, onSave, onExport, }) => {
352
+ const api = useGameAssetEditor.useGameAssetEditor({ onSave, onExport });
353
+ const renderModeContent = () => {
354
+ switch (api.editorState.mode) {
355
+ case 'tilemap':
356
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(TileMapToolbar, { api: api }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.mainArea, children: [jsxRuntime.jsx(TilePalette, { api: api }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.centerArea, children: jsxRuntime.jsx(TileMapCanvas, { api: api }) }), jsxRuntime.jsx(LayersPanel, { api: api })] })] }));
357
+ case 'spritesheet':
358
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(SpriteSheetToolbar, { api: api }), jsxRuntime.jsxs("div", { className: GameAsset2dEditor_module.mainArea, children: [jsxRuntime.jsx(SpriteSheetsList, { api: api }), jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.centerArea, children: jsxRuntime.jsx(SpriteSheetCanvas, { api: api }) }), jsxRuntime.jsx(FramesPanel, { api: api })] })] }));
359
+ case 'animation':
360
+ return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.mainArea, children: jsxRuntime.jsx(AnimationStateMachineView, { api: api }) }));
361
+ case 'effects':
362
+ return (jsxRuntime.jsx("div", { className: GameAsset2dEditor_module.mainArea, children: jsxRuntime.jsx(EffectsView, { api: api }) }));
363
+ default:
364
+ return null;
365
+ }
366
+ };
367
+ return (jsxRuntime.jsxs("div", { className: `${GameAsset2dEditor_module.root} ${className || ''}`, children: [jsxRuntime.jsx(MenuBar, { api: api }), jsxRuntime.jsx(ModeTabs, { api: api }), renderModeContent(), jsxRuntime.jsx(StatusBar, { api: api })] }));
368
+ };
369
+
370
+ exports.GameAsset2dEditor = GameAsset2dEditor;
371
+ //# sourceMappingURL=GameAsset2dEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameAsset2dEditor.js","sources":["../../../src/game/GameAsset2dEditor.tsx"],"sourcesContent":[null],"names":["useRef","_jsxs","styles","_jsx","useState","useEffect","useCallback","useMemo","_Fragment","useGameAssetEditor"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ 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"};
4
+
5
+ module.exports = styles;
6
+ //# sourceMappingURL=GameAsset2dEditor.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GameAsset2dEditor.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * gameAssetTypes.ts — Types for GameAsset2dEditor
5
+ *
6
+ * Supports tile maps, sprite sheets, animations, and game asset processing.
7
+ */
8
+ /* ────────────────────────────────────────────────────────────────
9
+ CONSTANTS
10
+ ──────────────────────────────────────────────────────────────── */
11
+ const DEFAULT_PROJECT_SETTINGS = {
12
+ defaultTileWidth: 16,
13
+ defaultTileHeight: 16,
14
+ pixelsPerUnit: 16,
15
+ exportFormat: 'json',
16
+ compressImages: true,
17
+ };
18
+
19
+ exports.DEFAULT_PROJECT_SETTINGS = DEFAULT_PROJECT_SETTINGS;
20
+ //# 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;;;;;"}