WIP recipe

This commit is contained in:
Anatoliy Poloz
2023-12-12 14:06:49 +03:00
parent ee3897a1a3
commit fc41cc7106
22 changed files with 3796 additions and 159 deletions

View File

@@ -8,6 +8,8 @@ LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
HOME_PAGE_TITLE="Eatvio Auth"
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306

View File

@@ -4,6 +4,7 @@ namespace App\Livewire\Recipe;
use Livewire\Component;
use Livewire\WithFileUploads;
use Livewire\Attributes\On;
use Illuminate\Support\Facades\Auth;
use App\Models\Tag;
use App\Models\Recipe;
@@ -14,16 +15,19 @@ class Create extends Component
public $image;
public $state = 'active';
public $tags;
public $tags = [];
public $title;
public $type = 'other';
public $video_url = '';
public $cooking_time = '10';
public $description = "";
public $steps = [['image' => '', 'description' => '']];
public $ingredients = [['name' => '', 'portion' => '', 'unit' => '']];
public $ingredients = [];
public $ingredients_name = "";
public $ingredients_portion = "";
public $ingredients_unit = "gr";
protected $listeners = ['stepRemoved' => '$refresh', 'parentComponentTagAdded', 'parentComponentTagRemoved'];
protected $listeners = ['stepRemoved' => '$refresh'];
protected function rules()
{
@@ -45,9 +49,19 @@ class Create extends Component
return view('livewire.recipe.create');
}
public function addIngredient()
public function addIngredient(): void
{
$this->ingredients[] = ['name' => '', 'portion' => ''];
// dd(
// $this->ingredients_name,
// $this->ingredients_portion,
// $this->ingredients_unit
// );
$this->ingredients[] = [
'name' => $this->ingredients_name,
'portion' => $this->ingredients_portion,
'unit' => $this->ingredients_unit
];
$this->reset('ingredients_name', 'ingredients_portion', 'ingredients_unit');
}
public function removeIngredient($i)
@@ -77,12 +91,14 @@ class Create extends Component
$this->dispatch('stepRemoved')->self();
}
#[On('parentComponentTagAdded')]
public function parentComponentTagAdded(Tag $tag)
{
$tagIndex = $tag->id;
$this->tags[$tagIndex] = $tag;
}
#[On('parentComponentTagRemoved')]
public function parentComponentTagRemoved($tag)
{
$this->tags = collect($this->tags)
@@ -124,6 +140,7 @@ class Create extends Component
public function publish()
{
// dd($this->description);
$this->validate();
$recipe = new Recipe();
@@ -146,4 +163,9 @@ class Create extends Component
return redirect()->route('recipe.show', $recipe->id);
}
// public function updated($property)
// {
// dd($property, $this->$property);
// }
}

View File

