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-priorityattribute that prioritizes them inside the focusable elements list. - Modals will continute trying to find focusable elements until an element marked
data-apos-focus-priorityappears 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.jsandapp.js. selectandcheckboxesfields that implement dynamic choices can now take into account the value of other fields on the fly, by specifying afollowingproperty 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 infollowingto look upwards a level. Your custom method on the server side will now receive afollowingobject 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
shortcutproperty 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
isActivestate to context menu items. Also adds possibility to add icons to context menu items. - Add a postcss plugin to handle
vhandvwvalues 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@importis common practice in the Apostrophe codebase and in many project codebases. We will arrange for an orderly migration to the new@usedirective before Sass 3.x appears. - Move saving indicator after breakpoint preview.
- Internal methods
mergeConfiguration,autodetectBundles,lintModules,nestedModuleSubdirsandtestDirare now async. express.getSessionOptionsis now async.
Fixes
- Modifies the
AposAreaMenu.vuecomponent to set thedisabledattribute totrueif the max number of widgets have been added in an area withexpanded: true. pnpm: trueoption inapp.jsis no longer breaking the application.- Remove unused
vue-template-compilerdependency. - Prevent un-publishing the
@apostrophecms/globaldoc 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
isEqualmethod ofareafield type to avoid comparing an area having temporary properties with one having none. - In a relationship field, when asking for sub relationships using
withRelationshipsan dot notion.
Links
- The GitHub Discussion: https://github.com/apostrophecms/apostrophe/discussions/4790
- Discord: https://chat.apostrophecms.com
- YouTube: https://youtu.be/jm1DHdogCLo