@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,106 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var i18n = require('../core/i18n.js');
6
+ var AnimatedPerson = require('./AnimatedPerson.js');
7
+ var characterTypes = require('./characterTypes.js');
8
+
9
+ const STORAGE_KEY = "nice2dev.animation-editor.character";
10
+ /* ---------- helpers ---------- */
11
+ function clampPalette(colors) {
12
+ const c = (colors || []).slice(0, 3);
13
+ if (c.length === 0)
14
+ c.push("var(--anim-default-black, #000000)");
15
+ while (c.length < 3)
16
+ c.push(c[c.length - 1]);
17
+ return c;
18
+ }
19
+ function ColorInputs({ value, onChange, }) {
20
+ var _a;
21
+ const base = clampPalette(value);
22
+ const count = Math.min(3, Math.max(1, (_a = value === null || value === void 0 ? void 0 : value.length) !== null && _a !== void 0 ? _a : 1));
23
+ const view = base.slice(0, count);
24
+ return (jsxRuntime.jsxs("div", { className: "ntd-ae-color-inputs", children: [jsxRuntime.jsx("div", { className: "ntd-ae-colors", children: view.map((col, i) => (jsxRuntime.jsxs("label", { className: "ntd-ae-color-label", children: ["C", i + 1, jsxRuntime.jsx("input", { type: "color", value: col, onChange: (e) => {
25
+ const next = [...view];
26
+ next[i] = e.target.value;
27
+ onChange(next);
28
+ } })] }, i))) }), jsxRuntime.jsxs("div", { className: "ntd-ae-color-btns", children: [jsxRuntime.jsx("button", { type: "button", className: "ntd-ae-color-btn", disabled: count <= 1, onClick: () => onChange(view.slice(0, Math.max(1, count - 1))), children: "-" }), jsxRuntime.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: "+" })] })] }));
29
+ }
30
+ function Row({ title, children }) {
31
+ return (jsxRuntime.jsxs("div", { className: "ntd-ae-row", children: [jsxRuntime.jsx("div", { className: "ntd-ae-row-title", children: title }), jsxRuntime.jsx("div", { className: "ntd-ae-row-content", children: children })] }));
32
+ }
33
+ function FeatureEditor({ title, feature, variants, onChange, }) {
34
+ return (jsxRuntime.jsxs(Row, { title: title, children: [jsxRuntime.jsx("select", { className: "ntd-ae-select", value: feature.variant, onChange: (e) => onChange({ ...feature, variant: e.target.value }), children: variants.map((v) => (jsxRuntime.jsx("option", { value: v, children: v }, v))) }), jsxRuntime.jsx(ColorInputs, { value: feature.colors, onChange: (colors) => onChange({ ...feature, colors }) })] }));
35
+ }
36
+ /* ---------- component ---------- */
37
+ function AnimationEditor({ initialConfig, onChange, storageKey = STORAGE_KEY, onNotify, showJsonPanel = true, showPreview = true, className, style, }) {
38
+ var _a, _b;
39
+ const { t } = i18n.useNiceTranslation();
40
+ const [json, setJson] = React.useState("");
41
+ const [cfg, setCfg] = React.useState(() => {
42
+ if (initialConfig)
43
+ return initialConfig;
44
+ if (storageKey) {
45
+ try {
46
+ const saved = localStorage.getItem(storageKey);
47
+ return saved ? JSON.parse(saved) : characterTypes.DEFAULT_CHARACTER;
48
+ }
49
+ catch (_a) {
50
+ return characterTypes.DEFAULT_CHARACTER;
51
+ }
52
+ }
53
+ return characterTypes.DEFAULT_CHARACTER;
54
+ });
55
+ React.useEffect(() => {
56
+ setJson(JSON.stringify(cfg, null, 2));
57
+ if (storageKey) {
58
+ try {
59
+ localStorage.setItem(storageKey, JSON.stringify(cfg));
60
+ }
61
+ catch ( /* ignore */_a) { /* ignore */ }
62
+ }
63
+ onChange === null || onChange === void 0 ? void 0 : onChange(cfg);
64
+ }, [cfg, storageKey, onChange]);
65
+ const applyJson = () => {
66
+ try {
67
+ const parsed = JSON.parse(json);
68
+ setCfg(parsed);
69
+ onNotify === null || onNotify === void 0 ? void 0 : onNotify(t("characterEditor.jsonApplied", "JSON applied"), "success");
70
+ }
71
+ catch (_a) {
72
+ onNotify === null || onNotify === void 0 ? void 0 : onNotify(t("characterEditor.invalidJson", "Invalid JSON"), "error");
73
+ }
74
+ };
75
+ const downloadJson = () => {
76
+ const blob = new Blob([JSON.stringify(cfg, null, 2)], { type: "application/json" });
77
+ const url = URL.createObjectURL(blob);
78
+ const a = document.createElement("a");
79
+ a.href = url;
80
+ a.download = `${cfg.name || "character"}.json`;
81
+ a.click();
82
+ URL.revokeObjectURL(url);
83
+ };
84
+ const randomizeColors = () => {
85
+ const rand = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, "0")}`;
86
+ const paint = (f) => ({ ...f, colors: [rand(), rand(), rand()] });
87
+ setCfg({
88
+ ...cfg,
89
+ face: paint(cfg.face),
90
+ hair: paint(cfg.hair),
91
+ eyes: paint(cfg.eyes),
92
+ nose: paint(cfg.nose),
93
+ mouth: paint(cfg.mouth),
94
+ outfit: paint(cfg.outfit),
95
+ headwear: paint(cfg.headwear),
96
+ prop: paint(cfg.prop),
97
+ });
98
+ };
99
+ const updateFeature = (key, val) => {
100
+ setCfg((prev) => ({ ...prev, [key]: val }));
101
+ };
102
+ return (jsxRuntime.jsxs("div", { className: `ntd-animation-editor ${className !== null && className !== void 0 ? className : ""}`, style: style, children: [jsxRuntime.jsxs("div", { className: "ntd-ae-controls", children: [jsxRuntime.jsx(Row, { title: t("characterEditor.name", "Name"), children: jsxRuntime.jsx("input", { className: "ntd-ae-input", value: cfg.name || "", onChange: (e) => setCfg({ ...cfg, name: e.target.value }), placeholder: t("characterEditor.namePlaceholder", "Character name") }) }), jsxRuntime.jsxs(Row, { title: t("characters.size", "Size"), children: [jsxRuntime.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) }) }), jsxRuntime.jsxs("span", { className: "ntd-ae-size-value", children: [(_b = cfg.size) !== null && _b !== void 0 ? _b : 180, "px"] })] }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.faceShape", "Face"), feature: cfg.face, variants: characterTypes.VARIANTS.face, onChange: (v) => updateFeature("face", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.hairstyle", "Hair"), feature: cfg.hair, variants: characterTypes.VARIANTS.hair, onChange: (v) => updateFeature("hair", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.eyes", "Eyes"), feature: cfg.eyes, variants: characterTypes.VARIANTS.eyes, onChange: (v) => updateFeature("eyes", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.nose", "Nose"), feature: cfg.nose, variants: characterTypes.VARIANTS.nose, onChange: (v) => updateFeature("nose", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.mouth", "Mouth"), feature: cfg.mouth, variants: characterTypes.VARIANTS.mouth, onChange: (v) => updateFeature("mouth", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.clothing", "Outfit"), feature: cfg.outfit, variants: characterTypes.VARIANTS.outfit, onChange: (v) => updateFeature("outfit", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.headwear", "Headwear"), feature: cfg.headwear, variants: characterTypes.VARIANTS.headwear, onChange: (v) => updateFeature("headwear", v) }), jsxRuntime.jsx(FeatureEditor, { title: t("characters.prop", "Prop"), feature: cfg.prop, variants: characterTypes.VARIANTS.prop, onChange: (v) => updateFeature("prop", v) }), jsxRuntime.jsxs("div", { className: "ntd-ae-action-row", children: [jsxRuntime.jsxs("button", { className: "ntd-ae-btn", onClick: randomizeColors, children: ["\uD83C\uDFB2 ", t("characterEditor.randomizeColors", "Randomize colors")] }), jsxRuntime.jsxs("button", { className: "ntd-ae-btn", onClick: downloadJson, children: ["\u2B07 ", t("characters.downloadJson", "Download JSON")] })] }), showJsonPanel && (jsxRuntime.jsxs("div", { className: "ntd-ae-json-panel", children: [jsxRuntime.jsx("div", { className: "ntd-ae-json-label", children: t("characterEditor.jsonSection", "JSON") }), jsxRuntime.jsx("textarea", { className: "ntd-ae-textarea", value: json, onChange: (e) => setJson(e.target.value) }), jsxRuntime.jsxs("div", { className: "ntd-ae-json-actions", children: [jsxRuntime.jsx("button", { className: "ntd-ae-btn ntd-ae-btn--primary", onClick: applyJson, children: t("characterEditor.applyJson", "Apply JSON") }), jsxRuntime.jsx("button", { className: "ntd-ae-btn", onClick: () => navigator.clipboard.writeText(JSON.stringify(cfg, null, 2)), children: t("characterEditor.copyToClipboard", "Copy") })] })] }))] }), showPreview && (jsxRuntime.jsxs("div", { className: "ntd-ae-preview", children: [jsxRuntime.jsx("div", { className: "ntd-ae-preview-label", children: t("characterEditor.preview", "Preview") }), jsxRuntime.jsx(AnimatedPerson, { character: cfg, score: 10, startPose: "idle" })] }))] }));
103
+ }
104
+
105
+ exports.AnimationEditor = AnimationEditor;
106
+ //# sourceMappingURL=AnimationEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationEditor.js","sources":["../../../src/animation/AnimationEditor.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","useNiceTranslation","useState","DEFAULT_CHARACTER","useEffect","VARIANTS"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var AnimatedPerson = require('./AnimatedPerson.js');
6
+ var characterTypes = require('./characterTypes.js');
7
+ var choreoDSL = require('./choreoDSL.js');
8
+
9
+ const rnd = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, "0")}`;
10
+ function recolor(f, n) {
11
+ const colors = new Array(Math.max(1, Math.min(3, n))).fill(0).map(rnd);
12
+ return { ...f, colors };
13
+ }
14
+ function makeAudience(n) {
15
+ const arr = [];
16
+ for (let i = 0; i < n; i++) {
17
+ arr.push({
18
+ ...characterTypes.DEFAULT_CHARACTER,
19
+ name: `Fan ${i + 1}`,
20
+ size: 150 + Math.round(Math.random() * 40) - 20,
21
+ outfit: recolor(characterTypes.DEFAULT_CHARACTER.outfit, 3),
22
+ hair: recolor(characterTypes.DEFAULT_CHARACTER.hair, 2),
23
+ headwear: Math.random() < 0.3
24
+ ? recolor(characterTypes.DEFAULT_CHARACTER.headwear, 2)
25
+ : { variant: "none", colors: ["var(--anim-stroke, #111)"] },
26
+ prop: Math.random() < 0.25
27
+ ? { variant: "star", colors: [rnd(), rnd(), "var(--anim-stroke, #111)"] }
28
+ : { variant: "none", colors: ["var(--anim-stroke, #111)"] },
29
+ });
30
+ }
31
+ return arr;
32
+ }
33
+ /** Grid of animated audience members with wave/cheer actions. */
34
+ const Audience = ({ count = 36, columns = 12 }) => {
35
+ const people = React.useMemo(() => makeAudience(count), [count]);
36
+ const refs = React.useRef([]);
37
+ refs.current = [];
38
+ const actors = () => refs.current.filter(Boolean);
39
+ const cheer = async () => {
40
+ const a = actors();
41
+ if (!a.length)
42
+ return;
43
+ await choreoDSL.runRounds(a, [choreoDSL.seq().jump(250).celebrate(500), choreoDSL.seq().waveHand(600), choreoDSL.seq().danceB(450)], 60);
44
+ };
45
+ const wave = async () => {
46
+ const a = actors();
47
+ if (!a.length)
48
+ return;
49
+ await Promise.all(new Array(Math.ceil(a.length / columns)).fill(0).map((_, row) => choreoDSL.runRounds(a.slice(row * columns, row * columns + columns), [choreoDSL.seq().waveHand(500)], 120 * row)));
50
+ };
51
+ return (jsxRuntime.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 8 }, children: [jsxRuntime.jsx("div", { style: {
52
+ display: "grid",
53
+ gap: 8,
54
+ gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))`,
55
+ }, children: people.map((c, i) => (jsxRuntime.jsx(AnimatedPerson, { character: c, score: 10, startPose: "idle", onReady: (fx) => (refs.current[i] = fx) }, i))) }), jsxRuntime.jsxs("div", { style: { display: "flex", gap: 8 }, children: [jsxRuntime.jsx("button", { onClick: wave, style: { padding: "4px 12px", border: "1px solid #ccc", borderRadius: 4 }, children: "Wave" }), jsxRuntime.jsx("button", { onClick: cheer, style: { padding: "4px 12px", border: "1px solid #ccc", borderRadius: 4 }, children: "Cheer" })] })] }));
56
+ };
57
+
58
+ module.exports = Audience;
59
+ //# sourceMappingURL=Audience.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Audience.js","sources":["../../../src/animation/Audience.tsx"],"sourcesContent":[null],"names":["DEFAULT_CHARACTER","runRounds","seq","_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var characterTypes = require('./characterTypes.js');
7
+ var heads = require('./shapes/heads.js');
8
+ var hair = require('./shapes/hair.js');
9
+ var eyes = require('./shapes/eyes.js');
10
+ var noses = require('./shapes/noses.js');
11
+ var mouths = require('./shapes/mouths.js');
12
+ var outfits = require('./shapes/outfits.js');
13
+ var torsos = require('./shapes/torsos.js');
14
+ var arms = require('./shapes/arms.js');
15
+ var legs = require('./shapes/legs.js');
16
+ var headwear = require('./shapes/headwear.js');
17
+
18
+ /** Static character body composed from modular SVG shapes. */
19
+ const BodyRenderer = ({ character, size }) => {
20
+ var _a;
21
+ const S = Math.max(120, Math.floor((_a = size !== null && size !== void 0 ? size : character.size) !== null && _a !== void 0 ? _a : 180));
22
+ const k = S / 180;
23
+ const skin = characterTypes.pick(character.face.colors, 0, characterTypes.DEFAULT_COLORS.skin);
24
+ const stroke = characterTypes.pick(character.face.colors, 2, characterTypes.DEFAULT_COLORS.stroke);
25
+ const outfitBase = characterTypes.pick(character.outfit.colors, 0, characterTypes.DEFAULT_COLORS.shirt);
26
+ const armColors = [skin, outfitBase, stroke];
27
+ const legColors = [outfitBase, characterTypes.pick(character.outfit.colors, 1, outfitBase), stroke];
28
+ return (jsxRuntime.jsx("svg", { width: S, height: S, viewBox: `0 0 ${S} ${S}`, role: "img", children: jsxRuntime.jsxs("g", { transform: `translate(${S / 2} ${S * 0.86})`, children: [jsxRuntime.jsx(legs.Leg, { colors: legColors, side: -1, variant: "pants", scale: k, transform: "translate(-16 0)" }), jsxRuntime.jsx(legs.Leg, { colors: legColors, side: 1, variant: "pants", scale: k, transform: "translate(16 0)" }), jsxRuntime.jsx(torsos.Torso, { variant: "vShape", colors: [skin, "var(--anim-transparent, #00000000)", stroke], scale: k }), jsxRuntime.jsx(outfits.Outfit, { variant: character.outfit.variant, colors: character.outfit.colors, scale: k }), jsxRuntime.jsx(arms.Arm, { colors: armColors, side: -1, variant: "sleeveShort", scale: k, transform: "translate(-40 -8)" }), jsxRuntime.jsx(arms.Arm, { colors: armColors, side: 1, variant: "sleeveShort", scale: k, transform: "translate(40 -8)" }), jsxRuntime.jsxs("g", { transform: "translate(0 -84)", children: [jsxRuntime.jsx(heads.Head, { variant: character.face.variant, colors: character.face.colors, scale: k }), jsxRuntime.jsx(hair.Hair, { variant: character.hair.variant, colors: character.hair.colors, scale: k }), jsxRuntime.jsx(eyes.Eyes, { variant: character.eyes.variant, colors: character.eyes.colors, scale: k }), jsxRuntime.jsx(noses.Nose, { variant: character.nose.variant, colors: character.nose.colors, scale: k }), jsxRuntime.jsx(mouths.Mouth, { variant: character.mouth.variant, colors: character.mouth.colors, scale: k }), jsxRuntime.jsx(headwear.Headwear, { variant: character.headwear.variant, colors: character.headwear.colors, scale: k })] })] }) }));
29
+ };
30
+
31
+ exports.BodyRenderer = BodyRenderer;
32
+ exports.default = BodyRenderer;
33
+ //# sourceMappingURL=BodyRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BodyRenderer.js","sources":["../../../src/animation/BodyRenderer.tsx"],"sourcesContent":[null],"names":["pick","DEFAULT_COLORS","_jsx","_jsxs","Leg","Torso","Outfit","Arm","Head","Hair","Eyes","Nose","Mouth","Headwear"],"mappings":"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"}
@@ -0,0 +1,272 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var framerMotion = require('framer-motion');
5
+
6
+ // components/animations/animationHelper.ts
7
+ function usePersonControls() {
8
+ const root = framerMotion.useAnimationControls();
9
+ const body = framerMotion.useAnimationControls();
10
+ const head = framerMotion.useAnimationControls();
11
+ const eyes = framerMotion.useAnimationControls();
12
+ const mouth = framerMotion.useAnimationControls();
13
+ const leftArm = framerMotion.useAnimationControls();
14
+ const rightArm = framerMotion.useAnimationControls();
15
+ const card = framerMotion.useAnimationControls();
16
+ const curse = framerMotion.useAnimationControls();
17
+ return React.useMemo(() => ({ root, body, head, eyes, mouth, leftArm, rightArm, card, curse }), [root, body, head, eyes, mouth, leftArm, rightArm, card, curse]);
18
+ }
19
+ /* -------------------- Helpers -------------------- */
20
+ const isBrowser = typeof window !== "undefined";
21
+ async function baseReset(fx) {
22
+ const spring = { type: "spring", stiffness: 180, damping: 18, mass: 0.8 };
23
+ await Promise.all([
24
+ fx.root.start({ x: 0, y: 0, rotate: 0, scale: 1, transition: spring }),
25
+ fx.body.start({ rotate: 0, transition: spring }),
26
+ fx.head.start({ rotate: 0, y: 0, transition: spring }),
27
+ fx.eyes.start({ scaleY: 1, y: 0, transition: { duration: 0.15 } }),
28
+ fx.mouth.start({ scaleY: 1, scaleX: 1, y: 0, transition: spring }),
29
+ fx.leftArm.start({ rotate: 8, transition: spring }),
30
+ fx.rightArm.start({ rotate: -8, transition: spring }),
31
+ fx.card.start({ y: 0, rotate: 0, opacity: 0, transition: { duration: 0.15 } }),
32
+ fx.curse.start({ opacity: 0, y: -40, transition: { duration: 0.15 } }),
33
+ ]);
34
+ }
35
+ /* -------------------- Pose engine -------------------- */
36
+ async function playPose(fx, pose, opts = {}) {
37
+ var _a, _b, _c;
38
+ const screenW = Math.max(1, (_a = opts.screenW) !== null && _a !== void 0 ? _a : (isBrowser ? window.innerWidth : 1920));
39
+ const screenH = Math.max(1, (_b = opts.screenH) !== null && _b !== void 0 ? _b : (isBrowser ? window.innerHeight : 1080));
40
+ const d = (_c = opts.duration) !== null && _c !== void 0 ? _c : 0.8;
41
+ switch (pose) {
42
+ case "idle": {
43
+ await baseReset(fx);
44
+ // Organic breathing: gentle body sway + head bob + arm float
45
+ void fx.body.start({
46
+ rotate: [0, 0.8, 0, -0.8, 0],
47
+ transition: { duration: 5, repeat: Infinity, ease: "easeInOut" },
48
+ });
49
+ void fx.head.start({
50
+ y: [0, -1, 0, -0.5, 0],
51
+ rotate: [0, 0.5, 0, -0.5, 0],
52
+ transition: { duration: 4, repeat: Infinity, ease: "easeInOut" },
53
+ });
54
+ void fx.leftArm.start({
55
+ rotate: [8, 6, 8, 10, 8],
56
+ transition: { duration: 5, repeat: Infinity, ease: "easeInOut" },
57
+ });
58
+ void fx.rightArm.start({
59
+ rotate: [-8, -10, -8, -6, -8],
60
+ transition: { duration: 5, repeat: Infinity, ease: "easeInOut", delay: 0.5 },
61
+ });
62
+ // Blink cycle — longer gaps between blinks, varied timing
63
+ void fx.eyes.start({
64
+ scaleY: [1, 1, 1, 0.08, 1, 1, 1, 1, 0.08, 1],
65
+ transition: { duration: 6, repeat: Infinity, times: [0, 0.4, 0.42, 0.44, 0.46, 0.7, 0.85, 0.87, 0.89, 0.91] },
66
+ });
67
+ return;
68
+ }
69
+ case "raiseCard": {
70
+ await Promise.all([
71
+ fx.rightArm.start({ rotate: -75, transition: { duration: d } }),
72
+ fx.card.start({ opacity: 1, y: -70, rotate: -5, transition: { duration: d } }),
73
+ fx.head.start({ y: -4, transition: { duration: d * 0.6 } }),
74
+ ]);
75
+ return;
76
+ }
77
+ case "happy": {
78
+ const spring = { type: "spring", stiffness: 200, damping: 14 };
79
+ await Promise.all([
80
+ fx.head.start({ y: [-2, -10, -2], transition: { ...spring, duration: d } }),
81
+ fx.mouth.start({ scaleY: 0.4, scaleX: 1.4, y: 2, transition: spring }),
82
+ fx.leftArm.start({ rotate: [10, -5, 10], transition: { ...spring, duration: d } }),
83
+ fx.rightArm.start({ rotate: [-10, -25, -10], transition: { ...spring, duration: d } }),
84
+ ]);
85
+ return;
86
+ }
87
+ case "angry": {
88
+ await Promise.all([
89
+ fx.head.start({ rotate: [-6, 6, -6, 0], transition: { duration: d } }),
90
+ fx.mouth.start({ scaleY: 1.6, scaleX: 0.9, y: 4, transition: { duration: d } }),
91
+ fx.eyes.start({ scaleY: 0.7, transition: { duration: d } }),
92
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
93
+ ]);
94
+ return;
95
+ }
96
+ case "disappointed": {
97
+ await Promise.all([
98
+ fx.body.start({ rotate: 4, transition: { duration: d } }),
99
+ fx.head.start({ y: 6, rotate: 6, transition: { duration: d } }),
100
+ fx.mouth.start({ scaleY: 0.3, scaleX: 0.9, transition: { duration: d } }),
101
+ fx.eyes.start({ scaleY: 0.5, transition: { duration: d } }),
102
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
103
+ ]);
104
+ return;
105
+ }
106
+ case "swearing": {
107
+ await Promise.all([
108
+ fx.curse.start({ opacity: [0, 1, 0], y: [-30, -50, -55], transition: { duration: d + 0.5 } }),
109
+ fx.mouth.start({ scaleY: 1.4, y: 3, transition: { duration: d } }),
110
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
111
+ ]);
112
+ return;
113
+ }
114
+ case "shouting": {
115
+ await Promise.all([
116
+ fx.head.start({ y: -5, transition: { duration: d * 0.6 } }),
117
+ fx.mouth.start({ scaleY: 2, scaleX: 1.1, y: 6, transition: { duration: d } }),
118
+ fx.rightArm.start({ rotate: -25, transition: { duration: d } }),
119
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
120
+ ]);
121
+ return;
122
+ }
123
+ case "rock": {
124
+ await fx.root.start({
125
+ rotate: [0, -3, 3, -2, 2, 0],
126
+ transition: { duration: 2.2 },
127
+ });
128
+ return;
129
+ }
130
+ case "danceA": {
131
+ const sp = { type: "spring", stiffness: 160, damping: 12, mass: 0.7 };
132
+ await Promise.all([
133
+ fx.root.start({ y: [0, -14, 0, -10, 0], transition: { ...sp, duration: 1.4 } }),
134
+ fx.leftArm.start({ rotate: [8, 45, 8, 35, 8], transition: { ...sp, duration: 1.4 } }),
135
+ fx.rightArm.start({ rotate: [-8, -40, -8, -30, -8], transition: { ...sp, duration: 1.4 } }),
136
+ fx.head.start({ rotate: [0, 3, -3, 2, 0], transition: { ...sp, duration: 1.4 } }),
137
+ ]);
138
+ return;
139
+ }
140
+ case "danceB": {
141
+ const sp = { type: "spring", stiffness: 170, damping: 14 };
142
+ await Promise.all([
143
+ fx.root.start({ rotate: [0, 7, -7, 0], y: [0, -4, 0, -3, 0], transition: { ...sp, duration: 1.1 } }),
144
+ fx.head.start({ rotate: [0, -9, 9, 0], transition: { ...sp, duration: 1.1 } }),
145
+ fx.leftArm.start({ rotate: [8, 20, 8], transition: { ...sp, duration: 1.1 } }),
146
+ fx.rightArm.start({ rotate: [-8, -20, -8], transition: { ...sp, duration: 1.1 } }),
147
+ ]);
148
+ return;
149
+ }
150
+ case "danceC": {
151
+ const sp = { type: "spring", stiffness: 150, damping: 12, mass: 0.8 };
152
+ await Promise.all([
153
+ fx.root.start({ x: [0, 16, -16, 0], transition: { ...sp, duration: 1.2 } }),
154
+ fx.body.start({ rotate: [0, -6, 6, 0], transition: { ...sp, duration: 1.2 } }),
155
+ fx.head.start({ rotate: [0, 4, -4, 0], transition: { ...sp, duration: 1.2 } }),
156
+ ]);
157
+ return;
158
+ }
159
+ case "hideDown": {
160
+ await fx.root.start({ y: screenH, transition: { duration: d } });
161
+ return;
162
+ }
163
+ case "exitLeft": {
164
+ await fx.root.start({ x: -screenW, transition: { duration: d } });
165
+ return;
166
+ }
167
+ case "exitRight": {
168
+ await fx.root.start({ x: screenW, transition: { duration: d } });
169
+ return;
170
+ }
171
+ case "enterFromLeft": {
172
+ await fx.root.start({ x: -screenW, y: 0, transition: { duration: 0 } });
173
+ await fx.root.start({ x: 0, transition: { type: "spring", stiffness: 120, damping: 18, mass: 1 } });
174
+ return;
175
+ }
176
+ case "enterFromRight": {
177
+ await fx.root.start({ x: screenW, y: 0, transition: { duration: 0 } });
178
+ await fx.root.start({ x: 0, transition: { type: "spring", stiffness: 120, damping: 18, mass: 1 } });
179
+ return;
180
+ }
181
+ /* ----------- NOWE 10 ----------- */
182
+ case "waveHand": {
183
+ const sp = { type: "spring", stiffness: 200, damping: 10 };
184
+ await Promise.all([
185
+ fx.rightArm.start({ rotate: [-8, -50, -8, -50, -8], transition: { ...sp, duration: 1.4 } }),
186
+ fx.head.start({ rotate: [0, 3, -3, 0], transition: { ...sp, duration: 1.4 } }),
187
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
188
+ ]);
189
+ return;
190
+ }
191
+ case "facepalm": {
192
+ // prawa ręka do twarzy, lekki opad głowy
193
+ const sp = { type: "spring", stiffness: 120, damping: 16 };
194
+ await Promise.all([
195
+ fx.rightArm.start({ rotate: -110, transition: sp }),
196
+ fx.head.start({ y: 5, rotate: 10, transition: sp }),
197
+ fx.body.start({ rotate: 3, transition: sp }),
198
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
199
+ ]);
200
+ return;
201
+ }
202
+ case "shrug": {
203
+ const sp = { type: "spring", stiffness: 180, damping: 12 };
204
+ await Promise.all([
205
+ fx.leftArm.start({ rotate: [-5, -45, -5], transition: { ...sp, duration: d } }),
206
+ fx.rightArm.start({ rotate: [-8, -55, -8], transition: { ...sp, duration: d } }),
207
+ fx.head.start({ rotate: [0, -7, 0, 7, 0], transition: { ...sp, duration: d } }),
208
+ fx.root.start({ y: [0, -3, 0], transition: { ...sp, duration: d * 0.6 } }),
209
+ ]);
210
+ return;
211
+ }
212
+ case "nodYes": {
213
+ await fx.head.start({ rotate: [0, -10, 10, -7, 7, 0], transition: { type: "spring", stiffness: 200, damping: 14, duration: 1.0 } });
214
+ return;
215
+ }
216
+ case "shakeNo": {
217
+ await fx.head.start({ rotate: [0, 12, -12, 10, -10, 0], transition: { type: "spring", stiffness: 220, damping: 12, duration: 0.9 } });
218
+ return;
219
+ }
220
+ case "pointRight": {
221
+ const sp = { type: "spring", stiffness: 180, damping: 14 };
222
+ await Promise.all([
223
+ fx.rightArm.start({ rotate: -35, transition: sp }),
224
+ fx.body.start({ rotate: -5, transition: sp }),
225
+ fx.head.start({ rotate: -4, transition: sp }),
226
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
227
+ ]);
228
+ return;
229
+ }
230
+ case "leanBack": {
231
+ const sp = { type: "spring", stiffness: 140, damping: 16 };
232
+ await Promise.all([
233
+ fx.body.start({ rotate: -10, transition: sp }),
234
+ fx.head.start({ y: -3, rotate: -3, transition: sp }),
235
+ ]);
236
+ return;
237
+ }
238
+ case "jump": {
239
+ await fx.root.start({ y: [0, -30, 0], transition: { type: "spring", stiffness: 300, damping: 10 } });
240
+ return;
241
+ }
242
+ case "spin": {
243
+ await fx.root.start({ rotate: [0, 360], y: [0, -8, 0], transition: { duration: 0.8, ease: "easeInOut" } });
244
+ return;
245
+ }
246
+ case "celebrate": {
247
+ const spring = { type: "spring", stiffness: 220, damping: 12 };
248
+ await Promise.all([
249
+ fx.leftArm.start({ rotate: [-30, -60, -30], transition: { ...spring, duration: d } }),
250
+ fx.rightArm.start({ rotate: [-30, -70, -30], transition: { ...spring, duration: d } }),
251
+ fx.root.start({ y: [0, -20, 0, -14, 0], transition: { ...spring, duration: 1.2 } }),
252
+ fx.head.start({ y: [0, -4, 0], transition: { ...spring, duration: 0.6 } }),
253
+ fx.card.start({ opacity: 0, transition: { duration: 0.2 } }),
254
+ ]);
255
+ return;
256
+ }
257
+ }
258
+ }
259
+ /* -------------------- Choreo runner -------------------- */
260
+ async function runChoreo(fx, steps) {
261
+ for (const step of steps) {
262
+ await playPose(fx, step.pose, step.options);
263
+ if (step.holdMs && step.holdMs > 0) {
264
+ await new Promise((r) => setTimeout(r, step.holdMs));
265
+ }
266
+ }
267
+ }
268
+
269
+ exports.playPose = playPose;
270
+ exports.runChoreo = runChoreo;
271
+ exports.usePersonControls = usePersonControls;
272
+ //# sourceMappingURL=animationHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animationHelper.js","sources":["../../../src/animation/animationHelper.ts"],"sourcesContent":[null],"names":["useAnimationControls"],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ // components/animations/characterTypes.ts
4
+ // Konfiguracja elementów postaci + listy wariantów i domyślne kolory
5
+ const VARIANTS = {
6
+ // 14+ kształtów głowy
7
+ face: [
8
+ "round", "oval", "square", "heart", "diamond", "long", "chubby", "flatTop",
9
+ "egg", "triangle", "hex", "pear", "bean", "heroJaw"
10
+ ],
11
+ // 20+ fryzur
12
+ hair: [
13
+ "none", "short", "long", "curly", "wavy", "mohawk", "afro", "bunHigh", "bunLow", "bob",
14
+ "pixie", "sidePart", "undercut", "spiky", "braids", "dreadlocks", "ponytail", "twinTails", "mullet", "balding", "bangs"
15
+ ],
16
+ // 16+ oczu (z warstwami sclera/iris/pupil/highlight + powieki/rzęsy/brwi)
17
+ eyes: [
18
+ "classic", "big", "anime", "sleepy", "angry", "surprised", "winkLeft", "winkRight", "smile",
19
+ "oval", "upturned", "downturned", "lashes", "sparkle", "heart", "star", "sad", "focused"
20
+ ],
21
+ // 10+ nosów
22
+ nose: ["line", "triangle", "round", "button", "hook", "flat", "wide", "tiny", "pointy", "roman", "none"],
23
+ // 14+ ust
24
+ mouth: [
25
+ "smile", "frown", "open", "flat", "o", "grin", "teeth", "smirk", "wow", "tongue",
26
+ "laugh", "sad", "angry", "kiss", "grimace"
27
+ ],
28
+ // 16+ outfitów (shape+pattern – t-shirt, hoodie, marynarka, pasiaki, jersey, itd.)
29
+ outfit: [
30
+ "tee", "hoodie", "suit", "dress", "tank", "jacket", "blazer", "vest",
31
+ "sweatshirt", "kimono", "polo", "stripes", "checker", "jersey", "tux", "robe"
32
+ ],
33
+ // 18+ nakryć głowy
34
+ headwear: [
35
+ "none", "cap", "headphones", "hat", "crown", "beanie", "bandana", "visor", "bow", "tiara",
36
+ "fedora", "beret", "headband", "helmet", "headsetMic", "hood", "cowboy", "bunnyEars"
37
+ ],
38
+ // 20+ rekwizytów (w tym „scoreCard”)
39
+ prop: [
40
+ "none", "mic", "clipboard", "star", "flag", "phone", "glass", "trophy", "rose", "glowstick",
41
+ "megaphone", "tambourine", "lightstick", "scoreCard", "camera", "tablet", "remote", "foamFinger", "whistle", "drumstick"
42
+ ],
43
+ };
44
+ const DEFAULT_COLORS = {
45
+ skin: "var(--anim-skin, #FFD2B3)",
46
+ hair: "var(--anim-hair, #1F2937)",
47
+ shirt: "var(--anim-shirt, #3B82F6)",
48
+ stroke: "var(--anim-stroke, #111111)",
49
+ };
50
+ const DEFAULT_CHARACTER = {
51
+ name: "Juror",
52
+ size: 180,
53
+ face: { variant: "round", colors: [DEFAULT_COLORS.skin, "var(--anim-skin-2, #F9C7B0)", DEFAULT_COLORS.stroke] },
54
+ hair: { variant: "short", colors: [DEFAULT_COLORS.hair, "var(--anim-hair-2, #2C3A4A)"] },
55
+ eyes: { variant: "classic", colors: ["var(--white, #FFFFFF)", "var(--anim-eye-iris, #2563EB)", DEFAULT_COLORS.stroke, "var(--white, #FFFFFF)"] }, // sclera, iris, pupil, highlight
56
+ nose: { variant: "line", colors: [DEFAULT_COLORS.stroke] },
57
+ mouth: { variant: "smile", colors: ["var(--anim-lip, #E11D48)", "var(--anim-inner, #FEE2E2)", DEFAULT_COLORS.stroke] }, // lip, inner/teeth, outline
58
+ outfit: { variant: "tee", colors: [DEFAULT_COLORS.shirt, "var(--anim-outfit-2, #2563EB)", DEFAULT_COLORS.stroke] },
59
+ headwear: { variant: "none", colors: [DEFAULT_COLORS.stroke] },
60
+ prop: { variant: "mic", colors: [DEFAULT_COLORS.stroke, "var(--anim-prop-2, #666666)", "var(--anim-prop-3, #CCCCCC)"] },
61
+ };
62
+ /** Returns color from list; if missing – uses last or fallback */
63
+ function pick(colors, index, fallback) {
64
+ var _a, _b;
65
+ if (!colors || colors.length === 0)
66
+ return fallback !== null && fallback !== void 0 ? fallback : "var(--anim-default-black, #000000)";
67
+ const i = Math.min(colors.length - 1, Math.max(0, index));
68
+ return (_b = (_a = colors[i]) !== null && _a !== void 0 ? _a : fallback) !== null && _b !== void 0 ? _b : colors[0];
69
+ }
70
+
71
+ exports.DEFAULT_CHARACTER = DEFAULT_CHARACTER;
72
+ exports.DEFAULT_COLORS = DEFAULT_COLORS;
73
+ exports.VARIANTS = VARIANTS;
74
+ exports.pick = pick;
75
+ //# sourceMappingURL=characterTypes.js.map