@snowcone-app/canvas 0.1.8 → 0.1.10
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/{CanvasStateV1-D5GzvmnY.cjs → CanvasStateV1-BmE5V6me.cjs} +2 -2
- package/dist/{CanvasStateV1-D5GzvmnY.cjs.map → CanvasStateV1-BmE5V6me.cjs.map} +1 -1
- package/dist/{CanvasStateV1-ejb4d_LM.js → CanvasStateV1-CD3Q94F4.js} +2 -2
- package/dist/{CanvasStateV1-ejb4d_LM.js.map → CanvasStateV1-CD3Q94F4.js.map} +1 -1
- package/dist/{ElementFactory-uJTXU-nP.js → ElementFactory-Ckv6sSev.js} +698 -696
- package/dist/ElementFactory-Ckv6sSev.js.map +1 -0
- package/dist/{ElementFactory-B7UOaJSD.cjs → ElementFactory-DEjwp-Wg.cjs} +5 -5
- package/dist/ElementFactory-DEjwp-Wg.cjs.map +1 -0
- package/dist/{ImportManager-CxiaRg1N.js → ImportManager-64OYjELO.js} +2 -2
- package/dist/{ImportManager-CxiaRg1N.js.map → ImportManager-64OYjELO.js.map} +1 -1
- package/dist/{ImportManager-BYwuK6n4.cjs → ImportManager-wSzrR-5a.cjs} +2 -2
- package/dist/{ImportManager-BYwuK6n4.cjs.map → ImportManager-wSzrR-5a.cjs.map} +1 -1
- package/dist/advanced.js +14 -14
- package/dist/advanced.js.map +1 -1
- package/dist/advanced.mjs +1847 -1854
- package/dist/advanced.mjs.map +1 -1
- package/dist/{compose-Bo108juW.cjs → compose-DHBRwi_A.cjs} +5 -5
- package/dist/compose-DHBRwi_A.cjs.map +1 -0
- package/dist/{compose-DQ1FZS3O.js → compose-DIPiisIw.js} +355 -355
- package/dist/compose-DIPiisIw.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -45
- package/dist/index.mjs.map +1 -1
- package/dist/internals.js +1 -1
- package/dist/internals.mjs +3 -3
- package/dist/rendering/serialize-for-server.d.ts +2 -2
- package/package.json +2 -2
- package/dist/ElementFactory-B7UOaJSD.cjs.map +0 -1
- package/dist/ElementFactory-uJTXU-nP.js.map +0 -1
- package/dist/components/stories/utils/MockEditorProvider.d.ts +0 -32
- package/dist/components/stories/utils/QACanvasCard.d.ts +0 -41
- package/dist/components/stories/utils/VisualQACard.d.ts +0 -24
- package/dist/components/stories/utils/element-factories.d.ts +0 -188
- package/dist/components/stories/utils/spec-to-elements.d.ts +0 -74
- package/dist/components/stories/utils/themeDecorator.d.ts +0 -45
- package/dist/components/stories/utils/unified-test-cases.d.ts +0 -27
- package/dist/compose-Bo108juW.cjs.map +0 -1
- package/dist/compose-DQ1FZS3O.js.map +0 -1
package/dist/internals.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./ElementFactory-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("./ElementFactory-DEjwp-Wg.cjs"),o=require("./HybridHistoryManager-BXD93pp8.cjs"),M=require("./ImportManager-wSzrR-5a.cjs"),p=require("./CanvasStateV1-BmE5V6me.cjs");function k(e,r,g){var t,s;e.save(),e.translate(r.x,r.y),r.rotation&&e.rotate(-r.rotation*Math.PI/180);let a=1,d=1;if(r.flipHorizontal&&(a=-1),r.flipVertical&&(d=-1),(a!==1||d!==1)&&e.scale(a,d),r.opacity!==void 0&&r.opacity!==1&&(e.globalAlpha=r.opacity),r.borderRadius&&r.borderRadius>0){const n=Math.min(r.borderRadius/100*Math.min(r.width,r.height),r.width/2,r.height/2);e.beginPath();const i=-r.width/2,h=-r.height/2,c=r.width,f=r.height;e.moveTo(i+n,h),e.lineTo(i+c-n,h),e.arcTo(i+c,h,i+c,h+n,n),e.lineTo(i+c,h+f-n),e.arcTo(i+c,h+f,i+c-n,h+f,n),e.lineTo(i+n,h+f),e.arcTo(i,h+f,i,h+f-n,n),e.lineTo(i,h+n),e.arcTo(i,h,i+n,h,n),e.closePath(),e.clip()}if(r.cropX!==void 0&&r.cropWidth!==void 0?e.drawImage(g,r.cropX,r.cropY||0,r.cropWidth,r.cropHeight||g.height,-r.width/2,-r.height/2,r.width,r.height):e.drawImage(g,-r.width/2,-r.height/2,r.width,r.height),e.restore(),(t=r.stroke)!=null&&t.enabled){const n=((s=r.knockoutParts)==null?void 0:s.stroke)===!0,i={x:r.x,y:r.y,rotation:r.rotation,stroke:r.stroke,knockoutParts:r.knockoutParts,transformData:{type:"image",width:r.width,height:r.height,borderRadius:r.borderRadius||0}};if(n){const h=e.canvas;let c;if(typeof OffscreenCanvas<"u")c=new OffscreenCanvas(h.width,h.height);else if(typeof document<"u")c=document.createElement("canvas"),c.width=h.width,c.height=h.height;else{o.renderImageStroke(e,i);return}const f=c.getContext("2d");if(!f){o.renderImageStroke(e,i);return}o.renderImageStroke(f,i,{isKnockout:!0}),e.save(),e.globalCompositeOperation="destination-out",e.drawImage(c,0,0),e.restore()}else o.renderImageStroke(e,i)}}function y(e,r){if(typeof OffscreenCanvas<"u")return new OffscreenCanvas(e,r);const g=document.createElement("canvas");return g.width=e,g.height=r,g}function m(e,r){var t;const g=r.opacity??1,a=!!((t=r.stroke)!=null&&t.enabled);g<1&&a?C(e,r,g):u(e,r,g)}function C(e,r,g){var f;const a=r.transformData,t=(((f=r.stroke)==null?void 0:f.width)||2)+2,s=Math.ceil(a.width+t*2),n=Math.ceil(a.height+t*2),i=y(s,n),h=i.getContext("2d");if(!h){u(e,r,g);return}const c={...r,x:s/2,y:n/2};u(h,c,1),e.save(),e.translate(r.x,r.y),r.rotation&&e.rotate(-r.rotation*Math.PI/180),e.globalAlpha=g,e.drawImage(i,-s/2,-n/2),e.restore()}function u(e,r,g){var t;const a=r.transformData,d=a.fillOpacity??1;if(e.save(),e.translate(r.x,r.y),r.rotation&&e.rotate(-r.rotation*Math.PI/180),e.globalAlpha=g*d,e.fillStyle=a.fillColor||"#3b82f6",e.beginPath(),S(e,a),e.fill(),e.restore(),(t=r.stroke)!=null&&t.enabled){e.save(),e.translate(r.x,r.y),r.rotation&&e.rotate(-r.rotation*Math.PI/180);const s=r.stroke;e.globalAlpha=g*(s.opacity??1),e.strokeStyle=s.color||"#000000",e.lineWidth=s.width||2,e.lineCap=s.lineCap||"round",e.lineJoin=s.lineJoin||"round",e.beginPath(),S(e,a),e.stroke(),e.restore()}}function S(e,r){const{shapeType:g,width:a,height:d}=r;switch(g){case"rectangle":{const t=r.borderRadius||0,s=-a/2,n=-d/2;if(t>0){const i=Math.min(t/100*Math.min(a,d),a/2,d/2);e.roundRect(s,n,a,d,i)}else e.rect(s,n,a,d);break}case"circle":{const t=Math.min(a,d)/2;e.arc(0,0,t,0,Math.PI*2);break}case"ellipse":{e.ellipse(0,0,a/2,d/2,0,0,Math.PI*2);break}case"triangle":{const t=a/2,s=d/2;e.moveTo(0,-s),e.lineTo(t,s),e.lineTo(-t,s),e.closePath();break}case"polygon":{const t=r.sides||5,s=Math.min(a,d)/2;for(let n=0;n<t;n++){const i=n*2*Math.PI/t-Math.PI/2,h=s*Math.cos(i),c=s*Math.sin(i);n===0?e.moveTo(h,c):e.lineTo(h,c)}e.closePath();break}case"star":{const t=r.points||5,s=Math.min(a,d)/2,n=s*(r.innerRadius||.4);for(let i=0;i<t*2;i++){const h=i*Math.PI/t-Math.PI/2,c=i%2===0?s:n,f=c*Math.cos(h),T=c*Math.sin(h);i===0?e.moveTo(f,T):e.lineTo(f,T)}e.closePath();break}case"line":{const t=a/2,s=d/2;e.rect(-t,-s,a,d);break}default:e.rect(-a/2,-d/2,a,d)}}exports.AlignmentSnapSystem=l.AlignmentSnapSystem;exports.ArtboardRenderer=l.ArtboardRenderer;exports.CanvasRenderer=l.CanvasRenderer;exports.DEFAULT_MAX_BITMAP_DIMENSION=l.DEFAULT_MAX_BITMAP_DIMENSION;exports.ExportManager=l.ExportManager;exports.InteractionStateMachine=l.InteractionStateMachine;exports.ResizePipeline=l.ResizePipeline;exports.SpacingSystem=l.SpacingSystem;exports.TransformHandles=l.TransformHandles;exports.WorkerExportManager=l.WorkerExportManager;exports.clearImageBitmapCache=l.clearImageBitmapCache;exports.clearMaskCache=l.clearMaskCache;exports.clearRegisteredBitmapKeys=l.clearRegisteredBitmapKeys;exports.getSharedWorkerExportManager=l.getSharedWorkerExportManager;exports.invalidateMaskCache=l.invalidateMaskCache;exports.removeFromImageBitmapCache=l.removeFromImageBitmapCache;exports.renderWithKnockout=l.renderWithKnockout;exports.renderWithMasks=l.renderWithMasks;exports.terminateSharedWorkerExportManager=l.terminateSharedWorkerExportManager;exports.unregisterElementBitmaps=l.unregisterElementBitmaps;exports.ArchTransform=o.ArchTransform;exports.ArtboardManager=o.ArtboardManager;exports.AscendTransform=o.AscendTransform;exports.CircleTransform=o.CircleTransform;exports.CustomTransform=o.CustomTransform;exports.ElementStore=o.ElementStore;exports.FlagTransform=o.FlagTransform;exports.HybridHistoryManager=o.HybridHistoryManager;exports.LeanTransform=o.LeanTransform;exports.LogLevel=o.LogLevel;exports.WaveTransform=o.WaveTransform;exports.applySpaceLayoutRules=o.applySpaceLayoutRules;exports.applyStrokeStyle=o.applyStrokeStyle;exports.buildFontString=o.buildFontString;exports.calculateFixedCornerPosition=o.calculateFixedCornerPosition;exports.calculateResizeHandles=o.calculateResizeHandles;exports.calculateRotationHandlePosition=o.calculateRotationHandlePosition;exports.createCirclePath=o.createCirclePath;exports.createImagePath=o.createImagePath;exports.createLogger=o.createLogger;exports.createRectPath=o.createRectPath;exports.createTextPath=o.createTextPath;exports.getFontMetrics=o.getFontMetrics;exports.hitTestCircle=o.hitTestCircle;exports.hitTestRect=o.hitTestRect;exports.logger=o.logger;exports.measureTextWidth=o.measureTextWidth$1;exports.renderCustomTransform=o.renderCustomTransform;exports.renderImageStroke=o.renderImageStroke;exports.renderMultilineText=o.renderMultilineText;exports.renderPathStroke=o.renderPathStroke;exports.renderRichTextFillOnly=o.renderRichTextFillOnly;exports.renderTextElement=o.renderTextElement;exports.renderTextFillOnly=o.renderTextFillOnly;exports.renderTextStroke=o.renderTextStroke;exports.splitRichTextIntoLines=o.splitRichTextIntoLines;exports.wrapRichTextSpans=o.wrapRichTextSpans;exports.wrapText=o.wrapText$1;exports.ImportManager=M.ImportManager;exports.AnyElementConfigSchema=p.AnyElementConfigSchema;exports.AnyTransformDataSchema=p.AnyTransformDataSchema;exports.CanvasStateV1Schema=p.CanvasStateV1Schema;exports.SerializedArtboardSchema=p.SerializedArtboardSchema;exports.renderImageElement=k;exports.renderShapeElement=m;
|
|
2
2
|
//# sourceMappingURL=internals.js.map
|
package/dist/internals.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as C, A as P, C as w, o as I, b as R, I as A, R as W, S as E, m as O, W as H, q as F, s as L, t as z, u as B, v as K, w as m, x as X, y as J, z as _, B as q } from "./ElementFactory-
|
|
1
|
+
import { n as C, A as P, C as w, o as I, b as R, I as A, R as W, S as E, m as O, W as H, q as F, s as L, t as z, u as B, v as K, w as m, x as X, y as J, z as _, B as q } from "./ElementFactory-Ckv6sSev.js";
|
|
2
2
|
import { ab as l } from "./HybridHistoryManager-BV6XV0nD.js";
|
|
3
3
|
import { ac as V, ad as Y, ae as j, af as G, aa as U, ag as Q, ah as Z, ai as $, aj as x, ak as D, al as oo, am as ro, an as so, ao, ap as io, aq as eo, ar as no, as as to, at as ho, c as co, au as fo, av as lo, aw as po, ax as go, ay as uo, az as ko, aA as To, aB as yo, aC as Mo, aD as bo, aE as So, aF as vo, aG as Co, aH as Po, aI as wo, aJ as Io, aK as Ro } from "./HybridHistoryManager-BV6XV0nD.js";
|
|
4
|
-
import { I as Wo } from "./ImportManager-
|
|
5
|
-
import { A as Oo, a as Ho, C as Fo, S as Lo } from "./CanvasStateV1-
|
|
4
|
+
import { I as Wo } from "./ImportManager-64OYjELO.js";
|
|
5
|
+
import { A as Oo, a as Ho, C as Fo, S as Lo } from "./CanvasStateV1-CD3Q94F4.js";
|
|
6
6
|
function M(o, r, c) {
|
|
7
7
|
var e, n;
|
|
8
8
|
o.save(), o.translate(r.x, r.y), r.rotation && o.rotate(-r.rotation * Math.PI / 180);
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* stamp keep working.
|
|
21
21
|
*/
|
|
22
22
|
export declare const CANVAS_STATE_SCHEMA_VERSION = 1;
|
|
23
|
-
export
|
|
23
|
+
export type ServerRenderRequest = {
|
|
24
24
|
/** Wire-schema version — see {@link CANVAS_STATE_SCHEMA_VERSION}. */
|
|
25
25
|
schemaVersion: number;
|
|
26
26
|
artboards: Array<{
|
|
@@ -36,7 +36,7 @@ export interface ServerRenderRequest {
|
|
|
36
36
|
distressTexture?: any;
|
|
37
37
|
imageMask?: any;
|
|
38
38
|
}>;
|
|
39
|
-
}
|
|
39
|
+
};
|
|
40
40
|
/**
|
|
41
41
|
* Convert onChange canvas state to the server render format.
|
|
42
42
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@snowcone-app/canvas",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "Self-contained canvas editor component for e-commerce product customization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
"build:lib": "pnpm run generate:icons && pnpm run bundle:worker && vite build --config vite.lib.config.ts",
|
|
169
169
|
"dev:lib": "pnpm run bundle:worker && vite build --config vite.lib.config.ts --watch",
|
|
170
170
|
"preview": "vite preview",
|
|
171
|
-
"typecheck": "
|
|
171
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
172
172
|
"generate": "node scripts/generate.js",
|
|
173
173
|
"test": "pnpm run test:unit && pnpm run test:component",
|
|
174
174
|
"test:unit": "vitest run",
|