@nice2dev/ui-graphics 1.1.9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/README.md +60 -63
  3. package/dist/cjs/animation/AnimationEditor.js +0 -3
  4. package/dist/cjs/animation/BodyRenderer.js +1 -4
  5. package/dist/cjs/animation/shapes/heads.js +0 -3
  6. package/dist/cjs/core/NiceBrushEngine.js +1 -3
  7. package/dist/cjs/font/NiceFontEditor.js +3 -3
  8. package/dist/cjs/game/GameAsset2dEditor.js +0 -3
  9. package/dist/cjs/index.js +0 -11
  10. package/dist/cjs/nice2dev-ui-graphics.css +1 -1
  11. package/dist/cjs/photo/NiceAITools.js +2 -2
  12. package/dist/cjs/photo/PhotoEditorToolbar.js +1 -1
  13. package/dist/cjs/pixel/PixelEditor.js +0 -3
  14. package/dist/cjs/pixel/PixelEditor.module.css.js +1 -1
  15. package/dist/cjs/pixel/SpriteGeneratorPanel.js +3 -3
  16. package/dist/cjs/texture/Nice3DTexturePainter.js +2 -2
  17. package/dist/cjs/ui/NiceUIDesigner.js +1 -1
  18. package/dist/cjs/vector/VectorEditor.js +0 -3
  19. package/dist/esm/animation/AnimationEditor.js +1 -3
  20. package/dist/esm/animation/BodyRenderer.js +3 -5
  21. package/dist/esm/animation/shapes/heads.js +1 -3
  22. package/dist/esm/core/NiceBrushEngine.js +1 -3
  23. package/dist/esm/font/NiceFontEditor.js +3 -3
  24. package/dist/esm/game/GameAsset2dEditor.js +1 -3
  25. package/dist/esm/index.js +10 -10
  26. package/dist/esm/nice2dev-ui-graphics.css +1 -1
  27. package/dist/esm/photo/NiceAITools.js +2 -2
  28. package/dist/esm/photo/PhotoEditorToolbar.js +1 -1
  29. package/dist/esm/pixel/PixelEditor.js +1 -3
  30. package/dist/esm/pixel/PixelEditor.module.css.js +1 -1
  31. package/dist/esm/pixel/SpriteGeneratorPanel.js +3 -3
  32. package/dist/esm/texture/Nice3DTexturePainter.js +2 -2
  33. package/dist/esm/ui/NiceUIDesigner.js +1 -1
  34. package/dist/esm/vector/VectorEditor.js +1 -3
  35. package/dist/types/animation/AnimatedPerson.d.ts +0 -4
  36. package/dist/types/animation/AnimationEditor.d.ts +1 -5
  37. package/dist/types/animation/Audience.d.ts +0 -4
  38. package/dist/types/animation/BodyRenderer.d.ts +0 -4
  39. package/dist/types/animation/rig/RigPlayer.d.ts +0 -7
  40. package/dist/types/animation/rig/RiggedBody.d.ts +0 -4
  41. package/dist/types/animation/shapes/heads.d.ts +0 -4
  42. package/dist/types/game/GameAsset2dEditor.d.ts +0 -4
  43. package/dist/types/game/index.d.ts +1 -1
  44. package/dist/types/index.d.ts +9 -19
  45. package/dist/types/photo/index.d.ts +0 -2
  46. package/dist/types/pixel/PixelEditor.d.ts +0 -4
  47. package/dist/types/pixel/SpriteGeneratorPanel.d.ts +0 -4
  48. package/dist/types/vector/VectorEditor.d.ts +0 -4
  49. package/package.json +4 -4
