@edv4h/usketch-plugin-portal 0.2.5 → 0.3.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/plugin.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { UsketchPlugin } from "@edv4h/usketch-shared";
1
+ import { type UsketchPlugin } from "@edv4h/usketch-shared";
2
2
  import type * as Y from "yjs";
3
3
  import { type PortalChrome } from "./portal-layer.js";
4
4
  export interface PortalPluginOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA8B,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,mBAAmB;IACnC,iEAAiE;IACjE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;iCAE6B;IAC7B,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;CACvC;AAID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,aAAa,CAyE9E"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,aAAa,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,mBAAmB;IACnC,iEAAiE;IACjE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;iCAE6B;IAC7B,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,CAAC;CACvC;AAID;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,aAAa,CA0I9E"}
package/dist/plugin.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { generateId, } from "@edv4h/usketch-shared";
2
3
  import { PortalLayer } from "./portal-layer.js";
3
4
  import { createPortalStore, defaultPortalBox } from "./portal-store.js";
4
5
  const LAYER_ID = "portal";
@@ -19,13 +20,6 @@ export function createPortalPlugin(options) {
19
20
  userId: options.userId ?? "local",
20
21
  boardId: options.boardId,
21
22
  });
22
- ctx.layers.register({
23
- id: LAYER_ID,
24
- order: 150,
25
- fixed: true,
26
- render: () => (_jsx(PortalLayer, { portalStore: store, store: ctx.store, shapes: ctx.shapes, Chrome: options.components?.Chrome })),
27
- });
28
- ctx.events.emit("layers:changed", {});
29
23
  const boundsOf = (shapeId) => {
30
24
  const shape = ctx.store.getShape(shapeId);
31
25
  if (!shape)
@@ -35,6 +29,35 @@ export function createPortalPlugin(options) {
35
29
  ? def.getBounds(shape)
36
30
  : { x: shape.x, y: shape.y, width: shape.width, height: shape.height };
37
31
  };
32
+ // Restore a held portal's shape back to the canvas (undoable). Held
33
+ // portals own the only copy of the shape, so "closing" one restores it
34
+ // instead of discarding it.
35
+ const restoreToCanvas = (entry, shared) => {
36
+ const snapshot = entry.shape;
37
+ // Re-add the held shape unless there's no snapshot, or a shape with the
38
+ // same id is already on the canvas (conflict) — in which case we only
39
+ // detach the portal. Either way go through a Command so it's undoable.
40
+ const readd = !!snapshot && !ctx.store.getShape(snapshot.id);
41
+ ctx.commands.execute({
42
+ execute() {
43
+ if (readd && snapshot)
44
+ ctx.store.addShape(snapshot);
45
+ store.remove(entry.id);
46
+ },
47
+ undo() {
48
+ store.insert(entry, shared);
49
+ if (readd && snapshot)
50
+ ctx.store.deleteShape(snapshot.id);
51
+ },
52
+ });
53
+ };
54
+ ctx.layers.register({
55
+ id: LAYER_ID,
56
+ order: 150,
57
+ fixed: true,
58
+ render: () => (_jsx(PortalLayer, { portalStore: store, store: ctx.store, shapes: ctx.shapes, Chrome: options.components?.Chrome, onRestore: restoreToCanvas })),
59
+ });
60
+ ctx.events.emit("layers:changed", {});
38
61
  const offActions = [
39
62
  ctx.actions.register({
40
63
  id: "portal:pin-selected",
@@ -56,13 +79,59 @@ export function createPortalPlugin(options) {
56
79
  }
57
80
  },
58
81
  }),
82
+ // Stash: remove the selected shapes from the canvas and hold them in
83
+ // the portal (snapshot). Restore puts them back. Mirrors the card hand.
84
+ ctx.actions.register({
85
+ id: "portal:stash-selected",
86
+ label: "📥 選択を取り込む",
87
+ group: "Portal",
88
+ order: 0.5,
89
+ isEnabled: () => ctx.store.getSelection().size >= 1,
90
+ run: () => {
91
+ let i = 0;
92
+ for (const id of [...ctx.store.getSelection()]) {
93
+ const shape = ctx.store.getShape(id);
94
+ const bounds = boundsOf(id);
95
+ if (!shape || !bounds)
96
+ continue;
97
+ const snapshot = { ...shape };
98
+ const entry = {
99
+ id: generateId(),
100
+ shapeId: shape.id,
101
+ shape: snapshot,
102
+ ...defaultPortalBox(bounds, i),
103
+ };
104
+ const cmd = {
105
+ execute() {
106
+ ctx.store.deleteShape(id);
107
+ store.insert(entry, false);
108
+ },
109
+ undo() {
110
+ store.remove(entry.id);
111
+ ctx.store.addShape(snapshot);
112
+ },
113
+ };
114
+ ctx.commands.execute(cmd);
115
+ i++;
116
+ }
117
+ },
118
+ }),
59
119
  ctx.actions.register({
60
120
  id: "portal:clear-mine",
61
121
  label: "✕ 自分のポータルを全解除",
62
122
  group: "Portal",
63
123
  order: 1,
64
124
  isEnabled: () => store.getAll().some((it) => !it.shared),
65
- run: () => store.clearPrivate(),
125
+ run: () => {
126
+ // Held portals hold the only copy → restore to canvas instead of
127
+ // discarding. Pin portals just detach.
128
+ for (const it of store.getAll().filter((x) => !x.shared)) {
129
+ if (it.entry.shape)
130
+ restoreToCanvas(it.entry, false);
131
+ else
132
+ store.remove(it.entry.id);
133
+ }
134
+ },
66
135
  }),
67
136
  ];
