v3.1.0-beta.3
Apr 11, 2025
This beta release introduces APIs for Permissions:
Plugins are now available to all users, not just the ones with Full Access.
Calling a method that is not usable by the user will result in an error.
isAllowedTo
lets you check methods' availability to the user.subscribeToIsAllowedTo
lets you subscribe to changes inisAllowedTo
.useIsAllowedTo
is a React hook version ofsubscribeToIsAllowedTo
.
Learn more with the Permission guide.
Important: Make sure to update vite-plugin-framer
to ^1.0.7
as framer-plugin
now uses a top-level await and won't work without it. If you don't rely on vite-plugin-framer
then make sure you target es2022
at the minimum. Vite targets esnext
by default, but it might still need the following addition in its configuration:
esnext
is a safe choice here as optimizeDeps
is development-only.
v3.1.0-beta.1
Mar 19, 2025
This beta release brings many improvements to the Localization Beta APIs, including the ability to directly manage Localizations during the creation or updating of Collection Items, both for managed and non-managed Collections.
Localization
We are stabilizing these APIs and removing their unstable_
prefix. We are also making some changes to where these APIs can be called:
getLocales
,getDefaultLocale
, andgetActiveLocale
are now available in all modes.setLocalizationData
andgetLocalizationGroups
can no longer be called from the"configureManagedCollection"
or"syncManagedCollection"
plugin modes.
In addition, there are some breaking changes being made to property naming:
getLocalizationGroups
now returns astatusByLocale
instead of the previoushiddenLocales
.setLocalizationData
now accepts astatusByLocaleByGroup
instead of the previoushiddenLocalesByGroup
.Localization Sources now have a
valueByLocale
property instead of the previouslocales
.
Collection
When calling
ManagedCollection.addItems
orCollection.addItems
, you can now passstatusByLocale
, and avalueByLocale
for each field infieldData
.When calling
Collection.getItems
, fields' values infieldData
that are localizable now have avalueByLocale
property containing the field's Localized Values, and the item itself has aslugByLocale
property with the slug's Localized Values.Added
slugFieldBasedOn
on non-managed Collections, which returns the ID of the field the slug is based on.Non-managed Enum Fields can now update, remove, and sort their Enum Cases.
You can now pass a
required
property when creating fields, allowing them to be marked as required.Fixed a bug where adding items with a Formatted Text Field that contains HTML (e.g.,
<pre>
tag) would sometimes error.Fixed a bug where it was not possible to update the referenced Collection of a Reference or Multi Reference Field on managed Collection.
Canvas
Added an
onDragComplete
callback to the Draggable component.
v3.0.0
Mar 5, 2025
Plugins version 3.0 enables entirely new functionality within CMS Plugins with a new set of APIs for modifying and adding to existing Collections that weren’t created by your Plugin (known as UnmanagedCollection
). Along with this, we’ve made a few changes to the core CMS APIs to add stronger typing and set us up for additional features coming soon.
Breaking Changes
The following CMS functions now require their fieldData
to be an object, with value
and type
properties. Which enforces stronger types across CMS APIs.
Collection.getFields()
now returnsField[]
.BooleanField
,StringField
, etc. are classes now.SupportedCollectionField
type has been removed.CollectionField
type has been removed.Collection.getItems()
returns typedfieldData
.CollectionItem.setAttributes()
requires typedfieldData
.ManagedCollection.addItems()
requires typedfieldData
.
Collections
Plugins can now write to Collections.
Added
Collection.addItems()
.Added
Collection.setItemOrder()
.Added
Collection.setFieldOrder()
.
Collection Fields
Collection.addFields()
lets you create new fields.Field.setAttributes()
allows you to update the field.Field.remove()
removes the field from the Collection.Collection.removeFields()
removes fields in bulk.
v2.2.0
Feb 11, 2025
The 2.2.0 release brings some updates to the CMS API, with a focus on improving the experience around having multiple Managed Collections created by the same Plugin.
Managed Collections
Added new
getManagedCollections()
method to get all Collections managed by your Plugin.Added
setAsActive()
method to select the active Collection in the EditorDeprecated
getManagedCollection()
in favor of getActiveManagedCollection()
.Fixed a bug where setting Plugin Data on a
CollectionItemNode
was throwing aNode not found
error.
Collections
Added support for
FieldDivider
type in collection fields.Added
setAsActive()
method to make a collection the active one.Added
removeFields()
method to remove fields by their ID.Added
setFieldOrder()
method to arrange fields in a specific order.Added
slugFieldName
property to Collection interface.
v2.0.0
Nov 11, 2024
The 2.0 release contains a single breaking change to the id
field of the APIs below. Our hashing algorithm for the id
had a higher potential for ID collisions than expected. The id
field will now be a different hashed value for the same user/project compared to 1.x.x
. Logic that stores and compares these values will need updating. To migrate from the old value to the new value, you can reference the apiVersion1Id
field.
v1.1.0
Oct 15, 2024
Resolution support has been added to all image APIs.
Collection item draft status is now exposed in the API.
Plugin windows now support maximum width/height.
v1.0.0
Oct 2, 2024
Plugins initial public release.