@@ -63,7 +63,13 @@ class Edit extends Component
public function addIngredient()
{
$this->ingredients[] = ['name' => '', 'portion' => ''];
// $this->ingredients[] = ['name' => '', 'portion' => ''];
$this->ingredients[] = [
'name' => $this->ingredients_name,
'portion' => $this->ingredients_portion,
'unit' => $this->ingredients_unit
];
$this->reset('ingredients_name', 'ingredients_portion', 'ingredients_unit');
}
public function removeIngredient($i)
@@ -135,6 +141,7 @@ class Edit extends Component
public function publish()
{
dd($this->steps);
$this->validate();
$recipe = $this->recipe;

View File

@@ -12,6 +12,7 @@
"doctrine/dbal": "^3.0",
"guzzlehttp/guzzle": "^7.2",
"iben12/laravel-statable": "^1.5",
"jzonta/faker-restaurant": "^2.0",
"laravel/framework": "^10.0",
"laravel/jetstream": "^4.0",
"laravel/sanctum": "^3.2",

184
composer.lock generated
View File

@@ -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": "34d1a8c89daa6bffe88d41428ab1f92e",
"content-hash": "d583b5e56204b55c62acc30999b7d1f5",
"packages": [
{
"name": "asantibanez/livewire-charts",
@@ -1170,6 +1170,74 @@
],
"time": "2023-01-14T14:17:03+00:00"
},
{
"name": "fakerphp/faker",
"version": "v1.23.0",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
"reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
"reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
},
"conflict": {
"fzaninotto/faker": "*"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4.1",
"doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*",
"phpunit/phpunit": "^9.5.26",
"symfony/phpunit-bridge": "^5.4.16"
},
"suggest": {
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
"ext-curl": "Required by Faker\\Provider\\Image to download images.",
"ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "v1.21-dev"
}
},
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "François Zaninotto"
}
],
"description": "Faker is a PHP library that generates fake data for you.",
"keywords": [
"data",
"faker",
"fixtures"
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
"source": "https://github.com/FakerPHP/Faker/tree/v1.23.0"
},
"time": "2023-06-12T08:44:38+00:00"
},
{
"name": "fruitcake/php-cors",
"version": "v1.2.0",
@@ -2022,6 +2090,52 @@
],
"time": "2020-06-13T08:05:20+00:00"
},
{
"name": "jzonta/faker-restaurant",
"version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/jzonta/FakerRestaurant.git",
"reference": "4e10ff08dc8ca08603a3daf7abe48d412b013cf4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jzonta/FakerRestaurant/zipball/4e10ff08dc8ca08603a3daf7abe48d412b013cf4",
"reference": "4e10ff08dc8ca08603a3daf7abe48d412b013cf4",
"shasum": ""
},
"require": {
"fakerphp/faker": "^1.9.1",
"php": ">=7.1"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.17",
"phpstan/phpstan": "^0.12.66",
"phpunit/phpunit": "^9"
},
"type": "library",
"autoload": {
"psr-4": {
"FakerRestaurant\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "João Zonta"
}
],
"description": "Food and Beverage names generate using fakerphp/faker",
"homepage": "https://github.com/jzonta/FakerRestaurant",
"support": {
"issues": "https://github.com/jzonta/FakerRestaurant/issues",
"source": "https://github.com/jzonta/FakerRestaurant/tree/v2.0.1"
},
"time": "2021-11-15T11:21:22+00:00"
},
{
"name": "laravel/fortify",
"version": "v1.17.5",
@@ -9324,74 +9438,6 @@
}
],
"packages-dev": [
{
"name": "fakerphp/faker",
"version": "v1.23.0",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
"reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
"reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
},
"conflict": {
"fzaninotto/faker": "*"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4.1",
"doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*",
"phpunit/phpunit": "^9.5.26",
"symfony/phpunit-bridge": "^5.4.16"
},
"suggest": {
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
"ext-curl": "Required by Faker\\Provider\\Image to download images.",
"ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "v1.21-dev"
}
},
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "François Zaninotto"
}
],
"description": "Faker is a PHP library that generates fake data for you.",
"keywords": [
"data",
"faker",
"fixtures"
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
"source": "https://github.com/FakerPHP/Faker/tree/v1.23.0"
},
"time": "2023-06-12T08:44:38+00:00"
},
{
"name": "filp/whoops",
"version": "2.15.3",

View File

@@ -44,5 +44,8 @@ return [
'sweets' => 'Сладости',
'drinks' => 'Напитки',
'other' => 'Прочее',
'name_of_product' => 'Название продукта',
'portion' => 'Порция',
'units' => 'Единица измерения'
];

97
package-lock.json generated
View File

@@ -34,6 +34,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
"integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
"dev": true,
"engines": {
"node": ">=10"
},
@@ -1941,6 +1942,7 @@
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -1954,6 +1956,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1962,6 +1965,7 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"dev": true,
"engines": {
"node": ">=6.0.0"
}
@@ -1979,12 +1983,14 @@
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
"dev": true
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.19",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
"integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
"dev": true,
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
@@ -2000,6 +2006,7 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -2012,6 +2019,7 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"dev": true,
"engines": {
"node": ">= 8"
}
@@ -2020,6 +2028,7 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dev": true,
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -2860,7 +2869,8 @@
"node_modules/any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
"dev": true
},
"node_modules/anymatch": {
"version": "3.1.3",
@@ -2891,7 +2901,8 @@
"node_modules/arg": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
"dev": true
},
"node_modules/array-flatten": {
"version": "2.1.2",
@@ -3067,7 +3078,8 @@
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
"node_modules/base64-js": {
"version": "1.5.1",
@@ -3215,6 +3227,7 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -3430,6 +3443,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
"dev": true,
"engines": {
"node": ">= 6"
}
@@ -3711,7 +3725,8 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/concat/node_modules/commander": {
"version": "2.20.3",
@@ -4212,7 +4227,8 @@
"node_modules/didyoumean": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
"integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
"dev": true
},
"node_modules/diffie-hellman": {
"version": "5.0.3",
@@ -4246,7 +4262,8 @@
"node_modules/dlv": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
"dev": true
},
"node_modules/dns-equal": {
"version": "1.0.0",
@@ -4726,6 +4743,7 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
"integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -4756,6 +4774,7 @@
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
"integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
"dev": true,
"dependencies": {
"reusify": "^1.0.4"
}
@@ -4967,7 +4986,8 @@
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"node_modules/fsevents": {
"version": "2.3.3",
@@ -4985,7 +5005,8 @@
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
@@ -5119,6 +5140,7 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dev": true,
"dependencies": {
"function-bind": "^1.1.1"
},
@@ -5630,6 +5652,7 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -5638,7 +5661,8 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"node_modules/interpret": {
"version": "2.2.0",
@@ -5685,6 +5709,7 @@
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
"integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
"dev": true,
"dependencies": {
"has": "^1.0.3"
},
@@ -5851,6 +5876,7 @@
"version": "1.19.3",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.3.tgz",
"integrity": "sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==",
"dev": true,
"bin": {
"jiti": "bin/jiti.js"
}
@@ -6111,6 +6137,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true,
"engines": {
"node": ">=10"
}
@@ -6118,7 +6145,8 @@
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
"node_modules/loader-runner": {
"version": "4.3.0",
@@ -6303,6 +6331,7 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"dev": true,
"engines": {
"node": ">= 8"
}
@@ -6320,6 +6349,7 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
"dependencies": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -6452,6 +6482,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -6491,6 +6522,7 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
"dependencies": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
@@ -6501,6 +6533,7 @@
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
"dev": true,
"funding": [
{
"type": "github",
@@ -6684,6 +6717,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6692,6 +6726,7 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
"dev": true,
"engines": {
"node": ">= 6"
}
@@ -6736,6 +6771,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": {
"wrappy": "1"
}
@@ -6945,6 +6981,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -6961,7 +6998,8 @@
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
"node_modules/path-to-regexp": {
"version": "0.1.7",
@@ -6997,7 +7035,8 @@
"node_modules/picocolors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
"dev": true
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -7014,6 +7053,7 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -7022,6 +7062,7 @@
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
"integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
"dev": true,
"engines": {
"node": ">= 6"
}
@@ -7042,6 +7083,7 @@
"version": "8.4.28",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.28.tgz",
"integrity": "sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==",
"dev": true,
"funding": [
{
"type": "opencollective",
@@ -7181,6 +7223,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
"integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
"dev": true,
"dependencies": {
"camelcase-css": "^2.0.1"
},
@@ -7407,6 +7450,7 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
"integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
"dev": true,
"dependencies": {
"postcss-selector-parser": "^6.0.11"
},
@@ -7425,6 +7469,7 @@
"version": "6.0.13",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
"integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -7660,7 +7705,8 @@
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
"node_modules/pretty-time": {
"version": "1.1.0",
@@ -7778,6 +7824,7 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true,
"funding": [
{
"type": "github",
@@ -7861,6 +7908,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
"integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
"dev": true,
"dependencies": {
"pify": "^2.3.0"
}
@@ -8041,6 +8089,7 @@
"version": "1.22.4",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
"integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
"dev": true,
"dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -8112,6 +8161,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
"dev": true,
"engines": {
"iojs": ">=1.0.0",
"node": ">=0.10.0"
@@ -8146,6 +8196,7 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"funding": [
{
"type": "github",
@@ -8804,6 +8855,7 @@
"version": "3.34.0",
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
"integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
@@ -8825,6 +8877,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
"dev": true,
"engines": {
"node": ">= 6"
}
@@ -8833,6 +8886,7 @@
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
"integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -8864,6 +8918,7 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -8979,6 +9034,7 @@
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
"integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==",
"dev": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
@@ -9015,6 +9071,7 @@
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
"integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.3"
},
@@ -9026,6 +9083,7 @@
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
"integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
"dev": true,
"dependencies": {
"postcss-value-parser": "^4.0.0",
"read-cache": "^1.0.0",
@@ -9042,6 +9100,7 @@
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
"integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
"dev": true,
"dependencies": {
"lilconfig": "^2.0.5",
"yaml": "^2.1.1"
@@ -9070,6 +9129,7 @@
"version": "6.0.13",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
"integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -9082,6 +9142,7 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz",
"integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==",
"dev": true,
"engines": {
"node": ">= 14"
}
@@ -9175,6 +9236,7 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dev": true,
"dependencies": {
"any-promise": "^1.0.0"
}
@@ -9183,6 +9245,7 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dev": true,
"dependencies": {
"thenify": ">= 3.1.0 < 4"
},
@@ -9254,7 +9317,8 @@
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
"dev": true
},
"node_modules/tslib": {
"version": "2.6.2",
@@ -9945,7 +10009,8 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"node_modules/ws": {
"version": "8.13.0",

File diff suppressed because one or more lines are too long

View File

@@ -63,7 +63,7 @@
<li class="header__menu-item">
<a href="" class="header__menu-link icon-check-square ">
Мой план
</a>
</li>
<li class="header__menu-item">
@@ -103,9 +103,7 @@
<div class="diet__form-row">
<div class="diet__form-columns lg-columns">
<div class="diet__form-column">
<div class="label">
Изображение
</div>
<div class="label">Изображение</div>
<label class="file">
<input type="file" name="file" class="file__input hidden" hidden="">
<span class="file__content">
@@ -331,7 +329,7 @@
</section>
</main>
</div>
@@ -429,7 +427,8 @@
<script src="js/app.min.js"></script>
<!--script src="js/app.min.js"></script-->
<script src="js/app.js"></script>
</body>
</html>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
{
"/js/app.js": "/js/app.js?id=aa615aefce96dda7f047c59a2f222235",
"/css/app.css": "/css/app.css?id=abd5390cc8cad29126eed05263435428"
"/js/app.js": "/js/app.js",
"/css/app.css": "/css/app.css"
}

View File

@@ -1,7 +1,11 @@
@tailwind base;
/* @tailwind base;
@tailwind components;
@tailwind utilities;
@tailwind utilities; */
[x-cloak] {
display: none;
}
.my-custom-tags .taggle_list {
margin-top: -1.8em;
}

View File

@@ -8,7 +8,7 @@ $currentLocale = LaravelLocalization::getCurrentLocale();
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Auth</title>
<title>{{env('HOME_PAGE_TITLE')}}</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
</style>

View File

@@ -16,8 +16,8 @@ $isDiary = Str::of($curUrl)->test('/\/diary/');
<link type="text/css" rel="stylesheet" href="/css/liana_reset.css" />
<style>@import url('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');</style>
<link type="text/css" rel="stylesheet" href="{{ mix('css/app.css') }}" />
<link type="text/css" rel="stylesheet" href="/css/bootstrap.min.css" />
<link type="text/css" rel="stylesheet" href="/css/datepicker.min.css" />
<!--link type="text/css" rel="stylesheet" href="/css/bootstrap.min.css" />
<link type="text/css" rel="stylesheet" href="/css/datepicker.min.css" /-->
<link type="text/css" rel="stylesheet" href="/css/style.css" />
<link type="text/css" rel="stylesheet" href="/css/liana_style.css" />
{{-- <script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script> --}}

View File

@@ -161,7 +161,7 @@
@endisset
<div class="row">
<div class="col-12 col-md-10 mb-3">
<input type text wire:model="input_items" type="text" class="form-control py-3 w-100" placeholder="Содержание услуги" required=""></textarea>
<input wire:model="input_items" type="text" class="form-control py-3 w-100" placeholder="Содержание услуги" required="" />
</div>
<div class="col-12 col-md-2 mb-3">
<button wire:click="addPacketOption('packet1_options', 'packet1_options_input')" type="button" class="float-end btn btn-lg btn-primary btn-block px-5 fs-6 --f_bold">+</button>
@@ -304,3 +304,4 @@
</form>
</section>

View File

@@ -6,13 +6,13 @@
</a>
<h1 class="diet__title">{{ __('recipe.adding') }}</h1>
</div>
<div action="#" class="diet__form">
<div class="mb-4 fs-4_5">
<div class="mb-2">{{ __('recipe.title') }}</div>
<div class="diet__form">
<div class="diet__form-row">
<div class="label">{{ __('recipe.title') }}</div>
<input wire:model="title" type="text" class="input" placeholder="Заголовок" />
</div>
<div class="mb-4 fs-4_5">
<label>{{ __('recipe.type') }}</label>
<div class="diet__form-row">
<div class="label">{{ __('recipe.type') }}</div>
<select wire:model="type" class="input">
<option value="first_meals">{{ __('recipe.first_meals') }}</option>
<option value="second_meals">{{ __('recipe.second_meals') }}</option>
@@ -90,17 +90,50 @@
</ul>
</div>
</div>
</div>
<div class="diet__form-column diet__form-column-xl">
</div>
<div class="diet__form-column diet__form-column-xl">
@if(!empty($ingredients))
<div class="content__table diet__form-row">
<div class="content__table-wrapper">
<table class="cabinet__table-content">
<thead>
<tr>
<th>{{ __('recipe.name_of_product')}}</th>
<th>{{ __('recipe.portion')}}</th>
<th>{{ __('recipe.units')}}</th>
</tr>
</thead>
<tbody>
@foreach($ingredients as $ingredient)
<tr>
<td>{{ $ingredient['name'] }}</td>
<td>{{ $ingredient['portion'] }}</td>
<td>{{ __('recipe.' . $ingredient['unit']) }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endif
<div class="diet__form-columns">
<div class="diet__form-column diet__form-column-lg">
<input type="text" name="product" class="input" placeholder="Введите название продукта">
<input wire:model="ingredients_name" type="text" name="name" class="input" placeholder="Введите название продукта">
</div>
<div class="diet__form-column">
<div class="diet__form-adding">
<div class="diet__form-column">
<input type="num" name="ccal" class="input" placeholder="Порция">
<button type="button" class="btn btn-primary icon-plus"></button>
<input wire:model="ingredients_portion" type="num" name="portion" class="input" placeholder="Порция">
<select wire:model="ingredients_unit" name="unit" class="input">
<option value="gr">гр</option>
<option value="teespoon">ч. ложек</option>
<option value="tablespoon">ст. ложек</option>
<option value="ml">мл</option>
<option value="pcs">шт</option>
<option value="clove">зубчик</option>
<option value="to_taste">по вкусу</option>
</select>
<button wire:click="addIngredient" type="button" class="btn btn-primary icon-plus"></button>
</div>
<button type="button" class="icon-gear"></button>
</div>
@@ -131,7 +164,9 @@
})
.then( function(editor){
editor.model.document.on('change:data', () => {
$dispatch('input', editor.getData())
console.log(editor.getData());
// $dispatch('input', editor.getData())
@this.set('description', editor.getData());
})
})
.catch( error => {
@@ -165,7 +200,7 @@
@endif
</span>
</label>
<textarea name="desc-step-1" class="textarea" placeholder="Введите описание шага"></textarea>
<textarea name="desc-step-1" class="textarea" wire:model="steps.{{$i}}.description" id="step[{{$i}}][description]" placeholder="Введите описание шага"></textarea>
<div class="diet__form-column">
<button type="button" wire:click="removeStep({{$i}})" class="diet__form-add btn {{ $i == 0 ? 'btn-gray' : 'btn-primary' }}" @disabled($i == 0)>-</button>
<button type="button" wire:click="addStep" class="diet__form-add btn btn-primary" data-bs-original-title="Добавить шаг">+</button>

View File

@@ -1,30 +1,229 @@
<section class="py-5" id="main">
<div class="container d-flex justify-content-between align-items-center flex-nowrap mb-4 px-4 py-3 --bg_white --shadow --radius --mw-1000 --f_bold --f_main overflow-x-xs-scroll">
<a href="{{ route('recipe.index') }}" class="d-flex w-md-30 align-items-center --f_bold"><svg width="17" height="16" class="me-2"><use xlink:href="#GoBack"></use></svg><span class="d-none d-md-inline --f_main">{{ __('recipe.my_recipes') }}</span></a>
<div class="fs-5 text-center">
<div class="--f_bolder">{{ __('recipe.editing') }}</div>
<section class="py-5 diet" id="main">
<div class="diet__container">
<div class="diet__header">
<a href="{{ route('recipe.index') }}" class="diet__back icon-arrow-short-left">
<span>Мой блог</span>
</a>
<h1 class="diet__title">{{ __('recipe.editing') }}</h1>
</div>
<div class="d-none d-md-flex w-md-30"></div>
</div>
<div class="container mb-4 py-3 overflow-hidden --bg_white --shadow --radius --mw-1000">
<div class="mb-4 fs-4_5">
<div class="mb-2">{{ __('recipe.title') }}</div>
<input wire:model="title" type="text" class="form-control fs-4_5 py-3 w-100" placeholder="Заголовок" />
</div>
<div class="mb-4 fs-4_5">
<label>{{ __('recipe.type') }}</label>
<select wire:model="type" class="form-select mt-3 ps-4 pe-5 py-3 --f_bold">
<option value="first_meals" @selected($type == 'first_meals')>{{ __('recipe.first_meals') }}</option>
<option value="second_meals" @selected($type == 'second_meals')>{{ __('recipe.second_meals') }}</option>
<option value="salads" @selected($type == 'salads')>{{ __('recipe.salads') }}</option>
<option value="snacks" @selected($type == 'snacks')>{{ __('recipe.snacks') }}</option>
<option value="sweets" @selected($type == 'sweets')>{{ __('recipe.sweets') }}</option>
<option value="drinks" @selected($type == 'drinks')>{{ __('recipe.drinks') }}</option>
<option value="other" @selected($type == 'other')>{{ __('recipe.other') }}</option>
</select>
<div class="diet__form">
<div class="diet__form-row">
<label class="label">{{ __('recipe.title') }}</label>
<input wire:model="title" type="text" class="input" placeholder="Заголовок" />
</div>
<div class="diet__form-row">
<label class="label">{{ __('recipe.type') }}</label>
<select wire:model="type" class="input">
<option value="first_meals" @selected($type == 'first_meals')>{{ __('recipe.first_meals') }}</option>
<option value="second_meals" @selected($type == 'second_meals')>{{ __('recipe.second_meals') }}</option>
<option value="salads" @selected($type == 'salads')>{{ __('recipe.salads') }}</option>
<option value="snacks" @selected($type == 'snacks')>{{ __('recipe.snacks') }}</option>
<option value="sweets" @selected($type == 'sweets')>{{ __('recipe.sweets') }}</option>
<option value="drinks" @selected($type == 'drinks')>{{ __('recipe.drinks') }}</option>
<option value="other" @selected($type == 'other')>{{ __('recipe.other') }}</option>
</select>
</div>
<div class="diet__form-row">
<div class="diet__form-columns lg-columns">
<div class="diet__form-column">
<div class="label">{{ __('recipe.picture') }}</div>
<label class="file">
<input type="file" wire:model="image" name="file" class="file__input hidden" hidden="">
<span class="file__content">
<span class="file__formats">
@if(is_null($image))
<img src="/img/formats-2.svg" alt="formats">
@else
<img src="{{ is_string($image) ? Storage::url($image) : $image->temporaryUrl() }}" />
@endif
</span>
<span class="file__title">
@if(is_null($image))
Нажмите для&nbsp;выбора или&nbsp;перетащите изображание
@endif
</span>
</span>
</label>
@error('image') <span class="error">{{ $message }}</span> @enderror
</div>
<div class="diet__form-column diet__form-column-lg">
<div class="diet__form-row">
<div class="label">
Тип записи
</div>
<div class="diary__stats-tablist" role="tablist" aria-labelledby="label">
<button class="btn" role="tab" type="button" id="tab-1" aria-selected="true" aria-controls="tabpanel-1">Рецепт</button>
<button class="btn" role="tab" type="button" id="tab-2" aria-selected="false" aria-controls="tabpanel-2" tabindex="-1">Cтатья</button>
</div>
</div>
</div>
<div class="tabpanel" role="tabpanel" id="tabpanel-1" tabindex="0" aria-labelledby="tab-1">
<div class="diet__form-column">
<div class="diet__form-row">
<div class="label">{{ __('recipe.cooking_time') }}</div>
<div class="dropdown" x-data="{ open: false }" >
<button
type="button"
:class="open ? 'dropdown__button active' : 'dropdown__button'"
x-on:click="open = ! open">
{{ __('recipe.t' . $cooking_time . 'm') }}
</button>
<ul :class="open ? 'dropdown__list visible' : 'dropdown__list'">
<li wire:click="$set('cooking_time','10')" @click="open = !open" :class="$wire.cooking_time =='10'? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.t10m') }}</li>
<li wire:click="$set('cooking_time','20')" @click="open = !open" :class="$wire.cooking_time =='20' ? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.t20m') }}</li>
<li wire:click="$set('cooking_time','30')" @click="open = !open" :class="$wire.cooking_time =='30' ? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.t30m') }}</li>
<li wire:click="$set('cooking_time','60')" @click="open = !open" :class="$wire.cooking_time =='60' ? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.t60m') }}</li>
<li wire:click="$set('cooking_time','120')" @click="open = !open" :class="$wire.cooking_time =='120' ? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.t120m') }}</li>
<li wire:click="$set('cooking_time','14400')" @click="open = !open" :class="$wire.cooking_time =='14400' ? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.t14400m') }}</li>
</ul>
</div>
</div>
</div>
<div class="diet__form-column">
<div class="diet__form-row">
<div class="label">{{ __('recipe.record_state') }}</div>
<div class="dropdown" x-data="{ open: false }">
<button type="button"
:class="open ? 'dropdown__button active' : 'dropdown__button'"
x-on:click="open = ! open"
>{{ $state == 'active' ? __('recipe.record_state_active') : __('recipe.record_state_not_active') }}
</button>
<ul :class="open ? 'dropdown__list visible' : 'dropdown__list'">
<li wire:click="$set('state','active')" @click="open = !open" :class="$wire.state == 'active' ? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.record_state_active') }}</li>
<li wire:click="$set('state','archived')" @click="open = !open" :class="$wire.state == 'archived' ? 'dropdown__list-item active' : 'dropdown__list-item'">{{ __('recipe.record_state_not_active') }}</li>
</ul>
</div>
</div>
</div>
<div class="diet__form-column diet__form-column-xl">
@if(!empty($ingredients))
<div class="content__table diet__form-row">
<div class="content__table-wrapper">
<table class="cabinet__table-content">
<thead>
<tr>
<th>{{ __('recipe.name_of_product')}}</th>
<th>{{ __('recipe.portion')}}</th>
<th>{{ __('recipe.units')}}</th>
</tr>
</thead>
<tbody>
@foreach($ingredients as $ingredient)
<tr>
<td>{{ $ingredient['name'] }}</td>
<td>{{ $ingredient['portion'] }}</td>
<td>{{ __('recipe.' . $ingredient['unit']) }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
@endif
<div class="diet__form-columns">
<div class="diet__form-column diet__form-column-lg">
<input wire:model="ingredients_name" type="text" name="name" class="input" placeholder="Введите название продукта">
</div>
<div class="diet__form-column">
<div class="diet__form-adding">
<div class="diet__form-column">
<input wire:model="ingredients_portion" type="num" name="portion" class="input" placeholder="Порция">
<select wire:model="ingredients_unit" name="unit" class="input">
<option value="gr">гр</option>
<option value="teespoon">ч. ложек</option>
<option value="tablespoon">ст. ложек</option>
<option value="ml">мл</option>
<option value="pcs">шт</option>
<option value="clove">зубчик</option>
<option value="to_taste">по вкусу</option>
</select>
<button wire:click="addIngredient" type="button" class="btn btn-primary icon-plus"></button>
</div>
<button type="button" class="icon-gear"></button>
</div>
</div>
</div>
</div>
</div>
{{-- <div class="tabpanel" role="tabpanel" id="tabpanel-1" tabindex="0" aria-labelledby="tab-1">
<div class="diet__form-column">
<div class="diet__form-row">
<div class="label">
Время приготавления
</div>
<div class="dropdown">
<button type="button" class="dropdown__button">
1 час
</button>
<ul class="dropdown__list">
<li data-value="1" class="dropdown__list-item active">1 час</li>
<li data-value="30" class="dropdown__list-item">30 минут</li>
</ul>
<input type="text" name="time" class="dropdown__input hidden" hidden="" value="1">
</div>
</div>
</div>
<div class="diet__form-column">
<div class="diet__form-row">
<div class="label">
Статус
</div>
<div class="dropdown">
<button type="button" class="dropdown__button">
Активна
</button>
<ul class="dropdown__list">
<li data-value="active" class="dropdown__list-item active">Активна</li>
<li data-value="unactive" class="dropdown__list-item">Неактивна</li>
</ul>
<input type="text" name="status" class="dropdown__input hidden" hidden="" value="unactive">
</div>
</div>
</div>
<div class="diet__form-column diet__form-column-xl">
<div class="diet__form-columns">
<div class="diet__form-column diet__form-column-lg">
<input type="text" name="product" class="input" placeholder="Введите название продукта">
</div>
<div class="diet__form-column">
<div class="diet__form-adding">
<div class="diet__form-column">
<input type="num" name="ccal" class="input" placeholder="Порция">
<button type="button" class="btn btn-primary icon-plus"></button>
</div>
<button type="button" class="icon-gear"></button>
</div>
</div>
</div>
</div>
</div> --}}
<div class="tabpanel tabpanel--hidden" role="tabpanel" id="tabpanel-2" tabindex="0" aria-labelledby="tab-2">
<div class="diet__form-column">
<div class="diet__form-row">
<div class="label">
Статус
</div>
<div class="dropdown">
<button type="button" class="dropdown__button">
Активна
</button>
<ul class="dropdown__list">
<li data-value="active" class="dropdown__list-item active">Активна</li>
<li data-value="unactive" class="dropdown__list-item">Неактивна</li>
</ul>
<input type="text" name="status" class="dropdown__input hidden" hidden="" value="unactive">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row fs-4_5">
<div class="diet__form">
<div class="row fs-4_5">
<div class="col-12 col-sm-12 col-xl-4 my-4 dnd_file">
<label for="form-image">{{ __('recipe.picture') }}</label>
<div class="form__item mt-3 p-3 --radius --bordered text-center --f_grey">
@@ -175,7 +374,7 @@
</div>
<div class="col-sm-7 col-lg-8 mb-3 mb-sm-0 px-sm-2 flex-grow-1">
<div class="d-flex align-items-center form-control --textarea py-3 w-100 h-100" onclick="this.children[0].focus()">
<textarea name="step[{{$i}}][description]" wire:mode.defer="steps.{{$i}}.description" autoresize="" placeholder="Введи описание шага" rows="5">{{ $steps[$i]['description'] ?? '' }}</textarea>
<textarea name="step[{{$i}}][description]" wire:model.defer="steps.{{$i}}.description" autoresize="" placeholder="Введи описание шага" rows="5">{{ $steps[$i]['description'] ?? '' }}</textarea>
</div>
</div>
<div class="col d-flex flex-sm-column ps-sm-2 justify-content-between">
@@ -194,6 +393,7 @@
<input wire:model="video_url" type="text" class="form-control fs-4_5 py-3 w-100" placeholder="Прикрипите ссылку на YouTube видео" />
</div>
</div>
</div>
<div class="container mb-5 p-0 --mw-1000">
<div class="row gx-3 gx-lg-4 gy-3 gy-lg-4">
<div class="col">
@@ -207,11 +407,11 @@
</div>
</div>
</div>
<div class="container mb-5 p-0 --mw-1000">
@foreach ($errors->all() as $message)
<div class="alert alert-warning">{{ $message }}</div>
@endforeach
</div>
</div>
</section>

View File

@@ -84,15 +84,17 @@
$i = 0;
@endphp
<div class="col-12 col-lg px-0 flex-grow-1 text-lg-end">
@foreach($rawTypes as $keyType => $type)
<div class="--tags mb-3">
<div class="mb-2 --f_bold"> {{ __('recipe.' . $keyType) }} </div>
@foreach($type as $tagName => $tagsCount)
<a href="?tag={{ $tagName }}" data-idx="{{ $i . ":" . $colorsMaxIndex }}" style="font-weight: {{$tagsCount * 200}};" class="btn {{ $colorClasses[$i] }} btn-sm border-0 --radius">{{ Str::of($tagName)->split('/-/')[1] }} <sup>{{ $tagsCount }}</sup></a>
@php $i = ($colorsMaxIndex > $i) ? $i+1 : 0; @endphp
@if(!is_null($rawTypes))
@foreach($rawTypes as $keyType => $type)
<div class="--tags mb-3">
<div class="mb-2 --f_bold"> {{ __('recipe.' . $keyType) }} </div>
@foreach($type as $tagName => $tagsCount)
<a href="?tag={{ $tagName }}" data-idx="{{ $i . ":" . $colorsMaxIndex }}" style="font-weight: {{$tagsCount * 200}};" class="btn {{ $colorClasses[$i] }} btn-sm border-0 --radius">{{ Str::of($tagName)->split('/-/')[1] }} <sup>{{ $tagsCount }}</sup></a>
@php $i = ($colorsMaxIndex > $i) ? $i+1 : 0; @endphp
@endforeach
</div>
@endforeach
</div>
@endforeach
@endif
</div>
</div>
</div>

View File

@@ -13,6 +13,8 @@
<script src="/js/ckeditor.js"></script>
<script src="https://unpkg.com/taggle/src/taggle.js" defer></script>
<link type="text/css" rel="stylesheet" href="/css/toggle.css" />
<link type="text/css" rel="stylesheet" href="/css/bootstrap.min.css" />
<link type="text/css" rel="stylesheet" href="/css/datepicker.min.css" />
@endpush
@push('jq_scripts')
<script src="/js/bootstrap.min.js"></script>

View File

@@ -5,6 +5,269 @@
$recipeViewsCount = views($recipe)->unique()->count();
@endphp
@section('main_section')
<section class="content">
<div class="content__container container-sm">
<div class="content__heading">
<a href="{{ route('recipe.index') }}" class="content__heading-back icon-arrow-short-left">
<span>Рецепты</span>
</a>
<div class="content__heading-stats">
<div class="content__heading-stat icon-eye-fill">
<strong>{{ $recipeViewsCount }}</strong>
</div>
<div class="content__heading-stat icon-heart-fill">
<strong>@livewire('recipe.like-count', ['recipe' => $recipe])</strong>
</div>
<div class="content__heading-stat icon-message-square">
<strong>{{ $recipe->comments_count }}</strong>
</div>
</div>
<div class="content__person">
<div class="content__person-name">
{{ $author['name'] }}
</div>
<div class="content__person-thumb">
@empty($author->profile_photo_path)
<img src="{{ $author->profile_photo_url }}" alt="thumb">
@else
<img src="/storage/{{ $author->profile_photo_path }}" alt="thumb">
@endempty
</div>
</div>
</div>
</div>
</section>
<section class="recipe">
<div class="recipe__container container-sm">
<div class="recipe__content">
<div class="recipe__header">
<div class="recipe__image">
<img src="/storage/{{ $recipe->image }}" class="cover-image" alt="recipe">
</div>
<div class="recipe__body">
<div class="recipe__caption">
<h1 class="recipe__title">
{{ $recipe->title }}
</h1>
<button type="button" class="recipe__action icon-dotts"></button>
</div>
<div class="recipe__stats">
<div class="recipe__stat icon-clock">{{ __('recipe.t' . $recipe->cooking_time . "m") }}</div>
<div class="recipe__stat icon-foots">{{ $recipe->steps->count() }} этапов</div>
</div>
<p class="recipe__desc">{!! $recipe->description !!}</p>
@if (strlen(trim($recipe->video_url)) > 4)
<a target="_blank" rel="noopener noreferrer" href="{{ $recipe->video_url }}" class="recipe__link icon-youtube">Посмотреть рецепт на YouTube</a>
@endif
</div>
</div>
<div class="recipe__info">
<div class="recipe__info-column">
<div class="recipe__info-caption">
ПРОДУКТЫ:
</div>
<ul class="recipe__info-list marked">
@foreach($recipe->ingredients as $ingredient)
@php
$localizedUnit = (isset($ingredient['unit']) && mb_strlen($ingredient['unit']) > 1)
? $ingredient['unit']
: 'gr';
@endphp
@if(mb_strlen($ingredient['name']) > 1)
<li>{{ $ingredient['name'] }} - {{ $ingredient['portion'] }} {{ __('recipe.' . $localizedUnit ) }}</li>
@endif
@endforeach
</ul>
</div>
<div class="recipe__info-column">
<div class="recipe__info-caption">
ЦЕННОСТЬ:
</div>
<ul class="recipe__info-list">
<li>WIP</li>
{{--
<li>Калории: 139.9 ккал</li>
<li>Белки: 20.4 гр</li>
<li>Жиры: 5.7 гр</li>
<li>Углеводы: 1.8 гр</li>
--}}
</ul>
</div>
<div class="recipe__info-column">
<div class="recipe__info-caption">
ЦЕННОСТЬ:
</div>
<div class="recipe__info-tags">
@foreach($recipe->tags->unique() as $curTag)
<a href="{{ $curTag->recipe_index_url }}" class="recipe__info-tag">{{ $curTag->name }}</a>
@endforeach
</div>
</div>
</div>
<div class="recipe__footer">
<a href="#commentsList" class="recipe__footer-action icon-message-square">
<span>Комментировать</span>
</a>
@livewire('recipe.like', ['recipe' => $recipe])
{{--<button class="recipe__footer-action icon-heart">
<span>Нравится</span>
</button>--}}
<button class="recipe__footer-action icon-share">
<span>Поделится</span>
</button>
</div>
</div>
</div>
</section>
<section class="steps">
<div class="steps__container container-sm">
<h2 class="steps__title title">
ПОШАГОВЫЙ ФОТО РЕЦЕПТ - КУРИНЫЕ РУЛЕТИКИ С СЫРОМ
</h2>
<ol class="steps__list">
@foreach($recipe->steps as $step)
<li class="steps__item">
<div class="steps__item-image">
@if(isset($step['image']) && is_string($step['image']) && strlen($step["image"]) > 4)
<img src="/storage/{{ $step['image'] }}" class="cover-image" alt="step">
@endif
</div>
<div class="steps__item-text">
<small>
{!! $step['description'] !!}
</small>
</div>
</li>
@endforeach
{{--<li class="steps__item">
<div class="steps__item-image">
<img src="img/price_step_1.jpg" class="cover-image" alt="step">
</div>
<div class="steps__item-text">
Режем куриную грудку тонкими ломтиками.
</div>
</li>
<li class="steps__item">
<div class="steps__item-image">
<img src="img/price_step_2.jpg" class="cover-image" alt="step">
</div>
<div class="steps__item-text">
<p>
На край каждого кусочка филе кладем 1 ст. л. тертого сыра и порезанную зелень.
</p>
<p>
Формируем рулетик из куриного филе с сыром и зеленью, подворачивая с боков, чтобы сыр при приготовлении не вытек. Скрепляем края половинками зубочисток.
</p>
</div>
</li> --}}
</ol>
</div>
</section>
<section class="reviews">
<div class="reviews__container container-sm">
<h2 class="reviews__title title">
Отзывы
</h2>
<div class="reviews__tabs tabs">
<div class="tablist" role="tablist" aria-labelledby="label">
<button class="tab" role="tab" type="button" id="tab-1" aria-selected="true" aria-controls="tabpanel-1">Положительные 2</button>
<button class="tab" role="tab" type="button" id="tab-2" aria-selected="false" aria-controls="tabpanel-2" tabindex="-1">Негативные 1</button>
</div>
<div class="tabpanel" role="tabpanel" id="tabpanel-1" tabindex="0" aria-labelledby="tab-1">
<div class="reviews__items">
<div class="review">
<div class="review__thumb">
<img src="img/user.png" class="cover-image" alt="user">
</div>
<div class="review__content">
<div class="review__name">
Артём
</div>
<blockquote class="review__quote">
После данного плана питания стал чувствовать себя куда лучше! Обязательно продолжу работать с Дмитрием!
</blockquote>
</div>
<div class="review__info">
<div class="review__programm">
Лёгкий
</div>
<div class="review__rate icon-star">
5.0
</div>
</div>
</div>
<div class="review">
<div class="review__thumb">
<img src="img/user.png" class="cover-image" alt="user">
</div>
<div class="review__content">
<div class="review__name">
Артём
</div>
<blockquote class="review__quote">
После данного плана питания стал чувствовать себя куда лучше! Обязательно продолжу работать с Дмитрием!
</blockquote>
</div>
<div class="review__info">
<div class="review__programm">
Лёгкий
</div>
<div class="review__rate icon-star">
5.0
</div>
</div>
</div>
</div>
</div>
<div class="tabpanel" role="tabpanel" id="tabpanel-2" tabindex="0" aria-labelledby="tab-2">
<div class="reviews__items">
<div class="review">
<div class="review__thumb">
<img src="img/user.png" class="cover-image" alt="user">
</div>
<div class="review__content">
<div class="review__name">
Артём
</div>
<blockquote class="review__quote">
Курить план – это плохо! Гласит лозунг и кричит Минздрав. Ну, конечно …Ничем не хуже водки, а водку везде продают и ничего.. ... Говорят, некоторые годами курят план и живут нормальной жизнью…Ну, если они считают это нормальной жизнью, то пусть и дальше существуют…Я не хочу…Я теперь спрашиваю себя – а зачем мне жить, что б просто курить траву?..Теперь мне плохо и траву курить, Проклятый мир! Даже год не покурил… Мне нужно что-то получше.. почище….ярче!!!
</blockquote>
</div>
<div class="review__info">
<div class="review__programm">
Лёгкий
</div>
<div class="review__rate icon-star">
5.0
</div>
</div>
</div>
</div>
</div>
</div>
<form action="" class="reviews__form">
<textarea class="textarea textarea-white" placeholder="Введите отзыв"></textarea>
<div class="reviews__form-column">
<div class="reviews__form-rate star-rating">
<input type="radio" name="rate" id="rate-5" value="5" class="star-rating__input hidden" hidden>
<label class="star-rating__label" for="rate-5"></label>
<input type="radio" name="rate" id="rate-4" value="4" class="star-rating__input hidden" hidden>
<label class="star-rating__label" for="rate-4"></label>
<input type="radio" name="rate" id="rate-3" value="3" class="star-rating__input hidden" hidden>
<label class="star-rating__label" for="rate-3"></label>
<input type="radio" name="rate" id="rate-2" value="2" class="star-rating__input hidden" hidden>
<label class="star-rating__label" for="rate-2"></label>
<input type="radio" name="rate" id="rate-1" value="1" class="star-rating__input hidden" hidden>
<label class="star-rating__label" for="rate-1"></label>
</div>
<button type="button" class="btn btn-primary">Оставить отзыв</button>
</div>
</form>
</div>
</section>
<section class="py-5" id="main">
<div class="container d-flex justify-content-between align-items-center flex-nowrap mb-4 px-4 py-3 --bg_white --shadow --radius --mw-1000 --f_bold --f_main overflow-x-xs-scroll">
<a href="{{ route('recipe.index') }}" class="d-flex w-2/5 align-items-center --f_bold">

View File

@@ -56,8 +56,7 @@ Route::group(
if (Auth::check()) {
return redirect('profile');
}
return view('home');
}
return view('home'); }
)->name('home');
Route::get(