Full mobile responsive (320px) and tablet (768px) support across all templates
- All text-[20rem] background text → text-[8rem] md:text-[20rem] - All text-8xl → text-5xl md:text-8xl - All text-5xl emojis → text-3xl md:text-5xl - edit_event: w-full md:w-[80%], poster column w-full lg:w-[350px] - account/index: tab bar overflow-x-auto, events table overflow-x-auto - admin/events: table overflow-x-auto - register: tab buttons overflow-x-auto - error 404/500: responsive padding p-6 md:p-12 - base footer: flex-col sm:flex-row for bottom bar - Add PWA bundle (spomky-labs/pwa-bundle) with composer require files Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
15
.gitignore
vendored
15
.gitignore
vendored
@@ -30,3 +30,18 @@ node_modules/
|
||||
/.php-cs-fixer.php
|
||||
/.php-cs-fixer.cache
|
||||
###< friendsofphp/php-cs-fixer ###
|
||||
|
||||
###> symfony/asset-mapper ###
|
||||
/public/assets/
|
||||
/assets/vendor/
|
||||
###< symfony/asset-mapper ###
|
||||
|
||||
###> spomky-labs/pwa-bundle ###
|
||||
/public/idb
|
||||
/public/pwa
|
||||
/public/workbox
|
||||
/public/favicon.ico
|
||||
/public/site.webmanifest
|
||||
/public/site.*.webmanifest
|
||||
/public/sw.js
|
||||
###< spomky-labs/pwa-bundle ###
|
||||
|
||||
3
assets/styles/app.css
Normal file
3
assets/styles/app.css
Normal file
@@ -0,0 +1,3 @@
|
||||
body {
|
||||
background-color: skyblue;
|
||||
}
|
||||
@@ -20,6 +20,7 @@
|
||||
"nelmio/security-bundle": "^3.9",
|
||||
"phpdocumentor/reflection-docblock": "^6.0",
|
||||
"phpstan/phpdoc-parser": "^2.3",
|
||||
"spomky-labs/pwa-bundle": "^1.5",
|
||||
"stevenmaguire/oauth2-keycloak": "^6.1",
|
||||
"stripe/stripe-php": "*",
|
||||
"symfony/amazon-mailer": "8.0.*",
|
||||
@@ -91,7 +92,8 @@
|
||||
"scripts": {
|
||||
"auto-scripts": {
|
||||
"cache:clear": "symfony-cmd",
|
||||
"assets:install %PUBLIC_DIR%": "symfony-cmd"
|
||||
"assets:install %PUBLIC_DIR%": "symfony-cmd",
|
||||
"importmap:install": "symfony-cmd"
|
||||
},
|
||||
"post-install-cmd": [
|
||||
"@auto-scripts"
|
||||
|
||||
349
composer.lock
generated
349
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "cb8493c3f2e7f5a5fd9625178d808e03",
|
||||
"content-hash": "c0065b34464dda1ae6cf59c080b878e6",
|
||||
"packages": [
|
||||
{
|
||||
"name": "async-aws/core",
|
||||
@@ -266,6 +266,83 @@
|
||||
],
|
||||
"time": "2025-12-08T15:06:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/semver",
|
||||
"version": "3.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/semver.git",
|
||||
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
|
||||
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.11",
|
||||
"symfony/phpunit-bridge": "^3 || ^7"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\Semver\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nils Adermann",
|
||||
"email": "naderman@naderman.de",
|
||||
"homepage": "http://www.naderman.de"
|
||||
},
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
},
|
||||
{
|
||||
"name": "Rob Bast",
|
||||
"email": "rob.bast@gmail.com",
|
||||
"homepage": "http://robbast.nl"
|
||||
}
|
||||
],
|
||||
"description": "Semver library that offers utilities, version constraint parsing and validation.",
|
||||
"keywords": [
|
||||
"semantic",
|
||||
"semver",
|
||||
"validation",
|
||||
"versioning"
|
||||
],
|
||||
"support": {
|
||||
"irc": "ircs://irc.libera.chat:6697/composer",
|
||||
"issues": "https://github.com/composer/semver/issues",
|
||||
"source": "https://github.com/composer/semver/tree/3.4.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://packagist.com",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/composer",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-08-20T19:15:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "dasprid/enum",
|
||||
"version": "1.0.7",
|
||||
@@ -4249,6 +4326,118 @@
|
||||
},
|
||||
"time": "2026-03-03T17:31:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spomky-labs/pwa-bundle",
|
||||
"version": "1.5.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Spomky-Labs/pwa-bundle.git",
|
||||
"reference": "af032890aebac9311703edeebef4c3ddb4b36224"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Spomky-Labs/pwa-bundle/zipball/af032890aebac9311703edeebef4c3ddb4b36224",
|
||||
"reference": "af032890aebac9311703edeebef4c3ddb4b36224",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"phpdocumentor/reflection-docblock": "^5.3|^6.0",
|
||||
"psr/log": "^1.1|^2.0|^3.0",
|
||||
"symfony/asset": "^6.4|^7.0|^8.0",
|
||||
"symfony/asset-mapper": "^6.4|^7.0|^8.0",
|
||||
"symfony/config": "^6.4|^7.0|^8.0",
|
||||
"symfony/dependency-injection": "^6.4|^7.0|^8.0",
|
||||
"symfony/deprecation-contracts": "^3.5",
|
||||
"symfony/http-kernel": "^6.4|^7.0|^8.0",
|
||||
"symfony/property-access": "^6.4|^7.0|^8.0",
|
||||
"symfony/property-info": "^6.4|^7.0|^8.0",
|
||||
"symfony/routing": "^6.4|^7.0|^8.0",
|
||||
"symfony/serializer": "^6.4|^7.0|^8.0",
|
||||
"symfony/service-contracts": "^3.0",
|
||||
"symfony/web-link": "^6.4|^7.0|^8.0",
|
||||
"twig/twig": "^3.8"
|
||||
},
|
||||
"require-dev": {
|
||||
"dbrekelmans/bdi": "*",
|
||||
"matthiasnoback/symfony-config-test": "^5.1|^6.0",
|
||||
"monolog/monolog": "^3.0",
|
||||
"nelmio/security-bundle": "^3.3",
|
||||
"symfony/console": "^6.4|^7.0|^8.0",
|
||||
"symfony/event-dispatcher": "^6.4|^7.0|^8.0",
|
||||
"symfony/filesystem": "^6.4|^7.0|^8.0",
|
||||
"symfony/finder": "^6.4|^7.0|^8.0",
|
||||
"symfony/framework-bundle": "^7.0|^8.0",
|
||||
"symfony/mime": "^6.4|^7.0|^8.0",
|
||||
"symfony/monolog-bridge": "^6.4|^7.0|^8.0",
|
||||
"symfony/monolog-bundle": "^3.10|^4.0",
|
||||
"symfony/panther": "^2.3",
|
||||
"symfony/translation": "^6.4|^7.0|^8.0",
|
||||
"symfony/twig-bundle": "^7.0|^8.0",
|
||||
"symfony/ux-icons": "^2.29",
|
||||
"symfony/yaml": "^6.4|^7.0|^8.0"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-gd": "Required to generate icons (or Imagick).",
|
||||
"ext-imagick": "Required to generate icons (or GD).",
|
||||
"symfony/filesystem": "For generating and manipulating icons or screenshots",
|
||||
"symfony/mime": "For generating and manipulating icons or screenshots",
|
||||
"symfony/ux-icons": "For using SVG icons (e.g. for shortcuts)"
|
||||
},
|
||||
"type": "symfony-bundle",
|
||||
"extra": {
|
||||
"thanks": {
|
||||
"url": "https://github.com/spomky-labs/pwa-bundle",
|
||||
"name": "spomky-labs/pwa-bundle"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"SpomkyLabs\\PwaBundle\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Florent Morselli",
|
||||
"homepage": "https://github.com/Spomky"
|
||||
},
|
||||
{
|
||||
"name": "All contributors",
|
||||
"homepage": "https://github.com/spomky-labs/pwa-bundle/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Progressive Web App Manifest Generator Bundle for Symfony.",
|
||||
"homepage": "https://github.com/spomky-labs",
|
||||
"keywords": [
|
||||
"bundle",
|
||||
"pwa",
|
||||
"symfony",
|
||||
"symfony-ux"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/Spomky-Labs/pwa-bundle/issues",
|
||||
"source": "https://github.com/Spomky-Labs/pwa-bundle/tree/1.5.7"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://www.buymeacoffee.com/FlorentMorselli",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/Spomky",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://www.patreon.com/FlorentMorselli",
|
||||
"type": "patreon"
|
||||
}
|
||||
],
|
||||
"time": "2026-03-11T08:50:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "stevenmaguire/oauth2-keycloak",
|
||||
"version": "6.1.0",
|
||||
@@ -4510,6 +4699,87 @@
|
||||
],
|
||||
"time": "2026-02-09T10:14:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/asset-mapper",
|
||||
"version": "v8.0.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/asset-mapper.git",
|
||||
"reference": "80635c3722b9bb5481e0282497ae23796dcd3712"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/asset-mapper/zipball/80635c3722b9bb5481e0282497ae23796dcd3712",
|
||||
"reference": "80635c3722b9bb5481e0282497ae23796dcd3712",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/semver": "^3.0",
|
||||
"php": ">=8.4",
|
||||
"symfony/filesystem": "^7.4|^8.0",
|
||||
"symfony/http-client": "^7.4|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/asset": "^7.4|^8.0",
|
||||
"symfony/browser-kit": "^7.4|^8.0",
|
||||
"symfony/console": "^7.4|^8.0",
|
||||
"symfony/event-dispatcher-contracts": "^3.0",
|
||||
"symfony/finder": "^7.4|^8.0",
|
||||
"symfony/framework-bundle": "^7.4|^8.0",
|
||||
"symfony/http-foundation": "^7.4|^8.0",
|
||||
"symfony/http-kernel": "^7.4|^8.0",
|
||||
"symfony/process": "^7.4|^8.0",
|
||||
"symfony/runtime": "^7.4|^8.0",
|
||||
"symfony/web-link": "^7.4|^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Component\\AssetMapper\\": ""
|
||||
},
|
||||
"exclude-from-classmap": [
|
||||
"/Tests/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Maps directories of assets & makes them available in a public directory with versioned filenames.",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/asset-mapper/tree/v8.0.6"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/nicolas-grekas",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2026-02-17T13:07:04+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache",
|
||||
"version": "v8.0.6",
|
||||
@@ -10634,83 +10904,6 @@
|
||||
],
|
||||
"time": "2024-11-12T16:29:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/semver",
|
||||
"version": "3.4.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/semver.git",
|
||||
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
|
||||
"reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.11",
|
||||
"symfony/phpunit-bridge": "^3 || ^7"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\Semver\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nils Adermann",
|
||||
"email": "naderman@naderman.de",
|
||||
"homepage": "http://www.naderman.de"
|
||||
},
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
},
|
||||
{
|
||||
"name": "Rob Bast",
|
||||
"email": "rob.bast@gmail.com",
|
||||
"homepage": "http://robbast.nl"
|
||||
}
|
||||
],
|
||||
"description": "Semver library that offers utilities, version constraint parsing and validation.",
|
||||
"keywords": [
|
||||
"semantic",
|
||||
"semver",
|
||||
"validation",
|
||||
"versioning"
|
||||
],
|
||||
"support": {
|
||||
"irc": "ircs://irc.libera.chat:6697/composer",
|
||||
"issues": "https://github.com/composer/semver/issues",
|
||||
"source": "https://github.com/composer/semver/tree/3.4.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://packagist.com",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/composer",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2025-08-20T19:15:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/xdebug-handler",
|
||||
"version": "3.0.5",
|
||||
|
||||
@@ -18,4 +18,5 @@ return [
|
||||
Nelmio\SecurityBundle\NelmioSecurityBundle::class => ['all' => true],
|
||||
KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle::class => ['all' => true],
|
||||
Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true],
|
||||
SpomkyLabs\PwaBundle\SpomkyLabsPwaBundle::class => ['all' => true],
|
||||
];
|
||||
|
||||
11
config/packages/asset_mapper.yaml
Normal file
11
config/packages/asset_mapper.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
framework:
|
||||
asset_mapper:
|
||||
# The paths to make available to the asset mapper.
|
||||
paths:
|
||||
- assets/
|
||||
missing_import_mode: strict
|
||||
|
||||
when@prod:
|
||||
framework:
|
||||
asset_mapper:
|
||||
missing_import_mode: warn
|
||||
@@ -280,7 +280,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* }>,
|
||||
* },
|
||||
* asset_mapper?: bool|array{ // Asset Mapper configuration
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* enabled?: bool|Param, // Default: true
|
||||
* paths?: array<string, scalar|Param|null>,
|
||||
* excluded_patterns?: list<scalar|Param|null>,
|
||||
* exclude_dotfiles?: bool|Param, // If true, any files starting with "." will be excluded from the asset mapper. // Default: true
|
||||
@@ -1813,6 +1813,410 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* convert_exception?: bool|Param, // Default: false
|
||||
* remove_first_page_param?: bool|Param, // Default: false
|
||||
* }
|
||||
* @psalm-type PwaConfig = array{
|
||||
* asset_compiler?: bool|Param, // When true, the assets will be compiled when the command "asset-map:compile" is run. // Default: true
|
||||
* early_hints?: bool|array{ // Early Hints (HTTP 103) configuration. Requires a compatible server (FrankenPHP, Caddy).
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* preload_manifest?: bool|Param, // Preload the PWA manifest file. // Default: true
|
||||
* preload_serviceworker?: bool|Param, // Preload the service worker script. Disabled by default as SW registration is usually deferred. // Default: false
|
||||
* preconnect_workbox_cdn?: bool|Param, // Preconnect to Workbox CDN when using CDN mode. // Default: true
|
||||
* },
|
||||
* favicons?: bool|array{
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* default?: array{ // The favicon source and parameters. When used with "dark", this favicon will become the light version.
|
||||
* src?: scalar|Param|null, // The path to the icon. Can be served by Asset Mapper, an absolute path or a Symfony UX Icon (if the bundle is installed).
|
||||
* background_color?: scalar|Param|null, // The background color of the application. If this value is not defined and that of the Manifest section is, the value of the latter will be used. // Default: null
|
||||
* border_radius?: int|Param, // The border radius of the icon. // Default: null
|
||||
* image_scale?: int|Param, // The scale of the icon. // Default: null
|
||||
* svg_attr?: array<string, mixed>,
|
||||
* },
|
||||
* dark?: array{ // The favicon source and parameters for the dark theme. Should only be used with "default".
|
||||
* src?: scalar|Param|null, // The path to the icon. Can be served by Asset Mapper, an absolute path or a Symfony UX Icon (if the bundle is installed).
|
||||
* background_color?: scalar|Param|null, // The background color of the application. If this value is not defined and that of the Manifest section is, the value of the latter will be used. // Default: null
|
||||
* border_radius?: int|Param, // The border radius of the icon. // Default: null
|
||||
* image_scale?: int|Param, // The scale of the icon. // Default: null
|
||||
* svg_attr?: array<string, mixed>,
|
||||
* },
|
||||
* src?: scalar|Param|null, // Deprecated: The "src" configuration key is deprecated. Use the "default.src" configuration key instead. // The source of the favicon. Shall be a SVG or large PNG. // Default: null
|
||||
* src_dark?: scalar|Param|null, // Deprecated: The "src_dark" configuration key is deprecated. Use the "dark.src" configuration key instead. // The source of the favicon in dark mode. Shall be a SVG or large PNG. // Default: null
|
||||
* background_color?: scalar|Param|null, // Deprecated: The "background_color" configuration key is deprecated. Use the "default.background_color" configuration key instead. // The background color of the icon. // Default: null
|
||||
* background_color_dark?: scalar|Param|null, // Deprecated: The "background_color_dark" configuration key is deprecated. Use the "dark.background_color" configuration key instead. // The background color of the icon in dark mode. // Default: null
|
||||
* safari_pinned_tab_color?: scalar|Param|null, // The color of the Safari pinned tab. Requires "use_silhouette" to be set to "true". // Default: null
|
||||
* tile_color?: scalar|Param|null, // The color of the tile for Windows 8+. // Default: null
|
||||
* border_radius?: int|Param, // Deprecated: The "border_radius" configuration key is deprecated. Use the "default.border_radius" or "dark.border_radius" configuration key instead. // The border radius of the icon. // Default: null
|
||||
* image_scale?: int|Param, // Deprecated: The "image_scale" configuration key is deprecated. Use the "default.image_scale" or "dark.image_scale" configuration key instead. // The scale of the icon. // Default: null
|
||||
* low_resolution?: bool|Param, // Include low resolution icons. // Default: false
|
||||
* use_silhouette?: bool|Param|null, // Use only the silhouette of the icon. Applicable for macOS Safari and Windows 8+. Requires potrace to be installed. // Default: null
|
||||
* use_start_image?: bool|Param, // Use the icon as a start image for the iOS splash screen. // Default: true
|
||||
* svg_color?: scalar|Param|null, // When the asset is a SVG file, replaces the currentColor attribute with this color. // Default: "#000"
|
||||
* monochrome?: bool|Param, // Use a monochrome icon. // Default: false
|
||||
* potrace?: scalar|Param|null, // The path to the potrace binary. // Default: "potrace"
|
||||
* },
|
||||
* image_processor?: scalar|Param|null, // The image processor to use to generate the icons of different sizes. // Default: null
|
||||
* logger?: scalar|Param|null, // The logger service to use. If not set, the default logger will be used. // Default: null
|
||||
* manifest?: bool|array{
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* public_url?: scalar|Param|null, // The public URL of the manifest file. // Default: "/site.webmanifest"
|
||||
* use_credentials?: bool|Param, // Indicates whether the manifest should be fetched with credentials. // Default: true
|
||||
* background_color?: scalar|Param|null, // The background color of the application. It should match the background-color CSS property in the sites stylesheet for a smooth transition between launching the web application and loading the site's content.
|
||||
* categories?: list<scalar|Param|null>,
|
||||
* description?: scalar|Param|null, // The description of the application.
|
||||
* display?: scalar|Param|null, // The display mode of the application.
|
||||
* display_override?: list<scalar|Param|null>,
|
||||
* id?: scalar|Param|null, // A string that represents the identity of the web application.
|
||||
* orientation?: scalar|Param|null, // The orientation of the application.
|
||||
* dir?: scalar|Param|null, // The direction of the application.
|
||||
* lang?: scalar|Param|null, // The language of the application.
|
||||
* name?: scalar|Param|null, // The name of the application.
|
||||
* short_name?: scalar|Param|null, // The short name of the application.
|
||||
* scope?: scalar|Param|null, // The scope of the application.
|
||||
* start_url?: string|array{ // The start URL of the application.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* theme_color?: scalar|Param|null, // The theme color of the application. If a dark theme color is specified, the theme color will be used for the light theme.
|
||||
* dark_theme_color?: scalar|Param|null, // The dark theme color of the application.
|
||||
* edge_side_panel?: array{ // Specifies whether or not your app supports the side panel view in Microsoft Edge.
|
||||
* preferred_width?: int|Param, // Specifies the preferred width of the side panel view in Microsoft Edge.
|
||||
* },
|
||||
* iarc_rating_id?: scalar|Param|null, // Specifies the International Age Rating Coalition (IARC) rating ID for the app. See https://www.globalratings.com/how-iarc-works.aspx for more information.
|
||||
* scope_extensions?: list<array{ // Default: []
|
||||
* type?: scalar|Param|null, // Specifies the type of scope extension. This is currently always origin (default), but future extensions may add other types. // Default: "origin"
|
||||
* origin?: scalar|Param|null, // Specifies the origin pattern to associate with.
|
||||
* }>,
|
||||
* handle_links?: scalar|Param|null, // Specifies the default link handling for the web app.
|
||||
* note_taking?: array{ // The note-taking capabilities of the application.
|
||||
* note_taking_url?: string|array{ // The URL to the note-taking service.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* },
|
||||
* icons?: list<string|array{ // Default: []
|
||||
* src?: scalar|Param|null, // The path to the icon. Can be served by Asset Mapper, an absolute path or a Symfony UX Icon (if the bundle is installed).
|
||||
* sizes?: list<int|Param>,
|
||||
* background_color?: scalar|Param|null, // The background color of the application. If this value is not defined and that of the Manifest section is, the value of the latter will be used. // Default: null
|
||||
* border_radius?: int|Param, // The border radius of the icon. // Default: null
|
||||
* image_scale?: int|Param, // The scale of the icon. // Default: null
|
||||
* type?: scalar|Param|null, // The icon mime type.
|
||||
* format?: scalar|Param|null, // The icon format. When set, the "type" option is ignored and the image will be converted.
|
||||
* purpose?: scalar|Param|null, // The purpose of the icon.
|
||||
* svg_attr?: array<string, mixed>,
|
||||
* }>,
|
||||
* screenshots?: list<string|array{ // Default: []
|
||||
* src?: scalar|Param|null, // The path to the screenshot. Can be served by Asset Mapper.
|
||||
* height?: scalar|Param|null, // Default: null
|
||||
* width?: scalar|Param|null, // Default: null
|
||||
* form_factor?: scalar|Param|null, // The form factor of the screenshot. Will guess the form factor if not set.
|
||||
* label?: scalar|Param|null, // The label of the screenshot.
|
||||
* platform?: scalar|Param|null, // The platform of the screenshot.
|
||||
* format?: scalar|Param|null, // The format of the screenshot. Will convert the file if set.
|
||||
* reference?: scalar|Param|null, // The URL of the screenshot. Only for reference and not used by the bundle. // Default: null
|
||||
* }>,
|
||||
* file_handlers?: list<array{ // Default: []
|
||||
* action?: string|array{ // The action to take.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* accept?: array<string, list<scalar|Param|null>>,
|
||||
* }>,
|
||||
* launch_handler?: array{ // The launch handler of the application.
|
||||
* client_mode?: list<scalar|Param|null>,
|
||||
* },
|
||||
* protocol_handlers?: list<array{ // Default: []
|
||||
* protocol?: scalar|Param|null, // The protocol of the handler.
|
||||
* placeholder?: scalar|Param|null, // The placeholder of the handler. Will be replaced by "xxx=%s". // Default: null
|
||||
* url?: string|array{ // The URL of the handler.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* }>,
|
||||
* prefer_related_applications?: bool|Param, // prefer related native applications (instead of this application) // Default: false
|
||||
* related_applications?: list<array{ // Default: []
|
||||
* platform?: scalar|Param|null, // The platform of the application.
|
||||
* url?: string|array{ // The URL of the application.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* id?: scalar|Param|null, // The ID of the application.
|
||||
* }>,
|
||||
* shortcuts?: list<array{ // Default: []
|
||||
* name?: scalar|Param|null, // The name of the shortcut.
|
||||
* short_name?: scalar|Param|null, // The short name of the shortcut.
|
||||
* description?: scalar|Param|null, // The description of the shortcut.
|
||||
* url?: string|array{ // The URL of the shortcut.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* icons?: list<string|array{ // Default: []
|
||||
* src?: scalar|Param|null, // The path to the icon. Can be served by Asset Mapper, an absolute path or a Symfony UX Icon (if the bundle is installed).
|
||||
* sizes?: list<int|Param>,
|
||||
* background_color?: scalar|Param|null, // The background color of the application. If this value is not defined and that of the Manifest section is, the value of the latter will be used. // Default: null
|
||||
* border_radius?: int|Param, // The border radius of the icon. // Default: null
|
||||
* image_scale?: int|Param, // The scale of the icon. // Default: null
|
||||
* type?: scalar|Param|null, // The icon mime type.
|
||||
* format?: scalar|Param|null, // The icon format. When set, the "type" option is ignored and the image will be converted.
|
||||
* purpose?: scalar|Param|null, // The purpose of the icon.
|
||||
* svg_attr?: array<string, mixed>,
|
||||
* }>,
|
||||
* }>,
|
||||
* share_target?: array{ // The share target of the application.
|
||||
* action?: string|array{ // The action of the share target.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* method?: scalar|Param|null, // The method of the share target.
|
||||
* enctype?: scalar|Param|null, // The enctype of the share target. Ignored if method is GET.
|
||||
* params?: array{ // The parameters of the share target.
|
||||
* title?: scalar|Param|null, // The title of the share target.
|
||||
* text?: scalar|Param|null, // The text of the share target.
|
||||
* url?: scalar|Param|null, // The URL of the share target.
|
||||
* files?: list<array{ // Default: []
|
||||
* name?: scalar|Param|null, // The name of the file parameter.
|
||||
* accept?: list<scalar|Param|null>,
|
||||
* }>,
|
||||
* },
|
||||
* },
|
||||
* widgets?: list<array{ // Default: []
|
||||
* name?: scalar|Param|null, // The title of the widget, presented to users.
|
||||
* short_name?: scalar|Param|null, // An alternative short version of the name.
|
||||
* description?: scalar|Param|null, // The description of the widget.
|
||||
* icons?: list<string|array{ // Default: []
|
||||
* src?: scalar|Param|null, // The path to the icon. Can be served by Asset Mapper, an absolute path or a Symfony UX Icon (if the bundle is installed).
|
||||
* sizes?: list<int|Param>,
|
||||
* background_color?: scalar|Param|null, // The background color of the application. If this value is not defined and that of the Manifest section is, the value of the latter will be used. // Default: null
|
||||
* border_radius?: int|Param, // The border radius of the icon. // Default: null
|
||||
* image_scale?: int|Param, // The scale of the icon. // Default: null
|
||||
* type?: scalar|Param|null, // The icon mime type.
|
||||
* format?: scalar|Param|null, // The icon format. When set, the "type" option is ignored and the image will be converted.
|
||||
* purpose?: scalar|Param|null, // The purpose of the icon.
|
||||
* svg_attr?: array<string, mixed>,
|
||||
* }>,
|
||||
* screenshots?: list<string|array{ // Default: []
|
||||
* src?: scalar|Param|null, // The path to the screenshot. Can be served by Asset Mapper.
|
||||
* height?: scalar|Param|null, // Default: null
|
||||
* width?: scalar|Param|null, // Default: null
|
||||
* form_factor?: scalar|Param|null, // The form factor of the screenshot. Will guess the form factor if not set.
|
||||
* label?: scalar|Param|null, // The label of the screenshot.
|
||||
* platform?: scalar|Param|null, // The platform of the screenshot.
|
||||
* format?: scalar|Param|null, // The format of the screenshot. Will convert the file if set.
|
||||
* reference?: scalar|Param|null, // The URL of the screenshot. Only for reference and not used by the bundle. // Default: null
|
||||
* }>,
|
||||
* tag?: scalar|Param|null, // A string used to reference the widget in the PWA service worker.
|
||||
* template?: scalar|Param|null, // The template to use to display the widget in the operating system widgets dashboard. Note: this property is currently only informational and not used. See ms_ac_template below.
|
||||
* ms_ac_template?: string|array{ // The URL of the custom Adaptive Cards template to use to display the widget in the operating system widgets dashboard.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* data?: string|array{ // The URL where the data to fill the template with can be found. If present, this URL is required to return valid JSON.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* type?: scalar|Param|null, // The MIME type for the widget data.
|
||||
* auth?: bool|Param, // A boolean indicating if the widget requires authentication.
|
||||
* update?: int|Param, // The frequency, in seconds, at which the widget will be updated. Code in your service worker must perform the updating; the widget is not updated automatically. See Access widget instances at runtime.
|
||||
* multiple?: bool|Param, // A boolean indicating whether to allow multiple instances of the widget. Defaults to true. // Default: true
|
||||
* }>,
|
||||
* },
|
||||
* path_type_reference?: int|Param, // Deprecated: The "path_type_reference" configuration key is deprecated. Use the "path_type_reference" of URL nodes instead. // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* resource_hints?: bool|array{ // Resource Hints configuration for preconnect, dns-prefetch, and preload.
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* auto_preconnect?: bool|Param, // Automatically add preconnect hints for detected external origins (Workbox CDN, Google Fonts). // Default: true
|
||||
* preconnect?: list<scalar|Param|null>,
|
||||
* dns_prefetch?: list<scalar|Param|null>,
|
||||
* preload?: list<array{ // Default: []
|
||||
* href?: scalar|Param|null, // The URL or path to preload.
|
||||
* as?: "script"|"style"|"font"|"image"|"fetch"|"document"|"audio"|"video"|"track"|"worker"|Param, // The resource type.
|
||||
* type?: scalar|Param|null, // The MIME type of the resource. // Default: null
|
||||
* crossorigin?: "anonymous"|"use-credentials"|Param, // The crossorigin attribute value. Required for fonts. // Default: null
|
||||
* fetchpriority?: "high"|"low"|"auto"|Param, // The fetch priority hint. // Default: null
|
||||
* media?: scalar|Param|null, // Media query for responsive preloading. // Default: null
|
||||
* }>,
|
||||
* },
|
||||
* serviceworker?: bool|string|array{
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* src?: scalar|Param|null, // The path to the service worker source file. Can be served by Asset Mapper.
|
||||
* dest?: scalar|Param|null, // The public URL to the service worker. // Default: "/sw.js"
|
||||
* skip_waiting?: bool|Param, // Whether to skip waiting for the service worker to be activated. // Default: false
|
||||
* scope?: scalar|Param|null, // The scope of the service worker. // Default: "/"
|
||||
* use_cache?: bool|Param, // Whether the service worker should use the cache. // Default: true
|
||||
* workbox?: bool|array{ // The configuration of the workbox.
|
||||
* enabled?: bool|Param, // Default: true
|
||||
* use_cdn?: bool|Param, // Deprecated: The "use_cdn" option is deprecated and will be removed in 2.0.0. use "config.use_cdn" instead. // Whether to use the local workbox or the CDN. // Default: false
|
||||
* google_fonts?: bool|array{
|
||||
* enabled?: bool|Param, // Default: true
|
||||
* cache_prefix?: scalar|Param|null, // The cache prefix for the Google fonts. // Default: null
|
||||
* max_age?: scalar|Param|null, // The maximum age of the Google fonts cache (in seconds). // Default: null
|
||||
* max_entries?: int|Param, // The maximum number of entries in the Google fonts cache. // Default: null
|
||||
* },
|
||||
* cache_manifest?: bool|Param, // Whether to cache the manifest file. // Default: true
|
||||
* version?: scalar|Param|null, // Deprecated: The "version" option is deprecated and will be removed in 2.0.0. use "config.version" instead. // The version of workbox. When using local files, the version shall be "7.0.0." // Default: "7.3.0"
|
||||
* workbox_public_url?: scalar|Param|null, // Deprecated: The "workbox_public_url" option is deprecated and will be removed in 2.0.0. use "config.workbox_public_url" instead. // The public path to the local workbox. Only used if use_cdn is false. // Default: "/workbox"
|
||||
* idb_public_url?: scalar|Param|null, // The public path to the local IndexDB. Only used if use_cdn is false. // Default: "/idb"
|
||||
* workbox_import_placeholder?: scalar|Param|null, // Deprecated: The "workbox_import_placeholder" option is deprecated and will be removed in 2.0.0. No replacement. // The placeholder for the workbox import. Will be replaced by the workbox import. // Default: "//WORKBOX_IMPORT_PLACEHOLDER"
|
||||
* standard_rules_placeholder?: scalar|Param|null, // Deprecated: The "standard_rules_placeholder" option is deprecated and will be removed in 2.0.0. No replacement. // The placeholder for the standard rules. Will be replaced by caching strategies. // Default: "//STANDARD_RULES_PLACEHOLDER"
|
||||
* offline_fallback_placeholder?: scalar|Param|null, // Deprecated: The "offline_fallback_placeholder" option is deprecated and will be removed in 2.0.0. No replacement. // The placeholder for the offline fallback. Will be replaced by the URL. // Default: "//OFFLINE_FALLBACK_PLACEHOLDER"
|
||||
* widgets_placeholder?: scalar|Param|null, // Deprecated: The "widgets_placeholder" option is deprecated and will be removed in 2.0.0. No replacement. // The placeholder for the widgets. Will be replaced by the widgets management events. // Default: "//WIDGETS_PLACEHOLDER"
|
||||
* clear_cache?: bool|Param, // Whether to clear the cache during the service worker activation. // Default: true
|
||||
* navigation_preload?: bool|Param, // Whether to enable navigation preload. This speeds up navigation requests by making the network request in parallel with service worker boot-up. Note: Do not enable if you are precaching HTML pages (e.g., with offline_fallback or warm_cache_urls), as it would be redundant. // Default: false
|
||||
* config?: array{
|
||||
* debug?: bool|Param, // Controls workbox debug logging. Set to false to disable debug mode and logging. // Default: true
|
||||
* version?: scalar|Param|null, // The version of workbox. When using local files, the version shall be "7.0.0." // Default: "7.3.0"
|
||||
* use_cdn?: bool|Param, // Whether to use the local workbox or the CDN. // Default: false
|
||||
* workbox_public_url?: scalar|Param|null, // The public path to the local workbox. Only used if use_cdn is false. // Default: "/workbox"
|
||||
* },
|
||||
* offline_fallback?: array{
|
||||
* cache_name?: scalar|Param|null, // The name of the offline cache. // Default: "offline"
|
||||
* page?: string|array{ // The URL of the offline page fallback.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* image?: string|array{ // The URL of the offline image fallback.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* font?: string|array{ // The URL of the offline font fallback.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* },
|
||||
* image_cache?: bool|array{
|
||||
* enabled?: bool|Param, // Default: true
|
||||
* cache_name?: scalar|Param|null, // The name of the image cache. // Default: "images"
|
||||
* regex?: scalar|Param|null, // The regex to match the images. // Default: "/\\.(ico|png|jpe?g|gif|svg|webp|bmp)$/"
|
||||
* max_entries?: int|Param, // The maximum number of entries in the image cache. // Default: 60
|
||||
* max_age?: scalar|Param|null, // The maximum number of seconds before the image cache is invalidated. // Default: 31536000
|
||||
* },
|
||||
* asset_cache?: bool|array{
|
||||
* enabled?: bool|Param, // Default: true
|
||||
* cache_name?: scalar|Param|null, // The name of the asset cache. // Default: "assets"
|
||||
* regex?: scalar|Param|null, // The regex to match the assets. // Default: "/\\.(css|js|json|xml|txt|map|ico|png|jpe?g|gif|svg|webp|bmp)$/"
|
||||
* max_age?: scalar|Param|null, // The maximum number of seconds before the asset cache is invalidated. // Default: 31536000
|
||||
* },
|
||||
* font_cache?: bool|array{
|
||||
* enabled?: bool|Param, // Default: true
|
||||
* cache_name?: scalar|Param|null, // The name of the font cache. // Default: "fonts"
|
||||
* regex?: scalar|Param|null, // The regex to match the fonts. // Default: "/\\.(ttf|eot|otf|woff2)$/"
|
||||
* max_entries?: int|Param, // The maximum number of entries in the image cache. // Default: 60
|
||||
* max_age?: int|Param, // The maximum number of seconds before the font cache is invalidated. // Default: 31536000
|
||||
* },
|
||||
* resource_caches?: list<array{ // Default: []
|
||||
* match_callback?: scalar|Param|null, // The regex or callback function to match the URLs.
|
||||
* cache_name?: scalar|Param|null, // The name of the page cache.
|
||||
* network_timeout?: int|Param, // The network timeout in seconds before cache is called (for "NetworkFirst" and "NetworkOnly" strategies). // Default: 3
|
||||
* strategy?: scalar|Param|null, // The caching strategy. Only "NetworkFirst", "CacheFirst" and "StaleWhileRevalidate" are supported. StaleWhileRevalidate provides instant page loads with background updates. // Default: "StaleWhileRevalidate"
|
||||
* max_entries?: scalar|Param|null, // The maximum number of entries in the cache (for "CacheFirst" and "NetworkFirst" strategy only). // Default: null
|
||||
* max_age?: scalar|Param|null, // The maximum number of seconds before the cache is invalidated (for "CacheFirst" and "NetWorkFirst" strategy only). // Default: null
|
||||
* broadcast?: bool|Param, // Whether to broadcast the cache update events (for "StaleWhileRevalidate" strategy only). Enables client notification when content is updated. // Default: true
|
||||
* range_requests?: bool|Param, // Whether to support range requests (for "CacheFirst" strategy only). // Default: false
|
||||
* cacheable_response_headers?: list<scalar|Param|null>,
|
||||
* cacheable_response_statuses?: list<int|Param>,
|
||||
* broadcast_headers?: list<scalar|Param|null>,
|
||||
* preload_urls?: list<string|array{ // Default: []
|
||||
* path?: scalar|Param|null, // The URL of the shortcut.
|
||||
* params?: list<mixed>,
|
||||
* }>,
|
||||
* }>,
|
||||
* background_sync?: list<array{ // Default: []
|
||||
* queue_name?: scalar|Param|null, // The name of the queue.
|
||||
* match_callback?: scalar|Param|null, // The regex or callback function to match the URLs.
|
||||
* error_on_4xx?: bool|Param, // Whether to retry the request on 4xx errors. // Default: true
|
||||
* error_on_5xx?: bool|Param, // Whether to retry the request on 5xx errors. // Default: true
|
||||
* expected_status_codes?: list<int|Param>,
|
||||
* expect_redirect?: bool|Param, // Whether to expect a redirect (JS response type should be "opaqueredirect" or the "redirected" property is "true"). // Default: false
|
||||
* method?: scalar|Param|null, // The HTTP method. // Default: "POST"
|
||||
* broadcast_channel?: scalar|Param|null, // The broadcast channel. Set null to disable. // Default: null
|
||||
* max_retention_time?: int|Param, // The maximum retention time in minutes. // Default: 1440
|
||||
* force_sync_fallback?: bool|Param, // If `true`, instead of attempting to use background sync events, always attempt to replay queued request at service worker startup. Most folks will not need this, unless you explicitly target a runtime like Electron that exposes the interfaces for background sync, but does not have a working implementation. // Default: false
|
||||
* }>,
|
||||
* background_fetch?: bool|array{
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* db_name?: scalar|Param|null, // The IndexDB name where downloads are stored // Default: "bgfetch-completed"
|
||||
* progress_url?: string|array{ // The URL of the progress page.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* success_url?: string|array{ // The URL of the success page.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* success_message?: scalar|Param|null, // The message to display on success. This message is translated. // Default: null
|
||||
* failure_message?: scalar|Param|null, // The message to display on success. This message is translated. // Default: null
|
||||
* },
|
||||
* image_cache_name?: scalar|Param|null, // Deprecated: The "image_cache_name" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.image_cache.cache_name" instead. // The name of the image cache. // Default: "images"
|
||||
* font_cache_name?: scalar|Param|null, // Deprecated: The "font_cache_name" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.font_cache.cache_name" instead. // The name of the font cache. // Default: "fonts"
|
||||
* page_cache_name?: scalar|Param|null, // Deprecated: The "page_cache_name" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.resource_caches[].cache_name" instead. // The name of the page cache. // Default: "pages"
|
||||
* asset_cache_name?: scalar|Param|null, // Deprecated: The "asset_cache_name" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.asset_cache.cache_name" instead. // The name of the asset cache. // Default: "assets"
|
||||
* page_fallback?: string|array{ // The URL of the offline page fallback.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* image_fallback?: string|array{ // The URL of the offline image fallback.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* font_fallback?: string|array{ // The URL of the offline font fallback.
|
||||
* path?: scalar|Param|null, // The URL or route name.
|
||||
* path_type_reference?: int|Param, // The path type reference to generate paths/URLs. See https://symfony.com/doc/current/routing.html#generating-urls-in-controllers for more information. // Default: 1
|
||||
* params?: list<mixed>,
|
||||
* },
|
||||
* image_regex?: scalar|Param|null, // Deprecated: The "image_regex" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.image_cache.regex" instead. // The regex to match the images. // Default: "/\\.(ico|png|jpe?g|gif|svg|webp|bmp)$/"
|
||||
* static_regex?: scalar|Param|null, // Deprecated: The "static_regex" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.asset_cache.regex" instead. // The regex to match the static files. // Default: "/\\.(css|js|json|xml|txt|map)$/"
|
||||
* font_regex?: scalar|Param|null, // Deprecated: The "font_regex" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.font_cache.regex" instead. // The regex to match the static files. // Default: "/\\.(ttf|eot|otf|woff2)$/"
|
||||
* max_image_cache_entries?: int|Param, // Deprecated: The "max_image_cache_entries" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.image_cache.max_entries" instead. // The maximum number of entries in the image cache. // Default: 60
|
||||
* max_image_age?: int|Param, // Deprecated: The "max_image_age" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.image_cache.max_age" instead. // The maximum number of seconds before the image cache is invalidated. // Default: 31536000
|
||||
* max_font_cache_entries?: int|Param, // Deprecated: The "max_font_cache_entries" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.font_cache.max_entries" instead. // The maximum number of entries in the font cache. // Default: 30
|
||||
* max_font_age?: int|Param, // Deprecated: The "max_font_age" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.font_cache.max_age" instead. // The maximum number of seconds before the font cache is invalidated. // Default: 31536000
|
||||
* network_timeout_seconds?: int|Param, // Deprecated: The "network_timeout_seconds" option is deprecated and will be removed in 2.0.0. Please use "pwa.serviceworker.workbox.resource_caches[].network_timeout" instead. // The network timeout in seconds before cache is called (for warm cache URLs only). // Default: 3
|
||||
* warm_cache_urls?: list<string|array{ // Default: []
|
||||
* path?: scalar|Param|null, // The URL of the shortcut.
|
||||
* params?: list<mixed>,
|
||||
* }>,
|
||||
* },
|
||||
* },
|
||||
* speculation_rules?: bool|array{ // Speculation Rules API configuration for prefetching and prerendering pages.
|
||||
* enabled?: bool|Param, // Default: false
|
||||
* prefetch?: list<array{ // Default: []
|
||||
* source?: "list"|"document"|Param, // The source type: "list" for explicit URLs, "document" for link matching. // Default: "document"
|
||||
* urls?: list<string|array{ // Default: []
|
||||
* path?: scalar|Param|null, // The URL path or route name.
|
||||
* params?: list<mixed>,
|
||||
* }>,
|
||||
* selector_matches?: scalar|Param|null, // For "document" source: CSS selector to match links. // Default: null
|
||||
* href_matches?: scalar|Param|null, // For "document" source: URL pattern to match href attributes. // Default: null
|
||||
* eagerness?: "immediate"|"eager"|"moderate"|"conservative"|Param, // Eagerness level: "immediate" (viewport), "eager" (hover 200ms), "moderate" (hover 100ms), "conservative" (mousedown/touchstart). // Default: "moderate"
|
||||
* referrer_policy?: scalar|Param|null, // Referrer policy for the speculative request. // Default: null
|
||||
* }>,
|
||||
* prerender?: list<array{ // Default: []
|
||||
* source?: "list"|"document"|Param, // The source type: "list" for explicit URLs, "document" for link matching. // Default: "document"
|
||||
* urls?: list<string|array{ // Default: []
|
||||
* path?: scalar|Param|null, // The URL path or route name.
|
||||
* params?: list<mixed>,
|
||||
* }>,
|
||||
* selector_matches?: scalar|Param|null, // For "document" source: CSS selector to match links. // Default: null
|
||||
* href_matches?: scalar|Param|null, // For "document" source: URL pattern to match href attributes. // Default: null
|
||||
* eagerness?: "immediate"|"eager"|"moderate"|"conservative"|Param, // Eagerness level. For prerender, "conservative" is recommended. // Default: "conservative"
|
||||
* referrer_policy?: scalar|Param|null, // Referrer policy for the speculative request. // Default: null
|
||||
* }>,
|
||||
* },
|
||||
* web_client?: scalar|Param|null, // The Panther Client for generating screenshots. If not set, the default client will be used. // Default: null
|
||||
* user_agent?: scalar|Param|null, // The user agent to use when generating screenshots. When this user agent is detected, the Symfony profiler and debug toolbar will be automatically disabled to ensure screenshots look like production. // Default: "PWAScreenshotBot"
|
||||
* }
|
||||
* @psalm-type ConfigType = array{
|
||||
* imports?: ImportsConfig,
|
||||
* parameters?: ParametersConfig,
|
||||
@@ -1831,6 +2235,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* nelmio_security?: NelmioSecurityConfig,
|
||||
* knpu_oauth2_client?: KnpuOauth2ClientConfig,
|
||||
* knp_paginator?: KnpPaginatorConfig,
|
||||
* pwa?: PwaConfig,
|
||||
* "when@dev"?: array{
|
||||
* imports?: ImportsConfig,
|
||||
* parameters?: ParametersConfig,
|
||||
@@ -1852,6 +2257,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* nelmio_security?: NelmioSecurityConfig,
|
||||
* knpu_oauth2_client?: KnpuOauth2ClientConfig,
|
||||
* knp_paginator?: KnpPaginatorConfig,
|
||||
* pwa?: PwaConfig,
|
||||
* },
|
||||
* "when@prod"?: array{
|
||||
* imports?: ImportsConfig,
|
||||
@@ -1871,6 +2277,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* nelmio_security?: NelmioSecurityConfig,
|
||||
* knpu_oauth2_client?: KnpuOauth2ClientConfig,
|
||||
* knp_paginator?: KnpPaginatorConfig,
|
||||
* pwa?: PwaConfig,
|
||||
* },
|
||||
* "when@test"?: array{
|
||||
* imports?: ImportsConfig,
|
||||
@@ -1891,6 +2298,7 @@ use Symfony\Component\Config\Loader\ParamConfigurator as Param;
|
||||
* nelmio_security?: NelmioSecurityConfig,
|
||||
* knpu_oauth2_client?: KnpuOauth2ClientConfig,
|
||||
* knp_paginator?: KnpPaginatorConfig,
|
||||
* pwa?: PwaConfig,
|
||||
* },
|
||||
* ...<string, ExtensionType|array{ // extra keys must follow the when@%env% pattern or match an extension alias
|
||||
* imports?: ImportsConfig,
|
||||
|
||||
31
importmap.php
Normal file
31
importmap.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Returns the importmap for this application.
|
||||
*
|
||||
* - "path" is a path inside the asset mapper system. Use the
|
||||
* "debug:asset-map" command to see the full list of paths.
|
||||
*
|
||||
* - "entrypoint" (JavaScript only) set to true for any module that will
|
||||
* be used as an "entrypoint" (and passed to the importmap() Twig function).
|
||||
*
|
||||
* The "importmap:require" command can be used to add new entries to this file.
|
||||
*/
|
||||
return [
|
||||
'app' => [
|
||||
'path' => './assets/app.js',
|
||||
'entrypoint' => true,
|
||||
],
|
||||
'@hotwired/stimulus' => [
|
||||
'version' => '3.2.2',
|
||||
],
|
||||
'idb' => [
|
||||
'version' => '8.0.3',
|
||||
],
|
||||
'idb-keyval' => [
|
||||
'version' => '6.2.2',
|
||||
],
|
||||
'@spomky-labs/pwa/helpers' => [
|
||||
'path' => './vendor/spomky-labs/pwa-bundle/assets/src/helpers.js',
|
||||
],
|
||||
];
|
||||
BIN
public/logo.png
BIN
public/logo.png
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 864 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.4 MiB After Width: | Height: | Size: 164 KiB |
27
symfony.lock
27
symfony.lock
@@ -120,6 +120,18 @@
|
||||
"bin/phpunit"
|
||||
]
|
||||
},
|
||||
"spomky-labs/pwa-bundle": {
|
||||
"version": "1.5",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes-contrib",
|
||||
"branch": "main",
|
||||
"version": "1.3",
|
||||
"ref": "ac33d9498ab25856f16d1d7df9ad4b9b0cad066d"
|
||||
},
|
||||
"files": [
|
||||
"config/packages/pwa.yaml"
|
||||
]
|
||||
},
|
||||
"stripe/stripe-php": {
|
||||
"version": "19.4",
|
||||
"recipe": {
|
||||
@@ -138,6 +150,21 @@
|
||||
"ref": "9648db3ecae5c8a6b1a5f74715d3907124348815"
|
||||
}
|
||||
},
|
||||
"symfony/asset-mapper": {
|
||||
"version": "8.0",
|
||||
"recipe": {
|
||||
"repo": "github.com/symfony/recipes",
|
||||
"branch": "main",
|
||||
"version": "6.4",
|
||||
"ref": "5ad1308aa756d58f999ffbe1540d1189f5d7d14a"
|
||||
},
|
||||
"files": [
|
||||
"assets/app.js",
|
||||
"assets/styles/app.css",
|
||||
"config/packages/asset_mapper.yaml",
|
||||
"importmap.php"
|
||||
]
|
||||
},
|
||||
"symfony/console": {
|
||||
"version": "8.0",
|
||||
"recipe": {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{% block title %}Modifier un evenement - E-Ticket{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div class="w-[80%] mx-auto py-12 px-4">
|
||||
<div class="w-full md:w-[80%] mx-auto py-12 px-4">
|
||||
<a href="{{ path('app_account', {tab: 'events'}) }}" class="inline-flex items-center gap-2 text-sm font-black uppercase tracking-widest text-gray-500 hover:text-gray-900 transition-colors mb-8">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M15 19l-7-7 7-7"/></svg>
|
||||
Retour aux evenements
|
||||
@@ -132,7 +132,7 @@
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="lg:w-[350px] flex-shrink-0">
|
||||
<div class="w-full lg:w-[350px] flex-shrink-0">
|
||||
<div class="card-brutal overflow-hidden sticky top-24">
|
||||
<div class="section-header">
|
||||
<h2 class="text-[10px] font-black uppercase tracking-widest text-white">Affiche</h2>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<div class="flex flex-wrap mb-8">
|
||||
<div class="flex flex-wrap overflow-x-auto mb-8">
|
||||
{% if isOrganizer %}
|
||||
<a href="{{ path('app_account', {tab: 'events'}) }}" class="flex-1 min-w-[100px] text-center py-3 border-3 border-gray-900 border-r-0 {{ tab == 'events' ? 'bg-yellow-400' : 'bg-white' }} font-black uppercase text-xs tracking-widest transition-all">Evenements / Brocantes</a>
|
||||
<a href="{{ path('app_account', {tab: 'subaccounts'}) }}" class="flex-1 min-w-[100px] text-center py-3 border-3 border-gray-900 border-r-0 {{ tab == 'subaccounts' ? 'bg-yellow-400' : 'bg-white' }} font-black uppercase text-xs tracking-widest transition-all">Sous-comptes</a>
|
||||
@@ -142,6 +142,7 @@
|
||||
<h2 class="text-[10px] font-black uppercase tracking-widest text-white">Mes evenements / Brocantes / Reservations</h2>
|
||||
</div>
|
||||
{% if events|length > 0 %}
|
||||
<div class="overflow-x-auto">
|
||||
<table class="w-full border-collapse">
|
||||
<thead>
|
||||
<tr class="bg-gray-50 border-b-2 border-gray-200">
|
||||
@@ -185,6 +186,7 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="p-12 text-center">
|
||||
<p class="text-gray-400 font-bold text-sm">Aucun evenement pour le moment.</p>
|
||||
@@ -240,6 +242,7 @@
|
||||
<h2 class="text-[10px] font-black uppercase tracking-widest text-white">Sous-comptes</h2>
|
||||
</div>
|
||||
{% if subAccounts|length > 0 %}
|
||||
<div class="overflow-x-auto">
|
||||
<table class="detail-table">
|
||||
<thead>
|
||||
<tr class="border-b-2 border-gray-200">
|
||||
@@ -277,6 +280,7 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="p-12 text-center">
|
||||
<p class="text-gray-400 font-bold text-sm">Aucun sous-compte pour le moment.</p>
|
||||
@@ -295,6 +299,7 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if payouts|length > 0 %}
|
||||
<div class="overflow-x-auto">
|
||||
<table class="detail-table">
|
||||
<thead>
|
||||
<tr class="border-b-2 border-gray-200">
|
||||
@@ -333,6 +338,7 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="p-12 text-center">
|
||||
<p class="text-gray-400 font-bold text-sm">Aucun virement pour le moment.</p>
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
<div class="admin-card overflow-hidden p-0">
|
||||
{% if events|length > 0 %}
|
||||
<div class="overflow-x-auto">
|
||||
<table class="admin-table">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -69,6 +70,7 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="p-12 text-center">
|
||||
<p class="text-gray-400 font-bold text-sm">
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-wrap justify-between items-center gap-6">
|
||||
<div class="flex flex-col sm:flex-row flex-wrap justify-between items-start sm:items-center gap-6">
|
||||
<div>
|
||||
<p class="font-black uppercase text-sm">© {{ "now"|date("Y") }} E-TICKET.</p>
|
||||
<p class="text-[11px] font-bold opacity-80">Solution proposee par l'association <a href="https://www.e-cosplay.fr" class="underline hover:no-underline">e-cosplay.fr</a></p>
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<div class="bg-[#fbfbfb] overflow-x-hidden italic font-sans">
|
||||
<section class="relative flex items-center justify-center px-4 pt-20 pb-16 min-h-[60vh]">
|
||||
<div class="absolute inset-0 opacity-[0.03] pointer-events-none select-none overflow-hidden">
|
||||
<span class="text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">404</span>
|
||||
<span class="text-[8rem] md:text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">404</span>
|
||||
</div>
|
||||
|
||||
<div class="max-w-2xl mx-auto relative z-10 text-center">
|
||||
<div class="border-4 border-gray-900 bg-white shadow-[6px_6px_0px_rgba(0,0,0,1)] p-12">
|
||||
<div class="text-8xl font-black uppercase tracking-tighter mb-4">404</div>
|
||||
<div class="border-4 border-gray-900 bg-white shadow-[6px_6px_0px_rgba(0,0,0,1)] p-6 md:p-12">
|
||||
<div class="text-5xl md:text-8xl font-black uppercase tracking-tighter mb-4">404</div>
|
||||
<h1 class="text-3xl font-black uppercase tracking-tighter italic mb-4">Page introuvable</h1>
|
||||
<p class="font-bold text-gray-500 italic mb-8">La page que vous cherchez n'existe pas ou a ete deplacee.</p>
|
||||
<a href="/" class="btn-brutal font-black uppercase text-sm tracking-widest hover:bg-indigo-600 hover:text-white transition-all">
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
<div class="bg-[#fbfbfb] overflow-x-hidden italic font-sans">
|
||||
<section class="relative flex items-center justify-center px-4 pt-20 pb-16 min-h-[60vh]">
|
||||
<div class="absolute inset-0 opacity-[0.03] pointer-events-none select-none overflow-hidden">
|
||||
<span class="text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">500</span>
|
||||
<span class="text-[8rem] md:text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">500</span>
|
||||
</div>
|
||||
|
||||
<div class="max-w-2xl mx-auto relative z-10 text-center">
|
||||
<div class="border-4 border-gray-900 bg-white shadow-[6px_6px_0px_rgba(0,0,0,1)] p-12">
|
||||
<div class="text-8xl font-black uppercase tracking-tighter mb-4">{{ status_code }}</div>
|
||||
<div class="border-4 border-gray-900 bg-white shadow-[6px_6px_0px_rgba(0,0,0,1)] p-6 md:p-12">
|
||||
<div class="text-5xl md:text-8xl font-black uppercase tracking-tighter mb-4">{{ status_code }}</div>
|
||||
<h1 class="text-3xl font-black uppercase tracking-tighter italic mb-4">Erreur serveur</h1>
|
||||
<p class="font-bold text-gray-500 italic mb-4">Une erreur inattendue s'est produite. Nos equipes ont ete notifiees.</p>
|
||||
{% if error_message is defined and error_message %}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<section class="relative bg-white border-b-8 border-gray-900 px-4 pt-20 pb-16">
|
||||
<div class="absolute inset-0 opacity-[0.03] pointer-events-none select-none overflow-hidden">
|
||||
<span class="text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">EVENT</span>
|
||||
<span class="text-[8rem] md:text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">EVENT</span>
|
||||
</div>
|
||||
|
||||
<div class="max-w-4xl mx-auto relative z-10">
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<section class="relative flex items-center justify-center bg-white border-b-8 border-gray-900 px-4 pt-20 pb-16">
|
||||
<div class="absolute inset-0 opacity-[0.03] pointer-events-none select-none overflow-hidden">
|
||||
<span class="text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">EVENTS</span>
|
||||
<span class="text-[8rem] md:text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">EVENTS</span>
|
||||
</div>
|
||||
|
||||
<div class="max-w-7xl mx-auto relative z-10 text-center">
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<section class="relative bg-white border-b-8 border-gray-900 px-4 pt-20 pb-16">
|
||||
<div class="absolute inset-0 opacity-[0.03] pointer-events-none select-none overflow-hidden">
|
||||
<span class="text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">ORGA</span>
|
||||
<span class="text-[8rem] md:text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">ORGA</span>
|
||||
</div>
|
||||
|
||||
<div class="max-w-4xl mx-auto relative z-10">
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<section class="relative flex items-center justify-center bg-white border-b-8 border-gray-900 px-4 pt-20 pb-16">
|
||||
<div class="absolute inset-0 opacity-[0.03] pointer-events-none select-none overflow-hidden">
|
||||
<span class="text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">ORGA</span>
|
||||
<span class="text-[8rem] md:text-[20rem] font-black uppercase leading-none block -rotate-12 translate-y-10">ORGA</span>
|
||||
</div>
|
||||
|
||||
<div class="max-w-7xl mx-auto relative z-10 text-center">
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{% block body %}
|
||||
<div class="page-container-sm text-center">
|
||||
<div class="card-brutal-lg">
|
||||
<div class="text-5xl mb-4">✓</div>
|
||||
<div class="text-3xl md:text-5xl mb-4">✓</div>
|
||||
<h1 class="text-2xl font-black uppercase tracking-tighter italic mb-4">Email verifie !</h1>
|
||||
|
||||
<div class="card-brutal-green mb-6">
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<div class="flex mb-8">
|
||||
<div class="flex overflow-x-auto mb-8">
|
||||
<button data-tab="tab-buyer" type="button"
|
||||
class="flex-1 py-3 border-3 border-gray-900 border-r-0 cursor-pointer bg-gray-900 text-white font-black uppercase text-sm tracking-widest transition-all">
|
||||
Acheteur
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
{% block body %}
|
||||
<div class="page-container-sm text-center">
|
||||
<div class="card-brutal-lg">
|
||||
<div class="text-5xl mb-4">✓</div>
|
||||
<div class="text-3xl md:text-5xl mb-4">✓</div>
|
||||
<h1 class="text-2xl font-black uppercase tracking-tighter italic mb-4">Compte cree avec succes !</h1>
|
||||
|
||||
<div class="card-brutal-green mb-6">
|
||||
|
||||
Reference in New Issue
Block a user