@nice2dev/ui-graphics 1.0.0 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +147 -1
- package/dist/cjs/animation/AnimatedPerson.js +2 -2
- package/dist/cjs/animation/AnimatedPerson.js.map +1 -1
- package/dist/cjs/animation/AnimationEditor.js +11 -6
- package/dist/cjs/animation/AnimationEditor.js.map +1 -1
- package/dist/cjs/animation/Audience.js +4 -3
- package/dist/cjs/animation/Audience.js.map +1 -1
- package/dist/cjs/animation/BodyRenderer.js +5 -2
- package/dist/cjs/animation/BodyRenderer.js.map +1 -1
- package/dist/cjs/animation/rig/RigPlayer.js +2 -2
- package/dist/cjs/animation/rig/RigPlayer.js.map +1 -1
- package/dist/cjs/animation/rig/RiggedBody.js +2 -2
- package/dist/cjs/animation/rig/RiggedBody.js.map +1 -1
- package/dist/cjs/animation/shapes/heads.js +4 -1
- package/dist/cjs/animation/shapes/heads.js.map +1 -1
- package/dist/cjs/core/LocalUI.js +1 -1
- package/dist/cjs/core/NiceBrushEngine.js +446 -0
- package/dist/cjs/core/NiceBrushEngine.js.map +1 -0
- package/dist/cjs/core/yjsCollaboration.js +292 -0
- package/dist/cjs/core/yjsCollaboration.js.map +1 -0
- package/dist/cjs/font/NiceFontEditor.js +89 -85
- package/dist/cjs/font/NiceFontEditor.js.map +1 -1
- package/dist/cjs/font/fontFormatUtils.js +468 -0
- package/dist/cjs/font/fontFormatUtils.js.map +1 -0
- package/dist/cjs/game/GameAsset2dEditor.js +38 -24
- package/dist/cjs/game/GameAsset2dEditor.js.map +1 -1
- package/dist/cjs/icon/NiceIconEditor.js +218 -133
- package/dist/cjs/icon/NiceIconEditor.js.map +1 -1
- package/dist/cjs/index.js +83 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/nice2dev-ui-graphics.css +1 -1
- package/dist/cjs/photo/NiceAITools.js +446 -0
- package/dist/cjs/photo/NiceAITools.js.map +1 -0
- package/dist/cjs/photo/PhotoEditor.js +2 -2
- package/dist/cjs/photo/PhotoEditor.js.map +1 -1
- package/dist/cjs/pixel/PixelEditor.js +16 -5
- package/dist/cjs/pixel/PixelEditor.js.map +1 -1
- package/dist/cjs/pixel/PixelEditor.module.css.js +1 -1
- package/dist/cjs/pixel/PixelEditorMenuBar.js +2 -1
- package/dist/cjs/pixel/PixelEditorMenuBar.js.map +1 -1
- package/dist/cjs/pixel/PixelEditorRightPanel.js +3 -2
- package/dist/cjs/pixel/PixelEditorRightPanel.js.map +1 -1
- package/dist/cjs/pixel/PixelEditorTimeline.js +2 -1
- package/dist/cjs/pixel/PixelEditorTimeline.js.map +1 -1
- package/dist/cjs/pixel/PixelEditorToolbar.js +2 -1
- package/dist/cjs/pixel/PixelEditorToolbar.js.map +1 -1
- package/dist/cjs/pixel/SpriteGeneratorPanel.js +224 -0
- package/dist/cjs/pixel/SpriteGeneratorPanel.js.map +1 -0
- package/dist/cjs/pixel/animalGeneratorPresets.js +654 -0
- package/dist/cjs/pixel/animalGeneratorPresets.js.map +1 -0
- package/dist/cjs/pixel/buildingGeneratorPresets.js +573 -0
- package/dist/cjs/pixel/buildingGeneratorPresets.js.map +1 -0
- package/dist/cjs/pixel/characterGeneratorPresets.js +563 -0
- package/dist/cjs/pixel/characterGeneratorPresets.js.map +1 -0
- package/dist/cjs/pixel/spriteGeneratorCore.js +297 -0
- package/dist/cjs/pixel/spriteGeneratorCore.js.map +1 -0
- package/dist/cjs/pixel/usePixelEditor.js +16 -0
- package/dist/cjs/pixel/usePixelEditor.js.map +1 -1
- package/dist/cjs/texture/Nice3DTexturePainter.js +123 -79
- package/dist/cjs/texture/Nice3DTexturePainter.js.map +1 -1
- package/dist/cjs/ui/NiceUIDesigner.js +175 -62
- package/dist/cjs/ui/NiceUIDesigner.js.map +1 -1
- package/dist/cjs/ui/dist/index.js +50089 -0
- package/dist/cjs/ui/dist/index.js.map +1 -0
- package/dist/cjs/vector/NiceSvgToCode.js +427 -0
- package/dist/cjs/vector/NiceSvgToCode.js.map +1 -0
- package/dist/cjs/vector/VectorEditor.js +7 -3
- package/dist/cjs/vector/VectorEditor.js.map +1 -1
- package/dist/cjs/vector/VectorEditor.module.css.js +1 -1
- package/dist/cjs/vector/VectorEditorMenuBar.js +5 -1
- package/dist/cjs/vector/VectorEditorMenuBar.js.map +1 -1
- package/dist/cjs/vector/VectorEditorRightPanel.js +23 -19
- package/dist/cjs/vector/VectorEditorRightPanel.js.map +1 -1
- package/dist/esm/animation/AnimatedPerson.js +2 -2
- package/dist/esm/animation/AnimatedPerson.js.map +1 -1
- package/dist/esm/animation/AnimationEditor.js +12 -8
- package/dist/esm/animation/AnimationEditor.js.map +1 -1
- package/dist/esm/animation/Audience.js +5 -4
- package/dist/esm/animation/Audience.js.map +1 -1
- package/dist/esm/animation/BodyRenderer.js +4 -2
- package/dist/esm/animation/BodyRenderer.js.map +1 -1
- package/dist/esm/animation/rig/RigPlayer.js +4 -4
- package/dist/esm/animation/rig/RigPlayer.js.map +1 -1
- package/dist/esm/animation/rig/RiggedBody.js +2 -2
- package/dist/esm/animation/rig/RiggedBody.js.map +1 -1
- package/dist/esm/animation/shapes/heads.js +4 -2
- package/dist/esm/animation/shapes/heads.js.map +1 -1
- package/dist/esm/core/LocalUI.js +4 -4
- package/dist/esm/core/NiceBrushEngine.js +442 -0
- package/dist/esm/core/NiceBrushEngine.js.map +1 -0
- package/dist/esm/core/yjsCollaboration.js +283 -0
- package/dist/esm/core/yjsCollaboration.js.map +1 -0
- package/dist/esm/font/NiceFontEditor.js +89 -85
- package/dist/esm/font/NiceFontEditor.js.map +1 -1
- package/dist/esm/font/fontFormatUtils.js +461 -0
- package/dist/esm/font/fontFormatUtils.js.map +1 -0
- package/dist/esm/game/GameAsset2dEditor.js +38 -25
- package/dist/esm/game/GameAsset2dEditor.js.map +1 -1
- package/dist/esm/icon/NiceIconEditor.js +218 -133
- package/dist/esm/icon/NiceIconEditor.js.map +1 -1
- package/dist/esm/index.js +21 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/nice2dev-ui-graphics.css +1 -1
- package/dist/esm/photo/NiceAITools.js +439 -0
- package/dist/esm/photo/NiceAITools.js.map +1 -0
- package/dist/esm/photo/PhotoEditor.js +2 -2
- package/dist/esm/photo/PhotoEditor.js.map +1 -1
- package/dist/esm/pixel/PixelEditor.js +16 -6
- package/dist/esm/pixel/PixelEditor.js.map +1 -1
- package/dist/esm/pixel/PixelEditor.module.css.js +1 -1
- package/dist/esm/pixel/PixelEditorMenuBar.js +2 -1
- package/dist/esm/pixel/PixelEditorMenuBar.js.map +1 -1
- package/dist/esm/pixel/PixelEditorRightPanel.js +3 -2
- package/dist/esm/pixel/PixelEditorRightPanel.js.map +1 -1
- package/dist/esm/pixel/PixelEditorTimeline.js +2 -1
- package/dist/esm/pixel/PixelEditorTimeline.js.map +1 -1
- package/dist/esm/pixel/PixelEditorToolbar.js +2 -1
- package/dist/esm/pixel/PixelEditorToolbar.js.map +1 -1
- package/dist/esm/pixel/SpriteGeneratorPanel.js +222 -0
- package/dist/esm/pixel/SpriteGeneratorPanel.js.map +1 -0
- package/dist/esm/pixel/animalGeneratorPresets.js +647 -0
- package/dist/esm/pixel/animalGeneratorPresets.js.map +1 -0
- package/dist/esm/pixel/buildingGeneratorPresets.js +566 -0
- package/dist/esm/pixel/buildingGeneratorPresets.js.map +1 -0
- package/dist/esm/pixel/characterGeneratorPresets.js +556 -0
- package/dist/esm/pixel/characterGeneratorPresets.js.map +1 -0
- package/dist/esm/pixel/spriteGeneratorCore.js +279 -0
- package/dist/esm/pixel/spriteGeneratorCore.js.map +1 -0
- package/dist/esm/pixel/usePixelEditor.js +16 -0
- package/dist/esm/pixel/usePixelEditor.js.map +1 -1
- package/dist/esm/texture/Nice3DTexturePainter.js +123 -79
- package/dist/esm/texture/Nice3DTexturePainter.js.map +1 -1
- package/dist/esm/ui/NiceUIDesigner.js +175 -62
- package/dist/esm/ui/NiceUIDesigner.js.map +1 -1
- package/dist/esm/ui/dist/index.js +49686 -0
- package/dist/esm/ui/dist/index.js.map +1 -0
- package/dist/esm/vector/NiceSvgToCode.js +423 -0
- package/dist/esm/vector/NiceSvgToCode.js.map +1 -0
- package/dist/esm/vector/VectorEditor.js +7 -4
- package/dist/esm/vector/VectorEditor.js.map +1 -1
- package/dist/esm/vector/VectorEditor.module.css.js +1 -1
- package/dist/esm/vector/VectorEditorMenuBar.js +5 -1
- package/dist/esm/vector/VectorEditorMenuBar.js.map +1 -1
- package/dist/esm/vector/VectorEditorRightPanel.js +23 -19
- package/dist/esm/vector/VectorEditorRightPanel.js.map +1 -1
- package/package.json +3 -4
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var PixelEditor_module = require('./PixelEditor.module.css.js');
|
|
6
|
+
var index = require('../ui/dist/index.js');
|
|
6
7
|
|
|
7
|
-
const PixelEditorMenuBar = React.memo(({ api, hasOnSaveToLibrary }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.menuBar, children: [jsxRuntime.jsx(
|
|
8
|
+
const PixelEditorMenuBar = React.memo(({ api, hasOnSaveToLibrary, onOpenGenerator }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.menuBar, children: [jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.setDlgNew(true), children: "New" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = api.fInp.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Open" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.exportAse, children: "Save .ase" }), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.exportPNG, children: "PNG" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.exportJPG, children: "JPG" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.exportWebP, children: "WebP" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.exportBMP, children: "BMP" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.exportSVG, children: "SVG" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.exportSheet, children: "Sheet" }), hasOnSaveToLibrary && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.saveToLibrary, children: "\uD83D\uDCE6 Save to Library" })] })), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.undo, children: "Undo" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.redo, children: "Redo" }), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.flipCv("h"), children: "Flip H" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.flipCv("v"), children: "Flip V" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.rotateCv, children: "Rot 90\u00B0" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.clearCv, children: "Clear" }), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsxs(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: () => api.setGrid((g) => !g), children: ["Grid: ", api.grid ? "ON" : "OFF"] }), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.doCopy, disabled: !api.sel, children: "Copy" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.doCut, disabled: !api.sel, children: "Cut" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.doPaste, disabled: !api.clipboard.current, children: "Paste" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: api.doSelectAll, children: "Sel All" }), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.menuBtn, variant: "ghost", size: "sm", onClick: onOpenGenerator, children: "\uD83C\uDFA8 Generator" })] })));
|
|
8
9
|
PixelEditorMenuBar.displayName = "PixelEditorMenuBar";
|
|
9
10
|
|
|
10
11
|
module.exports = PixelEditorMenuBar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelEditorMenuBar.js","sources":["../../../src/pixel/PixelEditorMenuBar.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","_jsx","_Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PixelEditorMenuBar.js","sources":["../../../src/pixel/PixelEditorMenuBar.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","_jsx","NiceButton","_Fragment"],"mappings":"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"}
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var PixelEditor_module = require('./PixelEditor.module.css.js');
|
|
6
|
+
var index = require('../ui/dist/index.js');
|
|
6
7
|
var pixelEditorTypes = require('./pixelEditorTypes.js');
|
|
7
8
|
var HSVPicker = require('./HSVPicker.js');
|
|
8
9
|
|
|
9
|
-
const PixelEditorRightPanel = React.memo(({ api }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, children: [jsxRuntime.jsx("div", { className: PixelEditor_module.panelTitle, children: jsxRuntime.jsx("span", { children: "Brush" }) }), jsxRuntime.jsxs("div", { className: PixelEditor_module.brushSlider, children: [jsxRuntime.jsx("label", { children: "Size" }), jsxRuntime.jsx(
|
|
10
|
-
api.setEditingLayerName(null); }, autoFocus: true,
|
|
10
|
+
const PixelEditorRightPanel = React.memo(({ api }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.rightPanel, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, children: [jsxRuntime.jsx("div", { className: PixelEditor_module.panelTitle, children: jsxRuntime.jsx("span", { children: "Brush" }) }), jsxRuntime.jsxs("div", { className: PixelEditor_module.brushSlider, children: [jsxRuntime.jsx("label", { children: "Size" }), jsxRuntime.jsx(index.NiceSlider, { min: 1, max: 64, value: api.brush.size, onChange: (val) => api.setBrush((b) => ({ ...b, size: val })), "aria-label": "Brush size" }), jsxRuntime.jsx("span", { children: api.brush.size })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.brushSlider, children: [jsxRuntime.jsx("label", { children: "Opacity" }), jsxRuntime.jsx(index.NiceSlider, { min: 1, max: 100, value: api.brush.opacity, onChange: (val) => api.setBrush((b) => ({ ...b, opacity: val })), "aria-label": "Brush opacity" }), jsxRuntime.jsxs("span", { children: [api.brush.opacity, "%"] })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.brushSlider, children: [jsxRuntime.jsx("label", { children: "Flow" }), jsxRuntime.jsx(index.NiceSlider, { min: 1, max: 100, value: api.brush.flow, onChange: (val) => api.setBrush((b) => ({ ...b, flow: val })), "aria-label": "Brush flow" }), jsxRuntime.jsxs("span", { children: [api.brush.flow, "%"] })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.brushSlider, children: [jsxRuntime.jsx("label", { children: "Hard" }), jsxRuntime.jsx(index.NiceSlider, { min: 0, max: 100, value: api.brush.hardness, onChange: (val) => api.setBrush((b) => ({ ...b, hardness: val })), "aria-label": "Brush hardness" }), jsxRuntime.jsxs("span", { children: [api.brush.hardness, "%"] })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.brushSlider, children: [jsxRuntime.jsx("label", { children: "Space" }), jsxRuntime.jsx(index.NiceSlider, { min: 1, max: 100, value: api.brush.spacing, onChange: (val) => api.setBrush((b) => ({ ...b, spacing: val })), "aria-label": "Brush spacing" }), jsxRuntime.jsxs("span", { children: [api.brush.spacing, "%"] })] }), jsxRuntime.jsx("div", { className: PixelEditor_module.brushShapes, children: pixelEditorTypes.BRUSH_SHAPES.map((s) => (jsxRuntime.jsx(index.NiceButton, { className: `${PixelEditor_module.miniBtn} ${api.brush.shape === s.id ? PixelEditor_module.miniBtnActive : ""}`, variant: api.brush.shape === s.id ? 'primary' : 'ghost', size: "sm", onClick: () => api.setBrush((b) => ({ ...b, shape: s.id })), title: s.label, children: s.icon }, s.id))) }), jsxRuntime.jsxs("div", { className: PixelEditor_module.pressureToggles, children: [jsxRuntime.jsx(index.NiceCheckbox, { checked: api.brush.pressureSize, onChange: (checked) => api.setBrush((b) => ({ ...b, pressureSize: checked })), label: "Pressure\u2192Size", className: PixelEditor_module.checkLabel }), jsxRuntime.jsx(index.NiceCheckbox, { checked: api.brush.pressureOpacity, onChange: (checked) => api.setBrush((b) => ({ ...b, pressureOpacity: checked })), label: "Pressure\u2192Opacity", className: PixelEditor_module.checkLabel })] })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.panelTitle, children: [jsxRuntime.jsx("span", { children: "Colour" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: () => api.setShowHSV(!api.showHSV), title: "Toggle HSV Picker", children: api.showHSV ? "▾" : "▸" })] }), api.showHSV && jsxRuntime.jsx(HSVPicker.HSVPicker, { color: api.col1, onChange: api.setCol1 })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.panelTitle, children: [jsxRuntime.jsx("span", { children: "Layers" }), jsxRuntime.jsxs("span", { children: [jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.addLayer, title: "Add Layer", "aria-label": "Add Layer", children: "+" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.dupLayer, title: "Duplicate Layer", "aria-label": "Duplicate Layer", children: "\u29C9" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.rmLayer, title: "Remove Layer", "aria-label": "Remove Layer", children: "\u2212" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.mergeDown, title: "Merge Down", "aria-label": "Merge Down", children: "\u2913" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.moveLayerUp, title: "Move Up", "aria-label": "Move Up", children: "\u2191" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.moveLayerDown, title: "Move Down", "aria-label": "Move Down", children: "\u2193" })] })] }), [...api.layers].map((l, i) => ({ l, i })).reverse().map(({ l, i }) => (jsxRuntime.jsxs("div", { className: `${PixelEditor_module.layerItem} ${i === api.aLi ? PixelEditor_module.layerItemActive : ""}`, onClick: () => api.setALi(i), children: [jsxRuntime.jsx("span", { className: PixelEditor_module.layerVis, onClick: (e) => { e.stopPropagation(); api.toggleVis(i); }, children: l.visible ? "👁" : "─" }), jsxRuntime.jsx("span", { className: PixelEditor_module.layerLock, onClick: (e) => { e.stopPropagation(); api.toggleLock(i); }, title: l.locked ? "Locked" : "Unlocked", children: l.locked ? "🔒" : "🔓" }), api.editingLayerName === l.id ? (jsxRuntime.jsx(index.NiceTextInput, { className: PixelEditor_module.layerNameInput, value: l.name, onChange: (val) => api.renameLayer(i, val), onBlur: () => api.setEditingLayerName(null), onKeyDown: (e) => { if (e.key === "Enter")
|
|
11
|
+
api.setEditingLayerName(null); }, autoFocus: true, "aria-label": "Layer name" })) : (jsxRuntime.jsx("span", { className: PixelEditor_module.layerName, onDoubleClick: (e) => { e.stopPropagation(); api.setEditingLayerName(l.id); }, children: l.name })), jsxRuntime.jsxs("span", { className: PixelEditor_module.layerOpacity, children: [Math.round((l.opacity / 255) * 100), "%"] })] }, l.id))), api.layers[api.aLi] && (jsxRuntime.jsxs("div", { className: PixelEditor_module.layerControls, children: [jsxRuntime.jsx(index.NiceSelect, { value: api.layers[api.aLi].blendMode, onChange: (val) => api.setLayerBlendMode(api.aLi, val), className: PixelEditor_module.blendSelect, "aria-label": "Blend mode", options: pixelEditorTypes.BLEND_MODES.map((m) => ({ value: m, label: m })) }), jsxRuntime.jsx(index.NiceSlider, { min: 0, max: 255, value: api.layers[api.aLi].opacity, onChange: (val) => api.setLayerOpacity(api.aLi, val), className: PixelEditor_module.layerOpSlider, title: `Opacity: ${Math.round((api.layers[api.aLi].opacity / 255) * 100)}%` })] }))] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.panelTitle, children: [jsxRuntime.jsx("span", { children: "Palette" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: () => { if (!api.pal.includes(api.col1))
|
|
11
12
|
api.setPal((p) => [...p, api.col1]); }, title: "Add current colour", children: "+" })] }), jsxRuntime.jsx("div", { className: PixelEditor_module.paletteGrid, children: api.pal.map((c, i) => (jsxRuntime.jsx("div", { className: `${PixelEditor_module.paletteSwatch} ${c === api.col1 ? PixelEditor_module.paletteSwatchActive : ""}`, style: { backgroundColor: c }, onClick: () => api.setCol1(c), onContextMenu: (e) => { e.preventDefault(); api.setCol2(c); }, title: c }, i))) })] })] })));
|
|
12
13
|
PixelEditorRightPanel.displayName = "PixelEditorRightPanel";
|
|
13
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelEditorRightPanel.js","sources":["../../../src/pixel/PixelEditorRightPanel.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","_jsx","BRUSH_SHAPES","HSVPicker","BLEND_MODES"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PixelEditorRightPanel.js","sources":["../../../src/pixel/PixelEditorRightPanel.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","_jsx","NiceSlider","BRUSH_SHAPES","NiceButton","NiceCheckbox","HSVPicker","NiceTextInput","NiceSelect","BLEND_MODES"],"mappings":";;;;;;;;;AAeA,MAAM,qBAAqB,GAAoB,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAChEA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAE/BD,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCC,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,kBAAM,CAAC,UAAU,EAAA,QAAA,EAAEC,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAkB,EAAA,CAAM,EAC3DF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCC,cAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAmB,EACnBA,cAAA,CAACC,gBAAU,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAChD,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAA,YAAA,EAClD,YAAY,EAAA,CAAG,EAC5BD,mCAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAA,CAAQ,CAAA,EAAA,CACzB,EACNF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCC,cAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,SAAA,EAAA,CAAsB,EACtBA,cAAA,CAACC,gBAAU,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EACpD,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAA,YAAA,EACrD,eAAe,EAAA,CAAG,EAC/BH,eAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,GAAG,CAAC,KAAK,CAAC,OAAO,EAAA,GAAA,CAAA,EAAA,CAAS,CAAA,EAAA,CAC7B,EACNA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCC,cAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAmB,EACnBA,eAACC,gBAAU,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EACjD,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAA,YAAA,EAClD,YAAY,EAAA,CAAG,EAC5BH,eAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,GAAG,CAAC,KAAK,CAAC,IAAI,EAAA,GAAA,CAAA,EAAA,CAAS,CAAA,EAAA,CAC1B,EACNA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCC,cAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAmB,EACnBA,eAACC,gBAAU,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EACrD,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAA,YAAA,EACtD,gBAAgB,EAAA,CAAG,EAChCH,eAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAA,GAAA,CAAA,EAAA,CAAS,CAAA,EAAA,CAC9B,EACNA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCC,cAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAoB,EACpBA,cAAA,CAACC,gBAAU,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EACpD,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAA,YAAA,EACrD,eAAe,EAAA,CAAG,EAC/BH,eAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAO,GAAG,CAAC,KAAK,CAAC,OAAO,EAAA,GAAA,CAAA,EAAA,CAAS,CAAA,EAAA,CAC7B,EACNE,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,kBAAM,CAAC,WAAW,EAAA,QAAA,EAC/BG,6BAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAClBF,cAAA,CAACG,gBAAU,IACT,SAAS,EAAE,CAAA,EAAGJ,kBAAM,CAAC,OAAO,CAAA,CAAA,EAAI,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,GAAGA,kBAAM,CAAC,aAAa,GAAG,EAAE,CAAA,CAAE,EACtF,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,OAAO,EACvD,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAC3D,KAAK,EAAE,CAAC,CAAC,KAAK,EAAA,QAAA,EACb,CAAC,CAAC,IAAI,EAAA,EANQ,CAAC,CAAC,EAAE,CAOR,CACd,CAAC,EAAA,CACE,EACND,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpCC,cAAA,CAACI,kBAAY,EAAA,EAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,YAAY,EAC3C,QAAQ,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAC7E,KAAK,EAAC,oBAAe,EACrB,SAAS,EAAEL,kBAAM,CAAC,UAAU,EAAA,CAAI,EAClCC,cAAA,CAACI,kBAAY,EAAA,EAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,eAAe,EAC9C,QAAQ,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC,EAChF,KAAK,EAAC,uBAAkB,EACxB,SAAS,EAAEL,kBAAM,CAAC,UAAU,EAAA,CAAI,CAAA,EAAA,CAC9B,CAAA,EAAA,CACF,EAGND,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,YAAY,aACjCD,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BC,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAmB,EACnBA,cAAA,CAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,EAAC,mBAAmB,EAAA,QAAA,EACzG,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,GACb,CAAA,EAAA,CACT,EACL,GAAG,CAAC,OAAO,IAAIH,cAAA,CAACK,mBAAS,IAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAA,CAAI,CAAA,EAAA,CACjE,EAGNP,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCD,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BC,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAmB,EACnBF,eAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CACEE,cAAA,CAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAC,WAAW,EAAA,YAAA,EAAY,WAAW,EAAA,QAAA,EAAA,GAAA,EAAA,CAAe,EACpHH,cAAA,CAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAC,iBAAiB,EAAA,YAAA,EAAY,iBAAiB,EAAA,QAAA,EAAA,QAAA,EAAA,CAAe,EAChIH,cAAA,CAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAC,cAAc,EAAA,YAAA,EAAY,cAAc,EAAA,QAAA,EAAA,QAAA,EAAA,CAAe,EACzHH,cAAA,CAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,EAAC,YAAY,EAAA,YAAA,EAAY,YAAY,EAAA,QAAA,EAAA,QAAA,EAAA,CAAe,EACvHH,eAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,EAAC,SAAS,EAAA,YAAA,EAAY,SAAS,EAAA,QAAA,EAAA,QAAA,EAAA,CAAe,EACnHH,cAAA,CAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,EAAC,WAAW,EAAA,YAAA,EAAY,WAAW,EAAA,QAAA,EAAA,QAAA,EAAA,CAAe,CAAA,EAAA,CACpH,CAAA,EAAA,CACH,EACL,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAChEL,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGC,kBAAM,CAAC,SAAS,CAAA,CAAA,EAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAGA,kBAAM,CAAC,eAAe,GAAG,EAAE,CAAA,CAAE,EAC/E,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAA,QAAA,EAAA,CAC5BC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAED,kBAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAI,EAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAA,QAAA,EACzF,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,GAAG,EAAA,CAClB,EACPC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAED,kBAAM,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,KAAI,EAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5F,KAAK,EAAE,CAAC,CAAC,MAAM,GAAG,QAAQ,GAAG,UAAU,EAAA,QAAA,EACtC,CAAC,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAA,CAClB,EACN,GAAG,CAAC,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAC5BC,cAAA,CAACM,mBAAa,IAAC,SAAS,EAAEP,kBAAM,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAC5D,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAC1C,MAAM,EAAE,MAAM,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAC3C,SAAS,EAAE,CAAC,CAAC,KAAI,EAAG,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;AAAE,gCAAA,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC3E,SAAS,EAAA,IAAA,EAAA,YAAA,EACE,YAAY,EAAA,CAAG,KAE5BC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAED,kBAAM,CAAC,SAAS,EAC/B,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAC5E,CAAC,CAAC,IAAI,EAAA,CACF,CACR,EACDD,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEC,kBAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAA,EAAA,EAvB3E,CAAC,CAAC,EAAE,CAwBR,CACP,CAAC,EACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAClBD,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CAClCC,cAAA,CAACO,gBAAU,IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,EAC9C,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAiC,CAAC,EACpF,SAAS,EAAER,kBAAM,CAAC,WAAW,gBAClB,YAAY,EACvB,OAAO,EAAES,4BAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAyB,EAAA,CACjF,EACFR,cAAA,CAACC,gBAAU,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAC9D,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EACpD,SAAS,EAAEF,kBAAM,CAAC,aAAa,EAC/B,KAAK,EAAE,CAAA,SAAA,EAAY,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC,CAAA,CAAA,CAAG,GAAI,CAAA,EAAA,CAC7E,CACP,CAAA,EAAA,CACG,EAGND,yBAAK,SAAS,EAAEC,kBAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCD,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,kBAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BC,+CAAoB,EACpBA,cAAA,CAACG,gBAAU,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,MAAK,EAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,gCAAA,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5H,KAAK,EAAC,oBAAoB,EAAA,QAAA,EAAA,GAAA,EAAA,CAAe,CAAA,EAAA,CACvC,EACNH,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,kBAAM,CAAC,WAAW,EAAA,QAAA,EAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAChBC,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGD,kBAAM,CAAC,aAAa,CAAA,CAAA,EAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAGA,kBAAM,CAAC,mBAAmB,GAAG,EAAE,CAAA,CAAE,EACxF,KAAK,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAC7B,OAAO,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAC7B,aAAa,EAAE,CAAC,CAAC,KAAI,EAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC7D,KAAK,EAAE,CAAC,EAAA,EALA,CAAC,CAKG,CACf,CAAC,EAAA,CACE,CAAA,EAAA,CACF,CAAA,EAAA,CACF,CACP;AAED,qBAAqB,CAAC,WAAW,GAAG,uBAAuB;;;;"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var PixelEditor_module = require('./PixelEditor.module.css.js');
|
|
6
|
+
var index = require('../ui/dist/index.js');
|
|
6
7
|
|
|
7
|
-
const PixelEditorTimeline = React.memo(({ api }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.bottomPanel, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.timelineControls, children: [jsxRuntime.jsx("
|
|
8
|
+
const PixelEditorTimeline = React.memo(({ api }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.bottomPanel, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.timelineControls, children: [jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.addFrame, children: "+ Frame" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.dupFrame, "aria-label": "Duplicate frame", children: "Dup" }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: api.rmFrame, "aria-label": "Remove frame", children: "\u2212 Frame" }), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceButton, { variant: "ghost", size: "sm", onClick: () => api.setPlaying((p) => !p), children: api.playing ? "⏸" : "▶" }), jsxRuntime.jsx("label", { children: "FPS:" }), jsxRuntime.jsx(index.NiceNumberInput, { min: 1, max: 60, value: api.fps, onChange: (val) => api.setFps(val !== null && val !== void 0 ? val : 8), "aria-label": "Frames per second" }), jsxRuntime.jsx("div", { className: PixelEditor_module.menuSep }), jsxRuntime.jsx(index.NiceCheckbox, { checked: api.onion, onChange: (checked) => api.setOnion(checked), label: "Onion" }), jsxRuntime.jsx("div", { style: { flex: 1 } }), jsxRuntime.jsxs("span", { children: [api.fc, " frame", api.fc !== 1 ? "s" : ""] })] }), jsxRuntime.jsx("div", { className: PixelEditor_module.timelineFrames, children: Array.from({ length: api.fc }, (_, fi) => (jsxRuntime.jsxs("div", { className: `${PixelEditor_module.frameThumb} ${fi === api.afi ? PixelEditor_module.frameThumbActive : ""}`, onClick: () => api.setAfi(fi), children: [api.thumbs[fi] && (jsxRuntime.jsx("img", { src: api.thumbs[fi], alt: `Frame ${fi + 1}`, style: { width: 36, height: 36, imageRendering: "pixelated", objectFit: "contain" } })), jsxRuntime.jsx("span", { className: PixelEditor_module.frameNum, children: fi + 1 })] }, fi))) })] })));
|
|
8
9
|
PixelEditorTimeline.displayName = "PixelEditorTimeline";
|
|
9
10
|
|
|
10
11
|
module.exports = PixelEditorTimeline;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelEditorTimeline.js","sources":["../../../src/pixel/PixelEditorTimeline.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PixelEditorTimeline.js","sources":["../../../src/pixel/PixelEditorTimeline.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","_jsx","NiceButton","NiceNumberInput","NiceCheckbox"],"mappings":"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"}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var PixelEditor_module = require('./PixelEditor.module.css.js');
|
|
6
|
+
var index = require('../ui/dist/index.js');
|
|
6
7
|
var pixelEditorTypes = require('./pixelEditorTypes.js');
|
|
7
8
|
|
|
8
|
-
const PixelEditorToolbar = React.memo(({ api }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.toolbar, children: [pixelEditorTypes.TOOLS.map((t) => (jsxRuntime.jsx(
|
|
9
|
+
const PixelEditorToolbar = React.memo(({ api }) => (jsxRuntime.jsxs("div", { className: PixelEditor_module.toolbar, children: [pixelEditorTypes.TOOLS.map((t) => (jsxRuntime.jsx(index.NiceButton, { className: `${PixelEditor_module.toolBtn} ${api.tool === t.id ? PixelEditor_module.toolBtnActive : ""}`, variant: api.tool === t.id ? 'primary' : 'ghost', size: "sm", onClick: () => api.setTool(t.id), title: `${t.label} (${t.key})`, children: t.icon }, t.id))), jsxRuntime.jsx("div", { className: PixelEditor_module.toolSep }), jsxRuntime.jsx(index.NiceButton, { className: `${PixelEditor_module.toolBtn} ${api.shapeFilled ? PixelEditor_module.toolBtnActive : ""}`, variant: api.shapeFilled ? 'primary' : 'ghost', size: "sm", onClick: () => api.setShapeFilled((f) => !f), title: `${api.shapeFilled ? "Filled" : "Outline"} (F)`, children: api.shapeFilled ? "■" : "□" }), jsxRuntime.jsx("div", { className: PixelEditor_module.toolGroup, children: pixelEditorTypes.SYMMETRY_MODES.map((m) => (jsxRuntime.jsx(index.NiceButton, { className: `${PixelEditor_module.miniBtn} ${api.symmetry === m.id ? PixelEditor_module.miniBtnActive : ""}`, variant: api.symmetry === m.id ? 'primary' : 'ghost', size: "sm", onClick: () => api.setSymmetry(m.id), title: `Symmetry: ${m.label}`, children: m.label.slice(0, 2) }, m.id))) }), jsxRuntime.jsxs("div", { className: PixelEditor_module.colorSwatches, children: [jsxRuntime.jsx("label", { style: { position: "relative", width: 28, height: 28, cursor: "pointer" }, title: "Primary Colour (click for HSV)", children: jsxRuntime.jsx(index.NiceColorPicker, { value: api.col1, onChange: (c) => api.setCol1(c) }) }), jsxRuntime.jsx("label", { style: { position: "relative", width: 22, height: 22, cursor: "pointer" }, title: "Secondary Colour", children: jsxRuntime.jsx(index.NiceColorPicker, { value: api.col2, onChange: (c) => api.setCol2(c) }) }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.toolBtn, variant: "ghost", size: "sm", onClick: () => {
|
|
9
10
|
const tmp = api.col1;
|
|
10
11
|
api.setCol1(api.col2);
|
|
11
12
|
api.setCol2(tmp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelEditorToolbar.js","sources":["../../../src/pixel/PixelEditorToolbar.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","TOOLS","_jsx","SYMMETRY_MODES"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PixelEditorToolbar.js","sources":["../../../src/pixel/PixelEditorToolbar.tsx"],"sourcesContent":[null],"names":["_jsxs","styles","TOOLS","_jsx","NiceButton","SYMMETRY_MODES","NiceColorPicker"],"mappings":"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"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var PixelEditor_module = require('./PixelEditor.module.css.js');
|
|
6
|
+
var index = require('../ui/dist/index.js');
|
|
7
|
+
var spriteGeneratorCore = require('./spriteGeneratorCore.js');
|
|
8
|
+
var characterGeneratorPresets = require('./characterGeneratorPresets.js');
|
|
9
|
+
var buildingGeneratorPresets = require('./buildingGeneratorPresets.js');
|
|
10
|
+
var animalGeneratorPresets = require('./animalGeneratorPresets.js');
|
|
11
|
+
|
|
12
|
+
/* ════════════════════════════════════════════════════════════════
|
|
13
|
+
INITIALIZATION
|
|
14
|
+
════════════════════════════════════════════════════════════════ */
|
|
15
|
+
let _initialized = false;
|
|
16
|
+
function ensureInitialized() {
|
|
17
|
+
if (_initialized)
|
|
18
|
+
return;
|
|
19
|
+
_initialized = true;
|
|
20
|
+
characterGeneratorPresets.initCharacterParts();
|
|
21
|
+
buildingGeneratorPresets.initBuildingParts();
|
|
22
|
+
animalGeneratorPresets.initAnimalParts();
|
|
23
|
+
}
|
|
24
|
+
/* ════════════════════════════════════════════════════════════════
|
|
25
|
+
HELPERS
|
|
26
|
+
════════════════════════════════════════════════════════════════ */
|
|
27
|
+
function palettesToOptions(palettes) {
|
|
28
|
+
return Object.entries(palettes).map(([id, colors]) => ({
|
|
29
|
+
id,
|
|
30
|
+
name: id.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase()),
|
|
31
|
+
colors,
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
const CHAR_CATEGORIES = [
|
|
35
|
+
'head', 'hair', 'face', 'torso', 'arm', 'leg', 'hat', 'helmet', 'armor', 'cape', 'weapon', 'shield',
|
|
36
|
+
];
|
|
37
|
+
const BUILDING_CATEGORIES = [
|
|
38
|
+
'foundation', 'wall', 'floor', 'roof', 'door', 'window', 'chimney', 'decoration',
|
|
39
|
+
];
|
|
40
|
+
const ANIMAL_CATEGORIES = [
|
|
41
|
+
'animalHead', 'animalBody', 'animalLeg', 'animalTail', 'animalWing', 'animalMane',
|
|
42
|
+
];
|
|
43
|
+
const NiceSpriteGeneratorPanel = ({ onSendToCanvas, onClose, }) => {
|
|
44
|
+
ensureInitialized();
|
|
45
|
+
/* ── State ── */
|
|
46
|
+
const [tab, setTab] = React.useState('character');
|
|
47
|
+
const [selectedPresetIdx, setSelectedPresetIdx] = React.useState(0);
|
|
48
|
+
const [selectedParts, setSelectedParts] = React.useState([]);
|
|
49
|
+
const [canvasW, setCanvasW] = React.useState(32);
|
|
50
|
+
const [canvasH, setCanvasH] = React.useState(32);
|
|
51
|
+
const [direction, setDirection] = React.useState('S');
|
|
52
|
+
const [projection, setProjection] = React.useState('topDown');
|
|
53
|
+
const [generate8Dir, setGenerate8Dir] = React.useState(false);
|
|
54
|
+
// Color overrides
|
|
55
|
+
const [skinPalette, setSkinPalette] = React.useState('light');
|
|
56
|
+
const [hairPalette, setHairPalette] = React.useState('brown');
|
|
57
|
+
const [clothPalette, setClothPalette] = React.useState('leather');
|
|
58
|
+
const [furPalette, setFurPalette] = React.useState('orange');
|
|
59
|
+
const [wallPalette, setWallPalette] = React.useState('grey_stone');
|
|
60
|
+
const [roofPalette, setRoofPalette] = React.useState('terracotta');
|
|
61
|
+
const previewRef = React.useRef(null);
|
|
62
|
+
const partsMapRef = React.useRef(new Map());
|
|
63
|
+
/* ── Build parts map ── */
|
|
64
|
+
React.useEffect(() => {
|
|
65
|
+
const map = new Map();
|
|
66
|
+
for (const p of spriteGeneratorCore.getAllParts())
|
|
67
|
+
map.set(p.id, p);
|
|
68
|
+
partsMapRef.current = map;
|
|
69
|
+
}, []);
|
|
70
|
+
/* ── Get presets for current tab ── */
|
|
71
|
+
const presets = React.useMemo(() => {
|
|
72
|
+
switch (tab) {
|
|
73
|
+
case 'character': return characterGeneratorPresets.CHARACTER_PRESETS;
|
|
74
|
+
case 'building': return buildingGeneratorPresets.BUILDING_PRESETS;
|
|
75
|
+
case 'animal': return animalGeneratorPresets.ANIMAL_PRESETS;
|
|
76
|
+
}
|
|
77
|
+
}, [tab]);
|
|
78
|
+
/* ── Apply preset ── */
|
|
79
|
+
const applyPreset = React.useCallback((presetIdx) => {
|
|
80
|
+
setSelectedPresetIdx(presetIdx);
|
|
81
|
+
const preset = presets[presetIdx];
|
|
82
|
+
if (!preset)
|
|
83
|
+
return;
|
|
84
|
+
if (tab === 'building') {
|
|
85
|
+
const bp = preset;
|
|
86
|
+
const assembly = buildingGeneratorPresets.assembleBuildingFromConfig(bp.config);
|
|
87
|
+
setSelectedParts(assembly.parts);
|
|
88
|
+
setCanvasW(assembly.canvasWidth);
|
|
89
|
+
setCanvasH(assembly.canvasHeight);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const cp = preset;
|
|
93
|
+
const assembly = cp.assembly;
|
|
94
|
+
setSelectedParts([...assembly.parts]);
|
|
95
|
+
setCanvasW(assembly.canvasWidth);
|
|
96
|
+
setCanvasH(assembly.canvasHeight);
|
|
97
|
+
}
|
|
98
|
+
}, [tab, presets]);
|
|
99
|
+
/* ── Initial preset ── */
|
|
100
|
+
React.useEffect(() => {
|
|
101
|
+
applyPreset(0);
|
|
102
|
+
}, [tab, applyPreset]);
|
|
103
|
+
/* ── Build current assembly ── */
|
|
104
|
+
const currentAssembly = React.useMemo(() => {
|
|
105
|
+
var _a;
|
|
106
|
+
return ({
|
|
107
|
+
id: `gen_${tab}_${selectedPresetIdx}`,
|
|
108
|
+
name: ((_a = presets[selectedPresetIdx]) === null || _a === void 0 ? void 0 : _a.name) || 'Custom',
|
|
109
|
+
parts: selectedParts,
|
|
110
|
+
canvasWidth: canvasW,
|
|
111
|
+
canvasHeight: canvasH,
|
|
112
|
+
projection,
|
|
113
|
+
});
|
|
114
|
+
}, [tab, selectedPresetIdx, selectedParts, canvasW, canvasH, projection, presets]);
|
|
115
|
+
/* ── Render preview ── */
|
|
116
|
+
React.useEffect(() => {
|
|
117
|
+
const canvas = previewRef.current;
|
|
118
|
+
if (!canvas)
|
|
119
|
+
return;
|
|
120
|
+
const img = spriteGeneratorCore.assembleSprite(currentAssembly, partsMapRef.current, direction);
|
|
121
|
+
let finalImg = img;
|
|
122
|
+
if (projection === 'iso25d') {
|
|
123
|
+
finalImg = spriteGeneratorCore.applyIsometricProjection(img);
|
|
124
|
+
}
|
|
125
|
+
canvas.width = finalImg.width;
|
|
126
|
+
canvas.height = finalImg.height;
|
|
127
|
+
const ctx = canvas.getContext('2d');
|
|
128
|
+
if (ctx) {
|
|
129
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
130
|
+
ctx.putImageData(finalImg, 0, 0);
|
|
131
|
+
}
|
|
132
|
+
}, [currentAssembly, direction, projection]);
|
|
133
|
+
/* ── Toggle part visibility ── */
|
|
134
|
+
const togglePart = React.useCallback((partId) => {
|
|
135
|
+
setSelectedParts(prev => prev.map(p => { var _a; return p.partId === partId ? { ...p, visible: !((_a = p.visible) !== null && _a !== void 0 ? _a : true) } : p; }));
|
|
136
|
+
}, []);
|
|
137
|
+
/* ── Add part ── */
|
|
138
|
+
const addPart = React.useCallback((partId) => {
|
|
139
|
+
if (selectedParts.some(p => p.partId === partId))
|
|
140
|
+
return;
|
|
141
|
+
const part = spriteGeneratorCore.getPart(partId);
|
|
142
|
+
if (!part)
|
|
143
|
+
return;
|
|
144
|
+
setSelectedParts(prev => {
|
|
145
|
+
var _a, _b, _c, _d;
|
|
146
|
+
return [...prev, {
|
|
147
|
+
partId,
|
|
148
|
+
offsetX: Math.floor(canvasW / 2) - Math.floor(((_b = (_a = part.pixels.S) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 8) / 2),
|
|
149
|
+
offsetY: Math.floor(canvasH / 2) - Math.floor(((_d = (_c = part.pixels.S) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 8) / 2),
|
|
150
|
+
visible: true,
|
|
151
|
+
}];
|
|
152
|
+
});
|
|
153
|
+
}, [selectedParts, canvasW, canvasH]);
|
|
154
|
+
/* ── Remove part ── */
|
|
155
|
+
const removePart = React.useCallback((partId) => {
|
|
156
|
+
setSelectedParts(prev => prev.filter(p => p.partId !== partId));
|
|
157
|
+
}, []);
|
|
158
|
+
/* ── Send to canvas ── */
|
|
159
|
+
const handleSendToCanvas = React.useCallback(() => {
|
|
160
|
+
if (generate8Dir) {
|
|
161
|
+
const frames = spriteGeneratorCore.generateAllDirections(currentAssembly, partsMapRef.current);
|
|
162
|
+
const sheet = spriteGeneratorCore.render8DirSpriteSheet(frames);
|
|
163
|
+
onSendToCanvas(sheet);
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
let img = spriteGeneratorCore.assembleSprite(currentAssembly, partsMapRef.current, direction);
|
|
167
|
+
if (projection === 'iso25d') {
|
|
168
|
+
img = spriteGeneratorCore.applyIsometricProjection(img);
|
|
169
|
+
}
|
|
170
|
+
onSendToCanvas(img);
|
|
171
|
+
}
|
|
172
|
+
onClose();
|
|
173
|
+
}, [generate8Dir, currentAssembly, direction, projection, onSendToCanvas, onClose]);
|
|
174
|
+
/* ── Categories for current tab ── */
|
|
175
|
+
const categories = React.useMemo(() => {
|
|
176
|
+
switch (tab) {
|
|
177
|
+
case 'character': return CHAR_CATEGORIES;
|
|
178
|
+
case 'building': return BUILDING_CATEGORIES;
|
|
179
|
+
case 'animal': return ANIMAL_CATEGORIES;
|
|
180
|
+
}
|
|
181
|
+
}, [tab]);
|
|
182
|
+
/* ── Available palette options ── */
|
|
183
|
+
const paletteGroups = React.useMemo(() => {
|
|
184
|
+
switch (tab) {
|
|
185
|
+
case 'character': return [
|
|
186
|
+
{ label: 'Skin', options: palettesToOptions(characterGeneratorPresets.SKIN_PALETTES), value: skinPalette, set: setSkinPalette },
|
|
187
|
+
{ label: 'Hair', options: palettesToOptions(characterGeneratorPresets.HAIR_PALETTES), value: hairPalette, set: setHairPalette },
|
|
188
|
+
{ label: 'Clothing', options: palettesToOptions(characterGeneratorPresets.CLOTHING_PALETTES), value: clothPalette, set: setClothPalette },
|
|
189
|
+
];
|
|
190
|
+
case 'building': return [
|
|
191
|
+
{ label: 'Walls', options: palettesToOptions(buildingGeneratorPresets.WALL_PALETTES), value: wallPalette, set: setWallPalette },
|
|
192
|
+
{ label: 'Roof', options: palettesToOptions(buildingGeneratorPresets.ROOF_PALETTES), value: roofPalette, set: setRoofPalette },
|
|
193
|
+
];
|
|
194
|
+
case 'animal': return [
|
|
195
|
+
{ label: 'Fur', options: palettesToOptions(animalGeneratorPresets.FUR_PALETTES), value: furPalette, set: setFurPalette },
|
|
196
|
+
];
|
|
197
|
+
}
|
|
198
|
+
}, [tab, skinPalette, hairPalette, clothPalette, wallPalette, roofPalette, furPalette]);
|
|
199
|
+
/* ── Render ── */
|
|
200
|
+
return (jsxRuntime.jsx(index.NiceModal, { open: true, onClose: onClose, title: "Sprite Generator", children: jsxRuntime.jsxs("div", { className: PixelEditor_module.genPanel, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.genHeader, children: [jsxRuntime.jsx("h3", { children: "Sprite Generator" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.btnIcon, variant: "ghost", size: "sm", onClick: onClose, title: "Close", children: "\u2715" })] }), jsxRuntime.jsx("div", { className: PixelEditor_module.genTabs, children: ['character', 'building', 'animal'].map(t => (jsxRuntime.jsxs(index.NiceButton, { className: `${PixelEditor_module.genTabBtn} ${tab === t ? PixelEditor_module.genTabBtnActive : ''}`, variant: tab === t ? 'primary' : 'ghost', size: "sm", onClick: () => setTab(t), children: [t === 'character' ? '🧑' : t === 'building' ? '🏠' : '🐾', ' ', t.charAt(0).toUpperCase() + t.slice(1)] }, t))) }), jsxRuntime.jsxs("div", { className: PixelEditor_module.genBody, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.genLeft, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, children: [jsxRuntime.jsx("div", { className: PixelEditor_module.panelTitle, children: jsxRuntime.jsx("span", { children: "Presets" }) }), jsxRuntime.jsx("div", { className: PixelEditor_module.genPresetGrid, children: presets.map((preset, i) => (jsxRuntime.jsx(index.NiceButton, { className: `${PixelEditor_module.genPresetBtn} ${i === selectedPresetIdx ? PixelEditor_module.genPresetBtnActive : ''}`, variant: i === selectedPresetIdx ? 'primary' : 'ghost', size: "sm", onClick: () => applyPreset(i), title: preset.name, children: preset.name }, i))) })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, style: { flex: 1, overflowY: 'auto' }, children: [jsxRuntime.jsx("div", { className: PixelEditor_module.panelTitle, children: jsxRuntime.jsx("span", { children: "Parts" }) }), categories.map(cat => {
|
|
201
|
+
const parts = spriteGeneratorCore.getPartsByCategory(cat);
|
|
202
|
+
if (parts.length === 0)
|
|
203
|
+
return null;
|
|
204
|
+
return (jsxRuntime.jsxs("div", { style: { marginBottom: 6 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 9, color: 'var(--gray-600)', marginBottom: 2, textTransform: 'uppercase' }, children: cat.replace(/([A-Z])/g, ' $1').trim() }), jsxRuntime.jsx("div", { className: PixelEditor_module.genPartGrid, children: parts.map(part => {
|
|
205
|
+
const active = selectedParts.some(p => { var _a; return p.partId === part.id && ((_a = p.visible) !== null && _a !== void 0 ? _a : true); });
|
|
206
|
+
return (jsxRuntime.jsx(index.NiceButton, { className: `${PixelEditor_module.miniBtn} ${active ? PixelEditor_module.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));
|
|
207
|
+
}) })] }, cat));
|
|
208
|
+
})] })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.genCenter, children: [jsxRuntime.jsx("div", { className: PixelEditor_module.genPreviewWrap, children: jsxRuntime.jsx("canvas", { ref: previewRef, className: PixelEditor_module.genPreviewCanvas }) }), jsxRuntime.jsx("div", { className: PixelEditor_module.genDirGrid, children: spriteGeneratorCore.ALL_DIRECTIONS.map(d => (jsxRuntime.jsx(index.NiceButton, { className: `${PixelEditor_module.miniBtn} ${direction === d ? PixelEditor_module.miniBtnActive : ''}`, variant: direction === d ? 'primary' : 'ghost', size: "sm", onClick: () => setDirection(d), children: d }, d))) }), jsxRuntime.jsxs("div", { className: PixelEditor_module.genRow, children: [jsxRuntime.jsx("label", { style: { fontSize: 10, color: 'var(--gray-600)' }, children: "Projection" }), jsxRuntime.jsx(index.NiceSelect, { className: PixelEditor_module.propSelect, value: projection, onChange: val => setProjection(val), options: [
|
|
209
|
+
{ value: 'topDown', label: 'Top-Down' },
|
|
210
|
+
{ value: 'sideView', label: 'Side View' },
|
|
211
|
+
{ value: 'iso25d', label: '2.5D Isometric' },
|
|
212
|
+
] })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.genRow, children: [jsxRuntime.jsx("label", { style: { fontSize: 10, color: 'var(--gray-600)' }, children: "Size" }), jsxRuntime.jsx(index.NiceNumberInput, { className: PixelEditor_module.propInput, style: { width: 48 }, min: 8, max: 256, value: canvasW, onChange: val => setCanvasW(val !== null && val !== void 0 ? val : 32) }), jsxRuntime.jsx("span", { style: { fontSize: 10, color: 'var(--gray-600)' }, children: "\u00D7" }), jsxRuntime.jsx(index.NiceNumberInput, { className: PixelEditor_module.propInput, style: { width: 48 }, min: 8, max: 256, value: canvasH, onChange: val => setCanvasH(val !== null && val !== void 0 ? val : 32) })] }), jsxRuntime.jsx(index.NiceCheckbox, { checked: generate8Dir, onChange: checked => setGenerate8Dir(checked), label: "Generate 8-direction sheet", className: PixelEditor_module.checkLabel })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.genRight, children: [jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, children: [jsxRuntime.jsx("div", { className: PixelEditor_module.panelTitle, children: jsxRuntime.jsx("span", { children: "Colors" }) }), paletteGroups.map(group => {
|
|
213
|
+
var _a;
|
|
214
|
+
return (jsxRuntime.jsxs("div", { style: { marginBottom: 6 }, children: [jsxRuntime.jsx("div", { style: { fontSize: 9, color: 'var(--gray-600)', marginBottom: 2 }, children: group.label }), jsxRuntime.jsx(index.NiceSelect, { className: PixelEditor_module.propSelect, value: group.value, onChange: val => group.set(val), options: group.options.map(opt => ({ value: opt.id, label: opt.name })) }), jsxRuntime.jsx("div", { className: PixelEditor_module.genColorSwatches, children: (_a = group.options.find(o => o.id === group.value)) === null || _a === void 0 ? void 0 : _a.colors.map((c, i) => (jsxRuntime.jsx("div", { className: PixelEditor_module.genColorSwatch, style: { backgroundColor: c }, title: c }, i))) })] }, group.label));
|
|
215
|
+
})] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.panelSection, style: { flex: 1, overflowY: 'auto' }, children: [jsxRuntime.jsx("div", { className: PixelEditor_module.panelTitle, children: jsxRuntime.jsx("span", { children: "Assembly" }) }), selectedParts.map((ap, i) => {
|
|
216
|
+
var _a, _b, _c, _d;
|
|
217
|
+
const part = partsMapRef.current.get(ap.partId);
|
|
218
|
+
return (jsxRuntime.jsxs("div", { className: PixelEditor_module.genAssemblyItem, children: [jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.btnIcon, variant: "ghost", size: "sm", onClick: () => togglePart(ap.partId), title: ((_a = ap.visible) !== null && _a !== void 0 ? _a : true) ? 'Hide' : 'Show', children: ((_b = ap.visible) !== null && _b !== void 0 ? _b : true) ? '👁' : '─' }), jsxRuntime.jsx("span", { className: PixelEditor_module.genAssemblyName, children: (_c = part === null || part === void 0 ? void 0 : part.name) !== null && _c !== void 0 ? _c : ap.partId }), jsxRuntime.jsxs("span", { style: { fontSize: 9, color: 'var(--gray-700)' }, children: ["z:", (_d = part === null || part === void 0 ? void 0 : part.zOrder) !== null && _d !== void 0 ? _d : 0] }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.btnIcon, variant: "ghost", size: "sm", onClick: () => removePart(ap.partId), title: "Remove", children: "\u2715" })] }, ap.partId));
|
|
219
|
+
})] })] })] }), jsxRuntime.jsxs("div", { className: PixelEditor_module.genFooter, children: [jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.btnSecondary, variant: "ghost", onClick: onClose, children: "Cancel" }), jsxRuntime.jsx(index.NiceButton, { className: PixelEditor_module.btnPrimary, variant: "primary", onClick: handleSendToCanvas, children: "\uD83D\uDCCB Send to Canvas" })] })] }) }));
|
|
220
|
+
};
|
|
221
|
+
NiceSpriteGeneratorPanel.displayName = 'NiceSpriteGeneratorPanel';
|
|
222
|
+
|
|
223
|
+
module.exports = NiceSpriteGeneratorPanel;
|
|
224
|
+
//# sourceMappingURL=SpriteGeneratorPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpriteGeneratorPanel.js","sources":["../../../src/pixel/SpriteGeneratorPanel.tsx"],"sourcesContent":[null],"names":["initCharacterParts","initBuildingParts","initAnimalParts","useState","useRef","useEffect","getAllParts","useMemo","CHARACTER_PRESETS","BUILDING_PRESETS","ANIMAL_PRESETS","useCallback","assembleBuildingFromConfig","assembleSprite","applyIsometricProjection","getPart","generateAllDirections","render8DirSpriteSheet","SKIN_PALETTES","HAIR_PALETTES","CLOTHING_PALETTES","WALL_PALETTES","ROOF_PALETTES","FUR_PALETTES","_jsx","NiceModal","_jsxs","styles","NiceButton","getPartsByCategory","ALL_DIRECTIONS","NiceSelect","NiceNumberInput","NiceCheckbox"],"mappings":"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"}
|