@@ -1 +1 @@
1
- .PixelEditor-module_root__3gidG{background:var(--nice-bg-primary);color:var(--nice-text-primary);display:flex;flex-direction:column;font-family:Segoe UI,Consolas,monospace;font-size:12px;height:100%;overflow:hidden;user-select:none}.PixelEditor-module_menuBar__8JFld{align-items:center;background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);display:flex;flex-shrink:0;gap:0;height:28px;padding:0 var(--nice-space-1,4px)}.PixelEditor-module_menuBtn__w-GQC{background:none;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary);cursor:pointer;font-size:11px;padding:var(--nice-space-1,4px) var(--nice-space-2-5,10px)}.PixelEditor-module_menuBtn__w-GQC:hover{background:var(--nice-bg-secondary);color:var(--nice-color-white)}.PixelEditor-module_menuSep__pNZsR{background:var(--nice-bg-secondary);height:16px;margin:0 var(--nice-space-1,4px);width:1px}.PixelEditor-module_menuBar__8JFld .nice-menu__btn{color:var(--nice-text-secondary);font-size:11px}.PixelEditor-module_menuBar__8JFld .nice-menu__btn:hover{background:var(--nice-bg-secondary);color:var(--nice-color-white)}.PixelEditor-module_toolbar__paCGq{background:var(--nice-bg-elevated);border-right:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;gap:var(--nice-space-0-5,2px);overflow-y:auto;padding:var(--nice-space-1,4px) var(--nice-space-0-5,2px);width:38px}.PixelEditor-module_toolBtn__wD1Kj{align-items:center;background:none;border:1px solid transparent;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:all .1s;width:32px}.PixelEditor-module_toolBtn__wD1Kj:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.PixelEditor-module_toolBtnActive__R51U0{border-color:var(--nice-color-white,#fff)!important;box-shadow:inset 2px 0 0 0 var(--nice-color-white,#fff),0 0 0 1px var(--nice-color-primary,#4f8cff)}.PixelEditor-module_toolBtnActive__R51U0,.PixelEditor-module_toolBtnActive__R51U0:hover{background:var(--nice-color-primary,#4f8cff)!important;color:var(--nice-color-white,#fff)!important}.PixelEditor-module_mainArea__Z0x6l{display:flex;flex:1;min-height:0}.PixelEditor-module_canvasContainer__8z2AY{background:var(--nice-bg-inset);cursor:crosshair;flex:1;height:100%;min-height:0;overflow:hidden;position:relative}.PixelEditor-module_canvasContainer__8z2AY canvas{image-rendering:pixelated;position:absolute}.PixelEditor-module_rightPanel__ZjrCh{background:var(--nice-bg-primary);border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:220px}.PixelEditor-module_panelSection__3l225{border-bottom:1px solid var(--nice-border-color)}.PixelEditor-module_rightPanel__ZjrCh .nice-collapse__trigger{align-items:center;background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;display:flex;font-size:10px;gap:var(--nice-space-1-5,6px);letter-spacing:.5px;padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);text-align:left;text-transform:uppercase;width:100%}.PixelEditor-module_rightPanel__ZjrCh .nice-collapse__trigger:hover{color:var(--nice-text-secondary)}.PixelEditor-module_rightPanel__ZjrCh .nice-collapse__panel{padding:0 var(--nice-space-2,8px) var(--nice-space-1-5,6px)}.PixelEditor-module_collapseChevron__Yuvz6{display:inline-flex;transition:transform .15s ease}.nice-collapse--expanded .PixelEditor-module_collapseChevron__Yuvz6{transform:rotate(90deg)}.PixelEditor-module_layerActions__pZH1f{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px);margin-bottom:var(--nice-space-1,4px)}.PixelEditor-module_panelTitle__vYyeO{align-items:center;color:var(--nice-text-secondary);display:flex;font-size:10px;justify-content:space-between;letter-spacing:.5px;margin-bottom:var(--nice-space-1,4px);text-transform:uppercase}.PixelEditor-module_panelTitle__vYyeO button{background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;font-size:14px;line-height:1;padding:0 var(--nice-space-0-5,2px)}.PixelEditor-module_panelTitle__vYyeO button:hover{color:var(--nice-text-muted)}.PixelEditor-module_layerItem__J-gtn{align-items:center;border-radius:var(--nice-radius-sm,3px);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1,4px);padding:var(--nice-space-0-75,3px) var(--nice-space-1,4px)}.PixelEditor-module_layerItem__J-gtn:hover{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04))}.PixelEditor-module_layerItemActive__yPt29{background:var(--nice-surface)!important;border:1px solid var(--nice-color-primary-hover)}.PixelEditor-module_layerVis__Uj7n2{align-items:center;cursor:pointer;display:flex;flex-shrink:0;font-size:10px;height:16px;justify-content:center;opacity:.6;width:16px}.PixelEditor-module_layerVis__Uj7n2:hover{opacity:1}.PixelEditor-module_layerName__HovwJ{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PixelEditor-module_layerOpacity__qmWvu{color:var(--nice-text-muted);font-size:10px;text-align:right;width:36px}.PixelEditor-module_paletteGrid__knY-n{display:grid;gap:var(--nice-space-0-5,2px);grid-template-columns:repeat(8,1fr)}.PixelEditor-module_paletteSwatch__MUbha{aspect-ratio:1;border:1px solid var(--nice-overlay-light-8,hsla(0,0%,100%,.08));border-radius:var(--nice-radius-sm,2px);cursor:pointer;transition:transform .1s}.PixelEditor-module_paletteSwatch__MUbha:hover{transform:scale(1.15);z-index:1}.PixelEditor-module_paletteSwatchActive__wDR4T{border-color:var(--nice-color-white)!important;box-shadow:0 0 0 1px var(--nice-color-primary)}.PixelEditor-module_colorPickers__sQlBN{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-top:var(--nice-space-1-5,6px)}.PixelEditor-module_colorSample__GN7Rd{border:2px solid var(--nice-overlay-light-20,hsla(0,0%,100%,.2));border-radius:var(--nice-radius-sm,4px);height:28px;width:28px}.PixelEditor-module_bottomPanel__rviLF{background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;height:80px}.PixelEditor-module_timelineControls__Laroq{align-items:center;border-bottom:1px solid var(--nice-bg,#224);display:flex;font-size:11px;gap:var(--nice-space-1-5,6px);padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PixelEditor-module_timelineControls__Laroq button{background:var(--nice-bg-secondary);border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-muted);cursor:pointer;font-size:11px;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PixelEditor-module_timelineControls__Laroq button:hover{background:var(--nice-bg-tertiary);color:var(--nice-color-white)}.PixelEditor-module_timelineControls__Laroq label{color:var(--nice-text-muted)}.PixelEditor-module_timelineControls__Laroq input[type=number]{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);font-size:11px;padding:var(--nice-space-px,1px) var(--nice-space-1,4px);text-align:center;width:40px}.PixelEditor-module_timelineControls__Laroq input[type=checkbox]{accent-color:var(--nice-color-primary)}.PixelEditor-module_timelineFrames__dw06F{align-items:stretch;display:flex;flex:1;gap:var(--nice-space-0-5,2px);overflow-x:auto;padding:var(--nice-space-1,4px) var(--nice-space-2,8px)}.PixelEditor-module_frameThumb__2E9mG{align-items:center;background:var(--nice-bg-primary);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-width:44px;overflow:hidden;position:relative;width:44px}.PixelEditor-module_frameThumb__2E9mG canvas{height:36px;image-rendering:pixelated;object-fit:contain;width:36px}.PixelEditor-module_frameThumb__2E9mG:hover{border-color:var(--nice-border-color)}.PixelEditor-module_frameThumbActive__Z0eK4{background:var(--nice-surface);border-color:var(--nice-color-primary)!important}.PixelEditor-module_frameNum__PoGQC{bottom:1px;color:var(--nice-text-muted);font-size:8px;position:absolute;right:3px}.PixelEditor-module_statusBar__QnphD{align-items:center;background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);color:var(--nice-text-muted);display:flex;flex-shrink:0;font-size:10px;gap:var(--nice-space-3,12px);height:20px;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PixelEditor-module_dialogOverlay__IgyFy{align-items:center;background:var(--nice-overlay-60,rgba(0,0,0,.6));display:flex;inset:0;justify-content:center;position:absolute;z-index:100}.PixelEditor-module_dialog__OnkAG{background:var(--nice-bg-elevated);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-lg,8px);box-shadow:0 8px 32px var(--nice-overlay-50,rgba(0,0,0,.5));min-width:300px;padding:var(--nice-space-5,20px)}.PixelEditor-module_dialog__OnkAG h3{color:var(--nice-text-secondary);font-size:14px;margin:0 0 var(--nice-space-3,12px)}.PixelEditor-module_dialog__OnkAG label{color:var(--nice-text-muted);display:block;font-size:11px;margin:var(--nice-space-2,8px) 0 var(--nice-space-0-5,2px)}.PixelEditor-module_dialog__OnkAG input,.PixelEditor-module_dialog__OnkAG select{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-primary);font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-2,8px);width:100%}.PixelEditor-module_dialogActions__fOa7a{display:flex;gap:var(--nice-space-2,8px);justify-content:flex-end;margin-top:var(--nice-space-4,16px)}.PixelEditor-module_dialogActions__fOa7a button{border:none;border-radius:var(--nice-radius-sm,4px);cursor:pointer;font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-4,16px)}.PixelEditor-module_btnPrimary__FYlTy{background:var(--nice-color-primary);color:var(--nice-color-white)}.PixelEditor-module_btnPrimary__FYlTy:hover{background:var(--nice-primary,#67d)}.PixelEditor-module_btnSecondary__qLfyJ{background:var(--nice-bg-secondary);color:var(--nice-text-muted)}.PixelEditor-module_btnSecondary__qLfyJ:hover{background:var(--nice-bg-tertiary);color:var(--nice-text-primary)}.PixelEditor-module_brushSlider__UxQ38{align-items:center;border-bottom:1px solid var(--nice-border-color);display:flex;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-2,8px)}.PixelEditor-module_brushSlider__UxQ38 label{color:var(--nice-text-muted);font-size:10px}.PixelEditor-module_brushSlider__UxQ38 input[type=range]{accent-color:var(--nice-color-primary);flex:1;height:4px}.PixelEditor-module_brushSlider__UxQ38 span{color:var(--nice-text-muted);font-size:10px;min-width:16px;text-align:center}.PixelEditor-module_toolSep__YIu-E{background:var(--nice-bg-secondary);height:1px;margin:var(--nice-space-1,4px) var(--nice-space-0-5,2px);width:28px}.PixelEditor-module_toolGroup__xA2lN{display:flex;flex-direction:column;gap:var(--nice-space-px,1px);padding:var(--nice-space-0-5,2px) 0}.PixelEditor-module_miniBtn__tg5N0{align-items:center;background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04));border:1px solid transparent;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:10px;height:20px;justify-content:center;transition:all .1s;width:32px}.PixelEditor-module_miniBtn__tg5N0:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.PixelEditor-module_miniBtnActive__gpveu{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-color-white)!important}.PixelEditor-module_colorSwatches__jFuRX{align-items:center;border-top:1px solid var(--nice-border-color);display:flex;flex-direction:column;gap:var(--nice-space-1,4px);margin-top:var(--nice-space-1,4px);padding:var(--nice-space-1-5,6px) 0}.PixelEditor-module_brushShapes__2bBfl{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-0-5,2px) 0}.PixelEditor-module_pressureToggles__AITuh{display:flex;flex-direction:column;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-1,4px) 0}.PixelEditor-module_checkLabel__-d-TA{align-items:center;color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:10px;gap:var(--nice-space-1,4px)}.PixelEditor-module_checkLabel__-d-TA input[type=checkbox]{accent-color:var(--nice-color-primary);height:12px;width:12px}.PixelEditor-module_hsvPicker__0ERIh{display:flex;flex-direction:column;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) 0}.PixelEditor-module_hsvRow__M3fhN{align-items:center;display:flex;gap:var(--nice-space-1,4px)}.PixelEditor-module_hsvLabel__O2MkX{color:var(--nice-text-muted);font-size:9px;min-width:16px;text-align:right}.PixelEditor-module_hsvSlider__KKMMJ{accent-color:var(--nice-color-primary);cursor:pointer;flex:1;height:6px;min-width:0}.PixelEditor-module_hsvVal__MgQ8W{color:var(--nice-text-muted);font-size:9px;min-width:28px;text-align:right}.PixelEditor-module_hsvNumInput__Wn4kG{text-align:center;width:36px}.PixelEditor-module_hsvHexInput__MU5Ms,.PixelEditor-module_hsvNumInput__Wn4kG{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);font-size:10px;padding:var(--nice-space-px,1px) var(--nice-space-1,4px)}.PixelEditor-module_hsvHexInput__MU5Ms{flex:1}.PixelEditor-module_layerLock__xeWnc{align-items:center;cursor:pointer;display:flex;flex-shrink:0;font-size:10px;height:16px;justify-content:center;opacity:.6;width:16px}.PixelEditor-module_layerLock__xeWnc:hover{opacity:1}.PixelEditor-module_layerNameInput__ZiOKv{background:var(--nice-bg-canvas);border:1px solid var(--nice-color-primary);border-radius:var(--nice-radius-sm,2px);color:var(--nice-text-primary);flex:1;font-size:11px;min-width:0;outline:none;padding:0 var(--nice-space-1,4px)}.PixelEditor-module_layerControls__MrpXo{align-items:center;border-top:1px solid var(--nice-overlay-light-5,hsla(0,0%,100%,.05));display:flex;gap:var(--nice-space-1,4px);margin-top:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-1,4px) var(--nice-space-0-5,2px)}.PixelEditor-module_blendSelect__QCwns{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary);cursor:pointer;flex:1;font-size:10px;padding:var(--nice-space-px,1px) var(--nice-space-1,4px)}.PixelEditor-module_layerOpSlider__Vw-qs{accent-color:var(--nice-color-primary);cursor:pointer;height:4px;width:60px}.PixelEditor-module_genPanel__99Md8{background:var(--nice-bg-elevated);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-lg,10px);box-shadow:0 12px 48px var(--nice-overlay-60,rgba(0,0,0,.6));display:flex;flex-direction:column;height:600px;max-height:85vh;max-width:95vw;overflow:hidden;width:820px}.PixelEditor-module_genHeader__xN4FZ{align-items:center;border-bottom:1px solid var(--nice-border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--nice-space-2-5,10px) var(--nice-space-4,16px)}.PixelEditor-module_genHeader__xN4FZ h3{color:var(--nice-text-secondary);font-size:14px;margin:0}.PixelEditor-module_genTabs__No5Za{background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);display:flex;flex-shrink:0}.PixelEditor-module_genTabBtn__e2VhB{background:none;border:none;border-bottom:2px solid transparent;color:var(--nice-text-secondary);cursor:pointer;flex:1;font-size:11px;padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);transition:all .15s}.PixelEditor-module_genTabBtn__e2VhB:hover{background:var(--nice-bg-elevated);color:var(--nice-text-muted)}.PixelEditor-module_genTabBtnActive__Rt3jQ{background:var(--nice-bg-elevated)!important;border-bottom-color:var(--nice-color-primary)!important;color:var(--nice-color-white)!important}.PixelEditor-module_genBody__MuiQy{display:flex;flex:1;min-height:0;overflow:hidden}.PixelEditor-module_genLeft__JdEw6{border-right:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:200px}.PixelEditor-module_genCenter__c5X0S{align-items:center;display:flex;flex:1;flex-direction:column;gap:var(--nice-space-2,8px);overflow-y:auto;padding:var(--nice-space-2,8px)}.PixelEditor-module_genRight__qFz11{border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:200px}.PixelEditor-module_genPreviewWrap__360F-{align-items:center;background:var(--nice-bg-inset);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md,6px);display:flex;flex:1;justify-content:center;min-height:120px;overflow:hidden;width:100%}.PixelEditor-module_genPreviewCanvas__75Lw2{image-rendering:pixelated;max-height:100%;max-width:100%;min-height:64px;min-width:64px;object-fit:contain}.PixelEditor-module_genDirGrid__xjEp7{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px);justify-content:center}.PixelEditor-module_genRow__awCw9{align-items:center;display:flex;gap:var(--nice-space-1,4px);width:100%}.PixelEditor-module_genPresetGrid__f9XK6{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px)}.PixelEditor-module_genPresetBtn__5C2We{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04));border:1px solid transparent;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-muted);cursor:pointer;font-size:9px;padding:var(--nice-space-0-75,3px) var(--nice-space-1-5,6px);transition:all .1s}.PixelEditor-module_genPresetBtn__5C2We:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.PixelEditor-module_genPresetBtnActive__WAGew{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-color-white)!important}.PixelEditor-module_genPartGrid__l17oc{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px)}.PixelEditor-module_genColorSwatches__acI6q{display:flex;gap:var(--nice-space-0-5,2px);margin-top:var(--nice-space-0-5,2px)}.PixelEditor-module_genColorSwatch__JE8BO{border:1px solid var(--nice-overlay-light-10,hsla(0,0%,100%,.1));border-radius:var(--nice-radius-sm,2px);height:16px;width:16px}.PixelEditor-module_genAssemblyItem__zNL2P{align-items:center;border-radius:var(--nice-radius-sm,3px);display:flex;font-size:10px;gap:var(--nice-space-1,4px);padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px)}.PixelEditor-module_genAssemblyItem__zNL2P:hover{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04))}.PixelEditor-module_genAssemblyName__GU-kr{color:var(--nice-text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PixelEditor-module_genFooter__WkyJp{border-top:1px solid var(--nice-border-color);display:flex;flex-shrink:0;gap:var(--nice-space-2,8px);justify-content:flex-end;padding:var(--nice-space-2-5,10px) var(--nice-space-4,16px)}.PixelEditor-module_btnIcon__O59l9{background:none;border:none;color:var(--nice-text-muted);cursor:pointer;font-size:14px;line-height:1;padding:var(--nice-space-0-5,2px)}.PixelEditor-module_btnIcon__O59l9:hover{color:var(--nice-text-secondary)}.PixelEditor-module_propSelect__4P0Qi{flex:1}.PixelEditor-module_propInput__Q-kr2,.PixelEditor-module_propSelect__4P0Qi{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);font-size:11px;min-width:0;padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px)}.VectorEditor-module_root__rtRWo{background:var(--nice-bg-primary);color:var(--nice-text-primary);display:flex;flex-direction:column;font-family:Segoe UI,Consolas,monospace;font-size:12px;height:100%;overflow:hidden;user-select:none}.VectorEditor-module_menuBar__o25XM{align-items:center;background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);display:flex;flex-shrink:0;gap:0;height:28px;padding:0 var(--nice-space-1,4px)}.VectorEditor-module_menuBtn__aP4vp{background:none;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary);cursor:pointer;font-size:11px;padding:var(--nice-space-1,4px) var(--nice-space-2-5,10px)}.VectorEditor-module_menuBtn__aP4vp:hover{background:var(--nice-bg-secondary);color:var(--nice-text-primary)}.VectorEditor-module_menuBtn__aP4vp.VectorEditor-module_menuBtnActive__G4hDv,.VectorEditor-module_menuBtn__aP4vp.VectorEditor-module_menuBtnActive__G4hDv:hover{background:var(--nice-color-primary);color:var(--nice-text-on-primary,#fff)}.VectorEditor-module_menuSep__3-kTv{background:var(--nice-bg-secondary);height:16px;margin:0 var(--nice-space-1,4px);width:1px}.VectorEditor-module_menuLabel__Bsm0e{align-items:center;color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:10px;gap:var(--nice-space-0-5,2px);padding:0 var(--nice-space-1,4px)}.VectorEditor-module_toolbar__fakYL{background:var(--nice-bg-elevated);border-right:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-1,4px) var(--nice-space-0-5,2px);width:38px}.VectorEditor-module_toolBtn__Zh7D3{align-items:center;background:none;border:1px solid transparent;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:all .1s;width:32px}.VectorEditor-module_toolBtn__Zh7D3:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.VectorEditor-module_toolBtnActive__0xZlr{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-color-white)!important}.VectorEditor-module_mainArea__3o89F{display:flex;flex:1;min-height:0}.VectorEditor-module_canvasContainer__hOUAx{background:var(--nice-bg-inset);flex:1;height:100%;min-height:0;overflow:hidden;position:relative}.VectorEditor-module_canvasContainer__hOUAx svg{height:100%;inset:0;position:absolute;width:100%}.VectorEditor-module_rightPanel__3hzcS{background:var(--nice-bg-primary);border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;width:320px}.VectorEditor-module_rightPanelTabBody__QrkgO{flex:1 1 auto;min-height:0;overflow-y:auto}.VectorEditor-module_libraryGrid__utboD{display:grid;gap:var(--nice-space-1-5,6px);grid-template-columns:repeat(4,1fr);padding:var(--nice-space-1-5,6px)}.VectorEditor-module_libraryCell__WyOra{align-items:center;background:transparent;border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary);cursor:pointer;display:flex;flex-direction:column;font-size:9px;gap:var(--nice-space-0-5,2px);overflow:hidden;padding:var(--nice-space-1-5,6px) var(--nice-space-0-5,2px);text-align:center;text-overflow:ellipsis}.VectorEditor-module_libraryCell__WyOra:hover{border-color:var(--nice-primary,#56c);color:var(--nice-text-primary)}.VectorEditor-module_layerRow__6dibJ{align-items:center;border-radius:var(--nice-radius-sm,4px);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-1-5,6px)}.VectorEditor-module_layerRow__6dibJ:hover{background:var(--nice-bg-secondary)}.VectorEditor-module_layerRowActive__Dqt0V{background:var(--nice-bg-secondary);outline:1px solid var(--nice-primary,#56c)}.VectorEditor-module_layerRowLocked__ubct0{opacity:.6}.VectorEditor-module_layerRowLocked__ubct0 .VectorEditor-module_layerNameInput__OtX-d{cursor:not-allowed}.VectorEditor-module_layerNameInput__OtX-d{background:transparent;border:none;color:var(--nice-text-primary);flex:1 1 auto;font-size:11px;min-width:0;outline:none}.VectorEditor-module_layerIconBtn__bchqi{background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;font-size:12px;line-height:1;padding:0 var(--nice-space-0-5,2px)}.VectorEditor-module_layerIconBtn__bchqi:hover{color:var(--nice-text-primary)}.VectorEditor-module_panelSection__uteDQ{border-bottom:1px solid var(--nice-border-color);padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px)}.VectorEditor-module_panelTitle__WBUxr{align-items:center;color:var(--nice-text-secondary);display:flex;font-size:10px;justify-content:space-between;letter-spacing:.5px;margin-bottom:var(--nice-space-1,4px);text-transform:uppercase}.VectorEditor-module_panelTitle__WBUxr button{background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;font-size:14px;line-height:1;padding:0 var(--nice-space-0-5,2px)}.VectorEditor-module_panelTitle__WBUxr button:hover{color:var(--nice-text-muted)}.VectorEditor-module_shapeItem__bu2E2{align-items:center;border-radius:var(--nice-radius-sm,3px);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1-5,6px);padding:var(--nice-space-0-75,3px) var(--nice-space-1,4px)}.VectorEditor-module_shapeItem__bu2E2:hover{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04))}.VectorEditor-module_shapeItemActive__E2lK7{background:var(--nice-surface)!important;border:1px solid var(--nice-color-primary-hover)}.VectorEditor-module_shapeIcon__M4j6X{flex-shrink:0;font-size:14px;opacity:.7}.VectorEditor-module_shapeName__2QctO{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.VectorEditor-module_propRow__Alc4S{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-1,4px)}.VectorEditor-module_propLabel__J0lxK{color:var(--nice-text-muted);font-size:10px;min-width:40px}.VectorEditor-module_propInput__3my2d{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);flex:1;font-size:11px;padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px)}.VectorEditor-module_propColorSwatch__JL97Z{border:1px solid var(--nice-overlay-light-15,hsla(0,0%,100%,.15));border-radius:var(--nice-radius-sm,3px);cursor:pointer;height:24px;position:relative;width:24px}.VectorEditor-module_propColorSwatch__JL97Z input{cursor:pointer;height:100%;inset:0;opacity:0;position:absolute;width:100%}.VectorEditor-module_statusBar__jMwan{align-items:center;background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);color:var(--nice-text-muted);display:flex;flex-shrink:0;font-size:10px;gap:var(--nice-space-3,12px);height:20px;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.VectorEditor-module_dialogOverlay__NLiCg{align-items:center;background:var(--nice-overlay-60,rgba(0,0,0,.6));display:flex;inset:0;justify-content:center;position:absolute;z-index:100}.VectorEditor-module_dialog__NDNK2{background:var(--nice-bg-elevated);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-lg,8px);box-shadow:0 8px 32px var(--nice-overlay-50,rgba(0,0,0,.5));max-width:500px;min-width:300px;padding:var(--nice-space-5,20px)}.VectorEditor-module_dialog__NDNK2 h3{color:var(--nice-text-secondary);font-size:14px;margin:0 0 var(--nice-space-3,12px)}.VectorEditor-module_dialog__NDNK2 label{color:var(--nice-text-muted);display:block;font-size:11px;margin:var(--nice-space-2,8px) 0 var(--nice-space-0-5,2px)}.VectorEditor-module_dialog__NDNK2 input,.VectorEditor-module_dialog__NDNK2 select,.VectorEditor-module_dialog__NDNK2 textarea{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-primary);font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-2,8px);width:100%}.VectorEditor-module_dialog__NDNK2 textarea{font-family:monospace;min-height:120px;resize:vertical}.VectorEditor-module_dialogActions__0Sy4X{display:flex;gap:var(--nice-space-2,8px);justify-content:flex-end;margin-top:var(--nice-space-4,16px)}.VectorEditor-module_dialogActions__0Sy4X button{border:none;border-radius:var(--nice-radius-sm,4px);cursor:pointer;font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-4,16px)}.VectorEditor-module_btnPrimary__f9AaS{background:var(--nice-color-primary);color:var(--nice-color-white)}.VectorEditor-module_btnPrimary__f9AaS:hover{background:var(--nice-primary,#67d)}.VectorEditor-module_btnSecondary__wDps2{background:var(--nice-bg-secondary);color:var(--nice-text-muted)}.VectorEditor-module_btnSecondary__wDps2:hover{background:var(--nice-bg-tertiary);color:var(--nice-text-primary)}.VectorEditor-module_handleGroup__sMkQj circle{fill:var(--nice-color-primary);stroke:var(--nice-color-white);stroke-width:1;cursor:pointer}.VectorEditor-module_handleGroup__sMkQj circle:hover{fill:var(--nice-primary-hover,var(--nice-primary))}.PhotoEditor-module_wrapper__jrHYj{background:#1a1a1e;border-radius:var(--nice-radius-xl,12px);color:var(--nice-text-on-primary,#eee);font-family:Segoe UI,sans-serif;font-size:13px;height:100%;max-height:85vh;overflow:hidden;width:100%}.PhotoEditor-module_loadingWrap__QUTon{align-items:center;color:var(--nice-text-muted,#aaa);display:flex;justify-content:center;min-height:400px;width:100%}.PhotoEditor-module_loadingSpin__fGXBK{animation:PhotoEditor-module_nicePhotoEditorSpin__QorqZ 1s linear infinite}@keyframes PhotoEditor-module_nicePhotoEditorSpin__QorqZ{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.PhotoEditor-module_toolbar__RY-Ty{align-items:center;background:var(--nice-bg-secondary,#222226);border-bottom:1px solid var(--nice-border-color,#333);display:flex;justify-content:space-between;padding:var(--nice-space-2,8px) var(--nice-space-3-5,14px)}.PhotoEditor-module_toolbarGroup__PXw0-{display:flex;flex:0 0 auto;gap:6.5px}.PhotoEditor-module_toolbarDivider__o3kFV{background:var(--nice-border-color,#444);margin:0 var(--nice-space-1,4px);width:1px}.PhotoEditor-module_toolbarTitle__P1o18{align-items:center;display:flex;flex:1 1 auto;font-size:14px;font-weight:700;justify-content:center;min-width:0;overflow:hidden;padding:0 var(--nice-space-2,8px);text-overflow:ellipsis;white-space:nowrap}.PhotoEditor-module_leftPanel__DnHLU{background:var(--nice-bg-secondary,#222226);border-right:1px solid var(--nice-border-color,#333);display:flex;flex-direction:column;min-width:280px;overflow:hidden;width:280px}.PhotoEditor-module_tabBar__DZ3MG{border-bottom:1px solid var(--nice-border-color,#333);display:flex;flex-wrap:wrap}.PhotoEditor-module_tabButton__BLi97{align-items:center;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--nice-text-secondary,#888);cursor:pointer;display:flex;flex:1 0 auto;flex-direction:column;font-size:10px;font-weight:600;gap:var(--nice-space-px,1px);min-width:34px;padding:var(--nice-space-2,8px) 0;transition:all .15s}.PhotoEditor-module_tabButtonActive__KlQG0{background:var(--nice-bg-secondary,#2a2a30)}.PhotoEditor-module_tabIcon__-Mq19{font-size:14px}.PhotoEditor-module_panelContent__l5i5t{flex:1;overflow-y:auto;padding:var(--nice-space-2-5,10px) var(--nice-space-3,12px)}.PhotoEditor-module_sectionTitle__tMvCm{font-size:12px;font-weight:600;margin-bottom:var(--nice-space-1-5,6px)}.PhotoEditor-module_sectionTitleMb8__PQ-lV{margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_sectionInfo__bWxW5{color:var(--nice-text-muted,#aaa);font-size:11px}.PhotoEditor-module_pillRow__DGJUb,.PhotoEditor-module_sectionInfoMb__Hk6V-{margin-bottom:var(--nice-space-2-5,10px)}.PhotoEditor-module_pillRow__DGJUb{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px)}.PhotoEditor-module_pillRowMb8__AQrth{margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_pillRowGap3__Y46Vu{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-75,3px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_pill__wTFac{background:transparent;border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-xl,12px);color:var(--nice-text-muted,#aaa);cursor:pointer;font-size:11px;font-weight:600;padding:var(--nice-space-0-75,3px) var(--nice-space-2-5,10px)}.PhotoEditor-module_pillActive__AfdZR{color:var(--nice-text-primary,#fff)}.PhotoEditor-module_pillCrop__Nsisp{border-radius:var(--nice-radius-md,6px);padding:var(--nice-space-1,4px) var(--nice-space-3,12px)}.PhotoEditor-module_pillCropActive__p6csO{color:var(--nice-text-primary,#fff)}.PhotoEditor-module_pillEmoji__I42DJ{border-radius:var(--nice-radius-lg,10px);padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PhotoEditor-module_pillEmojiActive__0-EM7{color:var(--nice-text-primary,#fff)}.PhotoEditor-module_filterGrid__-29PS{display:grid;gap:var(--nice-space-1-5,6px);grid-template-columns:repeat(3,1fr)}.PhotoEditor-module_emojiGrid__whqqK{display:grid;gap:var(--nice-space-0-5,2px);grid-template-columns:repeat(6,1fr);max-height:260px;overflow-y:auto}.PhotoEditor-module_shapeGrid__TawIy{margin-bottom:var(--nice-space-4,16px)}.PhotoEditor-module_frameGrid__R09dd,.PhotoEditor-module_shapeGrid__TawIy{display:grid;gap:var(--nice-space-1,4px);grid-template-columns:repeat(5,1fr)}.PhotoEditor-module_sliderRow__jsWDQ{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_sliderLabel__zOZ49{color:var(--nice-text-muted,#aaa);font-size:11px}.PhotoEditor-module_sliderLabelSelf__EwYKU{align-self:center;margin-right:var(--nice-space-1,4px)}.PhotoEditor-module_sliderValue__qFuTw{font-size:11px;font-weight:600;min-width:28px}.PhotoEditor-module_sliderValueSm__U7FrJ{font-size:10px;min-width:28px}.PhotoEditor-module_adjustColumn__y---T{display:flex;flex-direction:column;gap:var(--nice-space-2,8px)}.PhotoEditor-module_adjustHeader__6s9zV{display:flex;font-size:11px;justify-content:space-between;margin-bottom:var(--nice-space-0-5,2px)}.PhotoEditor-module_adjustIcon__d56rY{text-align:center;width:14px}.PhotoEditor-module_adjustValue__aUUmg{cursor:pointer;font-weight:600;min-width:30px;text-align:right}.PhotoEditor-module_intensitySection__dhe5h{margin-top:var(--nice-space-3,12px);padding:var(--nice-space-2,8px) 0}.PhotoEditor-module_intensityHeader__-KKu6{display:flex;font-size:11px;justify-content:space-between;margin-bottom:var(--nice-space-1,4px)}.PhotoEditor-module_colorInput__xkF1h{border:none;cursor:pointer;height:28px;padding:0;width:28px}.PhotoEditor-module_colorInputLg__W2KrK{border:none;cursor:pointer;height:30px;padding:0;width:32px}.PhotoEditor-module_colorInputDraw__KYcdG{border:none;cursor:pointer;height:28px;padding:0;width:32px}.PhotoEditor-module_overlayToolbar__hfspp{border-bottom:1px solid var(--nice-border-color,#333);display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) 0}.PhotoEditor-module_overlayToolbarLabel__mc4pU{align-self:center;color:var(--nice-text-muted,#aaa);font-size:11px;margin-right:var(--nice-space-1,4px)}.PhotoEditor-module_overlayToolbarBtn__AdTmZ{font-size:11px;padding:var(--nice-space-0-5,2px) var(--nice-space-1-5,6px)}.PhotoEditor-module_overlaySection__IIl4r{border-top:1px solid var(--nice-border-color,#333);margin-top:var(--nice-space-3,12px);padding-top:var(--nice-space-2,8px)}.PhotoEditor-module_overlaySectionTitle__FRx3e{color:var(--nice-text-muted,#aaa);font-size:11px;font-weight:600;margin-bottom:var(--nice-space-1,4px)}.PhotoEditor-module_overlayItem__DGUCN{align-items:center;background:transparent;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary,#ccc);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-0-5,2px);padding:var(--nice-space-0-75,3px) var(--nice-space-1-5,6px)}.PhotoEditor-module_overlayIcon__G0pFk{text-align:center;width:18px}.PhotoEditor-module_overlayName__JVh64{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PhotoEditor-module_overlayDeleteBtn__Ontxv{background:none;border:none;color:var(--nice-danger,#f55);cursor:pointer;font-size:11px;padding:0}.PhotoEditor-module_emojiBtn__jxG9m{background:transparent;border:none;border-radius:var(--nice-radius-md,6px);cursor:pointer;font-size:22px;line-height:1;padding:var(--nice-space-1,4px) 0}.PhotoEditor-module_shapeBtn__xZdSV{font-size:20px}.PhotoEditor-module_frameBtn__coMkZ,.PhotoEditor-module_shapeBtn__xZdSV{background:transparent;border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-md,6px);color:var(--nice-text-secondary,#eee);cursor:pointer;line-height:1;padding:var(--nice-space-1-5,6px) 0}.PhotoEditor-module_frameBtn__coMkZ{font-size:18px}.PhotoEditor-module_removeFrameBtn__oCuua{background:transparent;border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-md,6px);color:var(--nice-danger,#f55);cursor:pointer;font-size:14px;padding:var(--nice-space-1-5,6px) 0}.PhotoEditor-module_textFormatBtn__7Z9RJ{min-width:32px}.PhotoEditor-module_textFormatBtnSm__3ptcG{min-width:28px}.PhotoEditor-module_drawActionBtn__teYz4{flex:1}.PhotoEditor-module_textArea__sBGlB{background:var(--nice-bg-secondary,#2a2a30);border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-md,6px);color:var(--nice-text-secondary,#eee);font-size:13px;margin-bottom:var(--nice-space-2,8px);resize:none}.PhotoEditor-module_textAreaSm__6xZnY{font-size:12px;margin-bottom:0}.PhotoEditor-module_textBtnRow__AcEnd{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_textGapRow__Dq2uz{display:flex;gap:var(--nice-space-1,4px);margin-top:var(--nice-space-1-5,6px)}.PhotoEditor-module_editSelectedSection__bgNEh{border-top:1px solid var(--nice-border-color,#333);margin-top:var(--nice-space-3,12px);padding-top:var(--nice-space-2,8px)}.PhotoEditor-module_editSelectedLabel__u2rmS{color:var(--nice-text-muted,#aaa);font-size:11px;margin-bottom:var(--nice-space-1,4px)}.PhotoEditor-module_shapeColorRow__ip5--{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_shapeColorLabel__nVcbU{align-self:center;color:var(--nice-text-muted,#aaa);font-size:11px;margin-right:var(--nice-space-0-5,2px)}.PhotoEditor-module_shapeColorLabelMl__KiM2d{margin-left:var(--nice-space-1,4px)}.PhotoEditor-module_shapeFillToggle__BXJ8C{font-size:10px;padding:var(--nice-space-0-5,2px) var(--nice-space-1-5,6px)}.PhotoEditor-module_frameColorRow__KRAHz{display:flex;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_frameThicknessWrap__lXCoC{align-items:center;display:flex;flex:1;gap:var(--nice-space-1,4px)}.PhotoEditor-module_frameThicknessValue__SAEuc{font-size:10px}.PhotoEditor-module_drawPreview__WPbiv{display:flex;justify-content:center;margin-bottom:var(--nice-space-3,12px)}.PhotoEditor-module_drawActionRow__CUSWS{display:flex;gap:var(--nice-space-1,4px)}.PhotoEditor-module_quickColorRow__DTy5E{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_quickColorSwatch__ZjgoA{border:1px solid var(--nice-border-color,#555);border-radius:var(--nice-radius-sm,3px);cursor:pointer;height:18px;width:18px}.PhotoEditor-module_transformRow__LKRjS{display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-4,16px)}.PhotoEditor-module_transformZoomRow__h2NlB{align-items:center;display:flex;gap:var(--nice-space-2,8px)}.PhotoEditor-module_transformZoomValue__LXa51{font-size:11px;font-weight:600;min-width:40px}.PhotoEditor-module_transformInfo__zXP9l{background:var(--nice-bg-secondary,#2a2a30);border-radius:var(--nice-radius-lg,8px);color:var(--nice-text-muted,#aaa);font-size:11px;margin-top:var(--nice-space-4,16px);padding:var(--nice-space-2-5,10px)}.PhotoEditor-module_canvasViewport__OMBIL{align-items:center;background:#111115;display:flex;flex:1;justify-content:center;overflow:auto;padding:var(--nice-space-5,20px);position:relative}.PhotoEditor-module_zoomWrap__JjfiJ{max-height:100%;max-width:100%;position:relative;transform-origin:center center;transition:transform .15s ease}.PhotoEditor-module_compareWrap__-J5ku{cursor:ew-resize;display:inline-block;position:relative}.PhotoEditor-module_canvasOriginal__Apf91{max-width:100%}.PhotoEditor-module_canvasEdited__Eroz7,.PhotoEditor-module_canvasOriginal__Apf91{display:block;max-height:60vh;object-fit:contain}.PhotoEditor-module_compareClip__5qG2I{bottom:0;left:0;overflow:hidden;position:absolute;top:0}.PhotoEditor-module_compareSlider__OIIIK{bottom:0;position:absolute;top:0;transform:translateX(-50%);width:3px}.PhotoEditor-module_compareSliderKnob__VohI9{align-items:center;border-radius:var(--nice-radius-full,50%);box-shadow:0 2px 8px var(--nice-overlay-40,rgba(0,0,0,.4));display:flex;height:28px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:28px}.PhotoEditor-module_compareSliderIcon__pXcct{color:var(--nice-text-primary,#fff);font-size:12px}.PhotoEditor-module_compareLabelOriginal__GaBoj{background:var(--nice-overlay-60,rgba(0,0,0,.6));color:var(--nice-text-on-primary,#fff);left:8px}.PhotoEditor-module_compareLabelEdited__Fr836,.PhotoEditor-module_compareLabelOriginal__GaBoj{border-radius:var(--nice-radius-sm,4px);font-size:11px;font-weight:600;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px);position:absolute;top:8px}.PhotoEditor-module_compareLabelEdited__Fr836{color:var(--nice-text-primary,#fff);right:8px}.PhotoEditor-module_regularWrap__8umPV{display:inline-block;position:relative}.PhotoEditor-module_canvasRegular__wxapL{border-radius:var(--nice-radius-md,6px);box-shadow:0 4px 20px var(--nice-overlay-40,rgba(0,0,0,.4));display:block;max-height:60vh;max-width:100%;object-fit:contain}.PhotoEditor-module_cropOverlay__MJk1Y{inset:0;pointer-events:none;position:absolute;z-index:2}.PhotoEditor-module_cropDarkBg__m3axV{background:var(--nice-overlay-55,rgba(0,0,0,.55));inset:0;position:absolute}.PhotoEditor-module_cropGridContainer__NfHdT{inset:0;position:absolute}.PhotoEditor-module_cropSizeLabel__fV2mF{background:var(--nice-overlay-75,rgba(0,0,0,.75));border-radius:var(--nice-radius-sm,3px);bottom:-24px;color:var(--nice-text-on-primary,#fff);font-size:10px;left:50%;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px);position:absolute;transform:translateX(-50%);white-space:nowrap}.PhotoEditor-module_cropInfo__Z1SCE{color:var(--nice-text-muted,#aaa);font-size:11px;margin-bottom:var(--nice-space-2-5,10px)}.PhotoEditor-module_cropAspectLabel__dieL-{font-size:12px;font-weight:600;margin-bottom:var(--nice-space-1-5,6px)}.PhotoEditor-module_cropAspectRow__scRj3{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px)}.PhotoEditor-module_accentBtn__tgaEx{color:var(--nice-text-primary,#fff);font-weight:600;width:100%}.GameAsset2dEditor-module_root__WVJBM{background:var(--nice-bg,#1a1a2e);color:var(--nice-text-secondary,#e0e0e0);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;height:100%;min-height:600px;user-select:none}.GameAsset2dEditor-module_menuBar__WaEaU{align-items:center;background:var(--nice-bg,#16213e);border-bottom:1px solid var(--nice-border-color,#0f3460);display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_menuBar__WaEaU h3{color:var(--nice-warning,#ffd369);font-size:14px;font-weight:600;margin:0}.GameAsset2dEditor-module_menuGroup__EOreB{display:flex;gap:var(--nice-space-0-5,2px)}.GameAsset2dEditor-module_menuBtn__JYWXn{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-muted,#b0b0b0);cursor:pointer;display:flex;font-size:12px;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-2,8px);transition:all .15s}.GameAsset2dEditor-module_menuBtn__JYWXn:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1));color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_menuBtn__JYWXn:disabled{cursor:not-allowed;opacity:.4}.GameAsset2dEditor-module_spacer__fPVeq{flex:1}.GameAsset2dEditor-module_modeTabs__iKh7C{background:var(--nice-bg,#1f2940);border-bottom:1px solid var(--nice-border-color,#0f3460);display:flex;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-1,4px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_modeTab__C12zt{background:transparent;border:none;border-radius:var(--nice-radius-sm,4px) var(--nice-radius-sm,4px) 0 0;color:var(--nice-text-secondary,#8892a8);cursor:pointer;font-size:12px;font-weight:500;padding:var(--nice-space-1-5,6px) var(--nice-space-4,16px);transition:all .15s}.GameAsset2dEditor-module_modeTab__C12zt:hover{background:var(--nice-overlay-light-5,hsla(0,0%,100%,.05));color:var(--nice-text-on-primary,#c0c8d8)}.GameAsset2dEditor-module_modeTab__C12zt.GameAsset2dEditor-module_active__DUroI{background:var(--nice-bg,#1a1a2e);color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_mainArea__jwDUa{display:flex;flex:1;overflow:hidden}.GameAsset2dEditor-module_leftPanel__xxAg5{background:var(--nice-bg,#16213e);border-right:1px solid var(--nice-border-color,#0f3460);display:flex;flex-direction:column;overflow:hidden;width:220px}.GameAsset2dEditor-module_centerArea__xr-Hn{display:flex;flex:1;flex-direction:column;overflow:hidden}.GameAsset2dEditor-module_rightPanel__YoNuc{background:var(--nice-bg,#16213e);border-left:1px solid var(--nice-border-color,#0f3460);display:flex;flex-direction:column;overflow:hidden;width:260px}.GameAsset2dEditor-module_toolbar__hEC9S{align-items:center;background:var(--nice-bg,#1f2940);border-bottom:1px solid var(--nice-border-color,#0f3460);display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_toolGroup__Zbn47{background:var(--nice-overlay-20,rgba(0,0,0,.2));border-radius:var(--nice-radius-sm,4px);display:flex;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-0-5,2px)}.GameAsset2dEditor-module_toolBtn__5U7Rw{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;font-size:14px;height:28px;justify-content:center;transition:all .15s;width:28px}.GameAsset2dEditor-module_toolBtn__5U7Rw:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1));color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_toolBtn__5U7Rw.GameAsset2dEditor-module_active__DUroI{background:var(--nice-color-primary,#0f3460);color:var(--nice-text-on-primary,#ffd369)}.GameAsset2dEditor-module_toolBtn__5U7Rw:disabled{cursor:not-allowed;opacity:.3}.GameAsset2dEditor-module_viewport__vEKEv{background:var(--nice-bg,#0a0a14);flex:1;overflow:hidden;position:relative}.GameAsset2dEditor-module_viewportCanvas__FJ5qA{image-rendering:pixelated;image-rendering:crisp-edges;left:50%;position:absolute;top:50%}.GameAsset2dEditor-module_gridOverlay__K8B97{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.GameAsset2dEditor-module_panelHeader__xm2As{align-items:center;background:var(--nice-bg-tertiary,#0f3460);color:var(--nice-text-secondary,#8892a8);display:flex;font-size:11px;font-weight:600;justify-content:space-between;letter-spacing:.5px;padding:var(--nice-space-2,8px) var(--nice-space-3,12px);text-transform:uppercase}.GameAsset2dEditor-module_panelContent__dvOGq{flex:1;overflow-y:auto;padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_panelSection__RQQDr{margin-bottom:var(--nice-space-4,16px)}.GameAsset2dEditor-module_panelLabel__Ks-Wa{color:var(--nice-text-secondary,#8892a8);display:block;font-size:11px;letter-spacing:.5px;margin-bottom:var(--nice-space-1-5,6px);text-transform:uppercase}.GameAsset2dEditor-module_panelInput__cxNiG{background:var(--nice-bg,#0a0a14);border:1px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary,#e0e0e0);font-size:12px;padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);width:100%}.GameAsset2dEditor-module_panelInput__cxNiG:focus{border-color:var(--nice-warning,#ffd369);outline:none}.GameAsset2dEditor-module_tilePalette__OpzmV{display:grid;gap:var(--nice-space-1,4px);grid-template-columns:repeat(auto-fill,minmax(40px,1fr));padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_tileItem__uWNS9{aspect-ratio:1;background:var(--nice-bg,#0a0a14);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;overflow:hidden;transition:all .15s}.GameAsset2dEditor-module_tileItem__uWNS9:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_tileItem__uWNS9.GameAsset2dEditor-module_selected__216IN{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_tileItem__uWNS9 img{height:100%;image-rendering:pixelated;object-fit:contain;width:100%}.GameAsset2dEditor-module_layersList__anFaG{display:flex;flex-direction:column;gap:var(--nice-space-0-5,2px)}.GameAsset2dEditor-module_layerItem__XSGlu{align-items:center;background:var(--nice-bg,#1f2940);border-radius:var(--nice-radius-sm,4px);cursor:pointer;display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);transition:all .15s}.GameAsset2dEditor-module_layerItem__XSGlu:hover{background:var(--nice-hover-bg,#2a3a5e)}.GameAsset2dEditor-module_layerItem__XSGlu.GameAsset2dEditor-module_selected__216IN{background:var(--nice-selected-bg,#0f3460);border-left:3px solid var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_layerVisibility__RpHjV{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;height:20px;justify-content:center;width:20px}.GameAsset2dEditor-module_layerVisibility__RpHjV:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1))}.GameAsset2dEditor-module_layerVisibility__RpHjV.GameAsset2dEditor-module_hidden__mukOG{opacity:.4}.GameAsset2dEditor-module_layerName__WBxq5{color:var(--nice-text-secondary,#c0c8d8);flex:1;font-size:12px}.GameAsset2dEditor-module_layerOpacity__FpzL-{color:var(--nice-text-secondary,#8892a8);font-size:10px;text-align:right;width:40px}.GameAsset2dEditor-module_framesList__vg1oO{display:grid;gap:var(--nice-space-2,8px);grid-template-columns:repeat(auto-fill,minmax(60px,1fr));padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_frameItem__fkEfb{aspect-ratio:1;background:var(--nice-bg,#0a0a14);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;overflow:hidden;position:relative;transition:all .15s}.GameAsset2dEditor-module_frameItem__fkEfb:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_frameItem__fkEfb.GameAsset2dEditor-module_selected__216IN{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_frameItem__fkEfb canvas{height:100%;image-rendering:pixelated;object-fit:contain;width:100%}.GameAsset2dEditor-module_frameLabel__5IGW8{background:var(--nice-overlay-70,rgba(0,0,0,.7));bottom:0;color:var(--nice-text-muted,#b0b0b0);font-size:9px;left:0;padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px);position:absolute;right:0;text-align:center}.GameAsset2dEditor-module_timeline__dPJk6{background:var(--nice-bg,#16213e);border-top:1px solid var(--nice-border-color,#0f3460);padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_timelineTrack__mr20w{background:var(--nice-bg,#0a0a14);border-radius:var(--nice-radius-sm,4px);display:flex;gap:var(--nice-space-1,4px);overflow-x:auto;padding:var(--nice-space-1,4px)}.GameAsset2dEditor-module_timelineFrame__AQyGe{background:var(--nice-bg,#1f2940);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;flex-shrink:0;height:48px;overflow:hidden;width:48px}.GameAsset2dEditor-module_timelineFrame__AQyGe:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_timelineFrame__AQyGe.GameAsset2dEditor-module_current__3sAfL{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_stateGraph__qAWlU{background:var(--nice-bg,#0a0a14);flex:1;overflow:hidden;position:relative}.GameAsset2dEditor-module_stateNode__W9Z-g{background:var(--nice-bg,#1f2940);border:2px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-lg,8px);cursor:move;min-width:120px;padding:var(--nice-space-2,8px) var(--nice-space-3,12px);position:absolute;transition:border-color .15s}.GameAsset2dEditor-module_stateNode__W9Z-g:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_stateNode__W9Z-g.GameAsset2dEditor-module_selected__216IN{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_stateNode__W9Z-g.GameAsset2dEditor-module_entry__cmA9n{border-color:var(--nice-success-light,#4ade80)}.GameAsset2dEditor-module_stateNodeName__TK5vs{color:var(--nice-text-secondary,#e0e0e0);font-size:12px;font-weight:500;text-align:center}.GameAsset2dEditor-module_stateNodeAnim__VGwnV{color:var(--nice-text-secondary,#8892a8);font-size:10px;margin-top:var(--nice-space-1,4px);text-align:center}.GameAsset2dEditor-module_transition__FBbno{stroke:var(--nice-text-secondary,#4a5a7e);stroke-width:2;fill:none;marker-end:url(#arrowhead)}.GameAsset2dEditor-module_transition__FBbno:hover{stroke:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_effectsList__vHq4I{display:flex;flex-direction:column;gap:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectItem__6-1li{background:var(--nice-bg,#1f2940);border-radius:var(--nice-radius-md,6px);overflow:hidden}.GameAsset2dEditor-module_effectHeader__cgVN-{align-items:center;cursor:pointer;display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectToggle__lKE36{background:var(--nice-bg,#0a0a14);border:1px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,3px);cursor:pointer;height:18px;width:18px}.GameAsset2dEditor-module_effectToggle__lKE36.GameAsset2dEditor-module_enabled__wgDzp{background:var(--nice-warning,#ffd369);border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_effectName__NQCWj{color:var(--nice-text-secondary,#c0c8d8);flex:1;font-size:12px}.GameAsset2dEditor-module_effectRemove__TSSdI{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;height:20px;justify-content:center;width:20px}.GameAsset2dEditor-module_effectRemove__TSSdI:hover{background:var(--nice-danger,#ef4444);color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_effectParams__UqTBd{background:var(--nice-overlay-20,rgba(0,0,0,.2));padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectParam__hEsVY{align-items:center;display:flex;gap:var(--nice-space-2,8px);margin-bottom:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectParam__hEsVY:last-child{margin-bottom:0}.GameAsset2dEditor-module_effectParamLabel__u0Qoc{color:var(--nice-text-secondary,#8892a8);flex:0 0 80px;font-size:11px}.GameAsset2dEditor-module_effectParamInput__aqxdv{background:var(--nice-bg,#0a0a14);border:1px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#e0e0e0);flex:1;font-size:11px;height:24px;padding:0 var(--nice-space-2,8px)}.GameAsset2dEditor-module_statusBar__eOrNe{align-items:center;background:var(--nice-bg-tertiary,#0f3460);color:var(--nice-text-secondary,#8892a8);display:flex;font-size:11px;gap:var(--nice-space-4,16px);padding:var(--nice-space-1,4px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_statusItem__kKLHF,.GameAsset2dEditor-module_zoomControl__4YD9G{align-items:center;display:flex;gap:var(--nice-space-1,4px)}.GameAsset2dEditor-module_zoomControl__4YD9G{margin-left:auto}.GameAsset2dEditor-module_zoomBtn__hxYik{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;height:20px;justify-content:center;width:20px}.GameAsset2dEditor-module_zoomBtn__hxYik:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1));color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_dialogOverlay__dZYwO{align-items:center;background:var(--nice-overlay-60,rgba(0,0,0,.6));bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.GameAsset2dEditor-module_dialog__mfLFL{background:var(--nice-bg,#16213e);border-radius:var(--nice-radius-lg,8px);box-shadow:0 8px 32px var(--nice-overlay-40,rgba(0,0,0,.4));max-width:500px;min-width:300px;padding:var(--nice-space-6,24px)}.GameAsset2dEditor-module_dialog__mfLFL h3{color:var(--nice-warning,#ffd369);font-size:16px;margin:0 0 var(--nice-space-4,16px)}.GameAsset2dEditor-module_dialogActions__vhDXe{display:flex;gap:var(--nice-space-2,8px);justify-content:flex-end;margin-top:var(--nice-space-5,20px)}.GameAsset2dEditor-module_btnPrimary__Gzc25{background:var(--nice-warning,#ffd369);border:none;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-on-primary,#1a1a2e);cursor:pointer;font-size:12px;font-weight:600;padding:var(--nice-space-2,8px) var(--nice-space-4,16px);transition:all .15s}.GameAsset2dEditor-module_btnPrimary__Gzc25:hover{background:#ffe599}.GameAsset2dEditor-module_btnSecondary__G5nK5{background:transparent;border:1px solid var(--nice-border-color,#4a5a7e);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary,#c0c8d8);cursor:pointer;font-size:12px;padding:var(--nice-space-2,8px) var(--nice-space-4,16px);transition:all .15s}.GameAsset2dEditor-module_btnSecondary__G5nK5:hover{background:var(--nice-overlay-light-5,hsla(0,0%,100%,.05));border-color:#6a7a9e}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar{width:6px}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar-track{background:var(--nice-bg,#0a0a14)}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar-thumb{background:var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,3px)}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar-thumb:hover{background:var(--nice-text-secondary,#4a5a7e)}.GameAsset2dEditor-module_dropZone__Z7sYz{border:2px dashed var(--nice-border-color,#4a5a7e);border-radius:var(--nice-radius-lg,8px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;padding:var(--nice-space-6,24px);text-align:center;transition:all .15s}.GameAsset2dEditor-module_dropZone__Z7sYz:hover{border-color:var(--nice-warning,#ffd369);color:var(--nice-text-secondary,#c0c8d8)}.GameAsset2dEditor-module_dropZone__Z7sYz.GameAsset2dEditor-module_active__DUroI{background:rgba(255,211,105,.1);border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_emptyState__3wryk{align-items:center;color:var(--nice-text-secondary,#8892a8);display:flex;flex-direction:column;justify-content:center;padding:var(--nice-space-8,32px);text-align:center}.GameAsset2dEditor-module_emptyState__3wryk svg{height:48px;margin-bottom:var(--nice-space-3,12px);opacity:.5;width:48px}.GameAsset2dEditor-module_emptyStateText__Q5V1a{font-size:12px;margin-bottom:var(--nice-space-3,12px)}
1
+ .PixelEditor-module_root__3gidG{background:var(--nice-bg-primary);color:var(--nice-text-primary);display:flex;flex-direction:column;font-family:Segoe UI,Consolas,monospace;font-size:12px;height:100%;overflow:hidden;user-select:none}.PixelEditor-module_menuBar__8JFld{align-items:center;background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);display:flex;flex-shrink:0;gap:0;height:28px;padding:0 var(--nice-space-1,4px)}.PixelEditor-module_menuBtn__w-GQC{background:none;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary);cursor:pointer;font-size:11px;padding:var(--nice-space-1,4px) var(--nice-space-2-5,10px)}.PixelEditor-module_menuBtn__w-GQC:hover{background:var(--nice-bg-secondary);color:var(--nice-color-white)}.PixelEditor-module_menuSep__pNZsR{background:var(--nice-bg-secondary);height:16px;margin:0 var(--nice-space-1,4px);width:1px}.PixelEditor-module_menuBar__8JFld .nice-menu__btn{color:var(--nice-text-secondary);font-size:11px}.PixelEditor-module_menuBar__8JFld .nice-menu__btn:hover{background:var(--nice-bg-secondary);color:var(--nice-color-white)}.PixelEditor-module_toolbar__paCGq{background:var(--nice-bg-elevated);border-right:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;gap:var(--nice-space-0-5,2px);overflow-y:auto;padding:var(--nice-space-1,4px) var(--nice-space-0-5,2px);width:38px}.PixelEditor-module_toolBtn__wD1Kj{align-items:center;background:none;border:1px solid transparent;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:all .1s;width:32px}.PixelEditor-module_toolBtn__wD1Kj:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.PixelEditor-module_toolBtnActive__R51U0{border-color:var(--nice-color-white,#fff)!important;box-shadow:inset 2px 0 0 0 var(--nice-color-white,#fff),0 0 0 1px var(--nice-color-primary,#4f8cff)}.PixelEditor-module_toolBtnActive__R51U0,.PixelEditor-module_toolBtnActive__R51U0:hover{background:var(--nice-color-primary,#4f8cff)!important;color:var(--nice-color-white,#fff)!important}.PixelEditor-module_mainArea__Z0x6l{display:flex;flex:1;min-height:0}.PixelEditor-module_canvasContainer__8z2AY{background:var(--nice-bg-inset);cursor:crosshair;flex:1;height:100%;min-height:0;overflow:hidden;position:relative}.PixelEditor-module_canvasContainer__8z2AY canvas{image-rendering:pixelated;position:absolute}.PixelEditor-module_rightPanel__ZjrCh{background:var(--nice-bg-primary);border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:220px}.PixelEditor-module_panelSection__3l225{border-bottom:1px solid var(--nice-border-color)}.PixelEditor-module_rightPanel__ZjrCh .nice-collapse__trigger{align-items:center;background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;display:flex;font-size:10px;gap:var(--nice-space-1-5,6px);letter-spacing:.5px;padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);text-align:left;text-transform:uppercase;width:100%}.PixelEditor-module_rightPanel__ZjrCh .nice-collapse__trigger:hover{color:var(--nice-text-secondary)}.PixelEditor-module_rightPanel__ZjrCh .nice-collapse__panel{padding:0 var(--nice-space-2,8px) var(--nice-space-1-5,6px)}.PixelEditor-module_collapseChevron__Yuvz6{display:inline-flex;transition:transform .15s ease}.nice-collapse--expanded .PixelEditor-module_collapseChevron__Yuvz6{transform:rotate(90deg)}.PixelEditor-module_layerActions__pZH1f{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px);margin-bottom:var(--nice-space-1,4px)}.PixelEditor-module_panelTitle__vYyeO{align-items:center;color:var(--nice-text-secondary);display:flex;font-size:10px;justify-content:space-between;letter-spacing:.5px;margin-bottom:var(--nice-space-1,4px);text-transform:uppercase}.PixelEditor-module_panelTitle__vYyeO button{background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;font-size:14px;line-height:1;padding:0 var(--nice-space-0-5,2px)}.PixelEditor-module_panelTitle__vYyeO button:hover{color:var(--nice-text-muted)}.PixelEditor-module_layerItem__J-gtn{align-items:center;border-radius:var(--nice-radius-sm,3px);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1,4px);padding:var(--nice-space-0-75,3px) var(--nice-space-1,4px)}.PixelEditor-module_layerItem__J-gtn:hover{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04))}.PixelEditor-module_layerItemActive__yPt29{background:var(--nice-surface)!important;border:1px solid var(--nice-color-primary-hover)}.PixelEditor-module_layerVis__Uj7n2{align-items:center;cursor:pointer;display:flex;flex-shrink:0;font-size:10px;height:16px;justify-content:center;opacity:.6;width:16px}.PixelEditor-module_layerVis__Uj7n2:hover{opacity:1}.PixelEditor-module_layerName__HovwJ{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PixelEditor-module_layerOpacity__qmWvu{color:var(--nice-text-muted);font-size:10px;text-align:right;width:36px}.PixelEditor-module_paletteGrid__knY-n{display:grid;gap:var(--nice-space-0-5,2px);grid-template-columns:repeat(8,1fr)}.PixelEditor-module_paletteSwatch__MUbha{aspect-ratio:1;border:1px solid var(--nice-overlay-light-8,hsla(0,0%,100%,.08));border-radius:var(--nice-radius-sm,2px);cursor:pointer;transition:transform .1s}.PixelEditor-module_paletteSwatch__MUbha:hover{transform:scale(1.15);z-index:1}.PixelEditor-module_paletteSwatchActive__wDR4T{border-color:var(--nice-color-white)!important;box-shadow:0 0 0 1px var(--nice-color-primary)}.PixelEditor-module_colorPickers__sQlBN{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-top:var(--nice-space-1-5,6px)}.PixelEditor-module_colorSample__GN7Rd{border:2px solid var(--nice-overlay-light-20,hsla(0,0%,100%,.2));border-radius:var(--nice-radius-sm,4px);height:28px;width:28px}.PixelEditor-module_bottomPanel__rviLF{background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;height:80px}.PixelEditor-module_timelineControls__Laroq{align-items:center;border-bottom:1px solid var(--nice-bg,#224);display:flex;font-size:11px;gap:var(--nice-space-1-5,6px);padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PixelEditor-module_timelineControls__Laroq button{background:var(--nice-bg-secondary);border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-muted);cursor:pointer;font-size:11px;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PixelEditor-module_timelineControls__Laroq button:hover{background:var(--nice-bg-tertiary);color:var(--nice-color-white)}.PixelEditor-module_timelineControls__Laroq label{color:var(--nice-text-muted)}.PixelEditor-module_timelineControls__Laroq input[type=number]{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);font-size:11px;padding:var(--nice-space-px,1px) var(--nice-space-1,4px);text-align:center;width:40px}.PixelEditor-module_timelineControls__Laroq input[type=checkbox]{accent-color:var(--nice-color-primary)}.PixelEditor-module_timelineFrames__dw06F{align-items:stretch;display:flex;flex:1;gap:var(--nice-space-0-5,2px);overflow-x:auto;padding:var(--nice-space-1,4px) var(--nice-space-2,8px)}.PixelEditor-module_frameThumb__2E9mG{align-items:center;background:var(--nice-bg-primary);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-width:44px;overflow:hidden;position:relative;width:44px}.PixelEditor-module_frameThumb__2E9mG canvas{height:36px;image-rendering:pixelated;object-fit:contain;width:36px}.PixelEditor-module_frameThumb__2E9mG:hover{border-color:var(--nice-border-color)}.PixelEditor-module_frameThumbActive__Z0eK4{background:var(--nice-surface);border-color:var(--nice-color-primary)!important}.PixelEditor-module_frameNum__PoGQC{bottom:1px;color:var(--nice-text-muted);font-size:8px;position:absolute;right:3px}.PixelEditor-module_statusBar__QnphD{align-items:center;background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);color:var(--nice-text-muted);display:flex;flex-shrink:0;font-size:10px;gap:var(--nice-space-3,12px);height:20px;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PixelEditor-module_dialogOverlay__IgyFy{align-items:center;background:var(--nice-overlay-60,rgba(0,0,0,.6));display:flex;inset:0;justify-content:center;position:absolute;z-index:100}.PixelEditor-module_dialog__OnkAG{background:var(--nice-bg-elevated);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-lg,8px);box-shadow:0 8px 32px var(--nice-overlay-50,rgba(0,0,0,.5));min-width:300px;padding:var(--nice-space-5,20px)}.PixelEditor-module_dialog__OnkAG h3{color:var(--nice-text-secondary);font-size:14px;margin:0 0 var(--nice-space-3,12px)}.PixelEditor-module_dialog__OnkAG label{color:var(--nice-text-muted);display:block;font-size:11px;margin:var(--nice-space-2,8px) 0 var(--nice-space-0-5,2px)}.PixelEditor-module_dialog__OnkAG input,.PixelEditor-module_dialog__OnkAG select{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-primary);font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-2,8px);width:100%}.PixelEditor-module_dialogActions__fOa7a{display:flex;gap:var(--nice-space-2,8px);justify-content:flex-end;margin-top:var(--nice-space-4,16px)}.PixelEditor-module_dialogActions__fOa7a button{border:none;border-radius:var(--nice-radius-sm,4px);cursor:pointer;font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-4,16px)}.PixelEditor-module_btnPrimary__FYlTy{background:var(--nice-color-primary);color:var(--nice-color-white)}.PixelEditor-module_btnPrimary__FYlTy:hover{background:var(--nice-primary,#67d)}.PixelEditor-module_btnSecondary__qLfyJ{background:var(--nice-bg-secondary);color:var(--nice-text-muted)}.PixelEditor-module_btnSecondary__qLfyJ:hover{background:var(--nice-bg-tertiary);color:var(--nice-text-primary)}.PixelEditor-module_brushSlider__UxQ38{align-items:center;border-bottom:1px solid var(--nice-border-color);display:flex;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-2,8px)}.PixelEditor-module_brushSlider__UxQ38 label{color:var(--nice-text-muted);font-size:10px}.PixelEditor-module_brushSlider__UxQ38 input[type=range]{accent-color:var(--nice-color-primary);flex:1;height:4px}.PixelEditor-module_brushSlider__UxQ38 span{color:var(--nice-text-muted);font-size:10px;min-width:16px;text-align:center}.PixelEditor-module_toolSep__YIu-E{background:var(--nice-bg-secondary);height:1px;margin:var(--nice-space-1,4px) var(--nice-space-0-5,2px);width:28px}.PixelEditor-module_toolGroup__xA2lN{display:flex;flex-direction:column;gap:var(--nice-space-px,1px);padding:var(--nice-space-0-5,2px) 0}.PixelEditor-module_miniBtn__tg5N0{align-items:center;background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04));border:1px solid transparent;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:10px;height:20px;justify-content:center;transition:all .1s;width:32px}.PixelEditor-module_miniBtn__tg5N0:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.PixelEditor-module_miniBtnActive__gpveu{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-text-primary)!important}.PixelEditor-module_colorSwatches__jFuRX{align-items:center;border-top:1px solid var(--nice-border-color);display:flex;flex-direction:column;gap:var(--nice-space-1,4px);margin-top:var(--nice-space-1,4px);padding:var(--nice-space-1-5,6px) 0}.PixelEditor-module_brushShapes__2bBfl{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-0-5,2px) 0}.PixelEditor-module_pressureToggles__AITuh{display:flex;flex-direction:column;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-1,4px) 0}.PixelEditor-module_checkLabel__-d-TA{align-items:center;color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:10px;gap:var(--nice-space-1,4px)}.PixelEditor-module_checkLabel__-d-TA input[type=checkbox]{accent-color:var(--nice-color-primary);height:12px;width:12px}.PixelEditor-module_hsvPicker__0ERIh{display:flex;flex-direction:column;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) 0}.PixelEditor-module_hsvRow__M3fhN{align-items:center;display:flex;gap:var(--nice-space-1,4px)}.PixelEditor-module_hsvLabel__O2MkX{color:var(--nice-text-muted);font-size:9px;min-width:16px;text-align:right}.PixelEditor-module_hsvSlider__KKMMJ{accent-color:var(--nice-color-primary);cursor:pointer;flex:1;height:6px;min-width:0}.PixelEditor-module_hsvVal__MgQ8W{color:var(--nice-text-muted);font-size:9px;min-width:28px;text-align:right}.PixelEditor-module_hsvNumInput__Wn4kG{text-align:center;width:36px}.PixelEditor-module_hsvHexInput__MU5Ms,.PixelEditor-module_hsvNumInput__Wn4kG{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);font-size:10px;padding:var(--nice-space-px,1px) var(--nice-space-1,4px)}.PixelEditor-module_hsvHexInput__MU5Ms{flex:1}.PixelEditor-module_layerLock__xeWnc{align-items:center;cursor:pointer;display:flex;flex-shrink:0;font-size:10px;height:16px;justify-content:center;opacity:.6;width:16px}.PixelEditor-module_layerLock__xeWnc:hover{opacity:1}.PixelEditor-module_layerNameInput__ZiOKv{background:var(--nice-bg-canvas);border:1px solid var(--nice-color-primary);border-radius:var(--nice-radius-sm,2px);color:var(--nice-text-primary);flex:1;font-size:11px;min-width:0;outline:none;padding:0 var(--nice-space-1,4px)}.PixelEditor-module_layerControls__MrpXo{align-items:center;border-top:1px solid var(--nice-overlay-light-5,hsla(0,0%,100%,.05));display:flex;gap:var(--nice-space-1,4px);margin-top:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-1,4px) var(--nice-space-0-5,2px)}.PixelEditor-module_blendSelect__QCwns{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary);cursor:pointer;flex:1;font-size:10px;padding:var(--nice-space-px,1px) var(--nice-space-1,4px)}.PixelEditor-module_layerOpSlider__Vw-qs{accent-color:var(--nice-color-primary);cursor:pointer;height:4px;width:60px}.PixelEditor-module_genPanel__99Md8{display:flex;flex-direction:column;height:600px;max-height:70vh;overflow:hidden;width:100%}.PixelEditor-module_genTabs__No5Za{background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);display:flex;flex-shrink:0}.PixelEditor-module_genTabBtn__e2VhB{background:none;border:none;border-bottom:2px solid transparent;color:var(--nice-text-secondary);cursor:pointer;flex:1;font-size:11px;padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);transition:all .15s}.PixelEditor-module_genTabBtn__e2VhB:hover{background:var(--nice-bg-elevated);color:var(--nice-text-muted)}.PixelEditor-module_genTabBtnActive__Rt3jQ{background:var(--nice-bg-elevated)!important;border-bottom-color:var(--nice-color-primary)!important;color:var(--nice-text-primary)!important}.PixelEditor-module_genBody__MuiQy{display:flex;flex:1;min-height:0;overflow:hidden}.PixelEditor-module_genLeft__JdEw6{border-right:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:200px}.PixelEditor-module_genCenter__c5X0S{align-items:center;display:flex;flex:1;flex-direction:column;gap:var(--nice-space-2,8px);overflow-y:auto;padding:var(--nice-space-2,8px)}.PixelEditor-module_genRight__qFz11{border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;width:200px}.PixelEditor-module_genPreviewWrap__360F-{align-items:center;background:var(--nice-bg-inset);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-md,6px);display:flex;flex:1;justify-content:center;min-height:120px;overflow:hidden;width:100%}.PixelEditor-module_genPreviewCanvas__75Lw2{image-rendering:pixelated;max-height:100%;max-width:100%;min-height:64px;min-width:64px;object-fit:contain}.PixelEditor-module_genDirGrid__xjEp7{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px);justify-content:center}.PixelEditor-module_genRow__awCw9{align-items:center;display:flex;gap:var(--nice-space-1,4px);width:100%}.PixelEditor-module_genPresetGrid__f9XK6{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px)}.PixelEditor-module_genPresetBtn__5C2We{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04));border:1px solid transparent;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-muted);cursor:pointer;font-size:9px;padding:var(--nice-space-0-75,3px) var(--nice-space-1-5,6px);transition:all .1s}.PixelEditor-module_genPresetBtn__5C2We:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.PixelEditor-module_genPresetBtnActive__WAGew{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-text-primary)!important}.PixelEditor-module_genPartGrid__l17oc{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-5,2px)}.PixelEditor-module_genPartBtn__5OO82{min-width:32px;padding:0 var(--nice-space-1-5,6px);white-space:nowrap;width:auto}.PixelEditor-module_genColorSwatches__acI6q{display:flex;gap:var(--nice-space-0-5,2px);margin-top:var(--nice-space-0-5,2px)}.PixelEditor-module_genColorSwatch__JE8BO{border:1px solid var(--nice-overlay-light-10,hsla(0,0%,100%,.1));border-radius:var(--nice-radius-sm,2px);height:16px;width:16px}.PixelEditor-module_genAssemblyItem__zNL2P{align-items:center;border-radius:var(--nice-radius-sm,3px);display:flex;font-size:10px;gap:var(--nice-space-1,4px);padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px)}.PixelEditor-module_genAssemblyItem__zNL2P:hover{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04))}.PixelEditor-module_genAssemblyName__GU-kr{color:var(--nice-text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PixelEditor-module_genFooter__WkyJp{border-top:1px solid var(--nice-border-color);display:flex;flex-shrink:0;gap:var(--nice-space-2,8px);justify-content:flex-end;padding:var(--nice-space-2-5,10px) var(--nice-space-4,16px)}.PixelEditor-module_btnIcon__O59l9{background:none;border:none;color:var(--nice-text-muted);cursor:pointer;font-size:14px;line-height:1;padding:var(--nice-space-0-5,2px)}.PixelEditor-module_btnIcon__O59l9:hover{color:var(--nice-text-secondary)}.PixelEditor-module_propSelect__4P0Qi{flex:1}.PixelEditor-module_propInput__Q-kr2,.PixelEditor-module_propSelect__4P0Qi{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);font-size:11px;min-width:0;padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px)}.VectorEditor-module_root__rtRWo{background:var(--nice-bg-primary);color:var(--nice-text-primary);display:flex;flex-direction:column;font-family:Segoe UI,Consolas,monospace;font-size:12px;height:100%;overflow:hidden;user-select:none}.VectorEditor-module_menuBar__o25XM{align-items:center;background:var(--nice-bg-canvas);border-bottom:1px solid var(--nice-border-color);display:flex;flex-shrink:0;gap:0;height:28px;padding:0 var(--nice-space-1,4px)}.VectorEditor-module_menuBtn__aP4vp{background:none;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary);cursor:pointer;font-size:11px;padding:var(--nice-space-1,4px) var(--nice-space-2-5,10px)}.VectorEditor-module_menuBtn__aP4vp:hover{background:var(--nice-bg-secondary);color:var(--nice-text-primary)}.VectorEditor-module_menuBtn__aP4vp.VectorEditor-module_menuBtnActive__G4hDv,.VectorEditor-module_menuBtn__aP4vp.VectorEditor-module_menuBtnActive__G4hDv:hover{background:var(--nice-color-primary);color:var(--nice-text-on-primary,#fff)}.VectorEditor-module_menuSep__3-kTv{background:var(--nice-bg-secondary);height:16px;margin:0 var(--nice-space-1,4px);width:1px}.VectorEditor-module_menuLabel__Bsm0e{align-items:center;color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:10px;gap:var(--nice-space-0-5,2px);padding:0 var(--nice-space-1,4px)}.VectorEditor-module_toolbar__fakYL{background:var(--nice-bg-elevated);border-right:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-1,4px) var(--nice-space-0-5,2px);width:38px}.VectorEditor-module_toolBtn__Zh7D3{align-items:center;background:none;border:1px solid transparent;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-muted);cursor:pointer;display:flex;font-size:16px;height:32px;justify-content:center;transition:all .1s;width:32px}.VectorEditor-module_toolBtn__Zh7D3:hover{background:var(--nice-bg-secondary);color:var(--nice-text-secondary)}.VectorEditor-module_toolBtnActive__0xZlr{background:var(--nice-bg-tertiary)!important;border-color:var(--nice-color-primary)!important;color:var(--nice-color-white)!important}.VectorEditor-module_mainArea__3o89F{display:flex;flex:1;min-height:0}.VectorEditor-module_canvasContainer__hOUAx{background:var(--nice-bg-inset);flex:1;height:100%;min-height:0;overflow:hidden;position:relative}.VectorEditor-module_canvasContainer__hOUAx svg{height:100%;inset:0;position:absolute;width:100%}.VectorEditor-module_rightPanel__3hzcS{background:var(--nice-bg-primary);border-left:1px solid var(--nice-border-color);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;width:320px}.VectorEditor-module_rightPanelTabBody__QrkgO{flex:1 1 auto;min-height:0;overflow-y:auto}.VectorEditor-module_libraryGrid__utboD{display:grid;gap:var(--nice-space-1-5,6px);grid-template-columns:repeat(4,1fr);padding:var(--nice-space-1-5,6px)}.VectorEditor-module_libraryCell__WyOra{align-items:center;background:transparent;border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary);cursor:pointer;display:flex;flex-direction:column;font-size:9px;gap:var(--nice-space-0-5,2px);overflow:hidden;padding:var(--nice-space-1-5,6px) var(--nice-space-0-5,2px);text-align:center;text-overflow:ellipsis}.VectorEditor-module_libraryCell__WyOra:hover{border-color:var(--nice-primary,#56c);color:var(--nice-text-primary)}.VectorEditor-module_layerRow__6dibJ{align-items:center;border-radius:var(--nice-radius-sm,4px);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-1-5,6px)}.VectorEditor-module_layerRow__6dibJ:hover{background:var(--nice-bg-secondary)}.VectorEditor-module_layerRowActive__Dqt0V{background:var(--nice-bg-secondary);outline:1px solid var(--nice-primary,#56c)}.VectorEditor-module_layerRowLocked__ubct0{opacity:.6}.VectorEditor-module_layerRowLocked__ubct0 .VectorEditor-module_layerNameInput__OtX-d{cursor:not-allowed}.VectorEditor-module_layerNameInput__OtX-d{background:transparent;border:none;color:var(--nice-text-primary);flex:1 1 auto;font-size:11px;min-width:0;outline:none}.VectorEditor-module_layerIconBtn__bchqi{background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;font-size:12px;line-height:1;padding:0 var(--nice-space-0-5,2px)}.VectorEditor-module_layerIconBtn__bchqi:hover{color:var(--nice-text-primary)}.VectorEditor-module_panelSection__uteDQ{border-bottom:1px solid var(--nice-border-color);padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px)}.VectorEditor-module_panelTitle__WBUxr{align-items:center;color:var(--nice-text-secondary);display:flex;font-size:10px;justify-content:space-between;letter-spacing:.5px;margin-bottom:var(--nice-space-1,4px);text-transform:uppercase}.VectorEditor-module_panelTitle__WBUxr button{background:none;border:none;color:var(--nice-text-secondary);cursor:pointer;font-size:14px;line-height:1;padding:0 var(--nice-space-0-5,2px)}.VectorEditor-module_panelTitle__WBUxr button:hover{color:var(--nice-text-muted)}.VectorEditor-module_shapeItem__bu2E2{align-items:center;border-radius:var(--nice-radius-sm,3px);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1-5,6px);padding:var(--nice-space-0-75,3px) var(--nice-space-1,4px)}.VectorEditor-module_shapeItem__bu2E2:hover{background:var(--nice-overlay-light-4,hsla(0,0%,100%,.04))}.VectorEditor-module_shapeItemActive__E2lK7{background:var(--nice-surface)!important;border:1px solid var(--nice-color-primary-hover)}.VectorEditor-module_shapeIcon__M4j6X{flex-shrink:0;font-size:14px;opacity:.7}.VectorEditor-module_shapeName__2QctO{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.VectorEditor-module_propRow__Alc4S{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-1,4px)}.VectorEditor-module_propLabel__J0lxK{color:var(--nice-text-muted);font-size:10px;min-width:40px}.VectorEditor-module_propInput__3my2d{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-primary);flex:1;font-size:11px;padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px)}.VectorEditor-module_propColorSwatch__JL97Z{border:1px solid var(--nice-overlay-light-15,hsla(0,0%,100%,.15));border-radius:var(--nice-radius-sm,3px);cursor:pointer;height:24px;position:relative;width:24px}.VectorEditor-module_propColorSwatch__JL97Z input{cursor:pointer;height:100%;inset:0;opacity:0;position:absolute;width:100%}.VectorEditor-module_statusBar__jMwan{align-items:center;background:var(--nice-bg-canvas);border-top:1px solid var(--nice-border-color);color:var(--nice-text-muted);display:flex;flex-shrink:0;font-size:10px;gap:var(--nice-space-3,12px);height:20px;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.VectorEditor-module_dialogOverlay__NLiCg{align-items:center;background:var(--nice-overlay-60,rgba(0,0,0,.6));display:flex;inset:0;justify-content:center;position:absolute;z-index:100}.VectorEditor-module_dialog__NDNK2{background:var(--nice-bg-elevated);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-lg,8px);box-shadow:0 8px 32px var(--nice-overlay-50,rgba(0,0,0,.5));max-width:500px;min-width:300px;padding:var(--nice-space-5,20px)}.VectorEditor-module_dialog__NDNK2 h3{color:var(--nice-text-secondary);font-size:14px;margin:0 0 var(--nice-space-3,12px)}.VectorEditor-module_dialog__NDNK2 label{color:var(--nice-text-muted);display:block;font-size:11px;margin:var(--nice-space-2,8px) 0 var(--nice-space-0-5,2px)}.VectorEditor-module_dialog__NDNK2 input,.VectorEditor-module_dialog__NDNK2 select,.VectorEditor-module_dialog__NDNK2 textarea{background:var(--nice-bg-canvas);border:1px solid var(--nice-border-color);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-primary);font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-2,8px);width:100%}.VectorEditor-module_dialog__NDNK2 textarea{font-family:monospace;min-height:120px;resize:vertical}.VectorEditor-module_dialogActions__0Sy4X{display:flex;gap:var(--nice-space-2,8px);justify-content:flex-end;margin-top:var(--nice-space-4,16px)}.VectorEditor-module_dialogActions__0Sy4X button{border:none;border-radius:var(--nice-radius-sm,4px);cursor:pointer;font-size:12px;padding:var(--nice-space-1,4px) var(--nice-space-4,16px)}.VectorEditor-module_btnPrimary__f9AaS{background:var(--nice-color-primary);color:var(--nice-color-white)}.VectorEditor-module_btnPrimary__f9AaS:hover{background:var(--nice-primary,#67d)}.VectorEditor-module_btnSecondary__wDps2{background:var(--nice-bg-secondary);color:var(--nice-text-muted)}.VectorEditor-module_btnSecondary__wDps2:hover{background:var(--nice-bg-tertiary);color:var(--nice-text-primary)}.VectorEditor-module_handleGroup__sMkQj circle{fill:var(--nice-color-primary);stroke:var(--nice-color-white);stroke-width:1;cursor:pointer}.VectorEditor-module_handleGroup__sMkQj circle:hover{fill:var(--nice-primary-hover,var(--nice-primary))}.PhotoEditor-module_wrapper__jrHYj{background:#1a1a1e;border-radius:var(--nice-radius-xl,12px);color:var(--nice-text-on-primary,#eee);font-family:Segoe UI,sans-serif;font-size:13px;height:100%;max-height:85vh;overflow:hidden;width:100%}.PhotoEditor-module_loadingWrap__QUTon{align-items:center;color:var(--nice-text-muted,#aaa);display:flex;justify-content:center;min-height:400px;width:100%}.PhotoEditor-module_loadingSpin__fGXBK{animation:PhotoEditor-module_nicePhotoEditorSpin__QorqZ 1s linear infinite}@keyframes PhotoEditor-module_nicePhotoEditorSpin__QorqZ{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.PhotoEditor-module_toolbar__RY-Ty{align-items:center;background:var(--nice-bg-secondary,#222226);border-bottom:1px solid var(--nice-border-color,#333);display:flex;justify-content:space-between;padding:var(--nice-space-2,8px) var(--nice-space-3-5,14px)}.PhotoEditor-module_toolbarGroup__PXw0-{display:flex;flex:0 0 auto;gap:6.5px}.PhotoEditor-module_toolbarDivider__o3kFV{background:var(--nice-border-color,#444);margin:0 var(--nice-space-1,4px);width:1px}.PhotoEditor-module_toolbarTitle__P1o18{align-items:center;display:flex;flex:1 1 auto;font-size:14px;font-weight:700;justify-content:center;min-width:0;overflow:hidden;padding:0 var(--nice-space-2,8px);text-overflow:ellipsis;white-space:nowrap}.PhotoEditor-module_leftPanel__DnHLU{background:var(--nice-bg-secondary,#222226);border-right:1px solid var(--nice-border-color,#333);display:flex;flex-direction:column;min-width:280px;overflow:hidden;width:280px}.PhotoEditor-module_tabBar__DZ3MG{border-bottom:1px solid var(--nice-border-color,#333);display:flex;flex-wrap:wrap}.PhotoEditor-module_tabButton__BLi97{align-items:center;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--nice-text-secondary,#888);cursor:pointer;display:flex;flex:1 0 auto;flex-direction:column;font-size:10px;font-weight:600;gap:var(--nice-space-px,1px);min-width:34px;padding:var(--nice-space-2,8px) 0;transition:all .15s}.PhotoEditor-module_tabButtonActive__KlQG0{background:var(--nice-bg-secondary,#2a2a30)}.PhotoEditor-module_tabIcon__-Mq19{font-size:14px}.PhotoEditor-module_panelContent__l5i5t{flex:1;overflow-y:auto;padding:var(--nice-space-2-5,10px) var(--nice-space-3,12px)}.PhotoEditor-module_sectionTitle__tMvCm{font-size:12px;font-weight:600;margin-bottom:var(--nice-space-1-5,6px)}.PhotoEditor-module_sectionTitleMb8__PQ-lV{margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_sectionInfo__bWxW5{color:var(--nice-text-muted,#aaa);font-size:11px}.PhotoEditor-module_pillRow__DGJUb,.PhotoEditor-module_sectionInfoMb__Hk6V-{margin-bottom:var(--nice-space-2-5,10px)}.PhotoEditor-module_pillRow__DGJUb{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px)}.PhotoEditor-module_pillRowMb8__AQrth{margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_pillRowGap3__Y46Vu{display:flex;flex-wrap:wrap;gap:var(--nice-space-0-75,3px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_pill__wTFac{background:transparent;border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-xl,12px);color:var(--nice-text-muted,#aaa);cursor:pointer;font-size:11px;font-weight:600;padding:var(--nice-space-0-75,3px) var(--nice-space-2-5,10px)}.PhotoEditor-module_pillActive__AfdZR{color:var(--nice-text-primary,#fff)}.PhotoEditor-module_pillCrop__Nsisp{border-radius:var(--nice-radius-md,6px);padding:var(--nice-space-1,4px) var(--nice-space-3,12px)}.PhotoEditor-module_pillCropActive__p6csO{color:var(--nice-text-primary,#fff)}.PhotoEditor-module_pillEmoji__I42DJ{border-radius:var(--nice-radius-lg,10px);padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px)}.PhotoEditor-module_pillEmojiActive__0-EM7{color:var(--nice-text-primary,#fff)}.PhotoEditor-module_filterGrid__-29PS{display:grid;gap:var(--nice-space-1-5,6px);grid-template-columns:repeat(3,1fr)}.PhotoEditor-module_emojiGrid__whqqK{display:grid;gap:var(--nice-space-0-5,2px);grid-template-columns:repeat(6,1fr);max-height:260px;overflow-y:auto}.PhotoEditor-module_shapeGrid__TawIy{margin-bottom:var(--nice-space-4,16px)}.PhotoEditor-module_frameGrid__R09dd,.PhotoEditor-module_shapeGrid__TawIy{display:grid;gap:var(--nice-space-1,4px);grid-template-columns:repeat(5,1fr)}.PhotoEditor-module_sliderRow__jsWDQ{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_sliderLabel__zOZ49{color:var(--nice-text-muted,#aaa);font-size:11px}.PhotoEditor-module_sliderLabelSelf__EwYKU{align-self:center;margin-right:var(--nice-space-1,4px)}.PhotoEditor-module_sliderValue__qFuTw{font-size:11px;font-weight:600;min-width:28px}.PhotoEditor-module_sliderValueSm__U7FrJ{font-size:10px;min-width:28px}.PhotoEditor-module_adjustColumn__y---T{display:flex;flex-direction:column;gap:var(--nice-space-2,8px)}.PhotoEditor-module_adjustHeader__6s9zV{display:flex;font-size:11px;justify-content:space-between;margin-bottom:var(--nice-space-0-5,2px)}.PhotoEditor-module_adjustIcon__d56rY{text-align:center;width:14px}.PhotoEditor-module_adjustValue__aUUmg{cursor:pointer;font-weight:600;min-width:30px;text-align:right}.PhotoEditor-module_intensitySection__dhe5h{margin-top:var(--nice-space-3,12px);padding:var(--nice-space-2,8px) 0}.PhotoEditor-module_intensityHeader__-KKu6{display:flex;font-size:11px;justify-content:space-between;margin-bottom:var(--nice-space-1,4px)}.PhotoEditor-module_colorInput__xkF1h{border:none;cursor:pointer;height:28px;padding:0;width:28px}.PhotoEditor-module_colorInputLg__W2KrK{border:none;cursor:pointer;height:30px;padding:0;width:32px}.PhotoEditor-module_colorInputDraw__KYcdG{border:none;cursor:pointer;height:28px;padding:0;width:32px}.PhotoEditor-module_overlayToolbar__hfspp{border-bottom:1px solid var(--nice-border-color,#333);display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) 0}.PhotoEditor-module_overlayToolbarLabel__mc4pU{align-self:center;color:var(--nice-text-muted,#aaa);font-size:11px;margin-right:var(--nice-space-1,4px)}.PhotoEditor-module_overlayToolbarBtn__AdTmZ{font-size:11px;padding:var(--nice-space-0-5,2px) var(--nice-space-1-5,6px)}.PhotoEditor-module_overlaySection__IIl4r{border-top:1px solid var(--nice-border-color,#333);margin-top:var(--nice-space-3,12px);padding-top:var(--nice-space-2,8px)}.PhotoEditor-module_overlaySectionTitle__FRx3e{color:var(--nice-text-muted,#aaa);font-size:11px;font-weight:600;margin-bottom:var(--nice-space-1,4px)}.PhotoEditor-module_overlayItem__DGUCN{align-items:center;background:transparent;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary,#ccc);cursor:pointer;display:flex;font-size:11px;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-0-5,2px);padding:var(--nice-space-0-75,3px) var(--nice-space-1-5,6px)}.PhotoEditor-module_overlayIcon__G0pFk{text-align:center;width:18px}.PhotoEditor-module_overlayName__JVh64{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.PhotoEditor-module_overlayDeleteBtn__Ontxv{background:none;border:none;color:var(--nice-danger,#f55);cursor:pointer;font-size:11px;padding:0}.PhotoEditor-module_emojiBtn__jxG9m{background:transparent;border:none;border-radius:var(--nice-radius-md,6px);cursor:pointer;font-size:22px;line-height:1;padding:var(--nice-space-1,4px) 0}.PhotoEditor-module_shapeBtn__xZdSV{font-size:20px}.PhotoEditor-module_frameBtn__coMkZ,.PhotoEditor-module_shapeBtn__xZdSV{background:transparent;border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-md,6px);color:var(--nice-text-secondary,#eee);cursor:pointer;line-height:1;padding:var(--nice-space-1-5,6px) 0}.PhotoEditor-module_frameBtn__coMkZ{font-size:18px}.PhotoEditor-module_removeFrameBtn__oCuua{background:transparent;border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-md,6px);color:var(--nice-danger,#f55);cursor:pointer;font-size:14px;padding:var(--nice-space-1-5,6px) 0}.PhotoEditor-module_textFormatBtn__7Z9RJ{min-width:32px}.PhotoEditor-module_textFormatBtnSm__3ptcG{min-width:28px}.PhotoEditor-module_drawActionBtn__teYz4{flex:1}.PhotoEditor-module_textArea__sBGlB{background:var(--nice-bg-secondary,#2a2a30);border:1px solid var(--nice-border-color,#444);border-radius:var(--nice-radius-md,6px);color:var(--nice-text-secondary,#eee);font-size:13px;margin-bottom:var(--nice-space-2,8px);resize:none}.PhotoEditor-module_textAreaSm__6xZnY{font-size:12px;margin-bottom:0}.PhotoEditor-module_textBtnRow__AcEnd{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_textGapRow__Dq2uz{display:flex;gap:var(--nice-space-1,4px);margin-top:var(--nice-space-1-5,6px)}.PhotoEditor-module_editSelectedSection__bgNEh{border-top:1px solid var(--nice-border-color,#333);margin-top:var(--nice-space-3,12px);padding-top:var(--nice-space-2,8px)}.PhotoEditor-module_editSelectedLabel__u2rmS{color:var(--nice-text-muted,#aaa);font-size:11px;margin-bottom:var(--nice-space-1,4px)}.PhotoEditor-module_shapeColorRow__ip5--{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_shapeColorLabel__nVcbU{align-self:center;color:var(--nice-text-muted,#aaa);font-size:11px;margin-right:var(--nice-space-0-5,2px)}.PhotoEditor-module_shapeColorLabelMl__KiM2d{margin-left:var(--nice-space-1,4px)}.PhotoEditor-module_shapeFillToggle__BXJ8C{font-size:10px;padding:var(--nice-space-0-5,2px) var(--nice-space-1-5,6px)}.PhotoEditor-module_frameColorRow__KRAHz{display:flex;gap:var(--nice-space-1,4px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_frameThicknessWrap__lXCoC{align-items:center;display:flex;flex:1;gap:var(--nice-space-1,4px)}.PhotoEditor-module_frameThicknessValue__SAEuc{font-size:10px}.PhotoEditor-module_drawPreview__WPbiv{display:flex;justify-content:center;margin-bottom:var(--nice-space-3,12px)}.PhotoEditor-module_drawActionRow__CUSWS{display:flex;gap:var(--nice-space-1,4px)}.PhotoEditor-module_quickColorRow__DTy5E{align-items:center;display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-2,8px)}.PhotoEditor-module_quickColorSwatch__ZjgoA{border:1px solid var(--nice-border-color,#555);border-radius:var(--nice-radius-sm,3px);cursor:pointer;height:18px;width:18px}.PhotoEditor-module_transformRow__LKRjS{display:flex;gap:var(--nice-space-1-5,6px);margin-bottom:var(--nice-space-4,16px)}.PhotoEditor-module_transformZoomRow__h2NlB{align-items:center;display:flex;gap:var(--nice-space-2,8px)}.PhotoEditor-module_transformZoomValue__LXa51{font-size:11px;font-weight:600;min-width:40px}.PhotoEditor-module_transformInfo__zXP9l{background:var(--nice-bg-secondary,#2a2a30);border-radius:var(--nice-radius-lg,8px);color:var(--nice-text-muted,#aaa);font-size:11px;margin-top:var(--nice-space-4,16px);padding:var(--nice-space-2-5,10px)}.PhotoEditor-module_canvasViewport__OMBIL{align-items:center;background:#111115;display:flex;flex:1;justify-content:center;overflow:auto;padding:var(--nice-space-5,20px);position:relative}.PhotoEditor-module_zoomWrap__JjfiJ{max-height:100%;max-width:100%;position:relative;transform-origin:center center;transition:transform .15s ease}.PhotoEditor-module_compareWrap__-J5ku{cursor:ew-resize;display:inline-block;position:relative}.PhotoEditor-module_canvasOriginal__Apf91{max-width:100%}.PhotoEditor-module_canvasEdited__Eroz7,.PhotoEditor-module_canvasOriginal__Apf91{display:block;max-height:60vh;object-fit:contain}.PhotoEditor-module_compareClip__5qG2I{bottom:0;left:0;overflow:hidden;position:absolute;top:0}.PhotoEditor-module_compareSlider__OIIIK{bottom:0;position:absolute;top:0;transform:translateX(-50%);width:3px}.PhotoEditor-module_compareSliderKnob__VohI9{align-items:center;border-radius:var(--nice-radius-full,50%);box-shadow:0 2px 8px var(--nice-overlay-40,rgba(0,0,0,.4));display:flex;height:28px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:28px}.PhotoEditor-module_compareSliderIcon__pXcct{color:var(--nice-text-primary,#fff);font-size:12px}.PhotoEditor-module_compareLabelOriginal__GaBoj{background:var(--nice-overlay-60,rgba(0,0,0,.6));color:var(--nice-text-on-primary,#fff);left:8px}.PhotoEditor-module_compareLabelEdited__Fr836,.PhotoEditor-module_compareLabelOriginal__GaBoj{border-radius:var(--nice-radius-sm,4px);font-size:11px;font-weight:600;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px);position:absolute;top:8px}.PhotoEditor-module_compareLabelEdited__Fr836{color:var(--nice-text-primary,#fff);right:8px}.PhotoEditor-module_regularWrap__8umPV{display:inline-block;position:relative}.PhotoEditor-module_canvasRegular__wxapL{border-radius:var(--nice-radius-md,6px);box-shadow:0 4px 20px var(--nice-overlay-40,rgba(0,0,0,.4));display:block;max-height:60vh;max-width:100%;object-fit:contain}.PhotoEditor-module_cropOverlay__MJk1Y{inset:0;pointer-events:none;position:absolute;z-index:2}.PhotoEditor-module_cropDarkBg__m3axV{background:var(--nice-overlay-55,rgba(0,0,0,.55));inset:0;position:absolute}.PhotoEditor-module_cropGridContainer__NfHdT{inset:0;position:absolute}.PhotoEditor-module_cropSizeLabel__fV2mF{background:var(--nice-overlay-75,rgba(0,0,0,.75));border-radius:var(--nice-radius-sm,3px);bottom:-24px;color:var(--nice-text-on-primary,#fff);font-size:10px;left:50%;padding:var(--nice-space-0-5,2px) var(--nice-space-2,8px);position:absolute;transform:translateX(-50%);white-space:nowrap}.PhotoEditor-module_cropInfo__Z1SCE{color:var(--nice-text-muted,#aaa);font-size:11px;margin-bottom:var(--nice-space-2-5,10px)}.PhotoEditor-module_cropAspectLabel__dieL-{font-size:12px;font-weight:600;margin-bottom:var(--nice-space-1-5,6px)}.PhotoEditor-module_cropAspectRow__scRj3{display:flex;flex-wrap:wrap;gap:var(--nice-space-1,4px)}.PhotoEditor-module_accentBtn__tgaEx{color:var(--nice-text-primary,#fff);font-weight:600;width:100%}.GameAsset2dEditor-module_root__WVJBM{background:var(--nice-bg,#1a1a2e);color:var(--nice-text-secondary,#e0e0e0);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;height:100%;min-height:600px;user-select:none}.GameAsset2dEditor-module_menuBar__WaEaU{align-items:center;background:var(--nice-bg,#16213e);border-bottom:1px solid var(--nice-border-color,#0f3460);display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_menuBar__WaEaU h3{color:var(--nice-warning,#ffd369);font-size:14px;font-weight:600;margin:0}.GameAsset2dEditor-module_menuGroup__EOreB{display:flex;gap:var(--nice-space-0-5,2px)}.GameAsset2dEditor-module_menuBtn__JYWXn{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-muted,#b0b0b0);cursor:pointer;display:flex;font-size:12px;gap:var(--nice-space-1,4px);padding:var(--nice-space-1,4px) var(--nice-space-2,8px);transition:all .15s}.GameAsset2dEditor-module_menuBtn__JYWXn:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1));color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_menuBtn__JYWXn:disabled{cursor:not-allowed;opacity:.4}.GameAsset2dEditor-module_spacer__fPVeq{flex:1}.GameAsset2dEditor-module_modeTabs__iKh7C{background:var(--nice-bg,#1f2940);border-bottom:1px solid var(--nice-border-color,#0f3460);display:flex;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-1,4px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_modeTab__C12zt{background:transparent;border:none;border-radius:var(--nice-radius-sm,4px) var(--nice-radius-sm,4px) 0 0;color:var(--nice-text-secondary,#8892a8);cursor:pointer;font-size:12px;font-weight:500;padding:var(--nice-space-1-5,6px) var(--nice-space-4,16px);transition:all .15s}.GameAsset2dEditor-module_modeTab__C12zt:hover{background:var(--nice-overlay-light-5,hsla(0,0%,100%,.05));color:var(--nice-text-on-primary,#c0c8d8)}.GameAsset2dEditor-module_modeTab__C12zt.GameAsset2dEditor-module_active__DUroI{background:var(--nice-bg,#1a1a2e);color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_mainArea__jwDUa{display:flex;flex:1;overflow:hidden}.GameAsset2dEditor-module_leftPanel__xxAg5{background:var(--nice-bg,#16213e);border-right:1px solid var(--nice-border-color,#0f3460);display:flex;flex-direction:column;overflow:hidden;width:220px}.GameAsset2dEditor-module_centerArea__xr-Hn{display:flex;flex:1;flex-direction:column;overflow:hidden}.GameAsset2dEditor-module_rightPanel__YoNuc{background:var(--nice-bg,#16213e);border-left:1px solid var(--nice-border-color,#0f3460);display:flex;flex-direction:column;overflow:hidden;width:260px}.GameAsset2dEditor-module_toolbar__hEC9S{align-items:center;background:var(--nice-bg,#1f2940);border-bottom:1px solid var(--nice-border-color,#0f3460);display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_toolGroup__Zbn47{background:var(--nice-overlay-20,rgba(0,0,0,.2));border-radius:var(--nice-radius-sm,4px);display:flex;gap:var(--nice-space-0-5,2px);padding:var(--nice-space-0-5,2px)}.GameAsset2dEditor-module_toolBtn__5U7Rw{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;font-size:14px;height:28px;justify-content:center;transition:all .15s;width:28px}.GameAsset2dEditor-module_toolBtn__5U7Rw:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1));color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_toolBtn__5U7Rw.GameAsset2dEditor-module_active__DUroI{background:var(--nice-color-primary,#0f3460);color:var(--nice-text-on-primary,#ffd369)}.GameAsset2dEditor-module_toolBtn__5U7Rw:disabled{cursor:not-allowed;opacity:.3}.GameAsset2dEditor-module_viewport__vEKEv{background:var(--nice-bg,#0a0a14);flex:1;overflow:hidden;position:relative}.GameAsset2dEditor-module_viewportCanvas__FJ5qA{image-rendering:pixelated;image-rendering:crisp-edges;left:50%;position:absolute;top:50%}.GameAsset2dEditor-module_gridOverlay__K8B97{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.GameAsset2dEditor-module_panelHeader__xm2As{align-items:center;background:var(--nice-bg-tertiary,#0f3460);color:var(--nice-text-secondary,#8892a8);display:flex;font-size:11px;font-weight:600;justify-content:space-between;letter-spacing:.5px;padding:var(--nice-space-2,8px) var(--nice-space-3,12px);text-transform:uppercase}.GameAsset2dEditor-module_panelContent__dvOGq{flex:1;overflow-y:auto;padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_panelSection__RQQDr{margin-bottom:var(--nice-space-4,16px)}.GameAsset2dEditor-module_panelLabel__Ks-Wa{color:var(--nice-text-secondary,#8892a8);display:block;font-size:11px;letter-spacing:.5px;margin-bottom:var(--nice-space-1-5,6px);text-transform:uppercase}.GameAsset2dEditor-module_panelInput__cxNiG{background:var(--nice-bg,#0a0a14);border:1px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary,#e0e0e0);font-size:12px;padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);width:100%}.GameAsset2dEditor-module_panelInput__cxNiG:focus{border-color:var(--nice-warning,#ffd369);outline:none}.GameAsset2dEditor-module_tilePalette__OpzmV{display:grid;gap:var(--nice-space-1,4px);grid-template-columns:repeat(auto-fill,minmax(40px,1fr));padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_tileItem__uWNS9{aspect-ratio:1;background:var(--nice-bg,#0a0a14);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;overflow:hidden;transition:all .15s}.GameAsset2dEditor-module_tileItem__uWNS9:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_tileItem__uWNS9.GameAsset2dEditor-module_selected__216IN{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_tileItem__uWNS9 img{height:100%;image-rendering:pixelated;object-fit:contain;width:100%}.GameAsset2dEditor-module_layersList__anFaG{display:flex;flex-direction:column;gap:var(--nice-space-0-5,2px)}.GameAsset2dEditor-module_layerItem__XSGlu{align-items:center;background:var(--nice-bg,#1f2940);border-radius:var(--nice-radius-sm,4px);cursor:pointer;display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-1-5,6px) var(--nice-space-2,8px);transition:all .15s}.GameAsset2dEditor-module_layerItem__XSGlu:hover{background:var(--nice-hover-bg,#2a3a5e)}.GameAsset2dEditor-module_layerItem__XSGlu.GameAsset2dEditor-module_selected__216IN{background:var(--nice-selected-bg,#0f3460);border-left:3px solid var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_layerVisibility__RpHjV{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;height:20px;justify-content:center;width:20px}.GameAsset2dEditor-module_layerVisibility__RpHjV:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1))}.GameAsset2dEditor-module_layerVisibility__RpHjV.GameAsset2dEditor-module_hidden__mukOG{opacity:.4}.GameAsset2dEditor-module_layerName__WBxq5{color:var(--nice-text-secondary,#c0c8d8);flex:1;font-size:12px}.GameAsset2dEditor-module_layerOpacity__FpzL-{color:var(--nice-text-secondary,#8892a8);font-size:10px;text-align:right;width:40px}.GameAsset2dEditor-module_framesList__vg1oO{display:grid;gap:var(--nice-space-2,8px);grid-template-columns:repeat(auto-fill,minmax(60px,1fr));padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_frameItem__fkEfb{aspect-ratio:1;background:var(--nice-bg,#0a0a14);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;overflow:hidden;position:relative;transition:all .15s}.GameAsset2dEditor-module_frameItem__fkEfb:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_frameItem__fkEfb.GameAsset2dEditor-module_selected__216IN{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_frameItem__fkEfb canvas{height:100%;image-rendering:pixelated;object-fit:contain;width:100%}.GameAsset2dEditor-module_frameLabel__5IGW8{background:var(--nice-overlay-70,rgba(0,0,0,.7));bottom:0;color:var(--nice-text-muted,#b0b0b0);font-size:9px;left:0;padding:var(--nice-space-0-5,2px) var(--nice-space-1,4px);position:absolute;right:0;text-align:center}.GameAsset2dEditor-module_timeline__dPJk6{background:var(--nice-bg,#16213e);border-top:1px solid var(--nice-border-color,#0f3460);padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_timelineTrack__mr20w{background:var(--nice-bg,#0a0a14);border-radius:var(--nice-radius-sm,4px);display:flex;gap:var(--nice-space-1,4px);overflow-x:auto;padding:var(--nice-space-1,4px)}.GameAsset2dEditor-module_timelineFrame__AQyGe{background:var(--nice-bg,#1f2940);border:2px solid transparent;border-radius:var(--nice-radius-sm,4px);cursor:pointer;flex-shrink:0;height:48px;overflow:hidden;width:48px}.GameAsset2dEditor-module_timelineFrame__AQyGe:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_timelineFrame__AQyGe.GameAsset2dEditor-module_current__3sAfL{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_stateGraph__qAWlU{background:var(--nice-bg,#0a0a14);flex:1;overflow:hidden;position:relative}.GameAsset2dEditor-module_stateNode__W9Z-g{background:var(--nice-bg,#1f2940);border:2px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-lg,8px);cursor:move;min-width:120px;padding:var(--nice-space-2,8px) var(--nice-space-3,12px);position:absolute;transition:border-color .15s}.GameAsset2dEditor-module_stateNode__W9Z-g:hover{border-color:var(--nice-border-color,#4a5a7e)}.GameAsset2dEditor-module_stateNode__W9Z-g.GameAsset2dEditor-module_selected__216IN{border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_stateNode__W9Z-g.GameAsset2dEditor-module_entry__cmA9n{border-color:var(--nice-success-light,#4ade80)}.GameAsset2dEditor-module_stateNodeName__TK5vs{color:var(--nice-text-secondary,#e0e0e0);font-size:12px;font-weight:500;text-align:center}.GameAsset2dEditor-module_stateNodeAnim__VGwnV{color:var(--nice-text-secondary,#8892a8);font-size:10px;margin-top:var(--nice-space-1,4px);text-align:center}.GameAsset2dEditor-module_transition__FBbno{stroke:var(--nice-text-secondary,#4a5a7e);stroke-width:2;fill:none;marker-end:url(#arrowhead)}.GameAsset2dEditor-module_transition__FBbno:hover{stroke:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_effectsList__vHq4I{display:flex;flex-direction:column;gap:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectItem__6-1li{background:var(--nice-bg,#1f2940);border-radius:var(--nice-radius-md,6px);overflow:hidden}.GameAsset2dEditor-module_effectHeader__cgVN-{align-items:center;cursor:pointer;display:flex;gap:var(--nice-space-2,8px);padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectToggle__lKE36{background:var(--nice-bg,#0a0a14);border:1px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,3px);cursor:pointer;height:18px;width:18px}.GameAsset2dEditor-module_effectToggle__lKE36.GameAsset2dEditor-module_enabled__wgDzp{background:var(--nice-warning,#ffd369);border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_effectName__NQCWj{color:var(--nice-text-secondary,#c0c8d8);flex:1;font-size:12px}.GameAsset2dEditor-module_effectRemove__TSSdI{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;height:20px;justify-content:center;width:20px}.GameAsset2dEditor-module_effectRemove__TSSdI:hover{background:var(--nice-danger,#ef4444);color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_effectParams__UqTBd{background:var(--nice-overlay-20,rgba(0,0,0,.2));padding:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectParam__hEsVY{align-items:center;display:flex;gap:var(--nice-space-2,8px);margin-bottom:var(--nice-space-2,8px)}.GameAsset2dEditor-module_effectParam__hEsVY:last-child{margin-bottom:0}.GameAsset2dEditor-module_effectParamLabel__u0Qoc{color:var(--nice-text-secondary,#8892a8);flex:0 0 80px;font-size:11px}.GameAsset2dEditor-module_effectParamInput__aqxdv{background:var(--nice-bg,#0a0a14);border:1px solid var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#e0e0e0);flex:1;font-size:11px;height:24px;padding:0 var(--nice-space-2,8px)}.GameAsset2dEditor-module_statusBar__eOrNe{align-items:center;background:var(--nice-bg-tertiary,#0f3460);color:var(--nice-text-secondary,#8892a8);display:flex;font-size:11px;gap:var(--nice-space-4,16px);padding:var(--nice-space-1,4px) var(--nice-space-3,12px)}.GameAsset2dEditor-module_statusItem__kKLHF,.GameAsset2dEditor-module_zoomControl__4YD9G{align-items:center;display:flex;gap:var(--nice-space-1,4px)}.GameAsset2dEditor-module_zoomControl__4YD9G{margin-left:auto}.GameAsset2dEditor-module_zoomBtn__hxYik{align-items:center;background:transparent;border:none;border-radius:var(--nice-radius-sm,3px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;display:flex;height:20px;justify-content:center;width:20px}.GameAsset2dEditor-module_zoomBtn__hxYik:hover{background:var(--nice-overlay-light-10,hsla(0,0%,100%,.1));color:var(--nice-text-on-primary,#fff)}.GameAsset2dEditor-module_dialogOverlay__dZYwO{align-items:center;background:var(--nice-overlay-60,rgba(0,0,0,.6));bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.GameAsset2dEditor-module_dialog__mfLFL{background:var(--nice-bg,#16213e);border-radius:var(--nice-radius-lg,8px);box-shadow:0 8px 32px var(--nice-overlay-40,rgba(0,0,0,.4));max-width:500px;min-width:300px;padding:var(--nice-space-6,24px)}.GameAsset2dEditor-module_dialog__mfLFL h3{color:var(--nice-warning,#ffd369);font-size:16px;margin:0 0 var(--nice-space-4,16px)}.GameAsset2dEditor-module_dialogActions__vhDXe{display:flex;gap:var(--nice-space-2,8px);justify-content:flex-end;margin-top:var(--nice-space-5,20px)}.GameAsset2dEditor-module_btnPrimary__Gzc25{background:var(--nice-warning,#ffd369);border:none;border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-on-primary,#1a1a2e);cursor:pointer;font-size:12px;font-weight:600;padding:var(--nice-space-2,8px) var(--nice-space-4,16px);transition:all .15s}.GameAsset2dEditor-module_btnPrimary__Gzc25:hover{background:#ffe599}.GameAsset2dEditor-module_btnSecondary__G5nK5{background:transparent;border:1px solid var(--nice-border-color,#4a5a7e);border-radius:var(--nice-radius-sm,4px);color:var(--nice-text-secondary,#c0c8d8);cursor:pointer;font-size:12px;padding:var(--nice-space-2,8px) var(--nice-space-4,16px);transition:all .15s}.GameAsset2dEditor-module_btnSecondary__G5nK5:hover{background:var(--nice-overlay-light-5,hsla(0,0%,100%,.05));border-color:#6a7a9e}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar{width:6px}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar-track{background:var(--nice-bg,#0a0a14)}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar-thumb{background:var(--nice-border-color,#2a3a5e);border-radius:var(--nice-radius-sm,3px)}.GameAsset2dEditor-module_panelContent__dvOGq::-webkit-scrollbar-thumb:hover{background:var(--nice-text-secondary,#4a5a7e)}.GameAsset2dEditor-module_dropZone__Z7sYz{border:2px dashed var(--nice-border-color,#4a5a7e);border-radius:var(--nice-radius-lg,8px);color:var(--nice-text-secondary,#8892a8);cursor:pointer;padding:var(--nice-space-6,24px);text-align:center;transition:all .15s}.GameAsset2dEditor-module_dropZone__Z7sYz:hover{border-color:var(--nice-warning,#ffd369);color:var(--nice-text-secondary,#c0c8d8)}.GameAsset2dEditor-module_dropZone__Z7sYz.GameAsset2dEditor-module_active__DUroI{background:rgba(255,211,105,.1);border-color:var(--nice-warning,#ffd369)}.GameAsset2dEditor-module_emptyState__3wryk{align-items:center;color:var(--nice-text-secondary,#8892a8);display:flex;flex-direction:column;justify-content:center;padding:var(--nice-space-8,32px);text-align:center}.GameAsset2dEditor-module_emptyState__3wryk svg{height:48px;margin-bottom:var(--nice-space-3,12px);opacity:.5;width:48px}.GameAsset2dEditor-module_emptyStateText__Q5V1a{font-size:12px;margin-bottom:var(--nice-space-3,12px)}
@@ -473,7 +473,7 @@ const NiceAITools = ({ sourceImage, onResult, className = '', }) => {
473
473
  borderRadius: 4,
474
474
  border: '1px solid var(--nice-border, #e2e8f0)',
475
475
  background: ai.activeTool === key ? 'var(--nice-color-accent, #6366f1)' : 'transparent',
476
- color: ai.activeTool === key ? 'var(--nice-text-on-primary, #fff)' : 'inherit',
476
+ color: ai.activeTool === key ? 'var(--nice-color-white, #fff)' : 'inherit',
477
477
  minWidth: 100,
478
478
  display: 'inline-flex',
479
479
  alignItems: 'center',
@@ -486,7 +486,7 @@ const NiceAITools = ({ sourceImage, onResult, className = '', }) => {
486
486
  background: ai.isProcessing
487
487
  ? 'var(--nice-bg-tertiary, #94a3b8)'
488
488
  : 'var(--nice-color-accent, #6366f1)',
489
- color: 'var(--nice-text-on-primary, #fff)',
489
+ color: 'var(--nice-color-white, #fff)',
490
490
  border: 'none',
491
491
  borderRadius: 4,
492
492
  padding: '8px 12px',
@@ -9,7 +9,7 @@ const PhotoEditorToolbar = React.memo(({ api }) => {
9
9
  return (jsxs("div", { className: cs.toolbar, children: [jsxs("div", { className: cs.toolbarGroup, children: [jsx(Button, { variant: "dark", size: "sm", onClick: undo, disabled: historyIdx <= 0, title: `${t('photoEditor.undo', 'Undo')} (Ctrl+Z)`, children: jsx(NiceIcon, { name: "reply", size: 14 }) }), jsx(Button, { variant: "dark", size: "sm", onClick: redo, disabled: historyIdx >= historyLength - 1, title: t('photoEditor.redo', 'Redo (Ctrl+Y)'), children: jsx(NiceIcon, { name: "forward", size: 14 }) }), jsx(Button, { variant: "dark", size: "sm", onClick: handleReset, title: "Reset", children: jsx(NiceIcon, { name: "refresh", size: 14 }) }), jsx("div", { className: cs.toolbarDivider }), jsx(Button, { variant: showCompare ? 'outline-info' : 'dark', size: "sm", onClick: () => setShowCompare(!showCompare), title: t('photoEditor.compareOriginal', 'Compare with original'), children: jsx(NiceIcon, { name: "columns", size: 14 }) }), jsx("div", { className: cs.toolbarDivider }), jsx(Button, { variant: "dark", size: "sm", onClick: handleDownload, title: "Download", children: jsx(NiceIcon, { name: "download", size: 14 }) }), jsx(Button, { variant: "dark", size: "sm", onClick: handleCopyToClipboard, title: "Copy to clipboard", children: jsx(NiceIcon, { name: "clipboard", size: 14 }) }), jsx(Button, { variant: "dark", size: "sm", onClick: handleShareNative, title: t('common.share', 'Share'), children: jsx(NiceIcon, { name: "send", size: 14 }) })] }), jsxs("div", { className: cs.toolbarTitle, style: { color: accent }, children: [jsx(NiceIcon, { name: "wand", size: 14, style: { marginRight: 8 } }), t('photoEditor.title', 'Photo Editor')] }), jsxs("div", { className: cs.toolbarGroup, children: [jsxs(Button, { variant: "outline-secondary", size: "sm", onClick: onCancel, children: [jsx(NiceIcon, { name: "close", size: 14, style: { marginRight: 4 } }), ' ', t('common.cancel', 'Cancel')] }), jsxs(Button, { size: "sm", style: {
10
10
  background: accent,
11
11
  borderColor: accent,
12
- color: 'var(--nice-text-on-primary, #fff)',
12
+ color: 'var(--nice-color-white, #fff)',
13
13
  fontWeight: 600,
14
14
  }, onClick: handleSave, children: [jsx(NiceIcon, { name: "check", size: 14, style: { marginRight: 4 } }), ' ', t('photoEditor.apply', 'Apply')] })] })] }));
15
15
  });
@@ -41,7 +41,5 @@ const NicePixelEditor = ({ initialWidth = 64, initialHeight = 64, className, onS
41
41
  api.setNh(h);
42
42
  }, children: [w, "x", h] }, `${w}x${h}`))) }), jsxs("div", { className: styles.dialogActions, children: [jsx(NiceButton, { className: styles.btnSecondary, variant: "ghost", onClick: () => api.setDlgNew(false), children: "Cancel" }), jsx(NiceButton, { className: styles.btnPrimary, variant: "primary", onClick: () => api.newDoc(api.nw, api.nh), children: "Create" })] })] })] }));
