Releases: symfony/ux
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
2.19.2 : Enable Anon. Twig Components in Bundles
Another follow up to 2.19.0 that fixes UX Map plus enables a convention for providing anonymous Twig Components in 3rd-party bundles!
Map
- Re-add keyword "symfony-ux", to fix Symfony Flex
package.json
resolving by @Kocal in #2052 - [Leaflet] Fix marker icon gradients rendering, which can fails on some projects by @Kocal in #2055
Twig Components
Live Components
- Update naming of stimulus controller on default attributes - index.rst by @DennisdeBest in #2046
Autocomplete
- Fix warning and code formatting on Autocomplete by @alexislefebvre in #2049
New Contributors
- @alexislefebvre made their first contribution in #2049
Full Changelog: v2.19.1...v2.19.2
2.19.1 : UX Map Improvements
Just a small follow up to 2.19.0 that adds some missing UX Map features!
Map
- Add the possibility to not configure map zoom/center if fit bounds to markers by @Kocal in #2045
- Add support for
libraries
for Google Bridge, inject provider's SDK (L
orgoogle
) to dispatched events by @Kocal in #2044
Full Changelog: v2.19.0...v2.19.1
2.19.0 : New UX Map Package
Hey UX-ers!
This is a big new release with a lot of bug fixes, quality of live improvements, and a
new UX Map package. A new live_action()
Twig function was added to dramatically reduce
the boilerplate for Live Component actions.
Translator
- Revert Fix changing dump directory using AssetMapper by @maelanleborgne in #1913
- Disable cache warmup when translator is identity translator by @SanderVerkuil in #1965
- Fix CS on TranslatorCompilerPass by @Kocal in #1996
- Add configuration to filter dumped translations by domain by @maelanleborgne in #1930
Turbo
- Fix Doctrine Proxy are not Broadcasted by @smnandre in #1929
- Modernize code (ppp, types..) by @smnandre in #1931
- Fix mercure config-file by @Chris53897 in #1928
Twig Components
- Ignore array|sequence in exception message by @smnandre in #1940
- Allow @ prefix in nested attributes by @smnandre in #1966
- Allow attributes to be prefixed with
@
by @kbond in #1960 - Minor syntax fixes in the Twig component docs by @javiereguiluz in #1977
- Fix wrong example for HTML syntax by @WebMamba in #1985
- Fix null props not overwrite parent context by @WebMamba in #1989
- Fix random errors are throw when empty props by @WebMamba in #1988
- Mention that boolean properties require the dynamic syntax by @javiereguiluz in #1991
- Minor syntax fix in Twig Components docs by @javiereguiluz in #2021
Live Components
- Tokenize classes on all allowed whitespaces by @aleho in #1828
- Fix typing for loading hooks + HookManager by @YummYume in #1921
- Fix (de)hydration of composite and/or foreign ID entities by @MatTheCat in #1957
- Typo in LiveComponentHydrator.php by @JeanDavidDaviet in #1972
- Handle
loading="lazy"
for LiveComponent only by @smnandre in #1976 - Allow updates in arrays of DTOs by @cgrabenstein in #1990
- Add a new helper to interact with forms in functional tests by @yoye in #1992
- Fix 'onUpdated' hook call by @kempha in #1980
- Add 'live_action' twig function by @pierredup in #1946
- Document how to use
extra_options
in the Ajax-powered autocomplete by @jakubtobiasz in #1702 - Add missing end delimiter by @JanoschOltmanns in #2037
Dropzone
Icons
- Expose IconRendererInterface by @smnandre in #1889
- Emphasis HTML syntax requires TwigComponent by @smnandre in #1994
- Fix some misc issues in UX Icons docs by @javiereguiluz in #2027
- Add
ignore_not_found
config option by @smnandre in #2023
React
Lazy Image
Map
- Create Map component by @Kocal in #1937
- Rename "symfony/ux-map-%s" to "symfony/ux-%s-map" by @Kocal in #2031
- Fix custom attribute "data-controller" usage by @Kocal in #2032
- [Leaflet] Fix Marker inside-circle by @Kocal in #2036
- [Leaflet] Fix Popup's automatic-content by @Kocal in #2035
- Change "BeforeConnect" for "BeforeCreate" in documentation by @Kocal in #2039
- Add "extra" data for markers and infowindows by @Kocal in #2040
- Fix some comments in component defer part by @Nek- in #2043
Miscellaneous
- Upgrade target from es2017 to es2021 by @Kocal in #1987
- Drop ESLint and Prettier for Biome by @Kocal in #1848
- Upgrade Biomejs, fix patterns, don't use yarn workspaces by @Kocal in #2015
- Update README.md by @94noni in #2038
New Contributors
- @aleho made their first contribution in #1828
- @MatTheCat made their first contribution in #1957
- @SanderVerkuil made their first contribution in #1965
- @cgrabenstein made their first contribution in #1990
- @Chris53897 made their first contribution in #1928
- @yoye made their first contribution in #1992
- @kempha made their first contribution in #1980
- @JanoschOltmanns made their first contribution in #2037
- @Nek- made their first contribution in #2043
Full Changelog: v2.18.1...v2.19.0
2.18.1 : Hotfix
👋🏻 This is a small release that fixes some issues we had in 2.18.0.
Twig Components
- Revert throwing exception when public property is unitialized by @smnandre in #1911
- Revert removing
twig_component.controllers_json
by @smnandre in #1908
Live Components
Stimulus
Translator
- Fix changing dump directory using AssetMapper by @maelanleborgne in #1904
Full Changelog: v2.18.0...v2.18.1
2.18.0 : Mostly Maintenance
Hey UX'ers!
This is mostly a maintenance release with a lot of small fixes and improvements across all components.
The most notable changes are the addition of Slovak translations for the Autocomplete component the
abstraction of image content fetching in the Lazy Image component.
Lazy Image
- Abstract image content fetching by @Kocal in #1781
- Re-add forgotten
twig.runtime
by @Kocal in #1771 - Fix code block rendering in docs by @mttsch in #1876
Autocomplete
- Ignore the
ExtraLazyChoiceLoader
if the parent$loader
isnull
by @vesselind in #1775 - Add Slovak translations by @fbuchlak in #1866
Turbo
- Document running tests locally by @kbond in #1778
- Fix
TurboExtension
for PhpStan by @smnandre in #1854 - Fix the example with Expression Language by @seb-jean in #1874
Live Components
- Add a note about
render:finished
event by @smnandre in #1779 - Fix namespaces on documentation by @mickaelblondeau in #1801
- Add signature overload for on and off methods of component by @YummYume in #1685
- Add support for testing file uploads in actions by @daFish in #1832
- Fix EscaperRuntime deprecation by @smnandre in #1855
- Add missing closing paranthesis by @richardhj in #1859
Twig Components
- Fix LiveComponent namespace mapping by @smnandre in #1772
- Misc fixes in Twig Component docs by @javiereguiluz in #1789
- Remove the
--dir
option indebug:twig-component
command by @javiereguiluz in #1790 - Fix aria attribute cannot be removed by @smnandre in #1805
- Throws if exposed public prop is uninitialized by @smnandre in #1780
- Fix silently failing tests by @adrienlucas in #1810
- Remove wrongly added configuration by @smnandre in #1823
- Allow input props to have the same name as context variables by @squrious in #1820
- Fix
EscaperExtension
deprecation by @smnandre in #1835 - Update DOC preMount validation data code by @cavasinf in #1845
- Disable profiler integration via configuration by @smnandre in #1877
- Restrict anonymous component lookup to Twig files in debug command by @squrious in #1882
Icons
- Fix warning when Iconset license URL is null by @smnandre in #1792
- Use lowercase
<twig:ux:icon />
in documentation by @smnandre in #1798 - Improve aria attributes rendering by @smnandre in #1797
- Document http-client requirement by @smnandre in #1885
Translator
- Create valid constant names for keys starting with numeric chars by @wolfgangweintritt in #1809
Stimulus
- Use Twig >3.9
EscaperRuntime
by @smnandre in #1824 - Use version instead of url in docs by @ruudk in #1865
Chart.js
- Replace
chart.js/auto
import withChart.register
calls by @smnandre in #1263 - Improve Y axis formatting example by @hellomedia in #1837
ux.symfony.com
- Fix UX Icons color by @smnandre in #1888
- Add Icons package data by @smnandre in #1864
- CodeBlock with gutter and line pre-slice by @smnandre in #1863
- Icons colors by @smnandre in #1831
- Some more cleaning by @smnandre in #1815
- Add
robots.txt
&sitemap.xml
by @smnandre in #1814 - Clean demos & packages pages by @smnandre in #1813
- Fix input range color by @smnandre in #1821
- Clean templates by @smnandre in #1827
- Adapt highlighted code blocks to tempest by @smnandre in #1811
- Various small fixes / improvements by @smnandre in #1804
- switch from
highlight.js
totempest/highlight
by @kbond in #1808 - Configure Twig-CS-Fixer by @smnandre in #1793
- adjust external link config by @kbond in #1794
- Refactor Translator page by @smnandre in #1783
- refactor commonmark config by @kbond in #1791
- Fix InvoiceCreator demo by @WebMamba in #1861
- Infinite Scroll 2/2 by @smnandre in #1887
New Contributors
- @vesselind made their first contribution in #1775
- @mickaelblondeau made their first contribution in #1801
- @YummYume made their first contribution in #1685
- @wolfgangweintritt made their first contribution in #1809
- @hellomedia made their first contribution in #1837
- @richardhj made their first contribution in #1859
- @fbuchlak made their first contribution in #1866
- @ruudk made their first contribution in #1865
Full Changelog: v2.17.0...v2.18.0
2.17.0 : New UX Icons Package
Hey UX-ers!
This is a big release - lots of new features to Twig/Live Components and the first release of UX Icons! With UX Icons, comes a beautiful icon search on ux.symfony.com!
Live Components
- Improve child render handling: avoid removing element from DOM when possible by @weaverryan in #1561
- Add modifier option to
LiveProp
by @squrious in #1507 - Fix collections hydration with serializer by @squrious in #1583
- Lazy load LiveComponent by @smnandre in #1515
- Throw exception for typed LiveProps as interfaces by @smnandre in #1593
- Alias URL bound props by @squrious in #1396
Twig Components
- CVA: Apply function accept null arguments by @WebMamba in #1575
- Add
attributes.has()
method by @barbieswimcrew in #1571 - CVA: Allow array for base, variants and compound by @WebMamba in #1600
- CVA: Allow compound variant value to be string by @kbond in #1610
- Allow stringable objects as attribute values by @kbond in #1609
- Nested attributes by @kbond in #1405
- Remove experimental tag to HTML syntax by @WebMamba in #1662
- CVA: Resolving boolean as variant keys by @smnandre in #1710
- Handle
aria-*
attribute boolean values by @smnandre in #1709 - Merge props from template with class props by @WebMamba in #1652
- Twig "use_yield" compatibility by @smnandre in #1487
Icons
Chart.js
- Add view-value-change event by @IndraGunawan in #1605
Autocomplete
- Command
make:autocomplete-field
output a doc compliant class by @lucbu in #1699 - Use
choice_value
in theWrappedEntityTypeAutocompleter
inEntityAutocompleteField
by @jakubtobiasz in #1723
Turbo
- Use blocks instead of partials to render turbo-streams by @nicolas-grekas in #1045
Lazy Image
New Contributors
- @o0morgan0o made their first contribution in #1580
- @barbieswimcrew made their first contribution in #1576
- @tomschwiha made their first contribution in #1621
- @IndraGunawan made their first contribution in #1605
- @JeanDavidDaviet made their first contribution in #1633
- @gremo made their first contribution in #1615
- @kachnitel made their first contribution in #1584
- @yoanbernabeu made their first contribution in #1654
- @LtMost made their first contribution in #1703
- @JorickPepin made their first contribution in #1692
- @kasperh90 made their first contribution in #1689
- @lucbu made their first contribution in #1699
- @cavasinf made their first contribution in #1705
- @raphael-geffroy made their first contribution in #1716
- @daifma made their first contribution in #1746
- @adrienlucas made their first contribution in #1745
Full Changelog: v2.16.0...v2.17.0
2.16.0 : Live Components is Stable 🥳
Hi UX'ers!
This release is the first that declares Live Components as stable 🎆! This means that it is now protected by our backwards compatibility promise. However, there are some BC breaks in LiveComponents that will affect most projects. See https://github.com/symfony/ux/blob/2.x/src/LiveComponent/CHANGELOG.md#2160
In addition, this release has a number of fun features & fixes.
Live Components
-
LiveComponents is now stable and no longer experimental 🥳
-
[BC BREAK] The
data-action-name
attribute behavior was removed in favor of using Stimulus "action parameters" anddata-live-action-param
. This is a breaking change if you were using thedata-action-name
attribute directly in your templates. #1418To upgrade your application, follow these changes:
<button data-action="live#action" - data-action-name="debounce(300)|save" + data-live-action-param="debounce(300)|save" >Save</button>
To pass arguments to an action, also use the Stimulus "action parameters" syntax:
<button data-action="live#action" - data-action-name="addItem(id={{ item.id }}, itemName=CustomItem)" + data-live-action-param="addItem" + data-live-id-param="{{ item.id }}" + data-live-item-name-param="CustomItem" >Add Item</button>
Additionally, the
prevent
modifier (e.g.prevent|save
) was removed. Replace this with the standard Stimulus:prevent
action option:<button - data-action="live#action + data-action="live#action:prevent" - data-action-name="prevent|save" + data-live-action-param="save" >Save</button>
-
[BC BREAK] The
data-event
attribute was removed in favor of using Stimulus "action parameters": renamedata-event
todata-live-event-param
. Additionally, if you were passing arguments to the event name, use action parameter attributes for those as well - e.g.data-live-foo-param="bar"
. #1418 -
Reverted setting
ignoreActiveValue: true
in Idiomorph #1548 -
New placeholder macro to generate defer/lazy skeleton #1532
-
improve TestLiveComponent::actingAs() #1461
-
Drop Twig 2 support #1436
-
Add better error message when hydrating dates #1431
-
Store TemplateMap in build_dir #1525
Twig Component
- Introduce CVA to style TwigComponent #1416
- Drop Twig 2 support #1436
- Fix full context is stored in profiler #1552
Autocomplete
Translator
- Increase version range of
intl-messageformat
to^10.5.11
, in order to see a faster implementation of ICU messages parsing. #1443
New Contributors
- @itsdanielfelix made their first contribution in #1511
- @Fan2Shrek made their first contribution in #1545
- @xDeSwa made their first contribution in #1535
Full Changelog: v2.15.0...v2.16.0
Have fun!