@nice2dev/ui-graphics 1.0.0 → 1.0.2

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 (146) hide show
  1. package/CHANGELOG.md +147 -1
  2. package/dist/cjs/animation/AnimatedPerson.js +2 -2
  3. package/dist/cjs/animation/AnimatedPerson.js.map +1 -1
  4. package/dist/cjs/animation/AnimationEditor.js +11 -6
  5. package/dist/cjs/animation/AnimationEditor.js.map +1 -1
  6. package/dist/cjs/animation/Audience.js +4 -3
  7. package/dist/cjs/animation/Audience.js.map +1 -1
  8. package/dist/cjs/animation/BodyRenderer.js +5 -2
  9. package/dist/cjs/animation/BodyRenderer.js.map +1 -1
  10. package/dist/cjs/animation/rig/RigPlayer.js +2 -2
  11. package/dist/cjs/animation/rig/RigPlayer.js.map +1 -1
  12. package/dist/cjs/animation/rig/RiggedBody.js +2 -2
  13. package/dist/cjs/animation/rig/RiggedBody.js.map +1 -1
  14. package/dist/cjs/animation/shapes/heads.js +4 -1
  15. package/dist/cjs/animation/shapes/heads.js.map +1 -1
  16. package/dist/cjs/core/LocalUI.js +1 -1
  17. package/dist/cjs/core/NiceBrushEngine.js +446 -0
  18. package/dist/cjs/core/NiceBrushEngine.js.map +1 -0
  19. package/dist/cjs/core/yjsCollaboration.js +292 -0
  20. package/dist/cjs/core/yjsCollaboration.js.map +1 -0
  21. package/dist/cjs/font/NiceFontEditor.js +89 -85
  22. package/dist/cjs/font/NiceFontEditor.js.map +1 -1
  23. package/dist/cjs/font/fontFormatUtils.js +468 -0
  24. package/dist/cjs/font/fontFormatUtils.js.map +1 -0
  25. package/dist/cjs/game/GameAsset2dEditor.js +38 -24
  26. package/dist/cjs/game/GameAsset2dEditor.js.map +1 -1
  27. package/dist/cjs/icon/NiceIconEditor.js +218 -133
  28. package/dist/cjs/icon/NiceIconEditor.js.map +1 -1
  29. package/dist/cjs/index.js +83 -1
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/nice2dev-ui-graphics.css +1 -1
  32. package/dist/cjs/photo/NiceAITools.js +446 -0
  33. package/dist/cjs/photo/NiceAITools.js.map +1 -0
  34. package/dist/cjs/photo/PhotoEditor.js +2 -2
  35. package/dist/cjs/photo/PhotoEditor.js.map +1 -1
  36. package/dist/cjs/pixel/PixelEditor.js +16 -5
  37. package/dist/cjs/pixel/PixelEditor.js.map +1 -1
  38. package/dist/cjs/pixel/PixelEditor.module.css.js +1 -1
  39. package/dist/cjs/pixel/PixelEditorMenuBar.js +2 -1
  40. package/dist/cjs/pixel/PixelEditorMenuBar.js.map +1 -1
  41. package/dist/cjs/pixel/PixelEditorRightPanel.js +3 -2
  42. package/dist/cjs/pixel/PixelEditorRightPanel.js.map +1 -1
  43. package/dist/cjs/pixel/PixelEditorTimeline.js +2 -1
  44. package/dist/cjs/pixel/PixelEditorTimeline.js.map +1 -1
  45. package/dist/cjs/pixel/PixelEditorToolbar.js +2 -1
  46. package/dist/cjs/pixel/PixelEditorToolbar.js.map +1 -1
  47. package/dist/cjs/pixel/SpriteGeneratorPanel.js +224 -0
  48. package/dist/cjs/pixel/SpriteGeneratorPanel.js.map +1 -0
  49. package/dist/cjs/pixel/animalGeneratorPresets.js +654 -0
  50. package/dist/cjs/pixel/animalGeneratorPresets.js.map +1 -0
  51. package/dist/cjs/pixel/buildingGeneratorPresets.js +573 -0
  52. package/dist/cjs/pixel/buildingGeneratorPresets.js.map +1 -0
  53. package/dist/cjs/pixel/characterGeneratorPresets.js +563 -0
  54. package/dist/cjs/pixel/characterGeneratorPresets.js.map +1 -0
  55. package/dist/cjs/pixel/spriteGeneratorCore.js +297 -0
  56. package/dist/cjs/pixel/spriteGeneratorCore.js.map +1 -0
  57. package/dist/cjs/pixel/usePixelEditor.js +16 -0
  58. package/dist/cjs/pixel/usePixelEditor.js.map +1 -1
  59. package/dist/cjs/texture/Nice3DTexturePainter.js +123 -79
  60. package/dist/cjs/texture/Nice3DTexturePainter.js.map +1 -1
  61. package/dist/cjs/ui/NiceUIDesigner.js +175 -62
  62. package/dist/cjs/ui/NiceUIDesigner.js.map +1 -1
  63. package/dist/cjs/ui/dist/index.js +50089 -0
  64. package/dist/cjs/ui/dist/index.js.map +1 -0
  65. package/dist/cjs/vector/NiceSvgToCode.js +427 -0
  66. package/dist/cjs/vector/NiceSvgToCode.js.map +1 -0
  67. package/dist/cjs/vector/VectorEditor.js +7 -3
  68. package/dist/cjs/vector/VectorEditor.js.map +1 -1
  69. package/dist/cjs/vector/VectorEditor.module.css.js +1 -1
  70. package/dist/cjs/vector/VectorEditorMenuBar.js +5 -1
  71. package/dist/cjs/vector/VectorEditorMenuBar.js.map +1 -1
  72. package/dist/cjs/vector/VectorEditorRightPanel.js +23 -19
  73. package/dist/cjs/vector/VectorEditorRightPanel.js.map +1 -1
  74. package/dist/esm/animation/AnimatedPerson.js +2 -2
  75. package/dist/esm/animation/AnimatedPerson.js.map +1 -1
  76. package/dist/esm/animation/AnimationEditor.js +12 -8
  77. package/dist/esm/animation/AnimationEditor.js.map +1 -1
  78. package/dist/esm/animation/Audience.js +5 -4
  79. package/dist/esm/animation/Audience.js.map +1 -1
  80. package/dist/esm/animation/BodyRenderer.js +4 -2
  81. package/dist/esm/animation/BodyRenderer.js.map +1 -1
  82. package/dist/esm/animation/rig/RigPlayer.js +4 -4
  83. package/dist/esm/animation/rig/RigPlayer.js.map +1 -1
  84. package/dist/esm/animation/rig/RiggedBody.js +2 -2
  85. package/dist/esm/animation/rig/RiggedBody.js.map +1 -1
  86. package/dist/esm/animation/shapes/heads.js +4 -2
  87. package/dist/esm/animation/shapes/heads.js.map +1 -1
  88. package/dist/esm/core/LocalUI.js +4 -4
  89. package/dist/esm/core/NiceBrushEngine.js +442 -0
  90. package/dist/esm/core/NiceBrushEngine.js.map +1 -0
  91. package/dist/esm/core/yjsCollaboration.js +283 -0
  92. package/dist/esm/core/yjsCollaboration.js.map +1 -0
  93. package/dist/esm/font/NiceFontEditor.js +89 -85
  94. package/dist/esm/font/NiceFontEditor.js.map +1 -1
  95. package/dist/esm/font/fontFormatUtils.js +461 -0
  96. package/dist/esm/font/fontFormatUtils.js.map +1 -0
  97. package/dist/esm/game/GameAsset2dEditor.js +38 -25
  98. package/dist/esm/game/GameAsset2dEditor.js.map +1 -1
  99. package/dist/esm/icon/NiceIconEditor.js +218 -133
  100. package/dist/esm/icon/NiceIconEditor.js.map +1 -1
  101. package/dist/esm/index.js +21 -11
  102. package/dist/esm/index.js.map +1 -1
  103. package/dist/esm/nice2dev-ui-graphics.css +1 -1
  104. package/dist/esm/photo/NiceAITools.js +439 -0
  105. package/dist/esm/photo/NiceAITools.js.map +1 -0
  106. package/dist/esm/photo/PhotoEditor.js +2 -2
  107. package/dist/esm/photo/PhotoEditor.js.map +1 -1
  108. package/dist/esm/pixel/PixelEditor.js +16 -6
  109. package/dist/esm/pixel/PixelEditor.js.map +1 -1
  110. package/dist/esm/pixel/PixelEditor.module.css.js +1 -1
  111. package/dist/esm/pixel/PixelEditorMenuBar.js +2 -1
  112. package/dist/esm/pixel/PixelEditorMenuBar.js.map +1 -1
  113. package/dist/esm/pixel/PixelEditorRightPanel.js +3 -2
  114. package/dist/esm/pixel/PixelEditorRightPanel.js.map +1 -1
  115. package/dist/esm/pixel/PixelEditorTimeline.js +2 -1
  116. package/dist/esm/pixel/PixelEditorTimeline.js.map +1 -1
  117. package/dist/esm/pixel/PixelEditorToolbar.js +2 -1
  118. package/dist/esm/pixel/PixelEditorToolbar.js.map +1 -1
  119. package/dist/esm/pixel/SpriteGeneratorPanel.js +222 -0
  120. package/dist/esm/pixel/SpriteGeneratorPanel.js.map +1 -0
  121. package/dist/esm/pixel/animalGeneratorPresets.js +647 -0
  122. package/dist/esm/pixel/animalGeneratorPresets.js.map +1 -0
  123. package/dist/esm/pixel/buildingGeneratorPresets.js +566 -0
  124. package/dist/esm/pixel/buildingGeneratorPresets.js.map +1 -0
  125. package/dist/esm/pixel/characterGeneratorPresets.js +556 -0
  126. package/dist/esm/pixel/characterGeneratorPresets.js.map +1 -0
  127. package/dist/esm/pixel/spriteGeneratorCore.js +279 -0
  128. package/dist/esm/pixel/spriteGeneratorCore.js.map +1 -0
  129. package/dist/esm/pixel/usePixelEditor.js +16 -0
  130. package/dist/esm/pixel/usePixelEditor.js.map +1 -1
  131. package/dist/esm/texture/Nice3DTexturePainter.js +123 -79
  132. package/dist/esm/texture/Nice3DTexturePainter.js.map +1 -1
  133. package/dist/esm/ui/NiceUIDesigner.js +175 -62
  134. package/dist/esm/ui/NiceUIDesigner.js.map +1 -1
  135. package/dist/esm/ui/dist/index.js +49686 -0
  136. package/dist/esm/ui/dist/index.js.map +1 -0
  137. package/dist/esm/vector/NiceSvgToCode.js +423 -0
  138. package/dist/esm/vector/NiceSvgToCode.js.map +1 -0
  139. package/dist/esm/vector/VectorEditor.js +7 -4
  140. package/dist/esm/vector/VectorEditor.js.map +1 -1
  141. package/dist/esm/vector/VectorEditor.module.css.js +1 -1
  142. package/dist/esm/vector/VectorEditorMenuBar.js +5 -1
  143. package/dist/esm/vector/VectorEditorMenuBar.js.map +1 -1
  144. package/dist/esm/vector/VectorEditorRightPanel.js +23 -19
  145. package/dist/esm/vector/VectorEditorRightPanel.js.map +1 -1
  146. package/package.json +3 -4
