@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.
- package/CHANGELOG.md +84 -0
- package/LICENSE +21 -0
- package/README.md +339 -0
- package/dist/cjs/animation/AnimatedPerson.js +153 -0
- package/dist/cjs/animation/AnimatedPerson.js.map +1 -0
- package/dist/cjs/animation/AnimationEditor.js +106 -0
- package/dist/cjs/animation/AnimationEditor.js.map +1 -0
- package/dist/cjs/animation/Audience.js +59 -0
- package/dist/cjs/animation/Audience.js.map +1 -0
- package/dist/cjs/animation/BodyRenderer.js +33 -0
- package/dist/cjs/animation/BodyRenderer.js.map +1 -0
- package/dist/cjs/animation/animationHelper.js +272 -0
- package/dist/cjs/animation/animationHelper.js.map +1 -0
- package/dist/cjs/animation/characterTypes.js +75 -0
- package/dist/cjs/animation/characterTypes.js.map +1 -0
- package/dist/cjs/animation/choreoDSL.js +190 -0
- package/dist/cjs/animation/choreoDSL.js.map +1 -0
- package/dist/cjs/animation/choreography.js +41 -0
- package/dist/cjs/animation/choreography.js.map +1 -0
- package/dist/cjs/animation/karaokeIntegration.js +98 -0
- package/dist/cjs/animation/karaokeIntegration.js.map +1 -0
- package/dist/cjs/animation/lottieExport.js +128 -0
- package/dist/cjs/animation/lottieExport.js.map +1 -0
- package/dist/cjs/animation/motionPath.js +196 -0
- package/dist/cjs/animation/motionPath.js.map +1 -0
- package/dist/cjs/animation/physics.js +201 -0
- package/dist/cjs/animation/physics.js.map +1 -0
- package/dist/cjs/animation/rig/RigPlayer.js +63 -0
- package/dist/cjs/animation/rig/RigPlayer.js.map +1 -0
- package/dist/cjs/animation/rig/RiggedBody.js +30 -0
- package/dist/cjs/animation/rig/RiggedBody.js.map +1 -0
- package/dist/cjs/animation/rig/choreoRigBridge.js +63 -0
- package/dist/cjs/animation/rig/choreoRigBridge.js.map +1 -0
- package/dist/cjs/animation/rig/ik.js +22 -0
- package/dist/cjs/animation/rig/ik.js.map +1 -0
- package/dist/cjs/animation/rig/poseOps.js +49 -0
- package/dist/cjs/animation/rig/poseOps.js.map +1 -0
- package/dist/cjs/animation/rig/presets.js +60 -0
- package/dist/cjs/animation/rig/presets.js.map +1 -0
- package/dist/cjs/animation/rig/rigMath.js +41 -0
- package/dist/cjs/animation/rig/rigMath.js.map +1 -0
- package/dist/cjs/animation/rig/rigTypes.js +44 -0
- package/dist/cjs/animation/rig/rigTypes.js.map +1 -0
- package/dist/cjs/animation/shapes/arms.js +15 -0
- package/dist/cjs/animation/shapes/arms.js.map +1 -0
- package/dist/cjs/animation/shapes/eyes.js +52 -0
- package/dist/cjs/animation/shapes/eyes.js.map +1 -0
- package/dist/cjs/animation/shapes/hair.js +55 -0
- package/dist/cjs/animation/shapes/hair.js.map +1 -0
- package/dist/cjs/animation/shapes/heads.js +62 -0
- package/dist/cjs/animation/shapes/heads.js.map +1 -0
- package/dist/cjs/animation/shapes/headwear.js +44 -0
- package/dist/cjs/animation/shapes/headwear.js.map +1 -0
- package/dist/cjs/animation/shapes/legs.js +15 -0
- package/dist/cjs/animation/shapes/legs.js.map +1 -0
- package/dist/cjs/animation/shapes/mouths.js +53 -0
- package/dist/cjs/animation/shapes/mouths.js.map +1 -0
- package/dist/cjs/animation/shapes/noses.js +31 -0
- package/dist/cjs/animation/shapes/noses.js.map +1 -0
- package/dist/cjs/animation/shapes/outfits.js +43 -0
- package/dist/cjs/animation/shapes/outfits.js.map +1 -0
- package/dist/cjs/animation/shapes/torsos.js +13 -0
- package/dist/cjs/animation/shapes/torsos.js.map +1 -0
- package/dist/cjs/animation/spineExport.js +132 -0
- package/dist/cjs/animation/spineExport.js.map +1 -0
- package/dist/cjs/core/LocalUI.js +54 -0
- package/dist/cjs/core/LocalUI.js.map +1 -0
- package/dist/cjs/core/collaboration.js +259 -0
- package/dist/cjs/core/collaboration.js.map +1 -0
- package/dist/cjs/core/colorBlindness.js +97 -0
- package/dist/cjs/core/colorBlindness.js.map +1 -0
- package/dist/cjs/core/dragDrop.js +168 -0
- package/dist/cjs/core/dragDrop.js.map +1 -0
- package/dist/cjs/core/fixes.js +185 -0
- package/dist/cjs/core/fixes.js.map +1 -0
- package/dist/cjs/core/gridGuides.js +245 -0
- package/dist/cjs/core/gridGuides.js.map +1 -0
- package/dist/cjs/core/historyVisual.js +124 -0
- package/dist/cjs/core/historyVisual.js.map +1 -0
- package/dist/cjs/core/i18n.js +16 -0
- package/dist/cjs/core/i18n.js.map +1 -0
- package/dist/cjs/core/integrations.js +261 -0
- package/dist/cjs/core/integrations.js.map +1 -0
- package/dist/cjs/core/minimap.js +142 -0
- package/dist/cjs/core/minimap.js.map +1 -0
- package/dist/cjs/core/plugins.js +129 -0
- package/dist/cjs/core/plugins.js.map +1 -0
- package/dist/cjs/core/rtl.js +102 -0
- package/dist/cjs/core/rtl.js.map +1 -0
- package/dist/cjs/core/shortcuts.js +205 -0
- package/dist/cjs/core/shortcuts.js.map +1 -0
- package/dist/cjs/core/theme.js +171 -0
- package/dist/cjs/core/theme.js.map +1 -0
- package/dist/cjs/font/NiceFontEditor.js +193 -0
- package/dist/cjs/font/NiceFontEditor.js.map +1 -0
- package/dist/cjs/game/GameAsset2dEditor.js +371 -0
- package/dist/cjs/game/GameAsset2dEditor.js.map +1 -0
- package/dist/cjs/game/GameAsset2dEditor.module.css.js +6 -0
- package/dist/cjs/game/GameAsset2dEditor.module.css.js.map +1 -0
- package/dist/cjs/game/gameAssetTypes.js +20 -0
- package/dist/cjs/game/gameAssetTypes.js.map +1 -0
- package/dist/cjs/game/gameAssetUtils.js +475 -0
- package/dist/cjs/game/gameAssetUtils.js.map +1 -0
- package/dist/cjs/game/useGameAssetEditor.js +761 -0
- package/dist/cjs/game/useGameAssetEditor.js.map +1 -0
- package/dist/cjs/icon/NiceIconEditor.js +249 -0
- package/dist/cjs/icon/NiceIconEditor.js.map +1 -0
- package/dist/cjs/index.js +264 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/nice2dev-ui/dist/index.js +32070 -0
- package/dist/cjs/nice2dev-ui/dist/index.js.map +1 -0
- package/dist/cjs/nice2dev-ui-graphics.css +1 -0
- package/dist/cjs/photo/FilterThumb.js +29 -0
- package/dist/cjs/photo/FilterThumb.js.map +1 -0
- package/dist/cjs/photo/PhotoEditor.js +20 -0
- package/dist/cjs/photo/PhotoEditor.js.map +1 -0
- package/dist/cjs/photo/PhotoEditor.module.css.js +6 -0
- package/dist/cjs/photo/PhotoEditor.module.css.js.map +1 -0
- package/dist/cjs/photo/PhotoEditorCanvas.js +59 -0
- package/dist/cjs/photo/PhotoEditorCanvas.js.map +1 -0
- package/dist/cjs/photo/PhotoEditorLeftPanel.js +174 -0
- package/dist/cjs/photo/PhotoEditorLeftPanel.js.map +1 -0
- package/dist/cjs/photo/PhotoEditorToolbar.js +15 -0
- package/dist/cjs/photo/PhotoEditorToolbar.js.map +1 -0
- package/dist/cjs/photo/photoEditorActions.js +80 -0
- package/dist/cjs/photo/photoEditorActions.js.map +1 -0
- package/dist/cjs/photo/photoEditorTypes.js +40 -0
- package/dist/cjs/photo/photoEditorTypes.js.map +1 -0
- package/dist/cjs/photo/photoFilters.js +880 -0
- package/dist/cjs/photo/photoFilters.js.map +1 -0
- package/dist/cjs/photo/photoOverlays.js +651 -0
- package/dist/cjs/photo/photoOverlays.js.map +1 -0
- package/dist/cjs/photo/photoSelection.js +547 -0
- package/dist/cjs/photo/photoSelection.js.map +1 -0
- package/dist/cjs/photo/usePhotoEditor.js +640 -0
- package/dist/cjs/photo/usePhotoEditor.js.map +1 -0
- package/dist/cjs/pixel/HSVPicker.js +173 -0
- package/dist/cjs/pixel/HSVPicker.js.map +1 -0
- package/dist/cjs/pixel/PixelEditor.js +28 -0
- package/dist/cjs/pixel/PixelEditor.js.map +1 -0
- package/dist/cjs/pixel/PixelEditor.module.css.js +6 -0
- package/dist/cjs/pixel/PixelEditor.module.css.js.map +1 -0
- package/dist/cjs/pixel/PixelEditorCanvas.js +15 -0
- package/dist/cjs/pixel/PixelEditorCanvas.js.map +1 -0
- package/dist/cjs/pixel/PixelEditorMenuBar.js +11 -0
- package/dist/cjs/pixel/PixelEditorMenuBar.js.map +1 -0
- package/dist/cjs/pixel/PixelEditorRightPanel.js +15 -0
- package/dist/cjs/pixel/PixelEditorRightPanel.js.map +1 -0
- package/dist/cjs/pixel/PixelEditorStatusBar.js +15 -0
- package/dist/cjs/pixel/PixelEditorStatusBar.js.map +1 -0
- package/dist/cjs/pixel/PixelEditorTimeline.js +11 -0
- package/dist/cjs/pixel/PixelEditorTimeline.js.map +1 -0
- package/dist/cjs/pixel/PixelEditorToolbar.js +16 -0
- package/dist/cjs/pixel/PixelEditorToolbar.js.map +1 -0
- package/dist/cjs/pixel/asepriteFormat.js +512 -0
- package/dist/cjs/pixel/asepriteFormat.js.map +1 -0
- package/dist/cjs/pixel/pixelEditorExports.js +471 -0
- package/dist/cjs/pixel/pixelEditorExports.js.map +1 -0
- package/dist/cjs/pixel/pixelEditorTypes.js +102 -0
- package/dist/cjs/pixel/pixelEditorTypes.js.map +1 -0
- package/dist/cjs/pixel/pixelEditorUtils.js +664 -0
- package/dist/cjs/pixel/pixelEditorUtils.js.map +1 -0
- package/dist/cjs/pixel/usePixelEditor.js +1112 -0
- package/dist/cjs/pixel/usePixelEditor.js.map +1 -0
- package/dist/cjs/texture/Nice3DTexturePainter.js +236 -0
- package/dist/cjs/texture/Nice3DTexturePainter.js.map +1 -0
- package/dist/cjs/ui/NiceUIDesigner.js +191 -0
- package/dist/cjs/ui/NiceUIDesigner.js.map +1 -0
- package/dist/cjs/vector/VectorEditor.js +31 -0
- package/dist/cjs/vector/VectorEditor.js.map +1 -0
- package/dist/cjs/vector/VectorEditor.module.css.js +6 -0
- package/dist/cjs/vector/VectorEditor.module.css.js.map +1 -0
- package/dist/cjs/vector/VectorEditorMenuBar.js +16 -0
- package/dist/cjs/vector/VectorEditorMenuBar.js.map +1 -0
- package/dist/cjs/vector/VectorEditorRightPanel.js +126 -0
- package/dist/cjs/vector/VectorEditorRightPanel.js.map +1 -0
- package/dist/cjs/vector/VectorEditorShapeRenderer.js +55 -0
- package/dist/cjs/vector/VectorEditorShapeRenderer.js.map +1 -0
- package/dist/cjs/vector/VectorEditorStatusBar.js +14 -0
- package/dist/cjs/vector/VectorEditorStatusBar.js.map +1 -0
- package/dist/cjs/vector/useVectorEditor.js +613 -0
- package/dist/cjs/vector/useVectorEditor.js.map +1 -0
- package/dist/cjs/vector/vectorBooleanOps.js +511 -0
- package/dist/cjs/vector/vectorBooleanOps.js.map +1 -0
- package/dist/cjs/vector/vectorEditorExport.js +159 -0
- package/dist/cjs/vector/vectorEditorExport.js.map +1 -0
- package/dist/cjs/vector/vectorEditorImport.js +150 -0
- package/dist/cjs/vector/vectorEditorImport.js.map +1 -0
- package/dist/cjs/vector/vectorEditorTypes.js +72 -0
- package/dist/cjs/vector/vectorEditorTypes.js.map +1 -0
- package/dist/cjs/vector/vectorGradients.js +201 -0
- package/dist/cjs/vector/vectorGradients.js.map +1 -0
- package/dist/esm/animation/AnimatedPerson.js +151 -0
- package/dist/esm/animation/AnimatedPerson.js.map +1 -0
- package/dist/esm/animation/AnimationEditor.js +104 -0
- package/dist/esm/animation/AnimationEditor.js.map +1 -0
- package/dist/esm/animation/Audience.js +57 -0
- package/dist/esm/animation/Audience.js.map +1 -0
- package/dist/esm/animation/BodyRenderer.js +28 -0
- package/dist/esm/animation/BodyRenderer.js.map +1 -0
- package/dist/esm/animation/animationHelper.js +268 -0
- package/dist/esm/animation/animationHelper.js.map +1 -0
- package/dist/esm/animation/characterTypes.js +70 -0
- package/dist/esm/animation/characterTypes.js.map +1 -0
- package/dist/esm/animation/choreoDSL.js +182 -0
- package/dist/esm/animation/choreoDSL.js.map +1 -0
- package/dist/esm/animation/choreography.js +36 -0
- package/dist/esm/animation/choreography.js.map +1 -0
- package/dist/esm/animation/karaokeIntegration.js +91 -0
- package/dist/esm/animation/karaokeIntegration.js.map +1 -0
- package/dist/esm/animation/lottieExport.js +123 -0
- package/dist/esm/animation/lottieExport.js.map +1 -0
- package/dist/esm/animation/motionPath.js +185 -0
- package/dist/esm/animation/motionPath.js.map +1 -0
- package/dist/esm/animation/physics.js +192 -0
- package/dist/esm/animation/physics.js.map +1 -0
- package/dist/esm/animation/rig/RigPlayer.js +61 -0
- package/dist/esm/animation/rig/RigPlayer.js.map +1 -0
- package/dist/esm/animation/rig/RiggedBody.js +28 -0
- package/dist/esm/animation/rig/RiggedBody.js.map +1 -0
- package/dist/esm/animation/rig/choreoRigBridge.js +60 -0
- package/dist/esm/animation/rig/choreoRigBridge.js.map +1 -0
- package/dist/esm/animation/rig/ik.js +20 -0
- package/dist/esm/animation/rig/ik.js.map +1 -0
- package/dist/esm/animation/rig/poseOps.js +45 -0
- package/dist/esm/animation/rig/poseOps.js.map +1 -0
- package/dist/esm/animation/rig/presets.js +53 -0
- package/dist/esm/animation/rig/presets.js.map +1 -0
- package/dist/esm/animation/rig/rigMath.js +37 -0
- package/dist/esm/animation/rig/rigMath.js.map +1 -0
- package/dist/esm/animation/rig/rigTypes.js +40 -0
- package/dist/esm/animation/rig/rigTypes.js.map +1 -0
- package/dist/esm/animation/shapes/arms.js +13 -0
- package/dist/esm/animation/shapes/arms.js.map +1 -0
- package/dist/esm/animation/shapes/eyes.js +45 -0
- package/dist/esm/animation/shapes/eyes.js.map +1 -0
- package/dist/esm/animation/shapes/hair.js +46 -0
- package/dist/esm/animation/shapes/hair.js.map +1 -0
- package/dist/esm/animation/shapes/heads.js +52 -0
- package/dist/esm/animation/shapes/heads.js.map +1 -0
- package/dist/esm/animation/shapes/headwear.js +36 -0
- package/dist/esm/animation/shapes/headwear.js.map +1 -0
- package/dist/esm/animation/shapes/legs.js +13 -0
- package/dist/esm/animation/shapes/legs.js.map +1 -0
- package/dist/esm/animation/shapes/mouths.js +45 -0
- package/dist/esm/animation/shapes/mouths.js.map +1 -0
- package/dist/esm/animation/shapes/noses.js +23 -0
- package/dist/esm/animation/shapes/noses.js.map +1 -0
- package/dist/esm/animation/shapes/outfits.js +37 -0
- package/dist/esm/animation/shapes/outfits.js.map +1 -0
- package/dist/esm/animation/shapes/torsos.js +11 -0
- package/dist/esm/animation/shapes/torsos.js.map +1 -0
- package/dist/esm/animation/spineExport.js +128 -0
- package/dist/esm/animation/spineExport.js.map +1 -0
- package/dist/esm/core/LocalUI.js +50 -0
- package/dist/esm/core/LocalUI.js.map +1 -0
- package/dist/esm/core/collaboration.js +252 -0
- package/dist/esm/core/collaboration.js.map +1 -0
- package/dist/esm/core/colorBlindness.js +90 -0
- package/dist/esm/core/colorBlindness.js.map +1 -0
- package/dist/esm/core/dragDrop.js +165 -0
- package/dist/esm/core/dragDrop.js.map +1 -0
- package/dist/esm/core/fixes.js +179 -0
- package/dist/esm/core/fixes.js.map +1 -0
- package/dist/esm/core/gridGuides.js +232 -0
- package/dist/esm/core/gridGuides.js.map +1 -0
- package/dist/esm/core/historyVisual.js +121 -0
- package/dist/esm/core/historyVisual.js.map +1 -0
- package/dist/esm/core/i18n.js +13 -0
- package/dist/esm/core/i18n.js.map +1 -0
- package/dist/esm/core/integrations.js +254 -0
- package/dist/esm/core/integrations.js.map +1 -0
- package/dist/esm/core/minimap.js +139 -0
- package/dist/esm/core/minimap.js.map +1 -0
- package/dist/esm/core/plugins.js +124 -0
- package/dist/esm/core/plugins.js.map +1 -0
- package/dist/esm/core/rtl.js +95 -0
- package/dist/esm/core/rtl.js.map +1 -0
- package/dist/esm/core/shortcuts.js +200 -0
- package/dist/esm/core/shortcuts.js.map +1 -0
- package/dist/esm/core/theme.js +162 -0
- package/dist/esm/core/theme.js.map +1 -0
- package/dist/esm/font/NiceFontEditor.js +189 -0
- package/dist/esm/font/NiceFontEditor.js.map +1 -0
- package/dist/esm/game/GameAsset2dEditor.js +369 -0
- package/dist/esm/game/GameAsset2dEditor.js.map +1 -0
- package/dist/esm/game/GameAsset2dEditor.module.css.js +4 -0
- package/dist/esm/game/GameAsset2dEditor.module.css.js.map +1 -0
- package/dist/esm/game/gameAssetTypes.js +18 -0
- package/dist/esm/game/gameAssetTypes.js.map +1 -0
- package/dist/esm/game/gameAssetUtils.js +456 -0
- package/dist/esm/game/gameAssetUtils.js.map +1 -0
- package/dist/esm/game/useGameAssetEditor.js +759 -0
- package/dist/esm/game/useGameAssetEditor.js.map +1 -0
- package/dist/esm/icon/NiceIconEditor.js +246 -0
- package/dist/esm/icon/NiceIconEditor.js.map +1 -0
- package/dist/esm/index.js +59 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/nice2dev-ui/dist/index.js +31720 -0
- package/dist/esm/nice2dev-ui/dist/index.js.map +1 -0
- package/dist/esm/nice2dev-ui-graphics.css +1 -0
- package/dist/esm/photo/FilterThumb.js +27 -0
- package/dist/esm/photo/FilterThumb.js.map +1 -0
- package/dist/esm/photo/PhotoEditor.js +18 -0
- package/dist/esm/photo/PhotoEditor.js.map +1 -0
- package/dist/esm/photo/PhotoEditor.module.css.js +4 -0
- package/dist/esm/photo/PhotoEditor.module.css.js.map +1 -0
- package/dist/esm/photo/PhotoEditorCanvas.js +57 -0
- package/dist/esm/photo/PhotoEditorCanvas.js.map +1 -0
- package/dist/esm/photo/PhotoEditorLeftPanel.js +172 -0
- package/dist/esm/photo/PhotoEditorLeftPanel.js.map +1 -0
- package/dist/esm/photo/PhotoEditorToolbar.js +13 -0
- package/dist/esm/photo/PhotoEditorToolbar.js.map +1 -0
- package/dist/esm/photo/photoEditorActions.js +75 -0
- package/dist/esm/photo/photoEditorActions.js.map +1 -0
- package/dist/esm/photo/photoEditorTypes.js +36 -0
- package/dist/esm/photo/photoEditorTypes.js.map +1 -0
- package/dist/esm/photo/photoFilters.js +871 -0
- package/dist/esm/photo/photoFilters.js.map +1 -0
- package/dist/esm/photo/photoOverlays.js +636 -0
- package/dist/esm/photo/photoOverlays.js.map +1 -0
- package/dist/esm/photo/photoSelection.js +535 -0
- package/dist/esm/photo/photoSelection.js.map +1 -0
- package/dist/esm/photo/usePhotoEditor.js +638 -0
- package/dist/esm/photo/usePhotoEditor.js.map +1 -0
- package/dist/esm/pixel/HSVPicker.js +171 -0
- package/dist/esm/pixel/HSVPicker.js.map +1 -0
- package/dist/esm/pixel/PixelEditor.js +26 -0
- package/dist/esm/pixel/PixelEditor.js.map +1 -0
- package/dist/esm/pixel/PixelEditor.module.css.js +4 -0
- package/dist/esm/pixel/PixelEditor.module.css.js.map +1 -0
- package/dist/esm/pixel/PixelEditorCanvas.js +13 -0
- package/dist/esm/pixel/PixelEditorCanvas.js.map +1 -0
- package/dist/esm/pixel/PixelEditorMenuBar.js +9 -0
- package/dist/esm/pixel/PixelEditorMenuBar.js.map +1 -0
- package/dist/esm/pixel/PixelEditorRightPanel.js +13 -0
- package/dist/esm/pixel/PixelEditorRightPanel.js.map +1 -0
- package/dist/esm/pixel/PixelEditorStatusBar.js +13 -0
- package/dist/esm/pixel/PixelEditorStatusBar.js.map +1 -0
- package/dist/esm/pixel/PixelEditorTimeline.js +9 -0
- package/dist/esm/pixel/PixelEditorTimeline.js.map +1 -0
- package/dist/esm/pixel/PixelEditorToolbar.js +14 -0
- package/dist/esm/pixel/PixelEditorToolbar.js.map +1 -0
- package/dist/esm/pixel/asepriteFormat.js +505 -0
- package/dist/esm/pixel/asepriteFormat.js.map +1 -0
- package/dist/esm/pixel/pixelEditorExports.js +461 -0
- package/dist/esm/pixel/pixelEditorExports.js.map +1 -0
- package/dist/esm/pixel/pixelEditorTypes.js +90 -0
- package/dist/esm/pixel/pixelEditorTypes.js.map +1 -0
- package/dist/esm/pixel/pixelEditorUtils.js +631 -0
- package/dist/esm/pixel/pixelEditorUtils.js.map +1 -0
- package/dist/esm/pixel/usePixelEditor.js +1110 -0
- package/dist/esm/pixel/usePixelEditor.js.map +1 -0
- package/dist/esm/texture/Nice3DTexturePainter.js +233 -0
- package/dist/esm/texture/Nice3DTexturePainter.js.map +1 -0
- package/dist/esm/ui/NiceUIDesigner.js +187 -0
- package/dist/esm/ui/NiceUIDesigner.js.map +1 -0
- package/dist/esm/vector/VectorEditor.js +29 -0
- package/dist/esm/vector/VectorEditor.js.map +1 -0
- package/dist/esm/vector/VectorEditor.module.css.js +4 -0
- package/dist/esm/vector/VectorEditor.module.css.js.map +1 -0
- package/dist/esm/vector/VectorEditorMenuBar.js +14 -0
- package/dist/esm/vector/VectorEditorMenuBar.js.map +1 -0
- package/dist/esm/vector/VectorEditorRightPanel.js +124 -0
- package/dist/esm/vector/VectorEditorRightPanel.js.map +1 -0
- package/dist/esm/vector/VectorEditorShapeRenderer.js +53 -0
- package/dist/esm/vector/VectorEditorShapeRenderer.js.map +1 -0
- package/dist/esm/vector/VectorEditorStatusBar.js +12 -0
- package/dist/esm/vector/VectorEditorStatusBar.js.map +1 -0
- package/dist/esm/vector/useVectorEditor.js +611 -0
- package/dist/esm/vector/useVectorEditor.js.map +1 -0
- package/dist/esm/vector/vectorBooleanOps.js +507 -0
- package/dist/esm/vector/vectorBooleanOps.js.map +1 -0
- package/dist/esm/vector/vectorEditorExport.js +152 -0
- package/dist/esm/vector/vectorEditorExport.js.map +1 -0
- package/dist/esm/vector/vectorEditorImport.js +148 -0
- package/dist/esm/vector/vectorEditorImport.js.map +1 -0
- package/dist/esm/vector/vectorEditorTypes.js +63 -0
- package/dist/esm/vector/vectorEditorTypes.js.map +1 -0
- package/dist/esm/vector/vectorGradients.js +193 -0
- package/dist/esm/vector/vectorGradients.js.map +1 -0
- package/dist/types/__benchmarks__/bench.d.ts +13 -0
- package/dist/types/__tests__/setup.d.ts +4 -0
- package/dist/types/animation/AnimatedPerson.d.ts +14 -0
- package/dist/types/animation/AnimationEditor.d.ts +20 -0
- package/dist/types/animation/Audience.d.ts +11 -0
- package/dist/types/animation/BodyRenderer.d.ts +12 -0
- package/dist/types/animation/animationHelper.d.ts +28 -0
- package/dist/types/animation/characterTypes.d.ts +37 -0
- package/dist/types/animation/choreoDSL.d.ts +88 -0
- package/dist/types/animation/choreography.d.ts +8 -0
- package/dist/types/animation/karaokeIntegration.d.ts +31 -0
- package/dist/types/animation/lottieExport.d.ts +77 -0
- package/dist/types/animation/motionPath.d.ts +60 -0
- package/dist/types/animation/physics.d.ts +73 -0
- package/dist/types/animation/rig/RigPlayer.d.ts +32 -0
- package/dist/types/animation/rig/RiggedBody.d.ts +19 -0
- package/dist/types/animation/rig/choreoRigBridge.d.ts +9 -0
- package/dist/types/animation/rig/ik.d.ts +8 -0
- package/dist/types/animation/rig/poseOps.d.ts +14 -0
- package/dist/types/animation/rig/presets.d.ts +13 -0
- package/dist/types/animation/rig/rigMath.d.ts +7 -0
- package/dist/types/animation/rig/rigTypes.d.ts +38 -0
- package/dist/types/animation/shapes/arms.d.ts +10 -0
- package/dist/types/animation/shapes/eyes.d.ts +17 -0
- package/dist/types/animation/shapes/hair.d.ts +17 -0
- package/dist/types/animation/shapes/heads.d.ts +18 -0
- package/dist/types/animation/shapes/headwear.d.ts +16 -0
- package/dist/types/animation/shapes/legs.d.ts +10 -0
- package/dist/types/animation/shapes/mouths.d.ts +17 -0
- package/dist/types/animation/shapes/noses.d.ts +17 -0
- package/dist/types/animation/shapes/outfits.d.ts +14 -0
- package/dist/types/animation/shapes/torsos.d.ts +9 -0
- package/dist/types/animation/spineExport.d.ts +66 -0
- package/dist/types/core/LocalUI.d.ts +21 -0
- package/dist/types/core/collaboration.d.ts +164 -0
- package/dist/types/core/colorBlindness.d.ts +24 -0
- package/dist/types/core/dragDrop.d.ts +46 -0
- package/dist/types/core/fixes.d.ts +80 -0
- package/dist/types/core/gridGuides.d.ts +70 -0
- package/dist/types/core/historyVisual.d.ts +915 -0
- package/dist/types/core/i18n.d.ts +27 -0
- package/dist/types/core/integrations.d.ts +103 -0
- package/dist/types/core/minimap.d.ts +49 -0
- package/dist/types/core/plugins.d.ts +111 -0
- package/dist/types/core/rtl.d.ts +32 -0
- package/dist/types/core/shortcuts.d.ts +150 -0
- package/dist/types/core/theme.d.ts +78 -0
- package/dist/types/core/useGamepad.d.ts +64 -0
- package/dist/types/core/usePointerPressure.d.ts +88 -0
- package/dist/types/font/NiceFontEditor.d.ts +62 -0
- package/dist/types/game/AnimationPreviewPlayer.d.ts +29 -0
- package/dist/types/game/CollisionEditor.d.ts +101 -0
- package/dist/types/game/GameAsset2dEditor.d.ts +17 -0
- package/dist/types/game/GameAssetExportPanel.d.ts +20 -0
- package/dist/types/game/IsometricEditor.d.ts +22 -0
- package/dist/types/game/IsometricTilePanel.d.ts +18 -0
- package/dist/types/game/gameAssetExport.d.ts +160 -0
- package/dist/types/game/gameAssetTypes.d.ts +238 -0
- package/dist/types/game/gameAssetUtils.d.ts +23 -0
- package/dist/types/game/index.d.ts +8 -0
- package/dist/types/game/isometricTiles.d.ts +250 -0
- package/dist/types/game/useAnimationPreview.d.ts +63 -0
- package/dist/types/game/useCollisionEditor.d.ts +96 -0
- package/dist/types/game/useGameAssetEditor.d.ts +79 -0
- package/dist/types/game/useGameAssetExport.d.ts +82 -0
- package/dist/types/icon/NiceIconEditor.d.ts +79 -0
- package/dist/types/index.d.ts +85 -0
- package/dist/types/photo/BatchProcessingPanel.d.ts +13 -0
- package/dist/types/photo/FaceDetectionPanel.d.ts +18 -0
- package/dist/types/photo/FilterThumb.d.ts +14 -0
- package/dist/types/photo/PerspectiveCorrectionPanel.d.ts +17 -0
- package/dist/types/photo/PhotoEditor.d.ts +2 -0
- package/dist/types/photo/PhotoEditorCanvas.d.ts +14 -0
- package/dist/types/photo/PhotoEditorLeftPanel.d.ts +13 -0
- package/dist/types/photo/PhotoEditorToolbar.d.ts +13 -0
- package/dist/types/photo/RawFilePanel.d.ts +14 -0
- package/dist/types/photo/StyleTransferPanel.d.ts +15 -0
- package/dist/types/photo/aiStyleTransfer.d.ts +58 -0
- package/dist/types/photo/batchProcessing.d.ts +95 -0
- package/dist/types/photo/faceDetection.d.ts +103 -0
- package/dist/types/photo/index.d.ts +17 -0
- package/dist/types/photo/perspectiveCorrection.d.ts +134 -0
- package/dist/types/photo/photoEditorActions.d.ts +40 -0
- package/dist/types/photo/photoEditorTypes.d.ts +34 -0
- package/dist/types/photo/photoFilters.d.ts +55 -0
- package/dist/types/photo/photoOverlays.d.ts +126 -0
- package/dist/types/photo/photoSelection.d.ts +56 -0
- package/dist/types/photo/rawFileSupport.d.ts +124 -0
- package/dist/types/photo/usePhotoEditor.d.ts +123 -0
- package/dist/types/pixel/HSVPicker.d.ts +11 -0
- package/dist/types/pixel/PaletteExtractorPanel.d.ts +16 -0
- package/dist/types/pixel/PixelEditor.d.ts +17 -0
- package/dist/types/pixel/PixelEditorCanvas.d.ts +10 -0
- package/dist/types/pixel/PixelEditorMenuBar.d.ts +11 -0
- package/dist/types/pixel/PixelEditorRightPanel.d.ts +11 -0
- package/dist/types/pixel/PixelEditorStatusBar.d.ts +11 -0
- package/dist/types/pixel/PixelEditorTimeline.d.ts +11 -0
- package/dist/types/pixel/PixelEditorToolbar.d.ts +11 -0
- package/dist/types/pixel/TileMapPanel.d.ts +14 -0
- package/dist/types/pixel/asepriteFormat.d.ts +62 -0
- package/dist/types/pixel/paletteExtractor.d.ts +73 -0
- package/dist/types/pixel/pixelEditorExports.d.ts +31 -0
- package/dist/types/pixel/pixelEditorTypes.d.ts +51 -0
- package/dist/types/pixel/pixelEditorUtils.d.ts +136 -0
- package/dist/types/pixel/tileMapMode.d.ts +122 -0
- package/dist/types/pixel/usePixelEditor.d.ts +114 -0
- package/dist/types/texture/Nice3DTexturePainter.d.ts +55 -0
- package/dist/types/ui/NiceUIDesigner.d.ts +43 -0
- package/dist/types/vector/PathSimplificationPanel.d.ts +15 -0
- package/dist/types/vector/PdfExportPanel.d.ts +20 -0
- package/dist/types/vector/TextOnPathPanel.d.ts +26 -0
- package/dist/types/vector/VectorEditor.d.ts +32 -0
- package/dist/types/vector/VectorEditorMenuBar.d.ts +8 -0
- package/dist/types/vector/VectorEditorRightPanel.d.ts +7 -0
- package/dist/types/vector/VectorEditorShapeRenderer.d.ts +9 -0
- package/dist/types/vector/VectorEditorStatusBar.d.ts +9 -0
- package/dist/types/vector/VectorFilterPanel.d.ts +19 -0
- package/dist/types/vector/VectorPatternPanel.d.ts +21 -0
- package/dist/types/vector/pathSimplification.d.ts +135 -0
- package/dist/types/vector/pdfExport.d.ts +65 -0
- package/dist/types/vector/textOnPath.d.ts +145 -0
- package/dist/types/vector/useVectorEditor.d.ts +90 -0
- package/dist/types/vector/vectorBooleanOps.d.ts +22 -0
- package/dist/types/vector/vectorEditorExport.d.ts +8 -0
- package/dist/types/vector/vectorEditorImport.d.ts +7 -0
- package/dist/types/vector/vectorEditorTypes.d.ts +47 -0
- package/dist/types/vector/vectorGradients.d.ts +64 -0
- package/dist/types/vector/vectorPatternFills.d.ts +101 -0
- package/dist/types/vector/vectorSvgFilters.d.ts +134 -0
- 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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"}
|