- Fix property modification from inherited context two or more levels above (#66872).
- Fix reactivity of undefined objects and arrays added with
deepMerge()
(#66183).
- Upgrade preact libraries #66008.
- Fix an issue where "default" could not be used as a directive suffix (#65815).
- Correctly handle lazily added, deeply nested properties with
deepMerge()
(#65465).
- Improve TypeScript support for generators (#64577).
- Refactor internal context proxies implementation (#64713).
- Prevent calling
proxifyContext
over an already-proxified context insidewp-context
(#65090). - Update iterable signals when
deepMerge()
adds new properties (#65135).
- Improve internal
deepMerge
function (#64879).
- Fix computeds without scope in Firefox (#64825).
- Fix context inheritance from namespaces different than the current one (#64677).
- Refactor internal proxy and signals system (#62734).
- Prevent overriding of existing properties on state and context after a client-side navigation (#62734).
- Export
splitTask
function from@wordpress/interactivity
package to facilitate yielding to the main thread. See example in async actions documentation. (#62665)
- Introduce
wp-on-async
directive as performant alternative over synchronouswp-on
directive. (#61885)
- Variables like
process.env.IS_GUTENBERG_PLUGIN
have been replaced byglobalThis.IS_GUTENBERG_PLUGIN
. Build systems usingprocess.env
should be updated (#61486). - Increase the minimum required Node.js version to v18.12.0 matching long-term support releases (#31270). Learn more about Node.js releases.
- Fix null and number strings as namespaces runtime error. (#61960)
- Strict type checking: fix some missing nulls in published types (#59865).
- Allow multiple event handlers for the same type with
data-wp-on-document
anddata-wp-on-window
. (#61009) - Prevent wrong written directives from killing the runtime (#61249)
- Prevent empty namespace or different namespaces from killing the runtime (#61409)
- Improve data-wp-context debugging by validating it as a stringified JSON Object. (#61045)
- Hooks useMemo and useCallback should return a value. (#60474)
- Prevent non-objects from being set in store state. (#59886)
- Ensure that stores are available for subscription before hydration. (#59842)
- Ensure scope is restored when catching exceptions thrown in async generator actions. (#59708)
- Prevent passing state proxies as receivers to deepSignal proxy handlers. (#57134)
- Keep the same references to objects defined inside the context. (#59553)
- Only add proxies to plain objects inside the store. (#59039)
- Improve context merges using proxies. (59187)
- Export
getConfig()
to retrieve the server-defined configuration for the passed namespace. (58749)
- Remove the style prop (
key
) and class name arguments thedata-wp-style
anddata-wp-class
directives. (#58835). - Remove the
data-wp-body
directive. (#58835)
- Break up init with yielding to main to prevent long task from hydration. (#58227)
- Support setting the namespace using a string in
data-wp-interactive
, likedata-wp-interactive="myPlugin"
. (#58743)
- Avoid initializing private stores as public when they have initial state. (#58754)
- Interactivity API: Remove non default suffix data wp context processing. (#58664)
- Ensure Preact is used in published packages (58258.
- Prevent the usage of Preact components in
wp-text
. (#57879) - Update
preact
,@preact/signals
anddeepsignal
dependencies. (#57891) - Export
withScope()
and allow to use it with asynchronous operations. (#58013) - Add
block supports
forclientNavigation
andinteractive
properties onblock.json
schema.(#58132)
- Add the
data-wp-run
directive along with theuseInit
anduseWatch
hooks. (#57805) - Add
wp-data-on-window
andwp-data-on-document
directives. (#57931) - Add the
data-wp-each
directive to render lists of items using a template. (57859)
- Remove
data-wp-slot
anddata-wp-fill
. (#57854) - Remove
wp-data-navigation-link
directive. (#57853) - Remove unused
state
and renameprops
toattributes
ingetElement()
. (#57974) - Convert
navigate
andprefetch
function to actions of the newcore/router
store, available when importing the@wordpress/interactivity-router
module. (#57924)
- Prevent
wp-data-on=""
from creatingonDefault
handlers. (#57925)
- Fix namespaces when there are nested interactive regions. (#57029)
- Update the title when using enhanced pagination. (#55446)
- Improve
navigate()
to render only the result of the last call when multiple happen simultaneously. (#54201)
- Remove
role
attribute when set tonull
indata-wp-bind
. (#54608) - Add
timeout
option tonavigate()
, with a default value of10000
milliseconds. (#54474)
- Support keys using
data-wp-key
. (#53844) - Merge new server-side rendered context on client-side navigation. (#53853)
- Support region-based client-side navigation. (#53733)
- Improve
data-wp-bind
hydration to match Preact's logic. (#54003)
- Add new directives that implement the Slot and Fill pattern:
data-wp-slot-provider
,data-wp-slot
anddata-wp-fill
. (#53958)
- Allow passing optional
afterLoad
callbacks tostore
calls. (#53363)
- Add support for underscores and leading dashes in the suffix part of the directive. (#53337)
- Add an asynchronous short circuit to
useSignalEffect
to avoid infinite loops. (#53358)
- Add JSDoc comments to
store()
anddirective()
functions. (#52469)
- Remove the
wp-show
directive until we figure out its final implementation. (#53240)
- Runtime support for the
data-wp-style
directive. (#52645)