labellife-design-tool 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/index.js +3 -3
- package/package.json +16 -8
- package/dist/lib/contexts/ThemeContext.d.ts +0 -21
- package/dist/lib/contexts/ThemeContext.d.ts.map +0 -1
- package/dist/lib/i18n.d.ts +0 -9
- package/dist/lib/i18n.d.ts.map +0 -1
- package/dist/lib/registry/BuiltInPanels.d.ts +0 -36
- package/dist/lib/registry/BuiltInPanels.d.ts.map +0 -1
- package/dist/lib/registry/PanelRegistry.d.ts +0 -58
- package/dist/lib/registry/PanelRegistry.d.ts.map +0 -1
package/dist/lib/index.js
CHANGED
|
@@ -576,11 +576,11 @@ var UrlImageElement = ({ element, isSelected, onSelect, onChange }) => {
|
|
|
576
576
|
activeFilters.push(Konva.Filters.Grayscale);
|
|
577
577
|
if (element.filters?.sepia)
|
|
578
578
|
activeFilters.push(Konva.Filters.Sepia);
|
|
579
|
-
node.filters(activeFilters.length > 0 ? activeFilters :
|
|
579
|
+
node.filters(activeFilters.length > 0 ? activeFilters : []);
|
|
580
580
|
node.cropX(element.cropX || 0);
|
|
581
581
|
node.cropY(element.cropY || 0);
|
|
582
|
-
node.cropWidth(element.cropWidth || element.width);
|
|
583
|
-
node.cropHeight(element.cropHeight || element.height);
|
|
582
|
+
node.cropWidth(element.cropWidth || element.width || 0);
|
|
583
|
+
node.cropHeight(element.cropHeight || element.height || 0);
|
|
584
584
|
if (needsCache && !element.mask) {
|
|
585
585
|
node.clearCache();
|
|
586
586
|
node.cache();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "labellife-design-tool",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Professional canvas editor built with React, TypeScript, and Konva",
|
|
5
5
|
"main": "./dist/lib/index.js",
|
|
6
6
|
"module": "./dist/lib/index.js",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"build": "bun run build:lib && bun run build:app",
|
|
39
39
|
"build:lib": "bun run build:lib:tsc && bun run build:lib:bundle",
|
|
40
40
|
"build:lib:tsc": "tsc -p tsconfig.lib.json",
|
|
41
|
-
"build:lib:bundle": "bun build src/lib/index.ts --outdir dist/lib --format esm --target browser --external react --external react-dom --external react-konva --external konva --external lucide-react --external i18next --external react-i18next --external i18next-browser-languagedetector --external react-image-crop",
|
|
41
|
+
"build:lib:bundle": "bun build src/lib/index.ts --outdir dist/lib --format esm --target browser --external react --external react-dom --external react/jsx-runtime --external react-konva --external konva --external lucide-react --external i18next --external react-i18next --external i18next-browser-languagedetector --external react-image-crop",
|
|
42
42
|
"build:app": "bun build src/index.tsx --outdir dist/app --minify --splitting --target browser",
|
|
43
43
|
"build:css": "bun run scripts/build-css.ts",
|
|
44
44
|
"build:lib:all": "bun run build:lib && bun run build:css",
|
|
@@ -61,28 +61,36 @@
|
|
|
61
61
|
"docker:down": "docker-compose down"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
|
-
"react": "^18.0.0 || ^
|
|
65
|
-
"react-dom": "^18.0.0 || ^
|
|
64
|
+
"react": "^18.0.0 || ^18.3.0",
|
|
65
|
+
"react-dom": "^18.0.0 || ^18.3.0"
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@types/jest": "^30.0.0",
|
|
69
69
|
"bun-plugin-tailwind": "^0.0.14",
|
|
70
70
|
"i18next": "^23.12.2",
|
|
71
71
|
"i18next-browser-languagedetector": "^8.0.0",
|
|
72
|
-
"konva": "
|
|
72
|
+
"konva": "8.3.14",
|
|
73
73
|
"lucide-react": "^0.511.0",
|
|
74
74
|
"react-i18next": "^15.0.0",
|
|
75
75
|
"react-image-crop": "^11.0.10",
|
|
76
|
-
"react-konva": "
|
|
76
|
+
"react-konva": "18.2.5",
|
|
77
77
|
"tailwindcss": "^4.0.6"
|
|
78
78
|
},
|
|
79
|
+
"resolutions": {
|
|
80
|
+
"react-konva": "18.2.5",
|
|
81
|
+
"konva": "8.3.14",
|
|
82
|
+
"@types/react": "18.2.0",
|
|
83
|
+
"@types/react-dom": "18.2.0"
|
|
84
|
+
},
|
|
79
85
|
"devDependencies": {
|
|
80
86
|
"@tailwindcss/postcss": "^4.1.17",
|
|
81
87
|
"@testing-library/jest-dom": "^6.6.3",
|
|
82
88
|
"@testing-library/react": "^16.3.0",
|
|
83
89
|
"@types/bun": "latest",
|
|
84
|
-
"@types/react": "
|
|
85
|
-
"@types/react-dom": "
|
|
90
|
+
"@types/react": "18.2.0",
|
|
91
|
+
"@types/react-dom": "18.2.0",
|
|
92
|
+
"react": "^18.2.0",
|
|
93
|
+
"react-dom": "^18.2.0",
|
|
86
94
|
"@vitejs/plugin-react": "^4.6.0",
|
|
87
95
|
"jsdom": "^26.1.0",
|
|
88
96
|
"postcss": "^8.5.6",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ThemeColors, ThemeConfig } from '../types/Theme';
|
|
3
|
-
/**
|
|
4
|
-
* Theme context type
|
|
5
|
-
*/
|
|
6
|
-
interface ThemeContextType {
|
|
7
|
-
theme: ThemeColors;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Hook to access the current theme
|
|
11
|
-
*/
|
|
12
|
-
export declare const useTheme: () => ThemeContextType;
|
|
13
|
-
/**
|
|
14
|
-
* Theme provider component
|
|
15
|
-
*/
|
|
16
|
-
export declare const ThemeProvider: React.FC<{
|
|
17
|
-
children: React.ReactNode;
|
|
18
|
-
themeConfig?: ThemeConfig;
|
|
19
|
-
}>;
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=ThemeContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/contexts/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI1D;;GAEG;AACH,UAAU,gBAAgB;IACxB,KAAK,EAAE,WAAW,CAAC;CACpB;AASD;;GAEG;AACH,eAAO,MAAM,QAAQ,wBAAiC,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAYA,CAAC"}
|
package/dist/lib/i18n.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Scoped i18n instance for LabelLife Design Tool
|
|
3
|
-
* Uses namespace 'labellife-editor' to avoid conflicts with consumer's i18n
|
|
4
|
-
*/
|
|
5
|
-
declare const EDITOR_NAMESPACE = "labellife-editor";
|
|
6
|
-
declare const editorI18n: import("node_modules/i18next").i18n;
|
|
7
|
-
export default editorI18n;
|
|
8
|
-
export { EDITOR_NAMESPACE };
|
|
9
|
-
//# sourceMappingURL=i18n.d.ts.map
|
package/dist/lib/i18n.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/i18n.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,QAAA,MAAM,gBAAgB,qBAAqB,CAAC;AAG5C,QAAA,MAAM,UAAU,qCAAwB,CAAC;AA+BzC,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { PanelConfig } from "../types/Panel";
|
|
2
|
-
import { Config } from "../types/Config";
|
|
3
|
-
import { CanvasDesign, Page, CanvasElement } from "../types";
|
|
4
|
-
import { ToolType } from "../types/ToolType";
|
|
5
|
-
/**
|
|
6
|
-
* Props factory for building panel props
|
|
7
|
-
*/
|
|
8
|
-
export interface PanelPropsFactory {
|
|
9
|
-
(context: {
|
|
10
|
-
design: CanvasDesign;
|
|
11
|
-
currentPage: Page;
|
|
12
|
-
selectedElement: CanvasElement | null;
|
|
13
|
-
selectedIds: string[];
|
|
14
|
-
setDesign: (design: CanvasDesign) => void;
|
|
15
|
-
updateElement: (id: string, attrs: Partial<CanvasElement>) => void;
|
|
16
|
-
deleteElement?: (id: string) => void;
|
|
17
|
-
setTool: (tool: ToolType) => void;
|
|
18
|
-
config?: Config;
|
|
19
|
-
onAddShape: (shapeType: any) => void;
|
|
20
|
-
onAddText: () => void;
|
|
21
|
-
onUploadClick: () => void;
|
|
22
|
-
onUnsplashClick: () => void;
|
|
23
|
-
onSetUnsplashBackground: () => void;
|
|
24
|
-
onExportToPNG?: () => void;
|
|
25
|
-
onExportToJPG?: () => void;
|
|
26
|
-
onExportToJSON?: () => void;
|
|
27
|
-
onImportJSON?: () => void;
|
|
28
|
-
canvasWidth?: number;
|
|
29
|
-
canvasHeight?: number;
|
|
30
|
-
}): Record<string, any>;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Create built-in panel configurations
|
|
34
|
-
*/
|
|
35
|
-
export declare function createBuiltInPanels(context: Parameters<PanelPropsFactory>[0]): PanelConfig[];
|
|
36
|
-
//# sourceMappingURL=BuiltInPanels.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BuiltInPanels.d.ts","sourceRoot":"","sources":["../../../src/registry/BuiltInPanels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAW7C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,CACE,OAAO,EAAE;QACP,MAAM,EAAE,YAAY,CAAC;QACrB,WAAW,EAAE,IAAI,CAAC;QAClB,eAAe,EAAE,aAAa,GAAG,IAAI,CAAC;QACtC,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;QAC1C,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;QACnE,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;QACrC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,UAAU,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,IAAI,CAAC;QACrC,SAAS,EAAE,MAAM,IAAI,CAAC;QACtB,aAAa,EAAE,MAAM,IAAI,CAAC;QAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;QAC5B,uBAAuB,EAAE,MAAM,IAAI,CAAC;QACpC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACxC,WAAW,EAAE,CAyFf"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { PanelConfig, CustomPanelConfig } from "../types/Panel";
|
|
2
|
-
import { Config } from "../types/Config";
|
|
3
|
-
/**
|
|
4
|
-
* Panel Registry - Manages panel registration, filtering, and ordering
|
|
5
|
-
*/
|
|
6
|
-
export declare class PanelRegistry {
|
|
7
|
-
private builtInPanels;
|
|
8
|
-
private customPanels;
|
|
9
|
-
/**
|
|
10
|
-
* Register a built-in panel
|
|
11
|
-
*/
|
|
12
|
-
registerBuiltIn(panel: PanelConfig): void;
|
|
13
|
-
/**
|
|
14
|
-
* Register multiple built-in panels
|
|
15
|
-
*/
|
|
16
|
-
registerBuiltInPanels(panels: PanelConfig[]): void;
|
|
17
|
-
/**
|
|
18
|
-
* Register a custom panel
|
|
19
|
-
*/
|
|
20
|
-
registerCustom(panel: CustomPanelConfig): void;
|
|
21
|
-
/**
|
|
22
|
-
* Register multiple custom panels
|
|
23
|
-
*/
|
|
24
|
-
registerCustomPanels(panels: CustomPanelConfig[]): void;
|
|
25
|
-
/**
|
|
26
|
-
* Get all panels based on configuration
|
|
27
|
-
*/
|
|
28
|
-
getPanels(config?: Config): PanelConfig[];
|
|
29
|
-
/**
|
|
30
|
-
* Filter panels based on config
|
|
31
|
-
*/
|
|
32
|
-
private filterPanels;
|
|
33
|
-
/**
|
|
34
|
-
* Insert custom panels at specified positions
|
|
35
|
-
*/
|
|
36
|
-
private insertCustomPanels;
|
|
37
|
-
/**
|
|
38
|
-
* Order panels according to specified order
|
|
39
|
-
*/
|
|
40
|
-
private orderPanels;
|
|
41
|
-
/**
|
|
42
|
-
* Get a specific panel by ID
|
|
43
|
-
*/
|
|
44
|
-
getPanel(id: string): PanelConfig | undefined;
|
|
45
|
-
/**
|
|
46
|
-
* Check if a panel is registered
|
|
47
|
-
*/
|
|
48
|
-
hasPanel(id: string): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Clear all custom panels
|
|
51
|
-
*/
|
|
52
|
-
clearCustomPanels(): void;
|
|
53
|
-
/**
|
|
54
|
-
* Clear all panels (built-in and custom)
|
|
55
|
-
*/
|
|
56
|
-
clear(): void;
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=PanelRegistry.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PanelRegistry.d.ts","sourceRoot":"","sources":["../../../src/registry/PanelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,YAAY,CAA6C;IAEjE;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIzC;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;IAIlD;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAQ9C;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAIvD;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE;IAqBzC;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI7C;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI7B;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
|