diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..34df7bd
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,16 @@
+module.exports = {
+ root: true,
+ env: {
+ browser: true,
+ es2021: true,
+ },
+ extends: [
+ "eslint:recommended",
+ ],
+ parserOptions: {
+ sourceType: "module"
+ },
+ globals: {
+ Translator: 'readonly',
+ },
+};
diff --git a/.github/workflows/code_quality.yaml b/.github/workflows/code_quality.yaml
index ff5807d..7441bba 100644
--- a/.github/workflows/code_quality.yaml
+++ b/.github/workflows/code_quality.yaml
@@ -15,20 +15,20 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
-
name: 'Setup PHP'
uses: shivammathur/setup-php@v2
with:
- php-version: '7.4'
+ php-version: '8.0'
coverage: none
- name: Composer - Get Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- - uses: actions/cache@v1
+ - uses: actions/cache@v3
id: cache-composer
with:
path: ${{ steps.composer-cache.outputs.dir }}
@@ -48,5 +48,15 @@ jobs:
- name: Composer - Update dependencies
run: composer update --no-progress
+ - name: Yarn install
+ uses: borales/actions-yarn@v4
+ with:
+ cmd: install
+
+ - name: Yarn ESLint
+ uses: borales/actions-yarn@v4
+ with:
+ cmd: lint
+
- name: TwigCS - Check
- run: vendor/bin/twigcs SyliusShopBundle/ --severity error --display blocking
+ run: vendor/bin/twigcs templates/ --severity error --display blocking --reporter githubAction
diff --git a/.github/workflows/sylius.yaml b/.github/workflows/sylius.yaml
new file mode 100644
index 0000000..1432b38
--- /dev/null
+++ b/.github/workflows/sylius.yaml
@@ -0,0 +1,101 @@
+name: Install & Test
+'on':
+ push:
+ branches:
+ - master
+ paths-ignore:
+ - README.md
+ pull_request:
+ paths-ignore:
+ - README.md
+jobs:
+ sylius:
+ name: 'Sylius ${{ matrix.sylius }} Node ${{ matrix.node }}'
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ php:
+ - 8.2
+ sylius:
+ - 1.12.0
+ symfony:
+ - 6.3
+ node:
+ - 18.x
+ env:
+ APP_ENV: test
+ package-name: sylius/bootstrap-theme
+ steps:
+ -
+ name: 'Setup PHP'
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: '${{ matrix.php }}'
+ ini-values: date.timezone=UTC
+ extensions: intl
+ tools: symfony
+ coverage: none
+ -
+ name: 'Setup Node'
+ uses: actions/setup-node@v3
+ with:
+ node-version: '${{ matrix.node }}'
+ -
+ uses: actions/checkout@v3
+ -
+ name: 'Composer - Get Cache Directory'
+ id: composer-cache
+ run: 'echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT'
+ -
+ name: 'Composer - Set cache'
+ uses: actions/cache@v3
+ id: cache-composer
+ with:
+ path: '${{ steps.composer-cache.outputs.dir }}'
+ key: 'php-${{ matrix.php }}-sylius-${{ matrix.sylius }}-symfony-${{ matrix.symfony }}-composer-${{ hashFiles(''**/composer.json'') }}'
+ restore-keys: 'php-${{ matrix.php }}-sylius-${{ matrix.sylius }}-symfony-${{ matrix.symfony }}-composer-'
+ -
+ name: 'Composer - Create cache directory'
+ run: 'mkdir -p /home/runner/.composer/cache'
+ if: 'steps.cache-composer.outputs.cache-hit != ''true'''
+ -
+ name: 'Composer - Github Auth'
+ run: 'composer config -g github-oauth.github.com ${{ github.token }}'
+ -
+ name: 'Yarn - Get cache directory'
+ id: yarn-cache
+ run: 'echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT'
+ -
+ name: 'Yarn - Set Cache'
+ uses: actions/cache@v3
+ with:
+ path: '${{ steps.yarn-cache.outputs.dir }}'
+ key: 'node-${{ matrix.node }}-yarn-${{ hashFiles(''**/package.json **/yarn.lock'') }}'
+ restore-keys: "node-${{ matrix.node }}-yarn-\n"
+ -
+ name: 'Install Sylius-Standard and Plugin'
+ run: 'make install -e SYLIUS_VERSION=${{ matrix.sylius }} SYMFONY_VERSION=${{ matrix.symfony }} PHP_VERSION=${{ matrix.php }}'
+ -
+ name: 'Output PHP version for Symfony CLI'
+ working-directory: ./tests/Application
+ run: 'php -v | head -n 1 | awk ''{ print $2 }'' > .php-version'
+ -
+ name: 'Install certificates'
+ working-directory: ./tests/Application
+ run: 'symfony server:ca:install'
+ -
+ name: 'Run webserver'
+ working-directory: ./tests/Application
+ run: 'symfony server:start --port=8080 --dir=public --daemon'
+ -
+ name: 'Run PHPUnit'
+ run: 'make phpunit'
+ services:
+ mariadb:
+ image: 'mariadb:10'
+ ports:
+ - '3306:3306'
+ env:
+ MYSQL_ALLOW_EMPTY_PASSWORD: true
+ options: '--health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3'
diff --git a/.gitignore b/.gitignore
index 4784486..47d964d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,16 +1,13 @@
-/vendor/
-/node_modules
/composer.lock
/etc/build/*
!/etc/build/.gitignore
-/tests/Application/yarn.lock
+/tests/Application/
+/install/Application/*.local
/.phpunit.result.cache
/behat.yml
-/phpspec.yml
-/phpunit.xml
###> symfony/webpack-encore-bundle ###
/node_modules/
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index 12f5266..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,69 +0,0 @@
-FROM php:7.4-fpm-alpine
-
-# Install composer
-COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
-COPY --from=symfonycorp/cli /symfony /usr/bin/symfony
-
-# Install make
-RUN apk add --no-cache make
-
-# Install php extensions
-# persistent / runtime deps
-RUN apk add --no-cache \
- acl \
- file \
- gettext \
- git \
- mariadb-client \
- ;
-
-ARG APCU_VERSION=5.1.18
-RUN set -eux; \
- apk add --no-cache --virtual .build-deps \
- $PHPIZE_DEPS \
- coreutils \
- freetype-dev \
- icu-dev \
- libjpeg-turbo-dev \
- libpng-dev \
- libtool \
- libwebp-dev \
- libzip-dev \
- mariadb-dev \
- zlib-dev \
- ; \
- \
- docker-php-ext-configure gd --with-jpeg --with-webp --with-freetype; \
- docker-php-ext-configure zip; \
- docker-php-ext-install -j$(nproc) \
- exif \
- gd \
- intl \
- pdo_mysql \
- zip \
- ; \
- pecl install \
- apcu-${APCU_VERSION} \
- ; \
- pecl clear-cache; \
- docker-php-ext-enable \
- apcu \
- opcache \
- ; \
- \
- runDeps="$( \
- scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
- | tr ',' '\n' \
- | sort -u \
- | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
- )"; \
- apk add --no-cache --virtual .sylius-phpexts-rundeps $runDeps; \
- \
- apk del .build-deps
-
-EXPOSE 8080
-WORKDIR /srv/sylius
-
-ARG APP_ENV=test
-
-CMD ["symfony", "server:start", "--dir=tests/Application/public", "--port=8080"]
diff --git a/Makefile b/Makefile
index 607c2af..85b7cdc 100644
--- a/Makefile
+++ b/Makefile
@@ -1,63 +1,90 @@
.DEFAULT_GOAL := help
+SHELL=/bin/bash
+COMPOSER_ROOT=composer
+TEST_DIRECTORY=tests/Application
+CONSOLE=cd tests/Application && php bin/console -e test
+COMPOSER=cd tests/Application && composer
+YARN=cd tests/Application && yarn
-##
-## Project setup
-##---------------------------------------------------------------------------
-.PHONY: install start stop clean
-
-install: start ## Install requirements for tests
- sudo chmod -Rf 777 tests/Application/var
- sudo chmod -Rf 777 tests/Application/public/media
- docker-compose exec php php -d memory_limit=-1 /usr/bin/composer install
- docker-compose exec nodejs yarn --cwd tests/Application install
- docker-compose exec php tests/Application/bin/console doctrine:database:create --if-not-exists -vvv
- docker-compose exec php tests/Application/bin/console doctrine:schema:create -vvv
- docker-compose exec php tests/Application/bin/console assets:install tests/Application/public -vvv
- docker-compose exec nodejs yarn --cwd tests/Application build
- docker-compose exec php php -d memory_limit=-1 tests/Application/bin/console cache:warmup -vvv
- docker-compose exec php tests/Application/bin/console sylius:fixtures:load -n
-
-start: ## Start the project
- docker-compose up -d
-
-stop: ## Stop and clean
- docker-compose kill
- docker-compose rm -v --force
-
-clean: stop ## Clean plugin
- docker-compose down -v
- sudo rm -Rf node_modules vendor .phpunit.result.cache composer.lock
-
-##
-## Assets
-##---------------------------------------------------------------------------
-.PHONY: assets assets-watch
-
-assets: ## Build assets for dev environment
- docker-compose exec nodejs yarn --cwd tests/Application dev
-
-assets-watch: ## Watch asset during development
- docker-compose exec nodejs yarn --cwd tests/Application watch
-
-##
-## QA
-##---------------------------------------------------------------------------
-.PHONY: validate behat ci
-
-validate: ## Validate composer.json
- docker-compose exec php composer validate --ansi --strict
-
-behat: ## Run behat
- docker-compose exec php php -d memory_limit=-1 vendor/bin/behat --profile docker --colors --strict -vvv -f progress --no-interaction --tags="@javascript && ~@todo && ~@cli"
-
-ci: validate behat ## Execute github actions tasks
-
-##
-## Utilities
-##---------------------------------------------------------------------------
-.PHONY: help
+SYLIUS_VERSION=1.12.0
+SYMFONY_VERSION=6.3
+PHP_VERSION=8.2
+PLUGIN_NAME=sylius/bootstrap-theme
+
+###
+### DEVELOPMENT
+### ¯¯¯¯¯¯¯¯¯¯¯
+
+install: sylius ## Install Plugin on Sylius [SYLIUS_VERSION=1.12.0] [SYMFONY_VERSION=6.3] [PHP_VERSION=8.2]
+.PHONY: install
+
+reset: ## Remove dependencies
+ifneq ("$(wildcard tests/Application/bin/console)","")
+ ${CONSOLE} doctrine:database:drop --force --if-exists || true
+endif
+ rm -rf tests/Application
+.PHONY: reset
+
+phpunit: phpunit-configure phpunit-run ## Run PHPUnit
+.PHONY: phpunit
+
+###
+### OTHER
+### ¯¯¯¯¯¯
+
+sylius: sylius-standard update-dependencies install-plugin install-theme install-sylius
+.PHONY: sylius
-help: ## Show all make tasks (default)
- @grep -E '(^[a-zA-Z_-]+:.*?##.*$$)|(^##)' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' | sed -e 's/\[32m##/[33m/'
+sylius-standard:
+ ${COMPOSER_ROOT} create-project sylius/sylius-standard ${TEST_DIRECTORY} "~${SYLIUS_VERSION}" --no-install --no-scripts
+ ${COMPOSER} config allow-plugins true
+ ${COMPOSER} require sylius/sylius:"~${SYLIUS_VERSION}"
--include Makefile.local
+update-dependencies:
+ ${COMPOSER} config extra.symfony.require "~${SYMFONY_VERSION}"
+ ${COMPOSER} update --no-progress -n
+
+install-plugin:
+ ${COMPOSER} config repositories.plugin '{"type": "path", "url": "../../"}'
+ ${COMPOSER} config extra.symfony.allow-contrib true
+ ${COMPOSER} config minimum-stability "dev"
+ ${COMPOSER} config prefer-stable true
+ ${COMPOSER} req ${PLUGIN_NAME}:* --prefer-source --no-scripts
+
+install-theme:
+ifneq ("$(wildcard install/Application)","")
+ cp -r install/Application tests
+endif
+ mkdir ${TEST_DIRECTORY}/themes/BootstrapTheme
+ cp -r assets ${TEST_DIRECTORY}/themes/BootstrapTheme
+ cp -r templates ${TEST_DIRECTORY}/themes/BootstrapTheme
+ cp composer.json ${TEST_DIRECTORY}/themes/BootstrapTheme
+ cp webpack.config.js ${TEST_DIRECTORY}/themes/BootstrapTheme
+ echo "const bootstrapTheme = require('./themes/BootstrapTheme/webpack.config');" >> ${TEST_DIRECTORY}/webpack.config.js
+ echo "module.exports = [shopConfig, adminConfig, appShopConfig, appAdminConfig, bootstrapTheme];" >> ${TEST_DIRECTORY}/webpack.config.js
+ echo " bootstrapTheme:" >> ${TEST_DIRECTORY}/config/packages/assets.yaml
+ echo " json_manifest_path: '%kernel.project_dir%/public/themes/bootstrap-theme/manifest.json'" >> ${TEST_DIRECTORY}/config/packages/assets.yaml
+ echo " bootstrapTheme: '%kernel.project_dir%/public/themes/bootstrap-theme'" >> ${TEST_DIRECTORY}/config/packages/webpack_encore.yaml
+
+install-sylius:
+ ${CONSOLE} doctrine:database:create --if-not-exists
+ ${CONSOLE} doctrine:migrations:migrate -n
+ ${CONSOLE} sylius:fixtures:load default -n
+ ${YARN} install
+ ${YARN} add bootstrap@^5.3 @fortawesome/fontawesome-free@^6.4.2 lightbox axios @popperjs/core@^2.11 glightbox
+ ${YARN} build
+ ${CONSOLE} cache:clear
+
+phpunit-configure:
+ cp phpunit.xml.dist ${TEST_DIRECTORY}/phpunit.xml
+
+phpunit-run:
+ cd ${TEST_DIRECTORY} && ./vendor/bin/phpunit --testdox
+
+help: SHELL=/bin/bash
+help: ## Dislay this help
+ @IFS=$$'\n'; for line in `grep -h -E '^[a-zA-Z_#-]+:?.*?##.*$$' $(MAKEFILE_LIST)`; do if [ "$${line:0:2}" = "##" ]; then \
+ echo $$line | awk 'BEGIN {FS = "## "}; {printf "\033[33m %s\033[0m\n", $$2}'; else \
+ echo $$line | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m%s\n", $$1, $$2}'; fi; \
+ done; unset IFS;
+.PHONY: help
diff --git a/README.md b/README.md
index 68ba658..2266b00 100644
--- a/README.md
+++ b/README.md
@@ -1,78 +1,142 @@
-
-
Sylius Bootstrap Theme
+
+ SyliusBootstrapTheme
Sylius Bootstrap theme with build process based on Webpack Encore.
- It allows to swap to Bootstrap-based theme separately in each channel.
-Installation
-------------
+## Preview
+
+### Homepage
+
+
+
+
+
+
+ Gallery
+
+
+
+
+
+
+### Checkout
+
+
+ Gallery
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### Products
+
+
+ Gallery
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+### Cart
+
+
+ Gallery
+
+
+
+
+
+
+
+
+
+
+### User account
+
+
+ Gallery
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Installation
+
+There are two ways to install a theme. It is possible to copy files in `themes/` or add this package as a composer dependency and create a child theme. The instructions below refer to an installation in the theme folder.
+
+### Composer installation
+
+Installation as a composer dependency [is documented here](https://docs.sylius.com/en/latest/book/themes/bootstrap-theme.html)
-There are two ways to install a theme. It is possible to copy files in `themes/` or add this package as a composer dependency and create a child theme.
-
-The instructions below refer to an installation in the theme folder. Installation as a composer dependency (with child theme) [is also documented](https://docs.sylius.com/en/latest/book/themes/bootstrap-theme.html).
-
-- Sylius 1.6 : `composer require sylius/bootstrap-theme:~0.1.0`
-- Sylius 1.7 : `composer require sylius/bootstrap-theme:~0.2.0`
-- Sylius 1.8 : `composer require sylius/bootstrap-theme:~0.3.0`
-- Sylius 1.8, 1.9 and 1.10 : `composer require sylius/bootstrap-theme:~0.4.0`
-- Sylius 1.11 : `composer require sylius/bootstrap-theme:~0.6.0`
-- Sylius 1.12 : `composer require sylius/bootstrap-theme:~0.7.0`
-
-Sylius 1.11 tested with Node v15.14.0, Sylius 1.12 tested with **Node v18**.16.0
-
-1. Copy files from repository to `./themes/BootstrapTheme`
+```bash
+composer require sylius/bootstrap-theme:1.12
+```
-Only `assets` and `SyliusShopBundle` directories and the `webpack.config.js` file are required.
+### Manual installation
-2. Install Encore (Only for sylius **<1.12**)
+#### 1. Copy files from the repository to `./themes/BootstrapTheme`
-```bash
-composer require encore
-```
+Files/folders to copy:
+* `assets`
+* `templates`
+* `composer.json`
+* `webpack.config.js`
-3. Install node dependencies
+#### 2. Install node dependencies
```bash
-yarn
-yarn add @symfony/webpack-encore sass-loader@^13.0.0 node-sass -D
-yarn add lodash.throttle -D
-yarn add bootstrap@^4.5.0 bootstrap.native@^3.0.0 glightbox axios form-serialize @fortawesome/fontawesome-svg-core @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-solid-svg-icons popper.js
-yarn add @popperjs/core
+yarn install
+yarn add bootstrap@^5.3 @fortawesome/fontawesome-free@^6.4.2 lightbox axios @popperjs/core@^2.11 glightbox
```
-4. Import bootstrap-theme config in the main webpack file
+#### 3. Import `bootstrap-theme` config in your `./webpack.config.js`
```diff
-# ./webpack.config.js
-
+ const bootstrapTheme = require('./themes/BootstrapTheme/webpack.config');
+// ...
+
- module.exports = [shopConfig, adminConfig, appShopConfig, appAdminConfig];
+ module.exports = [shopConfig, adminConfig, appShopConfig, appAdminConfig, bootstrapTheme];
-
```
-For sylius **1.11** and **1.12** change output paths
-
-```diff
-# ./webpack.config.js
-// Shop config
-Encore
-- .setOutputPath('public/build/shop/')
-- .setPublicPath('/build/shop')
-- .addEntry('shop-entry', './vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/Resources/private/entry.js')
-+ .setOutputPath('public/bootstrap-theme')
-+ .setPublicPath('/bootstrap-theme')
-+ .addEntry('app', './themes/BootstrapTheme/assets/app.js')
- .disableSingleRuntimeChunk()
- .cleanupOutputBeforeBuild()
- .enableSourceMaps(!Encore.isProduction())
- .enableVersioning(Encore.isProduction())
- .enableSassLoader();
-```
-
-5. Edit project config files
+#### 4. Edit project configuration
```diff
# ./config/packages/assets.yaml
@@ -81,7 +145,7 @@ framework:
assets:
packages:
+ bootstrapTheme:
-+ json_manifest_path: '%kernel.project_dir%/public/bootstrap-theme/manifest.json'
++ json_manifest_path: '%kernel.project_dir%/public/themes/bootstrap-theme/manifest.json'
```
```diff
@@ -90,156 +154,49 @@ framework:
webpack_encore:
output_path: '%kernel.project_dir%/public/build'
builds:
-+ bootstrapTheme: '%kernel.project_dir%/public/bootstrap-theme'
++ bootstrapTheme: '%kernel.project_dir%/public/themes/bootstrap-theme'
```
-```diff
-# ./config/packages/_sylius.yaml
-sylius_theme:
-+ legacy_mode: true # for sylius 1.9, 1.10, 1.11, 1.12
-```
+#### 5. Build assets
-6. To build the assets, run one of the following commands
```bash
# compile assets once
-yarn encore dev
+yarn dev
# recompile assets automatically when files change
-yarn encore dev --watch
-
-# recompile assets automatically with live reload
-yarn encore dev-server
+yarn watch
# create a production build
-yarn encore production
-```
-
-In Sylius 1.12 you can use predefined commands
-
-```bash
-# compile assets once
yarn build
-
-# recompile assets automatically when files change
-yarn watch
```
-7. Change theme in the admin panel by visiting the Edit Channel page
-
-Screenshots
------------
-
-#### Homepage
-
-![Homepage](docs/homepage.png)
+#### 6. Change theme in the admin panel
-#### Product show
+1. Go to `Configuration > Channels`
+2. Edit desired channel from the list
+3. Go to `Look & feel > Theme` section
+4. Change theme to `Sylius Bootstrap Theme`
-![Product page](docs/product-page.png)
+## Contribution
-#### Cart
+### Quickstart Installation
-![Cart page](docs/cart.png)
+#### Localhost
-#### Checkout bar
+This command will install the selected version of Sylius and the Bootstrap theme with its configuration.
+You just need to activate the theme in admin panel as described in the point above.
-![Checkout bar](docs/checkout-bar.png)
-
-#### Changing the theme
-![Changing the theme](docs/edit-channel-page.png)
-
-Developers
-----------
-
-1. Run `composer create-project sylius/bootstrap-theme ProjectName` or clone this project
-
-### Quickstart Installation (docker)
-
-1. From the plugin skeleton root directory, run the following commands:
+:information_source: To be able to setup the plugin database, remember to configure you database credentials
+in `install/Application/.env.local` and/or `install/Application/.env.test.local`.
```bash
-sudo chmod -Rf 777 tests/Application/var
-sudo chmod -Rf 777 tests/Application/public/media
-docker-compose exec php php -d memory_limit=-1 /usr/bin/composer install
-docker-compose exec nodejs yarn --cwd tests/Application install
-docker-compose exec php tests/Application/bin/console doctrine:database:create --if-not-exists -vvv
-docker-compose exec php tests/Application/bin/console doctrine:schema:create -vvv
-docker-compose exec php tests/Application/bin/console assets:install tests/Application/public -vvv
-docker-compose exec nodejs yarn --cwd tests/Application build
-docker-compose exec php php -d memory_limit=-1 tests/Application/bin/console cache:warmup -vvv
-docker-compose exec php tests/Application/bin/console sylius:fixtures:load -n
+$ make install -e SYLIUS_VERSION=XX SYMFONY_VERSION=YY PHP_VERSION=ZZ
```
-#### Quality tools
+Default values : XX=1.12.0 and YY=6.3 and ZZ=8.2
+:information_source: To reset (drop database and delete files) test environment:
```bash
-docker-compose exec php composer validate --ansi --strict
-docker-compose exec php php -d memory_limit=-1 vendor/bin/behat --profile docker --colors --strict -vvv -f progress --no-interaction --tags="@javascript && ~@todo && ~@cli"
-```
-
-__ProTip__ use `Makefile` ;)
-
-### Quickstart Installation (legacy)
-
-1. From the plugin skeleton root directory, run the following commands:
-
- ```bash
- $ (cd tests/Application && yarn install)
- $ (cd tests/Application && yarn build)
- $ (cd tests/Application && APP_ENV=test bin/console assets:install public)
-
- $ (cd tests/Application && APP_ENV=test bin/console doctrine:database:create)
- $ (cd tests/Application && APP_ENV=test bin/console doctrine:schema:create)
- ```
-
-To be able to setup a plugin's database, remember to configure you database credentials in `tests/Application/.env` and `tests/Application/.env.test`.
-
-### Usage
-
-#### Running plugin tests
-
-- Behat (non-JS scenarios)
-
- ```bash
- vendor/bin/behat --strict --tags="~@javascript"
- ```
-
-- Behat (JS scenarios)
-
- 1. [Install Symfony CLI command](https://symfony.com/download).
-
- 2. Start Headless Chrome:
-
- ```bash
- google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1
- ```
-
- 3. Install SSL certificates (only once needed) and run test application's webserver on `127.0.0.1:8080`:
-
- ```bash
- symfony server:ca:install
- APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
- ```
-
- 4. Run Behat:
-
- ```bash
- vendor/bin/behat --strict --tags="@javascript"
- ```
-
-#### Opening Sylius with your plugin
-
-- Using `test` environment:
-
- ```bash
- (cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load)
- (cd tests/Application && APP_ENV=test bin/console server:run -d public)
- ```
-
-- Using `dev` environment:
-
- ```bash
- (cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load)
- (cd tests/Application && APP_ENV=dev bin/console server:run -d public)
- ```
+$ make reset
+```
diff --git a/SyliusShopBundle/views/Account/AddressBook/_defaultAddress.html.twig b/SyliusShopBundle/views/Account/AddressBook/_defaultAddress.html.twig
deleted file mode 100644
index e5c4e58..0000000
--- a/SyliusShopBundle/views/Account/AddressBook/_defaultAddress.html.twig
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- {% include '@SyliusShop/Common/_address.html.twig' with {'address': address} %}
-
-
{{ 'sylius.ui.your_default_address'|trans }}
-
-
-
-
diff --git a/SyliusShopBundle/views/Account/AddressBook/_defaultAddressForm.html.twig b/SyliusShopBundle/views/Account/AddressBook/_defaultAddressForm.html.twig
deleted file mode 100644
index eb84beb..0000000
--- a/SyliusShopBundle/views/Account/AddressBook/_defaultAddressForm.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-{% set id = app.request.attributes.get('id') %}
-
-{{ form_start(form, {'action': path('sylius_shop_account_address_book_set_as_default', {'id': id}), 'method': 'PATCH'}) }}
-
-
- {{ 'sylius.ui.set_as_default'|trans }}
-
-{{ form_row(form._token) }}
-{{ form_end(form, {'render_rest': false}) }}
diff --git a/SyliusShopBundle/views/Account/AddressBook/_item.html.twig b/SyliusShopBundle/views/Account/AddressBook/_item.html.twig
deleted file mode 100644
index 1b1af56..0000000
--- a/SyliusShopBundle/views/Account/AddressBook/_item.html.twig
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- {% include '@SyliusShop/Common/_address.html.twig' with {'address': address} %}
-
- {{ render(path('sylius_shop_account_address_book_set_as_default', {'id': address.id})) }}
-
-
-
-
diff --git a/SyliusShopBundle/views/Account/AddressBook/layout.html.twig b/SyliusShopBundle/views/Account/AddressBook/layout.html.twig
deleted file mode 100644
index abef885..0000000
--- a/SyliusShopBundle/views/Account/AddressBook/layout.html.twig
+++ /dev/null
@@ -1,11 +0,0 @@
-{% extends '@SyliusShop/Account/layout.html.twig' %}
-
-{% block breadcrumb %}
-
-
- {{ 'sylius.ui.home'|trans }}
- {{ 'sylius.ui.my_account'|trans }}
- {{ 'sylius.ui.address_book'|trans }}
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/Account/Order/Index/_breadcrumb.html.twig b/SyliusShopBundle/views/Account/Order/Index/_breadcrumb.html.twig
deleted file mode 100644
index 1876f84..0000000
--- a/SyliusShopBundle/views/Account/Order/Index/_breadcrumb.html.twig
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- {{ 'sylius.ui.home'|trans }}
- {{ 'sylius.ui.my_account'|trans }}
- {{ 'sylius.ui.order_history'|trans }}
-
-
diff --git a/SyliusShopBundle/views/Account/Order/Label/State/cancelled.html.twig b/SyliusShopBundle/views/Account/Order/Label/State/cancelled.html.twig
deleted file mode 100644
index f33bf46..0000000
--- a/SyliusShopBundle/views/Account/Order/Label/State/cancelled.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {{ value|trans }}
-
diff --git a/SyliusShopBundle/views/Account/Order/Label/State/fulfilled.html.twig b/SyliusShopBundle/views/Account/Order/Label/State/fulfilled.html.twig
deleted file mode 100644
index ed707c2..0000000
--- a/SyliusShopBundle/views/Account/Order/Label/State/fulfilled.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {{ value|trans }}
-
diff --git a/SyliusShopBundle/views/Account/Order/Label/State/new.html.twig b/SyliusShopBundle/views/Account/Order/Label/State/new.html.twig
deleted file mode 100644
index 61a2e6e..0000000
--- a/SyliusShopBundle/views/Account/Order/Label/State/new.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {{ value|trans }}
-
diff --git a/SyliusShopBundle/views/Account/Order/Show/_breadcrumb.html.twig b/SyliusShopBundle/views/Account/Order/Show/_breadcrumb.html.twig
deleted file mode 100644
index c023439..0000000
--- a/SyliusShopBundle/views/Account/Order/Show/_breadcrumb.html.twig
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- {{ 'sylius.ui.home'|trans }}
- {{ 'sylius.ui.my_account'|trans }}
- {{ 'sylius.ui.order_history'|trans }}
- {{ 'sylius.ui.order'|trans }} #{{ order.number }}
-
-
diff --git a/SyliusShopBundle/views/Account/Order/Show/_header.html.twig b/SyliusShopBundle/views/Account/Order/Show/_header.html.twig
deleted file mode 100644
index 9566690..0000000
--- a/SyliusShopBundle/views/Account/Order/Show/_header.html.twig
+++ /dev/null
@@ -1,29 +0,0 @@
-{% import '@SyliusUi/Macro/flags.html.twig' as flags %}
-
-{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
-
-{{ headers.default('sylius.ui.order'|trans ~ ' #' ~ order.number) }}
-
-
-
-
-
- {{ order.checkoutCompletedAt|format_date }}
-
-
- {% include [('@SyliusShop/Account/Order/Label/State' ~ '/' ~ order.state ~ '.html.twig'), '@SyliusUi/Label/_default.html.twig'] with {'value': ('sylius.ui.' ~ order.state)|trans} %}
-
-
- {{ order.currencyCode }}
-
-
- {{ flags.fromLocaleCode(order.localeCode) }}{{ order.localeCode|locale_name }}
-
-
-
-
-
-
-{% if order.paymentState in ['awaiting_payment'] %}
- {{ 'sylius.ui.pay'|trans }}
-{% endif %}
diff --git a/SyliusShopBundle/views/Account/dashboard.html.twig b/SyliusShopBundle/views/Account/dashboard.html.twig
deleted file mode 100644
index 0ff6073..0000000
--- a/SyliusShopBundle/views/Account/dashboard.html.twig
+++ /dev/null
@@ -1,49 +0,0 @@
-{% extends '@SyliusShop/Account/layout.html.twig' %}
-
-{% block title %}{{ 'sylius.ui.my_account'|trans }} | {{ parent() }}{% endblock %}
-
-{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-{% block breadcrumb %}
-
-
- {{ 'sylius.ui.home'|trans }}
- {{ 'sylius.ui.my_account'|trans }}
-
-
-{% endblock %}
-
-{% block subcontent %}
- {{ headers.default('sylius.ui.my_account'|trans, '', 'sylius.ui.manage_your_personal_information_and_preferences'|trans) }}
-
- {{ sylius_template_event('sylius.shop.account.dashboard.after_content_header', {'customer': customer}) }}
-
-
-
- {% if not customer.user.verified %}
-
-
{{ 'sylius.ui.not_verified'|trans }}
-
-
- {% endif %}
-
-
{{ customer.fullName }}
-
{{ customer.email }}
- {% if customer.user.verified %}
-
{{ 'sylius.ui.verified'|trans }}
- {% endif %}
-
-
- {{ sylius_template_event('sylius.shop.account.dashboard.after_information', {'customer': customer}) }}
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/Account/requestPasswordReset.html.twig b/SyliusShopBundle/views/Account/requestPasswordReset.html.twig
deleted file mode 100644
index 1220227..0000000
--- a/SyliusShopBundle/views/Account/requestPasswordReset.html.twig
+++ /dev/null
@@ -1,27 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
-
-{% block title %}{{ 'sylius.ui.reset_password'|trans }} | {{ parent() }}{% endblock %}
-
-{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
-
-{% block content %}
-
- {{ headers.default('sylius.ui.reset_password'|trans, '', 'sylius.ui.set_a_new_password_for_your_account'|trans) }}
-
- {{ sylius_template_event('sylius.shop.request_password_reset_token.after_content_header') }}
-
- {{ form_start(form, {'action': path('sylius_shop_request_password_reset_token'), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
- {{ form_row(form.email, sylius_test_form_attribute('reset-email')) }}
-
- {{ sylius_template_event('sylius.shop.request_password_reset_token.form', {'form': form}) }}
-
- {{ form_row(form._token) }}
-
- {{ 'sylius.ui.reset'|trans }}
-
- {{ form_end(form, {'render_rest': false}) }}
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/Account/resetPassword.html.twig b/SyliusShopBundle/views/Account/resetPassword.html.twig
deleted file mode 100644
index 6364af1..0000000
--- a/SyliusShopBundle/views/Account/resetPassword.html.twig
+++ /dev/null
@@ -1,22 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
-
-{% block title %}{{ 'sylius.ui.reset_password'|trans }} | {{ parent() }}{% endblock %}
-
-{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
-
-{% block content %}
-
- {{ headers.default('sylius.ui.reset_password'|trans, '', 'sylius.ui.set_a_new_password_for_your_account'|trans) }}
-
-
- {{ form_start(form, {'action': path('sylius_shop_password_reset', {'token': user.passwordResetToken}), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
- {{ form_row(form.password.first, {'label': 'sylius.form.user_reset_password.new'|trans}) }}
- {{ form_row(form.password.second, {'label': 'sylius.form.user_reset_password.confirmation'|trans}) }}
- {{ form_row(form._token) }}
- {{ 'sylius.ui.reset'|trans }}
- {{ form_end(form, {'render_rest': false}) }}
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/Cart/Summary/_header.html.twig b/SyliusShopBundle/views/Cart/Summary/_header.html.twig
deleted file mode 100644
index ed434bf..0000000
--- a/SyliusShopBundle/views/Cart/Summary/_header.html.twig
+++ /dev/null
@@ -1,16 +0,0 @@
-{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
-
-
-
- {{ headers.default(header|trans, '', 'sylius.ui.edit_your_items_apply_coupon_or_proceed_to_the_checkout'|trans) }}
-
-
-
-
-
diff --git a/SyliusShopBundle/views/Cart/Summary/_item.html.twig b/SyliusShopBundle/views/Cart/Summary/_item.html.twig
deleted file mode 100644
index 5cf76a6..0000000
--- a/SyliusShopBundle/views/Cart/Summary/_item.html.twig
+++ /dev/null
@@ -1,31 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-{% set product_variant = item.variant %}
-
-
-
- {{ icons.times() }}
-
-
- {% include '@SyliusShop/Product/_info.html.twig' with {'variant': product_variant} %}
-
-
- {% if item.unitPrice != item.discountedUnitPrice %}
- {{ money.convertAndFormat(item.unitPrice) }}
- {% endif %}
- {{ money.convertAndFormat(item.discountedUnitPrice) }}
-
-
- {{ form_widget(form.quantity, sylius_test_form_attribute('cart-item-quantity-input', item.productName)) }}
-
-
- {{ money.convertAndFormat(item.subtotal) }}
-
-
diff --git a/SyliusShopBundle/views/Cart/Summary/_items.html.twig b/SyliusShopBundle/views/Cart/Summary/_items.html.twig
deleted file mode 100644
index 93c645f..0000000
--- a/SyliusShopBundle/views/Cart/Summary/_items.html.twig
+++ /dev/null
@@ -1,39 +0,0 @@
-
- {{ form_start(form, {'action': path('sylius_shop_cart_save'), 'attr': {'class': 'loadable', 'novalidate': 'novalidate', 'id': form.vars.id}}) }}
- {{ form_errors(form) }}
-
-
- {{ sylius_template_event('sylius.shop.cart.summary.items', {'cart': cart, 'form': form}) }}
-
-
-
-
- {% for key, item in cart.items %}
- {% include '@SyliusShop/Cart/Summary/_item.html.twig' with {'item': item, 'form': form.items[key], 'main_form': form.vars.id} %}
- {% endfor %}
-
-
-
-
- {% if form.promotionCoupon is defined %}
-
- {{ sylius_template_event('sylius.shop.cart.coupon', {'cart': cart, 'form': form, 'main_form': form.vars.id}) }}
-
- {% endif %}
-
-
- {% include '@SyliusShop/Cart/Summary/_update.html.twig' with {'main_form': form.vars.id} %}
-
-
-
- {{ form_row(form._token) }}
- {{ form_end(form, {'render_rest': false}) }}
-
diff --git a/SyliusShopBundle/views/Cart/Summary/_totals.html.twig b/SyliusShopBundle/views/Cart/Summary/_totals.html.twig
deleted file mode 100644
index 59320d7..0000000
--- a/SyliusShopBundle/views/Cart/Summary/_totals.html.twig
+++ /dev/null
@@ -1,62 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% set items_subtotal = sylius_order_items_subtotal(cart) %}
-{% set tax_included = sylius_order_tax_included(cart) %}
-{% set tax_excluded = sylius_order_tax_excluded(cart) %}
-
-
-
-
- {{ sylius_template_event('sylius.shop.cart.summary.totals', {'cart': cart}) }}
-
-
-
- {{ 'sylius.ui.items_total'|trans }}:
- {{ money.convertAndFormat(items_subtotal) }}
-
-
- {% if cart.orderPromotionTotal %}
-
- {{ 'sylius.ui.discount'|trans }}:
- {{ money.convertAndFormat(cart.orderPromotionTotal) }}
-
- {% endif %}
-
-
- {{ 'sylius.ui.shipping_estimated_cost'|trans }}:
-
- {% if cart.getAdjustmentsTotal('shipping') > cart.shippingTotal %}
- {{ money.convertAndFormat(cart.getAdjustmentsTotal('shipping')) }}
- {% endif %}
- {{ money.convertAndFormat(cart.shippingTotal) }}
-
-
-
-
- {{ 'sylius.ui.taxes_total'|trans }}:
- {% if not tax_included and not tax_excluded %}
- {{ money.convertAndFormat(0) }}
- {% endif %}
- {% if tax_excluded %}
- {{ money.convertAndFormat(tax_excluded) }}
- {% endif %}
- {% if tax_included %}
- ({{ 'sylius.ui.included_in_price'|trans }}) {{ money.convertAndFormat(tax_included) }}
- {% endif %}
-
-
-
- {{ 'sylius.ui.order_total'|trans }}:
- {{ money.convertAndFormat(cart.total) }}
-
-
- {% if cart.currencyCode is not same as(sylius.currencyCode) %}
-
- {{ 'sylius.ui.base_currency_order_total'|trans }}:
- {{ money.format(cart.total, cart.currencyCode) }}
-
- {% endif %}
-
-
diff --git a/SyliusShopBundle/views/Cart/Summary/_update.html.twig b/SyliusShopBundle/views/Cart/Summary/_update.html.twig
deleted file mode 100644
index 42741ac..0000000
--- a/SyliusShopBundle/views/Cart/Summary/_update.html.twig
+++ /dev/null
@@ -1,6 +0,0 @@
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-
- {{ icons.reload() }}
- {{ 'sylius.ui.update_cart'|trans }}
-
diff --git a/SyliusShopBundle/views/Cart/Widget/_button.html.twig b/SyliusShopBundle/views/Cart/Widget/_button.html.twig
deleted file mode 100644
index 6f3f4db..0000000
--- a/SyliusShopBundle/views/Cart/Widget/_button.html.twig
+++ /dev/null
@@ -1,11 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-
- {{ money.convertAndFormat(cart.itemsTotal) }}
- {{ icons.cart('h1 m-0') }}
- {{ cart.items|length }}
-
diff --git a/SyliusShopBundle/views/Cart/Widget/_popup.html.twig b/SyliusShopBundle/views/Cart/Widget/_popup.html.twig
deleted file mode 100644
index d08dc86..0000000
--- a/SyliusShopBundle/views/Cart/Widget/_popup.html.twig
+++ /dev/null
@@ -1,31 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% if cart.empty %}
-
- {{ 'sylius.ui.your_cart_is_empty'|trans }}.
-
-{% else %}
-
-
- {% for item in cart.items %}
-
- {{ item.product }}
-
- {{ item.quantity }} x
- {{ money.convertAndFormat(item.unitPrice) }}
-
-
- {% endfor %}
-
- {{ 'sylius.ui.subtotal'|trans }}:
- {{ money.convertAndFormat(cart.itemsTotal) }}
-
-
-
-
-
-{% endif %}
-
diff --git a/SyliusShopBundle/views/Checkout/Address/_form.html.twig b/SyliusShopBundle/views/Checkout/Address/_form.html.twig
deleted file mode 100644
index 6c4574e..0000000
--- a/SyliusShopBundle/views/Checkout/Address/_form.html.twig
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
{{ 'sylius.ui.billing_address'|trans }}
-
-
-
-
- {% include '@SyliusShop/Checkout/Address/_addressBookSelect.html.twig' %}
-
-
- {% if form.customer is defined %}
- {% include '@SyliusShop/Common/Form/_login.html.twig' with {'form': form.customer} %}
- {% endif %}
- {% include '@SyliusShop/Common/Form/_address.html.twig' with {'form': form.billingAddress, 'order': order, 'type': 'billing'} %}
- {{ form_row(form.differentShippingAddress, sylius_test_form_attribute('different-shipping-address')|sylius_merge_recursive({'attr': {'data-js-toggle': '[data-js-address-book="sylius-shipping-address"]'}})) }}
-
- {{ sylius_template_event('sylius.shop.checkout.address.billing_address_form', {'order': order}) }}
-
-
-
-
-
-
{{ 'sylius.ui.shipping_address'|trans }}
-
-
-
-
- {% include '@SyliusShop/Checkout/Address/_addressBookSelect.html.twig' %}
-
-
- {% include '@SyliusShop/Common/Form/_address.html.twig' with {'form': form.shippingAddress, 'order': order, 'type': 'shipping'} %}
-
- {{ sylius_template_event('sylius.shop.checkout.address.shipping_address_form', {'order': order}) }}
-
-
-
diff --git a/SyliusShopBundle/views/Checkout/Address/_navigation.html.twig b/SyliusShopBundle/views/Checkout/Address/_navigation.html.twig
deleted file mode 100644
index d3c271f..0000000
--- a/SyliusShopBundle/views/Checkout/Address/_navigation.html.twig
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- {{ 'sylius.ui.next'|trans }}
-
-
-
diff --git a/SyliusShopBundle/views/Checkout/Complete/_form.html.twig b/SyliusShopBundle/views/Checkout/Complete/_form.html.twig
deleted file mode 100644
index fc36506..0000000
--- a/SyliusShopBundle/views/Checkout/Complete/_form.html.twig
+++ /dev/null
@@ -1 +0,0 @@
-{{ form_row(form.notes, sylius_test_form_attribute('extra-notes')|merge({'attr': {'rows': 3}})) }}
diff --git a/SyliusShopBundle/views/Checkout/Complete/_navigation.html.twig b/SyliusShopBundle/views/Checkout/Complete/_navigation.html.twig
deleted file mode 100644
index 9d444b2..0000000
--- a/SyliusShopBundle/views/Checkout/Complete/_navigation.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- {{ 'sylius.ui.place_order'|trans }}
-
-
diff --git a/SyliusShopBundle/views/Checkout/SelectPayment/_choice.html.twig b/SyliusShopBundle/views/Checkout/SelectPayment/_choice.html.twig
deleted file mode 100644
index a2fd38b..0000000
--- a/SyliusShopBundle/views/Checkout/SelectPayment/_choice.html.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- {{ form_widget(form, sylius_test_form_attribute('payment-method-select')) }}
- {{ form_label(form) }}
-
-
- {% if method.description is not null %}
-
{{ method.description }}
- {% endif %}
-
-
diff --git a/SyliusShopBundle/views/Checkout/SelectPayment/_form.html.twig b/SyliusShopBundle/views/Checkout/SelectPayment/_form.html.twig
deleted file mode 100644
index 21a3050..0000000
--- a/SyliusShopBundle/views/Checkout/SelectPayment/_form.html.twig
+++ /dev/null
@@ -1,7 +0,0 @@
-
- {% for payment_form in form.payments %}
- {% include '@SyliusShop/Checkout/SelectPayment/_payment.html.twig' with {'form': payment_form} %}
- {% else %}
- {% include '@SyliusShop/Checkout/SelectPayment/_unavailable.html.twig' %}
- {% endfor %}
-
diff --git a/SyliusShopBundle/views/Checkout/SelectPayment/_navigation.html.twig b/SyliusShopBundle/views/Checkout/SelectPayment/_navigation.html.twig
deleted file mode 100644
index b17bf8c..0000000
--- a/SyliusShopBundle/views/Checkout/SelectPayment/_navigation.html.twig
+++ /dev/null
@@ -1,20 +0,0 @@
-{% set enabled = order.payments|length %}
-
-
-
-
-
- {{ 'sylius.ui.next'|trans }}
-
-
-
diff --git a/SyliusShopBundle/views/Checkout/SelectPayment/_payment.html.twig b/SyliusShopBundle/views/Checkout/SelectPayment/_payment.html.twig
deleted file mode 100644
index dde2b2a..0000000
--- a/SyliusShopBundle/views/Checkout/SelectPayment/_payment.html.twig
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
{{ 'sylius.ui.payment'|trans }} #{{ loop.index }}
-
- {{ form_errors(form.method) }}
-
- {% for key, choice_form in form.method %}
- {% include '@SyliusShop/Checkout/SelectPayment/_choice.html.twig' with {'form': choice_form, 'method': form.method.vars.choices[key].data} %}
- {% else %}
- {% include '@SyliusShop/Checkout/SelectPayment/_unavailable.html.twig' %}
- {% endfor %}
-
-
diff --git a/SyliusShopBundle/views/Checkout/SelectShipping/_choice.html.twig b/SyliusShopBundle/views/Checkout/SelectShipping/_choice.html.twig
deleted file mode 100644
index 7c1be06..0000000
--- a/SyliusShopBundle/views/Checkout/SelectShipping/_choice.html.twig
+++ /dev/null
@@ -1,21 +0,0 @@
-{% import '@SyliusShop/Common/Macro/money.html.twig' as money %}
-
-
-
-
-
-
- {{ form_widget(form, sylius_test_form_attribute('shipping-method-select')) }}
-
-
-
- {{ form_label(form) }}
-
-
-
{{ money.convertAndFormat(fee) }}
-
- {% if method.description is not null %}
-
{{ method.description }}
- {% endif %}
-
-
diff --git a/SyliusShopBundle/views/Checkout/SelectShipping/_form.html.twig b/SyliusShopBundle/views/Checkout/SelectShipping/_form.html.twig
deleted file mode 100644
index 02a83a2..0000000
--- a/SyliusShopBundle/views/Checkout/SelectShipping/_form.html.twig
+++ /dev/null
@@ -1,7 +0,0 @@
-
- {% for key, shipment in order.shipments %}
- {% include '@SyliusShop/Checkout/SelectShipping/_shipment.html.twig' with {'form': form.shipments[key]} %}
- {% else %}
- {% include '@SyliusShop/Checkout/SelectShipping/_unavailable.html.twig' %}
- {% endfor %}
-
diff --git a/SyliusShopBundle/views/Checkout/SelectShipping/_navigation.html.twig b/SyliusShopBundle/views/Checkout/SelectShipping/_navigation.html.twig
deleted file mode 100644
index 416c315..0000000
--- a/SyliusShopBundle/views/Checkout/SelectShipping/_navigation.html.twig
+++ /dev/null
@@ -1,14 +0,0 @@
-{% set enabled = order.shipments|length %}
-
-
-
-
-
- {{ 'sylius.ui.next'|trans }}
-
-
-
diff --git a/SyliusShopBundle/views/Checkout/SelectShipping/_shipment.html.twig b/SyliusShopBundle/views/Checkout/SelectShipping/_shipment.html.twig
deleted file mode 100644
index 2e98920..0000000
--- a/SyliusShopBundle/views/Checkout/SelectShipping/_shipment.html.twig
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
{{ 'sylius.ui.shipment'|trans }} #{{ loop.index }}
-
- {{ form_errors(form.method) }}
-
- {% for key, choice_form in form.method %}
- {% set fee = form.method.vars.shipping_costs[choice_form.vars.value] %}
- {% set method = form.method.vars.choices[key].data %}
- {% include '@SyliusShop/Checkout/SelectShipping/_choice.html.twig' with {'form': choice_form, 'method': method, 'fee': fee} %}
- {% else %}
- {% include '@SyliusShop/Checkout/SelectShipping/_unavailable.html.twig' %}
- {% endfor %}
-
-
diff --git a/SyliusShopBundle/views/Checkout/_steps.html.twig b/SyliusShopBundle/views/Checkout/_steps.html.twig
deleted file mode 100644
index 737437e..0000000
--- a/SyliusShopBundle/views/Checkout/_steps.html.twig
+++ /dev/null
@@ -1,56 +0,0 @@
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-{% if active is not defined or active == 'address' %}
- {% set steps = {'address': 'active', 'select_shipping': 'disabled', 'select_payment': 'disabled', 'complete': 'disabled'} %}
-{% elseif active == 'select_shipping' %}
- {% set steps = {'address': 'completed', 'select_shipping': 'active', 'select_payment': 'disabled', 'complete': 'disabled'} %}
-{% elseif active == 'select_payment' %}
- {% set steps = {'address': 'completed', 'select_shipping': 'completed', 'select_payment': 'active', 'complete': 'disabled'} %}
-{% else %}
- {% set steps = {'address': 'completed', 'select_shipping': 'completed', 'select_payment': 'completed', 'complete': 'active'} %}
-{% endif %}
-
-{% set order_requires_payment = sylius_is_payment_required(order) %}
-{% set order_requires_shipping = sylius_is_shipping_required(order) %}
-
-{% set steps_count = 'four' %}
-{% if not order_requires_payment and not order_requires_shipping %}
- {% set steps_count = 'two' %}
-{% elseif not order_requires_payment or not order_requires_shipping %}
- {% set steps_count = 'three' %}
-{% endif %}
-
-
diff --git a/SyliusShopBundle/views/Checkout/_summary.html.twig b/SyliusShopBundle/views/Checkout/_summary.html.twig
deleted file mode 100644
index 3c0ea76..0000000
--- a/SyliusShopBundle/views/Checkout/_summary.html.twig
+++ /dev/null
@@ -1,86 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% set items_subtotal = sylius_order_items_subtotal(order) %}
-{% set tax_included = sylius_order_tax_included(order) %}
-{% set tax_excluded = sylius_order_tax_excluded(order) %}
-
-
-
-
-
- {% for item in order.items %}
-
- {{ item.getVariant.product.name }}
-
- {{ item.quantity }}
-
-
- {{ money.convertAndFormat(item.subtotal) }}
-
-
- {% endfor %}
-
-
-
-
- {{ 'sylius.ui.items_total'|trans }}:
-
-
- {{ money.convertAndFormat(items_subtotal) }}
-
-
-
-
- {{ 'sylius.ui.taxes_total'|trans }}:
-
-
- {% if not tax_included and not tax_excluded %}
- {{ money.convertAndFormat(0) }}
- {% endif %}
- {% if tax_excluded %}
- {{ money.convertAndFormat(tax_excluded) }}
- {% endif %}
- {% if tax_included %}
-
- ({{ 'sylius.ui.included_in_price'|trans }})
- {{ money.convertAndFormat(tax_included) }}
-
- {% endif %}
-
-
-
-
- {{ 'sylius.ui.discount'|trans }}:
-
-
- {{ money.convertAndFormat(order.orderPromotionTotal) }}
-
-
-
-
- {{ 'sylius.ui.shipping_estimated_cost'|trans }}:
-
-
- {% if order.getAdjustmentsTotal('shipping') > order.shippingTotal %}
- {{ money.convertAndFormat(order.getAdjustmentsTotal('shipping')) }}
- {% endif %}
- {{ money.convertAndFormat(order.shippingTotal) }}
-
-
-
-
- {{ 'sylius.ui.order_total'|trans }}:
-
-
- {{ money.convertAndFormat(order.total) }}
-
-
-
-
-
diff --git a/SyliusShopBundle/views/Checkout/selectShipping.html.twig b/SyliusShopBundle/views/Checkout/selectShipping.html.twig
deleted file mode 100644
index 87be516..0000000
--- a/SyliusShopBundle/views/Checkout/selectShipping.html.twig
+++ /dev/null
@@ -1,35 +0,0 @@
-{% extends '@SyliusShop/Checkout/layout.html.twig' %}
-
-{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
-
-{% block title %}{{ 'sylius.ui.shipping'|trans }} | {{ parent() }}{% endblock %}
-
-{% block content %}
- {{ sylius_template_event(['sylius.shop.checkout.select_shipping.steps', 'sylius.shop.checkout.steps'], _context|merge({'active': 'select_shipping', 'orderTotal': order.total})) }}
-
-
-
-
-
- {{ sylius_template_event('sylius.shop.checkout.select_shipping.before_form', {'order': order}) }}
-
- {{ form_start(form, {'action': path('sylius_shop_checkout_select_shipping'), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
- {{ form_errors(form) }}
-
-
- {% include '@SyliusShop/Checkout/SelectShipping/_form.html.twig' %}
-
- {{ sylius_template_event('sylius.shop.checkout.select_shipping.before_navigation', {'order': order}) }}
-
- {% include '@SyliusShop/Checkout/SelectShipping/_navigation.html.twig' %}
-
- {{ form_row(form._token) }}
- {{ form_end(form, {'render_rest': false}) }}
-
-
-
-
- {{ sylius_template_event(['sylius.shop.checkout.select_shipping.sidebar', 'sylius.shop.checkout.sidebar'], _context) }}
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/Common/Macro/pagination.html.twig b/SyliusShopBundle/views/Common/Macro/pagination.html.twig
deleted file mode 100644
index ab003e0..0000000
--- a/SyliusShopBundle/views/Common/Macro/pagination.html.twig
+++ /dev/null
@@ -1,23 +0,0 @@
-{% macro simple(paginator, options) %}
-{% if paginator.haveToPaginate() %}
- {{ pagerfanta(paginator, 'twitter_bootstrap4', options|default({'prev_message': '← ' ~ 'sylius.ui.previous'|trans, 'next_message': 'sylius.ui.next'|trans ~ ' →'})) }}
-{% endif %}
-{% endmacro %}
-{% macro perPage(paginator, paginationLimits) %}
- {# The dropdown don't work actually, let's remove it #}
- {#
-
-
- {{ 'sylius.ui.show'|trans }} {{ paginator.maxPerPage }}
-
-
-
- #}
-{% endmacro %}
diff --git a/SyliusShopBundle/views/Common/Macro/sectionHeaders.html.twig b/SyliusShopBundle/views/Common/Macro/sectionHeaders.html.twig
deleted file mode 100644
index a31f361..0000000
--- a/SyliusShopBundle/views/Common/Macro/sectionHeaders.html.twig
+++ /dev/null
@@ -1,6 +0,0 @@
-{% macro default(header, subheader) %}
- {{ header }}
- {% if subheader is not empty %}
- {{ subheader|raw }}
- {% endif %}
-{% endmacro %}
diff --git a/SyliusShopBundle/views/Common/Macro/table.html.twig b/SyliusShopBundle/views/Common/Macro/table.html.twig
deleted file mode 100644
index 3949d5a..0000000
--- a/SyliusShopBundle/views/Common/Macro/table.html.twig
+++ /dev/null
@@ -1,47 +0,0 @@
-{% macro headers(grid, definition, requestAttributes) %}
- {% import '@SyliusShop/Common/Macro/sorting.html.twig' as sorting %}
-
- {% if definition.actionGroups.bulk is defined and definition.getEnabledActions('bulk')|length > 0 %}
-
- {% endif %}
-
- {% for field in definition.fields|sort_by('position') %}
- {% if field.enabled %}
- {% if field.isSortable %}
- {{ sorting.tableHeader(grid, field, requestAttributes) }}
- {% else %}
- {{ field.label|trans }}
- {% endif %}
- {% endif %}
- {% endfor %}
- {% if definition.actionGroups.item is defined and definition.getEnabledActions('item')|length > 0 %}
- {{ 'sylius.ui.actions'|trans }}
- {% endif %}
-{% endmacro %}
-
-{% macro row(grid, definition, row) %}
-
- {% if definition.actionGroups.bulk is defined and definition.getEnabledActions('bulk')|length > 0 %}
-
- {% endif %}
- {% for field in definition.enabledFields|sort_by('position') %}
- {{ sylius_grid_render_field(grid, field, row) }}
- {% endfor %}
- {% if definition.actionGroups.item is defined and definition.getEnabledActions('item')|length > 0 %}
-
-
- {% for action in definition.getEnabledActions('item')|sort_by('position') %}
- {{ sylius_grid_render_action(grid, action, row) }}
- {% endfor %}
-
- {% if definition.actionGroups.subitem is defined and definition.getEnabledActions('subitem')|length > 0 %}
-
- {% for action in definition.getEnabledActions('subitem')|sort_by('position') %}
- {{ sylius_grid_render_action(grid, action, row) }}
- {% endfor %}
-
- {% endif %}
-
- {% endif %}
-
-{% endmacro %}
diff --git a/SyliusShopBundle/views/Common/Order/Label/PaymentState/orderPaymentState.html.twig b/SyliusShopBundle/views/Common/Order/Label/PaymentState/orderPaymentState.html.twig
deleted file mode 100644
index 131ec6c..0000000
--- a/SyliusShopBundle/views/Common/Order/Label/PaymentState/orderPaymentState.html.twig
+++ /dev/null
@@ -1,18 +0,0 @@
-{% set view_options = {
- authorized: {icon: "fas fa-check", color: "primary"},
- awaiting_payment: {icon: "fas fa-clock", color: "secondary"},
- cancelled: {icon: "fas fa-ban", color: "danger"},
- paid: {icon: "fas fa-adjust", color: "success"},
- partially_authorized: {icon: "fas fa-ban", color: "warning"},
- partially_paid: {icon: "fas fa-clock", color: "info"},
- partially_refunded: {icon: "fas fa-check", color: "info"},
- refunded: {icon: "fas fa-reply-all", color: "light"},
- }
-%}
-
-{% set value = 'sylius.ui.' ~ state %}
-
-
-
- {{ 'sylius.ui.state'|trans }}: {{ value|trans }}
-
diff --git a/SyliusShopBundle/views/Common/Order/Label/PaymentState/singlePaymentState.html.twig b/SyliusShopBundle/views/Common/Order/Label/PaymentState/singlePaymentState.html.twig
deleted file mode 100644
index 88a429d..0000000
--- a/SyliusShopBundle/views/Common/Order/Label/PaymentState/singlePaymentState.html.twig
+++ /dev/null
@@ -1,17 +0,0 @@
-{% set view_options = {
- authorized: {icon: "fas fa-check", color: "primary"},
- cancelled: {icon: "fas fa-ban", color: "warning"},
- completed: {icon: "fas fa-adjust", color: "success"},
- failed: {icon: "fas fa-ban", color: "danger"},
- new: {icon: "fas fa-clock", color: "secondary"},
- processing: {icon: "fas fa-check", color: "info"},
- refunded: {icon: "fas fa-reply-all", color: "light"},
-}
-%}
-
-{% set value = 'sylius.ui.' ~ state %}
-
-
-
- {{ value|trans }}
-
diff --git a/SyliusShopBundle/views/Common/Order/Label/ShipmentState/orderShipmentState.html.twig b/SyliusShopBundle/views/Common/Order/Label/ShipmentState/orderShipmentState.html.twig
deleted file mode 100644
index 6b1c3f6..0000000
--- a/SyliusShopBundle/views/Common/Order/Label/ShipmentState/orderShipmentState.html.twig
+++ /dev/null
@@ -1,15 +0,0 @@
-{% set view_options = {
- cart: {icon: "fas fa-adjust", color: "secondary"},
- cancelled: {icon: "fas fa-ban", color: "danger"},
- shipped: {icon: "fas fa-plane", color: "success"},
- partially_shipped: {icon: "fas fa-adjust", color: "warning"},
- partially_paid: {icon: "fas fa-clock", color: "primary"},
- }
-%}
-
-{% set value = 'sylius.ui.' ~ state %}
-
-
-
- {{ 'sylius.ui.state'|trans }}: {{ value|trans }}
-
diff --git a/SyliusShopBundle/views/Common/Order/Label/ShipmentState/singleShipmentState.html.twig b/SyliusShopBundle/views/Common/Order/Label/ShipmentState/singleShipmentState.html.twig
deleted file mode 100644
index f0dc4df..0000000
--- a/SyliusShopBundle/views/Common/Order/Label/ShipmentState/singleShipmentState.html.twig
+++ /dev/null
@@ -1,14 +0,0 @@
-{% set view_options = {
- cart: {icon: "fas fa-adjust", color: "secondary"},
- cancelled: {icon: "fas fa-ban", color: "danger"},
- shipped: {icon: "fas fa-plane", color: "success"},
- ready: {icon: "fas fa-clock", color: "primary"},
-}
-%}
-
-{% set value = 'sylius.ui.' ~ state %}
-
-
-
- {{ value|trans }}
-
diff --git a/SyliusShopBundle/views/Common/Order/Table/_headers.html.twig b/SyliusShopBundle/views/Common/Order/Table/_headers.html.twig
deleted file mode 100644
index 3c8c493..0000000
--- a/SyliusShopBundle/views/Common/Order/Table/_headers.html.twig
+++ /dev/null
@@ -1,6 +0,0 @@
-
- {{ 'sylius.ui.item'|trans }}
- {{ 'sylius.ui.unit_price'|trans }}
- {{ 'sylius.ui.qty'|trans }}
- {{ 'sylius.ui.subtotal'|trans }}
-
diff --git a/SyliusShopBundle/views/Common/Order/Table/_item.html.twig b/SyliusShopBundle/views/Common/Order/Table/_item.html.twig
deleted file mode 100644
index ccff2b8..0000000
--- a/SyliusShopBundle/views/Common/Order/Table/_item.html.twig
+++ /dev/null
@@ -1,23 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% set unit_promotion_adjustment = constant('Sylius\\Component\\Core\\Model\\AdjustmentInterface::ORDER_UNIT_PROMOTION_ADJUSTMENT') %}
-{% set unit_promotions = item.units.first.adjustments(unit_promotion_adjustment) %}
-
-
- {% include '@SyliusShop/Product/_info.html.twig' with {'variant': item.variant} %}
-
- {% if item.unitPrice != item.discountedUnitPrice %}
- {{ money.convertAndFormat(item.unitPrice) }}
- {% endif %}
-
- {{ money.convertAndFormat(item.discountedUnitPrice) }}
- {% if item.unitPrice != item.discountedUnitPrice %}
-
-
-
- {% endif %}
-
-
- {{ item.quantity }}
- {{ money.convertAndFormat(item.subtotal) }}
-
diff --git a/SyliusShopBundle/views/Common/Order/Table/_items.html.twig b/SyliusShopBundle/views/Common/Order/Table/_items.html.twig
deleted file mode 100644
index dbb084c..0000000
--- a/SyliusShopBundle/views/Common/Order/Table/_items.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% for item in order.items %}
- {% include '@SyliusShop/Common/Order/Table/_item.html.twig' %}
-{% endfor %}
diff --git a/SyliusShopBundle/views/Common/Order/Table/_promotion.html.twig b/SyliusShopBundle/views/Common/Order/Table/_promotion.html.twig
deleted file mode 100644
index 268ff75..0000000
--- a/SyliusShopBundle/views/Common/Order/Table/_promotion.html.twig
+++ /dev/null
@@ -1,16 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% set order_promotion_adjustment = constant('Sylius\\Component\\Core\\Model\\AdjustmentInterface::ORDER_PROMOTION_ADJUSTMENT') %}
-{% set order_promotions = sylius_aggregate_adjustments(order.getAdjustmentsRecursively(order_promotion_adjustment)) %}
-
-{% if not order_promotions is empty %}
-
- {% for label, amount in order_promotions %}
- {{ label }}: {{ money.convertAndFormat(amount) }}
- {% endfor %}
-
-{% endif %}
-
- {{ 'sylius.ui.promotion_total'|trans }}:
- {{ money.format(order.orderPromotionTotal, order.currencyCode) }}
-
diff --git a/SyliusShopBundle/views/Common/Order/Table/_shipping.html.twig b/SyliusShopBundle/views/Common/Order/Table/_shipping.html.twig
deleted file mode 100644
index e1149bf..0000000
--- a/SyliusShopBundle/views/Common/Order/Table/_shipping.html.twig
+++ /dev/null
@@ -1,23 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% set order_shipping_promotion_adjustment = constant('Sylius\\Component\\Core\\Model\\AdjustmentInterface::ORDER_SHIPPING_PROMOTION_ADJUSTMENT') %}
-{% set shipping_adjustment = constant('Sylius\\Component\\Core\\Model\\AdjustmentInterface::SHIPPING_ADJUSTMENT') %}
-{% set order_shipping_promotions = sylius_aggregate_adjustments(order.getAdjustmentsRecursively(order_shipping_promotion_adjustment)) %}
-
-{% if not order_shipping_promotions is empty %}
-
- {{ 'sylius.ui.shipping_total'|trans }}:
- {{ money.convertAndFormat(order.getAdjustmentsTotal(shipping_adjustment)) }}
-
- {{ money.convertAndFormat(order.getAdjustmentsTotal(shipping_adjustment) + order.getAdjustmentsTotal(order_shipping_promotion_adjustment)) }}
-
-
-
-
-
-{% else %}
-
- {{ 'sylius.ui.shipping_total'|trans }}:
- {{ money.convertAndFormat(order.shippingTotal) }}
-
-{% endif %}
diff --git a/SyliusShopBundle/views/Common/Order/Table/_totals.html.twig b/SyliusShopBundle/views/Common/Order/Table/_totals.html.twig
deleted file mode 100644
index 9f7d9c1..0000000
--- a/SyliusShopBundle/views/Common/Order/Table/_totals.html.twig
+++ /dev/null
@@ -1,60 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% set items_subtotal = sylius_order_items_subtotal(order) %}
-{% set tax_included = sylius_order_tax_included(order) %}
-{% set tax_excluded = sylius_order_tax_excluded(order) %}
-
-{% set order_promotion_adjustment = constant('Sylius\\Component\\Core\\Model\\AdjustmentInterface::ORDER_PROMOTION_ADJUSTMENT') %}
-{% set order_promotions = sylius_aggregate_adjustments(order.adjustmentsRecursively(order_promotion_adjustment)) %}
-
-
-
- {{ 'sylius.ui.items_total'|trans }}: {{ money.convertAndFormat(items_subtotal) }}
-
-
-
-
-
-
{{ 'sylius.ui.taxes_total'|trans }}:
-
- {% if not tax_included and not tax_excluded %}
-
{{ money.convertAndFormat(0) }}
- {% endif %}
- {% if tax_excluded %}
-
{{ money.convertAndFormat(tax_excluded) }}
- {% endif %}
- {% if tax_included %}
-
- ({{ 'sylius.ui.included_in_price'|trans }})
- {{ money.convertAndFormat(tax_included) }}
-
- {% endif %}
-
-
-
-
-
-
- {{ 'sylius.ui.discount'|trans }}: {{ money.convertAndFormat(order.orderPromotionTotal) }}
- {% if order.orderPromotionTotal != 0 %}
-
-
-
- {% endif %}
-
-
-
- {% include '@SyliusShop/Common/Order/Table/_shipping.html.twig' with {'order': order} %}
-
-
-
- {{ 'sylius.ui.total'|trans }}: {{ money.convertAndFormat(order.total) }}
-
-
-{% if order.currencyCode is not same as(sylius.currencyCode) %}
-
-
- {{ 'sylius.ui.total_in_base_currency'|trans }}: {{ money.format(order.total, order.currencyCode) }}
-
-
-{% endif %}
diff --git a/SyliusShopBundle/views/Common/Order/_addresses.html.twig b/SyliusShopBundle/views/Common/Order/_addresses.html.twig
deleted file mode 100644
index 7259600..0000000
--- a/SyliusShopBundle/views/Common/Order/_addresses.html.twig
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- {% include '@SyliusShop/Common/_address.html.twig' with {'address': order.shippingAddress} %}
-
-
-
-
-
-
-
- {% include '@SyliusShop/Common/_address.html.twig' with {'address': order.billingAddress} %}
-
-
-
-
diff --git a/SyliusShopBundle/views/Common/Order/_shipments.html.twig b/SyliusShopBundle/views/Common/Order/_shipments.html.twig
deleted file mode 100644
index cc2087c..0000000
--- a/SyliusShopBundle/views/Common/Order/_shipments.html.twig
+++ /dev/null
@@ -1,23 +0,0 @@
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-{% for shipment in order.shipments %}
- {% set state = shipment.state %}
-
-
-
-
-
{{ icons.transport() }}
-
-
- {{ shipment.method }}
-
-
- {% if state != 'cart' %}
-
- {% include "@SyliusShop/Common/Order/Label/ShipmentState/singleShipmentState.html.twig" with {'state': state} %}
-
- {% endif %}
-
-
-
-{% endfor %}
diff --git a/SyliusShopBundle/views/Common/Order/_summary.html.twig b/SyliusShopBundle/views/Common/Order/_summary.html.twig
deleted file mode 100644
index dd1856f..0000000
--- a/SyliusShopBundle/views/Common/Order/_summary.html.twig
+++ /dev/null
@@ -1,16 +0,0 @@
-
- {% include '@SyliusShop/Common/Order/_addresses.html.twig' %}
-
-
-
- {% include '@SyliusShop/Common/Order/_table.html.twig' %}
-
-
-
-
- {% include '@SyliusShop/Common/Order/_payments.html.twig' %}
-
-
- {% include '@SyliusShop/Common/Order/_shipments.html.twig' %}
-
-
diff --git a/SyliusShopBundle/views/Common/Order/_table.html.twig b/SyliusShopBundle/views/Common/Order/_table.html.twig
deleted file mode 100644
index 0745ff0..0000000
--- a/SyliusShopBundle/views/Common/Order/_table.html.twig
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- {% include '@SyliusShop/Common/Order/Table/_headers.html.twig' %}
-
-
- {% include '@SyliusShop/Common/Order/Table/_items.html.twig' %}
-
-
- {% include '@SyliusShop/Common/Order/Table/_totals.html.twig' %}
-
-
diff --git a/SyliusShopBundle/views/Common/_rating.html.twig b/SyliusShopBundle/views/Common/_rating.html.twig
deleted file mode 100644
index 43716d0..0000000
--- a/SyliusShopBundle/views/Common/_rating.html.twig
+++ /dev/null
@@ -1,12 +0,0 @@
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-
-
-
{{ icons.star('text-warning') }}
-
{{ icons.star('text-muted') }}
-
diff --git a/SyliusShopBundle/views/Form/theme.html.twig b/SyliusShopBundle/views/Form/theme.html.twig
deleted file mode 100644
index b809639..0000000
--- a/SyliusShopBundle/views/Form/theme.html.twig
+++ /dev/null
@@ -1 +0,0 @@
-{% extends 'bootstrap_4_layout.html.twig' %}
diff --git a/SyliusShopBundle/views/Grid/Filter/string.html.twig b/SyliusShopBundle/views/Grid/Filter/string.html.twig
deleted file mode 100644
index ab409d3..0000000
--- a/SyliusShopBundle/views/Grid/Filter/string.html.twig
+++ /dev/null
@@ -1,6 +0,0 @@
-{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
-
-{% if form.type is defined %}
-{{ form_row(form.type, {'label': filter.label}) }}
-{% endif %}
-{{ form_row(form.value, {'label': form.type is defined ? form.value.vars.label : filter.label}) }}
diff --git a/SyliusShopBundle/views/Homepage/_aboutUs.html.twig b/SyliusShopBundle/views/Homepage/_aboutUs.html.twig
deleted file mode 100644
index b0affa0..0000000
--- a/SyliusShopBundle/views/Homepage/_aboutUs.html.twig
+++ /dev/null
@@ -1,10 +0,0 @@
-{% import '@SyliusShop/Common/Macro/sectionHeaders.html.twig' as headers %}
-
-
-
- {{ headers.default('sylius.homepage.about_us'|trans) }}
-
- {{ 'sylius.homepage.about_us_content'|trans }}
-
-
-
diff --git a/SyliusShopBundle/views/Homepage/_banner.html.twig b/SyliusShopBundle/views/Homepage/_banner.html.twig
deleted file mode 100644
index 298bea5..0000000
--- a/SyliusShopBundle/views/Homepage/_banner.html.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- {% if use_webpack %}
-
- {% else %}
-
- {% endif %}
-
-
-
{{ 'sylius.homepage.banner_content'|trans }}
-
{{ 'sylius.homepage.banner_button'|trans }}
-
-
diff --git a/SyliusShopBundle/views/Homepage/_carousel.html.twig b/SyliusShopBundle/views/Homepage/_carousel.html.twig
deleted file mode 100644
index 3225a74..0000000
--- a/SyliusShopBundle/views/Homepage/_carousel.html.twig
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- {% for product in products %}
- {% if loop.index0 % 2 == 0 %}
-
-
- {% endif %}
-
- {% include '@SyliusShop/Product/_box.html.twig' %}
-
- {% if loop.index % 2 == 0 or loop.last %}
-
-
- {% endif %}
- {% endfor %}
-
-
-
-
diff --git a/SyliusShopBundle/views/Homepage/_latestProductsCarousel.html.twig b/SyliusShopBundle/views/Homepage/_latestProductsCarousel.html.twig
deleted file mode 100644
index dd04eea..0000000
--- a/SyliusShopBundle/views/Homepage/_latestProductsCarousel.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-{% import '@SyliusShop/Common/Macro/sectionHeaders.html.twig' as headers %}
-
-{{ headers.default('sylius.homepage.carousel_header'|trans) }}
-
-{{ render(url('sylius_shop_partial_product_index_latest', {'count': 4, 'template': '@SyliusShop/Homepage/_carousel.html.twig'})) }}
diff --git a/SyliusShopBundle/views/Homepage/_list.html.twig b/SyliusShopBundle/views/Homepage/_list.html.twig
deleted file mode 100644
index 7726b36..0000000
--- a/SyliusShopBundle/views/Homepage/_list.html.twig
+++ /dev/null
@@ -1,15 +0,0 @@
-{% if products|length == 4 %}
- {% set columns = "col-6" %}
-{% endif %}
-{% if products|length == 3 %}
- {% set columns = "col-4" %}
-{% endif %}
-
-
- {% for product in products %}
-
- {% include '@SyliusShop/Product/_box.html.twig' %}
-
- {% endfor %}
-
-
diff --git a/SyliusShopBundle/views/Homepage/_newsletter.html.twig b/SyliusShopBundle/views/Homepage/_newsletter.html.twig
deleted file mode 100644
index f31c8d4..0000000
--- a/SyliusShopBundle/views/Homepage/_newsletter.html.twig
+++ /dev/null
@@ -1,21 +0,0 @@
-{% import '@SyliusShop/Common/Macro/sectionHeaders.html.twig' as headers %}
-
-
-
- {{ headers.default('sylius.homepage.newsletter'|trans, 'sylius.homepage.newsletter_description'|trans) }}
-
-
-
-
diff --git a/SyliusShopBundle/views/Homepage/_productsGrid.html.twig b/SyliusShopBundle/views/Homepage/_productsGrid.html.twig
deleted file mode 100644
index 3c48ae7..0000000
--- a/SyliusShopBundle/views/Homepage/_productsGrid.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- {{ render(url('sylius_shop_partial_product_index_latest', {'count': 1, 'template': '@SyliusShop/Homepage/_list.html.twig'})) }}
-
-
-
- {{ render(url('sylius_shop_partial_product_index_latest', {'count': 4, 'template': '@SyliusShop/Homepage/_list.html.twig'})) }}
-
-
diff --git a/SyliusShopBundle/views/Layout/Footer/Grid/_customer_care.html.twig b/SyliusShopBundle/views/Layout/Footer/Grid/_customer_care.html.twig
deleted file mode 100644
index 574f414..0000000
--- a/SyliusShopBundle/views/Layout/Footer/Grid/_customer_care.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
{{ 'sylius.ui.customer_care'|trans }}
-
-
diff --git a/SyliusShopBundle/views/Layout/Footer/Grid/_payment_methods.html.twig b/SyliusShopBundle/views/Layout/Footer/Grid/_payment_methods.html.twig
deleted file mode 100644
index 311504f..0000000
--- a/SyliusShopBundle/views/Layout/Footer/Grid/_payment_methods.html.twig
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
{{ 'sylius.ui.payment_methods'|trans }}
-
-
-
-
-
-
diff --git a/SyliusShopBundle/views/Layout/Footer/Grid/_plus.html.twig b/SyliusShopBundle/views/Layout/Footer/Grid/_plus.html.twig
deleted file mode 100644
index 5c05adf..0000000
--- a/SyliusShopBundle/views/Layout/Footer/Grid/_plus.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/SyliusShopBundle/views/Layout/Footer/Grid/_your_store.html.twig b/SyliusShopBundle/views/Layout/Footer/Grid/_your_store.html.twig
deleted file mode 100644
index f7413ab..0000000
--- a/SyliusShopBundle/views/Layout/Footer/Grid/_your_store.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
{{ 'sylius.ui.your_store'|trans }}
-
-
diff --git a/SyliusShopBundle/views/Layout/Footer/_content.html.twig b/SyliusShopBundle/views/Layout/Footer/_content.html.twig
deleted file mode 100644
index 7bc1433..0000000
--- a/SyliusShopBundle/views/Layout/Footer/_content.html.twig
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
© {{ 'sylius.ui.your_store'|trans }}. {{ 'sylius.ui.powered_by'|trans }} Sylius .
-
-
-
-
-
-
diff --git a/SyliusShopBundle/views/Layout/Header/_logo.html.twig b/SyliusShopBundle/views/Layout/Header/_logo.html.twig
deleted file mode 100644
index 5171297..0000000
--- a/SyliusShopBundle/views/Layout/Header/_logo.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/SyliusShopBundle/views/Login/_login.html.twig b/SyliusShopBundle/views/Login/_login.html.twig
deleted file mode 100644
index a265d04..0000000
--- a/SyliusShopBundle/views/Login/_login.html.twig
+++ /dev/null
@@ -1,15 +0,0 @@
-{{ 'sylius.ui.registered_customers'|trans }}
-{{ 'sylius.ui.if_you_have_an_account_sign_in_with_your_email_address'|trans }}.
-{{ form_start(form, {'action': path('sylius_shop_login_check'), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
- {% include '@SyliusShop/Login/_form.html.twig' %}
-
- {{ sylius_template_event('sylius.shop.login.form', {'form': form}) }}
-
-
- {{ 'sylius.ui.login'|trans }}
-
-
- {{ 'sylius.ui.forgot_password'|trans }}
-
-
-{{ form_end(form, {'render_rest': false}) }}
diff --git a/SyliusShopBundle/views/Login/_register.html.twig b/SyliusShopBundle/views/Login/_register.html.twig
deleted file mode 100644
index 35fb54f..0000000
--- a/SyliusShopBundle/views/Login/_register.html.twig
+++ /dev/null
@@ -1,4 +0,0 @@
-{{ 'sylius.ui.new_customers'|trans }}
-
- {{ 'sylius.ui.create_an_account'|trans }}
-
diff --git a/SyliusShopBundle/views/Menu/_security.html.twig b/SyliusShopBundle/views/Menu/_security.html.twig
deleted file mode 100644
index 6f1e88a..0000000
--- a/SyliusShopBundle/views/Menu/_security.html.twig
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
diff --git a/SyliusShopBundle/views/Menu/simple.html.twig b/SyliusShopBundle/views/Menu/simple.html.twig
deleted file mode 100644
index 81c74a0..0000000
--- a/SyliusShopBundle/views/Menu/simple.html.twig
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends 'knp_menu.html.twig' %}
-
-{% block root %}
-
-
{{ item.label|trans }}
- {{ block('list') }}
-
-{% endblock %}
-
-{% block list %}
- {% for item in item.children %}
- {{ block('item') }}
- {% endfor %}
-{% endblock %}
-
-{% block item %}
-
- {{ block('icon') }}
- {{ item.label|trans }}
-
-{% endblock %}
-
-{% block icon %}
- {% set icon = item.labelAttribute('icon') %}
- {% if icon %} {% endif %}
-{% endblock %}
diff --git a/SyliusShopBundle/views/Order/_summary.html.twig b/SyliusShopBundle/views/Order/_summary.html.twig
deleted file mode 100644
index 411dbb6..0000000
--- a/SyliusShopBundle/views/Order/_summary.html.twig
+++ /dev/null
@@ -1,20 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
-
-{{ headers.default('sylius.ui.summary_of_your_order'|trans ~ ' #' ~ order.number) }}
-
-
-
-
-
- {{ order.checkoutCompletedAt|date }}
-
-
- {{ money.convertAndFormat(order.total) }}
-
-
- {{ order.totalQuantity }} {{ 'sylius.ui.items'|trans|lower }}
-
-
-
-
diff --git a/SyliusShopBundle/views/Product/Box/_content.html.twig b/SyliusShopBundle/views/Product/Box/_content.html.twig
deleted file mode 100644
index 771ae7b..0000000
--- a/SyliusShopBundle/views/Product/Box/_content.html.twig
+++ /dev/null
@@ -1,16 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-
diff --git a/SyliusShopBundle/views/Product/Index/_header.html.twig b/SyliusShopBundle/views/Product/Index/_header.html.twig
deleted file mode 100644
index 8f20e79..0000000
--- a/SyliusShopBundle/views/Product/Index/_header.html.twig
+++ /dev/null
@@ -1,4 +0,0 @@
-{{ render(url('sylius_shop_partial_taxon_show_by_slug', {
- 'slug': app.request.attributes.get('slug'),
- 'template': '@SyliusShop/Taxon/_header.html.twig'
-})) }}
diff --git a/SyliusShopBundle/views/Product/Index/_search.html.twig b/SyliusShopBundle/views/Product/Index/_search.html.twig
deleted file mode 100644
index fca057a..0000000
--- a/SyliusShopBundle/views/Product/Index/_search.html.twig
+++ /dev/null
@@ -1,19 +0,0 @@
-
diff --git a/SyliusShopBundle/views/Product/Index/_sorting.html.twig b/SyliusShopBundle/views/Product/Index/_sorting.html.twig
deleted file mode 100644
index 0d29ab7..0000000
--- a/SyliusShopBundle/views/Product/Index/_sorting.html.twig
+++ /dev/null
@@ -1,47 +0,0 @@
-{% if resources.data.nbResults > 0 %}
-
-{% set route = app.request.attributes.get('_route') %}
-{% set route_parameters = app.request.attributes.get('_route_params')|merge(app.request.query.all) %}
-
-{% set criteria = app.request.query.get('criteria', '') %}
-
-{% set default_path = path(route, route_parameters|merge({'sorting': null, 'criteria': criteria})) %}
-{% set from_a_to_z_path = path(route, route_parameters|merge({'sorting': {'name': 'asc'}, 'criteria': criteria})) %}
-{% set from_z_to_a_path = path(route, route_parameters|merge({'sorting': {'name': 'desc'}, 'criteria': criteria})) %}
-{% set oldest_first_path = path(route, route_parameters|merge({'sorting': {'createdAt': 'asc'}, 'criteria': criteria})) %}
-{% set newest_first_path = path(route, route_parameters|merge({'sorting': {'createdAt': 'desc'}, 'criteria': criteria})) %}
-{% set cheapest_first_path = path(route, route_parameters|merge({'sorting': {'price': 'asc'}, 'criteria': criteria})) %}
-{% set most_expensive_first_path = path(route, route_parameters|merge({'sorting': {'price': 'desc'}, 'criteria': criteria})) %}
-
-{% if app.request.query.get('sorting') is empty %}
- {% set current_sorting_label = 'sylius.ui.by_position'|trans|lower %}
-{% elseif app.request.query.get('sorting').name is defined and app.request.query.get('sorting').name == 'asc'%}
- {% set current_sorting_label = 'sylius.ui.from_a_to_z'|trans|lower %}
-{% elseif app.request.query.get('sorting').name is defined and app.request.query.get('sorting').name == 'desc'%}
- {% set current_sorting_label = 'sylius.ui.from_z_to_a'|trans|lower %}
-{% elseif app.request.query.get('sorting').createdAt is defined and app.request.query.get('sorting').createdAt == 'desc'%}
- {% set current_sorting_label = 'sylius.ui.newest_first'|trans|lower %}
-{% elseif app.request.query.get('sorting').createdAt is defined and app.request.query.get('sorting').createdAt == 'asc'%}
- {% set current_sorting_label = 'sylius.ui.oldest_first'|trans|lower %}
-{% elseif app.request.query.get('sorting').price is defined and app.request.query.get('sorting').price == 'asc'%}
- {% set current_sorting_label = 'sylius.ui.cheapest_first'|trans|lower %}
-{% elseif app.request.query.get('sorting').price is defined and app.request.query.get('sorting').price == 'desc' %}
- {% set current_sorting_label = 'sylius.ui.most_expensive_first'|trans|lower %}
-{% endif %}
-
-
-
- {{ 'sylius.ui.sort'|trans }} {{ current_sorting_label }}
-
-
-
-
-{% endif %}
diff --git a/SyliusShopBundle/views/Product/Show/Tabs/Attributes/_list.html.twig b/SyliusShopBundle/views/Product/Show/Tabs/Attributes/_list.html.twig
deleted file mode 100644
index 3de032d..0000000
--- a/SyliusShopBundle/views/Product/Show/Tabs/Attributes/_list.html.twig
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- {% for attribute in product.getAttributesByLocale(configuration.request.locale, configuration.request.defaultLocale, sylius_base_locale)|sort_by('attribute.position') %}
-
-
- {{ attribute.name }}
-
-
- {% include [
- '@SyliusShop/Product/Show/Types/' ~ attribute.attribute.type ~ '.html.twig',
- '@SyliusAttribute/Types/' ~ attribute.attribute.type ~ '.html.twig',
- '@SyliusShop/Product/Show/Types/default.html.twig'
- ] with {
- 'attribute': attribute,
- 'locale': configuration.request.locale,
- 'fallbackLocale': configuration.request.defaultLocale
- } %}
-
-
- {% endfor %}
-
-
diff --git a/SyliusShopBundle/views/Product/Show/Tabs/_menu.html.twig b/SyliusShopBundle/views/Product/Show/Tabs/_menu.html.twig
deleted file mode 100644
index c74eb7e..0000000
--- a/SyliusShopBundle/views/Product/Show/Tabs/_menu.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-{{ 'sylius.ui.details'|trans }}
-{% if product.attributes|length > 0 %}
- {{ 'sylius.ui.attributes'|trans }}
-{% endif %}
-{{ 'sylius.ui.reviews'|trans }} ({{ product.acceptedReviews|length }})
diff --git a/SyliusShopBundle/views/Product/Show/_addToCart.html.twig b/SyliusShopBundle/views/Product/Show/_addToCart.html.twig
deleted file mode 100644
index 097a83b..0000000
--- a/SyliusShopBundle/views/Product/Show/_addToCart.html.twig
+++ /dev/null
@@ -1,40 +0,0 @@
-{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
-
-{% set product = order_item.variant.product %}
-
-{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
-
-
-
- {{ sylius_template_event('sylius.shop.product.show.before_add_to_cart', {'product': product, 'order_item': order_item}) }}
-
- {{ form_start(form, {'action': path('sylius_shop_ajax_cart_add_item', {'productId': product.id}), 'attr': {'id': 'sylius-product-adding-to-cart', 'data-js-add-to-cart': 'form', 'class': 'loadable', 'novalidate': 'novalidate', 'data-redirect': path(configuration.getRedirectRoute('summary'))}}) }}
- {{ form_errors(form) }}
-
- {% if not product.simple %}
- {% if product.variantSelectionMethodChoice %}
- {% include '@SyliusShop/Product/Show/_variants.html.twig' %}
- {% else %}
- {% include '@SyliusShop/Product/Show/_options.html.twig' %}
- {% endif %}
- {% endif %}
-
-
-
- {{ form_row(form.cartItem.quantity, sylius_test_form_attribute('quantity')) }}
-
- {{ sylius_template_event('sylius.shop.product.show.add_to_cart_form', {'product': product, 'order_item': order_item}) }}
-
-
-
-
- {{ icons.cart() }}
- {{ 'sylius.ui.add_to_cart'|trans }}
-
-
-
-
- {{ form_row(form._token) }}
- {{ form_end(form, {'render_rest': false}) }}
-
-
diff --git a/SyliusShopBundle/views/Product/Show/_breadcrumb.html.twig b/SyliusShopBundle/views/Product/Show/_breadcrumb.html.twig
deleted file mode 100644
index d720d11..0000000
--- a/SyliusShopBundle/views/Product/Show/_breadcrumb.html.twig
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
- {{ 'sylius.ui.home'|trans }}
-
- {% if product.mainTaxon is not null %}
- {% set taxon = product.mainTaxon %}
- {% set ancestors = taxon.ancestors|reverse %}
-
- {% for ancestor in ancestors %}
- {% if ancestor.isRoot() %}
- {{ ancestor.name }}
- {% else %}
-
- {{ ancestor.name }}
-
- {% endif %}
- {% endfor %}
-
-
- {{ taxon.name }}
-
- {% endif %}
-
- {{ product.name }}
-
-
diff --git a/SyliusShopBundle/views/Product/Show/_header.html.twig b/SyliusShopBundle/views/Product/Show/_header.html.twig
deleted file mode 100644
index d7d06ae..0000000
--- a/SyliusShopBundle/views/Product/Show/_header.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-
- {{ product.name }}
-
diff --git a/SyliusShopBundle/views/Product/Show/_imageVariants.html.twig b/SyliusShopBundle/views/Product/Show/_imageVariants.html.twig
deleted file mode 100644
index eed782b..0000000
--- a/SyliusShopBundle/views/Product/Show/_imageVariants.html.twig
+++ /dev/null
@@ -1,11 +0,0 @@
-
-{% if product.getVariantSelectionMethod() == 'match' %}
- {% for variant in image.productVariants %}
-
- {% endfor %}
-{% else %}
- {% for variant in image.productVariants %}
-
- {% endfor %}
-{% endif %}
-
diff --git a/SyliusShopBundle/views/Product/Show/_images.html.twig b/SyliusShopBundle/views/Product/Show/_images.html.twig
deleted file mode 100644
index c435232..0000000
--- a/SyliusShopBundle/views/Product/Show/_images.html.twig
+++ /dev/null
@@ -1,35 +0,0 @@
-{% if product.imagesByType('main') is not empty %}
- {% set source_path = product.imagesByType('main').first.path %}
- {% set original_path = source_path|imagine_filter('sylius_shop_product_original') %}
- {% set path = source_path|imagine_filter(filter|default('sylius_shop_product_large_thumbnail')) %}
-{% elseif product.images.first %}
- {% set source_path = product.images.first.path %}
- {% set original_path = source_path|imagine_filter('sylius_shop_product_original') %}
- {% set path = source_path|imagine_filter(filter|default('sylius_shop_product_large_thumbnail')) %}
-{% else %}
- {% set original_path = '//placehold.it/400x300' %}
- {% set path = original_path %}
-{% endif %}
-
-
-
-
-
-{% if product.images|length > 1 %}
-
-{{ sylius_template_event('sylius.shop.product.show.before_thumbnails', {'product': product}) }}
-
-
- {% for image in product.images %}
- {% set path = image.path is not null ? image.path|imagine_filter('sylius_shop_product_small_thumbnail') : '//placehold.it/200x200' %}
-
- {% if product.isConfigurable() and product.variants|length > 0 %}
- {% include '@SyliusShop/Product/Show/_imageVariants.html.twig' %}
- {% endif %}
-
-
-
-
- {% endfor %}
-
-{% endif %}
diff --git a/SyliusShopBundle/views/Product/Show/_price.html.twig b/SyliusShopBundle/views/Product/Show/_price.html.twig
deleted file mode 100644
index 09f3b83..0000000
--- a/SyliusShopBundle/views/Product/Show/_price.html.twig
+++ /dev/null
@@ -1,14 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-{% set variant = product|sylius_resolve_variant %}
-{% set has_discount = variant|sylius_has_discount({'channel': sylius.channel}) %}
-
-
- {{ money.calculatePrice(product|sylius_resolve_variant) }}
-
-
-
- {% if has_discount %}
- {{ money.calculateOriginalPrice(variant) }}
- {% endif %}
-
diff --git a/SyliusShopBundle/views/Product/Show/_priceWidget.html.twig b/SyliusShopBundle/views/Product/Show/_priceWidget.html.twig
deleted file mode 100644
index 5e59080..0000000
--- a/SyliusShopBundle/views/Product/Show/_priceWidget.html.twig
+++ /dev/null
@@ -1,6 +0,0 @@
-
- {% if not product.variants.empty() %}
- {% include '@SyliusShop/Product/Show/_price.html.twig' %}
- {% endif %}
- {{ product.code }}
-
diff --git a/SyliusShopBundle/views/Product/Show/_reviews.html.twig b/SyliusShopBundle/views/Product/Show/_reviews.html.twig
deleted file mode 100644
index 87d0d6c..0000000
--- a/SyliusShopBundle/views/Product/Show/_reviews.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/SyliusShopBundle/views/Product/Show/_shortDescription.html.twig b/SyliusShopBundle/views/Product/Show/_shortDescription.html.twig
deleted file mode 100644
index d187f87..0000000
--- a/SyliusShopBundle/views/Product/Show/_shortDescription.html.twig
+++ /dev/null
@@ -1 +0,0 @@
-{{ product.shortDescription }}
diff --git a/SyliusShopBundle/views/Product/Show/_tabs.html.twig b/SyliusShopBundle/views/Product/Show/_tabs.html.twig
deleted file mode 100644
index 488f8e8..0000000
--- a/SyliusShopBundle/views/Product/Show/_tabs.html.twig
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- {% include '@SyliusShop/Product/Show/Tabs/_content.html.twig' %}
-
-
-
-
diff --git a/SyliusShopBundle/views/Product/Show/_variants.html.twig b/SyliusShopBundle/views/Product/Show/_variants.html.twig
deleted file mode 100644
index 5cbcd55..0000000
--- a/SyliusShopBundle/views/Product/Show/_variants.html.twig
+++ /dev/null
@@ -1,28 +0,0 @@
-{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
-
-
-
-
- {{ 'sylius.ui.variant'|trans }}
- {{ 'sylius.ui.price'|trans }}
-
-
-
-
- {% for key, variant in product.enabledVariants %}
-
-
- {{ variant.name }}
- {% if product.hasOptions() %}
- |
- {% for option_value in variant.optionValues %}
- {{ option_value.value }}
- {% endfor %}
- {% endif %}
-
- {{ money.calculatePrice(variant) }}
- {{ form_widget(form.cartItem.variant[key], {'label': false}) }}
-
- {% endfor %}
-
-
diff --git a/SyliusShopBundle/views/Product/_info.html.twig b/SyliusShopBundle/views/Product/_info.html.twig
deleted file mode 100644
index 3cffd4a..0000000
--- a/SyliusShopBundle/views/Product/_info.html.twig
+++ /dev/null
@@ -1,29 +0,0 @@
-{% set product = variant.product %}
-
-
diff --git a/SyliusShopBundle/views/Product/index.html.twig b/SyliusShopBundle/views/Product/index.html.twig
deleted file mode 100644
index 718927a..0000000
--- a/SyliusShopBundle/views/Product/index.html.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% block content %}
-{% include '@SyliusShop/Product/Index/_header.html.twig' %}
-
-
- {% include '@SyliusShop/Product/Index/_sidebar.html.twig' %}
-
-
- {% include '@SyliusShop/Product/Index/_main.html.twig' %}
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/Product/show.html.twig b/SyliusShopBundle/views/Product/show.html.twig
deleted file mode 100644
index 15033da..0000000
--- a/SyliusShopBundle/views/Product/show.html.twig
+++ /dev/null
@@ -1,21 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% block title %}{{ product.name }} | {{ parent() }}{% endblock %}
-
-{% block content %}
-{% include '@SyliusShop/Product/Show/_breadcrumb.html.twig' %}
-
-
-
-
- {{ sylius_template_event('sylius.shop.product.show.left_sidebar', _context) }}
-
-
-
- {{ sylius_template_event('sylius.shop.product.show.right_sidebar', _context) }}
-
-
-
-{{ sylius_template_event('sylius.shop.product.show.content', _context) }}
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/ProductReview/Box/_content.html.twig b/SyliusShopBundle/views/ProductReview/Box/_content.html.twig
deleted file mode 100644
index bc80e5c..0000000
--- a/SyliusShopBundle/views/ProductReview/Box/_content.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-{{ render(url('sylius_shop_partial_product_show_by_slug', {
- 'slug': app.request.attributes.get('slug'),
- 'template': '@SyliusShop/Product/_box.html.twig'
- }))
-}}
diff --git a/SyliusShopBundle/views/ProductReview/_single.html.twig b/SyliusShopBundle/views/ProductReview/_single.html.twig
deleted file mode 100644
index 0343d87..0000000
--- a/SyliusShopBundle/views/ProductReview/_single.html.twig
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
{{ review.title }}
-
{{ review.comment }}
-
- {% include '@SyliusShop/Common/_rating.html.twig' with {'average': review.rating, 'viewonly': 'true'} %}
- {{ review.author.firstName }} / {{ review.createdAt|format_date }}
-
-
diff --git a/SyliusShopBundle/views/ProductReview/create.html.twig b/SyliusShopBundle/views/ProductReview/create.html.twig
deleted file mode 100644
index 0de29c8..0000000
--- a/SyliusShopBundle/views/ProductReview/create.html.twig
+++ /dev/null
@@ -1,34 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
-
-{% block title %}{{ 'sylius.ui.write_your_own_review'|trans }} | {{ parent() }}{% endblock %}
-
-{% set product = product_review.reviewSubject %}
-
-{% block content %}
-
-
- {{ sylius_template_event('sylius.shop.product_review.create.product_box', _context) }}
-
-
-
- {{ 'sylius.ui.write_your_own_review'|trans }}
- {{ 'sylius.ui.you_are_reviewing'|trans }} {{ product.name }} .
-
-
- {{ sylius_template_event('sylius.shop.product_review.create.before_form', {'product_review': product_review}) }}
-
- {{ form_start(form, {'action': path('sylius_shop_product_review_create', {'slug': product.slug, '_locale': product.translation.locale}), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
- {% include '@SyliusShop/ProductReview/_form.html.twig' %}
-
- {{ sylius_template_event('sylius.shop.product_review.create.form', {'product_review': product_review, 'form': form}) }}
-
- {{ form_row(form._token) }}
-
- {{ 'sylius.ui.add'|trans }}
-
- {{ form_end(form, {'render_rest': false}) }}
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/ProductReview/index.html.twig b/SyliusShopBundle/views/ProductReview/index.html.twig
deleted file mode 100644
index 39404da..0000000
--- a/SyliusShopBundle/views/ProductReview/index.html.twig
+++ /dev/null
@@ -1,14 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% block content %}
-
-
- {{ sylius_template_event('sylius.shop.product_review.index.product_box', _context) }}
-
-
-
- {{ sylius_template_event('sylius.shop.product_review.index.list', _context) }}
-
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/Register/_form.html.twig b/SyliusShopBundle/views/Register/_form.html.twig
deleted file mode 100644
index 1b229be..0000000
--- a/SyliusShopBundle/views/Register/_form.html.twig
+++ /dev/null
@@ -1,15 +0,0 @@
-{{ 'sylius.ui.personal_information'|trans }}
-
-
-
{{ form_row(form.firstName) }}
-
{{ form_row(form.lastName) }}
-
-
-{{ form_row(form.email) }}
-{{ form_row(form.phoneNumber) }}
-{{ form_row(form.subscribedToNewsletter) }}
-
-{{ 'sylius.ui.account_credentials'|trans }}
-
-{{ form_row(form.user.plainPassword.first) }}
-{{ form_row(form.user.plainPassword.second) }}
diff --git a/SyliusShopBundle/views/Taxon/Header/_content.html.twig b/SyliusShopBundle/views/Taxon/Header/_content.html.twig
deleted file mode 100644
index 1450c07..0000000
--- a/SyliusShopBundle/views/Taxon/Header/_content.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
-
-{{ headers.default(taxon.name, '', taxon.description) }}
diff --git a/SyliusShopBundle/views/Taxon/_breadcrumb.html.twig b/SyliusShopBundle/views/Taxon/_breadcrumb.html.twig
deleted file mode 100644
index 715f06c..0000000
--- a/SyliusShopBundle/views/Taxon/_breadcrumb.html.twig
+++ /dev/null
@@ -1,17 +0,0 @@
-{% set ancestors = taxon.ancestors|reverse %}
-
-
-
- {{ 'sylius.ui.home'|trans }}
-
- {% for ancestor in ancestors %}
- {% if ancestor.isRoot() %}
- {{ ancestor.name }}
- {% else %}
- {{ ancestor.name }}
- {% endif %}
- {% endfor %}
-
- {{ taxon.name }}
-
-
diff --git a/SyliusShopBundle/views/Taxon/_horizontalMenu.html.twig b/SyliusShopBundle/views/Taxon/_horizontalMenu.html.twig
deleted file mode 100644
index 9ea7316..0000000
--- a/SyliusShopBundle/views/Taxon/_horizontalMenu.html.twig
+++ /dev/null
@@ -1,35 +0,0 @@
-{% macro item(taxon, isChild) %}
- {% import _self as macros %}
-
- {% if taxon.children|length > 0 %}
-
-
- {{ taxon.name }}
-
-
-
- {% else %}
-
- {{ taxon.name }}
-
- {% endif %}
-{% endmacro %}
-
-{% import _self as macros %}
-
-{% if taxons|length > 0 %}
-
-
-
- {% for taxon in taxons %}
- {{ macros.item(taxon) }}
- {% endfor %}
-
-
-
-{% endif %}
diff --git a/SyliusShopBundle/views/_footer.html.twig b/SyliusShopBundle/views/_footer.html.twig
deleted file mode 100644
index ff544f8..0000000
--- a/SyliusShopBundle/views/_footer.html.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- {{ sylius_template_event('sylius.shop.layout.footer') }}
-
-
diff --git a/SyliusShopBundle/views/_header.html.twig b/SyliusShopBundle/views/_header.html.twig
deleted file mode 100644
index 7c5fe98..0000000
--- a/SyliusShopBundle/views/_header.html.twig
+++ /dev/null
@@ -1,18 +0,0 @@
-
diff --git a/SyliusShopBundle/views/error.html.twig b/SyliusShopBundle/views/error.html.twig
deleted file mode 100644
index ec201a0..0000000
--- a/SyliusShopBundle/views/error.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% block content %}
-
- {{ 'sylius.ui.unexpected_error_occurred'|trans }}
-
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/error403.html.twig b/SyliusShopBundle/views/error403.html.twig
deleted file mode 100644
index a1cf2f8..0000000
--- a/SyliusShopBundle/views/error403.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% block content %}
-
- {{ 'sylius.ui.the_page_you_are_looking_for_is_forbidden'|trans }}
-
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/error404.html.twig b/SyliusShopBundle/views/error404.html.twig
deleted file mode 100644
index b4e6539..0000000
--- a/SyliusShopBundle/views/error404.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% block content %}
-
- {{ 'sylius.ui.the_page_you_are_looking_for_does_not_exist'|trans }}
-
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/error500.html.twig b/SyliusShopBundle/views/error500.html.twig
deleted file mode 100644
index 6cd0fb7..0000000
--- a/SyliusShopBundle/views/error500.html.twig
+++ /dev/null
@@ -1,9 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% block content %}
-
- {{ 'sylius.ui.server_has_encountered_some_errors'|trans }}
-
-
-
-{% endblock %}
diff --git a/SyliusShopBundle/views/login.html.twig b/SyliusShopBundle/views/login.html.twig
deleted file mode 100644
index f637ae7..0000000
--- a/SyliusShopBundle/views/login.html.twig
+++ /dev/null
@@ -1,29 +0,0 @@
-{% extends '@SyliusShop/layout.html.twig' %}
-
-{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
-
-{% block title %}{{ 'sylius.ui.customer_login'|trans }} | {{ parent() }}{% endblock %}
-
-{% block content %}
- {% include '@SyliusShop/Login/_header.html.twig' %}
-
- {{ sylius_template_event('sylius.shop.login.after_content_header') }}
-
-
-
-
-
- {{ sylius_template_event('sylius.shop.login.main_column', _context) }}
-
-
-
-
-
-
-
- {{ sylius_template_event('sylius.shop.login.register_column', _context) }}
-
-
-
-
-{% endblock %}
diff --git a/assets/fonts/OpenSans/OpenSans-Bold.ttf b/assets/fonts/OpenSans/OpenSans-Bold.ttf
new file mode 100644
index 0000000..4a5bc39
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-Bold.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-BoldItalic.ttf b/assets/fonts/OpenSans/OpenSans-BoldItalic.ttf
new file mode 100644
index 0000000..8878a3e
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-BoldItalic.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-ExtraBold.ttf b/assets/fonts/OpenSans/OpenSans-ExtraBold.ttf
new file mode 100644
index 0000000..5dfb66c
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-ExtraBold.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf b/assets/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf
new file mode 100644
index 0000000..d266998
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-ExtraBoldItalic.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-Italic.ttf b/assets/fonts/OpenSans/OpenSans-Italic.ttf
new file mode 100644
index 0000000..e84f9ee
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-Italic.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-Light.ttf b/assets/fonts/OpenSans/OpenSans-Light.ttf
new file mode 100644
index 0000000..cf8e0c7
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-Light.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-LightItalic.ttf b/assets/fonts/OpenSans/OpenSans-LightItalic.ttf
new file mode 100644
index 0000000..d913f35
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-LightItalic.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-Medium.ttf b/assets/fonts/OpenSans/OpenSans-Medium.ttf
new file mode 100644
index 0000000..a76d4ce
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-Medium.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-MediumItalic.ttf b/assets/fonts/OpenSans/OpenSans-MediumItalic.ttf
new file mode 100644
index 0000000..5599691
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-MediumItalic.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-Regular.ttf b/assets/fonts/OpenSans/OpenSans-Regular.ttf
new file mode 100644
index 0000000..29e9e60
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-Regular.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-SemiBold.ttf b/assets/fonts/OpenSans/OpenSans-SemiBold.ttf
new file mode 100644
index 0000000..a571167
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-SemiBold.ttf differ
diff --git a/assets/fonts/OpenSans/OpenSans-SemiBoldItalic.ttf b/assets/fonts/OpenSans/OpenSans-SemiBoldItalic.ttf
new file mode 100644
index 0000000..a7d2323
Binary files /dev/null and b/assets/fonts/OpenSans/OpenSans-SemiBoldItalic.ttf differ
diff --git a/assets/app.js b/assets/index.js
similarity index 51%
rename from assets/app.js
rename to assets/index.js
index 0920292..a39857b 100644
--- a/assets/app.js
+++ b/assets/index.js
@@ -1,14 +1,9 @@
-require('bootstrap');
-
// Main scripts file
import './js/index';
// Main styles file
-import './scss/index.scss';
+import './scss/main.scss';
// Images
import './media/sylius-logo.png';
-
-// Font awesome icons
-import './js/fontawesome';
-
+import './media/sylius-plus.png';
diff --git a/assets/js/fontawesome.js b/assets/js/fontawesome.js
deleted file mode 100644
index 0033c1e..0000000
--- a/assets/js/fontawesome.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// FontAwesome Icons
-// Import icons one by one to reduce size of the output
-import { library, dom } from '@fortawesome/fontawesome-svg-core';
-
-import { faStar } from '@fortawesome/free-solid-svg-icons/faStar';
-import { faShoppingBag } from '@fortawesome/free-solid-svg-icons/faShoppingBag';
-import { faCheck } from '@fortawesome/free-solid-svg-icons/faCheck';
-import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons/faExclamationCircle';
-import { faInfoCircle } from '@fortawesome/free-solid-svg-icons/faInfoCircle';
-import { faChevronUp } from '@fortawesome/free-solid-svg-icons/faChevronUp';
-import { faMapMarkerAlt } from '@fortawesome/free-solid-svg-icons/faMapMarkerAlt';
-import { faShuttleVan } from '@fortawesome/free-solid-svg-icons/faShuttleVan';
-import { faCreditCard } from '@fortawesome/free-solid-svg-icons/faCreditCard';
-import { faFlag } from '@fortawesome/free-solid-svg-icons/faFlag';
-import { faCcMastercard } from '@fortawesome/free-brands-svg-icons/faCcMastercard';
-import { faCcVisa } from '@fortawesome/free-brands-svg-icons/faCcVisa';
-import { faCcPaypal } from '@fortawesome/free-brands-svg-icons/faCcPaypal';
-import { faTimes } from '@fortawesome/free-solid-svg-icons/faTimes';
-import { faSearch } from '@fortawesome/free-solid-svg-icons/faSearch';
-import { faPlus } from '@fortawesome/free-solid-svg-icons/faPlus';
-import { faPencilAlt } from '@fortawesome/free-solid-svg-icons/faPencilAlt';
-import { faSyncAlt } from '@fortawesome/free-solid-svg-icons/faSyncAlt';
-import { faQuestionCircle } from '@fortawesome/free-solid-svg-icons/faQuestionCircle';
-import { faFacebook } from '@fortawesome/free-brands-svg-icons/faFacebook';
-import { faTwitter } from '@fortawesome/free-brands-svg-icons/faTwitter';
-import { faInstagram } from '@fortawesome/free-brands-svg-icons/faInstagram';
-import { faBan } from '@fortawesome/free-solid-svg-icons/faBan';
-import { faAdjust } from '@fortawesome/free-solid-svg-icons/faAdjust';
-import { faClock } from '@fortawesome/free-solid-svg-icons/faClock';
-import { faReplyAll } from '@fortawesome/free-solid-svg-icons/faReplyAll';
-
-library.add(faStar, faQuestionCircle, faShoppingBag, faCheck, faExclamationCircle,
- faInfoCircle, faChevronUp, faMapMarkerAlt, faShuttleVan, faCreditCard, faFlag,
- faCcMastercard, faCcVisa, faCcPaypal, faTimes, faSearch, faPlus, faPencilAlt,
- faSyncAlt, faFacebook, faTwitter, faInstagram, faBan, faAdjust, faClock, faReplyAll
-);
-dom.watch();
diff --git a/assets/js/index.js b/assets/js/index.js
index 9a0a471..97a1d59 100644
--- a/assets/js/index.js
+++ b/assets/js/index.js
@@ -11,7 +11,7 @@
import GLightbox from 'glightbox';
import axios from 'axios';
-import 'bootstrap.native/dist/bootstrap-native';
+import 'bootstrap';
import SyliusRating from './sylius-rating';
import SyliusToggle from './sylius-toggle';
@@ -32,7 +32,7 @@ axios.defaults.headers.post['X-Requested-With'] = 'XMLHttpRequest';
document.addEventListener('DOMContentLoaded', () => {
// Lightbox
- const glightbox = GLightbox({ selector: '.glightbox' });
+ GLightbox({ selector: '.glightbox' });
// Add to cart
document.querySelectorAll('[data-js-add-to-cart="form"]')
diff --git a/assets/js/sylius-add-to-cart.js b/assets/js/sylius-add-to-cart.js
index 44c84ac..d2747fa 100644
--- a/assets/js/sylius-add-to-cart.js
+++ b/assets/js/sylius-add-to-cart.js
@@ -10,7 +10,6 @@
/* eslint-env browser */
import axios from 'axios';
-import serialize from 'form-serialize';
const SyliusAddToCart = (el) => {
const element = el;
@@ -19,7 +18,7 @@ const SyliusAddToCart = (el) => {
const validationElement = element.querySelector('[data-js-add-to-cart="error"]');
element.addEventListener('submit', (e) => {
- const request = axios.post(url, serialize(element));
+ const request = axios.post(url, new FormData(element));
e.preventDefault();
diff --git a/assets/js/sylius-api-toggle.js b/assets/js/sylius-api-toggle.js
index 7ffde56..41e37d9 100644
--- a/assets/js/sylius-api-toggle.js
+++ b/assets/js/sylius-api-toggle.js
@@ -10,14 +10,25 @@
/* eslint-env browser */
import axios from 'axios';
-import throttle from 'lodash.throttle';
const SyliusApiToggle = (el) => {
const element = el;
const url = element.getAttribute('data-js-login-check-email-url');
const toggleableElement = document.querySelector('[data-js-login="form"]');
- element.addEventListener('input', throttle((e) => {
+ const debounce = (callback, duration) => {
+ // eslint-disable-next-line
+ let timeout = null;
+
+ return (...args) => {
+ timeout = setTimeout(() => {
+ callback.apply(this, args);
+ timeout = null;
+ }, duration);
+ }
+ }
+
+ element.addEventListener('input', debounce((e) => {
toggleableElement.classList.add('d-none');
if (e.target.value.length > 3) {
diff --git a/assets/js/sylius-variants-prices.js b/assets/js/sylius-variants-prices.js
index 46d5bb3..6f43647 100644
--- a/assets/js/sylius-variants-prices.js
+++ b/assets/js/sylius-variants-prices.js
@@ -40,10 +40,10 @@ const handleProductOptionsChange = function handleProductOptionsChange() {
const handleProductVariantsChange = function handleProductVariantsChange() {
document.querySelectorAll('[name="sylius_add_to_cart[cartItem][variant]"]').forEach((item) => {
- item.addEventListener('change', (e) => {
+ item.addEventListener('change', () => {
const priceElement = item.closest('tr').querySelector('[data-js-product-variant-price]');
const price = priceElement.innerHTML;
-
+
document.querySelector('[data-js-product-price]').innerHTML = price;
if (priceElement.hasAttribute('data-original-price')) {
diff --git a/assets/media/sylius-plus.png b/assets/media/sylius-plus.png
new file mode 100755
index 0000000..08e5cbf
Binary files /dev/null and b/assets/media/sylius-plus.png differ
diff --git a/assets/scss/_custom.scss b/assets/scss/_custom.scss
deleted file mode 100644
index 71dbf05..0000000
--- a/assets/scss/_custom.scss
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-@include media-breakpoint-up(lg) {
- .dropdown-menu .dropdown-menu {
- top: 0;
- left: 100%;
- margin-top: 0;
- }
-}
-
-.logo {
- @include media-breakpoint-up(md) {
- width: 160px;
- }
-
- @include media-breakpoint-down(sm) {
- width: 130px;
- }
-}
-
-.main-content > :first-child:not(nav):not(.nav) {
- margin-top: map-get($spacers, 4);
-}
-
-
-.loading-overlay {
- position: absolute;
- top: 0;
- left: 0;
- z-index: 99999;
- display: none;
- justify-content: center;
- align-items: center;
- width: 100%;
- height: 100%;
- background: rgba(255, 255, 255, .7);
-}
-
-.loadable.loading .loading-overlay { display: flex; }
-
-
-label.required {
- &::after {
- content: '*';
- display: inline-block;
- padding-left: 4px;
- color: $danger;
- }
-}
-
-.btn-icon {
- padding-right: 5px;
- padding-left: 5px;
- //font-size: $font-size-lg;
-}
-
-.homepage-banner{
- @include media-breakpoint-up(lg) {
- position: relative;
- &__content{
- position: absolute;
- bottom: 70px;
- left: 70px;
- max-width: 500px;
- line-height: 1.4;
- background-color: unset !important;
- h1{
- font-size: 50px;
- color: #fff;
- }
- p{
- font-size: 22px;
- }
- }
- }
-}
diff --git a/assets/scss/_steps.scss b/assets/scss/_steps.scss
deleted file mode 100644
index 1b7f79f..0000000
--- a/assets/scss/_steps.scss
+++ /dev/null
@@ -1,68 +0,0 @@
-.steps {
-
- @include media-breakpoint-up(lg) {
- display: flex;
- flex-wrap: wrap;
- }
-
- .steps-item {
- display: flex;
- flex-grow: 1;
- flex-basis: 0;
- background: $light;
- border-radius: $border-radius;
- padding: 1.2rem 1.8rem;
-
- &:hover {
- text-decoration: none;
- }
-
- &:not(:last-child) {
- margin-right: 2px;
- margin-bottom: 2px;
- }
-
- &.active {
- background: $primary;
-
- .steps-icon,
- .steps-text {
- color: rgba(255, 255, 255, .6);
- }
-
- .steps-title {
- color: #fff;
- }
- }
-
- &.completed {
- background: theme-color-level('primary', -11);
-
- .steps-icon,
- .steps-text {
- color: theme-color-level('primary', -4);
- }
-
- .steps-title {
- color: theme-color-level('primary', 3);
- }
- }
-
- &.disabled {
- cursor: auto;
- pointer-events: none;
- }
- }
-
- .steps-icon {
- font-size: 2rem;
- padding-right: 1rem;
- color: $text-muted;
- }
-
- .steps-text {
- color: $text-muted;
- font-size: $font-size-sm;
- line-height: 1.5;
- }
-}
diff --git a/assets/scss/_variables.scss b/assets/scss/_variables.scss
deleted file mode 100644
index 7f61436..0000000
--- a/assets/scss/_variables.scss
+++ /dev/null
@@ -1,73 +0,0 @@
-// Color system
-
-$white: #fff !default;
-$gray-100: #f8f9fa !default;
-$gray-200: #e9ecef !default;
-$gray-300: #dee2e6 !default;
-$gray-400: #ced4da !default;
-$gray-500: #adb5bd !default;
-$gray-600: #6c757d !default;
-$gray-700: #495057 !default;
-$gray-800: #343a40 !default;
-$gray-900: #212529 !default;
-$black: #000 !default;
-
-$primary: #1abb9c !default;
-
-
-// Body
-
-$body-bg: $white !default;
-$body-color: $gray-600 !default;
-
-
-// Fonts
-
-$font-size-base: .88rem !default;
-
-$font-weight-normal: 400 !default;
-$font-weight-bold: 700 !default;
-
-$line-height-base: 1.7 !default;
-
-$h1-font-size: $font-size-base * 2 !default;
-$h2-font-size: $font-size-base * 1.8 !default;
-$h3-font-size: $font-size-base * 1.6 !default;
-$h4-font-size: $font-size-base * 1.4 !default;
-$h5-font-size: $font-size-base * 1.2 !default;
-$h6-font-size: $font-size-base !default;
-
-$headings-color: $gray-900 !default;
-
-$text-muted: $gray-500 !default;
-
-
-// Breadcrumbs
-
-$breadcrumb-padding-y: 0 !default;
-$breadcrumb-padding-x: 0 !default;
-$breadcrumb-margin-bottom: 2rem !default;
-
-$breadcrumb-bg: transparent !default;
-$breadcrumb-divider-color: $gray-300 !default;
-
-
-// Navs
-
-$nav-link-padding-y: .8rem !default;
-
-
-// Navbar
-
-$navbar-padding-y: 0 !default;
-$navbar-padding-x: 0 !default;
-
-$navbar-nav-link-padding-x: 20px !default;
-
-$navbar-toggler-padding-y: .4rem !default;
-$navbar-light-toggler-border-color: transparent !default;
-
-
-// Alerts
-
-$alert-bg-level: -12 !default;
diff --git a/assets/scss/base/_colors.scss b/assets/scss/base/_colors.scss
new file mode 100644
index 0000000..58ca2ca
--- /dev/null
+++ b/assets/scss/base/_colors.scss
@@ -0,0 +1,24 @@
+@each $level, $color in $grays {
+ .text-gray-#{$level} {
+ color: $color;
+ }
+
+ .bg-gray-#{$level} {
+ background-color: $color;
+ }
+
+ .border-gray-#{$level} {
+ border-color: $color;
+ --#{$prefix}border-color: #{$color};
+ }
+}
+
+@each $level, $color in $primaries {
+ .text-#{$level} {
+ color: $color;
+ }
+
+ .bg-#{$level} {
+ background-color: $color;
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/base/_grid.scss b/assets/scss/base/_grid.scss
new file mode 100644
index 0000000..b7e30da
--- /dev/null
+++ b/assets/scss/base/_grid.scss
@@ -0,0 +1,5 @@
+@if $enable-cssgrid {
+ .grid {
+ @include make-cssgrid-rows;
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/base/_typography.scss b/assets/scss/base/_typography.scss
new file mode 100644
index 0000000..3ec0de1
--- /dev/null
+++ b/assets/scss/base/_typography.scss
@@ -0,0 +1,12 @@
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-Light', 300, normal, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-LightItalic', 300, italic, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-Regular', 400, normal, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-Italic', 400, italic, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-Medium', 500, normal, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-MediumItalic', 500, italic, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-SemiBold', 600, normal, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-SemiBoldItalic', 600, italic, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-Bold', 700, normal, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-BoldItalic', 700, italic, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-ExtraBold', 900, normal, ttf);
+@include font-face(OpenSans, '../../../fonts/OpenSans/OpenSans-ExtraBoldItalic', 900, italic, ttf);
\ No newline at end of file
diff --git a/assets/scss/base/main.scss b/assets/scss/base/main.scss
new file mode 100644
index 0000000..4dc9c07
--- /dev/null
+++ b/assets/scss/base/main.scss
@@ -0,0 +1,3 @@
+@import './colors';
+@import './grid';
+@import './typography';
diff --git a/assets/scss/components/_breadcrumbs.scss b/assets/scss/components/_breadcrumbs.scss
new file mode 100644
index 0000000..cea409c
--- /dev/null
+++ b/assets/scss/components/_breadcrumbs.scss
@@ -0,0 +1,7 @@
+.breadcrumb {
+ &-item {
+ &::before {
+ font-family: $font-family-icons;
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/components/_buttons.scss b/assets/scss/components/_buttons.scss
new file mode 100644
index 0000000..8a0acc2
--- /dev/null
+++ b/assets/scss/components/_buttons.scss
@@ -0,0 +1,3 @@
+.btn-primary {
+ --#{$prefix}btn-color: #{$white};
+}
\ No newline at end of file
diff --git a/assets/scss/components/_card.scss b/assets/scss/components/_card.scss
new file mode 100644
index 0000000..4f85587
--- /dev/null
+++ b/assets/scss/components/_card.scss
@@ -0,0 +1,52 @@
+.card-product {
+ .card-title a {
+ color: $card-title-color;
+ text-decoration: none;
+ transition: color 75ms;
+
+ &:hover {
+ color: $primary;
+ }
+ }
+
+ &.grid-item {
+ position: relative;
+
+ .card-body {
+ position: absolute;
+ inset: 0;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-end;
+ border-radius: $card-border-radius;
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
+ }
+
+ .card-title,
+ .card-title a {
+ color: $white;
+
+ &:hover {
+ color: $primary;
+ }
+ }
+
+ .card-subtitle {
+ color: $gray-200;
+ }
+ }
+
+ @include media-breakpoint-down(md) {
+ &.carousel-product {
+ display: flex;
+ align-items: center;
+ flex-direction: row;
+
+ > a {
+ display: inline-block;
+ flex: 0 0 25%;
+ max-width: 25%;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/components/_carousel.scss b/assets/scss/components/_carousel.scss
new file mode 100644
index 0000000..1bf3d51
--- /dev/null
+++ b/assets/scss/components/_carousel.scss
@@ -0,0 +1,26 @@
+.carousel {
+
+ &-control-prev,
+ &-control-next {
+ @include media-breakpoint-up(lg) {
+ bottom: 50%;
+ top: unset;
+ height: auto;
+ }
+ }
+
+ &-control-prev {
+ @include media-breakpoint-up(lg) {
+ left: unset;
+ right: 100%;
+ }
+ }
+
+ &-control-next {
+ @include media-breakpoint-up(lg) {
+ right: unset;
+ left: 100%;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/assets/scss/components/_dropdown.scss b/assets/scss/components/_dropdown.scss
new file mode 100644
index 0000000..47bd8f8
--- /dev/null
+++ b/assets/scss/components/_dropdown.scss
@@ -0,0 +1,10 @@
+.dropdown {
+ &-item {
+ i {
+ width: 1.5rem;
+ text-align: center;
+ margin-right: .75rem;
+ color: $gray-500;
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/components/_pagination.scss b/assets/scss/components/_pagination.scss
new file mode 100644
index 0000000..c54d809
--- /dev/null
+++ b/assets/scss/components/_pagination.scss
@@ -0,0 +1,5 @@
+.pagination {
+ .page-link {
+ border-radius: $pagination-border-radius;
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/components/_steps.scss b/assets/scss/components/_steps.scss
new file mode 100644
index 0000000..d21e469
--- /dev/null
+++ b/assets/scss/components/_steps.scss
@@ -0,0 +1,102 @@
+.steps {
+ $this: &;
+ display: flex;
+ flex-direction: column;
+ border-width: $steps-border-width;
+ border-color: $steps-border-color;
+ border-style: solid;
+ border-radius: $steps-border-radius;
+ font-size: $steps-font-size;
+
+ @include media-breakpoint-up(lg) {
+ flex-direction: row;
+ flex-wrap: wrap;
+ }
+
+ &-item {
+ display: flex;
+ flex: 1;
+ gap: $spacer * 1.5;
+ padding: $steps-padding;
+ border-bottom: 4px solid transparent;
+ position: relative;
+ background-color: $steps-bg;
+ transition: $steps-transition;
+
+ &.completed {
+ border-color: $steps-completed-border-color;
+ background: $steps-completed-bg;
+
+ #{$this}-icon {
+ color: $steps-completed-icon-color;
+ }
+ #{$this}-title {
+ color: $steps-completed-color;
+ }
+ }
+
+ &:hover {
+ text-decoration: none;
+ background: $steps-hover-bg;
+ border-color: $steps-hover-border-color;
+
+ #{$this}-icon {
+ color: $steps-hover-icon-color;
+ }
+
+ #{$this}-title {
+ color: $steps-hover-color;
+ }
+ }
+
+ &.active {
+ border-color: $steps-active-border-color;
+ background: $steps-active-bg;
+
+ #{$this}-icon {
+ color: $steps-active-icon-color;
+ }
+ #{$this}-title {
+ color: $steps-active-color;
+ }
+ }
+
+ &.disabled {
+ cursor: auto;
+ pointer-events: none;
+ border-color: $steps-disabled-border-color;
+ background: $steps-disabled-bg;
+
+ #{$this}-icon {
+ color: $steps-disabled-icon-color;
+ }
+ #{$this}-title {
+ color: $steps-disabled-color;
+ }
+ }
+ }
+
+ &-title {
+ color: $steps-color;
+ }
+
+ &-icon {
+ font-size: 2rem;
+ color: $steps-icon-color;
+ }
+
+ &-text {
+ color: $steps-subtitle-color;
+ font-size: $steps-subtitle-font-size;
+ line-height: 1.5;
+ }
+
+ &-divider {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 1rem;
+ color: $steps-border-color;
+ }
+}
diff --git a/assets/scss/components/main.scss b/assets/scss/components/main.scss
new file mode 100644
index 0000000..8352453
--- /dev/null
+++ b/assets/scss/components/main.scss
@@ -0,0 +1,7 @@
+@import './breadcrumbs';
+@import './buttons';
+@import './card';
+@import './carousel';
+@import './dropdown';
+@import './pagination';
+@import './steps';
diff --git a/assets/scss/index.scss b/assets/scss/index.scss
deleted file mode 100644
index 3556cf9..0000000
--- a/assets/scss/index.scss
+++ /dev/null
@@ -1,13 +0,0 @@
-// Overriding default Bootstrap variables
-@import "variables";
-
-// All Bootstrap styles
-@import "~bootstrap/scss/bootstrap";
-
-// Custom theme styles
-@import "steps";
-@import "custom";
-
-// Third party components
-@import '~semantic-ui-css/components/flag.min.css';
-@import '~glightbox/dist/css/glightbox.min.css';
diff --git a/assets/scss/layout/_footer.scss b/assets/scss/layout/_footer.scss
new file mode 100644
index 0000000..7ad1ce7
--- /dev/null
+++ b/assets/scss/layout/_footer.scss
@@ -0,0 +1,20 @@
+.pre-footer {
+ transform: translateY(-50%);
+ margin-top: -3rem;
+
+ &-col {
+ display: flex;
+ align-items: center;
+ gap: 1.5rem;
+ }
+
+ .fa-solid {
+ width: 3rem;
+ text-align: center;
+ color: $teal-200;
+ }
+}
+
+.footer {
+ margin-top: 6rem;
+}
\ No newline at end of file
diff --git a/assets/scss/layout/_nav.scss b/assets/scss/layout/_nav.scss
new file mode 100644
index 0000000..0aa76f1
--- /dev/null
+++ b/assets/scss/layout/_nav.scss
@@ -0,0 +1,10 @@
+.nav {
+ &-link {
+ border-radius: $border-radius;
+
+ &:hover,
+ &.show {
+ background-color: $gray-200;
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/layout/main.scss b/assets/scss/layout/main.scss
new file mode 100644
index 0000000..5925ed0
--- /dev/null
+++ b/assets/scss/layout/main.scss
@@ -0,0 +1,2 @@
+@import './footer';
+@import './nav';
diff --git a/assets/scss/main.scss b/assets/scss/main.scss
new file mode 100644
index 0000000..01b2a13
--- /dev/null
+++ b/assets/scss/main.scss
@@ -0,0 +1,18 @@
+// --------------------------------------------------------------------------
+//
+// Sass Architecture Structure:
+// https://gist.github.com/AdamMarsden/7b85e8d5bdb5bef969a0
+//
+// --------------------------------------------------------------------------
+
+@import './sass-utils/main.scss';
+
+@import './vendors/main.scss';
+
+@import './base/main.scss';
+
+@import './components/main.scss';
+
+@import './layout/main.scss';
+
+@import './pages/main.scss';
\ No newline at end of file
diff --git a/SyliusShopBundle/views/Product/Show/_menu.html.twig b/assets/scss/pages/main.scss
similarity index 100%
rename from SyliusShopBundle/views/Product/Show/_menu.html.twig
rename to assets/scss/pages/main.scss
diff --git a/assets/scss/sass-utils/_utilities.scss b/assets/scss/sass-utils/_utilities.scss
new file mode 100644
index 0000000..54d9038
--- /dev/null
+++ b/assets/scss/sass-utils/_utilities.scss
@@ -0,0 +1,16 @@
+// How to use utilities api: https://getbootstrap.com/docs/5.0/utilities/api/
+
+$utilities: (
+ "object-fit": (
+ property: object-fit,
+ values: contain cover fill none revert scale-down unset,
+ ),
+ "place-content": (
+ property: place-content,
+ values: center start end flex-start flex-end left right baseline first baseline last baseline space-between space-around space-evenly stretch safe center unsafe,
+ ),
+ "cursor": (
+ property: cursor,
+ values: auto default pointer,
+ ),
+);
\ No newline at end of file
diff --git a/assets/scss/sass-utils/_variables.scss b/assets/scss/sass-utils/_variables.scss
new file mode 100644
index 0000000..c9c832e
--- /dev/null
+++ b/assets/scss/sass-utils/_variables.scss
@@ -0,0 +1,326 @@
+// Color system
+
+$white: #fff;
+$gray-50: #f8fafc;
+$gray-100: #f8f9fa;
+$gray-200: #e9ecef;
+$gray-300: #dee2e6;
+$gray-400: #ced4da;
+$gray-500: #adb5bd;
+$gray-600: #6c757d;
+$gray-700: #495057;
+$gray-800: #343a40;
+$gray-900: #212529;
+$gray-950: #020617;
+$black: #000;
+
+$grays: (
+ "50": $gray-50,
+ "100": $gray-100,
+ "200": $gray-200,
+ "300": $gray-300,
+ "400": $gray-400,
+ "500": $gray-500,
+ "600": $gray-600,
+ "700": $gray-700,
+ "800": $gray-800,
+ "900": $gray-900,
+ "950": $gray-950
+);
+
+$blue: #0d6efd;
+$indigo: #6610f2;
+$purple: #6f42c1;
+$pink: #d63384;
+$red: #dc3545;
+$orange: #fd7e14;
+$yellow: #ffc107;
+$green: #198754;
+$teal: #20c997;
+$cyan: #0dcaf0;
+$red: #f43f5e;
+$yellow: #f59e0b;
+$green: #84cc16;
+
+$colors: (
+ "blue": $blue,
+ "indigo": $indigo,
+ "purple": $purple,
+ "pink": $pink,
+ "red": $red,
+ "orange": $orange,
+ "yellow": $yellow,
+ "green": $green,
+ "teal": $teal,
+ "cyan": $cyan,
+ "black": $black,
+ "white": $white,
+ "gray": $gray-600,
+ "gray-dark": $gray-800
+);
+
+$red-50: #fff1f2;
+$red-100: #ffe4e6;
+$red-200: #fecdd3;
+$red-300: #fda4af;
+$red-400: #fb7185;
+$red-500: #f43f5e;
+$red-600: #e11d48;
+$red-700: #be123c;
+$red-800: #9f1239;
+$red-900: #881337;
+$red-950: #4c0519;
+
+$yellow-50: #fffbeb;
+$yellow-100: #fef3c7;
+$yellow-200: #fde68a;
+$yellow-300: #fcd34d;
+$yellow-400: #fbbf24;
+$yellow-500: #f59e0b;
+$yellow-600: #d97706;
+$yellow-700: #b45309;
+$yellow-800: #92400e;
+$yellow-900: #78350f;
+$yellow-950: #451a03;
+
+$green-50: #f7fee7;
+$green-100: #ecfccb;
+$green-200: #d9f99d;
+$green-300: #bef264;
+$green-400: #a3e635;
+$green-500: #84cc16;
+$green-600: #65a30d;
+$green-700: #4d7c0f;
+$green-800: #3f6212;
+$green-900: #365314;
+$green-950: #1a2e05;
+
+$teal-50: #F1FCF9;
+$teal-100: #CFF8EB;
+$teal-200: #A0EFD8;
+$teal-300: #68E0C2;
+$teal-400: #39C8A8;
+$teal-500: #22B99A;
+$teal-600: #178A75;
+$teal-700: #166F5F;
+$teal-800: #16594E;
+$teal-900: #174A41;
+$teal-950: #072C27;
+
+$reds: (
+ "red-50": $red-50,
+ "red-100": $red-100,
+ "red-200": $red-200,
+ "red-300": $red-300,
+ "red-400": $red-400,
+ "red-500": $red-500,
+ "red-600": $red-600,
+ "red-700": $red-700,
+ "red-800": $red-800,
+ "red-900": $red-900,
+ "red-950": $red-950,
+);
+
+$yellows: (
+ "yellow-50": $yellow-50,
+ "yellow-100": $yellow-100,
+ "yellow-200": $yellow-200,
+ "yellow-300": $yellow-300,
+ "yellow-400": $yellow-400,
+ "yellow-500": $yellow-500,
+ "yellow-600": $yellow-600,
+ "yellow-700": $yellow-700,
+ "yellow-800": $yellow-800,
+ "yellow-900": $yellow-900,
+ "yellow-950": $yellow-950,
+);
+
+$greens: (
+ "green-50": $green-50,
+ "green-100": $green-100,
+ "green-200": $green-200,
+ "green-300": $green-300,
+ "green-400": $green-400,
+ "green-500": $green-500,
+ "green-600": $green-600,
+ "green-700": $green-700,
+ "green-800": $green-800,
+ "green-900": $green-900,
+ "green-950": $green-950,
+);
+
+$primaries: (
+ "primary-50": $teal-50,
+ "primary-100": $teal-100,
+ "primary-200": $teal-200,
+ "primary-300": $teal-300,
+ "primary-400": $teal-400,
+ "primary-500": $teal-500,
+ "primary-600": $teal-600,
+ "primary-700": $teal-700,
+ "primary-800": $teal-800,
+ "primary-900": $teal-900,
+ "primary-950": $teal-950,
+);
+
+$primary: $teal-500;
+$secondary: $gray-500;
+$info: $gray-300;
+$dark: $gray-800;
+$light: $gray-100;
+$component-active-bg: $primary;
+
+$enable-shadows: true;
+$enable-cssgrid: true;
+$enable-dark-mode: false;
+
+$variable-prefix: bs-; // Deprecated in v5.2.0 for the shorter `$prefix`
+$prefix: $variable-prefix;
+
+$link-color: $dark;
+$link-decoration: none;
+
+$grid-rows: 5; // custom variable for grid-rows mixin
+
+$border-radius-sm: .125rem;
+$border-radius-md: .375rem;
+$border-radius-lg: .5rem;
+$border-radius-xl: .75rem;
+$border-radius-xxl: 1rem;
+$border-radius-pill: 9999px;
+
+$box-shadow: 0 1px 3px 0 rgba($black, 0.1), 0 1px 2px -1px rgba($black, 0.1);
+$box-shadow-sm: 0 1px 2px 0 rgba($black, 0.05);
+$box-shadow-md: 0 4px 6px -1px rgba($black, 0.1), 0 2px 4px -2px rgba($black, 0.1);
+$box-shadow-lg: 0 10px 15px -3px rgba($black, 0.1), 0 4px 6px -4px rgba($black, 0.1);
+$box-shadow-xl: 0 20px 25px -5px rgba($black, 0.1), 0 8px 10px -6px rgba($black, 0.1);
+$box-shadow-xxl: 0 25px 50px -12px rgba($black, 0.25);
+$box-shadow-inset: inset 0 2px 4px 0 rgba($black, 0.05);
+$box-shadow-none: 0 0 $black;
+
+$focus-ring-offset: .125rem;
+$focus-ring-offset-color: $white;
+$focus-ring-width: .125rem;
+$focus-ring-opacity: 1;
+$focus-ring-color: rgba($primary, $focus-ring-opacity);
+$focus-ring-blur: 0;
+$focus-ring-box-shadow: 0 0 0 $focus-ring-offset $focus-ring-offset-color, 0 0 $focus-ring-blur add($focus-ring-width, $focus-ring-offset) $focus-ring-color;
+
+$font-family-sans-serif: 'Open Sans', Arial, sans-serif;
+$font-family-monospace: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+$font-family-icons: "Font Awesome 6 Free";
+
+$font-size-base: 1rem;
+$font-size-sm: $font-size-base * .875;
+$h1-font-size: $font-size-base * 3;
+
+$input-btn-padding-y: .5rem;
+$input-btn-padding-x: 1rem;
+$input-btn-padding-y-sm: .375rem;
+$input-btn-padding-x-sm: .625rem;
+$input-btn-padding-y-lg: .750rem;
+$input-btn-padding-x-lg: 1.5rem;
+
+$font-weight-semibold: 600;
+$btn-font-weight: $font-weight-semibold;
+$btn-box-shadow: null;
+$btn-active-box-shadow: null;
+$input-box-shadow: unset;
+$form-select-box-shadow: unset;
+$navbar-nav-link-padding-x: .75rem;
+
+$border-color: $gray-300;
+$navbar-light-color: $gray-900;
+$navbar-light-icon-color: $gray-700;
+$navbar-light-toggler-border-color: $border-color;
+
+$spacer: 1rem;
+$spacers: (
+ 0: 0,
+ 1: $spacer * .25,
+ 2: $spacer * .5,
+ 3: $spacer,
+ 4: $spacer * 1.5,
+ 5: $spacer * 3,
+);
+
+$dropdown-min-width: 14rem;
+$dropdown-border-color: $gray-100;
+$dropdown-divider-bg: $gray-200;
+$dropdown-divider-margin-y: $spacer * .75;
+$dropdown-box-shadow: $box-shadow-lg;
+$dropdown-item-padding-y: $spacer * .75;
+$dropdown-item-padding-x: $spacer * 1.25;
+
+$pagination-padding-y: $spacer * .375;
+$pagination-padding-x: $spacer;
+
+$pagination-border-width: 0px;
+$pagination-disabled-color: $gray-100;
+$pagination-disabled-bg: $light;
+
+$card-title-color: $gray-900;
+$card-subtitle-color: $gray-700;
+$card-border-width: 0;
+$card-border-radius: $border-radius-lg;
+$card-cap-bg: $gray-100;
+
+$badge-padding-y: .25rem;
+$badge-padding-x: .5rem;
+
+$alert-padding-y: $spacer * 1.5;
+$alert-padding-x: $spacer * 1.5;
+
+$alert-border-width: 0;
+
+// Steps
+
+$steps-padding: $spacer * 0.75 $spacer * 2 $spacer * 0.75 $spacer * 1.5;
+$steps-font-size: $font-size-base;
+
+$steps-color: var(--#{$prefix}gray);
+$steps-icon-color: var(--#{$prefix}gray);
+$steps-bg: none;
+$steps-border-radius: var(--#{$prefix}border-radius);
+$steps-border-width: 1px;
+$steps-margin-start: calc(#{$steps-border-width} * -1); // stylelint-disable-line function-disallowed-list
+$steps-border-color: var(--#{$prefix}border-color);
+
+$steps-subtitle-color: var(--#{$prefix}gray);
+$steps-subtitle-font-size: $font-size-sm;
+
+$steps-hover-color: var(--#{$prefix}gray);
+$steps-hover-icon-color: var(--#{$prefix}gray);
+$steps-hover-border-color: var(--#{$prefix}light); // Todo in v6: remove this?
+$steps-hover-bg: none;
+
+$steps-active-color: $component-active-bg;
+$steps-active-icon-color: $component-active-bg;
+$steps-active-border-color: $component-active-bg;
+$steps-active-bg: none;
+
+$steps-completed-color: var(--#{$prefix}gray-dark);
+$steps-completed-icon-color: var(--#{$prefix}primary);
+$steps-completed-border-color: none; // Todo in v6: remove this?
+$steps-completed-bg: none;
+
+$steps-disabled-color: var(--#{$prefix}gray);
+$steps-disabled-icon-color: var(--#{$prefix}gray);
+$steps-disabled-border-color: none;
+$steps-disabled-bg: none;
+
+$steps-transition: border-color .15s ease-in-out;
+
+$breadcrumb-font-size: $font-size-sm;
+$breadcrumb-item-padding-x: 1rem;
+$breadcrumb-divider-color: $gray-500;
+$breadcrumb-active-color: $gray-700;
+$breadcrumb-divider: quote("");
+
+$carousel-control-color: $dark;
+$carousel-control-width: 3rem;
+$carousel-indicator-width: 2rem;
+$carousel-indicator-height: 5px;
+$carousel-indicator-active-bg: $dark;
+
+$code-color: $yellow;
diff --git a/assets/scss/sass-utils/main.scss b/assets/scss/sass-utils/main.scss
new file mode 100644
index 0000000..29985e7
--- /dev/null
+++ b/assets/scss/sass-utils/main.scss
@@ -0,0 +1,13 @@
+@import "variables";
+
+@import "~bootstrap/scss/functions";
+@import "~bootstrap/scss/variables";
+@import "~bootstrap/scss/variables-dark";
+@import "~bootstrap/scss/maps";
+@import "~bootstrap/scss/mixins";
+@import "~bootstrap/scss/utilities";
+@import "~bootstrap/scss/helpers";
+@import "~bootstrap/scss/utilities/api";
+
+@import "utilities";
+@import "./mixins/main.scss";
diff --git a/assets/scss/sass-utils/mixins/_font-face.scss b/assets/scss/sass-utils/mixins/_font-face.scss
new file mode 100644
index 0000000..9cfbde6
--- /dev/null
+++ b/assets/scss/sass-utils/mixins/_font-face.scss
@@ -0,0 +1,27 @@
+@mixin font-face($name, $path, $weight: null, $style: null, $exts: eot woff2 woff ttf svg) {
+ $src: null;
+
+ $extmods: (
+ eot: "?",
+ svg: "#" + str-replace($name, " ", "_"),
+ );
+
+ $formats: (
+ otf: "opentype",
+ ttf: "truetype",
+ );
+
+ @each $ext in $exts {
+ $extmod: if(map-has-key($extmods, $ext), $ext + map-get($extmods, $ext), $ext);
+ $format: if(map-has-key($formats, $ext), map-get($formats, $ext), $ext);
+ $src: append($src, url(quote($path + "." + $extmod)) format(quote($format)), comma);
+ }
+
+ @font-face {
+ font-family: quote($name);
+ font-style: $style;
+ font-weight: $weight;
+ src: $src;
+ font-display: swap;
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/sass-utils/mixins/_grid-rows.scss b/assets/scss/sass-utils/mixins/_grid-rows.scss
new file mode 100644
index 0000000..66d2f72
--- /dev/null
+++ b/assets/scss/sass-utils/mixins/_grid-rows.scss
@@ -0,0 +1,23 @@
+@mixin make-cssgrid-rows($rows: $grid-rows, $breakpoints: $grid-breakpoints) {
+ @each $breakpoint in map-keys($breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ @if $rows >0 {
+ @for $i from 1 through $rows {
+ .g-row#{$infix}-#{$i} {
+ grid-row: auto / span $i;
+ }
+ }
+
+ // Start with `1` because `0` is and invalid value.
+ // Ends with `$rows - 1` because offsetting by the width of an entire row isn't possible.
+ @for $i from 1 through ($rows - 1) {
+ .g-row-start#{$infix}-#{$i} {
+ grid-row-start: $i;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/scss/sass-utils/mixins/main.scss b/assets/scss/sass-utils/mixins/main.scss
new file mode 100644
index 0000000..3c171b8
--- /dev/null
+++ b/assets/scss/sass-utils/mixins/main.scss
@@ -0,0 +1,2 @@
+@import './font-face';
+@import './grid-rows';
diff --git a/assets/scss/vendors/_custom.scss b/assets/scss/vendors/_custom.scss
new file mode 100644
index 0000000..7716744
--- /dev/null
+++ b/assets/scss/vendors/_custom.scss
@@ -0,0 +1,25 @@
+
+.loading-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 99999;
+ display: none;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, .7);
+}
+
+.loadable.loading .loading-overlay { display: flex; }
+
+
+label.required {
+ &::after {
+ content: '*';
+ display: inline-block;
+ padding-left: 4px;
+ color: $danger;
+ }
+}
diff --git a/assets/scss/vendors/main.scss b/assets/scss/vendors/main.scss
new file mode 100644
index 0000000..f6da1de
--- /dev/null
+++ b/assets/scss/vendors/main.scss
@@ -0,0 +1,49 @@
+/* -------------------------------------------------- Font Awesome -------------------------------------------------- */
+
+@import "~@fortawesome/fontawesome-free/scss/fontawesome";
+@import "~@fortawesome/fontawesome-free/scss/solid";
+@import "~@fortawesome/fontawesome-free/scss/brands";
+
+/* -------------------------------------------------- Bootstrap v5 -------------------------------------------------- */
+
+// Layout & components
+@import "~bootstrap/scss/root";
+@import "~bootstrap/scss/reboot";
+@import "~bootstrap/scss/type";
+@import "~bootstrap/scss/images";
+@import "~bootstrap/scss/containers";
+@import "~bootstrap/scss/grid";
+@import "~bootstrap/scss/tables";
+@import "~bootstrap/scss/forms";
+@import "~bootstrap/scss/buttons";
+@import "~bootstrap/scss/transitions";
+@import "~bootstrap/scss/dropdown";
+@import "~bootstrap/scss/button-group";
+@import "~bootstrap/scss/nav";
+@import "~bootstrap/scss/navbar";
+@import "~bootstrap/scss/card";
+@import "~bootstrap/scss/accordion";
+@import "~bootstrap/scss/breadcrumb";
+@import "~bootstrap/scss/pagination";
+@import "~bootstrap/scss/badge";
+@import "~bootstrap/scss/alert";
+@import "~bootstrap/scss/progress";
+@import "~bootstrap/scss/list-group";
+@import "~bootstrap/scss/close";
+@import "~bootstrap/scss/toasts";
+@import "~bootstrap/scss/modal";
+@import "~bootstrap/scss/tooltip";
+@import "~bootstrap/scss/popover";
+@import "~bootstrap/scss/carousel";
+@import "~bootstrap/scss/spinners";
+@import "~bootstrap/scss/offcanvas";
+@import "~bootstrap/scss/placeholders";
+
+/* ----------------------------------------------------- Plugins ---------------------------------------------------- */
+
+@import '~semantic-ui-css/components/flag.min.css';
+@import '~glightbox/dist/css/glightbox.min.css';
+
+// ------------------------------------------------ Temporary imports ----------------------------------------------- //
+
+@import './custom';
\ No newline at end of file
diff --git a/behat.yml.dist b/behat.yml.dist
index 02f79f2..25a93c6 100644
--- a/behat.yml.dist
+++ b/behat.yml.dist
@@ -2,6 +2,12 @@ imports:
- vendor/sylius/sylius/src/Sylius/Behat/Resources/config/suites.yml
default:
+ formatters:
+ pretty:
+ verbose: true
+ paths: false
+ snippets: false
+
extensions:
DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~
@@ -22,6 +28,10 @@ default:
chrome:
api_url: http://127.0.0.1:9222
validate_certificate: false
+ chrome_headless_second_session:
+ chrome:
+ api_url: http://127.0.0.1:9222
+ validate_certificate: false
chrome:
selenium2:
browser: chrome
@@ -53,40 +63,6 @@ default:
paths:
- "vendor/sylius/sylius/features"
-docker:
- extensions:
- Behat\MinkExtension:
- files_path: "%paths.base%/vendor/sylius/sylius/src/Sylius/Behat/Resources/fixtures/"
- base_url: "http://php:8080/"
- default_session: symfony
- javascript_session: chrome_headless
- sessions:
- symfony:
- symfony: ~
- chrome_headless:
- chrome:
- api_url: http://chrome:9222
- validate_certificate: false
- chrome_docker:
- chrome:
- api_url: http://chrome:9222
- validate_certificate: false
- chrome:
- selenium2:
- browser: chrome
- capabilities:
- browserName: chrome
- browser: chrome
- version: ""
- marionette: null # https://github.com/Behat/MinkExtension/pull/311
- chrome:
- switches:
- - "start-fullscreen"
- - "start-maximized"
- - "no-sandbox"
- extra_capabilities:
- unexpectedAlertBehaviour: accept
- firefox:
- selenium2:
- browser: firefox
- show_auto: false
+ gherkin:
+ filters:
+ tags: "~@todo&&~@cli" # CLI is excluded as it registers an error handler that mutes fatal errors
diff --git a/bin/create_node_symlink.php b/bin/create_node_symlink.php
deleted file mode 100644
index 10d69b4..0000000
--- a/bin/create_node_symlink.php
+++ /dev/null
@@ -1,45 +0,0 @@
- `' . NODE_MODULES_FOLDER_NAME . '` already exists as a link or folder, keeping existing as may be intentional.' . PHP_EOL;
- exit(0);
- } else {
- echo '> Invalid symlink `' . NODE_MODULES_FOLDER_NAME . '` detected, recreating...' . PHP_EOL;
- if (!@unlink(NODE_MODULES_FOLDER_NAME)) {
- echo '> Could not delete file `' . NODE_MODULES_FOLDER_NAME . '`.' . PHP_EOL;
- exit(1);
- }
- }
-}
-
-/* try to create the symlink using PHP internals... */
-$success = @symlink(PATH_TO_NODE_MODULES, NODE_MODULES_FOLDER_NAME);
-
-/* if case it has failed, but OS is Windows... */
-if (!$success && strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
- /* ...then try a different approach which does not require elevated permissions and folder to exist */
- echo '> This system is running Windows, creation of links requires elevated privileges,' . PHP_EOL;
- echo '> and target path to exist. Fallback to NTFS Junction:' . PHP_EOL;
- exec(sprintf('mklink /J %s %s 2> NUL', NODE_MODULES_FOLDER_NAME, PATH_TO_NODE_MODULES), $output, $returnCode);
- $success = $returnCode === 0;
- if (!$success) {
- echo '> Failed o create the required symlink' . PHP_EOL;
- exit(2);
- }
-}
-
-$path = @readlink(NODE_MODULES_FOLDER_NAME);
-/* check if link points to the intended directory */
-if ($path && realpath($path) === realpath(PATH_TO_NODE_MODULES)) {
- echo '> Successfully created the symlink.' . PHP_EOL;
- exit(0);
-}
-
-echo '> Failed to create the symlink to `' . NODE_MODULES_FOLDER_NAME . '`.' . PHP_EOL;
-exit(3);
diff --git a/composer.json b/composer.json
index 6a35586..4d1d832 100644
--- a/composer.json
+++ b/composer.json
@@ -1,22 +1,22 @@
{
"name": "sylius/bootstrap-theme",
"type": "sylius-plugin",
- "keywords": ["sylius", "sylius-plugin"],
+ "keywords": ["sylius", "sylius-plugin", "sylius-theme"],
"description": "Bootstrap Theme for Sylius",
"license": "MIT",
"authors": [
{
- "name": "Szymon Kulczyński",
- "email": "szymon.kulczynski@sylius.com"
+ "name": "Community contributions",
+ "homepage": "https://github.com/SyliusCrafts/BootstrapTheme/graphs/contributors"
}
],
"require": {
- "php": "^7.4 || ^8.0",
- "sylius/sylius": "~1.8.0 || ~1.9.0 || ~1.10.0 || ~1.11.0 || ~1.12.0",
+ "php": "^8.0",
+ "sylius/sylius": "1.12.*",
"symfony/webpack-encore-bundle": "^1.12"
},
"require-dev": {
- "behat/behat": "^3.6.1",
+ "behat/behat": "^3.13.0",
"behat/mink-selenium2-driver": "^1.4",
"dmore/behat-chrome-extension": "^1.3",
"dmore/chrome-mink-driver": "^2.7",
@@ -29,8 +29,7 @@
"friends-of-behat/symfony-extension": "^2.1",
"friends-of-behat/variadic-extension": "^1.3",
"friendsofsymfony/oauth-server-bundle": "^1.6 || >2.0.0-alpha.0 ^2.0@dev",
- "friendsoftwig/twigcs": "^4.0 || ^5.0",
- "sensiolabs/security-checker": "^6.0",
+ "friendsoftwig/twigcs": "^6.4",
"sylius-labs/coding-standard": "^4.0",
"symfony/browser-kit": "^5.4",
"symfony/debug-bundle": "^5.4",
@@ -41,16 +40,15 @@
},
"autoload-dev": {
"psr-4": {
- "Tests\\Acme\\SyliusExamplePlugin\\": "tests/"
- },
- "classmap": ["tests/Application/Kernel.php"]
+ "Tests\\BootstrapTheme\\": "tests/PHPUnit/"
+ }
},
"extra": {
"sylius-theme": {
"title": "Sylius Bootstrap Theme"
},
"branch-alias": {
- "dev-master": "0.8-dev"
+ "dev-master": "1.0-dev"
}
},
"config": {
@@ -59,16 +57,5 @@
"dealerdirect/phpcodesniffer-composer-installer": true,
"symfony/thanks": true
}
- },
- "scripts": {
- "post-install-cmd": [
- "php bin/create_node_symlink.php"
- ],
- "post-update-cmd": [
- "php bin/create_node_symlink.php"
- ],
- "post-create-project-cmd": [
- "php bin/create_node_symlink.php"
- ]
}
}
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index 596f06e..0000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-version: '3.4'
-
-services:
- php:
- build:
- context: .
- volumes:
- - .:/srv/sylius:rw
- environment:
- - COMPOSER_HOME=/tmp/composer
- - APP_ENV=test
- - APP_SECRET=EDITME
- - DATABASE_URL=mysql://sylius:nopassword@mysql/sylius
- - MAILER_URL=smtp://mailhog:1025
- - PHP_DATE_TIMEZONE=${PHP_DATE_TIMEZONE:-UTC}
- depends_on:
- - mysql
- ports:
- - "8080:8080"
-
- mysql:
- image: percona:5.7
- environment:
- - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-nopassword}
- - MYSQL_DATABASE=sylius
- - MYSQL_USER=sylius
- - MYSQL_PASSWORD=${MYSQL_PASSWORD:-nopassword}
- volumes:
- - mysql-data:/var/lib/mysql:rw
- # you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data!
- # - ./docker/mysql/data:/var/lib/mysql:rw,delegated
- ports:
- - "3306:3306"
-
- nodejs:
- image: node:10
- tty: true
- depends_on:
- - php
- environment:
- - PHP_HOST=php
- - PHP_PORT=9000
- working_dir: /srv/sylius
- volumes:
- - ./:/srv/sylius:rw,cached
-
- mailhog:
- # do not use in production!
- image: mailhog/mailhog:latest
- environment:
- - MH_STORAGE=maildir
- # volumes:
- # - ./docker/mailhog/maildir:/maildir:rw,delegated
- ports:
- - "8025:8025"
-
- chrome:
- image: zenika/alpine-chrome:latest
- command: [ chromium-browser, "--headless", "--disable-gpu", "--no-sandbox", "--remote-debugging-address=0.0.0.0", "--remote-debugging-port=9222" ]
- ports:
- - "9222:9222"
-
-volumes:
- mysql-data:
diff --git a/docs/cart-dropdown.png b/docs/cart-dropdown.png
new file mode 100644
index 0000000..8d1bc5f
Binary files /dev/null and b/docs/cart-dropdown.png differ
diff --git a/docs/cart-preview.png b/docs/cart-preview.png
new file mode 100644
index 0000000..5184c4f
Binary files /dev/null and b/docs/cart-preview.png differ
diff --git a/docs/cart.png b/docs/cart.png
deleted file mode 100644
index e2a75f9..0000000
Binary files a/docs/cart.png and /dev/null differ
diff --git a/docs/category.png b/docs/category.png
new file mode 100644
index 0000000..2ebde8c
Binary files /dev/null and b/docs/category.png differ
diff --git a/docs/checkout-1.png b/docs/checkout-1.png
new file mode 100644
index 0000000..25f3db9
Binary files /dev/null and b/docs/checkout-1.png differ
diff --git a/docs/checkout-2.png b/docs/checkout-2.png
new file mode 100644
index 0000000..913e7c7
Binary files /dev/null and b/docs/checkout-2.png differ
diff --git a/docs/checkout-3.png b/docs/checkout-3.png
new file mode 100644
index 0000000..d8fd3cb
Binary files /dev/null and b/docs/checkout-3.png differ
diff --git a/docs/checkout-4.png b/docs/checkout-4.png
new file mode 100644
index 0000000..b5d3c85
Binary files /dev/null and b/docs/checkout-4.png differ
diff --git a/docs/checkout-5.png b/docs/checkout-5.png
new file mode 100644
index 0000000..d12f615
Binary files /dev/null and b/docs/checkout-5.png differ
diff --git a/docs/checkout-bar.png b/docs/checkout-bar.png
deleted file mode 100644
index b1390b7..0000000
Binary files a/docs/checkout-bar.png and /dev/null differ
diff --git a/docs/edit-channel-page.png b/docs/edit-channel-page.png
deleted file mode 100644
index 8fb1cfb..0000000
Binary files a/docs/edit-channel-page.png and /dev/null differ
diff --git a/docs/homepage-preview.png b/docs/homepage-preview.png
new file mode 100644
index 0000000..fbb8528
Binary files /dev/null and b/docs/homepage-preview.png differ
diff --git a/docs/homepage-sections.png b/docs/homepage-sections.png
new file mode 100644
index 0000000..5ac13d8
Binary files /dev/null and b/docs/homepage-sections.png differ
diff --git a/docs/homepage.png b/docs/homepage.png
deleted file mode 100644
index 1a564d2..0000000
Binary files a/docs/homepage.png and /dev/null differ
diff --git a/docs/product-options.png b/docs/product-options.png
new file mode 100644
index 0000000..d1e9b88
Binary files /dev/null and b/docs/product-options.png differ
diff --git a/docs/product-page.png b/docs/product-page.png
deleted file mode 100644
index 8a1066d..0000000
Binary files a/docs/product-page.png and /dev/null differ
diff --git a/docs/product-promotions.png b/docs/product-promotions.png
new file mode 100644
index 0000000..caa4f2e
Binary files /dev/null and b/docs/product-promotions.png differ
diff --git a/docs/user-dashboard.png b/docs/user-dashboard.png
new file mode 100644
index 0000000..bfcd4dc
Binary files /dev/null and b/docs/user-dashboard.png differ
diff --git a/docs/user-dropdown.png b/docs/user-dropdown.png
new file mode 100644
index 0000000..2d6d868
Binary files /dev/null and b/docs/user-dropdown.png differ
diff --git a/docs/user-order-history.png b/docs/user-order-history.png
new file mode 100644
index 0000000..4a347cd
Binary files /dev/null and b/docs/user-order-history.png differ
diff --git a/ecs.php b/ecs.php
deleted file mode 100644
index 6f57bba..0000000
--- a/ecs.php
+++ /dev/null
@@ -1,10 +0,0 @@
-import('vendor/sylius-labs/coding-standard/ecs.php');
-};
diff --git a/tests/Application/config/secrets/dev/.gitignore b/install/Application/.gitignore
similarity index 100%
rename from tests/Application/config/secrets/dev/.gitignore
rename to install/Application/.gitignore
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..c693226
--- /dev/null
+++ b/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "sylius-bootstrap-theme",
+ "license": "MIT",
+ "scripts": {
+ "lint": "eslint -c .eslintrc.cjs ./assets"
+ },
+ "devDependencies": {
+ "eslint": "^8.56.0"
+ }
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100644
index 0000000..ba31acd
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,22 @@
+
+
+
+
+
+ vendor/sylius/bootstrap-theme/tests/PHPUnit
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/bundles/SyliusShopBundle/Account/AddressBook/_defaultAddress.html.twig b/templates/bundles/SyliusShopBundle/Account/AddressBook/_defaultAddress.html.twig
new file mode 100644
index 0000000..49a577e
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/AddressBook/_defaultAddress.html.twig
@@ -0,0 +1,21 @@
+
+
+ {% include '@SyliusShop/Common/_address.html.twig' with {'address': address} %}
+
+
+
+
diff --git a/templates/bundles/SyliusShopBundle/Account/AddressBook/_defaultAddressForm.html.twig b/templates/bundles/SyliusShopBundle/Account/AddressBook/_defaultAddressForm.html.twig
new file mode 100644
index 0000000..0b1f809
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/AddressBook/_defaultAddressForm.html.twig
@@ -0,0 +1,9 @@
+{% set id = app.request.attributes.get('id') %}
+
+{{ form_start(form, {'action': path('sylius_shop_account_address_book_set_as_default', {'id': id}), 'method': 'PATCH'}) }}
+
+
+ {{ 'sylius.ui.set_as_default'|trans }}
+
+{{ form_row(form._token) }}
+{{ form_end(form, {'render_rest': false}) }}
diff --git a/templates/bundles/SyliusShopBundle/Account/AddressBook/_item.html.twig b/templates/bundles/SyliusShopBundle/Account/AddressBook/_item.html.twig
new file mode 100644
index 0000000..0aea94b
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/AddressBook/_item.html.twig
@@ -0,0 +1,20 @@
+
+
+ {% include '@SyliusShop/Common/_address.html.twig' with {'address': address} %}
+
+
+
+
diff --git a/SyliusShopBundle/views/Account/AddressBook/create.html.twig b/templates/bundles/SyliusShopBundle/Account/AddressBook/create.html.twig
similarity index 59%
rename from SyliusShopBundle/views/Account/AddressBook/create.html.twig
rename to templates/bundles/SyliusShopBundle/Account/AddressBook/create.html.twig
index 4149dd1..619d800 100644
--- a/SyliusShopBundle/views/Account/AddressBook/create.html.twig
+++ b/templates/bundles/SyliusShopBundle/Account/AddressBook/create.html.twig
@@ -13,19 +13,19 @@
{{ sylius_template_event('sylius.shop.account.address_book.create.after_content_header', {'address': address}) }}
{{ form_start(form, {'action': path('sylius_shop_account_address_book_create'), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
- {% include '@SyliusShop/Common/Form/_address.html.twig' with {'form': form} %}
-
-
-
-
- {{ 'sylius.ui.add'|trans }}
-
-
+ {% include '@SyliusShop/Common/Form/_address.html.twig' with {'form': form} %}
+
+
+
+
+ {{ 'sylius.ui.add'|trans }}
+
+
+
{{ sylius_template_event('sylius.shop.account.address_book.create.form', {'address': address}) }}
diff --git a/SyliusShopBundle/views/Account/AddressBook/index.html.twig b/templates/bundles/SyliusShopBundle/Account/AddressBook/index.html.twig
similarity index 81%
rename from SyliusShopBundle/views/Account/AddressBook/index.html.twig
rename to templates/bundles/SyliusShopBundle/Account/AddressBook/index.html.twig
index 23f9386..a0214b9 100644
--- a/SyliusShopBundle/views/Account/AddressBook/index.html.twig
+++ b/templates/bundles/SyliusShopBundle/Account/AddressBook/index.html.twig
@@ -24,17 +24,17 @@
{% if addresses|length > 0 %}
-
+
{% set default_address = (sylius.customer.defaultAddress) %}
{% if default_address is not null %}
-
+
{% include '@SyliusShop/Account/AddressBook/_defaultAddress.html.twig' with {'address': default_address} %}
{% endif %}
- {% for address in addresses|filter(address => address.id != default_address.id or default_address is null) %}
-
+ {% for address in addresses|filter(address => default_address is null or address.id != default_address.id) %}
+
{% include '@SyliusShop/Account/AddressBook/_item.html.twig' %}
{% endfor %}
diff --git a/templates/bundles/SyliusShopBundle/Account/AddressBook/layout.html.twig b/templates/bundles/SyliusShopBundle/Account/AddressBook/layout.html.twig
new file mode 100644
index 0000000..e469b81
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/AddressBook/layout.html.twig
@@ -0,0 +1,7 @@
+{% extends '@SyliusShop/Account/layout.html.twig' %}
+{% import '@SyliusShop/Common/Macro/breadcrumbs.html.twig' as breadcrumbs %}
+
+{% block breadcrumb breadcrumbs.standard([
+ {'link': path('sylius_shop_account_dashboard'), 'label': 'sylius.ui.my_account'|trans},
+ {'label': 'sylius.ui.address_book'|trans}
+]) %}
diff --git a/SyliusShopBundle/views/Account/AddressBook/update.html.twig b/templates/bundles/SyliusShopBundle/Account/AddressBook/update.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/AddressBook/update.html.twig
rename to templates/bundles/SyliusShopBundle/Account/AddressBook/update.html.twig
diff --git a/SyliusShopBundle/views/Account/Menu/_content.html.twig b/templates/bundles/SyliusShopBundle/Account/Menu/_content.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Menu/_content.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Menu/_content.html.twig
diff --git a/SyliusShopBundle/views/Account/Order/Grid/Action/pay.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Grid/Action/pay.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/Grid/Action/pay.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/Grid/Action/pay.html.twig
diff --git a/SyliusShopBundle/views/Account/Order/Grid/Field/address.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Grid/Field/address.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/Grid/Field/address.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/Grid/Field/address.html.twig
diff --git a/SyliusShopBundle/views/Account/Order/Grid/Field/number.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Grid/Field/number.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/Grid/Field/number.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/Grid/Field/number.html.twig
diff --git a/SyliusShopBundle/views/Account/Order/Grid/Field/total.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Grid/Field/total.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/Grid/Field/total.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/Grid/Field/total.html.twig
diff --git a/templates/bundles/SyliusShopBundle/Account/Order/Index/_breadcrumb.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Index/_breadcrumb.html.twig
new file mode 100644
index 0000000..608c207
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/Order/Index/_breadcrumb.html.twig
@@ -0,0 +1,6 @@
+{% import '@SyliusShop/Common/Macro/breadcrumbs.html.twig' as breadcrumbs %}
+
+{% block breadcrumb breadcrumbs.standard([
+ {'link': path('sylius_shop_account_dashboard'), 'label': 'sylius.ui.my_account'|trans},
+ {'label': 'sylius.ui.order_history'|trans}
+]) %}
diff --git a/SyliusShopBundle/views/Account/Order/Index/_header.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Index/_header.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/Index/_header.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/Index/_header.html.twig
diff --git a/SyliusShopBundle/views/Account/Order/Index/_subcontent.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Index/_subcontent.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/Index/_subcontent.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/Index/_subcontent.html.twig
diff --git a/templates/bundles/SyliusShopBundle/Account/Order/Label/State/cancelled.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Label/State/cancelled.html.twig
new file mode 100644
index 0000000..27ba54d
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/Order/Label/State/cancelled.html.twig
@@ -0,0 +1,3 @@
+
+ {{ value|trans }}
+
diff --git a/templates/bundles/SyliusShopBundle/Account/Order/Label/State/fulfilled.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Label/State/fulfilled.html.twig
new file mode 100644
index 0000000..7dc899e
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/Order/Label/State/fulfilled.html.twig
@@ -0,0 +1,3 @@
+
+ {{ value|trans }}
+
diff --git a/templates/bundles/SyliusShopBundle/Account/Order/Label/State/new.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Label/State/new.html.twig
new file mode 100644
index 0000000..d01173a
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/Order/Label/State/new.html.twig
@@ -0,0 +1,3 @@
+
+ {{ value|trans }}
+
diff --git a/templates/bundles/SyliusShopBundle/Account/Order/Show/_breadcrumb.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Show/_breadcrumb.html.twig
new file mode 100644
index 0000000..27a5003
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/Order/Show/_breadcrumb.html.twig
@@ -0,0 +1,9 @@
+{% import '@SyliusShop/Common/Macro/breadcrumbs.html.twig' as breadcrumbs %}
+
+{% set order_label = "sylius.ui.order"|trans ~ '
#' ~ order.number ~ ' ' %}
+
+{% block breadcrumb breadcrumbs.standard([
+ {'link': path('sylius_shop_account_dashboard'), 'label': 'sylius.ui.my_account'|trans},
+ {'link': path('sylius_shop_account_order_index'), 'label': 'sylius.ui.order_history'|trans},
+ {'label': order_label}
+]) %}
diff --git a/templates/bundles/SyliusShopBundle/Account/Order/Show/_header.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/Show/_header.html.twig
new file mode 100644
index 0000000..3bb5b1a
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/Order/Show/_header.html.twig
@@ -0,0 +1,25 @@
+{% import '@SyliusUi/Macro/flags.html.twig' as flags %}
+
+{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
+
+{{ headers.default('sylius.ui.order'|trans ~ ' #' ~ order.number) }}
+
+
+
+ {{ order.checkoutCompletedAt|format_date }}
+
+
+ {% include [('@SyliusShop/Account/Order/Label/State' ~ '/' ~ order.state ~ '.html.twig'), '@SyliusUi/Label/_default.html.twig'] with {'value': ('sylius.ui.' ~ order.state)|trans} %}
+
+
+ {{ order.currencyCode }}
+
+
+ {{ flags.fromLocaleCode(order.localeCode) }}{{ order.localeCode|locale_name }}
+
+
+
+
+{% if order.paymentState in ['awaiting_payment'] %}
+
{{ 'sylius.ui.pay'|trans }}
+{% endif %}
diff --git a/SyliusShopBundle/views/Account/Order/index.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/index.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/index.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/index.html.twig
diff --git a/SyliusShopBundle/views/Account/Order/show.html.twig b/templates/bundles/SyliusShopBundle/Account/Order/show.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Account/Order/show.html.twig
rename to templates/bundles/SyliusShopBundle/Account/Order/show.html.twig
diff --git a/SyliusShopBundle/views/Account/changePassword.html.twig b/templates/bundles/SyliusShopBundle/Account/changePassword.html.twig
similarity index 75%
rename from SyliusShopBundle/views/Account/changePassword.html.twig
rename to templates/bundles/SyliusShopBundle/Account/changePassword.html.twig
index 08f51ff..4c77c2a 100644
--- a/SyliusShopBundle/views/Account/changePassword.html.twig
+++ b/templates/bundles/SyliusShopBundle/Account/changePassword.html.twig
@@ -5,16 +5,12 @@
{% block title %}{{ 'sylius.ui.change_password'|trans }} | {{ parent() }}{% endblock %}
{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
+{% import '@SyliusShop/Common/Macro/breadcrumbs.html.twig' as breadcrumbs %}
-{% block breadcrumb %}
-
-
- {{ 'sylius.ui.home'|trans }}
- {{ 'sylius.ui.my_account'|trans }}
- {{ 'sylius.ui.change_password'|trans }}
-
-
-{% endblock %}
+{% block breadcrumb breadcrumbs.standard([
+ {link: path('sylius_shop_account_dashboard'), label: 'sylius.ui.my_account'|trans},
+ {label: 'sylius.ui.change_password'|trans}
+]) %}
{% block subcontent %}
diff --git a/templates/bundles/SyliusShopBundle/Account/dashboard.html.twig b/templates/bundles/SyliusShopBundle/Account/dashboard.html.twig
new file mode 100644
index 0000000..f7a09c7
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/dashboard.html.twig
@@ -0,0 +1,92 @@
+{% extends '@SyliusShop/Account/layout.html.twig' %}
+
+{% block title %}
+ {{ 'sylius.ui.my_account'|trans }}
+ |
+ {{ parent() }}
+{% endblock %}
+
+{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
+{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
+{% import '@SyliusShop/Common/Macro/breadcrumbs.html.twig' as breadcrumbs %}
+
+{% block breadcrumb breadcrumbs.standard([
+ {link: path('sylius_shop_account_dashboard'), label: 'sylius.ui.my_account'|trans},
+ {label: 'sylius.ui.my_account'|trans}
+]) %}
+
+{% block subcontent %}
+ {{ headers.default('sylius.ui.my_account'|trans, '', 'sylius.ui.manage_your_personal_information_and_preferences'|trans) }}
+
+ {{ sylius_template_event('sylius.shop.account.dashboard.after_content_header', {'customer': customer}) }}
+
+
+
+
+
{{ customer.fullName }}
+
+
+
+
{{ 'sylius.ui.email'|trans }}
+
+ {{ customer.email }}
+ {% if not customer.user.verified %}
+
+
+ {{ 'sylius.ui.not_verified'|trans }}
+
+ {% endif %}
+
+
+
+
{{ 'sylius.ui.phone_number'|trans }}
+ {{ customer.phoneNumber }}
+
+
+
{{ 'sylius.ui.password'|trans }}
+ *********
+
+
+
+
+
+
+
+
+ {% if customer.defaultAddress %}
+
+
+ {{ 'sylius.ui.default_address'|trans }}
+ {% include '@SyliusShop/Common/_address.html.twig' with {'address': customer.defaultAddress} %}
+
+
+
+
+ {% endif %}
+
+ {{ sylius_template_event('sylius.shop.account.dashboard.after_information', {'customer': customer}) }}
+
+
+{% endblock %}
diff --git a/SyliusShopBundle/views/Account/layout.html.twig b/templates/bundles/SyliusShopBundle/Account/layout.html.twig
similarity index 71%
rename from SyliusShopBundle/views/Account/layout.html.twig
rename to templates/bundles/SyliusShopBundle/Account/layout.html.twig
index ea46f57..874cdac 100644
--- a/SyliusShopBundle/views/Account/layout.html.twig
+++ b/templates/bundles/SyliusShopBundle/Account/layout.html.twig
@@ -1,14 +1,13 @@
{% extends '@SyliusShop/layout.html.twig' %}
{% block content %}
- {% block breadcrumb %}
- {% endblock %}
+ {% block breadcrumb '' %}
-
-
+
+
{{ sylius_template_event('sylius.shop.account.layout.menu') }}
-
+
{{ sylius_template_event('sylius.shop.account.layout.before_subcontent') }}
{% block subcontent %}
diff --git a/SyliusShopBundle/views/Account/profileUpdate.html.twig b/templates/bundles/SyliusShopBundle/Account/profileUpdate.html.twig
similarity index 76%
rename from SyliusShopBundle/views/Account/profileUpdate.html.twig
rename to templates/bundles/SyliusShopBundle/Account/profileUpdate.html.twig
index d8b12c7..c947cac 100644
--- a/SyliusShopBundle/views/Account/profileUpdate.html.twig
+++ b/templates/bundles/SyliusShopBundle/Account/profileUpdate.html.twig
@@ -5,16 +5,12 @@
{% block title %}{{ 'sylius.ui.your_profile'|trans }} | {{ parent() }}{% endblock %}
{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
+{% import '@SyliusShop/Common/Macro/breadcrumbs.html.twig' as breadcrumbs %}
-{% block breadcrumb %}
-
-
- {{ 'sylius.ui.home'|trans }}
- {{ 'sylius.ui.my_account'|trans }}
- {{ 'sylius.ui.personal_information'|trans }}
-
-
-{% endblock %}
+{% block breadcrumb breadcrumbs.standard([
+ {'link': path('sylius_shop_account_dashboard'), 'label': 'sylius.ui.my_account'|trans},
+ {'label': 'sylius.ui.personal_information'|trans}
+]) %}
{% block subcontent %}
@@ -24,7 +20,7 @@
{{ sylius_template_event('sylius.shop.account.profile.update.after_content_header', {'customer': customer, 'form': form}) }}
-
+
{{ form_row(form.firstName) }}
diff --git a/templates/bundles/SyliusShopBundle/Account/requestPasswordReset.html.twig b/templates/bundles/SyliusShopBundle/Account/requestPasswordReset.html.twig
new file mode 100644
index 0000000..9d80960
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/requestPasswordReset.html.twig
@@ -0,0 +1,32 @@
+{% extends '@SyliusShop/layout.html.twig' %}
+
+{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
+
+{% block title %}{{ 'sylius.ui.reset_password'|trans }} | {{ parent() }}{% endblock %}
+
+{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
+
+{% block content %}
+
+
+
+
{{ 'sylius.ui.reset_password'|trans }}
+
{{ 'sylius.ui.set_a_new_password_for_your_account'|trans }}
+
+ {{ sylius_template_event('sylius.shop.request_password_reset_token.after_content_header') }}
+
+ {{ form_start(form, {'action': path('sylius_shop_request_password_reset_token'), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
+ {{ form_row(form.email, sylius_test_form_attribute('reset-email')) }}
+
+ {{ sylius_template_event('sylius.shop.request_password_reset_token.form', {'form': form}) }}
+
+ {{ form_row(form._token) }}
+
+ {{ 'sylius.ui.reset'|trans }}
+
+ {{ form_end(form, {'render_rest': false}) }}
+
+
+
+
+{% endblock %}
diff --git a/templates/bundles/SyliusShopBundle/Account/resetPassword.html.twig b/templates/bundles/SyliusShopBundle/Account/resetPassword.html.twig
new file mode 100644
index 0000000..6459795
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Account/resetPassword.html.twig
@@ -0,0 +1,25 @@
+{% extends '@SyliusShop/layout.html.twig' %}
+
+{% form_theme form '@SyliusShop/Form/theme.html.twig' %}
+
+{% block title %}{{ 'sylius.ui.reset_password'|trans }} | {{ parent() }}{% endblock %}
+
+{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
+
+{% block content %}
+
+
+
{{ 'sylius.ui.reset_password'|trans }}
+
{{ 'sylius.ui.set_a_new_password_for_your_account'|trans }}
+
+
+ {{ form_start(form, {'action': path('sylius_shop_password_reset', {'token': user.passwordResetToken}), 'attr': {'class': 'loadable', 'novalidate': 'novalidate'}}) }}
+ {{ form_row(form.password.first, {'label': 'sylius.form.user_reset_password.new'|trans}) }}
+ {{ form_row(form.password.second, {'label': 'sylius.form.user_reset_password.confirmation'|trans}) }}
+ {{ form_row(form._token) }}
+ {{ 'sylius.ui.reset'|trans }}
+ {{ form_end(form, {'render_rest': false}) }}
+
+
+
+{% endblock %}
diff --git a/SyliusShopBundle/views/Cart/Summary/_checkout.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_checkout.html.twig
similarity index 79%
rename from SyliusShopBundle/views/Cart/Summary/_checkout.html.twig
rename to templates/bundles/SyliusShopBundle/Cart/Summary/_checkout.html.twig
index b007bc8..0c0afd6 100644
--- a/SyliusShopBundle/views/Cart/Summary/_checkout.html.twig
+++ b/templates/bundles/SyliusShopBundle/Cart/Summary/_checkout.html.twig
@@ -1,3 +1,3 @@
-
+
{{ 'sylius.ui.checkout'|trans }}
diff --git a/SyliusShopBundle/views/Cart/Summary/_coupon.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_coupon.html.twig
similarity index 62%
rename from SyliusShopBundle/views/Cart/Summary/_coupon.html.twig
rename to templates/bundles/SyliusShopBundle/Cart/Summary/_coupon.html.twig
index 448539b..b5f1a78 100644
--- a/SyliusShopBundle/views/Cart/Summary/_coupon.html.twig
+++ b/templates/bundles/SyliusShopBundle/Cart/Summary/_coupon.html.twig
@@ -1,8 +1,6 @@
diff --git a/templates/bundles/SyliusShopBundle/Cart/Summary/_header.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_header.html.twig
new file mode 100644
index 0000000..711fe83
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Cart/Summary/_header.html.twig
@@ -0,0 +1,16 @@
+{% import '@SyliusShop/Common/Macro/headers.html.twig' as headers %}
+
+
+
+ {{ headers.default(header|trans, '', 'sylius.ui.edit_your_items_apply_coupon_or_proceed_to_the_checkout'|trans) }}
+
+
+
+
diff --git a/templates/bundles/SyliusShopBundle/Cart/Summary/_item.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_item.html.twig
new file mode 100644
index 0000000..cdca7af
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Cart/Summary/_item.html.twig
@@ -0,0 +1,48 @@
+{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
+{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
+
+{% set variant = item.variant %}
+{% set product = variant.product %}
+{% set original_price_to_display = sylius_order_item_original_price_to_display(item) %}
+
+
+
+
+ {% include '@SyliusShop/Product/_mainImage.html.twig' with {'product': product, 'filter': 'sylius_shop_product_tiny_thumbnail'} %}
+
+
+
+ {% include '@SyliusShop/Product/_info.html.twig' with {variant} %}
+
+ {{ icons.times() }} {{ 'sylius.ui.delete'|trans }}
+
+
+
+
{{ form_widget(form.quantity, {attr: {class: 'w-25'}}|merge(sylius_test_form_attribute('cart-item-quantity-input', item.productName))) }}
+
+
+
{{ money.convertAndFormat(item.subtotal) }}
+
+
+ {{ 'sylius.ui.unit_price'|trans }}
+
+ {% if original_price_to_display is not null %}
+
+ {{ money.convertAndFormat(original_price_to_display) }}
+
+ {% endif %}
+
+ {{ money.convertAndFormat(item.discountedUnitPrice) }}
+
+
+
+
+
diff --git a/templates/bundles/SyliusShopBundle/Cart/Summary/_items.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_items.html.twig
new file mode 100644
index 0000000..fefc8e1
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Cart/Summary/_items.html.twig
@@ -0,0 +1,27 @@
+
+ {{ form_start(form, {'action': path('sylius_shop_cart_save'), 'attr': {'class': 'loadable', 'novalidate': 'novalidate', 'id': form.vars.id}}) }}
+ {{ form_errors(form) }}
+
+
+ {{ sylius_template_event('sylius.shop.cart.summary.items', {'cart': cart, 'form': form}) }}
+
+
+ {% for key, item in cart.items %}
+ {% include '@SyliusShop/Cart/Summary/_item.html.twig' with {'item': item, 'form': form.items[key], 'main_form': form.vars.id} %}
+ {% endfor %}
+
+
+
+
+ {% if form.promotionCoupon is defined %}
+ {{ sylius_template_event('sylius.shop.cart.coupon', {'cart': cart, 'form': form, 'main_form': form.vars.id}) }}
+ {% endif %}
+
+
+ {% include '@SyliusShop/Cart/Summary/_update.html.twig' with {'main_form': form.vars.id} %}
+
+
+
+ {{ form_row(form._token) }}
+ {{ form_end(form, {'render_rest': false}) }}
+
diff --git a/SyliusShopBundle/views/Cart/Summary/_suggestions.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_suggestions.html.twig
similarity index 100%
rename from SyliusShopBundle/views/Cart/Summary/_suggestions.html.twig
rename to templates/bundles/SyliusShopBundle/Cart/Summary/_suggestions.html.twig
diff --git a/templates/bundles/SyliusShopBundle/Cart/Summary/_totals.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_totals.html.twig
new file mode 100644
index 0000000..0d836ce
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Cart/Summary/_totals.html.twig
@@ -0,0 +1,67 @@
+{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
+
+{% set items_subtotal = sylius_order_items_subtotal(cart) %}
+{% set tax_included = sylius_order_tax_included(cart) %}
+{% set tax_excluded = sylius_order_tax_excluded(cart) %}
+
+{% set item_class = 'list-style-none d-flex justify-content-between align-items-center py-3 border-top bg-transparent' %}
+
+
+
{{ 'sylius.ui.summary'|trans }}
+
+ {{ sylius_template_event('sylius.shop.cart.summary.totals', {'cart': cart}) }}
+
+
+
+ {{ 'sylius.ui.items_total'|trans }}:
+ {{ money.convertAndFormat(items_subtotal) }}
+
+
+ {% if cart.orderPromotionTotal %}
+
+ {{ 'sylius.ui.discount'|trans }}:
+ {{ money.convertAndFormat(cart.orderPromotionTotal) }}
+
+ {% endif %}
+
+
+ {{ 'sylius.ui.shipping_estimated_cost'|trans }}:
+
+ {% if cart.getAdjustmentsTotal('shipping') > cart.shippingTotal %}
+ {{ money.convertAndFormat(cart.getAdjustmentsTotal('shipping')) }}
+ {% endif %}
+ {{ money.convertAndFormat(cart.shippingTotal) }}
+
+
+
+
+ {{ 'sylius.ui.taxes_total'|trans }}:
+
+
+ {% if not tax_included and not tax_excluded %}
+ {{ money.convertAndFormat(0) }}
+ {% endif %}
+ {% if tax_excluded %}
+ {{ money.convertAndFormat(tax_excluded) }}
+ {% endif %}
+ {% if tax_included and tax_excluded %} {% endif %}
+
+ {% if tax_included %}
+ ({{ 'sylius.ui.included_in_price'|trans }}) {{ money.convertAndFormat(tax_included) }}
+ {% endif %}
+
+
+
+
+ {{ 'sylius.ui.order_total'|trans }}:
+ {{ money.convertAndFormat(cart.total) }}
+
+
+ {% if cart.currencyCode is not same as(sylius.currencyCode) %}
+
+ {{ 'sylius.ui.base_currency_order_total'|trans }}:
+ {{ money.format(cart.total, cart.currencyCode) }}
+
+ {% endif %}
+
+
diff --git a/templates/bundles/SyliusShopBundle/Cart/Summary/_update.html.twig b/templates/bundles/SyliusShopBundle/Cart/Summary/_update.html.twig
new file mode 100644
index 0000000..98e17ae
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Cart/Summary/_update.html.twig
@@ -0,0 +1,6 @@
+{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
+
+
+ {{ icons.reload() }}
+ {{ 'sylius.ui.update_cart'|trans }}
+
diff --git a/templates/bundles/SyliusShopBundle/Cart/Widget/_button.html.twig b/templates/bundles/SyliusShopBundle/Cart/Widget/_button.html.twig
new file mode 100644
index 0000000..5c5477b
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Cart/Widget/_button.html.twig
@@ -0,0 +1,11 @@
+{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
+{% import "@SyliusShop/Common/Macro/icons.html.twig" as icons %}
+
+
+ {{ icons.cart() }}
+
+ {% if cart.items|length > 0 %}
+ {{ cart.items|length }}
+ {{ money.convertAndFormat(cart.itemsTotal) }}
+ {% endif %}
+
diff --git a/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig b/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig
new file mode 100644
index 0000000..590bfa9
--- /dev/null
+++ b/templates/bundles/SyliusShopBundle/Cart/Widget/_popup.html.twig
@@ -0,0 +1,35 @@
+{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
+
+{% if cart.empty %}
+
+ {{ 'sylius.ui.your_cart_is_empty'|trans }}.
+
+{% else %}
+
+ {% for item in cart.items %}
+ {% set variant = item.variant %}
+ {% set product = variant.product %}
+
+
+ {% include '@SyliusShop/Product/_mainImage.html.twig' with {product, filter: 'sylius_shop_product_tiny_thumbnail'} %}
+
+
{{ item.product }}
+
+ {{ item.quantity }} x
+ {{ money.convertAndFormat(item.unitPrice) }}
+
+
+
+ {% endfor %}
+
+ {{ 'sylius.ui.subtotal'|trans }}:
+ {{ money.convertAndFormat(cart.itemsTotal) }}
+
+
+
+
+{% endif %}
+
diff --git a/SyliusShopBundle/views/Cart/_widget.html.twig b/templates/bundles/SyliusShopBundle/Cart/_widget.html.twig
similarity index 77%
rename from SyliusShopBundle/views/Cart/_widget.html.twig
rename to templates/bundles/SyliusShopBundle/Cart/_widget.html.twig
index 475c3dc..0af82be 100644
--- a/SyliusShopBundle/views/Cart/_widget.html.twig
+++ b/templates/bundles/SyliusShopBundle/Cart/_widget.html.twig
@@ -2,7 +2,7 @@