Skip to content

4.0.0-beta.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@bastianallgeier bastianallgeier released this 28 Sep 14:57
ee62955

🎉 Features

  • QR code generation built into Kirby: New Kirby\Image\QrCode class, qr() helper function and >toQrCode() field method #5666
    $qr = new Kirby\Image\QrCode('https://getkirby.com');
    $qr->toSvg(color: '#ff00ff');
    $qr->toDataUri(color: '#ff00ff');
    $qr->write(file: 'qr.png', size: 750, back: '#efefef')
    
    qr('https://getkirby.com')->toSvg();
    $page->myLinkField()->toQrCode()->toSvg();
  • New k-alpha-input and  k-hue-input #5693
  • New k-color-frame component to preview color swatches #5686
  • New k-coloroptions-input #5696 and k-colorname-input #5699
  • New k-search-input component #5705
  • New LazyValue class that can be used to resolve a value lazily. Collections and controllers use it to resolve many of Kirby's objects only when the collection/controller requests them, improving performance #5608

✨ Enhancements

  • k-tabs is now fully responsive #5583
  • k-pagination always can be navigated by keys (no extra prop needed anymore) #5578
  • ModelsSection: use Filter as label #5612
  • Text fields: new font: monospace option https://kirby.nolt.io/558
  • panel.css and panel.js config options now also support arrays with multiple entries as well as absolute URLs #5602
  • Responsive: show only text for language dropdown #5577
  • Notification: support custom icons #5601
  • Files, pages and users fields more consistent #5637
  • Blocks field: improve UI for no fieldsets #5679
  • k-calendar-input is now set up as a proper fieldset with legend and additional aria labels for improved accessibility. #5695
  • k-tag supports an image/icon frame #5686
  • Link field uses native k-tag image for preview #5686
  • Color field preview uses k-tag with k-color-frame in image slot #5686
  • Improved grids: Only break to single column at 30rem, not 40rem
  • Improved focus styles for links and the flag preview in tables
  • Improved text overflow behavior for links in tables
  • The color field now also translates valid CSS color names
  • Various table improvements
    • Better focus styles for the option and flag buttons in the table
    • Simplified CSS styles for the table
    • New --table CSS properties for more control
    • Better mobile responsiveness for tables with a scrollable container instead of hiding cells
    • Better disabled state with aria-disabled property
    • New disabled property for the k-options-dropdown component
    • More reliable margin rules for k-text
    • Full k-text style support for the k-html-field-preview component
    • The table rows are now the same height as inputs, boxes and items, which cleans up the design quite a bit
    • All field previews now use the --table-cell-padding property to control their padding, which leads to more reliable styling options
    • All table setup variants have examples in the lab
  • New selected prop for k-button to set the aria-selected attribute. #5698

🐛 Bug fixes

  • Color field: added backend validation #5570
  • Color field: support grad, rad and turn angels for hsl format #5589
  • Fix color field border radius #5655
  • Fixed dropdown positioning in RTL languages #5599
  • Fixed return type for create methods #5586
  • Creating listed pages no longer bypasses permissions #5365
  • Fix regression for automatic plugin assets #5620
  • Fixed problem deleting images in pages/files field #5623
  • Fixed overflow issue in grids #5633
  • Upload dialog: fix error overflow #5622
  • The file upload now creates files with the right extension if the format is converted #5593
  • Fixed reading invalid block types #5660
  • Blocks field: max option respected when pasting blocks #5673
  • Allow to use SVG fill attributes again #5668
  • Blocks can be pasted before the selected block via the “insert before” dialog #5678
  • $page->search() allows to provide a string with field names as $params again getkirby.com#2094
  • Fix collapsing block fields preview #5669
  • Fix sticky columns #5664
  • Fixed translation string for the blocks field
  • The link field shows up correctly if no options are defined
  • The current scroll position is now correctly restored when opening a dropdown. This will no longer cause the main view to scroll up when a dropdown is opened. #5691
  • k-calendar-input can now receive a regular iso date as value.
  • File preview: fixed thumb placement and sizing in Safari #5605 #5604 #5603
  • File view: fixed issues with the Panel menu when resizing in Safari #5606
  • k-bubbles-field-preview and all other previews that extend it now correctly display when there are no bubbles
  • k-color-field-preview correctly displays the pattern when no color is set
  • The sticky header in the table now uses the --header-sticky-offset to fix it's stickiness.
  • Various block fixes
    • Added default values for object props to avoid breaks
    • Fixed various inconsistencies in k-block-title styles
    • Better defaults and removed outdated props in k-block-figure
    • Fixed padding in the block header of the field block type component.

♻️ Refactored

  • k-pagination: removed unused align and dropdown props #5578
  • Clean up type hints for Str::short() #5688
  • k-color is now k-colorpicker-input #5685
  • k-coords is now k-coords-input #5685
  • Better reset for range inputs, stored in styles/rests/range.css
  • k-colorpicker-input now uses the new inputs
  • The basic choice styles have been moved to styles/reset/choice.css
  • k-time-field-preview now extends k-date-field-preview and improves time parsing and the default formatting
  • The fieldPreview mixin defines proper defaults for column and field
  • k-toggle-field-preview uses the low level k-toggle-input instead of k-input to avoid unnecessary markup
  • k-timeoptions-input replaces k-times. k-times is still available as deprecated alias. #5698
  • Date and Time fields use the new k-timeoptions-input #5698

☠️ Deprecated

  • <k-dropdown> was deprecated. Use <k-dropdown-content> as standalone instead.
  • k-calendar-input replaces k-calendark-calendar is still available but only as deprecated alias.

🚨 Breaking changes

  • k-pagination doesn't support setting custom labels/titles via nextLabel, prevLabel or pageLabel #5578
  • Removed deprecated DS constant. Use / instead. #5590
  • Panel\Assets::custom() now returns an array #5602
  • When impersonating the almighty kirby user, any permission check will succeed even if permission has been disabled for regular admins #5511
  • Renamed parameter of ::group() method of all collection classes to $caseInsensitive #5634
  • k-range is gone and replaced by k-alpha-range and k-hue-range
  • k-choice has been removed. Use k-choice-input instead
  • The unused theme prop has been removed from k-choice-input

🧹 Housekeeping

  • Uses lightningcss for Vite instead of postcss