Changelog - Hyvä Commerce
This page contains the changelog for all Hyvä Commerce features.
1.3.0 - 2026-06-30
Hyvä Commerce 1.3.0 contains brand-new features and new functionality, improvements and bugfixes for existing features, as part of Hyvä's Summer 2026 Solstice release across all products.
1.0.5 - Hyva_Commerce Module
Added
- Hyvä Enterprise branding support for admin theme
Changed
- Updated logos for admin theme usage
1.0.4 - Hyva_Commerce Module
Added
- System config tab for Hyvä Commerce
1.1.0 - Hyva Commerce Admin Theme
Added
- Enterprise theme variant support and purple brand colors
Changed
- Updated menu logo, loader icon, and favicon
- Updated brand colors
- Improved copyright footer and login output and styles
- Improved responsive styles, including for category tree output
Fixed
- Multiple minor styling fixes from open Mage-OS admin theme issues
3.0.0 - Admin Dashboard API
First public release of hyva-themes/commerce-module-admin-dashboard-api (OSL-3.0), the stable contract package for
Hyvä Admin Dashboard widgets.
Added
Hyva\AdminDashboardApi\Api\V1\WidgetTypeInterface— composition-based widget contract.Hyva\AdminDashboardApi\Api\V1\WidgetContextInterfaceand the defaultWidgetContextvalue object.Hyva\AdminDashboardApi\Api\V1\WidgetInstanceInterface— slim read-only view of a saved widget instance.Hyva\AdminDashboardApi\Api\V1\WidgetAuthInterface— minimal auth contract.- Chart-type interfaces in
Hyva\AdminDashboardApi\Api\V1\ChartType\ Hyva\AdminDashboardApi\Api\V1\Service\WidgetDateIntervalHelperInterfaceandHyva\AdminDashboardApi\Api\V1\Source\WidgetDateIntervalSourceInterface— date-interval helpers that remove the need to extendAbstractDateIntervalWidget.Hyva\AdminDashboardApi\Api\V1\Defaults\WidgetTypeDefaultsInterface— contract for chart-type defaults providers.Hyva\AdminDashboardApi\Api\ConfigurationKeysandHyva\AdminDashboardApi\Api\WidgetOptionsconstant classes.etc/adminhtml/hyva_dashboard_widget.xsd— schema forhyva_dashboard_widget.xml.
2.0.1 - Admin Dashboard
This is a backwards-incompatible change. The legacy widget contract continues to function thanks to the
WidgetTypeDispatcher class which bridges the legacy API and the new API at runtime.
Added
- Dashboard Views & Roles
- Admins can save multiple named dashboards, switch between them, and assign them to admin roles.
- New tables
hyva_admin_dashboard_view,hyva_admin_dashboard_view_role, andhyva_admin_dashboard_user_active_view; new nullableview_idcolumn onhyva_admin_dashboard_widget_instance. - Data patch
Setup/Patch/Data/MigrateWidgetsToViewsautomatically moves existing widgets into a per-user "My Dashboard" view on upgrade.
- New ACL resources
Hyva_AdminDashboardFramework::dashboard_views_createHyva_AdminDashboardFramework::dashboard_views_saveHyva_AdminDashboardFramework::dashboard_views_deleteHyva_AdminDashboardFramework::dashboard_views_assign
WidgetTypeDispatcher— routes widget method calls to either the legacy contract or the newHyva\AdminDashboardApi\Api\V1\WidgetTypeInterfacebased on runtimeinstanceofchecks, allowing both contracts to coexist on the same dashboard.- Per-chart-type defaults providers and
WidgetContextFactoryfor the new contract. - New Widget Types
abandoned_carts— Abandoned-cart recovery overview with date intervals.customer_order_totals— Top customers by order total with date intervals.module_versions— Installed module and package versions.top_coupons— Top-redeemed coupons with date intervals.recently_edited_products,recently_edited_categories,recently_edited_cms_pages,recently_edited_cms_blocks— Recently edited catalog and CMS content.
- New utility classes:
Util/DateTimeFormatter,Util/CurrencyLocator,Util/Composer,Util/CategoryPathResolver, andUtil/AllowedInstanceFilter. - New view models:
View,SelectedRootCategories,SelectedWebsites,AdminUser. - Playwright e2e test suite under
tests/playwright/. - New
date-interval-tabledisplay type for table widgets that need an interval selector.
Changed
hyva-themes/commerce-module-admin-dashboardnow requireshyva-themes/commerce-module-admin-dashboard-api: ^2.0.- Widget contracts relocated from
Hyva\AdminDashboardFramework\Model\*toHyva\AdminDashboardApi\Api\V1\*. - Direct
usestatements must be updated, although DI preferences resolve framework-side references automatically. WidgetInstanceInterfacewidgets see is now the slim, read-onlyHyva\AdminDashboardApi\Api\V1\WidgetInstanceInterface. Framework-internal repository access moves toHyva\AdminDashboardFramework\Api\V1\WidgetInstance\WidgetInstanceRepositoryInterface.WidgetTypeInterface::KEY_CONFIGURABLE_PROPERTIESandKEY_DISPLAY_PROPERTIESconstants moved toHyva\AdminDashboardApi\Api\ConfigurationKeys.- The framework's chart-base classes remain in place for legacy widgets; new widgets implement the matching
*WidgetTypeInterfacefromHyva\AdminDashboardApi\Api\V1\ChartType\instead. - Hyvä Admin Dashboard system configuration now appears under the
Hyvä Commercesection.
Removed
etc/adminhtml/hyva_dashboard_widget.xsd— moved toHyva_AdminDashboardApi. Update widget XML files to referenceurn:magento:module:Hyva_AdminDashboardApi:etc/adminhtml/hyva_dashboard_widget.xsd.
1.0.1 - Admin Dashboard CMS Widgets
Fixed
- Version dependency on
hyva-themes/commerce-module-admin-dashboard-apifixed.
1.0.0 - Admin Dashboard CMS Widgets
First public release of hyva-themes/commerce-module-admin-dashboard-cms-widgets, an optional module that
ships CMS-focused widgets for the Hyvä Admin Dashboard.
Added
hyva_cms_scheduled_releases— Hyvä CMS scheduled-release overview with configurable date range, release status filter, and item limit. Lists release names, scheduled dates, and included entities with edit and preview links.recently_edited_cms_menus— Recently edited Hyvä CMS menus with quick edit links.- Hyvä CMS-aware overrides for the recently-edited widgets shipped by
Hyva_AdminDashboardWidgets— products, categories, and CMS content.
2.0.0 - Admin Dashboard Google CrUX History Widget
This is a backwards-incompatible change as the widget is now implemented against the new
Hyva\AdminDashboardApi\Api\V1\ChartType\DateIntervalWidgetTypeInterface contract.
Added
default_intervaldisplay property — each widget instance can choose its own default time window.
Changed
- Widget class now implements
Hyva\AdminDashboardApi\Api\V1\ChartType\DateIntervalWidgetTypeInterfacerather than extendingAbstractDateIntervalWidget. - Integrators that decorated the previous class should update their
<preference>configuration. is_logarithmicdisplay property enhanced for better visibility of variance in performance data.- URL normalisation improved to prevent duplicate database entries when an origin URL is supplied in multiple forms.
- Data fetching now happens on widget save with automatic CrUX API integration.
- Cache lifetime set to 604,800 seconds (one week); a cron job clears stale cache entries automatically.
1.2.2 - Hyvä CMS
This release is a minor update to Hyvä CMS for bug fixes, it includes fixes required for Hyvä Checkout 1.4.0-beta1 and for Hyvä Menu Builder 1.0.2
Added
- More Magezon page-builder stylesheets in the
liveview_clean.xmlfallback denylist.
Changed
- The Magewire fork's cache type is renamed from
magewiretohyva_cms_magewire. Previously it merged with Magewire identically-named cache type and both modules overwrote each other's resolver cache entry. Sites scriptingbin/magento cache:enable magewirefor the CMS should use the new name.
Fixed
- Liveview ajax content renders now emulate the target store's environment. The request hits from the admin host, so components rendered with the default store's theme, locale and translations — issue was spotted in the menu builder's mobile menu showing the default Magento logo in the preview. Thanks to Matt Powell (Digital Studio NW) for reporting this.
- Liveview editor failing with "No component resolver complies for block
liveview-composer" when Magewire v3 is installed (e.g. by Hyvä Checkout 1.4.0-beta1). The
Magewire fork submodule now marks its blocks with a
cms_magewirelayout argument instead ofmagewire, so Magewire v3 no longer claims and breaks them. The fork's exception block also renders its ownHyva_CmsMagewire::component/exception.phtmlinstead of referencing the upstream Magewire module. Thanks to Stuart Otter (Aware Digital) for reporting. - "Generate Tailwind styles on edit" losing styles with the v4 in-browser compiler. Single-field
edits fed only the edited component to the JIT compile and relied on re-scanning the existing
compiled CSS to keep the other components' classes — a trick only the v3 compiler's extractor
supports, so v4 dropped the edited component's CSS Classes and everyone else's on each keystroke.
The JIT compile now receives the full current field tree, matching the save/publish path.
Requires the coordinated
commerce-module-cms-tailwind-jit-bridgeupdate for the v4 live-on-edit path. - Daemon-compiled Hyvä CMS Tailwind CSS overriding the theme's utilities (e.g. a CMS
w-[377px]beating the theme'sw-full). Thehyva-cms-tailwindcascade layer is now declared at the top of<head>, before the theme stylesheet, in every compilation mode — pinning it to the lowest priority sostyles.csswins consistently. Previously only in-browser compilation got this, via a jit-bridge plugin that has been removed in a companion change. - Static content deploy crashing with JS minification enabled — Magento's JShrink minifier dies on
the pre-minified Monaco editor bundle (
RuntimeException: Unclosed string). Monaco and the other bundled vendor libraries are now listed indev/js/minify_exclude/dev/css/minify_exclude, the same way core excludes TinyMCE. Monaco also loads its chunks and CSS by their original file names, so the exclusion doubles as a fix for 404s once minification renames assets to.min. Note that Hyvä recommends leaving Magento's built-in minification off — this is a safeguard for sites that enable it anyway. Thanks to Pieter Hoste (Baldwin) for reporting and contributing the fix. - Liveview editor link handler prefix select now displays the selected value. Thanks to Luuk Meijer (Emico) for the contribution.
1.2.1 - Hyvä CMS
This release is a minor update to Hyvä CMS for bug fixes, primarily to ease the upgrade from 1.1.x to 1.2.x.
Changed
- Batch category and product link URL resolution at render — a Hyvä CMS entity with many links now issues one collection query per type instead of one per link. URLs resolve in the current store context, so they stay correct per store view. Many thanks to Ole Schäfer (CustomGento) and Luke Rodgers (Gene) for reporting!
Fixed
- Fixed all
bin/magentocommands failing withCannot instantiate interface Hyva\CmsInstanceComponents\Api\InstanceComponentRepositoryInterfacewhen the new CMS modules were not yet enabled — which blocked the very commands needed to enable them (setup:upgrade,module:enable). Console command dependencies and the instance component collector are now lazy proxies, so the CLI stays usable mid-upgrade. Many thanks to Julian Nuß (integer_net) for diagnosing this and contributing the fix! - Give CMS Logger constructor defaults so broken DI can't break the site with a 500. Was occuring periodically on CI builds.
1.2.0 - Hyvä CMS
This release is a major update to Hyvä CMS, with many new features and improvements. Highlights include, Product Attribute support, template and snippet support, Tailwind V4 support, improved import/export functionality, UX improvements and lots more.
Added
- Transfer Center now exports Templates and Snippets, and exposes a documented extension point (
ContentTypeHandlerInterface+HandlerPool) so any module can register its own content type. Handlers live in the module that owns the content type — seesrc/cms-import-export/README.md. As a worked example,Hyva_MenuBuilderregisters amenuhandler. - Auto attributes for Hyvä CMS components: Editor integration attributes are now injected automatically into the first HTML element of each component's output. This includes
data-liveview-element,id(when a block ID is set), and the attributes fromgetEditorAttrs(). Most component templates no longer need to add these manually on the root element. To take full manual control (e.g. for layouts with multiple root elements), set$block->setData('auto_attributes', false)in your template and add the required attributes yourself. - Tailwind V4 support
- Attribute support (products, categories)
- Favorite components
- User settings database storage
- Default component classes
- Ability to scroll to element from editor to preview
- Monaco editor
- Bridge utility for communication between editor and preview iframe
- Component preview text (auto-generated, configurable in editor preferences). When enabled, preview text is generated from available content in text, textarea, richtext, link, and category_selector fields.
- Context menu in preview
- Added
{entityType}_liveview_editorlayout handle to the Liveview editor for custom entity types. Allows for custom layout updates for specific entity types. - New Hyvä CMS specific logo
- Allow sidebar position to be changed (left, right, re-size)
- Tabs (recent pages, blocks, etc...)
- Improved import/export functionality
- Tiptap editor (+ better feature-set for richtext editing)
- Added 2 extra directives for Tiptap editor:
{{hyva_image}}and{{hyva_link}} - Resize single panel
- Icon support for instance components (emoji)
- Ability to add new variants to existing components
- Component toolbar search
- Allow button label and image alt texts to be translated
- Extra options for undo/redo in revision history (rollback, go back to earliest undo, go forward to latest redo)
- Keybindings (publish, save draft, open search, open component library, open navigator, open version history, open preferences)
- Extra buttons for components list empty state (add a component, browse templates)
- First time user experience for new entities (page, block, etc...)
- Bridge for events (closing open dropdowns)
- Editor extension point: feature modules can push context flags onto
Alpine.store('global').disallowedRootComponentContextFlagsto hide flagged components from the "Add a Component" picker. Pairs with the existingallowedRootComponentContextFlagswhitelist. - View published page button
- Fetch priority high option to loading strategy of banner, card, testimonial, usp, and image components. Many thanks to Luke Rodgers (Gene) for the contribution!
- Store & Custom Variables — curated, searchable list of allow-listed store variables (
{{config path="…"}}) and admin-defined custom variables ({{customVar code="…"}}), sourced from Magento's own variable system. - Custom Directive — builders for
{{var …}},{{trans "…"}}, and{{store url="…"}}with live preview. - Duplicate component button
- New
presetfield type: a visual picker that applies multiple field values in one click. Options declare afieldsmap; selection is stateless and derived from the component's current values, so it deselects automatically when fields are customised. Withconfig.preview: "grid"thumbnails are auto-drawn as mini grids from the preset's own values. Applied via a new batchedupdateFieldsMagewire method (single round trip). - Layout presets on the Grid / Columns component: pick from 9 visual layouts (1–4 columns, larger first/last, featured center, header + columns) that fill in the responsive column, style, and full-size-column fields as a starting point.
- Slider loop option: Added a "Loop" toggle to the Slider component design settings. When enabled it passes the
loopmodifier tox-snap-slider, so navigation wraps from the last slide back to the first (and vice versa). Supported by both the Default and Basic slider variants. - Snap Slider plugin updated to v2.2.2: Adds
loopsupport, index-based slide navigation with anisNavigatingguard to prevent scroll conflicts,scrollend/fallbackscrollevents for reliable navigation state, smarter mutation observer watching style attribute changes on the subtree, hidden slides excluded from the slide list, pager gains theinertattribute when there is no overflow, and ArrowUp/ArrowDown keyboard shortcuts added alongside ArrowLeft/ArrowRight for pager navigation. - HTML Dialog plugin updated to v2.3.0: Adds
modelessmodifier support, which opens the dialog as a non-blocking modeless dialog usingel.show()instead ofel.showModal(). - Media Gallery API composer requirement for better image handling
- Card component now translatable
- Implement Media Optimization XML resizing declarations
Changed
- Nesting depth is now per-component. A component can declare its own
max_nesting_levelin its children config, which restarts the depth count for its subtree; a component that declares none inherits its parent's remaining budget. - Editor preferences now saved to user instead of local storage
- Key enter in component name input now saves the name
- Component panel now has sticky header
- Editor preferences UI
- HTML field editor now uses Monaco editor
- Component sidebar now feels more fluid and less glitchy
- Scheduled update banner now has a gradient background
- Better fixed positions (more app like feeling)
- Moved navigator to tabs bar
- Improve Banner titles with automatic hyphenation
- More improvements to initial page load (optimise looping in components.phtml)
- Variants now show as radio buttons instead of a select box (with an icon)
- Component sidebar design improvements
- Renamed layout handles from
default.xmltohyva_default.xml - UX for translations slide-over
- Product handler UX
- Navigator UX improvements
- Must select attribute to enable during setup
- Allow installation on PHP 8.5 & Magento 2.4.9 by raising the upper bound to <8.6.
- Allow installation with
symfony/http-foundationv8 by raising the version constraint to^5.0 || ^6.0 || ^7.0 || ^8.0. - Tailwind JIT compilation server-side:
magento2-cms-tailwind-compilerreplaces the in-browser JIT; output is wrapped in.hcms-{type}-{id}for scoping. Breaking change for customProviderInterfaceimpls —getScopeSelector()is now required,getTailwindClassPrefix()is deprecated. New scoping method fixes issue where TW class names from the phtml templates were being overridden with prefixed class names. In addition, the new tailwind compiler lets you choose which method to use for JIT compilation (browser or server). - Hide the "Generate Hyvä Styles" toggle on the Magento
cms_page_formandcms_block_formwhen the Hyvä editor is enabled for that entity — the new server-side JIT compilation mechanism no longer shares its setting with the entity it extends, so the legacy toggle duplicates the one inside the editor and was confusing. - Previews for devices are now scale-to-fit with true-resolution so on a tabled device you can preview a large desktop layout instead of collapsing to mobile.
- Moved preview settings (device sizes, split-view width) out of Stores > Configuration into a per-user Preview tab in Editor Preferences, persisted under one
preview_preferencesobject. The in-canvas split divider orientation is now a per-user preference, defaults to side-by-side, and can be overridden on a per-page/entity basis. Breaking change (low impact): the releasedhyva_cms/previewadmin fields — Mobile/Tablet Preview Width and Split View Minimum Width — are removed. Values set there stop applying after upgrade and preview sizing falls back to per-user defaults. Editor-only (no storefront impact); thegetMobileWidth()/getTabletWidth()PHP API is retained. The defaults each user starts from are seeded fromconfig.xml(hyva_cms/preview/devicesandhyva_cms/preview/split_view_fixed_width), so integrators can set system-wide preview defaults there. - Drag and drop now supports moving components between containers
- Images will load by ID if available, otherwise fallback to src. Media Gallery API is used to resolve the image ID from the src.
Fixed
- Component definitions are now looked up once per request instead of being re-decoded on every component render, which noticeably speeds up pages with large component trees (e.g. big menus). Many thanks to Ole Schäfer (CustomGento) for reporting!
- Transfer Center no longer offers CMS pages/blocks that have no Hyvä CMS content for export (filtered from the picker and rejected server-side).
- Overflow issue in component handler
- Cast page identifier to string when getting page URL. Many thanks to Kieran Monaghan for the contribution!
- Fixed column style calculation and direction in Grid / Columns Component. Note: This corrects a logic error where styles were applied in reverse. Existing implementations should be reviewed to ensure correct display.
- Apply CSS classes from Advanced tab on menu_list_item
- Image handler grid
- Image handler alt value stops updating back to default value
- Dialog padding issue
- Empty preview: added event listener to document instead of element
- Inline translations button z-index issue
- Panel single: submit button type issue (user_defined_name)
- Issue with older PHP/Magento version (switched to type casting for better compatibility)
- Added missing Hyvä CSP script registration in CMS frontend templates
- Duplicate product calls for frontend products
- Load less products in product handler
- Fix favourites components dropdown to filter by allowedRootComponentContextFlags
- Fix drag-and-drop reorder not updating preview on first drag. Opening a component's panel populated the
findComponentByUidcache with references from an independently parsed object tree. Subsequent sorting lookups received these stale references instead of walking the live content tree, so child reorder assignments never reached the data that gets serialized and sent to the server. Cache is now invalidated before sorting lookups and after everythis.fieldsreassignment; component panel lookups no longer populate the shared cache. Reproduced on themobile_menucomponent but affected any component whose panel was opened before reordering its children. - Issue where attribute needs pagebuilder content stored to be visible.
- Prevent TypeError on "Save & Duplicate" for CMS Pages/Blocks that have no draft content yet. Many thanks to Finn Reinhardt (Basecom) for the contribution!
- Liveview editor: register
CspPolicyCollectoras a proxy inCompositePolicyCollectorto prevent eager collector instantiation during CLI bootstrap (e.g.events:generate:module), while preserving CSP policy collection for HTTP requests. Many thanks to Daniel Delgado (Hiberius) for the contribution! - Rewrite contentId and uid on duplicated CMS page/block content, so that the duplicated page/block can be scheduled in the same release as the original page/block.
- Variant will pre-select the default variant if no variant is selected
- Full migration column issue when migrating from Magento PageBuilder to Hyvä CMS. Many thanks to Ashish Viradiya (Evrig) for flagging this issue.
- Grid / Columns: the earlier column style direction fix missed the base (mobile) breakpoint —
start/endwere still applied in reverse there. Now consistent with tablet and desktop. window.liveview.fieldswent stale after every Magewire round trip: the@magewire:updatehandler reassignsthis.fieldsfrom the dataset but didn't re-sync the global (all other reassignment paths do). Anything readingwindow.liveview.fieldsafter a wire update (e.g. preset selection state, inline translations lookups) saw an orphaned content tree.- "Undefined array key" warning rendering image elements (card, banner, cta, usp, testimonial, image) with no alt text — surfaced as a 500 on the editor preview when adding a Card. Image attributes are now read defensively; width/height are omitted when unset rather than rendered empty.
- Liveview editor now surfaces preview update failures instead of swallowing them: a server error logs the response body to the console and shows the user a message pointing them at the console and their admin. A stale request hash (404) still refreshes silently as before.
- Widget edit dialog no longer double-decodes the widget directive.
URLSearchParams.get()already percent-decodes, so the extradecodeURIComponentthrewURIErrorand broke the dialog whenever a widget option held a literal%(e.g.50% off). Many thanks to Arnoud Beekman (X-Interactive) for the contribution! - 404 cms page now working in preview
Removed
- Text class toggle
- Prism HTML editor
- Html field editor input (not needed anymore as HTML editor sends directly to wire)
- Hyvä Commerce logo
- Quill editor
- Cut individual component button
1.0.1 - Hyvä CMS AI Translations
Fixed
- Fixed PHPCS code style issues
1.0.0 - Hyvä CMS Google Maps
Added
- Google Maps Component for Hyvä CMS
1.1.0 - Media Optimisation
Added
- Asynchronous (post hoc) image processing via the message queue, deferring resizing and conversion until after page request
- Image Types: define images in XML for consistency and ease
image_types.xml - Resolution of media store and CDN URLs passed to
getImageUrl() - Various performance improvements
Changed
- Moved configuration to the Hyvä Commerce
system.xml<tab>
1.1.0 - Image Editor
Changed
- Moved configuration to new Hyvä Commerce
system.xml<tab>
1.0.3 - Menu Builder
This release is a minor update to Hyvä Menu Builder for bug fixes.
Added
- Menu item, footer column title, and menu content labels (and menu item links) can now be translated inline — previously only link labels were translatable, and only via the Translations panel. Many thanks to Romain Lafourcade (Razorfish) for his contribution.
Fixed
- Mobile menu slide-out now renders in the top layer correctly. Removing
x-bind:openpreventsshowModal()from finding the dialog already open, which was causing the panel to appear beneath the header. Thanks to Matt Powell (Digital Studio NW) for reporting this.
1.0.2 - Menu Builder
This release is a minor update to Hyvä Menu Builder to improve cache handling for better performance.
Added
- Shared ESI/Varnish block caching across pages for top and footer menus, configurable in the admin via the design configuration settings for the top and footer menus.
1.0.1 - Menu Builder
This release is a minor update to Hyvä Menu Builder to bump the hyva-themes/commerce-module-cms dependency to ^1.2.0.
Changed
- Bump
hyva-themes/commerce-module-cmsdependency to^1.2.0.
1.0.0 - Menu Builder
This release is the first major update to Hyvä Menu Builder, focussed on improvements and bug fixes. Highlights include, Text-only menu items, Initial setup dialog for Menu entities, Icon for Menu entities in the tab bar and Navigator of the CMS Liveview editor, Support for import/export of Menu entities and lots more.
Added
- Text-only menu items. A "Text Only" toggle on a Menu Item swaps the link picker for a plain label and renders the item as text instead of a link — no more faking non-clickable headings with a
#URL. Text-only items still hold child items, so they work as column headings above a group of links. - Initial setup dialog for Menu entities
- Icon for Menu entities in the tab bar and Navigator of the CMS Liveview editor
- Support for import/export of Menu entities
Changed
- Breaking change — Menu Content is now a styled container, not a built-in grid. Drop Grid/Columns inside for real grids. Controls the position of the menu content. Reconfigure existing blocks after upgrade.
- Position of menu lock button in preview mode to be right 4px from the top avoid overlapping with the liveview-ctx-menu.
- Adopt Hyvä CMS 1.2.0's scoped Tailwind compiler. Requires Hyvä CMS 1.2.0 or later. Menu Builder now implements
getScopeSelector()(.hcms-menu-{id}), so menu CSS is scoped by the compiler at save time.
Fixed
- Menu VersionHistory and Tailwindcss REST responses omitted
id(and VersionHistory omittedentity_type) because the getters weren't declared on the@apidata interfaces — so GET/PUT/DELETE by id were unusable. AddedgetId()/setId()to both interfaces andgetEntityType()/setEntityType()to VersionHistory. - Remove
header_container_after_hyvmbcontainer from checkout layout - Menu breakpoint visibility broke on Magento 2.4.8 —
escapeHtmlAttrmangled the media query so the CSS was invalid and the menu never showed. Switched the values inside<style>toescapeHtml, and moved the block inside the menu element so Liveview replaces it on each edit instead of leaving orphaned copies behind. - Ensure mobile menu Alpine components are registered in CMS Liveview previews by defining
initMobileMenu/initMobileSubMenuas global factory functions. - CSS Classes from Advanced Settings to be Applied to Desktop Menu Templates (thanks Lars de Weert - Made by Mouses for the contribution)
- Mobile menu lock functionality in preview mode
Removed
- Removed Pagebuilder Migration Option from Hyvä CMS editor main dropdown menu
1.2.1 - 2026-05-26
The 1.2.1 release is primarily to support PHP 8.5 and Magento 2.4.9. It includes various bug fixes for Hyvä CMS.
1.0.3 - Commerce Module
Added
- User settings interface for storing user preferences on Hyvä Commerce features.
1.1.2 - Hyvä CMS
Changed
- Allow installation on PHP 8.5 & Magento 2.4.9 by removing the upper bound.
- Renamed layout handles from
default.xmltohyva_default.xml. Many thanks to Louis McHugh for the contribution!
Fixed
- Liveview editor: added
liveview_cleanlayout fallback so non-allowed assets (e.g. require.js) are still removed when plugins onPage\Config\Structureare not applied (e.g. Magento patch ACSD-66153 bypasses DI). Many thanks to Tatiana Velichko (Monsoon Consulting) and Mykyta Denysenkov (Monsoon Consulting) for the contribution! - Moved the admin asset allowlist plugin from
Page\Config\Structure::getAssets()toPage\Config::getAssetCollection(). The previous hook was silently skipped when patch ACSD-66153 instantiatedStructuredirectly (bypassing DI), letting RequireJS and the adminhtmlstyles.cssleak onto the editor page and break the Quill / Livewire / Magewire UMD bundles. The new hook is the renderer-facing API, so the filter always fires regardless of howStructurewas constructed. Favicon identifiers (icon,shortcut-icon) were also added to the allowlist so the admin favicon renders on the editor. - Scheduling: allow re-adding cancelled entity to same release
- Change scheduling content column to mediumtext for large pages. Many thanks to Alberto Gatto for the report!
- Prevent TypeError on "Save & Duplicate" for CMS Pages/Blocks that have no draft content yet. Many thanks to Finn Reinhardt (Basecom), Tatiana Velichko (Monsoon Consulting) and Mykyta Denysenkov (Monsoon Consulting) for the contribution!
- Reinitialize sortable after paste refresh to fix sort issues after pasting components. Many thanks to Jeroen Alewijns (IO) for the report!
- Rewrite contentId and uid on duplicated CMS page/block content, so that the duplicated page/block can be scheduled in the same release as the original page/block. Many thanks to Edwin Bos (Cream) for the report!
- CMS Page/Block providers: coerce
store_idto an array before reading from it, so the Liveview Editor opens cleanly on Magento 2.4.6-p15 (the patch changedgetData('store_id')to return a scalar in some paths, which brokereset()). Many thanks to Irina Smidt (CustomGento) for the report. - Fix duplicate SQL queries when loading CMS pages / blocks on the storefront: CMS plugins now load Liveview records via
CmsPageProvider/CmsBlockProviderinstead of calling HyväPageRepository/BlockRepositorydirectly.getByCmsPageId()runs a freshgetList()query every time; the providers cache by entity ID for the request. Many thanks to Luke Rodgers (Gene) for the contribution! - Register
CspPolicyCollectoras a proxy inCompositePolicyCollectorto prevent eager collector instantiation during CLI bootstrap (e.g.events:generate:moduleon Adobe Commerce Cloud), while preserving CSP policy collection for HTTP requests. Many thanks to Daniel Delgado (Hiberius) for the contribution! - Fixed an issue where opening the liveview editor for a new CMS block on Magento 2.4.9 left the preview iframe without the Hyvä JavaScript helpers, so users could not add components to a new block.
1.2.0 - 2026-03-16
The 1.2.0 release for Hyvä Commerce introduces the Admin Dashboard and Media Optimisation features.
1.0.0 - Admin Dashboard
Added
- Restructured Module Architecture
- Replaced
Hyva_AdminDashboardBaseWidgetsandHyva_AdminDashboardCustomWidgetswithHyva_AdminDashboardWidgets- Abstract widget types, Alpine components, and templates have been moved to the
Hyva_AdminDashboardFrameworkmodule
- Abstract widget types, Alpine components, and templates have been moved to the
- Replaced
- New Widget Types
average_order_value— Average order value with date intervalsbest_selling_products— Table display with trailing action to reportslaunchpad— Configurable launchpad/quick linksmost_viewed_products— Table with report linknew_customers— Table with customer list linksales_figures— Revenue/tax/shipping breakdownsearch_activity— Search terms table
- Date Interval System
- New
AbstractDateIntervalWidgetbase class with subinterval support - Centralized
WidgetDateIntervalssource model in frameworkdi.xml - 19 intervals from 15 minutes to 5 years (intervals > 1 year disabled by default)
- Each interval has subinterval config with step modifier and date format
- New
- Widget Caching
- Per-widget configurable cache lifetimes via
<cache_lifetime>in widget XML, default value of 86400 seconds AdminDashboardcache class now handles save/load of widget display data
- Per-widget configurable cache lifetimes via
- Widget Auth Utility Class
- Wraps the Magento admin auth model and
AuthorizationInterfaceinto a single injectable dependency
- Wraps the Magento admin auth model and
- New View Models
LocaleSelectedStoreViewsTrailingActionChartWidget/ContentWidget/Input/DynamicRows
- New Controller Actions
Controller/Adminhtml/WidgetInstance/Duplicate.phpController/Adminhtml/WidgetInstance/MassDelete.php
- New Chart System Configuration Options
- Light/dark theme toggle
- Monochrome toggle
- Custom colour palette
- Fill types
- Widget Layouts
- New widget layout handles to improve extensibility and ease customisation
- Widget/Dashboard Actions
- Delete all dashboard widgets
- Reload data for a specific widget instance
- View the widget content in a full screen modal
Changed
- Replaced
Hyva_AdminDashboardBaseWidgetsandHyva_AdminDashboardCustomWidgetswithHyva_AdminDashboardWidgets - The
Widgetview model'sbooleanAttributesarray is now configurable viadi.xmlinstead of being a hardcoded class property - Updated the GridStack library from version
12.2.1to12.3.3 - Refactored custom widget implementations to improve database query performance
Removed
Hyva_AdminDashboardBaseWidgetsandHyva_AdminDashboardCustomWidgetsmodules- Global
descriptiondisplay property
1.0.0 - Admin Dashboard Google CrUX History Widget
Added
- Ability to choose URL from a selected store view
- Option to display data from the origin or the specific URL only
- Ability to choose a date range from available intervals
Changed
- Many improvements to chart implementation and visual output
- Refactored to use the metrics outlined in
di.xmlto manage output and ordering of metrics in the charts
Removed
formatted_datacolumn fromhyva_admin_dashboard_google_crux_historytable and all usage in code
1.0.0 - Media Optimisation
Added
- Viewport breakpoints for resizing images
Changed
- Moved logs to a separate file
- Improved extraction and handling of
widthandheightattributes from image tags - Configuration refactored into dedicated classes per configuration area for improved maintainability
- Moved config interactions over to config classes and separated config xml files for better overview
- Use better defaults for compression on advanced formats
Fixed
- Fixed HTML attribute parsing to correctly handle attributes without quotation marks
- Prevented double escaping of image URLs during automatic replacement
1.0.2 - Commerce Module
Changed
- Loading AlpineJS in the admin panel now follows the same logic as the frontend.
- Alpine is now loaded using the
hyva_adminhtml_alpinehandle, buthyva_adminhtml_alpine_cspremains for backwards compatibility.
1.1.1 - 2026-02-16
The 1.1.1 release for Hyvä Commerce is primarily a bug fix release for Hyvä CMS.
1.1.1 - Hyvä CMS
Added
- Add console commands to show information about CMS components and fields. These commands help document the components and fields available in Hyvä CMS at the project level, both core and custom, and are useful when creating new components and fields with AI assistants, skills, and other tooling.
hyva:cms:describe-componentsCLI command – Describes enabled CMS components with name, label, description, and category. Supports--format=jsonfor full config output and an optional component name filter.hyva:cms:list-fieldsCLI command – Lists Hyvä CMS field types (core and custom). Supports--format=jsonfor full config output and an optional field name filter.hyva:cms:list-disabled-componentsCLI command – Lists disabled CMS components.
Fixed
- Fix component validation to allow disabled components to validate for backward compatibility with existing content.
- Fix undefined $hyvaCsp on Luma storefront
- Use Magento_Backend::content for liveview editor ACL resource to resolve issues gitlab issue #20 with ACL configuration.
- Fix Firefox liveview preview error on initial about:blank load
1.1.0 - 2026-02-03
The 1.1.0 release for Hyvä Commerce introduces Hyvä CMS translations (with AI), REST and GraphQL endpoints for Hyvä CMS, new Hyvä CMS components, many improvements and various bug fixes for Hyvä CMS.
1.1.0 - Hyvä CMS
Added
- REST and GraphQL endpoints for Hyvä CMS Page and Block.
- Hyvä CMS translations (with AI).
- Container class to TW safelist. This will reduce issue people experience when using the liveview editor and not having configured tailwind.browser-jit-config.js`.
- Add
context_flagsto the JSON schema for use in various contexts, e.g. restricting root components for specific entities. - Restrict root components for entities which pass the
allowed_root_component_context_flagsproperty when emitting theinit-content-propertiesevent. - Support
componentPath=falsefor explicit template usage When componentPath is set to false, the Element block will now call theparent::getTemplate()method. This enables blocks to be created viacreateBlockwith an explicit template set viasetTemplate(), allowing components to render child components or sections of their markup with custom templates set in the component template. e.g.<?= $block->getLayout()->createBlock(\Hyva\CmsLiveviewEditor\Block\Element::class,'',['data' => [...]])->setTemplate('Vendor_Module::elements/custom-template.phtml')->toHtml() ?> - Added layout blocks for injecting scripts in liveview preview mode:
- Added
after-body-startblock for early script injection - Added
additional-scripts-previewblock for conditional script loading - Both blocks only render child HTML when in valid preview context
- Added
- Add support for
wbrtag to richtext - Add split view for preview mode.
- Restore last view used in the liveview editor by entity reference when loading the liveview editor.
- Add New Marquee Component
- Category Field to select multiple category IDs for a Hyva CMS Component. (thanks Antoni Tormo - Onestic for the contribution)
- Widget icon for component.
- Add New Card Component, with two styles
- Added new field type Url
- Add New Embed Component for Videos
- Added support for
max_nesting_levelconfiguration in component definitions. When configured, children containers and related UI elements beyond the specified nesting depth are automatically hidden via CSS rules. - Added
include_child_category_productsattribute to product_slider component (thanks Alex Berger for the contribution) - Button to remove all categories and products from field values.
- Options to create new pages, blocks from the Hyvä CMS Editor Navigator.
- Added aria-label to visibility toggle button.
Changed
- Updated README.md to link to the Hyvä Commerce CMS documentation to avoid repetition and for consistency.
- Text Class added to component now added in PHP via addField method instead of in JavaScript.
- saveState is used less frequently by combining the action with the content update.
- Skip preview update if we're only saving state.
- Sidebar styling improvements (add component button stays in place when scrolling + component tree gradient shadows)
- Give more space to the component list dialog on smaller screens.
- Pagebuilder migration now no longer experimental and does not require toggle in editor preferences.
- Update link-handler to show category path.
- Use Hyvä Default Theme Slider as the template for the Product Slider, to use the same style between Themes.
- Applied
display: contentsto Hyvä CMS liveview wrapper divs so they can be removed from the store-front while kept in the Editor preview without affecting layout on either, ensuring that the preview matches the actual store-front result. This results in less nesting and markup added to the store-front when using Hyvä CMS, with performance improvements from reduced DOM complexity.- BREAKING-CHANGE: severity level low:
Frontend customisations that rely on the Hyvä CMS liveview wrapper divs (e.g., CSS or JavaScript targeting these divs, or using them for child layout) may break. Most users are unaffected. To restore the previous behaviour, enable legacy liveview-content wrapper divs in Store Configuration > Hyvä CMS > Advanced.
- BREAKING-CHANGE: severity level low:
- Refactoring of repository classes:
- Replace date() calls with DateTime dependency injection
- Add PHPDoc blocks to resolve linting errors
- Refactor delete methods with improved type annotations
- Affects Block, Page, Scheduled repositories.
- Component edit panels are now loaded when required, rather than pre-loaded when the liveview editor is initialized or when Magewire updates. This significantly improves performance by reducing the LiveView Composer response payload and ensuring only the required panels are rendered in the DOM.
- BREAKING-CHANGE: severity level low:
Custom field type templates that read validation state from the Magewire component (e.g.$magewire->errors[$uid][$fieldName]) will no longer show validation errors in the editor panel. Field type templates are now always rendered by the panel block, so the Magewire component is not in scope when panels are loaded on demand. Migration: Read validation state from the block instead:$hasError = $block->getData('hasError');and$errorMessage = (string) ($block->getData('errorMessage') ?? '');. Remove theuse Hyva\CmsLiveviewEditor\Magewire\LiveviewComposer;statement and the@var LiveviewComposer $magewireannotation from your custom field type template if they are only used for errors. See Creating custom component field types for the current pattern.
- BREAKING-CHANGE: severity level low:
- Open panel automatically when adding a new component when enabled in preferences (to work with updated panels)
Fixed
- Prevent time_scheduled column from auto-updating on record update. Depending on MySQL/MariaDB version, it may auto-apply ON UPDATE CURRENT_TIMESTAMP to the first TIMESTAMP column even when on_update="false" is set. Setting the column to its current value prevents this auto-update behaviour per MySQL documentation.
- Component visibility for nested components which use a parent's template.
- Corrected duplicate detection in CMS observers so Hyvä CMS content is copied when duplicating pages/blocks, i.e. "Save & Duplicate".
- Fixed default text and heading styles from effecting the other CMS blocks
- Accordion from not closing other items when opening one.
- Fix type error when accessing scheduling editor with Tailwind JIT disabled
- Fixed show_if property to handle null values correctly.
- Fix JIT style sheets to load before closing head tag.
- Scheduling so it automatically saves the content before scheduling.
- Scheduling of CMS blocks bug where it was not possible to update a blocks is_active setting when scheduling it for release.
- Overflow issue in widget field type when using long option values.
- Cut off tooltips in version history list and sidebar component list.
- Open dropdowns in component list after adding components.
- Fixed comment wrapping in field type boolean
- Fixed reverse option in Banner split variant
- Fixed searchable select field type to handle duplicate option values.
- HTML editor text position not matching preview position (thanks to Nichita Blanari for the help of testing and detailed reporting)
- Suppress known Alpine.js errors in preview mode.
Removed
- Remove symfony/http-foundation dependency. To avoid errors from transitive dependency on new magento installs. The http-foundation was only used to check two HTTP constants for Livewire.php, to reduce the number of dependencies and avoid conflicts with other versions of the library, these two constants were added directly to the Livewire.php file.
1.0.0 - Hyvä CMS AI Translations
Added
- Added: ability to use AI for Hyvä CMS Translations
1.0.2 - 2025-11-11
The 1.0.2 release for Hyvä Commerce introduces scheduling functionality for Hyvä CMS content, allowing content to be scheduled for future publication, along with many improvements and various bug fixes for Hyvä CMS.
1.0.2 - Hyvä CMS
Added
- Integration tests for VersionHistoryManager
- Link to image component
- Add toggle for adding prose class by default
- Section for editor settings in stores configuration
blockListSizeparameter inCmsBlockssource model to protect against performance issues- Navigator for CMS pages/blocks
- Editor preference for "Confirm Before Publishing" - opt-in confirmation modal when publishing changes
- Search in component selector
- Larger editing modal for richtext field
- Allow components to be excluded in children > config > excludes (see slider component)
- Conditional visibility rules for fields in the Liveview editor
- Added datetime field type
- Automatic strict CSP frame-ancestors header for multi-domain setups (configurable setting, enabled by default)
- Note: Previously these CSP policies required manual configuration in
csp_whitelist.xmland enabling strict CSP mode. This is no longer required and may be removed once thehyva_cms/general/auto_csp_frame_policiesconfiguration is enabled. - Note: If you have built a custom integration extending Hyvä CMS for another custom content type, to support Automatic CSP Frame Policies on additional routes which include the Hyvä CMS preview,
you must add the routes as an argument to
Hyva\CmsLiveviewEditor\Model\Security\IsValidAdminPreviewRequestpassed via dependency injection, i.e.etc/adminhtml/di.xml. - For more information, see the documentation.
- Note: Previously these CSP policies required manual configuration in
Changed
- Improved template override logic for components overridden in
hyva_cms/components.jsonto prefer JSON defined template paths and falling back to the stored paths. Includes support for variant and legacy templates. - Update Alpine Dialog to
v2.2.1 - Bump
hyva-themes/magento2-cms-tailwind-jitversion dependency to^1.2.4to ensure Tailwind JIT iframe receives CSP frame-ancestors header when previewing version history by appending parent windoweditor_viewhash parameters. Required for 'Automatic strict CSP frame-ancestors header for multi-domain setups' feature adding in this release. - Better-looking sidebar (ellipsis / animate)
- Building CMS page URLs from identifier, avoiding an extra trailing slash
- Replaced
rakit/validationwithmagewirephp/validation, a fork to support PHP 8.4 - Added support for Hyvä 1.4 and Tailwind 4
- Updated Hyvä theme detection to support
>=1.4.0and older versions, supporting both service class check and legacy theme inheritance checks - Editor preferences declared using XML
- Component selector built with AlpineJS instead of PHP
- Component selector bypassed if there's only 1 available component
- Optimised richtext file
- Refactored JavaScript template organization and moved to
page/js/utilsdirectory for better maintainability and reusability, specifically with admin dashboard widgets which require date formatting functionality. - Enabled Page Builder migration tool by default for new installations. Can be disabled in the stores configuration or editor preferences.
- Added better Tailwind 4 support.
- Image sizes for components with fixed size images. Without this change, images are only scaled down by the browser, but loaded in full size. The image type (second param of getResponsiveImageData) isn't implemented yet and has no effect. Effected components: usp/card, usp/icon, usp/compact, testimonial/card, testimonial/simple.
Fixed
- Fixed USP icon image compression when text content is long.
- Fixed local time formatting for version history
- Broken CMS pages in link handler dropdown
- Link handler dropdown width being too small
- Prevent panel closure via Escape key while a modal is open.
- Add missing
>entity decoding in JitCssProcessor to properly handle escaped greater-than symbols in Tailwind CSS classes - Fixed infinite loop in Tailwind CSS prepending when previewing version history with Hyva CMS disabled and existing PageBuilder content
- JSON Schema validity check for version-history
- Stop deleting siblings children when child is cut from component sidebar
- Sync issues between component tree Magewire and Alpine (switch Alpine usage to vanilla JS)
- Missing semicolons from Alpine attribute field for colorpicker
- Optimised findComponentByUid to use utility which also caches
- Redirection to dashboard from Liveview editor when content does not exist
- Fix initial skip for CSP content updates to consider non-empty content
- Fix previewUrl for configured home page path so that
cms_index_indexlayout handle is applied - Fixed cache invalidation for CMS blocks in admin editor. Newly created or deleted CMS blocks now appear/disappear immediately in the editor CMS block's component dropdown without requiring manual cache refresh.
- Quill link overflow issue
- Overflow dialog overflow issue
- Fix drag-and-drop with object-based children. Handle children stored as objects in component search and convert to array when updating.
Removed
- Default values in the banner templates
- Shadow effect removed when clicking on component (only shown when dragging)
1.0.1 - Commerce Module
Added
is_admin_login_pageLayout XML argument to manage the selection and output of the default or login logos on an admin page, and set the login logo to be used on all pages that include theadmin_loginhandle.
Changed
- Updated the (now deprecated) admin branding method (
\Hyva\Commerce\ViewModel\AdminBranding::isAdminLoginPage) that checks whether to use the default admin logo or login admin logo to include a condition for 2FA pages, for backwards compatibility. - Updated the
Hyva_Commerce::page/header.phtmltemplate to use the newis_admin_login_pagelayout handle argument instead of the deprecated admin branding method.
1.0.1 - 2025-08-26
The 1.0.1release for Hyvä Commerce includes various features, bug fixes and improvements.
Please see the release notes for more details.
1.0.1 - Hyvä CMS
Added
- Page Builder migration tool
Changed
- Updated package.json with scoped name and correct main file so that it can be imported more easily when customizing the Liveview editor css from another module. Many thanks to Antoni Tormo (onestic) for the contribution!
- Updated design for version history.
- Header for image handler.
- Menu string/icon/position changes.
Fixed
- Form key check for Liveview editor when using custom admin URL.
- Ensure unique block name for CMS page Liveview editor to prevent ID conflicts on some environments (likely due to installed modules).
- Fixed preview query for content AJAX endpoint on new content creation.
- Move CMS block and page plugin declaration from global
etc/di.xmltoetc/frontend/di.xmlto prevent area code errors during setup:upgrade when B2BAddAccessViolationPageAndAssignB2CCustomersdata patch is being applied. - Fixed 404 redirection on invalid emptypreview & pagepreview requests.
- Fixed issue with theme selection on CMS page core settings.
- Corrected validation rules for CMS page core settings.
- Preserve existing links when reopening rich text editor.
- Fix missing class option in Banner.
- Deleted products/cms/categories will no longer give error on update.
1.0.1 - Image Editor
Added
- Dispatch an event after the uploading (saving) of an edited image to allow for external, decoupled extensibility.
1.0.0 - 2025-07-11
1.0.0 is the first General Availability release for Hyvä Commerce that includes various features, bug fixes and improvements.
Please see the release notes for more details.
1.0.0 - Admin Theme
Added
- SVG loader image to match the one used in Hyvä Theme
- Missing arrow icon files
- Improved responsiveness of styles at tablet size breakpoints
- Translation CSV file
Changed
- Directory restructure and CSS refactoring for better support of child/alternate theme variations
- Various color and layout CSS updates to improve extensibility
Fixed
- Styling fixes to improve output when using RedChamps Clean Admin Menu
- Margin issue when adding sub groups to menus with top-level items only
- Vendor icons visibility in system configuration
- Alignment of chevron icons
Removed
- A number of styling fixes that addressed issues in the child Mage-OS theme have been removed as they are included in the Mage-OS M137 Admin Theme
1.2.0release.
1.0.1 - Admin Theme Module
Fixed
- Update LICENSE file to latest version
- Add missing
module.xml<sequence/>forMageOS_ThemeAdminhtmlSwitcher
1.0.0 - Commerce Module
Added
- Translation CSV file
Changed
- Simplified
system.xmltranslatable strings for admin logo image upload fields
Removed
- TODO comment for missing logo variations that were added in the previous release
module.xml<sequence/>forMageOS_ThemeAdminhtmlSwitcher(now inHyva_AdminThememodule)
1.0.0 - Hyvä CMS
Added
- Image lazy loading field for 'Testimonial' and 'USP' components
- Translation CSV file
- Support for default LucideIcons included in magento2-theme-module:1.3.15 module
- Fallback system for icons (it will fallback to magento2-theme-module icons if not found in the module)
- Support for media optimisation (Hyvä Commerce)
- Lazy loading field added to Testimonials and USP components as missing and deemed important for performance
- Whitelist functionality for fields not mapped in
components.json(e.g.user_defined_name) - Heading tag selection for
Slidercomponent - Improvements for CMS Blocks store switcher
Changed
- All image output (for 'Image', 'Banner', 'Testimonial' and 'USP' components) now uses the
\Hyva\Theme\ViewModel\Media::getResponsivePictureHtml()method added in the Hyvä Theme1.3.15release- This provides the base for future integration for the Hyvä Commerce Media Optimisation functionality, without requiring a hard dependency
\Hyva\CmsLiveviewEditor\Block\Element::processImage()method has been deprecated as part of this implementation as is no longer required- The previously deprecated 'CTA' and 'Banner (basic)' templates have not been updated and still use the above deprecated method
- Changed Link Button variant
nonetoas linkto be consistent with the Banner CTA styles - Moved icons to the
Hyva_CmsLiveviewEditor::svg/lucidedirectory. - Refactoring and method additions made to the \Hyva\CmsLiveviewEditor\Block\Element class to provide support
- Slideouts now full height (page settings / components edit)
- Refactored store switching logic in liveview editor controllers to be more reliable. This was working previously but not on all environments.
Fixed
- Issue where 3rd party modules that inject incompatible scripts via default.xml layout handle (e.g., RequireJS) were breaking the liveview editor. e.g. Mageplaza_Core::js/help.js
- Filter page assets added to the head section in liveview editor.
- Add custom liveview-empty.xml page_layout to prevent 3rd party modules adding assets to the body section.
This is a backward-compatibility breaking change. If you have customized the Hyva CMS Editor admin page and added assets via the
liveview_editor_index.xmllayout handle, you must whitelist those assets in the PageConfigStructurePlugin's allowedAssets array via di.xml. Seeliveview-editor/etc/adminhtml/di.xmlq for an example. - The 'Link' field now uses URL rewrites for product and category links, resolving issues with 404s where URL suffixes or custom URL rewrites were added
- Removed translatable strings from the Height source model as numeric values and '0' value causes
bin/magento i18n:collect-phrasesto error - Fix duplicate block ID error for CMS Block component (affected certain environments only)
- Issue of full Varnish cache flush when publishing CMS content by replacing direct fullPageCache->clean($tags) calls with clean_cache_by_tags event dispatch, avoiding adminhtml_cache_refresh_type trigger down the stack.
- Issue where the content state was not set correctly when a new page was created from the editor without any content added.
- Fix preview interactivity after restoring version history item.
- CTA component and old Banner template ignored as have been deprecated
- Type errors in
Element.php - Select All now selects top level items
- Text truncation in store switcher
- Fix handle missing form_key in iframe version preview requests for TW JIT Content update
Removed
- Redundant cache handling logic from
Hyva\CmsMagento\Model\CoreSettings\Blockas it is handled in the repository save method. - Removed duplicated icons stored in the
Hyva_CmsLiveviewEditor::svg/lucidedirectory.
1.0.0 - Image Editor
Added
- Notice to module configuration to denote the 'new' media gallery is a requirement
Changed
- Image editor background now uses a checkerboard effect to better support different background colors in admin themes
- Various CSS enhancements to better support inheritance of colors from the active admin theme
Fixed
- Images are now loaded into the image editor using the admin URL, resolving a CORS issue when admin URL differs to the storefront
Removed
- Translations from the CSV file that were not unique to this module
0.6.0 - 2025-06-26
0.6.0 is a feature and compatibility release for Hyvä CMS that introduces significant improvements, performance optimizations. This release includes backward-compatibility breaking changes that require updates for custom content type extensions and custom components using children fields.
Please see the release notes for more details.
0.6.0 - Hyvä CMS
Added
- Added Tailwind safelist to
tailwind.config.jsand updated JIT compiler to remove safelist classes from generated stylesheets. i.e. removes theproseclass from the generated stylesheets as it include a lot of style rules which already exist in most themes. - Support for PHP 8.4 For more information, please refer to merge request #182.
- A unique liveview_preview key per version history item
This is backward-compatibility breaking change.
Projects that have extended Hyvä CMS for custom content types must update theirHyva\CmsLiveviewEditor\Api\ProviderInterfaceimplementations to be compatible with this version. - A signout dialog which is shown when admin session ends, the session checks are by
session_lifetimetimeout or invalid request responses. - Additional checks to the content generation controller for additional validation of the request.
renderBlockIdutility class inElement.php"require_parent"option in components to hide from full list, this can be show if a parent passes it in "accepts"- Image dimensions to the image component.
- Added info message in settings slideout to clarify that saving content settings updates both the draft preview and the enabled storefront block/page.
- Cache for components list
hyva_cms- Patch implemented to enable on production/default mode (disabled on developer)
- Caches all collected components (components.json)
- Tooltip utility class to ensure tooltip starts from other side
- Re-added generate urls command
- Batching Url requests (UrlBatchProcessor)
Changed
- Formatting of changelog to match the Hyvä documentation, i.e. use
*instead of-for bullet points. - Moved component template variants from JSON to PHP source models for better plugin extension support.
- Updated components
- Columns (text + bg color)
- Html (classes + block id)
- Slider (default block id + multiple instances)
- Product slider (classes)
- Testimonial (block id)
- Cta (heading/paragraph colors + loading to advanced)
- Cms block (remove bg color)
- Banner (alignment, remove color, add heading/subtitle color, remove default typography)
- Text (block id + classes)
- Spacer (block id change + classes)
- Changed how children fields are declared in the components.json file. Children fields must now be declared at the root level of the component declaration instead of within the content section. This enforces the logical hierarchy and prevents UI issues. This is a backward-compatibility breaking change. Projects with custom components using children fields must update them to follow the new schema. See upgrade documentation for migration assistance.
- Moved page/block settings tab to slideout (seperated from main)
- Updated UX (focus states for header buttons)
- Refactor preview url params to use
liveview_previewinstead of bothkey&is_liveview_preview - Changed default value of heading component to
h2fromh1. - Introduced a Call to Action (CTA) component as a variant of the banner
- Includes both Split and Text layout options
- Added configurable text and content alignment options for banner elements.
- Enhanced banner functionality to support Button components, with a fallback to standard link behavior.
- Refactored JIT CSS classes.
This is backward-compatibility breaking change.
Projects that have extended Hyvä CMS for custom content types
and which support Tailwind JIT must update their implementations to use
Hyva\CmsLiveviewEditor\Model\Tailwind. - Uses native checkbox as switch/boolean toggle instead of a button
- Replaces JS accordion in Page/Block settings for Native HTML Details Accordion
- UX improvements, related to A11Y, including more consistency in button styles
- Component Panel close button icon, to avoid having two x icons close to each other
- Magento constants for filter values
- Move Url Models to
Model/Urlfolder - Refactored status indicator in the header to use different colours and to give more meaningful information.
Fixed
- Bug where draft content for blocks were being shown in page preview.
- Text change in header of widget handler
- The Liveview editor setting is no longer disabled when saving CMS Pages or Blocks when the
is_liveview_enabledkey is not present in the payload.
This provides compatibility when using Adobe Commerce Content Staging to schedule updates for other block/page settings (i.e. excluding Hyvä CMS content) as well when pages/blocks are saved via other methods (e.g. custom code or via APIs). - Issue where image dimensions were not being preserved when the same image was selected in the image handler.
- Double aria alert announcement fix
- Fix empty preview toggle component list button to be CSP compatible
- Children quick actions add button passes accepts correctly
- Overflow issue with tooltip on right side
- CORS issue for some multi-site setups by reverting to using admin domain for building ajax endpoint to generate content.
- Fix TW JIT issue where classes which included the characters
&and,were not being applied properly to the generated CSS. - Contrast A11Y issues with colors
- Fixed extra label in icons
- Link handler
selectbox, by using interactive element - Landmarks with proper tag and labels
- Tooltip label value, now uses the aria-label for visual users only, so it is not used double.
- Better indent
liveview.phtmlfile - Fix
z-indexto show header dropdowns while component slide-out is open - Copy paste issue with children (component ordering issue)
- Link tooltip fix
- Added missing block id to spacer
- Url Params fix (force string)
- Bumped cms-tailwind-jit to resolve an issue preventing the TW JIT iframe from loading on the storefront for compiling version history CSS, especially in cross-domain Admin/Storefront or CSP-restricted setups.
Removed
- Legacy patching tool (legacy items will be handled automatically instead of a manual patch)
- Tabs in sidebar
- CTA component declaration
- Unrequired filter class usage
0.5.2 - 2025-06-20
0.5.2 is a bug fix release for the Hyvä Admin Theme and base Hyva_Commerce module that addresses issues from the previous version. Please see the release notes for more details.
0.1.3 - Commerce Module
Removed
- The default value to make the Hvyä Commerce Admin Theme the 'active admin theme' has been removed from
etc/config.xml
0.1.1 - Admin Theme
Changed
- The admin theme now depends on the
Hyva_AdminThememodule and no longer depends on theHyva_CommerceorMageOS_ThemeAdminhtmlSwitchermodules, as these are dependencies of theHyva_AdminThememodule
1.0.0 - Admin Theme Module
Added
- The default value to make the Hvyä Commerce Admin Theme the 'active admin theme' has been added to
etc/config.xml - Dependency on the
Hyva_CommerceandMageOS_ThemeAdminhtmlSwitchermodules
0.5.1 - 2025-06-17
0.5.1 is a feature release for initial versions of Image Editor and Admin Theme. Please see the release notes for more details.
0.1.2 - Commerce Module
Added
- Set Hyvä Commerce Admin Theme as default
- Hyvä Commerce default admin logos
- Ability to add custom login, menu and favicon admin logos
0.1.0 - Image Editor
Added
- Integration of Filerobot Image Editor into the Magento Media Gallery
- Ability to save duplicates and revert to original images
- Hyvä CMS support
0.1.0 - Admin Theme
Added
- Admin theme based on the Mage-OS 137 Admin Theme
0.5.0 - 2025-06-04
0.5.0 is a bug fix release for Hyvä CMS that addresses issues from the previous version. Please see the release notes for more details.
0.5.0 - Hyvä CMS
Added
- Nothing
Changed
- quill downgrade 2.0.3 to 2.0.2 to fix issue in richtext component.
REF: https://github.com/slab/quill/issues/4509 - Refactor store switcher into reusable component to be used in both toolbar and version history.
Fixed
- Undefined array key in usp variants
Many thanks to Klaas van der Weij (Sparkable) for the contribution! - CSS cascade conflict where JIT-generated classes, e.g.
cmsp1_flex, overrode template Tailwind classes, e.g.lg:grid, breaking responsive layouts.
This is a backward-compatibility breaking change. Projects that have extended Hyvä CMS for custom content types must now call the TailwindCssJit::processContentWithStyles() method rather than TailwindCssJit::prependContentStyles(). JIT styles are now injected in the head section before the main stylesheet to preserve proper CSS cascade order. - HyvaCompatibleOptions now only excludes Hyva/reset theme from design options. The preview store view allows all themes which are based on a Hyva theme including Hyva/reset, unless
restrict_preview_to_hyva_themesis disabled. - JavaScript destructuring error in image handler when imageOptions is null
0.4.0 - 2025-05-29
0.4.0 is a feature and maintenance release for Hyvä CMS which introduces Tailwind JIT compilation support, an much improved link field, several bug fixes and improvements. Please see the release notes for more details.
0.4.0 - Hyvä CMS
Added
- Component visibility control to show components in editor but hide them on frontend
- Cut in the toolbar
- Cut components from the quick actions
- Copy components from the quick actions
- Add children direct from the quick actions
- New controllers to fetch values for the link handler
- New options in link handler
- Command to patch data for Hyva Liveview version upgrades
- Improvements to layout rendering
- Added "Edit - Hyvä CMS" option to the beginning of actions column in the CMS Pages and CMS Blocks grids.
- Image editor event to open/close the image handler sidebar
- Config option to restrict preview to Hyva themes only. As only Hyva themes are supported in the editor at the moment it is enabled by default. Until Luma themes are supported this setting can only be changed in config file rather than from the admin panel.
- Search as you type filter to the store switcher
Changed
- Switch Tailwind JIT compilation to use hyva-themes/magento2-cms-tailwind-jit for consistency across Hyvä products, class prefixing, custom config/CSS support,
support for multiple themes, better scalability and portability.
This is backward-compatibility breaking change. Projects that have extended Hyvä CMS for custom content types must update theirHyva\CmsLiveviewEditor\Api\ProviderInterfaceimplementations to be compatible with this version. - Simplified liveview preview content loading on Magento admin forms using just a postMessage, AJAX call was redundant.
- Used consistent Page loaders and messages across the editor matching brand colour guidelines.
- Enhanced message system with dynamic status updates for improved user feedback. Maintained legacy events.
- Removed the custom breakpoint options from the spacer component and replaced them with tailwind default values.
- Replaced text color on the accordion component with seperate heading and content color settings on accordion items.
- Refactored USP to component to include text and background colors.
- Added text color options to the testimonial componenet.
- Updated UX for the link handler
- Updated component templates to use the new link handler
- Using controllers instead of GraphQL for handlers
- Minor UX updates to the image handler
- Add prose class to richtext component by default
Fixed
- Sharable Preview URLs which were over a day old.
- Duplicate layered nav filters when a Hyvä CMS block is used on the page
- Slider component layout bug using previous method for adding children
- Removed the custom breakpoint options from the spacer component and replaced them with tailwind default values.
- Replaced text color on the accordion component with separate heading and content color settings on accordion items.
- Refactored USP to component to include text and background colors.
- Added text color options to the testimonial component.
- Sorting on CMS Pages and CMS Blocks magento admin listing grids.
- Newly created content in the editor from returning to a new page or block form in the magento admin. Now it returns to the correct page or block form.
- Removed logic setting the return URL from the editor. It is now handled by the Hyva_CmsMagento integration module so that it may now be set by other integration modules. Default return paths are set in the editor incase integration modules do not set them.
- Update edited image preview to use a cache busting parameter to force reload the image.
- Fixed issue where bullet lists were not converted to ul tags in the richtext component.
0.3.0 - 2025-05-06
0.3.0 is a feature release for Hyvä CMS that introduces new components, enhanced validation capabilities, and CSP support, along with several bug fixes. Please see the release notes for more details.
0.3.0 - Hyvä CMS
Added
- Widget component
- CSP support for frontend scripts used by component templates.
- CSP support for liveview editor script for live updates to work with a Hyvä CSP theme.
- Improvements to field validation.
- Option to use data-[validation rule] attribute to avoid browser API validation.
- Options to use data-[validation-message] attribute to set custom validation messages.
- Feature to allow preview editor to focus on non-input as well as input fields when editing content.
- Gitlab issue templates
Changed
- Stop closing modals when clicking the backdrop
- Move block_id to advanced section in all components
- Added none option the the button component
- Synced Slider Basic styles with UI version
- Field types now require wrapping in a
#field-container-[uid]_[field name]div for frontend validation.
This is backward-compatibility breaking change for any custom field type templates which may have been added to your project. See the documentation for more information how to create a custom field type template.
Fixed
- Validation for cms_block
preview_url_keyto allow .html suffix - Preview url validation caused by category id conflict with Hyvä CMS entity id
- Removed random JS debugger statement
- Translate a string (All)
- Fix JSON in Alpine.js x-data attributes breaking during CMS directive processing
- Preview handling to support CSP-compliant themes
- Empty href in button component
- Fix to validate against the correct value array vs string for links, images, etc.
- Fix formatting & positioning of error messages to work better with frontend validation. Allows custom positioning of error messages.
- Fixed issue where duplicate element IDs could occur in ROOT.phtml by moving child block rendering logic to a ViewModel, ensuring compatibility regardless of block class.
- Specificity for Columns Component styles, allowing custom style override
- Fixed issue caused by typo in iframe message type check, causing invalid preview URL message to be shown
0.2.0 - 2025-04-17
0.2.0 is a maintenance release, mostly focused on bug fixes. Please see the release notes for more details.
0.2.0 - Hyvä CMS
Added
- CSP Support to snap slider plugin, to avoid any errors in the checkout & Hyvä CSP Default Theme
Changed
- Accordion component refactoring & renaming
This is a backward-compatibility breaking change
Please refer to the 0.2.0 upgrade notes for more information on how to upgrade - Composer requirements to allow Symfony HTTP Foundation 7.0 for Magento 2.4.8 compatibility
Fixed
- Hyvä theme module dependency in composer.json
- Stray JavaScript debug statement
- Show correct status when new content is created i.e. save/draft
- Show warning when content is enabled but has no published version
- Incorrect warning: "Your changes are published, but the content is disabled" shown when new content is created and not yet published
- Regex validation for page settings on
url_keyto allow underscores - PHP 8.3 issue where null values in regex validation triggered
preg_match()deprecation exception in Magento 2.4.8 - Magewire compatibility with store codes in URLs
0.1.0 - 2025-04-11
0.1.0 is the initial Early Access Release of Hyvä Commerce. Please see the release notes for more details.
0.1.0 - Hyvä CMS
Added
- All initial features of our new CMS solution
- See the release notes for more details
Changed
- Nothing changed
Removed
- Nothing removed
0.1.1 - Hyva_Commerce
Added
- Ability to include Alpine.js within the Admin Panel (via Layout XML handle)
- Extension point for including Hyvä Commerce related messaging via section data (no messaging implemented at this time)
- Abstract Type Factory and Type Mismatch Exception classes (will be utilised as part of Admin Dashboard)
Changed
- Nothing changed
Removed
- Nothing removed