Skip to content

Releases: getkirby/kirby

4.0.0-beta.1

07 Sep 15:11
bc43ab0
Compare
Choose a tag to compare
4.0.0-beta.1 Pre-release
Pre-release

🎉 Features

  • Each Panel area can now define additional requests for simple data endpoints or actions #5531
  • New assets extension that allows plugins to specify assets from custom paths and with a wider range of extensions than previously supported #5557

✨ Enhancements

  • Async $helper.upload() JS #5487
  • Correct autofocus handling for blocks, layout, structure and picker fields #5524
  • $panel.upload() will now only start up to 20 uploads concurrently and adding additional uploads consecutively whenever a previous one finishes #5491
  • New design for the range field #5539
  • All minified panel assets now add .min to the filename. This will avoid auto-minification in Cloudflare and possibly other environments #5536
  • Page move dialog now disables all pages that are invalid new parents for the page #5531
  • The multiselect and tag dropdowns now offer more space to not cut off longer options #5533
  • New html prop for k-bubble, k-bubbles and k-bubbles-field-preview. #5493
  • Increase the font size for help text in sections and fields #5549
  • New translate icon #5565
  • Str::template() support single and double curly braces as start/end delimiters by default #5556
  • sortBy in structure fields works now #5567
  • More type hints #5559
  • Input CSS refactoring #5553
    • Simplified and cleaned up input CSS
    • Better configuration options for inputs through CSS variables
    • Increased font size to 16px on mobile #5395
  • Refactored k-text styles to cover more marks and general text styles for the writer and text blocks #5569

🐛 Bug fixes

  • Structure field: translate column label correctly #5485
  • Load container query polyfill only when needed #5505
  • Expose dialog and drawer mixins to plugins #5498
  • Fixed deleting user avatars #5496
  • Custom icons with 24x24 viewbox are supported now #5492
  • Link dialog: show expand toggle for pages with just drafts as children #5504
  • Fixed block field preview in fields and columns #5417
  • The header no longer disappears when a modal is being opened #5447
  • Following a link in drawer now closes the drawer again #5497
  • Fixes missing preview icons for users, pages and files in structure tables #5525
  • Sets the focus correctly when the structure field drawer is opened #5524
  • Firefox: long dialog’s top isn’t cut off anymore #5523
  • Select dropdowns now always have a white background and black text on Windows, which make them readable again everywhere #5522
  • When choosing to show only some nodes in the toolbar, the node selector is now correctly displayed again #5521
  • Fixed pages and files section error when search filtering a paginated section #5519
  • Writer toolbar in block drawer no longer jumps down on focus. #5501
  • The autofocus is now correctly set when the drawer in the object field opens. #5527
  • The multi select field does no longer show the create button, unless the accept option is setup to accept additional entries. #5533
  • Fixed nesting order of marks in the writer #5481
  • The page tree only shows listable pages #5546
  • Styling fix for the toolbar in the text block #5502
  • Page preview field: fixed escaping #4041
  • Removed unnecessary tabindex on main element #5548
  • Label for the menu toggle and the menu element #5548
  • Add type=button to the header button #5548
  • Turn up contrast for the edit icon in the header #5548
  • Use a div instead of a meaningless fieldset without legend in k-fieldset #5548
  • k-collection and k-items: options slot gets properly exposed also for table layout #5561
  • Fixed link field when UUIDs are switched off #5489
  • Fixed overflow in breadcrumbs
  • Fixed broken window.panel.$vue reference for kirbyup
  • Fixed contrast for the info text in stats
  • Fixed progress bar style in Firefox
  • Fixed option issue in uploader
  • Fixed dropzone style

♻️ Refactored

  • Reduce JS forEach usage #5494
  • Various fixes for PHP types #5495
  • Improve main view bottom padding #5542

☠️ Deprecated

  • Custom icons using a 16x16 viewbox have been deprecated. In an
    upcoming version, Kirby will only support custom icons with a 24x24
    viewbox by default. If you want to continue using icons with a different viewport, please wrap them in an <svg> element with the corresponding viewBox attribute.

🚨 Breaking changes

  • Files in a plugin's assets directory are now always assumed to be public, independent of their file extension. If your plugin needs to store other files in the assets directory, please use the new assets extension to explicitly define the public assets. #5557

🧹 Housekeeping

  • Whoops is now generally disabled during PHPUnit test runs to reduce memory usage during tests #5554

4.0.0-alpha.7

17 Aug 12:06
29889f8
Compare
Choose a tag to compare
4.0.0-alpha.7 Pre-release
Pre-release

🎉 Features

  • Load Panel area views dynamically with new when prop #5425

✨ Enhancements

  • Panel: New icon set based on https://remixicon.com/
    Screenshot 2023-08-11 at 00 01 40
  • New icons megaphonesparkling
  • Info field and section: new icon option

🐛 Bug fixes

  • Fix sort loop in structure field #5448
  • Fix link field with options #5468
  • Fix unpublishing multiple children #5470
  • Custom marks and nodes receive the right editor instance #5457
  • Upload dialog: preview for other file types than images #5461