43
43
  };
44
- /** @deprecated Use NicePixelEditor */
45
- const PixelEditor = NicePixelEditor;
46
44
 
47
- export { NicePixelEditor, PixelEditor };
45
+ export { NicePixelEditor };
@@ -1,3 +1,3 @@
1
- var styles = {"menuBar":"PixelEditor-module_menuBar__8JFld","menuSep":"PixelEditor-module_menuSep__pNZsR","toolbar":"PixelEditor-module_toolbar__paCGq","toolBtn":"PixelEditor-module_toolBtn__wD1Kj","toolBtnActive":"PixelEditor-module_toolBtnActive__R51U0","canvasContainer":"PixelEditor-module_canvasContainer__8z2AY","rightPanel":"PixelEditor-module_rightPanel__ZjrCh","panelSection":"PixelEditor-module_panelSection__3l225","collapseChevron":"PixelEditor-module_collapseChevron__Yuvz6","layerActions":"PixelEditor-module_layerActions__pZH1f","panelTitle":"PixelEditor-module_panelTitle__vYyeO","layerItem":"PixelEditor-module_layerItem__J-gtn","layerItemActive":"PixelEditor-module_layerItemActive__yPt29","layerVis":"PixelEditor-module_layerVis__Uj7n2","layerName":"PixelEditor-module_layerName__HovwJ","layerOpacity":"PixelEditor-module_layerOpacity__qmWvu","paletteGrid":"PixelEditor-module_paletteGrid__knY-n","paletteSwatch":"PixelEditor-module_paletteSwatch__MUbha","paletteSwatchActive":"PixelEditor-module_paletteSwatchActive__wDR4T","bottomPanel":"PixelEditor-module_bottomPanel__rviLF","timelineControls":"PixelEditor-module_timelineControls__Laroq","timelineFrames":"PixelEditor-module_timelineFrames__dw06F","frameThumb":"PixelEditor-module_frameThumb__2E9mG","frameThumbActive":"PixelEditor-module_frameThumbActive__Z0eK4","frameNum":"PixelEditor-module_frameNum__PoGQC","statusBar":"PixelEditor-module_statusBar__QnphD","dialogActions":"PixelEditor-module_dialogActions__fOa7a","btnPrimary":"PixelEditor-module_btnPrimary__FYlTy","btnSecondary":"PixelEditor-module_btnSecondary__qLfyJ","brushSlider":"PixelEditor-module_brushSlider__UxQ38","toolSep":"PixelEditor-module_toolSep__YIu-E","toolGroup":"PixelEditor-module_toolGroup__xA2lN","miniBtn":"PixelEditor-module_miniBtn__tg5N0","miniBtnActive":"PixelEditor-module_miniBtnActive__gpveu","colorSwatches":"PixelEditor-module_colorSwatches__jFuRX","brushShapes":"PixelEditor-module_brushShapes__2bBfl","pressureToggles":"PixelEditor-module_pressureToggles__AITuh","checkLabel":"PixelEditor-module_checkLabel__-d-TA","hsvPicker":"PixelEditor-module_hsvPicker__0ERIh","layerLock":"PixelEditor-module_layerLock__xeWnc","layerNameInput":"PixelEditor-module_layerNameInput__ZiOKv","layerControls":"PixelEditor-module_layerControls__MrpXo","blendSelect":"PixelEditor-module_blendSelect__QCwns","layerOpSlider":"PixelEditor-module_layerOpSlider__Vw-qs","genPanel":"PixelEditor-module_genPanel__99Md8","genHeader":"PixelEditor-module_genHeader__xN4FZ","genTabs":"PixelEditor-module_genTabs__No5Za","genTabBtn":"PixelEditor-module_genTabBtn__e2VhB","genTabBtnActive":"PixelEditor-module_genTabBtnActive__Rt3jQ","genBody":"PixelEditor-module_genBody__MuiQy","genLeft":"PixelEditor-module_genLeft__JdEw6","genCenter":"PixelEditor-module_genCenter__c5X0S","genRight":"PixelEditor-module_genRight__qFz11","genPreviewWrap":"PixelEditor-module_genPreviewWrap__360F-","genPreviewCanvas":"PixelEditor-module_genPreviewCanvas__75Lw2","genDirGrid":"PixelEditor-module_genDirGrid__xjEp7","genRow":"PixelEditor-module_genRow__awCw9","genPresetGrid":"PixelEditor-module_genPresetGrid__f9XK6","genPresetBtn":"PixelEditor-module_genPresetBtn__5C2We","genPresetBtnActive":"PixelEditor-module_genPresetBtnActive__WAGew","genPartGrid":"PixelEditor-module_genPartGrid__l17oc","genColorSwatches":"PixelEditor-module_genColorSwatches__acI6q","genColorSwatch":"PixelEditor-module_genColorSwatch__JE8BO","genAssemblyItem":"PixelEditor-module_genAssemblyItem__zNL2P","genAssemblyName":"PixelEditor-module_genAssemblyName__GU-kr","genFooter":"PixelEditor-module_genFooter__WkyJp","btnIcon":"PixelEditor-module_btnIcon__O59l9","propSelect":"PixelEditor-module_propSelect__4P0Qi","propInput":"PixelEditor-module_propInput__Q-kr2"};
1
+ var styles = {"menuBar":"PixelEditor-module_menuBar__8JFld","menuSep":"PixelEditor-module_menuSep__pNZsR","toolbar":"PixelEditor-module_toolbar__paCGq","toolBtn":"PixelEditor-module_toolBtn__wD1Kj","toolBtnActive":"PixelEditor-module_toolBtnActive__R51U0","canvasContainer":"PixelEditor-module_canvasContainer__8z2AY","rightPanel":"PixelEditor-module_rightPanel__ZjrCh","panelSection":"PixelEditor-module_panelSection__3l225","collapseChevron":"PixelEditor-module_collapseChevron__Yuvz6","layerActions":"PixelEditor-module_layerActions__pZH1f","panelTitle":"PixelEditor-module_panelTitle__vYyeO","layerItem":"PixelEditor-module_layerItem__J-gtn","layerItemActive":"PixelEditor-module_layerItemActive__yPt29","layerVis":"PixelEditor-module_layerVis__Uj7n2","layerName":"PixelEditor-module_layerName__HovwJ","layerOpacity":"PixelEditor-module_layerOpacity__qmWvu","paletteGrid":"PixelEditor-module_paletteGrid__knY-n","paletteSwatch":"PixelEditor-module_paletteSwatch__MUbha","paletteSwatchActive":"PixelEditor-module_paletteSwatchActive__wDR4T","bottomPanel":"PixelEditor-module_bottomPanel__rviLF","timelineControls":"PixelEditor-module_timelineControls__Laroq","timelineFrames":"PixelEditor-module_timelineFrames__dw06F","frameThumb":"PixelEditor-module_frameThumb__2E9mG","frameThumbActive":"PixelEditor-module_frameThumbActive__Z0eK4","frameNum":"PixelEditor-module_frameNum__PoGQC","statusBar":"PixelEditor-module_statusBar__QnphD","dialogActions":"PixelEditor-module_dialogActions__fOa7a","btnPrimary":"PixelEditor-module_btnPrimary__FYlTy","btnSecondary":"PixelEditor-module_btnSecondary__qLfyJ","brushSlider":"PixelEditor-module_brushSlider__UxQ38","toolSep":"PixelEditor-module_toolSep__YIu-E","toolGroup":"PixelEditor-module_toolGroup__xA2lN","miniBtn":"PixelEditor-module_miniBtn__tg5N0","miniBtnActive":"PixelEditor-module_miniBtnActive__gpveu","colorSwatches":"PixelEditor-module_colorSwatches__jFuRX","brushShapes":"PixelEditor-module_brushShapes__2bBfl","pressureToggles":"PixelEditor-module_pressureToggles__AITuh","checkLabel":"PixelEditor-module_checkLabel__-d-TA","hsvPicker":"PixelEditor-module_hsvPicker__0ERIh","layerLock":"PixelEditor-module_layerLock__xeWnc","layerNameInput":"PixelEditor-module_layerNameInput__ZiOKv","layerControls":"PixelEditor-module_layerControls__MrpXo","blendSelect":"PixelEditor-module_blendSelect__QCwns","layerOpSlider":"PixelEditor-module_layerOpSlider__Vw-qs","genPanel":"PixelEditor-module_genPanel__99Md8","genTabs":"PixelEditor-module_genTabs__No5Za","genTabBtn":"PixelEditor-module_genTabBtn__e2VhB","genTabBtnActive":"PixelEditor-module_genTabBtnActive__Rt3jQ","genBody":"PixelEditor-module_genBody__MuiQy","genLeft":"PixelEditor-module_genLeft__JdEw6","genCenter":"PixelEditor-module_genCenter__c5X0S","genRight":"PixelEditor-module_genRight__qFz11","genPreviewWrap":"PixelEditor-module_genPreviewWrap__360F-","genPreviewCanvas":"PixelEditor-module_genPreviewCanvas__75Lw2","genDirGrid":"PixelEditor-module_genDirGrid__xjEp7","genRow":"PixelEditor-module_genRow__awCw9","genPresetGrid":"PixelEditor-module_genPresetGrid__f9XK6","genPresetBtn":"PixelEditor-module_genPresetBtn__5C2We","genPresetBtnActive":"PixelEditor-module_genPresetBtnActive__WAGew","genPartGrid":"PixelEditor-module_genPartGrid__l17oc","genPartBtn":"PixelEditor-module_genPartBtn__5OO82","genColorSwatches":"PixelEditor-module_genColorSwatches__acI6q","genColorSwatch":"PixelEditor-module_genColorSwatch__JE8BO","genAssemblyItem":"PixelEditor-module_genAssemblyItem__zNL2P","genAssemblyName":"PixelEditor-module_genAssemblyName__GU-kr","genFooter":"PixelEditor-module_genFooter__WkyJp","btnIcon":"PixelEditor-module_btnIcon__O59l9","propSelect":"PixelEditor-module_propSelect__4P0Qi"};
2
2
 
