theme:list, plugin:list, and mix:list now display nicely formatted tables.mode: grid, columns, and rowHeight options.Snowboard.url().asset() that will use the configured app.asset_url value to generate URLs to asset files.options: author.plugin::lang.departments).codeeditor FormWidget via the scrollPastEnd option that allows the editor to scroll past the end of the document by the specified number of lines.RelationManager FormWidget to simplify rendering the RelationController.create:migration with columns defined from the field configuration for the provided model.showSetup in list views of the RelationController.create:test command.bootstrap/cache folder to the wintercms/winter repo as it is expected to exist by Laravel core commands related to caching.migrations table is not yet present on it, the application will also be considered in a protected state and only elevated plugins will be loaded. This is to prevent issues with commands that may attempt to access the database before migrations have been run.filterFields() and model.filterFields() will now be called immediately before the Form widget returns the save data in getSaveData().RelationController to enable more easily extending the default footer used in RelationController modals.App::normalizeCachePath().event:cache, event:clear, and event:list commands.App::hasDatabaseTable() helper to check if the configured database connection has a specific table.Model::hasDatabaseTable() and Model->isDatabaseReady() helpers to check if the model's table is present in the model's database connection.Model->hasAttribute($attribute) helper to check if the provided attribute would be processed by the model's getAttributeValue() method (i.e. it exists in attributes, is castable, or has a mutator / accessor).json() helper to the Http network utility class to send requests with a JSON body.limit property on list column relation value queries.develop.debugSnowboard will no longer fallback to the value of app.debug, instead it will default to false.CmsObject::listInTheme() will no longer include null entries in the returned list.View::share() will now also be shared with CMS Twig templates as global variables.backend.list.extendColumnsBefore event to match backend.forms.extendFieldsBefore.model.getValidationAttributes event.afterSave(), etc) will now be bound to and fired by the event dispatcher instead of firing directly. This allows for more flexibility in the order of event listeners and allows for the event to be cancelled before reaching the original model listener method.Encryptable database behavior that functions the same as the existing trait but can be dynamically applied to models.deletedAtColumn to relation pivot configurations.Winter\Storm\Support\Svg::sanitize() a public method.Throwable exceptions to the SystemException base class.SettingsModel after the database exists but before any migrations have been run.extras weren't being loaded from the configured app.asset_url when using custom CDNs.<head> element instead of the <body> element.beforeUpdate() event is cancelled, which provides a way to cancel the updating of partials while still allowing the rest of the request lifecycle to proceed.stripe: false in the options for a Snowboard.js request when the snowboard extras are present to disable the stripe loading indicator for that request.open_basedir restriction was in place.form configuration wasn't allowing stdClass or string values.BackedEnum values in lists and forms.getComponentProperties() was called.showTree config value would be cleared when the search term was cleared instead of being preserved.Extendable trait.Svg::sanitize() method before being renamed to .svg files to prevent potential stored XSS attacks.sessions table..block, see Winter.Blocks) to the Winter CMS VS Code extension.Sign up to our newsletter and receive updates on Winter releases, new features in the works, plugin and theme promotions and much more!