@nice2dev/ui-graphics 1.0.6 → 1.1.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 (67) hide show
  1. package/dist/cjs/animation/AnimationEditor.js +6 -6
  2. package/dist/cjs/animation/Audience.js +2 -2
  3. package/dist/cjs/core/LocalUI.js +5 -5
  4. package/dist/cjs/game/GameAsset2dEditor.js +20 -20
  5. package/dist/cjs/packages/ui/dist/NiceButton-D9l39Rs7.js +598 -0
  6. package/dist/cjs/packages/ui/dist/NiceButton-D9l39Rs7.js.map +1 -0
  7. package/dist/cjs/packages/ui/dist/NiceErrorBoundary-niMx1aSJ.js +647 -0
  8. package/dist/cjs/packages/ui/dist/NiceErrorBoundary-niMx1aSJ.js.map +1 -0
  9. package/dist/cjs/packages/ui/dist/NiceModuleLifecyclePanel-I_TXRiiY.js +5048 -0
  10. package/dist/cjs/packages/ui/dist/NiceModuleLifecyclePanel-I_TXRiiY.js.map +1 -0
  11. package/dist/cjs/packages/ui/dist/NicePinCodeInput-CrMfdxxc.js +13081 -0
  12. package/dist/cjs/packages/ui/dist/NicePinCodeInput-CrMfdxxc.js.map +1 -0
  13. package/dist/cjs/packages/ui/dist/NiceSavedQueryPanel-CUAsdOjJ.js +6054 -0
  14. package/dist/cjs/packages/ui/dist/NiceSavedQueryPanel-CUAsdOjJ.js.map +1 -0
  15. package/dist/cjs/packages/ui/dist/NiceToggle-CaY1u82g.js +280 -0
  16. package/dist/cjs/packages/ui/dist/NiceToggle-CaY1u82g.js.map +1 -0
  17. package/dist/cjs/packages/ui/dist/NiceWindow-SiCaREbq.js +806 -0
  18. package/dist/cjs/packages/ui/dist/NiceWindow-SiCaREbq.js.map +1 -0
  19. package/dist/cjs/packages/ui/dist/charts-Bx_kNBsE.js +3508 -0
  20. package/dist/cjs/packages/ui/dist/charts-Bx_kNBsE.js.map +1 -0
  21. package/dist/cjs/packages/ui/dist/core-BpghV7Ls.js +10249 -0
  22. package/dist/cjs/packages/ui/dist/core-BpghV7Ls.js.map +1 -0
  23. package/dist/cjs/packages/ui/dist/index-CIl98Vbm.js +40039 -0
  24. package/dist/cjs/packages/ui/dist/index-CIl98Vbm.js.map +1 -0
  25. package/dist/cjs/pixel/PixelEditor.js +5 -5
  26. package/dist/cjs/pixel/PixelEditorMenuBar.js +2 -2
  27. package/dist/cjs/pixel/PixelEditorRightPanel.js +5 -5
  28. package/dist/cjs/pixel/PixelEditorTimeline.js +3 -3
  29. package/dist/cjs/pixel/PixelEditorToolbar.js +2 -2
  30. package/dist/cjs/pixel/SpriteGeneratorPanel.js +10 -10
  31. package/dist/cjs/vector/VectorEditor.js +5 -5
  32. package/dist/cjs/vector/VectorEditorMenuBar.js +4 -4
  33. package/dist/cjs/vector/VectorEditorRightPanel.js +15 -15
  34. package/dist/esm/animation/AnimationEditor.js +2 -2
  35. package/dist/esm/animation/Audience.js +1 -1
  36. package/dist/esm/core/LocalUI.js +2 -2
  37. package/dist/esm/game/GameAsset2dEditor.js +2 -2
  38. package/dist/esm/packages/ui/dist/NiceButton-D9l39Rs7.js +593 -0
  39. package/dist/esm/packages/ui/dist/NiceButton-D9l39Rs7.js.map +1 -0
  40. package/dist/esm/packages/ui/dist/NiceErrorBoundary-niMx1aSJ.js +637 -0
  41. package/dist/esm/packages/ui/dist/NiceErrorBoundary-niMx1aSJ.js.map +1 -0
  42. package/dist/esm/packages/ui/dist/NiceModuleLifecyclePanel-I_TXRiiY.js +5007 -0
  43. package/dist/esm/packages/ui/dist/NiceModuleLifecyclePanel-I_TXRiiY.js.map +1 -0
  44. package/dist/esm/packages/ui/dist/NicePinCodeInput-CrMfdxxc.js +13011 -0
  45. package/dist/esm/packages/ui/dist/NicePinCodeInput-CrMfdxxc.js.map +1 -0
  46. package/dist/esm/packages/ui/dist/NiceSavedQueryPanel-CUAsdOjJ.js +6037 -0
  47. package/dist/esm/packages/ui/dist/NiceSavedQueryPanel-CUAsdOjJ.js.map +1 -0
  48. package/dist/esm/packages/ui/dist/NiceToggle-CaY1u82g.js +276 -0
  49. package/dist/esm/packages/ui/dist/NiceToggle-CaY1u82g.js.map +1 -0
  50. package/dist/esm/packages/ui/dist/NiceWindow-SiCaREbq.js +795 -0
  51. package/dist/esm/packages/ui/dist/NiceWindow-SiCaREbq.js.map +1 -0
  52. package/dist/esm/packages/ui/dist/charts-Bx_kNBsE.js +3483 -0
  53. package/dist/esm/packages/ui/dist/charts-Bx_kNBsE.js.map +1 -0
  54. package/dist/esm/packages/ui/dist/core-BpghV7Ls.js +10071 -0
  55. package/dist/esm/packages/ui/dist/core-BpghV7Ls.js.map +1 -0
  56. package/dist/esm/packages/ui/dist/index-CIl98Vbm.js +39917 -0
  57. package/dist/esm/packages/ui/dist/index-CIl98Vbm.js.map +1 -0
  58. package/dist/esm/pixel/PixelEditor.js +3 -3
  59. package/dist/esm/pixel/PixelEditorMenuBar.js +1 -1
  60. package/dist/esm/pixel/PixelEditorRightPanel.js +3 -3
  61. package/dist/esm/pixel/PixelEditorTimeline.js +2 -2
  62. package/dist/esm/pixel/PixelEditorToolbar.js +1 -1
  63. package/dist/esm/pixel/SpriteGeneratorPanel.js +3 -3
  64. package/dist/esm/vector/VectorEditor.js +3 -3
  65. package/dist/esm/vector/VectorEditorMenuBar.js +2 -2
  66. package/dist/esm/vector/VectorEditorRightPanel.js +3 -3
  67. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useState, useCallback } from 'react';
