Vite Build System: Development at the Speed of Light!
Get ready for a revolutionary upgrade to your development workflow! Our new Vite integration brings blazing-fast Hot Module Replacement to ApostropheCMS. Watch your UI changes appear instantly, say goodbye to full page reloads, and enjoy build times that will make you wonder how you ever lived without it. Available now in beta, Vite is set to become our default bundler - join us in building the future of ApostropheCMS development!
ESM Support: Welcome to Modern JavaScript!
The future of JavaScript has arrived in ApostropheCMS with full ESM support! Harness the power of native JavaScript modules for cleaner code, smarter bundling, and seamless integration with modern tools and frameworks. Combined with Vite's HMR capabilities, you'll experience development nirvana: crystal-clear module dependencies, instant updates, and the pure joy of working with cutting-edge JavaScript. The modern ApostropheCMS developer experience you've been dreaming of is here!
Dynamic Field Dependencies: Enhanced Schema Options
Create smarter interfaces where field options adapt naturally to your content structure as it changes. Building on our existing following
feature for string fields, we've expanded dynamic value support to checkboxes, radio buttons, and select fields. Now your schema field choices
can be dynamically updated based on other field values, enabling more sophisticated and responsive content models.
Breakpoint Preview Menu: Expanded Device Testing
The breakpoint preview feature introduced last release gets even better with a new dropdown menu interface. Now you can configure and switch between a wider range of device sizes, making it easier than ever to test your responsive designs across multiple screen formats. This enhancement gives you more flexibility in previewing how your content appears across various devices without cluttering your interface.
CHANGELOG for Apostrophe 4.9.0
Adds
- Relationship inputs have aria accessibility tags and autocomplete suggestions can be controlled by keyboard.
- Elements inside modals can have a
data-apos-focus-priority
attribute that prioritizes them inside the focusable elements list. - Modals will continute trying to find focusable elements until an element marked
data-apos-focus-priority
appears or the max retry threshold is reached. - Takes care of an edge case where Media Manager would duplicate search results.
- Add support for ESM projects.
- Modules can now have a
before: "module-name"
property in their configuration to initialize them before another module, bypassing the normal order implied bydefaults.js
andapp.js
. select
andcheckboxes
fields that implement dynamic choices can now take into account the value of other fields on the fly, by specifying afollowing
property with an array of other field names. Array and object subfields can access properties of the parent document by adding a<
prefix (or more than one) to field names infollowing
to look upwards a level. Your custom method on the server side will now receive afollowing
object as an additional argument. One limitation: for now, a field with dynamic choices cannot depend on another field with dynamic choices in this way.- Adds AI-generated missing translations
- Adds the mobile preview dropdown for non visibles breakpoints. Uses the new
shortcut
property to display breakpoints out of the dropdown. - Adds possibility to have two icons in a button.
- Breakpoint preview only targets
[data-apos-refreshable]
. - Adds a
isActive
state to context menu items. Also adds possibility to add icons to context menu items. - Add a postcss plugin to handle
vh
andvw
values on breakpoint preview mode.
Changes
- Silence deprecation warnings from Sass 1.80+ regarding the use of
@import
. The Sass team has stated there will be a two-year transition period before the feature is actually removed. The use of@import
is common practice in the Apostrophe codebase and in many project codebases. We will arrange for an orderly migration to the new@use
directive before Sass 3.x appears. - Move saving indicator after breakpoint preview.
- Internal methods
mergeConfiguration
,autodetectBundles
,lintModules
,nestedModuleSubdirs
andtestDir
are now async. express.getSessionOptions
is now async.
Fixes
- Modifies the
AposAreaMenu.vue
component to set thedisabled
attribute totrue
if the max number of widgets have been added in an area withexpanded: true
. pnpm: true
option inapp.js
is no longer breaking the application.- Remove unused
vue-template-compiler
dependency. - Prevent un-publishing the
@apostrophecms/global
doc and more generally all singletons. - When opening a context menu while another is already opened, prevent from focusing the button of the first one instead of the newly opened menu.
- Updates
isEqual
method ofarea
field type to avoid comparing an area having temporary properties with one having none. - In a relationship field, when asking for sub relationships using
withRelationships
an dot notion.
Links
- The GitHub Discussion: https://github.com/apostrophecms/apostrophe/discussions/4790
- Discord: https://chat.apostrophecms.com
- YouTube: https://youtu.be/jm1DHdogCLo