☠️ Deprecated

  • Deprecated circle-outline icon, use circle instead
  • Deprecated heart-outline icon, use heart instead
  • Deprecated star-outline icon, use star instead

🚨 Breaking changes

  • Removed road-sign icon
  • circle icon is now named circle-filled
  • heart icon is now named heart-filled
  • star icon is now named star-filled

🧹 Housekeeping

  • More JS unit tests #5462

3.8.4.2

10 Aug 19:25
844cc00
Compare
Choose a tag to compare

🎉 Features

The Content-Security-Policy: frame-ancestors header sent by the Panel (introduced in 3.8.4.1) can now be customized with an option if needed:

return [
  'panel' => [
    // allow frame embedding from the same domain
    'frameAncestors' => true,

    // allow frame embedding from the same *and* from the specified domains
    'frameAncestors' => ['*.example.com', 'https://example.com'],

    // allow frame embedding on any domain (not recommended)
    'frameAncestors' => '*',
  ]
];

3.7.5.3

10 Aug 19:25
9d9f0ff
Compare
Choose a tag to compare

🎉 Features

The Content-Security-Policy: frame-ancestors header sent by the Panel (introduced in 3.7.5.2) can now be customized with an option if needed:

return [
  'panel' => [
    // allow frame embedding from the same domain
    'frameAncestors' => true,

    // allow frame embedding from the same *and* from the specified domains
    'frameAncestors' => ['*.example.com', 'https://example.com'],

    // allow frame embedding on any domain (not recommended)
    'frameAncestors' => '*',
  ]
];

3.6.6.4

10 Aug 19:24
515ffcc
Compare
Choose a tag to compare

🎉 Features

The Content-Security-Policy: frame-ancestors header sent by the Panel (introduced in 3.6.6.3) can now be customized with an option if needed:

return [
  'panel' => [
    // allow frame embedding from the same domain
    'frameAncestors' => true,

    // allow frame embedding from the same *and* from the specified domains
    'frameAncestors' => ['*.example.com', 'https://example.com'],

    // allow frame embedding on any domain (not recommended)
    'frameAncestors' => '*',
  ]
];

3.5.8.4

10 Aug 19:24
6393c86
Compare
Choose a tag to compare

🎉 Features

The Content-Security-Policy: frame-ancestors header sent by the Panel (introduced in 3.5.8.3) can now be customized with an option if needed:

return [
  'panel' => [
    // allow frame embedding from the same domain
    'frameAncestors' => true,

    // allow frame embedding from the same *and* from the specified domains
    'frameAncestors' => ['*.example.com', 'https://example.com'],

    // allow frame embedding on any domain (not recommended)
    'frameAncestors' => '*',
  ]
];

4.0.0-alpha.6

02 Aug 14:29
Compare
Choose a tag to compare
4.0.0-alpha.6 Pre-release
Pre-release

🎉 Features

  • Writer: blockquote quote node (by default not included in nodes dropdown)
  • New languages.variables config option to disable managing translations in the Panel

✨ Enhancements

  • Support any character in language variable keys
  • Layouts selector customizable size (small, medium, large, huge) and columns via new selector prop
     layout:
      type: layout
      layouts:
        ...
      selector:
        # `small`, `medium`, `large` or `huge`
        size: huge
        columns: 6

🐛 Bug fixes

  • Page create dialog: allow custom status for anyone #5365
  • Fix selected link in link dialog #5198
  • Panel menu: gaps between button groups are correct again #5383
  • Language editor doesn't support keys with spaces #5332
  • Layout selector broken columns #5382
  • Fix structure field validation #5390
  • Fix centered card icon in Safari #5409
  • Longer help text no longer ignores margin to pages section #5406
  • Fix toggle field preview #5426
  • Fixed jumping checkbox in Firefox #5420
  • Fixed descenders in headers #5415
  • Fixed prop type check in choice component #5392
  • Fixed textarea toolbar overflow #5254
  • Fixed nested structures #5385
  • Fixed nested object fields #5427
  • Fixed reactive props in drawers #5411
  • Fixed label association with inputs
  • Icon in page picker is no longer squished when title is long #5416
  • Bring back lock states #5389
  • Fixed slug rules #5423
  • Fix cardlets layout in Safari #5391
  • Fix scroll bar issues in drawers and dialogs #5393

🚨 Security

This pre-release comes with the security fixes from 3.9.6 and the patch from 3.9.6.1:

🚨 Breaking changes

  • twitter KirbyTag and Helper have been removed. Use legacy plugin if you still rely on these: legacy-twitter.zip

3.9.6.1

31 Jul 10:54
ee2669e
Compare
Choose a tag to compare