@@ -0,0 +1,222 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useState, useRef, useEffect, useMemo, useCallback } from 'react';
3
+ import styles from './PixelEditor.module.css.js';
4
+ import { NiceModal as ko, NiceButton as Ee, NiceSelect as tn, NiceNumberInput as vi, NiceCheckbox as qi } from '../ui/dist/index.js';
5
+ import { getAllParts, assembleSprite, applyIsometricProjection, getPart, generateAllDirections, render8DirSpriteSheet, getPartsByCategory, ALL_DIRECTIONS } from './spriteGeneratorCore.js';
6
+ import { CHARACTER_PRESETS, initCharacterParts, SKIN_PALETTES, HAIR_PALETTES, CLOTHING_PALETTES } from './characterGeneratorPresets.js';
7
+ import { BUILDING_PRESETS, assembleBuildingFromConfig, initBuildingParts, WALL_PALETTES, ROOF_PALETTES } from './buildingGeneratorPresets.js';
8
+ import { ANIMAL_PRESETS, initAnimalParts, FUR_PALETTES } from './animalGeneratorPresets.js';
9
+
10
+ /* ════════════════════════════════════════════════════════════════
11
+ INITIALIZATION
12
+ ════════════════════════════════════════════════════════════════ */
13
+ let _initialized = false;
14
+ function ensureInitialized() {
15
+ if (_initialized)
16
+ return;
17
+ _initialized = true;
18
+ initCharacterParts();
19
+ initBuildingParts();
20
+ initAnimalParts();
21
+ }
22
+ /* ════════════════════════════════════════════════════════════════
23
+ HELPERS
24
+ ════════════════════════════════════════════════════════════════ */
25
+ function palettesToOptions(palettes) {
26
+ return Object.entries(palettes).map(([id, colors]) => ({
27
+ id,
28
+ name: id.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase()),
29
+ colors,
30
+ }));
31
+ }
32
+ const CHAR_CATEGORIES = [
33
+ 'head', 'hair', 'face', 'torso', 'arm', 'leg', 'hat', 'helmet', 'armor', 'cape', 'weapon', 'shield',
34
+ ];
35
+ const BUILDING_CATEGORIES = [
36
+ 'foundation', 'wall', 'floor', 'roof', 'door', 'window', 'chimney', 'decoration',
37
+ ];
38
+ const ANIMAL_CATEGORIES = [
39
+ 'animalHead', 'animalBody', 'animalLeg', 'animalTail', 'animalWing', 'animalMane',
40
+ ];
41
+ const NiceSpriteGeneratorPanel = ({ onSendToCanvas, onClose, }) => {
42
+ ensureInitialized();
43
+ /* ── State ── */
44
+ const [tab, setTab] = useState('character');
45
+ const [selectedPresetIdx, setSelectedPresetIdx] = useState(0);
46
+ const [selectedParts, setSelectedParts] = useState([]);
47
+ const [canvasW, setCanvasW] = useState(32);
48
+ const [canvasH, setCanvasH] = useState(32);
49
+ const [direction, setDirection] = useState('S');
50
+ const [projection, setProjection] = useState('topDown');
51
+ const [generate8Dir, setGenerate8Dir] = useState(false);
52
+ // Color overrides
53
+ const [skinPalette, setSkinPalette] = useState('light');
54
+ const [hairPalette, setHairPalette] = useState('brown');
55
+ const [clothPalette, setClothPalette] = useState('leather');
56
+ const [furPalette, setFurPalette] = useState('orange');
57
+ const [wallPalette, setWallPalette] = useState('grey_stone');
58
+ const [roofPalette, setRoofPalette] = useState('terracotta');
59
+ const previewRef = useRef(null);
60
+ const partsMapRef = useRef(new Map());
61
+ /* ── Build parts map ── */
62
+ useEffect(() => {
63
+ const map = new Map();
64
+ for (const p of getAllParts())
65
+ map.set(p.id, p);
66
+ partsMapRef.current = map;
67
+ }, []);
68
+ /* ── Get presets for current tab ── */
69
+ const presets = useMemo(() => {
70
+ switch (tab) {
71
+ case 'character': return CHARACTER_PRESETS;
72
+ case 'building': return BUILDING_PRESETS;
73
+ case 'animal': return ANIMAL_PRESETS;
74
+ }
75
+ }, [tab]);
76
+ /* ── Apply preset ── */
77
+ const applyPreset = useCallback((presetIdx) => {
78
+ setSelectedPresetIdx(presetIdx);
79
+ const preset = presets[presetIdx];
80
+ if (!preset)
81
+ return;
82
+ if (tab === 'building') {
83
+ const bp = preset;
84
+ const assembly = assembleBuildingFromConfig(bp.config);
85
+ setSelectedParts(assembly.parts);
86
+ setCanvasW(assembly.canvasWidth);
87
+ setCanvasH(assembly.canvasHeight);
88
+ }
89
+ else {
90
+ const cp = preset;
91
+ const assembly = cp.assembly;
92
+ setSelectedParts([...assembly.parts]);
93
+ setCanvasW(assembly.canvasWidth);
94
+ setCanvasH(assembly.canvasHeight);
95
+ }
96
+ }, [tab, presets]);
97
+ /* ── Initial preset ── */
98
+ useEffect(() => {
99
+ applyPreset(0);
100
+ }, [tab, applyPreset]);
101
+ /* ── Build current assembly ── */
102
+ const currentAssembly = useMemo(() => {
103
+ var _a;
104
+ return ({
105
+ id: `gen_${tab}_${selectedPresetIdx}`,
106
+ name: ((_a = presets[selectedPresetIdx]) === null || _a === void 0 ? void 0 : _a.name) || 'Custom',
107
+ parts: selectedParts,
108
+ canvasWidth: canvasW,
109
+ canvasHeight: canvasH,
110
+ projection,
111
+ });
112
+ }, [tab, selectedPresetIdx, selectedParts, canvasW, canvasH, projection, presets]);
113
+ /* ── Render preview ── */
114
+ useEffect(() => {
115
+ const canvas = previewRef.current;
116
+ if (!canvas)
117
+ return;
118
+ const img = assembleSprite(currentAssembly, partsMapRef.current, direction);
119
+ let finalImg = img;
120
+ if (projection === 'iso25d') {
121
+ finalImg = applyIsometricProjection(img);
122
+ }
123
+ canvas.width = finalImg.width;
124
+ canvas.height = finalImg.height;
125
+ const ctx = canvas.getContext('2d');
126
+ if (ctx) {
127
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
128
+ ctx.putImageData(finalImg, 0, 0);
129
+ }
130
+ }, [currentAssembly, direction, projection]);
131
+ /* ── Toggle part visibility ── */
132
+ const togglePart = useCallback((partId) => {
133
+ setSelectedParts(prev => prev.map(p => { var _a; return p.partId === partId ? { ...p, visible: !((_a = p.visible) !== null && _a !== void 0 ? _a : true) } : p; }));
134
+ }, []);
135
+ /* ── Add part ── */
136
+ const addPart = useCallback((partId) => {
137
+ if (selectedParts.some(p => p.partId === partId))
138
+ return;
139
+ const part = getPart(partId);
140
+ if (!part)
141
+ return;
142
+ setSelectedParts(prev => {
143
+ var _a, _b, _c, _d;
144
+ return [...prev, {
145
+ partId,
146
+ 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),
147
+ 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),
148
+ visible: true,
149
+ }];
150
+ });
151
+ }, [selectedParts, canvasW, canvasH]);
152
+ /* ── Remove part ── */
153
+ const removePart = useCallback((partId) => {
154
+ setSelectedParts(prev => prev.filter(p => p.partId !== partId));
155
+ }, []);
156
+ /* ── Send to canvas ── */
157
+ const handleSendToCanvas = useCallback(() => {
158
+ if (generate8Dir) {
159
+ const frames = generateAllDirections(currentAssembly, partsMapRef.current);
160
+ const sheet = render8DirSpriteSheet(frames);
161
+ onSendToCanvas(sheet);
162
+ }
163
+ else {
164
+ let img = assembleSprite(currentAssembly, partsMapRef.current, direction);
165
+ if (projection === 'iso25d') {
166
+ img = applyIsometricProjection(img);
167
+ }
168
+ onSendToCanvas(img);
169
+ }
170
+ onClose();
171
+ }, [generate8Dir, currentAssembly, direction, projection, onSendToCanvas, onClose]);
172
+ /* ── Categories for current tab ── */
173
+ const categories = useMemo(() => {
174
+ switch (tab) {
175
+ case 'character': return CHAR_CATEGORIES;
176
+ case 'building': return BUILDING_CATEGORIES;
177
+ case 'animal': return ANIMAL_CATEGORIES;
178
+ }
179
+ }, [tab]);
180
+ /* ── Available palette options ── */
181
+ const paletteGroups = useMemo(() => {
182
+ switch (tab) {
183
+ case 'character': return [
184
+ { label: 'Skin', options: palettesToOptions(SKIN_PALETTES), value: skinPalette, set: setSkinPalette },
185
+ { label: 'Hair', options: palettesToOptions(HAIR_PALETTES), value: hairPalette, set: setHairPalette },
186
+ { label: 'Clothing', options: palettesToOptions(CLOTHING_PALETTES), value: clothPalette, set: setClothPalette },
187
+ ];
188
+ case 'building': return [
189
+ { label: 'Walls', options: palettesToOptions(WALL_PALETTES), value: wallPalette, set: setWallPalette },
190
+ { label: 'Roof', options: palettesToOptions(ROOF_PALETTES), value: roofPalette, set: setRoofPalette },
191
+ ];
192
+ case 'animal': return [
193
+ { label: 'Fur', options: palettesToOptions(FUR_PALETTES), value: furPalette, set: setFurPalette },
194
+ ];
195
+ }
196
+ }, [tab, skinPalette, hairPalette, clothPalette, wallPalette, roofPalette, furPalette]);
197
+ /* ── Render ── */
198
+ return (jsx(ko, { open: true, onClose: onClose, title: "Sprite Generator", children: jsxs("div", { className: styles.genPanel, children: [jsxs("div", { className: styles.genHeader, children: [jsx("h3", { children: "Sprite Generator" }), jsx(Ee, { className: styles.btnIcon, variant: "ghost", size: "sm", onClick: onClose, title: "Close", children: "\u2715" })] }), jsx("div", { className: styles.genTabs, children: ['character', 'building', 'animal'].map(t => (jsxs(Ee, { className: `${styles.genTabBtn} ${tab === t ? styles.genTabBtnActive : ''}`, variant: tab === t ? 'primary' : 'ghost', size: "sm", onClick: () => setTab(t), children: [t === 'character' ? '🧑' : t === 'building' ? '🏠' : '🐾', ' ', 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(Ee, { 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 => {
199
+ const parts = getPartsByCategory(cat);
200
+ if (parts.length === 0)
201
+ return null;
202
+ return (jsxs("div", { style: { marginBottom: 6 }, children: [jsx("div", { style: { fontSize: 9, color: 'var(--gray-600)', marginBottom: 2, textTransform: 'uppercase' }, children: cat.replace(/([A-Z])/g, ' $1').trim() }), jsx("div", { className: styles.genPartGrid, children: parts.map(part => {
203
+ const active = selectedParts.some(p => { var _a; return p.partId === part.id && ((_a = p.visible) !== null && _a !== void 0 ? _a : true); });
204
+ return (jsx(Ee, { 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));
205
+ }) })] }, cat));
206
+ })] })] }), 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(Ee, { 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(--gray-600)' }, children: "Projection" }), jsx(tn, { className: styles.propSelect, value: projection, onChange: val => setProjection(val), options: [
207
+ { value: 'topDown', label: 'Top-Down' },
208
+ { value: 'sideView', label: 'Side View' },
209
+ { value: 'iso25d', label: '2.5D Isometric' },
210
+ ] })] }), jsxs("div", { className: styles.genRow, children: [jsx("label", { style: { fontSize: 10, color: 'var(--gray-600)' }, children: "Size" }), jsx(vi, { 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(--gray-600)' }, children: "\u00D7" }), jsx(vi, { className: styles.propInput, style: { width: 48 }, min: 8, max: 256, value: canvasH, onChange: val => setCanvasH(val !== null && val !== void 0 ? val : 32) })] }), jsx(qi, { 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 => {
211
+ var _a;
212
+ return (jsxs("div", { style: { marginBottom: 6 }, children: [jsx("div", { style: { fontSize: 9, color: 'var(--gray-600)', marginBottom: 2 }, children: group.label }), jsx(tn, { className: styles.propSelect, value: group.value, onChange: val => group.set(val), options: group.options.map(opt => ({ value: opt.id, label: opt.name })) }), jsx("div", { className: styles.genColorSwatches, children: (_a = group.options.find(o => o.id === group.value)) === null || _a === void 0 ? void 0 : _a.colors.map((c, i) => (jsx("div", { className: styles.genColorSwatch, style: { backgroundColor: c }, title: c }, i))) })] }, group.label));
213
+ })] }), jsxs("div", { className: styles.panelSection, style: { flex: 1, overflowY: 'auto' }, children: [jsx("div", { className: styles.panelTitle, children: jsx("span", { children: "Assembly" }) }), selectedParts.map((ap, i) => {
214
+ var _a, _b, _c, _d;
215
+ const part = partsMapRef.current.get(ap.partId);
216
+ return (jsxs("div", { className: styles.genAssemblyItem, children: [jsx(Ee, { className: styles.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) ? '👁' : '─' }), jsx("span", { className: styles.genAssemblyName, children: (_c = part === null || part === void 0 ? void 0 : part.name) !== null && _c !== void 0 ? _c : ap.partId }), 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] }), jsx(Ee, { className: styles.btnIcon, variant: "ghost", size: "sm", onClick: () => removePart(ap.partId), title: "Remove", children: "\u2715" })] }, ap.partId));
217
+ })] })] })] }), jsxs("div", { className: styles.genFooter, children: [jsx(Ee, { className: styles.btnSecondary, variant: "ghost", onClick: onClose, children: "Cancel" }), jsx(Ee, { className: styles.btnPrimary, variant: "primary", onClick: handleSendToCanvas, children: "\uD83D\uDCCB Send to Canvas" })] })] }) }));
218
+ };
219
+ NiceSpriteGeneratorPanel.displayName = 'NiceSpriteGeneratorPanel';
220
+
221
+ export { NiceSpriteGeneratorPanel as default };
222
+ //# sourceMappingURL=SpriteGeneratorPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpriteGeneratorPanel.js","sources":["../../../src/pixel/SpriteGeneratorPanel.tsx"],"sourcesContent":[null],"names":["_jsx","NiceModal","_jsxs","NiceButton","NiceSelect","NiceNumberInput","NiceCheckbox"],"mappings":"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"}