labellife-design-tool 0.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.
- package/LICENSE +23 -0
- package/README.md +128 -0
- package/dist/lib/CanvasEditor.d.ts +8 -0
- package/dist/lib/CanvasEditor.d.ts.map +1 -0
- package/dist/lib/components/Header.d.ts +17 -0
- package/dist/lib/components/Header.d.ts.map +1 -0
- package/dist/lib/components/LeftMenu.d.ts +13 -0
- package/dist/lib/components/LeftMenu.d.ts.map +1 -0
- package/dist/lib/components/TemplateInputModal.d.ts +10 -0
- package/dist/lib/components/TemplateInputModal.d.ts.map +1 -0
- package/dist/lib/components/header/AppName.d.ts +4 -0
- package/dist/lib/components/header/AppName.d.ts.map +1 -0
- package/dist/lib/components/header/ExportButton.d.ts +8 -0
- package/dist/lib/components/header/ExportButton.d.ts.map +1 -0
- package/dist/lib/components/header/HistoryControls.d.ts +10 -0
- package/dist/lib/components/header/HistoryControls.d.ts.map +1 -0
- package/dist/lib/components/header/ZoomControls.d.ts +10 -0
- package/dist/lib/components/header/ZoomControls.d.ts.map +1 -0
- package/dist/lib/components/sidebar/RightSidebar.d.ts +16 -0
- package/dist/lib/components/sidebar/RightSidebar.d.ts.map +1 -0
- package/dist/lib/config.d.ts +11 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/constants/CanvasPresets.d.ts +6 -0
- package/dist/lib/constants/CanvasPresets.d.ts.map +1 -0
- package/dist/lib/constants/DefaultColors.d.ts +2 -0
- package/dist/lib/constants/DefaultColors.d.ts.map +1 -0
- package/dist/lib/constants/FontFamilies.d.ts +2 -0
- package/dist/lib/constants/FontFamilies.d.ts.map +1 -0
- package/dist/lib/constants/index.d.ts +4 -0
- package/dist/lib/constants/index.d.ts.map +1 -0
- package/dist/lib/elements/EditableTextElement.d.ts +10 -0
- package/dist/lib/elements/EditableTextElement.d.ts.map +1 -0
- package/dist/lib/elements/ShapeElement.d.ts +10 -0
- package/dist/lib/elements/ShapeElement.d.ts.map +1 -0
- package/dist/lib/elements/UrlImageElement.d.ts +10 -0
- package/dist/lib/elements/UrlImageElement.d.ts.map +1 -0
- package/dist/lib/elements/index.d.ts +4 -0
- package/dist/lib/elements/index.d.ts.map +1 -0
- package/dist/lib/index.css +1109 -0
- package/dist/lib/index.js +4052 -0
- package/dist/lib/lib/index.d.ts +11 -0
- package/dist/lib/lib/index.d.ts.map +1 -0
- package/dist/lib/panels/BackgroundPanel.d.ts +11 -0
- package/dist/lib/panels/BackgroundPanel.d.ts.map +1 -0
- package/dist/lib/panels/DesignPanel.d.ts +15 -0
- package/dist/lib/panels/DesignPanel.d.ts.map +1 -0
- package/dist/lib/panels/ElementPanel.d.ts +8 -0
- package/dist/lib/panels/ElementPanel.d.ts.map +1 -0
- package/dist/lib/panels/ExportPanel.d.ts +10 -0
- package/dist/lib/panels/ExportPanel.d.ts.map +1 -0
- package/dist/lib/panels/ImagePanel.d.ts +13 -0
- package/dist/lib/panels/ImagePanel.d.ts.map +1 -0
- package/dist/lib/panels/TextPanel.d.ts +11 -0
- package/dist/lib/panels/TextPanel.d.ts.map +1 -0
- package/dist/lib/panels/VariablesPanel.d.ts +11 -0
- package/dist/lib/panels/VariablesPanel.d.ts.map +1 -0
- package/dist/lib/types/CanvasDesign.d.ts +13 -0
- package/dist/lib/types/CanvasDesign.d.ts.map +1 -0
- package/dist/lib/types/CanvasEditor.d.ts +6 -0
- package/dist/lib/types/CanvasEditor.d.ts.map +1 -0
- package/dist/lib/types/CanvasElement.d.ts +80 -0
- package/dist/lib/types/CanvasElement.d.ts.map +1 -0
- package/dist/lib/types/Config.d.ts +19 -0
- package/dist/lib/types/Config.d.ts.map +1 -0
- package/dist/lib/types/Feature.d.ts +4 -0
- package/dist/lib/types/Feature.d.ts.map +1 -0
- package/dist/lib/types/MenuElement.d.ts +7 -0
- package/dist/lib/types/MenuElement.d.ts.map +1 -0
- package/dist/lib/types/Page.d.ts +9 -0
- package/dist/lib/types/Page.d.ts.map +1 -0
- package/dist/lib/types/Panel.d.ts +17 -0
- package/dist/lib/types/Panel.d.ts.map +1 -0
- package/dist/lib/types/ShapeType.d.ts +2 -0
- package/dist/lib/types/ShapeType.d.ts.map +1 -0
- package/dist/lib/types/ToolType.d.ts +3 -0
- package/dist/lib/types/ToolType.d.ts.map +1 -0
- package/dist/lib/types/UnsplashSearchResult.d.ts +11 -0
- package/dist/lib/types/UnsplashSearchResult.d.ts.map +1 -0
- package/dist/lib/types/UserInput.d.ts +21 -0
- package/dist/lib/types/UserInput.d.ts.map +1 -0
- package/dist/lib/types/index.d.ts +12 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/utils/exportImportUtils.d.ts +24 -0
- package/dist/lib/utils/exportImportUtils.d.ts.map +1 -0
- package/package.json +91 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas Editor Library
|
|
3
|
+
* Main entry point for npm package
|
|
4
|
+
*/
|
|
5
|
+
export { default as CanvasEditor } from '../CanvasEditor';
|
|
6
|
+
export * from '../types';
|
|
7
|
+
export { exportToPNG, exportToJPG, exportToJSON, importFromJSON, findRequiredInputs, replaceUserInputs, convertTemplateToCanvasDesign, } from '../utils/exportImportUtils';
|
|
8
|
+
export * from '../elements';
|
|
9
|
+
export { FONT_FAMILIES, DEFAULT_COLORS, CANVAS_PRESETS } from '../constants';
|
|
10
|
+
export { setUnsplashAccessKey, getUnsplashAccessKey } from '../config';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG1D,cAAc,UAAU,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAGpC,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG7E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CanvasDesign, Page } from '../types';
|
|
3
|
+
interface BackgroundPanelProps {
|
|
4
|
+
design: CanvasDesign;
|
|
5
|
+
currentPage: Page;
|
|
6
|
+
setDesign: (design: CanvasDesign | ((prev: CanvasDesign) => CanvasDesign)) => void;
|
|
7
|
+
onSetUnsplashBackground: () => void;
|
|
8
|
+
}
|
|
9
|
+
declare const BackgroundPanel: React.FC<BackgroundPanelProps>;
|
|
10
|
+
export default BackgroundPanel;
|
|
11
|
+
//# sourceMappingURL=BackgroundPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackgroundPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/BackgroundPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAE9C,UAAU,oBAAoB;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY,CAAC,KAAK,IAAI,CAAC;IACnF,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACrC;AAED,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4DnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CanvasDesign, Page, CanvasElement } from '../types';
|
|
3
|
+
import { Config } from '../types/Config';
|
|
4
|
+
interface DesignPanelProps {
|
|
5
|
+
design: CanvasDesign;
|
|
6
|
+
currentPage: Page;
|
|
7
|
+
selectedElement: CanvasElement | undefined | null;
|
|
8
|
+
setDesign: (design: CanvasDesign | ((prev: CanvasDesign) => CanvasDesign)) => void;
|
|
9
|
+
updateElement: (id: string, attrs: Partial<CanvasElement>) => void;
|
|
10
|
+
onSetUnsplashBackground: () => void;
|
|
11
|
+
config?: Config;
|
|
12
|
+
}
|
|
13
|
+
declare const DesignPanel: React.FC<DesignPanelProps>;
|
|
14
|
+
export default DesignPanel;
|
|
15
|
+
//# sourceMappingURL=DesignPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DesignPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/DesignPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,UAAU,gBAAgB;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;IAClB,eAAe,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC;IAClD,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY,CAAC,KAAK,IAAI,CAAC;IACnF,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACnE,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA+H3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ShapeType } from "../types";
|
|
3
|
+
interface ElementPanelProps {
|
|
4
|
+
onAddShape: (shapeType: ShapeType) => void;
|
|
5
|
+
}
|
|
6
|
+
declare const ElementPanel: React.FC<ElementPanelProps>;
|
|
7
|
+
export default ElementPanel;
|
|
8
|
+
//# sourceMappingURL=ElementPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ElementPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/ElementPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,UAAU,iBAAiB;IACzB,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CAC5C;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAuI7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface ExportPanelProps {
|
|
3
|
+
onExportToPNG: () => void;
|
|
4
|
+
onExportToJPG: () => void;
|
|
5
|
+
onExportToJSON: () => void;
|
|
6
|
+
onImportJSON: () => void;
|
|
7
|
+
}
|
|
8
|
+
declare const ExportPanel: React.FC<ExportPanelProps>;
|
|
9
|
+
export default ExportPanel;
|
|
10
|
+
//# sourceMappingURL=ExportPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExportPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/ExportPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,gBAAgB;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqC3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CanvasElement } from "../types";
|
|
3
|
+
interface ImagePanelProps {
|
|
4
|
+
selectedElement: CanvasElement | undefined | null;
|
|
5
|
+
updateElement: (id: string, attrs: Partial<CanvasElement>) => void;
|
|
6
|
+
onUploadClick: () => void;
|
|
7
|
+
onUnsplashClick: () => void;
|
|
8
|
+
canvasWidth: number;
|
|
9
|
+
canvasHeight: number;
|
|
10
|
+
}
|
|
11
|
+
declare const ImagePanel: React.FC<ImagePanelProps>;
|
|
12
|
+
export default ImagePanel;
|
|
13
|
+
//# sourceMappingURL=ImagePanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImagePanel.d.ts","sourceRoot":"","sources":["../../../src/panels/ImagePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAa,MAAM,UAAU,CAAC;AAIpD,UAAU,eAAe;IACvB,eAAe,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC;IAClD,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACnE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiVzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { CanvasElement, ToolType } from "../types";
|
|
3
|
+
interface TextPanelProps {
|
|
4
|
+
selectedElement: CanvasElement | undefined | null;
|
|
5
|
+
updateElement: (id: string, attrs: Partial<CanvasElement>) => void;
|
|
6
|
+
setTool: (tool: ToolType) => void;
|
|
7
|
+
onAddText: () => void;
|
|
8
|
+
}
|
|
9
|
+
declare const TextPanel: React.FC<TextPanelProps>;
|
|
10
|
+
export default TextPanel;
|
|
11
|
+
//# sourceMappingURL=TextPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/TextPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAanD,UAAU,cAAc;IACtB,eAAe,EAAE,aAAa,GAAG,SAAS,GAAG,IAAI,CAAC;IAClD,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACnE,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAsSvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Config } from '../types/Config';
|
|
3
|
+
import { CanvasDesign } from '../types';
|
|
4
|
+
interface VariablesPanelProps {
|
|
5
|
+
config: Config;
|
|
6
|
+
design: CanvasDesign;
|
|
7
|
+
setDesign: (design: CanvasDesign | ((prev: CanvasDesign) => CanvasDesign)) => void;
|
|
8
|
+
}
|
|
9
|
+
declare const VariablesPanel: React.FC<VariablesPanelProps>;
|
|
10
|
+
export default VariablesPanel;
|
|
11
|
+
//# sourceMappingURL=VariablesPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesPanel.d.ts","sourceRoot":"","sources":["../../../src/panels/VariablesPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,KAAK,YAAY,CAAC,KAAK,IAAI,CAAC;CACpF;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmEjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Page } from './Page';
|
|
2
|
+
import { UserInputConfig } from './UserInput';
|
|
3
|
+
export interface CanvasDesign {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
pages: Page[];
|
|
9
|
+
fonts: string[];
|
|
10
|
+
colors: string[];
|
|
11
|
+
templateInputs?: UserInputConfig[];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=CanvasDesign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasDesign.d.ts","sourceRoot":"","sources":["../../../src/types/CanvasDesign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,eAAe,EAAE,CAAC;CACpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasEditor.d.ts","sourceRoot":"","sources":["../../../src/types/CanvasEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;CAClC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { ShapeType } from './ShapeType';
|
|
2
|
+
export interface CanvasElement {
|
|
3
|
+
id: string;
|
|
4
|
+
type: "text" | "image" | "shape" | "line";
|
|
5
|
+
name: string;
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
rotation: number;
|
|
11
|
+
scaleX?: number;
|
|
12
|
+
scaleY?: number;
|
|
13
|
+
visible: boolean;
|
|
14
|
+
locked: boolean;
|
|
15
|
+
opacity: number;
|
|
16
|
+
text?: string;
|
|
17
|
+
fontSize?: number;
|
|
18
|
+
fontFamily?: string;
|
|
19
|
+
fontStyle?: string;
|
|
20
|
+
textDecoration?: string;
|
|
21
|
+
fill?: string;
|
|
22
|
+
stroke?: string;
|
|
23
|
+
strokeWidth?: number;
|
|
24
|
+
align?: string;
|
|
25
|
+
verticalAlign?: string;
|
|
26
|
+
lineHeight?: number;
|
|
27
|
+
letterSpacing?: number;
|
|
28
|
+
strikethrough?: boolean;
|
|
29
|
+
textCase?: "uppercase" | "lowercase" | "capitalize" | "none";
|
|
30
|
+
textWidth?: number;
|
|
31
|
+
textHeight?: number;
|
|
32
|
+
src?: string;
|
|
33
|
+
cropX?: number;
|
|
34
|
+
cropY?: number;
|
|
35
|
+
cropWidth?: number;
|
|
36
|
+
cropHeight?: number;
|
|
37
|
+
cornerRadius?: number;
|
|
38
|
+
filters?: {
|
|
39
|
+
blur?: number;
|
|
40
|
+
brightness?: number;
|
|
41
|
+
contrast?: number;
|
|
42
|
+
saturation?: number;
|
|
43
|
+
hue?: number;
|
|
44
|
+
sepia?: boolean;
|
|
45
|
+
grayscale?: boolean;
|
|
46
|
+
};
|
|
47
|
+
mask?: {
|
|
48
|
+
type: ShapeType;
|
|
49
|
+
};
|
|
50
|
+
shapeType?: ShapeType;
|
|
51
|
+
innerRadius?: number;
|
|
52
|
+
outerRadius?: number;
|
|
53
|
+
points?: number[];
|
|
54
|
+
numPoints?: number;
|
|
55
|
+
tension?: number;
|
|
56
|
+
closed?: boolean;
|
|
57
|
+
sides?: number;
|
|
58
|
+
pointerLength?: number;
|
|
59
|
+
pointerWidth?: number;
|
|
60
|
+
dash?: number[];
|
|
61
|
+
pathData?: string;
|
|
62
|
+
pathNaturalWidth?: number;
|
|
63
|
+
pathNaturalHeight?: number;
|
|
64
|
+
userInput?: {
|
|
65
|
+
required: boolean;
|
|
66
|
+
type: "image" | "text" | "number" | "color" | "url";
|
|
67
|
+
id: string;
|
|
68
|
+
label: string;
|
|
69
|
+
property?: string;
|
|
70
|
+
placeholder?: string;
|
|
71
|
+
defaultValue?: string;
|
|
72
|
+
accept?: string;
|
|
73
|
+
maxSize?: number;
|
|
74
|
+
maxLength?: number;
|
|
75
|
+
minLength?: number;
|
|
76
|
+
helpText?: string;
|
|
77
|
+
order?: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=CanvasElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasElement.d.ts","sourceRoot":"","sources":["../../../src/types/CanvasElement.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface Config {
|
|
2
|
+
export?: {
|
|
3
|
+
png?: boolean;
|
|
4
|
+
jpg?: boolean;
|
|
5
|
+
json?: boolean;
|
|
6
|
+
};
|
|
7
|
+
multiPage?: boolean;
|
|
8
|
+
designSize?: {
|
|
9
|
+
width?: boolean;
|
|
10
|
+
height?: boolean;
|
|
11
|
+
};
|
|
12
|
+
variables?: boolean;
|
|
13
|
+
steps?: {
|
|
14
|
+
name: string;
|
|
15
|
+
type: "text" | "image";
|
|
16
|
+
variable: string;
|
|
17
|
+
}[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/types/Config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;CACL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Feature.d.ts","sourceRoot":"","sources":["../../../src/types/Feature.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;CACnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuElement.d.ts","sourceRoot":"","sources":["../../../src/types/MenuElement.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../src/types/Page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;CAC1C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CanvasDesign } from "./CanvasDesign";
|
|
2
|
+
export interface Panel {
|
|
3
|
+
icon: string;
|
|
4
|
+
name: string;
|
|
5
|
+
design: CanvasDesign;
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
}
|
|
8
|
+
import React from 'react';
|
|
9
|
+
export interface PanelConfig {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
icon?: React.ElementType;
|
|
13
|
+
component: React.ComponentType<any>;
|
|
14
|
+
props?: Record<string, any>;
|
|
15
|
+
}
|
|
16
|
+
export type ActivePanelId = "elements" | "design" | "text" | "image" | "export" | string;
|
|
17
|
+
//# sourceMappingURL=Panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../src/types/Panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B;AAaD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export type ShapeType = "rect" | "circle" | "triangle" | "star" | "polygon" | "line" | "arrow" | "pentagon" | "octagon" | "nonagon" | "decagon" | "hendecagon" | "dodecagon" | "rectangle" | "right-triangle" | "isosceles-triangle" | "scalene-triangle" | "dashed-line" | "dotted-line" | "custom-path";
|
|
2
|
+
//# sourceMappingURL=ShapeType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShapeType.d.ts","sourceRoot":"","sources":["../../../src/types/ShapeType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,QAAQ,GACR,UAAU,GACV,MAAM,GACN,SAAS,GACT,MAAM,GACN,OAAO,GACP,UAAU,GACV,SAAS,GACT,SAAS,GACT,SAAS,GACT,YAAY,GACZ,WAAW,GACX,WAAW,GACX,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolType.d.ts","sourceRoot":"","sources":["../../../src/types/ToolType.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnsplashSearchResult.d.ts","sourceRoot":"","sources":["../../../src/types/UnsplashSearchResult.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface UserInputConfig {
|
|
2
|
+
required: boolean;
|
|
3
|
+
type: "image" | "text" | "number" | "color" | "url";
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
property?: string;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
defaultValue?: string;
|
|
9
|
+
accept?: string;
|
|
10
|
+
maxSize?: number;
|
|
11
|
+
maxLength?: number;
|
|
12
|
+
minLength?: number;
|
|
13
|
+
helpText?: string;
|
|
14
|
+
order?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface UserInputItem {
|
|
17
|
+
config: UserInputConfig;
|
|
18
|
+
elementId: string;
|
|
19
|
+
elementType: string;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=UserInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserInput.d.ts","sourceRoot":"","sources":["../../../src/types/UserInput.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IACpD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './CanvasDesign';
|
|
2
|
+
export * from './CanvasEditor';
|
|
3
|
+
export * from './CanvasElement';
|
|
4
|
+
export * from './Feature';
|
|
5
|
+
export * from './MenuElement';
|
|
6
|
+
export * from './Page';
|
|
7
|
+
export * from './Panel';
|
|
8
|
+
export * from './ToolType';
|
|
9
|
+
export * from './UnsplashSearchResult';
|
|
10
|
+
export * from './ShapeType';
|
|
11
|
+
export * from './UserInput';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type CanvasDesign } from "../types/CanvasDesign";
|
|
2
|
+
import { type UserInputItem } from "../types/UserInput";
|
|
3
|
+
import Konva from "konva";
|
|
4
|
+
/**
|
|
5
|
+
* Converts a template JSON format to CanvasDesign format
|
|
6
|
+
* Handles differences like:
|
|
7
|
+
* - "children" instead of "elements" in pages
|
|
8
|
+
* - Missing top-level "id" and "name" fields
|
|
9
|
+
* - Other structural variations
|
|
10
|
+
*/
|
|
11
|
+
export declare function convertTemplateToCanvasDesign(json: any): CanvasDesign;
|
|
12
|
+
/**
|
|
13
|
+
* Finds all elements that require user input
|
|
14
|
+
*/
|
|
15
|
+
export declare function findRequiredInputs(design: CanvasDesign): UserInputItem[];
|
|
16
|
+
/**
|
|
17
|
+
* Replaces user input values in the design
|
|
18
|
+
*/
|
|
19
|
+
export declare function replaceUserInputs(design: CanvasDesign, collectedInputs: Record<string, any>): CanvasDesign;
|
|
20
|
+
export declare const exportToPNG: (stage: Konva.Stage, design: CanvasDesign) => void;
|
|
21
|
+
export declare const exportToJPG: (stage: Konva.Stage, design: CanvasDesign) => void;
|
|
22
|
+
export declare const exportToJSON: (design: CanvasDesign) => void;
|
|
23
|
+
export declare const importFromJSON: (event: React.ChangeEvent<HTMLInputElement>, onLoad: (design: CanvasDesign) => void, onError: (message: string) => void, onInputsRequired?: (inputs: UserInputItem[], onComplete: (values: Record<string, any>) => void) => void) => void;
|
|
24
|
+
//# sourceMappingURL=exportImportUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportImportUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/exportImportUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,CAkGrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAsHxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACrC,YAAY,CAuDd;AAGD,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,YAAY,SAanE,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,KAAK,EAAE,QAAQ,YAAY,SAiBnE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,SAWhD,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,OAAO,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAC1C,QAAQ,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,EACtC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAClC,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK,IAAI,SA0C1G,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "labellife-design-tool",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Professional canvas editor built with React, TypeScript, and Konva",
|
|
5
|
+
"main": "./dist/lib/index.js",
|
|
6
|
+
"module": "./dist/lib/index.js",
|
|
7
|
+
"types": "./dist/lib/lib/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/lib/index.js",
|
|
12
|
+
"types": "./dist/lib/lib/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./styles": "./dist/lib/index.css"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist/lib",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"canvas",
|
|
23
|
+
"editor",
|
|
24
|
+
"design",
|
|
25
|
+
"konva",
|
|
26
|
+
"react",
|
|
27
|
+
"typescript",
|
|
28
|
+
"design-editor",
|
|
29
|
+
"graphics-editor"
|
|
30
|
+
],
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/LabelLife/drawing-tool"
|
|
34
|
+
},
|
|
35
|
+
"license": "MIT",
|
|
36
|
+
"scripts": {
|
|
37
|
+
"dev": "bun run --hot src/index.tsx",
|
|
38
|
+
"build": "bun run build:lib && bun run build:app",
|
|
39
|
+
"build:lib": "bun run build:lib:tsc && bun run build:lib:bundle",
|
|
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",
|
|
42
|
+
"build:app": "bun build src/index.tsx --outdir dist/app --minify --splitting --target browser",
|
|
43
|
+
"build:css": "bun run scripts/build-css.ts",
|
|
44
|
+
"build:lib:all": "bun run build:lib && bun run build:css",
|
|
45
|
+
"start": "bun run dist/app/server.js",
|
|
46
|
+
"preview": "bun run build:app && bun run start",
|
|
47
|
+
"prepublishOnly": "bun run build:lib:all",
|
|
48
|
+
"test": "vitest",
|
|
49
|
+
"test:watch": "bun run test --watch",
|
|
50
|
+
"test:coverage": "bun run test --coverage",
|
|
51
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
52
|
+
"lint:fix": "eslint src --ext .ts,.tsx --fix",
|
|
53
|
+
"type-check": "tsc --noEmit",
|
|
54
|
+
"format": "prettier --write \"src/**/*.{ts,tsx,json,css}\"",
|
|
55
|
+
"format:check": "prettier --check \"src/**/*.{ts,tsx,json,css}\"",
|
|
56
|
+
"clean": "rm -rf dist coverage .turbo",
|
|
57
|
+
"docker:build": "docker build -t labellife-design-tool .",
|
|
58
|
+
"docker:run": "docker run -p 3000:3000 labellife-design-tool",
|
|
59
|
+
"docker:dev": "docker-compose --profile development up",
|
|
60
|
+
"docker:prod": "docker-compose --profile production up -d",
|
|
61
|
+
"docker:down": "docker-compose down"
|
|
62
|
+
},
|
|
63
|
+
"peerDependencies": {
|
|
64
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
65
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@types/jest": "^30.0.0",
|
|
69
|
+
"bun-plugin-tailwind": "^0.0.14",
|
|
70
|
+
"i18next": "^23.12.2",
|
|
71
|
+
"i18next-browser-languagedetector": "^8.0.0",
|
|
72
|
+
"konva": "^9.3.20",
|
|
73
|
+
"lucide-react": "^0.511.0",
|
|
74
|
+
"react-i18next": "^15.0.0",
|
|
75
|
+
"react-image-crop": "^11.0.10",
|
|
76
|
+
"react-konva": "^19.0.4",
|
|
77
|
+
"tailwindcss": "^4.0.6"
|
|
78
|
+
},
|
|
79
|
+
"devDependencies": {
|
|
80
|
+
"@tailwindcss/postcss": "^4.1.17",
|
|
81
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
82
|
+
"@testing-library/react": "^16.3.0",
|
|
83
|
+
"@types/bun": "latest",
|
|
84
|
+
"@types/react": "^19",
|
|
85
|
+
"@types/react-dom": "^19",
|
|
86
|
+
"@vitejs/plugin-react": "^4.6.0",
|
|
87
|
+
"jsdom": "^26.1.0",
|
|
88
|
+
"postcss": "^8.5.6",
|
|
89
|
+
"vitest": "^3.2.4"
|
|
90
|
+
}
|
|
91
|
+
}
|