penpot/plugins/CHANGELOG.md
Dominik Jain ed935e533f Expose variants retrieval via isVariant() type guard on LibraryComponent
Change isVariant() return type from boolean to 'this is LibraryVariantComponent',
enabling TypeScript users to directly access variants, variantProps, and
variantError after a type-narrowing check. Update MCP instructions with
improved variant navigation guidance.

Closes #9185

Co-authored-by: Claude (Anthropic) <noreply@anthropic.com>
2026-05-06 11:28:15 +02:00

15 KiB

1.5.0 (Unreleased)

  • plugins-runtime: Added version field that returns the current version
  • plugin-types: Added a flags subcontexts with the flag naturalChildrenOrdering
  • plugin-types: Fix penpot.openPage() to navigate in same tab by default
  • plugin-types: Change LibraryComponent.isVariant() return type to type guard this is LibraryVariantComponent
  • plugin-types: Added createVariantFromComponents
  • plugin-types: Change return type of combineAsVariants
  • plugin-types: Added textBounds property for text shapes
  • plugin-types: Added flag throwValidationErrors to enable exceptions on validation
  • plugin-types: Fix missing webp export format in Export.type

1.4.2 (2026-01-21)

  • plugin-runtime: fix atob/btoa functions

1.4.0 (2026-01-21)

🚀 Features

  • switch component (7d68450)
  • Add variants to plugins API (04f3c26)
  • format ci job (17b5834)
  • fix problem with ci (4b3c50f)
  • change in workflow (3a69f51)
  • plugin-types: add methods to modify the index for shapes (4ad50af)
  • plugin-types: change content type and added new attributes (dbb68a5)
  • plugins-runtime: add data method to image data (f077481)
  • plugins-runtime: fix problem with linter (30f4984)
  • plugins-runtime: allow openPage() to toggle opening on a new window or not (da8288b)

🩹 Fixes

❤️ Thank You

  • alonso.torres
  • Juanfran @juanfran
  • Michał Korczak
  • Miguel de Benito Delgado
  • Pablo Alba

1.3.2 (2025-07-04)

🩹 Fixes

  • plugins-runtime public package.json (70fd69f)

❤️ Thank You

  • Juanfran @juanfran

1.3.1 (2025-07-04)

🚀 Features

  • plugins-runtime as npm library (41c56b1)

🩹 Fixes

❤️ Thank You

  • Juanfran @juanfran

1.3.0 (2025-06-25)

🚀 Features

  • plugin-types: add skipChildren to exports (b3373ba)
  • plugins-runtime: change plugins modal z-index (c6a4a7d)
  • plugins-runtime: adds max resize to the screen size (f2fe501)
  • plugins-runtime: adds localstorage wrapper API for plugins (0006ca9)
  • plugins-runtime: add generateFontFaces method (30e1d02)
  • poc-state-plugins: add some methods to the example (b95961a)
  • poc-state-plugins: example using the localstorage api (b101523)

🩹 Fixes

  • plugin-colors-to-tokens: adapt to Penpot tokens metadata format (3a1ff00)
  • plugin-colors-to-tokens: avoid unvalid character in names (dd0fd1a)
  • plugin-types: add missing board properties (de4a2a0)
  • plugin-types: fix problem with type (9759964)
  • plugins-runtime: add allow-same-origin to iframe (65d5351)
  • plugins-runtime: fixes null checking issue (6b5b562)
  • plugins-runtime: fix problem with resize modal position (45dc41d)
  • plugins-styles: migrate to fonts css api v2 (45a9ee9)

❤️ Thank You

  • alonso.torres
  • Martynas Barzda
  • Xavier Julian

1.2.0 (2025-02-27)

🚀 Features

  • upgrade nx & angular & prettier (32de075)
  • add ui.resize & ui.size api (815181d)
  • colors to tokens export plugin (7f8a011)
  • transform color & opacity to rgba (9a3e6e0)
  • plugin-colors-to-tokens: only rgba when the opacity is not 1 (e922cf9)
  • plugin-types: deprecated fields in colors (6adcc4c)
  • plugins-runtime: add upload svg with images (df925b5)

🩹 Fixes

❤️ Thank You

  • alonso.torres
  • Juanfran @juanfran
  • Michał Korczak

1.1.0 (2024-12-12)

🚀 Features

  • updated doc links (cb49dfb)
  • plugin-types: add support for file history versions (eab57d7)

🩹 Fixes

  • styles rename layers (40e08f8)
  • rename-layers: i#8951 disable buttons when empty (#8951)

❤️ Thank You

  • alonso.torres
  • María Valderrama @mavalroot
  • Marina López @cocotime

1.0.0 (2024-10-25)

