Releases: symfony/ux
2.28.2 : Whoopsie 2
Hey UX'ers!
This fixes a LiveComponent regression added in 2.28.0.
Live Components
Icons
- Change
xmlns
attribute of downloaded icons tohttp://www.w3.org/2000/svg
by @roverwolf in #2959
Miscellaneous
- Rework
app-tests
job to usenpm
as user's packages manager by @Kocal in #2953 - Fix npm releases with pnpm by @Kocal in #2954
- Add Fabbot as a GitHub Actions by @Kocal in #2955
- Apply fabbot rules by @nicolas-grekas in #2957
New Contributors
- @roverwolf made their first contribution in #2959
Full Changelog: v2.28.1...v2.28.2
2.28.1 : Whoopsie
Hey UX'ers!
We got a little too fancy in our package.json
files.
Miscellaneous
- Fix
package.json
files 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> = false
by @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]
propertyx
when gettergetX
exists 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
LiveProp
as a path parameter by @mbuliard in #2673
Icons
- Don't disable commands based on debug by @kbond in #2884
- Document
icon_sets
configuration by @Kocal in #2938 - Fix
icon_sets
configuration 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
minZoom
andmaxZoom
by @Kocal in #2896 - Mark package as non-experimental by @Kocal in #2945
- Replace deprecation Vitest option
browser.name
tobrowser.instances
by @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
.nvmrc
to 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/*.js
to TypeScript, usetsx
by @Kocal in #2866 - Upgrade Rollup dependencies by @Kocal in #2876
- Remove Babel dependencies by @Kocal in #2877
- Remove
@symfony/stimulus-testing
dev dependencies by @Kocal in #2879 - Remove useless
eslint-
comments by @Kocal in #2880 - (Re-)use
ramsey/composer-install
action 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.md
by @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
InteractsWithLiveComponents
by @Arkalo2 in #2712
Map
- Add option to configure attribution and zoom control by @dannyvw in #2792
- Do not override
fitBoundsToMarkers
when 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
InfoWindow
compatibility withCircle
andRectangle
by @Kocal in #2858 - Minor improvements on TypeScript types by @Kocal in #2859
- Deprecate property
rawOptions
fromux:map:*:before-create
events, in favor ofbridgeOptions
by @Kocal in #2860 - Allows Map options customization in
ux:map:pre-connect
event (e.g.:zoom
,options
,bridgeOptions
...) by @Kocal in #2861 - Update test to include circle and rectangle data attributes by @Valmonzo in #2862
- Add
extra
data toMap
by @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
link
script 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_objects
to fix deprecation in PHP 8.4+ by @Kocal in #2851 - Reduce number of PHPStan jobs by @Kocal in #2852
- Prevent
yarn watch
to 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
DefaultActionTrait
in 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 themodifier
callback by @jannes-io in #2744- Improve misleading smart render algorithm docs by @norkunas in #2741
- Fix
PropertyTypeExtractorInterface::getTypes()
deprecation, use TypeInfo ^7.2Type
by @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-assertions
torequire-dev
by @dannyvw in #2773 - Optional leaflet tilelayer by @dannyvw in #2779
Icons
- Check for empty paths before calling Finder in
ux:icons:lock
by @ameotoko in #2723 - Fix typos by @ThomasLandauer in #2781
- Remove broken link by @ThomasLandauer in #2788
- Fix links to
symfony/ux-twig-component
by @ThomasLandauer in #2789
StimulusBundle
- Skip mapping
.ts
controller if.js
version is available by @phasdev in #2702 - Replace
chart
examples byhello
to avoid confusion with the ChartJS component by @welcoMattic in #2707
React
Turbo
🚧 Toolkit 🚧
- Add components metadata (for dependencies) by @Kocal in #2726
- Remove
FileType
by @Kocal in #2800 - Remove old
FileType
references 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-php
job 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-install
bycomposer install
inapp-tests
workflow 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
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