@edv4h/usketch-plugin-shape-frame 1.0.0 → 3.0.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/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export { framePlugin } from "./plugin.js";
1
+ export { createFramePlugin } from "./plugin.js";
2
+ export type { FrameShapeData } from "./types.js";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { framePlugin } from "./plugin.js";
1
+ export { createFramePlugin } from "./plugin.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { UsketchPlugin } from "@edv4h/usketch-shared";
2
- export declare const framePlugin: UsketchPlugin;
2
+ export declare function createFramePlugin(): UsketchPlugin;
3
3
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKX,aAAa,EACb,MAAM,uBAAuB,CAAC;AA+D/B,eAAO,MAAM,WAAW,EAAE,aAoJzB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKX,aAAa,EACb,MAAM,uBAAuB,CAAC;AAiE/B,wBAAgB,iBAAiB,IAAI,aAAa,CAwJjD"}
package/dist/plugin.js CHANGED
@@ -7,7 +7,8 @@ import { createDefaultFrame, getBoundsFrame, hitTestFrame, renderFrame, resizeFr
7
7
  * Frames are containers, so they mostly need to show where they are.
8
8
  */
9
9
  function SimplifiedFrame({ shape }) {
10
- const label = shape.name || "Frame";
10
+ const data = shape;
11
+ const label = data.name || data.frameTitle || "Frame";
11
12
  const rotation = typeof shape.rotation === "number" ? shape.rotation : 0;
12
13
  return (_jsx("div", { style: {
13
14
  position: "absolute",
@@ -34,145 +35,147 @@ function SimplifiedFrame({ shape }) {
34
35
  function FrameIcon() {
35
36
  return (_jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", children: [_jsx("line", { x1: "7", y1: "2", x2: "7", y2: "18", strokeWidth: "1.5", strokeLinecap: "round" }), _jsx("line", { x1: "13", y1: "2", x2: "13", y2: "18", strokeWidth: "1.5", strokeLinecap: "round" }), _jsx("line", { x1: "2", y1: "7", x2: "18", y2: "7", strokeWidth: "1.5", strokeLinecap: "round" }), _jsx("line", { x1: "2", y1: "13", x2: "18", y2: "13", strokeWidth: "1.5", strokeLinecap: "round" })] }));
36
37
  }
37
- export const framePlugin = {
38
- id: "usketch-plugin-shape-frame",
39
- name: "フレーム",
40
- setup(ctx) {
41
- // Register the "frame" shape type
42
- ctx.shapes.register("frame", {
43
- render: renderFrame,
44
- getBounds: getBoundsFrame,
45
- hitTest: hitTestFrame,
46
- resize: resizeFrame,
47
- createDefault: createDefaultFrame,
48
- renderTarget: "html",
49
- minSize: { width: 50, height: 50 },
50
- simplifiedComponent: SimplifiedFrame,
51
- });
52
- // Drawing tool state
53
- let drawState = null;
54
- function onPointerDown(toolCtx, event) {
55
- const id = generateId();
56
- drawState = { startX: event.worldPoint.x, startY: event.worldPoint.y, shapeId: id };
57
- const shape = createDefaultFrame({ id, x: event.worldPoint.x, y: event.worldPoint.y });
58
- shape.width = 0;
59
- shape.height = 0;
60
- shape.style = {
61
- ...shape.style,
62
- stroke: toolCtx.store.getStyleSettings().stroke,
63
- };
64
- toolCtx.store.addShape(shape);
65
- }
66
- function onPointerMove(toolCtx, event) {
67
- if (!drawState)
68
- return;
69
- const x = Math.min(drawState.startX, event.worldPoint.x);
70
- const y = Math.min(drawState.startY, event.worldPoint.y);
71
- const width = Math.abs(event.worldPoint.x - drawState.startX);
72
- const height = Math.abs(event.worldPoint.y - drawState.startY);
73
- toolCtx.store.updateShape(drawState.shapeId, { x, y, width, height });
74
- }
75
- function onPointerUp(toolCtx) {
76
- if (!drawState)
77
- return;
78
- const shape = toolCtx.store.getShape(drawState.shapeId);
79
- if (shape && shape.width > 10 && shape.height > 10) {
80
- toolCtx.store.deleteShape(drawState.shapeId);
81
- toolCtx.commands.execute(createAddShapeCommand(toolCtx.store, shape));
38
+ export function createFramePlugin() {
39
+ return {
40
+ id: "usketch-plugin-shape-frame",
41
+ name: "フレーム",
42
+ setup(ctx) {
43
+ // Register the "frame" shape type
44
+ ctx.shapes.register("frame", {
45
+ render: renderFrame,
46
+ getBounds: getBoundsFrame,
47
+ hitTest: hitTestFrame,
48
+ resize: resizeFrame,
49
+ createDefault: createDefaultFrame,
50
+ renderTarget: "html",
51
+ minSize: { width: 50, height: 50 },
52
+ simplifiedComponent: SimplifiedFrame,
53
+ });
54
+ // Drawing tool state
55
+ let drawState = null;
56
+ function onPointerDown(toolCtx, event) {
57
+ const id = generateId();
58
+ drawState = { startX: event.worldPoint.x, startY: event.worldPoint.y, shapeId: id };
59
+ const shape = createDefaultFrame({ id, x: event.worldPoint.x, y: event.worldPoint.y });
60
+ shape.width = 0;
61
+ shape.height = 0;
62
+ shape.style = {
63
+ ...shape.style,
64
+ stroke: toolCtx.store.getStyleSettings().stroke,
65
+ };
66
+ toolCtx.store.addShape(shape);
82
67
  }
83
- else {
84
- toolCtx.store.deleteShape(drawState.shapeId);
68
+ function onPointerMove(toolCtx, event) {
69
+ if (!drawState)
70
+ return;
71
+ const x = Math.min(drawState.startX, event.worldPoint.x);
72
+ const y = Math.min(drawState.startY, event.worldPoint.y);
73
+ const width = Math.abs(event.worldPoint.x - drawState.startX);
74
+ const height = Math.abs(event.worldPoint.y - drawState.startY);
75
+ toolCtx.store.updateShape(drawState.shapeId, { x, y, width, height });
85
76
  }
86
- drawState = null;
87
- toolCtx.store.setActiveToolId("select");
88
- }
89
- ctx.tools.register("frame-draw", {
90
- icon: FrameIcon,
91
- cursor: "crosshair",
92
- shortcut: "f",
93
- order: 11,
94
- onPointerDown,
95
- onPointerMove,
96
- onPointerUp,
97
- onDeactivate() {
98
- if (drawState) {
99
- ctx.store.deleteShape(drawState.shapeId);
100
- drawState = null;
77
+ function onPointerUp(toolCtx) {
78
+ if (!drawState)
79
+ return;
80
+ const shape = toolCtx.store.getShape(drawState.shapeId);
81
+ if (shape && shape.width > 10 && shape.height > 10) {
82
+ toolCtx.store.deleteShape(drawState.shapeId);
83
+ toolCtx.commands.execute(createAddShapeCommand(toolCtx.store, shape));
101
84
  }
102
- },
103
- });
104
- // ── Auto-parenting ──
105
- // On move-end: reparent moved shapes (emitted by select tool after move command commits).
106
- // Use setTimeout to defer reparent until after React finishes the current render cycle,
107
- // since the emit happens inside a queueMicrotask from the select tool.
108
- const unsubMoveEnd = ctx.events.on("shapes:move-end", (data) => {
109
- if (!data?.shapeIds)
110
- return;
111
- setTimeout(() => {
112
- for (const shapeId of data.shapeIds) {
113
- autoReparent(shapeId);
85
+ else {
86
+ toolCtx.store.deleteShape(drawState.shapeId);
114
87
  }
115
- }, 0);
116
- });
117
- // On shape:added (e.g. drawing inside a frame)
118
- const unsubAdded = ctx.store.onMutation((event) => {
119
- if (event.type !== "shape:added")
120
- return;
121
- const payload = event.payload;
122
- if (!payload?.id)
123
- return;
124
- const shape = ctx.store.getShape(payload.id);
125
- if (!shape || shape.type === "frame" || shape.type === "connector")
126
- return;
127
- autoReparent(payload.id);
128
- });
129
- function autoReparent(shapeId) {
130
- const shape = ctx.store.getShape(shapeId);
131
- if (!shape || shape.type === "frame" || shape.type === "connector")
132
- return;
133
- const shapeBounds = { x: shape.x, y: shape.y, width: shape.width, height: shape.height };
134
- // Find the smallest frame that fully contains this shape
135
- let bestFrame = null;
136
- for (const [id, candidate] of ctx.store.getShapes()) {
137
- if (id === shapeId || candidate.type !== "frame")
138
- continue;
139
- const frameBounds = {
140
- x: candidate.x,
141
- y: candidate.y,
142
- width: candidate.width,
143
- height: candidate.height,
144
- };
145
- if (containsAABB(frameBounds, shapeBounds)) {
146
- if (!bestFrame ||
147
- candidate.width * candidate.height < bestFrame.width * bestFrame.height) {
148
- bestFrame = candidate;
88
+ drawState = null;
89
+ toolCtx.store.setActiveToolId("select");
90
+ }
91
+ ctx.tools.register("frame-draw", {
92
+ icon: FrameIcon,
93
+ cursor: "crosshair",
94
+ shortcut: "f",
95
+ order: 11,
96
+ onPointerDown,
97
+ onPointerMove,
98
+ onPointerUp,
99
+ onDeactivate() {
100
+ if (drawState) {
101
+ ctx.store.deleteShape(drawState.shapeId);
102
+ drawState = null;
103
+ }
104
+ },
105
+ });
106
+ // ── Auto-parenting ──
107
+ // On move-end: reparent moved shapes (emitted by select tool after move command commits).
108
+ // Use setTimeout to defer reparent until after React finishes the current render cycle,
109
+ // since the emit happens inside a queueMicrotask from the select tool.
110
+ const unsubMoveEnd = ctx.events.on("shapes:move-end", (data) => {
111
+ if (!data?.shapeIds)
112
+ return;
113
+ setTimeout(() => {
114
+ for (const shapeId of data.shapeIds) {
115
+ autoReparent(shapeId);
116
+ }
117
+ }, 0);
118
+ });
119
+ // On shape:added (e.g. drawing inside a frame)
120
+ const unsubAdded = ctx.store.onMutation((event) => {
121
+ if (event.type !== "shape:added")
122
+ return;
123
+ const payload = event.payload;
124
+ if (!payload?.id)
125
+ return;
126
+ const shape = ctx.store.getShape(payload.id);
127
+ if (!shape || shape.type === "frame" || shape.type === "connector")
128
+ return;
129
+ autoReparent(payload.id);
130
+ });
131
+ function autoReparent(shapeId) {
132
+ const shape = ctx.store.getShape(shapeId);
133
+ if (!shape || shape.type === "frame" || shape.type === "connector")
134
+ return;
135
+ const shapeBounds = { x: shape.x, y: shape.y, width: shape.width, height: shape.height };
136
+ // Find the smallest frame that fully contains this shape
137
+ let bestFrame = null;
138
+ for (const [id, candidate] of ctx.store.getShapes()) {
139
+ if (id === shapeId || candidate.type !== "frame")
140
+ continue;
141
+ const frameBounds = {
142
+ x: candidate.x,
143
+ y: candidate.y,
144
+ width: candidate.width,
145
+ height: candidate.height,
146
+ };
147
+ if (containsAABB(frameBounds, shapeBounds)) {
148
+ if (!bestFrame ||
149
+ candidate.width * candidate.height < bestFrame.width * bestFrame.height) {
150
+ bestFrame = candidate;
151
+ }
149
152
  }
150
153
  }
154
+ const currentParentId = shape.parentId;
155
+ const newParentId = bestFrame?.id;
156
+ if (currentParentId !== newParentId) {
157
+ ctx.commands.execute(createReparentCommand(ctx.store, [shapeId], newParentId ?? undefined));
158
+ }
151
159
  }
152
- const currentParentId = shape.parentId;
153
- const newParentId = bestFrame?.id;
154
- if (currentParentId !== newParentId) {
155
- ctx.commands.execute(createReparentCommand(ctx.store, [shapeId], newParentId ?? undefined));
156
- }
157
- }
158
- // ── Frame move: move all children along with the frame ──
159
- const unsubMove = ctx.store.onMutation((event) => {
160
- if (event.type !== "shape:updated")
161
- return;
162
- const payload = event.payload;
163
- if (!payload?.id)
164
- return;
165
- const shape = ctx.store.getShape(payload.id);
166
- if (!shape || shape.type !== "frame")
167
- return;
168
- // This is handled by the select tool which includes children in snapshots
169
- // when moving a frame. No additional logic needed here.
170
- });
171
- this.teardown = () => {
172
- unsubMoveEnd();
173
- unsubAdded();
174
- unsubMove();
175
- };
176
- },
177
- };
160
+ // ── Frame move: move all children along with the frame ──
161
+ const unsubMove = ctx.store.onMutation((event) => {
162
+ if (event.type !== "shape:updated")
163
+ return;
164
+ const payload = event.payload;
165
+ if (!payload?.id)
166
+ return;
167
+ const shape = ctx.store.getShape(payload.id);
168
+ if (!shape || shape.type !== "frame")
169
+ return;
170
+ // This is handled by the select tool which includes children in snapshots
171
+ // when moving a frame. No additional logic needed here.
172
+ });
173
+ return () => {
174
+ unsubMoveEnd();
175
+ unsubAdded();
176
+ unsubMove();
177
+ };
178
+ },
179
+ };
180
+ }
178
181
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { BoundingBox, Point, ShapeData } from "@edv4h/usketch-shared";
2
- export declare function renderFrame(data: ShapeData): import("react/jsx-runtime").JSX.Element;
2
+ import type { FrameShapeData } from "../types.js";
3
+ export declare function renderFrame(shape: ShapeData): import("react/jsx-runtime").JSX.Element;
3
4
  export declare function getBoundsFrame(data: ShapeData): BoundingBox;
4
5
  export declare function hitTestFrame(data: ShapeData, point: Point): boolean;
5
6
  export declare function resizeFrame(data: ShapeData, handle: string, delta: Point): ShapeData;
@@ -7,5 +8,5 @@ export declare function createDefaultFrame(params: {
7
8
  id: string;
8
9
  x: number;
9
10
  y: number;
10
- }): ShapeData;
11
+ }): FrameShapeData;
11
12
  //# sourceMappingURL=frame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/shapes/frame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAI3E,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,2CA0C1C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAE3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAiBnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAuBpF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAW1F"}
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/shapes/frame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,2CA2C3C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,CAE3D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAiBnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAuBpF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAW/F"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  const TITLE_HEIGHT = 24;
3
- export function renderFrame(data) {
3
+ export function renderFrame(shape) {
4
+ const data = shape;
4
5
  const title = data.frameTitle ?? "Frame";
5
6
  const bgColor = data.style.fill === "transparent" ? "#f8f8f8" : data.style.fill;
6
7
  // Position/size is handled by ShapeWrapper (position: absolute; left/top/width/height).
@@ -1 +1 @@
1
- {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/shapes/frame.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/shapes/frame.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ShapeData } from "@edv4h/usketch-shared";
2
+ /** Frame shape extension: intrinsic data for the `frame` shape. */
3
+ export interface FrameShapeData extends ShapeData {
4
+ frameTitle?: string;
5
+ name?: string;
6
+ }
7
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,mEAAmE;AACnE,MAAM,WAAW,cAAe,SAAQ,SAAS;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edv4h/usketch-plugin-shape-frame",
3
- "version": "1.0.0",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,9 +12,9 @@
12
12
  }
13
13
  },
14
14
  "dependencies": {
15
- "@edv4h/usketch-core": "1.0.0",
16
- "@edv4h/usketch-shared": "1.0.0",
17
- "@edv4h/usketch-store": "1.0.0"
15
+ "@edv4h/usketch-core": "2.0.0",
16
+ "@edv4h/usketch-shared": "3.0.0",
17
+ "@edv4h/usketch-store": "2.0.1"
18
18
  },
19
19
  "peerDependencies": {
20
20
  "react": ">=19"