Multiple fixes across UI, caching, auth, forms, assets
Release history
cms releases
The core Laravel CMS Composer package
All releases
65 shown
- Configurable timezone for date fields in the Control Panel
- `disabled` and `readOnly` props added to TimePicker component
- Timezones UI components introduced
Full changelog
What's new
- Add configurable timezone for date fields in the Control Panel #14554 by @duncanmcclean
- Add
disabledandreadOnlyprops toTimePickercomponent #14620 by @duncanmcclean - Add Timezones components #14612 by @jasonvarga
- Allow overriding date format preset options #14600 by @jasonvarga
What's fixed
- Dirty state fixes #14592 by @jackmcdade
- Localize timezone tooltip in DatePicker #14596 by @jasonvarga
- Fix asset browser actions inside selector stack #14565 by @duncanmcclean
- Fix date-only formats shifting days due to timezone conversion #14552 by @duncanmcclean
- Avoid rendering time for dates in listings when appropriate #14599 by @jasonvarga
- Display timezone in DateRangePicker #14601 by @jasonvarga
- Fix date-only index fieldtype shifting across timezones #14602 by @jasonvarga
- Memoize preprocessed fields in Validator #14605 by @jasonvarga
- Show date fieldtype when searching for range #14606 by @jasonvarga
- Fix error when typing in a required date range field #14607 by @jasonvarga
- Fix HoverCard arrow not displaying #14611 by @jasonvarga
- Adjust translation method usage #14610 by @jasonvarga
- Fix stale asset listings across queued jobs #14617 by @ryanmitchell
- Fix replicator fields using wrong site context #14616 by @ryanmitchell
- Fix read-only/disabled states in
Radiocomponent #14621 by @duncanmcclean - Lazy-load actions for collections, submissions & terms #14097 by @duncanmcclean
- Fix dated entries not syncing with origin revisions #14216 by @duncanmcclean
- Fix DateRangePicker crash when selecting first date in a range #13512 by @andrii-trush
- Fix moving custom section to 1st position in CP Nav #12993 by @duncanmcclean
- Fix read-only state in publish forms #14623 by @duncanmcclean
- Fix perPage limit in relationship stack listings #14629 by @wiktorm12
- Bump postcss from 8.5.9 to 8.5.13 #14595 by @dependabot
- Bump axios from 1.15.0 to 1.16.0 #14613 by @dependabot
- Fix validation bypass via spoofed Precognition-Validate-Only header (#14557)
- Add strict null coalescence (??? ) support in Antlers parsing
- Add hooks to asset listings
- Show license key status in about and support:details commands
Full changelog
What's new
- Add support for strict null coalescence (
???) in Antlers parsing #14545 by @marcorieser - Add hooks to asset listings #14566 by @edalzell
- Show license key status in about and support:details commands #14574 by @jasonvarga
- Support icon sets in names #14579 by @jasonvarga
What's fixed
- Fix Comb search index delete() rewriting JSON when ref absent #14550 by @SUXUMI
- Include missing time chars in
DateFormat::containsTime#14555 by @jasonvarga - Update setup-cp-vite to install Vite 8 #14559 by @jasonvarga
- Fix cache invalidation when using custom fields in URI route #14564 by @duncanmcclean
- Fix validation bypass via spoofed Precognition-Validate-Only header #14557 by @duncanmcclean
- Restore selected site when resuming session #14562 by @duncanmcclean
- Fix relationship selector footer not sticking to bottom of stack #14569 by @duncanmcclean
- Fix asset selector drag-to-upload covering footer but not handling drops #14551 by @duncanmcclean
- Field margin balance #14567 by @jaygeorge
- Harden OrderBys #14572 by @jasonvarga
- Fix Asset field set to "Read-only" clipping filename #14575 by @jackmcdade
- Fix login redirects #14560 by @jasonvarga
- Design a better empty, read-only state for asset fields #14578 by @jackmcdade
- Avoid per-icon requests in the Icon storybook #14580 by @jasonvarga
- Fix updater crash when addon has no license #14573 by @duncanmcclean
- Lazy load Inertia page components #14582 by @jasonvarga
- Fix LivePreview listener leak and simplify Grid row updates #14583 by @jasonvarga
- Fix SavePipeline initial debounce delay #14586 by @jasonvarga
- Debounce LinkFieldtype URL writes #14584 by @jasonvarga
- Extract fieldtype update debounce to shared constant #14587 by @jasonvarga
- Wrap FieldAction instances with markRaw #14589 by @jasonvarga
- Color swatches get borders for contrast #14591 by @jackmcdade
- Deduplicate RelationshipInput in-flight item-data requests #14590 by @jasonvarga
- German translations #14561 by @helloDanuk
- French translations #14585 by @ebeauchamps
- Frontend Two-Factor Authentication
- Frontend Elevated Sessions
- Combobox 2.0
Full changelog
What's new
- Frontend Elevated Sessions #14424 by @duncanmcclean
- Frontend Two-Factor Authentication #14525 by @duncanmcclean
- Add config for disabling Elevated Sessions #14464 by @1stevengrant
What's fixed
- Better Collaboration Avatars #14511 by @jackmcdade
- Fix addon settings blueprint cache collision with field settings blueprint #14509 by @duncanmcclean
- Show dashed border in assets fieldtype when field is read-only #14507 by @duncanmcclean
- Fix duplicate slugs allowed with depth-conditional routes #14508 by @duncanmcclean
- Combobox 2.0 #13843 by @duncanmcclean
- Persist active tab in URL hash on globals publish form #14515 by @duncanmcclean
- Always display time zone in DatePicker #14518 by @jasonvarga
- Fix blank page when visiting CP routes with invalid items #14517 by @jasonvarga
- Improve rate limiting #14475 by @ryanmitchell
- Hide default Statamic logo on frontend auth pages #14522 by @jasonvarga
- Update currencies dictionary #14520 by @tdrayson
- Allow extending asset preset generation command #14521 by @daun
- Fix NavBuilder crash when nav item has an unresolved children Closure #14523 by @v-Woody
- Fix Eloquent user merge setting roles and groups as model attributes #14526 by @duncanmcclean
- Fix
/!/nocacheand/!/csrfCSRF exemption on Laravel 13 #14533 by @ynamite - Improve Link fieldtype in listings #14535 by @duncanmcclean
- Fix TypeError when asset last_modified meta is null #14530 by @v-Woody
- Fix Live Preview iframe becoming unscrollable after resizing in Chromium #14542 by @duncanmcclean
- Fix CP auth error when using multiple user providers #14543 by @andjsch
- Fix blank term edit screen and JS error for restricted users #14537 by @joshuablum
- Fix
durationForHumansdeprecation warning and rounding #14541 by @duncanmcclean - Fix elevated session redirect for POST endpoints #14544 by @jasonvarga
- Always show success when using forgot password form #14539 by @jasonvarga
- Publish container tweaks #14548 by @jasonvarga
- Fix
updateChildPageUrisempty check never short-circuiting #14547 by @duncanmcclean - French translations #14514 by @ebeauchamps
Minor fixes and improvements.
Full changelog
What's fixed
- Always show success when using forgot password form #14539 by @jasonvarga
Adds collaboration support.
Full changelog
What's new
What's fixed
- Use he-tree i18n prop for tree aria instructions #14499 by @jasonvarga
- Rename
Add Blockback toAdd Setin replicators #14503 by @joshuablum - Resolve Cascade content closure before checking content #14502 by @marcorieser
- Fix nocache database driver failing on MySQL with invalid UTF-8 #14505 by @jasonvarga
- Fix bard undos #14506 by @jackmcdade
- Fix collection listing search case insensitivity #14486 by @joshuablum
- Bump follow-redirects from 1.15.11 to 1.16.0 #14498 by @dependabot
- Bump dompurify from 3.3.3 to 3.4.0 #14500 by @dependabot
Hardens query value resolution and OrderBy operations.
- Internal build tooling has been upgraded to Vite 8 (#14459). Developers extending or customizing the CMS build pipeline should verify compatibility with Vite 8.
- Assets Tag now supports filtering conditions (#13936).
Added support for PathDataManager public properties, submission export filtering, and elevated session guards for AssignGroups and AssignRoles. Fixed Stache index re-entrancy, form submission types, Range fieldtype decimal support, and centralized SVG/CSS sanitization.
Added `link` tag to allowed Antlers tags and `@default` support to content allowlists. Fixed Stache index re-entrancy causing null URIs on cold initialization and form submission type handling.
- Computed default values for fields
- Customizable filename replacements list
- Improved cache handling for nocache regions
- npm postinstall vulnerability prevention
- Text component
- asset.saved event emission
- whereStatus() on search query builder
- GraphQL API Authentication
- Ability to disable two-factor authentication
- Date formatting locale selection
Fixes header z-index issues, prevents SVG flickering, corrects Bard full-screen width, and updates French and German translations.
- PHP sanitization edge cases
- Authorization on revision routes
- CSP header on svg route
- Antlers config access control
- Password reset form sanitization
- Markdown preview endpoint restriction
- URL::isExternalToApplication() hardening
- Password reset hardening
- Password reset hardening
- Additional URL validation tests
- SVG sanitization on reupload
- Path traversal prevention in file dictionary
- Term creation authorization checks
- Asset::moveUnique() method
- SVG sanitization on reupload
- Path traversal prevention in file dictionary
- Term creation authorization
- Relationship endpoint authorization
- Replicator fieldtype endpoint hardening
Corrects color mode preference values, adds proper styling class to outside layout, prevents Bard set deletion on non-backspace keys, and updates French translations.
Adds Content Search string to translator, improves image preset readability, fixes Bard fieldtype variable reference, and updates tar dependency.
- Path traversal prevention
- Term creation authorization
- Command palette focus handling
- Image transparency checkerboard
- Asset listing filters
- Filter preset save/reset capability
- Image cropping capability
- Laravel 13 support
- Stache query builder aggregation methods
Fixes Antlers config backwards compatibility, parser state restoration, and adds Laravel Debugbar 4 support.
Reverts Stache item caching during warming phase to prevent issues with concurrent operations.
- Antlers hardening: See PR #14092 for upgrade notes
- Antlers hardening for code execution prevention
- SVG sanitization
- Authorization checks on redirects
- Floating toolbar keyboard shortcuts
- Disabled Button component prop
- Extra values through container and publish form
- Antlers hardening: See PR #14092 for upgrade notes
- Antlers hardening
- External Glide URL validation
- Redirect hardening
- Password reset URL validation
- HTML rendering hardening
- Password reset URL validation
- HTML rendering hardening
Fixes nocache region replacement, Icon fieldtype augmentation errors, and whereIn/whereNotIn query builder issues with boolean values.
Fixed numerous UI and functionality issues across the control panel including field width settings, Bard editor interactions, dark mode rendering, and data filtering.
- GraphQL introspection configuration
- Focal point editing inputs
- Dotted settings capability
Fixed static caching configuration, improved component documentation and type hints, corrected navigation and asset handling, and updated translations.
Fixed preference persistence issues, asset authentication, and custom field handling in entry URI updates.
Fixed entry date shifting on save, entry publish permission errors, and starter kit installation with dev stability. Replaced uniqid with nanoid and switched from browser tests to storybook tests. Added Russian translations.
Fixed an error during webauthn migration publishing; localized the time picker; added metadata storage for passkey last login; and escaped HTML in the command palette.
Added authentication to asset routes to prevent unauthorized access to files.
Added authentication requirement to asset routes to prevent unauthorized access to files.
Fixed an error in the markdown fieldtype when no container is present.
Added collection tree in navigation, max width CP control, permissions check/uncheck buttons, Ctrl+k for bard link stack, and time field enhancements. Fixed asset selector padding, legacy format sets, nested bard toolbars, z-index for markdown/datepicker, and CarbonImmutable TypeError.
Fixed issues with handling 0 values in text fields and null strings in slugs. Resolved invalidation of multi-site URLs in ApplicationCacher.
Fixed an issue where a large number of assets would be provided in listing views and implemented an abort 404 error when an asset is not found in AssetsController.
Added a duration column to the asset browser, added search instructions for sets, and added mod+s shortcuts to save blueprint and collection order. Fixed errors in the Command Palette asset search, Date Fieldtype, and Replicators nested inside Grid/Group fields, and updated tar to 7.5.7.
Introduced a redesigned Control Panel with a UI Component library, Vue 3, Tailwind 4, and Inertia.js. Added Command Palette, Two-factor authentication, Passkeys, and REST API Authentication. Enhanced Antlers syntax, date/timezone support, and fieldtype support. Dropped support for Laravel 11 and PHP 8.2.
Reverted visibility change to AssetContainer::accessible(), fixed 304 responses without client cache headers, resolved an uninitialized property error in HandleEntrySchedule job, updated lodash to 4.17.23, and prevented unnecessary Bard value updates when content has not changed.
Reverted configuration values in forms to resolve issue #13632.
- Config values can now be used in forms
- Closures are now supported in cascade content hydration
- Query scopes are now supported in navigations (#13509)
Added PHP 8.5 compatibility and allowed retrieving raw arrays from Values objects. Fixed issues with collection structures, blueprint cache, field parents, and the eloquent:import-users command. Updated validator and qs dependencies and added French translations.