89 Commits

Author SHA1 Message Date
github-actions[bot]
153287132d Update versions to 2.34.0 2026-03-22 22:21:50 +00:00
Hugo Alliaume
284c384413 [Autocomplete][Chartjs][Cropperjs][Dropzone][LazyImage][LiveComponent][Map][Notify][React][StimulusBundle][Svelte][Swup][TogglePassword][Translator][Turbo][Typed][Vue] Update package.json to 2.33.0
The job that release npm packages failed https://github.com/symfony/ux/actions/runs/23216748609/job/67479440402

it should be fixed by https://github.com/symfony/ux/pull/3400
2026-03-21 23:29:11 +01:00
Hugo Alliaume
c21fb7c8c8 Update tsdown & use @tsdown/css
This update simplifies the tsdown configuration, we do not need our custom plugin to minify CSS anymore (replaced by `css.minify = true`), and same for our hooks that rename the built CSS (replaced by `css.fileName`) 😍
2026-03-20 09:00:50 +01:00
Hugo Alliaume
7a7840aaa1 Remove unused @vitest/browser 2026-03-15 09:01:16 +01:00
Hugo Alliaume
34838b46d5 Update Vitest to ^4.1.0 2026-03-15 08:57:29 +01:00
Hugo Alliaume
c76f3b7801 Migrate from tsup (deprecated) to tsdown
tsup is deprecated in favor of tsdown.

Follow https://github.com/symfony/ux/pull/2935, https://github.com/symfony/ux/pull/2944, and many (local) tries were I was not really happy with the files generated by tsdown/rolldown, we are finally having something extra good!

We have the benefits from https://github.com/symfony/ux/pull/2935, https://github.com/symfony/ux/pull/2944, but without their drawbacks. The code correctly follow the `es2022` target and does not do anything weird anymore with static properties (needed by controllers).