🎉 Features

  • The Content-Security-Policy: frame-ancestors header sent by the Panel (introduced in 3.9.6) can now be customized with an option if needed: #5431

    return [
      'panel' => [
        // allow frame embedding from the same domain
        'frameAncestors' => true,
    
        // allow frame embedding from the same *and* from the specified domains
        'frameAncestors' => ['*.example.com', 'https://example.com'],
    
        // allow frame embedding on any domain (not recommended)
        'frameAncestors' => '*',
      ]
    ];

🐛 Bug fixes

  • Search component broken when query is null #5428

3.9.6

27 Jul 09:55
000131a
Compare
Choose a tag to compare

🚨 Security release

This release fixes several vulnerabilities that were all responsibly reported to us in June 2023:

Thanks to Shankar Acharya (@5hank4r), Alexandre Zanni (@noraj) at ACCEIS and Patrick Falb (@dapatrese) at FORMER 03 for responsibly reporting the identified issues.

Updated default .htaccess

We have updated the .htaccess that ships with our kits to the new version 2023-07-22, which adds protection against browser MIME type detection from malicious file uploads for files that have already been copied to the media folder. We recommend to update your sites’ .htaccess or server configuration with the new changes if you might have potential attackers in your group of authenticated Panel users or if your sites allow file uploads by visitors and the file extensions of uploaded files are not limited to a fixed safe list.

You can find the changes to the .htaccess in this commit and read more about the added rules in the security guide.

Thanks to Shankar Acharya (@5hank4r) for making us aware of this potential attack vector.

Frame-blocking in the Panel

The Panel now sends the Content-Security-Policy: frame-ancestors 'none' header to increase the protection against clickjacking attacks. The session cookie was already set to SameSite before, so this is an additional layer of protection.

Thanks to Shankar Acharya (@5hank4r) for suggesting this security enhancement.

Security-related breaking changes

  • All users are logged out from their sessions after updating to this patch release.
  • The Xml data handler (e.g. Data::decode($string, 'xml')) and the Xml::parse() method no longer process XML external entities.
  • The Panel can no longer be embedded in HTML frames.

🎉 Features

  • Added Rumanian translation (thanks to @danburzo) 🎉

✨ Enhancements

  • Updated translations (is, ko, pl, sv)
  • Stats section: linklabelinfo and value now all support translations and Kirby queries #5256
  • Support for variadic controller arguments (thanks to @lukaskleinschmidt) #5222
  • collection() helper (and corresponding methods) allow passing an $options array which will be provided as additional arguments to the collection closure (thanks to @ceesvanegmond)
    <?php
    
    // site/controller/news.php
    $articles = collection('news', ['order' => 'asc']);
    
    // site/collection/news.php
    use Kirby\Cms\Site;
    
    return function (Site $site, string $order) {
        return $site->find('news')->children()->template('article')->orderBy($order);
    };

🐛 Bug fixes

  • Fixed lock API routes for files that are ancestors of a page called files #5273
  • Kirby queries can handle integers and floats as arguments correctly now
  • Fixed using Query helpers, such as page() alongside provided objects with the same name #5276
  • Structure form options button doesn't disappear anymore when form is open but disabled #5302
  • Fixed Panel URL redirect issue when running on subfolder #5266
  • Fixed number field blur issue #5170
  • Fixed language detection with custom locale #5320
  • Fixed user blueprint home option #5359 (regression)
  • Fixed full preview slug in change URL dialog when in multi-language mode #5371
  • Fixed correct slug rules usage for Romanian (thanks to @danburzo) #5376

♻️ Refactored

  • Clean up search component #5297

3.8.4.1

27 Jul 09:54
4672b84
Compare
Choose a tag to compare

🚨 Security release

This release fixes several vulnerabilities that were all responsibly reported to us in June 2023:

Thanks to Shankar Acharya (@5hank4r), Alexandre Zanni (@noraj) at ACCEIS and Patrick Falb (@dapatrese) at FORMER 03 for responsibly reporting the identified issues.

Updated default .htaccess

We have updated the .htaccess that ships with our kits to the new version 2023-07-22, which adds protection against browser MIME type detection from malicious file uploads for files that have already been copied to the media folder. We recommend to update your sites’ .htaccess or server configuration with the new changes if you might have potential attackers in your group of authenticated Panel users or if your sites allow file uploads by visitors and the file extensions of uploaded files are not limited to a fixed safe list.

You can find the changes to the .htaccess in this commit and read more about the added rules in the security guide.

Thanks to Shankar Acharya (@5hank4r) for making us aware of this potential attack vector.

Frame-blocking in the Panel

The Panel now sends the Content-Security-Policy: frame-ancestors 'none' header to increase the protection against clickjacking attacks. The session cookie was already set to SameSite before, so this is an additional layer of protection.

Thanks to Shankar Acharya (@5hank4r) for suggesting this security enhancement.

Security-related breaking changes

  • All users are logged out from their sessions after updating to this patch release.
  • The Xml data handler (e.g. Data::decode($string, 'xml')) and the Xml::parse() method no longer process XML external entities.
  • The Panel can no longer be embedded in HTML frames.