@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,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type HeadProps = {
|
|
3
|
+
colors: string[];
|
|
4
|
+
scale?: number;
|
|
5
|
+
transform?: string;
|
|
6
|
+
strokeWidth?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const HeadRound: React.FC<HeadProps>;
|
|
9
|
+
export declare const HeadOval: React.FC<HeadProps>;
|
|
10
|
+
export declare const HeadSquare: React.FC<HeadProps>;
|
|
11
|
+
export declare const HeadHeart: React.FC<HeadProps>;
|
|
12
|
+
export declare const HeadDiamond: React.FC<HeadProps>;
|
|
13
|
+
export declare const HeadLong: React.FC<HeadProps>;
|
|
14
|
+
export declare const HeadChubby: React.FC<HeadProps>;
|
|
15
|
+
export declare const HEAD_RENDERERS: Record<string, React.FC<HeadProps>>;
|
|
16
|
+
export declare const Head: React.FC<HeadProps & {
|
|
17
|
+
variant: string;
|
|
18
|
+
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type HeadwearProps = {
|
|
3
|
+
colors: string[];
|
|
4
|
+
scale?: number;
|
|
5
|
+
transform?: string;
|
|
6
|
+
strokeWidth?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const HeadwearNone: React.FC<HeadwearProps>;
|
|
9
|
+
export declare const HeadwearCap: React.FC<HeadwearProps>;
|
|
10
|
+
export declare const HeadwearCrown: React.FC<HeadwearProps>;
|
|
11
|
+
export declare const HeadwearHeadphones: React.FC<HeadwearProps>;
|
|
12
|
+
export declare const HeadwearBeanie: React.FC<HeadwearProps>;
|
|
13
|
+
export declare const HEADWEAR_RENDERERS: Record<string, React.FC<HeadwearProps>>;
|
|
14
|
+
export declare const Headwear: React.FC<HeadwearProps & {
|
|
15
|
+
variant: string;
|
|
16
|
+
}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type MouthProps = {
|
|
3
|
+
colors: string[];
|
|
4
|
+
y?: number;
|
|
5
|
+
scale?: number;
|
|
6
|
+
transform?: string;
|
|
7
|
+
strokeWidth?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const MouthSmile: React.FC<MouthProps>;
|
|
10
|
+
export declare const MouthFrown: React.FC<MouthProps>;
|
|
11
|
+
export declare const MouthOpen: React.FC<MouthProps>;
|
|
12
|
+
export declare const MouthFlat: React.FC<MouthProps>;
|
|
13
|
+
export declare const MouthGrin: React.FC<MouthProps>;
|
|
14
|
+
export declare const MOUTH_RENDERERS: Record<string, React.FC<MouthProps>>;
|
|
15
|
+
export declare const Mouth: React.FC<MouthProps & {
|
|
16
|
+
variant: string;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type NoseProps = {
|
|
3
|
+
colors: string[];
|
|
4
|
+
y?: number;
|
|
5
|
+
scale?: number;
|
|
6
|
+
transform?: string;
|
|
7
|
+
strokeWidth?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const NoseLine: React.FC<NoseProps>;
|
|
10
|
+
export declare const NoseTriangle: React.FC<NoseProps>;
|
|
11
|
+
export declare const NoseRound: React.FC<NoseProps>;
|
|
12
|
+
export declare const NoseButton: React.FC<NoseProps>;
|
|
13
|
+
export declare const NoseNone: React.FC<NoseProps>;
|
|
14
|
+
export declare const NOSE_RENDERERS: Record<string, React.FC<NoseProps>>;
|
|
15
|
+
export declare const Nose: React.FC<NoseProps & {
|
|
16
|
+
variant: string;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export type OutfitProps = {
|
|
3
|
+
colors: string[];
|
|
4
|
+
scale?: number;
|
|
5
|
+
transform?: string;
|
|
6
|
+
strokeWidth?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const OutfitTee: React.FC<OutfitProps>;
|
|
9
|
+
export declare const OutfitHoodie: React.FC<OutfitProps>;
|
|
10
|
+
export declare const OutfitSuit: React.FC<OutfitProps>;
|
|
11
|
+
export declare const OUTFIT_RENDERERS: Record<string, React.FC<OutfitProps>>;
|
|
12
|
+
export declare const Outfit: React.FC<OutfitProps & {
|
|
13
|
+
variant: string;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* spineExport.ts — Export animations to Spine JSON format.
|
|
3
|
+
*
|
|
4
|
+
* Spine is a popular 2D skeletal animation tool. This module exports
|
|
5
|
+
* rig configurations and pose sequences to the Spine JSON format
|
|
6
|
+
* for import into Spine editor or Spine runtimes.
|
|
7
|
+
*/
|
|
8
|
+
import type { RigPose, RigConfig } from "./rig/rigTypes";
|
|
9
|
+
export interface SpineExportOptions {
|
|
10
|
+
/** Skeleton name. */
|
|
11
|
+
name?: string;
|
|
12
|
+
/** Character size for FK solving. */
|
|
13
|
+
size?: number;
|
|
14
|
+
/** Rig configuration. */
|
|
15
|
+
rig?: RigConfig;
|
|
16
|
+
/** Image path prefix for attachments. */
|
|
17
|
+
imagePath?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SpineKeyframe {
|
|
20
|
+
time: number;
|
|
21
|
+
pose: RigPose;
|
|
22
|
+
}
|
|
23
|
+
export interface SpineAnimationDef {
|
|
24
|
+
name: string;
|
|
25
|
+
keyframes: SpineKeyframe[];
|
|
26
|
+
loop?: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface SpineBone {
|
|
29
|
+
name: string;
|
|
30
|
+
parent?: string;
|
|
31
|
+
length: number;
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
rotation: number;
|
|
35
|
+
}
|
|
36
|
+
interface SpineSlot {
|
|
37
|
+
name: string;
|
|
38
|
+
bone: string;
|
|
39
|
+
attachment: string | null;
|
|
40
|
+
}
|
|
41
|
+
interface SpineJSON {
|
|
42
|
+
skeleton: {
|
|
43
|
+
hash: string;
|
|
44
|
+
spine: string;
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
width: number;
|
|
48
|
+
height: number;
|
|
49
|
+
images: string;
|
|
50
|
+
};
|
|
51
|
+
bones: SpineBone[];
|
|
52
|
+
slots: SpineSlot[];
|
|
53
|
+
skins: Record<string, Record<string, Record<string, unknown>>>;
|
|
54
|
+
animations: Record<string, {
|
|
55
|
+
bones: Record<string, {
|
|
56
|
+
rotate: unknown[];
|
|
57
|
+
}>;
|
|
58
|
+
}>;
|
|
59
|
+
}
|
|
60
|
+
/** Export rig and animations to Spine JSON format. */
|
|
61
|
+
export declare function exportToSpine(animations: SpineAnimationDef[], options?: SpineExportOptions): SpineJSON;
|
|
62
|
+
/** Serialize Spine data to JSON string. */
|
|
63
|
+
export declare function spineToJSON(data: SpineJSON): string;
|
|
64
|
+
/** Create a downloadable Blob for the Spine JSON. */
|
|
65
|
+
export declare function spineToBlob(data: SpineJSON): Blob;
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LocalUI.tsx — UI primitives wrapper for @nice2dev/ui-graphics
|
|
3
|
+
*
|
|
4
|
+
* Re-exports nice2dev-ui components with compatible API for the graphics editors.
|
|
5
|
+
* This ensures consistent styling across the entire NiceToDev ecosystem.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
export type ButtonVariant = "dark" | "light" | "outline-secondary" | "outline-info" | "outline-warning" | "outline-danger";
|
|
9
|
+
export interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type"> {
|
|
10
|
+
variant?: ButtonVariant;
|
|
11
|
+
size?: "sm" | "md";
|
|
12
|
+
}
|
|
13
|
+
export declare const Button: React.FC<ButtonProps>;
|
|
14
|
+
export interface RangeInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "onChange"> {
|
|
15
|
+
accentColor?: string;
|
|
16
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
17
|
+
}
|
|
18
|
+
export declare const RangeInput: React.FC<RangeInputProps>;
|
|
19
|
+
export interface TextAreaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
20
|
+
}
|
|
21
|
+
export declare const TextArea: React.FC<TextAreaProps>;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* collaboration.ts — Real-time collaborative editing, comments, and version history.
|
|
3
|
+
*
|
|
4
|
+
* Uses a provider-agnostic architecture so consumers can plug in
|
|
5
|
+
* WebSocket, WebRTC, or any custom transport.
|
|
6
|
+
*/
|
|
7
|
+
export interface CollaborationUser {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
color: string;
|
|
11
|
+
cursor?: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
};
|
|
15
|
+
selection?: {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
w: number;
|
|
19
|
+
h: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface CollaborationOperation {
|
|
23
|
+
type: "insert" | "update" | "delete";
|
|
24
|
+
path: string[];
|
|
25
|
+
value?: unknown;
|
|
26
|
+
timestamp: number;
|
|
27
|
+
userId: string;
|
|
28
|
+
}
|
|
29
|
+
export interface Comment {
|
|
30
|
+
id: string;
|
|
31
|
+
userId: string;
|
|
32
|
+
userName: string;
|
|
33
|
+
text: string;
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
timestamp: number;
|
|
37
|
+
resolved: boolean;
|
|
38
|
+
replies: CommentReply[];
|
|
39
|
+
}
|
|
40
|
+
export interface CommentReply {
|
|
41
|
+
id: string;
|
|
42
|
+
userId: string;
|
|
43
|
+
userName: string;
|
|
44
|
+
text: string;
|
|
45
|
+
timestamp: number;
|
|
46
|
+
}
|
|
47
|
+
export interface VersionSnapshot {
|
|
48
|
+
id: string;
|
|
49
|
+
name: string;
|
|
50
|
+
timestamp: number;
|
|
51
|
+
userId: string;
|
|
52
|
+
data: unknown;
|
|
53
|
+
thumbnail?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface CollaborationTransport {
|
|
56
|
+
connect(roomId: string, userId: string): void;
|
|
57
|
+
disconnect(): void;
|
|
58
|
+
send(message: CollaborationMessage): void;
|
|
59
|
+
onMessage(handler: (message: CollaborationMessage) => void): () => void;
|
|
60
|
+
}
|
|
61
|
+
export type CollaborationMessage = {
|
|
62
|
+
type: "join";
|
|
63
|
+
user: CollaborationUser;
|
|
64
|
+
} | {
|
|
65
|
+
type: "leave";
|
|
66
|
+
userId: string;
|
|
67
|
+
} | {
|
|
68
|
+
type: "cursor";
|
|
69
|
+
userId: string;
|
|
70
|
+
x: number;
|
|
71
|
+
y: number;
|
|
72
|
+
} | {
|
|
73
|
+
type: "selection";
|
|
74
|
+
userId: string;
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
w: number;
|
|
78
|
+
h: number;
|
|
79
|
+
} | {
|
|
80
|
+
type: "operation";
|
|
81
|
+
operation: CollaborationOperation;
|
|
82
|
+
} | {
|
|
83
|
+
type: "comment-add";
|
|
84
|
+
comment: Comment;
|
|
85
|
+
} | {
|
|
86
|
+
type: "comment-resolve";
|
|
87
|
+
commentId: string;
|
|
88
|
+
} | {
|
|
89
|
+
type: "comment-reply";
|
|
90
|
+
commentId: string;
|
|
91
|
+
reply: CommentReply;
|
|
92
|
+
} | {
|
|
93
|
+
type: "snapshot";
|
|
94
|
+
snapshot: VersionSnapshot;
|
|
95
|
+
} | {
|
|
96
|
+
type: "sync-request";
|
|
97
|
+
userId: string;
|
|
98
|
+
} | {
|
|
99
|
+
type: "sync-response";
|
|
100
|
+
data: unknown;
|
|
101
|
+
userId: string;
|
|
102
|
+
};
|
|
103
|
+
export declare class WebSocketTransport implements CollaborationTransport {
|
|
104
|
+
private serverUrl;
|
|
105
|
+
private maxReconnectMs;
|
|
106
|
+
private ws;
|
|
107
|
+
private handlers;
|
|
108
|
+
private reconnectTimer;
|
|
109
|
+
private roomId;
|
|
110
|
+
private userId;
|
|
111
|
+
constructor(serverUrl: string, maxReconnectMs?: number);
|
|
112
|
+
connect(roomId: string, userId: string): void;
|
|
113
|
+
disconnect(): void;
|
|
114
|
+
send(message: CollaborationMessage): void;
|
|
115
|
+
onMessage(handler: (message: CollaborationMessage) => void): () => void;
|
|
116
|
+
private doConnect;
|
|
117
|
+
}
|
|
118
|
+
export declare class VersionHistory {
|
|
119
|
+
private snapshots;
|
|
120
|
+
/** Create a new version snapshot. */
|
|
121
|
+
create(name: string, userId: string, data: unknown, thumbnail?: string): VersionSnapshot;
|
|
122
|
+
/** Get all snapshots ordered by timestamp. */
|
|
123
|
+
getAll(): VersionSnapshot[];
|
|
124
|
+
/** Get a specific snapshot. */
|
|
125
|
+
get(id: string): VersionSnapshot | undefined;
|
|
126
|
+
/** Remove a snapshot. */
|
|
127
|
+
remove(id: string): boolean;
|
|
128
|
+
/** Import snapshots from JSON. */
|
|
129
|
+
import(data: VersionSnapshot[]): void;
|
|
130
|
+
/** Export snapshots to JSON. */
|
|
131
|
+
export(): VersionSnapshot[];
|
|
132
|
+
}
|
|
133
|
+
export declare class CommentManager {
|
|
134
|
+
private comments;
|
|
135
|
+
add(userId: string, userName: string, text: string, x: number, y: number): Comment;
|
|
136
|
+
reply(commentId: string, userId: string, userName: string, text: string): CommentReply | null;
|
|
137
|
+
resolve(commentId: string): boolean;
|
|
138
|
+
getAll(): Comment[];
|
|
139
|
+
getUnresolved(): Comment[];
|
|
140
|
+
remove(commentId: string): boolean;
|
|
141
|
+
}
|
|
142
|
+
/** Hook for real-time collaboration. */
|
|
143
|
+
export declare function useCollaboration(transport: CollaborationTransport, roomId: string, currentUser: CollaborationUser): {
|
|
144
|
+
users: CollaborationUser[];
|
|
145
|
+
connected: boolean;
|
|
146
|
+
sendCursor: (x: number, y: number) => void;
|
|
147
|
+
sendOperation: (op: Omit<CollaborationOperation, "timestamp" | "userId">) => void;
|
|
148
|
+
onOperation: (handler: (op: CollaborationOperation) => void) => () => void;
|
|
149
|
+
};
|
|
150
|
+
/** Hook for managing comments. */
|
|
151
|
+
export declare function useComments(): {
|
|
152
|
+
comments: Comment[];
|
|
153
|
+
addComment: (userId: string, userName: string, text: string, x: number, y: number) => Comment;
|
|
154
|
+
replyToComment: (commentId: string, userId: string, userName: string, text: string) => CommentReply | null;
|
|
155
|
+
resolveComment: (commentId: string) => void;
|
|
156
|
+
removeComment: (commentId: string) => void;
|
|
157
|
+
};
|
|
158
|
+
/** Hook for version history. */
|
|
159
|
+
export declare function useVersionHistory(): {
|
|
160
|
+
snapshots: VersionSnapshot[];
|
|
161
|
+
createSnapshot: (name: string, userId: string, data: unknown, thumbnail?: string) => VersionSnapshot;
|
|
162
|
+
removeSnapshot: (id: string) => void;
|
|
163
|
+
getSnapshot: (id: string) => VersionSnapshot | undefined;
|
|
164
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* colorBlindness.ts — Color blindness simulation modes for editors.
|
|
3
|
+
*
|
|
4
|
+
* Simulates various types of color vision deficiency on canvas content
|
|
5
|
+
* to help designers create accessible graphics.
|
|
6
|
+
*/
|
|
7
|
+
export type ColorBlindnessType = "protanopia" | "deuteranopia" | "tritanopia" | "protanomaly" | "deuteranomaly" | "tritanomaly" | "achromatopsia" | "achromatomaly" | "none";
|
|
8
|
+
export interface ColorBlindnessInfo {
|
|
9
|
+
type: ColorBlindnessType;
|
|
10
|
+
label: string;
|
|
11
|
+
description: string;
|
|
12
|
+
prevalence: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const COLOR_BLINDNESS_TYPES: ColorBlindnessInfo[];
|
|
15
|
+
/** Apply color blindness simulation to ImageData in-place. */
|
|
16
|
+
export declare function simulateColorBlindness(imageData: ImageData, type: ColorBlindnessType): ImageData;
|
|
17
|
+
/** Create a new ImageData with color blindness simulation (non-destructive). */
|
|
18
|
+
export declare function simulateColorBlindnessCopy(source: ImageData, type: ColorBlindnessType): ImageData;
|
|
19
|
+
/** Apply color blindness filter to a canvas. */
|
|
20
|
+
export declare function applyColorBlindnessFilter(canvas: HTMLCanvasElement, type: ColorBlindnessType): void;
|
|
21
|
+
/** Simulate color blindness on a single RGB color. */
|
|
22
|
+
export declare function simulateColor(r: number, g: number, b: number, type: ColorBlindnessType): [number, number, number];
|
|
23
|
+
/** Generate an SVG filter for color blindness simulation. */
|
|
24
|
+
export declare function colorBlindnessSvgFilter(type: ColorBlindnessType, filterId?: string): string;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dragDrop.ts — External drag & drop support for editors.
|
|
3
|
+
*
|
|
4
|
+
* Handles file/image drops from the OS or other applications
|
|
5
|
+
* into the editor canvas area.
|
|
6
|
+
*/
|
|
7
|
+
import React from "react";
|
|
8
|
+
export interface DropResult {
|
|
9
|
+
files: File[];
|
|
10
|
+
images: ImageData[];
|
|
11
|
+
text?: string;
|
|
12
|
+
urls: string[];
|
|
13
|
+
}
|
|
14
|
+
export interface DragDropConfig {
|
|
15
|
+
/** Accepted MIME types. Defaults to image/*. */
|
|
16
|
+
accept?: string[];
|
|
17
|
+
/** Maximum number of files. Default: 10. */
|
|
18
|
+
maxFiles?: number;
|
|
19
|
+
/** Maximum file size in bytes. Default: 50MB. */
|
|
20
|
+
maxSize?: number;
|
|
21
|
+
/** Called when valid files are dropped. */
|
|
22
|
+
onDrop?: (result: DropResult) => void;
|
|
23
|
+
/** Called when drag enters the zone. */
|
|
24
|
+
onDragEnter?: () => void;
|
|
25
|
+
/** Called when drag leaves the zone. */
|
|
26
|
+
onDragLeave?: () => void;
|
|
27
|
+
/** Called if a drop fails validation. */
|
|
28
|
+
onError?: (message: string) => void;
|
|
29
|
+
}
|
|
30
|
+
export interface DragDropState {
|
|
31
|
+
isDragging: boolean;
|
|
32
|
+
dragProps: {
|
|
33
|
+
onDragEnter: (e: React.DragEvent) => void;
|
|
34
|
+
onDragOver: (e: React.DragEvent) => void;
|
|
35
|
+
onDragLeave: (e: React.DragEvent) => void;
|
|
36
|
+
onDrop: (e: React.DragEvent) => void;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** React hook for handling external file/image drag & drop. */
|
|
40
|
+
export declare function useDragDrop(config: DragDropConfig): DragDropState;
|
|
41
|
+
export interface DropZoneOverlayProps {
|
|
42
|
+
isDragging: boolean;
|
|
43
|
+
message?: string;
|
|
44
|
+
}
|
|
45
|
+
/** Visual overlay shown when dragging files over the editor. */
|
|
46
|
+
export declare const DropZoneOverlay: React.FC<DropZoneOverlayProps>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fixes.ts — Bug fixes and performance patches for editors.
|
|
3
|
+
*
|
|
4
|
+
* - PhotoEditor: Retina/HiDPI canvas devicePixelRatio handling
|
|
5
|
+
* - VectorEditor: Shape virtualization for >100 shapes
|
|
6
|
+
* - AnimationEditor: Memory leak prevention (raf/timer cleanup)
|
|
7
|
+
*/
|
|
8
|
+
export interface RetinaCanvasOptions {
|
|
9
|
+
/** CSS width of the canvas. */
|
|
10
|
+
width: number;
|
|
11
|
+
/** CSS height of the canvas. */
|
|
12
|
+
height: number;
|
|
13
|
+
/** Override devicePixelRatio (default: window.devicePixelRatio). */
|
|
14
|
+
dpr?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Configure a canvas for Retina/HiDPI displays.
|
|
18
|
+
* Scales the backing store while keeping CSS dimensions intact.
|
|
19
|
+
*/
|
|
20
|
+
export declare function setupRetinaCanvas(canvas: HTMLCanvasElement, options: RetinaCanvasOptions): CanvasRenderingContext2D;
|
|
21
|
+
/**
|
|
22
|
+
* Get the correct mouse position on a Retina canvas.
|
|
23
|
+
*/
|
|
24
|
+
export declare function retinaMousePosition(e: MouseEvent | {
|
|
25
|
+
clientX: number;
|
|
26
|
+
clientY: number;
|
|
27
|
+
}, canvas: HTMLCanvasElement): {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
};
|
|
31
|
+
export interface VirtualBounds {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
}
|
|
37
|
+
export interface VirtualizedShape<T> {
|
|
38
|
+
shape: T;
|
|
39
|
+
bounds: VirtualBounds;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Given a list of shapes with bounding boxes and a visible viewport,
|
|
43
|
+
* returns only the shapes intersecting the viewport.
|
|
44
|
+
*/
|
|
45
|
+
export declare function virtualizeShapes<T>(shapes: VirtualizedShape<T>[], viewport: VirtualBounds, margin?: number): T[];
|
|
46
|
+
/**
|
|
47
|
+
* Spatial hash grid for fast shape lookup.
|
|
48
|
+
* Greatly speeds up rendering and hit-testing with many shapes.
|
|
49
|
+
*/
|
|
50
|
+
export declare class SpatialHashGrid<T> {
|
|
51
|
+
private cellSize;
|
|
52
|
+
private cells;
|
|
53
|
+
constructor(cellSize?: number);
|
|
54
|
+
private cellKey;
|
|
55
|
+
/** Insert a shape into the grid. */
|
|
56
|
+
insert(shape: T, bounds: VirtualBounds): void;
|
|
57
|
+
/** Query shapes overlapping the given viewport. */
|
|
58
|
+
query(viewport: VirtualBounds): T[];
|
|
59
|
+
/** Remove all shapes from the grid. */
|
|
60
|
+
clear(): void;
|
|
61
|
+
/** Rebuild the grid from a list of shapes. */
|
|
62
|
+
rebuild(shapes: VirtualizedShape<T>[]): void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Track requestAnimationFrame IDs and timers for proper cleanup.
|
|
66
|
+
*/
|
|
67
|
+
export declare class AnimationCleanup {
|
|
68
|
+
private rafIds;
|
|
69
|
+
private timerIds;
|
|
70
|
+
private intervalIds;
|
|
71
|
+
private disposed;
|
|
72
|
+
/** Wraps requestAnimationFrame with tracking. */
|
|
73
|
+
requestAnimationFrame(cb: FrameRequestCallback): number;
|
|
74
|
+
/** Wraps setTimeout with tracking. */
|
|
75
|
+
setTimeout(cb: () => void, ms: number): ReturnType<typeof setTimeout>;
|
|
76
|
+
/** Wraps setInterval with tracking. */
|
|
77
|
+
setInterval(cb: () => void, ms: number): ReturnType<typeof setInterval>;
|
|
78
|
+
/** Cancel all tracked timers and animation frames. */
|
|
79
|
+
dispose(): void;
|
|
80
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gridGuides.ts — Grid, guides, rulers, and snap-to-grid/pixel for editors.
|
|
3
|
+
*
|
|
4
|
+
* Unified system for drawing grids, ruler bars, snapping to grid,
|
|
5
|
+
* and managing user-defined guide lines.
|
|
6
|
+
*/
|
|
7
|
+
export interface GridConfig {
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
size: number;
|
|
10
|
+
subdivisions: number;
|
|
11
|
+
color: string;
|
|
12
|
+
subColor: string;
|
|
13
|
+
opacity: number;
|
|
14
|
+
snapToGrid: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface RulersConfig {
|
|
17
|
+
enabled: boolean;
|
|
18
|
+
size: number;
|
|
19
|
+
color: string;
|
|
20
|
+
backgroundColor: string;
|
|
21
|
+
textColor: string;
|
|
22
|
+
tickSize: number;
|
|
23
|
+
}
|
|
24
|
+
export interface Guide {
|
|
25
|
+
id: string;
|
|
26
|
+
orientation: "horizontal" | "vertical";
|
|
27
|
+
position: number;
|
|
28
|
+
color: string;
|
|
29
|
+
locked: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface GuidesConfig {
|
|
32
|
+
enabled: boolean;
|
|
33
|
+
guides: Guide[];
|
|
34
|
+
snapToGuides: boolean;
|
|
35
|
+
snapDistance: number;
|
|
36
|
+
color: string;
|
|
37
|
+
}
|
|
38
|
+
export interface SnapResult {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
snappedX: boolean;
|
|
42
|
+
snappedY: boolean;
|
|
43
|
+
}
|
|
44
|
+
export declare const DEFAULT_GRID: GridConfig;
|
|
45
|
+
export declare const DEFAULT_RULERS: RulersConfig;
|
|
46
|
+
export declare const DEFAULT_GUIDES: GuidesConfig;
|
|
47
|
+
/** Draw a grid on a canvas context. */
|
|
48
|
+
export declare function drawGrid(ctx: CanvasRenderingContext2D, width: number, height: number, config: GridConfig, offsetX?: number, offsetY?: number, zoom?: number): void;
|
|
49
|
+
/** Draw horizontal ruler bar. */
|
|
50
|
+
export declare function drawHorizontalRuler(ctx: CanvasRenderingContext2D, width: number, config: RulersConfig, offsetX?: number, zoom?: number): void;
|
|
51
|
+
/** Draw vertical ruler bar. */
|
|
52
|
+
export declare function drawVerticalRuler(ctx: CanvasRenderingContext2D, height: number, config: RulersConfig, offsetY?: number, zoom?: number): void;
|
|
53
|
+
/** Draw guides on a canvas context. */
|
|
54
|
+
export declare function drawGuides(ctx: CanvasRenderingContext2D, width: number, height: number, config: GuidesConfig, offsetX?: number, offsetY?: number, zoom?: number): void;
|
|
55
|
+
/** Snap a point to the grid. */
|
|
56
|
+
export declare function snapToGrid(x: number, y: number, gridSize: number): SnapResult;
|
|
57
|
+
/** Snap a point to nearby guides. */
|
|
58
|
+
export declare function snapToGuides(x: number, y: number, guides: Guide[], snapDistance: number): SnapResult;
|
|
59
|
+
/** Snap to pixel (floor to nearest integer). */
|
|
60
|
+
export declare function snapToPixel(x: number, y: number): SnapResult;
|
|
61
|
+
/** Combined snap: try guides first, then grid, then pixel. */
|
|
62
|
+
export declare function snapPoint(x: number, y: number, gridConfig: GridConfig, guidesConfig: GuidesConfig): SnapResult;
|
|
63
|
+
/** Create a new guide. */
|
|
64
|
+
export declare function createGuide(orientation: "horizontal" | "vertical", position: number, color?: string): Guide;
|
|
65
|
+
/** Add a guide to the config. */
|
|
66
|
+
export declare function addGuide(config: GuidesConfig, guide: Guide): GuidesConfig;
|
|
67
|
+
/** Remove a guide by ID. */
|
|
68
|
+
export declare function removeGuide(config: GuidesConfig, guideId: string): GuidesConfig;
|
|
69
|
+
/** Clear all guides. */
|
|
70
|
+
export declare function clearGuides(config: GuidesConfig): GuidesConfig;
|