I (Claude) added a plugin to remove the region and JSDoc comments (except if they contain `@deprecated``), since I think we want to keep the code non-minified.
2026-02-28 09:33:37 +01:00
Hugo Alliaume
4088473265 Remove tsx dependency and rely on Node.js 22.18.0 native TypeScript runner 2026-02-27 20:17:39 +01:00
Hugo Alliaume
f9d191d902 Drop Biome.js for oxfmt and oxlint 2026-02-03 23:14:09 +01:00
Hugo Alliaume
0dfa4c8265 Fix npm releases due to repository issue 2026-01-16 23:36:00 +01:00
Hugo Alliaume
fa32673eed Update versions to 2.32.0 2026-01-16 23:35:37 +01:00
Hugo Alliaume
fc64b5cc5f Update root JS dependencies 2026-01-11 00:13:28 +01:00
Hugo Alliaume
b55b8857d6 Update versions to 2.31.0 2025-10-27 23:21:26 +01:00
Hugo Alliaume
2daf23f7ce Add --json flag to composer config command 2025-10-16 09:24:06 +02:00
Romain Monteil
536d0fc19a [Map] Display warning when trying to define a custom icon for a Marker that already has an Icon 2025-10-04 13:45:35 +02:00
Hugo Alliaume
e822de6b80 Refactor "test_package.sh" to its original purpose, add multiples checks for packages definition 2025-09-20 13:50:04 +02:00
Raphaël Geffroy
e528b574ec [Docs] Add doc for E2E steps + minor modifications 2025-09-19 15:06:31 +02:00
github-actions[bot]
326255fe13 Update versions to 2.30.0 2025-08-27 18:16:44 +00:00
Hugo Alliaume
ac1320de89 [Map] Add E2E tests 2025-08-22 08:40:44 +02:00
Hugo Alliaume
142e5a9d04 [Map] Deprecate option title from Polygon, Polyline, Rectangle and Circle in favor of infoWindow
While writing E2E tests for Map, I found that our `title` option from `Polygon`, `Polyline`, `Rectangle` and `Circle` was wrongly used, and does not make sense.

Using `title` won't add an HTML attribute `title` as I expected, it's not something supported by Google nor Leaflet.
Instead, we used it to display a popup, like the `infoWindow` (which is more complete).

I suggest deprecating `title` from 2.x and remove it in 3.0.
2025-08-21 08:30:19 +02:00
Hugo Alliaume
9f13957f40 minor #3014 Create E2E app for browsers tests (Kocal)
This PR was merged into the 2.x branch.

Discussion
----------

 Create E2E app for browsers tests

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Docs?         | no <!-- required for new features -->
| Issues        | Fix #3009 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT

<!--
Replace this notice by a description of your feature/bugfix.
This will help reviewers and should be a good start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - For new features, provide some code snippets to help understand usage.
 - Features and deprecations must be submitted against branch main.
 - Update/add documentation as required (we can help!)
 - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
 - Never break backward compatibility (see https://symfony.com/bc).
-->

This pull request updates the browser testing workflow and related configuration to improve reliability, consistency, and maintainability across UX packages. The main changes include refactoring the browser test workflow to use a matrix strategy for Symfony versions, standardizing dependency installation steps, removing unused dependencies, and renaming the Playwright configuration for easier reuse.

**Workflow and CI improvements:**

* Refactored `.github/workflows/browser-tests.yml` to use a matrix strategy for Symfony versions, added concurrency controls to cancel in-progress runs, and split setup steps for JS and PHP dependencies, Docker containers, and E2E app configuration. Artifact uploads now only occur on browser test failures. [[1]](diffhunk://#diff-255cac5fcd7ae015d5bc1ccf14bfa2fff33bcabb653402be014e6668db1036ceR23-R38) [[2]](diffhunk://#diff-255cac5fcd7ae015d5bc1ccf14bfa2fff33bcabb653402be014e6668db1036ceL36-R116)
* Standardized JS dependency installation across workflows by replacing direct `pnpm install` commands with named steps (`Install root JS dependencies`) in code quality, unit test, dist files, and release workflows. [[1]](diffhunk://#diff-4a2765c2cfcbd3804a66aab805cb92ddda74de1730923cc5bf53671d0beccf06R27-R36) [[2]](diffhunk://#diff-b117ce55777f198ed74d5eb1cd6319c0b63837e2e9eed5c44b2477658e12248fR24) [[3]](diffhunk://#diff-b117ce55777f198ed74d5eb1cd6319c0b63837e2e9eed5c44b2477658e12248fL32-R38) [[4]](diffhunk://#diff-8e3deeaeb0bdfc6967ff8173f1d99e5001fe75dc497cbfb85fe64ceaade5e399L33-R34) [[5]](diffhunk://#diff-6e608e02c595d53ab6b70822a2bf19abcfc6ddcc976c2f536ad5bfca20f0443fR148) [[6]](diffhunk://#diff-6e608e02c595d53ab6b70822a2bf19abcfc6ddcc976c2f536ad5bfca20f0443fL157-R161)

**Testing and configuration changes:**

* Updated `package.json` to run browser tests in all workspaces concurrently, removed the unused `webdriverio` dependency, and improved the `test:browser` script for workspace aggregation. [[1]](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L13-R13) [[2]](diffhunk://#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L28-R28)
* Renamed `playwright.config.ts` to `playwright.config.base.ts`, added documentation for usage in UX packages, and improved test matching patterns and output directory configuration. [[1]](diffhunk://#diff-8f3b25b652873317fa4aa36b920f753b44dc82f5c1f0d2ff5e6b1781ef1dc90fL1-R30) [[2]](diffhunk://#diff-8f3b25b652873317fa4aa36b920f753b44dc82f5c1f0d2ff5e6b1781ef1dc90fL30-L36)

**Dependency management:**

* Removed `webdriverio` from the lockfile and marked many transitive dependencies as optional in `pnpm-lock.yaml`, reducing the install footprint and improving clarity for unused packages. [[1]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL54-L56) [[2]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR3991) [[3]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4242) [[4]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4260-R4260) [[5]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4270-R4276) [[6]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4429) [[7]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4438-R4451) [[8]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4472-R4480) [[9]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4530) [[10]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4541) [[11]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4543-R4556) [[12]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4578-R4597) [[13]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4597-R4613) [[14]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4622) [[15]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4670) [[16]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4685) [[17]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4704-R4724) [[18]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4733) [[19]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4725-R4756) [[20]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbR4779-R4793) [[21]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4778-R4807) [[22]](diffhunk://#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bbL4791-R4828)

These changes make the browser testing workflow more robust and maintainable, ensure consistent dependency installation, and clean up unused or optional packages to streamline CI runs.

Commits
-------

dd1c13aff81 Create E2E app & run it in CI
2025-08-19 20:34:58 +02:00
Hugo Alliaume
f1e736009d Create E2E app & run it in CI 2025-08-19 20:30:58 +02:00
github-actions[bot]
b7f2b66f69 Update versions to 2.29.2 2025-08-19 12:08:45 +00:00
Hugo Alliaume
799daffa96 Configure Vitest for unit and browser tests (use @puppeteer/browsers and webdriverio) 2025-08-18 08:22:05 +02:00
github-actions[bot]
2cc9e07a34 Update versions to 2.29.1 2025-08-08 12:45:34 +00:00
Kevin Bond
c5104f0c24 bug #2983 [Map] Allows Bridges JavaScript assets to be installed with npm when using file:vendor/symfony/ux-*-map/assets (Kocal)
This PR was merged into the 2.x branch.

Discussion
----------

[Map] Allows Bridges JavaScript assets to be installed with `npm` when using `file:vendor/symfony/ux-*-map/assets`

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Docs?         | no <!-- required for new features -->
| Issues        | Fix https://github.com/symfony/ux/issues/2951, https://github.com/symfony/ux/issues/2737 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT

<!--
Replace this notice by a description of your feature/bugfix.
This will help reviewers and should be a good start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - For new features, provide some code snippets to help understand usage.
 - Features and deprecations must be submitted against branch main.
 - Update/add documentation as required (we can help!)
 - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
 - Never break backward compatibility (see https://symfony.com/bc).
-->

Alternative to #2982.

Moving the `"`@symfony`/ux-map": "workspace:*"` requirements **outside the package.json** allows the Bridges JavaScript assets to be installed with `npm` when ``@symfony`/ux-leaflet-map` (or ``@symfony`/ux-google-map`) is using constraint version `file:vendor/symfony/ux-leaflet-map/assets` (or `file:vendor/symfony/ux-google-map/assets`) in the user application.

This is possible to this super feature from pnpm: [packageExtensions](https://pnpm.io/settings#packageextensions), which allows to override some part of package definitions in file `pnpm-workspace.yaml`:
- this file is read by pnpm and understand that ``@symfony`/ux-map` is a dependency of ``@symfony`/ux-leaflet-map` and ``@symfony`/ux-google-map` 🎉
- this file is totally unknown to npm, no `workspace:*` anymore in any `package.json` 🎉

It is not possible to defines `packageExtensions.devDependencies`, so I used `packageExtensions.dependencies` instead but that's fine. ``@symfony`/ux-map` is not referenced in any `package.json` when running `pnpm pack` in `src/Bridge/*/assets`.

Commits
-------

1667af71 [Map] Allows Bridges JavaScript assets to be installed with `npm` when using `file:vendor/symfony/ux-*-map/assets`
2025-08-08 08:42:20 -04:00
github-actions[bot]
41ce9e9e8c Update versions to 2.29.0 2025-08-08 11:38:41 +00:00
Hugo Alliaume
cf4f4e7b4a [Map] Allows Bridges JavaScript assets to be installed with npm when using file:vendor/symfony/ux-*-map/assets 2025-08-08 10:51:01 +02:00
github-actions[bot]
7993d19a1e Update versions to 2.28.2 2025-07-30 12:24:53 +00:00
Hugo Alliaume
cd039e96c2 Update versions to 2.28.1 2025-07-29 09:04:28 +02:00
Hugo Alliaume
a7b01ebe33 Fix package.json files to not use "catalog" feature from PNPM, as it breaks installation from vendor/ PHP packages 2025-07-28 21:36:26 +02:00
Hugo Alliaume
913a39af59 [Map] Replace deprecation Vitest option browser.name to browser.instances 2025-07-28 00:05:36 +02:00
Hugo Alliaume
5635ecdde8 Modernize and simplify our packages building tools, replace Rollup by tsup 2025-07-27 09:05:51 +02:00
Hugo Alliaume
79d9f412d5 Replace Yarn Berry by PNPM 2025-07-21 10:05:53 +02:00
Hugo Alliaume
822cda1c52 Explicitly import Vitest APIs instead of relying on globals 2025-07-20 12:48:08 +02:00
Hugo Alliaume
dad14e2244 [Map] Add options minZoom and maxZoom
Co-authored-by: Nina Alin <56309556+nina-alin@users.noreply.github.com>
2025-07-07 09:04:19 +02:00
Hugo Alliaume
2bcb88c6f9 Remove @symfony/stimulus-testing 2025-06-29 15:05:22 +02:00
Hugo Alliaume
898a2c5184 Migrate bin/*.js to TypeScript, use tsx 2025-06-28 09:42:29 +02:00
github-actions[bot]
eda7146f50 Update versions to 2.27.0 2025-06-24 12:48:07 +00:00
Hugo Alliaume
79879f7100 [Map] Add extra data to Map 2025-06-23 14:21:48 +02:00
Hugo Alliaume
1d39e6f6a8 minor #2862 [Map] Update test to include circle and rectangle data attributes (Valmonzo)
This PR was merged into the 2.x branch.

Discussion
----------

[Map] Update test to include circle and rectangle data attributes

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| Docs?         | no
| Issues        |
| License       | MIT

Fix typo from #2845 and missing circles attributes from #2838 , sorry `@Kocal` 😞

Commits
-------

2b651246d31 [Map] Update test to include circle and rectangle data attributes
2025-06-23 09:47:39 +02:00
Hugo Alliaume
f8a043022e [Map] Allows Map options customization in ux:map:pre-connect event (e.g.: zoom, options, bridgeOptions...) 2025-06-23 09:44:21 +02:00
Valmonzo
29dfced7cb [Map] Update test to include circle and rectangle data attributes 2025-06-23 09:32:13 +02:00
Hugo Alliaume
a9649396db [Map] Deprecate property rawOptions from ux:map:*:before-create events, in favor of bridgeOptions 2025-06-23 00:17:13 +02:00
Hugo Alliaume
855b9b9e19 [Map] Remove InfoWindowWithoutPositionDefinition type (it was always kinda weird) 2025-06-22 23:33:40 +02:00
Hugo Alliaume
bab5f8590d [Map][Google] Fix InfoWindow compatibility with Circle and Rectangle 2025-06-22 23:12:37 +02:00
Hugo Alliaume
d9d73e242a Run Biome.js, configure lineWidth to 160 for src/Map/**/*map_controllers.ts 2025-06-22 21:07:55 +02:00
Hugo Alliaume
5b68915fec [Map] Remove "bounds" higher key from normalized Rectangle 2025-06-22 16:55:04 +02:00
Valmonzo
d01e2f98ca [Map] Add support for rectangle
Co-authored-by: Hugo Alliaume <hugo@alliau.me>
2025-06-22 16:55:04 +02:00
Hugo Alliaume
1e6e279709 [Map][Google] Fix race conditions when loading Google Maps API, when rendering >=2 maps 2025-06-21 23:25:13 +02:00
Valmonzo
285fb60b9f [Map] Add Circle support 2025-06-13 23:13:31 +02:00