Releases: symfony/ux
Release list
2.28.1 : Whoopsie
Hey UX'ers!
We got a little too fancy in our package.json files.
Miscellaneous
- Fix
package.jsonfiles to not use "catalog" feature from PNPM, as it breaks installation fromvendor/PHP packages by @Kocal in #2952
Full Changelog: v2.28.0...v2.28.1
2.28.0 : Map Graduates 🎓
Hey UX'ers!
Map now has minZoom/maxZoom options and has graduated from experimental to stable! 🎉
In LiveComponents, the LiveProp can now map to a routing parameter. Autocomplete now
has the ability to disable plugins.
Warning
If using React with symfony/asset-mapper and NOT symfony/flex, there is a small BC break.
See the CHANGELOG for mitigation details.
Autocomplete
- Force installation of CSS files for AssetMapper by @leevigraham in #2902
- Upgrade Foundry to ^2.0 by @Kocal in #2928
- Allow plugins to be disabled through
tom_select_options.plugins.<plugin> = falseby @maartendekeizer in #401
Live Components
- Update css to cover more data-loading use cases by @barlito in #2891
- Fix BC break when using
PropertyTypeExtractorInterface::getType()on a#[LiveProp]propertyxwhen gettergetXexists by @Kocal in #2922 - Add validation modifiers (min_length, max_length, min_value, max_value) to data-model inputs by @xDeSwa in #2926
- Add the possibility to map
LivePropas a path parameter by @mbuliard in #2673
Icons
- Don't disable commands based on debug by @kbond in #2884
- Document
icon_setsconfiguration by @Kocal in #2938 - Fix
icon_setsconfiguration documentation, follow #2938 by @Kocal in #2939 - Some fixes on LiveComponent assets by @Kocal in #2940
Map
- Rewrite documentation about extra data by @Kocal in #2871
- Add options
minZoomandmaxZoomby @Kocal in #2896 - Mark package as non-experimental by @Kocal in #2945
- Replace deprecation Vitest option
browser.nametobrowser.instancesby @Kocal in #2947
Translator
- Minor fixes in tests context by @Kocal in #2870
- Add functional test to ensure only enabled locales are dumped by @Kocal in #2946
Swup
🚧 Toolkit 🚧
Site
Miscellaneous
- Run JS tests under multiple JS versions, define
.nvmrcto 22.6 by @Kocal in #2865 - Migrate PHPUnit configs and homogenize them by @Kocal in #2867
- Fix functional tests Turbo (Chrome 137 & dev-tools) by @Kocal in #2873
- Migrate
bin/*.jsto TypeScript, usetsxby @Kocal in #2866 - Upgrade Rollup dependencies by @Kocal in #2876
- Remove Babel dependencies by @Kocal in #2877
- Remove
@symfony/stimulus-testingdev dependencies by @Kocal in #2879 - Remove useless
eslint-comments by @Kocal in #2880 - (Re-)use
ramsey/composer-installaction when possible by @Kocal in #2885 - Run unit and functional tests under Windows too by @Kocal in #2816
- Fix components assets compilation on Windows server by @Kocal in #2890
- Fix typo
CONTRIBUTING.mdby @xDeSwa in #2927 - Explicitly import Vitest APIs instead of relying on globals by @Kocal in #2931
- Replace Yarn Berry by PNPM by @Kocal in #2932
- Upgrade Vitest to ^3.2.4 by @Kocal in #2933
- Modernize and simplify our packages building tools, replace Rollup by tsup by @Kocal in #2944
- Download only Chromium browser for Vitest/Playwright tests by @Kocal in #2948
New Contributors
- @barlito made their first contribution in #2891
- @maxperei made their first contribution in #2893
- @leevigraham made their first contribution in #2902
- @mbuliard made their first contribution in #2673
Full Changelog: v2.27.0...v2.28.0
2.27.0 : Map Powerup
Hey UX'ers!
This release adds a bunch of new features to Map: Circle and Rectangle support, attribution and zoom control
options, and more. Fixes, improvements, and optimizations are also included in Autocomplete, Twig Components,
and Live Components.
Autocomplete
Twig Components
- Fix escaping of Alpine.js attribute keys containing numeric characters by @klausi85 in #2833
- Update the docs about nested Twig components by @javiereguiluz in #2847
- Update the docs about the
mount()method of Twig components by @javiereguiluz in #2843
Live Components
- Fix query string decoding with no
=by @smnandre in #2829 - Optimize
LiveComponentStack::getCurrentLiveComponent()by @Kocal in #2821 - Add events assertions in
InteractsWithLiveComponentsby @Arkalo2 in #2712
Map
- Add option to configure attribution and zoom control by @dannyvw in #2792
- Do not override
fitBoundsToMarkerswhen using LiveComponent by @dannyvw in #2811 - Fix missing dynamic attributes on
<twig:ux:map>example by @raphael-geffroy in #2840 - Add Circle support by @Valmonzo in #2838
- [Google] Fix race conditions when loading Google Maps API, when rendering >=2 maps by @Kocal in #2854
- Add Rectangle support by @Valmonzo in #2845
- [Google] Fix
InfoWindowcompatibility withCircleandRectangleby @Kocal in #2858 - Minor improvements on TypeScript types by @Kocal in #2859
- Deprecate property
rawOptionsfromux:map:*:before-createevents, in favor ofbridgeOptionsby @Kocal in #2860 - Allows Map options customization in
ux:map:pre-connectevent (e.g.:zoom,options,bridgeOptions...) by @Kocal in #2861 - Update test to include circle and rectangle data attributes by @Valmonzo in #2862
- Add
extradata toMapby @Kocal in #2863
Icons
- Docs: Merging code blocks; language improvements by @ThomasLandauer in #2793
- Explain Icons SVG size by @dbu in #2670
Site
- Trim Icon's DataList's
<dd>to get a better copy value by @CyrilKrylatov in #2836
Miscellaneous
- Add missing return type in test Kernel by @smnandre in #2830
- Fix
linkscript by adding Bridges support by @Kocal in #2839 - PHPStan: use PHP version from the matrix by @alexisLefebvre in #2842
- Configure
doctrine.orm.enable_native_lazy_objectsto fix deprecation in PHP 8.4+ by @Kocal in #2851 - Reduce number of PHPStan jobs by @Kocal in #2852
- Prevent
yarn watchto exit if TypeScript plugin is unable to compile by @Kocal in #2853 - Upgrade Biome.js to ^2 by @Kocal in #2856
New Contributors
- @CyrilKrylatov made their first contribution in #2836
- @klausi85 made their first contribution in #2833
- @Arkalo2 made their first contribution in #2712
Full Changelog: v2.26.1...v2.27.0
2.26.1 : Conflict Resolution
Hey UX'ers!
Just a small release to fix a Live Component composer conflict.
Live Components
Miscellaneous
Full Changelog: v2.26.0...v2.26.1
2.26.0 : Package Deprecations
Hey UX'ers!
This release deprecates 3 packages: symfony/ux-typed, symfony/ux-lazy-image
and symfony/ux-swup. These will be removed in 3.0. Their respective README files
have migration guides to help you move to alternatives.
Also included are many bug fixes and improvements, including multipolygon support
in symfony/ux-map!
Twig Components
Live Components
- Add missing
DefaultActionTraitin a LiveComponent code example by @welcoMattic in #2758 - Key is more reliable with child components by @weaverryan in #2699
LiveProp: Pass the property name as second parameter of themodifiercallback by @jannes-io in #2744- Improve misleading smart render algorithm docs by @norkunas in #2741
- Fix
PropertyTypeExtractorInterface::getTypes()deprecation, use TypeInfo ^7.2Typeby @mtarld in #2607
Map
- Add definition to after create events in controller by @mart-insiders in #2763
- Add return type to
__toString()by @dannyvw in #2772 - Remove invalid marker icon example by @dannyvw in #2771
- Add multipolygon support by @dannyvw in #2762
- Add missing dependency for
spatie/phpunit-snapshot-assertionstorequire-devby @dannyvw in #2773 - Optional leaflet tilelayer by @dannyvw in #2779
Icons
- Check for empty paths before calling Finder in
ux:icons:lockby @ameotoko in #2723 - Fix typos by @ThomasLandauer in #2781
- Remove broken link by @ThomasLandauer in #2788
- Fix links to
symfony/ux-twig-componentby @ThomasLandauer in #2789
StimulusBundle
- Skip mapping
.tscontroller if.jsversion is available by @phasdev in #2702 - Replace
chartexamples byhelloto avoid confusion with the ChartJS component by @welcoMattic in #2707
React
Turbo
🚧 Toolkit 🚧
- Add components metadata (for dependencies) by @Kocal in #2726
- Remove
FileTypeby @Kocal in #2800 - Remove old
FileTypereferences by @Kocal in #2802 - Add myself to Toolkit code-owners by @Kocal in #2804
- Remove
Kit::$uxIcon, make icons internal to the website by @Kocal in #2807
Typed
LazyImage
Swup
Miscellaneous
- Configure Git username/email to github-actions(bot) when committing version updates by @Kocal in #2759
- Rework
tests-phpjob matrix, better covers different PHP/SF versions, test all components in a single job by @Kocal in #2734 - Re-organize workflows: split unit/functional/app tests, split code quality workflow by @Kocal in #2764
- Remove oldest versionadded by @smnandre in #2706
- Homogenize PHP-CS-Fixer configuration with
symfony/symfony, and run it by @Kocal in #2768 - Replace
ramsey/composer-installbycomposer installinapp-testsworkflow by @Kocal in #2780 - Re-add PHP-CS-Fixer by @Kocal in #2803
New Contributors
- @phasdev made their first contribution in #2702
- @teklakct made their first contribution in #2006
- @ameotoko made their first contribution in #2723
- @mart-insiders made their first contribution in #2763
- @dannyvw made their first contribution in #2772
- @ThomasLandauer made their first contribution in #2781
Full Changelog: v2.25.2...v2.26.0
2.25.2 : StimulusAttribute fix
Hey UX'ers!
Just a small bug fix release to fix using StimulusAttributes with Twig Components.
Twig Components
- Fix
ComponentAttributesrendering when usingStimulusAttributesas 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
querySelectordynamic 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_listentopics 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.jsonsynchronization 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
BadRequestHttpExceptionin case of malformedextra_optionsby @norkunas in #2600 - Add
EnumTypeprecision 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/LICENSEfiles 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
OptionResolvernamespace in doc example by @ThibaultPelloquin in #2634 - Fix test when high-deps by @Kocal in #2645
Live Components
- Move
symfony/property-infoto 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.rstby @DennisdeBest in #2603 - Add Twig Extensions for
metatags by @seb-jean in #2618 - Pass EventSource options to
turbo_stream_listenby @Fan2Shrek in #2447
StimulusBundle
- Add support for
symfony/stimulus-bridge4 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
optionsto 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.jsonfiles, to prepare publication on NPM by @Kocal in #2595 - Document
src/**/assets/README.mdfiles 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
ExtraLazyChoiceLoaderin favor ofLazyChoiceLoaderby @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
ExposeInTemplateand 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
TemplateNameParserby @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_hashinstead ofkernel.secretinCacheWarmerby @dkarlovi in #2451 - Remove form property in live component docs by @jannes-io in #2474
- Document
make:twig-componentby @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
__componentproperty to be serialized when calledJSON.stringify()by @Kocal in #2537 - Add Documentation for testing with
LiveCollectionTypeby @yalit in #2517 - Fix formatting of the inline code for the text
RedirectResponseby @zefyx in #2530 - Fix
ComponentWithFormTraitnot working in batch actions by @smnandre in #2553
Icons
Map
Chart.js
- Listen to Stimulus
disconnectevent to destroy the chart by @Shadow-Devil in #1944
Stimulus
- Update Stimulus Components URL by @94noni in #2495
- Fasten lazy loading + add debug
lazy:loadingandlazy:loadedby @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.mdby @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