3
3
  import styles from './PixelEditor.module.css.js';
4
- import { c as Fe } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
5
- import { a as ie } from '../packages/ui/dist/NiceToggle-C1UKGXmJ.js';
6
- import { f as fe } from '../packages/ui/dist/NiceErrorBoundary-D1hh5GGe.js';
4
+ import { c as Fe } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
5
+ import { a as ie } from '../packages/ui/dist/NiceToggle-CaY1u82g.js';
6
+ import { f as fe } from '../packages/ui/dist/NiceErrorBoundary-niMx1aSJ.js';
7
7
  import { usePixelEditor } from './usePixelEditor.js';
8
8
  import PixelEditorMenuBar from './PixelEditorMenuBar.js';
9
9
  import PixelEditorToolbar from './PixelEditorToolbar.js';
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
3
  import styles from './PixelEditor.module.css.js';
4
- import { c as Fe } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
4
+ import { c as Fe } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
5
5
 
6
6
  const PixelEditorMenuBar = React.memo(({ api, hasOnSaveToLibrary, onOpenGenerator }) => (jsxs("div", { className: styles.menuBar, children: [jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: () => api.setDlgNew(true), children: "New" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: () => { var _a; return (_a = api.fInp.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: "Open" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.exportAse, children: "Save .ase" }), jsx("div", { className: styles.menuSep }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.exportPNG, children: "PNG" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.exportJPG, children: "JPG" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.exportWebP, children: "WebP" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.exportBMP, children: "BMP" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.exportSVG, children: "SVG" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.exportSheet, children: "Sheet" }), hasOnSaveToLibrary && (jsxs(Fragment, { children: [jsx("div", { className: styles.menuSep }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.saveToLibrary, children: "\uD83D\uDCE6 Save to Library" })] })), jsx("div", { className: styles.menuSep }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.undo, children: "Undo" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.redo, children: "Redo" }), jsx("div", { className: styles.menuSep }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: () => api.flipCv("h"), children: "Flip H" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: () => api.flipCv("v"), children: "Flip V" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.rotateCv, children: "Rot 90\u00B0" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.clearCv, children: "Clear" }), jsx("div", { className: styles.menuSep }), jsxs(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: () => api.setGrid((g) => !g), children: ["Grid: ", api.grid ? "ON" : "OFF"] }), jsx("div", { className: styles.menuSep }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.doCopy, disabled: !api.sel, children: "Copy" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.doCut, disabled: !api.sel, children: "Cut" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.doPaste, disabled: !api.clipboard.current, children: "Paste" }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: api.doSelectAll, children: "Sel All" }), jsx("div", { className: styles.menuSep }), jsx(Fe, { className: styles.menuBtn, variant: "ghost", size: "sm", onClick: onOpenGenerator, children: "\uD83C\uDFA8 Generator" })] })));
