- `);
- });
-
- afterEach(() => {
- clearDOM();
- });
-
- it('connect', async () => {
- const img = getByTestId(container, 'img');
- expect(img).not.toHaveClass('connected');
- expect(img).toHaveAttribute('src', 'https://symfony.com/logos/symfony_black_02.png');
-
- startStimulus();
- await waitFor(() => expect(img).toHaveClass('connected'));
- expect(img).toHaveAttribute('src', 'https://symfony.com/logos/symfony_black_03.png');
- expect(img).toHaveAttribute(
- 'srcset',
- 'https://symfony.com/logos/symfony_black_03.png 1x, https://symfony.com/logos/symfony_black_03_2x.png 2x'
- );
- });
-});
diff --git a/src/LazyImage/composer.json b/src/LazyImage/composer.json
deleted file mode 100644
index 4eef83304ef..00000000000
--- a/src/LazyImage/composer.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "name": "symfony/ux-lazy-image",
- "type": "symfony-bundle",
- "description": "Lazy image loader and utilities for Symfony",
- "keywords": [
- "symfony-ux"
- ],
- "homepage": "https://symfony.com",
- "license": "MIT",
- "authors": [
- {
- "name": "Titouan Galopin",
- "email": "galopintitouan@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "autoload": {
- "psr-4": {
- "Symfony\\UX\\LazyImage\\": "src/"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "Symfony\\UX\\LazyImage\\Tests\\": "tests/"
- }
- },
- "require": {
- "php": ">=8.1",
- "symfony/config": "^5.4|^6.0|^7.0|^8.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0|^8.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0|^8.0",
- "symfony/deprecation-contracts": "^2.5|^3"
- },
- "require-dev": {
- "intervention/image": "^2.5|^3.0",
- "kornrunner/blurhash": "^1.1",
- "symfony/cache-contracts": "^2.2|^3.0",
- "symfony/framework-bundle": "^5.4|^6.0|^7.0|^8.0",
- "symfony/phpunit-bridge": "^5.2|^6.0|^7.0|^8.0",
- "symfony/twig-bundle": "^5.4|^6.0|^7.0|^8.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0"
- },
- "extra": {
- "thanks": {
- "name": "symfony/ux",
- "url": "https://github.com/symfony/ux"
- }
- },
- "minimum-stability": "dev"
-}
diff --git a/src/LazyImage/doc/index.rst b/src/LazyImage/doc/index.rst
deleted file mode 100644
index fd767d0024e..00000000000
--- a/src/LazyImage/doc/index.rst
+++ /dev/null
@@ -1,273 +0,0 @@
-Symfony UX LazyImage
-====================
-
-.. warning::
-
- **This package is no longer recommended.** Instead, use the
- `modern techniques to improve image loading performance`_ natively supported
- by all major browsers.
-
-.. warning::
-
- **Deprecated: This package has been deprecated in 2.x and will be removed in the next major version.**
-
-Symfony UX LazyImage is a Symfony bundle providing utilities to improve
-image loading performance. It is part of `the Symfony UX initiative`_.
-
-It provides two key features:
-
-- a Stimulus controller to load lazily heavy images, with a placeholder
-- a `BlurHash implementation`_ to create data-uri thumbnails for images
-
-Installation
-------------
-
-.. caution::
-
- Before you start, make sure you have `StimulusBundle configured in your app`_.
-
-Install the bundle using Composer and Symfony Flex:
-
-.. code-block:: terminal
-
- $ composer require symfony/ux-lazy-image
-
-If you're using WebpackEncore, install your assets and restart Encore (not
-needed if you're using AssetMapper):
-
-.. code-block:: terminal
-
- $ npm install --force
- $ npm run watch
-
-.. note::
-
- For more complex installation scenarios, you can install the JavaScript assets through the `@symfony/ux-lazy-image npm package`_
-
-Usage
------
-
-The default usage of Symfony UX LazyImage is to use its Stimulus
-controller to first load a small placeholder image that will then be
-replaced by the high-definition version once the page has been rendered:
-
-.. code-block:: html+twig
-
-
-
-With this setup, the user will initially see ``images/small.png``. Then,
-once the page has loaded and the user's browser has downloaded the
-larger image, the ``src`` attribute will change to ``image/large.png``.
-
-There is also support for the ``srcset`` attribute by passing an
-``srcset`` value to the controller:
-
-.. code-block:: html+twig
-
-
-
-.. note::
-
- The ``stimulus_controller()`` function comes from `StimulusBundle`_.
-
-Instead of using a generated thumbnail that would exist on your
-filesystem, you can use the BlurHash algorithm to create a light,
-blurred, data-uri thumbnail of the image:
-
-.. code-block:: html+twig
-
-
-
-This way, the browser will display the BlurHash image as soon as possible, and
-will load the high-definition image at the same time, without waiting for the
-Stimulus controller to be loaded.
-
-Backward Compatibility promise
-------------------------------
-
-This bundle aims at following the same Backward Compatibility promise as
-the Symfony framework:
-https://symfony.com/doc/current/contributing/code/bc.html
-
-.. _`modern techniques to improve image loading performance`: https://web.dev/learn/images/performance-issues
-.. _`the Symfony UX initiative`: https://ux.symfony.com/
-.. _`BlurHash implementation`: https://blurha.sh
-.. _`StimulusBundle`: https://symfony.com/bundles/StimulusBundle/current/index.html
-.. _StimulusBundle configured in your app: https://symfony.com/bundles/StimulusBundle/current/index.html
-.. _`file_get_contents`: https://www.php.net/manual/en/function.file-get-contents.php
-.. _`Flysystem`: https://flysystem.thephpleague.com
-.. _`Largest Contentful Paint (LCP)`: https://web.dev/lcp/
-.. _`Core Web Vitals`: https://web.dev/vitals/
-.. _`The progressive loading (through blurhash) is not taken into account in the LCP calculation`: https://github.com/w3c/largest-contentful-paint/issues/71_
-.. _`didn't preload the image`: https://symfony.com/doc/current/web_link.html
-.. _`@symfony/ux-lazy-image npm package`: https://www.npmjs.com/package/@symfony/ux-lazy-image
diff --git a/src/LazyImage/phpunit.xml.dist b/src/LazyImage/phpunit.xml.dist
deleted file mode 100644
index 6fdeff61bf4..00000000000
--- a/src/LazyImage/phpunit.xml.dist
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-