3
3
  export { styles as default };
@@ -269,7 +269,7 @@ const NiceSpriteGeneratorPanel = ({ onSendToCanvas, onClose, mode,
269
269
  }
270
270
  }, [tab, skinPalette, hairPalette, clothPalette, wallPalette, roofPalette, furPalette]);
271
271
  /* ── Render ── */
272
- return (jsx(NiceModal, { open: true, onClose: onClose !== null && onClose !== void 0 ? onClose : (() => { }), title: "Sprite Generator", children: jsxs("div", { className: styles.genPanel, children: [jsxs("div", { className: styles.genHeader, children: [jsx("h3", { children: "Sprite Generator" }), jsx(NiceButton, { className: styles.btnIcon, variant: "ghost", size: "sm", onClick: onClose, title: "Close", "aria-label": "Close", children: jsx(NiceIcon, { name: "close", size: 16 }) })] }), jsx("div", { className: styles.genTabs, children: ['character', 'building', 'animal'].map((t) => (jsxs(NiceButton, { className: `${styles.genTabBtn} ${tab === t ? styles.genTabBtnActive : ''}`, variant: tab === t ? 'primary' : 'ghost', size: "sm", onClick: () => setTab(t), children: [jsx(NiceIcon, { name: t === 'character' ? 'user' : t === 'building' ? 'home' : 'heart', size: 14 }), ' ', t.charAt(0).toUpperCase() + t.slice(1)] }, t))) }), jsxs("div", { className: styles.genBody, children: [jsxs("div", { className: styles.genLeft, children: [jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: jsx("span", { children: "Presets" }) }), jsx("div", { className: styles.genPresetGrid, children: presets.map((preset, i) => (jsx(NiceButton, { className: `${styles.genPresetBtn} ${i === selectedPresetIdx ? styles.genPresetBtnActive : ''}`, variant: i === selectedPresetIdx ? 'primary' : 'ghost', size: "sm", onClick: () => applyPreset(i), title: preset.name, children: preset.name }, i))) })] }), jsxs("div", { className: styles.panelSection, style: { flex: 1, overflowY: 'auto' }, children: [jsx("div", { className: styles.panelTitle, children: jsx("span", { children: "Parts" }) }), categories.map((cat) => {
272
+ return (jsx(NiceModal, { open: true, onClose: onClose !== null && onClose !== void 0 ? onClose : (() => { }), title: "Sprite Generator", size: "xl", children: jsxs("div", { className: styles.genPanel, children: [jsx("div", { className: styles.genTabs, children: ['character', 'building', 'animal'].map((t) => (jsxs(NiceButton, { className: `${styles.genTabBtn} ${tab === t ? styles.genTabBtnActive : ''}`, variant: tab === t ? 'primary' : 'ghost', size: "sm", onClick: () => setTab(t), children: [jsx(NiceIcon, { name: t === 'character' ? 'user' : t === 'building' ? 'home' : 'heart', size: 14 }), ' ', t.charAt(0).toUpperCase() + t.slice(1)] }, t))) }), jsxs("div", { className: styles.genBody, children: [jsxs("div", { className: styles.genLeft, children: [jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: jsx("span", { children: "Presets" }) }), jsx("div", { className: styles.genPresetGrid, children: presets.map((preset, i) => (jsx(NiceButton, { className: `${styles.genPresetBtn} ${i === selectedPresetIdx ? styles.genPresetBtnActive : ''}`, variant: i === selectedPresetIdx ? 'primary' : 'ghost', size: "sm", onClick: () => applyPreset(i), title: preset.name, children: preset.name }, i))) })] }), jsxs("div", { className: styles.panelSection, style: { flex: 1, overflowY: 'auto' }, children: [jsx("div", { className: styles.panelTitle, children: jsx("span", { children: "Parts" }) }), categories.map((cat) => {
273
273
  const parts = getPartsByCategory(cat);
274
274
  if (parts.length === 0) {
275
275
  return null;
@@ -281,13 +281,13 @@ const NiceSpriteGeneratorPanel = ({ onSendToCanvas, onClose, mode,
281
281
  textTransform: 'uppercase',
282
282
  }, children: cat.replace(/([A-Z])/g, ' $1').trim() }), jsx("div", { className: styles.genPartGrid, children: parts.map((part) => {
283
283
  const active = selectedParts.some((p) => { var _a; return p.partId === part.id && ((_a = p.visible) !== null && _a !== void 0 ? _a : true); });
284
- return (jsx(NiceButton, { className: `${styles.miniBtn} ${active ? styles.miniBtnActive : ''}`, variant: active ? 'primary' : 'ghost', size: "sm", onClick: () => (active ? removePart(part.id) : addPart(part.id)), title: part.name, children: part.name.slice(0, 8) }, part.id));
284
+ return (jsx(NiceButton, { className: `${styles.miniBtn} ${styles.genPartBtn} ${active ? styles.miniBtnActive : ''}`, variant: active ? 'primary' : 'ghost', size: "sm", onClick: () => (active ? removePart(part.id) : addPart(part.id)), title: part.name, children: part.name }, part.id));
285
285
  }) })] }, cat));
286
286
  })] })] }), jsxs("div", { className: styles.genCenter, children: [jsx("div", { className: styles.genPreviewWrap, children: jsx("canvas", { ref: previewRef, className: styles.genPreviewCanvas }) }), jsx("div", { className: styles.genDirGrid, children: ALL_DIRECTIONS.map((d) => (jsx(NiceButton, { className: `${styles.miniBtn} ${direction === d ? styles.miniBtnActive : ''}`, variant: direction === d ? 'primary' : 'ghost', size: "sm", onClick: () => setDirection(d), children: d }, d))) }), jsxs("div", { className: styles.genRow, children: [jsx("label", { style: { fontSize: 10, color: 'var(--nice-text-muted)' }, children: "Projection" }), jsx(NiceSelect, { className: styles.propSelect, value: projection, onChange: (val) => setProjection(val), options: [
287
287
  { value: 'topDown', label: 'Top-Down' },
288
288
  { value: 'sideView', label: 'Side View' },
289
289
  { value: 'iso25d', label: '2.5D Isometric' },
290
- ] })] }), jsxs("div", { className: styles.genRow, children: [jsx("label", { style: { fontSize: 10, color: 'var(--nice-text-muted)' }, children: "Size" }), jsx(NiceNumberInput, { className: styles.propInput, style: { width: 48 }, min: 8, max: 256, value: canvasW, onChange: (val) => setCanvasW(val !== null && val !== void 0 ? val : 32) }), jsx("span", { style: { fontSize: 10, color: 'var(--nice-text-muted)' }, children: "\u00D7" }), jsx(NiceNumberInput, { className: styles.propInput, style: { width: 48 }, min: 8, max: 256, value: canvasH, onChange: (val) => setCanvasH(val !== null && val !== void 0 ? val : 32) })] }), jsx(NiceCheckbox, { checked: generate8Dir, onChange: (checked) => setGenerate8Dir(checked), label: "Generate 8-direction sheet", className: styles.checkLabel })] }), jsxs("div", { className: styles.genRight, children: [jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: jsx("span", { children: "Colors" }) }), paletteGroups.map((group) => {
290
+ ] })] }), jsxs("div", { className: styles.genRow, children: [jsx("label", { style: { fontSize: 10, color: 'var(--nice-text-muted)' }, children: "Size" }), jsx(NiceNumberInput, { min: 8, max: 256, value: canvasW, onChange: (val) => setCanvasW(val !== null && val !== void 0 ? val : 32) }), jsx("span", { style: { fontSize: 10, color: 'var(--nice-text-muted)' }, children: "\u00D7" }), jsx(NiceNumberInput, { min: 8, max: 256, value: canvasH, onChange: (val) => setCanvasH(val !== null && val !== void 0 ? val : 32) })] }), jsx(NiceCheckbox, { checked: generate8Dir, onChange: (checked) => setGenerate8Dir(checked), label: "Generate 8-direction sheet", className: styles.checkLabel })] }), jsxs("div", { className: styles.genRight, children: [jsxs("div", { className: styles.panelSection, children: [jsx("div", { className: styles.panelTitle, children: jsx("span", { children: "Colors" }) }), paletteGroups.map((group) => {
291
291
  var _a;
292
292
  return (jsxs("div", { style: { marginBottom: 6 }, children: [jsx("div", { style: { fontSize: 9, color: 'var(--nice-text-muted)', marginBottom: 2 }, children: group.label }), jsx(NiceSelect, { className: styles.propSelect, value: group.value, onChange: (val) => group.set(val), options: group.options.map((opt) => ({
293
293
  value: opt.id,
@@ -313,7 +313,7 @@ const Nice3DTexturePainter = ({ textureWidth = 1024, textureHeight = 1024, onSav
313
313
  cursor: 'pointer',
314
314
  fontSize: 11,
315
315
  background: active ? 'var(--nice-info, #339af0)' : 'var(--nice-bg-secondary, #2c2e33)',
316
- color: active ? 'var(--nice-text-on-primary, #fff)' : 'var(--nice-text, #c1c2c5)',
316
+ color: active ? 'var(--nice-color-white, #fff)' : 'var(--nice-text, #c1c2c5)',
317
317
  display: 'flex',
318
318
  alignItems: 'center',
319
319
  gap: 4,
@@ -387,7 +387,7 @@ const Nice3DTexturePainter = ({ textureWidth = 1024, textureHeight = 1024, onSav
387
387
  ? 'var(--nice-info, #339af0)'
388
388
  : 'var(--nice-bg-secondary, #2c2e33)',
389
389
  color: painter.activeLayerId === l.id
390
- ? 'var(--nice-text-on-primary, #fff)'
390
+ ? 'var(--nice-color-white, #fff)'
391
391
  : 'var(--nice-text, #c1c2c5)',
392
392
  }, children: [jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 4, cursor: 'pointer' }, onClick: () => painter.setActiveLayerId(l.id), children: [jsx("button", { onClick: (e) => {
393
393
  e.stopPropagation();
@@ -344,7 +344,7 @@ const NiceUIDesigner = ({ onChange, onExport, className = '', tutorial, }) => {
344
344
  cursor: 'pointer',
345
345
  fontSize: 11,
346
346
  background: active ? 'var(--nice-info, #339af0)' : 'var(--nice-bg-secondary, #2c2e33)',
347
- color: active ? 'var(--nice-text-on-primary, #fff)' : 'var(--nice-text, #c1c2c5)',
347
+ color: active ? 'var(--nice-color-white, #fff)' : 'var(--nice-text, #c1c2c5)',
348
348
  });
349
349
  const fieldStyle = {
350
350
  width: '100%',
@@ -115,7 +115,5 @@ const NiceVectorEditor = ({ width: artW = 512, height: artH = 512, className, on
115
115
  }
116
116
  }, children: t('vectorEditor.snippet.copyAgain', 'Copy again') }), jsx(NiceButton, { variant: "ghost", onClick: () => setSnippetOpen(false), children: t('vectorEditor.snippet.close', 'Close') })] })] })] }));
117
117
  };
118
- /** @deprecated Use NiceVectorEditor */
119
- const VectorEditor = NiceVectorEditor;
120
118
 
121
- export { NiceVectorEditor, VectorEditor };
119
+ export { NiceVectorEditor };
@@ -25,9 +25,5 @@ export type NiceAnimatedPersonProps = {
25
25
  /** Convenience height — currently informational, retained for API symmetry. */
26
26
  height?: number;
27
27
  };
28
- /** @deprecated Use NiceAnimatedPersonProps */
29
- export type AnimatedPersonProps = NiceAnimatedPersonProps;
30
28
  declare const NiceAnimatedPerson: React.FC<NiceAnimatedPersonProps>;
31
- /** @deprecated Use NiceAnimatedPerson */
32
- export declare const AnimatedPerson: React.FC<NiceAnimatedPersonProps>;
33
29
  export default NiceAnimatedPerson;
@@ -16,9 +16,5 @@ export interface NiceAnimationEditorProps {
16
16
  className?: string;
17
17
  style?: React.CSSProperties;
18
18
  }
19
- /** @deprecated Use NiceAnimationEditorProps */
20
- export type AnimationEditorProps = NiceAnimationEditorProps;
21
- export declare function NiceAnimationEditor({ initialConfig, onChange, storageKey, onNotify, showJsonPanel, showPreview, className, style, }: AnimationEditorProps): React.JSX.Element;
22
- /** @deprecated Use NiceAnimationEditor */
23
- export declare const AnimationEditor: typeof NiceAnimationEditor;
19
+ export declare function NiceAnimationEditor({ initialConfig, onChange, storageKey, onNotify, showJsonPanel, showPreview, className, style, }: NiceAnimationEditorProps): React.JSX.Element;
24
20
  export default NiceAnimationEditor;
@@ -12,10 +12,6 @@ export type NiceAudienceProps = {
12
12
  /** Optional explicit height (forwarded to grid container). */
13
13
  height?: number | string;
14
14
  };
15
- /** @deprecated Use NiceAudienceProps */
16
- export type AudienceProps = NiceAudienceProps;
17
15
  /** Grid of animated audience members with wave/cheer actions. */
18
16
  declare const NiceAudience: React.FC<NiceAudienceProps>;
19
- /** @deprecated Use NiceAudience */
20
- export declare const Audience: React.FC<NiceAudienceProps>;
21
17
  export default NiceAudience;
@@ -7,10 +7,6 @@ export type NiceBodyRendererProps = {
7
7
  /** Optional pixel size. Defaults to character.size (or 180). */
8
8
  size?: number;
9
9
  };
10
- /** @deprecated Use NiceBodyRendererProps */
11
- export type BodyRendererProps = NiceBodyRendererProps;
12
10
  /** Static character body composed from modular SVG shapes. */
13
11
  export declare const NiceBodyRenderer: React.FC<NiceBodyRendererProps>;
14
- /** @deprecated Use NiceBodyRenderer */
15
- export declare const BodyRenderer: React.FC<NiceBodyRendererProps>;
16
12
  export default NiceBodyRenderer;
@@ -2,9 +2,6 @@ import React from 'react';
2
2
  import type { ChoreoStep } from '../animationHelper';
3
3
  import type { CharacterConfig } from '../characterTypes';
4
4
  import { type RigConfig, type RigPose } from './rigTypes';
5
- /** @deprecated Use NiceRigPlayerHandle */
6
- export interface RigPlayerHandle extends NiceRigPlayerHandle {
7
- }
8
5
  /** Public methods exposed via ref. */
9
6
  export interface NiceRigPlayerHandle {
10
7
  /** Set pose immediately (no tween). */
@@ -31,9 +28,5 @@ export type NiceRigPlayerProps = {
31
28
  /** Show debug joints. */
32
29
  debug?: boolean;
33
30
  };
34
- /** @deprecated Use NiceRigPlayerProps */
35
- export type RigPlayerProps = NiceRigPlayerProps;
36
31
  declare const NiceRigPlayer: React.ForwardRefExoticComponent<NiceRigPlayerProps & React.RefAttributes<NiceRigPlayerHandle>>;
37
- /** @deprecated Use NiceRigPlayer */
38
- export declare const RigPlayer: React.ForwardRefExoticComponent<NiceRigPlayerProps & React.RefAttributes<NiceRigPlayerHandle>>;
39
32
  export default NiceRigPlayer;
@@ -2,8 +2,6 @@ import React from 'react';
2
2
  import type { CharacterConfig } from '../characterTypes';
3
3
  import { type RigConfig, type RigPose } from './rigTypes';
4
4
  /** Props for the rigged body renderer (pure SVG). */
5
- /** @deprecated Use NiceRiggedBodyProps */
6
- export type RiggedBodyProps = NiceRiggedBodyProps;
7
5
  export type NiceRiggedBodyProps = {
8
6
  /** Character visuals (colors). */
9
7
  character: CharacterConfig;
@@ -18,6 +16,4 @@ export type NiceRiggedBodyProps = {
18
16
  };
19
17
  /** Render a multi-bone body (arms: 3, legs: 3, torso: 3, neck+head). */
20
18
  declare const NiceRiggedBody: React.FC<NiceRiggedBodyProps>;
21
- /** @deprecated Use NiceRiggedBody */
22
- export declare const RiggedBody: React.FC<NiceRiggedBodyProps>;
23
19
  export default NiceRiggedBody;
@@ -18,7 +18,3 @@ export declare const HEAD_RENDERERS: Record<string, React.FC<HeadProps>>;
18
18
  export declare const NiceHead: React.FC<HeadProps & {
19
19
  variant: string;
20
20
  }>;
21
- /** @deprecated Use NiceHead */
22
- export declare const Head: React.FC<HeadProps & {
23
- variant: string;
24
- }>;
@@ -13,9 +13,5 @@ export interface NiceGameAsset2dEditorProps {
13
13
  onSave?: (project: unknown) => void;
14
14
  onExport?: (data: string, format: string) => void;
15
15
  }
16
- /** @deprecated Use NiceGameAsset2dEditorProps */
17
- export type GameAsset2dEditorProps = NiceGameAsset2dEditorProps;
18
16
  export declare const NiceGameAsset2dEditor: React.FC<NiceGameAsset2dEditorProps>;
19
- /** @deprecated Use NiceGameAsset2dEditor */
20
- export declare const GameAsset2dEditor: React.FC<NiceGameAsset2dEditorProps>;
21
17
  export default NiceGameAsset2dEditor;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * game/index.ts — Public exports for GameAsset2dEditor
3
3
  */
4
- export { NiceGameAsset2dEditor, GameAsset2dEditor, type NiceGameAsset2dEditorProps, type GameAsset2dEditorProps, } from './GameAsset2dEditor';
4
+ export { NiceGameAsset2dEditor, type NiceGameAsset2dEditorProps } from './GameAsset2dEditor';
5
5
  export { useGameAssetEditor, type GameAssetEditorApi, type UseGameAssetEditorOptions, } from './useGameAssetEditor';
6
6
  export type { TileMapMode, TileDefinition, CollisionShape, TileLayer, TileMap, SpriteFrame, SpriteSheet, SpriteAnimation, AnimationState, AnimationTransition, TransitionCondition, AnimationParameter, AnimationStateMachine, EffectType, Effect, EffectPreset, GameAssetProject, ProjectSettings, EditorMode, TileMapTool, SpriteSheetTool, EditorState, ExportOptions, TiledExport, UnityExport, HistoryEntry, } from './gameAssetTypes';
7
7
  export { TILE_MAP_TOOLS, EFFECT_DEFAULTS, DEFAULT_PROJECT_SETTINGS } from './gameAssetTypes';