68
137
  return () => {
@@ -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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"}
@@ -3,9 +3,20 @@ import { type PortalEntry, type PortalStore } from "./portal-store.js";
3
3
  export interface PortalChromeProps {
4
4
  entry: PortalEntry;
5
5
  shared: boolean;
6
+ /**
7
+ * true when the portal **holds** the shape (removed from canvas); see {@link restore}.
8
+ * Optional for backward compatibility with existing custom chromes (defaults to false).
9
+ */
10
+ held?: boolean;
6
11
  title: string;
7
12
  toggleShared: () => void;
8
13
  remove: () => void;
14
+ /**
15
+ * Restore a held portal's shape to the canvas (present only when `held`).
16
+ * Held portals should offer this instead of a destructive close, since the
17
+ * portal holds the only copy of the shape.
18
+ */
19
+ restore?: () => void;
9
20
  /** Spread onto the drag handle (header). */
10
21
  dragHandleProps: {
11
22
  onPointerDown: (e: React.PointerEvent) => void;
@@ -20,10 +31,12 @@ export interface PortalChromeProps {
20
31
  export type PortalChrome = (props: PortalChromeProps) => React.ReactElement;
21
32
  /** Default portal panel chrome (overridable via the plugin's `components.Chrome`). */
22
33
  export declare function DefaultPortalChrome(p: PortalChromeProps): import("react").JSX.Element;
23
- export declare function PortalLayer({ portalStore, store, shapes, Chrome, }: {
34
+ export declare function PortalLayer({ portalStore, store, shapes, Chrome, onRestore, }: {
24
35
  portalStore: PortalStore;
25
36
  store: BoardStore;
26
37
  shapes: ShapeRegistry;
27
38
  Chrome?: PortalChrome;
39
+ /** Restore a held portal's shape to the canvas (undoable; provided by the plugin). */
40
+ onRestore?: (entry: PortalEntry, shared: boolean) => void;
28
41
  }): import("react").JSX.Element;
29
42
  //# sourceMappingURL=portal-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal-layer.d.ts","sourceRoot":"","sources":["../src/portal-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA0B,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE/F,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA2ExF,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,4CAA4C;IAC5C,eAAe,EAAE;QAAE,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAA;KAAE,CAAC;IACpE,mCAAmC;IACnC,iBAAiB,EAAE;QAAE,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAA;KAAE,CAAC;IACtE,mEAAmE;IACnE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AACD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,YAAY,CAAC;AAW5E,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,iBAAiB,+BAuFvD;AAkED,wBAAgB,WAAW,CAAC,EAC3B,WAAW,EACX,KAAK,EACL,MAAM,EACN,MAA4B,GAC5B,EAAE;IACF,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACtB,+BAkCA"}
1
+ {"version":3,"file":"portal-layer.d.ts","sourceRoot":"","sources":["../src/portal-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA0B,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE/F,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA2ExF,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4CAA4C;IAC5C,eAAe,EAAE;QAAE,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAA;KAAE,CAAC;IACpE,mCAAmC;IACnC,iBAAiB,EAAE;QAAE,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAA;KAAE,CAAC;IACtE,mEAAmE;IACnE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AACD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,KAAK,CAAC,YAAY,CAAC;AAW5E,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,iBAAiB,+BAmHvD;AA+ED,wBAAgB,WAAW,CAAC,EAC3B,WAAW,EACX,KAAK,EACL,MAAM,EACN,MAA4B,EAC5B,SAAS,GACT,EAAE;IACF,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,sFAAsF;IACtF,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1D,+BAuCA"}
@@ -87,7 +87,19 @@ export function DefaultPortalChrome(p) {
87
87
  whiteSpace: "nowrap",
88
88
  overflow: "hidden",
89
89
  textOverflow: "ellipsis",
90
- }, children: p.title }), _jsx("button", { type: "button", title: p.shared ? "全員に共有中(クリックで個人に戻す)" : "個人(クリックで全員に共有)", onPointerDown: (e) => e.stopPropagation(), onClick: p.toggleShared, style: headerBtn, children: p.shared ? "👥" : "🔒" }), _jsx("button", { type: "button", title: "\u9589\u3058\u308B", onPointerDown: (e) => e.stopPropagation(), onClick: p.remove, style: { ...headerBtn, color: "#9ca3af" }, children: "\u2715" })] }), _jsxs("div", { style: { flex: 1, minHeight: 0, position: "relative" }, children: [p.children, _jsx("div", { onPointerDown: p.resizeHandleProps.onPointerDown, style: {
90
+ }, children: p.title }), _jsx("button", { type: "button", title: p.held && p.shared
91
+ ? "共有スタッシュ: ⤴ でキャンバスに戻してから解除してください"
92
+ : p.shared
93
+ ? "全員に共有中(クリックで個人に戻す)"
94
+ : "個人(クリックで全員に共有)", disabled: p.held && p.shared, onPointerDown: (e) => e.stopPropagation(), onClick: p.toggleShared, style: {
95
+ ...headerBtn,
96
+ cursor: p.held && p.shared ? "default" : "pointer",
97
+ opacity: p.held && p.shared ? 0.5 : 1,
98
+ }, children: p.shared ? "👥" : "🔒" }), p.held ? (_jsx("button", { type: "button", title: "\u30AD\u30E3\u30F3\u30D0\u30B9\u306B\u623B\u3059", disabled: !p.restore, onPointerDown: (e) => e.stopPropagation(), onClick: p.restore, style: {
99
+ ...headerBtn,
100
+ color: p.restore ? "#2563eb" : "#9ca3af",
101
+ cursor: p.restore ? "pointer" : "default",
102
+ }, children: "\u2934" })) : (_jsx("button", { type: "button", title: "\u9589\u3058\u308B", onPointerDown: (e) => e.stopPropagation(), onClick: p.remove, style: { ...headerBtn, color: "#9ca3af" }, children: "\u2715" }))] }), _jsxs("div", { style: { flex: 1, minHeight: 0, position: "relative" }, children: [p.children, _jsx("div", { onPointerDown: p.resizeHandleProps.onPointerDown, style: {
91
103
  position: "absolute",
92
104
  right: 0,
93
105
  bottom: 0,
@@ -97,7 +109,7 @@ export function DefaultPortalChrome(p) {
97
109
  background: "linear-gradient(135deg, transparent 50%, rgba(0,0,0,0.25) 50%, rgba(0,0,0,0.25) 60%, transparent 60%)",
98
110
  } })] })] }));