7
7
  PixelEditorMenuBar.displayName = "PixelEditorMenuBar";
@@ -1,9 +1,9 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
3
  import styles from './PixelEditor.module.css.js';
4
- import { c as Fe, b as Re, a as De } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
5
- import { U as Dn } from '../packages/ui/dist/NicePinCodeInput-4q8yULuo.js';
6
- import { N as se } from '../packages/ui/dist/NiceToggle-C1UKGXmJ.js';
4
+ import { c as Fe, b as Re, a as De } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
5
+ import { U as Dn } from '../packages/ui/dist/NicePinCodeInput-CrMfdxxc.js';
6
+ import { N as se } from '../packages/ui/dist/NiceToggle-CaY1u82g.js';
7
7
  import { BRUSH_SHAPES, BLEND_MODES } from './pixelEditorTypes.js';
8
8
  import { HSVPicker } from './HSVPicker.js';
9
9
 
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
3
  import styles from './PixelEditor.module.css.js';
4
- import { c as Fe } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
5
- import { a as ie, N as se } from '../packages/ui/dist/NiceToggle-C1UKGXmJ.js';
4
+ import { c as Fe } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
5
+ import { a as ie, N as se } from '../packages/ui/dist/NiceToggle-CaY1u82g.js';
6
6
 
7
7
  const PixelEditorTimeline = React.memo(({ api }) => (jsxs("div", { className: styles.bottomPanel, children: [jsxs("div", { className: styles.timelineControls, children: [jsx(Fe, { variant: "ghost", size: "sm", onClick: api.addFrame, children: "+ Frame" }), jsx(Fe, { variant: "ghost", size: "sm", onClick: api.dupFrame, "aria-label": "Duplicate frame", children: "Dup" }), jsx(Fe, { variant: "ghost", size: "sm", onClick: api.rmFrame, "aria-label": "Remove frame", children: "\u2212 Frame" }), jsx("div", { className: styles.menuSep }), jsx(Fe, { variant: "ghost", size: "sm", onClick: () => api.setPlaying((p) => !p), children: api.playing ? "⏸" : "▶" }), jsx("label", { children: "FPS:" }), jsx(ie, { min: 1, max: 60, value: api.fps, onChange: (val) => api.setFps(val !== null && val !== void 0 ? val : 8), "aria-label": "Frames per second" }), jsx("div", { className: styles.menuSep }), jsx(se, { checked: api.onion, onChange: (checked) => api.setOnion(checked), label: "Onion" }), jsx("div", { style: { flex: 1 } }), jsxs("span", { children: [api.fc, " frame", api.fc !== 1 ? "s" : ""] })] }), jsx("div", { className: styles.timelineFrames, children: Array.from({ length: api.fc }, (_, fi) => (jsxs("div", { className: `${styles.frameThumb} ${fi === api.afi ? styles.frameThumbActive : ""}`, onClick: () => api.setAfi(fi), children: [api.thumbs[fi] && (jsx("img", { src: api.thumbs[fi], alt: `Frame ${fi + 1}`, style: { width: 36, height: 36, imageRendering: "pixelated", objectFit: "contain" } })), jsx("span", { className: styles.frameNum, children: fi + 1 })] }, fi))) })] })));
8
8
  PixelEditorTimeline.displayName = "PixelEditorTimeline";
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
3
  import styles from './PixelEditor.module.css.js';
4
- import { c as Fe, N as Ae } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
4
+ import { c as Fe, N as Ae } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
5
5
  import { TOOLS, SYMMETRY_MODES } from './pixelEditorTypes.js';
6
6
 
