Wednesday, July 29, 2026
HomePHPSymfony UX 3.3.0 launched (Symfony Weblog)

Symfony UX 3.3.0 launched (Symfony Weblog)


Symfony UX 3.3.0 is out. This launch brings first-class assist for Symfony
Reprise in StimulusBundle, two new Shadcn elements for the Toolkit (Sonner
and Combobox), and a batch of quality-of-life enhancements to the ux:set up
command and to how part documentation is parsed and linted.


Hugo Alliaume
Contributed by
Hugo Alliaume
in
#3705

Symfony Reprise is the brand new Vite and
Rsbuild integration for Symfony belongings. It’s model new and nonetheless very a lot
experimental (its first commit landed in September 2025 and the repository solely
simply went public), so count on issues to maneuver quick and APIs to vary. That mentioned,
StimulusBundle already helps it as a first-class asset system, alongside
AssetMapper and Webpack Encore. Level the Reprise plugin at your
controllers.json and begin the app from @symfony/reprise/stimulus:

As a part of this modification, @symfony/stimulus-bridge is now not a default npm
peer dependency: it’s particular to Webpack Encore, and Reprise tasks would
pull it in for nothing. Solely @hotwired/stimulus stays; Encore customers now
set up the bridge manually.


Indra Gunawan
Contributed by
Indra Gunawan
in
#3702

The stimulusFetch: 'lazy' directive that marks a controller as lazy-loaded
is now detected even when it makes use of a preserved remark marker
(/*! stimulusFetch: 'lazy' */). Instruments like tsc and esbuild emit that
kind to maintain vital feedback from being stripped throughout compilation, so
lazy controllers written in TypeScript now behave as anticipated.


Hamza Makraz
Contributed by
Hamza Makraz
in
#3477
and #3482

The Shadcn package good points two elements:

  • Sonner is an opinionated toast notification part for exhibiting
    transient suggestions.
  • Combobox combines an enter with a searchable, filterable record of choices
    for autocomplete-style choice. Set up both one with ux:set up.

Hugo Alliaume
Contributed by
Hugo Alliaume
in
#3700

Recipe names are saved in lower-case, so ux:set up Alert used to fail with
a uncooked “doesn’t exist in any official kits” error. Recipe lookup is now
case-insensitive: Alert resolves to the alert recipe, each with out
--kit (the “which package?” immediate) and with an express --kit=shadcn. When
a recipe genuinely doesn’t exist in any official package, the error now suggests the
closest alternate options discovered throughout all kits as an alternative of leaving you guessing.


Hugo Alliaume
Contributed by
Hugo Alliaume
in
#3694

Part documentation feedback now have a single, well-defined format. A brand new
ComponentDocParser reads the {# @prop #} and {# @block #} feedback
on the prime of a Twig part, and a companion ComponentDocChecker lints them
for consistency (capitalized descriptions ending with a interval, legitimate sorts, and
no extra hand-written “Defaults to …” strings):

Default values are actually learn immediately from the {% props %} tag, so they’re
now not duplicated within the description. The identical parser can energy each the UX
web site and the Toolkit linter, and it offers LLMs a transparent construction to repair
documentation points towards.


Hugo Alliaume
Contributed by
Hugo Alliaume
in
#3696

The Shadcn tooltip now dismisses itself on scroll and resize, and now not
intercepts pointer occasions whereas hidden, so it stops swallowing clicks on the
components beneath it.

LiveComponent now not returns a 500 error on malformed hydration payloads,
handles nullable assortment properties accurately, and stops the data-loading
scanner from ignoring data-live-ignore subtrees. Autocomplete fixes a
LIKE ESCAPE clause that broke search on PostgreSQL.

  • #3705 [StimulusBundle] Add assist for Symfony Reprise (@Kocal)
  • #3702 [StimulusBundle] Assist preserved /*! stimulusFetch: 'lazy' */ syntax (@IndraGunawan)
  • #3703 [StimulusBundle] Type customized controllers to maintain the generated loader deterministic (@Amoifr)
  • #3676 [LiveComponent] Keep away from 500 errors on malformed hydration payloads (@Amoifr)
  • #3688 [LiveComponent] Repair data-loading scanner ignoring data-live-ignore subtrees (@Amoifr)
  • #3690 [LiveComponent] Repair assist for nullable assortment properties on part (@rogierknoester)
  • #3700 [Toolkit] Resolve ux:set up recipe identify case-insensitively and counsel alternate options (@Kocal)
  • #3696 [Toolkit][Shadcn] Dismiss the tooltip on scroll and resize, and cease it from intercepting pointer occasions whereas hidden (@Kocal)
  • #3694 [Toolkit] Refactor (once more) however enhance @prop and @block feedback format (@Kocal)
  • #3685 [Autocomplete] Repair LIKE ESCAPE clause breaking search on PostgreSQL (@Amoifr)
  • #3477 [Shadcn] Add Sonner (@makraz)
  • #3693 [Toolkit] Make part rendering snapshots impartial from the libxml model (@Kocal)
  • #3482 [Toolkit][Shadcn] Add Combobox (@makraz)
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments