@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,151 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { useMemo, useEffect } from 'react';
3
+ import { motion } from 'framer-motion';
4
+ import { usePersonControls, playPose } from './animationHelper.js';
5
+ import { DEFAULT_CHARACTER, pick } from './characterTypes.js';
6
+
7
+ const AnimatedPerson = ({ id, name, size, score = 10, startPose = "idle", onReady, character, }) => {
8
+ var _a, _b, _c, _d, _e;
9
+ const fx = usePersonControls();
10
+ const cfg = useMemo(() => ({ ...DEFAULT_CHARACTER, ...(character !== null && character !== void 0 ? character : {}) }), [character]);
11
+ useEffect(() => {
12
+ onReady === null || onReady === void 0 ? void 0 : onReady(fx);
13
+ void playPose(fx, startPose, {});
14
+ }, [fx, onReady, startPose]);
15
+ const W = (_c = (_b = (_a = cfg.size) !== null && _a !== void 0 ? _a : size) !== null && _b !== void 0 ? _b : DEFAULT_CHARACTER.size) !== null && _c !== void 0 ? _c : 180;
16
+ const skin = pick(cfg.face.colors, 0, "var(--anim-skin, #FFD2B3)");
17
+ return (jsx(motion.div, { id: id, style: { width: W, height: W * 1.35, overflow: "visible" }, animate: fx.root, children: jsxs("svg", { viewBox: "0 0 180 240", width: "100%", height: "100%", role: "img", "aria-label": (_e = (_d = cfg.name) !== null && _d !== void 0 ? _d : name) !== null && _e !== void 0 ? _e : "Juror", children: [jsxs(motion.g, { animate: fx.body, children: [jsx("rect", { x: "68", y: "158", width: "14", height: "46", rx: "6", fill: pick(cfg.outfit.colors, 1, "var(--anim-outfit-leg, #334155)") }), jsx("ellipse", { cx: "75", cy: "204", rx: "10", ry: "5", fill: pick(cfg.outfit.colors, 1, "var(--anim-outfit-leg-shadow, #1E293B)") }), jsx("rect", { x: "98", y: "158", width: "14", height: "46", rx: "6", fill: pick(cfg.outfit.colors, 1, "var(--anim-outfit-leg, #334155)") }), jsx("ellipse", { cx: "105", cy: "204", rx: "10", ry: "5", fill: pick(cfg.outfit.colors, 1, "var(--anim-outfit-leg-shadow, #1E293B)") })] }), jsx(motion.g, { animate: fx.body, children: renderOutfit(cfg.outfit) }), jsx("rect", { x: "84", y: "82", width: "12", height: "12", rx: "4", fill: skin }), jsxs(motion.g, { animate: fx.leftArm, style: { transformOrigin: "64px 96px" }, children: [jsx("rect", { x: "36", y: "96", width: "16", height: "36", rx: "7", fill: skin }), jsx("circle", { cx: "44", cy: "136", r: "7", fill: skin })] }), jsxs(motion.g, { animate: fx.rightArm, style: { transformOrigin: "116px 96px" }, children: [jsx("rect", { x: "128", y: "96", width: "16", height: "36", rx: "7", fill: skin }), jsx("circle", { cx: "136", cy: "136", r: "7", fill: skin }), jsxs(motion.g, { animate: fx.card, children: [jsx("rect", { x: "126", y: "50", width: "42", height: "30", rx: "4", fill: "var(--surface-bg, #fff)", stroke: "var(--text-primary, #111)", strokeWidth: 1.2 }), jsx("text", { x: "147", y: "70", textAnchor: "middle", fontSize: "16", fontWeight: 700, fill: "var(--text-primary, #111)", children: String(score) })] }), renderProp(cfg.prop)] }), jsxs(motion.g, { animate: fx.head, children: [renderHairBack(cfg.hair), renderFace(cfg.face), jsx(motion.g, { animate: fx.eyes, children: renderEyes(cfg.eyes) }), renderNose(cfg.nose), jsx(motion.g, { animate: fx.mouth, children: renderMouth(cfg.mouth) }), renderHeadwear(cfg.headwear)] }), jsxs(motion.g, { animate: fx.curse, initial: { opacity: 0 }, children: [jsx("rect", { x: "62", y: "10", width: "56", height: "22", rx: "8", fill: "var(--text-primary, #111)" }), jsx("text", { x: "90", y: "26", textAnchor: "middle", fontSize: "12", fill: "var(--surface-bg, #fff)", children: "#!%&*" }), jsx("path", { d: "M82 32 l4 8 l4 -8", fill: "var(--text-primary, #111)" })] })] }) }));
18
+ };
19
+ /* ---------------- RENDERERS (redesigned proportions) ---------------- */
20
+ function renderOutfit(cfg) {
21
+ const base = pick(cfg.colors, 0, "var(--anim-shirt, #3B82F6)");
22
+ const accent = pick(cfg.colors, 1, base);
23
+ const stroke = pick(cfg.colors, 2, "var(--anim-stroke, #111)");
24
+ switch (cfg.variant) {
25
+ case "hoodie":
26
+ return (jsxs("g", { children: [jsx("rect", { x: "52", y: "92", width: "76", height: "66", rx: "16", fill: base, stroke: stroke, strokeWidth: 1 }), jsx("path", { d: "M52 102 Q90 72 128 102", fill: accent, opacity: 0.2 }), jsx("ellipse", { cx: "90", cy: "94", rx: "18", ry: "6", fill: accent, opacity: 0.3 })] }));
27
+ case "suit":
28
+ return (jsxs("g", { children: [jsx("rect", { x: "52", y: "92", width: "76", height: "66", rx: "12", fill: base, stroke: stroke, strokeWidth: 1 }), jsx("path", { d: "M90 92 L72 118 L90 110 L108 118 Z", fill: accent, opacity: 0.75 }), jsx("rect", { x: "88", y: "110", width: "4", height: "48", fill: "var(--surface-bg, #fff)", opacity: 0.8 }), jsx("circle", { cx: "90", cy: "120", r: "2", fill: stroke }), jsx("circle", { cx: "90", cy: "134", r: "2", fill: stroke })] }));
29
+ case "dress":
30
+ return (jsxs("g", { children: [jsx("rect", { x: "52", y: "92", width: "76", height: "56", rx: "14", fill: base, stroke: stroke, strokeWidth: 1 }), jsx("path", { d: "M52 148 L128 148 L136 168 L44 168 Z", fill: accent })] }));
31
+ case "tee":
32
+ default:
33
+ return (jsxs("g", { children: [jsx("rect", { x: "52", y: "92", width: "76", height: "66", rx: "14", fill: base, stroke: stroke, strokeWidth: 1 }), jsx("path", { d: "M82 92 L90 100 L98 92", fill: "none", stroke: stroke, strokeWidth: 1, opacity: 0.4 })] }));
34
+ }
35
+ }
36
+ function renderHairBack(cfg) {
37
+ const base = pick(cfg.colors, 0, "var(--anim-hair, #1F2937)");
38
+ const hi = pick(cfg.colors, 1, base);
39
+ switch (cfg.variant) {
40
+ case "long":
41
+ return (jsxs("g", { children: [jsx("path", { d: "M60 46 Q90 22 120 46 L120 76 Q90 92 60 76 Z", fill: base }), jsx("path", { d: "M90 46 Q92 56 102 62", stroke: hi, strokeWidth: 2.5, opacity: 0.35 })] }));
42
+ case "curly":
43
+ return (jsxs("g", { children: [jsx("path", { d: "M66 40 q10 -14 22 0 q10 -14 22 0 l0 12 q-32 12 -64 0 Z", fill: base }), jsx("circle", { cx: "66", cy: "44", r: "5", fill: base }), jsx("circle", { cx: "114", cy: "44", r: "5", fill: base })] }));
44
+ case "mohawk":
45
+ return jsx("path", { d: "M82 28 L98 28 L100 50 L80 50 Z", fill: base });
46
+ case "short":
47
+ return jsx("path", { d: "M68 47 C78 24, 102 24, 112 47 L68 47 Z", fill: base });
48
+ case "none":
49
+ default:
50
+ return null;
51
+ }
52
+ }
53
+ function renderFace(cfg) {
54
+ const skin = pick(cfg.colors, 0, "var(--anim-skin, #FFD2B3)");
55
+ const shadow = pick(cfg.colors, 1, skin);
56
+ const stroke = pick(cfg.colors, 2, "var(--anim-stroke, #111)");
57
+ switch (cfg.variant) {
58
+ case "oval":
59
+ return (jsxs("g", { children: [jsx("ellipse", { cx: "90", cy: "60", rx: "26", ry: "28", fill: skin, stroke: stroke, strokeWidth: 1 }), jsx("ellipse", { cx: "90", cy: "76", rx: "16", ry: "5", fill: shadow, opacity: 0.08 })] }));
60
+ case "square":
61
+ return (jsxs("g", { children: [jsx("rect", { x: "64", y: "36", width: "52", height: "48", rx: "12", fill: skin, stroke: stroke, strokeWidth: 1 }), jsx("ellipse", { cx: "90", cy: "76", rx: "16", ry: "5", fill: shadow, opacity: 0.08 })] }));
62
+ case "heart":
63
+ return (jsxs("g", { children: [jsx("path", { d: "M90 36 q-18 10 -18 26 q0 16 18 26 q18 -10 18 -26 q0 -16 -18 -26 Z", fill: skin, stroke: stroke, strokeWidth: 1 }), jsx("ellipse", { cx: "90", cy: "76", rx: "16", ry: "5", fill: shadow, opacity: 0.08 })] }));
64
+ case "round":
65
+ default:
66
+ return (jsxs("g", { children: [jsx("circle", { cx: "90", cy: "60", r: "26", fill: skin, stroke: stroke, strokeWidth: 1 }), jsx("ellipse", { cx: "90", cy: "76", rx: "16", ry: "5", fill: shadow, opacity: 0.08 })] }));
67
+ }
68
+ }
69
+ function renderEyes(cfg) {
70
+ const base = pick(cfg.colors, 0, "var(--anim-eye-base, #111)");
71
+ switch (cfg.variant) {
72
+ case "oval":
73
+ return (jsxs(Fragment, { children: [jsx("ellipse", { cx: "80", cy: "56", rx: "4.5", ry: "3.5", fill: base }), jsx("ellipse", { cx: "100", cy: "56", rx: "4.5", ry: "3.5", fill: base }), jsx("circle", { cx: "81.5", cy: "55", r: "1.2", fill: "var(--surface-bg, #fff)", opacity: 0.7 }), jsx("circle", { cx: "101.5", cy: "55", r: "1.2", fill: "var(--surface-bg, #fff)", opacity: 0.7 })] }));
74
+ case "laugh":
75
+ return (jsxs(Fragment, { children: [jsx("path", { d: "M76 56 q4 -4 8 0", stroke: base, strokeWidth: 2.5, fill: "none", strokeLinecap: "round" }), jsx("path", { d: "M96 56 q4 -4 8 0", stroke: base, strokeWidth: 2.5, fill: "none", strokeLinecap: "round" })] }));
76
+ case "wink":
77
+ return (jsxs(Fragment, { children: [jsx("circle", { cx: "80", cy: "56", r: "3.5", fill: base }), jsx("circle", { cx: "81.5", cy: "55", r: "1", fill: "var(--surface-bg, #fff)", opacity: 0.7 }), jsx("path", { d: "M96 56 l8 0", stroke: base, strokeWidth: 2.5, strokeLinecap: "round" })] }));
78
+ case "sleepy":
79
+ return (jsxs(Fragment, { children: [jsx("path", { d: "M76 56 l8 0", stroke: base, strokeWidth: 2.5, strokeLinecap: "round" }), jsx("path", { d: "M96 56 l8 0", stroke: base, strokeWidth: 2.5, strokeLinecap: "round" })] }));
80
+ case "dot":
81
+ default:
82
+ return (jsxs(Fragment, { children: [jsx("circle", { cx: "80", cy: "56", r: "3.5", fill: base }), jsx("circle", { cx: "100", cy: "56", r: "3.5", fill: base }), jsx("circle", { cx: "81.5", cy: "55", r: "1", fill: "var(--surface-bg, #fff)", opacity: 0.7 }), jsx("circle", { cx: "101.5", cy: "55", r: "1", fill: "var(--surface-bg, #fff)", opacity: 0.7 })] }));
83
+ }
84
+ }
85
+ function renderNose(cfg) {
86
+ const base = pick(cfg.colors, 0, "var(--anim-nose, #111)");
87
+ switch (cfg.variant) {
88
+ case "triangle":
89
+ return jsx("path", { d: "M90 62 l-4 8 h8 Z", fill: base, opacity: 0.6 });
90
+ case "round":
91
+ return jsx("circle", { cx: "90", cy: "66", r: "3", fill: base, opacity: 0.6 });
92
+ case "line":
93
+ default:
94
+ return jsx("rect", { x: "89", y: "62", width: "2", height: "8", fill: base, rx: "1", opacity: 0.5 });
95
+ }
96
+ }
97
+ function renderMouth(cfg) {
98
+ const base = pick(cfg.colors, 0, "var(--anim-mouth-base, #111)");
99
+ const tooth = pick(cfg.colors, 1, "var(--white, #fff)");
100
+ switch (cfg.variant) {
101
+ case "frown":
102
+ return jsx("path", { d: "M80 76 q10 -6 20 0", stroke: base, strokeWidth: 2.5, fill: "none", strokeLinecap: "round" });
103
+ case "open":
104
+ return jsx("ellipse", { cx: "90", cy: "76", rx: "7", ry: "5", fill: base });
105
+ case "flat":
106
+ return jsx("rect", { x: "82", y: "75", width: "16", height: "2.5", rx: "1.25", fill: base });
107
+ case "o":
108
+ return jsx("circle", { cx: "90", cy: "76", r: "4", fill: base });
109
+ case "teeth":
110
+ return (jsxs("g", { children: [jsx("rect", { x: "82", y: "74", width: "16", height: "7", rx: "3", fill: base }), jsx("rect", { x: "84", y: "75", width: "12", height: "3", rx: "1", fill: tooth })] }));
111
+ case "smile":
112
+ default:
113
+ return jsx("path", { d: "M80 76 q10 8 20 0", stroke: base, strokeWidth: 2.5, fill: "none", strokeLinecap: "round" });
114
+ }
115
+ }
116
+ function renderHeadwear(cfg) {
117
+ const base = pick(cfg.colors, 0, "var(--anim-headwear-base, #111)");
118
+ const accent = pick(cfg.colors, 1, base);
119
+ switch (cfg.variant) {
120
+ case "cap":
121
+ return (jsxs("g", { children: [jsx("path", { d: "M68 44 q22 -18 44 0 l-6 4 q-18 -10 -28 0 Z", fill: base }), jsx("rect", { x: "60", y: "44", width: "52", height: "5", rx: "2", fill: base })] }));
122
+ case "headphones":
123
+ return (jsxs("g", { children: [jsx("path", { d: "M66 56 q0 -24 24 -24 q24 0 24 24", stroke: base, strokeWidth: 5, fill: "none" }), jsx("rect", { x: "58", y: "52", width: "12", height: "16", rx: "4", fill: accent }), jsx("rect", { x: "110", y: "52", width: "12", height: "16", rx: "4", fill: accent })] }));
124
+ case "hat":
125
+ return (jsxs("g", { children: [jsx("rect", { x: "62", y: "38", width: "56", height: "8", rx: "3", fill: base }), jsx("rect", { x: "72", y: "30", width: "36", height: "10", rx: "3", fill: base })] }));
126
+ case "crown":
127
+ return jsx("path", { d: "M72 42 l6 12 l6 -10 l6 10 l6 -10 l6 12 v6 h-30 Z", fill: base });
128
+ case "none":
129
+ default:
130
+ return null;
131
+ }
132
+ }
133
+ function renderProp(cfg) {
134
+ const base = pick(cfg.colors, 0, "var(--anim-prop-base, #111)");
135
+ const accent = pick(cfg.colors, 1, "var(--anim-prop-accent, #666)");
136
+ const light = pick(cfg.colors, 2, "var(--anim-prop-light, #CCC)");
137
+ switch (cfg.variant) {
138
+ case "mic":
139
+ return (jsxs("g", { transform: "translate(140,90)", children: [jsx("rect", { x: "0", y: "0", width: "4", height: "16", rx: "2", fill: accent }), jsx("circle", { cx: "2", cy: "-2", r: "6", fill: base, stroke: light, strokeWidth: 1 })] }));
140
+ case "clipboard":
141
+ return (jsxs("g", { transform: "translate(140,86)", children: [jsx("rect", { x: "-6", y: "-2", width: "20", height: "26", rx: "3", fill: light, stroke: base }), jsx("rect", { x: "0", y: "-6", width: "8", height: "6", rx: "2", fill: base })] }));
142
+ case "star":
143
+ return (jsx("g", { transform: "translate(140,86)", children: jsx("path", { d: "M8 0 L10 6 L16 6 L11 10 L13 16 L8 12 L3 16 L5 10 L0 6 L6 6 Z", fill: accent, stroke: base }) }));
144
+ case "none":
145
+ default:
146
+ return null;
147
+ }
148
+ }
149
+
150
+ export { AnimatedPerson as default };
151
+ //# sourceMappingURL=AnimatedPerson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedPerson.js","sources":["../../../src/animation/AnimatedPerson.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
3
+ import { useNiceTranslation } from '../core/i18n.js';
4
+ import AnimatedPerson from './AnimatedPerson.js';
5
+ import { DEFAULT_CHARACTER, VARIANTS } from './characterTypes.js';
6
+
7
+ const STORAGE_KEY = "nice2dev.animation-editor.character";
8
+ /* ---------- helpers ---------- */
9
+ function clampPalette(colors) {
10
+ const c = (colors || []).slice(0, 3);
11
+ if (c.length === 0)
12
+ c.push("var(--anim-default-black, #000000)");
13
+ while (c.length < 3)
14
+ c.push(c[c.length - 1]);
15
+ return c;
16
+ }
17
+ function ColorInputs({ value, onChange, }) {
18
+ var _a;
19
+ const base = clampPalette(value);
20
+ const count = Math.min(3, Math.max(1, (_a = value === null || value === void 0 ? void 0 : value.length) !== null && _a !== void 0 ? _a : 1));
21
+ const view = base.slice(0, count);
22
+ return (jsxs("div", { className: "ntd-ae-color-inputs", children: [jsx("div", { className: "ntd-ae-colors", children: view.map((col, i) => (jsxs("label", { className: "ntd-ae-color-label", children: ["C", i + 1, jsx("input", { type: "color", value: col, onChange: (e) => {
23
+ const next = [...view];
24
+ next[i] = e.target.value;
25
+ onChange(next);
26
+ } })] }, i))) }), jsxs("div", { className: "ntd-ae-color-btns", children: [jsx("button", { type: "button", className: "ntd-ae-color-btn", disabled: count <= 1, onClick: () => onChange(view.slice(0, Math.max(1, count - 1))), children: "-" }), jsx("button", { type: "button", className: "ntd-ae-color-btn", disabled: count >= 3, onClick: () => onChange([...view, view[view.length - 1] || "var(--anim-default-black, #000000)"]), children: "+" })] })] }));
27
+ }
28
+ function Row({ title, children }) {
29
+ return (jsxs("div", { className: "ntd-ae-row", children: [jsx("div", { className: "ntd-ae-row-title", children: title }), jsx("div", { className: "ntd-ae-row-content", children: children })] }));
30
+ }
31
+ function FeatureEditor({ title, feature, variants, onChange, }) {
32
+ return (jsxs(Row, { title: title, children: [jsx("select", { className: "ntd-ae-select", value: feature.variant, onChange: (e) => onChange({ ...feature, variant: e.target.value }), children: variants.map((v) => (jsx("option", { value: v, children: v }, v))) }), jsx(ColorInputs, { value: feature.colors, onChange: (colors) => onChange({ ...feature, colors }) })] }));
33
+ }
34
+ /* ---------- component ---------- */
35
+ function AnimationEditor({ initialConfig, onChange, storageKey = STORAGE_KEY, onNotify, showJsonPanel = true, showPreview = true, className, style, }) {
36
+ var _a, _b;
37
+ const { t } = useNiceTranslation();
38
+ const [json, setJson] = useState("");
39
+ const [cfg, setCfg] = useState(() => {
40
+ if (initialConfig)
41
+ return initialConfig;
42
+ if (storageKey) {
43
+ try {
44
+ const saved = localStorage.getItem(storageKey);
45
+ return saved ? JSON.parse(saved) : DEFAULT_CHARACTER;
46
+ }
47
+ catch (_a) {
48
+ return DEFAULT_CHARACTER;
49
+ }
50
+ }
51
+ return DEFAULT_CHARACTER;
52
+ });
53
+ useEffect(() => {
54
+ setJson(JSON.stringify(cfg, null, 2));
55
+ if (storageKey) {
56
+ try {
57
+ localStorage.setItem(storageKey, JSON.stringify(cfg));
58
+ }
59
+ catch ( /* ignore */_a) { /* ignore */ }
60
+ }
61
+ onChange === null || onChange === void 0 ? void 0 : onChange(cfg);
62
+ }, [cfg, storageKey, onChange]);
63
+ const applyJson = () => {
64
+ try {
65
+ const parsed = JSON.parse(json);
66
+ setCfg(parsed);
67
+ onNotify === null || onNotify === void 0 ? void 0 : onNotify(t("characterEditor.jsonApplied", "JSON applied"), "success");
68
+ }
69
+ catch (_a) {
70
+ onNotify === null || onNotify === void 0 ? void 0 : onNotify(t("characterEditor.invalidJson", "Invalid JSON"), "error");
71
+ }
72
+ };
73
+ const downloadJson = () => {
74
+ const blob = new Blob([JSON.stringify(cfg, null, 2)], { type: "application/json" });
75
+ const url = URL.createObjectURL(blob);
76
+ const a = document.createElement("a");
77
+ a.href = url;
78
+ a.download = `${cfg.name || "character"}.json`;
79
+ a.click();
80
+ URL.revokeObjectURL(url);
81
+ };
82
+ const randomizeColors = () => {
83
+ const rand = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, "0")}`;
84
+ const paint = (f) => ({ ...f, colors: [rand(), rand(), rand()] });
85
+ setCfg({
86
+ ...cfg,
87
+ face: paint(cfg.face),
88
+ hair: paint(cfg.hair),
89
+ eyes: paint(cfg.eyes),
90
+ nose: paint(cfg.nose),
91
+ mouth: paint(cfg.mouth),
92
+ outfit: paint(cfg.outfit),
93
+ headwear: paint(cfg.headwear),
94
+ prop: paint(cfg.prop),
95
+ });
96
+ };
97
+ const updateFeature = (key, val) => {
98
+ setCfg((prev) => ({ ...prev, [key]: val }));
99
+ };
100
+ return (jsxs("div", { className: `ntd-animation-editor ${className !== null && className !== void 0 ? className : ""}`, style: style, children: [jsxs("div", { className: "ntd-ae-controls", children: [jsx(Row, { title: t("characterEditor.name", "Name"), children: jsx("input", { className: "ntd-ae-input", value: cfg.name || "", onChange: (e) => setCfg({ ...cfg, name: e.target.value }), placeholder: t("characterEditor.namePlaceholder", "Character name") }) }), jsxs(Row, { title: t("characters.size", "Size"), children: [jsx("input", { type: "range", min: 140, max: 300, value: (_a = cfg.size) !== null && _a !== void 0 ? _a : 180, onChange: (e) => setCfg({ ...cfg, size: Number(e.target.value) }) }), jsxs("span", { className: "ntd-ae-size-value", children: [(_b = cfg.size) !== null && _b !== void 0 ? _b : 180, "px"] })] }), jsx(FeatureEditor, { title: t("characters.faceShape", "Face"), feature: cfg.face, variants: VARIANTS.face, onChange: (v) => updateFeature("face", v) }), jsx(FeatureEditor, { title: t("characters.hairstyle", "Hair"), feature: cfg.hair, variants: VARIANTS.hair, onChange: (v) => updateFeature("hair", v) }), jsx(FeatureEditor, { title: t("characters.eyes", "Eyes"), feature: cfg.eyes, variants: VARIANTS.eyes, onChange: (v) => updateFeature("eyes", v) }), jsx(FeatureEditor, { title: t("characters.nose", "Nose"), feature: cfg.nose, variants: VARIANTS.nose, onChange: (v) => updateFeature("nose", v) }), jsx(FeatureEditor, { title: t("characters.mouth", "Mouth"), feature: cfg.mouth, variants: VARIANTS.mouth, onChange: (v) => updateFeature("mouth", v) }), jsx(FeatureEditor, { title: t("characters.clothing", "Outfit"), feature: cfg.outfit, variants: VARIANTS.outfit, onChange: (v) => updateFeature("outfit", v) }), jsx(FeatureEditor, { title: t("characters.headwear", "Headwear"), feature: cfg.headwear, variants: VARIANTS.headwear, onChange: (v) => updateFeature("headwear", v) }), jsx(FeatureEditor, { title: t("characters.prop", "Prop"), feature: cfg.prop, variants: VARIANTS.prop, onChange: (v) => updateFeature("prop", v) }), jsxs("div", { className: "ntd-ae-action-row", children: [jsxs("button", { className: "ntd-ae-btn", onClick: randomizeColors, children: ["\uD83C\uDFB2 ", t("characterEditor.randomizeColors", "Randomize colors")] }), jsxs("button", { className: "ntd-ae-btn", onClick: downloadJson, children: ["\u2B07 ", t("characters.downloadJson", "Download JSON")] })] }), showJsonPanel && (jsxs("div", { className: "ntd-ae-json-panel", children: [jsx("div", { className: "ntd-ae-json-label", children: t("characterEditor.jsonSection", "JSON") }), jsx("textarea", { className: "ntd-ae-textarea", value: json, onChange: (e) => setJson(e.target.value) }), jsxs("div", { className: "ntd-ae-json-actions", children: [jsx("button", { className: "ntd-ae-btn ntd-ae-btn--primary", onClick: applyJson, children: t("characterEditor.applyJson", "Apply JSON") }), jsx("button", { className: "ntd-ae-btn", onClick: () => navigator.clipboard.writeText(JSON.stringify(cfg, null, 2)), children: t("characterEditor.copyToClipboard", "Copy") })] })] }))] }), showPreview && (jsxs("div", { className: "ntd-ae-preview", children: [jsx("div", { className: "ntd-ae-preview-label", children: t("characterEditor.preview", "Preview") }), jsx(AnimatedPerson, { character: cfg, score: 10, startPose: "idle" })] }))] }));
101
+ }
102
+
103
+ export { AnimationEditor };
104
+ //# sourceMappingURL=AnimationEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationEditor.js","sources":["../../../src/animation/AnimationEditor.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import React from 'react';
3
+ import AnimatedPerson from './AnimatedPerson.js';
4
+ import { DEFAULT_CHARACTER } from './characterTypes.js';
5
+ import { runRounds, seq } from './choreoDSL.js';
6
+
7
+ const rnd = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, "0")}`;
8
+ function recolor(f, n) {
9
+ const colors = new Array(Math.max(1, Math.min(3, n))).fill(0).map(rnd);
10
+ return { ...f, colors };
11
+ }
12
+ function makeAudience(n) {
13
+ const arr = [];
14
+ for (let i = 0; i < n; i++) {
15
+ arr.push({
16
+ ...DEFAULT_CHARACTER,
17
+ name: `Fan ${i + 1}`,
18
+ size: 150 + Math.round(Math.random() * 40) - 20,
19
+ outfit: recolor(DEFAULT_CHARACTER.outfit, 3),
20
+ hair: recolor(DEFAULT_CHARACTER.hair, 2),
21
+ headwear: Math.random() < 0.3
22
+ ? recolor(DEFAULT_CHARACTER.headwear, 2)
23
+ : { variant: "none", colors: ["var(--anim-stroke, #111)"] },
24
+ prop: Math.random() < 0.25
25
+ ? { variant: "star", colors: [rnd(), rnd(), "var(--anim-stroke, #111)"] }
26
+ : { variant: "none", colors: ["var(--anim-stroke, #111)"] },
27
+ });
28
+ }
29
+ return arr;
30
+ }
31
+ /** Grid of animated audience members with wave/cheer actions. */
32
+ const Audience = ({ count = 36, columns = 12 }) => {
33
+ const people = React.useMemo(() => makeAudience(count), [count]);
34
+ const refs = React.useRef([]);
35
+ refs.current = [];
36
+ const actors = () => refs.current.filter(Boolean);
37
+ const cheer = async () => {
38
+ const a = actors();
39
+ if (!a.length)
40
+ return;
41
+ await runRounds(a, [seq().jump(250).celebrate(500), seq().waveHand(600), seq().danceB(450)], 60);
42
+ };
43
+ const wave = async () => {
44
+ const a = actors();
45
+ if (!a.length)
46
+ return;
47
+ await Promise.all(new Array(Math.ceil(a.length / columns)).fill(0).map((_, row) => runRounds(a.slice(row * columns, row * columns + columns), [seq().waveHand(500)], 120 * row)));
48
+ };
49
+ return (jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [jsx("div", { style: {
50
+ display: "grid",
51
+ gap: 8,
52
+ gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))`,
53
+ }, children: people.map((c, i) => (jsx(AnimatedPerson, { character: c, score: 10, startPose: "idle", onReady: (fx) => (refs.current[i] = fx) }, i))) }), jsxs("div", { style: { display: "flex", gap: 8 }, children: [jsx("button", { onClick: wave, style: { padding: "4px 12px", border: "1px solid #ccc", borderRadius: 4 }, children: "Wave" }), jsx("button", { onClick: cheer, style: { padding: "4px 12px", border: "1px solid #ccc", borderRadius: 4 }, children: "Cheer" })] })] }));
54
+ };
55
+
56
+ export { Audience as default };
57
+ //# sourceMappingURL=Audience.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Audience.js","sources":["../../../src/animation/Audience.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { pick, DEFAULT_COLORS } from './characterTypes.js';
3
+ import { Head } from './shapes/heads.js';
4
+ import { Hair } from './shapes/hair.js';
5
+ import { Eyes } from './shapes/eyes.js';
6
+ import { Nose } from './shapes/noses.js';
7
+ import { Mouth } from './shapes/mouths.js';
8
+ import { Outfit } from './shapes/outfits.js';
9
+ import { Torso } from './shapes/torsos.js';
10
+ import { Arm } from './shapes/arms.js';
11
+ import { Leg } from './shapes/legs.js';
12
+ import { Headwear } from './shapes/headwear.js';
13
+
14
+ /** Static character body composed from modular SVG shapes. */
15
+ const BodyRenderer = ({ character, size }) => {
16
+ var _a;
17
+ const S = Math.max(120, Math.floor((_a = size !== null && size !== void 0 ? size : character.size) !== null && _a !== void 0 ? _a : 180));
18
+ const k = S / 180;
19
+ const skin = pick(character.face.colors, 0, DEFAULT_COLORS.skin);
20
+ const stroke = pick(character.face.colors, 2, DEFAULT_COLORS.stroke);
21
+ const outfitBase = pick(character.outfit.colors, 0, DEFAULT_COLORS.shirt);
22
+ const armColors = [skin, outfitBase, stroke];
23
+ const legColors = [outfitBase, pick(character.outfit.colors, 1, outfitBase), stroke];
24
+ return (jsx("svg", { width: S, height: S, viewBox: `0 0 ${S} ${S}`, role: "img", children: jsxs("g", { transform: `translate(${S / 2} ${S * 0.86})`, children: [jsx(Leg, { colors: legColors, side: -1, variant: "pants", scale: k, transform: "translate(-16 0)" }), jsx(Leg, { colors: legColors, side: 1, variant: "pants", scale: k, transform: "translate(16 0)" }), jsx(Torso, { variant: "vShape", colors: [skin, "var(--anim-transparent, #00000000)", stroke], scale: k }), jsx(Outfit, { variant: character.outfit.variant, colors: character.outfit.colors, scale: k }), jsx(Arm, { colors: armColors, side: -1, variant: "sleeveShort", scale: k, transform: "translate(-40 -8)" }), jsx(Arm, { colors: armColors, side: 1, variant: "sleeveShort", scale: k, transform: "translate(40 -8)" }), jsxs("g", { transform: "translate(0 -84)", children: [jsx(Head, { variant: character.face.variant, colors: character.face.colors, scale: k }), jsx(Hair, { variant: character.hair.variant, colors: character.hair.colors, scale: k }), jsx(Eyes, { variant: character.eyes.variant, colors: character.eyes.colors, scale: k }), jsx(Nose, { variant: character.nose.variant, colors: character.nose.colors, scale: k }), jsx(Mouth, { variant: character.mouth.variant, colors: character.mouth.colors, scale: k }), jsx(Headwear, { variant: character.headwear.variant, colors: character.headwear.colors, scale: k })] })] }) }));
25
+ };
26
+
27
+ export { BodyRenderer, BodyRenderer as default };
28
+ //# sourceMappingURL=BodyRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BodyRenderer.js","sources":["../../../src/animation/BodyRenderer.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":"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"}