7
7
  const PixelEditorToolbar = React.memo(({ api }) => (jsxs("div", { className: styles.toolbar, children: [TOOLS.map((t) => (jsx(Fe, { className: `${styles.toolBtn} ${api.tool === t.id ? styles.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))), jsx("div", { className: styles.toolSep }), jsx(Fe, { className: `${styles.toolBtn} ${api.shapeFilled ? styles.toolBtnActive : ""}`, variant: api.shapeFilled ? 'primary' : 'ghost', size: "sm", onClick: () => api.setShapeFilled((f) => !f), title: `${api.shapeFilled ? "Filled" : "Outline"} (F)`, children: api.shapeFilled ? "■" : "□" }), jsx("div", { className: styles.toolGroup, children: SYMMETRY_MODES.map((m) => (jsx(Fe, { className: `${styles.miniBtn} ${api.symmetry === m.id ? styles.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))) }), jsxs("div", { className: styles.colorSwatches, children: [jsx("label", { style: { position: "relative", width: 28, height: 28, cursor: "pointer" }, title: "Primary Colour (click for HSV)", children: jsx(Ae, { value: api.col1, onChange: (c) => api.setCol1(c) }) }), jsx("label", { style: { position: "relative", width: 22, height: 22, cursor: "pointer" }, title: "Secondary Colour", children: jsx(Ae, { value: api.col2, onChange: (c) => api.setCol2(c) }) }), jsx(Fe, { className: styles.toolBtn, variant: "ghost", size: "sm", onClick: () => {
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useState, useRef, useEffect, useMemo, useCallback } from 'react';
3
3
  import styles from './PixelEditor.module.css.js';
4
- import { c as Fe, a as De } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
5
- import { a as ie, N as se } from '../packages/ui/dist/NiceToggle-C1UKGXmJ.js';
6
- import { f as fe } from '../packages/ui/dist/NiceErrorBoundary-D1hh5GGe.js';
4
+ import { c as Fe, a as De } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
5
+ import { a as ie, N as se } from '../packages/ui/dist/NiceToggle-CaY1u82g.js';
6
+ import { f as fe } from '../packages/ui/dist/NiceErrorBoundary-niMx1aSJ.js';
7
7
  import { getAllParts, assembleSprite, applyIsometricProjection, getPart, generateAllDirections, render8DirSpriteSheet, getPartsByCategory, ALL_DIRECTIONS } from './spriteGeneratorCore.js';
8
8
  import { CHARACTER_PRESETS, initCharacterParts, SKIN_PALETTES, HAIR_PALETTES, CLOTHING_PALETTES } from './characterGeneratorPresets.js';
9
9
  import { BUILDING_PRESETS, assembleBuildingFromConfig, initBuildingParts, WALL_PALETTES, ROOF_PALETTES } from './buildingGeneratorPresets.js';
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { c as Fe } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
3
- import { X as En } from '../packages/ui/dist/NicePinCodeInput-4q8yULuo.js';
4
- import { f as fe } from '../packages/ui/dist/NiceErrorBoundary-D1hh5GGe.js';
2
+ import { c as Fe } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
3
+ import { X as En } from '../packages/ui/dist/NicePinCodeInput-CrMfdxxc.js';
4
+ import { f as fe } from '../packages/ui/dist/NiceErrorBoundary-niMx1aSJ.js';
5
5
  import styles from './VectorEditor.module.css.js';
6
6
  import { TOOLS } from './vectorEditorTypes.js';
7
7
  import { ShapeRenderer } from './VectorEditorShapeRenderer.js';
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { c as Fe, a as De } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
4
- import { N as se } from '../packages/ui/dist/NiceToggle-C1UKGXmJ.js';
3
+ import { c as Fe, a as De } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
4
+ import { N as se } from '../packages/ui/dist/NiceToggle-CaY1u82g.js';
5
5
  import styles from './VectorEditor.module.css.js';
6
6
 
7
7
  const VectorEditorMenuBar$1 = ({ api, hasOnSaveToLibrary }) => {
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import React, { useState } from 'react';
3
- import { c as Fe, N as Ae, b as Re, a as De } from '../packages/ui/dist/NiceButton-DmTHNHet.js';
4
- import { U as Dn } from '../packages/ui/dist/NicePinCodeInput-4q8yULuo.js';
5
- import { a as ie } from '../packages/ui/dist/NiceToggle-C1UKGXmJ.js';
3
+ import { c as Fe, N as Ae, b as Re, a as De } from '../packages/ui/dist/NiceButton-D9l39Rs7.js';
4
+ import { U as Dn } from '../packages/ui/dist/NicePinCodeInput-CrMfdxxc.js';
5
+ import { a as ie } from '../packages/ui/dist/NiceToggle-CaY1u82g.js';
6
6
  import styles from './VectorEditor.module.css.js';
7
7
  import { FONTS } from './vectorEditorTypes.js';
8
8
  import { PRESET_GRADIENTS, gradientToCSS, gradientId, cloneGradient } from './vectorGradients.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/ui-graphics",
3
- "version": "1.0.6",
3
+ "version": "1.1.0",
4
4
  "description": "Nice2Dev Graphics Editors — Pixel, Vector, Photo and Animation editors for React",
5
5
  "author": "NiceToDev <contact@nicetodev.com>",
6
6
  "license": "SEE LICENSE IN LICENSE",