Releases: symfony/ux
2.25.2 : StimulusAttribute fix
Hey UX'ers!
Just a small bug fix release to fix using StimulusAttributes
with Twig Components.
Twig Components
- Fix
ComponentAttributes
rendering when usingStimulusAttributes
as default attributes by @Kocal in #2757
Map
Toolkit
Full Changelog: v2.25.1...v2.25.2
2.25.1 : CVE-2025-47946
Hey UX'ers!
Important
This release addresses CVE-2025-47946. See the blog post for more details.
Twig Components
Full Changelog: v2.25.0...v2.25.1
2.25.0 : Squash Deprecations
Hey UX'ers!
This release fixes Twig deprecations, improves the DX of Icons, adds UID support and fixes hydration issues in Live Components. This also includes an initial preview of the new UX Toolkit. This package isn't yet installable via Composer as it's still in heavy development, but you can check it out in the src/Toolkit
.
Autocomplete
- Escape
querySelector
dynamic selector withCSS.escape()
by @Bartheyrman22 in #2663
Map
Twig Components
Live Components
- Add UID support for hydration by @norkunas in #2654
- Fix default option extraction ignores Translatable #2621 by @stehled in #2627
- Fix:
LiveComponentHydrator::hydrateValue()
cannot hydrate null values by @nikophil in #2730
StimulusBundle
Toolkit
- Introduce the UX Toolkit ✨ by @Halleck45 in #2539
- Add missing Interface suffixes by @smnandre in #2717
- Fix deprecation Kernel > 7.3 by @smnandre in #2714
- Remove redundant code in Shadcn kit components by @Kocal in #2711
- Add functional tests to render all Kit components usage codes (from their documentation), with a snapshot system by @Kocal in #2720
- Minor adjustments on Kit creation command (reword questions, fix doc format) by @Kocal in #2724
- Remove Kit "authors" by @Kocal in #2725
- Improve descriptions of Shadcn components by @Kocal in #2728
- Update snapshots & fix tests, following #2728 by @Kocal in #2735
Icons
Turbo
- Minor documentation syntax fixes by @seb-jean in #2692
- Pass
turbo_stream_listen
topics to mercure if not defined by @Fan2Shrek in #2694
Miscellaneous
- Fix version bump for npm packages by @Kocal in #2679
- Use git diff instead of git status by @smnandre in #2687
- Add
.editorconfig
, enforce LF line-ending style by @Kocal in #2691 - Adjust tags to
v2.*.*
for NPM auto-releases by @Kocal in #2685 - Add step to disable
package.json
synchronization while upgrading PHP package by @Kocal in #2698 - Replace
workspace:*
dependencies before publishing on npm by @Kocal in #2739 - Fix Doctor RST warning about quotes by @smnandre in #2745
Site
- Add manual installation steps for Component installation (and some website tweaks) by @Kocal in #2716
New Contributors
- @stehled made their first contribution in #2627
- @Bartheyrman22 made their first contribution in #2663
- @Halleck45 made their first contribution in #2539
- @nikophil made their first contribution in #2730
Full Changelog: v2.24.0...v2.25.0
2.24.0 : NPM Packages
Hey UX'ers!
UX packages that require JS have their JS published on NPM. This installation method is reserved for advanced users who want to decouple their JavaScript dependencies from their PHP dependencies. Symfony Flex is still the method recommended for most users.
Autocomplete
- Fix invalid createQueryBuilder code example by @tacman in #2470
- Rethrow
BadRequestHttpException
in case of malformedextra_options
by @norkunas in #2600 - Add
EnumType
precision by @Huluti in #2640
Map
- Add Marker Icon customization capability by @sblondeau in #2605
- Markers, polygons and polylines removal by @sblondeau in #2547
- JavaScript package should not be added in user's package.json by @Kocal in #2611
- Add missing
README
/LICENSE
files for Map Bridges JS packages by @Kocal in #2616 - Improve "Interact with the map" section by @Kocal in #2638
- Make renderer tests way easier to maintain, use snapshots by @Kocal in #2658
- Fix 2.23/2.24 changelog by @zak39 in #2674
Twig Components
- Minimal support of comment lines by @smnandre in #2464
- Fix ComponentTokenParser on 32-bits by @smnandre in #2572
- Fix Twig 3.21 deprecations (getExpressionParser) by @smnandre in #2591
- Add
OptionResolver
namespace in doc example by @ThibaultPelloquin in #2634 - Fix test when high-deps by @Kocal in #2645
Live Components
- Move
symfony/property-info
to the require section by @mtarld in #2608 - Fix default select value with preferred choices by @1ed in #2587
- Document how to pass a value to an event listener from Twig by @Artusamak in #2610
- Remove mention of deprecated annotation in docs by @smnandre in #2631
Turbo
- Document
<twig:Turbo:Stream:*>
by @seb-jean in #2481 - Update
index.rst
by @DennisdeBest in #2603 - Add Twig Extensions for
meta
tags by @seb-jean in #2618 - Pass EventSource options to
turbo_stream_listen
by @Fan2Shrek in #2447
StimulusBundle
- Add support for
symfony/stimulus-bridge
4 by @bobvandevijver in #2609 - Fix missing
}
, reformat so it's visible by @tacman in #2599 - Misc doc fixes by @javiereguiluz in #2597
- Fix lazy load Stimulus controllers with Turbo by @smnandre in #2590
Icons
Notify
- Update image link for native notification example by @skmedix in #2604
- Added
options
to Notification by @ernie76 in #1853
Miscellaneous
- Add workflow to automatically publish JS packages on npm by @Kocal in #2615
- Fix links to changed dist files by @Kocal in #2563
- Fix dist files base/head information by @Kocal in #2564
- Ensure TypeScript code is valid by @Kocal in #2562
- Run tests on minimum-stability=dev too by @Kocal in #2594
- Normalize
package.json
files, to prepare publication on NPM by @Kocal in #2595 - Document
src/**/assets/README.md
files about direct installation and recommended alternatives. by @Kocal in #2612 - Ensure JS packages (either from
vendor/
or npm versions) can be installed/used inside an Encore App by @Kocal in #2613 - Refactor some steps in test-app-encore-app job by @Kocal in #2614
- Document about alternative JS assets installation with npm packages by @Kocal in #2617
- Add documentation check to PR template by @kbond in #2630
- Document and update CI for Corepack manual installation by @Kocal in #2649
Site
New Contributors
- @bobvandevijver made their first contribution in #2609
- @Artusamak made their first contribution in #2610
- @ThibaultPelloquin made their first contribution in #2634
- @Huluti made their first contribution in #2640
- @zak39 made their first contribution in #2674
- @dbu made their first contribution in #2664
- @ernie76 made their first contribution in #1853
- @Enz000 made their first contribution in #2661
Full Changelog: v2.23.0...v2.24.0
2.23.0 : Minor Improvements & Fixes
Hey UXer's!
Not a ground-breaking release, but some nice minor improvements and fixes.
Autocomplete
- Reset TomSelect when updating controller attributes by @pierredup in #1505
- Deprecate
ExtraLazyChoiceLoader
in favor ofLazyChoiceLoader
by @norkunas in #2458 - Fix Incompatibility filter_query and max_results (doc) by @ytilotti in #2440
- Configurable results by @J-Ben87 in #2541
Twig Components
- Update using macro docs by @smnandre in #2444
- Minor doc syntax fix by @javiereguiluz in #2459
- Document about unwanted behavior with
ExposeInTemplate
and computed methods by @Kocal in #2456 - Fix typo in docs by @JalenWasHere in #2452
- Remove word in documentation by @jmwill86 in #2475
- Various fix / cleans in documentation by @smnandre in #2471
- Use promoted properties in code sample by @tacman in #2484
- Add explicit string cast on string assertions by @Valmonzo in #2507
- Remove obsolete
TemplateNameParser
by @sneakyvv in #2506
Live Components
- Update CSRF docs by @smnandre in #2443
- "Hooks: Handle Component Behavior" spacing issue in docs by @nehalgajjar in #2435
- Check secret is not empty + add
[SensitiveParameter]
by @smnandre in #2461 - Allow configuring secret for fingerprints and checksums by @smnandre in #2462
- Use
container.build_hash
instead ofkernel.secret
inCacheWarmer
by @dkarlovi in #2451 - Remove form property in live component docs by @jannes-io in #2474
- Document
make:twig-component
by @seb-jean in #2480 - Add a link label in doc by @MrYamous in #2476
- Update doc on how to use
submitForm()
by @yalit in #2510 - Fix
ComponentWithFormTrait::extractFormValues()
with edge cases by @smnandre in #2491 - Add very simple download files docs by @zefyx in #2513
- Prevent
__component
property to be serialized when calledJSON.stringify()
by @Kocal in #2537 - Add Documentation for testing with
LiveCollectionType
by @yalit in #2517 - Fix formatting of the inline code for the text
RedirectResponse
by @zefyx in #2530 - Fix
ComponentWithFormTrait
not working in batch actions by @smnandre in #2553
Icons
Map
Chart.js
- Listen to Stimulus
disconnect
event to destroy the chart by @Shadow-Devil in #1944
Stimulus
- Update Stimulus Components URL by @94noni in #2495
- Fasten lazy loading + add debug
lazy:loading
andlazy:loaded
by @smnandre in #2463
Turbo
- Remove obsolete Mercure configuration (docs) by @smnandre in #2524
- Add stream format with request listener by @aleho in #2550
LazyImage
- Add a warning message to not recommend Lazy Image package by @javiereguiluz in #2501
Site
- Add BlueSky by @smnandre in #2436
- Update deps by @smnandre in #2441
- Visual improvments on IconModal by @Kocal in #2465
- Update site banner by @smnandre in #2489
- Upgrade PHP8.4 on psh by @smnandre in #2442
- Back to PHP 8.3 by @smnandre in #2494
- Add links to UX icons documentation by @smnandre in #2499
Miscellaneous
- Mention Doctor Rst in
CONTRIBUTING.md
by @smnandre in #2472 - Fix and display changed dist files in the CI by @Kocal in #2503
- Drop explicit Yarn dependencies caching steps for actions/setup-node by @Kocal in #2504
New Contributors
- @dkarlovi made their first contribution in #2451
- @JalenWasHere made their first contribution in #2452
- @ytilotti made their first contribution in #2440
- @Shadow-Devil made their first contribution in #1944
- @jmwill86 made their first contribution in #2475
- @Valmonzo made their first contribution in #2507
- @yalit made their first contribution in #2510
- @zefyx made their first contribution in #2513
- @J-Ben87 made their first contribution in #2541
Full Changelog: v2.22.1...v2.23.0
2.22.1 : Bug Squashing
Hey UX'ers!
Just a small, but important bug fix release.
Autocomplete
- Fix grouped options order by @zavarock in #1825
- Added Polish translation for "Add ..." message by @skmedix in #2418
Map
- Fix documentations codeblocks for the LiveComponent integration by @Kocal in #2412
- Fix default values of Stimulus Map Controller by @Kocal in #2420
Icons
- Fix
LockIconsCommand
definition when Iconify is disabled by @smnandre in #2416 - Fix doc typo by @karpilin in #2424
StimulusBundle
Live Components
- Update docs for
PostHydrate
,PreDehydrate
&PreReRender
by @nehalgajjar in #2431 - Handle loose comparison with empty placeholder by @FoxCie in #2426
Twig Components
- Add tip about
make:twig-component
command by @DennisdeBest in #2384 - Mention how to work with Twig macros in Twig Components by @javiereguiluz in #2432
Miscellaneous
- Apply natural import order for JS to synchronise the code base with Biome and its configuration by @chadyred in #2423
- Drop format, lint, check-format and check-lint commands, replace them with check and ci commands by @Kocal in #2428
- Replace CleanCSS by LightningCSS by @Kocal in #2429
Site
- Update Symfony 7.2 by @smnandre in #2411
- Show a visible link to the docs of each package by @javiereguiluz in #2309
New Contributors
- @zavarock made their first contribution in #1825
- @skmedix made their first contribution in #2418
- @karpilin made their first contribution in #2424
- @nehalgajjar made their first contribution in #2431
- @FoxCie made their first contribution in #2426
Full Changelog: v2.22.0...v2.22.1
2.22.0 : So long CSRF!
Hey UX'ers!
Here's a shiny new release for you! 🎉
Live components now rely on same-origin/CORS instead of CSRF tokens for protection. They're now stateless and the session is no longer required! In Turbo, <Turbo:Stream>
and <Turbo:Frame>
Twig components were added plus support for multiple Mercure topics in turbo_stream_listen
. The Map component now supports polylines and have come alive with Live Components. Across the board, we've improved performance, fixed bugs, and updated documentation.
Autocomplete
- Allow configuring TomSelect’s
labelField
by @MatTheCat in #2382 - Update
AutocompleteBundle.tr.php
by @xDeSwa in #2294 - Adjust
index.rst
format by @smnandre in #2297 - Note form requirements by @MrYamous in #2295
- Mention
preload
can be set tofalse
by @MatTheCat in #2348 - Fix handling of associated properties in DQL joins by @HugoSEIGLE in #2377
Live Components
- Remove CSRF tokens - rely on same-origin/CORS instead by @nicolas-grekas in #2251
- Fix documentation for select data-model by @Nek- in #2313
- Fix variable in docs by @xDeSwa in #2402
- Fix checkbox/radio value matching by @smnandre in #2401
- Refactor
elementBelongsToThisComponent
by @smnandre in #2399 - Fix required select not initialized by @dsoriano in #2403
Twig Components
- Cache component properties metadata by @smnandre in #2211
- Optimize TwigPreLexer by @smnandre in #2316
- Improve
BlockStack
performance by @smnandre in #2343 - Fix directory separator in Debug command by @clussiana in #2342
- Improve
ComponentFactory
performance by @smnandre in #2344 - Store mount methods in compiler pass by @smnandre in #2357
- Cache template class resolution by @smnandre in #2364
- Ignore "nested" for Alpine & Vue attributes by @smnandre in #2328
StimulusBundle
- Update Jetbrains stimulus plugin url by @Basster in #2299
- Check controllers source files for laziness by @MatTheCat in #2304
- Mention
removeComments
will no longer be necessary by @MatTheCat in #2347
Turbo
- Add generic
<Turbo:Stream>
component by @seb-jean in #2302 - Add
<Turbo:Frame>
component by @seb-jean in #2303 - Support custom
TurboStreamResponse
actions by @DRaichev in #2298 - Add support for providing multiple mercure topics to
turbo_stream_listen
by @norkunas in #2407 - Delete whitespace for
<twig:Turbo:Stream:*>
components by @seb-jean in #2300
Icons
- Fix commands receive polluted SVG by @smnandre in #2314
- Prepare lock / warmup optimization by @smnandre in #2351
- Support aliases in LockIconsCommand by @smnandre in #2356
- Fetch icons in batch in Import command by @smnandre in #2352
- Use dedicated cache pool by @IndraGunawan in #2410
Map
- Add polyline support by @sblondeau in #2340
- Make UX Map compatible with Live Components (and some internal things) by @Kocal in #2385
- Update documentation by @smnandre in #2317
- Update
index.rst
by @LesRouxDominerontLeMonde in #2339 - Introduce
ux_map.google_maps.default_map_id
configuration by @Kocal in #2350 - Add documentation about
ux_map.google_maps.default_map_id
by @Kocal in #2358 - Remove duplicate question mark ? in DSN string by @alexander-schranz in #2371
- Fix Twig Component example by @ker0x in #2373
- Add position and missing closing parenthesis by @tacman in #2360
- Fix typos 'an' should be 'a' in READMEs by @tacman in #2398
- Fix and improve TypeScript types, refactor same logic into dedicated methods (to reduce file size) by @Kocal in #2406
Svelte
React
Translator
Site
- Update dependencies by @smnandre in #2293
- Fix React/Svelte/Vue demo by @smnandre in #2284
- Update docker compose configuration by @Nek- in #2305
- Update
bin/link-locally
by @smnandre in #2310 - Test Symfony 7.2 beta by @smnandre in #2323
- Use variable webfont by @smnandre in #2327
- Update demo components paths by @smnandre in #2336
- Fix FileTree markup (minor) by @smnandre in #2335
- Update symfony by @smnandre in #2346
- Fix typo on cookbook index by @kbond in #2355
Miscellaneous
- Add myself to code-owners by @Kocal in #2308
- Update the issue template by @smnandre in #2320
- Add CI workflow to compute diff between files dist files by @Kocal in #2269
- Add per-package Yarn scripts (build, watch, test, lint, ...) by @Kocal in #2326
- Some improvements for dependencies management when testing by @Kocal in #2349
- Fix some misc doc issues by @javiereguiluz in #2387
- Add PR template and auto-close PR on subtree split repositories by @Kocal in #2395
- Add
CONTRIBUTING.md
by @Kocal in #2408
New Contributors
- @MrYamous made their first contribution in #2295
- @Basster made their first contribution in #2299
- @LesRouxDominerontLeMonde made their first contribution in #2339
- @clussiana made their first contribution in #2342
- @alexander-schranz made their first contribution in #2371
- @DRaichev made their first contribution in #2298
- @sblondeau made their first contribution in #2340
- @HugoSEIGLE made their first contribution in #2377
Full Changelog: v2.21.0...v2.22.0
2.21.0 : Turbo + TwigComponents = ❤️
Hey UX-er's!
In addition to many minor bug fixes and improvements across all packages, this release adds new
<twig:Turbo:Stream:*>
Twig components to Turbo. Also in Turbo, a newTurboStreamResponse
and
TurboStream
helpers we added.
Map
- Explicitly require StimulusBundle in Bridges, fix tests by @Kocal in #2207
- Update
index.rst
by @ebedy in #2229
Translator
Twig Components
- Fix an example in Twig Components doc by @javiereguiluz in #2213
- Fix
ux:icon
&ux:map
renders by @smnandre in #2210 - Fix internal variables are dispatched by @smnandre in #2220
- Fix wiring of
ComponentRuntime
by @kbond in #2231 - Fix outerblock markup example by @tobiasberge in #2235
Toggle Password
- Misc updates in TogglePassword docs by @javiereguiluz in #2214
React
- Update some dependencies to fix some issues from Dependabot by @Kocal in #2219
- Add
permanent
option toreact_component
function by @smnandre in #2283 - Update
phpunit.xml.dist
by @smnandre in #2286
Swup
StimulusBundle
Autocomplete
- Add czech and slovak translation for "Add ..." message by @fbuchlak in #2216
- Typo on Autocomplete page by @alexislefebvre in #2253
- Add missing types by @smnandre in #2265
- Remove
symfony/string
dependency by @smnandre in #2267 - Remove unused
symfony/security-csrf
dev dependency by @smnandre in #2264 - Update
AutocompleteBundle.de.php
by @simonsolutions in #2285 - Translate "Add ..." text with remote data setup by @jonasdekeukelaere in #2279
Icons
- Some updates in the full configuration example docs by @javiereguiluz in #2226
- Fix a typo in UX Icons docs by @dfridrich in #2275
- Patch to handle Iconify API change by @smnandre in #2289
- Improve
icons:lock
command verbosity by @smnandre in #2287
Turbo
- Add
Helper/TurboStream::append()
et al. methods by @nicolas-grekas in #2196 - Add
<twig:Turbo:Stream:*>
components by @nicolas-grekas in #2227 - Replace JS toolchain by asset-mapper when testing ux-turbo by @nicolas-grekas in #2232
- Fix to the right test by @GrinWay in #2234
Dropzone
Live Components
Miscellaneous
- Migrate from Yarn Classic to Yarn Berry by @Kocal in #2222
- Delete
UPGRADE.md
by @smnandre in #2242 - Clean
.gitignore
/.gitattributes
by @smnandre in #2243 - Remove yarn commands in documentations by @Kocal in #2263
- Remove stimulus-bundle unnecessary warning on documentation by @feymo in #2270
New Contributors
- @ebedy made their first contribution in #2229
- @tobiasberge made their first contribution in #2235
- @GrinWay made their first contribution in #2274
- @dfridrich made their first contribution in #2275
- @jonasdekeukelaere made their first contribution in #2279
Full Changelog: v2.20.0...v2.21.0
2.20.0 : Performance and Optimization!
Hey UX-ers!
This release is packed full of bug fixes and new features. You can now add Polygons in Map and configure icon sets and aliases in Icons. There are also some great performance optimizations, especially in Twig/Live components and StimulusBundle.
Map
- Rename
render_map
Twig functionux_map
by @smnandre in #2073 - Fix bridges
.gitattributes
by @smnandre in #2080 - Fix a Twig function name in docs by @javiereguiluz in #2107
- Misc updates in the docs by @javiereguiluz in #2112
- Rename
leaflet
toL
in event's payloads by @Kocal in #2113 - Adjust changelogs and fix
render_map
deprecated version by @Kocal in #2138 - Render map from Twig with
ux_map()
and<twig:ux:map />
by @smnandre in #2117 - Fix Google/Leaflet bridges when using Webpack Encore by @Kocal in #2199
- Adding polygons to google and leaflet + info window by @rrr63 in #2162
- Fixed typo in links to Symfony UX repo by @sblum51 in #2193
- Fix some links in docs by @javiereguiluz in #2198
Twig Components
- Original
Throwable
get lost during component render by @cuchac in #2030 - Fix debug command by @yceruto in #2088
- Twig code style & "boolean props" part by @smnandre in #2082
- Remove
$tag
parameter from*Node
, as it is now deprecated bytwig/twig
3.12 by @Kocal in #2114 - Add notice about needing
phpdocumentor/reflection-docblock
by @dejagersh in #2102 - Add some explanation about mixing Twig and HTML syntax in nested components by @javiereguiluz in #2125
- Deprecate
cva
twig function by @Kocal in #2144 - Update
index.rst
by @LaurentMarquet in #2170 - Use a
RuntimeExtension
by @smnandre in #2168 - Optimize the
ComponentLoggerListener
by @smnandre in #2167 - Fix HTML in the profiler panel by @javiereguiluz in #2181
- Optimize
ComponentFactory
by @smnandre in #2201
Live Components
- Fix PHP 8.4 errors + deprecations by @smnandre in #2079
- Add
setRouteLocale
inTestLiveComponent
by @smnandre in #2124 - Update CSRF token after component request by @tijnema in #2022
- Fix
DeferLiveComponentSubscriber
service definition by @smnandre in #2200
Autocomplete
- Reset form state on each request for applications that reuse the Symfony application between requests by @dotdevio in #2094
- Translate "Add ..." text by @jmsche in #2108
Icons
- Icon aliases by @smnandre in #2127
- Fix issues found by DOCtor-RST by @Kocal in #2145
- Add support for int/float attribute to
ux_icon
function by @Kocal in #2149 - Add versionadded for Icon Aliases to doc by @kbond in #2163
- Configure icon sets: path, alias & icon attributes by @smnandre in #2156
Dropzone
Translator
- Option to throw an exception instead of returning the message as is when the message is not found. by @Crovitche-1623 in #2185
StimulusBundle
- Improve
StimulusAttributes
rendering performances by switching tohtml
escaping strategy by @Kocal in #2180
Miscellaneous
- Run PHP-CS-Fixer by @Kocal in #2074
- Update php-cs-fixer config by @smnandre in #2077
- Configure
ISSUE_TEMPLATE
by @smnandre in #2084 - Upgrade JS build dependencies by @Kocal in #2075
- Fix Twig extension return types by @smnandre in #2076
- Link to UX support page by @smnandre in #2093
- Upgrade Vitest, use a real browser for Map Bridges tests by @Kocal in #2146
- Add tests on PHP8.4 by @smnandre in #2169
New Contributors
- @cuchac made their first contribution in #2030
- @dotdevio made their first contribution in #2094
- @dejagersh made their first contribution in #2102
- @tijnema made their first contribution in #2022
- @LaurentMarquet made their first contribution in #2170
- @chadyred made their first contribution in #2188
- @Crovitche-1623 made their first contribution in #2185
- @sblum51 made their first contribution in #2193
- @rrr63 made their first contribution in #2162
Full Changelog: v2.19.3...v2.20.0
2.19.3 : Translator fix
Map
- Fix doc link by @smnandre in #2058
- Fix Typo: Removal of an extra ";" by @yoanbernabeu in #2064
Translator
New Contributors
Full Changelog: v2.19.2...v2.19.3