🚀 Features

  • plugins-runtime: add close callback to load api (aeddab7)
  • runtime: unload plugin (b4d0463)

🩹 Fixes

  • search in icons plugin (b4664a2)
  • table-plugin: i#8965 empty cell values when importing csv files (#8965)

❤️ Thank You

  • alonso.torres
  • Juanfran @juanfran
  • María Valderrama @mavalroot
  • Marina López @cocotime

0.12.0 (2024-10-04)

🚀 Features

  • e2e tests (1371af9)
  • add build to CI (a434209)
  • api-doc: update readme (99ff81d)
  • docs: add examples for new permissions (2f0f7a6)
  • e2e: add screenshots ENV variable (9292bf2)
  • plugin-types: add ruler guides and new zoom methods (c8066be)
  • plugin-types: add apis for comments (e34e56c)
  • plugin-types: update comment related methods (50bc7ba)
  • plugin-types: removed old method and replaced with attributes (1866299)
  • plugins-runtime: plugin live reload (bbc77e4)
  • plugins-runtime: adds new permissions comment:read, comment:write and allow:downloads (5adbee2)
  • plugins-runtime: expose some public JS APIs to the plugins code (22dfa92)
  • poc-state-plugin: add new functions to the plugin to test comments and rulers (6adee11)
  • rename-layers: final review - undo group (2909bcc)
  • runtime: refactor plugin state (16595c2)
  • runtime: remove deprecated method (ccc5f78)
  • table-plugin: enhancement save config (07af57d)

🩹 Fixes

  • e2e: update dump params to shape model (ade39ee)
  • plugin-types: optional path curves (0ea57f1)
  • plugins-runtime: clean pending timeouts (8870dda)
  • plugins-runtime: prevent plugin execution after close (b65492a)
  • plugins-styles: import svg inline (567b0b5)
  • runtime: ses errorTrapping interferes with penpot error handler (8c0e36d)
  • runtime: prevent override Penpot objects (120e9e5)

❤️ Thank You

  • alonso.torres
  • Juanfran @juanfran
  • María Valderrama @mavalroot

0.10.0 (2024-07-31)

🚀 Features

  • change permissions names (99126f8)
  • stop offering icons in the style library (5a219e9)
  • new publish script (5114e78)
  • init e2e test (b0af705)
  • docs: how api docs are generated (e047977)
  • docs: basic css theme for typedoc (0eac44d)
  • plugin-types: update API types (bffa467)
  • plugin-types: add pages info to the file (b54edb3)
  • plugin-types: add parent reference to the shape (2588778)
  • plugin-types: add root shape reference to the pages (c712759)
  • plugin-types: add undo block operations to api (1d3ad89)
  • plugins-runtime: update selection (f36fa23)
  • plugins-runtime: add new events 'contentsave' and 'shapechange', changed on/off signatures (2b8a76b)
  • plugins-runtime: add detach shape from component method (ff488d4)
  • plugins-runtime: add API to access to prototypes (a554775)
  • plugins-runtime: add method for pages (9a9b33a)
  • plugins-types: expose new attributes (9ce45a2)

🩹 Fixes

  • typo checkox > checkbox (877a3f2)
  • avoid plugin location question (b4c6165)
  • add files so no unexpected when creating new plugin (ef5629a)
  • eslint migration to ESM docs (249ea62)
  • fix runtime version (95afbf3)
  • horizontal scroll height on plugins modal (08f989a)
  • contrast-plugin: update colors when shape change (8ce04d3)
  • docs: add missing variant on destructive button (9fa96e9)
  • plugin-types: readonly PenpotShapeBase width & height (415284f)
  • plugins-runtime: remove plugin event listener on close (2138985)
  • plugins-runtime: fix problem with types in test (17db173)
  • styles: input, button & select worksans font family (1b9d3b2)

❤️ Thank You

  • alonso.torres
  • Juanfran @juanfran
  • María Valderrama @mavalroot
  • Marina López @cocotime
  • Xaviju

0.9.0 (2024-07-10)

🚀 Features

  • change permissions names (99126f8)
  • stop offering icons in the style library (5a219e9)
  • new publish script (5114e78)
  • plugin-types: update API types (bffa467)
  • plugins-runtime: update selection (f36fa23)
  • plugins-types: expose new attributes (9ce45a2)

🩹 Fixes

  • typo checkox > checkbox (877a3f2)
  • avoid plugin location question (b4c6165)
  • fix runtime version (2401a77)
  • styles: input, button & select worksans font family (1b9d3b2)

❤️ Thank You

  • alonso.torres
  • Juanfran @juanfran
  • Marina López @cocotime
  • Xaviju @xaviju