Changelog History
Page 4
-
v3.3.0-rc.5
November 04, 2019 -
v3.3.0-rc.4 Changes
October 30, 2019π This release fixes more glitches of our first three RCs. For the full change log of 3.3.0, please checkout the RC-1: https://github.com/getkirby/kirby/releases/tag/3.3.0-rc.1
π Fixes
-
v3.3.0-rc.3 Changes
October 28, 2019π This release fixes more glitches of our first two RCs. For the full change log of 3.3.0, please checkout the RC-1: https://github.com/getkirby/kirby/releases/tag/3.3.0-rc.1
π Fixes
-
v3.3.0-rc.2 Changes
October 23, 2019π This release fixes the initial glitches of our first RC. For the full change log of 3.3.0, please checkout the previous RC: https://github.com/getkirby/kirby/releases/tag/3.3.0-rc.1
π Fixes
Avoid weird text wrap in toggle field preview. You can now also switch off the toggle text in structure columns entirely with the text option #2244:
fields: links: type: structurecolumns: url: truefeatured: text: falsefields: url: type: url featured: type: toggle
π Fixed save button display glitch when saving #2246
π Fixed undefined password error in the "Change password" dialog #2239
π Fixed issue with site changes in the changes indicator #2242
βͺ Check if a model exists before reverting changes #2238
The slug is validated before a page gets created #2243
π» Throw exception when fields for structures are empty #2236
π Fix
Language::baseUrl
detection #2237π Fix
Language::path
detection class #2237π Fail silently when content locking is no longer supported #2245
β‘οΈ Updated translations (fr, ko, it, ru, tr)
-
v3.3.0-rc.1 Changes
October 22, 2019π New features
π See all unsaved changes
π When you edit pages, files or user accounts, you will now see a new "unsaved changes" icon in the topbar. The overview of unsaved changes makes it a lot easier to keep track of content that is still work-in-progress. #1979
π New icons
We added a set of new icons that have been requested by our users and that we consider "essential". #2209
The following new icons are now available:
- bell - book - bookmark - box - bug - car - cart - chart - chat - credit-card - folder - heart - home - layers - linkedin - map - question - star - strikethrough - underline - vimeo - whatsapp - wheelchair - youtube
π New toggle field preview
Toggle fields in structures come now with a great new preview and are even usable right from the structure overview #2126
π§ Language-specific Smartypants configuration
π§ You can now change the Smartypants configuration for quotes and other typographical details, based on the current language. #2037
\<?php// /site/languages/de.phpreturn ['code' =\> 'de','direction' =\> 'ltr','locale' =\> 'de\_DE''name' =\> 'Deutsch','smartypants' =\> ['doublequote.open' =\> 'β','doublequote.close' =\> 'β',]];
π New ErrorPageException
π With the new ErrorPageException you can stop your code in your controllers, templates or plugins immediately and render the error page instead of the current page. This makes reacting to fatal errors a lot easier. #1887
Here's a controller example:
return function ($page) {$filters = ['latest', 'featured', 'deprecated'];if (in\_array(param('filter'), $filters)) {throw new ErrorPageException('The filter is not accepted'); }return ['filter' =\> $filter];};
Search and pagination in files, users, and pages fields
π You can finally search and paginate pages, files and users in the dialogs of the users, files and pages fields. #2208
π New subpages option for the pages field
You can now enable or disable subpage navigation in the pages field with the new
subpages
option
getkirby/ideas#217fields: related: type: pagesquery: site.find("blog").childrensubpages: false
π CSS variables for plugin developers
π We are introducing the first set of css variables for plugin developers. This will make it a lot easier to follow Kirby's panel design by using the right colors, font sizes, etc. The following variables are now available.
/ **Colors** / --color-backdrop --color-background --color-border --color-focus --color-focus-light --color-focus-outline --color-negative --color-negative-light --color-negative-outline --color-notice --color-notice-light --color-positive --color-positive-light --color-positive-outline --color-text --color-text-light / **Font families** / --font-family-mono --font-family-sans / **Font sizes** / --font-size-tiny --font-size-small --font-size-medium --font-size-large --font-size-huge --font-size-monster / **Shadows** / --box-shadow-dropdown --box-shadow-item --box-shadow-focus
π New ready callback
It is now possible to register last-minute options with a new ready callback. This callback is executed when Kirby's instance is ready to be fully used and you can use all roots, urls and other stuff from Kirby to set additional options accordingly. #1724
\<?php // site/config/config.phpreturn ['ready' =\> function ($kirby) {return ['db' =\> ['database' =\> $kirby-\>root('site') . '/db/database.sqlite','type' =\> 'sqlite'] ]; }];
Extendable dump() helper
You can now overwrite our dumper with your own implementation or an implementation from a framework
getkirby/ideas#339Kirby::plugin('my/dumper', ['components' =\> ['dump' =\> function ($kirby, $variable, bool $echo = true) {// dump that var }]]);
Collection::when()
You can use the new
when()
method for any collection to simplify your code when filtering or sorting items massively getkirby/ideas#349$size= get('size');$color = get('color');$price = get('price')$products = $page-\>children()-\>when($size, function ($size) {return $this-\>filterBy('size', $size); })-\>when($color, function ($color) {return $this-\>filterBy('color', $color); })-\>when($price, function ($price) {return $this-\>filter(function ($child) use ($price) {return $child-\>price()-\>toFloat() \<= $price; }); });
$library and $helper
π All plugin developers now have full access to the helpers and libraries that we use in the panel with the new
$library
and$helper
objects in Vue.js. #1846Here's an example of how to use our slug helper inside a Vue component:
const slug = this.$helper.slug("MΓΆtorhead rulez!!");
The following helpers and libraries are available:
// helpersthis.$helper.clonethis.$helper.isUploadEventthis.$helper.debouncethis.$helper.padthis.$helper.ratiothis.$helper.slugthis.$helper.sortthis.$helper.string.ucfirstthis.$helper.string.lcfirstthis.$helper.upload// librariesthis.$library.autosizethis.$library.dayjs
π New hooks
π The following new hooks are now available for your plugins getkirby/ideas#350, getkirby/ideas#23
- system.loadPlugins:after - user.login:before - user.login:after - user.logout:before - user.logout:after
β Additional new features
- You can now search by username in the global search
Collection::intersection()
andCollection::intersects()
getkirby/ideas#214- π New
$pages->notTemplate()
method - π New
Visitor::preferredMimeType()
method - π New
Visitor::prefersJson()
method - π New
Mime::matches()
method - π New
::panelOptions
method for all models (Page, User, File) #1951 - π New
flip
option for pages and files sections getkirby/ideas#97 - π New
$field->inline()
method - π New
$field->nl2br()
method - π New
$kirby->nonce()
which can be used in custom CSP settings - The
svg
helper now accepts Kirbyβs File objects
π₯ Breaking changes
- 0οΈβ£ The pagination object is now immutable and all setters are disabled by default #1887
- π¨ The Vuex
form
store module in the panel has been refactored and is now calledcontent
. If your panel plugin works with the form store module, please check out the refactored module. Conversion won't be difficult. We made lots of thinks a lot cleaner. But you need to rename the actions or getters that you use from the old module. - The
v-tab
directive is no longer available. Tabbable elements should now use thetab
mixin
π Deprecated methods
- π The deprecated
$kirby->root('translations')
root is no longer available. Use$kirby->root('i18n:translations')
instead
π We've also added deprecation warnings to additional core methods. You will run into an exception if the debug mode is active. You can keep those methods for now in production (with disabled debug mode), but we recommend to convert them as soon as possible. Here are the deprecated methods and how to replace them:
File::meta
(useFile::content
instead)File::rename
(useFile::changeName
instead)- 0οΈβ£
Languages::findDefault
(useLanguages::default()
instead) Page::hasInvisibleChildren
(usePage::hasUnlistedChildren
instead)Page::hasNextInvisible
(usePage::hasNextUnlisted
instead)Page::hasNextVisible
(usePage::hasNextListed
instead)Page::hasPrevInvisible
(usePage::hasPrevUnlisted
instead)Page::hasPrevVisible
(usePage::hasPrevListed
instead)Page::hasVisibleChildren
(usePage::hasListedChildren
instead)Page::nextInvisible
(usePage::nextUnlisted
instead)Page::nextVisible
(usePage::nextListed
instead)Page::prevInvisible
(usePage::prevUnlisted
instead)Page::prevVisible
(usePage::prevListed
instead)Page::isInvisible
(usePage::isUnlisted
instead)Page::isVisible
(usePage::isListed
instead)Site::hasInvisibleChildren
(useSite::hasUnlistedChildren
instead)Site::hasVisibleChildren
(useSite::hasListedChildren
instead)
β¨ Enhancements
A11y and keyboard navigation
- β¬οΈ Dropdowns now automatically close when you navigate outside with the tab key
- The multiselect field can now be focused correctly with the tab key
- The dropdown in the multiselect field no longer jumps to the top when you select an item
- The multiselect field can now be correctly opened via space or enter keys #2187
- Tab navigation in fields is now prevented when the form is locked #2204
- The Ctrl key can now be used as meta key for textarea shortcuts #2113
- π Improved a11y of the page status title in list items and cards #566
- π Better link highlighting on tab
- π Better keyboard navigation in pagination dropdown
- π¨ Refactored button component to use button, link or span (disabled buttons) when appropriate #566
π User experience
- The global search now automatically searches for users, when you are in the user area of the panel
- π We removed the name field from the installer to set the focus on the importance of the email address #1802
- π Links in field help text can now be clicked, even if the field is disabled #2170
- We've added a bigger margin to all dropdowns to avoid annoying overlaps with the bottom bar and other elements at the bottom #1563
- Decimals are now always correctly displayed when leaving the number field #1748
- π¨ The dialog to create new pages now shows the order of templates in the way specified in the blueprint #2161
- The login no longer shakes on errors, but displays a more traditional alert with a error message #2161
- Sections, structure and picker fields now show the same red border when they are invalid #1581
- When a page, file or user is locked, the bottom bar now features a new activity indicator when the changes cannot be unlocked yet #2195
Developer experience
- π¨ We've refactored the entire content store module for Vuex to provide easier access to all content changes #1866
- π Doc block enhancements for better IDE support
- 0οΈβ£ We've added the idea folder to the default
.gitignore
for users who use JetBrains editors - π¨ Infer section type from name in blueprints getkirby/ideas#120
- When collection pagination is used in the frontend with a page number that exceeds the number of pages, the error page is now rendered automatically. #1887
- The users field no longer stores email address, but the user id. This change is fully backwards compatible. The user field will work with old email entries and overwrite them once you save again. #1885
- We've added localhost support and removed 127...* ip restrictions in the
V::url()
validator #2130 - π»
$pages->add()
now throws an exception when you try to add invalid objects #1890 - The max length of
Str::slug()
is now restricted to 128 characters and added a new$maxlength
argument
API enhancements
- The API now respects locale settings on single-lang site
- π The options Api requests for pages, users and files now respect the lock state of the model and skip the right options that should not be usable.
π Translations
- The pagination page label in the panel is now translatable #2194
- The title attribute for required fields and sections is now translatable #2227
π Performance
- π The status dialog for pages now only loads siblings if necessary to increase the performance #2052
π Fixes
- Languages can now use their own domains again. This has been a big annoying regression from v2 #1382
- π Fixed bugs in slug generation with custom rules #2138
- π Fixed reactivity for all k-input $props and $attrs #2181
- Youtube and Vimeo options are now passed correctly to the iframe when using the
vimeo()
andyoutube()
helpers #2118 - β Removed unused text attribute from image kirbytag #2136
- The correct error messages are now shown when exceptions are thrown in hooks #2155
- 0οΈβ£ The default order for files is now fixed and respects the sorting number and filename #1675
- π The email placeholder in lock notification is now correctly replaced with the actual email address #2134
- The same characters are now allowed when renaming or uploading files #2164
- π File sorting is now fixed in MS Edge #1973
- π Fixed "Replace" and "Open" menu items for files and pages in Safari #1951
- β‘οΈ The internal cache for translations is now correctly flushed in Site and Page classes after updates #2189
- Form errors now show details #2202
- π Improved
Collection::_unset()
which solves a lot of problems of deleting collection items in a loop #1232 - Donβt show create button in pages section when
create
option is set to false - π» HTML in field and section exception messages can no longer propagate through the API to the panel
Code/Project Quality
- π We now use PHPStan to check for typical code issues. The first fixes have already been made
- β‘οΈ We've optimized our Travis setup, which now runs in under 2 minutes.
- β We've added the first set of unit tests for our Vuex store modules
- β We now test PHP 7.4 on Travis
-
v3.2.5 Changes
September 24, 2019π Features
π± The panel can now be extended with your own icon plugins π
panel.plugin('my/icons', { icons: { 'my-icon': '<path d="M7,3V13H5v2H8a1,1,0,0,0,1-1V4h2V2H8A1,1,0,0,0,7,3Z" /><circle cx="2" cy="14" r="2" /><polygon points="12 0 12 6 16 3 12 0" />' } });
0οΈβ£ You can now use query templating in more blueprint options (help, default, label, empty and headline) (#1823, #1862)
fields: text: label: "Notes for {{ page.title }}"type: textareahelp: "You can fill in some notes for {{ page.title }} here"
To create a custom response in your custom API routes, you can now return a Response object (#2076)
Content locking can be switched off with the new
content.locking
option (#2000)return ['content' => ['locking' => false]];
π New
F::relativepath()
methodecho F::relativepath('/Users/secret/www/site/templates/default.php', '/Users/secret/www');// result: '/site/templates/default.php'
π New
$options
argument inJson::encode()
(#2111)echo Json::encode('Π·Π΄ΡΠ°Π²Π΅ΠΉ', JSON_UNESCAPED_UNICODE);
β Added
yml
andyaml
extensions toF::$types
(#2018)echo F::type('yaml');// result: code
β Added
application/yaml
andtext/yaml
toMime::$types
(#2018)echo Mime::fromExtension('yml');// result: application/yaml
β¨ Enhancements
- Clicking the
Today
button in the calendar dropdown will now immediately set the date (#1736) - More detailed PHP CS settings now result in even cleaner source code
- Changing a user role is now completely disabled if there's just one role (#1948)
- The
parent
option in sections is now validated correctly and a readable error message is thrown when incorrect objects or values are given (#1938) - 0οΈβ£ The current user's role is used as the default when creating new users (#2038)
- 0οΈβ£ The panel default language is now used as default in the installer and when a new user is created (#1940)
- π Improved pull request template
- π We now use absolute class names in doc blocks for better IDE support
- A custom panel css file has now a cache-buster timestamp (#1729)
- π New detailed error messages on uploads, including php.ini setup issues (#1812)
- The image preview in structure fields now uses srcset and proper thumbnails (#2039, #2040)
- β‘οΈ Updated contributing guide
- Invalid structure field data now throws a human-readable error message (#2046)
- β¨ Enhanced structure field preview for multiselect fields (#1996)
- We reduced the content locking frequency to make locking less resource-intensive (#2000)
- β‘οΈ Updated translations
- π¨ Translated options in blueprints have better fallbacks now, if the language is not available (#1876)
- An invalid field section setup is now throwing a more readable error (#1935)
π Fixes
- π Show radio buttons in the files, pages and users pickers, when the
max
option is set to 1 (#2109) - π Fixed panel jumps on opening the file dialog from textareas (#1879)
- π Fixed unicode replacements in Slug generator (#1903)
- π The correct locale is now set in API calls from the panel, which fixes localised dates and other localisation issues (#1872)
- π Forbidden user roles no longer appear in the user dialogs, when creating a new user or changing user roles (#1917)
- 0οΈβ£ Default values in structure fields no longer block saving checkboxes and other fields correctly (#1950)
- β Adding files to the textarea now creates correct absolute paths when necessary (#2003)
- π Users without an admin role can now change the roles of other users if they have permissions to do so (#1919)
- Keyboard navigation through dropdowns now skips disabled options correctly (#1661)
- Routing in the panel no longer shows broken fields (#2007)
- The pattern validation in text fields is now working correctly (#2041)
- π Fixed Page siblings in
page.update:after
hook (#1401) - Consistent
$collection->append()
and$collection->prepend()
methods (#2078) - β‘οΈ The Vuex user store is now correctly updated when the email, language or name of the current user is changed (#1957)
- Untranslatable fields in multi-language installations are now never stored (#2001)
- Files in the files section are now sorted explicitly by the sort field to fix a wrong order (#2020)
- Invalid fractions in structure fields are now handled correctly (#1930)
- Focusing a disabled structure field no longer throws an error (#1960)
- A duplicated page is now properly indexed when the
page.duplicate:after
hook is triggered (#1923) - π Better range input behaviour when the field is empty (#2044)
- π Fixed layout of the empty box, when there's a lot of text (#2065)
- The
info
option in the users field is now working correctly (#2050) - π Fixed unclickable links in the help text of a disabled field (#1965)
- The disabled toggle field now displays its state correctly (#2004)
- π Fixed a bug in the time field, which always set the time to
12:00 AM
(#1781) - π The file field in API error responses is now showing the correct file path on Windows (#1937)
- 0οΈβ£ Spellchecking in textareas is now enabled by default again (#2047)
- π Fixed Page siblings collection in
page.changeSlug:after
hook (#1952) - A newly created user can now be impersonated directly (#2021)
- π Fixed
widont()
helper when the last word contains a dash (#1902) - π Some nested array options in the config didn't work reliably. This is now fixed (#1944)
- The
$position
parameter in thepage.changeStatus:before
hook is now filled in correctly at all times (#1982)
-
v3.2.5-rc.2 Changes
September 18, 2019Since RC 1
- π Fixed broken user views
- π Fixed default value for toggle fields in structures
- π Fixed content locking errors in page and file actions
- π Fixed content locking warning in the console
- π Fixed default language in installer
Json::encode
now usesJSON_UNESCAPED_SLASHES
andJSON_UNESCAPED_UNICODE
as new defaults- β‘οΈ Updated bug_report.md
All changes
π See the full changelog for 3.2.5 here: https://github.com/getkirby/kirby/releases/tag/3.2.5-rc.1
-
v3.2.5-rc.1 Changes
September 17, 2019π Features
π± The panel can now be extended with your own icon plugins π
panel.plugin('my/icons', { icons: { 'my-icon': '<path d="M7,3V13H5v2H8a1,1,0,0,0,1-1V4h2V2H8A1,1,0,0,0,7,3Z" /><circle cx="2" cy="14" r="2" /><polygon points="12 0 12 6 16 3 12 0" />' } });
0οΈβ£ You can now use query templating in more blueprint options (help, default, label, empty and headline) (#1823, #1862)
fields: text: label: "Notes for {{ page.title }}"type: textareahelp: "You can fill in some notes for {{ page.title }} here"
To create a custom response in your custom API routes, you can now return a Response object (#2076)
Content locking can be switched off with the new
content.locking
option (#2000)return ['content' => ['locking' => false]];
π New
F::relativepath()
methodecho F::relativepath('/Users/secret/www/site/templates/default.php', '/Users/secret/www');// result: '/site/templates/default.php'
π New
$options
argument inJson::encode()
(#2111)echo Json::encode('Π·Π΄ΡΠ°Π²Π΅ΠΉ', JSON_UNESCAPED_UNICODE);
β Added
yml
andyaml
extensions toF::$types
(#2018)echo F::type('yaml');// result: code
β Added
application/yaml
andtext/yaml
toMime::$types
(#2018)echo Mime::fromExtension('yml');// result: application/yaml
β¨ Enhancements
- Clicking the
Today
button in the calendar dropdown will now immediately set the date (#1736) - More detailed PHP CS settings now result in even cleaner source code
- Changing a user role is now completely disabled if there's just one role (#1948)
- The
parent
option in sections is now validated correctly and a readable error message is thrown when incorrect objects or values are given (#1938) - 0οΈβ£ The current user's role is used as the default when creating new users (#2038)
- 0οΈβ£ The panel default language is now used as default in the installer and when a new user is created (#1940)
- π Improved pull request template
- π We now use absolute class names in doc blocks for better IDE support
- A custom panel css file has now a cache-buster timestamp (#1729)
- π New detailed error messages on uploads, including php.ini setup issues (#1812)
- The image preview in structure fields now uses srcset and proper thumbnails (#2039, #2040)
- β‘οΈ Updated contributing guide
- Invalid structure field data now throws a human-readable error message (#2046)
- β¨ Enhanced structure field preview for multiselect fields (#1996)
- Images in the panel now use the new native lazy loading in Chrome
- We reduced the content locking frequency to make locking less resource-intensive (#2000)
- β‘οΈ Updated translations
- π¨ Translated options in blueprints have better fallbacks now, if the language is not available (#1876)
- An invalid field section setup is now throwing a more readable error (#1935)
π Fixes
- π Show radio buttons in the files, pages and users pickers, when the
max
option is set to 1 (#2109) - π Fixed panel jumps on opening the file dialog from textareas (#1879)
- π Fixed unicode replacements in Slug generator (#1903)
- π The correct locale is now set in API calls from the panel, which fixes localised dates and other localisation issues (#1872)
- π Forbidden user roles no longer appear in the user dialogs, when creating a new user or changing user roles (#1917)
- 0οΈβ£ Default values in structure fields no longer block saving checkboxes and other fields correctly (#1950)
- β Adding files to the textarea now creates correct absolute paths when necessary (#2003)
- π Users without an admin role can now change the roles of other users if they have permissions to do so (#1919)
- Keyboard navigation through dropdowns now skips disabled options correctly (#1661)
- Routing in the panel no longer shows broken fields (#2007)
- The pattern validation in text fields is now working correctly (#2041)
- π Fixed Page siblings in
page.update:after
hook (#1401) - Consistent
$collection->append()
and$collection->prepend()
methods (#2078) - β‘οΈ The Vuex user store is now correctly updated when the email, language or name of the current user is changed (#1957)
- Untranslatable fields in multi-language installations are now never stored (#2001)
- Files in the files section are now sorted explicitly by the sort field to fix a wrong order (#2020)
- Invalid fractions in structure fields are now handled correctly (#1930)
- Focusing a disabled structure field no longer throws an error (#1960)
- A duplicated page is now properly indexed when the
page.duplicate:after
hook is triggered (#1923) - π Better range input behaviour when the field is empty (#2044)
- π Fixed layout of the empty box, when there's a lot of text (#2065)
- The
info
option in the users field is now working correctly (#2050) - π Fixed unclickable links in the help text of a disabled field (#1965)
- The disabled toggle field now displays its state correctly (#2004)
- π Fixed a bug in the time field, which always set the time to
12:00 AM
(#1781) - π The file field in API error responses is now showing the correct file path on Windows (#1937)
- 0οΈβ£ Spellchecking in textareas is now enabled by default again (#2047)
- π Fixed Page siblings collection in
page.changeSlug:after
hook (#1952) - A newly created user can now be impersonated directly (#2021)
- π Fixed
widont()
helper when the last word contains a dash (#1902) - π Some nested array options in the config didn't work reliably. This is now fixed (#1944)
- The
$position
parameter in thepage.changeStatus:before
hook is now filled in correctly at all times (#1982)
-
v3.2.4 Changes
September 03, 2019- Page titles, filenames and usernames are now trimmed before they will be saved (#1836)
- Custom slug rules no longer fail with
+
symbol (#1946) - π Better slug conversion from Cyrillic (#1903)
- 0οΈβ£ Multiple default languages will now throw an exception (#1849)
- π Improved textarea field docs
- β Added missing since info for field options to improve the docs on the website
- β Added spellcheck option to the textarea field
- π File models have been removed again until we can implement them in a reliable and performant way (#1971)
- π Fixed panel redirect after page deletion (#1984)
- π Fixed space and escape key shortcuts in the search input of the multiselect field (#1983)
- π Fixed broken checkboxes when an object has been passed (#1670)
- π Fixed
num: date
when the date handler is set to strftime (#1882) - π Fixed
num: date
with translations (#1886) - π Created a new
SECURITY.md
file to provide relevant information in case of security issues - β¬οΈ Dropping multiple files into a textarea does now create the correct number of KirbyTags (#1850)
- π Fixed select inputs in Edge (#1712)
- π Fixed jump when clicking/focussing on checkboxes (#1657)
- π Fixed typos in
CONTRIBUTING.md
- Emails can now be send with custom transport props
- β Added translation for missing panel view access permissions (#1997)
- π Fixed access for non-existing options
- π Fixed broken panel plugins by adding required semicolons when bundling js files (#1931)
- β Added Lithuanian and Russian translations
- Return to regular tab widths (#1999)
-
v3.2.4-rc.1 Changes
August 22, 2019- Page titles, filenames and usernames are now trimmed before they will be saved (#1836)
- Custom slug rules no longer fail with
+
symbol (#1946) - π Better slug conversion from Cyrillic (#1903)
- 0οΈβ£ Multiple default languages will now throw an exception (#1849)
- π Improved textarea field docs
- β Added missing since info for field options to improve the docs on the website
- β Added spellcheck option to the textarea field
- π File models have been removed again until we can implement them in a reliable and performant way (#1971)
- π Fixed panel redirect after page deletion (#1984)
- π Fixed space and escape key shortcuts in the search input of the multiselect field (#1983)
- π Fixed broken checkboxes when an object has been passed (#1670)
- π Fixed
num: date
when the date handler is set to strftime (#1882) - π Fixed
num: date
with translations (#1886) - π Created a new
SECURITY.md
file to provide relevant information in case of security issues - β¬οΈ Dropping multiple files into a textarea does now create the correct number of KirbyTags (#1850)
- π Fixed select inputs in Edge (#1712)
- π Fixed jump when clicking/focussing on checkboxes (#1657)
- π Fixed typos in
CONTRIBUTING.md
- Emails can now be send with custom transport props
- β Added translation for missing panel view access permissions (#1997)
- π Fixed access for non-existing options
- π Fixed broken panel plugins by adding required semicolons when bundling js files (#1931)
- β Added Lithuanian and Russian translations
- Return to regular tab widths (#1999)