99
111
  }
100
- function PortalPanel({ entry, shared, shape, def, onUpdate, onRemove, onToggleShared, Chrome, }) {
112
+ function PortalPanel({ entry, shared, held, shape, def, onUpdate, onRemove, onToggleShared, onRestore, Chrome, }) {
101
113
  const bodyH = Math.max(0, entry.h - PORTAL_HEADER_H);
102
114
  const startDrag = (e) => {
103
115
  e.stopPropagation();
@@ -125,25 +137,37 @@ function PortalPanel({ entry, shared, shape, def, onUpdate, onRemove, onToggleSh
125
137
  onUpdate(entry.id, { w, h });
126
138
  });
127
139
  };
128
- return (_jsx(Chrome, { entry: entry, shared: shared, title: shape.label || shape.type, toggleShared: () => onToggleShared(entry.id, !shared), remove: () => onRemove(entry.id), dragHandleProps: { onPointerDown: startDrag }, resizeHandleProps: { onPointerDown: startResize }, children: _jsx(ShapeContent, { def: def, shape: shape, bodyW: entry.w, bodyH: bodyH }) }));
140
+ return (_jsx(Chrome, { entry: entry, shared: shared, held: held, title: shape.label || shape.type,
141
+ // Un-sharing a *held* portal would strand the shape: it stays off the
142
+ // (shared) board while its only snapshot returns to local storage, so
143
+ // other clients can no longer restore it. Lock the toggle in that case —
144
+ // un-share by ⤴ restoring first. (No-op here keeps custom chromes safe.)
145
+ toggleShared: held && shared ? () => { } : () => onToggleShared(entry.id, !shared),
146
+ // For held portals `remove` must never discard the shape (the portal holds
147
+ // the only copy) — route it to restore. Safe even for custom chromes that
148
+ // wire a destructive close; a no-op when no restore handler is available.
149
+ remove: held ? () => onRestore?.(entry, shared) : () => onRemove(entry.id), restore: held && onRestore ? () => onRestore(entry, shared) : undefined, dragHandleProps: { onPointerDown: startDrag }, resizeHandleProps: { onPointerDown: startResize }, children: _jsx(ShapeContent, { def: def, shape: shape, bodyW: entry.w, bodyH: bodyH }) }));
129
150
  }
130
- export function PortalLayer({ portalStore, store, shapes, Chrome = DefaultPortalChrome, }) {
151
+ export function PortalLayer({ portalStore, store, shapes, Chrome = DefaultPortalChrome, onRestore, }) {
131
152
  const items = useSyncExternalStore(portalStore.subscribe, portalStore.getAll);
132
153
  // Re-render on any store mutation so pinned shapes reflect edits.
133
154
  const [, tick] = useReducer((n) => n + 1, 0);
134
155
  useEffect(() => store.subscribe(tick), [store]);
135
- // Drop portals whose target shape no longer exists.
156
+ // Drop **pin** portals whose target shape no longer exists. Held portals own
157
+ // their shape snapshot (it isn't on the board), so they must never be dropped
158
+ // here — that would lose the only copy.
136
159
  useEffect(() => {
137
160
  for (const { entry } of items) {
138
- if (!store.getShape(entry.shapeId))
161
+ if (!entry.shape && !store.getShape(entry.shapeId))
139
162
  portalStore.remove(entry.id);
140
163
  }
141
164
  }, [items, store, portalStore]);
142
165
  return (_jsx(_Fragment, { children: items.map(({ entry, shared }) => {
143
- const shape = store.getShape(entry.shapeId);
166
+ const held = !!entry.shape;
167
+ const shape = entry.shape ?? store.getShape(entry.shapeId);
144
168
  if (!shape)
145
169
  return null;
146
- return (_jsx(PortalPanel, { entry: entry, shared: shared, shape: shape, def: shapes.get(shape.type), onUpdate: portalStore.update, onRemove: portalStore.remove, onToggleShared: portalStore.setShared, Chrome: Chrome }, entry.id));
170
+ return (_jsx(PortalPanel, { entry: entry, shared: shared, held: held, shape: shape, def: shapes.get(shape.type), onUpdate: portalStore.update, onRemove: portalStore.remove, onToggleShared: portalStore.setShared, onRestore: onRestore, Chrome: Chrome }, entry.id));
147
171
  }) }));
148
172
  }
149
173
  //# sourceMappingURL=portal-layer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal-layer.js","sourceRoot":"","sources":["../src/portal-layer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portal-layer.js","sourceRoot":"","sources":["../src/portal-layer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,eAAe,EAAsC,MAAM,mBAAmB,CAAC;AAExF,oFAAoF;AACpF,mFAAmF;AACnF,0EAA0E;AAC1E,MAAM,UAAU,GAAG;IAClB,aAAa,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;IAC7D,OAAO,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;IACrD,aAAa,EAAE,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE;CAClD,CAAC;AAEX,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvF;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAAkC;IACvD,MAAM,GAAG,GAAG,GAAG,EAAE;QAChB,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC;IACF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CAAC,EACrB,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAK,GAML;IACA,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,CAAC,GAAgB,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,OAAO,CACN,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YACpF,cACC,KAAK,EAAE;oBACN,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,SAAS,EAAE,SAAS,CAAC,GAAG;oBACxB,eAAe,EAAE,UAAU;iBAC3B,YAEA,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GACb,GACD,CACN,CAAC;IACH,CAAC;IACD,wDAAwD;IACxD,OAAO,CACN,cACC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,EACb,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,EAC/C,mBAAmB,EAAC,eAAe,gBACxB,cAAc,YAExB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GACb,CACN,CAAC;AACH,CAAC;AA4BD,MAAM,SAAS,GAAwB;IACtC,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;CACV,CAAC;AAEF,sFAAsF;AACtF,MAAM,UAAU,mBAAmB,CAAC,CAAoB;IACvD,OAAO,CACN,kBACK,UAAU,EACd,KAAK,EAAE;YACN,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACf,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACd,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAChB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,mBAAmB;YAC3B,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,6BAA6B;YACxC,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,MAAM;YACrB,UAAU,EAAE,uBAAuB;SACnC,aAED,eACC,aAAa,EAAE,CAAC,CAAC,eAAe,CAAC,aAAa,EAC9C,KAAK,EAAE;oBACN,MAAM,EAAE,eAAe;oBACvB,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,SAAS;oBACrB,YAAY,EAAE,mBAAmB;oBACjC,MAAM,EAAE,MAAM;oBACd,UAAU,EAAE,MAAM;iBAClB,aAED,eACC,KAAK,EAAE;4BACN,IAAI,EAAE,CAAC;4BACP,QAAQ,EAAE,EAAE;4BACZ,UAAU,EAAE,GAAG;4BACf,KAAK,EAAE,SAAS;4BAChB,UAAU,EAAE,QAAQ;4BACpB,QAAQ,EAAE,QAAQ;4BAClB,YAAY,EAAE,UAAU;yBACxB,YAEA,CAAC,CAAC,KAAK,GACF,EACP,iBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EACJ,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM;4BACjB,CAAC,CAAC,iCAAiC;4BACnC,CAAC,CAAC,CAAC,CAAC,MAAM;gCACT,CAAC,CAAC,oBAAoB;gCACtB,CAAC,CAAC,gBAAgB,EAErB,QAAQ,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,EAC5B,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACzC,OAAO,EAAE,CAAC,CAAC,YAAY,EACvB,KAAK,EAAE;4BACN,GAAG,SAAS;4BACZ,MAAM,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;4BAClD,OAAO,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;yBACrC,YAEA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GACf,EACR,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACT,iBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,kDAAU,EAChB,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,EACpB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,KAAK,EAAE;4BACN,GAAG,SAAS;4BACZ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;4BACxC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;yBACzC,uBAGO,CACT,CAAC,CAAC,CAAC,CACH,iBACC,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,oBAAK,EACX,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EACjB,KAAK,EAAE,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,uBAGjC,CACT,IACI,EACN,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,aACzD,CAAC,CAAC,QAAQ,EAEX,cACC,aAAa,EAAE,CAAC,CAAC,iBAAiB,CAAC,aAAa,EAChD,KAAK,EAAE;4BACN,QAAQ,EAAE,UAAU;4BACpB,KAAK,EAAE,CAAC;4BACR,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;4BACV,MAAM,EAAE,aAAa;4BACrB,UAAU,EACT,uGAAuG;yBACxG,GACA,IACG,IACD,CACN,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EACpB,KAAK,EACL,MAAM,EACN,IAAI,EACJ,KAAK,EACL,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,SAAS,EACT,MAAM,GAYN;IACA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,CAAC,CAAqB,EAAE,EAAE;QAC3C,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAqB,EAAE,EAAE;QAC7C,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;QACrB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACN,KAAC,MAAM,IACN,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,KAAK,EAAG,KAA4B,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI;QACxD,sEAAsE;QACtE,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,YAAY,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC;QACjF,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAC1E,OAAO,EAAE,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EACvE,eAAe,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAC7C,iBAAiB,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,YAEjD,KAAC,YAAY,IAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAI,GAC9D,CACT,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC3B,WAAW,EACX,KAAK,EACL,MAAM,EACN,MAAM,GAAG,mBAAmB,EAC5B,SAAS,GAQT;IACA,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9E,kEAAkE;IAClE,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhD,6EAA6E;IAC7E,8EAA8E;IAC9E,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;QACd,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;gBAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;IACF,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEhC,OAAO,CACN,4BACE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,OAAO,CACN,KAAC,WAAW,IAEX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAC3B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAC5B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAC5B,cAAc,EAAE,WAAW,CAAC,SAAS,EACrC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,IAVT,KAAK,CAAC,EAAE,CAWZ,CACF,CAAC;QACH,CAAC,CAAC,GACA,CACH,CAAC;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type ShapeData } from "@edv4h/usketch-shared";
1
2
  import type * as Y from "yjs";
2
3
  /** A pinned widget: which shape, and where/how big on screen (screen px). */
3
4
  export interface PortalEntry {
@@ -7,6 +8,13 @@ export interface PortalEntry {
7
8
  y: number;
8
9
  w: number;
9
10
  h: number;
11
+ /**
12
+ * When present, the portal **holds** the shape: it was removed from the
13
+ * canvas and this snapshot is the only copy (rendered from here, not from the
14
+ * board store). Restoring the portal re-adds this shape to the board. When
15
+ * absent, the portal merely **pins** (mirrors) an on-canvas shape by `shapeId`.
16
+ */
17
+ shape?: ShapeData;
10
18
  }
11
19
  /** A portal plus whether it lives in the shared (everyone) or private (me) backend. */
12
20
  export interface PortalItem {
@@ -24,6 +32,11 @@ export interface PortalStore {
24
32
  getAll(): PortalItem[];
25
33
  /** Pin a shape (private by default). Returns the created entry. */
26
34
  add(shapeId: string, box: PortalBox, shared?: boolean): PortalEntry;
35
+ /**
36
+ * Insert a pre-built entry (private by default). Used for held portals whose
37
+ * `id` must stay stable across undo/redo, and by {@link PortalStore.add}.
38
+ */
39
+ insert(entry: PortalEntry, shared?: boolean): void;
27
40
  /** Move/resize a portal (screen px). */
28
41
  update(id: string, patch: Partial<PortalBox>): void;
29
42
  remove(id: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"portal-store.d.ts","sourceRoot":"","sources":["../src/portal-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,MAAM,WAAW,WAAW;IAC3B,8EAA8E;IAC9E,MAAM,IAAI,UAAU,EAAE,CAAC;IACvB,mEAAmE;IACnE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACpE,wCAAwC;IACxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,iDAAiD;IACjD,YAAY,IAAI,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAgB3D,MAAM,WAAW,wBAAwB;IACxC,iEAAiE;IACjE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC;AAED,+EAA+E;AAC/E,eAAO,MAAM,eAAe,KAAK,CAAC;AAMlC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzC,KAAK,EAAE,MAAM,EACb,aAAa,SAA2D,GACtE,SAAS,CASX;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,CA4HhF"}
1
+ {"version":3,"file":"portal-store.d.ts","sourceRoot":"","sources":["../src/portal-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAE9B,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV;;;;;OAKG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED,MAAM,WAAW,WAAW;IAC3B,8EAA8E;IAC9E,MAAM,IAAI,UAAU,EAAE,CAAC;IACvB,mEAAmE;IACnE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IACpE;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnD,wCAAwC;IACxC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,iDAAiD;IACjD,YAAY,IAAI,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;AAgB3D,MAAM,WAAW,wBAAwB;IACxC,iEAAiE;IACjE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC;AAED,+EAA+E;AAC/E,eAAO,MAAM,eAAe,KAAK,CAAC;AAMlC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzC,KAAK,EAAE,MAAM,EACb,aAAa,SAA2D,GACtE,SAAS,CASX;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW,CAmIhF"}
@@ -83,18 +83,23 @@ export function createPortalStore(options) {
83
83
  const observer = () => refresh();
84
84
  sharedMap.observe(observer);
85
85
  const findPrivate = (id) => priv.find((e) => e.id === id);
86
+ function insertEntry(entry, shared) {
87
+ if (shared) {
88
+ sharedMap.set(entry.id, entry); // observe → refresh (Map.set already upserts)
89
+ }
90
+ else {
91
+ // Upsert by id so re-inserting the same entry (undo/redo) can't duplicate it.
92
+ priv = [...priv.filter((e) => e.id !== entry.id), entry];
93
+ persistPrivate();
94
+ refresh();
95
+ }
96
+ }
86
97
  return {
87
98
  getAll: () => snapshot,
99
+ insert: (entry, shared = false) => insertEntry(entry, shared),
88
100
  add(shapeId, box, shared = false) {
89
101
  const entry = { id: generateId(), shapeId, ...box };
90
- if (shared) {
91
- sharedMap.set(entry.id, entry); // observe → refresh
92
- }
93
- else {
94
- priv = [...priv, entry];
95
- persistPrivate();
96
- refresh();
97
- }
102
+ insertEntry(entry, shared);
98
103
  return entry;
99
104
  },
100
105
  update(id, patch) {
@@ -1 +1 @@
1
- {"version":3,"file":"portal-store.js","sourceRoot":"","sources":["../src/portal-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portal-store.js","sourceRoot":"","sources":["../src/portal-store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edv4h/usketch-plugin-portal",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",