Releases: symfony/ux
Fixing Turbo support for newer Doctrine
Hi UX'ers!
This release fixes a regression in the Live Component testing utilities.
Turbo
- [Turbo] Fixing support for not using old ClassUtils by @weaverryan in #1471
StimulusBundle
- [StimulusBundle] UxPackageReader class doesn't support projects with varied structures using Composer with custom directory structure by @yobrx in #1467
New Contributors
Full Changelog: v2.14.1...v2.14.2
Have fun!
Fix regression in Live Component testing tools
Hi UX'ers!
This release fixes a regression in the Live Component testing utilities.
Live Component
StimulusBundle
ux.symfony.com
New Contributors
Full Changelog: v2.14.0...v2.14.1
Have fun!
Features & Fixed for LiveComponent, TwigComponent & other packages
Hi UX'ers!
A beautiful release with a set of features across several packages. 100+ commits, from 19 contributors 🔥 .
TwigComponent
- Make
ComponentAttributes
traversable/countable - Fixed lexing some
{# twig comments #}
with HTML Twig syntax - Fix various usages of deprecated Twig code
LiveComponent
- Add support for URL binding in
LiveProp
- DOM morphing changed from
morphdom
toidiomorph
- Allow multiple
LiveListener
attributes on a single method - Requests to LiveComponent are sent as POST by default
- Add method prop to AsLiveComponent to still allow GET requests, usage:
#[AsLiveComponent(method: 'get')]
- Add a new
urlReferenceType
parameter toAsLiveComponent
, which allows to
generate different type URL (e.g. absolute) for the component Ajax calls - The
symfony/serializer
dependency is now optional - Added a
data-skip-morph
attribute to allow skipping morphing of an element
(the element's attributes will be morphed, but its inner HTML will be overwritten
instead of morphed) - Added an entry to the packages'
package.json
file so that@symfony/ux-live-component
will appear in the user'simportmap.php
file if using AssetMapper. This
will allow using the JavaScript from the package without extra setup. - Fixed edge-case rendering bug where a 2nd Ajax request might start before
the 1st finished processing - Fix usage of
{% embed %}
with{% block %}
in<twig:>
components - Fixed
data-loading
not working when on root element of a component - Fixed error when
class
attributes contained a space at start or end - Fixed loading directives being matched in a child component
Autocomplete
- Fixed behavior of Autocomplete when the underlying
select
oroption
elements were modified to hopefully, more reliably, reset the autocomplete
instance. This is particularly important with LiveComponents. - Add support for the
render.loading_more
Tom Select Virtual Scroll option (loading_more_text
) - Avoid losing the selected options when the Stimulus component is disconnected
and reconnected to the DOM. - Added
tom-select/dist/css/tom-select.bootstrap4.css
toautoimport
- this
will cause this to appear in yourcontrollers.json
file by default, but disabled
see.
StimulusBundle
- Added Typescript controllers support
ChartJs
- Add support for Chart.js version 4
Full Changelog: v2.13.3...v2.14.0
New Contributors
- @nayodahl made their first contribution in #1316
- @squrious made their first contribution in #1230
- @srich387 made their first contribution in #1367
- @vgaret made their first contribution in #1338
- @hepisec made their first contribution in #1218
- @althaus made their first contribution in #1425
Have fun!
Various minor bug fixes
Hi UX'ers!
A bug fix release. Nice!
TwigComponent
LiveComponent
- Fix date object hydration for custom format #1295
- Allow trailing coma in "props" tags #1298
- Fix
BatchActionController
redirection #1301
StimulusBundle
- Remove
stimulus.asset_mapper.loader_javascript_compiler
when no asset-mapper
Full Changelog: v2.13.2...v2.13.3
New Contributors
- @nieck made their first contribution in #1272
- @maxrem made their first contribution in #1269
- @boedah made their first contribution in #1280
- @TBoileau made their first contribution in #1275
- @JeroenMoonen made their first contribution in #1302
- @mariusadam made their first contribution in #1294
- @6insanes made their first contribution in #1301
- @stloyd made their first contribution in #1311
Have fun!
v2.13.2 Revert change to type: module
Hi UX'ers!
In 2.13.0, all UX JavaScript packages changed to type: module
. This had unintended side effects in certain environments / setups. This release reverts that change. See #1268.
Full Changelog: v2.13.1...v2.13.2
Have fun!
v2.13.1: Fix chart.js but with type: module
Hi UX'ers!
This release fixes a but in ux-chart.js. We changed the package to type: 'module'
, but due to some inconsistencies with the chart.js
library, that can't be done quite yet. We've reverted for now.
What's Changed
- [Chart.js] Reverting chart.js type: module by @weaverryan in #1264
Full Changelog: v2.13.0...v2.13.1
Have fun!
v2.13.0: Lazy/Deferred components, Symfony 7 support & more
Hi UX People!
This is a big release that contains new features across the components! It's the result of 156 commits from 29 different contributors! Note there is an edge-case BC BREAK in StimulusBundle if you were using action parameters in an unexpected way.
All Components
- Add Symfony 7 support.
- Change JavaScript package to
type: module
Autocomplete
- Add new
BaseEntityAutocompleteType
- Drop symfony 5.4 support.
TwigComponent
- Added configuration to separate your components into different "namespaces"
- Add
outerScope
variable reach variables from the parent template of an
"embedded" component. - Deprecate calling
ComponentTemplateFinder
constructor withoutdirectory
argument. - Add profiler integration:
TwigComponentDataCollector
and debug toolbar templates - Add search feature in
debug:twig-component
command. - Fix inconsistencies with how
{% component %}
/<twig:component>
syntaxes are
rendered vscomponent()
:PostRenderEvent
is now dispatched & the template
resolution happens at runtime. - Fix priority of passed in props vs default props with anonymous components.
- Add Symfony 7 support.
- TwigPreLexer: improve performance.
- Fix twig:lint bug with anonymous component tag.
LIveComponent
- Add deferred/lazy rendering of Live Components.
- Fix option tag synchronization.
- Handle array-like objects when working with checkboxes.
- Normalize "true" & "false" model values
- Fix DTO hydration from phpdoc typehints.
- Fix instantiating LiveComponentMetadata multiple times.
- Throwing an error when setting an invalid model name.
StimulusBundle
- Normalize parameters names given to twig helper 'stimulus_action()'.
BC Break: previously, parameters given in camelCase (eg.
bigCrocodile
) were incorrectly registered by the controller as
flatcase (event.params.bigcrocodile
). This was fixed, which means
they are now correctly registered as camelCase
(event.params.bigCrocodile
). - Added AssetMapper 6.4 support.
- Add Symfony 7 support.
- Fix missing double dash in namespaced Stimulus outlets.
- Change JavaScript package to
type: module
Svelte
- Add support for Svelte 4.
New Contributors
- @tacman made their first contribution in #1144
- @dsoriano made their first contribution in #1145
- @gregberger made their first contribution in #1148
- @andersonamuller made their first contribution in #1154
- @JoppeDC made their first contribution in #1135
- @gharlan made their first contribution in #1175
- @jakubtobiasz made their first contribution in #1143
- @maelanleborgne made their first contribution in #1196
- @yceruto made their first contribution in #1185
- @norival made their first contribution in #1193
- @rrenteria-dev made their first contribution in #1250
- @TheDutchScorpion made their first contribution in #1251
- @bdujon made their first contribution in #1246
Full Changelog: v2.12.0...v2.13.0
v2.12.0 LiveComponent DTO support & much more
Hi UX People!
This release contains a basket-load of goodness.
TwigComponent
- Added a
debug:twig-component
command. - Fixed bad exception when the error comes from a Twig template.
- Fixed deprecation with
TemplateCacheWarmer
return type.
LiveComponent
- Add support for (de)hydrating DTO classes in
LiveProp
. - Fixed
emit()
method ofTestLiveComponent
to properly test events. - Add
actingAs()
toTestLiveComponent
. - Fixed rendering bug when using Chrome's translation feature.
- Add
onUpdated()
hook forLiveProp
. - Fix support for Alpine.js & live components.
TogglePassword
- Added default values for the Stimulus controller values.
New Contributors
- @OskarStark made their first contribution in #1109
- @MirakuSan made their first contribution in #1101
- @StevenRenaux made their first contribution in #1088
- @rdavaillaud made their first contribution in #1134
Full Changelog: v2.11.2...v2.12.0
Have fun!
ux-autocomplete security release + LiveComponent bugs
Hi!
This release contains an important security release for symfony/ux-autocomplete
: https://symfony.com/blog/cve-2023-41336-symfony-ux-autocomplete-prevent-injection-of-invalid-entity-ids-for-autocomplete-fields
If you are using symfony/ux-autocomplete
, you should upgrade immediately:
composer update symfony/ux-autocomplete
Other changes:
LiveComponents
- [bug] Only consider Live components in InterceptChildComponentRenderSubscriber by @sneakyvv in #1097
- [bug] Don't store ux_live_component URLs in setTargetPath of the security component by @gbere in #1096
New Contributors
- @andersmateusz made their first contribution in #1100
- @mariecharles made their first contribution in #1058
- @gbere made their first contribution in #1096
Full Changes: v2.11.1...v2.11.2
v2.11.1 - Twig & Live Component bug fixes
Hi UX'ers!
A small release to address a few bug fixes:
What's Changed
- [LiveComponent] Add priority to PreDehydrate & PostHydrate hooks by @sneakyvv in #1074
- [LiveComponent] Use
display:revert
fordata-loading
style by @norkunas in #1079 - [TwigComponent][LiveComponent] Fix Live embedded component within namespaced template by @sneakyvv in #1082
- [TwigComponent][LiveComponent] Fix DataModelPropsSubscriber for embedded components by @sneakyvv in #1093
Full Changes: v2.11.0...v2.11.1
Have fun!