diff --git a/AGENTS.md b/AGENTS.md index 2555e7ac..5c4e26b0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -91,7 +91,8 @@ Rules inside a canvas folder: - `gen.py` is the only source of truth. The `NN-*.html` boards are its output. Edit the generator and re-run, never the HTML. -- Commit `layout.json`, `icon.png` and `assets/`. `gen.py` inlines the +- Commit `layout.json`, `icon.png`, `thumbnail.png` (drawn by `sp thumbnail`) + and `assets/`. `gen.py` inlines the images in `assets/` as `data:` URIs. - Commit `PRD.md`, the product the folder prototypes, to the `sp-define-product` skill's template. Its Screens table lists the folder's boards. diff --git a/canvas/community.html b/canvas/community.html new file mode 100644 index 00000000..64ff25cf --- /dev/null +++ b/canvas/community.html @@ -0,0 +1,18 @@ + + +
+ + + + +.h2d file.
- Either way the boards arrive as editable layers, not as images.
+ Paste it into Figma. Pick Copy to clipboard and
+ press ⌘V in a Figma file; that route needs no plugin at all. The
+ plugin is for the other two routes — sending the capture straight
+ over, or opening a saved .h2d file. Either way the
+ boards arrive as editable layers, not as images.
shape.type === CANVAS_LINK_SHAPE_TYPE && shape.isLocked,
+ filter: (shape) =>
+ shape.type === CANVAS_LINK_SHAPE_TYPE && shape.isLocked,
}) as CanvasLinkShape | undefined;
let pressed: CanvasLinkShape | undefined;
@@ -270,7 +271,10 @@ export class CanvasLinkShapeUtil extends BaseBoxShapeUtilTry another name, or clone it yourself and share it.
+ + > + ) : ( + <> ++ {col + ? `Nothing in “${col.title}” for ${familyName(family)}.` + : "Be the first to clone one and share it."} +
+ + Share the first one